ImageMagick 图像相似度调研报告

简介: 文档声称该改进的算法对于轻度的图像攻击(缩放,旋转[黑色背景],平移[黑色背景],亮度变换,对比度变换,伽马变换,高斯模糊,JPEG压缩,噪声,镜像或转置,水印,弧形畸变,桶形畸变,枕形失真,切向畸变)具有一定的鲁棒性

文档声称该改进的算法对于轻度的图像攻击(缩放,旋转[黑色背景],平移[黑色背景],亮度变换,对比度变换,伽马变换,高斯模糊,JPEG压缩,噪声,镜像或转置,水印,弧形畸变,桶形畸变,枕形失真,切向畸变)具有一定的鲁棒性



一、ImageMagick中的pHash算法

根据ImageMagick 官方文档的说明,它的相似图像对比算法是来自于《Perceptual Hashing for Color Images Using Invariant Moments》(基于不变矩的彩色图像感知哈希算法),但是是它的改进版本。


主要的不同点在于:


1.如果是彩色图像,原论文使用的彩色空间是 HSI 和 YCbCr,而ImageMagick 使用的是sRGB和HCLp(然后每个通道计算Hu矩);如果是灰度图像,只使用一个通道。


2.最后计算相似度距离采用的公式不同,论文采用两幅图像哈希值差的平方和的开方,而ImageMagick采用的是均方根误差(RMSE)。


特点:


1.由于引入了 Hu矩,该算法对缩放、旋转(黑色背景)、平移、翻转具有一定的鲁棒性,由于采用了HCLp彩色空间,加强了对缩放、旋转(黑色背景)、平移、翻转的不敏感性,但增加了对光照、对比度、Gamma变化的敏感性。


2.由于相似度计算使用了均方根误差,所以对于镜像变换具有一定的鲁棒性。


3.由于彩色图像是根据6个通道计算的7维的Hu矩,所有产生的哈希码为6x7=42位,但灰度图像由于只计算一个通道,只有7位的哈希码,所以彩色图像与灰度图像不能直接用哈希码进行计算。



二、什么是Hu矩

Hu 矩是由Hu在1962年提出的,归一化的中心矩对于图像的平移、缩放、旋转具有不变性(直接使用普通矩或中心矩不具有不变性)。


p+q阶普通矩的公式为


image.png

image.png

其中f(x, y)为图像的灰度分布。

p+q阶中心矩的公式为

image.png

其中x0 = M10/M00y0=M01/M00

归一化的中心矩的公式为

image.png

其中 r=(p+q+2)/2,  (p+q = 2, 3, ...)

Hu不变矩是利用二阶和三阶的中心矩构造了七个不变矩,它们在相似图像的条件下可以保持平移、缩放、旋转不变。

定义如下:

image.png

其中npq(p, q = 0, 1, 2, ...)是归一化的中心矩。


三、测试实验

在相同尺度下实验


A 样本:“有大范围平移+大范围裁剪+大范围水印,没有翻转+旋转”


B 样本:“在没有大范围平移+大范围裁剪+大范围水印,有翻转+旋转”





ImageMaigck




A 样本运行结果


image.png

image.png

B 样本运行结果

image.png

我优化的算法


A 样本运行结果

image.png

B 样本运行结果

image.png


目录
相关文章
|
存储 Windows 数据安全/隐私保护
将FTP映射至Windows
在经常使用ftp传输文件的环境中,每次上传和下载文件都需要重新连接然后登录是非常繁琐的一件事情。我们可以将FTP空间映射到本地磁盘空间,免去输入地址以及账号、密码。方便我们日常中文件的上传和下载。 1. 双机桌面上的我的电脑,然后点击映射网络驱动器 2. 选择映射网络驱动器 3. 选择 连接到可用于存储文档和图片的网站 4. 下一步 5. 下一步 5. 根据示例,填写FTP地址 6. 输入用户名。
3668 0
|
SQL 存储 前端开发
SQL注入从入门到进阶(一)--->入门篇
看完本章节内容:1. 知道什么是Sql注入 2. 实现最基础的Sql注入
2399 0
|
机器学习/深度学习 自然语言处理 语音技术
字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)
按照固有的思维方式,如果想要语音克隆首先得有克隆对象具体的语言语音样本,换句话说,克隆对象必须说过某一种语言的话才行,但现在,coqui-ai TTS V2.0版本做到了,真正的跨语种无需训练的语音克隆技术。 coqui-ai TTS实现跨语种、无需训练克隆语音的方法是基于Tacotron模型,该模型使用了一种音素输入表示来鼓励在不同语种之间共享模型容量。此外,还引入了对抗损失项,以鼓励模型将说话者身份与语音内容进行解耦。这使得模型能够在不同语种之间进行语音合成,而无需在任何双语或平行示例上进行训练。
字正腔圆,万国同音,coqui-ai TTS跨语种语音克隆,钢铁侠讲16国语言(Python3.10)
|
Java
Mac下安装JDK11(国内镜像)
Mac下安装JDK11(国内镜像)
7856 0
|
12月前
|
机器学习/深度学习 数据采集 自然语言处理
使用 Word2Vec 模型进行情感分析
使用Word2Vec模型进行情感分析包括:数据预处理、训练Word2Vec模型、构建特征向量、情感分析及模型评估与优化。通过这些步骤,结合分类器预测文本情感,提升模型性能和准确性。
246 0
|
7月前
|
前端开发 JavaScript API
Webview+Python:用HTML打造跨平台桌面应用的创新方案
本文系统介绍了使用PyWebView库结合HTML/CSS/JavaScript开发跨平台桌面应用的方法。相比传统方案(如PyQt、Tkinter),PyWebView具备开发效率高、界面美观、资源占用低等优势。文章从技术原理、环境搭建、核心功能实现到性能优化与实战案例全面展开,涵盖窗口管理、双向通信、系统集成等功能,并通过“智能文件管理器”案例展示实际应用。适合希望快速构建跨平台桌面应用的Python开发者参考学习。
781 1
|
缓存 关系型数据库 MySQL
Mac安装brew
Mac安装brew
1644 6
|
10月前
|
自然语言处理 算法 Ubuntu
GeneralUpdate应用程序自动升级跨平台解决方案,支持国产操作系统。
前些年随着技术的发展逐渐兴起“一次编码到处运行”、“国产化”的概念那么跨平台就是各大技术争相主推的能力之一。具备跨平台的能力同时也需要自动升级的能力,GeneralUpdate 随之应运而生。
365 11
|
人工智能 边缘计算 自然语言处理
DistilQwen2:通义千问大模型的知识蒸馏实践
DistilQwen2 是基于 Qwen2大模型,通过知识蒸馏进行指令遵循效果增强的、参数较小的语言模型。本文将介绍DistilQwen2 的技术原理、效果评测,以及DistilQwen2 在阿里云人工智能平台 PAI 上的使用方法,和在各开源社区的下载使用教程。