王 燦 卜樂(lè)平
(海軍工程大學(xué)電氣工程學(xué)院 武漢 430033)
當(dāng)前目標(biāo)檢測(cè)不僅在學(xué)術(shù)界受到大量的研究,在實(shí)際生活中也得到了大量的應(yīng)用,如視頻火災(zāi)探測(cè)、無(wú)人駕駛、安全監(jiān)控、無(wú)人機(jī)場(chǎng)景分析等。目前目標(biāo)檢測(cè)算法主要分為兩種,基于圖像處理的傳統(tǒng)目標(biāo)檢測(cè)算法和基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法。
在實(shí)際應(yīng)用中,利用計(jì)算機(jī)視覺(jué)技術(shù)對(duì)目標(biāo)進(jìn)行自動(dòng)檢測(cè)是一項(xiàng)非常具有挑戰(zhàn)性的任務(wù)。背景復(fù)雜、目標(biāo)遮擋、噪聲干擾、低分辨率、尺度和姿態(tài)的變化等因素都會(huì)嚴(yán)重影響目標(biāo)檢測(cè)性能。傳統(tǒng)的目標(biāo)檢測(cè)方法基于手工設(shè)計(jì)的特征提取,對(duì)光照變化不具有魯棒性,缺乏良好的泛化能力。在2012年之前的PASCAL VOC挑戰(zhàn)賽[1]中,目標(biāo)檢測(cè)的性能幾乎沒(méi)有什么進(jìn)展,這是由于傳統(tǒng)算法的局限性導(dǎo)致的。最早出現(xiàn)的卷積神經(jīng)網(wǎng)絡(luò)是LeNet[2],但是真正讓人們把注意放在深度學(xué)習(xí)上的是2012年 Hinton 等提出的卷積神經(jīng)網(wǎng)絡(luò) AlexNet[3]。該模型在ImageNet大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽上以絕對(duì)的優(yōu)勢(shì)獲得了當(dāng)年的冠軍。在這一轉(zhuǎn)折點(diǎn)發(fā)生后,卷積神經(jīng)網(wǎng)絡(luò)就受到了越來(lái)越多人的關(guān)注,新的模型層出不窮。2014年,Girshick等在此基礎(chǔ)上提出了R-CNN[4],第一次將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于目標(biāo)檢測(cè),并且檢測(cè)精度比傳統(tǒng)檢測(cè)算法提高了近30%,引起了很大的反響。從目前學(xué)術(shù)研究和實(shí)際應(yīng)用來(lái)看,基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法比傳統(tǒng)的方法具有更高的精度和更短的測(cè)試時(shí)間,幾乎已經(jīng)完全代替了傳統(tǒng)算法。
傳統(tǒng)的目標(biāo)檢測(cè)算法是基于圖像處理,一般分為四個(gè)階段,首先通過(guò)滑動(dòng)窗口的方式在目標(biāo)圖像上產(chǎn)生候選框,然后采用尺度不變特征變化(SITF)[5]、Harr-like或方向梯度直方圖(HOG)[6~7]等方法提取特征,再利用可變形部件模型(DPM)[8]、Adaboost[9]或支持向量機(jī)(SVM)[10]等對(duì)其進(jìn)行分類,最后采用非極大值抑制(NMS)[11]對(duì)結(jié)果進(jìn)行修正和優(yōu)化。下面簡(jiǎn)要分析這四個(gè)步驟的優(yōu)缺點(diǎn)。
1)候選框選取:由于目標(biāo)大小和位置是不確定的,所以采用滑動(dòng)窗口的策略,通過(guò)一系列不同大小的窗口來(lái)遍歷圖像。這種方法雖然可以精準(zhǔn)地找出目標(biāo)框,但是這種窮舉的策略使該算法時(shí)間復(fù)雜度大,極大影響了目標(biāo)檢測(cè)算法的檢測(cè)速度。
2)特征提取:手工設(shè)計(jì)的特征提取算法對(duì)目標(biāo)背景和光線變化不大的識(shí)別任務(wù)有著良好的特征提取作用。但是對(duì)于一些場(chǎng)景和光線多變的識(shí)別任務(wù)來(lái)說(shuō),這種方法不能有效地進(jìn)行特征提取。這些外部因素的影響使得具有魯棒特征提取的算法設(shè)計(jì)變得困難。
3)分類:分類結(jié)果的好壞主要由輸入的特征好壞決定,如果特征提取環(huán)節(jié)效果好,分類的準(zhǔn)確性一般就會(huì)高。
4)修正優(yōu)化結(jié)果:當(dāng)所有的候選框都被分類后,我們還要選出位置信息與目標(biāo)位置最接近的候選框。一般采用NMS選出最優(yōu)框,NMS是將各候選框的位置跟真實(shí)框的位置進(jìn)行比較,選出最優(yōu)框。
綜上所述,傳統(tǒng)目標(biāo)檢測(cè)算法在特定場(chǎng)景下有著不錯(cuò)的性能,但是并不能適應(yīng)現(xiàn)在目標(biāo)檢測(cè)任務(wù)要求。現(xiàn)在目標(biāo)檢測(cè)任務(wù)對(duì)反應(yīng)時(shí)間、泛化能力和精準(zhǔn)性都有很高要求。而滑動(dòng)窗口策略會(huì)導(dǎo)致算法時(shí)間復(fù)雜度高,手工設(shè)計(jì)的特征提取器魯棒性不夠強(qiáng),這兩個(gè)缺點(diǎn)導(dǎo)致傳統(tǒng)目標(biāo)檢測(cè)算法不能達(dá)到現(xiàn)代目標(biāo)檢測(cè)的要求。
在計(jì)算機(jī)視覺(jué)領(lǐng)域,特征提取和分類一直是其不可分離的一部分。在傳統(tǒng)的圖像處理中,提取特征的方法一般是基于統(tǒng)計(jì)規(guī)律或者一些先驗(yàn)知識(shí)而預(yù)先設(shè)計(jì)好的[12]。這種手工設(shè)計(jì)的特征提取方式,不能完全提取出原始圖像的信息,魯棒性也不強(qiáng)。卷積神經(jīng)網(wǎng)絡(luò)是專門用來(lái)處理圖像數(shù)據(jù)這種具有類似網(wǎng)絡(luò)結(jié)構(gòu)的數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)[13]。卷積神經(jīng)網(wǎng)絡(luò)增加了局部感受野、稀疏權(quán)重和參數(shù)共享的概念[14]。這三種概念的提出使得卷積神經(jīng)網(wǎng)絡(luò)跟其他神經(jīng)網(wǎng)絡(luò)相比擁有一定平移和尺度的不變性,更加適合圖像數(shù)據(jù)的學(xué)習(xí)。平移和尺度不變性保證特定特征的識(shí)別更加有效[15]。下面將對(duì)近年來(lái)優(yōu)秀的模型進(jìn)行簡(jiǎn)單的介紹。
1)2014年,Karen等提出了 VGGNet[16],該模型使用很小的(3×3)的卷積核來(lái)做特征提取,并證明了模型的深度越深、參數(shù)越多,提取特征的能力越強(qiáng),效果越好。
2)2014年Christian等提出了Inception 系列[17~20]。Inception-v1將不同尺寸的卷積核和池化層混合在一起,增加了模型寬度,減少了模型參數(shù)。Inception-v2提出了將5×5的卷積核用兩個(gè)3×3卷積核替代的方法,既保持了感受野的大小也減少了模型參數(shù)量。Inception-v3將7×7的卷積核分解成7×1和1×7大小的兩個(gè)卷積核,即可以加速計(jì)算,同時(shí)可以使得網(wǎng)絡(luò)深度增加,提高非線性表達(dá)能力。Inception-v4主要是將殘差結(jié)構(gòu)引入到其中,解決了卷積網(wǎng)絡(luò)的達(dá)到深度一定后就容易陷入性能飽和的困境。
3)He等提出了 ResNet[21],解決了卷積神經(jīng)網(wǎng)絡(luò)收斂速度隨著深度增加會(huì)越來(lái)越慢,甚至無(wú)法訓(xùn)練的情況。殘差學(xué)習(xí)是該模型的核心思想,利用殘差結(jié)構(gòu)網(wǎng)絡(luò)可以解決由網(wǎng)絡(luò)深度增加帶來(lái)的梯度消失的問(wèn)題,并且增加深度可以大幅度增加準(zhǔn)確性。
4)DenseNet[22]用前饋和反饋的形式將每一層連接到另一層,建立了層與層之間的密集連接。該結(jié)構(gòu)可以緩解梯度消失、增強(qiáng)特征傳播和重用,大幅度減少參數(shù)數(shù)量。
5)2017年,Andrew等提出了輕便型模型MoileNet-v1[23],在準(zhǔn)確率小幅度降低的前提下,大幅度地減小了模型參數(shù)和運(yùn)算量。
6)2018 年 Hu 等提出了 SENet[24],其核心是 SE(Squeeze and Excitation)塊,運(yùn)用了跳躍式傳遞的思想。壓縮部分將特征圖壓縮成一維,這一維特征獲得特征圖全局視野,感受區(qū)域更廣。激勵(lì)部分把壓縮后的數(shù)據(jù)作為全連接層的輸入,然后對(duì)每個(gè)通道重要性進(jìn)行預(yù)測(cè),再將得到的每個(gè)通道的重新作用到之前特征圖的每一個(gè)通道上。SE塊只需增加較小的額外計(jì)算成本就可以顯著提高卷積神經(jīng)網(wǎng)絡(luò)的性能。
7)2019年,Li等受到人體大腦結(jié)構(gòu)的啟發(fā)提出了SKNet[25],其模型使用了動(dòng)態(tài)選擇機(jī)制,該機(jī)制允許每個(gè)神經(jīng)元根據(jù)輸入信息的多個(gè)尺度來(lái)自適應(yīng)地調(diào)整其接受區(qū)域的大小。
從表1可以看出,短短幾年發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)提取特征的能力越來(lái)越強(qiáng),在TOP-1上的錯(cuò)誤率從28%減小至18%。通常情況,目標(biāo)檢測(cè)的準(zhǔn)確率高低與卷積神經(jīng)網(wǎng)絡(luò)息息相關(guān),性能強(qiáng)大的卷積神經(jīng)網(wǎng)絡(luò)可以大幅度提升目標(biāo)檢測(cè)的準(zhǔn)確率。

