張長勇,郭 聰,李玉洲,張朋武
(1.中國民航大學 電子信息與自動化學院,天津 300300;2.南航股份公司 工程技術分公司北京基地,北京 102602)
現代民航客機,由于本身的尺寸設計,絕大部分的地面服務工作,例如裝卸行李、上下旅客、檢查維修等,都需要借助相應的地面設備或特種車輛才能完成。目前國內外機場地面設備與特種車輛的靠機作業均由人工操作完成。參與作業的工作人員通常分為兩部分:一部分為監護員,在設備上(如航食車艙門口)或飛機旁負責引導特種車輛靠近飛機,并監督車輛是否停靠到位;另一部分為特種車輛駕駛員,在車輛距離飛機5~10 m外,先進行車輛與飛機的預對正,然后再依據監護員指揮,最終完成地面設備與特種車輛的靠機任務。人工作業費時費力且不易于統一管理,因此特種車輛自動靠機已成為智慧機場的發展趨勢之一[1]。
飛機艙門的準確檢測與定位是實現特種車輛自動靠機的關鍵。由于采用視覺的方式比使用非視覺方式能夠獲得更多的信息,且有著更強的泛化性和可靠性,成為目前的主流檢測方式?;谝曈X的目標檢測算法可分為一階段和二階段兩種。二階段目標檢測算法[2-5],主要有R-CNN、SPP-net、Fast R-CNN、Faster R-CNN等系列方法,算法先通過區域提取網絡產生候選框,然后用卷積神經網絡對候選框作分類和回歸;一階段目標檢測算法,主要有 YOLO 系列[6]、SSD[7]等,通過一個網絡直接回歸出目標的類別和位置。一階段算法相對于二階段算法,更適用于輕量級速度較快的實時檢測。
激光定位、雙目定位、單目定位是目前較為常用的3種定位方法。激光定位[8]具有測量精度高、體積小和速度快的優點,但存在集成度低,成本高的問題;雙目定位[9]具有精度高、設備集成度高的優點,但相機的裝配過程復雜且系統體積較大;單目定位[10]具有設備簡易、集成度高、體積小、系統簡單穩定的優點,但由于單個攝像頭丟失了深度信息,所以需要給出待測物體的寬度或者高度才能進行定位。
鑒于艙門尺寸可以事先通過飛機維修手冊(AMM,aircraft maintenance manual)和結構修理手冊(SRM,structural repair manual)查找獲得,在綜合考慮系統成本、算法性能、系統穩定性后,提出一種基于單目視覺的飛機艙門識別與定位方法,先采用改進YOLOv5算法實現目標艙門的檢測,再利用單目相機實現艙門定位。通過在原始YOLOv5s模型中添加卷積注意力模塊CBAM[11],并使用改進的空間金字塔池化結構SPPCSPC代替了原有的快速空間金字塔池化結構(SPPF,spatial pyramid pooling-fast),使目標檢測模型能更好地學習目標特征。在艙門識別的基礎上,通過獲取候選框中角點的像素,利用空間幾何關系,對傳統的單目相機單維度定位方法進行改進,以實現飛機艙門的三維定位。在北京大興國際機場進行實際測試后,表明算法的識別與定位精度能達到預期設計要求。
YOLOv5算法根據權重、深度和寬度的不同,共分為YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x四個版本[12]。其中YOLOv5s算法網絡結構最小,速度最快,更能貼合機場中艙門的實時檢測要求,因此可以作為艙門檢測的基本算法。YOLOv5s框架主要有4個部分,分別是輸入端、主干特征提取網絡、頸部和輸出端[13]。YOLOv5s 目標檢測算法在識別目標時,同時兼備檢測精度高和速度快的優勢。但為了能更加快速準確的實現對飛機艙門的專有化識別檢測,仍需要對算法進一步改進。
飛機艙門距離相機越遠,則艙門在成像平面中占有的像素比例越少。為解決遠距離艙門難以識別的問題,需引入注意力機制,使YOLOv5s這種輕量級的網絡,在大區域上關注目標,同時不會增加時間開銷[14],以此來提高算法對飛機艙門的特征提取能力。
計算機視覺應用領域中的注意力大體有兩類:一類是以SE(Squeeze and Excitation)為代表的通道注意力機制,另一類是以CBAM為代表的空間注意力機制。其中,SE注意力機制是對整個通道內的所有數據進行平均池化,這樣就忽視了每一條通道內的細微差別,而CBAM注意力機制可以結合通道和空間機制構建更高層次的空間結構,使得所有輸入特征在通道和空間結構上的聯絡更加緊密,從而更高效地獲取目標的有效信息,其網絡結構如圖1所示。

