張長勇,郭 聰,李玉洲,張朋武
(1.中國民航大學(xué) 電子信息與自動化學(xué)院,天津 300300;2.南航股份公司 工程技術(shù)分公司北京基地,北京 102602)
現(xiàn)代民航客機,由于本身的尺寸設(shè)計,絕大部分的地面服務(wù)工作,例如裝卸行李、上下旅客、檢查維修等,都需要借助相應(yīng)的地面設(shè)備或特種車輛才能完成。目前國內(nèi)外機場地面設(shè)備與特種車輛的靠機作業(yè)均由人工操作完成。參與作業(yè)的工作人員通常分為兩部分:一部分為監(jiān)護員,在設(shè)備上(如航食車艙門口)或飛機旁負責引導(dǎo)特種車輛靠近飛機,并監(jiān)督車輛是否停靠到位;另一部分為特種車輛駕駛員,在車輛距離飛機5~10 m外,先進行車輛與飛機的預(yù)對正,然后再依據(jù)監(jiān)護員指揮,最終完成地面設(shè)備與特種車輛的靠機任務(wù)。人工作業(yè)費時費力且不易于統(tǒng)一管理,因此特種車輛自動靠機已成為智慧機場的發(fā)展趨勢之一[1]。
飛機艙門的準確檢測與定位是實現(xiàn)特種車輛自動靠機的關(guān)鍵。由于采用視覺的方式比使用非視覺方式能夠獲得更多的信息,且有著更強的泛化性和可靠性,成為目前的主流檢測方式?;谝曈X的目標檢測算法可分為一階段和二階段兩種。二階段目標檢測算法[2-5],主要有R-CNN、SPP-net、Fast R-CNN、Faster R-CNN等系列方法,算法先通過區(qū)域提取網(wǎng)絡(luò)產(chǎn)生候選框,然后用卷積神經(jīng)網(wǎng)絡(luò)對候選框作分類和回歸;一階段目標檢測算法,主要有 YOLO 系列[6]、SSD[7]等,通過一個網(wǎng)絡(luò)直接回歸出目標的類別和位置。一階段算法相對于二階段算法,更適用于輕量級速度較快的實時檢測。
激光定位、雙目定位、單目定位是目前較為常用的3種定位方法。激光定位[8]具有測量精度高、體積小和速度快的優(yōu)點,但存在集成度低,成本高的問題;雙目定位[9]具有精度高、設(shè)備集成度高的優(yōu)點,但相機的裝配過程復(fù)雜且系統(tǒng)體積較大;單目定位[10]具有設(shè)備簡易、集成度高、體積小、系統(tǒng)簡單穩(wěn)定的優(yōu)點,但由于單個攝像頭丟失了深度信息,所以需要給出待測物體的寬度或者高度才能進行定位。
鑒于艙門尺寸可以事先通過飛機維修手冊(AMM,aircraft maintenance manual)和結(jié)構(gòu)修理手冊(SRM,structural repair manual)查找獲得,在綜合考慮系統(tǒng)成本、算法性能、系統(tǒng)穩(wěn)定性后,提出一種基于單目視覺的飛機艙門識別與定位方法,先采用改進YOLOv5算法實現(xiàn)目標艙門的檢測,再利用單目相機實現(xiàn)艙門定位。通過在原始YOLOv5s模型中添加卷積注意力模塊CBAM[11],并使用改進的空間金字塔池化結(jié)構(gòu)SPPCSPC代替了原有的快速空間金字塔池化結(jié)構(gòu)(SPPF,spatial pyramid pooling-fast),使目標檢測模型能更好地學(xué)習目標特征。在艙門識別的基礎(chǔ)上,通過獲取候選框中角點的像素,利用空間幾何關(guān)系,對傳統(tǒng)的單目相機單維度定位方法進行改進,以實現(xiàn)飛機艙門的三維定位。在北京大興國際機場進行實際測試后,表明算法的識別與定位精度能達到預(yù)期設(shè)計要求。
YOLOv5算法根據(jù)權(quán)重、深度和寬度的不同,共分為YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x四個版本[12]。其中YOLOv5s算法網(wǎng)絡(luò)結(jié)構(gòu)最小,速度最快,更能貼合機場中艙門的實時檢測要求,因此可以作為艙門檢測的基本算法。YOLOv5s框架主要有4個部分,分別是輸入端、主干特征提取網(wǎng)絡(luò)、頸部和輸出端[13]。YOLOv5s 目標檢測算法在識別目標時,同時兼?zhèn)錂z測精度高和速度快的優(yōu)勢。但為了能更加快速準確的實現(xiàn)對飛機艙門的專有化識別檢測,仍需要對算法進一步改進。
飛機艙門距離相機越遠,則艙門在成像平面中占有的像素比例越少。為解決遠距離艙門難以識別的問題,需引入注意力機制,使YOLOv5s這種輕量級的網(wǎng)絡(luò),在大區(qū)域上關(guān)注目標,同時不會增加時間開銷[14],以此來提高算法對飛機艙門的特征提取能力。
計算機視覺應(yīng)用領(lǐng)域中的注意力大體有兩類:一類是以SE(Squeeze and Excitation)為代表的通道注意力機制,另一類是以CBAM為代表的空間注意力機制。其中,SE注意力機制是對整個通道內(nèi)的所有數(shù)據(jù)進行平均池化,這樣就忽視了每一條通道內(nèi)的細微差別,而CBAM注意力機制可以結(jié)合通道和空間機制構(gòu)建更高層次的空間結(jié)構(gòu),使得所有輸入特征在通道和空間結(jié)構(gòu)上的聯(lián)絡(luò)更加緊密,從而更高效地獲取目標的有效信息,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 CBAM網(wǎng)絡(luò)結(jié)構(gòu)圖
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注意力機制,改進后的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
圖2 CSP1_3添加CBAM模塊
空間金字塔池化的最開始提出是為了實現(xiàn)一個自適應(yīng)尺寸的輸出。YOLOv5作者Glenn Jocher基于此思想提出了SPPF,網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。SPPF[16]用連續(xù)3個卷積核做池化可以與YOLOv4算法達到同樣的輸出效果,同時與前者比起來,可以減少計算量,所以速度也有所加快。圖形化的結(jié)構(gòu)可以有效地擴展感知范圍,使算法能夠適應(yīng)各種分辨率的圖像,而最大池化技術(shù)則可以實現(xiàn)這一目標。
圖3 SPPF網(wǎng)絡(luò)結(jié)構(gòu)圖
SPPCSPC是改進后的空間金字塔池化操作,主要解決了因裁剪、縮放操作導(dǎo)致的圖像失真問題和算法對重復(fù)特征提取的問題[17]。
SPPCSPC網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,該結(jié)構(gòu)和YOLOv5s中自帶的SPPF結(jié)構(gòu)是有些相似的,都有1*1、5*5、9*9、13*13的池化層,前后也均有卷積,不同的是有一個1*1的殘差邊[18]。這4種池化代表著4種感受野,用來區(qū)別于大目標和小目標。它們采用CSP思想,將特征包括兩部分,一部分用于常規(guī)處理,另一部分用于SPP結(jié)構(gòu)處理,最后將兩部份合并,可以大大減少運算量,加快運算速率,同樣也能提升精確度。
圖4 SPPCSPC網(wǎng)絡(luò)結(jié)構(gòu)圖
分組卷積與普通卷積的區(qū)別為將輸入特征圖分成組,每個卷積核也相應(yīng)地分成組,在對應(yīng)的組內(nèi)做卷積[19],如圖5所示。
圖5 分組卷積示意圖
實驗表明,如果只考慮浮點乘,不考慮浮點加,在輸入輸出特征圖尺寸相同的情況下,分組巻積的參數(shù)量是常規(guī)卷積的1/g,其中g(shù)是分組的個數(shù)(圖5中是兩個)。在yolov5s.yaml中使用SPPCSPC代替原有的SPPF后,并將分組的個數(shù)改為4后,參數(shù)量(Params)與計算量(GFLOPs)的參數(shù)對比表如表1所示。
表1 各空間金字塔池化結(jié)構(gòu)參數(shù)對比表
在YOLOv5s算法中的CSP1_3中加入CBAM注意力機制,并使用改進的空間金字塔池化結(jié)構(gòu)SPPCSPC代替了原有的快速空間金字塔池化結(jié)構(gòu)SPPF,再將分組卷積改為4,最終得到改進后的YOLOv5s艙門檢測模型網(wǎng)絡(luò)結(jié)構(gòu)如圖6所示。
圖6 改進后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖
由于相機無法實現(xiàn)完美安裝,故單目相機可能會存在切向畸變和徑向畸變的現(xiàn)象,從而影響后期的攝像頭成像和定位結(jié)果[20]。以上兩種情況都會導(dǎo)致攝像頭的成像不準確,通過攝像頭標定工具,可以矯正上述的兩種成像畸變,使輸出的圖像質(zhì)量更好;通常假設(shè)上述兩種畸變呈多項式關(guān)系,徑向畸變關(guān)系式如下:
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為切向畸變參數(shù)。
切向畸變關(guān)系式如下:
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為切向畸變參數(shù)。
本文選用海康威視DS-E12攝像頭,分辨率為1 920×1 080,固定焦距為3.6 mm。使用matlab進行相機標定,矯正了攝像頭的5個畸變參數(shù)(k1,k2,k3,p1,p2)。標定之后,還可以得到該攝像頭的焦距(fx,fy)與光心在成像平面的位置(Cx,Cy),以及相機內(nèi)參矩陣A:
如圖7所示,假設(shè)一個寬度為x的物體,在距離相機為z的位置。測得該物體在相機成像平面的像素寬度為x[21]。
圖7 單目相機測距原理圖
則相機焦距f的計算公式為:
f=(X′×Z/X)
(7)
其中:以貨艙門為例,根據(jù)改進的YOLOv5算法識別出來貨艙門矩形框,得到貨艙門在水平和豎直方向上的像素寬度分別為Wh1和Wv1。
根據(jù)AMM查得B737-800前貨艙尺寸為1.22×0.89 m,則貨艙門與相機在Z軸方向上的距離為Z1和Z2,它們的計算公式為:
Z1=f×1.22/Wh1
(8)
Z2=f×0.89/Wv1
(9)
接下來可以得到貨艙門在檢測艙門平面下,水平和豎直方向上單位像素對應(yīng)真實的比值分別為S1和S2。它們的計算公式分別為:
S1=1.22/Wh1
(10)
S2=0.89/Wv1
(11)
圖8 圖像原點與檢測框原點示意圖
根據(jù)公式(10),(11)分別算出貨艙門真實X軸上的距離X1,X2,真實Y軸上的距離Y1,Y2。其計算公式分別為:
(12)
(13)
客艙門的定位原理與貨艙門定位原理相同。根據(jù)SRM查得B737-800前客艙門尺寸為0.86×1.83 m。根據(jù)改進的YOLOv5算法識別出來客艙門矩形框,得到客艙門在水平和豎直方向上的像素寬度分別問Wh2和Wv2。則貨艙門與相機在Z軸方向上的距離為Z3和Z4。計算公式為:
Z3=f×0.86/Wh2
(14)
Z4=f×1.83/Wv2
(15)
再得到在檢測艙門平面下,水平和豎直方向上單位像素對應(yīng)真實的比值分別為S3和S4。它們的計算公式分別為:
S3=0.86/Wh2
(16)
S4=1.83/Wv2
(17)
根據(jù)公式(16),(17)分別算出客艙門X軸上的真實距離X3,X4,艙門真實Y軸上的距離Y3,Y4。其計算公式分別為:
(18)
(19)
至此,根據(jù)貨艙門和客艙門的識別框在水平和豎直方向上對應(yīng)的像素寬度,得到了兩套貨艙門三維定位方案,它們分別是為X1,Y1,Z1和X2,Y2,Z2。也制定了兩套客艙門的三維定位方案,它們分別是為X3,Y3,Z3和X4,Y4,Z4。
采用AutoDL云服務(wù)平臺進行艙門檢測模型訓(xùn)練,其中CPU類型為Intel,使用存儲器為45GB,GPU類型為NVIDIA GeForce RTX 3090*1,內(nèi)存大小為24 GB。數(shù)據(jù)集隨機拆分為訓(xùn)練集、驗證集和測試集,使用YOLOv5s、Pytorch1.9.0、CUDA版本和1.11.1的框架。根據(jù)經(jīng)驗,將初始和終止學(xué)習率均設(shè)置為0.01[22],批量大小設(shè)置為32,迭代輪數(shù)設(shè)置為500。表2提供了軟硬件配置和實驗參數(shù)的詳細信息。
表2 艙門檢測平臺軟硬件參數(shù)表
艙門檢測數(shù)據(jù)集由國內(nèi)某機場自主采集。如圖9所示。在經(jīng)過亮度、對比度和飽和度的數(shù)據(jù)增廣后,艙門檢測數(shù)據(jù)集共包含開啟的客艙門(open_cabin door)、關(guān)閉的客艙門(closed_cabin door)、開啟的貨艙門(open_cargo door)、關(guān)閉的貨艙門(closed_cargo door)各1 200張,總共4 800張圖像,其中包含的艙門目標約10 000個。
圖9 數(shù)據(jù)集展示
為了對改進后的算法性能做出評估,本文選取了精確度(P,Precision)、召回率(R,Recall)、平均精度(mAP,mean average precision)作為評價指標[23]。精確率、召回率以及平均精度的計算式如式所示:
(20)
(21)
(22)
(23)
式中,TP為飛機艙門狀態(tài)被正確檢測出的數(shù)目;FP為飛機艙門開啟或者關(guān)閉但被檢測錯誤的數(shù)目;FN為飛機艙門標志丟失的數(shù)量;psmooth(r)為進行平滑處理后的P-R曲線,psmooth(r)=maxr′≥rp(r′),0≤r≤1,0≤r′≤1。n為類別,而N則為總類別數(shù)。
加入CBAM后,mAP由原來的90.9%提升到了92.8%。如圖10所示。
圖10 添加CBAM后的mAP
在添加CBAM后,又使用SPPCSPC代替原有的SPPF后,并將分組卷積改為4后,mAP由原來的92.8%提升到了96.5%,如圖11所示。
圖11 添加CBAM和分組的SPPCSPC后的mAP
原始模型和改進后的模型在準確率、召回率和平均精確度方面的對比結(jié)果如表3所示。
表3 實驗對比結(jié)果
由表3可知,添加在原有的YOLOv5s中加入CBAM后,mAP提升了1.9%。在此基礎(chǔ)上添加改進的分組SPPCSPC后,mAP又提升了3.7%。綜上,添加注意力機制和SPPCSPC算法的YOLOv5算法mAP達到96.5%,相比原始YOLOv5提升了5.6%。且收斂速度更快,相比之前算法達到了提升模型檢測精確度的目的。
根據(jù)貨艙門和客艙門的識別框在水平和豎直方向上對應(yīng)的像素寬度為依據(jù),在2.2節(jié)中分別制定了貨艙門和客艙門各兩套定位方案。為了驗證兩套定位方案的優(yōu)劣性,保持相機平面平行于,機身縱軸和立軸所形成的平面,將單目相機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為一組,對應(yīng)圖中表示為P2~P7。
在實際實驗中發(fā)現(xiàn),由于飛機本身的橫剖線為橢圓形,所以識別圖像中的豎直方向識別框比水平方向上的識別框更貼合艙門實際輪廓,故將算法中貨艙門和客艙門與相機在Z軸方向上的距離分別定為Z2和Z4,在X軸上的距離分別定為X2和X4,在Y軸上的距離分別定為Y2和Y4。
在實際實驗中發(fā)現(xiàn),算法預(yù)測值略小于實際值,將得到的實驗數(shù)據(jù)通過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軸的最終預(yù)測距離,Xpre,Ypre,Zpre分別為加入線性擬合方程前算法在X、Y、Z軸的預(yù)測距離。
再加入線性擬合方程后,繼續(xù)相機平面平行于,機身縱軸和立軸所形成的平面,保持攝像頭離地高度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 ,運行內(nèi)存為12.0 GB的處理器在北京大興機場晚上21:30運行時,得到的檢測結(jié)果如圖13所示。
圖13 算法實時檢測結(jié)果
將上述實時檢測結(jié)果匯總得到表4,由表4分析可知,加入線性擬合方程后的算法,在艙門正前方1.8米處平均誤差只有0.03米,且算法預(yù)測值可以達到0.302秒更新一次,滿足實時定位的速度需求。
表4 算法實時定位結(jié)果
繼續(xù)保持相機平面平行于,機身縱軸和立軸所形成的平面,將攝像頭P擺放在與圖12中的相同位置處,將加入線性擬合修正前后的算法預(yù)測結(jié)果整理如表5,驗證改進后定位算法的準確性。
表5 定位實驗結(jié)果
實驗數(shù)據(jù)表明,隨著攝像頭與艙門距離的增大,測量誤差逐漸增大。修正前,預(yù)測值均略小于實測值,在艙門前方19米處測得最大誤差為0.96米;修正后,在艙門前方13米范圍內(nèi),預(yù)測值略高于實測值,13米范圍外時,預(yù)測值略低于實測值,在19米處的最大誤差降低到0.15米,艙門正前方1米處的實時定位誤差為0.01米。定位算法平均檢測時間約為0.302秒,定位精度滿足特種車輛靠機完成后,與艙門保持5~10厘米的安全距離要求。
飛機艙門的準確識別與定位是實現(xiàn)機場特種車輛自動靠機的重要前提。本文先采用改進后的YOLOv5算法對艙門進行識別,再利用單目成像模型法進行艙門定位。在機場環(huán)境下測得的艙門定位速度和精度能夠滿足特種車輛靠機作業(yè)要求。方法具有成本低、體積小、方便調(diào)試等特點,可為特種車輛自動靠機系統(tǒng)的設(shè)計提供借鑒和參考。