童雪東 任明武
(南京理工大學計算機科學與工程學院 南京 210000)
當前,戰(zhàn)場感知信息向著多源異構(gòu)的方向發(fā)展,這要求偵察情報裝備和武器打擊裝備具有系統(tǒng)化和智能化特點。同時,隨著未來戰(zhàn)爭的人員傷亡“零容忍”趨勢成為世界各國政府對戰(zhàn)爭的重要政治考量因素,地面無人車輛偵察系統(tǒng)(Unmanned Systems,US)正在為軍隊承擔越來越多的作戰(zhàn)任務,但地面無人車輛偵察系統(tǒng)任務的預置程序難以適應戰(zhàn)場任務的動態(tài)變化特性,對復雜戰(zhàn)場環(huán)境下的敏感目標檢測就成為地面無人車輛偵察系統(tǒng)的一個重要研究發(fā)展方向。
地面無人車輛偵察系統(tǒng)主要分為基于雷達和基于圖像兩類。傳統(tǒng)方法大多采用基于雷達的技術(shù),這種方法在實際應用中偵察的區(qū)域范圍較廣,但是缺點在于戰(zhàn)場偵察雷達的分辨率一般比較低,目標的特征信息有限,很難從中獲得反映目標本身屬性的信息。因此,基于圖像的敏感目標檢測系統(tǒng)具有更實際的應用價值。
目標檢測[1]是計算機視覺中一個重要的研究課題。隨著計算機技術(shù)的迅猛發(fā)展,目標檢測與識別已在人臉識別、行人跟蹤、車牌識別、無人駕駛等領(lǐng)域獲得了廣泛的應用。傳統(tǒng)的目標檢測的方法一般分為三個階段:首先在給定的圖像上使用不同大小的滑動窗口選取候選區(qū)域;然后對這些候選區(qū)域提取特征;最后使用訓練好的分類器進行分類。但傳統(tǒng)的目標檢測存在兩個主要問題:1)基于滑動窗口的區(qū)域選擇是窮舉的策略,計算冗余;2)手工設(shè)計的特征缺乏魯棒性。這些弊端很大程度上限制了算法的應用。
深度神經(jīng)網(wǎng)絡(luò)的出現(xiàn)顛覆了傳統(tǒng)的特征提取方式,通過大量的數(shù)據(jù)訓練能夠自主學習有用的特征。目前主流的通用目標檢測方法主要分為兩種:兩階段方法和單階段方法。兩階段方法是指基于候選區(qū)域的目標檢測器如R-CNN[2]、SPP-Net[3]、Fast-CNN[4]等,這類方法需要對每個區(qū)域建議進行一次前向CNN實現(xiàn)特征提取,因此精度較高,但計算量較大,無法應用于實時檢測場景;單階段方法比如YOLO[5]、YOLOv2[6]、SSD[7]、YOLOv3[8]等。其中YOLO將檢測問題作為回歸問題來處理,因此速度非???,但由于YOLO隱含地將圖片分為s×s個網(wǎng)格,每個網(wǎng)格至多預測一個類別,因此YOLO對靠地很近的物體以及小目標群體檢測效果不是很好。YOLOv2借鑒了Faster RCNN[9]的思想,使用聚類算法產(chǎn)生anchors,雖mAP有所降低,但提高了recall,此外,YOLOv2加入了bn[10]層,使網(wǎng)絡(luò)收斂更快,精度更高。YOLOv3引入多個殘差網(wǎng)絡(luò)模塊[11],大大拓展了網(wǎng)絡(luò)的深度,并且使用多尺度預測的方式重新設(shè)計了darknet-53網(wǎng)絡(luò),改善了YOLOv2對小目標識別上的缺陷,其檢測的準確率高并且實時性好。
本文針對戰(zhàn)場敏感目標檢測中的高實時性和低漏檢率需求,選擇在速度和準確率上綜合表現(xiàn)最好的YOLOv3算法。雖然YOLOv3已取得了較好的實時檢測效果,但對于戰(zhàn)場敏感目標檢測來說仍有不足,主要表現(xiàn)在以下三個方面:1)YOLOv3的檢測精度低于Faster R-CNN;2)YOLOv3網(wǎng)絡(luò)的訓練采用了COCO[12]和VOC[13]數(shù)據(jù)集,引入的anchor不能適應敏感目標;3)數(shù)據(jù)集中難樣本識別率低。因此本文研究以YOLOv3網(wǎng)絡(luò)為基礎(chǔ)的改進算法。
2016年Redmon等提出的YOLO算法,將目標檢測任務轉(zhuǎn)換成回歸問題處理,大大加快檢測的速度,但因為它隱含地將圖片分割成s×s個網(wǎng)格,每個網(wǎng)格至多負責預測一個類別,因此,對小物體目標不友好。YOLOv2借鑒了Faster R-CNN的思想,使用了聚類算法產(chǎn)生anchors,使網(wǎng)絡(luò)擁有更好的召回率。YOLOv3在YOLOv2的基礎(chǔ)上提出,保持YOLOv2的檢測速度,并且大大提高了檢測的準確率,尤其在小目標的檢測與識別上。
YOLOv3首先使用k-means算法[14]在數(shù)據(jù)集上產(chǎn)生聚類先驗框(YOLOv3默認的聚類中心有9個,每個尺度分配3個框)。不同于YOLOv2采用的網(wǎng)絡(luò)結(jié)構(gòu)Darknet19,YOLOv3重新設(shè)計了更深的網(wǎng)絡(luò)結(jié)構(gòu)Darknet-53,它一方面借鑒了殘差網(wǎng)絡(luò)的思想,大大增加了網(wǎng)絡(luò)的深度的同時避免訓練過程中產(chǎn)生梯度消失的現(xiàn)象;另一方面,它借鑒了FPN[15]的思想,融合三種不同尺度的預測特征圖,這三個特征圖的規(guī)模分別為13×13、26×26和52×52。由于后兩個特征圖中每個網(wǎng)格對應原圖的區(qū)域更小,且它們處在網(wǎng)絡(luò)較低層,因此,模型可以綜合利用低層信息以及高層語義信息,從而改進模型對小目標的檢測性能。
在深度學習中數(shù)據(jù)集質(zhì)量的高低直接影響了最終檢測效果的好壞,同時由于網(wǎng)絡(luò)要充分學習待檢測目標的特征,這便需要大量的樣本。由于缺乏現(xiàn)有公開的戰(zhàn)場敏感目標檢測數(shù)據(jù)集,本文在實驗中采用手工標注制作數(shù)據(jù)集的方法。我們采集了16000張圖片,樣本示例如圖1所示,我們?yōu)槊糠鶊D像標注其中四個類別:油桶、車、迷彩士兵和彈藥箱,經(jīng)統(tǒng)計,數(shù)據(jù)集中一共包括7680個車目標、17018個士兵目標、8870個油桶目標和6476個彈藥箱目標。每個標注包括類別索引和目標的坐標(中心點坐標、包圍框的寬、高)。采集的原始圖片的分辨率為1920×1080。我們?yōu)閿?shù)據(jù)集命名為sensitive-16k。
圖1 數(shù)據(jù)集中部分樣本展示
我們將數(shù)據(jù)集劃分為三部分,其中12k張圖片用于訓練,1k張用于驗證,3k張用于測試,在數(shù)據(jù)增強方面,我們對訓練集中的圖片執(zhí)行裁剪、翻轉(zhuǎn)等操作以生成更多的樣本。
YOLOv3借鑒 了Faster R-CNN中anchors的 機制,采用K-means對數(shù)據(jù)集中的標簽進行聚類得到先驗框,先驗框的設(shè)計影響目標檢測的速度與精度。YOLOv3的訓練集是VOC和COCO,考慮到訓練集分布的不同,我們使用K-means對sensitive-16k數(shù)據(jù)集中的標簽進行聚類,從而得到相應的初始候選框的參數(shù)。聚類過程中我們采用的距離度量公式如下:
本文按照不同的候選邊框數(shù)量k進行聚類后,最終得到的對應交并比如圖2所示。綜合檢測速度和檢測準確性的考量,我們選取候選框數(shù)量為9,具體的參數(shù)為(24,60),(82,46),(54,127),(95,162),(148,105),(318,152),(509,305),(248,646),(1120,720)。我們在三個預測尺度上分別分配三個候選框。
圖2 不同k取值對應的交并比
對于本文所研究的敏感目標檢測問題,網(wǎng)絡(luò)在訓練過程中需要考慮三個方面:坐標預測損失、置信度預測損失以及類別預測損失,其中置信度又分為包含目標置信度和不包含目標置信度兩部分??紤]到戰(zhàn)場敏感目標檢測問題的特性,我們認為,高召回率比高準確率更重要,因此,我們降低了不含目標置信度的權(quán)重,具體四部分損失函數(shù)的公式如下:
1.5 觀察指標 ①兩組患者治療前、后激素水平變化:包括E2、FSH、LH、孕酮(T)、催乳素(PRL)和AMH,分別于治療前、后抽取患者外周靜脈血5 ml,離心10 min分離血清,置于-20℃下保存待測,采用化學發(fā)光法測定E2、FSH、LH、T、PRL和AMH含量;②觀察兩組患者治療前、后雙側(cè)卵巢AFC數(shù)變化:采用美國GE公司彩色多普勒超聲診斷儀進行陰道超聲檢查;③觀察兩組患者治療前、后生活質(zhì)量情況:采用健康狀況調(diào)查量表評價,包括生理健康、情感職能、生理職能和生理功能4個量表,每個量表100分,評分越高生活質(zhì)量越好;④觀察兩組患者成功排卵和妊娠情況。
上述式子中,K表示當前采用的預測圖的尺寸,文中一共選用了三種尺寸,分別是13×13,26×26和52×52,M表示的是每一個網(wǎng)格所預測的目標邊框的數(shù)量,本文選取的是2。式(2)是包圍框損失,它包括中心點坐標預測損失和包圍框?qū)?、高預測損失,用于判斷第i個網(wǎng)格中第j個包圍框是否負責預測這個object,若是,為1,否則為0。λcoord為坐標預測的懲罰系數(shù),文中設(shè)置為5。由于小框的偏移量比大框的偏移量更無法忍受,因此,用(2-wi×hi)來平衡大小框的損失;式(3)和式(4)分別為包含物體和不包含物體的置信度損失,為了使檢測獲得更高的召回率,我們使不包含目標時置信度的懲罰系數(shù)λnoobj為一個更小的值0.3;式(5)為類別預測損失,式中判斷是否有目標的中心落入該網(wǎng)格中,若有,該網(wǎng)格就負責預測該目標的類別。對于包圍框預測,采用誤差平方和損失衡量,對于置信度預測損失,以及類別預測損失,采用交叉熵損失函數(shù)進行衡量。
實驗中我們采用手工標注的sensitive-16k數(shù)據(jù)集,并對其執(zhí)行數(shù)據(jù)增強。本文的實驗環(huán)境配置如表1所示。
表1 本文實驗相關(guān)配置
訓練中,我們使用小批量隨機梯度下降法,批次大小為16,動量為0.9,權(quán)重衰減為0.0002,學習率初始值設(shè)置為0.025,我們采用了一種“多”學習速率策略,其中每次迭代的初始速率乘以其中power為0.9。
網(wǎng)絡(luò)的訓練分為三階段,第一階段預訓練分類網(wǎng)絡(luò),這一階段分為兩個步驟,首先使用低分辨率(224×224)的已標注的敏感目標數(shù)據(jù)集預訓練分類網(wǎng)絡(luò),然后將網(wǎng)絡(luò)調(diào)整到448×448,繼續(xù)訓練分類網(wǎng)絡(luò)。第二階段為訓練檢測網(wǎng)絡(luò),使用第一階段預訓練的權(quán)重初始化檢測網(wǎng)絡(luò)的部分權(quán)重,再在敏感目標數(shù)據(jù)集上進行微調(diào)。
本節(jié)將從初始候選框選取、損失函數(shù)的改進兩部分分析實驗設(shè)置對實驗結(jié)果的影響。
4.2.1 初始候選框選擇對實驗結(jié)果的影響
為了對比使用不同的初始候選框?qū)δP托阅艿挠绊?,首先使用YOLOv3原始的候選框參數(shù)進行訓練,接著按照我們的數(shù)據(jù)集分別聚類得到6個邊框和9個邊框進行訓練,訓練集使用sensitve-16k,最終得到的模型在測試集上的性能見表2。
表2 初始候選邊框?qū)δP托阅艿挠绊?/p>
可見,重新聚類得到我們的候選框?qū)δP驮趕ensitive-16k數(shù)據(jù)集的性能表現(xiàn)有很好的提升。
4.2.2 改進的損失函數(shù)對網(wǎng)絡(luò)性能的影響
考慮到敏感目標的特殊性,更改了損失函數(shù)中的不含目標置信度的懲罰項,以使網(wǎng)絡(luò)更傾向于認為網(wǎng)格中含有目標,我們放棄了部分的準確度而選擇了更高的召回率。
與改進損失函數(shù)的目的一樣,為了更好地避免漏檢,調(diào)整置信度閾值為0.3,使網(wǎng)絡(luò)能夠輸出更多檢測框。得利于模型學習的是整張圖片的特征,網(wǎng)絡(luò)輸出的假陽性很低。
表3顯示了我們的損失函數(shù)中不同懲罰項系數(shù)對模型的召回率和準確度的影響,最終確定選擇懲罰項為系數(shù),以在召回率和準確度之間取得一個較好的平衡。
表3 不同懲罰項系數(shù)對模型準確度和召回率的影響
最終我們的模型和原始YOLOv3模型在測試集上的檢測性能如表4所示。圖3展示了我們在測試集上的部分測試效果。
表4 在sensitive-16k數(shù)據(jù)集上測試結(jié)果
圖3 檢測結(jié)果展示
本文通過改進YOLOv3,使用K-means算法聚類初始目標邊框、微調(diào)損失函數(shù)、調(diào)整閾值以及預訓練分類網(wǎng)絡(luò)進行訓練檢測網(wǎng)絡(luò)。實驗結(jié)果表明,通過以上方法得到的檢測模型對于復雜場景下的敏感目標可保證非常高的召回率以及較高的檢測準確度。但是本文仍存一些有待改進的地方:為了保證召回率,造成了部分的假陽性效果,損失函數(shù)微調(diào)中使用的懲罰項系數(shù)是我們手動設(shè)置的,如何設(shè)置更優(yōu)的參數(shù),以在保證召回率的同時得到更高的準確度,未來會將解決上述問題作為重點的研究方向;由于數(shù)據(jù)集數(shù)據(jù)的缺乏,我們的模型仍有待被更加充足的數(shù)據(jù)集進行訓練以得到更魯棒、更精確的模型。