陳 煒 孫慶偉 胡福超 晁建剛*
(1.中國航天員科研訓(xùn)練中心人因工程重點實驗室, 北京 100094; 2.中國航天員科研訓(xùn)練中心,北京 100094; 3.航天工程大學(xué)宇航科學(xué)與技術(shù)系, 北京 101416)
航天員增強現(xiàn)實(Augmented Reality, AR)訓(xùn)練是通過AR 頭戴設(shè)備呈現(xiàn)虛擬輔助信息,如任務(wù)流程指引、設(shè)備操作模擬等,給航天員直觀的操作展示,滿足其自主訓(xùn)練的需求[1-2]。當(dāng)前增強現(xiàn)實技術(shù)可以滿足大部分地面訓(xùn)練任務(wù),但針對場景空間布局發(fā)生較大變化,或者需改變操作物體空間位置時,可能發(fā)生虛實匹配失效的問題。這是因為目前的AR 定位技術(shù)依賴于幾何方法,包括空間錨點(Anchor)和預(yù)設(shè)標志物(Mark)2類。這2 種方法中,目標位置在空間中是提前固定的,只能應(yīng)用于靜態(tài)場景。傳統(tǒng)AR 設(shè)備[3]只能進行場景幾何空間的識別,無法感知場景空間的動態(tài)變化。因此,為擴展AR 設(shè)備的應(yīng)用場景,采用一種不受靜態(tài)空間限制的目標定位方法尤為重要。
基于深度學(xué)習(xí)的目標識別技術(shù)依靠神經(jīng)網(wǎng)絡(luò)的擬合能力,不依賴場景結(jié)構(gòu),可在靜態(tài)或動態(tài)環(huán)境中準確識別感興趣的目標,解決航天員地面AR 訓(xùn)練中的虛實匹配問題。按照是否需要產(chǎn)生中間候選框,基于深度學(xué)習(xí)的目標識別算法分為Two-stage 與One-stage 算法2 類。R-CNN(Region-Convolutional Neural Networks)[4]是首個將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在目標識別上的Two-stage 算法,但其識別速度和精度都不高,后續(xù)的Faster-RCNN[5]、Mask-RCNN[6]在識別效率上不斷提高。相比之下,One-stage 的識別算法不需要產(chǎn)生候選區(qū)域,而是端到端地直接得到目標的位置和類別概率,主流算法包括SSD(Single Shot MultiBox Detector) 和YOLO(You Only Look Once) 系 列。SSD[7]在識別速度和精度之間做了平衡,達到了多尺度識別的目的。YOLO v5[8]是目前應(yīng)用最廣泛的網(wǎng)絡(luò),采用了多尺度特征融合,在有限樣本量的情況下也能獲得較好的識別準確率,較適合場景固定、樣本量小的航天訓(xùn)練場景。
除了目標識別,AR 空間定位還需要目標空間位姿信息,即三維位置和三維姿態(tài)。按照使用的輸入數(shù)據(jù),物體的空間位姿估計方法可分為基于圖像的方法和基于點云的方法。早期基于圖像的六自由度位姿估計方法處理的是紋理豐富的物體,通過提取顯著性特征點[9-10],構(gòu)建表征性強的描述符獲得匹配點對,使用PnP(Perspective-n-Points)方法[11-12]恢復(fù)物體的六自由度位姿。對于弱紋理或者無紋理物體,適合基于模板匹配的方法[13-14],檢索得到最相似模板圖像對應(yīng)的六自由度位姿,也可以通過機器學(xué)習(xí)投票[15],訓(xùn)練得到最優(yōu)位姿?;邳c云匹配的方法通過點云匹配算法與模板模型對齊,將位姿估計問題轉(zhuǎn)換為2個點云之間的坐標變換[16]。基于點云匹配的方法具有不受紋理條件影響、計算簡單、準確性高等優(yōu)勢。航天訓(xùn)練場景空間狹小、光照條件復(fù)雜,紋理信息變化大,更適合采用點云模板匹配的方法進行位姿估計。
本文針對航天員地面訓(xùn)練中AR 設(shè)備依賴預(yù)設(shè)標志物或空間錨點的情況,提出一種基于深度學(xué)習(xí)目標識別和點云匹配的空間定位方法,以動態(tài)實現(xiàn)空間目標識別與位姿估計。
本文提出的方法實現(xiàn)流程如圖1 所示。首先,利用AR 設(shè)備對航天訓(xùn)練任務(wù)場景進行掃描,采集彩色圖像與深度圖像;然后,利用彩色圖像,通過YOLO v5 神經(jīng)網(wǎng)絡(luò)實現(xiàn)操作目標識別;根據(jù)識別獲得目標像素區(qū)域,結(jié)合深度圖通過幾何反投影實現(xiàn)目標點云分割,與目標CAD 模型點云進行ICP(Iterative Closest Point)點云匹配后估計出目標的三維空間位姿;最后,通過空間坐標系變換,實現(xiàn)目標在AR 空間的動態(tài)定位與虛實匹配。
圖1 算法結(jié)構(gòu)總覽Fig.1 An overview of the algorithm
本文采用的AR 設(shè)備為微軟的Hololens 2 增強現(xiàn)實眼鏡,其內(nèi)嵌的SLAM(Simultaneous Localization and Mapping)功能可以實時確定自身所在的世界坐標系位姿。Hololens 2 集成了多種相機傳感器并在研究模式下提供了接口,可實時獲取視頻幀及相關(guān)信息(如分辨率、時間戳等),本文用到的彩色和深度圖像格式如表1 所示。
表1 圖像格式Table 1 Image formats
航天員佩戴Hololens 2 在任務(wù)場景中自由活動,視覺傳感器掃描任務(wù)場景,實時獲取彩色和深度圖像數(shù)據(jù)流,通過局域網(wǎng)傳輸給后端服務(wù)器。
2.2.1 數(shù)據(jù)集制作
神經(jīng)網(wǎng)絡(luò)的訓(xùn)練高度依賴數(shù)據(jù),針對航天員地面訓(xùn)練場景制作目標識別數(shù)據(jù)集。實驗人員佩戴Hololens 2 模擬航天員訓(xùn)練,在任務(wù)場景中自由運動,視覺傳感器獲取的彩色圖像通過局域網(wǎng)傳輸?shù)胶蠖朔?wù)器并保存。本文應(yīng)用場景相對固定,對網(wǎng)絡(luò)的泛化能力要求不高,因此不需要制作超大數(shù)據(jù)集即可滿足對網(wǎng)絡(luò)的訓(xùn)練需要。
局域網(wǎng)的傳輸速率為3 fps,實驗中在3 min內(nèi)采集500 張有效圖像(去除運動模糊樣本),每隔10 幀選取一幀作為數(shù)據(jù)集,共得到50 幀。YOLO v5 集成了數(shù)據(jù)增強功能,且航天員地面訓(xùn)練場景為固定結(jié)構(gòu),因此少量的數(shù)據(jù)即可完成對網(wǎng)絡(luò)的訓(xùn)練。
使用LabelImg 作為標注工具,對場景中閥門結(jié)構(gòu)進行標注。標注格式如[0 0.490132 0.757009 0.140789 0.224299],其中0 表示類別標簽,后面4 個數(shù)字表示閥門所占像素坐標的4個頂點。
2.2.2 網(wǎng)絡(luò)結(jié)構(gòu)
航天員地面訓(xùn)練場景相對固定,需要操作的結(jié)構(gòu)多為閥門、開關(guān)等小目標,其像素數(shù)量占整幅圖像的比例較小。YOLO v5 是目前綜合性能最強的目標識別神經(jīng)網(wǎng)絡(luò)之一,該神經(jīng)網(wǎng)絡(luò)推理速度快,精度高,自帶數(shù)據(jù)增強算法和多尺度金字塔特征融合算法,在訓(xùn)練數(shù)據(jù)樣本量較小、圖像分辨率較低的情況下,仍能獲得較好的識別結(jié)果。因此本文目標識別算法采用YOLO v5 深度神經(jīng)網(wǎng)絡(luò)。
該神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)[17]如圖 2 所示。其中Focus結(jié)構(gòu)用來拓展特征圖的通道數(shù);BottleneckCSP 結(jié)構(gòu)借鑒了CSPNet 的思想,降低了網(wǎng)絡(luò)計算參數(shù);Conv 為卷積網(wǎng)絡(luò)層;SPP 為空間金字塔池化層;Upsampling 為上采樣層;Contact 為連接層。網(wǎng)絡(luò)采用經(jīng)典的金字塔特征融合方法進行多尺度特征融合,將相同尺度的特征進行拼接,最終得到了3個不同尺度的深度圖像特征,每個尺度中同時包含其他尺度的信息。在3 種不同尺度的特征圖上分別設(shè)置了3 組不同大小和形狀的錨框,每個錨框中的特征經(jīng)過兩層卷積,預(yù)測目標類型的同時回歸目標的包圍框。
圖2 YOLO v5 網(wǎng)絡(luò)結(jié)構(gòu)圖[17]Fig.2 Structure of YOLO v5[17]
誤差函數(shù)通過最小外接矩形交并比構(gòu)造。損失函數(shù)見式(1):
式中,A為神經(jīng)網(wǎng)絡(luò)輸出包圍框,B為包圍框真值,ρ(A,B) 計算了2 個包圍框中心點的歐氏距離,c表示2 個包圍框最大外接矩形的對角線長度。式中IoU,v,α的表達式見式(2)~(4)。
式中,IoU為神經(jīng)網(wǎng)絡(luò)輸出包圍框和包圍框真值的交集與并集的比值,wgt,hgt,w,h分別為包圍框真值與神經(jīng)網(wǎng)絡(luò)輸出值的寬和高,v用來度量長寬比的相似性,α為權(quán)重系數(shù)。
2.2.3 網(wǎng)絡(luò)訓(xùn)練
實驗電腦GPU 為GeForce RTX 2060,CPU 為Intel i7-8750H,網(wǎng)絡(luò)訓(xùn)練基于pytorch 框架。bach size 設(shè)為4,Epoch 設(shè)為400。網(wǎng)絡(luò)訓(xùn)練Loss 曲線如圖3 所示,Box_loss 表示Bouding Box 的loss,Obj_loss 表示目標的loss??梢钥吹?網(wǎng)絡(luò)訓(xùn)練Loss 下降很快,且在Epoch 為300 時趨于穩(wěn)定。
圖3 Loss 曲線Fig.3 Curve of loss
2.3.1 幾何反投影模型
在目標識別過程中已經(jīng)獲得了目標在彩色圖像中對應(yīng)的像素位置。因彩色圖像和深度圖像分辨率不一致,因此需要采用圖像配準算法將彩色圖像與深度圖像對齊,獲得2 種圖像像素間的映射關(guān)系。經(jīng)過配準,可以將彩色圖像采樣到與深度圖像相同的分辨率,并將目標像素位置映射到深度圖像。
圖4 為相機模型,深度傳感器獲得了相機坐標系下點的深度值,即Zc。目標在圖像上的像素坐標由Bounding Box 確定,如圖4 中綠色矩形框所示。幾何反投影的目的是確定Bounding Box 范圍內(nèi)像素所對應(yīng)點云的三維坐標。結(jié)合相機內(nèi)參可以獲得目標在相機視場內(nèi)的點云。該過程見式(5):
圖4 相機模型Fig.4 Camera model
其中,p=(u,v) 表示像素坐標,Zc=Zw表示該像素對應(yīng)的深度,cx、cy、fx、fy為相機內(nèi)參數(shù),P= (Xw,Yw,Zw) 為該像素對應(yīng)的空間三維點坐標。
2.3.2 目標點云的生成如圖5 所示,配準后的彩色圖5(a)經(jīng)過神經(jīng)網(wǎng)絡(luò)識別確定目標所在Bounding Box 的坐標見圖5(b)。通過彩色圖像向深度圖像對齊確定Bounding Box 區(qū)域在深度圖像上對應(yīng)的像素坐標見圖5(c),使用式(5) 計算像素對應(yīng)的點云見圖5(d)。
圖5 目標點云的生成Fig.5 Generation of partial point cloud
2.3.3 基于ICP 算法的位姿計算
利用上述步驟提取的目標點云,通過點云匹配算法與其三維模板點云對齊,從而獲得2 個點云之間的坐標變換關(guān)系。模板點云是指從該目標CAD 模型對應(yīng)的標準點云。本文中使用迭代最近點算法(ICP)[17]實現(xiàn)點云匹配,它是一種點集對點集的配準方法,基本思路是以其中一個點云為基準,變換另一點云的位移和姿態(tài),使得2 個點云盡可能重合。ICP 算法需要構(gòu)造目標函數(shù),通過迭代優(yōu)化獲得2 種點云之間的旋轉(zhuǎn)矩陣和位移向量。
給定2 個點云集合見式(6)、式(7):
其中,P表示模板點云,Q表示目標點云,R為旋轉(zhuǎn)矩陣,t為位移向量。此時,式(8)中優(yōu)化問題轉(zhuǎn)化為尋找P和Q中對應(yīng)點。假設(shè)2 個點云中歐式距離最近的點為對應(yīng)點,每次迭代求得新的旋轉(zhuǎn)矩陣和位移向量后都重新尋找對應(yīng)點,直到目標函數(shù)足夠小為止。算法流程如圖6 所示,配準完成后即可得到目標在相機坐標系下的位姿。根據(jù)相機位姿可進一步得到目標在全局坐標系中的位姿。
圖6 ICP 算法流程圖Fig.6 The flow chart of ICP algorithm
通過上述步驟,系統(tǒng)已獲得目標相對AR 設(shè)備的位姿信息,為了在AR 空間實現(xiàn)動態(tài)目標的識別與定位,還需對位姿信息進行坐標系變換。坐標變換包含兩方面:一是由于AR 設(shè)備使用Unity 作為渲染引擎,其顯示空間遵從左手坐標系,所以首先需將位姿信息從右手系轉(zhuǎn)為左手系;另一方面,需要將位姿信息從相機坐標系轉(zhuǎn)到世界坐標系。假設(shè)目標相對于AR 設(shè)備坐標系的位姿為Thv,AR 設(shè)備提供了自身相對于世界坐標系的位姿Twh,則可以計算目標相對于世界坐標系的實時位姿Twv見式(9):
3.1.1 評價參數(shù)
目標識別精確率(Precision)的計算見式(10):
其中,TP(True Positive)為真陽性樣本數(shù)量,FP(False Positive)為假陽性樣本數(shù)量。
召回率(Recall)的計算見式(11):
其中,FN(False Negative) 為假陰性樣本數(shù)量。
平均精度(Average Precision,AP)是對Precision-Recall 組成的曲線(簡稱PR 曲線)上的Precision 值求均值,對應(yīng)的就是 PR 曲線下的面積,其定義為式(12):
其中,p(r)為PR 曲線函數(shù)表達式。
3.1.2 實驗結(jié)果
實驗中所有結(jié)果設(shè)置IoU閾值為0.5。即TP為IoU>0.5 時的檢測框樣本數(shù)量;FP為IoU≤0.5 時的檢測框數(shù)量;FN為未檢測出的樣本數(shù)量。實驗中,Precision為0.995,Recall為1,AP為0.995。高精度的原因是本應(yīng)用場景中訓(xùn)練集和測試集高度相似,且樣本數(shù)較少。對于航天操作這種固定場景的任務(wù)來說,不要求網(wǎng)絡(luò)具備較強的泛化能力,只要能準確識別出場景中的目標結(jié)構(gòu)即可。
本文方法對單張圖像的預(yù)處理耗時為0.2 ms,前向推斷耗時為4.6 ms,非極大值抑制耗時為9.2 ms。相比于位姿傳輸用時(與圖像流幀率相同,3 fps),目標檢測耗費的時間可以忽略不計。
3.1.3 可視化效果
本文所述場景目標位姿識別算法可以在線實時運行,為了驗證YOLO v5 網(wǎng)絡(luò)的識別效果,圖7展示了離線狀態(tài)下的部分結(jié)果。圖中綠色矩形框為網(wǎng)絡(luò)預(yù)測的Bounding Box,準確地定位了目標所在的位置。
圖7 目標識別結(jié)果Fig.7 Result of target recognition
圖8(a)為本文方法使用的模板點云,圖8(b)為使用計算結(jié)果位姿配準模板點云與目標點云的可視化效果??梢钥吹?雖然由于深度值的誤差,目標點云與模板點云在形態(tài)上差別很大,但是通過ICP 算法仍然能夠找到匹配的點云并配準成功。
圖8 模板點云及匹配效果Fig.8 Effect of point cloud registration
在AR 空間中,將上式計算得到的位姿值賦于目標的虛擬三維模型,可以使其準確疊加在真實目標上,效果如圖9 所示。圖中虛擬閥門準確與真實閥門匹配,此過程不依賴任何標志物或空間錨點。當(dāng)目標物體移動,系統(tǒng)可實時計算其空間位姿信息,實現(xiàn)動態(tài)目標的空間定位。
圖9 通過AR 設(shè)備實現(xiàn)操作目標的顯示與增強Fig.9 Information display and enhancement in the AR device
1)本文針對航天員AR 訓(xùn)練需求,提出了一種基于深度學(xué)習(xí)目標識別的航天員訓(xùn)練場景理解技術(shù),可不依賴任何標志物或空間錨點,動態(tài)實現(xiàn)AR 空間目標的定位。
2)通過YOLO v5 神經(jīng)網(wǎng)絡(luò)實現(xiàn)了航天員訓(xùn)練場景操作目標識別,獲得目標的邊界框,進而結(jié)合深度信息分割出目標點云,借助ICP 算法計算出目標位姿,從而實現(xiàn)了AR 空間動態(tài)目標的空間定位,可有效增強AR 設(shè)備場景理解能力,擴展了航天員AR 訓(xùn)練手段。
3)由于本文采用的AR 設(shè)備傳感器能力限制,其采集的深度圖分辨率較低,當(dāng)采集距離較遠或者目標結(jié)構(gòu)復(fù)雜時會出現(xiàn)顯著的深度誤差,由此獲得目標點云信息同樣失準,從而導(dǎo)致ICP 配準估計出的位姿信息出現(xiàn)較大偏差。后續(xù)將從提升深度信息準確性和提高ICP 配準算法等方面進一步優(yōu)化系統(tǒng)性能。
4)本文方法依賴目標點云的提取質(zhì)量,當(dāng)目標被遮擋時無法有效提取完整的點云文,后續(xù)可采用多種技術(shù)路線互補的方式滿足實際工程需要。