Unsupervised Learning of 3D Structure from Images

Danilo Jimenez Rezende, S. M. Ali Eslami, Shakir Mohamed, Peter Battaglia, Max Jaderberg, Nicolas Heess

Introduction

We live in a three-dimensional world, yet our observations of it are typically in the form of two-dimensional projections that we capture with our eyes or with cameras. A key goal of computer vision is that of recovering the underlying 3D structure that gives rise to these 2D observations.

The 2D projection of a scene is a complex function of the attributes and positions of the camera, lights and objects that make up the scene. If endowed with 3D understanding, agents can abstract away from this complexity to form stable, disentangled representations, e.g., recognizing that a chair is a chair whether seen from above or from the side, under different lighting conditions, or under partial occlusion. Moreover, such representations would allow agents to determine downstream properties of these elements more easily and with less training, e.g., enabling intuitive physical reasoning about the stability of the chair, planning a path to approach it, or figuring out how best to pick it up or sit on it. Models of 3D representations also have applications in scene completion, denoising, compression and generative virtual reality.

There have been many attempts at performing this kind of reasoning, dating back to the earliest years of the field. Despite this, progress has been slow for several reasons: First, the task is inherently ill-posed. Objects always appear under self-occlusion, and there are an infinite number of 3D structures that could give rise to a particular 2D observation. The natural way to address this problem is by learning statistical models that recognize which 3D structures are likely and which are not. Second, even when endowed with such a statistical model, inference is intractable. This includes the sub-tasks of mapping image pixels to 3D representations, detecting and establishing correspondences between different images of the same structures, and that of handling the multi-modality of the representations in this 3D space. Third, it is unclear how 3D structures are best represented, e.g., via dense volumes of voxels, via a collection of vertices, edges and faces that define a polyhedral mesh, or some other kind of representation. Finally, ground-truth 3D data is difficult and expensive to collect and therefore datasets have so far been relatively limited in size and scope.

In this paper we introduce a family of generative models of 3D structures and recover these structures from 2D images via probabilistic inference. Learning models of 3D structures directly from pixels has been a long-standing research problem and a number of approaches with different levels of underlying assumptions and feature engineering have been proposed. Traditional approaches to vision as inverse graphics mansinghka2013approximate ; kulkarni2014inverse ; loper2014opendr and analysis-by-synthesis pero2012bayesian ; wingate2011nonstandard ; kulkarni2014deep ; wu2015galileo rely on heavily engineered visual features with which inference of object properties such as shape and pose is substantially simplified. More recent work kulkarni2014deep ; dosovitskiy2015learning ; choy20163d ; 2016arXiv160503557Z addresses some of these limitations by learning parts of the encoding-decoding pipeline depicted in figure 2 in separate stages. Concurrent to our work Jiajun2016 also develops a generative model of volumetric data based on adversarial methods. Learning the 3D transformation properties of images by imposing a group-theoretical structure in the latent-space is a promising new direction cohen2014transformation . Our approach differs, in that we add more structure to the model’s rendering component, while keeping an abstract latent code. We discuss other related work in A.1. Unlike existing approaches, our approach is one of the first to learn 3D representations of complex objects in an unsupervised, end-to-end manner, directly from 2D images.

Our contributions are as follows. (a) We design a strong generative model of 3D structures, defined over the space of volumes and meshes, combining ideas from state-of-the-art generative models of images gregor2015draw . (b) We show that our models produce high-quality samples, can effectively capture uncertainty and are amenable to probabilistic inference, allowing for applications in 3D generation and simulation. We report log-likelihoods on a dataset of shape primitives, a 3D version of MNIST, and on ShapeNet chang2015shapenet , which to the best of our knowledge, constitutes the first quantitative benchmark for 3D density modeling. (c) We show how complex inference tasks, e.g., that of inferring plausible 3D structures given a 2D image, can be achieved using conditional training of the models. We demonstrate that such models recover 3D representations in one forward pass of a neural network and they accurately capture the multi-modality of the posterior. (d) We explore both volumetric and mesh-based representations of 3D structure. The latter is achieved by flexible inclusion of off-the-shelf renders such as OpenGL shreiner1999opengl . This allows us to build in further knowledge of the rendering process, e.g., how light bounces of surfaces and interacts with its material’s attributes. (e) We show how the aforementioned models and inference networks can be trained end-to-end directly from 2D images without any use of ground-truth 3D labels. This demonstrates for the first time the feasibility of learning to infer 3D representations of the world in a purely unsupervised manner.

Conditional Generative Models

In this section we develop our framework for learning models of 3D structure from volumetric data or directly from images. We consider conditional latent variable models, structured as in figure 2 (left). Given an observed volume or image x\mathbf{x} and a context c\mathbf{c}, we wish to infer a corresponding 3D representation h\mathbf{h} (which can be a volume or a mesh). This is achieved by modelling the latent manifold of object shapes and poses via the low-dimensional codes z\mathbf{z}. The context is any quantity that is always observed at both train- and test-time, and it conditions all computations of inference and generation (see figure 2, middle). In our experiments, context is either 1) nothing, 2) an object class label, or 3) one or more views of the scene from different cameras.

Our models employ a generative process which consists of first generating a 3D representation h\mathbf{h} (figure 2, middle) and then projecting to the domain of the observed data (figure 2, right). For instance, the model will first generate a volume or mesh representation of a scene or object and then render it down using a convolutional network or an OpenGL renderer to form a 2D image.

The function Proj(hT,sT)\text{Proj}(\mathbf{h}_{T},\mathbf{s}_{T}) is a projection operator from the model’s latent 3D representation hT\mathbf{h}_{T} to the training data’s domain (which in our experiments is either a volume or an image) and plays the role of a ‘renderer’. The conditional density p(xx^)p(\mathbf{x}|\hat{\mathbf{x}}) is either a diagonal Gaussian (for real-valued data) or a product of Bernoulli distributions (for binary data). We denote the set of all parameters of this generative model as θ={θr,θw,θs,θp}\theta=\{\theta_{r},\theta_{w},\theta_{s},\theta_{p}\}. Details of the inference model and the variational bound is provided in the appendix A.2.

Here we discuss the projection operators in detail. These drop-in modules relate a latent 3D representation with the training data. The choice of representation (volume or mesh) and the type of available training data (3D or 2D) determine which operator is used.

3D \rightarrow 3D projection (identity): In cases where training data is already in the form of volumes (e.g., in medical imagery, volumetrically rendered objects, or videos), we can directly define the likelihood density p(xx^)p(\mathbf{x}|\hat{\mathbf{x}}), and the projection operator is simply the identity x^=hT\hat{\mathbf{x}}=\mathbf{h}_{T} function (see figure 3 left).

3D \rightarrow 2D neural projection (learned): In most practical applications we only have access to images captured by a camera. Moreover, the camera pose may be unknown or partially known. For these cases, we construct and learn a map from an FF-dimensional volume hT\mathbf{h}_{T} to the observed 2D images by combining the VST with 3D and 2D convolutions. When multiple views from different positions are simultaneously observed, the projection operator is simply cloned as many times as there are target views. The parameters of the projection operator are trained jointly with the rest of the model. This operator is depicted in figure 3 (middle). For details see appendix A.4.

3D \rightarrow 2D OpenGL projection (fixed): When working with a mesh representation, the projection operator in equation 4 is a complex map from the mesh description h\mathbf{h} provided by the generative model to the rendered images x^\hat{\mathbf{x}}. In our experiments we use an off-the-shelf OpenGL renderer and treat it as a black-box with no parameters. This operator is depicted in figure 3 (right).

