Title: RENDERGAN: GENERATING REALISTIC LABELED DATA

Abstract: Deep Convolutional Neuronal Networks (DCNNs) are showing remarkable performance on many computer vision tasks. Due to their large parameter space, they require many labeled samples when trained in a supervised setting. The costs of annotating data manually can render the use of DCNNs infeasible. We present a novel framework called RenderGAN that can generate large amounts of realistic, labeled images by combining a 3D model and the Generative Adversarial Network framework. In our approach, image augmentations (e.g. lighting, background, and detail) are learned from unlabeled data such that the generated images are strikingly realistic while preserving the labels known from the 3D model. We apply the RenderGAN framework to generate images of barcode-like markers that are attached to honeybees. Training a DCNN on data generated by the RenderGAN yields considerably better performance than training it on various baselines.

1. INTRODUCTION:

When an image is taken from a real world scene, many factors determine the final appearance: background, lighting, object shape, position and orientation of the object, the noise of the camera sensor, and more. In computer vision, high-level information such as class, shape, or pose is reconstructed from raw image data. Most real-world applications require the reconstruction to be invariant to noise, background, and lighting changes.

In recent years, deep convolutional neural networks (DCNNs) advanced to the state of the art in many computer vision tasks (Krizhevsky et al., 2012; He et al., 2015; Razavian et al., 2014) . More training data usually increases the performance of DCNNs. While image data is mostly abundant, labels for supervised training must often be created manually -a time-consuming and tedious activity. For complex annotations such as human joint angles, camera viewpoint or image segmentation, the costs of labeling can be prohibitive.

In this paper, we propose a method to drastically reduce the costs of labeling such that we can train a model to predict even complex sets of labels. We present a generative model that can sample from the joint distribution of labels and data. The training procedure of our model does not require any manual labeling. We show that the generated data is of high quality and can be used to train a model in a supervised setting, i.e. a model that maps from real samples to labels, without using any manually labeled samples.

We propose two modifications to the recently introduced GAN framework (Goodfellow et al., 2014) . First, a simple 3D model is embedded into the generator network to produce samples from corresponding input labels. Second, the generator learns to add missing image characteristics to the model output using a number of parameterized augmentation functions. In the adversarial training we leverage large amounts of unlabeled image data to learn the particular form of blur, lighting, background and image detail. By constraining the augmentation functions we ensure that the resulting image still represents the given set of labels. The resulting images are hard to distinguish from real samples and can be used to train a DCNN to predict the labels from real input data. The RenderGAN framework was developed to solve the scarcity of labeled data in the BeesBook project (Wario et al., 2015) in which we analyze the social behavior of honeybees. A barcode-like marker is attached to the honeybees' backs for identification (see Fig. 1 ). Annotating this data is tedious, and therefore only a limited amount of labeled data exists. A 3D model (see the upper row of Fig. 2 ) generates a simple image of the tag based on position, orientation, and bit configuration.

The RenderGAN then learns from unlabeled data to add lighting, background, and image details.

Training a DCNN on data generated by the RenderGAN yields considerably better performance compared to various baselines. We furthermore include a previously used computer vision pipeline in the evaluation. The networks' detections are used as feature to track the honeybees over time.

When we use detections from the DCNN instead of the computer vision pipeline, the accuracy of assigning the true id increases from 55% to 96%.

Our contributions are as follows. We present an extension of the GAN framework that allows to sample from the joint distribution of data and labels. The generated samples are nearly indistinguishable from real data for a human observer and can be used to train a DCNN end-to-end to classify real samples. In a real-world use case, our approach significantly outperforms several baselines. Our approach requires no manual labeling. The simple 3D model is the only form of supervision.

2. RELATED WORK:

There exists multiple approaches to reduce the costs associated with labeling.

A common approach to deal with limited amount of labels is data augmentation (Goodfellow et al., 2016, Chapter 7.4 ). Translation, noise, and other deformations can often be applied without changing the labels, thereby effectively increasing the number of training samples and reducing overfitting.

DCNNs learn a hierarchy of features -many of which are applicable to related domains (Yosinski et al., 2014) . Therefore, a common technique is to pre-train a model on a larger dataset such as ImageNet (Deng et al., 2009) and then fine-tune its parameters to the task at hand (Girshick et al., 2014; Long et al., 2015; Razavian et al., 2014) . This technique only works in cases where a large enough related dataset exists. Furthermore, labeling enough data for fine-tuning might still be costly.

If a basic model of the data exists (for example, a 3D model of the human body), it can be used to generate labeled data. Peng et al. (2015) generated training data for a DCNN with 3D-CAD models. The discriminator network D is trained to distinguish between "fake" and real data. The generator network G receives a random vector as input. G is optimized to maximize the chance of the discriminator making a mistake. Generative Adversarial Networks (GAN) (see Fig. 3 ) can learn to generate high-quality samples (Goodfellow et al., 2014) , i.e. sample from the data distribution p(x). Denton et al. ( 2015) synthesized images with a GAN on the CIFAR dataset (Krizhevsky, 2009) , which were hard for humans to distinguish from real images. While a GAN implicitly learns a meaningful latent embedding of the data (Radford et al., 2015) , there is no simple relationship between the latent dimensions and the labels of interest. Therefore, high-level information can't be inferred from generated samples. cGANs are an extension of GANs to sample from a conditional distribution given some labels, i.e. p(x|l). However, training cGANs requires a labeled dataset. Springenberg (2015) showed that GANs can be used in a semi-supervised setting but restricted their analysis to categorical labels. Wang & Gupta (2016) trained two separate GANs, one to model the object normals and another one for the texture conditioned on the normals. As they rely on conditional GANs, they need large amounts of labeled data. Chen et al. (2016) used an information theoretic to disentangle the representation. They decomposed the representation into a structured and unstructured part. And successfully related on a qualitative level the structured part to high-level concepts such as camera viewpoint or hair style. However, explicitly controlling the relationship between the latent space and generated samples without using labeled data is an open problem, i.e. sampling from p(x, l) without requiring labels for training.

3. RENDERGAN:

Most supervised learning tasks can be modeled as a regression problem, i.e. approximating a function f : R n → L that maps from data space R to label space L. We consider f to be the best available function on this particular task. Analogous to ground truth data, one could call f the ground truth function.

In the RenderGAN framework, we aim to solve the inverse problem to this regression task: generate data given the labels. This is achieved by embedding a simple 3D model into the generator of a GAN. The samples generated by the simple model must correspond to the given labels but may lack many factors of the real data such as background or lightning. Through a cascade of augmentation functions, the generator can adapt the images from the 3D model to match the real data.

We formalize image augmentation as a function φ(x, d), which modifies the image x based on the augmentation parameter d (a tensor of any rank). The augmentation must preserve the labels of the image x. Therefore, it must hold for all images x and all augmentations parameters d:

f (φ(x, d)) = f (x) (1) real data noise 0-1 G D M φ 0 φ k . . . fake G l G 0 G k Figure 4:

The generator G cannot directly produce samples. Instead, G has to predict parameters G l for the 3D model M . The image generated by M is then modified through the augmentation functions φ i parameterized by G i to match the real data.

The augmentation function must furthermore be differentiable w.r.t. x and d as the gradient will be back-propagated through φ to the generator. Image augmentations such as lighting, surrounding, and noise do preserve the labels and fit this definition. We will provide appropriate definitions of φ for the mentioned augmentations in the following section.

If appropriate augmentation functions are found that can model the missing factors and are differentiable, we can use the GAN framework to find parameters that result in realistic output images.

Multiple augmentation functions can be combined to perform a more complex augmentation. Here, we will consider multiple augmentation functions applied sequentially, i.e. we have k augmentation functions φ i and k corresponding outputs G i from the generator. The output of the previous augmentation function is the input to the next one. Thus, we can write the generator given some labels l as:

EQUATION

where M is the 3D model. We can furthermore learn the label distribution with the generator. As the discriminator loss must be backpropagated through the 3D model M, it must be differentiable. This can be achieved by emulating the 3D model with a neural network (Dosovitskiy et al., 2015) . The resulting generator g(z) can be written as (see Fig. 4 for a visual interpretation):

EQUATION

