JAVA实现的基于内容的图像检索系统设计与实现

Aboriginal

发布日期: 2018-11-04 22:53:22 浏览量: 393
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

1 图像检索系统工作流程

基于内容的图像检索技术是对输入的图像进行分析并分类统一建模,提取其颜色、形状、纹理、轮廓和空间位置等特征,建立特征索引, 存储于特征数据库中。检索时,用户提交查询的源图像,通过用户接口设置查询条件,可以采用一种或几种的特征组合来表示,然后在图像数据库中提取出查询到的所需关联图像,按照相似度从大到小的顺序,反馈给用户。用户可根据自己的满意程度,选择是否修改查询条件,继续查询,以达到满意的查询结果。

2 图像检索系统框架

基于内容的图像检索系统框架如图1所示。系统的核心是图像特征数据库。图像特征既可以从图像本身提取得到, 又可以通过用户交互获得, 并用于计算图像之间的相似度计算。系统框架应主要包含以下几个基本功能模块:检索方法设置、检索结果浏览、数据库管理维护等。其逻辑结构如图2所示。

3 数据库构建与实现

图像数据库包括两个部分:图像库和特征库。图像库是图像的集合,存储数字化的图像信息,具体在系统实现中,可以存放图像的路径和文件名称来表示;特征库存储图像中提取出的特征表达的相关信息,并为提取出的各个特征简历索引,且和图像间存在一一对应的关系。

3.1 图像数据库

图像是图像元灰度值的纪录, 以行列数据矩阵表示, 一般信息量比较大。直接读取图像的信息存入数据库中, 不但增加了数据库的容量, 而且增加了计算机的负担。若直接根据图像的路径名称建立图像地址库, 可有效提高计算机的计算效率。当需要提取图像时, 再根据图像的地址, 对图像进行检索, 平时, 只需对图像的基本信息进行管理。数据库的基本功能包括: 增加删除图像、图像统计、图像的显示等。cusers12801desktopstarfish.txt示例如图3所示。

3.2 图像索引库的建立与实现

3.2.1 数据组织说明

由于图库中有大量的图像,每一张图像中有许多像素点,每个像素点又有许多特征值,如果都将其放入内存中,是不可能实现的。因此本实训项目将提取出的特征值存放到txt文件中,每打开应用系统,就可以直接从外存中读取文件,构建图像特征索引库。分别实现图像颜色、纹理和特征值的提取及txt文件的生成,生成结果文件分别如图4 所示。此步骤需要用户先完成图像特征提取后,再来构建图像特征索引库。

  • cusers12801desktopstarfish.txt主要存的是图库中每张图像的路径,匹配时程序可以根据这个路径找到图库中图像所在的路径

  • RGBHcusers12801desktopstarfish.txt保存的是直方图相交法的特征值

  • CMcusers12801desktopstarfish.txt保存的是HSV中心距法的特征值

  • EDcusers12801desktopstarfish.txt保存的是欧式距法的特征值

  • BHcusers12801desktopstarfish.txt保存的是巴氏系数法的特征值

3.2.2 图像特征数据库设计说明

分别以颜色、纹理、形状特征为例,说明创建各特征表时的工作过程。

以颜色特征为例,说明创建该表时需要包括的字段如下(实际处理过程中,用户选择的特征描述方法不同,所得到的颜色特征值的数量也不同,由用户酌情处理):

字段名称 字段描述 字段类型 备注
ID 数据库中的编号 int Primary Key
Name 图像名称 string NOT NULL
Color 颜色特征值 float NOT NULL
Path 储存图像的位置 string NOT NULL

