Deep Image Search is an AI-based image search engine that incorporates ViT (Vision Transformer) for feature extraction and utilizes a tree-based vectorized search technique.
- Faster Search O(logN) Complexity.
- High Accurate Output Result.
- Best for Implementing on python based web application or APIs.
- Best implementation for College students and freshers for project creation.
- Applications are Images based E-commerce recommendation, Social media and other image-based platforms that want to implement image recommendation and search.
This library is compatible with both windows and Linux system you can just use PIP command to install this library on your system:
pip install DeepImageSearch
If you are facing any VS C++ 14 related issue in windows during installation, kindly refer to following solution: Pip error: Microsoft Visual C++ 14.0 is required
We have provided the Demo folder under the GitHub repository, you can find the example in both .py and .ipynb file. Following are the ideal flow of the code:
There are three important classes you need to load LoadData - for data loading, Index - for indexing the images to database/folder, SearchImage - For searching and Plotting the images
# Importing the proper classes
from DeepImageSearch import Index,LoadData,SearchImage
For loading the images data we need to use the LoadData object, from there we can import images from the CSV file and Single/Multiple Folders.
# load the Images from the Folder (You can also import data from multiple folders in python list type)
image_list = LoadData().from_folder(['images','wiki-images'])
# Load data from CSV file
image_list = LoadData().from_csv(csv_file_path='your_csv_file.csv',images_column_name='column_name')
For faster retrieval we are using tree-based indexing techniques for Images features, So for that, we need to store meta-information on the local path [meta-data-files/] folder.
# For Faster Serching we need to index Data first, After Indexing all the meta data stored on the local path
Index(image_list).start()
Searching operation is performed by the following method:
# for searching, you need to give the image path and the number of the similar image you want
SearchImage().get_similar_images(image_path=image_list[0],number_of_images=5)
you can also plot some similar images for viewing purpose by following the code method:
# If you want to plot similar images you can use this method, It will plot 6 most similar images from the data index
SearchImage().plot_similar_images(image_path = image_list[0],number_of_images=6)
This project aims to provide a powerful image search engine using deep learning techniques. To get started, please follow the link: Read Full Documents
If you use DeepImageSerach in your Research/Product, please cite the following GitHub Repository:
@misc{TechyNilesh/DeepImageSearch,
author = {VERMA, NILESH},
title = {Deep Image Search - AI-Based Image Search Engine},
year = {2021},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/TechyNilesh/DeepImageSearch}},
}
More cool features will be added in future. Feel free to give suggestions, report bugs and contribute.