Our client is a company that is part of the top 100 companies on Forbes with more than 100 million EUR in annual revenues. They are the world’s leading in Consumer Electronics, Home Appliances, Home Entertainment, Mobile Communications, and Solar and Display Technologies.
The goal was to design an image recommendation system comparable to what Google image search can do for the visual arts and creative industries.
The method is built upon Convolutional Neural Networks (CNN). This is the latest technology in the area of image recognition. The core system comprises two parts: model training and tuning and feature extraction, which is done offline.
We are adamant about using Agile methods in all of the work we do. Sometimes, our clients and partners want us to implement Agile methodologies ( Scrum, Kanban) from the beginning to the start of the process. When our engineers decide, we meticulously examine the project’s specifics. Then we suggest a project management method built in Scrum or Kanban, which is the most appropriate to the needs of the project and the context.
- The development team is comprised of five R&D developers located in our headquarters, and the development team is located at our client premises. We collaborate closely with the Client Service and Infrastructure Teams to provide tech assistance and maintenance.
- The model for ‘content’ has been trained to the Google Net model described by Szeged and colleagues. At ILSVRC 2014, I learn 1000 features that describe the contents of the images.
- The model ‘art-style’ is a modified version of this Google Net model, which was trained on 85K artworks and annotated 25 labels for style/genre.
- The model referred to as style is the trained ‘Flickr Style’ model as described by Karasev and colleagues. And produces 20 features.
- A 4th model is utilized to determine the nature of images (art or content), and the output is used to create an adaptive feature weighting system.
To ensure performance and scalability, feature extraction and learning are executed on the GPU using features learned and extracted using the CUDA software architecture offered by Nvidia.
Architecture & Technologies
The system was created with the idea of extensibility in mind. It is built around a core that combines multiple modules that can be plugged in: style, content, art style, and color. To ensure system scalability, we preferred to use various versions of each module plugging into it. The front is a responsive and adaptive layout built using Bootstrap to support every device (including mobile devices).
- C/C++, Python, Java
- Open CV, Open CL, Caffe
- MATLAB, Octave
- Machine Learning, Deep Learning