朱齊丹,李小銅,鄭天昊
(哈爾濱工程大學 智能科學與工程學院,黑龍江 哈爾濱 150001)
艦載機作為航空母艦的主要裝備,是海上戰(zhàn)場的重要武器。艦載機起飛和著艦的安全性和高效性是衡量航母作戰(zhàn)和綜合支援能力的重要技術(shù)指標。航空母艦上艦載機數(shù)量較多,姿態(tài)不一,因此獲取甲板上艦載機的實時位置與姿態(tài)信息對于艦載機起飛和著艦過程中的避碰與軌跡規(guī)劃具有重大意義。對于三維空間中目標位姿的測量,常根據(jù)目標的距離而采用不同的位姿測量方法。對于距離較遠的目標,常采用激光雷達技術(shù)進行位姿測量,而對于距離相對較近的目標,通常采用機器視覺的方法進行位姿測量。航空母艦上艦載機的位姿測量屬于近距離目標位姿測量,故采用機器視覺的方法對艦載機進行位姿測量。
基于視覺的位姿測量方法主要分為傳統(tǒng)方法與深度學習方法兩類。基于視覺的傳統(tǒng)位姿測量方法根據(jù)相機的數(shù)目可分為單目、雙目以及多目。基于單目相機獲取的視覺圖像信息缺少目標的深度信息,因此若想基于普通單目相機進行位姿測量必須事先獲取目標模型的三維信息。文獻[1-2]提出了基于三維模型的單目位姿測量方法,設(shè)置了一系列的虛擬投影點將目標的三維模型投影到二維平面上構(gòu)成目標的二維模板庫,之后將相機獲取到的二維圖像與模板庫進行匹配,將匹配度最高的二維模板對應(yīng)的三維位姿作為待測目標的位姿。基于此方法可以準確地解算出目標的三維位姿,但因搜索過程極其耗時,因此該方法的實時性較差。雙目立體視覺是視覺感知中實現(xiàn)的一種重要方法,通過左右相機獲取含視差的圖像即可進行三維重建,獲取目標的深度信息,進而進行位姿解算。文獻[3]提出了一種基于雙目視覺的空間非合作目標位姿測量方法,對左右相機獲取到的圖像進行SIFT 特征提取與匹配,基于雙目三維重建原理即可獲取所有特征點的三維坐標,從而得到目標的三維點云,之后利用SAC-IA 與ICP 兩步對目標位姿進行求解。基于該方法可以獲取較為精確的目標位姿,但由于三維重建以及ICP 迭代過程復雜,位姿解算實時性較低。多目視覺是雙目視覺的一種延伸,其在雙目視覺的基礎(chǔ)上增加一臺或者多臺相機作為輔助測量裝備。解決了復雜環(huán)境因視野被遮擋和局部信息不精細帶來的問題,但存在系統(tǒng)復雜、實時性低等缺點。自2015 年開始隨著Faster-RCNN、SSD、YOLO 等網(wǎng)絡(luò)的提出,深度學習在二維圖像目標識別領(lǐng)域達到了巔峰[4-5],基于此類算法能夠精準快速地對目標進行識別。基于深度學習在二維圖像目標識別領(lǐng)域的優(yōu)良性能,國內(nèi)外大量的研究人員迅速將深度學習引入到了6D 位姿估計中,迄今為止提出了許多的網(wǎng)絡(luò)結(jié)構(gòu)對三維世界中的目標進行6D 位姿估計。文獻[6]提出了一種基于密集迭代融合的目標6D 位姿估計方法,用于從RGB-D 圖像中估計出已知對象的6D 位姿。文獻[7]提出了一種實時6D 位姿估計方法,該方法的關(guān)鍵技術(shù)在于設(shè)計一個網(wǎng)絡(luò),直接預測待測目標三維預測框3D 頂點坐標對應(yīng)的2D 圖像坐標,進而構(gòu)建2D-3D 坐標點對,最后通過解PNP 即可獲取待測目標的位置姿態(tài)信息。文獻[8]提出了基于物體點云6D 位姿估計的深度學習方法,該方法基于三維點云信息對三維場景中的目標進行位姿估計。文獻[9]提出了一種先驗形狀變形用于對類別6D 對象進行姿態(tài)與大小估計,該方法能從RGB-D 圖像中恢復出未見實例對象的6D 位姿與大小。但此類方法仍存在缺少訓練數(shù)據(jù),訓練過程極其耗時,測量精度較傳統(tǒng)方法低等問題。
針對上述位姿測量方法實時性與精度低下的問題,本文提出了一種基于線框模板匹配的艦載機位姿解算算法。引入了基于YOLO-V4 網(wǎng)絡(luò)以及Canny 邊緣提取算法的多目標分割算法、線框匹配算法以及GPU 加速算法,基于該算法對多艦載機目標進行位姿估計,獲得了較高的精度和較好的實時性。
本文提出的艦載機位姿實時測量算法主要包含兩個部分:1)基于YOLO-V4 網(wǎng)絡(luò)以及Canny邊緣提取算法實現(xiàn)多艦載機目標識別與分割;2)基于線框邊緣匹配實現(xiàn)艦載機目標位姿測量,利用類似模板匹配的方法在航母甲板平面的3 個自由度內(nèi)尋找線框模板與目標邊緣信息匹配度最高的位置信息與航向角信息,并以此作為艦載機的實時位姿。圖1 為艦載機位姿實時測量算法的流程。

圖1 艦載機實時位姿測量算法流程Fig.1 Meatruement of airplane position flow
近年來,深度學習在目標檢測和圖像語義分割等計算機視覺領(lǐng)域取得了巨大的成就。與傳統(tǒng)的方法相比,深度學習方法避免了手工設(shè)計特征,這使得模型具有良好的自適應(yīng)能力,提升了模型的泛化能力[10]。目前基于深度學習的目標檢測算法主要分為3 類[11]:1)基于Two-stage 的檢測模型,代表性網(wǎng)絡(luò)為R-CNN 系列;2) 基于Onestage 的檢測模型,代表性網(wǎng)絡(luò)為YOLO、SSD;3) 基于Anchor-free 的檢測模型,代表性網(wǎng)絡(luò)為CornerNet[12]、FSAF[13]、ExtremeNet[14]、FCOS[15]。基于此類算法能夠精準快速地對目標進行識別。本文選擇2020 年提出的YOLO-V4 網(wǎng)絡(luò)作為多艦載機目標的識別算法,YOLO-V4 網(wǎng)絡(luò)是YOLOV3 網(wǎng)絡(luò)的改進版,它是將最近幾年的一些優(yōu)秀的網(wǎng)絡(luò)算法加入到V 3 中進行堆疊改進而成,YOLO-V4 網(wǎng)絡(luò)在檢測速度與精度方面都有極好的性能[16]。本文不涉及對YOLO-V4 網(wǎng)絡(luò)的改進工作,在文獻[16]的基礎(chǔ)上直接復現(xiàn)YOLO-V4作為多艦載機目標的識別算法。本文采集了500張艦載機目標數(shù)量以及角度各異的訓練樣本,其中部分樣本的截圖如圖2 所示。

圖2 YOLO-V4 網(wǎng)絡(luò)訓練樣本Fig.2 YOLO-V4 network training sample
用500 張訓練樣本對YOLO-V4 網(wǎng)絡(luò)進行訓練,訓練完成的網(wǎng)絡(luò)識別結(jié)果如圖3 所示。

圖3 YOLO-V4 網(wǎng)絡(luò)識別結(jié)果Fig.3 Result of YOLO-V4 network
任意選取50 個測試樣本對網(wǎng)絡(luò)進行測試,統(tǒng)計測試結(jié)果,其中準確識別的樣本個數(shù)為49 個,出現(xiàn)錯誤的樣本個數(shù)僅有1 個。由測試結(jié)果可以看出,YOLO-V4 網(wǎng)絡(luò)對于艦載機的目標檢測準確率可達到95%以上,可以較好地完成目標檢測工作。
模板匹配是一種最原始、最基本的模式識別方法,研究某一特定目標的圖案位于圖像的什么地方,進而識別目標。它是圖像處理中最基本、最常用的匹配方法[17-19]。傳統(tǒng)模板匹配算法主要利用像素信息進行匹配,模板是一幅已知圖像,而模板匹配就是在一幅大圖像中搜索目標,在該圖中有要尋找的目標,且目標同模板有相同的尺寸、方向和圖像元素,通過一定算法可以在圖中找到目標,確定其坐標位置。傳統(tǒng)模板匹配方法具有自身的局限性,主要表現(xiàn)在:1)它只能進行平行移動,若原圖像中的匹配目標發(fā)生旋轉(zhuǎn)或大小變化,該算法無效;2)匹配耗時,實時性低。而本文所需測量的艦載機目標數(shù)量較多且姿態(tài)各異,固傳統(tǒng)的模板匹配算法不適用于航母上艦載機目標的位姿測量。本文提出了一種三維邊緣線框模板匹配算法,是傳統(tǒng)模板匹配算法基礎(chǔ)上的一個改進算法,與傳統(tǒng)的模板匹配相比:一是將模板的旋轉(zhuǎn)考慮在內(nèi),使得其匹配自由度具有3 個,分別對應(yīng)艦載機的x軸位置、y軸位置和航向角;二是只用模板的線框和目標圖像的邊緣進行匹配度計算,使得計算量大幅下降,能夠滿足實時性要求。除此之外,本文還采用了基于CUDA 技術(shù)的GPU 加速計算,使得位姿測量系統(tǒng)的計算速度能夠達到8 Hz。傳統(tǒng)模板匹配算法與本文提出的三維線框模板匹配算法如圖4 所示。

圖4 模板匹配算法Fig.4 Template matching algorithm
邊緣提取是圖像處理的常用手段與步驟之一,它通過對原始圖像施加某種算子使得邊緣信息的像素值不同于其周圍的其他非邊緣像素,從而使得邊緣凸顯出來。常用的邊緣提取算子包括Sobel 算子、拉普拉斯算子、Canny 算子等。Canny算法作為一種常用的邊緣提取算法,近些年在圖像處理中運用得越來越廣泛[20-22],其主要包括以下4 步:
1)高斯濾波
直接對原始圖像計算梯度求取極值必定會嚴重受到噪音的干擾,故在求取導數(shù)前需對圖像進行濾波;高斯濾波是一種常見的降噪算法,應(yīng)用高斯模糊去除噪聲,降低了偽邊緣的識別。高斯算子是一個類似于正態(tài)分布的、中間增益較大、周圍增益較小的算子。經(jīng)過濾波后的像素灰度值如式(1)所示:

2)計算梯度幅值與方向
在圖像中,可以將灰度值變化較大的點看作邊緣的點,而邊緣即是上述幅值變化較大的點的集合。梯度是表示圖像變化幅值與方向的常用方式,其可以通過點乘Sobel 算子計算,幅值與方向的計算如式(2)、(3)所示:

3)過濾非最大值
在第一步高斯濾波中,由于邊緣信息也被模糊放大,可能導致計算梯度值所得到的邊緣信息也同樣被放大,使得邊緣變得不準確;為了減小邊緣的寬度,可以采用過濾非最大值的方式,使得邊緣寬度盡可能地縮小,直至其接近1 像素。具體來說,即某個像素點,如果它是邊緣,那么它在該方向上的梯度則為最大值,否則其灰度值應(yīng)為0。
4)上下閾值過濾
設(shè)定上下兩個閾值,并將大于上閾值的可能為邊緣點的部分直接判定為邊緣點,低于下閾值的點直接判定為非邊緣點;對于介于上下閾值之間的點,若其與確定為邊緣的像素點相鄰,則判定其為邊緣點,否則為非邊緣點。
任意選取一幀含艦載機目標的圖像進行Canny 邊緣提取,得到結(jié)果如圖5 所示。

圖5 Canny 算法邊緣提取效果Fig.5 Result of Canny process
通過圖5 可以看到,邊緣提取結(jié)果中有許多不屬于艦載機目標的邊緣特征,主要包括兩個部分:一是甲板背景邊緣,二是由于光照變化問題帶來的噪點。在本文中相機是固定不動的,同時還需要對所得圖像進行邊緣提取,則微弱的光照變化也可忽略,這樣就可以認為拍攝到的圖像背景始終不會變化。故可以提前采集好背景的邊緣圖像,為了進一步提升背景減除的強度,用以對抗微弱光照變化引起的噪點,可在提取背景邊緣后額外進行一步膨脹操作。經(jīng)以上步驟可得最終的背景邊緣圖,如圖6 所示。

圖6 膨脹后背景邊緣圖片F(xiàn)ig.6 Background edge picture after expansion
對相機拍攝得到的目標圖像進行實時Canny 邊緣提取,之后將Canny 邊緣提取結(jié)果與膨脹后的背景邊緣圖片進行背景減除操作,即可得到較為純凈的只含有艦載機邊緣特征的圖像,如圖7 所示。由圖7 可以看出經(jīng)背景減除的結(jié)果中存在一些由于光照變化帶來的的噪點,固采用閉操作加輪廓查找的方式來優(yōu)化結(jié)果;閉操作是基本形態(tài)學操作的一種,其主要目的是對得到的二值化邊緣信息進行處理,連接有微小斷痕的邊緣信息,去除不屬于邊緣的點狀噪聲。其主要步驟包括膨脹與腐蝕,在這之后通過尋找所得圖像中的輪廓,計算每條輪廓的長短并去除較短的輪廓,即可得到效果良好的邊緣特征圖像,如圖8所示。

圖7 背景減除處理結(jié)果Fig.7 Result of background removal

圖8 優(yōu)化后的邊緣特征圖像Fig.8 Optimized edge feature image
通過以上步驟,可以得到較為清晰準確的只含有艦載機目標邊緣信息的圖像。
要實現(xiàn)艦載機線框模板與艦載機邊緣信息的匹配過程,除了要得到清晰完整的邊緣信息外,還需要建立恰當?shù)木€框模板。為了建立用于匹配的線框模板,需要獲取艦載機模型的幾何信息,本文通過對艦載機模型進行了掃描,獲取包含艦載機模型幾何信息的STL 文件。艦載機模型的掃描結(jié)果如圖9 所示。

圖9 艦載機模型掃描結(jié)果Fig.9 Shipborne aircraft model scan results
用三維軟件solidworks 打開掃描得到的STL 文件,選取具有代表性的關(guān)鍵點與關(guān)鍵邊即可構(gòu)建艦載機模型的線框模板。在選取的過程中,需要按照“邊緣提取最可能出現(xiàn)的邊”作為首要原則,并注意:1)優(yōu)先選擇外圍輪廓;2)盡量選擇棱角邊,盡量避開圓弧面;3)盡量保證邊的數(shù)量分布均勻。在考慮了以上幾點后,我們選擇了機翼、尾翼和小部分機首共計47 個關(guān)鍵點與40 條關(guān)鍵邊建立起線框模板,如圖10~12 所示。

圖10 線框模板Z 軸方向的投影Fig.10 Z-axis projection of wireframe template

圖11 線框模板X 軸方向的投影Fig.11 X-axis projection of wireframe template
本文提出的位姿測量算法支持多相機系統(tǒng),且不涉及圖像拼接,那么就必然存在著由于視野重合所帶來的目標重復問題,即存在不同的相機拍攝到同一目標,而基于深度學習的目標分割將其分割為兩個不同目標的情況。為解決這個問題,本文提出了一種基于鳥瞰算法的艦載機目標初始解估計,不僅解決了艦載機目標重復的問題,還為后續(xù)匹配算法提供了一個初始解,大大提高了算法的實時性。

圖12 線框模板Y 軸方向的投影Fig.12 Y-axis projection of wireframe template
假設(shè)所有相機均經(jīng)過內(nèi)外參標定,則任意一點的世界坐標與像素坐標之間滿足式(4)的關(guān)系:

式中:(Xw,Yw,Zw) 為世界坐標;(u,v) 為像素坐標;M1為內(nèi)參矩陣;M2為外參矩陣。相機的內(nèi)外參數(shù)由相機標定可以獲取,因此式(4)中含有3 個等式方程4 個未知參數(shù)。由于缺少深度信息Zc,特征點的像素坐標無法求解出特征點的世界坐標。但對于艦載機來說,其機翼、部分尾翼、機身、頭部基本都處于一個平面中,只有部分尾翼不在該平面上。基于此,不妨假設(shè)飛機為一平面圖形(在本項目中高度為0.034 m 的平面圖形),其世界坐標中的高度信息均在某一固定高度,由此便可以將式(4)變?yōu)楹? 個等式方程3 個未知參數(shù)的方程組,從而由任意特征點的像素坐標均可以求解出對應(yīng)的世界坐標。
對于3.2 節(jié)中得到的所有Canny 邊緣特征點,根據(jù)其像素坐標即可求解出對應(yīng)的世界坐標。對所有求解得到的世界坐標進行統(tǒng)計,獲取橫、縱坐標的均值,即可將其作為艦載機位置的初始解;將艦載機的姿態(tài)角設(shè)為0°,即可得到艦載機位置和姿態(tài)的初始解,從而加快整個位姿解算算法的實時性。同時,將初始位置距離低于某一閾值的兩個艦載機判定為同一架艦載機,從而達到多目標去重的效果。
模板匹配使用的搜索方法為遍歷法,遍歷法也叫蠻力法,是指在一定范圍內(nèi)計算每一個位姿的重合程度,尋找其中最大重合度的位姿作為當前的位姿;但遍歷法的時間效率較差,實時性與精度成反比,為了滿足實時性要求,可以做兩方面優(yōu)化:1)可以將該過程移植到GPU 進行運算,大大加速計算過程(GPU 在計算大規(guī)模重復的運算時具有巨大優(yōu)勢,例如在本項目的遍歷過程中,同價位的GPU 計算速度是CPU 的30~50 倍);2)可以優(yōu)化重合度的計算。在文獻[23]中采用了與本文相似的方法,對艦載機建立其完全的模型,并在計算某個位姿下的線框投影圖時,考慮該模型的直角邊界、弧面邊界以及遮擋關(guān)系,得到準確的投影圖。該種方法雖然得到的模板圖像更加準確,但是在計算模型的空間變換以及遮擋關(guān)系時會消耗掉大量的時間。這種方式在遍歷每個姿態(tài)時對完整的邊緣模擬需要巨大的計算過程,包括空間曲線的計算、各個面的相互覆蓋等,其在i7-2600 上的速度僅為500 次/秒;假設(shè)遍歷步長為x方向每次0.01 m,y方向每次0.01 m,航向角方向每次1°,遍歷范圍為0.5 m×0.5 m×360°,則其計算速度為0.000556 f/s,完全不可能滿足實時性要求;所以,本文采用線框模型關(guān)鍵邊的算法。先將三維線框模型投影到二維像素平面,得到47 個關(guān)鍵點與40 條關(guān)鍵邊在二維像素平面上的投影。再計算3.2 節(jié)得到的Canny 邊緣特征點到關(guān)鍵邊的距離,若距離小于指定閾值則認為該特征點位于關(guān)鍵邊上,也就是該特征點位于線框模板上,計算在線框模板上的Canny 邊緣特征點數(shù)量與Canny 邊緣特征點總量的比值作為重合度。其中點到線段的距離計算分為2 種情況:
1)點投影在線段上;
2)點投影不在線段上。
對此,需要分2 種情況處理:1)計算值為點到直線的距離;2) 點到線段兩端點較小的一段的值。這種計算重合度的方法其時間代價幾乎完全取決于計算點到線段距離的算法性能,且利用GPU 編譯器其對算法執(zhí)行步驟的優(yōu)化較為薄弱,這里需要額外考慮點到線段距離計算方法的代價問題。表1 列舉了3 種算法并進行了比較。

表1 點到線段的算法性能比較Table 1 Point-to-line distance algorithm performance comparison
實際測試中發(fā)現(xiàn)海倫公式法時間代價最小,固采用海倫公式法作為最終方法。
經(jīng)過優(yōu)化的匹配算法對于單個相機、單個目標已經(jīng)有了較好的識別效果,在參數(shù)選擇得當?shù)那闆r下,其計算效率可達0.8~1.2 Hz/s。但對于本文中的多相機、多艦載機目標系統(tǒng),隨著相機數(shù)量與目標數(shù)量的增加,深度學習與模板匹配的時間消耗也會成倍增加;為了滿足實時性要求,基于CUDA的GPU 加速必不可少。GPU 的架構(gòu)與CPU 采用了不同的設(shè)計思路,前者使用較多的計算單元和較精簡的指令集,而后者則采用較少的計算單元和較為復雜的指令集,這使得GPU 相對與CPU在大規(guī)模、不具有復雜結(jié)構(gòu)的線程處理上具有極大的優(yōu)勢[24],而這種情況正適用于模板匹配算法。
基于3.5 節(jié)可以獲得艦載機的初始位姿解,由這個初始解出發(fā),遍歷一定范圍內(nèi)的所有可能解,分別計算每個位姿下的線框模板與Canny 邊緣特征點集的重合度,最大重合度對應(yīng)的線框模板的位姿即為艦載機位姿的最優(yōu)解。
在遍歷的過程中,所需要考慮的維度一共有3 個:1)代表位置信息的x軸坐標;2) 代表位置信息的y軸坐標;3)代表姿態(tài)信息的航向角 α。正是由于3.2 節(jié)獲取得到了一個初始解,而姿態(tài)信息有一個較小的遍歷范圍(即0°~360°),才使得我們能夠在有限的時間內(nèi)計算所有可能解的重合度并找出其中最優(yōu)的結(jié)果。由此可以將線程組織成32 個為一組的線程束,充分利用每個CUDA大核的常量內(nèi)存和高速緩存(其存取速度大大高于讀取GPU 全局內(nèi)存的速度),來加速運算過程。于此同時,用常量內(nèi)存存儲艦載機線框模板,即在整個程序開始時將線框模板數(shù)據(jù)從主機內(nèi)存通過GPU 內(nèi)存再到常量內(nèi)存拷貝一次,之后處理其他幀的時候就不需要從主機內(nèi)存讀取模板信息;并用高速緩存存儲Canny 邊緣特征圖像的特征點信息,即每幀圖像的特征點從主機內(nèi)存拷貝到GPU 內(nèi)存,再由GPU 內(nèi)存同步發(fā)送給所有大核的高速緩存,這樣在每個線程束讀取特征點信息時,就大幅度減少了資源沖突的可能。
4.1.1 硬件環(huán)境搭建
根據(jù)上文中的算法需要,搭建了相應(yīng)的實物環(huán)境,使用的甲板與艦載機模型均與實物成1∶70比例,甲板由鋼板和圖層構(gòu)成,如圖13 所示(因保密協(xié)議要求,此處只給出整套設(shè)備的部分圖像):艦載機模型采用的是殲-12 模型,模型包含黃色與灰色2 種,其幾何參數(shù)完全一致。其中黃色艦載機模型內(nèi)置了動力系統(tǒng),用來實現(xiàn)模擬運動中的艦載機位姿檢測。

圖13 硬件實驗環(huán)境Fig.13 Hardware environment
搭建的硬件環(huán)境中共有7 臺相機,其中5 臺側(cè)方位相機用于對艦載機目標進行位姿測量,另外2 臺相機位于整個甲板正上方豎直向下,用于對5 臺側(cè)方位相機進行外參標定。上方相機已完成視野拼接、焦距測定、甲板距離測定等內(nèi)容。這樣得到上方相機的像素坐標即可求解其在甲板上的世界坐標。
相機的內(nèi)參標定采用經(jīng)典的張正友相機標定方法,其外參標定采用棋盤格與PNP 解算進行標定[25-26],對于棋盤格上的任意角點,通過上方相機均可得到其像素坐標對應(yīng)的世界坐標,同時可以獲取對應(yīng)角點在側(cè)方相機像素平面的像素坐標。對側(cè)方位相機獲取的像素坐標與世界坐標點對進行PNP 解算即可得到側(cè)方相機的外參矩陣。
4.1.2 算法測試軟件編寫
根據(jù)算法測試需求,基于QT 開發(fā)了相應(yīng)的測試軟件,軟件功能主要包括:
1)相機視野實時檢測;
2)相機內(nèi)外參標定;
3)實時Canny 邊緣提取結(jié)果顯示;
4)艦載機位姿數(shù)據(jù)顯示;
5)艦載機位姿圖像化顯示。
為驗證算法的性能,對算法的魯棒性、實用性、實時性以及精度進行相應(yīng)的測試。
4.2.1 魯棒性測試
光照變化以及多艦載機目標之間分割范圍出現(xiàn)重疊是影響艦載機位姿解算結(jié)果的主要因素,因此分別對以上兩個因素進行了測試。
1)光照因素
分別在清晨、正午、傍晚無燈光、傍晚有燈光4 種情況下對艦載機位姿測量結(jié)果進行了測試,其結(jié)果如圖14 所示。

圖14 光照因素測試Fig.14 Light factor test
2)多艦載機目標分割范圍重疊
在存在多個目標的情形中,極有可能出現(xiàn)分割范圍重疊,從而導致一個目標的分割結(jié)果中出現(xiàn)其他目標的邊緣信息,使得一般算法位姿求取十分困難。對存在互相遮擋的情形進行了多次測試,其測試結(jié)果如圖15 所示。對測試結(jié)果進行統(tǒng)計,得到結(jié)果如表2 所示。

