趙桂平, 鄧飛*, 王昀, 唐云
(1.成都理工大學計算機與網絡安全學院(牛津布魯克斯學院), 成都 610059;2.中國石油化工股份有限公司石油物探技術研究院地震采集技術研究所, 南京 211103)
目標檢測是一種與計算機視覺和圖像處理相關的計算機技術,用于檢測數字圖像和視頻中某類語義對象的實例,一直是計算機視覺領域的熱門研究話題。目標檢測作為場景理解的重要組成部分,廣泛應用于現代生活的許多領域,如安全、軍事、交通、醫療和生活領域。
傳統的目標檢測方法的主要流程為:首先要選定候選區域,使用如SIFT[1]、HOG[2]、Haar等方法提取候選區域中的特征,再使用如Adaboost[3]、SVM[4]等分類器進行分類。傳統方法在目標檢測中具有一定效果,但是當圖像特征不明顯或目標相似程度較高時,檢測效果還不夠理想。
近些年來,基于深度學習的目標檢測方法發展迅速。Girshick等[5]首次提出了基于深度學習的目標檢測方法R-CNN,先使用選擇性搜索[6]得到候選區域,再提取候選區域的特征并分類,最后對目標框位置進行回歸,而R-CNN的訓練步驟繁瑣,運行速度緩慢。Girshick[7]提出Fast R-CNN,簡化了一定的訓練步驟,運行速度有了一定提升。Ren等[8]提出了Faster R-CNN,使用區域推薦網絡(region proposal networks, RPN)替代選擇性搜索生成候選區域,同時將候選區域生成、特征提取與分類、邊框回歸統一到一個網絡中,實現了端到端的訓練測試。Redmon等[9]提出了YOLOv1將邊框回歸和目標分類整合于單個網絡模型中,大大提高了檢測速度,使實時檢測成為可能,隨后,Liu等[10]提出了SSD(single shot multiBox detector),采取了多尺度特征融合的方法,提高了檢測的準確率。Lin等[11]提出RetinaNet,使用Focal loss解決了類別不平衡問題,提升了檢測準確率。Bochkovskiy等[12]提出了YOLOv4,引入空間金字塔池化(spatial pyramid pooling, SPP)[13]的思想擴大感受野,加入多尺度特征融合,進一步提升準確率。鄭偉等[14]利用空洞模塊改進YOLOv4的特征融合模塊,提取更多的位置信息和語義信息,進一步減少了目標的誤報率。
在實際應用中存在相似目標檢測問題。相似目標是指外形輪廓上相似,但存在一定細節差異的目標,因此相似目標具有不同的語義,必須加以區分,如周宇杰等[15]對輸送帶的損傷部位進行檢測和布申申等[16]對帶鋼表面缺陷進行檢測,近似相同的缺陷因為產生的原因不同導致修復的工藝不同,岳有軍等[17]對溫室內種植的番茄進行成熟度檢測,形狀和色彩相似的番茄,但成熟度不同,通過檢測能夠及時得到作物信息,減少管理成本,增加經濟效益。在相似目標檢測問題下,以Faster R-CNN為代表的兩步法準確率較高,但檢測速度慢,以YOLOv5為代表的一步法在檢測速度上較快,但準確率較低,呈現出“一步法不準、兩步法慢”的問題。
針對該問題,現以YOLOv5為基礎并參考Faster R-CNN兩步法,將網絡分為邊框生成網絡和分類預測網絡兩個部分,其中邊框生成網絡以YOLOv5為主體,增強特征的融合能力,改進邊框過濾算法,提高邊框過濾速度,分類預測網絡使用以添加注意力機制模塊的輕量化ResNet34網絡,加快分類計算速度的同時保持分類的高準確率,實現對相似目標快速、準確檢測。
目標檢測方法分為一步法和兩步法,它們主要的區別是:一步法將邊框的生成和類別的預測由單個網絡輸出,再篩選出最佳的預測結果;兩步法先生成眾多的邊框,再從其中篩選出含有前景的邊框,接著計算邊框中目標的分類,得到最終的預測結果。
一步法以YOLOv5為例,YOLOv5先將輸入的圖像切分為網格,經過主干網絡提取到不同層級的特征,再將不同層級的特征進行融合,在融合操作中,特征尺度不改變,最后在不同層級的圖像特征上進行預測,首先找出目標對象中心所在網格,根據網格中的局部圖像對目標進行預測,如圖1所示,每個網格都會預測含有前景的概率,生成前景概率分布圖,最后篩選得到目標中心所在的網格(如圖1中概率大小為0.9的網格)。
接下來,網絡對每個網格預測一組類別概率序列,如圖2所示,序列中每一個值分別代表一個類別在該網格的概率,同時生成錨定框并進行位置回歸得到備選邊框。網絡最終輸出的備選邊框包含的信息為
bbox=(x,y,w,h,confobj)+
(confcls1,confcls2,…,confclsn)
(1)
式(1)中:(x,y)為邊框左上角點的坐標;(w,h)為邊框的寬度和高度;confobj為邊框包含前景的概率;(confcls1,confcls2,…,confclsn)為邊框的類別概率序列。
上述步驟中,網絡產生了數量眾多的邊框,需要從中篩選出最好的檢測結果。先以邊框的類別概率序列為基礎,依次對每一類別使用非極大值抑制算法(non-maximum suppression, NMS)[18],將被抑制的類別概率置零,再選出序列中的最大值,即

