一种基于难分样本挖掘的FasterRCNN目标检测方法与流程

文档序号:17742460发布日期:2019-05-24 20:17阅读:991来源:国知局
一种基于难分样本挖掘的Faster RCNN目标检测方法与流程

本发明涉及一种基于在线的样本挖掘技术(ohem)与负难分样本挖掘(hnem)等技术相结合的方法。

技术背景

近几年随着计算机科学技术的飞速发展,基于计算机技术的图像处理、图像目标检测等也获得了空前的快速发展,其中深度学习通过学习海量的数字图像特征,提取关键目标特征,在目标检测上已超过人类,给工业界带来了一个又一个惊喜。计算机视觉的两大任务是图像分类和目标定位检测,而传统方法的图像特征检测是依靠富有经验的算法工程师设计对应目标的匹配模板,比如可变形模型(dpm)、hog特征提取等,前者的目标检测是通过滑动的窗口对目标进行定位,而后采用固定特征的模板匹配对其进行分类。其存在的问题是检测耗时长,特征匹配精度低,对特定的目标有效,导致模型泛化能力弱等一系列问题。而最近兴起的深度学习方法能够针对复杂场景的目标,进行有效地特征识别,识别效果远优于传统方法,但也存在的不足之处:(1)数据集量庞大深度学习的训练集需要成千上万个样本,才能够有效学习数据特征,且数据越多,效果越好,给数据采集工作带来一定的困难;(2)硬件要求较高,训练大数据样本,需要至少4个g的显存,对硬件提出较高要求;(3)训练技巧性强,当参数设置不合理时,样本训练效果较差,出现难训练的情况。



技术实现要素:

为了克服现有技术的上述不足,本发明针对样本问题提供了一种基于难分样本挖掘的fasterrcnn目标检测方法,本发明是一种在不增加样本情况下的在线样本挖掘技术和负难分样本挖掘相结合的技术,使模型能够针对现有的难分样本,有针对性地学习其特征,达到模型进一步提升泛化性、鲁棒性的效果。

为实现上述目的,本发明采用以下技术方案:

一种基于难分样本挖掘的fasterrcnn目标检测方法,包括如下步骤:

步骤一,基于深度学习的图像目标检测;

目前,基于深度学习的图像目标检测模型大多基于卷积神经网络,所以本发明主要基于fasterrcnn进行分析,并且提出一种合理的改进后的方法。

fasterrcnn采用了softmaxloss和smoothl1loss对分类概率和边框回归联合训练,损失函数公式为:

其中,ncls=256表示前景的个数,而边框回归个数nreg=2400是最后特征图滑动的最大维度数量40×60;i表示某一个建议框;pi表示预测出对应类别的概率,包括前景、背景;表示前景与背景的取值,记前景背景以此计算目标边框回归的损失;ti表示该建议框的坐标信息,即中心点坐标和建议框宽高ti=(xi,yi,wi,hi),而表示真正对应的目标物体信息,同样的而λ平衡着边框回归和分类损失的权重;lcls为softmax分类损失函数,边框回归损失采用smoothl1的方法。

如上方法训练到一定程度,会产生对难训练的样本数据不足,缺乏对其训练等的问题。但是,样本挖掘能够解决难分样本训练问题。所以对步骤一中的方法进行如下几个步骤的改进。

步骤二,基于在线样本挖掘方法,本发明采用的关键参数调整设置为:

(1)设定难分样本的筛选机制。每次迭代筛选的难分样本是根据当前的总损失l({pi},{ti})降序排列,并且筛选前b/n个样本量,其中b=64,n为每次训练的图片张数n=1,这样训练的反向传播速度更快,因为只有少量需要调整的梯度。

(2)提高运算速度。在反向传递时,筛选的难分样本是由前向损失计算得来,通过非难分样本损失置0操作,并不能减少模型显存量。所以反向传递筛选出b/n难分样本进行梯度传递,训练的显存容量从3527m减少到3057m。

