一种多尺度的目标检测模型的训练方法、检测方法、装置,及
终端设备
技术领域
本发明涉及目标检测研究领域和深度学习研究领域,具体涉及一种多尺度的目标检测模型的训练方法、检测方法、装置,及终端设备。
背景技术
目前,基于深度学习的目标检测算法,在各种应用场景得到了广泛的应用。Anchor-based的检测算法是工业界主要使用的目标检测算法,而anchor-free类的检测算法初步发展,并未在工业界得到广泛使用。在工业界,检测算法需要在终端设备上使用,相比于学术界,对于速度有较高的要求。在人多的场景中,存在大量多尺度的目标。在这类场景中,目标检测模型需要兼顾速度和大范围多尺度的检测能力。在实现本发明过程中,发明人发现现有技术中至少存在如下问题:无论是anchor-based类的检测算法,还是anchor-free类的算法,最终的输出主要有两个部分,一个是分类的分数图,另一个是用于包围框位置定位大量的额外参数。目前设计的特征图金字塔结构的分数映射关系相对粗糙,没有细化的去构建输入图片和分数图的关系,无法从分数图直接得到最终的检测框位置和尺寸。
发明内容
为了克服现有技术的不足,本公开实施例提供了一种多尺度的目标检测模型的训练方法、检测方法、装置,及终端设备,可以更好的适用于多尺度目标的场景。技术方案如下:
第一方面,提供了一种多尺度的目标检测模型的训练方法,该方法包括如下步骤:
获取目标训练集图片,根据模型的输入尺寸,设定需要检测出来的目标面积的最小值a,和最大值b;a>3n*3n,b<3n+m-1*3n+m-1。
构建特征金字塔:即构建细化的网络输出金字塔,共有m个网络输出层;每个网络输出层中有三种不同长宽比的感受野。
当感受野长宽比为1时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n*3n,最高网络输出层上的分数图的感受野面积为3n+m-1*3n+m-1,共有m个网络输出层。
当感受野长宽比为3时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n*3n-1,最高网络输出层上的分数图的感受野面积为3n+m-1*3n+m-2,共有m个网络输出层。
当感受野长宽比为1/3时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n-1*3n,最高网络输出层上的分数图的感受野面积为3n+m-2*3n+m-1,共有m个网络输出层。
将目标训练集图片中的目标映射到不同的网络层上的不同的分数图上,再构建目标与分数图的映射关系,标记分数图中分数标签值,用于后续模型训练。
分数图中分数标签值为目标物体在其感受野中的占比,即分数标签值Score(i,j)为:Score(i,j)=(A∩RF(i,j))/RF(i,j),其中i,j表示分数图上某点的横坐标和纵坐标,起点的坐标为i=1,j=1,Score(i,j)表示该点的分数,RF(i,j)代表该点在原图上对应的感受野区域,A代表原图中的目标区域。
使用原始目标训练集中的图片及其分数图标签对目标检测模型训练,使得最终模型能够预测模型输入图片与不同网络层的三种分数图的映射关系。
优选的,m个网络输出层的获取方法具体为:在不同网络层之间使用可分离卷积,和通道分离操作,具体为:首先对上层特征做通道卷积,扩充通道数为之前的三倍,将得到的特征层做通道分离分为三组,对每一组采用不同的卷积核做空间卷积,再做通道卷积将通道数缩减为cls,得到一个网络输出层,进而得到m个网络输出层,最终分数图的数量为m*3*cls,cls是检测算法的目标的类别数量。
优选的,每一个网络输出层上分数图包括三种类型,用于输出不同长宽比的目标,采用三种不同的纵向步长和横向步长的空间卷积操作:分别得到三种不同的分数图,对应三种不同长宽比的感受野,三种不同的纵向步长和横向步长分别为(1、3),(3、1),(3、3)。
优选的,所述将目标训练集图片中的目标映射到不同的网络层上的不同的分数图上,具体为:根据目标的长宽比,确定目标对应的分数图形状;
如果目标的长宽比大于3,则选择纵横步长比为1/3的空间卷积核得到的分数图,其感受野的长宽比为3;根据目标的面积s大小,确定目标对应的网络层,如果s≥3i*3i-1,且s≤3i+1*3i,i为整数,i∈[n,n+m-1],那么分配到感受野面积为3i*3i-1的网络层上;
如果目标的长宽比小于1/3,则选择纵横步长比为3的空间卷积核得到的分数图,如果s≥3i-1*3i,且s≤3i*3i+1,i为整数,i∈[n,n+m-1],那么分配到感受野面积为3i-1*3i的网络层上;
如果目标的长宽比位于[1/3,3],则选择纵横步长比为1的空间卷积核得到的分数图;如果s≥3i*3i,且s≤3i+1*3i+1,i为整数,i∈[n,n+m-1],那么映射到感受野面积为3i*3i的网络层上。
第二方面,提供了一种多尺度的目标检测模型的检测方法,该方法包括:
将待检测图片做预处理,输入通过权利要求1-4任一项所述一种多尺度的目标检测模型的训练方法训练的目标检测模型中,目标检测模型输出得到预测分数图。
在预测分数图上使用领域极大值算法,首先对预测分数图做3×3的最大值池化,得到池化后的预测分数图,然后将其与原预测分数图做比较,值相同的点保留,值不同的点置零,得到仅剩邻域极大值的预测分数图,由仅剩邻域极大值的预测分数图中,按分值从大到小得到k个极大值点及其位置信息,分别作为预测目标的中心。
获得检测包围框:选取一个极大值点,以极大值点为中心对应的感受野向前后左右扩大就可以得到具体的目标检测包围框,所述向前后左右扩大,其扩大的范围分别对应原预测分数图的分数值。
进而循环遍历预测分数图上的所有极大值点,得到每个极大值点对应的目标检测包围框。
根据目标检测包围框的位置和尺寸信息,可在原图片中可视化的展现目标检测结果。
优选的,所述由仅剩邻域极大值的预测分数图中,按分值从大到小得到k个极大值点及其位置信息,替换为:设定分数阈值β,将分数阈值β之上的所有分数标签值作为极大值点,分别作为预测目标的中心。
第三方面,提供了一种多尺度的目标检测模型的检测装置,该装置包括训练模块和检测模块。
所述训练模块,用于执行所有可能的实现方式中任一项所述的一种多尺度的目标检测模型的训练方法的步骤。
所述检测模块,用于执行所有可能的实现方式中任一项所述的一种多尺度的目标检测模型的检测方法的步骤。
第四方面,提供了一种移动端设备,该移动端设备包括所有可能的实现方式中任一项所述一种多尺度的目标检测模型的检测装置。
与现有技术相比,上述技术方案中的一个技术方案具有如下有益效果:
通过考虑目标尺寸和长宽比,将其映射到不同网络层的分数图上,合理和细化的构建映射关系,在预测时可以直接由分数图预测目标的尺寸和位置,无需额外的包围框回归之类的部分;多个网络层做输出,可以检测不同尺寸和长宽比的目标,更好的适用于多尺度目标的场景。具有如下优点:
1、通过采用步长为3来设计多特征层金字塔结构,合理的将不同尺寸目标连续无重复的映射到不同网络层的分数图上,有利于检测模型的拟合。
2、从网络结构上考虑了目标的长宽比,每一个网络输出层设计了三种分数图,合理的将不同长宽比的目标映射到不同的分数图上,通过多种分数图类型,使感受野长宽比和目标长宽比更接近,提高了目标的定位精度。
附图说明
图1为本公开实施例提供的一种新型特征金字塔结构图。
图2为本公开实施例提供的一种目标与分数图映射关系示意图。
图3为本公开实施例提供的一种构建同层的三种分数图映射关系示意图。
图4为本公开实施例提供的一种构建不同网络层的分数图映射关系示意图。
具体实施方式
为了阐明本发明的技术方案和工作原理,下面将结合附图对本公开实施方式做进一步的详细描述。上述所有可选技术方案,可以采用任意结合形成本公开的可选实施例,在此不再一一赘述。
第一方面:本公开实施例提供了一种多尺度的目标检测模型的训练方法,该方法主要包括如下步骤:
根据应用场景的业务需求,获取目标训练集图片,根据模型的输入尺寸,设定需要检测出来的目标面积的最小值a,和最大值b;a>3n*3n,b<3n+m-1*3n+m-1;
构建特征金字塔:即构建细化的网络输出金字塔,构建共有m个网络输出层;每个网络输出层中有三种不同长宽比的感受野;
当感受野长宽比为1时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n*3n,最高网络输出层上的分数图的感受野面积为3n+m-1*3n+m-1,共有m个网络输出层(因为从n到n+m-1共m个整数,即m个网络输出层);
当感受野长宽比为3时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n*3n-1,最高网络输出层上的分数图的感受野面积为3n+m-1*3n+m-2,共有m个网络输出层;
当感受野长宽比为1/3时,设定目标检测模型最低网络输出层上的分数图的感受野面积为3n-1*3n,最高网络输出层上的分数图的感受野面积为3n+m-2*3n+m-1,共有m个网络输出层;
优选的,m个网络输出层的获取方法具体为:在不同网络层之间使用可分离卷积,和通道分离操作,具体为:首先对上层特征做通道卷积,扩充通道数为之前的三倍,将得到的特征层做通道分离分为三组,对每一组采用不同的卷积核做空间卷积,再做通道卷积将通道数缩减为cls,得到一个网络输出层,进而得到m个网络输出层,最终分数图的数量为m*3*cls,cls是检测算法的目标的类别数量。通过可分离卷积,和通道分离操作,增加网络深度,减少参数量。
优选的,每一个网络输出层上分数图包括三种类型,如附图1所示;用于输出不同长宽比的目标,采用三种不同的纵向步长和横向步长的空间卷积操作:分别得到三种不同的分数图,对应三种不同长宽比的感受野,三种不同的纵向步长和横向步长分别为(1、3),(3、1),(3、3)。通过多种分数图类型,使感受野长宽比和目标长宽比更接近,提高了目标的定位精度。
将目标训练集图片中的目标映射到不同的网络层上的不同的分数图上,再构建目标与分数图的映射关系,标记分数图中分数标签值,用于后续模型训练;如图2所示;
分数图上的分数标签值,等于目标物体在其感受野中的占比,即分数标签值Score(i,j)为:Score(i,j)=(A∩RF(i,j))/RF(i,j),其中i,j表示分数图上某点的横坐标和纵坐标,起点的坐标为i=1,j=1,Score(i,j)表示该点的分数,RF(i,j)代表该点在原图上对应的感受野区域,A代表原图中的目标区域;
通过合理和细化的构建输入图片到分数图的映射关系,在目标检测模型训练过程中,完全无需在模型中专门设计用于确定检测包围框的网络结构,在训练时利于检测模型的拟合;减少模型参数量,加快检测速度,能够推动目标检测算法的学术发展和进一步的落地应用,另外训练时可以根据具体情况选用合适的样本平衡策略,损失函数,优化算法和学习率,模型的泛化能力要得到保证,以适用于未知的情形。
优选的,所述将目标训练集图片中的目标映射到不同的网络层上的不同的分数图上,结合附图3的一种构建同层的三种分数图映射关系示意图和附图4的一种构建不同网络层的分数图映射关系示意图;具体为:根据目标的长宽比,确定目标对应的分数图形状,如附图3所示,如果目标的长宽比大于3,则选择纵横步长比为1/3的空间卷积核得到的分数图(即纵向步长和横向步长分别为(1、3)),其感受野的长宽比为3;根据目标的面积s大小,确定目标对应的网络层,如附图4所示,如果s≥3i*3i-1,且s≤3i+1*3i,i为整数,i∈[n,n+m-1],那么分配到感受野面积为3i*3i-1的网络层上;
如果目标的长宽比小于1/3,则选择纵横步长比为3的空间卷积核得到的分数图(即纵向步长和横向步长分别为(3、1)),如果s≥3i-1*3i,且s≤3i*3i+1,i为整数,i∈[n,n+m-1],那么分配到感受野面积为3i-1*3i的网络层上;
如果目标的长宽比位于[1/3,3],则选择纵横步长比为1的空间卷积核得到的分数图(即纵向步长和横向步长分别为(3、3));如果s≥3i*3i,且s≤3i+1*3i+1,i为整数,i∈[n,n+m-1],那么映射到感受野面积为3i*3i的网络层上;
设计多特征层金字塔结构时,采用步长为3,合理的将不同尺寸的目标映射到不同网络层的分数图。因为当步长为2时,感受野为2n*2n时,9个点(3*3)表示一个目标,可以表示目标面积大小范围是2n*2n~(3*2n)*(3*2n),即22n~9*22n,当感受野为2n+1*2n+1时,9个点表示一个目标,可以表示目标面积大小范围是2n+1*2n+1~(3*2n+1)*(3*2n+1),即4*22n~9*22n+2,两种感受野的网络层上的分数图可以表示的目标面积大小有重叠,一个目标可能映射到感受野为2n+1*2n+1的网络层上,也可能映射到感受野为2n*2n的网络层上,而该技术方案中采用步长为3,同理感受野为3n*3n时,可以表示目标面积大小范围是3n*3n~(3*3n)*(3*3n),即32n~32n+2,当感受野为3n+1*3n+1时,可以表示目标面积大小范围是3n+1*3n+1~(3*3n+1)*(3*3n +1),即32n+2~32n+4,因此可以使得不同面积大小的目标精准分配到不同的网络层,连续且不重复,同时根据目标的长宽比,将目标连续且不重复的映射到了不同网络层的不同分数图上。
使用原始目标训练集中的图片及其分数图标签对目标检测模型训练,使得最终模型的预测结果接近或者达到上述输入图片与不同网络层的三种分数图的映射关系;
第二方面,本公开实施例提供了提供了一种多尺度的目标检测模型的检测方法,该方法包括:
将待检测图片做预处理,输入通过所有可能的实现方式中任一项所述一种多尺度的目标检测模型的训练方法训练的目标检测模型中,目标检测模型输出得到预测分数图;
在预测分数图上使用领域极大值算法,首先对预测分数图做3×3的最大值池化,得到池化后的预测分数图,然后将其与原预测分数图做比较,值相同的点保留,值不同的点置零,得到仅剩邻域极大值的预测分数图,由仅剩邻域极大值的预测分数图中,按分值从大到小得到k个极大值点及其位置信息,分别作为预测目标的中心;
获得检测包围框:选取一个极大值点,以极大值点为中心对应的感受野向前后左右扩大就可以得到具体的目标检测包围框,所述向前后左右扩大,其扩大的范围分别对应原预测分数图的分数值;
进而循环遍历预测分数图上的所有极大值点,得到每个极大值点对应的目标检测包围框;
根据目标检测包围框的位置和尺寸信息,可在原图片中可视化的展现目标检测结果。
优选的,所述由仅剩邻域极大值的预测分数图中,按分值从大到小得到k个极大值点及其位置信息,替换为:设定分数阈值β,将分数阈值β之上的所有分数标签值作为极大值点,分别作为预测目标的中心。
第三方面,本公开实施例提供了一种多尺度的目标检测模型的检测装置
基于相同的技术构思,该装置包括训练模块和检测模块;
所述训练模块,用于执行所有可能的实现方式中任一项所述的一种多尺度的目标检测模型的训练方法的步骤;
所述检测模块,用于执行所有可能的实现方式中任一项所述的一种多尺度的目标检测模型的检测方法的步骤。
上述实施例提供的一种多尺度的目标检测模型的检测装置与一种多尺度的目标检测模型的训练方法和检测方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
第四方面,本公开实施例提供了一种终端设备,该终端设备包括所有可能的实现方式中任一项所述一种多尺度的目标检测模型的检测装置。
以上结合附图对本发明进行了示例性描述,显然,本发明具体实现并不受上述方式的限制,凡是采用了本发明的方法构思和技术方案进行的各种非实质性的改进;或者未经改进、等同替换,将本发明的上述构思和技术方案直接应用于其他场合的,均在本发明的保护范围之内。