基于神经网络的目标检测的制作方法

文档序号:18351701发布日期:2019-08-06 22:31阅读:117来源:国知局
基于神经网络的目标检测的制作方法

从图像或视频中检测人是很多应用的基础,例如,身份识别和动作识别等。目前,一种方案是基于人脸的检测。然而,在一些情况下,对人脸进行检测是比较困难的。例如,在低分辨率、遮挡和头部姿势变化较大的情况下。另一种方案是通过检测身体来对人进行检测。然而,身体的关节的姿势变化太大,也存在遮挡的情况,这都会对身体检测造成负面的影响。

因此,需要一种改进的目标检测方案。



技术实现要素:

根据本公开的实现,提供了一种基于神经网络的头部检测方案。在该方案中,给定一个图像,期望标识该图像内的一个或多个目标或其特定部位。具体地,从图像的特征图确定图像中的候选区域、第一评分以及与候选区域相关联的多个位置,第一评分指示候选区域对应于目标的特定部位的概率。从特征图确定多个第二评分,其分别指示多个位置对应于目标的多个部分的概率。基于第一评分和多个第二评分,确定候选区域的最终评分,以用于在图像中标识目标的特定部位。

提供发明内容部分是为了简化的形式来介绍对概念的选择,其在下文的具体实施方式中将被进一步描述。发明内容部分无意标识要求保护的主题的关键特征或主要特征,也无意限制要求保护的主题的范围。

附图说明

图1示出了能够实施本公开的多个实现的计算设备的框图;

图2示出了根据本公开的一个实现的神经网络的架构;

图3示出了根据本公开的一个实现的一个目标的示意图;

图4示出了根据本公开的另一实现的具有不同尺度的两个目标的示意图;

图5示出了根据本公开的一个实现的用于目标检测的方法的流程图;以及

图6示出了根据本公开的一个实现的用于训练用于目标检测的神经网络的方法的流程图。

这些附图中,相同或相似参考符号用于表示相同或相似元素。

具体实施方式

现在将参照若干示例实现来论述本公开。应当理解,论述了这些实现仅是为了使得本领域普通技术人员能够更好地理解且因此实现本公开,而不是暗示对本主题的范围的任何限制。

如本文所使用的,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。术语“基于”要被解读为“至少部分地基于”。术语“一个实现”和“一种实现”要被解读为“至少一个实现”。术语“另一个实现”要被解读为“至少一个其他实现”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

示例环境

以下参考附图来说明本公开的基本原理和若干示例实现。图1示出了能够实施本公开的多个实现的计算设备100的框图。应当理解,图1所示出的计算设备100仅仅是示例性的,而不应当构成对本公开所描述的实现的功能和范围的任何限制。如图1所示,计算设备100包括通用计算设备形式的计算设备100。计算设备100的组件可以包括但不限于一个或多个处理器或处理单元110、存储器120、存储设备130、一个或多个通信单元140、一个或多个输入设备150以及一个或多个输出设备160。

在一些实现中,计算设备100可以被实现为具有计算能力的各种用户终端或服务终端。服务终端可以是各种服务提供方提供的服务器、大型计算设备等。用户终端诸如是任意类型的移动终端、固定终端或便携式终端,包括移动手机、站点、单元、设备、多媒体计算机、多媒体平板、互联网节点、通信器、台式计算机、膝上型计算机、笔记本计算机、上网本计算机、平板计算机、个人通信系统(pcs)设备、个人导航设备、个人数字助理(pda)、音频/视频播放器、数码相机/摄像机、定位设备、电视接收器、无线电广播接收器、电子书设备、游戏设备或者其任意组合,包括这些设备的配件和外设或者其任意组合。还可预见到的是,计算设备100能够支持任意类型的针对用户的接口(诸如“可佩戴”电路等)。

处理单元110可以是实际或虚拟处理器并且能够根据存储器120中存储的程序来执行各种处理。在多处理器系统中,多个处理单元并行执行计算机可执行指令,以提高计算设备100的并行处理能力。处理单元110也可以被称为中央处理单元(cpu)、微处理器、控制器、微控制器。

计算设备100通常包括多个计算机存储介质。这样的介质可以是计算设备100可访问的任何可以获得的介质,包括但不限于易失性和非易失性介质、可拆卸和不可拆卸介质。存储器120可以是易失性存储器(例如寄存器、高速缓存、随机访问存储器(ram))、非易失性存储器(例如,只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、闪存)或其某种组合。存储器120可以包括图像处理模块122,这些程序模块被配置为执行本文所描述的各种实现的功能。图像处理模块122可以由处理单元110访问和运行,以实现相应功能。

