Buy Me That LOOK
Tags: Machine Learning, Pose Estimation, Deep Learning, Object Detection, Recommendation System

In the third stage, we can have metrics like Precision and Recall to identify how many correct recommendations we have retrieved.

5.Research section

Link 1: https://arxiv.org/pdf/2008.11638.pdf

Overview:

So in this paper, they have given the whole framework for the fashion product recommendation system.

Step-1: In this module, all full shot images are detected using a pose detection classifier then we find all front-facing images.

Step-2: Images from stage-1 are passed in stage-2 a CNN network with active learning detects the fashion objects in the image and also does localisation.

Step-3: In this module, embeddings are made of all images available in our catalogue and stored in the database. Here they have used Triplet-Net-Based Embedding Learning to generate for our test purpose we can also use a simple CNN based autoencoder.

Step-4:In this step we retrieve similar images from the database to our query image. Here they have used cosine similarity get similar metrics from the database

So above I have explained a high-level overview of the architecture that is mentioned in the paper. We can also see that each step/module is loosely connected to each other so we need not stick to algorithms that are used in the paper. We can experiment with our own set of algorithms for our dataset. We can use this as a base architecture and try various sets of algorithms that fit our data.

Link 2:A 2019 guide to Human Pose Estimation with Deep Learning

Overview:

This blog has a summary of various approaches used to pose detection problems. This blog has saved a lot of time as now I can try all possible available pre-trained models which are being well tested on standard datasets. Then choose the architecture that works best on my dataset then later fine-tune or modify the architecture to get the best results. Some of the architectures mentioned in the blog and their result on the standard dataset are:

Efficient Object Localization Using Convolutional Networks (CVPR’15) [arXiv]

Architecture:

Results

Deep High-Resolution Representation Learning for Human Pose Estimation [HRNet] (CVPR’19)

Architecture

Results

So in my first stage for pose detection, I will be using one of this architecture to solve the pose detection problem

Link -3Clothing Detection for Fashion Recommendation

Overview:

This blog has links to labelled datasets for fashion object detection. This dataset can be used on top of our dataset to increase the accuracy of our model. In this blog, they have used the object detection API of Tensorflow for training and testing various models. So this API has several pre-implemented architectures with pre-trained weights on the COCO (Common Objects in Context) dataset, such as:

The blog has a detailed explanation of how to use this API with good snippets of code which will help try the above models first as a black box and then later choose the architecture that gives best results on our datasets. Later then we can fine-tune and modify our architecture to give the best results. This blog will help us cut short our research process and help us to build our final product.

Overview

This blog has a good explanation of how to use Triplet loss for image similarity problems. So my understanding of Triplet Loss architecture it helps us to learn distributed embedding by the notion of similarity and dissimilarity. It’s a kind of neural network architecture where multiple parallel networks are trained which share weights among each other. During prediction time, input data is passed through one network to compute distributed embeddings representation of input data.

Architecture of model

Link-5

TensorFlow Model Optimization Toolkit — Pruning API

Post-training quantization

Overview

So as we have a low latency and scalability requirement it is very important that our models are very efficient.So above blogs mention various available techniques that help us to reduce the size of models. Some techniques mentioned in the blog are:

Weight Pruning: Weight pruning means eliminating unnecessary values in weight tensors. We are practically setting the neural network parameters’ values to zero to remove what we estimate are unnecessary connections between the layers of a neural network. This is done during the training process to allow the neural network to adapt to the changes.

Post-training quantization: Tensorflow has given a tool which directly quantization of any trained model which makes it very easy to use this technique. Under the hood, TensorFlow is running optimizations by lowering the precision of the parameters (i.e. neural network weights) from their training-time 32-bit floating-point representations into much smaller and efficient 8-bit integer ones. These optimizations will make sure to pair the reduced-precision operation definitions in the resulting model with kernel implementations that use a mix of fixed- and floating-point math. This will execute the heaviest computations fast in lower precision, but the most sensitive ones with higher precision, thus typically resulting in little to no final accuracy losses for the task, yet a significant speed-up over pure floating-point execution