吳軍, 袁少博, 祝玉恒, 劉少禹
(1.中國民航大學航空工程學院, 天津 300300; 2.天津大學精密測試技術及儀器國家重點實驗室, 天津 300072;3.中國民航大學電子信息與自動化學院, 天津 300300)
航空運輸業迅猛發展,飛機數量不斷攀升,飛機維修任務也隨之加大,在飛機維修廠內停靠大量待維修飛機需要地勤人員通過肉眼識別飛機型號和飛機機號,并引導飛機到達維修工位。在復雜工作環境下,地勤人員長期處于高壓高負荷的工作狀態,工作積極性和效率逐漸下降,導致飛機維修效率下降,同時也會因地勤人員的疏忽導致飛機在移動過程中發生碰撞,造成二次損傷。近年來圖像處理相關技術成為了國內外研究熱門領域,其中目標檢測技術是最重要也是最具有挑戰性的分支之一,廣泛應用于監控安全[1]、自動駕駛[2-6]、交通監控[7]、無人機場景分析和機器人視覺[8-9]等方面,因此飛機檢測和識別技術是機場領域的一項重要研究內容。對于飛機的識別檢測是保障機場內的飛機與交通工具安全運行的基礎技術。目前國內外對于飛機的檢測識別技術已經有很多研究成果,比如:龍怡燦等[10]采用利用YOLOv5為基礎框架,通過優化尺度信息從而提供對飛機機型的識別;Wei等[11]提出一種“分離訓練、聯合檢測”的目標檢測算法,實現了YOLOv3基于暗網框架的跨平臺檢測特征融合和基于張量流框架的Faster_R_CNN;陳健[12]提出了一種基于FPGA+DSP(field programmable gate array+digital signal processing)為平臺的應答機,實現了主動識別飛機的功能;侯濤等[13]提出一種改進YOLOv4主干特征提取網絡,保留高分辨率的特征層的算法;Cao等[14]提出一種基于YOLOv3的改進遙感影像目標檢測算法;張欣等[15]則是對YOLOv4-tinyde 網絡結構進行改進,強化了CSP(cross stage partial)特征提取能力;崔建國等[16]提出一種基于增量型極限學習機的飛機復合材料結構損傷識別新方法,來實現對飛機損傷進行檢測識別;潘衛軍等[17]提出了一種基于時空特征融合的飛機尾渦識別模型,從而實現對飛機尾渦的識別。上述對飛機的識別檢測技術實現了對飛機機型的識別,飛機損傷的識別以及飛機尾渦的識別,但在機場、飛機維修廠等復雜環境中,飛機數量較多且體積龐大,飛機之間存在嚴重遮擋現象,導致目標飛機出現視野盲區,無法實現有效跟蹤和識別,因此在特定的復雜環境下對飛機的識別跟蹤存在較大問題。
針對在復雜飛機維修場景中的飛機無法實現精準識別和不間斷跟蹤的問題,現基于深度學習強大的特征提取能力,提出一種通過YOLOv4目標檢測算法與骨架細化算法結合的飛機機號識別方法,該方法首先通過YOLOv4目標檢測算法識別出飛機型號,然后骨架細化算法識別出飛機整體姿態,并依據先驗知識確定飛機機號的大致位置信息,最后通過輪廓檢測算法進一步消除圖像噪聲干擾,獲得準確的機號圖像信息,從而使用OCR(optical character recognition)識別出目標飛機機號信息。
飛機型號和機號的識別是對飛機進行準確監控和調度的關鍵環節。在深度學習理論基礎上,通過YOLOv4構建多層深度卷積神經網絡模型,高度提取圖像中飛機特征信息,獲得目標飛機的型號,通過機型和飛機骨架細化的方法獲得飛機機號位置,繼而使用OCR識別出目標飛機機號信息。
采用YOLOv4目標檢測模型識別監控區域中存在的所有飛機,并輸出每架飛機的飛機型號和預測框位置,該模型以CSPDarknet53為框架,使用PANet網絡對端到端檢測模型的融合,將捕獲到的視頻轉換為圖像序列,將每張圖像劃分為若干網絡結構,通過候選框對每個網絡結果圖進行預測,輸出預測的圖像類別和坐標,得到目標飛機整體的位置信息。整體結構如圖1所示,輸入的圖像尺寸為608×1 216,圖像特征提取網絡CSPDarket-53網絡主要是由1×1和3×3的卷積網絡層組成。對于訓練時因參數優化引起的相同輸入但輸出不同的問題采用DarknetConv2D_BN_Mish卷積塊,其中激活模塊采用Mish模塊,并且加快網絡訓練速度。使用Leaky_relu函數對特征金字塔部分對CSPDarknet-53最后一個特征層進行DarknetConv2D_BN_Leaky卷積,對線性進行擬合,可以解決梯度消失的問題。其中卷積塊和Leaky_relu函數的表達式為

