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

?

YOLOv4-Tiny的改進(jìn)輕量級目標(biāo)檢測算法

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

何湘杰,宋曉寧

江南大學(xué) 人工智能與計(jì)算機(jī)學(xué)院 江蘇省模式識(shí)別與計(jì)算智能工程實(shí)驗(yàn)室,江蘇 無錫 214122

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

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

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

1 相關(guān)工作

1.1 輕量化工作

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

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

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

1.2 注意力機(jī)制

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

2 YOLOv4-CSATT目標(biāo)檢測算法

2.1 YOLOv4-CSATT整體結(jié)構(gòu)

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

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

2.2 ECA-CSPNet結(jié)構(gòu)

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

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

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

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

圖3 主干網(wǎng)絡(luò)及其主要模塊示意圖Fig.3 Diagram of backbone network and its main modules

2.3 CSATT-PAN結(jié)構(gòu)

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

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

在如圖1所示的頸部網(wǎng)絡(luò)結(jié)構(gòu)中,高層語義特征先自頂向下進(jìn)行上采樣和低層語義特征進(jìn)行Concat操作,然后分別經(jīng)過卷積層后直接輸出到檢測頭和下采樣后的高層語義進(jìn)行Concat操作后輸出到檢測頭。

本文提出的CSATT-PAN 結(jié)構(gòu),充分利用了PANet 結(jié)構(gòu)對于不同尺度的多個(gè)特征的融合作用和CSATT 注意力對于空間和通道的權(quán)重學(xué)習(xí)的能力,在下采樣16 倍和32 倍的特征圖上進(jìn)行了特征的反復(fù)提取,提高了網(wǎng)絡(luò)同時(shí)對于大目標(biāo)和小目標(biāo)的檢測效果。

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

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

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

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

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

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

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

2.5 YOLOv4-Tiny的損失函數(shù)

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

其中,位置損失函數(shù)采用了CIoU[38]的評價(jià)標(biāo)準(zhǔn),CIoU在IoU 的基礎(chǔ)上發(fā)展而來,IoU 是最為傳統(tǒng)的預(yù)測框檢測效果的評價(jià)指標(biāo),其含義是預(yù)測框與真實(shí)框的交集和預(yù)測框和真實(shí)框的并集的比值,公式為:

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

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

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

3 實(shí)驗(yàn)與分析

3.1 實(shí)驗(yàn)標(biāo)準(zhǔn)評價(jià)指標(biāo)

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

在式(9)、式(10)中,TP(true positive)表示為模型預(yù)測為正樣本且預(yù)測正確,F(xiàn)P(false positive)表示為模型預(yù)測為正樣本且模型預(yù)測錯(cuò)誤,F(xiàn)N(false negative)表示為模型預(yù)測為負(fù)樣本且模型預(yù)測錯(cuò)誤。在式(11)中,某個(gè)種類的Precision曲線與坐標(biāo)軸圍成的面積即為單個(gè)種類的AP 值,而mAP 值則是n個(gè)種類物體的平均AP值。

3.2 實(shí)驗(yàn)配置

本文實(shí)驗(yàn)在Ubuntu16.04 系統(tǒng)環(huán)境下進(jìn)行,采用Pytorch1.7.1 版本的深度學(xué)習(xí)框架,顯卡硬件采用NVIDIA GeForce RTX 2080Ti,顯存為11 GB,CPU 的型號為Intel?Core?i9-9900X CPU@3.50 GHz。

本文模型輸入圖像為416×416,初始學(xué)習(xí)率為0.01,最低學(xué)習(xí)率設(shè)置為0.000 1,優(yōu)化器采用SGD 優(yōu)化器,動(dòng)量參數(shù)設(shè)置為0.937,學(xué)習(xí)率衰減方式選用余弦退火,衰減率設(shè)置為5E-4,batchsize 設(shè)置為16,訓(xùn)練120個(gè)epoch。

3.3 實(shí)驗(yàn)數(shù)據(jù)集情況

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

3.4 實(shí)驗(yàn)結(jié)果分析

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

在VOC數(shù)據(jù)集上將本文算法和基線算法YOLOv4-Tiny、一些主流的通用目標(biāo)檢測算法以及輕量級目標(biāo)檢測算法的結(jié)果進(jìn)行比較,結(jié)果如表1 所示。從表1中的結(jié)果可以看出,本文算法作為單階段的目標(biāo)檢測方法,不僅分別超過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 個(gè)百分點(diǎn)的精度,且在速度方面是Faster RCNN 的 約9 倍,是SSD、Efficientdet 的 約4 倍,和YOLOv3-Tiny 基本持平,約是主干網(wǎng)絡(luò)替換為MobileNet 網(wǎng)絡(luò)的YOLOv4 系列網(wǎng)絡(luò)的7~10 倍。而和本文模型的基線算法YOLOv4-Tiny 相比,本文的精度不僅提高了12.3 個(gè)百分點(diǎn),召回率提高了7.2 個(gè)百分點(diǎn),且FPS 基本和原模型接近,這表明本文的基于注意力的頸部特征融合網(wǎng)絡(luò)和對主干網(wǎng)絡(luò)的改進(jìn),提高了網(wǎng)絡(luò)對于冗余信息的利用能力。

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

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

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

圖8 預(yù)測框中心點(diǎn)熱力圖Fig.8 Heatmap of center point of bounding box

表3 是關(guān)于輕量級算法在COCO 數(shù)據(jù)集上的性能結(jié)果,其中Ours-2 算法是在本文算法的基礎(chǔ)上保留了YOLOv4-Tiny 原有的主干網(wǎng)絡(luò)CSPDarknet53s的算法。本文算法相對于YOLOv4-Tiny 算法在AP、AP50、AP75 指標(biāo)上提高了6.4、8.5、12.6 個(gè)百分點(diǎn),而在COCO 數(shù)據(jù)集特有的評價(jià)指標(biāo)APS、APM、APL上,本文算法相對于YOLOv4-Tiny 高出了3.3、7.4、14.0個(gè)百分點(diǎn),在速度方面,F(xiàn)PS 指標(biāo)與YOLOv4-Tiny 相近。在與其他的主流輕量級算法如Efficientdet 和PP-YOLO 的對比中,本文算法的指標(biāo)仍占據(jù)比較大的優(yōu)勢,這足以說明本文算法的有效性。

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

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

圖9 COCO數(shù)據(jù)集上各類目標(biāo)的P-R曲線Fig.9 P-R curves of class targets on COCO dataset

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

表4 消融實(shí)驗(yàn)對比Table 4 Comparison of ablation experiment

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

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

表5 空洞卷積空間金字塔池化超參數(shù)實(shí)驗(yàn)Table 5 Hyperparametric experiment of DC-SPP module

4 結(jié)束語

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

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

猜你喜歡
注意力卷積精度
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設(shè)計(jì)及FPGA實(shí)現(xiàn)
從濾波器理解卷積
基于DSPIC33F微處理器的采集精度的提高
基于傅里葉域卷積表示的目標(biāo)跟蹤算法
“揚(yáng)眼”APP:讓注意力“變現(xiàn)”
A Beautiful Way Of Looking At Things
GPS/GLONASS/BDS組合PPP精度分析
改進(jìn)的Goldschmidt雙精度浮點(diǎn)除法器
一種基于卷積神經(jīng)網(wǎng)絡(luò)的性別識(shí)別方法