高海濤,朱超涵,張?zhí)炱?,郝飛,茅新宇
(南京工程學(xué)院機(jī)械工程學(xué)院,江蘇南京 211167)
目標(biāo)檢測(cè)(Object Detection)是一種通過(guò)提取/分析目標(biāo)幾何和統(tǒng)計(jì)特征進(jìn)行圖像分割識(shí)別目標(biāo)的技術(shù),其在安防、姿態(tài)估計(jì)、無(wú)人駕駛等領(lǐng)域得到廣泛使用。由于檢測(cè)對(duì)象復(fù)雜多樣,再加上獲取圖像時(shí)有光照、遮擋等因素干擾,目標(biāo)檢測(cè)一直是計(jì)算機(jī)視覺(jué)領(lǐng)域具有挑戰(zhàn)性的研究之一。在深度學(xué)習(xí)算法出現(xiàn)之前,傳統(tǒng)目標(biāo)檢測(cè)通常利用滑動(dòng)窗口對(duì)手工特征進(jìn)行提取、匹配,存在檢測(cè)目標(biāo)單一、時(shí)間和空間復(fù)雜度較高并且魯棒性差等問(wèn)題。隨著深度學(xué)習(xí)算法的廣泛應(yīng)用,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)通過(guò)高效的網(wǎng)絡(luò)結(jié)構(gòu)和高算力GPU(Graphics Processing Unit),在檢測(cè)精度與效率等方面顯著提高,逐漸成為當(dāng)前的主流算法[1-3]。
基于深度學(xué)習(xí)的目標(biāo)檢測(cè)可以總結(jié)為有錨框構(gòu)架和無(wú)錨框構(gòu)架兩類(lèi)。有錨框目標(biāo)檢測(cè)算法將目標(biāo)邊界劃分為多個(gè)錨框來(lái)預(yù)測(cè)每個(gè)目標(biāo)的偏移量和類(lèi)別,其進(jìn)一步又可以分為單階段法和雙階段法兩種[4]。其中,單階段方法直接生成回歸物體的類(lèi)別、位置信息,而雙階段方法則先生成樣本候選框,再對(duì)樣本分類(lèi),獲得目標(biāo)信息。由于需要獲取的錨框數(shù)量巨大,正負(fù)樣本嚴(yán)重不平衡,訓(xùn)練效率低,使得有錨框檢測(cè)算法存在運(yùn)算速度慢的突出問(wèn)題[5-7]。此外,錨框機(jī)制也引入了更多的超參數(shù),如錨框的數(shù)量、大小和寬高比等,這增加了算法的設(shè)計(jì)難度,使得數(shù)據(jù)集調(diào)優(yōu)困難,通用性較差。
無(wú)錨框檢測(cè)方法則將目標(biāo)框檢測(cè)轉(zhuǎn)變?yōu)閷?duì)多個(gè)關(guān)鍵點(diǎn)/域的檢測(cè),通過(guò)獲得關(guān)鍵點(diǎn)/域的位置信息來(lái)預(yù)測(cè)邊框[8],該方法不需要設(shè)計(jì)錨框,減少了對(duì)錨框的各種計(jì)算,節(jié)省了算力和時(shí)間,是目標(biāo)檢測(cè)領(lǐng)域一個(gè)全新的方向。根據(jù)關(guān)鍵點(diǎn)/域選取的不同,無(wú)錨框檢測(cè)可以歸結(jié)為關(guān)鍵點(diǎn)法和中心域法兩種。關(guān)鍵點(diǎn)法中的關(guān)鍵點(diǎn)主要為角點(diǎn)或者中心點(diǎn)。角點(diǎn)法是通過(guò)角點(diǎn)的特征信息匹配生成檢測(cè)框,避免了預(yù)設(shè)錨框帶來(lái)的計(jì)算冗余問(wèn)題[9],典型算法如CornerNet、CornerNet-Lite 等。中心點(diǎn)法通過(guò)關(guān)鍵點(diǎn)三元組(左上角點(diǎn)、右下角點(diǎn)和中心點(diǎn)),回歸得到目標(biāo)中心點(diǎn)的位置、偏移量等信息,預(yù)測(cè)目標(biāo)邊框,典型的算法有CenterNet、CenterNet++等。中心域法則利用全卷積算法,逐像素地直接預(yù)測(cè)物體的中心區(qū)域坐標(biāo)和邊界框的尺度信息,在特征提取過(guò)程中充分利用了圖像的整體信息,典型的算法如FSAF(Feature Selective Anchor-Free Module for Single-Shot Object Detection)、FCOS(Fully Convolutional One-Stage Object Detection)等[10-13]。
無(wú)錨框目標(biāo)檢測(cè)算法種類(lèi)眾多、適用范圍不盡相同,為了進(jìn)一步理清無(wú)錨框目標(biāo)檢測(cè)關(guān)鍵技術(shù)及網(wǎng)絡(luò)結(jié)構(gòu),本文作者總結(jié)了各代表性無(wú)錨框檢測(cè)算法的思想、網(wǎng)絡(luò)構(gòu)架及關(guān)鍵技術(shù),著重分析了各算法的特性,并進(jìn)一步通過(guò)實(shí)例實(shí)驗(yàn)定量對(duì)比了各種檢測(cè)算法的性能,對(duì)未來(lái)的研究進(jìn)行了總結(jié)和展望。
1.1.1 ConerNet 算法
ConerNet 算法是基于關(guān)鍵點(diǎn)檢測(cè)中經(jīng)典的架構(gòu)之一,主要包括1 個(gè)骨干網(wǎng)絡(luò)和2 個(gè)預(yù)測(cè)分支,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。骨干網(wǎng)絡(luò)通常是Hourglass-104,兩個(gè)預(yù)測(cè)分支分別定義為T(mén)op-Left 預(yù)測(cè)模塊和Bottom-Right 預(yù)測(cè)模塊,每個(gè)分支均含有1 個(gè)角點(diǎn)池化模塊和3 個(gè)輸出。3 個(gè)輸出分別是熱力圖(Headmaps)、偏移向量(Offset)以及嵌入向量(Embedding)。熱力圖含有角點(diǎn)的位置信息。偏移向量用來(lái)修正取整計(jì)算時(shí)損失的精度信息。最后通過(guò)聯(lián)合2 個(gè)分支輸出的嵌入向量,將同一個(gè)目標(biāo)的左上角和右下角的兩個(gè)角點(diǎn)成組,從而實(shí)現(xiàn)基于角點(diǎn)的無(wú)錨框目標(biāo)檢測(cè)。
圖1 ConerNet 網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 ConerNet network structure
角點(diǎn)池化(Corner Pooling)是ConerNet 算法的最主要?jiǎng)?chuàng)新,其核心是認(rèn)為輸出角點(diǎn)應(yīng)該是最大響應(yīng)點(diǎn)[14]。如圖2 所示,針對(duì)圖像中左上角點(diǎn),過(guò)當(dāng)前預(yù)測(cè)角點(diǎn)作兩條直線(xiàn),分別與圖像的u軸和v軸平行,當(dāng)兩條直線(xiàn)剛好“觸碰” 到目標(biāo)最邊緣點(diǎn)時(shí),則輸出當(dāng)前預(yù)測(cè)結(jié)果。通過(guò)利用圖像中額外信息,Corner Pooling 不僅大幅提高了角點(diǎn)預(yù)測(cè)的精確度,也大大提升了目標(biāo)的整體檢測(cè)效率。ConerNet 算法也存在著一些不足,比如:缺乏對(duì)檢測(cè)目標(biāo)全局信息的考慮、識(shí)別速度慢等。
圖2 Corner pooling 原理Fig.2 Corner pooling principle
1.1.2 CornerNet-Lite 算法
CornerNet-Lite 算法是由LAW 等[15]提出的旨在解決CornerNet 因追求準(zhǔn)確性而出現(xiàn)高昂的網(wǎng)絡(luò)處理代價(jià)的問(wèn)題,網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示。它是CornerNet兩個(gè)變體CornerNet-Saccade 與CornerNet-Squeeze 的組合,其中,前者通過(guò)引入注意機(jī)制,變單階段檢測(cè)為先裁剪興趣區(qū)域再做精細(xì)檢測(cè)的雙階段檢測(cè),從而減少了推理時(shí)間,提高了檢測(cè)精度。CornerNet-Squeeze 則通過(guò)采用輕量化的Hourglass 主干網(wǎng)絡(luò),減少了每個(gè)像素的處理量,提高了檢測(cè)效率[16]。盡管CornerNet-Lite 在速度和精度兩方面均有提高,但未能從根本上解決CornerNet-Saccade 和CornerNet-Squeeze 兩種變體模塊之間的矛盾沖突,前者需要強(qiáng)大的主干網(wǎng)絡(luò)以生成足夠準(zhǔn)確的特征圖,而后者則要通過(guò)減弱主干網(wǎng)絡(luò)的表達(dá)能力以實(shí)現(xiàn)加速,二者的融合仍有改善提高空間。
圖3 CornerNet-Lite 的網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 CornerNet-Lite network structure
1.2.1 CenterNet 算法
CenterNet 通過(guò)關(guān)鍵點(diǎn)三元組(左上角點(diǎn)、中心點(diǎn)、右下角點(diǎn))表示物體實(shí)現(xiàn)目標(biāo)檢測(cè),其原理是通過(guò)左上和右下2 個(gè)角點(diǎn)生成樣本目標(biāo)框,如果目標(biāo)框準(zhǔn)確,那么在其中心區(qū)域能夠檢測(cè)到目標(biāo)中心點(diǎn)的概率就會(huì)很高,反之亦然[17-18]。CenterNet 首先通過(guò)熱力圖預(yù)測(cè)關(guān)鍵點(diǎn),如角點(diǎn)的位置、類(lèi)別等信息;然后,根據(jù)偏移向量將角點(diǎn)映射到輸入圖像的相應(yīng)位置;接著,通過(guò)嵌入向量辨識(shí)角點(diǎn),從而利用同一個(gè)目標(biāo)的左上和右下角點(diǎn)生成預(yù)測(cè)框。針對(duì)每個(gè)預(yù)測(cè)框定義一個(gè)中心區(qū)域,根據(jù)左上和右下角點(diǎn)的置信度計(jì)算中心點(diǎn)的置信度,判斷中心區(qū)域是否含有中心點(diǎn),若有則保留預(yù)測(cè)框,實(shí)現(xiàn)目標(biāo)的檢測(cè)。如圖4 所示,CenterNet 的網(wǎng)絡(luò)結(jié)構(gòu)比較簡(jiǎn)單,它不僅可以進(jìn)行二維目標(biāo)的檢測(cè),還可以通過(guò)簡(jiǎn)單修改進(jìn)行三維目標(biāo)的檢測(cè)。與CornerNet 算法相比,盡管CenterNet 在感知目標(biāo)區(qū)域內(nèi)部信息能力有所提升,但是仍然不能夠充分利用目標(biāo)的內(nèi)部信息,以致當(dāng)多個(gè)目標(biāo)的中心點(diǎn)混疊在一起時(shí),多個(gè)目標(biāo)將會(huì)被訓(xùn)練成同一目標(biāo),從而只輸出一個(gè)中心點(diǎn),極大地影響了檢測(cè)結(jié)果。
圖4 CenterNet 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 CornerNet network structure
1.2.2 CenterNetV2 算法
針對(duì)誤檢問(wèn)題,ZHOU 等[19]進(jìn)一步提出了基于概率的雙階段目標(biāo)檢測(cè)方法CenterNetV2,其算法結(jié)構(gòu)與單階段和雙階段算法結(jié)構(gòu)對(duì)比如圖5 所示。該方法通過(guò)其邊界框中心的單個(gè)點(diǎn)來(lái)表示所檢測(cè)的目標(biāo),然后直接從中心位置的圖像特征回歸目標(biāo)大小、尺寸、3D 位置、姿態(tài)等信息。與基于關(guān)鍵點(diǎn)估計(jì)的目標(biāo)檢測(cè)相比,該算法的優(yōu)點(diǎn)有:(1)通過(guò)一個(gè)單階段算法得到預(yù)測(cè)框并對(duì)其賦予分值,但是該分值與分類(lèi)無(wú)關(guān),只是用以區(qū)分前景或背景。通過(guò)單階段算法較好地區(qū)分前景與背景,大大減少了無(wú)效的預(yù)測(cè)框,提高了推理速度。(2)利用極大似然估計(jì),設(shè)計(jì)了新的損失函數(shù),同時(shí)優(yōu)化了第一和第二階段的算法,提高了算法的檢測(cè)精度和檢測(cè)速度。
圖5 CenterNetV2 算法結(jié)構(gòu)對(duì)比Fig.5 Comparison of CenterNetV2 algorithm structures:(a)single-stage;(b)dual-stage;(c)probability dual phase
1.2.3 CenterNet++算法
為了改善性能,DONG 等[20]將特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)引入到CenterNet中,提出的CenterNet++算法能夠在多分辨率特征圖中進(jìn)行目標(biāo)檢測(cè),它具有更好的通用性和更豐富的感受視野。如圖6 所示,骨干網(wǎng)絡(luò)處理輸入圖像并輸出特征圖C3-C5,特征圖輸入到FPN 后輸出多分辨率特征圖P3-P7。針對(duì)每個(gè)分辨率的特征圖,分別用熱力圖和回歸兩種方法預(yù)測(cè)關(guān)鍵點(diǎn)。通過(guò)熱力圖預(yù)測(cè),生成3 種熱力圖預(yù)測(cè)角點(diǎn)和中心關(guān)鍵點(diǎn);通過(guò)回歸預(yù)測(cè)時(shí),為實(shí)現(xiàn)左上角點(diǎn)和右下角點(diǎn)的解耦,要將Ground-Truth 框分割成4 個(gè)完全相同的子框,分別用左上角的和右下角的子框來(lái)監(jiān)督回歸。在推理過(guò)程中,回歸向量作為線(xiàn)索,在相應(yīng)的熱力圖中找到最近的關(guān)鍵點(diǎn),以細(xì)化關(guān)鍵點(diǎn)的位置。最后利用有效的三元組關(guān)鍵點(diǎn)確定預(yù)測(cè)框。
圖6 CenterNet++多分辨網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 CenterNet++multi-resolution network structure
FCOS 是一種像素級(jí)目標(biāo)檢測(cè)方法,其通過(guò)各點(diǎn)像素逐點(diǎn)回歸鋪設(shè)錨點(diǎn)替代錨框來(lái)檢測(cè)目標(biāo)[21-22]。如圖7 所示,F(xiàn)COS 通常采用ResNet 或ResNeXt 作為基礎(chǔ)網(wǎng)絡(luò),C3-C5 的特征層作為FPN 的輸入,輸出P3-P7 作為檢測(cè)層送入后續(xù)檢測(cè)子網(wǎng)絡(luò),并在5 個(gè)檢測(cè)層分別對(duì)應(yīng)的理論感受中心鋪設(shè)錨點(diǎn),采用特定規(guī)則劃分錨點(diǎn)的正負(fù)樣本。在FCOS 中,5 個(gè)檢測(cè)層共享一個(gè)檢測(cè)子網(wǎng)絡(luò)。FCOS 最突出的特征是通過(guò)“中心度” 分支計(jì)算當(dāng)前位置與待預(yù)測(cè)目標(biāo)中心點(diǎn)之間的歸一化距離抑制差的檢測(cè)框,大幅度提高了總體性能。此外,F(xiàn)COS 是一種基于全卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)方法,它只需要非常小的修改就可以擴(kuò)展到其他視覺(jué)檢測(cè)應(yīng)用,比如實(shí)例分割、關(guān)鍵點(diǎn)檢測(cè)等。
圖7 FCOS 網(wǎng)絡(luò)結(jié)構(gòu)Fig.7 FCOS network structure
無(wú)論是否采用錨框,目標(biāo)檢測(cè)算法都需要預(yù)先定義目標(biāo)表示形式,比如矩形框或者中心點(diǎn)等,這實(shí)質(zhì)上是提供一種先驗(yàn)信息。受此啟發(fā),DUAN 等[23-25]提出一種更為泛化的錨點(diǎn),將若干個(gè)錨框組建成點(diǎn)集(Pointset Anchor),通過(guò)點(diǎn)集的分布,實(shí)現(xiàn)目標(biāo)檢測(cè)、實(shí)例分割、位姿估計(jì)等多種檢測(cè)任務(wù)。該網(wǎng)絡(luò)稱(chēng)為PointSetNet,如圖8 所示。該網(wǎng)絡(luò)實(shí)質(zhì)上是RetinaNet的一個(gè)擴(kuò)展,也就是根據(jù)不同的檢測(cè)任務(wù),用相應(yīng)的點(diǎn)集替換RetinaNet 中的錨框。
圖8 PointSetNet 網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 PointSetNet network structure
對(duì)上述的無(wú)錨框目標(biāo)檢測(cè)算法從原理機(jī)制、核心特性、優(yōu)缺點(diǎn)以及適用范圍等幾個(gè)角度進(jìn)行總結(jié)比較,結(jié)果如表1 所示。
表1 各類(lèi)無(wú)錨框目標(biāo)檢測(cè)模型總結(jié)Tab.1 Summary of various anchorless target detection models
(1)從原理機(jī)制看,無(wú)錨框目標(biāo)檢測(cè)算法的核心就是利用先驗(yàn)點(diǎn)信息,將檢測(cè)目標(biāo)轉(zhuǎn)換成點(diǎn)的檢測(cè),化整體為部分,依靠點(diǎn)集特征信息減少超參數(shù)組合優(yōu)化問(wèn)題[26],均衡訓(xùn)練所需的正負(fù)樣本,進(jìn)而減少了模型訓(xùn)練時(shí)參數(shù)的組合、讀取時(shí)間和計(jì)算量,提高了模型訓(xùn)練的效率。
(2)從檢測(cè)速度看,無(wú)錨框目標(biāo)檢測(cè)算法大多利用單階段檢測(cè)器,經(jīng)過(guò)單次檢測(cè)即可直接得到最終的檢測(cè)結(jié)果,其犧牲了檢測(cè)精度,換取了檢測(cè)速度的提高[27-29]。采用雙階段檢測(cè)器的無(wú)錨框目標(biāo)檢測(cè)如CenterNetV2,在保證足夠的準(zhǔn)確率和召回率的基礎(chǔ)上,對(duì)建議框進(jìn)行分類(lèi),尋找更精確的位置,提高了檢測(cè)精度,并依靠創(chuàng)新概率算法,彌補(bǔ)了檢測(cè)速度較慢的缺點(diǎn),達(dá)到了二者的平衡統(tǒng)一。
(3)從檢測(cè)精度看,無(wú)錨框目標(biāo)檢測(cè)算法在提高了檢測(cè)精度的同時(shí)也增加了網(wǎng)絡(luò)的復(fù)雜程度[30]。一些算法試圖向輕量化發(fā)展,如FCOS 通過(guò)引入中心度分支,抑制低質(zhì)量檢測(cè)框,以提高算法的效率和精度;CenternNet++則采用特征圖分塊、向量回歸等,減少內(nèi)存消耗和降低計(jì)算耗時(shí),盡可能地提高精度。
為進(jìn)一步定量對(duì)比無(wú)錨框目標(biāo)檢測(cè)算法的性能,以檢測(cè)精度和速度作為主要衡量指標(biāo),利用搭載了2張NVIDIA GTX 2080Ti 顯卡的Dell T7920 圖形工作站進(jìn)行算法實(shí)驗(yàn)。在Linux20.04 系統(tǒng)下,通過(guò)Anaconda 配置算法所需虛擬環(huán)境。為保證多種算法數(shù)據(jù)對(duì)比的嚴(yán)謹(jǐn),實(shí)驗(yàn)采用相同的深度學(xué)習(xí)Pytorch 框架。
利用常用的微軟MS COCO 數(shù)據(jù)集進(jìn)行算法的訓(xùn)練和測(cè)試。為了盡可能衡量模型性能,在MS COCO中隨機(jī)選取包含自然圖片、動(dòng)物和生活用品等80 種不同類(lèi)型的目標(biāo)圖片(見(jiàn)圖9)。這些圖片背景復(fù)雜,目標(biāo)數(shù)量較多,目標(biāo)尺寸小,檢測(cè)任務(wù)具有一定的難度,其結(jié)果可以作為一個(gè)衡量標(biāo)準(zhǔn)。
圖9 MS COCO 數(shù)據(jù)集圖片F(xiàn)ig.9 MS COCO dataset image
實(shí)驗(yàn)過(guò)程中,除算法所需骨干網(wǎng)絡(luò)不同外,采用相同訓(xùn)練參數(shù)。輸入圖像尺寸為512 像素×512 像素;學(xué)習(xí)率(Learning Rate)為1.25×10-4;批次圖片個(gè)數(shù)(Batch_Size)為32;訓(xùn)練總輪次(Num_Epochs)為500;加載數(shù)據(jù)集線(xiàn)程數(shù)(Num_Workers)為10。運(yùn)行后獲得每個(gè)模型最佳檢測(cè)指標(biāo)如表2 所示。
表2 基于MS COCO 數(shù)據(jù)集的多種目標(biāo)檢測(cè)模型性能對(duì)比Tab.2 Comparison of the performance of multiple object detection models based on MS COCO dataset
CornerNet 是最早期的無(wú)錨框目標(biāo)檢測(cè)方法之一,通過(guò)創(chuàng)新角點(diǎn)池化算法,其精度遠(yuǎn)高于同時(shí)期有錨框目標(biāo)檢測(cè)方法。相比SSD 和YOLOv3,其mAP(Mean Average Percision)值分別高了35.37%和28.35%,而FPS(Frames Per Second)則又分別低了77.25%和90.49%,說(shuō)明速度有所降低。為此,CornerNet -Squeeze 通過(guò)采用輕量化的Hourglass 主干網(wǎng)絡(luò),減少每個(gè)像素的處理量,以提高檢測(cè)效率。CornerNet-Squeeze 的mAP 值相比CornerNet 略有下降,降低了18.29%。CornerNet-Squeeze 的FPS 值相比CornerNet則有顯著提高,提高了近7 倍。CornerNet-Saccade 則通過(guò)引入注意機(jī)制,變單階段檢測(cè)為雙階段檢測(cè)[31],減少推理時(shí)間,以提高檢測(cè)精度。相比CornerNet,CornerNet-Saccade 的mAP 值和FPS 值均有一定程度的提高,分別提高了3.56%和67.44%。盡管Corner-Net-Saccade 和CornerNet-Squeeze 相比CornerNet 在目標(biāo)檢測(cè)性能方面有了不同程度的提高,但CornerNet-Saccade 和CornerNet-Squeeze 相結(jié)合的CornerNet-Lite算法卻無(wú)法實(shí)現(xiàn)檢測(cè)精度與速度的較好平衡,Corner-Net-Lite 的算法融合問(wèn)題有待進(jìn)一步解決。
CenterNet 也是一種通過(guò)關(guān)鍵點(diǎn)進(jìn)行目標(biāo)檢測(cè)的方法,在CornerNet 的角點(diǎn)池化算法基礎(chǔ)上,提出了中心點(diǎn)池化和候選角點(diǎn)池化算法,網(wǎng)絡(luò)能夠更加聚焦于中心點(diǎn)特征信息的提取,有利于提高檢測(cè)精度[32]。CenterNet、CenterNetV2 以及CenterNet++的mAP 值分別達(dá)到了45.0%、56.4% 和44.6%,平均值為48.67%;而CornerNet、CornerNet-Squeeze 以及CornerNet-Saccade 的平均mAP 值為40.03%;CenterNet及其兩種改進(jìn)方法的mAP 均值相比CornerNet 及其兩種改進(jìn)方法的mAP 均值提高了21.57%。CenterNet及其兩種改進(jìn)方法的mAP 均值比SSD 和YOLOv3 的mAP 值分別提高了56.48%、48.37%。雖然Center-Net 及其改進(jìn)方法在精度上有了一定程度的提高,但是在檢測(cè)速度方面,與CornerNet 及其改進(jìn)方法相比,幾乎沒(méi)有改變。CenterNet 及其兩種改進(jìn)方法的FPS均值為14.90,而CornerNet 及其兩種改進(jìn)方法的FPS均值為15.13。在CenterNet、CenterNetV2 以及CenterNet++三種算法中,CenterNet++通過(guò)采用FPN 和Res2Net,在檢測(cè)精度和速度上達(dá)到了較好的平衡[33-34],其mAP 值和FPS 值相比SSD 分別提高了43.41%和61.38%,而相比YOLOv3 在精度方面也提高了35.98%。
通過(guò)FPN 結(jié)構(gòu)的多級(jí)預(yù)測(cè)機(jī)制,F(xiàn)COS 和Point-SetNet 的檢測(cè)精度顯著提高。FPN 作為原始主干網(wǎng)絡(luò)的附加項(xiàng),融合在卷積神經(jīng)網(wǎng)絡(luò)之中。通過(guò)自下而上的特征提取和自上而下的多層采樣兩個(gè)部分,提取不同尺度的特征信息,達(dá)到特征融合的目的,在兼顧速度的同時(shí)提高了準(zhǔn)確率。FCOS 和PointSetNet 的mAP值分別為49.0%和46.2%,相比SSD、YOLOv3、CornerNet、CenterNet 分別提高了57.56%、49.39%、16.39%、8.89% 和 48.55%、40.85%、9.74%、2.67%,說(shuō)明FCOS 具有更優(yōu)的檢測(cè)精度。
綜上所述,與有錨框的檢測(cè)網(wǎng)絡(luò)相比,無(wú)錨框目標(biāo)檢測(cè)算法提高了檢測(cè)精度,縮短了運(yùn)算時(shí)間。本文作者針對(duì)7 種具有代表性的無(wú)錨框目標(biāo)檢測(cè)方法進(jìn)行了綜合分析,根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)的不同,分析其核心特性及優(yōu)缺點(diǎn),最后運(yùn)用數(shù)據(jù)集測(cè)試其性能,為算法選用提供借鑒。通過(guò)上述算法比較與歸納,總結(jié)出無(wú)錨框目標(biāo)檢測(cè)算法的未來(lái)研究方向:
(1)輕量化。為了易于部署和運(yùn)用,深度學(xué)習(xí)網(wǎng)絡(luò)結(jié)構(gòu)應(yīng)逐步減少模型中所需要的參數(shù)組合,減少計(jì)算量。如CornerNet-Lite 的優(yōu)化角度,基于關(guān)鍵點(diǎn)的檢測(cè)方式,需要大量關(guān)鍵點(diǎn)特征信息,在點(diǎn)集信息的處理上需要耗費(fèi)大量算力,優(yōu)化輕量化網(wǎng)絡(luò)結(jié)構(gòu),使其能更快更好地完成檢測(cè)任務(wù),輕量化是提升無(wú)錨框檢測(cè)算法實(shí)用性的重要方向。
(2)雙階段檢測(cè)器的運(yùn)用。無(wú)錨框檢測(cè)網(wǎng)絡(luò)的檢測(cè)器大多以單階段檢測(cè)器為主,雙階段檢測(cè)器相比單階段檢測(cè)器,多了一步候選框的預(yù)檢測(cè),這無(wú)疑加大了網(wǎng)絡(luò)運(yùn)算所需時(shí)間,但同時(shí)也很大程度上提高了檢測(cè)精度,減少了相似點(diǎn)之間的誤檢測(cè)概率。只有少數(shù)的如CenterNet++運(yùn)用了自主優(yōu)化的雙階段檢測(cè)器,達(dá)到了速度和精度的相對(duì)平衡。在無(wú)錨框檢測(cè)網(wǎng)絡(luò)中運(yùn)用雙階段檢測(cè)器,并對(duì)其優(yōu)化,縮小網(wǎng)絡(luò)計(jì)算量,提高特征獲取能力是一大研究方向。
(3)多尺度目標(biāo)的檢測(cè)。無(wú)錨框的檢測(cè)方法大多依賴(lài)目標(biāo)的關(guān)鍵點(diǎn)信息對(duì)目標(biāo)進(jìn)行定位檢測(cè)。圖像的尺寸大小、關(guān)鍵點(diǎn)信息是否清晰都會(huì)對(duì)整個(gè)檢測(cè)網(wǎng)絡(luò)產(chǎn)生影響,并且未來(lái)檢測(cè)方向大多以高分辨率圖片、視頻為主,因此需要讓網(wǎng)絡(luò)結(jié)構(gòu)能適應(yīng)多尺度的對(duì)象??梢酝ㄟ^(guò)調(diào)整上下采樣次數(shù)、卷積層感受野大小、融合注意力模塊等方法來(lái)優(yōu)化無(wú)錨框網(wǎng)絡(luò)結(jié)構(gòu),提升其檢測(cè)精度及魯棒性。
(4)有/無(wú)錨框算法的融合。無(wú)錨框的檢測(cè)方法實(shí)質(zhì)上并沒(méi)有拋開(kāi)錨框這一概念,只是將整個(gè)目標(biāo)的錨框框縮小轉(zhuǎn)移到了目標(biāo)的各個(gè)關(guān)鍵點(diǎn)上,并沒(méi)有打破錨框的局限性,仍然運(yùn)用了微小矩形框完成檢測(cè)流程,所以需要進(jìn)一步研究關(guān)鍵點(diǎn)的檢測(cè)機(jī)制,真正融合基于錨框和無(wú)錨框兩種檢測(cè)方法,提高檢測(cè)效率是未來(lái)研究的一個(gè)方向。