表1 部分卷積神經(jīng)網(wǎng)絡(luò)模型性能對(duì)比
基于候選區(qū)域的目標(biāo)檢測(cè)算法又稱二階段算法。該類算法首先在輸入圖像上選出候選區(qū)域,然后用卷積神經(jīng)網(wǎng)絡(luò)對(duì)候選區(qū)域進(jìn)行特征提取和分類。下面對(duì)其主要模型進(jìn)行介紹,并給出性能上的總結(jié)。
2014年Ross Girshick提出了R-CNN,使用選擇搜索[26]算法替代了滑動(dòng)窗口,解決了窗口冗余的問(wèn)題,降低算法時(shí)間復(fù)雜度。同時(shí)用卷積神經(jīng)網(wǎng)絡(luò)替代了傳統(tǒng)手工制作的特征提取部分,能更有效提取出圖像的特征,提高網(wǎng)絡(luò)對(duì)外抗干擾能力。
模型的性能相比傳統(tǒng)目標(biāo)檢測(cè)算法有了很大的提升,但是也存在不少問(wèn)題。R-CNN生成約2000個(gè)候選區(qū)域,特征提取耗時(shí)過(guò)多;卷積神經(jīng)網(wǎng)絡(luò)需要固定大小的輸入,圖像的裁剪或拉伸會(huì)導(dǎo)致圖像信息的丟失[27]。

圖1 R-CNN網(wǎng)絡(luò)模型
為了解決R-CNN的問(wèn)題,2015年Kaiming He等提出了 SPPNet[28]。SPPNet僅需要從整個(gè)圖像上運(yùn)行一次卷積層來(lái)獲得特征圖,極大地減少了特征提取所消耗的時(shí)間。然后將特征圖上的候選區(qū)域輸入金字塔空間池化,提取出固定長(zhǎng)度的特征向量。

圖2 金字塔空間池化層
SPPNet不需要固定大小的圖像輸入,減少了圖像的裁剪或拉伸導(dǎo)致的圖像信息丟失,同時(shí)避免了重復(fù)計(jì)算卷積特征。因此在處理測(cè)試圖像時(shí),準(zhǔn)確度和速度都提升了。速度上的提升最為明顯,提升約24倍~64倍。
2015年Girshick等提出了Fast R-CNN[29],該模型在SPP-Net的基礎(chǔ)上提出了ROI(Region of Interest)池化層,作用相當(dāng)于單層的SPP Layer。具體過(guò)程如圖3。

圖3 Fast R-CNN流程圖
Fast R-CNN不僅精度和測(cè)試速度性能好于SPP-Net,而且訓(xùn)練速度也大幅度提升,同等條件下比R-CNN訓(xùn)練快8倍。訓(xùn)練速度加快是因?yàn)槭褂昧硕嗳蝿?wù)損失,共同訓(xùn)練分類和邊界框回歸。
2016年Ren等提出了Faster R-CNN[30],網(wǎng)絡(luò)模型如圖4。在結(jié)構(gòu)上,該模型將特征提取、候選區(qū)域選取、目標(biāo)框微調(diào)、和分類整合到了一起,使得綜合性能有了較大的提高,真正實(shí)現(xiàn)了端到端。模型利用RPN生成候選區(qū)域,利用手工設(shè)計(jì)的錨框?qū)⒑蜻x框數(shù)目從之前的2000個(gè)減少到300個(gè),同時(shí)候選框的質(zhì)量也有本質(zhì)的提高,使得檢測(cè)速度和準(zhǔn)確性都有大幅度提升。

