文獻標識碼: A
DOI:10.16157/j.issn.0258-7998.2016.09.015
中文引用格式: 孫琪皓,詹杰,張浩. 基于圖像識別的無鍵盤電子鎖設計[J].電子技術應用,2016,42(9):58-61.
英文引用格式: Sun Qihao,Zhan Jie,Zhang Hao. No keyboard electronic lock design based on image recognition[J].Application of Electronic Technique,2016,42(9):58-61.
0 引言
隨著生活水平的提高,人們對鎖的要求也不斷增加,既要安全可靠,又要使用方便,電子鎖[1]的出現滿足了人們的需求。電子鎖是一種以電子方式來識別、處理信息、控制執行機構來關閉和開啟鎖的一種新型鎖具,已經在住宅、酒店、賓館、寫字樓中得到了廣泛應用。電子鎖的類型多種多樣,早期有應用TM卡[2]、CM卡的密碼鎖,還有應用人體生物特征的人臉、虹膜、指紋等的新一代電子鎖。采用電子卡片形式密碼鎖和機械鎖的區別不大,采用人體生理特征的安全性好,但成本較高。隨著科技的發展,該生物識別技術的安全性也遇到了挑戰。針對市場的需求,設計了一種基于圖像識別的解鎖系統[3-4],由射頻觸發圖像識別,省去常規的密碼鍵盤。該鎖具具有安裝方便、易于移植、被破解率低的特點。
1 系統方案
如圖1所示,該系統由鎖具和無線鑰匙兩部分組成。無線鑰匙發射出的激光點稱為游標,能發出射頻信號,帶有激光光源。鎖具由處理器、激光發射器、攝像頭、LCD顯示屏、無線通信模塊及掉電存儲設備組成。激光發射器可發射出3束激光,組成一個直角坐標系輔助系統對游標進行定位。無線鑰匙由一個微控制器、按鍵和激光發射器組成,由用戶控制,在系統中輸入密碼。無線通信模塊負責無線鑰匙與鎖具之間的通信。攝像頭采集激光定位坐標系和激光游標的圖像[5-6],發送給處理器進行分析。LCD顯示屏[7]輔助顯示攝像頭采集到的圖像,并顯示處理器解析圖像后獲得的密碼值。系統還具有防掉電功能,防止在系統斷電情況下丟失用戶自定義的密碼。
圖1 系統框架圖
工作過程如下:當用戶使用無線鑰匙時,觸發系統進入開鎖流程,生成定位激光坐標系,用戶移動游標(無線鑰匙發射出的激光點)到特定位置后,無線鑰匙發送采集信號給處理器,處理器隨后控制攝像頭采集一幅圖像,并對圖像進行解析,得到一位密碼值。重復此過程可完成多位密碼值輸入。
為了防止無線鑰匙被復制,導致系統被侵入的情況發生,系統使用輪詢密碼配對設置,以保持無線配對信號安全。為了防止系統故障問題,留下一個串行接口用于緊急處理,防止鑰匙丟失或忘記密碼。
2 系統軟件設計
2.1 圖像識別處理
鎖具應用環境千差萬別,環境光強大小不一,而且攝像頭采集的圖像是彩色圖像。彩色圖像包含的信息十分龐大,不利于單片機進行處理和分析,因此需要對采集到的圖像進行一系列處理。下面介紹主要處理過程:
(1)圖像二值化
將彩色圖像轉換為具有色彩深度的黑白圖像,轉換公式為:
灰度值轉換為二值化圖像時還需要進行閾值切割,將灰度值小于閾值的像素點設為0,否則設為255。因此選取合適的閾值對于圖像二值化十分重要,采用Otsu最大類間法進行最佳閾值的選取。Otsu算法按照灰度值的特性將圖像分為兩部分,當這兩部分之間的類間方差最大時,說明構成圖像的兩部分之間差別也最大,此時將圖像分為兩部分的值為最佳閾值。
每一個灰度值i出現的概率為:
G0和G1類出現的概率為:
G0和G1類出現的均值為:
類間方差為:
此時最佳閾值的取值即為使得類間方差最大的t值。
(2)圖像濾波處理
圖像識別需對圖像進行預處理,即濾除圖像中的雜波干擾,突出前景像素。
圖像腐蝕算法[8-9]處理過的圖像對比如圖2所示。
圖2 圖像應用腐蝕算法對比
(3)區域連通算法
激光點和游標點在二值化圖像上表現為聚合在一起的前景像素,稱作連通域區域。經過濾波處理后的二值化圖像只有前景像素和背景像素兩種值,當圖像中有多個連通區域時處理器并不能區分各連通區域。連通區域算法[10]能為各連通區域分配一個唯一標號,這樣就可統計連通區域的數目,還能通過算法分析連通區域特征。圖像通過連通區域算法處理前后對比如圖3所示。
圖3 區域連通算法
(4)連通域定位
經過連通區域算法處理后,每一個連通域有一個獨立的標號,找出各標號x軸、y軸最大和最小坐標,取平均值后可代替該連通區域位置。采集的圖像由于攝像頭拍攝角度,定位點坐標系偏移等問題而發生變化,如圖4所示,當采集圖像發生偏移時游標cur相對于激光定位坐標系原點b的坐標為(3,3)。若采集圖像內激光定位坐標系發生了偏移,如圖4(b)所示,cur相對于原點O坐標未變情況下,cur相對于激光定位坐標系原點b位置已發生改變,需要對此進行修正。
圖4 圖像偏移定位示意圖
2.2 系統流程
系統上電后,首先對系統各外設進行初始化,隨后系統檢測游標按鍵是否按下,若鍵按下則開始密碼輸入過程。處理過程如下:首先打開激光發射器于平面生成定位坐標系,攝像頭采集一幅圖像發送給控制器,控制器對圖像進行二值化、腐蝕算法濾除雜波后得到較為明確的坐標系圖像,通過Two-Pass連通區域算法將圖像中相鄰的像素賦予相同標號,計算出該標號區域的中心位置。重復以上過程即可獲得設定的密碼輸入值。系統流程圖如圖5所示。
圖5 系統流程圖
3 系統測試
3.1 算法仿真
模擬算法采用Python語言編寫,使用Pyserial庫采集從單片機發送來的圖片數據,并保存為.txt文件,.txt文件經處理后使用Pillow庫在電腦端將圖片顯示出來。
算法仿真時,硬件設備將采集到的彩色圖像通過灰度值算法轉換為灰度值圖像,并將其發送至電腦PC端,此時系統采樣到的原圖如圖6所示。
圖6 仿真灰度值原圖
選取不同閾值時所得到的二值化圖像如圖7所示。圖7(a)中當閾值選擇太小時圖像中出現大量雜波,對目標面有較大干擾。圖7(b)為閾值選擇過大時圖像,此時圖像上方連通區域僅剩幾個像素點,若選取閾值更大時則該連通區域被判定為背景,從而丟失定位坐標系。圖7(c)為使用Otsu最大類差間法獲取閾值得到的二值化圖像,圖像中目標清晰,雜波少。
(a)閾值過小 (b)閾值過大 (c)最佳閾值
圖7 二值化閾值選擇對比
對二值化圖像進行腐蝕濾波,連通區域標記后圖像對比如圖8所示。圖8(b)為腐蝕算法處理后圖像,比圖8(a)中各連通區域少了一層像素點。在顯示程序對圖像數據中不同標號的像素點賦予不同顏色,效果如圖8(c)所示。
(a)二值化圖像 (b)腐蝕處理 (c)two-pass算法標記
圖8 腐蝕算法和連通區域算法效果驗證
3.2 調試實驗
軟件算法仿真成功后,下載程序進行硬件調試并搭建平臺。
通過調試平臺采集到一個密碼輸入圖像如圖9所示。圖中兩幅圖為單個密碼值輸入過程中使用不同方式拍攝的對比圖。圖9(a)為使用手機拍攝到的圖像,為了直觀顯示按鍵值對比,圖中對激光坐標系內各位置添加輔助線進行了劃分。圖9(b)為無線鍵盤電子鎖系統攝像頭采集的圖像,LCD顯示屏中圖像為通過算法處理后的圖像。由于手機拍攝角度與電子鎖攝像頭處在對立角度,所以兩圖中最亮的區域不同。圖9(b)中a、b、c分別為激光定位坐標系定位點,b點為原點,a點為y軸方向,c點為x軸方向,cur為游標,各點的坐標值已給出,此時通過系統圖像識別算法處理解譯后所得值為1。
圖9(a)中游標激光點偏離按鍵1中心點,距邊界不遠處,此時系統依舊能識別出正確的按鍵值,表明當前系統所需功能已基本完成,使用時將游標定位在各按鍵中心點附近可以保證系統識別的正確率。
(a)采集時圖像 (b)識別后圖像
圖9 單次密碼輸入
系統預設密碼值為“123456”,用戶可自行更改,圖10(a)為輸入5位密碼值時圖像。當密碼輸入正確時,圖像如圖10(b)所示,顯示“Key Correct”;否則顯示密碼錯誤,需重新輸入密碼。
(a)輸入密碼過程 (b)輸入密碼正確
圖10 密碼輸入過程
4 分析與總結
無密碼鍵盤的非接觸式電子鎖,采用了圖像識別技術提升了鎖具的安全性和隱蔽性。經調試測試,該套系統能完成解鎖的需求,但對于實際生產運用還需進一步調試改進;如在不同環境下圖像識別的準確度還需大量實驗改進;使用者是否能正確地確定游標區域,還需不需要設計一些輔助措施;電子系統出現故障如何處理等。這也是下一步需努力的方向。
參考文獻
[1] 任葛榮.可編程智能電子鎖控制器的設計與實現[D].廣州:華南理工大學,2011.
[2] 丁明勇,李昔華.TM卡智能電子鎖與門禁系統研制[J].重慶工商大學學報(自然科學版),2004(5):488-490.
[3] 張家怡.圖像識別的技術現狀和發展趨勢[J].電腦知識與技術,2010,21(6):6045-6046.
[4] 徐瑩.紙幣圖像識別技術研究[D].成都:西南石油大學,2012.
[5] 陶杰,王欣.基于STM32F407和OV7670的低端視頻監控系統[J].單片機與嵌入式系統應用,2014(3):60-63.
[6] 曾浩,張祺,鄭斯凱.基于STM32F407的圖像遠程采集終端[J].工業控制計算機,2014(11):81-83.
[7] 黃杰勇,何冬.基于STM32F407的液晶控制器設計[J].現代計算機(專業版),2015(10):66-69.
[8] 楊琨,曾立波,王殿成.數學形態學腐蝕膨脹運算的快速算法[J].計算機工程與應用,2005(34):54-56.
[9] 李曉飛,馬大瑋,粘永健,等.圖像腐蝕和膨脹的算法研究[J].影像技術,2005(1):37-39.
[10] 牛連強,彭敏,孫忠禮,等.利用游程集合的標號傳播實現快速連通域標記[J].計算機輔助設計與圖形學學報,2015(1):128-135,156.