All Projects → google → aistplusplus_api

google / aistplusplus_api

Licence: Apache-2.0 license
API to support AIST++ Dataset: https://google.github.io/aistplusplus_dataset

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to aistplusplus api

ICON
ICON: Implicit Clothed humans Obtained from Normals (CVPR 2022)
Stars: ✭ 641 (+131.41%)
Mutual labels:  3d-reconstruction, pose-estimation, smpl-model
handobjectconsist
[cvpr 20] Demo, training and evaluation code for joint hand-object pose estimation in sparsely annotated videos
Stars: ✭ 100 (-63.9%)
Mutual labels:  3d-reconstruction, pose-estimation
Densebody pytorch
PyTorch implementation of CloudWalk's recent work DenseBody
Stars: ✭ 378 (+36.46%)
Mutual labels:  3d-reconstruction, pose-estimation
Tailornet
Code for our CVPR 2020 (ORAL) paper - TailorNet: Predicting Clothing in 3D as a Function of Human Pose, Shape and Garment Style.
Stars: ✭ 180 (-35.02%)
Mutual labels:  3d-reconstruction
Pixel2meshplusplus
Pixel2Mesh++: Multi-View 3D Mesh Generation via Deformation. In ICCV2019.
Stars: ✭ 188 (-32.13%)
Mutual labels:  3d-reconstruction
Patchmatchstereo
PatchMatch,倾斜窗口经典,效果极佳,OpenMVS&Colmap稠密匹配算法。完整实现,代码规范,注释清晰,博客教学,欢迎star!
Stars: ✭ 219 (-20.94%)
Mutual labels:  3d-reconstruction
pose-estimation-3d-with-stereo-camera
This demo uses a deep neural network and two generic cameras to perform 3D pose estimation.
Stars: ✭ 40 (-85.56%)
Mutual labels:  3d-reconstruction
Opensfm
Open source Structure-from-Motion pipeline
Stars: ✭ 2,342 (+745.49%)
Mutual labels:  3d-reconstruction
Awesome Point Cloud Analysis
A list of papers and datasets about point cloud analysis (processing)
Stars: ✭ 3,104 (+1020.58%)
Mutual labels:  3d-reconstruction
Scancomplete
[CVPR'18] ScanComplete: Large-Scale Scene Completion and Semantic Segmentation for 3D Scans
Stars: ✭ 213 (-23.1%)
Mutual labels:  3d-reconstruction
3dreconstruction
3D reconstruction, sfm with Python3
Stars: ✭ 213 (-23.1%)
Mutual labels:  3d-reconstruction
Msn Point Cloud Completion
Morphing and Sampling Network for Dense Point Cloud Completion (AAAI2020)
Stars: ✭ 196 (-29.24%)
Mutual labels:  3d-reconstruction
Structured3d
[ECCV'20] Structured3D: A Large Photo-realistic Dataset for Structured 3D Modeling
Stars: ✭ 224 (-19.13%)
Mutual labels:  3d-reconstruction
Gan2shape
Code for GAN2Shape (ICLR2021 oral)
Stars: ✭ 183 (-33.94%)
Mutual labels:  3d-reconstruction
Genre Shapehd
Code and Data Release for GenRe (NeurIPS 2018) and ShapeHD (ECCV 2018)
Stars: ✭ 241 (-13%)
Mutual labels:  3d-reconstruction
Meshlab
The open source mesh processing system
Stars: ✭ 2,619 (+845.49%)
Mutual labels:  3d-reconstruction
Pcn
Code for PCN: Point Completion Network in 3DV'18 (Oral)
Stars: ✭ 238 (-14.08%)
Mutual labels:  3d-reconstruction
Computervisiondatasets
Stars: ✭ 207 (-25.27%)
Mutual labels:  3d-reconstruction
Horizonnet
Pytorch implementation of HorizonNet: Learning Room Layout with 1D Representation and Pano Stretch Data Augmentation.
Stars: ✭ 195 (-29.6%)
Mutual labels:  3d-reconstruction
Pix2vox
Implementation of "Pix2Vox: Context-aware 3D Reconstruction from Single and Multi-view Images" (Xie et al., ICCV 2019)
Stars: ✭ 216 (-22.02%)
Mutual labels:  3d-reconstruction

AIST++ API

This repo contains starter code for using the AIST++ dataset. To download the dataset or explore details of this dataset, please go to our dataset website.

Installation

The code has been tested on python>=3.7. You can install the dependencies and this repo by:

pip install -r requirements.txt
python setup.py install

You also need to make sure ffmpeg is installed on your machine, if you would like to visualize the annotations using this api.

How to use

We provide demo code for loading and visualizing AIST++ annotations. Note AIST++ annotations and videos, as well as the SMPL model (for SMPL visualization only) are required to run the demo code.

The directory structure of the data is expected to be:

<ANNOTATIONS_DIR>
├── motions/
├── keypoints2d/
├── keypoints3d/
├── splits/
├── cameras/
└── ignore_list.txt

<VIDEO_DIR>
└── *.mp4

<SMPL_DIR>
├── SMPL_MALE.pkl
└── SMPL_FEMALE.pkl

Visualize 2D keypoints annotation

The command below will plot 2D keypoints onto the raw video and save it to the directory ./visualization/.

python demos/run_vis.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --video_dir <VIDEO_DIR> \
  --save_dir ./visualization/ \
  --video_name gWA_sFM_c01_d27_mWA2_ch21 \
  --mode 2D

Visualize 3D keypoints annotation

The command below will project 3D keypoints onto the raw video using camera parameters, and save it to the directory ./visualization/.

python demos/run_vis.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --video_dir <VIDEO_DIR> \
  --save_dir ./visualization/ \
  --video_name gWA_sFM_c01_d27_mWA2_ch21 \
  --mode 3D

Visualize the SMPL joints annotation

The command below will first calculate the SMPL joint locations from our motion annotations (joint rotations and root trajectories), then project them onto the raw video and plot. The result will be saved into the directory ./visualization/.

python demos/run_vis.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --video_dir <VIDEO_DIR> \ 
  --smpl_dir <SMPL_DIR> \
  --save_dir ./visualization/ \ 
  --video_name gWA_sFM_c01_d27_mWA2_ch21 \ 
  --mode SMPL

Visualize the SMPL Mesh

The command below will calculate the first frame SMPL mesh from our motion annotations (joint rotations and root trajectories), and visualize in 3D.

# install some additional libraries for 3D mesh visualization
pip install vedo trimesh

python demos/run_vis.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --smpl_dir <SMPL_DIR> \
  --video_name gWA_sFM_c01_d27_mWA2_ch21 \ 
  --mode SMPLMesh

Extract SMPL motion features

The command below will calculate and print two types of features for a motion sequence in SMPL format. We take reference from fairmotion to calculate the features.

python demos/extract_motion_feats.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --smpl_dir <SMPL_DIR> \
  --video_name gWA_sFM_c01_d27_mWA2_ch21

Multi-view 3D keypoints and motion reconstruction

This repo also provides code we used for constructing this dataset from the multi-view AIST Dance Video Database. The construction pipeline starts with frame-by-frame 2D keypoint detection and manual camera estimation. Then triangulation and bundle adjustment are applied to optimize the camera parameters as well as the 3D keypoints. Finally we sequentially fit the SMPL model to 3D keypoints to get a motion sequence represented using joint angles and a root trajectory. The following figure shows our pipeline overview.

AIST++ construction pipeline overview.

The annotations in AIST++ are in COCO-format for 2D & 3D keypoints, and SMPL-format for human motion annotations. It is designed to serve general research purposes. However, in some cases you might need the data in different format (e.g., Openpose / Alphapose keypoints format, or STAR human motion format). With the code we provide, it should be easy to construct your own version of AIST++, with your own keypoint detector or human model definition.

Step 1. Assume you have your own 2D keypoint detection results stored in <KEYPOINTS_DIR>, you can start by preprocessing the keypoints into the .pkl format that we support. The code we used at this step is as follows but you might need to modify the script run_preprocessing.py in order to be compatible with your own data.

python processing/run_preprocessing.py \
  --keypoints_dir <KEYPOINTS_DIR> \
  --save_dir <ANNOTATIONS_DIR>/keypoints2d/

Step 2. Then you can estimate the camera parameters using your 2D keypoints. This step is optional as you can still use our camera parameter estimates which are quite accurate. At this step, you will need the <ANNOTATIONS_DIR>/cameras/mapping.txt file which stores the mapping from videos to different environment settings.

# install some additional libraries
pip install -r processing/requirements.txt

# If you would like to estimate your own camera parameters:
python processing/run_estimate_camera.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --save_dir <ANNOTATIONS_DIR>/cameras/
# Or you can skip this step by just using our camera parameter estimates.

Step 3. Next step is to perform 3D keypoints reconstruction from multi-view 2D keypoints and camera parameters. You can just run:

python processing/run_estimate_keypoints.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --save_dir <ANNOTATIONS_DIR>/keypoints3d/

Step 4. Finally we can estimate SMPL-format human motion data by fitting the 3D keypoints to the SMPL model. If you would like to use another human model such as STAR, you will need to do some modifications in the script run_estimate_smpl.py. The following command runs SMPL fitting.

python processing/run_estimate_smpl.py \
  --anno_dir <ANNOTATIONS_DIR> \
  --smpl_dir <SMPL_DIR> \
  --save_dir <ANNOTATIONS_DIR>/motions/

Note that this step will take several days to process the entire dataset if your machine has only one GPU. In practise, we run this step on a cluster, but are only able to provide the single-threaded version.

MISC.

  • COCO-format keypoint definition:
[
"nose", 
"left_eye", "right_eye", "left_ear", "right_ear", "left_shoulder","right_shoulder", 
"left_elbow", "right_elbow", "left_wrist", "right_wrist", "left_hip", "right_hip", 
"left_knee", "right_knee", "left_ankle", "right_ankle"
]
  • SMPL-format body joint definition:
[
"root",     
"lhip", "rhip", "belly",    
"lknee", "rknee", "spine",    
"lankle", "rankle", "chest",     
"ltoes", "rtoes", "neck", 
"linshoulder", "rinshoulder",     
"head",  "lshoulder", "rshoulder",      
"lelbow", "relbow",      
"lwrist", "rwrist",     
"lhand", "rhand",
]
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].