圖4 Faster R-CNN結(jié)構(gòu)圖
但是Faster R-CNN還存在不足之處,因?yàn)镽OI池化層生成的每個(gè)特征向量需要經(jīng)過(guò)多個(gè)全連接層,這大大增加了計(jì)算量,導(dǎo)致檢測(cè)速度只能達(dá)到一秒5張。并且,F(xiàn)aster R-CNN對(duì)小目標(biāo)的檢測(cè)效果不是很好。
2017 年 He等提出了 Mask R-CNN[31],該模型結(jié)合了Faster R-CNN和FCN[32]的思想,特征提取部分采用特征金字塔網(wǎng)絡(luò)(FPN)[33]的架構(gòu),并用ROI Align池化層代替了ROI池化層,另外還加了Mask預(yù)測(cè)分支,具體結(jié)構(gòu)如圖5。

圖5 Mask R-CNN結(jié)構(gòu)圖
新增的FPN架構(gòu),使模型的多尺度的特征提取能力得到了加強(qiáng),對(duì)小目標(biāo)物體的識(shí)別更加的精準(zhǔn)。但是檢測(cè)速度卻和Faster R-CNN一樣,大約一秒5張,不能滿足實(shí)時(shí)監(jiān)測(cè)應(yīng)用要求。
2019 年 Li等提出了 TridentNet[34]。該模型驗(yàn)證了感受野對(duì)目標(biāo)檢測(cè)中尺度變化的影響,即大的感受野更有利于大目標(biāo)的檢測(cè),小的感受野更有利于小目標(biāo)的檢測(cè)。
圖6中僅顯示TridentNet的主要部分,RPN和Fast R-CNN在各個(gè)分支都存在,為了簡(jiǎn)單起見(jiàn)而忽略。如圖所示三叉戟塊中的三個(gè)分支以不同的膨脹率共享相同的參數(shù)。不同的膨脹率使得每個(gè)分支的感受野不同,可以更好地實(shí)現(xiàn)多尺度的目標(biāo)檢測(cè)。共享參數(shù)讓使用三叉戟塊只用增加一點(diǎn)額外的計(jì)算。整個(gè)模型成功地解決了目標(biāo)檢測(cè)中尺度不變的問(wèn)題,但是并沒(méi)有提高檢測(cè)速度。

圖6 TridentNet結(jié)構(gòu)圖
2020年Cao等提出了一種新穎的二階段目標(biāo)檢測(cè)方法D2Det[35],它可以同時(shí)解決精確定位和精確分類的問(wèn)題。模型引入了密集局部回歸,該回歸可以預(yù)測(cè)對(duì)象提議的多個(gè)密集框偏移,密集局部回歸不限于固定區(qū)域內(nèi)的一組量化的關(guān)鍵點(diǎn),并且具有回歸位置敏感實(shí)數(shù)密集偏移的能力,從而可以實(shí)現(xiàn)更精確的定位。為了進(jìn)行準(zhǔn)確的分類,引入了DRP(Discriminative RoI Pooling),分別從第一階段和第二階段提取準(zhǔn)確的目標(biāo)特征區(qū)域,進(jìn)而提升性能。
表3中指標(biāo)含義如表2所示,“-”表示無(wú)相關(guān)數(shù)據(jù)。從表3可以看出,基于候選區(qū)域的目標(biāo)檢測(cè)算法的精度和檢測(cè)速度越來(lái)越高,但是始終無(wú)法滿足實(shí)時(shí)檢測(cè)的要求。主要因?yàn)閮牲c(diǎn):1)候選區(qū)域的選定過(guò)于復(fù)雜;2)模型規(guī)模越來(lái)越大,越來(lái)越深,導(dǎo)致計(jì)算量越來(lái)越大。

