相关申请的交叉引用
本申请要求于2017年9月8日提交的美国非临时专利申请no.15/699,444的权益,其全部内容通过引用的方式并入。
本公开总体上涉及机器学习,并且更具体地涉及生成用于训练机器学习模型的训练数据集以及使用机器学习模型来执行碰撞估计。
背景技术:
当在环境中导航机器人设备时,可能需要避免与环境中的物理对象碰撞。例如,当在室内环境中导航机器人设备时,可能需要避免碰撞人、宠物和其他移动对象。
在一些情况下,机器人设备被编程为通过以反应性方式动作来避免碰撞。例如,机器人设备可以包括红外接近传感器,并且机器人设备可以被编程为每当在机器人设备的特定范围内检测到对象时就停止或改变方向。然而,不幸的是,在一些情况下,机器人设备可能反应太慢,从而导致机器人设备与对象碰撞。此外,当在环境内导航时,以反应性方式操作的机器人设备可能无法估计移动对象(或可能移动的对象)的轨迹并且主动采取行动,以避免与对象碰撞。因此需要改进。
技术实现要素:
在一个示例中,描述了一种计算机实现的方法。计算机实现的方法包括:由计算设备获得指示先前时间段期间的环境的传感器数据日志,其中传感器数据日志包括图像帧序列。计算机实现的方法还包括:由计算设备确定传感器数据日志与碰撞相关,该碰撞涉及在先前时间段内的特定时间处在环境中的物理对象。计算机实现的方法还包括:响应于确定传感器数据日志与相关,由计算设备从传感器数据日志生成用于碰撞的训练数据集。用于碰撞的训练数据集可以包括:在图像帧序列中与特定时间相对应的图像帧之前的、图像帧序列中的多个图像帧。
在另一示例中,描述了一种计算设备。计算设备包括至少一个处理器、存储器以及存储在存储器中的程序指令,该程序指令当由至少一个处理器执行时,使得计算设备执行各种功能。功能包括:获得指示在先前时间段期间的环境的传感器数据日志,其中传感器数据日志包括图像帧序列。功能还包括:确定传感器数据日志与碰撞相关,该碰撞涉及在先前时间段内的特定时间处在环境中的物理对象。功能还包括:响应于确定传感器数据日志与碰撞相关,从传感器数据日志生成用于碰撞的训练数据集。用于碰撞的训练数据集可以包括:在图像帧序列中与特定时间相对应的图像帧之前的、图像帧序列中的多个图像帧。
在另一示例中,描述了一种非瞬态计算机可读介质,非瞬态计算机可读介质具有存储在其中的指令,该指令当由计算设备执行时,使得计算设备执行功能。功能包括:获得指示在先前时间段期间的环境的传感器数据日志,其中传感器数据日志包括图像帧序列。功能还包括:确定传感器数据日志与碰撞相关,该碰撞涉及在先前时间段内的特定时间处在环境中的物理对象。功能还包括:响应于确定传感器数据日志与碰撞相关,从传感器数据日志生成用于碰撞的训练数据集。用于碰撞的训练数据集可以包括:在图像帧序列中与特定时间相对应的图像帧之前的、图像帧序列中的多个图像帧。
已经讨论的特征、功能和优点可以在各种示例中独立实现,或者可以在另一些示例中结合地实现,其进一步细节可以参考以下描述和附图来看到。
附图说明
在所附权利要求中阐述了被认为是说明性示例的特点的新颖特征。然而,当结合附图阅读时,通过参考以下对本公开的说明性示例的详细描述,将最好地理解说明性示例以及优选的使用模式、进一步的目的及其描述,其中:
图1图示了根据示例实施例的示例系统。
图2图示了根据示例实施例的示例机器人设备。
图3图示了根据示例实施例的示例计算设备。
图4示出了根据示例实施例的示例方法的流程图。
图5是根据示例实施例的涉及环境中的物理对象的碰撞的概念性图示。
图6是根据示例实施例的涉及环境中的物理对象的碰撞的另一概念性图示。
图7示出了根据示例实施例的另一示例方法的流程图。
图8是根据示例实施例的碰撞估计和避免的概念性图示。
具体实施方式
下面将参照附图更全面地描述所公开的示例,附图中示出了所公开的一些示例,但并非全部示例。实际上,数个不同的示例可以被提供,并且不应被解释为仅限于本文所述的示例。相反,提供这些示例以使本公开更彻底和完整,并且将本公开的范围完全传达给本领域技术人员。
本文描述了用于生成用于训练机器学习模型的训练数据集的系统和方法。在示例内,机器人设备可以检测涉及在环境中的物理对象的碰撞,并响应性地收集和打包与碰撞有关的数据作为用于机器学习模型的训练数据集。在使用该训练数据集和其他训练数据集训练机器学习模型之后,机器人设备(或另一机器人设备)可以随后使用该模型以预测未来何时将发生碰撞,并且采取预防动作以避免与物理对象碰撞。
一种示例方法包括:由计算设备获得指示在先前时间段期间的环境的传感器数据日志。例如,在环境中导航的机器人设备可以记录并存储包括与先前时间段相对应的图像帧序列的传感器数据日志,以及将传感器数据日志提供给计算设备。该方法还包括:由计算设备确定传感器数据日志与碰撞相关,该碰撞涉及在先前时间段内的特定时间处在环境中的物理对象。例如,计算设备可以确定该碰撞是在物理对象与机器人设备之间的物理碰撞。并且,响应于确定传感器数据日志与碰撞相关,计算设备可以随后从传感器数据日志生成用于碰撞的训练数据集。训练数据集可以包括:在图像帧序列中与特定时间相对应的图像帧之前的、图像帧序列中的多个图像帧。
在一些示例中,机器人设备可以具有捕获rgbd图像的红、绿、蓝、距离(rgbd)相机,并且传感器数据日志可以包括rgbd图像帧序列。利用这些示例,用于碰撞的训练数据集可以包括导致碰撞的rgdb图像帧。例如,如果移动对象(诸如弹跳球)与机器人设备碰撞并且触发训练数据集的生成,则训练数据集可以包括描绘该对象的运动的rgbd图像帧。
计算设备可以以各种方式确定传感器数据日志与碰撞相关。例如,如下所述,计算设备可以确定由机器人设备记录的加速度计数据指示在物理对象与机器人设备之间的碰撞。类似地,计算设备可以确定由机器人设备记录的接触传感器数据指示物理对象与机器人设备之间的碰撞。本文还考虑并公开了用于识别碰撞和触发训练数据集的生成的其它技术。
此外,在一些示例中,虚拟碰撞(诸如在物理对象与呈增强现实角色的形式的软件机器人之间的碰撞)也可以触发训练数据集的生成。例如,增强现实图形可以被定位在环境中的特定位置处,并且如果计算设备确定物理对象移动到该特定位置,则计算设备可以响应性地生成用于碰撞的训练数据集。
有利的是,本文所公开的系统和方法可以促进生成用于机器学习模型的训练数据集,而无需人类标记人员后处理传感器数据日志和将传感器数据的部分标记为碰撞、或者在碰撞发生时实时触发训练数据集的生成。
以下参考附图描述这些系统和方法的各种其他特征。
现在参考图1,示例系统100被图示。特别地,图1示出了用于碰撞检测和/或碰撞估计的示例系统100。如本文所使用的,碰撞检测是指确定涉及在环境中的至少一个运动对象的碰撞已经发生的过程。根据上面的讨论,碰撞检测有助于收集与碰撞相关的数据,并且有助于生成用于训练机器学习模型的训练数据集。另一方面,碰撞估计是指预测机器人(诸如机器人设备或软件机器人)可能与物理对象碰撞的过程。物理对象可以是静止的或可移动的。例如,物理对象可以是在环境中的家具或物理结构(诸如墙、地板、橱柜、楼梯等)。备选地,物理对象可以是球、玩具或衣物。在一些情况下,碰撞估计可以包括使用机器学习模型来估计移动对象和/或机器人的轨迹。
如在图1中示出的,系统100包括机器人设备102a、102b、至少一个服务器设备104、主机设备106以及通信网络108。
根据本文所述的实施例,机器人设备102a、102b可以是具有至少一个传感器的任何类型的设备,并且机器人设备102a、102b可以被配置为记录传感器数据。在一些情况下,机器人设备102a、102b还可以包括促进在环境内移动的行动(locomotion)能力(例如,驱动系统)。
如在图1中示出的,机器人设备102a可以经由通信网络108将数据110发送至服务器设备104和/或主机设备106,和/或从服务器设备104和/或主机设备106接收数据112。例如,机器人设备102a可以经由通信网络108将传感器数据日志发送至服务器设备104。额外地或备选地,机器人设备102a可以从服务器设备104接收机器学习模型数据。类似地,机器人设备102a可以经由通信网络108将传感器数据日志发送至主机设备106,和/或从主机设备106接收机器学习模型数据。此外,在一些情况下,与经由通信网络108相反,机器人设备102a可以直接将数据发送至主机设备106,和/或直接从主机设备106接收数据。
服务器设备104可以是被配置为进行本文所述的计算设备操作的任何类型的计算设备。例如,服务器设备104可以包括远程服务器设备,并且可以被称为“基于云的”设备。在一些示例中,服务器设备104可以包括基于云的服务器集群,其中计算任务被分布在多个服务器设备之中。根据上述讨论,服务器设备104可以被配置为经由通信网络108将数据112发送至机器人设备102a,和/或从机器人设备102a接收数据110。服务器设备104可以包括被配置为训练机器学习模型的机器学习服务器设备。
与服务器设备104类似,主机设备106可以是被配置为进行本文所述的计算设备操作的任何类型的计算设备。然而,与服务器设备104不同的是,主机设备106可以被定位在与机器人设备102a相同的环境中(例如,在相同的建筑物中)。在一个示例中,机器人设备102a可以与主机设备106对接以充电、下载和/或上传数据。
尽管机器人设备102a能够经由通信网络108与服务器设备104通信、并且与主机设备106通信,但在一些示例中,机器人设备102a可以进行本文描述的计算设备操作。例如,机器人设备102a可以包括内部计算系统,其被布置为进行本文所述的计算设备操作。
在一些示例中,机器人设备102a可以经由无线接口与机器人设备102b无线通信。例如,机器人设备102a和机器人设备102b两者可以在相同环境中操作,并且时不时地共享关于该环境的数据。
通信网络108可以对应于局域网(lan)、广域网(wan)、企业内部网、公共因特网、或者配置为在设备之间提供通信路径的任何其他类型的网络。通信网络108还可以对应于一个或多个lan、wan、企业内部网和/或公共因特网的组合。
图2图示了根据示例实施例的示例机器人设备200。机器人设备200可以表示在本文的任何附图中描绘的任何机器人设备。图2示出了在被布置以根据本文所述的实施例操作的机器人设备中可以包括的一些部件。
如在图2中示出的,机器人设备200包括传感器系统202、机械系统204以及计算设备206。在图2中,传感器系统202被示出包括多个传感器,诸如深度相机208、惯性测量单元(imu)210、一个或多个运动跟踪相机212、一个或多个雷达214、一个或多个麦克风阵列216、一个或多个接触传感器218、一个或多个接近传感器220以及有效载荷传感器222。
深度相机208可以被配置为恢复关于在环境中对象的深度的信息,诸如对象的三维(3d)特性。例如,深度相机208可以是rgb红外(rgb-ir)相机,其被配置为捕获投影红外图案的一个或多个图像,并且将图像提供给处理器,该处理器使用各种算法来三角化和提取3d数据、并且输出一个或多个rgbd图像。红外图案可以由利用深度相机208集成的投影仪投影。备选地,红外图案可以由与深度相机208(未示出)分开的投影仪投影。
imu210可以被配置为确定机器人设备的速率和/或定向。在一个示例中,imu可以包括三轴线陀螺仪、三轴线加速度计、三轴线罗盘以及用于处理运动信息的一个或多个处理器。
运动跟踪相机212可以被配置为通过捕获和处理图像(例如rgb-ir图像)来检测和跟踪对象的移动。在一些实例中,运动跟踪相机212可以包括能够在低亮度照明条件下进行检测的一个或多个红外发光二极管(led)。运动跟踪相机212可以包括宽视野(fov),诸如180度fov。在一个示例配置中,机器人设备200可以包括被配置为在机器人设备200的第一侧上捕获图像的第一运动跟踪相机,以及被配置为在机器人设备200的相对侧上捕获图像的第二运动跟踪相机。
雷达214可以包括使用电磁波来确定在环境中的对象的范围、角度或速率的对象检测系统。雷达214可以通过将激光脉冲射出到环境中、并且利用一个或多个传感器测量反射的脉冲来操作。在一个示例中,雷达214可以包括具有宽fov(诸如150度fov)的固态毫米波雷达。
麦克风阵列216可以包括多个串行工作以执行一个或多个功能(诸如记录音频数据)的麦克风。在一个示例中,麦克风阵列216可以被配置为使用声源定位来定位声源。
接触传感器218可以被配置为当机器人设备200接触对象时提供信号。例如,接触传感器218可以是在机器人设备200的外部表面上的物理碰撞传感器,其在接触传感器218与对象进行接触时提供信号。
接近传感器220可以被配置为检测在机器人设备200的范围内对象的存在。例如,接近传感器220可以包括红外接近传感器。在一个示例中,机器人设备200可以包括多个接近传感器,其中每个接近传感器被布置为检测在机器人设备200的不同侧上的对象(例如,前、后、左、右等)。
有效载荷传感器222可以被配置为测量由机器人设备200承载的有效载荷的重量。例如,有效载荷传感器222可以包括载荷单元,该载荷单元被配置为提供与被施加到机器人设备200的平台或其他表面的力成比例的电信号。
如在图2中额外示出的,机械系统204被示出为包括驱动系统224和附件系统226。驱动系统224可以包括一个或多个马达、轮、以及能够被控制以导致机器人设备200移动通过环境(例如,跨地板移动)的其他部件。在一个示例中,驱动系统224可以包括万向驱动系统,该万向驱动系统可以被控制以使得机器人设备200在任何方向上驱动。
附件系统226可以包括一个或多个机械部件,该一个或多个机械部件被配置为促进附件任务的执行。作为一个示例,附件系统226可以包括被配置为便于吸尘的马达和风扇。例如,电动机可以使得风扇旋转,以便创建吸力并且促进通过进气端口收集污垢、灰尘或其他碎屑。作为另一示例,附件系统可以包括一个或多个致动器,该一个或多个致动器被配置为竖直地提升机器人设备200的平台或其他结构,使得被放置在平台或结构顶部上的任何对象被抬离地面。在一个示例中,提升系统226可以被配置为提升约10千克的有效载荷。取决于机器人设备200的期望活动,其他示例也是可能的。
计算设备206可以包括各种计算部件,各种计算部件被配置以控制传感器系统202和机械系统204。例如,计算设备206可以包括集成各种部件的片上系统(soc)。
通过示例的方式,图3图示了示例计算设备300。计算设备300可以表示在本文的任何附图中描绘的任何计算设备、服务器设备或主机设备。图3示出了一些功能部件,该功能部件可以被包括在根据本文的实施例被布置以操作的计算设备中。在该示例中,计算设备300包括处理器302、数据存储装置304、通信接口306以及输入/输出功能308,所有这些都可以由系统总线310或类似机构耦合。
处理器302可以包括一个或多个cpu,诸如一个或多个通用处理器以及/或者一个或多个专用处理器(例如,应用专用集成电路(asic)、数字信号处理器(dsp)、网络处理器等)。例如,处理器302可以包括用于机器学习模型的训练和/或推理的张量处理单元(tpu)。
数据存储装置304又可以包括易失性和/或非易失性数据存储器,并且可以与处理器302整体或部分集成。数据存储装置304可以保存由处理器302可执行的程序指令,以及可由这些指令操纵以实行本文所述的各种方法、处理或操作的数据。备选地,这些方法、处理或操作可以由硬件、固件和/或硬件、固件和软件的任何组合来限定。通过示例的方式,在数据存储装置304中的数据可以包含程序指令,该程序指令可能被存储在非暂时性计算机可读介质上、由处理器302可执行以进行在本说明书或附图中公开的任何方法、处理或操作。
通信接口306可以采用导线连接的形式,诸如以太网连接。通信接口306也可以采用无线连接的形式,诸如ieee802.11(wifi)、
输入/输出功能308可以促进与计算设备300的用户交互。输入/输出功能308可以包括多种类型的输入设备,诸如键盘、鼠标、触摸屏、麦克风等。类似地,输入/输出功能308可以包括多种类型的输出设备,诸如屏幕、显示器、打印机或者一个或多个led。额外地或备选地,计算设备300可以支持经由通信接口306或经由另一接口(未示出)(诸如通用串行总线(usb)或高清晰度多媒体接口(hdmi)端口)而从另一设备远程访问。
图4示出了用于碰撞检测的示例方法400的流程图。在图4中示出的方法400展现了一种方法的实施例,该方法例如可以由计算设备(诸如在本文任何附图中描绘的任何计算设备)来进行。应当理解的是,针对本文公开的该处理和方法以及其它处理和方法,流程图示出了本实施例的一个可能实现方式的功能和操作。如将由本领域的合理技术人员所理解的,备选实现方式被包括在本公开的示例实施例的范围内,其中取决于所涉及的功能,可以与所示出的或所讨论的顺序不同地(包括基本上同时的或相反的顺序)执行功能。
在框402处,方法400包括:获得指示在先前时间段期间的环境的传感器数据日志,其中传感器数据日志包括图像帧序列。例如,环境可以是建筑物(诸如房屋)的内部,并且图像帧可以是rgbd图像帧。
在一些示例中,传感器数据日志可以包括由机器人设备捕获的传感器数据。例如,传感器数据日志可以包括由机器人设备的一个或多个相机捕获的图像。此外,传感器数据日志可以包括由机器人设备的其他传感器(诸如imu、麦克风阵列、接触传感器、有效载荷传感器或接近传感器)捕获的传感器数据。在一些实例中,机器人设备可以记录传感器数据,并且将传感器数据日志提供给进行方法400的部分的另一计算设备。备选地,在其他实例中,机器人设备可以使用机器人设备的传感器获得传感器数据日志,并且将传感器数据日志存储在数据缓冲器中。利用这种配置,随着获得新的传感器数据,机器人设备可以用新的传感器数据替换在数据缓冲器中旧的或过时的传感器数据。例如,数据缓冲器可以被连续地或周期性地更新,使得数据缓冲器存储由机器人设备在先前三十秒期间获得的传感器数据。
在一些示例中,传感器数据日志可以包括由移动计算设备(诸如智能电话、平板计算机、可穿戴计算设备、手持相机计算设备等)捕获的图像。此外,传感器数据日志可以包括从移动计算设备的其他传感器(诸如imu或麦克风阵列)捕获的传感器数据。在一些实例中,移动计算设备可以记录传感器数据,并且将传感器数据日志提供给进行方法400的部分的另一计算设备。备选地,在其他实例中,移动计算设备可以使用移动设备的传感器获得传感器数据日志,并且还进行方法400的其他功能。
在框404处,方法400包括:使用传感器数据日志确定传感器数据日志与碰撞相关,该碰撞涉及在先前时间段内的特定时间处在环境中的物理对象。物理对象可以采用各种形式。例如,物理对象可以是球、宠物或人类。或者,物理对象可以是由机器人设备运输(例如,承载)的物件。作为另一示例,物理对象可以是墙、地板或者家具。
在一个示例中,确定传感器数据日志与碰撞相关可以包括:确定碰撞是在物理对象与机器人设备之间的物理碰撞。该确定可以通过各种方式作出。例如,计算设备可以获得针对先前时间段的至少部分的加速度计数据,并且计算设备可以确定加速度计数据指示在特定时间处在物理对象与机器人设备之间的碰撞。例如,超过阈值的加速度的幅度可以指示由于物理碰撞而导致的速率的突然变化,并且计算设备可以分析加速度计数据以检测在特定时间处的这种幅度。在机器人设备与物理对象之间的物理碰撞的一个示例是,由于机器人设备摔倒或从凸缘上落下而导致在机器人设备与地板之间的物理碰撞。
备选地,确定碰撞是在物理对象与机器人设备之间的物理碰撞可以包括:获得针对先前时间段的至少部分的接触传感器数据,并且确定接触传感器数据指示在物理对象与机器人设备之间的碰撞。例如,当接触传感器接触另一对象时,接触传感器可以输出信号,并且计算设备可以识别这种信号。在一个示例中,当机器人设备撞到墙壁时,接触传感器可以输出信号。
在一些情况下,确定碰撞是在物理对象与机器人设备之间的物理碰撞可以包括:确定由机器人设备承载或运输的对象已经掉落或脱落。例如,传感器数据日志可以包括指示机器人设备的有效载荷的有效载荷数据(例如,有效载荷的重量),并且计算设备可以检测有效载荷的意外减少。如果机器人设备与物理对象碰撞或者机器人设备摔倒,有效载荷可能会突然减少。因此,计算设备可以将减少解释为可能的碰撞的指示。
在其他示例中,碰撞可以是虚拟碰撞。通过示例的方式,确定传感器数据日志与碰撞相关可以包括:确定碰撞是在物理对象与围绕机器人设备的虚拟边界之间的虚拟碰撞,或者是在围绕物理对象的虚拟边界与机器人设备之间的虚拟碰撞。该确定也可以通过各种方式作出。例如,计算设备可以获得针对先前时间段的至少部分的接近传感器数据,并且计算设备可以确定接近传感器数据指示在物理对象与机器人设备之间的距离从大于阈值距离转变到小于阈值距离。阈值距离可以与虚拟边界的距离相同。
类似地,在一些示例中,碰撞可以是在物理对象与软件机器人之间的虚拟碰撞,该软件机器人呈叠加在环境视图上的增强现实图形的形式。计算设备可以通过处理来自深度图像的深度信息来检测这种碰撞。例如,传感器数据日志的图像帧序列可以包括指示到物理对象的距离的深度信息,并且计算设备可以基于深度信息来确定:(i)物理对象从第一位置移动到第二位置,以及(ii)第二位置与增强现实图形的位置重叠。任何计算设备都可以生成和增强现实图形并且检测这种碰撞,诸如移动计算设备(例如,智能手机或平板电脑)或可穿戴计算设备(例如,头戴式显示器)。
同样地,碰撞可以是在物理对象与软件机器人之间的虚拟碰撞,该软件机器人呈在模拟期间渲染的增强现实图形的形式。例如,计算设备可以使用传感器数据日志来生成软件机器人移动穿过环境的模拟。在模拟中,软件机器人可以采用与捕获传感器数据日志的机器人设备所采用的路径相同或不同的路径。如果软件机器人采取不同的路径,则不同的路径可以包括在软件机器人与环境中的物理对象之间的虚拟碰撞,并且计算设备可以检测该虚拟碰撞。
在框406处,方法400包括:响应于确定传感器数据日志与碰撞相关,从传感器数据日志生成用于碰撞的训练数据集。训练数据集可以包括:在图像帧序列中与特定时间相对应的图像帧之前的、图像帧序列的多个图像帧。例如,训练数据集可以包括导致与特定时间相对应的图像帧的五个最新图像帧,使得训练数据集描绘导致碰撞的物理对象的运动。例如,多个图像帧可以包括用于一个或多个像素的深度数据,使得训练数据集包括指示在碰撞之前物理对象的任何移动的深度数据。
在一些情况下,训练数据集还可以包括其他形式的传感器数据。通常,当传感器数据日志包括来自多个传感器的数据时,来自多个传感器的任何数据都可以被打包到训练数据集中。例如,当传感器数据日志包括有效载荷数据时,生成训练数据集可以包括生成训练数据集以进一步包括有效载荷数据。同样,当传感器数据日志包括针对机器人设备的速率数据时,生成训练数据集可以包括生成训练数据集以进一步包括速率数据。作为另一示例,传感器数据日志可以包括标识房间类型(例如,客厅、厨房、卧室等)的房间信息,并且生成训练数据集可以包括生成训练数据集以进一步包括房间信息。
有利地,使用该方法400生成的训练数据集可以用于训练用于碰撞估计的机器学习模型。在一些情况下,进行方法400的计算设备可以使用训练数据集以及同样使用方法400生成或使用其他技术生成的可能的其他训练数据集来训练机器学习模型。例如,机器人设备的计算设备可以多次进行该方法400,然后可以使用生成的训练数据集来训练机器学习模型。在其他情况下,进行方法400的计算设备可以将生成的训练数据集发送到另一计算设备,然后该另一计算设备可以训练机器学习模型。例如,进行方法400的计算设备可以将表示生成的训练数据集的至少一个文件传输至机器学习服务器,并且机器学习服务器可以进行训练。
图5是根据示例实施例的涉及在环境中的物理对象的碰撞的概念图示。如在图5中示出的,机器人设备500可以在客厅中操作。例如,机器人设备500可以跨客厅的地板驱动。在跨地板驱动时,机器人设备500可以获得指示环境的传感器数据。例如,机器人设备500可以捕获图像帧序列并且记录imu数据。
如在图5中进一步示出的,机器人设备500可能偶然地撞到猫502。机器人设备500的计算设备可以检测到机器人设备500已经撞到猫502,并且相应地触发训练数据集的生成。通过示例的方式,计算设备可以将由机器人设备500在撞到猫之前获得的传感器数据的部分打包到一起以作为训练数据集。在一个实例中,训练数据集可以包括描绘在与机器人设备500碰撞之前的猫502的运动的rgbd图像帧序列。
图6是根据示例实施例的涉及在环境中的物理对象的碰撞的另一概念图示。如在图6中示出的,计算设备600可以捕获并显示客厅的视图。另外,计算设备600可以将增强现实图形602叠加在客厅的视图上。例如,增强现实图形602可以是在客厅的虚拟表示内四处移动的动画角色。
如在图6中进一步示出的,增强现实图形602被定位在客厅的虚拟表示内的特定位置处。计算设备600可以检测并跟踪对象在客厅中的运动。例如,计算设备600可以检测对象(即,狗604)正在跨客厅移动。另外,计算设备600可以确定狗604在客厅的虚拟表示内的3d位置。例如,计算设备600可以使用深度相机获得rgbd图像帧,并且通过处理该rgbd图像帧来确定狗604的3d位置。
此外,计算设备600可以确定狗604已经从不与增强现实图形602的位置重叠的第一位置移动到与增强现实图形602的位置重叠的第二位置。在一个示例中,计算设备600可以通过将狗604在环境的虚拟表示中的3d位置与增强现实图形602在环境的虚拟表示中的3d位置进行比较,来确定狗604的第二位置与增强现实图形602的位置重叠。例如,计算设备600可以确定在狗604的质心与增强现实图形602的质心之间的2d距离或3d距离,并且基于确定的距离小于阈值来确定狗604的3d位置与增强现实图形602的3d位置重叠。
响应于检测到狗604从不与增强现实图形602的位置重叠的位置运动到与增强现实图形602重叠的位置,计算设备600可以触发训练数据集的生成。通过示例的方式,计算设备600可以将描绘狗604从第一位置运动到第二位置的一个或多个rgbd图像帧打包到一起作为训练数据集。
用于检测在增强现实图形602与狗604之间的碰撞的其他技术也是可能的。例如,在游戏中,一些游戏引擎具有碰撞器,该碰撞器针对在场景中的已知对象提供碰撞检测。碰撞器将实体(body)指定给在场景中的对象(例如,边界球体、网格或者所有3d实体)。如果第一对象的实体与第二对象的实体进行接触,则碰撞器生成碰撞事件。
为了允许碰撞器在增强现实场景中工作,计算设备可以估计真实世界对象的位置、尺寸和姿势,以便可以利用在环境的3d表示中的适当的实体和增强现实图形来表示真实世界对象。该计算设备可以使用不同的细节级别来估计真实世界对象的位置、尺寸和姿势。作为一个示例,计算设备可以使用经由深度相机确定的在对象表面上的点来定义对象的实体。作为另一个示例,计算设备可以估计用于在场景中的一个或多个对象的边界框。边界框可以是2d或3d的。作为又一示例,计算设备可以估计对象的3d形状。例如,计算设备可以查询数据库以确定对象的3d模型,或者使用机器学习来估计对象的3d模型。
如上所述,使用图4的方法400生成的训练数据集和/或使用其他技术生成的训练数据集可以用于训练用于碰撞估计的机器学习模型。对包括与物理对象移动相关的数据的训练数据集进行训练机器学习模型可以包括:在训练数据集中找到将输入传感器数据映射到对象轨迹或速率的模式。在机器学习模型被训练之后,计算设备可以使用机器学习模型,以基于与物理对象相对应的输入数据来预测物理对象将如何移动。
图7示出了用于碰撞估计的示例方法700的流程图。在图7中示出的方法呈现了方法的一种实施例,例如,该方法可以由计算设备(诸如在本文的任何附图中描绘的任何计算设备)进行。
在框702处,方法700包括:获得指示在先前时间段期间在环境中的物理对象的传感器数据。在一个示例中,传感器数据可以包括图像帧序列。例如,传感器数据可以包括描绘物理对象的运动的rgbd图像帧序列。传感器数据也可以包括背景数据,诸如房间的类型或一天中的时间。
在框704处,方法700包括:使用机器学习模型和传感器数据来确定物理对象在后续时间段期间的估计轨迹。例如,计算设备可以将传感器数据作为输入提供给机器学习模型,并且将物理对象的估计轨迹作为输出接收。估计轨迹可以包括物理对象随时间变化的估计位置。在一些情况下,计算设备可以导出与物理对象相对应的信息,并且将导出的信息作为输入提供给机器学习模型。通过示例的方式,计算设备可以确定物理对象的尺寸(诸如移动对象的高度、深度和速度),并且将尺寸和速度作为输入提供给机器学习模型。在一些实例中,还可以将诸如房间类型或一天中的时间的背景数据作为输入提供给机器学习模型。
在框706处,方法700包括:确定物理对象的估计轨迹指示潜在碰撞。在一个示例中,确定物理对象的估计轨迹指示潜在碰撞可以包括:将物理对象的估计轨迹与机器人(诸如,机器人设备或软件机器人)的估计轨迹进行比较,以及确定物理对象的估计轨迹与机器人的估计轨迹相交。例如,如果物理对象根据物理对象的估计轨迹移动、并且机器人根据机器人的估计轨迹移动,则计算设备可以确定物理对象和机器人可能碰撞。
在框708处,方法700包括:执行动作以避免潜在碰撞。例如,在框706处的潜在碰撞可以是在物理对象与机器人设备之间的潜在碰撞,并且执行动作可以包括将命令提供给机器人设备的驱动系统(例如,提供用以停止、反转或者遵循特定轨迹以避免与物理对象碰撞的命令)。作为另一示例,在框706处的潜在碰撞可以是在物理对象与软件机器人之间的潜在碰撞,该软件机器人呈在环境视图上渲染的增强现实图形的形式,并且执行该动作可以包括:调整增强现实图形的位置(例如,将增强现实图形移动到新的位置、或者使得增强现实图形短暂地跳开)。
有利地,使用该方法700,计算设备可以检测潜在碰撞,并且采取动作以避免潜在碰撞。例如,机器人设备的计算设备可以处理由机器人设备获得的传感器数据,并且使得机器人设备采取动作以避免潜在碰撞。
图8是根据示例实施例的碰撞估计和避免的概念性图示。如在图8中示出的,物理对象(即,狗802)可以在建筑中的房间内移动。在机器人设备804跨房间移动时,机器人设备804的计算设备可以获得指示狗802的传感器数据。例如,计算设备可以获得包括描绘狗802的运动的一个或多个图像帧的传感器数据。
然后,计算设备可以使用机器学习模型来确定狗802的估计轨迹。如在图8中示出的,狗802的估计轨迹可以包括狗802在一秒后的估计位置,狗802在两秒后的估计位置等。
此外,计算设备可以将狗802的估计轨迹与机器人设备804的估计轨迹进行比较,并且确定机器人设备可能在约2秒后与狗802碰撞。响应于该确定,计算设备可以使得机器人设备804在位置806处停止,使得机器人设备804避免无意地与狗802碰撞。备选地,计算设备可以使得机器人设备804在位置806处停止,并且然后反转或改变方向(未示出)。
在另一示例中,使用图4的方法400生成的训练数据集和/或使用其他技术生成的训练数据集可以用于训练机器学习模型,以预测机器人设备将摔倒。例如,计算设备可以接收指示针对机器人设备的轨迹的数据,并且将该数据提供给已经在涉及机器人设备摔倒的数据集上训练过的机器学习模型。然后,计算设备可以使用机器学习模型来确定机器人设备的轨迹指示潜在碰撞(例如,机器人设备摔倒)。并且响应于该确定,计算设备可以执行动作以避免潜在碰撞。例如,计算设备可以提供警报或改变机器人设备的轨迹。
不同有利布置的描述已经被呈现以用于图示和描述的目的,并且不旨在穷举或限制在所公开的示例的形式。在回顾和理解前述公开之后,本领域普通技术人员将容易预见许多修改和变型。此外,不同的示例可以提供与其他示例相比不同的优点。选择和描述所选择的一个或多个示例是为了最好地解释原理和实际应用,并且使本领域普通技术人员能够理解针对各种示例的公开具有适合于预期的特定用途的各种修改。
1.一种计算机实现的方法,包括:
由计算设备获得指示在先前时间段期间的环境的传感器数据日志,其中所述传感器数据日志包括图像帧序列;
由所述计算设备确定所述传感器数据日志与碰撞相关,所述碰撞涉及在所述先前时间段内的特定时间处在所述环境中的物理对象;以及
响应于确定所述传感器数据日志与所述碰撞相关,由所述计算设备从所述传感器数据日志生成用于所述碰撞的训练数据集,其中用于所述碰撞的所述训练数据集包括:在所述图像帧序列中与所述特定时间相对应的图像帧之前的、所述图像帧序列中的多个图像帧。
2.根据权利要求1所述的计算机实现的方法,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述碰撞是所述物理对象与机器人设备之间的物理碰撞。
3.根据权利要求2所述的计算机实现的方法,还包括:针对所述先前时间段的至少部分来获得加速度计数据,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述加速度计数据指示所述物理对象与所述机器人设备之间的碰撞。
4.根据权利要求2所述的计算机实现的方法,还包括:针对所述先前时间段的至少部分来获得接触传感器数据,以及其中确定所述传感器数据日志与所述碰撞相关包括:确定所述接触传感器数据指示所述物理对象与所述机器人设备之间的碰撞。
5.根据权利要求2所述的计算机实现的方法,其中所述计算设备是所述机器人设备的计算设备。
6.根据权利要求2所述的计算机实现的方法,其中所述传感器数据日志还包括速率数据日志,所述速率数据日志指示在所述先前时间段期间在所述环境中所述机器人设备的移动,以及其中从所述传感器数据日志生成用于所述碰撞的所述训练数据集包括:生成所述训练数据集,以进一步包括所述速率数据日志的至少一部分。
7.根据权利要求2所述的计算机实现的方法,其中所述传感器数据日志还包括指示所述机器人设备的有效载荷的有效载荷数据,以及其中确定所述传感器数据日志与所述碰撞相关包括:确定所述有效载荷数据指示所述物理对象与所述机器人设备之间的碰撞。
8.根据权利要求1所述的计算机实现的方法,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述碰撞是所述物理对象与围绕机器人设备的虚拟边界之间的虚拟碰撞、或者围绕所述物理对象的虚拟边界与所述机器人设备之间的虚拟碰撞。
9.根据权利要求8所述的计算机实现的方法,还包括:针对所述先前时间段的至少部分来获得接近传感器数据,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述接近传感器数据指示所述物理对象与所述机器人设备之间的距离从大于阈值距离转变到小于所述阈值距离。
10.根据权利要求1所述的计算机实现的方法,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述碰撞是所述物理对象与软件机器人之间的虚拟碰撞,所述软件机器人呈增强现实图形的形式。
11.根据权利要求10所述的计算机实现的方法,其中所述图像帧序列中的至少两个图像包括指示到所述物理对象的距离的深度信息,以及其中确定所述传感器数据日志与所述碰撞相关包括:基于所述深度信息,来确定所述物理对象从第一位置移动到第二位置、并且所述第二位置与所述增强现实图形的位置重叠。
12.根据权利要求1所述的计算机实现的方法,其中所述多个图像帧包括用于一个或多个像素的深度数据,以及其中所述深度数据指示在所述碰撞之前的所述物理对象的移动。
13.根据权利要求1所述的计算机实现的方法,其中所述环境包括房间,其中所述传感器数据日志还包括指示所述房间的房间类型的房间信息,以及其中从所述传感器数据日志生成用于所述碰撞的所述训练数据集包括:生成所述训练数据集,以进一步包括所述房间信息。
14.根据权利要求1所述的计算机实现的方法,还包括:将表示用于所述碰撞的所述训练数据集的至少一个文件传输到机器学习服务器设备,其中所述机器学习服务器设备被配置为使用所述训练数据集来训练机器学习模型。
15.根据权利要求1所述的计算机实现的方法,还包括:由所述计算设备使用所述训练数据集来训练机器学习模型。
16.根据权利要求1所述的计算机实现的方法,还包括:
接收指示所述环境的附加传感器数据;以及
由所述计算设备使用机器学习模型来确定所述附加传感器数据指示在所述环境中在未来时间处的潜在碰撞。
17.一种计算设备,包括:
至少一个处理器;
存储器;以及
程序指令,被存储在所述存储器中,所述程序指令当由所述至少一个处理器执行时,使得所述计算设备执行操作,所述操作包括:
获得指示在先前时间段期间的环境的传感器数据日志,其中所述传感器数据日志包括图像帧序列,
确定所述传感器数据日志与碰撞相关,所述碰撞涉及在所述先前时间段内的特定时间处在所述环境中的物理对象,以及
响应于确定所述传感器数据日志与所述碰撞相关,从所述传感器数据日志生成用于所述碰撞的训练数据集,其中用于所述碰撞的所述训练数据集包括:在所述图像帧序列中与所述特定时间相对应的图像帧之前的、所述图像帧序列中的多个图像帧。
18.根据权利要求17所述的计算设备,其中确定所述传感器数据日志与所述碰撞相关包括:确定所述碰撞是所述物理对象与机器人设备之间的物理碰撞。
19.根据权利要求18所述的计算设备,其中所述计算设备是所述机器人设备的计算设备。
20.一种非瞬态计算机可读介质,具有在其中存储的指令,所述指令当由计算设备执行时,使得所述计算设备执行功能,所述功能包括:
由计算设备获得指示在先前时间段期间的环境的传感器数据日志,其中所述传感器数据日志包括图像帧序列;
确定所述传感器数据日志与碰撞相关,所述碰撞涉及在所述先前时间段内的特定时间处在所述环境中的物理对象;以及
响应于确定所述传感器数据日志与所述碰撞相关,从所述传感器数据日志生成用于所述碰撞的训练数据集,其中用于所述碰撞的所述训练数据集包括:在所述图像帧序列中与所述特定时间相对应的图像帧之前的、所述图像帧序列中的多个图像帧。
技术总结