蘇建東,段修生,齊曉慧
(陸軍工程大學(xué)石家莊校區(qū),石家莊 050003)
視覺測(cè)量是將計(jì)算機(jī)視覺應(yīng)用于空間幾何尺寸的精確測(cè)量和定位的方法[1]。視覺測(cè)量技術(shù)以其非接觸性、測(cè)量精度高、響應(yīng)速度快、不易受干擾等特點(diǎn),正逐漸應(yīng)用到航空航天[2-3]、軍事裝備[4]、目標(biāo)識(shí)別[5]、裝備制造[6]、工業(yè)測(cè)量和自動(dòng)化控制等諸多領(lǐng)域。
視覺測(cè)量在空間物體的位置和姿態(tài)求解等空間定位問題中應(yīng)用廣泛,該類問題所用到的幾何特征可以分為點(diǎn)、直線和高級(jí)幾何特征等幾類,其中基于點(diǎn)特征的視覺定位問題通常被稱為PnP問題,其研究最為廣泛和成熟[7]。張正友等人提出了一種基于平面靶標(biāo)的攝像機(jī)標(biāo)定方法[8],受該方法啟發(fā)本文提出了一種基于單目視覺的平面靶標(biāo)姿態(tài)測(cè)量方法,在獲取攝像機(jī)內(nèi)參以后,根據(jù)多點(diǎn)透視問題解的穩(wěn)定性,結(jié)合最小二乘擬合算法得到相應(yīng)位置的外參矩陣,并利用Givens矩陣對(duì)外參矩陣進(jìn)行分解,從而求得靶標(biāo)的3個(gè)姿態(tài)角。
仿真系統(tǒng)由于沒有圖像噪聲、模型誤差和機(jī)械震動(dòng)等其他不確定因素,因此,可以用來驗(yàn)證相關(guān)算法的正確性與準(zhǔn)確性,分析算法的精度,為進(jìn)一步優(yōu)化測(cè)量算法提供方向。目前攝像機(jī)成像仿真技術(shù),大部分的研究是在攝像機(jī)線性模型的基礎(chǔ)上,加上鏡頭的畸變、景深效應(yīng)、光線和色彩等因素。研究點(diǎn)不同,側(cè)重點(diǎn)也就不同,以閆龍[9]、張子淼[10]為代表的一批學(xué)者在攝影仿真方面取得了一些成果,但在具體的應(yīng)用中缺乏針對(duì)性,結(jié)合具體的應(yīng)用背景,本文設(shè)計(jì)了一套簡(jiǎn)單有效的仿真系統(tǒng),并對(duì)文中提出的解算方法進(jìn)行了驗(yàn)證。
先給出棋盤狀靶標(biāo)在理想針孔成像模型下的成像過程示意圖,如圖1所示。
圖1 棋盤狀靶標(biāo)成像示意圖
圖中定義了4個(gè)坐標(biāo)參考系,其中ow-xwywzw是三維直角坐標(biāo)系,簡(jiǎn)稱世界坐標(biāo)系。oc-xcyczc是相機(jī)三維直角坐標(biāo)系,簡(jiǎn)稱攝像機(jī)坐標(biāo)系,其zc軸與相機(jī)鏡頭的光軸重合,攝像機(jī)坐標(biāo)系可在世界坐標(biāo)系的任意位置。op-xpyp是圖像二維直角坐標(biāo)系,簡(jiǎn)稱圖像坐標(biāo)系,一般都以像素為單位定義圖像上點(diǎn)的坐標(biāo),ob-xbybzb是以棋盤狀靶標(biāo)所在的平面為xy面的三維直角坐標(biāo)系,簡(jiǎn)稱靶標(biāo)坐標(biāo)系,其隨靶標(biāo)位置姿態(tài)變化而變化。
在不考慮鏡頭畸變的情況下,靶標(biāo)上任一角點(diǎn)P在靶標(biāo)坐標(biāo)系下的齊次坐標(biāo)向量Pb與其投影點(diǎn)p在圖像坐標(biāo)系下的齊次坐標(biāo)向量Pp滿足關(guān)系:
式中,zb=0;M1為相機(jī)內(nèi)參矩陣;αx和 αy分別為相機(jī)鏡頭在x軸和y軸上的歸一化焦距;u0和v0則是光軸與成像面角點(diǎn)在圖像坐標(biāo)系下的偏移,內(nèi)參矩陣在相機(jī)安裝好鏡頭、調(diào)焦完畢之后就不變了;M2為外參矩陣,不同的靶標(biāo)坐標(biāo)系對(duì)應(yīng)一個(gè)不同的外參矩陣;R 為旋轉(zhuǎn)矩陣,設(shè) R=[r1,r2,r3],t為平移向量,設(shè) t=[t1,t2,t3]。
獲取多幅模板在不同姿態(tài)下的圖像進(jìn)行相機(jī)標(biāo)定,即求解出相機(jī)內(nèi)參。求解內(nèi)參矩陣的算法是基于張正友提出的張氏定法。
對(duì)每一幅圖像,標(biāo)定模板平面上的點(diǎn)與其像點(diǎn)之間建立了一個(gè)Homography映射,定義單應(yīng)性矩陣:
根據(jù)正交矩陣的性質(zhì),對(duì)于每一幅圖像可以得到約束方程:
這是攝像機(jī)內(nèi)參的兩個(gè)基本約束,令:
B是對(duì)稱矩陣,可以另表示為下面的六維向量:
這樣,約束方程就可以寫成兩個(gè)以b為未知數(shù)的齊次方程:
可見只需堆疊其中3幅圖像的方程,可以解出b,那么攝像機(jī)內(nèi)參數(shù)可以從B矩陣的封閉解中直接得到,計(jì)算如下:
對(duì)每一幅圖像,外參數(shù)可以由單應(yīng)性條件計(jì)算得到,計(jì)算如下:
測(cè)量時(shí)首先采集零位置圖像,作為測(cè)量基準(zhǔn),然后采集待測(cè)姿態(tài)圖像。按照上述方法分別計(jì)算其旋轉(zhuǎn)矩陣R0,Rn。則其由零位置至待測(cè)位置的旋轉(zhuǎn)矩陣為:
對(duì)該矩陣選擇合適的參數(shù)分解,即可求得3個(gè)姿態(tài)角 α1、α2、α3,求解過程如下:
定義3個(gè)三階Givens旋轉(zhuǎn)矩陣:
令
選擇合適的參數(shù)使得L的l32元素變?yōu)?,即
仿真試驗(yàn)可運(yùn)用仿真得到的圖像代替攝像機(jī)實(shí)際采集的圖像,進(jìn)行攝像機(jī)標(biāo)定、角點(diǎn)的提取和姿態(tài)角的解算,并將解算結(jié)果和仿真輸入作對(duì)比,以判斷測(cè)量算法的準(zhǔn)確性。
如圖2所示,以角點(diǎn)數(shù)為8×8的棋盤格靶標(biāo)為例,給棋盤格上所有的角點(diǎn)編號(hào),建立右手直角坐標(biāo)系,并設(shè)定該坐標(biāo)系即為世界坐標(biāo)系ow-xwywzw。
圖2 角點(diǎn)標(biāo)號(hào)及坐標(biāo)系
設(shè)第i行j列的任意一角點(diǎn)P在世界坐標(biāo)系的初始坐標(biāo)為:
其中,d為棋盤格每個(gè)小方塊的邊長(zhǎng)。
當(dāng)靶標(biāo)僅繞xw軸旋轉(zhuǎn)α1時(shí),角點(diǎn)P旋轉(zhuǎn)后的坐標(biāo)為:
同理,當(dāng)靶標(biāo)分別僅繞yw軸和zw軸旋轉(zhuǎn)α2和α3時(shí),角點(diǎn)P的坐標(biāo)分別為:
當(dāng)棋盤格靶標(biāo)由初始位置轉(zhuǎn)到任意位置時(shí),其旋轉(zhuǎn)過程可分解為:先繞xw軸轉(zhuǎn)α1,再繞yw軸轉(zhuǎn)α2,最后繞zw軸轉(zhuǎn)α3。則點(diǎn)P旋轉(zhuǎn)之后的世界坐標(biāo)為:
圖3 角點(diǎn)投影示意圖
設(shè)A點(diǎn)為攝像機(jī)所在的位置,其在世界坐標(biāo)系下的坐標(biāo)為PA。角點(diǎn)P旋轉(zhuǎn)后在空間的坐標(biāo)(x1,y1,z1)T可由式(18)求得,建立 AP 的空間直線方程,該直線與投影面的交點(diǎn)即為投影面內(nèi)角點(diǎn)的坐標(biāo),這就是建立仿真模型時(shí)需要標(biāo)繪的點(diǎn)。
如圖3所示,為簡(jiǎn)化成像模型,假定點(diǎn)A在世界坐標(biāo)系的 zw軸上,其坐標(biāo)為 PA=(0,0,d1)T,d1是攝像機(jī)到坐標(biāo)原點(diǎn)的距離。成像面垂直于zw軸,建立圖像坐標(biāo)系op-xpyp,使opxp軸平行于owyw軸,攝像機(jī)焦距為f,設(shè)投影點(diǎn)在世界坐標(biāo)系內(nèi)的坐標(biāo)為Pw,在圖像坐標(biāo)系內(nèi)的坐標(biāo)為Pp,則
其中,R2×3是坐標(biāo)系世界坐標(biāo)系和圖像坐標(biāo)系間的坐標(biāo)變換矩陣。
世界坐標(biāo)系中直線AP的兩點(diǎn)式方程為:
令z=d1-f,可得AP與投影面的交點(diǎn)世界坐標(biāo)為:
使用上文設(shè)計(jì)的仿真試驗(yàn)系統(tǒng),生成靶標(biāo)在不同姿態(tài)下的仿真圖像,設(shè) α1、α2、α3分別為靶標(biāo)繞 xw、yw、zw軸轉(zhuǎn)過的角度。圖4所示為靶標(biāo)在幾組不同姿態(tài)下的仿真圖像。
仿真試驗(yàn)過程中用仿真圖像代替攝像機(jī)實(shí)際采集圖像進(jìn)行角點(diǎn)提取、攝像機(jī)標(biāo)定、角度解算等操作,并將解算得到的角度和仿真輸入作對(duì)比,仿真試驗(yàn)結(jié)果如下頁表1所示,由表1可知仿真試驗(yàn)平均精度可以達(dá)到0.05°,并且繞zw軸轉(zhuǎn)角的精度明顯高于其他兩軸,分析認(rèn)為這是由于仿真系統(tǒng)中zw軸為光軸方向,靶標(biāo)繞zw軸轉(zhuǎn)動(dòng)是垂直于光軸的,靶標(biāo)繞其他兩軸轉(zhuǎn)動(dòng)均會(huì)產(chǎn)生沿光軸運(yùn)動(dòng)的分量。單攝像機(jī)對(duì)于景深信息不敏感,造成了上述試驗(yàn)結(jié)果,這與晁志超[11-12]等人的研究結(jié)果是一致的。
圖4 幾組不同姿態(tài)下的仿真圖像
表1的試驗(yàn)結(jié)果雖然可以達(dá)到0.05°的精度,但是經(jīng)分析不難發(fā)現(xiàn),仿真圖像提取角點(diǎn)時(shí)只能達(dá)到像素級(jí),這相當(dāng)于在圖像上加了很強(qiáng)的高斯噪聲,為了分析角點(diǎn)提取精度帶來的誤差,做了以下兩組試驗(yàn)。
第1組試驗(yàn)將理論計(jì)算得到的投影角點(diǎn)坐標(biāo)代替仿真提取坐標(biāo)直接用于姿態(tài)解算,結(jié)果如表2所示。不難發(fā)現(xiàn)結(jié)果基本和仿真輸入一致,最大誤差不超過0.000 02°。有限的幾組誤差也是數(shù)值計(jì)算導(dǎo)致的。表2的結(jié)果可以說明本文提出的平面靶標(biāo)姿態(tài)解算方法,理論上是可行的,并且在測(cè)量精度上有很大的潛力。
表1 仿真試驗(yàn)結(jié)果(單位:°)
表2 理論試驗(yàn)結(jié)果(單位:°)
表3 降低分辨率后的仿真試驗(yàn)結(jié)果(單位:°)
第2組試驗(yàn)是修改仿真模型參數(shù),降低仿真圖像分辨率。姿態(tài)解算時(shí)仍使用仿真圖像去提取角點(diǎn)坐標(biāo),結(jié)果如表3所示。不難發(fā)現(xiàn)降低分辨率以后測(cè)量精度明顯變差,精度只有0.5°左右,誤差最大值甚至接近1°,與表1結(jié)果相比差了一個(gè)數(shù)量級(jí)。分析認(rèn)為這是由于降低分辨率后仿真圖像仍然提取像素級(jí)坐標(biāo),與此相對(duì)的是表1試驗(yàn)中雖然也是像素級(jí)坐標(biāo),但是兩者圖像分辨率差了10倍。因此,相對(duì)于本組試驗(yàn),表1結(jié)果也就相當(dāng)于提取的“亞像素級(jí)”的角點(diǎn)坐標(biāo),所以表1測(cè)量結(jié)果精度更高。
綜合表1~表3的試驗(yàn)結(jié)果可知:圖像分辨率越高、角點(diǎn)檢測(cè)精度越高,測(cè)量誤差也就越小??梢苑治鋈绻麑?duì)表1所用圖像進(jìn)行亞像素級(jí)提取其精度可以提高約一個(gè)數(shù)量級(jí),預(yù)期精度可達(dá)0.005°~0.01°左右。
本文提出了一種基于單目視覺的平面靶標(biāo)姿態(tài)測(cè)量方法,并基于攝像機(jī)成像模型和靶標(biāo)運(yùn)動(dòng)分析設(shè)計(jì)一套仿真試驗(yàn)系統(tǒng)。仿真試驗(yàn)結(jié)果表明本文所提姿態(tài)測(cè)量方法可行有效,其仿真測(cè)量精度可達(dá)0.05°,理論精度可達(dá)0.000 02°,實(shí)際應(yīng)用精度期望達(dá)到0.005°~0.01°。分析全文仍存在以下不足:建立仿真模型時(shí)未考慮畸變參數(shù),將其默認(rèn)為0,這與實(shí)際明顯不符,可進(jìn)一步完善仿真模型,并且增加圖像畸變矯正的過程,豐富整個(gè)仿真系統(tǒng)。