趙娟
[摘? ? 要] 人臉識別是公共安全領域的研究重點。通過人臉識別技術進行人臉跟蹤、人臉檢測、人臉比對來比較人臉的視覺特征信息從而進行身份鑒別。隨著移動互聯網的快速發展,移動終端人臉識別應用日益廣泛。文章主要探討人臉識別在Android系統中的實現以及用戶安全登錄,包括人臉檢測、特征提取和特征識別。
[關鍵詞] 人臉識別;系統開發;Android
1? ? ? 背? ? 景
隨著互聯網的發展,人臉識別技術被廣泛地應用于各種領域。基于Android的人臉識別具有非常廣闊的發展前景,本文基于Android,重點研究人臉識別技術應用,并對應用開發的關鍵技術進行闡述,最后介紹了實現Android系統人臉識別應用的功能模塊。
對于人臉識別技術,目前的算法分為2種。一種是在線人臉識別,比如face++、百度AI等,通過傳遞人臉圖片給服務器處理返回接口。這種方式的優點是:服務器算法強大、識別準確率高、支持大規模人臉識別數據。比如,能支持10萬人對比。這種方式的缺點是:慢、需要良好網絡環境的支持。相機預覽幀率一般都在30 fps 以上,一般用戶使用網絡處理一張圖片都需要至少1 s以上,那么如果需要在手機上實時展示處理結果幾乎不太可能。另外一種是離線人臉識別, 人臉對比算法在本地,人臉數據也在本地,完全是離線環境也能夠正常運行。隨著Android手機運算性能的提高,算法已經足夠高效,處理一張人臉圖片可以在100 ms以內,對于應用,完全的離線人臉簽到考勤適合小公司,類似以前那種指紋機,需要通過SD卡導出,但是一般安卓手機都有網絡,實際上可以通過網絡同步方式同步到服務器。這種方式的優點是: 識別快、體驗好、無網絡也可以正常使用。所以在Android環境下,綜合考慮使用離線人臉識別,較適合當今的技術發展。
目前,人臉識別已應用在安全認證、預警防控、刑事偵查等各個方面。在國內,人臉識別的應用大都還停留在PC機上,基于移動設備的研究很少。而且,隨著移動信息安全意識的提高,在移動終端上進行人臉識別具有廣闊的發展前景,設計實現基于Android的人臉識別系統,可更好地滿足移動終端的電子簽到、人員識別與警務需求。本文選擇基于face++的人臉識別算法實現人臉特征提取、特征識別與檢測。
2? ? ? 系統實現
2.1? ?系統功能實現
開發基于Android的人臉識別系統,包括系統開發工具的選擇、開發環境的搭建以及系統各功能模塊的實現,為以后進一步研究基于Android平臺人臉檢測和識別算法奠定基礎。系統實現過程分為以下幾個階段。系統經過開發之后,實現的功能見表1。
2.2? ?系統數據庫的實現
對于本系統而言,首先需要建立一個存放用戶信息的數據庫。在實現系統識別功能之前,需要導入進行簽到、識別的全體用戶信息。因為本系統采用Android開發平臺,一般可以從關系數據庫導入到嵌入式SQLite中,便于系統對這些數據進行后期處理和調用、比對,用戶信息包括三部分內容,即身份信息、圖像信息和簽到信息。身份信息是指用戶的基本身份數據,如身份證號、性別、住址等;圖像信息則指用戶的人臉圖像數據,包括人臉樣本信息、照片等此種越多越好,有利于進行比對識別;簽到信息包括簽到時間、簽到地點等,可以采用地理定位進行地圖實名制簽到等。這些用戶信息結合在一起,形成一個完整的用戶信息。對于不同的應用,可對實體屬性進行相應的增刪。比如說,如果該系統應用于校園中,以學生為用戶,則其屬性可以添加學號、導師姓名等,其主鍵也可進行靈活調整。
2.3? ?系統人臉識別的實現
圖像處理方法有很多,可根據需要,有選擇地使用相應的方法。通常使用的方法有膚色提取。膚色提取是指對臉部區域的顏色提取。在確定臉部區域上,獲取則比較準確,成功率達到95%以上,并且速度快,工作量小。由于圖像在不同環境中受到不同光線的影響,其亮度就變得或暗或亮。對圖像的亮度進行調整,主要采取的措施是對圖像進行光線的補償。
高斯平滑:在圖像的采集過程中,由于各種因素的影響,圖像中往往會出現一些不規則的隨機噪聲,如數據在傳輸、存儲時發生的數據丟失和損壞等,這些都會影響圖像的質量,因此需要將圖片進行平滑操作以此來消除噪聲。
對比度增強:將所要處理的區域和周圍圖像區域進一步拉開,使其對比度更加明顯,主要通過像素的聚集來實現,如表2所示。
現在有很多人臉識別的技術可以使用,但筆者認為還是離線端的SDK比較實用。推薦其效率比OpenCV要高,檢測速度很快,20 ms左右就可以檢測出來;獲取特征點(人臉比對)的效率也很高,基本上在200 ms左右。
目前在筆者的應用內主要使用了 Face++ 的人臉檢測功能,本文和大家分享一下其集成過程和一些使用心得。Face++ 的集成過程非常簡單,在官方文檔上有說明支持的系統為 5.0 及以上系統,但其實在 4.4 系統上也可以運行。Face++的優勢除了多角度檢測之外,其每次檢測并不獨立,即這一次的檢測結果會指導下一次的檢測,所以Face++在檢測到人臉之后,識別的時間會大幅減少。而 Seeta FD 的檢測每次都是獨立的,所以在無人臉的情況下,Seeta 的檢測速度要快于Face++, 但是檢測到人臉之后,因為應用整體的計算量增加,導致 Seeta 的檢測速度降低的非常明顯,大大慢于Face++。
本系統采用Android開發平臺和人臉識別技術。Android系統具有以下特征:Android開放的平臺允許任何移動終端廠商加入到Android聯盟中,Android技術不受運營商的制約,Android平臺提供給第三方十分廣泛、自由的環境。
2.4? ?系統特征
在此系統開發過程中,人臉識別技術較其他的技術比較具有以下特征:
(1)通過使用最大類間方差法(OTSU)自適應調整閾值,使膚色分割更為精確,并僅對分割后的區域采用Adaboost算法進行人臉檢測。這種自適應膚色分割與Adaboost相結合的人臉檢測方法,更加細化了人臉預估位置,對Android平臺攝像頭采集過程中存在的光照、陰影等影響具有很好的抗干擾能力。
(2)對Shearlet變換得到多尺度多方向的人臉特征進行編碼融合,并將融合后的尺度圖像進行分塊加權級聯,可以顯著提高人臉識別效果。
(3)Shearlet自適應加權融合特征的稀疏表征人臉識別算法利用加權融合的Shearlet特征構造字典,對光照、表情、姿態以及局部形變等影響擁有較好的改觀性。
4? ? ? 總? ? 結
目前,我國從事人臉識別行業的單位越來越多,如北京奧運會實名制入場票證系統將人臉識別技術推向新的高度,為人臉識別技術的應用打下了堅實基礎。各大火車站、高鐵安檢區域人臉識別系統開始招標,如鄭州客運中心站安檢區域已安裝使用身份識別的高科技人臉識別安檢系統。人臉識別相關的研究已經取得很大的進展。
主要參考文獻
[1]王成浩,李鑫宇,李麗娟.Android開發技術的學習及應用研究[J].信息與電腦:理論版,2019(3):89-90.