【重复图识别】在茫茫图海中,怎么找到相同的它?

2023-10-27

转载请标名出处。

背景

在一些图像相关的项目中,重复图识别是很重要的。就比如热图排行榜(需要识别出重复图);涉及图像深度学习的项目(训练数据需要剔除重复图);图片原创&视频原创(需要识别出重复图)等等。

什么是相同图片

什么是相同图片?相信在不同场景下,这个答案是不一样。有些场景把肉眼看起来一样的图片当作相同图片,有些场景把用滤镜处理过的图片也当作相同图片,而有些场景下只把原图当作相同图片。
这里按照相同程度划分,相同程度从高到低,其实可以分为3个等级:

  • 绝对原图
  • 肉眼相同
  • 抄袭原图

接下来我们逐一详细介绍下这3类。

绝对原图

这个等级,图片相同的程度是最高的,就如下面2张图片,1.png通过直接copy的方式产生的2.png
在这里插入图片描述
它们从图片内容已经无法判断是否是原图,只能从文件的角度识别,一般来说都是直接md5判断2个图片,如下所示:
在这里插入图片描述
它属于用图片文件进行hash处理。

PS:一般来说,所有场景都会先用md5来过滤一边,因为它算法复杂度很低,根本不用理解图片

肉眼相同

这个等级的场景最多,比如图片训练数据去重,热图排行榜等等。
就如下图所示,1.png经过压缩、resize、转码等图片处理的方式产生的3.jpg:
在这里插入图片描述
它们肉眼看起来是相同,但是绝对不是原图,md5无法识别这种情况,只能图像的感知hash处理。感知hash主要有3种(AHash、DHash、PHash、WHash),它们都是用图片内容进行hash处理,只是hash方式不同,下面逐一介绍一波:

AHash

这种感知hash最简单,算法复杂度也最低,它只需要处理2步 预处理 + 二值化

  • 具体流程图如下所示:
    在这里插入图片描述
    它的二值化方式比较简单,只是比较了像素点跟均值,所以效果一般般。
  • python源码如下:
 def ahash(image, hash_size=8):
     image = image.convert("L").resize((hash_size, hash_size), Image.ANTIALIAS)// 1、【预处理】转灰度图,resize
     pixels 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【重复图识别】在茫茫图海中,怎么找到相同的它? 的相关文章

