首页 / 专利库 / 作物管理 / 疏剪 / 一种目标检测方法、装置及存储介质

一种目标检测方法、装置及存储介质

阅读:680发布:2020-05-08

专利汇可以提供一种目标检测方法、装置及存储介质专利检索,专利查询,专利分析的服务。并且本 申请 涉及目标检测技术领域,提供一种目标检测方法、装置及存储介质。其中,目标检测方法包括:获取待检测图像并将待检测图像输入至神经网络模型;利用神经网络模型按照特征尺寸从大到小的顺序依次提取待检测图像的多层特征;利用神经网络模型融合多层特征,输出对应的多层融合特征,每层特征与其下层特征融合后输出对应的一层融合特征,而多层特征中的最下层特征则直接作为一层融合特征输出;利用神经网络模型根据多层融合特征进行目标检测,输出对应的多个目标检测结果。该方法使用的神经网络模型是一种多尺度的目标检测模型,可以基于不同尺度的融合特征分别检测不同大小的目标,并对不同大小的目标都具有较高的检测 精度 。,下面是一种目标检测方法、装置及存储介质专利的具体信息内容。

1.一种目标检测方法,其特征在于,包括:
获取待检测图像,并将所述待检测图像输入至神经网络模型;
利用所述神经网络模型按照特征尺寸从大到小的顺序依次提取所述待检测图像的多层特征;
利用所述神经网络模型融合所述多层特征,输出对应的多层融合特征;其中,每层特征与其下层特征融合后输出对应的一层融合特征,所述多层特征中的最下层特征直接作为一层融合特征输出;
利用所述神经网络模型根据所述多层融合特征进行目标检测,输出对应的多个目标检测结果。
2.根据权利要求1所述的目标检测方法,其特征在于,所述神经网络模型包括依次连接的多个残差组,每个残差组中包括依次连接的多个相同的残差,每个残差组输出所述待检测图像的一层特征;
相邻的两个残差组之间设置有卷积层,前一残差组输出的特征经所述卷积层下采样后输入至后一残差组。
3.根据权利要求1所述的目标检测方法,其特征在于,在利用所述神经网络模型将下层特征与上层特征融合之前,所述方法还包括:
利用所述神经网络模型中设置的1×1卷积层对下层特征进行降维处理。
4.根据权利要求1所述的目标检测方法,其特征在于,利用所述神经网络模型根据任一层融合特征进行目标检测,包括:
将一层融合特征输入所述神经网络模型中依次连接的至少一个卷积层,获得所述至少一个卷积层输出的一个目标检测结果。
5.根据权利要求1-4中任一项所述的目标检测方法,其特征在于,在所述将所述待检测图像输入至神经网络模型之前,所述方法还包括:
训练神经网络模型,并在训练过程中完成对模型参数的裁剪。
6.根据权利要求5所述的目标检测方法,其特征在于,所述训练神经网络模型,并在训练过程中完成对模型参数的裁剪,包括:
对初始的神经网络模型进行常规训练,直至模型的检测精度满足第一预设条件;
对常规训练后的所述神经网络模型继续进行稀疏化训练,对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除;
微调所述神经网络模型中剩余的模型参数,并评估参数微调后的模型的检测精度是否满足第二预设条件以及检测性能是否满足第三预设条件;
若模型未同时满足所述第二预设条件和所述第三预设条件,则重复执行稀疏化训练至模型评估的步骤,直至在模型同时满足所述第二预设条件和所述第三预设条件时,输出所述神经网络模型。
7.根据权利要求6所述的目标检测方法,其特征在于,所述方法还包括:
若稀疏化训练后的所述神经网络模型的所有模型参数均大于第二预设阈值,则输出所述神经网络模型。
8.根据权利要求6或7所述的目标检测方法,其特征在于,所述对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除,包括:
计算稀疏化训练后的获得的每个卷积核对应的模型参数的参数均值;
对计算得到的参数均值进行排序,获取排序后的参数均值中取值最小的预设数量的参数均值,并将获取到的参数均值中取值小于第一预设阈值的参数均值对应的卷积核从所述神经网络模型中删除。
9.一种目标检测装置,其特征在于,包括:
图像获取模块,用于获取待检测图像,并将所述待检测图像输入至神经网络模型;
特征提取模块,用于利用所述神经网络模型按照特征尺寸从大到小的顺序依次提取所述待检测图像的多层特征;
特征融合模块,用于利用所述神经网络模型融合所述多层特征,输出对应的多层融合特征;其中,每层特征与其下层特征融合后输出对应的一层融合特征,所述多层特征中的最下层特征直接作为一层融合特征输出;
目标检测模块,用于利用所述神经网络模型根据所述多层融合特征进行目标检测,输出对应的多个目标检测结果。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-8中任一项所述的方法。