圖1 YOLOv4目標檢測模型框架Fig.1 YOLOv4 object detection model framework
Mishh=x[ln(1+ex)]
(1)
(2)
式中:x和xi為神經元輸入;h和yi代表激活函數的輸出值;ai為可調節參數,一般取值為0.01。
在YOLOv4目標檢測算法得到目標飛機型號和預測框圖的情況下,首先進行圖像處理獲得飛機輪廓的特征點集,然后通過骨架細化獲知機號的大致位置,利用double-Canny算子得到飛機機號準確位置信息,最后使用OCR識別出目標飛機機號信息。
1.2.1 圖像處理
在獲得目標飛機的圖像中,存在一定的圖像噪聲,圖像噪聲直接影響到機號輪廓的提取準確度。采用雙邊濾波與圖像腐蝕相結合濾波方法。雙邊濾波是一種非線性濾波器,它的作用是保持飛機邊緣清晰度,核心算法是加權平均,即將飛機輪廓周邊像素值加權平均代表中心像素點的亮度值,其中權重值受空間域和像素范圍域的影響,這使得在圖像像素值變化不明顯的區域,像素值較小,對應的像素范圍域權重接近于1,而在圖像像素值變化較大的區域如:邊緣區域,像素范圍的權重較大,因此保持了邊緣信息。具體描述公式為
(3)
(4)
(5)
d(δ,x)=d(δ-x)=δ-x
(6)
(7)
且有
σ(?,f)=σ(?-f)=?-f
(8)
式中:k(x)為歸一化因子,是對所有像素點加權;h(x)表示濾波后的圖像;x為待求的像素點;δ為待求像素點周圍像素;f(x)代表濾波前的圖像;c(δ,x)為closeness函數;s[f(δ),f(δ)]為similarity函數,是權重系數;σd和σr為可設定參數值,代表局部濾波的范圍。
式(2)中的單位化分部k(x)結合了像素變化權重和空間位置變換權重于一起得到的,使得在采樣過程中考慮像素在空間距離上的關系以及像素間的相似程度因子,從而可以保持原始圖像的整體性進而保持邊緣信息。圖像腐蝕是通過erode函數使用像素鄰域內的局部極小運算符來腐蝕一張圖片,飛機圖像經過處理后,可以消除大量噪聲信息,有利于提高飛機輪廓特征點集的準確度。
1.2.2 骨架細化
所謂細化,就是從得到的飛機輪廓特征點集中區分出飛機中機翼、機位、機頭等重要信息。細化的目的是為了精確的定位飛機各部件的具體位置,從而獲得飛機姿態信息,并根據飛機型號,判斷飛機機號所處具體位置。
通過Harris角點檢測算法提取飛機外輪廓特征點集p(xi,yi),(i=0,1,2,…,n),如圖2所示,因飛機發動機和尾翼處其特殊的結構和外形導致特征點數量明顯多于飛機機頭部分。計算特征點集的質心點p0(x0,y0),即

圖2 飛機結構圖Fig.2 Aircraft structure diagram
(9)
p0點必然落在藍色區域,且因飛機外形的對稱性,p0點位于飛機中軸線上。
設飛機機頭的特征點為pk(xk,yk),則存在p1(x1,y1),即
(10)
且滿足x1≈x0,y1≈y0。則認為在缺失機頭特征點的情況下特征點集的中心位置不變,p0為特征點集的中心點,pk(xk,yk)為飛機機頭的特征點,表達式為
(11)
因此pkp0為飛機中軸線,延長線所及端點為飛機尾翼特征點pg,根據不同機型獲取該機型的尺寸,機翼機身的長寬比,從而獲得飛機右翼的位置信息,以及右翼機號所在機身的相對位置。
1.2.3 目標飛機機號位置提取
通過骨架細化獲得飛機右機翼的位置仍存在一定噪聲,直接識別機號的準確率較低,因此通過進一步輪廓檢測提純機號位置精度,目標輪廓提取的方法有Robert算法和Laplacian算法等,Robert算法優點是邊緣定位精度高,但是沒有抑制噪聲的能力,對于復雜的環境下很難提取準確的輪廓信息,尤其是分辨率不高的情況下,更難捕獲輪廓邊緣。本文中采用Canny邊緣檢測方法,是一種 multi-stage 算法,主要通過高斯濾波、梯度計算、非極大值抑制和雙閾值檢測圖像中存在的邊緣信息,該算法可以有效消除圖像噪聲,并且強化邊緣信息,有利于實現對機號輪廓的準確提取。
(1)高斯濾波。由于微分算子對噪聲很敏感,用高斯濾波平滑圖像,濾除圖像中的部分噪聲。
(2)梯度計算。一幅圖像可以表示為函數I=f(x,y),其中(x,y)為坐標,I表示該像素點的灰度值,梯度G(x)表示函數f(x,y)在點(x,y)處的最大變化率,計算的表達式為
(12)
(3)非極大值抑制。梯度計算得到的邊緣很粗,一條邊緣中央一般很亮,兩邊亮度逐漸降低,可以根據這個特點去掉非局部灰度最高的“假邊”,達到細化邊緣的目的,從而提高輪廓準確度。
1.2.4 機號識別
對于飛機機號的提取是實現飛機維修廠智能化的關鍵一步,本文中采用OCR對獲取到的飛機機號圖像進行掃描,然后對飛機機號圖像進行分析處理獲取文字信息,識別流程如圖3所示。

