宋佳興 劉慶偉 羅 哲 喻 凡
(上海交通大學(xué),機(jī)械系統(tǒng)與振動(dòng)國(guó)家重點(diǎn)實(shí)驗(yàn)室,上海 200240)
車(chē)載視覺(jué)中的識(shí)別目標(biāo)包括車(chē)輛、行人、交通標(biāo)志、信號(hào)燈、障礙物等,其中對(duì)車(chē)輛的檢測(cè)是智能輔助駕駛系統(tǒng)環(huán)境感知的重要組成部分,檢測(cè)水平的高低直接影響到整個(gè)智能駕駛輔助系統(tǒng)的運(yùn)行質(zhì)量。對(duì)于車(chē)載車(chē)輛檢測(cè)算法的研究源遠(yuǎn)流長(zhǎng),但近年來(lái)基于深度學(xué)習(xí)的視覺(jué)算法發(fā)展迅速,目標(biāo)檢測(cè)算法檢測(cè)精度和理解能力都有了長(zhǎng)足的進(jìn)步,這給車(chē)輛檢測(cè)算法帶來(lái)了新的研究方向。但是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法龐大的存儲(chǔ)需求和計(jì)算量也給其在車(chē)載系統(tǒng)上的應(yīng)用帶來(lái)了巨大的挑戰(zhàn),需要算法架構(gòu)層面進(jìn)行精細(xì)的優(yōu)化設(shè)計(jì)。本文將對(duì)基于深度學(xué)習(xí)算法的車(chē)載車(chē)輛檢測(cè)系統(tǒng)進(jìn)行研究。
深度學(xué)習(xí)是機(jī)器學(xué)習(xí)領(lǐng)域新的發(fā)展方向,是近十年來(lái)人工智能領(lǐng)域的重要研究方向,在語(yǔ)音識(shí)別、自然語(yǔ)言處理、計(jì)算機(jī)視覺(jué)、圖像與視頻分析、多媒體等諸多領(lǐng)域的應(yīng)用取得了突破性進(jìn)展。深度學(xué)習(xí)的概念來(lái)源于人工神經(jīng)網(wǎng)絡(luò)的發(fā)展,當(dāng)能夠成功訓(xùn)練隱層數(shù)量足夠多的多層感知器模型(Multilayer Perceptron, MLP)時(shí),可以獲得強(qiáng)大的表征能力,這就是典型的深度學(xué)習(xí)結(jié)構(gòu)[1]。人工神經(jīng)網(wǎng)絡(luò)的起源可追溯到20世紀(jì)40年代,該算法以大腦認(rèn)知的機(jī)理為指導(dǎo)來(lái)解決各種機(jī)器學(xué)習(xí)問(wèn)題。但是由于理論分析難度較大,訓(xùn)練數(shù)據(jù)量制約,訓(xùn)練過(guò)程復(fù)雜,以及計(jì)算量龐大和優(yōu)化求解難等問(wèn)題,人工神經(jīng)網(wǎng)絡(luò)算法并未取得很好的效果,逐漸被人工智能研究學(xué)者冷落。2006年,多倫多大學(xué)的G.E.Hinton提出深度學(xué)習(xí)概念、多層級(jí)的深度網(wǎng)絡(luò)架構(gòu)和基于樣本數(shù)據(jù)的非監(jiān)督貪心逐層訓(xùn)練算法,為解決深層網(wǎng)絡(luò)優(yōu)化求解問(wèn)題帶來(lái)希望[2]。2012年,Hinton和他的學(xué)生Alex Krizhevsky設(shè)計(jì)的深度網(wǎng)絡(luò)AlexNet獲得ImageNet圖像分類(lèi)比賽冠軍,準(zhǔn)確率超過(guò)傳統(tǒng)圖像分類(lèi)算法10%以上,證明了深度學(xué)習(xí)模型在計(jì)算機(jī)視覺(jué)領(lǐng)域的巨大應(yīng)用潛力,引發(fā)了深度學(xué)習(xí)研究的熱潮[3]。
繼AlexNet在圖片分類(lèi)任務(wù)中取得歷史性突破之后,卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測(cè)領(lǐng)域也備受關(guān)注,如今已超越傳統(tǒng)機(jī)器視覺(jué)方法而成為目標(biāo)檢測(cè)領(lǐng)域的主流算法?;诰矸e神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法,通常利用優(yōu)秀的圖像分類(lèi)模型強(qiáng)大的特征提取能力處理輸入數(shù)據(jù),然后根據(jù)提取出的高層次抽象特征進(jìn)行目標(biāo)檢測(cè)。目前比較通用的檢測(cè)框架包括以Faster RCNN為代表的two-stage框架和以SSD為代表的one-stage框架。
Girshick等人[4]在2014年提出R-CNN目標(biāo)檢測(cè)模型。該模型主要分三個(gè)部分:首先使用選擇性搜索(selective search)算法處理輸入圖像,提取車(chē)輛檢測(cè)的候選區(qū)域;然后對(duì)候選區(qū)域進(jìn)行使用卷積運(yùn)算,完成特征提取工作;最后將提取出的特征送入SVM分類(lèi)器完成目標(biāo)檢測(cè)任務(wù)。該算法發(fā)揮了卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征提取能力,使目標(biāo)檢測(cè)效果得到大幅提升,但是算法各部分分開(kāi)進(jìn)行,訓(xùn)練繁瑣,且存在大量重復(fù)計(jì)算,檢測(cè)時(shí)間較長(zhǎng)。2015年,Girshick[5]提出Fast R-CNN,因?yàn)榫矸e計(jì)算可保持空間信息,故引入候選區(qū)域共享卷積思想,將提取候選區(qū)域操作放在特征提取之后,極大地減少了重復(fù)計(jì)算,提高了檢測(cè)速度;使用全連接層代替SVM分類(lèi)器完成目標(biāo)檢測(cè)任務(wù),使特征提取部分和檢測(cè)部分可以結(jié)合起來(lái)一起訓(xùn)練。Ren等人[6]提出的Faster R-CNN使用卷積神經(jīng)網(wǎng)絡(luò)提取候選區(qū)域,在特征提取之后首先用RPN網(wǎng)絡(luò)對(duì)圖片各位置進(jìn)行初步檢測(cè),然后再進(jìn)行進(jìn)一步的目標(biāo)識(shí)別和邊界框微調(diào)。Faster R-CNN將特征提取、候選區(qū)域生成、分類(lèi)和邊界框微調(diào)等目標(biāo)檢測(cè)各部分統(tǒng)一到一個(gè)深度學(xué)習(xí)模型中,取得了非常好的效果,是two-stage目標(biāo)檢測(cè)框架的代表作。
不同于two-stage目標(biāo)檢測(cè)框架,one-stage框架中候選區(qū)域生成、分類(lèi)和邊界框微調(diào)同時(shí)進(jìn)行,大大提高了檢測(cè)效率,但會(huì)損失一些準(zhǔn)確度。經(jīng)典的one-stage算法包括YOLO系列、SSD等。YOLO(you only look once)[7]將輸入圖像劃分成7×7的區(qū)域,每個(gè)區(qū)域負(fù)責(zé)中心落在該格子的目標(biāo)的檢測(cè)任務(wù),使用卷積層和全連接層一次性輸出各區(qū)域包含目標(biāo)的概率、目標(biāo)的類(lèi)別以及邊界框微調(diào),檢測(cè)速度達(dá)到實(shí)時(shí),但準(zhǔn)確度低于Faster R-CNN等two-stage檢測(cè)算法。Liu等人[8]提出的SSD(Single Shot MultiBox Detector)檢測(cè)算法將錨點(diǎn)(anchor)機(jī)制引入one-stage算法,并對(duì)多層次的特征圖進(jìn)行預(yù)測(cè),使SSD算法在達(dá)到實(shí)時(shí)的檢測(cè)速度情況下,也達(dá)到了two-stage檢測(cè)算法的檢測(cè)和定位精度。
深度卷積神經(jīng)網(wǎng)絡(luò)憑借強(qiáng)大的特征提取能力和端到端的算法框架,在目標(biāo)檢測(cè)領(lǐng)域已經(jīng)取代了傳統(tǒng)算法成為主流研究趨勢(shì),這也給車(chē)輛檢測(cè)算法指明了發(fā)展方向。但車(chē)輛檢測(cè)實(shí)際問(wèn)題中硬件平臺(tái)多為嵌入式平臺(tái),難以承受深度卷積神經(jīng)網(wǎng)絡(luò)龐大的存儲(chǔ)空間和計(jì)算量需求,因此其在車(chē)載芯片等工況下的應(yīng)用受到限制。本文以深度卷積神經(jīng)網(wǎng)絡(luò)在車(chē)輛檢測(cè)領(lǐng)域的實(shí)際應(yīng)用問(wèn)題為出發(fā)點(diǎn),進(jìn)行算法架構(gòu)、算法加速和硬件優(yōu)化的協(xié)同設(shè)計(jì),旨在完成深度卷積神經(jīng)網(wǎng)絡(luò)模型在車(chē)載工況下的落地應(yīng)用。
基于深度卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)模型主要由兩部分組成,首先是特征提取網(wǎng)絡(luò),多由圖像分類(lèi)模型通過(guò)遷移學(xué)習(xí)得到,具有強(qiáng)大的特征提取能力;然后是檢測(cè)網(wǎng)絡(luò),比較有代表性的包括Faster R-CNN、YOLO和SSD等的檢測(cè)部分,完成從特征圖到檢測(cè)結(jié)果的計(jì)算。由于本文面向車(chē)載工況,硬件平臺(tái)算力和能耗受限,要求車(chē)輛檢測(cè)算法擁有高準(zhǔn)確率低計(jì)算量的特點(diǎn),故而需要設(shè)計(jì)輕量高效的模型架構(gòu)。本文使用MobileNet V2圖像分類(lèi)模型作為特征提取網(wǎng)絡(luò),改進(jìn)并應(yīng)用SSD檢測(cè)部分,完成車(chē)輛檢測(cè)模型的搭建。
MobileNet V2圖像分類(lèi)模型是谷歌于2018年1月公布的輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)模型[9],應(yīng)用了深度可分離卷積(depthwise separable convolution)、倒置殘差模塊(inverted residuals block)和線(xiàn)性瓶頸(linear bottlenecks)等精細(xì)化模型設(shè)計(jì)技巧,在計(jì)算量很小的情況下獲得了相當(dāng)高的分類(lèi)精度,是非常適合嵌入式端部署的深度卷積神經(jīng)網(wǎng)絡(luò),如表1所示。
表1 MobileNet V2性能
MobileNet V2模型結(jié)構(gòu)如表2所示。輸入圖像大小為224×224×3;首先經(jīng)過(guò)一個(gè)卷積層,卷積核大小為3×3×32,步長(zhǎng)為2;然后經(jīng)過(guò)17個(gè)大小不同的網(wǎng)絡(luò)模塊,模塊中應(yīng)用了深度可分離卷積、倒置殘差模塊和線(xiàn)性瓶頸等高效網(wǎng)絡(luò)設(shè)計(jì);最后使用1×1卷積層和平均池化層處理,輸出分類(lèi)結(jié)果向量。
表2 MobileNet V2結(jié)構(gòu)
MobileNet V2中的網(wǎng)絡(luò)模塊主要包括兩種,步長(zhǎng)為1的模塊包含殘差連接,步長(zhǎng)為2的模塊不包含殘差連接。如圖1所示,每個(gè)模塊中先使用1×1卷積完成維度控制和層間信息交互,然后使用深度可分離卷積完成主要的特征提取任務(wù)。當(dāng)步長(zhǎng)為1時(shí),模塊輸入和輸出的特征圖大小相同,可部署殘差連接進(jìn)一步提高網(wǎng)絡(luò)特征提取能力和性?xún)r(jià)比。
圖1 MobileNet V2網(wǎng)絡(luò)模塊
檢測(cè)網(wǎng)絡(luò)部分的任務(wù)是根據(jù)特征提取部分輸出的高層次抽象特征進(jìn)行目標(biāo)檢測(cè)。以Faster RCNN為代表的two-stage框架使用RPN網(wǎng)絡(luò)對(duì)圖片各位置進(jìn)行初步篩選,然后對(duì)篩選結(jié)果再進(jìn)行進(jìn)一步的目標(biāo)識(shí)別和邊界框微調(diào)。以SSD為代表的one-stage框架不使用RPN網(wǎng)絡(luò),而是將候選區(qū)域生成、分類(lèi)和邊界框微調(diào)同時(shí)進(jìn)行。一般來(lái)說(shuō),one-stage框架檢測(cè)效率高,但會(huì)損失一些準(zhǔn)確度。
SSD作為非常優(yōu)秀的one-stage目標(biāo)檢測(cè)模型,初始的特征提取網(wǎng)絡(luò)為VGG16,有很好的特征提取能力。但由上文所述,VGG16等大型深度卷積網(wǎng)絡(luò)因計(jì)算量大等問(wèn)題不適宜應(yīng)用到嵌入式端,故本文采用MobileNet V2輕量級(jí)卷積神經(jīng)網(wǎng)絡(luò)作為特征提取部分。而SSD的one-stage目標(biāo)檢測(cè)框架具有高效準(zhǔn)確的特點(diǎn),故本文以SSD檢測(cè)框架作為模型檢測(cè)部分的基礎(chǔ)網(wǎng)絡(luò)。SSD的檢測(cè)網(wǎng)絡(luò)在特征提取網(wǎng)絡(luò)末尾增加若干層尺寸逐漸減小的卷積層,進(jìn)一步提取多層次特征;然后對(duì)各層次的特征圖通過(guò)卷積運(yùn)算,獲取其輸出;最后根據(jù)該輸出判斷各像素點(diǎn)的檢測(cè)結(jié)果。
本文選用KITTI數(shù)據(jù)集作為訓(xùn)練和測(cè)試數(shù)據(jù)。KITTI數(shù)據(jù)集是針對(duì)自動(dòng)駕駛領(lǐng)域計(jì)算機(jī)視覺(jué)算法的權(quán)威評(píng)測(cè)數(shù)據(jù)集。該數(shù)據(jù)集支持立體圖像(stereo),光流(optical flow)、視覺(jué)測(cè)距(visual odometry)、目標(biāo)檢測(cè)(object detection)、跟蹤(tracking)和圖像分割(semantics)等計(jì)算機(jī)視覺(jué)算法在車(chē)載環(huán)境下的性能測(cè)評(píng)。KITTI數(shù)據(jù)集中的圖像數(shù)據(jù)由車(chē)載設(shè)備真實(shí)采集而來(lái),采集場(chǎng)景包括市區(qū)、鄉(xiāng)村和高速公路等,檢測(cè)目標(biāo)包括行人、自行車(chē)、貨車(chē)和小轎車(chē)等,并存在遮擋等情況。目標(biāo)檢測(cè)數(shù)據(jù)集由7481個(gè)訓(xùn)練圖像和7518個(gè)測(cè)試圖像組成,包括總共80256個(gè)標(biāo)記物體。
KITTI數(shù)據(jù)集由車(chē)載設(shè)備在不同駕駛場(chǎng)景實(shí)地采集而來(lái),對(duì)真實(shí)路況有很好的代表性。為了提取車(chē)輛檢測(cè)的典型工況,本文采用了k-means聚類(lèi)算法對(duì)KITTI數(shù)據(jù)集中的車(chē)輛標(biāo)注信息進(jìn)行處理,提取出行駛工況下車(chē)載攝像頭所捕捉的車(chē)輛大小和長(zhǎng)寬比的典型數(shù)據(jù),用以?xún)?yōu)化目標(biāo)檢測(cè)網(wǎng)絡(luò)對(duì)車(chē)載車(chē)輛檢測(cè)工況的檢測(cè)性能。
K-means算法是基于距離聚類(lèi)的代表性算法,根據(jù)兩個(gè)對(duì)象之間的距離遠(yuǎn)近來(lái)判斷其相似度,相似度高的對(duì)象判定屬于同簇,最終將所有對(duì)象分成緊湊且獨(dú)立的k簇,完成聚類(lèi)任務(wù)。使用k-means算法對(duì)KITTI數(shù)據(jù)集的車(chē)輛標(biāo)注信息進(jìn)行聚類(lèi)處理,可得到一系列真實(shí)路況中最常出現(xiàn)的典型車(chē)輛邊界框,從而作為優(yōu)化車(chē)輛檢測(cè)算法的依據(jù)。原始的k-means算法以歐式距離作為兩元素間距離的衡量標(biāo)準(zhǔn)。針對(duì)目標(biāo)檢測(cè)問(wèn)題,聚類(lèi)元素為車(chē)輛邊界框,若使用歐式距離作為衡量標(biāo)準(zhǔn),則大尺寸邊界框之間的微小差距都將大于小尺寸邊界框之間的顯著差距,故而本文選用交并比(Intersection over Union, IOU)作為距離公式。交并比定義為兩矩形邊界框交集與其并集的比值,可衡量邊界框之間的相似度,并且不受邊界框尺寸的影響。如圖2所示。
圖2 交并比
我們將數(shù)據(jù)集中所有車(chē)輛邊界框中心點(diǎn)固定在一起,然后以IOU作為邊界框之間的距離公式,對(duì)邊界框做k-means聚類(lèi)。聚類(lèi)算法以IOU為距離標(biāo)準(zhǔn)將數(shù)據(jù)集中的車(chē)輛邊界框分為若干簇,各簇的中心點(diǎn)邊界框擁有最能代表該類(lèi)的邊界框形狀和大小。提取各簇的中心點(diǎn)邊界框信息,如表3所示。這些典型的車(chē)輛邊界框可作為優(yōu)化檢測(cè)部分網(wǎng)絡(luò)的依據(jù)。
表3 中心點(diǎn)邊界框信息
SSD為所有進(jìn)行檢測(cè)的特征圖的每個(gè)位置設(shè)置了一組默認(rèn)的邊界框,這些邊界框有不同的大小和長(zhǎng)寬比,對(duì)應(yīng)原始圖像的不同區(qū)域。經(jīng)過(guò)檢測(cè)網(wǎng)絡(luò)后,對(duì)應(yīng)特征圖中每個(gè)像素點(diǎn)都相應(yīng)輸出了一個(gè)向量,該向量中包含該像素點(diǎn)對(duì)應(yīng)的各默認(rèn)邊界框包含各檢測(cè)目標(biāo)的概率、該默認(rèn)邊界框的微調(diào)數(shù)據(jù)等檢測(cè)結(jié)果。將得到的檢測(cè)結(jié)果與默認(rèn)邊界框參數(shù)融合之后,即可得到最終的檢測(cè)結(jié)果。SSD將不同層次的特征圖送入檢測(cè)網(wǎng)絡(luò),并設(shè)定了不同尺寸和長(zhǎng)寬比的默認(rèn)邊界框,較好地覆蓋了原始圖像中各種大小和形狀的檢測(cè)目標(biāo)。實(shí)驗(yàn)發(fā)現(xiàn),將正方形默認(rèn)邊界框修改為瘦高和寬扁的默認(rèn)邊界框,可以帶來(lái)2.9%的mAP提升。由此可見(jiàn)默認(rèn)邊界框設(shè)置的合理性對(duì)模型檢測(cè)精度有顯著影響。
SSD框架中默認(rèn)邊界框尺寸設(shè)置算法為,
(1)
其中,sk為第k層特征圖上的默認(rèn)邊界框尺度;smin為最低層次特征圖上默認(rèn)邊界框尺度,設(shè)為0.2;smax為最高層次特征圖上默認(rèn)邊界框尺度,設(shè)為0.9;m為設(shè)置邊界框的特征圖總層數(shù);k為特征圖層數(shù);
SSD框架中默認(rèn)邊界框長(zhǎng)寬比設(shè)置為,
(2)
相應(yīng)的邊界框長(zhǎng)寬為,
(3)
(4)
對(duì)于,增加邊長(zhǎng)為的邊界框。即每個(gè)特征圖的監(jiān)測(cè)點(diǎn)對(duì)應(yīng)設(shè)置了六個(gè)默認(rèn)邊界框。SSD中默認(rèn)邊界框的合理設(shè)置帶來(lái)了顯著的檢測(cè)精度提升,但針對(duì)車(chē)輛檢測(cè)工況,該默認(rèn)邊界框設(shè)置并不是最優(yōu)的,本文使用先驗(yàn)的數(shù)據(jù)驅(qū)動(dòng)的方式設(shè)置更為合理的默認(rèn)邊界框。在2.3.2節(jié)中,我們通過(guò)k-means算法提取了車(chē)輛檢測(cè)工況下車(chē)輛邊界框的典型值,本文以該數(shù)據(jù)為指導(dǎo),可設(shè)置更加貼近車(chē)輛檢測(cè)數(shù)據(jù)集的默認(rèn)邊界框參數(shù)。如表4所示。
表4 默認(rèn)邊界框參數(shù)
SSD檢測(cè)框架使用了不同層次不同尺度的特征圖同時(shí)進(jìn)行檢測(cè),顯著提高了檢測(cè)精度。在整個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,一般來(lái)說(shuō)越靠前的特征圖分辨率越高,信息越詳細(xì),感受野越小;越靠后的特征圖分辨率越低,信息越抽象,感受野越大。增加較底層的特征圖可提高模型對(duì)小目標(biāo)的檢測(cè)能力,如SSD檢測(cè)框架中增加特征提取網(wǎng)絡(luò)中比較靠前的特征圖conv4_3,明顯提高了檢測(cè)模型的精度。根據(jù)k-means聚類(lèi)結(jié)果可以看到,車(chē)輛檢測(cè)工況中小型目標(biāo)非常多,因此本文在SSD檢測(cè)框架下適當(dāng)增加靠前的特征圖以提高對(duì)小目標(biāo)的檢測(cè)能力。
本文搭建的車(chē)輛檢測(cè)算法模型結(jié)構(gòu)主要包含特征提取網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)。特征提取網(wǎng)絡(luò)選用MobileNet V2模型,輸入圖像改為300×300,去掉其最后兩層,網(wǎng)絡(luò)結(jié)構(gòu)如表5所示。
表5 特征提取部分網(wǎng)絡(luò)結(jié)構(gòu)
檢測(cè)網(wǎng)絡(luò)以SSD檢測(cè)網(wǎng)絡(luò)為基礎(chǔ)做了優(yōu)化和修改,增加的特征提取層結(jié)構(gòu)如表6所示。
表6 增加的特征提取層
提取了六層特征圖進(jìn)行多尺度檢測(cè),各層參數(shù)和默認(rèn)邊界框設(shè)置如表7所示。
表7 目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)
本算法的損失函數(shù)采用SSD檢測(cè)框架中的損失函數(shù),主要由概率損失和位置損失兩部分組成,公式如下,
(5)
其中,L為損失函數(shù);x為概率真實(shí)值;c為預(yù)測(cè)概率;l為預(yù)測(cè)邊界框位置;g為邊界框位置真實(shí)值;N為存在目標(biāo)的默認(rèn)邊界框數(shù)量;Lconf為概率損失;α為概率損失和位置損失之間的比例系數(shù),交叉驗(yàn)證設(shè)置為1;Lloc為位置損失。
概率損失采用的是softmax損失函數(shù),公式如下,
(6)
位置損失采用的是smooth L1損失函數(shù),公式如下,
(7)
Smooth L1損失函數(shù)在比較大的誤差區(qū)域使用線(xiàn)性函數(shù),而不是指數(shù)函數(shù),比較穩(wěn)定,在0附近使用平方函數(shù)使其更加平滑,在回歸問(wèn)題中應(yīng)用廣泛,其公式如下,
(8)
本文使用Caffe深度學(xué)習(xí)框架進(jìn)行實(shí)驗(yàn),首先下載KITTI車(chē)輛檢測(cè)數(shù)據(jù)集,并提取其車(chē)輛邊界框標(biāo)注信息。然后將數(shù)據(jù)集轉(zhuǎn)換為Caffe支持的LMDB格式。然后使用Caffe框架搭建網(wǎng)絡(luò)結(jié)構(gòu),配置數(shù)據(jù)增廣和損失函數(shù),完成整體算法模型搭建。最后使用處理好的數(shù)據(jù)集,選擇合適的訓(xùn)練參數(shù)對(duì)模型進(jìn)行訓(xùn)練。經(jīng)過(guò)多次實(shí)驗(yàn)和檢查驗(yàn)證,最終訓(xùn)練參數(shù)如表8所示。
表8 訓(xùn)練參數(shù)設(shè)置
多次實(shí)驗(yàn)迭代后,以最合適的訓(xùn)練參數(shù)進(jìn)行訓(xùn)練,在本文硬件條件下,用時(shí)約10小時(shí)。最優(yōu)訓(xùn)練條件下,模型mAP與訓(xùn)練進(jìn)度關(guān)系如圖3所示。由圖可知,本文模型收斂快速穩(wěn)定,且精度很高。
針對(duì)KITTI車(chē)輛檢測(cè)數(shù)據(jù)集,測(cè)試了本文構(gòu)建的車(chē)輛檢測(cè)算法mAP和計(jì)算耗時(shí)。
圖3 模型訓(xùn)練過(guò)程
如圖4所示,本模型在實(shí)驗(yàn)條件下,一次前向運(yùn)算耗時(shí)36.2 ms,檢測(cè)幀率可達(dá)27.6。檢測(cè)效果如圖5和圖6所示??梢钥吹?,在存在陰影、遮擋和不同姿態(tài)的工況下,該模型都可以較好地完成車(chē)輛檢測(cè)任務(wù),且生成的邊界框非常準(zhǔn)確。
圖4 模型運(yùn)行時(shí)間測(cè)試
圖5 模型檢測(cè)效果測(cè)試
圖6 模型檢測(cè)效果測(cè)試
本文對(duì)原SSD模型、原MobileNet V2 SSDLite模型以及經(jīng)過(guò)本文構(gòu)建的模型在模型性能、計(jì)算耗時(shí)以及模型存儲(chǔ)空間需求等方面進(jìn)行了對(duì)比。
如表9所示,以VGG16為特征提取網(wǎng)絡(luò)的原SSD模型在該車(chē)輛檢測(cè)工況下取得了最高的性能得分,但計(jì)算量巨大,計(jì)算耗時(shí)長(zhǎng),存儲(chǔ)空間需求高;而以MobileNet V2和SSDLite為主體框架的檢測(cè)模型大幅降低了計(jì)算耗時(shí),將計(jì)算需求和存儲(chǔ)需求降到嵌入式端可以考慮的范圍,但有較大的精度損失;本文中經(jīng)過(guò)優(yōu)化的模型則在保持低計(jì)算耗時(shí)和存儲(chǔ)空間需求的情況下,取得了較高的檢測(cè)性能,實(shí)現(xiàn)了精度與速度的雙重優(yōu)化,是優(yōu)秀的適合于車(chē)輛檢測(cè)工況的算法模型。
表9 各模型性能對(duì)比
本文對(duì)深度卷積神經(jīng)網(wǎng)絡(luò)在車(chē)輛檢測(cè)領(lǐng)域的應(yīng)用進(jìn)行研究,針對(duì)深度學(xué)習(xí)模型在嵌入式平臺(tái)難以應(yīng)用的問(wèn)題,對(duì)算法架構(gòu)進(jìn)行了精細(xì)化設(shè)計(jì)和優(yōu)化。為了解決深度學(xué)習(xí)模型計(jì)算量和存儲(chǔ)需求太大的問(wèn)題,本文采用MobileNet V2輕量級(jí)圖像分類(lèi)網(wǎng)絡(luò)和SSDLite目標(biāo)檢測(cè)框架作為車(chē)輛檢測(cè)算法主體,通過(guò)高效化網(wǎng)絡(luò)設(shè)計(jì)大幅降低了計(jì)算和存儲(chǔ)需求。通過(guò)使用k-means聚類(lèi)算法提取了車(chē)輛檢測(cè)特征工況,并根據(jù)其結(jié)果優(yōu)化了模型檢測(cè)部分,在幾乎不增加計(jì)算量的情況下提高了算法的準(zhǔn)確率,最終搭建完成的車(chē)輛檢測(cè)模型準(zhǔn)確率高、計(jì)算速度快。