Among the areas of artificial intelligence, neural networks have undergone some of the greatest advances in recent years. The improvement of GPUs (Graphical Processing Units), algorithmic developments and the large computing power available in cloud computing services have made training neural networks possible in reasonable time. Neural networks have reached state of the art results in many areas, including image and speech recognition, natural language processing, speech synthesis, recommendation systems, time series analysis, and reinforcement learning. These results are often more accurate than those produced by humans.
The different areas often use specialized networks to reach the best results: in image processing, convolutional neural networks have become the most successful ones. Using these networks, we can solve many image processing tasks, including, but not limited to, image recognition, image segmentation, error correction on images, and image generation. Certain convolutional networks are capable of determining the exact location of objects on a picture with pixel-level precision. Such networks can be used to analyze the input from cameras in self-driving cars, where it is necessary not only to recognize that there is a pedestrian or another car somewhere in the picture, but its exact location has to be identified as well.
In this work, I present a neural network that was trained to segment the animals on images, which automatically allows removing the background of an animal. Using this network I created an application which creates artistic double exposure images. It is a very popular image creating method among designers and photographers. These images are usually made of two pictures: one of a figure, which can be an animal, human face, or any kind of silhouette, and one of a landscape. I used animal images and landscapes to create the compositions. The proposed program can generate double exposure images by automatically combining almost any kind of animal image and landscape image.