|
本文作者:颯白 一 單目結(jié)構(gòu)光編碼目的類似于雙目,如果把投影儀看成一個(gè)逆相機(jī),直到空間中的一點(diǎn)成像平面的位置,就可以知道空間中一點(diǎn)的坐標(biāo)。 編碼的目的:知道打在物體物體表面的光是從投影儀的那個(gè)像素發(fā)出來的,就知道在投影儀的虛擬成像位置。 二 格雷碼的編碼與解碼2.1 格雷碼vs二進(jìn)制碼格雷碼是一種二進(jìn)制碼,最大的特點(diǎn)是相鄰格雷碼編碼只有一位不同。 所以格雷碼解碼更穩(wěn)定,相對(duì)不容易出錯(cuò)。 體現(xiàn)在
對(duì)于格雷碼來說,明暗交接處變換更少,如圖所示二進(jìn)制下部有7次變換,而格雷碼只有4次。黑白交接的影響主要是在解碼上,解碼很重要的環(huán)節(jié)就是二值化,一般情況下全黑和全亮是不容易出錯(cuò)的,因?yàn)樵趯?shí)際應(yīng)用中投影交界處是漸變的,閾值很難確定(還有物體邊緣的影響)。
在相機(jī)對(duì)焦外,可能投影會(huì)糊掉,所以條紋越寬越不容易糊掉。 2.2 編解格雷碼如果單純的編制一張圖片的話很簡單,如上一節(jié)圖所示,最低一行(最后一位)變化為0110周期,第二行為0011100周期,第三行為0000111111110000周期(2的指數(shù)級(jí)增長)。 二進(jìn)制碼->格雷碼1.對(duì)n位二進(jìn)制的碼字,從右到左,以0到 n-1編號(hào) 2.如果二進(jìn)制碼字的第i位和i+1位相同,則對(duì)應(yīng)的格雷碼的第i位為0,否則為1 格雷碼->二進(jìn)制碼從左邊第二位起,將每位與左邊一位解碼后的值異或,作為該位解碼后的值(最左邊一位依然不變)。依次異或,直到最低位。依次異或轉(zhuǎn)換后的值就是格雷碼轉(zhuǎn)換 后的二進(jìn)制值。 以十進(jìn)制數(shù)6為例,格雷碼->二進(jìn)制碼 第一位不變: 1 第二位(0)與第一位解碼后的值(1)異或:1 第三位(1)與第二位解碼后的值(1)異或:0 三 圖片二值化方法前提條件:每個(gè)在投影儀照射范圍的點(diǎn)都至少需要經(jīng)歷一次明暗變換,即總要能找到一張圖該位置為 0,另一張圖該位置是1 實(shí)現(xiàn)方法:方法一: 增加兩張圖, 一張全黑圖,一張全亮圖 方法二: 去除全0和全1的編碼 ,讓每個(gè)編碼至少含有一個(gè)0和一個(gè)1(不建議,可能會(huì)破壞格雷碼穩(wěn)定性) 二值化方法:對(duì)于每個(gè)像素,計(jì)算其在整個(gè)時(shí)間序列(一組)下的最大值和最小值,然后對(duì)當(dāng)前圖片像素二值化就 是計(jì)算出一個(gè)如上式所示的閾值,閾值大于0.5的時(shí)候則為1,小于0.5則為0。 四 其他離散型編碼在某些場景下,由于物體材質(zhì)的原因,格雷碼效果不好;物體受到全局光照影響特別大; Global illumination 全局光照:1 inter-reflection 內(nèi)反射 -- long range effect2 diffusion 漫反射 – long range effect3 sub-surface scatter 下表面散射 – short range effect全局光照對(duì)解碼影響:解碼錯(cuò)誤 解決思路:不同的全局光,對(duì)不同頻率的編碼光影響不同。 1 高頻光適合 (long range effect): 內(nèi)反射, 漫反射 有可能第一行右邊亮的地方點(diǎn)亮左邊暗的地方,所以需要更密集的投射如下: 2 低頻光適合 (short range effect): 下表面反射(影響臨近的點(diǎn)) 低頻光因?yàn)橛绊懪R近,所以最好是越低頻越好,如下: 其實(shí)相對(duì)來說格雷碼最穩(wěn)定,而上面這種方法會(huì)生成過多的圖片,會(huì)對(duì)點(diǎn)云幀率有所影響。 ![]() 參考論文: Structured Light 3D Scanning in the Presence of Global Illumination 五 總結(jié)格雷碼編解碼流程: ![]() 特殊應(yīng)用場景: ![]() 本文作者:颯白 |
|
|