專利名稱:一種基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于三維傳感與計(jì)量技術(shù)領(lǐng)域,特別涉及三維物體表面形貌的計(jì)算機(jī)重構(gòu)技術(shù)。
三維物體表面輪廓的計(jì)算機(jī)重構(gòu)技術(shù)是目前國(guó)內(nèi)外三維傳感與計(jì)量研究的熱點(diǎn)之一,它被廣泛地應(yīng)用于航空航天、機(jī)械制造、在線檢測(cè)與質(zhì)量控制、醫(yī)療診斷、計(jì)算機(jī)輔助設(shè)計(jì)/計(jì)算機(jī)輔助制造(CAD/CAM)、機(jī)器人的視覺(jué)系統(tǒng)等領(lǐng)域?;谌欠ǖ目臻g編碼方法是三維形貌重構(gòu)主要研究方向之一,然而現(xiàn)有的空間編碼方法尚存在精度受硬件性能限制大的缺點(diǎn),因此發(fā)展一種高精度的空間編碼測(cè)量方法,日益受到國(guó)內(nèi)外專家的重視。
三角法的工作原理描述如下
圖1a是空間坐標(biāo)系XYZ的XZ平面視圖,圖1b是YZ平面視圖。物點(diǎn)P是被測(cè)物體11表面上任意一點(diǎn),CCD攝象機(jī)12和投影儀13放置在物體上方,它們的光軸成一定角度,圖中分別將攝象機(jī)和投影儀簡(jiǎn)化成兩個(gè)透鏡。以攝象機(jī)鏡頭中心為原點(diǎn)(0,0,0),投影儀鏡頭中心的坐標(biāo)是(X0,0,Z0),0是投影儀的光軸與攝象機(jī)的光軸的夾角。物點(diǎn)P相對(duì)于攝象機(jī)鏡頭的水平視角和垂直視角分別是α和β,相對(duì)于投影儀鏡頭的投影角為。按照投影儀鏡頭中心、攝象機(jī)鏡頭中心和物點(diǎn)P之間的幾何三角關(guān)系,設(shè)P點(diǎn)的坐標(biāo)是(X,Y,Z),可以建立下面的方程組
X=Z·tgα(2)Y=Z·tgβ(3)按照上面的方程組,只要已知物點(diǎn)的水平視角、垂直視角和投影角,就可以求出該點(diǎn)的三維位置坐標(biāo),其中視角α、β由物點(diǎn)P在攝象機(jī)CCD陣列中對(duì)應(yīng)的像素位置給出。
CCD攝象機(jī)成像關(guān)系如圖2所示,圖中CCD陣列22對(duì)應(yīng)的被測(cè)基準(zhǔn)面21水平寬度為W,攝像機(jī)鏡頭23到被測(cè)基準(zhǔn)面21的距離是L,物點(diǎn)P在CCD陣列上水平方向上的像素位置是m,CCD陣列水平方向總像素?cái)?shù)是M,則水平視角α表示為α=tg-1(mM·WL)----(4)]]>同理,垂直視角β表示為β=tg-1(nN·HL)----(5)]]>其中,H是攝象機(jī)CCD陣列對(duì)應(yīng)的被測(cè)基準(zhǔn)面垂直高度,n是物點(diǎn)P在CCD陣列上垂直方向上的像素位置,N是CCD陣列垂直方向總像素?cái)?shù)。投影角用條紋投影空間編碼法求得。
空間編碼三角法原理如圖3所示,LCD投影儀33將投影圖案A、B、C依次投影到被測(cè)空間31,如圖3a所示;CCD攝象機(jī)依次記錄下三幅灰度圖像,如圖3b所示;圖像a、b、c分別對(duì)應(yīng)圖案A、B、C。在一般情況下,攝象機(jī)32正對(duì)被測(cè)空間31放置,投影儀33的光軸與攝象機(jī)32的光軸成一定的角度。投影圖案中的黑白條在被測(cè)空間內(nèi)形成亮暗條紋,這就在攝象機(jī)的圖像中形成不同的灰度值。把圖像二值化后,高灰度值的亮條紋表示為“1”,低灰度值的暗條紋表示為“0”。這樣圖像中的每一個(gè)像素獲得一個(gè)三位字長(zhǎng)的二進(jìn)制編碼,一個(gè)碼位對(duì)應(yīng)一幅圖,順序?yàn)榈谝晃粚?duì)應(yīng)圖像a,第二位對(duì)應(yīng)圖像b,依次類推。這就是說(shuō),不同的投影圖案有不同的權(quán),投影圖案A的權(quán)最高,圖案B其次,等等。
圖3b中,采用的是最簡(jiǎn)單的二進(jìn)制碼投影圖案,第一幅圖案A由亮暗兩條等寬度的條紋組成,第二幅圖案B將第一幅中的兩條條紋分別等分成兩條亮暗條紋,以后的投影圖案均將前一幅圖案中的每一條條紋細(xì)分成兩條等寬的亮暗條紋。圖3a中用三幅投影圖案將被測(cè)空間劃分成8個(gè)區(qū)域d,每個(gè)區(qū)域用一個(gè)三位的二進(jìn)制碼字表示出來(lái)。區(qū)域0獲得的編碼是“000”,區(qū)域1獲得的編碼是“001”,區(qū)域2獲得的編碼是“010”,等等。然后將每個(gè)區(qū)域獲得的二進(jìn)制編碼轉(zhuǎn)換成該區(qū)域?qū)?yīng)的投影碼,這個(gè)過(guò)程稱為譯碼??梢酝ㄟ^(guò)建立譯碼表或譯碼公式兩種方法來(lái)完成譯碼過(guò)程。圖3中投影圖案的譯碼表表示如下表1譯碼表
按照上面的譯碼表編寫搜尋譯碼程序,由計(jì)算機(jī)完成譯碼過(guò)程。二進(jìn)制碼投影圖案還可以建立譯碼公式Np=Nd-2n-1+0.5 (6)其中,Np是投影碼,Nd是十進(jìn)制編碼,n是二進(jìn)制碼投影圖案幅數(shù)。有了投影碼,通過(guò)下面的關(guān)系式就可以求出投影角。
其中,L是鏡頭到被測(cè)基準(zhǔn)面的距離,K是投影條紋在被測(cè)基準(zhǔn)面上劃分的子區(qū)域的寬度。
條紋投影空間編碼是用條紋的空間分布將被測(cè)空間劃分成許多子區(qū)域,子區(qū)域的寬度決定該方法的空間分辨率,表示為S=12·h0nw·sin(a)----(8)]]>其中,S表示系統(tǒng)的空間分辨率,h0是測(cè)量空間的高度,a是攝象機(jī)與投影儀之間的夾角,nw是編碼的碼字?jǐn)?shù)目。當(dāng)nw增加時(shí),系統(tǒng)的測(cè)量誤差減小。但是不能無(wú)限制地增加nw,由于采樣定理的限制,攝象機(jī)的采樣頻率應(yīng)該是投影儀對(duì)物體表面的區(qū)域劃分頻率的兩倍以上,也就是編碼要滿足投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度,所以nw不能取得太大。如果要進(jìn)一步提高空間分辨率,就必須提高硬件設(shè)備的性能,選用具有更高光學(xué)分辨率的LCD投影儀和CCD攝象機(jī)。然而,這樣將大幅度增加系統(tǒng)的成本。
本發(fā)明的目的在于克服已有純粹黑白條紋投影法空間分辨率受硬件性能限制的不足之處,提出一種通過(guò)黑白條紋與灰度條紋結(jié)合的三維輪廓重構(gòu)方法,具有測(cè)量精度高,不受硬件性能限制的特點(diǎn)。
本發(fā)明提出的一種基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法,其特征在于首先采用黑白條紋投影圖案對(duì)被測(cè)空間進(jìn)行粗略的空間編碼,以實(shí)現(xiàn)對(duì)被測(cè)三維輪廓的粗劃分,然后再用灰度漸變的圖案對(duì)所說(shuō)的粗劃分的空間再進(jìn)行細(xì)劃分。這樣用黑白條紋和灰度投影相結(jié)合的圖案就可以得到比同樣數(shù)目黑白條紋投影的空間編碼劃分細(xì)致得多的效果,從而達(dá)到突破硬件限制的目的。
上述黑白條紋投影和灰度投影結(jié)合法的具體實(shí)現(xiàn)步驟如圖4所示。首先,LCD投影儀將條紋投影圖案和灰度投影圖案依次投射到被測(cè)物體,CCD攝象機(jī)依次記錄下對(duì)應(yīng)的黑白條紋圖像和灰度圖像。其次,分別處理這兩類圖像,黑白條紋圖像經(jīng)過(guò)二值化處理和譯碼處理后得到粗編碼信息矩陣,灰度圖像經(jīng)過(guò)消除背景光處理和規(guī)范化處理后得到精編碼信息矩陣。然后,將粗、精編碼信息矩陣相結(jié)合得到完整的編碼信息矩陣。最后,用基于像素的三角法解算程序重構(gòu)出三維物體的表面形貌。
為了提高黑白條紋投影的編碼效率,本發(fā)明采用的黑白條紋投影編碼的方法,包括1)每一個(gè)編碼區(qū)域?qū)?yīng)碼字均不相同;2)相鄰編碼區(qū)域之間的Hamming距離均是1;3)每一個(gè)物點(diǎn)上至少有被一個(gè)亮條紋和一個(gè)暗條紋所投影的機(jī)會(huì);4)投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度。
實(shí)現(xiàn)上述編碼的具體步驟為1)設(shè)定投影的圖案數(shù)目N,使投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度,每幅投影圖案的明暗分布對(duì)應(yīng)設(shè)定的編碼區(qū)域M,組成一個(gè)N*M矩陣,該矩陣中的元素aij對(duì)應(yīng)第j個(gè)編碼區(qū)域的第i位的值;2)給矩陣的第一列賦初值,初始值可以出1和0任意組合,也可以取默認(rèn)值3)變化第一列中的一位的值,把它作為下一列;
4)判斷該列是否全為0或全為1或與前面的某列相同,如果是,則重新變化另一位的值,再判斷;如果沒(méi)有上述情況,則將其作為新生成的列;5)重復(fù)3、4步驟的過(guò)程,直至生成全部投影圖案矩陣。
在上述生成黑白條紋投影圖案的編碼方法詳細(xì)說(shuō)明如下1.編碼的相互獨(dú)立性。
在編碼圖案中,每一個(gè)編碼區(qū)域?qū)?yīng)碼字均不相同。這個(gè)條件是必要的,它使基于單一像素的三角法成為可能,令計(jì)算機(jī)自動(dòng)處理編碼時(shí)不會(huì)產(chǎn)生歧義。圖5中列出了一種相互獨(dú)立的二進(jìn)制編碼。
2.相鄰編碼區(qū)域之間的Hamming距離均是1。
這個(gè)條件使條紋投影空間二進(jìn)制編碼造成的邊緣編碼誤差最小。圖6中列出了一種Hamming距離H均為1的編碼。
3、編碼的自我規(guī)范化性。
測(cè)量中由于像素上取得的光強(qiáng)灰度值受投影物面的反射率影響,可能發(fā)生的情況是暗條紋在白色物面上產(chǎn)生的灰度值比亮條紋在黑色物面上產(chǎn)生的灰度值大。這樣就不能用一個(gè)全局恒定的二值化閾值去滿足所有的被測(cè)區(qū)域,全局閾值只適用于物面反射率一致且無(wú)外部光照或外部光照均勻的構(gòu)造情況。因此,要求每一個(gè)物點(diǎn)上至少有被一個(gè)亮條紋和一個(gè)暗條紋所投影的機(jī)會(huì),它對(duì)應(yīng)的像素上的光強(qiáng)灰度值序列中就會(huì)含有一個(gè)較大和較小的灰度值。這樣就可以按單一像素二值化以取得二進(jìn)制編碼,其閾值為該像素上較大和較小的灰度值的平均值。稱這樣的編碼為能夠自我規(guī)范化的,它能夠適用于物面反射率不一致且有外部光照的非構(gòu)造情況。
圖7a的格雷碼具有相鄰碼字的Hamming距離恒為1的特性,同時(shí)具有便于數(shù)據(jù)轉(zhuǎn)化的特點(diǎn)。但是,該編碼中含有不能自我規(guī)范化的區(qū)域D,它們是區(qū)域0和區(qū)域5。區(qū)域0由三個(gè)全亮的條紋構(gòu)成編碼,區(qū)域5由三個(gè)全暗的條紋構(gòu)成編碼。當(dāng)進(jìn)行動(dòng)態(tài)閾值二值化時(shí),它們當(dāng)中的一些碼位被二值化成“1”,另一些碼位被二值化成“0”,從而產(chǎn)生編碼錯(cuò)誤。解決這個(gè)問(wèn)題的方法是增加一幅全亮和一幅全暗的投影圖案,以確保每一個(gè)碼字能夠自我規(guī)范化,如圖7b所示。這相當(dāng)于增加一個(gè)0和1位到每一個(gè)碼字中,這樣區(qū)域0和5由原來(lái)的碼字“111”和“000”變成現(xiàn)在的碼字“01000”和“01111”,可以實(shí)現(xiàn)動(dòng)態(tài)閾值二值化。
4.編碼要滿足采樣定理。
采樣定理在這里可以描述為攝象機(jī)的采樣頻率是投影儀對(duì)物體表面的區(qū)域劃分頻率的兩倍以上。即編碼要滿足投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度。如圖8所示,圖中小方格表示CCD攝象機(jī)的一個(gè)像素在被測(cè)物面上對(duì)應(yīng)的視野范圍。圖上投影條紋劃分的最小區(qū)域的寬度大于兩個(gè)像素視野寬度,滿足采樣定理。
上述黑白條紋編碼的生成過(guò)程可以利用程序自動(dòng)完成。如圖9首先設(shè)定要投影的圖案數(shù)目N,然后計(jì)算需要生成的投影矩陣的大小。矩陣的行數(shù)N為投影圖案數(shù)目,為設(shè)定值,其列數(shù)M為該編碼對(duì)空間的劃分個(gè)數(shù),理論上應(yīng)為2N個(gè)。但是這2N個(gè)劃分中包括了全亮、全暗的編碼,不能很好的二值化,還可能不滿足Hamming距離為1的條件。如果按照N的奇偶分類,分別設(shè)定列數(shù)M=2N-2或M=2N-3,那么就一定可以保證生成的編碼符合本發(fā)明設(shè)定的條件。接下來(lái)輸入初始列或采用默認(rèn)值。下面由程序變換這一列中的一位,并檢查該列是否全零(全暗)、全一(全亮)或與前面的列重復(fù),進(jìn)而決定接受該列或變化另一位繼續(xù)檢查,直到得到滿意的列。這樣逐列生成編碼,當(dāng)全部編碼生成后,輸出編碼矩陣。圖10是用這個(gè)程序生成的一組5位的二進(jìn)制編碼圖案,它有30個(gè)碼字,將被測(cè)空間劃分成30個(gè)子區(qū)域,每個(gè)碼字是一個(gè)5位字長(zhǎng)的二進(jìn)制編碼。這組編碼圖案是用缺省初始列[10...0]T生成的,當(dāng)然,如果采用不同的初始列,會(huì)生成不同的編碼圖案。
在黑白條紋投影的基礎(chǔ)上,本發(fā)明增加了兩幅灰度圖案投影。這兩幅圖案也可以用程序自動(dòng)實(shí)現(xiàn)。例如可以利用計(jì)算機(jī)控制投影儀按灰度值線性變化完成投影。
通過(guò)采用黑白條紋投影和灰度投影結(jié)合的方法,本發(fā)明有效的克服了純粹黑白條紋投影法空間分辨率嚴(yán)格受限于硬件性能的不足,用較小的硬件開(kāi)支就可以獲得較高的空間分辨率。
附圖簡(jiǎn)要說(shuō)明圖1為三角法原理示意圖。
圖2為CCD攝象機(jī)成像關(guān)系示意圖。
圖3為空間編碼三角法原理示意圖。
圖4為本發(fā)明的黑白條紋投影和灰度投影結(jié)合法的流程5為編碼的獨(dú)立性示意圖。
圖6為Hamming距離均是1的編碼圖案示意圖。
圖7為編碼的自我規(guī)范化示意圖。
圖8為編碼的采樣定理示意圖。
圖9為本發(fā)明的實(shí)施例的編碼圖案自動(dòng)生成軟件流程圖。
圖10為本發(fā)明的實(shí)施例的二進(jìn)制編碼圖案示意圖。
本發(fā)明提出的一種基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法實(shí)施例結(jié)合附圖詳細(xì)描述如下本發(fā)明以5幅投影圖案為實(shí)施例,如圖11所示,首先,投影儀112用3幅黑白條紋圖案E1、E2、E3將被測(cè)空間粗略地劃分成7個(gè)區(qū)域,每個(gè)區(qū)域D得到一個(gè)整數(shù)表示的編碼。然后,投影儀112用2幅灰度投影圖案E4、E5在每個(gè)區(qū)域內(nèi)形成由暗到亮和由亮到暗的均勻灰度分布,在消除背景光和規(guī)范化處理之后得到被測(cè)物體表面的精確編碼信息,它提供編碼的小數(shù)部分。最后,將粗編碼信息和精編碼信息相結(jié)合,計(jì)算機(jī)采樣攝象機(jī)111的視頻圖像信號(hào),并以位圖格式存儲(chǔ)和讀取圖像。每一幅圖像在計(jì)算機(jī)里表示為一個(gè)480×640的矩陣,矩陣的元素是0~255之間表示灰度級(jí)的整數(shù)。設(shè)矩陣I1、I2、I3、I4、I5分別表示5幅圖像,首先對(duì)I1、I2、I3進(jìn)行動(dòng)態(tài)閾值二值化Imax=max(I1,I2,I3)(9)Imin=min(I1,I2,I3) (10)Ithr=12(Imax+Imin)----(11)]]>Bi=floor(Ii./Ithr) (i=1,2,3)(12)表示二進(jìn)制數(shù)異或運(yùn)算,Ithr是動(dòng)態(tài)閾值矩陣,其元素取為對(duì)應(yīng)的像素上最大灰度值和最小灰度值的平均值。Bi(i=1,2,3)是二值化后的矩陣,元素全部由0和1組成。floor是向負(fù)無(wú)窮方向取整函數(shù),./表示矩陣點(diǎn)除運(yùn)算。根據(jù)該編碼的特點(diǎn),可用下面的公式方便地完成譯碼過(guò)程,把二進(jìn)制數(shù)轉(zhuǎn)換成十進(jìn)制數(shù)B1′=B1]]>Bi′=Bi-1′⊕Bi(i=2,3)----(13)]]>A=B1′·22+B2′·21+B3′·20-4----(14)]]>Cn480×640=[A1480×320-A2480×320]----(15)]]>A是譯碼后的十進(jìn)制數(shù)矩陣,根據(jù)投影圖案的對(duì)稱性,A的每一行元素的變化規(guī)律為-3、-2、-1、0、-1、-2、-3。將矩陣A的右半矩陣符號(hào)取反,得到最終的粗編碼譯碼矩陣Cn。
通過(guò)公式(16)將表示灰度圖像的矩陣I4和I5做消除背景光和規(guī)范化處理,其元素規(guī)范在-0.5~0.5之間。將粗編碼信息矩陣Cn和精編碼信息矩陣Cp相加,得到最終的編碼信息矩陣CCp=12(I4-I5)./(Imax-Imin)----(16)]]>C=Cn+Cp(17)最后,用基于像素的三角法解算程序重構(gòu)出物體的表面形貌。由于這種方法在純粹的黑白條紋投影基礎(chǔ)上附加了更加豐富的小數(shù)編碼信息矩陣Cp,故只用較少的投影圖案就能取得優(yōu)于純粹黑白條紋投影的重構(gòu)結(jié)果。實(shí)驗(yàn)證明,5幅投影圖案的結(jié)合法得到的測(cè)量結(jié)果優(yōu)于8幅黑白條紋投影法的測(cè)量結(jié)果。
權(quán)利要求
1.一種基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法,其特征在于首先采用黑白條紋投影圖案對(duì)被測(cè)空間進(jìn)行粗略的空間編碼,以實(shí)現(xiàn)對(duì)被測(cè)三維輪廓的粗劃分,然后再用灰度漸變的圖案對(duì)所說(shuō)的粗劃分的空間再進(jìn)行細(xì)劃分。
2.如權(quán)利要求1所述的基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法,其特征在于具體實(shí)現(xiàn)步驟為1)首先,LCD投影儀將所說(shuō)的黑白條紋投影圖案和灰度投影圖案依次投射到被測(cè)物體,CCD攝象機(jī)依次記錄下對(duì)應(yīng)的黑白條紋圖像和灰度圖像;2)其次,分別處理這兩類圖像,黑白條紋圖像經(jīng)過(guò)二值化處理和譯碼處理后得到粗編碼信息矩陣,灰度圖像經(jīng)過(guò)消除背景光處理和規(guī)范化處理后得到精編碼信息矩陣;3)然后,將粗、精編碼信息矩陣相結(jié)合得到完整的編碼信息矩陣;4)最后,用基于像素的三角法解算程序重構(gòu)出三維物體的表面形貌。
3.如權(quán)利要求1所述的基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法,其特征在于所說(shuō)的采用黑白條紋投影圖案的空間編碼方法包括1)每一個(gè)編碼區(qū)域?qū)?yīng)碼字均不相同;2)相鄰編碼區(qū)域之間的Hamming距離均是1;3)每一個(gè)物點(diǎn)上至少有被一個(gè)亮條紋和一個(gè)暗條紋所投影的機(jī)會(huì);4)投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度。
4.如權(quán)利要求3所述的基于空間編碼的三維輪廓計(jì)算機(jī)重構(gòu)方法,其特征在于所說(shuō)的采用黑白條紋投影圖案的空間編碼方法的具體實(shí)現(xiàn)步驟為1)設(shè)定投影的圖案數(shù)目N,使投影條紋劃分的最小區(qū)域的寬度至少二倍于一個(gè)像素視野寬度,每幅投影圖案的明暗分布i對(duì)應(yīng)設(shè)定的編碼區(qū)域M,組成一個(gè)N*M矩陣,該矩陣中的元素aij對(duì)應(yīng)第j個(gè)編碼區(qū)域的第i位的值;2)給矩陣的第一列賦初值,初始值可以由1和0任意組合,也可以取默認(rèn)值;3)變化第一列中的一位的值,把它作為下一列;4)判斷該列是否全為0或全為1或與前面的某列相同,如果是,則重新變化另一位的值,再判斷;如果沒(méi)有上述情況,則將其作為新生成的列;5)重復(fù)3、4步驟的過(guò)程,直至生成全部投影圖案矩陣。
全文摘要
本發(fā)明屬于三維傳感與計(jì)量技術(shù)領(lǐng)域,本方法為:首先采用黑白條紋投影圖案對(duì)被測(cè)空間進(jìn)行粗略的空間編碼,以實(shí)現(xiàn)對(duì)被測(cè)三維輪廓的粗劃分,然后再用灰度漸變的圖案對(duì)所說(shuō)的粗劃分的空間再進(jìn)行細(xì)劃分。本發(fā)明具有測(cè)量精度高,不受硬件性能限制的特點(diǎn)。
文檔編號(hào)G06T9/00GK1271144SQ00107760
公開(kāi)日2000年10月25日 申請(qǐng)日期2000年5月26日 優(yōu)先權(quán)日2000年5月26日
發(fā)明者尤政, 董斌, 于世潔 申請(qǐng)人:清華大學(xué)