表2 COCO數(shù)據(jù)集主要評(píng)價(jià)指標(biāo)

表3 部分基于候選區(qū)域的目標(biāo)檢測(cè)算法在COCO數(shù)據(jù)集上的性能對(duì)比
基于回歸的目標(biāo)檢測(cè)算法又稱一階段算法,該類算法省略了候選區(qū)域生成階段,直接將特征提取、目標(biāo)分類以及目標(biāo)回歸在同一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中實(shí)現(xiàn),真正意義上實(shí)現(xiàn)了端到端。下面對(duì)其主要模型依次進(jìn)行介紹,并給出性能上的總結(jié)。
2016年,Redmon等人提出了YOLOv1[36],該網(wǎng)絡(luò)將目標(biāo)檢測(cè)的問(wèn)題看作回歸問(wèn)題求解。單個(gè)的神經(jīng)網(wǎng)絡(luò)可以在一次評(píng)估后直接同時(shí)得到物體的位置和其所屬類別及相應(yīng)的置信概率。YOLOv1的優(yōu)點(diǎn)就是檢測(cè)速度很快,可以做到實(shí)時(shí)監(jiān)測(cè)。但是對(duì)小目標(biāo)的識(shí)別效果尤其不好,并且YOLOv1輸入必須是固定大小的圖片。
2017年Redmon等人在其基礎(chǔ)上提出了YOLOv2[37],主要有三個(gè)改進(jìn)的地方。1)使用了批量標(biāo)準(zhǔn)化操作,解決了有飽和非線性的模型的收斂困難的問(wèn)題,并可以代替dropout。2)使用高分辨率圖片對(duì)網(wǎng)絡(luò)進(jìn)行微調(diào)。3)使用錨框(anchor box)和卷積來(lái)做預(yù)測(cè)。
2018年Redmon等提出了YOLOv3[38]。該模型使用Darknet-53作為網(wǎng)絡(luò)骨干。另外YOLOv3采用了FPN架構(gòu),在三個(gè)不同尺度的特征圖上進(jìn)行檢測(cè),提高了網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)效果。
2020年Bochkovskiy等提出了YOLOv4[39],該模型選擇了CSPDarknet53作為主干網(wǎng)絡(luò),同時(shí)模型中加入了很多普遍適用的算法。例如加權(quán)殘差連接、跨階段部分連接、自對(duì)抗訓(xùn)練、跨小批量標(biāo)準(zhǔn)化和DropBlock正則化等。這些調(diào)優(yōu)的手段使得該模型實(shí)現(xiàn)了當(dāng)時(shí)最優(yōu)的實(shí)驗(yàn)結(jié)果。
淺層特征圖包含位置信息,對(duì)目標(biāo)定位非常重要。深層特征圖包含大量的語(yǔ)義信息,對(duì)圖像目標(biāo)的分類非常重要。受到該思想的影響,2016年Liu等提出了SSD[40],開創(chuàng)了應(yīng)用多尺度的特征圖進(jìn)行目標(biāo)檢測(cè)的先河,從不同比例的特征圖生成不同比例的預(yù)測(cè)。網(wǎng)絡(luò)具體結(jié)構(gòu)如圖7,其中淺層的特征圖用來(lái)預(yù)測(cè)小尺寸目標(biāo),深層的特征圖用來(lái)預(yù)測(cè)大尺度目標(biāo),提升了小尺寸目標(biāo)的檢測(cè)效果。但是由于淺層特征圖語(yǔ)義信息不夠多,導(dǎo)致SSD對(duì)小目標(biāo)檢測(cè)效果還是很差。同時(shí)由于正負(fù)樣本的不均勻,導(dǎo)致訓(xùn)練比較困難。

