【Nerf数据集】制作自己的nerf数据集
制作自己的nerf数据集
文章目录
基于COLMAP制作自己的Nerf数据集(LLFF格式)
一、下载colmap
下载并安装colmap软件:https://github.com/colmap/colmap/releases
此处下载了COLMAP-3.8-windows-cuda.zip,解压后:
双击打开COLMAP.bat:
二、图像
首先用手机拍摄一段视频,运行下列代码,抽帧
import os
import cv2
def extract_images(video_path, output_folder):
# 获取视频文件名
video_name = os.path.splitext(os.path.basename(video_path))[0]
# 新建文件夹
output_path = os.path.join(output_folder, video_name)
if not os.path.exists(output_path):
os.makedirs(output_path)
# 打开视频
cap = cv2.VideoCapture(video_path)
# 设置帧间隔
frame_interval = int(2)
# 逐帧提取并保存满足间隔要求的帧
count = 0
while cap.isOpened():
ret, frame = cap.read()
if ret:
print(frame_interval)
if count % frame_interval == 0:
image_name = os.path.join(output_path, f"{video_name}_{count//frame_interval}.jpg")
cv2.imwrite(image_name, frame)
count += 1
else:
break
cap.release()
if __name__ == '__main__':
video_path = 'test.mp4' # 视频文件路径
output_folder = 'test_frame' # 输出文件夹路径
extract_images(video_path, output_folder)
运行代码之后会生成图像,需将文件名修改为imags:
三、位姿计算
1.打开COLMAP.bat文件,点击File -> New project 以新建一个项目,会弹出以下界面
2.点击New,选择存放图片的images文件夹的路径,手动输入文件名为:database.db,然后点击保存
3.点击Select,选择images文件夹,保存
4.点击Save
1.特征提取与匹配
点击Processing -> Feature extraction 进行图片特征提取
1.Camera model选择:SIMPLE_PINHOLE,其他配置不用改
2.点击Extract,开始提取图片特征
在特征提取完毕后,关闭该窗口
2.图片特征匹配
点击Processing -> Feature matching 进行特征匹配
此处不用修改配置,点击Run进行特征匹配
在匹配结束后,关闭该窗口
3.稀疏重建
点击Reconstruction -> Start reconstruction 进行重建
重建结束后得到下图,可以通过右下角Images和Points来判断是否重建成功
(如果重建的图片较少或者点较少都会导致后续导出模型失败)
4. 保存位姿和稀疏点
在images目录下(即test_frame文件夹中)新建/sparse/0/文件夹
点击File -> Export model 以导出模型,选择该文件夹0
四、使用LLFF脚本对位姿数据进行格式转化
1.下载LLFF
链接:git clone https://github.com/Fyusion/LLFF.git
将运行环境配置好
imgs2poses.py,第9行修改为改为刚才的工作目录
parser.add_argument('--scenedir', type=str,
default='D:/pycharm_project/dataset_3d/test_frame/',
help='input scene directory')
LLFF/llff/poses/pose_utils.py ,30行左右添加如下代码:
for i in np.argsort(names):
print(names[i],end=' ')
2.运行imgs2poses.py
输出了所有匹配到位姿的图片,然后进入图像所在文件夹,删除没有匹配到位姿的图像,再重新进行 “位姿计算”
同时,工作目录下生成了poses_bounds.npy文件
至此,格式转换步骤完毕
五、设置配置文件
将相关文件(test_frame)上传至NerF代码的相应data文件夹中
复制/nerf-pytorch/configs目录下的fern.txt文件,并重命名(建议和工作目录(test_frame)名称一致)
并修改expname和datadir为自己的内容
运行 run_nerf.py,成功开始训练(需要修改参数,参照nerf复现)
遇到的问题
运行imgs2poses.py时报错:No such file or directory: ‘test_frame/sparse/colmap_output.txt’ Need to run colmap
应该是路径有问题:
- 写完整路径,分隔符用 “/” ,路径中不能有中文
- 查看路径是否正确,文件存放位置一定要放对,参考下图
更多推荐
所有评论(0)