如何从2D图像生成3D模型(点云)(基于深度相机的传统算法)

前言

普通相机环绕带有BCH码标识的目标物体拍摄大量图片也是可以构建3D模型的
本文探讨基于深度相机拍摄的图片

准备工作

1.深度相机,并标定其内参和畸变
2.BCH码图片(我的博客里面有图片可以下载)
3.你的目标物体(注意不要带有反光的金属、或者透明的部分,因为会导致在深度图不准确)
备注:还要记得查看一下深度相机的工作距离,了解一下它的性能,一般深度相机都是以相机本身为原点建立世界坐标系的,且离z轴越近精度越高,有些深度相机的RGB图和深度图不是完全对应的,要经过畸变矫正一下

采集图像

1.将目标物体放置于BCH码上,不同角度拍摄图片,保存好深度图和RGB图(或者灰度图也可以)
注意:深度相机最好放在支架上,抖动会造成精度不准,且在拍摄过程中不要移动BCH码和物体的位置
如下图所示:
如何从2D图像生成3D模型(点云)(基于深度相机的传统算法)

算法流程

1.将两张拍摄的RGB图进行特征点,将匹配的2D点对应的深度图点云进行匹配,根据内参求取外参,将一幅图的点云转换到另一幅图的点云中,然后进行点云的拼接,把所有其他图的点云都映射到第一幅图的相机坐标系下,进行点云的拼接;
备注:因为深度相机也是具有误差的,如果有些面无法重合的,可以用CloudCompare软件打开,选择edit->register->Align,选择确定的对应点(比如BCH码上的点进行匹配),这就可以进行的新的配准.

最终的效果图

如何从2D图像生成3D模型(点云)(基于深度相机的传统算法)