3D结构光(链接地址提供源码和文献)
最近在研究利用結構光進行三維重建,在一個網站上看到了開源的3D結構光代碼,特分享地址:http://www.3dunderworld.org/
該網站鏈接服務可提供源碼下載和相關的文獻。所提供的源碼有更新升級,最新的源碼支持GPU處理,可作為二次開發進行研究學習。
------------------------------
另外再提供一個在MATLAB平臺下利用gray code進行三維重建的開源代碼地址:http://mesh.brown.edu/byo3d/source.html
該網站可提供源碼(包括C++代碼)下載、素材下載等。不過年代有點久遠,采用的是傳統的格雷碼編解碼的方式,可作為入門級源碼進行學習。
------------------------------
附加相關學者的論文檢索地址:
1.Song Zhang https://dblp.uni-trier.de/pers/hd/z/Zhang_0002:Song
2.Zhongwei Li https://dblp.uni-trier.de/pers/hd/l/Li:Zhongwei
3.
------------------------------
結構光項目前期總結:
根據現有的論文和GitHub上的代碼,復現論文中的結構光掃描結果,從前期看論文,到了解算法原理,到硬件選型,到后面的硬件搭建,以及最后的實際實驗復現,前后花了兩個多月的時間!一開始,自認為有代碼和論文,復現一下論文的結果應該問題不大,但是在做的過程中出現了很多問題,問題主要表現在以下幾個方面:
1.對佳能相機SDK不熟悉,前面沒有能找到合適的控制相機圖像采集和存儲的代碼,花了幾天在SDK搜索和測試方面,后面又因相機的PC短儲存,回調函數出現存儲移位的現象,又花了不少時間!反正在佳能相機SDK上折騰的時間非常多!說明了,在對新的事物深入了解方面,處理方式有問題!沒有仔細研讀SDK說明書,對相關的函數回調,數據異步處理不了解!以后在工作中,要踏實認真,不能眼高手低!
2.投影儀的設置有問題,導致投影出來的光柵出現比例問題!同時問題也反映在圖片顯示時,使用的顯示函數的參數設置有誤!直接導致顯示出現問題!
3.對數碼相機的使用不熟悉,沒有設置合適的光圈大小和感光度,導致在捕獲圖像時,圖片明顯發白,原本規則均勻的光柵出現了明顯的變形!最開始出現這個問題時,一直沒有找到根本原因,最后是不斷嘗試,才發現問題出現在相機參數設置上!從這里面也學到了處理問題時,需要控制變量!首先排除不是投影儀投影的問題,然后將問題定格在圖像的獲取方面,進行對相機進行調試!
4.原以為解決了上述問題后,就沒有問題了,可是又出現了新的問題(以前沒有),標定的結果有問題,采用k1 k2 p1 p2 k3的畸變形式,有時標定出的k3值很大(明顯不對,數碼相機鏡頭的畸變量很小!),最后查看文檔才恍然大悟!針對普通鏡頭徑向畸變很小的情況,應該只考慮k1 k2,否則數據在迭代優化時,k3的非線性值會異常!盡量標定后的重投影誤差很小!雖然整體的參數搭配符合所處理的數據樣本(標定的角點數據),但是并不符合該鏡頭本身的參數搭配!當然,如果所處理的數據樣本能夠覆蓋相機的整個視場,那么也有標定后的參數有改善(猜想的。。。),為了避免問題的出現,針對不同的鏡頭需要事先明確采用的畸變模型,若事先不知道,可能需要做實驗探究適合該鏡頭的畸變模型(魚眼鏡頭有專門的標定函數,特定的畸變系數)。
解決了諸如上述的問題后,采用格雷碼的結構光掃描才得到了一個比較好的效果,掃描平面后,點云密度均勻,每個位置都覆蓋點數據,偏差分析后,發現平均偏差在零點幾個毫米,大幅面對角偏差也就一兩個毫米,基本復現了論文的效果!
通過前期的工作,學到了:
1.當遇到問題時,要冷靜分析,一定要深入問題本身,不能只解決表面問題,否則后面還會出現問題!
2.一個小算法的實現,需要經過大量的算法驗證!感覺會出現問題的地方,一定要留心!做好規避處理!
3.一個實際的項目不單單是算法問題,其中還包括硬件、結構等方面的問題,所以需要具備健全的處理問題的能力!
4.在人手不足時,少一些抱怨,多學點東西,對自身處理問題能力的提升大有裨益!
5.工作經驗的積累是在一次次失敗挫折中歷練出來的!平淡無波瀾的工作,對自身能力的提升很小!
總結
以上是生活随笔為你收集整理的3D结构光(链接地址提供源码和文献)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java设计模式 23种设计模式和思想
- 下一篇: 抖音高贵气质的签名_抖音运营一些注意的事