摘 要:
目標(biāo)檢測(cè)是指在視頻或圖片序列中把感興趣的目標(biāo)與背景區(qū)分,是在圖像中確定目標(biāo)是否存在且確定目標(biāo)位置的過(guò)程,是計(jì)算機(jī)視覺(jué)領(lǐng)域中的主要研究方向。目標(biāo)檢測(cè)主要應(yīng)用于人臉識(shí)別、無(wú)人駕駛、指控和安防等領(lǐng)域,起到人工智能賦能傳統(tǒng)應(yīng)用的作用。目標(biāo)檢測(cè)的核心是算法。目前,目標(biāo)檢測(cè)算法主要分為兩大類,第一類是基于手工設(shè)計(jì)特征的傳統(tǒng)算法,第二類是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法。近年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法成為發(fā)展的主流,算法性能也遠(yuǎn)超手工設(shè)計(jì)特征的傳統(tǒng)算法。該研究進(jìn)展主要聚焦基于深度學(xué)習(xí)的主流目標(biāo)檢測(cè)算法,分析基于錨點(diǎn)(Anchor?-based)類模型中的單階段、二階段等主流算法,闡述算法的主要特點(diǎn)和存在問(wèn)題,介紹基于無(wú)錨點(diǎn)(Anchor?-free)類型中的關(guān)鍵點(diǎn)和密集預(yù)測(cè)類算法研究進(jìn)展,并對(duì)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法進(jìn)行了分析和展望。
?。?/p>
引 言
目標(biāo)檢測(cè)(Object Dection,OD)是一種從視頻或者圖片中找到感興趣的區(qū)域并標(biāo)記出來(lái)的行為動(dòng)作,可以通過(guò)算法提取特征來(lái)識(shí)別定位特定類別的對(duì)象。目標(biāo)檢測(cè)主要應(yīng)用在人臉識(shí)別、無(wú)人駕駛、指揮以及安防等領(lǐng)域。目標(biāo)檢測(cè)功能的核心不在于硬件設(shè)備,而在于算法設(shè)計(jì)的優(yōu)劣。不同算法性能的優(yōu)劣將直接導(dǎo)致目標(biāo)檢測(cè)在不同場(chǎng)景下的檢測(cè)效果。
自1998年美國(guó)工程師提出目標(biāo)檢測(cè)概念以來(lái),產(chǎn)生了大量基于手工設(shè)計(jì)特征的傳統(tǒng)算法。這些算法大多是借鑒窮舉的思想,在基于滑動(dòng)窗口生成的候選框內(nèi)提取特征,并將特征交給分類器去識(shí)別。常見(jiàn)方法包括Hear特征+Adaboost算法、Hog特征+SVM算法等。因?yàn)樵缙诤芏嗟哪繕?biāo)檢測(cè)算法缺乏有效的特征表示,所以設(shè)計(jì)了許多復(fù)雜的特征表示和在有限資源情況下處理特征加速的技巧。然而,傳統(tǒng)的目標(biāo)檢測(cè)算法仍存在問(wèn)題:為生成足夠的候選區(qū)域,計(jì)算機(jī)的邏輯運(yùn)算開(kāi)銷巨大;在提取特征時(shí)由于特征較多,篩選過(guò)程過(guò)于緩慢,分類速度和精度達(dá)不到實(shí)際應(yīng)用的標(biāo)準(zhǔn)。Girshick等率先提出了將具有卷積神經(jīng)網(wǎng)絡(luò)的區(qū)域應(yīng)用于目標(biāo)檢測(cè),從而打破了傳統(tǒng)目標(biāo)檢測(cè)算法性能趨于飽和的僵局。
近15年來(lái),基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法研究有了長(zhǎng)足的進(jìn)步。基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為基于錨點(diǎn)類模型和基于無(wú)錨點(diǎn)類模型兩種?;阱^點(diǎn)類模型又分為單階段方法和二階段方法。單階段方法只需要提取特征、分類和定位回歸即可。二階段方法比單階段方法多一個(gè)生成候選框的步驟,即提取特征后生成候選框再分類定位回歸?;跓o(wú)錨點(diǎn)類模型主流算法分為基于關(guān)鍵點(diǎn)和密集預(yù)測(cè)兩類。因?yàn)榛谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法各有優(yōu)勢(shì),所以本文綜合分析了各類算法的主要特點(diǎn)和存在的問(wèn)題,以期能夠幫助讀者理解目標(biāo)檢測(cè)算法的原理和內(nèi)涵。
本文系統(tǒng)分析了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,從單階段、二階段兩方面出發(fā),對(duì)基于錨點(diǎn)類的目標(biāo)檢測(cè)模型做出了深入分析,且總結(jié)了模型的主要特點(diǎn)和存在的問(wèn)題,并從關(guān)鍵點(diǎn)和密集預(yù)測(cè)類模型來(lái)分析基于無(wú)錨點(diǎn)類模型的研究進(jìn)展。
?。?/p>
基于錨點(diǎn)的目標(biāo)檢測(cè)算法
基于錨點(diǎn)的目標(biāo)檢測(cè)算法是由預(yù)先定義的錨點(diǎn)生成候選框,然后使用候選框進(jìn)行分類和定位。卷積神經(jīng)網(wǎng)絡(luò)發(fā)展于2012年,近年來(lái)逐漸成熟。由于卷積神經(jīng)網(wǎng)絡(luò)能夠?qū)?shù)字圖像有較好的特征表示,因此如何將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于目標(biāo)檢測(cè)是研究的重點(diǎn)。2014年,Girshick等首先提出了將這種網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)用在目標(biāo)檢測(cè)場(chǎng)景中,并命名為R?CNN算法。從那時(shí)起,目標(biāo)檢測(cè)算法進(jìn)入基于錨點(diǎn)的時(shí)代,同時(shí)迎來(lái)了快速發(fā)展。目標(biāo)檢測(cè)開(kāi)始進(jìn)入單階段和二階段交替發(fā)展階段。目前,主流的基于錨點(diǎn)類算法按照出現(xiàn)時(shí)間和發(fā)展順序可分為二階段方法和單階段方法。二階段方法基于回歸,而單階段方法是在二階段方法的基礎(chǔ)上少一個(gè)生成候選框的步驟,相比于二階段方法檢測(cè)速度更快,更適合部署移動(dòng)平臺(tái)。二階段方法檢測(cè)精度更高,更適合精準(zhǔn)檢測(cè)的應(yīng)用場(chǎng)景。圖1給出了近年來(lái)優(yōu)秀的目標(biāo)檢測(cè)算法。
圖1 2013年11月至2020年10月目標(biāo)檢測(cè)算法總覽
1.1 二階段目標(biāo)檢測(cè)
二階段目標(biāo)檢測(cè)算法是基于回歸的算法,由兩個(gè)階段組成。先通過(guò)策略生成錨點(diǎn)框,后將錨點(diǎn)框通過(guò)處理后進(jìn)行回歸定位。二階段的經(jīng)典主流算法主要有R-?CNN、SPP-?Net、Fast R-?CNN、Faster R-?CNN、R-?FCN以及FPN等。
1.1.1 R-?CNN
R-?CNN是Girshick等提出的第一個(gè)工業(yè)級(jí)精度的二階段目標(biāo)檢測(cè)算法,將PASCAL VOC 2007測(cè)試集的平均精度均值(mean Average Precision,mAP)從之前最好的35.1%提高到了66%。R-CNN的實(shí)現(xiàn)過(guò)程如圖2所示。R-?CNN算法首先通過(guò)選擇性搜索生成約2 000個(gè)建議框,將每個(gè)建議框調(diào)整為同一尺寸即227 pixel×227 pixel,后將其放入AlexNet中提取特征得到特征圖。SVM算法對(duì)提取的特征進(jìn)行處理,然后每個(gè)類別都會(huì)形成一個(gè)對(duì)應(yīng)向量,同時(shí)也會(huì)出現(xiàn)一個(gè)分值,最后使用非極大值抑制的技巧進(jìn)行比對(duì)處理。同時(shí),使用基于回歸的方法調(diào)整生成的矩形框,使之對(duì)目標(biāo)的包圍更加精確。R-?CNN算法使目標(biāo)檢測(cè)的精度得到了質(zhì)的改變,是將深度學(xué)習(xí)應(yīng)用到目標(biāo)檢測(cè)領(lǐng)域的里程碑之作,也奠定了基于深度學(xué)習(xí)的二階段目標(biāo)檢測(cè)算法的基礎(chǔ)。
R-?CNN的主要特點(diǎn)是將大規(guī)模的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于候選框來(lái)提取特征,但也存在一些問(wèn)題。第一,每個(gè)候選框需要單獨(dú)計(jì)算,且有的候選框重疊在一起,導(dǎo)致所需計(jì)算資源巨大;第二,訓(xùn)練過(guò)程的4個(gè)步驟單獨(dú)完成,緩存數(shù)據(jù)獨(dú)立保存,導(dǎo)致訓(xùn)練過(guò)程復(fù)雜;第三,前兩個(gè)缺點(diǎn)導(dǎo)致運(yùn)行速度相對(duì)較慢,無(wú)法滿足實(shí)時(shí)性需求;第四,對(duì)圖像的輸入大小有約束,要求圖像的尺寸為227 pixel×227 pixel,對(duì)圖像要進(jìn)行縮放操作會(huì)破壞圖像的信息,降低檢測(cè)器的檢測(cè)精度。
圖2 R-?CNN算法實(shí)現(xiàn)流程
1.1.2 SPP-?Net
針對(duì)卷積神經(jīng)網(wǎng)絡(luò)的候選框的重復(fù)計(jì)算和縮放圖像造成的信息損失問(wèn)題,He等基于卷積神經(jīng)網(wǎng)絡(luò)于2015年提出SPP-?Net算法。SPP-?Net在R-?CNN的基礎(chǔ)上去掉了在輸入圖像上生成候選框并將其統(tǒng)一成同一尺寸的操作。將SPP層放入全連接層和倒數(shù)第一個(gè)卷積層之間,將獲得特征向量的方式設(shè)置在卷積操作之后,減少了操作,降低了復(fù)雜度。SPP-?Net具體實(shí)現(xiàn)流程如圖3所示。
圖3 空間金字塔池化層結(jié)構(gòu)
SPP-?Net創(chuàng)新使用了空間金字塔結(jié)構(gòu),只提取一次特征,大大減少了計(jì)算量,相對(duì)提高了運(yùn)行速率。但是,SPP-?Net也存在一些問(wèn)題。第一,它仍然保留了R-?CNN的生成候選框、提取特征、SVM分類和定位回歸4個(gè)步驟,中間數(shù)據(jù)依舊保存,時(shí)間消耗仍然巨大;第二,分類網(wǎng)絡(luò)的初始參數(shù)被直接接入骨干網(wǎng),沒(méi)有針對(duì)具體的檢測(cè)問(wèn)題做調(diào)整;第三,由于輸入圖像不需要縮放成統(tǒng)一尺寸,增加了感興趣區(qū)域的感受野,導(dǎo)致權(quán)重不能及時(shí)更新;第四,SPP的調(diào)整只能調(diào)節(jié)全連接層,當(dāng)網(wǎng)絡(luò)足夠深的時(shí)候無(wú)法起作用。
1.1.3 Fast R-?CNN
針在2015年Girshick等繼承R-?CNN的同時(shí)吸收了SPP-?Net的特點(diǎn),提出Fast R-?CNN算法,將感興趣區(qū)域池化層(ROI Pooling Layer)放在倒數(shù)第一個(gè)卷積層后,用來(lái)將ROI特征生成固定比例的特征圖,并將其與全連接層連接。同時(shí),F(xiàn)ast R?CNN網(wǎng)絡(luò)具有雙層分支輸出——第一個(gè)輸出通過(guò)SoftMax函數(shù)來(lái)計(jì)算類別上的概率分布,第二個(gè)輸出矩形框的精準(zhǔn)調(diào)校信息。具體實(shí)現(xiàn)流程如圖4所示。
圖4 Fast R-?CNN算法實(shí)現(xiàn)流程
Fast R-?CNN使用了和金字塔池化層類似的感興趣區(qū)域池化層,但是感興趣區(qū)域池化層更簡(jiǎn)單,可以直接將導(dǎo)數(shù)結(jié)果傳回骨干網(wǎng)絡(luò)。此外,F(xiàn)ast R-?CNN將提取特征后的分類步驟和邊界框回歸步驟添加到深度網(wǎng)絡(luò)中進(jìn)行同步訓(xùn)練,其中訓(xùn)練速度和測(cè)試速度較R-?CNN有較大提升。Fast R-?CNN存在兩個(gè)問(wèn)題:一是生成候選框仍然是使用選擇性搜索,雖然速度較R-?CNN有較大提升,但仍然無(wú)法滿足實(shí)時(shí)性需求;二是仍然保留了SPP-?Net的各模塊單獨(dú)運(yùn)算,計(jì)算量仍然巨大。
1.1.4 Faster R-?CNN
針對(duì)SPP-?Net和Fast R-?CNN都使用了選擇性搜索的算法模塊,造成計(jì)算量巨大的問(wèn)題。為了解決這個(gè)問(wèn)題,Ren等提出了Faster R-?CNN算法。在Fast R-?CNN的基礎(chǔ)上添加區(qū)域建議網(wǎng)絡(luò),替代了傳統(tǒng)的特征提取方法,提高了網(wǎng)絡(luò)的訓(xùn)練速度。通過(guò)神經(jīng)網(wǎng)絡(luò)的權(quán)值共享實(shí)現(xiàn)了端到端的訓(xùn)練。Faster R-?CNN的具體實(shí)現(xiàn)方式如圖5所示。
圖5 Faster R-?CNN算法實(shí)現(xiàn)流程
R-?CNN、Fast R-?CNN、Faster R-?CNN屬于同一體系的不斷優(yōu)化。表1列出了3個(gè)模型的使用方法、缺點(diǎn)和改進(jìn)程度。
表1 R-?CNN、Fast R-?CNN、Faster R-?CNN對(duì)比
1.1.5 R-?FCN
針對(duì)Faster R-?CNN對(duì)每個(gè)ROI進(jìn)行大量的重復(fù)計(jì)算問(wèn)題,2016年Dai等提出R-?FCN方法,引入了位置敏感分?jǐn)?shù)圖,以解決在圖像分類中圖片自身的變化不會(huì)更改圖片屬性的矛盾問(wèn)題,從而達(dá)到將幾乎所有的計(jì)算權(quán)值都在整幅圖像上共享的目的。位置敏感分?jǐn)?shù)圖使用感興趣區(qū)域池化層來(lái)完成信息采樣,融合分類與位置信息。R-?FCN在PASCAL VOC 2007數(shù)據(jù)集上取得了mAP值為83.6%的成績(jī)。具體實(shí)現(xiàn)方式如圖6所示。
圖6 R-FCN算法實(shí)現(xiàn)流程
R-?FCN提出了位置敏感分?jǐn)?shù)圖,提高了CNN的建模幾何變換能力,但缺乏對(duì)候選區(qū)域全局信息和語(yǔ)義信息的利用。
1.1.6 FPN
2017年,Lin等在Faster R-?CNN的RPN層的基礎(chǔ)上進(jìn)一步提出了特征金字塔網(wǎng)絡(luò)(Feature Pyramid Net?works,F(xiàn)PN)算法。該設(shè)計(jì)結(jié)構(gòu)可以使不同分辨率的信息特征融合,使得特征圖具有較強(qiáng)的語(yǔ)義。FPN的網(wǎng)絡(luò)結(jié)構(gòu)如圖7所示。
圖7 FPN算法實(shí)現(xiàn)流程
FPN采用自頂向下的結(jié)構(gòu),在過(guò)程中通過(guò)最近鄰插值的上采樣方法進(jìn)行特征圖放大,可以最大程度地保留特征圖的語(yǔ)義信息,但是內(nèi)存占用巨大,導(dǎo)致速度執(zhí)行過(guò)慢。
1.1.7 二階段方法的相關(guān)改進(jìn)工作
R-?CNN解決了不用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類的問(wèn)題,但是需要進(jìn)行邊界框定位回歸且利用SVM分類器分類。Fast R-?CNN解決了邊界框和標(biāo)簽不能共同輸出的問(wèn)題,但是生成候選框仍是采用選擇性搜索方法,消耗時(shí)間過(guò)長(zhǎng)。Faster R-?CNN解決了選擇性搜索問(wèn)題。Mask R-?CNN是一個(gè)靈活的模型,可應(yīng)用于檢測(cè)、分割以及識(shí)別等多種任務(wù)。之后大量的二階段方法在網(wǎng)絡(luò)結(jié)構(gòu)的改進(jìn)方面都圍繞著R-?CNN框架,而MR?CNN、HyperNe、CRAFT等方法都是在圍繞R?CNN的特征層和分類器做調(diào)整。A-?Fast ?R-CNN加入對(duì)抗學(xué)習(xí),增加識(shí)別的泛化能力。Light ?Head R-?CNN針對(duì)檢測(cè)速度慢設(shè)計(jì)了一種全新的結(jié)構(gòu)。針對(duì)小目標(biāo)檢測(cè)問(wèn)題,SNIP利用金字塔結(jié)構(gòu)在訓(xùn)練期間減少尺寸差異。Cao通過(guò)引入注意力機(jī)制來(lái)解決高分辨率下的特征圖與感受野的平衡問(wèn)題。TridentNet提出了參數(shù)共享策略。之前大量的研究都是改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu),Peng提出了一種大的mini?batch的目標(biāo)檢測(cè)模型MegDet,提高了精度。此外,為了平衡質(zhì)量與數(shù)量的關(guān)系,加入級(jí)聯(lián)檢測(cè)提出了Cascade R-?CNN。
1.2 單階段目標(biāo)檢測(cè)
二階段單階段目標(biāo)檢測(cè)算法是直接進(jìn)行定位回歸的算法,比二階段方法減少了分階段步驟,所以檢測(cè)速度更快?;谏疃葘W(xué)習(xí)技術(shù)的單階段目標(biāo)檢測(cè)主流算法主要包括REDMON等提出的YOLO算法及其系列和Liu等提出的SSD算法及其系列。兩種算法系列均是對(duì)原始圖像直接進(jìn)行特征提取,計(jì)算出目標(biāo)物體的類別概率和位置坐標(biāo)值。
1.2.1 YOLOv1算法
2015年,Redmon等提出了YOLO方法,最大特點(diǎn)提升檢測(cè)速度達(dá)到45張/秒,開(kāi)始了端到端的目標(biāo)檢測(cè)技術(shù)的發(fā)展。YOLOv1先對(duì)圖像進(jìn)行預(yù)處理,將圖片調(diào)整為指定大小,然后類似于回歸處理來(lái)進(jìn)行卷積提取檢測(cè)。具體網(wǎng)絡(luò)結(jié)構(gòu)如圖8所示。YOLOv1相對(duì)于Faster R-CNN,犧牲了檢測(cè)準(zhǔn)度和定位精度,但是檢測(cè)速度提高了近7倍。
圖8 YOLOv1結(jié)構(gòu)
1.2.2 SSD算法
針對(duì)YOLOv1算法精度差的問(wèn)題,Liu等提出了結(jié)合YOLO V1和Faster R-?CNN的算法SSD。如圖9所示,SSD算法使用VGG16作為基礎(chǔ)網(wǎng)絡(luò)。由于不同卷積層所包含特征的尺寸不同,SSD使用了特征金字塔預(yù)測(cè)的方式,通過(guò)多層模型參考模式來(lái)實(shí)現(xiàn)不同大小的檢測(cè)。在PASCAL VOC 2007數(shù)據(jù)集測(cè)試300 pixel×300 pixel的圖像,實(shí)時(shí)速率達(dá)到59張/秒,mAP值達(dá)到76.8%。
圖9 SSD結(jié)構(gòu)
SSD使用多層預(yù)測(cè)來(lái)替代單層預(yù)測(cè),但還存在一些問(wèn)題。第一,采用多層遞進(jìn),使最后一層的感受野接收信息量增多,導(dǎo)致對(duì)小目標(biāo)物體檢測(cè)精度不夠。第二,存在回歸模型的通病,即可能無(wú)法收斂。
1.2.3 YOLOv2算法
Redmon針對(duì)YOLOv1的不足和存在的問(wèn)題提出了一種進(jìn)階結(jié)構(gòu)YOLOv2。YOLOv2在所有的卷積層上都添加了批標(biāo)準(zhǔn)化操作,省略了dropout操作,使得mAP有了2%的提升。YOLOv1預(yù)測(cè)矩形框的位置可通過(guò)全連接來(lái)實(shí)現(xiàn),而Faster R-CNN中通過(guò)計(jì)算邊界框相對(duì)于錨點(diǎn)的偏移量,并非直接預(yù)測(cè)邊界框的坐標(biāo)。于是,YOLOv2引入了錨點(diǎn)框的概念來(lái)預(yù)測(cè)邊界框,并去掉了全連接層。YOLOv2的基礎(chǔ)網(wǎng)絡(luò)也進(jìn)行了調(diào)整,使用了DarkNet19分類網(wǎng)絡(luò)。該網(wǎng)絡(luò)有19個(gè)卷積層和5個(gè)最大池化層。YOLOv2具體的網(wǎng)絡(luò)結(jié)構(gòu),如圖10所示。YOLOv2在PASCAL VOC 2007數(shù)據(jù)集上的檢測(cè)精度從66.4%提升到78.6%。
圖10 YOLOv2主干網(wǎng)絡(luò)結(jié)構(gòu)
1.2.4 YOLOv3算法
在YOLOv2的基礎(chǔ)上,在2018年提出了更快、更好的YOLOv3方法。YOLOv3在整體結(jié)構(gòu)上有較大改動(dòng),在基礎(chǔ)網(wǎng)絡(luò)上使用DarkNet?53,其網(wǎng)絡(luò)結(jié)構(gòu)如圖11所示。它的模型有106層網(wǎng)絡(luò),精度與ResNet101相同速度下更快。YOLOv3使用類似FPN的方法進(jìn)行多尺度預(yù)測(cè),在網(wǎng)絡(luò)中3個(gè)不同位置的3種不同尺度的特征圖上進(jìn)行檢測(cè)任務(wù),使小目標(biāo)檢測(cè)精度有明顯提升。對(duì)同一邊界框進(jìn)行多個(gè)類別的預(yù)測(cè),使用多個(gè)獨(dú)立的邏輯分類器代替softmax函數(shù)。這些改變使得YOLOv3在MS COCO數(shù)據(jù)集上的準(zhǔn)確率提高到了33.0%。
圖11 YOLOv3主干網(wǎng)絡(luò)結(jié)構(gòu)
1.2.5 YOLOv4算法
2020年,Bochkovskiy等人提出了YOLOv4。該模型是集所有優(yōu)秀的目標(biāo)檢測(cè)算法的調(diào)參技巧于一體的目標(biāo)檢測(cè)模型。它結(jié)合了加權(quán)殘差連接、跨階段部分連接、跨小批量規(guī)范化、自對(duì)抗訓(xùn)練、Mish激活函數(shù)、CIoU損失函數(shù)和DropBlock規(guī)范化等方法。主干網(wǎng)絡(luò)為CSPDarknet53,添加特征金字塔模塊來(lái)增加感受野,使用PANet來(lái)替代FPN做特征融合。在MSCOCO數(shù)據(jù)集上,它達(dá)到43.5%的平均精度(Average Precision,AP),同時(shí)在TeslaV100上達(dá)到實(shí)時(shí)速度65張/秒的最新成果。YOLOv4網(wǎng)絡(luò)結(jié)構(gòu),見(jiàn)圖12。
圖12 YOLOv4結(jié)構(gòu)
1.2.6 RetinaNet 算法
針對(duì)樣本類別不均衡的問(wèn)題,Lin等提出了RetinaNet算法。該算法采用一種新的損失函數(shù)focal loss來(lái)替代交叉熵?fù)p失函數(shù)。RetinaNet算法可以使單階段方法的精度媲美一部分二階段方法,在MS COCO數(shù)據(jù)集中mAP值可以達(dá)到40.8%。雖然檢測(cè)速度仍比單階段方法慢,但仍然超過(guò)部分二階段方法。
1.2.7 單階段方法的相關(guān)改進(jìn)工作
YOLO系列和SSD系列是單階段目標(biāo)檢測(cè)算法的中流砥柱,幾乎奠定了目標(biāo)檢測(cè)算法的發(fā)展模型。R-SSD、DSOD是基于SSD的改進(jìn),解決小目標(biāo)信息缺失的問(wèn)題。RON更加關(guān)注負(fù)例樣本。STDN 、PFPNet解決了檢測(cè)速度與精度平衡的問(wèn)題。M2Det采用多層金字塔結(jié)構(gòu),使得精度更高。
?。?/p>
基于錨點(diǎn)的目標(biāo)檢測(cè)算法
基于錨點(diǎn)的模型是指在原圖上鋪設(shè)好大小一定的矩形包圍框。然而,基于錨點(diǎn)的模型仍存在問(wèn)題:預(yù)先設(shè)定的錨點(diǎn)框數(shù)量太多,當(dāng)目標(biāo)較少時(shí)會(huì)浪費(fèi)大量資源;預(yù)設(shè)的錨點(diǎn)框大多為負(fù)樣本,訓(xùn)練時(shí)會(huì)造成正、負(fù)樣本失衡;預(yù)設(shè)的錨點(diǎn)框大多是憑人為經(jīng)驗(yàn)設(shè)計(jì)的,其尺寸對(duì)數(shù)據(jù)集敏感,可能會(huì)影響檢測(cè)精度;對(duì)于不同的場(chǎng)景,需要修改大量的超參數(shù)。為了解決上述問(wèn)題,提出了基于無(wú)錨點(diǎn)的檢測(cè)模型。以下從基于關(guān)鍵點(diǎn)和基于密集預(yù)測(cè)類模型兩個(gè)方面來(lái)梳理基于無(wú)錨點(diǎn)的主流目標(biāo)檢測(cè)算法。
2.1 基于關(guān)鍵點(diǎn)的目標(biāo)檢測(cè)算法
在2018年,Law等人提出了CornerNet算法,通過(guò)角點(diǎn)來(lái)檢測(cè)邊界框。在此基礎(chǔ)上,Zhou等人提出了ExtremeNet算法,是一種新的目標(biāo)檢測(cè)方向。它選取上下左右4個(gè)極值和1個(gè)中心點(diǎn)作為關(guān)鍵點(diǎn)。Duan等人發(fā)現(xiàn)CornerNet只使用角點(diǎn)會(huì)出現(xiàn)精度不準(zhǔn)的問(wèn)題。為了解決這個(gè)問(wèn)題,提出了CenterNet算法。它添加了中間結(jié)構(gòu),不僅能夠檢測(cè)物體的角點(diǎn),也可以使物體的中心點(diǎn)進(jìn)行檢測(cè)匹配。
2.2 基于密集預(yù)測(cè)的目標(biāo)檢測(cè)算法
Tian等人提出了基于單階段的全部由卷積層構(gòu)成的FCOS算法,沒(méi)有錨點(diǎn)計(jì)算,同時(shí)增加多種結(jié)構(gòu)來(lái)預(yù)測(cè)多尺度圖像。為了特征層與圖像進(jìn)行自適應(yīng)匹配,F(xiàn)SAF算法不設(shè)置錨點(diǎn)來(lái)實(shí)現(xiàn)基于無(wú)錨點(diǎn)的模型。FASF解決了基于錨點(diǎn)的兩種限制問(wèn)題:一是特征的選擇問(wèn)題;二是錨點(diǎn)的采樣問(wèn)題。
?。?/p>
不同目標(biāo)檢測(cè)算法的性能比較
在目標(biāo)檢測(cè)領(lǐng)域中,在業(yè)界承認(rèn)的ImageNet、COCO等公開(kāi)數(shù)據(jù)集進(jìn)行算法性能驗(yàn)證是檢測(cè)模型的最好方法。本文采用所有類別平均準(zhǔn)確率(mean Average Precision,mPA)做為評(píng)價(jià)模型準(zhǔn)確率性能的優(yōu)劣,用每秒內(nèi)可以處理的圖片數(shù)量即幀率做為評(píng)價(jià)模型檢測(cè)速度性能的優(yōu)劣。相同環(huán)境下,幀率越大,檢測(cè)速度越快。表2是對(duì)基于錨點(diǎn)類模型和基于無(wú)錨點(diǎn)類模型中的主流算法進(jìn)行性能指標(biāo)參數(shù)的比較??梢钥闯?,F(xiàn)aster R-CNN在VOC 2007數(shù)據(jù)集的mAP值有73.2%,檢測(cè)速度有7幀/s。但因?yàn)镕aster R-CNN可修改性很強(qiáng),所以修改后的Faster R-CNN算法可廣泛應(yīng)用于工業(yè)檢測(cè)??傮w來(lái)說(shuō),二階段方法更適用于具有對(duì)生產(chǎn)的安全性、高效性、完整性要求高的自動(dòng)化生產(chǎn)的工業(yè)場(chǎng)景。YOLOv4在MS COCO數(shù)據(jù)集的mAP值為43.5%,對(duì)小目標(biāo)物體有較強(qiáng)的泛化能力,檢測(cè)速度達(dá)到了23 幀/s。最新的單階段目標(biāo)檢測(cè)算法的檢測(cè)精度已達(dá)到工業(yè)應(yīng)用標(biāo)準(zhǔn),且檢測(cè)速度達(dá)到了近實(shí)時(shí)水平,適用于對(duì)實(shí)時(shí)性有較高要求的應(yīng)用場(chǎng)景。而CenterNet在MS COCO數(shù)據(jù)集上,雖然mAP值達(dá)到了47%,但是檢測(cè)速度只有7.8幀/s??傮w來(lái)說(shuō),單階段方法比無(wú)錨點(diǎn)類算法更適合有實(shí)時(shí)檢測(cè)需求的應(yīng)用場(chǎng)景。隨著算法結(jié)構(gòu)的復(fù)雜設(shè)計(jì),未來(lái)一定是在精度提升的同時(shí)保證較快的檢測(cè)速度,且部署量級(jí)需足夠小。
表2 不同目標(biāo)檢測(cè)算法的性能
?。?/p>
目標(biāo)檢測(cè)算法的主要挑戰(zhàn)
現(xiàn)在仍然有以下問(wèn)題有待突破。第一,小目標(biāo)問(wèn)題。由于小目標(biāo)尺寸小,僅占整個(gè)圖像的部分區(qū)域,包含的特征信息較少,難以消除復(fù)雜特征背景的干擾。目前,很多目標(biāo)檢測(cè)算法通過(guò)融合多尺度的特征信息感知目標(biāo)的上下文信息,以解決小目標(biāo)的特征信息少的問(wèn)題,但是仍然會(huì)造成誤檢和漏檢等問(wèn)題。第二,光照問(wèn)題??梢?jiàn)光的目標(biāo)檢測(cè)已經(jīng)趨于成熟,在逆光條件下甚至是在黑夜場(chǎng)景中對(duì)目標(biāo)進(jìn)行檢測(cè)識(shí)別存在一定挑戰(zhàn)。第三,傳輸時(shí)的惡劣信道問(wèn)題。當(dāng)數(shù)據(jù)圖像經(jīng)過(guò)網(wǎng)絡(luò)傳輸造成損傷丟幀時(shí),需要目標(biāo)檢測(cè)算法仍然可以識(shí)別。未來(lái),在復(fù)雜的背景環(huán)境中要消除復(fù)雜特征的干擾,提升對(duì)目標(biāo)檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性。
5
結(jié) 語(yǔ)
過(guò)去的10年中,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)在算法識(shí)別精度和檢測(cè)速度上取得了顯著成就。本文深入系統(tǒng)地分析了基于錨點(diǎn)的目標(biāo)檢測(cè)算法,從基于關(guān)鍵點(diǎn)和基于密集預(yù)測(cè)類模型兩個(gè)方面梳理了基于無(wú)錨點(diǎn)的目標(biāo)檢測(cè)算法。結(jié)合目標(biāo)檢測(cè)的評(píng)價(jià)指標(biāo)討論模型的主要特點(diǎn)、存在的問(wèn)題以及進(jìn)一步擴(kuò)展和改進(jìn)這些目標(biāo)檢測(cè)模型的相關(guān)工作。本文的分析結(jié)果能夠幫助讀者理解主流的目標(biāo)檢測(cè)算法,了解目標(biāo)檢測(cè)算法對(duì)傳統(tǒng)應(yīng)用的支撐作用。