存储设备130可以是可拆卸或不可拆卸的介质,并且可以包括机器可读介质,其能够用于存储信息和/或数据并且可以在计算设备100内被访问。计算设备100可以进一步包括另外的可拆卸/不可拆卸、易失性/非易失性存储介质。尽管未在图1中示出,可以提供用于从可拆卸、非易失性磁盘进行读取或写入的磁盘驱动和用于从可拆卸、非易失性光盘进行读取或写入的光盘驱动。在这些情况中,每个驱动可以由一个或多个数据介质接口被连接至总线(未示出)。

通信单元140实现通过通信介质与另外的计算设备进行通信。附加地,计算设备100的组件的功能可以以单个计算集群或多个计算机器来实现,这些计算机器能够通过通信连接进行通信。因此,计算设备100可以使用与一个或多个其他服务器、个人计算机(pc)或者另一个一般网络节点的逻辑连接来在联网环境中进行操作。

输入设备150可以是一个或多个各种输入设备,例如鼠标、键盘、追踪球、语音输入设备等。输出设备160可以是一个或多个输出设备,例如显示器、扬声器、打印机等。计算设备100还可以根据需要通过通信单元140与一个或多个外部设备(未示出)进行通信,外部设备诸如存储设备、显示设备等,与一个或多个使得用户与计算设备100交互的设备进行通信,或者与使得计算设备100与一个或多个其他计算设备通信的任何设备(例如,网卡、调制解调器等)进行通信。这样的通信可以经由输入/输出(i/o)接口(未示出)来执行。

计算设备100可以用于实施本公开的多种实现的图像或视频中的头部检测。视频由于可以被看作按照时间轴叠加的一系列图像,因此,在本文中在不会导致混淆的情况下可以将图像与视频互换使用。因此,在下文中,计算设备100有时也被称为“图像处理设备”。在执行头部检测时,计算设备100能够通过输入设备150接收图像170。计算设备100可以处理该图像170以将识别出该图像170中的一个或多个目标的头部,并且界定一个或多个头部的边界。计算设备100可以通过输出设备160输出经确定的头部和/或其边界,以作为计算设备100的输出180。

如上所述,目前的面部检测和身体检测存在各种各样的问题,特别是遮挡和姿态的问题。本公开的多个实现提供了一种基于部分检测的目标检测方案。例如,在人作为目标的检测中,由于头部和肩部可以近似为是刚性的,因此可以考虑头部与肩部的多个位置,并将这些位置的响应与头部的响应相结合来执行对人的检测。应当理解,该检测方案不局限于对人的检测,也可以适用于动物等其他目标。此外,应当理解,本公开的多个实现也可以应用于包括基本上为刚性的其他部分的目标的检测。

系统架构

图2示出了根据本公开的实现的神经网络200的示意图。如图2所示,图像202被提供给全卷积神经网络(fcn)204,其可以是例如googlenet。应当理解,fcn204也可以由目前已知的或者将来开发的任何其他合适的神经网络来实现,例如,残差卷积神经网络(resnet)。fcn204从图像202提取第一特征图,例如,第一特征图的分辨率可以是图像202的分辨率的1/4。fcn204将第一特征图提供给fcn206。与fcn204相同,fcn206也可以由目前已知的或者将来开发的任何其他合适的神经网络来实现,例如,卷积神经网络(cnn)。fcn206从第一特征图提取第二特征图,例如,第二特征图的分辨率可以是第一特征图的分辨率的1/2,即图像202的分辨率的1/8。fcn206将第二特征图提供给后续的区域生成网络(rpn)。应当理解,尽管图2的神经网络200包括fcn204和fcn206,本领域技术人员也可以使用更多或更少的fcn或其他类型的神经网络(例如,resnet)来生成特征图。

如图2所示,fcn206可以被连接到第一区域生成网络(rpn)224,即,fcn206所输出的第二特征图可以被提供给rpn224。在图2中,rpn224可以包括中间层212、分类层214、回归层216和218。中间层212可以从第二特征图提取特征,以输出第三特征图。例如,中间层212可以是卷积核大小为3x3的卷积层,分类层214、回归层216和218可以是卷积核大小为1x1的卷积层。然而,应当理解,中间层212、分类层214、回归层216和218中的一个或多个也可以包括更多或更少的卷积层,或者也可以包括其他任何适当类型的神经网络层。

