董秀娟,蘭建平
(1.湖北汽車工業(yè)學(xué)院電氣與信息工程學(xué)院,湖北十堰,442002;2.湖北汽車工業(yè)學(xué)院汽車工程師學(xué)院,湖北十堰,442002)
行人檢測( Pedestrian Detection)是利用計算機視覺技術(shù)判斷圖像或者視頻序列中是否存在行人并給予精確定位[1]。行人檢測需要解決的問題是:找出圖像或視頻中所有的行人,包括位置和大小,用矩形框表示,和人臉檢測類似,它是一類特殊的目標(biāo)檢測問題[2]。因行人表觀和姿態(tài)變化多樣化,行人檢測難度比人臉識別,車牌檢識別的難度要大。關(guān)于智能汽車的行人檢測,可以采取多種方法,與當(dāng)前常用于智能汽車上的傳感器(激光掃描雷達(dá)、相控陣聲納、毫米波雷達(dá)等)相比,光學(xué)視覺信號具有目標(biāo)完整、檢測范圍寬、成本低、更符合人們的認(rèn)知習(xí)慣等優(yōu)點,因此計算機視覺在智能汽車障礙物檢測中的應(yīng)用顯得越來越重要。對行人進行檢測能有效輔助駕駛員及時對外界環(huán)境做出反應(yīng),避免碰撞行人,這對于保障現(xiàn)代城市道路交通安全具有重要的作用,已經(jīng)引起了各國政府部門和相關(guān)研究機構(gòu)的高度重視。
針對車載行人檢測系統(tǒng)存在系統(tǒng)魯棒性和實時性的要求,智能汽車行人檢測技術(shù)重點包括兩個工作:⑴感興趣區(qū)域分割,實際系統(tǒng)中結(jié)合基于圖像特征信息來獲取基于區(qū)域候選框ROI[3](Region of Interest)的方法。⑵目標(biāo)識別,原始圖像經(jīng)過感興趣區(qū)域分割得到可能含有行人的區(qū)域,然后再從這些區(qū)域中找出真正的行人[1,4]。另外介紹兩種行人檢測方法:利用經(jīng)典的HOG+SVM[5]檢測算法做行人檢測;在深度學(xué)習(xí)YOLOv3算法框架下實現(xiàn)行人檢測,并分析兩種方法的優(yōu)缺點。最后展望復(fù)雜城市交通環(huán)境下行人檢測技術(shù)目前面臨的困難和亟待解決的問題。
為了找到每個行人在視頻中每幀的精確位置,行人檢測算法根據(jù)對行人描述方法不同進行分類。如圖1所示,基于形狀模板匹配的檢測方法,通過部位檢測器在單幀圖片中檢測人體。這里用到 5 個部位檢測器(行人的頭部、軀干、四肢)和一個裝配檢測器組成,它們都是基于Haar小波特征,采用支持向量機(support vector machine, SVM)方法訓(xùn)練得到,然后從上到下分層次進行匹配,最后和基于背景建模得到的前景圖像進行形狀匹配,在檢測行人的同時將其大致形狀從背景中分割出來?;诓考z測的方法在一定程度上可以克服局部遮擋帶來的問題,使用該方法時,經(jīng)常與HOG等特征結(jié)合使用,以提高檢測性能。
圖1 人體五個部位的檢測區(qū)域定義示意圖
梯度方向直方圖HOG[6](Histogram of Oriented Gradient)特征成為最近一個主流使用的特征。已有實驗證明融合多種能夠描述人不同特點的特征,能夠獲得更多比僅利用單一特征類型的檢測性能。
目標(biāo)識別的目的是找到圖像中的行人和行人的具體位置,并從中過濾出真正的行人。目標(biāo)識別的方法:⑴將攝像機拍攝的圖像簡單的分割成左上角、右上角、左下角、右下角四個部分;⑵增加圖像分割的數(shù)量;⑶為了更有條理的創(chuàng)建一個行人檢測系統(tǒng),將圖像劃分成10×10的網(wǎng)格,定義分割后每個塊的中心,對于每個中心,取三種不同長寬比例的塊組合;⑷優(yōu)化系統(tǒng)來提高效率;⑸增加網(wǎng)格的數(shù)量,將原來的10×10網(wǎng)格的數(shù)量提高到20×20,從之前的3個塊增加到更多不同長寬比的塊,在同一個中心上取出9個塊;⑹將深度學(xué)習(xí)運用到目標(biāo)識別中,將原始圖像輸入到神經(jīng)網(wǎng)絡(luò)中來降低維度,使用神經(jīng)網(wǎng)絡(luò)來檢測所選擇的預(yù)測塊,使用強化深度學(xué)習(xí)算法,確保算法能夠提供更加精確的邊界框預(yù)測。
梯度方向直方圖(Histogram Of Gradient,HOG),通過檢測局部物體的梯度和邊緣方向信息得到被檢測物體的局部特征,是一種使用廣泛的行人特征表示方法。使用HOG + SVM進行行人檢測時, 從數(shù)據(jù)集讀入正樣本(行人)和負(fù)樣本(非行人, 比如汽車, 樹木, 路燈等),計算HOG特征,根據(jù)采集到的HOG特征向量,提取HOG特征,然后送入SVM訓(xùn)練,得到行人檢測模型,進行行人檢測。
YOLO(You Only Look Once)目標(biāo)檢測算法是 Redmon 等[7]在CVPR2016 上提出的一種全新的遵循端到端深度學(xué)習(xí)的目標(biāo)檢測算法,它能夠提升小目標(biāo)檢測的精度。近幾年Redmon又提出了YOLOv3 目標(biāo)檢測算法。YOLOv3檢測算法將對象檢測重新定義為一個回歸問題,YOLOv3 算法將一幅輸入圖像分成 13×13塊,在每一個小塊上預(yù)測 3個目標(biāo)的邊界框,每個邊界框使用四個描述符:邊界框的中心、高度、寬度、值映射到對象所屬的類進行描述。YOLOv3 引入了多尺度融合的方法,目標(biāo)邊界框參數(shù)的計算方法如圖2所示。
每個邊界框的中心點坐標(biāo)均為相對于其對應(yīng)的cell左上點坐標(biāo)的偏移,注:(bx,by,bw,bh)為預(yù)測的邊界框在特征圖中的中心點坐標(biāo)和長寬;(tx,ty,tw,th)為網(wǎng)絡(luò)學(xué)習(xí)的相對于先驗框的偏移量;(cx,cy)是各個單元的左上角坐標(biāo);Ph, Pw為先驗框相對于特征圖的長和寬。
本文的實驗環(huán)境:Intel Core i7-7700k CPU, NVIDIA GeForce GTX 1070,16GB內(nèi)存,編程語言是anaconda+ pycahrm python。HOG+SVM行人檢測用的數(shù)據(jù)集是INRIA;YOLOv3行人檢測用的數(shù)據(jù)集是coco2007。
圖2 YOLOv3目標(biāo)邊界框參數(shù)的計算方法
下面在多個視頻序列上做行人檢測測試,Positive目錄中有2000個正樣本,Negative目錄中有5000個負(fù)樣本,TestData目錄中有179個樣本。圖3(a)是原始測試圖片,窗口寬高為64×128;圖3(b)是用自己訓(xùn)練的檢測器,HOG+SVM的檢測結(jié)果,速度比較慢,但是在沒有遮擋的情況下識別效果較好;圖3(c)是YOLOv3框架下基于深度學(xué)習(xí)的行人檢測結(jié)果;圖3(d)1YOLOv3檢測時出現(xiàn)了誤檢,把視頻中寬高比接近0.4的樹當(dāng)做行人;圖3(d)2兩個行人遮擋超過50%,YOLOv3檢測時,只出現(xiàn)一個檢測框,不能把單個的行人一一標(biāo)注出來;圖3(d)3 HOG+SVM做檢測時,把墻上的人物廣告當(dāng)成真正的行人標(biāo)注出來了,假行人容易誤檢,后期需要增加負(fù)樣本的數(shù)量;HOG+SVM做行人檢測時不能處理關(guān)于遮擋的問題。為獲得比較好的檢測效果,這里采用多特征融合的方法以及級聯(lián)分類器;為解決速度問題,采用了背景差分法的統(tǒng)計學(xué)習(xí)行人檢測。該實驗結(jié)果表明基于深度學(xué)習(xí)的算法,使用YOLOv3目標(biāo)檢測框架,能夠提高行人檢測的精度。
圖3
關(guān)于智能駕駛行人檢測,許多汽車廠家、大學(xué)和研究機構(gòu)都做了有益的嘗試,到目前為止還沒有一個通用的行人檢測算法能夠在任何場景下檢測出行人來,許多算法和模型要么過于簡單而不能普遍采用,要么過于復(fù)雜難以在實際中應(yīng)用[8]。行人檢測技術(shù)只能“具體問題具體分析”,該領(lǐng)域的相關(guān)先驗資料特別重要(比如監(jiān)控系統(tǒng)中的固定背景,車輛輔助駕駛中的路面信息,交通標(biāo)志等)。對于智能汽車的行人檢測技術(shù)研究目前擬解決的關(guān)鍵問題主要有:⑴ 行人的著裝、姿態(tài)、外界環(huán)境變化較大。在城市交通環(huán)境下,運動或停留的車輛、交通標(biāo)志、信號燈等物品都增大了從背景中分割出感興趣區(qū)域的工作量。⑵ 遮擋問題。在很多應(yīng)用場景中,行人密集,存在嚴(yán)重遮擋時,要想把行人一個個檢測出來,這需要對現(xiàn)有的算法大幅改進。⑶行人檢測一般采用了復(fù)雜的模型,運算量大,要達(dá)到實時非常困難,一般需要大量的優(yōu)化。隨著行人檢測研究的深入,檢測方法的不斷完善, 可以預(yù)見未來道路交通安全問題會得到很大的改善。