系统环境
ubuntu20 ,cuda11.8,anaconda配置好了3D高斯的环境。
具体参考3D高斯环境配置:https://blog.csdn.net/Son_of_the_Bronx/article/details/138527329?spm=1001.2014.3001.5501
colmap安装:https://blog.csdn.net/Son_of_the_Bronx/article/details/138543508?spm=1001.2014.3001.5501
录制视频
用手机录制即可,直接录制视频
从视频中截取照片
这里我是参考的一片博客:3D Gaussian Splatting Linux端部署指南(含Linux可视化)
在这篇博客的最后,提供了一个train_video.py的代码,具体可以去那篇博客参考他的代码。具体的操作应该就是通过ffmpeg来截取视频生成一张一张的图片,然后放到colmap中进行稀疏重建,然后再把点云和相机位姿图片放到3D高斯中训练,最终得到训练结果。
我这里记录的是在跑这个train_video.py代码期间遇到的报错。
python脚本报错
报的这个错误,应该就是脚本在运行这句命令的时候报错:
bash
command = f'ffmpeg -i {video_path} -qscale:v 1 -qmin 1 -vf fps={fps} {images_path}/%05d.jpg'
subprocess.run(command, shell=True)
我没有像这篇博客3D Gaussian Splatting Linux端部署指南(含Linux可视化)在一开始的时候就把conda和apt-get的ffmpeg卸载,可能是这个原因导致的错误吧。
当我在终端打出:
bash
ffmpeg -h
出现的也是这个问题:
因为我是在conda环境下用的ffmpeg命令,而这个conda环境下的ffmpeg命令有问题,找不到这个openh264的库文件。(PS:不在conda环境下,ffmpeg命令是有效的,说明现在conda的bin目录优先级是比系统的bin目录优先级高)
解决方案
那么conda环境下的ffmpeg命令有问题就去解决他。
网上搜索的方法首先是更新ffmpeg
bash
conda update ffmpeg
但是在更新完后对我来说还是报这个错误,所以我想的是openh264有问题,所以运行下面指令,去更新openh264
bash
conda update openh264
然后也能够在 gaussian_splatting这个anaconda环境中的lib
找到对应的库文件
所以后续就没有报错,用的是自己录的小视频进行3D高斯训练。
训练结果
一个一分钟的视频,3090训练了16分钟
整体质量还是比较粗糙,相机比较差,而且拍摄的角度应该也是有讲究的,后面再好好准备自己录的数据集。