结构光三维重建-3D Scanning Software实现三维重建

Posted pan_jinquan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了结构光三维重建-3D Scanning Software实现三维重建相关的知识,希望对你有一定的参考价值。

结构光三维重建-3D Scanning Software实现三维重建

目录

结构光三维重建-3D Scanning Software三维重建

1. 说明

2.Requirements

(1)下载相关文件

(2)3D Scanning Software源码编译

3. Data capture

 (1)运行程序:scan3d-capture

(2)采集校准图片:Capture calibration images

(3) 进行校准:Calibration

4. 扫描模型:Model Scanning 

5.可视化3D点云


1. 说明

布朗大学开源了一套投影仪摄像机标定系统(Projector-Camera Calibration/3D Scanning Software) ,该软件可以使用数据投影仪和摄像机来扫描3D物体,增加了投影和灰度代码模式的捕获,以及点云重建功能。

官网地址: Projector-Camera Calibration / 3D Scanning Software


2.Requirements

官网搭建了一个简易的结构光系统:一个Optoma PK301微型投影仪+QuickCam Pro 9000一个网络摄像头,该软件中的拍摄模块应该与大多数USB网络摄像头工作,但如果您的摄像头不支持,可以使用外部工具捕获图像,然后也可以从文件夹中读取。

官网提供了Window和Apple OSX编译好的标定软件,很不幸的是,版本比较老旧,仅支持Windows 7 x64,Opencv也是比较老旧的OpenCV 2.4.11,没有提供Linux版本的,如你想在Ubuntu成功运行还是要采坑的。

(1)下载相关文件

把下面的内容都下载下来,并解压,后面需要用到

(2)3D Scanning Software源码编译

在Ubuntu18.04源码编译,请移步鄙人的另一篇博客《结构光相机标定-3D Scanning Software源码编译》:

https://panjinquan.blog.csdn.net/article/details/121093639https://panjinquan.blog.csdn.net/article/details/121093639


3. Data capture

 (1)运行程序:scan3d-capture

完成3D Scanning Software源码编译后,在 bin目录下,可以找到一个可执行文件:scan3d-capture

 运行他即可:

./scan3d-capture

(2)采集校准图片:Capture calibration images

选择【File】-->【Change dir】--> 选择目录为cartman-calib-images/cartman,这时,就可以把官方配套的,用于相机标定的样例图片导入进来了

 如果需要重标定自己的结构光系统,那你可以通过【Capture...】采集图片

目前,我还没成功搭建自己的结构光系统,安装官网的“Data capture”说明,需要确保数据投影仪和摄像机都已连接,然后点击主窗口中的“Capture…”按钮,打开数据采集对话框,再使用顶部的组合框选择所需的摄像机和投影仪屏幕,直到实时视图显示。

采集相机标定图片(Capture calibration images)时,需要在目标位置放置一个棋盘图案(也就是标定板),需要采集42张图像序列

(3) 进行校准:Calibration

接下来是提取棋盘格,进行解码:【Extract Corners】-->【Decode】或者直接【Calibrate】,进行投影仪和相机标定

标定成功后,窗口将会输出投影仪和相机重新投影误差误差:reprojection error: 0.226835,一般情况下,reprojection error在0.1~0.5像素误差。如果显示结果较大的误差,请重新考虑调整系统参数,重新标定图片。


4. 扫描模型:Model Scanning 

相机标定完成后,可以移除原来的标定板,并替换为其他物体,比如官网样例的小红人卡车司机【cartman】物体;然后,在不改变投影仪和摄像机的物理设置或软件配置的条件下,再次打开捕获对话框并捕获目标模型的一组图像,并保存下来。

然后,返回主窗口,在左侧图像集列表中点击已采集的图像集,高亮显示该图像集,并按右侧的“Reconstruct”按钮。模型的点云将被创建并保存到一个PLY文件中。

官网,已经配套小红人卡车司机【cartman】物体的样例图,选择【File】-->【Change dir】--> 选择目录为cartman-model-images/cartman,这时,就可以把样例图片导入进来了

 然后重建“Reconstruct”按钮,生成的点云将被创建并保存到一个PLY文件中 :2013-May-14_20.45.10.168.ply


5.可视化3D点云

Reconstruct后,将会生成一个*.ply格式的3D点云文件 (2013-May-14_20.45.10.168.ply),如果你想可视化其效果,可使用MeshLab工具

MeshLab软件下载:https://www.meshlab.net/#download , 下载:Linux.AppImage即可

 下载后运行

chmod +x MeshLab2021.10-linux.AppImage
./MeshLab2021.10-linux.AppImage

接下来,只需要将*.ply格式的3D点云文件 (2013-May-14_20.45.10.168.ply)拖拽到MeshLab窗口即可显示3D点云效果,或者【File】-->【Import Mesh】-->选择*.ply格式的3D点云文件 

以上是关于结构光三维重建-3D Scanning Software实现三维重建的主要内容,如果未能解决你的问题,请参考以下文章

结构光三维重建Projector-Camera Calibration投影仪相机标定

结构光三维重建Projector-Camera Calibration投影仪相机标定

光平面标定法

结构光的概念及其实现三维成像的主要原理

3D结构光

3D重建算法原理