Reverse Image Search Web Application
This project is based on Deep Learning (ResNET50) and Machine Learning. It is similar to the google and amazon image search option, where you can upload any image and get the recommendation similar to the given image. In this project we use Myntra and Amazon image dataset from kaggle which include watches, shoes, colths. As an update we can train this model with other datasets also like furniture, cars, etc.
ResNET50 Convolutional neural network (CNN)
K-Nearest Neighbors Algorithm (KNN) Streamlit
📚 Documentation
| Document | Description |
|---|---|
| Technical Specs | Architecture, technology stack, and API reference |
| Getting Started | Installation, setup, and running the application |
| Technical Debt | Suggested improvements and refactoring ideas |
🏗️ Architecture Summary
The system uses a two-stage approach:
- Feature Extraction: ResNet50 (pre-trained on ImageNet) extracts 2048-dimensional feature vectors from images
- Similarity Search: K-Nearest Neighbors finds the most similar images using Euclidean distance
Interfaces:
- Streamlit UI: Interactive web app for uploading and searching images
- Flask API: REST endpoints for programmatic access
See docs/SPECS.md for detailed technical specifications.
🚀 Quick Start
Prerequisites
- Python 3.8 - 3.11
- 8GB RAM minimum
- ~20GB disk space
Installation
git clone https://github.com/deepamkalekar/Reverse-Image-Search-ML-DL-Project.git
cd Reverse-Image-Search-ML-DL-Project
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
Setup Dataset
- Download Fashion Product Images Dataset (~16GB)
- Create
images/folder and extract dataset images there - Create required directories:
mkdir -p uploads embeddings filenames
Generate Embeddings
python run_generate_embeddings.py
Run the Application
Streamlit Web UI:
streamlit run run_streamlit_ui.py
Access at http://localhost:8501
Flask API:
python run_api_server.py
API available at http://localhost:5002
See docs/GETTING_STARTED.md for detailed instructions, troubleshooting, and configuration options.
Run Locally (Legacy)
Clone the project
git clone https://github.com/deepamkalekar/Reverse-Image-Search-ML-DL-Project.git
Go to the project directory
cd Reverse-Image-Search-ML-DL-Project
Download Dataset :- Product Image Data (16 GB)
Create folder images and move all the download images to this folder
Create folder uploads in the same directory for user, whenever user upload a photo it will be saved in this folder
Install dependencies
pip install -r requirements.txt
Generate Embeddings
python run_generate_embeddings.py
Run the Streamlit Web App
streamlit run run_streamlit_ui.py

