在結(jié)構(gòu)光三維重建中,最常見的方法就是相移法,相移是通過投影一系列相移光柵圖像編碼,從而得到物體表面一點(diǎn)在投影儀圖片上的相對位置或者絕對位置。下面,筆者將詳細(xì)介紹如何制作相移編碼圖片,以及如何對獲取的相移圖片進(jìn)行解碼,最后筆將粗淺的談?wù)勏嘁葡啾绕渌椒ǎㄈ绺窭状a)有什么優(yōu)勢。
常見的三步相移法公式如下所示:
其中 I1,I2,I3是相位圖的灰度值,?是條紋光強(qiáng)的背景值,?
?為條紋光強(qiáng)的調(diào)制強(qiáng)度,?
?是相位主值。由于cos的取值范圍是[-1,1],在制作編碼圖片的時(shí)候,我們可以把?
?和?
都設(shè)置成127,這樣就可以保證制作的相位圖片的灰度值在0-255之間,以及一個(gè)高動(dòng)態(tài)的范圍。實(shí)際上由于投影儀投射出來的光的灰度值并不是線性變化的,為了消除這種非線性變化問題,有不少人提出了各種針對投影光的伽馬矯正方法。如果精度要求不是特別嚴(yán)苛的話,投影儀投影的光在某個(gè)動(dòng)態(tài)區(qū)間(通常是中間灰度值那一段,比如50-200的區(qū)間)會(huì)逼近于線性變化,我們也可以在制作圖片的時(shí)候把動(dòng)態(tài)區(qū)間調(diào)整至逼近線性變換區(qū)間的范圍來消除這種非線性變化的干擾。
如下圖所示,是用三步相移公式做的相移圖片,為了更加清楚地描述,這里使用的是0-55的灰度值范圍。
三步相移法示例圖片
由之前我們知道,編碼主要是為了標(biāo)記投影儀的圖片的實(shí)際位置,在相移中,我們用相位主值 編碼投影儀圖片的像素,對于某一個(gè)周期內(nèi)的投影坐標(biāo),我們可以這樣把相位主值換成其在周期內(nèi)的實(shí)際坐標(biāo):
Pixel即該點(diǎn)在周期內(nèi)的實(shí)際坐標(biāo),period即一個(gè)相位周期所占的像素列數(shù),實(shí)際上,我們不可能僅用一個(gè)周期標(biāo)記一整張相位圖片,其實(shí)很正常,我們的圖片列數(shù)常常是幾百甚至上千,而灰度值的動(dòng)態(tài)范圍只有255, 所以我們通常會(huì)設(shè)計(jì)一個(gè)周期所占像素列數(shù),如上圖所示,一個(gè)相位周期占圖片12列, 一張圖片約有10個(gè)周期。想要知道某個(gè)相位解碼點(diǎn)在投影圖片的實(shí)際坐標(biāo),我們除了知道其相位主值,還需要知道其是第幾個(gè)周期的相位。一個(gè)像素點(diǎn)的實(shí)際列坐標(biāo)如下所示:
i 是相位所在的周期數(shù)(通常對第一個(gè)相位周期用0來編碼), i的數(shù)值常用格雷碼編碼或者其他編碼方法輔助得到。又可以根據(jù)相位展開后的主值在空域上的分布來求解其是第幾個(gè)周期,不過這樣通常不準(zhǔn)。
把相移編碼光投影到物體表面后,我們就可以解碼了,如上面的方程所示,I1,I2,I3是相機(jī)圖片的灰度值,那么上述三個(gè)方程就只剩三個(gè)未知數(shù),?三個(gè)方程解三個(gè)未知數(shù)在滿秩的情況下一定是可解的,而且對于這三個(gè)未知數(shù)來說,我們其實(shí)只需要關(guān)心 ,相位主值的大小。解碼公式如下所示:
如果?解成?
?,則需要把其換算到?
?區(qū)間。上述相移編碼的解碼結(jié)果如下圖所示:
解碼后的相位主值圖
除了三步相移法,我們還可以設(shè)計(jì)四步甚至更多步相移法,具體編碼和解碼方式如下,對于N步相移法,我們需要N幅編碼圖片,對于第 ( )幅編碼圖片(通常我們用0標(biāo)記第一幅圖片), 其編碼如下:
其對應(yīng)的N步相移法的解碼公式為:
如何選定相移步長呢? 一般來說,步長越多越精確和穩(wěn)定,但是在實(shí)際的應(yīng)用中,考慮到三維成像幀率等原因,用三步或四步像移方法的較多。如果不考慮幀率的話,在論文[1]中有提到,如果能使用飽和式的相移圖片(saturated fringe patterns),即讓相移步長 N等于一個(gè)相位周期編碼列數(shù)的整數(shù)倍,如果編碼列數(shù)是偶數(shù)m的話,相移步長N可以是 m/2 的整數(shù)倍,這樣的話,解相移的時(shí)候?qū)Ω叻垂獗砻嫦辔恢髦狄材芙獬霰容^好的結(jié)果。不過要對高反光表面的相移解碼得到非常好的效果,相移步長N通常都要在10以上,對于追求速度的三維重建,可能沒有那么吸引人。
最后,想和大家聊聊相移法比起格雷碼的優(yōu)勢,首先,相移可以看成連續(xù)變化的值,比如說我們解相位換算成像素點(diǎn)坐標(biāo)的時(shí)候,通常可以達(dá)到小數(shù)級(jí)(亞像素級(jí))的精度,如果我們用格雷碼,在不使用插值的情況下,通常只能達(dá)到像素級(jí)的精度。為什么相移達(dá)到的亞像素級(jí)的精度是正確的呢?認(rèn)為和光本身就是一種正弦波有關(guān),光打在物體表面上,會(huì)以正弦波的形式向周邊散開,所以使用相移時(shí)得到的亞像素級(jí)的解碼精度往往是比較準(zhǔn)確的。此外,我們用的相移是時(shí)序,利用光的在時(shí)間中(不同投影圖片下)的變化量來解碼,相比格雷碼用閾值二值化,受到物體紋理的影響會(huì)更小。比如相移光打在暗色物體上,可能解出來的 會(huì)比較小,但是不影響我們解出正確的相位主值 。
審核編輯:郭婷
-
投影儀
+關(guān)注
關(guān)注
4文章
886瀏覽量
43749 -
編碼
+關(guān)注
關(guān)注
6文章
962瀏覽量
55197
原文標(biāo)題:系列篇|結(jié)構(gòu)光三維重建——相移法基本原理
文章出處:【微信號(hào):3D視覺工坊,微信公眾號(hào):3D視覺工坊】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
使用DLP LightCrafter4500投影結(jié)構(gòu)光進(jìn)行三維重建遇到的疑問求解
在結(jié)構(gòu)光三維成像方面DLP LightCrafter 4500如何連續(xù)投射彩色圖?
三維測量在醫(yī)療領(lǐng)域的應(yīng)用
三維測量技術(shù)在工業(yè)中的應(yīng)用
商湯科技運(yùn)用AI大模型實(shí)現(xiàn)實(shí)景三維重建
CASAIM與邁普醫(yī)學(xué)達(dá)成合作,三維掃描技術(shù)助力醫(yī)療輔具實(shí)現(xiàn)高精度三維建模和偏差比對
建筑物邊緣感知和邊緣融合的多視圖立體三維重建方法

混合鍵合的基本原理和優(yōu)勢

3DP工藝基本原理
留形科技借助NVIDIA平臺(tái)提供高效精確的三維重建解決方案
基于大模型的仿真系統(tǒng)研究一——三維重建大模型

三維可視化系統(tǒng)平臺(tái)介紹及優(yōu)勢

三維可視化的優(yōu)勢有哪些?

三維雷達(dá)在煤堆檢測中的具體應(yīng)用和優(yōu)勢

三維掃描與3D打印在法醫(yī)頭骨重建中的突破性應(yīng)用

評論