Encoder-Decoder Convolution Neural Networks can do more

As mentioned in the previous article (Encoder-Decoder-Networks can do nice things) here is another example of a complex mapping from one input to a completely different output. In this case we trained a network to estimate the ambient occlusion of each region of the face would get. The term ambient occlusion is basically a test to determine how accessible a surface point is. Accessible again defines the ratios between a random number of rays shot in all directions of the hemisphere surrounding the point that would reach the "sky" unhindered compared to the once that get blocked by another surface point along the way. It is a neat trick to do some cheap global illumination as it produces soft shadows or simulate dirt, stains on a surface as things would get stuck between surfaces in points that are highly inaccessible.

Here some results from the trained network

Ambient occlusion estimated by a encoder/decoder neural network
Ambient occlusion estimated by a neural network (from left original image, ao used to darken image, ao used to lighten the image, raw ao)
Ambient occlusion estimated by a encoder/decoder neural network
Ambient occlusion estimated by a neural network (from left original image, ao used to darken image, ao used to lighten the image, raw ao)
Ambient occlusion estimated by a encoder/decoder neural network
Ambient occlusion estimated by a neural network (from left original image, ao used to darken image, ao used to lighten the image, raw ao)
Ambient occlusion estimated by a encoder/decoder neural network
Ambient occlusion estimated by a neural network (from left original image, ao used to darken image, ao used to lighten the image, raw ao)

 Even Bruce looks impressed

Ambient occlusion estimated by a encoder/decoder neural network
Ambient occlusion estimated by a neural network (from left original image, ao used to darken image, ao used to lighten the image, raw ao)