圖7 SSD網(wǎng)絡(luò)結(jié)構(gòu)
2017年Lin等發(fā)現(xiàn)了一階段檢測(cè)器精度落后二階段檢測(cè)器背后的原因并提出了RetinaNet[41]。他們認(rèn)為訓(xùn)練過(guò)程中遇到的樣本類別失衡是導(dǎo)致一階段檢測(cè)器精度落后的主要原因。為此,通過(guò)重塑標(biāo)準(zhǔn)的交叉熵?fù)p失函數(shù),引入了名為“聚焦”的新?lián)p失函數(shù)。該損失函數(shù)降低了易分類樣本的權(quán)重,以便檢測(cè)器在訓(xùn)練過(guò)程中將更多的注意力放在分類困難的樣本。圖8為模型結(jié)構(gòu)圖,使用ResNet-FPN的結(jié)構(gòu)來(lái)進(jìn)行特征提取,并在特征金字塔的每一層輸出兩個(gè)子網(wǎng),分別用于分類和anchor框定位回歸。實(shí)驗(yàn)證明經(jīng)過(guò)聚焦損失函數(shù)訓(xùn)練之后,RetinaNet不僅速度能夠與之前的一階段檢測(cè)器相匹配,同時(shí)超越了二階段檢測(cè)器的精度。

圖8 RetinaNet結(jié)構(gòu)圖
2019 年 Zhao等提出了 M2Det[42]。由于之前特征金字塔僅根據(jù)固有的特征來(lái)構(gòu)建,因此它們具有一些局限性。在M2Det中提出了更有效的特征金字塔,多層特征金字塔。該結(jié)構(gòu)首先利用FFMv1將骨干提取的特征圖進(jìn)行融合得到基本特征,再利用TUM和FFMv2模塊交替生成一系列的特征金字塔,最后利用SFAM模塊將特征金字塔中尺度相同的特征層聚合起來(lái)。
同年Hei等發(fā)現(xiàn)使用錨框有很多缺點(diǎn)。例如錨框的數(shù)量巨大,容易使得正負(fù)樣本不平衡;錨框的超參數(shù)難以確定等。于是提出了不使用錨框的神經(jīng)網(wǎng)絡(luò)模型 CornerNet[43],該模型只需檢測(cè)一對(duì)關(guān)鍵點(diǎn),即邊界框的左上角和右上角,就可以確定目標(biāo)位置和類別。主要是先利用角池化層來(lái)確定左上角和右上角,然后利用預(yù)測(cè)模塊,一個(gè)用于左上角,另一個(gè)用于右上角。使用來(lái)自兩個(gè)模塊的預(yù)測(cè),可以對(duì)角點(diǎn)進(jìn)行定位和分組。
受到CornetNet的啟發(fā),Zhou等提出了Center-Net[44],同樣沒(méi)有使用錨框。CornerNet由于需要經(jīng)過(guò)一對(duì)關(guān)鍵點(diǎn)的檢測(cè)階段,所以在檢測(cè)速度上有所下降。而CenterNet將目標(biāo)檢測(cè)問(wèn)題變成了一個(gè)中心點(diǎn)的估計(jì)問(wèn)題,無(wú)需對(duì)關(guān)鍵點(diǎn)進(jìn)行檢測(cè)、分析和后期處理。它通過(guò)將對(duì)象建模成目標(biāo)框的中心,并使用關(guān)鍵點(diǎn)估計(jì)找到中心,然后回歸得到對(duì)象的大小、位置和方向甚至姿勢(shì)。首先將圖像傳入卷積神經(jīng)網(wǎng)絡(luò),得到一張熱力圖,熱力圖的分峰值點(diǎn)即中心點(diǎn),然后利用峰值點(diǎn)附近的圖像特征回歸得到目標(biāo)的寬高信息,最后通過(guò)輸出結(jié)構(gòu)得到預(yù)測(cè)值。
2019年Tan等為了尋找一個(gè)兼顧檢測(cè)速度和精度的模型,在 EfficienNet[45]的基礎(chǔ)上提出了 EfficienDet[46]。該模型以 EfficienNet為主干網(wǎng)絡(luò),雙向特征金字塔網(wǎng)絡(luò)(BiFPN)為特征網(wǎng)絡(luò),同時(shí)引入了聯(lián)合尺度縮放的方法。BiFPN可以快速地進(jìn)行多尺度特征融合,其中應(yīng)用了加權(quán)的思想。聯(lián)合尺度縮放可以將主干網(wǎng)絡(luò)、特征網(wǎng)絡(luò)和框-類預(yù)測(cè)網(wǎng)絡(luò)的深度、寬度和分辨率進(jìn)行統(tǒng)一縮放,以達(dá)到最優(yōu)效果。結(jié)合這些方法的EfficienDet模型參數(shù)比當(dāng)時(shí)最先進(jìn)的模型減少了4倍,并且檢測(cè)速度提升了3倍。
為了解決基于關(guān)鍵點(diǎn)的探測(cè)器容易匹配錯(cuò)誤的問(wèn)題,Dong等提出了CentripetalNet[47]。該模型可以預(yù)測(cè)目標(biāo)的角點(diǎn)位置和向心位移,并匹配其對(duì)應(yīng)的角,這種方法比傳統(tǒng)的嵌入方法更準(zhǔn)確地匹配角點(diǎn)。同時(shí)為了充分利用角池化層后形成的部分特征圖中的十字星特征,提出十字星形可變性卷積,可以增強(qiáng)對(duì)該特征的學(xué)習(xí)。經(jīng)試驗(yàn)該模型在COCO數(shù)據(jù)集上性能表現(xiàn)超越了當(dāng)前所有無(wú)錨框的目標(biāo)檢測(cè)器。
從表4可以看出,基于回歸的目標(biāo)檢測(cè)算法普遍檢測(cè)速度快于基于候選區(qū)域的目標(biāo)檢測(cè)算法,并且在檢測(cè)精度上也逐漸超越后者。但是檢測(cè)精度的提升也導(dǎo)致了檢測(cè)速度降低,未來(lái)應(yīng)該更關(guān)注如何實(shí)現(xiàn)檢測(cè)速度和精度的平衡。