圖3 機號識別流程圖Fig.3 Aircraft number recognition flowchart
連通區域分析檢測出字符區域輪廓外形,以及子輪廓,由字符輪廓和塊區域得出文本行,以及通過空格識別出數字字母。固定字寬文本通過字符單元分割出單個字符,而對數字字母符號的文本(proportional text)通過一定的間隔和模糊間隔(fuzzy spaces)來分割,繼而再對每個字符繼續分析,采用自適應分類器,分類器有一定的學習能力,分析滿足條件的單詞時也作為訓練樣本,強化之后的識別能力。
本實驗采用在1∶750定制的機場沙盤模型上進行,沙盤長2 m,寬0.6 m,沙盤實物如圖4所示。該沙盤上飛機共有5種機型,飛機模型比例為1∶750,機型包括A380、B787-800、 B757-200、 B747-400、B737-800,共計50架。采用雙相機拍攝,并固定相機位置,如圖5所示。

圖4 機場沙盤實物Fig.4 Airport sand table physical objects

圖5 雙相機固定Fig.5 Dual camera fixation
實驗過程首先通過相機獲得飛機機場圖像,然后使用YOLOv4目標檢測算法獲得飛機預測框信息,并識別出飛機型號,再通過圖像處理算法分割飛機輪廓,使用骨架細化的方法獲得飛機機頭和機翼的位置信息。
通過自建數據集,訓練最優的飛機型號模型,代入YOLOv4目標檢測算法中,得到目標飛機預測框和飛機型號。提取飛機預測框內圖像信息,通過骨架細化區分飛機機頭,機尾,機翼的位置,如圖6所示。

圖6 骨架細化Fig.6 Skeleton refinement
根據目標檢測算法獲得飛機型號信息和骨架細化算法得到飛機姿態信息,通過已知機型可判斷機號在機翼的大致位置,從而鎖定機號檢索范圍,如圖7所示,為機號檢索范圍,通過圖像處理對該區域進一步提純,獲取準確的機號輪廓如圖8所示,并采用OCR識別目標飛機機號信息,通過采集500張測試集的飛機圖像信息,得出該算法對飛機識別的準確率在94%左右,對飛機機號的識別準確度為75%左右。

圖7 機號檢索范圍Fig.7 Range of machine number searches
為檢測本文算法的實時性,模擬飛機移動過程,實驗中采用細線捆綁飛機前輪并較為勻速的拖拽目標飛機,使其平穩移動,如圖9所示,在此過程中實時監測沙盤圖像,并對獲得圖像信息進行處理,檢測出圖像中的飛機機號信息,圖像處理幀率為30幀左右,可以滿足實時性的要求。

圖9 飛機移動模型圖Fig.9 Aircraft movement model diagram
飛機機號是飛機的“身份證”,存在唯一性,識別到機號則可以獲得飛機所有信息。基于深度學習的原理,通過將YOLOv4目標檢測算法與飛機骨架細化算法相結合,實現了對目標飛機機號的精確定位和準確識別。該方法通過在飛機維修車間安裝俯視監控設備,對監控范圍內的所有飛機實現實時檢測識別的功能,不僅可以準確檢測出飛機,還可以識別出飛機機號,通過機號信息即可實現對飛機的不間斷跟蹤,極大提高飛機維修效率。同時該方法可應用于遙感圖像下飛機的識別,通過檢測飛機機號信息,獲得不同時刻目標飛機的位置信息,從而有效估計飛機運行軌跡。