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