石晶晶,周绪川,蒋凤霞
(西南民族大学计算机系统国家民委重点实验室,四川 成都 610041)
要进行深度学习相关的研究,一个好的GPU 资源是必不可少的,而在传统图像分类的应用中[1],每次增加或者减少样本种类都需要对数据集进行一次新的训练,这在实际应用中是难以实现且具有较高困难度的,而度量学习[2]的出现解决了这一问题,度量学习去掉了传统图像分类中的softmax 层[3],通过特征提取器提取特征,根据距离度量函数得到样本和特征之间的映射函数从而计算出图像的相似度[4],增加了模型的泛化性,使得增加或减少样本种类时不需要重新训练,从而节约了GPU 资源.深度神经网络进行分类模型的训练对于数据量的需求非常庞大,有监督的学习方法需要进行大量的人工标注,这需要庞大的人工成本和时间成本,并且对标注的质量也要求较高.如今生产力发展迅速,很多不同种类的新产品层出不穷,导致收集大规模的标记数据变得十分困难.针对这一系列的问题,本文也采用了自监督的训练模式,采用了孪生网络结构,将输入的图像经过不同的数据增强方式得到两个经过原图变换而来的正样本和其他输入的负样本进行深度神经网络的学习和训练[5],使同类样本之间的距离尽可能缩小,不同类样本之间的距离尽可能放大[6]来达到针对某一特定场景的相似度分类问题,因此,图像度量学习也可以说是图像相似度学习[7].直接利用数据本身作为监督信息[8],来学习样本数据的特征表达,并用于下游任务.
在人脸识别、指纹识别等开集分类的任务中,类别数往往很多而类内样本数比较少[9]. 在这种情况下,基于深度学习的分类方法常表现出一些局限性,如缺少类内约束、分类器优化困难等. 而这些局限可以通过深度度量学习来解决.度量学习用于小样本分类能得到很好的效果. 其中图像细粒度分类[10]也是度量学习中一个重要的应用领域,在同一个特定种类中有很多细分种类,比如猫又可以细分为布偶猫、蓝猫、中华田园猫等不同种类,使用度量学习的方法去进行训练可以提取猫的共有特征,从而通过增加少数量的底库图像去达到更多种类的预测.这在生活中的应用也十分广泛,如门禁系统、地铁刷脸系统等.
由于细小类别之间的差异性比较小[12],所以细粒度分类的重难点就在于如何定位关键区域以及如何从关键区域当中提取有效信息[11]. 传统的自监督的训练方法,对于单张图像来说没有标签进行标注,网络当中训练的是一整张图像的特征[13],这就有可能导致正样本在图像当中占比较小,而负样本占比较大,使得深度神经网络在训练的过程当中读取到过多的负样本信息从而使训练出来的特征提取器效果变差.为了解决这个问题,本文在训练前对图像增加了抠图处理,将本文当中要训练的CUB_200_2011 数据集和Standford Dogs Dataset 数据集先截取出图像当中的待检测物体,然后进行放大,去除掉大量的负样本[14].这里采用的方法是借助YOLOV5 的初始权重模型对CUB_200_2011 和Standford Dogs Dataset 数据集进行识别,定位以及截取. 使得训练的特征提取器的精度得到较为明显的提升.
度量学习(Metric learning)[15]算法原理是通过距离度量函数使同类样本之间的距离尽可能靠近,不同种类之间的样本距离尽可能远离,从而达到对特定种类的样本进行分类.度量学习可分为有监督和无监督的训练方式,无监督训练中又包含自监督的训练方式.由于实际应用中,数据集的获取和大规模的数据标注是十分困难的[16],并且,对于人工标注的质量要求比较高,所以本文采用的自监督训练以及孪生网络是具有很高的应用价值的.
本文度量学习进行训练和验证可以分为四个步骤:
1)对公开数据集CUB_200_2011,Standford Dogs Dataset 进行抠图处理,截取出目标物体,去除大量负样本;
2)在公开数据集CUB_200_2011,Standford Dogs Dataset 上训练网络,使其具有较好的特征提取能力,得到特征提取器;
3)添加特征底库.使用特征提取器提取样本特征并存入底库;
4)采用特征提取器提取验证集图像特征,并采用相应的距离度量函数与底库中特征进行比对,输出top@k.图像检测后会根据距离度量计算函数对底库中图像和检测图像间距离进行计算并排序,k 表示前k 个与待检测图像特征最为相近的底库图像.
1.1 孪生网络及主干网络
孪生网络(Siamese network),又名双生网络,是基于两个人工神经网络建立的耦合构架,网络架构如图1 所示.孪生网络包含两个子网络,子网络各自接受一个输入.通过输入同一张图像经过数据增强后的两张不同部分的图像,输入网络中进行特征提取,然后计算特征之间的距离distance. 使相同种类更加靠近,不同种类更加远离[17].从而判断这两张图像是否属于同一种类.本文对比了resnet-50,resnet-101 以及resnet -152 分别作为骨干网络的网络性能表现,最终选用resnet -101 作为骨干网络. resnet -101 训练的特征提取器的效果更优.
图1 孪生网络架构Fig. 1 Siamese network framework
1.2 自监督预训练数据集改进
自监督学习主要是利用辅助任务(pretext)从大规模的无监督数据中挖掘自身的监督信息,通过这种构造的监督信息对网络进行训练,从而可以学习到对下游任务有价值的表征,节省了人工标注的成本. 本文在进行训练之前借助现有的YOLOV5 初始权重对存在于YOLOV5 初始权重中的类别直接检测对数据集进行抠图处理,大大减少了人工的工作量. 突出检测目标的特征,使模型能够更好地学习到物体表征信息,增加了训练模型的鲁棒性.对骨干网络进行对比,选取性能更优的骨干网络.采用了基于孪生网络的自监督学习方法,通过学习两个事物的相似性和不相似性进行编码从来而构建表征.
1.3 度量函数
欧氏距离、马氏距离等都是常用的相似度距离度量函数,本文选用的是马氏距离度量函数,马氏距离是由欧氏距离演变而来. 欧氏距离(Euclidean distance)是一个通常采用的距离定义,它是在m 维空间中两个点之间的真实距离.在二维和三维空间中的欧氏距离的就是两点之间的距离,它们往往带有大小不等的随机波动,有时不能满足实际要求. 没有考虑到总体变异对距离远近的影响.而马氏距离考虑了各种特性之间的关系,还可以排除变量之间的相关性的干扰.其中μ和x分别表示,对于一个均值为μ=(μ1,μ2,μ3,…,μp)T,协方差矩阵为Σ 的多变量矢量x=(x1,x2,x3,…,xp)T,单个数据点的马氏距离计算公式为
其中,协方差矩阵的逆对数据进行坐标旋转和缩放,有效的排除了变量之间相关性的干扰并且排除测量量纲的影响.如果协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离.马氏距离与欧式距离的实验对比如图2,圆形为基准点,五角形和圆形属于同一类别,三角形为异常点. 在欧式距离计算的条件下两者距离基准点的距离一致,如左图A.右图B 为马氏距离计算结果.显然,如果单纯使用欧氏距离计算原始点数据间的距离,三角形和五角星到原点的欧氏距离是一样的,但是从右表中马氏距离的计算结果可以发现,三角形更像是异常点,马氏距离通过将数据进行坐标旋转、缩放到另一个空间后可以直接使用欧氏距离区分开异常点.
图2 马氏距离和欧氏距离对比Fig.2 Comparison of Mahalanobis distance and Euclidean distance
1.4 损失函数
损失函数在度量学习中起到了非常重要的作用,度量学习中怎样选取合适的损失函数是影响着模型性能和精度的一个重要因素,度量损失函数展示了样本和特征之间的映射关系. 本文选用的circle loss 损失函数,这也是被认为在各种度量学习中表现较好的一种.circle loss 是基于triplet loss 改进而来的一种新型的loss 定义,其目标都是最大化类内相似度(sp)和最小化类间相似度(sn). triplet loss 对于正负样本采用平均用力的方式进行优化,使得在模型收敛的时候,对于正负样本的区分力度不够.而circle loss 在正负样本对加入了一个权重,控制正负样本对各自的梯度贡献,最后就可以得到一个更有区分力度的模型.
给定特征空间中的单个样本x,假设与x相关的类内相似度分数有K个,m表示余量项,与x相关的类间相似度分数有L个,分别记为{spi}(i=1,2,..,K)和{snj}(j=1,2,..,L),把sp和sn互相配对,列举出所有的可能性,获得以下统一损失函数:
忽略等式(3)中余量项m 并且分别对sp和sn加权.可得到如下circle loss 损失函数:
假设
spi,snj的最佳优化效果分别为op,on,当此时某相似度分数偏离最佳优化效果,则给予相应的梯度.具体加权函数公式如下:
本节是为了证明本文提出的抠图,突出正样本,减少大量负样本的有效性,以及对比不同网络骨干结构以及损失函数在数据集的性能表现. 选取了CUB_200_2011和Standford Dogs Dataset 公开数据集对不同损失函数和网络骨干结构进行了实验对比.
2.1 实验数据与设计
CUB_200_2011 数据集是一种鸟类的细粒度分类数据集,包含了200 种鸟类的11 788 张图片.其中数据集中的前100 种5 864 张图片进行训练,后100 种5 924 张图片进行验证,观察模型在未参与训练的数据集上的泛化能力. Standford Dogs Dataset 是一种犬类数据集.包含世界各地120 种20 580 张犬类图像.这两种数据集能很好地验证本文提出的抠图减少负样本,突出正样本特征在细粒度分类中的有效性.CUB_200_2011 训练集train 和验证集test 分配如表1所示.
表1 数据集分配Table 1 Dataset allocation
数据集原图和抠图处理后对比如图3 所示.抠图过后去掉模糊图片,确保数据集的质量.
图3 前后图对比Fig. 3 Comparison of front and rear diagrams
其中,在设计验证数据集时提出新思路,验证集分为testA 和testB 和testC. testA 是与训练模型类别一致但不在训练集中的图片;
testB 是与训练模型类别不一致的图片,以此来测试出模型的泛化能力;
testC 包含testA 以及testB,验证总体的精度.
2.2 实验结果与分析
为了验证所提出的改进方法的有效性,本文在数据集CUB_200_2011 以及Standford Dogs Dataset 数据集上设计了几组对比实验,对比实验分别为训练是否抠图以及验证集是否抠图不同对比;
使用Resnet -101 与其他网络结构对比.
表2 和表3 展示的是对于训练集和验证集是否抠图对于模型性能的影响,使用召回率Recall 来对不同的方法性能进行评估.为了检测抠图对模型性能的影响,一共进行了四组对比实验,实验结果显示,如CUB_200_2011 在训练和测试均不抠图的情况下召回率为71%;
训练时抠图,检测时不抠图召回率为72.3%;
训练时不抠图,检测时抠图召回率为71.6%;
训练时抠图,检测时也抠图的召回率达到72.9%. 对比发现,在CUB_200_2011 和Standford Dogs Dataset数据集上进行抠图后进行训练和检测的准确率和模型性能都有明显提升.
表2 CUB_200_2011 是否抠图对比Table 2 CUB_200_2011 matting comparison
表3 Standford Dogs Dataset 是否抠图对比Table 3 Stanford Dogs Dataset matting comparison
图4 说明了在CUB_200_2011 数据集上比较Resnet-101,Resnet -50 以及Resnet -152 作为骨干网络训练时对于模型性能的影响,可以看到,在召回率Recall1 时,Resnet - 101 的精度为72%,相比于Resnet-50 的71%提升了1 个百分点;
在召回率Recall10 时,Resnet-101 的精度为93%,相比于Resnet-152 的91.8%提升了1.2 个百分点,比Resnet -50提升了0.8 个百分点,对比得出,本文选用Resnet -101 作为骨干网络对于模型整体性能有较好的提升.
图4 网络骨干对比Fig.4 Comparison of network backbone
本文在孪生网络的基础上进行了抠图与不抠图的实验对比,验证了本文提出的抠图能更好地去除负样本,强调突出要训练的检测目标,减少由于检测目标在图片中占比过小或占比不均衡导致的负样本过多对训练特征提取器产生的影响,使实验精度得到较好的提升.同时,对度量学习中不同的距离度量函数和骨干网络做了比较,选用马氏距离度量作为度量函数,Resnet-101 作为骨干网络可对模型性能有明显的提升.充分证明了本文提出改进的有效性.过后,将会继续完善本研究,争取达到更好的效果.
猜你喜欢马氏度量特征提取鲍文慧《度量空间之一》上海文化(文化研究)(2022年3期)2022-06-28模糊度量空间的强嵌入数学年刊A辑(中文版)(2022年4期)2022-02-16一类时间变换的强马氏过程数学物理学报(2021年3期)2021-07-19有环的可逆马氏链的统计确认数学物理学报(2020年6期)2021-01-14关于树指标非齐次马氏链的广义熵遍历定理数学年刊A辑(中文版)(2020年1期)2020-05-19迷向表示分为6个不可约直和的旗流形上不变爱因斯坦度量数学年刊A辑(中文版)(2019年3期)2019-10-08基于Daubechies(dbN)的飞行器音频特征提取电子制作(2018年19期)2018-11-14一致可数可加马氏链不变测度的存在性数学物理学报(2018年2期)2018-05-14Bagging RCSP脑电特征提取算法自动化学报(2017年11期)2017-04-04地质异常的奇异性度量与隐伏源致矿异常识别中国学术期刊文摘(2016年1期)2016-02-13