3D結(jié)構(gòu)光相機的技術(shù)原理可分為時間碼和空間碼。上次我們討論了時間碼,今天我們要學(xué)習(xí)空間碼。
(3D視覺)
空間編碼
為了滿足動態(tài)場景的要求,可以使用空間編碼結(jié)構(gòu)光,也就是上面提到的隨機結(jié)構(gòu)光,即不需要編碼信息就可以投射出隨機紋理。本文討論的空間編碼結(jié)構(gòu)光是指投射到測量空間的數(shù)學(xué)編碼,在一定范圍內(nèi)不具有可重復(fù)性。因此,可以通過鄰域獲得該點的編碼值。這里重建的精度是包含整個空間編碼的像素數(shù)量(窗口大小)。當(dāng)然可以。
德布魯因序列
德布魯因序列(維基百科)B(k,)是k的符號(比如二進(jìn)制,k=2是有長度的循環(huán)碼,是編碼值的長度。
例如,在最簡單的情況下,使用k=2中的二進(jìn)制符號(0,1),使用編碼值n=2的長度,我們可以得到循環(huán)序列[0,0,1,1]。這時我們可以得到四種不同的代碼:[0,0],[0,1],[1],[1]。
因此,您可以根據(jù)Debruin序列對結(jié)構(gòu)光進(jìn)行編碼。在結(jié)構(gòu)光圖像中,上述四個像素的編碼為[0,0,1,1],假設(shè)結(jié)構(gòu)光斑或光束的寬度為一個像素,大小為2,通過滑動窗口可以得到每個像素的編碼值。如果使用極線校正雙目圖像,只需搜索該線。現(xiàn)在不需要重復(fù)編碼,只需要在軸上編碼即可。此時,結(jié)構(gòu)光是一條直線。
當(dāng)然,為了提高編碼效率,也可以采用投影法對數(shù)值進(jìn)行編碼,如灰度圖像和彩色圖像,而不是0-1編碼。例如,對于RGB圖像,如果使用二進(jìn)制代碼(即一種顏色和兩種狀態(tài)),則使用顏色組合(0,0,0)。有七種顏色。因此,k=7和k =3可以獲得長度為343的帶序列。這種順序的唯一限制是相鄰的尺寸條不能是相同的顏色。否則解碼算法容易出錯。下圖顯示了五種顏色(k=5,=3)。僅顯示使用的結(jié)構(gòu)光序列。
二維空間碼
因為Deburin序列是一維碼,可以擴展到二維空間,所以對于x * y大小的二維空間,只有w*大小的子窗口中包含的碼值才能出現(xiàn)在這個二維碼序列中,比如上面的4*6 M數(shù)組序列,每個2*2窗口中包含一個唯一的碼值。2D碼也可以使用RGB信息,并且一些偽隨機2D碼可以通過相關(guān)算法產(chǎn)生。如下圖所示,左邊顯示一個大小為6*6的2D矩陣,每個窗口的大小為3*3。
通過以上對空間編碼的討論,我們也可以看出空間編碼結(jié)構(gòu)光的一些優(yōu)缺點。
優(yōu)勢:
不需要更多的照片,只需要一對圖像就可以進(jìn)行三維重建q .滿足動態(tài)環(huán)境下實時處理的要求。
缺點:
易受噪聲干擾:由于反射、光照等原因,部分成像區(qū)域的編碼信息可能會丟失。
對空間阻隔敏感;
光學(xué)精度低于定時編碼結(jié)構(gòu)的光學(xué)精度。