目標(biāo)檢測是計算機(jī)視覺領(lǐng)域的重要研究方向. 傳統(tǒng)的目標(biāo)檢測方法在特征設(shè)計上花費(fèi)了大量時間, 且手工設(shè)計的特征對于目標(biāo)多樣性的問題并沒有好的魯棒性, 深度學(xué)習(xí)技術(shù)逐漸成為近年來計算機(jī)視覺領(lǐng)域的突破口. 為此, 對現(xiàn)有的基礎(chǔ)神經(jīng)網(wǎng)絡(luò)進(jìn)行研究, 采用經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)VGGNet作為基礎(chǔ)網(wǎng)絡(luò), 添加部分深層網(wǎng)絡(luò), 結(jié)合SSD (single shot multibox detector)算法構(gòu)建網(wǎng)絡(luò)框架. 針對模型訓(xùn)練中出現(xiàn)的正負(fù)樣本不均衡問題, 根據(jù)困難樣本挖掘原理, 在原有的損失函數(shù)中引入調(diào)制因子, 將背景部分視為簡單樣本, 減小背景損失在置信損失中的占比, 使得模型收斂更快速, 模型訓(xùn)練更充分, 從而提高復(fù)雜背景下的目標(biāo)檢測精度. 同時, 通過構(gòu)建特征金字塔和融合多層特征圖的方式, 實(shí)現(xiàn)對低層特征圖的語義信息融合增強(qiáng), 以提高對小目標(biāo)檢測的精度, 從而提高整體的檢測精度. 仿真實(shí)驗(yàn)結(jié)果表明, 所提出的目標(biāo)檢測算法(feature fusion based SSD, FF-SSD)在復(fù)雜背景下對各種目標(biāo)均可取得較高的檢測精度.
關(guān)鍵詞
目標(biāo)檢測????深度學(xué)習(xí)????SSD算法????復(fù)雜背景????困難樣本????特征融合? ?
?引言
復(fù)雜背景下的目標(biāo)檢測是計算機(jī)視覺領(lǐng)域中一個十分重要的課題. 傳統(tǒng)的目標(biāo)檢測方法面臨以下兩個問題: 一是基于滑動窗口的區(qū)域選擇策略容易產(chǎn)生窗口冗余; 二是手工設(shè)計的特征對于目標(biāo)多樣性的變化并沒有好的魯棒性. 因此, 基于深度學(xué)習(xí)的目標(biāo)檢測方法開始受到人們的廣泛關(guān)注. 深度學(xué)習(xí)方法能克服傳統(tǒng)人工選取特征的缺點(diǎn), 自適應(yīng)地學(xué)習(xí)表征目標(biāo)的最佳特征, 且抗干擾性能優(yōu)異, 可以有效提高目標(biāo)識別的準(zhǔn)確性和魯棒性[1].
在深度學(xué)習(xí)目標(biāo)檢測模型中, 具有代表性的是Girshick等[2]提出的一系列目標(biāo)檢測算法, 其開山之作是R-CNN (region-convolutional neural network). 針對R-CNN訓(xùn)練時間過長的問題, Girshick[3]又提出了Fast R-CNN. 與R-CNN類似, Fast R-CNN依然采用selective search[4]生成候選區(qū)域, 但是, 與R-CNN提取出所有候選區(qū)域并使用SVM分類的方法不同, Fast R-CNN在整張圖片上使用CNN, 然后使用特征映射提取感興趣區(qū)域(region of interest, RoI); 同時, 利用反向傳播網(wǎng)絡(luò)進(jìn)行分類和回歸. 該方法不僅檢測速度快, 而且具有RoI集中層和全連接層, 使得模型可求導(dǎo), 更容易訓(xùn)練. Ren等[5]又提出了Fast R-CNN的升級版本Faster R-CNN算法. Faster R-CNN是第一個真正意義上端到端的、準(zhǔn)實(shí)時的深度學(xué)習(xí)目標(biāo)檢測算法. Faster R-CNN最大的創(chuàng)新點(diǎn)在于設(shè)計了候選區(qū)域生成網(wǎng)絡(luò)(region proposal network, RPN), 并設(shè)計了anchor機(jī)制. 從R-CNN到Fast R-CNN再到Faster R-CNN, 候選區(qū)域生成、特征提取、候選目標(biāo)確認(rèn)以及邊界框坐標(biāo)回歸被逐漸統(tǒng)一到同一個網(wǎng)絡(luò)框架中.
同樣是基于深度學(xué)習(xí)的目標(biāo)檢測方法, 另一個發(fā)展分支是基于回歸的目標(biāo)檢測方法. 華盛頓大學(xué)的Redmon等[6]提出了YOLO (you only look once)算法, 其核心思想是使用整張圖像作為網(wǎng)絡(luò)輸入, 直接在輸出層中輸出邊界框的位置及其所屬的類別. 它的訓(xùn)練和檢測均在單獨(dú)的網(wǎng)絡(luò)中進(jìn)行, 取得了較好的實(shí)時檢測效果. YOLO方法舍棄了區(qū)域備選框階段, 加快了速度, 但是定位和分類精度較低, 尤其對小目標(biāo)以及比較密集的目標(biāo)群檢測效果不夠理想, 召回率較低. 2017年, Redmon等[7]又提出了具有檢測速度更快、檢測精度更高和穩(wěn)健性更強(qiáng)的YOLO v2. Ju等[8]則以YOLO v3[9]為基礎(chǔ), 提出了一種改進(jìn)的多尺度目標(biāo)檢測算法, PASCAL VOC和KITTI數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果均表明了該算法的有效性. 針對現(xiàn)有網(wǎng)絡(luò)模型在實(shí)時性方面存在的不足, He等[10]提出了實(shí)時的目標(biāo)檢測模型TF-YOLO (tiny fast YOLO), 仿真結(jié)果表明, 該算法在多種設(shè)備上都可實(shí)現(xiàn)實(shí)時目標(biāo)檢測.
針對YOLO算法定位精度低的問題, Liu等[11]提出了SSD算法, 該算法先根據(jù)錨點(diǎn)(anchor)提取備選框, 然后再進(jìn)行分類. SSD算法將YOLO的回歸思想與Faster R-CNN的錨點(diǎn)機(jī)制相結(jié)合, 一次即可完成網(wǎng)絡(luò)訓(xùn)練, 并且定位精度和分類精度相比YOLO都有大幅度提高. Bosquet等[12]提出了一種基于改進(jìn)SSD模型的SAR (synthetic aperture radar)目標(biāo)檢測算法, 仿真結(jié)果表明, 該算法可以實(shí)現(xiàn)復(fù)雜背景下SAR目標(biāo)的檢測.
盡管SSD算法在特定數(shù)據(jù)集上已經(jīng)取得了較高的準(zhǔn)確率和較好的實(shí)時性, 但是, 該算法損失函數(shù)的設(shè)計未考慮正負(fù)樣本不均衡所帶來的問題, 也存在因網(wǎng)絡(luò)結(jié)構(gòu)的缺陷而引起的小目標(biāo)檢測精度不高的問題. 針對模型中出現(xiàn)的正負(fù)樣本失衡問題, 本文基于困難樣本挖掘原理, 在損失函數(shù)中引入調(diào)制因子; 針對因低層語義信息缺乏所導(dǎo)致的小目標(biāo)檢測結(jié)果欠佳的問題, 采取多層特征融合的結(jié)構(gòu)加以解決, 即進(jìn)行預(yù)測之前先進(jìn)行淺層特征圖的融合, 增強(qiáng)其低層的語義信息, 以期能夠提高小目標(biāo)的檢測精度.
1 網(wǎng)絡(luò)模型
1.1
?
SSD網(wǎng)絡(luò)結(jié)構(gòu)
本文檢測模型以傳統(tǒng)的基礎(chǔ)網(wǎng)絡(luò)VGG16 (visual geometry group)為基礎(chǔ), 并添加深層卷積網(wǎng)絡(luò)而構(gòu)成. 前部分淺層網(wǎng)絡(luò)采用卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征[10], 包括輸入層、卷積層和下采樣層; 后部分深層網(wǎng)絡(luò)用卷積層代替原始的全連接層. 卷積層尺寸逐層遞減, 分類和定位回歸在多尺度特征圖上完成.
1.2
?
先驗(yàn)框設(shè)計
SSD網(wǎng)絡(luò)能夠識別多個物體, 其核心是預(yù)測固定集合的類別分?jǐn)?shù)和位置偏移, 并使用應(yīng)用于特征映射的小卷積濾波器的默認(rèn)邊界框. SSD借鑒了Faster R-CNN中anchor的理念[5], 在特征圖上通過卷積計算產(chǎn)生若干覆蓋全圖的候選區(qū)域, 形成了先驗(yàn)框機(jī)制. 通過為每個單元設(shè)置尺度或者長寬比不同的先驗(yàn)框(預(yù)測的邊界框是以這些先驗(yàn)框?yàn)榛鶞?zhǔn)的偏移系數(shù)), 在一定程度上減少了訓(xùn)練難度. 對于每個單元的每個先驗(yàn)框, 都輸出一套獨(dú)立的檢測值, 其對應(yīng)的邊界框由兩部分描述: 第1部分是各個類別的置信度; 第2部分是邊界框的位置, 包含4個值(cx,cy,w,h), 分別表示邊界框的中心坐標(biāo)以及寬和高. 由于先驗(yàn)框在模型訓(xùn)練之前就已確定, 很難與真實(shí)的標(biāo)注區(qū)域完全重合. 為解決此問題, SSD算法使用位置回歸層來輸出4個位置校正參數(shù)(dx,dy,dw,dh). 先驗(yàn)框經(jīng)過適當(dāng)變換后, 便能與真實(shí)的標(biāo)注區(qū)域基本吻合.
1.3
?
引入調(diào)制因子的損失函數(shù)
損失函數(shù)用來計算模型預(yù)測值與真實(shí)值的不一致程度. 對于樣本集合(x,?y), 本文采用多任務(wù)損失函數(shù)(multi-task loss function), 可以在損失函數(shù)中完成置信度判別和位置回歸, 兩者加權(quán)求和, 得到最終的損失函數(shù)[11], 即
(1) ? ?
(2) ? ?
(3) ? ?
SSD算法在損失計算中, 所有的候選框可以分為正樣本和負(fù)樣本兩類, 即在所有的先驗(yàn)框中, 與每個標(biāo)注框有最大重疊率的被視為正樣本, 或者是與標(biāo)注框的重疊大于某一閾值時, 被視為正樣本, 其他為負(fù)樣本. 然而, 在大多數(shù)圖像中, 目標(biāo)所占的比例通常遠(yuǎn)小于背景所占比例. 盡管人們對閾值選擇以及正負(fù)樣本的判斷標(biāo)準(zhǔn)有所放松, 但是仍然存在正負(fù)樣本不均衡的問題, 也就是“類別失衡”?[13]. 負(fù)樣本過多時, 容易造成負(fù)樣本損失占比過大, 進(jìn)而導(dǎo)致正樣本的誤差損失被忽略, 不利于模型的收斂.
為解決上述問題, 本文首先將所有的待訓(xùn)練先驗(yàn)框進(jìn)行排序, 按照置信度得分情況從大到小排列, 取前四分之一為正樣本, 其余為負(fù)樣本, 以減少負(fù)樣本比重; 然后, 在原損失函數(shù)中引入調(diào)制因子, 增加困難樣本對參數(shù)的貢獻(xiàn)值.
對于二分類的邏輯回歸問題, 損失函數(shù)為
(4) ? ?
其中:?p∈(0,1)且Lce∈(0,+∞), 它代表預(yù)測框相對于標(biāo)注框的置信度.?p越大,?Lce越小, 說明所訓(xùn)練的樣本越容易, 該樣本越容易被正確識別, 從而對損失值的貢獻(xiàn)也越小; 反之,?p越小,?Lce?越大, 說明所訓(xùn)練的樣本越困難, 該樣本越不容易被正確識別, 從而對損失值的貢獻(xiàn)也越大. 由于大量背景樣本都是容易樣本, 這些樣本疊加, 損失值之和較大, 就有可能造成“類別失衡”. 因此, 可將(1?p) 作為調(diào)制因子, 加入到原有的交叉熵?fù)p失函數(shù)中. 原有的損失函數(shù)[14]變?yōu)?/p>
(5) ? ?
當(dāng)樣本為容易樣本時,?(1?p) 越小, 損失值會在原基礎(chǔ)上進(jìn)一步被降低, 該分類越容易, 被降低的程度也越大; 相反, 當(dāng)樣本為困難樣本時,?(1?p) 越大, 分類越困難, 也有可能被誤判, 這時的調(diào)制因子相應(yīng)較大, 損失值在一定程度上會被保持. 如此便實(shí)現(xiàn)了困難樣本的挖掘.
對于多分類問題, 仍然采用交叉熵?fù)p失函數(shù), 區(qū)別在于p的取值不再由sigmod激活函數(shù)的輸出值所定義, 而是采用softmax函數(shù)來定義該變量, 這時p為某一類的回歸結(jié)果, 即
(6) ? ?
1.4?
?
引入調(diào)制因子后前向傳播函數(shù)和反向傳播函數(shù)的推導(dǎo)
為了讓引入調(diào)制因子后的損失函數(shù)能夠替換原有的損失函數(shù), 下面進(jìn)行損失函數(shù)的前向和反向傳播推導(dǎo). 損失函數(shù)的前向傳播計算公式如下:
(7) ? ?
令t表示目標(biāo)的類別(t∈[0,20]), 則損失函數(shù)為
(8) ? ?
(9) ? ?
下面計算?有
(10) ? ?
(11) ? ?
將式(10)代入(11), 可得
(12) ? ?
將式(10)和(12)代入(9), 可得
(13) ? ?
2 多層特征融合
SSD網(wǎng)絡(luò)參與分類和定位回歸的是多層特征圖, 這些特征圖呈金字塔結(jié)構(gòu). 下面先簡單介紹特征金字塔和圖像反卷積, 進(jìn)而給出本文所設(shè)計的多層特征融合模型.
2.1
?
圖像金字塔與特征金字塔
在目標(biāo)檢測中, 經(jīng)常遇到多尺度問題, 通常采用圖像金字塔[15]和特征金字塔[16-17]的方法. 特征金字塔是由圖像金字塔發(fā)展而來, 它利用卷積特性, 在提取特征的同時也減小了圖像尺寸. 一個卷積神經(jīng)網(wǎng)絡(luò)在不同的特征層, 其語義信息是不同的[18]. 特征金字塔中每一層特征都有豐富的語義信息, 但是, 如果使用金字塔中的全部特征圖, 無疑會加大運(yùn)算量, 并且產(chǎn)生較多冗余信息. 經(jīng)過對特征圖的分析, 實(shí)驗(yàn)確定使用conv4-3之后的部分特征層用于目標(biāo)檢測.
2.2
?
圖像反卷積
不同卷積層的特征圖有著不同的尺寸, 因此, 在進(jìn)行特征融合之前, 需要對相融合的特征圖進(jìn)行尺寸變換, 這就需要用到反卷積結(jié)構(gòu)[19]. 反卷積, 可以簡單理解為卷積的逆過程. 即卷積層的反向傳播就是反卷積的前向傳播, 卷積層的前向傳播就是反卷積的反向傳播.
2.3
?
多層特征融合結(jié)構(gòu)
SSD網(wǎng)絡(luò)分別在conv4??3至conv11的6層特征圖上進(jìn)行分類回歸, 即使用conv4??3、conv7、conv8??2、conv9??2、conv10??2和conv11??2這6層特征圖進(jìn)行檢測, 較大的特征圖用來檢測相對較小的目標(biāo), 而較小的特征圖負(fù)責(zé)檢測較大的目標(biāo)[11].
通過對卷積層可視化結(jié)構(gòu)圖可以看出: 特征層conv3??3由于深度較淺, 邊緣信息以及非目標(biāo)干擾信息較為明顯; conv4??3和conv5??3兩層特征圖, 除了有大致的輪廓信息以外, 還包含了更多的抽象語義信息; 對于更深的conv8??2和conv9??2特征層, 基本的輪廓信息以及細(xì)節(jié)信息都丟失了, 這對于小目標(biāo)的檢測效果不是很明顯. 如果加以融合, 則不僅增加了計算量, 而且對于融合后所帶來的信息增益并不明顯.
綜上, 針對SSD僅利用少量淺層特征圖來檢測目標(biāo), 缺少足夠的語義信息所導(dǎo)致的小目標(biāo)檢測精度低的問題, 本文提取并融合淺層特征圖, 加強(qiáng)淺層特征圖的語義信息, 即選取conv4??3到conv7之間的特征圖進(jìn)行特征融合, 多層特征融合結(jié)構(gòu)如圖 1所示.
圖 1?多層特征融合結(jié)構(gòu)
特征圖的融合方式主要有兩種: 通道級聯(lián)和同位置元素相加[20]. 通道級聯(lián)法增加了原有的通道數(shù), 即描述圖像本身的特征數(shù)(通道數(shù))增加了, 而每一特征下的信息沒有增加. 同位置元素相加法將所對應(yīng)的特征圖相加, 再進(jìn)行下一步的卷積操作. 該方法并未改變圖像的維度, 只是增加了每一維下的信息量, 這對最終的圖像分類顯然是有益的. 此外, 同位置元素相加法所需要的內(nèi)存和參數(shù)量小于通道級聯(lián)法, 故計算量也小于通道級聯(lián)法. 所以, 本文選擇同位置元素相加法進(jìn)行特征圖融合.
3 仿真實(shí)驗(yàn)
3.1
?
實(shí)驗(yàn)數(shù)據(jù)集
本文采用PASCAL VOC數(shù)據(jù)集(VOC2007和VOC2012)[21-22]進(jìn)行訓(xùn)練和測試, 該數(shù)據(jù)集組成為: 目標(biāo)真值區(qū)域、類別標(biāo)簽、包含目標(biāo)的圖像、標(biāo)注像素類別和標(biāo)注像素所屬的物體. 該數(shù)據(jù)集總共分4個大類: vehicle、household、animal和person, 共計21個小類(包括1個背景類). 實(shí)驗(yàn)統(tǒng)一圖片規(guī)格為300×300.
3.2
?
檢測模型評價指標(biāo)
在對目標(biāo)檢測模型進(jìn)行分析評價中, 本文使用公共評價指標(biāo): 平均精確度均值(mean average precision, mAP)對模型進(jìn)行評價[23]. 下面先給出準(zhǔn)確率(precision)和召回率(recall)的定義, 進(jìn)而給出mAP的定義.
準(zhǔn)確率是指在所有正樣本中, 正確目標(biāo)所占的比例, 衡量的是查準(zhǔn)率; 召回率是指在所有真實(shí)的目標(biāo)中, 被模型正確檢測出來的目標(biāo)所占的比例, 衡量的是查全率. 其計算公式分別為
(14) ? ?
(15) ? ?
其中: TP為模型正確檢測的目標(biāo)個數(shù), FP為模型錯誤檢測的目標(biāo)個數(shù), FN為模型漏檢的正確目標(biāo)個數(shù).
以召回率為橫坐標(biāo), 以準(zhǔn)確率為縱坐標(biāo), 二者形成的曲線稱為p-r曲線, 用來顯示檢測模型在準(zhǔn)確率與召回率之間的平衡.?p-r曲線下的面積為該類別的平均精度(average precision, AP). 在多類別分類中, 通過求取各個類別AP的均值來計算模型整體的檢測性能指標(biāo), 其計算方法如下:
(16) ? ?
(17) ? ?
其中:?c為目標(biāo)檢測的類別數(shù), APii為第i類目標(biāo)的平均精確度.
3.3
?
實(shí)驗(yàn)結(jié)果與分析
為加快網(wǎng)絡(luò)模型的收斂速度并提升網(wǎng)絡(luò)性能, 本文將已訓(xùn)練好的VGG16作為預(yù)訓(xùn)練模型, 后續(xù)目標(biāo)檢測只需在其基礎(chǔ)上進(jìn)行微調(diào)訓(xùn)練即可. 本文采用隨機(jī)梯度下降法進(jìn)行模型優(yōu)化, 設(shè)定初始學(xué)習(xí)速率為0.001, 權(quán)值衰減為0.000 5, 動量為0.9;卷積核大小為3×3, IOU設(shè)置為0.5;采用Pytorch深度學(xué)習(xí)框架, Python版本為Anaconda 3.6, 實(shí)驗(yàn)統(tǒng)一圖片規(guī)格為300××300.
表 1給出了Fast R-CNN[3]、Faster R-CNN[5]、YOLO[6]、YOLO v3[9]、SSD300[11]、DSSD321[20]以及本文算法的目標(biāo)檢測精度.
表 1?不同目標(biāo)檢測算法檢測結(jié)果對比
本文算法以VGGNet為基礎(chǔ)網(wǎng)絡(luò), 其在檢測精度方面較Fast R-CNN、Faster R-CNN、YOLO、YOLO v3和SSD300均有優(yōu)勢, 但是對比基礎(chǔ)網(wǎng)絡(luò)為ResNet-101的DSSD算法而言, 精度稍有下降. 主要原因是, VGGNet網(wǎng)絡(luò)較淺, 而ResNet-101是非常深的網(wǎng)絡(luò), 網(wǎng)絡(luò)越深, 目標(biāo)特征越能夠更好地被提取出來, 因此檢測精度越高.
除了檢測精度外, 時間復(fù)雜度也是算法設(shè)計時需要考慮的問題. 因Fast R-CNN、Faster R-CNN、YOLO、SSD300、DSSD321算法的運(yùn)行平臺與本文算法不同, 所以本文用基礎(chǔ)網(wǎng)絡(luò)的層數(shù)、基礎(chǔ)網(wǎng)絡(luò)所占內(nèi)存的大小(網(wǎng)絡(luò)參數(shù))和預(yù)測框的數(shù)量來衡量不同算法的時間復(fù)雜度. GoogleNet[24]、VGGNet[25]、DarkNet-53[7]和ResNet-101[26]的層數(shù)分別為22層、19層、53層和101層, 它們所占的內(nèi)存分別為99.8 M、82.1 M、30.8 M和170 M.
一般而言, 層數(shù)越多, 所占內(nèi)存越大, 預(yù)測框數(shù)量越多, 則認(rèn)為算法的時間復(fù)雜度越高. 從表 1和上述基礎(chǔ)網(wǎng)絡(luò)參數(shù)可以看出, YOLO算法中基礎(chǔ)網(wǎng)絡(luò)的層數(shù)和所占內(nèi)存略高于VGGNet, 但是預(yù)測框數(shù)量較少, 所以其計算復(fù)雜度較低. YOLO v3使用的基礎(chǔ)網(wǎng)絡(luò)是DarkNet53, 其性能可以與最先進(jìn)的分類器媲美, 但是因DarkNet53需要更少的浮點(diǎn)運(yùn)算, 所以時間復(fù)雜度較低. Fast R-CNN、Faster R-CNN、SSD300和本文算法都使用VGGNet作為基礎(chǔ)網(wǎng)絡(luò), Faster R-CNN的預(yù)測框數(shù)量相對較少, 所以時間復(fù)雜度也較低. Fast R-CNN采用的是選擇性搜索算法, 其計算復(fù)雜度要高于采用候選框生成算法的Faster R-CNN. DSSD算法所使用的基礎(chǔ)網(wǎng)絡(luò)ResNet-101的層數(shù)遠(yuǎn)多于本文所采用的VGGNet, 所占用的內(nèi)存高出87.9 MB, 在預(yù)測框的數(shù)量上, DSSD網(wǎng)絡(luò)比本文算法多8 348個, 因此, DSSD算法計算復(fù)雜度最高.
圖 2給出了不同算法在20個種類的測試集上的目標(biāo)檢測結(jié)果. 從實(shí)驗(yàn)結(jié)果可以看出, 本文算法對于bicycle、bus、car、cat、dog、horse、motorbike、train這8類目標(biāo)檢測效果較好, 都已達(dá)到了85 %以上.
圖 2?VOC2007上各類別檢測結(jié)果對比
綜合表 1和圖 2可以看出, 本文算法在多數(shù)類別上的檢測精度均能獲得較好表現(xiàn), 尤其是對于bicycle、bus、car、person等復(fù)雜背景下的目標(biāo), 相比于SSD網(wǎng)絡(luò)提升較為明顯, mAP分別提高了5.4 %、7.3 %、3.5 %、4 %. 但相比于DSSD網(wǎng)絡(luò)在bird、bottle、cow、table、sofa、TV這些類別上, 檢測精度稍有下降, 其原因可能是基礎(chǔ)網(wǎng)絡(luò)的不同而導(dǎo)致的特征提取信息不足.
為驗(yàn)證本文算法對不同大小目標(biāo)的檢測精度, 實(shí)驗(yàn)中隨機(jī)選取100張圖片, 其中包含198個目標(biāo), 將其分為大、中、小三類. 由于該網(wǎng)絡(luò)的輸入圖像尺寸為300××300, 將圖像中的檢測目標(biāo)按照其面積占圖像總面積的比例分為三類: 目標(biāo)面積占圖像總面積5 %以下的認(rèn)為是小目標(biāo), 目標(biāo)面積占圖像面積5 %?~~?25 %的是中等目標(biāo), 目標(biāo)面積占圖像總面積20 %以上的是大目標(biāo).?表 2給出了SSD算法和本文算法的檢測結(jié)果(其中: A方法為SSD算法, B方法為本文算法).
表 2?隨機(jī)檢測結(jié)果對比
由表 2可知, 本文算法對于不同尺寸的目標(biāo)檢測精度均有不同程度的提高, 尤其是對于小目標(biāo)的檢測率由原來的47.1 %增加到58.3 %.
圖 3給出了不同情況下的目標(biāo)檢測結(jié)果, 可以看出, 本文算法對小目標(biāo)的檢測、存在遮擋物的檢測以及在云霧天氣和夜間的檢測都有不錯的效果.
圖 3?不同條件下的目標(biāo)檢測結(jié)果
4 結(jié)論
針對正負(fù)樣本不均衡所導(dǎo)致的低分類精度等問題, 本文在原SSD算法的損失函數(shù)中引入調(diào)制因子, 減小簡單樣本的損失權(quán)值, 增加困難樣本的損失值所占比重, 以達(dá)到提高復(fù)雜背景下目標(biāo)檢測精度的目的. 同時, 調(diào)制因子的引入可以減少原模型交叉熵?fù)p失函數(shù)浪費(fèi)在容易樣本上的計算力, 使得損失函數(shù)可以更快地跳過原有容易樣本的簡單數(shù)據(jù), 更快地進(jìn)入后面困難樣本的計算, 從而加快訓(xùn)練階段的收斂速度. 其次, 針對因網(wǎng)絡(luò)結(jié)構(gòu)的缺陷而引起的小目標(biāo)檢測精度欠佳問題, 本文采取一種基于特征金字塔的多層特征檢測結(jié)構(gòu), 以增強(qiáng)用于檢測小目標(biāo)的淺層特征圖語義信息. 實(shí)驗(yàn)結(jié)果表明, 本文算法在多種類別目標(biāo)的檢測精度上都較SSD算法有了不同程度的提高, 尤其是在小目標(biāo)檢測識別方面, 檢測精度顯著提高.
編輯:黃飛
?
評論
查看更多