系列篇|三維重建之純格雷碼三維重建


作者:書涵

點擊上方“3D視覺工坊”,選擇“星標”

干貨第一時間送達

對於新手來說,使用格雷碼做單目結構光三維重建是一個入門級的訓練。但是在復現時往往會遇到一個問題,明明解碼都很不錯了,重建后的點雲精度卻很低,甚至重建出來的平面點雲出現斷層現象。這是由於格雷碼是一種離散型編碼,編碼精度是整數級的像素,這種編碼設計注定了它的精度不會太高。所以在實際應用中,格雷碼通常是配合着其他編碼方式一起使用:比如使用格雷碼來標示相移的周期數。

盡管如此,由於格雷碼本身的特性,穩定性高,抗反光效果比較好,在精度需求不是特別高的情況下,還是有適用場景的。尤其是景深范圍大的時候,相位很容易出現模糊,可是對於黑白條紋的格雷碼適應的景深就能夠大一些。本文就簡單介紹下如何使用純格雷碼進行三維重建,並得到一個精度尚可的點雲(至少不出現重建平面時明顯斷層/分層現象)。

從解決問題的本身出發,想要得到一個精度比較不錯的點雲,最直觀的思路是解碼時得到一個准確的亞像素級精度,比如像相移那樣,但是對於格雷碼而言,很難去給出一個很好的插值函數去獲得一個亞像素級的匹配,實際上,如果以圖片某一行為例,你得到的解碼結果可能是 16,16,17,17,18,18,18,NaN,NaN,21… 對於這樣排列的解碼結果,想要用一個函數去定義亞像素的插值函數是一件很困難的事情,筆者暫時沒有看到哪篇文章提供了好的思路。(如果有讀者知道,歡迎和筆者溝通)。

 

在無法獲得准確的亞像素級的解碼精度后,我們可以從三維重建方式本身去考慮,如上圖所示。圖中是一幅經典的雙目重建模型,在之前的系列篇中我們介紹了單目結構光重建可以使用雙目模型,只需要把投影儀看成一個逆相機就可以。圖中紅線即極線,也就是說,理論上相機成像點PL(圖中left camera) 對應的可能的投影儀(圖中Right Camra)中的位置是圖中紅線,如果知道對應的是圖中紅線哪一點,就可以解得准確的三維位置。

實際上,由於我們能夠解得的編碼只能是整數級的,導致我們的解碼結果會像如下圖所示的函數圖一樣,橙色的線是理論的極線,但是由於解碼的離散性,我們得到的解碼坐標是個整數級的數,如圖中的階躍函數,於是誤差就這么產生了。

我們解得的點,通常會對應極線的或上方一點或下方一點,導致該點與投影儀中心點連線與相機像點和相機中心點發出的射線在三維空間不相交。如果相交,交點就是物體的在空間中的實際三維位置。盡管由於解碼的離散性導致兩條直線不相交,但是兩條這空間直線間的距離不會很遠,所以可以用如下思路去估計實際的物體三維位置:

求這兩條空間直線中距離最近的兩個點,而這兩個點的中點就是我們估計的物體三維位置點。

這兩個點怎么求呢?

在數學上很簡單,我們高中都學過如何求三維空間中兩條直線的距離,那條和兩條直線都垂直且相交的線與兩條直線的交點就是我們要求得的兩條直線在空間中距離最近的兩個點了!

至此,我們就很好的估計了一個比直接用解碼結果按公式求得的更准確的三維重建點了,但是細心的朋友一定發現了,在一般形式的結構光三維重建中,我們僅僅需要用到列方向的條紋,(為什么僅需要一個列方向,可以看系列篇之三維重建原理),但是在上述求射線的過程中,我們需要知道像點對應的投影儀位置的行和列兩個信息,如果僅有一個列方向的值,列所在的直線和原點就構成一個面了!那像點和相機中心連線的射線一定會和這個面有交點,且這個交點即是我們用傳統的解法得到的解,這個解通常由於列值(格雷碼)解碼值精度不夠而不夠精確。

純格雷碼的三維重建並不算很常見,如果一定要用,不防試下上述方法,可以保證一定精度,當然還是沒有相移法來的准確。還有一個顯然的缺點就是投影的圖片較多,需要行列方向都投影格雷碼,投影圖片數量太多會損失時間的效率,但是作為一個新手入門demo,還是很不錯的選擇!

最后,也歡迎大家一起在「3D視覺從入門到精通」知識星球里多多交流,我們相互學習,一起進步~

推薦閱讀:

系列篇|結構光——格雷碼編解碼方法

系列篇|單目結構光三維成像系統的標定方法

系列篇|結構光三維重建基本原理

系列篇|結構光三維重建——相移法基本原理

系列篇|一文詳解相移步長的選擇問題

綜述|線結構光中心提取算法研究發展

直播回顧|結構光編碼與三維重建技術

關於結構光問題的總結

結構光三維重建原理

直播回顧|結構光3D相機光機核心技術及3D成像性能分析

本文僅做學術分享,如有侵權,請聯系刪文。

下載1

在「3D視覺工坊」公眾號后台回復:3D視覺,即可下載 3D視覺相關資料干貨,涉及相機標定、三維重建、立體視覺、SLAM、深度學習、點雲后處理、多視圖幾何等方向。

 

下載2

在「3D視覺工坊」公眾號后台回復:3D視覺github資源匯總,即可下載包括結構光、標定源碼、缺陷檢測源碼、深度估計與深度補全源碼、點雲處理相關源碼、立體匹配源碼、單目、雙目3D檢測、基於點雲的3D檢測、6D姿態估計匯總等。

 

下載3

在「3D視覺工坊」公眾號后台回復:相機標定,即可下載獨家相機標定學習課件與視頻網址;后台回復:立體匹配,即可下載獨家立體匹配學習課件與視頻網址。

 

重磅!3DCVer-學術論文寫作投稿 交流群已成立掃碼添加小助手微信,可申請加入3D視覺工坊-學術論文寫作與投稿 微信交流群,旨在交流頂會、頂刊、SCI、EI等寫作與投稿事宜。
同時也可申請加入我們的細分方向交流群,目前主要有3D視覺CV&深度學習SLAM三維重建點雲后處理自動駕駛、CV入門、三維測量、VR/AR、3D人臉識別、醫療影像、缺陷檢測、行人重識別、目標跟蹤、視覺產品落地、視覺競賽、車牌識別、硬件選型、學術交流、求職交流、ORB-SLAM系列源碼交流、深度估計等微信群。一定要備注:研究方向+學校/公司+昵稱,例如:”3D視覺 + 上海交大 + 靜靜“。請按照格式備注,可快速被通過且邀請進群。原創投稿也請聯系。▲長按加微信群或投稿▲長按關注公眾號

3D視覺從入門到精通知識星球:針對3D視覺領域的知識點匯總、入門進階學習路線、最新paper分享、疑問解答四個方面進行深耕,更有各類大廠的算法工程人員進行技術指導。與此同時,星球將聯合知名企業發布3D視覺相關算法開發崗位以及項目對接信息,打造成集技術與就業為一體的鐵桿粉絲聚集區,近2000星球成員為創造更好的AI世界共同進步,知識星球入口:

學習3D視覺核心技術,掃描查看介紹,3天內無條件退款 圈里有高質量教程資料、可答疑解惑、助你高效解決問題覺得有用,麻煩給個贊和在看~  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM