?

YOLOv4-Tiny的改進輕量級目標檢測算法

2024-01-11 13:15何湘杰宋曉寧
計算機與生活 2024年1期
關鍵詞:注意力卷積精度

何湘杰,宋曉寧

江南大學 人工智能與計算機學院 江蘇省模式識別與計算智能工程實驗室,江蘇 無錫 214122

目標檢測(object detection)是計算機視覺領域的經典研究,旨在定位圖像中存在物體的位置并識別物體的具體種類[1],是深度學習領域的研究熱點,在自動駕駛、行人檢測、軍事、醫療等領域存在廣泛的應用前景。其主要任務就是找到用戶感興趣的目標,通常來說是人或者一些特定物,然后用錨框包住目標的邊緣,從而完成對目標的定位以及分類回歸的操作。由于各類目標物體在外觀、光影、姿態方面的差異,以及圖像在成像過程光照情況、振動狀況、目標遮擋的情況不同,目標檢測領域仍然存在著諸多挑戰。

傳統的目標檢測方法借助機器學習算法[2],主要是通過傳統算法提取滑動窗口選取的候選區域來提取圖片中特征,如梯度直方圖特征(histogram of oriented gradient,HOG)[3]、哈爾特征(Haar-like features)[4]、尺度不變特征(scale-invariant feature transform,SIFT)[5],然后將得到的語義特征通過支持向量機(support vector machine,SVM)進行回歸分類。傳統方法因為其明顯依賴于人力手工設計特征的模板而在精度、速度以及復雜度方面都有明顯的劣勢。因此在2012 年AlexNet[6]出現之后,包括之后出現的VGG[7],神經網絡算法因其優越的性能,導致目標檢測領域轉向了以卷積神經網絡(convolutional neural network,CNN)為代表的深度學習時代。目前的目標檢測算法已經在各個領域都擁有著廣泛的應用,在一些計算資源充足的場景能充分發揮目標檢測的潛能,達到很高的精確率,然而在另一些計算資源匱乏的場景下,在一些設備上對模型的檢測速度以及大小仍然有一些要求[8],如何在提升檢測精度的基礎上還能提高速度是目標檢測領域需要發展的方向[9]?,F階段目標檢測領域的算法主要分為兩個方向:兩階段算法和單階段算法。兩階段算法的代表性算法有R-CNN(regions convolutional neural network)[10]、Fast R-CNN[11]、Faster R-CNN[12],其算法的主要思想就是在第一個階段中基于區域生成網絡(region proposal network,RPN)獲取感興趣的區域,使用預選框標記感興趣的區域,在第二個階段中對預選框中可能存在的目標進行分類和回歸。單階段算法的代表算法有:SSD[13]、YOLO系列[14-17]、RetinaNet[18]等。單階段算法不需要經歷雙階段算法獲取預選框的RPN 階段,而是直接使用神經網絡對原圖進行處理獲取特征與類別和位置信息,然后進行分類與回歸,大量減少了時間與空間上的占用,在速度上有很大的提升,但是相對于兩階段算法精度更低。