A challenge in working with black-box renderers is that of back-propagating errors from the image to the mesh. This requires either a differentiable renderer loper2014opendr , or resort to gradient estimation techniques such as finite-differences eslami2016attend or Monte Carlo estimators mnih2016variational ; burda2015importance . We opt for a scheme based on REINFORCE williams1992simple , details of which are provided in appendix A.5.

Experiments

We demonstrate the ability of our model to learn and exploit 3D scene representations in five challenging tasks. These tasks establish it as a powerful, robust and scalable model that is able to provide high quality generations of 3D scenes, can robustly be used as a tool for 3D scene completion, can be adapted to provide class-specific or view-specific generations that allow variations in scenes to be explored, can synthesize multiple 2D scenes to form a coherent understanding of a scene, and can operate with complex visual systems such as graphics renderers. We explore four data sets:

The Necker cube is a classical psychological test of the human ability for 3D and spatial reasoning. This is the simplest dataset we use and consists of 40×40×4040\times 40\times 40 volumes with a 10×10×1010\times 10\times 10 wire-frame cube drawn at a random orientation at the center of the volume sundareswara2008perceptual .

The volumetric primitives are of size 30×30×3030\times 30\times 30. Each volume contains a simple solid geometric primitive (e.g., cube, sphere, pyramid, cylinder, capsule or ellipsoid) that undergoes random translations ($pixels)androtations(pixels) and rotations ([-\pi,\pi]$ radians).

We extended the MNIST dataset mnistlecun to create a 30×30×3030\times 30\times 30 volumetric dataset by extruding the MNIST images. The resulting dataset has the same number of images as MNIST. The data is then augmented with random translations ($pixels)androtations(pixels) and rotations ([-\pi,\pi]$ radians) that are procedurally applied during training.

The ShapeNet dataset chang2015shapenet is a large dataset of 3D meshes of objects. We experiment with a 40-class subset of the dataset, commonly referred to as ShapeNet40. We render each mesh as a binary 30×30×3030\times 30\times 30 volume.

For all experiments we used LSTMs with 300 hidden neurons and 10 latent variables per generation step. The context encoder fc(c,st1)f_{c}(\mathbf{c},\mathbf{s}_{t-1}) was varied for each task. For image inputs we used convolutions and standard spatial transformers, and for volumes we used volumetric convolutions and VSTs. For the class-conditional experiments, the context c\mathbf{c} is a one-hot encoding of the class. As meshes are much lower-dimensional than volumes, we set the number of steps to be T=1T=1 when working with this representation. We used the Adam optimizer kingma2014adam for all experiments.

When ground-truth volumes are available we can directly train the model using the identity projection operator (see section 2.1). We explore the performance of our model by training on several datasets. We show in figure 4 that it can capture rich statistics of shapes, translations and rotations across the datasets. For simpler datasets such as Primitives and MNIST3D (figure 4 left, middle), the model learns to produce very sharp samples. Even for the more complex ShapeNet dataset (figure 4 right) its samples show a large diversity of shapes whilst maintaining fine details.

2 Probabilistic volume completion and denoising

We test the ability of the model to impute missing data in 3D volumes. This is a capability that is often needed to remedy sensor defects that result in missing or corrupt regions, (see for instance wu20153d ; dosovitskiy2015learning ). For volume completion, we use an unconditional volumetric model and alternate between inference and generation, feeding the result of one into the other. This procedure simulates a Markov chain and samples from the correct distribution, as we show in appendix A.10. We test the model by occluding half of a volume and completing the missing half. Figure 5 demonstrates that our model successfully completes large missing regions with high precision. More examples are shown in the appendix A.7.

3 Conditional volume generation

The models can also be trained with context representing the class of the object, allowing for class conditional generation. We train a class-conditional model on ShapeNet and show multiple samples for 10 of the 40 classes in figure 7. The model produces high-quality samples of all classes. We note their sharpness, and that they accurately capture object rotations, and also provide a variety of plausible generations. Samples for all 40 ShapeNet classes are shown in appendix A.8.

