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.