GeneBody dataset captures performer in a motion capture studio with 48 synchronized cameras. Each actor is asked to perform 10 seconds clips recorded in a 15 fps rate. The camera location and capture volume is visualized in the following video.
Left: Motion capture studio and performer, cameras are highlighted. Right: Video captured from camera 25.
The processed GeneBody dataset is organized in following structure
├──genebody/ # root of dataset
├──amanda/ # subject
├──image/ # multiview images
├──00/ # images of 00 view
├──...
├──mask/ # multiview masks
├──00/ # masks of 00 view
├──...
├──param/ # smpl parameters
├──smpl/ # smpl meshes in OBJ format
├──annots.npy # camera parameters
├──.../
├──genebody_split.npy # dataset splits
You can download the Test10 and Train40 subset by the instructions.
We provide the reference data reader GeneBodyReader
in genebody/genebody.py
.
The default source view number is 4, and the source views are [01, 13, 25, 37]
.
As human performer may appear in different size across views, and the original image plane contains very small proportion of foreground, directly apply image quality metrics on raw image, eg. PSNR, SSIM and LPIPS may introduce ambiguity numerically. To tackle this we crop the performer out and resize it to a give resolution, in GNR and GeneBody benchmarks. Check the reference interface for more details.
GeneBody provides the camera calibration for each subjects, intrinic matrix, distortion coefficient and extrinic parameters are provided in annots.npy
in each subject folder. Note that we use a opencv camera (xyz->right,down,front).
Before recording, we capture the scene without any performer, and use it as reference image in BackgroundMatting-V2 to automatically extract the performer foreground mask.
We choose 8 camera views to manually check the results of auto annoataion and manually labels the bad case. The 8 camera views are [01, 07, 13, 19, 25, 31, 37, 43]
.
GeneBody provides per-frame SMPLx estimation, and store the mesh in smpl
subfolder and SMPLx parameters in param
subfolder. The SMPLx toolbox is also provided in this repo.
GeneBody provide SMPLs parameter and 3D keypoints in param
subfolder. More specifally, the dictionary 'smplx', can be directly feed to SMPLX forward pass as long as all the parameters are converted to torch tensor, an example to generate SMPLX from parameters is provided in the data interface.
GeneBody has a large variation on performers' age distribution, while SMPLx model typically fails to fit well on kids and giants. We introduce 'smplx_scale' outside the SMPLx model, and jointly optimize scale and body model parameters during fitting. Thus, to recover the fitted mesh in smpl
subfolder using parameters in param
subfolder, you need to multiple a 'smplx_scale' to the vertices or 3d joints output by the body model.