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