nerf训练自己的数据,过程记录十分详细

这篇具有很好参考价值的文章主要介绍了nerf训练自己的数据,过程记录十分详细。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

       之前跑很多项目没有记录,后来再弄就不行了。这次特别记录一下,在梳理流程的同时希望给大家带来小小的帮助!我自己是在cuda11.2,windows环境下成功的,过程十分详细,有需要的朋友耐心看完。有问题可以评论区交流

        首先,本文nerf是基于pytorch训练的,代码来源于yenchenlin大佬,GitHub地址:GitHub - yenchenlin/nerf-pytorch: A PyTorch implementation of NeRF (Neural Radiance Fields) that reproduces the results.

 一、配置nerf环境      

         在每弄一个新项目之前,建议创建一个新的环境,本文利用conda命令创建名为nerf的环境,指令如下:

conda create --name nerf -y python=3.8 #创建名为nerf的环境
conda activate nerf #切换到nerf环境

        然后安装需要的库,都在nerf代码文件的requirements.txt里

cd nerf-pytorch #进入到你nerf的文件夹,根据自己的文件位置调整
python -m pip install --upgrade pip #升级一下pip,防止莫名其妙的错误
pip install -r requirements.txt #安装需要的库

        结束之后建议测试一下pytorch是否为GPU版本,有时候默认安装会装成CPU版本,用以下代码测试,输出版本号和True则没有问题。否则卸载安装的torch版本,用wheel离线安装。

import torch

print(torch.__version__)
print(torch.cuda.is_available())

        然后先用作者提供的数据跑一下nerf,保证环境没有问题。这里如果用的是windows系统,需要下载Gitbash来使用linux的命令,先在代码文件夹下下载数据:

bash download_example_data.sh #下载作者提供的数据

        结束后在data文件夹下有个名为nerf_example_data的压缩包,解压后在nerf代码文件夹下使用如下命令开始训练:

python run_nerf.py --config configs/fern.txt

二、创建llff格式的数据集                           

       接下来的步骤请务必注意文件夹的命名,未打括号说明则最好按照我的名字命名,然后注意是在哪个文件夹下操作的,否则后面训练可能找不到对应文件而报错!  

        先在nerf_llff_data文件夹下创建一个自己的数据文件夹,我命名为llfftest(这个名字可以自取),接着在llfftest文件夹下创建名为images的文件夹,将拍摄的图片放置到此文件夹,下面给出我的示例:

nerf训练自己的数据,深度学习,pytorch,人工智能

        接着需要下载COLMAP软件,(地址:Release 3.8 · colmap/colmap · GitHub),拉到最下面选择cuda版本:

nerf训练自己的数据,深度学习,pytorch,人工智能

下载解压后打开COLMAP.bat文件得到以下界面:

nerf训练自己的数据,深度学习,pytorch,人工智能

然后点击File,选择New Project,继续点击new,在llfftest文件夹下手动输入文件名database.db后,点击保存:

nerf训练自己的数据,深度学习,pytorch,人工智能

 接着点击Select,选择保存图片的那个images文件夹,点击Save:

nerf训练自己的数据,深度学习,pytorch,人工智能

接下来点击File右边的Processing,选择Feature extraction,出现如下界面,只需要配置第一个选项,然后点击下面Extract。

nerf训练自己的数据,深度学习,pytorch,人工智能

结束后点击关闭,接着点击Processing下的Feature matching,直接run即可,然后等待匹配结束。nerf训练自己的数据,深度学习,pytorch,人工智能

结束后点击Processing旁边的Reconstruction,选择Start Reconstruction,等待结束。。。nerf训练自己的数据,深度学习,pytorch,人工智能

结束后,点击File,选择Export model,这里一定注意不要直接保存,需要新建两个文件夹,名字很重要,请跟我保持一致! nerf训练自己的数据,深度学习,pytorch,人工智能

完成后检查一下文件下的东西:

nerf训练自己的数据,深度学习,pytorch,人工智能nerf训练自己的数据,深度学习,pytorch,人工智能

接下来,将获取的位姿等数据转化为llff格式,需要下载llff脚本,(地址:GitHub - Fyusion/LLFF: Code release for Local Light Field Fusion at SIGGRAPH 2019)

为了防止库冲突和报错,我又创建了名为llff的环境,将此项目需要的库进行安装,方法跟创建nerf环境是一样的

