前文 介紹了雙目立體視覺的基本原理。具體到三維掃瞄應用中,有多種結構光重建的方案。條紋法是其中應用比較廣泛的一類方法,尤其在追求高精度的工業應用中比較常見。條紋法,顧名思義,通過投射一組時序變化的條紋圖案,來輔助完成立體匹配和視差計算、或者深度的直接計算。根據不同的條紋圖案,衍生出了一系列方法,如格雷碼等二值編碼方案、正弦條紋的相移法、格雷碼+相移法、彩色條紋法等等。本文主要介紹相位法的原理。
相位法又叫相位測量輪廓術(phase measurement profilometry,pmp),這聽起來有點神秘的名字,來自雷射干涉計量領域,在19世紀80年代被引入三維測量領域。pmp方法通過採用正弦光柵投影和相移技術,利用多幅具有一定相位差的條紋圖來計算相位,再對應計算出物體的高度。
將下圖左邊的條紋圖投射到物體上,我們會發現原本豎直的條紋圖案發生了扭曲,我們稱之為條紋圖被物體高度調製,扭曲的條紋形狀就蘊藏了物體的高度資訊。
接下來,我們看如何從正弦條紋的相位差裡推算物體的高度資訊。請看下圖,整個系統包含投射系統,相機及參考平面。相機中心距離投影系統中距離為
假設投射系統投射的光束與參考平面交於
其中 是正弦條紋的週期,
是 之間的相位差。
特別注意: 上面公式推導中使用了乙個等式替換:
這個等式成立是有條件的,注意
與 是不同的。所以要求此處的相位差必須是經過相位展開後,非週期性的。這就牽扯出相位法中非常重要的
上述方法只需要使用乙個相機加乙個投影系統,通常稱之為單目相位法。前文介紹的雙目視覺原理,也可以和相位法緊密結合,只需要將雙目匹配的描述子換成展開後的相位值即可。
求解相位的過程叫解相。當將正弦條紋影象投射到三維漫反射表面時,從相機中觀測到的像可表示為:
其中,
是物體表面各向異性的反射率,
是背景強度,
表示光柵條紋的對比度,
是相位值。這幾個量都是未知量,從一幅影象中求解
是困難且不準確的。人們通常採用相移法來確定準確的相位。所謂相移是將正弦條紋移動乙個週期的
,相應的相位被移動了
,由此可產生新的亮度分布函式
上式有3個未知量,所以至少需要3張相移影象才能求解出
標準的n步相移法是應用最廣泛的相移演算法。我們以標準的四步相移為例,相位移動的增量為
, ,則相應的四幀條紋圖為:
連列 四個方程,可以計算出相位函式:
對於更普遍的n步相移法,可通過如下方法計算相位值:
參考相位
也是通過上述方法求解,之後可得相位差:
注意,由於上述相位值計算過程中使用了反正切函式,因而得到的相位值落在
,這樣的相位值叫包裹相位值,也叫截斷相位值,或叫相位主值。
相位展開也叫解包裹(我覺得叫拆快遞也是可以的:),目的是為了重建連續的相位分布。相位展開一般有空域展開與時域展開。
觀察上述相位圖,是不是看起來和空域展開圖很相似?這兩者的展開方法一樣,唯一的區別是沿著空域橫軸還是沿著時間軸展開。接下來介紹兩類相位展開的方法。
向物體投射一組gray編碼影象和相移影象,通過對編碼影象進行解碼得到相移影象的級數,下圖中是6幅gray編碼圖序列,影象中任意點的gray編碼值根據所在每幅影象中落於黑白區域而選定,諸如 011001。gray編碼相比其他二值編碼的優勢在於:影象上任意一點,最多隻會存在乙個碼處於01邊界,這使得解碼出錯的概率大大減少。
在相位計算過程中,首先計算每個空間點的相位主值
和對應的gray編碼值
,得到的絕對相位值為:
在具體應用中採用幾位gray編碼,幾步相移需要根據實際情況選擇。假設場景在條紋方向的畫素寬度是
個畫素,若要求在整個解包場景中對包裹進行無歧義展開,需要滿足下式,其中
表示需要投影的gray碼光柵數,
表示包裹相位的週期。
gray編碼法演算法簡單,但是解碼過程依賴影象二值化的準確程度,因此對被測物體表面顏色比較敏感,顏色較豐富或顏色較暗都會影響二值化的準確性,需要在物體表面噴白色粉末;另外投射的gray編碼圖僅可用於相位展開,對提高相位計算精度並沒有幫助。另外當投射場景較大時,需要增加gray編碼的位數,相應的增加投影的影象資料,採集時間也會增加。
投射不同頻率的條紋圖到物體表面,分別求解相位主值,然後利用多頻率的相位主值之間的數學關係在整個測量場景中展開,得到絕對相位。以三頻為例,解得到的包裹相位為
,且週期為
,記 為
的最小公倍數,則求解的絕對相位值為:
看下圖可知,當場景超過
,則包裹相位會出現迴圈,絕對相位的求解就會出現歧義。
上式計算絕對相位值的函式
有很多,最常用的是查表法和外差法(留到下文介紹)。多頻相移相比gray編碼法能支援大場景掃瞄(不用增加條紋幅數),對物體表面顏色不敏感,有更高的解相精度。
利用多頻相移解包時,假設
個頻率條紋所得的包裹相位週期為
,則全場景無歧**包需要滿足:
其中 表示個各週期的最小公倍數。
(未完待續,查表法和外差法的細節留到下文展開介紹,以免文章太長,看起來累。)
opencv三維重建 三維重建 SLAM相關
wayne cvpr2020 oral 立體視覺cost volume構建新方法,效能soa,視訊記憶體和執行時間大幅降低 雙目立體視差圖進行三維點雲重建 opencv3.4.1 pcl1.8 用vs opencv3.1從雙目立體視差圖中重建三維點雲 使用opencv以及pcl將2d影象轉換為3d點...
三維重建方法
三維重建技術就是要在計算機中真實地重建出該物體表面的三維虛擬模型,構建乙個物體完整的三維模型,大致可以分為三步 1.利用攝像機等影象採集裝置對物體的點雲資料從各個角度釆集,單個攝像機只能對物體的乙個角度進行拍攝,要獲得物體表面完整資訊,需要從多個角度對物體拍攝 2.將第一步獲得的各視角點雲資料變換到...
基於slam的三維重建 SLAM 三維重建相關資源
有人問不知道去 找slam 三維重建相關資源,1 跟蹤slam前沿動態 更新的很頻繁 track advancement of slam 2 很全視覺slam資料大全,包括 the list of vision based slam visual odometry open source proje...