随机推荐

  • Diamond软件的使用--(1)软件安装及配置

    此处不推荐使用3 5版本的diamond 会出现RVL抓取数据失败的情况 我个人测试情况是使用3 11以上版本即可避免该情况 故演示采用目前最新的3 12版本 3 12版本 64位 官网链接 简单注册账户即可下载 https www lat
  • jdk8和jkd6去重

    jdk8和jkd6去重 jdk8去重 集合名称newList 去重字段getId 实体类PreFileMakeRangeOutEntity newList newList stream collect Collectors collecti
  • 「完结撒花」使用intel realsense D435i深度相机获取信息,DOBOT MG400机械手实现动态实时抓取,并做了个GUI界面(python实现)

    GUI界面如下 丑是丑了点 但很好用 嘿嘿 GUI部分 1 GUI界面可以实现的功能 暂停 继续相机画面 显示彩色RGB图像 深度图像 开运算结果图 进行图像处理后的图片 右侧 调节opencv轮廓查找框选面积范围 调节图像区域 给dobo
  • [Flex&Bison]协同工作简介

    1 本节主要演示一个简单的模拟bc计算器的程序 主要功能就是解析整型数的四则运算 先给出bison程序 include
  • JavaScrip实现前端列表分页

    在一些网站的管理系统中 通常的查询功能会有很多信息 这时候前端如果不分页显示 那么浏览器的长度就会很长 所以通常要进行分页处理 对于分页主要有两种方法 第一种方法有后台来进行分页 前端通过请求后台传入分页所需的参数来使后台返回响应的分页结果
  • App逆向——安卓7以上如何安装抓取https的包

    安卓7以上如何抓取https的包 1 从抓包软件中导出证书 以burpsuite为例 访问http burp 导出证书即可 2 通过openssl处理pem证书 gt gt gt openssl x509 subject hash old
  • 欧几里得空间——正交矩阵

    设与是欧氏空间V在的两组标准正交基 它们之间的过渡矩阵是即
  • Chrome浏览器Cookie解密

    做过 web 开发的都知道 浏览器会把重要的认证登录认证信息存放到 cookie 中 在 cookie 有效期内 再次访问这个网站的时候就可以直接从 cookie 中获取到登录信息 这样就可以实现自动登录 但仅仅知道知道这些肯定不能满足很多
  • x-www-form-urlencoded到底是什么?

    概述 x www form urlencoded纸面翻译即所谓url格式的编码 是post的默认Content Type 其实我觉得可以认为get和post的默认表单数据传递格式都一样 只是一个在url地址后面加 再加表单数据 另一个是把表
  • docker内的容器如何与宿主机共享IP

    问题 有个项目里面需要将一些服务打包到docker镜像中 打包完成后 发现有些服务有问题 主要集中在一些端侧设备接入用的服务 主要是工业相机 相机扫描不到 原因 当Docker进程启动时 会在主机上创建一个名为docker0的虚拟网桥 此主
  • Linux-C基础知识学习:C语言作业-用for循环完成:输入10个数,求它们的和并输出

    Linux基础知识学习 C语言作业 用for循环完成 输入10个数 求它们的和并输出 用for循环完成 输入10个数 求它们的和并输出 include
  • 详解Java虚拟机内存各个区域

    1 概述 对于java程序员来说 不必手动写代码去管理内存 因为虚拟机的自动内存管理机制会帮我们做 但是一旦出现内存泄漏和溢出方面的问题 如果不了解虚拟机是怎样使用内存的话 那么排查错误将会变得困难 2 运行时数据区域 Java虚拟机在执行
  • Linux安装 zabbix

    zabbix监控安装 1 准备环境 IP地址查看 ifconfig eth0 awk NR 2 print 2 关闭selinux getenforce 2 zabbix server内存尽量大点 4G更好 3 安装Zabbix存储库 清除
  • leaflet 笔记1 marker点高亮显示

    Leaflet 笔记八 marker高亮显示 这个plugin主要是为了方便实现marker的高亮显示 安装 该库已经发布到npmjs上 所以安装非常简单 npm install leaflet marker highlight save
  • web 摄像头拍照并上传

    通过2天的查找资料 终于找到了 摄像头拍照的方法并调试成功 在ie 及火狐等浏览器测试通过 ie 拍照 服务端存储照片 现在分享下经验 1 js控件 jQuery webcam plugin 官网 http www xarg org pro
  • 华为交换机配置SSH远程登录

    连接console线直接配置 1 在服务器端生成本地密钥对
  • Nginx主备模式配置

    Nginx主备模式配置 配置示例 参数解释 配置示例 upstream tomcatserver server ip 8780 max fails 2 fail timeout 30s server ip 8068 max fails 2
  • 计算机网络教程_第二章物理层_整理与复习

    计算机网络教程 第一章 概述 第二章 物理层 第三章 数据链路层 提示 写完文章后 目录可以自动生成 如何生成可参考右边的帮助文档 文章目录 计算机网络教程 1 物理层的作用及主要任务 2 数据传输的方式 并行 串行 异步 同步 P40 3
  • 《区块链技术与应用》公开课系列笔记——目录导航页

    目录 区块链技术与应用 公开课笔记1 课程介绍 click here 比特币 BTC 篇 已全部更新完成 区块链技术与应用 公开课笔记2 BTC密码学原理 click here 区块链技术与应用 公开课笔记3 BTC数据结构 click h
  • 【重复图识别】在茫茫图海中,怎么找到相同的它?

    转载请标名出处 背景 在一些图像相关的项目中 重复图识别是很重要的 就比如热图排行榜 需要识别出重复图 涉及图像深度学习的项目 训练数据需要剔除重复图 图片原创 视频原创 需要识别出重复图 等等 什么是相同图片 什么是相同图片 相信在不同场