Nerf三维重建使用Pycharm运行自己的数据集
------------------------------------20230427更新----------------------------------------------
Nerf代码讲解,从零简单复现论文代码
Nerf环境配置教程
你好! 这里是“出门吃三碗饭”本人,本文章接下来将介绍自己制作Nerf数据集,让你自己动手渲染第一个三维模型。视频解说可以关注B站,搜索 出门吃三碗饭 ,即可找到对应视频(预计11.24更新),另外可以关注《AI知识物语》 公众号获取更多详情信息。
讲解视频链接如下
讲解演示视频
1:准备图片数据
我这里 新建1个文件,叫plant,里面创建images文件,放上拍好的图片(这里建议按照拍照角度顺序,不要一会左一会右),文件中没有用红色方框圈起来的文件先不用着急
2:Colmap 重建预处理
1: File --New Project-- 新建自己 plant.db,并选取images文件
2:
现在进行特征提取
再进行特征匹配
结束后点击Processing旁边的Reconstruction,选择Start Reconstruction
结果如下
3:导出参数文件
在导出前,先建立以下目录,和images同一等级创建sparse文件,再在其下建立0文件
File 导出 export model,保存的位置就是上图sparse文件下的0文件
export后,0文件就有下面4个文件
4: 位姿获取
现在我们有以下3个文件
创建 imgs2poses文件
(该imgs2poses.py 需要从llff导入一些包,其可以在官方代码github上找到,文末我也会贴出项目地址)
imgs2poses.py
from llff.poses.pose_utils import gen_poses
import sys
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--match_type', type=str,
default='exhaustive_matcher', help='type of matcher used. Valid options: \
exhaustive_matcher sequential_matcher. Other matchers not supported at this time')
parser.add_argument('scenedir', type=str,
default='M:/ColmapData/NerfPlant1/', help='input scene directory')
args = parser.parse_args()
if args.match_type != 'exhaustive_matcher' and args.match_type != 'sequential_matcher':
print('ERROR: matcher type ' + args.match_type + ' is not valid. Aborting')
sys.exit()
# python imgs2poses.py M:/ColmapData/NerfPlant1
if __name__=='__main__':
#gen_poses(args.scenedir, args.match_type)
gen_poses(args.scenedir, args.match_type)
在pycharm下使用命令
python imgs2poses.py M:/ColmapData/NerfPlant1/
M:/ColmapData/NerfPlant1/ 这个可以换为自己的images所在的文件
比如我的 NerfPlant1文件下有之前创建的 images,sparse,以及plant.db文件
运行成功下,会有下面这个重要的文件
5:转移到项目中
下面把以上步骤的文件转移到 Nerf项目 data/nerf_llff_data下面的plant文件
6:创建config
在官网项目中,创建自己的configs文件,我这里是plant.txt,其内容参考chair.tex
这是我的plant.txt 内容,具体改的内容可以自己对照其他txt修改
expname = plant
basedir = ./logs
datadir = ./data/nerf_llff_data/plant
dataset_type = llff
factor = 8
llffhold = 8
N_rand = 1024
N_samples = 64
N_importance = 64
use_viewdirs = True
raw_noise_std = 1e0
7:完成数据制作,开始训练
使用以下命令
python run_nerf.py --config configs/plant.txt
就可以开始训练了。
上面的项目文件可以在公众号AI知识物语 输入 关键词 获取资源