说明书全文

一种目标检测方法、装置及存储介质

技术领域

[0001] 本发明涉及目标检测技术领域,具体而言,涉及一种目标检测方法、装置及存储介质。

背景技术

[0002] 在目标检测领域,对小目标的检测需求越来越明显。例如,利用无人机对地面进行拍摄,并检测地面上的行人或车辆,若无人机飞行高度较高,则地面上的行人或车辆在无人机采集的图像中可能只占据很小的区域。然而,现有目标检测方法对小目标的检测能较弱,无法满足实际需求。

发明内容

[0003] 本申请实施例的目的在于提供一种目标检测方法、装置及存储介质,以改善上述技术问题。
[0004] 为实现上述目的,本申请提供如下技术方案:
[0005] 第一方面,本申请实施例提供一种目标检测方法,包括:获取待检测图像,并将所述待检测图像输入至神经网络模型;利用所述神经网络模型按照特征尺寸从大到小的顺序依次提取所述待检测图像的多层特征;利用所述神经网络模型融合所述多层特征,输出对应的多层融合特征;其中,每层特征与其下层特征融合后输出对应的一层融合特征,所述多层特征中的最下层特征直接作为一层融合特征输出;利用所述神经网络模型根据所述多层融合特征进行目标检测,输出对应的多个目标检测结果。
[0006] 上述方法使用的神经网络模型根据多层融合特征输出对应的多个目标检测结果,即该神经网络模型是一种多尺度的目标检测模型,可以基于不同尺度的融合特征分别检测不同大小的目标。
[0007] 其中,下层融合特征主要用于检测大目标。下层融合特征根据模型提取出的若干下层特征融合产生,由于下层特征需要经过较多的网络层数才能提取出来,因此其中包含了较丰富的高级语义信息,并且下层特征在原始待检测图像中对应的区域较大,因此根据下层融合特征检测大目标的精度较高。
[0008] 上层融合特征主要用于检测小目标。在生成上层融合特征时,一方面融合了对应的上层特征,由于上层特征在原始待检测图像中对应的区域较小,因此其中的小目标不易受到同区域内特征显著的大目标的干扰而导致难以被检测出来;另一方面融合了该上层特征的下层特征,前文提到,由于下层特征中包含了较多的高级语义信息,因此同样有利于提高小目标的检测精度。
[0009] 在第一方面的一种实现方式中,所述神经网络模型包括依次连接的多个残差组,每个残差组中包括依次连接的多个相同的残差,每个残差组输出所述待检测图像的一层特征;相邻的两个残差组之间设置有卷积层,前一残差组输出的特征经所述卷积层下采样后输入至后一残差组。
[0010] 神经网络模型的特征提取部分主要包括依次连接的多个残差组,每经过一个残差组提取出一层特征,由于残差组中的残差块并不改变特征的尺寸,所以在相邻的残差组之间设置卷积层,该卷积层具有下采样功能,从而使得提取出的多层特征尺寸是递减的。
[0011] 在第一方面的一种实现方式中,在利用所述神经网络模型将下层特征与上层特征融合之前,所述方法还包括:利用所述神经网络模型中设置的1×1卷积层对下层特征进行降维处理。
[0012] 由于上层融合特征主要用于检测小目标,而小目标中包含的特征较少,检测小目标也并不需要太多的语义信息,从而可以利用1×1卷积对待融合的下层特征进行降维处理,以降低后续步骤中的运算量。
[0013] 在第一方面的一种实现方式中,利用所述神经网络模型根据任一层融合特征进行目标检测,包括:将一层融合特征输入所述神经网络模型中依次连接的至少一个卷积层,获得所述至少一个卷积层输出的一个目标检测结果。
[0014] 这里的至少一个卷积层可以根据需求设置,如果要检测的目标特征比较复杂,可以多设置几个卷积层,以便提取更丰富的语义信息,如果要检测的目标特征比较简单,可以少设置几个卷积层。
[0015] 在第一方面的一种实现方式中,在所述将所述待检测图像输入至神经网络模型之前,所述方法还包括:训练神经网络模型,并在训练过程中完成对模型参数的裁剪。
[0016] 在一些场景中,对目标检测的检测性能有一定要求。例如,某无人机要求目标检测的率要达到15fps,但无人机的计算性能有限,直接将部署在计算机上神经网络模型部署在无人机上无法达到检测性能要求,因此在训练神经网络模型时可以对模型参数进行裁剪,然后再将训练好的轻量化模型部署到特定的场景中。
[0017] 在第一方面的一种实现方式中,所述训练神经网络模型,并在训练过程中完成对模型参数的裁剪,包括:对初始的神经网络模型进行常规训练,直至模型的检测精度满足第一预设条件;对常规训练后的所述神经网络模型继续进行稀疏化训练,对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除;微调所述神经网络模型中剩余的模型参数,并评估参数微调后的模型的检测精度是否满足第二预设条件以及检测性能是否满足第三预设条件;若模型未同时满足所述第二预设条件和所述第三预设条件,则重复执行稀疏化训练至模型评估的步骤,直至在模型同时满足所述第二预设条件和所述第三预设条件时,输出所述神经网络模型。
[0018] 以上第一预设条件可以是事先确定好的一个对模型检测精度的要求,第二预设条件可以是模型的检测精度达到和第一预设条件中指定的检测精度接近的平,第三预设条件可以是一个对模型检测帧率的要求。
[0019] 在第一方面的一种实现方式中,所述方法还包括:若稀疏化训练后的所述神经网络模型的所有模型参数均大于第二预设阈值,则输出所述神经网络模型。
[0020] 若稀疏化训练后的神经网络模型的所有模型参数均大于第二预设阈值,表明剩余的模型参数都是有一定价值的,或者说从参数层面来看模型已经不能继续压缩了。
[0021] 在第一方面的一种实现方式中,所述对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除,包括:计算稀疏化训练后的获得的每个卷积核对应的模型参数的参数均值;对计算得到的参数均值进行排序,获取排序后的参数均值中取值最小的预设数量的参数均值,并将获取到的参数均值中取值小于第一预设阈值的参数均值对应的卷积核从所述神经网络模型中删除。
[0022] 删除模型参数可以以卷积核为最小单位,若一个卷积核被删除,其包含的权重以及偏置参数均被删除。在模型训练伊始,尚不能确定最终要保留的卷积核,可以在模型中预置较多数量的卷积核(即过参数化设计),其中一些卷积核在模型训练过程中将被删除。
[0023] 第二方面,本申请实施例提供一种目标检测装置,包括:图像获取模块,用于获取待检测图像,并将所述待检测图像输入至神经网络模型;特征提取模块,用于利用所述神经网络模型按照特征尺寸从大到小的顺序依次提取所述待检测图像的多层特征;特征融合模块,用于利用所述神经网络模型融合所述多层特征,输出对应的多层融合特征;其中,每层特征与其下层特征融合后输出对应的一层融合特征,所述多层特征中的最下层特征直接作为一层融合特征输出;目标检测模块,用于利用所述神经网络模型根据所述多层融合特征进行目标检测,输出对应的多个目标检测结果。
[0024] 第三方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。
[0025] 第四方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。附图说明
[0026] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0027] 图1示出了本申请实施例提供的一种目标检测方法的流程图
[0028] 图2示出了本申请实施例提供的一种神经网络模型的结构图;
[0029] 图3示出本申请实施例提供的一种训练神经网络模型的方法的流程图;
[0030] 图4示出了本申请实施例提供的一种目标检测装置的功能模块图;
[0031] 图5示出了本申请实施例提供的一种电子设备的示意图。

具体实施方式

[0032] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0033] 本申请实施例提供一种能够有效检测不同大小的目标的目标检测方法,已改善现有技术中对小目标检测效果较差的问题。在该方法的一些实现方式中,还可以通过裁剪模型参数的方式对检测模型进行压缩,以使目标检测方法可用于一些对检测性能要求较高的场景中,从而方法的实用性得到增强。
[0034] 图1示出了本申请实施例提供的一种目标检测方法的流程图,该方法可以由一电子设备执行,关于电子设备可能的结构,可以参照后文关于图5的阐述,此处不作具体说明。参照图1,该方法包括以下步骤:
[0035] 步骤S100:获取待检测图像,并将待检测图像输入至神经网络模型。
[0036] 待检测图像是指其中可能包含有目标的图像。待检测图像的类型不限定,例如可能是彩色图像,也可能是灰度图像。待检测图像可以由电子设备自身直接采集,例如,若电子设备是无人机,则可以通过无人机上设置的摄像头进行图像采集。当然,采集待检测图像的设备和执行目标检测方法的设备也可能不是同一设备:例如,无人机采集待检测图像,并将待检测图像发送至某台计算机,由计算机执行目标检测方法;又例如,待检测图像来源于某些科研机构准备好的测试集,这些测试集可以通过互联网下载到某台计算机,由计算机执行目标检测方法,等等。
[0037] 目标检测方法使用一个预先训练好的神经网络模型进行目标检测,图2示出了该神经网络模型的一种可能的结构,关于模型的具体结构,在下文介绍模型功能时再进一步阐述,不过应当理解的是,图2中模型的结构仅仅是示例性的,模型结构中包含的数值(图2示出的主要是一些模型的超参数)也是示例性的,因此不应将其视为对本申请保护范围的限制。在图2中,待检测图像尺寸为416×416(长×宽),被输入至神经网络模型。
[0038] 步骤S110:利用神经网络模型按照特征尺寸从大到小的顺序依次提取待检测图像的多层特征。
[0039] 本申请使用的神经网络模型大致可分为两个部分:特征提取部分和目标检测部分,特征提取部分基于待检测图像进行图像特征的提取,目标检测部分根据提取出的特征进行目标检测并输出检测结果。以图2为例,图2中有一条虚线将模型划分为上下两个部分,上面为特征提取部分,下面为目标检测部分。不过,应当理解的是,这两个部分只是为方便理解模型功能进行的一种人为划分,实际网络中两个部分之间并没有明显的界限。
[0040] 在特征提取部分通过设置多层网络(例如,卷积层等)进行多层特征的提取,先提取出来的称为上层特征,后提取出来的称为下层特征,并且上层特征的尺寸大于下层特征的尺寸,即在相邻的两层特征之间存在下采样操作(例如,卷积层、池化层等都可以实现下采样功能)。在神经网络模型中,特征可以表现为特征图的形式,因此上述特征的尺寸可以指特征图的尺寸,后文出现时不再特别说明。上层特征由于尺寸较大,因此上层特征中的像素在待检测图像中对应较小的区域(该区域也称为感受野),简称上层特征在待检测图像中对应的区域较小;而下层特征由于尺寸较小,因此下层特征中的像素在待检测图像中对应较大的区域,简称下层特征在待检测图像中对应的区域较大。另外,上层特征由于的提取只需要经过较少的网络层数,因此包含的高级语义信息较少,而下层特征的提取则需要经过较多的网络层数,因此包含的高级语义信息较多。
[0041] 在一种实现方式中,特征提取部分包括依次连接的多个残差组,其中每个残差组内又包括依次连接的多个相同的残差块,经过每个残差组之后输出待检测图像的一层特征,也即残差组的数量至少应当和要提取的特征层数相同。关于残差块,可以参考ResNet神经网络,此处不作具体介绍。
[0042] 由于残差组中的残差块并不改变特征的尺寸,所以在相邻的残差组之间还设置有卷积层,该卷积层一方面可以提取特征,一方面还具有下采样功能,即前一残差组输出的特征经卷积层下采样后才会输入至后一残差组中继续处理,从而使得后一残差组提取出的下层特征尺寸小于前一残差组提取出的上层特征。
[0043] 继续参照图2,图2中神经网络模型的特征提取部分设置有三个残差组,前两个残差组中都包括8个相同的残差块(图中以×8表示重复的残差块个数为8个),最后一个残差组中包括4个相同的残差块。以第一个残差组为例,该残差组中的每个残差块均包括两个卷积层,第一个卷积层的卷积核个数为128,卷积核尺寸为1×1,第二个卷积层的卷积核个数为256,卷积核尺寸为3×3,该残差块的输出尺寸为52×52,即第一个残差组输出的特征1尺寸也是52×52。第一个残差组之后设置有一个卷积核个数为512,卷积核尺寸为3×3,卷积步长为2(图中以/2表示卷积步长为2,未表明则表示卷积步长为1)的卷积层,由于卷积步长大于1,因此该卷积层具有下采样功能,其下采样倍数为2,输出尺寸为26×26,而第二个残差组在处理时并不改变特征尺寸,所以特征2的尺寸也是26×26,相较于特征1的长和宽都缩小了一半。类似可知,特征3的尺寸为13×13。
[0044] 在第一个残差组上方,还可以设置若干层网络,在图2中仅示出了一个卷积核个数为32,卷积核尺寸为3×3,输出尺寸为416×416的卷积层,其余层以省略号示出。这若干层网络一方面可用于提取特征,一方面也具有下采样功能,待检测图像尺寸为416×416,在输入至第一个残差块时,其尺寸已经经下采样缩小为52×52。
[0045] 特征提取部分的网络可以有多种设计方式,图2示出的仅仅是其中一种,例如,也可以不采用残差块,只通过卷积层、池化层等也能进行特征提取。
[0046] 步骤S120:利用神经网络模型融合所述多层特征,输出对应的多层融合特征。
[0047] 提取出多层特征后,在神经网络模型的目标检测部分可以对多层特征进行融合,获得对应的多层融合特征。以图2为例,特征1对应融合特征1、特征2对应融合特征2、特征3对应融合特征3,且相互对应的一层特征和一层融合特征具有相同的尺寸。
[0048] 特征融合的具体方法如下:
[0049] (1)对于多层特征中的最下层特征,直接作为一层融合特征(即最下层的融合特征)输出,例如,图2中的特征3直接作为融合特征3输出。
[0050] (2)对于多层特征中的其余层特征,与该层特征的下层特征融合后输出对应的一层融合特征。这里所谓的某层特征的下层特征,既可以指该层特征所有的下层特征,也可以指该层的部分下层特征(例如相邻层的下层特征),但为简单起见,后文主要阐述融合所有下层特征的情况。例如,图2中的特征2与其下层特征(特征3)融合后输出融合特征2,特征1与其下层特征(特征2和特征3)融合后输出融合特征1,特征融合的方式可能有多种,图2中采用特征拼接是一种方式,也不排除采取相加等其他方式。
[0051] 特征融合可以有一定的顺序,例如,在图2中采用的是从下层特征向上层特征逐渐融合的方式,最下层的特征3首先融合产生(直接输出)融合特征3,然后融合特征3与上一层的特征2相融合产生融合特征2,融合特征2再与其上一层的特征3相融合产生融合特征3,这样的融合顺序有利于节约计算量。当然,特征融合也可以不按上述顺序进行,例如直接根据特征1、特征2以及特征3产生融合特征1。
[0052] 在将下层特征与上层特征融合之前,可以先对下层特征进行上采样,使其和上层特征具有相同的尺寸,然后再进行融合。例如,图2中特征3在与特征2融合之前就先进行了上采样,融合特征2在与特征1融合之前也进行了上采样(由于融合特征2是根据特征2和特征3产生的,所以对融合特征2进行上采样可以视为对下层特征进行上采样,和本段开头说法一致)。
[0053] 在将下层特征与上层特征融合之前,还可以先利用一个卷积核尺寸为1×1的卷积层对下层特征进行降维处理,然后再进行融合。例如,图2中特征3在与特征2融合之前就先进行了1×1卷积,融合特征2在与特征1融合之前也进行了1×1卷积(由于融合特征2是根据特征2和特征3产生的,所以对融合特征2进行1×1卷积可以视为对下层特征进行1×1卷积,和本段开头说法一致)。上层融合特征主要用于检测小目标(具体见步骤S130的阐述),而小目标中包含的特征较少,检测小目标也并不需要太多的语义信息(下层特征包含较多的语义信息),从而可以利用1×1卷积对待融合的下层特征进行降维处理,以降低后续步骤中的运算量。
[0054] 步骤S130:利用神经网络模型根据多层融合特征进行目标检测,输出对应的多个目标检测结果。
[0055] 神经网络模型根据每层融合特征独立地进行目标检测,并输出一个检测结果,针对多层融合特征,共输出多个目标检测结果,检测结果中可以包括目标所在的边框、目标分类、置信度等信息。例如,在图2中针对融合特征1输出目标检测结果1,针对融合特征2输出目标检测结果2,针对融合特征3输出目标检测结果3,目标检测结果1下标注的13×13×255表示该检测结果的长、宽以及通道数,其余目标检测结果类似。
[0056] 由于融合特征具有不同的尺寸,因此,多个目标检测结果也对应于不同尺寸的目标,其中,靠下层的融合特征主要用于检测较大的目标(当然也不排除其检测到小目标的可能),而靠上层的融合特征主要用于检测较小的目标(当然也不排除其检测到大目标的可能),根据各层融合特征得到的目标检测结果叠加起来就是最终的目标检测结果。这里所称的叠加还包括对目标检测结果的后处理步骤,例如进行非极大值抑制(Non-maximum Suppression,简称NMS)处理,消除一些被重复检测的目标。例如,在图2中,特征1、特征2、特征3分别主要用于检测大目标、中目标以及小目标。为简单起见,图2省略了获得目标检测结果之后的步骤,这些步骤也不是由神经网络模型负责执行的。
[0057] 在神经网络模型的目标检测部分,针对每层融合特征都可以设置对应的目标检测网络,例如,在一种实现方式中,该网络可以包括一个或多个卷积层,融合特征经过这些卷积层处理之后输出的就是相应的目标检测结果。进一步的,目标检测网络可以根据需求进行设计,如果要检测的目标特征比较复杂,在目标检测网络中可以多设置几个卷积层,以便提取更丰富的语义信息,如果要检测的目标特征比较简单,可以少设置几个卷积层以节约运算量。另外,对于不同层的融合特征,其对应的目标检测网络可以设置为相同的,也可以设置为不同的。在图2中,每层融合特征对应的目标检测网络都设置为相同的,包括一个3×3的卷积层以及一个1×1的卷积层。在一些简化的实现方式中,甚至可以不设置目标检测网络,即将融合特征直接作为目标检测结果输出,在这些实现方式中,神经网络模型的特征提取部分不能简单地理解为只是用于提取特征,其还承担目标检测的功能。
[0058] 在上述目标检测方法中,所使用地神经网络模型是一种多尺度的目标检测模型,可以基于不同尺度的融合特征分别检测不同大小的目标。下面具体分析其在目标检测方面的优势:
[0059] 下层融合特征主要用于检测大目标。根据前文阐述,下层融合特征根据模型提取出的若干下层特征融合产生,由于下层特征需要经过较多的网络层数才能提取出来,因此其中包含了较丰富的高级语义信息,并且下层特征在原始待检测图像中对应的区域较大,即能够覆盖较大的目标,因此根据下层融合特征检测大目标的精度较高。
[0060] 相对地,上层融合特征主要用于检测小目标。在生成上层融合特征时,一方面融合了对应的上层特征,由于上层特征在原始待检测图像中对应的区域较小,因此其中的小目标不易受到同区域内特征显著的大目标的干扰而导致难以被检测出来;另一方面融合了该上层特征的下层特征,由于下层特征中包含了较多的高级语义信息,因此同样有利于提高小目标的检测精度。
[0061] 在一个对照实施例中,利用一个包含特征提取部分和目标检测部分的神经网络进行目标检测,但特征提取部分的网络层数设计存在矛盾:如果特征提取部分层数很深,那么送入目标检测部分的特征对应于待检测图像的区域就会很大,这样的话,小目标就会因为同一区域内有更具显著特征的大目标而被忽略,或者是模型下采样的时候直接把小目标的特征给忽略掉了;如果特征提取部分层数较浅,模型获取到的高级语义信息对于检测大目标来说又可能会不够用。本申请实施例中使用的多尺度的目标检测模型通过多尺度下的特征融合机制,以及,分别基于不同尺度的融合特征获得多个目标检测结果,可以显著改善对照实施例中存在的上述问题。
[0062] 若执行目标检测方法的电子设备的计算性能足够强大,或者应用场景对目标检测的检测性能要求不高,可以采用常规的方式训练好上述神经网络模型并将模型部署在电子设备上用于目标检测即可。但在一些特定场景中,对目标检测的检测性能有一定要求。例如,某无人机要求目标检测的帧率要达到15fps,但无人机的计算性能有限,直接将部署在计算机上神经网络模型部署在无人机上无法达到检测性能要求,因此在训练神经网络模型时可以对模型进行压缩,然后再将训练好的轻量化模型部署到特定的场景中。如此,该目标检测方法的实用性得到大大增强。
[0063] 压缩模型的方法之一是对模型参数进行裁剪,当然还可以包括降低参数精度等方法,不过后文主要针对参数裁剪进行介绍。模型参数的裁剪可以在模型训练的过程中进行,其总体目标是:使得训练好的模型相对于不进行裁剪时训练好的模型检测精度并没有明显的下降,同时检测性能却有显著的提升。
[0064] 图3示出本申请实施例提供的一种训练神经网络模型的方法的流程图,该方法可以在神经网络模型被使用之前执行。参照图3,该方法包括以下步骤:
[0065] 步骤S200:对初始的神经网络模型进行常规训练,直至模型的检测精度满足第一预设条件。
[0066] 常规训练的过程参考现有技术即可,具体不作阐述。第一预设条件可以是事先确定好的一个对模型检测精度的要求,例如,平均精度均值(Mean Average Precision,简称MAP)就是一种针对检测精度的常用指标,第一预设条件中可以包括和MAP相关的条件。
[0067] 步骤S210:对常规训练后的神经网络模型继续进行稀疏化训练,对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从神经网络模型中删除。
[0068] 稀疏化训练使用的损失函数中引入一个和模型参数相关的L1正则化项,例如,其损失函数可以表示为如下形式:
[0069]
[0070] 其中,w表示模型参数,ED(w)为常规的预测损失项(常规训练可以只使用该项),为L1正则化项,在损失函数中引入L1正则化项,使得训练后的模型中各参数之和尽可能减小,特别是一些不太重要的模型参数,其取值将接近于0,这样在后续步骤中可以将这些不太重要的模型参数裁剪掉,而对模型的检测精度只造成很小的影响。
[0071] 稀疏化训练也有一定的结束条件,例如训练到损失函数的取值基本不再变化即可结束训练,等等。之后,可以将此时得到的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数。此处的预设数量,既可以是绝对数量,也可以是一个比例,例如,若预设数量为20%,则获取模型参数中排在后20%的参数(假设按照参数取值从大到小排序)。接着,对于获取到的模型参数判断其是否小于第一预设阈值,若小于则表明该参数不重要,将其从模型中删除(即裁剪参数),否则继续保留在模型中。第一预设阈值可以是一个很小的正数,例如,0.0001,紧接之前的例子,对于取值排在后20%的模型参数,若该模型参数的取值还小于0.0001,则将其从神经网络模型中删除。该例子中的“取值排在后20%”和“小于0.0001”亦可理解为两个判断条件,若某个排序后的模型参数同时满足这两个条件,就将其删除。
[0072] 对于卷积神经网络模型,删除模型参数可以以卷积核为最小单位,若一个卷积核被删除,其包含的权重以及偏置参数均被删除。在刚开始模型训练时,尚不能确定最终要保留的卷积核,可以在模型中预置较多数量的卷积核(称为过参数化设计,如图2所示),其中一些卷积核在模型训练过程中将被删除。
[0073] 具体而言,对于以卷积核为最小裁剪单元的实现方式,可以采用如下方式裁剪模型参数:稀疏化训练完成后,首先计算获得的每个卷积核对应的模型参数(权重和偏置)的参数均值,然后对计算得到的参数均值进行排序,并获取排序后的参数均值中取值最小的预设数量的参数均值,最后将获取到的参数均值中取值小于第一预设阈值的参数均值所对应的卷积核从神经网络模型中删除。
[0074] 步骤S220:微调神经网络模型中剩余的模型参数,并评估参数微调后的模型的检测精度是否满足第二预设条件以及检测性能是否满足第三预设条件。
[0075] 通常进行模型参数裁剪后,模型的检测精度会有所下降,当然检测性能会提升,此时可以微调模型参数(可以通过训练的方式),使得神经网络模型的检测精度尽可能恢复裁剪前的水平,即第二预设条件可以参照第一预设条件进行设置,例如可以和第一预设条件中指定的检测精度持平或者略低一点(比如检测精度允许降低5%)。
[0076] 除了评估模型的检测精度外,还要对参数微调后的模型的检测性能进行评估,因为这正是进行模型参数裁剪的原因。第三预设条件可以是一个对模型检测帧率的要求,例如15fps、20fps等。
[0077] 若经过评估,参数微调后的模型的检测精度满足第二预设条件并且检测性能满足第三预设条件,则执行步骤S230;否则跳转至步骤S210重新进行稀疏化训练以及模型参数裁剪,并继续进行模型评估,或者,在跳转至步骤S210执行之前,可以先继续微调模型参数,尝试使模型同时满足第二预设条件和第三预设条件,除非通过模型参数微调不能达到目标的,再进行跳转执行。
[0078] 步骤S230:输出神经网络模型。
[0079] 输出神经网络模型表明训练结束,该神经网络模型的检测精度和检测性能均达到要求,从而可用于目标检测。当然训练好的神经网络模型在投入实用前还可能进行测试等步骤,此处不再展开阐述。
[0080] 实践中还存在这样一种可能,在某次稀疏化训练后的神经网络模型中,所有模型参数均大于第二预设阈值(例如,0.001),这一现象表明目前所有的模型参数都是有一定价值的,或者说从参数层面来看模型已经不能再继续压缩了,此时可以直接将目前的神经网络模型输出。当然此时的神经网络模型并不一定满足第二预设条件和/或第三预设条件,至于是否要采纳该模型用于目标检测则取决于用户的意愿。
[0081] 图4示出了本申请实施例提供的目标检测装置300的功能模块图。参照图4,目标检测装置300包括:
[0082] 图像获取模块310,用于获取待检测图像,并将所述待检测图像输入至神经网络模型;
[0083] 特征提取模块320,用于利用所述神经网络模型按照特征尺寸从大到小的顺序依次提取所述待检测图像的多层特征;
[0084] 特征融合模块330,用于利用所述神经网络模型融合所述多层特征,输出对应的多层融合特征;其中,每层特征与其下层特征融合后输出对应的一层融合特征,所述多层特征中的最下层特征直接作为一层融合特征输出;
[0085] 目标检测模块340,用于利用所述神经网络模型根据所述多层融合特征进行目标检测,输出对应的多个目标检测结果。
[0086] 在目标检测装置300的一种实现方式中,所述神经网络模型包括依次连接的多个残差组,每个残差组中包括依次连接的多个相同的残差块,每个残差组输出所述待检测图像的一层特征;相邻的两个残差组之间设置有卷积层,前一残差组输出的特征经所述卷积层下采样后输入至后一残差组。
[0087] 在目标检测装置300的一种实现方式中,特征融合模块330还用于在利用所述神经网络模型将下层特征与上层特征融合之前,利用所述神经网络模型中设置的1×1卷积层对下层特征进行降维处理。
[0088] 在目标检测装置300的一种实现方式中,目标检测模块340利用所述神经网络模型根据任一层融合特征进行目标检测,包括:将一层融合特征输入所述神经网络模型中依次连接的至少一个卷积层,获得所述至少一个卷积层输出的一个目标检测结果。
[0089] 在目标检测装置300的一种实现方式中,所述装置还包括:模型训练模块,用于在图像获取模块310将所述待检测图像输入至神经网络模型之前,训练神经网络模型,并在训练过程中完成对模型参数的裁剪。
[0090] 在目标检测装置300的一种实现方式中,模型训练模块训练神经网络模型,并在训练过程中完成对模型参数的裁剪,包括:对初始的神经网络模型进行常规训练,直至模型的检测精度满足第一预设条件;对常规训练后的所述神经网络模型继续进行稀疏化训练,对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除;微调所述神经网络模型中剩余的模型参数,并评估参数微调后的模型的检测精度是否满足第二预设条件以及检测性能是否满足第三预设条件;若模型未同时满足所述第二预设条件和所述第三预设条件,则重复执行稀疏化训练至模型评估的步骤,直至在模型同时满足所述第二预设条件和所述第三预设条件时,输出所述神经网络模型。
[0091] 在目标检测装置300的一种实现方式中,模型训练模块还用于若稀疏化训练后的所述神经网络模型的所有模型参数均大于第二预设阈值,则输出所述神经网络模型。
[0092] 在目标检测装置300的一种实现方式中,模型训练模块对稀疏化训练后的获得的模型参数进行排序,获取排序后的模型参数中取值最小的预设数量的模型参数,并将获取到的模型参数中取值小于第一预设阈值的模型参数从所述神经网络模型中删除,包括:计算稀疏化训练后的获得的每个卷积核对应的模型参数的参数均值;对计算得到的参数均值进行排序,获取排序后的参数均值中取值最小的预设数量的参数均值,并将获取到的参数均值中取值小于第一预设阈值的参数均值对应的卷积核从所述神经网络模型中删除。
[0093] 本申请实施例提供的目标检测装置300,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法施例中相应内容。
[0094] 图5示出了本申请实施例提供的一种电子设备的示意图。参照图5,电子设备400包括:处理器410、存储器420、通信接口430以及图像采集模块440,这些组件通过通信总线450和/或其他形式的连接机构(未示出)互连并相互通讯。
[0095] 其中,存储器420包括一个或多个(图中仅示出一个),其可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,简称EEPROM)等。处理器410以及其他可能的组件可对存储器420进行访问,读和/或写其中的数据。
[0096] 处理器410包括一个或多个(图中仅示出一个),其可以是一种集成电路芯片,具有信号的处理能力。上述的处理器410可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、微控制单元(Micro Controller Unit,简称MCU)、网络处理器(Network Processor,简称NP)或者其他常规处理器;还可以是专用处理器,包括数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application Specific Integrated Circuits,简称ASIC)、现场可编程阵列(Field Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0097] 通信接口430包括一个或多个(图中仅示出一个),可以用于和其他设备进行直接或间接地通信,以便进行数据的交互。例如,通信接口430可以是以太网接口;可以是高速网络接口(如Infiniband网络);可以是移动通信网络接口(如3G、4G、5G网络的接口);还是可以是具有数据收发功能的其他类型的接口。
[0098] 图像采集模块440用于采集图像,例如本申请实施例提供的目标检测方法中用到的待检测图像。采集的方式即可以是单张采集,也可以连续采集(形成视频流)。例如,图像采集模块440可以是摄像头,既可以是可见光摄像头,也可以是红外摄像头,摄像头采集的图像既可以是彩色图像,也可以是黑白图像。
[0099] 在存储器420中可以存储一个或多个计算机程序指令,处理器410可以读取并运行这些计算机程序指令,以实现本申请实施例提供的目标检测方法以及其他期望的功能。
[0100] 可以理解,图5所示的结构仅为示意,电子设备400还可以包括比图5中所示更多或者更少的组件,或者具有与图5所示不同的配置。图5中所示的各组件可以采用硬件、软件或其组合实现。例如,在采用硬件方式实现时,电子设备400可以是无人机、无人车、无人船、机器人、个人计算机、手机、平板电脑服务器等;在采用软件方式实现时,电子设备400可以是虚拟机
[0101] 本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被计算机的处理器读取并运行时,执行本申请实施例提供的目标检测方法。例如,计算机可读存储介质可以实现为图5中电子设备400中的存储器420。
[0102] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0103] 另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0104] 再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0105] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