本发明涉及信息检索技术领域,尤其涉及一种图像检索方法及装置。
背景技术:
随着网络中图像数据的爆炸式增长,及用户基于图像的检索需求,图像检索技术的应用越来越广。
图像检索技术,其通常可根据输入图像的哈希码,和至少一个图像中每个图像的哈希码,从该至少一个图像中确定目标图像作为图像检索结果。其中,该输入图像的哈希码可以是根据人工获取的该输入图像的图像特征所确定的。
然而,人工获取的图像特征可能不准确,其难以反映输入图像的特征,使得图像检索的准确度较低。
技术实现要素:
本发明提供一种图像检索方法及装置,以提高图像检索的准确度。
本发明提供一种图像检索方法,包括:
采用深度卷积神经网络对输入图像进行处理,得到所述输入图像的图像特征;
采用非线性映射函数对所述图像特征进行处理,得到所述输入图像的哈希码;
根据所述输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定所述输入图像与所述每个图像的汉明距离;
根据所述输入图像与所述每个图像的汉明距离,对所述至少一个图像进行排序,并将所述排序后的图像作为图像检索结果。
本发明还提供一种图像检索装置,包括:
第一处理模块,用于采用深度卷积神经网络对输入图像进行处理,得到所述输入图像的图像特征;
第二处理模块,用于采用非线性映射函数对所述图像特征进行处理,得到所述输入图像的哈希码;
第一确定模块,用于根据所述输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定所述输入图像与所述每个图像的汉明距离;
排序模块,用于根据所述输入图像与所述每个图像的汉明距离,对所述至少一个图像进行排序,并将所述排序后的图像作为图像检索结果。
本发明提供的图像检索法及装置,可通过采用深度卷积神经网络对输入图像进行处理得到该输入图像的图像特征,继而采用非线性映射函数对该图像特征进行处理得到该输入图像的哈希码,还根据该输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定该输入图像与该每个图像的汉明距离,继而根据该输入图像与该每个图像的汉明距离,对该至少一个图像进行排序,并将该排序后的图像作为图像检索结果。该方法中,由于图像特征是采用深度卷积神经网络进行处理所得到的,该图像特征的准确度较高,可准确反映该输入图像的语义信息,有效提高了图像检索的准确度。同时由于图像的哈希码是采用非线性映射函数对图像特征进行降维映射得到的,该哈希码的准确度较高(即保留更准确的语义信息),可准确反映该输入图像的语义信息,因此两者的结合有效提高了图像检索的准确度。并且,该方法中,由于非线性映射函数具有强大的泛化能力,可准确表达图像特征与哈希码的对应关系,因此采用该非线性映射函数对该图像特征进行处理,得到该输入图像的哈希码,可使得该输入图像的哈希码更加准确,从而有效提高图像检索的准确度。
附图说明
图1为本发明提供的一种图像配准方法的流程图一;
图2为本发明实施例提供的一种图像检索方法所使用的深度卷积神经网络的示意图;
图3为本发明提供的一种图像检索方法的流程图二;
图4为本发明实施例提供的一种图像检索方法所使用的非线性映射层的示意图;
图5为本发明提供的一种图像检索方法的流程图三;
图6为本发明提供的一种图像检索方法的流程图四;
图7a为本发明提供的图像检索方法基于图像数据集cifar-10的pr曲线图;
图7b为本发明提供的图像检索方法基于图像数据集nus-wide的pr曲线图;
图8a为本发明提供的图像检索方法基于图像数据集cifar-10的precision@n曲线图;
图8b为本发明提供的图像检索方法基于图像数据集nus-wide的precision@n曲线图;
图9为本发明提供的一种图像检索装置的结构示意图一;
图10为本发明提供的一种图像检索装置的结构示意图二;
图11为本发明提供的一种图像检索装置的结构示意图三
图12为本发明提供的一种图像检索装置的结构示意图四。
具体实施方式
本发明提供一种图像检索方法。图1为本发明提供的一种图像检索方法的流程图一。该图像检索方法可由图像检索装置执行,该图像检索装置可通过软件和/或硬件的方式集成在任一具有处理功能设备,如平板电脑、笔记本电脑、台式电脑、服务器等设备中。如图1所示,该图像检索方法可包括:
s101、采用深度卷积神经网络对输入图像进行处理,得到该输入图像的图像特征。
具体地,该s101中可采用该深度卷积神经网络的处理函数,对该输入图像的像素数据进行处理,得到该输入图像的图像特征。该深度卷积神经网络的处理函数也可称为该深度卷积神经网络的模型函数。
举例来说,该s101例如可采用如下公式(1)对该输入图像进行处理,得到该输入图像的图像特征。
其中,yi为该输入图像的图像特征;
例如,该深度卷积神经网络例如可以包括:视觉结构组织(visualgeometrygroup,简称vgg)所提出的深度卷积神经网络,又称vgg-f网络中的部分处理层。
图2为本发明实施例提供的一种图像检索方法所使用的深度卷积神经网络的示意图。如图2所示,该深度卷积神经网络可包括:5个卷积层和2个全连接层。该深度卷积神经网络中各处理层采用的参数例如可为如下表1所示。
表1
结合表1可知,图2所示的该深度卷积神经网络中卷积层1所包括的卷积核的大小(size):核窗口的长度×核窗口的宽度×核窗口的个数可以为11×11×64,该卷积层1所包括的卷积核的步幅(stride):核窗口按行的滑动长度×核窗口按列的滑行长度为4×4,该卷积层1所包括的卷积核的填充(pad):填补长度为0×0。该卷积层1还包括:激活函数及局部归一化(localresponsenormalization,简称lrn),该激活函数可以为修正线性单元(relurectifiedlinearunits,简称relu)。该卷积层1所包括的池化(pool)的大小:池化窗口的长度×池化窗口的宽度为3×3,该卷积层1所包括的池化的步幅:池化窗口按行的滑动长度×池化窗口按列的滑动长度为2×2,该卷积层1所包括的池化的填充:填补长度为0×1。
图2所示的该深度卷积神经网络中卷积层2所包括的卷积核的大小:核窗口的长度×核窗口的宽度×核窗口的个数可以为5×5×256,该卷积层2所包括的卷积核的步幅:核窗口按行的滑动长度×核窗口按列的滑行长度为1×1,该卷积层2所包括的卷积核的填充:填补长度为2×2。该卷积层2还包括:激活函数及lrn,该激活函数可以为relu。该卷积层2所包括的池化的大小:池化窗口的长度×池化窗口的宽度为3×3,该卷积层2所包括的池化的步幅:池化窗口按行的滑动长度×池化窗口按列的滑动长度为2×2,该卷积层1所包括的池化的填充:填补长度为0×1。
图2所示的该深度卷积神经网络中卷积层3所包括的卷积核的大小:核窗口的长度×核窗口的宽度×核窗口的个数可以为3×3×256,该卷积层3所包括的卷积核的步幅:核窗口按行的滑动长度×核窗口按列的滑行长度为:1×1,该卷积层3所包括的卷积核的填充:填补长度为:1×1。该卷积层3所包括的激活函数可以为relu。
图2所示的该深度卷积神经网络中卷积层4所包括的卷积核的大小:核窗口的长度×核窗口的宽度×核窗口的个数可以为3×3×256,该卷积层4所包括的卷积核的步幅:核窗口按行的滑动长度×核窗口按列的滑行长度为:1×1,该卷积层4所包括的卷积核的填充:填补长度为:1×1。该卷积层4所包括的激活函数可以为relu。
图2所示的该深度卷积神经网络中卷积层5所包括的卷积核的大小:核窗口的长度×核窗口的宽度×核窗口的个数可以为3×3×256,该卷积层5所包括的卷积核的步幅:核窗口按行的滑动长度×核窗口按列的滑行长度为1×1,该卷积层5所包括的卷积核的填充:填补长度为1×1。该卷积层2还包括:激活函数如relu。该卷积层5所包括的池化的大小:池化窗口的长度×池化窗口的宽度为3×3,该卷积层5所包括的池化的步幅:池化窗口按行的滑动长度×池化窗口按列的滑动长度为2×2,该卷积层1所包括的池化的填充:填补长度为0×1。
图2所示的深度卷积神经网络中的全连接层6和全连接层7分别包括的节点个数为4096,所包括的激活函数为relu。
该s101中例如可将该输入图像的像素数据输入至图2所示的深度卷积神经网络的卷积层1,采用卷积层1的处理函数,结合表1所示的卷积层1采用的参数,对该输入图像的像素数据进行处理;并将该卷积层1输出的数据输出卷积层2,采用卷积层2的处理函数,结合表1所示的卷积层2采用的参数,对卷积层1输出的数据进行处理;并将该卷积层2输出的数据输出卷积层3,,采用卷积层2的处理函数,结合表1所示的卷积层2采用的参数,对卷积层1输出的数据进行处理;并将该卷积层2输出的数据输出卷积层3,采用卷积层3的处理函数,结合表1所示的卷积层3采用的参数,对卷积层2输出的数据进行处理;并将该卷积层3输出的数据输出卷积层4,采用卷积层4的处理函数,结合表1所示的卷积层4采用的参数,对卷积层3输出的数据进行处理;并将该卷积层4输出的数据输出卷积层5,采用卷积层5的处理函数,结合表1所示的卷积层5采用的参数,对卷积层4输出的数据进行处理;并将该卷积层5输出的数据输出全连接层6,采用全连接层6的处理函数,结合表1所示的全连接层6采用的参数,对卷积层5输出的数据进行处理;并将全连接层6输出的数据输出全连接层7,采用全连接层7的处理函数,结合表1所示的全连接层7采用的参数,对卷积层6输出的数据进行处理,得到该全连接层7的输出数据。该全连接层7的输出数据可用于表征该输入图像的图像特征。
s102、采用非线性映射函数对该图像特征进行处理,得到该输入图像的哈希码。
举例来说,该s102例如可采用如下公式(2)对该图像特征进行处理,得到该输入图像的哈希码。
其中,φi为该输入图像的哈希码;
s103、根据该输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定该输入图像与该每个图像的汉明距离。
其中,该至少一个图像可以为预设的数据库中的图像。针对该至少一个图像中的每个图像的哈希码可以是在执行图像检索方法之前采用上述s101和s102预先计算所得到的。
s104、根据该输入图像与该每个图像的汉明距离,对该至少一个图像进行排序,并将该排序后的图像作为图像检索结果。
具体地,该s104中可通过比较该输入图像与该每个图像的汉明距离,将该至少一个图像,按照与该输入图像的汉明距离进行排序,并将该排序后的图像作为图像检索结果。其中,该方法中可将该至少一个图像,按照与该输入图像的汉明距离从小到大的顺序,即汉明距离的升序进行排序。
该至少一个图像中,若一个图像与该输入图像的汉明距离越小,则该一个图像与该输入图像的相似度越高;反之,若该一个图像与该输入图像的汉明距离越大,则该一个图像与该输入图像的相似度越低。
本发明提供的该图像检索方法,可通过采用深度卷积神经网络对输入图像进行处理得到该输入图像的图像特征,继而采用非线性映射函数对该图像特征进行处理得到该输入图像的哈希码,还根据该输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定该输入图像与该每个图像的汉明距离,继而根据该输入图像与该每个图像的汉明距离,对该至少一个图像进行排序,并将该排序后的图像作为图像检索结果。该方法中,由于图像特征是采用深度卷积神经网络进行处理所得到的,该图像特征的准确度较高,可准确反映该输入图像的语义信息,有效提高了图像检索的准确度。
其中,语义信息可以为搜索意图,即图像具体包含有什么用户感兴趣的内容。
同时由于图像的哈希码是采用非线性映射函数对图像特征进行降维映射得到的,该哈希码的准确度较高(即保留更准确的语义信息),可准确反映该输入图像的语义信息,因此两者的结合有效提高了图像检索的准确度。
并且,该方法中,由于非线性映射函数具有强大的泛化能力,可准确表达图像特征与哈希码的对应关系,因此采用该非线性映射函数对该图像特征进行处理,得到该输入图像的哈希码,可使得该输入图像的哈希码更加准确,从而有效提高图像检索的准确度。
相对于传统的深度哈希算法,本发明的图像检索方法中,考虑了深度神经网络与非线性映射的结合,有效打破传统方法受线性映射学习能力瓶颈的约束,提高整体哈希模型的学习能力。
可选的,如上所示的图像检索方法中,该非线性映射函数可包括至少一个决策树算法。
其中,每个决策树算法可以为一个软决策树算法。
该图像检索方法中,采用包括有至少一个软决策树算法的非线性映射函数,进行图像特征的映射,继而得到哈希码,由于软决策树不仅具有非线性映射能力,其输出的哈希码的哈希值是连续可导的,可方便与深度神经网络结合并利用梯度下降方法进行参数的优化,继而提高哈希码的准确度,提高图像检索方法的准确度。
可选的,图3为本发明提供的一种图像检索方法的流程图二。如图3所示,如上所示的s102中采用非线性映射函数对该图像特征进行处理,得到该输入图像的哈希码可包括:
s301、根据该图像特征,采用每个决策树算法,得到该输入图像的一个哈希值;该输入图像的哈希码包括至少一个哈希值。
其中,该非映射映射函数对应的决策树算法的个数可等于预设的哈希码位数,其中,每个决策树算法可用于得到该输入图像的哈希码中的一个哈希值。
根据该图像特征采用一个决策树算法可得到一个哈希值,那么根据该图像特征采用该至少一个决策树算法便可得到该输入图像的至少一个哈希值,该输入图像的至少一个哈希值可构成该输入图像的哈希码。
举例来说,若预设的哈希码位数为k,则该非线性映射函数可包括k个决策树算法,每个决策树算法可得到一个哈希值,也称哈希比特。每个决策树算法可称为映射层的一棵决策树,每棵决策树可输出一个哈希值,每棵决策树的输入均为该输入图像的图像特征。每棵决策树输出的哈希值即为每个决策树算法得到的一个哈希值。
图4为本发明实施例提供的一种图像检索方法所使用的非线性映射层的示意图。如图4所示,本发明的非线性映射层可包括:k棵决策树,该k棵决策树中,不同决策树的层数相同,以及不同决策树中同一层的节点数等相同。与传统的决策树不同,本发明所涉及的每棵决策树的层数,以及每棵决策树中各层的节点数可以为预设值。
若每棵决策树的层数为ll,当ll为1时,则映射层可以为线性映射层,因此,本发明所涉及的映射层中每棵决策树的层数可大于或等于2。
针对k棵决策树中的第k棵决策树,可根据该图像特征,采用下述公式(3)得到该第k棵决策树上节点(l,m)k输出的哈希值。
公式(3)中,f(l,m)k(yi)为该第k棵决策树上节点(l,m)k输出的哈希值;(l,m)k为该第k棵决策树上第l层的第m个节点;yi为该输入图像的图像特征;i用于表示该输入图像为图像i。
w(l,m)k为节点(l,m)k的参数向量,
其中,
第k棵决策树上节点(l,m)k的参数向量可包括权重w(l,m)k和偏置b(l,m)k,σ(·)函数的输入(即节点(l,m)k对yi的映射)原本应该是
k棵决策树在(l,m)位置,即第l层的第m个节点的参数向量组成参数矩阵w(l,m),其中第k个列向量为w(l,m)k。每棵决策树的根节点的输出可以作为该每棵决策树的输出,该每棵决策树的输出可以为一个具有实数范围的哈希比特值。
该方法中,可根据该输入图像的图像特征,采用如下公式(4),得到k棵决策树的输出,即该输入图像的哈希码。
公式(4)中,
在本发明实施例提供的图像检索方法中,每棵决策树的层数例如可以为2,即上述ll可以为2。当然,该ll还可以为其他整数值,在此不再赘述。
为防止各决策树输出的哈希值的过拟合,本发明提供的方法还可在每棵决策树中每个节点输出哈希值之后,对k棵决策树中各节点输出的哈希值进行批量归一化(batchnormalization)处理。
可选的,如上所示的s301中根据该图像特征,采用每个决策树算法,得到该输入图像的一个哈希值之前,该方法还可包括:
s301a、根据该每个决策树算法采用的参数向量,确定第一正则化项;该每个决策树算法针对不同叶子节点所采用的参数向量相互平行。
该每个决策树算法针对不同叶子节点所采用的参数向量,可称为每棵决策树中不同叶子节点的参数向量。也就是说,本发明方法中,同一棵决策树中不同叶子节点间的参数向量相互平行。
举例来说,第k棵决策树中叶子节点(ll,m)与叶子节点(ll,m')的参数向量相互平行的关系可通过如下公式(4)表示。
其中,w(ll,m)k为第k棵决策树中叶子节点(ll,m)的参数向量,
根据如上公式(4)也就是平行约束的公式可知,第k棵决策树的所有叶子节点的参数向量可以根据同一个向量βk进行线性表示。例如第k棵决策树中叶子节点(ll,m)的参数向量w(ll,m)k可以表示为如下公式(5)。
w(ll,m)k=a(ll,m)kβk公式(5)
其中,a(ll,m)k为标量,可表示w(ll,m)k相对于βk的比例系数。
该s301a中可将上述公式(4)进行缩放处理,得到如下公式(6),并根据公式(6)得到该第一正则化项。
(如m=2ll-1,则m+1=1)公式(6)
其中,r1为该第一正则化项。
s301b、根据该至少一个决策树算法中不同决策树算法采用的参数向量,确定第二正则化项;该不同决策树算法针对同一叶子节点所采用的参数向量相互正交。
该不同决策树算法针对同一叶子节点所采用的参数向量交,可称为不同决策树中不同位置的叶子节点的参数向量。也就是说,本发明方法中,不同决策树中不同位置的叶子节点的参数向量相互正交。
举例来说,由于该k棵决策树的同一叶子节点位置如(ll,m)的参数向量可组成参数矩阵w(ll,m),因此,如参数矩阵w(ll,m)为正交矩阵,则可确定不同决策树中不同位置的叶子节点的参数向量相互正交。
参数矩阵w(ll,m)为正交矩阵可表示为如下公式(7)。
其中,
根据上述公式(7),也就是正交约束的公式,k棵决策树对应的k个向量[β1,…,βk,…,βk]是彼此正交的。
根据上述公式(4)可知,k棵决策树在叶子节点(ll,m)位置,即第ll层的第m个节点的参数矩阵与图像特征的向量yi的乘积
则对于输入图像如图像i,其第k棵决策树输出的哈希比特
公式(8)中的
该s301b中可将上述公式(7)进行缩放处理,得到如下公式(9),并根据公式(9)得到该第二正则化项。
其中,r2为该第二正则化项,||·||f为矩阵的弗罗贝尼乌斯范数。
s301c、根据该第一正则化项、该第二正则化项和成本函数,对该每个决策树算法采用的参数向量进行更新;该成本函数为对至少一个训练图像进行处理得到的。
具体地,该至少一个训练图像中不同图像相似概率可通过根据该不同图像的哈希码得到的汉明距离进行确定。汉明距离越大,则该不同图像相似的概率越小,反之,汉明距离越小,则该不同图像相似的概率越大。
当图像的哈希码由-1和1组成时,其汉明距离可根据
公式(10)中,pij为该至少一个训练图像中图像i和图像j相似的概率。
该方法中可根据计算得到的该不同图像间概率,以及该不同图像间的实际概率,确定该不同图像间的概率误差,并根据该概率误差得到负的对数似然函数,作为该成本函数。
该成本函数例如可以为如下公式(11)所示。
公式(11)可称为成本函数,在该公式(11)中,cij表示图像i和图像j相似的概率误差,sij为图像i和图像j相似的实际概率。该实际概率可以为预设值。例如,若图像i和图像j相似,则sij=1,若图像i和图像j相似,则sij=0。
该图像检索方法中,可根据该第一正则化项和该第二正则化项,对该每个决策树算法采用的参数向量进行更新,从而根据更新参数向量后的每个决策树算法得到一个哈希值,继而得到该哈希码,可有效避免哈希码的比特间的冗余,使得该哈希码更加简洁和准确,继而提高图像检索性能,即提高图像检索的准确度。
可选的,图5为本发明提供的一种图像检索方法的流程图三。如图5所示,如上所示的s301c中根据该第一正则化项和该第二正则化项,对该每个决策树算法采用的参数向量进行更新可包括:
s501、根据该第一正则化项、该第二正则化项和该成本函数,得到损失函数。
具体地,该第一正则化项可称为第一正交惩罚项,该第二正则化项可称为第二正交惩罚项。
根据该第一正则化项、该第二正则化项及上述公式(11)所示的成本函数,可得到如下公式(12)。
公式(12)可称为损失函数。r1为第一正则化项,r2为第二正则化项,λ为预设的正则化项系数。该损失函数还可称为成对的负对数似然损失函数,或者交叉熵损失函数。θ为该该深度卷积神经网络对应的参数,w为非线性映射函数采用的参数。
s502、采用参数矩阵,对该损失函数进行求导,得到该损失函数的第一梯度值;该参数矩阵包括:该至少一个决策树算法采用的参数向量。
为了解决离散的汉明距离带来的优化问题,该方法中可将上述公式(12)中的
公式(13)中,
该方法中可根据如下公式(14)可计算得到上述公式(13)针对非线性映射函数的倒数。
该方法中,还可根据公式(15)和公式(16),可分别计算得到第一正则化项针对第k棵决策树中叶子节点的参数向量的导数,及第二正则化项针对k棵决策树中叶子节点的参数向量的导数。
公式(15)中,
公式(16)中,
同时,该方法还可将根据上述公式(15)所得到的第一正则化项针对第k棵决策树中叶子节点的参数向量的导数,采用下述公式(17)对该每个小批量图像集对应的损失函数针对每棵决策树中叶子节点的参数向量进行处理。
该方法还可将根据上述公式(16)所得到的第二正则化项针对k棵决策树中叶子节点的参数向量的导数,采用下述公式(18)对该每个小批量图像集对应的损失函数针对k决策树中叶子节点的参数向量进行处理。
该方法中可根据
s503、根据该损失函数的第一梯度值,对该每个决策树算法采用的参数向量进行更新。
该s503中可根据
该图像检索方法中,可根据该第一正则化项、该第二正则化项和成本函数,得到损失函数,并采用包括有该至少一个决策树算法采用的参数向量的参数矩阵对该损失函数进行求导,得到该损失函数的第一梯度值;所述参数矩阵,继而根据该损失函数的第一梯度值,对该每个决策树算法采用的参数向量进行更新,从而可根据更新参数向量后的每个决策树算法得到一个哈希值,继而得到该哈希码,可有效避免哈希码的比特间的冗余,使得该哈希码更加简洁和准确,继而提高图像检索性能,即提高图像检索的准确度。
可选的,本发明还提供一种图像检索方法。图6为本发明提供的一种图像检索方法的流程图四。如图6所示,在如上所示的方法的基础上,该图像检索方法还可包括:
s601、根据预先获取的该至少一个训练图像的图像特征,对该损失函数进行求导,得到该损失函数的第二梯度值。
举例来说,若训练图像的个数为n,该n个训练图像可构成训练图像集。该训练图像集可表示为
将训练图像集
针对每个小批量图像集,分别确定每个小批量图像集对应的图像特征表达函数
采用类似上述公式(13)得到每个小批量图像集对应的损失函数,并采用类似上述公式(14)的方式得到每个小批量图像集对应的损失函数针对非线性映射函数的导数
采用链式法则确定每个小批量图像集对应的损失函数针对图像特征表达函数的导数,得到第二梯度值
s602、根据该损失函数的第二梯度值,对该深度卷积神经网络采用的参数进行更新。
该s602中可根据
该图像检索方法,还可根据预先获取的所述至少一个训练图像的图像特征,对该损失函数进行求导,得到该损失函数的第二梯度值,根据该损失函数的第二梯度值,对该深度卷积神经网络采用的参数进行更新,得到根据更新后的深度卷积神经网络采用的参数确定该输入图像的图像特征,可提高图像特征的准确度,继而提高图像检索的准确度。
如下结合实例进行说明。
为了比较不同算法的图像检索效果,本发明可采用测试指标:在第n个位置上的准确率(precision@n),准确率-召回率(precision-recall,简称pr)以及平均准确率均值(meanaverageprecision,简称map)。其中,precision@n测量的是前n个返回结果中与查询图像相似的图像个数占n个返回结果的比例;pr曲线也可称为查准率-查全率曲线,通常随着返回结果数目从大到小变化,准确率减小,召回率增加,pr曲线与坐标(1,1)的偏离程度反映了算法的检索效果,离得越近越好;map是所有查询的平均正确率(averageprecision,简称ap)的平均值,ap指的单个查询图像在不同返回结果数目下的准确率的平均。map例如可采用如下公式(19)计算得到。
其中
为了更好地说明本发明提供的图像检索方法的检索效果,本发明还可使用两个基准图像数据集cifar-10和nus-wide来图像检索方法的效果。
其中,图像数据集cifar-10可包括:60,000张32*32的单标签图像,平均分为10类,每类6000张。在训练阶段,可从每一类中随机选择500张,共5000张图像作为训练图像集;在测试阶段,可从每一类中随机选择100张,共1000张图像作为测试图像集。如两张图像包括有同一标签则该两张图像相似,否则不相似。对于传统哈希算法即包括线性哈希算法的图像检索方法中,可采用512维要点(gist)特征作为图像特征;对于包括本发明提供的图像检索方法在内的深度哈希算法,可直接输入图像像素数据。
图像数据集nus-wide可包括269,648张多标签图像,涵盖了81个概念标签。由于图像数据集只提供图像的统一资源定位符(uniformresourcelocator,简称url),而且很多图像的url已经失效,可从中选取114,427张图像。从这些选取到的图像中,可筛选出数目大于5000的最频繁出现的10类图像,共56572张。从筛选出的图像中,我们从每一类随机选择500张作训练集,100张作测试图像集。两张图像包括有至少一个共同标签则该两张图像相似,否则不相似。对于传统哈希算法即包括线性哈希算法的图像检索方法中,可采用图像数据集提供的1134维特征作为图像特征;对于包括本发明提供的图像检索方法在内的深度哈希算法,可直接输入图像像素数据。
本发明提供的图像检索方法中结合了深度卷积神经网络及非线性映射函数等,因而,本发明提供的图像检索方法对应的算法可称为深度监督哈希非线性预测(deepsupervisedhashingwithnonlinearprojections,简称dshnp)算法。
本发明可在开源框架如matconvnet框架下实现该dshnp算法。其中,损失函数中正则化项的系数,如上述λ可以为0.1。在小批量随机梯度下降方法中,设置动量参数为0.9,权重衰减参数为5*10-4,小批量大小如上述b可以为128。
如上所示的方法中,例如可根据
对应的,还选择了多种具有代表性的哈希算法作为本发明提供的dshnp算法的对比算法,其中传统无监督哈希算法包括谱哈希(spectralhashing,简称sh)算法和迭代量化(iterativequantization,简称itq)算法;传统监督非线性哈希算法包括监督核哈希(supervisedhashingwithkernels,ksh)算法,监督离散哈希(superviseddiscretehashing,简称sdh)算法,快速监督哈希(fastsupervisedhashing,简称fasth)算法;深度哈希方法包括深度语义排名哈希(deepsemanticrankinghashing,简称dsrh)算法,深度正规化相似性比较哈希(deepregularizedsimilaritycomparisonhashing,简称drsch)算法,深度成对监督哈希(deeppairwise-basedsupervisedhashing,简称dpsh)算法。
下面通过实验数据来说明本发明的图像检索方法的dshnp算法的图像检索性能。
上述所示的各算法分别在哈希码位数为12、24、32、48的不同情况下的map指标对照表可如下表2所示。
表2
根据表2可知,本发明的图像检索方法的dshnp算法在各哈希码位数的情况下,其map指标明显高于其他算法的map指标。
基于该表2分析可知,在传统哈希算法中,图像检索效果最好的算法是fasth算法,本发明的图像检索方法的dshnp算法相对于fasth算法有很大的提升,在图像数据集cifar-10上有27.9%的平均map指标的提升,在图像数据集nus-wide上有19.8%的平均map指标的提升。这是因为传统哈希算法中采用的是人工提取的图像特征,而本发明的图像检索方法的dshnp算法中是基于深度卷积神经网络哈希算法进行图像特征的学习及提取,并且还与非线性哈希映射的联合优化,保证了采用最优的图像特征用于哈希映射。在深度哈希算法中,dpsh算法是性能最好的,本发明的图像检索方法的dshnp算法相对于dpsh也有一定的提升,在图像数据集cifar-10和图像数据集nus-wide上分别有1.3%和5.2%的平均map指标的提升。
图7a为本发明提供的图像检索方法基于图像数据集cifar-10的pr曲线图。图7b为本发明提供的图像检索方法基于图像数据集nus-wide的pr曲线图。图8a为本发明提供的图像检索方法基于图像数据集cifar-10的precision@n曲线图。图8b为本发明提供的图像检索方法基于图像数据集nus-wide的precision@n曲线图。
参见图7a和图7b可知,本发明的图像检索方法的dshnp算法在基于哈希码位数为48的情况下,无论是本发明的图像检索方法的dshnp算法中,还是图像数据集nus-wide,其准确率相对于传统的算法,均可得到有效提高。
参见图8a和图8b可知,本发明的图像检索方法的dshnp算法在基于哈希码位数为48的情况下,无论是本发明的图像检索方法的dshnp算法中,还是图像数据集nus-wide,其前n个返回结果中与查询图像相似的图像个数占n个返回结果的比例相对于传统的算法,均可得到有效提高。
基于上述可知,本发明提供的的图像检索方法的dshnp算法,具有非线性哈希映射的优势,其将基于深度卷积神经网络哈希算法进行图像特征的学习及提取与非线性哈希映射相结合,可有效提高图像检索的准确度。
本发明还提供一种图像检索装置。该图像检索装置可执行上述任一所示的图像检索方法。图9为本发明提供的一种图像检索装置的结构示意图一。如图9所示,该图像检索装置可包括:
第一处理模块901,用于采用深度卷积神经网络对输入图像进行处理,得到该输入图像的图像特征。
第二处理模块902,用于采用非线性映射函数对该图像特征进行处理,得到该输入图像的哈希码。
第一确定模块903,用于根据该输入图像的哈希码,和至少一个图像中每个图像的哈希码,确定该输入图像与该每个图像的汉明距离。
排序模块904,用于根据该输入图像与该每个图像的汉明距离,对该至少一个图像进行排序,并将该排序后的图像作为图像检索结果。
可选的,如上所示的非线性映射函数可包括:至少一个决策树算法;
第二处理模块902,具体用于根据该图像特征,采用每个决策树算法,得到该输入图像的一个哈希值;该输入图像的哈希码包括至少一个哈希值。
可选的,图10为本发明提供的一种图像检索装置的结构示意图二。如图10所示,图像检索装置还可包括:
第二确定模块905,用于在第二处理模块902根据该图像特征,采用该每个决策树算法,得到该输入图像的一个哈希值之前,根据该每个决策树算法采用的参数向量,确定第一正则化项;根据该至少一个决策树算法中不同决策树算法采用的参数向量,确定第二正则化项;其中,该每个决策树算法针对不同叶子节点所采用的参数向量相互平行;该不同决策树算法针对同一叶子节点所采用的参数向量相互正交。
第一更新模块906,用于根据该第一正则化项、该第二正则化项和成本函数,对该每个决策树算法采用的参数向量进行更新;该成本函数为对至少一个训练图像进行处理得到的。
可选的,图11为本发明提供的一种图像检索装置的结构示意图三。如图11所示,第一更新模块906包括:
处理子单元9061,用于根据该第一正则化项、该第二正则化项对该成本函数进行处理,得到损失函数;采用参数矩阵,对该损失函数进行求导,得到该损失函数的第一梯度值;其中,该参数矩阵包括:该至少一个决策树算法采用的参数向量。
更新子单元9062,用于根据该损失函数的第一梯度值,对该每个决策树算法采用的参数向量进行更新。
可选的,图12为本发明提供的一种图像检索装置的结构示意图四。如图12所示,图像检索装置还可包括:
第三确定模块907,用于根据预先获取的所述至少一个训练图像的图像特征,对该损失函数进行求导,得到该损失函数的第二梯度值;
第二更新模块908,用于根据该损失函数的第二梯度值,对该深度卷积神经网络采用的参数进行更新。
本发明提供的各图像检索装置,可执行上述任一所示的图像检索装置,其具体的实现及有益效果可参见上述,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。