基于支持向量机和用户反馈的图像检索算法
2020-07-18谭翔纬
谭 翔 纬
(广州大学华软软件学院 软件工程系, 广州 510990)
图像检索算法[1]是海量图像管理系统的基础, 检索算法性能的好坏直接关系到用户是否能快速找到所需的图像, 因此图像检索算法受到广泛关注[2-3]. 目前, 针对海量图像的管理和检索问题已提出了许多有效的图像检索算法[4]. 最原始的图像检索算法主要通过专业人员肉眼对图像进行标记和识别, 这种算法的结果直观、 可解释性较好, 对小规模图像是一种较好的检索算法[5]. 随着图像数量的不断增加, 人工检索算法的图像检索速度慢、 工作效率低、 耗时过长等缺陷凸显, 已不能满足网络图像传输和寻找的实时性, 因此出现了图像自动检索算法[6]. 图像自动检索算法将图像检索过程视为一种模式分类问题, 将不同图像划分到相应的类别中, 已成为当前图像检索的主要研究方向[7]. 图像自动检索算法目前主要有基于词袋算法的图像检索方法、 基于欧氏距离的图像检索算法、 基于神经网络的图像检索算法、 基于支持向量机的图像检索算法、 基于小波分析的图像检索算法和基于K最近邻算法的图像检索算法等, 这些算法均有各自的优点[8-10]. 但上述图像检索算法均未考虑用户的实际需求, 很难对图像进行高精度检索, 使得到的检索结果存在一些不相干的图像, 缺陷较明显[11-13].
针对当前图像检索算法存在的不足, 本文提出一种基于支持向量机和用户反馈机制的图像检索算法. 首先采用支持向量机对图像进行分类和检索, 实现图像的初步检索; 然后引入用户反馈机制对图像进行精细检索; 最后采用Pascal VOC 2012图像库与其他图像检索算法进行仿真对比实验, 以验证本文算法图像检索的有效性和优越性.
1 算法原理
基于支持向量机和用户反馈图像检索算法的工作原理: 首先采集图像, 对图像进行归一化和去噪预处理, 提取特征, 构建图像检索的特征向量库; 然后采用支持向量机和用户反馈机制对图像进行初检索和精检索, 建立图像检索分类器; 最后将待检索图像的特征向量与特征向量库进行匹配, 得到图像检索结果, 算法流程如图1所示.
图1 基于支持向量机和用户反馈的图像检索算法流程
2 算法设计
2.1 图像灰度处理
通常情况下采集的原始图像为彩色图像, 彩色图像包含的信息量较丰富, 占用的存储空间较大, 因此需将彩色图像转换成灰度图像, 以减少数据存储量, 加快数据检索速度. 设彩色图像R,G,B分量的权重分别为α,β,γ, 则图像灰度化处理公式[14]为
Vgray=0.3×R+0.5×G+0.2×B.
(1)
2.2 图像去噪处理
设灰度变换后的图像可表示为
g(x,y)=f(x,y)+η(x,y),
(2)
图2 改进小波变换的结构
其中:η(x,y)表示噪声;f(x,y)表示理想图像.
针对标准小波变换存在的缺陷, 本文采用改进小波变换对图像进行去噪, 改进小波变换的结构如图2所示. 改进小波变换的工作步骤如下:
1) 找到一个细节系数子集ak, 其可描述输入信号ak-1的信息, 变换方式为:
(3)
(4)
从而改进小波变换的重构过程为
(5)
2.3 图像背景和前景分割
对去噪后的图像, 针对像素点(x,y), 可建立如下高斯概率密度函数:
(6)
其中,μ和σ分别为均值和标准差. 像素(x,y)初始背景模型的期望值和偏差计算公式分别为
(7)
(8)
像素(x,y)灰度值的判断公式为
(9)
其中Tp为阈值. 于是图像的背景分割方式为
μ(x,y)=(1-α)×μ(x,y)+α×I(x,y),
(10)
σ2(x,y)=[(1-α)×σ2(x,y)+α×I(x,y)-μ(x,y)]2.
(11)
通过上述方法对图像3(A)进行分割, 可得如图3(B),(C)所示的结果. 由图3可见, 该方法可将背景和前景准确地分离, 有利于后续图像的特征提取.
图3 图像的背景和前景分割结果
2.4 图像特征提取
2.4.1 图像颜色特征提取 通常情况下, 颜色是图像最基本的特征之一, 因此采用颜色作为图像检索的一种特征, 选择图像颜色的常量直方图, 步骤如下:
1) 计算图像颜色直方图值的对数, 公式为
i(x,y)=lnρ(x,y),
(12)
其中ρ(x,y)为图像像素(x,y)的直方图统计值;
2) 对图像像素进行卷积运算, 计算Laplace 4个方向导数, 分别为
d(x,y)⟸2(x,y),
(13)
dm(x,y)=mi(x,y);
(15)
3) 建立Laplace 4个方向导数的直方图, 分别为
(16)
(17)
2.4.2 图像纹理特征提取 纹理是图像另一个最基本的特征, 因此采用灰度共生矩阵算法提取图像纹理特征. 设图像{f(x,y)|1≤x≤N, 1≤y≤N}的灰度级数为G,N表示图像长度和宽度, 则灰度共生矩阵为
P(i,j)=σ{((x1,y1),(x2,y2))|f(x1,y1)=i,f(x2,y2)=j},
(18)
其中σ(x)为x的像素数. 如果两个像素(x1,y1)和(x2,y2)间的距离为d, 其与横轴夹角为θ, 则距离和夹角的灰度共生矩阵P(i,j|d,θ)计算公式为
(19)
其中rij为满足条件的像素数.
一般情况下, 通过灰度共生矩阵能得到一组参数, 这组参数可表示图像的纹理特征:
1) 能量特征计算公式为
(20)
2) 对比度特征计算公式为
(21)
3) 逆差矩特征计算公式为
(22)
4) 熵特征计算公式为
(23)
2.5 图像检索分类器设计
若两种图像检索的样本集合为(xi,yi),i=1,2,…,n,xi∈d,yi∈{+1,-1}, 则可建立如下判别函数:
f(x)=ω·x+b=0,
(24)
并可得如下超平面方程:
ω·x+b=0.
(25)
为了保证条件|f(x)|>0, 与分类面最近样本为f(x)=1, 则其满足:
yi[(ω·x)+b]-1≥0,i=1,2,…,n.
(26)
将最优分类面转换为约束优化问题:
(27)
再将式(26)求解过程转化为对偶问题:
(28)
(29)
引入松弛因子ξi, 允许存在错分样本, 得
(30)
当0<ξi<1时, 样本点xi是正确分类; 当ξi≥1时, 样本点xi被错误分类. 引入惩罚参数C, 则有
(31)
对非线性分类问题, 引入核函数进行分类, 设K(xi,xj)=ΦT(xi)Φ(xj), 则图像检索的分类决策函数为
(32)
2.6 用户反馈机制
对支持向量机的图像检索结果, 通过用户进行再次检索, 并将结果反馈到最后检索结果, 输出最终图像检索结果.
3 仿真测试
3.1 测试对象及环境
为了分析支持向量机和用户反馈的图像检索算法性能, 选择Pascal VOC 2012图像库中的部分图像进行实验, 如图4所示. 实验硬件环境: 中央处理器为Intel酷睿i3 9100F, 内存为16 GB, 240 GB固态硬盘; 实验软件环境: 操作系统为Windows 10个人版, 编程工具为VC++语言.
图4 图像检索算法实验对象
3.2 实验结果
首先采用支持向量机对图4的图像进行初步检索, 然后引入用户反馈机制得到图像的最终检索图像, 分别如图5和图6所示. 由图5和图6可见, 本文算法可对两种图像进行准确检索, 获得了较理想的图像检索效果.
图5 建筑物的检索结果
图6 大象的检索结果
3.3 性能对比
为了测试本文算法的优越性, 选择文献[13]、 文献[14]及无用户反馈机制的图像检索算法进行对比测试, 统计不同算法图像检索的正确率, 结果列于表1. 由表1可见: 相对于其他图像检索算法, 本文算法的图像检索正确率更高, 这是因为本文算法引入了用户反馈检索机制, 可避免图像初步检索的错误, 提高了图像检索效果; 且相对于文献[13]和文献 [14]的图像检索算法, 本文算法的图像检索时间更短, 图像检索效率更高. 相对于无用户反馈机制的图像检索算法, 本文算法的图像检索时间略有增加, 但计算机处理的速度很快, 增加的时间可忽略不计. 因此, 本文图像检索算法的整体性能优于对比算法, 获得了更理想的图像检索结果.
表1 不同算法的图像检索正确率和检索时间对比
综上所述, 针对当前图像检索算法存在的不足, 为了获得更优的图像检索结果, 本文提出了一种支持向量机和用户反馈机制相融合的图像检索算法, 将图像检索过程分为两个阶段: 粗检索阶段和精细检索阶段, 解决了图像检索算法存在的弊端, 有效提高了图像的检索正确率和检索速度.