As any differentiable function approximator can be employed in the GAN framework, the theoretical properties still hold. The training is carried out as in the conventional GAN framework. In a real application, the augmentation functions might restrict the generator from converging to the data distribution.

If the training converges, we can collect generated realistic data with g(z) and the high-level information captured in the 3D model with G l (z). We can now train a supervised learning algorithm on the labeled generated data (G l (z) , g (z)) and solve the regression task of approximating f without depending on manual labels.

4. APPLICATION TO THE BEESBOOK PROJECT:

In the BeesBook project, we aim to understand the complex social behavior of honey bees. For identification, a tag with a binary code is attached to the back of the bees.

The orientations in space, position, and bits of the tags are required to track the bees over time. Decoding this information is not trivial: the bees are oriented in any direction in space. The tag might be partially occluded. Moreover, spotlights on the tag can sometimes even confuse humans.

A previously used computer vision pipeline did not perform reliably. Although we invested a substantial amount of time on labeling, a DCNN trained on this data did not perform significantly better (see Sec. 3). We therefore wanted to synthesize labeled images which are realistic enough to train an improved decoder network.

Following the idea outlined in section 3, we created a simple 3D model of a bee marker. The 3D model comprises a mesh which represents the structure of the marker and a simple camera model to project the mesh to the image plane. The model is parameterized by its position, its pitch, yaw and roll, and its ID. Given a parameter set, we obtain a marker image, a background segmentation mask and a depth map. The generated images lack many important factors: blur, lighting, background, and image detail (see Fig. 2 ). A DCNN trained on this data does not generalize well (see Sec. 5).

Over the last years we collected a large amount of unlabeled image data. We successfully augmented the 3D model using this dataset, as described below.

We trained a neural network to emulate the 3D model. Its outputs are indistinguishable from the images of the 3D model. The discriminator error can now be backpropagated through the 3D model which allows the generator to also learn the distributions of positions and orientations of the bee marker. The IDs are sampled uniformly during training. The weights of the 3D model network are fixed during the RenderGAN training.

We apply different augmentation functions that account for blur, lighting, background, and image detail. The output of the 3D model and of each augmentation function is of shape (64, 64) and in the range [-1, 1]. In Fig. 5 , the structure of the generator is shown.

Blurriness: The 3D model produces hard edges, but the images of the real tags show a broad range of blur. The generator produces a scalar α ∈ [0, 1] per image that controls the blur.

EQUATION

where b σ (x) = x * k σ denotes convolving the image x with a Gaussian kernel k σ of scale σ. The implementation of the blur function is inspired by Laplacian pyramids (Burt & Adelson, 1983) .

As required for augmentation functions, the labels are preserved, because we limit the maximum amount of blur by picking σ = 2. φ blur is also differentiable w.r.t the inputs α and x.

Lighting of the tag: The images from the 3D model are binary. In real images, tags exhibit different shades of gray. We model the lighting by a smooth scaling and shifting of the pixel intensities. The generator provides three outputs for the lighting: scaling of black parts s b , scaling of white parts s w and a shift t. All outputs have the same dimensions as the image x. An important invariant is that the black bits of the tag must stay darker than the white bits. Otherwise, a bit could flip, and the label would change. By restricting the scaling s w and s b to be between 0.10 and 1, we ensure that this invariant holds. The lighting is locally corrolated and should cause smooth changes in the image. Hence, Gaussian blur b(x) is applied to s b , s w , and t.

EQUATION

The segmentation mask W (x) is one for white parts and zero for the black part of the image. As the intensity of the input is distributed around -1 and 1, we can use thresholding to differentiate between black and white parts.

Background: The background augmentation can change the background pixels arbitrarily. A segmentation mask B x marks the background pixels of the image x which are replaced by the pixels from the generated image d.

EQUATION

The 3D model provides the segmentation mask. As φ bg can only change background pixels, the labels remain unchanged.

Details: In this stage, the generator can add small details to the whole image including the tag. The output of the generator d is passed through a high-pass filter to ensure that the added details are small enough not to flip a bit. Furthermore, d is restricted to be in [-2, 2] to make sure the generator cannot avoid the highpass filter by producing huge values. With the range [-2, 2], the generator has the possibility to change black pixels to white, which is needed to model spotlights.

