Van Vogue

Titivating your look.

The users and their problems

Our project started with brainstorming the possible users and their needs. We came up with the following scenarios.

Niel Non-trendy user

He doesn't have any knowledge about fashion. He usually wears the same clothes and if he gets any new ones, he will usually shop with his mom. Now, he would need a fashionable look for a party whose dress code is "smart casual". He wants to spend the minimum effort in shopping and he's quite clueless what to even buy.

Felicia Fashionista

This user knows exactly her style. She follows fashion and has a lot of fashionable clothes. Now she would like to find more trousers that fit her existing shirts.

Mama Marie

She has two children who desperately need more clothes as they grow out of the previous ones. Her kids aren't old enough to have their own preferences. She wants to find clothes that look nice enough but that don't break the budget.

Existing solutions

Most of the time, finding nice clothes in an online shop is a tedious and time consuming process. The user is presented with a massive amount of images of different clothes together with terminology that is not easily understandable to a user who doesn't know too much about clothes, e.g. what is the difference between skinny fit and slim fit jeans.

Some online shops for clothes do offer cohesive looks with customisation to some extent. Zalando has such a tool already. However, Zalando's tool fails to take into account the user's budget and it doesn't make the browsing an easy task. First you have to find a ready made look that is appealing to you and then you can start to customise it hoping that the look will stay fashionable after your customisations. It also falls short in providing the user with a look to match the user's needs; complete looks are difficult to find and browse by type (streetwear, casual...).

Our solution

Our solution is a trained machine-learning model that combines individual clothes into complete looks accordingly to the user's needs such as their budget and the type of clothing they are looking for (smart casual, office clothes...). Furthermore, the application lets the user change clothes in the look by recommending other clothes, such as shirts, that go well with the rest of the look, i.e. the trousers and shoes.

Our method takes care of that all the pieces of clothing it suggests dovetail into each other resulting always in a fashionable, cohesive look. Users can even look for complete outfits by uploading an image of a person wearing fashionable clothes.

In the future, we will let the user login with their Zalando account which makes it possible for them to bring the clothes they have already purchased from Zalando to the system. This way, they can find matching clothes to the ones they already have, completing their looks to the max of fashion. This gives the user more reason to continue buying from Zalando. If he buys his clothes from Zalando, he can benefit from the system when he wants to buy new clothes that match the old ones.

The algorithm

The algorithm elaborates a set of clothes that all can be selected to make a cohesive, vogue look based on the user's needs. In order to do so it queries Zalando's API to search for clothes and their recommendations. It uses a machine vision approach trained by Zalando's products to find similar items to expand the recommendations it got from the API.

We trained two machine vision models: one to find similar products based on the product image and the other to find matching outfits in Zalando where a person was wearing fashionable clothes. The formal model was trained using 2221 product images, whereas the later was trained using 1138 images of models wearing Zalando's products.

The final recommendations shown to the user are chosen by comparing their colours to each other and how they fit together in the color wheel. This ensures that all the recommended clothes are fashionable together and a perfect match. To have a colour matching algorithm that is similar to human perception, we performed all colour operations on CIELAB colour space.

Challenges

There's only a limited amount of resources for fashion. Most of the time you would need to work with pictures which complicates the whole process of finding fashionable clothes automatically.

The API doesn't provide nearly enough functionality for our needs so we had to overcome the issues by workarounds.

Machine learning together with tailoring the UI posed tremendous challenges. Ensuring the the user has an easy time browsing the clothes and that the suggested clothes are actually fashionable and go well together were the greatest challenges throughout the project.

What we learned

In addition to learning about web technologies such as django, jquery, bootstrap and mongodb, we learned quite a deal about building a functional prototype fast. We learned that you shouldn't just jump right into coding but instead invest plenty of time in prototyping, understanding your potential users and existing solutions.

Prototyping and frameworks weren't the only learning outcome. A great deal of trial and error went into building the machine learning model. Staring from feature extraction to actually processing images was an uncharted territory to us and thus it turned out to be an extremely educational venture.

We didn't step out of our comfort-zone just in the machine learning part, but we also looked into the artistic and learned about the science behind matching colours. In doing so, we learned the principles of using colours in design.

Share this project:

Updates