(3)在rpn层和最后全连接层同时增加ohem模块。由于良好的分类结果取决于精确的目标定位,即建议框的产生,所以对rpn层也增加ohem模块,有利于边框回归出最精确的位置,更是提高了分类的特征提取的有效性。

(4)适当的调整分类损失和边框回归损失的权重。在损失函数公式中,分类损失lcls和边框回归损失lreg是不均衡的,ncls=256是分类的个数,而nreg=2400是最后特征图滑动的最大维度,两者取倒数相差约10倍,因此取λ=10,这样有利于在回归较好边框的同时,有针对性地学习相应的目标特征。

(5)调整非极大值抑制(nms)算法。经典的非极大值抑制算法不能很好地保留相邻或重叠的多目标检测框,导致目标检测的召回率降低。因此,本发明改进的非极大值抑制算法采用了分类的置信度惩罚机制,在去除冗余的建议框的同时还很好的保留了建议框,并进一步提高了map。具体的操作在步骤三中讲到。

(6)数据增强工作提高了模型的泛化能力。训练时通过随机左右镜像翻转和光照饱和度调节,增加样本多样性,防止过拟合。为提高模型对不同尺寸图像的检测能力,在训练时使用了多尺度训练,将图像的短边设置{224,416,480,512,600,672,900}的随机尺寸,另一边等比例放缩。样本的增强工作也进一步地提高了map。

(7)调整了学习率的策略。将学习速率的下降点设置为40k,相当于8个epoch,并且此后隔20k个迭代次数再下降一次学习速率,这样有利于提高前期的全局范围搜索能力,避免陷入局部极小值点;同时,后期采用的较小学习速率,进行极小值的精细化调整,有利于损失的一降再降。

步骤三,负难分样本挖掘是在难分样本基础上通过调整训练中rpn形成的mini-batch正负样本比例为1:3,进行训练。因为经过多次实验发现,比例为1:3时,在模型的表现力都是最好的,其具体策略为:

(1)取消负样本的阈值限制。在原先的fasterr-cnn中,判定为背景的机制是根据rpn产生的候选建议框与真实框之间的交并比iou的大小进行设定,当iou的比例在[0.1,0.5)时,被认为是背景的建议框。这比例设置的不足之处在于忽略了低于0.1以下的罕见、损失较大、重要的难分负样本,这些特征没能很好的被学习。因此,本发明设置判定背景的阈值为[0,0.5)。设置了正样本的阈值为iou值最大的一个,或者iou的阈值在[0.7,1.0]范围。

(2)设置难分正负样本的比例1:3。如前所述,正负样本同时兼顾,并且更多地学习背景信息,能够提高模型在特定背景环境下定位检测目标的能力。并且设置了每次的目标图片批次大小为64,则正样本的数量为16,负样本的数量为48。

(3)同时考虑到预测出的正样本与标签存在多个重复的情况,采用了非极大值抑制方法,采用0.7的阈值,当目标与标签的iou在0.7以下时,则予以删除。

对步骤三中的负难分样本挖掘参数的设置进行总结如下:

(1)参数名称:fg_thresh;代表的含义:正样本iou阈值;参数取值:[0.7,1.0];

(2)参数名称:bg_thresh_lo;代表的含义:负样本iou阈值;参数取值:[0,0.5);

(3)参数名称:hnem_nms_thresh;代表的含义:非极大值抑制阈值;参数取值:0.7;

(4)参数名称:hnem_batchsize;代表的含义:图片目标批次大小;参数取值:64;

(5)参数名称:rpn_fg_fraction;代表的含义:正样本比例;参数取值:0.25;

(6)参数名称:rpn_bg_fraction;代表的含义:负样本比例;参数取值:0.75。

步骤四,剔除冗余框,避免损失的多重计算。采用的是改进后的非极大值抑制算法将rpn层网络生成的建议框合理的去除冗余。具体的操作为:

避免粗鲁地删除iou大于阈值的建议框,采取的改进方式是降低其置信度。采取的计算方法有线性加权、高斯加权法、指数加权法。

其中,线性加权的计算方法是将iou大于阈值的降低其置信度,即引入罚函数的思想:

式中,si表示当前所属类别的置信度得分,a表示权值系数,0<a≤1,bm表示置信度得分最高所对应的边框,bi表示当前的边框,iou(bm,bi)表示两者的交并比,nt表示所给定的阈值。

而采用高斯加权法的计算公式为:

式中,σ的取值不同影响罚函数的惩罚力度,高斯加权函数相比线性加权具有平滑过渡等特点。

指数加权法同样采用了一定的阈值,当其iou大于该阈值时,对其进行惩罚。相比线性加权法,在阈值处具有平滑过渡的特点;相比高斯加权法,在阈值前一阶段能够保留较多权值。计算公式:

式中,nt同样表示iou阈值。

经过多次的实验,针对每一种改进的非极大值抑制算法,对应的具体流程和各自的适应情况总结如下:

(1)针对线性加权方法,通过置信度降序,筛选某一类中置信度最高的边框作为最优边框,比较下一个边框的iou与既定阈值nt,当小于该阈值时,置信度分值不变;否则置信度阈值降低为a(1-iou)的比例,即iou越大,惩罚力度越大。循环操作,直到所有待定边框的置信度小于给定的置信度阈值threshold,则舍弃,记录历史最优值。该方法适用于重复边框较多、时间复杂度低、快速筛选结果的情景,即惩罚的力度较大,很快筛选完毕,但得到的效果并不太理想。

(2)针对高斯加权法,同样筛选出最优置信度边框,但无需设定nt的阈值,通过指数函数递减,即iou越大,置信度分值递减越大,并且设定的σ值控制着递减的程度。循环比较,置信度得分,当小于既定置信度阈值threshold,剔除这些冗余框;否则保留置信度高的最优框。该方法适用于预测产生的边框数量中等、时间要求不高的、数量统计准确的情况,并且平滑过渡的筛选有助于得到较好的回归框,虽然时间复杂度较线性差,但是得到的结果较优。

(3)针对指数加权法,同样比较次优置信度边框与最优边框的iou,设定一定的阈值nt。当小于该阈值时,置信度分值不变;否则置信度阈值降低为该指数呈现递减的效果。直到所有的框都检测完毕,保留置信度大于阈值的建议框。该方法适用于保留较多回归框、删选部分冗余框的情景,可应用于只需检测目标有无,不需统计数量的情况,因此效果比线性和高斯加权法差。

所以根据不同的条件和适用场合可以选择不同的计算方法来降低其置信度。

本发明的优点是:

基于在线样本挖掘与负难分样本挖掘相结合的技术,最突出的特点是在不扩充样本的情况下,放宽负样本的定义,通过样本本身在线挖掘出更多的难训练样本;设置了正负样本比例,合理而简便地计算损失最大、难训练的、罕见的样本;对分类、边框回归的损失进行了平衡化处理,能够满足训练损失的持续降低。其次针对多目标重叠漏检问题,通过改进的非极大值抑制,采用三种不同方式引入罚函数思想减低其置信度;经实验对比,得出采用高斯加权法对模型效果最好,提升了召回率,解决了多目标漏检问题。该改进算法还可延伸到其他领域的检测方面,诸如产品缺陷检测方面(链条重叠漏检问题)、行人检测问题、物流运输车辆统计问题等等。

附图说明

图1是本发明的不同尺寸anchor产生建议框的流程;

图2是本发明的筛选的难分样本反向传递过程;

图3是本发明的增设的ohem模块;

图4是本发明的改进的非极大值抑制算法流程;

图5a~图5f是本发明的nms高斯改进前后的损失收敛曲线与学习速率图像,其中图5a是rpn层分类损失,图5b是rpn层边框回归损失,图5c是全连接层分类损失,图5d是全连接层边框回归损失,图5e是总损失,图5f是调整的学习速率策略;

图6是本发明的改进的高斯nms检测效果。

具体实施方式

本发明针对样本问题提供了一种在不增加样本情况下的在线样本挖掘技术和负难分样本挖掘相结合的技术,使模型能够针对现有的难分样本,有针对性地学习其特征,达到模型进一步提升泛化性、鲁棒性的效果。

为实现上述目的,本发明采用以下技术方案:

一种基于难分样本挖掘的fasterrcnn目标检测方法,包括如下步骤:

步骤一,基于深度学习的图像目标检测;

目前,基于深度学习的图像目标检测模型大多基于卷积神经网络,所以本发明主要基于fasterrcnn进行分析,并且提出一种合理的改进后的方法。

fasterrcnn采用了softmaxloss和smoothl1loss对分类概率和边框回归联合训练,损失函数公式为:

其中,ncls=256表示前景的个数,而边框回归个数nreg=2400是最后特征图滑动的最大维度数量40×60;i表示某一个建议框;pi表示预测出对应类别的概率,包括前景、背景;表示前景与背景的取值,记前景背景以此计算目标边框回归的损失;ti表示该建议框的坐标信息,即中心点坐标和建议框宽高ti=(xi,yi,wi,hi),而表示真正对应的目标物体信息,同样的而λ平衡着边框回归和分类损失的权重;lcls为softmax分类损失函数,边框回归损失采用smoothl1的方法。

如上方法训练到一定程度,会产生对难训练的样本数据不足,缺乏对其训练等的问题。但是,样本挖掘能够解决难分样本训练问题。所以对步骤一中的方法进行如下几个步骤的改进。

步骤二,基于在线样本挖掘方法,本发明采用的关键参数调整设置为:

(1)设定难分样本的筛选机制。每次迭代筛选的难分样本是根据当前的总损失l({pi},{ti})降序排列,并且筛选前b/n个样本量,其中b=64,n为每次训练的图片张数n=1,这样训练的反向传播速度更快,因为只有少量需要调整的梯度。

(2)提高运算速度。在反向传递时,筛选的难分样本是由前向损失计算得来,通过非难分样本损失置0操作,并不能减少模型显存量。所以反向传递筛选出b/n难分样本进行梯度传递,训练的显存容量从3527m减少到3057m。

(3)在rpn层和最后全连接层同时增加ohem模块。由于良好的分类结果取决于精确的目标定位,即建议框的产生,所以对rpn层也增加ohem模块,有利于边框回归出最精确的位置,更是提高了分类的特征提取的有效性。

(4)适当的调整分类损失和边框回归损失的权重。在损失函数公式中,分类损失lcls和边框回归损失lreg是不均衡的,ncls=256是分类的个数,而nreg=2400是最后特征图滑动的最大维度,两者取倒数相差约10倍,因此取λ=10,这样有利于在回归较好边框的同时,有针对性地学习相应的目标特征。

(5)调整非极大值抑制(nms)算法。经典的非极大值抑制算法不能很好地保留相邻或重叠的多目标检测框,导致目标检测的召回率降低。因此,本发明改进的非极大值抑制算法采用了分类的置信度惩罚机制,在去除冗余的建议框的同时还很好的保留了建议框,并进一步提高了map。具体的操作在步骤三中讲到。

(6)数据增强工作提高了模型的泛化能力。训练时通过随机左右镜像翻转和光照饱和度调节,增加样本多样性,防止过拟合。为提高模型对不同尺寸图像的检测能力,在训练时使用了多尺度训练,将图像的短边设置{224,416,480,512,600,672,900}的随机尺寸,另一边等比例放缩。样本的增强工作也进一步地提高了map。

(7)调整了学习率的策略。将学习速率的下降点设置为40k,相当于8个epoch,并且此后隔20k个迭代次数再下降一次学习速率,这样有利于提高前期的全局范围搜索能力,避免陷入局部极小值点;同时,后期采用的较小学习速率,进行极小值的精细化调整,有利于损失的一降再降。

步骤三,负难分样本挖掘是在难分样本基础上通过调整训练中rpn形成的mini-batch正负样本比例为1:3,进行训练。因为经过多次实验发现,比例为1:3时,在模型的表现力都是最好的,其具体策略为:

(1)取消负样本的阈值限制。在原先的fasterr-cnn中,判定为背景的机制是根据rpn产生的候选建议框与真实框之间的交并比iou的大小进行设定,当iou的比例在[0.1,0.5)时,被认为是背景的建议框。这比例设置的不足之处在于忽略了低于0.1以下的罕见、损失较大、重要的难分负样本,这些特征没能很好的被学习。因此,本发明设置判定背景的阈值为[0,0.5)。设置了正样本的阈值为iou值最大的一个,或者iou的阈值在[0.7,1.0]范围。

(2)设置难分正负样本的比例1:3。如前所述,正负样本同时兼顾,并且更多地学习背景信息,能够提高模型在特定背景环境下定位检测目标的能力。并且设置了每次的目标图片批次大小为64,则正样本的数量为16,负样本的数量为48。

(3)同时考虑到预测出的正样本与标签存在多个重复的情况,采用了非极大值抑制方法,采用0.7的阈值,当目标与标签的iou在0.7以下时,则予以删除。

对步骤三中的负难分样本挖掘参数的设置进行总结如下:

(7)参数名称:fg_thresh;代表的含义:正样本iou阈值;参数取值:[0.7,1.0];

(8)参数名称:bg_thresh_lo;代表的含义:负样本iou阈值;参数取值:[0,0.5);

(9)参数名称:hnem_nms_thresh;代表的含义:非极大值抑制阈值;参数取值:0.7;

(10)参数名称:hnem_batchsize;代表的含义:图片目标批次大小;参数取值:64;

(11)参数名称:rpn_fg_fraction;代表的含义:正样本比例;参数取值:0.25;

(12)参数名称:rpn_bg_fraction;代表的含义:负样本比例;参数取值:0.75。

步骤四,剔除冗余框,避免损失的多重计算。采用的是改进后的非极大值抑制算法将rpn层网络生成的建议框合理的去除冗余。具体的操作为:

避免粗鲁地删除iou大于阈值的建议框,采取的改进方式是降低其置信度。采取的计算方法有线性加权、高斯加权法、指数加权法。

其中,线性加权的计算方法是将iou大于阈值的降低其置信度,即引入罚函数的思想:

式中,si表示当前所属类别的置信度得分,a表示权值系数,0<a≤1,bm表示置信度得分最高所对应的边框,bi表示当前的边框,iou(bm,bi)表示两者的交并比,nt表示所给定的阈值。

而采用高斯加权法的计算公式为:

式中,σ的取值不同影响罚函数的惩罚力度,高斯加权函数相比线性加权具有平滑过渡等特点。

指数加权法同样采用了一定的阈值,当其iou大于该阈值时,对其进行惩罚。相比线性加权法,在阈值处具有平滑过渡的特点;相比高斯加权法,在阈值前一阶段能够保留较多权值。计算公式:

式中,nt同样表示iou阈值。

经过多次的实验,针对每一种改进的非极大值抑制算法,对应的具体流程和各自的适应情况总结如下:

(1)针对线性加权方法,通过置信度降序,筛选某一类中置信度最高的边框作为最优边框,比较下一个边框的iou与既定阈值nt,当小于该阈值时,置信度分值不变;否则置信度阈值降低为a(1-iou)的比例,即iou越大,惩罚力度越大。循环操作,直到所有待定边框的置信度小于给定的置信度阈值threshold,则舍弃,记录历史最优值。该方法适用于重复边框较多、时间复杂度低、快速筛选结果的情景,即惩罚的力度较大,很快筛选完毕,但得到的效果并不太理想。

(2)针对高斯加权法,同样筛选出最优置信度边框,但无需设定nt的阈值,通过指数函数递减,即iou越大,置信度分值递减越大,并且设定的σ值控制着递减的程度。循环比较,置信度得分,当小于既定置信度阈值threshold,剔除这些冗余框;否则保留置信度高的最优框。该方法适用于预测产生的边框数量中等、时间要求不高的、数量统计准确的情况,并且平滑过渡的筛选有助于得到较好的回归框,虽然时间复杂度较线性差,但是得到的结果较优。

(3)针对指数加权法,同样比较次优置信度边框与最优边框的iou,设定一定的阈值nt。当小于该阈值时,置信度分值不变;否则置信度阈值降低为该指数呈现递减的效果。直到所有的框都检测完毕,保留置信度大于阈值的建议框。该方法适用于保留较多回归框、删选部分冗余框的情景,可应用于只需检测目标有无,不需统计数量的情况,因此效果比线性和高斯加权法差。

所以根据不同的条件和适用场合可以选择不同的计算方法来降低其置信度。

为了证实本发明方法的可行性,根据以上的参数设计,进行如下实验:

通过在voc2007与voc2012的公共数据集上进行实验,其中具有20个类别+背景等于21分类问题,训练集五千多张,测试集五千多张。对比了采取不同条件下的在线样本挖掘与负难分样本挖掘的策略组合,最后对实验结果进行分析如下:

以经典的fasterrcnn目标检测方法作为参考:

(1)只在最后全连接层增设ohem模块或者只在rpn层增设ohem模块时,效果都没有得到提升;

(2)将rpn层和最后全连接层都增设ohem模块,并采用随机正负样本比例的在线样本挖掘方法时,边框回归的损失权重=1:1,效果提升了;

(3)在(2)的基础上将rpn层分类:边框回归的损失权重设置为1:10,即λ=10的方法,采用两类损失平衡后,进一步提升了1.3%,相比原来提升了1.8%,可见均衡两者的损失有利于模型的训练;

(4)将正负样本的随机比例去除,设置为1:3的比例,即负难分样本挖掘技术,且λ=10,效果又提升了0.4%,而其他比例没有显著提升,说明负难分样本挖掘在模型训练中起到一定作用;

(5)采用了改进的nms线性加权算法,通过多次实验选择最佳的参数设置为a=1、nt=0.2、threshold=0.001;进一步提升了1.3%;

(6)采用高斯加权,通过对比分析,设置σ=0.3,threshold=0.003,提升的目标检测物体大多是集群分布的物体,如狗、人、鸟、羊、植物,分别提升了3.1%、7.6%、9.1%、1.3%、24.8%,导致整体的map提升6.3%,相比原来提升4.4个百分点;

(7)采用指数加权法,设置nt=0.1、threshold=0.0001,提升效果比(5)和(6)两种方法小;

(8)在最好的nms高斯改进方法基础上调整了学习速率策略,能够对损失进行再次下降(附图5),map相比原来提升了4.5;

(9)采用voc2012的训练样本,在07的测试集上测试,相当于增加更多的训练样本,得到3.1百分点的提升;

(10)在(9)基础上采用高斯nms的方法进行测试,map提升了1.8个点。由损失收敛曲线分析,可以发现调整后的学习速率策略能够使边框回归和分类的损失不断下降;

(11)因原先按照faterrcnn中的学习速率调整策略,在迭代30k次数时下降一次学习速率,实验中分析发现该策略并不能很好地寻求全局极小值点。因此,增加了前期搜索的时长,将学习速率的下降点设置为40k,有利于避免陷入局部极小值点。

通过以上实验结果分析可知,采用ohem和hnem相结合的方法以及改进的nms和训练策略在保有原数据集下可以得到较好的模型检测效果,提高4.5个百分点。其中,采用改进的高斯函数非极大值抑制算法,在原模型基础上提升1.8个百分点,能够使模型的召回率得到显著提升,对成群的目标物体检测具有较好的适用性。

改进的nms算法的定位效果如附图6所示,分析可知,该改进算法对多目标重叠的检测效果较传统nms算法在目标检测上有较大的提升,降低了目标物体漏检的风险。使得召回率指标得到提升,单个的p-r曲线面积(ap)较先前有了进一步增大的优势,导致整体的map获得了较好的结果。

本说明书实施例所述的内容仅仅是对发明构思的实现形式的列举,本发明的保护范围不应当被视为仅限于实施例所陈述的具体形式,本发明的保护范围也及于本领域技术人员根据本发明构思所能够想到的等同技术手段。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1