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