栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【编码实现】dataset

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【编码实现】dataset

基于generate.py实现。

运行命令:python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/s5 --trunc=1 --seeds=5 --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3"

seed=5
python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/s_$seed --trunc=1 --seeds=$seed --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3"

trunc 越接近0,输出图像越接近平均值。 在后面的实验中,我们设置trunc的默认值为0.7

seed=30000
python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/s_$seed --seeds=$seed --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3"

测试多个种子的情况。

问题是: 上下两张图是什么关系呢?

尝试调整俯仰角范围
seed=6
relative_range_u_scale=10
python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/s_$seed --seeds=$seed --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3" --relative_range_u_scale=$relative_range_u_scale

结果:看不出来有明显的差别。

减小输出数量,(增大图像之间的视角差)
python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/debug --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3"
大致要处理的内容
  1. 取消掉视频输出。
  2. 单独输出一次camera的信息。
  3. 输出图片格式为xxxx_xx.png

信息的存储部分代码如下:

img_dir = os.path.join(outdir, 'images')
os.makedirs(img_dir, exist_ok=True)
camera_dir = os.path.join(outdir, 'cameras')
if os.path.exists(camera_dir):
    pass
else:
    os.makedirs(camera_dir, exist_ok=True)
    _, H, W, _ = imgs[0].shape
    for step, camera in enumerate(cameras):
        intri, pose, _, _ = camera
        focal = (H - 1) * 0.5 / intri[0, 0, 0].item()
        intri = np.diag([focal, focal, 1.0, 1.0]).astype(np.float32)
        intri[0, 2], intri[1, 2] = (W - 1) * 0.5, (H - 1) * 0.5

        pose = pose.squeeze().detach().cpu().numpy() @ np.diag([1, -1, -1, 1]).astype(np.float32)
        np.savez(os.path.join(camera_dir, f'{step:02d}.npz'), intrinsics=intri, poses=pose)

最终的运行命令为:python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/Mydataset --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3" --num_seeds=100

尝试正式生成数据集放到服务器上跑

命令:python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/Mydataset_3w --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_256.pkl --render-program="rotation_camera3" --num_seeds=30000

调整视角范围:
large = 2
range_u, range_v = gen.C.range_u, gen.C.range_v
u_mid = (range_u[1] - range_u[0]) / 2 + range_u[0]
u_gap = (range_u[1] - range_u[0]) / 2 * large
range_u = [u_mid - u_gap, u_mid + u_gap]
v_mid = (range_v[1] - range_v[0]) / 2 + range_v[0]
v_gap = (range_v[1] - range_v[0]) / 2 * large
range_v = [v_mid - v_gap, v_mid + v_gap]

先在 generate.py 上做测试
运行命令 :python generate.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/generate/view_0.7 --trunc=0.7 --seeds=5 --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_512.pkl --render-program="rotation_camera3"

从左到右,large分别为,0.5,0.6,0.7,1,2,3

查看不同视角相同位置对应的mode是否相同。
data ='/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/'
camera_1 = os.path.join(data,'test_overlap_0.5','cameras','mode.npz')
camera_2 = os.path.join(data,'test_overlap_1','cameras','mode.npz')


# 加载camera数据

mode_1 = np.load(camera_1)['mode']
mode_2 = np.load(camera_2)['mode']
print(mode_1)
print(mode_2)

调整range_radius

变形严重。 放弃调整range_radius 这个方案。

把large参数放到mode信息里面。 重新创建数据集。 更换模型测试

命令:python dataset_create.py --outdir=/home/joselyn/workspace/0419-course/logs/StyleNeRF-main/dataset_create/1024 --network=/home/joselyn/workspace/0419-course/stylenerf_pkl/ffhq_1024.pkl --render-program="rotation_camera3" --seed_s=0 --seed_e=6 --large=0.5 --n_steps=12

1024 的效果还挺好的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925737.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号