圖1 前景概率分布圖Fig.1 Foreground probability distribution

圖2 位置回歸與類別預測Fig.2 Location regression and category prediction
confcls,并與confobj計算邊框的最終概率值conf,即
conf=confobj×confcls=
max(confcls1,confcls2,…,confclsn)
(2)
接著去除conf較低的邊框,再以邊框的類別為分組,對剩下的邊框使用非極大值抑制算法過濾得到最終檢測結果。
兩步法以Faster R-CNN為例,Faster R-CNN先將輸入的圖像經過主干網絡提取到最終的特征圖,再根據特征圖的尺寸生成多組錨定框,如圖3(a)所示,紅點為每一組錨定框的中心點,圖3(b)為其中一組錨定框。
在生成所有錨定框之后(圖4),RPN對每一個邊框都預測兩個值,分別是表示錨定框中內容為背景的概率confbk和表示邊框中內容為前景的概率confobj,接著過濾confobj較小的錨定框,使用NMS算法再過濾部分邊框得到備選框。對備選框進行位置回歸,并將備選框中的特征經過ROI pooling層統一尺度,再輸入分類層得到框中目標的類別,最后,以類別為參考對備選框進行分組,使用NMS算法得到檢測結果。
通過對比YOLOv5與Faster R-CNN的檢測過程,可以發現兩者都需要經過特征提取、邊框位置的回歸和類別預測3個步驟,但是最關鍵的兩個步驟——邊框位置的回歸和類別預測,YOLOv5中這兩個步驟是同時進行的,以網格為單位產生邊框并回歸位置,同時預測類別,而Faster R-CNN是分別進行的,RPN先對所有生成的邊框做一次的二分類,判斷邊框中內容屬于前景還是背景,由此選出包含前景的邊框,再將邊框中的內容輸入到分類層預測類別。與Faster R-CNN相比,YOLOv5大幅減少了邊框位置回歸計算,因此YOLOv5檢測速度快很多。但在分類預測方面,為了進一步提高檢測效率,YOLOv5僅以網格中的局部圖像進行類別預測,導致其分類準確率在相似目標檢測中遠低于Faster R-CNN,同時也可能漏檢一些小目標。

圖3 Faster R-CNN的錨定邊框Fig.3 Faster R-CNN’s anchors

圖4 RPN生成候選區域Fig.4 RPN generates proposal region
為解決上述相似目標檢測任務中“一步法不準,兩步法慢”的問題,提出了改進的YOLOv5-ResNet網絡模型,網絡總體結構如圖5所示,以YOLOv5為基準模型,參考兩步法,將網絡分為邊框生成網絡和分類預測網絡兩個部分。其中邊框生成網絡部分,憑借YOLO計算速度快的優勢,大大減少生成預測框所需要的時間;小目標被噪聲淹沒等原因導致的漏檢,而添加特征融合結構能夠很好地解決噪聲淹沒的問題,因此改進特征融合結構,建立了原始特征與融合后特征之間的聯系,使預測框的位置回歸更加準確;針對改進后的邊框生成網絡輸出的特點,改進過濾算法,提高過濾速度,降低因特征融合結構的添加在速度上的影響;原始的分類模塊,結構簡單,在分辨相似目標效果較差,需要進行強化,將擁有注意力機制的輕量化ResNet34[19]融合到分類模塊,在增加少量計算參數的同時,強化原有分類結構,提高模型對相似目標的區分能力。

圖5 模型整體框架Fig.5 Model framework
圖5中邊框生成網絡的主干部分用于提取出不同層級的特征,由Focus模塊、卷積模塊、C3模塊、空間金字塔池化模塊組成。如圖6所示,Focus模塊將輸入圖像在不同通道上分別在縱向和橫向進行切片再拼接,輸入的深度由3提升到了12,輸出深度比卷積下采樣提升了4倍,以此保留更多的信息。

圖6 Focus操作Fig.6 Operation of Focus
Conv模塊對輸入依次進行Conv2d、BN、ReLU操作,為網絡的基本卷積模塊,其結構如圖7(a)所示。C3由若干個殘差單元[圖7(b)]組成,在不增加輸出深度的同時完成特征傳遞,其結構如圖7(c)所示??臻g金字塔池化對輸入執行3種不同尺寸的最大池化操作,并將輸出結果與原始值進行拼接,其結構如圖7(d)所示。

圖7 主要模塊結構Fig.7 Main modules structure
特征融合部分的作用是將主干部分提取的不同層級的特征進行融合,其核心為特征融合結構,由特征金字塔(feature pyramid networks,FPN)[20]結構和路徑聚合網絡(path aggregation networks,PAN)[21]結構組成,主要由C3和卷積模塊構成。特征融合結構中,按照特征傳遞方向,分別在2倍上采樣和2倍下采樣后與下一層級特征做add操作達到融合不同層級特征的目的,強化特征提取能力。
檢測部分用于在特征圖中進行檢測,將特征融合部分得到的3種不同層級的特征輸入檢測模塊進行檢測,得到邊框的位置信息(x,y,w,h)和框中包含前景的概率大小confobj,最后使用邊框過濾算法,得到前景框。
上述產生的前景框尺度不統一,不能直接輸入到分類網絡。在輸入分類網絡前,截取前景框中的目標特征,首先以前景框的長寬中最大者確定縮放比例進行重塑,然后對另一個方向進行填充,再輸入到分類網絡,預測得到類別值id與類別概率值confcls,結合邊框的信息計算輸出(x,y,w,h,conf,id),其中conf為目標框的最終概率值。
損失函數是衡量網絡的輸出結果與期望結果一致性的指標。相似目標檢測方法的輸出結果中,每個預測框具有位置和置信度,其中,置信度又分為對象置信度與類別置信度。損失函數則必須對上述的位置和置信度進行評價,分別計算位置損失、對象損失和類別損失,最后加權計算得到整體的損失。因此,本文方法的損失函數由3部分組成,計算公式為
loss=lossbbox+lossobj+losscls
(3)
式(3)中:lossbbox為位置損失;lossobj為對象損失;losscls為分類損失。
lossbbox采用了完全交并比損失(complete intersection over union loss, CIoU Loss)進行計算。CIoU Loss相比傳統的交并比損失(intersection over union loss, IoU Loss),不僅考慮到了重疊面積,還考慮到了中心點距離和框的長寬,對框的位置進行了全面評估,使得模型能夠產生位置更加準確的預測框。其中CIoU計算公式為
(4)
式(4)中:IoU為預測框與真實框的交并比;ρ為預測框與真實框中心點的距離;c為預測框與真實框的最小外接矩形對角線的長度;ν為預測框與真實框長寬比距離;wgt和w分別為真實框和預測框的寬度;hgt和h分別為真實框和預測框的高度;α為一個權重系數。最終的lossbbox計算公式為
lossbbox=1-CIoU
(5)
lossobj采用二元交叉熵損失(binary cross entropy loss, BCE Loss),BCE Loss是交叉熵損失(cross entropy loss, CE Loss)的一種特例,并且同時考慮正樣本和負樣本的共同影響。CE Loss計算公式為
lossCE=-[glogap+(1-g)loga(1-p)]
(6)
式(6)中:g為真實值;p為預測值;a為底數,一般情況下a取自然常數e。
預測框中是否存在目標對象只存在兩種情況,因此式(6)中的參數g預測框中有對象時為1,否則為0。lossobj的計算公式為
lossobj=IobjlossCE(1,pobj)+λnoobjInoobj×
lossCE(0,pobj)
(7)
式(7)中:Iobj用于判斷預測框中是否有對象,有對象時為1,沒有對象時為0;Inoobj則反之,λnoobj為負樣本權重,一般為1。
losscls采用CE Loss,對正樣本的分類預測進行評估。計算公式為
losscls=-IobjlossCE(gcls,pcls)
(8)
式(8)中:Iobj用于判斷預測框中是否有對象;gcls為目標實際的分類;pcls為目標預測的分類。
特征融合結構中,FPN將特征從高層向低層傳遞,PAN將特征從低層向高層傳遞。原YOLOv5的特征融合結構中,如圖8(a)所示,高層特征中感受野大,大目標特征明顯,小目標特征容易被背景和噪聲淹沒,低層特征中感受野小,上下文信息缺乏,容易產生小目標漏檢,而小目標漏檢是檢測準確率下降的一個非常重要的原因。為克服小目標被淹沒而導致漏檢的問題,如圖8(b)所示,原始特征經1×1卷積之后,與PAN結構中經過2倍下采樣后的高層特征和FPN結構的同層特征進行求和操作,融合更多的特征,強化每個層級的目標特征。

圖8 原始與改進特征融合結構對比Fig.8 Comparison of original and improved feature fusion structures
針對上述改進,使用相同訓練參數對未添加特征融合結構的邊框生成網絡、添加特征融合結構但未改進的邊框生成網絡和本文的邊框生成網絡進行消融實驗,訓練時損失變化曲線如圖9(a)所示,可以看出改進后方法相比其他方法損失值更小,表明改進后的特征融合結構使邊框生成網絡能夠產生更加準確的邊框和前景判斷,使用訓練模型對驗證集進行測試,準確率結果如圖9(b)所示,添加特征融合結構的邊框生成網絡比未添加的準確率高約3%,而改進后的邊框生成網絡比未改進的高約10%,表明本文的改進有效地降低了網絡的漏檢率。

圖9 特征融合結構消融實驗結果對比Fig.9 Comparison of ablation experimental loss of feature fusion structure
改進的網絡模型采用兩步法,邊框生成網絡只預測前景而不再預測具體類別,因此可以刪除原YOLOv5中檢測部分的預測類別步驟,生成的邊框信息變為(x,y,w,h,confobj),與原來式(1)生成的邊框信息相比,少了類別概率序列。


上述過程中,m1、m2、m3是過濾后得到的,其值遠小于n,因此,原始生成目標框的算法時間復雜度可近似為O(n2),而本文算法時間復雜度可近似為O(n),因此在邊框過濾步驟中,本文方法會快于原YOLOv5。
YOLOv5原網絡模型的類別預測模塊,但該模塊參數量較小,使用提取到的特征預測分類的結果很差,需要使用分類效果更好的網絡替代,而在眾多的分類網絡中,目前最近發表的準確率高的分類網絡普遍參數量大,如果直接應用與類別檢測模塊,將直接拉低整個網絡的檢測速度,而ResNet的準確率僅低于這些網絡幾個百分點,但參數量適中,速度遠快于上述網絡,因此能夠很好地勝任類別預測模塊的工作。本文使用的分類網絡是由ResNet34修改得到的LiteResNet34-SE,由于ResNet34的參數量遠大于原始YOLOv5的檢測模塊,直接使用會導致整體檢測速度大幅降低。為此,首先對ResNet34進行輕量化操作得到LiteResNet34,將4個主要層級中的卷積通道分別從64、128、256、512降低到16、32、64、128,減少參數量,加快計算速度。降低卷積通道采樣倍數后,網絡的特征提取能力會減弱,區分出相似目標的性能會下降,為此在輕量化網絡模型中引入SE模塊[23]得到LiteResnet34-SE。在特征的通道方向上施加注意力機制,通過學習的方式獲取到每個特征通道的重要程度,然后依照這個重要程度去提升有用的特征。SE模塊使用卷積得到的維度大小為C×H×W的特征,計算出維度大小為C×1×1的向量,向量中的每個值就是特征中對應通道的權重,最后將權重施加到對應通道。添加SE模塊后的輕量化殘差塊如圖10所示。
針對上述改進,使用相同訓練參數將Resnet34、LiteResnet34和LiteResnet34-SE3個網絡各訓練100輪并且每一輪設置驗證,驗證準確率曲線如圖11所示,可以發現LiteResNet34相比ResNet34驗證準確率下降近20%,而LiteResNet34-SE,在100輪左右準確率上升到與ResNet34近似,具有較好的分類力,保證了分類準確率。
通過統計模型的參數量和FLOPS得到表1,可以發現,LiteResNet34總參數量和FLOPS相比ResNet34大幅減少,而添加了SE模塊后,參數量只有小幅增加,相比原ResNet34,降低了參數量,加快了類別的預測計算速度。

