溫俊+李榕
摘 要: 提出一種基于單目視覺和慣性傳感器的視覺測(cè)量方法,當(dāng)手持移動(dòng)攝像頭時(shí),利用慣性傳感器獲取攝像頭軌跡,再根據(jù)多視角測(cè)量原理,測(cè)量被測(cè)物體的大小、位置等信息;利用圖像特征點(diǎn)的移動(dòng)信息抑制加速度傳感器的累積誤差。實(shí)驗(yàn)證明測(cè)量結(jié)果誤差在2%以內(nèi),且該方法不需要任何攝像機(jī)外參數(shù)的先驗(yàn)知識(shí)及定標(biāo)參照物,可滿足實(shí)際測(cè)量需求。
關(guān)鍵詞: 手持式攝像機(jī); 慣性傳感器; 視覺測(cè)量; 單目視覺
中圖分類號(hào): TN98?34; TP391 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 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
視覺測(cè)量技術(shù)是一種坐標(biāo)測(cè)量與視覺技術(shù)相結(jié)合的測(cè)量技術(shù),其任務(wù)是利用二維圖像信息,計(jì)算其對(duì)應(yīng)的三維世界信息,重點(diǎn)研究物體的幾何尺寸及物體的位置測(cè)量。在現(xiàn)代化生產(chǎn)中,視覺測(cè)量技術(shù)廣泛應(yīng)用于工業(yè)自動(dòng)化檢測(cè)、反向工程、機(jī)器人視覺等主動(dòng)、實(shí)時(shí)測(cè)量過(guò)程[1?2]。其中,基于單目視覺測(cè)量系統(tǒng),國(guó)內(nèi)外的科研工作者已進(jìn)行了大量的研究工作,但在這些研究中,單目視覺測(cè)量多為基于結(jié)構(gòu)光方式、使用輔助標(biāo)定物[3]或與特定的物理平臺(tái)結(jié)合[4]等方式進(jìn)行測(cè)量。這些測(cè)量方式在一定程度上已滿足了生產(chǎn)、建設(shè)中的測(cè)量需求,但它們并不具有手持便攜性,不便于民用推廣。
因此,本文提出一種手持式單目視覺測(cè)量方法——使用攝像機(jī)與慣性傳感器相結(jié)合。本方法不但具有良好的便攜性、測(cè)量靈活性,且成本低。實(shí)驗(yàn)結(jié)果表明其測(cè)量精度能滿足一般的測(cè)量需求。
1 視覺測(cè)量結(jié)構(gòu)與原理
經(jīng)典的視覺測(cè)量方法是使用雙目或多目結(jié)構(gòu),完成對(duì)三維空間點(diǎn)的測(cè)量,而本文是利用圖1中攝像機(jī)與慣性傳感器結(jié)合的單目結(jié)構(gòu),通過(guò)手持?jǐn)z像機(jī)移動(dòng)來(lái)模擬多目結(jié)構(gòu),從而完成測(cè)量。其測(cè)量原理如圖 2所示。Oc?xcyczc為攝像機(jī)坐標(biāo)系,其中Oc表示光心。設(shè)世界坐標(biāo)系與攝像機(jī)坐標(biāo)系重合,空間點(diǎn)Pc在世界坐標(biāo)系的齊次坐標(biāo)為[xc,yc,zc,1]T,攝像機(jī)在不同角度下在圖像平面的投影點(diǎn)為mi(ui,vi),根據(jù)攝像機(jī)模型[5]有:
[zcuivi1=fx0u00fyv0001Ri -Ri Tixcyczc 1=KRiI -TiPc] (1)
式中[K=fx0u00fyv0001]為攝像機(jī)內(nèi)參數(shù)矩陣,可根據(jù)文獻(xiàn)[6],預(yù)先使用棋盤對(duì)攝像機(jī)進(jìn)行標(biāo)定,計(jì)算出攝像機(jī)的內(nèi)參數(shù)為:
[K=962.3970296.2050960.804231.668000] (2)
根據(jù)式(1)可知,只需求出攝像機(jī)移動(dòng)過(guò)程中的旋轉(zhuǎn)矩陣Ri及平移向量Ti,即可恢復(fù)空間點(diǎn)Xc的坐標(biāo)。結(jié)合實(shí)際手持移動(dòng)情況,手持移動(dòng)拍攝時(shí),一般只在近x?y平面運(yùn)動(dòng),z方向小范圍的移動(dòng)對(duì)測(cè)量結(jié)果影響不大,故本文約定z軸移動(dòng)距離為0,即 [T=txty0T]。
圖1 測(cè)量結(jié)構(gòu)
圖2 測(cè)量原理
2 攝像機(jī)位姿求解
2.1 慣性傳感器
獲得攝像機(jī)位置及姿態(tài)信息最直接的方法是使用慣性傳感器,即陀螺儀和加速度計(jì)。本文除了采用慣性傳感器外,還引入數(shù)字羅盤數(shù)據(jù),位姿求解結(jié)構(gòu)框圖如圖3所示。
圖3 位姿求解結(jié)構(gòu)框圖
使用互補(bǔ)濾波器[7?8]融合3種傳感器數(shù)據(jù),解算出攝像機(jī)姿態(tài)[R],同時(shí)計(jì)算出加速度的重力場(chǎng)分量,結(jié)合MPU6050中加速計(jì)的輸出數(shù)據(jù)計(jì)算攝像機(jī)位移[T]。當(dāng)攝像機(jī)運(yùn)動(dòng)時(shí),將同時(shí)存在線運(yùn)動(dòng)和角運(yùn)動(dòng),故位移計(jì)算中應(yīng)對(duì)旋轉(zhuǎn)效應(yīng)進(jìn)行補(bǔ)償[9]。
速度[V]的迭代更新方程如下:
[Vn=Vn-1+Rn-1ΔVn+12Δθn×Vn] (3)
式中:[Vn-1],[Rn-1]分別為上一時(shí)刻的攝像機(jī)速度和姿態(tài)矩陣;[ΔVn=tn-1tna(t)dt],[Δθn=tn-1tnω(t)dt]分別是加速度和陀螺儀在[tn-1,tn]時(shí)間段內(nèi)的速度增量和角度增量;[12Δθn×Vn]是速度的旋轉(zhuǎn)效應(yīng)補(bǔ)償項(xiàng)。
位移[T]的迭代更新方程如下:
[Tn=Tn-1+Vn-Vn-12Δt] (4)
由于低成本加速度計(jì)的精度并不高,故直接經(jīng)過(guò)二次積分所得位移的累積誤差較大,不能直接使用。本文將引入圖像信息,對(duì)加速度計(jì)進(jìn)行補(bǔ)償,可大大減少其累積誤差。
2.2 數(shù)字圖像處理
使用圖像處理技術(shù)獲得攝像機(jī)位姿信息的經(jīng)典方法如文獻(xiàn)[10]所描述,是通過(guò)計(jì)算2幅圖像之間的基礎(chǔ)矩陣[F],然后再結(jié)合攝像機(jī)內(nèi)參數(shù)矩陣[M]求解本質(zhì)矩陣[E],根據(jù)本質(zhì)矩陣可獲得攝像機(jī)的位姿信息。但此方法需匹配特征點(diǎn)和求解矩陣方程,運(yùn)算量大,且2幅圖像間距離不能太小,否則求解的基礎(chǔ)矩陣[F]誤差較大。結(jié)合本設(shè)計(jì)方法,攝像機(jī)只作小范圍移動(dòng),且圖像信息需實(shí)時(shí)修正加速度計(jì)的積分誤差,計(jì)算量不宜過(guò)大,故本文直接對(duì)每幀幀間特征點(diǎn)距離作統(tǒng)計(jì),可以得到攝像頭在x?y平面的幀間移動(dòng)距離:
[Tfn=i=1kmin-min-1k] (5)
式中:[mn],[mn-1]為前后兩幀對(duì)應(yīng)的特征點(diǎn)坐標(biāo)。
圖像處理過(guò)程如圖4所示。
圖4 圖像處理過(guò)程
由于攝像機(jī)移動(dòng)過(guò)程中包含平移和旋轉(zhuǎn)運(yùn)動(dòng),而無(wú)論是攝像機(jī)平移或旋轉(zhuǎn),都會(huì)使圖像發(fā)生移動(dòng),旋轉(zhuǎn)補(bǔ)償是為了去除幀間移動(dòng)距離的旋轉(zhuǎn)分量。令旋轉(zhuǎn)分量為[Tfr],平移分量為[Tft],則有:
[Tf=Tft+Tfr] (6)
設(shè)攝像機(jī)繞光心[O]旋轉(zhuǎn)[R],世界點(diǎn)[P],在旋轉(zhuǎn)前后的坐標(biāo)分別為[P],[P′],其投影在圖像平面的點(diǎn)分別為[p],[p′]。根據(jù)攝像機(jī)模型[5]可知:
[p=KP, p′=KP′, P′=RP]
式中:[K]為攝像機(jī)內(nèi)參數(shù)矩陣;[R]為旋轉(zhuǎn)矩陣,聯(lián)合三式有:
[p′=KRK-1p]
則可由式(6)得:
[Tft=Tf-Tfr=Tf-(KRK-1-I)p] (7)
2.3 傳感器與圖像信息融合
由攝像機(jī)模型可知,當(dāng)攝像機(jī)移動(dòng)時(shí),連續(xù)兩幀之間的攝像機(jī)位移[ΔT]與[Tft]有如下關(guān)系:
[ΔT=kTft] (8)
式中[k=zf],z為被測(cè)點(diǎn)與攝像機(jī)的距離,[f]為攝像機(jī)焦距。
則有攝像機(jī)移動(dòng)速度:
[V=ΔTΔt=kTftΔt=kVf] (9)
式中[Δt]為采樣周期,[Vf]為特征點(diǎn)的移動(dòng)速度。
設(shè)短時(shí)間[tn,tm]內(nèi)加速度計(jì)的偏移量為常量[ab],加速度計(jì)測(cè)量值為[as],真實(shí)值為[a],則有:
[ΔVs-ΔV=tntmas-adt=tntmabdt=abtmtn]
得:
[ab=ΔVstm-tn-ΔVtm-tn] (10)
對(duì)于[tn≤ti≤tm]有:
[ΔVi=tntias-ab-amdt+tntiamdt]
令[am=ΔVtm-tn],結(jié)合式(10),有:
[ΔVi=tntias-ΔVstm-tndt+tntiΔVtm-tndt] (11)
同理,結(jié)合式(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)
則令代價(jià)函數(shù)為[i=nmΔVsi′-kΔVfi′],求取使代價(jià)函數(shù)最小化時(shí)的k值,把k代入下式,可得速度的修正方程如下:
[V=wVs+1-wkVf] (14)
式中w為修正系數(shù)。結(jié)合速度、位移更新方程式(3),式(4)可求得融合后的位移[T]。
3 實(shí)驗(yàn)與結(jié)果
本文通過(guò)手持圖1的實(shí)驗(yàn)裝置,對(duì)目標(biāo)盒子進(jìn)行拍攝測(cè)量,測(cè)量過(guò)程中,攝像機(jī)拍攝目標(biāo)盒子,先靜止再沿y軸移動(dòng)一小段距離,然后再靜止完成測(cè)量,整個(gè)過(guò)程目標(biāo)物體必須保持靜止,且在攝像機(jī)拍攝范圍內(nèi)。實(shí)驗(yàn)裝置的攝像機(jī)使用USB攝像頭,傳感器使用MPU605三軸陀螺儀、三軸加速度計(jì)和HMC5883三軸數(shù)字羅盤,通過(guò)USB轉(zhuǎn)I2C接口直接讀取數(shù)據(jù),測(cè)量算法在PC端實(shí)現(xiàn)。
攝像機(jī)的姿態(tài)矩陣[R]直接由互補(bǔ)濾波器解算得到,位移[T]根據(jù)前面所述方法求解。圖 5顯示了求解位移[T]過(guò)程中各數(shù)據(jù)的曲線,加速度計(jì)輸出及去除重力分量后的數(shù)據(jù)曲線如圖5(a)所示,從圖5(e),圖5(f)可以看出,由于加速度計(jì)飄移的影響,當(dāng)手持不動(dòng)時(shí),單獨(dú)使用其輸出的數(shù)據(jù)求得的速度[Vsy]并不為零,導(dǎo)致[Tfy]的誤差隨測(cè)量時(shí)間增大而增大。圖5(b)是特征點(diǎn)跟蹤的效果圖,其中點(diǎn)A,B,C是待測(cè)量的特征點(diǎn),根據(jù)2.2節(jié)的方法,對(duì)特征點(diǎn)進(jìn)行統(tǒng)計(jì)處理,得到圖5(c)的特征點(diǎn)移動(dòng)曲線及旋轉(zhuǎn)補(bǔ)償后的數(shù)據(jù)曲線。最后根據(jù)2.3節(jié)的方法計(jì)算系數(shù)k,修正加速計(jì)累積誤差,圖5(e),圖5(f)顯示修正前后的速度及位移曲線,可以明顯看出圖像信息很好地糾正了速度及位移的累積誤差。
把[R],[T],代入式(1)求得特征點(diǎn)A,B,C的世界點(diǎn)坐標(biāo)值如表1所示。
表1 特征點(diǎn)的世界坐標(biāo) cm
盒子實(shí)測(cè)值A(chǔ)B長(zhǎng)22.5 cm,BC長(zhǎng)16.5 cm,視覺測(cè)量值為:
[AB=xB-xA2+yB-yA2+zB-zA2=22.91 cm]相對(duì)誤差為1.83%。
[BC=xC-xB2+yC-yB2+zC-zB2=16.18 cm]
相對(duì)誤差為1.95%。
由此可見,其計(jì)算結(jié)果與實(shí)際情況基本相符,可達(dá)到實(shí)際測(cè)量的精度要求。
4 結(jié) 語(yǔ)
本文采用傳感器與攝像機(jī)結(jié)合的模式,通過(guò)手持移動(dòng)模擬多目立體視覺,避免了運(yùn)用多個(gè)攝像機(jī)所帶來(lái)攝像機(jī)參數(shù)不一致的誤差,并融合了傳感器與攝像機(jī)兩者數(shù)據(jù),同時(shí)通過(guò)增加拍攝視頻長(zhǎng)度來(lái)獲取更多視角圖像,提高了實(shí)際測(cè)量結(jié)果的精確度與可靠性。實(shí)驗(yàn)結(jié)果表明,由于該方法不需要攝像機(jī)外參數(shù)的先驗(yàn)知識(shí),也不需要定標(biāo)參照物且結(jié)構(gòu)簡(jiǎn)單、使用簡(jiǎn)單,因此,該方法易于推廣應(yīng)用。
參考文獻(xiàn)
[1] 葉聲華,邾繼貴,王仲,等.視覺檢測(cè)技術(shù)及應(yīng)用[J].中國(guó)工程科學(xué),1999(1):49?52.
[2] 馬驪群,王立鼎,靳書元,等.工業(yè)大尺寸測(cè)量?jī)x器的溯源現(xiàn)狀及發(fā)展趨勢(shì)[J].計(jì)測(cè)技術(shù),2006(6):1?5.
[3] 黃桂平,李廣云,王保豐,等.單目視覺測(cè)量技術(shù)研究[J].計(jì)量學(xué)報(bào),2004(4):314?317.
[4] 彭永強(qiáng),李祖樞,薛方正.基于舵機(jī)云臺(tái)的人型機(jī)器人單目視覺測(cè)距[J].計(jì)算機(jī)測(cè)量與控制,2009(11):2253?2255.
[5] 吳福朝.計(jì)算機(jī)視覺中的數(shù)學(xué)方法[M].北京:科學(xué)出版社,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] 梁延德,程敏,何福本,等.基于互補(bǔ)濾波器的四旋翼飛行器姿態(tài)解算[J].傳感器與微系統(tǒng),2011(11):56?58.
[9] 鄧志紅,付夢(mèng)印,張繼偉,等.慣性器件與慣性導(dǎo)航系統(tǒng)[M].北京:科學(xué)出版社,2012.
[10] 莊曈,曾慶化,劉建業(yè),等.一種基于單目視覺的微型無(wú)人機(jī)姿態(tài)算法[J].計(jì)算機(jī)工程,2012(15):197?200.endprint