结构光三维重建-3D Scanning Software实现三维重建
目录
结构光三维重建-3D Scanning Software实现三维重建
(2)采集校准图片:Capture calibration images
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源码编译》:
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点云文件