一、序言
在介紹結構光編碼方案之前,先介紹一下目前常見的三維測量方法,從原理上來講分為以下幾類:
大家可以看到,結構光屬于主動式光學測量的一類,而常見的光學三維測量可以分為以下三類,右邊是它們各自的原理圖:
二、結構光分類
接下來進入主題,正式介紹結構光編碼方案。結構光三維重建按照所投影的圖案一般可以分為以下三類,點結構光、線結構光和面結構光,其中面結構光按照編碼原理又可以基于時域編碼的結構光和基于空域編碼的結構光。
1、點結構光
其光源一般是激光器,測量時將光束投射到被測物表面形成光點,相機拍攝被測物圖像,如下圖所示,之后通過空間三角關系獲得被測物光點照射位置的三維坐標。
優點:逐點掃描被測物表面,每個點都要采集一張圖片,可以獲取較高密度的點云,精度最高。
缺點:需要采集大量的圖片,導致效率低下。
2、線結構光
線結構光是對點結構光的擴充改進,它將掃描點變成掃描線,測量時激光器發出的光線以一條線的形式掃描被測物表面,之后還是用相機采集掃描的圖片,通過空間三角關系獲得被測物光點照射位置的三維坐標。
優點:對比點結構光方法,只需進行一維掃描就可獲得物體的深度,簡化了點結構光的復雜度。
缺點:效率較低。
3、面結構光
面結構光也叫編碼結構光,典型的硬件組成由投影儀—相機對表示,如下圖所示。投影儀將編碼圖案投射到被測物表面,然后由相機進行同步采集。其基本原理是投射的編碼圖案經過被測物表面調制,此時物體表面的高低信息便儲存在了調制后的編碼圖案中,然后用相機從一個或多個角度采集這些變形的圖案,找到相機和投影儀像素之間的對應點,利用三角法原理求出被測物表面的三維坐標。
按照不同的編碼方法,面結構光可以分為多類:
A、時域編碼
時域編碼是一種常用的編碼策略,該方法將一系列的簡單圖案按時間先后順序投影到被測物表面,一個給定像素的編碼就是該位置在時間上隨投影圖案的明暗變化。
優點:這種編碼方案在三維測量上有很高的測量精度,且易于在工程上實現。
缺點:速度較慢,無法對動態物體進行實時重建。
接下來介紹幾種常見的時域編碼:
① Binary Code (二進制編碼)
二進制編碼使用黑白條紋形成一系列投影圖案,這樣物體表面上的每個點都擁有一個獨特的二進制代碼。N個圖案可以編碼2?個條紋。
優點:精度比較高,對表面特征不太敏感,因為所有像素中只存在二進制值。
缺點:為了獲得高的空間分辨率,需要投影大量的序列圖案,而且場景中的所有對象都必須保持靜止,級數較高的二進制碼圖片條紋密集,解碼容易出錯。
② Gray Code (格雷碼)
格雷碼是二進制碼的一種改進,它的任意倆個相鄰代碼只有一位二進制數不同,最大數和最小數之間也僅有一位數不同即“首尾相連”,又稱“循環碼”。
優點:精度高,相鄰狀態變換是僅有一位發生改變,魯棒性好。
缺點:速度慢,無法達到實時
③ Phase Shift (相移碼)
投影多幅具有相位差的結構光圖像來獲得相位信息,常見的幾種算法有三步相移法、四步相移法和五步相移法。編碼圖案的強度按照正弦函數分布,沿平行于編碼軸的線的每個點都可以用唯一的相位值來表征。任何非平面3D形狀都會導致記錄的圖案相對于投影圖案發生變形,并記錄為相位偏差,此相位偏差可以提供被測物體的形狀信息。
優點:速度較快,三步相移法只需要投影三幅圖片即可,測量精度也較高。
缺點:投影的非線性問題、包裹相位展開問題、相位誤差補償問題。
④ Hybrid:Phase Shift + Gray Code (相移+格雷碼)
格雷碼和相移碼可以混合使用,利用各自的優點進行更好的編碼解碼方案。
優點:格雷碼在沒有任何模糊性的情況下確定相位的絕對范圍,而相移提供的亞像素分辨率超過了格雷碼提供的條紋數。
缺點:混合方法需要更多的投影,并且不適合動態對象的三維成像。
B、空域編碼
空域編碼和時域編碼最顯而易見的不同就是時域編碼需要投射多幅圖案而空域編碼只需投射一幅圖案。唯一的編碼圖案中每點的碼字從該點周圍點提供的信息(例如像素值、幾何形狀等)中得到。
優點:該編碼方法在測量過程中只投影和采集一幅圖像,計算量比時域編碼方法顯著降低,可用于實時的三維場景測量。
缺點:空域編碼分辨率不高,且在解碼階段會有空間臨近點的信息丟失,最終計算得到的的場景三維點與時域編碼相比精度較低。
接下來介紹幾種常見的空域編碼:
① One-shot method based on point-pattern
使用單個點或一組點來解決相機和投影儀之間的對應問題。有了足夠多的點,就可以魯棒地測量物體的三維形狀。
優點:簡單、高效、精度高、抗外界光干擾強。
缺點:重建分辨率低,具體應用通常需要特定的圖像處理方法。
② One-shot method based on line-pattern:
使用一組線條或條紋來解決相機和投影儀之間的對應問題,因為設計圖案中的所有線條都是平行的,深度是通過相機和投影儀之間的線對線三角測量計算的。
優點:簡單、高效、精度高、分辨率相對較高、抗外部光干擾能力強
缺點:特定的應用通常需要特定的圖像處理方法。
③ One-shot method based on crossed-line-pattern
使用一組交叉線或交叉條紋來解決相機和投影儀之間的對應問題。通常,交叉線圖案的水平線和垂直線采用不同的顏色,以便于識別線。設計圖案中相同顏色的所有線條都是平行的,深度是通過相機和投影儀之間的水平線到水平線三角測量和垂直線到垂直線三角測量計算的。
優點:簡單、高效、精度高、分辨率相對較高、抗外部光干擾能力強
缺點:特定的應用通常需要特定的圖像處理方法。
三、補充:
Light coding method
光編碼可以被認為是結構光的一種演變,它使用隨機散斑代替精心設計的結構光圖案,通過相機和散斑投影儀之間的三角測量來計算深度。下圖顯示了通過三角測量進行深度計算的原理,基線b 、到參考面Z0的距離、紅外攝像機的焦距f以及攝像機坐標觀察到的視差d均通過標定確定。然后,深度Z k 計算為:
激光束投射到擴散表面后,衍射斑隨機形成。這些衍射點是高度隨機的,并且隨著距離的變化而改變圖案。在三維空間中,不同位置的圖案總是不同的。產生的散斑圖案取決于激光的波長、激光束的大小以及擴散面與觀察面之間的距離。下圖顯示了Kinect v1和其它文獻中分別產生的兩種不同散斑圖案。由于散斑圖案的高度隨機性,其圖像處理精度遠低于處理精心設計的圖案,因為精確的數學模型可用于已知形狀的圖案。與其他結構光方法相比,光編碼方法的測量精度要低得多。與其他方法相比,它具有成本低、通用性好等優點。
-
二進制
+關注
關注
2文章
795瀏覽量
41653 -
編碼
+關注
關注
6文章
942瀏覽量
54831 -
結構光
+關注
關注
0文章
74瀏覽量
13237
原文標題:三維重建之結構光編碼方案研究
文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論