李福祿, 吉 喆, 段修生
(1.石家莊鐵道大學(xué) 機(jī)械工程學(xué)院,河北 石家莊 050043;2.河北交通職業(yè)技術(shù)學(xué)院 電氣與信息工程系,河北 石家莊 050035)
身管靶標(biāo)位置識(shí)別與跟蹤作為身管位姿解算的先決條件,其識(shí)別效果和動(dòng)態(tài)跟蹤精度決定了身管位姿解算的最終精度。實(shí)際情況中,為了保證身管靶標(biāo)的識(shí)別效果和跟蹤精度,往往選取棋盤(pán)標(biāo)志物、圓形標(biāo)志物等形狀規(guī)則的物體作為身管靶標(biāo)。近些年有諸多學(xué)者對(duì)此開(kāi)展了一系列研究,蘇建東等[1]提出一種基于單目視覺(jué)的平面靶標(biāo)姿態(tài)測(cè)量模型,但動(dòng)態(tài)跟蹤識(shí)別效果不理想,存在一定的局限性。齊寰宇等[2]提出火炮身管指向測(cè)量方法,但由于靶標(biāo)識(shí)別算法采用霍夫變換檢測(cè)原理,在靶標(biāo)識(shí)別精度滿(mǎn)足的同時(shí),動(dòng)態(tài)跟蹤相對(duì)滯后。另外還有一些學(xué)者采用CCD、經(jīng)緯儀、全站儀、激光跟蹤儀等方法,方法相對(duì)繁瑣且動(dòng)態(tài)跟蹤精度不高[3-8]。
隨著近些年基于深度學(xué)習(xí)的圖像處理與目標(biāo)識(shí)別技術(shù)的發(fā)展,越來(lái)越多的領(lǐng)域?qū)⑸疃葘W(xué)習(xí)技術(shù)與計(jì)算機(jī)視覺(jué)技術(shù)進(jìn)行融合,從而達(dá)到更好的機(jī)器識(shí)別效果。尹靖涵等[8]提出了一種基于深度學(xué)習(xí)的交通標(biāo)志識(shí)別模型[9],將計(jì)算機(jī)視覺(jué)與深度學(xué)習(xí)算法進(jìn)行融合,有效地解決了霧霾、雨雪等惡劣天氣下小型交通標(biāo)志識(shí)別精度低、漏檢嚴(yán)重的問(wèn)題。其與實(shí)際靶標(biāo)圖像提取時(shí)情況相近,需通過(guò)單目攝像機(jī)采集不同姿態(tài)下動(dòng)態(tài)身管靶標(biāo)數(shù)據(jù),因靶標(biāo)相對(duì)較小,且單目視覺(jué)系統(tǒng)采集精度受目標(biāo)動(dòng)態(tài)變化影響較大[9-10]。受其啟發(fā),提出一種基于YOLOv5深度學(xué)習(xí)算法的動(dòng)態(tài)身管靶標(biāo)識(shí)別跟蹤方法。經(jīng)過(guò)實(shí)驗(yàn)驗(yàn)證,基于該方法的身管靶標(biāo)實(shí)時(shí)識(shí)別跟蹤效果良好。
如圖1所示,YOLOv5包括:Input(輸入端)、Backbone(主干網(wǎng)絡(luò))、Neck(頸部網(wǎng)絡(luò))基本模塊。
圖1 YOLOv5網(wǎng)絡(luò)架構(gòu)與組件圖
(1)Input模塊。Input端包括Mosaic數(shù)據(jù)增強(qiáng)、自適應(yīng)錨框計(jì)算、圖片尺寸處理3部分。Mosaic數(shù)據(jù)增強(qiáng):通過(guò)對(duì)4張樣本圖像進(jìn)行隨機(jī)縮放、隨機(jī)裁剪、隨機(jī)排布的方式進(jìn)行拼接,豐富了樣本圖像的細(xì)節(jié)數(shù)據(jù)。自適應(yīng)錨框計(jì)算:在YOLOv5模型訓(xùn)練前,需要預(yù)先設(shè)定初始錨框,然后根據(jù)初始錨框預(yù)測(cè)輸出錨框,通過(guò)計(jì)算對(duì)比輸出錨框與真實(shí)錨框的差值來(lái)更新模型網(wǎng)絡(luò)參數(shù)。通過(guò)增加自適應(yīng)錨框計(jì)算代碼改善了以往錨框值單獨(dú)計(jì)算存在訓(xùn)練結(jié)果不優(yōu)的情況,對(duì)樣本圖片進(jìn)行尺寸處理,保證所有樣本的輸入尺寸統(tǒng)一。
(2)Backbone。Backbone主要由Focus、Bottleneck CSP模塊構(gòu)成。Focus負(fù)責(zé)把數(shù)據(jù)切分為4份,每份數(shù)據(jù)都是相當(dāng)于2倍下采樣得到的,然后在channel維度進(jìn)行拼接,最后進(jìn)行卷積操作。Bottleneck CSP通過(guò)對(duì)基礎(chǔ)層的特征映射圖進(jìn)行復(fù)制、dense block處理等操作,將基礎(chǔ)層特征圖進(jìn)行分離,在很大程度上解決了梯度消失帶來(lái)的影響,并且能夠?qū)崿F(xiàn)特征的傳播和復(fù)用,降低了網(wǎng)絡(luò)模型的參數(shù)冗余,提高了模型計(jì)算速度和識(shí)別準(zhǔn)確率。
(3)Neck。YOLOv5的Neck模塊應(yīng)用了Path-Aggregation Network路徑聚合網(wǎng)絡(luò)(Pannet),如圖2所示,在從上到下的金字塔網(wǎng)絡(luò)中(FPN),通過(guò)上采樣操作處理信息傳遞過(guò)程得到預(yù)測(cè)特征圖。
圖2 路徑聚合網(wǎng)絡(luò)Path-Aggregation Network
Pannet是基于Mask R-CNN和FPN搭建的,增強(qiáng)了信息傳遞效能。通過(guò)優(yōu)化Pannet特征提取器的FPN結(jié)構(gòu),改善了特征層自上而下的傳遞方式。在每個(gè)路徑中,都以前一級(jí)的特征映射作為當(dāng)前路徑的輸入,并采用卷積的方式進(jìn)行處理。然后將特征輸出送入FPN結(jié)構(gòu)的特征圖中,給下層結(jié)構(gòu)提供輸入。同時(shí),以自適應(yīng)特征池化(adaptive feature pooling)方法,重現(xiàn)特征層和候選區(qū)的中斷信息,并將其合并以防分配混亂。
損失函數(shù)包括:分類(lèi)損失(classification loss)用來(lái)預(yù)測(cè)模型分類(lèi)誤差,定位損失(localization loss)用來(lái)預(yù)測(cè)邊界框與GT之間的誤差,置信度損失(confidence loss),用來(lái)預(yù)測(cè)錨框的目標(biāo)性[11]。為了選擇合適的損失函數(shù),對(duì)YOLO常用的集中損失函數(shù)進(jìn)行了對(duì)比分析。
圖3為基于IOU、GIOU、DIOU識(shí)別精度對(duì)比,使用3種損失函數(shù)下的區(qū)別,尤其是當(dāng)目標(biāo)錨框包括預(yù)測(cè)框時(shí),DIOU可以更好地區(qū)分不同情況的差異。
圖3 目標(biāo)錨框包括預(yù)測(cè)框的3種情況
從表1可以看出,基于IOU和GIOU的損失函數(shù),模型無(wú)法區(qū)分3種情況,基于DIOU損失函數(shù)的網(wǎng)絡(luò)模型可以區(qū)分出。圖4、圖5為基于以上3種損失函數(shù)模型收斂速度對(duì)比,可以看出,相對(duì)于GIOU作為損失函數(shù),DIOU有著更加優(yōu)秀的收斂速度。
表1 3種情況下?lián)p失函數(shù)指數(shù)
圖4 以GIOU作為損失函數(shù)的收斂情況
圖5 以DIOU作為損失函數(shù)的收斂情況
YOLOv5采用二元交叉熵?fù)p失函數(shù)計(jì)算類(lèi)別概率和目標(biāo)置信度得分的損失,并且使用CIOU_Loss作為bounding box回歸的損失。CIOU在DIOU的基礎(chǔ)上增加了2個(gè)參數(shù)
(1)
式中,v為錨框?qū)挾群透叨鹊谋壤旌隙取?/p>
(2)
(3)
如果進(jìn)一步對(duì)CIOU進(jìn)行優(yōu)化,需要進(jìn)行以下操作
(4)
(5)
式中,w、h屬于[0,1],為了避免梯度爆炸造成計(jì)算量大幅增加的情況,一般令h/w2+h2=1。
對(duì)IOU、GIOU、CIOU作為損失函數(shù)的回歸情況進(jìn)行對(duì)比,如圖6所示。
圖6 回歸情況對(duì)比
DIOU Loss雖然比GIOU Loss和CIOU Loss具有更快的收斂速度,但CIOU Loss考慮的因素更多,能夠更充分地描述錨框的回歸。
選取MAKE SENSE環(huán)境制作數(shù)據(jù)集,首先將需要的樣本數(shù)據(jù)集導(dǎo)入MAKE SENSE環(huán)境,并精準(zhǔn)框選出線性靶標(biāo)各個(gè)標(biāo)識(shí)圓的位置,最終得到帶有標(biāo)識(shí)圓位置信息的labels文件。
在labels文件中從左到右,每一列分別代表目標(biāo)類(lèi)別,x_center、y_center、寬度和高度[12],由于實(shí)際情況中只專(zhuān)注于身管靶標(biāo)的跟蹤識(shí)別,所以只需設(shè)置一類(lèi)記為0。圖7所示的靶標(biāo)位置示意了YOLOv5的labels標(biāo)注文件所需要的目標(biāo)位置信息,其中圖像的寬度記為width,高度記為height,目標(biāo)的左上角坐標(biāo)記為(xmin,ymin),目標(biāo)右下角坐標(biāo)記為(xmax,ymax),目標(biāo)中心坐標(biāo)記為(x_center,y_center)。由于錨框坐標(biāo)必須采用規(guī)范化的xywh格式(從0到1),所以需要通過(guò)公式的計(jì)算才能得到labels標(biāo)注文件的數(shù)據(jù),計(jì)算公式為
圖7 樣本標(biāo)注格式示意圖
(6)
(7)
(8)
(9)
Anchor給出了目標(biāo)寬高的初始值,需要回歸的是目標(biāo)真實(shí)寬高與初始寬高的偏移量,即預(yù)測(cè)框中心點(diǎn)相對(duì)于對(duì)應(yīng)網(wǎng)格(gridcell)左上角位置的相對(duì)偏移值。為了將邊界框中心點(diǎn)約束在當(dāng)前網(wǎng)格中,采用sigmoid函數(shù)處理偏移值,使預(yù)測(cè)偏移值在(0,1)范圍內(nèi),目標(biāo)框回歸示意圖如圖8所示。
圖8 目標(biāo)框回歸示意圖
由于原始的框方程式寬度和高度完全不受限制,所以可能導(dǎo)致失控的梯度、不穩(wěn)定、NaN損失并最終完全失去訓(xùn)練[13]。通過(guò)sigmoid所有模型輸出來(lái)修補(bǔ)此錯(cuò)誤,同時(shí)還要確保中心點(diǎn)保持不變。通過(guò)設(shè)置當(dāng)前的方程式,將錨點(diǎn)的倍數(shù)從最小0限制為最大4,并將錨框-目標(biāo)匹配更新為基于寬度-高度的倍數(shù),設(shè)置標(biāo)稱(chēng)上限閾值超參數(shù)為4.0。采用跨鄰域網(wǎng)格的匹配策略,從而得到更多的正樣本,通過(guò)從當(dāng)前網(wǎng)格的上、下、左、右的4個(gè)網(wǎng)格中找到離目標(biāo)中心點(diǎn)最近的2個(gè)網(wǎng)格,再加上當(dāng)前網(wǎng)格共3個(gè)網(wǎng)格進(jìn)行匹配,從而加速收斂。
身管靶標(biāo)模型訓(xùn)練環(huán)境為:Windows10操作系統(tǒng)、NVIDA GeForce GTX 3050 Ti GPU、AMD Ryzen 75800H@3.2 Hz CPU、16 GB RAM、軟件環(huán)境Pytorch1.10、實(shí)驗(yàn)語(yǔ)言Python3.10、運(yùn)行環(huán)境Pycharm2021.3。經(jīng)過(guò)300輪次的訓(xùn)練得到了靶標(biāo)識(shí)別跟蹤模型,不同姿態(tài)下模型的動(dòng)態(tài)識(shí)別跟蹤效果如圖9所示。
圖9 訓(xùn)練后模型對(duì)線性身管靶標(biāo)樣本的檢測(cè)效果
為了更好地對(duì)實(shí)驗(yàn)結(jié)果進(jìn)行分析,采用YOLOv5模型的數(shù)據(jù)可視化模塊對(duì)靶標(biāo)訓(xùn)練模型進(jìn)行可視化分析,包括對(duì)訓(xùn)練模型的置信度和F1分?jǐn)?shù)的關(guān)系、識(shí)別精準(zhǔn)率與召回率關(guān)系、識(shí)別準(zhǔn)確率和置信度關(guān)系、以及錨框跟蹤損失進(jìn)行可視化處理。對(duì)所涉及參數(shù)指標(biāo)及關(guān)系進(jìn)行介紹并對(duì)實(shí)驗(yàn)結(jié)果展開(kāi)分析。
如圖10所示為訓(xùn)練模型F1分?jǐn)?shù)、精準(zhǔn)率(precision)、回歸率(recall)、置信度(confidence)等參數(shù)[14]之間的關(guān)系曲線,由于只針對(duì)靶標(biāo)進(jìn)行專(zhuān)一性單類(lèi)目標(biāo)識(shí)別跟蹤,僅需分析身管靶標(biāo)的模型識(shí)別參數(shù),因此只需呈現(xiàn)一條數(shù)據(jù)曲線。F1分?jǐn)?shù)是分類(lèi)效果的衡量指標(biāo),在圖10(a)中,0.775是參數(shù)節(jié)點(diǎn),在0.775之前隨著置信度上調(diào),F(xiàn)1分?jǐn)?shù)逐漸上升,最大值達(dá)到0.99的分類(lèi)精確度,之后開(kāi)始下降。在圖10(b)中,通過(guò)設(shè)置置信度參數(shù)到0.833,分類(lèi)精準(zhǔn)率可達(dá)到1,之后分類(lèi)精準(zhǔn)率得到保持。圖10(c)的下圍面積反映了模型的分類(lèi)器性能,圖10(d)中數(shù)據(jù)回歸率達(dá)到了0.993,說(shuō)明該訓(xùn)練學(xué)習(xí)器表現(xiàn)良好。綜上所述,該訓(xùn)練模型的置信率配置節(jié)點(diǎn)于0.80左右可以實(shí)現(xiàn)良好的模型訓(xùn)練結(jié)果,達(dá)到0.993的識(shí)別效果。
圖10 模型參數(shù)特征曲線
將靶標(biāo)跟蹤模型數(shù)據(jù)導(dǎo)出,對(duì)數(shù)據(jù)進(jìn)行可視化處理,如圖11所示為300輪次訓(xùn)練的靶標(biāo)回歸損失數(shù)據(jù)。YOLOv5使用GIOU Loss作為bounding box的損失,box推測(cè)為GIoU損失函數(shù)均值,訓(xùn)練損失率基本在0.04~0.10范圍之內(nèi),訓(xùn)練模型達(dá)到了錨框精準(zhǔn)度要求;目標(biāo)檢測(cè)Loss均值在0.04~0.08之間;分類(lèi)Loss均值為0;分類(lèi)精度在0.9~1之間;回歸參數(shù)0.9~1之間;mAP基本處于0.9~1.0之間。從結(jié)果可以看出,本實(shí)驗(yàn)有著良好的回歸效果,靶標(biāo)錨框跟蹤精度達(dá)到0.95,分類(lèi)跟蹤準(zhǔn)確率達(dá)到0.993,驗(yàn)證了該方法的有效性和可行性。
圖11 300訓(xùn)練輪次中靶標(biāo)錨框回歸損失
為解決身管靶標(biāo)動(dòng)態(tài)識(shí)別跟蹤檢測(cè)問(wèn)題,融合深度學(xué)習(xí)相關(guān)理論和技術(shù),提出了一種基于YOLOv5的身管靶標(biāo)檢測(cè)方法,經(jīng)過(guò)實(shí)驗(yàn),證明該方法切實(shí)可行,動(dòng)態(tài)識(shí)別跟蹤精度達(dá)到了實(shí)際需求。該方法較現(xiàn)有的身管靶標(biāo)識(shí)別跟蹤方法最大的改進(jìn)在于動(dòng)態(tài)情況下跟蹤檢測(cè)的實(shí)時(shí)性,以及靶標(biāo)錨框動(dòng)態(tài)跟蹤精度。由于實(shí)際情況中身管靶標(biāo)與攝像機(jī)的距離在5~10 m范圍,因而不需要考慮遮擋對(duì)識(shí)別效果的影響。今后仍需要將該方法的原理與身管靶標(biāo)后續(xù)的角點(diǎn)檢測(cè)、位姿解算相結(jié)合,深入研究尺度變換、畸變和數(shù)據(jù)采集幀率對(duì)動(dòng)態(tài)識(shí)別跟蹤效果的影響,增加方法的普遍適用性。