训练笔记Ubuntu

您所在的位置:网站首页 莫扎特从多少岁开始作曲的 训练笔记Ubuntu

训练笔记Ubuntu

2023-07-11 18:52| 来源: 网络整理| 查看: 265

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.sh

demo.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.sh

4、其他 修改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。

在这里插入图片描述

在这里插入图片描述

导入效果如下图所示 在这里插入图片描述

2、开始渲染

打开文本编辑器 在这里插入图片描述

在这里插入图片描述 在文本编辑框输入以下代码:渲染代码http://t.csdn.cn/AXNNq

格式转换

经过渲染后,可以得到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