几乎可以下结论:3D Gaussian Splatting(3DGS)技术的出现,宣告了NeRF时代的结束。犹如transformer当年对CNN的打击。
一个集高渲染质量、分钟级重建速度、实时渲染速度为一身的三维重建算法3DGS,毫无疑问开创了一个新的时代。本文不对3DGS的原理做太深入的解读,只做实验。

1. 准备自己的数据
我们规定一个路径(你自己任意命名),为方便为这里命名为folder_A,在folder_A下,你放入文件夹images,如下:

├── images
│   ├── 00001.png
│   ├── 00002.png
│   ├── 00003.png
│   ├── 00004.png
│   ├── ...
│   ├── 00057.png
│   ├── 00058.png
│   └── 00059.png

一个图像文件夹,每个视角各一张图片,命名方式如上。

2. 用COLMAP跑出稀疏点云,这一步为了给3DGS做初始化
打开我们的数据路径folder_A:

cd /path/to/folder_A
colmap automatic_reconstructor \
    --workspace_path . \
    --image_path ./images \
	--sparse 1 \
	--dense 0 \
	--camera_model SIMPLE_PINHOLE

这一步的关键在于,--camera_model一定要选用【SIMPLE_PINHOLE】,因为colmap会默认选用【SIMPLE_RADIAL】,而这个是3DGS不支持的模式。然后,记得加上【–dense 0】,因为COLMAP会自动开启dense点云重建,但3DGS只需要sparse即可,为了节约时间可以把dense关掉。

安装COLMAP可以参考《官方文档》,链接可戳。

3. 用3DGS跑数据:

git clone https://github.com/graphdeco-inria/gaussian-splatting --recursive
# after install requirements
# ...
# ...

cd gaussian-splatting
 python train.py -s /path/to/folder_A --model_path /path/to/folder_B/

folder_A是数据路径,folder_B是结果路径。大家可自命名。

本文由本人亲自整理,实验获得成功。如有疑问,请留言交流~