冀 鑫,冀小平
(太原理工大学 信息工程学院,山西 太原 030024)
基于内容的图像检索技术主要依据图像所具有颜色、纹理、形状、空间关系等特征,提取这些特征,然后对这些特征进行相似度对比,并对图库中图像进行排序,从而实现图像检索的目的[1]。目前,颜色特征提取的算法大多如文献[2]一样对颜色空间的三个分量非均匀量化,优点是运算简单,缺点是量化结果失真较大,颜色量化不精准。纹理特征的提取方法较多,例如文献[3]用小波变换提取出纹理,更好地与人类视觉系统结合。文献[4]提出的基于图像灰度共生矩阵的算法,克服了传统的共生矩阵计算复杂的问题,采用分波段、分块处理数据,提高了算法的效率。
针对目前基于颜色的图像检索算法在提取颜色特征失真较大的问题,提出融合颜色特征和纹理特征的检索算法,在颜色特征提取时采用矢量量化提取颜色特征,将彩色图像转化到HSI 颜色空间,对查询图像矢量量化,形成码书,统计查询图像各个码字出现的频数,形成颜色直方图,完成颜色特征提取。当前将矢量量化应用于颜色空间量化实现图像检索的相关研究并不多,将矢量量化融合其他特征检索方法也并不常见。考虑到矢量量化在颜色提取过程中计算量较大,本文在纹理特征提取时,采用容易理解、计算复杂度较低、鉴别能力较强的局部二进制算法(LBP)[5],采用灰度空间圆形邻域的LBP(P,R)算子,得到图像中每个像素点的LBP 值,利用直方图形式展现纹理特征,解决了传统的依靠单一特征来检索图像的不足。最后,相似度计算通过颜色相似度和纹理相似度加权平均来度量,通过改变颜色特征和纹理特征的权值,得到最佳的查准率。本文以检索金针花为例,对算法进行了详细阐述,同时还对检索结果进行了客观评价,整体算法的检索流程如图1 所示。
图像中广泛存在的RGB 彩色空间是一种与硬件相关的颜色模型,但它与人类的视觉感官差距比较大[6]。所以直接在RGB 颜色空间提取颜色特征、计算相似度,最终达到的检索结果不太理想。因此为了满足人类视觉的需求,选用HSI颜色模型。
图1 检索流程图
1.1.1 HSI 颜色空间
HSI(Hue-Saturation-Intensity)模型用H、S、I 3 个参数描述颜色特性,它是由Munseu 提出的一种颜色模型,其中H为色调,S 为饱和度,I 为亮度或强度[7]。在HSI 颜色空间处理图像,处理结果更符合人类的视觉感知。RGB 到HSI 转换公式为
1.1.2 矢量量化
矢量量化是从k 维欧几里得空间Rk映射到其一个有限子集C 的过程,即:Rk→C,其中C={Y1,Y2,…,Yi,…,YN|Yi∈Rk}称为码书,N 为码书长度[8]。映射关系应满足:Q(X|X∈Rk)=Yi,其中X=(x1,x2,…,xk)为Rk中的k 维矢量,Yl=(yl1,yl2,…,ylk)为 码 书 C 中 的 码 字,并 且 满 足:d(X,Yl)=min(d(X,Yi))其中d(X,Yi)为矢量X 与码字Yi之间的失真度。因而只要输入一个矢量X 必然能在码书C中找到合适的码字Yi与它对应,使该码字与输入矢量X 的失真度达到码书中所有码字最小。
1.2.1 生成查询图像码书
本文选取的查询图像为256×256 的JPG 格式金针花彩色图像,如图2 所示。
图2 金针花
以下是生成码书的过程:
1)生成查询图像的初始码书。设定码书长度N=32。MATLAB 中读入图像是由RGB 形式保存,转换为HSI 模型,形成3×256×256 矩阵。在仿真实验中,将训练样本(3×256×256 矩阵)通过随机函数(randn)选择32 个样本作为初始码书。
2)进行迭代训练。每次迭代中,每一个训练矢量Xi=(注:每一点HSI 三个参量作为一个训练矢量)与码书中的各个码字Yj(j=1,2,…,32)相比较,找到与该训练矢量最相近的一个码字Yk,并把所有与Yk最相近的训练矢量归为一类,这样一共有32 类,这一步叫划分胞腔过程。然后求出每个胞腔中训练矢量与其对应在码书中最相近的码字Yk的距离平方之和,得到此次划分胞腔进行迭代的平均失真Ln。若此次划分的平均失真Ln与上次划分的平均失真Ln-1之间的相对误差εn符合设定的失真误差ε,则停止划分,否则求出各胞腔的中心矢量作为新的迭代码书,重新划分胞腔。本文失真相对误差为ε=0.001。查询图像的码书生成过程如图3 所示。
图3 矢量量化形成查询图像码书
1.2.2 形成颜色直方图
通过矢量量化查询图像,得到查询图像的码书,按照码书对查询图像进行编码,统计查询图像中各个码字出现的频数,并用直方图形式直观地表达出来,完成对图像颜色特征的提取,其中直方图的横坐标为码书中码字编号(1,2,…,32),直方图的纵坐标为图片矢量量化后,统计得出码字的频数。在MATLAB7.11.0(R2010b)中仿真,对图2 提取出的颜色直方图如图4 所示。
图4 颜色直方图
纹理是一种普遍存在的视觉现象,可认为是灰度在空间以一定的形式变化而产生的图案模式[9]。纹理特征不同于颜色特征,它所反映的信息不仅仅是单一的像素点,还与该像素点周围其他灰度分布情况联系紧密。图像中纹理特征提取的方法主要有基于分形维数提取法、小波提取法、灰度共生矩阵提取法等[10]。本文使用局部二进制模式(LBP)算法提取纹理特征。
局部二进制模式(Local Binary Patterns,LBP)最早是为一种有效的纹理描述算子提出的,由于其对图像局部纹理特征的卓越描绘能力而获得广泛使用[11]。基本的LBP 算子思路是:以图像中某一像素点为中心,将该点的灰度值作为阈值,大于此阈值的记作1,小于此阈值的记作0,对其周围3×3 的8 个邻域进行二值化,按照约定的顺序(以邻域的某一点开始顺时针或者逆时针)二值化,最终得到一个8 位二进制数,将此8 位二进制数转化为十进制数(0~255)作为该点的LBP值[12]。本算法使用的是基本LBP 算子推广以后的圆形邻域的LBP(P,R)算子,其中下标P 表示P 邻域,R 表示圆形邻域的半径,图5 给出了一个半径为2 的8 邻域像素的圆形邻域。每个方格对应一个像素,对于正好处在方格中心的邻域点(左、上、右、下4 个黑点),直接以该点所在方格的像素值作为它的值;对于不在像素中心位置的邻域点(斜45°方向的4个黑点),通过双线性插值确定其值。
例如,图5 所示,位于图像中第i 行和第j 列的中心点灰度为I(i,j)和8 个邻域点,为计算左上角2 点的值,需要利用其周围4 个像素点(4 个空心点)进行双线性插值。首先分别算出2 个十叉点A、B 的水平插值,A 点的值根据与之同一行的I(i-2,j-2)以及I(i-2,j-1)的线性插值得到
同理B 点值为
左上角2 点灰度值为点A 和点B 的竖直线性插值
当所有8 个点的灰度值都求出以后,计算中心点I(i,j)的LBP 值公式为
例如,图6 每个方格中的数字代表灰度值,中心灰度值为5。利用上面的方法得出邻域8 个点的像素值,从中心点正左侧对应点开始顺时针依次是2,6,6,8,4,5,4,8。所以该中心点对应的二值模式是01110101。根据式(2),LBP(8,2)=117。
5 双线性插值计算灰度值
图6 计算LBP(8,2)的值
首先在MATLAB 中通过rbg2grey 函数将彩色图像转化为灰度图像。其次利用圆形邻域的LBP(8,2)算子,逐一扫描图像,得出每一个像素点的LBP(8,2)值。最后生成LBP 图,结果如图7。
在实验中,把LBP 值(0~255)平均分成32 个区间,求出查询图像中LBP 值落在每个区间的频数,得到LBP 直方图如图8,完成纹理特征的提取。
图7 实验得到LBP 图
图8 LBP 直方图
图像颜色特征和纹理特征提取之后,接下来的问题是如何将这两特征融合计算特征相似度。本文在结合两特征相似度时,采用加权平均的方法。
由于两种特征最后都形成特征直方图,所以两种特征在计算相似度的时候,采用相同的度量方法。查询图像经过特征提取获得特征向量X 为32 维,图库中第k 个图像经过特征提取得到32 维的特征向量Y。则二者的距离公式为
分别求出查询图像与图库中图像的相似度距离dk(k=1,2,3,…,n),再将所有距离分别除以最大距离,得到最终的特征距离Dk=(k=1,2,…,n),距离Dk为一组0~1 之间的一维组数,用Dk来衡量图像特征相似度。为了好区别颜色与纹理特征相似度,记为图库中第k 个图像与查询图像的颜色特征距离为图库中第k 个图像与查询图像的纹理特征距离。采用加权平均来融合颜色和纹理的特征距离,最终图库中第k 个图像与查询图像的距离为
式中,wc为颜色特征的权值,wt为纹理特征的权值,且wc+wt=1,经过距离计算得到Sk是0~1 之间的数,Sk越小越相似,Sk=0 所对应的图像为查询图像,Sk=1 为与查询图像最不相似的图像。根据Sk从小到大排序输出查询结果。
首先,为了验证检索算法的可行性,在MATLAB7.11.0(R2010b)中,采用融合矢量量化和LBP 的检索算法对金针花进行检索仿真,实验结果如图9 所示。
图9 实验结果
其次,为了验证算法检索的精准度,实验对植物、动物、风景分别进行检索。为了达到算法性能评价的可靠性,植物类选取了花100 幅图片(其中花的种类不同、形状不同、颜色不同),动物类同样选取了100 幅图片,风景类也选取了100 幅图片进行检索。通过改变颜色特征权值wc和纹理特征权值wt,统计出各类图片的查准率,计算出整体平均查准率。平均查准率(Averprecision)计算公式为
实验结果统计数据见表1。
由表1 数据可见,当颜色特征与纹理特征比重相等即wc=wt=0.5 时,平均查准率达到最高为0.86。
最后,为了验证算法的检索性能,将本算法与传统颜色直方图算法和文献[13]检索算法进行对比,通过计算查全率和查准率,绘制曲线如图10 所示,显然本算法要优于其他两种算法。原因:1)颜色特征提取采用矢量量化算法,在量化时按照查询图像来生成码书,在检索不同的图像时,查询图像码书是按照查询图像变化而变化的,提取出的颜色特征更能体现出查询图像本身存在的颜色信息;2)纹理提取采用LBP 算法,通过双线性插值确定LBP 值;3)本算法融合了颜色和纹理特征,弥补依靠单一特征来检索图像的不足。
表1 平均查全率
图10 平均检索性能比较
本文针对图像检索,提出了基于矢量量化与LBP 的图像检索算法。本算法通过矢量量化,根据检索图像来形成检索码书,能够很好地保留图像的颜色信息,融合LBP 算法完成纹理特征,弥补颜色特征忽略空间分布不足。在MATLAB 7.11.0(R2010b)中仿真本算法,实验结果表明本算法的查准率和查全率远高于单一的基于颜色的图像检索算法,同时,证明了本算法的可行性和可靠性。
[1]叶佳.彩色图像的超复数整体检索和客观质量评估的研究[D].上海:复旦大学,2007.
[2]邱芹军,谭家政,蔡大伟,等.基于多特征融合的图像检索算法[J].三峡大学学报:自然科学版,2014,36(1):94-98.
[3]舒彬,王军锋,陈惠惠,等.基于小波变换的图像检索算法[J].计算机工程,2011,37(3):236-240.
[4]任国贞,江涛.基于灰度共生矩阵的纹理提取方法研究[J].计算机应用与软件,2014,31(11):190-192.
[5]尚燕,安涛,李春明.一种改进的抗噪和旋转不变纹理图像分类算法[J].电视技术,2013,37(9):38-41.
[6]赵晨炜.基于模糊聚类的彩色图像分割方法的研究[D].武汉:武汉理工大学,2012.
[7]郑美珠,赵景秀.基于区域一致性测度的彩色图像边缘检测[J].计算机应用,2011,31(9):2485-2488.
[8]陈倩.基于遗传LBG 的图像矢量量化改进算法[J].计算机科学,2012,39(7):280-281.
[9]许元飞.基于纹理的图像检索算法研究[J].西安科技大学学报,2013,33(7):470-474.
[10]肖鹏,徐军,陈少冲.纹理特征提取方法[J].电子科技,2010,23(6):49-51.
[11]李菊,余烨,戴欢,等.基于颜色和LBP 多特征的meanshift 的跟踪算法[J].合肥工业大学学报:自然科学版,2014,37(5):578-581.
[12]HEUSCH G,RODRIGUEZ Y,MARCEL S.Local binary patterns as an image preprocessing for face authentication[C]//Proc. FGR 2006.[S.l.]:IEEE Press,2006:9-14.
[13]李雪艳,冀小平.基于分块颜色特征和相关反馈的图像检索技术[J].电视技术,2013,37(7):29-32.