許 競,姜 波
(新疆大學 電氣工程學院,烏魯木齊 830047)
針對攝像機本身的運動分析在機器人視覺自主導航等領域有重要的作用[1],因為機器人所處的環境中存在各種隨機出現的動態和靜態障礙物,機器人必須對各種障礙物的性質作出快速和準確的判斷才能進行有效的避障行為。而機器人若要分析障礙物體的運動情況,首先需要對自己的運動有準確的認識。由于在機器人視覺導航中,攝像機本身隨著機器人發生運動,這將引起了圖像發生全局性的運動。傳統上通過圖像來定量描述全局運動參數的方法主要是基于光流場分析的方法[2~4],但是這種方法對噪聲、大位移量及遮擋背景和運動不連續而引起的界外值都非常敏感,如何利用雙目視覺技術來解決傳統方法對全局運動參數估計的精度與計算量是本算法的特點。
雙目立體視覺系統針對場景中的某一個空間點p(Xw, Yw, Zw)在左右平面的投影可以用如下的投影變換模型來描述:

其中(u1,v1)、(ur,vr)分別為空間點p于左右平面的投影點,M1、M2分別為左右相機的投影矩陣。在下一幀,由于相機發生了運動,點p于左平面的投影點變為(u'l,v'r),可以用如下的投影變換模型描述。

其中,R是3×3坐標系旋轉矩陣,T為3×1平移矩陣。由于機器人所處的環境為室內,運行地面平坦,坐標系旋轉變化只會發生繞Y軸旋轉的情況,所以R可簡化為如式(4)所示,其中Cφ , Sφ是φ的sin和cos值將其帶入式(3)。通過一系列特征點求解式(3)即可得到相機運動參數R、T。

基于以上分析,提出一種基于立體視覺的攝像機運動分析算法,主要包括三個部分:
1)特征點匹配。左右相機同一時刻幀之間的點匹配與左相機前后兩幀之間的點匹配。考慮到不同幀之間不同的性質,對特征點的匹配分別采用不同算法。
2)利用卡爾曼濾波預測與投影變換分析去除外點。
3)用除掉外點之后的點集來求解運動參數,并采用迭代法進一步優化提高參數的精確度。
為了預測相機坐標系與空間中一點p之間的相對運動,選取p點在相機坐標系三個軸方向的相對運動位移與速度為狀態變量建立卡爾曼濾波模型。由于在室內環境中,移動機器人運行平穩,而且在兩幀之間旋轉角度很小,故可將其視為干擾。選取的狀態變量記為:

考慮到相機采樣間隔較短,故在兩幀之間假設點p的運動速度保持不變,故可用勻速直線運動模型來逼近實際情況,引入的偏差用系統噪聲序列W (k)來補償。令dt為采樣間隔, k為采樣順序,則該離散系統的狀態方程為:

式中A為狀態轉移矩陣,且是一個臨界穩定系統; w (k)為系統噪聲, 認為其為零均值的高斯白噪聲,且其方差陣為cov(w)=Q, 它主要反映了勻速模型和實際軌跡間的偏差。
本系統的觀測方程反映了點p的圖像坐標與狀態變量之間的關系,記為:

其中H為系統觀測方程,為零均值且有cov(w)=Г的高斯白噪聲,該噪聲主要來源于成像過程中的幾何失真、圖像的離散化誤差及角點提取誤差等原因。根據相機投影變換模型式(3),將式(7)展開可以得到H的表達式,推導過程如式(8)所示。


最常用的提取特征點的方法是在圖像中提取Harris角點[6,7]。Harris定義的角點位于圖像二階導數的自相關矩陣存在兩個最大特征值的地方。實際情況中圖像可能發生平移和旋轉,而Harris算子在這些因素的影響下比較穩定。
提取到了特征點之后需要在同一時刻的左右兩幅圖像之間與在不同時刻的同一相機的圖像之間進行特征點匹配。由于兩個相機已經進行了立體標定,也就是說兩個相機的光軸在數學意義上嚴格平行,所以在同一時刻的左右兩幅圖像之間進行點匹配只需要在同一行之內進行搜尋即可。
在同一相機的不同幀之間搜尋特征點時,首先采用2.1節中提到的卡爾曼濾波模型對點的運動進行軌跡預測,然后以預測出來的點為中心,構建一個矩形框Ω,復制至左相機第二幀中,在第二幀新構造出的矩形框Ω'中尋找與待匹配點最相似的點。定義相似性度量準則為:

為了減少計算量,預先設定好閥值Th,首先于Ω'中尋找與待匹配點灰度值差小于Th的點集,進而計算點集中所有點的SAD,值最小所對應的點即為需要找的匹配點。具體的算法包括以下三個步驟。
1)選取Harris角點作為特征點,利用立體視覺知識在左右兩幅圖像中搜索對應點,并計算出該點此刻位于相機坐標系中的三維坐標。
2)利用卡爾曼濾波對點的運行軌跡進行預測,并以預測值為中心在下一時刻的左圖像中構建搜索矩形框,利用式(9)提出的相似性度量準則在矩形框中搜索特征點。
3)繼續利用卡爾曼濾波對點的運行軌跡進行預測,如果該點有運行處圖像范圍的趨勢,則返回至(1),若無,則返回(2)繼續搜索。圖1(a)至(d)給出了對一個特征點進行跟蹤的結果。其中矩形框是進行卡爾曼濾波預測后得到的待選區域,可見該區域將待選點包圍在內。

圖1 左相機跟蹤特征點結果
將式(3)展開,可得關于的線性方程組如式(10)所示,可整理為關于( cφ, sφ, x , y , z)的線性方程組如式(11)所示。

為了驗證本文提出的算法對相機運動估計結果的準確性,實驗用攝像機為維視公司生產的AFT-808HC工業相機,在PC(Inter Core2 E8400,1G內存)上對實驗數據(324x240圖像)利用VC++6.0進行驗證實驗。根據機器人實際運動情況,在參考幀與當前幀之間攝像機的運動情況為:繞y軸旋轉5°,向前平移10cm。故R、T如式(12)所示。

按照Zhang[10]的方法為兩臺攝像機分別進行標定與立體標定,得到左相機、右相機的內參數。圖2為選取左相機運動前后兩幀的實驗數據,圖中亮點為選取的15對特征點。經過2.2以及2.3中所敘述的步驟,求得相機運動參數向量( cφ, sφ, x , y , z )為 ( 0.9924 , 0.0954 , 7 , 5 , 112 )。 從 實驗所得的數據中可以看出,求得的相機運動參數具有較高的精度。

圖2 左相機不同幀圖像以及特征點
本文提出了一種基于立體視覺技術的攝像機運動分析方法。在特征點追蹤方面,基于攝像機投影變換原理提出了一種卡爾曼濾波模型用來預測被追蹤點的運動情況,同時規定了相似性度量準則,可以有效的排除外點對結果的干擾。得到幀間的匹配特征點后,利用立體視覺對特征點進行三維坐標測量,將測量數據與追蹤結果代入相機運動模型中,利用最小二乘法求解出相機運動參數。從實驗結果中可以看出,這種方法的精度完全可以滿足要求,由于在兩幀之間只需要對15個特征點進行三維測量、預測和匹配,所以也能滿足系統實時性的要求。
[1] 胡華梅, 肖曉明, 蔡自興.移動機器人視覺避障技術研究現狀與未來[C].中國人工智能第11屆全國學術年會, 北京: 北京郵電大學出版社, 2005.
[2] Nagel H.On a constraint equation for the estimation of displacement rates in image sequences [J].IEEE Transactions on Pattern Analysis and Machine Intelligence, 1989, 11 (1):13-30.
[3] 黃贊, 張憲民.改進的基于光流的魯棒多尺度運動估計算法[J].華南理工大學學報(自然科學版), 2009, 37(11):118-122.
[4] 朱興全, 羅哉, 薛向陽等.基于運動矢量的攝像機運動定性分類方法[J].計算機研究與發展, 2001, 38(4), 495-501.
[5] Hsu C T, Tsan Y C.Mosaics of video sequences with moving objects[C]//Proceedings of the IEEE International Conference on Image Processing(ICIP), Greece, 2001, 2: 387-390.
[6] Harris C G,Stephens M J.A Combined Corner and Edge Detector.Proceedings Fourth Alvey Vision Conference,Manchester, 1988: 147~151.
[7] 謝東海, 詹總謙, 江萬壽.改進Harris算子用于點特征的精確定位[J].測繪信息與工程, 2003, 28(2): 22-23.
[8] Lippiello V, Siciliano B, Villani L.Position and orientation estimation based on Kalman filter of stereo images[C].Proceedings of the 2001 IEEE International Conference on Control App lication.2001: 702-707.
[9] 付夢印, 鄧志紅, 張繼偉.Kalman濾波理論及其在導航系統中的應用[M].北京:科學出版社, 2003.
[10] ZHANG Zhengyou, MEMBER S.A flexib le new technique for camera calibration[J].IEEE Trans on Pattern Analysis And Machine Intelligence, 2000, 22(11): 1330- 1334.