代码实现3D Gaussian Splatting重建场景编辑(平移、旋转、障碍物遮挡去除)

3D Gaussian Splatting(3DGS)作为三维重建领域的新SOTA,23年8月发布之后就广受关注,今年的CVPR上与之相关的文章更是有数篇之多,由此可见该技术的火热程度。与NeRF相比,在作者看来3DGS的最大优势在于其显式表达,这意味着其重建的三维场景是有潜力进行编辑的。

效果展示

这篇文章主要记录了对于3DGS重建场景编辑的实现,包括对重建场景中的任意物体进行平移、旋转、遮挡去除等等,下面的视频和图片简单展示了实现的效果(数据集是自己录的):

遮挡去除:

平移:

要实现3DGS重建场景的编辑,主要分为以下几个步骤 :

步骤一:COLMAP初始化

初始化步骤比较简单,只需要用默认的COLMAP进行初始化就可以了,但是由于COLMAP是第三方库,有时候初始化效果并不理想,如果录制的视频质量较差的话,COLMAP最终会生成好几个不同的稀疏重建结果,具体可以查看生成的/sparse文件夹下的文件,如果有0、1、2这几个结果的话说明这一次的初始化失败了。同时还可以通过检查生成的/images文件来验证初始化是否成功,如果/images文件中的图片和/input文件夹中的图片数量不同,那么说明初始化也未能成功。如果初始化失败,那么最终的3DGS重建结果会比较糟糕。如果想要实现COLMAP的正常初始化,需要对conver.py进行一些修改,因为作者提供的convert.py全部使用COLMAP的基础配置,这对输入数据要求较高,对于一些场景可能会难以正确初始化。

(初始化结果,稀疏点云中能够清楚看到笔和书本,算比较好的初始化)

步骤二:3DGS初步重建 

这一步十分简单,就是使用基础的3DGS对模型进行初步的三维重建,重建之后能够在viewer中进行可视化,由于我们的目的是进行GS的编辑,因此我们需要关注我们准备进行编辑的GS的重建效果,在这里我们选择笔的GS作为我们的编辑对象,重建效果展示如下:

(红色框即为笔的GS表达,可以看到在场景中还是比较清晰的)

步骤三:3DGS标记 

这一步的目的是将所需要编辑的3DGS进行标记,从而让我们进行编辑的时候不会“误伤”到别的不需要进行编辑的高斯,由于我们的目的是编辑笔的3DGS表达,因此在这里我们对笔的高斯进行标记,由于可视化难度较高,因此我们简单的将被标记的笔的3DGS转换为黑色,来体现我们的3DGS标记步骤。

可以看到在3DGS中,只有被标记的笔变为了黑色,其他部分的GS依旧保留着原来的样子,可见这一步的标记十分成功,基本上没有“误伤”到除了笔之外的3DGS

步骤四:3DGS编辑

完成3DGS的标记之后,我们就可以大胆的对其进行编辑了,可以将笔当成三维空间的一个刚体,基本上三维空间中刚体能够实现的变换操作,都可以对笔进行实现,包括平移,旋转等等,一个很明显的编辑方式就是简单粗暴的将这一部分高斯直接移除,实现一个遮挡去除的效果,这样子在最后的场景中,就没有笔的遮挡了。

(对比可见,属于笔的高斯已经完全消失不见)

完成步骤四后,就能够实现开头视频中呈现的效果,完全去除笔在三维重建场景中的表达,平移和旋转相较于去除更加直观和简单,因此就不多进行展示了。值的注意的是,该编辑过程不会影响整体图像渲染质量。最初的图像渲染质量的PSNR能够达到36db,编辑之后的3DGS渲染出来的图片的PSNR任然是36db,因此可以放心编辑,不用担心影响整体图像渲染效果(得益于良好的3DGS标记)。

总结

本文简单介绍了编辑3DGS重建场景的方法,更为详细的pipeline如下图所示:

因为一些原因,详细的过程和代码就不在这里贴了,如果需要可以私信联系。 作为显示的三维重建方法,3DGS的编辑还是很有应用价值的,以前基于NeRF的方法是无法对重建场景进行任何编辑的,即便能够实现编辑,也是基于图像处理的方法,是对渲染而来的2D图像进行分割和重绘,并无法直接编辑三维场景。而本文中基于3DGS的场景编辑方法则是直接编辑三维场景,利用多视角信息互补的方式保证了编辑之后场景的可靠性(而不是像NeRF编辑方法中使用神经网络预测)。

公开数据集验证

由于作者自身设备配置受限(笔记本显卡顶不住),暂时无法在公开的大规模数据集上进行代码检验,等后续完成这项工作之后再补上这部分内容....

  • 18
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值