C、H、W分別為該輸入輸出的通道數、高度、寬度圖10 擁有SE模塊的輕量化殘差塊Fig.10 Lightweight residual block with SE module

圖11 3種殘差網絡在驗證集的準確率曲線Fig.11 Accuracy curves of three residual networks on val dataset

表1 3種殘差網絡參數量、性能以及訓練時間對比Table 1 Comparison of parameters, performance and training time of three residual networks
為了驗證本文提出的相似目標檢測方法,實驗使用了斯坦福寵物狗數據集[24]和自制音符卡片數據集。
斯坦福寵物狗數據集中,如圖12所示,各個類別之間在外形、動作上存在一定相似性,能夠用于驗證改進后方法的有效性,但是各個類別之間在色彩、體貌上還是存在一定差異。
為了進一步驗證改進后方法的有效性,使用了自制的音符卡片數據集,如圖13所示,音符種類多并且存在許多相似度非常高的種類,如圖14所示,截取了小部分音符卡片在數據集中的圖像,可以看出不同種類的音符卡片在不僅在外形,還在色彩、內容上保持了非常高的相似性,因此使用該數據集能夠更好地證明本文方法對相似目標檢測的有效性。

圖12 斯坦福寵物狗數據集樣本Fig.12 Stanford dogs dataset samples

圖13 音符卡片數據集樣本Fig.13 Note card dataset samples

圖14 部分相似的音符卡片截取圖Fig.14 Screenshots of several similar music note cards
斯坦福寵物狗數據集包含120種不同種類的狗,每種有148~252個樣本圖像,共20 580張圖像,其中12 000張作為訓練集,2 000張作為驗證集,6 580張作為測試集。
音符卡片集包含273種不同類別的音符,每種有140~150個圖像樣本,共40 000張圖像,其中25 000張作為訓練集,5 000張作為驗證集,10 000張作為測試集。
實驗分別對模型的準確率和性能兩個方面進行評估。準確率方面選用平均準確率@0.5: 0.95作為模型精度衡量指標,衡量模型在不同IoU閾值下的綜合表現,平均準確率@0.5: 0.95的值越高表示模型高精度邊框回歸能力越強,檢測結果與原始標簽擬合越精準。性能方面,指標使用幀率(frame per second, FPS)進行評估,如式(9)所示,其中T為測試所用總時間,countimg為進行測試的圖像總張數。
(9)
本文實驗環境為:NVIDIA RTX 3060,Pytorch 1.8.0,CUDA 11.1。實驗將改進的YOLOv5-ResNet與一些主流的目標檢測網絡進行了對比,分別包括YOLOv5、SSD、RetinaNet和Faster R-CNN,使用3.1節中的兩個數據集對網絡進行訓練測試。訓練期間在斯坦福寵物狗驗證集上的正確率曲線對比圖,如圖15(a)所示,本文方法收斂速度和驗證準確率都高于其他方法。在自建的音符卡片數據集上,如圖15(b)所示,本文方法收斂速度僅略慢于Faster R-CNN,準確率均高于其他方法。

圖15 訓練期間在驗證集的mAP曲線Fig.15 mAP curve in validation dataset during training
訓練結束后,使用未參與訓練的測試集在準確率、性能方面進行評估,各個網絡的測試結果對比如表2所示。
在斯坦福寵物狗數據集上,本文方法的mAP相較于YOLOv5、SSD、RetinaNet、Faster R-CNN,分別提升8.1%、15.2%、9.2%、8.3%,檢測幀率相較于YOLOv5降低18.19幀,相較于SSD、RetinaNet、Faster R-CNN分別提高20.64、32.19、33.69幀。
在音符卡片數據集上,本文方法的mAP相較于YOLOv5、SSD、RetinaNet、Faster R-CNN,分別提升45.4%、11.2%、1.2%、1.9%,FPS相較于YOLOv5降低14.91幀,相較于RetinaNet、SSD、Faster R-CNN分別提高27.33、20.64、26.38幀。
圖16和圖17所示為檢測效果圖,3組測試圖像是分別從2個數據集的測試集中隨機挑選的。
在圖16和圖17中,測試分為3組,每一行從左至右分別為YOLOv5、SSD、Faster R-CNN、RetinaNet和本文方法的檢測結果。從對比中可以看出,YOLOv5測試結果效果最差,存在大量的漏檢;SSD、RetinaNet、Faster R-CNN雖然漏檢率少于YOLOv5,但存在將多個目標檢測為一個目標的情況并且目標框有越界的情況;而本文方法沒有漏檢,且目標框也更加準確。

表2 不同方法在測試集的結果對比Table 2 Comparison of results of different methods in test dataset

圖16 Stanford dogs dataset不同算法檢測部分結果對比Fig.16 Comparison of detection results of different algorithms in Stanford dogs dataset
實驗結果表明,原始YOLOv5在有一定相似度的Stanford Dogs Dataset上有一定準確率,但在自制的音符卡片數據集上準確率較差,因為YOLOv5僅以局部特征進行類別預測,目標物體差異越小越近似,YOLOv5的識別能力就越差,而改進后的網絡有效克服了YOLOv5的這些問題,因此能夠很好地處理相似目標的檢測。Faster R-CNN網絡雖然在兩個數據集中準確率都比較高,但檢測速度緩慢,本文方法雖然較原始YOLOv5損失一定的檢測速度,但也遠快于Faster R-CNN,并且滿足實時檢測的需要。綜上,本文方法很好地解決了相似目標檢測“一步法不準,兩步法慢”的問題。

圖17 音符卡片數據集不同算法檢測部分結果對比Fig.17 Comparison of detection results of different algorithms in notes cards dataset
針對實際應用中的相似目標檢測問題,提出了一種改進的YOLOv5-ResNet網絡模型。其主要特點如下。
(1)以YOLOv5作為邊框生成主干網絡,并借鑒了兩步法,使用專門的分類網絡預測目標分類。
(2)改進邊框生成網絡的特征融合結構,加強特征融合,克服目標因卷積下采樣被噪聲或背景淹沒的問題,降低了漏檢率、錯檢率。
(3)使用了輕量化ResNet34網絡進行分類預測,并引入了SE模塊,提升有用特征的權重,保證了分類準確率。
兩種相似目標檢測數據集的測試表明,本文提出的網絡模型不僅具有較高的檢測速度,能夠滿足實時檢測任務的需求,而且具有很高的準確率,整體效果優于現有常規目標檢測網絡,可以很好地應用到實時的近似目標檢測問題中。