如图2所示,rpn224包括三个输出,其中分类层214生成参考框(也称参考区域或锚点)是目标的概率的评分,回归层216对包围框进行回归,从而调节参考框以最佳地拟合预测目标,并且回归层218对多个部分的位置进行回归,从而确定多个部分的坐标。

对于每一个参考框,分类层214可以输出两个预测值,一个预测值是参考框作为背景的评分,另一个是参考框作为前景(实际目标)的评分。例如,如果使用s个参考框,则分类层214的输出通道的数目将是2s。在一些实现中,可以只考虑不同的尺度的影响,而不考虑纵横比。在这种情况下,不同的参考框可以具有不同的尺度。

对于每一个感兴趣的参考框,回归层216可以对该参考框的坐标进行回归,以输出四个预测值。这四个预测值是表征与参考框的中心的位置和参考框的大小的偏移的参数,并且可以表示一个预测框(也成预测区域)。如果一个预测框与真实框之间的iou大于阈值(例如,0.5),则认为该预测框是正样本。iou表示两个区域的交集与并集之比,从而表征两个区域之间的相似程度。应当理解,也可以使用任何其他合适的度量来表征两个区域的相似程度。

回归层218可以用于对每一个部分的坐标进行回归。例如,对于一个预测框,回归层218可以确定与该预测框相关联的多个部分的坐标。例如,预测框表示一个目标的头部,则多个部分可以表示额头、下巴、左脸和右脸,以及左肩和右肩。

图3示出了根据本公开的一个实现的一个目标的示意图,其中示出了头部区域300和多个部分的位置301-306。头部区域300可以表示预测框(也称预测区域、候选区域或候选框),相应地,多个部分的位置301-306表示预测的多个部分的位置。另外,参考框(也称参考区域)可以与头部区域300具有相同的尺度。

另外,图4示出了根据本公开的另一实现的包括多个尺度的两个目标的示意图。如图4所示,头部区域400具有第一尺度,并且头部区域410具有与第一尺度不同的第二尺度。另外,与头部区域400相关联的多个部分分别位于多个位置401-406处,并且与头部区域410相关联的多个部分分别位于多个位置411-416处。头部区域400可以表示预测区域,相应地,用于确定头部区域400的参考框(也称参考区域)具有第一尺度,并且用于确定头部区域410的参考框具有第二尺度。

此外,图3和图4也可以表示标注数据,其包括相应的标注区域(也称标注框)和相关联的多个部分的位置。例如,在图4中,头部区域400也可以表示具有第一尺度的标注区域,而头部区域410表示具有第二尺度的标注区域。相应地,多个位置401-406和多个位置411-416可以分别表示与头部区域400和410相关联的标注位置。

如图2所示,fcn206还将第二特征图提供给去卷积层208,以执行上采样操作。如上所述,第二特征图的分辨率可以是第一特征图的分辨率的1/2,并且是图像202的分辨率的1/8。在该示例中,上采样的比例可以是2倍,从而去卷积层208所输出的第四特征图的分辨率是图像202的分辨率的1/4。在求和节点210处,fcn204所输出的第一特征图可以与第四特征图相结合以将结合特征图提供给rpn226。例如,第一特征图可以与第四特征图逐元素求和。应当理解,神经网络200的结构仅仅作为示例提供,也可以增加或删除一个或多个网络层或网络模块。例如,在一些实现中,可以仅设置fcn204,并省去fcn206和去卷积层208等。

分类层222用于确定特征图上的每一个点是否属于一个特定的类的概率。rpn226可以使用多个参考框来处理多尺度变化的问题,每一个参考框可以具有一个相应的尺度。如上所述,可以将尺度或参考框的数目设置为s,并且多个部分的数目是p,则分类层222的输出通道的数目是s×(p+1),其中额外的通道用于表示背景。rpn226可以针对每一个参考框输出每一个部分的评分。rpn226的参考框的大小可以与rpn224的参考框的大小相关联,例如,可以是rpn224的参考框的大小的一半或其他合适的比例。

在一些实现中,可以使用概率分布(也称为热力图)来表示概率或评分的分布。可以将部分的热力图表示为hi,并且将表示为hi上的点。则hi可以由如下公式(1)来表示,

其中σ表示每一部分的峰值的展宽,其与相应的尺度或参考框相对应。即,使用了不同的σ来表征不同的目标的大小。以这种方式,每一个预测区域或者预测框可以涵盖相应的有效区域,而尽量少得考虑背景区域,从而提高了对图像中包括多个不同尺度的目标的检测的有效性。

在推断过程中,回归层218可以将其确定的多个部分的位置提供给rpn226。rpn226可以根据多个部分的位置来确定相应位置的评分。最终,将分类层214所输出的全局评分与分类层222所输出的部分评分进行结合以获得最终评分。例如,可以使用如下公式(2)来将两者进行结合。

其中,mglobal是分类层214所输出的全局评分,mpart是分类层222所输出的相应尺度的部分评分,p是最终响应图上的点,并且pi是第i部分的坐标。由于全局评分和局部评分针对具有不同分辨率的特征图,因此可以使用双线性插值来确定mpart(pi)的值。

在一些实现中,可以只使用多个第二评分中的较高的若干评分。例如,在6个部分的实现中,可以只考虑6个评分中的较高的3个评分。在这种情况下,可以将不太准确的数据剔除,从而提高预测准确率。例如,某个目标的左肩可能被遮挡,其对预测的准确性具有不良的影响。因此,将这些数据剔除可以提高预测准确性。

在推断过程中,神经网络200可以包括三项输出,第一项输出是回归层216所输出的预测框,第二项输出是最终评分,第三项输出是回归层218所输出的多个部分的坐标。因此,神经网络200可以产生大量的候选区域、相关联的最终评分和多个部分的坐标。在这种情况下,一些候选区域可能具有较高的重叠,因此存在冗余。如上所述,在图3和图4中示出了候选区域的多个示例。在一些实现中,可以通过对候选区域(也称预测框)执行非最大抑制(nms)以去除重叠较高的预测框。例如,可以根据最终评分对预测框进行排序,确定评分较低的预测框与评分较高的预测框之间的iou。如果iou大于阈值(例如,0.5),则可以将评分较低的预测框剔除。以这种方式,可以输出多个重叠较低的预测框。在一些实现中,还可以从这些重叠较低的预测框中进一步选择评分较高的n个预测框输出。

在训练过程中,可以将回归层218的损失函数设置为欧几里得距离损失,如公式(3)所示:

其中是第p部分的偏移值,是第p部分的真实坐标,并且xc和yc是该候选区域(也称预测框)的中心。通过优化该损失函数,使预测位置与候选区域的中心之间的偏移值和真实位置与候选区域的中心之间的偏移值的区别最小化。

在一些实现中,可以将分类层214、回归层216和218的三个损失函数相结合以进行训练。例如,可以针对在回归层216中确定的每个正样本,通过相结合的损失函数最小化来训练神经网络200,特别是rpn224。

在训练过程中,rpn226可以根据多个部分的真实位置来确定相应的评分,并通过更新神经网络200的参数将多个部分的真实位置的评分逐渐逼近所述多个部分的标签。在训练数据中,可以只标记每一个部分的位置,而没有标记每一个部分的大小。然而,在多尺度的情况下,每一个位置可能对应于多个参考框。因此,需要确定每一个部分的位置与参考框之间的关系。例如,可以针对每一个部分使用伪包围框。具体地,可以使用头部的大小来估计每一个部分的大小。将第i个人的头部标注可以表示为(xi,yi,ωi,hi),其中(xi,yi)表示头部的中心,并且(ωi,hi)表示头部的宽度和高度。假设该人的第p部分位于中,则该部分的伪包围框可以表示为其中α表示部分检测的超参数,例如,可以设置为0.5。

在训练过程中,每一个部分的伪包围框可以用作相应的点的真实框。在一些实现中,每个点具有多个参考框,可以针对每一个参考框来确定其与真实框的iou。可以将与任何真实框的iou大于阈值(例如,0.5)的参考框设置为正样本。例如,可以将正样本的标签设置为1,并将负样本的标签设置为0。

如图2所示,分类层222可以执行多类分类,并可以针对每个尺度输出每一个部分的概率或评分。通过针对每个尺度将每一个部分的概率逼近相应的标签(例如,1或0)来更新神经网络200的参数。例如,第一部分的具有某个尺度的参考框与真实框的iou大于阈值,则该参考框可以被认为是正样本,从而该参考框的标签应当为1。可以将在该尺度下第一部分的概率或评分逼近该标签(在该示例中为1)来更新神经网络200的参数。在一些实现中,可以仅对正样本进行上述训练过程,并且选择正样本的过程因此也可以被称作下采样。