φ detail (x, d) = x + highpass(d) (7)

The high-pass is implemented by taking the difference between the image and a blurred version of the image (σ = 3.5). As the spotlights on the tags are only a little smaller than the bits, we increase its slope after the cutoff frequency by repeating the high-pass filter three times.

The image augmentations are applied in the order as listed above: φ detail • φ background • φ lighting • φ blur . Please note that there exist parameters to the augmentation functions that could change the labels. As long as it is guaranteed that such augmentations will result in unrealistic looking images, the generator network will learn to avoid them. For example, even though the detail augmentation could be used to add high-frequency noise to obscure the tag, this artifact would be detected by the discriminator.

Architecture of the generator::

The generator network has to produce outputs for each augmentation function. We will outline only the most important parts. See our code available online for all the details of the networks1 . The generator starts with a small network consisting of dense layers, which predicts the parameters for the 3D model (position, orientations). The output of another dense layer is reshaped and used as starting block for a chain of convolution and upsampling layers. We found it advantageous to merge a depth map of the 3D model into the generator as especially the lighting depends on the orientation of the tag in space. The input to the blur augmentation is predicted by reducing an intermediate convolutional feature map to a single scalar. An additional network is branched off to predict the input to the lighting augmentation. For the background generation, the output of the lighting network is merged back into the main generator network together with the actual image from the 3D model.

For the discriminator architecture, we mostly rely on the architecture given by Radford et al. (2015) , but doubled the number of convolutional layers and added a final dense layer. This change improved the quality of the generated images.

Clip layer: Some of the augmentation parameters have to be restricted to a range of values to ensure that the labels remain valid. The training did not converge when using functions like tanh or sigmoid due to vanishing gradients. We are using a combination of clipping and activity regularization to keep the output in a given interval [a, b] . If the input x is out of bounds, it is clipped and a regularization loss r depending on the distance between x and the appropriate bound is added.

EQUATION

) With the scalar γ, the weight of the loss can be adapted. For us γ = 15 worked well. If γ is chosen too small, the regularization loss might not be big enough to move the output of the previous layer towards the interval [a, b] . During training, we observe that the loss decreases to a small value but never vanishes.

Training: We train generator and discriminator as in the normal GAN setting. We use 2.4M unlabeled images of tags to train the RenderGAN. We use Adam (Kingma & Ba, 2014) as an optimizer with a starting learning rate of 0.0002, which we reduce in epoch 200, 250, and 300 by a factor of 0.25. In Fig. 6b the training loss of the GAN is shown. The GAN does not converge to the point where the discriminator can no longer separate generated from real samples. The augmentation functions might restrict the generator too much such that it cannot model certain properties. Nevertheless, it is hard for a human to distinguish the generated from real images. In some cases, the 

5. RESULTS:

We constructed the RenderGAN to generate labeled data. But does a DCNN trained with the Ren-derGAN data perform better than one trained on the limited amounts of real data? And are learned augmentations indeed needed or do simple hand-designed augmentation achieve the same result?

The following paragraphs describe the different datasets used in the evaluation. We focus on the performance of a DCNN on the generated data. Thus, we do not compare our method to conventional GANs as those do not provide labels and are generally hard to evaluate.

Data from the RenderGAN: We generate 5 million tags with the RenderGAN framework. Due to the abundance, one training sample is only used twice during training. It is not further augmented.

Real Data: The labels of the real data are extracted from ground truth data that was originally collected to evaluate bee trajectories. This ground truth data contains the path and id of each bee over multiple consecutive frames. Data from five different time spans was annotated -in total 66K tags. As the data is correlated in time (same ids, similar lighting conditions), we assign the data from one time span completely to either the train or test set. The data from three time spans forms the train set (40K). The test set (26K) contains data from the remaining two time spans. The ground truth data lacks the orientation of the tags, which is therefore omitted for this evaluation. Due to the smaller RenderGAN + Real: We also train a DCNN on generated and real data which is mixed at a 50:50 ratio.