本文提出算法基于基線模型YOLOv4-Tiny[17],提出了一種在目標檢測任務上平衡了檢測速度與精度的輕量級目標檢測網絡結構,通過優化原始網絡模型,減少冗余信息,替換非線性激活函數,提高模型提取復雜信息的能力,以及高級語義信息與低級語義信息融合的能力,在提高精度的同時依然保持較高的FPS(frames per second)。主要貢獻有:(1)提出了DC-SPP(dilated convolution spatial pyramid pooling)模塊,參考空間金字塔池化(spatial pyramid pooling,SPP)模塊的設計思路,把其中的最大池化層替換為了具有不同膨脹率的空洞卷積層,增加了模型多尺度融合的感受野。將主干網絡中的Mish激活函數更換為了LeakyReLU 激活函數,加快了網絡收斂的過程,簡化了計算量,在原本的卷積結構中引入了高效通道注意力(efficient channel attention,ECA)機制,有效地增強了信息的提取效率,并將第二層到第五層結構更換為了ECA-ResBlock 模塊,調整了主干網絡結構,相比原有主干網絡在特征提取方面更有優勢。(2)提出了CSATT(channel spatial attention)注意力模塊,這是一種輕量級的兼具空間注意力和通道注意力的注意力機制,應用于主干網絡和頸部網絡之間,主干網絡兩個特征層的輸出通過CSATT 注意力機制,對于原有特征的空間和通道信息分別分配權重,然后進行高層特征與低層特征的融合與低層特征與高層特征的融合,充分互補了各層的語義信息,使得模型同時對于大、中、小目標有不錯的檢測結果。(3)改造了基線模型原有的頸部網絡,從原來的兩層特征融合金字塔FPN(feature pyramid network)結構,參考PANet 結構的思想,改進成為和CSATT 注意力機制結合的CSATT-PAN(channel spatial attention path aggregation network)結構,以上三點改進在速度降低有限的情況下,大幅提高了精度,很好地完成了模型平衡精度與速度的要求。

1 相關工作

1.1 輕量化工作

目前神經網絡深度學習方向貢獻了目標檢測領域大多數的最高水平的成果,但是隨之而來的是越來越深的網絡層數和越來越高的計算資源的消耗,難以將最新的科技成果普及到更加廣泛和實際的應用場景。因此相應的目標檢測算法的輕量化是算法實際落地的過程中重要的步驟,以此來適應在現實場景中有限的客戶端的硬件水平。MobileNetv1[19]主要思想是通過將主干網絡中的普通卷積層(convolution,Conv)替換成了深度可分離卷積(depthwise separable convolution),利用卷積過程中的降維操作大大降低了模型的參數量。MobileNetv2[20]在v1 的基礎上,通過使用倒置殘差結構(inverted residual structure),將低維度壓縮表示的輸入擴展到高維度,使用深度卷積過濾,使用線性瓶頸模塊(linear bottleneck)將特征投影回低維度。使用線性模塊,是因為感興趣的流形(manifold of interest)采用非線性激活將會損失很多信息。李仁鷹等人[21]將YOLOv4 網絡的主干網絡替換為了MobileNetv2 和結合注意力機制的方式實現了算法的輕量化,但是精度方面結果下滑嚴重。EfficientNet[22]通過綜合優化平衡網絡的深度、網絡的寬度以及輸入圖片的分辨率之間的關系以達到最優解,大大減少了參數量和計算量,但是EfficientNet 依然存在精度不足的缺點,難以達到一般嵌入式或是其他計算資源緊張平臺的精度要求,在嵌入式設備上進行目標檢測時易受能耗和功耗等限制,使得傳統目標檢測算法效果不佳[23]。

在深度學習中,更好的結果往往依賴于更大的計算量,然而在這龐雜的計算結果中存在大量的冗余信息,如何處理這些冗余信息也是實現輕量化的一種方式。Wang等人[24]嘗試從網絡結構的角度來減少計算結果冗余的問題,提出了跨階段的局部網絡(cross stage partial network,CSPNet),通過多層次融合的殘差信息,豐富了梯度信息,在同等精度下減少了20%的計算量。Han 等人[25]提出了一種解決特征圖信息冗余的神經網絡GhostNet,它基于特征映射應用一系列成本低廉的線性變換獲得幽靈特征映射來訓練網絡,大大減少了參數量和計算量。

