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