Build a Similar Images Finder with Python, Keras, and Tensorflow

Build a Similar Images Finder with Python, Keras, and Tensorflow

Build your own image similarity application using Python to search and find images of products that are similar to any given product. You will implement the K-Nearest Neighbor algorithm to find products with maximum similarity.
explanation image

Videos

Each project comes with 2-5 hours of micro-videos explaining the solution.

ipython image

Code & Dataset

Get access to 102+ solved projects with iPython notebooks and datasets.

project experience

Project Experience

Add project experience to your Linkedin/Github profiles.

Customer Love

What will you learn

KNN Overview
Higher Dimensional Database - Overview
ANN BenchMarks and libraries of HDDB
Downloading Imaterialist using Python Script
Understanding MobileNet Architecture
Understanding Feature Extraction
Setting up ElasticSearch with a plugin for KNN
How to connect to ElasticSearch using Python
Indexing Using ElasticSearch with Python
Querying ElasticDb over Knn with Python
ElasticSearch API in action and understanding ImageSearch Response

Project Description

Business Objective

 We are all aware of how online shopping and e commerce is growing rapidly. Hence, it is imperative for computer vision systems to automatically and accurately recognize products based on images at the stock keeping unit (SKU) level. This project mainly focuses on meeting this market need. The core idea of this project is search and find images of  products similar to any given image of a product.

 

Goal

To find images similar to any given image from the database

 

Tech Stack

  • Language : Python
  • Cloud support : AWS
  • Libraries : Elasticsearch, Tensorflow, Keras, Numpy, Pandas, Requests, Scikit-learn

 

Data Overview

The dataset includes images from 2,019 product categories with one ground truth class label for each image. It includes a total of 1,011,532 images for training, 10,095 images for validation and 90,834 images for testing.


It is to be noted that for each image,only the URL is provided. Users need to download the images by themselves. It is also to be noted that the image URLs may become unavailable over time.

 

Data Source : https://www.kaggle.com/c/imaterialist-product-2019/overview

 

Approach

  1. Download images from label_id - Downloading all the images using the given URLs of images.
  2. Indexing using ElasticSearch - Feature extraction is done using the weights of imagenets from MobileNetV
  3. Image2Image Query - Use K Nearest Neighbour in Elastic search to find K nearest vectors which are having maximum similarity for the queried image.

New Projects

Curriculum For This Mini Project

Business Objective
05m
Supervised Learning and its approaches
05m
Unsupervised Learning
03m
Understanding KNN Part 1
04m
Understanding KNN Part 2
04m
Type of Database
04m
HDDB and Embedding Space
06m
ANN BenchMarks and libraries of HDDB
04m
Setting up ElasticSearch with a plugin for KNN
04m
Quick Overview of ElasticSearch(Knn) from AWS Documentation
04m
Understand ElasticSearch from pypi as a package
04m
Imaterialist Data Overview
03m
Downloading Imaterialist data using Python Script
04m
Understanding MobileNet Architecture
03m
Understanding Feature Extraction
06m
How to connect to ElasticSearch using Python
05m
Indexing Using ElasticSearch with Python
05m
Querying ElasticDb over Knn with Python
06m
Django architecture overview
04m
Data downloading API
03m
Image indexing API
05m
Image Search API
04m
How to run the project on any data
03m

Latest Blogs