数据集采集相关指南

数据集采集

以下是数据集采集的相关教程

利用SfM和MVS算法进行稠密点云生成

使用软件:

  1. ffmpeg(可选): 可以利用ffmpeg将视频转换为图片(注意视频拍摄方式: 需要绕物体转一圈);

  2. ColMap: 一个GUI程序, 用来运行sfm和mvs算法;

  3. meshlab: 用来查看生成的点云, 并调整坐标系.

使用教程:

(1): 拍摄照片

主要有两种方式:

  1. 绕物体旋转并拍摄照片, 最好确保要有所有的角度.(30张照片左右, 比较费事)

  2. 或者: 拍摄一个视频, 然后利用ffmpeg软件将视频分解为照片(注意视频分辨率)

    ffmpeg -i inputfile.avi -r 1 image-%3d.jpeg

(2): 利用Colmap制作dense点云:

参考视频: 【三维重建】利用开源软件colmap实现基于图像的三维重

就按照这个视频做就可以, 一直做到dense点云那一步, 后面的mesh可以根据需要搞

(3): 利用meshlab调整坐标系

0. 实例实物图

1. 上一步得到的dense点云如下所示(meshlab):

目前相当杂乱, 可以先不管缩放. 先调整坐标系;

2. 删除环境点云:

点击改按钮, 可以看到点云的包络体, 这里包络体非常大, 需要删除一些环境的点云:

meshlab操作:
鼠标左边(一直按住): 旋转
ctrl + 鼠标左键: 拖动
Atl + 鼠标左键: 缩放
Shift + 鼠标左键:
鼠标滚轮:

旋转物体到如下状态:

点击选择按钮:

框选物体 并 反转(选择除了框选物体之外的所有点):

Filters --> selection --> Invert Selection

直接apply, 然后关闭该框 删除选中的所有点:

3. 设置坐标轴

Render ---> show Axis

将坐标轴设置为包络体的中心:
Filters --> Normals, Curvatures and Orientation --> Transform: Translate, Center, set Origin

选择Center on Scene BBox, 然后确定

点击view --> Reset Trackball

4. 旋转坐标系

坐标系: 注意y轴和z轴
红色轴x: 向右
绿色轴y: 向上
蓝色轴z: 向内

接下来, 切换至俯视图(好判断) Windows --> View from --> Top

Filters ---> Normals...--> Transform那几项:

先设置旋转: 一定要点开preview

这里可以多摸索摸索: 以这个为例,

接下来, 切换到左视图或者前视图都看看

5. 平移坐标系

最后变换到以下结果

6. 处理缩放

已知盒子是 30 * 25 * 20的, 所以这里可以直接量:

所以缩放10倍:

7. 检查并保存:

需要先按下T

这样差不多就是对的

然后File --> Export Mesh As

保存即可