基于卷积神经网络的视觉场景识别方法转让专利

申请号 : CN201711174595.2

文献号 : CN107944386B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张国山张培崇王欣博

申请人 : 天津大学

摘要 :

本发明涉及一种基于卷积神经网络的视觉场景识别方法,包括:利用原始数据集获得感知偏差和感知变异的图像对;用预训练的卷积神经网络模型CNN进行特征提取;由卷积神经网络不同层的特征构建特征差异图;构建新的分类模型对特征差异图进行训练。

权利要求 :

1.一种基于卷积神经网络的视觉场景识别方法,包括下列步骤:

1)利用原始数据集获得感知偏差和感知变异的图像对对原始数据集采取如下措施:(1)从来自同一场景的图片中任取两张获得3组图片对;

(2)对来自不同场景的图片从包括光照,视角,内容在内的多方面入手找到外观极其相似的图片对,最终得到来自同一场景的发生感知变异的多组图片对和来自不同场景的发生感知偏差的多组图片对,从中选出测试集;

2)利用预训练的卷积神经网络模型CNN进行特征提取对获得的图像对{I1,I2},利用预训练的卷积神经网络模型vgg16进行特征提取,每一层都得到一个四维的特征映射feature maps;

3)由卷积神经网络不同层的特征构建特征差异图,步骤如下:(1)把经过特征提取后每一层得到的四维的特征映射feature maps转化为一维向量,向量的维度为特征映射feature maps后三维元素的乘积;

(2)对两幅图像的转化为一维向量后的CNN特征做差,然后对得到的差值向量进行标准化,使得其元素的取值在[0,1]之间;

(3)把每一层得到的标准化后的一维向量转化为图片,得到由同一层CNN特征构建的两幅图片的特征差异图;

(4)对每一层得到的特征差异图添加标签,来自不同场景的标记为d,来自相同场景的标为s;

4)构建新的分类模型对特征差异图进行训练,具体如下:(1)构建新的分类模型;

(2)利用xavier进行权重初始化,设置相关训练参数,优化方法为Adam,学习率为0.01,动量值为0.9;

(3)前向传播:输入特征差异图,通过卷积、池化、全连接和ReLU非线性化得到输出值,结合标签,计算相应的loss;

(4)反向传播:调用反向传播算法计算每层的梯度,并根据选用的优化方法进行权重更新;

(5)反复进行迭代,直到达到终止条件,同时对模型进行保存。

说明书 :

基于卷积神经网络的视觉场景识别方法

技术领域

[0001] 本发明属于模式识别和机器学习领域。

背景技术

[0002] 给定场景的一副图片,人类或者机器人可以判断出这副图片是否来自之前见到的场景,这就是视觉场景识别要解决的问题。视觉场景识别是计算机视觉领域一项具有挑战性的工作,其在移动机器人,自动驾驶等领域都有广泛的应用。虽然视觉场景识别已经取得了很大的进展,但是由于光照,视角等的影响,场景外观会发生剧烈变化,导致感知变异和感知偏差现象,阻碍了相关算法在真实环境中的长期应用。一个鲁棒的视觉场景识别系统必须能够成功地匹配来自同一场景但视觉上容易混淆为不同场景的两幅图像(感知变异),同时拒绝来自不同场景但视觉上容易混淆为相同场景的两幅图像(感知偏差)。
[0003] 近几年,随着深度学习在模式识别和人工智能领域的发展,卷积神经网络(CNN)已经在图像分类,图像检索,目标检测等方向取得了巨大的成果。与传统人工设计的特征相比,CNN不仅能自动提取高质量的图像特征,而且具有很好的泛化能力,可以应用于相关但是不相同的视觉任务。CNN特征已经在视觉场景识别领域被证明优于传统特征,但是现有的基于CNN的视觉场景识别大多数直接利用深度特征的距离并设置阈值来衡量图像的相似性,当场景外观发生剧烈变化时效果较差。针对场景外观剧烈变化引起的感知变异和感知偏差,本发明提出了一种新的基于特征差异图的视觉场景识别方法。首先,一个由场景侧重的数据集预训练的CNN模型被用来对同一场景中感知变异的图像和不同场景中感知偏差的图像进行特征提取。然后,这些CNN特征被用来构建特征差异图来表征两幅图像之间的差异。最后,视觉场景识别被看作二分类问题,利用特征差异图训练一个新的CNN分类模型来判断两幅图像是否来自同一场景。

