胡培帥,王維強(qiáng)
(430065 湖北省 武漢市 武漢科技大學(xué) 汽車與交通工程學(xué)院)
隨著社會(huì)的發(fā)展,人們對(duì)于智能汽車的需求日益提升。高級(jí)駕駛輔助系統(tǒng)(ADAS)是智能汽車的重要組成部分,其中行人車輛檢測(cè)是關(guān)鍵環(huán)節(jié),它通過傳感器檢測(cè)車輛行駛過程中遇到的行人和車輛,幫助駕駛員發(fā)現(xiàn)危險(xiǎn),提高駕駛的安全性。ADAS 對(duì)行人和車輛的檢測(cè)一般分為2 個(gè)步驟,首先傳感器采集實(shí)時(shí)圖像,然后通過算法對(duì)圖像進(jìn)行識(shí)別和分類[1]。
隨著深度學(xué)習(xí)的飛速發(fā)展,目標(biāo)檢測(cè)技術(shù)取得一定的進(jìn)步。Li 等[2]通過對(duì)Fast R-CNN 的改進(jìn),采用多尺度方法進(jìn)行行人檢測(cè);Nguyen 等[3]通過在Fast R-CNN 上使用感知池化,有效提高了車輛檢測(cè)的精度。但是,以上方法在霧天、雪天、雨天或者夜間等惡劣環(huán)境時(shí),會(huì)出現(xiàn)誤檢、漏檢等問題。
紅外光可以將景物、行人、車輛的紅外輻射溫度差異轉(zhuǎn)換為灰度值,進(jìn)而轉(zhuǎn)換為紅外圖像[4],可以應(yīng)對(duì)各種惡劣環(huán)境天氣。圖1 為在惡劣天氣下,可見光攝像機(jī)和紅外攝像機(jī)在夜間拍攝的圖像,很明顯紅外圖像更利于識(shí)別。
圖1 可見光攝像機(jī)與紅外攝像機(jī)在夜間拍攝圖像對(duì)比Fig.1 Comparison of images taken at night by visible camera and infrared camera
紅外道路場(chǎng)景下的行人車輛目標(biāo)檢測(cè)對(duì)ADAS在復(fù)雜多變環(huán)境下的目標(biāo)識(shí)別有一定的補(bǔ)充效果,但仍然存在諸多問題,如:目標(biāo)尺寸小時(shí),由于像素比較小,難以識(shí)別;目標(biāo)的尺度變化大時(shí),相同目標(biāo)的識(shí)別尺度可能不同;目標(biāo)之間有遮擋時(shí),存在誤檢、漏檢現(xiàn)象等。此外,紅外道路場(chǎng)景的圖像噪點(diǎn)多、對(duì)比度差、邊緣較模糊、缺少顏色特征等,目標(biāo)檢測(cè)效果也不十分理想。
本文針對(duì)當(dāng)前紅外道路場(chǎng)景檢測(cè)及算法存在的行人、機(jī)動(dòng)車漏檢和誤檢等問題,提出一種改進(jìn)算法。針對(duì)紅外道路場(chǎng)景的特性,使用算法對(duì)采集的圖像進(jìn)行預(yù)處理,充分挖掘行人、機(jī)動(dòng)車輛和非機(jī)動(dòng)車輛在紅外場(chǎng)景下的關(guān)鍵特征點(diǎn);針對(duì)紅外道路場(chǎng)景的特性,對(duì)YOLOv5 網(wǎng)絡(luò)的激活函數(shù)、損失函數(shù)進(jìn)行相應(yīng)的改進(jìn),在主干網(wǎng)絡(luò)的末端采用Transformer 模塊,并增加了一層160×160 的檢測(cè)層,加強(qiáng)紅外場(chǎng)景下的車輛、行人等特征的提取能力,提高模型的魯棒性。
首先對(duì)圖像采用CLAHE 圖像增強(qiáng)算法,然后對(duì)輸出的圖像采用BM3D 算法進(jìn)行降噪處理,所得的圖像具有更高的圖像對(duì)比度,如圖2 所示。
圖2 CLAHE 算法增強(qiáng)圖像對(duì)比Fig.2 Image contrast after CLAHE algorithm enhancement
紅外圖像經(jīng)過CLAHE 增強(qiáng)算法后,其目標(biāo)檢測(cè)特征對(duì)比度明顯提升,但其增強(qiáng)后的圖像仍具有一些噪點(diǎn),因此需對(duì)增強(qiáng)后的圖像采用BM3D 算法進(jìn)行降噪處理。BM3D 算法是將空間域和變換域相結(jié)合的一種降噪算法,通過相似判定找到與參考?jí)K相近的塊,然后將相似塊組合為三維群組,并對(duì)其進(jìn)行濾波處理。降噪處理后的圖像如圖3 所示,相較于原圖,其特征對(duì)比更為明顯,更利于目標(biāo)檢測(cè)。
圖3 紅外圖像算法增強(qiáng)后圖像對(duì)比Fig.3 Image contrast after infrared image algorithm enhancement
YOLOv5s 算法是基于深度學(xué)習(xí)的目標(biāo)檢測(cè),是繼He 等[5]提出SPPNet,Girshick[6]提出 Fast RCNN 之后,由Redmon 等[7]提出的單階段目標(biāo)檢測(cè)算法。YOLOv5 具有4 個(gè)主要組件:Input、Backbone、Neck、Head。其中Input 表示輸入的圖像,將被轉(zhuǎn)換為張量;Backbone 是YOLOv5s 網(wǎng)絡(luò)中的骨干網(wǎng)絡(luò),可以有效地提取圖像的特征;Neck網(wǎng)絡(luò)是檢測(cè)層,采用多尺度檢測(cè);Head 是輸出層,主要通過提取到的特征進(jìn)行預(yù)測(cè)。
YOLOv5s 算法針對(duì)不同檢測(cè)尺寸的目標(biāo)設(shè)置不同尺寸的預(yù)置檢測(cè)框進(jìn)行訓(xùn)練,提高了各尺寸目標(biāo)檢測(cè)的準(zhǔn)確度。但是,在紅外道路場(chǎng)景下,由于小目標(biāo)之間存在遮擋,容易出現(xiàn)漏檢、誤檢等問題。
本文針對(duì)YOLOv5s在紅外場(chǎng)景下檢測(cè)的缺陷,對(duì)其激活函數(shù)和損失函數(shù)進(jìn)行優(yōu)化,在主干網(wǎng)絡(luò)末采用Transformer 模塊,并在檢測(cè)層上將原3 層檢測(cè)增加為4 層,增強(qiáng)了YOLOv5s 算法在紅外圖像上的特征提取,提高了檢測(cè)準(zhǔn)確度。改進(jìn)后網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 改進(jìn)后的YOLOv5s 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 The improved YOLOv5s network structure
1.2.1 激活函數(shù)
在YOLOv5s 算法的激活函數(shù)中,Conv 卷積結(jié)構(gòu)由卷積層、批標(biāo)準(zhǔn)化層(batch normalization,BN)和激活函數(shù)層組成。激活函數(shù)可以增加神經(jīng)網(wǎng)絡(luò)模型的非線性變化,抑制非必要的特征輸出,增強(qiáng)特征信息的表達(dá)。YOLOv5s 使用的原始的激活函數(shù)為SiLU,也被稱為Swish,其函數(shù)表達(dá)式為
SiLU 函數(shù)具有無(wú)上界、有下界、平滑、非單調(diào)的特性。但對(duì)于紅外圖像上的行人車輛檢測(cè),還需要激活函數(shù)具備更高的準(zhǔn)確率,因此需要對(duì)YOLOv5s 的Conv 層的激活函數(shù)進(jìn)行改進(jìn),使用Mish 激活函數(shù),其函數(shù)表達(dá)式為
Mish 函數(shù)及其導(dǎo)數(shù)的圖像如圖5 所示,從圖5 可以清晰地看出,Mish 激活函數(shù)是一種自正則化的非單調(diào)激活函數(shù),具有更加平滑的特性,與SiLU 激活函數(shù)相比,其信息輸入進(jìn)網(wǎng)絡(luò)中的梯度更深,準(zhǔn)確性更高,泛化性更好。
圖5 Mish 函數(shù)及導(dǎo)數(shù)Fig.5 Mish functions and derivatives
1.2.2 損失函數(shù)改進(jìn)
在YOLOv5s 網(wǎng)絡(luò)的損失函數(shù)中,邊框損失函數(shù)尤為重要,采用CIoU_Loss(Complete Intersection over Union Loss)形式[8]。CIoU 損失函數(shù)考慮了預(yù)測(cè)框和目標(biāo)框之間的重疊度、中心距、縱橫比等因素,但是未考慮預(yù)測(cè)框與目標(biāo)框之間方向的匹配性。針對(duì)此問題,本文采用了SIoU_Loss,從所需回歸之間的向量角度,重新定義距離損失,加快網(wǎng)絡(luò)的收斂速度。SIoU Loss 由4 個(gè)cost 函數(shù)組成:Angle cost、Distance cost、Shape cost 和IoU cost。
Angle cost 函數(shù)計(jì)算了角度成本對(duì)損失函數(shù)的貢獻(xiàn),如圖6 所示,當(dāng)時(shí),α將最小化,否則最小化。Angle cost 函數(shù)表達(dá)式為
圖6 計(jì)算角度成本對(duì)損失函數(shù)貢獻(xiàn)Fig.6 Scheme for calculation of angle cost contribution to loss function
Distance cost 函數(shù)表達(dá)式為
Shape cost 函數(shù)表達(dá)式為
IoU cost 函數(shù)表達(dá)式為
最后的SIoU_Loss 總體回歸損失函數(shù)為
1.2.3 Transformer 模塊
在正常行駛過程中,行人與車輛會(huì)相互遮擋,在YOLOv5s 模型中借鑒使用Transformer 模塊,可以有效地提高遮擋條件下行人、車輛檢測(cè)的精準(zhǔn)度。Transformer 特征提取結(jié)構(gòu)分為2 部分,分別為編碼器和解碼器。對(duì)于圖像目標(biāo)識(shí)別而言,并不需要解碼器。Transformer 編碼器具有2 個(gè)主要模塊:多頭注意力機(jī)制模塊(multi-head attention)和前饋神經(jīng)網(wǎng)絡(luò)(MLP)。在Transformer 編碼器中,多頭注意力機(jī)制模塊后使用了LN(LayerForm)層,前饋神經(jīng)網(wǎng)絡(luò)后使用了DP(Dropout)層,可以有效防止網(wǎng)絡(luò)出現(xiàn)過擬合的現(xiàn)象并提高了網(wǎng)絡(luò)的特征融合能力。Transformer 模塊如圖7 所示。
Transformer 網(wǎng)絡(luò)中的多頭注意力機(jī)制可以更好地處理大批量輸入的信息,其表達(dá)式為
式中:Q——查詢向量;K——鍵向量;V——值向量;dk——輸入數(shù)據(jù)維度。
與其他注意力機(jī)制相比,多頭注意力機(jī)制運(yùn)算能力更高,適用性更廣,表達(dá)式為
1.2.4 增加檢測(cè)層
原有YOLOv5s 算法的檢測(cè)層只有3 個(gè),尺度為20×20、40×40、80×80,在ADAS 中檢測(cè)紅外圖像下的行人車輛時(shí),會(huì)出現(xiàn)圖像中小目標(biāo)特征丟失的漏檢現(xiàn)象。為解決此問題,本文在YOLOv5s 網(wǎng)絡(luò)檢測(cè)層基礎(chǔ)上,增加一層160×160 的檢測(cè)層,對(duì)主干網(wǎng)絡(luò)輸入的小目標(biāo)特征信息的特征層進(jìn)行上采樣和下采樣,提高其對(duì)小目標(biāo)特征的敏感性。
本文使用云平臺(tái),其計(jì)算機(jī)CPU 為AMD EPYC 7302,64 G 運(yùn)行內(nèi)存,顯卡GPU 為NVIDIA GeForce RTX 3090,24 GB 顯存。操作系統(tǒng)為Ubuntu 20.04。此次實(shí)驗(yàn)使用的深度學(xué)習(xí)框架PyTorch 1.10.0,實(shí)驗(yàn)環(huán)境 為Python 3.9,GPU 加速為CUDA 11.3 和CUDNN 8.2.1。
為實(shí)現(xiàn)在真實(shí)的紅外圖像下夜間道路場(chǎng)景的行人車輛檢測(cè),采用了FLIR 熱紅外數(shù)據(jù)集。FLIR熱紅外數(shù)據(jù)集由FLIR 公司推出,包含了14 000 張圖像,其中10 000 張來(lái)自于短視頻片段,4 000 張來(lái)自于一段140 s 視頻。運(yùn)用LabelImg 圖像標(biāo)注工具對(duì)FLIR 數(shù)據(jù)集的行人和車輛進(jìn)行標(biāo)注,隨機(jī)采取70%的圖像樣本作為訓(xùn)練集,20%的圖像樣本作為測(cè)試集,10%的圖像樣本作為驗(yàn)證集。FLIR數(shù)據(jù)集圖像如圖8 所示。
為驗(yàn)證本文算法的精準(zhǔn)度,對(duì)算法進(jìn)行模型訓(xùn)練,模型訓(xùn)練參數(shù)配置如表1 所示。
表1 模型訓(xùn)練參數(shù)配置Tab.1 Model training parameter configuration
本實(shí)驗(yàn)的性能評(píng)價(jià)指標(biāo)采用準(zhǔn)確率(Precision)、召回率(Recall)、平均精度均值(mAP)衡量。準(zhǔn)確率和召回率計(jì)算公式為
式中:TP——模型檢測(cè)正確的目標(biāo)并分類為對(duì)應(yīng)類別的數(shù)目;FN——模型漏檢的目標(biāo)數(shù)。
原YOLOv5s 算法與改進(jìn)后YOLOv5s 算法道路檢測(cè)對(duì)比如圖9 所示。由圖9 可見,改進(jìn)后的算法檢測(cè)精度更高,可以檢測(cè)出漏檢的車輛。
圖9 道路行人車輛檢測(cè)結(jié)果Fig.9 Road pedestrian vehicle detection results
在FLIR 數(shù)據(jù)集上分別使用常用的圖像處理算法YOLOv3、YOLOv4、YOLOv5s、本文改進(jìn)后YOLOv5s 算法進(jìn)行實(shí)驗(yàn),得到測(cè)試結(jié)果如表2 所示。
表2 算法測(cè)試結(jié)果對(duì)比Tab.2 Comparison of algorithm test results
由表2 可見,本文改進(jìn)算法相較于YOLOv5s算法mAP提高6.16%,相較于常用的YOLOv3、YOLOv4 在召回率、準(zhǔn)確率和mAP指標(biāo)均有較大的提升,損失函數(shù)圖像如圖10 所示。
圖10 Loss 曲線Fig.10 Loss curve
本文針對(duì)ADAS 系統(tǒng)在夜間等惡劣天氣下目標(biāo)檢測(cè)中存在的缺陷,提出使用紅外傳感器來(lái)進(jìn)行目標(biāo)檢測(cè)。主要結(jié)論如下:
(1)對(duì)紅外圖像采用CLAHE 圖像增強(qiáng)算法,并對(duì)輸出的圖像采用BM3D 算法進(jìn)行降噪處理,所得的圖像具有較好的檢測(cè)目標(biāo)的對(duì)比度;
(2)對(duì)YOLOv5 的激活函數(shù)和損失函數(shù)進(jìn)行了優(yōu)化,并在主干網(wǎng)絡(luò)末采用了Transformer 模塊,有效地減少了漏檢、誤檢等問題;
(3)通過模型訓(xùn)練和實(shí)驗(yàn)對(duì)比,本文改進(jìn)的新型算法相較于原YOLOv5 算法在平均精度均值(mAP)上提升了6.16%。