使用elasticSearch实现以图搜图

逛github的时候发现了这个有趣的项目

项目地址:https://github.com/sethuiyer/Image-to-Image-Search

实现原理

使用CaptionGenerator对图片生成说明

CaptionGenerator可以识别某一个图片并生成描述该图片的语言

比方说下面这张图片,CaptionGenerator会生成:一个男人在冲浪

将生成的图片描述和图片地址保存到elasticsearch

查询图片时生成查询图片的描述,将此描述放到elasticsearch去进行匹配,以此显示出匹配度相近的图片

快速安装

elasticsearch只能在linux系统上安装,所以需要一台虚拟机或者是云服务器,Python程序可以跑在云服务器或者是本地

我的配置:

  • elasticsearch6.0

  • java1.8

  • centos7.6

  • python3.6

实现步骤:

  1. 安装好以上环境

  2. 下载项目到本地https://github.com/sethuiyer/Image-to-Image-Search

  3. 将此模型https://cs.stanford.edu/people/karpathy/neuraltalk/flickr8k_cnn_lstm_v1.zip下载解压后放入models 文件夹下

  4. 根据requirements.txt文件安装Python包,下面的是我自己改的requirements.txt,按照项目里的版本跑不了

    absl-py==0.7.1
    astor==0.7.1
    bleach==3.3.0
    Click==7.0
    elasticsearch==6.3.1
    enum34==1.1.6
    Flask==1.0.3
    gast==0.2.2
    grpcio==1.19.0
    h5py==2.9.0
    html5lib==0.9999999
    itsdangerous==1.1.0
    Jinja2==2.11.3
    Keras==2.2.4
    Keras-Applications==1.0.7
    Keras-Preprocessing==1.0.9
    Markdown==3.1
    MarkupSafe==1.1.1
    mock==2.0.0
    numpy==1.16.2
    pbr==5.1.3
    Pillow==8.1.1
    protobuf==3.7.1
    PyYAML==5.4
    scipy==1.2.1
    six==1.12.0
    tensorboard==1.13.1
    tensorflow==2.4.0
    tensorflow-estimator==1.13.0
    tensorflow-tensorboard==0.1.8
    termcolor==1.1.0
    urllib3==1.24.2
    Werkzeug==0.15.3
    
  5. 如果你的项目和elasticsearch在一台机子上就跳过,否则需要将文件server.py和index_database.py里的es = Elasticsearch()改为es = Elasticsearch([{'host': 'xxx', 'port': 9200}], timeout=3600),xxx改为安装了elasticsearch机子的ip

  6. 运行index_database.py,添加信息到elasticsearch,可以访问http://xxx:9200/desearch/_search查看是否添加成功

  7. 接着运行server.py,启动web服务,打开http://127.0.0.1:5000/search即可搜图

使用elasticSearch实现以图搜图相关推荐

  1. java elasticsearch 实现以图搜图效果

    前言: 现在需要用java+elasticsearch的方式实现以图搜图的效果,效果如下: 相关文章:https://blog.csdn.net/m0_52640724/article/details ...

  2. 使用elasticSearch搭建本地以图搜图服务

    使用elasticSearch的向量检索实现以图搜图 文章目录 使用elasticSearch的向量检索实现以图搜图 前言 快速开始 安装elasticsearch和kibana 创建索引 下载项目 ...

  3. towhee+elasticsearch实现本地以图搜图

    towhee-img-search towhee+elasticsearch实现本地以图搜图 github地址:https://github.com/xjhqre/towhee-img-search ...

  4. Java+ElasticSearch+Pytorch实现以图搜图

    以图搜图,涉及两大功能:1.提取图像特征向量.2.相似向量检索. 第一个功能我通过编写pytorch模型并在java端借助djl调用实现,第二个功能通过elasticsearch7.6.2的dense ...

  5. 推荐系统工程篇之搭建以图搜图服务

    基于内容的召回在推荐系统中是比较常见的召回策略,常见有基于用户或物品的标签召回或者基于用户的年龄,地域等召回,一般该策略的实现是基于开源软件 Elasticseach 实现的.虽然召回的结果都比较合理 ...

  6. Java调用Pytorch实现以图搜图(附源码)

    Java调用Pytorch实现以图搜图 设计技术栈: 1.ElasticSearch环境: 2.Python运行环境(如果事先没有pytorch模型时,可以用python脚本创建模型): 1.运行效果 ...

  7. 工程篇之搭建以图搜图服务

    基于内容的召回在推荐系统中是比较常见的召回策略,常见有基于用户或物品的标签召回或者基于用户的年龄,地域等召回,一般该策略的实现是基于开源软件 Elasticseach 实现的.虽然召回的结果都比较合理 ...

  8. 实战 | 多种方法实现以图搜图

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文转自:AI 算法与图像处理 概述 以图搜图技术是日常生活中常用 ...

  9. 以图搜图Python实现Hash算法

    以图搜图(一):Python实现dHash算法 http://yshblog.com/blog/43 以图搜图(二):Python实现pHash算法 http://yshblog.com/blog/4 ...

  10. 以图搜图 图像匹配_图像匹配,基于深度学习DenseNet实现以图搜图功能

    原标题:图像匹配,基于深度学习DenseNet实现以图搜图功能 度学习的发展使得在此之前以机器学习为主流算法的相关实现变得简单,而且准确率更高,效果更好,在图像检索这一块儿,目前有谷歌的以图搜图,百度 ...

最新文章

  1. ubuntu安装thrift
  2. poj 3348(求凸包面积)
  3. maven 安装m2e 报错
  4. python帮助系统函数_【Python】【基础知识】【内置函数】【help的使用方法】
  5. viewpager 自定义翻页效果_Android RecyclerView自定义LayoutManager
  6. java水泡_JAVA图像处理系列(八)——艺术效果:水泡
  7. 什么样的人适合自学编程?你以为你自学难是为什么?来看看答案吧!
  8. STM32工作笔记0048---Systick滴答定时器---延时函数讲解
  9. 查看CentOS系统版本,Linux内核版本,32位还是64位
  10. centos 5.8 mysql_linux centos5.8装yum安装mysql
  11. USES_CONVERSION W2A
  12. linux网络测试题,Linux 练习题-4网络 命令
  13. 如何解除禁用 UAC
  14. 获取webshell的方法
  15. 关于嵌入式的bin、hex、axf、map
  16. 2013小企业会计新准则下会计科目的变化
  17. 如何设置U盘为第一启动项,在安装windows操作系统时如何从U盘启动?
  18. 工业机器人产业链展板_赵德明调研六大新产业十大产业链发展情况
  19. 通过CSS3的hover一个元素使其兄弟元素也相应改变某种属性
  20. MNL——多项Logit模型学习笔记(二)

热门文章

  1. 在Google上做搜索引擎优化 (SEO),最重要的是哪几点?
  2. 域管理员与本地管理员密码破解
  3. TCP 拥塞控制详解
  4. 图能页:傻瓜式的手机网页制作服务
  5. gcc/g++编译错误Assembler Error
  6. 统计相关系数(1)——Pearson(皮尔逊)相关系数及MATLAB实现
  7. 王亮:游戏AI探索之旅——从alphago到moba游戏
  8. html ol标签用罗马数字,HTML重点标签总结
  9. 计算机事业单位简答题MAC
  10. 淘宝上的零食能买吃吗?网上进口食品的秘密。