使用全景相机进行高斯泼溅的构建方案

书接上回,前文尝试视频裁切帧的方式来进行3D高斯场景重建。

但视频切帧缺乏位置信息,运镜的速度、角度不均匀,会导致很多图片没法准确关联。

因此,想到另一种只需一次运镜就能完成场景重建的方案,那就是全景相机

Insta360 X系列的全景相机为例,它允许一前一后两台相机同时进行录制,通过视角合成,实现约等于360°的全景效果。

我手上正好有一台两年前购置的Insta360 X3,于是参考了Pixel Reconstruct的教程[1],尝试了一下通过全景相机来进行3D高斯场景重建。

前期拍摄

拍摄场景必须满足的一点是:拍摄过程中,没有行人经过。

因为后面要利用所有帧的图像来还原场景,如果一个角度有人,一个角度没人,可能就会造成画面不一致无法匹配,甚至场景的崩坏。

我选择了学校图书馆前一处行人较少的场景,等到行人走干净时,采用4K 30fps的规格进行录制。

拍摄方式是通过拍摄杆,将相机举到头顶,这样的好处是可以利用全景相机存在的视角差,让后面在裁剪画面时,可以不把自己的影响裁进去。

举着相机绕着这个场景走了两圈,一圈外圈,一圈内圈,耗时4分钟。

后期编辑

拍摄完成后,将视频导入insta360 studio里面进行编辑。

由于我拍摄的时间偏黄昏,画面亮度较低,因此我进行了简单的画面处理,主要调整三个值:

  • 调高亮度:让画面看起来更亮,提升观感
  • 调高曝光:在调高画面亮度的同时,减少画面中的噪点
  • 调高清晰度:提升锐度,让场景边缘更加锐利,方便后面特征点匹配

调整完之后,导出.mp4格式的视频,直接用普通播放器打开,看到的是这样的画面,一个画面中,记录了两颗摄像头拍摄的信息。

视频切帧

下一步,就是将视频切成图像,采用ffmpeg进行处理,命令如下:

复制代码
ffmpeg -i path/to/360_video.mp4 -vf fps=2 -qscale:v 1 (output_folder)/ image_%04d.jpg

其中,fps=2表示每2帧切一帧,如果步频较慢,可以间隔更多帧进行切帧。

切完帧后,共得到479张图片。

全景图片裁切

下一步,需要将这些全景图像裁切成正方形的图像块。

具体用到的是 meshroom[2],它仅支持windows和linux两个系统,需要下载2021.1这个版本。

因为后面的版本,命令有很大变化,只有该版本能使用下面的命令。

下面进入bin路径,用以下命令进行图像裁切:

复制代码
aliceVision_utils_split360Images.exe -i (input 360 image folder) -o (output 2D image folder) --equirectangularNbSplits 8 --equirectangularSplitResolution 1200

裁切完之后,得到了3k多张1200x1200分辨率的图像块。

进行高斯重建

有了图像块之后,高斯重建就相对简单了。

下面采用colmap-gradio来计算colmap(花费了两个半小时),再用brush训练了三万步。

这两个工具前文已详细介绍过,这里不做赘述。

下图是重建完的效果:

编辑后预览

下面再使用SuperSplat对结果进行编辑,导入图像,会有很多冗余的散点。

编辑后,得到需要保留的区域。

下面基于GaussianSplats3D进行了模型可视化。

模型粗看还可以,但拉近细看还是有些"毛糙"的。

总结

本文打通了从全景相机到构建3DGS的流程路径,不过仍有两点可以优化:

  • 选择在白天光线充足的时候进行拍摄,同时场景中避免水面/玻璃等反射物体干扰,理论效果会更好;
  • 在计算colmap时,可以采用RealityScan的方案,理论效果会比当前计算的效果更好。

后面抽时间再尝试一下新方案。

参考

1\] https://www.youtube.com/watch?v=LQNBTvgljAw \[2\] https://github.com/alicevision/meshroom/releases

相关推荐
合方圆~小文18 小时前
AI摄像头精准识别技术依赖于深度算法
数据结构·数据库·数码相机·模块测试
youngong3 天前
强迫症之用相机快门数批量重命名文件
数码相机·文件管理
weixin_466485116 天前
halcon标定助手的使用
数码相机
诸葛务农8 天前
ToF(飞行时间)相机在人形机器人非接触式传感领域内的应用
数码相机·机器人
塞北山巅8 天前
相机自动曝光(AE)核心算法——从参数调节到亮度标定
数码相机·算法
美摄科技9 天前
相机sdk是什么意思?
数码相机
phyit9 天前
全景相机领域,影石何以杀出重围?
数码相机
鄃鳕9 天前
装饰器【Python】
开发语言·python·数码相机
聪明不喝牛奶9 天前
【已解决】海康威视相机如何升级固件
数码相机