IceSandwich

BundleFusion跑自己的数据集

离线跑

字数统计: 411阅读时长: 1 min
2020/05/04 Share

准备

  • 编译好的BundleFusion一只
  • 自己的数据集一捆

如果你按照这个教程[1]进行编译BundleFusion,注意几个方面:

  1. 先把Microsoft Visual C++ 2010的东西卸载掉再装DirectX SDK June 2010
  2. 一定要用VS2013,我开始用VS2017不兼容旧版本VS的工程因此打不开工程文件,系统是可以装多个VS的。
  3. CUDA可以用高版本,我用的是CUDA 10.2,改工程文件的时候改为相应版本的props和targets文件。我的引用路径是"$(VCTargetsPath)\…\BuildCustomizations\CUDA 10.2.targets"

如果你使用freiburg1_desk数据集[2],注意里面的彩图和深度图是不按时间顺序对齐的,需要去下载associate.py脚本对齐,由于python2已经退出舞台里,在python3运行该脚本需要将里面第86-87行的代码改成如图的第88-89行代码。

然后输入命令:

1
python associate.py rgb.txt depth.txt | awk '{print $2,$4}' > associate.txt

写如下脚本,整理这些彩图和深度图。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/usr/bin/python

import os, shutil
dstDir = "sens"
zidx = 6

af = open("associate.txt", "r")
al = af.readlines()
af.close()

os.mkdir(dstDir)
for i in range(len(al)):
mp = al[i].split()
frame_name = str(i).zfill(zidx)
rgb_dest = os.path.join(dstDir, "frame-{}.color.png".format(frame_name))
dep_dest = os.path.join(dstDir, "frame-{}.depth.png".format(frame_name))
shutil.copyfile(mp[0], rgb_dest)
shutil.copyfile(mp[1], dep_dest)
with open(os.path.join(dstDir, "frame-{}.pose.txt".format(frame_name)), "w") as f:
f.write("1 0 0 0\n0 1 0 0\n0 0 1 0\n0 0 0 1")
print("Copy frame {}".format(frame_name))
print("Finish")

其实上面的还没有跑成功

待完善。。。最近没搞bundlefusion了。

参考


  1. https://blog.csdn.net/zhaitianyong/article/details/104718151/

  2. https://vision.in.tum.de/data/datasets/rgbd-dataset/download

CATALOG
  1. 1. 准备
  2. 2. 其实上面的还没有跑成功
  3. 3. 参考