王 辰,鄭順義,朱鋒博,桂 力
(武漢大學(xué)遙感信息工程學(xué)院,湖北 武漢 430079)
隨著無人機(jī)技術(shù)和產(chǎn)業(yè)的發(fā)展,無人機(jī)在生活中變得越來越常見,無人機(jī)飛行安全成為一個(gè)備受關(guān)注的話題,飛行精度是無人機(jī)質(zhì)量檢測的重要指標(biāo)。為配合第三方質(zhì)檢機(jī)構(gòu)對無人機(jī)進(jìn)行質(zhì)量檢測,本文提出了一種基于多目視覺的無人機(jī)實(shí)時(shí)定位方法。
基于視覺的目標(biāo)檢測定位方法可以分為3類:基于單目視覺的目標(biāo)定位、基于雙目視覺的目標(biāo)定位和基于多目視覺的目標(biāo)定位。基于單目視覺的目標(biāo)定位是一個(gè)二維恢復(fù)三維的問題,需要一些輔助設(shè)備或信息來獲取深度信息,如剛體表面的多個(gè)相對位置已知的附加或自身標(biāo)識[1-2]、目標(biāo)在某已知面內(nèi)運(yùn)動[3-4]、參考數(shù)據(jù)[5-7]等?;诟郊踊蜃陨順?biāo)識的方法在距離較遠(yuǎn)時(shí)存在標(biāo)識識別困難的問題,限制目標(biāo)運(yùn)動軌跡在某一面內(nèi)不適用于無人機(jī)定位情形,參考數(shù)據(jù)不能適應(yīng)不同型號的無人機(jī),且在無人機(jī)距離較遠(yuǎn)時(shí)存在特征丟失、匹配困難的問題。雙目視覺通過模擬人眼立體觀測原理來實(shí)現(xiàn)目標(biāo)定位,在智能交通[8]、機(jī)器人抓取引導(dǎo)[9-10]等領(lǐng)域有著廣泛應(yīng)用,其主要缺點(diǎn)在于觀測視角有限。多目立體視覺原理和雙目立體視覺相同,但相比雙目立體觀測,多相機(jī)的使用一方面可以擴(kuò)大觀測范圍[11-12],另一方面也可以提供更多的多余觀測,提高定位結(jié)果的可靠性。
相比一般的運(yùn)動目標(biāo)定位,無人機(jī)定位具有范圍大、型號多樣、逆光成像等特點(diǎn),導(dǎo)致無人機(jī)成像暗,紋理、輪廓等信息丟失,人工發(fā)光或反光標(biāo)識難以識別。針對以上問題,本文提出了一種基于多目視覺的無人機(jī)定位方法。該方法使用多個(gè)標(biāo)定后的相機(jī)對飛行中的無人機(jī)進(jìn)行軟觸發(fā)同步圖像采集,使用背景差分、連通域分析、前方交會、重投影等技術(shù)實(shí)現(xiàn)無人機(jī)的自動檢測和定位。最終統(tǒng)計(jì)實(shí)際定位結(jié)果與預(yù)先設(shè)計(jì)的無人機(jī)飛行航線間水平和豎直方向偏差、偏差最大值及偏差標(biāo)準(zhǔn)差,以作為無人機(jī)飛行質(zhì)量評價(jià)的參考指標(biāo)。
為實(shí)現(xiàn)較大范圍的區(qū)域覆蓋,本文采用了多臺相機(jī)和多臺計(jì)算機(jī)組建局域網(wǎng)的方式。如圖1所示,無人機(jī)定位系統(tǒng)由數(shù)據(jù)采集端(相機(jī))、控制與處理端(計(jì)算機(jī))和數(shù)據(jù)傳輸通道(光纖、網(wǎng)線、路由器等)3部分構(gòu)成。單臺計(jì)算機(jī)和若干相機(jī)連接構(gòu)成一個(gè)分組,負(fù)責(zé)目標(biāo)范圍內(nèi)一塊區(qū)域無人機(jī)的定位,包括圖像同步采集、無人機(jī)自動檢測與定位等。其中圖像同步采集是指對運(yùn)動目標(biāo)進(jìn)行定位時(shí),為保證定位精度,需要控制多臺相機(jī)同時(shí)曝光,以保證定位結(jié)果精度[13]。這里采用的是計(jì)算機(jī)向與其相連的多臺相機(jī)同時(shí)發(fā)出觸發(fā)指令的方式來實(shí)現(xiàn)多相機(jī)同步采集圖像。多臺計(jì)算機(jī)間通過網(wǎng)線和路由器連接,構(gòu)建一個(gè)局域網(wǎng)。
圖1 無人機(jī)自動定位系統(tǒng)設(shè)計(jì)示意圖
構(gòu)建局域網(wǎng)的目的為完成多計(jì)算機(jī)間的時(shí)間校準(zhǔn)和無人機(jī)定位結(jié)果的匯總。其中多計(jì)算機(jī)間的時(shí)間校準(zhǔn)采用如下方式實(shí)現(xiàn):選擇一臺計(jì)算機(jī)充當(dāng)服務(wù)器端,提供時(shí)間基準(zhǔn)。其他計(jì)算機(jī)充當(dāng)客戶端,向服務(wù)器端發(fā)出時(shí)間查詢請求,并記錄當(dāng)前客戶端時(shí)間t1。服務(wù)器端收到時(shí)間查詢請求時(shí),將其當(dāng)前時(shí)間t2發(fā)送給相應(yīng)客戶端,客戶端收到t2時(shí),記錄下客戶端當(dāng)前時(shí)間t3,則客戶端和服務(wù)器端時(shí)間差Δt=t2-(t1+t3)/2。此過程通過局域網(wǎng)TCP通信實(shí)現(xiàn),在采集圖像前進(jìn)行,為多計(jì)算機(jī)的定位結(jié)果合并提供參考。無人機(jī)定位結(jié)果的匯總是指客戶端把其無人機(jī)定位結(jié)果發(fā)送到服務(wù)器端進(jìn)行匯總,得到無人機(jī)整體的飛行航跡。
相機(jī)標(biāo)定包括內(nèi)方位元素、畸變參數(shù)標(biāo)定和外方位元素標(biāo)定。內(nèi)方位元素和畸變參數(shù)通過控制場檢校獲取。外方位元素使用輔助標(biāo)志點(diǎn)過渡的方法獲取。
圖2 相機(jī)外殼輔助測量標(biāo)識示意圖(2個(gè)標(biāo)志點(diǎn)被遮擋)
(1)
(2)
Rout=RinRt
(3)
(4)
背景差分法是采用圖像序列中的當(dāng)前幀和背景參考模型作差來檢測運(yùn)動物體的一種方法,具有檢測運(yùn)動目標(biāo)速度快、檢測準(zhǔn)確、易于實(shí)現(xiàn)的特點(diǎn),其關(guān)鍵是背景圖像的獲取[14]。因采集圖像在無人機(jī)起飛前開始,本文采用各相機(jī)采集序列影像的第一張影像作為初始背景圖?;诒尘跋袼鼗叶戎禃r(shí)間分布符合高斯函數(shù)模型的假設(shè),使用一個(gè)全局的高斯函數(shù)模型
(5)
來表示某像素由環(huán)境變化引起的當(dāng)前影像與背景之間灰度值差值Idif(t)的概率分布P(Idif(t)),根據(jù)差值絕對值大小,使用閾值T1把當(dāng)前幀分為背景和前景,T2確定背景更新的范圍,即當(dāng)Idif(t)絕對值小于等于T2時(shí)才對背景圖相應(yīng)的區(qū)域進(jìn)行更新。背景圖使用如下更新函數(shù)進(jìn)行更新
B(t)=B(t-1)+ROUND(Idif(t)w(Idif(t)))
(6)
式中
(7)
式(7)是高斯函數(shù)的一個(gè)變體,表示權(quán)值。使用該函數(shù)計(jì)算權(quán)值的依據(jù)是一定時(shí)間內(nèi),灰度值變化滿足高斯分布,以當(dāng)前背景灰度值作為高斯分布的均值,當(dāng)前幀與背景灰度差值越大,其發(fā)生的概率越??;α是一個(gè)正常數(shù),α和T2的值越大,背景更新越快;ROUND()表示四舍五入取整;B(t)表示t時(shí)刻背景灰度取值;Idif(t)表示t時(shí)刻對應(yīng)幀I(t)與背景B(t-1)的灰度差值。
圖3為α=8、T1=10、T2=14時(shí)進(jìn)行運(yùn)動目標(biāo)檢測的測試結(jié)果。從圖中可以看出,本文使用的背景更新和差分方法可以有效地檢測到無人機(jī)。需要注意的是,在使用Idif(t)判斷前背景時(shí),并不對其取絕對值,因?yàn)楸尘笆翘炜?,無人機(jī)所在的區(qū)域會變暗,而非變亮。這樣,即便初始背景(第一幀)有無人機(jī),只要無人機(jī)運(yùn)動后的位置不與初始位置重合就不影響后續(xù)的檢測。
圖3 背景差分結(jié)果示意圖
因無人機(jī)在圖像上所成像為面狀,在使用背景差分獲得運(yùn)動目標(biāo)二值圖后得到的僅僅是像素級的變化顯著區(qū)域,并不具備物理含義。為了找到無人機(jī)對應(yīng)的區(qū)域,這里首先使用行掃描的方法[15]對二值圖進(jìn)行連通域標(biāo)記,并對鄰近連通域進(jìn)行合并,然后使用連通域的大小、包圍盒寬高比、包圍盒填充度(連通域大小和其包圍盒面積之比)等參數(shù)對連通域進(jìn)行分析篩選,找到無人機(jī)對應(yīng)的連通域。
由于噪聲、鳥等的干擾,實(shí)際在單張影像上得到的無人機(jī)候選連通域可能不止一個(gè),在使用不同影像上連通域的中心點(diǎn)進(jìn)行前方交會獲得無人機(jī)三維空間坐標(biāo)時(shí)需要進(jìn)一步進(jìn)行篩選。事實(shí)上,無人機(jī)的自主飛行是按照預(yù)先設(shè)計(jì)好的航線來進(jìn)行的,此航線信息可以預(yù)先獲取,假設(shè)無人機(jī)在飛行過程中不會偏離航線很遠(yuǎn),那么可以使用定位點(diǎn)坐標(biāo)距離預(yù)設(shè)航線的距離作為一個(gè)約束條件對交會結(jié)果進(jìn)行篩選。另外,本文還使用了無人機(jī)飛行速度(大小和方向夾角)作為一個(gè)約束條件。如果使用上述約束仍然得到多個(gè)交會結(jié)果,則將重投影像點(diǎn)誤差最小的交會點(diǎn)作為無人機(jī)三維空間坐標(biāo)最優(yōu)結(jié)果。
為了測試系統(tǒng)的圖像采集幀率、處理實(shí)時(shí)性和無人機(jī)定位精度,進(jìn)行了兩個(gè)試驗(yàn)測試。測試1主要驗(yàn)證圖像采集幀率和處理實(shí)時(shí)性,使用Basler相機(jī),分辨率為2592×1944像素,鏡頭水平視場角約為60°;測試2用于測試系統(tǒng)的定位精度。
測試1使用3組相機(jī)同時(shí)進(jìn)行圖像采集和處理測試,統(tǒng)計(jì)結(jié)果見表1,所得航跡如圖4所示。
表1 圖像采集與處理效率試驗(yàn)結(jié)果
從表1可以看出,3組相機(jī)圖像同步采集幀率在10 fps以上;單組數(shù)據(jù)處理時(shí)間小于0.1 s,達(dá)到了實(shí)時(shí)處理的水平。圖4為3臺計(jì)算機(jī)處理得到的無人機(jī)飛行軌跡,灰色為預(yù)設(shè)航線,(a)中不同顏色的線表示不同計(jì)算機(jī)的處理結(jié)果,(b)中淺灰色線為合并后的結(jié)果,S為無人機(jī)起降位置。本次飛行僅沿內(nèi)側(cè)環(huán)形預(yù)設(shè)航線飛行,部分軌跡缺失由線塔遮擋引起。
測試2通過在一組相機(jī)公共視野內(nèi)尋找兩個(gè)檢查點(diǎn),分別使用全站儀和本系統(tǒng)量測檢查點(diǎn)坐標(biāo),比較兩種方法量測結(jié)果偏差來進(jìn)行,結(jié)果見表2。
表2 系統(tǒng)測量精度驗(yàn)證結(jié)果 m
從表2可以看出,兩個(gè)檢查點(diǎn)的全站儀測量結(jié)果與本系統(tǒng)測量結(jié)果各坐標(biāo)分量偏差均小于0.5 m,點(diǎn)位距離偏差分別為0.48和0.28 m。用于測試的兩個(gè)相機(jī)的坐標(biāo)分別為(191.57,-24.21,-0.01)和(232.09,-24.49,-0.08),與檢查點(diǎn)的距離約為80 m,由此可以看出,該系統(tǒng)百米定位精度達(dá)到了0.5 m。
本文提出了一種基于多目視覺的無人機(jī)定位方法,并設(shè)計(jì)、實(shí)現(xiàn)了一套系統(tǒng)以驗(yàn)證方案的可行性、效率與精度。該系統(tǒng)通過多計(jì)算機(jī)和多相機(jī)聯(lián)合組網(wǎng)的分布式設(shè)計(jì)與并行處理,一方面擴(kuò)大了無人機(jī)觀測范圍,提高了定位結(jié)果的可靠性;另一方面也提高了數(shù)據(jù)的處理效率,達(dá)到了實(shí)時(shí)處理的水平。此外,該系統(tǒng)在圖像采集時(shí)的曝光時(shí)間確定,以及處理過程中圖像上無人機(jī)的檢測和無人機(jī)三維空間坐標(biāo)的解算均自動完成,極大地降低了工作量和對操作人員的要求。
參考文獻(xiàn):
[1] 解邦福.基于單目視覺的剛體位姿測量系統(tǒng)研究[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.
[2] BENALLAL M,MEUNIER J.Pose Estimation of Polygonal Object in Monocular Vision Using Parametric Equations of Vertices[C]∥IAPR Conference on Machine Vision Applications.[S.l.]:DBLP,2002:342-345.
[3] LIU C,ZHANG Y.3D Trajectory Reconstruction from Monocular Vision Based on Prior Spatial Knowledge[J].IEEE Sensors Journal,2016,16(3):817-822.
[4] JUNG S,JANG D,KIM M.An Approach to 3D Object Localization Based on Monocular Vision[J].Journal of Korea Multimedia Society,2008,11:1658-1667.
[5] XU S,LIU M.Feature Selection and Pose Estimation from Known Planar Objects Using Monocular Vision[C]∥IEEE International Conference on Robotics and Biomimetics.Shenzhen: IEEE,2014:922-927.
[6] DOIGNON C,ABBA G,OSTERTAG E.Recognition and Localization of Solid Objects by a Monocular Vision System for Robotic Tasks[J].Intelligent Robots & Systems Advanced Robotic Systems & the Real World Ir,1994(3):2007-2014.
[7] HOERMANN S,BORGES P V K.Robot Localization Using 3D-models and an Off-board Monocular Camera[C]∥IEEE International Conference on Computer Vision Workshops.Barcelona:IEEE,2011:1006-1013.
[8] LIU W,WANG Z,NING X,et al.An Object Recognition and Location Based on Binocular Stereo Vision[C]∥International Forum on Computer Science-Technology and Applications.Chongqing:IEEE Computer Society,2009:97-99.
[9] HUANG G,CHENG C.3D Coordinate Identification of Object Using Binocular Vision System for Mobile Robot[C]∥Automatic Control Conference.Nantou:IEEE,2014:91-96.
[10] 羅陸鋒,鄒湘軍,葉敏,等.基于雙目立體視覺的葡萄采摘防碰空間包圍體求解與定位[J].農(nóng)業(yè)工程學(xué)報(bào),2016,32(8):41-47.
[11] 王磊,胡超,吳捷,等.基于多相機(jī)的人臉姿態(tài)識別[J].計(jì)算機(jī)應(yīng)用,2010,30(12):3307-3310.
[12] 陳磊,高升,袁寶峰,等.基于多相機(jī)的空間機(jī)械臂視覺系統(tǒng)[J].航天返回與遙感,2014,35(3):35-42.
[13] 馮文灝.近景攝影測量[M].武漢:武漢大學(xué)出版社,2002.
[14] 萬纓,韓毅,盧漢清.運(yùn)動目標(biāo)檢測算法的探討[J].計(jì)算機(jī)仿真,2006,23(10):221-226.
[15] 馬吉甫,高雪峰.基于掃描線的連通域搜索算法[J].福建電腦,2006(12):121.