Closed twowwj closed 2 years ago
Yes, we make all data have around 5K faces during training, because of the GPU memory limitation. Meshes with other resolutions might also work because our model doesn't have constraints on it, but we haven't tested it. So I still suggest preprocessing the mesh.
To get the pose transfer/skinning results on your original resolution, you can use interpolation as in this script . I'll integrate it into the demo later.
Following your description, do I need to downsample the normal object with 6890 vertices to around 2500 vertices? I want to know how to try my own data. By the way, in the train.py, what is the "simplify.npz"? Is this a part of SMPL?
Yeah, it suggested doing so. For example, you can use Meshlab to apply quadric edge collapse decimation for downsampling.
Yes, simplify.npz
saves the downsampling information of SMPL, but since we haven't prepared all the training data, it is not in the repo now.
Thanks for your reply! Yes, I guess your proportion ratio is 0.4, right? Is the same problem with “geodesic_simplify.npz” specifically for the seq dataset?
If I want to retrain the model with Amass dataset, can I downsample all the Amass data in advance and train it like the Maximo dataset? Because I noticed that there is no simplification operation in other datasets. Can you give me some advice?
Another place I'm confused about is the upsampled function in mesh_res_mapper.py, which is the same as the simplify in the SMPL2Mesh function in networks. Is this upsampling or downsampling as determined by the face and vertex?
Hi, geodesic_simplify.npz
saves the geodesic information for simplified version of SMPL. But since we don't use geodesic information in the final version. Related parts have been removed.
I've updated the data processing codes. You can check it out. We did downsampling for AMASS and Mixamo. RigNet dataset is already downsampled, so no need to do it again.
In mesh_res_mapper.py
, two meshes with different resolutions are given. We compute the barycentric coordinates of every vertex of orig_m with respect to its closest triangle on m. upsample()
utilizes this barycentric coordinates, so that when the pose of m is changed, we can compute orig_m with the new pose.
Thanks for your reply!
Hi @zycliao Could you please elaborate more about how to get simplefy.npz
? I suppose I can run data_proc/smpl_simplify.py
, but I'm not sure how to get lres_up_male.obj and simplify.obj. Also, is this simplify information only needs to be run once for all AMASS data?
Hi,
I found that the number of vertices of all the objects you provided is around 2500, did you preprocess them? If I use the normal object with 6890 vertices, what can I do?
thx