王燕妮,余麗仙
西安建筑科技大學(xué) 信息與控制工程學(xué)院,西安710055
目標(biāo)檢測(cè)是計(jì)算機(jī)視覺(jué)中最基本也是最關(guān)鍵的一項(xiàng)任務(wù),在視頻監(jiān)控、智慧醫(yī)療等領(lǐng)域中都具有廣泛的應(yīng)用價(jià)值。高精度目標(biāo)檢測(cè)要求當(dāng)給出一張圖片或一段視頻流時(shí),可以準(zhǔn)確地對(duì)圖片或視頻中的目標(biāo)進(jìn)行定位并識(shí)別出所屬類別。然而目標(biāo)自身的形狀、顏色、姿勢(shì)等因素,以及外界的遮擋、光照等條件,都對(duì)目標(biāo)檢測(cè)任務(wù)產(chǎn)生了巨大的干擾。常見(jiàn)的目標(biāo)檢測(cè)方法有基于像素分析的方法、基于特征匹配的方法、基于頻域的方法和基于識(shí)別的檢測(cè)方法。使用較為廣泛的檢測(cè)器通常分為特征提取和目標(biāo)分類兩大步驟,常用的傳統(tǒng)特征提取方法有方向梯度直方圖(histogram of oriented gradient,HOG)、尺度不變特征變換(scale-invariant feature transform,SIFT)、局部二值模式(local binary pattern,LBP)等。與這些特征提取方法搭配使用的分類器有支持向量機(jī)(support vector machine,SVM)、隨機(jī)森林(random forests)、AdaBoost等。同時(shí)還有一系列基于上述方法改進(jìn)得到的目標(biāo)檢測(cè)器,如由TPIHOG(thermal-position-intensity-histogram of oriented gradient)和AKSVM(additive kernel SVM)組合得到的TPIHOG-AKSVM檢測(cè)器,還有融合Haar-Cascade 和HOG-SVM 得到的新的檢測(cè)器。但是這些方法的魯棒性較差,當(dāng)檢測(cè)目標(biāo)較為復(fù)雜時(shí),檢測(cè)精度和實(shí)時(shí)性都比較低。
隨著人工智能的發(fā)展,深度學(xué)習(xí)在目標(biāo)檢測(cè)領(lǐng)域越來(lái)越受歡迎,目前主流的目標(biāo)檢測(cè)方法主要分為兩階段檢測(cè)法和單階段檢測(cè)法。Fast R-CNN、Faster R-CNN、RefineNet等都是經(jīng)典的兩階段檢測(cè)法。YOLO(you only look once)、SSD(single shot multibox detector)、RetinaNet等都屬于典型的單階段檢測(cè)法。兩階段檢測(cè)法主要是將候選框的提取和目標(biāo)檢測(cè)分為兩個(gè)步驟執(zhí)行,首先進(jìn)行候選對(duì)象的篩選,然后對(duì)候選對(duì)象進(jìn)行分類和回歸操作。而單階段目標(biāo)檢測(cè)則是將其融合到一個(gè)網(wǎng)絡(luò)中,直接輸出檢測(cè)結(jié)果。單階段檢測(cè)算法在精度上稍優(yōu)于兩階段檢測(cè)法,但在檢測(cè)速度上遠(yuǎn)超于兩階段檢測(cè)法。
YOLOv1 算法是單尺度目標(biāo)檢測(cè)算法,因此對(duì)于多尺度目標(biāo)檢測(cè)任務(wù)不適用。SSD 相比于YOLOv1有較大的提升,它引入了多尺度檢測(cè)方法,針對(duì)檢測(cè)目標(biāo)的大小不同,使用不同尺度的特征圖進(jìn)行檢測(cè),但是淺層目標(biāo)無(wú)法充分利用上下文語(yǔ)義信息,因此對(duì)于小目標(biāo)等困難樣本存在較多的誤檢、漏檢。為了解決小目標(biāo)檢測(cè)困難等問(wèn)題,學(xué)者們又提出了多種特征融合方法,如最常見(jiàn)的FPN(feature pyramid network)和PAFPN(path aggression FPN)。通過(guò)簡(jiǎn)單的自下而上或自上而下的特征融合,得到特征信息更加豐富的特征圖。通常直接通過(guò)特征相加或維度拼接進(jìn)行特征融合,對(duì)于算法的性能提升具有有效性,但是容易引入噪聲和冗余信息。文獻(xiàn)[21]中提出了一種多尺度感受野注意力,通過(guò)引入注意力,增強(qiáng)圖像目標(biāo)信息權(quán)重,從而提升小目標(biāo)的檢測(cè)精度。
本文針對(duì)SSD 算法存在的檢測(cè)缺點(diǎn),引入注意力機(jī)制和新的特征融合模塊,改善網(wǎng)絡(luò)的漏檢和誤檢情況。注意力機(jī)制可以提升網(wǎng)絡(luò)對(duì)關(guān)鍵信息的學(xué)習(xí)能力,而特征融合可以豐富SSD 中用于目標(biāo)檢測(cè)的特征層信息,兩者結(jié)合可以有效提升目標(biāo)檢測(cè)的準(zhǔn)確率。
SSD 是一種經(jīng)典的多尺度單目標(biāo)檢測(cè)算法,以VGG-16作為基礎(chǔ)骨干網(wǎng)絡(luò),算法結(jié)構(gòu)如圖1 所示。SSD 算法預(yù)先通過(guò)骨干網(wǎng)絡(luò)提取出6 個(gè)由大到小的特征圖,在每個(gè)尺度上預(yù)先定義多種長(zhǎng)寬比的錨框,不同尺度的特征圖對(duì)應(yīng)檢測(cè)的目標(biāo)大小不同,淺層特征圖檢測(cè)小目標(biāo),深層特征圖檢測(cè)大目標(biāo)。最后使用非極大值抑制(non-maximum suppression,NMS)刪除重復(fù)的預(yù)測(cè)框,保留結(jié)果最好的預(yù)測(cè)框。
圖1 SSD 算法結(jié)構(gòu)圖Fig.1 SSD algorithm structure diagram
SSD 采用了多尺度預(yù)測(cè)方法,淺層網(wǎng)絡(luò)檢測(cè)小目標(biāo),深層網(wǎng)絡(luò)檢測(cè)大目標(biāo)。淺層網(wǎng)絡(luò)雖然含有豐富的幾何信息和較為準(zhǔn)確的定位,但是感受野小,且語(yǔ)義信息表征能力弱。深層網(wǎng)絡(luò)與淺層網(wǎng)絡(luò)特性相反,其具有較大的感受野和豐富的語(yǔ)義信息,但是分辨率小,幾何信息表征能力弱。因此,SSD 在進(jìn)行目標(biāo)檢測(cè)時(shí)會(huì)存在嚴(yán)重的漏檢和誤檢的情況。
為了提高SSD 的目標(biāo)檢測(cè)性能,本文在SSD 的基礎(chǔ)上引入了注意力機(jī)制模塊和特征融合模塊。通過(guò)注意力機(jī)制模塊,使網(wǎng)絡(luò)將更多的關(guān)注點(diǎn)放置在關(guān)鍵信息上,增強(qiáng)網(wǎng)絡(luò)對(duì)目標(biāo)的識(shí)別能力;通過(guò)特征融合模塊,將深層網(wǎng)絡(luò)中的特征融合到淺層網(wǎng)絡(luò)中,增強(qiáng)網(wǎng)絡(luò)對(duì)小目標(biāo)和復(fù)雜目標(biāo)的檢測(cè)能力。
為了改善SSD 算法中存在的復(fù)雜目標(biāo)檢測(cè)困難等問(wèn)題,在原始的網(wǎng)絡(luò)中融入了注意力機(jī)制模塊和特征融合模塊。首先將原始SSD 提取出的6 個(gè)尺度不同的特征層依次輸入到注意力機(jī)制模型中,增強(qiáng)特征圖對(duì)關(guān)鍵信息的表達(dá)能力。其次,將深層網(wǎng)絡(luò)和淺層網(wǎng)絡(luò)相融合,提升淺層網(wǎng)絡(luò)的語(yǔ)義信息表征能力。改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 改進(jìn)的SSD 算法結(jié)構(gòu)Fig.2 Improved SSD algorithm structure
注意力機(jī)制具有與人類視覺(jué)相似的特性,當(dāng)出現(xiàn)物體時(shí),會(huì)優(yōu)先將更多的注意力放置在關(guān)鍵信息上,同時(shí)抑制無(wú)用信息。近幾年來(lái),計(jì)算機(jī)視覺(jué)任務(wù)與注意力機(jī)制之間的聯(lián)系日益密切。如用于阿爾茨海默?。ˋlzheimer’s disease,AD)識(shí)別和分類的帶有注意力機(jī)制的殘差網(wǎng)絡(luò),使用帶有注意力機(jī)制的網(wǎng)絡(luò)對(duì)合成孔徑雷達(dá)(synthetic aperture radar,SAR)圖像中的橋梁進(jìn)行檢測(cè)。
根據(jù)注意力關(guān)注的區(qū)域不同,注意力機(jī)制通常可分為通道域、空間域和混合域。SE-Net(squeezeand-excitation networks)是一種典型的通道域注意力機(jī)制,通過(guò)對(duì)各個(gè)通道的自主學(xué)習(xí),辨別各個(gè)通道的重要程度,主動(dòng)增強(qiáng)重要通道的權(quán)值。如圖3 所示,為SE-Net 的結(jié)構(gòu)模型圖。但是SE-Net 中含有的降維運(yùn)算會(huì)影響渠道相關(guān)性預(yù)測(cè),同時(shí)對(duì)所有渠道都進(jìn)行相關(guān)性捕獲也會(huì)降低網(wǎng)絡(luò)的效率。Jaderberg等提出的Spatial Transformer Networks 則是典型的空間域注意力機(jī)制,該機(jī)制可以將圖像中的空間信息轉(zhuǎn)換并保存到另一個(gè)空間,該模型結(jié)構(gòu)如圖4 所示。CBAM(convolutional block attention module)則是一種常見(jiàn)的混合域注意力機(jī)制,通過(guò)將空間域和通道域串聯(lián),可以更加有效地提升網(wǎng)絡(luò)性能。
圖3 擠壓和激發(fā)網(wǎng)絡(luò)模型圖Fig.3 Squeeze-and-excitation networks model structure
圖4 空間域結(jié)構(gòu)模型圖Fig.4 Spatial transformer model structure
考慮到網(wǎng)絡(luò)參數(shù)量和計(jì)算量,選擇了一種輕量級(jí)注意力機(jī)制,即ECA-Net(efficient channel attention for deep convolutional neural networks),它 是SENet 的改進(jìn)版本。ECA-Net 不僅參數(shù)量更少,性能也更優(yōu)。如圖5 所示,為ECA-Net 的架構(gòu)圖。該網(wǎng)絡(luò)結(jié)構(gòu)中取消了降維運(yùn)算,當(dāng)網(wǎng)絡(luò)完成全局平均池化之后,直接進(jìn)行局部跨通道連接,即將由池化操作得到的每個(gè)與其相鄰最近的個(gè)通道進(jìn)行一維卷積操作,的取值通過(guò)通道數(shù)自適應(yīng)確定:
圖5 深度卷積神經(jīng)網(wǎng)絡(luò)的有效通道注意Fig.5 Efficient channel attention for deep convolutional neural networks
其中,|·|表示取離結(jié)果最近的奇數(shù);和表示常量,分別取值為2 和1。
ECA-Net 網(wǎng)絡(luò)的注意力熱圖如圖6 所示,圖6(a)為原始圖片,圖6(b)為普通卷積輸出熱圖,圖6(c)為ECA-Net注意力熱圖??梢钥吹?,含有注意力機(jī)制的熱圖中,背景信息明顯被抑制,更加突出了關(guān)鍵目標(biāo)信息。
圖6 ECA-Net熱圖Fig.6 ECA-Net heat map
引入注意力機(jī)制前后的主干網(wǎng)絡(luò)多層輸出特征圖對(duì)比如圖7 所示。上半部分的特征圖為原SSD 網(wǎng)絡(luò)的輸出特征圖,下半部分為引入ECA-Net 之后輸出的特征圖。通過(guò)特征圖對(duì)比,發(fā)現(xiàn)在引入注意力機(jī)制之后,目標(biāo)和背景差明顯被放大,背景信息的亮度被抑制,在38×38 的特征圖中表現(xiàn)得尤為明顯。這有利于網(wǎng)絡(luò)捕獲更多的目標(biāo)信息,同時(shí)減少背景對(duì)目標(biāo)的影響。實(shí)驗(yàn)表明,引入ECA-Net 模塊,網(wǎng)絡(luò)的參數(shù)量個(gè)數(shù)依舊為59 719 217 個(gè),說(shuō)明引入的輕量級(jí)注意力機(jī)制并沒(méi)有增加網(wǎng)絡(luò)的計(jì)算量,即沒(méi)有對(duì)網(wǎng)絡(luò)的檢測(cè)速度造成影響。
圖7 特征圖可視化對(duì)比圖Fig.7 Visualized comparison chart of feature maps
SSD 的淺層網(wǎng)絡(luò)用于小目標(biāo)檢測(cè),但是深層特征圖感受野小,語(yǔ)義信息表征能力弱。為了增強(qiáng)SSD網(wǎng)絡(luò)對(duì)小目標(biāo)的檢測(cè)能力,引入特征融合模塊。
為了得到更好的目標(biāo)檢測(cè)效果,卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)開(kāi)始向更深和更寬這兩個(gè)方向發(fā)展。但是擴(kuò)展神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)通常意味著帶來(lái)更大的計(jì)算量,這會(huì)在一定程度上提高目標(biāo)檢測(cè)任務(wù)的成本。受CSPNet(cross stage paritial network)的啟發(fā),構(gòu)造了簡(jiǎn)潔版的CSPNet結(jié)構(gòu)模塊,并將其融入特征融合模塊中,如圖8 所示為CSPNet 模塊結(jié)構(gòu),圖8(a)為改進(jìn)前的結(jié)構(gòu)圖,圖8(b)為改進(jìn)后的結(jié)構(gòu)圖。本文設(shè)計(jì)的簡(jiǎn)單的跳變連接網(wǎng)絡(luò),首先將基礎(chǔ)層特征圖劃分為兩部分,然后通過(guò)跨階段層次結(jié)構(gòu)進(jìn)行合并,可以在實(shí)現(xiàn)更加豐富的梯度組合的同時(shí)減少網(wǎng)絡(luò)計(jì)算量。通過(guò)該結(jié)構(gòu)可以增強(qiáng)卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,降低網(wǎng)絡(luò)計(jì)算瓶頸。
圖8 CSPNet結(jié)構(gòu)圖Fig.8 CSPNet structure diagram
不同尺度之間的特征融合需要對(duì)小的特征圖進(jìn)行上采樣,本文使用的上采樣方式為線性差值法中的最近鄰插值算法,其基本原理是將已知像素的值賦予給最鄰近的位置像素。如圖9 所示,區(qū)域的像素值均由點(diǎn)(,)決定,區(qū)域的像素值則由點(diǎn)(+1,)決定,以此類推可以得到該區(qū)域的所有(+,+)的像素值。
圖9 最鄰近插值法Fig.9 The nearest interpolation
完整的特征融合模塊結(jié)構(gòu)如圖10 所示。首先將骨干網(wǎng)絡(luò)輸出的特征圖送入輕量級(jí)注意力模塊,通過(guò)注意力機(jī)制對(duì)無(wú)用信息進(jìn)行抑制,增強(qiáng)網(wǎng)絡(luò)對(duì)關(guān)鍵信息的捕獲。然后通過(guò)改進(jìn)后的CSPNet 結(jié)構(gòu),進(jìn)一步優(yōu)化網(wǎng)絡(luò)特征。改進(jìn)后的CSPNet網(wǎng)絡(luò)由兩個(gè)分支組成,主分支上由兩個(gè)卷積核大小不同的卷積層串聯(lián)組成;次分支為一個(gè)1×1 的卷積核。通過(guò)該結(jié)構(gòu)可以先將上一層的特征映射劃分為兩部分,再使用跨層次合并操作,可以在保證網(wǎng)絡(luò)精度的同時(shí)減少計(jì)算量。然后進(jìn)行上采樣將深層網(wǎng)絡(luò)中的特征圖尺寸擴(kuò)展成待融合的淺層特征圖大小,最后通過(guò)element-wise add 方式將對(duì)應(yīng)的特征圖相加,它可以在不增加特征通道數(shù)的同時(shí)豐富特征圖信息。為了避免因不同尺度特征圖之間存在的信息差異而引起的次優(yōu)融合結(jié)果,再次經(jīng)過(guò)卷積操作,輸出最終得到的融合后的特征圖。
圖10 特征融合模塊Fig.10 Feature fusion module
融合模塊雖然可以充分利用上下文語(yǔ)義信息,豐富淺層網(wǎng)絡(luò)的特征信息,但是同時(shí)也增加了模型的復(fù)雜度。相比于改進(jìn)前的SSD,改進(jìn)后的網(wǎng)絡(luò)多了3 個(gè)特征融合模塊,在一定程度上增加了網(wǎng)絡(luò)的計(jì)算量,對(duì)網(wǎng)絡(luò)的總體實(shí)時(shí)性產(chǎn)生了影響,但是提升了整個(gè)網(wǎng)絡(luò)的檢測(cè)精度。
在網(wǎng)絡(luò)初始化時(shí)采用了遷移學(xué)習(xí)的思想,首先使用預(yù)訓(xùn)練好的SSD 模型對(duì)改進(jìn)后的網(wǎng)絡(luò)進(jìn)行參數(shù)初始化,新增加的網(wǎng)絡(luò)層采用He 初始化方法。然后進(jìn)入微調(diào)階段,對(duì)改進(jìn)后的網(wǎng)絡(luò)的權(quán)重參數(shù)進(jìn)行微調(diào),并在訓(xùn)練過(guò)程中引用數(shù)據(jù)增強(qiáng)策略。微調(diào)階段采用了兩步驟訓(xùn)練法,將骨干網(wǎng)絡(luò)和檢測(cè)網(wǎng)絡(luò)分開(kāi)訓(xùn)練。首先訓(xùn)練檢測(cè)網(wǎng)絡(luò),即關(guān)閉骨干網(wǎng)絡(luò)中的梯度更新命令。當(dāng)網(wǎng)絡(luò)達(dá)到穩(wěn)定時(shí),開(kāi)啟骨干網(wǎng)絡(luò)的反向傳播指令,然后從頭訓(xùn)練整個(gè)網(wǎng)絡(luò)。這樣在訓(xùn)練初期可以防止骨干網(wǎng)絡(luò)中的權(quán)重被破壞,同時(shí)也可以加快網(wǎng)絡(luò)的訓(xùn)練速度。
優(yōu)秀的訓(xùn)練數(shù)據(jù)集對(duì)于神經(jīng)網(wǎng)絡(luò)來(lái)說(shuō)及其重要,在模型訓(xùn)練過(guò)程中參考了最新的SSD 訓(xùn)練策略,引入了一系列常規(guī)的數(shù)據(jù)增強(qiáng)方法,如水平翻轉(zhuǎn)、顏色扭曲、隨機(jī)裁剪等。通過(guò)數(shù)據(jù)增強(qiáng)策略,可以在訓(xùn)練過(guò)程中豐富訓(xùn)練數(shù)據(jù)集,從而達(dá)到提升網(wǎng)絡(luò)性能的目的。
為了更好地檢測(cè)各種大小和形狀不同的目標(biāo),每一個(gè)特征圖都需要預(yù)先設(shè)置好各種尺度的先驗(yàn)框。本文根據(jù)SSD 算法設(shè)置的先驗(yàn)框選取規(guī)則,進(jìn)行錨框選定。候選區(qū)的尺寸選取原則如下:
與原始SSD 相同,改進(jìn)后的算法依舊通過(guò)分類和回歸進(jìn)行目標(biāo)預(yù)測(cè)。分類時(shí)使用Softmax 函數(shù)進(jìn)行分類置信度預(yù)測(cè),定位時(shí)使用回歸函數(shù)輸出目標(biāo)位置。目標(biāo)損失函數(shù)由置信度誤差和位置誤差組成,即:
其中,通常默認(rèn)設(shè)置為1;為匹配的候選框數(shù)量,當(dāng)為0 時(shí),則說(shuō)明沒(méi)有匹配的候選框,值為0;其中置信度誤差計(jì)算公式如下:
其中位置誤差計(jì)算公式如下:
式中,(g,g,g,g) 表示真實(shí)框,(d,d,d,d) 表示候選框。
網(wǎng)絡(luò)訓(xùn)練階段使用Adam 優(yōu)化器,采用兩步驟訓(xùn)練法,可以防止通過(guò)預(yù)訓(xùn)練模型初始化得到的權(quán)重被破壞。首先凍結(jié)骨干網(wǎng)絡(luò),訓(xùn)練檢測(cè)網(wǎng)絡(luò),batch_size 設(shè)置為32,初始學(xué)習(xí)率為0.000 5,總共迭代23 350 次,且每迭代一次,學(xué)習(xí)率下調(diào)5%。然后將被凍結(jié)的骨干網(wǎng)絡(luò)參數(shù)釋放,從頭訓(xùn)練整個(gè)網(wǎng)絡(luò),batch_size 依舊設(shè)置為32,初始學(xué)習(xí)率為0.000 1,總共迭代23 350 次,且每迭代一次,學(xué)習(xí)率也下調(diào)5%。整個(gè)訓(xùn)練階段總共迭代46 700 次。
為了評(píng)估改進(jìn)后的網(wǎng)絡(luò)性能,使用PASCAL VOC 數(shù)據(jù)集進(jìn)行驗(yàn)證。該數(shù)據(jù)集總共包含20 個(gè)物體類別,如鳥(niǎo)、人、車、羊、牛、盆栽、沙發(fā)、椅子等。在訓(xùn)練階段,使用PASCAL VOC2007 trainval 數(shù)據(jù)集和PASCALVOC2012 trainval數(shù)據(jù)集作為訓(xùn)練集和驗(yàn)證集,總共包含16 551 張圖片。在測(cè)試階段使用PASCAL VOC2007 test數(shù)據(jù)集作為網(wǎng)絡(luò)評(píng)估數(shù)據(jù)集,總共包含4 952 張圖片。
實(shí)驗(yàn)過(guò)程中使用的顯卡為Nvidia Tesla T4,顯存為16 GB,采用Pytorch 進(jìn)行神經(jīng)網(wǎng)絡(luò)構(gòu)建,并為其配置了對(duì)應(yīng)的CUDA 和CUDA 深層神經(jīng)網(wǎng)絡(luò)庫(kù)。
采用AP 和mAP 作為算法的性能評(píng)估指標(biāo)。并且與SSD300、Faster R-CNN、DSSD321、ION300等目標(biāo)檢測(cè)算法進(jìn)行對(duì)比。各類別檢測(cè)精度詳細(xì)結(jié)果如表1 所示。通過(guò)表1 可以發(fā)現(xiàn),本文網(wǎng)絡(luò)對(duì)各個(gè)類別的檢測(cè)精度都有一定程度的提升。在羅列出的6 種方法中,最高單類別目標(biāo)AP 值進(jìn)行了加粗顯示,其中DSSD 占有4 項(xiàng),ION 占有5 項(xiàng),本文方法占有12項(xiàng)。改進(jìn)后的SSD 的mAP 比原SSD 提高了2.4 個(gè)百分點(diǎn),比DSSD 提升了1 個(gè)百分點(diǎn),比ION 提升了0.4個(gè)百分點(diǎn)。圖11 為表1 的數(shù)據(jù)可視化結(jié)果,可以很直觀地看到,本文方法基本在每一個(gè)類別上都處在最高點(diǎn),說(shuō)明本文提出的改進(jìn)方法具有有效性。
圖11 PASCAL VOC2007 test數(shù)據(jù)集上20 種類別AP 對(duì)比Fig.11 Comparison of AP of 20 classes on PASCAL VOC2007 test dataset
表1 PASCAL VOC2007 test數(shù)據(jù)集上20 種類別檢測(cè)精度對(duì)比Table 1 Comparison of detection accuracy of 20 classes on PASCAL VOC2007 test dataset %
網(wǎng)絡(luò)的評(píng)價(jià)指標(biāo)除了mAP 之外,還有檢測(cè)速度。為了更全面地比較本文算法與其他主流的目標(biāo)檢測(cè)算法的差異,進(jìn)一步對(duì)比了多種算法在PASCAL VOC2007 test數(shù)據(jù)集上的檢測(cè)速度和檢測(cè)精度,結(jié)果如表2 所示。從表中可以看出,當(dāng)輸入分辨率相近時(shí),改進(jìn)后的算法雖然在實(shí)時(shí)性上有所下降,但是在精度上具有優(yōu)勢(shì)。相比同樣帶有數(shù)據(jù)增強(qiáng)操作的原始SSD300 算法,本文方法在精度上提升了2.4 個(gè)百分點(diǎn);相比于RSSD300,雖然在精度上只提升了1.1個(gè)百分點(diǎn),但是檢測(cè)速度遠(yuǎn)遠(yuǎn)高于該算法。當(dāng)網(wǎng)絡(luò)的輸入分辨率大于本文算法時(shí),在檢測(cè)精度相近的情況下,本文算法具有更快的檢測(cè)速度,如SSD512算法,在精測(cè)精度上與改進(jìn)后的SSD 網(wǎng)絡(luò)幾乎相同,但是在檢測(cè)速度上比本文方法要慢很多。綜上,說(shuō)明本文提出的改進(jìn)方法具有有效性,不僅可以減少漏檢、誤檢,還能保證檢測(cè)速度,同時(shí)滿足了高精度和高實(shí)時(shí)性。
表2 PASCAL VOC2007 test數(shù)據(jù)集上檢測(cè)速度和檢測(cè)精度對(duì)比Table 2 Comparison of detection speed and detection accuracy on PASCAL VOC2007 test dataset
為了更直觀地顯示本文算法的有效性,圖12 展示了原SSD 和改進(jìn)的SSD 方法在PASCAL VOC 2007 test 數(shù)據(jù)集上的檢測(cè)結(jié)果圖,兩個(gè)算法的訓(xùn)練數(shù)據(jù)集輸入分辨率均為300×300,且訓(xùn)練集均為PASCAL VOC 2007 trainval 數(shù)據(jù)集和PASCAL VOC 2012 trainval 數(shù)據(jù)集。圖(a1)~(f1)為SSD 算法的檢測(cè)結(jié)果,圖(a2)~(f2)為本文算法的檢測(cè)結(jié)果。通過(guò)圖(a1)、(a2),(b1)、(b2)的對(duì)比,可以看到本文算法對(duì)行人的檢測(cè)性能更好;通過(guò)圖(c1)、(c2)的對(duì)比,可以看到本文算法對(duì)摩托車的檢測(cè)性能更好;通過(guò)圖(d1)、(d2),(e1)、(e2)的對(duì)比,可以看到本文算法對(duì)牛羊的檢測(cè)性能更好;通過(guò)圖(f1)、(f2)的對(duì)比,可以看到本文算法對(duì)自行車的檢測(cè)性能更好。
從圖12 可以看出,改進(jìn)后的算法在復(fù)雜背景下的檢測(cè)性能明顯優(yōu)于原SSD 算法,且對(duì)于一些相似物體的識(shí)別能力更強(qiáng)。圖中紅色橢圓為錯(cuò)誤檢測(cè)目標(biāo)示例,如在圖12(c1)中,原SSD 算法將摩托車識(shí)別成自行車;在圖12(e1)中,原SSD 算法將牛識(shí)別成羊,而在本文算法中,這兩張圖片中的目標(biāo)均被正確識(shí)別。另外,從被識(shí)別出的物體的置信度還可以發(fā)現(xiàn),改進(jìn)后的算法識(shí)別出的物體的置信度值更高,且當(dāng)目標(biāo)被遮擋時(shí),改進(jìn)后的算法也能準(zhǔn)確檢測(cè)目標(biāo)。
圖12 SSD 與本文算法檢測(cè)結(jié)果對(duì)比Fig.12 Comparison of detection results between SSD and proposed method
為了進(jìn)一步驗(yàn)證本文算法對(duì)遮擋目標(biāo)的魯棒性,從PASCAL VOC2007 測(cè)試集中挑選了100 張含有大量遮擋目標(biāo)的圖片,組成小型目標(biāo)遮擋檢測(cè)數(shù)據(jù)集,使用原始SSD 目標(biāo)檢測(cè)算法和改進(jìn)后的目標(biāo)檢測(cè)算法對(duì)該數(shù)據(jù)集進(jìn)行檢測(cè)。如表3 所示為檢測(cè)結(jié)果對(duì)比,圖13 為檢測(cè)結(jié)果可視化。改進(jìn)后的算法的mAP 值比原SSD 提升了4.7 個(gè)百分點(diǎn),說(shuō)明改進(jìn)后的算法對(duì)遮擋目標(biāo)具有魯棒性。
圖13 SSD 與本文算法遮擋目標(biāo)的檢測(cè)結(jié)果對(duì)比Fig.13 Comparison of detection results of occluded objects between SSD and proposed method
表3 遮擋目標(biāo)數(shù)據(jù)集上檢測(cè)速度和檢測(cè)精度對(duì)比Table 3 Comparison of detection speed and detection accuracy on occluded objects dataset
綜上,改進(jìn)后的算法不僅能準(zhǔn)確識(shí)別出更多的目標(biāo)數(shù)量,且對(duì)相似目標(biāo)的辨別能力更強(qiáng),對(duì)小目標(biāo)和遮擋目標(biāo)等困難目標(biāo)的檢測(cè)效果也更好。通過(guò)上述實(shí)驗(yàn),充分說(shuō)明改進(jìn)后的方法有利于改善目標(biāo)的誤檢、漏檢等情況。
為了解決傳統(tǒng)的SSD 算法存在的小目標(biāo)、遮擋目標(biāo)等困難目標(biāo)檢測(cè)效果差、相似目標(biāo)辨別性能低等情況,對(duì)網(wǎng)絡(luò)框架進(jìn)行了改進(jìn)。首先,在特征輸出層之后引入輕量級(jí)注意力機(jī)制,使網(wǎng)絡(luò)可以更好地區(qū)分背景和目標(biāo),從而增強(qiáng)網(wǎng)絡(luò)對(duì)關(guān)鍵信息的辨識(shí)能力。其次,針對(duì)SSD 的淺層網(wǎng)絡(luò)存在的缺點(diǎn),設(shè)計(jì)了一款新的特征融合模塊,將5×5、10×10、19×19 和38×38 這四層特征層自下而上進(jìn)行有效的特征融合,可以減少融和時(shí)因信息差而產(chǎn)生的負(fù)面影響。使用公開(kāi)的PASCAL VOC 數(shù)據(jù)集對(duì)算法進(jìn)行驗(yàn)證,改進(jìn)后的網(wǎng)絡(luò)在PASCAL VOC2007 測(cè)試集上的檢測(cè)精度達(dá)到了79.6%,比原始SSD 算法提升了2.4 個(gè)百分點(diǎn),在自制小型遮擋目標(biāo)數(shù)據(jù)集上提升了4.7 個(gè)百分點(diǎn),充分證明了改進(jìn)方法具有一定的時(shí)效性和魯棒性。
由于引入了新的網(wǎng)絡(luò)模塊,增加了模型參數(shù)量,導(dǎo)致改進(jìn)后的網(wǎng)絡(luò)檢測(cè)速度有所下降,但是改進(jìn)后的模型的檢測(cè)速度仍然滿足實(shí)時(shí)性。本文算法雖然對(duì)小目標(biāo)和遮擋目標(biāo)的檢測(cè)性能有一定的提升,但還需進(jìn)一步完善。在后續(xù)工作中,將針對(duì)網(wǎng)絡(luò)的各個(gè)模塊繼續(xù)進(jìn)行優(yōu)化,全面提升網(wǎng)絡(luò)的檢測(cè)性能。