# Deep Image Search - AI-Based Image Search Engine
<p align="center"><img src="https://raw.githubusercontent.com/TechyNilesh/DeepImageSearch/786e96c48561d67be47dccbab2bc8debced414a3/images/deep%20image%20search%20logo%20New.png" alt="Deep+Image+Search+logo" height="218" width="350"></p>
**DeepImageSearch** is a powerful Python library that combines **state-of-the-art computer vision models** for feature extraction with **highly optimized algorithms for indexing and searching**. This enables fast and accurate similarity search and clustering of dense vectors, allowing users to build **scalable image search systems** capable of handling large-scale datasets. The library offers seamless integration with Python and provides **GPU support** for accelerated processing, delivering a comprehensive solution for researchers and developers working on image-based search and retrieval applications. By incorporating the **Vision Transformer (ViT) model**, DeepImageSearch further enhances its capabilities in identifying and understanding complex image patterns, making it an essential tool for advanced image search and analysis tasks.
![Generic badge](https://img.shields.io/badge/AI-Advance-green.svg) ![Generic badge](https://img.shields.io/badge/Python-v3-blue.svg) ![Generic badge](https://img.shields.io/badge/pip-v3-red.svg)
![Generic badge](https://img.shields.io/badge/ViT-Vision_Transformer-g.svg) ![Generic badge](https://img.shields.io/badge/TorchVision-v0.15-orange.svg) ![Generic badge](https://img.shields.io/badge/FAISS-latest-green.svg) [![Downloads](https://static.pepy.tech/personalized-badge/deepimagesearch?period=total&units=none&left_color=grey&right_color=green&left_text=Downloads)](https://pepy.tech/project/deepimagesearch)
## Developed By
### [Nilesh Verma](https://nileshverma.com "Nilesh Verma")
## Features
- You can now load more than 500+ pre-trained state-of-the-art computer vision models available on [timm](https://timm.fast.ai/).
- Faster Search using [FAISS (Facebook AI Similarity Search)](https://github.com/facebookresearch/faiss).
- Highly Accurate Output Results.
- GPU & CPU based indexing and Searching Support.
- Best for implementing on Python-based web applications or APIs.
- Applications include image-based e-commerce recommendations, social media, and other image-based platforms that want to implement image recommendations and search.
## Installation
This library is compatible with both *windows* and *Linux system* you can just use **PIP command** to install this library on your system:
```shell
pip install DeepImageSearch --upgrade
```
<span style="color:yellow"> If you're using a GPU, first uninstall the **faiss_cpu** version and then try installing the **faiss_gpu** version. The library installs the CPU version by default because not all systems support GPUs. </span>
## How To Use?
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:
```python
from DeepImageSearch import Load_Data, Search_Setup
# Load images from a folder
image_list = Load_Data().from_folder(['folder_path'])
# Set up the search engine, You can load 'vit_base_patch16_224_in21k', 'resnet50' etc more then 500+ models
st = Search_Setup(image_list=image_list, model_name='vgg19', pretrained=True, image_count=100)
# Index the images
st.run_index()
# Get metadata
metadata = st.get_image_metadata_file()
# Add new images to the index
st.add_images_to_index(['image_path_1', 'image_path_2'])
# Get similar images
st.get_similar_images(image_path='image_path', number_of_images=10)
# Plot similar images
st.plot_similar_images(image_path='image_path', number_of_images=9)
# Update metadata
metadata = st.get_image_metadata_file()
```
This code demonstrates how to load images, set up the search engine, index the images, add new images to the index, and retrieve similar images.
<span style="color:red"> **Note:** Some models may not work properly due to resizing and normalization issues. By default, I have chosen a size of 224x244. Please try to select models that support this size or resized inputs. I have already tested many models, but testing over 500 is beyond my scope.</span>
## Documentation
This project aims to provide a powerful image search engine using deep learning techniques. To get started, please follow the link: [Read Full Documents](https://github.com/TechyNilesh/DeepImageSearch/blob/main/Documents/Document.md)
## Screenshot
<p align="center"><img src="https://github.com/TechyNilesh/DeepImageSearch/blob/c2a5e511662adade6ddece9be67167fe3f96cc4c/images/Deep-Image-Search-Demo-Screenshot.png?raw=true" alt="Brain+Machine" height="auto" width="auto"></p>
## Citaion
If you use DeepImageSerach in your Research/Product, please cite the following GitHub Repository:
```latex
@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}},
}
```
### Please do STAR the repository, if it helped you in anyway.
**More cool features will be added in future. Feel free to give suggestions, report bugs and contribute.**
Raw data
{
"_id": null,
"home_page": "https://github.com/TechyNilesh/DeepImageSearch",
"name": "DeepImageSearch",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "Deep Image Search Engine,AI Image search,Image Search Python",
"author": "Nilesh Verma",
"author_email": "me@nileshverma.com",
"download_url": "https://files.pythonhosted.org/packages/af/56/9e61f13e55a4e0df6d5d44122a278b087fcad384a9063bba97c009b59cca/DeepImageSearch-2.5.tar.gz",
"platform": null,
"description": "# Deep Image Search - AI-Based Image Search Engine\r\n<p align=\"center\"><img src=\"https://raw.githubusercontent.com/TechyNilesh/DeepImageSearch/786e96c48561d67be47dccbab2bc8debced414a3/images/deep%20image%20search%20logo%20New.png\" alt=\"Deep+Image+Search+logo\" height=\"218\" width=\"350\"></p>\r\n\r\n**DeepImageSearch** is a powerful Python library that combines **state-of-the-art computer vision models** for feature extraction with **highly optimized algorithms for indexing and searching**. This enables fast and accurate similarity search and clustering of dense vectors, allowing users to build **scalable image search systems** capable of handling large-scale datasets. The library offers seamless integration with Python and provides **GPU support** for accelerated processing, delivering a comprehensive solution for researchers and developers working on image-based search and retrieval applications. By incorporating the **Vision Transformer (ViT) model**, DeepImageSearch further enhances its capabilities in identifying and understanding complex image patterns, making it an essential tool for advanced image search and analysis tasks.\r\n\r\n![Generic badge](https://img.shields.io/badge/AI-Advance-green.svg) ![Generic badge](https://img.shields.io/badge/Python-v3-blue.svg) ![Generic badge](https://img.shields.io/badge/pip-v3-red.svg)\r\n![Generic badge](https://img.shields.io/badge/ViT-Vision_Transformer-g.svg) ![Generic badge](https://img.shields.io/badge/TorchVision-v0.15-orange.svg) ![Generic badge](https://img.shields.io/badge/FAISS-latest-green.svg) [![Downloads](https://static.pepy.tech/personalized-badge/deepimagesearch?period=total&units=none&left_color=grey&right_color=green&left_text=Downloads)](https://pepy.tech/project/deepimagesearch)\r\n\r\n## Developed By\r\n\r\n### [Nilesh Verma](https://nileshverma.com \"Nilesh Verma\")\r\n\r\n## Features\r\n- You can now load more than 500+ pre-trained state-of-the-art computer vision models available on [timm](https://timm.fast.ai/).\r\n- Faster Search using [FAISS (Facebook AI Similarity Search)](https://github.com/facebookresearch/faiss).\r\n- Highly Accurate Output Results.\r\n- GPU & CPU based indexing and Searching Support.\r\n- Best for implementing on Python-based web applications or APIs.\r\n- Applications include image-based e-commerce recommendations, social media, and other image-based platforms that want to implement image recommendations and search.\r\n\r\n## Installation\r\n\r\nThis library is compatible with both *windows* and *Linux system* you can just use **PIP command** to install this library on your system:\r\n\r\n```shell\r\npip install DeepImageSearch --upgrade\r\n```\r\n<span style=\"color:yellow\"> If you're using a GPU, first uninstall the **faiss_cpu** version and then try installing the **faiss_gpu** version. The library installs the CPU version by default because not all systems support GPUs. </span>\r\n\r\n## How To Use?\r\n\r\nWe 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:\r\n\r\n```python\r\nfrom DeepImageSearch import Load_Data, Search_Setup\r\n\r\n# Load images from a folder\r\nimage_list = Load_Data().from_folder(['folder_path'])\r\n\r\n # Set up the search engine, You can load 'vit_base_patch16_224_in21k', 'resnet50' etc more then 500+ models \r\n st = Search_Setup(image_list=image_list, model_name='vgg19', pretrained=True, image_count=100)\r\n\r\n# Index the images\r\nst.run_index()\r\n\r\n# Get metadata\r\nmetadata = st.get_image_metadata_file()\r\n\r\n# Add new images to the index\r\nst.add_images_to_index(['image_path_1', 'image_path_2'])\r\n\r\n# Get similar images\r\nst.get_similar_images(image_path='image_path', number_of_images=10)\r\n\r\n# Plot similar images\r\nst.plot_similar_images(image_path='image_path', number_of_images=9)\r\n\r\n# Update metadata\r\nmetadata = st.get_image_metadata_file()\r\n```\r\n\r\nThis code demonstrates how to load images, set up the search engine, index the images, add new images to the index, and retrieve similar images.\r\n\r\n<span style=\"color:red\"> **Note:** Some models may not work properly due to resizing and normalization issues. By default, I have chosen a size of 224x244. Please try to select models that support this size or resized inputs. I have already tested many models, but testing over 500 is beyond my scope.</span>\r\n\r\n## Documentation\r\n\r\nThis project aims to provide a powerful image search engine using deep learning techniques. To get started, please follow the link: [Read Full Documents](https://github.com/TechyNilesh/DeepImageSearch/blob/main/Documents/Document.md)\r\n\r\n## Screenshot\r\n\r\n<p align=\"center\"><img src=\"https://github.com/TechyNilesh/DeepImageSearch/blob/c2a5e511662adade6ddece9be67167fe3f96cc4c/images/Deep-Image-Search-Demo-Screenshot.png?raw=true\" alt=\"Brain+Machine\" height=\"auto\" width=\"auto\"></p>\r\n\r\n## Citaion\r\n\r\nIf you use DeepImageSerach in your Research/Product, please cite the following GitHub Repository:\r\n\r\n```latex\r\n@misc{TechyNilesh/DeepImageSearch,\r\n author = {VERMA, NILESH},\r\n title = {Deep Image Search - AI-Based Image Search Engine},\r\n year = {2021},\r\n publisher = {GitHub},\r\n journal = {GitHub repository},\r\n howpublished = {\\url{https://github.com/TechyNilesh/DeepImageSearch}},\r\n}\r\n```\r\n\r\n### Please do STAR the repository, if it helped you in anyway.\r\n\r\n**More cool features will be added in future. Feel free to give suggestions, report bugs and contribute.**\r\n\r\n\r\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "DeepImageSearch is a Python library for fast and accurate image search. It offers seamless integration with Python, GPU support, and advanced capabilities for identifying complex image patterns using the Vision Transformer models.",
"version": "2.5",
"split_keywords": [
"deep image search engine",
"ai image search",
"image search python"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "af569e61f13e55a4e0df6d5d44122a278b087fcad384a9063bba97c009b59cca",
"md5": "3932b248f51c4e44d32a4e7215d59ca0",
"sha256": "bc8906df761d3f0b1c4b22c8a8125d64a366edce06945391ec1ebecbd993cf73"
},
"downloads": -1,
"filename": "DeepImageSearch-2.5.tar.gz",
"has_sig": false,
"md5_digest": "3932b248f51c4e44d32a4e7215d59ca0",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 8045,
"upload_time": "2023-04-18T04:23:50",
"upload_time_iso_8601": "2023-04-18T04:23:50.210361Z",
"url": "https://files.pythonhosted.org/packages/af/56/9e61f13e55a4e0df6d5d44122a278b087fcad384a9063bba97c009b59cca/DeepImageSearch-2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-18 04:23:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "TechyNilesh",
"github_project": "DeepImageSearch",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [],
"lcname": "deepimagesearch"
}