点击我爱计算机视觉标星,更快获取CVML新技术


现实中我们经常需要用到图像去重,比如为了扩充人脸图像,可以在百度、Google通过关键词下载大量人脸图像,但这些图像可能存在重复,在合并时需要去重。

这里的重复,是指图像内容完全一样,或者有少量的尺度、位移、色彩、亮度变化,或者是添加了少量其他内容等。

当然,我们可以使用类似SIFT图像匹配的方式实现,但这是很慢的。

考虑大规模图像检索去重,一般的流程是全局特征提取+特征hash+二值特征比较。

这里的全局特征提取,可以是直接在图像上进行小波变换、Gabor变换等,也可以是提取图像局部特征(如SIFT)再使用类似VLAD算法特征聚合,或者是直接提取CNN特征。

来自德国商品比较服务商Idealo开源的imagededup(图像去重的英文),是我们快速实现功能的首选。

开源地址:

https://github.com/idealo/imagededup

该库于今年4月份开源,已经有1600+颗星,最近两天还冲上了Github趋势榜。

可以使用 pip 直接安装:

pip install imagededup

仅需要 4 行代码即可实现图像去重:

from imagededup.methods import PHash
phasher = PHash()# 生成图像目录中所有图像的二值hash编码
encodings = phasher.encode_images(image_dir='path/to/image/directory')# 对已编码图像寻找重复图像
duplicates = phasher.find_duplicates(encoding_map=encodings)# 给定一幅图像,显示与其重复的图像
from imagededup.utils import plot_duplicates
plot_duplicates(image_dir='path/to/image/directory',duplicate_map=duplicates,filename='ukbench00120.jpg')

实际上核心代码就 2 行。

显示结果如下:

上述被检索出来的重复图像的主体内容是相同的,只是拍摄角度稍有不同。

该库目前包含的算法有:

  • Convolutional Neural Network (CNN)

  • Perceptual hashing (PHash)

  • Difference hashing (DHash)

  • Wavelet hashing (WHash)

  • Average hashing (AHash)

另外还支持对给定有标注的重复图像库进行算法评估。

开源地址:

https://github.com/idealo/imagededup

文档地址:

https://idealo.github.io/imagededup/

Idealo公司主营业务即商品比价,图像检索是查询相同商品的重要手段,所以其开源的imagededup应该挺值得大家参考。

支持CV君的分享,欢迎文末点个在看。


图像视频检索交流群

关注最新最前沿的图像视频检索技术,扫码添加CV君拉你入群,(如已为CV君其他账号好友请直接私信)

(请务必注明:检索)

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过验证还请见谅)


长按关注我爱计算机视觉

图像去重,4 行代码就能实现,你值得拥有imagededup相关推荐

  1. 两百行代码实现动态圣诞树—你值得拥有

    最近这不是快到圣诞节了嘛,用代码实现圣诞树都卷成啥样了,不行不行,我也加入卷行列. 话不多说,上图! 话不多说,上代码! <!DOCTYPE html> <html lang=&qu ...

  2. 5行代码,快速实现图像分割,代码逐行详解,手把手教你处理图像 | 开源

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 图像分割,作为计算机视觉的基础,是图像理解的重要组成部分,也是图像处理的难点之一. 那么,如何优雅且体面的图像分割? 5行代码.分分钟实现的 ...

  3. 图像水平梯度和竖直梯度代码_20行代码发一篇NeurIPS:梯度共享已经不安全了

    整理 | 夕颜,Jane 出品 | AI科技大本营(ID:rgznai100) [导读]12 月 8 日-14 日,NeurIPS 2019 在加拿大温哥华举行,和往常一样,今年大会吸引了数万名专家参 ...

  4. 几行代码就能去除图像和视频背景,还用啥PS

    背景去除是将主要对象/图像与其背景分离的过程. 深度学习是基于表示学习的人工神经网络的机器学习方法家族的一部分 U-2-Net是用于显着对象检测的深度网络模型(Github存储库:U-2-Net) 我 ...

  5. 90行代码轻松实现!结合 Whisper + Stable-diffusion 的语音生成图像任务!

    本项目将 Whisper 与 Stable Diffusion 模型结合,可以直接完成语音生成图像的任务.用户可以语音输入一个短句,Whisper 会自动将语音转化为文本,接着,Stable Diff ...

  6. 铅笔素描算法_如何用10行代码将任何图像变成铅笔素描

    铅笔素描算法 by Rishav Agarwal 通过里沙夫·阿加瓦尔 如何用10行代码将任何图像变成铅笔素描 (How to turn any image into a pencil sketch ...

  7. FFmpeg+SDL,如何用少于1000行代码编写视频播放器

    此文档翻译国外dranger教程: An ffmpeg and SDL Tutorial or How to Write a Video Player in Less Than 1000 Lines ...

  8. 基于python的证件照_20行代码教你用python给证件照换底色的方法示例

    1.图片来源 该图片来源于百度图片,如果侵权,请联系我删除!图片仅用于知识交流. 2.读取图片并显示 imread():读取图片: imshow():展示图片: waitkey():设置窗口等待,如果 ...

  9. GitHub开源的ImageAI 库:几行代码可实现目标对象识别

    目录​​​​​​​ 1.图像预测 2.物体检测 3.视频对象检测和跟踪 ImageAI是一个Python库,旨在使开发人员能够使用简单的几行代码构建具有自包含深度学习和计算机视觉功能的应用程序和系统. ...

最新文章

  1. PHP APC安装与使用
  2. c语言饭卡管理系统链表文件,C语言《学生信息管理系统》链表+文件操作
  3. 文件系统的两种文件索引模式extent和blockmap
  4. 去除浮动列表的右边距 利用负边距
  5. Android开发之运行客户的Demo拿不到数据
  6. ASP.NET Core管道深度剖析(2):创建一个“迷你版”的管道来模拟真实管道请求处理流程
  7. webpack4.0.1安装问题及解决方法
  8. 数据结构与算法(Python)第二天
  9. STL学习笔记1--vector
  10. 基于MVC模式的超市仓库管理系统的设计与实现
  11. 最小生成树MST详解
  12. 计算机网络中的www服务,计算机网络基础练习题01
  13. 各国的 电视制式 度量衡 电压
  14. 2021年的学习Flag:只争朝夕,不负韶华
  15. 服务器 备案 文档,备案需要备案服务器
  16. clipboard剪切板
  17. 【Opencv】基于python-opencv的CV2实现图片OCR前的扫描摆正OCR识别【代码实现】
  18. MaxIO智能缓存加速技术
  19. Reduce-Rank Regression通俗解释及与其他降维方法的关系
  20. python 爬虫保存封面_Python爬虫Demo--获取网易云音乐专辑封面

热门文章

  1. Skywalking-06:OAL基础
  2. Autodesk Revit DB Link 中文理解
  3. QT Basic 014 Model/View programming (模型、视图编程)
  4. python分布式事务_分布式事务的管理--atomikos
  5. mac自带的python怎么升级_mac上怎么更新python
  6. Linux awk的 if语句,AWK if(条件)语句与循环简介
  7. tensorflow 显存 训练_Tensorflow与Keras自适应使用显存方式
  8. apache安装_kali Linux下的Apache的配置和安装:
  9. linux mint cinnamon_2019年最佳的8个Linux发行版
  10. 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...