admin管理员组

文章数量:1531792

2024年7月12日发(作者:)

相似图像的检测方法

一、 哈希算法

哈希算法可对每张图像生成一个“指纹”(fingerprint)字符串,然后比较不同图像的

指纹。结果越接近,就说明图像越相似。

常用的哈希算法有三种:

1.均值哈希算法(ahash)

均值哈希算法就是利用图片的低频信息。将图片缩小至8*8,总共64个像素。这一步

的作用是去除图片的细节,只保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图

片差异。将缩小后的图片,转为64级灰度。计算所有64个像素的灰度平均值,将每个像

素的灰度,与平均值进行比较。大于或等于平均值,记为1;小于平均值,记为0。将上一

步的比较结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。

均值哈希算法计算速度快,不受图片尺寸大小的影响,但是缺点就是对均值敏感,例

如对图像进行伽马校正或直方图均衡就会影响均值,从而影响最终的hash值。

2.感知哈希算法(phash)

感知哈希算法是一种比均值哈希算法更为健壮的算法,与均值哈希算法的区别在于感

知哈希算法是通过DCT(离散余弦变换)来获取图片的低频信息。先将图像缩小至32*32,

并转化成灰度图像来简化DCT的计算量。通过DCT变换,得到32*32的DCT系数矩阵,

保留左上角的8*8的低频矩阵(这部分呈现了图片中的最低频率)。再计算8*8矩阵的DCT

的均值,然后将低频矩阵中大于等于DCT均值的设为”1”,小于DCT均值的设为“0”,

组合在一起,就构成了一个64位的整数,组成了图像的指纹。

感知哈希算法能够避免伽马校正或颜色直方图被调整带来的影响。对于变形程度在25%

以内的图片也能精准识别。

3.差异值哈希算法(dhash)

差异值哈希算法将图像收缩小至8*9,共72的像素点,然后把缩放后的图片转化为

256阶的灰度图。通过计算每行中相邻像素之间的差异,若左边的像素比右边的更亮,则

记录为1,否则为0,共形成64个差异值,组成了图像的指纹。

相对于pHash,dHash的速度要快的多,相比aHash,dHash在效率几乎相同的情

况下的效果要更好,它是基于渐变实现的。

二、 单通道直方图和三直方图

单通道图,俗称灰度图,每个像素点只能有有一个值表示颜色,它的像素值在0到255

之间,0是黑色,255是白色,中间值是一些不同等级的灰色。三通道图,每个像素点都有

3个值表示(如RGB图),所以就是3通道。图像的直方图用来表征该图像像素值的分布

情况。用一定数目的小区间(bin)来指定表征像素值的范围,每个小区间会得到落入该小区间

表示范围的像素数目。可以通过计算图像直方图的重合度,来判断图像之间的相似度。

直方图能够很好的归一化,比如256个bin条,那么即使是不同分辨率的图像都可以

直接通过其直方图来计算相似度,计算量适中。比较适合描述难以自动分割的图像。

三、 基于特征提取与匹配的方法

1.ORB特征

ORB特征是将FAST特征点的检测方法与BRIEF特征描述子结合起来,并在它们原来

的基础上做了改进与优化。ORB特征提取速度快,提取的特征直接是二元编码形式,无需使

用哈希学习方法就可以直接利用汉明距离快速计算相似度。在大多数情况下,去重效果能

够与 SIFT/SURF 持平。

2.SIFT/SURF特征

SIFT特征提取是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。

SIFT所查找到的关键点是一些十分突出、不会因光照、仿射变换和噪音等因素而变化的点,

如角点、边缘点、暗区的亮点及亮区的暗点等。

四、 基于BOW+K-Means的相似图像检测

BOW模型被广泛用于计算机视觉中,相比于文本的BOW,图像的特征被视为单词

(word),视觉词汇的字典则由图片集中的所有视觉词汇构成,词袋模型的生成如下图。首

先,用sift算法生成图像库中每幅图的特征点及描述符。再用k-Means算法对图像库中的

特征点进行聚类,聚类中心有k个,聚类中心被称为视觉词汇,将这些聚类中心组合在一

起,形成一部字典。根据IDF原理,计算每个视觉单词TF-IDF权重来表示视觉单词对区分

图像的重要程度。对于图像库中的每一幅图像,统计字典中每个单词在在其特征集中出现

的次数,将每张图像表示为K 维数值向量(直方图)。得到每幅图的直方图向量后,构造特

征到图像的倒排表,通过倒排表快速索引相关候选的图像。对于待检测的图像,计算出sift

特征,并根据TF-IDF转化成特征向量(频率直方图),根据索引结果进行直方图向量的相

似性判断。

五、 基于卷积网络的相似图像检测

在ImageNet中的卷积网络结构(vgg16)基础上,在第7层(4096个神经元)和

output层之间多加一个全连接层,并选用sigmoid激活函数使得输出值在0-1之间,设

定阈值0.5之后可以转成01二值向量作为二值检索向量。这样,对所有的图片做卷积网络

前向运算,得到第7层4096维特征向量和代表图像类别分桶的第8层output。对于待检

测的图片,同样得到4096维特征向量和128维01二值检索向量,在数据库中查找二值

检索向量对应的图片,比对4096维特征向量之间距离,重新排序即得到最终结果。

本文标签: 图像图片直方图计算算法