国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

多尺度目標(biāo)檢測的深度學(xué)習(xí)研究綜述*

2021-05-23 06:12:34陳科圻朱志亮鄧小明馬翠霞王宏安
軟件學(xué)報 2021年4期
關(guān)鍵詞:錨點金字塔尺度

陳科圻 ,朱志亮 ,鄧小明 ,馬翠霞 ,王宏安

1(中國科學(xué)院大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,北京 100190)

2(計算機(jī)科學(xué)國家重點實驗室(中國科學(xué)院 軟件研究所),北京 100190)

3(人機(jī)交互北京市重點實驗室(中國科學(xué)院 軟件研究所),北京 100190)

4(華東交通大學(xué) 軟件學(xué)院,江西 南昌 330013)

目標(biāo)檢測是一個重要的計算機(jī)視覺任務(wù).它由圖像分類任務(wù)發(fā)展而來,區(qū)別在于不再僅僅只對一張圖像中的單一類型目標(biāo)進(jìn)行分類,而是要同時完成一張圖像里可能存在的多個目標(biāo)的分類和定位,其中分類是指給目標(biāo)分配類別標(biāo)簽,定位是指確定目標(biāo)的外圍矩形框的頂點坐標(biāo).因此,目標(biāo)檢測任務(wù)更具有挑戰(zhàn)性,也有著更廣闊的應(yīng)用前景,比如自動駕駛、人臉識別、行人檢測、醫(yī)療檢測等等.同時,目標(biāo)檢測也可以作為圖像分割、圖像描述、目標(biāo)跟蹤、動作識別等更復(fù)雜的計算機(jī)視覺任務(wù)的研究基礎(chǔ).

目標(biāo)檢測算法主要分為3 個步驟:圖像特征提取、候選區(qū)域生成與候選區(qū)域分類.其中,圖像特征提取是整個檢測流程的基石.傳統(tǒng)算法普遍是基于人工設(shè)計的特征算子來描述圖像,例如SIFT 特征[1]、HOG 特征[2]等等.這些特征算子普遍是基于底層視覺特征來設(shè)計的,因此很難獲取復(fù)雜圖像里的語義信息.2012 年,Krizhevsky 等人[3]提出的AlexNet 在ILSVRC 挑戰(zhàn)賽[4]的圖像分類任務(wù)上以顯著優(yōu)勢奪得了冠軍,讓人們看到了卷積神經(jīng)網(wǎng)絡(luò)強(qiáng)大的特征表示能力.自此,基于深度學(xué)習(xí)的研究熱潮拉開了帷幕.在之后的幾年里,VGGNet[5]、GoogLeNet[6]、ResNet[7]等更強(qiáng)大的分類網(wǎng)絡(luò)相繼問世.由于它們都能夠提取出非常抽象的特征,因此除了完成圖像分類任務(wù)以外,還普遍被用作更復(fù)雜的計算機(jī)視覺任務(wù)的骨架網(wǎng)絡(luò),其中就包括目標(biāo)檢測.2014 年,Girshick 等人[8]提出的R-CNN 算法在PSACAL VOC 檢測數(shù)據(jù)集[9]上以絕對優(yōu)勢擊敗了傳統(tǒng)的DPM 算法[10],為目標(biāo)檢測開啟了一個新的里程碑.自此,深度學(xué)習(xí)算法在目標(biāo)檢測的研究領(lǐng)域里占據(jù)了絕對的主導(dǎo)地位,并一直持續(xù)至今,近年有很多綜述文獻(xiàn)對此進(jìn)行了詳細(xì)的調(diào)研[11-13].

基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩個流派:(1) 以 R-CNN 系列為代表的兩階段算法;(2) 以YOLO[14]、SSD[15]為代表的一階段算法.具體來說,兩階段算法首先在圖像上生成候選區(qū)域,然后對每一個候選區(qū)域依次進(jìn)行分類與邊界回歸;而一階段算法則是直接在整張圖像上完成所有目標(biāo)的定位和分類,略過了生成候選區(qū)域這一步驟.兩種流派各有優(yōu)勢,通常來說,前者精度更高,后者速度更快.對于現(xiàn)階段的目標(biāo)檢測任務(wù)來說,無論采用哪種流派的算法,都不可避免地會面臨著尺度問題的挑戰(zhàn):不同圖像之間、甚至是同一張圖像里,需要被檢測出的目標(biāo)的大小相對于整張圖像的比例的差異是非常大的.例如,從圖1 可以看到,圖1(a)~圖1(c)這3張圖中的大本鐘、狗、人群的尺度是從大到小的,而圖1(d)所示的兩張圖則均包含了多種尺度的目標(biāo).對于檢測任務(wù)常用的MS COCO 數(shù)據(jù)集[16],若根據(jù)目標(biāo)掩膜相對于圖像的像素比例對所有實例的尺度進(jìn)行統(tǒng)計和排序后會發(fā)現(xiàn):數(shù)據(jù)集中有10%的目標(biāo)的尺度小于0.020 7,同樣有10%的目標(biāo)的尺度大于0.345,尺度跨度極大.在該數(shù)據(jù)集的評價標(biāo)準(zhǔn)下,現(xiàn)有的檢測器在檢測不同尺度的目標(biāo)時,普遍存在著精度不均衡的現(xiàn)象,即小目標(biāo)的準(zhǔn)確率通常只有中、大目標(biāo)的準(zhǔn)確率的一半左右.這種尺度差異帶來的挑戰(zhàn)性,嚴(yán)重限制了現(xiàn)有檢測器的整體表現(xiàn).因此,如何更好地實現(xiàn)多尺度目標(biāo)檢測,近年來一直是目標(biāo)檢測領(lǐng)域的研究熱點之一.

目標(biāo)檢測包含了目標(biāo)的定位和分類這兩個子任務(wù),而尺度問題的根源就在于,卷積神經(jīng)網(wǎng)絡(luò)在不斷加深的過程中,表達(dá)抽象特征的能力越來越強(qiáng),但淺層的空間信息也相對丟失.這就導(dǎo)致深層特征圖無法提供細(xì)粒度的空間信息,對目標(biāo)進(jìn)行精確定位.同時,小目標(biāo)的語義信息也在下采樣的過程中逐漸丟失.因此,解決尺度問題的一個通用的思路就是構(gòu)建多尺度的特征表達(dá).目前,常用的構(gòu)建多尺度特征的方法包括:(1) 采用圖像金字塔,將圖像以不同的分辨率依次進(jìn)行目標(biāo)檢測;(2) 在神經(jīng)網(wǎng)絡(luò)內(nèi)部通過對不同深度的特征圖進(jìn)行跨層連接,構(gòu)建特征金字塔并進(jìn)行目標(biāo)檢測;(3) 在神經(jīng)網(wǎng)絡(luò)內(nèi)部設(shè)計感受野不同的并行支路,構(gòu)建空間金字塔并進(jìn)行目標(biāo)檢測.除了構(gòu)建多尺度的特征表達(dá)以外,也有學(xué)者從算法流程中更細(xì)節(jié)的層面研究縮小不同尺度目標(biāo)檢測精度差距的策略,包括錨點、交并比、動態(tài)卷積、邊界框損失函數(shù)等等.

本文圍繞基于深度學(xué)習(xí)的多尺度目標(biāo)檢測,首先在第1 節(jié)中對背景知識進(jìn)行介紹,包括從兩階段和一階段這兩類算法的角度回顧主流檢測器的奠基過程,以及尺度問題的提出.第2 節(jié)介紹基于圖像金字塔的多尺度目標(biāo)檢測.第3 節(jié)介紹基于網(wǎng)絡(luò)內(nèi)特征金字塔的多尺度目標(biāo)檢測,包括跨層連接和并行支路兩種構(gòu)建金字塔的方式.第4 節(jié)介紹多尺度目標(biāo)檢測的錨點、交并比、動態(tài)卷積、邊界框損失函數(shù)等策略.第5 節(jié)對多尺度目標(biāo)檢測未來可能的研究方向和趨勢進(jìn)行展望.第6 節(jié)對全文進(jìn)行總結(jié).

Fig.1 The scale variance of the objects within different images or one image in object detection task圖1 目標(biāo)檢測任務(wù)中不同圖像或同一圖像內(nèi)的目標(biāo)存在的尺度差異

1 背景知識

1.1 基于深度學(xué)習(xí)的目標(biāo)檢測主流算法

本節(jié)將對基于深度學(xué)習(xí)的目標(biāo)檢測算法中的兩階段算法和一階段算法這兩大主要流派的發(fā)展歷史進(jìn)行簡要回顧.兩階段算法首先通過啟發(fā)式方法或者卷積神經(jīng)網(wǎng)絡(luò)生成一系列可能存在潛在目標(biāo)的候選區(qū)域,然后根據(jù)候選區(qū)域的特征對每一個區(qū)域進(jìn)行分類和邊界回歸.一階段算法則省略了候選區(qū)域生成的步驟,僅使用一個卷積神經(jīng)網(wǎng)絡(luò)直接完成整張圖像上所有目標(biāo)的定位與分類.兩種流派各有優(yōu)勢:兩階段算法相對而言精度更高,尤其體現(xiàn)在定位上;而一階段算法的速度普遍更快,更容易滿足實際應(yīng)用場景中的實時性需求.

1.1.1 兩階段算法

傳統(tǒng)目標(biāo)檢測算法的流程主要包括候選框生成、特征提取和目標(biāo)分類這3 個步驟,而兩階段算法正是在傳統(tǒng)算法的基礎(chǔ)上一步步演化而來的.2014 年,Girshick 等人[8]提出的R-CNN 算法,在PASCAL VOC 數(shù)據(jù)集[9]上以絕對優(yōu)勢擊敗了經(jīng)典的DPM 算法[10],開啟了基于深度學(xué)習(xí)的兩階段目標(biāo)檢測算法的先河.R-CNN 算法包括3個模塊:(1) 采用選擇性搜索[17]生成可能包含潛在目標(biāo)的候選區(qū)域;(2) 將所有候選區(qū)域采樣至某一固定分辨率后,逐一輸入卷積神經(jīng)網(wǎng)絡(luò),提取出固定長度的特征向量;(3) 采用多個支持向量機(jī)對所有特征向量進(jìn)行分類.最后,作者還額外增加了一個矩形框回歸的步驟:根據(jù)已知類別和提取出的特征向量,對矩形框進(jìn)行回歸修正,從而進(jìn)一步提高定位精度.相較于傳統(tǒng)算法,R-CNN 的最大創(chuàng)新點在于不再需要人工設(shè)計特征算子,而是引入卷積神經(jīng)網(wǎng)絡(luò)自動學(xué)習(xí)如何更好地提取特征,實驗結(jié)果也表明這樣做是更有效的.但是,R-CNN 算法本身存在很多缺陷:(1) 雖然在提取特征向量時使用了CNN,但生成候選區(qū)域采用的選擇性搜索算法仍然還是基于底層視覺特征,因此候選框質(zhì)量不高;(2) 算法的3 個模塊是相互獨立的,導(dǎo)致訓(xùn)練過程繁瑣,無法實現(xiàn)端到端的訓(xùn)練,且不能獲得全局最優(yōu)解;(3) 在提取特征向量時,每個候選區(qū)域都會被單獨地從原圖上裁剪下來,再依次輸入神經(jīng)網(wǎng)絡(luò),這樣做既占用了大量磁盤空間,也帶來了很多重復(fù)性計算,導(dǎo)致訓(xùn)練速度和推斷速度都非常緩慢.

為了解決R-CNN 算法的這些缺陷,后續(xù)出現(xiàn)了一系列算法對其進(jìn)行改進(jìn).He 等人[18]意識到,卷積層本身并不限制輸入圖像的分辨率,R-CNN 之所以在提取特征向量前需要統(tǒng)一候選區(qū)域的尺寸,是因為CNN 最后的全連接層只能處理固定尺寸的輸入.于是,為了避免重復(fù)運算,他們提出的SPP-Net 不再是將候選區(qū)域依次通入CNN,而是直接計算整張圖的特征圖,然后劃分出每一個候選區(qū)域的特征.在全連接層之前,為了統(tǒng)一特征向量的長度,他們新增了一個SPP 層,通過池化操作將任意輸入都轉(zhuǎn)化為固定長度的輸出.由此可以看出,相較于R-CNN,SPP-Net 最大的貢獻(xiàn)在于顯著加速了訓(xùn)練和推斷的過程.但是,SPP-Net 的精度與R-CNN 并無明顯差別,而且它的算法流程依舊是獨立的多個模塊,保存特征向量依舊需要大量存儲空間.于是,Girshick 在此基礎(chǔ)上,又提出了Fast R-CNN[19].Fast R-CNN 吸納了SPP-Net 的思想,對整張圖進(jìn)行一次性的特征計算,新提出的RoI 池化層相當(dāng)于SPP 層的簡化版.除此以外,Fast R-CNN 為了簡化流程,不再使用支持向量機(jī)進(jìn)行分類,也不再使用額外的回歸器,而是設(shè)計了多任務(wù)損失函數(shù),直接訓(xùn)練CNN 在兩個新的網(wǎng)絡(luò)分支上分別進(jìn)行分類和回歸.這也正是Fast R-CNN 最大的創(chuàng)新:將特征提取、分類、回歸整合為了一步,這樣就不再需要中途保存特征向量,從而解決了存儲空間的問題;而且在訓(xùn)練時能夠進(jìn)行整體的優(yōu)化,因此取得了更高的精度.