表4 部分基于回歸的目標(biāo)檢測(cè)算法在COCO數(shù)據(jù)集上的性能對(duì)比
從表4可以看出,基于回歸的目標(biāo)檢測(cè)算法明顯普遍檢測(cè)速度快于基于候選區(qū)域的目標(biāo)檢測(cè)算法,并且在檢測(cè)精度上也逐漸超越后者。但是檢測(cè)速度的提升也導(dǎo)致了檢測(cè)速度降低,未來(lái)應(yīng)該更關(guān)注如何實(shí)現(xiàn)檢測(cè)速度和精度的平衡。
盡管目標(biāo)檢測(cè)算法整體上已經(jīng)相對(duì)比較成熟了,但是在特殊場(chǎng)景下的表現(xiàn)還有很多優(yōu)化空間,例如當(dāng)被檢測(cè)目標(biāo)為小物體、被遮擋物體和密集分布物體等時(shí),目標(biāo)檢測(cè)算法的表現(xiàn)與普通情況下有著顯著的差距。下面將介紹這些問(wèn)題的產(chǎn)生原因和解決方案。
小物體的檢測(cè)效果一直不好,主要是有三點(diǎn):1)小物體圖像的分辨率低,導(dǎo)致特征表達(dá)能力弱。2)在使用錨框的檢測(cè)器中,即使錨框完全的包圍住了目標(biāo),也容易因?yàn)槟繕?biāo)太小造成IOU低,從而導(dǎo)致目標(biāo)沒(méi)有對(duì)應(yīng)的錨框。3)訓(xùn)練數(shù)據(jù)集中,只有少量圖像包含小物體,這容易導(dǎo)致檢測(cè)器偏向于更多地關(guān)注中型和大型物體。并且小物體覆蓋區(qū)域小,缺乏位置多樣性,難以在檢測(cè)時(shí)間內(nèi)被檢測(cè)器識(shí)別到[48]。
針對(duì)以上存在的不足,提出下面幾點(diǎn)方法:1)增加輸入圖像分辨率,這可以大幅度提升小物體的特征表達(dá)能力,使用多尺度特征融合方法,例如FPN、STDN和BIFPN等。2)基于不同分辨率層使用不同錨定比例[49],利用方法FreeAnchor,使網(wǎng)絡(luò)能自主學(xué)習(xí)配對(duì)錨框與目標(biāo)。3)利用小物體對(duì)圖像進(jìn)行過(guò)采樣,利用多次復(fù)制粘貼小物體來(lái)增強(qiáng)數(shù)據(jù)集。
遮擋分為兩類,類間遮擋和類內(nèi)遮擋。遮擋導(dǎo)致特征表達(dá)不完整,增加了分類和定位的難度,一般是汽車和人群檢測(cè)時(shí)容易發(fā)生遮擋現(xiàn)象。對(duì)于類間遮擋,很難有針對(duì)性的方法去解決,最好的方法是通過(guò)數(shù)據(jù)擴(kuò)充來(lái)增加遮擋示例的數(shù)量,提高遮擋和變形監(jiān)測(cè)的魯棒性[50]。對(duì)于類內(nèi)遮擋,主要有以下幾種方法:1)引入Reploss損失函數(shù),獎(jiǎng)勵(lì)逼近真實(shí)框的預(yù)測(cè)框,懲罰接近具有不同指定目標(biāo)的其他預(yù)測(cè)框[51];2)使用部分遮擋關(guān)注區(qū)域(PORoI)合并單元代替RoI合并層[52];3)利用IoU損失函數(shù)進(jìn)行邊界框預(yù)測(cè),將預(yù)測(cè)框的四個(gè)邊界作為一個(gè)整體進(jìn)行回歸。
目標(biāo)檢測(cè)器在密集分布物體上的檢測(cè)效果不佳,主要是因?yàn)椋?)神經(jīng)元的感受野通常沿軸排列并具有相同的形狀,而物體通常具有不同的形狀并沿各個(gè)方向排列;2)檢測(cè)模型通常是在通用知識(shí)的基礎(chǔ)上進(jìn)行訓(xùn)練的,在測(cè)試時(shí)可能不能很好地概括處理特定的物體;3)位置接近的相似物體的預(yù)測(cè)框的位置難以確定;4)密集分布物體在經(jīng)過(guò)NMS處理之后容易被視為單個(gè)對(duì)象。
針對(duì)前兩個(gè)點(diǎn)不足,可以利用FSM(Feature Selection Modul)和 DRH(Dynamic Refinement Head)解決[53]。對(duì)于后兩個(gè)問(wèn)題,有以下解決方法:1)引入新穎的EM合并單元[54];2)使用Sofe-NMS,利用遞減函數(shù)來(lái)衰減邊界框的檢測(cè)分?jǐn)?shù),確保NMS不會(huì)誤刪除候選框[55];3)引入新的網(wǎng)絡(luò)替代NMS,可以減少NMS中的手工設(shè)計(jì)因素[56]。
本文結(jié)合國(guó)內(nèi)外現(xiàn)狀,在對(duì)卷積神經(jīng)網(wǎng)絡(luò)研究的基礎(chǔ)上,系統(tǒng)地總結(jié)了目標(biāo)檢測(cè)算法的發(fā)展情況,重點(diǎn)對(duì)基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法進(jìn)行研究分析,并對(duì)相關(guān)算法的優(yōu)缺點(diǎn)和性能進(jìn)行了簡(jiǎn)要的介紹。同時(shí)提出了目標(biāo)檢測(cè)當(dāng)前存在問(wèn)題和解決方案。
綜合考慮,本文認(rèn)為未來(lái)研究方向應(yīng)該有以下幾點(diǎn):1)開發(fā)具有更多類別的大規(guī)模數(shù)據(jù)集。2)研究更加輕便的模型,減少或消除網(wǎng)絡(luò)冗余。3)利用自動(dòng)神經(jīng)體系結(jié)構(gòu)搜索深度學(xué)習(xí)繞過(guò)手動(dòng)設(shè)計(jì)工程。4)檢測(cè)器具有從少數(shù)例子中學(xué)習(xí)的能力。5)檢測(cè)器可以定位并識(shí)別之前從未見(jiàn)過(guò)的類別。
對(duì)于目標(biāo)檢測(cè)的研究雖然還遠(yuǎn)遠(yuǎn)沒(méi)有達(dá)到盡頭,但鑒于過(guò)去五年來(lái)巨大的突破,我們對(duì)其未來(lái)的發(fā)展保持樂(lè)觀態(tài)度。