基於elasticsearch的圖片相似搜索
阿新 • • 發佈:2018-08-17
圖片 ava latest 分享 exc comm text port index 在git上發現有類似的項目
https://github.com/ascribe/image-match/blob/master/docs/source/start.rst
幫助文檔地址是
https://image-match.readthedocs.io/en/latest/start.html。
https://github.com/ascribe/image-match/blob/master/docs/source/start.rst
幫助文檔地址是
https://image-match.readthedocs.io/en/latest/start.html。
需要先建立索引
import os import hashlib from elasticsearch import Elasticsearch, ConnectionError, RequestError, NotFoundError from image_match.elasticsearch_driver import SignatureES DOC_TYPE = ‘image‘ MAPPINGS = { "mappings": { DOC_TYPE: { "dynamic": True, "properties": { "metadata": { "type": "object", "dynamic": True, "properties": { "tenant_id": { "type": "string", "index" : "not_analyzed" } } } } } } } def setup_index(): es = Elasticsearch() try: es.indices.create(index="images", body=MAPPINGS) except RequestError as e: if e.error == u‘index_already_exists_exception‘: es.indices.delete(index_name) else: raise setup_index()
然後dump數據
from elasticsearch import Elasticsearch from image_match.elasticsearch_driver import SignatureES es = Elasticsearch() ses = SignatureES(es) ses.add_image(‘https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg/687px-Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg‘) ses.add_image(‘https://pixabay.com/static/uploads/photo/2012/11/28/08/56/mona-lisa-67506_960_720.jpg‘) ses.add_image(‘https://upload.wikimedia.org/wikipedia/commons/e/e0/Caravaggio_-_Cena_in_Emmaus.jpg‘) ses.add_image(‘https://c2.staticflickr.com/8/7158/6814444991_08d82de57e_z.jpg‘)
索引結果如下
然後進行檢索
ses.search_image(‘https://pixabay.com/static/uploads/photo/2012/11/28/08/56/mona-lisa-67506_960_720.jpg‘)
返回結果如下, dist越小越好。
[ {‘dist‘: 0.0, ‘id‘: u‘AVM37oZq0osmmAxpPvx7‘, ‘metadata‘: None, ‘path‘: u‘https://pixabay.com/static/uploads/photo/2012/11/28/08/56/mona-lisa-67506_960_720.jpg‘, ‘score‘: 7.937254}, {‘dist‘: 0.22095170140933634, ‘id‘: u‘AVM37nMg0osmmAxpPvx6‘, ‘metadata‘: None, ‘path‘: u‘https://upload.wikimedia.org/wikipedia/commons/thumb/e/ec/Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg/687px-Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg‘, ‘score‘: 0.28797293}, {‘dist‘: 0.42557196987336648, ‘id‘: u‘AVM37p530osmmAxpPvx9‘, ‘metadata‘: None, ‘path‘: u‘https://c2.staticflickr.com/8/7158/6814444991_08d82de57e_z.jpg‘, ‘score‘: 0.0499953} ]
基於elasticsearch的圖片相似搜索