根据本公开的多个实现的目标检测的效果相对于脸部检测和身体检测具有显著提升。对于遮挡和姿势变化很大的情况,本公开的多个实现也可以具有良好的检测效果。另外,由于神经网络200可以以全卷积神经网络的形式来实现,因此具有较高的效率,并且也可以端对端地进行训练,这相对于常规的两步算法显然是更优的。

尽管以上结合图2介绍了根据本公开的多个实现的神经网络200的架构和原理,然而应当理解,在不脱离本公开的范围的情形下,可以对神经网络200进行各种添加、删除、替换和修改。

示例过程

图5示出了根据本公开一些实现的用于目标检测的方法500的流程图。方法500可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的图像处理模块122处。

在502,从图像的特征图确定图像中的候选区域、第一评分以及与候选区域相关联的多个位置。第一评分指示候选区域对应于目标的特定部位的概率。例如,这可以通过图2所示的rpn224来确定,其中所述特征图可以表示图2中的fcn206所输出的第二特征图,图像可以是图2所示的图像202,并且目标的特定部位可以是人的头部。例如,候选区域可以通过回归层216来确定,第一评分可以通过分类层214来确定,并且多个位置可以通过回归层218来确定。

在一些实现中,可以通过确定多个位置与候选区域之间的位置关系来确定多个位置。例如,回归层218可以确定多个位置相对于候选区域的中心的偏移量。将偏移量与候选区域的中心进行结合可以最终确定多个位置。例如,候选区域的中心的位置是(100,100),一个位置的偏移量是(50,50),则可以确定该位置是在(150,150)处。在一些实现中,由于图像中包括具有不同尺度的多个目标,可以设置彼此不同的多个尺度。在这种情况下,可以将偏移量与相应的尺度进行结合,例如,一个位置的偏移量是(5,5)并且相应的尺度是10,则实际的偏移量为(50,50)。可以基于实际的偏移量与候选区域的中心来确定相应的位置。

在一些实现中,可以设置多个参考框,每一个参考框具有相应的尺度。因此,候选区域、第一评分和多个位置可以是基于其中一个参考框来确定的。为了方便描述,将该参考框称为第一参考框,并将相应的尺度称为第一尺度。例如,在确定候选区域时,可以确定相对于该参考框的四个参数(中心的两个位置坐标、宽度和高度)的偏移值。

在504,从特征图确定多个第二评分,其分别指示所述多个位置对应于目标的多个部分的概率。多个部分可以位于目标的头部和肩部中。例如,多个部分可以是头部和肩部的六个部分,其中4个部分位于头部中,2个部分位于肩部中。例如,头部的4个部分可以是额头、下巴、左脸和右脸,肩部的2个部分可以是左肩和右肩。

在一些实现中,可以从特征图确定多个概率分布(也称热力图),每一个概率分布与一个尺度和一个部分相关联。可以基于多个位置、第一尺度和多个概率分布来确定多个第二评分。例如,由于多个位置是基于第一尺度来确定的,因此,可以从与第一尺度相关联的多个概率分布来确定多个位置的评分。例如,给定一个尺度,多个部分中的每一个部分与一个概率分布相关联。如果第一位置与左肩对应,则从与左肩相关联的概率分布中来确定第一位置的概率或评分。以这种方式,可以确定多个位置的概率或评分。

在一些实现中,可以增加特征图的分辨率以形成放大特征图,并基于放大特征图来确定多个第二评分。由于各个部分的较小,通过增大特征图的分辨率,可以包括更多的局部信息,从而使得各个部分的概率或评分更加准确。在图2的示例中,将第二特征图放大之后与第一特征图逐元素相加,并根据相加之后的特征图来确定多个第二评分。以这种方式可以获得更好的特征以提供给rpn226,从而更好地确定多个第二评分。

在506,基于第一评分和多个第二评分,确定候选区域的最终评分。例如,可以将第一评分与多个第二评分相加来确定候选区域的最终评分。在一些实现中,可以只使用多个第二评分中的较高的若干评分。例如,在6个部分的实现中,可以只考虑6个评分中的较高的3个评分。在这种情况下,可以将不太准确的数据剔除,从而提高预测准确率。例如,某个目标的左肩可能被遮挡,其对预测的准确性具有不良的影响。因此,将这些数据剔除可以提高预测准确性。

以上主要结合一个候选区域进行了描述,应当理解,在应用过程中,方法500可以产生大量的候选区域、相关联的最终评分和多个位置。在这种情况下,一些候选区域可能具有较高的重叠,因此存在冗余。在一些实现中,可以通过对候选区域(也称预测框)执行非最大抑制(nms)以去除重叠较高的预测框。例如,可以根据最终评分对预测框进行排序,确定评分较低的预测框与评分较高的预测框之间的iou。如果iou大于阈值(例如,0.5),则可以将评分较低的预测框剔除。以这种方式,可以输出多个重叠较低的预测框。在一些实现中,还可以从这些重叠较低的预测框中进一步选择评分较高的n个预测框输出。

图6示出了根据本公开一些实现的用于目标检测的方法600的流程图。方法600可以由计算设备100来实现,例如可以被实现在计算设备100的存储器120中的图像处理模块122处。

在602,获取包括标注区域和与标注区域相关联的多个标注位置的图像,标注区域指示一个目标的特定部位并且多个标注位置对应于该目标的多个部分。例如,图像可以是图2所示的图像202或者图3或图4所示的图像,并且目标的特定部位可以是人的头部,并且多个部分可以位于人的头部和肩部中。例如,多个部分可以是头部和肩部的六个部分,其中4个部分位于头部中,2个部分位于肩部中。例如,头部的4个部分可以是额头、下巴、左脸和右脸,肩部的2个部分可以是左肩和右肩。在该示例中,图像202可以指定多个头部区域,每一个头部区域由相应的标注框所界定,并且图像202还可以指定与每一个头部区域相对应的多个标注位置的坐标。

在604,从图像的特征图确定图像中的候选区域、第一评分以及与候选区域相关联的多个位置,第一评分指示候选区域对应于特定部位的概率。例如,这可以通过图2所示的rpn224来确定,其中所述特征图可以表示图2中的fcn206所输出的第二特征图。例如,候选区域可以通过回归层216来确定,第一评分可以通过分类层214来确定,并且多个位置可以通过回归层218来确定。

在一些实现中,可以通过确定多个位置与候选区域之间的位置关系来确定多个位置。例如,回归层218可以确定多个位置相对于候选区域的中心的偏移量。将偏移量与候选区域的中心进行结合可以最终确定多个位置。例如,候选区域的中心的位置是(100,100),一个位置的偏移量是(50,50),则可以确定该位置是在(150,150)处。在一些实现中,由于图像中包括具有不同尺度的多个目标,可以设置彼此不同的多个尺度。在这种情况下,可以将偏移量与相应的尺度进行结合,例如,一个位置的偏移量是(5,5)并且相应的尺度是10,则实际的偏移量为(50,50)。可以基于实际的偏移量与候选区域的中心来确定相应的位置。

在一些实现中,可以设置多个参考框,每一个参考框具有相应的尺度。因此,候选区域、第一评分和多个位置可以是基于其中一个参考框来确定的。为了方便描述,将该参考框称为第一参考框,并将相应的尺度称为第一尺度。例如,在确定候选区域时,可以确定相对于该参考框的四个参数(中心的位置、宽和高)的偏移。

在一些实现中,可以仅针对正样本执行上述操作。例如,如果确定候选区域与图像中的标注区域的重叠(例如,iou)高于阈值,则执行确定多个位置的操作。

在606,从特征图确定多个第二评分,其分别指示多个标注位置对应于目标的多个部分的概率。与方法500不同,这里使用的是标注位置而不是预测位置。

在一些实现中,可以从特征图确定多个概率分布(也称热力图),每一个概率分布与一个尺度和一个部分相关联。可以基于多个位置、第一尺度和多个概率分布来确定多个第二评分。例如,由于多个位置是基于第一尺度来确定的,因此,可以从与第一尺度相关联的多个概率分布来确定多个位置的评分。例如,给定一个尺度,多个部分中的每一个部分与一个概率分布相关联。如果第一位置与左肩对应,则从与左肩相关联的概率分布中来确定第一位置的概率或评分。以这种方式,可以确定多个位置的概率或评分。

在一些实现中,可以增加特征图的分辨率以形成放大特征图,并基于放大特征图来确定多个第二评分。由于各个部分的较小,通过增大特征图的分辨率,可以包括更多的局部信息,从而使得各个部分的概率或评分更加准确。在图2的示例中,将第二特征图放大之后与第一特征图逐元素相加,并根据相加之后的特征图来确定多个第二评分。以这种方式可以获得更好的特征以提供给rpn226,从而更好地确定多个第二评分。

在606,基于候选区域、第一评分、多个第二评分、多个位置、标注区域和多个标注位置来更新神经网络。在一些实现中,可以通过最小化多个位置与多个标注位置之间的距离来更新神经网络。这可以通过如公式(3)所示的欧几里得距离损失来实现。

在一些实现中,可以基于标注区域的大小,确定与多个标注位置相关联的多个子区域。例如,可以将多个子区域的大小设置为标注区域的一半,并基于多个标注的位置确定多个子区域。这些子区域在图2的描述中被称为伪包围框。由于每一个位置可以设置有多个参考框,因此,可以基于多个子区域与多个标注位置处的多个参考框来确定多个参考框的多个标签。标签可以是1或0,其中1表示正样本,0表示负样本。可以仅对正样本进行训练,因此该过程也可以称为下采样。例如,可以通过最小化多个第二评分与多个标签中与第一尺度相关联的标签之间的区别来更新神经网络。

示例实现方式

以下列出了本公开的一些示例实现方式。

根据一些实现,提供了一种设备。该设备包括:处理单元;以及存储器,耦合至所述处理单元并且包括存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行动作。所述动作包括:从图像的特征图确定所述图像中的候选区域、第一评分以及与所述候选区域相关联的多个位置,所述第一评分指示所述候选区域对应于目标的特定部位的概率;从所述特征图确定多个第二评分,其分别指示所述多个位置对应于所述目标的多个部分的概率;以及基于所述第一评分和所述多个第二评分,确定所述候选区域的最终评分,以用于在所述图像中标识所述目标的所述特定部位。

在一些实现中,确定所述多个位置包括:确定所述多个位置相对于所述候选区域之间的位置关系;以及基于所述位置关系来确定所述多个位置。

在一些实现中,所述候选区域、所述第一评分和所述多个位置基于彼此不同的多个尺度中的第一尺度来确定。

在一些实现中,从所述特征图确定所述多个第二评分包括:从所述特征图确定多个概率分布,所述多个概率分布分别与所述多个尺度和所述多个部分相关联;以及在所述多个概率分布中的与所述第一尺度相关联的概率分布中,基于所述多个位置确定所述多个第二评分。

在一些实现中,从所述特征图确定所述多个第二评分包括:增加所述特征图的分辨率以形成放大特征图;以及基于所述放大特征图,确定所述多个第二评分。

在一些实现中,所述特定区域是所述目标的头部,并且所述目标的多个部分位于所述目标的所述头部和肩部中。

根据一些实现,提供了一种设备。该设备包括:处理单元;以及存储器,耦合至所述处理单元并且包括存储于其上的指令,所述指令在由所述处理单元执行时使所述设备执行动作,所述动作包括:获取包括标注区域和与所述标注区域相关联的多个标注位置的图像,所述标注区域指示一个目标的特定部位并且所述多个标注位置对应于所述目标的多个部分;利用神经网络从所述图像的特征图确定所述图像中的候选区域、第一评分以及与所述候选区域相关联的多个位置,所述第一评分指示所述候选区域对应于所述特定部位的概率;利用所述神经网络从所述特征图确定多个第二评分,其分别指示所述多个标注位置对应于所述目标的多个部分的概率;以及基于所述候选区域、所述第一评分、所述多个第二评分、所述多个位置、所述标注区域和所述多个标注位置来更新所述神经网络。

在一些实现中,更新所述神经网络包括:通过最小化所述多个位置与所述多个标注位置之间的距离来更新所述神经网络。

在一些实现中,确定所述多个位置包括:响应于确定所述候选区域与所述标注区域的重叠高于阈值,确定所述多个位置。

在一些实现中,确定所述多个位置包括:确定所述多个位置与所述候选区域之间的位置关系;以及基于所述位置关系来确定所述多个位置。

在一些实现中,所述候选区域、所述第一评分和所述多个位置基于彼此不同的多个尺度中的第一尺度来确定。

在一些实现中,从所述特征图确定所述多个第二评分包括:从所述特征图确定多个概率分布,所述多个概率分布分别与所述多个尺度和所述多个部分相关联;以及在所述多个概率分布中的与所述第一尺度相关联的概率分布中,基于所述多个位置确定所述多个第二评分。

