日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

将TUM数据集制作成BundleFusion数据集

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将TUM数据集制作成BundleFusion数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在上一篇文章中,我寫到了如何將TUM數據生成BundleFusion所需要的數據集,生成的數據集如下圖中所示.并且是將每一組數據的groundtruth.txt中的位姿數據寫如到這里的pose文件中,作為每一幀圖像的先驗位姿.

今天我便將生成的數據集轉換為了.sens格式,然后運行bundlefusion算法,第一次嘗試很失敗,1400張圖像,最后只重建出了花瓶的一半,還有幾片葉子,我不知道哪里出了問題,首先是檢查一下數據格式是不是正確,圖像的名稱,?還有每一組數據集最后的info.txt文件的內容,檢查并沒有發現明顯的錯誤.然后我又調解了兩個配置文件中的一些參數,但是并不知道有可能是什么原因.最后我把目光停留在數據集的info.txt文件上,之前使用kinect相機,經過手動標定相機可以標定得到depthShift這個數據,但是現在我并不知道,也不知道TUM數據集的這個數值,然后我在代碼中搜索這個m_depthShift的用途,代碼是如下

for (unsigned int i = 0; i < getDepthWidth()*getDepthHeight(); i++) {const auto* d = getDepthFloat();std::cout << "d[" << i << "]: " << d[i] << std::endl;depth[i] = (unsigned short)ml::math::round((m_recordedData->m_depthShift * d[i]));}

讀取深度圖的深度數據,然后乘上?m_depthShift,我大致猜出來,他的作用了,

在最初的info.txt文件中我將m_depthShift設置為1000, ?但是重建不成功,我突然想到,我要查看一下,深度圖像的數值,于是我用imageJ來查看一下深度圖.

這是BundleFusion使用的SUN3D數據集中的一組數據的一對彩色圖和深度圖,當我把鼠標點在最左側的垃圾桶的上邊緣時,imgJ顯示1328,而根據彩色圖,目測也是1米多的樣子,所以也驗證了,該組數據集中的info.txt中的m_depthShift=1000.

?

?而對于TUM數據集,當我將鼠標放在圖片最前端的花盆上時,根據彩色圖,目測只有30cm的距離,但是imageJ上顯示的是2930,所以我感覺應該將info.txt中的m_depthShift設置為1000.

我將m_depthShift設置為10000后,重新生成?.sens數據集,這次就可以重建成功了.重建效果如下.

?

總結

以上是生活随笔為你收集整理的将TUM数据集制作成BundleFusion数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。