(北京師范大學 珠海分校,廣東 珠海 519087)
可遠程監(jiān)控的刷臉開鎖保險箱的研究與開發(fā)
劉琨
(北京師范大學珠海分校,廣東珠海519087)
隨著科技發(fā)展,越來越多的企業(yè)、家庭使用刷臉開鎖箱,為使其更加安全及方便使用者管理,提出可遠程控制的刷臉開鎖箱;可遠程監(jiān)控的刷臉開鎖保險箱基于面部識別技術,利用硬件與軟件結合的方式,其中包括圖像采集、電機驅動、視頻及運動采集等,通過上傳到云端并且與終端設備連接,達到遠程監(jiān)控的目的,以此開發(fā)新型智能保險箱;隨著人臉識別技術的成熟和微型電腦的發(fā)展,為設計這樣的智能保險箱提供了較好的環(huán)境與條件;經試驗證明,該保險箱基于pcDuino微型電腦開發(fā)平臺展開研究與開發(fā),并通過OpenCV與Face++云識別平臺協(xié)作,實現(xiàn)了遠程監(jiān)控、云端面部識別、控制開關的功能;可遠程監(jiān)控的刷臉開鎖箱可以為更多個人、企業(yè)及家庭提供幫助。
pcDuino;OpenCV;Face++;人臉識別;保險箱
人臉識別技術是計算機技術和光學成像技術的融合,于20世紀90年代后期真正進入應用階段,是近代興起的新興科學技術之一。20多年時間的基礎,使其得到高速發(fā)展,面部識別領域涌現(xiàn)出了多種的新型面部識別技術。目前人臉識別技術發(fā)展較為成熟的國家地區(qū)為:美國、日本,德國和中國香港。近幾年,國內各大研究中心對人臉識別技術的引進和探究使得國內人臉識別技術也得到了飛速的發(fā)展[1-2]。在集成人工智能、機器識別、機器學習、模型理論、專家系統(tǒng)、視頻圖像處理等多種專業(yè)技術的基礎上,結合中間值理論與實現(xiàn),使得生物特征識別得以新的應用,在核心技術的實現(xiàn)中,逐漸由弱人工智能轉向強人工智能。因此,面部識別也得到了拓展,技術應用覆蓋諸多領域。例如:考勤、門禁、工業(yè)、建筑、銀行、軍事、社會福利保障、電子商務以及安全防務等領域。
目前人臉識別的技術手段主要可分為以下三類:以幾何特征為基礎、以模板為基礎和以模型為基礎[3]。主要的技術方法有:基于主元分析的人臉識別方法、基于奇異值分解的人臉識別方法、非線性建模識別方法、基于隱馬爾可夫模型的人臉識別方法、基于圖像重建和圖像融合的人臉識別方法[4-6]。
可遠程監(jiān)控的刷臉開鎖保險箱的研究是基于圍繞人臉識別技術手段為核心來展開研究。
可遠程監(jiān)控刷臉開鎖保險箱的整體功能的實現(xiàn)主要分為以下幾個部分:圖像采集、圖像傳輸與編碼、云端傳輸識別、Pc端和手機端遠程控制、驅動設計和機械與外觀設計。
本文主要設計:圖像動態(tài)采集、云端傳輸識別、驅動設計和機械與外觀設計。
本課題的主要功能目標就是人臉識別。在引言中論述了諸多人臉識別的類別及方法。但由于其技術門檻較高以及其需要強大的硬件支持,所以我們引進云識別平臺Face++的人臉識別服務來實現(xiàn)人臉識別。
為了實現(xiàn)項目的整體基本目標功能,首先需要對人臉信息進行采集[7-8],通過搭建pcDuino迷你計算機加上 OpenCV視覺庫,對攝像頭拍攝的圖片進行臉部追蹤,并采集臉部信息;其次,在開源的技術平臺中,對采集到的圖像信息進行預處理,通過Face++提供的應用url接口傳輸?shù)紽ace++建立的人臉識別對比庫中,與Face++人臉庫中已上傳的人臉信息進行比對,提取相同的特征信息,計算相似度,當相似度達到一定值,反饋計算機一個返回值;最后pcDuino對返回值進行判斷,步進電機做出響應:轉動或者停止。采取了以pcDuino+Ubuntu12.04為底層,層層工作分配的金字塔形式思路方式來進行項目研究。
2.1 核心硬件
為了保證保險箱核心部件的安全性,易用性以及嚴禁性的同時降低成本是本課題的主要目標。核心硬件分為四大塊,來匹配市面上最具性價比的硬件[9-10]。
核心板:近幾年來,隨著Raspberry Pi和Beagle Board的面世,更是將ARM架構的迷你PC方向開源硬件熱潮迎來的高峰。與此同時在開源軟件方面同樣激起了一股熱潮。而pcDuino作為開源硬件的新貴,它完美地將迷你PC和Arduino的優(yōu)勢融為一體,打造了開源軟件Linux和開源硬件Arduino生態(tài)系統(tǒng)。 pcDuino是一款可以通過Arduino接口完美兼容目前市面上所有的Arduino shield的產品。選用了pcDuino3b這款極具性價比和性能的微型計算機來當我們的核心電腦部件。其兼容arduino的特性更是極大地提高了保險箱的易用性。
圖像采集:圖像采集部分是整條人臉識別信息處理鏈的龍首,攝像頭的選用起著至關重要的作用??紤]到清晰度、性價比、對焦速率等參數(shù)的限制,選用usb高清攝像頭作為圖像采集部件。
電機驅動:保險箱的動力輸出無需太大,考慮到性能過剩,為了節(jié)約成本,因此選擇了5 V的步進電機作為電機驅動。
可遠程監(jiān)控刷臉開鎖保險箱是一個系統(tǒng),該系統(tǒng)核心硬件主要由:微型計算機PcDuino3b,5 V/2 000 mA電源,32 GB儲存卡,pc網絡攝像頭,步進電機及電機驅動構成,如圖1所示。
圖1 硬件系統(tǒng)結構圖
為了搭建整個系統(tǒng)的整體,我們用到了1根usbOTG數(shù)據(jù)線,usb端接電源插座,OTF用于連接電源與pcDuino,從而保證pcDuino的正常運作與供能。而ubs攝像頭與pcDuino的連接直接使用了pcDuino上的usb接口。步進電機與電機驅動用排線相連,電機驅動再通過跳線與pcDuino提供的電壓針腳和脈沖信號針腳相連。
2.2 軟件基礎
基于云處理與云識別的功能要求,所以選用了國內最大的人臉識別云計算平臺Face++作為刷臉保險箱的云處理平臺。Face++平臺通過提供云端API、離線SDK。為智能保險箱提供了最有效的人臉識別服務[11]。
保險箱可通過遠程云端識別人臉,實現(xiàn)自動開啟。如圖2所示。如果刷臉失敗,則不開啟保險箱。工作過程主要包括以下5個部分的研究。
圖2 保險箱刷臉識別過程
1)圖像編碼:攝像頭采集到的圖像信噪比很低,系統(tǒng)自帶的圖像壓縮效果不佳,所以為了減少網絡帶寬的負重,以及本次存儲空間的優(yōu)化,圖像編碼壓縮是必不可少的功能要點。
2)圖像優(yōu)化:直接拍攝的圖像由于清晰度不高,間接影響人臉識別的效率,圖像優(yōu)化可以有效的提高識別精度。
3)云端傳輸:從本地傳輸?shù)皆贫?,通過Face++提供的api接口將本地已編碼的圖像上傳至Face++的云存儲空,考慮到保險箱的安全性,整個過程需要加密。所以云端傳輸?shù)墓δ苄枨笾陵P重要。
4)云端識別:作為核心功能,云端識別是保險箱的心臟。云端識別的建立是最重要的環(huán)節(jié)。
5)驅動設計:保險箱最重要的部件就是開關,電機的輸入信號需要得要有效的控制才能掌控保險箱箱門的開關。
4.1 圖像動態(tài)采集
4.1.1 采集圖像
利用pcDuino3b控制usb攝像頭來采集圖像,是整個系統(tǒng)硬件軟件環(huán)境搭載好之后的第一步驟。攝像頭是整個系統(tǒng)的眼睛,以下捕捉圖像的算法以及步驟。
首先安裝好OpenCV,對攝像頭的初始化;而后設置圖像的寬度、高度、亮度和對比度。為了達到圖像輸出的最優(yōu)效果,將圖像的參數(shù)設置為600*480大小,亮度為20,對比度為10。
OpenCV通過攝像頭抓取一幀圖像,然后保存圖像到設置的文件中。最后釋放資源,將攝像頭停止調用。完整運行程序之后完成對攝像頭的調用,并在指定文件夾中生成.jpeg圖像文件,該圖像即攝像頭采集的格式為600*480的完整圖像。
4.1.2 采集視頻及運動檢測
為了使攝像頭的圖像采集更加智能以及內存的空間的合理分配,所以攝像頭感應拍照的功能必不可少。OpenCV作為一個計算機視覺庫而并非視頻流解碼器,因此OpenCV的視頻支持較為單一,只支持視頻輸出avi格式的視頻,且只支持 avi1.0。Avi1.0是32位儲存制式,所以最大容量為2GB,因此OpenCV所拍攝的視頻也不能大于2GB。
視頻采集需要一個程序動態(tài)的過程,首先傳入一個參數(shù)作為視頻輸出文件的路徑,然后初始化了一個結構體用于從攝像頭捕獲視頻,0表示默認的攝像頭,最后獲取視頻幀的寬度和高度。
運動檢測是一種計算機視覺感應的應用。一個物體相對于視覺感應終端產生位移、大小等物理變化的感應狀況。利用OpenCV可以實現(xiàn)這一功能。其原理就是利用攝像頭連續(xù)采集圖像,并對比相鄰圖像的變化,當變化比值達到一個數(shù)值的上限,則計算機判斷為圖像變化。
攝像頭采集到第1幀畫面存儲至本地,采集到第2幀時儲存至本地,同時調用第1幀圖像與第2幀圖像進行比對,計算比對的差值占整圖的空間占比,得出一個數(shù)值,當數(shù)值大于定義的參數(shù)即可判定為圖像動態(tài)確認,從而采集圖像而上傳。
4.2 云端傳輸識別
由于本地搭建識別功能會有資源占用、精度不高的缺點。因此搭建一個運用云識別的平臺顯得極其重要,但云識別的前提是有無線網絡的連入,而pcDuino3b正好有無線網絡連接的接口,給云識別平臺的提供了良好的搭建環(huán)境。
利用免費云端人臉識別服務:Face++來實現(xiàn)這個功能。要完成云端人臉識別并不復雜,只需要本地調用Face++的http請求就可以調用云端的程序,而后云端把調用結果反饋給pcDuino本地平臺。
由于Face++官方沒有提供c++的開發(fā)SDK,在不考慮C++的SDK情況下,直接構造符合規(guī)定的http請求調用Face++的識別服務達為云識別功能提供了方便性和實用性。
4.2.1創(chuàng)建person
Person作為Face++云平臺中提供給用戶的人臉識別庫,要想運用識別人臉服務首先要調用Face++的創(chuàng)建person接口,一個person只能對應一個人物的多張圖片。
調用接口之后,F(xiàn)ace++會返回一個JSON字符串,通過解析字符串而得到調用結果。接口的調用較為便捷,只需通過C++程序訪問合法的http請求即可完成調用。
首先創(chuàng)建個.sh文件,在其中定義好Face++應用中提供的API-KEY和API-SECRET。我們通過調用CURL的網址就能調用生成person的服務。
4.2.2 構建Face-id庫
云端識別的基礎在于對人臉參數(shù)的分析,構建face-id庫使云端產生記憶,從而達到識別目的與效果。
首先準備同一人的圖片庫,并將圖片通過Face++的云端算法處理,從而獲取face-id,每張圖對應一個face-id。在調用接口之后,F(xiàn)ace++會返回這批圖片的face-id,并保存所有圖片的face-id,并且將其輸出到output-face-ids.txt。構建構建face-id庫最重要的環(huán)節(jié)就是為person添加face,person是face-id的容器。
4.2.3 云端識別
云端識別所需要調用訓練接口、查詢接口、識別接口。識別階段分為訓練和識別反饋兩個步驟。
第一步訓練,調用訓練接口,訓練的調用較為便捷,只需提供person的名字即可調用,如接口中所示為abc。因為這是一個是異步調用的接口,所以無法立即獲取結果,需要查詢才能獲取結果。查詢也有相應的接口:其中的session_id由訓練接口調用后的返回值中獲得。訓練結束之后。需將待識別的圖像進行圖3中的步驟獲得待識別圖像的face-id。
第二部進行識別,直接調用識別接口。最后Face++會返回一個相似度比值以及Face++的判斷true或者fake。增加或者刪除person的face信息應重新訓練該person的數(shù)據(jù)。
圖3 人臉識別過程
4.3 刷臉開鎖保險箱驅動設計
驅動部分主要是,PcDuino3b給步進電機提供電壓以及脈沖信號使步進電機得到運作[12]。這個環(huán)節(jié)需要用到步進電機、步進電機驅動板、跳線和pcDuino上自帶的引腳。
轉速控制問題非常重要,轉速要盡可能的小而穩(wěn),否則轉速太快容易對器械造成損傷引起不必要的損失。因為保險箱的開關需要,所以步進電機的驅動不僅僅要考慮轉速還要考慮轉動的方向。
4.3.1 整體測試
硬件軟件搭載完成之后,系統(tǒng)測試成為保險箱發(fā)開的最重要的環(huán)節(jié)。在硬件進行運行前,對硬件性能、運作過程以及接口對接等各方面都要把關。軟件方面有需求分析、設計和編碼各階段產品的最終檢查。這些都是為了保證系統(tǒng)的準確性、連貫性和完整性。因為硬件和軟件已經成為一個密不可分的整體,所以測試的內容不分軟硬件,其中包括硬件模塊協(xié)調工作、主要功能測試、容錯能力測試、模塊間的關聯(lián)測試等等。依據(jù)保險箱的正常使用步驟完成單元測試、邊緣測試、整體測試。通過測試,及時發(fā)現(xiàn)存在于系統(tǒng)中的軟硬件錯誤并根據(jù)測試結果對硬件進行替換或對程序進行修改,從而確保產品的正常運行。
將pcDuino的HDMI接口連上顯示器,接上電源后顯示器開始顯示程序運作,同時準備一臺pc與pcDuino連入同一局域網,并可遠程訪問pcDuino。測試流程如圖4所示。
圖4 測試流程圖
1)動態(tài)圖像采集測試:攝像頭開始啟用,使攝像頭對著單一靜止的物體,消除光線、灰度、動態(tài)的干擾。同時通過pc遠程訪問pcDuino的內部儲存,在圖像采集文件夾查看采集到的圖像,查看圖像,并對圖像的高度、寬度、對比度、亮度等參數(shù)進行確認,確認結果即可得知圖像采集參數(shù)設置的運行程序是否正常。然后查看圖片內容和圖片數(shù)量,此時攝像頭處于靜態(tài)視野,圖片采集應不超過兩張,一張是開機樣本圖,一張是攝像頭瞬時視角圖。如采集圖像不超過2張則運作正常,反之則運行失敗。
圖5 動態(tài)采集圖像
將攝像頭面前的物體進行位移產生動態(tài)運動,觀察顯示器窗口的數(shù)據(jù)反饋。再次訪問圖像采集文件夾,觀察圖像,圖像增多且顯示為運動后的攝像頭視野圖片則運作正常,反之則運作沖突。如圖5所示為測試動態(tài)采集的圖像。
2)云端識別測試:登入Face++網站,進入后臺管理平臺查看之前所添加的person是否完整。完整的person的才能對采集的圖片進行識別。
云端識別測試在攝像頭測試成功的基礎上才能進行,訪問http請求的程序,返回成功信息。
3)驅動測試:驅動測試作為系統(tǒng)測試的最后一個步驟,必須建立在判斷識別正確的基礎上而展開測試。而判斷測試成功的依據(jù)較為簡單,人臉識別成功之后,F(xiàn)ace++返回true,觸發(fā)驅動電機開門程序,驅動電機開始運作并將保險箱門鎖開啟則視為測試成功,反之則為失效。
后期對采集的樣本庫進一步優(yōu)化,使得用戶可以更加方便的將需要的測試樣本添加進去,使得多種不同環(huán)境下,對用戶樣本進行更加精細的對比和識別輸出。
總結多種不同的識別情況,樣本相似度百分比設置及正確率識別,在室內正常光照強度下進行實際閾值調整并訓練學習后再測試。通過對相似度百分比進行調整,實際測得的數(shù)據(jù)經過整理后進行進一步分析。
圖6 相識度百分比調整與識別正確率對應關系趨勢圖
數(shù)據(jù)分析如圖6所示,可以看出,在相似度50%左右時,識別正確率達到最優(yōu)值(95%),因此選擇50%作為用戶的默認閾值。可以根據(jù)用戶對安全性的實際需求環(huán)境進行進一步調整和測試。同時也可以更加不同的光照環(huán)境進行調整以達到最優(yōu)識別效果。
在成功實現(xiàn)遠程刷臉控制系統(tǒng)之后,也發(fā)現(xiàn)一些有待改進的不足。比如:云端人臉識別云端處理速率不可控的,且?guī)捯筝^高所以在低帶寬的網絡環(huán)境下會間接導致人臉識別的反饋速度較慢。pcDuino計算能力較大時,發(fā)熱量也隨之增大。
通過研究和改進,重新定義采集圖片大小的方式來壓縮本地采集的圖像,這樣減輕帶寬的負擔的同時不會對識別精度造成太大影響。在保險箱底部pcDuino板放置處保持底部懸空優(yōu)化散熱結構設計。
下一步將在用戶交互、攝像頭調校、對焦及識別精度方面進一步改進,完善和改進智能保險箱的用戶體驗。
[1]黃華盛,楊阿慶.基于PCA算法的人臉識別[J].電子科技,2015,28(8):98-101.
[2]首照宇,楊曉帆,莫建文.基于改進的RPCA人臉識別算法[J].電子技術應用,2015,41(9):157-160.
[3]穆新亮,周水生,鄭 穎.基于p范數(shù)的QR-KPCA人臉識別算法[J].西安理工大學學報,2015(1):100-105.
[4]陳立潮,張秀琴,潘理虎,等.煤礦考勤系統(tǒng)中人臉識別算法的研究[J].工礦自動化,2015,41(4):69-73.
[5]謝 佩,吳小俊.基于Shearlet變換和均勻局部二值模式特征的協(xié)作表示人臉識別算法[J].計算機應用,2015,35(7):2056-2061.
[6]周 全,魏 昕,陳建新,等.一種基于稠密SIFT特征對齊的稀疏表達人臉識別算法[J].電子與信息學報,2015,37(8):1913-1919.
[7]潘禹岐,江銘炎,張振月.基于流形的局部加權協(xié)從表示人臉識別[J].計算機應用研究,2016,33(7):2206-2209.
[8]董文彧,馮 瑞,郭躍飛.基于均勻LBP和稀疏編碼的人臉識別算法[J].計算機應用與軟件,2015,32(1):175-178.
[9]陳 莉,趙 峰.基于支持向量機的局部二值模式加權算法在人臉識別中的應用[J].科技通報,2015(7):111-114.
[10]趙繼東,李晶晶,魯 珂,等.一種魯棒的多態(tài)人臉識別算法[J].電子科技大學學報,2015(2):278-282.
[11]萬 源,李歡歡,吳克風,等.LBP和HOG的分層特征融合的人臉識別[J].計算機輔助設計與圖形學學報,2015(4):640-650.
[12]廖延娜,馬 超.基于稀疏表示的人臉識別系統(tǒng)設計與實現(xiàn)[J].電子設計工程,2016,24(17):153-155.
TechnicalResearchandDevelopmentofRemoteMonitoringSystemofFaceRecognitionSafeDepositBox
Liu Kun
(College of Information Technology, Beijing Normal University at Zhuhai,Zhuhai 519087, China)
With the development of science and technology, more and more enterprises and families use the brush to open the box, in order to make it more secure and convenient for user management, remote control can be put on the face of the lock box. Brush face lock safe remote monitoring system based on face recognition technology, using a combination of hardware and software, including image acquisition, motor drive, video and motion capture, through the upload to the cloud and is connected with the terminal equipment, achieve the purpose of remote monitoring, the development of new intelligent safe. With the development of the face recognition technology and the development of the microcomputer, it provides a good environment and condition for the design of the intelligent safe. Experiments show that the safe pcDuino micro computer development platform based on the research and development, and through OpenCV and Face++ cloud recognition platform cooperation, realize remote monitoring, face recognition, cloud control switch function. Remote monitoring of the face of the lock box can be opened for more individuals, businesses and families to help.
pcDuino;OpenCV;Face++;face recognition;safe deposit box;
2017-04-15;
2017-05-04。
廣東省教育廳育苗工程項目(2013LYM_0102)。
劉 琨(1980-),女,江蘇常州人,碩士研究生,副教授,主要從事物聯(lián)網技術、車聯(lián)網技術等方向的研究。
1671-4598(2017)10-0094-04
10.16526/j.cnki.11-4762/tp.2017.10.025
TP399
A