目标检测方法、电子设备和存储介质与流程

文档序号:25342941发布日期:2021-06-04 21:43阅读:134来源:国知局
目标检测方法、电子设备和存储介质与流程

1.本申请涉及目标检测技术领域,尤其涉及一种目标检测方法、电子设备和存储介质。


背景技术:

2.常见的目标检测分为粗粒度目标检测和细粒度目标检测。其中,粗粒度目标检测是指针对不同类别的目标检测,而细粒度目标检测是指对同一类别内不同实例的检测。例如,对猫、狗、鸟等不同类别动物的检测为粗粒度目标检测,而对同一动物类别内,如狗类别内的不同实例,如边境牧羊犬、贵宾犬、哈士奇等的检测为细粒度目标检测。目前,在细粒度目标检测中,由于训练样本中非背景特征之间的过拟合性,使得细粒度目标检测的准确率较低,存在检测效果较差的问题。


技术实现要素:

3.本申请提供了一种目标检测方法、装置、设备和存储介质,旨在提高目标检测中对细粒度类别检测的准确率,使得目标检测能够达到更好的检测效果。
4.第一方面,本申请实施例提供了一种目标检测方法,包括:
5.获取待检测的目标图像;
6.预训练细粒度目标检测模型,其中,预训练所述细粒度目标检测模型的过程包括基于间隔损失函数对预设目标检测模型进行再训练,所述间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定;
7.将所述目标图像输入预训练的所述细粒度目标检测模型进行目标识别,得到所述目标图像中目标对象的细粒度类别及位置。
8.第二方面,本申请实施例提供了一种电子设备,包括存储器和处理器;所述存储器用于存储计算机程序;所述处理器,用于执行所述计算机程序并在执行所述计算机程序时,实现如上述第一方面所述的目标检测方法。
9.第三方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述第一方面所述的目标检测方法。
10.本申请实施例提供了一种目标检测方法、电子设备和存储介质,通过预训练的细粒度目标检测模型对目标图像进行识别,由于预训练的细粒度目标检测模型的训练过程包括基于间隔损失函数对预设目标检测模型进行再训练得到,而间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定,其中,预设细粒度类别间的学习间隔使得预设目标检测模型的损失函数在模型再训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致预设目标检测模型在再训练过程中的模型复杂度比实际模型复杂度高。因此,可以有效避免细粒度识别场景下的过拟合现象,能够提高目标检测中对细粒度类别检测的准确性,进而使得目标检测能够达到更好的检测效果。
11.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请实施例的公开内容。
附图说明
12.为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1a是目标检测模型将输入图像进行划分得到的网格示意图;
14.图1b是目标检测模型基于focal loss预测目标对象位置信息框的过程示意图;
15.图2是本申请实施例提供的电子设备的示意图;
16.图3是本申请实施例提供的目标检测方法的一应用场景示意图;
17.图4是本申请实施例提供的目标检测方法的另一应用场景示意图;
18.图5是本申请实施例提供的目标检测方法的一实现流程示意图;
19.图6是细粒度目标检测模型的预训练过程示意图;
20.图7是本申请实施例提供的目标检测方法的另一实现流程示意图;
21.图8是本申请实施例提供的电子设备的示意性框图。
具体实施方式
22.下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
23.附图中所示的流程图仅是示例说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解、组合或部分合并,因此实际执行的顺序有可能根据实际情况改变。
24.在说明本申请实施例提供的目标检测方法之前,首先结合图1a和图1b对现有的细粒度目标检测方法以及细粒度目标检测原理进行示例性的说明。
25.首先,需要说明的是,细粒度目标检测是相对于粗粒度目标检测提出的,所谓粗粒度目标检测是针对从外观角度就可以看出差别非常大的对象类别检测,也称为类别级的目标检测。例如,针对猫、狗、鸟等动物类别的检测,或者例如针对树、花、草等植物类别的检测等都是类别级的目标检测。
26.而细粒度目标检测是针对同一类别内不同实例的检测,同一类别内各实例之间往往不具有特别明显的外观特征,也称为实例级的目标检测。例如,针对目标对象是狗类别中的哈士奇、萨摩、阿拉斯加的检测属于实例级的目标检测。
27.此外,目标检测需要同时预测目标对象的位置和类别,如图1a所示,图1a是目标检测模型将输入图像进行划分识别出目标对象的位置和类别的过程示意图。由图1a可知,在目标检测中,目标检测模型通常会将输入的图像信息划分成预设大小的网格,然后分别预测每个网格中是否包含有目标对象,并在预测到网格中包含有目标对象时,将包含有目标对象的网格分类为非背景类;如果预测到网格中不包含有目标对象,则将不包含有目标对
象的网格分类为背景类;目标检测模型将背景类和非背景类进行分离,进而预测目标对象的类别和位置。如图1a所示,图像中包含有两个物体,分别为第一目标对象101和第二目标对象102,将该图像输入目标检测模型后,目标检测模型首先将图像划分为等间隔大小的网格,然后分别预测每个网格中是否有目标对象,并在预测到有目标对象后,将图像分为背景类103和非背景类104,并在非背景类104中预测目标对象的位置信息,例如,图1a中通过位置标注框1011预测第一目标对象101的位置,通过位置标注框1021预测第二目标对象102的位置,最后目标检测模型输出标注了第一目标对象101的位置信息的第一位置框1012和标注了第二目标对象102的位置信息的第二位置框1022。需要说明的是,由于图像中大部分网格都是背景类,因此,在目标检测中将背景类称为容易学习的类。其中,容易学习的类是相对于难学习的类而言的,例如,相对于背景类为容易学习的类,则非背景类为难学习的类。通常,在同一副图像中,容易学习的类所占的分类损失较小,难学习的类所占的分类损失较大。
28.focal loss是目标检测中广泛使用的分类损失函数,如图1b所示,图1b是目标检测模型基于focal loss预测目标对象位置信息框的过程示意图。focal loss通过对各个位置信息框105进行加权的方式,来降低目标检测中容易学习的类(如背景类,非目标对象类)的分类损失占所有分类损失的比重,使得目标检测算法可以关注难学习的类(如非背景类,目标对象对应的类)。然而,由于细粒度目标检测是对同一类别中不同实例的检测,对应可以理解为难学习的类之间具有较高的相似性,导致使用focal loss作为分类损失函数进行细粒度目标检测时,容易学习到难学习的类自身的特征导致过拟合,而无法学习到同一类别的不同实例间真正用于分辨目标对象的判别特征,使得对细粒度目标对象的检测准确性不高。
29.例如,对应监测鸟类别中的实例啄木鸟时,啄木鸟作为目标检测中相对于背景类而言,为非背景类的难学习类别,具有都站在树干上的特征,使用focal loss作为分类损失函数进行检测时,会对站在树干上这一特征进行学习判别,可能就认为站在树干上的就是啄木鸟,而对啄木鸟真正的判别特征:是否具有较长的喙而不进行学习判别,导致对啄木鸟的检测不准确。
30.下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
31.请参阅图2所示,图2是本申请实施例提供的电子设备的示意图。本申请实施例提供的目标检测方法均适用于图2所示的电子设备201。如图2所示,本申请实施例提供的电子设备201包括目标检测系统2011和成像装置2012,其中,目标检测系统2011通过调用成像装置2012获取待检测的目标图像,将所述目标图像输入预训练的细粒度目标检测模型进行目标识别,得到所述目标图像中目标对象的细粒度类别;根据所述细粒度类别进行目标图像分类,输出分类结果。所述预训练的细粒度目标检测模型的损失函数为间隔损失函数,所述间隔损失函数与预设细粒度类别间的学习间隔相关,所述预训练的细粒度目标检测模型由对预设目标检测模型,基于所述间隔损失函数进行再训练得到。具体地,所述细粒度目标检测系统2011可以由安装于电子设备201上的app应用小程序、功能键或者快捷键快速启动。示例性地,本申请实施例提供的电子设备201可以是适用于各种目标检测应用场景下的终端设备或服务器;其中,终端设备可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字
助理和穿戴式设备等;服务器可以为独立的服务器,也可以为服务器集群。
32.此外,如图3所示,在目标检测应用场景中,电子设备201可以与其它服务器301通信连接,其中,服务器301可以用于训练细粒度目标检测模型,并将训练生成的细粒度目标检测模型发送给电子设备201,以使电子设备201根据细粒度目标检测模型进行目标识别。
33.其中,目标检测应用场景可以包括使用目标检测模型对图像进行分类检测的各种场景,例如安防监控、交通物流或者智慧城市等。
34.示例性地,如图4所示,图4是本申请实施例提供的目标检测方法应用于安防监控的场景示意图。在本实施例中,安防监控系统包括电子设备201与预先安装于待监控区域的监控设备401。其中,电子设备201与监控设备401通信连接,电子设备201上存储有监控设备401上传的监控图像,当需要将所述监控图像作为待识别的目标图像时,电子设备201可以通过目标检测系统调用成像设备获取所述监控图像,将所述监控图像输入预训练的细粒度目标检测模型进行目标识别,得到所述监控图像中监控对象的细粒度类别,进而根据所述细粒度类别对所述目标图像进行分类,并输出分类结果。在本实施例中,所述监控图像可以是监控设备401拍摄到的图像帧中的任意帧图像,该任意帧图像包括的监控对象可能是人、动物或者任何可疑的目标对象。例如,当有用户不小心将宠物(如哈士奇、金毛寻回犬或拉布拉多猎犬等)丢失了,可以通过该电子设备201获取监控设备401拍摄的监控图像,并对监控图像中包含的目标对象进行细粒度目标检测,确定所述监控图像中包含的目标对象的细粒度类别,进而根据所述目标对象的细粒度类别(如哈士奇、金毛寻回犬或拉布拉多猎犬等)对所述目标图像进行分类,得到包含有对应宠物的图像类别并输出。具体地,可以通过该电子设备201获取监控设备401拍摄的监控图像,并对监控图像中包含的目标对象基于预训练的细粒度目标检测模型进行细粒度目标检测,得到监控图像中包含的目标对象的细粒度类别及位置。在本实施例中,所述预训练的细粒度目标检测模型为基于预设细粒度类别间的学习间隔相关的间隔损失函数对预设目标检测模型进行再训练得到。其中,所述预设细粒度类别间的学习间隔为对应粗粒度宠物类别的具体实例(细粒度类别)之间的学习间隔,例如对应的粗粒度宠物类别为狗,则对应的预设细粒度类别间的学习间隔为对应宠物类别狗的细粒度类别如哈士奇、金毛寻回犬或拉布拉多猎犬等之间的学习间隔。具体地,预设目标检测模型可以是各种预设结构的神经网络模型。例如,预设目标检测模型可以是卷积神经网络模型、池化神经网络模型、插值神经网络模型、均值神经网络模型、标准方差神经网络模型、长短期记忆神经网络模组、门控循环神经网络模型等等。
35.具体地,基于预训练的细粒度目标检测模型对监控图像进行细粒度目标检测的过程包括:将监控图像输入预训练的细粒度目标检测模型中,通过预训练的细粒度目标检测模型预测监控图像包含的目标对象属于各预设细粒度类别的概率值,并根据目标对象属于各预设细粒度类别的概率值,得到监控图像包含的目标对象的细粒度类别(例如,哈士奇)。
36.在本实施例中,假设是针对包含有宠物类别图像的分类识别过程,所述预设细粒度类别为相对于粗粒度宠物类别的具体实例,例如,假设对应的粗粒度宠物类别为狗,则对应的细粒度类别可以包括哈士奇、金毛寻回犬或拉布拉多猎犬等具体实例;又如,假设对应的粗粒度宠物类别为猫,则对应的细粒度类别可以包括苏格兰折耳猫、布偶猫或者安哥拉毛等具体实例。可以理解地,根据对应目标对象的粗粒度类别不同(例如猫、狗、鸟等),对应的预设细粒度类别(猫的具体类别、狗的具体类别或者鸟的具体类别等)也不同。在本申请
的实施例中,随着应用场景的不同,对应预训练的细粒度目标检测模型的训练过程中,预设细粒度类别间的学习间隔不同,但是不同应用场景下预训练的细粒度目标检测模型的训练方法相同。
37.此外,由于预训练的细粒度目标检测模型由基于与预设细粒度类别间的学习间隔相关的间隔损失函数对预设目标检测模型进行再训练得到,而间隔损失函数使得目标检测模型在再训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致目标检测模型在再训练过程中的模型复杂度比实际模型复杂度高,因此,可以有效避免细粒度识别场景下的过拟合现象,能够提高目标检测中对细粒度类别检测的准确性,进而使得目标检测能够达到更好的检测效果。
38.请参阅图5,图5是本申请实施例提供的目标检测方法的一实现流程示意图。所述目标检测方法可以应用在图2所示的电子设备中。详述如下:
39.s501,获取待检测的目标图像。
40.在本申请的实施例中,待检测的目标图像可以是用户上传至电子设备的图像,也可以是其它设备发送至电子设备的图像,例如待监控区域的监控设备发送至电子设备的图像,还可以是用户选择并存储的开源图像;或者是电子设备通过成像装置(例如,相机)拍摄的图像;所述目标图像可以是包括待识别目标对象的一个或多个图像序列,该图像序列示出了目标对象的多个不同视点;或者所述目标图像可以是包括待识别目标对象的一个或多个视频序列,该视频序列示出了目标对象的多个不同视点;或者所述目标图像为包括待识别目标对象的一张或多张静止图像。
41.在电子设备获取待检测的目标图像的实施例中,电子设备通过细粒度目标检测系统调用成像装置,获取已存储在电子设备中的目标图像,或者通过成像装置拍摄目标图像。示例性地,如果所述目标图像中包含有与目标对象无关的信息较多,则可以对所述目标图像进行降噪处理,以减少与目标对象无关的信息对目标检测造成的影响。
42.在一实施例中,所述目标图像为用户从网络上选择的开源图像,该开源图像包含的目标对象为啄木鸟,用户想通过电子设备识别出该图像中的鸟具体是什么细粒度类别(假设用户不知道图像中的鸟是逐木鸟),用户需要将该目标图像存储在电子设备中,电子设备通过细粒度目标检测系统调用成像装置获取该目标图像。
43.s502,预训练细粒度目标检测模型,其中,预训练所述细粒度目标检测模型的过程包括基于间隔损失函数对预设目标检测模型进行再训练,所述间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定。
44.在本申请的一些实施例中,所述预设目标检测模型由基于细粒度目标检测数据集对深度检测神经网络进行训练得到,所述细粒度目标检测数据集包括预设数量的预先标注了目标对象信息的样本图片。其中,目标对象信息包括目标对象的粗粒度类别标签和目标对象的位置信息;目标对象的粗粒度类别标签是一个标量,例如,目标对象的粗粒度类别标签可以是1(例如,1代表目标对象的粗粒度类别为猫)、2(例如,2代表目标对象的粗粒度类别为狗)、3(例如,3代表目标对象的粗粒度类别为书)等,目标对象的位置信息是一个4维向量,可以表示为x、y、w、h;其中,x表示目标对象中心点的横坐标、y表示目标对象中心点的纵坐标、w表示目标对象的宽、h表示目标对象的高。
45.所述预设目标检测模型的输入为所述细粒度目标检测数据集中的样本图片,输出
为预测的目标对象位置框和目标对象属于各预设细粒度类别的可能程度。在本申请的实施例中,将目标对象属于各预设细粒度类别的可能程度表示为第一预测概率向量,例如第一预测概率向量可以表示为conf=(c1,c2,...,ci),其中i是预设的细粒度类别,ci对应的值越大,代表目标对象属于i类预设细粒度类别的可能性越大。
46.在所述预设目标检测模型的训练过程中,将所述预设目标检测模型预测的目标对象位置大小和类别与真实的目标对象位置大小和类别之间的差距通过损失函数量化为损失,用于优化所述预设目标检测模型的参数,使得所述预设目标检测模型可以更加准确地预测图片中的目标对象位置和类别。在测试或实际使用中,会将目标对象分类为可能程度最大(对应的第一预测概率值最大)的类别,例如当c2大于ci,其中,ci为第一预测概率向量中除为第2类。
47.此外,所述预设目标检测模型的损失函数包括预设类别损失函数,例如所述预设类别损失函数可以为交叉熵损失函数crossentropy、焦点损失函数focalloss或者多分类损失函数diceloss等。具体地,以focalloss为例进行简单解释,由于focalloss主要是针对训练样本不均衡以及样本难易程度不同提出的,通过改变不同类别训练样本的损失权重来提高模型的分类精度。具体地,在本申请的实施例中,focalloss主要考虑目标检测中背景类与非背景类目标对象数量不均衡的情况,在模型训练过程中,通过降低易学习的背景类的损失权重,使模型重点关注非背景类。然而,focalloss并未考虑细粒度目标检测情况下同一类别样本中目标对象之间的相似性例如,对于非背景类样本中公鸡和母鸡之间的相似性,以及同一类别样本中同一目标对象的不同实例之间的差异,例如非背景类样本中公鸡展开翅膀或者没有展开翅膀之间的差异、或者母鸡的正面与侧面等姿势的差异,使得以focalloss为分类损失函数的目标检测模型容易学习到不同实例之间自身的差异特征,如公鸡展开翅膀的姿势,而不是区分同一类别下不同实例间的关键特征,例如公鸡和母鸡的关键特征是是否具有鸡冠,而由于不同实例之间自身的差异特征会导致目标检测模型在训练过程中的模型复杂度会比实际模型复杂度高,从而导致目标检测模型出现过拟合现象。这样的目标检测模型虽然在训练数据集上表现不错,但是在测试或实际使用时检测的准确率较低。
48.在本申请的实施例中,如图6所示,图6是细粒度目标检测模型的预训练过程示意图。由图6可知,本申请实施例提供的细粒度目标检测模型的损失函数为预设间隔损失函数。具体地,该预设间隔损失函数为通过将预设细粒度类别间的学习间隔与预设类别损失函数(例如focalloss)相结合,提出的改进间隔损失函数,可以理解地,随着预设细粒度类别间的学习间隔以及预设类别损失函数的不同,对应的预设间隔损失函数也不同。例如,假设预设类别损失函数为focalloss,则对应的预设间隔损失函数为margin focalloss,假设预设类别损失函数为crossentropy,则对应的预设间隔损失函数为margin crossentropy,假设预设类别损失函数为diceloss,则对应的预设间隔损失函数为margin diceloss。其中,margin代表的是预设细粒度类别间的学习间隔,表示对基于预设类别损失函数的目标检测模型进行再训练的过程中,通过预设细粒度类别间的学习间隔来削弱训练样本中不同实例之间自身特征的作用,进而提高同一类别下不同实例间判别特征的学习。具体地,基于该margin focalloss对上述预设目标检测模型601进行再训练,得到细粒度目标检测模型602。其中,margin focalloss相较于focalloss,会在训练时主动降低样本属于预测类别的
预测概率,例如,假设目标检测模型识别出目标对象的预测类别为c2,则在模型输出预测类别向量后,将属于预先标注的目标对象所属的目标类别,假设为c2对应的可能程度(第一预测概率值)减小预设细粒度类别间的学习间隔margin,得到第二预测概率向量,以达到增大目标类别与非目标类别之间学习的差距。所述预测类别向量也就是上述的第一预测概率向量conf[1,2,...,n],此时目标检测模型若要正确判别目标对象所属的目标类别,需要使属于目标类别的预测概率值与属于非目标类别的预测概率值之间具有等于margin的差距,也就需要目标检测模型学习更能分辨不同类别的目标对象特征,从而削弱训练样本中目标对象本身特征的作用,使得目标检测模型601进一步挖掘和学习类别间不同实例的判别特征。其中,目标对象本身特征指的是同一类别下不同实例之间自身差异特征,如公鸡展开翅膀的姿势,或者母鸡卧地的姿势等,并不等于类别间不同实例的判别特征,如公鸡的鸡冠;所述预设细粒度类别间的学习间隔可以由用户预先进行设置,该预设细粒度类别间的学习间隔一旦设定,在目标检测模型601的再训练过程中为固定的参数,但是所述预设细粒度类别间的间隔可以由用户根据目标检测模型601输出的预测类别与实际标注类别之间的相似度的大小进行修改。
[0049]
在本申请的实施例中,在得到所述第二预测概率向量之后,为了使得目标检测模型进一步挖掘和学习类别间不同实例的判别特征,对所述第二预测概率向量进行归一化处理,得到输入所述目标检测模型601的训练样本中目标对象属于各预设细粒度类别的概率值,进一步根据所述训练样本中目标对象属于各预设细粒度类别的概率值,确定所述细粒度目标检测模型602的所述间隔损失函数,进而根据所述间隔损失函数更新预训练的所述目标检测模型61的参数,得到细粒度目标检测模型602。由于在目标检测模型601的再训练过程中,引入细粒度类别间的学习间隔,使得目标检测模型601在训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致目标检测模型601在训练过程中的模型复杂度比实际模型复杂度高,可以有效避免细粒度场景下模型的过拟合现象,进而提高细粒度模型识别的准确性。
[0050]
在一实施例中,假设所述预设目标检测模型对应的预设类别损失函数可以表示为:
[0051]
loss=

(1

p[target])
gamma log(p[target])
[0052]
则根据该预设类别损失函数和预设细粒度类别间的学习间隔确定的所述细粒度目标检测模型对应的预设间隔损失函数margin focalloss可以表示为:
[0053]
loss=

(1

p[target])
gamma log(p[target])

margin
[0054]
其中,loss表示所述细粒度目标检测模型的间隔损失值,p[target]表示目标对象属于类别target的预测概率值,margin表示预设细粒度类别间的学习间隔,gamma表示类别难度权重值。
[0055]
具体地,在得到所述间隔损失函数之后,基于间隔损失函数对预设目标检测模型进行再训练。示例性地,基于间隔损失函数对预设目标检测模型进行再训练,包括:基于该间隔损失函数调用预设的模型优化规则,更新所述目标检测模型的模型参数,得到所述细粒度目标检测模型。
[0056]
其中,预设的模型优化规则可以包括但不限于随机梯度下降算法(stochastic gradient descent,sgd)或扩展随机梯度下降算法(adaptive moment estimation,adam)。
可以理解地,sgd和adam是预设的模型优化规则中的两种,这两种算法仅仅用于说明模型优化规则,也可以使用其他的模型优化规则,在此不做具体限定。
[0057]
示例性地,假设预设的模型优化规则为sgd,则基于所述间隔损失函数调用预设的模型优化规则,更新所述目标检测模型的模型参数,得到所述细粒度目标检测模型,包括:将预定的样本图像输入所述目标检测模型,得到预定的所述样本图片对应的损失(所有位置框损失的均值);计算间隔损失函数对于所述目标检测模型参数的梯度(也就是导数),以预设步长,假设为lambda(预设步长为sgd的参数)延负梯度方向更新所述目标检测模型的参数,得到所述细粒度目标检测模型。例如,以所述目标检测模型的参数w为例,损失函数对于w的梯度为dw,则更新后的w参数为w

