郭曉靜,隋昊達
中國民航大學 電子信息與自動化學院,天津300300
機場跑道異物(Foreign Object Debris,F(xiàn)OD)指的是任何不屬于機場道面,卻因各種原因被遺留在機場運行區(qū)域的外來物質,典型的有金屬器件、機械工具、防水塑料布、碎石塊、瓶子、動植物等[1]。機場跑道異物會對航空器的安全造成巨大危害,許多航空事故都是由于跑道異物引起的,因此對機場跑道異物檢測算法的研究具有重要價值。
機場的外界環(huán)境是不斷變化的,出現(xiàn)在跑道上的異物類型是不確定的,如何在變化的背景條件下有效檢測不確定的異物目標是需要解決的關鍵問題。傳統(tǒng)的FOD 目標檢測算法主要采用人工設計的特征來進行異物檢測,需要運用大量的先驗知識和技巧來設計一個特征提取器[2]。但由于外部光照條件的變化、異物類型的復雜性以及視頻設備的缺陷等因素,道面背景及異物目標的圖像特征通常是不確定的,對于某種特定背景及異物目標,或許研究出的算法具有較好的檢測效果,而當約束條件改變,尤其當主要的異物目標圖像特征發(fā)生變化時,算法就會失去效果[3]。
與傳統(tǒng)的目標檢測算法不同,基于卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)的目標檢測算法可以通過已有數(shù)據(jù)自動學習目標特征,相比于HOG、SIFT、LBP 等特征有更好的表達效果,可以適應多樣化背景與目標類型[4]。基于CNN 的目標檢測算法可以分為兩類:一類是以Fast-RCNN(Region-Conventional Neural Network)[5]、Faster-RCNN[6]、Mask R-CNN[7]等為代表的基于候選區(qū)域的目標檢測算法,這類算法通常具有良好的檢測精度,但普遍存在檢測速度較慢的缺點;另一類是以YOLO(You Only Look Once)[8]、SSD(Single Shot Multi-box Detector)[9]、YOLO9000[10]、YOLOv3[11]等為代表的基于回歸的目標檢測算法,這類算法的優(yōu)點是實時性好,缺點是檢測精度相對偏低。
基于CNN 的目標檢測算法可以有效檢測背景復雜、種類繁多的異物目標。文獻[12]首次將其應用于機場跑道異物檢測領域,提出一種基于候選區(qū)域的FOD目標檢測算法,在沒有考慮檢測速度的情況下取得了較好的檢測結果。文獻[13]提出了一種基于改進區(qū)域候選網(wǎng)絡(Region Proposal Network,RPN)和空間變換網(wǎng)絡(Spatial Transformer Network,STN)的FOD 目標檢測算法,取得了比Faster-RCNN更好的檢測效果。文獻[14]使用加權金字塔網(wǎng)絡(Weighted Pyramid Network,WPN)進行目標檢測,通過不同比例的多尺度層生成區(qū)域建議,提高了對FOD目標的檢測精度。文獻[15]先采用Faster R-CNN 生成輸入圖像的候選區(qū)域,然后使用DenseNet 網(wǎng)絡代替?zhèn)鹘y(tǒng)的VGG16Net 網(wǎng)絡進行特征提取,減少了網(wǎng)絡參數(shù),提高了對小尺度FOD目標的檢測精度。
上述FOD目標檢測算法均采用基于候選區(qū)域的方法,檢測速度普遍較慢,無法滿足實時性要求。比較而言,YOLOv3 既可以保證檢測精度,也可以保證檢測速度,且針對小目標物體的檢測,國內外諸多研究者提出了不同的改進方案。鞠默然等[16]在YOLOv3 的基礎上對模型的網(wǎng)絡結構進行了改進,有效提高了對小目標物體的檢測能力。鄒承明等[17]通過改進YOLOv3 的損失函數(shù),有效解決了其對小目標物體檢測邊界框定位不準確的問題。金瑤等[18]針對城市道路視頻中的小像素目標,提出了一種改進YOLOv3的卷積神經(jīng)網(wǎng)絡Road_Net檢測方法,能有效檢測出諸如紙屑、石塊等在視頻中相對路面較小像素的目標。本文綜合考慮YOLOv3 在小目標檢測領域的各種優(yōu)化方式,提出一種基于改進YOLOv3的FOD目標檢測算法,主要工作如下:
(1)改進YOLOv3 網(wǎng)絡結構。使用Darknet-49[19]代替Darknet-53作為特征提取網(wǎng)絡,并增加特征融合的尺度以便獲取更多的小目標特征信息。
(2)改進K-means聚類算法以獲取更加合理的先驗框尺寸,利用基于馬爾科夫鏈蒙特卡羅采樣(Markov Chain Monte Carlo sampling,MCMC)的K-means++算法[20-21]確定初始聚類中心。
(3)引入GIoU回歸損失函數(shù)[22],提高算法的準確率和目標邊界框的定位精度。
YOLOv3的網(wǎng)絡結構如圖1所示,主要包括Darknet-53網(wǎng)絡與YOLO 層兩部分。Darknet-53 作為骨干網(wǎng)絡主要用于提取圖像特征,它是全卷積網(wǎng)絡,包含53個卷積層,并引入了殘差結構。當輸入圖像尺寸為416×416時,Darknet-53 特征提取網(wǎng)絡輸出三個尺度的特征圖,大小分別為13×13、26×26、52×52。將三個不同尺度的特征圖通過FPN(Feature Pyramid Network)[23]進行融合,利用多尺度策略幫助網(wǎng)絡模型同時學習不同層次的特征信息,最后將融合后的特征輸入YOLO層進行類別預測和邊界框回歸。

