-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Hello, I was trying to run the generative model with my custom BVH dataset. So I followed a similar approach while training the model and generating the test outputs. As you did in generative.py, I used BVH.save function to save the generated anim that is created with positions and rotations arrays. It does not give any errors if the step = 1. But while generating the 60 FPS animation with step = 0.5, it gives an error. The error is caused by the positions array.
While creating the positions array, if 'trans' key does not exist inside the reconstructed data, it creates a zero array with the shape of self.input_data['trans']:
Lines 451 to 458 in 7991843
| if 'trans' in self.recon_data.keys(): | |
| origin = self.input_data['trans'][:, 0] | |
| positions = self.recon_data['trans'] | |
| positions[..., self.v_axis] = positions[..., self.v_axis] + origin[..., self.v_axis].unsqueeze(1) | |
| positions_gt = self.input_data['trans'] # (B, T, 3) | |
| else: | |
| positions = torch.zeros_like(self.input_data['trans']) # (B, T, 3) | |
| positions_gt = torch.zeros_like(self.input_data['trans']) # (B, T, 3) |
The reconstructed 60 FPS animation contains 2T amount of frames while the input data contains only T amount of frames. That is why the positions array also contains T amount of frames. Since the rotations and positions arrays do not have the matching frame count, the program gives an error.
I fixed this issue by simply passing (b_size, rotmat.shape[1], 3) as the shape parameters in the creation of the positions array. I did not check if I get any errors if the 'trans' key is available in reconstructed data.