Handmade augmentations: We tried to emulate the augmentations learned by the RenderGAN by hand. For example, we generate the background by an image pyramid where the pixel intensities are drawn randomly. We model all effects, i.e. blur, lighting, background, noise and spotlights (see Appendix B for details on their implementation). We apply the handmade augmentation to different learned representations of the RenderGAN, e.g. we use the learned lighting representation and add the remaining effects such as background and noise with handmade augmentations (HM LI). See Table 1 for the different combinations of learned representations and hand designed augmentations.

Computer vision pipeline CV : The previously used computer vision pipeline (Wario et al., 2015) is based on manual feature extraction. For example, a modified Hough transformation to find ellipses.

The MHD obtained by this model is only a rough estimate given that the computer vision pipeline had to be evaluated and fine-tuned on the same data set due to label scarcity.

Training setup: An epoch consists of 1000 batches á 128 samples. We use early stopping to select the best parameters of the networks. For the training with generated data, we use the real training set as the validation set. When training on real data, the test set is also used for validation. We could alternatively reduce the real training set further and form an extra validation set, but this would harm the performance of the DCNN trained on the real data. We use the 34-layer ResNet architecture (He et al., 2015) but start with 16 feature maps instead of 64. The DCNNs are evaluated on the mean Hamming distance (MHD) i.e. the expected value of bits decoded wrong. Human experts can decode tags with a MHD of around 0.23.

Results::

In Table 2 , we present the results of the evaluation. The training losses of the networks are plotted in Fig. 8 . The model trained with the data generated by the RenderGAN has an MHD of 0.424. The performance can furthermore be slightly improved by combining the generated with real data. The small gap in performance when adding real data is a further indicator of the quality of the generated samples.

If we use predictions from this DCNN instead of the computer vision pipeline, the accuracy of the tracking improves from 55% of the ids assigned correctly to 96%. At this quality, it is possible to analyze the social behavior of the honeybees reliably.

Compared to the handmade augmentations (HM 3D), data from the RenderGAN leads to considerably better performance. The large gap in performance between the HM 3D and HM LI data highlights the importance of the learned lighting augmentation. 

6. DISCUSSION:

We proposed a novel extension to the GAN framework that is capable of rendering samples from a basic 3D model more realistic. Compared to computer graphics pipelines, the RenderGAN can learn complex effects from unlabeled data that would be otherwise hard to model with explicit rules.

Contrary to conventional GANs, the generator provides explicit information about the synthesized images, which can be used as labels for a supervised algorithm. The training of the RenderGAN requires no labels.

We showed an application of the RenderGAN framework to the BeesBook project, in which the generator adds blur, lighting, background, and details to images from a basic 3D model. The generated data looks strikingly real and includes fine details such as spotlights, compression artifacts, and sensor noise.

In contrast to previous work that applied 3D models to produce training samples for DCNNs (Su et al., 2015; Richter et al., 2016; Ros et al., 2016) , we were able to train a DCNN from scratch with only generated data that still generalizes to unseen real data.

While some work is required to adapt the RenderGAN to a specific domain, once set up, arbitrary amounts of labeled data can be acquired cheaply, even if the data distribution changes. For example, if the tag design changes to include more bits, small adaptions to the 3D model's source code and eventually the hyperparameters of the augmentation functions would be sufficient. However, if we had labeled the data by hand, then we would have to annotate data again.

While the proposed augmentations represent common image characteristics, a disadvantage of the RenderGAN framework is that these augmentation functions must be carefully customized for the application at hand to ensure that high-level information is preserved. Furthermore, a suitable 3D model must be available.

7. FUTURE WORK:

For future work, it would be interesting to see the RenderGAN framework used on other tasks where basic 3D models exist e.g. human faces, pose estimation, or viewpoint prediction. In this context, one could come up with different augmentation functions e.g. colorization, affine transformations, or diffeomorphism. The RenderGAN could be especially valuable to domains where pre-trained models are not available or when the annotations are very complex. Another direction of future work might be to extend the RenderGAN framework to other fields. For example, in speech synthesis, one could use an existing software as a basic model and improve the realism of the output with a similar approach as in the RenderGAN framework. 

:

https://github.com/berleon/deepdecoder

Figures and Tables:

Figure 1: (a) The tag represents a unique binary code (cell 0 to 11) and encodes the orientation with the semicircles 12 and 13. The red arrow points towards the head of the bee. This tag encodes the id 100110100010. (b) Cutout from a high-resolution image.

