Match makes it easy to search for images that look similar to each other. Using a state-of-the-art perceptual hash, it is invariant to scaling and 90 degree rotations. Its HTTP API is quick to integrate and flexible for a number of reverse image search applications. Kubernetes and Elasticsearch allow Match to scale to billions of images with ease while giving you full control over where your data is stored. Match uses the awesome ascribe/image-match under the hood for most of the image search legwork.
$ docker run -e ELASTICSEARCH_URL=https://daisy.us-west-1.es.amazonaws.com -it dsys/match
If you want to run ElasticSearch locally as well, have docker-compose installed on your system, clone this repository and type:
$ make dev
Match is packaged as a Docker container (dsys/match on Docker Hub), making it highly portable and scalable to billions of images. You can configure a few options using environment variables:
WORKER_COUNT(default: 4)
The number of gunicorn workers to spin up.
ELASTICSEARCH_URL(default: elasticsearch:9200)
A URL pointing to the Elasticsearch database where image signatures are to be stored. If you don't want to host your own Elasticsearch cluster, consider using AWS Elasticsearch Service. That's what we use.
ELASTICSEARCH_INDEX(default: images)
The index in the Elasticsearch database where image signatures are to be stored.
ELASTICSEARCH_DOC_TYPE(default: images)
The doc type used for storing image signatures.
Using in your own Kubernetes cluster
You can configure the service, replication controller, and secret like so:
请发表评论