張 銳,王兆魁
(1.國(guó)防科技大學(xué) 空天科學(xué)學(xué)院,湖南 長(zhǎng)沙 410073; 2.清華大學(xué) 航天航空學(xué)院,北京 100084)
空間站長(zhǎng)期在軌維護(hù)和復(fù)雜科學(xué)研究的實(shí)施主要依賴航天員來(lái)完成。航天員在軌可用的工作時(shí)間通常非常有限。為了輔助航天員,提升其工作效率,國(guó)際上提出了多個(gè)艙內(nèi)輔助機(jī)器人項(xiàng)目,如PSA[1]、Astrobee[2]、Smart Spheres[3]、Int-Ball等。這些機(jī)器人多采用遙控方式運(yùn)行,其自主運(yùn)行及人機(jī)智能交互能力存在一定局限性,需要航天員在軌照料。為發(fā)展更自主的艙內(nèi)跟隨服務(wù)機(jī)器人,提升機(jī)器人的任務(wù)輔助能力,需要解決機(jī)器人對(duì)航天員的視覺(jué)跟蹤問(wèn)題。
指定服務(wù)航天員的穩(wěn)定、準(zhǔn)確跟蹤需要獲得良好的航天員檢測(cè)結(jié)果。人體檢測(cè)[4]方法通常用Haar[5]、Sift[6]、Hog[7]特征及這些特征的組合進(jìn)行顯著特征提取,再用支持向量機(jī)(SVM)[7]、競(jìng)爭(zhēng)分類器(boosted classifiers)[8]或隨機(jī)森林(random forests)[9]等分類器實(shí)現(xiàn)分類。用這些方法檢測(cè)站立或行走的人能得到較好的效果,但對(duì)于姿態(tài)多樣人體的檢測(cè)效果一般。近年來(lái),深度學(xué)習(xí)特別是深度卷積神經(jīng)網(wǎng)絡(luò)成為解決圖像問(wèn)題的主要方法。目標(biāo)檢測(cè)研究領(lǐng)域中,F(xiàn)aster R-CNN[10]、R-FCN[11]及基于回歸方法的YOLO[12]和SSD[13]模型取得了很好的效果。卡爾曼濾波器(Kalman filter)[14]、粒子濾波器(particle filter)[15]及概率模型(probabilistic model)[16]通常被用來(lái)完成準(zhǔn)確、連續(xù)的人體跟蹤任務(wù)。實(shí)現(xiàn)穿著多樣、姿態(tài)任意人體的穩(wěn)定跟蹤,是空間站艙內(nèi)輔助機(jī)器人實(shí)現(xiàn)對(duì)航天員跟隨飛行并提供即時(shí)任務(wù)輔助的重要前提。本文基于融合的彩色-深度(RGB-D)圖像,提出一種基于深度學(xué)習(xí)和概率模型的航天員跟蹤算法,有效避免了由于穿著相似、遮擋等可能造成的誤跟蹤問(wèn)題。
圖1 航天員視覺(jué)跟蹤算法框架Fig.1 Architecture of astronaut visual tracking algorithm
借鑒文獻(xiàn)[13]中SSD目標(biāo)檢測(cè)方法,設(shè)計(jì)了一種端到端的航天員檢測(cè)深度卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)包含圖像輸入層、特征提取層、多尺度預(yù)測(cè)層和非極大抑制輸出層,如圖2所示。
輸入的待檢測(cè)圖像尺寸均調(diào)整為300×300像素,并采用VGG-16網(wǎng)絡(luò)作為特征提取層進(jìn)行人體特征提取。在特征提取層上,設(shè)計(jì)了多尺度網(wǎng)絡(luò)層進(jìn)行多尺度檢測(cè)。用Conv4_2、Conv5_2、Conv6_2、Conv7_2、Conv8_2、Conv9_2進(jìn)行最終的多尺度檢測(cè)。
圖2 航天員檢測(cè)深度卷積神經(jīng)網(wǎng)絡(luò)Fig.2 Deep convolutional neural network for astronaut detection
對(duì)于分辨率300×300的輸入圖像,表1給出了各層中默認(rèn)邊界框的詳細(xì)設(shè)計(jì)參數(shù)。在6個(gè)多尺度層的每個(gè)單元上,預(yù)測(cè)相對(duì)于默認(rèn)邊界框形狀的偏差及這些默認(rèn)邊界框中是航天員的概率,共產(chǎn)生8 732個(gè)檢測(cè)結(jié)果。最終的檢測(cè)結(jié)果將通過(guò)非極大抑制算法從8 732個(gè)候選結(jié)果中求得,輸出所檢測(cè)到的位置及分類結(jié)果為航天員的概率。
為與未來(lái)在軌應(yīng)用情況盡可能保持一致,網(wǎng)絡(luò)訓(xùn)練的數(shù)據(jù)集圖像來(lái)源于在地面實(shí)驗(yàn)空間站模擬艙中通過(guò)手持相機(jī)錄制或艙內(nèi)監(jiān)控?cái)z像頭錄制的視頻。受試者在地面實(shí)驗(yàn)?zāi)M艙中模擬航天員操作或行走,其衣色可為淺藍(lán)、靛藍(lán)、墨綠。從記錄的視頻中挑選出3 250幅圖像,標(biāo)注真實(shí)邊界框和分類標(biāo)簽,完成訓(xùn)練數(shù)據(jù)集的制作。網(wǎng)絡(luò)訓(xùn)練目標(biāo)損失函數(shù)定義為定位損失和置信度損失的加權(quán)和,有
表1各層默認(rèn)邊界框設(shè)計(jì)參數(shù)
Tab.1 Design of default bounding boxes in each layer
(1)
訓(xùn)練時(shí),首先采用VGG-16訓(xùn)練好的模型參數(shù)初始化網(wǎng)絡(luò)特征層的參數(shù),并用零均值高斯分布初始化多尺度預(yù)測(cè)層參數(shù)。采用隨機(jī)梯度下降法進(jìn)行迭代計(jì)算,該算法的初始學(xué)習(xí)速率為0.001,權(quán)重為0.9,正則項(xiàng)為0.000 5。學(xué)習(xí)速率分別在20 000,40 000和60 000次迭代時(shí)依次減小10倍。網(wǎng)絡(luò)訓(xùn)練過(guò)程共包含80 000次迭代,網(wǎng)絡(luò)采用Caffe深度學(xué)習(xí)框架實(shí)現(xiàn),并基于圖像處理單元實(shí)現(xiàn)并行加速計(jì)算。
航天員跟蹤模塊流程如圖3所示。航天員跟蹤問(wèn)題主要為最大化后驗(yàn)概率問(wèn)題,即最大化概率,此概率可通過(guò)多種因素估計(jì)。本文目標(biāo)是通過(guò)RGB-D圖像數(shù)據(jù)實(shí)現(xiàn)跟蹤,獲得RGB-D圖像數(shù)據(jù),后驗(yàn)概率可描述為
(2)
argmaxPk(p|Li)Pk(p|Ii)
(3)
如果跟蹤模塊連續(xù)30次以上未得到滿足要求的檢測(cè)或跟蹤匹配結(jié)果,跟蹤過(guò)程將停止并退出。機(jī)器人將主動(dòng)報(bào)警以提示失去對(duì)服務(wù)航天員的連續(xù)跟蹤,并請(qǐng)求重新確認(rèn)跟蹤目標(biāo)。
圖3 航天員跟蹤模塊流程圖Fig.3 Flowchart of astronaut tracking module
為進(jìn)行服務(wù)航天員的位置預(yù)測(cè),需要獲取其相對(duì)于機(jī)器人的空間位置。選取檢測(cè)結(jié)果邊界框中心點(diǎn)(uman,vman)作為航天員在彩色圖像中的二維位置,如圖 4(a)所示。通過(guò)校準(zhǔn)彩色和深度相機(jī)間的視角差異,獲得融合的RGB-D圖像。用彩色和深度相機(jī)在多個(gè)視角場(chǎng)景下的棋盤拍攝圖像,并用GML Calibration Toolbox相機(jī)標(biāo)定軟件分別獲得彩色相機(jī)的內(nèi)參矩陣HRGB、外參矩陣RRGB和TRGB,以及深度相機(jī)的內(nèi)參矩陣HIR、外參矩陣RIR和TIR。隨后,將深度圖像中各像素點(diǎn)pIR與彩色圖像中各像素點(diǎn)pRGB進(jìn)行匹配,有
(4)
圖像融合只針對(duì)深度與彩色圖像的視角重疊部分。完成融合后,可得彩色圖像中各像素點(diǎn)對(duì)應(yīng)的深度值。航天員位置深度值Zman為檢測(cè)結(jié)果框內(nèi)距離最近6個(gè)稀疏采樣點(diǎn)的平均深度值,如圖 4(b)所示。航天員在彩色相機(jī)中的空間位置(XRGB,YRGB,ZRGB)為
(5)
此處,彩色相機(jī)的內(nèi)參數(shù)矩陣HRGB通過(guò)標(biāo)定為
(6)
通過(guò)簡(jiǎn)單的坐標(biāo)系旋轉(zhuǎn)和平移變換即可實(shí)現(xiàn)彩色相機(jī)坐標(biāo)系到Kinect相機(jī)體坐標(biāo)系間的轉(zhuǎn)換,如圖 4(c)所示。進(jìn)而求得航天員在Kinect相機(jī)體坐標(biāo)系下的三維位置(X,Y,Z)為
(7)
式中:d為彩色相機(jī)中心與Kinect相機(jī)體坐標(biāo)原點(diǎn)間的距離,d=13 mm。獲得人體相對(duì)于相機(jī)的空間三維位置坐標(biāo)后,設(shè)計(jì)改進(jìn)的卡爾曼濾波器來(lái)預(yù)測(cè)航天員在機(jī)器人體坐標(biāo)系中的空間位置。
連續(xù)幀之間的航天員運(yùn)動(dòng)可視為勻速運(yùn)動(dòng),因此卡爾曼濾波器采用勻速運(yùn)動(dòng)模型,狀態(tài)方程不包含加速度項(xiàng)。航天員運(yùn)動(dòng)可用下述測(cè)量模型進(jìn)行描述:
xk=Axk-1+wk
(8)
zk=Hxk+vk
(9)
運(yùn)動(dòng)模型中的狀態(tài)向量可表示為
xk=[SkVk]T
(10)
式中:Sk、Vk分別為航天員在機(jī)器人體坐標(biāo)系中的位置和速度矢量,Sk=[XkYkZk],Vk=[VXkVYkVZk]。由于連續(xù)幀之間可視作勻速運(yùn)動(dòng),因此可通過(guò)運(yùn)動(dòng)學(xué)方程獲得狀態(tài)轉(zhuǎn)移矩陣
Sk=Sk-1+Vk×Δt
(11)
Vk=Vk-1
(12)
圖4 RGB-D圖像及相關(guān)坐標(biāo)系定義Fig.4 Images of RGB-D camera and coordinate system definition
b1(Sk-Sk-1)
(13)
改進(jìn)的卡爾曼濾波器包含預(yù)測(cè)和校正2個(gè)階段。預(yù)測(cè)階段表示為
(14)
(15)
(16)
(17)
(18)
(19)
式中:Sk為服務(wù)航天員的測(cè)量位置值;Rthre為閾值,Rthre=30 cm。
空間位置預(yù)測(cè)將航天員視為質(zhì)點(diǎn)模型,考慮到空間站艙內(nèi)空間有限,航天員身體尺寸不可被忽略。運(yùn)動(dòng)中航天員身體尺寸范圍是彩色圖像中檢測(cè)到的邊界框,如圖5所示。因此,用當(dāng)前檢測(cè)結(jié)果邊界框與跟蹤結(jié)果邊界框的幾何相似性來(lái)描述概率Pk(p|Ii)。圖5中,實(shí)線矩形框表示第k-1幀中跟蹤到的航天員邊界框,虛線矩形框表示第k幀中檢測(cè)結(jié)果的邊界框。由于連續(xù)圖像幀間航天員的姿態(tài)、空間位置變化很小,故與之前跟蹤結(jié)果邊界框距離越近、形狀越相似的檢測(cè)結(jié)果更可能是所需要跟蹤的航天員。
圖5 彩色圖像中的檢測(cè)結(jié)果邊界框幾何相似匹配Fig.5 Geometric similarity matching of bounding box in color image
概率Pk(p|Ii)可描述為
(20)
(21)
(22)
(23)
為驗(yàn)證本文所提出的航天員跟蹤算法,在空間站模擬艙環(huán)境中,開(kāi)展了人體跟蹤實(shí)驗(yàn),并分析其結(jié)果。提出的算法基于C++語(yǔ)言,在Ubuntu16.04環(huán)境下實(shí)現(xiàn),通過(guò) NVIDIA TITAN X加速計(jì)算得到63幀/s的計(jì)算速度,可支持30幀/s實(shí)驗(yàn)視頻數(shù)據(jù)的實(shí)時(shí)處理。實(shí)驗(yàn)視頻數(shù)據(jù)采用Kinect相機(jī)錄制,分辨率為640×480。通過(guò)2組實(shí)驗(yàn)進(jìn)行驗(yàn)證,用墨綠色包絡(luò)框繪制出每幀圖像中跟蹤算法給出的跟蹤目標(biāo)判斷結(jié)果,驗(yàn)證跟蹤算法對(duì)指定目標(biāo)準(zhǔn)確、穩(wěn)定跟蹤的能力。
實(shí)驗(yàn)一,受試者將以多種失重姿態(tài)沿1.4 m×2.0 m的方形參考路徑運(yùn)動(dòng)。期間,受試者將以不同的姿態(tài)和相對(duì)位置呈現(xiàn)在相機(jī)視野中,通過(guò)是否能得到連續(xù)、準(zhǔn)確的跟蹤結(jié)果來(lái)評(píng)價(jià)跟蹤算法的性能。受試者衣色可為訓(xùn)練時(shí)的3種,本實(shí)驗(yàn)以最常見(jiàn)的淺藍(lán)色進(jìn)行討論。若判斷為跟蹤目標(biāo),則對(duì)應(yīng)航天員的檢測(cè)結(jié)果包絡(luò)框?qū)⒆優(yōu)槟G色。5種姿態(tài)下的參考路徑跟蹤實(shí)驗(yàn)如圖6所示。對(duì)于指定的跟蹤目標(biāo),提出的跟蹤算法始終能保持準(zhǔn)確的檢測(cè)和穩(wěn)定持續(xù)的跟蹤。
實(shí)驗(yàn)二,測(cè)試更常見(jiàn)的應(yīng)用情形,即機(jī)器人與所服務(wù)的航天員保持懸?;蚋S飛行并提供任務(wù)輔助。考慮一種常見(jiàn)情況,艙內(nèi)有2位航天員,均穿淺藍(lán)色的艙內(nèi)工作服。首先將與相機(jī)保持一定距離的受試者作為跟蹤目標(biāo),即圖7和圖8中左側(cè)的受試者。該受試者模仿在軌航天員工作和行走的多種肢體動(dòng)作。與此同時(shí),另一位受試者進(jìn)入或退出相機(jī)視野。2位受試者運(yùn)動(dòng)相距很近,跟蹤目標(biāo)圖像可能會(huì)被受試者部分或完全遮擋。圖 7中實(shí)驗(yàn)結(jié)果表明:存在相似目標(biāo)干擾情況下,跟蹤算法能對(duì)指定的左側(cè)受試者進(jìn)行穩(wěn)定的跟蹤。圖8中實(shí)驗(yàn)結(jié)果表明:跟蹤算法能較好地檢測(cè)相似目標(biāo)的遮擋,在指定的跟蹤受試者被其他穿著相似的受試者遮擋時(shí),能準(zhǔn)確檢測(cè)出跟蹤目標(biāo)被遮擋,有效避免了誤跟蹤。
圖6 不同姿態(tài)下的參考路徑跟蹤實(shí)驗(yàn)Fig.6 Reference path tracking test with five different postures
圖7 存在相似目標(biāo)干擾情況下的穩(wěn)定跟蹤實(shí)驗(yàn)Fig.7 Tracking with other subject entering and moving very close to target subject
圖8 遮擋檢測(cè)及誤跟蹤避免實(shí)驗(yàn)Fig.8 Occlusion detection for avoiding mistaken tracking
航天員視覺(jué)跟蹤是空間站艙內(nèi)跟隨服務(wù)機(jī)器人實(shí)現(xiàn)航天員跟隨飛行并提供任務(wù)輔助的重要前提。本文設(shè)計(jì)了深度卷積神經(jīng)網(wǎng)絡(luò),并對(duì)穿著、姿態(tài)和手勢(shì)多樣的人體進(jìn)行了檢測(cè),結(jié)合運(yùn)動(dòng)信息構(gòu)建了運(yùn)動(dòng)預(yù)測(cè)概率模型,完成了指定人體的穩(wěn)定、持續(xù)視覺(jué)跟蹤。采用包含大多數(shù)航天員活動(dòng)的視頻數(shù)據(jù)進(jìn)行了算法驗(yàn)證,實(shí)驗(yàn)結(jié)果表明:該算法可實(shí)現(xiàn)對(duì)穿著多樣、姿態(tài)任意的人體的穩(wěn)定跟蹤,并有效避免了由于穿著類似、圖像遮擋可能造成的誤跟隨問(wèn)題。本文提出的航天員跟蹤算法為空間站艙內(nèi)服務(wù)機(jī)器人實(shí)現(xiàn)對(duì)航天員的視覺(jué)跟蹤提供了較好的解決方案。該算法僅基于融合的RGB-D圖像,工程應(yīng)用時(shí)易于構(gòu)建和實(shí)現(xiàn),且算法包含的檢測(cè)和跟蹤模塊均具有很好的普適性,易于拓展到其他應(yīng)用場(chǎng)景,應(yīng)用到各類跟隨服務(wù)機(jī)器人中。