結構光三維測量(數位光柵投影)

2020-09-28 20:00:03

結構光三維測量系統

目前對於三維視覺來說,有很多種技術,例如雙目/多目視覺法、TOF法、散斑法、結構光等等,不同的方法有著各自不同的應用場景和範圍。對於工業的產品測量、識別,檢測來說,結構光方法是目前比較主流的方法。結構光方法擁有高精度、高密集點雲、高速的優點,適用於三維重建、缺陷檢測、智慧抓取、臉部辨識、視覺導航等一系列工作。

結構光主要分為點、線、面三類測量結構,本部落格主要從面結構光(數位光柵投影測量)闡述其測量原理和重建效果,面結構光主要投影光柵影象到測量物體表面,然後光柵經過物體面型調變之後被相機採集,通過一系列解相位,然後經過系統標定好的引數,將相位轉換為三維點雲。

單目測量系統

單目測量系統,就是一個相機+一個投影儀的測量結構,該方法需要對投影儀進行標定,首先對光柵進行投影,然後求解相位資訊,再把相位轉換到三維點雲。對於求解相位資訊有很多種成熟的方法:例如(1)格雷碼方法(2)多頻外差方法(3)倍頻法(4)phase-coding法等等。將相位轉化為三維點雲也有很多經典的方法,例如(1)相位差法(2)東南大學達飛鵬老師的8引數方法(3)反向相機方法。後兩種方法最為靈活,應用相對也更為廣泛,下面會具體進行描述。下圖改自南理工左老師的論文圖。
測量示意圖

雙目測量系統

雙目測量系統,就是雙目相機+一個投影儀的測量系統,該方法主要利用相位資訊進行雙目匹配,然後實現三維重建。該方法的好處就是對投影儀無需進行標定,且現有雙目測量有很多優秀的庫函數可以呼叫,例如Opencv中包含很多標定、匹配、畸變校正、立體校正的程式碼。

單目系統測量範例

下面結合具體的測量範例進行詳細介紹,包含光柵生成,相位解包,和三維點雲轉換。

光柵生成

本次我們採用四步相移+格雷碼的方法進行物體測量,四步相移為了求解包裹相位,但是包裹相位是一個一對多的對映函數,因此需要利用格雷碼將包裹相位展開,求取一個一對一對映函數的絕對相位。四步相移的光柵的形式如下:
I 1 ( x , y ) I_1(x,y) I1(x,y) = a ( x , y ) a(x,y) a(x,y) + b ( x , y ) b(x,y) b(x,y)cos[ ϕ ( x , y ) \phi(x,y) ϕ(x,y)]
I 2 ( x , y ) I_2(x,y) I2(x,y) = a ( x , y ) a(x,y) a(x,y) + b ( x , y ) b(x,y) b(x,y)cos[ ϕ ( x , y ) \phi(x,y) ϕ(x,y)- π / 2 \pi/2 π/2]
I 3 ( x , y ) I_3(x,y) I3(x,y) = a ( x , y ) a(x,y) a(x,y) + b ( x , y ) b(x,y) b(x,y)cos[ ϕ ( x , y \phi(x,y ϕ(x,y)- π \pi π]
I 4 ( x , y ) I_4(x,y) I4(x,y) = a ( x , y ) a(x,y) a(x,y) + b ( x , y ) b(x,y) b(x,y)cos[ ϕ ( x , y ) \phi(x,y) ϕ(x,y)-3 π / 2 \pi/2 π/2]
利用四步相位我們可以求解包裹相位,
ϕ ( x , y ) \phi(x,y) ϕ(x,y) = atan2[ I 1 ( x , y ) I_1(x,y) I1(x,y)- I 3 ( x , y ) I_3(x,y) I3(x,y), I 2 ( x , y ) I_2(x,y) I2(x,y)- I 4 ( x , y ) I_4(x,y) I4(x,y)]
其中atan2[]是一個四象限反正切函數,於是我們就得到了包裹相位,其具體形式如下圖所示,
在這裡插入圖片描述
可以看出x與y是一個一對多的函數,我們需要進行展開,此時我們需要一個條紋階次 k ( x , y ) k(x,y) k(x,y),然後通過下面的公式,完成相位展開
Φ ( x , y ) \Phi(x,y) Φ(x,y) = ϕ ( x , y ) \phi(x,y) ϕ(x,y) + 2 π × k ( x , y ) \pi\times k(x,y) π×k(x,y)
其展開的過程如下圖所示,格雷碼的作用就是為了求解這個條紋階次 k ( x , y ) k(x,y) k(x,y)
在這裡插入圖片描述
格雷碼是由0或1的碼字構成的,因此每張格雷碼可以區分出兩個週期的階次 k ( x , y ) k(x,y) k(x,y),因此為了獲取求解更多的階次資訊,更多的格雷碼就需要,格雷碼的數量n與階次的關係為 2 n 2^n 2n。例如如下圖的方式是三張格雷碼光柵,第一個階次的格雷碼字為000,第二個為100,以此類推各個週期的格雷碼都不相同,因此可以確定出8個階次,結合包裹相位於是這樣我們就可以得到絕對相位資訊。
在這裡插入圖片描述

三維點雲重建

本部落格採用反向相機法將相位資訊轉化為三維點雲,首先對圓形標定板進行了重建,其效果如下圖所示,
在這裡插入圖片描述
利用50w解析度相機對瓶蓋進行三維重建,其紋理資訊清晰可見
在這裡插入圖片描述
然後採用500w高解析度相機對雕像進行三維重建,
在這裡插入圖片描述
如需瞭解更多,交流合作可以聯絡QQ:1091454117。