本文的目的就是對結構光技術做一個比較全面的簡介。總體而言,所說的結構光主要可以分為兩類
線掃描結構光;
面陣結構光。
一般說結構光的時候都指代第二類,這里也主要關注面陣結構光。
01
線掃描結構光
線掃描結構光較之面陣結構光較為簡單,精度也比較高,在工業中廣泛用于物體體積測量、三維成像等領域。 1.1 數學基礎 先來看一個簡單的二維下的情況:
通過上圖可以看到線掃描結構光裝置的一個基本結構。主動光源L緩慢掃過待測物體,在此過程中,相機記錄對應的掃描過程,最后,依據相機和光源在該過程中的相對位姿和相機內參等參數,就可以重建出待測物體的三維結構。 由上圖可知:
1.2 應用
如上圖,相機與投影器等相對位姿都經過了精確的校正,并且選取了測量臺上的一角作為原點建立物方坐標系。 因此,激光投影器所投射的線激光在物方坐標系中可以通過一個平面方程來描述:
02
面陣結構光
面陣結構光大致可以分為兩類:隨機結構光和編碼結構光。隨機結構光較為簡單,也更加常用。 通過投影器向被測空間中投射亮度不均和隨機分布的點狀結構光,通過雙目相機成像,所得的雙目影像經過極線校正后再進行雙目稠密匹配,即可重建出對應的深度圖。 如下圖為某種面陣的紅外結構光。
隨機結構光這里就不再說了,因為和普通雙目算法是很相似的。一些額外的考慮就是是否給相機加裝濾光片、光斑的密度要到什么程度等硬件和光學的問題了。 這里主要討論編碼結構光。編碼結構光可以分為兩類:
時序編碼;
空間編碼。
2.1 時序編碼
如上圖,時序編碼結構光即為在一定時間范圍內,通過投影器向被測空間投射一系列明暗不同的結構光,每次投影都通過相機進行成像。 假設共有n張影像,并設被陰影覆蓋的部分編碼值為1,未被覆蓋的部分編碼值為0。此時,每個像素都對應唯一一個長度為n的二進制編碼,雙目影像搜索匹配像素的問題就變成了查找具有相同編碼值的像素。 如果雙目圖像已經進行了極線校正,那么所投影的結構光只需要在x方向上不具有重復性即可。
如上圖中,紅框內的像素的編碼為0110,轉化為十進制則為5。此時,只需要在右圖相同行上檢索編碼值為5的像素即可。 上圖編碼方式稱為二進制碼(binary code),每段區域不斷的進行二分下去直至投影的編碼寬度等于相機的像素寬度即可。對于寬度為1024的圖像,最少需要10張影像來進行編碼。
Binary Code 的一種改進為Gray Code. Gray Code比Binary Code具有更好的魯棒性,它使得相鄰兩個像素相差1bit。Gray Code的詳細介紹和其與Binary Code之間的轉換可以參考wikipedia。
注意觀察即可看到gray code和binary code在前幾行像素上的不同 轉換算法:
由以上的介紹也可以得出時序編碼結構光的優缺點: 優點:
高精度;
缺點:
只適用于靜態場景;
需要拍攝大量影像。
2.2 空間編碼 為滿足動態場景的需要,可以采用空間編碼結構光。前面談到了隨機結構光,就是不帶編碼信息,投影隨機紋理,而這里討論的空間編碼結構光特指向被測空間中投影經過數學編碼的、一定范圍內的光斑不具備重復性的結構光。 由此,某個點的編碼值可以通過其臨域獲得。其中,包含一個完整的空間編碼的像素數量(窗口大小)就決定了重建的精度。 2.2.1 德布魯因序列 (De Bruijn) 序列
2.2.2 二維空間編碼 德布魯因序列是一種一維編碼,可以將之擴展到二維空間中,使得對于一個x * y大小的二維空間,其中一個w * h大小的子窗口所包含的編碼值在這整個二維編碼序列中只出現一次。 ? 如上面中的4 * 6的M-arrays序列中,每個2 * 2大小的窗口所包含的編碼值都是唯一的。 ? 同樣也可以利用RGB信息來進行二維編碼,有相關算法來產生一些偽隨機二維編碼。如在下圖中,左邊展示了一個6 * 6大小的二維矩陣,子窗口的大小為3 * 3。 ? 算法首先在左上角的3 * 3子窗口中隨機填入各種顏色;然后一個3 * 1大小的滑動窗口移動到右端第一個空白處,并隨機填入3中顏色;在填入生成的隨機顏色前,算法會先驗證子窗口的編碼的唯一性能不能得到保證,若不能,則會重新生成3中隨機顏色; ? 如此循環,只是在豎直方向上滑動窗口的大小變為1 * 3,直至將整個6 * 6矩陣填滿。右圖則是該算法產生的某種偽隨機二維編碼的示例。 ?
通過以上對空間編碼的討論,也可以看出空間編碼結構光的一些優缺點: 優點:
無需多張照片,只需要一對影像即可進行三維重建。可以滿足實時處理,用在動態環境中。
缺點
易受噪聲干擾:由于反光、照明等原因可能導致成像時部分區域等編碼信息缺失;
對于空間中的遮擋比較敏感;
相較于時序編碼結構光精度較低。
以上是對各種常用的結構光技術的一些介紹。其實,三維重建中最常用的還是隨機面陣結構光。通過向空間中投影這樣的隨機結構光,再結合雙目稠密重建,可以獲得比單純使用RGB影像進行三維重建更加可靠和精確的結果。 最后,向對結構光和三維重建感興趣的同學推薦一個項目:build your own 3D scanner。 和名字一樣,網站上提供了自己使用觸手可及和低成本的設備來DIY一個3D掃描儀所需的一切,包括教程、ppt、代碼、數據和其他人的作品展示,感興趣的同學歡迎動手嘗試。
審核編輯 :李倩
-
三維成像
+關注
關注
0文章
35瀏覽量
11128 -
結構光
+關注
關注
0文章
74瀏覽量
13271
原文標題:結構光技術詳解
文章出處:【微信號:機器視覺沙龍,微信公眾號:機器視覺沙龍】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論