圖1 YOLOv3網(wǎng)絡結構示意圖
YOLOv3采用先驗框(anchor box)機制來預測目標邊界框,對標注邊界框尺寸進行K-means聚類得到一組尺寸固定的初始候選框。先驗框尺寸與特征圖尺度大小成反比,在較大的特征圖上應用較小的先驗框,用于檢測較小的目標,在較小的特征圖上應用較大的先驗框,用于檢測較大的目標。如表1所示,YOLOv3為每種特征圖尺度設定3種先驗框尺寸,在COCO數(shù)據(jù)集上聚類共得到9種尺寸的先驗框。

表1 YOLOv3的先驗框尺寸
對于輸入圖像,YOLOv3按特征圖尺度將其劃分為S×S個網(wǎng)格,當目標的中心位置落在某個網(wǎng)格中時,由該網(wǎng)格負責預測目標的邊界框信息,輸出B個邊界框的相對位置(tx,ty)、相對尺寸(tw,th)及置信度信息。其中,置信度用于衡量邊界框內是否包含目標以及預測邊界框定位的準確性,用于判斷邊界框是否應該保留,其計算公式為:

式中,Pr(object)用于判斷預測邊界框中是否包含待檢測目標,包含時為1,不包含為0,IoU為預測邊界框和標注邊界框的交并比。
得到全部預測邊界框后,設置閾值將置信度較低的邊界框去除,其余邊界框經(jīng)過非極大值抑制(Non-Maximum Suppression,NMS)得到如圖2所示的目標邊界框。

圖2 目標框位置預測示意圖
對每個網(wǎng)格,根據(jù)其坐標偏移(cx,cy)和先驗框尺寸pw、ph對實際預測框的中心位置(bx,by)和尺寸bw、bh進行計算:

式中,tx、ty為邊界框中心點相對該網(wǎng)格邊界的偏移量,tw、th為邊界框的尺寸相對于先驗框的比例。
針對原YOLOv3 對遠距離多個小目標物體檢測存在的定位精度偏低和漏檢問題,從網(wǎng)絡結構、K-means聚類算法和損失函數(shù)三個方面進行改進。
YOLOv3 使用Darknet-53 網(wǎng)絡進行特征提取,使用的是步長為2、大小為3×3的卷積核來進行下采樣,雖然感受野較大,但是犧牲了空間分辨率,導致深層網(wǎng)絡的小目標信息丟失。
本文工作是檢測機場跑道異物,如金屬器件、混凝土塊、塑料等,這些物體均具有小目標的特點。對小目標物體的檢測更依賴于淺層特征,為了更加充分地利用淺層特征信息,本文使用運算復雜度相對更低的Darknet-49 作為特征提取網(wǎng)絡。Darknet-49 網(wǎng)絡由5 個殘差塊組成,每個殘差塊間使用1×1的卷積核來降低維數(shù),并在第一個卷積層上使用線性激活函數(shù),以減少對圖像信息的損壞。
Darknet-49 對輸入圖像進行5 次下采樣,每次下采樣得到一個尺度的特征圖。具有大分辨率的淺層特征圖包含更多的位置信息,具有小分辨率的深層特征圖包含更多的語義信息。將深層殘差塊采樣得到的特征圖與淺層殘差塊采樣得到的特征圖進行融合,可以增強淺層特征的語義信息,同時在最淺層的特征圖上給目標分配更為準確的邊界框,提高對小目標物體的檢測性能。因此,本文在YOLOv3原有3個檢測尺度的基礎上進行擴展,增加一個尺度的特征圖進行融合。
改進后的網(wǎng)絡結構如圖3 所示,其中Convolution set包含3次卷積操作,upsampling是步長為2的上采樣,Concatenate 是深層特征與淺層特征的拼接。當輸入圖像大小為416×416 時,在Darknet-49 網(wǎng)絡中進行5 次下采樣,得到最底層13×13 尺度的特征圖,對該特征圖進行上采樣,然后與26×26 尺度的特征圖進行拼接,融合后的特征圖再進行上采樣,與上一尺度的特征圖進行拼接,直至完成4 個尺度特征圖的融合。最后,提取融合后13×13、26×26、52×52、104×104 四個尺度的特征圖對FOD 位置和類別進行預測。改進后的網(wǎng)絡結構可以防止有效信息的丟失,提高對小目標FOD的檢測精度。
K-means 聚類算法采用隨機選取的方式確定初始聚類中心,隨機確定的初始聚類中心位置會影響后續(xù)的聚類效果。為避免隨機初始化帶來的缺陷,本文使用馬爾科夫鏈蒙特卡羅采樣(Markov Chain Monte Carlo sampling,MCMC)算法進行初始化,以選取更加合理的初始聚類中心,得到更具代表性的先驗框尺寸。
首先,在包含n個數(shù)據(jù)點的標注邊界框尺寸數(shù)據(jù)集X中,隨機選取一個數(shù)據(jù)點作為初始聚類中心,計算其與X中每一個數(shù)據(jù)點x的距離dx。
由于采用歐氏距離來度量數(shù)據(jù)點間的相似性,無法準確反映先驗框尺寸與標注邊界框尺寸的接近程度,因此,將樣本到聚類中心距離的判定方法重新定義為:

式中,box表示標注的目標框,centroid表示聚類得到的先驗框,IoU(box,centroid)表示標注邊界框與先驗框的交并比。

圖3 改進的網(wǎng)絡結構示意圖
然后,使用q(x)分布下的Metropolis-Hasting 算法構造一個長度為m的馬爾科夫鏈,以p(x)分布進行采樣,取最后k-1 個點作為初始聚類中心。其中q(x)和p(x)分別為:

最后,對數(shù)據(jù)集中的每個樣本,計算其到k個初始聚類中心的距離,使用K-means 算法進行聚類,得到k個先驗框尺寸信息。
使用改進后的算法對FOD數(shù)據(jù)集中的樣本進行聚類分析,針對四種尺度的特征圖,共得到12種尺寸的先驗框,其結果如表2所示。

表2 改進YOLOv3的先驗框尺寸
YOLOv3中的損失函數(shù)由坐標回歸損失、置信度損失和分類損失組成,其中坐標回歸損失使用均方誤差(Mean Square Error,MSE)進行計算,置信度損失和分類損失使用交叉熵進行計算。
對于坐標回歸損失函數(shù),使用均方誤差進行計算會存在對目標尺度敏感的問題,目標尺度的變化會影響坐標回歸的準確性。而IoU 具有目標尺度上的魯棒性,更能體現(xiàn)回歸得到的目標邊界框質量。但使用IoU 作為損失函數(shù)有以下兩個問題:一是當預測邊界框與標注邊界框沒有交集時損失函數(shù)梯度為0,無法進行優(yōu)化;二是當預測邊界框與標注邊界框的IoU 相同時,檢測效果會具有較大差異。
與IoU 只關注重疊區(qū)域不同,GIoU 不僅關注重疊區(qū)域,同時關注非重疊區(qū)域,可以更好地反映邊界框的重合度。其計算公式如下:

式中,A代表預測邊界框,B代表標注邊界框,Ac為兩邊界框的最小閉包區(qū)域面積。
相比于采用邊界框中心坐標和尺寸的均方誤差回歸損失,基于GIoU 的坐標回歸損失與邊界框的形狀和大小無關,可以更加準確地反映預測邊界框與標注邊界框之間的距離。因此,本文采用GIoU 邊界框坐標回歸損失函數(shù),其計算公式如下:

置信度損失使用交叉熵進行計算,其計算公式如下:

分類損失同樣使用交叉熵進行計算,計算公式如下:

最終損失函數(shù)定義如下:

