Exploiting temporal context for 3D human pose estimation in the wild: 3D poses for the Kinetics dataset
We present a bundle-adjustment-based algorithm for recovering accurate 3D human pose and meshes from monocular videos. Unlike previous algorithms which operate on single frames, we show that reconstructing a person over an entire sequence gives extra constraints that can resolve ambiguities. This is because videos often give multiple views of a person, yet the overall body shape does not change and 3D positions vary slowly. Our method improves not only on standard mocap-based datasets like Human 3.6M -- where we show quantitative improvements -- but also on challenging in-the-wild datasets such as Kinetics. Building upon our algorithm, we present a new dataset of more than 3 million frames of YouTube videos from Kinetics with automatically generated 3D poses and meshes. We show that retraining a single-frame 3D pose estimator on this data improves accuracy on both real-world and mocap data by evaluating on the 3DPW and HumanEVA datasets.READ FULL TEXT VIEW PDF
Estimating 3D poses of multiple humans in real-time is a classic but sti...
Advances in Deep Learning have recently made it possible to recover full...
Human interaction recognition is a challenging problem in computer visio...
We consider the problem of estimating human pose and trajectory by an ae...
Recovering 3D human pose from 2D joints is a highly unconstrained proble...
This paper presents a novel approach for predicting falls event in advan...
Multi-person articulated pose tracking in complex unconstrained videos i...
Exploiting temporal context for 3D human pose estimation in the wild: 3D poses for the Kinetics dataset
Understanding the 3D configuration of the human body has numerous real-life applications in robotics, augmented and virtual reality, and animation, among other fields. However, it is an inherently under-constrained problem when only a single image is available, as there are many 3D poses which project to the same 2D image. Data-driven methods to resolve this ambiguity are promising, but they are typically trained and evaluated on motion capture datasets recorded in constrained and unrealistic environments [17, 43, 29, 19].
To resolve some of the ambiguities in monocular 3D pose estimation, we exploit temporal consistency across frames of a video. The temporal dimension of ordinary videos encodes valuable information: multiple views of people are observed, where the body shape and bone lengths remain constant throughout a video, and joint positions in both 2D and 3D change slowly over time. These priors constrain the space of possible poses and thus help reduce the ambiguity of this ill-posed problem as shown in Fig. 1. Despite its value, the temporal information in mocap datasets is discarded by all current leading 3D pose estimation algorithms [20, 36, 45, 28] which use only single, ambiguous frames. Our approach incorporates temporal information through a form of bundle adjustment, a method used in multi-view geometry for estimating cameras and 3D structure of rigid scenes from image correspondences [13, 48]. We repurpose bundle adjustment to deal with non-rigid (articulated) human motion in a video sequence. In contrast to previous recurrent models for human pose , our method can jointly reason about all frames in the video, and errors made in initial frames do not accumulate over time. As illustrated in Fig. 1, the current state-of-art single frame estimation network for the SMPL model  fails on a number of frames of “in the wild” videos, such as when there is occlusion, unusual poses, poor lighting or motion blur. Our bundle adjustment method is able to correct these estimates and infer 3D human pose for these frames.
To address the lack of real-world data in 3D pose estimation, we apply our bundle adjustment framework to “in the wild” clips from the Kinetics dataset  comprised of YouTube videos, and show how we can leverage our predictions on real-world videos as a source of weak supervision to improve existing 3D pose estimation models. By encouraging temporal consistency with bundle adjustment and using YouTube videos as a source of weakly supervised data, we make the following novel contributions:
First, we show that multi-frame bundle adjustment can be specialized to human pose estimation, which improves performance on the Human 3.6M dataset over single frame estimation. Our method achieves the state-of-the-art for SMPL  models on this dataset.
We then apply our bundle adjustment method to 107 000 YouTube videos from the Kinetics dataset  and generate a large-scale dataset of 3D human poses aligned with the video frames. This dataset contains great diversity in pose, with 400 different human actions, and is available publicly111https://github.com/deepmind/Temporal-3D-Pose-Kinetics. As we are fitting SMPL body models  to the data, other information such as 2D keypoints and body-part segmentations can also be obtained automatically as done by .
By retraining the single-frame 3D pose estimator using our automatically-generated dataset, we obtain a more robust network that performs better on real-world (3DPW ) and mocap (HumanEVA ) datasets. We are thus the first paper, to our knowledge, to show how we can use masses of unlabelled real-world data to improve 3D pose estimation models.
3D human pose is typically represented in the literature as either a point cloud of 3D joint positions or the parameters of a body model. A common approach with the former representation is to “lift” 2D keypoints (either ground truth or from a 2D pose detector) to 3D. This has been recently done with neural networks[28, 57, 31] and previously using a dictionary of 3D skeletons [38, 2, 59, 54] or other priors [47, 50, 2] to constrain the problem. The point cloud representation also allows one to train a CNN to regress directly from an image (instead of 2D keypoints) to 3D joints using supervision from motion capture datasets like Human 3.6M [35, 41, 34]. However, this approach overfits to the constrained environments of lab-captured motion capture datasets and does not generalise well to real-world images. Whilst methods based on “lifting” are more robust to this domain shift, they discard valuable information from the image as they depend solely on the input 2D keypoints.
Training models with supervision from both 2D keypoints (from real-world datasets such as [25, 3, 18]) and 3D joints (from mocap datasets) has been shown to help with generalisation to real-world images [58, 40, 29, 9, 44, 45]
. However, greater success has been achieved in this scenario by fitting parametric models of human body meshes to images. Human body models, such as and , encapsulate more prior knowledge, thus reducing the ambiguity of the 3D pose estimation problem. Explicit priors such as bone length ratios remaining constant [58, 9] and limbs being symmetric  are enforced naturally by body models. Moreover, this mesh representation also enables a direct mapping to body part segmentations [23, 36, 20].
Early work used the SCAPE body model  and fitted it to images using manually annotated keypoints and silhouettes [12, 42, 6, 14]. More recent works use the SMPL model  and fit it automatically. This is done by either solving an optimisation problem to fit the model to the data [7, 23, 55, 6] or by regressing the model parameters directly using a neural network [20, 32, 36, 49]23]. Optimisation-based approaches minimise an energy function that depends on the reprojection error of the 3D joints onto 2D [7, 23], priors on joint angle and shape parameters [7, 23], and/or the discrepancy between the silhouette of the 3D model and its foreground mask in the 2D image [23, 6]. Direct regression methods, in contrast, train a neural network where the keypoint [20, 32, 36] or silhouette reprojection errors are used in its training objective [36, 32]. Kanazawa et al.  also use an adversarial loss that distinguishes between real and fake joint angles of SMPL models. This effectively acts as a joint-angle prior, allowing the authors to utilise existing ground truth SMPL model fits from  without requiring them to be paired to images.
Our approach uses the per-frame neural network model of Kanazawa et al.  as the initialisation of our optimisation problem. Despite efforts by  to train it with realistic 2D data, we show (as illustrated by Fig. 1, 2) how this model often fails on challenging real-world videos and how these errors can be corrected with bundle adjustment. Moreover, we show how we can improve the performance of this network by finetuning it using the results of our bundle adjustment as ground truth on originally difficult sequences.
We note that despite there being previous efforts to produce temporally consistent fits of the SMPL model [16, 56, 55, 37], none of these works have been able to use these results to improve a per-frame model as we have. Furthermore,  and  have not explicitly evaluated on 3D pose estimation either. Additionally, we do not assume knowledge of calibrated cameras like [16, 55].
There are also several methods which enforce temporal consistency without body models: The works of [10, 53, 24] were based on Non-Rigid Structure from Motion whilst  lifted tracked 2D keypoints into 3D. More recently, Hossain et al.  also lifted 2D keypoints using an LSTM in a sequence-to-sequence  model. However, it is difficult to retain memory over long sequences as evidenced by their model performing best with a temporal context of only five frames. Dabral et al.  use a feedforward network using the predictions of the previous 20 frames as input. Our optimisation based approach, in contrast, can consider all frames (our experiments have as many as 1175 frames) in the video to produce more globally coherent results. Furthermore, as we consider all frames jointly, rather than sequentially like [9, 15], errors do not accumulate over time.
Finally, we note that there are several works which synthesise additional training data using rendering engines [39, 51, 8]. Although this approach provides additional diversity compared to motion capture datasets, the resultant data, although fully labelled, is not photorealistic. Our approach is complementary in that we leverage unlabelled, but real-world YouTube videos from the Kinetics dataset. Concurrently to this paper,  have also used additional videos from Instagram to improve 3D pose estimation models.
We jointly optimise the parameters of a SMPL statistical body shape model  and a camera over an entire video sequence. The whole-video approach contrasts with recurrent networks such as  which are only effective using a temporal context of only five frames, and allows for better global solutions. As shown in Fig. 2, the input to our method is a sequence of video frames, 2D keypoint predictions for a single person for each frame using a state-of-art 2D pose detector  and initial SMPL parameters produced per-frame using the HMR network of . From this, our method outputs SMPL- and camera parameters for each frame in the video that are consistent with each other and reproject to the 2D keypoints. In Sec. 3.1, we briefly describe the SMPL body model that we are fitting to videos. Thereafter, in Sec. 3.2, we detail the objective function that we minimise in order to fit this model to the video. Section. 3.3 we provide details on the optimisation.
The SMPL body model  parameterises a triangulated mesh with vertices of a human body. It factorises the 3D mesh into shape parameters, and pose , where joints. The shape parameters model the variations in body proportions, height and weight. They are the coefficients of a low-dimensional shape space that was originally learned by [26, 7] from a training set of approximately 4000 registered human-body scans. The pose parameters model the deformation of the body as a result of the articulation of its internal joints. They are an axis-angle representation of the relative rotation of a joint with respect to its parent in the model’s kinematic tree. SMPL is a differentiable function that outputs a mesh and positions of joints in 3D. We denote the latter as where is the number of joints.
We optimise an objective function that considers the reprojection of 3D keypoints onto 2D, temporal consistency of SMPL parameters, 3D- and 2D-keypoints, and a prior:
We assume that we have 2D keypoint detections, with a confidence score of for the joint. This error term penalises deviations of the projections of our estimated 3D joints onto 2D over all frames in the video for all body joints:
Here, is the robust Huber error function which we favour over a squared error as it can deal better with noisy estimates that we sometimes obtain on “in-the-wild” sequences, and the superscript denotes time. is the 2D projection of the 3D joint ,
where is an orthographic projection,
is the global rotation matrix parameterised by a Rodrigues vector andare the camera parameters comprising of scale, and translation and time-step . Note that the parameters and are mapped to 3D joint positions by , and that we use a single parameter for the whole sequence as the body shape of the video’s subject remains constant.
This error, is defined as:
The temporal error on 3D joints, , and camera parameters, , encourages smooth motions that are typical of humans in videos. This is also applied on the 2D keypoint projections, , as it helps to compensate for spurious errors of the 2D keypoint detector at a particular frame in the video.
There are many 3D poses (including some that are not humanly possible) that project correctly onto the 2D keypoints while also having low temporal error (for example, having all keypoints in a flat plane actually minimises the change with time). We use a single for the entire sequence, meaning that changes in distance between 2D keypoints must be explained by pose changes, but telling which keypoint is in front of the other often remains ambiguous. Therefore, we include a prior term that encourages realistic 3D poses which match the appearance, as illustrated in Fig. 3. We use two terms: the same joint angle prior used by [7, 16, 23], and another term that robustly encourages the solution to stay close to our initialisation, , which was estimated by the single-frame HMR model. It is thus defined as:
The joint angle prior,
, is the negative log-likelihood of a Gaussian Mixture Model that was fitted to the joint angles on the CMU Mocap dataset. are the mixture model weights of 8 Gaussians [7, 16, 23], and and are the mean and covariance of the Gaussian. Multiple modes are used to represent the diverse range of poses which a human can be in. Note that though our initialisation prior (8) penalises deviations in 3D joint positions, these are functions of the SMPL parameters according to (4).
We optimise (1
) with respect to all SMPL and camera parameters, for all frames in the video, jointly using L-BFGS and Tensorflow. The solution is first initialised using the results of the per-frame, HMR neural network. In total there are parameters to be optimised for, where is the number of frames in the video. On a typical clip from Kinetics  consisting of 250 frames, the optimisation takes about 8 minutes on a standard CPU or GPU (as we did not implement customised kernels for this task), or only 2 seconds per frame. The time- and memory-efficiency of our method is thus suited for batch, offline processing of videos as done in the following section.
|2D joint projection||3D mesh rendering|
As previous works [37, 16, 55, 56, 30] have incorporated temporal information into 3D pose estimation using bundle adjustment before, we discuss the differences of our approach: First, in contrast to [37, 55, 30, 56], we use a robust Huber penalty function, and unlike previous approaches, also incorporate additional robustness into our reprojection term for Kinetics data in the next section. Second, our temporal consistency term is not only on 3D joint positions, but also on 2D joint projections and camera parameters (note that [16, 55, 30] assume known intrinsics). Third, unlike previous works, we use our bundle adjustment results to improve a per-frame model. Fourth,  optimises in the feature space of HMR, whilst we optimise SMPL- and camera-parameters directly. Additional segmentation masks for model fitting as also used by  and .
Kinetics-400  is a large-scale dataset of human actions collected from YouTube. It contains 400 or more 10s video clips for each of 400 action classes. Each clip is from a different YouTube video, and consequently the dataset contains considerable diversity in people, scenes and camera viewpoints as shown in Fig. 1,2,3. We perform bundle adjustment on this dataset to obtain real-world, weakly-supervised training data for 3D pose models. Bundle adjustment is challenging on Kinetics since there are often multiple people in a frame, shaking cameras, and people are often occluded or move off-camera. The diversity also results in more frequent failures of our multi-person 2D pose detector  and HMR .
We could handle multiple people with our formulation in Sec. 3
by first tracking a single person through the video, and applying our method to only the tracked region. However, we found this approach too sensitive to missing detections and tracking failures. Consequently, we perform tracking to initialise the solution but also augment the per-frame component of our loss function, (1
), to deal with multiple (or potentially no) people, and allow for outliers to be ignored:
Here, and are constants, and indexes the different person detections in frame . Intuitively, the “inner min” means that the loss is with respect to the current best-matching 2D pose for each frame. However, if estimates from either the 2D pose detection or the HMR model are too far from the current bundle adjustment estimates, they are considered outliers, and the loss is set to a constant (performed by the “outer min”). This means that they no longer affect the bundle adjustment procedure. There is also substantial jitter in keypoint prediction in Kinetics, due to both 2D detector inaccuracy and camera shake. This causes significant problems if a bone is close to parallel with the camera plane: in such cases, jitter in 2D keypoints can often only be explained by large changes in 3D orientation. Since we are penalising 3D changes, this encourages the overall algorithm to avoid poses where bones are near parallel with the camera plane. To mitigate this, we replace the Huber loss, , in the reprojection term with a hinge loss, , which is 0 if the error is less than 5 pixels, and behaves like the Huber loss (i.e. L1 error) otherwise. Finally, to deal with camera motion, we find it advantageous to put an upper bound on the camera translations in (5), which is equal to 10% of the image width, and we do not penalise camera scaling.
The possibility of outliers means that initialisation is important, which we do by first tracking people in 2D using our multi-person pose detector  that outputs 2D keypoints and bounding boxes for each person in the image. We select bounding boxes by computing the shortest path from the start to the end of the video: distances between detected people in subsequent frames are equal to the mean-squared-error in pixels between detected keypoints. As there may be missing person detections, we allow the shortest-path algorithm to skip frames with a penalty of pixels. Given a selected person detection for each frame, we initialise the 3D pose parameters for each frame using the estimates from HMR (for any skipped frames, we initialise using the pose from the nearest non-skipped frame).
After optimising, we measure the success of the algorithm by the total loss (1). However, we find that the loss tends to be lowest for people who aren’t moving, producing videos that are not suitable to use as training data. This problem is alleviated by normalising the total loss by the the 3D trajectory length,
To obtain training data, we process all videos in Kinetics that do not have more than detected people in a single frame, as our 2D pose detector and HMR usually fail on crowded scenes. After running bundle adjustment, we then discard any videos where is above a threshold, retaining roughly 10% of the original videos. From these videos, we keep the frames where the 2D reprojections of the 3D poses are inliers with respect to our detected keypoints (i.e. ).
After describing common experimental details in Sec. 5.1, we first analyse our bundle adjustment method on the Human 3.6M dataset in Sec. 5.2. Although this lab-captured dataset is not particularly realistic, it has metric ground truth 3D which allows us to conduct an ablation study and compare to previous work on 3D pose estimation using the SMPL model. Thereafter, in Sec. 5.3 we run our method large-scale on Kinetics videos before using these predictions in Sec. 5.4 as weakly-supervised ground truth to retrain a per-frame 3D pose estimation model as described previously in Sec. 4.
We initialise the solution to bundle adjustment using the state-of-art HMR neural network  which is input an image and outputs SMPL and orthographic camera parameters. Unless otherwise specified, we use the publicly released model that has been trained on 3D mocap datasets: Human 3.6M  and MPI-3DHP , 2D pose datasets: COCO , MPII  and LSP , and an adversarial prior that was trained on SMPL model fits using . The keypoints that we use for bundle adjustment are obtained using , which was trained on the same 2D pose data as HMR and additional data from Flickr collected by the authors.
Human 3.6M  is a popular motion capture dataset and 3D pose benchmark. Following previous work [35, 40, 20], we downsample the videos from 50fps to 10fps and evaluate on the validation set. Even so, some videos contain as many as 1175 frames, which we are still able to jointly optimise over. We report the mean per joint position error (MPJPE) , and also this error after rigid alignment of the prediction with respect to the ground truth using Procrustes Analysis  which we denote as PA-MPJPE.
|Method||MPJPE (mm)||PA-MPJPE (mm)|
|HMR initialisation ||85.8||57.5|
Table 1 shows the effect of the various terms of our objective function in (1). We initialise the solution to our bundle adjustment using the public HMR model of , and the error increases if we only use the reprojection error. As shown in Fig. 3, optimising for reprojection error alone can result in impossible poses. Note that we are using a single shape parameter across the whole video, but this alone is too weak a constraint. The addition of the prior term (6) improves results substantially: MPJPE reduces by 6.2mm compared to the HMR initialisation. Although HMR was also trained with 2D reprojection as one of its loss functions, we obtain better results by explicitly optimising for this term and using HMR as an initialisation method. Note that the 2D pose detector that we use  has not been trained on Human 3.6M at all. Our final model, which enforces temporal consistency with not only a single parameter, but smoothness of joints and camera parameters, achieves the best results, significantly improving the MPJPE error of the initial HMR model by 9.4% and PA-MPJPE by 5.6%.
The final three rows of Tab. 1 use ground truth 2D keypoints. Note that here, as the ground truth is the projection of 3D joints into the image using the known camera, we have keypoints for occluded joints too. Each term of our objective function (1) has the same effect on the overall error as before. However, the MPJPE and PA-MPJPE improve considerably more over the initialisation of HMR: Our final model reduces these errors by 26.2 and 27.2% respectively. This shows the significant benefits that we can obtain if we have knowledge of occluded keypoints since this further reduces the ambiguity in the problem.
|Method||MPJPE (mm)||PA-MPJPE (mm)|
|Lassner et al. direct fitting ||–||93.9|
|Lassner et al. optimisation ||–||80.7|
|Pavlakos et al. ||–||75.9|
|MuVS (Note uses 4 cameras) ||–||58.4|
|Total videos||106 589|
|Selected videos ()||16 720|
|Total frames in selected videos||4 141 436|
|BA inliers||3 407 686|
Finally, Tab. 2 shows we achieve the best results on Human 3.6M among other methods utilising the SMPL model. Note that Mehta et al.  also perform bundle adjustment to improve the predictions of a CNN model, obtaining an MPJPE of 80.5. However, as  do not use the SMPL model, they are not directly comparable. Additionally, although direct CNN-regression methods such as  obtain MPJPE errors of as low as 52.1, they overfit to the Human 3.6M dataset and have been shown to be significantly outperformed by SMPL-based approaches on real-world datasets such as 3DPW  by Kanazawa et al. .
Given that our algorithm can reliably improve 3D estimates, we apply our method to a large-scale video dataset to produce training data for single-frame 3D pose estimation. We used the entirety of Kinetics-400  (400+ clips of 400 action classes), after automatically selecting videos as described in Sec. 4.
Table 3 shows the statistics of the important stages in this process. We first pre-select about 16.7K videos based on the normalized bundle adjustment loss (11), resulting in 4.1M frames. The bundle adjustment matched the prediction of the 2D pose detector  for 3.4M out of 4.1M frames (we used a threshold of pixels total error to determine outliers). Visual inspection showed that the 3D pose detector was fairly reliable: for the majority of outlier frames, the person was occluded or had simply left the frame.
|Action class||Selected videos||Selected frames|
|Roller skating||259||55 941|
|Hula hooping||247||56 498|
|Salsa dancing||229||50 377|
|Spinning poi||200||42 316|
|Dancing ballet||199||44 016|
|Playing drums||193||41 318|
|Tap dancing||192||44 757|
Table 4 lists the action classes from Kinetics that were selected most often, showing that none of them appear in existing mocap datasets [17, 43, 29]. Mocap datasets only contain actions performed by a single person, in contrast to classes such as “tap dancing” and “salsa dancing” which bundle adjustment performs well on. Similarly, our method is effective on outdoor activities such as “roller skating” and “spinning poi” which cannot be recorded by mocap. There were no classes without any selected videos, but for several classes (e.g., “knitting” and “tying tie”), where a person is rarely fully visible, we only selected 1 video each. Some qualitative examples of the diversity of our dataset are shown in Fig. 4
. All experimental hyperparameters are included in the appendix.
We utilise the training data that we automatically obtained in the previous section to retrain a new HMR model from Imagenet initialisation. We use the original training data (described in Sec.5.1) too, and use a model only trained on this data as our baseline. We evaluate on the recently released 3D Poses in the Wild dataset (3DPW)  in Sec. 5.4.1, which consists of outdoor videos captured in real-world conditions, HumanEVA , a mocap dataset in Sec. 5.4.2 and Ordinal Depth  which provides a good proxy task for 3D pose esitmation on unconstrained, real-world internet images. Our network has never been trained on images from either of these datasets. To verify the effect of Kinetics training, we trained a model with all frames from our automatically-generated dataset (Kinetics 3M), and also with a random subset of 10% of the frames in our dataset (Kinetics 300K).
When retraining the HMR model on Kinetics data, we made modifications to the HMR training procedure . These are detailed in Sec. 5.4.4, where we also show that our modifications only help for training on Kinetics data, and not when using only the original training data used by HMR.
|Dataset||Original data||Original + Kinetics 300K||Original + Kinetics 3M|
|Ordinal depth ()||82.5||83.7||84.6|
This recently released dataset contains 60 clips, consisting of outdoor videos captured from a moving mobile phone and 17 IMUs attached to the subjects . The IMU data allowed the authors to accurately compute 3D poses which we use as ground truth. We evaluate on the test set comprising 24 videos, using the 14 keypoints that are common across both MS-COCO and SMPL skeletons, as also done by . We only evaluate on frames where enough of the person is visible to estimate a 3D pose for it. This is performed by discarding examples where less than 7 ground-truth 2D keypoints are visible. We compute the Procrustes-aligned error independently for each pose, and then average errors for each tracked person within each video, before finally averaging over the entire dataset (thus videos with two people count twice as much as videos with one).
Table 5 shows how using additional data from Kinetics improves results on this dataset. Training with 300K frames of Kinetics data improves the PA-MPJPE by 3.4mm, and our model trained with all 3M frames of Kinetics improves further by 5 mm over the baseline. Our Kinetics-trained model also outperforms the public HMR model  (trained by the authors) which obtains a PA-MPJPE error of 74.9. While isolated checkpoints from our reimplementation of HMR perform as well as the public model, not all do; Tab 5
computes the mean of 20 checkpoints (roughly 1500 training iterations apart) to minimise variance.
HumanEVA  is an indoor motion-capture dataset where we follow the evaluation protocol of  on the validation set. Although HumanEVA does not contain “in the wild” data, it is a dataset which our HMR model has not been trained on at all. Table 5 shows how adding additional data from our Kinetics dataset improves performance on this dataset compared to our baselines that were trained without Kinetics. Our model trained with 300K frames of Kinetics data improves the PA-MPJPE by 2.2 mm, and the model trained with 3M Kinetics frames improves further by 3.6 mm over our baseline. The public HMR model obtains a PA-MPJPE error of 83.5, which is also worse than our Kinetics-trained model.
A key challenge with 3D pose estimation in-the-wild is the lack of ground truth for people performing arbitrary, unconstrained actions in-the-wild (as typically found on images scraped from the internet). However, a suitable proxy for 3D pose estimation quality is ordinal depth [47, 34] – i.e. given two keypoints, predict the relative depth ordering by specifying which keypoint is in front of the other. This utility of this task was demonstrated by Taylor , who showed that the 3D skeleton of a person could be reconstructed perfectly if exact 2D keypoint correspondences, bone lengths and ordinal relations between keypoints were known, assuming an orthographic camera.
Although humans cannot annotate 3D pose or absolute depth, they can reliably label ordinal depth . We thus evaluate on the Ordinal Depth dataset  which added ordinal depth annotations to the MPII  and LSP  2D pose datasets of real-world internet images. We evaluate on 2606 images from the validation sets of MPII and LSP, as images from the training set were used to train HMR (we do not use any of the ordinal depth information during training). For each person, each pair of keypoints is labelled either “in front”, “behind”, or “ambiguous”. To evaluate, we compute the 3D pose for each person and then obtain ordinal depth for each pair of keypoints. We report the average accuracy, ignoring keypoint pairs labelled as ambiguous.
Table 5 shows the benefits we get for this task by training on Kinetics. Even a relatively small amount of Kinetics data provides noticeable improvements on this dataset, with further benefits from our entire dataset. As expected, training on real-world data from Kinetics helps on ordinal depth predictions of real-world images.
These experiments thus show how we can effectively use Kinetics data to improve the per-frame HMR model on multiple datasets. We also achieve greater improvements on the real-world 3DPW dataset, compared to the mocap HumanEVA dataset.
|Original data, original training||77.2||85.7|
|Original data, PA-only 3D||78.7||86.2|
|Original data, PA-only 3D, no 2D||144.6||99.2|
|Original + Kinetics data, original training||91.1||90.0|
|Original + Kinetics data, PA-only 3D, no 2D||72.2||82.1|
When training with Kinetics data, we find that it is beneficial to not use any of the original 2D data used by HMR, and thus also to not use the adversarial pose prior since it is only used on 2D pose datasets . We suspect that this is because the adversarial pose prior encourages predictions that are closer to the mean pose, and since we use HMR to initialise our bundle adjustment, our Kinetics data may also have a slight bias towards this mean pose. Applying the same prior while retraining may aggravate this problem.
We also find it’s important to train only on 3D keypoints after Procrustes alignment, rather than training directly on SMPL joint angles and absolute 3D keypoint locations. Note this means that HMR only learns to predict the camera orientation by minimizing 2D reprojection error. We suspect that this strategy is effective because Kinetics has a very large range of camera orientations, which may not match well with evaluation datasets that have less variety in camera pose.
Table 6 shows that our modifications to the HMR training procedure help only when we train with additional Kinetics data. When using the original training data, our modified training procedure does not improve results. Removing the original 2D data from training also has a large negative impact on performance. This is because the original training data has a relatively small amount of 3D supervision (Human 3.6M  and MPI-3DHP ).
We presented a bundle-adjustment algorithm to leverage the temporal context in a video in order to improve estimates of the 3D pose of a person. Furthermore, we applied this to YouTube videos from Kinetics and automatically generated a dataset which we used to improve per-frame 3D pose estimators, demonstrating how we can effectively use large amounts of unlabelled data to improve existing models.
Bundle adjustment was effective because videos are shot in a 3D world where people move slowly (relative to the camera framerate), and the person’s size and appearance remain consistent over time. If properly characterised, these constraints can give strong supervision to algorithms, which allows us to break out of the environments which motion capture devices are restricted to. We believe there is far more 3D structure to exploit, because people don’t behave in a vacuum. People act under gravity, are supported by ground planes and interact with objects. Therefore, we aim in future to use physical constraints and information about human actions to constrain poses and predict the objects that people are interacting with to estimate their affordances.
We would like to thank Jean-Baptiste Alayrac, Relja Arandjelović, João Carreira, Rohit Girdhar, Viorica Pătrăucean and Jacob Walker for valuable discussions.
Multiple View Geometry in Computer Vision. Cambridge University Press, ISBN: 0521540518, second edition, 2004.
Neural body fitting: Unifying deep learning and model-based human pose and shape estimation.In 3DV, 2018.
Self-supervised learning of motion capture.In NIPS, pages 5236–5246, 2017.
Table 7 shows the values of our bundle adjustment hyperparameters for our experiments.
|Hyperparameter||Human 3.6M ||Kinetics |
Note that the 2D joint positions, are measured in pixels, and that the largest spatial dimensions of a video frame is typically around . On the other hand, the 3D joint positions, and camera parameters are typically in the range . As the range of the 2D joint positions is higher, the values of and , are small, even though they have a significant effect on the bundle adjustment.
and are higher on Human 3.6M than they are on Kinetics. These weights are used in the prior term that encourages the bundle adjustment result to stay close to the initialisation (Eq. 8 of main paper). The initialisation that we get from HMR  is far better on Human 3.6M than on Kinetics, which is why and are higher on Human 3.6M. It is expected that HMR performs better on Human 3.6M as it has been trained with 3D supervision from this dataset.
Figure 5 visualises the distribution of Kinetics action classes in our dataset. We can see that the distribution has a fairly long tail: Our bundle adjustment method works well for a variety of object classes, including many types of dancing and various outdoor activities, where there are usually not many people in the video clip and the whole body is visible. There are also many classes for which only a handful of videos are automatically selected. These are typically classes such as “tying tie”, “bookbinding” and “knitting” where the person is usually not fully visible. Note that there are 400+ clips for each action in the Kinetics-400 dataset  that we use, and that we have always selected at least one video of each action class.
|(a) Number of clips selected per action class. For legibility, the action classes are not shown in the x axis, and the most- and least-common classes are shown below instead.|
|(b) The number of clips selected per class for the 50 most common Kinetics action classes.|
|(c) The number of clips selected per class for the 50 least common Kinetics action classes.|