series:
Nerf-W学习记录(一)——环境配置_nerf环境配置-优快云博客
Nerf-W学习记录(二)——个人LLFF数据集制作-优快云博客
参考教程:
1.视频:
【手把手NeRF代码讲解——数据处理】 https://www.bilibili.com/video/BV1gG411k7KS/?share_source=copy_web&vd_source=9e04d4c780ef7da9423668eecb89e382
2.代码:
https://github.com/superrice2020/ZoomLab_NeRF?tab=MIT-1-ov-file
一、步骤
1.数据集采集
设备:iPhone13Pro
视频格式:.mov
提取images脚本:
#!/bin/bash
# 指定输入的.mov文件路径
input_mov="/home/lib/lib/IMG_0354.MOV"
# 指定输出图片的文件夹路径
output_folder="/home/lib/lib/test/images"
# 创建输出文件夹(如果不存在)
mkdir -p "$output_folder"
num_frames=200
# 获取视频的总帧数
total_frames=$(ffmpeg -i "$input_mov" -map 0:v:0 -c copy -f null - 2>&1 | grep "frame=" | awk '{print $2}')
# 计算提取间隔
interval=$((total_frames / num_frames))
# 使用ffmpeg提取指定数量的帧
ffmpeg -i "$input_mov" -vf "select='not(mod(n\,$interval))',scale=trunc(iw/2)*2:trunc(ih/2)*2" -vsync vfr -qscale:v 2 "$output_folder/%04d.jpg"
# ffmpeg -i "$input_mov" -vf "select='not(mod(n\,10))',scale=trunc(iw/2)*2:trunc(ih/2)*2" -vsync vfr -qscale:v 2 output_folder/%04d.jpg
输出数据:213张jpg
对于手动采集图片可以运行重命名脚本:
#!/bin/bash
# 指定文件夹路径
folder_path="/home/lib/lib/test/images"
# 初始化计数器
counter=1
# 遍历文件夹中的所有图片文件
for file in "$folder_path"/*.jpg; do
# 格式化计数器为四位数
new_name=$(printf "%04d.jpg" "$counter")
# 重命名文件
mv "$file" "$folder_path/$new_name"
# 增加计数器
((counter++))
# 如果计数器达到108,停止重命名
if [ $counter -gt 108 ]; then
break
fi
done
运行脚本:
step1.赋权
chmod +x xxx.sh
step2.运行
./xxx.sh
2.colmap稀疏点云
step1.运行colmap
colmap gui
*建立一个空database.db文件为database,选中images文件夹为输入图像路径
step2.特征点提取 camera model选simple_pinhole
step3.特征匹配
step4.稀疏建模
step5.导出模型
*导出路径:sparse/0/
3.LLFF数据集制作
step1.修改文件夹路径,运行pose_utils.py
step2.删除对应图片文件(可以多删)
step3.删除sparse和database.db文件,重新进行上述步骤生成poses_bounds.npy文件,完成LLFF数据集制作
二、过程建议
*苯人试了视频转和图片格式转,感觉还是图片数据集比较丝滑*