All Projects → tuan3w → Visual_search

tuan3w / Visual_search

Licence: mit
A visual search engine based on Elasticsearch and Tensorflow

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Visual search

Elasticsearchdsl
Query DSL library for Elasticsearch
Stars: ✭ 373 (-11.4%)
Mutual labels:  elasticsearch
Yii2 Elasticsearch
Yii 2 Elasticsearch extension
Stars: ✭ 401 (-4.75%)
Mutual labels:  elasticsearch
Canal mysql elasticsearch sync
基于canal的mysql和elasticsearch实时同步方案,支持增量同步和全量同步
Stars: ✭ 410 (-2.61%)
Mutual labels:  elasticsearch
Notebook
🍎 笔记本
Stars: ✭ 381 (-9.5%)
Mutual labels:  elasticsearch
Puppet Elasticsearch
Elasticsearch Puppet module
Stars: ✭ 396 (-5.94%)
Mutual labels:  elasticsearch
Awesome Elasticsearch
A curated list of the most important and useful resources about elasticsearch: articles, videos, blogs, tips and tricks, use cases. All about Elasticsearch!
Stars: ✭ 4,168 (+890.02%)
Mutual labels:  elasticsearch
Elasticsearch
The missing elasticsearch ORM for Laravel, Lumen and Native php applications
Stars: ✭ 375 (-10.93%)
Mutual labels:  elasticsearch
Elasticsearch Rs
Official Elasticsearch Rust Client
Stars: ✭ 412 (-2.14%)
Mutual labels:  elasticsearch
Gnomock
Test your code without writing mocks with ephemeral Docker containers 📦 Setup popular services with just a couple lines of code ⏱️ No bash, no yaml, only code 💻
Stars: ✭ 398 (-5.46%)
Mutual labels:  elasticsearch
Elasticsearch Prometheus Exporter
Prometheus exporter plugin for Elasticsearch
Stars: ✭ 409 (-2.85%)
Mutual labels:  elasticsearch
Hibernate Search
Hibernate Search: full-text search for domain model
Stars: ✭ 382 (-9.26%)
Mutual labels:  elasticsearch
Ck
Collective Knowledge framework (CK) helps to organize black-box research software as a database of reusable components and micro-services with common APIs, automation actions and extensible meta descriptions. See real-world use cases from Arm, General Motors, ACM, Raspberry Pi foundation and others:
Stars: ✭ 395 (-6.18%)
Mutual labels:  elasticsearch
Janusgraph
JanusGraph: an open-source, distributed graph database
Stars: ✭ 4,277 (+915.91%)
Mutual labels:  elasticsearch
Elasticsearch Jieba Plugin
jieba analysis plugin for elasticsearch 7.0.0, 6.4.0, 6.0.0, 5.4.0,5.3.0, 5.2.2, 5.2.1, 5.2, 5.1.2, 5.1.1
Stars: ✭ 379 (-9.98%)
Mutual labels:  elasticsearch
Gpmall
【咕泡学院实战项目】-基于SpringBoot+Dubbo构建的电商平台-微服务架构、商城、电商、微服务、高并发、kafka、Elasticsearch
Stars: ✭ 4,241 (+907.36%)
Mutual labels:  elasticsearch
Abc
Power of appbase.io via CLI, with nifty imports from your favorite data sources
Stars: ✭ 375 (-10.93%)
Mutual labels:  elasticsearch
Laravel Scout Elastic Demo
笑来搜原型 Laravel Scout & ElasticSearch ik
Stars: ✭ 403 (-4.28%)
Mutual labels:  elasticsearch
Pfelk
pfSense/OPNsense + ELK
Stars: ✭ 417 (-0.95%)
Mutual labels:  elasticsearch
Devops Python Tools
80+ DevOps & Data CLI Tools - AWS, GCP, GCF Python Cloud Function, Log Anonymizer, Spark, Hadoop, HBase, Hive, Impala, Linux, Docker, Spark Data Converters & Validators (Avro/Parquet/JSON/CSV/INI/XML/YAML), Travis CI, AWS CloudFormation, Elasticsearch, Solr etc.
Stars: ✭ 406 (-3.56%)
Mutual labels:  elasticsearch
Elasticsearch
This repository has been archived.
Stars: ✭ 405 (-3.8%)
Mutual labels:  elasticsearch

Visual Search

A visual search engine based on Elasticsearch and Tensorflow (now fully dockerized to run it in up-to-date development environments).

Visual search enging

Description

This repository contains code in Python 2.7 and utilizes Faster-RCNN (with VGG-16 as backbone) implemented in Tensorflow 0.12.1 to extract features from images. An Elasticsearch instance is used to store feature vectors of the corresponding images, along with a plugin to compute distance between them.

TODO: Replace the outdated Faster-RCNN with a faster and more accurate model (suggestions or any collaboration is welcomed).

Requirements

The setup assumes you have a running installation of nvidia-docker and driver version 367.48 or above.

Setup Elasticsearch

First, we need to build the Elasticsearch plugin to compute distance between feature vectors. Make sure that you have Maven installed.

cd elasticsearch/es-plugin
mvn install

Next, we need to create a docker network so that all other containers can resolve the IP address of our elasticsearch instance.

docker network create vs_es_net

Finally, start the elasticsearch container. It will automatically add the plugin, create a named docker volume for persistent storage and connect the container to the network we just created:

cd ../ && docker-compose up -d

Index images

In order to populate the elasticsearch db with images, we need to first process them with a feature extractor (Faster-RCNN). The indexer services can do this for any image we place inside visual_search/images.

First we build a dockerized environment for the object detection model to run in:

cd visual_search && docker build --tag visual_search_env .

Here we use an earlier version implemented by @Endernewton. To get pre-trained model, you can visit release section, download and extract file model.tar.gz to visual_search/models/ folder. Optionally, you can run:

mkdir models && cd models
curl https://github.com/tuan3w/visual_search/releases/download/v0.0.1/model.tar.gz
tar -xvf model.tar.gz

To index the desired images, copy the corresponding compose file to the proper directory and start the indexing service:

cd ../ && cp indexer/docker-compose.yml .
docker-compose up

Start server

Before starting the server, again copy the corresponding compose file (overwrite the one used for indexing data) into the proper directory and start the containerized flask server:

cp server/docker-compose.yml .
docker-compose up -d

Now, you can access the link http://localhost:5000/static/index.html to test the search engine.

LICENSE

MIT

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].