3D Gaussian 用户数据训练和结果查看

采集方式

用于训练的图片集采集有两种方式, 一种是使用相机从不同角度拍照, 另一种是拍视频后逐帧提取. 两种方式各有利弊, 拍照分辨率更高, 方便控制光圈,快门和白平衡, 但是拍照时较难控制好角度可能会造成部分交叠区域过小, 视频比较容易实现连续的画面移动, 保证交叠区域, 但是大多数手机没法手动控制视频录制过程的光圈和白平衡, 并且视频的分辨率大多数是通过插值填充的, 拍摄1080p视频时, 实际有效像素并没有1080p.

我自己的使用经验是, 用视频方式提取的帧训练结果更稳定.

图片数量

另外一方面是图片集的数量, 为了保证帧之间特征点的交叠, 一般按角度每3度一帧比较合适, 也就是从水平视角恢复一个3D对象至少需要约120张图.

图片分辨率

图片分辨率跟你的显卡显存有关. 16G的显存训练 1920x1080分辨率大概率是不够的, 在 train.py 那一步会报torch.OutOfMemoryError: CUDA out of memory.错误. 如果出现这种错误, 就把分辨率适当降一点. 实际测试训练1366x768的分辨率只需要8GB的显存, 如果用1024x576分辨率训练速度较快且细节保留还不错.

从视频提取帧序列

方式一: 使用 python 代码

from pathlib import Path
import cv2
work_path = '/home/milton/temp/input'
target_height = 720
imgpath = Path(work_path)
imgpath.mkdir(exist_ok = True)
cap = cv2.VideoCapture('/home/milton/temp/557 Marksbury Road Pickering Open House Video Tour.mp4')
frame_no = 0
while cap.isOpened():
ret, frame = cap.read()
if ret:
# 视频是 60fps, 每秒取3帧, 因此每20帧取一帧
if frame_no % 20 == 0:
original_height, original_width = frame.shape[:2]
scaling_factor = target_height / original_height
target_width = int(original_width * scaling_f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

meslog

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值