北方工業(yè)大學(xué) 韓 月 鄭 諧 朱書豪 宋 帥 張 鵬 王卓然
?
基于ARM的嵌入式行人檢測(cè)系統(tǒng)
北方工業(yè)大學(xué) 韓 月 鄭 諧 朱書豪 宋 帥 張 鵬 王卓然
【摘要】在現(xiàn)有的行人檢測(cè)算法的基礎(chǔ)上,本文在基于ARM的嵌入式系統(tǒng)下采用深度攝像機(jī)獲取場(chǎng)景的深度信息和彩色信息,使用距離信息的閾值分割方法確定行人頭肩部出現(xiàn)的區(qū)域,然后對(duì)頭肩部區(qū)域提取梯度直方圖特征并采用支持向量機(jī)對(duì)目標(biāo)進(jìn)行分類和識(shí)別。
【關(guān)鍵詞】ARM;行人檢測(cè);JNI
行人檢測(cè)技術(shù)作為智能交通的核心技術(shù),其研究始于20世紀(jì)90年代,且每年都有大量的研究成果出現(xiàn)。隨著計(jì)算機(jī)硬件和視頻采集設(shè)備的發(fā)展,該領(lǐng)域提出了很多具有代表性的行人檢測(cè)算法[1][2][3]。來(lái)自法國(guó)的研究人員Navneet Dalal和Bill Triggs[3]2005年在CVPR提出的基于梯度方向直方圖和支持向量機(jī)的行人檢測(cè)算法取得了很好的檢測(cè)效果,目前已成為行人檢測(cè)領(lǐng)域的經(jīng)典算法之一。行人檢測(cè)技術(shù)在日常生活中、客流量統(tǒng)計(jì)、交通監(jiān)視等領(lǐng)域有著非常重要的實(shí)用價(jià)值和廣闊的發(fā)展前景。
近年來(lái),隨著視頻采集設(shè)備的不斷發(fā)展,在基于視頻的行人檢測(cè)領(lǐng)域出現(xiàn)了一種新方法——基于深度圖的行人檢測(cè)方法,其為客流檢測(cè)技術(shù)研究提供了一個(gè)全新的切入點(diǎn)。該方法通過(guò)攝像機(jī)從三維立體的角度描述真實(shí)場(chǎng)景的深度信息,且不受光照變化和陰影等對(duì)檢測(cè)結(jié)果的干擾。此外,還可以利用不同目標(biāo)之間的距離信息有效地克服在平面圖像中容易出現(xiàn)的遮擋造成的影響[4][5][6]。
本文是基于ARM的嵌入式平臺(tái)下使用OpenCV開發(fā)的行人檢測(cè)算法,經(jīng)過(guò)測(cè)試,取得了較好的效果。下面我們將在第二節(jié)介紹系統(tǒng)硬件,第三節(jié)中介紹算法在系統(tǒng)上的實(shí)現(xiàn)。第四節(jié)中介紹系統(tǒng)測(cè)試的結(jié)果。
ARM處理器,是Acorn計(jì)算機(jī)有限公司推出的一款RISC微處理器。ARM處理器不僅具有低功耗、低成本和高性能等優(yōu)勢(shì),同時(shí)具有CISC(Complex Instruction Set Computer)以及RISC(Reduced Instruction Set Computer)兩種體系架構(gòu),可以根據(jù)不同的需求來(lái)選擇使用不同的架構(gòu)。此外,ARM處理器在新近推出的架構(gòu)中可以同時(shí)支持ARM指令集和Thumb指令集,采用雙指令集可以更加有效地使用內(nèi)存空間。目前,搭載ARM處理器架構(gòu)的設(shè)備數(shù)量也遠(yuǎn)遠(yuǎn)超過(guò)了Intel,占領(lǐng)移動(dòng)終端市場(chǎng)的絕大部分,目前市場(chǎng)上使用用戶較多的三星、HTC、iPhone以及所有的安卓手機(jī)都是基于ARM架構(gòu)的。ARM處理器不僅在移動(dòng)終端具有不可撼動(dòng)的地位,在PC端也有了新的發(fā)展,2011年時(shí)微軟就宣布Windows將正式支持ARM處理器,目前windows8已可以同時(shí)支持ARM和X86兩種架構(gòu)。
故采用ARM處理器的嵌入式系統(tǒng)就具有強(qiáng)大的數(shù)據(jù)處理能力,且基于ARM的嵌入式系統(tǒng)可以在Linux等眾多操作系統(tǒng)上進(jìn)行開發(fā),這使其具有極大的開發(fā)潛力。
Android,是一個(gè)以Linux為基礎(chǔ)的開源移動(dòng)設(shè)備操作系統(tǒng),主要用于智能手機(jī)和平板電腦,由Google成立的Open Handset Alliance(OHA,開放手持設(shè)備聯(lián)盟)持續(xù)領(lǐng)導(dǎo)與開發(fā)中。Android已發(fā)布的最新版本為Android 5.1。Android是基于Linux內(nèi)核的綜合操作系統(tǒng),由于其平臺(tái)開放性以及由此帶來(lái)的豐富的APP資源,使得Android系統(tǒng)獲得了眾多開發(fā)者和消費(fèi)者的支持。目前,Android在手機(jī)市場(chǎng)已占有較大份額,且發(fā)展前景良好。體感是基于體感設(shè)備的一項(xiàng)新興技術(shù),體感設(shè)備不僅可以獲取空間的深度信息,還可以在此基礎(chǔ)上進(jìn)行即時(shí)動(dòng)態(tài)捕捉、影像辨識(shí)等。本文應(yīng)用RK3288型號(hào)的Android開發(fā)板與深度攝像頭在Android4.4的環(huán)境下進(jìn)行行人檢測(cè)的開發(fā)。硬件搭建如圖1所示:
圖1 系統(tǒng)硬件搭建
本文中行人檢測(cè)系統(tǒng)通過(guò)深度攝像機(jī)獲取行人的深度信息和彩色信息,再利用OpenCV對(duì)深度圖像進(jìn)行深度過(guò)濾和彩色圖像進(jìn)行行人檢測(cè)。由于Android開發(fā)板的性能限制,本文使用JNI調(diào)用native層的行人檢測(cè)算法。JNI是Java Native Interface的縮寫,它是一種機(jī)制,可以在java程序中調(diào)用其他native代碼,或者使native代碼調(diào)用java層的代碼??梢允怪T如C/C++等語(yǔ)言編寫的代碼可以與運(yùn)行于Java虛擬機(jī)(JVM),從而提高某些關(guān)鍵模塊的效率。具體的行人檢測(cè)算法流程圖如圖2所示。
圖2 行人檢測(cè)算法流程圖
2.1深度圖像處理
深度圖像的預(yù)處理過(guò)程是先剔除由攝像頭誤差產(chǎn)生深度圖像的四個(gè)邊緣的錯(cuò)誤信息,然后再進(jìn)行開運(yùn)算用來(lái)去除較小的明亮區(qū)域在纖細(xì)點(diǎn)處分離物體,這樣在平滑較大物體的邊界的同時(shí)并不明顯改變其面積。
由于深度圖像是將物體的距離值轉(zhuǎn)化為灰度值,而深度攝像機(jī)的有效距離為1m~7m,所以我們對(duì)灰度圖像設(shè)定一個(gè)合理的閾值,然后進(jìn)行二值化處理以進(jìn)行深度過(guò)濾。過(guò)濾后可以看到行人的輪廓,并根據(jù)輪廓大小提取矩形區(qū)域,最終在此矩形區(qū)域中進(jìn)行深度圖像的行人檢測(cè),圖3為獲取的深度圖像及其過(guò)濾結(jié)果。
圖3 深度圖像及其過(guò)濾結(jié)果
2.2彩色圖像處理
本文中行人檢測(cè)算法采用的是Navneet Dalal和Bill Triggs于2005年提出的基于梯度方向直方圖和支持向量機(jī)的行人檢測(cè)算法。方向梯度直方圖特征通過(guò)計(jì)算和統(tǒng)計(jì)圖像局部區(qū)域的梯度方向直方圖作為該局部圖像區(qū)域的表征,能夠?qū)D像的邊緣信息、顏色信息等進(jìn)行綜合描述。經(jīng)過(guò)對(duì)圖像HOG特征提取后,對(duì)所提取的特征進(jìn)行SVM分類。SVM分類器的作用就是對(duì)不同的特征信息按照一定規(guī)則計(jì)算出能夠?qū)@些特征進(jìn)行最優(yōu)分割的超平面,從而實(shí)現(xiàn)目標(biāo)的分類識(shí)別。本文選取5000個(gè)包含頭肩特征的正樣本和10000個(gè)負(fù)樣本進(jìn)行SVM訓(xùn)練。訓(xùn)練流程如圖4所示。
圖4 SVM分類器訓(xùn)練的流程框圖
2.3檢測(cè)結(jié)果
對(duì)系統(tǒng)進(jìn)行測(cè)試,得到如圖5的檢測(cè)結(jié)果。圖5(a)是對(duì)真實(shí)場(chǎng)景的深度圖像過(guò)濾后的結(jié)果,其中白色方框中的區(qū)域設(shè)定閾值分割,圖5(b)彩色圖像中藍(lán)色方框是取深度過(guò)濾的區(qū)域和HOG檢測(cè)結(jié)果的交集的最終結(jié)果??梢钥闯?,系統(tǒng)功能運(yùn)行正常,且達(dá)到了行人檢測(cè)系統(tǒng)應(yīng)滿足的要求。
圖5 檢測(cè)結(jié)果
本文在現(xiàn)有行人檢測(cè)算法的基礎(chǔ)上,引入了體感技術(shù),使用體感攝像頭作為空間的信息采集設(shè)備,設(shè)計(jì)并實(shí)現(xiàn)了基于ARM的嵌入式行人檢測(cè)系統(tǒng),該系統(tǒng)有效地利用了Android所特有的JNI技術(shù),對(duì)算法進(jìn)行了優(yōu)化,極大地提高了執(zhí)行效率。本文中提出的行人檢測(cè)算法,通過(guò)采集大量的現(xiàn)場(chǎng)圖片并標(biāo)記形成正負(fù)樣本訓(xùn)練集,隨后提取正負(fù)樣本中人體頭肩部區(qū)域的HOG特征使用SVM分類器進(jìn)行訓(xùn)練,最后采用基于深度圖像的閾值分割方法,并結(jié)合SVM分類器對(duì)行人進(jìn)行目標(biāo)檢測(cè)識(shí)別。
參考文獻(xiàn)
[1]D.Geronimo,A.M.Lopez and A.D.Sappa,et al.Survey of pedestrian detection for advanced driverassistance systems[J].IEEE Transactionson Pattern Analysis and Machine Intelligenc e,2010,32(7):1239-1258.
[2]M.Enzweiler,and D.Gavrila.Monocular pedestrian detection:survey and experiments[J].IEEE Transactions on Pattern Analysis andMachine Intelligence,2009,31(12):2179-2195
[3]Dalal Navneet,Triggs Bill.Histograms of oriented gradients for human detection[C].Computer Vision and Pattern Recognition,2005.CVPR 2005.IEEE Computer Society Conference on.IEEE,2005,1:886-893.
[4]Nick C.Tang,Yen-Yu Lin,Ming-Fang Weng,and Hong-Yuan Mark Liao,Cross-Camera Knowledge Transfer for Multiview People Counting.IEEE Transactions on image processing,2015,24(1):80-93.
[5]D.Geronimo,and A.M.Lopez.Vision-based Pedestrian Protection Systems for Intelligent Vehicles,BOOK,2014.
[6]Ikemura S,Fujiyoshi H.Real-time human detection using relational depth similarity features[C].Computer Vision-ACCV 2010,Lecture Notes in Computer Science.Los Alamitos,CA,United States:IEEE,2011:25-38.
韓月(1993—),女,河南南陽(yáng)人,北方工業(yè)大學(xué)碩士研究生,研究方向:基于視頻圖像的算法的深入研究。
作者簡(jiǎn)介:
項(xiàng)目支持:2015年北京市大學(xué)生科學(xué)研究與創(chuàng)業(yè)行動(dòng)計(jì)劃項(xiàng)目。