基于二值权重的图像哈希码训练模型算法及分类学习方法与流程

文档序号:15462981发布日期:2018-09-18 18:37阅读:246来源:国知局

本发明属于图像分类方法领域,具体涉及一种基于二值权重的图像哈希码训练模型及分类学习方法。



背景技术:

近年来,由于数码图像数量爆炸式增长和图像质量的大幅度提高,大规模视觉识别问题吸引了来自学术界和工业界的巨大的研究热情。成千上万类别的图像的分类问题通常使用常规分类器来进行大量计算,如k最近邻即k-NN,和支持向量机即SVM。在多类图像识别问题中,大量的分类器产生了巨额的计算和内存开销,并且在模型训练和部署阶段,大量的分类器将导致复杂性的飙升。试想对于一个有C个类别,每个类别有D维度的特征进行分类,最简单的线性模型也需要C*D个参数,在大规模数据中,不管是计算量还是内存开销上都是难以接受的。ImageNet数据集总共有21841类,当在一些顶级水平的图像特征,例如4096维的深度学习特征,进行实验的时候,8千万个参数需要被学习并且保存。这显然会降低训练的速率和测试时的效率。现实中的应用如工业界的图像检索引擎,都要求近乎实时地响应速度。因此,高效训练多类图像分类器还有很大空间需要提高。

压缩二值哈希码-Compact binary hash codes,利用哈希码对大规模数据集进行相似图像检索在学术界已经取得了显著的成功。在典型的监督学习中,算法通过最小化相同类别间的汉明距离的方式来优化哈希码。现实中,图像哈希码技术被广泛利用,正是由于其在大规模数据集上所耗内存小、有扎实的理论保证的特点。

虽然哈希码技术在图像检索研究领域已经有了不菲的成果,但其对于大规模数据优化问题在机器学习和计算机视觉领域都还留有一些处于初级阶段的问题。简单来看,用一些很简单的算法例如k-NN投票就可以利用哈希码对图像进行分类。训练和测试数据集都可以通过哈希方程对其编码。一张新的图片可以通过它投影到的哈希桶中的哈希码的主要的类别来确定其分类。但是,因为哈希码基于图像搜索的目的来进行优化的,这样简单的策略难以保证其图像识别的高准确率。

目前,解决图像分类的主流方法有利用哈希表达的非线性核SVM算法。这类算法首先选定了一系列哈希方程,将原始图像特征转化为二值码。最初的非线性核算法,如:RBF kernel,理论上被证明了通过内积的方式来逼近二值哈希码间的关系。这类方法突出的优点是双倍的:

被要求的哈希码在原来特征维度上既可以呈弱线性的,同时对于非线性优化问题也可以转化为线性问题。但是,这类方法主要的缺点在于这类算法还是只能在常规的实数域上进行分类而不是基于二值特征。虽然它也可以直接应用于线性方法,但是二值码的潜在信息没有得到充分地利用。

总的来说,图像哈希码学习算法在过去的几十年已经得到较多成果,大致可以分为两类:

一、基于快速图像搜索的哈希算法。最近成为了计算机视觉研究领域的热门研究课题。数码摄影的普及使得数码图片数量的激增并促使了亿万级图像数据集的出现。高效的对目标图片进行相似性搜索是大规模数据集中的关键操作。LSH的开创性工作使得快速图像搜索有了新的发展方向并在理论上给予保证。一些典型的管道哈希码图像检索算法既可以通过无监督学习也可以从具有相似/不相似标签数据集中进行训练生成哈希方程。后者通常也被称为监督学习哈希算法,因为他经常通过相似/不相似标签来判断两个样本间的相似性。对于未知的图片,它通过对数据库中图片的哈希码进行快速对比,找到与之最相似的图片。利用哈希桶方法,可以在次线性时间复杂度下完成。这类代表性的算法有基于二值码重构的二值码嵌入重构-Bianry Reconstructive Embedding,最小损失哈希-Minimal Loss Hashing 等。

二、基于大规模图像优化的哈希算法。由于汉明距离能够很好地保留图像数据间的相似性,所以可以推导通过它能够模拟非线性内核间的关系。基于非线性内核来进行优化通常需要更大的空间来存储整个内核矩阵。这一特性使它难以应用于大规模数据集中。实数向量特征映射-Real vectors based explicit feature mapping用数据集内积函数逼近核函数的方法在一定程度上补救了这一问题。但是,高准确率的逼近往往要求高的维度,这样就超过了大多数学者的维度范围。最近一系列新的研究方法代替了用二值码逼近模拟非线性核方法,如:Mu et al.2014;Li,Samorodnitsk;Hopcroft 2013。其中,特别是Mu et al,建立了一个随机子空间投影,将原始数据转换为紧凑的哈希比特。哈希码的内积本质上扮演了核函数的角色。因此,非线性内核支持向量机也可以转换成一个线性支持向量机,然后采用高效的线性计算器,如LibLinear。这些方法仅要求哈希码在原始的空间维度中呈弱线性,同时可以将非线性优化问题转换为线性问题。但是,他们有一个主要的缺点,这些方法仍然依赖于通过原始数据得到的分类器的二值特征。虽然它能够直接通过线性计算器来得到应用,但是二值码潜在的信息没有得到充分地利用。



