周利杰,郝瑞林,蔡國慶,孫迎建,劉 輝
(1.河北水利電力學院機械工程系,河北省滄州市黃河西路49號 061001;2.河北省工業(yè)機械手控制與可靠性技術創(chuàng)新中心,河北省滄州市黃河西路49號 061001)
智能視頻監(jiān)控采用機器視覺技術,在不需人為干預的情況下實時分析視頻圖像,并提取關鍵信息,實現(xiàn)對場景中目標的定位、識別和跟蹤。在視頻監(jiān)控過程中,最重要的環(huán)節(jié)就是進行人形探測??焖倏煽康娜诵翁綔y方法是智能視頻監(jiān)控的核心。常用的人形探測方法有紅外報警法[1]、微波探測法[2]、機器視覺法等[3]。紅外報警法和微波探測法對人體和動物都具有敏感性,探測誤差較高。機器視覺法能夠利用一定的人體輪廓成像特征,并通過圖像處理,最終發(fā)現(xiàn)和定位人形目標,具有較高的魯棒性和實用性。基于機器視覺的人形識別技術是機器視覺、圖像處理以及計算機技術的融合,是安防和監(jiān)控系統(tǒng)的重要研究方向,能夠應用于安防監(jiān)控、人機交互、交通控制、目標跟蹤等多個領域。
目前較為成熟的人形識別技術有卡爾曼濾波算法[4]、YOLO(You Only Look Once)算法[5]、粒子濾波算法[6]、相關濾波算法[7]、深度學習算法[8]、haar特征算法[9]等。其中,卡爾曼濾波算法、YOLO算法、粒子濾波算法、相關濾波算法、深度學習算法由于計算量較大,通常需要配備運算速度較快的計算機平臺,不適合集成到體積小、處理能力低的嵌入式平臺中;Haar特征算法數(shù)據(jù)處理量較小,能夠集成到嵌入式平臺中[10]。人形識別準確率是評價人形識別性能的重要指標,常規(guī)的特征識別方法只能夠識別單一特征,當人形目標身體姿態(tài)變化后會導致準確率較低。本文采用haar特征+adaboost算法,并結合OpenMV(Open Machine Vision)機器視覺模塊,設計了一種多特征組合人形識別方法,能夠識別人形的多個特征,提高人形識別的準確率??焖俑櫺阅芤彩窃u價人形識別跟蹤性能的重要指標,跟蹤性能較差會導致丟失人形目標的現(xiàn)象發(fā)生。本文采用PID控制算法實時控制步進電機和舵機,能夠快速跟蹤視野內的人形目標。
人形識別安防攝像機主要由OpenMV機器視覺模塊、錄像模塊、WiFi模塊、步進電機、步進電機驅動器、舵機、手機端APP組成。系統(tǒng)組成方案如圖1所示?;趆aar特征+adaboost算法,提出了一種多特征檢測方法,用于識別視野內的人形特征,并定位人形特征在視野內的位置,同時計算出人形特征的中心點坐標和視野中心與人形特征中心點的差值。隨后,OpenMV機器視覺模塊采用PID算法將差值轉換為驅動步進電機和舵機的驅動信號,從而控制步進和舵機運動,帶動攝像機追蹤視野內的人形。當OpenMV機器視覺模塊檢測到視野內的人形后,發(fā)出控制信號開啟錄像模塊,錄像模塊將錄制好的視頻存儲到內存卡中;當OpenMV機器視覺模塊未檢測到人形時,發(fā)出控制信號關閉錄像模塊。人形識別攝像機的航向角度由步進電機驅動改變,可實現(xiàn)360°跟蹤拍攝。人形識別攝像機的俯仰角度由舵機驅動改變,可實現(xiàn)180°跟蹤拍攝。
圖1 系統(tǒng)組成方案圖Fig.1 System composition scheme diagram
為更方便地使用人形識別攝像機,本文開發(fā)了手機端APP。通過APP不僅能夠遠程下載內存卡中的錄像文件,而且可以控制人形識別攝像機的工作模式。攝像機有3種工作模式,分別為:手動模式、搜索模式和跟蹤模式。切換為手動模式時,攝像機不具有人形跟蹤功能。攝像機的拍攝角度由使用者通過APP手動調整。切換為搜索模式時,攝像機能夠在360°視野自動搜索人形,搜索到人形后停止搜索,并進行跟蹤攝像。切換為跟蹤模式時,攝像機停留在一個初始的固定觀測角度,當視野內發(fā)現(xiàn)人形后,進行跟蹤攝像,人形特征丟失后返回初始的固定觀測角度。其中,工作在搜索模式時,步進電機控制攝像機以30°的步長完成360°視野搜索。舵機控制攝像機以36°/s的速率實現(xiàn)0~180°視野內目標搜索。攝像機的運動路徑如圖2所示。攝像機整體工作流程如圖3所示。
圖2 搜索模式運動路徑Fig.2 Search mode motion path
圖3 攝像機整體工作流程圖Fig.3 The overall work flow chart of the camera
人形識別攝像機要求能夠在360°的全范圍視野內進行跟蹤拍攝,所以要求攝像機不僅能夠360°旋轉,而且能夠實現(xiàn)俯仰運動。根據(jù)攝像機的功能要求,本文進行了攝像機的結構設計,設計結構如圖4所示。
圖4 人形識別攝像機結構圖Fig.4 Humanoid recognition camera structure diagram
攝像機的結構主要由底座、步進電機、航向支架、電池倉、電池蓋、舵機、前蓋、后蓋和底蓋組成。步進電機的輸出軸與底座固定連接,步進電機的機身內嵌在航向支架內部。當步進電機轉動時,由于底座是固定的,即可實現(xiàn)航向支架的360°旋轉。航向支架上設計有電池倉,可以容納鋰電池。前蓋、后蓋和底蓋裝配在一起形成可俯仰運動的攝像機殼體結構。舵機殼體與航向支架固定連接,舵機臂與攝像機殼體結構固定連接。當舵機轉動時,即可實現(xiàn)攝像機殼體結構的俯仰運動。攝像機殼體結構內部裝配OpenMV機器視覺模塊、攝像頭、錄像模塊、WiFi模塊、步進電機驅動器。結構參數(shù)如表1所示。
表1 攝像機結構參數(shù)
本文基于haar特征+adaboost算法,提出一種多特征人形目標識別方法,并將該方法在OpenMV機器視覺模塊中實現(xiàn)。本文通過OpenCV(Open Source Computer Vision Library)計算機視覺庫訓練人形正負樣本,得到XML類型文件,再將其轉換為OpenMV機器視覺模塊能夠使用的cascade類型文件。進而,OpenMV機器視覺模塊能夠在圖像視野內實現(xiàn)人形目標識別,并定位人形目標以及計算出人形目標的中心點坐標。人形目標中心點坐標和圖像視野中心點的差值再通過PID算法生成控制步進電機和舵機的信號,從而驅動攝像機航向運動和俯仰運動。
本文采用haar特征+adaboost算法進行人形目標識別。haar特征又稱為haar-like特征,該算法是一種常用的機器視覺算法,主要包括:邊緣特征、線性特征、中心環(huán)繞特征、對角線特征[11],如圖5所示。haar特征將白色矩形和黑色矩形的像素差作為特征值,計算方法如公式(1),通過不同的特征值描述圖像中灰度值的變化規(guī)律,完成對圖像中目標的檢查和識別。
圖5 haar特征Fig.5 haar features
(1)
式中,RecSum(ri)代表矩形ri內像素點的灰度值之和;ωi表示像素點的權重,白色矩形的權重為1,黑色矩形的權重為-1。
在實際應用中,為更加高效的計算出haar特征,常采用積分圖法解決重復計算和計算量大的問題[12]。積分圖像的計算公式如公式(2)所示。使用積分圖法只需進行一次積分運算,構造出圖像的積分圖,之后即可通過簡單的查表和加減運算既可以得到任何子窗口的haar特征值[13]。矩形區(qū)域積分圖像法計算公式如公式(3)所示。
(2)
RecSum(r)=ii(x-1,y-1)+ii(x+w-1,
y+h-1)-ii(x-1,y+h-1)-
ii(x+w-1,y-1)
(3)
式中,ii(a,b)表示積分圖像數(shù)值;i(x,y)表示原始圖像(x,y)處的像素灰度值。
采用單一特征進行人形識別時,誤差率較高[14],因此本文采用adaboost級聯(lián)算法將單個弱分類器組合訓練為強分類器。該算法的基本步驟為:訓練樣本(x1,y1),(x2,y2),…,(xn,yn),其中xi表示第i個人形,yi為1時表示人形,為0時表示非人形;初始化樣本權重Ot,j為n-1,并進行歸一化權重計算,如公式(4)所示;對于每個特征,訓練出對應的弱分類器hj(x),并計算弱分類器的權重誤差,如公式(5)所示;將弱分類器進行組合,并更換概率分布,如公式(6)(7)所示;最終生成強分類器,如公式(8)(9)所示。以上步驟可概括為圖6所示的過程。
圖6 采用adaboost級聯(lián)分類器檢測人形過程Fig.6 Humanoid detection process by using adaboost cascade classifier
(4)
(5)
(6)
(7)
(8)
αt=-logβj
(9)
人形識別攝像機在工作過程中,人員闖入攝像機視野時的身體姿態(tài)是不確定的,為了更好的識別人形目標,本文提出一種多特征組合人形識別方法,通過構建了3分類器,每個分類器采用25級級聯(lián),分別識別人形正身、人形背身和人形側身。當任何一個分類器識別成功即認為識別到了人形目標,多特征人形檢測方法工作原理如圖7所示。在構建樣本數(shù)據(jù)集過程中,每個分類器收集1500張正樣本和3000張負樣本,樣本主要來源于實際采集和網絡圖片。樣本收集完成后,統(tǒng)一進行歸一處理,批量處理為24×24像素灰度圖片?;叶然幚頃r,采用公式(10)進行處理,權重值0.3、0.59和0.11為人眼對RGB顏色的敏感程度[15]。
圖7 多特征人形檢測方法工作原理Fig.7 Working principle of multi-feature humanoid detection method
0.11B(x,y)
(10)
本文通過OpenCV計算機視覺庫中的opencv_traincascade.exe進行級聯(lián)分類器的訓練,并生成.xml類型文件,再通過Python腳本轉換工具cascade_convert.py轉換為.cascade文件,并將文件存儲到OpenMV機器視覺模塊的內存卡中,以供OpenMV機器視覺模塊相關函數(shù)的調用。通過對OpenMV機器視覺模塊的編程,即可實現(xiàn)視野內的人形目標識別和定位,識別情況如圖8所示。識別幀率(FPS)可以維持在20~27Hz,能夠滿足攝像機的檢測需求。
圖8 人形目標識別和定位Fig.8 Humanoid target recognition and positioning
為了驗證多特征組合人形識別方法的魯棒性和實時性,將多特征組合人形識別方法和單特征人形識別方法進行對比實驗。實驗過程中,將兩種人形識別方法對準同一段視頻錄像,識別視頻中的人形目標。同時輸出并記錄兩種人形檢測方法能夠正確識別人形的幀數(shù)。實驗結果如表2所示。
表2 識別準確率對比
由實驗結果可知:多特征組合人形識別方法準確率比單特征人形識別方法高27.3%,這主要因為單特征人形識別方法只能夠識別人形正身特征,而多特征組合人形識別方法能夠識別人形正身、背身和側身,當人形目標姿態(tài)變化后,單特征人形識別方法無法有效識別人形特征,同時顯示出多特征組合人形識別方法具有較好的魯棒性和實時性。
為了更加精準的追蹤人形目標,采用PID算法控制步進電機和舵機的運動。步進電機采用兩相四線步進電機,步距角1.8°,12V供電。步進電機驅動器采用A3967驅動器,8細分。舵機采用SG90舵機,5V供電。在人形目標追蹤時,人形目標中心點坐標與視野中心點坐標的差值作為PID控制算法的輸入,經PID算法輸出步進電機的驅動步數(shù)和舵機的角度。為了避免步進電機和舵機的頻繁動作,分別設置了3個像素的差值閾值,當中心點差值大于3像素時才進行PID運算??刂屏鞒倘鐖D9所示。
圖9 人形目標跟蹤流程圖Fig.9 Humanoid target tracking flowchart
為測試人形目標的追蹤性能,本文開展了目標追蹤測試。首先,調整攝像機的角度,將待識別的人形目標調整到攝像頭視野右下角的位置;然后,開啟攝像機的人形目標識別和追蹤功能;最后,輸出人形目標和視野中心的的差值數(shù)據(jù)。步進電機和舵機的差值波動測試曲線如圖10所示。測試結果表明:步進電機和舵機能夠快速跟蹤人形目標,追蹤相應時間不超過1.7s。
圖10 中心點差值波動曲線Fig.10 Center point difference fluctuation curve
錄像模塊和攝像頭安裝在攝像機內部,在步進電機和舵機的帶動下實時對準人形目標,實現(xiàn)人形目標的錄像功能。攝像頭采用索尼IMX322,200萬像素,最低照度可達0.01lux。錄像模塊采用NOVATEK公司的NT96658芯片,該芯片最高頻率可達432MHz,內置1Gb DDR3 SDRAM,可支持500萬像素CCD或者CMOS圖像傳感器,支持高速串口接口和SD卡接口,能夠滿足本文的功能需求。攝像頭和錄像模塊如圖11所示。
圖11 攝像頭和錄像模塊實物圖Fig.11 Physical map of camera and video module
為使攝像機具備遠程控制和傳輸視頻功能,人形識別攝像機中設計有WiFi模塊。WiFi模塊采用RTL8189芯片。該芯片是一款高性能、低功耗、體積小SDIO接口無線模組,符合IEEE802.11N標準,支持IEEE 802.11安全協(xié)議,能夠快速、方便的與無線設備互相聯(lián)通,支持64/128位WEP數(shù)據(jù)加密,支持WPA-PSK/WPA2-PSK安全機制,無線傳輸速率高達150Mb/s,WiFi模塊如圖12所示。
圖12 WiFi模塊實物圖Fig.12 Physical map of WiFi module
為方便用戶使用人形識別攝像機,本文開發(fā)了手機APP。通過WiFi將手機APP與攝像機連接起來,實現(xiàn)控制命令和視頻流的傳輸。APP使用Android Studio開發(fā)平臺,采用Java語言開發(fā)。APP設計有WiFi登錄、工作模式選擇、攝像機運動控制、視頻下載、錄像控制等功能,運行主界面如圖13所示。通過模式選擇按鍵可以設置攝像機在手動模式、搜索模式和跟蹤模式之間切換。通過界面中間偏右側的方向按鍵可以調整攝像機的航向和俯仰角度。通過最右側的功能按鍵可以下載錄制在內存卡中的視頻文件,通過設置按鍵可以設置攝像機的單文件錄像時長、攝像機名稱、WiFi密碼等功能。通過最底部的按鍵可以設置畫面亮度、拍照、暫停/開始錄像、播放音量等功能。
圖13 APP運行主界面Fig.13 APP running main interface
本文設計了一款基于機器視覺的人形識別安防攝像機?;趆aar特征+adaboost算法提出了一種多特征組合人形識別方法,能夠識別人形正身、側身和背身,與單特征人形識別方法相比,識別準確率提高了27.3%,并且人形識別幀率在20~27Hz之間,滿足安防攝像機對魯棒性和實時性的要求。步進電機和舵機采用PID算法實現(xiàn)人形跟蹤功能,經測試,追蹤時間不超過1.7s,滿足安防攝像機對跟蹤快速性的要求。利用Android Studio開發(fā)平臺開發(fā)了手機APP。具有體積小、功能豐富、操作便捷、性價比高的優(yōu)點,適合應用于家庭、商場、倉庫、病房等場所。