何偉鑫,鄧建球,劉愛東,叢林虎
(海軍航空大學(xué) 岸防兵學(xué)院,山東 煙臺(tái) 264001)
隨著我軍實(shí)戰(zhàn)化水平的提升,存儲(chǔ)導(dǎo)彈等火工品的導(dǎo)彈倉(cāng)庫(kù)工作日益繁忙,彈品及其對(duì)應(yīng)的數(shù)量不斷增加,對(duì)于彈庫(kù)的管控提出了新的要求。目標(biāo)檢測(cè)技術(shù)是深度學(xué)習(xí)領(lǐng)域研究的一大重點(diǎn),其核心是機(jī)器通過卷積神經(jīng)網(wǎng)絡(luò)對(duì)特征進(jìn)行提取以及學(xué)習(xí),而后搭建其對(duì)應(yīng)的網(wǎng)絡(luò)。目標(biāo)檢測(cè)技術(shù)是當(dāng)前深度學(xué)習(xí)以及圖像處理領(lǐng)域的研究熱點(diǎn)。因此將目標(biāo)檢測(cè)技術(shù)應(yīng)用于彈庫(kù)目標(biāo)的識(shí)別,能夠輔助人員對(duì)彈庫(kù)目標(biāo)的管控同時(shí)將人工智能技術(shù)應(yīng)用于彈庫(kù),是目前我軍信息化、智能化建設(shè)的主流。
傳統(tǒng)的目標(biāo)檢測(cè)方法將基于機(jī)器學(xué)習(xí)的分類算法以及特征提取進(jìn)行結(jié)合以實(shí)現(xiàn)檢測(cè)。文獻(xiàn)[1]使用Ad?boost 算法與Haar 算法訓(xùn)練級(jí)聯(lián)分類器對(duì)人臉進(jìn)行檢測(cè),效果較好。文獻(xiàn)[2]利用改進(jìn)Grassberger 熵對(duì)目標(biāo)屬性進(jìn)行提取,并結(jié)合隨機(jī)森林對(duì)是否包含目標(biāo)進(jìn)行預(yù)測(cè),使得其準(zhǔn)確率進(jìn)一步提升。隨著深度學(xué)習(xí)技術(shù)成為研究熱點(diǎn),卷積神經(jīng)網(wǎng)絡(luò)(CNN)在圖像處理領(lǐng)域獲得了不可忽視的成就,出現(xiàn)了大量以深度學(xué)習(xí)為基礎(chǔ)的目標(biāo)檢測(cè)算法。文獻(xiàn)[3?4]將R?CNN 算法應(yīng)用到目標(biāo)檢測(cè)領(lǐng)域中,并且獲得了較大成功,而后又提出了系列改進(jìn)算法Fast R?CNN[5]及Faster R?CNN[6]。不過Faster R?CNN算法檢測(cè)精度雖高,但其實(shí)時(shí)性較差。為提升檢測(cè)速度,文獻(xiàn)[7]提出one?stage 的YOLOV1 算法,該算法使用CNN 直接對(duì)目標(biāo)類別以及位置進(jìn)行預(yù)測(cè),但其檢測(cè)精度不理想,于是又提出YOLOV2[8]算法,該算法在YO?LOV1 的研究基礎(chǔ)上新增批歸一化[9](Batch Normaliza?tion,BN)層,使得訓(xùn)練速度得到提升,使用錨框(anchor box)以及更高分辨率的分類器以提升精度。同樣,基于one?stage 思想,文獻(xiàn)[10]提出多尺度預(yù)測(cè)的SSD 算法,不同尺度特征圖對(duì)不同尺寸的圖象進(jìn)行預(yù)測(cè),既能保證精度又能兼顧速度,但預(yù)測(cè)層對(duì)淺層特征的表達(dá)能力較弱。而后文獻(xiàn)[11]進(jìn)一步提出YOLOV3,該算法采用Dark?Net53 網(wǎng)絡(luò)結(jié)構(gòu),利用多尺度特征預(yù)測(cè)目標(biāo),既保持了檢測(cè)速度又提升了檢測(cè)精度。但YOLOV3 網(wǎng)絡(luò)較YO?LOV2 算法,網(wǎng)絡(luò)結(jié)構(gòu)更為復(fù)雜,卷積層數(shù)目大幅增加,加大了小目標(biāo)在深層卷積過程中特征消失的風(fēng)險(xiǎn)[12]。
為提高YOLOV3 算法檢測(cè)精度,本文在YOLOV3 算法的基礎(chǔ)上進(jìn)行改進(jìn):用DenseNet 網(wǎng)絡(luò)改進(jìn)原模型的DarkNet53 網(wǎng)絡(luò),以提高特征提取能力;以soft?NMS 算法替換原模型的NMS 算法,提升了模型的檢測(cè)精確率。
YOLOV3 組成結(jié)構(gòu)為DarkNet53 網(wǎng)絡(luò)及多尺度預(yù)測(cè)網(wǎng)絡(luò),分別對(duì)目標(biāo)特征進(jìn)行提取以及預(yù)測(cè)。DarkNet53包括由卷積構(gòu)成的殘差塊和卷積層。
圖1 為殘差結(jié)構(gòu)示意圖,其中加號(hào)代表相加操作,可表示為:
圖1 ResNet 結(jié)構(gòu)圖
式中:x以及F(x)為殘差層的輸入,F(xiàn)(x)是x經(jīng)過兩次卷積所得輸出。兩卷積層的卷積核為1×1 和3×3,步長(zhǎng)為1。同時(shí),YOLOV3 網(wǎng)絡(luò)為提高性能,卷積層后面均加入BN 層以及線性單元[13](leakyReLU)。添加BN 層能夠使得訓(xùn)練過程收斂得更快,而激活函數(shù)leakyReLU 能夠防止網(wǎng)絡(luò)中產(chǎn)生梯度消失的情況。
圖2 為YOLOV3 網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)。大小為416×416 的圖像輸入到DarkNet53 網(wǎng)絡(luò)后輸出三種尺度的特征圖。圖2 左側(cè)的數(shù)字說明與之對(duì)應(yīng)的是殘差迭代的次數(shù),網(wǎng)絡(luò)最終輸出5 種尺度大小的特征圖[14],分別為:208×208,104×104,52×52,26×26,13×13。
圖2 YOLOV3 網(wǎng)絡(luò)結(jié)構(gòu)圖
YOLOV3 對(duì)圖像進(jìn)行預(yù)測(cè)的特征圖尺度大小分別為:52×52,26×26,13×13。但在輸出結(jié)果前,首先要對(duì)特征進(jìn)行融合,把高語(yǔ)義低分辨率及低語(yǔ)義高分辨率的特征進(jìn)行拼接,于是高分辨率的特征也能夠具有較多語(yǔ)義信息。該過程可分為以下步驟:開始在尺度為13×13 的特征圖執(zhí)行卷積5 次,卷積核大小分別為1×1,3×3,1×1,3×3,1×1,步長(zhǎng)全部是1。接著卷積核大小為3×3,步長(zhǎng)全部是1,卷積核減少到原來(lái)一半個(gè)數(shù)的卷積層,從而降低維數(shù)。然后對(duì)特征進(jìn)行上采樣,倍數(shù)為2,之后拼接上級(jí)特征(尺度大小26×26),重復(fù)以上操作與特征圖尺度為52×52 進(jìn)行拼接。最后再融合尺度大小為13×13,26×26,52×52 的特征圖得到預(yù)測(cè)結(jié)果。
得到預(yù)測(cè)結(jié)果的三種尺度的特征圖,其特征圖的每個(gè)網(wǎng)格得到3 個(gè)預(yù)測(cè)框,每個(gè)預(yù)測(cè)框預(yù)測(cè)目標(biāo)相對(duì)每個(gè)網(wǎng)格的偏移量得出中點(diǎn)(x,y),高寬(h,w),對(duì)是否含有目標(biāo)物體的置信度p,所有類別分?jǐn)?shù)值進(jìn)行預(yù)測(cè)。三個(gè)尺度特征圖共輸出10 647×(13×13×3+26×26×3+52×52×3)個(gè)預(yù)測(cè)框。YOLOV3 對(duì)輸出的預(yù)測(cè)框首先通過置信度閾值篩選,而后非極大值抑制(NMS)算法對(duì)對(duì)同一目標(biāo)的冗余候選框進(jìn)行剔除以獲得最終預(yù)測(cè)結(jié)果[14]。
CNN 的高速發(fā)展,學(xué)術(shù)科研人員提出了很多非常優(yōu)秀的網(wǎng)絡(luò)模型,其中GoogleNet、VGGNet、ResNet 等網(wǎng)絡(luò)模型均獲得了非常好的效果。但是隨著網(wǎng)絡(luò)層數(shù)的加深,模型的性能并非越來(lái)越好,在訓(xùn)練模型的過程中可能因?yàn)榫W(wǎng)絡(luò)層數(shù)過多導(dǎo)致產(chǎn)生梯度消失的現(xiàn)象。因此研究人員提出一系列的解決辦法來(lái)防止梯度消失,比較典型的是ResNet 網(wǎng)絡(luò)提出了一種殘差結(jié)構(gòu)使得信號(hào)可以在輸入層和輸出層之間高速流通。文獻(xiàn)[15]基于這個(gè)思想理念提出一種全新連接模式:將網(wǎng)絡(luò)中每個(gè)Dense 塊的所有層均進(jìn)行連接,以將網(wǎng)絡(luò)中的所有層之間的信息流最大化,這樣網(wǎng)絡(luò)中的任意層都會(huì)接收來(lái)自前面任一層的信息輸入。
圖3為該連接示意圖,這種連接方式較為密集,因此將這種結(jié)構(gòu)稱為DenseNet。DenseNet 可緩解網(wǎng)絡(luò)層數(shù)加深和變寬之后帶來(lái)的梯度消失問題。該網(wǎng)絡(luò)擺脫傳統(tǒng)網(wǎng)絡(luò)模型加深變寬的思想,從特征角度去考慮。將特征不斷重復(fù)使用以及設(shè)置旁路(Bypass),使得使用少量的卷積核就可以生成大量的特征,最終模型的尺寸也比較小,使得網(wǎng)絡(luò)不僅大量縮減了參數(shù)量,還在一定程度上減緩了梯度消失問題的產(chǎn)生。圖3 中每一個(gè)Denseblock 中特征圖大小相同,不同的Denseblock 間設(shè)置卷積層以及下采樣層。最后一個(gè)Denseblock 后,經(jīng)過classification block,由采樣層及全連接層組成,最后通過softmax 得到prediction 結(jié)果,輸出分類概率。
圖3 DenseNet 示意圖
表1為DenseNet系列網(wǎng)絡(luò)以及ResNet網(wǎng)絡(luò)在CIFAR以及SVHN 數(shù)據(jù)集上的結(jié)果[16]。從表1 中可以看出,DenseNet 的效果明顯優(yōu)于ResNet。
表1 各模型實(shí)驗(yàn)結(jié)果對(duì)比
非極大值抑制(NMS)算法被廣泛應(yīng)用于計(jì)算機(jī)視覺領(lǐng)域。該算法的目的為剔除多余候選框從而尋找到最佳的物體檢測(cè)框。圖4 為該算法示意圖。
圖4 NMS 算法示意圖
NMS 計(jì)算步驟[17]為:
1)把輸出的檢測(cè)框以相應(yīng)類別置信度降序排列,得邊框列表;
2)把置信度值第一的框移入到輸出邊框列表中,而后從原邊框列表移除;
3)求出全部檢測(cè)框面積;
4)計(jì)算邊框列表中的所有邊框與置信度最大的邊框間的交并比;
5)將交并比閾值大的邊框從邊框列表移除;
6)迭代執(zhí)行前5 個(gè)步驟,當(dāng)邊框列表為空時(shí),程序停止,此時(shí)輸出列表中的邊框即為最終預(yù)測(cè)框。
NMS 算法的分?jǐn)?shù)重置函數(shù)為:
式中Nt表示設(shè)定的交并比閾值。在NMS 算法中,使用一個(gè)特定的閾值,該閾值的選取對(duì)模型輸出的準(zhǔn)確度至關(guān)重要。如果選取較小,可能發(fā)生漏檢;且該值不能較大,是為了防止同一目標(biāo)被多個(gè)框表示的情況,其實(shí)就是保留同一個(gè)目標(biāo)的類別置信度最高的候選框。YOLOV3 算法將該閾值設(shè)定為0.5。
彈庫(kù)目標(biāo)數(shù)量大、種類多、目標(biāo)形態(tài)較為相似,因此為了使YOLOV3 模型對(duì)彈庫(kù)目標(biāo)具備更高的檢測(cè)精度,對(duì)原算法做出如下修改。
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),因?yàn)榇嬖诰矸e層以及采樣層,導(dǎo)致特征信息慢慢減少以至消失。而DenseNet 可以比基于殘差結(jié)構(gòu)的DarkNet53 網(wǎng)絡(luò)更高效地對(duì)特征信息進(jìn)行提取[18],減輕了因?yàn)閷訑?shù)太多從而造成梯度消失問題,式(3)、式(4)分別為ResNet 以及DenseNet 的特征信息傳播方式。
式中:l代表神經(jīng)網(wǎng)絡(luò)的層數(shù);H(?)表示非線性函數(shù);xl為第l層輸出。對(duì)于ResNet網(wǎng)絡(luò),第l層的輸出為上一層的輸出與Hl(xl-1)的和,即l-1 層輸出以及其非線性轉(zhuǎn)化值之和;而DenseNet 從第0~l-1 層的輸出全部進(jìn)行非線性變換,接著在維度上進(jìn)行連接得到第l層的輸出。DenseNet 相比ResNet 能夠?qū)崿F(xiàn)特征重用,使得網(wǎng)絡(luò)的計(jì)算效率得到進(jìn)一步提升,因此本文采用DenseNet 提取圖像特征。
基于DenseNet,如果將DarkNet53 全部替換為DenseNet,在訓(xùn)練過程中可能出現(xiàn)損失函數(shù)震蕩的問題,從而會(huì)導(dǎo)致檢測(cè)率不足[17]。因此將第43~59 層,第68~80 層兩個(gè)部分改為DenseNet 形式,分別設(shè)計(jì)Dense block,該法既能保留淺層特征又利于預(yù)防網(wǎng)絡(luò)訓(xùn)練中的損失函數(shù)震蕩。將網(wǎng)絡(luò)第45~59 層、第68~80 層之間的所有shortcut 層替換為route 層,在第76、78 層之后增加route 層,每個(gè)route 層前三層的輸出作為該route 層的輸入,如圖5 所示為實(shí)現(xiàn)前后層特征的密集連接。
圖5 改進(jìn)后的網(wǎng)絡(luò)結(jié)構(gòu)圖
在彈庫(kù)的實(shí)際工作中,攝像頭捕捉到的畫面往往存在著許多重疊的火工品,而直接使用傳統(tǒng)的NMS 算法很容易將重疊度較大的檢測(cè)框直接剔除,從而造成漏檢。如圖6 所示,兩種顏色的檢測(cè)框均為預(yù)測(cè)結(jié)果,但是按照傳統(tǒng)的NMS 算法,將會(huì)剔除綠色框,從而造成漏檢的產(chǎn)生?;谶@種情況,本文提出對(duì)于交并比較大的預(yù)測(cè)框,不是直接對(duì)其進(jìn)行剔除,而是減少它的置信度。
圖6 傳統(tǒng)NMS 檢測(cè)圖
針對(duì)此情況,采用soft?NMS 替換傳統(tǒng)的NMS,利用高斯加權(quán)降低交并比值大于閾值的檢測(cè)框的得分,而非將其粗暴置0,從而減少模型漏檢的幾率,soft?NMS 公式為:
式中σ為常數(shù)。
soft?NMS 改變傳統(tǒng)NMS 對(duì)交并比較高的檢測(cè)框直接去除,以降低其置信度的做法進(jìn)行替換,使得其存在繼續(xù)進(jìn)行比較的可能性,從而減小了正確的檢測(cè)框被誤刪的幾率,提升了檢測(cè)平均精度[19]。
本研究中,用P代表精度,用R代表召回率,精度和召回率計(jì)算如下:
式中:TP 表示真實(shí)正樣本的數(shù)量;FP 表示被判定為正樣本的負(fù)樣本數(shù)量;FN 表示被判定為負(fù)樣本的正樣本數(shù)量[20]。
本研究使用平均精度(AP)表示模型的性能。AP定義為:
AP 值越大意味著性能越好。P(R)在這里代表由P和R組成的曲線,圖7為一個(gè)P?R曲線示例[20]。
圖7 P?R 曲線示例
本文實(shí)驗(yàn)在Ubuntu 16.04 系統(tǒng)下進(jìn)行,CPU:酷睿i5?8400 2.80 GHz,顯卡為GTX1060,顯存為6 GB,計(jì)算機(jī)內(nèi)存為16 GB;使用C 語(yǔ)言以及Python 3.6,同時(shí)配套OpenCV 4.1、tensorflow 1.14 等模塊支持實(shí)驗(yàn)進(jìn)行。
本實(shí)驗(yàn)數(shù)據(jù)集為在某部彈藥保障大隊(duì)進(jìn)行獲取的5 種火工品圖片共2 475 張,以8∶2 的比例劃分訓(xùn)練集以及測(cè)試集,其中大部分圖片均包含多個(gè)目標(biāo),且實(shí)驗(yàn)過程中采用在線數(shù)據(jù)增強(qiáng)的方式對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充。訓(xùn)練圖片之前,會(huì)先對(duì)圖片進(jìn)行隨機(jī)的數(shù)據(jù)增強(qiáng):旋轉(zhuǎn)、剪切、翻轉(zhuǎn)以及平移等,因?yàn)閺棊?kù)的光照保持穩(wěn)定,因此不需對(duì)光照變化進(jìn)行處理。
將DarkNet53 相應(yīng)層改為密集結(jié)構(gòu),命名為DeYOLOV3,為驗(yàn)證本研究提出方法的有效性,本文將YOLOV3、DeYOLOV3 算法的性能作對(duì)比,得出其結(jié)果見表2(火工品均未給出具體型號(hào)名稱)。
表2 不同方法AP 對(duì)比 %
從表2 可得,對(duì)比于原始YOLOV3 算法,本文提出的DeYOLOV3 使得各火工品的AP 均有了顯著的提高,特別是對(duì)于炸彈等目標(biāo)較小的火工品,AP 的提升更為顯著,由此證明,研究提出的DeYOLOV3 的性能優(yōu)于傳統(tǒng)YOLOV3。
基于DeYOLOV3,使用本研究提出的soft?NMS 替換NMS 算法。程序?qū)崿F(xiàn)后,由于NMS算法沒有涉及到未知參數(shù)需要進(jìn)行更新,因此改進(jìn)NMS 算法后的YOLOV3 模型不需進(jìn)行訓(xùn)練即可直接進(jìn)行測(cè)試,表3 為其測(cè)試結(jié)果。
表3 兩種NMS 算法的AP 結(jié)果對(duì)比 %
通過表3 數(shù)據(jù)可得,改進(jìn)NMS 算法后,模型對(duì)大部分火工品的AP 均有提高,其中導(dǎo)彈1 的提升最高,原因是導(dǎo)彈1 的體積最大,在圖片序列里面重疊較大。由此可以得出,本研究提出的改進(jìn)NMS 方法對(duì)彈庫(kù)火工品的檢測(cè)精度優(yōu)于傳統(tǒng)的YOLOV3 算法。
針對(duì)彈庫(kù)目標(biāo)種類繁多,數(shù)量以及形態(tài)各異需加強(qiáng)對(duì)彈庫(kù)管控的實(shí)際情況,本文提出結(jié)合計(jì)算機(jī)視覺技術(shù)對(duì)彈庫(kù)目標(biāo)進(jìn)行檢測(cè)識(shí)別。由于YOLOV3 對(duì)小物體檢測(cè)率不足,本文提出一種基于DenseNet 以及soft?NMS 的YOLOV3 改進(jìn)算法。
利用DenseNet,改進(jìn)網(wǎng)絡(luò)能夠更加高效地對(duì)特征信息進(jìn)行提取,減輕了因?yàn)閷訑?shù)太多造成的梯度消失現(xiàn)象。對(duì)NMS 算法進(jìn)行改進(jìn),減少模型對(duì)目標(biāo)的漏檢率。通過實(shí)驗(yàn)結(jié)果表明,本研究提出的改進(jìn)方法使得YOLOV3 對(duì)于彈庫(kù)火工品的檢測(cè)精度比傳統(tǒng)YOLOV3檢測(cè)精度更高。