基于深度学习的目标检测模型训练方法、设备及存储介质与流程

文档序号:22547752发布日期:2020-10-17 02:19阅读:92来源:国知局
基于深度学习的目标检测模型训练方法、设备及存储介质与流程

本发明涉及深度学习目标检测技术领域,尤其涉及一种基于深度学习的目标检测模型训练方法、电子设备及计算机可读存储介质。



背景技术:

随着深度学习技术的快速发展,基于深度学习的一体化目标检测方法也已经取代传统的特征提取+特征分类目标检测方法,其在多个领域中都得到了广泛应用。由于基于深度学习的目标检测算法具有高召回率、低误检率的特点,且其在专门的硬件平台上经网络结构优化之后,可以进行实时处理。在汽车碰撞预警系统中,也应用基于深度学习的目标检测方法来检测目标车辆,以判断目标车辆与当前车辆发生碰撞的可能性,进而作出相应的反应措施,以降低因汽车碰撞事故而造成的损失。

但是,基于深度学习的目标检测需要大量的标注数据,例如需要几万张、甚至几十万张、几百万张的标注图像,如果将图像中的所有目标都标注出来,标注工作将变得非常繁重。例如,在车辆前向碰撞预警系统中,由于位于当前车辆前方的很多目标之间会相互遮挡,因此在图像中只能看到被遮挡目标的一小部分;此时,若将图像中的所有目标都进行标注,标注工作量将非常大。又因为当前车辆只会与最其最接近的前车碰撞,若选择不标注自车前方较远的车辆,也是合理的方案。但,此种做法会导致网络输出的目标置信度变低。此外,由于目标标注规范的升级,原本不需要标注的目标在将来也可能变得需要标注,若重新进行标注将需消耗大量的人力和时间。

此外,在目标集中还可能会存在一些相似的类别。同时,还会存在一些类别标注错误的情况。而在利用分类损失函数进行分类损失计算时,分类损失函数又只最大化一个类别,而最小化其它不同类别,如果将相似的类别简单地作为不同的类别进行处理,相似的类别的置信度会被抑制,导致置信度变低。



技术实现要素:

本发明的目的在于提供一种基于深度学习的目标检测模型训练方法、电子设备及计算机可读存储介质,以提高目标检测模型的性能。

为实现上述目的,本发明提供了一种基于深度学习的目标检测模型训练方法,包括:数据集预处理阶段,对包含有目标标注的训练图像进行测试,获得每一所述训练图像包含的目标;比对所述目标与所述目标标注,获得每一所述训练图像包含的未标注目标和已标注目标。训练阶段,利用目标检测模型获得所述目标对应的各个特征点的预测类别、位置及目标度,所述目标度为一用于区分背景和目标的二分类分支的输出值;依据所述已标注目标的损失和所述未标注目标的分类损失获得总损失值;依据所述总损失值调整所述目标检测模型的网络参数。

与现有技术相比,本发明找出训练图像中的未标注目标,然后计算未标注目标的分类损失,并忽略未标注目标的其他损失(定位损失、目标度损失等),然后将未标注目标的分类损失作为总损失的一部分进行训练。训练后的目标检测模型具有更好的性能,提高了目标检测的准确率和召回率。

较佳地,所述未标注目标的分类损失为由所述未标注目标对应的各个特征点的分类损失加权计算获得。

更佳地,所述未标注目标对应的各个特征点的分类损失权重为依据所述二分类分支输出的目标度获得。

具体地,将所述未标注目标对应的各个特征点的真值设为背景,所述未标注目标对应的各个特征点的分类损失权重为(1-objectness)p,其中,objectness为所述目标度,p为一大于0的实数。

具体地,所述基于深度学习的目标检测模型训练方法还包括:预先在所述目标检测模型中添加一所述二分类分支。

具体地,所述特征点的实际类别包括正样本和负样本,所述已标注目标的损失包括正样本的分类损失、负样本的分类损失、正样本的定位损失、正样本的目标度损失及负样本的目标度损失。

在一实施例中,通过以下方法计算正样本的分类损失:设置各个类别的相似度矩阵,所述相似度矩阵中的主对角线的各个元素的取值为1,其它元素为依据类别相似度在[0,1]区间取值,类别相似度越大,取值越小;将所述相似度矩阵作为各个类别的分类损失权重进行加权计算获得正样本的分类损失。

在另一实施例中,通过以下方法计算正样本的分类损失:计算每个特征点各个类别对应的softmax函数的最大值,将softmax函数的最大值作为该特征点各个类别的分类损失权重进行加权计算获得正样本的分类损失。

在又一实施例中,通过以下方法计算正样本的分类损失:设置各个类别的相似度矩阵和计算每个特征点各个类别对应的softmax函数的最大值,所述相似度矩阵中的主对角线的各个元素的取值为1,其它元素为依据类别相似度在[0,1]区间取值,类别相似度越大,取值越小;依据公式计算正样本的分类损失,其中,l表示正样本的分类损失,w表示softmax函数的最大值,表示所述相似度矩阵,lj表示各类别的损失,ct表示特征点的实际类别。

在一实施例中,通过以下方法划分正样本和负样本:计算每个目标标注与所有特征点的预测框的交并比;将各个所述交并比分别除以其中最大的一所述交并比,以获得归一化的交并比;若所述归一化的交并比大于第一阈值,将该对应的特征点划分为正样本,否则,划分为负样本。

在另一实施例中,通过以下方法划分正样本和负样本:查找位于目标标注的边界框内的特征点,并判断所述目标的尺寸是否符合其所在网络层的尺寸范围;若找到位于目标标注的边界框内的特征点,且所述目标的尺寸符合其所在网络层的尺寸范围,将该特征点划分为正样本;否则,划分为负样本。

较佳地,所述基于深度学习的目标检测模型训练方法还包括:计算各所述特征点在所述目标标注的边界框中的中心度;将各个所述中心度分别除以其中最大的一中心度,以获得归一化的中心度;若所述归一化的中心度小于第二阈值,所述归一化的中心度对应的特征点的损失权重设为零,否则,设为(0,1]区间的正数。

为实现上述目的,本发明还提供了一种电子设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时,执行如上所述的基于深度学习的目标检测模型训练方法。

为实现上述目的,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序可被处理器执行以完成如上所述的基于深度学习的目标检测模型训练方法。

附图说明

图1为本发明基于深度学习的目标检测模型训练方法的流程图。

图2为本发明各实施例训练目标检测模型后获得的map对照表。

图3为目标标注的边界框的坐标编码示意图。

图4为电子设备的组成结构框图。

具体实施方式

为了详细说明本发明的技术内容、构造特征,以下结合具体实施方式并配合附图作进一步说明。

本发明涉及基于深度学习的目标检测模型训练方法。利用训练图像对目标检测模型进行训练,以调整目标检测模型的参数,从而获得性能更优良的目标检测模型。以下,将参考附图详细描述本发明的各个实施例。

实施例一:

首先,参考图1描述本发明的基于深度学习的目标检测模型训练方法。如图1所示,基于深度学习的目标检测模型训练方法包括以下步骤:

s101,对包含有目标标注的训练图像进行测试,获得每一训练图像包含的目标。具体的,对包含有目标标注的训练图像进行测试时,可以是借助外部公开数据集(例如coco数据集等)来对训练图像进行测试;也可以是直接将训练图像输入至已训练的目标检测模型中,通过目标检测模型对训练图像进行测试,此时,将会把置信度阈值设置得较低以降低漏掉某些目标的可能性。具体的,可以根据算法的召回率设置阈值,如召回率为99%对应的置信度。

s102,比对目标与目标标注,获得每一训练图像包含的未标注目标和已标注目标。即是,将获得的目标与训练图像中的目标标注进行匹配,若存在某一目标标注与该目标的交并比大于阈值,则该目标为已标注目标;反之,则为未标注目标。

s103,对已有的训练图像进行数据增强,例如将训练图像进行水平翻转、旋转、变换色彩等,以扩充训练图像的规模,满足目标检测模型对训练数据的需求量。

s104,将s103获得的训练图像输入至目标检测模型的相应网络层,获得目标对应的各个特征点的预测类别、位置及目标度(该位置包含目标的概率)。其中,目标检测模型中预先添加有一用于区分训练图像中的背景和目标的二分类分支,二分类分支依据区分结果输出前述目标度。

s105,基于目标损失函数获得已标注目标的损失和未标注目标的分类损失,并依据已标注目标的损失和未标注目标的分类损失获得总损失值,忽略未标注目标的定位损失和目标度损失。其中,未标注目标的分类损失为由未标注目标对应的各个特征点的分类损失加权计算获得,以获得更高精度的分类损失计算结果,而未标注目标对应的各个特征点的分类损失权重为依据前述二分类分支的输出的目标度获得。具体而言,计算未标注目标的分类损失具体为:分别计算未标注目标对应的各个特征点的分类损失(如何计算特征点的分类损失为现有技术),再求得各个特征点的分类损失与其对应的分类损失权重的乘积,然后将各个乘积求和,从而获得未标注目标的分类损失。在该实施例中,将未标注目标对应的各个特征点的真值设为背景,未标注目标对应的各个特征点的分类损失权重为(1-objectness)p,其中,objectness为二分类分支输出的目标度,目标度objectness为0(代表背景)或1(代表目标),p为一大于0的实数,通常取值为(0,2]。附带一提的是,未标注目标实际上有可能是真的目标,也有可能是背景,在该实施例中,是先将未标注目标对应的各特征点视为背景,若目标度objectness为1,则说明不该将其视为背景,故分类损失权重(1-objectness)p为0,以降低未标注目标的分类损失对损失计算结果的影响。

具体的,特征点的实际类别包括正样本和负样本,已标注目标的损失包括正样本的分类损失、负样本的分类损失、正样本的定位损失、正样本的目标度损失及负样本的目标度损失。根据特征点的实际类别与预测类别之间的偏差程度获得分类损失(现有技术),根据特征点的实际位置与预测位置之间的偏差程度获得定位损失(现有技术),以及根据目标度与该特征点实际上是否为目标获得目标度损失(现有技术)。

s106,依据总损失值调整目标检测模型的网络参数,并重复s103-s105,直至总损失符合预设条件后结束训练。举例而言,可以使用bp(backpropagation)算法对目标检测模型进行网络参数更新。

实施例二:

在训练目标检测模型时,需要计算训练图像中每个位置的真值(背景或某个类别)。在anchor-based算法中,通常是计算目标标注的边界框(anchor)与预测框的交并比(intersectionoverunion,iou),若iou大于预设阈值,则将其设置为正样本,否则为负样本。由于目标的平移和大小等因素的影响,某些目标与anchor的iou有可能会小于预设阈值,若直接依据iou来划分正负样本,将会导致正样本的漏检。在anchor-free的算法中,则是在判断出目标的大小处于该层网络的尺度范围内,且有找到目标标注的边界框内的特征点时,将该特征点设为某个类,否则为背景。由于处于目标的角落位置的特征点的感知范围大部分为背景,如果将其设置为正类,会使学习难度变大,而有些目标又可能只包括有处于角落位置的这些特征点,若将其设置为背景,又会导致正样本的漏检问题。

在该实施例中,则是在实施例一的基础上作了进一步的改进,以解决漏检问题。

具体的,在anchor-based算法,通过以下方法划分正样本和负样本:首先,对于训练图像中的每个目标,分别计算每个目标标注的边界框(anchor的边框)与所有特征点的预测框(目标模型预测到的目标框)的交并比iou。然后,将获得的各个交并比分别除以其中最大的一交并比,以获得归一化的交并比niou;即,其中,n表示anchor的数量。最后,比较归一化的交并比niou与第一阈值(依据实际情况进行设置的一数值)的大小;若niou大于第一阈值,将该对应的特征点划分为正样本;反之,划分为负样本。

具体的,在anchor-free算法,则是通过以下方法划分正样本和负样本:首先,查找位于目标标注的边界框内的特征点,并判断目标的尺寸是否符合其所在网络层的尺寸范围,若找到位于目标标注的边界框内的特征点且目标的尺寸符合其所在网络层的尺寸范围,将该特征点划分为正样本;否则,划分为负样本。

进一步地,在该实施例中,还计算目标对应的各特征点在目标标注的边界框中的中心度centerness,其中,式中l,r,t,b分别为特征点的所在位置到目标标注的边界框四条边的距离(如图3所示)。然后,将各个中心度分别除以其中最大的一中心度,以获得归一化的中心度ncenternessi;即其中,n表示目标标注的边界框内特征点的数量。最后,比较归一化的中心度ncenternessi与第二阈值(依据实际情况进行设置的一数值)的大小;若ncenternessi小于第二阈值,则不计算损失,即是将归一化的中心度对应的特征点的损失权重设为零,从而减少离中心点较远的特征点的训练,以提高训练效率;否则,将该特征点的损失权重设为(0,1]区间的正数。

实施例三:

在该实施例中,是在实施例二的基础上作进一步的设计,其在进行正样本的分类损失计算时,将类别的相似度考虑进去。例如,目标为行人时,那么将会使骑行的人被判断为背景的概率低一些。

具体的,首先,设置各个类别的相似度矩阵,相似度矩阵中的主对角线的各个元素的取值为1,其它元素为依据类别相似度在[0,1]区间取值,类别相似度越大,元素取值则越小,以减小元素之间的相互影响。然后,对每一特征点计算每个类别的分类损失,最后再分别与相似度矩阵取乘积后进行加和获得正样本的分类损失。例如,相似度矩阵如下所示:

对于负样本的分类损失,该实施例则是没有考虑类别相似度,而是直接计算分类损失(现有技术)。

此外,对于某一特征点,若其所有类别的置信度只有一个很大,其余的都很小,则说明该特征点分类正确的可能性较大;若其所有类别的置信度有几个都很大,则说明存在类别相似或标注错误的可能。为此,本实施例还进一步提出一种自适应加权的方式来结合相似度矩阵进行正样本的分类损失计算。

具体的,先计算各特征点的每个类别的损失,得到{li,1≤i≤k};然后,将每个类别的损失分别乘以该类别对应的softmax函数的最大值,得到{wli,1≤i≤k};然后,将得到的乘积分别与相似度矩阵相乘;最后,再将相乘结果进行求和。即是正样本的分类损失其中,w表示softmax函数的最大值,表示相似度矩阵,lj表示类别的损失,ct表示特征点的实际类别(即是正样本或负样本)。

当然,在一些实施例中,也可以是仅依据各个类别对应的softmax函数的最大值来计算正样本的分类损失,而不考虑相似度矩阵。

为验证本发明对目标检测模型的训练效果,申请人还在前向碰撞预警系统上进行了试验。具体采用了5000张图像作为测试集进行测试,测试集中包含有11个目标类别,包括各种不同车型的机动、两轮车、三轮车及行人等。申请人选用一种anchor-free算法作为基准算法,并分别采用实施例一、实施例二、实施例三对目标检测模型进行训练。将目标检测领域的通用指标map(meanaverageprecision)作为评价指标,map对照表如图2所示。由图2可以得知,采用实施例一进行目标检测模型训练后,目标检测模型的map由76.5提升至78.0,map提升了1.5。采用实施例二进行目标检测模型训练后,map由78.0提升至78.5,相较于实施例一map又有了0.5的提升。而采用实施例三进行目标检测模型训练后,map由78.5提升至79.2,相较于实施例二map进一步提升了0.7。即是,采用实施例三进行训练后,map相较于基准算法提升了2.7,目标检测模型具有了更好的性能。

实施例四:

该实施例提供了一种电子设备200,如图4所示,电子设备200包括处理器210、存储器220以及存储在存储器220中且被配置为由处理器210执行的计算机程序,例如,基于深度学习的目标检测模型训练程序。处理器210执行计算机程序时,执行上述各个实施例中的目标检测模型训练方法。该电子设备200可以是台式计算机、笔记本电脑等任意具有数据处理能力的计算设备。电子设备200也不限于包括处理器210、存储器220。本领域技术人员可以理解,图4所示示意图仅仅是电子设备200的示例,并不构成对电子设备200的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括输入输出设备、网络接入设备、总线等。

实施例五:

该实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器210执行时,完成上述各个实施例中的目标检测模型训练方法。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读存储介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom)、随机存取存储器(ram)等。

以上结合最佳实施例对本发明进行了描述,但本发明并不局限于以上揭示的实施例,而应当涵盖各种根据本发明的本质进行的修改、等效组合。

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