閆春相,徐遵義,劉康寧,李 晨
(山東建筑大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,山東 濟南 250101)
目標(biāo)檢測是計算機視覺的一個重要研究方向,是解決目標(biāo)分割、場景理解和圖像描述等其他高層視覺任務(wù)的基礎(chǔ)[1]。小目標(biāo)檢測是目標(biāo)檢測中的重點和難點,其任務(wù)是精準(zhǔn)檢測圖像中可視化特征極少的小尺寸目標(biāo)并判斷所屬類別,現(xiàn)已廣泛應(yīng)用于自動駕駛、智慧交通和智慧醫(yī)療等領(lǐng)域[2-3]。
學(xué)術(shù)界通常采用MS COCO 2017 數(shù)據(jù)集定義小目標(biāo),指像素絕對面積小于32×32像素的目標(biāo)[4]?;谏疃葘W(xué)習(xí)的目標(biāo)檢測方法通常針對通用尺寸目標(biāo),當(dāng)檢測目標(biāo)尺寸較小甚至僅為幾個像素時,檢測效果較差。MS COCO 2017 數(shù)據(jù)集上中大尺寸目標(biāo)和小尺寸目標(biāo)的檢測精度相差較大[5],如表1所示。
Table 1 Detection accuracy on MS COCO dataset表1 MS COCO數(shù)據(jù)集上的檢測精度
目前,小目標(biāo)檢測方法可分為通用目標(biāo)檢測方法,例如YOLO、Faster R-CNN、RefineDet 等方法[7-9];在通用目標(biāo)檢測基礎(chǔ)上針對小目標(biāo)某一特點進行改進,例如Wang等[10]提出一種基于語義特征的錨框放置方法和RRNet 采用自適應(yīng)重采樣策略的數(shù)據(jù)增強方法[8]等。
然而,上述方法普遍存在以下問題:此類方法基于錨框,錨框結(jié)構(gòu)會導(dǎo)致模型側(cè)重于檢測中大目標(biāo),同時引入錨框數(shù)量、預(yù)設(shè)置尺寸和寬高比等較多超參數(shù),會導(dǎo)致模型訓(xùn)練困難且不易于收斂、小目標(biāo)檢測性能不佳及檢測速度較慢等問題;現(xiàn)有公開數(shù)據(jù)集多針對通用尺寸目標(biāo)所建立,例如PASCAL VOC,ILSVRC[11]等,較少關(guān)注小尺寸目標(biāo)或小目標(biāo)占比較少、分布不均勻,雖然也有部分小目標(biāo)檢測數(shù)據(jù)集,但通常為特定場景,訓(xùn)練的模型通用性較差[5,12-13]。
為了解決以上問題,提升模型對小目標(biāo)的檢測精度,本文在Faster R-CNN 的基礎(chǔ)上提出一種圓形錨框方法,創(chuàng)新點如下:①為了解決錨框結(jié)構(gòu)存在的問題,提出對小目標(biāo)檢測友好的圓形錨框方法,根據(jù)鏡頭成像原理及鏡頭焦距理論公式,在錨框的形狀上進行探索并提出圓形錨框這一概念,以減少部分超參數(shù)及回歸階段的參數(shù)計算,在結(jié)構(gòu)上能更好地包裹小目標(biāo),適合小目標(biāo)檢測;②為了解決缺少通用場景小目標(biāo)檢測數(shù)據(jù)集的問題,對公開數(shù)據(jù)集MS COCO 進行數(shù)據(jù)增強處理,保留數(shù)據(jù)集中小尺寸目標(biāo),并將小目標(biāo)的標(biāo)注信息修改為圓形包圍框,稱為MS COCO small 數(shù)據(jù)集,該數(shù)據(jù)集雖然減少了部分目標(biāo),但能提升模型對小目標(biāo)的泛化能力、減少模型訓(xùn)練時間;③針對MS COCO small 數(shù)據(jù)集的圓形標(biāo)注及圓形錨框的特點,在CircleNet[14]、CIOU[15]的基礎(chǔ)上改進了cIOU 的計算方法。
目標(biāo)檢測是計算機視覺領(lǐng)域非常重要的基礎(chǔ)性工作。隨著深度卷積神經(jīng)網(wǎng)絡(luò)的發(fā)展,現(xiàn)有目標(biāo)檢測方法普遍采用錨框方法。Faster R-CNN 是最具有代表性的兩階段檢測方法,由提取候選框的全卷積網(wǎng)絡(luò)和基于候選框的目標(biāo)檢測器組成,整個檢測過程通過一個網(wǎng)絡(luò)完成。在候選框提取網(wǎng)絡(luò)中,為了解決Select Search 速度慢的問題,通過不同尺度的錨框代替?zhèn)鹘y(tǒng)的候選框生成方法[9]。為了解決兩階段檢測速度較慢的問題,提出了去除候選框生成步驟的一階段檢測方法。例如,Yolov3 去除了候選框的生成階段提升檢測速度;DarkNet-53 架構(gòu)去除網(wǎng)絡(luò)中的全連接層,基于特征金字塔網(wǎng)絡(luò)(Feature Pyramid Networks,F(xiàn)PN)的思想融合多個尺度的特征圖,以提升檢測性能[16]。
鑒于Transformer 機制在自然語言處理領(lǐng)域取得的重大成效,Carion 等[17]將Transformer 機制應(yīng)用于目標(biāo)檢測領(lǐng)域,提出DETR(Detection Transformer)檢測算法。DETR 改變了卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測架構(gòu),屬于基于Transformer的端到端目標(biāo)檢測,并未進行非極大值抑制(Non-Maximum Suppression,NMS)等后續(xù)處理,完全拋棄了錨框,但性能可媲美兩階段檢測方法。
現(xiàn)有目標(biāo)檢測模型大多針對全尺寸目標(biāo)所設(shè)計,在小目標(biāo)檢測上效果不佳?;诠_數(shù)據(jù)集MS COCO 2017 的小目標(biāo)檢測方法中Faster R-CNN 的APS為18.2%,YOLO V3 的APS為18.3%[16],DETR 的APS為20.7%[17]。為了提高小目標(biāo)檢測性能,通常針對小目標(biāo)特點提出改進,主要包括構(gòu)建專有的小目標(biāo)檢測數(shù)據(jù)集,對數(shù)據(jù)集中小目標(biāo)進行數(shù)據(jù)增強和改進現(xiàn)有錨框等方法。
1.2.1 小目標(biāo)數(shù)據(jù)集
深度學(xué)習(xí)是基于數(shù)據(jù)的方法,因此數(shù)據(jù)集對模型性能起到至關(guān)重要的影響。Braun 等[2]針對城市交通場景提出EuroCity Persons 數(shù)據(jù)集,為城市交通場景中的行人、自行車手、其他騎手等提供大量且詳細的標(biāo)注,共包含47 300張圖像,提供了238 200 個以上的人員小目標(biāo)標(biāo)注。Yu等[18]提出TinyPerson 屬于遠距離、大背景下進行人員檢測的數(shù)據(jù)集,由1 610 幅圖像構(gòu)成,包含72 651 個標(biāo)注的小目標(biāo),可分為5 個類別。Zhu 等[13]針對交通標(biāo)志檢測問題提出Tsinghua-Tencent 100K 數(shù)據(jù)集,包含3 萬個交通標(biāo)識,可分為45 類,涵蓋了不同光照、天氣下情況下的100 000 幅圖像。
1.2.2 數(shù)據(jù)增強
由于小目標(biāo)像素少、樣本少、分布不均勻等問題,出現(xiàn)了許多數(shù)據(jù)增強方法來提升小目標(biāo)的檢測性能。Kisantal等[19]將圖像的小目標(biāo)區(qū)域復(fù)制后粘貼回原圖,進行小目標(biāo)數(shù)據(jù)增強。在交通標(biāo)志和行人檢測的背景下,Li等[20]使用生成對抗網(wǎng)絡(luò)(Generative Adversarial Networks,GAN),通過超分辨率表示來減少大、小目標(biāo)間的差異,使小目標(biāo)能獲得大目標(biāo)的相同特征。Zoph 等[21]提出一種通過自適應(yīng)學(xué)習(xí)方法的數(shù)據(jù)增強策略。Chen 等[22]在訓(xùn)練過程中,將圖像縮放和拼接進行目標(biāo)尺度轉(zhuǎn)換,以提升小目標(biāo)的數(shù)量和質(zhì)量。
1.2.3 錨框改進
錨框是目標(biāo)檢測任務(wù)中最為重要的組件,因此對錨框進行改進較為重要且有效。Zhang 等[23]提出一種密集錨框策略,在一個感受野中設(shè)置多個錨框來提升檢測性能。Eggert 等[24]優(yōu)化錨框尺度,通過推導(dǎo)小目標(biāo)間的聯(lián)系,計算小目標(biāo)最合適的錨框尺寸,在商標(biāo)檢測上獲得了較好的檢測效果。Wang 等[10]提出一種基于語義特征的錨框設(shè)置策略,通過同時預(yù)測目標(biāo)中心點和目標(biāo)尺寸來提升檢測性能。
為了提升小目標(biāo)檢測的檢測性能,Duan 等[25]提出一種基于關(guān)鍵點三元組的目標(biāo)檢測模型CenterNet,首先預(yù)測左上角、右下角及目標(biāo)的中心關(guān)鍵點,然后通過角點匹配及中心點消除來確定最后的預(yù)測包圍盒。Yang 等[14]的CircleNet 方法針對腎小球細胞圓形的特點,提出了圓形包圍框的概念。CircleNet 在CenterNet 模型的基礎(chǔ)上將矩形包圍盒修改為圓形包圍盒,僅需在熱圖點的基礎(chǔ)上回歸一個圓的半徑即可得到包圍盒,并且這種圓形包圍盒很適合檢測腎小球等細胞,對模型的檢測效果提升明顯。
目前,F(xiàn)aster R-CNN 是最受歡迎的目標(biāo)檢測框架之一,現(xiàn)有工作大多在此基礎(chǔ)上開展,本文整體框架基于兩階段目標(biāo)檢測算法Faster R-CNN,整體網(wǎng)絡(luò)架構(gòu)如圖1所示。
Fig.1 Network architecture圖1 網(wǎng)絡(luò)架構(gòu)
為了生成候選區(qū)域,將寬為W,高為H的圖像I∈Rw×H×3輸入骨干網(wǎng)絡(luò),使用ResNet-50-FPN 網(wǎng)絡(luò)[26-27]獨特的殘差結(jié)構(gòu)使其具備較好的特征提取能力。首先,骨干網(wǎng)絡(luò)將輸出的特征圖送入RPN;然后,根據(jù)不同尺度特征層的采樣比率生成不同數(shù)目的圓形錨框來生成候選區(qū)域;最后,將候選區(qū)域和特征圖送入兩個卷積網(wǎng)絡(luò)(包圍盒回歸層和包圍盒分類層)。其中,包圍盒回歸層預(yù)測圖像上每個對象的位置,包圍盒分類層預(yù)測每個目標(biāo)對象屬于各個類別的置信度。
在鏡頭規(guī)格一定的情況下,鏡頭至景物實測距離與其成像高度成反比。鏡頭成像的理論計算公式為:
式中:f為攝像機鏡頭焦距;U為景物實際高度;D為鏡頭至景物實測距離;μ為圖像高度。
在U、f確定的情況下,隨著鏡頭至景物實測距離D逐漸變大,圖像高度μ就越小。當(dāng)u低于某一閾值,表現(xiàn)在圖像上為一個半徑不斷減小的圓點。據(jù)此原理,本文提出圓形錨框,在小目標(biāo)檢測時存在以下優(yōu)勢:圓形錨框?qū)δ繕?biāo)物體的像素包裹率更高,能減少部分錨框數(shù)量,統(tǒng)計現(xiàn)有公開數(shù)據(jù)集的標(biāo)注信息發(fā)現(xiàn),當(dāng)目標(biāo)尺寸不斷減小時目標(biāo)包圍框長寬之間的差別不斷減小,由矩形退化為方形,并且目標(biāo)的實際像素更集中于正方形的中心區(qū)域,因此使用圓形錨框?qū)τ谀繕?biāo)物體的像素包裹率更高;由于僅需一個自由度(半徑)即可確定圓的大小,回歸層在每個預(yù)測框上需要預(yù)測的參數(shù)從4k減少到3k(還需預(yù)測錨框的坐標(biāo)x、y),同時由于圓形的旋轉(zhuǎn)不變性,無需再設(shè)置不同比例的錨框,即在Faster R-CNN 相同參數(shù)下,錨框數(shù)量由17 649下降為9 805,提升了模型的檢測速度。
與Faster R-CNN 類似,在訓(xùn)練模型時規(guī)定兩種錨框類別。將與真實包圍盒IOU 最大的錨框、與任意真實包圍盒交并比超過0.45 的錨框設(shè)置為正錨框。在遵循Faster RCNN 多任務(wù)檢測損失函數(shù)同時,根據(jù)圓形錨框特點對損失函數(shù)進行部分修改。
式中:i為圖像中錨框的索引;Pi代表錨框i為對象的預(yù)測概率;γ>0 為可調(diào)節(jié)因子;分類損失函數(shù)L_cls 是二分類的Focal loss[28];如果錨框i能準(zhǔn)確預(yù)測對象,則真實包圍框標(biāo)簽為1,否則為0。
回歸損失函數(shù)定義為:
式中:ti代表第i次預(yù)測包圍框的坐標(biāo)參數(shù)向量;代表與正錨框關(guān)聯(lián)的真實包圍盒的坐標(biāo)參數(shù)向量;L1為平滑損失函數(shù);Lreg為回歸損失;代表回歸損失僅對于錨框預(yù)測正確的情況下有效。
因此,單張圖像的總損失函數(shù)為:
式中:λ為放縮系數(shù)。
由于錨框為固定大小,為了準(zhǔn)確檢測對象,預(yù)測框應(yīng)依據(jù)真實包圍盒的位置及尺寸進行調(diào)整,圓形預(yù)測框的參數(shù)為:
式中:(x,y)、r表示圓形包圍框的中心坐標(biāo)和半徑;x、xa、x*分別對應(yīng)于預(yù)測框、錨框和真實框,并與y、r相對應(yīng)。
MS COCO 2017 數(shù)據(jù)集是目標(biāo)檢測領(lǐng)域最為流行的數(shù)據(jù)集,相較于其他數(shù)據(jù)集更能反應(yīng)檢測模型的性能。MS COCO 數(shù)據(jù)集包含80 個類別,超過150 萬個標(biāo)注目標(biāo),且大量的小尺寸目標(biāo)使其成為最具有挑戰(zhàn)的數(shù)據(jù)集之一,目標(biāo)尺寸占比統(tǒng)計結(jié)果如表2所示。
Table 2 Statistical Result of Target Size of MS COCO Train Datasets表2 MS COCO數(shù)據(jù)集訓(xùn)練集目標(biāo)尺寸統(tǒng)計結(jié)果
為了適應(yīng)小目標(biāo)檢測任務(wù),將MS COCO 數(shù)據(jù)集的標(biāo)注信息進行修改,僅保留尺寸小于32 × 32 像素的目標(biāo),并將其標(biāo)注信息修改為圓形,對于尺寸大于32 × 32 像素的目標(biāo),將其類別標(biāo)注修改為背景物體,如圖2 所示。由此可見,矩形內(nèi)接圓的效果較好,目標(biāo)物體實際像素面積僅占矩形包圍框的63%,但約占圓形包圍框面積的88%,效果顯然更優(yōu)。標(biāo)注信息的計算公式如式(6)所示。
Fig.2 Comparison of different callout box effects圖2 不同標(biāo)注框效果比較
式中:x*、x對應(yīng)圓和矩形(y、r同樣適用),將其組成新的數(shù)據(jù)集MS COCO small。
為了測量兩個包圍框之間的相似性,在目標(biāo)檢測領(lǐng)域,IOU 是最流行的評價指標(biāo)。IOU 定義為兩個包圍盒之間交集面積和并集面積的比值。為此,本文引入圓交并比(circle Intersection Over Union,cIOU)進行計算(見圖3),并定義為以下形式[14-15]:
Fig.3 cIOU calculation method圖3 cIOU計算方法
式中:(Ax,Ay)、rA分別為圓的圓心坐標(biāo)和半徑(同樣適用于(Bx,By)、rB);d為兩圓心的距離;D為最小外接框的對角線距離。
為了評估本文算法的有效性,首先分別在MS COCO 2017 或MS COCO small 數(shù)據(jù)集上訓(xùn)練模型,并統(tǒng)一在MS COCO val 數(shù)據(jù)集上與基線模型進行比較,以檢驗?zāi)P途?;然后,通過消融實驗驗證各模塊的有效性和貢獻。
MS COCO 數(shù)據(jù)集采用平均精度均值(mean Average Precision,mAP)和每秒傳輸幀數(shù)(frames per second,F(xiàn)PS)作為評價指標(biāo)來衡量模型性能。mAP 用于評估檢測性能的主要指標(biāo),對于給定IOU 閾值,通過計算召回率曲線下的面積來計算mAP。由于本實驗中檢測目標(biāo)均小于32 ×32像素,因此通過APS表示小目標(biāo)的平均精度,依據(jù)FPS來評估模型的檢測速度。召回率(Recall,R)和精準(zhǔn)率(Precision,P)由真正例(True Positive,TP)、假正例(False Positive,F(xiàn)P)和假負(fù)例(False Negative,F(xiàn)N)進行計算,具體公式如下:
根據(jù)P-R曲線可計算APS。
式中:N為測試集總數(shù);P(n)為n張圖像的精準(zhǔn)率;ΔR(n)表示從n-1 增加到n時召回率的變化量;k為類別數(shù)。
本文使用Faster R-CNN 模型框架實現(xiàn)圓形錨框,采用預(yù)訓(xùn)練ResNet-50-FPN 作為骨干網(wǎng)絡(luò)提取圖片中的特征。為了便于訓(xùn)練和推理,將圖片尺寸統(tǒng)一放縮到600 × 800的固定大小,采用權(quán)重衰減為1e-4 的隨機梯度下降(SGD)優(yōu)化器,初始學(xué)習(xí)率設(shè)置為1e-3,批大小設(shè)置為6,錨框的尺寸設(shè)置為[2,4,8,16,32]。實驗環(huán)境為Tesla V100 16 G,Ubuntu18.04,cuda11.3。
為了驗證圓形錨框的效果,在MS COCO 數(shù)據(jù)集上將所提模型與基線模型進行比較,結(jié)果如表3 所示。由此可知,本文模型的APS達到21.9%,檢測速度為14~16 FPS,相較于兩階段檢測方法Faster R-CNN、單階段檢測算法YOLO v3、圓形錨框遷移到Y(jié)OLO v3 框架后、基于Transfomer的DETR 模型、文獻[19]方法,APS分別提升3.7%、3.6%、2.4%、1.1%、4%;相較于兩階段檢測方法Faster R-CNN 的檢測速度提升5 FPS;相較于Mask R-CNN、Fitness R-CNN等R-CNN 系列小目標(biāo)檢測模型APs均有提高,證明了本文算法在檢測精度上優(yōu)于基線模型,檢測速度相較于傳統(tǒng)Faster R-CNN 提升顯著,且將圓形錨框遷移到其他檢測模型中也能提升檢測精度。
Table 3 Result of small target detection on MS COCO dataset表3 MS COCO數(shù)據(jù)集上小目標(biāo)檢測結(jié)果
為了驗證精簡數(shù)據(jù)集數(shù)據(jù)增強方法的有效性及對模型訓(xùn)練時間產(chǎn)生的影響,分別在MS COCO 2017 和MS COCO small 數(shù)據(jù)集上訓(xùn)練模型進行比較。由表4 可知,精簡后數(shù)據(jù)集模型的APS相較于傳統(tǒng)方法提升1.3%,圓形錨框相較于矩形錨框?qū)π∧繕?biāo)檢測的提升較高,APS最多提升了約4%,原因為圓形錨框能更好地包裹被檢測目標(biāo)。
Table 4 Results of small target detection on different anchors and datasets表4 不同錨框和訓(xùn)練數(shù)據(jù)集上小目標(biāo)檢測結(jié)果
由表5 可知,MS COCO small 數(shù)據(jù)集對模型訓(xùn)練時間的影響較大,單個epoch 的訓(xùn)練時間減少151 min,訓(xùn)練的時間加速比為2.76,低于圖片數(shù)目的比值3.23,原因為模型在每個批次載入圖片都要消耗部分時間。
Table 5 Training time of single epoch of the model表5 單個epoch模型訓(xùn)練時間
本文通過消融實驗驗證各改進部分的貢獻,將各部分逐步增加圓形錨框(CA)、數(shù)據(jù)集增強、cIOU 到基線模型中,實驗結(jié)果如表6所示。
Table 6 Ablation experiment result表6 消融實驗結(jié)果
3.4.1 圓形錨框的有效性
以傳統(tǒng)的Faster R-CNN 為基線模型,在生成錨框階段單獨采用圓形錨框組件,模型的APS相較于基線模型增加2.2%,檢測速度提高5 FPS 左右,證明了圓形錨框可增強模型對被檢測目標(biāo)的擬合能力,減少錨框回歸階段的偏移計算,提升了目標(biāo)檢測精度與速度。
3.4.2 精簡數(shù)據(jù)集方法的有效性
將傳統(tǒng)Faster R-CNN 模型在MSCOCO small 數(shù)據(jù)集上進行訓(xùn)練。實驗表明,F(xiàn)aster R-CNN 相較于基線模型的APS提升1.3%,檢測速度基本無變化,證明了本文方法可有效提升模型的檢測性能。
3.4.3 cIOU有效性
本文在有圓形錨框的基礎(chǔ)上添cIOU 模塊。實驗表明,所提模型相較于基線模型的APS提升1.5%,檢測速度降低1~2 FPS 左右,原因為cIOU 引入了大量計算,導(dǎo)致模型檢測速度降低。
為了更直觀地分析本文檢測結(jié)果,可視化展示Faster R-CNN 和本文模型在MSCOCO 數(shù)據(jù)集上的檢測結(jié)果(已進行處理,只保留小目標(biāo)),如圖4所示。
Fig.4 Comparison of detection performance of Faster R-CNN and the proposed model圖4 Faster R-CNN與本文模型檢測效果比較
圖4 中第一行為Faster R-CNN,第二行為本文模型。由此可見,F(xiàn)aster R-CNN 模型在背景復(fù)雜、小目標(biāo)距離較遠及小目標(biāo)聚集的情況下檢測效果較差,部分小目標(biāo)存在遺漏或?qū)⒍鄠€目標(biāo)檢測為一個目標(biāo)的情況;本文方法在目標(biāo)聚集及目標(biāo)較遠的情況下仍能檢測出更多的目標(biāo),基本不會發(fā)生將多個目標(biāo)檢測為一個目標(biāo)的情況,顯著提升了檢測效果;在背景復(fù)雜情況下,本文模型檢測效果略有提升,但檢測效果仍然不夠理想。
綜上,本文算法相較于Faster R-CNN 能檢測出更多小目標(biāo),降低了小目標(biāo)漏檢率,提升了小目標(biāo)檢測的平均準(zhǔn)確率,具有更好的檢測效果。
當(dāng)前,通用目標(biāo)檢測方法對小目標(biāo)檢測效果較差,并且現(xiàn)有目標(biāo)檢測公開數(shù)據(jù)集較少關(guān)注小尺寸目標(biāo)。為此,本文在Faster R-CNN 的基礎(chǔ)上,提出圓形錨框的小目標(biāo)檢測方法。具體為,在Faster R-CNN 的候選框生成階段采用圓形錨框代替矩形錨框,既減少了參數(shù)計算,還更適合小目標(biāo)檢測。同時,本文在現(xiàn)有數(shù)據(jù)集的基礎(chǔ)上,針對小目標(biāo)進行數(shù)據(jù)增強。實驗表明,改進后模型相較于原始Faster R-CNN 的檢測精度提升約4%,在MSCOCO 數(shù)據(jù)集上表現(xiàn)良好。
下一步,將從以下兩個方面繼續(xù)研究:根據(jù)圓形錨框特性,嘗試在自動駕駛的交通指示牌檢測等特定數(shù)據(jù)集上進行實驗,以更好地發(fā)揮圓形錨框特性;在圓形錨框基礎(chǔ)上嘗試采用橢圓錨框,使其更好地貼合目標(biāo)。