发明内容

[0004] 本发明的目的是提出一种新的基于卷积神经网络的视觉场景识别方法,利用CNN特征构建特征差异图来衡量两幅图片的相似性并构建新的分类模型进行训练和识别,当场景外观发生剧烈变化时能有效地克服感知偏差和感知变异,取得较高的识别准确率。技术方案如下:
[0005] 一种基于卷积神经网络的视觉场景识别方法,包括下列步骤:
[0006] 1)利用原始数据集获得感知偏差和感知变异的图像对
[0007] 对原始数据集采取如下措施:(1)从来自同一场景的图片中任取两张获得3组图片对;(2)对来自不同场景的图片从包括光照,视角,内容在内的多方面入手找到外观极其相似的图片对,最终得到来自同一场景的发生感知变异的多组图片对和来自不同场景的发生感知偏差的多组图片对,从中选出测试集。
[0008] 2)利用预训练的卷积神经网络模型CNN进行特征提取
[0009] 对获得的图像对{I1,I2},利用预训练的卷积神经网络模型vgg16进行特征提取,每一层都得到一个四维的特征映射feature maps。
[0010] 3)由卷积神经网络不同层的特征构建特征差异图,步骤如下:
[0011] (1)把经过特征提取后每一层得到的四维的特征映射feature maps转化为一维向量,向量的维度为特征映射feature maps后三维元素的乘积。
[0012] (2)对两幅图像的转化为一维向量后的CNN特征做差,然后对得到的差值向量进行标准化,使得其元素的取值在[0,1]之间。
[0013] (3)把每一层得到的标准化后的一维向量转化为图片,得到由同一层CNN特征构建的两幅图片的特征差异图。
[0014] (4)对每一层得到的特征差异图添加标签,来自不同场景的标记为d,来自相同场景的标为s。
[0015] 4)构建新的分类模型对特征差异图进行训练,具体如下:
[0016] (1)构建新的分类模型。
[0017] (2)利用xavier进行权重初始化,设置相关训练参数,优化方法为Adam,学习率为0.01,动量值为0.9。
[0018] (3)前向传播:输入特征差异图,通过卷积、池化、全连接和ReLU非线性化得到输出值,结合标签,计算相应的loss。
[0019] (4)反向传播:调用反向传播算法计算每层的梯度,并根据选用的优化方法进行权重更新。
[0020] (5)反复进行迭代,直到达到终止条件,同时对模型进行保存。
[0021] 本发明的主要优点及创新点体现在如下几个方面:
[0022] 1、利用深度学习技术解决比较有挑战性的场景外观发生剧烈变化(光照,视角等引起)下的视觉场景识别,对实际场景中的应用具有重要意义。
[0023] 2、利用卷积神经网络的特征构建了特征差异图来表征图像对之间的差异,与近几年大多数直接利用卷积神经网络的特征并设置阈值来衡量图像相似性的方法相比,避免了设置阈值,当场景外观剧烈变化引起感知偏差和感知变异时,取得较高的准确率。
[0024] 3、针对构建的特征差异图,设计了一个新的分类模型,该模型能够很好地训练特征差异图,使得训练出的模型具有较好的泛化能力,在测试集上也同样取得很好的识别效果。

附图说明