在一些实现中,更新所述神经网络包括:基于所述标注区域的大小,确定与所述多个标注位置相关联的多个子区域;基于所述多个子区域来确定与所述第一尺度和所述多个标注位置相关联的多个标签;以及通过最小化所述多个第二评分与所述多个标签之间的区别来更新所述神经网络。

在一些实现中,从所述特征图确定所述多个位置的多个第二评分包括:增加所述特征图的分辨率以形成放大特征图;以及基于所述放大特征图,确定所述多个第二评分。

在一些实现中,所述特定区域是所述目标的头部,并且所述目标的多个部分位于所述目标的所述头部和肩部中。

根据一些实现,提供了一种方法。该方法包括:从图像的特征图确定所述图像中的候选区域、第一评分以及与所述候选区域相关联的多个位置,所述第一评分指示所述候选区域对应于目标的特定部位的概率;从所述特征图确定多个第二评分,其分别指示所述多个位置对应于所述目标的多个部分的概率;以及基于所述第一评分和所述多个第二评分,确定所述候选区域的最终评分,以用于在所述图像中标识所述目标的所述特定部位。

在一些实现中,确定所述多个位置包括:确定所述多个位置与所述候选区域之间的位置关系;以及基于所述位置关系来确定所述多个位置。

在一些实现中,所述候选区域、所述第一评分和所述多个位置基于彼此不同的多个尺度中的第一尺度来确定。

在一些实现中,从所述特征图确定所述多个第二评分包括:从所述特征图确定多个概率分布,所述多个概率分布分别与所述多个尺度和所述多个部分相关联;以及在所述多个概率分布中的与所述第一尺度相关联的概率分布中,基于所述多个位置确定所述多个第二评分。

在一些实现中,从所述特征图确定所述多个第二评分包括:增加所述特征图的分辨率以形成放大特征图;以及基于所述放大特征图,确定所述多个第二评分。

在一些实现中,所述特定区域是所述目标的头部,并且所述目标的多个部分位于所述目标的所述头部和肩部中。

根据一些实现,提供了一种方法。该方法包括:获取包括标注区域和与所述标注区域相关联的多个标注位置的图像,所述标注区域指示一个目标的特定部位并且所述多个标注位置对应于所述目标的多个部分;利用神经网络从所述图像的特征图确定所述图像中的候选区域、第一评分以及与所述候选区域相关联的多个位置,所述第一评分指示所述候选区域对应于所述特定部位的概率;利用所述神经网络从所述特征图确定多个第二评分,其分别指示所述多个标注位置对应于所述目标的多个部分的概率;以及基于所述候选区域、所述第一评分、所述多个第二评分、所述多个位置、所述标注区域和所述多个标注位置来更新所述神经网络。

在一些实现中,更新所述神经网络包括:通过最小化所述多个位置与所述多个标注位置之间的距离来更新所述神经网络。

在一些实现中,确定所述多个位置包括:响应于确定所述候选区域与所述标注区域的重叠高于阈值,确定所述多个位置。

在一些实现中,确定所述多个位置包括:确定所述多个位置相对于所述候选区域的中心的偏移量;以及基于所述多个偏移量来确定所述多个位置。

在一些实现中,所述候选区域、所述第一评分和所述多个位置基于彼此不同的多个尺度中的第一尺度来确定。

在一些实现中,从所述特征图确定所述多个第二评分包括:从所述特征图确定多个概率分布,所述多个概率分布分别与所述多个尺度和所述多个部分相关联;以及在所述多个概率分布中的与所述第一尺度相关联的概率分布中,基于所述多个位置确定所述多个第二评分。

在一些实现中,更新所述神经网络包括:基于所述区域的大小,确定与所述多个标注位置相关联的多个子区域;基于所述多个子区域来确定与所述第一尺度和所述多个标注位置相关联的多个标签;以及通过最小化所述多个第二评分与所述多个标签之间的区别来更新所述神经网络。

在一些实现中,从所述特征图确定所述多个位置的多个第二评分包括:增加所述特征图的分辨率以形成放大特征图;以及基于所述放大特征图,确定所述多个第二评分。

在一些实现中,所述特定区域是所述目标的头部,并且所述目标的多个部分位于所述目标的所述头部和肩部中。

根据一些实现,提供了一种计算机可读介质,其上存储有计算机可执行指令,计算机可执行指令在由设备执行时使设备执行以上方面中的方法。

本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)、复杂可编程逻辑设备(cpld)等等。此外,本文中以上描述的功能可以至少部分地由图形处理单元(gpu)来执行。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实现的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

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