雷越,鄧斌,何沛恒,徐新,左榮
基于單目視覺里程計的移動機器人自定位方法
雷越,鄧斌,何沛恒,徐新,左榮
(西南交通大學(xué) 先進驅(qū)動節(jié)能技術(shù)教育部工程研究中心,四川 成都 610031)
為解決在列車底部直線移動的機器人對風(fēng)管進行識別定位摘解時需到達(dá)兩節(jié)車廂之間的自定位問題,提出一種基于單目視覺里程計的自定位方法。該方法根據(jù)單目相機在列車底部豎直向上拍攝時圖像顏色較深,而當(dāng)相機將要到達(dá)兩節(jié)車廂之間時所拍攝圖像中會有明顯亮度變化區(qū)域的特點,選取關(guān)鍵幀圖像,通過圖像處理提取出圖像中目標(biāo)區(qū)域信息,根據(jù)所提出的運動估計算法估計相機自身的運動。最后,通過實驗計算得到該方法的絕對誤差為0.059 s,相對誤差為1.16%,驗證了該方法的可行性。
移動機器人;單目視覺里程計;關(guān)鍵幀選?。粓D像處理;運動估計
目前,列車風(fēng)管的摘解均采用人工方式操作,勞動環(huán)境差、摘解效率低、危險系數(shù)高。利用搭載視覺系統(tǒng)的移動機器人對風(fēng)管進行識別定位摘解能夠有效解決人工操作問題,而其中對在列車底部直線移動的機器人進行定位,使其能停在兩節(jié)車廂之間是移動機器人實現(xiàn)風(fēng)管識別定位摘解的重要條件。
近年來,基于視覺里程計(Visual Odometry,VO)的定位技術(shù)已成為機器人導(dǎo)航領(lǐng)域的重要研究熱點[1-3]。視覺里程計利用視覺傳感器采集圖像,通過一系列算法來估計自身的運動軌跡,具有結(jié)構(gòu)簡單、信息量大、適應(yīng)性強等優(yōu)點[4]。按照系統(tǒng)所使用的相機個數(shù)可將視覺里程計分為單目視覺里程計和立體視覺里程計[5]。立體視覺里程計一般采用兩個或兩個以上相機作為載體獲取圖像,可通過對級約束關(guān)系和三角測量原理得到深度信息,重建空間結(jié)構(gòu),但相機間標(biāo)定復(fù)雜,系統(tǒng)不穩(wěn)定,計算量大,實時性低且成本昂貴;單目視覺里程計采用單個相機為載體獲取圖像,雖難以獲得深度信息,但具備成本低廉、安裝方便、計算量小、實時性高的特點[6-7]。
在現(xiàn)階段VO領(lǐng)域,關(guān)于利用單目視覺里程計來解決實際問題的研究越來越多。文獻(xiàn)[8]為解決移動機器人的避障問題,提出一種可實時獲取移動機器人位姿的單目視覺里程計算法,根據(jù)實驗結(jié)果表明該算法實時性高,但誤差仍較大,還需進一步改進。文獻(xiàn)[9]為解決在相機快速運動時單目視覺里程計精度差和不穩(wěn)定的問題,提出一種基于樹結(jié)構(gòu)的特征匹配和實時地圖更新的單目視覺里程計算法,通過公開數(shù)據(jù)集對算法進行對比驗證,結(jié)果表明該算法具有不錯精度和魯棒性,但存在同一幀圖像曝光時刻不同產(chǎn)生較大誤差的問題。
本文針對移動機器人在列車底部行走的特點,提出一種基于單目視覺里程計的自定位方法,其流程如下,首先通過問題描述,建立相機運動模型,其次在對單目相機進行標(biāo)定矯正后,對單目相機所采集的圖像進行一定手段的處理,提取出目標(biāo)區(qū)域信息,然后通過理論分析,基于VO原理提出相機運動估計算法,最后搭建簡易實驗平臺驗證該方法的的精度和可行性。
在列車底部直線移動的機器人,如圖1所示,從鐵軌端頭進入兩節(jié)鐵軌之間,在列車車廂底部直線行走,當(dāng)移動機器人到達(dá)兩節(jié)車廂之間時停留,對風(fēng)管進行識別定位摘解,完成后移動至下兩節(jié)車廂繼續(xù)摘解,直至摘解完成。
圖1 移動機器人模型
針對移動機器人為到達(dá)兩節(jié)車廂之間需要對其運動進行定位使其能在兩節(jié)車廂之間停留的問題,建立如圖2所示的相機運動模型。將單目相機水平放置,垂直向上方采集圖像。其中相機到車廂底部距離為1,到鐵軌枕木距離為2,相機焦距為,相機視場角為,相機運動速度為,兩節(jié)車廂間距為,相機通過設(shè)定相應(yīng)幀數(shù),在不斷水平移動中進行圖像采集,當(dāng)相機在列車底部時,所拍攝照片整體背景較深,而當(dāng)相機將要移動到車廂之間時,所采集的圖像會存在明顯的亮度區(qū)域變化,因此通過對圖像進行一定處理計算即可對相機的運動進行估計,實現(xiàn)移動機器人自身的定位。
圖2 相機運動模型
首先建立相機投影模型如圖3,其中為相機坐標(biāo)系,為像素坐標(biāo)系,為相機光心,其中點像素坐標(biāo)為(1,2),設(shè)為現(xiàn)實世界中的三維點,在成像平面上的投影為,其坐標(biāo)為[,]T,其在世界坐標(biāo)系下的坐標(biāo)為[X,Y,Z]T。通過世界坐標(biāo)系與相機坐標(biāo)系的轉(zhuǎn)換關(guān)系,以及圖像坐標(biāo)系與相機坐標(biāo)系的轉(zhuǎn)換關(guān)系,結(jié)合投影透視模型可得到世界坐標(biāo)系與圖像坐標(biāo)系轉(zhuǎn)換方程式為:
式中:ff和c、c分別為方向的焦距和偏移量;、分別為旋轉(zhuǎn)矩陣和平移向量;1為相機內(nèi)部的參數(shù)矩陣;2為相機外部的參數(shù)矩陣。
其中相機內(nèi)部參數(shù)只與相機內(nèi)部結(jié)構(gòu)有關(guān),相機外部參數(shù)與相機所在位置有關(guān),相機在不同位置拍攝時的外部參數(shù)都不相同。通過相機標(biāo)定得到相機內(nèi)外參數(shù)具體數(shù)值后,便可利用相機內(nèi)部參數(shù)和外部參數(shù)來確定空間物體上某一點的三維坐標(biāo)與在圖像上對應(yīng)點之間的相互關(guān)系。
實際情況中,由于鏡頭制作工藝等原因,攝像機鏡頭會產(chǎn)生徑向和切向畸變[10],導(dǎo)致所采集的圖像失真,其中切向畸變產(chǎn)生于相機組裝過程等,徑向畸變產(chǎn)生于透鏡形狀等。因此通過相機標(biāo)定得到內(nèi)參系數(shù)后,使用內(nèi)參系數(shù)對圖像進行矯正,可提高后續(xù)對圖像進行處理時的精度,減小誤差,也是做好后續(xù)工作的重要環(huán)節(jié)和前提。
圖3 相機透視投影模型
為了得到相機的內(nèi)部參數(shù)矩陣?yán)肕atlab工具箱對相機進行標(biāo)定。單目相機采集的不同位置標(biāo)定板棋盤格圖像數(shù)量為20張,部分如圖4所示,棋盤格規(guī)格為9×10,正方形邊長為10 mm。
圖4 棋盤格采集圖像
通過系統(tǒng)計算得到標(biāo)定結(jié)果,相機的內(nèi)部參數(shù)矩陣為:
相機徑向畸變系數(shù)1、2、3為[0.0663,-0.0805,0];
相機切向畸變系數(shù)1、2為[0,0]。
得到相機內(nèi)部參數(shù)后,將各參數(shù)代入opencv圖像矯正算法中進行圖像矯正,處理結(jié)果如圖5所示。
圖5 圖像矯正
為后續(xù)工作的順利展開,在對該單目相機所采集的圖像進行矯正后,根據(jù)本方法的思路,需要對采集的圖片進行一定處理,處理流程如圖6所示。
圖6 圖像處理流程圖
首先將所采集的圖像進行預(yù)處理,其中包括將圖像灰度化和圖像灰度直方圖獲取以及全局閾值分割和開運算,完成預(yù)處理后對對目標(biāo)進行信息提取處理,得到所需參數(shù)進行計算。
利用全局即整個圖像的信息,如整個圖像的灰度直方圖,在整個圖像中只使用一個閾值對圖像進行分割,可以將整個圖像分割成兩個區(qū)域,包括目標(biāo)區(qū)域和背景部分。對于物體和背景對比較為明顯的圖像使用全局閾值法能很好的對圖像進行分割。具體操作為將所采集的圖像進行灰度化處理,利用Matlab等軟件繪制出灰度直方圖,選定直方圖中波谷處即最低點的灰度值作為全域閾值分割值,對圖像進行全局閾值分割,可以將目標(biāo)區(qū)域和背景區(qū)域進行分離。
通過形態(tài)學(xué)中的腐蝕與膨脹組合運算可以對二值圖像進行減噪處理,本方法采用形態(tài)學(xué)開運算即先腐蝕后膨脹運算,消除圖像上細(xì)小的噪聲,平滑物體的邊界,減小計算的誤差。
最后通過連通區(qū)域獲取算法找到目標(biāo)區(qū)域,繪制感興趣區(qū)域,并用紅框標(biāo)記,通過面積提取算法提取出目標(biāo)區(qū)域的面積、邊長等信息作后續(xù)計算,其中邊長通過面積除以圖像寬度像素得到。
取一張在實驗現(xiàn)場所拍攝的圖片作為示例,首先對其進行預(yù)處理,將其灰度化后得到灰度直方圖,根據(jù)灰度直方圖取得全局閾值為240,利用全局閾值分割法將圖像背景與目標(biāo)區(qū)域分割開,并顯示出所求目標(biāo)區(qū)域,預(yù)處理后的結(jié)果圖如圖7,再經(jīng)過上述所說算法進行一定處理提取出目標(biāo)區(qū)域信息,如圖8,通過算法得到目標(biāo)區(qū)域面積,通過計算獲得其邊長長度,為后續(xù)計算做準(zhǔn)備。
圖7 預(yù)處理結(jié)果
圖8 目標(biāo)區(qū)域提取結(jié)果
相機在運動中以固定幀率采集圖像時,如圖9所示,設(shè)其在-1時刻和時刻所采集的圖像分別為I-1和I。為現(xiàn)實世界中的三維點,在I-1、I中的成像點為p-1、p。通過這兩點的坐標(biāo)以及投影方程可得到相機在-1時刻到時刻的位姿變換矩陣T,t-1。其中T,t-1∈4*4,該矩陣可表示為:
式中:R,t-1為相機的旋轉(zhuǎn)矩陣;Q,t-1為相機的平移矩陣。
將所得一系列圖像進行計算估計得到變換矩陣,通過集成法集成所有矩陣可得到相機的全部運動軌跡。這也意味著VO是通過增量式一個位姿接著一個位姿重建軌跡。
圖9 幀間運動估計原理圖
由于視覺里程計是通過增量式方法重建運動軌跡,所以會產(chǎn)生累積誤差,需要對其進行優(yōu)化得到更加精確的運動軌跡[11],這也是視覺里程計在精確性方面面臨的主要問題。而本文基于單目視覺里程計的原理提出的新方法只需要對相機所拍攝的關(guān)鍵三至四幀圖片進行處理并估計其運動軌跡,因此累計誤差很小。
通過之前的相關(guān)工作,對相機所采集的圖片進行關(guān)鍵幀選取并進行圖像處理完成后,根據(jù)圖10所示,找到經(jīng)處理后剛出現(xiàn)白色區(qū)域的圖片設(shè)為1,前一幀圖片設(shè)為0,后一幀圖片設(shè)為2,然后依次設(shè)至,如圖11所示。單目相機在幀間運動時,相機在每幀時間內(nèi)移動距離雖相等,但根據(jù)相機投影成像特性有1>2,導(dǎo)致白色區(qū)域面積并不是線性增加,因此需要采用一種算法來進行運動估計。基于這一特點,為通過反推計算在1時刻白色區(qū)域邊長長度1在總區(qū)域長度0即一幀中所占用的時間,如圖12,提出一種推導(dǎo)算法。
圖10 相機關(guān)鍵幀選取
圖11 幀間圖像原理圖
圖12 I1幀反推原理圖
其步驟如下:
(1)首先對前幀的圖像進行處理并通過計算得到1,2,3, ...,x,取值為3~4即可;
(2)根據(jù)公式Δx-1=x-x1計算一階差分,得到Δ1, Δ2, Δ, ..., Δx;
(3)根據(jù)Δx的值列出一階差分表格,取得合理值Δ0;
(4)在1這一幀內(nèi)采用線性處理方法,白色區(qū)域在總區(qū)域長度中所占用的時間為:
式中:為相機一幀所用時間,s。
(5)得到后,可得:
為進行實驗驗證,根據(jù)移動機器人自身移動的特點,搭建如圖13所示的簡易實驗平臺,其中基座用于模擬移動機器人高度,電機絲杠組合模擬移動機器人的水平直線移動,圖像采集程序如圖14,通過電腦控制單目相機進行圖像采集,采集格式為數(shù)據(jù)流視頻格式,顏色空間為YUY2,輸出大小為640×480默認(rèn)值。
圖13 實驗平臺搭建圖
圖14 圖像采集程序
通過測量現(xiàn)場其余具體數(shù)據(jù),有相機到車廂底部距離1為610 mm,相機到鐵軌枕木距離2為240 mm,兩節(jié)車廂間距為1000 mm。相機成像角度為46°,相機焦距為4.3 mm,幀數(shù)為30,絲杠運動速度為0.15 m/s。
為驗證該方法的精度和可行性,將相機在0處距離車廂外側(cè)的水平距離設(shè)為定值,這里設(shè)置為270 mm,直接讓相機從0出發(fā),可得:
在系統(tǒng)采集完圖像后,如圖15所示,對這些圖像進行圖像處理,首先找到經(jīng)處理后首次出現(xiàn)白色區(qū)域的圖像1,根據(jù)運動估計算法,取的值為3,然后提取出1前一幀圖像0以及1后的兩幀圖片分別命名為2、3,經(jīng)過圖像處理提取出目標(biāo)區(qū)域,計算其面積并獲得其邊長,提取結(jié)果圖如圖16所示。
圖15 采集原圖
在計算得到各幀目標(biāo)區(qū)域邊長后,建立一階差分表,如表1,根據(jù)表中數(shù)據(jù)取Δ0為33.8000 p,按照式(3)計算出=0.0143 s,然后根據(jù)式(4)得到=5.0738 s,因此可得到該方法的絕對誤差為|t-|=0.059 s,由下式得:
(a)0(b)I
(c)I2 (d)I3
表1 一階差分表
針對在列車底部直線移動機器人的自定位問題,基于單目視覺里程計的原理,提出了一種解決移動機器人自定位的新方法。本文通過建立相機運動模型,對單目相機進行標(biāo)定矯正后,提出對所采集的圖像的處理方法,通過理論分析提出一種運動估計算法,最后通過搭建簡易實驗平臺對該方法的精度和可行性進行驗證。根據(jù)實驗結(jié)果計算出該方法的絕對誤差為0.059 s,相對誤差為1.16%,其中產(chǎn)生誤差的主要原因有:
(1)一階差分法的估計誤差;
(2)圖像處理誤差;
(3)現(xiàn)場測量數(shù)據(jù)誤差,后續(xù)工作還需繼續(xù)對其優(yōu)化。
通過實驗結(jié)果表明該方法可行且精度較高,該方法也為其它需要進行自定位的移動機器人提供了一種可行參考。
[1]Nister D , Naroditsky O , Bergen J R . Visual odometry[C]. Proceedings of the 2004 IEEE Computer Society Conference on Computer Vision and Pattern Recognition, 2004.
[2]F. Fraundorfer,D. Scaramuzza. Visual Odometry: Part II: Matching, Robustness, Optimization, and Applications[J]. IEEE Robotics & Automation Magazine,2012,19(2):78-90.
[3]李宇波,朱效洲,盧惠民,等. 視覺里程計技術(shù)綜述[J]. 計算機應(yīng)用研究,2012,29(8):2801-2805,2810.
[4]Cadena C,Carlone L,Carrillo H,et al. Simultaneous Localization And Mapping: Present, Future, and the Robust-Perception Age[J]. IEEE Transactions on Robotics,2016,32(6):1309-1332.
[5]R. Mur-Artal,J. D. Tardós. ORB-SLAM2: An Open-Source SLAM System for Monocular, Stereo, and RGB-D Cameras[J]. IEEE Transactions on Robotics,2017(5):1255-1262.
[6]趙文愷,李剛. 基于雙目相機的視覺里程計[J]. 計算機工程與設(shè)計,2020,41(4):1133-1138.
[7]烏萌,郝金明,高揚,等. 一種場景穩(wěn)健的單目視覺里程計算法[J]. 測繪科學(xué)技術(shù)學(xué)報,2019,36(4):364-370.
[8]趙黎明,陳寧. 基于平面單應(yīng)性的單目視覺里程計設(shè)計[J]. 計算機工程與應(yīng)用,2016,52(17):243-246,252.
[9]龐智華,齊臣坤. 一種魯棒的單目視覺里程計算法[J]. 計算機工程,2020,46(12):80-87.
[10]汪佳麗,王煒杰,馬振玲. 相機畸變的混合模型迭代檢校法[J].測繪通報,2019(4):103-106.
[11]祝朝政,何明,楊晟,等. 單目視覺里程計研究綜述[J]. 計算機工程與應(yīng)用,2018,54(7):20-28,55.
Self-Positioning Method of Mobile Robot Based on Monocular Visual Odometer
LEI Yue,DENG Bin,HE Peiheng,XU Xin,ZUO Rong
( Engineering Research Center of Advanced Drive Energy Saving Technologies, Ministry of Education, Southwest Jiaotong University, Chengdu610031, China )
In order to solve the self-positioning problem that the robot moving linearly at the bottom of the train is expected to reach the middle of two carriages when identifying, locating and disassembling the air duct, a self-positioning method based on monocular visual odometer is proposed. On the basis of the feature that the color of the image is darker when the monocular camera shoots vertically upwards from the bottom of the train, and when the camera is about to reach the middle of the two carriages, there will be obvious brightness changes in the image, the key frame image is selected, and the target area information in the image is extracted through image processing, and the camera's own motion is estimated according to the proposed motion estimation algorithm. It turns out that the absolute error of the method is 0.059s and the relative error is 1.16%, which verifies the feasibility of the method.
mobile robot;monocular visual odometer;key frame selection;image processing;motion estimation
TP24
A
10.3969/j.issn.1006-0316.2021.04.009
1006-0316 (2021) 04-0055-07
2020-10-29
雷越(1997-),男,四川成都人,碩士研究生,主要研究方向為機器視覺、機械結(jié)構(gòu)設(shè)計,E-mail:292755756@qq.com;鄧斌(1964-),男,湖北荊門人,博士,教授,主要研究方向為機電液一體化。