在輕量化的研究中心,去掉或者代替錨框(anchorfree)的思想也有相當多的相關工作,DenseBox[26]從訓練圖片中裁剪出包含人臉的塊,利用這些塊包含的人臉信息以及背景信息進行訓練,然后輸出包含置信度和4個方向上與真實框的距離的五維熱圖,配合分類與定位兩方面的損失函數進行學習,通過密集采樣開創了anchor-free 的做法。CornerNet[27]使用目標的左上角坐標和右下角坐標兩個角點代替了目標的錨框,且提出了Corner-pooling 這一適配于左上角點與右下角點這種位置關系的池化方法,大大增加了網絡的推理速度,而ExtremeNet[28]則對傳統的矩形框做出了改變,絕大多數的目標并不是矩形,使用矩形框框選目標時會引進大量的背景信息,因此ExtremeNet通過預測每個對象類別的多峰熱圖,找到最底部、最頂部、最左側和最右側的4個極值點,再使用一個多峰熱圖對中心點進行預測,分類分數高于閾值的可形成一個預測框,在通用數據集上取得了很高的精度。

1.2 注意力機制

注意力機制自從問世以來,就廣泛應用于神經網絡的各個領域,它能捕捉到不同信息之間的權重差異從而度量不同信息的重要性,并且可以動態調整權重,以便于模型強化對重要信息注意的同時也忽略掉不重要的信息,從而提高深度學習算法的效率。CBAM(convolutional block attention module)[29]注意力模塊將原始輸入分別通過通道注意力和空間注意力模塊的處理,并且和原輸入進行按位相乘做到自適應的特征優化,提高了模型的精度。SeNet[30]則是專注于讓模型學習到不同通道間的信息的重要程度,通過擠壓(squeeze)操作得到通道級的全局特征,然后對全局特征進行激發(excitation)操作,得到各個通道的權重,按位乘以原來的特征圖得到有注意力權重的特征圖。ECA[31]注意力機制提出了一種不降維的局部跨通道信息交互策略和自適應一維卷積核大小的方法,高效實現SENet 類似效果。Hou 等在CVPR2021 中提出了坐標注意力,陳一瀟等[32]將其運用到行人檢測領域,將位置信息加入到通道注意力當中,使網絡可以在更大區域上進行注意[33]。

2 YOLOv4-CSATT目標檢測算法

2.1 YOLOv4-CSATT整體結構

YOLOv4-CSATT 算法在YOLOv4-Tiny 算法模型的基礎上改進而來,網絡結構由三個主要的框架構成:主干特征提取網絡(backbone)、頸部特征融合網絡(neck)以及檢測頭網絡(head)構成。其主干網絡ECA-CSPNet由YOLOv4-Tiny主干網絡改進而來,結構圖如圖1所示,將原網絡的第二層基礎卷積層也改成ECA-ResBlock 結構,輸入分辨率為416×416 的圖像,在經過不同層數的下采樣處理后,會在第四層和第六層兩個特征輸出層分別輸出26×26 和13×13尺度的特征圖,通過新增的CSATT 注意力模塊分辨出重要的與次要的信息,然后進行加權處理,在CSATT-PAN 結構中將兩層不同尺度的特征先后進行自下而上和自上而下的特征融合,然后分別進行Concat拼接操作,實現高層語義和低層語義的特征融合,然后通過檢測頭網絡進行非極大值抑制(non maximum suppression,NMS)來預測分類結果,其原理是在符合一定閾值的重合度的預測框中,選取最優預測框。

圖1 YOLOv4-CSATT算法示意圖Fig.1 YOLOv4-CSATT algorithm diagram

2.2 ECA-CSPNet結構

ECA[31]注意力模塊是一種通道注意力模塊,因其即插即用、簡單高效的特點廣泛應用于計算機視覺領域。相比SENet注意力,ECA使用了一維卷積代替了全連接層(full connection,FC),降低了參數量,以極小的計算開銷,實現了高效的模型的跨通道信息交換能力,提取了通道間的權重和依賴關系,其結構如圖2 所示。圖2 中,f表示輸入的特征圖,其高、寬、通道數分別用H、W、C來表示。首先每一層經過一次按特征圖的全局平均池化(global average pooling,GAP),得到1×1×C的特征圖,經過一次尺寸為k(本文取k=3)的卷積核的一維卷積層以及一層Sigmoid激活函數后,然后和原輸入逐元素相乘得到輸出特征圖f′。本文選用了ECA 模塊來改進原有的主干網絡,因為ECA 模塊相比其他主流的注意力機制如SENet、CBAM 模塊有綜合性能上的優勢。在VOC數據集上,使用ECA 模塊的結果為mAP 精度達到78.56%,FPS 達到94,替換為SENet 后mAP 精度達到78.61%,FPS 達到81,替換為CBAM 模塊后FPS 下降約40%,為55,綜合考慮精度與速度指標,選用ECA為最佳選擇。

