Data generators for training and testing respectively.

class ChunkedGenerator[source]

ChunkedGenerator(batch_size, cameras, poses_3d, poses_2d, chunk_length, pad=0, causal_shift=0, shuffle=True, random_seed=47, augment=False, kps_left=None, kps_right=None, joints_left=None, joints_right=None, endless=False)

Batched data generator, used for training. The sequences are split into equal-length chunks and padded as necessary.

Arguments: batch_size -- The batch size to use for training. cameras -- List of cameras, one element for each video (optional, used for semi-supervised training).

poses_3d -- List of ground-truth 3D poses, one element for each video (optional, used for supervised training).

poses_2d -- List of input 2D keypoints, one element for each video.

chunk_length -- Number of output frames to predict for each training example (usually 1).

pad -- 2D input padding to compensate for valid convolutions, per side (depends on the receptive field).

causal_shift -- Asymmetric padding offset when causal convolutions are used (usually 0 or "pad"). shuffle -- Randomly shuffle the dataset before each epoch. random_seed -- Initial seed to use for the random generator. augment -- Augment the dataset by flipping poses horizontally.

kps_left and kps_right -- List of left/right 2D keypoints if flipping is enabled.

joints_left and joints_right -- List of left/right 3D joints if flipping is enabled.

class UnchunkedGenerator[source]

UnchunkedGenerator(cameras, poses_3d, poses_2d, pad=0, causal_shift=0, augment=False, kps_left=None, kps_right=None, joints_left=None, joints_right=None)

Non-batched data generator, used for testing. Sequences are returned one at a time (i.e. batch size = 1), without chunking.

If data augmentation is enabled, the batches contain two sequences (i.e. batch size = 2),the second of which is a mirrored version of the first.

Arguments: cameras -- list of cameras, one element for each video (optional, used for semi-supervised training)

poses_3d -- list of ground-truth 3D poses, one element for each video (optional, used for supervised training)

poses_2d -- list of input 2D keypoints, one element for each video

pad -- 2D input padding to compensate for valid convolutions, per side (depends on the receptive field)

causal_shift -- asymmetric padding offset when causal convolutions are used (usually 0 or "pad")

augment -- augment the dataset by flipping poses horizontally

kps_left and kps_right -- list of left/right 2D keypoints if flipping is enabled

joints_left and joints_right -- list of left/right 3D joints if flipping is enabled