譚康霞,平 鵬,秦文虎
(東南大學(xué)儀器科學(xué)與工程學(xué)院,江蘇南京210096)
基于機(jī)器視覺的行人識別技術(shù)作為車輛輔助駕駛系統(tǒng)的重要部分,可以輔助機(jī)動車駕駛員及時預(yù)見事故的發(fā)生[1]。針對傳統(tǒng)可見光攝像機(jī)在夜間識別率低、易受光線變化以及其他光源影響等問題,利用遠(yuǎn)紅外夜視攝像頭[2]的夜間行人識別技術(shù),可以有效地提高夜間駕駛和行人的安全性。
針對紅外圖像中的行人檢測,傳統(tǒng)的研究方法主要有基于閾值分割的方法[3],基于模板匹配的方法[4],基于幀間差的方法[5],但這些方法都存在魯棒性不好的問題,在復(fù)雜場景下紅外圖像行人的識別率較低。因此,一些學(xué)者將特征提取方法與機(jī)器學(xué)習(xí)結(jié)合來進(jìn)行行人檢測,在Dalal[6]等提出的梯度方向直方圖(Histograms of Oriented Gradient,HOG)特征基礎(chǔ)上,Kim[7]等針對遠(yuǎn)紅外圖像的單調(diào)灰度級變化特性,提出局部強(qiáng)度差異直方圖(Histogram of Local Intensity Differences,HLID)特征,然后用支持向量機(jī)(Support Vector Machine,SVM)對該特征進(jìn)行分類學(xué)習(xí)。然而,特征提取與機(jī)器學(xué)習(xí)結(jié)合的方法通常使用滑動窗口法遍歷整幅圖像,產(chǎn)生大量檢測窗口,檢測速度較慢,并且,這些行人檢測方法匹配的特征主要是形狀輪廓、顏色模式等特征。由于紅外圖像存在像素低、噪聲高、圖像模糊以及紋理特征不明顯等特點[8],這些方法對紅外圖像行人檢測的效果并不十分理想。
目前,深度學(xué)習(xí)在目標(biāo)檢測領(lǐng)域取得了突破性進(jìn)展[9-12]。 Joseph Redmon[13]等則基于深度卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建完成端對端的實時目標(biāo)檢測模型YOLO,在保證識別準(zhǔn)確率的同時,大幅提高了檢測速率。
基于之前的研究基礎(chǔ)和技術(shù)發(fā)展趨勢,本文利用YOLO模型來實現(xiàn)駕駛輔助系統(tǒng)中夜間紅外圖像的行人檢測。針對紅外圖像行人檢測的傳統(tǒng)方法不易檢測到遠(yuǎn)處較為微小的行人且目標(biāo)檢測速率慢的問題,本文改進(jìn)YOLO網(wǎng)絡(luò)模型的輸入分辨率,然后在基于實際道路采集的紅外數(shù)據(jù)集上進(jìn)行訓(xùn)練,保證檢測速率的同時,不斷提高檢測準(zhǔn)確率,得到效果最好的模型參數(shù)。在此模型基礎(chǔ)上,本文還探討車速與輸入圖像分辨率的關(guān)聯(lián),建立分辨率與車速的關(guān)聯(lián)模型,使行人檢測系統(tǒng)能適應(yīng)不同車速以發(fā)揮最大性能。
與其他使用滑動分類器的CNN網(wǎng)絡(luò)結(jié)構(gòu)相比,YOLO是可以同時預(yù)測目標(biāo)位置、大小以及類別的統(tǒng)一網(wǎng)絡(luò),是基于深度卷積神經(jīng)網(wǎng)絡(luò)的實時目標(biāo)檢測系統(tǒng)。由于YOLO網(wǎng)絡(luò)具有端對端的特點,從數(shù)據(jù)輸入到結(jié)果的輸出,整個訓(xùn)練和檢測過程都在網(wǎng)絡(luò)模型內(nèi)完成,所以它在保證準(zhǔn)確率的同時,也展現(xiàn)出較快的檢測速度。如圖1為YOLO識別系統(tǒng)。
圖1 YOLO識別系統(tǒng)Fig.1 YOLO detection system
YOLO網(wǎng)絡(luò)把圖像劃分成7×7個網(wǎng)格,如果某網(wǎng)格的中心內(nèi)落有某目標(biāo)物體的中心,則這個網(wǎng)格的任務(wù)就是檢測該物體。每個網(wǎng)格預(yù)測出目標(biāo)的邊界框(Bounding Box)和相應(yīng)的置信度(Confidence)。置信度,即一種用來判斷邊界框是否包含物體以及物體位置是否正確的指標(biāo),通過圖像交并比(Intersection Over Union,IOU)來計算。 IOU為Bounding Box與物體真實區(qū)域(Ground Truth)的交集與兩者并集之比。Confidence和IOU的計算公式如下:
P(Object)為邊界框包含目標(biāo)物體的概率,如果預(yù)測框和真實值百分百重疊,P(Object)=1,則置信度為1;相反,如果網(wǎng)格中不存在預(yù)測框,預(yù)測框和真實值沒有重疊部分,P(Object)=0,置信度為0;BBgt為基于訓(xùn)練樣本標(biāo)注的目標(biāo)真實區(qū)域,BBpt為預(yù)測的目標(biāo)物體的邊界框,area為指定圖像區(qū)域的面積。YOLO在訓(xùn)練過程中檢查整個圖像以學(xué)習(xí)其目標(biāo)物體的給定類別和其背景的上下文信息。
YOLO的網(wǎng)絡(luò)結(jié)構(gòu)中有24個卷積層和2個全連接層,通過穿插1×1的卷積層來減小前一層產(chǎn)生的特征空間。因為全連接層輸入輸出的特征向量必須為固定長度,所以YOLO只能接收固定尺寸的輸入圖片;另外,由于YOLO采用7×7的網(wǎng)格,且每個網(wǎng)格最多只能預(yù)測出2個物體,如果一個網(wǎng)格中出現(xiàn)多個目標(biāo)物體,則無法檢測出來,因此該網(wǎng)絡(luò)對圖像中遠(yuǎn)距離較為微小的目標(biāo)的檢測能力較弱。
YOLOv2模型在YOLO基礎(chǔ)上改進(jìn)而來。YOLOv2的改進(jìn)主要是將YOLO的全連接層刪除,并采用固定框(anchor boxes)來預(yù)測邊界框,模型中只含有卷積層和池化層,因此YOLOv2對不同尺寸的輸入圖片都具有魯棒性。另外,YOLOv2刪除一個池化層來提高卷積層的輸出分辨率;再修改YOLO網(wǎng)絡(luò)輸入圖像分辨率——由448×448改為416×416,使網(wǎng)絡(luò)產(chǎn)生的卷積特征圖的寬高都是奇數(shù),從而產(chǎn)生一個中心網(wǎng)格,因為相對較大的物體通常位于圖像的中心位置,這樣的設(shè)計可以在一定程度上提高檢測效率。YOLOv2還設(shè)置其卷積層的下采樣率為32,因此網(wǎng)絡(luò)輸入圖像分辨率應(yīng)為32的倍數(shù),在416×416的輸入分辨率下,輸出網(wǎng)格尺寸從YOLO的7×7提高到13×13。原本YOLO從一張圖片得到預(yù)測框的個數(shù)為98,而在 YOLOv2采用固定框以后,每個網(wǎng)格預(yù)測9個預(yù)測框,那么有13×13×9個預(yù)測框,達(dá)到1521個,進(jìn)一步提高了檢測精度。
本文在YOLOv2網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上進(jìn)行模型訓(xùn)練。在本文的網(wǎng)絡(luò)結(jié)構(gòu)中,改變輸入圖像分辨率為480×480,則輸出網(wǎng)格尺寸提高到15×15,使得最終特征圖的尺寸更大,在YOLOv2_416×416基礎(chǔ)上進(jìn)一步提高了網(wǎng)絡(luò)模型的對微小目標(biāo)的檢測能力。改進(jìn)的YOLOv2網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示,其中有23個卷積層和5個池化層。
圖2 改進(jìn)的YOLOv2_480×480網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 Improved YOLOv2_480×480 network architecture
當(dāng)車速較低時,駕駛員行車制動安全距離短,因此不需要識別遠(yuǎn)處的行人目標(biāo);當(dāng)車速較高時,行車制動安全距離較遠(yuǎn)[14],因此駕駛員需要及時預(yù)見遠(yuǎn)處的行人目標(biāo)。
基于駕駛車速與制動安全距離的上述特點,本文在保證行人檢測實時性的條件下(取40.5fps),本文提出通過調(diào)節(jié)圖像分辨率來適應(yīng)不同車速下的行人識別率需求并建立車速與輸入視頻圖像分辨率的關(guān)聯(lián)模型,以發(fā)揮行人檢測系統(tǒng)的最佳性能:當(dāng)車速較高時,提高圖像分辨率,使系統(tǒng)不僅能識別圖像中較大的近處行人還能識別到更遠(yuǎn)處較為微小的行人目標(biāo),以及時提醒駕駛員謹(jǐn)慎駕駛;當(dāng)車速較低時,減小圖像分辨率以減小系統(tǒng)的運行負(fù)擔(dān)。
假設(shè)車輛夜間行駛的車速v范圍為0~40 km/h,本文行人檢測系統(tǒng)視頻圖像分辨率r×r的可調(diào)節(jié)范圍為416×416至544×544像素,建立車速與分辨率的分段線性關(guān)系模型。
首先,建立車速與r的對應(yīng)關(guān)系,如表1所示:
表1 車速與分辨率的對應(yīng)關(guān)系Tab.1 The correspondence between the speed of the vehicle and the resolution of images
然后,建立車速與分辨率的關(guān)系式如下:
最后,將表1數(shù)據(jù)代入式(3)得到模型如下:
得到模型的對應(yīng)關(guān)系曲線如圖3所示。
圖3 基于車速的自適應(yīng)圖像分辨率模型關(guān)系曲線Fig.3 Relationship curve of adaptive image resolution model based on the speed of the vehicle
本文用三個指標(biāo)來衡量網(wǎng)絡(luò)的質(zhì)量:平均準(zhǔn)確率(Average Precision,AP),圖像交并比(Intersection Over Union,IOU),每秒傳輸幀數(shù)(Frames Per Second,F(xiàn)PS)。
第一個指標(biāo)為平均準(zhǔn)確率AP。首先,通過公式(2)計算預(yù)測框和真實值的交并比IOU,以此判斷結(jié)果中的真正例(true positives)、假正例(false positives)和假反例(false negatives)的個數(shù)。當(dāng) IOU≥0.5,為真正例;IOU<0.5,為假正例;當(dāng) IOU=0,則為假反例。然后,通過測量分類的查準(zhǔn)率(Precision)和查全率(Recall)來判斷神經(jīng)網(wǎng)絡(luò)檢測行人的效果,下式為計算公式:
其中,TP、FN和FP分別為真正例、假反例和假正例的數(shù)量。通過調(diào)整目標(biāo)檢測綜合得分的閾值從0%到100%,對測試集分別進(jìn)行測試,得到不同閾值對應(yīng)的Precision和Recall值,根據(jù)這些值繪制Precision-Recall曲線,并計算出平均準(zhǔn)確率AP。AP為Precision-Recall曲線與x軸圍成的圖像面積,計算公式為:
其中,p為查準(zhǔn)率Precision;r為查全率Recall。
第二個指標(biāo)為圖像交并比IOU,通過公式(2)計算可得,用于確定神經(jīng)網(wǎng)絡(luò)是否正確地預(yù)測了邊界框的位置。
最后一個指標(biāo)為每秒傳輸幀數(shù)FPS,用來驗證卷積神經(jīng)網(wǎng)絡(luò)目標(biāo)檢測的處理速度。
本文采用深度學(xué)習(xí)架構(gòu)YOLO-Darknet19搭建實驗運行環(huán)境,并配置GeForce GTX TITAN Xp的CUDA環(huán)境進(jìn)行GPU并行加速計算。具體的實驗環(huán)境如表2所示。
3.2.1 數(shù)據(jù)集參數(shù)
由于本文提出的算法需要在車載環(huán)境下的道路上實施,適用的條件是車載道路上的夜間紅外圖像行人識別。為此,本文利用載有遠(yuǎn)紅外攝像機(jī)的電動汽車在夜晚道路上行駛時拍攝所得紅外視頻,采集1698張紅外圖像作為自制標(biāo)準(zhǔn)紅外數(shù)據(jù)集,其中隨機(jī)選取1358張圖片作為訓(xùn)練集,剩下的340張圖像作為測試集。圖4為自制標(biāo)準(zhǔn)數(shù)據(jù)集裁剪的行人樣例。數(shù)據(jù)集參數(shù)如表3所示。
表2 實驗環(huán)境Tab.2 Experimental environment
圖4 紅外數(shù)據(jù)集的行人示例Fig.4 Part of the pedestrian samples of the infrared dataset
表3 數(shù)據(jù)集參數(shù)表Tab.3 Parameters of the dataset
3.2.2 數(shù)據(jù)集處理
通過訓(xùn)練網(wǎng)絡(luò)來檢測紅外圖像中的行人,不僅需要提供目標(biāo)行人的分類結(jié)果還需提供行人的邊界框的標(biāo)注數(shù)據(jù)作為正確答案,行人的標(biāo)注信息,包括(x,y)坐標(biāo)、寬度 w和高度 h。 為此,利用實際道路采集的紅外行人數(shù)據(jù),對每一張紅外圖片手工標(biāo)注行人的邊界框、記錄邊界框的具體信息并貼上“person(行人)”類別標(biāo)簽,以供卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練。
為了有效地訓(xùn)練網(wǎng)絡(luò)并更好地預(yù)測結(jié)果,需要合理設(shè)置網(wǎng)絡(luò)的超參數(shù)。動量、迭代次數(shù)、批大小和學(xué)習(xí)率等參數(shù)的值被設(shè)置用來優(yōu)化超參數(shù)。表4中所示為列舉的被用來訓(xùn)練網(wǎng)絡(luò)的幾組參數(shù)。每一組值都分別被用來訓(xùn)練網(wǎng)絡(luò),再使用100張圖片測試每個訓(xùn)練結(jié)果的準(zhǔn)確率。最后,選取能最大限度提高網(wǎng)絡(luò)質(zhì)量的一組值為最終的超參數(shù)。
表4 超參數(shù)測試值表Tab.4 Hyper-parameters for testing
本文執(zhí)行網(wǎng)格搜索來優(yōu)化網(wǎng)絡(luò)的超參數(shù)。當(dāng)?shù)螖?shù)增加時,網(wǎng)絡(luò)展示出更好的檢測效果。然而,當(dāng)?shù)螖?shù)超過100000,網(wǎng)絡(luò)則顯示過度擬合。另外,當(dāng)批尺寸增大,網(wǎng)絡(luò)效果同樣變好,但由于內(nèi)存限制并不能無限增大批尺寸。表5所示為最終用來訓(xùn)練和檢測的超參數(shù)。
表5 超參數(shù)表Tab.5 Hyper-parameters table
YOLO使用均方和誤差作為loss函數(shù)來優(yōu)化模型參數(shù),loss函數(shù)的公式如下:
其中,coordError、iouError和classError分別為測試數(shù)據(jù)與真實標(biāo)定數(shù)據(jù)之間的坐標(biāo)差、IOU誤差和分類誤差。圖5為實驗得到的平均損失與訓(xùn)練時間(迭代次數(shù))的關(guān)系圖。每一次迭代隨機(jī)選取8張圖片用來訓(xùn)練神經(jīng)網(wǎng)絡(luò),每一張圖片都被使用多次。由圖可知,隨著訓(xùn)練的推進(jìn),平均損失減小到2.5%左右,這表明訓(xùn)練數(shù)據(jù)會影響CNN模型。最終,訓(xùn)練共進(jìn)行80000次迭代,耗時8 h完成。
圖5 訓(xùn)練過程平均損失變化Fig.5 Average loss curve during training
4.2.1 YOLO訓(xùn)練結(jié)果與分析
YOLO訓(xùn)練結(jié)束,通過神經(jīng)網(wǎng)絡(luò)檢測出行人并顯示出行人的邊界框。用測試集數(shù)據(jù)測試該網(wǎng)絡(luò),得到該網(wǎng)絡(luò)的AP為68.1%,IOU為55.4%,F(xiàn)PS為70.4 f/s。如圖6所示為檢測結(jié)果示例,其中左圖中右下角的行人未被檢測出,右圖中圖像左邊的樹枝被誤判為行人。
圖6 YOLO測試結(jié)果Fig.6 Test results of YOLO
4.2.2 YOLOv2訓(xùn)練結(jié)果與分析
首先,利用YOLOv2_416×416進(jìn)行訓(xùn)練。該網(wǎng)絡(luò)的 AP為 78.2%,IOU為 66.70%,F(xiàn)PS為67.4fps。圖7為檢測行人的結(jié)果。由圖可知,相比圖6,模型的誤檢和漏檢減少。另外從圖7中可以看出YOLOv2對小目標(biāo)的檢測能力更強(qiáng)。
圖7 YOLOv2測試結(jié)果Fig.7 Test results of YOLOv2
然后,改進(jìn)輸入網(wǎng)絡(luò)尺寸即圖像分辨率,分別訓(xùn)練 YOLOv2_480×480、YOLOv2_544×544和YOLOv2_608×608網(wǎng)絡(luò)模型。基于訓(xùn)練得到的檢測模型,通過調(diào)整行人檢測綜合得分的閾值,對測試集分別進(jìn)行測試,得到每個模型對應(yīng)的Precision-Recall曲線。如圖8所示為以上四種YOLOv2模型的Precision-Recall曲線,表6為四種YOLOv2模型的檢測評價指標(biāo)結(jié)果表。
圖8 四種YOLOv2模型的Precision-Recall曲線Fig.8 Precision-Recall curves of four YOLOv2 models
由此可見,隨著輸入分辨率的增加,輸出特征圖尺寸變大,輸出網(wǎng)格數(shù)變多,因而對紅外圖像中遠(yuǎn)距離較為微小的行人的識別率變高,行人檢測平均準(zhǔn)確率變高;然而隨之也帶來了FPS的減小,當(dāng)輸入分辨率為608×608時,F(xiàn)PS值減小到20.4 fps,行人檢測的實時性受到影響。因此,為了滿足系統(tǒng)實時性需求,模型的輸入分辨率不能無限增加,本文選取YOLOv2_544×544為最終采用的紅外圖像行人檢測網(wǎng)絡(luò)模型。
表6 四種YOLOv2模型檢測結(jié)果評價指標(biāo)表Tab.6 Evaluation indexes for the results of four YOLOv2 models
4.2.3 與傳統(tǒng)方法對比
另外本文采用傳統(tǒng)的基于滑動窗口HOG+SVM[6]的檢測方法對實際道路采集的紅外行人數(shù)據(jù)集進(jìn)行行人檢測的對比實驗。測試結(jié)果對比如表7所示。
通過對比可知,本文基于改進(jìn)YOLOv2的檢測方法與基于滑動窗口算法的HOG+SVM檢測方法相比,不僅在準(zhǔn)確率上有提高,而且在檢測速率的上有顯著提升,達(dá)到40.5 f/s,滿足車載情況下的實時性要求。
表7 本文方法與HOG+SVM滑窗法對比Tab.7 Comparison between the proposed method and HOG+SVM sliding window method
本文采用改進(jìn)的YOLO網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行基于紅外圖像的實時行人檢測。首先對YOLO網(wǎng)絡(luò)進(jìn)行改進(jìn),調(diào)整其模型輸入分辨率,提高了網(wǎng)絡(luò)對遠(yuǎn)處較為微小的行人的識別能力;然后,用基于實際道路采集的紅外行人標(biāo)準(zhǔn)數(shù)據(jù)集進(jìn)行參數(shù)改進(jìn)優(yōu)化和模型訓(xùn)練,比較檢測效果,得到效果最好的模型;同時提出車速與視頻圖像分辨率的關(guān)聯(lián)模型,發(fā)揮車載紅外圖像行人檢測系統(tǒng)的最佳性能,進(jìn)一步提高駕駛的安全性。實驗結(jié)果表明,YOLOv2_544×544綜合檢測效果最佳,與HOG+SVM的方法相比,可以更實時更準(zhǔn)確地在紅外圖像中檢測出行人。
本文的網(wǎng)絡(luò)可用于車輛夜間的駕駛輔助系統(tǒng),使用配有該網(wǎng)絡(luò)的車載紅外攝像機(jī)進(jìn)行紅外行人檢測,提高駕駛員和行人夜間出行的安全性。