胡夢龍 施雨
摘? 要:SSD方法是目前為止主要的目標(biāo)檢測算法之一。針對該方法處理小目標(biāo)物體檢測時(shí)精度不高的問題,文章在對SSD卷積神經(jīng)網(wǎng)絡(luò)的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行分析的基礎(chǔ)上,在使用原有多層卷積特征圖結(jié)構(gòu)的前提下通過特征增強(qiáng)的方法來改善網(wǎng)絡(luò)結(jié)構(gòu),構(gòu)建了一種新的小目標(biāo)物體檢測算法模型。將該模型在PASCAL VOC 2012目標(biāo)檢測數(shù)據(jù)集上進(jìn)行精度檢測,檢測結(jié)果與原始的SSD網(wǎng)絡(luò)相比有了較好的提升。
關(guān)鍵詞:SSD方法;小目標(biāo)物體;多層卷積特征圖;特征增強(qiáng)
中圖分類號:TP391.41;TP181? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號:2096-4706(2020)03-0005-05
Abstract:SSD method is one of the main target detection algorithms so far. Aiming at the problem of low accuracy when this method is used to detect small target objects,Based on the analysis of the network structure of SSD convolution neural network,this paper improves the network structure by the method of feature enhancement on the premise of using the original multi-layer convolution feature map structure,and constructs a new algorithm model of small target detection. This model is used to detect the accuracy of PASCAL VOC 2012 target detection data set,and the detection result is improved compared with the original SSD network.
Keywords:SSD method;small target object;multi-layer convolution feature map;feature enhancement
0? 引? 言
目標(biāo)檢測作為計(jì)算機(jī)視覺的基礎(chǔ)研究內(nèi)容,在近幾年發(fā)展突飛猛進(jìn)。2013年Ross Girshick等提出了R-CNN[1]算法,該算法的提出將原本只能通過手工提取特征的方式轉(zhuǎn)變成通過神經(jīng)網(wǎng)絡(luò)自動(dòng)提取特征的方式。在此之后,出現(xiàn)了很多基于卷積神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測算法的研究,一般來說分為基于候選窗口的方式或基于回歸的方式兩大類。
基于候選窗口方式的主要有2014年4月Kaiming He等提出的SPP Net[2]算法,該算法主要對R-CNN進(jìn)行改進(jìn);Girshick對R-CNN進(jìn)行了進(jìn)一步優(yōu)化,提出了Fast R-CNN[3]算法,將串行結(jié)構(gòu)改成了并行結(jié)構(gòu),在分類的同時(shí)進(jìn)行回歸;Shaoqing Ren等人提出的Faster R-CNN[4]在Fast R-CNN的基礎(chǔ)上使用了區(qū)域選擇網(wǎng)絡(luò)(RPN)來代替選擇性搜索網(wǎng)絡(luò)方法(SS)?;诤蜻x窗口方式的算法存在的缺點(diǎn)是檢測速度相對較慢,實(shí)時(shí)性效果較差。
2016年,Radmon等人提出了YOLO[5]網(wǎng)絡(luò)模型。Liu等人又在YOLO的基礎(chǔ)上提出了SSD(Single Shot MultiBox Detector)[6]網(wǎng)絡(luò),該方法是一種基于回歸的目標(biāo)檢測方法,主要思想是在一張圖片中直接預(yù)測,不需要推薦預(yù)選框和特征重組的步驟,真正意義上實(shí)現(xiàn)了端到端的方法?;诨貧w的目標(biāo)檢測方法有著檢測速度快的特點(diǎn),但是相對于基于候選窗口的目標(biāo)檢測方法有著明顯的缺陷:檢測精度較差,尤其體現(xiàn)在檢測小目標(biāo)的物體上。因此,如何提高檢測精度是該方法的主要研究目標(biāo)之一[7]。
本文基于南京市經(jīng)信委重點(diǎn)項(xiàng)目“交通大數(shù)據(jù)公共服務(wù)平臺(tái)”、南京市科委“大數(shù)據(jù)驅(qū)動(dòng)下的大型客運(yùn)樞紐監(jiān)控預(yù)警與應(yīng)急處置”項(xiàng)目中對交通十字路口車輛小目標(biāo)檢測問題,是項(xiàng)目中的一項(xiàng)關(guān)鍵技術(shù)。以SSD為研究的基礎(chǔ)框架,通過對多層卷積特征圖的改進(jìn)來提升算法對小目標(biāo)的識(shí)別能力。
1? SSD方法
1.1? 方法原理
1.1.1? 算法原理
(1)采用多尺度特征圖用于檢測:SSD算法采用基礎(chǔ)網(wǎng)絡(luò)VGG16。不同于原本VGG16網(wǎng)絡(luò)的是,該算法將該網(wǎng)絡(luò)最后的兩個(gè)全連接層fc6和fc7變成了3×3卷積層Conv6和1×1卷積層Conv7。移除用來防止過擬合的Dropout層以及全連接層fc8,并從中提取Conv7、Conv8_2、Conv9_2、Conv10_2、Conv11_2作為檢測用的特征圖。通過這種方式可以在低層預(yù)測小目標(biāo),在高層預(yù)測大目標(biāo)。
(2)設(shè)置了多種不同尺度的候選區(qū)域框:SSD采用多尺度特征方法,需要設(shè)置不同尺度的候選區(qū)域,其候選區(qū)域的選擇公式如下:
1.1.2? 算法實(shí)現(xiàn)步驟
(1)首先輸入一張300*300的圖片,將圖片經(jīng)過卷積進(jìn)行特征提取,生成特征圖。
(2)從每層的特征圖中提取其中一張?zhí)卣鲌D,共6張,在特征圖上的每個(gè)點(diǎn)上生成候選區(qū)域。
(3)將生成的候選區(qū)域通過非極大值抑制(NMS)篩選,輸出結(jié)果。
1.2? 評估指標(biāo)
本文使用mAP指標(biāo)以及FPS指標(biāo)來評估算法的性能。
1.2.1? mAP指標(biāo)
mAP是先對類別內(nèi)求平均精度,之后再對所有的類別的平均精度求平均。其公式如下:
其中,C為樣本種類數(shù),AP為樣本的平均精確度,計(jì)算公式如下:
其中,N表示recall的數(shù)量,r表示召回率,p(r)表示最大準(zhǔn)確率,準(zhǔn)確率p和召回率r計(jì)算公式如下:
1.2.2? FPS指標(biāo)
FPS指1秒內(nèi)識(shí)別的圖像數(shù),是用來檢測模型的檢測速度的指標(biāo)。
2? 小目標(biāo)物體檢測模型
2.1? 算法模型
原本的SSD模型,沒有將深層特征層的上下文信息與淺層特征層相結(jié)合。對于小目標(biāo)物體在淺層特征層而言其特征相對過少,在淺層特征圖中進(jìn)行定位可能會(huì)出現(xiàn)漏檢的情況。我們通過對深層特征圖先進(jìn)行上采樣操作,再將其與淺層的特征圖進(jìn)行融合,可以提高對小目標(biāo)物體的識(shí)別能力[8]。本文設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
左邊是原有的SSD算法網(wǎng)絡(luò)結(jié)構(gòu),首先在Conv11_2特征層使用上采樣操作得到Conv11_2_2特征層,需注意的是此時(shí)通過上采樣得到的特征層必須要與其上一層的特征層維數(shù)保持一致。再將Conv11_2_2與上一層Conv10_2特征層進(jìn)行特征融合得到Conv10_2_2特征層;再將Conv10_2_2特征層進(jìn)行上采樣操作并與上一層Conv9_2進(jìn)行特征融合得到Conv9_2_2,以此方法依次得到余下的特征層Conv8_2_2、Conv7_2_2、Conv4_3_2。最后將Conv11_2、Conv10_2_2、Conv9_2_2、Conv8_2_2、Conv7_2_2、Conv4_3_2特征層送入預(yù)測層,進(jìn)行目標(biāo)的定位和分類。
2.2? 特征增強(qiáng)方法以及采取的策略
特征融合主要有兩種方法,一種是特征連接的方法,另一種是將兩個(gè)特征圖進(jìn)行升維或降維等操作將其變成同樣維度的特征圖,再將每個(gè)對應(yīng)的特征值相加[9,10]。本文使用的是第二種方法,通過對兩個(gè)特征層進(jìn)行加權(quán)操作,以此對需要檢測的目標(biāo)達(dá)到特征增強(qiáng)的目的。
如圖2所示,首先將Conv2特征層進(jìn)行上采樣操作得到與Conv1特征層維數(shù)相同的特征圖,再將Conv2特征層與Conv1特征層進(jìn)行加權(quán)操作,將兩個(gè)特征層合并為一個(gè)Conv1_1特征層。再將Conv1_1進(jìn)行正則化處理得到最終的特征層Conv1_2。
圖2? 特征融合方法
通過對特征圖的多次迭代可以將深層特征圖中的所有上下文信息反饋給淺層特征圖,這樣就可以增強(qiáng)小目標(biāo)物體的特征,從而可以更好地實(shí)現(xiàn)對小目標(biāo)物體的識(shí)別。
這種方法可以保證網(wǎng)絡(luò)結(jié)構(gòu)總體不變,輸出層還是6個(gè)特征圖且其維數(shù)仍然保持不變。
3? 實(shí)驗(yàn)環(huán)境與實(shí)驗(yàn)結(jié)果
3.1? 實(shí)驗(yàn)環(huán)境
本文的實(shí)驗(yàn)環(huán)境為Linux系統(tǒng),16 GB內(nèi)存,GPU,使用Python3.7、TensorFlow等軟件對算法進(jìn)行實(shí)驗(yàn)。
本文的實(shí)驗(yàn)是在PASCAL VOC 2012數(shù)據(jù)集上進(jìn)行的,實(shí)驗(yàn)的模型有本文改進(jìn)的SSD算法,以及Faster R-CNN、YOLO、SSD300、SSD512。改進(jìn)的SSD算法預(yù)測層有Conv11_2,Conv10_2_2,Conv9_2_2,Conv8_2_2,Conv7_2_2,Conv4_3_2。通過對比發(fā)現(xiàn)改進(jìn)之后的SSD算法在識(shí)別小目標(biāo)物體上有一定的精度。
3.2? 預(yù)處理
在對模型進(jìn)行訓(xùn)練之前,首先要對數(shù)據(jù)集進(jìn)行預(yù)處理。本文所使用的是PASCAL VOC 2012數(shù)據(jù)集。因?yàn)橹匦枰獧z測小目標(biāo)物體的情況,對于小目標(biāo)物體的形變以及失真等特殊情況,本文也通過對數(shù)據(jù)集的處理進(jìn)行了檢驗(yàn)。
通過對數(shù)據(jù)集中的圖像進(jìn)行縮放、局部遮擋、旋轉(zhuǎn)、形變等操作會(huì)使需要檢測的目標(biāo)出現(xiàn)多種不同的情況。同時(shí),通過這種方法也使得訓(xùn)練集的數(shù)量增大,在一定程度上增加了模型的準(zhǔn)確率。如圖3所示,對其中一個(gè)圖片的處理過程進(jìn)行了展示。
(a)正常狀態(tài)
(b)旋轉(zhuǎn)
(c)局部遮擋
(d)縮放
(e)形變
圖3? 對圖片的處理過程
3.3? 實(shí)驗(yàn)結(jié)果
本文所使用的PASCAL VOC 2012數(shù)據(jù)集分為20類,包括背景可以分為21類,具體分類如表1所示。
表1? PASCAL VOC 2012數(shù)據(jù)集類型
PASCAL VOC 2012數(shù)據(jù)集作為測試數(shù)據(jù)集和訓(xùn)練數(shù)據(jù)集,將本文改進(jìn)的SSD算法與Faster R-CNN、YOLO、SSD300、SSD512作比較,比較結(jié)果如表2、表3所示。
表2? PASCAL VOC 2012測試集mAP指標(biāo)
表3? PASCAL VOC 2012測試集FPS指標(biāo)
SSD300指的是輸入圖片的維度為300*300,SSD512輸入圖片的維度為則512*512。如表3算法在PASCAL VOC 2012測試集mAP檢測結(jié)果來看,本文所改進(jìn)的SSD算法相對于Faster R-CNN算法mAP值提升了2.2%,相對于YOLO算法mAP值提升了9.0%,與SSD300原始算法相比提高了1.1%,說明改進(jìn)之后的算法確實(shí)優(yōu)化了原算法中的一些問題。
通過表4的PASCAL VOC 2012測試集FPS指標(biāo)可以看到Faster R-CNN的檢測速度非常慢,F(xiàn)PS只有7.0,SSD512因?yàn)槠漭斎雸D片維度的原因檢測速度也不是很高,F(xiàn)PS只有19.0,YOLO的檢測速度與SSD512相近,SSD300檢測速度最高FPS達(dá)到46.0,本文改進(jìn)的SSD算法相比較SSD300原始網(wǎng)絡(luò)算法略低,這是因?yàn)樵谠械木W(wǎng)絡(luò)結(jié)構(gòu)中添加了部分迭代以及卷積操作,所以對檢測速度有一定的影響,但是總體來說,因?yàn)槠錂z測精度有所提高,相比之下檢測速度的影響并不是很大。
通過對Faster R-CNN、YOLO、SSD300、SSD512以及本文改進(jìn)的SSD算法的mAP和FPS的計(jì)算,可以得到檢測速度與檢測精度的分布圖,如圖4所示。
圖4? 檢測速度與檢測精度分布圖
通過圖4發(fā)現(xiàn)本文改進(jìn)的SSD算法在檢測精度上有一定的提升,但是在檢測速度上比FPS最高的SSD300略慢一點(diǎn)。從測試集中選取一張圖片,分別對SSD300和本文算法對小目標(biāo)物體的檢測進(jìn)行了對比,結(jié)果如圖5所示。
(a)SSD
(b)本文改進(jìn)的SSD
圖5? SSD與本文算法對比
從圖5可以看到原SSD算法對小目標(biāo)物體的識(shí)別能力很弱,圖片中只識(shí)別出了左側(cè)較大的物體。而對SSD算法進(jìn)行改進(jìn)之后,如圖5(b)識(shí)別出了SSD算法沒有識(shí)別出來的小目標(biāo)物體,實(shí)驗(yàn)證明通過對SSD算法的改進(jìn)有效地增強(qiáng)了對小目標(biāo)物體的識(shí)別能力。
4? 結(jié)? 論
本文通過對原有的SSD算法的網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),增強(qiáng)了算法對小目標(biāo)物體的識(shí)別能力,并在一定程度上提高了檢測精度,但是對于檢測速度沒有得到提高,并且在實(shí)際檢測過程中發(fā)現(xiàn)仍然會(huì)有漏檢的情況發(fā)生。因此對于實(shí)驗(yàn)過程中出現(xiàn)的問題,接下來的工作將是對改進(jìn)算法速度上的優(yōu)化以及對檢測時(shí)出現(xiàn)漏檢的問題進(jìn)行進(jìn)一步的研究。
參考文獻(xiàn):
[1] GIRSHICK R,DONAHUE J,DARRELL T,et al. Rich feature hierarchies for accurate object detection and semantic segmentation [C]//CVPR 2014,2014:580-587.
[2] HE K,ZHANG X,REN S,et al. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition [C]//European Conference on Computer Vision. Springer,Cham,2014.
[3] GIRSHICK R. Fast R-CNN [J/OL].arXiv:1504.08083[cs.CV].(2015-09-27). https://arxiv.org/abs/1504.08083.
[4] 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,2015,39(6):1137-1149.
[5] REDMON J,DIVVALA J,GIRSHICK R,et al. You Only Look Once:Unified,Real-Time Object Detection [J/OL].arXiv:1506.02640 [cs.CV].(2016-05-09). https://arxiv.org/abs/1506.02640.
[6] LIU W,ANGUELOV D,ERHAN D,et al SSD:Single shot MultiBox detector [J].Computer Vision–ECCV 2016:21-37.
[7] 寇大磊,權(quán)冀川,張仲偉.基于深度學(xué)習(xí)的目標(biāo)檢測框架進(jìn)展研究 [J].計(jì)算機(jī)工程與應(yīng)用,2019,55(11):25-34.
[8] 譚紅臣,李淑華,劉彬,等.特征增強(qiáng)的SSD算法及其在目標(biāo)檢測中的應(yīng)用 [J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2019,31(4):63-69.
[9] BELL S,ZITNICK C L,BALA K,et al. Inside-Outside Net:Detecting Objects in Context with Skip Pooling and Recurrent Neural Networks [C]// 2016 IEEE Conference on Computer Vision and Pattern Recognition (CVPR). IEEE,2016:2874-2883.
[10] Kong T,Yao A,Chen Y,et al. HyperNet:towards accurate region proposal generation and joint object detection [C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Los Alamitos:IEEE Computer Society Press,2016:845-853.
[11] 陳冰曲,鄧濤.基于改進(jìn)型SSD算法的目標(biāo)車輛檢測研究 [J].重慶理工大學(xué)學(xué)報(bào)(自然科學(xué)),2019,33(1):58-63+129.
[12] 王文光,李強(qiáng),林茂松,等.基于改進(jìn)SSD的高效目標(biāo)檢測方法 [J].計(jì)算機(jī)工程與應(yīng)用,2019(13):28-35.
[13] 張建明,劉煊赫,吳宏林,等.面向小目標(biāo)檢測結(jié)合特征金字塔網(wǎng)絡(luò)的SSD改進(jìn)模型 [J].鄭州大學(xué)學(xué)報(bào)(理學(xué)版),2019,51(3):61-66+72.
作者簡介:胡夢龍(1993.05-),男,漢族,安徽淮南人,碩士研究生,研究方向:圖形圖像處理;施雨(1995.09-),男,漢族,江蘇射陽人,碩士研究生,研究方向:人工智能。