conda create --name llff -y python=3.8 
conda activate llff 
pip install -r requirements.txt  #在llff代码文件夹下运行

然后在此环境和llff代码文件夹下运行python imgs2poses.py (红框部分改为自己的文件路径):  nerf训练自己的数据,深度学习,pytorch,人工智能

结束后就能在llfftest下得到一个.npy文件:nerf训练自己的数据,深度学习,pytorch,人工智能

三、训练自己的nerf

        首先在nerf代码中,我们要在config文件夹下创建我们自己的配置文件,只需要将config文件夹下的fern复制一份,名字改为llftest,datadir后面也改成llftest即可

nerf训练自己的数据,深度学习,pytorch,人工智能

然后就可以在nerf环境和nerf代码下开始训练啦,(建议用Gitbash运行):

python run_nerf.py --config configs/llfftest.txt

效果如下: 

nerf训练自己的数据,深度学习,pytorch,人工智能

最后,如果你在训练时遇到

Mismatch between imgs 0 and poses 55 !!!!
Traceback (most recent call last):
File "run_nerf.py", line 878, in <module>
train()
File "run_nerf.py", line 544, in train
spherify=args.spherify)
File "C:\Users\HP\Desktop\nerf-pytorch-master\load_llff.py", line 246, in load_llff_data
poses, bds, imgs = _load_data(basedir, factor=factor) # factor=8 downsamples original imgs by 8x
TypeError: cannot unpack non-iterable NoneType object

可能是因为函数不兼容,解决方法是,在llfftest文件夹下新建一个images_8的文件夹,将八倍下采样的图片放到这。

nerf训练自己的数据,深度学习,pytorch,人工智能

下采样代码我也放出来,注意更改自己的路径:

import cv2
# import def_Gaussian as dg
# import time
import os.path


# import glob

#####################################################################################################################
# 读取文件夹里面的图像数量 并返回filenum
def countFile(dir):
    # 输入文件夹
    tmp = 0
    for item in os.listdir(dir):
        if os.path.isfile(os.path.join(dir, item)):
            tmp += 1
        else:
            tmp += countFile(os.path.join(dir, item))
    return tmp


filenum = countFile("C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images")  # 返回的是图片的张数
print(filenum)

# filenum
n = 8
index = 1  # 保存图片编号
num = 0  # 处理图片计数
for i in range(1, filenum + 1):
    ########################################################
    # 1.读取原始图片
    if index < 10:
        filename = "C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images\\" + str(i) + ".jpg"
    elif index < 100:
        filename = "C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images\\" + str(i) + ".jpg"
    else:
        filename = "C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images\\" + str(i) + ".jpg"
    print(filename)
    original_image = cv2.imread(filename)
    # 2.下采样
    if n == 4:
        img_1 = cv2.pyrDown(original_image)
        img_1 = cv2.pyrDown(img_1)
    if n == 8:
        img_1 = cv2.pyrDown(original_image)
        img_1 = cv2.pyrDown(img_1)
        img_1 = cv2.pyrDown(img_1)
    # 3.将下采样图片保存到指定路径当中
    if index < 10:
        cv2.imwrite("C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images_8\\" + str(index) + ".jpg", img_1)
    elif index < 100:
        cv2.imwrite("C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images_8\\" + str(index) + ".jpg", img_1)
    else:
        cv2.imwrite("C:\\Users\\HP\\Desktop\\nerf-pytorch-master\\data\\nerf_llff_data\\llfftest\\images_8\\" + str(index) + ".jpg", img_1)

    num = num + 1
    print("正在为第" + str(num) + "图片采样......")
    index = index + 1

最后的最后,本来是准备让大家看看我的结果的,但视频插入不了,那就祝各位小伙伴顺利吧。遇到什么奇奇怪怪的问题欢迎评论区讨论交流!文章来源地址https://www.toymoban.com/news/detail-778801.html

