用于包括姿态和大小估计的对象检测的系统和方法与流程

文档序号:31857664发布日期:2022-10-19 03:31阅读:53来源:国知局
用于包括姿态和大小估计的对象检测的系统和方法与流程

1.本公开大体上涉及计算机视觉。更具体地,本公开涉及能够提供用于以三维(3d)执行对象检测和姿态估计的更有效的模型的计算机实现的系统和方法。


背景技术:

2.3d中的对象检测和姿态估计具有跨越计算机视觉、增强现实(ar)、自主驾驶和机器人技术的许多应用。当输入仅是单个图像并且不存在对象的先验知识时,问题仍然是极具挑战性的。设备内置应用向问题添加了复杂性,诸如模型应该以有限的大小实时运行的预期。另外,与相机高度固定并且存在强视觉深度提示的自动驾驶汽车不同,用于诸如智能电话的移动设备的典型设备内置模型必须学习旋转以及深度。


技术实现要素:

3.本公开涉及用于从2d图像执行3d中的对象检测和姿态估计的系统和方法。对象检测可以由被配置为确定各种对象属性的机器学习模型来执行。根据本公开的实施方式可以使用这些属性来估计对象姿态和大小。
4.本公开的一个示例方面包括用于使用机器学习对象检测模型来确定边界框顶点的坐标的方法。
5.本公开的另一示例方面包括用于使用合成数据训练机器学习对象检测模型的方法。可以使用增强现实引擎、使用放置在场景中的各种对象的虚拟模型来生成合成数据。
6.本公开的另一示例方面包括具有多头架构的机器学习模型。
7.本公开的其他方面涉及实现本文公开的技术或可以通过本公开的实践导出的各种系统、装置、非暂时性计算机可读介质、用户界面和电子设备。
8.参考以下描述和所附权利要求,将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。并入本说明书中并构成本说明书的一部分的附图示出了本公开的示例实施例,并且与说明书一起用于解释相关原理。
附图说明
9.在参考附图的说明书中阐述了针对本领域普通技术人员的实施例的详细讨论,其中:
10.图1a示出根据本公开的示例实施方式的包括一个或多个机器学习模型的示例计算系统。
11.图1b示出根据本公开的示例实施方式的包括一个或多个机器学习模型的示例计算设备。
12.图1c图示根据本公开的示例实施方式的包括一个或多个机器学习模型的另一示例计算设备。
13.图2a示出根据本公开的示例实施方式的显示编码器-解码器网络以生成输出(或
多个)的示例模型架构。
14.图2b示出根据本公开的示例实施方式的另一示例模型架构。
15.图3a和3b示出从根据本公开的示例实施方式导出的示例输出。这些图包括描绘围绕各种对象的3d边界框的多个图像。在图3a中,在中间图像行的右上角显示附加的模型输出。附加模型输出示出分割掩码。
16.图4说明描绘根据本发明的实例实施方案的用于执行对象检测的实例方法的流程图。
17.在多个附图中重复的附图标记旨在标识各种实施方式中的相同特征。
具体实施方式
18.概述
19.通常,本公开涉及用于执行对象检测的系统和方法,并且可以提供用于在诸如智能电话的本地设备上执行对象检测的优点。对象检测可以包括各种对象属性,其一起被称为9dof或9自由度。这些属性能够包含x、y、z坐标位置、偏航、俯仰、滚转旋转方位(一起为6dof位姿),以及长度、宽度、高度、对象大小(一起为3dof物理大小)。可以使用根据本公开的示例实现来提取这些属性——包括所有属性——的组合。此外,可以使用相对比例的二维(2d)摄影图像来确定这些属性。通过将相对比例映射到可以使用与2d摄影图像相关联的相机本征和/或增强现实(ar)数据而确定的物理值,相对比例可以被变换为定值(例如,米或英寸)。
20.根据本公开的示例实施方式可以利用多任务(例如,多头)机器学习模型来确定能够被用于对象检测的2d图像数据的至少两个特征。作为一个示例,机器学习模型可以包括第一头,该第一头被配置为生成质心热图,该质心热图包括基于像素是否描绘对象的质心的预测的关于每个像素的热量值。例如,质心热图(或多个)可以是具有对对象大小动态的二元内核的热图。作为另一示例,机器学习模型可以包括第二头,该第二头被配置为生成多个距离场,多个距离场定义每个像素的距离值,该距离值指示到与对象的边界框相关联的多个顶点中的一个顶点的距离。由于多头模型可以一起联合学习,因此一些示例实施方式可以包括被配置为生成分割掩码的第三头;然而,根据示例实施方式,具有第三头的机器学习模型不需要来执行对象检测。同样,也可以使用上述(或用于执行其他任务的)两个或更多个头的不同组合。
21.为了提取对象属性,示例实施方式可以包括用于确定对象的一个或多个标签的方法,诸如用于为对象构建3d边界框的标签。3d边界框可以由顶点定义,这些顶点一起定义对象的体积和表面边界。作为一个示例,边界框可以被定义为具有6个面(例如,前、后、左、右、顶和底)和8个顶点(例如,顶面4个,底面4个)的矩形棱柱。使用根据本公开的示例方法,可以针对8个顶点中的每一个在二维(例如,x坐标和y坐标)中确定相对坐标位置。对于某些示例方法,可以使用ar数据和/或相机本征来确定附加坐标位置(例如,z坐标),以定义可以表示对象大小和图像中的位置的三维边界框。此外,可以基于顶点的位置和边界框的大小来确定对象方位和/或平移。因此,在一些示例实施方式中,为了从2d转到3d,epnp算法可以与正交基一起使用以将3d框恢复到比例,并且来自ar会话的平面(例如,桌子或地板)可以被用于确定度量比例。
22.作为用于说明的示例,考虑浏览家具店以装饰新房子。使用根据本公开的示例实施方式的移动设备可以获得一件家具的图像并确定与该件家具相关联的边界框的3d坐标,而不是带着测量列表来到商店。数据可以被存储并随后用于确定该件家具是否适合空间。作为另一示例,考虑在移动设备上处理视频流(例如,来自无人机或其他自主车辆或机器人的视频)。视频流由2d图像组成,包括用于检测(诸如用于碰撞避免或导航)的对象。使用根据本公开的示例实施方式,无人机可以基本上实时地推断对象位置和大小,以改善碰撞避免或直接导航并估计距离。
23.因此,本发明的实例方面提供具有多个头的新颖的多任务学习网络,例如:具有动态二元内核的热图、边界框顶点的距离场和/或目标的语义分割。模型可以在单次拍摄中检测对象并估计它们的姿态和大小。将这些与基于几何形状的提升组合使用,可以导出按比例的对象的3d边界框。可以使用在场景中检测到的平面来进一步确定度量比例。所提出的模型是超轻量级的,并且可以在智能电话上实时运行。
24.本公开的另一示例方面解决了缺少用于9自由度检测任务的训练数据的问题。特别地,可以使用合成训练数据集来训练一些示例实施方式,合成训练数据集包括放置在场景中并使用增强现实引擎(例如,arcore和arkit)生成的对象的虚拟模型。以这种方式,可以创建合成数据集以包括定义对象的精确方位、位置和边界的标签,因为这些属性可以在被插入场景时与虚拟模型相关联。虽然数据是合成的,但是可以基于物理特征——诸如与在场景中检测到的表面接触的对象,或者基于相机视图被位于其前面的物理物品遮挡的对象——来生成数据以仿制真实数据。可以快速生成合成数据,并且自动生成标签,这在训练对象检测模型时提供了主要益处,因为数据集可以包括使用诸如分割掩码的真实数据通常难以生成的信息的标签。此外,根据本公开的实现方式的多头性质可以允许对象检测模型从分割掩码或合成数据中包括的其他特征中学习,以改善其他头中的预测。
25.合成数据集的方面可以包括可以使用增强现实引擎生成的一个或多个增强图像。可以通过获得对象(例如,虚拟对象)的三维模型且获得包含描绘场景的一个或多个图像帧的数据(例如,使用包含增强现实引擎的设备、使用多个设备和/或访问保存的ar数据)来生成增强图像。然后可以在场景中以指定的位置和方位定位虚拟对象(例如,使用ar引擎)。此外,增强图像可以与一个或多个训练标签相关联,诸如标识虚拟对象,指示虚拟对象在场景内的位置(例如,在x、y坐标中定义对象质心和/或对象的边界框的顶点的标签),指示虚拟对象在场景内的方位(例如,定义沿着2-3个坐标轴的旋转的标签),和/或指示虚拟对象和场景的分割掩码(例如,将像素定义为与虚拟对象相关联或与场景相关联的标签)。
26.根据本公开的实施方式包括用于三维对象检测以及训练用于三维对象检测的所述模型的计算系统和计算机可读指令。这些方法和系统的示例方面可以包括诸如获得包括用于检测的对象的图像的二维图像的操作。二维图像的方面可以包括由多个像素限定的维度。每个像素可以定义二维图像的两个坐标(例如,x坐标和y坐标)以及像素值(例如,r、g、b颜色值)。可以向图像数据提供可以根据本公开的示例实施方式训练的机器学习对象检测模型。机器学习对象检测模型通常包括至少两个头:第一头被配置为生成质心热图,质心热图可以为多个像素中的每个像素提供相应的热值,该相应的热值描述该像素的由该像素描绘对象的质心的概率。另外,模型可以包括被配置为生成多个距离场的第二头,每个距离场为多个像素中的每个像素提供相应的距离值,相应的距离值指示从每个像素到与对象的边
界框相关联的多个顶点中的一个顶点的距离。然后可以至少部分地使用由第一头和第二头生成的输出来确定与在2d图像中描绘的对象相关联的边界框的3d坐标。因此,通常,实施方式可以包括向机器学习对象检测模型提供图像数据,该机器学习对象检测模型被配置为确定能够被用于将二维坐标系映射到更高维度的输出。
27.更具体地,可以使用各种系统和方法来获得包括对象的二维图像。例如,可以在本地设备(例如,智能电话)上访问相机以拍摄对象的照片或视频。替代地或附加地,系统可以执行指令以访问包含二维图像的数据的本地或远程存储器(例如,存储在云中)。因此,获得二维图像通常可以包括访问与二维图像相关联的数据或使用与系统通信的设备获取数据。
28.此外,在一些实施方式中,将图像提供给机器学习对象检测模型的方面可以基于如何获得二维图像。举例来说,在某些实施方案中,可以基本上实时地执行对象检测。对于这些场景,与对象检测模型或与计算系统通信的其他设备和/或传感器相关联的api可以包括用于访问设备和/或传感器以将图像数据直接发送到对象检测模型的指令。以这种方式,计算系统可以直接向机器学习对象检测模型提供传感器信息(例如,视频流),而不需要任何外部输入。替代地,某些实施方案可包含经配置以接收用户交互的接口,用户交互例如定义文件路径或选择图像文件以确定提供到对象检测模型的图像。
29.由机器学习对象检测模型执行的图像处理的方面可以包括定义多个头的架构。通常,根据本公开的机器学习对象检测模型可以包括至少两个头。作为示例,第一头可以被配置以生成质心热图,质心热图可以为多个像素中的每个像素提供相应热值。更具体地,每个像素的相应热值描述对象的质心由该像素描绘的概率。作为另一示例,第二头可以被配置为生成多个距离场。每个距离场可以为多个像素中的每一个提供相应的距离值。更具体地,每个像素的相应距离值可以指示从像素到与对象的边界框相关联的多个顶点中的一个的距离。
30.在一些实施方式中,机器学习对象检测模型可以包括被配置为生成图像的分割掩码的第三头。分割掩码的方面可以包括为多个像素中的每个像素提供二进制响应(例如,标签)的数据,二进制响应指示每个像素与背景或对象相关联。在多个对象的情况下,分割掩码可以被配置为确定多标签响应,将每个对象与单独的值(例如,1、2、3、4等)相关联,并且将背景与唯一标签(例如,0)相关联。在某些实施方式中,第三头可以被配置为生成将具有相同标签的类似对象归组的分割掩码。例如,图像可以包括诸如鞋和/或椅子的对象的多个实例。在确定分割掩码时,某些系统可以被配置为对在图像中描绘的每个对象确定不同标签(例如,鞋的每个实例将被分配不同的标签)。可替代地,分割可以归组或可以被配置为将具有相同标签的具有相似特性的对象(例如,鞋)归组。以这种方式,分割掩码可以提供用于区分具有紧密接近度的对象的机制,并且可以为某些对象检测任务生成改进的准确度。
31.机器学习对象检测模型的另一示例方面可以包括编码器-解码器主干,其被配置为在执行一个或多个学习任务之前将2d图像映射到不同的维度空间中,并将一个或多个学习任务的结果映射到另一维度空间以提取多个头的输出。不同维度的空间可以是更低维度的空间,并且可以将图像数据转换为不同的格式,这可以诸如通过减少存储器消耗或利用具有减少的计算需求的数据格式来提高某些实施方式的效率。以此方式,一些实施方案可以展现基本上的实时性能,例如在图像获取与模型输出生成之间具有小于1秒延迟(例如,小于约500ms、400ms、300ms、200ms、100ms、50ms或5ms)。
32.在某些实施方式中,机器学习对象检测模型可以进一步与其他机器学习模型或用于映射模型输出的数据操作通信,以确定用于定义三维边界框的值。例如,模型输出的各方面(诸如质心热图和距离场)可以被用于识别2维中的顶点坐标。作为一个示例,顶点识别模型可以被用于预测三维边界框的顶点的位置。三维边界框可以具有任何数量的顶点,但是为了说明,假设三维边界框表示矩形棱柱,顶点识别模型预测8个顶点的位置。至少部分地基于质心热图和距离场,顶点识别模型可以为边界框的每个顶点生成2d坐标(例如,x、y坐标),诸如矩形棱柱的8对坐标。
33.另外,3d映射模型或函数可以与顶点识别模型耦合(例如,使用顺序处理或被训练为附加输出或头)以确定边界框的每个顶点的3d坐标。由于2d图像缺少深度信息,因此系统被欠指定(underspecified)用于确定第三空间维度。为了考虑到这一点,3d映射模型也可以接收诸如焦距、主点、图像传感器格式、比例因子等的相机本征,以估计诸如对象大小和姿态的属性。这些属性可以从3d映射模型的输出导出。例如,3d映射模型的输出可以包括用于将3d坐标(例如,x、y、z坐标)分配给每个顶点的附加维度。
34.在一些实施方式中,可以使用另一模型或函数来至少部分地基于3d坐标来外推物理比例。可以从包括相机数据的各种源获得比例信息。作为一个示例,比例信息可以被包括在与图像或在图像中描绘的场景相关联的增强现实数据中。增强现实数据可以包括深度图,该深度图可以使用各种相机姿态、扫描系统或使用增强现实引擎的其他处理从场景的点云网格生成。可以通过比例外推模型获得诸如检测到的表面和/或地平面的增强现实数据,以估计边界框的物理值,诸如以公制单位(例如,米)、英制单位(例如,英尺)或si单位(例如,厘米)为单位的顶点值。
35.基于对象检测模型架构,确定包括边界框的3d坐标的数据集可以包括:至少部分地基于质心热图识别对象的质心;对多个距离场应用投票方案以识别2d图像中的边界框的顶点的多个2d投影;以及从顶点的多个2d投影重构用于定义边界框的3d坐标。
36.用于确定对象的质心的一个示例可以包括识别最大热量和/或表示像素位置与对象的质心相关联的高概率的另一统计值。由于图像可以包括多个对象,因此可以基于热值(例如,基于热值的梯度或与每个单独对象紧密相关的其他分布)来识别多个质心。
37.此外,确定包括3d坐标的数据集的方面可以包括来自质心热图和/或多个距离场的所选特征的组合。例如,来自质心热图的每个像素的热量可以被用于对用于确定边界框的顶点的投票方案进行加权。此外,对于包括多个对象的图像,投票方案可以被配置为忽略或减小在邻域(例如,在质心的10个像素内)之外的投票的权重。
38.一般来说,边界框的顶点的2d投影提供关于3d边界框的顶点的二维坐标(例如,x、y坐标)。可以利用诸如enp算法(也称为透视n点算法)的示例模型从2d边界框的顶点重构第三维度坐标(例如,z坐标)。
39.另外,某些实施方式的一个方面可以包括识别对象类别。对象类别可以用于定义边界框的哪个面(例如,哪个顶点坐标)在上,哪个面在前,或指定边界框的两个或更多个面的相对位置的其他组合。此外,在一些情况下,可以为该类别中的对象的每个实例分配相同的规范坐标。
40.示例模型架构
41.作为用于说明的示例,机器学习对象检测模型——也称为9dd-net——可以是具
有多任务学习的全卷积网络。输入大小可以被配置为与各种图像类型一起工作。作为一个示例,可以使用二维尺寸和颜色矢量,诸如640
×
480
×
3。输入图像可以通过具有特定步幅(例如,步幅4)的2d卷积,然后到达编码器-解码器块,每个编码器-解码器块可以包括跳过连接。图2a描绘这种机器学习对象检测模型的一个示例。如图2a所示,图中的每个编码器-解码器块可以表示若干残差块。残差块能够基于depth wise可分离卷积,随后是1
×
1卷积层,其可以在某些实施方式中用于提高设备上的实时性能。与其他网络相比,示例模型可以被实现为单个栈,但是可以通过残差块的数量来加深。通过网络,可以使用一个激活层中的一个或激活层的混合。例如,参数修正线性单元(prelu)可以被用于一些或所有激活层。
42.9dd-net可以被配置为在单次激发中执行多个任务。举例来说,如图2中所说明,9dd-net可以包含被配置以生成以下的三个头:a)质心热图、b)距离场及c)语义分割。质心热图的形状可以变化,但是可以基于图像大小(例如图像大小的四分之一(160
×
120))来定义,其中每个像素表示对象质心的概率。距离场可以是(160
×
120
×
16)张量,每个张量是盒的八个顶点(在二维中)相对于像素位置的x或y距离。因此,能够至少部分地基于顶点的数量(例如,对于矩形棱柱为8)和维度的数量(例如,2)来确定张量大小,以生成张量属性(例如,16)。多个对象可以被放置到同一通道中,这得益于输出独立于对象的数量。在图2a所示的示例中,图像包含两只鞋。因此,热图具有两个质心,并且每个距离场具有两个源。最后,网络还可以输出所有对象的分割掩码。尽管在附加处理中不需要,但是分割头可以帮助网络检测对象的完整形状,因此可以改善对象姿态和大小的估计。
43.被配置为预测对象热的热图可以用于检测图像平面中的对象质心。例如,对于图像中的像素p,其热量可以被计算为二元正态分布,如等式1所示。
[0044][0045]
其中,是图像,p表示图像中的每个2d像素,是图像中可见的所有对象实例的集合,i是对象的索引,ci是对象i的质心的2d投影,并且σi是内核大小。对于图像中的多个对象,最大热量可以被设置为每个像素处的值。
[0046]
与诸如使用修改的焦点损失的centernet的其他模型不同,可以为热图头实现均方误差(mse)损失,从而使数学求解成为回归问题。另外,热核对于对象尺寸可以是动态的,因此正样本和负样本(具有显著热量和接近零热量的像素)通常是平衡的。对于多个类别,centernet在热图中使用多个通道。虽然这也可以应用于9dd-net,但是9dd-net可以被配置为针对少量(例如,三个)类别使用单个信道。考虑的是,与9dd-net相比,更大的模型和输出将消耗更多的内置资源,并且在移动设备上运行更慢。因此,包括示例9dd-net的一些实现的益处是基本上实时地在设备上运行的能力。
[0047]
代替使用热图来预测所有特征,9dd-net可以被配置为确定到每个顶点的距离场。具体地,对于盒顶点xi,令xi表示其在图像平面上的投影。示例9dd-net可以使用用于投影的分数来保持准确性。用于计算其距离场的位移矢量的一个示例方法在等式2中示出。
[0048][0049]
图像中的多个对象的距离场可以根据它们的热量被合并。例如,可以针对距离场头计算两个损失。一种是预测和基准真值之间的掩蔽mse(m-mse)损失。基于热图计算掩码,使得仅需要计算具有显著(例如,》0.2)热量的像素处的损失。另一个是平滑度损失。由于距
离场具有恒定梯度,因此损失可以被定义为预测距离场的梯度与常数δ之间的m-mse。由此,用于定义距离场损失的一个示例方法如等式3所示。
[0050][0051]
其中δ=1,在这种情况下,w是平滑度损失的权重,是梯度算子,并且是距离场的梯度图像,能够在等式4中确定。
[0052][0053]
分割可以通过学习对象边界来帮助姿态估计。因此,在示例9dd-net中,包括分段头以使网络同时学习多个任务。标准iou损失可以被用于该头,并且对于没有分割标签的训练数据可以是可选的。损失计算也允许对具有混合条件的数据进行训练。也就是说,在批次内,仅对具有分割标签的图像计算损失。
[0054]
利用网络输出,可以确定底层3d边界框的2d投影。使用距离场,热图中具有显著响应的所有像素可以有助于计算顶点坐标。例如,可以使用投票策略来获得最终估计。对于像素p,可以如等式5所示计算其对顶点的投票vi。
[0055]
votei(p)=p+di(p)
ꢀꢀꢀ
等式(5)
[0056]
由该像素的热量来加权。
[0057]
峰值(例如,最大值或其他极值热量)可以位于热图中,并且投票发生在峰值位置附近。可以通过在热图上拟合高斯内核来计算附近大小。这里,为了简单起见,我们将其设置为常数(20个像素)。考虑到图像中经常存在多个对象,我们忽略离峰投票超过10个像素的距离的异常投票。顶点i的2d投影的估计被计算为有效投票的加权平均,如等式6所示。
[0058][0059]
给定投影的2d框顶点和相机本征(例如,来自ar会话数据),可以使用诸如epnp算法的函数来按比例恢复3d边界框。epnp算法采用n个控制点。第一控制点可以是原点(在对象的坐标系处)。此外,可以沿着对象的轴系统选择另外三个控制点。这些控制点可以被用于形成对象的正交基。边界框八个顶点可以由这四个控制点表示。
[0060]
接下来,epnp求解器从检测到的2d顶点(矩形棱柱的8个顶点,每个顶点具有2个独立坐标)和四个控制点给出16个约束,以构建线性系统。对于透视相机,线性系统被确定并且具有唯一解。求解该线性系统给出了可以生成具有尺度模糊度的边界框的解。为了保证估计的控制点形成正交基,9dd-net的一些实现可以使用奇异值分解(svd)来解决最接近正交矩阵的问题。
[0061]
该解决方案可以生成具有尺度模糊性的边界框。可以应用输出以从控制点按比例估计对象的大小和姿态。可以使用最后三个控制点距框的中心(第一控制点)的距离来提取大小。给定顶点x和大小可通过求解等式可通过求解等式来估计对象的方位r和平移其中b是单位框。旋转r是尺度不变的。该结果对于诸如确定视点的许多应用是足够的。由两个极角组成:方位角和俯仰角,视点是尺度不变的。因此,视点可以被用作评估9个dof检测达到一定尺度的度量。
[0062]
需要额外的信息来解决尺度模糊性。例如,在文献中,已经使用对象大小、对象深
度和多个视图来解决这种模糊性。通常,示例方法可以与这些方法中的任何方法组合。为9dd-net的实现而开发的另一种方法可以使用来自ar会话数据的检测到的平面或其他信息来确定缩放信息。
[0063]
例如,给定法线n(例如,如使用ar会话数据检测到的)和平面上的已知点p,平面上的任何顶点xi都受到如等式7所示的约束。
[0064]
(x
i-p)
·
n=0
ꢀꢀꢀ
等式(7)
[0065]
由此,可以如等式8中所示确定尺度。
[0066][0067]
作为一个示例,9dd-net可以被配置为通过选择具有负深度(z)值的3d点x来确保β是正的,对象总是在相机前面。此外,假设对象在平坦表面上,则其3d边界框的四个底部顶点服从等式7。可以选择具有到平面法线的最小投影的四个顶点,并且通过等式8计算它们的尺度的平均值以确定度量比例。
[0068]
示例设备和系统
[0069]
图1a描绘根据本公开的示例方面的可以存储或传输诸如机器学习模型120或140的信息的示例计算系统100的框图。在一个示例实施方式中,系统100可以包括通过网络180通信地耦合的用户计算设备102和服务器计算系统130。
[0070]
用户计算设备102可以是任何类型的计算设备,诸如例如个人计算设备(例如,膝上型计算机或台式计算机)、移动计算设备(例如,智能电话或平板计算机)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或任何其他类型的计算设备。
[0071]
用户计算设备102可以包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器114可以包括一个或多个非暂时性计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等及其组合。存储器114可以存储由处理器112执行以使用户计算设备102执行操作的数据116和指令118。
[0072]
在一些实施方式中,用户计算设备102可以存储或包括机器学习模型(或多个),诸如具有根据本公开的示例实施方式的模型架构的对象检测模型。
[0073]
在某些实施方式中,机器学习模型(或多个)120可以通过网络180从服务器计算系统130被接收,存储在用户计算设备存储器114中,然后由一个或多个处理器112使用或以其他方式实现。在一些实施方式中,用户计算设备102可以实现单个机器学习模型的多个并行实例(例如,以执行并行对象检测,诸如并行生成用于诸如在视频流中的实时图像处理的3d边界框坐标,和/或在单个图像或单个图像的不同区域中执行并行对象检测)。
[0074]
附加地或替代地,机器学习模型(或多个)120可以被包括在服务器计算系统130中或以其他方式由服务器计算系统130存储和实现,服务器计算系统130根据客户端-服务器关系与用户计算设备102通信。例如,机器学习模型(或多个)140可以由服务器计算系统130实现为web服务的一部分。因此,机器学习模型(或多个)120可以在用户计算设备102处被存储和实现,和/或机器学习模型(或多个)140可以在服务器计算系统130处被存储和实现。由于在一些实施方式中,机器学习模型可以包括第一模型,诸如包括多个头的对象检测模型,
因此分开的第二模型和/或计算机算法可以被配置为从第一模型接收输出(或多个)并生成对象检测特征,诸如在至少两个维度上的三维边界框的顶点。例如,顶点识别模型或算法可以接收诸如由对象检测模型生成的热图和距离场的信息,以生成3d边界框的每个顶点的2d坐标(例如,x、y坐标)。这些2d坐标可由3d映射模型接收,3d映射模型经配置以确定第三维度中的坐标(例如,z坐标)以确定3d边界框的3d坐标。因此,通常,机器学习模型120和/或140可以包括对象检测模型、其他机器学习模型和/或用于处理对象检测模型的输出(或多个)的算法。为了执行对象检测和/或3d边界框生成,可以在用户计算设备102和服务器计算系统130之间单独访问和/或传输这些机器学习模型和/或算法中的每一个。可替选地,机器学习模型(或多个)和/或算法可以被包括在单个架构中,该单个架构可以被包括作为用户计算设备102上的存储器114的一部分、服务器计算系统130上包括的存储器134上的一部分、或两者。例如,包括所有机器学习模型和/或在单个设备上可以通过减少对用户计算设备102和服务器计算系统130之间的数据传输的需要来提高效率。这可以改善涉及实时对象检测的应用的性能。
[0075]
用户计算设备102也可以包括接收用户输入的一个或多个用户输入组件122。例如,用户输入组件122可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触敏部件(例如,触敏显示屏或触摸板)。触敏组件可以用于实现虚拟键盘、用户界面或用于接收用户交互的其他工具。其他示例用户输入组件包括麦克风、相机、传统键盘或用户可以通过其提供用户输入的其他装置。
[0076]
服务器计算系统130包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等),并且可以是一个处理器或可操作地连接的多个处理器。存储器134可以包括一个或多个非暂时性计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等及其组合。存储器134可以存储由处理器132执行以使服务器计算系统130执行操作的数据136和指令138。
[0077]
在一些实施方式中,服务器计算系统130包括一个或多个服务器计算设备或以其他方式由一个或多个服务器计算设备实现。在服务器计算系统130包括多个服务器计算设备的情况下,这样的服务器计算设备可以根据顺序计算架构、并行计算架构或其某种组合来操作。
[0078]
如上所述,服务器计算系统130可以存储或以其他方式包括机器学习模型(或多个)140。示例机器学习模型包括神经网络或其他多层非线性模型。示例神经网络包括前馈神经网络、深度神经网络、循环神经网络和卷积神经网络。
[0079]
网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)或其某种组合,并且可以包括任何数量的有线或无线链路。通常,通过网络180的通信可以使用各种各样的通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl)经由任何类型的有线和/或无线连接来承载。
[0080]
图1a示出可以被用于实现本公开的一个示例计算系统。也可以使用其他计算系统。
[0081]
图1b示出根据本公开的包括一个或多个机器学习模型的示例计算设备10。这些机
器学习模型(或多个)中的每一个可以与诸如对象检测、标记、对象识别或本文描述的其他类似功能的应用相关联。可以使用机器学习库来训练每个机器学习模型,机器学习库可以包括用于执行监督训练任务的标记数据。作为一个示例,一个机器学习模型可以被配置为确定用于生成图像中的每个像素的热图的热量,热量基于与对象的质心的接近度来确定。机器学习库可以包括已经用对象位置(或多个)、边界框坐标、分割掩码或由示例机器学习模型学习的其他特征做标记的图像。此外,机器学习库可以包括可以使用增强现实引擎生成的合成数据。例如,增强现实引擎可以被用于将虚拟对象(例如,从使用3d扫描仪扫描的对象导出的数据)放置在增强现实场景(例如,使用ar引擎生成的场景,其可以包括场景中的位置的深度图以及多个相机姿态和视图)中。以这种方式,机器学习库可以包括使用真实场景和使用ar引擎构建的对象生成的合成数据,与真实数据相比,合成数据可以更精确地标记场景内的坐标位置和对象姿态。然而,应当理解,并非机器学习库中的所有数据局限于合成数据。使用机器学习软件或由人类标记的真实图像可以被包括在机器学习库中。
[0082]
在某些实施方式中,机器学习模型(或多个)和/或算法可以与计算设备的其他组件通信,诸如传感器(或多个)(例如,相机)、情境管理器、设备状态或其他附加组件。例如,api可以被配置为支持诸如相机的设备组件之间的通信,使得数据可以被直接发送到用于对象检测的机器学习模型,诸如基本上实时地生成具有3d坐标的顶点的3d边界框。
[0083]
图1c示出另一示例计算设备50。示例计算设备50可以包括根据本公开的示例实施方式的一个或多个机器学习模型对象检测或其他计算机视觉任务。
[0084]
示例架构
[0085]
图2c示出包括示例模型输入(或多个)和输出(或多个)的示例模型架构。如图所示,可以将某些模型输入提供给编码器-解码器主干。除了确定模型输出之外,编码器-解码器主干还可以包括用于修改输入数据(例如,图像)的维度的变换序列。示例模型输出可以包括热图(例如,用于标识在图像中描绘的对象(或多个)的质心(或多个))、距离场(例如,用于确定到顶点坐标的像素距离(或多个))和分割图(例如,用于标记对象边界)。使用单独的模型和/或算法,可以使用顶点识别模型来处理模型输出(或多个),以在二维中确定3d边界框的顶点的坐标(例如,每个顶点的x、y坐标)。为了获得关于第三空间维度的相对信息,可以结合顶点2d坐标向3d映射函数提供诸如相机本征的附加信息,以确定在三维中描述3d边界框的顶点的顶点3d坐标(例如,每个顶点的x、y、z坐标)。这些坐标可以是与尺度无关的,但是提供足够的信息来确定对象(或多个)的相对大小和姿态。为了确定物理比例,可以包括用于外推物理比例的附加模型。例如,可以将可以使用增强现实(ar)数据检测到的深度信息或平坦表面提供给用于尺度外推的模型或算法,该模型或算法被配置为针对三维中的边界框顶点中的每一个确定诸如物理尺度(例如,米)中的顶点值的输出。
[0086]
示例模型输出和经修改的图像
[0087]
图3a和3b描绘示例模型输出,其示出叠加有一个或多个示例模型输出的图像。例如,图3a描绘用于使用根据本公开的示例实现来执行对象检测的18个图像。在图3a中,顶部行图像覆盖有3d边界框。此外,在左下角显示插图,显示背景被掩蔽的边界框位置。图3a中的中间行也包括用3d边界框覆盖的图像。中间行图像也包括显示某些实施方式的另一示例输出的分割掩码。图3a中的底部行显示了除鞋子之外的对象(诸如椅子和瓶子)的对象检测。再一次,这些图像与使用根据本公开的示例实施方式生成的3d边界框重叠。此外,图3a
中描绘的图像示出示例模型区分包括多于一个对象的场景的对象的能力。
[0088]
示例方法
[0089]
图4描绘根据本公开的示例实施方式的执行对象检测和/或识别的示例方法的流程图。尽管图3出于说明和讨论的目的描绘了以特定顺序执行的步骤,但是本公开的方法不限于特定示出的顺序或布置。在不脱离本公开的范围的情况下,可以以各种方式省略、重新布置、组合和/或调整方法400的各个步骤。
[0090]
在402处,计算系统可以获得包括对象的2d图像,2d图像包括多个像素。获得2d图像可以包括访问存储数据的数据库,使用可以被包括在计算系统中或者可以与计算系统通信的设备(诸如相机)生成图像。
[0091]
在404处,计算系统可以将2d图像输入到包括多个头的机器学习对象检测模型中。机器学习模型的一个方面可以包括第一头,其被配置为生成质心热图,质心热图为图像中的每个像素提供相应的热值。每个像素的相应热值描述对象的质心由这样的像素描绘的概率。机器学习模型的另一方面可以包括被配置为生成多个距离场的第二头,每个距离场为图像中的每个像素提供相应的距离值。每个像素的相应距离值指示到与对象的边界框相关联的多个顶点中的一个的距离。作为用于说明的示例,机器学习模型可以被配置为对于具有矩形棱柱形状的3d边界框确定顶点。矩形棱柱限定8个顶点,并且距离场可以被配置为针对2d图像中的每个空间维度(例如,x维度和y维度)预测到每个顶点的坐标距离。
[0092]
在406处,计算系统可以利用机器学习对象检测模型的第一头生成质心热图。生成质心热图的方面可以包括向每个像素分配热值。可以使用二元正态分布来确定分配热值。此外,第一热量可以被配置为使用均方误差损失来确定热量值。
[0093]
在408处,计算系统可以利用机器学习对象检测模型的第二头生成多个距离场。在一个图像中的多个对象或多个质心的情况下,每个对象的距离场可以根据它们的热量来合并。在确定距离场时,示例模型可以被配置为确定一个或多个损失函数。例如,掩蔽损失可以被定义为预测与基准真值之间的损失。在示例实施方案中,可以基于热图确定掩码。另一损失函数可以包括平滑度损失。例如,模型可以被配置为假设距离场的恒定梯度以及应用于至少部分地基于距离场的梯度确定的掩蔽均方误差的加权。
[0094]
在410处,计算系统可以至少部分地基于质心热图和多个距离场来确定包括与2d图像相关联的边界框的3d坐标的数据集。举例来说,示例实施方案可以被配置以确定3d边界框的顶点坐标。在某些实施方案中,这些顶点坐标可以在二维中(例如,x、y坐标)。在一些实施方案中,诸如相机本征的额外数据可以被包含于机器学习模型中,或另一模型或算法可以使用相机本征和2d顶点坐标来确定每一顶点的三维中的顶点坐标(例如,x、y、z坐标)。
[0095]
至少根据在图3中描述的操作的组合,根据本公开的计算系统可以使用2d图像来执行3d对象检测,在某些实施方式中,2d图像可以与诸如相机本征和/或ar数据的附加数据组合。
[0096]
附加公开内容
[0097]
本文讨论的技术参考服务器、数据库、软件应用和其他基于计算机的系统,以及所采取的动作以及发送到这些系统和从这些系统发送的信息。基于计算机的系统的固有灵活性允许组件之间和之中的任务和功能的各种可能的配置、组合和划分。例如,本文讨论的过程可以使用单个设备或组件或组合工作的多个设备或组件来实现。数据库和应用可以在单
个系统上实现或跨多个系统分布。分布式组件可以顺序地或并行地操作。
[0098]
虽然已经关于本主题的各种具体示例实施例详细描述了本主题,但是每个示例是通过解释而不是限制本公开的方式提供的。本领域技术人员在获得对前述内容的理解后,可以容易地生成对这些实施例的改变、变化和等同物。因此,本主题公开不排除包括对本主题的这样的修改、变化和/或添加,这对于本领域普通技术人员来说是显而易见的。例如,作为一个实施例的一部分示出或描述的特征可以与另一个实施例一起使用以生成又一个实施例。因此,本公开旨在覆盖这些改变、变化和等同物。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1