We also form conditional models using a single view of 2D contexts. Our results, shown in figure 8 indicate that the model generates plausible shapes that match the constraints provided by the context and captures the multi-modality of the posterior. For instance, consider figure 8 (right). The model is conditioned on a single view of an object that has a triangular shape. The model’s three shown samples have greatly varying shape (e.g., one is a cone and the other a pyramid), whilst maintaining the same triangular projection. More examples of these inferences are shown in the appendix A.9.

4 Performance benchmarking

We quantify the performance of the model by computing likelihood scores, varying the number of conditioning views and the number of inference steps in the model. Figure 6 indicates that the number of generation steps is a very important factor for performance (note that increasing the number of steps does not affect the total number of parameters in the model). Additional context views generally improves the model’s performance but the effect is relatively small. With these experiments we establish the first benchmark of likelihood-bounds on Primitives (unconditional: 500 nats; 3-views: 472 nats), MNIST3D (unconditional: 410 nats; 3-views: 393 nats) and ShapeNet (unconditional: 827 nats; 3-views: 814 nats). As a strong baseline, we have also trained a deterministic 6-layer volumetric convolutional network with Bernoulli likelihoods to generate volumes conditioned on 3 views. The performance of this model is indicated by the red line in figure 6. Our generative model substantially outperforms the baseline for all 3 datasets, even when conditioned on a single view.

5 Multi-view training

In most practical applications, ground-truth volumes are not available for training. Instead, data is captured as a collection of images (e.g., from a multi-camera rig or a moving robot). To accommodate this fact, we extend the generative model with a projection operator that maps the internal volumetric representation hT\mathbf{h}_{T} to a 2D image x^\hat{\mathbf{x}}. This map imitates a ‘camera’ in that it first applies an affine transformation to the volumetric representation, and then flattens the result using a convolutional network. The parameters of this projection operator are trained jointly with the rest of the model. Further details are explained in the appendix A.4.

In this experiment we train the model to learn to reproduce an image of the object given one or more views of it from fixed camera locations. It is the model’s responsibility to infer the volumetric representation as well as the camera’s position relative to the volume. It is clear to see how the model can ‘cheat’ by generating volumes that lead to good reconstructions but do not capture the underlying 3D structure. We overcome this by reconstructing multiple views from the same volumetric representation and using the context information to fix a reference frame for the internal volume. This enforces a consistent hidden representation that generalises to new views.

We train a model that conditions on 3 fixed context views to reproduce 10 simultaneous random views of an object. After training, we can sample a 3D representation given the context, and render it from arbitrary camera angles. We show the model’s ability to perform this kind of inference in figure 9. The resulting network is capable of producing an abstract 3D representation from 2D observations that is amenable to, for instance, arbitrary camera rotations.

6 Single-view training

Finally, we consider a mesh-based 3D representation and demonstrate the feasibility of training our models with a fully-fledged, black-box renderer in the loop. Such renderers (e.g. OpenGL) accurately capture the relationship between a 3D representation and its 2D rendering out of the box. This image is a complex function of the objects’ colors, materials and textures, positions of lights, and that of other objects. By building this knowledge into the model we give hints for learning and constrain its hidden representation.

We consider again the Primitives dataset, however now we only have access to 2D images of the objects at training time. The primitives are textured with a color on each side (which increases the complexity of the data, but also makes it easier to detect the object’s orientation relative to the camera), and are rendered under three lights. We train an unconditional model that given a 2D image, infers the parameters of a 3D mesh and its orientation relative to the camera, such that when textured and rendered reconstructs the image accurately. The inferred mesh is formed by a collection of 162 vertices that can move on fixed lines that spread from the object’s center, and is parameterized by the vertices’ positions on these lines.

The results of these experiments are shown in figure 10. We observe that in addition to reconstructing the images accurately (which implies correct inference of mesh and camera), the model correctly infers the extents of the object not in view, as demonstrated by views of the inferred mesh from unobserved camera angles.