圖2 ECA注意力示意圖Fig.2 ECA attention diagram

YOLOv4-Tiny 的主干網絡的設計思路很大程度上借鑒了CSPNet 的網絡結構的思想:通過分割梯度流,殘差結構融合了更加豐富的梯度組合,使得傳播的梯度信息有更大的相關性差異,提高速度和準確性的同時減少了計算量。CSPNet 主要解決了3 個問題:(1)增強CNN 的學習能力;(2)消除了計算瓶頸;(3)減少了內存成本[24]。本文在CSPNet的基礎上,將ECA 注意力機制引入其中,并且將BasicConv 模塊中激活函數由Mish 函數改為計算效率更高的LeakyReLU激活函數,兩者公式如下:

從兩者的公式可以看出,Mish 函數的計算涉及到更為復雜的正切函數與對指數函數的計算,而LeakyReLU 函數是依賴于單個超參數的線性函數,只用一個超參數就保持了自變量為負值的梯度流,防止出現神經元死亡,降低了計算代價,提高了計算效率。本文提出了ECA-ResBlock 結構,其主要結構如圖3 所示。殘差結構的思想自從在ResNet[34]中提出以來,已經成為神經網絡防止過擬合的設計范式。CSPNet 是ResNet 中殘差結構思想更進一步的發展,在本文的ECA-ResBlock 模塊中,在BasicConv 卷積模塊的堆積之上,引入了兩條殘差邊,其中一條殘差邊在經過三次普通卷積層的處理后,分兩支其中一支經過一層普通卷積層和ECA 注意力后和不做處理的另一支進行Concat 操作,然后在經過一層普通卷積層后,和另外一條未經處理的殘差邊進行Concat操作。這兩條殘差邊的引入無疑為模型提供了更多的跨階段的梯度信息,優化了重復的梯度信息,增強了不同層中學習特征的可變性,增強了空間信息的提取,減少了計算成本。

圖3 主干網絡及其主要模塊示意圖Fig.3 Diagram of backbone network and its main modules

2.3 CSATT-PAN結構

本文在基于CSATT 注意力機制的基礎上,借鑒了PANet[35]與FPN[36]頸部特征融合網絡的思想,提出了CSATT-PAN 頸部網絡結構。感受野(receptive field,RF)是神經網絡和深度學習領域很重要的概念,用來表示網絡內部不同位置的神經元對于原始圖像的感受范圍的大小。感受野越小,表示其所包含的特征趨于局部和細節,感受野越大則表示其能接觸的原始圖像的范圍就越大,因此神經元能感受到更多目標周圍有效的、更為全局的、語義層次更高的上下文信息,FPN 與PANet都是有效增加神經元感受野的多尺度的特征融合算法。在FPN 特征金字塔網絡中,不同層的特征輸出層自頂向下地進行特征融合,而PANet在此基礎上多進行一次自下而上的特征融合,融合了高層語義特征和低層語義特征,但是在多層語義特征融合的過程中,尺度不匹配所帶來的誤差一直不能忽視,因此,在主干網絡和頸部網絡之間,通過額外加入一個CSATT注意力模塊,讓網絡對于不同特征輸出層的重要程度的權重進行學習,以此可以動態增強頸部網絡特征融合的結果,從而提高目標檢測的精度。CSATT注意力如圖4所示,在CSATT 結構中,尺寸為H×W×C的輸入特征圖F,先按特征圖全局平均池化,然后進行一維卷積計算,實現通道間的信息交換,再通過Sigmoid 激活函數進行計算后和原輸入逐元素相乘得到中間特征圖。中間特征圖繼續按通道進行全局平均池化,實現空間間的信息交換,然后經過Sigmoid 激活函數進行計算后和原輸入逐元素相乘獲得最終的結果F′。

圖4 CSATT注意力示意圖Fig.4 Diagram of CSATT attention

在如圖1所示的頸部網絡結構中,高層語義特征先自頂向下進行上采樣和低層語義特征進行Concat操作,然后分別經過卷積層后直接輸出到檢測頭和下采樣后的高層語義進行Concat操作后輸出到檢測頭。

本文提出的CSATT-PAN 結構,充分利用了PANet 結構對于不同尺度的多個特征的融合作用和CSATT 注意力對于空間和通道的權重學習的能力,在下采樣16 倍和32 倍的特征圖上進行了特征的反復提取,提高了網絡同時對于大目標和小目標的檢測效果。

2.4 DC-SPP多尺度特征融合模塊

為了實現更好的特征融合效果,不僅在頸部網絡實現特征融合,本文在主干網絡也引入多尺度的特征融合模塊。通常的SPP 模塊的算法實現如圖5所示。參考SPPNet[37]的設計思想,本文使用空洞卷積替換其中原有的最大池化層提出了DC-SPP 模塊,如圖6所示。

圖5 SPP模塊Fig.5 Spatial pyramid pooling module

圖6 DC-SPP模塊Fig.6 DC-spatial pyramid pooling module

為了擴大特征的感受野,本文實現了多尺度感受野的融合。如圖6 所示,輸入分為四路,一路為殘差邊保持原有信息,另外三路經過不同膨脹率的空洞卷積層,四路信息相加,經過一個ResNet殘差網絡中的瓶頸塊結構,先進行1×1 的卷積進行降維,然后進行3×3 卷積,再通過1×1 卷積升維到原來的維度來降低一部分的計算量,并和一條殘差邊相加,實現了多尺度的特征融合,進一步提高了網絡的多尺度的上下文信息提取能力和特征表達能力。

空洞卷積可以通過設置不同的膨脹率,使得卷積核的各個元素不再相鄰,而是根據公式相隔一個距離,其計算公式如下:

其中,k′為新的卷積核尺寸大小,k為原始卷積核尺寸大小,d為膨脹率,卷積核的個數并未增加,但是覆蓋面積卻變大,給特征圖帶來更廣大的感受野。經過實驗,3 個分支的空洞卷積的膨脹率根據實驗結果選擇為2、3、4組合,實驗結果將在后面進行介紹。

2.5 YOLOv4-Tiny的損失函數

在YOLOv4-Tiny 中,主要計算三個方面的loss:位置損失、置信度損失和類別損失。其總的損失函數可以寫為:

其中,位置損失函數采用了CIoU[38]的評價標準,CIoU在IoU 的基礎上發展而來,IoU 是最為傳統的預測框檢測效果的評價指標,其含義是預測框與真實框的交集和預測框和真實框的并集的比值,公式為:

其中,b代表預測框,bgt代表真實框。使用IoU作為評價標準存在一些問題:(1)IOU 沒有考慮兩個框之間的位置信息,當兩個預測框之間沒有重疊面積時IoU值為0,則反向傳播無法進行;(2)IoU 對于尺度不敏感,對于大小不同的框,其IoU 值可能相同,但是其重疊程度卻可能不同。針對IoU 評價標準存在的問題,GIoU[39]、DIoU[40]、CIoU 被相繼提出,這些算法的核心思想都是針對IoU 的缺點,不僅考慮預測框與真實框的交集和預測框和真實框的并集的比值,還引入了預測框和真實框的最小閉包矩形面積和預測框和真實框形心和最小閉包矩形對角線長度的歸一化比值等指標,YOLOv4-Tiny 采用的CIoU 中引入了更加注重真實框和預測框長寬比差異的懲罰項,其公式為:

CIoU 如圖7 所示,藍色矩形為預測框,黃色矩形為真實框,d代表兩個矩形的幾何中心點的距離。式(6)中ρ2(b,bgt)代表了真實框和預測框的中心點的直線距離的平方即為d的平方,綠色矩形為兩個矩形的最小閉包矩形,c表示其對角線長度,α、v表示對于真實框和預測框長寬比差別的懲罰項,其數量關系如式(8)所示。在式(7)中,ωgt表示真實框寬度,hgt表示真實框高度,ω為預測框寬度,h為預測框高度。

圖7 CIoU示意圖Fig.7 Diagram of CIoU

3 實驗與分析

3.1 實驗標準評價指標

在目標檢測任務中,常常使用平均精度(average precision,AP)及其按種類平均的精度值(mean average precision,mAP)作為精度的評價指標。相關的指標還有召回率(recall,R)、準確率(precision,P)以及F1值,使用FPS作為模型速度的指標,相關的公式為:

在式(9)、式(10)中,TP(true positive)表示為模型預測為正樣本且預測正確,FP(false positive)表示為模型預測為正樣本且模型預測錯誤,FN(false negative)表示為模型預測為負樣本且模型預測錯誤。在式(11)中,某個種類的Precision曲線與坐標軸圍成的面積即為單個種類的AP 值,而mAP 值則是n個種類物體的平均AP值。

3.2 實驗配置

本文實驗在Ubuntu16.04 系統環境下進行,采用Pytorch1.7.1 版本的深度學習框架,顯卡硬件采用NVIDIA GeForce RTX 2080Ti,顯存為11 GB,CPU 的型號為Intel?Core?i9-9900X CPU@3.50 GHz。

本文模型輸入圖像為416×416,初始學習率為0.01,最低學習率設置為0.000 1,優化器采用SGD 優化器,動量參數設置為0.937,學習率衰減方式選用余弦退火,衰減率設置為5E-4,batchsize 設置為16,訓練120個epoch。

3.3 實驗數據集情況

本文的訓練與測試實驗主要集中在通用目標檢測領域兩個主流數據集:PASCAL VOC 和MS COCO數據集,以下簡稱VOC 數據集和COCO 數據集。VOC數據集總共含有17 125張圖片,分為20個類別;COCO 數據集是由微軟公司提出的一個更為龐大的數據集,總共包含80 個類別,分為訓練集、驗證集和測試集,其中測試集數據沒有標注信息因此棄用,主要使用訓練集和驗證集的數據來進行訓練和測試,最終約有117 000 張圖片。數據集均按照8∶1∶1 的比例劃分訓練集、驗證集和測試集進行訓練。

3.4 實驗結果分析

為了證明提出的算法模型具有真實的有效性,本文采用了多組對比實驗與其他目標檢測方法進行比較。在檢測階段,基本設置為:輸入圖像大小為416×416,在非極大值抑制階段計算召回率、平均準確率及其他指標時,設置IoU 的閾值為0.5,設置與得分最高預測框IoU 小于閾值0.4的預測框被淘汰。使用本文算法與其他算法在相同的數據集和訓練相同的epoch 數的基礎上,將得到的性能結果進行了比較與分析,證明了本文算法基本維持速度的情況下大幅提高了精度。

在VOC數據集上將本文算法和基線算法YOLOv4-Tiny、一些主流的通用目標檢測算法以及輕量級目標檢測算法的結果進行比較,結果如表1 所示。從表1中的結果可以看出,本文算法作為單階段的目標檢測方法,不僅分別超過Faster R-CNN、SSD、Efficientdetd1、YOLOv3-Tiny、YOLOv4-MobileNetv1、YOLOv4-MobileNetv2、PP-YOLO 約3.3、5.5、6.3、17.4、10.3、0.9、0.6 個百分點的精度,且在速度方面是Faster RCNN 的 約9 倍,是SSD、Efficientdet 的 約4 倍,和YOLOv3-Tiny 基本持平,約是主干網絡替換為MobileNet 網絡的YOLOv4 系列網絡的7~10 倍。而和本文模型的基線算法YOLOv4-Tiny 相比,本文的精度不僅提高了12.3 個百分點,召回率提高了7.2 個百分點,且FPS 基本和原模型接近,這表明本文的基于注意力的頸部特征融合網絡和對主干網絡的改進,提高了網絡對于冗余信息的利用能力。

