FreeMan Documentation

Overall Structure


FreeMan consists of 2 subsets corresponding to 30FPS & 60FPS, respectively. Each subset data includes RGB videos, camera parameters, 2D & 3D human keypoints, SMPL parameters and bounding boxes. File structure is shown as below. Data are grouped into different folders by data types.
yyyymmdd_xxxxxxxx_subjNN is the unique name for each session. yyyymmdd refer to capture date, xxxxxxxx refer to uuid of the session, NN refer to subject id.

              
              FreeMan
                ├── 30FPS
                │   ├── bbox2d
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN.npy
                │   │   └── ...
                │   ├── keypoints2d
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN.npy
                │   │   └── ...
                │   ├── keypoints3d
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN.npy
                │   │   └── ...
                │   ├── motions
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN_view0.npy
                │   │   ├── ...
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN_view8.npy
                │   │   └── ...
                │   ├── cameras
                │   │   ├── yyyymmdd_xxxxxxxx_subjNN.json
                │   │   └── ...
                │   └── videos
                │        ├── yyyymmdd_xxxxxxxx_subjNN
                │        │   ├── cameras.json
                │        │   ├── chessboard.pkl
                │        │   └── vframes
                │        │       ├── c01.mp4
                │        │       ├── ...
                │        │       └── c08.mp4
                │        ├── ...
                ├── 60FPS
                │   ├── ...
                
            

Dataset Splits


FreeMan provides train, val, test splits. Session ID of each splits are stored in train.txt, val.txt and test.txt, respectively. Each line of these text files includes a session ID in corresponding subset.

RGB Frames


For each session, videos are stored in videos folder. Each video is named as cXX.mp4, where XX is the camera id. cameras.json and chessboard.pkl are camera parameters and chessboard data for calibration, respectively. Videos are in resolution of 1920 * 1080 and have framerate of 30/60 FPS.

Camera Parameters


Cameras in FreeMan follows Pinhole Camera pattern. Camera parameters for all sessions are stored in cameras and are stored in JSON format. cameras.json contains 8 camera parameters, each of which is a dictionary with 6 keys: name, size, matrix, rotation, translations and distortions. Parameters follow OpenCV convention and are explained as below:

              
              [
              {
                "name": "c01",
                "size": [
                    frame width,
                    frameheight
                ],
                "matrix": [
                    [
                        focal length x,
                        0.0,
                        center point x
                    ],
                    [
                        0.0,
                        focal length y,
                        center point y
                    ],
                    [
                        0.0,
                        0.0,
                        1.0
                    ]
                ],
                "rotation": [
                    Rotation1,
                    Rotation2,
                    Rotation3
                ],
                "distortions": [
                    P1,
                    P2,
                    P3,
                    P4,
                    P5
                ],
                "translation": [
                    translation_x,
                    translation_y,
                    translation_z
                ]
              },
              {

              },
              ...
              ]
              
            

Pose Annotations


Skeleton

Up to now, FreeMan provides keypoint annotations in COCO format, which is widely used and defines 17 human joints. Both 2D & 3D pose annotations are stored in numpy format. 2D keypoints for a session are in shape of [C, F, J, 2], where C is camera index, F is frame index, J is joint index, 2 is x, y coordinates. 3D keypoints for a session are in shape of [F, J, 3], where F is frame index, J is joint index, 3 is x, y, z coordinates.
2D & 3D are stored in keypoints2d & keypoints3d folders, respectively. Each file is named as yyyymmdd_xxxxxxxx_subjNN.npy, where yyyymmdd refer to capture date, xxxxxxxx refer to uuid of the session, NN refer to subject id.

SMPL parameters are stored in motions folder. Each file is named as yyyymmdd_xxxxxxxx_subjNN_viewX.npy, where yyyymmdd refer to capture date, xxxxxxxx refer to uuid of the session, NN refer to subject id, X refer to camera id. Each file is in shape of [F, 85], where F is frame index, 85 is SMPL parameters.

Data Collection Agreements for Participants


All participants in our project volunteered willingly. Before the project commenced, the project background and the types of data collected were clearly explained to the participants, and they all signed this consent forms for data collection.

Credits: COCO / SMPL