到了这里,关于nerf训练自己的数据,过程记录十分详细的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【全网最详细yolov6】yoloV6调试记录(含训练自己的数据集及常见报错及解决方法)--持续更新ing

    本文手把手教你如何调试最新的yolov6,复现运行COCO2017及训练自己的数据集,目前该项目刚发布,BUG会比较多,调起来一般不会那么顺利,本文含windows+ubuntu,并给出了一些常见问题和解决方法: 目录 1.项目简介 2.注意和推荐 3.项目配置(含COCO数据集配置) 4.训练自己的数据

    2024年03月10日
    浏览(47)
  • SwinIR实战:详细记录SwinIR的训练过程

    论文地址:https://arxiv.org/pdf/2108.10257.pdf 预训练模型下载:https://github.com/JingyunLiang/SwinIR/releases 训练代码下载:https://github.com/cszn/KAIR 测试代码:https://github.com/JingyunLiang/SwinIR 论文翻译:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/124434886 测试:https://wanghao.blog.csdn.net/article/d

    2024年01月16日
    浏览(29)
  • [超级详细]如何在深度学习训练模型过程中使用GPU加速

    前言 在深度学习当中,我们训练模型通常要对模型进行反复的优化训练,仅用CPU来进行训练的话需要花费很长时间,但是我们可以使用GPU来加速训练模型,这样就可以大大减少我们训练模型花费的时间。下图是我在训练模型过程中使用GPU加速和未使用GPU加速花费时间的对比:

    2024年02月09日
    浏览(38)
  • 精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型

    精华整理几十个Python数据科学、机器学习、深度学习、神经网络、人工智能方面的核心库以及详细使用实战案例,轻松几行代码训练自己的专有人工智能模型。 机器学习 人工智能的核心,是使计算机具有智能的根本途径。机器学习专注于算法,允许机器学习而不需要编程,

    2024年01月25日
    浏览(54)
  • 深度学习-yolo-fastestV2使用自己的数据集训练自己的模型

    虽然说yolo-fastestV2在coco数据集上map只达到了24.1,但是应付一些类别少的问题还是可以的。主要是这个速度是真的香!简单来说就是一个快到飞起的模型。 github地址如下:yolo-fastestV2 yolo-fastestV2采用了轻量化网络shufflenetV2为backbone,笔者在这里就不详解yolo-fastestV2了,只讲怎么

    2024年02月06日
    浏览(36)
  • YOLOv8训练自己的数据集(超详细)

    本人的笔记本电脑系统是:Windows10 YOLO系列最新版本的YOLOv8已经发布了,详细介绍可以参考我前面写的博客,目前ultralytics已经发布了部分代码以及说明,可以在github上下载YOLOv8代码,代码文件夹中会有requirements.txt文件,里面描述了所需要的安装包。 本文最终安装的pytorch版本

    2024年02月03日
    浏览(36)
  • YOLOv7训练自己的数据集(超详细)

       目录  一、准备深度学习环境 二、 准备自己的数据集 1、创建数据集  2、转换数据格式  3、配置文件  三、模型训练 1、下载预训练模型 2、训练 四、模型测试  五、模型推理 YOLOv7训练自己的数据集整个过程主要包括:环境安装----制作数据集----模型训练----模型测试

    2024年02月04日
    浏览(62)
  • 6d位姿估计---制作自己的LINEMOD数据集过程记录(ObjectDatasetTools)

    有效的方法 传送门 --------------分割线--------------- 在经历了好几天的煎熬后,发现配置labelfusion太难了,换 ObjectDatasetTools试试吧。 在复现这个代码的时候,深度参考了这位大哥的笔记,以及我自己对官方readme的翻译。 配置相机的部分不再赘述,本文只关注位姿、label以及mas

    2023年04月23日
    浏览(28)
  • 深度学习:使用nanodet训练自己制作的数据集并测试模型,通俗易懂,适合小白

    关于目标检测的模型有很多, nanodet 模型小且轻量化,适合移植部署到硬件设备上,非常推荐学习这个模型。经过我自己踩了无数坑后总结了此教程,助学刚接触nanodet,想要快速上手的学者,教程很详细,学者耐心看。 我提供了一个已经调试好的源码包,后面的教程也都是

    2024年02月15日
    浏览(30)
  • pytorch进阶学习(六):如何对训练好的模型进行优化、验证并且对训练过程进行准确率、损失值等的可视化,新手友好超详细记录

    课程资源:  7、模型验证与训练过程可视化【小学生都会的Pytorch】【提供源码】_哔哩哔哩_bilibili 推荐与上一节笔记搭配食用~: pytorch进阶学习(五):神经网络迁移学习应用的保姆级详细介绍,如何将训练好的模型替换成自己所需模型_好喜欢吃红柚子的博客-CSDN博客 训练

    2023年04月17日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包