付苗苗,鄧淼磊,2,張德賢,2
1.河南工業(yè)大學(xué) 信息科學(xué)與工程學(xué)院,鄭州 450001
2.河南省糧食信息處理國(guó)際聯(lián)合實(shí)驗(yàn)室,鄭州 450001
作為計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn),目標(biāo)檢測(cè)在遙感、自動(dòng)駕駛等領(lǐng)域有著重要的應(yīng)用。過去二十年目標(biāo)檢測(cè)是以傳統(tǒng)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)為主,傳統(tǒng)算法存在精度低、速度慢、計(jì)算復(fù)雜等缺點(diǎn),因此在2012年AlexNet[1]出現(xiàn)之后,目標(biāo)檢測(cè)算法開啟了卷積神經(jīng)網(wǎng)絡(luò)CNN(convolutional neural network)為主的深度學(xué)習(xí)時(shí)代。基于深度學(xué)習(xí)的檢測(cè)算法是根據(jù)滑動(dòng)窗口和錨點(diǎn)(anchor)窮舉出目標(biāo)對(duì)象可能出現(xiàn)的所有邊框(也稱為錨框),然后進(jìn)行分類和回歸,錨框也被認(rèn)為是檢測(cè)模型獲取高精度的重要組件之一,但是模型的性能和泛化能力也受到錨框設(shè)計(jì)的限制:(1)檢測(cè)結(jié)果對(duì)于錨框個(gè)數(shù)、尺度、縱橫比等超參十分敏感,模型需要對(duì)這些參數(shù)仔細(xì)微調(diào);(2)基于錨的檢測(cè)都是密集檢測(cè),錨框產(chǎn)生的計(jì)算繁瑣復(fù)雜,增加時(shí)空成本;(3)錨框的尺度和長(zhǎng)寬比都是預(yù)先定義的,不適用于形狀變化較大的對(duì)象,尤其是小目標(biāo),模型的泛化能力低;(4)多數(shù)錨框都是背景類的負(fù)樣本,因此算法容易存在正負(fù)樣本不平衡問題。為了解決錨框帶來的限制,近幾年以FCOS、CornerNet為代表的無錨點(diǎn)碰撞檢測(cè)成為了檢測(cè)領(lǐng)域的研究熱點(diǎn),這類方法與基于錨點(diǎn)的檢測(cè)算法相比,縮減超參數(shù)數(shù)量的同時(shí)提升了檢測(cè)精度。
在無錨檢測(cè)技術(shù)發(fā)展的同時(shí),Transformer[2]也開始在CV(computer vision)領(lǐng)域大放異彩。早期Transformer在CV領(lǐng)域主要被用于序列信息挖掘(如視頻任務(wù)的時(shí)序特征融合),2020年,Dosovitskiy等人[3]提出的ViT(visual transformer)開始擴(kuò)大Transformer的使用范圍,在圖像分類、目標(biāo)檢測(cè)、語(yǔ)義分割、圖像生成和增強(qiáng)等視覺任務(wù)都有著重要應(yīng)用[4]。在Transformer出現(xiàn)之前,CNN一直都是目標(biāo)檢測(cè)任務(wù)的設(shè)計(jì)模式,但是CNN本身的特性(即卷積核的局部計(jì)算)會(huì)導(dǎo)致網(wǎng)絡(luò)缺少對(duì)圖像的全局理解,不能建模特征之間的依賴關(guān)系,無法充分利用上下文信息,而Transformer的自注意力機(jī)制可以建模對(duì)象間的遠(yuǎn)程依賴,輕松獲取目標(biāo)全局特征,不需要像CNN那樣通過疊加大量卷積加深網(wǎng)絡(luò)深度來建立圖像全局聯(lián)系,因此基于Transformer的目標(biāo)檢測(cè)算法也得到了研究者的廣泛關(guān)注。
目前無錨檢測(cè)和基于Transformer的檢測(cè)是近幾年的研究熱點(diǎn),國(guó)內(nèi)有關(guān)這兩類算法的綜述文獻(xiàn)較少,針對(duì)此情況,本文首先全面總結(jié)了深度學(xué)習(xí)時(shí)期的檢測(cè)模型優(yōu)缺點(diǎn)以及這些模型的實(shí)驗(yàn)結(jié)果,然后將近五年的檢測(cè)算法按照基于Anchor-free檢測(cè)和基于Transformer檢測(cè)兩種類型,從網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)缺點(diǎn)、適用場(chǎng)景等方面進(jìn)行歸納總結(jié),介紹了目標(biāo)檢測(cè)常用數(shù)據(jù)集以及算法的應(yīng)用現(xiàn)狀,最后對(duì)目標(biāo)檢測(cè)未來的發(fā)展趨勢(shì)進(jìn)行了展望。如圖1,按照傳統(tǒng)算法、深度學(xué)習(xí)和Transformer三個(gè)角度對(duì)現(xiàn)有目標(biāo)檢測(cè)方法進(jìn)行分類。
圖1 目標(biāo)檢測(cè)算法分類圖Fig.1 Classification diagram of object detection algorithm
Anchor機(jī)制在Faster R-CNN算法中首次提出,主要是為了解決Fast R-CNN在提取候選框時(shí)存在的冗余計(jì)算以及時(shí)空耗費(fèi)等問題。Anchor繼承了滑動(dòng)窗口和區(qū)域提議的思想,將圖像劃分為離散的塊,然后根據(jù)預(yù)定義的大小生成一系列邊框,由Anchor生成的邊框也稱為錨框,然后根據(jù)具體規(guī)則將這些錨框分為正負(fù)樣本,并為它們計(jì)算額外的偏移回歸來修正邊框位置。與滑動(dòng)窗口和基于區(qū)域提議算法不同,它們是重復(fù)計(jì)算每個(gè)窗口或提議的特征,錨框是一種特征共享的滑動(dòng)窗口,它利用CNN生成的特征圖實(shí)現(xiàn),避免重復(fù)的特征計(jì)算,加快了檢測(cè)速度。錨框作為回歸參考和分類候選,用于預(yù)測(cè)兩階段算法中的區(qū)域建議或是單階段檢測(cè)器的最終邊框,已經(jīng)被推廣到多個(gè)算法中,如Faster R-CNN、YOLO v2等等,成為了現(xiàn)代檢測(cè)器必不可少的組件。目前基于深度學(xué)習(xí)的檢測(cè)算法多數(shù)都是基于區(qū)域提議和錨框進(jìn)行分類回歸,均屬于Anchor-based算法,也有個(gè)別算法沒有采用預(yù)定義邊框,如Dense Box和YOLO v1,屬于早期的Anchor-free算法。表1列舉了經(jīng)典的深度學(xué)習(xí)模型的性能對(duì)比[5-21],表2對(duì)這些算法進(jìn)行分類并總結(jié)了優(yōu)缺點(diǎn)[5-21]。
表1 基于深度學(xué)習(xí)的檢測(cè)模型性能對(duì)比Table 1 Performance comparison of detection models based on deep learning
表2 基于深度學(xué)習(xí)的檢測(cè)模型Table 2 Detection models based on deep learning
基于Anchor-based的算法在實(shí)現(xiàn)過程中存在泛化能力差、計(jì)算冗余、正負(fù)樣本失衡等問題,針對(duì)這些缺陷,研究者們提出了許多無錨框檢測(cè)算法,這類算法移除了預(yù)設(shè)錨框的過程,直接預(yù)測(cè)物體邊框。無錨框檢測(cè)算法按照算法特點(diǎn)可以劃分為以下五種類型:基于關(guān)鍵點(diǎn)檢測(cè)、基于密集預(yù)測(cè)、基于新的樣本劃分策略、基于稀疏先驗(yàn)框以及Anchor-free和Anchor-based相結(jié)合的算法。
1.2.1 基于關(guān)鍵點(diǎn)檢測(cè)
基于關(guān)鍵點(diǎn)的目標(biāo)檢測(cè)算法主要包含提取關(guān)鍵點(diǎn)、分組配對(duì)以及分類預(yù)測(cè)三個(gè)步驟。在提取關(guān)鍵點(diǎn)階段,采用卷積神經(jīng)網(wǎng)絡(luò)(如HourglassNet[22])提取關(guān)鍵點(diǎn)熱圖、嵌入向量及預(yù)測(cè)偏移等信息;在分組配對(duì)階段,利用預(yù)定義的分組算法組合成對(duì)的關(guān)鍵點(diǎn)表示預(yù)測(cè)框,過濾掉不符合要求的錯(cuò)誤框;段在分類預(yù)測(cè)階使用已有的類別信息對(duì)產(chǎn)生的預(yù)測(cè)框進(jìn)行標(biāo)簽分配和回歸。
2018年,Law等人[23]提出的CornerNet是首個(gè)采用關(guān)鍵點(diǎn)(左上角點(diǎn)和右下角點(diǎn))建模對(duì)象的算法,通過組合成對(duì)的角點(diǎn)表示預(yù)測(cè)框。該模型利用骨干網(wǎng)絡(luò)輸出角點(diǎn)熱圖同時(shí)預(yù)測(cè)角點(diǎn)的嵌入向量,然后使用關(guān)聯(lián)嵌入法以向量之間的距離為依據(jù)分組角點(diǎn)組合預(yù)測(cè)框,采用角池化層豐富角點(diǎn)的邊界信息,最后對(duì)角點(diǎn)組成的預(yù)測(cè)框進(jìn)行分類和定位。CornerNet的精度相對(duì)單階段算法有所提升,但推理速度過慢,無法滿足實(shí)時(shí)交互需求,在分組角點(diǎn)時(shí)缺少物體內(nèi)部信息,產(chǎn)生大量誤檢框。針對(duì)CornerNet效率低下問題,原作者繼續(xù)優(yōu)化提出CornerNet-lite[24],包含兩個(gè)CornerNet變體:CornerNet-Saccade引入注意力機(jī)制有重點(diǎn)地處理圖像像素,通過減少模型需要處理的像素個(gè)數(shù)提升檢測(cè)效率,相比于CornerNet速度增加了6倍且精度提升了1%,實(shí)現(xiàn)了在不犧牲模型準(zhǔn)確率的情況下提高速度;CornerNet-Squeeze借鑒SqueezeNet[25]和MobileNets[26]的思想,引入結(jié)構(gòu)緊湊的輕量級(jí)骨干網(wǎng)絡(luò)減少像素處理步驟,加速圖像的前向處理,改善了原始Hourglass-104參數(shù)巨大、結(jié)構(gòu)復(fù)雜的問題,在保證精度的情況下滿足了實(shí)時(shí)檢測(cè)速度,性能優(yōu)于YOLO v3。但遺憾的是,兩個(gè)變體結(jié)合的性能不理想,主要是因?yàn)镃ornerNet-Squeeeze緊湊的網(wǎng)絡(luò)結(jié)構(gòu)無法提供CornerNet-Saccade所需的精準(zhǔn)特征圖,存在一定的局限性。
針對(duì)CorneNet誤檢框問題,Duan等人[27]提出CenterNet,在角點(diǎn)基礎(chǔ)上增加一個(gè)中心點(diǎn)表示對(duì)象,首先組合角點(diǎn)形成預(yù)測(cè)框,然后借助中心點(diǎn)探索預(yù)測(cè)框的內(nèi)部區(qū)域,通過檢測(cè)該內(nèi)部區(qū)域是否存在同一類別的中心點(diǎn)來決定是否保留預(yù)測(cè)框,同時(shí)提出中心池化和級(jí)聯(lián)角池化模塊,前者有助于中心點(diǎn)具有更多可識(shí)別的視覺信息,后者為角點(diǎn)特征提供更加豐富的關(guān)聯(lián)物體的邊界信息。通過補(bǔ)充目標(biāo)區(qū)域內(nèi)部信息,CenterNet能夠過濾掉大部分誤檢框,提高了精度和召回率,但是在目標(biāo)密集場(chǎng)景中效果不好。
針對(duì)關(guān)鍵點(diǎn)分組算法,Dong等人[28]指出CornerNet分組角點(diǎn)采用的嵌入向量預(yù)測(cè)是基于外觀特征的,網(wǎng)絡(luò)會(huì)為相似物體預(yù)測(cè)相似的嵌入向量,因此即使相似物體距離較遠(yuǎn)也容易產(chǎn)生錯(cuò)誤邊框。對(duì)于CenterNet而言,雖然通過中心點(diǎn)過濾掉了錯(cuò)誤邊框,但是不能處理密集場(chǎng)景。為此,他們重新定義關(guān)鍵點(diǎn)分組算法,提出了CentripetalNet[28],基于向心偏移值實(shí)現(xiàn)角點(diǎn)配對(duì),認(rèn)為如果兩個(gè)角點(diǎn)屬于同一個(gè)目標(biāo)邊框,則它們的向心偏移值是相近的。CentripetalNet通過加入關(guān)鍵點(diǎn)的位置信息在很大程度上緩解了相似物體之間的錯(cuò)誤配對(duì)問題,同時(shí)設(shè)計(jì)跨星形可變形卷積學(xué)習(xí)目標(biāo)的上下文信息,豐富角點(diǎn)視覺特征。同年,Zhou等人[29]受到極值點(diǎn)注釋邊框的啟發(fā),提出了ExtremeNet[30]網(wǎng)絡(luò),借助擁有豐富特征信息的極值點(diǎn)和中心點(diǎn)表示邊框,基于幾何計(jì)算方式進(jìn)行關(guān)鍵點(diǎn)分組,整個(gè)檢測(cè)框架是完全基于外觀的,但是關(guān)鍵點(diǎn)數(shù)量增加至5個(gè),顯著增加計(jì)算開銷,通過暴力窮舉所有可能的極值點(diǎn)組合,算法的復(fù)雜度大大增加。
1.2.2 基于密集預(yù)測(cè)
基于密集預(yù)測(cè)的檢測(cè)算法以錨點(diǎn)替代錨框?qū)崿F(xiàn)物體檢測(cè),檢測(cè)點(diǎn)和點(diǎn)到邊框的距離進(jìn)行分類回歸。作為全卷積無錨單級(jí)檢測(cè)模型,F(xiàn)COS[31]以逐像素方式預(yù)測(cè)對(duì)象實(shí)例,網(wǎng)絡(luò)結(jié)構(gòu)和RetinaNet一樣,都是采用特征金字塔[32],不同的是,F(xiàn)COS在采樣過程中計(jì)算所有特征層每個(gè)位置到真實(shí)框四條邊的距離作為回歸目標(biāo)值,然后根據(jù)每個(gè)特征層上設(shè)定好的閾值判斷該回歸目標(biāo)值是否滿足條件,若不滿足則將對(duì)應(yīng)位置作為負(fù)樣本不進(jìn)行邊框回歸,以這種多級(jí)預(yù)測(cè)方式在一定程度上緩解了重疊邊框造成的歧義模糊問題;為了過濾掉那些遠(yuǎn)離目標(biāo)中心點(diǎn)產(chǎn)生的低質(zhì)量邊框,F(xiàn)COS在回歸分支末尾增加了一個(gè)額外的center-ness分支降低這些邊框的分?jǐn)?shù),從而使得這些低質(zhì)量邊框在后處理時(shí)有很大概率被過濾掉,提高召回率。FCOS網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,不涉及參數(shù)的啟發(fā)式調(diào)整,但是以逐像素的方式預(yù)測(cè)影響檢測(cè)速度。
與FCOS類似,F(xiàn)oveaBox[33]同樣采用了特征金字塔,利用不同層級(jí)預(yù)測(cè)不同尺寸的目標(biāo),還引入超參數(shù)η控制不同特征層的重合度,進(jìn)一步調(diào)整每個(gè)特征層的尺度范圍,如此一來,F(xiàn)oveaBox可以將目標(biāo)分配在多個(gè)特征層級(jí)上,增加每層的訓(xùn)練樣本實(shí)現(xiàn)更穩(wěn)健的預(yù)測(cè)。在定義正負(fù)樣本時(shí),F(xiàn)oveaBox把真實(shí)框映射在特征圖上并進(jìn)行縮放,縮放區(qū)域內(nèi)的像素點(diǎn)被認(rèn)為是正樣本點(diǎn),然后計(jì)算正樣本點(diǎn)到真實(shí)框的距離進(jìn)行邊框預(yù)測(cè)。FoveaBox網(wǎng)絡(luò)結(jié)構(gòu)簡(jiǎn)單,性能更好,可以同時(shí)優(yōu)化相鄰特征層,但是在實(shí)現(xiàn)樣本分類時(shí),正樣本區(qū)域通常只占一小部分,造成正負(fù)樣本不平衡。
1.2.3 基于新的標(biāo)簽分配策略
2020年,Zhang等人[34]深入對(duì)比分析單階段算法RetinaNet和無錨算法FCOS,發(fā)現(xiàn)二者的性能差異是由不同正負(fù)樣本定義造成的,他們認(rèn)為Anchor-based和Anchor-free算法的本質(zhì)區(qū)別就在于此。為此,他們提出了同時(shí)適用于Anchor-based和Anchor-free算法的樣本選擇策略—自適應(yīng)樣本選擇ATSS(adaptive training sample selection)[34],進(jìn)行樣本分配時(shí)首先對(duì)每個(gè)真實(shí)框,先在每個(gè)特征層級(jí)上基于L2距離選取k個(gè)較近錨框(或滿足條件的錨點(diǎn))作為候選正樣本,然后計(jì)算這些候選正樣本和真實(shí)框的IoU值,以這些IoU值的均值和方差之和為閾值,選擇IoU值大于閾值的候選正樣本作為最終正樣本。ATSS實(shí)現(xiàn)了根據(jù)對(duì)象特征自動(dòng)選擇正負(fù)樣本,但是閾值的確定還是依靠先驗(yàn)信息,對(duì)閾值的設(shè)計(jì)缺乏可解釋性,調(diào)參痕跡較重[35]。
與ATSS不同,Sun等人[36]從目標(biāo)檢測(cè)的特點(diǎn)出發(fā),他們認(rèn)為就目標(biāo)檢測(cè)這種多任務(wù)(分類和定位)而言,僅依靠定位損失進(jìn)行正負(fù)樣本分配容易產(chǎn)生高置信度分?jǐn)?shù)的重復(fù)邊框,使得后處理成為必要組件,無法實(shí)現(xiàn)端到端檢測(cè)。因此,他們將分類損失也加入到樣本分配依據(jù)中,提出了最小代價(jià)分配策略,并在此基礎(chǔ)上實(shí)現(xiàn)了檢測(cè)器OneNet[36],基于最小的分類和定位損失之和為每個(gè)真實(shí)框分配正樣本,實(shí)現(xiàn)了一對(duì)一分配,不需要NMS后處理,不存在人工設(shè)計(jì)準(zhǔn)則。
1.2.4 基于稀疏先驗(yàn)
目前的目標(biāo)檢測(cè)算法都是密集檢測(cè)(Faster R-CNN、YOLO等),盡管取得了較好的性能,但是也存在一些局限性,如產(chǎn)生冗余邊框、標(biāo)簽的多對(duì)一分配問題等等。為了解決這些限制,Sun等人[37]提出完全的稀疏提議算法Sparse R-CNN,以少量的起始框預(yù)測(cè)所有目標(biāo)對(duì)象,并且每個(gè)邊框不需要和圖像全局特征進(jìn)行交互,實(shí)現(xiàn)了稀疏提議和稀疏特征交互兩個(gè)特性。該模型的輸入除了圖像還包含一組固定數(shù)量的目標(biāo)提議框和提議特征,前者作為區(qū)域提議,后者為這些區(qū)域提議編碼更深層次的特征信息,二者是一一對(duì)應(yīng)的,在網(wǎng)絡(luò)中隨著其他參數(shù)一起更新學(xué)習(xí);同時(shí)提出動(dòng)態(tài)實(shí)例交互頭,提取每個(gè)提議框的特征然后將其送入專屬檢測(cè)頭中,與對(duì)應(yīng)的提議特征進(jìn)行交互得到最終結(jié)果。Sparse R-CNN實(shí)現(xiàn)了預(yù)測(cè)框的一對(duì)一優(yōu)化,不存在正負(fù)樣本不均衡問題,也不需要NMS處理冗余框,但是網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜度增加,盡管精度較高,但對(duì)于工業(yè)和商業(yè)用途其收益和復(fù)雜度不成正比,部署起來較為困難。
1.2.5 Anchor-free和Anchor-based結(jié)合的算法
2019年,Zhu等人[38]指出與特征金字塔相結(jié)合的檢測(cè)算法都是基于先驗(yàn)知識(shí)將錨框分配到各個(gè)特征層級(jí)上,然后根據(jù)錨框和真實(shí)框的交并比進(jìn)行采樣,這種啟發(fā)式的特征選擇所選的特征層對(duì)于目標(biāo)來說可能不是最優(yōu)的。特征選擇無錨模塊FSAF(fearure selection Anchor-free)[38]是由兩個(gè)卷積層組成的Anchor-free分支,將其添加在RetinaNet的特征金字塔后面,在訓(xùn)練過程中計(jì)算目標(biāo)在所有特征層級(jí)上Anchor-free分支損失函數(shù)的和,然后選擇損失最小的特征層學(xué)習(xí)目標(biāo),實(shí)現(xiàn)了根據(jù)實(shí)例內(nèi)容動(dòng)態(tài)地為每個(gè)實(shí)例選擇最合適的特征層級(jí),而不僅僅是依靠目標(biāo)邊框的尺度大小,解決了Anchor對(duì)特征選擇的限制。FSAF可以插入到具有特征金字塔的單級(jí)檢測(cè)器中,也可以和Anchor-based分支并行增強(qiáng)特征實(shí)現(xiàn)更有效的預(yù)測(cè),但是動(dòng)態(tài)分配特征層時(shí)僅實(shí)現(xiàn)了物體尺度上的分配,沒有實(shí)現(xiàn)空間位置分配,即沒有決定具體應(yīng)該由分配層的哪個(gè)邊界框負(fù)責(zé)。
1.2.6 算法小結(jié)
基于Anchor-based的檢測(cè)算法以鋪設(shè)的錨框?yàn)闄z測(cè)起點(diǎn),對(duì)錨框的類別和位置進(jìn)行矯正,Anchor-free算法動(dòng)機(jī)就是移除掉錨框、減少超參、增加靈活性。表3總結(jié)了各類Anchor-free算法在COCO數(shù)據(jù)集的表現(xiàn);表4總結(jié)了算法的檢測(cè)機(jī)制、優(yōu)缺點(diǎn)及適用場(chǎng)景。結(jié)合表3和表4可以得出以下信息:(1)基于關(guān)鍵點(diǎn)算法先檢測(cè)關(guān)鍵點(diǎn),然后利用特定分組算法進(jìn)行配對(duì)框定物體,是一種全新的檢測(cè)流程,但是分組關(guān)鍵點(diǎn)拖累檢測(cè)速度,效率低下。(2)基于密集預(yù)測(cè)方法主要是鋪設(shè)錨點(diǎn)代替錨框檢測(cè)物體,采用多尺度預(yù)測(cè)提高檢測(cè)精度,減少大量超參數(shù),簡(jiǎn)化計(jì)算,檢測(cè)流程簡(jiǎn)單,檢測(cè)速度相對(duì)較快。(3)ATSS和OneNet從不同角度解決正負(fù)樣本不平衡問題,其中優(yōu)化的ATSS甚至可以達(dá)到50.7%AP,遠(yuǎn)超之前的模型,OneNet在精度和速度方面有著很好的平衡,可以在保持精度的前提下去掉NMS后處理,簡(jiǎn)化網(wǎng)絡(luò)結(jié)構(gòu),實(shí)現(xiàn)端到端檢測(cè)。(4)作為第一個(gè)完全稀疏算法,Sparse R-CNN用最少的候選框獲得了最高的精度,完美詮釋了什么是少而精,但是對(duì)于工業(yè)用途來說其收益不足以抵消高復(fù)雜度,下一步研究是否能夠優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)解決高復(fù)雜度問題。(5)目前Anchor-free算法在不能保證精確回歸的前提下,容易產(chǎn)生較大的誤差,回歸的邊框坐標(biāo)可能跟實(shí)際邊框差距較大。由表3也可看出大部分算法的精度可以和兩階段算法相媲美,但是檢測(cè)速度過慢,難以用于實(shí)時(shí)檢測(cè)場(chǎng)景,個(gè)別算法擁有實(shí)時(shí)速度卻不能保證高精度。盡管Anchor-free算法在性能上沒有特別突出的表現(xiàn),但是思想值得借鑒,后續(xù)可以研究如何將這些算法拓展到更多視覺任務(wù)中,探索更加優(yōu)秀的網(wǎng)絡(luò)結(jié)構(gòu)提高模型性能。
表3 Anchor-free算法在COCO數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果Table 3 Experimental results of Anchor-free algorithm on COCO dataset
表4 基于Anchor-free算法總結(jié)Table 4 Summary based on Anchor-free algorithm
基于Transformer的目標(biāo)檢測(cè)算法根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)可以分為兩類:基于Transformer的集合預(yù)測(cè)方法(Transformer neck)以及基于Transformer的骨干網(wǎng)絡(luò)方法(Transformer backbone),前者是基于CNN提取特征、Transformer實(shí)現(xiàn)預(yù)測(cè)的網(wǎng)絡(luò)結(jié)構(gòu),后者是采用Transformer作為骨干網(wǎng)絡(luò)、CNN實(shí)現(xiàn)檢測(cè)的網(wǎng)絡(luò)結(jié)構(gòu)。
1.3.1 Transformer neck
DETR(detection Transformer)[39]是首個(gè)基于Transformer的端到端檢測(cè)模型,把對(duì)象檢測(cè)看成直接集合預(yù)測(cè)問題,解耦了預(yù)測(cè)結(jié)果和目標(biāo)位置的嚴(yán)格綁定關(guān)系。該模型采用CNN和Transformer的混合結(jié)構(gòu)實(shí)現(xiàn)對(duì)象檢測(cè),訓(xùn)練時(shí)利用二分匹配損失函數(shù)實(shí)現(xiàn)預(yù)測(cè)框和真實(shí)框的一對(duì)一分配,有效地消除了NMS后處理需求。DETR在COCO數(shù)據(jù)集上獲得了42.0%AP,與優(yōu)化后的Faster R-CNN不相上下,但是由于注意力計(jì)算復(fù)雜等因素導(dǎo)致收斂速度慢,比Faster R-CNN慢了10~20倍,且小目標(biāo)檢測(cè)效果差。
2020年,Zhu等人[40]認(rèn)為DETR的慢收斂主要是由于Transformer的注意力機(jī)制是對(duì)全局特征之間的密集關(guān)系建模,以至于需要長(zhǎng)時(shí)間的訓(xùn)練才能關(guān)注到有意義的稀疏位置,為此提出deformable DETR,借助可變形卷積[41]思想通過在不同層級(jí)特征圖上進(jìn)行稀疏采樣,使模型重點(diǎn)學(xué)習(xí)有意義的關(guān)鍵位置加快收斂速度,同時(shí)基于注意力機(jī)制聚合多尺度特征圖之間的信息提升小目標(biāo) 檢測(cè) 精 度。2021年,Sun等 人[42]提 出encoder-only DETR緩解由解碼器交叉注意力模塊帶來的DETR慢收斂問題,同時(shí)在此基礎(chǔ)上提出TSP-FCOS和TSP-RCNN兩種集合預(yù)測(cè)模型,制定新的二分匹配策略解決原始DETR由匈牙利損失造成的不穩(wěn)定性,實(shí)現(xiàn)更快的集合預(yù)測(cè)訓(xùn)練加速收斂。
Transformer變體ACT(adaptive clustering transformer)[43]主要用于減少DETR因?yàn)楦叻直媛瘦斎霂淼挠?jì)算成本,通過局部敏感哈希降低模型復(fù)雜度以及多任務(wù)知識(shí)蒸餾實(shí)現(xiàn)ACT和原始Transformer之間的無縫切換,模型的FLOPS(即浮點(diǎn)運(yùn)算量)從DETR的73.4降低到ACT的58.2。
UP-DETR(unsupervised pre-trained DETR)[44]提出了隨即查詢補(bǔ)丁檢測(cè)的前置任務(wù)來預(yù)訓(xùn)練DETR模型,以無監(jiān)督方式預(yù)訓(xùn)練Transformer使其能夠擁有優(yōu)秀的視覺表征能力,預(yù)訓(xùn)練過程采取凍結(jié)CNN主干和補(bǔ)丁特征重構(gòu)保證特征的分類判別性,設(shè)計(jì)對(duì)象查詢shuffle和注意掩碼方法實(shí)現(xiàn)多查詢定位。在Pascal VOC中,相比DETR(300 epoch/54.1%AP),UP-DETR(150 epoch/56.1%AP)用更少時(shí)間獲得了更高精度,在COCO中,UP-DETR實(shí)現(xiàn)了42.8%AP(300 epoch),可見無論數(shù)據(jù)集大小,UP-DETR都比DETR精度更高,收斂速度更快,證明了無監(jiān)督預(yù)訓(xùn)練策略的可行性和有效性。
1.3.2 Transformer backbone
受到FPN、PANet[45]、BiFPN[46]等算法的啟發(fā),Zhang等人[47]創(chuàng)新性地將Transformer應(yīng)用于特征融合中,提出用于密集預(yù)測(cè)任務(wù)的特征金字塔Transformer-FPT。該方法結(jié)合了非局部和多尺度特征,利用自注意力、自上而下交叉注意力和自下而上交叉通道注意三個(gè)注意力模塊實(shí)現(xiàn)跨空間和跨尺度的非局部特征交互,可以將任意一個(gè)特征金字塔轉(zhuǎn)換成另外一個(gè)大小相等但是語(yǔ)義信息更加豐富的金字塔。FPT可以作為密集預(yù)測(cè)任務(wù)的通用主干進(jìn)一步提高模型性能,如基于FPT的BFP(bottom-up feature pyramid)模型在COCO數(shù)據(jù)集上獲得42.6%AP以及40.3%mask AP,相比原始BFP分別有著8.5個(gè)百分點(diǎn)和6.0個(gè)百分點(diǎn)的增益,但是FPT的計(jì)算量和參數(shù)量都較大,后續(xù)可以研究簡(jiǎn)化模型,降低計(jì)算成本。
除了FPT這種局部增強(qiáng)的Transformer模型以外,研究人員也嘗試采用CNN的層次化構(gòu)建方法構(gòu)建適用于CV的Transformer骨干模型。Liu等人[48]提出了一種帶有分層結(jié)構(gòu)的Transformer-swin Transformer,隨著網(wǎng)絡(luò)的加深逐步合并圖像塊構(gòu)建層次化Transformer,可以作為通用的骨干網(wǎng)絡(luò),用于分類、檢測(cè)、分割等視覺任務(wù)。該模型引入W-MSA(windows mutil-head self-attention)限制注意力計(jì)算僅在局部窗口執(zhí)行,減少計(jì)算量,設(shè)計(jì)移動(dòng)窗口SM-MSA(shift windows mutil-head self-attention)實(shí)現(xiàn)不同窗口之間的信息傳遞。就目標(biāo)檢測(cè)和實(shí)例分割任務(wù)而言,swin Transformer在COCO數(shù)據(jù)集上獲得了58.7%box AP以及51.1%mask AP,達(dá)到了以往檢測(cè)器從未有過的高度。原團(tuán)隊(duì)繼續(xù)優(yōu)化改進(jìn),于2021年提出了擁有30億參數(shù)的大型視覺模型swin Transformer v2[49],該模型能夠使用分辨率高達(dá)1 536×1 536的圖像進(jìn)行訓(xùn)練,采用后歸一化技術(shù)解決模型訓(xùn)練不穩(wěn)定問題,以及對(duì)數(shù)間隔連續(xù)位置偏置(Log-CPB)方法可以將低分辨率預(yù)訓(xùn)練模型轉(zhuǎn)換為對(duì)應(yīng)高分辨率模型,遷移到其他視覺任務(wù)中,訓(xùn)練過程穩(wěn)定,GPU內(nèi)存消耗少,在COCO數(shù)據(jù)集上,目標(biāo)檢測(cè)任務(wù)可以達(dá)到63.1%(+4.4%)box AP,實(shí)例分割任務(wù)上達(dá)到了54.4%(+3.3%)mask AP。
1.3.3 算法小結(jié)
基于Transformer的目標(biāo)檢測(cè)由于其優(yōu)越的性能近兩年得到了廣泛關(guān)注,上述檢測(cè)算法主要是利用Transformer的自注意力機(jī)制增強(qiáng)經(jīng)典檢測(cè)器的特定模塊,如特征融合模塊以及預(yù)測(cè)頭部分。表5總結(jié)了基于Transformer的檢測(cè)算法在特定數(shù)據(jù)集上的準(zhǔn)確率和速度、優(yōu)缺點(diǎn)以及適用場(chǎng)景??偨Y(jié)表5可以得到以下信息:(1)DETR的精度可以與兩階段算法相當(dāng),而且在精度速度之間有著很好的平衡,網(wǎng)絡(luò)框架簡(jiǎn)單,但是訓(xùn)練時(shí)間太長(zhǎng),小目標(biāo)檢測(cè)效果差,后續(xù)的deformable DETR、ACT、TSP等算法都是針對(duì)這兩個(gè)問題改進(jìn)。(2)不同于DETR將目標(biāo)檢測(cè)重新設(shè)計(jì)為一組集合預(yù)測(cè)任務(wù),F(xiàn)PT、swin Transformer v1和v2是設(shè)計(jì)Transformer作為目標(biāo)檢測(cè)模型的主干網(wǎng)絡(luò),將圖像分割成圖像塊送入Transformer主干網(wǎng)絡(luò),根據(jù)圖像的空間信息進(jìn)行重組,然后通過CNN檢測(cè)頭進(jìn)行最終預(yù)測(cè)。swin Transformer v1及v2接連刷新了目標(biāo)檢測(cè)基準(zhǔn)數(shù)據(jù)集COCO,精度遠(yuǎn)超基于CNN的檢測(cè)模型,但是模型復(fù)雜度相對(duì)較高,計(jì)算量較大。(3)基于Transformer的檢測(cè)算法可以對(duì)目標(biāo)建立遠(yuǎn)距離依賴從而輕松獲取全局有效信息,解決CNN感受野有限的問題,從表中也可以看到這些算法獲得了不錯(cuò)的性能。但是Transformer用于檢測(cè)也存在一些不足,如計(jì)算效率問題,長(zhǎng)距離關(guān)系建模帶來計(jì)算成本平方式的增長(zhǎng),無法處理高分辨率圖像,而且基于Transformer的模型參數(shù)量巨大,訓(xùn)練時(shí)間和推理速度相比CNN會(huì)較慢一些,這些不足為今后Transformer的改進(jìn)提供了方向。
表5 基于Transformer的目標(biāo)檢測(cè)算法總結(jié)Table 5 Summary of Transformer-based target detection algorithms
1.3.4 Transformer在視覺領(lǐng)域的應(yīng)用
除了目標(biāo)檢測(cè),Transformer也可以應(yīng)用于其他視覺任務(wù)。例如,DETR通過在解碼器輸出端增加一個(gè)mask head就可以實(shí)現(xiàn)全景分割任務(wù);Wang等人[50]借鑒DETR思想,基于mask Transformer實(shí)現(xiàn)端到端的全景分割;文獻(xiàn)[51]提出了一個(gè)新的實(shí)例序列匹配和分割策略,從相似性學(xué)習(xí)的角度對(duì)實(shí)例進(jìn)行分割和跟蹤,實(shí)現(xiàn)了端到端的視頻實(shí)例分割;文獻(xiàn)[52]將DETR用于行人檢測(cè),解決密集場(chǎng)景下目標(biāo)漏檢問題,實(shí)現(xiàn)了遮擋和密集場(chǎng)景下的端到端行人檢測(cè);文獻(xiàn)[53]基于Transformer學(xué)習(xí)全局上下文信息提高曲線車道線檢測(cè)性能。此外,Transformer還在姿態(tài)估計(jì)[54-55]、醫(yī)療圖像分割[56]、點(diǎn)云學(xué)習(xí)[57]等計(jì)算機(jī)視覺任務(wù)表現(xiàn)出了巨大潛力。目前,Transformer在視覺領(lǐng)域的應(yīng)用仍處于初步探索階段,模型性能相比傳統(tǒng)卷積可能沒有太大提高,但是勝在網(wǎng)絡(luò)結(jié)構(gòu)新穎,有著無限的可能性,接下來可以針對(duì)各個(gè)任務(wù)的特點(diǎn)研究更適配視覺特性的Transformer,或者重新理解這些視覺任務(wù),研究新的框架。未來,應(yīng)該繼續(xù)挖掘Transformer的潛能,將其更好地應(yīng)用在視覺任務(wù)中。
構(gòu)建大型且準(zhǔn)確的數(shù)據(jù)集開發(fā)高效的目標(biāo)檢測(cè)算法是至關(guān)重要的,算法性能的優(yōu)劣都是在特定數(shù)據(jù)集上進(jìn)行評(píng)估的,目前檢測(cè)領(lǐng)域除了常見的Pascal VOC、COCO等數(shù)據(jù)集,也陸續(xù)出現(xiàn)了一些公開數(shù)據(jù)集,按照類型將其劃分為遙感圖像數(shù)據(jù)集、無人機(jī)航拍數(shù)據(jù)集、密集行人檢測(cè)數(shù)據(jù)集、水下物體數(shù)據(jù)集、交通標(biāo)志數(shù)據(jù)集等。事實(shí)上,由于使用場(chǎng)景的不同,檢測(cè)對(duì)象也不同,因此數(shù)據(jù)集的種類非常多,在表6中整理了一些較為常見的數(shù)據(jù)集。
表6 常用的目標(biāo)檢測(cè)數(shù)據(jù)集Table 6 Commonly used object detection datasets
作為計(jì)算機(jī)視覺領(lǐng)域的研究熱點(diǎn)之一,目標(biāo)檢測(cè)在多個(gè)現(xiàn)實(shí)場(chǎng)景有著重要應(yīng)用,涉及醫(yī)學(xué)影像處理、人臉檢測(cè)、遙感圖像檢測(cè)、紅外圖像處理、自動(dòng)駕駛、缺陷檢測(cè)等多個(gè)領(lǐng)域。研究者們針對(duì)特定領(lǐng)域的具體情況,在原有算法基礎(chǔ)上加入優(yōu)化技巧,或是融入能提高精度的網(wǎng)絡(luò)結(jié)構(gòu)來改進(jìn)檢測(cè)算法,以解決這些領(lǐng)域的實(shí)際問題。表7列舉了上述檢測(cè)算法在以下幾個(gè)領(lǐng)域的具體應(yīng)用情況[58-66]。
表7 目標(biāo)檢測(cè)算法應(yīng)用相關(guān)文獻(xiàn)Table 7 Related literature on application of target detection algorithms
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺中一個(gè)非常重要的方向,具有復(fù)雜場(chǎng)景、復(fù)雜目標(biāo)等特點(diǎn),在生活中有著很好的應(yīng)用前景。目前,基于深度學(xué)習(xí)的檢測(cè)算法處于快速發(fā)展階段,產(chǎn)生了許多新穎的理論、方法和應(yīng)用;而基于Transformer的檢測(cè)算法則處于初步探索階段,模型性能有待提升,應(yīng)用范圍有待推廣,因此還有著無限的可能性等待研究者們發(fā)掘?;诋?dāng)前目標(biāo)檢測(cè)算法的研究現(xiàn)狀,本章簡(jiǎn)要?dú)w納未來的可研究方向:
(1)數(shù)據(jù)集問題。目標(biāo)檢測(cè)算法屬于數(shù)據(jù)驅(qū)動(dòng)型,算法的性能依托于數(shù)據(jù)集規(guī)模和質(zhì)量,目前數(shù)據(jù)集的構(gòu)建主要以人工標(biāo)注為主,工作量大且成本高,因此如何以低成本代價(jià)獲得更有效的數(shù)據(jù)標(biāo)注,建立更加全面的數(shù)據(jù)集仍是一個(gè)待解決的重難點(diǎn)問題。同時(shí)基于Transformer的檢測(cè)算法更是對(duì)數(shù)據(jù)集的規(guī)模有著很高的要求,訓(xùn)練時(shí)需要使用大量的數(shù)據(jù)才能獲得高性能,未來能否在小型數(shù)據(jù)集上訓(xùn)練出高精度的Transformer模型也是一個(gè)值得研究的方向。
(2)多尺度問題。多尺度融合目前仍是檢測(cè)領(lǐng)域的一個(gè)難點(diǎn)問題,目前已經(jīng)提出了許多實(shí)現(xiàn)多尺度融合的算法,如FPN、BiFPN和PANet等,但是已有檢測(cè)器都不能在多尺度之間達(dá)到一個(gè)很好的平衡,小目標(biāo)和大目標(biāo)之間的精度差距高達(dá)3倍。因此,提出新的多尺度融合策略,或是對(duì)現(xiàn)有算法進(jìn)行改進(jìn)實(shí)現(xiàn)多尺度目標(biāo)之間的精度平衡也是一個(gè)有價(jià)值的研究方向。
(3)計(jì)算成本問題?;赥ransformer的模型參數(shù)復(fù)雜度過高,導(dǎo)致在計(jì)算時(shí)間和處理數(shù)據(jù)所需的資源方面都有著過高的訓(xùn)練和推理代價(jià),如DETR模型大約需要500 epoch的訓(xùn)練周期,而基于CNN的Faster R-CNN模型僅需要12 epoch的訓(xùn)練時(shí)間就可以達(dá)到同樣的精度。因此,如何減少基于Transformer模型的訓(xùn)練時(shí)間、降低訓(xùn)練成本是未來可研究的一個(gè)重要方向。
(4)Transformer結(jié)構(gòu)及應(yīng)用問題。目前視覺任務(wù)中使用的Transformer模型都是直接從NLP中遷移的,結(jié)構(gòu)遵循NLP中標(biāo)準(zhǔn)Transformer架構(gòu),在處理圖像時(shí)不能像處理文本那樣“得心應(yīng)手”,未來可以探索更加匹配視覺任務(wù)的Transformer改進(jìn)版本。同時(shí),目前基于Transformer的檢測(cè)算法在各類場(chǎng)景中的應(yīng)用較少,且主要使用的是DETR算法,如文獻(xiàn)[61]和[66],其他檢測(cè)算法的應(yīng)用場(chǎng)景還未涉及到,研究者們未來可以繼續(xù)研究其他基于Transformer的檢測(cè)算法的特點(diǎn)(如UP-DETR、swin Transformer等),然后應(yīng)用到更多檢測(cè)場(chǎng)景中,拓展Transformer的使用范圍。
本文首先總結(jié)了經(jīng)典的深度學(xué)習(xí)檢測(cè)算法,然后從網(wǎng)絡(luò)結(jié)構(gòu)、優(yōu)缺點(diǎn)、適用場(chǎng)景等方面歸納總結(jié)了基于Anchor-free和基于Transformer的目標(biāo)檢測(cè)模型,介紹了目標(biāo)檢測(cè)領(lǐng)域常用數(shù)據(jù)集以及這兩類檢測(cè)算法在一些領(lǐng)域的應(yīng)用現(xiàn)狀,最后對(duì)目標(biāo)檢測(cè)未來的可研究方向進(jìn)行了展望。在深度學(xué)習(xí)的指導(dǎo)下,目標(biāo)檢測(cè)取得了極大的進(jìn)步,但是目前最好的檢測(cè)器性能還未達(dá)到理想狀態(tài),期望未來能開發(fā)更精確的實(shí)時(shí)檢測(cè)器。