首页 > 其他 > 详细

基于elasticsearch的图片相似搜索

时间:2018-08-17 10:10:23      阅读:536      评论:0      收藏:0      [点我收藏+]
在git上发现有类似的项目
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的图片相似搜索

原文:http://blog.51cto.com/12597095/2160915

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!