EvoFashion: Customising Fashion Through Evolution
In today’s society, where everyone desires unique and fashionable products, the ability to customise products is almost mandatory in every online store. Despite of many stores allowing the users to personalize their products, they do not always do it in the most efficient and user-friendly manner. In order to have products that reflect the user’s design preferences, they have to go through a laborious process of picking the components that they want to customise. In this work we propose a framework that aims to relieve the design burden from the user side, by automating the process through the use of Interactive Evolutionary Computation. The framework is based on a web-interface that facilitates the interaction between the user and the evolutionary process. The user can select between two types of evolution: (i) automatic; and (ii) partially-automatic. The results show the ability of the framework to promote evolution towards solutions that reflect the user aesthetic preferences.
There is a wide range of applicability in fashion domains, but we focus on the evolution of the design of shoe models due to the availability of an engine capable of rendering them. In the current work we have used the my-swear platform to render the generated shoes, which can be found in https://www.my-swear.com/.
Solutions are encoded as a set of integers with the same length as the number of parameters allowed in the customisation of a certain product. Each gene (i.e., integer) has a value in the [0, #possibilities] interval, where #possibilities is the maximum number of different possibilities for that parameter.
To promote the evolution and the proper exploration of the problem domain we rely on recombination and mutation. We use uniform crossover to recombine two parents. Firstly we create a random mask of the same size of the genotype, and then swap the genetic material according to the previously generated mask. Regarding the mutation operator, we apply a per gene mutation to the candidate solutions, which allows the algorithm to change, from generation to generation, a percentage of the genes to other valid ones.
Three automatic fitness components are used:
- Colour: the user defines a colour that he/she likes and the goal of the evolution is to promote the convergence of all parts of the generated shoes to that colour. For that, the Root Mean Squared Error (RMSE) is used to compute the distance between a snapshot of the generated shoe models and the target colour, defined by the user;
- Material: similar to the colour, but for materials, i.e., the objective is to converge to an individual where all shoe parts are made of the material selected by the user. As with colour, the evolution is guided using an error that is to be minimised and represents the percentage of shoe parts that are not made using the selected material;
- Price: by selecting a price range the framework promotes the emergence of candidate solutions that are within that interval, using the RMSE to evaluate the distance between the evolved shoe models’ price and the closer bound of the target price range.
To enable the visualisation and exploration of the different individuals and to allow the interaction with the user, we developed a web-based application. This application allows the user to define different filters, such as colour or price, to improve the fitness of the individuals by clicking on them, and to store them in the archive.
Results show the ability of the framework to successfully customise shows. The first experiments focused on the evolution with the automatic fitness components, i.e., the evolution of candidate solutions towards a specific colour, price range or material. Then, tests regarding the evolution of shoe models that satisfy more than one of the previous conditions were conducted. In both scenarios it was possible to obtain the expected results, and the algorithm successfully converged to regions of the search space where the shoe model had the desired characteristics
A video demonstrating the capabilities of the framework is shown below: