溫俊+李榕
摘 要: 提出一種基于單目視覺和慣性傳感器的視覺測量方法,當手持移動攝像頭時,利用慣性傳感器獲取攝像頭軌跡,再根據多視角測量原理,測量被測物體的大小、位置等信息;利用圖像特征點的移動信息抑制加速度傳感器的累積誤差。實驗證明測量結果誤差在2%以內,且該方法不需要任何攝像機外參數的先驗知識及定標參照物,可滿足實際測量需求。
關鍵詞: 手持式攝像機; 慣性傳感器; 視覺測量; 單目視覺
中圖分類號: TN98?34; TP391 文獻標識碼: A 文章編號: 1004?373X(2015)16?0088?04
Research on vision measurement of monocular Handheld camera
WEN Jun, LI Rong
(School of Physics and Telecommunication Engineering, South China Normal University, 510006, China)
Abstract: A vision measurement method based on monocular vision and inertial sensors is proposed. When the camera is moved by hand, the inertial sensors is used to obtain the camera track, and then the size, location and other information of the object under detection are measured according to the multi?view measuring principle. The mobile information of the image feature points is utilized to restrain the accumulated error of accelerometer. The experiment results prove that the error of the measured result is less than 2%. The method can meet the needs of the actual measurement.
Keywords: handheld camera; inertial sensor; vision measurement; monocular vision
視覺測量技術是一種坐標測量與視覺技術相結合的測量技術,其任務是利用二維圖像信息,計算其對應的三維世界信息,重點研究物體的幾何尺寸及物體的位置測量。在現代化生產中,視覺測量技術廣泛應用于工業自動化檢測、反向工程、機器人視覺等主動、實時測量過程[1?2]。其中,基于單目視覺測量系統,國內外的科研工作者已進行了大量的研究工作,但在這些研究中,單目視覺測量多為基于結構光方式、使用輔助標定物[3]或與特定的物理平臺結合[4]等方式進行測量。這些測量方式在一定程度上已滿足了生產、建設中的測量需求,但它們并不具有手持便攜性,不便于民用推廣。
因此,本文提出一種手持式單目視覺測量方法——使用攝像機與慣性傳感器相結合。本方法不但具有良好的便攜性、測量靈活性,且成本低。實驗結果表明其測量精度能滿足一般的測量需求。
1 視覺測量結構與原理
經典的視覺測量方法是使用雙目或多目結構,完成對三維空間點的測量,而本文是利用圖1中攝像機與慣性傳感器結合的單目結構,通過手持攝像機移動來模擬多目結構,從而完成測量。其測量原理如圖 2所示。Oc?xcyczc為攝像機坐標系,其中Oc表示光心。設世界坐標系與攝像機坐標系重合,空間點Pc在世界坐標系的齊次坐標為[xc,yc,zc,1]T,攝像機在不同角度下在圖像平面的投影點為mi(ui,vi),根據攝像機模型[5]有:
[zcuivi1=fx0u00fyv0001Ri -Ri Tixcyczc 1=KRiI -TiPc] (1)
式中[K=fx0u00fyv0001]為攝像機內參數矩陣,可根據文獻[6],預先使用棋盤對攝像機進行標定,計算出攝像機的內參數為:
[K=962.3970296.2050960.804231.668000] (2)
根據式(1)可知,只需求出攝像機移動過程中的旋轉矩陣Ri及平移向量Ti,即可恢復空間點Xc的坐標。結合實際手持移動情況,手持移動拍攝時,一般只在近x?y平面運動,z方向小范圍的移動對測量結果影響不大,故本文約定z軸移動距離為0,即 [T=txty0T]。
圖1 測量結構
圖2 測量原理
2 攝像機位姿求解
2.1 慣性傳感器
獲得攝像機位置及姿態信息最直接的方法是使用慣性傳感器,即陀螺儀和加速度計。本文除了采用慣性傳感器外,還引入數字羅盤數據,位姿求解結構框圖如圖3所示。
圖3 位姿求解結構框圖
使用互補濾波器[7?8]融合3種傳感器數據,解算出攝像機姿態[R],同時計算出加速度的重力場分量,結合MPU6050中加速計的輸出數據計算攝像機位移[T]。當攝像機運動時,將同時存在線運動和角運動,故位移計算中應對旋轉效應進行補償[9]。
速度[V]的迭代更新方程如下:
[Vn=Vn-1+Rn-1ΔVn+12Δθn×Vn] (3)
式中:[Vn-1],[Rn-1]分別為上一時刻的攝像機速度和姿態矩陣;[ΔVn=tn-1tna(t)dt],[Δθn=tn-1tnω(t)dt]分別是加速度和陀螺儀在[tn-1,tn]時間段內的速度增量和角度增量;[12Δθn×Vn]是速度的旋轉效應補償項。
位移[T]的迭代更新方程如下:
[Tn=Tn-1+Vn-Vn-12Δt] (4)
由于低成本加速度計的精度并不高,故直接經過二次積分所得位移的累積誤差較大,不能直接使用。本文將引入圖像信息,對加速度計進行補償,可大大減少其累積誤差。
2.2 數字圖像處理
使用圖像處理技術獲得攝像機位姿信息的經典方法如文獻[10]所描述,是通過計算2幅圖像之間的基礎矩陣[F],然后再結合攝像機內參數矩陣[M]求解本質矩陣[E],根據本質矩陣可獲得攝像機的位姿信息。但此方法需匹配特征點和求解矩陣方程,運算量大,且2幅圖像間距離不能太小,否則求解的基礎矩陣[F]誤差較大。結合本設計方法,攝像機只作小范圍移動,且圖像信息需實時修正加速度計的積分誤差,計算量不宜過大,故本文直接對每幀幀間特征點距離作統計,可以得到攝像頭在x?y平面的幀間移動距離:
[Tfn=i=1kmin-min-1k] (5)
式中:[mn],[mn-1]為前后兩幀對應的特征點坐標。
圖像處理過程如圖4所示。
圖4 圖像處理過程
由于攝像機移動過程中包含平移和旋轉運動,而無論是攝像機平移或旋轉,都會使圖像發生移動,旋轉補償是為了去除幀間移動距離的旋轉分量。令旋轉分量為[Tfr],平移分量為[Tft],則有:
[Tf=Tft+Tfr] (6)
設攝像機繞光心[O]旋轉[R],世界點[P],在旋轉前后的坐標分別為[P],[P′],其投影在圖像平面的點分別為[p],[p′]。根據攝像機模型[5]可知:
[p=KP, p′=KP′, P′=RP]
式中:[K]為攝像機內參數矩陣;[R]為旋轉矩陣,聯合三式有:
[p′=KRK-1p]
則可由式(6)得:
[Tft=Tf-Tfr=Tf-(KRK-1-I)p] (7)
2.3 傳感器與圖像信息融合
由攝像機模型可知,當攝像機移動時,連續兩幀之間的攝像機位移[ΔT]與[Tft]有如下關系:
[ΔT=kTft] (8)
式中[k=zf],z為被測點與攝像機的距離,[f]為攝像機焦距。
則有攝像機移動速度:
[V=ΔTΔt=kTftΔt=kVf] (9)
式中[Δt]為采樣周期,[Vf]為特征點的移動速度。
設短時間[tn,tm]內加速度計的偏移量為常量[ab],加速度計測量值為[as],真實值為[a],則有:
[ΔVs-ΔV=tntmas-adt=tntmabdt=abtmtn]
得:
[ab=ΔVstm-tn-ΔVtm-tn] (10)
對于[tn≤ti≤tm]有:
[ΔVi=tntias-ab-amdt+tntiamdt]
令[am=ΔVtm-tn],結合式(10),有:
[ΔVi=tntias-ΔVstm-tndt+tntiΔVtm-tndt] (11)
同理,結合式(9),有:
[ΔVi=ktntiaf-ΔVftm-tndt+tntiΔVtm-tndt] (12)
則有:
[tntias-ΔVstm-tndt=tntiaf-ΔVftm-tndt]
記[ΔVsi′=tntias-ΔVstm-tndt],[ΔVfi′=tntiaf-ΔVftm-tndt]。
離散化后,有:
[ΔVsi′=kΔVfi′=Vsi-Vsn-ΔVsim-n=kVfi-Vfn-ΔVfim-n] (13)
則令代價函數為[i=nmΔVsi′-kΔVfi′],求取使代價函數最小化時的k值,把k代入下式,可得速度的修正方程如下:
[V=wVs+1-wkVf] (14)
式中w為修正系數。結合速度、位移更新方程式(3),式(4)可求得融合后的位移[T]。
3 實驗與結果
本文通過手持圖1的實驗裝置,對目標盒子進行拍攝測量,測量過程中,攝像機拍攝目標盒子,先靜止再沿y軸移動一小段距離,然后再靜止完成測量,整個過程目標物體必須保持靜止,且在攝像機拍攝范圍內。實驗裝置的攝像機使用USB攝像頭,傳感器使用MPU605三軸陀螺儀、三軸加速度計和HMC5883三軸數字羅盤,通過USB轉I2C接口直接讀取數據,測量算法在PC端實現。
攝像機的姿態矩陣[R]直接由互補濾波器解算得到,位移[T]根據前面所述方法求解。圖 5顯示了求解位移[T]過程中各數據的曲線,加速度計輸出及去除重力分量后的數據曲線如圖5(a)所示,從圖5(e),圖5(f)可以看出,由于加速度計飄移的影響,當手持不動時,單獨使用其輸出的數據求得的速度[Vsy]并不為零,導致[Tfy]的誤差隨測量時間增大而增大。圖5(b)是特征點跟蹤的效果圖,其中點A,B,C是待測量的特征點,根據2.2節的方法,對特征點進行統計處理,得到圖5(c)的特征點移動曲線及旋轉補償后的數據曲線。最后根據2.3節的方法計算系數k,修正加速計累積誤差,圖5(e),圖5(f)顯示修正前后的速度及位移曲線,可以明顯看出圖像信息很好地糾正了速度及位移的累積誤差。
把[R],[T],代入式(1)求得特征點A,B,C的世界點坐標值如表1所示。
表1 特征點的世界坐標 cm
盒子實測值AB長22.5 cm,BC長16.5 cm,視覺測量值為:
[AB=xB-xA2+yB-yA2+zB-zA2=22.91 cm]相對誤差為1.83%。
[BC=xC-xB2+yC-yB2+zC-zB2=16.18 cm]
相對誤差為1.95%。
由此可見,其計算結果與實際情況基本相符,可達到實際測量的精度要求。
4 結 語
本文采用傳感器與攝像機結合的模式,通過手持移動模擬多目立體視覺,避免了運用多個攝像機所帶來攝像機參數不一致的誤差,并融合了傳感器與攝像機兩者數據,同時通過增加拍攝視頻長度來獲取更多視角圖像,提高了實際測量結果的精確度與可靠性。實驗結果表明,由于該方法不需要攝像機外參數的先驗知識,也不需要定標參照物且結構簡單、使用簡單,因此,該方法易于推廣應用。
參考文獻
[1] 葉聲華,邾繼貴,王仲,等.視覺檢測技術及應用[J].中國工程科學,1999(1):49?52.
[2] 馬驪群,王立鼎,靳書元,等.工業大尺寸測量儀器的溯源現狀及發展趨勢[J].計測技術,2006(6):1?5.
[3] 黃桂平,李廣云,王保豐,等.單目視覺測量技術研究[J].計量學報,2004(4):314?317.
[4] 彭永強,李祖樞,薛方正.基于舵機云臺的人型機器人單目視覺測距[J].計算機測量與控制,2009(11):2253?2255.
[5] 吳福朝.計算機視覺中的數學方法[M].北京:科學出版社,2008.
[6] ZHANG Zhengyou. A flexible new technique for camera calibration [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22(11): 1330?1334.
[7] EUSTON M, COOTE P, MAHONY R, et al. A complementary filter for attitude estimation of a fixed?wing UAV [J]. IEEE/RSJ International Conference on Intelligent Robots and Systems, 2008, 22(26): 340?345.
[8] 梁延德,程敏,何福本,等.基于互補濾波器的四旋翼飛行器姿態解算[J].傳感器與微系統,2011(11):56?58.
[9] 鄧志紅,付夢印,張繼偉,等.慣性器件與慣性導航系統[M].北京:科學出版社,2012.
[10] 莊曈,曾慶化,劉建業,等.一種基于單目視覺的微型無人機姿態算法[J].計算機工程,2012(15):197?200.endprint