摘 要:
目標(biāo)檢測(cè)是指在視頻或圖片序列中把感興趣的目標(biāo)與背景區(qū)分,,是在圖像中確定目標(biāo)是否存在且確定目標(biāo)位置的過程,,是計(jì)算機(jī)視覺領(lǐng)域中的主要研究方向。目標(biāo)檢測(cè)主要應(yīng)用于人臉識(shí)別,、無人駕駛,、指控和安防等領(lǐng)域,起到人工智能賦能傳統(tǒng)應(yīng)用的作用,。目標(biāo)檢測(cè)的核心是算法,。目前,目標(biāo)檢測(cè)算法主要分為兩大類,,第一類是基于手工設(shè)計(jì)特征的傳統(tǒng)算法,,第二類是基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法。近年來,,基于深度學(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)和存在問題,,介紹基于無錨點(diǎn)(Anchor?-free)類型中的關(guān)鍵點(diǎn)和密集預(yù)測(cè)類算法研究進(jìn)展,,并對(duì)基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法進(jìn)行了分析和展望。
0
引 言
目標(biāo)檢測(cè)(Object Dection,,OD)是一種從視頻或者圖片中找到感興趣的區(qū)域并標(biāo)記出來的行為動(dòng)作,,可以通過算法提取特征來識(shí)別定位特定類別的對(duì)象。目標(biāo)檢測(cè)主要應(yīng)用在人臉識(shí)別,、無人駕駛,、指揮以及安防等領(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è)概念以來,,產(chǎn)生了大量基于手工設(shè)計(jì)特征的傳統(tǒng)算法,。這些算法大多是借鑒窮舉的思想,在基于滑動(dòng)窗口生成的候選框內(nèi)提取特征,,并將特征交給分類器去識(shí)別,。常見方法包括Hear特征+Adaboost算法、Hog特征+SVM算法等,。因?yàn)樵缙诤芏嗟哪繕?biāo)檢測(cè)算法缺乏有效的特征表示,,所以設(shè)計(jì)了許多復(fù)雜的特征表示和在有限資源情況下處理特征加速的技巧。然而,,傳統(tǒng)的目標(biāo)檢測(cè)算法仍存在問題:為生成足夠的候選區(qū)域,,計(jì)算機(jī)的邏輯運(yùn)算開銷巨大;在提取特征時(shí)由于特征較多,,篩選過程過于緩慢,,分類速度和精度達(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年來,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法研究有了長(zhǎng)足的進(jìn)步,?;谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法主要分為基于錨點(diǎn)類模型和基于無錨點(diǎn)類模型兩種?;阱^點(diǎn)類模型又分為單階段方法和二階段方法,。單階段方法只需要提取特征、分類和定位回歸即可,。二階段方法比單階段方法多一個(gè)生成候選框的步驟,,即提取特征后生成候選框再分類定位回歸?;跓o錨點(diǎn)類模型主流算法分為基于關(guān)鍵點(diǎn)和密集預(yù)測(cè)兩類,。因?yàn)榛谏疃葘W(xué)習(xí)的目標(biāo)檢測(cè)算法各有優(yōu)勢(shì),所以本文綜合分析了各類算法的主要特點(diǎn)和存在的問題,以期能夠幫助讀者理解目標(biāo)檢測(cè)算法的原理和內(nèi)涵,。
本文系統(tǒng)分析了基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,,從單階段、二階段兩方面出發(fā),,對(duì)基于錨點(diǎn)類的目標(biāo)檢測(cè)模型做出了深入分析,,且總結(jié)了模型的主要特點(diǎn)和存在的問題,并從關(guān)鍵點(diǎn)和密集預(yù)測(cè)類模型來分析基于無錨點(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年,,近年來逐漸成熟。由于卷積神經(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í)迎來了快速發(fā)展。目標(biāo)檢測(cè)開始進(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給出了近年來優(yōu)秀的目標(biāo)檢測(cè)算法,。
圖1 2013年11月至2020年10月目標(biāo)檢測(cè)算法總覽
1.1 二階段目標(biāo)檢測(cè)
二階段目標(biāo)檢測(cè)算法是基于回歸的算法,,由兩個(gè)階段組成。先通過策略生成錨點(diǎn)框,,后將錨點(diǎn)框通過處理后進(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)過程如圖2所示,。R-?CNN算法首先通過選擇性搜索生成約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)用于候選框來提取特征,但也存在一些問題,。第一,,每個(gè)候選框需要單獨(dú)計(jì)算,且有的候選框重疊在一起,,導(dǎo)致所需計(jì)算資源巨大,;第二,訓(xùn)練過程的4個(gè)步驟單獨(dú)完成,,緩存數(shù)據(jù)獨(dú)立保存,,導(dǎo)致訓(xùn)練過程復(fù)雜;第三,,前兩個(gè)缺點(diǎn)導(dǎo)致運(yùn)行速度相對(duì)較慢,,無法滿足實(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ì)算和縮放圖像造成的信息損失問題,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也存在一些問題。第一,,它仍然保留了R-?CNN的生成候選框,、提取特征、SVM分類和定位回歸4個(gè)步驟,,中間數(shù)據(jù)依舊保存,,時(shí)間消耗仍然巨大;第二,,分類網(wǎng)絡(luò)的初始參數(shù)被直接接入骨干網(wǎng),,沒有針對(duì)具體的檢測(cè)問題做調(diào)整;第三,,由于輸入圖像不需要縮放成統(tǒng)一尺寸,,增加了感興趣區(qū)域的感受野,導(dǎo)致權(quán)重不能及時(shí)更新,;第四,,SPP的調(diào)整只能調(diào)節(jié)全連接層,當(dāng)網(wǎng)絡(luò)足夠深的時(shí)候無法起作用,。
1.1.3 Fast R-?CNN
針在2015年Girshick等繼承R-?CNN的同時(shí)吸收了SPP-?Net的特點(diǎn),提出Fast R-?CNN算法,,將感興趣區(qū)域池化層(ROI Pooling Layer)放在倒數(shù)第一個(gè)卷積層后,,用來將ROI特征生成固定比例的特征圖,并將其與全連接層連接,。同時(shí),,F(xiàn)ast R?CNN網(wǎng)絡(luò)具有雙層分支輸出——第一個(gè)輸出通過SoftMax函數(shù)來計(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è)問題:一是生成候選框仍然是使用選擇性搜索,,雖然速度較R-?CNN有較大提升,但仍然無法滿足實(shí)時(shí)性需求,;二是仍然保留了SPP-?Net的各模塊單獨(dú)運(yùn)算,,計(jì)算量仍然巨大。
1.1.4 Faster R-?CNN
針對(duì)SPP-?Net和Fast R-?CNN都使用了選擇性搜索的算法模塊,,造成計(jì)算量巨大的問題,。為了解決這個(gè)問題,Ren等提出了Faster R-?CNN算法,。在Fast R-?CNN的基礎(chǔ)上添加區(qū)域建議網(wǎng)絡(luò),,替代了傳統(tǒng)的特征提取方法,提高了網(wǎng)絡(luò)的訓(xùn)練速度,。通過神經(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ì)算問題,,2016年Dai等提出R-?FCN方法,引入了位置敏感分?jǐn)?shù)圖,,以解決在圖像分類中圖片自身的變化不會(huì)更改圖片屬性的矛盾問題,,從而達(dá)到將幾乎所有的計(jì)算權(quán)值都在整幅圖像上共享的目的。位置敏感分?jǐn)?shù)圖使用感興趣區(qū)域池化層來完成信息采樣,,融合分類與位置信息,。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),,在過程中通過最近鄰插值的上采樣方法進(jìn)行特征圖放大,,可以最大程度地保留特征圖的語(yǔ)義信息,但是內(nèi)存占用巨大,,導(dǎo)致速度執(zhí)行過慢,。
1.1.7 二階段方法的相關(guān)改進(jìn)工作
R-?CNN解決了不用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類的問題,但是需要進(jìn)行邊界框定位回歸且利用SVM分類器分類,。Fast R-?CNN解決了邊界框和標(biāo)簽不能共同輸出的問題,,但是生成候選框仍是采用選擇性搜索方法,消耗時(shí)間過長(zhǎng),。Faster R-?CNN解決了選擇性搜索問題,。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è)問題,,SNIP利用金字塔結(jié)構(gòu)在訓(xùn)練期間減少尺寸差異,。Cao通過引入注意力機(jī)制來解決高分辨率下的特征圖與感受野的平衡問題。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è)速度更快,。基于深度學(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張/秒,,開始了端到端的目標(biāo)檢測(cè)技術(shù)的發(fā)展。YOLOv1先對(duì)圖像進(jìn)行預(yù)處理,,將圖片調(diào)整為指定大小,,然后類似于回歸處理來進(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算法精度差的問題,,Liu等提出了結(jié)合YOLO V1和Faster R-?CNN的算法SSD。如圖9所示,,SSD算法使用VGG16作為基礎(chǔ)網(wǎng)絡(luò),。由于不同卷積層所包含特征的尺寸不同,SSD使用了特征金字塔預(yù)測(cè)的方式,,通過多層模型參考模式來實(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è)來替代單層預(yù)測(cè),但還存在一些問題,。第一,,采用多層遞進(jìn),使最后一層的感受野接收信息量增多,,導(dǎo)致對(duì)小目標(biāo)物體檢測(cè)精度不夠,。第二,存在回歸模型的通病,,即可能無法收斂,。
1.2.3 YOLOv2算法
Redmon針對(duì)YOLOv1的不足和存在的問題提出了一種進(jìn)階結(jié)構(gòu)YOLOv2。YOLOv2在所有的卷積層上都添加了批標(biāo)準(zhǔn)化操作,,省略了dropout操作,,使得mAP有了2%的提升。YOLOv1預(yù)測(cè)矩形框的位置可通過全連接來實(shí)現(xiàn),,而Faster R-CNN中通過計(jì)算邊界框相對(duì)于錨點(diǎn)的偏移量,,并非直接預(yù)測(cè)邊界框的坐標(biāo)。于是,,YOLOv2引入了錨點(diǎn)框的概念來預(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,,添加特征金字塔模塊來增加感受野,使用PANet來替代FPN做特征融合,。在MSCOCO數(shù)據(jù)集上,,它達(dá)到43.5%的平均精度(Average Precision,AP),,同時(shí)在TeslaV100上達(dá)到實(shí)時(shí)速度65張/秒的最新成果,。YOLOv4網(wǎng)絡(luò)結(jié)構(gòu),見圖12,。
圖12 YOLOv4結(jié)構(gòu)
1.2.6 RetinaNet 算法
針對(duì)樣本類別不均衡的問題,,Lin等提出了RetinaNet算法。該算法采用一種新的損失函數(shù)focal loss來替代交叉熵?fù)p失函數(shù),。RetinaNet算法可以使單階段方法的精度媲美一部分二階段方法,,在MS COCO數(shù)據(jù)集中mAP值可以達(dá)到40.8%。雖然檢測(cè)速度仍比單階段方法慢,,但仍然超過部分二階段方法,。
1.2.7 單階段方法的相關(guān)改進(jìn)工作
YOLO系列和SSD系列是單階段目標(biāo)檢測(cè)算法的中流砥柱,幾乎奠定了目標(biāo)檢測(cè)算法的發(fā)展模型,。R-SSD,、DSOD是基于SSD的改進(jìn),解決小目標(biāo)信息缺失的問題,。RON更加關(guān)注負(fù)例樣本,。STDN 、PFPNet解決了檢測(cè)速度與精度平衡的問題,。M2Det采用多層金字塔結(jié)構(gòu),,使得精度更高。
?。?/p>
基于錨點(diǎn)的目標(biāo)檢測(cè)算法
基于錨點(diǎn)的模型是指在原圖上鋪設(shè)好大小一定的矩形包圍框,。然而,基于錨點(diǎ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ù),。為了解決上述問題,,提出了基于無錨點(diǎn)的檢測(cè)模型。以下從基于關(guān)鍵點(diǎn)和基于密集預(yù)測(cè)類模型兩個(gè)方面來梳理基于無錨點(diǎn)的主流目標(biāo)檢測(cè)算法,。
2.1 基于關(guān)鍵點(diǎn)的目標(biāo)檢測(cè)算法
在2018年,,Law等人提出了CornerNet算法,通過角點(diǎn)來檢測(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)的問題,。為了解決這個(gè)問題,提出了CenterNet算法,。它添加了中間結(jié)構(gòu),,不僅能夠檢測(cè)物體的角點(diǎn),也可以使物體的中心點(diǎn)進(jìn)行檢測(cè)匹配,。
2.2 基于密集預(yù)測(cè)的目標(biāo)檢測(cè)算法
Tian等人提出了基于單階段的全部由卷積層構(gòu)成的FCOS算法,,沒有錨點(diǎn)計(jì)算,同時(shí)增加多種結(jié)構(gòu)來預(yù)測(cè)多尺度圖像,。為了特征層與圖像進(jìn)行自適應(yīng)匹配,,F(xiàn)SAF算法不設(shè)置錨點(diǎn)來實(shí)現(xiàn)基于無錨點(diǎn)的模型。FASF解決了基于錨點(diǎn)的兩種限制問題:一是特征的選擇問題,;二是錨點(diǎn)的采樣問題,。
3
不同目標(biāo)檢測(cè)算法的性能比較
在目標(biāo)檢測(cè)領(lǐng)域中,,在業(yè)界承認(rèn)的ImageNet,、COCO等公開數(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)類模型和基于無錨點(diǎn)類模型中的主流算法進(jìn)行性能指標(biāo)參數(shù)的比較,??梢钥闯觯現(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來說,二階段方法更適用于具有對(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,。總體來說,,單階段方法比無錨點(diǎn)類算法更適合有實(shí)時(shí)檢測(cè)需求的應(yīng)用場(chǎng)景。隨著算法結(jié)構(gòu)的復(fù)雜設(shè)計(jì),,未來一定是在精度提升的同時(shí)保證較快的檢測(cè)速度,,且部署量級(jí)需足夠小。
表2 不同目標(biāo)檢測(cè)算法的性能
?。?/p>
目標(biāo)檢測(cè)算法的主要挑戰(zhàn)
現(xiàn)在仍然有以下問題有待突破,。第一,小目標(biāo)問題,。由于小目標(biāo)尺寸小,,僅占整個(gè)圖像的部分區(qū)域,包含的特征信息較少,,難以消除復(fù)雜特征背景的干擾,。目前,很多目標(biāo)檢測(cè)算法通過融合多尺度的特征信息感知目標(biāo)的上下文信息,,以解決小目標(biāo)的特征信息少的問題,,但是仍然會(huì)造成誤檢和漏檢等問題。第二,,光照問題,。可見光的目標(biāo)檢測(cè)已經(jīng)趨于成熟,,在逆光條件下甚至是在黑夜場(chǎng)景中對(duì)目標(biāo)進(jìn)行檢測(cè)識(shí)別存在一定挑戰(zhàn),。第三,傳輸時(shí)的惡劣信道問題,。當(dāng)數(shù)據(jù)圖像經(jīng)過網(wǎng)絡(luò)傳輸造成損傷丟幀時(shí),,需要目標(biāo)檢測(cè)算法仍然可以識(shí)別。未來,,在復(fù)雜的背景環(huán)境中要消除復(fù)雜特征的干擾,,提升對(duì)目標(biāo)檢測(cè)的準(zhǔn)確性和實(shí)時(shí)性。
?。?/p>
結(jié) 語(yǔ)
過去的10年中,,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)在算法識(shí)別精度和檢測(cè)速度上取得了顯著成就。本文深入系統(tǒng)地分析了基于錨點(diǎn)的目標(biāo)檢測(cè)算法,從基于關(guān)鍵點(diǎn)和基于密集預(yù)測(cè)類模型兩個(gè)方面梳理了基于無錨點(diǎn)的目標(biāo)檢測(cè)算法,。結(jié)合目標(biāo)檢測(cè)的評(píng)價(jià)指標(biāo)討論模型的主要特點(diǎn),、存在的問題以及進(jìn)一步擴(kuò)展和改進(jìn)這些目標(biāo)檢測(cè)模型的相關(guān)工作。本文的分析結(jié)果能夠幫助讀者理解主流的目標(biāo)檢測(cè)算法,,了解目標(biāo)檢測(cè)算法對(duì)傳統(tǒng)應(yīng)用的支撐作用,。