江爛達,儲 珺,繆 君
(南昌航空大學 軟件學院,江西 南昌 330063)
近年來,視頻監控系統被廣泛應用于社會生活的各個方面。隨著社會安全意識的不斷加強,越來越多的公共場所和居民住宅都開始配備監控設施,以此保障自身和財物安全[1]。然而現有視頻監控系統安裝困難;存儲量大;同時系統缺乏智能因素,不能進行身份識別[2]。在這種情況下,多種智能監控系統被研究并開始形成產品應用在生活中。其中人臉識別以其自身優勢,受到了研究人員廣泛的關注[3,4]。現有的研究主要是在PC機上使用靜態人臉圖像實現人臉識別仿真。文獻[5]基于主成分分析(PCA)和最小協方差行列式方法提取重要的人臉特征,相比傳統PCA方法,該方法提高了遮擋和噪聲干擾下的人臉圖像識別率。文獻[6]采用一種新的基于鄰域保持的鑒別嵌入準則,并利用Gabor小波變換減輕人臉在光照和表情變化的影響。文獻[7]設計的基于ZigBee的人臉識別監控系統,只是在前端使用人臉檢測,最終還是將人臉圖像傳回PC機輸出識別結果。
根據上述視頻監控現狀以及研究背景,本文結合人臉識別技術、嵌入式技術與通信技術,設計并實現了一個基于ARM平臺下的人臉識別智能監控系統。針對LBP人臉識別算法在保證實時識別前提下,需要縮小圖像而導致分辨率降低,因而不能在ARM開發板上識別1.5 m以外的人臉的問題。本文首先采用計算量小的ViBe算法提取視頻監控區域內的運動目標,再對檢測到的運動目標區域完成人臉識別功能。通過改進,系統能夠快速準確識別較遠距離的非法闖入者,并給出報警處理,更加滿足現在市場對視頻監控系統功能的要求。
本文的研究方案是設計一款基于ARM平臺下,設計一款隱蔽性強、經濟實用、性能穩定和操作簡便的遠程人臉識別系統。該系統可以對監控區域內人員實時進行身份識別,實現智能監控的目的。該系統主要具有以下幾種功能:
(1)智能監控系統具有運動目標檢測功能。一般監控場景中攝像頭是固定的,因此可以通過建立背景模型,應用背景差分法檢測到是否出現運動目標,實現初步預警。同時也為后續的目標身份識別鎖定處理區域,提高系統實時性;
(2)智能監控系統可以實現人臉識別功能。對出現在監控區域的人員進行身份識別,如果是陌生人闖入,自動提示用戶處理;
(3)智能監控系統具有自動報警功能。如果監控區域被非法闖入,系統在自動記錄信息的同時自動啟動報警裝置;
(4)系統基于ARM開發板作為運行平臺,底板擁有豐富的外圍接口,可擴展功能強。
針對上述研究方案,設計了如圖1所示系統總體結構,先使用ViBe算法對監控區域實現運動目標檢測,再對檢測到的運動目標進行人臉檢測和識別功能。如果是合法用戶,則不報警。如果非法用戶闖入監控區域,系統將發出警報聲并通過短信或者電話的方式遠程提醒使用者發生異常。同時保存當前視頻幀到服務器內,用戶可以通過移動客戶端登錄服務器,下載并查看保存的圖片,真實了解家庭狀況。
系統使用的硬件設備主要以OK210為開發平臺,子模塊主要有電源、USB攝像頭、GPRS通信模塊和LCD顯示屏。OK210開發板接收攝像頭捕獲的視頻圖像,完成運動目標檢測與人臉識別工作。LCD顯示屏顯示識別結果。監控區域被非法闖入時,蜂鳴器發出警報聲,同時GPRS模塊撥打電話或者發送短信給用戶進行報警處理。系統硬件架構如圖2所示。

圖1 系統總體結構圖

圖2 系統硬件架構
OK210是飛凌公司研發的高性能ARM嵌入式計算機核心模塊。主處理器是SAMSUNG S5PV210,主頻最高可達1 GHz,作為最流行的ARM處理器之一,SAMSUNG S5PV210是許多視頻圖像處理應用的理想選擇。OK210開發板支持HDMI音視頻同步輸出,擁有豐富的外圍設備擴展模塊。并通過了CE和FCC認證,擁有可靠的保障。針對上述OK210計算性能及其相對低廉的價格,系統采用OK210作為主處理器。OK210核心板框架如圖3所示。

