本發(fā)明涉及一種三維測量方法,尤其涉及分段量化相位編碼的結(jié)構(gòu)光投影三維測量方法。
背景技術(shù):
結(jié)構(gòu)光投影輪廓術(shù)由于非接觸、高精度、全場無損耗測量、測量速度快、靈敏度高和自動化程度高等優(yōu)點,在三維測量中有重要意義。三維測量系統(tǒng)如圖1所示,包括dlp投影儀1、黑白ccd2、工作站3、測量支架4、參考平面5和待測物體6;dlp投影儀1和黑白ccd2放在測量支架4上;dlp投影儀1、黑白ccd2分別通過數(shù)據(jù)線連接工作站3;待測物體6放在參考平面5上;工作站3內(nèi)包含圖像采集卡、投影軟件、測量軟件。dlp投影儀1將帶有特征信息的條紋聚焦投射到被測物體6表面,由黑白ccd2采集條紋信息,經(jīng)過工作站3處理后提取出特征信息,并按照特定算法進行三維重建。dlp投影儀1光軸和黑白ccd2光軸相交于o點。dlp投影儀1和黑白ccd2為同一高度,它們之間的距離為d,它們到參考平面的距離為l0。被測物體6的高度計算公式為:
其中f0為參考平面上的正弦條紋頻率,
隨著科技的發(fā)展,人們對光學(xué)的方式測量物體的三維數(shù)據(jù)要求不斷提高,重建精度的要求越來越高。通過對國內(nèi)外研究現(xiàn)狀及發(fā)展動向分析研究,傳統(tǒng)的基于相移的方法會出現(xiàn)2π跳變點,必須用解包裹算法進行解包裹得到絕對相位,之后才能進行三維重建。然而,對于有復(fù)雜外形或紋理的物體,如何快速、實時實現(xiàn)絕對相位的恢復(fù)依然是個巨大的挑戰(zhàn)。
傳統(tǒng)的相位編碼方法需要兩組條紋,一組是用于得到包裹相位的正弦條紋,另一組是用于得到條紋級次的相位編碼條紋。當(dāng)對n個周期的包裹相位進行解包裹時,需要嵌入n個碼字到編碼相位中。編碼相位均勻分布在[-π,π],被分成n個級別依次遞增順序排列,每個相位確定一個碼字。然而,如果我們把編碼相位設(shè)置成更多的級別用于產(chǎn)生更多的碼字,因為系統(tǒng)的非線性影響,相鄰編碼相位的差異太小反而不能保證碼字的正確識別。相反,如果減少碼字的數(shù)量,意味著增大正弦條紋周期,這會產(chǎn)生更大的相位誤差,導(dǎo)致測量精度降低。為了解決這個問題,有學(xué)者提出可以利用兩組甚至多組相位編碼條紋,產(chǎn)生更多的碼字,提高測量精度。但是這卻需要花費更多的時間,從而無法實現(xiàn)快速測量。因此,盡可能的增加碼字,同時不增加投影條紋的幀數(shù),成為快速、實時和高精度的三維測量的突破口。
本發(fā)明提出一種基于分段量化相位編碼的結(jié)構(gòu)光三維測量方法,此方法只需投射4幀正弦條紋和3幀量化相位編碼條紋,可以產(chǎn)生比傳統(tǒng)相位編碼方法更多的碼字,耗時短,從而提高測量精度,適合快速、實時三維測量的場合。除此之外,傳統(tǒng)相位編碼方法,僅使用1位碼字確定條紋級次。而本發(fā)明用一種結(jié)合當(dāng)前周期及其相鄰周期的量化相位編碼方法來確定條紋級次,提高識別準(zhǔn)確性。
本發(fā)明所述的一種基于分段量化相位編碼的結(jié)構(gòu)光三維測量方法正是在這一背景下提出的。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提出一種基于分段量化相位編碼的結(jié)構(gòu)光三維測量方法,此方法較傳統(tǒng)的正弦條紋加相位編碼條紋的三維測量方法,在測量精度上有明顯提高,適合復(fù)雜物體的三維測量場合。
本發(fā)明是基于分段量化相位編碼的結(jié)構(gòu)光三維測量方法,其特征是:量化相位編碼原理和分段相位編碼原理。
(1)量化相位編碼原理:是將通過由特定編碼序列cs調(diào)制產(chǎn)生的量化編碼相位分別嵌入同頻率且相位依次為0°、120°、240°的相位編碼條紋,得到3幅量化相位編碼條紋。
(2)分段相位編碼原理:根據(jù)實際測量需要(物體大小,精度要求),可以把整個投影儀水平方向的像素分成n段(n為整數(shù)),每段的量化編碼相位都由編碼序列cs調(diào)制得到,可以產(chǎn)生較多的碼字。
所述特定編碼序列,量化級別是m,碼字是整數(shù)且小于或等于m,相鄰兩個碼字的差值至少大于1,任何連續(xù)的3位碼字在一個周期內(nèi)只能出現(xiàn)一次;編碼序列,其編碼規(guī)則是:碼字根據(jù)奇偶分成兩組,并根據(jù)大小依次遞增排序;如我們把量化級別設(shè)置為m=6(m為整數(shù));3位碼的奇數(shù)組合是‘135’,偶數(shù)組合是‘246’;然后把這兩組3位碼組合成一個6位的編碼序列cs:‘135246’。
本發(fā)明的優(yōu)點是:
(1)與傳統(tǒng)的正弦條紋加相位編碼條紋投影方法相比:傳統(tǒng)方法單調(diào)有限地量化編碼相位以產(chǎn)生唯一的碼字,僅使用1位碼字確定當(dāng)前周期條紋級次;本方法通過特定的編碼序列cs來調(diào)制量化編碼相位,特定的編碼規(guī)則使得解碼的準(zhǔn)確性得以大大提高;
(2)該方法將調(diào)制后的量化編碼相位嵌入到3幅編碼條紋中,并使用連續(xù)的3位碼字確定當(dāng)前周期條紋級次,極大地提高了條紋級次的準(zhǔn)確性和三維測量精度;
(3)根據(jù)實際測量需要,該方法可以產(chǎn)生較多的碼字,測量精度高,魯棒性好,在復(fù)雜物體較大物體、帶有單一顏色物體的三維測量中具有潛在的應(yīng)用前景和實用價值。
附圖說明
圖1為本發(fā)明的三維測量系統(tǒng)示意圖。
圖2為本發(fā)明的四幅正弦條紋圖
圖3為本發(fā)明的量化編碼相位圖
圖4為本發(fā)明的量化相位編碼條紋圖
圖5為本發(fā)明的條紋級次k的確定準(zhǔn)則
具體實施方式
以下結(jié)合附圖說明對本發(fā)明的實施作進一步詳細(xì)描述,但本實例并不用于限制本發(fā)明,凡是采用本發(fā)明的相似結(jié)構(gòu)及其相似變化,均應(yīng)列入本發(fā)明的保護范圍。
基于分段量化相位編碼的結(jié)構(gòu)光三維測量方法,包括以下步驟:
(一)編寫正弦條紋
實際測量通常采用四步相移法進行三維測量,則四幅正弦條紋圖:
an(x,y)=a'(x,y)+a”(x,y)cos[φ1(x,y)+π(n-1)/2](n=1,2,3,4)
其中,a'(x,y)是平均亮度,a”(x,y)是調(diào)制亮度,φ1(x,y)是待求相位。生成a1(x,y)、a2(x,y)、a3(x,y)、a4(x,y)四幅正弦條紋圖,如圖2所示。
(二)編寫分段量化相位編碼條紋
為了產(chǎn)生這種量化相位編碼條紋,碼字根據(jù)奇偶分成兩組,并根據(jù)大小依次遞增排序。例如我們把量化級別設(shè)置為m=6(m為整數(shù))。3位碼的奇數(shù)組合是‘135’,偶數(shù)組合是‘246’。然后把這兩組3位碼組合成一個6位的編碼序列cs:‘135246’。根據(jù)實際需要,可以把整個投影儀水平方向的像素分成n段(n為整數(shù)),每段的量化編碼相位都由編碼序列cs調(diào)制得到。
把編碼序列cs轉(zhuǎn)化成量化編碼相位可以用下式表示:
φ2(x,y)=cs[floor(x/p)]g2π/m
其中x為投影儀水平方向的像素點,p為一個周期的像素數(shù),cs[k]為計算得到編碼序列cs的第k個碼字。生成的量化編碼相位如圖3所示。
把量化編碼相位嵌入三幅相位編碼條紋中:
in(x,y)=i'(x,y)+i”(x,y)cos[φ2(x,y)+2πn/3](n=1,2,3)
其中,i'(x,y)是平均亮度,i”(x,y)是調(diào)制亮度,φ2(x,y)是待求相位。生成i1(x,y)、i2(x,y)、i3(x,y)三幅量化相位編碼條紋圖,如圖4所示。
(三)采集圖片
用投影儀依次投射上述生成的正弦條紋和量化相位編碼條紋于參考面和物體上,用ccd采集這兩組圖片,將結(jié)果送入計算機中。
(四)三維重建
根據(jù)(一)結(jié)果,由四步相移法計算得到截斷相位:
φ1(x,y)=tan-1[(i2-i4)/(i1-i3)]
根據(jù)(二)結(jié)果,由三步相移法計算得到量化編碼相位:
經(jīng)取整運算后得到最終的量化編碼相位碼字:
c(x,y)=round[mφ2(x,y)/2π]
條紋級次的識別:利用連通區(qū)域標(biāo)記原理,根據(jù)計算得到的碼字,從碼字圖映射創(chuàng)建6個二進制掩碼:
這些二進制掩碼被用來確定不同碼字區(qū)域的分布。在編碼序列cs中,一個碼字會出現(xiàn)多次,因此將存在幾個具有相同的碼值的條紋和幾個相同二進制掩碼的連通區(qū)域。對于每個掩碼li,使用標(biāo)記操作,用唯一的標(biāo)記值來標(biāo)記每個連通區(qū)域。從而唯一確定出具有代碼i和標(biāo)記j的連通區(qū)域rij。在同一個連通區(qū)域rij內(nèi)的所有點具有相同的條紋級次。所以,只要確定連通區(qū)域內(nèi)質(zhì)心點的條紋級次,那么,在該點所處連通區(qū)域內(nèi)的所有其他點的條紋級次也都可以確定。標(biāo)記操作后,任意一個連通區(qū)域內(nèi)的質(zhì)心很容易可以求得,記為(xij,yij)。則該區(qū)域內(nèi)的碼字為ccurrent=i。進一步求得rij內(nèi)yij行的左端點xijl和右端點xijr。則前一個連通區(qū)域的碼字為
最終,計算得到連續(xù)3位碼字cformerccurrentclatter后,就可以確定其當(dāng)前周期ccurrent的條紋級次k。條紋級次k的確定變成編碼序列cs中連續(xù)3位碼字的順序位置定位。確定準(zhǔn)則如圖5所示。
根據(jù)上述方法,通過解相位公式:
φ=φ1+2kπ
進行相位解包裹,分別得到參考面的連續(xù)相位值α和帶物體的連續(xù)相位值β。
通過公式:
得到物體連續(xù)相位差,從而利用相位-高度公式:
最后得到物體表面每一點的高度信息。