colmap大场景稀疏重建记录:部分照片畸变导致sfm生成的稀疏点云扭曲

一、问题

如题,要进行一个大场景的3DGS重建,数据集来自于某工地现场(大约3000张照片),数据集拍摄于同一个相机,按照国际惯例,3DGS需要输入一个稀疏点云,所以首先利用colmap进行稀疏重建。

进行特征提取,特征匹配(colmap官网建议1000-10000张图的特征匹配使用vocab tree),稀疏重建以后,发现场景中,楼宇出现弯曲,分裂现象,如下图:

4ac69d3ee51944908d8ab6b74fcbb968.jpg

f6c8619643b9452db6c99f53c024761c.jpg 问题出现以后,查看(在colmap gui界面双击)弯曲部分对应的照片,楼宇上下拍摄角度的照片并没有发现畸变(楼宇是直的,简单的用尺子或者其他工具对比一下,楼宇是否有弯曲)

d64eef4100654a4c82741e3db599e373.jpg

 从拍摄的照片来看,虽然是对着楼宇上下拍摄,但是无人机的镜头并没有调正,很多照片全是偏向于俯视,头大尾小,虽然这样不影响重建效果,但是处理这些必然是要花费更多时间,相比于端正拍摄的镜头来说。

39f02fb502f34225a53ce57aa3aee686.jpg

f8e6f6e25c3e422482fa94125a3a9148.jpg

 然而,在检查楼宇最上方的俯视视角照片时,发现了几处畸变,原来问题出现在这里!因为这些畸变的出现,colmap的计算产生了误差,导致原本方形的楼宇扭曲。后续删除了一些畸变很大的照片。

二、处理

实际上,对于照片中存在的畸变,colmap一般可以修正,猜想这个问题有可能因为特征提取时限定了所有路径下图片使用同一个相机模型。

因为数据集路径中,楼宇的上下与环绕视角,空中俯视视角,两种类型的照片存于不同文件夹,考虑将上下与环绕视角的数据单独分出来先进行重建,先得到正确的楼宇点云,然后在这个正确的结果之上,进行全局的稀疏重建。

具体先重建出上下环绕视角的点云,然后所有图片重新走一次sfm过程,特征提取的时候使用camera for subfolder(每一个文件夹使用一个相机模型,而不是所有文件夹使用同一个相机模型),然后特征匹配,这里可以使用前面重建上下环绕视角的时候得到的database.db文件,里面存储了之前的特征提取和匹配的数值,这样可以更快一点。下图是正确的楼宇环绕点云:

d184da99b5414fc4846f5ef6f5102075.png

在进行最后一步稀疏重建的时候,添加一个参数--input_path,这个指向已有的稀疏点云,也就是前面重建的上下环绕视角点云,这样,在这个正确点云的基础上,重建剩余全部视角,得到修正的全局稀疏点云。

626b1eace0134839831218c6a7dd15e9.png

 整体数据集稀疏重建成功,进入3DGS训练过程,注意大场景的训练显存占用较大,一些硬件,高斯基元相关的参数需要调整一下。

 

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值