圖3 OK210核心板框架
系統主要在Ubuntu15.04上使用QT4.8.6完成程序的編譯和調試,并最終移植到基于嵌入式Linux系統的ARM開發板上運行。在系統移植前,需要搭建運行環境。首先在開發板上移植vsftpd服務器,用于保存系統截取的圖片,并提供給用戶下載查看。然后在Ubuntu上交叉編譯OpenCV和QT,以及兩者的相關依賴庫。最后將交叉編譯生成的文件拷貝到開發板的相關目錄,配置好環境變量[8],即可執行程序運行命令。系統包含5個主要功能模塊:圖像采集、運動目標檢測、人臉檢測、人臉識別和Android客戶端實現。
系統使用V4L2打開USB攝像頭實現視頻圖像采集工作。V4L2是一個在Linux系統下視頻驅動的API接口,很大程度上簡化了進行視頻系統開發和維護所需要的工作[9]。V4L2提供內存映射和直接讀取兩種圖像采集方式。本系統選擇內存映射方式,通過采集視頻信號,并將數字化的圖像直接保存在內存當中,防止直接讀取方式可能出現阻塞,而導致系統不穩定情況的發生。
系統采用ViBe算法實現對運動目標的檢測。ViBe算法是一種基于樣本隨機聚類的背景建模算法[10]。相對于其它前景提取算法,ViBe算法計算量小,內存占用較少,在ARM開發板上能實時且更好的檢測到運動目標。ViBe算法分為3個主要內容:
(1)建立背景模型:VIBE算法僅僅使用一幀圖像就可以快速實現背景模型的初始化。隨機選擇每個像素點8鄰域內的N個像素值,作為其模型的樣本值,這樣就構建了每個像素點的背景模型M(x)。
(2)前景檢測:對于待分類像素點x的像素v(x),計算以v(x)為中心,R為半徑的球體SR(v(x))與M(x)的交集,如果交集數滿足給定的閾值#min(本文#min值為2),即若
#{SR(v(x))∩{v1,v2,…,vN}}≥#min
(1)
則判定這個像素點x屬于背景點,否則,判定像素點x為前景點。
(3)更新背景模型:如果某一像素點是前景點,那么它有1/φ的概率更新其所對應M(x)中的一個樣本值。同時隨機更新其鄰域中的樣本值。此外,當某一像素點被連續K次檢測為前景時,將其判定為背景,并更新其背景模型。
若有人闖入監控區域,系統將會通過目標檢測鎖定該區域,隨后通過人臉識別技術實現身份認證。很多情況下,系統只會把人身體部分作為最大外接矩形,而把頭部排除在外。這樣將會極大降低人臉識別率,影響系統的實用性。針對這個問題,通過把求得的最大外接矩形位置上移,人臉區域將被包圍在矩形區域內。由于人臉是在身體上部,因此系統只對矩形區域的上面部分圖像進行人臉識別,進一步縮小了運行時間。通過實驗,本系統將最大外接矩形位置上移其高度的1/2,同時在矩形上方占其高度2/3的圖像區域內進行人臉檢測和識別。圖4(a)所示此時人臉并沒有被包圍在矩形區域內;圖4(b)人臉圖像被包含在上移矩形區域內;圖4(c)通過只處理矩形區域的上面部分,減少人臉識別所需時間,提高系統實時性。

圖4 外接矩形的選擇實驗
針對ARM開發板硬件資源受到限制的原因,本系統采用較容易實現的AdaBoost人臉檢測算法來檢測人臉。該算法包含3個關鍵要素:采用積分圖實現特征的快速計算、使用AdaBoost分類學習方法以及設計級聯結構獲得高效的分類策略。AdaBoost已經成為許多人臉識別系統優先選擇的人臉檢測算法,因為其不僅可以滿足實時性要求,而且還有很高的檢測率。在開始運行系統實現之前,需要創建用戶數據庫。通過人臉檢測模塊為用戶創建人臉庫,并為每張人臉照片匹配對應的名字和標識ID。人臉庫內數據代表合法用戶,如果在視頻監控中捕獲的人臉數據與人臉庫不匹配,表示非法闖入,將觸發報警機制。
經過實驗驗證,AdaBoost算法可以在較為簡單背景下,快速準確的檢測并標識出人臉。但是在監控視頻中,AdaBoost對背景變化非常敏感,很容易將類似人臉區域檢測為人臉,存在誤檢率較高的問題。而本文設計的只在運動目標區域內檢測人臉,可以排除復雜背景中存在的類似人臉區域,更好地實時準確檢測到人臉。
LBP算法能夠有效度量和提取圖像局部紋理信息,具有旋轉不變性和灰度不變性等特性[11]。該算法計算簡便,運算效率高,適合在ARM開發板上運行。所以,本系統選擇使用LBP算法對檢測到的人臉,實現面部特征的提取和識別。該算法的主要思想是:將窗口中心像素點的灰度值設為閾值,然后將鄰域像素點的灰度值與該值進行差值比較。得到的值正數取為1,負數取為0。最后將所有數值串聯成一個二進制數,以此表示圖像的局部紋理特征值。LBP人臉識別主要分為以下幾步:
(1)將一張圖片分成若干個圖片子區域;
(2)對于每個子區域中的一個像素,計算該像素點的LBP值;
(3)計算每個子區域的直方圖,然后對該直方圖進行歸一化處理;
(4)將得到的每個子區域的統計直方圖連接成為一個特征向量,得到了整幅圖的LBP紋理特征向量;將待識別人臉圖像的LBP特征向量,與人臉數據庫中各張人臉圖像的LBP特征向量進行相似度計算,最終判定該張人臉是否與人臉庫已注冊的人臉匹配。
在檢測到有陌生人入侵監控區域時,系統會自動截取圖片保存在FTP服務端上。用戶可以使用設計的一款基于Android的FTP客戶端,下載和查看服務器里的圖片,更加清楚了解家庭狀況。移動客戶端開發流程如圖5所示。首先客戶端發送連接請求,如果服務器偵聽到該連接,會和客戶端建立一個FTP會話。當需要進行數據傳輸時,客戶端與服務端會在兩個新建立的端口間進行數據操作。操作完成后,斷開與服務器的連接。

圖5 FTP客戶端流程
為了驗證設計的這種在檢測到運動目標的基礎上,再進行人臉檢測和識別方法的魯棒性和實時性,在不同家庭環境下,通過同一個USB攝像頭捕獲多段視頻數據進行實驗分析。本文上位機測試使用的是聯想天逸510p臺式機,該機擁有Intel(R) 3.60GHzCPU和4.0GB內存,而編程工具主要是VS2010和QT5.10。LBP人臉識別算法中,中心像素點到周圍像素點的距離參數設置為3,鄰域像素點個數為8,圖像的x和y方向各均分為8塊。而LBP特征向量相似度閾值的選擇將會直接影響到人臉識別率,針對家庭情況,本文在距離攝像頭1m到6m的范圍內,為5個實驗人員各自創建60張人臉圖像作為人臉庫。在人臉識別算法中,為了達到較高的人臉識別性能,需要平衡誤檢率和漏檢率,本文通過求得人臉庫人臉的類內卡方距離與類間卡方距離,得到如圖6所示的卡方距離分布,由圖6中類內距離與類間距離曲線的交點可知,98.35為LBP特征向量相似度的最佳閾值,此時人臉識別性能達到最優。

圖6 卡方距離分布
如前所述,AdaBoost算法雖然計算速度快,但是在復雜多變場景下,人臉檢測效果較差,這將不可避免的降低后續人臉識別率。本文分別用AdaBoost算法和設計的ViBe+AdaBoost方法,對5個實驗人員在視頻圖像中各自檢測60次人臉。從表1可以看到,AdaBoost算法的誤檢率為24.67%,而設計的ViBe+AdaBoost算法的誤檢率為9.33%。通過數據發現,在較復雜背景下,ViBe+AdaBoost算法有效提高了人臉檢測效果。

表1 人臉檢測誤檢率統計
為了驗證系統的人臉識別性能,在保證能實現較遠距離人臉識別的前提下,將本文設計的先運動目標檢測,再用LBP算法實現人臉識別的方法,與LBP人臉識別和PCA人臉識別算法,在OK210開發板上進行對比。表2給出了3種方法的識別率和平均識別時間。可以看到,本文設計的方法,無論是識別的準確率還是實時性都要優于其余兩種算法。在真實場景中,通過只識別運動目標區域內的人臉圖像,可以有效降低人臉識別算法的誤檢率并提高實時性。

表2 人臉識別效果
完整的基于ARM的人臉識別智能監控系統實物如圖7所示。LED屏幕上顯示了人機交互界面,界面包含攝像頭實時采集的視頻圖像。用戶可以通過點擊register按鈕建立人臉數據庫,點擊recognize按鈕開啟智能監控功能。利用數字鍵盤,用戶可以設置接收警報的電話號碼。當發生非法入侵時,系統會根據設置,通過發送短信或者撥打電話的方式通知用戶,同時OK210開發板上的蜂鳴器將會啟動發出蜂鳴聲,起到一定警示作用。

圖7 系統實物
當用戶接收到電話或者短信報警時,可以通過FTP客戶端登錄服務器,下載并查看具體是誰闖入了家庭,以此采取應對措施;圖8(a)為移動客戶端的登陸界面,輸入IP地址,端口和賬號等信息,便可登陸vsftpd服務器;圖8(b)所示系統所保存的視頻幀文件;圖8(c)所示通過長按每個文件,便可根據彈出的子對話框,進行相應操作;圖8(d)顯示用戶從服務器上下載到手機本地的圖片文件;圖8(e)顯示其中一張下載的圖像畫面,通過該圖片,用戶可以清楚的了解非法闖入者的相貌特征,掌握到關鍵證據。

圖8 Android客戶端操作界面
本文主要設計并實現了一種基于ARM平臺下人臉識別智能監控系統。詳細闡述了系統的總體設計方案,并給出了系統軟硬件平臺的設計和搭建。本文設計的先在視頻監控中檢測運動目標,再進行人臉識別的方法。解決了由于ARM開發板運算能力不足,無法實現較遠距離人臉識別功能的問題。同時,通過移動求得最大外接矩形,并只處理矩形的局部區域提高了系統的識別率與實時性。系統能夠對視頻圖像進行采集和分析,自動抓取人臉實時比對,發現非法目標自動報警提示用戶采取應對措施。實驗驗證了系統的穩定性,為智能視頻監控系統的設計提供了一個完整的解決方案。隨著監控行業的不斷發展,本文設計的人臉識別智能監控系統將有廣泛的應用前景。
[1]ZHANG Bin.The analysis and exploration of intelligent buil-ding security monitoring system[J].China Public Security,2016,13(5):110-113(in Chinese).[張斌.智能樓宇安防監控系統建設的現狀分析和實踐探索[J].中國公共安全,2016,13(5):110-113.]
[2]YUAN Jianfei,YUAN Yuhao,JIAN Dandan.Design and implementation of locomotives video surveillance system based on Hi3521 chip[J].Computer Engineering and Design,2016,37(7):1781-1786(in Chinese).[袁劍飛,袁宇浩,簡丹丹.基于Hi3521的機車視頻監控系統的設計與實現[J].計算機工程與設計,2016,37(7):1781-1786.]
[3]De-la-Torre M,Granger E,Sabourin R,et al.Adaptive skew-sensitive ensembles for face recognition in video surveillance[J].Pattern Recognition,2015,48(11):3385-3406.
[4]An L,Bhanu B,Yang S.Face recognition in multi-camera surveillance videos[C]//21st International Conference on Pattern Recognition.IEEE,2012:2885-2888.
[5]ZHANG Bei,WANG Shunfang.PCA face recognition algorithm based on robust MCD estimator[J].Computer Engineering and Design,2015,36(3):778-782(in Chinese).[張蓓,王順芳.基于MCD穩健估計的PCA人臉識別算法[J].計算機工程與設計,2015,36(3):778-782.]
[6]CHEN Si,ZHAO Huanxi,ZHU Shunzhi.A new kind of zero space face recognition algorithm based on Gabor feature[J].Journal of Xiamen University:Natural Science,2016,55(1):108-113(in Chinese).[陳思,趙歡喜,朱順痣.一種新的基于Gabor特征的零空間人臉識別算法[J].廈門大學學報:自然科學版,2016,55(1):108-113.]
[7]SHANG Ying,HUANG Hejie.Face recognition based on ZigBee smart monitoring system[J].Electronic Test,2013(23):62-63(in Chinese).[商瑩,黃荷潔.基于ZigBee的人臉識別智能監控系統[J].電子測試,2013(23):62-63.]
[8]Ru F,Peng X,Hou L,et al.The design of face recognition system based on ARM9 embedded platform[C]//IEEE 11th International Conference on ASIC.IEEE,2015:1-4.
[9]Hui-jun LI.Design and Implementation of mobile video surveillance system based on V4L2[J].International Journal of Signal Processing,Image Processing and Pattern Recognition,2016,9(1):409-416.
[10]YU Ye,CAO Mingwei,YUE Feng.EVibe:An improved vibe algorithm for detecting moving objects[J].Chinese Journal of Scientific Instrument,2014,35(4):924-931(in Chinese).[余燁,曹明偉,岳峰.EVibe:一種改進的Vibe運動目標檢測算法[J].儀器儀表學報,2014,35(4):924-931.]
[11]Kumar VV,Reddy KS,Krishna VV.Face recognition using prominent LBP model[J].International Journal of Applied Engineering Research,2015,10(2):4373-4384.