嚴(yán) 友
(衢州職業(yè)技術(shù)學(xué)院, 浙江衢州 324000)
智能輔助駕駛系統(tǒng) (ADAS) 可為駕駛員實(shí)時(shí)提供安全預(yù)判信息, 具有降低交通事故, 提升汽車(chē)安全性, 減少生命財(cái)產(chǎn)損失的優(yōu)點(diǎn), 逐步成為汽車(chē)配件開(kāi)發(fā)的熱點(diǎn)。
車(chē)輛檢測(cè)作為輔助駕駛系統(tǒng)的輸入, 對(duì)于系統(tǒng)的預(yù)警和決策起著至關(guān)重要的作用, 對(duì)危險(xiǎn)目標(biāo)實(shí)現(xiàn)有效的檢測(cè)是精確預(yù)警的前提。 如今, 車(chē)載相機(jī)是車(chē)載傳感器的重要組成部分, 它能夠?qū)崟r(shí)地捕獲高分辨率的汽車(chē)前方場(chǎng)景的圖像信息。 同時(shí), 車(chē)載相機(jī)的成本較低、 交互性強(qiáng)。 因此, 基于圖像的目標(biāo)感知算法對(duì)于車(chē)載目標(biāo)的識(shí)別十分重要, 是多傳感器融合感知算法的核心和前提。
近年來(lái), 深度卷積神經(jīng)網(wǎng)絡(luò)在許多計(jì)算機(jī)視覺(jué)任務(wù)中取得了巨大的成功, 包括圖像分類(lèi)、 車(chē)輛檢測(cè)、 語(yǔ)義分割、圖像去霧、 超分辨率重建等。 因此, 本項(xiàng)目采用深度卷積神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)進(jìn)行圖像的目標(biāo)感知與識(shí)別, 主要包括基礎(chǔ)網(wǎng)絡(luò)的設(shè)計(jì)和車(chē)輛檢測(cè)網(wǎng)絡(luò)的構(gòu)建等兩個(gè)部分。 首先, 本文對(duì)經(jīng)典的深度殘差網(wǎng)絡(luò) (resnet) 進(jìn)行改進(jìn), 提出帶局部連接的殘差單元, 并以此構(gòu)建帶局部連接的殘差網(wǎng)絡(luò), 帶局部連接的殘差模塊內(nèi)部相比于原始的殘差模塊有更多的通路, 信息的傳遞很難被阻塞, 更加有利于特征的提取和融合前后多層多級(jí)語(yǔ)義信息, 令網(wǎng)絡(luò)模型的魯棒性更強(qiáng)。 其次, 盡管Faster RCNN、 MSCNN 和FPN 取得了成功, 這類(lèi)方法仍然存在改進(jìn)的空間, 具體地, FPN將不同語(yǔ)義級(jí)別的特征進(jìn)行融合后生成的特征仍然不夠深度, 不同輸出特征圖間的語(yǔ)義融合層級(jí)仍然不夠充分。 基于上述原因, 本文提出了基于共享參數(shù)的多分支網(wǎng)絡(luò)和雙金字塔語(yǔ)義傳遞網(wǎng)絡(luò)。 基于共享參數(shù)的多分支網(wǎng)絡(luò)主要用于提升不同語(yǔ)義級(jí)別特征融合前的語(yǔ)義級(jí)別, 而高階金字塔語(yǔ)義傳遞網(wǎng)絡(luò)主要用于深度融合不同分辨率特征圖的語(yǔ)義。 最后, 通過(guò)改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)的車(chē)輛識(shí)別算法對(duì)區(qū)域中的車(chē)輛進(jìn)行檢測(cè), 經(jīng)過(guò)測(cè)試, 車(chē)輛的檢測(cè)準(zhǔn)確率最高達(dá)到95.3%, 且具備較高的實(shí)時(shí)性和環(huán)境適應(yīng)性。
基礎(chǔ)網(wǎng)絡(luò)指一種用于物體檢測(cè)及分類(lèi)的基礎(chǔ)框架, 它是后續(xù)進(jìn)行車(chē)輛檢測(cè)的基礎(chǔ)。 我們對(duì)經(jīng)典的深度殘差網(wǎng)絡(luò)(resnet) 進(jìn)行改進(jìn), 提出帶局部連接的殘差單元, 并以此構(gòu)建帶局部連接的殘差網(wǎng)絡(luò)。 所提帶局部連接的殘差模塊與原始?xì)埐钅K的對(duì)比如圖1所示。 在一個(gè)殘差單元里, 帶局部連接的殘差模塊具備更為豐富的信息通路, 信息的傳遞很難被阻塞, 更加有利于特征的提取和融合前后多層多級(jí)語(yǔ)義信息, 同時(shí)可以令網(wǎng)絡(luò)模型的魯棒性更高、 更穩(wěn)定。
圖1 局部連接的殘差模塊與原始?xì)埐钅K對(duì)比
基礎(chǔ)網(wǎng)絡(luò)的復(fù)雜度與應(yīng)用工況以及時(shí)效性的要求密切相關(guān)。 當(dāng)對(duì)性能的要求比較嚴(yán)苛, 需要使用50層的resnet50及以上的大網(wǎng)絡(luò)時(shí), 通常會(huì)采用bottleneck結(jié)構(gòu)的殘差單元。當(dāng)對(duì)效率的要求較高, 同時(shí)降低對(duì)性能的要求時(shí), 可以考慮使用plain結(jié)構(gòu)殘差單元的淺層網(wǎng)絡(luò), 比如18層的resnet18和34層的resnet34。 為了提升基礎(chǔ)網(wǎng)絡(luò)的特征傳遞和特征提取性能, 使用帶局部連接的殘差模塊代替原始的殘差模塊,由于帶局部連接的模塊內(nèi)部通道數(shù)比原始?xì)埐顔卧獌?nèi)部通道數(shù)更少, 因此可以有效地改善基礎(chǔ)網(wǎng)絡(luò)的能力, 同時(shí)運(yùn)行效率也得以保證。 在ImageNet圖像分類(lèi)數(shù)據(jù)庫(kù)上, 從頭訓(xùn)練我們所提出的基礎(chǔ)網(wǎng)絡(luò)模型, 訓(xùn)練好的模型可用于后續(xù)的目標(biāo)檢測(cè)識(shí)別任務(wù)。
車(chē)輛檢測(cè)網(wǎng)絡(luò)的構(gòu)建指在基礎(chǔ)網(wǎng)絡(luò)的基礎(chǔ)上搭建車(chē)輛檢測(cè)網(wǎng)絡(luò)。 相比于圖像分類(lèi)任務(wù), 車(chē)輛檢測(cè)需要檢測(cè)圖像中存在的不同大小車(chē)輛, 因此, 車(chē)輛檢測(cè)具有更大的挑戰(zhàn)。
常用的車(chē)輛檢測(cè)架構(gòu)是Faster RCNN。 Faster RCNN進(jìn)行車(chē)輛檢測(cè)主要包括兩步: ①候選車(chē)輛窗口的提?。?②候選車(chē)輛窗口的分類(lèi)、 回歸。 為了減少計(jì)算消耗量, Faster RCNN在上述過(guò)程中共享一個(gè)基礎(chǔ)網(wǎng)絡(luò)。 由于基礎(chǔ)網(wǎng)絡(luò)經(jīng)過(guò)若干池化層之后, 輸出特征圖的分辨率相對(duì)較小, 小尺度車(chē)輛的信息大量丟失。 因而, Faster RCNN在小尺度車(chē)輛檢測(cè)上具有相對(duì)較差的檢測(cè)性能。
為了提升體積較小物體檢測(cè)的精準(zhǔn)性, 技術(shù)人員提出了綜合考慮多種不同尺度信息的復(fù)合方式對(duì)物體進(jìn)行檢測(cè)。該方法利用基礎(chǔ)網(wǎng)絡(luò)中靠前的分辨率相對(duì)較大的特征圖檢測(cè)小尺度車(chē)輛, 利用基礎(chǔ)網(wǎng)絡(luò)中靠后的分辨率相對(duì)較小的特征圖檢測(cè)大尺度車(chē)輛。 因而, 該方法能夠利用不同分辨率的特征圖檢測(cè)適合尺度的車(chē)輛, 進(jìn)而能夠提高小尺度車(chē)輛檢測(cè)的性能。 但是語(yǔ)義級(jí)別暫時(shí)沒(méi)有較為合適的方法進(jìn)行評(píng)估。 為了能夠使不同輸出特征圖具有相似的語(yǔ)義級(jí)別,特征金字塔網(wǎng)絡(luò)被相關(guān)研究人員提出, 該網(wǎng)絡(luò)檢測(cè)為FPN。FPN利用跨層連接將上采樣的高語(yǔ)義級(jí)別低分辨率的特征圖同低語(yǔ)義級(jí)別高分辨率的特征圖進(jìn)行融合得到高語(yǔ)義級(jí)別高分辨率的特征圖。 基于跨層連接和自上而下的上采樣操作, FPN能夠輸出具有相似高級(jí)語(yǔ)義的不同分辨率大小特征圖, 并利用這些不同分辨率特征圖檢測(cè)不同尺度的車(chē)輛。 相比于Faster RCNN和MSCNN, FPN進(jìn)一步提升了車(chē)輛檢測(cè)的性能, 特別是小尺度車(chē)輛檢測(cè)的性能。
圖2給出了基于共享參數(shù)的多分支網(wǎng)絡(luò)的基本架構(gòu)。 輸入圖像首先經(jīng)過(guò)前i-2的卷積層 (即conv1到conv (i-2)),然后輸出拆分成2個(gè)不同的分支。 具體地, 一個(gè)分支經(jīng)過(guò)卷積層conv (i-1) s和卷積層convis得到輸出特征圖, 該分支稱(chēng)為bran-s; 另一個(gè)分支首先經(jīng)過(guò)一個(gè)池化層和一個(gè)卷積層conv (i-1), 然后繼續(xù)拆分成2個(gè)不同的分支。 具體地,一個(gè)分支經(jīng)過(guò)卷積層convim得到輸出特征圖, 該分支簡(jiǎn)稱(chēng)為bran-m; 另一個(gè)分支經(jīng)過(guò)一個(gè)池化層和一個(gè)卷積層convil得到輸出特征圖, 該分支簡(jiǎn)稱(chēng)為bran-l。 為了提升bran-s和bran-m輸出特征圖的感受野, 采用了跨層連接。 具體地,bran-m的最終輸出特征圖由上述bran-m的輸出特征圖和上采樣的bran-l輸出特征進(jìn)行點(diǎn)對(duì)點(diǎn)像素值相加得到, bran-l的最終輸出特征圖由上述bran-l的輸出特征圖和上采樣的bran-m最終輸出特征圖進(jìn)行點(diǎn)對(duì)點(diǎn)像素值相加得到。
圖2 基于共享參數(shù)的多分支網(wǎng)絡(luò)架構(gòu)
一方面, bran-s、 bran-m、 bran-l輸出的特征圖經(jīng)過(guò)了相同數(shù)量的卷積層, 具有相似的語(yǔ)義級(jí)別, 因而, 它們進(jìn)一步融合的特征具有更高的語(yǔ)義級(jí)別且更加魯棒; 另一方面, bran-s、 bran-m、 bran-l輸出的特征圖具有不同的空間分辨率和不同的感受野, 適合檢測(cè)不同尺度的車(chē)輛。 具體地, bran-s輸出的特征圖具有最大的空間分辨率和最小的感受野, 適合檢測(cè)尺度相對(duì)較小的車(chē)輛, bran-l輸出的特征圖具有最小的空間分辨率和最大的感受野, 適合檢測(cè)相對(duì)較大的車(chē)輛, bran-m則適合檢測(cè)相對(duì)適中的車(chē)輛。 同時(shí),為了減少網(wǎng)絡(luò)參數(shù)量, 不同分支之間的卷積層可以共享網(wǎng)絡(luò)參數(shù)。
圖3給出了高階金字塔語(yǔ)義傳遞網(wǎng)絡(luò)。 輸入圖像首先經(jīng)過(guò)基礎(chǔ)網(wǎng)絡(luò), 生成若干分辨率不同的特征圖 (包括輸出特征圖F01, 特征圖F02和特征圖F03)。 3個(gè)特征圖的語(yǔ)義級(jí)別從F03到F01逐漸降低。 為了傳遞不同特征圖的語(yǔ)義, 自上而下的跨層連接操作被引入。 特征圖F13由特征圖F13經(jīng)過(guò)一個(gè)卷積層后得到; 特征圖F12由上采樣的F13和特征圖F02經(jīng)過(guò)一個(gè)卷積層后進(jìn)行點(diǎn)對(duì)點(diǎn)相加得到; 特征圖F01由上采樣的F02和特征圖F01經(jīng)過(guò)一個(gè)卷積層后進(jìn)行點(diǎn)對(duì)點(diǎn)相加得到。 因而, F13融合了F01、 F02、 F03的語(yǔ)義特征, F12融合F01、 F02的語(yǔ)義特征。 為了深度融合不同特征圖的語(yǔ)義,上述自上而下的跨層連接繼續(xù)重復(fù)3次。 為了增加不同語(yǔ)義的特征, 在每次融合過(guò)程不僅引入上層低分辨率的特征圖,而且引入同分辨率前幾次融合過(guò)程中的特征圖。 例如, F42由上采樣的特征圖F43和同分辨率特征圖F02、 特征圖F12、特征圖F22、 特征圖F32進(jìn)行點(diǎn)對(duì)點(diǎn)相加得到。
圖3 高階金字塔語(yǔ)義傳遞網(wǎng)絡(luò)
一方面, 特征圖F43、 特征圖42、 特征圖41充分融合了不同分辨率、 不同語(yǔ)義的特征, 提升了輸出特征圖的語(yǔ)義級(jí)別, 能夠更好地提升車(chē)輛檢測(cè)的魯棒性; 另一方面, 特征圖F43、 特征圖42、 特征圖41具有不同的分辨率, 適合檢測(cè)不同尺度的行人和車(chē)輛, 有效地解決了車(chē)輛尺度變化的問(wèn)題, 增強(qiáng)了算法的尺度魯棒性。
為獲得改進(jìn)深度卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的訓(xùn)練集, 在車(chē)輛上安裝高清攝像頭, 采集不同路況下的車(chē)輛圖片, 訓(xùn)練集圖片如圖4所示。
圖4 采集的車(chē)輛圖片
選取課題組自研的標(biāo)注軟件對(duì)采集到的圖片信息進(jìn)行自動(dòng)化標(biāo)注, 形成統(tǒng)一格式的可擴(kuò)展標(biāo)記語(yǔ)言文件, 運(yùn)行環(huán)境是Linux系統(tǒng), 并在該系統(tǒng)下對(duì)改進(jìn)深度卷積神經(jīng)網(wǎng)絡(luò)算法進(jìn)行配置: 計(jì)算平臺(tái)內(nèi)存容量為8GB (8GB×1)DDR42133MHz, 硬盤(pán)為128GB+1TB混合硬盤(pán) (SSD+5400轉(zhuǎn)HDD), 顯卡芯片為NVIDIAGeForce940MX, CPU型號(hào)為Intel酷睿i57200U, CPU主頻為2.5GHz。 人工智能開(kāi)發(fā)軟件Tensorflow和用于機(jī)器學(xué)習(xí)的視覺(jué)軟件庫(kù)Opencv需要提前在上述計(jì)算平臺(tái)預(yù)先配置并安裝, 用于深度卷積神經(jīng)網(wǎng)絡(luò)算法對(duì)輸入數(shù)據(jù)進(jìn)行學(xué)習(xí)。
改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練完成后, 調(diào)用本文提出的算法對(duì)圖片中的車(chē)輛進(jìn)行檢測(cè), 檢測(cè)結(jié)果如圖5所示。 通過(guò)BIT-Vehicle車(chē)輛數(shù)據(jù)集對(duì)算法準(zhǔn)確率進(jìn)行測(cè)試,以平均準(zhǔn)確率mAP為評(píng)價(jià)指標(biāo), 測(cè)試結(jié)果如表1所示。
圖5 車(chē)輛檢測(cè)結(jié)果對(duì)比圖
表1 車(chē)輛數(shù)據(jù)集測(cè)試結(jié)果對(duì)比表
通過(guò)檢測(cè)準(zhǔn)確率的結(jié)果對(duì)比, 改進(jìn)后的深度卷積神經(jīng)網(wǎng)絡(luò)算法提升了車(chē)輛識(shí)別的置信度, 對(duì)于近距離和遠(yuǎn)距離的車(chē)輛都有了較好的檢測(cè)效果。 但是, 在車(chē)輛行駛與城市工況, 算法會(huì)將護(hù)欄、 樹(shù)木、 灌木等類(lèi)似車(chē)輛特征的車(chē)輛誤認(rèn)為目標(biāo)車(chē)輛, 存在一定的誤檢, 如圖6所示。
圖6 真實(shí)城市工況下車(chē)輛檢測(cè)結(jié)果
表2為信息融合算法在不同天氣條件下的檢測(cè)結(jié)果, 在晴天、 陰天和夜晚有光照的情況下, 對(duì)于目標(biāo)車(chē)輛檢測(cè)的準(zhǔn)確率分別達(dá)到了95.3%、 93.8%和91.7%, 誤檢率分別為0.3%、 0.4%和0.6%, 相比于單傳感器車(chē)輛檢測(cè)的準(zhǔn)確率得以提升, 實(shí)現(xiàn)了前方目標(biāo)車(chē)輛的精確感知。
表2 車(chē)輛檢測(cè)準(zhǔn)確率對(duì)比表
1) 本文提出帶局部連接的殘差單元, 對(duì)傳統(tǒng)深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行了改進(jìn), 并以此構(gòu)建帶局部連接的殘差網(wǎng)絡(luò), 帶局部連接的殘差模塊內(nèi)部相比于原始的殘差模塊有更多的通路, 信息的傳遞很難被阻塞, 更加有利于特征的提取和融合前后多層多級(jí)語(yǔ)義信息, 同時(shí)使得網(wǎng)絡(luò)的訓(xùn)練更加穩(wěn)定。
2) 本文提出了基于共享參數(shù)的多分支網(wǎng)絡(luò)和雙金字塔語(yǔ)義傳遞網(wǎng)絡(luò), 其中, 基于共享參數(shù)的多分支網(wǎng)絡(luò)提升了不同語(yǔ)義級(jí)別特征融合前的語(yǔ)義級(jí)別, 而高階金字塔語(yǔ)義傳遞網(wǎng)絡(luò)主要實(shí)現(xiàn)深度融合不同分辨率特征圖的語(yǔ)義。
3) 采用本文提出的改進(jìn)的深度卷積神經(jīng)網(wǎng)絡(luò)算法對(duì)真實(shí)城市工況下的車(chē)輛進(jìn)行了實(shí)時(shí)檢測(cè), 并對(duì)測(cè)試結(jié)果進(jìn)行測(cè)試, 對(duì)于晴天環(huán)境中車(chē)輛的檢測(cè)準(zhǔn)確率最高達(dá)到了95.3%, 為后續(xù)高級(jí)別輔助駕駛系統(tǒng)的精準(zhǔn)決策及控制奠定了堅(jiān)實(shí)的基礎(chǔ)。