圖1 CBAM網絡結構圖
CBAM注意力機制由通道注意力模塊 (CAM,channel attention module)和空間注意力模塊 (SAM,spatial attention module)組成[15]。
CAM用于輸入圖片中重要信息的提取,其計算公式為:
MC(F)=σ(MLP((AvgPool(F))+
MLP((MaxPool(F)))=
(1)

MS(F)=σ(f(7×7))([AvgPool(F);MaxPool(F)]=
(2)
式中,MS為空間注意力圖;f(7×7)為濾波器大小為7 × 7的卷積運算。在YOLOv5s算法中的CSP1_3中加入CBAM注意力機制,改進后的網絡結構如圖2所示。

圖2 CSP1_3添加CBAM模塊
空間金字塔池化的最開始提出是為了實現一個自適應尺寸的輸出。YOLOv5作者Glenn Jocher基于此思想提出了SPPF,網絡結構如圖3所示。SPPF[16]用連續3個卷積核做池化可以與YOLOv4算法達到同樣的輸出效果,同時與前者比起來,可以減少計算量,所以速度也有所加快。圖形化的結構可以有效地擴展感知范圍,使算法能夠適應各種分辨率的圖像,而最大池化技術則可以實現這一目標。

圖3 SPPF網絡結構圖
SPPCSPC是改進后的空間金字塔池化操作,主要解決了因裁剪、縮放操作導致的圖像失真問題和算法對重復特征提取的問題[17]。
SPPCSPC網絡結構如圖4所示,該結構和YOLOv5s中自帶的SPPF結構是有些相似的,都有1*1、5*5、9*9、13*13的池化層,前后也均有卷積,不同的是有一個1*1的殘差邊[18]。這4種池化代表著4種感受野,用來區別于大目標和小目標。它們采用CSP思想,將特征包括兩部分,一部分用于常規處理,另一部分用于SPP結構處理,最后將兩部份合并,可以大大減少運算量,加快運算速率,同樣也能提升精確度。

圖4 SPPCSPC網絡結構圖
分組卷積與普通卷積的區別為將輸入特征圖分成組,每個卷積核也相應地分成組,在對應的組內做卷積[19],如圖5所示。

圖5 分組卷積示意圖
實驗表明,如果只考慮浮點乘,不考慮浮點加,在輸入輸出特征圖尺寸相同的情況下,分組巻積的參數量是常規卷積的1/g,其中g是分組的個數(圖5中是兩個)。在yolov5s.yaml中使用SPPCSPC代替原有的SPPF后,并將分組的個數改為4后,參數量(Params)與計算量(GFLOPs)的參數對比表如表1所示。

表1 各空間金字塔池化結構參數對比表
在YOLOv5s算法中的CSP1_3中加入CBAM注意力機制,并使用改進的空間金字塔池化結構SPPCSPC代替了原有的快速空間金字塔池化結構SPPF,再將分組卷積改為4,最終得到改進后的YOLOv5s艙門檢測模型網絡結構如圖6所示。

圖6 改進后的YOLOv5s網絡結構圖
由于相機無法實現完美安裝,故單目相機可能會存在切向畸變和徑向畸變的現象,從而影響后期的攝像頭成像和定位結果[20]。以上兩種情況都會導致攝像頭的成像不準確,通過攝像頭標定工具,可以矯正上述的兩種成像畸變,使輸出的圖像質量更好;通常假設上述兩種畸變呈多項式關系,徑向畸變關系式如下:
xrdis=x(1+k1r2+k2r4+k3r6)
(3)
yrdis=y(1+k1r2+k2r4+k3r6)
(4)
式中,x,y為圖像坐標系中的理想坐標;xrdis、yrdis為徑向畸變坐標,r=(x2+y2)1/2、k=(k1,k2,k3)T為切向畸變參數。
切向畸變關系式如下:
xtdis=x+2p1xy+p2(r2+2x2)
(5)
ytdis=y+p1(r2+2y2)+2p2xy
(6)
式中,x、y為圖像坐標系中的理想坐標,xtdis、ytdis為切向畸變坐標,r=(x2+y2)1/2、k=(p1,p2)T為切向畸變參數。
本文選用海康威視DS-E12攝像頭,分辨率為1 920×1 080,固定焦距為3.6 mm。使用matlab進行相機標定,矯正了攝像頭的5個畸變參數(k1,k2,k3,p1,p2)。標定之后,還可以得到該攝像頭的焦距(fx,fy)與光心在成像平面的位置(Cx,Cy),以及相機內參矩陣A:
如圖7所示,假設一個寬度為x的物體,在距離相機為z的位置。測得該物體在相機成像平面的像素寬度為x[21]。

圖7 單目相機測距原理圖
則相機焦距f的計算公式為:
f=(X′×Z/X)
(7)
其中:以貨艙門為例,根據改進的YOLOv5算法識別出來貨艙門矩形框,得到貨艙門在水平和豎直方向上的像素寬度分別為Wh1和Wv1。
根據AMM查得B737-800前貨艙尺寸為1.22×0.89 m,則貨艙門與相機在Z軸方向上的距離為Z1和Z2,它們的計算公式為:
Z1=f×1.22/Wh1
(8)
Z2=f×0.89/Wv1
(9)
接下來可以得到貨艙門在檢測艙門平面下,水平和豎直方向上單位像素對應真實的比值分別為S1和S2。它們的計算公式分別為:
S1=1.22/Wh1
(10)
S2=0.89/Wv1
(11)


圖8 圖像原點與檢測框原點示意圖
根據公式(10),(11)分別算出貨艙門真實X軸上的距離X1,X2,真實Y軸上的距離Y1,Y2。其計算公式分別為:
(12)
(13)
客艙門的定位原理與貨艙門定位原理相同。根據SRM查得B737-800前客艙門尺寸為0.86×1.83 m。根據改進的YOLOv5算法識別出來客艙門矩形框,得到客艙門在水平和豎直方向上的像素寬度分別問Wh2和Wv2。則貨艙門與相機在Z軸方向上的距離為Z3和Z4。計算公式為:
Z3=f×0.86/Wh2
(14)
Z4=f×1.83/Wv2
(15)
再得到在檢測艙門平面下,水平和豎直方向上單位像素對應真實的比值分別為S3和S4。它們的計算公式分別為:
S3=0.86/Wh2
(16)
S4=1.83/Wv2
(17)
根據公式(16),(17)分別算出客艙門X軸上的真實距離X3,X4,艙門真實Y軸上的距離Y3,Y4。其計算公式分別為:
(18)
(19)
至此,根據貨艙門和客艙門的識別框在水平和豎直方向上對應的像素寬度,得到了兩套貨艙門三維定位方案,它們分別是為X1,Y1,Z1和X2,Y2,Z2。也制定了兩套客艙門的三維定位方案,它們分別是為X3,Y3,Z3和X4,Y4,Z4。
采用AutoDL云服務平臺進行艙門檢測模型訓練,其中CPU類型為Intel,使用存儲器為45GB,GPU類型為NVIDIA GeForce RTX 3090*1,內存大小為24 GB。數據集隨機拆分為訓練集、驗證集和測試集,使用YOLOv5s、Pytorch1.9.0、CUDA版本和1.11.1的框架。根據經驗,將初始和終止學習率均設置為0.01[22],批量大小設置為32,迭代輪數設置為500。表2提供了軟硬件配置和實驗參數的詳細信息。

表2 艙門檢測平臺軟硬件參數表
艙門檢測數據集由國內某機場自主采集。如圖9所示。在經過亮度、對比度和飽和度的數據增廣后,艙門檢測數據集共包含開啟的客艙門(open_cabin door)、關閉的客艙門(closed_cabin door)、開啟的貨艙門(open_cargo door)、關閉的貨艙門(closed_cargo door)各1 200張,總共4 800張圖像,其中包含的艙門目標約10 000個。

圖9 數據集展示
為了對改進后的算法性能做出評估,本文選取了精確度(P,Precision)、召回率(R,Recall)、平均精度(mAP,mean average precision)作為評價指標[23]。精確率、召回率以及平均精度的計算式如式所示:
(20)
(21)

(22)
(23)
式中,TP為飛機艙門狀態被正確檢測出的數目;FP為飛機艙門開啟或者關閉但被檢測錯誤的數目;FN為飛機艙門標志丟失的數量;psmooth(r)為進行平滑處理后的P-R曲線,psmooth(r)=maxr′≥rp(r′),0≤r≤1,0≤r′≤1。n為類別,而N則為總類別數。
加入CBAM后,mAP由原來的90.9%提升到了92.8%。如圖10所示。

圖10 添加CBAM后的mAP
在添加CBAM后,又使用SPPCSPC代替原有的SPPF后,并將分組卷積改為4后,mAP由原來的92.8%提升到了96.5%,如圖11所示。

圖11 添加CBAM和分組的SPPCSPC后的mAP
原始模型和改進后的模型在準確率、召回率和平均精確度方面的對比結果如表3所示。

表3 實驗對比結果
由表3可知,添加在原有的YOLOv5s中加入CBAM后,mAP提升了1.9%。在此基礎上添加改進的分組SPPCSPC后,mAP又提升了3.7%。綜上,添加注意力機制和SPPCSPC算法的YOLOv5算法mAP達到96.5%,相比原始YOLOv5提升了5.6%。且收斂速度更快,相比之前算法達到了提升模型檢測精確度的目的。
根據貨艙門和客艙門的識別框在水平和豎直方向上對應的像素寬度為依據,在2.2節中分別制定了貨艙門和客艙門各兩套定位方案。為了驗證兩套定位方案的優劣性,保持相機平面平行于,機身縱軸和立軸所形成的平面,將單目相機P擺放在與艙門中心點O的不同的空間位置處,如圖12所示。

圖12 空間位置說明圖
在圖12中,單目相機初始擺放在距離艙門中心點O在X、Y、Z軸上分別-15 m,-0.75 m,19 m的位置處,如圖11中的P1。隨后X間隔5 m,Y間隔0.25 m,Z間隔6 m為一組,對應圖中表示為P2~P7。
在實際實驗中發現,由于飛機本身的橫剖線為橢圓形,所以識別圖像中的豎直方向識別框比水平方向上的識別框更貼合艙門實際輪廓,故將算法中貨艙門和客艙門與相機在Z軸方向上的距離分別定為Z2和Z4,在X軸上的距離分別定為X2和X4,在Y軸上的距離分別定為Y2和Y4。
在實際實驗中發現,算法預測值略小于實際值,將得到的實驗數據通過matlab擬合,得到X、Y、Z軸的線性方程來修正誤差。
Xcor=1.045*Xpre-0.005 971
(24)
Ycor=1.049*Ypre+0.003 024
(25)
Zcor=1.053*Zpre-0.086 27
(26)
式中,Xcor,Ycor,Zcor分別為加入線性擬合方程后算法在X、Y、Z軸的最終預測距離,Xpre,Ypre,Zpre分別為加入線性擬合方程前算法在X、Y、Z軸的預測距離。
再加入線性擬合方程后,繼續相機平面平行于,機身縱軸和立軸所形成的平面,保持攝像頭離地高度1.5 m(距離艙門中心點Y軸距離0.30 m),距離艙門中心點Z軸距離1.85 m處位置不變,將攝像頭放置在分別在距離艙門中心點X為-1.00 m,0 m和0.30 m的3個位置處,使用Intel (R )Core (TM )i5-5200U CPU @2.20 GHz ,運行內存為12.0 GB的處理器在北京大興機場晚上21:30運行時,得到的檢測結果如圖13所示。

圖13 算法實時檢測結果
將上述實時檢測結果匯總得到表4,由表4分析可知,加入線性擬合方程后的算法,在艙門正前方1.8米處平均誤差只有0.03米,且算法預測值可以達到0.302秒更新一次,滿足實時定位的速度需求。

表4 算法實時定位結果
繼續保持相機平面平行于,機身縱軸和立軸所形成的平面,將攝像頭P擺放在與圖12中的相同位置處,將加入線性擬合修正前后的算法預測結果整理如表5,驗證改進后定位算法的準確性。

表5 定位實驗結果
實驗數據表明,隨著攝像頭與艙門距離的增大,測量誤差逐漸增大。修正前,預測值均略小于實測值,在艙門前方19米處測得最大誤差為0.96米;修正后,在艙門前方13米范圍內,預測值略高于實測值,13米范圍外時,預測值略低于實測值,在19米處的最大誤差降低到0.15米,艙門正前方1米處的實時定位誤差為0.01米。定位算法平均檢測時間約為0.302秒,定位精度滿足特種車輛靠機完成后,與艙門保持5~10厘米的安全距離要求。
飛機艙門的準確識別與定位是實現機場特種車輛自動靠機的重要前提。本文先采用改進后的YOLOv5算法對艙門進行識別,再利用單目成像模型法進行艙門定位。在機場環境下測得的艙門定位速度和精度能夠滿足特種車輛靠機作業要求。方法具有成本低、體積小、方便調試等特點,可為特種車輛自動靠機系統的設計提供借鑒和參考。