蘇山杰 陳俊豪 張之云
(重慶交通大學(xué)機(jī)電與車輛工程學(xué)院,重慶 400074)
主題詞:深度學(xué)習(xí) 車輛目標(biāo)檢測 卷積神經(jīng)網(wǎng)絡(luò) 輕量化網(wǎng)絡(luò)
CNN Convolutional Neural Network
GPU Graphic Processing Unit
CPU Central Processing Unit
LRN Local Response Nor
VGG Visual Geometry Group
BN Batch Normalization
SVM Support Vector Machine
SPP Spatial Pyramid Pooling
ROI Region of Interest
RPN Region Proposal Networks
R-FCN RPN-Fully Convolutional Networks
IOU Intersection over Union
SSD Single Shot MultiBox Detector
FPN Feature Pyramid Network
PAN Path Aggregation Network
SVD Singular Value Decomposition
ReLU Rectified Linear Unit
目標(biāo)檢測是計(jì)算機(jī)視覺技術(shù)、深度學(xué)習(xí)和圖像識別領(lǐng)域下的基礎(chǔ)研究方向,它是更為復(fù)雜的高層計(jì)算機(jī)視覺任務(wù)的技術(shù)前提,如在檢測任務(wù)后對圖像中物體行為進(jìn)行預(yù)測;在物體識別后進(jìn)行目標(biāo)跟蹤等等。其中,車輛目標(biāo)檢測任務(wù)作為計(jì)算機(jī)視覺和深度學(xué)習(xí)領(lǐng)域下的研究重點(diǎn)和熱門任務(wù),它的目的是在圖像中定位出感興趣的目標(biāo),然后根據(jù)特征信息正確定義出定位目標(biāo)的類別,再利用檢測的邊框圈出定位目標(biāo),從而完成檢測任務(wù)。在智能駕駛、行人檢測和建立智能化的交通系統(tǒng)中有著重要的研究意義與價(jià)值,也是未來建立智慧城市的前提任務(wù)。近年來,以物聯(lián)網(wǎng)技術(shù)、計(jì)算機(jī)視覺技術(shù)為代表的核心技術(shù)得到了蓬勃發(fā)展,基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法得到了許多研究學(xué)者的青睞。
本文針對車輛目標(biāo)檢測任務(wù),首先對深度學(xué)習(xí)車輛目標(biāo)檢測進(jìn)一步探討,提出檢測任務(wù)的重點(diǎn)、難點(diǎn)及發(fā)展現(xiàn)狀,以時(shí)間線對卷積神經(jīng)網(wǎng)絡(luò)下車輛目標(biāo)檢測算法進(jìn)行概括,并對目前2 種主流的基于候選框和基于回歸的車輛目標(biāo)檢測算法進(jìn)行總結(jié),最后對目前目標(biāo)檢測算法的發(fā)展前景進(jìn)行展望。
基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法任務(wù)是從一系列的圖像或者視頻中找出感興趣的物體,同時(shí)根據(jù)特征信息確定車輛的大小和位置。但是,在實(shí)際的場景中,始終會(huì)有許多干擾因素,例如光照,遮擋,不同的尺度形狀等情況,這會(huì)導(dǎo)致車輛目標(biāo)檢測任務(wù)進(jìn)行中出現(xiàn)漏檢和誤檢的問題,影響算法的精度。因此,如何能達(dá)到算法在精度上的要求是目標(biāo)檢測中的一項(xiàng)重點(diǎn)難點(diǎn)項(xiàng)目;同時(shí),針對車輛檢測在智能駕駛和違章檢測領(lǐng)域中的應(yīng)用,算法能夠做到實(shí)時(shí)的檢測也是目前研究重點(diǎn)。大量的研究人員在此兩項(xiàng)任務(wù)上做了一系列卓越的貢獻(xiàn),尤其是深度學(xué)習(xí)算法的蓬勃發(fā)展,為車輛檢測任務(wù)帶來了更好的研究前景。
當(dāng)前,車輛目標(biāo)檢測任務(wù)所面臨的巨大挑戰(zhàn)仍然是檢測算法的實(shí)時(shí)性,精度上與檢測需求之間的矛盾,如何更好的平衡它們一直是基于深度學(xué)習(xí)的目標(biāo)檢測算法的重要研究方向。而目前對以上2項(xiàng)指標(biāo)的研究也在逐漸進(jìn)行,但仍存在5項(xiàng)研究難點(diǎn):
(1)無人駕駛車輛在行駛過程中會(huì)遇到不同的環(huán)境狀況,因此所采集到的圖像往往會(huì)受到不同光照條件,天氣不斷變化,以及出現(xiàn)目標(biāo)物被大面積遮擋的情況影響,這會(huì)導(dǎo)致目標(biāo)檢測任務(wù)出現(xiàn)提取特征不足,漏檢物體的情況,進(jìn)一步加大檢測難度。
(2)目前存在的數(shù)據(jù)集對象類別與現(xiàn)實(shí)世界中獲取的圖像中的部分類別存在一定的差距,這會(huì)導(dǎo)致在訓(xùn)練過程中,所標(biāo)注的物體被識別為其它對象,或者識別為背景,這會(huì)大大降低檢測結(jié)果的精度。
(3)在特定數(shù)據(jù)集訓(xùn)練后,更換新的數(shù)據(jù)集會(huì)出現(xiàn)較低的檢測精度,因?yàn)闄z測算法的泛化能力不夠好。
(4)目前采集的圖像數(shù)量呈指數(shù)級增長,而處理設(shè)備的計(jì)算能力及儲(chǔ)存能力可能無法做到更好的實(shí)時(shí)檢測。
(5)未來的研究難點(diǎn)更注重分割圖像中感興趣物體的類別,甚至可以做到根據(jù)圖像預(yù)測物體的行為及會(huì)出現(xiàn)的對象。
傳統(tǒng)的車輛目標(biāo)檢測中,也有許多代表性的檢測算法,占主要地位的就是基于人工特征提取的檢測方法。這類方法一般都是用作特定的目標(biāo)檢測任務(wù),在整個(gè)環(huán)節(jié)中,人工特征提取階段對人的主觀意識有較高的要求,扮演著重要的角色,對整個(gè)算法的性能有直接的影響。傳統(tǒng)的車輛目標(biāo)檢測算法的缺點(diǎn)主要是數(shù)據(jù)量小,人工提取效果不好,可移植性較差,時(shí)間復(fù)雜度高,窗口贅余,面對環(huán)境多變性的魯棒性差,只有在特定的環(huán)境下才有良好的性能,故并不適合在檢測實(shí)時(shí)性要求較高和環(huán)境多變的場景中應(yīng)用,在現(xiàn)實(shí)中也得不到大規(guī)模的應(yīng)用。隨著計(jì)算機(jī)視覺技術(shù)的快速發(fā)展,基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法也逐漸成為主流算法,與傳統(tǒng)的經(jīng)典算法不同,此類算法克服傳統(tǒng)算法的大部分缺點(diǎn),同時(shí)在計(jì)算機(jī)GPU 和儲(chǔ)存能力都大幅度提高的信息技術(shù)下,深度學(xué)習(xí)的運(yùn)算速度比過去提高了2~24 倍,從而得到了越來越多的國內(nèi)外學(xué)者認(rèn)可。2012 年,基于卷積神經(jīng)網(wǎng)絡(luò)的分類網(wǎng)絡(luò)被提出后,許多學(xué)者已經(jīng)開始將深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于目標(biāo)檢測任務(wù),并提出了許多優(yōu)秀的算法。目前,基于深度學(xué)習(xí)的目標(biāo)檢測算法在學(xué)術(shù)領(lǐng)域的主要關(guān)注點(diǎn)就是模型的精度和速度的實(shí)時(shí)性,從而產(chǎn)生了2 個(gè)不同發(fā)展方向:2 階段目標(biāo)檢測算法和1 階段目標(biāo)檢測算法,分別強(qiáng)調(diào)檢測精度和檢測速度。
提出性能較好的深度學(xué)習(xí)下目標(biāo)檢測算法是近些年來計(jì)算機(jī)視覺技術(shù)領(lǐng)域的重要研究目標(biāo),特別是基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法被國內(nèi)外學(xué)者普通接受的環(huán)境下,對算法的創(chuàng)新使檢測精度和實(shí)時(shí)性達(dá)到了一個(gè)新的高度。
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)經(jīng)歷了幾十年的發(fā)展歷程,現(xiàn)在已經(jīng)在許多領(lǐng)域中得到應(yīng)用,并進(jìn)一步提高了許多任務(wù)的效率,目前對圖像中目標(biāo)進(jìn)行分類、檢測及語義分割的計(jì)算機(jī)視覺任務(wù)也逐漸成為一種高效率的檢測方法,卷積神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測研究中的重要里程碑如圖1 所示。卷積神經(jīng)網(wǎng)絡(luò)是由3部分組成,包括進(jìn)行卷積操作的卷積層、采樣的池化層和對向量進(jìn)行處理的全連接層,這些模塊最后堆疊形成一個(gè)深層架構(gòu),卷積神經(jīng)網(wǎng)絡(luò)在發(fā)展歷史中演化出3個(gè)有借鑒意義的理念和方法:
圖1 經(jīng)典神經(jīng)網(wǎng)絡(luò)算法發(fā)展歷程
(1)權(quán)值共享的理念;
(2)局部連接(稀疏連接)方法;
(3)平移不變性和等變性。
隨著算法的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)也出現(xiàn)許多性能較好的算法,每一種網(wǎng)絡(luò)結(jié)構(gòu)都有其獨(dú)特的結(jié)構(gòu)和創(chuàng)新點(diǎn),并對前人的工作做了對比分析,本節(jié)對這些結(jié)構(gòu)進(jìn)行總結(jié)和分析。
3.1.1 AlexNet
由LeCun 等提出的LeNet-5 卷積神經(jīng)網(wǎng)絡(luò)最初是應(yīng)用在數(shù)字識別問題上,該網(wǎng)絡(luò)模型的出現(xiàn)奠定了現(xiàn)代神經(jīng)網(wǎng)絡(luò)的發(fā)展基調(diào),為后續(xù)新的網(wǎng)絡(luò)模型的提出產(chǎn)生了深遠(yuǎn)的影響。2012年,針對前期各種卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不足,Krizhevsky等人通過大量的訓(xùn)練集訓(xùn)練網(wǎng)絡(luò),最終提出了一種全新的AlexNet 網(wǎng)絡(luò)結(jié)構(gòu),在舉辦的ImageNet 大規(guī)模視覺識別挑戰(zhàn)賽(ILS?VRC)中,網(wǎng)絡(luò)具有最優(yōu)的性能,在檢測精度和檢測速度都大幅度提升,該網(wǎng)絡(luò)結(jié)構(gòu)瞬間推動(dòng)了神經(jīng)網(wǎng)絡(luò)的應(yīng)用熱潮,而深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺領(lǐng)域的大規(guī)模應(yīng)用,進(jìn)一步推動(dòng)了其主導(dǎo)地位的建立。AlexNet 的網(wǎng)絡(luò)結(jié)構(gòu)共有8 層,包括5 個(gè)卷積層和3 個(gè)全連接層,這樣網(wǎng)絡(luò)結(jié)構(gòu)在增加深度和廣度的同時(shí),使其網(wǎng)絡(luò)參數(shù)增加到了6 000 萬個(gè),網(wǎng)絡(luò)結(jié)構(gòu)通過兩塊GPU 運(yùn)算,大大減少了CPU 訓(xùn)練的時(shí)間成本。AlexNet 有以下貢獻(xiàn):在ReLU 函數(shù)提出后,對其使用并沒有發(fā)揚(yáng)光大,作者經(jīng)過大量數(shù)據(jù)分析發(fā)現(xiàn)ReLU函數(shù)解決了傳統(tǒng)的Sigmoid函數(shù)在網(wǎng)絡(luò)層數(shù)較深時(shí)會(huì)出現(xiàn)梯度彌散的問題。對比分析后,將ReLU 作為激活函數(shù)來提高網(wǎng)絡(luò)性能;使用數(shù)據(jù)增強(qiáng)減少過擬合問題;由于參數(shù)量過大的問題,使用Dropout函數(shù)去隨機(jī)選擇一些神經(jīng)元失去活性,在對試驗(yàn)的精度沒有影響的同時(shí),也避免了模型過擬合問題,之后的網(wǎng)絡(luò)結(jié)構(gòu)中該層成為全連接層之后的標(biāo)配層;作者提出局部響應(yīng)歸一化(Local Response Nor,LRN)層是對模型泛化能力的進(jìn)一步保障。
3.1.2 VGGNet
VGGNet是由牛津大學(xué)VGG(Visual Geometry Group)團(tuán)隊(duì)和Google Deep Mind 公司在針對AlexNet網(wǎng)絡(luò)層數(shù)深度問題進(jìn)行研究而提出來的,并取得了ImageNet 競賽中定位檢測的第一名和分類任務(wù)的第二名的好成績,同時(shí)證明了算法的網(wǎng)絡(luò)深度對目標(biāo)檢測性能有較大的影響。然而這種增加網(wǎng)絡(luò)深度的改進(jìn)方法并不是沒有限制的,作者通過設(shè)定VGGNet 網(wǎng)絡(luò)結(jié)構(gòu)為11、13、16、19 層,驗(yàn)證了在恰當(dāng)?shù)木W(wǎng)絡(luò)深度的基礎(chǔ)上繼續(xù)添加網(wǎng)絡(luò)的層數(shù)會(huì)出現(xiàn)訓(xùn)練差增大,而出現(xiàn)的網(wǎng)絡(luò)退化的問題,故目前最佳的網(wǎng)絡(luò)深度為16層和19 層,VGG16 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。VGGNet網(wǎng)絡(luò)結(jié)構(gòu)有以下特點(diǎn):結(jié)構(gòu)簡潔,并在卷積層中采用多個(gè)小卷積核去替代較大的卷積核,這一方面減少了模型的參數(shù),增大了網(wǎng)絡(luò)感受野,另一方面進(jìn)行了更多的非線性映射操作,增加網(wǎng)絡(luò)層數(shù)加深時(shí)的擬合和表達(dá)能力,且模型采用了更小的2×2 池化核,并在測試階段把3 個(gè)全連接替換為3 個(gè)卷積,該網(wǎng)絡(luò)的突出貢獻(xiàn)在于證明了使用小卷積核,能夠增加網(wǎng)絡(luò)的深度從而更好的提取特征。
圖2 VGG16框架網(wǎng)絡(luò)結(jié)構(gòu)[8]
3.1.3 GoogleNet
GoogleNet 是Szegedy 等在2014 年提出的,網(wǎng)絡(luò)最主要的就是Inceptionv1模塊層,并在之后改進(jìn)過程中出現(xiàn)包括Inceptionv2,Inceptionv3和Inceptionv4的3個(gè)版本,這些模塊主要是由1×1,3×3,5×5的卷積核模塊組成,目的是通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)從而降低網(wǎng)絡(luò)的復(fù)雜程度,減少了模型的參數(shù)量。由于該網(wǎng)絡(luò)結(jié)構(gòu)擁有較好的性能,在2014 年的ILSVRC 圖像分類競賽中,獲得了第一名的佳績,為后續(xù)網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)提供了新的思路。
3.1.4 ResNet
網(wǎng)絡(luò)層數(shù)到了一定的深度,會(huì)不可避免的出現(xiàn)許多問題,如參數(shù)量增多,訓(xùn)練結(jié)果不理想等,學(xué)者對問題更深一步探討,主要原因是網(wǎng)絡(luò)層數(shù)深度的增加,數(shù)據(jù)集不充分,便會(huì)引起梯度彌散或梯度爆炸的問題。以上問題的是由何凱明團(tuán)隊(duì)提出的ResNet 網(wǎng)絡(luò)改善的,主要工作是在主干卷積環(huán)節(jié)添加Residual結(jié)構(gòu)模塊,這種模塊利用跳連的結(jié)構(gòu)將輸入的特征和經(jīng)過卷積操作后的輸出特征相加,共同成為輸出層的一部分,模塊結(jié)構(gòu)如圖3 所示。該網(wǎng)絡(luò)在增加了網(wǎng)絡(luò)深度的同時(shí),對輸入數(shù)據(jù)進(jìn)行訓(xùn)練時(shí)也不會(huì)影響誤差,取得了較好的效果,該網(wǎng)絡(luò)設(shè)計(jì)特點(diǎn)是在非線性層后,激活函數(shù)前采用批標(biāo)準(zhǔn)化(Batch Normalization,BN)層加快網(wǎng)絡(luò)的訓(xùn)練速度和收斂時(shí)的穩(wěn)定性,用平均池化層代替全連接層。在同年的ILSVRC 和COCO的競賽中,各個(gè)方面的性能實(shí)現(xiàn)了驚人的突破,幾乎以碾壓性的優(yōu)勢分別取得了分類、定位、檢測和分割任務(wù)的第一名,該網(wǎng)絡(luò)的提出進(jìn)一步奠定了深度卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺技術(shù)的主導(dǎo)地位,對后續(xù)網(wǎng)絡(luò)的提出與改進(jìn)有著較好的借鑒意義。
圖3 Residual模塊結(jié)構(gòu)
3.1.5 DenseNet
2016年,Huang等為緩解梯度損失,加強(qiáng)網(wǎng)絡(luò)中特征的傳遞,提出了轟動(dòng)一時(shí)的DenseNet 網(wǎng)絡(luò)結(jié)構(gòu),主要構(gòu)建模塊是稠密層和過渡層,稠密塊主要是稠密連接的Highway 模塊,過渡層為相鄰2 個(gè)稠密塊的中間部分,這樣的連接方式大幅度減少了模型的參數(shù),有效地對特征進(jìn)行復(fù)用,甚至解決了在小樣本上的過擬合問題。
3.1.6 MobileNet
2017年,隨著計(jì)算機(jī)視覺技術(shù)和GPU的快速發(fā)展,神經(jīng)網(wǎng)絡(luò)模型的輕量化逐漸成為國內(nèi)外學(xué)者爭先研究的方向,常見的設(shè)計(jì)方法有2種:設(shè)計(jì)輕量化的網(wǎng)絡(luò)模型和對訓(xùn)練好的復(fù)雜網(wǎng)絡(luò)進(jìn)行壓縮處理。Google團(tuán)隊(duì)經(jīng)過大量的研究,提出了一種當(dāng)時(shí)最輕量化的網(wǎng)絡(luò)模型:MobileNet,并且具有高效的性能。作者的初衷是為了減小參數(shù)量提升運(yùn)算速度,使算法更適用小型設(shè)備,作者并沒有采用傳統(tǒng)的卷積網(wǎng)絡(luò),而用深度可分離卷積網(wǎng)絡(luò)替代全部的卷積網(wǎng)絡(luò),進(jìn)一步提出了Width Multiplier和Resolution Multiplier兩個(gè)超參數(shù),2個(gè)參數(shù)都可以進(jìn)行調(diào)節(jié),調(diào)節(jié)的結(jié)果會(huì)對不同的檢測任務(wù)實(shí)現(xiàn)更好的檢測性能,經(jīng)歷了多年的發(fā)展出現(xiàn)了許多的輕量化網(wǎng)絡(luò)版本,如MobileNetV2、MobileNetV3。
3.1.7 ShuffleNet
輕量化神經(jīng)網(wǎng)絡(luò)熱潮進(jìn)一步得到推動(dòng),曠視科技提出了一種新的更加高效的移動(dòng)端卷積神經(jīng)網(wǎng)絡(luò),命名為ShuffleNet,主要有2個(gè)創(chuàng)新的應(yīng)用:
(1)將逐點(diǎn)組卷積應(yīng)用到網(wǎng)絡(luò)結(jié)構(gòu)中,去降低逐點(diǎn)卷積使用中的計(jì)算復(fù)雜度,同時(shí)可以消除多個(gè)卷積堆疊后產(chǎn)生的負(fù)面影響;
(2)采用通道混洗的操作,可以大大改善在跨特征通道中的信息流動(dòng)。
2 種創(chuàng)新點(diǎn)的提出,使得該算法在ImageNet 競賽和COCO 競賽中取得了優(yōu)秀的成績,表現(xiàn)出了移動(dòng)端先進(jìn)網(wǎng)絡(luò)的優(yōu)越性能。
在計(jì)算機(jī)視覺技術(shù)的更新迭代中,卷積神經(jīng)網(wǎng)絡(luò)也得到快速發(fā)展。每一種卷積神經(jīng)網(wǎng)絡(luò)框架都有獨(dú)特的優(yōu)勢,目前模型結(jié)構(gòu)正在逐漸優(yōu)化,向更深的網(wǎng)絡(luò)結(jié)構(gòu)、更輕量化的結(jié)構(gòu)發(fā)展,模型性能也在逐漸提升。卷積神經(jīng)網(wǎng)絡(luò)由于存在優(yōu)異的性能,在目標(biāo)檢測算法中具有更深層次的提升,使得目前許多領(lǐng)域在相關(guān)的研究中都采用了目標(biāo)檢測算法,并取得了較好的成績。
基于候選框的車輛檢測方法通過2 個(gè)步驟實(shí)現(xiàn),這類檢測算法的優(yōu)勢是可以充分提取圖像的細(xì)節(jié)特征,故該算法有更好的檢測精度,但由于算法分為2個(gè)步驟,從而導(dǎo)致模型的運(yùn)行速度較慢。
3.2.1 R-CNN
2014 年,Girshick 等對神經(jīng)網(wǎng)絡(luò)算法進(jìn)行不斷優(yōu)化,進(jìn)一步提出了R-CNN模型,是第一個(gè)將深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測的算法,該算法總共4 個(gè)部分獲得檢測結(jié)果,首先通過網(wǎng)絡(luò)獲取檢測的圖像;其次對輸入的圖像采用選擇性搜素(Selective Search)算法,提出大約2 000 個(gè)區(qū)域候選框,并把不同大小的候選框縮放到相同大?。蝗缓笫褂肁lexNet 獲得候選區(qū)域的特征;最后利用多個(gè)SVM分類器和回歸器得到目標(biāo)的類別和位置信息,結(jié)構(gòu)如圖4 所示。雖然該類算法的檢測精度很高,但是還是有缺陷:
圖4 R-CNN框架網(wǎng)絡(luò)結(jié)構(gòu)[16]
(1)網(wǎng)絡(luò)的各個(gè)階段都需要單獨(dú)訓(xùn)練,這大大增加了算法的時(shí)間成本。
(2)卷積神經(jīng)網(wǎng)絡(luò)需要對所有的候選框進(jìn)行特征的提取,且大量的重復(fù)區(qū)域會(huì)產(chǎn)生大量的運(yùn)算,增加計(jì)算復(fù)雜度。
(3)該算法需要對輸入圖像進(jìn)行縮放操作,會(huì)導(dǎo)致一定的細(xì)節(jié)信息丟失。
3.2.2 SPP-Net
2015 年,為了解決R-CNN 缺陷的部分問題,He等提出了一種新奇的卷積操作模型,該網(wǎng)絡(luò)模型對輸入的圖像可以一次性進(jìn)行卷積操作,沒有多余的步驟,這樣的操作大大減少了運(yùn)算時(shí)間,且作者提出了一種新的池化策略,該策略主要思想是在網(wǎng)絡(luò)模型的最后一個(gè)卷積層后、全連接層前添加金字塔空間池化結(jié)構(gòu)(Spatial Pyramid Pooling,SPP),這樣可以提取固定尺寸的特征向量,避免了在候選區(qū)域批量歸一化的操作。該算法的檢測速度相較于R-CNN快了24~102倍,但是該算法還是有缺陷:
(1)訓(xùn)練方式分階段,每部分網(wǎng)絡(luò)都需要訓(xùn)練,這樣的方式導(dǎo)致需要儲(chǔ)存大量特征,需要更多的空間成本。
(2)網(wǎng)絡(luò)在池化層的加入后只更新了后面的全連接層,忽略前面層數(shù)對網(wǎng)絡(luò)模型的影響,這會(huì)導(dǎo)致檢測精度變差。
3.2.3 Fast R-CNN
2015 年Girshick 等提出了Fast R-CNN 算法,該算法融合了SPPNet的思想,將網(wǎng)絡(luò)的SPP層設(shè)計(jì)成為單獨(dú)的一層,即ROI Pooling 層,進(jìn)一步解決了權(quán)值更新的問題。另外該算法引入SVD,將全連接層的輸出分解,得到Softmax 函數(shù)分類得分和矩形窗口(Bound?ing Box)回歸,將分類和回歸問題進(jìn)行合并處理,SVD的引入在不降低檢測精度的同時(shí),大大提升了了檢測速度。其中使用Softmax 函數(shù)代替SVM,將卷積神經(jīng)網(wǎng)絡(luò)提取的特征都儲(chǔ)存在顯存中,減少了磁盤空間的占用,提升訓(xùn)練性能,加快訓(xùn)練速度。但是該算法還是存在一定的缺陷:
(1)依然使用Selective Search方法選取候選區(qū)域,這一步驟不可避免會(huì)包含大量計(jì)算。
(2)目前算法無論在檢測精度和速度都有大幅度的提升,但是目前大多數(shù)領(lǐng)域在實(shí)時(shí)檢測的需求要求更高,故針對實(shí)時(shí)性較高的目標(biāo)檢測問題,仍不能使用。
3.2.4 Faster R-CNN
對以上網(wǎng)絡(luò)存在的不足,微軟團(tuán)隊(duì)的Ren 等經(jīng)過大量的改進(jìn)試驗(yàn),2015年正式提出了Faster R-CNN算法,算法主要是使用區(qū)域生成網(wǎng)絡(luò)(Region Proposal Networks,RPN)網(wǎng)絡(luò)替代Selective Search算法,成為了第一個(gè)真正意義上的端到端的網(wǎng)絡(luò),訓(xùn)練流程如5 所示。該算法的提出,大幅度提升了目標(biāo)檢測速度,但是該算法也存在一定的瑕疵:
(1)沿用ROI Pooling 層,網(wǎng)絡(luò)特征失去平移不變性,導(dǎo)致最后目標(biāo)檢測中定位的準(zhǔn)確性降低。
(2)Faster R-CNN 在特征圖上使用錨點(diǎn)框去對應(yīng)原圖,而錨點(diǎn)框在網(wǎng)絡(luò)上會(huì)經(jīng)過多次下采樣操作,這樣會(huì)導(dǎo)致對應(yīng)的原圖是一塊較大的區(qū)域,然后對小目標(biāo)的檢測變得不理想。
(3)存在重復(fù)運(yùn)算。
圖5 Faster R-CNN訓(xùn)練流程[19]
3.2.5 R-FCN
針對Faster R-CNN 存在的問題,Dai 等對網(wǎng)絡(luò)進(jìn)行一定的改進(jìn),提出了R-FCN。該算法主要是使用ResNet主干網(wǎng)絡(luò)替換VGG網(wǎng)絡(luò),提升了網(wǎng)絡(luò)的特征提取能力和分類的效果,同時(shí)提出了一種特定的卷積層,生成包含目標(biāo)空間位置信息的位置敏感分布圖(Position-sensitive score maps),解決了物體分類中平移不變性而物體檢測要求有平移變化的矛盾。
3.2.6 Mask R-CNN
2017 年Facebook 的He 等在前人對Faster RCNN 的研究基礎(chǔ)上,提出了Mask R-CNN 算法,網(wǎng)絡(luò)框架如圖6 所示,該算法主要應(yīng)用于實(shí)例分割任務(wù)。算法主要提出了ROI Align 來代替ROI Pooling,從而實(shí)現(xiàn)更加精確的實(shí)例分割,然后提出增加一個(gè)Mask分支來預(yù)測每一個(gè)ROI上的分割掩碼,這樣的操作使分類分支、邊框回歸分支和Mask分支并行運(yùn)行,在提高分割精度的同時(shí),減少了運(yùn)行時(shí)間,使得模型運(yùn)行速度更快。該算法雖然運(yùn)行速度較快,但不能滿足實(shí)時(shí)檢測的需求,且目前實(shí)例分割主要面臨大量標(biāo)注代價(jià)的問題。
圖6 Mask R-CNN框架網(wǎng)絡(luò)結(jié)構(gòu)[16]
3.2.7 Cascade R-CNN
之前大多數(shù)網(wǎng)絡(luò)結(jié)構(gòu)都使用IOU 閾值來判斷正負(fù)樣本,在訓(xùn)練過程中,采用較低的IOU閾值訓(xùn)練目標(biāo)檢測器(Object detector),通常會(huì)出現(xiàn)噪聲干擾;在逐漸提高閾值后,發(fā)現(xiàn)性能會(huì)有所下降。針對這一問題,2018 年Cai 等提出了一種級聯(lián)結(jié)構(gòu)的目標(biāo)檢測器Cascade R-CNN,該算法主要貢獻(xiàn)是能夠在低IOU值獲得更多“高IOU”樣本,且每一個(gè)階段的Object de?tector 都不會(huì)出現(xiàn)過擬合的情況,因?yàn)槎加凶銐驖M足閾值的條件樣本。
3.2.8 TridentNet
在檢測任務(wù)中,存在目標(biāo)尺度多樣化的問題,為了解決這個(gè)問題出現(xiàn)了許多經(jīng)典的算法,如一階段的SSD 算法,或者依賴于圖像金字塔與特征金字塔FPN。2019 年,Li 等提出了一種利用空洞卷積構(gòu)建的網(wǎng)絡(luò)TridentNet,且使用并行多分支學(xué)習(xí)輸入圖像的不同尺度目標(biāo)的特征。這種算法與SSD算法相比,對于小目標(biāo)檢測有更優(yōu)越的性能。
目前,基于候選框的目標(biāo)檢測算法仍然在不斷發(fā)展,雖然檢測精度在不斷提升,總體而言該類算法還是存在檢測速度不能達(dá)到實(shí)時(shí)檢測的需求。整個(gè)發(fā)展歷史過程中,新的網(wǎng)絡(luò)都是針對當(dāng)前網(wǎng)絡(luò)的缺點(diǎn),進(jìn)而提出改進(jìn)的方法,把前者的不足進(jìn)一步完善,但網(wǎng)絡(luò)模型檢測速度提升并不夠,這也是該階段算法需要重點(diǎn)關(guān)注的問題。在未來發(fā)展過程中,該類算法應(yīng)借鑒基于回歸的目標(biāo)檢測算法去提高檢測速度,盡可能降低算法訓(xùn)練時(shí)間,減少模型參數(shù)數(shù)量來滿足實(shí)時(shí)檢測的需求。表1總結(jié)了基于候選區(qū)域的車輛目標(biāo)檢測算法的優(yōu)缺點(diǎn)和適用場景。
表1 基于候選區(qū)域的車輛目標(biāo)檢測算法優(yōu)缺點(diǎn)
基于回歸的車輛目標(biāo)檢測算法是針對圖像的分類和定位轉(zhuǎn)換回歸問題,可以經(jīng)過一次運(yùn)算從圖像中得到邊界框和類別概率的預(yù)測,該類算法主要優(yōu)勢是模型的構(gòu)建更為簡單,且檢測實(shí)時(shí)性更能滿足需求,但在檢測精度的方面還存在提升空間。
3.3.1 YOLO系列
目前基于候選區(qū)域的目標(biāo)檢測算法普遍存在實(shí)時(shí)性檢測差的問題,2016 年,針對這個(gè)問題,Redmon等提出了YOLOv1 算法,主要的操作是將圖片劃分為S×S個(gè)網(wǎng)格,每一個(gè)網(wǎng)格檢測中心落在當(dāng)前網(wǎng)絡(luò)的目標(biāo),預(yù)測出2 個(gè)尺度的Bounding Box 和類別信息,一次性預(yù)測出圖像區(qū)域包含的所有目標(biāo)的Bound?ing Box、目標(biāo)的置信度以及類別概率,得到最終的檢測結(jié)果,YOLO 的框架算法結(jié)構(gòu)如圖7 所示。該算法的檢測速度非常快,達(dá)到了45 幀/s,但網(wǎng)絡(luò)會(huì)產(chǎn)生更多的定位誤差,在每一次特征提取后,使得網(wǎng)絡(luò)最終的檢測精度下降,且網(wǎng)格劃分的操作是很粗糙的,每個(gè)網(wǎng)格只預(yù)測2個(gè)Bounding Box,且類別相同,因此對小物體的檢測效果較差,對多物體環(huán)境下漏檢也很明顯。
圖7 YOLO框架算法結(jié)構(gòu)[16]
針對YOLOv1的問題,Redmon經(jīng)過一段時(shí)間的嘗試,最終提出了檢測速度更快,精度更高的v2版本,主要?jiǎng)?chuàng)新是訓(xùn)練了一個(gè)Darknet-19 的網(wǎng)絡(luò)作為主干網(wǎng)絡(luò),用于更好的提取特征,并減少模型的計(jì)算量,同時(shí)網(wǎng)絡(luò)舍棄Dropout 操作,在每一個(gè)卷積層后添加BN層,加入新的K-Means 維度聚類方式,并進(jìn)行多尺度訓(xùn)練。文獻(xiàn)[26]還提出了YOLO9000,該算法應(yīng)用WordTree 層次分類,能檢測多達(dá)9 000 多類物體的檢測。
2018 年,Redmon 等在YOLOv2 的基礎(chǔ)上,提出了更優(yōu)秀的V3版本,使用更深層次的Darknet-53殘差網(wǎng)絡(luò),并結(jié)合特征金字塔網(wǎng)絡(luò)進(jìn)行多尺度的融合策略,使得算法能夠在3個(gè)不同的尺度上進(jìn)行檢測,同時(shí)對于小目標(biāo)的檢測效果有更好的檢測效果。
2020 年,Bochkovskiy 等融合各種調(diào)優(yōu)技巧,使得模型實(shí)現(xiàn)了當(dāng)時(shí)最優(yōu)的試驗(yàn)結(jié)果,并命名為YO?LOv4。模型主要選用感受野更大,參數(shù)更多的CSP?Darknet53 作為主干網(wǎng)絡(luò),同時(shí)模型采用Mish 激活函數(shù),Dropblock 模塊也加入到主干網(wǎng)絡(luò)中,起到了更好的檢測效果;并加入了SPP 模塊及FPN+PAN 結(jié)構(gòu)讓網(wǎng)絡(luò)進(jìn)行特征融合。YOLOv4較為突出的優(yōu)點(diǎn)就是能夠使用單GPU進(jìn)行模型的訓(xùn)練,并不需要昂貴的訓(xùn)練設(shè)備。
同年也出現(xiàn)了YOLOv5 版本,總共有4 個(gè)模型YOLOv5s、YOLOv5m、YOLOv5l 及YOLOv5x,YOLOv5s是4 個(gè)版本中深度最小、特征圖寬度最小的網(wǎng)絡(luò),其它3個(gè)模型就是在此基礎(chǔ)上不斷加深網(wǎng)絡(luò)、加寬寬度后形成的模型。YOLOv5 主要?jiǎng)?chuàng)新是在輸入端應(yīng)用自適應(yīng)錨框計(jì)算,在Backbone 加入了一種Focus 結(jié)構(gòu),在預(yù)測端提出了一種訓(xùn)練GIOU_Loss 函數(shù)??傮w來說改進(jìn)的網(wǎng)絡(luò)模型YOLOv5 在檢測精度和速度上都有一定的提升,對后續(xù)算法的改進(jìn)有著較好的借鑒意義。
3.3.2 SSD
針對YOLO 算法容易造成漏檢和對尺度變化較大物體的泛化能力較差的問題,2016 年Liu 等提出了SSD算法,該算法主要目的是有效地進(jìn)行小目標(biāo)和多尺度的檢測,采用6 個(gè)不同尺度的FeatureMap 進(jìn)行檢測任務(wù);同時(shí)結(jié)合Faster-RCNN 中的Anchor,提出了Default boxes 的生成,這些改進(jìn)點(diǎn)都提高了算法的運(yùn)行速度和檢測精度,網(wǎng)絡(luò)也得到了廣泛的應(yīng)用,雖然主要是針對小目標(biāo)的檢測,但淺層特征的特征圖包含的語義信息較少,使得算法對小目標(biāo)的檢測仍達(dá)不到Faster R-CNN的精度。
3.3.3 RetinaNet
基于回歸的目標(biāo)檢測算法的運(yùn)行速度雖然很快,但是檢測精度始終沒有基于候選區(qū)域的目標(biāo)檢測算法高,針對這一問題,研究者發(fā)現(xiàn)主要原因是因?yàn)檎?fù)樣本不平衡造成的。2017 年,Lin 等設(shè)計(jì)了一個(gè)簡單密集型網(wǎng)絡(luò)(RetinaNet),RetinaNet訓(xùn)練在保證速度的同時(shí)達(dá)到了精度最優(yōu)。作者提出了使用Focal Loss解決負(fù)樣本過多的問題,并使用RetinaNet網(wǎng)絡(luò)證明Focal Loss 的有效性,同時(shí)試驗(yàn)證明了檢測速度能夠與單階段的檢測算法媲美,且檢測精度超越了當(dāng)時(shí)的最先進(jìn)的兩階段的檢測算法。
3.3.4 CornerNet
在單階段的檢測算法中,很多都是基于Anchor,但是這種方法也有許多缺點(diǎn),大量的Anchor會(huì)產(chǎn)生很多超參數(shù),如Anchor 的比例、數(shù)目、大小,同時(shí)也會(huì)帶來正負(fù)樣本不平衡的問題。針對以上不足,2018 年Law 等提出了CornerNet 算法,該算法沒有沿用An?chor的方式,而是將目標(biāo)檢測的問題以另一種方式進(jìn)行檢測。對關(guān)鍵點(diǎn)檢測,主要操作是通過檢測目標(biāo)框上的左上角和右下角2 個(gè)關(guān)鍵點(diǎn)得到預(yù)測框,進(jìn)而得到檢測結(jié)果,也為目標(biāo)檢測算法提供了一種新思路,且試驗(yàn)結(jié)果表明在精度上有一定的提升,但是該算法對于2個(gè)關(guān)鍵點(diǎn)的檢測還是比較慢的,這一定程度上影響了檢測速度。
3.3.5 CenterNet
針對CornerNet 在關(guān)鍵點(diǎn)檢測過程較慢的不足,2019 年由Duan 等進(jìn)一步做了大量的研究,提出了CenterNet 算法。該算法的主要目的是將目標(biāo)檢測問題轉(zhuǎn)換為對一個(gè)中心點(diǎn)的檢測,且無需后處理過程,CenterNet直接回歸目標(biāo)框尺寸,最后基于目標(biāo)框尺寸和目標(biāo)框的中心點(diǎn)位置就能得到預(yù)測框。算法的改進(jìn)能夠提高檢測速度,且目前由于Anchor-free的大量應(yīng)用,提高了研究人員將該算法擴(kuò)展到其它目標(biāo)檢測任務(wù)類型的信心。
3.3.6 EfficientDet
目前各個(gè)領(lǐng)域都有使用目標(biāo)檢測技術(shù),工業(yè)界更是把檢測精度和檢測速度作為最重要的指標(biāo),但提出的所有算法不能同時(shí)顧及這2 項(xiàng)指標(biāo),一項(xiàng)指標(biāo)的提升會(huì)犧牲另一項(xiàng)指標(biāo),針對目前基于回歸的目標(biāo)檢測算法速度較快,但檢測精度相對較低的問題,Tan等提出了一種能夠把檢測速度和檢測精度同時(shí)做到最優(yōu)的算法EfficientDet,該算法網(wǎng)絡(luò)結(jié)構(gòu)如圖8 所示。該算法主要將EfficientNet作為主干網(wǎng)絡(luò),提出了一種簡單高效的加權(quán)特征金字塔網(wǎng)絡(luò)BiFPN,同時(shí)提出了復(fù)合系數(shù)來改變網(wǎng)絡(luò)的分辨率、深度和寬度。目前該網(wǎng)絡(luò)在COCO 數(shù)據(jù)集上試驗(yàn)結(jié)果達(dá)到了51.0%的檢測精度,且檢測速度非常快,在嵌入式設(shè)備及移動(dòng)端都能大規(guī)模的應(yīng)用,也能為后續(xù)算法的提出與改進(jìn)起到啟發(fā)式的作用。
圖8 EfficientDet框架算法結(jié)構(gòu)[36]
基于回歸的車輛目標(biāo)檢測算法的優(yōu)缺點(diǎn)如表2所示。
表2 基于回歸的車輛目標(biāo)檢測優(yōu)缺點(diǎn)[41]
近3 年來,2 種主流算法的檢測精度和檢測速度都在不斷提高,除此之外更多優(yōu)秀的算法也在不斷提出。對YOLO 系列算法改進(jìn)后,在模型參數(shù)數(shù)量減少的同時(shí),改善了對不同尺度目標(biāo)檢測的效果,對SSD系列算法進(jìn)行改進(jìn)后,小目標(biāo)多尺度檢測精度得到提高,也應(yīng)用于復(fù)雜場景下的車輛目標(biāo)檢測;Effi?cientDet 網(wǎng)絡(luò)算法用更少的參數(shù)量實(shí)現(xiàn)更高精度,模型更加精簡;基于關(guān)鍵點(diǎn)的檢測算法用全新的方式提高了算法的檢測性能,有望成為下一階段的研究重點(diǎn)。硬件設(shè)備的不斷完善,給目標(biāo)檢測算法領(lǐng)域帶來了不少的機(jī)遇和挑戰(zhàn),車輛目標(biāo)檢測算法性能的不斷提高給智能駕駛和智慧交通系統(tǒng)帶來了前所未有的新發(fā)展。
本文針對車輛目標(biāo)檢測任務(wù),首先對深度學(xué)習(xí)的車輛目標(biāo)檢測進(jìn)一步探討,提出檢測任務(wù)的重點(diǎn)、難點(diǎn)和發(fā)展現(xiàn)狀,以時(shí)間線對卷積神經(jīng)網(wǎng)絡(luò)下車輛目標(biāo)檢測算法進(jìn)行概括,并對目前2種主流的基于候選框和基于回歸的車輛目標(biāo)檢測算法進(jìn)行總結(jié)??傮w來說,基于候選區(qū)域的車輛目標(biāo)檢測算法檢測精度較高,由于候選區(qū)域的生成花費(fèi)大量的時(shí)間成本,使得檢測速度較慢,檢測實(shí)時(shí)性尚不能滿足要求。而基于回歸的車輛目標(biāo)檢測算法雖然精度上普遍不如前者,但在檢測速度上具有很大的優(yōu)勢,隨著深度學(xué)習(xí)技術(shù)快速發(fā)展,檢測精度也有大幅度的提升。目前基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法處于一個(gè)快速發(fā)展的階段,算法的創(chuàng)新和計(jì)算機(jī)視覺技術(shù)的發(fā)展提升了算法檢測性能,輕量化的算法模型在嵌入式設(shè)備中得到了普遍使用,使得車輛目標(biāo)檢測任務(wù)效率進(jìn)一步提高。目前基于深度學(xué)習(xí)的車輛目標(biāo)檢測算法仍有許多改進(jìn)的空間,歸納如下:
(1)數(shù)據(jù)集場景和質(zhì)量問題。數(shù)據(jù)集在獲取中仍不完善,缺乏復(fù)雜場景下的車輛目標(biāo)檢測數(shù)據(jù)集,這導(dǎo)致算法在特定場景的檢測魯棒性較差;數(shù)據(jù)集的質(zhì)量不夠高,這將會(huì)導(dǎo)致算法檢測精度下降,且構(gòu)建數(shù)據(jù)集對人力需求較大。
(2)其它形式上的目標(biāo)檢測問題。目前車輛目標(biāo)檢測都是以圖片形式進(jìn)行檢測,而3D檢測、視頻流檢測的算法性能還有待提高。
(3)復(fù)雜場景下的多目標(biāo),小目標(biāo)檢測問題。目前車輛目標(biāo)檢測算法在復(fù)雜場景下的單目標(biāo)檢測效果較好,在對多目標(biāo)檢測時(shí),會(huì)出現(xiàn)漏檢、誤檢的問題,造成精度降低;而在尺度異常和群體小目標(biāo)中的檢測效果更差。
在未來自動(dòng)駕駛和智能交通系統(tǒng)中,對于精確性和實(shí)時(shí)性的要求會(huì)更高,車輛目標(biāo)檢測的重要研究方向?qū)?huì)圍繞以上3點(diǎn)進(jìn)行不斷優(yōu)化,滿足更高需求。