一种结合注意力混合裁剪的细粒度图像识别方法
文献发布时间:2023-06-19 11:22:42
技术领域
本发明属于计算机视觉技术领域,特别涉及了一种结合注意力混合裁剪的细粒度图像识别方法。
背景技术
细粒度图像识别不同于通用图像识别,旨在区分同属某一大类下更为精细的子类,如区分鸟的种类,狗的种类,车的类型等等,在智能安防,智能零售等领域有着重要的应用,其具有类间差距小和类内差距大的特点,识别具有不小的难度;同时细粒度数据集往往种类多,而数据量较少,容易产生训练时的过拟合。近年来,在传统图像分类任务已达到了一个较高的精确度之后,研究人员将自己的目光放在了细粒度图像识别上。
Part-based R-CNN方法借鉴了目标检测领域的R-CNN方法,利用部件级别标注信息训练出一个部件检测器,进行目标的头部和躯干的检测,之后将检测到的头部和躯干的特征与图像整体分别通过卷积神经网络提取特征,并依据该特征通过SVM分类器得到最终的分类结果。双线性卷积神经网络B-CNN率先提出了利用Bilinear Pooling双线性池化操作融合两个不同的卷积神经网络提取到的特征,融合之后的高阶特征被证明更适应细粒度分类任务。循环注意力卷积神经网络RA-CNN,借鉴了目标检测领域的RPN区域建议网络思想,在结合注意力机制后提出了APN注意力建议网络。通过多阶段的注意力网络,逐级的将注意力网络关注的区域进行裁剪放大,之后送入下一阶段注意力网络,以此来获得更加细节的特征。
但是,上述算法均存在不足,例如Part-based R-CNN需要对图像进行部件级别的强监督信息标注,性价比不高;BCNN则计算量较大;而RA-CNN较为复杂,且同样计算量较大。
发明内容
为了解决上述背景技术提到的技术问题,本发明提出了一种结合注意力混合裁剪的细粒度图像识别方法,解决细粒度图像识别问题。
为了实现上述技术目的,本发明的技术方案为:
一种结合注意力混合裁剪的细粒度图像识别方法,包括以下步骤:
(1)图像采集过程:采集待识别的细粒度图像;
(2)数据增强过程:采用数据增强方法来扩大步骤(1)所述图像数据量,与原本采集得到的图像一起形成细粒度图像数据库;
(3)细粒度分类网络训练过程:使用获得的细粒度图像数据库送入细粒度分类网络进行学习,直到损失函数收敛;
(4)测试图像检测过程:利用训练好的细粒度分类网络和权重文件来获取目标图像中细粒度目标的精确分类。
以上所述步骤中,步骤(1)具体包括以下步骤:对采集到的图像进行清洗处理,过滤掉模糊,曝光过度,不包含仪表目标,仪表不完整等不满足要求的照片,之后对余下图像进行标注;
步骤(3)中所述细粒度分类网络为结合注意力混合裁剪的细粒度图像识别网络,结合了注意力混合裁剪,相较于其他细粒度分类网络具有更简单直观,主干网络可根据实际任务替换的优点,
步骤(3)具体包括以下步骤:
(31)将细粒度图像数据送入结合注意力混合裁剪的细粒度网络中,使用ImageNet预训练权重作为初始权重,设置学习率为0.002,设置最大迭代轮次为200轮,设置batchsize为32,使用StepLR策略进行学习率衰减,每两个epoch将学习率衰减为原来的0.9;
(32)采用卷积神经网络进行特征的提取,提取到图像的高阶语义信息;
(33)对于获取到的特征图,使用1*1大小的卷积核将特征图映射为注意力图;
(34)对于获取到的注意力图,将其与原特征图通过注意力双线性池化操作获取二阶特征,并拼接成特征矩阵之后通过SoftMax层计算交叉熵分类损失;
(35)对于注意力图中得到的位置信息,进行注意力混合裁剪,并将混合裁剪后的图片重新送入网络中进行学习,直到损失函数收敛,即可停止训练获得用于测试的网络模型;
进一步地,步骤(32)中的卷积神经网络可视实际情况进行选择,在速度要求较高的应用场景下,可选择轻量级的基础网络;而在精度要求较高的应用场景下则可以选择重量级的基础网络;
进一步的,步骤(34)中双线性注意力池化操作具体包括以下步骤:首先对于注意力图,与原特征图分别两两逐元素相乘进行局部特征的强化;接着对得到的特征向量进行带符号开方操作与L2正则化;之后通过全局池化操作将特征向量降维到原特征图维度;最后将降维后的多个特征向量拼接成特征矩阵,用于分类。
进一步的,步骤(35)中的注意力混合裁剪包括以下步骤:
(351)首先通过下式将特征图转化为特征热力图:
(352)之后通过给定阈值计算出特征热力图中响应最强烈的区域掩模
(353)之后根据所述掩模在原图中进行裁剪,并在调整大小之后将两张图片裁剪的区域进行交换,并交换两张图片的标记信息,由此便得到两张混合裁剪的图片:
进一步地,步骤(4)具体包含以下步骤:
(41)将待检测细粒度图像数据送入基础网络,进行卷积特征提取;
(42)通过M个1*1卷积获取注意力特征图,之后通过双线性注意力池化操作汇合注意力特征图与原特征图,获取特征矩阵;
(43)通过SoftMax层进行输出的规范化,并得到最终的预测结果。
有益效果:本发明提供了一种结合注意力混合裁剪的细粒度图像识别方法,利用注意力网络在弱监督学习到的位置信息引导混合裁剪,一方面利用混合裁剪丰富训练数据背景,同时避免随机混合裁剪混合到背景的问题;另一方面增强网络对局部特征的学习,避免网络对背景的过拟合。本发明中双线性注意力池化有利于细粒度特征的提取,注意力混合裁剪操作可以增强模型泛化性能。本方法的基础网络可随实际需求更换,灵活度高、精度高,鲁棒性强,提升了细粒度图像识别任务的精度,进而应用在商品识别,车型识别,动物识别等场景中。
附图说明
图1是本发明的整体流程图;
图2是本发明步骤3的整体流程图;
图3是本发明步骤3中的双线性池化流程图;
图4是本发明步骤3中的注意力混合裁剪流程图;
图5是本发明步骤4的流程图;
图6是本发明实施例中的混合裁剪示意图,其中左图为鸟类,右图为狗类。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明:
如图1所示,一种结合注意力混合裁剪的细粒度图像识别方法,包括以下步骤:
步骤1:图像采集过程:采集待识别细粒度图像,如细粒度鸟类与狗类图片,并对其进行标注;
步骤2:数据增强过程:采用数据增强方法来扩大步骤(1)所述图像数据量,与原本采集得到的图像一起形成细粒度图像数据库;
步骤3:细粒度分类网络训练过程:使用获得的细粒度图像数据库送入细粒度分类网络进行学习,直到损失函数收敛;
步骤4:测试图像检测过程:利用训练好的细粒度分类网络和权重文件来获取目标图像中细粒度目标的精确分类,从而获取到细粒度目标的量程信息,进而用于下一步的任务。
在本实施例中,步骤(1)采用如下优选方案:
对采集到的图像进行清洗处理,过滤掉模糊,曝光过度,不包含目标,目标不完整等不满足要求的照片,之后对余下图像进行标注。
在本实施例中,步骤(2)采用如下优选方案:
所述数据增强包括:随机裁剪,随机水平翻转,随机灰度变换,随机色彩抖动。
在本实施例中,步骤(3)采用如下优选方案:
所述细粒度分类网络为结合注意力混合裁剪的细粒度图像识别网络,结合了注意力混合裁剪,相较于其他细粒度分类网络具有更简单直观,主干网络可根据实际任务替换的优点,本实施例中选择ResNet-50作为主干网络。
如图2所示,步骤3的具体展开步骤如下:
(31)将细粒度图像数据送入结合注意力混合裁剪的细粒度网络中,使用ImageNet预训练权重作为初始权重,设置学习率为0.002,设置最大迭代轮次为200轮,设置batchsize为32,使用StepLR策略进行学习率衰减,每两个epoch将学习率衰减为原来的0.9;
(32)采用卷积神经网络进行特征的提取,提取到图像的高阶语义信息;
(33)之后对于获取到的特征图,使用1*1大小的卷积核将特征图映射为注意力图;
(34)之后对于获取到的注意力图,将其与原特征图通过注意力双线性池化操作获取二阶特征,并拼接成特征矩阵之后通过SoftMax层计算交叉熵分类损失;
(35)然后对于注意力图中得到的位置信息,进行注意力混合裁剪,并将混合裁剪后的图片重新送入网络中进行学习,直至网络损失函数收敛或者达到最大迭代轮次;
进一步地,步骤(32)中的卷积神经网络可视实际情况进行选择,在速度要求较高的应用场景下,可选择轻量级的基础网络;而在精度要求较高的应用场景下则可以选择重量级的基础网络;
进一步的如图3,步骤(34)中双线性注意力池化操作是指,首先对于注意力图,与原特征图分别两两逐元素相乘进行局部特征的强化;接着对得到的特征向量进行带符号开方操作与L2正则化;之后通过全局池化操作将特征向量降维到原特征图维度;最后将降维后的多个特征向量拼接成特征矩阵,用于分类。
进一步的如图4,步骤(35)中的注意力混合裁剪包括以下步骤:
(351)首先通过下式将特征图转化为特征热力图:
(352)之后通过给定阈值计算出特征热力图中响应最强烈的区域掩模
(353)之后根据该掩模在原图中进行裁剪,并在调整大小之后将两张图片裁剪的区域进行交换,并交换两张图片的标记信息,由此便得到两张如图6所示的混合裁剪的图片:
进一步地如图5,步骤(4)中包含以下步骤:
(41)将待检测细粒度图像数据,如细粒度狗类鸟类图片,送入基础网络,进行卷积特征提取;
(42)通过M个1*1卷积获取注意力特征图,之后通过双线性注意力池化操作汇合注意力特征图与原特征图,获取特征矩阵;
(43)通过SoftMax层进行输出的规范化,并得到最终的预测结果。
以上仅为本发明优选实施例,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明保护范围之内。
- 一种结合注意力混合裁剪的细粒度图像识别方法
- 一种基于多注意力神经网络的细粒度图像识别方法及系统