魏焱 符秀輝
摘要:闡述移動機器人定位技術在機器人技術中的重要性,提出在單目視覺的條件下實現對于移動機器人的定位,并在實際室內環(huán)境運用單目相機、智能小車以及halcon軟件平臺進行試驗,先通過相機標定得到相機參數,再運用相機在實驗現場實際采集圖像,利用相機參數和采集到的圖像信息來定位智能小車,得出了小車實際坐標位置,證明本文提出的方法有效。
關鍵詞:單目視覺;特征提取;移動機器人;定位
中圖分類號:TP24文獻標識碼:A
移動機器人的定位是機器人最基本亦是最重要的功能之一,[1]假如無法完成機器人定位,那機器人要完成事先規(guī)劃的任務僅是空談而已。目前機器人定位技術可分為位置跟蹤和全局定位兩種,[1]位置跟蹤是指通過測量機器人相對于初始參考位置的方向和距離來確定當前位置。全局定位的挑戰(zhàn)性更大,它要求機器人可以在對初始位置沒有任何認知的條件下,直接通過外部傳感器感知信息確定位置與姿態(tài)。作為一個近年來熱門的研究領域,機器視覺的技術要點是物體的幾何尺寸以及物體在空間的位置、姿態(tài)等的測量。[3]
1 單目相機模型
單目視覺測量是指僅使用一臺視覺傳感器(如攝像機)來進行測量工作,因為需要的傳感器少,因此單目視覺結構簡單、相機標定相對簡便,同時也避免了雙目立體視覺中視場小、匹配難的不足,[2]所以經綜合考慮本文選擇單目視覺方案。
在進行測量之前,必須進行相機標定,獲得相關相機參數,才能繼續(xù)完成測量過程。為了標定相機,首先要創(chuàng)建一個模型將世界坐標系中三維空間點投影到二維圖像中,[4]如圖1所示。其中,幾個坐標系分別表示為世界坐標系(xw,yw,zw),攝像機坐標系(xc,yc,zc),圖像坐標系(r,c),成像平面坐標系(u,v)。Sx和Sy是縮放比例因子,表示相鄰像素之間分別在水平和垂直方向上的距離。f表示相機主距,并非相機的焦距。點P為世界坐標系中的點Pw在成像平面上的投影。[4]
將世界坐標系中的點Pw變換到它在成像平面上的點P需要如下四步:
第一步,通過式(1)將Pw變換到攝像機坐標系中的點Pc,
Pc=RPW+T(1)
其中,R=R(α,β,γ)是旋轉矩陣,α,β,γ分別表示繞攝像機坐標系x軸、y軸、z軸的旋轉角度,T=(tx,ty,tz)T是平移向量,R和T中的6個參數(α,β,γ,tx,ty,tz)稱為相機的外參數,它們決定了攝像機坐標系與世界坐標系之間的相對位置。[10]
第二步,由式(2)將攝像機坐標系中的點Pc轉換到成像平面中,它們之間存在透視投影關系。
uv=fzcxcyc(2)
第三步,在不考慮鏡頭畸變時,世界坐標系中的點Pw和成像平面上的投影點P之間的連線直接通過相機的光學中心,在大多數情況下,鏡頭畸變可以近似看作徑向畸變[4][7],即
(3)
其中參數k決定畸變程度,假如k為正值,畸變?yōu)檎硇突儯患偃鏺=0,則沒有畸變;假如k為負值,則畸變?yōu)橥靶突儭?/p>
第四步,最終通過式(4)將畸變后的成像平面坐標~u,~v轉換為圖像坐標。
(4)
其中,Cx、Cy表示圖像中心點,這個點和投影中心的連線垂直于成像平面,是通過垂直投影來投影在成像平面上。
由此我們可以知道,相機標定實際上是確定相機內參(f,k,Sx,Sy,Cx,Cy)和相機外參(α,β,γ,tx,ty,tz)的過程。[4]
2 單目相機標定
首先調節(jié)好鏡頭光圈以及聚好焦并保持不變,接著在鏡頭前不斷變換標定板位姿,采集多幅圖像,如圖2所示。
當采集完成后,利用Halcon結合采集的多幅標定板圖像進行標定。Halcon是德國MVtec公司開發(fā)的圖像處理軟件,它擁有綜合標準軟件庫和機器視覺集成開發(fā)環(huán)境,[4]支持多種操作環(huán)境。Halcon提供了豐富的函數庫,整個函數庫可以用多種編程語言開發(fā),大大提高了開發(fā)效率,而且執(zhí)行速度快,具備良好的跨平臺移植性。
其過程如下:首先由相機采集標定板某一幀圖像,接著通過閾值分割算法將標定板區(qū)域與背景分離;其次利用Canny濾波器提取標定板各特征圓邊緣,然后采用Fitzgibbon[5]提出的通過線性方法來最小化代數差以得到擬合橢圓,該算法具有很好的穩(wěn)健性,可以抑制邊緣中孤立點對邊緣擬合的影響。[4]最終提取出橢圓最小的外接四邊形,可以很容易確定特征點及其與圖像中投影之間的關系。
標定結果如下:相機焦距f=0.00503229m,畸變系數k=-4249.42,水平方向上相鄰像素之間距離Sx=2.19743×10-6m,垂直方向上相鄰像素之間距離Sy=2.2×10-6m,圖像主點坐標Cx=1253.36,Cy=1000.45。
3 現場定位實驗
3.1 引言
完成相機標定后,將相機拿到實驗室安裝在實驗所用大理石平臺正上方支架上固定好位置。這里需注意保證實驗臺水平和相機位置固定,通過這一約束保證圖像點和空間點一一對應。接著在智能車上安裝靶標,對小車處于平臺上不同位置時進行采樣,如圖3所示。
3.2 閾值化
采集完圖像后,首先通過閾值分割算法剔除部分像素,將靶標區(qū)域與背景區(qū)域分開。首先把圖像的像素點按照不同的特征閾值分成若干類,然后按照一定的標準f(x,y)獲得特征值T,將原圖分割為兩部分,從而初步消除復雜背景對圖像處理的干擾。通過Halcon算子threshold()即可實現這一步。
3.3 特征選擇與提取
然后需通過特征提取算法提取出靶標特征圓并得到圓心位置,本文采用一種改進的SURF特征提取算法,SURF(Speed Up Robust Features)特征提取算法是一種具有魯棒性的局部特征檢測算法[12],其主要步驟如下:
(1)生成尺度空間。
運用不同尺寸的濾波器與原圖像進行卷積,獲得圖像金字塔,即生成圖像的尺度空間。
(2)檢測關鍵點。
SURF算法是通過采用快速Hessian矩陣法來定位特征點。計算待選特征點及其周圍點的Hessian值,認為極大值點即為特征點[11]。像素的Hessian值由原圖和Hessian矩陣得到。
(3)分配關鍵點方向。
以特征點為中心,在一定鄰域內對60°扇形里的所有點在水平和垂直方向的Haar小波相應值進行累加,最大的Haar相應累加值即為該特征點對應的主方向。
(4)生成特征點描述子。
以特征點為中心,將20×20d(d為該特征點所在尺度)的圖像區(qū)域劃分成4×4個子塊,每個子塊統(tǒng)計25個像素相對主方向的水平方向之和∑dx、水平方向絕對值之和∑|dx|、垂直方向之和∑dy 和垂直方向絕對值之和∑|dy|。每個子塊得到如上4個特征值,因此每個特征點可得到64維向量。在此基礎上可進行特征點的匹配。
本文對SURF特征提取算法進行了部分改進,采用兩級匹配,即SURF初級匹配與select_shape()算子相結合的方式提高匹配精度。select_shape()是一個功能強大的算子,它先通過形狀初步確定特征提取區(qū)域,再通過比較各區(qū)域面積提取出所需特征,特征提取結果如圖4所示。
3.4 特征點邊緣檢測
特征提取成功后,為了計算出特征點圓心坐標,需要進行邊緣檢測得到特征點輪廓后再進行橢圓擬合,為了更好的提取出邊緣,本文采用一種改進的Canny邊緣檢測算法。Canny邊緣檢測算法的基本思想是先去噪,選用二維高斯函數的任意方向上的一階導數為噪聲濾波器,通過和圖像卷積進行濾波達到去噪效果。
圖像去噪后運用一階差分算子分別在水平方向和垂直方向上計算梯度幅值分量,得到圖像梯度的幅值和方向,在梯度方向上幅值最大的點即為邊緣點。[12]
本文對該算法的改進是用形態(tài)學方法結合Canny邊緣檢測算法提高檢測精度,先將特征點進行形態(tài)學膨脹處理,充分保留其邊緣區(qū)域,隨后對特征點進行Canny邊緣檢測,提取出特征點的邊緣,其效果圖如圖5所示。
3.5 計算特征點圓心坐標
完成特征點邊緣檢測和橢圓擬合后,接下來利用相機之前標定好的參數以及在標定之前確定的世界坐標,通過image_points_to_world_plane()算子去求出各特征點圓心實際世界坐標。
接下來手動測量特征點的位置,并與實驗中得出的結果進行比較,將各個位置坐標繪制成下表。
根據比較實驗結果,本文所采用定位方法誤差小,精度較高,可滿足定位要求。
4 小結與展望
基于單目視覺的移動機器人定位具有系統(tǒng)結構簡單、設計實驗方便的優(yōu)點,本文實驗方法經驗證可行,但是目前使用此種靶標具有特征點太多、提取復雜的缺點,因此下一階段工作可以考慮重新設計一款特征顯著且特征點不密集的靶標,進一步改進該定位方法。
參考文獻:
[1]厲茂海,洪炳镕,羅榮華,等.基于單目視覺的移動機器人全局定位[J].機器人,2007,29(2):140144,178.
[2]牛凱,項輝宇,于修洪.基于序列圖像的沖壓件檢測系統(tǒng)研究[J].機電產品開發(fā)與創(chuàng)新,2011,24(3):135137.
[3]黃桂平,李廣云,王保豐,等.單目視覺測量技術研究[J].計量學報,2004,25(4):314317.
[4]羅珍茜,薛雷,孫峰杰,等.基于HALCON的攝像機標定[J].電視技術,2010,34(04):100102.
[5]FITZGIBBON A,PILU M,FISHER R B.Direct least square fitting of ellipses[J].IEEE Transactions on Pattern Analysis and Machine Intelligence,1999,21(5):475480.
[6]朱佩.基于機器視覺的移動機器人機械臂控制系統(tǒng)設計與實現[D].南京:東南大學,2015.
[7]S.LANSER,C.ZIERL,R.BEUTLHAUSER.Multibildkalibrierung einer CCDKamera.In G.SAGERER,S.POSCH,F.KUMMERT,EDITORS,Mustererkennung,Informatik aktuell,pp.481491.SpringerVerlag,Berlin,1995.
[8]田曉燕.基于機器視覺的移動機器人機械臂控制系統(tǒng)設計與實現[D].西安:西北大學,2006.
[9]邵澤明.視覺移動機器人自主導航關鍵技術研究[D].南京:南京航空航天大學,2009.
[10]唐品,趙曦,趙群飛.基于機器視覺的電梯導軌垂直度檢測[J].計算機工程,2012,38(12):161164.
[11]陳敏,湯曉安.SIFT與SURF特征提取算法在圖像匹配中的應用對比研究[J].現代電子技術,2018,41(7):4144.
[12]徐亮,魏銳.基于Canny算子的圖像邊緣檢測優(yōu)化算法[J].科技通報,2013,29(7):127131,150.