Fast R-CNN 雖然成功地將分類和回歸也整合進(jìn)了神經(jīng)網(wǎng)絡(luò),但距離真正的端到端訓(xùn)練還差一步:候選框的生成依舊是完全獨立的.選擇性搜索等傳統(tǒng)算法是基于圖像的底層視覺特征直接生成候選區(qū)域,無法根據(jù)具體的數(shù)據(jù)集進(jìn)行學(xué)習(xí).而且,選擇性搜索非常耗時,在CPU 上處理一張圖像需要2s.即便是當(dāng)時能夠最好地權(quán)衡候選框的生成質(zhì)量與速度的EdgeBoxes 算法[20],處理一張圖像也需要0.2s,與Fast R-CNN 的神經(jīng)網(wǎng)絡(luò)部分的耗時差不多[21].因此,Ren 等人[21]再次對Fast R-CNN 進(jìn)行改進(jìn),提出了Faster R-CNN 算法.該算法最大的創(chuàng)新點在于設(shè)計了RPN 這樣一個候選框生成網(wǎng)絡(luò).RPN 有兩大創(chuàng)新:(1) RPN 的輸入是已有的Fast R-CNN 的骨架網(wǎng)絡(luò)所提取的整張圖像的特征圖,這種共享特征的設(shè)計既充分利用了CNN 的特征提取能力,又節(jié)省了運算;(2) 提出了錨點(anchor)概念,RPN 基于預(yù)先設(shè)定好尺寸的錨點進(jìn)行分類(前景或背景)和回歸,既確保了多尺度的候選框的生成,也讓模型更易于收斂.RPN 生成候選區(qū)域之后,算法的剩余部分就和Fast R-CNN 一致了.正因為有了RPN 取代選擇性搜索算法,Faster R-CNN 最終在GPU 上的檢測速度達(dá)到了5FPS,打破了PASCAL VOC 數(shù)據(jù)集的記錄.同時,它還是第一個真正實現(xiàn)了端到端訓(xùn)練的檢測算法,標(biāo)志著兩階段檢測器的正式成型.

自Faster R-CNN 問世之后,新誕生的兩階段檢測器幾乎都以它為雛形.Dai 等人[22]提出的R-FCN 為了進(jìn)一步提高Faster R-CNN 的效率,去除了各分支獨立的計算耗時的全連接層,設(shè)計了位置敏感得分圖和位置敏感RoI 池化層來保留空間信息,顯著提高了推斷速度與精度.Lin 等人[23]考慮到網(wǎng)絡(luò)深層特征有較強(qiáng)的語義信息,而淺層特征有較強(qiáng)的空間信息,于是提出了將深層特征圖通過多次上采樣和淺層特征圖逐一結(jié)合的FPN 架構(gòu),基于多層融合后的特征圖進(jìn)行輸出,能夠更好地檢測到不同尺度的目標(biāo),是多尺度目標(biāo)檢測的里程碑.He 等人[24]提出的Mask R-CNN 在Faster R-CNN 的基礎(chǔ)上將RoI 池化層替換成了RoI 對齊層,使得特征圖和原圖像素能對齊得更精準(zhǔn),并新增了一個掩膜分支,用于實例分割.令人驚訝的是,該算法不僅在實例分割任務(wù)上取得了優(yōu)秀表現(xiàn),對分類、回歸、掩膜分支同時進(jìn)行多任務(wù)訓(xùn)練也提高了目標(biāo)檢測任務(wù)的性能.Qin 等人[25]則提出了輕量級的二階段檢測器ThunderNet:通過為檢測任務(wù)定制輕量級骨架網(wǎng)絡(luò)SNet、對RPN 和檢測頭進(jìn)行壓縮以及引入CEM、SAM 等模塊,讓模型在速度和精度方面超越了不少一階段檢測器.

1.1.2 一階段算法

從Faster R-CNN 開始的二階段算法雖然已經(jīng)實現(xiàn)了端到端訓(xùn)練的完整流程,但是與真正滿足實時性需求仍有相當(dāng)大的差距.因此,以YOLO 算法[14]為代表的一階段檢測器便登上了舞臺.這一類算法不再單獨設(shè)計生成候選區(qū)域的初始階段,而是在整張圖像上一次性完成所有目標(biāo)的定位與分類.Sermanent 等人[26]于2013 年提出的OverFeat 是最早的一階段檢測器.雖然它的精度不如同期R-CNN,但其思想很有前瞻性:(1) 采用卷積層替代全連接層實現(xiàn)全卷積神經(jīng)網(wǎng)絡(luò),適應(yīng)不同分辨率的圖像作為輸入,相當(dāng)于用卷積來快速實現(xiàn)滑動窗口算法;(2) 采用同一個卷積神經(jīng)網(wǎng)絡(luò)作為共享的骨架網(wǎng)絡(luò),通過更改網(wǎng)絡(luò)頭部分別實現(xiàn)分類、定位和檢測任務(wù),這使得OverFeat 比R-CNN 的檢測速度快了9 倍[8].2015 年,Redmon 等人[14]提出的YOLO 算法則真正地實現(xiàn)了實時性目標(biāo)檢測.其核心思想是將目標(biāo)檢測視為一個回歸任務(wù),算法流程十分簡潔:將輸入圖像劃分為7×7 的網(wǎng)格,每一個網(wǎng)格負(fù)責(zé)預(yù)測中心點處于該網(wǎng)格內(nèi)的目標(biāo),回歸中心點相對于網(wǎng)格的位置、目標(biāo)的長寬和類別.YOLO 的損失函數(shù)由定位損失、置信度損失、分類損失這3 部分組成,其中,置信度是指是否存在目標(biāo).可以看到,YOLO 是一種端到端的算法,沒有候選框這一概念,輸入一張圖片,在檢測到前景的同時就回歸得到了需要的屬性.從實驗結(jié)果來看,YOLO 的檢測速度能夠達(dá)到45FPS,Fast YOLO 甚至能到155FPS,比二階段檢測器快了一個數(shù)量級.除此以外,YOLO 在檢測時考慮了更多的背景信息,因此將背景誤判為前景的概率比Fast R-CNN 要低很多[14].當(dāng)然,YOLO 也存在一些明顯的缺陷:(1) 每一個網(wǎng)格只檢測兩個目標(biāo),且規(guī)定為同一類別,導(dǎo)致算法難以處理密集目標(biāo)的檢測;(2) 精度比Fast R-CNN要差,尤其體現(xiàn)在定位上,主要原因在于,后者經(jīng)過了從整體到局部的兩次矩形框回歸,而YOLO 只經(jīng)過了一次;(3) 由于全連接層的存在,輸入圖像的分辨率是固定的;(4) 只在單張?zhí)卣鲌D上檢測目標(biāo),導(dǎo)致算法難以駕馭多尺度目標(biāo)的檢測.

YOLO 誕生之后,更多的一階段檢測器也相繼問世.Liu 等人[15]提出的SSD 算法繼承了YOLO 的核心思想,而主要的不同之處在于:(1) 訓(xùn)練網(wǎng)絡(luò)在多個不同深度的特征層上預(yù)測不同尺度的目標(biāo),最后進(jìn)行整合;(2) 引入Faster R-CNN[21]的錨點概念,使模型更容易收斂,保證不同感受野的特征圖適應(yīng)不同尺度的目標(biāo)檢測;(3) 使用全卷積神經(jīng)網(wǎng)絡(luò),適應(yīng)不同分辨率的圖像輸入;(4) 損失函數(shù)由定位損失和分類損失組成,沒有YOLO 的前景置信度這一概念,因為它在分類時直接將背景也視為一個類別,與其他類別同時進(jìn)行預(yù)測.此外,SSD 在特征圖上鋪設(shè)了密集的錨點,而有效匹配目標(biāo)的錨點個數(shù)是很有意義的,若直接采用所有樣本進(jìn)行訓(xùn)練,會存在嚴(yán)重的正負(fù)樣本不平衡問題.于是,SSD 采用了難例挖掘的手段來緩解這一問題.從實驗結(jié)果來看,SSD 的檢測速度能和YOLO 媲美,而精度能夠匹敵Faster R-CNN.不過,雖然SSD 在多層特征圖進(jìn)行預(yù)測,但是相對于Faster R-CNN,小目標(biāo)的檢測結(jié)果并未能夠得到明顯的改善.其主要原因可能在于,淺層的特征層雖然有著較小的感受野,但特征表示能力相對于深層特征要弱很多.

對原始的YOLO 進(jìn)行全面升級之后,Redmon 等人[27]推出了YOLOv2.YOLOv2 做出了一系列改進(jìn):(1) 對所有的卷積層引入批量標(biāo)準(zhǔn)化;(2) 統(tǒng)一預(yù)訓(xùn)練與實際訓(xùn)練的圖像分辨率;(3) 去除全連接層,引入錨點作為預(yù)測目標(biāo)尺寸的參照物,錨點的尺寸通過k-means 聚類來確定;(4) 設(shè)計了passthrough 層,將不同層的特征圖拼接在了一起,基于更豐富的特征進(jìn)行預(yù)測;(5) 采用多尺度訓(xùn)練,使模型更魯棒;(6) 設(shè)計了Darknet-19 作為骨架網(wǎng)絡(luò),加快了速度.可以看到,YOLOv2 吸取了很多深度學(xué)習(xí)的技巧,最終在速度、精度上均得到提高.此外,Redmon 等人還同時提出了YOLO 9000,采用樹的形式將ImageNet 分類數(shù)據(jù)集和COCO 檢測數(shù)據(jù)集的目標(biāo)類別進(jìn)行合并,通過聯(lián)合訓(xùn)練分類任務(wù)和檢測任務(wù),讓模型最終能夠檢測超過9 000 種目標(biāo).YOLO 9000 的思想是想要消除分類和檢測數(shù)據(jù)集在數(shù)據(jù)量上的鴻溝,這對于檢測任務(wù)的拓展性有很大幫助.

新誕生的這一系列一階段檢測器雖然普遍有著絕對的速度優(yōu)勢,但與頂尖的二階段檢測器相比仍然存在著不可忽視的精度差距.Lin 等人[28]認(rèn)為,兩類算法最本質(zhì)的區(qū)別在于,后者通過對候選框的篩選,保證了第2 階段訓(xùn)練樣本的高質(zhì)量和類別的均衡,而前者必須在圖像上每一個滑動窗口處進(jìn)行預(yù)測,換言之,即存在嚴(yán)重的正負(fù)樣本不均衡和難易樣本不均衡問題.因此,他們?yōu)橐浑A段檢測器設(shè)計了新的損失函數(shù)Focal Loss.Focal Loss 在交叉熵?fù)p失函數(shù)的基礎(chǔ)上引入了兩個新的參數(shù),一個用于降低負(fù)樣本的權(quán)重,另一個用于降低簡單樣本的權(quán)重,讓模型在訓(xùn)練時能夠避免被一階段算法存在的大量負(fù)樣本、簡單樣本轉(zhuǎn)移注意力.實驗測試中,作者采用ResNet 和特征金字塔網(wǎng)絡(luò)架構(gòu)設(shè)計了簡單的一階段檢測器RetinaNet,并應(yīng)用Focal Loss 進(jìn)行訓(xùn)練,最終在MS COCO 測試集上展現(xiàn)出了超越Faster R-CNN 的精度的能力,尤其體現(xiàn)在小樣本的檢測上.

YOLOv2 之后,Redmon 等人再次對其進(jìn)行升級,提出了YOLOv3[29].YOLOv3 主要有3 個改進(jìn)點:(1) 采用多個邏輯回歸分類器取代softmax 分類器,使模型能夠適用于類別間存在交集的分類任務(wù);(2) 引入特征金字塔網(wǎng)絡(luò)架構(gòu),對最深層特征圖進(jìn)行兩次上采樣,分別與淺層特征相融合,最后在3 個特征層上設(shè)置不同的錨點,預(yù)測不同尺度的目標(biāo);(3) 學(xué)習(xí)殘差網(wǎng)絡(luò)的思想,設(shè)計了Darknet-53 作為新的骨架網(wǎng)絡(luò),在精度上可與Resnet-101、ResNet152 相匹敵,而且速度更快.YOLOv3 在當(dāng)時實現(xiàn)了最好的速度與精度的權(quán)衡,也是目前工業(yè)界目標(biāo)檢測的首選算法之一.

近年來,在“舍棄錨點(anchor-free)”的潮流之下,除了對傳統(tǒng)的錨點策略進(jìn)行反思與改進(jìn)的算法之外[30-32],還有另外一系列基于關(guān)鍵點檢測的一階段目標(biāo)檢測算法涌現(xiàn)出來.Law 等人提出的CornerNet[33]通過檢測矩形框的左上和右下成對的角點來確定目標(biāo).Zhou 等人提出的CenterNet[34]則更進(jìn)一步,只檢測目標(biāo)的中心點位置,然后通過回歸不同的屬性(目標(biāo)的長寬、深度、方向等),將目標(biāo)檢測、3D 目標(biāo)檢測、姿態(tài)估計等多項視覺任務(wù)進(jìn)行了統(tǒng)一.將目標(biāo)檢測問題轉(zhuǎn)換為關(guān)鍵點檢測問題之后,就可以使用Hourglass[35]等下采樣系數(shù)更小的關(guān)鍵點檢測網(wǎng)絡(luò)以保留更多的空間信息.由此可見,在不同的計算機(jī)視覺任務(wù)之間進(jìn)行算法遷移,同樣是一個重要的研究方向.

1.2 目標(biāo)檢測的尺度問題

為了對目標(biāo)的尺度進(jìn)行量化,通常以目標(biāo)實例所占面積(即掩膜所占的像素數(shù)量)除以所在圖像的面積并開方得到的結(jié)果作為該目標(biāo)實例的相對尺度(介于0~1 之間),簡稱尺度.因此,不同圖像中的目標(biāo)的相對尺度存在很大差異,或同一張圖像中的多個目標(biāo)的尺寸存在較大差異,這一狀況即被稱為尺度問題,一直以來都是影響目標(biāo)檢測任務(wù)精度的最核心的挑戰(zhàn)之一,即便是進(jìn)入深度學(xué)習(xí)時代也同樣如此.MS COCO 數(shù)據(jù)集[16]是目前目標(biāo)檢測領(lǐng)域最常用的基準(zhǔn)數(shù)據(jù)集之一,很適用于對算法的多尺度目標(biāo)檢測能力進(jìn)行綜合評估,主要基于以下幾點原因.

(1) 數(shù)據(jù)集包含了80 種不同類別的目標(biāo),覆蓋范圍廣,場景跨度大;

(2) 根據(jù)尺度對數(shù)據(jù)集中的所有目標(biāo)實例進(jìn)行排序后,得到的尺度分布曲線如圖2 所示,可見,最小的10%目標(biāo)的尺度均小于0.020 7,最大的10%目標(biāo)的尺度都超過了0.345,尺度跨度極大,因此,COCO 數(shù)據(jù)集非常考驗?zāi)P偷亩喑叨饶繕?biāo)檢測能力;

(3) 在數(shù)據(jù)集的評價指標(biāo)中,將面積小于32×32 的實例視為小目標(biāo),大于96×96 的實例視為大目標(biāo),剩下的實例視為中等目標(biāo).因此,在評價模型時除了給出整體的準(zhǔn)確率、召回率之外,數(shù)據(jù)集還會分別計算并給出小、中、大目標(biāo)3 種情況下的準(zhǔn)確率和召回率,這有利于直觀地看出模型在面對不同尺度目標(biāo)時的檢測能力.

Fig.2 The scale distribution curve of the instances among MS COCO detection dataset圖2 MS COCO 檢測數(shù)據(jù)集的目標(biāo)實例的尺度分布曲線

表1 中列舉了一些目標(biāo)檢測算法在MS COCO 測試集上的檢測結(jié)果,“++”符號表示模型在推斷時使用了圖像金字塔.其中,AP 是指當(dāng)IoU 閾值分別為0.50:0.05:0.95 時的平均準(zhǔn)確率,AP50 和AP75 分別是IoU 閾值為0.50和0.75 的準(zhǔn)確率,APS、APM、APL 分別指小、中、大目標(biāo)的AP.從表1 中的數(shù)據(jù)可以看出,早期的SSD、YOLOv2、FPN 等檢測器的小目標(biāo)的檢測精度都不到中、大目標(biāo)的精度的一半.近兩年的檢測器在尺度問題上有所改善,但小目標(biāo)的精度仍然與中、大目標(biāo)的精度有著顯而易見的差距,這嚴(yán)重影響了整體精度的提高.因此,如何讓檢測器能夠更好地應(yīng)對不同尺度的目標(biāo)(尤其是小目標(biāo)),仍是當(dāng)今目標(biāo)檢測研究的一個重要難題.

Table 1 Detection performance on the MS COCO TEST-DEV dataset表1 目標(biāo)檢測算法在MS COCO 測試集上的檢測性能

檢測器在面對尺度跨度較大的數(shù)據(jù)集時會表現(xiàn)不佳的根本原因在于,卷積神經(jīng)網(wǎng)絡(luò)在不斷加深的過程中,表達(dá)抽象特征的能力越來越強(qiáng),淺層的空間信息也相對丟失.以基于ResNet-50 的Faster R-CNN 為例,在檢測包含多尺度目標(biāo)的圖像時,可以看到圖3(a)中遠(yuǎn)處較小的人沒有被檢測到.為了能直觀地進(jìn)行分析,圖3 對骨架網(wǎng)絡(luò)ResNet-50 逐層提取出的特征進(jìn)行了可視化,可以觀察到,淺層網(wǎng)絡(luò)提取出的特征包含了邊緣等空間信息,隨著網(wǎng)絡(luò)的加深,特征逐漸抽象化,空間信息也不斷丟失,圖3(a)中沒有檢測到的那個人的特征早已經(jīng)無法分辨.此外,由于目標(biāo)檢測任務(wù)包含了目標(biāo)分類和目標(biāo)定位這兩個子任務(wù),因此在檢測尺度較大、細(xì)節(jié)特征豐富的目標(biāo)時,需要更強(qiáng)的語義信息作為分類依據(jù);在檢測尺度較小、偏差容忍度較小的目標(biāo)時,則需要更細(xì)粒度的空間信息以實現(xiàn)精確定位.因此,要解決尺度問題,最常見的思路是構(gòu)建多尺度的特征表達(dá),常用的方法包括:(1) 輸入圖像金字塔提取不同尺度的特征;(2) 在網(wǎng)絡(luò)內(nèi)部融合不同深度的特征層,構(gòu)建特征金字塔;(3) 在網(wǎng)絡(luò)內(nèi)部設(shè)計并行支路,構(gòu)建空間金字塔.除此以外,也有對錨點策略進(jìn)行反思和對小目標(biāo)進(jìn)行特征重建等其他方法來緩解尺度問題.下文將從這些方面對已有算法進(jìn)行概述.本文關(guān)于實驗結(jié)果的陳述,若不明確強(qiáng)調(diào)數(shù)據(jù)集,則默認(rèn)是在MS COCO 數(shù)據(jù)集上進(jìn)行測試得到的結(jié)果.

Fig.3 The visualization of detection results and backbone network features of ResNet-50-based Faster R-CNN圖3 Faster R-CNN 目標(biāo)檢測結(jié)果及骨架網(wǎng)絡(luò)ResNet-50 特征可視化

2 基于圖像金字塔的多尺度目標(biāo)檢測

同一張圖像,在低分辨率下能看到整體的輪廓,在高分辨率下能看清更多的細(xì)節(jié),這正是圖像金字塔的基本原理.早在目標(biāo)檢測進(jìn)入深度學(xué)習(xí)時代之前,圖像金字塔就已成為一種通用的提高檢測精度的手段,比如用同樣大小的滑動窗口在不同尺度的圖像上進(jìn)行特征提取.而神經(jīng)網(wǎng)絡(luò)的本質(zhì)也是特征感知,因此圖像金字塔同樣適用于神經(jīng)網(wǎng)絡(luò),如下文中圖4(a)所示.在訓(xùn)練階段,隨機(jī)輸入不同尺度的圖像,能夠強(qiáng)迫神經(jīng)網(wǎng)絡(luò)適應(yīng)不同尺度的目標(biāo)檢測;在測試階段,對同一張圖像以不同的尺度進(jìn)行多次檢測,最后采用非極大值抑制算法整合所有結(jié)果,能夠使檢測器覆蓋盡可能大的尺度范圍內(nèi)的目標(biāo).實驗結(jié)果表明,圖像金字塔的引入的確能夠在一定程度上提升整體精度,但其弊端也十分明顯:高分辨率的圖像輸入既會增大內(nèi)存開銷,也會增加計算耗時.這不僅會導(dǎo)致訓(xùn)練時難以使用較大的批尺寸,影響了模型精度,同時成倍增加的推斷時間還會進(jìn)一步抬高將算法投入實際應(yīng)用的門檻.因此,最原始的圖像金字塔的實用價值可以說是十分有限的.

2.1 基于尺度生成網(wǎng)絡(luò)的圖像金字塔

Hao 等人[60]在將圖像金字塔運用于人臉檢測時注意到一個問題:在進(jìn)行多尺度檢測時,金字塔的很多層實際上是沒有檢測到有效目標(biāo)的,即存在著明顯的資源浪費.其原因在于,每一張圖像的目標(biāo)的尺度分布都存在著顯著差別:有的圖像可能只有一種尺度的目標(biāo),因此實際只需要對金字塔的某一層進(jìn)行檢測;有的圖像可能只有中等目標(biāo)和大目標(biāo),因此金字塔里分辨率最高的那一層其實是不需要的,而那恰好是計算開銷最大的一層.為了提高檢測效率,他們認(rèn)為:在正式進(jìn)行目標(biāo)檢測之前,若能先判斷圖像內(nèi)目標(biāo)的尺度分布情況,就能去除圖像金字塔中冗余的層,而且在已知目標(biāo)尺度的情況下還可以對后續(xù)檢測作進(jìn)一步的優(yōu)化.因此,他們設(shè)計了一個尺度生成網(wǎng)絡(luò),將原本的目標(biāo)檢測任務(wù)拆分成尺度估計和單一尺度的目標(biāo)檢測這兩步,如圖4(b)所示.尺度生成網(wǎng)絡(luò)顧名思義,是用于估計圖像里的被檢測目標(biāo)的尺度分布.該網(wǎng)絡(luò)基于圖像級別的監(jiān)督信號進(jìn)行訓(xùn)練,輸出尺度直方圖向量,經(jīng)過均值濾波和一維的非極大值抑制操作后就能夠得到離散的目標(biāo)尺度分布.由于已知目標(biāo)尺度,因此后續(xù)的檢測器只需檢測單一尺度的目標(biāo),所以可以將RPN 的錨點的尺寸數(shù)縮減為1,這樣就能在不影響精度的前提下進(jìn)一步提高檢測速度.最后,將圖像依次采樣至目標(biāo)尺度所對應(yīng)的分辨率,再輪流進(jìn)行檢測,最后對所有結(jié)果進(jìn)行匯總,就完成了多尺度目標(biāo)的檢測.從實驗結(jié)果來看,該算法針對FDDB[61]、AFW[62]和MALF[63]數(shù)據(jù)集無論是在速度還是在精度上均超越了原版RPN.

Fig.4 Overview of the image-pyramid-based multi-scale object detection圖4 基于圖像金字塔的多尺度目標(biāo)檢測總覽

從本質(zhì)上講,尺度生成網(wǎng)絡(luò)其實是提供了構(gòu)建圖像金字塔的參考意見,讓金字塔的層數(shù)和每一層的分辨率都更適應(yīng)于具體圖像,有效提高了算法的檢測效率.值得深究的一點是,為什么卷積神經(jīng)網(wǎng)絡(luò)固定的感受野不適用于多尺度目標(biāo)檢測,但卻可以估計出圖像中目標(biāo)的尺度分布呢?作者基于尺度生成網(wǎng)絡(luò)的響應(yīng)圖,給出的解釋是,對于人臉檢測,即便是感受野受限,比如只能看清眼睛,也能根據(jù)眼睛的尺度相對估計出整張臉的尺度.不過,人臉檢測有其特殊性,在面對目標(biāo)類型更豐富的通用目標(biāo)檢測任務(wù)時,該算法的思路是否仍然適用,需要進(jìn)一步的實驗驗證.

2.2 基于尺度歸一化的圖像金字塔

Singh 等人[40]就MS COCO 數(shù)據(jù)集中大量的小目標(biāo)帶來的挑戰(zhàn),采用不同的訓(xùn)練策略對Faster R-CNN 算法做了詳細(xì)的對照實驗,最后測試小目標(biāo)的檢測精度.常規(guī)訓(xùn)練策略是以800×1200 的分辨率進(jìn)行訓(xùn)練,測試時則采用1400×2000 的分辨率.以該策略為參照,他們在實驗中發(fā)現(xiàn):若將訓(xùn)練集上采樣至1400×2000,最后測試時小目標(biāo)的精度有所提升但十分微弱,可能是由于本來很大的目標(biāo)經(jīng)過上采樣后變得更大,干擾了模型對小目標(biāo)的學(xué)習(xí);若同樣對訓(xùn)練集上采樣,但只讓模型檢測小目標(biāo),超出小目標(biāo)尺度范圍的標(biāo)簽則無視,模型精度卻嚴(yán)重下降,這很有可能是因為大量的訓(xùn)練數(shù)據(jù)的丟失帶來了更嚴(yán)重的負(fù)面效果;若采用隨機(jī)多尺度訓(xùn)練策略,精度卻幾乎沒有變化,原因或許是上采樣會導(dǎo)致大的目標(biāo)可能更大、下采樣會導(dǎo)致小的目標(biāo)可能更小,于是帶來了更加極端的尺度變化,不利于模型學(xué)習(xí).綜合這幾組實驗,他們得出的結(jié)論是:極端尺度的目標(biāo)不利于訓(xùn)練,所有的訓(xùn)練樣本都應(yīng)該參與訓(xùn)練.因此,他們最終提出了名為尺度歸一化圖像金字塔(簡稱SNIP)的訓(xùn)練策略:采用圖像金字塔訓(xùn)練模型,但是每一層都只提供合適的尺度范圍內(nèi)的監(jiān)督信號,如圖4(c)所示.這樣做的根本目的是讓模型專注于檢測某一尺度范圍內(nèi)的目標(biāo),同時又通過金字塔的方式保證所有的訓(xùn)練數(shù)據(jù)都能夠被學(xué)習(xí).最后,在驗證模型時同樣采用圖像金字塔.該策略可同時應(yīng)用于Faster R-CNN 的兩個階段,并對所有尺度的目標(biāo)的檢測精度帶來全方位的提升.可以說,SNIP 本質(zhì)上是基于CNN 的固有缺陷對傳統(tǒng)的多尺度訓(xùn)練策略的一個改進(jìn),將圖像金字塔的優(yōu)勢發(fā)揮到了極致.不過,該訓(xùn)練策略并未能夠解決圖像金字塔的內(nèi)存與時間開銷問題.

之后,Singh 等人將SNIP 升級為SNIPER[42].為了能夠解決圖像金字塔在訓(xùn)練時的內(nèi)存限制問題,SNIPER不再是對完整的圖像進(jìn)行訓(xùn)練,而是從金字塔的每一層中裁剪出分辨率固定為512×512 的碎片作為訓(xùn)練單元.其中,在不同層上以碎片大小為網(wǎng)格單元,選擇囊括了該尺度下有效目標(biāo)的網(wǎng)格作為碎片,即為訓(xùn)練時的正樣本.而為了防止檢測器將背景誤判為目標(biāo),Singh 等人也將包含了若干假正例的碎片作為負(fù)樣本,共同參與訓(xùn)練.由于碎片的分辨率較小,從而有效解決了圖像金字塔的內(nèi)存問題,在訓(xùn)練時可以使用更大的批尺寸,這樣既加快了訓(xùn)練速度,也提高了模型的檢測精度.不過,在實際應(yīng)用模型檢測目標(biāo)時,仍然必須通入完整的圖像金字塔,因此,推斷的計算耗時問題還有待解決.

2.3 基于注意力機(jī)制的圖像金字塔