技术实现要素:

本发明的目的在于:解决现有的图像分类算法在大规模图像数据集中存在的内存占用过高、计算开销大、得到的分类效果欠佳等问题,提供能够在多种图像类别和高纬度场景下进行图像分类,提高算法在大规模数据集上的性能,精确、高效、快捷且低内存消耗的一种基于二值权重的图像哈希码训练模型及分类学习方法。

本发明采用的技术方案如下:

一种基于二值权重的哈希码图像训练模型,模型算法包括如下步骤:

步骤1.1、选择损失函数,确定目标方程,并对分类器和训练图像特征进行二值编码;

步骤1.2、对步骤1.1得到的分类器和训练图像特征的二值编码进行统一学习,更新训练图像特征哈希码与分类器二值码后优化步骤1.1所选损失函数的目标方程,并得到优化后的图像哈希码;

步骤1.3、通过步骤1.2得到的优化后的图像哈希码和线性哈希方程求值哈希码公式,得到哈希码训练模型。

进一步,所述步骤1.1中对分类器和训练图像特征进行二值编码为:令训练图像特征二值码为bi是原训练数据集中xi对应的r-bit的二值码,设一个线性哈希方程为:

b=sgn(PTx)

这里P是图像哈希转置矩阵;T是转置符号;d是图像x的维数;r是哈希码长度;

分类器二值码为w。

进一步,所述步骤1.2中更新训练图像特征哈希码与分类器二值码方法为:

固定哈希码B,通过采用交替最小化更新的方式一行行依次迭代更新w,每一次更新wc的一个比特,c=1,...,C,同时保持其它r-1个比特不变;

固定分类器二值码w,通过采用交替最小化更新的方式一行行依次迭代更新B,在每次迭代中,除了第k位的哈希码bk=[b1(k);...;bn(k)],剩余的r-1位的哈希码不变。

进一步,所述步骤1.2中在采用交替最小化更新的方式更新图像特征哈希码与分类器二值码过程中采用比特顺序翻转方法解决其二元二次规划问题。

一种应用基于二值权重的哈希码图像训练模型的分类学习方法,方法包括如下步骤:

步骤2.1、待搜索图像通过基于二值权重的哈希码训练模型得到相应的哈希码,求出待搜索图像哈希码与分类器二值码之间的汉明距离;

步骤2.2、在步骤2.1所得到的C个汉明距离中找最小值并得到最小汉明距离对应的分类器,即为待搜索图像所属类别。

进一步,所述步骤2.1还包括得到分类器二值码的二值参数向量,分类器二值码矩阵 WT为:

这里wc∈{-1,1}r是c∈[1,...,C]类的二值参数向量,内积这里代表汉明距离。

进一步,所述步骤2.2中在C个汉明距离中找最小值采用找二值参数向量的最大二值内积的方法。

综上所述,由于采用了上述技术方案,本发明的有益效果是:

1、本发明中,哈希码训练模型算法将分类器与图像特征进行二值编码并且同时对它们进行统一学习,更加深入地对哈希码潜在信息进行挖掘,提高了算法在大规模数据集上的性能;

2、本发明中,采用交替最小化更新的方式更新图像特征哈希码与分类器二值码,优化损失函数,使得算法更加高效;

3、本发明中,采用比特顺序翻转方法解决更新图像特征哈希码与分类器二值码,优化损失函数过程中产生的二元二次规划问题,算法效率更高,更快捷;

4、本发明中,分类学习方法适用于大量的经验损失函数,通过汉明距离定量分析,与主流高效算法相比,本算法在训练测试的CPU损耗时间和分类的准确率上都有显著的优势,采用的哈希码训练模型算法使得方法高效、快捷且内存损耗低。

附图说明

图1为本发明在SUN397数据集上更新W与更新B时目标值的变化图;

图2为本发明在SUN397和ImageNet数据集上与鲁棒算法进行精确率对比图;

图3为本发明与Linear SVM在SUN397和ImgNet上进行训练时间的对比图;

图4为本发明训练图像特征与哈希模型所占内存大小示意图;

图5为本发明损失函数为指数函数时,翻转训练w的算法过程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

一种基于二值权重的哈希码图像训练模型,模型算法包括如下步骤:

步骤1.1、选择损失函数,确定目标方程,并对分类器和训练图像特征进行二值编码,设生成的图像二值码为bi是原训练数据集中xi对应的r-bit的二值码,设一个线性哈希方程为:

b=sgn(PTx)

这里P是图像哈希转置矩阵;T是转置符号;d是图像x的维数;r是哈希码长度;

分类器二值码为w。

步骤1.2、对步骤1.1得到的分类器和训练图像特征的二值编码进行统一学习,更新训练图像特征哈希码与分类器二值码后优化步骤1.1所选损失函数的目标方程,并得到优化后的图像哈希码。

特别的这里采用交替最小化更新的方式更新图像特征哈希码与分类器二值码,更新训练图像特征哈希码与分类器二值码方法为:

固定哈希码B,通过采用交替最小化更新的方式一行行依次迭代更新w,每一次更新wc的一个比特,c=1,...,C,同时保持其它r-1个比特不变;

固定分类器二值码w,通过采用交替最小化更新的方式一行行依次迭代更新B,在每次迭代中,除了第k位的哈希码bk=[b1(k);...;bn(k)],剩余的r-1位的哈希码不变。

在采用交替最小化更新的方式更新图像特征哈希码与分类器二值码过程中采用比特顺序翻转方法解决其二元二次规划问题。

将分类器与图像特征进行二值编码并且同时对它们进行统一学习,更加深入地对哈希码潜在信息进行挖掘,提高了算法在大规模数据集上的性能。采用交替最小化更新的方式更新图像特征哈希码与分类器二值码,优化损失函数,更加高效;采用比特顺序翻转方法解决更新图像特征哈希码与分类器二值码,优化损失函数过程中产生的二元二次规划问题,算法效率更高,更快捷。

步骤1.3、通过步骤1.2得到的优化后的图像哈希码和线性哈希方程求值哈希码公式,推导得到哈希码训练模型。

一种应用上述基于二值权重的哈希码图像训练模型的分类学习方法,方法包括如下步骤:

步骤2.1、待搜索图像通过上述一种基于二值权重的哈希码图像训练模型得到哈希码,求出待搜索图像哈希码与分类器二值码之间的汉明距离。

在线性分类器中,二值码b通过找到最大的向量得分来进行分类,分类器二值码矩阵WT为:

这里wc∈{-1,1}r是c∈[1,...,C]类的二值参数向量,根据二值码的特性,内积可以通过快速计算得出,这里代表汉明距离。

步骤2.2、在步骤2.1所得到的汉明距离中查找到最小汉明距离,等价于找二值参数向量的最大二值内积,并得到最小汉明距离对应的分类器,即为待搜索图像所属类别。

一个特征有C个类别,方法将标准的分类问题转换为从C个汉明距离中找最小值,等价于找二值参数向量的最大二值内积问题。

通过汉明距离定量分析,与主流高效算法相比,本算法在训练测试的CPU损耗时间和分类的准确率上都有显著的优势。

图1为本发明在SUN397数据集上更新W与更新B时目标值的变化图,可以看出,随着W与B的交替迭代,目标函数值也随之持续下降。

图2为本发明在SUN397和ImageNet数据集上与鲁棒算法在32-512比特上进行精确率对比图,可以明显看出,当在较小比特(如256比特时),本算法精确到接近甚至超过实数线性SVM。同样可以看出在所有哈希码长度上,本算法精确度持续并且明显优于其他算法,在SUN397数据集上。

图3为本发明与Linear SVM在SUN397和ImgNet上进行训练时间的对比图,可以看出,与LinearSVM相比,本算法训练时间远小于LinearSVM,明确体现了本算法在训练效率上的优势。

图4为本发明训练图像特征与哈希模型所占内存大小示意图,将本算法与Linear SVM 在ImageNet和SUN397数据集上进行内存消耗对比,本算法内存消耗明显小于Linear SVM。 Linear SVM训练特征大小约为本算法的150倍,其训练模型约为本算法的3倍。

实施例1

一种基于二值权重的哈希码图像训练模型算法,算法包括如下步骤:

步骤1.1、选择指数损失函数为所用损失函数,目标方程公式为:

设生成的图像二值码为bi是原训练数据集中xi对应的r-bit 的二值码,设一个线性哈希方程为:

b=sgn(PTx)

这里P是图像哈希转置矩阵;T是转置符号;d是图像x的维数;r是哈希码长度;

分类器二值码为w。

步骤1.2、对步骤1.1得到的分类器和训练图像特征的二值编码进行统一学习,更新训练图像特征哈希码与分类器二值码后优化步骤1.1所选损失函数的目标方程,并得到优化后的图像哈希码。

一个特征有C个类别,设哈希码B是已知的,通过一行行依次迭代更新w。每一次更新wc的一个比特,c=1,...,C,同时保持其它r-1个比特不变。假设更新第k位比特w(\k)代表将第 k位设置为零的向量,公式为:

exp(wTb)=exp(w(\k)Tb)·exp(w(k)b(k))

通过等式变形、计算,最后可得:

这是一个binary quadratic program(BQP)二元二次规划问题。本算法通过比特顺序翻转方法,高效的解决此问题。令H*,c,Hc,*为c行和c列的向量;g(c),w(c)代表g和w的第c位元素,则上述公式[1]可表示为:

通过翻转w(c),则公式[1]可变为:

当c=1,...,C可得w*为一个局部优解。

如图5所示,翻转训练w的算法程序过程为:

1)当局部优化条件不被满足时,转到2);

2)计算比特翻转后的增益Δw(c)→-w(c),c=1,...,C;转到3);

3)选择最小c,转到4);

4)如果Δmin<0,则令w(c)←-w(c);否则:退出;

5)转到1)。

固定w,通过一行行依次迭代更新B。在每次迭代中,除了第k位的哈希码bk= [b1(k);...;bn(k)],剩余的r-1位的哈希码不变。bi(\k)位第k位元素为零的向量,则可得等式:

此时,zick=exp[(wc-wci)Tbi(\k)],令临时变量令矩阵其中 n是图像样本的个数,其坐标(i,c)为zick,当wci(k)=1,wc(k)=-1and0;反之令其坐标(i,c)为zick,当wci(k)=-1,wc(k)=1and0。

最后可得

步骤1.3、通过步骤1.2得到的优化后的图像哈希码和线性哈希方程求值哈希码公式,推导得到哈希码训练模型。

已知哈希码与训练数据集,哈希方程h(x)=sgn(PTx)为最终哈希码训练模型,可以通过简单的线性回归模型得到:

P=(XTX)-1XTB。

一种应用上述基于二值权重的哈希码图像训练模型算法的分类学习方法,方法步骤如下:

步骤2.1、待搜索图像通过上述一种基于二值权重的哈希码图像训练模型得到哈希码,求出待搜索图像哈希码与分类器二值码之间的汉明距离。

在线性分类器中,二值码b通过找到最大的向量得分来进行分类,分类器二值码矩阵WT为:

这里wc∈{-1,1}r是c∈[1,...,C]类的二值参数向量,根据二值码的特性,内积可以通过快速计算得出,这里代表汉明距离。

步骤2.2、在步骤2.1所得到的C个汉明距离向量中找最小值,等价于找二值参数向量最大二值内积,并得到最小汉明距离对应的分类器,即为待搜索图像所属类别。

实施例2

在实施例一的基础上,选择不同的损失函数,一种基于二值权重的哈希码图像训练模型算法步骤如下:

步骤1.1、选择简单的线性损失函数为所用损失函数,目标方程公式为:

设生成的图像二值码为bi是原训练数据集中xi对应的r-bit 的二值码,设一个线性哈希方程为:

b=sgn(PTx)

这里P是图像哈希转置矩阵;T是转置符号;d是图像x的维数;r是哈希码长度;

分类器二值码为w。

步骤1.2、对步骤1.1得到的分类器和训练图像特征的二值编码进行统一学习,更新训练图像特征哈希码与分类器二值码后优化步骤1.1所选损失函数的目标方程,并得到优化后的图像哈希码。

固定B时,通过一行行依次迭代更新w,公式[2]变为了:

最后得

固定w,一行行依次迭代更新B时,公式[2]变为了:

B可以快速的通过-sgn(W°)得到。

步骤1.3、通过步骤1.2得到的优化后的图像哈希码和线性哈希方程求值哈希码公式,推导得到哈希码训练模型。

已知哈希码与训练数据集,哈希方程h(x)=sgn(PTx)为最终哈希码训练模型,可以通过简单的线性回归模型得到:

P=(XTX)-1XTB。

一种基于上述实施例二的二值权重的哈希码图像训练模型算法的分类学习方法步骤如下:

步骤2.1、待搜索图像通过上述实施例二的一种基于二值权重的哈希码图像训练模型得到哈希码,求出待搜索图像哈希码与分类器二值码之间的汉明距离。

在线性分类器中,二值码b通过找到最大的向量得分来进行分类,分类器二值码矩阵WT为:

这里wc∈{-1,1}r是c∈[1,...,C]类的二值参数向量,根据二值码的特性,内积可以通过快速计算得出,这里代表汉明距离。

步骤2.2、在步骤2.1所得到的C个汉明距离向量中找最小值,等价于找二值参数向量最大二值内积,并得到最小汉明距离对应的分类器,即为待搜索图像所属类别。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1