bharat-b7 / MultiGarmentNetwork

Repo for "Multi-Garment Net: Learning to Dress 3D People from Images, ICCV'19"
285 stars 65 forks source link

How to extract garment region in texture map? #51

Closed chacorp closed 3 years ago

chacorp commented 3 years ago

Hi, Thanks for the dataset and beautiful work!

I have a question about texture transfer. I wanted to extract the garment region in the texture map with vertex label, but it seems that indices of vertex positions and indices of vertex texture coordinates do not match.

when I printed out the 'v', 'f', 'vt' and 'ft' in smpl, the result was like this

SMPL v: 27554 SMPL vt: 28920 SMPL f: 55104 SMPL ft: 55104 garment['TShirtNoCoat'] v: 7702 garment['TShirtNoCoat'] vt: 28920 garment['TShirtNoCoat'] f: 15180 garment['TShirtNoCoat'] ft: 15180

I don't think it is a UV coordinate, but I can't find anything similar with UV.... Is there a way to find a corresponding UV from garment vertex indices?

chacorp commented 3 years ago

vt and ft was the key after all! the problem was my code :)

DavidBoja commented 2 years ago

Could you please elaborate how did you apply texture to, let's say for example, only the t shirt? Which UV maps creates the correspondence between TShirtNoCoat.obj and multi_tex.jpg?

I tried using garment_fts.pkl from the assets folder for the Tshirt, but it does not seem to work (or I am doing something wrong.) I also "reverse engineered" by using the segmentation map, but that does not create one-on-one correspondences between 3D points and 2D points since this process is not perfect.

Could you share a snippet on how to do it?

BukuBukuChagma commented 4 months ago

Could you please elaborate how did you apply texture to, let's say for example, only the t shirt? Which UV maps creates the correspondence between TShirtNoCoat.obj and multi_tex.jpg?

I tried using garment_fts.pkl from the assets folder for the Tshirt, but it does not seem to work (or I am doing something wrong.) I also "reverse engineered" by using the segmentation map, but that does not create one-on-one correspondences between 3D points and 2D points since this process is not perfect.

Could you share a snippet on how to do it?

hey did you figure this out?