以纹理特征为例,说明创建该表时需要包括的字段如下(实际处理过程中,用户选择的特征描述方法不同,所得到的纹理特征值的数量也不同,由用户酌情处理。

字段名称 字段描述 字段类型 备注
ID 数据库中的编号 int Primary Key
Name 图像名称 string NOT NULL
shape0 形状特征值 float NOT NULL
shape1 形状特征值 float NOT NULL
shape2 形状特征值 float NOT NULL
shape3 形状特征值 float NOT NULL
shape4 形状特征值 float NOT NULL
shape5 形状特征值 float NOT NULL
shape6 形状特征值 float NOT NULL
shape7 形状特征值 float NOT NULL
Path 储存图像的位置 string NOT NULL

4 图像特征的提取与表达

图像特征的提取与表达是基于内容的图像检索技术的基础。广义而言,图像的特征包括基于文本的特征(关键字、注释等)和视觉特征( 如色彩、纹理、形状、对象表面等) 两类。视觉特征又分为通用的视觉特征和领域相关的视觉特征。前者描述所有图像共有的特征,与图像的具体类型或内容无关,主要包括色彩、纹理和形状,后者建立在对所描述图像内容的某些先验知识(或假设)基础上,与具体的应用紧密有关。

4.1 图像预处理

主要的参考步骤如下:

  • 统一图像大小,使得每一幅待检索图像大小一致

  • 图像降噪,避免图像噪声带来的影响。可使用数字图像处理课程中所学各种方法,如高斯模板、中值滤波等来实现

  • 图像增强,主要用来增强对比度等。可使用数字图像处理课程中所学各种方法,如直方图均衡化等方法实现

但是本次实验的图片是专用的图库,因此不需要进行预处理。

4.2 图像颜色特征

颜色特征是在图像检索中应用最为广泛的视觉特征,主要原因在于颜色往往和图像中所包含的物体或场景十分相关。此外, 颜色特征对图像本身的尺寸、方向、视角的依赖性较小, 从而具有较高的检索性。利用颜色特征进行检索的方法主要基于直方图,如:直方图相交法,比例直方图法,距离法,参考颜色表法和聚类算法,累计直方图法,此外,还有HSI中心矩法。

5 图像特征匹配

在基于内容的图像检索中,两幅图像是否相似是指图像的特征向量是否相似。常用的图像相似性测度通常采用几何模型,将图像特征看作是向量空间中的点,通过计算两个点之间的接近程度来衡量图像特征之间的相似度。基于内容的图像检索算法主要有最邻近查询算法和区间查询算法,它们都依赖于距离函数或者相似性度量。

算法步骤

  • 按照前文方法,计算出待检索图像的特征

  • 利用距离度量函数计算待检索图像特征和图像特征库间的距离

  • 对计算出的距离值按照相似性大小进行高低排序

  • 对检索出的结果图像进行输出显示

6 所采用算法思想

6.1 直方图的相交法

算法步骤

  • 图像灰度化Gray=R[i]/R+G[i]/G+B[i]/B

  • 两图像之间的匹配值P(Q, D)可借助直方图相交来实现

  • 将特征值存放在图像特征数据库中

6.2 欧氏距离(EuclideanDistance)

算法步骤

  • 图像灰度化Gray=R[i]/R+G[i]/G+B[i]/B

  • 两图像之间的匹配值P(Q, D)可借助直方图相交来实现

  • 将特征值存放在图像特征数据库中

6.3 巴氏系数法

算法步骤

  • 图像灰度化Gray=R[i]/R+G[i]/G+B[i]/B

  • 其中P, P’分别代表源与候选的图像直方图数据,对每个相同i的数据点乘积开平方以后相加,得出的结果即为图像相似度值(巴氏系数因子值),范围为0到1之间

  • 将特征值存放在图像特征数据库中

6.4 中心矩法

算法步骤

  • 图像灰度化Gray=0.30*R+0.59*G+0.11*B

  • 将图像从RGB颜色空间转至HSI颜色空间

  • 以HSI空间的Hue分量为例,如果记Hue(pi)为图像P的第i个像素的Hue值,则其前三阶中心矩分别为:

  • 度量函数

  • 将特征值存放在图像特征数据库中

7 详细实现过程

主窗口的设计实现代码如下(MainFrame.java),该文件是程序刚运行时加载的窗口。

图像存储窗口的设计实现如下(IDBMDialog.java),该文件主要实现了用户将指定的文件夹存入数据库中。

图片特征值存储数据库窗口的实现如下(ICDBMDialog.java),该文件主要实现了待检所图片与数据库中图片基于颜色特征的处理及匹配数据的存储。

人脸识别的窗口设计如下(LBPDialog.java)。

帮助窗口设计如下(HelpDialog.java),该文件是程序的说明书。

Centralmoment.java实现了中心矩法,HistogramRetrieval.java实现了相交法、欧氏距离法和巴氏系数法,interface_main.java是主函数所在的类,MysqlConnect.java实现了java与mysql的连接,MapSort.java和Math.java是图像处理算法中的工具类。线程保证了图片加载与用户操作能同时进行,因为遇到图片很多的时候加载时间较长,这是应仍能允许用户进行其他操作。XLabel.java实现了JLabel类,使得图片能按照自定义的方式显示。

8 实验结果分析

传统的直方图相交法运行效果图

直方图相交欧式距离法运行效果图

巴氏系数法运行效果图

中心矩法运行效果图

人脸识别运行效果图

人脸识别的方法:使用haartraining.exe来训练分类器,获取XML文件,从而获得人脸的数据信息,根据该信息就可以识别人脸。

在本次实训程序中,颜色特征的匹配都能成功运行,形状特征的方法由于计算方法未得到优化,导致数据存储过程中出现数据库中全是0值的情况,因此未能成功展示,纹理特征由于时间关系未能实现。

9 实训总结和心得

通过本次实训,我了解到了CBIR以及实现了其中的一小部分典型功能。基于内容的图像检索系统(Content Based Image Retrieval, 以下简称CBIR),是计算机视觉领域中关注大规模数字图像内容检索的研究分支。是指直接采用图像内容进行图像信息查询的检索,即在图像数据库中检索与用户所提交样本图像在内容上一致或相似的图像集合的过程,通过对图像底层特征的比较来实现检索。主要研究技术包括特征抽取、相似度量、图像匹配、用户反馈。基于色彩特征的检索方法是CBIR的主要方法之一,它所抽取的特征向量是颜色直方图,虽然能够较好地反映图像中各种颜色的频率分布,而且对图像中对象的旋转以及观察位置的变化不敏感,但无法保留各像素。这项技术是为了解决报刊等媒体集团大量图片检索的难题而衍生出来的。

本次实训目的是完成CBIR的一些典型功能,具体包括:

  • 实现基于颜色信息的图像检索,可通过颜色直方图、颜色矩、颜色一致性矢量等方法来实现
  • 实现基于纹理特征的图像检索,可从四个方面进行:统计法、结构法、模型法、频谱法
  • 实现基于形状特征的图像检索,可分别从图像的边缘信息和区域信息来实现
  • 实现基于综合信息的图像检索

在了解完实训要求以及项目要求之后,结合java中的awt框架技术,jdbc链接数据库以及图像处理算法最后终于完成了一些最基本的功能,还抽出了部分时间尝试着完成了一个最简单的人脸识别功能(利用opencv识别技术)。在本次实训中既让我复习了之前学习的java程序设计和数字图像处理等课程,也开阔了我的视野,学习了一些基于内容的图像检索的相关技术,当然了由于自身能力有限,本次实验得以成功完成离不开指导书以及网上的资源。总之本次实训十分有意义,让我受益颇多。

10 参考文献

[1] 翟瑞芳、彭辉、周雄辉、高俊祥.CBIR实训指导书[M/CD]. 武汉:2017

上传的附件 cloud_download 基于内容的图像检索系统设计与实现.7z ( 6.70mb, 19次下载 )
error_outline 下载需要7点积分

keyboard_arrow_left上一篇 : 基于JAVA实现的RPG解谜游戏东方梦黎明 基于C++与QML的图书管理系统 : 下一篇keyboard_arrow_right



Aboriginal
2018-11-04 22:54:06
JAVA实现的基于内容的图像检索系统
Elvis
2019-03-14 16:00:54
求助求助,毕业设计是你的这篇文章的内容

发送私信

与高冷无关我只是不需要那么多的点头之交

3
文章数
4
评论数
最近文章
eject