Development of an Intelligent Image Generator based on Machine Learning Techniques using Genetic Algorithms

de Fermín Cordeiro, J. (2020). Development of an Intelligent Image Generator based on Machine Learning Techniques using Genetic Algorithms. Trabajo Fin de Titulación (TFG). Universidad Politécnica de Madrid, ETSI Telecomunicación.

The project consists of a program that enables users to create a computer generated image that resembles an image of their choice. The objective is to obtain this through machine learning and genetic algorithms, so as to not require much human interaction once the process is put into place. The first step is simplifying the image generation, obtaining simple parameters from which to work on and later transform through evolutionary algorithms. In order to simplify image generation, several aspects of what constructs an image have been isolated. The pro- gram can choose to create from any of these aspects in a random fashion. In the beginning several images will be constructed in this manner. Once the images have been generated, an evolutionary process must take place. The process consists of generating new images by mixing the originally generated pictures and mutating or varying certain aspects in these new images. Once all the images in play have been generated, a comparison is established with the base image, the image that has been selected to base the transformations on. The program then decides which image continues its line of heritage and the procedure repeats itself. The images that continue are those which have higher similarities with the base image. The first step in constructing the project is to assure image comparison can be put into effect. The comparison method that best relates to the project is SSIM. Both OpenCV and SSIM from scikit-image have been used in this project. Using these tools, a comparison module was constructed and later on linked to the image generation part of the project. After completing the first stage, the image generation part of the design comes into play. Images are generated using Pillow, and a set of modules that generate simple shapes and groups of shapes.