因为一直在做三维相关的事情,但是从RGBD序列进行场景重建一直是我的一大心头事,Python实现虽然可能速度比不上C++,但是方便啊。找了很多都好像是C++的东西,终于在这两天找到了Python进行场景重建的代码。
他就是Open3D提供的场景重建代码案例
我已经试过了可以在其他的场景上进行重建,而且需要配置的内容很少,同时操作也非常简洁。
代码请下载GitHub里面release出来的,这里使用的是0.10.0的release的source code(zip)版本。
https://github.com/intel-isl/Open3D
我们需要的代码在Open3D\examples\python\ReconstructionSystem里
先安装好python3环境,然后
pip install open3d==0.10.0
要进行场景重建我们要准备好数据,就是RGB-D数据,通常是连续的视屏帧,数量当然是越多越好。这里使用了open3d使用的一个数据,链接为:https://drive.google.com/open?id=11U8jEDYKvB5lXsK3L1rQcGTjp0YmRrzT
如果是自己的数据,同样把RGB数据放在image文件夹中,把Depth数据放在depth文件夹中,然后把它们放到同一个文件夹下最好起个自己数据集的名字,后移动到ReconstructionSystem文件夹的dataset里。
接下来在config文件夹下找到tutorial.json文件,修改里面的database数据为dataset/(你的数据名称,与上面创建的文件夹对应),并把它复制到dataset文件夹下后改名为config.json。
接下来就可以进行重建了,重建主要分为四个步骤,--make --register --refine --integrate
所以接下来分别执行下面的命令就可以了。
1、#python run_system.py dataset\config.json --make
2、#python run_system.py dataset\config.json --register
3、#python run_system.py dataset\config.json --refine
4、#python run_system.py dataset\config.json --integrate
第一部分时间会长一些,全部完成后会在你的数据集的文件夹里面出现一个sence文件夹,里面的.ply文件就是重建好的模型。
下面是用meshlab打开的建模结果截图: