一個典型的3D相機通常有一個2D相機和一個光源組成,光源的種類由其設計原理決定。3D相機的獲取方式有很多種:單目立體視覺,雙目立體視覺,三角測量法,結構光,TOF等等。因此它可能是白光、激光、投影儀,振鏡等。
1. 雙目相機
雙目相機的原理:空間中某一點的雙目視差為該點在左右圖像中位置的差別。通過立體匹配獲得空間中的點在兩幅圖像中的對應點,進而得到空間點的視差。
1.1. 立體匹配算法
主動雙目成像方案可以基於低成本的硬件,獲得高分辨率、高精度的深度圖像,但是立體匹配算法(stereo matching)復雜,對計算資源消耗很大。
雙目立體視覺系統中,深度信息的獲得是分如下兩步進行的:
- 在雙目立體圖象間建立點點對應
- 根據對應點的視差計算出深度
雙目立體視覺模型中,雙攝像機彼此參數一致,光軸平行且垂直於基線,構成一共極性 (epipolar) 結構,這樣做是為了縮小對應的搜索空間,只有水平方向的視差,簡化了對應過程。
-
局部(Local)立體匹配
簡單的將相似度作為匹配的唯一准則,而為考慮相鄰像素視差的平滑問題。所以計算量小,運行速度快,但精度較低。
常用的相似度測量准則:
- 灰度差的絕對值和(Sum of Absolute Differences, SAD)
- 灰度差的平方和(Sum of Sequared Differences, SSD)
- 歸一化交叉相關(Normalized Cross Correlation, NCC)
-
全局(Global)立體匹配法
相比於局部立體匹配算法,全局立體匹配算法引入了相鄰像素視差之間的約束關系,保證了相鄰像素之間視差的變化較平緩。這就是“全局”的含義。
保證了像素視差與周圍像素的平滑變化,使得各個點視差不再孤立。但這也導致了視差無法獨立求解,需要進行全局假設和迭代。
-
半全局立體匹配法(Semi-Global Matching, SGM)
結合了上述兩種方式的優點。使用若干次以為平滑來代替全局平滑,而數據項的計算與全局匹配算法類似。
該算法的復雜度與局部匹配算法為同一量級,所以是目前商業軟件中使用最多的立體匹配算法。
匹配陷阱
-
光學失真和噪聲(亮度、色調、飽和度等失衡)
-
平滑表面的鏡面反射
高光處無細節,無特征點。
-
投影縮減(Foreshortening)
攝影測量學中的一個概念,指物體近大遠小。由於相對左右照相機距離的不同,看到的同一個物體在左右視圖中的投影尺寸也會不同,造成匹配障礙。
-
透視失真(Perspective distortions)
由於鏡頭畸變造成的被攝物體失真。譬如畫面中的鼻子被拉長。
-
低紋理(Low texture)
無細節。主動紋理光可以解決這一問題。
-
重復紋理(Repetitive/ambiguous patterns)
高度相似的特征點描述向量接近,行掃描時難以判斷哪一個是對應的特征點。
-
透明物體
-
重疊和非連續
紋理中斷,不利於行查找。
2. 結構光
結構光,英文叫做 Structured light,其原理是基本原理是,通過近紅外激光器,將具有一定結構特征的光線投射到被拍攝物體上,再由專門的紅外攝像頭進行采集。這種具備一定結構的光線,會因被攝物體的不同深度區域,而采集不同的圖像相位信息,然后通過運算單元將這種結構的變化換算成深度信息,以此來獲得三維結構。簡單來說就是,通過光學手段獲取被拍攝物體的三維結構,再將獲取到的信息進行更深入的應用。通常采用特定波長的不可見的紅外激光作為光源,它發射出來的光經過 一定的編碼投影在物體上,通過一定算法來計算返回的編碼圖案的畸變來得到物體的位置和深度信息。根據編碼圖案不同一般有:
- 條紋結構光,代表傳感器 enshape,
- 編碼結構光,代表傳感器 Mantis Vision, Realsense(F200),
- 散斑結構光,代表傳感器 apple(primesense), 奧比中光。
目前結構光技術有如下幾種變種:一種是單目IR+投影紅外點陣,另外一種是雙目IR+投影紅外點陣,這樣相當於結構光+雙目立體融合了,深度測量效果會比前者好一些,比如Intel RealSense R200采用的就是雙目IR+投影紅外點陣,不足之處就是體積較大。而單目IR+投影紅外點陣的方案雖然體積較小,但是效果會差一點。
2.1. 測量原理
激光的測量方法大致有三種,脈沖法(激光回波法),相位法,三角反射法。脈沖法測量距離的精度一般是在 +/-1
米左右。另外,此類測距儀的測量盲區一般是15米左右。三角法用來測量2000mm以下短程距離(行業稱之為位移)時,精度最高可達1um。相位式激光測距一般應用在精密測距中,精度一般為毫米級。激光回波分析法則用於遠距離測量。
激光位移傳感器能夠利用激光的高方向性、高單色性和高亮度等特點可實現無接觸遠距離測量。激光位移傳感器(磁致伸縮位移傳感器)就是利用激光的這些優點制成的新型測量儀表,它的出現,使位移測量的精度、可靠性得到極大的提高,也為非接觸位移測量提供了有效的測量方法。
按照測量原理,激光位移傳感器原理分為激光三角測量法和激光回波分析法,激光三角測量法一般適用於高精度、短距離的測量,而激光回波分析法則用於遠距離測量。
2.1.1. 激光三角測距法
脈沖法和相干光法對激光雷達的硬件要求高,但測量精度比激光三角法要高得多,故多用於軍事領域。而激光三角測距法因其成本低,精度滿足大部分商用及民用要求,故得到了廣泛關注。
激光三角測距法主要是通過一束激光以一定的入射角度照射被測目標,激光在目標表面發生反射和散射,在另一角度利用透鏡對反射激光匯聚成像,光斑成像在CCD(Charge-coupled Device,感光耦合組件)位置傳感器上。當被測物體沿激光方向發生移動時,位置傳感器上的光斑將產生移動,其位移大小對應被測物體的移動距離,因此可通過算法設計,由光斑位移距離計算出被測物體與基線的距離值。由於入射光和反射光構成一個三角形,對光斑位移的計算運用了幾何三角定理,故該測量法被稱為激光三角測距法。
“激光測距傳感器”作為市場新寵,其中最具代表的就是“激光位移傳感器”,采用的就是“激光三角法”的原理,最大的特點就是精度高、頻響快、量程適中。憑借其優異的性能,激光位移傳感器越來越廣泛地應用於工業現場的在線實時精密測量。
2.2. 結構光的標定與匹配
標定原理與方法
- 線性變換法
- 兩部標定法
- 張正友: 平面標定法
測量誤差的分析
- 鏡頭非線性畸變
- 相移誤差
- 非正弦波形誤差
匹配與編碼
-
直接編碼
連續采集一副編碼投影圖像 + 一副均勻光照圖像。
由於需要投影兩幅圖像,不適用於動態場景。
-
時間編碼
投影多幅不同編碼的圖像,形成圖案序列以獲得編碼值,從而得到3D信息。
除了使用二進制的0-1編碼之外,還可以使用更多顏色層級的編碼。假設使用了M種不同的灰度層級進行編碼,則拍攝n張影像可以得到包含
M^n
個條帶的影響。不適用於動態場景。
-
空間編碼
與時間編碼比,該方法分辨率和測量精度較低,可以用於動態場景。
-
德布魯因序列 (De Bruijn) 序列
-
二維空間編碼
-
3. TOF相機
原理:通過發射特定頻率的紅外信號,測量發射的紅外信號與反射的紅外信號的相位差,從而得到物體的深度值。
3.1. TOF測距原理
利用入射光信號與反射光信號的變化來進行距離的測量。ToF相比於普通相機的區別在於,其需要手機特定波長的光線,即只有相機LED主動發射的特定波長的光才能進入,其他波長的環境光不能進入。這要求在鏡頭上減傷一個帶通濾光片。
ToF像素芯片的制作工藝較為復雜,需要兩個以上的快門采集不同時間的反射光,然后利用多次的采樣結果計算出相位差以實現測距功能。復雜的工藝導致在相同成本的產品中,其深度圖分辨率比較低,目前最高分辨率只能達到VGA(640x480)。
ToF相機可以根據測距脈沖分成兩類:
-
P-ToF: 基於光學快門的脈沖調制方法進行測距
簡單,不需要計算振幅。但精度較低,未考慮環境光。
-
CW-ToF: 基於連續波調制測距
設計更復雜,測量精度較高,幀率相比P-ToF低,但目前也能達到60fps,能夠滿足常規需求。
- AMCW-ToF: 調幅連續波
- FMCW-ToF: 調頻連續波
- GI-ToF: 基於門信號