训练笔记Ubuntu |
您所在的位置:网站首页 › 莫扎特从多少岁开始作曲的 › 训练笔记Ubuntu |
NeRF训练
准备数据集制作LLFF数据集blender数据(本文重点关注制作自己数据集)一、下载官方数据二、制作自己的数据集一些准备工作打开Blender1、导入模型:.obj文件2、开始渲染格式转换
报错记录一、sudo apt-get update报错出现问题解决方案
二、dpkg: 警告: 无法找到软件包,E: Sub-process /usr/bin/dpkg returned an error code (1)三、sudo add-apt-repository 'XXX'报错出现问题
准备数据集
制作LLFF数据集
https://github.com/fyusion/llff 1、安装docker和nvidia-docker 注意: 测试docker安装成功:sudo docker run hello-world,不要漏sudo,否则会报错。 docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/create": dial unix /var/run/docker.sock: connect: permission denied. See 'docker run --help'.测试安装nvidia-docker成功同理,sudo docker run --runtime=nvidia --rm nvidia/cuda:10.1-base nvidia-smi。上面给的参考链接,在这一步没有写出sudo 2、下载模型和官方图片 bash download_data.sh # 下载完成之后,会生成一个 data/testscene/images文件夹,这里保存了图片 sudo docker pull bmild/tf_colmap sudo docker tag bmild/tf_colmap tf_colmap # 生成llff数据集 sudo nvidia-docker run --rm --volume /:/host --workdir /host$PWD tf_colmap bash demo.shdemo.sh中是需要运行的代码,可根据自己的需求修改 3、为自己的图片生成llff数据集格式 1)data/testscene/images内更换为自己的图片 2)对demo.sh文件进行修改:对于nerf来说,我们只需要运行imgs2poses.py,就能生成满足训练格式的图片。此时demo.sh内可以修改为: # Use COLMAP to compute 6DoF camera poses python imgs2poses.py data/testscene/3)执行命令 sudo nvidia-docker run --rm --volume /:/host --workdir /host$PWD tf_colmap bash demo.sh4、其他 修改imgs2mpis.py参数 ,实现在不同采样因子下的采样率 blender数据(本文重点关注制作自己数据集) 一、下载官方数据 二、制作自己的数据集目的:渲染3D模型在不同视角下的图片,并为之生成对应的pose,相机内参。根据以上rgb文件、pose文件、相机内参生成blender输入格式。 一些准备工作1、下载blender 这里我们只需下载软件即可,不需要配置python依赖库 建议版本:2.79(原因:现有的一些代码不支持新版本,会出现报错,所以下载2.79版就行) 2、下载3d模型,在这里我使用了shapenet。根据自己需求在在其他3D模型可是可以的 打开Blender 1、导入模型:.obj文件(非常重要) 如果在Blender中导入单独.obj文件,是不会有颜色信息的。因此,在.obj文件的同目录下,需要存在一个.mtl文件,这样导入的模型才会有颜色信息,Blener会自动识别.mtl .obj文件保存的是模型的几何信息,.mtl保存的是模型的颜色信息,这两个文件shapnet数据集里都有。 如果不想要颜色,可以只单独导入.obj,同目录下不要放.mtl。 导入效果如下图所示 打开文本编辑器
经过渲染后,可以得到rgb、pose、intrinsics.txt这三个文件。现在,我们根据这三个文件转换成Blender的数据集格式,代码如下: 注意:pose存放的是相机相对世界坐标系下的位姿,而非相机自身坐标系。 地址Root就是经过blender渲染获得的相机pose,这个代码的功能是将其转换为.json文件 import math import numpy as np import os import json # Root = '/home/liuyuxing/render_data/car/8b177994dc29a707e363d824c14767b2_bule/models_4/data/test/pose/' file_name_list = os.listdir(Root) file_name_list.sort() # print(file_name_list) # 手动计算的相机水平视场角,计算公式为2*math.atan(400/(2*410.15625)),其中400为传感器尺寸,410.15625为焦距 # 如果原图像的尺寸为W * H,焦距为F,当将图像尺寸改为W/2 * H/2时,其对应的焦距应为2f # print(2*math.atan(400/(2*820.312500))) fov = 0.4782877997962207 jsontext = {'camera_angle_x': fov, 'frames': []} # 定义一个字典 for j in range(len(file_name_list)): filename = Root + file_name_list[j] lines = open(filename).read().splitlines() if len(lines) == 1: pose = np.zeros((4, 4), dtype=np.float32) for i in range(16): pose[i // 4, i % 4] = lines[0].split(" ")[i] r = pose.squeeze() r = r.tolist() else: lines = [[x[0], x[1], x[2], x[3]] for x in (x.split(" ") for x in lines[:4])] r = np.asarray(lines).astype(np.float32).squeeze() r = r.tolist() jsontext['frames'].append({'file_path': './test/r_%0d' % (round(j)), 'transform_matrix': r}) jsondata = json.dumps(jsontext, indent=4, separators=(',', ': ')) # 生成json文件,后面的参数是格式控制 f = open('data/car_blue/transforms_test.json', 'w') f.write(jsondata) f.close() 报错记录 一、sudo apt-get update报错 出现问题输入sudo apt-get update 报错: Traceback (most recent call last): File "/usr/lib/cnf-update-db", line 8, in from CommandNotFound.db.creator import DbCreator ImportError: No module named CommandNotFound.db.creator 正在读取软件包列表... 完成 E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/lib/command-not-found/ -a -e /usr/lib/cnf-update-db; then /usr/lib/cnf-update-db > /dev/null; fi' E: Sub-process returned an error code 解决方案1、设置python默认版本 2、修改cnf配置文件 二、dpkg: 警告: 无法找到软件包,E: Sub-process /usr/bin/dpkg returned an error code (1)解决方案 三、sudo add-apt-repository 'XXX’报错 出现问题报错: Traceback (most recent call last): File "/usr/bin/add-apt-repository", line 12, in from softwareproperties.SoftwareProperties import SoftwareProperties, shortcut_handler ImportError: No module named softwareproperties.SoftwareProperties 解决方案: vim /usr/bin/add-apt-repository 把#! /usr/bin/python3 改成 #! /usr/bin/python3.6#! /usr/bin/python3.6 这里的3.6与python默认版本相同 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |