All Projects → rikenmehta03 → imsearch

rikenmehta03 / imsearch

Licence: Apache-2.0 license
Framework to build your own reverse image search engine

Programming Languages

python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to imsearch

Imageclassification
Deep Learning: Image classification, feature visualization and transfer learning with Keras
Stars: ✭ 83 (+29.69%)
Mutual labels:  search-engine, feature-extraction
Sitemap
Bolt Sitemap extension - create XML sitemaps for your Bolt website.
Stars: ✭ 19 (-70.31%)
Mutual labels:  search-engine
antropy
AntroPy: entropy and complexity of (EEG) time-series in Python
Stars: ✭ 111 (+73.44%)
Mutual labels:  feature-extraction
opensmile
The Munich Open-Source Large-Scale Multimedia Feature Extractor
Stars: ✭ 280 (+337.5%)
Mutual labels:  feature-extraction
autoencoders tensorflow
Automatic feature engineering using deep learning and Bayesian inference using TensorFlow.
Stars: ✭ 66 (+3.13%)
Mutual labels:  feature-extraction
copilot
Lane and obstacle detection for active assistance during driving. Uses windowed sweep for lane detection. Combination of object tracking and YOLO for obstacles. Determines lane change, relative velocity and time to collision
Stars: ✭ 95 (+48.44%)
Mutual labels:  yolov3
BDExamenes
Base de datos de exámenes de la ETSIIT
Stars: ✭ 23 (-64.06%)
Mutual labels:  search-engine
rebar detect
CCFDF rebar detection
Stars: ✭ 14 (-78.12%)
Mutual labels:  yolov3
lafzi-web
Antarmuka web untuk Lafzi: mesin pencari lafadz dalam Al-Quran
Stars: ✭ 25 (-60.94%)
Mutual labels:  search-engine
mapmint
Fast and easy webmapping.
Stars: ✭ 51 (-20.31%)
Mutual labels:  engine
domhttpx
domhttpx is a google search engine dorker with HTTP toolkit built with python, can make it easier for you to find many URLs/IPs at once with fast time.
Stars: ✭ 59 (-7.81%)
Mutual labels:  search-engine
RenderMaster
Graphic engine
Stars: ✭ 35 (-45.31%)
Mutual labels:  engine
gosearch
a fast, real-time file searching program for linux
Stars: ✭ 68 (+6.25%)
Mutual labels:  search-engine
rabbit-hole
An experimental voxel engine.
Stars: ✭ 39 (-39.06%)
Mutual labels:  engine
DungeonMaster.NET
Reimplementation of famous old Dungeon Master game.
Stars: ✭ 23 (-64.06%)
Mutual labels:  engine
Caffe2-yolo-v3
A Caffe2 implementation of the YOLO v3 object detection algorithm
Stars: ✭ 32 (-50%)
Mutual labels:  yolov3
Intelligent Document Finder
Document Search Engine Tool
Stars: ✭ 45 (-29.69%)
Mutual labels:  search-engine
crynn
3D Game Engine Created In C++ & OpenGL
Stars: ✭ 45 (-29.69%)
Mutual labels:  engine
zenaton-node
⚡ Node.js library to run and orchestrate background jobs with Zenaton Workflow Engine
Stars: ✭ 50 (-21.87%)
Mutual labels:  engine
hohser
Highlight or Hide Search Engine Results
Stars: ✭ 89 (+39.06%)
Mutual labels:  search-engine

imSearch: A generic framework to build your own reverse image search engine

CI

imsearch helps to create your own custom, robust & scalable reverse image search engine. This project uses state of the art object detection algorithm (yolov3) at its core to extract the features from an image. It uses an efficient cross-platform similarity search library NMSLIB for similarity search. Redis is used as a messaging queue between feature extractor and core engine. MongoDB is used to store the meta-data of all the indexed images. HD5 file system is used to store the feature vectors extracted from indexed images.

Installation

For the setup, a simple install.sh script can be used or can be installed using pip. Follow these simple steps to install imsearch library.

  • Feature extraction is GPU intensive process. So, to make the search real-time, running this engine on GPU enabled machine is recommended.
  • Install CUDA & NVIDIA graphics drivers (here)
  • Install PyTorch (here)
  • Install MongoDB (here)
  • Install Redis (here)
  • Run following commands
pip install --no-binary :all: nmslib
pip install imsearch

Build from source using install.sh

git clone https://github.com/rikenmehta03/imsearch.git
chmod +x install.sh
./install.sh

Example usage

import glob
import imsearch

all_images = glob.glob('path/to/image/folder')

# Initialize the index
index = imsearch.init('test')

# Add single image to the index
index.addImage(all_images[0]) 

# Add multiple image to the index
index.addImageBatch(all_images[1:])

# Create index and make it ready for the search query
index.createIndex() 

# find k nearest similar images
# choose policy from 'object' or 'global'. Search results will change accordingly.
# object: Object level matching. The engine will look for similarity at object level for every object detected in the image.
# global: Overall similarity using single feature space on the whole image.
similar = index.knnQuery('path/to/query/image', k=10, policy='object')

For detailed usage see examples/index.py

Docker

If you don't have Docker/Docker-Compose check Setup Docker section

Setup Docker

Docker

macOS: https://docs.docker.com/docker-for-mac/install/

linux: https://docs.docker.com/install/linux/docker-ce/ubuntu/

Docker Compose

linux: https://docs.docker.com/compose/install/

For CPU

docker-compose build
docker-compose run imsearch

For GPU

docker-compose -f docker-compose.gpu.yml build
docker-compose -f docker-compose.gpu.yml run imsearch

Credit

YOLOv3: An Incremental Improvement

Joseph Redmon, Ali Farhadi

Abstract
We present some updates to YOLO! We made a bunch of little design changes to make it better. We also trained this new network that’s pretty swell. It’s a little bigger than last time but more accurate. It’s still fast though, don’t worry. At 320 × 320 YOLOv3 runs in 22 ms at 28.2 mAP, as accurate as SSD but three times faster. When we look at the old .5 IOU mAP detection metric YOLOv3 is quite good. It achieves 57.9 AP50 in 51 ms on a Titan X, compared to 57.5 AP50 in 198 ms by RetinaNet, similar performance but 3.8× faster. As always, all the code is online at https://pjreddie.com/yolo/.

[Paper] [Project Webpage] [Authors' Implementation]

@article{yolov3,
  title={YOLOv3: An Incremental Improvement},
  author={Redmon, Joseph and Farhadi, Ali},
  journal = {arXiv},
  year={2018}
}

PyTorch-YOLOv3

Minimal PyTorch implementation of YOLOv3 [GitHub]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].