Discussion

In this paper we introduced a powerful family of 3D generative models inspired by recent advances in image modeling. When trained on ground-truth volumes, they can produce high-quality samples that capture the multi-modality of the data. We further showed how common inference tasks, such as that of inferring a posterior over 3D structures given a 2D image, can be performed efficiently via conditional training. We also demonstrated end-to-end training of such models directly from 2D images through the use of differentiable renderers. This demonstrates for the first time the feasibility of learning to infer 3D representations in a purely unsupervised manner.

We experimented with two kinds of 3D representations: volumes and meshes. Volumes are flexible and can capture a diverse range of structures, however they introduce modeling and computational challenges due to their high dimensionality. Conversely, meshes can be much lower dimensional and therefore easier to work with, and they are the data-type of choice for common rendering engines, however standard paramaterizations can be restrictive in the range of shapes they can capture. It will be of interest to consider other representation types, such as NURBS, or training with a volume-to-mesh conversion algorithm (e.g., marching cubes) in the loop.

References

Appendix A Appendix

Volumetric representations have been explored extensively for the tasks of object classification , object reconstruction from images , volumetric denoising and density estimation . The model we present in this paper extends ideas from the current state-of-the art in deep generative modelling of images to volumetric data. Since these models operate on smooth internal representations, they can be combined with continuous projection operators more easily than prior work.

On the other hand, mesh representations allow for a more compact, yet still rich, representation space. When combined with OpenGL, we can exploit these representations to more accurately capture the physics of the rendering process. Related work include deformable-parts models and approaches from inverse graphics .

A.2 Inference model

We use a structured posterior approximation that has an auto-regressive form, i.e. q(ztz<t,x,c)q(\mathbf{z}_{t}|\mathbf{z}_{<t},\mathbf{x},\mathbf{c}). This distribution is parameterized by a deep network:

The ‘read’ function frf_{r} is parametrized in the same way as fw(st,ht1;θh)f_{w}(\mathbf{s}_{t},\mathbf{h}_{t-1};\theta_{h}). During inference, the states sts_{t} are computed using the same state transition function as in the generative model. We denote the parameters of the inference model by ϕ={ϕr,ϕμ,ϕσ}\phi=\{\phi_{r},\phi_{\mu},\phi_{\sigma}\}.

The variational loss function associated with this model is given by:

where z<t\mathbf{z}_{<t} indicates the collection of all latent variables from iteration 1 to t1t-1. We can now optimize this objective function for the variational parameters ϕ\phi and the model parameters θ\theta by stochastic gradient descent.

A.3 Volumetric Spatial Transformers

Spatial transformers provide a flexible mechanism for smooth attention and can be easily applied to both 2 and 3 dimensional data. Spatial Transformers process an input image x\mathbf{x}, using parameters h\mathbf{h}, and generate an output ST(x,h)\text{ST}(\mathbf{x},\mathbf{h}):

where κh\kappa_{h} and κw\kappa_{w} are 1-dimensional kernels, \otimes indicates the tensor outer-product of the three kernels and \ast indicates a convolution. Similarly, Volumetric Spatial Transformers (VST) process an input data volume x\mathbf{x}, using parameters h\mathbf{h}, and generate an output VST(x,h)\text{VST}(\mathbf{x},\mathbf{h}):

where κd\kappa_{d}, κh\kappa_{h} and κw\kappa_{w} are 1-dimensional kernels, \otimes indicates the tensor outer-product of the three kernels and \ast indicates a convolution. The kernels κd\kappa_{d}, κh\kappa_{h} and κw\kappa_{w} used in this paper correspond to a simple affine transformation of a 3-dimensional grid of points that uniformly covers the input image.

A.4 Learnable 3​𝐃→2​𝐃→3𝐃2𝐃3{\bf D}\rightarrow 2{\bf D} projection operators

These projection operators or ‘learnable cameras’ are built by first applying a affine transformation to the volumetric canvas cT\mathbf{c}_{T} using the Spatial Transformer followed a combination on 3D and 2D convolutions as depicted in figure 11.

A.5 Stochastic Gradient Estimators for Expectations of Black-Box Functions

We employ a multi-sample extension of REINFORCE, inspired by . For each image we sample KK realizations of the inferred mesh for a fixed set of latent variables using a small Gaussian noise and compute its corresponding render. The variance of the learning signal for each sample kk is reduced by computing a ‘baseline’ using the K1K-1 remaining samples. See for further details. The estimator is easy to implement and we found this approach to work well in practice even for relatively high-dimensional meshes.

A.6 Unconditional generation

In figures 12 and 13 we show further examples of our model’s capabilities at unconditional volume generation.

A.7 Volume completion

In figures 14, 15 and 16 we show the model’s capabilities at volume completion.

A.8 Class-conditional volume generation

In figure 17 we show samples from a class-conditional volumetric generative model for all 40 ShapeNet classes.

A.9 View-conditional volume generation

In figures 18, 19 and 20 we show samples from a view-conditional volumetric generative model for Primitives, MNIST3D and ShapeNet respectively.

A.10 Volume completion with MCMC

When only part of the data-vector x\mathbf{x} is observed, we can approximately sample the missing part of the volume conditioned on the observed part by building a Markov Chain. We review below the derivations from for completeness. Let xo\mathbf{x}_{o} and xu\mathbf{x}_{u} be the observed and unobserved parts of x\mathbf{x} respectively. The observed xo\mathbf{x}_{o} is fixed throughout, therefore all the computations in this section will be conditioned on xo\mathbf{x}_{o}. The imputation procedure can be written formally as a Markov chain on the space of missing entries xu\mathbf{x}_{u} with transition kernel Kq(xuxu,xo)\mathcal{K}^{q}(\mathbf{x}^{\prime}_{u}|\mathbf{x}_{u},\mathbf{x}_{o}) given by

where x=(xu,xo)\mathbf{x}=(\mathbf{x}_{u},\mathbf{x}_{o}).

Provided that the recognition model q(zx)q(\mathbf{z}|\mathbf{x}) constitutes a good approximation of the true posterior p(zx)p(\mathbf{z}|\mathbf{x}), (10) can be seen as an approximation of the kernel

The kernel (11) has two important properties: (i) it has as its eigen-distribution the marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o}); (ii) K(xuxu,xo)>0 xo,xu,xu\mathcal{K}(\mathbf{x}^{\prime}_{u}|\mathbf{x}_{u},\mathbf{x}_{o})>0~{}\forall\mathbf{x}_{o},\mathbf{x}_{u},\mathbf{x}^{\prime}_{u}. The property (i) can be derived by applying the kernel (11) to the marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o}) and noting that it is a fixed point. Property (ii) is an immediate consequence of the smoothness of the model.

We apply the fundamental theorem for Markov chains and conclude that given the above properties, a Markov chain generated by (11) is guaranteed to generate samples from the correct marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o}).

In practice, the stationary distribution of the completed data will not be exactly the marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o}), since we use the approximated kernel (10). Even in this setting we can provide a bound on the L1L_{1} norm of the difference between the resulting stationary marginal and the target marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o})

If the recognition model q(zx)q(\mathbf{z}|\mathbf{x}) is such that for all z\mathbf{z}

then the marginal p(xuxo)p(\mathbf{x}_{u}|\mathbf{x}_{o}) is a weak fixed point of the kernel (10) in the following sense:

where we apply the condition (12) to obtain the last statement. ∎

That is, if the recognition model is sufficiently close to the true posterior to guarantee that (12) holds for some acceptable error ε\varepsilon than (13) guarantees that the fixed-point of the Markov chain induced by the kernel (10) is no further than ε\varepsilon from the true marginal with respect to the L1L_{1} norm.