有一系列文獻(xiàn)基于注意力機(jī)制的思想,通過引入放大操作,重點關(guān)注圖的某個區(qū)域,以自適應(yīng)的方式實現(xiàn)多尺度目標(biāo)檢測.最早在深度學(xué)習(xí)目標(biāo)檢測中引入放大操作的是Lu 等人提出的AZ-Net[64].他們認(rèn)為,RPN 網(wǎng)絡(luò)的錨點策略本質(zhì)上是一個固定了滑動窗口大小的窮舉算法,效率既不高,對多尺度的目標(biāo)也不具備適用性.因此,他們設(shè)計了一種自適應(yīng)搜索的候選區(qū)域生成算法AZ-Net.算法以整張圖像作為搜索起點,提供鄰接區(qū)域預(yù)測和放大指示器兩種輸出,前者是指與該搜索區(qū)域尺度接近的一系列候選區(qū)域,后者是用于指示當(dāng)前搜索區(qū)域內(nèi)是否存在更小的目標(biāo).若存在,則將整張圖像分為左上、左下、右上、右下、中間這5 個區(qū)域,依次作為新的搜索起點,直到所有區(qū)域都不再包含小目標(biāo)為止.在PASCAL VOC 數(shù)據(jù)集上的實驗結(jié)果表明,該算法生成的候選區(qū)域比RPN 網(wǎng)絡(luò)生成的候選區(qū)域數(shù)量更少但質(zhì)量更高.不過,精度優(yōu)勢并不明顯.其原因有兩點:一是算法的自適應(yīng)優(yōu)勢在單個數(shù)據(jù)集上體現(xiàn)得不夠明顯,二是算法的遞歸搜索操作始終是在原始圖像經(jīng)過CNN 后提取出的特征圖上進(jìn)行,沒有引入更細(xì)粒度的特征.不過,該算法仍舊提供了一個很好的解決尺度問題的思路.

Gao 等人[65]延續(xù)了AZ-Net 的搜索的思想,通過引入具有決策能力的強(qiáng)化學(xué)習(xí),設(shè)計了一個由粗到精的策略來檢測高分辨率圖像中的目標(biāo):首先用一個粗糙的Fast R-CNN 對下采樣后的低分辨率圖像進(jìn)行檢測,生成準(zhǔn)確率提升概率圖,然后利用強(qiáng)化學(xué)習(xí)找到有可能包含小目標(biāo)的區(qū)域,采用更精細(xì)的檢測器對高分辨率的這一區(qū)域進(jìn)行目標(biāo)檢測,同時將該區(qū)域作為新的算法輸入,再次通入粗糙檢測器,如此循環(huán),直到不再包含小目標(biāo).實驗結(jié)果表明,在幾乎未損失精度的前提下,該算法在Caltech 行人檢測數(shù)據(jù)集[66]上的像素處理數(shù)量減少了50%、推斷時間縮短了25%,在YFCC100M 數(shù)據(jù)集[67]上的像素處理數(shù)量減少了70%、推斷時間縮短了50%.Uzkent 等人[68]延續(xù)了Gao 等人的做法,同樣是引入強(qiáng)化學(xué)習(xí)選擇圖像中需進(jìn)一步查看的區(qū)域,不過其區(qū)別在于,算法還會判斷該區(qū)域是由大目標(biāo)主導(dǎo)還是小目標(biāo)主導(dǎo),然后分別通過兩種不同尺度的檢測器進(jìn)行檢測,其目的在于進(jìn)一步節(jié)省計算量.在xView 遙感圖像數(shù)據(jù)集[69]上所進(jìn)行的實驗結(jié)果表明,算法相對于直接在高分辨率原圖上進(jìn)行檢測的檢測器而言,效率提升了50%,精度卻幾乎沒有下降.總的來說,這些算法都是源于注意力機(jī)制的思想,將多尺度目標(biāo)檢測視為由粗到細(xì)、從整體到細(xì)節(jié)的遞歸過程(基本流程如圖4(d)所示),并且拓寬了目標(biāo)檢測算法的邊界,引出了高分辨率圖像、深度強(qiáng)化學(xué)習(xí)等新的方向.除此以外,這些算法同樣可以看作是對圖像金字塔的優(yōu)化:從金字塔的最頂端開始檢測,并利用強(qiáng)化學(xué)習(xí)判斷金字塔的下一層中的哪一部分區(qū)域存在潛在目標(biāo),如此循環(huán),直到下一層不再包括目標(biāo)為止.所以,算法相當(dāng)于利用強(qiáng)化學(xué)習(xí)的決策能力做引導(dǎo),去除了圖像金字塔的冗余部分,解決了SNIPER 策略中仍然存在的推斷時計算耗時這一嚴(yán)重的問題.

3 基于網(wǎng)絡(luò)內(nèi)特征金字塔的多尺度目標(biāo)檢測

早期以R-CNN[8]為代表的檢測器直接在神經(jīng)網(wǎng)絡(luò)的最后一層特征圖上進(jìn)行預(yù)測,由于細(xì)粒度空間特征的缺失,對小目標(biāo)的檢測效果不佳,因此需尋求多尺度的特征表示.圖像金字塔雖能基于不同分辨率的輸入提取不同尺度的特征,但也會帶來嚴(yán)重的內(nèi)存和時間開銷問題,不具備適用性.因此,如果能在卷積神經(jīng)網(wǎng)絡(luò)內(nèi)部構(gòu)建多尺度的特征表示,就能夠在只輸入一次圖像的情況下近似地得到圖像金字塔所能提取的多尺度特征,且計算代價要小得多.現(xiàn)階段主要通過以下兩種方式構(gòu)建網(wǎng)絡(luò)內(nèi)的特征金字塔:(1) 基于跨層連接融合網(wǎng)絡(luò)內(nèi)不同深度的特征圖,得到不同尺度的特征表示;(2) 基于感受野不同的并行支路,構(gòu)建空間金字塔.

3.1 基于跨層連接構(gòu)建特征金字塔

3.1.1 特征金字塔網(wǎng)絡(luò)

考慮到卷積神經(jīng)網(wǎng)絡(luò)層層相疊的結(jié)構(gòu),越深的特征圖,其感受野越大,因此,網(wǎng)絡(luò)內(nèi)不同深度的特征圖就形成了天然的多尺度表達(dá),于是SSD 算法[15]和MS-CNN 算法[70]即被提出,可以直接在這些不同尺度的特征圖上分別檢測目標(biāo)并最后進(jìn)行整合,其中,淺層特征圖負(fù)責(zé)檢測小目標(biāo),深層特征圖負(fù)責(zé)檢測大目標(biāo).但是,從實驗結(jié)果來看,小目標(biāo)的檢測精度卻并未得到明顯改善.究其根本原因在于,這些特征層因為深度各不相同,特征表示能力也各不相同,存在著顯著的語義鴻溝.淺層特征層雖然保留了更為細(xì)粒度的空間信息,但特征表示能力太弱,缺少有效的語義信息,所以檢測效果差.因此,直接在網(wǎng)絡(luò)內(nèi)不同深度的特征圖上預(yù)測不同尺度的目標(biāo)是不合適的,需要首先構(gòu)建出每一層都具有足夠特征信息的特征金字塔.

針對SSD 算法存在的缺陷,Lin 等人提出了著名的特征金字塔網(wǎng)絡(luò)FPN[23],其基本思想在于結(jié)合淺層特征圖的細(xì)粒度空間信息和深層特征圖的語義信息對多尺度的目標(biāo)進(jìn)行檢測,網(wǎng)絡(luò)結(jié)構(gòu)如下文圖6(a)所示.算法在RPN 網(wǎng)絡(luò)的基礎(chǔ)上,額外增加了一條由上至下的側(cè)路:從最深層特征圖開始,經(jīng)過1×1 卷積與上采樣之后,與淺層特征層對齊,然后通過對應(yīng)元素相加的方式融合得到新的特征圖,以此類推,將新得到的特征圖再進(jìn)行1×1 卷積與上采樣,就能與更加淺層的特征圖相融合.最終,FPN 網(wǎng)絡(luò)內(nèi)便成功構(gòu)建了一個每一層都具備多層特征信息的5 層特征金字塔.然后,在特征金字塔的每一層上分別預(yù)測相應(yīng)尺度的目標(biāo),整合之后便得到了最終的檢測結(jié)果.原版RPN 在特征圖上每一點處都有3 個尺度的錨點,FPN 由于特征金字塔每一層只需要預(yù)測單一尺度范圍的目標(biāo),因此所有層均只設(shè)置一種尺度的錨點.實驗結(jié)果表明,該網(wǎng)絡(luò)結(jié)構(gòu)雖在一定程度上削弱了模型檢測大目標(biāo)的能力,卻顯著提高了小目標(biāo)檢測的精度,整體性能甚至超越了采用圖像金字塔進(jìn)行推斷的Faster R-CNN,且能夠保證6FPS 的檢測速度.由此可見,FPN 在代價較小的前提下,有效提升了檢測網(wǎng)絡(luò)對于多尺度目標(biāo)的適應(yīng)性.該網(wǎng)絡(luò)結(jié)構(gòu)如今已成為目標(biāo)檢測領(lǐng)域在處理多尺度問題時的通用網(wǎng)絡(luò)架構(gòu),而且還被推廣到了其他的計算機(jī)視覺任務(wù)上(例如實例分割).與FPN 同期誕生的DSSD 算法[36]也是基于類似的思想融合不同深度的特征,但區(qū)別在于DSSD 是通過反卷積操作提升特征圖分辨率,而非雙線性插值.

為了對FPN 提出的特征融合的效果有一個直觀的認(rèn)識,下文圖5 中以熱度圖的形式展示了采用FPN 架構(gòu)的YOLOv3 網(wǎng)絡(luò)在處理包含較小尺度的目標(biāo)的部分圖像時,淺層特征在融合深層特征前后的可視化對比情況.可以明顯看出,圖5(a)中整張圖都是密集的響應(yīng),語義信息強(qiáng)和弱的區(qū)域沒有明顯區(qū)分性,這也反映了為什么SSD 算法直接利用淺層特征預(yù)測小目標(biāo)的表現(xiàn)不佳;圖5(b)中,在深層特征的影響下,熱度明顯聚焦到了圖中的小目標(biāo)上,受背景干擾的影響小了很多,這體現(xiàn)了FPN 架構(gòu)對于小目標(biāo)檢測的優(yōu)勢.

3.1.2 改進(jìn)特征金字塔網(wǎng)絡(luò)的特征融合

FPN 的核心思想在于融合網(wǎng)絡(luò)內(nèi)部的不同深度的特征信息,但是,由上至下逐層融合的結(jié)構(gòu)是值得商榷的,因此出現(xiàn)了一系列對此進(jìn)行討論和改進(jìn)的算法.Liu 等人[38]認(rèn)為:(1) FPN 雖然將深層語義特征用于構(gòu)建金字塔的每一層,但是由于網(wǎng)絡(luò)加深的過程中淺層特征不斷丟失,導(dǎo)致金字塔頂端的特征層缺少空間信息,這不利于精確的目標(biāo)定位;(2) 根據(jù)目標(biāo)的尺度將其分配到金字塔的某一層進(jìn)行預(yù)測,這個策略并非最優(yōu),因為沒有考慮到其他特征層可能存在的有用信息.因此,他們提出了PANet,特征金字塔部分的結(jié)構(gòu)如圖6(b)所示.可以看出,PANet 從FPN 已經(jīng)構(gòu)建的特征金字塔的最底層開始,又增加了一條自底向上的特征再融合的側(cè)路,重新構(gòu)建了一個強(qiáng)化了空間信息的金字塔.然后,將RoI 對齊操作應(yīng)用于金字塔的每一層,再將對齊后的特征層通過取最大值來進(jìn)行融合,最終在融合的特征圖上進(jìn)行檢測,就保證了每一個目標(biāo)的預(yù)測都充分利用了所有特征層的信息.實驗跟蹤了PANet 的每一個候選區(qū)域的融合后特征所對應(yīng)的原特征金字塔的層數(shù),可以發(fā)現(xiàn),大約有70%的特征都來自于其他尺度的特征層,只有30%來自于尺度最接近的某一特征層,這證明了特征融合的必要性.最終,該算法取得了當(dāng)年MS COCO 實例分割挑戰(zhàn)的第1 名和目標(biāo)檢測挑戰(zhàn)的第2 名.

Fig.5 The comparison of the visualizations of the shallow features of YOLOv3 detector under circumstances whether concatenating deep features or not圖5 對比YOLOv3 淺層特征在融合深層特征前后的可視化

Kong 等人[71]認(rèn)為FPN 的特征融合本質(zhì)上相當(dāng)于特征層的線性組合,難以勝任高度非線性的識別任務(wù).因此,為了讓網(wǎng)絡(luò)能夠更靈活地學(xué)習(xí)每一特征層的關(guān)鍵信息,他們提出了一種新的構(gòu)建特征金字塔的方式:將不同深度的特征層拼接在一起后,采用SENet[72]的SE 模塊添加全局注意力,再通過一個殘差模塊實現(xiàn)局部重構(gòu),最后完成新的特征層的構(gòu)建.如此重復(fù),便構(gòu)造出了特征金字塔,結(jié)構(gòu)如圖6(c)所示.全局注意力和局部重構(gòu)這兩個輕量級模塊可以被任意嵌入到不同網(wǎng)絡(luò)中,實驗中分別將其運用在了Faster R-CNN 和SSD 上,均提高了模型的整體性能.

Pang 等人[73]認(rèn)為金字塔的每一層應(yīng)該相對平衡地兼顧所有特征層的信息.但是,無論是FPN 還是PANet,在構(gòu)建金字塔時都是通過從上至下或自底向上的側(cè)路逐層傳遞特征,這個過程勢必會導(dǎo)致信息的不斷流失,于是金字塔每一層的信息都主要來源于相鄰的特征圖,因為較遠(yuǎn)的特征圖的信息已經(jīng)被稀釋.所以,他們提出的Libra R-CNN 將特征金字塔的多層特征統(tǒng)一為中間層尺度后,計算它們的平均特征,然后通過non-local 模塊[74]對特征進(jìn)行加強(qiáng),最后將其疊加于原本的特征金字塔的每一層,如圖6(d)所示.實驗中,將該架構(gòu)應(yīng)用于FPN 和PANet 后,模型在MS COCO 數(shù)據(jù)集上都提升了0.9 的精度.

Liu 等人[52]同樣對FPN 進(jìn)行了反思,認(rèn)為每一特征層之間存在的不一致性限制了一階段檢測器的性能.例如,某一目標(biāo)若被分配給了某一特征層進(jìn)行預(yù)測,那么該目標(biāo)在其他特征層上的相應(yīng)區(qū)域相當(dāng)于被視為了背景,而這顯然是不合理的.部分學(xué)者為此將鄰接特征層的相關(guān)區(qū)域的梯度置零[30,31],但這種矯枉過正的做法可能會讓鄰接特征層的檢測質(zhì)量下降.因此,他們提出了自適應(yīng)空間特征融合算法(簡稱ASFF):將原特征金字塔的所有特征圖采樣至金字塔中的某一層的尺度,按照一定的權(quán)重進(jìn)行線性組合得到新的特征圖,該權(quán)重由模型學(xué)習(xí)得到.有了所有尺度的特征圖后,就得到了新的特征金字塔,如圖6(e)所示.Liu 等人從梯度計算的層面證明了該方案構(gòu)建的金字塔的特征一致性,在實驗中以增強(qiáng)版YOLOv3 作為基準(zhǔn)線,證明了ASFF 模塊要優(yōu)于簡單的特征求和或特征連接,并且沒有帶來顯著的計算開銷.

Fig.6 Overview of different ways to construct the in-network feature pyramids through cross-layer connections圖6 基于跨層連接構(gòu)建網(wǎng)絡(luò)內(nèi)特征金字塔的多種方式

Guo 等人[54]針對FPN 存在的3 個缺陷,依次提出解決方案將其升級為了AugFPN:(1) 不同特征層的語義信息是不一致的,FPN 將它們直接通過1×1 卷積后相加,勢必會削弱多尺度特征的表達(dá)能力,因此AugFPN 在訓(xùn)練時會根據(jù)融合前的特征直接進(jìn)行檢測并計算損失,再與網(wǎng)絡(luò)本身的損失進(jìn)行加權(quán)求和,提供監(jiān)督信號;(2) FPN采用從上至下的特征融合強(qiáng)化特征金字塔的語義信息,但是1×1 的卷積過程會導(dǎo)致最高層特征信息的損失,因此,AugFPN 對原本的最高層特征圖進(jìn)行空間金字塔池化操作,對所有分支進(jìn)行自適應(yīng)的特征融合后,再和1×1降維后的最高層特征圖融合,彌補(bǔ)丟失的信息;(3) FPN 中每一個實例都是根據(jù)尺度啟發(fā)式地選擇特征層,但其他層也可能有重要的特征信息,因此,AugFPN 對每一個實例會提取出它在金字塔每一層上的特征,再讓網(wǎng)絡(luò)學(xué)習(xí)權(quán)重參數(shù)對這些特征進(jìn)行求和,最后預(yù)測目標(biāo).AugFPN 應(yīng)用在不同骨架網(wǎng)絡(luò)的RetinaNet 和Faster R-CNN 上后,都明顯提升了模型的精度.

Tan 等人[75]提出的EfficientDet 在PANet 的特征金字塔架構(gòu)的基礎(chǔ)上做出了幾點改變:(1) 將只有一個輸入的節(jié)點移除,理由是未經(jīng)過特征融合,對多尺度特征的貢獻(xiàn)較小;(2) 在同一尺度的輸入特征圖和輸出特征圖之間增加了一條連接,以融合更豐富的特征;(3) 將整個特征金字塔架構(gòu)進(jìn)行多次堆疊,使其具有更強(qiáng)大的特征表示能力.最終,得到了BiFPN 架構(gòu),如圖6(f)所示.BiFPN 同樣對特征進(jìn)行加權(quán)融合,讓網(wǎng)絡(luò)能學(xué)習(xí)到不同輸入特征的重要性.EfficientDet 以基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的EfficientNet[76]作為骨架網(wǎng)絡(luò),在MS COCO 數(shù)據(jù)集上取得了當(dāng)時最好的精度.

PANet、Libra R-CNN 等方案都是人工設(shè)計網(wǎng)絡(luò)內(nèi)特征金字塔的構(gòu)造方式,而在2019 年,Ghaisi 等人[77]則采用神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索來尋找更好的構(gòu)造方案:以遞歸神經(jīng)網(wǎng)絡(luò)作為控制器,用強(qiáng)化學(xué)習(xí)對其進(jìn)行訓(xùn)練,讓它決定每次選擇哪兩個特征層以怎樣的方式進(jìn)行融合,并以某一分辨率輸出,直到填滿特征金字塔的每一層.算法最終搜索得到的NAS-FPN 的結(jié)構(gòu)如圖6(g)所示,在MS COCO 數(shù)據(jù)集上相較于原版FPN 精度提升了2%~4%不等.Wang 等人[78]同樣采用神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索,在FCOS 的基礎(chǔ)上搜索FPN 結(jié)構(gòu),與NAS-FPN 相比,增加了可變卷積,實驗中模型性能比原版FCOS 提升了1%~2%不等.

3.1.3 改進(jìn)特征金字塔網(wǎng)絡(luò)的骨架網(wǎng)絡(luò)

上述文獻(xiàn)都是針對FPN 提出的特征融合的方式而做出改變,Li 等人[45]則是對FPN 的骨架網(wǎng)絡(luò)本身進(jìn)行了改進(jìn).由于多數(shù)檢測器都采用分類網(wǎng)絡(luò)作為骨架網(wǎng)絡(luò)(例如ResNet),預(yù)訓(xùn)練也是在分類數(shù)據(jù)集上完成,他們認(rèn)為這帶來了兩個問題:(1) FPN 等檢測器引入了未參與預(yù)訓(xùn)練的額外的網(wǎng)絡(luò)階段;(2) 骨架網(wǎng)絡(luò)的感受野和下采樣系數(shù)均較大,這雖然有利于圖像分類,但空間信息的缺失不利于大目標(biāo)的精確定位,下采樣過程中語義信息的丟失不利于小目標(biāo)的識別,即便是引入了FPN 架構(gòu)也沒有解決本質(zhì)問題.為此,他們專門針對檢測任務(wù)的需求設(shè)計了新的骨架網(wǎng)絡(luò)DetNet-59,與ResNet-50 相比,有3 點主要的區(qū)別:(1) 網(wǎng)絡(luò)與FPN 有著相同的階段數(shù)量,因此所有階段都可以參與預(yù)訓(xùn)練;(2) 從第4 階段開始,DetNet 的下采樣系數(shù)固定為16,通道數(shù)固定為256;(3) 在殘差模塊中引入空洞卷積增加感受野.從實驗結(jié)果來看,DetNet 的參數(shù)量介于ResNet-50 和ResNet-101 之間,但在檢測任務(wù)上的性能表現(xiàn)要優(yōu)于它們.具體到不同尺度的目標(biāo),可以看到,DetNet 尤其擅長定位大目標(biāo)和尋找小目標(biāo),符合作者預(yù)期.

3.2 基于并行支路構(gòu)建特征金字塔

3.2.1 構(gòu)建空間金字塔

要構(gòu)建多尺度的特征表達(dá),除了使用圖像金字塔或在網(wǎng)絡(luò)內(nèi)融合不同深度的特征層構(gòu)建特征金字塔以外,還有一種方案是在網(wǎng)絡(luò)內(nèi)設(shè)計參數(shù)不同的并行支路,每條支路基于各自的感受野提取不同空間尺度下的特征圖,進(jìn)而構(gòu)建出了空間金字塔.空間金字塔這一概念最早源于Lazebnik 等人[79]提出的空間金字塔對齊策略(簡稱SPM),是詞袋模型[80]的延伸:根據(jù)不同的尺度將圖像劃分成若干子塊,然后分別統(tǒng)計每一子塊的特征,最后匯總所有特征對圖像進(jìn)行完整表達(dá).在深度學(xué)習(xí)領(lǐng)域,類似的思路可以追溯到GoogLenet[6]提出的Inception 模塊,模塊內(nèi)包含了4 個分支,其中,前3 個分支分別用1×1、3×3 和5×5 的卷積核進(jìn)行卷積操作,第4 條分支進(jìn)行最大池化,最后將所有分支的輸出融合,如圖7(a)所示.雖然具體的實現(xiàn)方法有很大差異,但I(xiàn)nception 模塊和SPM 的思想是一致的,都是為了提取圖像在不同空間尺度下的特征.SPP-Net[18]的SPP 模塊同樣是采用SPM 的多尺度分塊的方法,對每一分塊進(jìn)行池化操作,即可將任意大小的特征圖轉(zhuǎn)換為固定長度的特征向量.總而言之,構(gòu)建空間金字塔同樣是解決目標(biāo)檢測的尺度問題的一個可行方案.

受SPP-Net 的SPP 模塊的啟發(fā),Chen 等人[81]在DeepLabV2 里設(shè)計了類似的ASPP 模塊提取多尺度特征.但不同于SPP 模塊和Inception 模塊的是,ASPP 模塊第一次采用空洞卷積[82]構(gòu)建空間金字塔:4 條支路的卷積核的大小雖均為3×3,但空洞卷積系數(shù)分別為6、12、18、24,因此感受野也各不相同.在DeepLabV3[83]中,作者們又發(fā)現(xiàn),隨著空洞卷積系數(shù)的增大,濾波器的有效權(quán)重逐漸變小,最后會退化為1×1 卷積.因此,他們將ASPP 模塊的空洞卷積系數(shù)為24 的支路修改為了1×1 卷積,同時新增了一條全局平均池化的支路,如圖7(c)所示.雖然DeepLab 系列針對的是語義分割任務(wù),但思路同樣適用于目標(biāo)卷積.Liu 等人提出的RFBNet[43]中設(shè)計了包含3條支路的RFB 模塊.該模塊為了盡可能地模擬人類視覺系統(tǒng)的感受野結(jié)構(gòu),融合了Inception 模塊和ASPP 模塊的特點,如圖7(b)所示:3 條支路首先分別經(jīng)過1×1、3×3 和5×5 的卷積核濾波,然后再分別經(jīng)過空洞卷積系數(shù)為1、3、5 的3×3 空洞卷積,最后融合輸出特征圖.將RFB 模塊運用于SSD 網(wǎng)絡(luò)后,在保證檢測速度的前提下,精度也有較大提升,并明顯改善了原SSD 網(wǎng)絡(luò)在面對小目標(biāo)時的不佳表現(xiàn).

Zhao 等人[84]為了將全局信息和局部信息相結(jié)合,設(shè)計了類似于SPP 模塊的金字塔池化模塊,模塊內(nèi)包含了4 條分別進(jìn)行1×1、2×2、3×3、6×6 池化的分支提取多尺度信息,在語義分割任務(wù)上效果有明顯提升.Kim 等人提出的PFPNet[44]同樣是出于融合不同尺度的上下文信息的思想,在一階段檢測器里引入了包含3 條支路的SPP 模塊,不過,每個分支池化得到的特征圖還經(jīng)過了作者設(shè)計的MSCA 模塊,分別與另外兩個分支的輸出特征進(jìn)行了融合,如圖7(e)所示:將另外兩個分支的特征圖進(jìn)行上下采樣,然后和主干支路進(jìn)行特征拼接.最后,在3 條支路的輸出特征圖上分別進(jìn)行目標(biāo)檢測,采用非極大值抑制算法匯總結(jié)果.從MS COCO 數(shù)據(jù)集的實驗結(jié)果來看,PFPNet 比使用FPN 架構(gòu)的YOLOv3 還要略勝一籌.

Fig.7 Overview of different ways to construct the in-network feature pyramids through parallel branches圖7 基于并行支路構(gòu)建網(wǎng)絡(luò)內(nèi)特征金字塔的多種方式

3.2.2 尺度不變特征

SSD[15]、FPN[23]等一系列在網(wǎng)絡(luò)內(nèi)部的不同特征圖上檢測不同尺度目標(biāo)的算法,本質(zhì)上是以更小的計算代價近似地構(gòu)建圖像金字塔最終得到的多尺度特征表達(dá).但是,Li 等人[51]指出,網(wǎng)絡(luò)內(nèi)部的多尺度特征圖的深度各不相同,感知特征的能力也大相徑庭,簡單的特征融合并不能完全彌補(bǔ)較小的目標(biāo)所缺失的語義信息,因此勢必會犧牲不同尺度目標(biāo)的特征一致性.而圖像金字塔就不存在這個問題,因為任何尺度的輸入圖像都經(jīng)過了同種程度的特征提取,所以經(jīng)過精心設(shè)計的SNIPER 算法[42]取得了更出色的實驗結(jié)果,當(dāng)然,計算開銷始終是圖像金字塔算法繞不過去的坎.如何才能結(jié)合圖像金字塔和FPN 的優(yōu)勢呢?Li 等人認(rèn)為,圖像金字塔和構(gòu)建網(wǎng)絡(luò)內(nèi)特征金字塔的共同思路在于,模型在檢測不同尺度的目標(biāo)時需要使用不同大小的感受野才能有更好的表現(xiàn).因此,他們首次設(shè)計了以感受野作為唯一變量的實驗:利用空洞卷積,只改變特定卷積層的空洞卷積系數(shù),觀察模型在MS COCO 數(shù)據(jù)集上的表現(xiàn).實驗結(jié)果印證了他們的觀點:小、中、大目標(biāo)分別在空洞卷積系數(shù)為1、2、3 的模型中有著最佳精度.基于這一結(jié)果,他們提出了Trident 模塊,基本結(jié)構(gòu)如圖7(d)所示.該模塊包括了3 個核心設(shè)計:(1) 模塊內(nèi)有3 條支路,每條支路的卷積層的空洞卷積系數(shù)不同,換言之,即感受野不同;(2) 3 條支路雖然感受野不同,但是權(quán)值是共享的;(3) 訓(xùn)練時,采用類似SNIP[40]的策略,在不同的分支上根據(jù)感受野的不同,設(shè)置不同尺度的目標(biāo)的監(jiān)督信號.將Trident 模塊運用于Faster R-CNN 上得到TridentNet,推斷時將3 個分支的輸出進(jìn)行匯總,最終在MS COCO 數(shù)據(jù)集上取得了超越SNIPER 的結(jié)果.可以看出,與RFB 模塊或PFPNet 相比,Trident 模塊最大的特點就在于巧妙地利用了空洞卷積的特性,設(shè)計了3 條支路權(quán)重共享這一妙招,可以說是體現(xiàn)了模塊的精髓:同樣的目標(biāo)在不同的尺度下,有些特征會發(fā)生變化,也有些特征不會隨著尺度而改變.權(quán)重共享這一設(shè)計就相當(dāng)于在強(qiáng)迫神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)尺度不變的特征,在不同的感受野下檢測不同尺度的同一目標(biāo),能夠得到同樣的結(jié)果.

盡管TridentNet 的計算開銷趕不上圖像金字塔,但多條支路的輸出仍然是比較耗時的.為了保證算法的實用性,他們額外設(shè)計了訓(xùn)練時在所有分支訓(xùn)練所有目標(biāo)、但推斷時只使用中間分支的TridentNet Fast,相當(dāng)于網(wǎng)絡(luò)內(nèi)部的多尺度數(shù)據(jù)增強(qiáng),在沒有引入任何額外計算量的前提下精度相較于基準(zhǔn)線提升了 2.7,與原版TridentNet 的差距也只有0.6.雖然TridentNet 的本質(zhì)在于學(xué)習(xí)尺度不變的特征,但是,為什么舍棄了SNIP 訓(xùn)練策略的TridentNet Fast 也能夠取得接近TridentNet 的實驗結(jié)果呢?作者給出的猜測是由于權(quán)重共享,更具體的原因還有待進(jìn)一步研究.

4 多尺度目標(biāo)檢測的其他策略

無論是使用圖像金字塔,還是在網(wǎng)絡(luò)內(nèi)構(gòu)建特征金字塔,都是利用基于多尺度的特征來解決目標(biāo)檢測的尺度問題.除了這一思路以外,也有學(xué)者從檢測算法流程中更細(xì)節(jié)的層面去解決尺度問題,包括錨點、動態(tài)卷積、基于生成對抗網(wǎng)絡(luò)重建特征等.本節(jié)將對這些策略一一進(jìn)行概述.

4.1 錨 點

4.1.1 錨點分布的影響

早期的目標(biāo)檢測為了檢測到不同尺度的目標(biāo),除了采用固定大小的滑動窗口在圖像金字塔上逐層滑動以外,還可以采用不同大小的滑動窗口輪流在同一張圖上滑動.Ren 等人[21]提出的RPN 網(wǎng)絡(luò)引入的錨點這一概念,同樣相當(dāng)于在骨架網(wǎng)絡(luò)提取的特征圖上設(shè)置了9 個不同大小的滑動窗口(3 種尺度和3 種長寬比)作為檢測的先驗信息,以確保網(wǎng)絡(luò)能夠盡可能地覆蓋更大尺度范圍內(nèi)的目標(biāo).雖然模型對于小目標(biāo)的檢測精度并不理想,但多尺度的錨點策略還是成為了后來多數(shù)檢測器的標(biāo)配,結(jié)合特征金字塔甚至能夠進(jìn)一步擴(kuò)大錨點的尺度范圍.例如,FPN 就在每一輸出特征層都布置了不同尺度的錨點.

也正是考慮到錨點的影響,Ming 等人[85]指出,除了特征的融合以外,FPN 架構(gòu)有效的根源,可能并非特征金字塔網(wǎng)絡(luò)架構(gòu)帶來的多尺度的特征表達(dá),而是每一層特征圖上不同的錨點分布,它們的數(shù)量、尺度分布加起來遠(yuǎn)遠(yuǎn)超過了最早的Faster R-CNN,在過往的分析中忽視了這一因素.因此,Ming 等人基于WIDER FACE 人臉檢測數(shù)據(jù)集[86],在FPN 架構(gòu)的基礎(chǔ)上設(shè)計了多組實驗進(jìn)行對比,結(jié)果見表2.其中,原版FPN 為基準(zhǔn)線,FPNfinest-stride 表示只利用FPN 的最后一層特征圖進(jìn)行檢測,但是設(shè)置和原本的FPN 所有特征層上同樣的數(shù)量以及分布的錨點,結(jié)果精度相對于原版FPN 幾乎沒有下降.這說明,至少對于人臉檢測而言,在FPN 的多層特征圖上進(jìn)行檢測可能并不是必要的,錨點的設(shè)置才是關(guān)鍵.于是,他們設(shè)計了表2 中的FPN-finest,即同樣是在最后一層特征圖上進(jìn)行預(yù)測,但將所有錨點的步長都統(tǒng)一為最小尺度的錨點的步長,結(jié)果是:簡單和普通目標(biāo)的精度有所上升,但困難目標(biāo)的精度卻明顯下降.鑒于此,對不同模型的錨點分布進(jìn)行統(tǒng)計后,他們得出新的結(jié)論:錨點的尺度分布不均衡和正負(fù)分布不均衡對結(jié)果有著重要影響.因此,他們提出了錨點的分組采樣策略,即表2 中的FPN-finest-sampling:將錨點按照尺度分為不同的組別,在計算損失函數(shù)時,不再使用所有的數(shù)據(jù),而是在每一個組內(nèi)進(jìn)行隨機(jī)采樣,實現(xiàn)不同尺度的錨點的平衡.從表2 中可以看到,即便FPN-finest-sampling 只利用了FPN 的最后一層特征圖進(jìn)行檢測,應(yīng)用了分組采樣策略后卻超越了包括原版FPN 的所有模型.雖然人臉檢測的結(jié)論不確定是否能夠直接推廣到其他數(shù)據(jù)類型的多尺度檢測,但是作者們對于FPN 結(jié)構(gòu)的反思和對于錨點分布這一因素的探討,的確值得深入研究.

Table 2 Quantitative comparison of different anchor strategies based on Faster R-CNN’s face detection performance on WIDER FACE validation set表2 基于Faster R-CNN 在WIDER FACE 驗證集上的人臉檢測性能量化對比不同的錨點策略

4.1.2 錨點的功與過

多尺度的錨點設(shè)置雖然已成為多數(shù)檢測器面對尺度問題的標(biāo)配,但是近年來越來越多的學(xué)者意識到錨點策略所存在的天然缺陷.例如,以FPN 為例,Zhu 等人[30]指出訓(xùn)練時會規(guī)定目標(biāo)的尺度大小,這一點決定了哪一特征層負(fù)責(zé)對它進(jìn)行檢測,然后又根據(jù)目標(biāo)和錨點的交并比決定哪一種尺度的錨點負(fù)責(zé)回歸它的坐標(biāo),這些都是人為經(jīng)驗決定的啟發(fā)式規(guī)則,實際上并不是最優(yōu)的.因此,為了改善這一問題,Zhu 等人基于RetinaNet 提出了FSAF 模塊.該模塊在特征金字塔的每一層都新增了一條無錨點(anchor-free)分支,直接預(yù)測當(dāng)前位置相對于目標(biāo)矩形框的4 個邊界的距離.兩種分支參與聯(lián)合訓(xùn)練,其中,不基于錨點進(jìn)行預(yù)測的分支會通過在線特征選擇的方式進(jìn)行學(xué)習(xí):根據(jù)每一條支路的輸出為每一個目標(biāo)選擇確定最優(yōu)(即損失最小)的特征層,并且只為相應(yīng)特征層提供監(jiān)督信號.在推斷的時候,可以結(jié)合基于錨點的分支和舍棄錨點的分支進(jìn)行預(yù)測.從結(jié)果來看,單獨的舍棄錨點的分支,其預(yù)測結(jié)果即已超越了原RetinaNet,而若與基于錨點的分支共同預(yù)測,那么就能更好地加以互補(bǔ),因為從實驗結(jié)果來看,不基于錨點的分支能夠檢測出尺度更加極端的目標(biāo).在MS COCO 數(shù)據(jù)集的測試中,FASF 比RetinaNet 的整體準(zhǔn)確率提升了1.8%,小目標(biāo)準(zhǔn)確率提升了2.2%.

同樣地,Wang 等人[31]也指出錨點的缺陷:(1) 錨點的尺寸需要預(yù)先定義,如果定義得不好會明顯降低模型的性能;(2) 為了保證足夠的召回率,往往需要大量的錨點,然而其中的大部分錨點都是對檢測結(jié)果沒有幫助的.于是,他們提出,根據(jù)圖像的特征首先預(yù)測出合適的錨點的中心點位置和長寬.然后,根據(jù)錨點的尺度采用可變卷積對原始的特征圖進(jìn)行修正,最后基于新的特征圖和預(yù)測的錨點進(jìn)行目標(biāo)檢測.實驗中,該算法生成的候選區(qū)域的小目標(biāo)召回率比RPN 高了9.2%,錨點的數(shù)量卻減少了90%,應(yīng)用在Faster R-CNN 上能夠提升2.7%的mAP.Tian 等人[32]為了排除錨點帶來的負(fù)面影響,提出了FCOS 算法,類似語義分割那樣逐像素點地進(jìn)行目標(biāo)檢測.他們規(guī)定,圖像中每個落入了矩形框內(nèi)的點都屬于正樣本,并回歸該點到矩形框4 條邊界的距離.如果同一個點落入了多個目標(biāo)的矩形框中,則選擇面積較小的框進(jìn)行標(biāo)記.同時,為了避免大量遠(yuǎn)離目標(biāo)中心的位置產(chǎn)生的低質(zhì)量矩形框,他們還添加了一個中心度分支,以預(yù)測偏離中心點的程度,取值在0~1 之間.將中心度與分類結(jié)果相乘,得到最終結(jié)果,就能降低遠(yuǎn)離中心的矩形框的權(quán)重.算法既能直接運用于一階段檢測器,也能用在二階段檢測器的RPN 階段.在同樣的骨架網(wǎng)絡(luò)下,FCOS 比RetinaNet 小目標(biāo)的準(zhǔn)確率高了2.6%.不過,Zhang 等人[55]在對只使用一個錨點的RetinaNet 和FCOS 算法進(jìn)行仔細(xì)的對比研究后認(rèn)為,基于錨點的算法和舍棄錨點的算法的本質(zhì)區(qū)別在于正負(fù)樣本的選取,錨點的尺寸反而影響不大.因此,他們提出了自適應(yīng)訓(xùn)練樣本選取策略(簡稱ATSS),運用在RetinaNet 和FCOS 上都能有穩(wěn)定的性能提升.Ke 等人[87]認(rèn)為,現(xiàn)有錨點策略僅通過錨點和目標(biāo)交并比的大小來分配錨點,導(dǎo)致了分類與定位任務(wù)的割裂.因此,他們提出了多錨點學(xué)習(xí)策略,為每一個目標(biāo)篩選出交并比較高的多個錨點組成錨點袋,并結(jié)合分類和定位的分?jǐn)?shù)來評估錨點袋中的正樣本錨點,整體參與迭代訓(xùn)練,以使最終選擇的錨點在檢測任務(wù)上有更好的表現(xiàn).

4.2 交并比閾值

在目標(biāo)檢測的訓(xùn)練過程中,我們通常是基于預(yù)測矩形框和真實標(biāo)簽的交并比來確定正負(fù)樣本,譬如交并比大于0.5 的為正樣本,小于0.3 的為負(fù)樣本.但是,這樣的閾值設(shè)定主要是基于經(jīng)驗,并不一定是最優(yōu)選擇.而且,采用固定的交并比閾值對于多尺度目標(biāo)檢測來說更加不合適,因為相等的坐標(biāo)偏差會對小目標(biāo)的交并比造成更大的影響,對于大目標(biāo)的影響則微弱得多.為了嘗試解決這一問題,Cai 等人[37]提出了Cascade R-CNN 算法,將3個R-CNN 網(wǎng)絡(luò)分別設(shè)置0.5、0.6、0.7 的交并比閾值,然后級聯(lián)在一起.這樣做的依據(jù)是,如果直接在單個網(wǎng)絡(luò)上將交并比閾值提高,會使得正樣本數(shù)量快速減少,導(dǎo)致網(wǎng)絡(luò)精度顯著下降.因此,Cai 等人便想到了以級聯(lián)的方式逐步提升生成的矩形框的質(zhì)量,將前一個檢測網(wǎng)絡(luò)的輸出作為后一個檢測網(wǎng)絡(luò)的輸入,就能夠不斷地適應(yīng)更高的交并比閾值,并且每一個網(wǎng)絡(luò)都可以檢測特定交并比范圍內(nèi)的目標(biāo).該算法提出的級聯(lián)結(jié)構(gòu)對于精度的提升是顯著的,不過也明顯增加了訓(xùn)練時間和推斷時間.同樣是考慮到固定的交并比閾值并不合理,Zhang 等人[58]提出的Dynamic R-CNN 算法則是基于候選框的整體質(zhì)量,根據(jù)一定百分比動態(tài)地控制交并比閾值.雖然與Cascade R-CNN 的思想相似,但該算法沒有級聯(lián)多個檢測器,只調(diào)整了訓(xùn)練過程,不影響推斷過程,實用性更強(qiáng).

4.3 動態(tài)卷積

傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)存在著一個固有缺陷:卷積核的大小是固定的,池化層的尺度也是固定的,這就導(dǎo)致了網(wǎng)絡(luò)內(nèi)所有特征層的感受野始終是固定的,不利于感知不同尺度的目標(biāo).因此,便有了一系列方法嘗試著將卷積操作動態(tài)化.例如,空洞卷積[82]的提出,就是讓卷積層能夠在參數(shù)量不變的情況下,感受野隨著空洞卷積系數(shù)單調(diào)變化,這也使得神經(jīng)網(wǎng)絡(luò)能夠更方便地捕獲多尺度的特征.而Dai 等人提出的可變卷積[41]則更進(jìn)一步,對卷積計算的每一個采樣點的位置都增加了一個偏置,這樣就可以讓卷積核呈現(xiàn)出各式各樣的形狀,空洞卷積相當(dāng)于是可變卷積的一種特例.同樣地,池化層也可以增加偏置,進(jìn)而被改造為可變池化.從實驗的可視化結(jié)果來看,可變卷積的確能夠幫助神經(jīng)網(wǎng)絡(luò)更好地適應(yīng)不同形狀和尺度的目標(biāo).不過,Zhu 等人[49]也發(fā)現(xiàn)可變卷積因為偏置不可控,引入了過多的可能造成負(fù)面影響的上下文信息.因此,他們對可變卷積進(jìn)行了升級,讓其不僅能學(xué)習(xí)偏置,還能學(xué)習(xí)到每個采樣點的權(quán)重,相當(dāng)于局部的注意力機(jī)制.此外,文獻(xiàn)[49]還讓模型去模仿R-CNN 算法提取出的特征,以進(jìn)一步消除冗余的上下文信息的影響,提高了模型性能.總體來說,可變卷積這一設(shè)計顯著增加了卷積神經(jīng)網(wǎng)絡(luò)的自由度,可以很好地與其他檢測器兼容.Chen 等人[88]則提出了動態(tài)卷積,即根據(jù)輸入集成多個并行的卷積核,再基于注意力機(jī)制對其進(jìn)行融合,因此具有適應(yīng)性更強(qiáng)的特征表達(dá)能力.該方法應(yīng)用于輕量級的MobileNetV3-small[89]后,在ImageNet 分類數(shù)據(jù)集上取得了4%的Top-1 正確率提升,但是參數(shù)量也變?yōu)榱嗽P偷?~4 倍左右,因此,目前而言還難以推廣到成熟的檢測網(wǎng)絡(luò)中.

4.4 邊界框損失函數(shù)

L1 和L2 范數(shù)是經(jīng)典的回歸損失函數(shù),在目標(biāo)檢測任務(wù)中可以用于對邊界框進(jìn)行回歸.但是L1 損失函數(shù)的收斂速度較慢且解不穩(wěn)定,L2 損失函數(shù)對離群點敏感而不夠魯棒.因此,Girshick[19]提出了平滑L1 損失函數(shù),結(jié)合了兩者的特點:相比L1 損失函數(shù),在靠近真實值時,梯度值足夠小,收斂更快;相比L2 損失函數(shù),離群點的梯度更小,更魯棒.不過,這3 種損失函數(shù)有兩個共同的缺點:(1) 都是對矩形框的頂點坐標(biāo)和長寬的偏移進(jìn)行懲罰,無法直接反映預(yù)測框與真實框的相似程度;(2) 都不具備尺度不變性.為了解決這一問題,Yu 等人[90]提出了交并比損失函數(shù),將矩形框視為一個整體,直接對比例形式的交并比求對數(shù)來指導(dǎo)邊界回歸,因此,該損失函數(shù)就具備了尺度不變性,相比L2 損失函數(shù),在處理多尺度的目標(biāo)時有著明顯的效果提升.

Rezatofighi 等人[91]對交并比損失函數(shù)進(jìn)行了更加深入的分析,指出了它的不足:(1) 如果預(yù)測框與真實框沒有相交,那么交并比始終為0,無法根據(jù)兩個框的真實距離進(jìn)行學(xué)習(xí);(2) 交并比無法區(qū)分矩形框重合的角度,進(jìn)而無法精確反映重合程度.為此,他們提出了廣義交并比(GIoU),在交并比的基礎(chǔ)上新增了一個基于預(yù)測框和真實框的最小閉包面積的懲罰項.由于該懲罰項受預(yù)測框和真實框的距離和角度的影響,因此在保留尺度不變性的前提下解決了上述兩個問題.實驗中,GIoU 取代L2 損失函數(shù)后,讓YOLOv3 的AP 和AP75 分別提升了1.9%和2.9%,取代平滑L1 損失函數(shù)后,讓Faster R-CNN 的AP 和AP75 分別提升了0.9%和1.2%.

Zheng 等人[92]在實驗中發(fā)現(xiàn),GIoU 在訓(xùn)練過程中會傾向于先增大預(yù)測框與真實框產(chǎn)生交集,然后公式中的交并比項發(fā)揮作用,使交集最大化.一旦預(yù)測框?qū)⒄鎸嵖蛲耆鼑?GIoU 損失函數(shù)會退化為普通的交并比損失函數(shù),無法區(qū)分相對位置關(guān)系.因此他們認(rèn)為,過于依賴交并比項使得GIoU 的收斂速度太慢,甚至對于很多先進(jìn)的檢測算法無法很好地收斂.所以他們提出了距離交并比(DIoU)損失函數(shù)和完全交并比(CIoU)損失函數(shù).DIoU在交并比損失函數(shù)的基礎(chǔ)上增加了預(yù)測框和真實框的中心距離的懲罰項,CIoU 在DIoU 的基礎(chǔ)上新增了長寬比相似性的懲罰項.以基于交并比損失函數(shù)的Faster R-CNN 為基準(zhǔn)線,他們所做的對比實驗的結(jié)果見表3.可以看到,DIoU 在所有指標(biāo)上均超越了GIoU,但CIoU 的小目標(biāo)準(zhǔn)確率卻出現(xiàn)了下滑,說明長寬比這一懲罰項對于小目標(biāo)的收斂帶來了更多的負(fù)面效應(yīng).

Table 3 Quantitative comparison of different loss functions based on Faster R-CNN’s detection performance on the MS COCO TEST-DEV dataset表3 基于Faster R-CNN 在MS COCO 測試集上的檢測性能量化對比不同的損失函數(shù)

4.5 解耦分類與定位

目標(biāo)檢測任務(wù)包含了目標(biāo)分類和目標(biāo)定位兩部分,Faster R-CNN 等傳統(tǒng)算法在第2 階段普遍通過共享的全連接層對候選區(qū)域進(jìn)行特征提取,最后再在兩個分支上分別進(jìn)行分類和回歸.但是,這種做法的合理性值得商榷.Song 等人[53]基于熱度圖分析指出,分類任務(wù)的敏感區(qū)域為目標(biāo)的顯著性區(qū)域,而定位任務(wù)的敏感區(qū)域則是目標(biāo)的邊界區(qū)域,兩者在空間上無法對齊.顯然,對于多尺度目標(biāo)檢測,隨著目標(biāo)的尺度增大,分類與定位任務(wù)在空間上的不對齊問題也會愈加嚴(yán)重.同樣地,Wu 等人[56]則從全連接層和卷積層的特性出發(fā),認(rèn)為前者的空間敏感性使它更適合于進(jìn)行分類,后者的權(quán)重共享的特點使它提取出的特征的空間相關(guān)性更強(qiáng),更適合回歸邊界,實驗結(jié)果證明了這一觀點.為了解決分類與回歸問題潛在的沖突,最直觀的思路就是將兩個任務(wù)進(jìn)行解耦.

Lu 等人[50]提出Grid R-CNN,首次將回歸分支分離出來,對候選區(qū)域特征使用全卷積網(wǎng)絡(luò)得到概率熱度圖,再預(yù)測邊界框的網(wǎng)格點,實現(xiàn)定位.實驗結(jié)果表明,該方案能夠顯著提升較高的交并比閾值下的準(zhǔn)確率.Wu 等人[56]的解決方案是Double-Head,在RoI 對齊層后分為兩條支路,一條經(jīng)過兩層全連接層后進(jìn)行分類,另一條經(jīng)過兩層卷積層后進(jìn)行回歸.而Song 等人[53]提出的TSD 模塊則對候選區(qū)域特征也進(jìn)行了解耦,即分類和回歸分支對原始的候選區(qū)域進(jìn)行了不同的特征變換,使其更適應(yīng)于不同的任務(wù).Cao 等人[57]考慮到Grid R-CNN 在固定區(qū)域內(nèi)尋找關(guān)鍵點的策略難以應(yīng)對尺度較大的目標(biāo),因此提出了密集局部回歸策略,使用全卷積網(wǎng)絡(luò)預(yù)測候選區(qū)域的多個前景子區(qū)域的偏移量并求平均.從表1 中的實驗對比可以看到,該算法與Grid R-CNN 相比在大目標(biāo)的精度上提升了5%.

4.6 小目標(biāo)特征重建

在MS-CNN 算法[70]中,為了能夠更好地檢測尺度較小的目標(biāo),網(wǎng)絡(luò)中設(shè)計了反卷積層來對特征圖進(jìn)行上采樣,有效地減少了內(nèi)存占用和計算耗時.Zhou 等人提出STOD 算法[47],以DenseNet-169[93]作為骨架網(wǎng)絡(luò),設(shè)計了尺度變換模塊,將最后的多個通道的特征圖通過平鋪展開的方式構(gòu)造成為分辨率更高、通道數(shù)更少的特征圖,用來檢測小目標(biāo).Zhang 等人提出的DES 算法[48]為了能夠加強(qiáng)SSD 的淺層特征在檢測小目標(biāo)時缺失的語義信息,設(shè)計了一個分割模塊的分支進(jìn)行語義分割,將分割得到的特征圖作為權(quán)重疊加到淺層特征圖上,相當(dāng)于一種注意力機(jī)制.從可視化的結(jié)果來看,淺層特征圖上的無關(guān)特征得到了有效的抑制.

除此以外,生成對抗網(wǎng)絡(luò)的出現(xiàn),同樣為小目標(biāo)的特征重建提供了新的思路.Li 等人[94]設(shè)計了一個Perceptual GAN 模型,其中的生成器負(fù)責(zé)學(xué)習(xí)將小目標(biāo)的特征重建為與大目標(biāo)的特征相接近的超分辨率特征,判別器既負(fù)責(zé)判斷生成的特征是否是真實的大目標(biāo)特征,同時還會將定位精度反饋給生成器,計算感知損失函數(shù),其目的在于判斷生成的超分辨率特征是否有助于提升檢測精度.算法最終在Tsinghua-Tencent 100K[95]和Caltech 數(shù)據(jù)集[66]上取得了當(dāng)時的最佳結(jié)果.Bai 等人[46]提出了一個端到端的多任務(wù)生成對抗網(wǎng)絡(luò)MTGAN,其中生成器用于對模糊的低分辨率圖像進(jìn)行超分辨率重建,判別器除了判斷生成的超分辨率圖像的真假以外,還會完成目標(biāo)的分類和定位,即檢測器的任務(wù).事實上,該算法的一大優(yōu)勢在于能夠與任何已有的檢測器相結(jié)合.在訓(xùn)練時,判別器計算得到的分類和定位的損失也會反向傳播給生成器,以便使其能夠重建出更多對檢測有益的細(xì)節(jié).作者們認(rèn)為,相較于傳統(tǒng)的雙線性插值,超分辨率網(wǎng)絡(luò)生成的圖像更真實、質(zhì)量更高,更有利于檢測任務(wù).該算法在MS COCO 數(shù)據(jù)集上取得了超越Mask R-CNN 的結(jié)果,而且精度的提升尤其體現(xiàn)在小目標(biāo)上.

4.7 數(shù)據(jù)增強(qiáng)

此外,數(shù)據(jù)增強(qiáng)同樣是緩解尺度問題的可行方案,比如 YOLOv2 算法[27]的隨機(jī)多尺度訓(xùn)練策略.此外,Kisantal 等人[96]以Mask R-CNN 作為基準(zhǔn)線,針對MS COCO 數(shù)據(jù)集小目標(biāo)檢測精度較差的問題提出了兩種數(shù)據(jù)增強(qiáng)的手段:(1) 采用過采樣策略,解決數(shù)據(jù)集中包含小目標(biāo)圖片較少的問題;(2) 在同一張圖片里,對小目標(biāo)的分割掩膜進(jìn)行復(fù)制粘貼,使錨點策略能夠匹配到更多的小目標(biāo)正樣本中,進(jìn)而增加小目標(biāo)在損失函數(shù)中的權(quán)重.該思路的本質(zhì)是通過改變訓(xùn)練數(shù)據(jù)的目標(biāo)尺度分布,讓模型更傾向于感知小目標(biāo).從實驗結(jié)果來看,大目標(biāo)的檢測精度略有下降,小目標(biāo)的檢測精度有所提升.

在目標(biāo)檢測任務(wù)中,為了提高檢測器的整體性能,通常會采用額外的數(shù)據(jù)集對模型進(jìn)行預(yù)訓(xùn)練,然后再在正式的數(shù)據(jù)集上進(jìn)行微調(diào),亦或是直接讓額外的數(shù)據(jù)集參與聯(lián)合訓(xùn)練.但是,Yu 等人[97]指出,如果兩個數(shù)據(jù)集的目標(biāo)尺度差異較大的話,會對模型的性能造成負(fù)面影響.因此,他們提出了尺度匹配算法:通過在原數(shù)據(jù)集里隨機(jī)采樣來確定期望的目標(biāo)絕對值尺度分布,然后計算該尺度相對于額外數(shù)據(jù)集的某一張圖像的尺度比例,根據(jù)比例對整張圖像進(jìn)行放大或縮小,如此循環(huán),直到處理完整個額外數(shù)據(jù)集.當(dāng)然,該算法還存在一個缺陷:數(shù)據(jù)集在經(jīng)過尺度匹配之后,目標(biāo)的尺度順序可能會發(fā)生改變,原本的小目標(biāo)可能被縮小,大目標(biāo)被放大.因此,作者們也采用了直方圖均衡化的思想,設(shè)計了單調(diào)尺度匹配算法,以保證尺度匹配過程中不會改變尺度順序.最后的實驗結(jié)果表明,若在單調(diào)尺度匹配后的MS COCO 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,相對于直接在原始的MS COCO 數(shù)據(jù)集上進(jìn)行預(yù)訓(xùn)練,得到的模型在包含大量極端小目標(biāo)的TinyPerson 數(shù)據(jù)集[97]上有5%左右的相對精度提升.可見,該數(shù)據(jù)增強(qiáng)策略不失為一種構(gòu)建不同尺度數(shù)據(jù)集間的橋梁的可行方案.

Chen 等人[98]提出的圖像拼接(stitcher)也是一種能夠顯著提升小目標(biāo)精度的數(shù)據(jù)增強(qiáng)手段.類似的思路最早起源于Yun 等人[99]提出的CutMix 數(shù)據(jù)增強(qiáng)策略,即將一張經(jīng)過裁剪的圖像以補(bǔ)丁的形式粘貼到其他圖像上作為新的訓(xùn)練數(shù)據(jù),如圖8(a)所示.

Fig.8 CutMix and Mosaic data augmentation圖8 CutMix 與Mosaic 數(shù)據(jù)增強(qiáng)

這樣做能夠提高訓(xùn)練效率、增強(qiáng)模型的魯棒性.Bochkovskiy 等人[59]在YOLOv4 中將CutMix 改進(jìn)為Mosaic數(shù)據(jù)增強(qiáng),不再只是將一張圖粘貼到另一張圖上,而是將4 張圖拼接在一起,如圖8(b)所示,這讓目標(biāo)的上下文信息變得更加復(fù)雜.圖像拼接屬于Mosaic 數(shù)據(jù)增強(qiáng)的特殊形式,雖然該想法不是Chen 等人的首創(chuàng),但他們從多尺度目標(biāo)檢測的視角賦予了圖像拼接新的意義.他們觀察到數(shù)據(jù)集中小目標(biāo)的分布極不均勻,導(dǎo)致?lián)p失函數(shù)的計算中小目標(biāo)的占比非常低,沒有提供給網(wǎng)絡(luò)充足的監(jiān)督信號.因此,受SNIP 和SNIPER 裁剪策略的啟發(fā),他們反其道而行之,將圖像縮小并拼接在一起,從而能夠?qū)⒅?、大目?biāo)的尺度縮小,進(jìn)而更好地權(quán)衡訓(xùn)練數(shù)據(jù)的尺度分布.此外,他們還提出了相應(yīng)的訓(xùn)練策略:以損失函數(shù)中小目標(biāo)的比重作為圖像拼接的反饋信號,若上一次迭代中小目標(biāo)的損失比重過低,則下一次迭代就會采用拼接圖像來訓(xùn)練.圖像拼接的實驗對比見表4,可以看到,模型的性能得到了全方位的提升,其中小目標(biāo)的精度上漲最為明顯.此外,在訓(xùn)練時間加倍的情況下,引入圖像拼接的模型能夠持續(xù)獲得穩(wěn)定的性能提升,而不會輕易過擬合,這應(yīng)該得益于顯著增強(qiáng)的數(shù)據(jù)多樣性.相比SNIPER,圖像拼接數(shù)據(jù)增強(qiáng)除了實現(xiàn)更簡單、不需要經(jīng)過繁瑣的正負(fù)碎片制作以外,更難能可貴的是,推斷時不需要付出任何額外代價.

Table 4 Quantitative evaluation of Stitcher augmentation and corresponding training strategies based on Faster R-CNN’s detection performance on the MS COCO TEST-DEV dataset表4 基于Faster R-CNN 在MS COCO 測試集上的檢測性能量化評估圖像拼接數(shù)據(jù)增強(qiáng)及其訓(xùn)練策略

5 多尺度目標(biāo)檢測的研究展望

多尺度目標(biāo)檢測一直以來是一個研究難點.結(jié)合目前已有的方案,本節(jié)總結(jié)了一些值得深入探討的問題,可作為未來研究的方向.

(1)“碎片式”圖像金字塔.SNIP[40]策略讓CNN 能夠盡最大可能地發(fā)揮圖像金字塔的潛力,但是訓(xùn)練時的內(nèi)存問題和推斷時的速度問題限制了它的推廣.SNIPER[42]通過裁剪圖像金字塔的碎片作為訓(xùn)練樣本,解決了訓(xùn)練問題,但是推斷問題沒有得到改善,因為圖像碎片的生成是基于已有的目標(biāo)標(biāo)簽.若要解決這個問題,則需要通過某種不依賴于標(biāo)簽的方法,構(gòu)建出“碎片式”圖像金字塔,即每一層都只保留了同一尺度范圍內(nèi)的目標(biāo).用強(qiáng)化學(xué)習(xí)來選擇放大區(qū)域或許是一個可行的方案.

(2) 高分辨率圖像的多尺度目標(biāo)檢測.在對高分辨率圖像進(jìn)行目標(biāo)檢測時,往往并不缺少小目標(biāo)的細(xì)節(jié)信息,而是難以實現(xiàn)精度與計算資源的權(quán)衡.由于受到內(nèi)存、檢測速度需求等限制,Faster R-CNN[21]、YOLO[14]等算法都會先將高分辨率圖像下采樣至某一分辨率,再通入網(wǎng)絡(luò)進(jìn)行檢測,這就導(dǎo)致了信息的丟失.若采用滑動窗口法實現(xiàn)地毯式檢測,整體速度又太慢.Gao 等人[65]提出的用強(qiáng)化學(xué)習(xí)引導(dǎo)細(xì)粒度檢測的策略,對于日常設(shè)備拍攝的高分辨率圖像是有一定效益的.但是,對于細(xì)粒度信息更密集的圖像是否仍有效(例如無人機(jī)航拍)以及能否設(shè)計出更簡潔的算法,都還有待于進(jìn)一步加以研究.

(3) 特征金字塔架構(gòu)下的特征融合.自特征金字塔網(wǎng)絡(luò)(FPN)[23]誕生之后,有很多新算法在它的基礎(chǔ)上改進(jìn)了特征金字塔的構(gòu)建方式.但是,PANet[38]、Libra R-CNN[73]和ASFF[52]等算法都是在FPN 已構(gòu)建好的特征金字塔的基礎(chǔ)上再次融合特征,構(gòu)建新的金字塔.這不得不讓人提出疑問,究竟是新提出的特征融合方式發(fā)揮了作用,還是反復(fù)地堆疊特征融合操作才是精度提升的主要原因,例如像EfficientDet[75]那樣多次堆疊BiFPN.要證明前者,需要在實驗中嘗試拋棄FPN.例如,直接將ASFF 模塊運用于原本的特征層上,再看精度的提升是否強(qiáng)于FPN.但是如果答案是后者,則需考慮:特征融合對目標(biāo)檢測任務(wù)的精度提升的上限在何處.

(4) 神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索.近年來興起的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(NAS)方法在目標(biāo)檢測任務(wù)上展現(xiàn)出了相當(dāng)大的潛力:通過NAS 得到的特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)[77,78]和骨架網(wǎng)絡(luò)[100],與以往人工設(shè)計的模型相比都展現(xiàn)出了性能上的優(yōu)勢.但是,一方面,只有針對完整的目標(biāo)檢測算法流程進(jìn)行搜索,才可能得到真正意義上突破現(xiàn)有算法流程的結(jié)構(gòu),目前的NAS 仍只是對局部網(wǎng)絡(luò)架構(gòu)進(jìn)行搜索改進(jìn),譬如FPN 式的特征融合對于尺度問題并不見得是最合適的選擇.另一方面,過于復(fù)雜的拓?fù)浣Y(jié)構(gòu)并不一定具有普適性,反而更可能在數(shù)據(jù)集上出現(xiàn)過擬合.因此,如何更好地運用NAS,仍是一個值得探討的方向.

(5) 卷積神經(jīng)網(wǎng)絡(luò)能否理解尺度概念.特征金字塔網(wǎng)絡(luò)的出發(fā)點是在不同尺度的特征圖上檢測不同尺度的目標(biāo),但是,這也意味著網(wǎng)絡(luò)實際上是在把不同尺度的目標(biāo)當(dāng)作不同的目標(biāo)在檢測,即便它們可能真的就是同一個目標(biāo).因此,卷積神經(jīng)網(wǎng)絡(luò)可能并沒有真正理解尺度這一概念,只是在依靠龐大的參數(shù)量來強(qiáng)行記憶.這可能也正是引入FPN 架構(gòu)的算法在檢測大目標(biāo)時精度普遍會有所下降的原因.TridentNet[51]最特別的地方就在于,通過權(quán)重共享和尺度歸一化的訓(xùn)練策略嘗試著讓CNN 用相同的網(wǎng)絡(luò)參數(shù)在不同的感受野下分辨不同尺度的目標(biāo),這一設(shè)計的本質(zhì)就是在讓CNN 學(xué)習(xí)尺度這一概念.但是,TridentNet 和完全舍棄了尺度歸一化訓(xùn)練策略的TridentNet Fast 的性能差距卻非常小,說明這一思路的潛力可能還沒有被完全挖掘出來.

(6) 錨點的存在價值.早期的YOLO 和Densebox[101]算法都沒有錨點,而RPN 網(wǎng)絡(luò)的提出最早引出了錨點這一概念,相當(dāng)于為回歸任務(wù)提供了一個先驗知識,該思想被之后的多數(shù)檢測器所采納,與FPN 架構(gòu)相結(jié)合后顯著擴(kuò)大了目標(biāo)檢測的尺度范圍.但是,近兩年來,卻有越來越多的學(xué)者重新回歸到舍棄固有錨點的思路上進(jìn)行研究,因為他們認(rèn)為錨點存在著引入額外超參數(shù)、難以回歸極端尺度的目標(biāo)等問題.但是,從形式上看,很多舍棄錨點的算法其實相當(dāng)于在每一個像素點處都有一個錨點,沒有太本質(zhì)的區(qū)別.而從性能上看,這些新提出的算法目前也沒有明顯超越基于錨點的算法.此外,Zhang 等人[55]提出的正負(fù)樣本的選取才是這兩類算法的本質(zhì)區(qū)別的觀點,也提醒我們需要重新審視錨點對于多尺度目標(biāo)檢測的真正影響.

(7) 多尺度目標(biāo)的交并比.現(xiàn)有的多數(shù)目標(biāo)檢測算法在訓(xùn)練過程中,仍然是基于固定的交并比閾值來確定正負(fù)樣本.盡管已有部分學(xué)者[37,58]指出了這樣做并非最優(yōu)解,并嘗試通過對閾值進(jìn)行動態(tài)調(diào)整來改進(jìn)算法.但是,這樣的改進(jìn)始終是將所有的目標(biāo)視為了一個整體來進(jìn)行同等處理,實際上不同尺度的目標(biāo)對于交并比的敏感度是不同的.小目標(biāo)由于自身尺度較小,候選框的交并比通常會更低,在相同的閾值下更難以得到足夠的正樣本.因此,若能夠針對不同尺度的目標(biāo)設(shè)計不同的交并比閾值,亦或是重新定義更加公正的正負(fù)樣本的選擇依據(jù),或許能夠進(jìn)一步提高多尺度目標(biāo)檢測的性能.

(8) 數(shù)據(jù)集的尺度不均衡.特征金字塔網(wǎng)絡(luò)等算法很多時候會給我們帶來錯覺,認(rèn)為模型在分配了更多資源提升小目標(biāo)的檢測精度后,大目標(biāo)的精度也會有所下降,是學(xué)習(xí)資源受限的必然趨勢.但是,針對錨點設(shè)置而提出的分組采樣策略[85],從每個尺度的錨點中隨機(jī)采樣來計算監(jiān)督信號,保證尺度均衡,訓(xùn)練得到的模型性能卻全方位地超越了其他所有的對照組,包括大尺度目標(biāo)占據(jù)主導(dǎo)的模型.圖像拼接數(shù)據(jù)增強(qiáng)策略[98]也出現(xiàn)了類似的現(xiàn)象,訓(xùn)練數(shù)據(jù)里中、小目標(biāo)所占的比重增加,但最終得到的模型在檢測大目標(biāo)時精度同樣有所提升.這些實驗結(jié)果提供了一種可能:原本的模型在大目標(biāo)上有可能已經(jīng)過擬合了,而小目標(biāo)則處于欠擬合的狀態(tài),因此相對均衡的尺度能夠給模型帶來全方位的性能提升.

6 總結(jié)

本文以基于深度學(xué)習(xí)的目標(biāo)檢測為背景,首先對主流算法的成型歷史進(jìn)行了簡要回顧,包括R-CNN 等兩階段檢測算法和YOLO 等一階段檢測算法.然后,本文總結(jié)了近幾年來提出的眾多檢測算法在MS COCO 檢測數(shù)據(jù)集上的表現(xiàn),并以相應(yīng)評價指標(biāo)為依據(jù),指出了目標(biāo)檢測所面臨的尺度問題這一巨大挑戰(zhàn),并分析了其根本原因在于目標(biāo)定位所需要的淺層空間信息和目標(biāo)分類所需要的深層語義信息的矛盾.

以解決尺度問題為導(dǎo)向,本文對現(xiàn)有的多尺度目標(biāo)檢測策略進(jìn)行了匯總和歸納.其中,構(gòu)建多尺度特征表達(dá)是最典型且宏觀的策略,具體可以分為圖像金字塔和網(wǎng)絡(luò)內(nèi)特征金字塔.前者將多尺度的圖像通入網(wǎng)絡(luò),能夠穩(wěn)定提升檢測精度,但顯著增加的內(nèi)存開銷和計算耗時是主要問題.后者則只需輸入原圖,根據(jù)特征金字塔構(gòu)建方式的不同可分為跨層連接和并行支路,計算代價比圖像金字塔更小.除此以外,本文也從錨點、交并比閾值、動態(tài)卷積、邊界框損失函數(shù)等更細(xì)節(jié)的層面分析了能夠改善尺度問題的策略,更透徹地了解了檢測算法流程的許多細(xì)節(jié)設(shè)計的意義.

最后,本文基于上述分析,對多尺度目標(biāo)檢測的研究方向進(jìn)行了展望.譬如,能否構(gòu)建“碎片式”圖像金字塔解決計算耗時問題、堆疊特征融合操作的上限在何處、卷積神經(jīng)網(wǎng)絡(luò)能否理解尺度這一概念以及數(shù)據(jù)集中是否存在不同尺度目標(biāo)的過擬合和欠擬合問題等等.這些疑問都值得繼續(xù)深入探討.

猜你喜歡
錨點金字塔尺度
“金字塔”
A Study of the Pit-Aided Construction of Egyptian Pyramids
基于NR覆蓋的NSA錨點優(yōu)選策略研究
5G手機(jī)無法在室分NSA站點駐留案例分析
5G NSA錨點的選擇策略
財產(chǎn)的五大尺度和五重應(yīng)對
5G NSA組網(wǎng)下錨點站的選擇策略優(yōu)化
移動通信(2020年5期)2020-06-08 15:39:51
海上有座“金字塔”
神秘金字塔
童話世界(2017年11期)2017-05-17 05:28:25
宇宙的尺度
太空探索(2016年5期)2016-07-12 15:17:55
石阡县| 赤峰市| 沂源县| 海城市| 商都县| 那曲县| 泗阳县| 钟祥市| 康定县| 淮安市| 连州市| 黄大仙区| 喀喇| 遂宁市| 石嘴山市| 福建省| 上饶县| 新宁县| 靖西县| 竹溪县| 治县。| 开原市| 台东市| 三都| 淳化县| 东阿县| 顺平县| 茶陵县| 滦平县| 商水县| 奇台县| 新安县| 恭城| 延津县| 莫力| 九台市| 金寨县| 鹤岗市| 河间市| 阳曲县| 大方县|