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