Despite the fundamental role nonverbal cues play in enabling social function [1, 2], the protocol underlying this communication is poorly understood—Sapir  called it “an elaborate code that is written nowhere, known to no one, and understood by all”. Some structures of this code have been identified through observational study, such as reciprocity  or synchrony . However, systematic studies of such phenomena have remained almost entirely focused on the analysis of facial expressions, despite emerging evidence [6, 7] that facial expressions provide a fundamentally incomplete characterization of nonverbal communication. One proximal cause for this singular focus on the face is that capturing natural social interaction presents challenges that current state-of-the-art motion capture systems simply cannot address. This paper describes an approach to capture social signals in natural human interactions, presenting fundamental innovations that span capture design architecture, motion reconstruction algorithms, and a large scale dataset capturing more than 3 hours of group interaction scenes using 521 heterogeneous sensors.
There are four principal challenges in capturing social signaling between individuals in a group: (1) social interactions have to be measured over a volume sufficient to house a dynamic social group, yet subtle details of the motion where important social signals are embedded must be captured; (2) strong occlusions emerge functionally in natural social interactions (e.g., people systematically face each other while interacting, bodies are occluded by gesticulating limbs); (3) human appearance and configuration variation is immense; and (4) social signaling is sensitive to interference—for instance, attaching markers to the face or body, a pre-capture model building stage, or even instructing each individual to assume a canonical body pose during an interaction, primes the nature of subsequent interactions.
In this paper, we present a system designed to address these issues, with integrated innovations in hardware design, motion representation, and motion reconstruction. The organizing principle is that social motion capture should be performed by the consolidation of a large number of “weak” perceptual processes rather than the analysis of a few sophisticated sensors. The large number of views provide robustness to occlusions, provide precision over the capture space, and facilitate the boosting of weak 2D human pose detectors into a strong 3D skeletal tracker without any prior about the scenes and subjects. In particular, our contributions include:
1) Modularized Hardware: We present the modular design of a massively multiview capture consisting of 480 VGA cameras, 31 HD Cameras, and 10 Kinect v2 RGB+D sensors, distributed over the surface of geodesic sphere with a 5.49m diameter (sufficient to house social groups).
2) 3D Motion Reconstruction Algorithm for Interaction Capture: We present a method to automatically reconstruct full body motion of interacting multiple people. Our method does not rely on a 3D template model or any subject-specific assumption such as body shape, color, height, and body topology. Yet, our method works robustly in various challenging social interaction scenes of arbitrary number of people, producing temporally coherent time-varying body structures. Furthermore, our method is free from error accumulation and, thus, enables capture of long term group interactions (e.g., more than 10 minutes).
3) Social Interaction Dataset: We publicly share a novel dataset which is the largest in terms of the number of views (521 views), duration (3+ hours in total), and the number of subjects in the scenes (up to 8 subjects) for full body motion capture. Our dataset is distinctive from the previously presented datasets in that ours captures natural interactions of groups without controlling their behavior and appearance, and contains motions with rich social signals as shown in Figure 1 (right). The system described in this paper provides empirical data of unprecedented resolution with the promise of facilitating data-driven exploration of scientific conjectures about the communication code of social behavior. All the data and output are publicly shared on our website111 https://domedb.perception.cs.cmu.edu.
2 Related Work
2.1 Automated Group Behavior Analysis
Over the last decade, there has been increasing interest in automatically analyzing multiple people’s social interaction using multiple camera sensors. Several datasets recording unstructured social scenes are presented, where multiple people (from 5 to 14 subjects) naturally communicate without restriction in their behavior [8, 9, 10]. In contrast to the scenes captured in structured environment such as round-table meetings , the subjects in such unstructured environments show richer social signals in their body motion, locations, and orientations. However, due to the unconstrained nature, it is challenging to measure their body motion because of severe occlusions among people. Thus, the previous work in this area usually aims to get coarse measurements (e.g., quantized body/head orientation), and they rather focus on higher level social understanding from the coarse measurements, such as F-formation detection  and personality predictions [10, 8]. None of the previous work in this domain addresses reconstructing full body skeletal motion of individuals in such challenging scenarios, although rich social signals are embedded in those subtle motions.
2.2 Markerless Motion Capturing Using Multiple View Systems
In computer vision, there has been a large number of approaches to measure 3D structure and motion of dynamically moving people using multiple camera sensors. Kanade et al. pioneered the use of multi-view sensing systems to “virtualize” reality, using 51 cameras mounted on a geodesic dome of 5 meters in diameter. A number of systems were subsequently proposed to produce realtime virtualizations [13, 14, 15, 16]. Vlasic et al.  recovered detail by applying multi-view photometric stereo constraints using a system with 1200 lights on a dome and eight cameras. More recently, a multimodal multi-view stereo system fusing 53 RGB cameras and 53 infrared cameras has been proposed to reconstruct high quality 3D virtual characters .
Other methods explicitly tackle the markerless motion capture by producing 3D skeletal structures over time similar to the marker-based counterparts [19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31]. The methods deform pre-defined articulated templates of fixed topology to recover the details that were subsampled or occluded in the set of views at a time instant. These methods require an offline method to generate a rigged 3D model for each individual, and the quality of the template is important to achieve high accuracy. The template models need to be aligned at the initial frame to be tracked, and usually a predefined pose (such as a T-pose) are assumed and performed by all individuals. The methods in this area fundamentally suffer from topological changes restricted by the template model, and, similar to other tracking methods, error accumulation is a critical issue in tracking for long durations. Although the 3D template-based method shows good performance—and has become a standard in markerless motion capture approaches—the requirement of a high quality 3D template for each individual limits the practicality of the method, especially in our scenario where dozens of individuals are involved, as the method does not scale well to multiple people. Previous work is demonstrated on a single actor with few exceptions [32, 33]. For example, it is required to segment image cues per subject to track them independently as in , which becomes more complicated if a large number of people are involved, as in our scenes. It should be noted that none of the previous markerless motion capture approaches focus on capturing non-verbal social behaviors of naturally interacting multiple people.
2.3 Pose Detection Based Approach
3 Modularized Hardware Design
For social motion capture, we design a massively multiview system with heterogeneous sensors including 480 VGA cameras, 31 HD cameras, 10 Kinects. The large number of cameras at unique viewpoints provide a large volume with robustness against occlusions, and allow no restriction for view direction of the subjects. The HD views provide details for the scene. Multiple Kinects provide initial point clouds to a generate dense trajectory stream.
3.1 Structural Design
The physical frame of the studio is a variant of a face-transitive solid called a truncated pentagonal hexecontahedron. This particular structure was selected because it has among the largest number of transitive faces of any geodesic dome . The transitivity of the faces enables the modular architecture, and ensures that the structure remains easy to upgrade and customize with different panels of the same configuration. The structure has a diameter of 5.49m and a total height of 4.15m. The floor of the dome is 1.40m below the center to increase access to the edges, as shown in Figure 2. In all, the structure consists of 6 pentagonal panels, 40 hexagonal panels, and 10 trimmed base panels.
Our design was modularized so that each hexagonal panel houses a set of 24 VGA cameras. To determine the placement of the VGA cameras, we initialized their positions by tessellating the hexagon face into 24 triangles and using this initialization to define a 3-neighborhood structure shown in the bottom right illustration of Figure 2. Using this neighborhood structure and the initialization we determine the placement of the cameras over the geodesic dome by minimizing the difference in angles between all neighbors of every camera,
where is the number of panels, is the number of cameras in each panel, is the neighborhood of a camera, is a function transforming the angle on a reference panel to the -th panel. The cameras sample the span of the vertical axis of the space and sample of the horizontal axis. With this distribution, the minimum baseline between any VGA camera and its nearest three neighbors is 21.05cm.
The 31 HD cameras are installed at the center of each hexagonal panel, and 5 projectors are installed at the center of each pentagonal panel222Note that no sensors are installed on some panels (e.g., ceiling panels occluded by lights).. Additionally, a total of 10 Kinect v2 RGB+D sensors are mounted at heights of 1 and 2.6 meters, forming two rings with 5 evenly spaced sensors each. The interior and exterior of our system are shown in Figure 2.
3.2 System Architecture
Figure 3 shows the architecture of our system. The 480 cameras are arranged modularly with 24 cameras in each of 20 standard hexagonal panels on the dome. Each module in each panel is managed by a Distributed Module Controller (DMC) that triggers all cameras in the module, receives data from them, and consolidates the video for transmission to the local machine. Each individual camera is a global shutter CMOS sensor, with a fixed focal length of 4.5mm, that captures VGA () resolution images at 25Hz.
Each panel produces an uncompressed video stream at 1.47 Gbps, and thus, for the entire set of 480 cameras the data-rate is approximately 29.4 Gbps. To handle this stream, the system pipeline has been designed with a modularized communication and control structure. For each subsystem, the clock generator sends a frame counter, trigger signal, and the pixel clock signal to each DMC associated with a panel. The DMC uses this timing information to initiate and synchronize capture of all cameras within the module. Upon trigger and exposure, each of the 24 camera heads transfers back image data via the camera interconnect to the DMC, which consolidates the image data and timing from all cameras. This composite data is then transferred via optical interconnect to the module node, where it is stored locally. Each module node has dual purpose: it serves as a distributed RAID storage unit333Each module has 3 HDDs integrated as RAID-0 to have sufficient write speed without data loss, totaling 60 HDDs for 20 modules. and participates as a multi-core computational node in a cluster. All the local nodes of our system are on a local network on a gigabit switch. The acquisition is controlled via a master node that the system operator can use to control all functions of the studio.
Similar to the VGA cameras, HD cameras are modularized and each pair of cameras are connected to a local node machine via SDI cables. Each local node saves the data from two cameras to two RAID storage units respectively.
Each RGB+D sensor is connected to a dedicated capture node that is mounted on the dome exterior. To capture at rates of approximately 30 Hz, the nodes are equipped with two SSD drives each and store color, depth, and infrared frames as well as body and face detections from the Kinect SDK. A separate master node controls and coordinates the 10 capture nodes via the local network.
3.3 Temporal Calibration for Heterogeneous Sensors
Synchronizing the cameras is necessary to use geometric constraints (such as triangulation) across multiple views. In our system, we use hardware clocks to trigger cameras at the same time. Because the frame rates of the VGA and HD cameras are different (25 fps and 29.97 fps respectively) we use two separate hardware clocks to achieve shutter-level synchronization among all VGA cameras, and independently among all HD cameras. To precisely align the two time references, we record the timecode signals generated from the two clocks as a single stereo audio signal, which we then decode to obtain a precise alignment at sub-millisecond accuracy.
Time alignment with the Kinect v2 streams (RGB and depth) is achieved with a small hardware modification: each Kinect’s microphone array is rewired to instead record an LTC timecode signal444As a result of this modification, microphone output on the Kinects is therefore discarded. More details about this hardware modification are available upon request.. This timecode signal is the same that is produced by the genlock and timecode generator used to synchronize the HD cameras, and is distributed to each Kinect via a distribution amplifier. We process the Kinect audio to decode the LTC timecode, yielding temporal alignment between the recorded Kinect data—which is timestamped by the capture API for accurate relative timing between color, depth, and audio frames—and the HD video frames. Empirically, we have confirmed the temporal alignment obtained by this method to be of at least millisecond accuracy.
3.4 Spatial Calibration
We use Structure from Motion (SfM) to calibrate all of the 521 cameras. To easily generate feature points for SfM, five projectors are also installed on the geodesic dome. For calibration, they project a random pattern on a white structure (we use a portable white tent), and multiple scenes (typically three) are captured by moving the structure within the dome. We perform SfM for each scene separately and perform a bundle adjustment by merging all the matches from each scene. We use the VisualSfM software  with 1 distortion parameter to produce an initial estimate and a set of candidate correspondences, and subsequently run our own bundle adjustment implementation with 5 distortion parameters for the final refinement. The computation time is about 12 hours with 6 scenes (521 images for each) using a 6 core machine. In this calibration process, we only use the color cameras of Kinects. We additionally calibrate the transformation between the color and depth sensor for each Kinect with a standard checkerboard pattern, placing all cameras in alignment within a global coordinate frame.
|-th 2D skeleton detection in a camera view|
|-th joint of -th 2D skeleton in a camera view|
|2D score map of -th joint of th skeleton in view|
|Merged score map of -th joint of all skeletons in view|
|3D score map for the -th joint|
|Node proposals for the -th joint|
|Part proposals for the part connecting nodes|
|Skeletal proposals connecting multiple part proposals|
|Skeletal trajectory proposals, associated through time|
|Part trajectory proposals for the connecting nodes|
|3D Patch Trajectory Stream,|
|A subset of associated to|
4 Method Overview and Notation
Our algorithm is composed of two major stages. The first stage takes, as input, images from multiple views at a time instance (calibrated and synchronized), and produces 3D body skeletal proposals for multiple human subjects. The second stage further refines the output of the first stage by using a dense 3D patch trajectory stream , and produces temporally stable 3D skeletons and an associated set of labeled 3D patch trajectories for each body part, describing subtle surface motions.
In the first stage, a 2D pose detector  is computed independently on all 480 VGA views at each time instant , generating detection score maps for each body joint (see Fig. 4b). The 2D score maps for each body joint are combined into a 3D score map by projecting a grid of voxels onto the 2D score maps and computing an average 3D score at each voxel (subsection 5.1).
Our approach then generates several levels of proposals, as shown in Figure 4. A set of node proposals for each joint is generated by non-maxima suppression of the 3D score map , where the -th node proposal is a putative 3D position of that anatomical landmark. Similarly, the set of part proposals is denoted by , where and are joints and is the set of body parts or bones composing a skeleton hierarchy. The -th part proposal, , is a putative body part connecting two node proposals, and , where the index enumerates all possible combinations of and . As the output of the first stage, our algorithm produces skeletal proposals; we refer to the -th proposal as . A skeletal proposal is generated by finding an optimal combination of part proposals using a dynamic programming method under the score function defined in subsection 5.3. Here, we abuse the notation to have refer to the optimally assigned part of skeleton (the superscript is understood to be the optimal mapping, from context). After reconstructing skeletal proposals at each time independently, we associate skeletons from the same identities across time and generate skeletal trajectory proposals , where is a part trajectory proposal, a moving part across time, with similarly overloaded to denote the optimal associations determined in each frame .
In the second stage, we refine the skeletal trajectory proposals generated in the first stage using dense 3D patch trajectories . To produce evidence of the motion of different anatomical landmarks, we compute a set of dense 3D trajectories , which we refer to as a 3D patch trajectory stream, by tracking each 3D patch independently. Each patch trajectory is initiated at an arbitrary time (every 20th frame in our results), and tracked for an arbitrary duration (30 frames backward-forward in our results) using the method of Joo et al. . Our method associates a part trajectory with a set of patch trajectories out of , and these trajectories determine rigid transformations, , between any time to for this part. These labeled 3D trajectories associated to each part provide surface deformation cues and also play a role in refining the quality by reducing motion jitter, filling missing parts, and detecting erroneous parts.
5 The First Stage: Skeletal Proposals Generation
Our algorithm integrates 2D pose detections across the many views of our massively multiview system, fusing simple 2D cues to estimate 3D skeletal poses at each time instance. While detections in any single view may be incomplete or inaccurate—typically due to occlusions—we find that aggregating these cues across many views yields very stable results. Our method is simple, yet robust thanks to the large number of views. In contrast, prior marker-less motion capture methods are typically “model-dependent”, requiring a 3D template model to constrain shape deformations, a motion model to constrain temporal deformations, and a relatively complex energy function minimization that trades off each of these priors (e.g., [19, 31, 40]). Our method in this stage is essentially based on triangulating detections at a single time instance, and, thus, does not suffer from error accumulation or drift. It does not require a 3D template model, prior assumptions about the subject or the motion, or an initial alignment for tracking. In this section, we describe how the proposals are generated and built up from 2D cues.
5.1 3D Node Score Map and Node Proposals
A single-view 2D pose detector is computed on all VGA views at each time instant, and is used to generate 2D pose detections and per-joint score maps in each image. Because the first stage of our method is performed at each time independently, we will consider a fixed time instant , and drop the time variable for clarity. We use the detector of Wei et al.  without additional training. The method of  requires bounding box proposals for each human body as initialization, thus, we first apply a person detector similar to R-CNN , and run the pose detector on the detected person proposals represented as bounding boxes. Each 2D skeleton detection in a camera view is denoted by , and is composed of 15 anatomical landmarks or nodes (3 for the head/torso and 12 for the limbs), also referred to as joints555We modify the skeleton hierarchy of  to have an explicit torso bone, by taking the center of the two hip nodes as a body center node.. The position of the -th node of the -th person detection is denoted by . The method of  also provides a score map representing the per-pixel detection confidence for each node , which we denote as , where indexes 2D image space. We also compute a merged score map by taking the maximum across all person detections at each pixel, . Merged score maps of example views are shown in Figure 5.
To combine 2D node score maps from multiple views into 3D, we generate a 3D score map for each node using a spatial voting method. We first index the 3D working space into a voxel grid (4cm in our implementation), and compute the node-likelihood score of each voxel by projecting the center of the voxel to all views and taking the average of the 2D scores at the projected locations. The 3D score map for a node at the 3D position is defined as
where denotes projection into camera , is the set of cameras where the 3D location is visible, and is the cardinality of the set. Note that the 3D score map for each node is computed separately, producing fifteen 3D score maps at each time instant.
From the 3D score map for each node at each time instance, we perform Non-Maxima Suppression (NMS), and keep all the candidates above a fixed threshold (we use ). The results are shown in the Figure 4c, and the same results color-coded by the node scores are shown in Figure 6. Each node proposal, denoted as for the -th proposal for node , is a putative candidate for the -th anatomical landmark of a participant.
5.2 Part Proposals
Given the generated node proposals, we infer part proposals by estimating connectivity between each pair of nodes that make up a possible body part. The 2D detector  uses appearance information during the inference, and, thus, the result tends to preserve connectivity information (e.g., left knee is connected to the left foot of the same person). Our approach fuses them by voting 2D connectivity into 3D. More specifically, we define a connectivity score between a pair of node proposals by projecting them onto all views, and checking in how many views they are actually connected, i.e., both nodes belong to the same person detection. Formally, the connectivity score of a part between two node proposals , where , is defined as
Here, and are the projections of the two nodes of in view , and is the set of cameras where the 3D part is visible. Intuitively, the part score represents the average connectivity score across all views from all potentially corresponding 2D person detections. Because we do not know the correspondence from 3D parts to 2D person detections, we take the maximum score across all possible detections in each view. Assuming that the projected part corresponds to the -th person detection in camera , the part connectivity score is defined as the average score of the projected nodes, denoted by . The delta function additionally ensures that is nonzero only if both projected node locations have a sufficiently high score for the same detection (i.e., both nodes are detected as part of a single person). An example of computed part scores is shown in Figure 6.
5.3 Generating Skeletal Proposals by Dynamic Programming
Our method generates skeleton proposals by piecing together the part proposals. Since each skeleton is a tree structure, this can be computed efficiently using Dynamic Programming (DP)—but only for a single person. Therefore, we use DP to greedily find 3D skeletons which maximize the sum of part scores,
A skeleton is given by the mapping , where the J-tuple determines the assignment of node proposals for each joint in the body. After picking the highest scoring skeleton , the assigned nodes are removed from the pool of available node proposals and we run DP again to find the next highest scoring skeleton, and so on until all possible skeletons are found.
One option here would be to threshold the skeleton scores at some minimum value to determine valid detections. However, we can do better: each 3D skeleton should be supported by 2D detections, and each 2D detection can correspond to only a single 3D skeleton. This observation is important because the voting used to generate 3D node proposals assigns equal score to all voxels along the line of sight of each 2D detection (Sect. 5.1), and, similarly, the over detections in the part score makes an overestimate.
To avoid this form of double counting, our method places each 3D node in skeleton in correspondence with the closest 2D joint detection in each view. For each 3D node , we create a set of correspondences with elements such that the distance is the minimum across all detections in view and smaller than px. Once a 2D correspondence is established, we remove it from the set of available 2D detections, and, as above, this is performed greedily in order of decreasing skeleton score . Skeletons where the head node has fewer than two correspondences are discarded, i.e., if for the head.
We additionally use the set of correspondences to refine the 3D node locations by minimizing reprojection error. This overcomes the discretization error introduced by the voxel grid resolution. The final 3D node location is then
The output of the algorithm described in this section is 3D skeletal proposals reconstructed independently at each time instance. After performing this process on all frames, our method associates skeletons from the same identity across time by simply considering spatial distance of the head node. That is, for a reconstructed at time , we find a corresponding skeleton at with the closest head node location from within a threshold. To be somewhat robust to missing skeleton detections, our method associates across a window of time. If there is no corresponding skeleton at time , we also consider the next time and find a corresponding skeleton.
This first stage of our method is performed without considering any temporal cues. The advantages of this are that the method can easily handle a varying number of people, there is no need to impose priors on the motion or skeletons, and the bulk of the computation is easily parallelized across frames. In many cases, we find that the results from the first stage are already sufficient for many applications. However, the results exhibit some jitter—especially for complex scenes with limited views per person—and missed or noisy detections do not benefit from evidence found in adjacent frames. We address these issues in the second stage of our method.
6 The Second Stage: Temporal Refinement and Trajectory Stream Labeling
The per-frame skeletal proposals from the first stage can be improved by using temporal coherence. We use motion cues from a 3D patch trajectory stream: dense 3D point tracks computed by the method of Joo et al. . We find an association between each part trajectory proposal and a subset of the patches in the trajectory stream, and use it to reduce motion jitter, remove false detections, and fill in missing detections. The resulting labeled patch trajectories also capture rich motion information representing the subtle deformations of the surface for each body part (see Fig. 4f).
6.1 Patch Trajectory Stream Reconstruction
We can only observe surface motions, not the true motion of the underlying skeleton, so it is not immediately apparent how best to enforce temporal consistency in the motion of body parts. Clothing in particular makes the relationship between surface motion and body parts difficult to model. To keep the use of priors and models to a minimum, we therefore choose to measure surface motion independently from the underlying skeletal motion and postpone all decisions about part-to-surface associations.
To represent surface motion, we use the method of  to track a dense 3D patch cloud—a set of points with corresponding surface normal and a small spatial extent, representing the surface locally—and estimate the motion of each of these patches. Instead of generating the initial patches to track using SIFT matching and triangulation (as in ), we use the depth maps from our 10 RGB+D sensors to generate an initial set of 3D patches. For a single frame, a dense 3D point cloud is first generated from the depth maps, and planar local patches centered on each point are initialized. The size of patches is manually determined by considering image resolution and fixed for the entire processes at 6cm
6cm. To find the normal of each patch, we apply Singular Value Decomposition (SVD) to the coordinates of points within a neighborhood (determined by Euclidean distance from the center point with the patch size as a threshold), and the least principal axis is selected as the normal direction. The sign of the normal is disambiguated by considering camera visibility.
The remainder of the algorithm (3D patch tracking) is as described in . As a brief overview, a patch is represented by a triplet points (the center point, and two orthogonal points on the patch plane), and it is tracked by projecting the triplet points on all views where the target patch is visible. Optical flow tracking is performed in 2D on each point, and the tracked 2D flows are triangulated into 3D. The core idea to fully leverage a large number of views is to reason about the time-varying camera visibility of each patch. The visibility is optimally estimated in a MAP framework that combines photometric consistency, motion consistency, and visibility priors, see  for more details. For our results, we initialize a 3D patch cloud every 20th frame, and track them backward and forward for 30 frames in each direction. As output, we obtain a dense 3D patch trajectory stream, , where each is the time-varying position of a tracked patch.
6.2 Associating Part Trajectory Proposals and Trajectory Stream
Part trajectory proposals represent the moving body parts of a single person, and are given by the optimal assignment used to generate skeletal trajectory proposals. These part trajectories lack temporal coherence because they are reconstructed independently in each frame. However, the trajectory streams provide evidence of the motion of each limb, and can be used to refine the motion of each body part. We therefore find an association between each part trajectory proposal and a subset of patch trajectories. This can be seen as a semantic labeling of the patch trajectory stream with the corresponding body parts (see Fig.4f).
Before performing this association, we first remove erroneous part detections which can readily be identified as outliers. We find that a simple yet robust method is to use the depth maps from the multiple RGB+D sensors. At any time instant, a part can be considered as an outlier if it isoutside of every surface in the dense point cloud. We simply test this by checking whether a part proposal is in front of the measured depth in any view, and mark it as erroneous if it is. This is a necessary but not sufficient condition because we test this from only the 10 available depth map views. However, we find that this method works well in practice and is efficient to implement. After identifying these outliers, we remove and treat them as missing data. Then, we can assume that this filtered part trajectory only suffers from relatively small jitter and occasionally missing data.
We associate a set of patch trajectories with a filtered part trajectory proposal if they move rigidly and the patch normal is a match. Intuitively, the part should be located inside the body surface, and, thus, a vector from the closest point on the part to the patch center should have a similar direction as the patch normal—their inner product should be positive. For a part trajectory proposal, we only consider patches for which the normal satisfies this criterion for the entire duration of the patch trajectory. As additional criteria, we compute a measure of rigidity between a patch trajectory and a part trajectory proposal. We define this as the difference between the minimum and maximum distance between them across all framesin which they overlap:
where is the orthogonal distance between the patch center and the line segment of the body part, i.e.,
Here, the set of time instants satisfies that both the patch trajectory and part trajectory streams are valid, and only patch trajectories for which at some time are considered. Intuitively, this cost approximates how rigidly they move together over time, going to zero for completely rigid motion. Each part trajectory is then associated with a set of patch trajectories , for which the rigidity cost is less than a threshold, i.e., . If a patch trajectory is selected by multiple body parts (e.g., a static scene as an extreme case), the trajectory is associated with the body part with minimum distance. An example of this labeling is shown in Figure 4f.
6.3 Motion Refinement by Associated Patch Trajectories
From the set of patch trajectories associated to the part trajectory proposal , we can compute the rigid transform between subsequent time instances from to , , and, progressively, to any frame by concatenating transformations between subsequent frames, so that represents the propagated part from time to . Using the transformation it is possible to propagate a body part’s position to other time instants. Our method uses the propagated parts to reduce jitter and fill in missing holes by averaging multiple part locations propagated from different time instances. For a target time , we can produce multiple proposals for the same part, including the proposal from the first stage of our method and propagated parts using the estimated transformations, creating a set
If there are elements in this set, we take the average. If the set is empty due to consistently severe occlusions, we determine that the part at time is still missing. In practice, we use 1. This procedure can also be iterated multiple times (including patch trajectory re-association) to fill in missing parts that are further than frames from any part proposal. We iterate this refinement until no more missing parts can be filled. After refinement, a node connected to multiple body parts can have different locations corresponding to each of the averaged parts, and we simply take the average to determine the final node locations. It should be noted that our method is different from temporal smoothing (e.g., ). Instead, we use an actual measurement of 3D motion rather than impose a motion prior, which prevents over-smoothing even after several iterations.
We quantitatively and qualitatively evaluate our method on various sequences captured in the Panoptic Studio. Our dataset includes diverse social games performed by multiple people. In the quantitative evaluation, we empirically show how the large number of views solves the challenging interaction capture problem; we compare performance using varying number of cameras on the scenes with different number of people. In the qualitative evaluation, we demonstrate the “model-free” advantage of our method by showing compelling motion reconstruction results on subjects of diverse appearance, body shapes, and body sizes.
7.1 Dataset and Capture Procedures
We captured a group of people engaged in social interactions using the Panoptic Studio666Some sequences were captured with fewer than the full set of cameras due to hardware failures during capture.. To evoke natural interactions, we involved participants in various games: Ultimatum, Mafia, Haggling, and 007-Bang Game. The first two games are used in experimental economics and psychology to study conflict and cooperation, and the latter two games also induce a variety of rich non-verbal signals in participants. Example scenes of each game are shown in Figure 7. Refer to the supplementary material for descriptions of the games and capture procedures. In our captures, subjects were informed of the rules of the game but were otherwise not instructed about how to behave, nor was their clothing or appearance controlled. They were also not initially aware of our research goals to avoid potential biases in their gestures777The majority of the sequences are captured with people randomly recruited from a university campus; some sequences were captured for testing purposes and feature researchers with knowledge of the project. Those sequences are marked in our dataset website.. The scenes in our dataset contain various natural motions which may commonly occur in the interactions of daily life, as shown in Figure 1 and 11.
To additionally demonstrate the performance of our system and methods, we capture other challenging sequences, including a group of 8 seated people participating in a discussion (meeting sequence), a mother and a toddler at play (toddler sequence), musical performances with severe occlusions due to the instruments (drummer and cellist), and a sequence featuring various fast motions and challenging postures (dancer).
In aggregate, the dataset contains about 198 minutes (297K frames) of videos, for a total of about 154 million images. Our dataset is summarized in the supplementary material.
The main distinguishing features of this collection compared to previous markerless motion capture datasets are: (1) natural interactions in the scenes showing rich and subtle non-verbal cues, (2) social groups of up to 8 interacting people, and (3) coverage by a large number of views (up to 521). We make all the data available on our website, including all synchronized camera feeds, calibration, 3D pose reconstruction results, and 3D trajectory streams: https://domedb.perception.cs.cmu.edu.
Performance evaluation using Probability of Correct Keypoint (PCK) metric for varying number and type of cameras on160422 ultimatum1. We use the result of 480 VGA cameras after manually excluding outliers as ground truth. The X-axis of each graph represents thresholds, and the Y-axis represents accuracy by the thresholds. Each graph is generated for scenes with a different number of people. The results demonstrate that more views (rather than higher resolution) are beneficial to improve accuracy, and the distinction is more noticeable if the scene contains more people.
|Stage 1||(5.1) 2D pose detection (1 GPU)||40 h|
|(5.1-5.2) Node and part proposal recon. (1 GPU)||4 h|
|(5.3) Skeletal proposal reconstruction by DP||3 m|
|(5.3) Skeletal proposal optimization||11 m|
|Stage 2||(6.1) Trajectory stream recon. (400 CPU cores)||35 h|
|(6.2) Trajectory association and refinement||5 m|
7.2 Processing Time
The time to process one minute of data (1500 frames) of 480 VGA views is summarized in Table II. We use different computing devices for procedures. A machine with Intel i7 3.4GHz processor and 32GB RAM is used for general processing, a GTX Titan X is used for GPU computation, and a cluster server with 400 CPU cores (2.2GHz per processor) is used for trajectory stream reconstruction.
In the first stage, most of the time is spent in running the 2D body pose detector. The detector runs at about 5 frames per second on a single GPU, but due to the large number of views (720K images per minute), processing a minute of video takes about 40 hours. In practice, we use multiple GPUs to process multiple images in parallel. In the second stage, the main computational bottleneck is the trajectory stream generation. Although they are tracked in parallel, the running time is long due to the large number of patches at each time. In our experiments, on average 15K patches are tracked per person.
|Skel. #||Node #||Outlier Node #||Node Acc.||Skel. Acc.|
7.3 Performance Analysis of The Panoptic Studio
We quantitatively evaluate the performance of our method for the 160226 ultimatum1 sequence by varying the number and type of cameras. We choose the ultimatum sequence because it captures varying number of people (from two to seven people) in each time period, which is suitable to study the relation between scene complexity and the number of cameras needed to reach a desired performance. In this experiment, we only evaluate the first stage of our method.
Performance using all VGA cameras
: We first quantify the performance of our system when all 480 VGA cameras are used. Due to the absence of ground truth data, we manually annotate the correctness of the reconstructed 3D skeletons by verifying their projections in multiple 2D views. We labeled a 3D joint node as an outlier if the node is projected outside of the corresponding limb or far from the presumable target joint in multiple 2D views. We exclude the period where people come in and out of the system, since at the moment body parts lie on the edge of our system’s working volume. The result of the quantitative evaluation for the 15 min. of sequence is summarized in TableIII. There are 12 sessions in the sequence, and 61 temporally associated skeletal structures are reconstructed. Among about 1.2 million body joints, about 8.7K nodes are determined as outliers or missed (rejected by thresholds of our system), showing 99.29% accuracy in node reconstruction. And, 93.55% out of about 82K 3D skeletons are correctly reconstructed without any incorrect joints. The majority of the failures are caused by insufficient visibility of the target part. An example is the pose holding hands behind one’s back near the wall of the system as shown in Figure 10 (left). Although the hands are visible from few cameras, they are too close to be detected by the pose detector. Interestingly, our method still reconstructs the hands using the “guessed” 2D locations from 2D pose detector in frontal views, although the accuracy is limited as shown in Figure 10.
Comparison with varying number of cameras
: To evaluate the impact of the number of views, we perform our method using varying number of cameras. The cameras are uniformly sampled (except the 19 VGA camera case explained later); i.e., we sample the next camera as the one furthest from all the already sampled cameras, and, thus, the selected cameras are always a subset of the set of the larger number of cameras. To quantify the results, we treat the result with 480 VGA cameras as ground truth after excluding the manually annotated outliers. For evaluation, we only use every tenth frame to reduce computation time. As an evaluation metric, we use the PCK (Probability of Correct Keypoint) metric, which is commonly used to evaluate 2D pose detectors. Here, we use 3D distance in physical scale (cm) obtained from calibration data for the threshold of PCK, in contrast to the 2D ratio of torso/head as in 2D pose detection cases . Figure 8 shows the PCK accuracy by varying the camera number on the scenes with different number of people. In all the results, we find that using a larger number of views is beneficial. If the scene is simpler (e.g., the case with two or three people), we observe that the results with a smaller number of cameras, e.g., 160 cameras, show a similar performance with 480 cameras. However, if the scene becomes more complicated, e.g., seven people, we see clearer gaps according to the camera numbers. This results can be meaningfully used to design a multiple camera system to determine the required number of cameras given a desired group size. For example, assuming that the target scenes have about five people, we forecast that a system with 80 cameras can reach about 94% of accuracy with a 2cm threshold.
Comparison with varying resolutions: As an additional evaluation, we perform a similar experiment for different camera resolutions using the multiple HD cameras installed in our system. Among 31 HD cameras, we use 19 HD cameras installed on the same panels with VGA cameras888We have 20 HD cameras installed on the same panels with VGAs, but we missed 1 HD camera due to the hardware failure during the capture.. To compose similar viewpoints, we choose the closest VGA cameras from the selected 19 HDs. Additionally, we generate 19 QVGA inputs (320
240 resolution) by resizing the selected VGA videos. Because the HD cameras are not perfectly synchronized with VGAs, we interpolate the result from HDs into the VGA time domain using the hardware sync data. The performance of a same number of HDs, VGAs, and QVGAs is shown as dashed lines in Figure8. The result shows that the performance differences among them is marginal, although HD views have about 7 time more pixels than VGAs and about 27 times more pixels than QVGAs. The result demonstrates that the pose reconstruction performance of our method is marginally affected by the resolution changes compared to the changes by the number of views. Note that the integral of number of pixels in the 19 HD views are equivalent to about 128 VGA views, and the result clearly shows that it is more advantageous to have more unique camera views rather than having higher resolutions, given a fixed pixel budget. The main reason underlying this finding is that dealing with occlusions is more crucial in interaction capture scenarios, and, in particular, higher resolution is not beneficial in our method, since 2D joint localization accuracy is still limited by the 2D pose detector.
Comparison to multiple Kinects: We also compare our results with the result of multiple Kinects. Since Kinect with its accompanying SDK is one of the most commonly used sensors for markerless motion capture in various communities, using multiple Kinects can be considered as an option to handle severe occlusions for interaction capture. However, how to fuse multiple Kinect cues is not straightforward, and, thus, we naively fuse them as follows. We first generate 3D skeletal proposals from all individual Kinects, and simply find the best candidate closest to our ground truth data in Euclidean space, assuming that an Oracle chooses the best one given the GT data. This can be considered an upper bound of a naive multiple Kinects method. Since the keypoint locations of the Kinects are not identical to the skeletons of our method, for a fair comparison, we adjust the Kinect skeletons by finding an offset vector from each Kinect node toward our node of GT’s skeleton in a person-centric coordinate system. As shown in Figure 8, the results of the Oracle Kinects is limited, showing less than 80% accuracy at a 5cm threshold.
7.4 Refinement by Trajectory Stream
We compare the performance improvement of our refinement method (the second stage) over the output of the first stage. We choose a challenging scene in 160226 mafia2 sequence where the first stage of our method shows failures due to the erroneous 2D pose detection results. To see the performance change, we plot the X coordinate of the most erroneous node (right wrist of a subject) as shown in Figure 9. The frames denoted as gray regions are the time when the nodes are missed due to the consistent 2D pose detector failures. It is shown that our refinement method can recover the missing parts and also noticeably reduce the motion jitter for the unstable frames. Note that our refinement method is not just smoothing but based on the temporal transformation measured by a dense trajectory stream. Thus, it does not suffer from over-smoothing, even after several iterations.
7.5 Comparison with The Method of Joo et al. 
We compare the presented method to the method introduced in . In , due to the relatively unreliable 2D pose detection cue , the motion cues from trajectory stream play a core role to reconstruct valid parts. The method, however, tends to fail in regions where the trajectory stream is unavailable (e.g., the texture-less dark body parts). The method presented in this paper is composed of two sequential stages using an advanced 2D pose detector , and Stage 1 is still applicable in the region where trajectory stream is unavailable. Table IV shows the comparison between two methods on the sequence 150129 007-Bang introduced in , where the accuracy is computed by manually annotating outliers. The major failures of  occur on the texture-less leg parts, or fast motion with motion blur when the trajectory stream is sparse and inaccurate. Refer to the supplementary video for the qualitative comparison.
7.6 Qualitative Evaluation
We apply our method, producing about 3 hours of interaction capture results. Due to the computation time, the second stage of our method is applied on a subset of the dataset; yet the first stage of our method is applied on all the sequences999Results will be updated in our website, as they are processed.. Example results are shown in Figure 11. Our result is fully automatic—given video streams and calibration data, our method generates temporally associated 3D skeletons (and labeled patch trajectory stream of each body part if the second stage is applied) for each individual without any human supervision. Refer to the supplementary videos and the live 3D viewer on our website.
Group interaction capture: Our method produces motion capture results on various social game scenarios performed by multiple people (up to 8 people). The number of subjects in the scenes is automatically determined by our method, and allowed to vary during the capture. The reconstructed results contain motions that frequently occur during communication, such as crossed-arms-on-chest, resting-chin-on-hand, mouth-guard, hands-on-back, hands-on-waist, and so on. In spite of their importance as non-verbal signals transmitting a variety of messages, such motions get little attention by prior work. In particular, severe topological changes and self-occlusions make it hard to apply 3D template-based motion capture approaches. Our method reconstructs the motion of such challenging scenes by fusing 2D pose detection cues and motion cues using a larger number of views, and demonstrates a compelling performance for social interaction capture.
Robustness to appearance, body sizes, and topological changes
: Our results demonstrate robustness to subjects of diverse appearance, body types, and sizes. As mentioned, subjects’ clothing is not controlled, and the captured sequences contain people with various clothing such as black pants, thick padding jumpers, hoodies, short pants, scarfs, and so on. During the discussions, they also unconsciously adjust their clothing, for example by rolling up sleeves or relocating scarfs. The height of subjects varies from a two-year old toddler to adults more than 190 cm tall. The “model-free” nature of our method enables us to reconstruct their motions without changing any parameter. It demonstrates a major advantage of our system for social behavior studies in that it can be easily applied for captures at scale, without any laborious template generation or initial alignment step. Especially, the toddler scene is challenging to “model-heavy” approaches, since instructing young children to be stationary to generate their template models (e.g., laser scanning) may not be practical.
Other interesting scenes: We also demonstrate the performance of our method on other atypical motion capture scenarios including musical performances (drummer and cellist) and dancer sequences. Motion capture for musical performance is a good application for markerless motion capture, because markers may interfere with their functional movements during the capture. Although the scenes are challenging due to the severe occlusions by musical instruments, our method shows good performance in reconstructing the performer’s subtle motions (e.g., the vibrato motion in the cellist sequences).
On the other hand, the dancer sequences contain fast motion and unusual poses. Due to failures in reconstructing the trajectory stream for the extremely fast movement compared to our relatively low frame rate cameras (25 Hz), we only apply the first stage of our method. Separating reconstruction (Stage 1) from temporal refinement (Stage 2) is advantageous in this case, because the first stage, based on per-frame reconstruction, is not affected by motion magnitude and free from error accumulation. We can optionally apply temporal refinement (Stage 2) based on the quality of trajectory stream to further refine the results. We find that, however, in a few extremely unusual poses our method becomes unstable due to consistent 2D pose detection failures, which will be discussed in subsection 8.1.
We present the Panoptic Studio and an interaction capture method that leverages a large number of views. To demonstrate the performance of our method, we collect a large scale social interaction dataset, and produce compelling motion capture results on it. In particular, we empirically find that having a larger number of views is more beneficial than having a higher resolution of views for social interaction capture. Our quantitative comparison on various number and type of cameras can be used as a meaningful resource to design follow-up multiview systems to estimate the required number of views to achieve a desired accuracy. Our method also demonstrates that highly-occluded social motion capture is possible by boosting 2D pose detection cues and motion cues in a larger number of views, without using any heavy prior or template model. Our method shows its advantages in the social interaction capture scenario by reconstructing subjects of diverse appearance, body sizes, and body topology for a long term without error accumulation issue.
A limitation of our method is the dependency on a 2D pose detection method. State-of-the-art pose detectors are weak in detecting unusual poses and closely located people (as shown in Fig. 10). We also find that the pose detector sometimes gets confused in distinguishing left-right limbs (as shown in the center of Figure 10). Although our method can overcome these issues by fusing cues across views via spatial voting and across time via associating trajectory streams, if the 2D body pose detectors fail consistently, our method is unable to recover. The second limitation is the long computation time to process the large number of views. However, depending on the application, the computation time can be greatly reduced by using a smaller number of cameras with a trade-off in accuracy (see Fig. 8).
In terms of the hardware design, we also find two limitations which should be reconsidered for follow-up research. The first is the incompatible frame rates among heterogeneous sensors, especially between HD cameras and VGA cameras, which makes it hard to fuse them for 3D reconstruction. Due to this reason, our method currently uses VGA cameras only, but we expect that this issue can be dealt with by interpolating cues in the common time domain, because all the sensors are temporally aligned in millisecond level. The second issue is that all the camera views mainly focus on the center of the dome and, thus, fewer views are available at the edges of the capture volume. Such design is ideal given the assumption that subjects are located at the center of the system, but we observe that sometimes people tend to stand near the walls during social interactions. An alternative direction would be to make cameras focus on random locations so that view coverage can be uniformly spread throughout the working volume.
8.2 Future Work
There are various future directions expanding our system and outputs. First, analyzing human social behaviors using the measured social signals of our system is an interesting direction, which will facilitate social behavior understanding in a data-driven manner. Second, our interaction capture outputs can be used as labeled data to train new 2D detectors. By projecting the skeletal reconstruction outputs on all 521 views, our current dataset generates 153 million pose data in diverse views. Although the appearance diversity of the scenes would be limited compared to internet photos, our dataset is still meaningful in that: (1) it captures multiple interacting people showing severe inter-occlusions in the scenes; (2) it has annotations for entire video frames which is the key to study temporal relation of poses; (3) the scenes are taken by 521 diverse view points compared to the biased views of usual portrait photos (e.g., frontal views or side views). This type of labeled data would be hard to obtain by manual annotations. Lastly, a similar massively multiview approach can be applied to reconstruct 3D faces. This can be done by substituting the 2D body pose detector with a 2D face landmark detector in our method.
-  R. Birdwhistell, “Kinesics and context: Essays on body motion communication,” University of Pennsylvania Press, 1970.
-  J. S. Philpott, “The relative contribution to meaning of verbal and nonverbal channels of communication,” Unpublished master’s thesis, University of Nebraska, 1983.
-  E. Sapir, “The unconscious patterning of behavior in society,” Selected Writings of Edward Sapir in Language, Culture, and Personality, 1949.
-  T. B. Brazelton, B. Koslowski, and M. Main, “The origins of reciprocity: The early mother-infant interaction,” Oxford, England: Wiley-Interscience, 1974.
-  W. S. Condon and L. W. Sander, “Synchrony demonstrated between movements of the neonate and adult speech,” Child development, 1974.
-  H. K. M. Meeren, C. C. R. J. van Heijnsbergen, and B. de Gelder, “Rapid perceptual integration of facial expression and emotional body language,” Proceedings of the National Academy of Sciences of the United States of America, 2005.
-  H. Aviezer, Y. Trope, and A. Todorov, “Body cues, not facial expressions, discriminate between intense positive and negative emotions.” Science, 2012.
-  G. Zen, B. Lepri, E. Ricci, and O. Lanz, “Space speaks: towards socially and personality aware visual surveillance,” ACM International Workshop on Multimodal Pervasive Video Analysis, 2010.
-  M. Cristani, L. Bazzani, G. Paggetti, A. Fossati, D. Tosato, A. Del Bue, G. Menegaz, and V. Murino, “Social interaction discovery by statistical analysis of f-formations.” BMVC, 2011.
-  X. Alameda-Pineda, J. Staiano, R. Subramanian, L. Batrinca, E. Ricci, B. Lepri, O. Lanz, and N. Sebe, “Salsa: A novel dataset for multimodal group behavior analysis,” TPAMI, 2015.
-  B. Lepri, R. Subramanian, K. Kalimeri, J. Staiano, F. Pianesi, and N. Sebe, “Connecting meeting behavior with extraversion&# x2014; a systematic study,” IEEE Transactions on Affective Computing, 2012.
-  T. Kanade, P. Rander, and P. Narayanan, “Virtualized reality: Constructing virtual worlds from real scenes,” IEEE Multimedia, 1997.
-  W. Matusik, C. Buehler, R. Raskar, S. J. Gortler, and L. McMillan, “Image-based visual hulls,” SIGGRAPH, 2000.
-  T. Matsuyama and T. Takai, “Generation, visualization, and editing of 3d video,” 3DPVT, 2002.
-  M. Gross, S. Würmlin, M. Naef, E. Lamboray, C. Spagno, A. Kunz, E. Koller-Meier, T. Svoboda, L. Van Gool, S. Lang, K. Strehlke, A. V. Moere, and O. Staadt, “Blue-c: A spatially immersive display and 3d video portal for telepresence,” SIGGRAPH, 2003.
-  B. Petit, J.-D. Lesage, E. Boyer, and B. Raffin, “Virtualization Gate,” SIGGRAPH Emerging Technologies, 2009.
-  D. Vlasic, P. Peers, I. Baran, P. Debevec, J. Popović, S. Rusinkiewicz, and W. Matusik, “Dynamic shape capture using multi-view photometric stereo,” SIGGRAPH, 2009.
-  A. Collet, M. Chuang, P. Sweeney, D. Gillett, D. Evseev, H. Calabrese, D.and Hoppe, K. A., and S. Sullivan, “High-quality streamable free-viewpoint video,” TOG, 2015.
-  J. Gall, C. Stoll, E. De Aguiar, C. Theobalt, B. Rosenhahn, and H.-P. Seidel, “Motion capture using joint skeleton tracking and surface estimation,” CVPR, 2009.
-  D. Gavrila and L. Davis, “Tracking of humans in action: A 3-D model-based approach,” ARPA Image Understanding Workshop, 1996.
-  K. M. Cheung, S. Baker, and T. Kanade, “Shape-from-silhouette across time part i: Theory and algorithms,” IJCV, 2005.
-  R. Plankers and P. Fua, “Articulated Soft Objects for Multi-View Shape and Motion Capture,” TPAMI, 2003.
-  C. Bregler, J. Malik, and K. Pullen, “Twist based acquisition and tracking of animal and human kinematics,” IJCV, 2004.
-  R. Kehl and L. V. Gool, “Markerless tracking of complex human motions from multiple views,” CVIU, 2006.
-  S. Corazza, L. Mündermann, E. Gambaretto, G. Ferrigno, and T. P. Andriacchi, “Markerless Motion Capture through Visual Hull, Articulated ICP and Subject Specific Model Generation,” IJCV, 2010.
-  D. Vlasic, I. Baran, W. Matusik, and J. Popović, “Articulated mesh animation from multi-view silhouettes,” TOG, 2008.
-  T. Brox, B. Rosenhahn, J. Gall, and D. Cremers, “Combined region and motion-based 3D tracking of rigid and articulated objects.” TPAMI, 2010.
-  C. Stoll, N. Hasler, J. Gall, H.-P. Seidel, and C. Theobalt, “Fast articulated motion tracking using a sums of gaussians body model,” ICCV, 2011.
-  E. de Aguiar, C. Stoll, C. Theobalt, N. Ahmed, H.-P. Seidel, and S. Thrun, “Performance capture from sparse multi-view video,” SIGGRAPH, 2008.
-  D. Vlasic, I. Baran, W. Matusik, and J. Popović, “Articulated mesh animation from multi-view silhouettes,” SIGGRAPH, 2008.
-  Y. Furukawa and J. Ponce, “Dense 3d motion capture from synchronized video streams,” CVPR, 2008.
-  G. Ye, Y. Liu, N. Hasler, X. Ji, Q. Dai, and C. Theobalt, “Performance capture of interacting characters with handheld kinects,” ECCV, 2012.
-  Y. Liu, J. Gall, C. Stoll, Q. Dai, H.-P. Seidel, and C. Theobalt, “Markerless motion capture of multiple characters using multiview image segmentation,” TPAMI, 2013.
-  J. J. Tompson, A. Jain, Y. LeCun, and C. Bregler, “Joint training of a convolutional network and a graphical model for human pose estimation,” NIPS, 2014.
-  S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh, “Convolutional pose machines,” CVPR, 2016.
-  M. Burenius, J. Sullivan, and S. Carlsson, “3D pictorial structures for multiple view articulated pose estimation,” CVPR, 2013.
-  S. Amin, M. Andriluka, M. Rohrbach, and B. Schiele, “Multi-view pictorial structures for 3d human pose estimation.” BMVC, 2013.
-  V. Belagiannis, S. Amin, and M. Andriluka, “3D pictorial structures for multiple human pose estimation,” CVPR, 2014.
-  A. Elhayek, E. Aguiar, A. Jain, J. Tompson, L. Pishchulin, M. Andriluka, C. Bregler, B. Schiele, and C. Theobalt, “Efficient convnet-based marker-less motion capture in general scenes with a low number of cameras,” CVPR, 2015.
-  A. Elhayek et al., “Marconi-convnet-based marker-less motion capture in outdoor and indoor scenes,” TPAMI, 2016.
-  R. Williams, “The geometrical foundation of natural structure: A source book of design,” Dover Publications, 1979.
-  C. Wu, “Visualsfm: A visual structure from motion system,” http://ccwu.me/vsfm/.
-  H. Joo, H. S. Park, and Y. Sheikh, “Map visibility estimation for large-scale dynamic 3d reconstruction,” CVPR, 2014.
-  R. Girshick, J. Donahue, T. Darrell, and J. Malik, “Rich feature hierarchies for accurate object detection and semantic segmentation,” CVPR, 2014.
-  M. Andriluka, L. Pishchulin, P. Gehler, and B. Schiele, “2d human pose estimation: New benchmark and state of the art analysis,” CVPR, 2014.
-  H. Joo, H. Liu, L. Tan, L. Gui, B. Nabbe, I. Matthews, T. Kanade, S. Nobuhara, and Y. Sheikh, “Panoptic studio: A massively multiview system for social motion capture,” ICCV, 2015.
-  Y. Yang, S. Baker, A. Kannan, and D. Ramanan, “Recognizing proxemics in personal photos,” CVPR, 2012.