本文實驗環(huán)境為:Intel Core i7-9750H CPU,16 GB內存,NVIDIA GeForce RTX 2060 GPU,PyTorch 版本為1.3.0,torchvision 版本為0.4.1,CUDA 版本為10.1,CUDNN版本為7.6.1。
在FOD檢測領域,目前沒有公開的圖像數(shù)據(jù)集,因此本文自行構建了實驗數(shù)據(jù)集。其中包含200 張實際機場跑道上的FOD 圖像及1 000 張模擬道面環(huán)境下的標準樣件圖像。最后得到如圖4所示的由1 200張圖片組成的FOD圖像數(shù)據(jù)集,使用LabelImg進行標注。

圖4 FOD圖像數(shù)據(jù)集示意圖
將實驗數(shù)據(jù)集按7∶2∶1的比例隨機劃分為訓練集、測試集和驗證集。在訓練階段,批尺寸(batch_size)設置為16,動量參數(shù)(momentum)設置為0.9,權重衰減正則項(decay)設置為0.000 5,初始學習率(learning_rate)設置為0.001,使用小批量隨機梯度下降進行優(yōu)化。
訓練過程中的GIoU 損失和置信度損失變化如圖5所示,經(jīng)過200個epoch后,損失值逐漸趨于穩(wěn)定。
將本文提出的改進YOLOv3 算法與基于候選區(qū)域的Faster R-CNN 算法、同樣基于回歸的SSD 算法、原YOLOv3 算法以及同為改進YOLOv3 的Road_Net 算法進行定量評估。
使用精確率(precision)和召回率(recall)來衡量目標檢測算法的性能,精確率P是指在所有預測為正確的目標中,真正正確目標所占的比例;召回率R是指在所有真正目標中,被正確檢測出來的目標所占的比例。其公式分別為:


圖5 網(wǎng)絡訓練損失函數(shù)曲線

式中,XTP表示被正確檢出的目標數(shù),XFP表示被錯誤檢出的目標數(shù),XFN表示沒有被正確檢出的目標數(shù)。
訓練過程中,隨著epoch數(shù)量增加,網(wǎng)絡模型的精確率和召回率變化如圖6所示。

圖6 網(wǎng)絡訓練結果曲線
最后,綜合考慮精確率和召回率,使用平均精度(Average Precision,AP)來評價網(wǎng)絡模型的檢測性能,其計算公式為:

在FOD數(shù)據(jù)集上對本文算法和其他目標檢測算法進行測試,性能比較結果如表3所示。在相同的測試集下,本文提出的改進YOLOv3 算法與Faster R-CNN 相比,對FOD目標檢測的精確率、召回率及平均精度均低0.2%左右,但Faster R-CNN檢測速度過慢,無法滿足實時性要求。與SSD 相比,改進YOLOv3 的精確率、召回率及平均精度均有較大優(yōu)勢。與原YOLOv3 相比,改進YOLOv3 對FOD 目標檢測的召回率提高了4.4 個百分點,平均精度提高了4.1 個百分點,檢測速度由27.6 frame/s 增加到33.2 frame/s,在保持了原算法速度優(yōu)勢的基礎上,召回率和平均精度均有較大提升。與同為改進YOLOv3 的Road_Net 相比,本文算法在召回率上有較大提升,有效改善了漏檢現(xiàn)象,對FOD目標有更好的檢測效果。

表3 5種算法的性能對比
如圖7所示,改進YOLOv3(見圖7(b))相比原YOLOv3目標檢測算法(見圖7(a))對FOD目標的邊界框定位更加精準,而原YOLOv3對小目標物體檢測存在的漏檢問題(見圖7(c))在改進YOLOv3(見圖7(d))中得到了有效改善。

圖7 改進YOLOv3與原YOLOv3檢測結果對比
圖8顯示了本文方法對標準FOD 樣件在不同環(huán)境下的檢測效果。在不同的道面環(huán)境和光照條件下,本文提出的方法均能得到良好的檢測結果。
本文將YOLOv3應用到機場跑道異物檢測領域,提出一種基于改進YOLOv3 的FOD 目標檢測算法,實現(xiàn)了對FOD 的實時有效檢測。針對FOD 小目標的特點,對YOLOv3 的網(wǎng)絡結構、聚類方法和損失函數(shù)進行改進。實驗結果表明,改進的YOLOv3 算法將FOD 目標檢測的平均精度從82.4%提高到86.5%,同時提高了對目標邊界框的定位精度,相比原YOLOv3算法有更好的檢測效果。在接下來的工作中,將繼續(xù)優(yōu)化算法以獲得更高的精度和更低的時間成本,并繼續(xù)采集更多的FOD圖像來擴充現(xiàn)有數(shù)據(jù)集,以便更好的工程應用。

圖8 測試圖像和檢測結果