基于动态网络训练的目标检测方法及装置

文档序号:30983084发布日期:2022-08-03 01:01阅读:102来源:国知局
基于动态网络训练的目标检测方法及装置

1.本发明属于计算机视觉和图像检测领域。


背景技术:

2.随着深度学习和机器学习的发展,目标检测成为了一个热门的的发展方向。在目标检测网络训练中,正负样本的采样方法对结果起着非常大的影响。目前的目标检测正负样本采样方法分为两类:(1)使用固定iou(intersection over union)阈值方法;(2)使用动态设置iou阈值方法。方法(1)使用固定阈值,没有考虑检测网络和图像本身的特征区别,人为手动设置阈值,限制了检测网络训练生成高质量的检测结果。方法(2)在具体实现上会引入过多超参数,如通过级联网络提升iou阈值会引入多个额外的预测分支;也未考虑到不同图像间的个体差异和稀疏候选区域情况下高质量候选区域较少的问题,无法在像小目标检测这种候选区域少的任务中实现较好效果。
3.同时,对于定位损失函数,l1损失函数的梯度不随损失差异大小而变化,不利于收敛;l2损失函数在损失差异过大处产生梯度爆炸;smooth l1损失函数综合前两者优点,但它对损失差异的敏感度同样也与当前训练样本结果无关。
4.本技术提案拟解决的技术问题是改进动态检测网络训练,并非只针对标准的候选区域网络网络进行设计,使得网络能够根据训练图像数据集自适应地选择适合的训练方法;对于定位损失函数,本提案根据训练过程中样本与回归目标的误差自适应动态确定函数回归的敏感程度,使得损失函数能更精细更准确地收敛。


技术实现要素:

5.本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
6.为此,本发明的第一个目的在于提出一种基于动态网络训练的目标检测方法,用于提升图像检测结果。
7.本发明的第二个目的在于提出一种基于动态网络训练的目标检测装置。
8.本发明的第三个目的在于提出一种计算机设备。
9.本发明的第四个目的在于提出一种计算机可读存储介质。
10.为达上述目的,本发明第一方面实施例提出了一种基于动态网络训练的目标检测方法,包括:
11.获取待训练图像,确定所述待训练图像中的候选区域,并获取所述候选区域目标检测特征值和真实值ground truth的特征值;
12.根据所述候选区域目标检测特征值确定超参数;
13.输入所述候选区域目标检测特征值、真实值ground truth的特征值和所述超参数,进行目标检测模型训练,确定所述候选区域正负样本标签分配结果,并计算训练结果和真实值之间的定位损失函数;
14.根据所述标签分配结果和定位损失函数,结合所述超参数设置自适应地动态确定
新一轮的正负样本标签分配阈值和损失函数参数;
15.所有网络轮次训练结束后,输出训练好的自适应动态目标检测器。
16.另外,根据本发明上述实施例的基于动态网络训练的目标检测方法还可以具有以下附加的技术特征:
17.进一步地,在本发明的一个实施例中,输出训练好的自适应动态目标检测器之后,还包括:
18.获取待检测图像;
19.将所述待检测图像和所述超参数输入所述自适应动态目标检测器,获取所述待检测图像的候选区域及其目标检测特征值,输出目标检测结果。
20.进一步地,在本发明的一个实施例中,,所述根据所述标签分配结果和定位损失函数,结合所述超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数,包括:
21.对候选区域的正负样本标签分配随着网络训练过程进行动态调整,其中,所述标签分配的过程描述为:
[0022][0023]
其中,proposal为目标检测网络产生的候选区域,gt为人工标注的目标物体真实位置,t为人工选定的iou阈值;label为1代表正样本,在实际使用中并不一定为1,而是与proposal最匹配的gt的类别,label为0代表负样本。
[0024]
进一步地,在本发明的一个实施例中,所述根据所述标签分配结果和定位损失函数,结合所述超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数,包括:
[0025]
对候选区域的定位损失函数随着网络训练过程进行动态调整,其中,所述定位准损失函数描述为:
[0026][0027]
其中,x代表网络输出的定位结果,β是一个超参数,用于控制定位损失对误差的敏感程度。
[0028]
为达上述目的,本发明第二方面实施例提出了一种基于动态网络训练的目标检测装置,包括:
[0029]
获取模块,用于获取待训练图像,确定所述待训练图像中的候选区域,并获取所述候选区域目标检测特征值和真实值ground truth的特征值;
[0030]
参数设置模块,用于根据所述候选区域目标检测特征值确定超参数设置;
[0031]
训练模块,用于输入所述候选区域目标检测特征值、真实值ground truth的特征值和所述超参数,进行目标检测模型训练,确定所述候选区域正负样本标签分配结果,并计算训练结果和真实值之间的定位损失函数;
[0032]
计算模块,用于根据所述标签分配结果和定位损失函数,结合所述超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数;
[0033]
输出模块,用于所有网络轮次训练结束后,输出训练好的自适应动态目标检测器。
[0034]
进一步地,在本发明的一个实施例中,还包括检测模块,用于:
[0035]
获取待检测图像;
[0036]
将所述待检测图像和所述超参数输入所述自适应动态目标检测器,获取所述待检测图像的候选区域及其目标检测特征值,输出目标检测结果。
[0037]
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的基于动态网络训练的目标检测方法。
[0038]
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的基于动态网络训练的目标检测方法。
[0039]
本发明实施例提出的基于动态网络训练的目标检测方法,充分考虑了样本分布的多样性和例如小目标检测中的候选区域稀疏性,利用训练样本中的实例数量来控制训练中阈值统计过程,从而使训练网络能针对不同的数据自适应地选择最佳样本,因此能够更有效地提升检测质量,进而获得更好的检测结果。
附图说明
[0040]
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0041]
图1为本发明实施例所提供的一种基于动态网络训练的目标检测方法的流程示意图。
[0042]
图2为本发明实施例所提供的一种基于动态网络训练的目标检测装置的流程示意图。
[0043]
图3为本发明实施例所提供的基于动态网络训练的目标检测方法模块流程图。
[0044]
图4为本发明实施例所提供的自适应动态网络训练算法流程图。
具体实施方式
[0045]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0046]
下面参考附图描述本发明实施例的基于动态网络训练的目标检测方法方法和装置。
[0047]
图1为本发明实施例所提供的一种基于动态网络训练的目标检测方法方法的流程示意图。
[0048]
如图1所示,该基于动态网络训练的目标检测方法方法包括以下步骤:
[0049]
s101:获取待训练图像,确定待训练图像中的候选区域,并获取候选区域目标检测特征值和真实值ground truth的特征值;
[0050]
s102:根据候选区域目标检测特征值确定超参数;
[0051]
s103:输入候选区域目标检测特征值、真实值ground truth的特征值和超参数,进
行目标检测模型训练,确定候选区域正负样本标签分配结果,并计算训练结果和真实值之间的定位损失函数;
[0052]
s104:根据标签分配结果和定位损失函数,结合超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数;
[0053]
s105:所有网络轮次训练结束后,输出训练好的自适应动态目标检测器。
[0054]
进一步地,在本发明的一个实施例中,输出训练好的自适应动态目标检测器之后,还包括:
[0055]
获取待检测图像;
[0056]
将待检测图像和超参数输入所述自适应动态目标检测器,获取待检测图像的候选区域及其目标检测特征值,输出目标检测结果。
[0057]
本发明创新地提出自适应的动态标签分配和动态定位损失函数。该方法加入了网络自适应选择参数的创新,使目标检测网络训练能根据训练图像数据集和训练结果误差自适应地调整参数。该方法分为自适应动态标签分配和自适应动态定位损失函数。
[0058]
进一步地,在本发明的一个实施例中,根据标签分配结果和定位损失函数,结合超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数,包括:
[0059]
对候选区域的正负样本标签分配随着网络训练过程进行动态调整,其中,标签分配的过程描述为:
[0060][0061]
其中,proposal为目标检测网络产生的候选区域,gt为人工标注的目标物体真实位置,t为人工选定的iou阈值;label为1代表正样本,在实际使用中并不一定为1,而是与proposal最匹配的gt的类别,label为0代表负样本。
[0062]
本发明提出的自适应动态标签分配根据对当前proposal与gt匹配的情况对t进行自适应更新。本发明首先计算所有proposal与其对应的gt的iou。记当前图像中gt的数量为m,并设定一个超参数s,令ki=s
×
m。将所有候选区域与gt的iou阈值从大到小进行排序,选择第ki个数值作为新的阈值tnow,tnow会成为下一轮训练的t值。随着网络训练,t值将会逐渐提高,从而使网络生成更高质量的建议区域。在实际使用过程中,t并不是实时更新,而是设定一个超参数c,每间隔c轮更新一次,这样减少计算次数。
[0063]
进一步地,在本发明的一个实施例中,根据标签分配结果和定位损失函数,结合超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数,包括:
[0064]
对候选区域的定位损失函数随着网络训练过程进行动态调整,其中,定位准损失函数描述为:
[0065][0066]
其中,x代表网络输出的定位结果,β是一个超参数,用于控制定位损失对误差的敏感程度。
[0067]
其中,β默认设置为1,控制β的大小可以调整当前定位损失对误差的敏感程度。在训练早期,使用较大的β值能降低对误差的敏感程度,使网络快速收敛;在训练中后期使用
较小的β值能增加对误差的敏感程度,使网络能收敛至更精细的位置,获得更准确的定位结果。
[0068]
本发明提出的自适应动态smooth l1 loss函数统计回归误差来实时计算新的回归β值,从而能根据网络训练的情况实时调整。具体来说,对于所有的正样本,在训练过程中都能获得其回归目标,并计算预测结果与回归目标间的误差。记当前图像中gt的数量为m,并设定一个超参数b,令kβ=b
×
m。将所有预测结果和回归目标的误差数值从小到大进行排序,选择第kβ个值来更新β。与自适应动态标签分配方法相同,网络每隔c轮更新一次结果。
[0069]
将自适应动态标签分配和自适应动态定位损失函数结合,就得到本提案提出的自适应动态网络训练方法。一方面,自适应动态标签分配方法考虑到像小目标检测任务中候选区域相较普通目标检测任务更加稀疏,即候选区域只会产生少量高质量区域的情况,本方法在样本标签分配时并不只针对标准候选区域网络,而是根据训练的候选区域网络动态调整收敛敏感程度,有利于目标检测模型iou阈值的收敛;另一方面,自适应动态定位损失函数考虑了稀疏候选区域和样本分布的多样性,利用训练样本的实例数量来控制函数参数,从而能做到针对不同样本自适应选择最佳函数参数,有效提升检测结果。
[0070]
本方案提出的训练方法包含数据获取模块、参数设置模块、模型计算模块、结果展示模块。模块流程图如图3所示。
[0071]
数据获取模块为本方案的数据输入模块,该模块用于获取目标检测特征值,包括候选区域网络生成的候选区域信息、图像人工标注的ground truth信息等。候选区域信息和ground truth信息可通过两两对比计算iou来确定候选区域为正样本或负样本。
[0072]
参数设置模块根据数据规模确定适合网络训练、用来更新iou阈值的参数s和更新定位损失函数参数β的b、根据网络大小确定更新参数间隔轮数c。
[0073]
模型计算模块作为提案方法的计算中心模块,用于动态分配目标检测正负样本和计算定位损失函数结果;并根据计算结果和超参设置确定新一轮的正负样本标签分配阈值和损失函数参数。具体算法流程图如图4。
[0074]
1)输入候选区、ground truth的位置坐标、宽高、类别等参数信息,输入ground truth的数量m,设定超参数s、b和c。
[0075]
2)初始化iou阈值tnow和smoothl1的参数β为βnow=1。并创建两个空集合si和se,si用来存储后续计算得到的iou,se用来存储回归损失。
[0076]
3)开始进行网络训练。对于每一轮网络训练,计算两两候选区和ground truth之间的iou,记为集合i,和两两候选区和ground truth之间的回归损失,记为集合e。
[0077]
4)由超参计算得到,ki=s
×
m,kβ=b
×
m。选择集合i中第ki大的值记为ik,将ik加入到si中;选择集合e中第kβ小的值记为ek,将ek加入到se中。
[0078]
5)网络训练到每隔c轮,开始自适应动态更新一次阈值结果。将tnow更新为si集合元素的平均数;将βnow更新为se集合元素的中位数。并将si和se清空。
[0079]
6)利用新的tnow和βnow来训练网络的正负样本标签分配和损失函数的计算。
[0080]
7)当所有网络轮次训练结束后,得到训练过的自适应动态目标检测器。
[0081]
结果展示模块将模型计算模块训练完毕的自适应小目标检测器展示给用户,其中包括小目标检测候选区域及其分配的正负标签,和损失函数结果,便于之后计算平均精确度。
[0082]
本发明实施例提出的基于动态网络训练的目标检测方法,充分考虑了样本分布的多样性和例如小目标检测中的候选区域稀疏性,利用训练样本中的实例数量来控制训练中阈值统计过程,从而使训练网络能针对不同的数据自适应地选择最佳样本,因此能够更有效地提升检测质量,获得更好的检测结果。
[0083]
为了实现上述实施例,本发明还提出一种基于动态网络训练的目标检测装置。
[0084]
图2为本发明实施例提供的一种基于动态网络训练的目标检测装置的结构示意图。
[0085]
如图2所示,该基于动态网络训练的目标检测装置包括:获取模块10,参数设置模块20,训练模块30,计算模块40,输出模块50;其中,
[0086]
获取模块,用于获取待训练图像,确定所述待训练图像中的候选区域,并获取所述候选区域目标检测特征值和真实值ground truth的特征值;
[0087]
参数设置模块,用于根据所述候选区域目标检测特征值确定超参数设置;
[0088]
训练模块,用于输入所述候选区域目标检测特征值、真实值ground truth的特征值和所述超参数,进行目标检测模型训练,确定所述候选区域正负样本标签分配结果,并计算训练结果和真实值之间的定位损失函数;
[0089]
计算模块,用于根据所述标签分配结果和定位损失函数,结合所述超参数设置自适应地动态确定新一轮的正负样本标签分配阈值和损失函数参数;
[0090]
输出模块,用于所有网络轮次训练结束后,输出训练好的自适应动态目标检测器。
[0091]
进一步地,在本发明的一个实施例中,还包括检测模块,用于:
[0092]
获取待检测图像;
[0093]
将所述待检测图像和所述超参数输入所述自适应动态目标检测器,获取所述待检测图像的候选区域及其目标检测特征值,输出目标检测结果。
[0094]
为达上述目的,本发明第三方面实施例提出了一种计算机设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上所述的基于动态网络训练的目标检测方法。
[0095]
为达上述目的,本发明第四方面实施例提出了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如上所述的基于动态网络训练的目标检测方法。
[0096]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0097]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0098]
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本技术的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本技术的实施例所属技术领域的技术人员所理解。
[0099]
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(ram),只读存储器(rom),可擦除可编辑只读存储器(eprom或闪速存储器),光纤装置,以及便携式光盘只读存储器(cdrom)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0100]
应当理解,本技术的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(pga),现场可编程门阵列(fpga)等。
[0101]
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0102]
此外,在本技术各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
[0103]
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本技术的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本技术的限制,本领域的普通技术人员在本技术的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1