圖15 多艦載機情形測試Fig.15 Multi-shipborne aircraft situation test

表2 艦載機魯棒性測試Table 2 Robustness test of shipborne aircraft
由測試結(jié)果可以看出,對于光照變化以及多個艦載機目標分割范圍重疊的情形,基于該算法都能得到準確的位姿測量結(jié)果。因為,算法的魯棒性較高。
4.2.2 實用性測試
4.2.1 節(jié)所進行的算法測試是在室內(nèi)進行的,無外界強烈陽光的影響,并且對應(yīng)的艦載機模型都是1∶72 的模型。而在實際的應(yīng)用中,一方面,應(yīng)用場景是在海上,本文提出的艦載機位姿解算算法必然會受到室外光照的影響;另一方面,實際應(yīng)用場景中對應(yīng)的待測目標是用于作戰(zhàn)的艦載機,其大小并不是1∶72 的艦載機模型的大小。因此,本文提出的算法要想具有實用性,能應(yīng)用到實際的場景中,一方面必須得適應(yīng)室外的陽光,另一方面還必須具有能適應(yīng)不同大小艦載機模型的能力。為了驗證本文提出的算法具有實用性,我們將實驗環(huán)境換到具有強烈陽光的室外,并將艦載機模型換為1∶14 的殲-12 模型,得到測試結(jié)果如圖16 所示。

圖16 實用性測試結(jié)果Fig.16 Usability test results
由測試結(jié)果可看出,本文提出的算法同樣適用于室外環(huán)境且具有不同尺寸的待測目標,具有較好的實用性。
4.2.3 精度測試
對于精度測試,關(guān)鍵在于如何獲取用于參考的艦載機準確位姿信息。而在搭建的艦載機甲板上恰好有許多可供參考的規(guī)定停機位,如圖17所示。

圖17 甲板指定位姿的停機位Fig.17 Decks with designated positions
圖17 中的十字線位置即為規(guī)定停機位,其較長的線段一端和對稱的線段的兩端恰好對應(yīng)艦載機機身上的輪胎位置。手動將艦載機放置于停機位上,而該停機位的位置、航向角都已規(guī)定好,在忽略微小的手動誤差后,只需通過等比縮放即可得到該位置艦載機的參考位姿。通過比較算法測試軟件所得到的測量位姿與參考位姿,即可得到艦載機的位姿測量算法的精度。進行10 次實驗,得到結(jié)果如表3 所示。

表3 算法精度測試表Table 3 Algorithmic accuracy test table
由測量可以看出,在10 次的測量結(jié)果中,位置信息最大絕對偏差不超過0.0079 m,航向角絕對值偏差不超過0.612°,因此該算法具有較高的精度。
4.2.4 實時性測試
采用幀率來描述算法的實時性,即每秒可以返回檢測到的艦載機位姿數(shù)據(jù)次數(shù)。現(xiàn)準備20 張存在2~3 個艦載機目標的圖片,并利用上文提到的算法對圖片中的艦載機模型進行位姿檢測,其統(tǒng)計數(shù)據(jù)如圖18 所示。由測量結(jié)果可知,算法的實時性較高,其速度可達到8 f/s。

圖18 算法實時性測量結(jié)果Fig.18 Algorithm real-time measurement results
本文通過結(jié)合深度學習與模板匹配兩種方法,提出了一種基于線框邊緣匹配的艦載機位姿實時檢測算法,引入了基于YOLO-V4 網(wǎng)絡(luò)以及Canny 邊緣提取算法的多目標識別與分割算法、GPU 加速算法、線框匹配算法,并通過鳥瞰算法、基于距離代價的重合度算法等方法優(yōu)化該匹配算法,使該算法既保留了模板匹配耐噪聲、精度高的優(yōu)點,又克服了其計算量大、難以應(yīng)用于實時系統(tǒng)的缺點。算法驗證與性能測試結(jié)果表明,該算法具有較好的魯棒性、實時性、實用性以及精度,該算法識別率在95%以上,位置精度在8 mm以內(nèi),姿態(tài)精度在0.7°以內(nèi),速度可達8 Hz。