基于文本的图像检索技术存在两个缺点。首先,标注每个图像是比较困难的;再次主观性和图像注释的不精确性在检索过程中可能引起适应性问题。基于内容的图像检索技术克服了传统的图像检索技术的缺点。基于内容的图像检索技术分为特征提取和查询两个部分。本文主要介绍基于颜色特征的图像检索技术颜色特征是图像的基本特征也是最为直观的特征之一。着重探讨了颜色空间的选取颜色特征的提取和表达颜色的相似度以及现有的图像的检索系统和存在的问题。在这里颜色空间的选取有RGB颜色模式HSV颜色模型。颜色提取的基本思想是用颜色直方图来统计每种颜色出现的概率。目前相关的系统有QBIC系统、Photo book系统 、CORE系统等等。
关键词:基于内容的图像检索技术;特征提取;特征表达;颜色直方图;
Abstract
Traditional text-based image retrieval techniques have two shortcomings: First, it has been difficulties to note each image. Second, the subjectivity and no precision of image annotation may lead to the adaptation in the retrieval process. CBIR overcome the shortcomings of the traditional text-based image retrieval .Content-based image retrieval can divide into two parts, that is feature extraction and query. In this paper, based Color Image Retrieval is mainly introduced. Color features are the basic characteristics of the image as well as are one of the most intuitive features. Here we focused on the selection of color space, color feature extraction and expression, color similarity, and the existing image retrieval systems and problems. There are many color models to express color such as the RGB color model, the HSV color model. The basic idea to extract color is to use color histogram to calculate the probability statistics of each color .Currently there are some related systems QBIC system related system, Photo book system, CORE system and so on.
Keywords: Content-based image retrieval; Feather extraction; Feather presentation; color histogram;
目 录
1 绪论 1
1.1 图像检索技术的发展 1
1.2 图像检索技术的特点和应用 1
1.3 图像检索系统的关键技术 2
1.4 基于内容图像检索的典型系统 3
1.4.1 QBIC系统 3
1.4.2 Virage系统 3
1.4.3 Photobook系统 3
1.4.4 VisualSEEK和WebSEEK系统 3
1.4.5 Netra系统 4
2 颜色空间 5
2.1 RGB 颜色空间 5
2.2 HSI颜色空间 7
3 颜色特征的表达 9
3.1 颜色直方图 9
3.2 全局直方图 10
3.3 累积直方图 11
3.4 局部累加直方图 11
4 颜色特征的相似性度量 12
4.1 距离度量方法 12
4.2 直方图的交集的方法 12
4.3 欧氏距离法 12
4.4 模糊理论 13
5 系统的设计与实现 15
5.1 系统的设计 15
5.1.1 系统名称 15
5.1.2 系统的开发环境 15
5.1.3 系统的结构 15
5.1.4 系统的实现算法描述 17
5.1.5 系统中的图像库和索引表的建立 17
5.1.6 容差值的设定 18
5.2 系统的实现 18
5.2.1 颜色空间的代码实现 18
5.2.2 直方图显示的代码实现 21
5.2.3 欧式距离的代码实现 24
6 实例分析 25
6.1 图像检索过程 25
6.2 图像的直方图的分析 26
6.3 数据记录 27
6.4 目前研究中存在的主要问题及对未来的展望 29
结束语 30
致谢 31
参考文献 32
1 绪论
1.1 图像检索技术的发展
早期的图像检索是通过人工的标注来实现的,随着计算机技术和通信网技术的发展,特别是因特网的快速发展,图像数据的容量越来越大了,这种“以关键字找图”的方法越来越不适应检索技术的发展了[1]。由于图像内容的丰富内涵以及人们对图像内容进行抽象时的主观性不同的人对同一幅图像有不同的理解,这就引入了主观多义,不利于检索[2]。90年代以来出现了对图像的内容语义,如图像的颜色、纹理、布局等进行分析和检索的图像检索技术,即基于内容的图像检索。基于内容的图像检索技术直接从要查找的图像的视觉特征出发,在图像库中找到与之相似的图像,是“图找图”的方法。从研究方向的层面来看,基于内容的图像检索可分为三层:第一层是根据图像的底层特性来进行检索,如颜色、纹理,形状等等,涉及图像信息处理、图像分析和相似性匹配技术;第二层是基于图像对象语义,如图像中实体及实体之间的拓扑关系的检索,对象级检索技术建立在下层特征基础上,并引入了对象模型库、对象识别和人工智能等图像理解技术;第三层是基于图像的抽象属性如行为语义,情感语义和场景语义的推理学习来进行检索。需要用到知识库和更加有效的人工智能和神经网络技术。这三个层次由低到高,与人的认知接近,下一个层次通常包含了比上一个层次更高级的语义,更高层的语义往往通过较低层的语义推理获得。尽管经过了多年的研究,较为成熟的基于内容的图像检索技术目前仍处于底层水平,由于底层研究是上层研究的基础,为了给上层建立准确、有效的图像特征提取方法,底层的研究仍在不断的发展。
1.2 图像检索技术的特点和应用
基于内容的图像检索技术有以下特点:
一是它突破了传统的基于表达式检索的局限,从媒体内容中提取信息线索。利用图像内容特征建立索引进行检索,使得检索更加有效,适应性更强。
二是基于内容的图像检索是一种近似匹配,即按照某种相似性度量,比较图像特征间的差异度。相似度较低的图像将作为检索结果返回给用户。
三是它是大型数据库的快速检索。在实际的多媒体数据库中,数据量巨大,而且种类和数量巨大,因此要求CBIR技术快速地实现对多媒体信息的检索。
四是以相关反馈为有效手段。为了提高检索的准确性,整个过程是个逐步逼近和相关反馈的过程。用户的交互性增强了表达查询、评价查询结果和基于评价结果进行进一步检索的能力。
CBIR技术涉及多个领域,包括图像处理、计算机领域、数据挖掘、人机交互等等。可以广泛应用于社会安全、遥感、医学、数字图书馆、医学、计算机辅助设计等等,前景广阔。
1.3 图像检索系统的关键技术
对于通用的静止图像检索,用于检索的特征主要有颜色(Color)、纹理(Texture)、形状(Shape)等,其中颜色、纹理、形状应用尤为普遍,本文主要研究对静止图像检索。颜色特征是在图像检索中应用最为广泛的视觉特征。面向图像检索的颜色特征的表达涉及若干问题。首先,要选择合适的颜色空间来描述颜色特征;其次,要采用一定的量化方法将颜色特征表达为向量的形式;最后,还要定义一种相似度( 距离) 标准用来衡量图像之间在颜色上的相似性。颜色内容包含两个一般的概念,一个对应于全局颜色分布,一个对应于局部颜色信息。按照全局颜色分布来索引图像可以通过计算每种颜色的像素的个数并构造颜色灰度直方图来实现,这对检索具有相似的总体颜色内容的图像是一个很好的途径。局部颜色信息是指局部相似的颜色区域,它考虑了颜色的分类与一些初级的几何特征。比如Smith等提出了颜色集合(color set)方法来抽取空间局部颜色信息并提供颜色区域的有效索引。颜色特征是图像最直观而明显的特征,一般采用直方图来描述。颜色直方图是表示图像中颜色分布的一种方法,它的横轴表示颜色等级,纵轴表示在某一个颜色等级上具有该颜色的像素在整幅图像中所占的比例,直方图颜色空间中的每一个刻度表示了颜色空间中的一种颜色。
本文主要讨论颜色特征的图像检索技术,其关键技术路径如图1-1所示:
图1-1 关键技术的路径
其中,颜色空间选用RGB空间,用全局直方图来表达颜色特征,相似性度量选用欧氏距离计算方法。
1.4 基于内容图像检索的典型系统
鉴于基于内容的图像数据库检索系统的重要性、有效性和优越性,近年来国内外已经纷纷投入人力物力广泛开展研究并且已经研制出了一些系统。其中既有各研究机构研制的演示软件也有商业应用软件。下面列举一些具有代表性的图像检索系统。
1.4.1 QBIC系统
国际商用机器公司IBM的QBIC是第一个商业化的基于内容的图像检索系统。它的系统结构包括图像入库、特征计算、查询阶段。QBIC系统允许使用例子图像、用户构建的草图和图画、选择的颜色和纹理模式、镜头和目标运动和其他图形信息等,对大型图像和视频数据库进行查询。
1.4.2 Virage系统
Virage是由Virage公司开发的基于内容的图像搜索引擎。它支持颜色、颜色布局、纹理、结构的查询,并且与QBIC相比较支持四个查询的任意组合。用户可以根据自己的查询意图调整四个查询的权重。Virage的核心技术是Virage Engine以及在图像对象层上的操作。Virage Engine主要有图像分析、图像比较、图像管理三个方面的功能。
1.4.3 Photobook系统
Photobook是MIT的媒体实验室在1994年开发研制的用于浏览和搜索图像的一套交互式工具。它包括三个子部分,用于提取形状、纹理和面部特征。用户可以在每个子部分中按照对应的特征进行查询。它的人脸识别技术已经应用于美国的机关。
1.4.4 VisualSEEK和WebSEEK系统
美国哥伦比亚大学图像和高级电视实验室开发的。它实现了互联网上的"基于内容"的图像/视频检索系统,提供了一套工具供人们在Web上搜索和检索图像和视频。其姐妹系统WebSEEK是一种面向WWW的文本/图像搜索工具,它主要包括图像、视频、收集模块,主题分类和索引模块,搜索浏览和检索模块。目前已分类的图像有66万多幅,形成了一个极富创新性的图像目录,主题分类是它的主要优点。
1.4.5 Netra系统
Netra是UCSB Alexandria Digital Library 发展的图像检索系统原型。Netra在其图像分块区域中使用颜色、纹理、形状和空间位置信息来从数据库中搜索和检索相似的区域。它的主要特点是基于 Cabor滤波器的纹理分析和基于神经网络的图像分类构造。
2 颜色空间
颜色是图像最基本的特征之一,颜色特征也是图像检索中应用最为广泛的视觉特征,与其他视觉特性相比较,颜色特征对图像本身的尺寸、方向和视角的依赖性较少。而且颜色特征的提取也相对容易。
一般可以将颜色模型可分为两类,一类是RGB模型,另一类则是HSI模型。RGB模型是电子输入设备普遍使用的色彩语言,如显示器、扫描仪、数码相机。HSI模型是面向视觉感知或颜色处理分析为目的的应用,如动画中的彩色图形,各种图像处理算法等。
2.1 RGB 颜色空间
有几种方法可以定量地表示颜色。最直接的方法是使用红、绿、蓝的亮度值,大小可以限定到一定的范围,如{0,1,…255},我们把这种约定称为RGB格式。大部分数字图像都是用这种颜色空间表达的[3]。每个像素(实际上任何可能要量化的颜色)都能根据加色原理如图2-1所示,用三维空间中第一象限的一个点来表示,如图2-2中的立方体所示。三色图像的灰度级直方图是RGB空间的点分布。
在RGB彩色空间的原点上,任一基色均没有亮度,即原点为黑色。三基色都达到最高的亮度时则表现为白色。亮度较低的等量的三种基色产生灰色的影调。所有这些点均落在彩色立方体的对角线上,该对角线被称为灰色线。彩色立方体中有三个角对应于三基色——红、绿和蓝色。剩下的三个角对应于二次色黄色、青色和品红。
图2-1 加色系统
图2-2 RGB模型
一幅图像可以看作从点坐标映射到R、G、B空间。如果在图像中点的位置忽略掉,图像可以认为是R3空间中的点集。
每一幅图像可以分解为R分量图、G分量图、B分量图,如图2-3所示。
原始图像 G分量
R分量 B分量
图2-3 RGB分量图
2.2 HSI颜色空间
另一种有用的彩色方案由色度、饱和度和强度(或亮度)组成的HSI(Hue, Saturation, Intensity)格式,它是Munseu提出的彩色系统格式,经常为艺术家所使用。这种设计反映了人观察彩色的方式,同时也有利于图像处理。
在HSI格式中,I表示强度或亮度。H由可见光谱中各分量成分的波长来确定,是彩色光的基本特性。S反映了彩色的浓淡,它取决于彩色光中白光的含量,也就是彩色光的纯度的反映。HSI坐标是柱形彩色空间。灰度影调沿着轴线以底部的黑变到顶部的白,具有最高亮度最大饱和度的颜色位于圆柱上顶面的圆周上如图2-4所示。
图2-4 HSI模型
从两个图像可以看出RGB空间中灰度线是彩色立方体的对角线,而在HSI空间中是垂直中轴。
HSI模型有两个重要的特点,首先亮度分量与色度分量是分开的,I分量与图像的彩色信息无关。其次是H及S分量与人感受彩色的方式紧密相连(这里强调颜色的重要性,因为人对光的感知与I分量有关)。这些特点使得HSI模型非常适合人的视觉系统对彩色感知特性进行处理分析的图像算法。
3 颜色特征的表达
3.1 颜色直方图
这里用颜色直方图来描述图像的整体颜色特征。颜色特征是图像最直观而明显的特征,一般采用直方图来描述。颜色直方图是表示图像中颜色分布的一种方法,它的横轴表示颜色等级,纵轴表示在某一个颜色等级上具有该颜色的像素在整幅图像中所占的比例,直方图颜色空间中的每一个刻度表示了颜色空间中的一种颜色。颜色直方图具有与身俱来的旋转不变性和缩放不变性[4],如图3-1所示。直方图特征描述了图像颜色(或灰度) 的统计特性,反映了图像颜色的统计分布和基本色调,但是直方图不包含空间信息,因此不同的图像有可能具有相同的直方图特征。
图3-1 颜色直方图的旋转不变性和缩放不变性
其主要思想是根据颜色直方图统计颜色空间中每种颜色出现的概率,然后对颜色之间的距离采用直方图相交来度量每个颜色直方图之间的相似性。数字化图像的每一种颜色组合有一个唯一的色度空间值,称为一个颜色频道(Color Channel)。我们可用颜色直方图(Color Histogram ) 来表示一幅图像上所有象素的色度空间值分布,图中横坐标表示该图像颜色频道的分布,纵坐标表示该图像所有象素中落入特定颜色频道的象素数量。具体地,设图像为I,图像颜色由L 级颜色频道组成,其中第i 种颜色Ci ( i= 1, 2,… , L ) ,落入颜色频道Ci 的象素数量为hi,则H(hi, h2, …, hL ) ;这个向量组就是颜色直方图,它在图中表现为一条离散的曲线[5]。如下图3-2所示:
图3-2 颜色直方图
3.2 全局直方图
颜色内容包含两个一般的概念,一个对应于全局颜色分布,一个对应于局部颜色信息。按照全局颜色分布来索引图像,可以通过计算每种颜色的像素的个数,并构造颜色灰度直方图来实现,这对检索具有相似的总体颜色内容的图像是一个很好的途径。局部颜色信息是指局部相似的颜色区域,它考虑了颜色的分类与一些初级的几何特征。如Smith 和Chang 提出了颜色集合(Color Set) 方法来抽取空空间局部颜色信息,并提供颜色区域的有效索引。
全局直方图反映的是图像中颜色的组成分布,即出现了哪些颜色以及各种颜色出现的概率,Swain 和 Ballard最先提出了使用颜色直方图作为图像颜色特征的表示方法。他们还指出:颜色直方图相对于图像的以观察轴为轴心的旋转以及幅度不大的平移和缩放等几何变换是不敏感的,颜色直方图对于图像质量的变化(如模糊)也不甚敏感。颜色直方图的这种特性使得它比较适合于检索图像的全局颜色相似性的场合,即通过比较颜色直方图的差异来衡量两幅图像在颜色全局分布上的差异。
图像特征的统计直方图实际上是一个一维的离散函数,即有
H(k) = nk/N k = 0,1,……,L-1 (公式3-1)
式中k代表图像的特征取值,L是特征可取值的个数,nk是图像中具有特征值为k的像素的个数,N是图像像素的总数。例如,设计系统中RGB空间内采用256个直方条(bin),对应图像中具体某个颜色特征值像素个数在总像素个数中的比例即为象限中的纵坐标值。
3.3 累积直方图
当图像中的特征并不能取遍所有可取值时,统计直方图中会出现一些零值。这些零值的出现会对相似性度量的计算带来影响,从而使得相似性度量并不能正确反映图像之间的颜色差别。为解决这个问题,在全局直方图的基础上,Stricker和Orengo进一步提出了使用“累加颜色直方图”的概念[6]。在累加直方图中,相邻颜色在频数上是相关的。相比一般直方图,虽然累加直方图的存储量和计算量有很小的增加,但是累加直方图消除了一般直方图中常见的零值,也克服了一般直方图量化过细过粗检索效果都会下降的缺陷。
图像特征统计的累积直方图也是一个一维的离散函数,即对原有统计直方图作迭代累加。显然,当k = L-1时,累积直方图的纵坐标值为1,因为根据所有条件概率求全概率的值为1。
对彩色图像,可对其3个分量分别做累积直方图。
3.4 局部累加直方图
在HSI空间里,H=0基本对应红色,H=pi/3基本对应黄色,H=2pi/3基本对应绿色。这样在H轴上黄色与红色间,黄色与绿色间距相等[7]。但从人的视觉感知来讲,黄色与红色间,黄色与绿色间本无所谓哪两个更相似。这表明色度信号的分布从视觉意义上讲,并不满足累加直方图应用的前提。所以,对色彩比较复杂的自然景物图像,一般累加直方图算法在检索中就会将不同色度的信号混淆起来。
另外,一幅图像的颜色一般非常多,尤其是真彩色图像,因此直方图矢量的维数会非常高。如果能采用局部累加后降维,则计算量要少得多。
4 颜色特征的相似性度量
4.1 距离度量方法
图像的相似性度量是基于内容图像检索技术中的一个关键技术。它是建立在图像内容的基础上,根据图像内容的相似度得到图像的相似性。颜色的相似度就是用数值来表示两幅图片在颜色上的相似度。颜色特征的相似度一般采用距离法。一般有直方图的交集、直方图欧氏距离、直方图余弦距离、二值集hammimg距离、直方图二次距离度量、二值集二次距离、直方图Mahalanobis距离[8]。下面对几种距离度量方法做简要的介绍。
4.2 直方图的交集的方法
直方图的交集算法,根据颜色索引检索出查询图像的颜色直方图,将其与图像库中的每一图像的直方图取交集,根据交集的值来选出最佳匹配图像。
直方图交集的公式如下:
D(Ha,Hb)= (公式4-1)
其中Ha为查询图像直方图,Hb为图像库中的任一图像直方图,为两图像的匹配值。,它的值越接近1,则两图像越相似。
直方图交集方法能对两幅图像进行详细的比较,然而对于许多合成的图像,如商标等,它们有大量的一致颜色,三维直方图只有几个域的值很高,而其它许多域的颜色信息变化有限。因而,对于这样的图像进行过细的比较是不必要的。又由于在扫描图像时容易产生一些噪音,所以这种过细的比较容易产生错误的结果。
4.3 欧氏距离法
衡量两幅图片是否相似可以采用欧氏距离来描述:
D = ( A , B) = (公式4-2)
其中A,B 为两幅图片的颜色直方图,D 越小相似度就越大。
检索后全图直方图的相似度的定量度量如下表示:
Sim ( A , B) = (公式4-3)
其中N为颜色级数,Sim 越靠近1,两幅图片越相似。
如果对公式4-3加以改进,即对某些相对重要的颜色乘上一个权重,就可以做寻找某一前景或组合的查询。全图的颜色直方图算法过于简单,因此带来很多问题,如:可能会有两幅根本不同的图像具有完全一样的颜色直方图,不反映颜色位置信息,这样导致查准率和查全率都不高,因此笔者提出了一个改进,即将图像进行了分割,形成若干子块。这样就提供了一定程度的位置信息,而且可以对含用户感兴趣的子块加大权重,提高检索的查询智能性和查准查全率[9]。相应的公式有子块Aij与Bij的相似性度量,如公式4-4所示:
Simij ( Aij , Bij) = (公式4-4)
其中P为所选颜色空间的样点数。
再引入子块权重Wij ,选取L个最大的Sim值作Simk ( Gk , Sk) ,就有公式4-5如下所示:
Sim( A , B) = WkSimk ( Ak , Bk) (公式4-5)
其中Wk 的选取应根据图像的特点决定,可以使图像中间或用户指定的区域权重大,以反映图像的位置信息。由以上公式算法可以推断,根据Sim的值就可以得出最终查询结果。
4.4 模糊理论
模糊理论是在美国加州大学伯克利分校电气工程系的L.A.zadeh教授于1965年创立的模糊集合理论的数学基础上发展起来的,主要包括模糊集合理论、模糊逻辑、模糊推理和模糊控制等方面的内容[9]。
模糊理论是以模糊集合(fuzzy set)为基础,其基本精神是接受模糊性现象存在的事实,而以处理概念模糊不确定的事物为其研究目标,并积极的将其严密的量化成计算机可以处理的讯息,不主张用繁杂的数学分析即模型来解决模型[10]。模糊集理论是对传统集合理论的一种推广,在传统集合理论中,一个元素或者属于一个集合,或者不属于一个集合;而对于模糊集来说,每一个元素都是以一定的程度属于某个集合,也可以同时以不同的程度属于几个集合。对人们现实生活中大量使用的一些含义确定但又不准确的语言表达,比如“今天天气很热“、“车速过高,需要适当踩刹车”等,用模糊数学可以很好的表达。
5 系统的设计与实现
5.1 系统的设计
5.1.1 系统名称
基于颜色特征的图像检索系统
5.1.2 系统的开发环境
系统实现选用的开发工具为Microsoft公司的Visual C++ 6.0。C++是最流行的面向对象语言之一,支持对象、类、方法、消息等概念,同时也支持面向对象方法的封装机制和继承、多态性机制[11]。1998年C++由ISO(International Standards Organization)完成了标准化,C++标准提供了统一的C++标准库,为用户提供了最为广泛的编程基础设施。Visual C++ 6.0是Microsoft 公司推出的基于Windows 的可视化集成开发环境,将编辑、编译、链接和执行集成为一体,能用它来开发32位程序[12]。Visual C++经历了从1.0到6.0版本的发展,软件系统逐渐庞大,功能日益完善。
5.1.3 系统的结构
基于图像的颜色特征的图像检索主要思路是:从图像中分析抽取底层视觉特征用于检索,这里是用颜色特征来衡量图像之间的相似度以实现基于内容的检索。整个流程可用图5-1所示框图表示:
图5-1 基于颜色特征的图像检索系统框图
我们可以从系统框图中抽象出四个层次:
(一)颜色空间内特征提取
颜色空间为RGB。自动地对图像数据进行自动的特征提取,提取用户感兴趣的、适合检索要求的特征。全局统计直方图表示图像全局的特征。
(二)图像匹配
用欧氏距离法作为相似性度量方法,在选取了特征之后,判断欧氏距离,欧氏距离越小,图像越接近,从而在图像库中的找出与待识别的图像的特征最为接近的图像最为查找的结果。
(三)特征索引
当图像库中包含大量图像数据时,为了有效地进行查询,合适的存取、访问结构就变得非常的重要了[13]。为每张图像绘制直方图,以这些直方图信息建立一个索引。
(四)用户反馈
基于用户反馈的检索是将人包括在检索环路中[14],以弥补自动语义分析面临的困难,通过交互式的反馈,来决定采用何种类型特征组合及多大特征权值进行检索,从而使图像目录库中的图像分类更接近使用者的愿望,使检索结果符合使用者的个性化要求。
5.1.4 系统的实现算法描述
(1) 读入待查找的图像;
(2) 计算待查找图像的直方图;
(3) 选择图像库目录,并为图像库中的每张图片都在索引表中建立一个字段来存放图片的标识号,索引表中建立一个字段来存放图片的信息;
(4) 为图像库目录内的每一张图像建立全局直方图数据,将这些数据存入索引列表;
(5) 按欧式距离公式计算每张图片的直方图和待查找的图像的直方图之间的差异度;
(6) 将N幅被比较的图像与用户输入的样本图像的最后计算出来的差异度结果记录放入索引表中;
(7) 将N个差异度从小到大进行排列;
(8) 根据差异度的排列显示检索到的图像的顺序,也可以设置容差值来约束差异度的取值用来更精确的显示图像。
5.1.5 系统中的图像库和索引表的建立
图像库是存放图像的库,它和数据库相比较类似的地方是,普通的数据库中存放的是数据信息,而图像库中存放的是图像数据信息[15]。它是一些图像的集合,具体在系统实现中,我们的图像库是以指定的存放图片信息的文件夹来表示的。在一些现有开发的系统中,未使用数据库管理系统这样的中间件。在图像库特征化的模块中直接在相应目录内生成二进制文件,以存储特征表达的相关信息[16]。这样节约成本和降低系统安装要求。
索引表一般分为四个字段,第一个字段是每张图片在图像库中的索引表中建立一个唯一的对应的标识号,它和图片间是一一对应的关系,根据标识号来确定唯一的一张图片。第二个字段是记录的是图像库中的每张图片的图像数据,该数据记录的是每张图的像素点的信息。第三个字段是直方图的数据,直方图数据是根据图片中像素点的RGB颜色信息来绘制成具体的可以显示的直方图,直方图中记录的是图像的三原色分布。第四个字段是差异度的数据,即计算待查找图像的直方图分别和图像库中每张图片的直方图之间的欧式距离,该欧式距离代表的就是差异度,差异度越小,欧氏距离就越小[17],但是这种差异度的排列是无序的,然后将该字段的信息用代码实现从小到大的排序,然后根据标识号来找到图片,将图片进行相似度的排列显示。
5.1.6 容差值的设定
容差值是对差异度的一个具体的限定,它也是一个差异度的值[18]。容差值的设置是为了更好的精确显示图像,它是一种经验值[19],对于经常使用系统的人来说,通过设定该值可以更精确以及快捷的找到规定差异度范围内最相似的图片。在系统设计中容差值是个变量,它可以根据用户要求设定不同的值,差异度大于该值的图片不予显示,如果在容差值范围内的图片超过12张,也将根据差异度由小到大排列的次序,显示差异度排序的前12个。容差值是一个参考尺度,多次使用该系统后,可根据个人的经验来设置具体的容差值数值[20]。
5.2 系统的实现
5.2.1 颜色空间的代码实现
//扫描图像中的R、G、B颜色的值
void CalcHistogram(Bitmap *image4, TongJiShuju &DataOfImage)
{
INT Width = image4->GetWidth();
INT Height = image4->GetHeight();
long long SumOfRed2[256 + 1]; // 红色通道累加数组
long long SumOfGreen2[256 + 1]; // 绿色通道累加数组
long long SumOfBlue2[256 + 1]; // 蓝色通道累加数组
for (int k = 0; k < 256; k++)
{
DataOfImage.RPercentage[k] = 0;
DataOfImage.GPercentage[k] = 0;
DataOfImage.BPercentage[k] = 0;
}
for (int i = 0; i < 256 + 1; i++)
{
SumOfRed2[i] = 0;
SumOfGreen2[i] = 0;
SumOfBlue2[i] = 0;
}
//////////////////////////////////// 下面统计各个通道的各个亮度累加值
Color color;
int sub = 0;
long long SumOfOneChannel = 0;
for (int i = Height; i > 0; i--)
{
for (int j = Width; j > 0; j--)
{
image4->GetPixel(i, j, &color);
sub = color.GetRed();
SumOfRed2[sub]++;
sub = color.GetGreen();
SumOfGreen2[sub]++;
sub = color.GetBlue();
SumOfBlue2[sub]++;
}
}
for (int i = 0; i < 256; i++)
{
SumOfOneChannel += SumOfRed2[i]; // 通道各亮度颜色总和[会溢出]
}
///////////////////// 下面查找累加和中最大的一个值以决定直方图压缩阀值
long long MaxSum = 0;
for (int i = 0; i < 256; i++)
{
if (SumOfRed2[i] > MaxSum)
{
MaxSum = SumOfRed2[i];
}
if (SumOfGreen2[i] > MaxSum)
{
MaxSum = SumOfGreen2[i];
}
if (SumOfBlue2[i] > MaxSum)
{
MaxSum = SumOfBlue2[i];
}
long long BeiShu = SumOfOneChannel / MaxSum * 100;
// 相除等于1则乘以该除数为1,为便于显示乘以100将直方图高度限定在100以内 //////////////////////////////////////////////////////////////////////////
// 生成图像直方图数据
for (int k = 0; k < 256; k++)
{
Pen RedPen(Color(255, 255, 0, 0), 1);
Pen GreenPen(Color(255, 0, 255, 0), 1);
Pen BluePen(Color(255, 0, 0, 255), 1);
DataOfImage.RPercentage[k] = int(SumOfRed2[k] * BeiShu / SumOfOneChannel);
DataOfImage.RPercentage[k] = int(SumOfRed2[k] * BeiShu / SumOfOneChannel);
DataOfImage.GPercentage[k] = int(SumOfGreen2[k] * BeiShu / SumOfOneChannel);
DataOfImage.BPercentage[k] = int(SumOfBlue2[k] * BeiShu / SumOfOneChannel);
}
}
5.2.2 直方图显示的代码实现
//画RGB直方图[可以分别划出R、G、B通道的直方图]
void CImgSchDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND,
reinterpret_cast int cxIcon = GetSystemMetrics(SM_CXICON); int cyIcon = GetSystemMetrics(SM_CYICON); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon + 1) / 2; int y = (rect.Height() - cyIcon + 1) / 2; dc.DrawIcon(x, y, m_hIcon); } else { CDialog::OnPaint(); } Pen RedPen(Color(255, 255, 0, 0), 1); Pen GreenPen(Color(255, 0, 255, 0), 1); Pen BluePen(Color(255, 0, 0, 255), 1); Pen BlackPen(Color(255, 0, 0, 0), 1); LinearGradientBrush BlackBrush(Point(0, 0), Point(256, 100), Color(255, 180, 180, 180), Color(255, 180, 180, 180)); graphics->FillRectangle(&BlackBrush, 20, 20, 160, 120); graphics->FillRectangle(&BlackBrush, 200, 20, 256, 120); graphics->DrawRectangle(&BlackPen, 20 - 1, 20 - 1, 160 + 1, 120 + 1); graphics->DrawRectangle(&BlackPen, 200 - 1, 20 - 1, 256 + 1, 120 + 1); graphics->DrawImage(SampleImage, Rect(20, 20, 160, 120)); for (int k = 0; k < 256; k++) { if (TRUE == bShowRChannel) { graphics->DrawLine(&RedPen, Left + k, Bottom, Left + k, Bottom-TongJiOfSampleImage.RPercentage[k]); } if (TRUE == bShowGChannel) { graphics->DrawLine(&GreenPen, Left + k, Bottom, Left + k, Bottom - TongJiOfSampleImage.GPercentage[k]); } if (TRUE == bShowBChannel) { graphics->DrawLine(&BluePen, Left + k, Bottom, Left + k, Bottom - TongJiOfSampleImage.BPercentage[k]); } } FontFamily fontFamily(L"宋体"); Font font(&fontFamily, 12, FontStyleRegular, UnitPixel); SolidBrush SolidBrush2(Color(255, 255, 255, 255)); int Left = 20; int Top = 200; CString s; for (vector { if ((*it)->MissSimilarDegree > m_ipsilon) { continue; } graphics->DrawImage((*it)->image, Left, Top, 160, 120); s.Format(_T("%ld"), (*it)->MissSimilarDegree); graphics->DrawString(s, s.GetLength(), &font, PointF(Left + 120, Top + 100), &SolidBrush2); Left += 200; if (Left > 700) { Left = 20; Top += 160; } } } 5.2.3 欧式距离的代码实现 // 计算差异度 void CalcMissSimilarDegree(TongJiShuju TongJiOfSampleImage, TongJiShuju &data) { long long MissSimilarDegree = 0; for (int i = 0; i< 256; i++) { MissSimilarDegree += (TongJiOfSampleImage.RPercentage[i] - data.RPercentage[i]) * (TongJiOfSampleImage.RPercentage[i] - data.RPercentage[i]); MissSimilarDegree += (TongJiOfSampleImage.GPercentage[i] - data.GPercentage[i]) * (TongJiOfSampleImage.GPercentage[i] - data.GPercentage[i]); MissSimilarDegree += (TongJiOfSampleImage.BPercentage[i] - data.BPercentage[i]) * (TongJiOfSampleImage.BPercentage[i] - data.BPercentage[i]); } data.MissSimilarDegree = MissSimilarDegree; } bool UDLesser (TongJiShuju *elem1, TongJiShuju *elem2) // Return whether first element is greater than the second { return elem1->MissSimilarDegree < elem2->MissSimilarDegree; // 这里调用operator <来获取较小值} 6 实例分析 6.1 图像检索过程 第一步:打开样本图,得到颜色直方如图6-1所示: 图6-1 样本图及直方图 第二步:输入合适的容差取值,进行检索,如图6-2所示: 图6-2 检索结果 6.2 图像的直方图的分析 图6-3所示的四幅图分别表示一个图像的红色、绿色、蓝色和RGB颜色在图中的分布情况。 样本图中可以看出图像的主要色彩为白色与黑色,从各个直方图中可以看到红、绿、蓝三基色的取值较均匀,且横坐标上的某个值上对应的纵坐标的取值相当。 三原色都处于较大值时,图像较亮。反之,当三原色都处于较小值时,图像较暗,由此,可以根据直方图来判断图像的亮度。 图6-3 各通道直方图 从图6-4和图6-5,观察直方图图可以发现,其大致波动的情况是一致的,根据这一性质可以根据直方图来辨别相似的图片。可以建立直方图的索引来查找图像。 图6-4 样本图片及其颜色直方图 图6-5 相似图片及其颜色直方图 6.3 数据记录 本系统图像库中的图片如下表6-1所示,选择12幅图片并且对它们进行编号,进行图像检索,记录每幅图片的相似度。 表6-1 序号为1到12分类的图像目录库图片 6.4 目前研究中存在的主要问题及对未来的展望 基于内容的图像检索主要研究技术的研究中仍存在如下主要问题:一是计算机视觉技术仍不够完善。图像的视觉特征包括颜色、纹理、形状, 计算机视觉与人对图像特征的感知还存在着一定的差距[14]。虽然HSV 色彩空间与人对色彩的感知相一致[16],但是对这个色彩空间的考察仍然不够,关于两种色彩之间的相似度的定义和视觉上任对相似色彩的判定有一定的差距。在视觉上相差很大的图像,其欧氏距离可能比较小。二是缺乏一个客观的评价检索结果的标准目前基于内容检索结果的评价方法采用的是信息检索中的查全率和查准率,远未令人满意,定义一个很好的评价方法的困难主要在于人对图像内容认知上的主观性使得很难定义一个客观的标准[15]。 图像检索未来的几个发展方式包括: (一)新的人机交互与相关反馈。现有的检索方法都是以计算机为中心,使得一些查询结果从计算机的角度来看是相似的,而人却认为是不相似的。相关反馈机制就是为了解决这一矛盾的。是通过意中人机交互机制使得计算机能够不断了解用户对查询结果的满意程度,并通过逐步学习把输出调整到用户期望的状态。 (二)更大的图像数据库; (三)解决问题的新方法以及新的应用目的与方式; (四)底层基于内容的图像检索技术朝更高的水平发展。由于高层基于内容的图像检索技术需要低层基于内容的图像检索技术的支撑,同时,在高层检索技术未取得突破,实际应用仍然依赖于底层检索技术的今天,底层基于内容的图像检索技术仍在不断的发展,其发展趋势是通过对上述基本物理特征的检索方法的综合应用,以减少运算量和提高检索精度。 (五)高层基于内容的图像检索技术逐渐成型底层特征虽然直接反映了图像的物理特征,但对图像的描述与人类对图像的描述习惯和检索需求存在着较大的差异,对于运动图像尤其如此。因此,底层基于图像内容的检索技术难以满足信息时代的需求,从而加快了人们对高层语义下基于内容的图像检索的研究步伐。 结束语 基于颜色特征的图像检索系统仅是从图像的低层特性出发。基于颜色的图像检索的典型方法是颜色直方图法,本文讨论的就是这种方法。以RGB为颜色空间,以颜色直方图作为颜色特征的表达方法,用欧氏距离表示图像间的相似度。这种方法具有计算简单、对平移和旋转不敏感等优点,一直以来都是基于颜色的图像检索的主要方法。但是直方图不能反映空间位置的变化,两幅景色相似但是空间位置完全不同的图像,得出的直方图是一模一样的。另外是颜色量化误差的影响较大,以致差别细微的颜色可能会得出无差别或差别很大的两种决然不同的颜色直方图。 为克服颜色直方图不能反映空间信息的缺点,可以引入空间信息。图像分割为适当的分块,然后用分块的颜色直方图和分块的颜色矩为每个分块提取响应的局部颜色特征,从而提高图像检索的准确性。图像检索技术未来的发展趋势是对颜色、形状、纹理等图像的基本物理特征的检索的综合应用。如综合利用颜色和形状两种检索技术的图像检索根据彩色图像中对象与背景之间存在的颜色差异,先利用颜色检测方法提取物体形状的边缘特征,然后再利用形状检索的方法进行图像检索,从而比直接提取形状特征的单一的形状检索方法更有效、更容易。 致 谢 在做毕业设计的过程中老师和周围的同学给了我很大的帮助,所以我由衷感谢他们帮助我能够及时完成这次的毕业设计。认真地做好毕业设计是对他们最好的回报。 在这过程中特别感谢殷新春教授和叶树颖学姐对我的帮助和支持。殷教授学识渊博、治学严谨,对科研工作的孜孜不倦精神影响我很深,在殷教授的悉心指导中,我不仅对以前学过的专业知识有了更深刻的了解,而且还学到了许多在课堂上学不到的实践开发经验。他对工作的积极热情、一丝不苟、认真负责、有条不紊、实事求是的态度,给我留下了深刻的印象,使我从中受益匪浅。在此我谨向殷教授表示衷心的感谢和深深的敬意!在这过程中叶树颖学姐给了我很多指导,她对学习、工作的执着很认真,给我留下了深刻的印象,在她忙碌的学习之余,她总能抽出时间给我指导毕业设计,在此对她表示衷心的感谢和祝福。 感谢母校培育了我,感谢四年中所有的老师和同学帮助我在大学四年扎实了专业基础,得以完成此次毕业设计,让我对今后的人生道路充满信心。 参考文献 [1] 周明全,耿国华.韦娜.基于内容的图像检索技术[M].北京:清华大学出版社,2007:15-20. [2] 李国辉,柳伟,曹莉华.一种基于颜色特征的图像检索方法[J].中国图像图形学报. 1999,4(1):248-249. [3] 程敏,叶秀清.基于内容的图像检索系统的设计与实现[J].计算机科学与工程,2004,26(1):51-52. [4] 伯晓晨,刘建平.基于颜色直方图的图像检索[J].中国图像图形学报,1999,4(33):56. [5] 毛力,张晓林.基于颜色内容的图像检索原理与方法[J].情报科学,2000,18(16). [6] 吴波,王保保.几种基于内容的图像检索的方法[J].计算机技术与发展,2006,16(6):192. [7] 凌玲..基于颜色的图像检索技术[J] .计算机工程,1999,25(8):81-82. [8] Swain M J, Ballard D H. Indexing via Color Histograms. Proc ICCV90.390-393. [9] 陈兵旗,孙明.Visual C++ 实用图像处理[M] . 北京:清华大学出版社,2004:119. [10] Yong Rui, Thomas S. Huang. A Novel Relevance Feedback Technique in Image Rtrieval[J], ACM,1999:36. [11] J.R. Smith, S-F.Chang. An Image and Video Search Engine for the World Wide Web[J]. Proc. SPIE 2670 Storage and Retrieval for Still Image and Video Databases 1. [12] 章毓晋.基于内容的视觉信息检索[M].北京:科学出版社,2003:45. [13] 林中.开放系统用户接口技术参考模型及标准轮廓[J].计算机辅助设计与图形学报,1999. 3(3):56. [14] J.R. Smith, S.-F. Chang. VisualSeek: A Fully Automated Content-Based Image Query System[J]. ACM Int’l Conf. Multimedia, ACM press, New York, 1996:87-93 [15] B.S. Manjunath, W.Y. Ma. Texture Features for Browsing and Retrieval of Image Data[J], IEEE TRANSACTIONS ON PATTERN ANALYSIS AND MACHINE INTELLIGENCE, 1996,18(8): 837-842 [16] 章毓晋. 图像工程(上册)— 图像处理与分析[M] ..北京:清华大学出版社,1999:35-37. [17] 刘士林.基于内容的图像检索[J]. 佳木斯大学学报. 2001, 19(3):259. [18] 徐杰,施鹏飞.基于内容的图像检索技术[J] .中国图像图形学报.2003,8(9): 978 [19] 张宜.基于内容的图像检索技术研究综述[J] .广西广播电视大学学报.2003,14(3): 25-26. [20] 夏良正,陈延标,李久贤.数字图像处理[M] .南京:东南大学出版社,1998:23-25
表6-2 序号12的样本图检索的数据1 2 3 4 5 6 7 8 9 10 11 12
以编号为12的图片为样本图像,记录差异度。易见编号为10和编号为12的图片比较相近,由上表6-2可知编号为10和编号为12的图片的差异值最小。编号 差异值 相似度排列 1 41852 6 2 32400 5 3 460 7 4 54916 8 5 1199 11 6 161420 10 7 28694 4 8 171795 12 9 2885 3 10 488 2 11 98568 9 12 0 1