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