lambda*dw。
[0058]
需要说明的是,预训练所述细粒度目标检测模型的步骤可以在获取所述目标图像之前执行,也可以在获取所述目标图像的同时执行,还可以在获取所述目标图像之后执行,具体预训练所述细粒度目标检测模型的步骤与获取所述目标图像的步骤之间的执行流程可以根据实际应用场景进行灵活设置。
[0059]
s503,将所述目标图像输入预训练的所述细粒度目标检测模型进行目标识别,得到所述目标图像中目标对象的细粒度类别及位置。
[0060]
在本实施例中,将所述目标图像输入所述细粒度目标检测模型,所述细粒度目标检测模型识别出所述目标图像中目标对象的细粒度类别及位置,并输出。
[0061]
通过上述分析可知,本申请实施例提供的目标检测方法,通过预训练的细粒度目标检测模型对目标图像进行识别,由于预训练的细粒度目标检测模型的训练过程包括基于间隔损失函数对预设目标检测模型进行再训练得到,而间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定,预设细粒度类别间的学习间隔使得预设目标检测模型的损失函数在模型再训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致预设目标检测模型在再训练过程中的模型复杂度比实际模型复杂度高。因此,可以有效避免细粒度识别场景下的过拟合现象,能够提高目标检测中对细粒度类别检测的准确性,进而使得目标检测能够达到更好的检测效果。
[0062]
如图7所示,图7是本申请实施例提供的细粒度目标检测方法的另一实现流程示意图。由图7可知,本实施与图5所示实施例相比,s710与s501以及s730至s740与s502至s503的具体实现过程相同,不同之处在于,在s730之前还包括s720。其中,s720与s710为并列执行关系,可择一执行。详述如下:
[0063]
s710,获取待检测的目标图像。
[0064]
s720,基于预设的所述细粒度类别间的学习间隔和预设目标检测模型的损失函数,确定所述细粒度目标检测模型的间隔损失函数。
[0065]
在一实施例中,基于预设的所述细粒度类别间的学习间隔确定所述细粒度目标检测模型的间隔损失函数,可以包括:将预设数量的训练样本输入所述目标检测模型进行目标识别,得到所述训练样本中目标对象属于各预设细粒度类别的第一预测概率向量;基于预设的所述细粒度类别间的学习间隔更新所述第一预测概率向量,得到第二预测概率向量;对所述第二预测概率向量进行归一化处理,得到各个所述训练样本中目标对象属于各预设细粒度类别的概率值;根据各个所述训练样本中目标对象属于各预设细粒度类别的概率值,确定所述细粒度目标检测模型的所述间隔损失函数。
[0066]
其中,所述基于预设的所述细粒度类别间的学习间隔更新所述第一预测概率向量,得到第二预测概率向量,包括:利用所述第一预测概率向量中的目标预测概率值减去所述细粒度类别间的学习间隔,得到所述第二预测概率向量,所述目标预测概率值为预先标注的所述训练样本中目标对象所属的目标类别对应的第一预测概率值;所述第二预测概率向量包括所述目标预测概率值减去所述细粒度类别间的学习间隔得到的第二预测概率值和除所述目标预测概率值之外的其它所述第一预测概率值。
[0067]
示例性地,所述归一化指数函数包括softmax函数,对所述第二预测概率向量进行归一化处理,得到所述训练样本中目标对象属于各预设细粒度类别的概率值,包括:将所述第二预测概率向量输入所述softmax函数进行归一化处理,得到所述第二预测概率向量中各个向量值分别对应的映射值,所述第二预测概率向量中各个向量值分别对应的所述映射值为所述训练样本中目标对象属于各预设细粒度类别的概率值。
[0068]
在一实施例中,所述softmax函数表示为:
[0069][0070]
其中,p[i]表示目标对象是预设的第i类别的概率,conf[i]表示第二预测概率向量中第i类别的第二预测概率值。
[0071]
例如,将预设数量的训练样本输入所述目标检测模型后,得到任意训练样本中目标对象属于各预设细粒度类别的可能程度组成的向量:第一预测概率向量conf=(c1,c2,

,ck),其中,k是各个训练样本中目标对象所属的预测类别,ck是目标对象属于k类别的第一预测概率值。
[0072]
根据预先标注的所述训练样本中目标对象所属的目标类别target调整所述第一预测概率向量,具体地,将预先标注的所述训练样本中目标对象所属的目标类别对应的第一预测概率值(可能程度)减小所述细粒度类别间的学习间隔,即利用conf[target]=conf[target]

margin,更新第一预测概率向量,得到第二预测概率向量。将更新后的第二预测概率向量传入归一化指数函数softmax,归一化获得所述训练样本中目标对象属于各预设细粒度类别的概率p[i]。其中,p[i]大于0且所有p[i]的和为1。
[0073]
所述训练样本中目标对象属于各预设细粒度类别的概率p[i]构成概率向量p,进而根据概率向量p和预先标注的所述训练样本中目标对象所属的目标类别计算目标对象的分类损失。示例性地,将所述概率向量p和预先标注的所述训练样本中目标对象所属的目标类别代入间隔损失函数计算目标对象的分类损失,具体地,间隔损失函数可以表示为:
[0074]
loss=

(1

p[target])
gamma log(p[target])

margin
[0075]
其中,loss表示所述细粒度目标检测模型的间隔损失值,p[target]表示目标对象属于类别target的概率值,gamma表示类别难度权重值。
[0076]
具体地,p[target]越大,也就是表示模型预测该目标对象的类别的正确概率越大,

log(p[target])越小,则对应的损失值loss越小。(1

p[target])^gamma是目标对象分类损失的权重,p[target]越接近1,则该目标对象的分类准确率越大,该目标对象的分类学习越充分,目标对象分类损失权重(1

p[target])^gamma则越小,从而使得目标模型在再训练过程中可以关注其他还未充分学习的目标对象的类别特征。
[0077]
s730,预训练细粒度目标检测模型。
[0078]
其中,预训练细粒度目标检测模型的过程可以包括:对预设目标检测模型基于所述间隔损失函数进行再训练,得到所述细粒度目标检测模型。
[0079]
具体地,基于步骤s720中的间隔分类损失函数调用预设的模型优化规则如sgd、adam等,更新所述目标检测模型的参数,得到所述细粒度目标检测模型。其中,利用预设的模型优化规则更新所述目标检测模型的参数的过程,可参考上述图5实施例中的描述,在此不再赘述。
[0080]
s740,将所述目标图像输入所述细粒度目标检测模型进行目标识别,得到所述目标图像中目标对象的细粒度类别及位置。
[0081]
其中,所述细粒度目标检测模型的损失函数为间隔损失函数,所述细粒度目标检测模型由的训练过程包括基于间隔损失函数对预设目标检测模型进行再训练得到,而间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定,预设细粒度类别间的学习间隔使得预设目标检测模型的损失函数在模型再训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致预设目标检测模型在再训练过程中的模型复杂度比实际模型复杂度高。
[0082]
通过上述分析可知,本申请实施例提供的目标检测方法,通过预设细粒度类别间的学习间隔确定所述细粒度目标检测模型的间隔损失函数,进而基于所述间隔损失函数对预设目标检测模型进行再训练,得到细粒度目标检测模型后,基于所述细粒度目标检测模型对目标图像进行识别。由于细粒度目标检测模型的训练过程包括基于间隔损失函数对预设目标检测模型进行再训练得到,而间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定,预设细粒度类别间的学习间隔使得预设目标检测模型的损失函数在模型再训练过程中不会追求对训练样本中各实例自身差异特征的学习,从而不会导致预设目标检测模型在再训练过程中的模型复杂度比实际模型复杂度高。因此,可以有效避免细粒度识别场景下的过拟合现象,能够提高目标检测中对细粒度类别检测的准确性,进而使得目标检测能够达到更好的检测效果。
[0083]
请结合上述实施例参阅图8,图8是本申请实施例提供的电子设备201的示意性框图。
[0084]
示例性的,电子设备可以包括终端设备或服务器;其中,终端设备可以是手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等电子设备;服务器可以为独立的服务器,也可以为服务器集群。
[0085]
所述电子设备201包括处理器801和存储器802。
[0086]
示例性的,处理器801和存储器802通过总线803连接,所述总线803比如为i2c(inter

integrated circuit)总线。
[0087]
具体地,处理器801可以是微控制单元(micro

controller unit,mcu)、中央处理单元(central processing unit,cpu)或数字信号处理器(digital signal processor,dsp)等。
[0088]
具体地,存储器802可以是flash芯片、只读存储器(rom,read

only memory)磁盘、光盘、u盘或移动硬盘等。
[0089]
其中,所述处理器801用于运行存储在存储器802中的计算机程序,并在执行所述
计算机程序时实现前述的目标检测方法。
[0090]
示例性的,所述处理器801用于运行存储在存储器802中的计算机程序,并在执行所述计算机程序时实现如下步骤:
[0091]
获取待检测的目标图像;
[0092]
预训练细粒度目标检测模型;其中,预训练所述细粒度目标检测模型的过程包括基于间隔损失函数对预设目标检测模型进行再训练,所述间隔损失函数由基于预设细粒度类别间的学习间隔和预设目标检测模型的损失函数确定;
[0093]
将所述目标图像输入预训练的细粒度目标检测模型进行目标识别,得到所述目标图像中目标对象的细粒度类别及位置;
[0094]
根据所述细粒度类别进行目标图像分类,输出分类结果。
[0095]
在一实施例中,所述处理器801用于运行存储在存储器802中的计算机程序,并在执行所述计算机程序时,还实现如下步骤:
[0096]
基于预设的所述细粒度类别间的学习间隔和预设目标检测模型的损失函数,确定所述细粒度目标检测模型的间隔损失函数。
[0097]
在一实施例中,基于预设的所述细粒度类别间的学习间隔和预设目标检测模型的损失函数,确定所述细粒度目标检测模型的间隔损失函数,包括:
[0098]
将预设数量的训练样本输入所述预设目标检测模型进行目标识别,得到各个所述训练样本中目标对象属于各预设细粒度类别的第一预测概率向量;
[0099]
基于预设的所述细粒度类别间的学习间隔更新所述第一预测概率向量,得到第二预测概率向量;
[0100]
对所述第二预测概率向量进行归一化处理,得到各个所述训练样本中目标对象属于各预设细粒度类别的概率值;
[0101]
根据各个所述训练样本中目标对象属于各预设细粒度类别的概率值和预设目标检测模型的损失函数,确定所述细粒度目标检测模型的所述间隔损失函数。
[0102]
在一实施例中,所述基于间隔损失函数对预设目标检测模型进行再训练,包括:
[0103]
基于所述间隔损失函数调用预设的模型优化规则,更新所述目标检测模型的模型参数,得到所述细粒度目标检测模型。
[0104]
在一实施例中,所述基于预设的所述细粒度类别间的学习间隔更新所述第一预测概率向量,得到第二预测概率向量,包括:
[0105]
利用目标预测概率值减去所述细粒度类别间的学习间隔,得到所述第二预测概率向量;
[0106]
其中,所述目标预测概率值为训练样本中目标对象属于各预设细粒度类别的第一预测概率值,所述目标预测概率值构成所述第一预测概率向量。
[0107]
在一实施例中,对所述第二预测概率向量进行归一化处理,得到各个所述训练样本中目标对象属于各预设细粒度类别的概率值,包括:
[0108]
将所述第二预测概率向量输入预设的归一化函数进行归一化处理,得到目标映射值;所述目标映射值为所述第二预测概率向量中各个向量值分贝对应的映射值;
[0109]
基于所述目标映射值确定各个所述训练样本中目标对象属于各预设细粒度类别的概率值。
[0110]
在一实施例中,所述预设目标检测模型由基于细粒度目标检测数据集对深度检测神经网络进行训练得到,所述预设目标检测模型的输入为所述细粒度目标检测数据集中的样本图片,输出为预测的目标对象位置框和目标预测概率值;
[0111]
其中,所述目标预测概率值为目标对象属于各预设细粒度类别的第一预测概率值;所述细粒度目标检测数据集包括标注了目标对象信息的样本图片。
[0112]
在一实施例中,所述预设目标检测模型的损失函数包括预设类别损失函数,所述预训练的细粒度目标检测模型的损失函数包括预设间隔损失函数。
[0113]
本申请实施例提供的电子设备的具体原理和实现方式均与前述实施例的目标检测方法类似,此处不再赘述。
[0114]
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时使所述处理器实现上述实施例提供的目标检测方法的步骤。
[0115]
其中,所述计算机可读存储介质可以是前述任一实施例所述的电子设备的内部存储单元,例如所述电子设备的硬盘或内存。所述计算机可读存储介质也可以是所述电子设备的外部存储设备,例如所述电子设备上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。
[0116]
应当理解,在此本申请中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。
[0117]
还应当理解,在本申请和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
[0118]
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1