论文部分内容阅读
摘要:随着大数据技术的发展,搜索引擎的关注度越来越高,搜索引擎技术也逐渐发展成为大数据应用最前线的领域,也是最容易产生价值的大数据应用。图片搜索是目前搜索引擎中搜索流量仅次于网页搜索的多媒体搜索项目,为了快速精准的实现图片搜索功能,论文从基于内容的图片搜索及基于文本的图片搜索两个方面进行分析、研究,解决了较高效精准地以图搜图的图片搜索问题。
关键词:大数据;搜索引擎;图片搜索;算法;相似度
中图分类号:TP391
文献标识码:A
文章编号:1009- 3044(2019)34-0181-02
1 基于内容的图片搜索
一张图片包含了亮度变化小的区域是低频成分和亮度变化剧烈的高频成分。低频成分仅提供一个框.架,图片的详细细节信息部分主要是由通过高频成分来体现的。换句话说高频成分能够描述图片的详细信息。而一张尺寸比较大的内容显示丰富的图片有较高的频率,小图片都是低频的,原因在于缺少图像细节部分。基于内容的图片搜索主要思想是基于图片本身拥有的信息进行搜索,在给定查询图片的情况下,进行图片搜索,是“以图搜图”的应用搜索。通过图片搜索获得相似图片,主要采用感知哈希算法实现,该算法的核心思想是通过对每张图片构建唯一指纹,图片中指纹越相近则说明图片间的相似度越高。
感知哈希算法是哈希算法的一类,简称.PHA,主要可以完成相似图片的搜索任务。该算法可以分为低.频的均值哈希感知算法和余弦哈希感知算法两种。在进行图片检索的时候一般采用汉明距离来进行判断两幅图像的相似程度,如果计算得到的汉明距离的数值小于5就表明两幅图像是相似的。
1.1 低频的均值哈希感知算法
基于低频的均值哈希算法:均值哈希算法面对的主要操作对象是图片中的低频信息,其工作过程如下:
①尺寸缩放。将所有图片数据进行尺寸缩放,能够最快速的去除高频和细节,使图片缩放到64个像素大小,即8x8的尺寸。尺寸缩放的目的在于避免图片中一些细节及图片大小对图片搜索的干扰,只保留结构的明暗。
②色彩简化。将被缩放后的图片数据简化其色彩,所有像素点总共只有64级灰度,从而使得整个图片中仅包含64种颜色。
③计算灰度平均值。对每幅图片中的64个像素进行灰度平均值计算。
④灰度比较。把64个像素中每个像素的灰度与平均灰度.值依次比较,大于等于平均灰度值的像素设定为1,小于平均灰度值的像素设定为0。
⑤计算哈希指纹。在灰度进行比较结束以后,得到一个由0或1组成的64位的整数。这就是这张图片的指纹。其中的整数被视为当前图片的指纹。
通过上述过程获得指纹之后,只需将用户提交的图片按照同样的方式获得哈希指纹之后,就可以对比不同的图片,进行汉明距离计算,看看64位中有多少位是不一样的。从而获得图片与图片之间的相似度。通常情况下,如果汉明距离小于等于5则说明两张图片很相似,图谱具有一定的相似度,若汉明距离大于10,则表明两张图片之间存在较大的差异。
采用感知哈希算法的过程比较简单,而且最大的优点是计算速比较度快。而且图片颜色的改变,对比度及亮度的增加或者减少,对哈希值的影响并不太大。比较两张图片的相似性过程实质上就是首先计算两张图片的哈希指纹,哈希指纹是由1或0构成的64位的数.值,然后再计算汉明距离。根据计算出来的汉明距离的结果来判断两幅图像的相似情况。但是对于一些模糊的图谱,或者图片中存在一些更改情况,则不能很好地识别出相似图谱。在工程应用中,借鉴感知哈希算法,利用图片的颜色分布情况及内容特征进行图片搜索。
1.2 余弦哈希感知算法
与低频的均值哈希感知算法相比较更健壮的算法叫余弦哈希感知算法,离散余弦变换简称DCT,是一种图像压缩算法,使用离散余弦变换来获取图片中的低频成分。它将图像从像素域变换到频率域。由于图像中基本都存在很多冗余和相关性,所以图像从像素域变换到频率域之后,大部分系数都接近于0,只有很少的一部分频率分量的系数不为0。
余弦哈希感知算法的工作过程如下:
(1)尺寸缩放:余弦哈希感知算法以小图片开始,如果图片大于8*8,32*32是比较理想的。这样做的目的是能够简化DCT的计算。
(2)色彩简化:将被缩放后的图片数据简化其色彩,所有像素点总共只有64级灰度,从而使得整个图片中仅包含64种颜色,进一步简化计算量。
(3)计算DCT:计算图片的DCT变换,得到32*32的离散余弦变换系数矩阵。
(4)缩小DCT的范围:从上述步骤中得到的32*32的离散余弦变换系数矩阵中,只需要将左上角的包含了图像中的较低频.率的8*8的矩阵部分保留下来。
(5)计算平均值:如同均值哈希一样,计算DCT的均值。
(6)计算hash值:根据8*8的离散余弦变换矩阵,设置0或1的64位的hash值,遍历像素矩阵,当矩阵的灰度值大于离散余弦变换均值的时候哈希值为1,小于DCT均值的设为0。
为了验证该算法的性能,進行了一些简单的测试,测试结果发现非等比例的图像缩放会使得基于均值哈希算法的图像检索出现错误,而余弦哈希感知算法对尺度的变化的鲁棒性强于均值哈希算法。
均值哈希算法:
string.HashV. (Mat SRC)
{Mat pic,dst;
string rst.. (64,,\0’);
double dldex[64];
double mean= 0.0;
int p=0;
if( SRC.channels()= =3)
{cvtColor(SRC,SRC, CV_B GR2GRAY); pic= Mat_
关键词:大数据;搜索引擎;图片搜索;算法;相似度
中图分类号:TP391
文献标识码:A
文章编号:1009- 3044(2019)34-0181-02
1 基于内容的图片搜索
一张图片包含了亮度变化小的区域是低频成分和亮度变化剧烈的高频成分。低频成分仅提供一个框.架,图片的详细细节信息部分主要是由通过高频成分来体现的。换句话说高频成分能够描述图片的详细信息。而一张尺寸比较大的内容显示丰富的图片有较高的频率,小图片都是低频的,原因在于缺少图像细节部分。基于内容的图片搜索主要思想是基于图片本身拥有的信息进行搜索,在给定查询图片的情况下,进行图片搜索,是“以图搜图”的应用搜索。通过图片搜索获得相似图片,主要采用感知哈希算法实现,该算法的核心思想是通过对每张图片构建唯一指纹,图片中指纹越相近则说明图片间的相似度越高。
感知哈希算法是哈希算法的一类,简称.PHA,主要可以完成相似图片的搜索任务。该算法可以分为低.频的均值哈希感知算法和余弦哈希感知算法两种。在进行图片检索的时候一般采用汉明距离来进行判断两幅图像的相似程度,如果计算得到的汉明距离的数值小于5就表明两幅图像是相似的。
1.1 低频的均值哈希感知算法
基于低频的均值哈希算法:均值哈希算法面对的主要操作对象是图片中的低频信息,其工作过程如下:
①尺寸缩放。将所有图片数据进行尺寸缩放,能够最快速的去除高频和细节,使图片缩放到64个像素大小,即8x8的尺寸。尺寸缩放的目的在于避免图片中一些细节及图片大小对图片搜索的干扰,只保留结构的明暗。
②色彩简化。将被缩放后的图片数据简化其色彩,所有像素点总共只有64级灰度,从而使得整个图片中仅包含64种颜色。
③计算灰度平均值。对每幅图片中的64个像素进行灰度平均值计算。
④灰度比较。把64个像素中每个像素的灰度与平均灰度.值依次比较,大于等于平均灰度值的像素设定为1,小于平均灰度值的像素设定为0。
⑤计算哈希指纹。在灰度进行比较结束以后,得到一个由0或1组成的64位的整数。这就是这张图片的指纹。其中的整数被视为当前图片的指纹。
通过上述过程获得指纹之后,只需将用户提交的图片按照同样的方式获得哈希指纹之后,就可以对比不同的图片,进行汉明距离计算,看看64位中有多少位是不一样的。从而获得图片与图片之间的相似度。通常情况下,如果汉明距离小于等于5则说明两张图片很相似,图谱具有一定的相似度,若汉明距离大于10,则表明两张图片之间存在较大的差异。
采用感知哈希算法的过程比较简单,而且最大的优点是计算速比较度快。而且图片颜色的改变,对比度及亮度的增加或者减少,对哈希值的影响并不太大。比较两张图片的相似性过程实质上就是首先计算两张图片的哈希指纹,哈希指纹是由1或0构成的64位的数.值,然后再计算汉明距离。根据计算出来的汉明距离的结果来判断两幅图像的相似情况。但是对于一些模糊的图谱,或者图片中存在一些更改情况,则不能很好地识别出相似图谱。在工程应用中,借鉴感知哈希算法,利用图片的颜色分布情况及内容特征进行图片搜索。
1.2 余弦哈希感知算法
与低频的均值哈希感知算法相比较更健壮的算法叫余弦哈希感知算法,离散余弦变换简称DCT,是一种图像压缩算法,使用离散余弦变换来获取图片中的低频成分。它将图像从像素域变换到频率域。由于图像中基本都存在很多冗余和相关性,所以图像从像素域变换到频率域之后,大部分系数都接近于0,只有很少的一部分频率分量的系数不为0。
余弦哈希感知算法的工作过程如下:
(1)尺寸缩放:余弦哈希感知算法以小图片开始,如果图片大于8*8,32*32是比较理想的。这样做的目的是能够简化DCT的计算。
(2)色彩简化:将被缩放后的图片数据简化其色彩,所有像素点总共只有64级灰度,从而使得整个图片中仅包含64种颜色,进一步简化计算量。
(3)计算DCT:计算图片的DCT变换,得到32*32的离散余弦变换系数矩阵。
(4)缩小DCT的范围:从上述步骤中得到的32*32的离散余弦变换系数矩阵中,只需要将左上角的包含了图像中的较低频.率的8*8的矩阵部分保留下来。
(5)计算平均值:如同均值哈希一样,计算DCT的均值。
(6)计算hash值:根据8*8的离散余弦变换矩阵,设置0或1的64位的hash值,遍历像素矩阵,当矩阵的灰度值大于离散余弦变换均值的时候哈希值为1,小于DCT均值的设为0。
为了验证该算法的性能,進行了一些简单的测试,测试结果发现非等比例的图像缩放会使得基于均值哈希算法的图像检索出现错误,而余弦哈希感知算法对尺度的变化的鲁棒性强于均值哈希算法。
均值哈希算法:
string.HashV. (Mat SRC)
{Mat pic,dst;
string rst.. (64,,\0’);
double dldex[64];
double mean= 0.0;
int p=0;
if( SRC.channels()= =3)
{cvtColor(SRC,SRC, CV_B GR2GRAY); pic= Mat_