專利名稱:測量物體三維表面輪廊的方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
測量物體表面三維輪廓的方法及系統(tǒng)屬于物體三維測量方法技術(shù)領(lǐng)域。
背景技術(shù):
物體的三維測量技術(shù)在產(chǎn)品設(shè)計與制造、質(zhì)量檢測與控制、機器人視覺等領(lǐng)域中應(yīng)用很普遍。近些年來其應(yīng)用也拓展到產(chǎn)品仿制、快速制造系統(tǒng)、產(chǎn)品反求設(shè)計、在線檢測、服裝制作、影視特技、虛擬現(xiàn)實、藝術(shù)雕塑等領(lǐng)域。
三維輪廓測量主要有兩類方法即接觸式和非接觸式。接觸式測量的主要方法為三坐標(biāo)測量儀,其測量精度高,可達(dá)0.5μm。但這種方法不適合柔軟實物的測量,測量速度慢,對工作環(huán)境要求很高,必須防震、防灰、恒溫等,因此應(yīng)用范圍受到較大限制。從整體來看,機械式三坐標(biāo)測量儀難以滿足當(dāng)今快速、高效率測量的需求。
非接觸的三維測量方法有光學(xué)傳感器法、激光掃描法、立體視覺法、投影柵相位法等。
1.光學(xué)傳感器法該方法的工作原理類似于機械式三坐標(biāo)測量儀,只不過采用專門的光學(xué)探頭來檢測物體表面形狀。其光學(xué)探頭能夠直接得到被測點與探頭之間的距離,由其工作位置得到其它兩個方向上的坐標(biāo)。日本Toshiba公司研制了一臺用于大型高精度光學(xué)表面測量的非接觸式光學(xué)探測儀,面形測量精度達(dá)到0.1μm,粗糙度到1nmRa,安裝在超精CNC車床的工作臺上使用。其關(guān)鍵技術(shù)在于光學(xué)探頭的制造,屬精密儀器設(shè)備,因此造價昂貴。
2.激光掃描法該方法利用激光掃描物體表面,通過出射點、投影點和成像點三者之間的幾何成像關(guān)系確定物體各點的三維坐標(biāo)。根據(jù)工作激光光源的特點和性質(zhì)可以分為點式激光掃描、線狀激光掃描等。激光掃描的速度較塊,但是掃描精度卻受到工件的材質(zhì)及表面特性等因素的影響。另外,激光掃描系統(tǒng)的價格十分昂貴,非一般用戶所能承受。
3.立體視覺法立體視覺法是根據(jù)人雙眼視覺系統(tǒng)的仿生學(xué)原理建立起來的,該方法已經(jīng)能夠達(dá)到一定的測量精度。它根據(jù)三角測量原理,利用對應(yīng)點的視差可以計算視野范圍內(nèi)的立體信息,用于雙目和多目視覺。
這種方法對應(yīng)用場合要求較寬松,一次能獲得一塊區(qū)域的三維信息,特別是具有不受物體表面反射特性影響的優(yōu)點。但其中的對應(yīng)點的匹配問題較難解決,算法復(fù)雜,耗時較長。在物體表面特征點較稀疏時,也很難獲得精確的形狀。
4.投影柵相位法投影柵采用在物體表面投射柵線,利用調(diào)制柵線的相位畸變信息得到物體的三維信息,它采用數(shù)學(xué)的方法解調(diào)相位,并利用相位值計算每個相對于參考面的高度值。投影柵相位法存在的很大問題是其系統(tǒng)操作性不好,難以實現(xiàn)實用化。
發(fā)明內(nèi)容
本方法的目的在于在于提供一種測量精確、便于操作且易于實用化的測量物體三維表面輪廓的方法及系統(tǒng),為了達(dá)到這個目的本發(fā)明開創(chuàng)性的提出將利用相位和立體視覺技術(shù)的結(jié)合,在物體表面投射光柵,采用雙攝像機拍攝圖象,利用相位和極線實現(xiàn)匹配,從而達(dá)到對物體三維坐標(biāo)的反求與重構(gòu),開發(fā)出了可操作性好、測量精度較高、速度快、適合于不同大小物體的新型的三維無接觸測量系統(tǒng)。
具有某種特性的光(稱為結(jié)構(gòu)光)投射到物體上,物體上不同高度的點對光柵進行調(diào)制使光柵發(fā)生畸變。用兩架攝像機拍攝發(fā)生畸變的光柵圖像,利用編碼光和相移方法獲得左右攝像機拍攝圖象上每一點的相位。利用相位和外極線幾何實現(xiàn)兩幅圖像上的點的匹配。對定標(biāo)了的攝像機系統(tǒng),便可計算其在三維空間的坐標(biāo)。
本發(fā)明提出的測量物體三維表面輪廓的方法,其特征在于它是一種利用相位和立體視覺技術(shù)的結(jié)合,在物體表面投射光柵,再采用雙攝像機拍攝發(fā)生畸變的光柵圖像,利用編碼光和相移方法獲得左右攝像機拍攝圖像上每一點的相位。利用相位和外極線實現(xiàn)兩幅圖像上的點的匹配,從而達(dá)到對物體表面點三維坐標(biāo)的反求的方法;它包括如下步驟(1)利用計算機生成虛擬光柵,其中包括編碼光柵和相移光柵,利用投影儀將生成的光柵投射在物體上;相移光柵的光強如下式來表達(dá)Ii(u,v)=a(u,v)+b(u,v)cos(φ(u,v)+φi)其中(u,v)為某點的坐標(biāo);Ii(u,v)為第i幅圖像中(u,v)點的光強;a(u,v)為背景光強函數(shù);b(u,v)為條紋對比度;φ(u,v)表示每個點的相位,周期為T;φi為相移角;編碼光柵共有N幅,構(gòu)造方法為第一幅為半黑半白,后面各幅逐漸細(xì)分,細(xì)分方法為上一幅的黑色部分,分為半黑半白,上一幅的白色分為半白半黑。對每一個點,根據(jù)在各幅圖像中每一幅圖像上為黑還是為白進行編碼,為黑則編碼為1,為白則編碼為0,從而得到此點的編碼序列;N幅編碼光柵可有2N個編碼序列,整個圖象被分成2N個長條,每個長條的寬度為相移光柵的周期T;對第n個長條(n=1,2,...2N,又稱周期數(shù)),按照這樣的編碼光構(gòu)造方法對應(yīng)一個唯一的編碼序列,其十進制編碼數(shù)為nc,建立周期數(shù)n和編碼數(shù)nc之間的映射關(guān)系,可實現(xiàn)兩者的互相轉(zhuǎn)換;(2)利用兩臺CCD攝像機采集投射的光柵圖像,并保存在程序中分配的數(shù)組中;(3)對每一個相機拍攝的各幅圖像分別進行處理,得到每個點的相位值,相位值由相主值加上周期數(shù)乘以2π,即2nπ,由于兩個攝像機拍攝的每個點的相位值應(yīng)該是相等的,用兩個攝像機拍攝得到的每個點相位值作為匹配的依據(jù);(4)對兩個攝像機進行定標(biāo),得到攝像機的內(nèi)參數(shù)及相對于世界坐標(biāo)系的外參數(shù)f(j),R(j),T(j),j=1,2f(j)鏡頭焦距長度,j為攝像機編號;R(j)旋轉(zhuǎn)矩陣,R=r1r2r3r4r5r6r7r8r9;]]>T(j)平移向量,T=[Tx Ty Tz]′;先計算R,Tx,Ty;(4.1)計算每個點的圖像坐標(biāo)u=u0+x/dxv=v0+y/dy對空間一個點(Xw,Yw,Zw),經(jīng)攝像機拍攝后,圖像坐標(biāo)(mm)為(x,y),象素坐標(biāo)(象素)為(u,v),(u0,v0)為圖像坐標(biāo)系的原點在像素坐標(biāo)系中的像素坐標(biāo),(dx,dy)為CCD相鄰象素之間的x和y方向的距離,可由CCD廠家提供。
(4.2)計算五個未知量Ty-1r1,Ty-1r2,Ty-1Tx,Ty-1r4,Ty-1r5對于每一個三維對象點(Xwk,Ywk,Zwk)(因為點共面,故將Z坐標(biāo)取作0)以及相應(yīng)的圖像坐標(biāo)(xk,yk),由共線方程xk=fr1Xwk+r2Ywk+Txr7Xwk+r8Ywk+Tz]]>yk=fr4Xwk+r5Ywk+Tyr7Xwk+r8Ywk+Tz]]>
將上面二式相除得到利用最小二乘法求得上述5個未知量;(4.3)計算r1,...,r9,Tx,Ty(4.31)計算|Ty|定義矩陣C=r1′r2′r4′r5′=r1/Tyr2/Tyr4/Tyr5/Ty]]>則有Ty2=Sr-[Sr2-4(r1′r5′-r4′r2′)2]1/22(r1′r5′-r4′r2′)2]]>其中Sr=r1′2+r2′2+r5′2+r4′2,如果矩陣C的某行或某列元素為全為0,按下式計算Ty2=(ri′2+rj′2)-1,其中ri′,rj′,是矩陣C剩余的另兩個元素。
(4.32)決定Ty的符號①假設(shè)Ty為正號;②選擇所拍攝圖像中,離圖像中心較遠(yuǎn)的一點。設(shè)其圖像坐標(biāo)為(xk,yk),在三維世界中的坐標(biāo)為(Xwk,Ywk,Zwk)。
③由上面的結(jié)果計算下面各式的值r1=(Ty-1r1)*Ty,r2=(Ty-1r2)*Ty,r4=(Ty-1r4)*Tyr5=(Ty-1r5)*Ty,Tx=(Ty-1Tx)*Ty,xk′=r1Xwk+r2Ywk+Txyk′=r4Xwk+r5Ywk+Ty如果xk和xk′、yk和yk′都同號,那么sgn(Ty)=+1,否則sgn(Ty)=-1;(4.33)計算旋轉(zhuǎn)矩陣R根據(jù)Ty的值,重新計算r1,r2,r4,r5,Tx。
R=r1r2(1-r12-r22)1/2r4r5s(1-r42-r52)1/2r7r8r9]]>其中s=sgn(r1r4+r2r5)
r7,r8,r9是由前兩行的外積得到。如果按照這樣的R計算下面的焦距f為負(fù)值,則R=r1r2-(1-r12-r22)1/2r4r5-s(1-r42-r52)1/2-r7-r8r9]]>接著計算焦距長度f和Tz的值對每一個標(biāo)定點,建立包含f和Tz作為未知參數(shù)的線性方程Yi-yifTz=wiyi]]>其中Yi=r4xwi+r5ywi+r6*0+Tywi=r7xwi+r8ywi+r9*0通過解方程,可求f和Tz;(5)根據(jù)相位和外極線幾何對每點進行三維重構(gòu),得到物體表面點的三維坐標(biāo)(5.1)計算基礎(chǔ)矩陣FF=A2-TEA1-1其中A2=f2/dx20u020f2/dy2v02001,]]>A1=f1/dx10u010f1/dy1v01001]]>其中f1,(u01,v01),dx1,dy1為第一個攝像機的內(nèi)參數(shù),f2,(u02,v02),dx2,dy2為第二個攝像機的內(nèi)參數(shù);E=[T]xR(2)R(1)-1]]>(稱為本質(zhì)矩陣,Essential Matrix)T=T(2)-R(2)R(1)-1T(1)]]>把T表示為[Tx,Ty,Tz],則反對稱矩陣為[T]x x=0-TzTyTz0-Tx-TyTx0]]>(5.2)計算右攝像機拍攝圖像上一點P,其坐標(biāo)為 它在左攝像機拍攝圖像上的極線方程參數(shù)。并在上述直線上尋找其匹配點Q點,方法是點P和點Q的相位值相等。
已知 根據(jù)下述直線方程,找右攝像機拍攝圖像上點P在左攝像機拍攝圖像上的點Q,其坐標(biāo)為 m~2TFm~1=0,]]>其中 是P點的像素坐標(biāo)(u2,v2,1)T; 是Q點像素坐標(biāo)(u1,v1,1)T;根據(jù)點P和點Q相位相等的原則,在由上述直線方程決定的一條直線上尋找Q點。
(5.3)找到Q點,則存儲此匹配點,按照下述的三維空間點S(Xw,Yw,Zw)和兩個攝像機拍攝圖像的對應(yīng)圖像坐標(biāo)的關(guān)系為x(j)=f(j)R(j)11Xw+R(j)12Yw+R(j)13Zw+T(j)xR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z,]]>y(j)=f(j)R(j)21Xw+R(j)22Yw+R(j)23Zw+T(j)yR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z,]]>j=1,2,為攝像機的編號。
所述相移光柵的相移角φi=i*90,i=1,...4,即相移光柵圖像有4幅,其相主值計算公式為φ(u,v)=atan(I2-I4I3-I1),]]>其中I1、I2、I3、I4,是點(u,v)在四幅相移光柵中的相位。
所述編碼光柵共有7幅,每一點的二進制編碼序列即可轉(zhuǎn)化成該點在圖像中的位置,即周期數(shù)。
本發(fā)明提出的測量物體三維表面輪廓的系統(tǒng),其特征在于它含有計算機、投影儀、兩臺CCD攝像機。
實驗證明本發(fā)明具有非接觸、速度快、數(shù)據(jù)量大、精度高、操作簡單、易于實現(xiàn)等優(yōu)點。
圖1本發(fā)明所述系統(tǒng)的示意圖。
圖2攝像機定標(biāo)用的標(biāo)定塊。
圖3兩階段法攝像機定標(biāo)程序流程圖。
圖4三維重構(gòu)算法流程圖。
圖5人手測量結(jié)果示意圖。
具體實施例方式
本發(fā)明提出的一種三維測量的方法和系統(tǒng)的實施例結(jié)合說明如下本實施例的測量系統(tǒng)如圖1所示。本系統(tǒng)由CCD攝像機1,3,投影儀2,計算機4等組成。
計算機為PIII 1G帶有1394圖象卡,顯卡支持雙顯示器輸出。
系統(tǒng)采用的ASK C20+高清晰數(shù)字投影儀,其亮度為1500ANSI流明,分辨率為800×600。
CCD采用德國Basler公司的A302f數(shù)字?jǐn)z像機,其分辨率達(dá)到了780×582,符合IEEE1394工業(yè)標(biāo)準(zhǔn),配合Computar M1214-MP定焦鏡頭使用。方法采取的步驟如下,其中軟件的實現(xiàn)采用Visual C++6.0平臺進行開發(fā)1)利用計算機生成虛擬光柵,其中包括編碼光柵和相移光柵,利用投影儀將生成的光柵投射在物體上;相移光柵的光強如下式來表達(dá)Ii(u,v)=a(u,v)+b(u,v)cos(φ(u,v)+φi)(1)其中(u,v)為某點的坐標(biāo);Ii(u,v)為第i幅圖像中(u,v)點的光強;a(u,v)為背景光強函數(shù);b(u,v)為條紋對比度;φ(u,v)表示每個點的相位,周期為T;對于每間隔90度的相移,φi=i*90,i=1,...4,在構(gòu)造相移光柵時,光柵圖象大小為1024×768,光柵的周期大小為8即點的坐標(biāo)x取值范圍在(1,1024)之間的整數(shù),y取值在(1,768)之間的整數(shù)。a(x,y)取0,b(x,y)取255。每個點相位值φ(x,y)設(shè)置為x除以8得到的余數(shù)除以8,再乘以2π。
編碼光柵共有7幅,構(gòu)造方法為第一幅為半黑半白,后面各幅逐漸細(xì)分,細(xì)分方法為上一幅的黑色部分,分為半黑半白,上一幅的白色分為半白半黑。對每一個點,根據(jù)在各幅圖像中每一幅圖像上為黑還是為白進行編碼,為黑則編碼為1,為白則編碼為0,從而得到此點的編碼序列;7幅編碼光柵可有27個編碼序列,整個圖象被分成27個長條,每個長條的寬度為相移光柵的周期8;對第n個長條(n=1,2,...27),按照這樣的編碼光構(gòu)造方法對應(yīng)一個唯一的編碼序列,其十進制編碼數(shù)為nc,按照這樣的方法建立每一個周期數(shù)n和編碼數(shù)nc之間的映射關(guān)系,可實現(xiàn)兩者的互相轉(zhuǎn)換;2)利用兩臺CCD攝像機采集投射的光柵圖象,并保存在程序中分配的數(shù)組中。
3)對每一個相機拍攝的11幅圖象分別進行處理,得到每個點的相位值,相位值由相主值加上周期數(shù)乘以2π。
相移法中相主值計算公式為φ(u,v)=atan(I2-I4I3-I1)---(2)]]>其中I1、I2、I3、I4,是點(u,v)在四幅相移光柵中的光強。
對七幅編碼光柵,通過圖象處理技術(shù),對圖象進行二值化處理,可以對每個求得每個點在每幅圖象中是黑點(編碼為1)還是白點(編碼為0),綜合7幅圖象,可得到編碼序列,然后按照編碼數(shù)與周期數(shù)之間的映射關(guān)系,將編碼序列轉(zhuǎn)化為周期數(shù)n。每個點的相位由相主值加上2nπ即可得到。
對同一個點來說,按照上面計算的相位是與攝像機拍攝的位置無關(guān)的,也就是說在對兩個攝像機拍攝的每個點的應(yīng)該是相等的。因而我們用兩個攝像機拍攝的每個點的相位值作為匹配的依據(jù)。
4)對兩個攝像機進行定標(biāo),定標(biāo)中使用的標(biāo)定塊如圖2所示。攝像機定標(biāo)是求得攝像機的內(nèi)參數(shù)及相對于世界坐標(biāo)系的外參數(shù)的過程。對空間的一個點(Xw,Yw,Zw),經(jīng)攝像機拍攝后,圖象坐標(biāo)(mm)為(x,y),象素坐標(biāo)(象素)為(u,v)x=fr1Xw+r2Yw+r3Zw+Txr7Xw+r8Yw+r9Zw+Tz]]>y=fr4Xw+r5Yw+r6Zw+Tyr7Xw+r8Yw+r9Zw+Tz---(3)]]>u=u0+x/dx(4)v=v0+y/dy其中R=r1r2r3r4r5r6r7r8r9,]]>T=[Tx Ty Tz]′為旋轉(zhuǎn)矩陣和平移向量,f為鏡頭焦距,為要標(biāo)定的參數(shù)。
(u0,v0)為圖像坐標(biāo)系的原點在像素坐標(biāo)系中的像素坐標(biāo),對我們的攝像機的分辨率是780*582,(u0,v0)取值為(390,291)。(dx,dy)為CCD相鄰象素之間的x和y方向的距離,可由CCD廠家提供。
定標(biāo)中的標(biāo)定塊是精密加工,每個點的三維坐標(biāo)是精確知道,利用圖象處理基數(shù)可以得到每個點的圖象坐標(biāo)。在本系統(tǒng)中采取Tsai的兩階段方法得到攝像機的旋轉(zhuǎn)矩陣R,平移矩陣T,焦距f。具體流程如圖3所示,其過程如下階段1計算旋轉(zhuǎn)矩陣R,Tx,Ty(4.1)計算圖像坐標(biāo)按照(4)式計算每個標(biāo)志點的圖象坐標(biāo)(x,y)。(4.2)計算五個未知量Ty-1r1,Ty-1r2,Ty-1Tx,Ty-1r4,Ty-1r5對于每一個三維對象點(Xwk,Ywk,Zwk)(因為點共面,故將Z坐標(biāo)取作0)以及相應(yīng)的圖像坐標(biāo)(xk,yk),由共線方程xk=fr1Xwk+r2Ywk+Txr7Xwk+r8Ywk+Tz]]>yk=fr4Xwk+r5Ywk+Tyr7Xwk+r8Ywk+Tz---(5)]]>將上面二式相除得到[ykXwkykYwkyk-xkXwk-xkYwk]L=xk(6)其中L=[Ty-1r1Ty-1r2Ty-1Tx Ty-1r4Ty-1r5]T(7)在上式中,有5個未知數(shù),我們的點的個數(shù)一般很多,利用最小二乘法求得方程組的解。(4.3)計算r1,...,r9,Tx,Ty(4.31)計算|Ty|定義矩陣C=r1′r2′r4′r5′=r1/Tyr2/Tyr4/Tyr5/Ty---(8)]]>則有y2=Sr-[Sr2-4(r1′r5′-r4′r2′)2]1/22(r1′r5′-r4′r2′)2(9)]]>其中
Sr=r1′2+r2′2+r5′2+r4′2, (10)如果矩陣C的某行或某列元素為全為0,按下式計算Ty2=(ri′2+rj′2)-1,其中ri′,rj′,是矩陣C剩余的另兩個元素。
(4.32)決定Ty的符號①假設(shè)Ty為正號;②選擇所拍攝圖像中,離圖像中心較遠(yuǎn)的一點。設(shè)其圖像坐標(biāo)為(xk,yk),在三維世界中的坐標(biāo)為(Xwk,Ywk,Zwk)。
③由上面的結(jié)果計算下面各式的值r1=(Ty-1r1)*Ty,r2=(Ty-1r2)*Ty,r4=(Ty-1r4)*Tyr5=(Ty-1r5)*Ty,Tx=(Ty-1Tx)*Ty, (11)xk′=r1Xwk+r2Ywk+Txyk′=r4Xwk+r5Ywk+Ty如果xk和xk′、yk和yk′都同號,那么sgn(Ty)=+1,否則sgn(Ty)=-1;(4.33)計算旋轉(zhuǎn)矩陣R根據(jù)Ty的值,重新計算r1,r2,r4,r5,Tx。
R=r1r2(1-r12-r22)1/2r4r5s(1-r42-r52)1/2r7r8r9---(12)]]>其中s=sgn(r1r4+r2r5)r7,r8,r9是由前兩行的外積得到。如果按照這樣的R計算下面的焦距f為負(fù)值,則R=r1r2-(1-r12-r22)1/2r4r5-s(1-r42-r52)1/2-r7-r8r9---(13)]]>接著計算焦距長度f和Tz的值對每一個標(biāo)定點,建立包含f和Tz作為未知參數(shù)的線性方程
Yk-ykfTz=wkyk---(14)]]>其中Yk=r4xwk+r5ywk+r6*0+Ty(15)wk=r7xwk+r8ywk+r9*0通過解方程,可求f和Tz;5)根據(jù)相位和外極線幾何對每點進行三維重構(gòu),得到物體表面點的三維坐標(biāo)。對兩個攝像機拍攝的圖象,三維空間點S(Xw,Yw,Zw)和對應(yīng)圖像坐標(biāo)的關(guān)系為x(j)=f(j)R(j)11Xw+R(j)12Yw+R(j)13Zw+T(j)xR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z,]]>y(j)=f(j)R(j)21Xw+R(j)22Yw+R(j)23Zw+T(j)zR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z---(16)]]>其中j=1,2表示兩個攝像機拍攝的圖像。
攝像機定標(biāo)后,f(j),R(j),T(j)是已知的,對個攝像機拍攝的圖像,共有四個方程,對標(biāo)定好的攝像機,利用最小二乘法可以得到三維點的坐標(biāo)。
這是立體視覺三維重建的基本原理,其中最大的問題是如何找到相匹配的兩個點,也就是說如何實現(xiàn)三維空間中一個點在兩幅圖象上的對應(yīng)關(guān)系。由計算機視覺中的外極線理論知道,對第一幅圖像中的一個點,在第二幅圖像中的對應(yīng)點是在一條直線上。其關(guān)系可有如下方程表示m~2TFm~1=0---(17)]]>其中, 是第一幅圖像中某點的像素坐標(biāo)(u1,v1,1)T, 是第二幅圖像中某點的像素坐標(biāo)(u2,v2,1)T,F(xiàn)為基礎(chǔ)矩陣(Fundamental Matrix),其元素是攝像機內(nèi)外參數(shù)。
F=A2-TEA1-1(18)其中A2=f2/dx20u020f2/dy2v02001,]]>A1=f1/dx10u010f1/dy1v01001]]>其中f1,(u01,v01),dx1,dy1為第一個攝像機的內(nèi)參數(shù),f2,(u02,v02),dx2,dy2為第二個攝像機的內(nèi)參數(shù),參數(shù)的意義同前面所述。
E=[T]xR(2)R(1)-1]]>(稱為本質(zhì)矩陣,Essential Matrix)T=T(2)-R(2)R(1)-1T(1)---(19)]]>將T表示為[Tx,Ty,Tz],[T]x為反對稱矩陣,定義為[T]x=0-TzTyTz0-Tx-TyTx0---(20)]]>可以看出基礎(chǔ)矩陣是由攝像機內(nèi)外參數(shù)所決定的,通過攝像機標(biāo)定,我們就能得到極線方程。
從極線方程可以看出,對右攝像機拍攝圖象上一點P,其坐標(biāo)為 其在左攝像機拍攝圖象上如果有對應(yīng)點Q,應(yīng)該是在由 和基礎(chǔ)矩陣F決定的一條直線上。
關(guān)鍵是在這條直線上的哪一個點呢 在前面相位獲取時,曾提到,同一個點在不同攝像機拍攝時相位值應(yīng)該是相同的。而對每一個點的相位值,我們有相位獲取是得到了的,我們正是利用這一點實現(xiàn)兩幅圖象上點的精確匹配。
算法流程圖見附圖4。找到匹配點后,利用式(16)可以計算點的三維坐標(biāo)。按照上述過程對人手進行三維測量,測量得到的點如圖5所示。
本發(fā)明所構(gòu)成的三維測量系統(tǒng)具有非接觸、速度快、數(shù)據(jù)量大、精度高、操作簡單等特點。對物體的單面測量只要2秒鐘能得到極高密度的數(shù)據(jù)(40萬個點),測量的精度在0.05mm以上。
權(quán)利要求
1.測量物體表面三維輪廓的方法,其特征在于它是一種利用相位和立體視覺技術(shù)的結(jié)合,在物體表面投射光柵,再采用雙攝像機拍攝發(fā)生畸變的光柵圖像,利用編碼光和相移方法獲得左右攝像機拍攝圖像上每一點的相位;利用相位和外極線實現(xiàn)兩幅圖像上的點的匹配,從而達(dá)到對物體表面點三維坐標(biāo)的反求的方法;它包括如下步驟(1)利用計算機生成虛擬光柵,其中包括編碼光柵和相移光柵,利用投影儀將生成的光柵投射在物體上;相移光柵的光強如下式來表達(dá)Ii(u,v)=a(u,v)+b(u,v)cos(φ(u,v)+φi)其中(u,v)為某點的坐標(biāo);Ii(u,v)為第i幅圖像中(u,v)點的光強;a(u,v)為背景光強函數(shù);b(u,v)為條紋對比度;φ(u,v)表示每個點的相位,周期為T;φi為相移角;編碼光柵共有N幅,構(gòu)造方法為第一幅為半黑半白,后面各幅逐漸細(xì)分,細(xì)分方法為上一幅的黑色部分,分為半黑半白,上一幅的白色分為半白半黑;對每一個點,根據(jù)在各幅圖像中每一幅圖像上為黑還是為白進行編碼,為黑則編碼為1,為白則編碼為0,從而得到此點的編碼序列;N幅編碼光柵可有2N個編碼序列,整個圖象被分成2N個長條,每個長條的寬度為相移光柵的周期T;對第n個長條(n=1,2,...2N,又稱周期數(shù)),按照這樣的編碼光構(gòu)造方法對應(yīng)一個唯一的編碼序列,其十進制編碼數(shù)為nc,建立周期數(shù)n和編碼數(shù)nc之間的映射關(guān)系,可實現(xiàn)兩者的互相轉(zhuǎn)換;(2)利用兩臺CCD攝像機采集投射的光柵圖像,并保存在程序中分配的數(shù)組中;(3)對每一個相機拍攝的各幅圖像分別進行處理,得到每個點的相位值,相位值由相主值加上周期數(shù)乘以2π,即2nπ,由于兩個攝像機拍攝的每個點的相位值應(yīng)該是相等的,用兩個攝像機拍攝得到的每個點相位值作為匹配的依據(jù);(4)對兩個攝像機進行定標(biāo),得到攝像機的內(nèi)參數(shù)及相對于世界坐標(biāo)系的外參數(shù)f(j),R(j),T(j),j=1,2f(j)鏡頭焦距長度,j為攝像機編號;R(j)旋轉(zhuǎn)矩陣,R=r1r2r3r4r5r6r7r8r9;]]>T(j)平移向量,T=[Tx Ty Tz]′;先計算R,Tx,Ty;(4.1)計算每個點的圖像坐標(biāo)u=u0+x/dxv=v0+y/dy對空間一個點(Xw,Yw,Zw),經(jīng)攝像機拍攝后,圖像坐標(biāo)(mm)為(x,y),象素坐標(biāo)(象素)為(u,v),(u0,v0)為圖像坐標(biāo)系的原點在像素坐標(biāo)系中的像素坐標(biāo),(dx,dy)為CCD相鄰象素之間的x和y方向的距離,可由CCD廠家提供;(4.2)計算五個未知量Ty-1r1,Ty-1r2,Ty-1Tx,Ty-1r4,Ty-1r5對于每一個三維對象點(Xwk,Ywk,Zwk)(因為點共面,故將Z坐標(biāo)取作0)以及相應(yīng)的圖像坐標(biāo)(xk,yk),由共線方程xk=fr1Xwk+r2Ywk+Txr7Xwk+r8Ywk+Tz]]>yk=fr4Xwk+r5Ywk+Tyr7Xwk+r8Ywk+Tz]]>將上面二式相除得到利用最小二乘法求得上述5個未知量;(4.3)計算r1,...,r9,Tx,Ty(4.31)計算|Ty|定義矩陣C=r1′r2′r4′r5′=r1/Tyr2/Tyr4/Tyr5/Ty]]>則有Ty2=Sr-[Sr2-4(r1′r5′-r4′r2′)2]1/22(r1′r5′-r4′r2′)2]]>其中Sr=r1′2+r2′2+r5′2+r4′2,如果矩陣C的某行或某列元素為全為0,按下式計算Ty2=(ri′2+rj′2)-1,其中ri′,rj′,是矩陣C剩余的另兩個元素;(4.32)決定Ty的符號①假設(shè)Ty為正號;②選擇所拍攝圖像中,離圖像中心較遠(yuǎn)的一點;設(shè)其圖像坐標(biāo)為(xk,yk),在三維世界中的坐標(biāo)為(Xwk,Ywk,Zwk);③由上面的結(jié)果計算下面各式的值r1=(Ty-1r1)*Ty,r2=(Ty-1r2)*Ty,r4=(Ty-1r4)*Tyr5=(Ty-1r5)*Ty,Tx=(Ty-1Tx)*Ty,xk′=r1Xwk+r2Ywk+Txyk′=r4Xwk+r5Ywk+Ty如果xk和xk′、yk和yk′都同號,那么sgn(Ty)=+1,否則sgn(Ty)=-1;(4.33)計算旋轉(zhuǎn)矩陣R根據(jù)Ty的值,重新計算r1,r2,r4,r5,Tx;R=r1r2(1-r12-r22)1/2r4r5s(1-r42-r52)1/2r7r8r9]]>其中s=sgn(r1r4+r2r5)r7,r8,r9是由前兩行的外積得到;如果按照這樣的R計算下面的焦距f為負(fù)值,則R=r1r2-(1-r12-r22)1/2r4r5-s(1-r42-r52)1/2-r7-r8r9]]>接著計算焦距長度f和Tz的值對每一個標(biāo)定點,建立包含f和Tz作為未知參數(shù)的線性方程Yk-ykfTz=wkyk]]>其中Yk=r4xwk+r5ywk+r6*0+Tywk=r7xwk+r8ywk+r9*0通過解方程,可求f和Tz;(5)根據(jù)相位和外極線幾何對每點進行三維重構(gòu),得到物體表面點的三維坐標(biāo)(5.1)計算基礎(chǔ)矩陣FF=A2-TEA1-1其中A2=f2/dx20u020f2/dy2v02001,A1=f2/dx10u010f1/dy1v01001]]>其中f1,(u01,v01),dx1,dy1為第一個攝像機的內(nèi)參數(shù),f2,(u02,v02),dx2,dy2為第二個攝像機的內(nèi)參數(shù);E=[T]xR(2)R(1)-1]]>(稱為本質(zhì)矩陣,Essential Matrix)T=T(2)-R(2)R(1)-1T(1)]]>把T表示為[Tx,Ty,Tz],則反對稱矩陣為[T]x[T]x=0-TzTyTz0-Tx-TyTx0]]>(5.2)計算右攝像機拍攝圖像上一點P,其坐標(biāo)為 找它在左攝像機拍攝圖像上的極線方程參數(shù);并在上述直線上尋找其匹配點Q點,方法是點P和點Q的相位值相等;已知 根據(jù)下述直線方程,找右攝像機拍攝圖像上點P在左攝像機拍攝圖像上的點Q,其坐標(biāo)為 m~2TFm~1=0,]]>其中 是P點的像素坐標(biāo)(u2,v2,1)T; 是Q點像素坐標(biāo)(u1,v1,1)T;根據(jù)點P和點Q相位相等的原則,在由上述直線方程決定的一條直線上尋找Q點;(5.3)找到Q點,則存儲此匹配點,按照下述的三維空間點S(Xw,Yw,Zw)和兩個攝像機拍攝圖像的對應(yīng)圖像坐標(biāo)的關(guān)系為x(j)=f(j)R(j)11Xw+R(j)12Yw+R(j)13Zw+T(j)xR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z,]]>y(j)=f(j)R(j)21Xw+R(j)22Yw+R(j)23Zw+T(j)yR(j)31Xw+R(j)32Yw+R(j)33Zw+T(j)z,]]>j=1,2,為攝像機的編號。
2.根據(jù)權(quán)利要求1所述的測量表面三維輪廓的方法,其特征在于所述相移光柵的相移角φi=i*90,i=1,...4,即相移光柵圖像有4幅,其相主值計算公式為φ(x,y)=atan(I2-I4I3-I1),]]>其中I1、I2、I3、I4,是點(u,v)在四幅相移光柵中的光強。
3.根據(jù)權(quán)利要求1所述的測量物體三維表面輪廓的方法,其特征在于所述編碼光柵共有7幅,每一點的二進制編碼序列即可轉(zhuǎn)化成該點在圖像中的位置,即周期數(shù)。
4.根據(jù)權(quán)利要求1所述的測量物體三維表面輪廓的方法而提出的系統(tǒng),其特征在于它含有計算機、投影儀、兩臺CCD攝像機。
全文摘要
測量物體三維表面輪廓的方法及系統(tǒng)屬于物體三維測量技術(shù)領(lǐng)域,其特征在于它是一種利用相位和立體視覺技術(shù)的結(jié)合,在物體表面投射光柵,用兩架攝像機拍攝發(fā)生畸變的光柵圖像,利用編碼光和相移方法獲得左右攝像機拍攝圖像上每一點的相位。利用相位和外極線實現(xiàn)兩幅圖像上的點的匹配,至此便可利用定標(biāo)了的攝像機系統(tǒng),計算點在三維空間的坐標(biāo),以實現(xiàn)物體表面三維輪廓的測量。它具有非接觸、速度快、數(shù)據(jù)量大、精度高、操作簡單、易于實現(xiàn)等優(yōu)點。對物體的單面測量只要2秒鐘便能得到極高密度的數(shù)據(jù),達(dá)40萬個點,測量的精度在0.05mm以上。
文檔編號G06T15/00GK1483999SQ0315350
公開日2004年3月24日 申請日期2003年8月15日 優(yōu)先權(quán)日2003年8月15日
發(fā)明者鐘約先, 李仁舉, 張吳明, 馬揚飚, 袁朝龍, 葉成蔚 申請人:清華大學(xué), 北京天遠(yuǎn)三維科技有限公司