首页> 中国专利> 具有低空间抖动、低延迟和低功耗的对象和关键点检测系统

具有低空间抖动、低延迟和低功耗的对象和关键点检测系统

摘要

本公开提供了视频对象和关键点定位检测技术。系统包括检测系统,用于生成对象的关键点的定位以及与定位相关联的概率,以及稳定性系统,用于稳定检测到的对象的关键点的定位。在一些方面,所生成的概率是输入图像内的二维阵列对应的定位,并且稳定性系统将所生成的概率拟合到二维概率分布函数。

著录项

  • 公开/公告号CN113822122A

    专利类型发明专利

  • 公开/公告日2021-12-21

    原文格式PDF

  • 申请/专利权人 苹果公司;

    申请/专利号CN202110678829.7

  • 申请日2021-06-18

  • 分类号G06K9/00(20060101);G06K9/32(20060101);G06K9/46(20060101);G06K9/62(20060101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11602 北京市汉坤律师事务所;

  • 代理人魏小薇;吴丽丽

  • 地址 美国加利福尼亚州

  • 入库时间 2023-06-19 13:46:35

说明书

本申请要求2020年6月18日提交的名称为“Object and Keypoint DetectionSystem with Low Spatial Jitter,Low Latency and Low Power Usage”的美国专利申请63/040,909的优先权,该专利申请的公开内容据此全文以引用方式并入本文。

背景技术

本公开涉及对象和关键点检测系统,并且具体地讲,涉及对空间抖动具有稳健性的此类系统。

许多现代视频应用,诸如增强相关、虚拟现实和用于人类用户交互的其他现代系统,需要检测和定位常见对象。然而,用于对象检测和定位的现有技术往往需要许多处理资源和功率,尤其是在实时应用时或在需要更高可靠性和稳定性时。因此,此类技术可在处理资源有限的处理环境中找到有限的应用,诸如与其他计算平台相比可具有更少处理资源的移动计算设备。

附图说明

图1示出了根据本公开的一个方面的系统。

图2是根据本公开的实施方案的关键点检测器的功能框图。

图3示出了根据本公开的实施方案的神经网络系统。

图4和图5示出了神经网络系统中的网络元件的示例性分布。

图6是根据本公开的方面的手检测系统的功能框图。

图7是根据本公开的实施方案的设备的框图。

具体实施方式

本发明所公开的技术包括从输入视频的内容中检测预先确定的对象,包括生成表示其中估计存在预先确定的对象的输入视频的坐标和该预先确定的对象在这些坐标处的相应估计概率的数据。可通过将该预先确定的对象在这些坐标处的估计概率拟合到概率分布函数来分配该预先确定的对象的最终定位。

在各方面,检测该预先确定的对象可包括根据神经网络检测该对象的预先确定的关键点的坐标。该神经网络可包括以交替级级联连接的多个神经网络元件和多个稳定性模块。稳定性模块可包括随机噪声源、用于将来自前一级的神经元件输出归一化至随机噪声源的量值的缩放器、以及具有耦接至随机噪声源和缩放器的输入的加法器。

在一个方面,该预先确定的对象可以是人手。该检测可包括检测人手的关键点,以及通过根据预先确定的手势模式对手的最终检测到的定位随时间推移进行分类来检测人手的手势。在一个方面,关键点检测系统可以区分手的“手性”,即,预先确定的对象是表示人类受检者的左手还是人类受检者的右手。该关键点检测系统可以识别和区分具有手性特征的其他元素—可能在图像内容的其他地方具有镜像对应物的内容对象。

本公开呈现了用于对象及其相关联的关键点的关键点检测系统,该关键点检测系统克服了传统系统中存在的许多限制,诸如:

a.需要深度传感器,这会导致高功耗;

b.需要高处理资源并且表现出低分析帧速率;

c.关键点显著抖动的不稳定检测;

d.由于低帧速率和采用附加的时间平滑滤波器两者而引起的高延迟。

图1示出了根据本公开的方面的系统100。系统100可包括关键点检测器110、稳定性模块120、持久性检测器130和滤波器系统140。系统100可接受输入视频序列,该输入视频序列可由相机系统提供或可方便地从存储装置(未示出)检索。该系统可输出识别检测到的对象的数量和那些对象在视频序列的帧上的坐标的数据。

关键点检测器110可以检测来自图像内容内的预先确定的对象,并且可以输出表示如此检测到的每个对象的定位的坐标。如此检测到的对象的数量可基于输入视频序列中呈现的内容而变化。关键点检测器110可以体现为具有从训练数据获得的网络权重115的神经网络系统,这些网络权重确定关键点检测器110可以识别的对象的类型。例如,可以训练关键点检测器110以识别人脸、人体、人手、预先确定的动物类型等。如所讨论的,可以训练关键点检测以在图像内容中将对象的左手与右手区分开。关键点检测器110可以输出表示从视频数据检测到的关键点的坐标和二维概率分布的数据。当训练关键点检测器110以识别不同类型的多种类型的对象(例如,人体和人手)时,关键点检测器110也可以输出如此识别的对象的类型的标识符。在一个方面,关键点检测器100可以为每个检测到的对象产生包括与检测到的对象的关键特征部对应的定位列表的输出。

稳定性模块120可以根据由关键点检测器110输出的坐标数据和概率分布来确定关键点的最终坐标位置。稳定性模块可执行曲线拟合操作以将坐标和概率数据映射到预期分布函数,诸如高斯分布函数或n阶多项式分布函数。例如,对于高斯函数,关键点坐标可以以近似高斯函数的平均值来导出。在一个实施方案中,稳定性模块120可以用确定性函数拟合概率分布的时间序列,从而将相对较高的权重应用于来自更近的帧的分布,而不是将权重应用于时间上更远的帧。稳定性模块120可以在将坐标/概率数据映射到预期分布函数之后从坐标/概率数据的最大值中选择关键点的最终定位。

预期稳定性模块120的操作提供了比根据其最大估计概率分配关键点定位的其他方法更高的性能。此类其他方法导致不稳定性,因为它们在概率估计中受到噪声的影响。如上所讨论的,稳定性模块120可以通过用确定性平滑函数近似每个概率分布来减小此类噪声特征的影响。此外,稳定性模块120不需要学习参数,因此稳定性模块120在操作的训练阶段和测试阶段期间以相同的方式表现。对于视频输入,稳定性模块120可以用确定性函数拟合概率分布序列。来自最近处理的视频帧的概率分布可被适配成比“较旧的”、距离更远的处理的帧更好地拟合确定性函数。

持久性检测器130可以识别在跨连续视频帧的图像数据内持久的检测到的对象。当对象关键点在两个或更多个相邻帧中彼此处于预先确定的阈值距离内并且在适用的情况下具有常见类型时,对象可被识别为持久的。当对象被识别为跨多个帧持久时,持久性检测器130可以将标识符(ID)分配给对象的那些实例,并且识别对象的关键点在其中它们出现的帧的跨度内的坐标。

滤波器140可将时间滤波应用于表示关键点的坐标数据。滤波器140可以平滑关键点坐标数据,这可以减少帧到帧抖动,否则如果例如边界框叠加在包含检测到的关键点的图像数据上,则可以观察到帧到帧抖动。关键点坐标可以通过适当的接口导出到其他系统部件,诸如操作系统150或应用。

在一个实施方案中,时间滤波器140可应用滤波,诸如卡尔曼滤波器、One-Euro滤波器等,以使对象关键点在一段时间内的轨迹平滑。在检测到的对象在一系列帧上进行整理之后,时间滤波器单独地平滑每个关键点。在实践中,时间滤波可应用于多个(>2)相邻帧。当对象移动的加速度小于阈值时,可启用时间滤波器,或者可通过加速度的函数对时间滤波器进行加权,使得时间滤波器不引入可观察到的延迟。当对象以大加速度移动或具有移动方向的突然改变时,时间平滑滤波器可被不再强调或禁用,并且来自持久性检测器130的输出可用作系统输出。

图2是根据本公开的实施方案的关键点检测器200的功能框图。关键点检测器200可以包括对象边界框检测器210、区域滤波器220和对象关键点检测器230。关键点检测器200可以应用于图1的系统100中。

对象边界框检测器210可从视频内容中检测预先确定类型的对象。通常,对象边界框检测器210可在视频序列的每个帧上迭代以识别图像内容内的对象。对象边界框检测器210可由神经网络和由训练序列确定的权重215来体现。对象边界框检测器210可输出识别其中检测到预先确定的对象的每个帧的空间区域的数据、指示区域包含对象的估计可能性的置信度分数、以及在其中检测到多种类型的对象的具体实施中的对象类型。

如所讨论的,在一个方面,对象边界框检测器可以通过区分作为彼此的对称反射的两个不同对象来检测对象的手性。例如,如果人手是检测到的预先确定类型的对象,则对于检测到的手,对象边界框检测器210可以区分右手和左手,并且输出所检测到的手的手性的指示。

区域滤波器220可以提取对应于由对象边界框检测器210识别的区域的图像内容,并且将该内容作为裁剪区域输出到对象关键点检测器230。在一个方面,区域滤波器220可以根据管控例如要由对象关键点检测器230处理多少个检测到的对象或要由对象关键点检测器230处理哪些类型的对象的配置设置225来操作。当配置设置225指示向对象关键点检测器230输出比由对象边界框检测器210检测到的更少数量的区域时,区域滤波器220可以根据其相对尺寸(例如,将较大区域优先于较小区域)或根据其相对置信度分数(将具有较高置信度分数的区域优先于具有较低置信度分数的其他区域)来选择要输出的区域。一旦部署,配置设置225就可由关键点检测器200的设计者或操作关键点检测器200的用户限定。

对象关键点检测器230可以从表示检测到的对象的图像数据内检测对象关键点。对象关键点检测器230可以体现为具有管控网络操作的权重235的神经网络。对象关键点通常表示系统被配置为检测的对象的预先确定的结构部件。对于经过训练以检测人体的系统,关键点可以对应于人体的预先确定的结构元件,诸如体内关节(手腕、肘、肩、髋、膝、踝等)、头部的顶部、下巴等的定位。对于经过训练以检测人脸的系统,关键点可以对应于人脸的预先确定的结构元件,诸如发际线、眉毛、眼睛、鼻子、耳朵、嘴唇、下巴等。对于经过训练以检测人手的系统,关键点可以对应于人手的预先确定的结构元件,诸如手腕、沿每根手指和拇指的关节等。关键点对象的数量和类型通常将基于训练系统进行检测的对象的类型而变化。对象关键点检测器230可以输出每个输入裁剪区域的关键点坐标的列表。由对象关键点检测器230输出的关键点坐标可以表示关键点检测器200的最终输出。

图3示出了根据本公开的实施方案的神经网络系统300。神经网络系统300可包括级联连接的多个神经网络元件310.1、310.2、...、320.n和稳定层320.1、320.2、...、320.n。可根据为神经网络系统300建立的权重330来操作神经网络元件310.1、310.2、...、320.n和稳定层320.1、320.2、...、320.n。

稳定层(例如,层310.1)各自可包括分布正则化单元322.1、加法器324.1和随机噪声发生器326.1。分布正则化单元322.1可接收来自前一神经网络元件310.1的输出。它可将输出的量值归一化为与由随机噪声发生器326.1生成的噪声水平相称的水平。加法器324.1可将分布正则化单元322.1和随机噪声发生器326.1的输出相加,并输出神经网络元件的下一层(在稳定层320.1的情况下为元件310.2)的聚合输出。对于最终稳定层320.n,加法器324.n的输出可成为神经网络系统300的最终输出。

如所讨论的,可根据为神经网络系统300建立的权重330来操作神经网络元件310.1、310.2、...、320.n和稳定层320.1、320.2、...、320.n。当神经网络系统300根据需要操作时,可根据输入到第一神经网络300的训练视频数据以及从最终稳定层320.n观察的预期输出来训练系统300。当从系统300观察到不期望的输出时,可以调整系统300内的权重330,直到系统300收敛于期望的操作。此后,系统300可用于新生成的视频上的运行时场景。

图3所示的架构可以应用于对象边界框检测器210的神经网络,并且也可以应用于图2所示的对象关键点检测器230的神经网络。对于对象边界框检测器210,系统300可具有根据对象检测过程从训练系统300导出的权重330。网络300可将多个相邻视频帧作为输入,即,通过在实时分析期间回看多个帧,融合网络300中的相邻帧并基于先前帧的序列预测边界框。类似地,对于关键点检测器230,系统300可具有根据关键点检测过程从训练系统300导出的权重330。网络300可将多个相邻视频帧作为输入,即,通过在实时分析期间回看多个帧,并且基于先前帧的序列预测关键点定位。通过回看先前的帧,该网络可能能够减少在每个帧中捕获的噪声并产生更时间平滑和准确的结果。

稳定层320.1、320.2、...、320.n可减少神经网络系统300的关键点抖动。关键点抖动可能由输入图像的小扰动引起,例如相机传感器噪声、对象在相机视野中的取向的轻微变化、小的/微妙的相机运动等。当输入图像略有变化时,普通神经网络的潜在特征可表现出剧烈变化,并且在基于神经网络的检测系统的关键点定位的输出中引起抖动。

在训练期间,分布正则化框(诸如322.1)可以学习利用指定分布对输入(来自前一层的输出)进行正则化的变换。该分布被选择为不淹没增加的噪声。可经由交叉验证来选择噪声的最佳类型和能量。即使输入因增加的噪声而变化,该网络也可以利用潜在特征的邻域并学习输出相同的潜在特征。

图3的架构通过将由神经网络内的元件识别的潜在特征的分布归一化使得潜在特征输出不淹没来自随机噪声发生器326.1、326.2、...、326.n的噪声来避免抖动问题。增加的噪声可遵循任何期望的分布,诸如高斯噪声和拉普拉斯噪声。因此,每个稳定模块320.1、320.2、...、320.n可增加网络对扰动的稳健性。当输入为帧序列时,稳定模块可进一步改善对于时间噪声(抖动)的网络稳定性。

在一个实施方案中,稳定层(诸如320.1)可从对应的先前神经网络元件(诸如310.1)获取输出作为其输入。该输入穿过分布正则化框(诸如322.1)。分布正则化框的输出可被直接用作下一层的输出。在该实施方案中,没有增加噪声到分布正则化框的输出。

预期在图3的架构中采用的稳定技术将提供优于将噪声直接注入神经网络元件的输出中的其他技术的优点。将噪声直接注入潜在特征的应用通常可以在训练期间通过神经网络克服,该神经网络通过学习生成具有大SNR(信噪比)的潜在特征来“欺骗”增加的噪声,以淹没增加的噪声。此外,使用将高斯噪声添加到输入图像上的去噪自动编码器不能模仿由相对于相机的轻微手姿势变化引起的变化,该变化导致不减少关键点抖动的次优训练。然而,上文提出的稳定技术在多个隐藏层的潜在特征上增加随机噪声,这允许网络利用这些潜在特征的邻域并改善网络在这些邻域上的光滑度。

图3中讨论的稳定层提供了用于稳定由神经网络系统识别的潜在特征并改善潜在特征对噪声的稳健性的一般方法。因此,稳定层可用于其他应用,诸如对象检测和人体关键点检测。

如所讨论的,神经网络元件310.1、310.2、...、310.n可对应于神经网络的预先确定的元件。神经网络通常被建模为组织成层的多个神经元,如图4中示意性地所示。在一个具体实施中,神经网络元件310.1、310.2、...、310.n可被选择为对应于这些层410至430。在其他方面,如图5中示意性地所示,神经网络元件310.1、310.2、...、310.n可根据其他选择协议(诸如例如,各个神经元被赋予识别的潜在特征)被选择为对应于神经元的组510至530。可从神经网络中选择神经网络元件310.1、310.2、...、310.n以适应个体应用需求。

图6是根据本公开的方面的手检测系统600的功能框图。对象检测器600可包括重采样器610、手/身体检测器620、裁剪单元630和手检测器640。系统600可作为对象边界框检测器210(图2)应用,该对象边界框检测器适于检测人手在输入视频内的定位。手检测器可采用视频序列作为输入。

重采样器610可生成输入视频的低分辨率表示并将其输出到手/身体检测器620。顾名思义,手/身体检测器620可生成识别在低分辨率视频内检测到的人手或人体的定位的数据。手/身体检测器620可以是配置有表示手检测和身体检测分类训练的权重的神经网络对象检测器。

当手/身体检测器620在视频的低分辨率表示中检测到手时,手/身体检测器620可输出表示在其中检测到手的图像数据中的定位的边界框的坐标。这些坐标可被缩放以表示输入到对象检测器600的原始视频中的边界框的坐标,该原始视频可具有比输入到手/身体检测器620的分辨率降低的视频更高的分辨率。

可能发生的情况是,手/身体检测器620在视频的低分辨率表示中检测到人体的存在,但它不能检测到人手的存在。当手在输入视频中出现,但它们具有相对小的尺寸,这阻止手在视频的低分辨率表示中被检测到,此时此类操作可发生。手/身体检测器620可向裁剪单元630输出识别在图像数据内检测到的人体定位的数据。

裁剪单元630可裁剪检测到的人体区域中的源视频数据,从而为围绕身体的边界框定位的附加图像数据留出边际。由裁剪单元630生成的裁剪区域可被输出到手检测器640,该手检测器是被训练以检测人手的另一个神经网络。手检测器640可生成识别其中检测到人手的图像数据的坐标的输出数据。与手/身体检测器620一样,人手的坐标可被缩放以表示在其中检测到人手的源视频内的定位。

任选地,裁剪单元630可包括轻质手检测器(未示出),该轻质手检测器被配置为在由手/身体检测器620识别的区域内粗略地检测人手。可应用轻质手检测来节省处理资源,否则手检测器640可能花费这些处理资源以分析由手/身体检测器620识别的区域中的所有图像数据(在裁剪之后)。如果轻质手检测未针对给定区域识别人手的存在,则可针对相应区域省略手检测器640的处理。

可根据需要在图像数据的不同分辨率上重复裁剪单元630和手检测640的操作。例如,图6示出了第二重采样器650、第二裁剪单元660和第二手检测器670。第二重采样器可以高于由第一重采样器610生成的低分辨率表示但低于源视频的分辨率的中间分辨率生成输入视频的表示。在该实施方案中,手检测可由在输入视频的低分辨率表示上操作的手检测器620第一次执行,这可能识别在视频内容内相对较大的手。手检测可由在输入视频的中间分辨率表示上操作的手检测器670第二次执行,这可能识别在视频内容内具有中等尺寸的手。手检测可由在输入视频的全分辨率表示上操作的手检测器640第三次执行,与由另一只手检测器620、670识别的尺寸相比,这可能识别在视频内容内具有小尺寸的手。在一个实施方案中,可以图像数据的所有分辨率执行手检测,以检测可能的最大数量的手。另选地,可分阶段执行手检测,首先在低分辨率视频上操作,其次在中间分辨率视频上操作,并且最后在全分辨率视频上操作,直到检测到预先确定数量的手。当然,除了图6所示的三个阶段之外,还可根据需要执行附加的手检测阶段。

在一个实施方案中,图1的系统可应用于识别人手。手检测系统200可获取输入视频序列并融合帧的信息。对象边界框检测器210可输出最近帧的一个或多个边界框,并且区域滤波器220可基于对象区域的联合的交互(IoU)来整理对象区域。关键点检测器230可以采用在最近的帧周期内累积的经整理的手区域的序列作为输入,并且可以输出图像的二维平面中的对象关键点的坐标,从而为每只手分配随时间推移一致的ID。关键点检测器230可以由被训练以检测每个对象的预定数量的关键点定位的神经网络组成。例如,用于人手的关键点检测器可以检测手区域图像中的21个关节。

上述用于视频的技术也可以用于处理单个静止图像。例如,图2的系统200可拍摄单个图像作为输入以检测手的单个图像。对象边界框检测器可处理输入图像并为该图像中的每个检测到的手产生手区域。区域滤波器然后可输出固定数量的最大检测到的手的裁剪图像,其中该固定数量是用户指定的配置。然后,手区域的每个选择的裁剪图像可馈送到关键点检测器中,该关键点检测器由深层神经网络组成,该深层神经网络被训练以在给定每个手区域图像的情况下检测21个手关节。关键点检测器输出用于输入手区域的关键点坐标。这些关键点坐标可以是静止图像系统的最终输出。

检测视频内容内的人手和关键点产生了多种应用。在第一应用中,如图1所示,手定位的关键点可被输入到根据训练权重155操作的手势检测器150,该训练权重使得手势检测器150根据预先确定的模式对手移动进行分类。在一个实施方案中,手势模式可以表示手语,例如美国手语、英国手语、澳大利亚手语等,其可以形成操作者将数据输入到计算机的基础。手语的字词或字母可作为文本输入输入到计算机系统的应用170。另选地,手势模式可表示到计算机设备的操作系统160或应用170的命令输入,该命令输入在被检测到时可作为对应命令被输入到操作系统160或应用170。可通过在其上实现系统的设备的应用程序接口来实现到应用的接口。

图7是根据本公开的实施方案的设备700的框图。设备700可包括中央处理单元710、存储器系统720和一个或多个输入/输出设备730。中央处理单元710可包括处理核心712和实现前述附图中讨论的神经网络的集成电路的神经引擎714。存储器系统720可存储表示由处理器内核712执行的操作系统740和应用750的程序指令、表示由神经引擎714应用的权重的权重数据和任选地表示待处理的存档视频的视频数据。存储器系统720可由体现在电存储介质、磁存储介质和/或光学存储介质中的一个或多个存储器设备来体现。输入/输出设备730可包括捕获表示本地环境的视频数据的相机,并且可包括操作者通过其与设备700进行交互的其他控件和显示器(未示出)。设备700可由各种消费电子设备诸如笔记本电脑、平板电脑、智能电话、游戏装备和其他设备来实现。

图7所示的架构可提供若干优点:

a.当使用RGB视频输入并在硬件神经引擎上运行时,其可能消耗相对低的功率。

b.由于稳定模块的使用、网络架构、网络模型的量化和/或硬件神经引擎,其可执行低延迟处理。

c.由于使用基于视频的对象检测和关键点检测网络(诸如手检测网络)和/或稳定模块,其可利用关键点的低抖动执行稳定的对象识别。

d.在管理感知延迟时其可应用时间轨迹估计/平滑策略,这可在操作期间提供进一步的稳定性。

本文具体示出和/或描述了本发明的若干实施方案。然而,应当理解,在不脱离本发明的实质和预期范围的情况下,本发明的修改和变型由上述教导内容涵盖并且在所附权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号