shunsukesaito / PIFu

This repository contains the code for the paper "PIFu: Pixel-Aligned Implicit Function for High-Resolution Clothed Human Digitization"
https://shunsukesaito.github.io/PIFu/
Other
1.76k stars 341 forks source link

How to set training data #32

Closed zyz-notebooks closed 4 years ago

zyz-notebooks commented 4 years ago

Thank you very much for your work. Now I can convert the mesh in the shapenet data to a watertight mesh through ManifoldPlus, but I don’t know how to set up the data set structure for training. If you can give some advice, I would appreciate it.

shunsukesaito commented 4 years ago

You could modify the data generation code this repository provides for your needs. I don't use any human specific information for data generation, so it can be used for any objects including shapenet.

zyz-notebooks commented 4 years ago

thank you very much

zyz-notebooks commented 4 years ago

You could modify the data generation code this repository provides for your needs. I don't use any human specific information for data generation, so it can be used for any objects including shapenet. hi, I have run the first step of data generation according to what you advice, but when I run the second step, I encountered the following error, do you have any suggestions

python -m apps.render_data -i /home/zyz/desktop/PIFu/data/2c8b8a58ecffdaa17b9c6deef486a7d8 -o /home/zyz/desktop/PIFu/data/training_data_1 mesh_file: /home/zyz/desktop//PIFu/data/2c8b8a58ecffdaa17b9c6deef486a7d8/model.obj prt_file: /home/zyz/desktop/PIFu/data/2c8b8a58ecffdaa17b9c6deef486a7d8/bounce/bounce0.txt face_prt_file: /home/zyz/desktop/PIFu/data/2c8b8a58ecffdaa17b9c6deef486a7d8/bounce/face.npy text_file/home/zyz/desktop/PIFu/data/2c8b8a58ecffdaa17b9c6deef486a7d8/images/texture0.jpg Traceback (most recent call last): File "/home/zyz/anaconda3/envs/PIFU/lib/python3.8/runpy.py", line 194, in _run_module_as_main return _run_code(code, main_globals, None, File "/home/zyz/anaconda3/envs/PIFU/lib/python3.8/runpy.py", line 87, in _run_code exec(code, run_globals) File "/home/zyz/desktop/PIFu/apps/render_data.py", line 294, in render_prt_ortho(args.out_dir, args.input, subject_name, shs, rndr, rndr_uv, args.size, 1, 1, pitch=[0]) File "/home/zyz/desktop/PIFu/apps/render_data.py", line 194, in render_prt_ortho rndr.set_mesh(vertices, faces, normals, faces_normals, textures, face_textures, prt, face_prt, tan, bitan)
File "/home/zyz/desktop/PIFu/lib/renderer/gl/prt_render.py", line 102, in set_mesh self.uv_data[mat_name] = uvs[faces_uvs.reshape([-1])] IndexError: arrays used as indices must be of integer (or boolean) type

shunsukesaito commented 4 years ago

I see. Seems like your topology fix by ManifoldPlus might have destroyed uv mapping. I'd suggest the following:

  1. render meshes with the origin shapenet object with textures.
  2. replace obj files under GEO with the watertight ones.
zyz-notebooks commented 4 years ago

Sincere thanks, I will try it

zyz-notebooks commented 4 years ago

Hello, I am lucky to find a data set containing watertight mesh, and successfully performed the data generation steps, but encountered the following problems during training

python -m apps.train_shape --dataroot /home/zyz/desktop/PIFu/data/training_data_1 --random_flip --random_scale --random_trans Name: example | Epoch: 0 | 350/360 | Err: 0.000200 | LR: 0.001000 | Sigma: 5.00 | dataT: 0.00266 | netT: 0.26418 | ETA: 00:02 calc error (test) ... 100%|█████████████████████████████████████████| 100/100 [00:10<00:00, 9.91it/s] eval test MSE: 0.000000 IOU: 0.000000 prec: 0.000000 recall: 0.000000 calc error (train) ... 100%|█████████████████████████████████████████| 100/100 [00:10<00:00, 9.89it/s] eval train MSE: 0.000000 IOU: 0.000000 prec: 0.000000 recall: 0.000000 generate mesh (test) ... 0%| | 0/1 [00:00<?, ?it/s]error cannot marching cubes cannot unpack non-iterable int object Can not create marching cubes at this time. 100%|█████████████████████████████████████████████| 1/1 [00:05<00:00, 5.12s/it] generate mesh (train) ... 0%| | 0/1 [00:00<?, ?it/s]error cannot marching cubes cannot unpack non-iterable int object Can not create marching cubes at this time.

shunsukesaito commented 4 years ago

Please take a look at #23

zyz-notebooks commented 4 years ago

Thank you very much for your reply. I would also like to ask you the following. How can I set it up for batch training? I cannot accept a set of data for each training. I look forward to your reply.

shunsukesaito commented 4 years ago

The code already supports batch training. You just need to set --batch_size.

zyz-notebooks commented 4 years ago

Hi, when I trained on the data rendering in the data set. The result was not very good. The IOU always maintained at 0.1, and when I tried to run the demo with training model, it hint no find the net_g, but I have put net_c and net_g in the correct dircetory, do you have any suggestions, I should make those setting to fit my data set, thank you for your continued answer, which have helped me a lot

zyz-notebooks commented 4 years ago

the data set mainly contain table, chair, sofa, etc

Uuiiii commented 2 years ago

您好,很幸运找到了一个包含watertight mesh的数据集,并且成功执行了数据生成步骤,但是在训练的时候遇到了如下问题

python -m apps.train_shape --dataroot /home/zyz/desktop/PIFu/data/training_data_1 --random_flip --random_scale --random_trans 名称:示例 | 时代:0 | 350/360 | 错误:0.000200 | LR: 0.001000 | 西格玛:5.00 | 数据T:0.00266 | 净T:0.26418 | ETA:00:02 计算错误(测试)... 100%|██████████████████████████████████ ███████| 100/100 [00:10<00:00, 9.91it/s] 评估测试 MSE: 0.000000 IOU: 0.000000 prec: 0.000000 召回率: 0.000000 calc error (train) ... 100%|████████ █████████████████████████████████| 100/100 [00:10<00:00, 9.89it/s] eval train MSE:0.000000 IOU:0.000000 prec:0.000000 召回:0.000000 生成网格(测试)... 0%| | 0/1 [00:00<?, ?it/s]error cannot marching cubes cannot unpack non-iterable int object 目前无法创建行进立方体。 100%|█████████████████████████████████████████████| 1/1 [00:05<00:00, 5.12s/it] 生成网格 (train) ... 0%| | 0/1 [00:00<?, ?it/s]error cannot marching cubes cannot unpack non-iterable int object 目前无法创建行进立方体。

Hello, how did you use this dataset for data generation? Need to change the program in traindataset.py? What is the format of the training dataset?