高建瓴 孫健 王子?!№n毓璐 馮嬌嬌
摘 ?要: 為提高SSD算法對于小目標的檢測能力和定位能力,本文提出一種引入注意力機制和特征融合的SSD算法。該算法在原始SSD模型的基礎上,通過將全局池化操作作用于高層的不同尺度的特征圖上,結合注意力機制篩選出需要保留的信息。為提高對小目標的檢測精度,本文引入反卷積和特征融合的方式,提高對小目標的檢測能力。通過在PASCAL VOC數(shù)據(jù)集上的實驗表明,該算法有效的提升了對小目標識別的準確率,改善了漏檢的情況,大幅度提升了檢測精度和算法的魯棒性。
關鍵詞:?注意力機制;SSD算法;全局平均池化;特征融合;PASCAL VOC數(shù)據(jù)集
中圖分類號: TN911.73????文獻標識碼:?A????DOI:10.3969/j.issn.1003-6970.2020.02.045
【Abstract】: In order to improve the ability of SSD algorithm to detect and locate small objects, this paper proposes an SSD algorithm that introduces attention mechanism and feature fusion.?On the basis of the original SSD model, the algorithm combined with the attention mechanism to screen out the information that needs to be retained by applying the global pooling operation on the feature graphs of different scales at the high level.?In order to improve the detection accuracy of small targets, deconvolution and feature fusion are introduced in this paper to improve the detection ability of small targets.?Experiments on PASCAL VOC data set show that the algorithm can effectively improve the accuracy of small target recognition, improve the situation of missing detection, and greatly improve the detection accuracy and robustness of the algorithm.
【Key words】:?Attention?mechanisms;?SSD algorithm;?Global average pooling;?Feature fusion;?PASCAL VOC data set
0??引言
目前,越來越多的領域都運用到了目標檢測技術[1-3],例如,無人駕駛領域,醫(yī)療圖像領域,軍事領域等等。在廣泛運用的同時,怎樣可以將目標檢測的性能提高,成為了困擾廣大國內外學者的一個重點和熱點問題[4-5]。近幾年,深度神經(jīng)網(wǎng)絡在目標檢測領域取得了突破性的研究成果,其檢測精度和速度都有了較高的提升,如R-CNN,F(xiàn)ast-RCNN,F(xiàn)aster-RCNN,YOLO,SSD等[6-10]。
其中,R-CNN,F(xiàn)ast-RCNN,F(xiàn)aster-RCNN屬于two-stage檢測算法,通過分類和回歸的方式進行目標檢測是two-stage檢測算法的特點,該目標檢測模型的主要思想是基于區(qū)域候選的方法,在檢測區(qū)域中先將候選區(qū)域提選出來,然后再進行分類和特征提取。YOLO,SSD屬于one-stage的檢測算法,直接通過回歸的方式實現(xiàn)目標檢測,這就是one-?stage的檢測算法[11],這種檢測方法需要預先按照一定的方式劃定默認框,根據(jù)預測框、默認框、真實框之間的對應關系進行訓練,最典型的代表就是YOLO算法和SSD算法。YOLO算法是將特征圖等分為n×n的網(wǎng)格,但是有的時候一個網(wǎng)格中會存在很多小目標,這就很有可能會造成對于目標的漏檢和誤檢,而SSD算法就同時兼顧檢測的準確率和速度,是因為SSD算法可以在一個網(wǎng)格中提取多個候選區(qū)域[12]。但是SSD算法對于網(wǎng)絡的特征表達能力仍然存在不足,例如,魯棒性差,邊界定位不佳等問題。
為解決這一問題Liu等人提出了一種DSSD算法[13],DSSD用Resnet-101網(wǎng)絡替換SSD中的VGG16網(wǎng)絡,將殘差模塊加入到了分類回歸之前,在SSD添加的輔助卷積層后又添加了反卷積層形成“粗-細-粗”的啞鈴結構。經(jīng)過如此改造之后,DSSD算法在小目標檢測上比SSD算法有了一個較大的提高,但因為加入的Resnet-101網(wǎng)絡,卷積層數(shù)太深,計算量太大,導致DSSD比SSD的檢測速度慢了不少。
為了進一步提高SSD算法的準確度,本文為了增強高層特征圖的語義信息引入了通道域注意力機制。通過反卷積和特種融合的方法提高對小目標的檢測精度。通過實驗表明,本文算法在目標檢測及小目標檢測的準確率有了一定的提高,具有良好的魯棒性。
1 ?相關工作
1.1??注意力機制
近些年來,使用掩碼(mask)來形成注意力機制成為了在深度學習與注意力機制中相結合的一種研究方式。掩碼的工作原理是通過另一層新的權重,將數(shù)據(jù)集圖片中的關鍵特征識別并標記出來,然后經(jīng)過不斷的學習和慢慢的訓練,讓網(wǎng)絡學習到每一張數(shù)據(jù)集圖片里需要更多關注的區(qū)域,加重這塊區(qū)域的權重,這樣也就形成了所謂的注意力。這樣來理解的話,注意力機制可以分為兩種注意力機制,一種可以稱之為軟注意力,另一種可以稱之為強注意力,軟注意力更注重通道或者區(qū)域,軟注意力學習完成后可以直接通過網(wǎng)絡生成,所以軟注意力是一種確定性的注意力。而且這種軟注意力可以通過神經(jīng)網(wǎng)絡算出梯度,通過向前傳播和向后傳播反饋學習進而得到注意力的權重,這說明這種軟注意力機制是可以微分的。而強注意力則更加偏向于關注點的變化,也就是說強注意力機制是一個隨機的預測過程,圖中的每一個點都有可能延伸出注意力,更偏向于動態(tài)變化。強注意力機制的訓練過程通常是由增強學習完成的,這是因為強注意力是一個不可微的注意力。
如果從注意力域這方面來分析,注意力機制可以分為空間域注意力機制(spatial domain),通道域注意力機制(channel domain),混合域注意力機制(mixed domain)。
1.1.1 ?空間域(Spatial Domain)
2015年Max[14]等人提出一個叫空間轉換器的模塊,將圖片中的關鍵信息提取出來,并對其空間域的信息進行相應的空間變換。其模型結構如圖1所示。
spatial transformer說白了就是注意力機制的一種實現(xiàn)方式,因為經(jīng)過訓練得到的spatial trans former可以發(fā)現(xiàn)圖片信息中需要被關注的區(qū)域,而且這個transformer還具有將圖片變大變小,改變方向的功能,這樣圖片信息中需要被關注的區(qū)域可以用框盒提取出來。這個模塊可以作為新層加入到其他網(wǎng)絡結構中,對上一層信號的關鍵信息進行識別。
1.1.2 ?通道域
2017年hujie等人提出了一個非常重要的SENet的模型[15],并一舉奪得ImageNet的冠軍,其網(wǎng)絡結構如圖2所示。
我們從上圖可以看出,左邊的X是原始輸入圖片特征,經(jīng)過卷積變換Ftr,產(chǎn)生了新的特征圖U。特征圖U包括了C個通道,每個通道的權重可以由注意力模塊來學習出來,進而生成通道域的注意力。中間的注意力機制模塊就是SENet的創(chuàng)新部分。SENet中的注意力機制可以分成三個部分:擠壓(squeeze),激勵(excitation),以及注意(attention)。
1.1.3??混合域
經(jīng)過上面對空間域注意力機制和通道域注意力機制的介紹,我們可以發(fā)現(xiàn),通道域注意力是忽略每一個通道內的局部信息,直接對通道內的信息進行全劇平均池化,這種做法比較粗糙。而空間域的注意力機制是將通道中的特征圖進行同等處理,就會忽略通道域中特征信息,但是這樣的話空間域的變換方法只能在原始圖片特征提取階段進行,如果在其他卷積層上進行應用,則可解釋性不強,將這兩種注意力機制結合一下就可以設計出混合域的注意力機制模型。
2017年Fei Wang等人提出了注意力機制與深度殘差網(wǎng)絡相關的方法[16],這篇文章中的注意力機制是一種軟注意力機制,使用mask碼來形成注意力。其中每一個特征元素(element)的權重就可以看成是這種mask碼。將注意力權重對應到每個特征元素中去,形成的注意力機制就可以包含空間域和通道域了。
1.2 ?SSD網(wǎng)絡結構
SSD的基礎網(wǎng)絡使用的是VGG16網(wǎng)絡,將VGG16的兩個全連接層替換為卷積層,并增加卷積層深度,在后面添加了Conv8_2,Conv9_2,Conv10_2,?Conv11_2四個卷積層。其網(wǎng)絡結構圖如圖3所示。
SSD將bounding box的輸出空間離散化成一系列的default boxes,有點類似于faster rcnn中的anchor。不同的層會輸出不同的default boxes,最終匯總在一起進行非極大值抑制。這樣結合不同尺度的特征圖的boxes可以有效的處理多尺度問題。
1.3 ?特征融合
1.3.1 ?深度特征的層次性
2014年,Zeiler和Fergus利用反卷積技術[17]對卷積神經(jīng)網(wǎng)絡Alex Net特征進行可視化[18],發(fā)現(xiàn)了卷積神經(jīng)網(wǎng)絡的一些特性,其中之一就是卷積神經(jīng)網(wǎng)絡具有層次性。卷積操作能夠得到圖片候選框區(qū)域中各種特征,經(jīng)過池化操作之后,這些特征就會進行融合和抽象,就這樣重復進行卷積、池化、卷積、池化操作,不斷堆疊之后,從每一層得到的深度特征由一般的特征(如邊緣、紋理特征)慢慢變成高層語義特征(如人臉、軀干等模式)。得益于卷積網(wǎng)絡特征的層次特性使得不同層的特征可以信息互補,因此對單個網(wǎng)絡模型而言卷積特征融合是一種十分直接有效的網(wǎng)絡集成方法,對于提高網(wǎng)絡精度有較好的表現(xiàn)。
1.3.2??上采樣
不同層的卷積特征圖的分辨率可能不一樣,而特征融合時通常需要一樣分辨率的卷積特征圖,所以就要對不同分辨率的卷積特征圖進行縮放操作。下采樣是一種將圖片的分辨率采樣到更小的分辨率的技術,比如我們人盡皆知的池化操作;與之相對應的,將圖像分辨率采樣到更高分辨率的技術就叫做上采樣。在CNN中,常用的上采樣方法是轉置卷積[19](Transposed Convolution),也稱為反卷積。這里的反卷積與之前提到的特征可視化中的反卷積一樣都只是為了保證尺寸大小的互逆,而非數(shù)學意義上保證值的還原。反卷積過程如圖4所示,假設輸入為2*2大小,反卷積中的卷積核大小為4*4,將每個輸入值乘以一個卷積核,則得到4個4*4大小的輸出窗口,再將這四個輸出窗口以stride為2的方式疊加,去掉最外圈一圈的padding值,中間留下的部分就是最終輸出,大小剛好是輸入的兩倍。
2 ?本文算法
2.1 ?加入通道注意力機制的SSD算法
注意力機制模塊的實現(xiàn)過程分為三個步驟:擠壓(squeeze),激勵(excitation),以及注意(attention)。其中擠壓的公式如公式(1)所示。
其中H、W、C分別代表低分辨率高語義信息圖X輸入維度的長度、寬度和通道數(shù),對信息圖X進行擠壓操作后,得到長度為C的一組數(shù)組。公式(1)中的(i,j)表示在大小為H*W的特征圖上的(i,j)點,輸出Y是長度為C的一維數(shù)組。我們可以看出公式(1)實際上就是一個全局平均池化的操作,把每個通道內所有的特征值平均再相加。接下來的激勵過程實際上就是對各通道間的相關度進行建模,公式如下:
W1的維度是C*C,W2的維度是C*C,其中C為C*1/4,經(jīng)過ReLU激活函數(shù)和Sigmoid函數(shù)來訓練學習這兩個權重,得到一個一維的激勵權重來激活每一層通道,最后得到的S的維度是C*1*1。最后是attention操作:
將原始的輸入X替換為經(jīng)過注意力機制模塊獲得的特征圖X·,并送到本文改進的SSD網(wǎng)絡中進行檢測,換一種說法這個過程其實就是一個放縮?的過程,不同的通道的值乘上不同的權重,從而可以增強對關鍵通道的注意力。其算法流程圖如圖5所示。
2.2??加入反卷積和特征融合的SSD模型
針對SSD對小目標檢測能力不足的問題本文使用反卷積讓負責檢測小目標的特征層conv4_3的特征圖增大,然后對特征層conv11_2輸出的特征圖進行上采樣,conv11_2是一層擁有豐富語義的特征層,得到的特征圖效果較好,將上采樣后得到的特征圖與特征圖nconv4_3進行拼接,最后與SSD模型固有的多尺度特征層進行像素直接加權和不同加權系數(shù)的特征融合。所以,本文提出的最終模型如圖6所示。
圖6中紅線部分為反卷積特征區(qū)域放大模塊,主要作用是通過反卷積放大conv4_3特征圖分辨率,與上采樣的conv11_2特征圖拼接,得到新的特征層nconv4_3。SSD模型其他特征層為conv7、conv8_2、conv9_2和conv10_2,與nconv4_3進行不同加權系數(shù)的特征融合,最后進行對目標的定位檢測并輸出。
3??實驗結果與分析
3.1 ?實驗環(huán)境和數(shù)據(jù)集
本實驗所用配置為linux操作系統(tǒng)openSUSE Leap 42.3,選用intel(R)Core(TM)i5-7500的CPU,GeForce RTX2080Ti的GPU,深度學習框架為Tenorflow。實驗所用數(shù)據(jù)集為PASCAL VOC數(shù)據(jù)集,該數(shù)據(jù)集包括20個類別,即飛機、自行車、鳥、船、瓶子、公共汽車、小轎車、貓、椅子、牛、桌子、狗、馬、摩托車、人類、植物、羊、沙發(fā)、火車、電視,共27088張圖片。本文使用VOC2007和VOC2012數(shù)據(jù)集進行訓練,VOC2007數(shù)據(jù)集進行測試。
3.2 ?實驗結果及對比
在目標檢測中我們通常用mAP來表示算法的精確度如何,我們將batch_size設置為32,初始學習率0.0001,學習率的衰減因子為0.94,迭代80000次,得到最終的網(wǎng)絡模型。對比SSD模型,DSSD模型以及本所提出的模型,實驗結果如表1所示。
由表1可以看出,本文所提出的引入注意力機制和特征融合的SSD目標檢測算法,在檢測精度上比傳統(tǒng)的SSD算法提高了1.8%。
本文提出的模型目的是提升小目標的檢測準確率,VOC2007測試集中有21類不同的大小的目標,本文選取其中6類具有代表性的小目標,檢測準確率與SSD和DSSD對比,實驗結果如表2所示。
由表2可知,本文提出的模型在6類小目標的平均檢測準確率為67.9%,較SSD和DSSD模型分別提升3.1%提升1.9%??梢姳疚姆椒軌蛴行z測小目標,對小目標的準確率有明顯的提升。
除此之外,為了檢驗改進算法的實時性,本文對比了SSD算法、DSSD算法以及本文改進算法的檢測速度,具體檢測結果如表3所示:
由表3可知,SSD模型每秒檢測52幀圖像,DSSD模型每秒檢測19幀圖像,本文模型檢測速度為每秒28幀圖像,檢測單張圖像耗時為SSD的兩倍,但快于DSSD模型。
模型檢測速度相對于SSD模型之所以有所下降,是由于本文方法在底層特征層上采用反卷積操作,其在提高特征分辨率的同時增加了計算量,還在后面五層卷積層上加入了注意力機制,使模型的運行時間增加,最終影響了模型的檢測速度。
但是本文模型在檢測精度上相比于SSD模型、DSSD模型有較為明顯的提升,在PASCAL VOC數(shù)據(jù)集上檢測精度達到了73.2%,比SSD模型、DSSD模型分別提高了1.8%,0.6%。在PASCAL VOC小目標檢測上,精度達到了67.9%比SSD模型、DSSD模型分別提高了3.1%,1.9%。檢測速度雖然不及SSD模型,但比DSSD要快上不少,達到了28?f×s-1,一般視頻流為每秒25幀圖像,因此,本文模型在提高檢測精度的同時,可以滿足實時性的要求。
4 ?結束語
基于傳統(tǒng)SSD算法對小目標檢測效果不佳,魯棒性不佳,定位較差的問題,提出一種引入注意力機制和特征融合的算法,改進算法的識別精度,提高算法的魯棒性,增強對小目標的檢測精度。通過實驗發(fā)現(xiàn),本文算法對于小目標具有一定的識別能力,改善了目標漏檢、定位不佳等問題,大幅度提升了算法的魯棒性。下面我將逐步改進模型,在考慮改進高層級特征的基礎上,減小計算量,改善其實時性,進一步提高本文算法各方面的性能。
參考文獻
江超. 基于OpenCV的實時動態(tài)手勢檢測研究[J]. 軟件, 2015, 36(6): 114-119
林王兵, 許燕, 韓飛, 呂超賢, 龔佳俊等. 實驗室環(huán)境下的邊緣檢測技術研究綜述[J]. 軟件, 2015, 36(9): 29-32
張明軍, 俞文靜, 袁 志, 等. 視頻中目標檢測算法研究[J]. 軟件, 2016, 37(4): 40-45
郭毓, 蘇鵬飛, 吳益飛, 郭健. 基于Faster R-CNN的機器人目標檢測及空間定位[J]. 華中科技大學學報(自然科學版), 2018, 46(12): 55-59.
高宗, 李少波, 陳濟楠, 李政杰. 基于YOLO網(wǎng)絡的行人檢測方法[J]. 計算機工程, 2018, 44(05): 215-219+226.
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Columbus: IEEE, 2014: 580-587.
GIRSHICK R. Fast R-CNN [C]// Proceedings of the IEEE Conference on International Conference on Computer Vision. Boston: IEEE, 2015: 1440-1448.
REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks [J]. IEEE Transactions on Pattern Analysis & Machine Intelligence, 2017, 39(6): 1137-1149.
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. New York: IEEE Press, 2016: 779-788.
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector [C]// Proceedings of European Conference on Computer Vision. Amsterdam: Springer International Publishing, 2016: 21-37.
趙秋實, 史燕中, 方 志, 等. 基于頻繁集的伴隨車輛檢測算法研究[J]. 軟件, 2016, 37(4): 69-73
洪奔奔, 管聲啟, 任浪, 等. 基于特征提取與匹配的帶鋼缺陷檢測[J]. 軟件, 2018, 39(9): 31-34
Fu C Y, Liu W, Range A, et al. DSSD: deconvolutional single shot detector [J]. arXiv preprint arXiv:1701.06659, 2017.
Jaderberg, Max, Karen Simonyan, and AndrewZisserman. Spatial transformer networks[C]. Advances in neural information processing systems. 2015.
Hu Jie, Li Shen, and Gang Sun. Squeeze-and-excitation networks. arXiv preprintarXiv:1709. 01507?(2017).
Wang, Fei, et al. Residual attentionnetwork for image classification. arXiv preprint arXiv:1704. 06904?(2017).
Zeiler M D, Taylor G W, Fergus R. Adaptive deconvolutional networks for mid and high level feature learning[C]//?Proceedings of the IEEE International Conference on Computer Vision. 2011: 2018-2025.
Matthew D. Zeiler and Rob Fergus. Visualizing and understanding convolutional networks[C]//Proceedings of European Conference on Computer Vision. Springer Inter national Publishing, 2013: 818-883.
Wojna Z, Ferrari V, Guadarrama S, et al. The Devil is in the Decoder[J]. arXiv preprint arXiv: 1707. 05847, 2017.