Figure 2: First row: Images from the 3D model without augmentation. Below: Corresponding images from the RenderGAN. Last row: Real images of bee's tags.

Figure 5: Augmentation functions of the RenderGAN applied to the BeesBook project. The arrows from G to the augmentation functions φ depict the inputs to the augmentation functions. The generator provides the position and orientations to the 3D model, whereas the bits are sampled uniformly. On top, the output of each stage is shown. The output of φ detail is forwarded to the discriminator.

Figure 6: (a) Histogram of the discriminator scores on fake and real samples. (b) Losses of the generator (G) and discriminator (D).

Figure 7: Random points in the z-space given the tag parameters

Figure 8: Training and validation losses of DCNNs trained on different data sets. As some data sets are missing the orientation of the tags, only the loss of the bits are plotted. Binary crossentropy is used as loss for the bits. The train and validation loss of each dataset have the same color.

Figure 10: Images generated with the generator given a fixed bit configuration

Datasets created with learned representations and hand-designed augmentations

Table content: <table><tr><td>Name</td><td>Learned</td><td>Hand-Designed</td></tr><tr><td>HM 3D</td><td>3D model</td><td>blur, lighting, background, noise, spotlights</td></tr><tr><td>HM LI</td><td>3D model, blur, lighting</td><td>background, noise, spotlights</td></tr><tr><td colspan="2">HM BG 3D model, blur, lighting, background</td><td>noise, spotlights</td></tr></table>

Comparison of the mean Hamming distance (MHD) on the different data sets. More samples of the training data can be found in Appendix D. real training set, we augment it with random translation, rotation, shear transformation, histogram scaling, and noise (see Appendix C for exact parameters).

Table content: <table><tr><td>Data</td><td>MHD</td><td>Training Data</td></tr><tr><td>Real</td><td>0.956</td><td/></tr><tr><td>HM 3D</td><td>0.820</td><td/></tr><tr><td>HM LI</td><td>0.491</td><td/></tr><tr><td>HM BG</td><td>0.505</td><td/></tr><tr><td colspan="2">RenderGAN 0.424</td><td/></tr><tr><td>RenderGAN + Real</td><td>0.416</td><td/></tr><tr><td>CV</td><td>1.08</td><td/></tr><tr><td>size of the</td><td/><td/></tr></table>

Peer review (iclr2017):
This paper addresses the problem of decoding barcode-like markers depicted in an image. The main insight is to train a CNN from generated data produced from a GAN. The GAN is trained using unlabeled images, and leverages a *3D model* that undergoes learnt image transformations (e.g., blur, lighting, background). The parameters for the image transformations are trained such that it confuses a GAN discriminator. A CNN is trained using images generated from the GAN and compared with hand-crafted features and from training with real images. The proposed method out-performs both baselines on decoding the barcode markers. The proposed GAN architecture could potentially be interesting. However, I won’t champion the paper as the evaluation could be improved. A critical missing baseline is a comparison against a generic GAN. Without this it’s hard to judge the benefit of the more structured GAN. Also, it would be worth seeing the result when one combines generated and real images for the final task. A couple of references that are relevant to this work (for object detection using rendered views of 3D shapes): [A] Xingchao Peng, Baochen Sun, Karim Ali, Kate Saenko, Learning Deep Object Detectors from 3D Models; ICCV, 2015. [B] Deep Exemplar 2D-3D Detection by Adapting from Real to Rendered Views. Francisco Massa, Bryan C. Russell, Mathieu Aubry. CVPR 2016. The problem domain (decoding barcode markers on bees) is limited. It would be great to see this applied to another problem domain, e.g., object detection from 3D models as shown in paper reference [A], where direct comparison against prior work could be performed. I found the writing to be somewhat vague throughout. For instance, on first reading of the introduction it is not clear what exactly is the contribution of the paper. Minor comments: Fig 3 - Are these really renders from a 3D model? The images look like 2D images, perhaps spatially warped via a homography. Page 3: *chapter* => *section*. In Table 2, what is the loss used for the DCNN? Fig 9 (a) - The last four images look like they have strange artifacts. Can you explain these?