[0025] 图1是本发明基于卷积神经网络的视觉场景识别方法的流程图;
[0026] 图2是从原始数据集中构建的发生感知偏差和感知变异的数据集的示例;
[0027] 图3是从由fc6层特征构建的特征差异图中任意抽选的两张,(a)为来自不同场景的图片的特征差异图,(b)为来自同一场景的图片的特征差异图;
[0028] 图4是新构建的分类模型的结构图;
[0029] 图5是抽选的卷积神经网络不同层的训练结果,(a1)为conv5_3的训练结果,(a2)为conv3_3的训练结果,(b1)为conv4_3的训练结果,(b2)为pool4的训练结果。所有的训练图都包含三条曲线,上面一条线表示在验证集上的准确率,中间一条线表示在验证集上的误差,最下面的线表示在训练集上的误差;
[0030] 图6是对比方法效果最好的pool5层的precison-recall曲线;
[0031] 算法框图如图1所示,主要包括以下几个步骤:
[0032] 1.特征提取
[0033] 利用预训练的CNN模型对感知偏差和感知变异的图片对进行特征提取。训练集的类型和网络结构是采用CNN进行特征提取的两个重要考虑因素。首先,对象侧重(object-centric)的数据集,例如ImageNet,对分类任务具有很好的效果,但并不适合识别任务;场景侧重(scene-centric)的数据集,例如Places和Google Street View dataset更适合识别任务。其次,CNN不同层的特征具有不同的特性,中等层次的特征包含较多几何信息,对光照等的变化具有较好的鲁棒性,而高层次特征则包含更多的语义信息,能有效地克服视角的变化。因此,选择在Places数据集上训练的多层CNN模型vgg16进行特征提取。{I1,I2}表示图像对,Fk(I)表示图片I通过CNN得到的第k层特征。
[0034] 2.构建特征差异图
[0035] 通过特征提取已经获得了图像对{I1,I2}的第k层特征{Fk(I1),Fk(I2)},下面利用这些CNN特征构建特征误差图来表征图像对之间的差异。diffk{I1,I2}表示图像对第k层特征的差异,定义如下:
[0036] diffk{I1,I2}=Fk(I1)-Fk(I2)=(yk1,…,ykd)
[0037] 其中d为特征向量的维数。
[0038] 之后对diffk{I1,I2}采取标准化操作如下:
[0039]
[0040] 为了得到合适的特征差异图作为分类模型的训练集,std-diffk{I1,I2}最终转化为大小合适的图片,即为由CNN第k层特征所构建的特征差异图。
[0041] 3.构建合适的分类模型
[0042] 特征差异图包含较多的高层语义信息,为了验证现有的分类模型是否适合训练特征差异图,采用由pool5构建的特征差异图对常见的两个分类模型AlexNet和GoogLeNet进行训练得到识别结果,两者的准确率都较差。因此,构建了一个更适合训练特征差异图的分类模型。
[0043] 新构建的分类模型包含1个卷积阶段和4个全连接阶段,仅有的一个卷积阶段包含一个卷积层和一个池化层,前三个全连接阶段包含一个全连接层和一个ReLU层,最后一个全连接阶段只包含一个全连接输出层。
[0044] 4.利用分类模型对特征差异图进行训练
[0045] 感知偏差和感知变异下的视觉场景识别被看作二分类问题,利用构建的分类模型对特征差异图进行训练,训练中采用xavier算法进行权重初始化能取得更好的效果,与传统的Gaussian初始化不同,该算法可以使得前向传播和后向传播时每一层输入和输出的方差尽量相等,权重的初始值满足以下的分布:
[0046]
[0047] 其中nj为输入神经元的个数,nj+1为输出神经元的个数。
[0048] Adam(Adaptive Moment Estimation)为优化方法,其利用梯度的一阶矩估计和二阶矩估计动态调整每个参数的学习率,公式如下:
[0049] mt=μ*mt-1+(1-μ)*gt
[0050]
[0051]
[0052]
[0053]
[0054] 其中gt为梯度,η为学习率,mt,nt分别是对梯度的一阶矩估计和二阶矩估计,可以看作对期望E|gt|, 的估计, 是对mt,nt的校正。
[0055] 5.将训练得到的模型在测试集上进行识别
[0056] 为了考察训练得到的模型的泛化能力,在测试集上进行识别,并利用精确度(precision)和准确率(accuracy)分析识别效果。
[0057]
[0058]
[0059] 其中TP(Ture Positive)表示实际为不同场景,识别也为不同场景的图像对;FP(False Positive)表示实际为同一场景,识别为不同场景的图像对;TN(Ture Negative)表示实际为同一场景,识别也为同一场景的图像对;FN(False Negative)表示实际为不同场景,识别为同一场景的图像对。
[0060] 表1是卷积神经网络不同层构建的特征差异图的大小;
[0061] 表2是卷积神经网络不同层在验证集上的准确率;
[0062] 表3是卷积神经网络不同层在测试集上的精确度和准确率;
[0063] 表4是现有的基于卷积神经网络特征的距离和阈值方法在测试集上的平均精确度。
[0064]
[0065] 表1
[0066]
[0067] 表2
[0068]
[0069]
[0070] 表3
[0071]
[0072] 表4。