本发明涉及计算机视觉识别技术领域,尤其是涉及一种基于对比学习的细粒度舰船识别方法。
背景技术:
细粒度图像分类无论在工业界还是学术界都有着广泛的研究需求与应用场景,与之相关的研究课题主要包括识别不同种类的鸟、狗、花、车、飞机等。在实际生活中,识别不同的子类别存在着巨大的应用需求。例如,在海洋舰船识别中,有效识别出不同类别的舰船,可以加强海上生命安全、提高航行的安全性和效率,以及保护海上领土安全。
细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像任务的区别和难点在于其图像所属类别的粒度更为精细,其子类间差异细微、子类内部差异大。因此,不止对计算机,对普通人来说,细粒度图像任务的难度和挑战无疑也十分巨大。
在细粒度舰船数据集中,还存在类别不平衡的严重问题,即数据长尾分布问题。例如,某些国外新型舰船只有几张图像,有些常见型号的舰船数据量较多。这将导致在分类模型训练过程中过拟合到训练数据较多的类别中,而训练数据少的类别的准确率则会很低。
技术实现要素:
为解决现有技术的不足,实现降低细粒度舰船识别难度,达到低成本、高性能的目的,本发明采用如下的技术方案:
首先采集并标注舰船分类数据集,并对每张图像采用几种不同的数据增强方式获得图像集合,依次组合成同类与非同类图像集合对,交替输入孪生分类网络进行图像特征提取与分类,通过三个损失函数分别提取图像的等变性特征、判别性特征以及多维融合特征,最终实现同类别舰船分类相同,不同类别舰船之间可有效区分的效果。其具体技术方案如下:
一种基于对比学习的细粒度舰船识别方法,包括如下步骤:
s1:采集图像,将每张图像保存到其所属类别的文件夹下,构建分类数据集;
s2:对图像采用
s3:构建孪生分类网络,包括如下步骤:
s3.1:使用预训练过的骨干网络,提取图像特征;
s3.2:构建等变特征提取网络头,对骨干网络输出的特征进行全局平均池化,并通过全连接层输出图像采用的数据增强方式类别,采用交叉熵损失函数
s3.3:构建判别性特征提取网络头,对骨干网络输出的特征进行全局平均池化,并通过全连接层输出图像所属类别,采用交叉熵损失函数
s3.4:构建多维融合特征提取网络头,对骨干网络输出的特征进行全局平均池化,将同一图像集合内的图像所提取的特征,进行拼接,同一图像集合内的图像包括原图与通过数据增强方式生成的图像,将拼接后的特征输入全连接层,输出多维融合特征向量
s4:将图像集合,根据分类数据集的分类,依次组合成同类与非同类图像集合对,交替输入孪生分类网络进行拟合训练,根据输出的多维融合特征向量
采用对比损失函数
训练阶段,通过损失函数
其中
s5:推理阶段,将待测图像与其经过数据增强处理后的图像分别输入孪生分类网络,统计判别性特征提取网络头输出的分类结果。
进一步地,所述s3.2中,所述交叉熵损失函数
进一步地,所述s3.3中,所述交叉熵损失函数
进一步地,所述s4中,采用余弦相似度函数进行相似度比较,正样本相似度为1,负样本相似度为-1,相似度函数
a、b分别表示图像集合对中的两个多维融合特征向量,
进一步地,所述s4中,对比损失函数
进一步地,所述s1中,对所述分类数据集,构建训练集、验证集与测试集,在训练阶段采用训练集和验证集。
进一步地,所述s2中,所述数据增强方式包括顺时针旋转90度、顺时针旋转180度、上下翻转、左右翻转、彩色图转灰度图。
进一步地,所述s3.1中,使用经过imagenet预训练过的resnet101作为骨干网络,用于提取图像特征。
进一步地,所述s4中,权重值
进一步地,所述s5输出分类结果后,采用投票的方式判断图像所属类别,若出现同票,则根据类别概率大小决定最终类别结果。
本发明的优势和有益效果在于:
本发明利用多维融合特征进行相似度比较,可以使同类距离更加接近,非同类之间更加区分,有效提升细粒度分类性能;通过对图像增强方式进行类别区分,来提取图像的等变特征,使模型在表示学习层提取到更具泛化性的特征,从而在多变复杂场景下具有鲁棒性;本发明弥补了类别数据不平衡、整体样本规模较小的问题,尤其适用于舰船识别数据集。
附图说明
图1是本发明的深度分类网络模型结构图。
图2a是本发明的模型训练阶段的流程图。
图2b是本发明的模型推理阶段的流程图。
图3是本发明的样例效果图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
基于数据长尾分布问题,目前主要的解决方案有基于常规图像分类网络微调、基于目标块检测、基于注意力机制的方法等。而本发明提出使用对比学习的方法来训练细粒度分类网络,可以在小规模数据集的情况下有效提升分类性能,借助于计算机视觉的技术,实现低成本高性能的细粒度舰船识别,对比学习的核心思想,在于把正样本距离拉近,正样本与负样本距离拉远,从而学习到能将不同类别区分开的特征。
如图1所示,本发明的一种基于对比学习的细粒度舰船识别方法,包括以下步骤:步骤1:采集舰船图像,将每张图像保存到其所属类别的文件夹下,构建舰船分类数据集。本实例中,一共采集了10个国家,108种类别型号的舰船数据,共计4300张图像。按照每种型号8:1:1的比例,分别构建训练集、验证集与测试集。对于个别数据量极少的类别,如只有4张图像,则按照2:1:1的比例特殊处理;
步骤2:对每张图像采用
步骤3:构建孪生分类网络,包括以下子步骤:
3.1:使用经过imagenet预训练过的resnet101作为骨干网络,用来提取图像特征,特征向量维度为2048;
3.2:构建等变特征提取网络头:对骨干网络输出的特征进行全局平均池化,并连接一个
3.3:构建判别性特征提取网络头:对骨干网络输出的特征进行全局平均池化,并连接一个
3.4:构建多维融合特征提取网络头:对骨干网络输出的特征进行全局平均池化,然后将同一图像集合内的图像所提取的特征进行拼接,包括原图与
步骤4:将步骤2获得的图像集合依次组合成同类与非同类图像集合对,交替输入孪生分类网络进行拟合训练,根据步骤3.4输出的多维融合特征向量,采用余弦相似度函数进行相似度比较,正样本相似度为1,负样本相似度为-1,其相似度函数
a、b分别表示图像集合对中的两个多维融合特征向量,
采用对比损失指导特征空间的学习,使正样本相似,负样本有效区分,其损失函数
如图2a所示,训练阶段,通过三个损失函数联合指导网络参数的迭代,直到总损失函数值变化小于一定变化阈值,说明模型训练完成,停止训练,总损失函数的计算公式如下:
其中
步骤5:推理阶段,如图2b所示,将待测图像与其经过
本发明采用多种数据增强方式对原数据进行图像扩增,既缓解了样本规模较小的问题,同时提取了图像的等变特征,从而增强了模型面对开放世界实战多变场景下的鲁棒性。同时采用对比学习的方法,将拼接后的多维融合特征进行相似度对比,利用更多信息学习正负样本的边界,有效提升了细粒度分类的性能。舰船数据集在resnet101网络下训练分类性能达到72.8%,采用本发明可使分类性能达到85.2%,对于样本量较小的舰船类别,性能提升更为显著,充分体现出本发明的实际效益与应用价值,识别效果样例如图3所示,通过本发明的方法,能够识别出舰船更为具体的型号类别,且置信度为69.53%。
以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。