Nerf 训练自有数据

1. 拍摄序列图像,放置在文件夹,如duck/images

Nerf 训练自有数据_第1张图片

2. 使用colmap使用COLMAP获取相机位姿

(1)参考官方文档安装colmap;
(2)使用win 可执行程序
Nerf 训练自有数据_第2张图片
(3)点击【File】选择【new project】
点击【New】在duck目录,创建databas
点击【Select】,目录设置为duck/images
点击【Save】
Nerf 训练自有数据_第3张图片
(4) 点击【Processing】 选择【Feature extraction】
设置相机模型为SIMPLE_PINHOLE,点击【Extraction】;

Nerf 训练自有数据_第4张图片
(5) 点击【Processing】 选择【Feature matching】
点击【Run】;
Nerf 训练自有数据_第5张图片
(6)点击【Reconstruction】 选择【Start reconstruction】进行重建;
Nerf 训练自有数据_第6张图片
(6)
点击【File】选择【Export model】,导出模型,请在工作目录下新建/sparse/0/文件夹,模型保存在该目录下
Nerf 训练自有数据_第7张图片

3. 格式转换为llff

使用LLFF脚本对位姿数据进行格式转化;
LLFF格式数据可以将对应图片参数、相机位姿和相机参数简洁有效地存储在一个npy文件中,以方便python读取,且NeRF模型源码拥有直接对LLFF格式数据集进行训练的配置和模块,便于研究者使用。

git clone https://github.com/Fyusion/LLFF.git
conda create -n llff python=3.8
conda activate llff
pip install numpy imageio scikit-image -i  https://pypi.mirrors.ustc.edu.cn/simple

转换命令:

python imgs2poses.py /mnt/d/project/test_code/nerf/NeRF_Data/duck/

打印信息:

Don't need to run COLMAP
Post-colmap
Cameras 5
Images # 14
Points (5259, 3) Visibility (5259, 14)
Depth stats 5.581121967700646 196.77453829936374 15.227148415751047
Done with imgs2poses

转换完成:
Nerf 训练自有数据_第8张图片

4. Nerf 训练配置

  1. 将整个工作目录的文件夹(即duck文件夹)上传至nerf代码的/nerf-pytorch/data/nerf_llff_data/目录下;
  2. 创建nerf-pytorch/configs/duck.txt
expname = duck_test
basedir = ./logs
datadir = ./data/nerf_llff_data/duck
dataset_type = llff

factor = 8
llffhold = 8

N_rand = 1024
N_samples = 64
N_importance = 64

use_viewdirs = True
raw_noise_std = 1e0
  1. 训练
python run_nerf.py --config configs/duck.txt

训练结果保存在nerf-pytorch/logs/duck_test
Nerf 训练自有数据_第9张图片

你可能感兴趣的:(三维数据处理,python,开发语言)