表1 不同算法在VOC數據集上的性能對比Table 1 Performance comparison of different methods on VOC dataset

如圖8 所示,對預測框中心點做熱力圖分析,直觀地展示了注意力機制在預測框的選擇與回歸分類的過程中發揮的作用。本文模型在注意力機制的指導下,更加聚焦于目標的幾何中心區域。從表2的分類結果中可以看出:本文改進的算法基本在大部分種類上優于YOLOv4-Tiny 算法,本文算法在小目標的精度上基本和YOLOv4-Tiny 持平,但本文模型在大中型目標方面,相對于YOLOv4-Tiny 錯檢、漏檢的概率更低,預測框的偏移更??;在人物(Person)、瓶子(Bottle)、羊(Sheep)、飛機(Aeroplane)、馬(Horse)、牛(Cow)以及貓(Cat)類型上的檢測效果相對于YOLOv4-Tiny 有明顯的提升,這是由于本文的CSATT-PAN 結構在特征融合的過程中實際上給與了檢測目標以更大的感受野,然后通過CSATT 注意力中的空間注意力部分感受到了經過感受野放大后的檢測目標,實現了精度的極大提升,然而在一些小目標的指標上有略微的降低,可能與訓練集中樣本分布的不平衡有關,樣本少的類別的檢測結果不具有魯棒性,訓練過程會導致正樣本和負樣本的失衡[41]。

表2 VOC數據集上與YOLOv4-Tiny算法各類別精度的對比Table 2 Precision comparison of each category on VOC dataset with YOLOv4-Tiny algorithms 單位:%

圖8 預測框中心點熱力圖Fig.8 Heatmap of center point of bounding box

表3 是關于輕量級算法在COCO 數據集上的性能結果,其中Ours-2 算法是在本文算法的基礎上保留了YOLOv4-Tiny 原有的主干網絡CSPDarknet53s的算法。本文算法相對于YOLOv4-Tiny 算法在AP、AP50、AP75 指標上提高了6.4、8.5、12.6 個百分點,而在COCO 數據集特有的評價指標APS、APM、APL上,本文算法相對于YOLOv4-Tiny 高出了3.3、7.4、14.0個百分點,在速度方面,FPS 指標與YOLOv4-Tiny 相近。在與其他的主流輕量級算法如Efficientdet 和PP-YOLO 的對比中,本文算法的指標仍占據比較大的優勢,這足以說明本文算法的有效性。

表3 輕量級算法在COCO數據集上的性能比較Table 3 Performance comparison of lightweight algorithms on COCO dataset

圖9 是COCO 數據集中常見種類目標的PR 曲線圖。通常情況下,評價一個目標檢測算法的性能,要以不同IoU 門限閾值對所有預測框進行檢測,每次檢測分別計算Recall 值和Precision 值,計算公式已在3.1 節給出,并以Recall 值作為橫坐標,Precision 值作為縱坐標來畫PR 曲線。某個種類目標的PR 曲線與坐標軸圍成的面積即為該種類的AP 值。因此,一般來說PR 曲線越靠近右上角,性能評價更高。在圖9中,按照COCO 的目標大小劃分標準,其中像素小于32×32 的目標為Small 目標,像素大于32×32 而小于96×96 的為Medium 目標,大于96×96 的為Large 目標,以此標準分為三類目標。在圖9中以實線表示本文算法PR 曲線,用虛線表示YOLOv4-Tiny 算法,分別用青色線、黃色線、紅色線、藍色線表示Small 目標、Medium目標、Large目標、所有目標平均值。從各個種類的PR曲線圖中看出,本文算法的大、中目標的PR 曲線在YOLOv4-Tiny 算法PR 曲線的右上方,與坐標軸圍成的面積也就是AP 值更大,結果穩優于YOLOv4-Tiny 算法,在小目標的PR 曲線上略微優于YOLOv4-Tiny算法。

圖9 COCO數據集上各類目標的P-R曲線Fig.9 P-R curves of class targets on COCO dataset

表4 是關于本文模型的各種組件在VOC 數據集上消融實驗的結果,基線模型是YOLOv4-Tiny。相對于基線模型67.0%的mAP 結果,本文算法的mAP達到了78.6%,提高了11.6 個百分點的精度。原模型沒有很好地捕捉與學習到目標相當多的特征,從而沒有表現出很好的檢測結果,而本文的模型在基線模型的基礎上,對主干網絡進行改進,增添了CSATT注意力機制,增加了CSATT-PAN結構,在原有精度的基礎上都有提升,說明本文的注意力機制和頸部特征融合網絡都發揮了較好的作用,使得模型加強了識別多尺度目標和權重學習的能力。圖10為本文算法(左側)和YOLOv4-Tiny 算法(右側)在相同圖片上的檢測結果,本文算法明顯減少了錯檢、漏檢的情況,并且預測框的位置更加貼合于目標的實際輪廓,更加精準與緊湊。

表4 消融實驗對比Table 4 Comparison of ablation experiment

圖10 與YOLOv4-Tiny算法檢測效果可視化對比Fig.10 Visual comparison of detection effect with YOLOv4-Tiny algorithm

本文還對于DC-SPP 模塊的超參數膨脹率進行了對比實驗,結果如表5所示。本文設置膨脹率組合為[2,2,2]、[3,3,3]、[4,4,4]、[3,3,4]、[2,3,4],和原始SPP 模塊進行對比實驗。實驗結果表明本文的DCSPP 模塊相比原始SPP 模塊更為有效,在各種膨脹率配置中[2,3,4]的配置綜合來看結果最好,因此選用[2,3,4]這一膨脹率組合。

表5 空洞卷積空間金字塔池化超參數實驗Table 5 Hyperparametric experiment of DC-SPP module

4 結束語

通用目標檢測的輕量化算法在各個領域都有其應用,有重要的研究意義,本文以YOLOv4-Tiny 算法為基礎,提出了一種基于注意力和特征融合的改進方法。在主干網絡中修改了激活函數且引入了ECA注意力機制,修改了主干網絡的卷積層為ECAResBlock 模塊,注意力機制使得模型對于重點目標進行了聚焦,對于感興趣的目標給以更高的權重。對傳統SPP模塊進行改進,使用空洞卷積替換了原有的最大池化層結構,并且使用了ResNet 的瓶頸塊結構,為主干網絡帶來了多尺度的特征信息。使用CSATT-PAN 結構替換了原有的頸部網絡,通過高層語義和低層語義的特征融合給模型提供了更多的上下文信息,提高了模型準確率。實驗結果表明,本文算法YOLOv4-CSATT在相同的實驗環境和數據集的基礎上與YOLOv4-Tiny 以及其他主流模型相比,在精確度和速度方面均有不少的提高。本文算法相比YOLOv4-Tiny算法在VOC數據集上提高了12.3個百分點,在COCO 數據集上高出了6.4 個百分點,在速度方面是SSD、Efficientdet-d1 的約4 倍,是Faster RCNN的約9倍。

目前本文算法還存在一些局限性,如何在模型大小和參數量都較小的水平下追求更高的準確率是目標檢測算法輕量化的目標。未來工作中可以展望的方向是使用anchor-free的方法縮短推理時間,以及使用正負樣本匹配平衡的做法增強小目標居多場景的檢測效果的魯棒性。

猜你喜歡
注意力卷積精度
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
從濾波器理解卷積
基于DSPIC33F微處理器的采集精度的提高
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS組合PPP精度分析
改進的Goldschmidt雙精度浮點除法器
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合