劉俊明 孟衛(wèi)華
摘 要:近年來,深度學(xué)習(xí)技術(shù)推動目標(biāo)檢測算法取得了突破式進展?;谏疃葘W(xué)習(xí)的目標(biāo)檢測算法可分為兩階段檢測算法和單階段檢測算法。相比兩階段檢測算法,單階段檢測算法的結(jié)構(gòu)簡單、計算高效,同時具備不錯的檢測精度,在實時目標(biāo)檢測領(lǐng)域中具有較高的研究和應(yīng)用價值。本文首先回顧了單階段檢測算法的發(fā)展歷史,分析總結(jié)了相關(guān)算法的優(yōu)缺點,然后歸納提出了單階段目標(biāo)檢測算法的通用框架,接著對框架中的特征提取模塊和檢測器進行了深入分析,指出了其對算法性能的影響,最后對單階段檢測算法的發(fā)展趨勢進行了展望。
關(guān)鍵詞: 深度學(xué)習(xí);單階段目標(biāo)檢測算法;特征提取;特征融合;anchor;損失函數(shù); 人工智能
中圖分類號: TJ760; TP18 文獻標(biāo)識碼:A文章編號:1673-5048(2020)03-0044-10
0 引言
目標(biāo)檢測是計算機視覺領(lǐng)域的重要問題之一,是完成目標(biāo)跟蹤、場景理解等復(fù)雜視覺任務(wù)的基礎(chǔ),在視頻監(jiān)控、智能交通等領(lǐng)域中應(yīng)用廣泛。目標(biāo)檢測的任務(wù)是判斷圖像中是否存在屬于指定類別的目標(biāo),如果存在,則給出目標(biāo)的類別和位置信息。由于圖像中目標(biāo)的類別、數(shù)量、位置、尺度和外觀變化較大,一般而言,目標(biāo)檢測任務(wù)比目標(biāo)分類任務(wù)更具有挑戰(zhàn)性。
傳統(tǒng)目標(biāo)檢測算法主要致力于解決少數(shù)幾類目標(biāo)的檢測問題,如行人檢測[1]、紅外目標(biāo)檢測[2]。深度學(xué)習(xí)技術(shù)[3],特別是深度卷積神經(jīng)網(wǎng)絡(luò)技術(shù)[4]出現(xiàn)以后,目標(biāo)檢測算法取得了突破式發(fā)展,在Pascal VOC[5-6],MS COCO[7]等大型數(shù)據(jù)集上已經(jīng)能夠取得不錯的檢測效果。
深度學(xué)習(xí)技術(shù)帶來的進步主要體現(xiàn)在: ①目標(biāo)檢測精度大幅提升;②單一模型能夠檢測的目標(biāo)類別數(shù)大幅增長。但深度學(xué)習(xí)算法運行時需要耗費大量的計算資源,運行速度一般遠低于傳統(tǒng)算法。在計算資源受限的條件下,許多基于深度學(xué)習(xí)的目標(biāo)檢測算法往往難以達到實時運行的要求。
基于深度學(xué)習(xí)的目標(biāo)檢測算法分為兩階段檢測算法和單階段檢測算法兩種,如圖1所示。兩階段檢測算法也被稱為基于候選區(qū)域的目標(biāo)檢測算法,其將目標(biāo)檢測過程分解為候選區(qū)域提取、候選區(qū)域分類和候選區(qū)域坐標(biāo)修正三個步驟。單階段檢測算法也被稱為基于回歸分析的目標(biāo)檢測算法,其將目標(biāo)檢測問題視為對目標(biāo)位置和類別信息的回歸分析問題,通過一個神經(jīng)網(wǎng)絡(luò)模型可直接輸出檢測結(jié)果。
從本質(zhì)上而言,兩階段檢測算法包含了兩次目標(biāo)檢測的過程,候選區(qū)域提取模塊是第一個檢測器,用于檢測前景和背景區(qū)域;候選區(qū)域分類和坐標(biāo)修正模塊構(gòu)成了第二個檢測器,用于對第一個檢測器的結(jié)果進行補充和修正。兩階段檢測算
法中的兩次目標(biāo)檢測過程提升了算法的準(zhǔn)確性,但也增加了模型復(fù)雜度,制約了模型計算效率的提高。單階段檢測算法只包含一次目標(biāo)檢測的過程,其結(jié)構(gòu)簡單、計算效率高,能夠方便地進行端到端的訓(xùn)練,在實時目標(biāo)檢測領(lǐng)域中有很大的應(yīng)用潛力。
目前,基于深度學(xué)習(xí)的單階段檢測算法仍然存在著不足,其結(jié)構(gòu)形式、檢測精度和檢測速度仍然需要進一步提升。近年來, 雖然有不少學(xué)者對基于深度學(xué)習(xí)的目標(biāo)檢測算法進行了梳理總結(jié)[8-10],但這些總結(jié)主要集中于對目標(biāo)檢測算法的整體框架進行介紹,對單階段目標(biāo)檢測算法中關(guān)鍵模塊的分析卻不足。本文首先回顧了單階段目標(biāo)檢測算法的發(fā)展歷程,然后歸納提出了單階段檢測算法的通用框架,并對算法中特征提取模塊和檢測器模塊進行深入分析,最后對單階段檢測算法的發(fā)展趨勢進行了展望。
1 發(fā)展歷史
單階段目標(biāo)檢測算法可以看作是一個回歸分析模型,用于分析輸入圖像的像素值與圖像中目標(biāo)位置和類別等變量之間的關(guān)系。
由于圖像和目標(biāo)并不是一一對應(yīng)的關(guān)系,利用回歸分析方法直接預(yù)測目標(biāo)的位置和類別具有一定的難度,因此,早期基于深度學(xué)習(xí)的目標(biāo)檢測算法都是目標(biāo)檢測問題分解為候選區(qū)域提取、分類和坐標(biāo)修正等過程,如圖1(a)所示。圖像分類算法和兩階段目標(biāo)檢測算法中回歸分析方法對于單階段目標(biāo)檢測算法的發(fā)展都有重要的促進作用。圖2時間軸上方展示了單階段目標(biāo)檢測算法的發(fā)展歷程,時間軸下方展示了基于深度學(xué)習(xí)的分類網(wǎng)絡(luò)的發(fā)展歷程。不同單階段目標(biāo)檢測算法在Pascal VOC數(shù)據(jù)集和COCO數(shù)據(jù)集上的性能如表1所示。
2012年,Krizhevsky A利用深度卷積神經(jīng)網(wǎng)絡(luò)AlexNet[4]在ILSVRC2012圖像分類任務(wù)上以明顯優(yōu)于傳統(tǒng)算法的成績獲得冠軍,在計算機視覺領(lǐng)域引起了研究深度學(xué)習(xí)技術(shù)的熱潮。許多學(xué)者開始研究將深度卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于目標(biāo)檢測任務(wù),并利用AlexNet構(gòu)建了DetectorNet[11]、OverFeat[12]、R-CNN[13]、DeepMultiBox[14]、MultiGrasp[15]等目標(biāo)檢測算法。
DetectorNet和OverFeat是最早提出的基于深度神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法,二者的模型中包含了回歸分析的思想。DetectorNet利用神經(jīng)網(wǎng)絡(luò)直接預(yù)測用于指示目標(biāo)區(qū)域的掩模圖像。OverFeat則利用卷積神經(jīng)網(wǎng)絡(luò)的特性高效地實現(xiàn)了基于滑動窗方法的圖像分類和目標(biāo)定位。由于算法結(jié)構(gòu)仍然不完善,這兩種算法并未取得突破性進展,但二者對基于深度學(xué)習(xí)的目標(biāo)檢測算法研究具有啟發(fā)性意義。
R-CNN是典型的兩階段目標(biāo)檢測算法,其使用Selective Search[16]算法生成候選區(qū)域,并利用深度卷積神經(jīng)網(wǎng)絡(luò)對候選區(qū)域進行分類。在修正候選區(qū)域坐標(biāo)時,R-CNN使用了回歸分析方法。具體而言,R-CNN利用全連接網(wǎng)絡(luò)層實現(xiàn)了從輸入特征到候選區(qū)域坐標(biāo)修正系數(shù)的映射。修正系數(shù)衡量了新坐標(biāo)相對于初始坐標(biāo)的偏離程度。這種預(yù)測坐標(biāo)偏離程度不是直接預(yù)測坐標(biāo)絕對值的作法在后續(xù)目標(biāo)檢測算法中應(yīng)用得十分普遍。
DeepMultiBox同樣是兩階段目標(biāo)檢測算法,但不同于R-CNN的是,其利用卷積神經(jīng)網(wǎng)絡(luò)來抽取特征,并利用全連接層來預(yù)測候選區(qū)域坐標(biāo)和類別。在預(yù)測目標(biāo)位置時,DeepMultiBox引入了一系列固定尺寸的矩形框作為預(yù)測目標(biāo)位置的基礎(chǔ)。這一機制與R-CNN中候選區(qū)域坐標(biāo)修正模塊的預(yù)測機制類似。因為尺寸確定以后就不再改變,這些固定尺寸的矩形框被稱為anchor。anchor是基于深度學(xué)習(xí)的目標(biāo)檢測算法中一個十分重要的機制,對算法有多方面的提升。
Faster R-CNN[17]算法是對R-CNN算法的改進。該算法利用RPN(Region Proposal Network)生成候選區(qū)域。RPN與DeepMultiBox有一定的相似性,不同的是前者對候選區(qū)域坐標(biāo)和類別的預(yù)測過程是通過卷積層實現(xiàn)的。由于卷積操作的特性,在特征圖的不同位置進行預(yù)測時可以共享權(quán)重。RPN中也引入了anchor機制,這些anchor以類似于卷積操作的方式在特征圖的每個位置上共享。
MultiGrasp[15]是利用AlexNet構(gòu)造的單階段目標(biāo)檢測算法,可用于預(yù)測圖像中物體的可握持區(qū)域。MultiGrasp將圖像分為7×7的網(wǎng)格,然后預(yù)測網(wǎng)格每個單元對應(yīng)的圖像區(qū)域內(nèi)是否存在可握持物體,以及可握持區(qū)域的位置。
YOLO[18]是第一個在檢測精度、檢測速度上都取得不錯效果的單階段目標(biāo)檢測算法,其模型結(jié)構(gòu)如圖3所示。YOLO算法的核心思想類似于MultiGrasp,但與后者不同的是,YOLO算法中增加了分類器,并重新設(shè)計了損失函數(shù),使得算法能夠檢測多種類別的目標(biāo),此外,YOLO算法中還包含了重新設(shè)計的特征提取網(wǎng)絡(luò)。由于高效的檢測機制和網(wǎng)絡(luò)結(jié)構(gòu),YOLO算法是深度學(xué)習(xí)領(lǐng)域中第一個可以實時運行的目標(biāo)檢測算法,受到了廣泛關(guān)注。
在預(yù)測目標(biāo)位置時,YOLO算法沒有利用先驗信息,需要直接預(yù)測目標(biāo)的實際位置,使得其對目標(biāo)的定位精度相對較差。此外,YOLO算法在預(yù)測每個單元格對應(yīng)的檢測結(jié)果時,要求目標(biāo)中心點必須位于該單元格內(nèi)部。這一作法對算法的預(yù)測過程施加了較強的空間約束,使得算法對成群出現(xiàn)的小目標(biāo)檢測效果較差。
SSD[19]是另一個受到廣泛關(guān)注的單階段目標(biāo)檢測算法,其網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示。SSD算法與YOLO算法的不同之處主要體現(xiàn)在兩方面。首先,SSD利用多個不同尺度的特征圖進行目標(biāo)檢測,提升了算法對不同尺度目標(biāo)的檢測能力。其次,SSD采用了與RPN網(wǎng)絡(luò)中類似的目標(biāo)預(yù)測機制。與YOLO算法相比,這種機制有三點優(yōu)勢: ① 使用卷積層實現(xiàn)對目標(biāo)位置和類別的預(yù)測,參數(shù)量和計算量相對較小;② 沒有對目標(biāo)檢測過程施加空間限制,能夠檢測成群出現(xiàn)的小目標(biāo);③ 使用了多個尺寸的anchor作為目標(biāo)位置的先驗信息。因此,SSD算法的檢測精度和運行速度都優(yōu)于YOLO。
YOLO和SSD是兩種使用較為廣泛的單階段目標(biāo)檢測算法。研究者針對這兩種算法作了很多改進。
針對YOLO算法的缺點,YOLO研究者提出了YOLOv2[20]算法,主要改進內(nèi)容包括: 采用了新的全卷積特征提取網(wǎng)絡(luò)Darknet-19;使用2個不同尺度的特征進行目標(biāo)檢測;引入了anchor機制;使用了多尺度訓(xùn)練機制。YOLOv2算法的運行速度和檢測精度相比YOLO都有了明顯提升。在VOC2007數(shù)據(jù)集上,YOLOv2的性能與SSD512相當(dāng),但前者的運行速度是后者的3.5倍。
YOLOv3[21]對YOLOv2進行了改進: 采用了更深層的特征提取網(wǎng)絡(luò)Darknet-53;使用了3個尺度的特征進行目標(biāo)檢測,同時增加了anchor數(shù)量。由于模型結(jié)構(gòu)更加復(fù)雜,YOLOv3相比YOLOv2檢測速度有所降低,但檢測精度有明顯提升,對小目標(biāo)的檢測效果也有明顯改善。
對于SSD算法,研究者同樣作了多方面的改進。其中DSSD[22]、F-SSD[23]和R-SSD[24]等都是對神經(jīng)網(wǎng)絡(luò)中不同特征的融合方式進行了改進,并取得了不錯的效果。RetinaNet[25]是在SSD目標(biāo)檢測算法框架下一項具有重要意義的算法。相比SSD算法,RetinaNet使用特征金字塔網(wǎng)絡(luò)[26](Feature Pyramid Network,F(xiàn)PN)構(gòu)建了用于目標(biāo)檢測的多尺度特征,并提出了新型損失函數(shù),顯著提高了目標(biāo)檢測算法的準(zhǔn)確性。
2018年,Law H等借鑒了人體姿態(tài)估計算法的一些設(shè)計思想,提出基于關(guān)鍵點的目標(biāo)檢測算法CornerNet[27]。CornerNet將目標(biāo)檢測過程視為預(yù)測目標(biāo)所在矩形框的左上角點和右下角點的過程,并取得了非常好的效果。
單階段目標(biāo)檢測算法雖然晚于兩階段目標(biāo)檢測算法出現(xiàn),但憑借結(jié)構(gòu)簡單、計算高效的特點受到了許多研究者的關(guān)注,發(fā)展十分迅速。早期的單階段目標(biāo)檢測算法往往運行速度較快,但檢測能力與兩階段檢測算法有較大差距。目前的單階段目標(biāo)檢測算法在保持較快速度的同時,檢測能力已經(jīng)達到與兩階段目標(biāo)檢測算法相當(dāng)?shù)乃?。同時,單階段目標(biāo)檢測算法在發(fā)展過程中已經(jīng)成了一個相對固定的框架結(jié)構(gòu),有助于研究者從不同方面對其進行研究改進。
2 算法框架
基于深度學(xué)習(xí)的單階段目標(biāo)檢測算法的主體結(jié)構(gòu)是一個可以進行端到端訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)。根據(jù)對目前單階段目標(biāo)檢測算法的分析,將單階段目標(biāo)檢測模型分解為特征提取和目標(biāo)檢測兩個模塊。其中,特征提取模塊負責(zé)從輸入圖像中提取特征,目標(biāo)檢測模塊則利用提取的特征對目標(biāo)位置和類別進行預(yù)測,如圖5所示。
特征提取模塊包含兩部分: 特征提取網(wǎng)絡(luò)和輔助網(wǎng)絡(luò)。特征提取網(wǎng)絡(luò)一般由圖像分類網(wǎng)絡(luò)改造而成,這樣可以利用在圖像分類數(shù)據(jù)集上預(yù)訓(xùn)練的權(quán)重,實現(xiàn)遷移學(xué)習(xí)效果。輔助網(wǎng)絡(luò)用于對特征提取網(wǎng)絡(luò)輸出的特征進行變換、融合等操作。
目標(biāo)檢測模塊一般由若干全連接層或卷積層構(gòu)成,每個全連接層或者卷積層可以看作若干檢測器的集合。每個檢測器只能輸出1個檢測結(jié)果,檢測器的數(shù)量決定了算法可檢測目標(biāo)數(shù)量的上限。
每個檢測器由1個定位器和1個分類器組成。定位器負責(zé)將輸入特征映射為目標(biāo)位置信息,分類器負責(zé)將輸入特征映射為目標(biāo)類別信息。目前,目標(biāo)位置信息常用目標(biāo)外接矩形框的中心點坐標(biāo)、寬度和高度表示,記為x,y,w,h;目標(biāo)類別信息用cj(j∈[0, 1, 2, …, N-1])表示,其中N是目標(biāo)類別數(shù)量。
不同單階段目標(biāo)檢測算法的區(qū)別在于以下三個方面: ①特征提取網(wǎng)絡(luò)不同;②特征選擇和融合策略不同;③檢測器不同。
其中,前兩個方面都與特征相關(guān)。
與圖像分類領(lǐng)域類似,許多目標(biāo)檢測算法都傾向于使用更深的特征提取網(wǎng)絡(luò),使用更多數(shù)量的特征來提升檢測精度。一般情況下,這樣的做法會大幅增加模型的計算量,但只能得到相對較小的性能提升。
檢測器直接關(guān)乎目標(biāo)檢測結(jié)果的輸出,是單階段目標(biāo)檢測算法中的核心部件。不同類型的目標(biāo)檢測算法可能在檢測器的數(shù)量、anchor機制、構(gòu)造形式、 預(yù)測機制、匹配機制、損失函數(shù)等方面存在差別。
下面對單階段目標(biāo)檢測算法中的特征提取網(wǎng)絡(luò)、特征選擇和融合策略以及檢測器進行論述。
3 特征提取模塊
3.1 特征提取網(wǎng)絡(luò)
作為深度學(xué)習(xí)領(lǐng)域的一項基礎(chǔ)性技術(shù),深度神經(jīng)網(wǎng)絡(luò)近年來發(fā)展很快[28]。圖2中時間軸下方展示了歷年來一些典型的深度神經(jīng)網(wǎng)絡(luò)模型,這些模型在ImageNet數(shù)據(jù)集上的分類性能和計算量如表2所示。由圖2和表2可知,在AlexNet出現(xiàn)之后的最初幾年內(nèi),許多大規(guī)模的深度神經(jīng)網(wǎng)絡(luò)模型被提出來。與AlexNet相比,這些模型分類錯誤率明顯降低,但計算量也有較大增長。另一方面, 為了促進深度學(xué)習(xí)技術(shù)在移動設(shè)備、嵌入式設(shè)備等平臺上的應(yīng)用,網(wǎng)絡(luò)規(guī)模更小、計算量更低的輕量級網(wǎng)絡(luò)也成為深度神經(jīng)網(wǎng)絡(luò)發(fā)展的一個重要方向。
深度神經(jīng)網(wǎng)絡(luò)模型一般由一定的基本結(jié)構(gòu)單元反復(fù)堆疊而成,各種模型的不同也主要體現(xiàn)在其基本結(jié)構(gòu)單元的不同。圖6展示了常見神經(jīng)網(wǎng)絡(luò)模型的基本結(jié)構(gòu)單元。其中,AlexNet和VGG[29]都是常規(guī)的卷積神經(jīng)網(wǎng)絡(luò),采用卷積層作為基本結(jié)構(gòu)單元。與AlexNet不同的是,VGG網(wǎng)絡(luò)只使用了3×3和1×1的卷積核,并堆疊了更多層的網(wǎng)絡(luò)。GoogLeNet[30]采用了Network in Network的思想,其基本結(jié)構(gòu)單元是一個被稱為Inception模塊的子網(wǎng)絡(luò)?;跉埐顚W(xué)習(xí)的思想,He K等[31]在ResNet中引入了跨越不同網(wǎng)絡(luò)層的捷徑連接。捷徑連接有助于增強信息在不同網(wǎng)絡(luò)層之間的流動,緩解
深度模型訓(xùn)練中的過擬合問題。DenseNet[32]則將捷徑連接更廣泛地應(yīng)用在深度神經(jīng)網(wǎng)絡(luò)的構(gòu)建過
程中,但不同于ResNet的是,DenseNet中的捷徑連接采用了通道串接的方式,而不是對應(yīng)元素相加的方式,這有助于促進特征的再利用,降低模型參數(shù)量。
逐層可分離卷積[33]是近年來輕量級神經(jīng)網(wǎng)絡(luò)發(fā)展過程中的一項重要技術(shù),其將卷積過程分解為逐層卷積和駐點卷積。相比常規(guī)卷積過程,逐層可分離卷積的計算量和參數(shù)量更少。
MobileNet[34]使用逐層可分離卷積替代常規(guī)卷積構(gòu),建了一個輕量級神經(jīng)網(wǎng)絡(luò)模型,其分類性能與VGG和GoogLeNet等網(wǎng)絡(luò)性能相當(dāng),但參數(shù)量和計算量明顯降低。 MobileNetV2[35]在MobileNet
的基礎(chǔ)上,增加了捷徑連接,構(gòu)建了殘差學(xué)習(xí)模塊,進一步提升了網(wǎng)絡(luò)的分類準(zhǔn)確性。在SSD目標(biāo)檢測算法框架中,使用MobileNetV2作為特征提取網(wǎng)絡(luò)取得的性能與MobileNet相當(dāng),但模型的參數(shù)量僅為后者的83%,計算量僅為后者的62%。
ShuffleNet[36]將分組卷積、逐層卷積和通道次序打亂這三種操作引入到殘差模塊中。其中,分組卷積是將輸入矩陣在通道方向上劃分為若干組之后,分別進行卷積運算,然后將相應(yīng)的輸出矩陣在通道方向上串接。逐層卷積是分組卷積的一種特殊情況,即分組數(shù)等于通道數(shù)。通道次序打亂則是將輸入矩陣在通道方向上隨機打亂后再進行后續(xù)計算。ShuffleNet可通過一系列超參數(shù)控制模型規(guī)模,當(dāng)模型計算量與MobileNet相當(dāng)時,ShuffleNet的分類錯誤率更低。ShuffleNetV2[37]在ShuffleNet的基礎(chǔ)上,考慮了內(nèi)存存取成本等影響模型運算速度的因素,重新設(shè)計基本結(jié)構(gòu)單元,進一步提升了模型的效率。
3.2 特征選擇和融合策略
深度卷積神經(jīng)網(wǎng)絡(luò)可以從圖像中提取層次化的特征,其中低層網(wǎng)絡(luò)輸出的是簡單幾何特征,高層網(wǎng)絡(luò)輸出的是抽象語義特征[38]。由于需要同時預(yù)測目標(biāo)的位置和類別,目標(biāo)檢測模型既需要幾何特征,也需要語義特征。
隨著網(wǎng)絡(luò)層數(shù)的增加,神經(jīng)網(wǎng)絡(luò)的下采樣率一般逐漸增大,特征圖的分辨率也越來越小。為提升算法對多尺度目標(biāo)的檢測能力,單階段目標(biāo)檢測算法一般會利用多個尺度的特征圖進行預(yù)測。其中的特征選擇和融合操作一般通過特征提取模塊中的輔助網(wǎng)絡(luò)實現(xiàn)。
單階段目標(biāo)檢測算法的典型特征選擇和融合策略如圖7所示。其中,圖7(a)基于特征提取網(wǎng)絡(luò)最頂層的特征進行目標(biāo)檢測,如YOLO算法。圖7(b)基于特征提取網(wǎng)絡(luò)自底向上生成的多個特征圖分別進行目標(biāo)檢測,如SSD算法。圖7(c)基于特征提取網(wǎng)絡(luò)生成的特征圖,采
用自頂向下的方式重新構(gòu)建一套融合的特征圖,代表算法是RetinaNet、FPN和DSSD。YOLOv2和YOLOv3算法也采用這種策略,不過使用了較少的特征圖。圖7(d)基于特征提取網(wǎng)絡(luò)生成的特征圖,采用自底向上的方式重新構(gòu)建了一套融合的特征圖,代表算法是FSSD。
通過對比不同的算法發(fā)現(xiàn),目標(biāo)越小,對特征圖分辨率的要求越高;使用多尺度特征進行目標(biāo)檢測較使用單個尺度的特征效果好;使用融合的特征較使用獨立的特征效果好。但從另一方面說,增加特征的數(shù)量,對更多特征進行融合雖然會促進算法檢測能力的提升,但也增加了模型中的參數(shù)量和計算量,導(dǎo)致算法的運行速度降低。因此,設(shè)計特征選擇與融合策略的關(guān)鍵,在于利用適當(dāng)數(shù)量的特征和合理的融合機制取得算法性能和算法運行速度之間的平衡。
4 檢測器
檢測器的功能是根據(jù)特征直接輸出目標(biāo)檢測結(jié)果。從實現(xiàn)形式上看,檢測器的結(jié)構(gòu)十分簡單,但在目標(biāo)檢測算法的訓(xùn)練和測試過程中,檢測器又包含十分復(fù)雜的機制,對神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程和最終性能有重要影響。
檢測器包含定位器和分類器,其中分類器一般較簡單,與圖像分類網(wǎng)絡(luò)中的分類層類似。定位器作為目標(biāo)檢測網(wǎng)絡(luò)獨有的部件,復(fù)雜度較高,對模型的影響更大。
4.1 構(gòu)造形式
根據(jù)前文的論述可知,檢測器一般有兩種構(gòu)造形式,分別是全連接層和卷積層。在YOLO,DeepMultiBox等算法中,使用全連接層構(gòu)造了檢測器。在YOLOv3,SSD和RetinaNet等算法中,檢測器通過卷積層實現(xiàn)。其中YOLOv3使用了1×1的卷積核,而SSD使用了3×3卷積核。值得注意的是,全連接層可以看作是一種特殊的卷積層,其卷積核的尺寸與輸入特征的尺寸相同。
表3中列舉了目標(biāo)類別數(shù)N=20時,一些算法的檢測器構(gòu)造信息。通過YOLO與其他三種算法對比發(fā)現(xiàn),使用卷積層來構(gòu)造檢測器能夠在不同空間位置的檢測器之間共享參數(shù),極大地減少參數(shù)量。另外,YOLOv3擁有較多的檢測器,參數(shù)數(shù)量卻少于SSD。這是因為YOLOv3的檢測器是在較大的特征圖中通過卷積構(gòu)造實現(xiàn),參數(shù)共享程度高,而SSD算法是在多個較小的特征圖中構(gòu)造檢測器,參數(shù)共享程度低。
4.2 anchor機制
anchor為單階段目標(biāo)檢測算法提供了目標(biāo)位置的先驗信息。在這些先驗信息的基礎(chǔ)上,檢測器中的定位器更容易預(yù)測目標(biāo)位置。anchor應(yīng)當(dāng)盡可能地貼近真實目標(biāo)的矩形框尺寸分布。事實上,兩階段目標(biāo)檢測算法中的候選區(qū)域可以理解為動態(tài)的anchor。這種動態(tài)anchor往往比事先指定的靜態(tài)矩形框更貼近目標(biāo)的真實位置,所以一般情況下,兩階段目標(biāo)檢測算法的檢測效果更好。
在Pascal VOC和COCO等目標(biāo)檢測數(shù)據(jù)集中,目標(biāo)大小和長寬比往往分布在較大的范圍中。所以,一般選用若干不同大小和長寬比的anchor,促進定位器通過學(xué)習(xí)來預(yù)測不同大小和長寬比的目標(biāo),從而增加定位器的多樣性,增強算法對不同目標(biāo)的檢測能力。
目前一般有兩種方式來確定anchor的尺寸。第一種是通過人工選擇,這種方法在SSD,RPN,RetinaNet等算法中有應(yīng)用。第二種是通過聚類的方法在訓(xùn)練集中選取合適的anchor尺寸,這種方法在DeepMultiBox和YOLO等算法中有應(yīng)用。
聚類方法獲得的anchor更加符合數(shù)據(jù)集中目標(biāo)矩形框的分布情況,使得算法在訓(xùn)練過程中更容易收斂。而人工選擇法要達到同樣效果,一般要選擇較多的anchor,以盡可能覆蓋不同尺度和長寬比的目標(biāo)。
典型目標(biāo)檢測算法中anchor的數(shù)量如表4所示。作為對比,YOLOv2中僅使用了5種anchor,而SSD算法中使用了30種anchor,但二者的檢測精度相當(dāng)。
在RetinaNet算法中,作者研究了anchor數(shù)量與算法檢測精度之間的關(guān)系,結(jié)果如表5所示。這進一步說明,選用更多的anchor不一定能產(chǎn)生更好的結(jié)果。
4.3 預(yù)測機制
檢測器的預(yù)測機制是指檢測器輸出值與目標(biāo)位置和類別信息的預(yù)測值之間的映射關(guān)系,即根據(jù)檢測器輸出如何計算目標(biāo)檢測結(jié)果。預(yù)測機制不同,檢測器的檢測能力也不同。
在SSD算法中,檢測器的預(yù)測機制可表示為
式中: (ax,ay,aw,ah)分別是anchor中心點坐標(biāo)、寬度和高度;(t^x,t^y,t^w,t^h)是檢測器中定位器的輸出值;t^cj是分類器輸出值;(x^,y^,w^,h^)是預(yù)測的目標(biāo)矩形框坐標(biāo);c^j是預(yù)測的目標(biāo)類別概率。
SSD算法預(yù)測的是目標(biāo)矩形框相對anchor中心位置和邊框尺寸的偏差程度,這使得算法更容易檢測到與anchor形狀相似的目標(biāo)。這種檢測機制未對矩形框中心做任何限制,檢測器預(yù)測的矩形框可能出現(xiàn)在圖像的任意位置,因此,圖像不同區(qū)域的特征可能用于檢測同一個目標(biāo)。
YOLO算法未采用anchor機制,其檢測器的預(yù)測機制可用下列公式表達:
式中: (cx,cy,cw,ch)是定位器所在單元格的左上角的坐標(biāo)、以及單元格的寬度和高度;t^o是檢測器輸出的矩形框置信度;W,H是輸入圖像的寬度和高度;其他變量的含義與式(1)相同。
YOLO對檢測器施加了一定的限制,使得其預(yù)測的矩形框中心必須位于檢測器所對應(yīng)單元格內(nèi)。同時檢測器也需要在較大的搜索空間內(nèi)預(yù)測目標(biāo)矩形框的尺寸,難度較大,這也導(dǎo)致YOLO算法的定位誤差較大。
YOLOv2和YOLOv3的預(yù)測機制相同,用公式表示為
式中: (aw, ah)是anchor的寬度和高度;其他變量的含義與式(2)相同。anchor機制的引入使得檢測器更容易預(yù)測目標(biāo)矩形框的尺寸,同時YOLOv2和YOLOv3算法還增大了特征圖的分辨率和檢測器的數(shù)量,使算法的檢測效果有了明顯提升。
4.4 匹配機制
在單階段目標(biāo)檢測算法中,網(wǎng)絡(luò)模型中有多個檢測器,輸入圖像中也有多個真實目標(biāo),只有在二者之間建立匹配關(guān)系之后才能計算相應(yīng)損失值,從而對神經(jīng)網(wǎng)絡(luò)進行優(yōu)化。
從匹配形式來說,目前有兩種。第一種是每個真實目標(biāo)只與一個檢測器匹配,如YOLO系列算法。第二種是多個檢測器可以與同一個目標(biāo)匹配,如SSD,Retina等算法。第二種匹配機制使得有多個檢測器負責(zé)檢測同一個目標(biāo),有助于提升檢測效果。
從匹配方法來說,一般也分為兩種。在anchor機制出現(xiàn)以前,一般是通過檢測器輸出的矩形框來構(gòu)建匹配關(guān)系。如果檢測器輸出的矩形框與某個真實矩形框的IoU最大或者超過了一定的閾值,則在二者之間建立匹配關(guān)系。在算法訓(xùn)練過程中,檢測器輸出的矩形框是動態(tài)變化的,因此在不同迭代步中,同一個檢測器可能匹配到差異較大的目標(biāo),這種匹配機制稱為動態(tài)匹配機制。動態(tài)匹配機制可能造成模型訓(xùn)練過程不穩(wěn)定,特別是在早期訓(xùn)練階段。
在anchor機制出現(xiàn)以后,一般利用與檢測器綁定的anchor計算匹配關(guān)系。由于anchor確定以后就不再發(fā)生變化,這種匹配機制稱為靜態(tài)匹配機制。靜態(tài)匹配機制保證了匹配關(guān)系的穩(wěn)定性,使得不同檢測器根據(jù)anchor尺寸和長寬比的不同向著不同方向優(yōu)化,保證了檢測器的多樣性。
4.5 損失函數(shù)
檢測器與真實目標(biāo)(正樣本)建立了匹配關(guān)系之后,就可以基于檢測器輸出和真實目標(biāo)的標(biāo)記計算損失值。其中分類器的損失值一般用交叉熵損失函數(shù)計算。定位器的損失值一般采用均方差(MSE)損失函數(shù)或SmoothL1損失函數(shù)計算,二者的差別如圖8所示。當(dāng)誤差較大時,均方差損失函數(shù)會產(chǎn)生過大的梯度, 因此一般采用SmoothL1來計算定位器的損失。
另一個值得注意的問題是大目標(biāo)和小目標(biāo)的損失函數(shù)。對于同樣的尺寸誤差,小目標(biāo)顯然比大目標(biāo)更敏感,但是MSE和SmoothL1損失函數(shù)并沒
有考慮這一點。YOLO算法中利用(w^-w)和(h^-h)計算矩形框尺寸的預(yù)測值(w^,h^)與真實(w,h)之間的誤差,緩解了這種現(xiàn)象。在基于anchor的預(yù)測機制中,通過為不同尺度的目標(biāo)設(shè)定不同尺度的anchor也可以緩解此問題。
未能與真實目標(biāo)建立匹配關(guān)系的檢測器實際上是與背景區(qū)域(負樣本)建立了匹配關(guān)系。對于負樣本,只需計算分類器對應(yīng)的損失值。但圖像中背景區(qū)域面積較大,負樣本的數(shù)量遠大于正樣本,二者之間存在嚴重的類別不均衡問題。
常規(guī)的做法是對負樣本進行篩選,使得正負樣本的比例更加均衡。SSD算法利用困難負樣本挖掘技術(shù)對負樣本進行篩選,使得正樣本和負樣本的比例保持為1∶3。這使得模型訓(xùn)練更加穩(wěn)定,收斂速度更快。
在ReintaNet中,作者提出了改進的分類器損失函數(shù)FocalLoss:
FL(pt)=-αt(1-pt)γln(pt)(4)
式中: Pt是分類器給出的類別概率;系數(shù)α用于緩解正樣本和負樣本數(shù)量的不均衡問題;權(quán)重(1-pt)γ用于對樣本的損失值進行加權(quán),降低來自容易檢測的樣本的損失值,增加來自困難樣本的損失值,如圖9所示。在COCO數(shù)據(jù)集上,ReintaNet的檢測精度大幅領(lǐng)先其他單階段目標(biāo)檢測算法,甚至比Faster R-CNN算法的檢測效果還要好。
YOLO系列算法并沒有計算來自負樣本的分類損失值,而是利用檢測器輸出的置信度t^o來區(qū)分正負樣本。對于正樣本,置信度t^o的目標(biāo)值to為1;對于負樣本,如果檢測器輸出的矩形框與任意真實目標(biāo)矩形框的IoU大于0.5,則忽略這個預(yù)測結(jié)果,否則將目標(biāo)值to置為0,然后計算t^o和to之間的損失值。YOLOv3的這種機制巧妙地解決了負樣本的問題,在實際中取了良好的效果。
5 挑戰(zhàn)與展望
本文對基于深度學(xué)習(xí)的單階段目標(biāo)檢測算法的研究進展進行了綜述,歸納提出了單階段目標(biāo)檢測算法的通用框架,并對算法框架中的特征提取模塊和檢測器模塊進行了深入分析。
綜述發(fā)現(xiàn),基于深度學(xué)習(xí)的單階段目標(biāo)檢測算法在短短幾年時間里從出現(xiàn)到興盛,發(fā)展十分迅速。這主要是由于兩方面的原因: 一方面單階段檢測算法結(jié)構(gòu)簡單、高效,在實時目標(biāo)檢測領(lǐng)域應(yīng)用潛力大,吸引了大量研究者的參與;另一方面深度神經(jīng)網(wǎng)絡(luò)技術(shù)發(fā)展迅猛,促進了單階段目標(biāo)檢測算法性能的提高。目前,單階段目標(biāo)檢測算法已經(jīng)形成了相對固定的算法框架,并具有以下特點:
(1) 經(jīng)過預(yù)訓(xùn)練的深度神經(jīng)網(wǎng)絡(luò)是構(gòu)建目標(biāo)檢測算法特征提取模塊的基礎(chǔ)。雖然DSOD[39]等算法的構(gòu)建可以不依賴預(yù)訓(xùn)練模型,但預(yù)訓(xùn)練模型仍具有十分重要的作用,特別是對于缺乏標(biāo)記數(shù)據(jù)的領(lǐng)域。
(2) 充分利用特征提取網(wǎng)絡(luò)形成的多尺度特征是實現(xiàn)多尺度目標(biāo)檢測的基礎(chǔ)。在選擇和融合多尺度特征時大多采用沙漏型的網(wǎng)絡(luò)結(jié)構(gòu),即特征圖的分辨率先逐漸減小,再逐漸增大。這種方式有利于不同層級的特征相互融合。
(3) 以YOLO和SSD為代表的單階段目標(biāo)檢測算法已經(jīng)發(fā)展的較為成熟,其算法框架中的檢測器已經(jīng)從構(gòu)造形式、預(yù)測機制、匹配機制、損失函數(shù)等多方面得到了改進,但檢測器的構(gòu)造形式、預(yù)測機制和損失函數(shù)等方面仍然有提升的空間。
從算法性能來看,單階段目標(biāo)檢測算法已經(jīng)具有不錯的檢測精度和速度,但是距離實用尚有一段距離。展望未來,有必要在以下方面展開單階段目標(biāo)檢測算法的研究:
(1) 研究弱監(jiān)督或無監(jiān)督條件下的單階段目標(biāo)檢測算法,促進其在標(biāo)記數(shù)據(jù)缺乏的領(lǐng)域中應(yīng)用。
(2) 研究深度神經(jīng)網(wǎng)絡(luò)輸出的各層級特征與圖像中各類目標(biāo)的聯(lián)系,指導(dǎo)構(gòu)建更高效的特征選擇和融合機制,提升對特征的利用效率,改善算法運行速度和精度。
(3) 研究新的目標(biāo)位置表示方法和檢測器設(shè)計形式。目前普遍采用矩形框表示目標(biāo)位置,其中包含了一些背景區(qū)域,對于輪廓模糊或細長的物體,這種表示方法并不合適。而檢測器的形式與目標(biāo)位置表示具有一定聯(lián)系。目前的檢測器形式已經(jīng)相對固定,在算法性能上很難再有大的突破,有必要構(gòu)造新的檢測器形式,進一步提升單階段目標(biāo)檢測算法性能。在這兩方面,DOTA數(shù)據(jù)集[40]和CornerNet算法是兩個很好的例子。在前者中,作者使用斜矩形框來表示目標(biāo)位置;在后者中,作者提出使用矩形框的兩個角點表示目標(biāo)位置,并構(gòu)造了新形式的檢測器。
(4) 研究更好的定位器損失函數(shù)。目前的定位器損失函數(shù)沒有考慮目標(biāo)尺度對損失函數(shù)的影響,使得模型對小目標(biāo)的定位誤差不敏感,需要進行改進。目前已有研究者將改造后的IoU準(zhǔn)則作為定位器損失函數(shù)對模型進行了優(yōu)化[41],提升了模型的性能。
(5) 研究改善單階段目標(biāo)檢測算法對于小目標(biāo)的檢測能力。目前算法對于小目標(biāo)的檢測能力相對較弱,但無人機航拍、衛(wèi)星遙測、紅外目標(biāo)識別等領(lǐng)域?qū)π∧繕?biāo)檢測有較強的需求。在這些領(lǐng)域中,有的小目標(biāo)占據(jù)的像素面積小,例如在紅外目標(biāo)識別、衛(wèi)星遙測領(lǐng)域中,目標(biāo)最小時可能僅占據(jù)十幾個像素;有的小目標(biāo)占據(jù)的相對面積較小,例如在無人機高清航拍過程,照片分辨率已經(jīng)達到4K級別。改善對小目標(biāo)的檢測能力,可以增強單階段目標(biāo)檢測算法在這些領(lǐng)域的應(yīng)用價值。
參考文獻:
[1] 蘇松志, 李紹滋, 陳淑媛, 等.行人檢測技術(shù)綜述[J].電子學(xué)報,2012,40(4):814-820.
Su Songzhi,Li Shaozi,Chen Shuyuan,et al. A Survey on Pedestrian Detection[J]. Acta Electronica Sinica, 2012, 40(4): 814-820. (in Chinese)
[2] 藺向明.基于紅外成像的小目標(biāo)檢測技術(shù)研究[J]. 航空兵器,2014(3):12-15.Lin Xiangming. Research on Small Target Detecting Algorithm Based on IR Imaging[J]. Aero Weaponry,2014(3):12-15. (in Chinese)
[3] Lecun Y,Bengio Y,Hinton G. Deep Learning[J]. Nature,2015,521(7553):436-444.
[4] Krizhevsky A,Sutskever I,Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks[C]∥International Conference on Neutral Information Processing Systems (NIPS),Lake Tahoe,USA:2012:1097-1105.
[5] Everingham M,Van Gool L,Williams C K,et al. The Pascal Visual Object Classes (VOC) Challenge[J]. International Journal of Computer Vision,2010,88(2):303-338.
[6] Everingham M,Ali Eslami S M,Van Gool L,et al. The Pascal Visual Object Classes Challenge:A Retrospective[J]. International Journal of Computer Vision,2015,111(1):98-136.
[7] Veit A,Matera T,Neumann L,et al. COCO-Text:Dataset and Benchmark for Text Detection and Recognition in Natural Images [EB/OL]. (2016-06-19) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1601.07140.pdf.
[8] Liu L,Ouyang W L,Wang X G,et al. Deep Learning for Generic Object Detection:A Survey [EB/OL]. (2019-03-24)[2019-05-23]. http: ∥arxiv.org/abs/1809.02165.
[9] 張慧,王坤峰,王飛躍. 深度學(xué)習(xí)在目標(biāo)視覺檢測中的應(yīng)用進展與展望[J]. 自動化學(xué)報,2017,43(8):1289-1305.
Zhang Hui,Wang Kunfeng,Wang Feiyue. Advances and Perspectives on Applications of Deep Learning in Visual Object Detection[J]. Acta Automatica Sinica,2017,43(8):1289-1305. (in Chinese)
[10] 尹宏鵬,陳波,柴毅,等. 基于視覺的目標(biāo)檢測與跟蹤綜述[J].自動化學(xué)報, 2016, 42(10): 1466-1489.
Yin Hongpeng,Chen Bo,Chai Yi,et al. Vision-Based Object Detection and Tracking:A Review[J]. Acta Automatica Sinica,2016, 42(10): 1466-1489. (in Chinese)
[11] Szegedy C,Toshev A,Erhan D. Deep Neural Networks for Object Detection[C]∥ Conference on Neural Information Processing Systems (NIPS),Lake Tahoe,USA,2013:2553-2561.
[12] Sermanet P,Eigen D,Zhang X,et al. OverFeat:Integrated Recognition,Localization and Detection Using Convolutional Networks [EB/OL]. (2014-02-24) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1312.6229.pdf.
[13] Girshick R,Donahue J,Darrell T,et al. Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition(CVPR),2014:580-587.
[14] Erhan D,Szegedy C,Toshev A,et al. Scalable Object Detection Using Deep Neural Networks[C]∥ Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2014:2147-2154.
[15] Redmon J,Angelova A. Real-Time Grasp Detection Using Convolutional Neural Networks[C]∥ IEEE International Conference on Robotics and Automation (ICRA),Seattle,USA, 2015:1316-1322.
[16] Uijlings J R R,Van De Sande K E A,Gevers T,et al. Selective Search for Object Recognition[J]. International Journal of Computer Vision,2013,104(2):154-171.
[17] Ren S Q,He K M,Girshick R B,et al. Faster R-CNN:Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Transactions on Pattern Analysis & Machine Intelligence,2015,39(6): 1137-1149.
[18] Redmon J,Divvala S K,Girshick R,et al. You Only Look Once:Unified,Real-Time Object Detection[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016:779-788.
[19] Liu W,Anguelov D,Erhan D,et al. SSD:Single Shot MultiBox Detector[C]∥European Conference on Computer Vision(ECCV),Amsterdam,The Netherlands: 2016: 21-37.
[20] Redmon J,F(xiàn)arhadi A. YOLO9000:Better,F(xiàn)aster,Stronger[C]∥IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017: 7263-7271.
[21] Redmon J,F(xiàn)arhadi A. YOLOv3:An Incremental Improvement [EB/OL]. (2018-04-08) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1804.02767.pdf.
[22] Fu C Y,Liu W,Ranga A,et al. DSSD:Deconvolutional Single Shot Detector [EB/OL]. (2017-01-23) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1701.06659.pdf.
[23] Li Z X,Zhou F Q. FSSD:Feature Fusion Single Shot Multibox Detector [EB/OL]. (2018-05-17) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1712.00960.pdf.
[24] Jeong J,Park H,Kwak N. Enhancement of SSD by Concatenating Feature Maps for Object Detection [EB/OL]. (2017-05-26)[2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1705.09587.pdf.
[25] Lin T Y,Goyal P,Girshick R,et al. Focal Loss for Dense Object Detection[C]∥IEEE International Conference on Computer Vision (ICCV),2017:2980-2988.
[26] Lin T Y,Dollar P,Girshick R,et al. Feature Pyramid Networks for Object Detection[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017:2117-2125.
[27] Law H,Deng J. CornerNet:Detecting Objects as Paired Keypoints[C]∥ European Conference on Computer Vision (ECCV),2018:734-750.
[28] Gu J X,Wang Z H,Kuen J,et al. Recent Advances in Convolutional Neural Networks[J]. Pattern Recognition,2018,77:354-377.
[29] Simonyan K,Zisserman A. Very Deep Convolutional Networks for Large-Scale Image Recognition [EB/OL]. (2015-04-10) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1409.1556.pdf.
[30] Szegedy C,Liu W,Jia Y Q,et al. Going Deeper with Convolutions[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2015:1-9.
[31] He K M,Zhang X Y,Ren S Q,et al. Deep Residual Learning for Image Recognition[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2016:770-778.
[32] Huang G,Liu Z,Van Der Maaten L,et al. Densely Connected Convolutional Networks[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017:4700-4708.
[33] Chollet F. Xception:Deep Learning with Depthwise Separable Convolutions[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2017:1251-1258.
[34] Howard A G,Zhu M L,Chen B,et al. MobileNets:Efficient Convolutional Neural Networks for Mobile Vision Applications [EB/OL]. (2017-04-17) [2019-05-23]. https: ∥arxiv.xilesou.top/pdf/1704.04861.pdf.
[35] Sandler M,Howard A,Zhu M L,et al. MobileNetV2:Inverted Residuals and Linear Bottlenecks[C]∥ IEEE Conference onComputer Vision and Pattern Recognition (CVPR),2018:4510-4520.
[36] Zhang X Y,Zhou X Y,Lin M X,et al. ShuffleNet:An Extremely Efficient Convolutional Neural Network for Mobile Devices[C]∥IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2018:6848-6856.
[37] Ma N N,Zhang X Y,Zheng H T,et al. ShuffleNet V2:Practical Guidelines for Efficient CNN Architecture Design[C]∥ European Conference on Computer Vision (ECCV),2018:122-138.
[38] Zeiler M D,F(xiàn)ergus R. Visualizing and Understanding Convolutional Networks[C]∥European Conference on Computer Vision (ECCV),2014:818-833.
[39] Shen Z Q,Liu Z,Li J G,et al. DSOD:Learning Deeply Supervised Object Detectors from Scratch[C]∥IEEE International Conference on Computer Vision (ICCV),2017:1919-1927.
[40] Xia G S,Bai X,Ding J,et al. DOTA:A Large-Scale Dataset for Object Detection in Aerial Images[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2018:3974-3983.
[41] Rezatofighi H,Tsoi N,Gwak J Y,et al. Generalized Intersection over Union:A Metric and A Loss for Bounding Box Regression[C]∥ IEEE Conference on Computer Vision and Pattern Recognition (CVPR),2019:658-666.
Review on Single-Stage Object DetectionAlgorithm
Based on Deep Learning
Liu Junming1*,Meng Weihua1, 2
(1.China Airborne Missile Academy, Luoyang 471009, China;
2. Aviation Key Laboratory of Science and Technology on Airborne
Guided Weapons, Luoyang 471009, China)
Abstract:
In recent years, deep learning technology has made breakthrough progress in object detection algorithm. The object detection algorithm based on deep learning can be divided into two-stage detection algorithm and single-stage detection algorithm. Compared with two-stage detection algorithm, single-stage detection algorithm has simpler structure, higher computation efficiency and comparable detection accuracy and thus has high research and application value in real-time object detection field. This paper firstly reviews the development history of single-stage detection algorithm and analyzes the advantages and disadvantages of related algorithms, and proposes the general framework of single-stage object detection algorithm. Then, the feature extraction module and detector in the framework are analyzed in depth, and their influence on algorithm performance is pointed out. Finally, the development trend of single-stage detection algorithm is prospected.
Key words: deep learning;single-stage object detection algorithm;feature extraction;feature fusion;anchor; loss function; artificial intelligence
收稿日期: 2019-05-23
作者簡介: 劉俊明(1990-),男,河南濟源人,博士研究生,研究方向為深度學(xué)習(xí)、紅外目標(biāo)檢測。
E-mail: ljmbuaa@126.com
引用格式: 劉俊明,孟衛(wèi)華.基于深度學(xué)習(xí)的單階段目標(biāo)檢測算法研究綜述
[ J].
航空兵器,2020, 27( 3): 44-53.
Liu Junming, Meng Weihua.Review on Singl-Stage Object Detection Algorithm Based on Deep Learning[ J]. Aero Weaponry,2020, 27( 3): 44-53.( in Chinese)