用于多个传感器的机器学习虚拟传感器模型的制作方法

文档序号:18516719发布日期:2019-08-24 09:30阅读:432来源:国知局
用于多个传感器的机器学习虚拟传感器模型的制作方法

本公开概括而言涉及机器学习虚拟传感器模型。更具体而言,本公开涉及用于为多个传感器完善和/或预测传感器输出的深度机器学习。



背景技术:

移动计算设备(例如,智能电话)越来越多地配备有许多个专门的传感器。例如,可提供图像传感器来捕捉图像,可提供位置传感器来确定设备位置,触摸传感器可接收用户输入,可提供运动传感器来检测运动,等等。这种传感器的输出可被以多种方式使用来促进用户与移动计算设备的交互和与在移动计算设备上运行的应用的交互。

处理传感器数据的复杂性引入了"传感器时延"的问题,其中在感测到的事件发生的时间和计算设备看起来对感测到的事件作出响应的时间之间出现延迟。传感器时延可以是影响设备性能和用户满意度的重要挑战。尤其,传感器时延是对于用户而言可高度可见并且可为用户引起严重问题的性能参数。

与传感器数据的准确性和及时性有关的潜在担忧可在处理从多个传感器接收的传感器数据时加重。大多数传感器通常独立工作并且以其自己的频率产生其自己的传感器读数,这可使得一些应用难以高效地融合一组传感器。一些传感器也不像其他传感器那样或者像一些应用需要的那样及时地提供其读数。例如,虚拟现实(virtualreality,vr)应用可对处理传感器数据的延迟和不准确性敏感。



技术实现要素:

本公开的实施例的方面和优点将部分地在接下来的描述中阐述,或者可从说明书中获悉,或者可通过实现实施例来获悉。

本公开的一个示例方面针对一种确定来自多个传感器的一个或多个预测的未来传感器输出的传感器输出估计设备。这个方面的一种设备在本文中也被称为"虚拟传感器",因为其可被认为充当传感器,因为其确定一个或多个预测的未来传感器输出。虚拟传感器包括至少一个处理器。虚拟传感器还包括机器学习传感器输出预测模型。传感器输出预测模型已被训练来接收来自多个传感器的传感器数据,来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。响应于对来自多个传感器的传感器数据的接收,传感器输出预测模型已被训练来输出一个或多个预测的未来传感器输出。虚拟传感器还包括存储指令的至少一个计算机可读介质(其可以是有形非暂态计算机可读介质,虽然此示例方面不限于此),所述指令当被至少一个处理器执行时使得该至少一个处理器从多个传感器获得传感器数据,该传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。指令还使得至少一个处理器将传感器数据输入到传感器输出预测模型中。指令还使得至少一个处理器接收传感器输出预测向量作为传感器输出预测模型的输出,该传感器输出预测向量描述在一个或多个未来时间分别针对多个传感器中的两个或更多个的一个或多个预测的未来传感器输出。指令还使得至少一个处理器执行与由传感器输出预测向量描述的一个或多个预测的未来传感器输出相关联的一个或多个动作。

本公开的另一示例方面针对一种从多个传感器输入确定一个或多个完善的传感器输出值的计算设备。计算设备包括至少一个处理器和存储指令的至少一个计算机可读介质(其可以是有形非暂态计算机可读介质,虽然此示例方面不限于此),所述指令当被至少一个处理器执行时使得该至少一个处理器执行操作。所述操作包括获得描述机器学习传感器输出完善模型的数据。机器学习传感器输出完善模型已被训练来接收来自多个传感器的传感器数据,识别多个传感器的传感器输出之间的相关性,并且响应于对来自多个传感器的传感器数据的接收而输出一个或多个完善的传感器输出值,其中来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。操作还包括从多个传感器获得传感器数据,传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。操作还包括将传感器数据输入到机器学习传感器输出完善模型中。操作还包括接收传感器输出完善向量作为机器学习传感器输出完善模型的输出,所述传感器输出完善向量描述分别针对多个传感器中的两个或更多个传感器的一个或多个完善的传感器输出。

本公开的另一示例方面针对一种从多个传感器输入确定一个或多个估计的传感器输出值的计算设备。计算设备包括至少一个处理器和存储指令的至少一个计算机可读介质(其可以是有形非暂态计算机可读介质,虽然此示例方面不限于此),所述指令当被至少一个处理器执行时使得该至少一个处理器执行操作。所述操作包括获得描述机器学习传感器输出估计模型的数据。机器学习传感器输出估计模型已被训练来接收来自多个传感器的传感器数据,识别多个传感器的传感器输出之间的相关性,并且响应于对来自多个传感器的传感器数据的接收而输出一个或多个估计传感器输出值,其中来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。操作还包括从多个传感器获得传感器数据,传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。操作还包括将传感器数据输入到机器学习传感器输出估计模型中。操作还包括接收传感器输出估计向量作为机器学习传感器输出估计模型的输出,所述传感器输出估计向量描述分别针对多个传感器中的两个或更多个传感器的一个或多个估计的传感器输出。一个或多个估计的传感器输出例如可包括一个或多个未来时间的分别针对多个传感器中的两个或更多个传感器的一个或多个预测的未来传感器输出,和/或可包括分别针对多个传感器中的两个或更多个传感器的一个或多个完善的传感器输出。

本公开的另一示例方面针对存储计算机可读指令的一个或多个计算机可读介质(其可以是有形非暂态计算机可读介质,虽然此示例方面不限于此),所述指令当一个或多个处理器执行时使得该一个或多个处理器执行操作。所述操作包括获得描述机器学习模型的数据。机器学习模型已被训练来接收来自多个传感器的传感器数据,识别多个传感器的传感器输出之间的相关性,并且响应于对来自多个传感器的传感器数据的接收而输出一个或多个估计的传感器输出值,其中来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。该模型也可被称为"虚拟传感器模型"。一个或多个估计的传感器输出值包括完善的传感器输出值和预测的未来传感器输出值中的一个或多个。操作还包括从多个传感器获得传感器数据,传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。操作还包括将传感器数据输入到机器学习模型中。操作还包括接收传感器输出向量作为机器学习模型的输出,所述传感器输出向量描述针对多个相应传感器中的每一个的一个或多个传感器输出值。操作还包括经由应用编程接口(api)将传感器输出向量的传感器输出值中的一个或多个提供给应用。

本公开的其他方面针对各种对应系统、装置、计算机可读介质(包括但不限于非暂态计算机可读介质)、用户界面、电子设备和方法。例如,另一示例方面针对一种确定来自多个传感器的一个或多个完善的传感器输出的传感器输出估计设备(在本文中也称为"虚拟传感器")。虚拟传感器包括至少一个处理器。虚拟传感器还包括机器学习传感器输出完善模型。传感器输出预测模型已被训练来接收来自多个传感器的传感器数据,来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。响应于对来自多个传感器的传感器数据的接收,传感器输出预测模型已被训练来输出一个或多个完善的传感器输出。虚拟传感器还包括存储指令的至少一个计算机可读介质(其可以是有形非暂态介质,虽然此示例方面不限于此),所述指令当被至少一个处理器执行时使得该至少一个处理器从多个传感器获得传感器数据,该传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。指令还使得至少一个处理器将传感器数据输入到传感器输出完善模型中。指令还使得至少一个处理器接收传感器输出完善向量作为传感器输出完善模型的输出,该传感器输出完善向量描述分别针对多个传感器中的两个或更多个的一个或多个完善传感器输出。

本公开的另一示例方面针对一种由一个或多个处理器实现的从多个传感器输入确定一个或多个估计的传感器输出值的方法。该方法包括获得描述机器学习传感器输出估计模型的数据。机器学习传感器输出估计模型已被训练来接收来自多个传感器的传感器数据,识别多个传感器的传感器输出之间的相关性,并且响应于对来自多个传感器的传感器数据的接收而输出一个或多个估计传感器输出值,其中来自每个传感器的传感器数据指示该传感器的物理环境中的一个或多个测量到的参数。该方法还包括从多个传感器获得传感器数据,传感器数据描述每个传感器的物理环境中的一个或多个测量到的参数。操作还包括将传感器数据输入到机器学习传感器输出估计模型中。该方法还包括接收传感器输出估计向量作为机器学习传感器输出估计模型的输出,所述传感器输出估计向量描述分别针对多个传感器中的两个或更多个传感器的一个或多个估计的传感器输出。一个或多个估计的传感器输出例如可包括对于一个或多个未来时间分别针对多个传感器中的两个或更多个传感器的一个或多个预测的未来传感器输出,和/或可包括分别针对多个传感器中的两个或更多个传感器的一个或多个完善的传感器输出。

参考接下来的描述和所附的权利要求将更好地理解本公开的各种实施例的这些和其他特征、方面和优点。包含在本说明书中并构成本说明书的一部分的附图图示了本公开的示例实施例并且与描述一起用于说明相关的原理。

附图说明

针对本领域普通技术人员的实施例的详细论述在说明书中阐述,说明书参考了附图,在附图中:

图1描绘了根据本公开的示例实施例的执行机器学习来实现虚拟传感器的示例计算系统的框图;

图2描绘了根据本公开的示例实施例的执行机器学习的第一示例计算设备的框图;

图3描绘了根据本公开的示例实施例的执行机器学习的第二示例计算设备的框图;

图4描绘了根据本公开的示例实施例的第一示例模型布置;

图5描绘了根据本公开的示例实施例的第二示例模型布置;

图6描绘了根据本公开的示例实施例的第三示例模型布置;

图7描绘了根据本公开的示例实施例的第四示例模型布置;

图8描绘了根据本公开的示例实施例的执行机器学习的示例方法的流程图;

图9描绘了根据本公开的示例实施例的执行机器学习的示例方法的第一附加方面的流程图;

图10描绘了根据本公开的示例实施例的执行机器学习的示例方法的第二附加方面的流程图;

图11描绘了根据本公开的示例实施例的用于机器学习模型的第一训练方法的流程图;以及

图12描绘了根据本公开的示例实施例的用于机器学习模型的第二训练方法的流程图。

具体实施方式

概述

概括而言,本公开针对的是利用机器学习来为多个传感器整体地完善和/或预测传感器输出值的系统和方法。具体地,本公开的系统和方法可包括和使用一种机器学习虚拟传感器模型,该机器学习虚拟传感器模型可被训练来从多个传感器接收传感器数据,并且响应于对传感器数据的接收,输出一个或多个完善的传感器输出值和/或一个或多个预测的未来传感器输出值。虚拟传感器模型可为多个传感器中的一些或全部输出一个或多个完善的传感器输出值和/或一个或多个预测的未来传感器输出值。完善的传感器输出值相对于原始传感器数据可得到改善。具体地,虚拟传感器模型可利用虚拟传感器模型已学习到的传感器及其数据之间的相关性或其他关系来改善或以其他方式完善输入传感器数据,从而使得消耗传感器数据的应用或组件能够对传感器数据提供更准确和/或精确的响应。根据另一方面,作为提供完善的传感器值的附加或替换,虚拟传感器模型可输出表示对未来传感器读数的预测的一个或多个预测的未来传感器输出值。有了预测的未来传感器输出值,消耗来自多个传感器的数据的应用或其他组件不需要等待实际传感器输出值出现。从而,预测的未来传感器输出值可改善利用来自多个传感器的数据的应用或其他组件的响应性并减小其时延。例如,移动设备、虚拟现实(vr)应用、载具控制系统等等可受益于预测的未来传感器输出值的可用性。此外,完善的传感器输出值和/或预测的未来传感器输出值可帮助在多个传感器上改善和同步输出值,无论独立刷新频率如何,而刷新频率在不同的传感器上有时可能是不同的。来自虚拟传感器模型的输出值也可包括对于预测和/或完善的传感器值的置信值。这些置信值也可被使用预测和/或完善的传感器输出值的应用所使用。

具体地,根据本公开的一方面,在一些实现方式中,用户计算设备(例如,诸如智能电话之类的移动计算设备)可从多个传感器获得传感器数据。传感器数据可指示传感器的物理环境中的一个或多个测量到的参数。传感器可包括——但不限于——运动传感器、加速度计、陀螺仪、方向传感器、磁场传感器、音频传感器(例如,麦克风)、图像传感器(例如,相机)、线性加速度传感器、重力传感器、旋转向量传感器、磁力仪、位置传感器(例如,gps)、惯性运动单元、里程计、气压计、温度计、湿度计、触摸敏感传感器、指纹传感器、接近传感器、这种传感器和其他传感器的任何组合,等等。计算设备可将来自多个传感器的传感器数据输入到机器学习虚拟传感器模型中并且接收作为机器学习虚拟传感器模型的输出的虚拟传感器输出向量,该虚拟传感器输出向量包括针对多个传感器中的一个或多个的完善的传感器输出和/或预测的未来传感器输出。计算设备可执行与虚拟传感器输出向量的传感器输出相关联的一个或多个动作。

在一些示例中,虚拟传感器模型可以是传感器输出完善模型。在这种情况下,传感器输出完善模型可被训练来从多个传感器接收传感器数据,并且响应于从多个传感器接收到传感器数据,输出一个或多个完善的传感器输出值。作为示例,当来自多个传感器的传感器数据被作为输入提供到经训练的传感器输出完善模型时,传感器输出完善向量可作为传感器输出完善模型的输出被接收。传感器输出完善向量可描述分别针对多个传感器中的一个或多个的一个或多个完善的传感器输出。

按照公开的技术生成的完善的传感器输出通过整体地利用如下事实可提供相对于原始传感器数据的改善:多个传感器测量的总和通常可比单独考虑的每个传感器测量更好。例如,第一运动传感器(例如,加速度计)和第二运动传感器(例如,陀螺仪)两者在包括这种传感器的设备经历运动时都可以登记状态的改变。传感器输出完善模型可首先学习并随后利用这种传感器之间的相关性来帮助改善当前采样的传感器输出值。例如,加速度计读数可用于帮助改善陀螺仪读数,并且陀螺仪读数可用于帮助改善加速度计读数。在一些实现方式中,传感器输出完善模型可学习有效数目的传感器(例如,像上述示例中提供的那样多于两个)之间的微妙的和复杂的相关性或相依性并且可整体地应用这种学习到的相关性来为这种有效数目的传感器中的一些或全部改善或以其他方式完善传感器输出。传感器相关性也可帮助传感器输出完善模型识别并管理可由于某些时刻的有噪声的和/或有错误的测量而产生的传感器数据异常值。

在一些示例中,虚拟传感器模型可以是传感器输出预测模型。在这种情况下,传感器输出预测模型可被训练来从多个传感器接收传感器数据,并且响应于从多个传感器接收到传感器数据,输出一个或多个预测的未来传感器输出。作为示例,当来自多个传感器的传感器数据被作为输入提供到经训练的传感器输出预测模型时,传感器输出预测向量可作为传感器输出预测模型的输出被接收。传感器输出预测向量可描述在一个或多个未来时间针对多个传感器中的一个或多个的一个或多个预测的未来传感器输出。例如,传感器输出预测向量可以是对每个传感器在接下来的时步(或例如接下来的三个时步)中可能会有什么读数的预测。在一些示例中,可向传感器输出预测模型提供额外的时间输入以指定要为其生成预测的未来传感器输出的一个或多个特定的未来时间。传感器输出预测模型也可被训练来为预测的未来传感器输出中的每一个确定和提供学习的置信度量作为输出。

在一些示例中,虚拟传感器模型可被训练并被配置为同时为传感器完善和预测两者操作。例如,虚拟传感器模型可被训练来从多个传感器接收传感器数据,并且响应于从多个传感器接收到传感器数据,输出一个或多个传感器输出完善值和一个或多个传感器输出预测值。在一些示例中,可以以包括针对多个传感器的完善的传感器输出值的传感器输出完善向量的形式来提供一个或多个传感器输出完善值。在一些示例中,可以以包括在一个或多个不同的时步的针对多个传感器的预测的未来传感器输出值的一个或多个传感器输出预测向量的形式来提供一个或多个传感器输出预测值。

根据本公开的另一方面,可按照一个或多个机器学习技术来训练虚拟传感器模型,所述机器学习技术包括但不限于基于神经网络的配置或者其他基于回归的算法或配置。在一些实现方式中,虚拟传感器模型可包括神经网络。在这种情况下,虚拟传感器模型内的神经网络可以是递归神经网络。在一些示例中,虚拟传感器模型内的神经网络可以是长短期记忆(longshort-termmemory,lstm)神经网络、门控递归单元(gatedrecurrentunit,gru)神经网络或者其他形式的递归神经网络。

根据本公开的另一方面,在一些实现方式中,虚拟传感器模型可以是允许在时间上引用传感器数据的时间模型(temporalmodel)。在这种情况下,作为输入提供到虚拟传感器模型的传感器数据可以是t个输入的序列,每个输入对应于在不同的时步获得的传感器数据(或者"时步序列")。例如,可迭代地获得来自多个传感器的传感器数据的时步序列。考虑在t个不同的采样时间(例如,t1,t2,…,tt)迭代地获得的从n个不同的传感器获得的传感器数据。在这种示例中,对于t个不同时间中的每一个获得为n个不同的传感器中的每一个提供传感器读数的n维传感器数据向量。这些传感器数据向量中的每一个可随着其被迭代地获得而被迭代地作为输入提供到虚拟传感器模型的神经网络。在一些示例中,t个不同的采样时间(例如,t1,t2,…,tt)中的每两个相邻采样时间之间的时间差可以相同或者其可以不同。

根据本公开的另一方面,在一些实现方式中,响应于对每个传感器数据向量的接收而生成的虚拟传感器输出向量可包括m维虚拟传感器输出向量。在一些示例中,m维虚拟传感器输出向量具有与n维传感器数据向量相同的维度数(例如,m=n),从而可为被采样并且其传感器数据被作为输入提供到虚拟传感器模型的每个传感器确定完善的和/或预测的值。在一些示例中,传感器数据向量的维度数(n)可小于虚拟传感器输出向量的维度数(m)(例如,n<m)。如果来自一个或多个传感器的采样的传感器数据被用于完善这些值,并且用于为另一不同的未采样的传感器预测值,则可能是这样的情况。在一些示例中,传感器数据向量的维度数(n)可大于虚拟传感器输出向量的维度数(m)(例如,n>m)。如果来自一个或多个传感器的采样的传感器数据被用于仅为如下的(一个或多个)采样的传感器的子集完善和/或预测值:该(一个或多个)采样的传感器的子集对于特定应用特别重要或者特定应用具有访问该(一个或多个)采样的传感器的子集的许可,则可能是这样的情况。

根据本公开的另一方面,在一些实现方式中,虚拟传感器模型可以为多个传感器提供同步的和/或内插的传感器输出值以增强这种传感器的采样率。同步的传感器输出值可由虚拟传感器模型通过从多个传感器接收传感器数据来输出,其中来自多个传感器中的至少一些的传感器数据与其他的相比是更新近被检测到的。虚拟传感器输出可转化更新近检测到的传感器输出来基于学习到的多个传感器之间的相关性和其他关系为其他传感器输出预测更新的值。例如,如果虚拟传感器模型接收到在当前时间更新的第一组传感器的传感器数据和在不那么新近的时间更新的第二组传感器的传感器数据,则虚拟传感器输出向量可利用学习到的第一组传感器和第二组传感器之间的相关性来同时为第一组传感器和第二组传感器中的一些或全部提供同步的传感器输出值。在一些实现方式中,同步的传感器输出值是为当前时间(t)提供的。在一些实现方式中,同步的传感器输出值是为未来时间(例如,t+1)提供的。通过在第一时间和第二时间(例如,t和t+2)从多个传感器接收传感器数据读数可确定内插的传感器输出值。学习到的多个传感器之间的相关性可被虚拟传感器模型整体地利用来为第一时间(t)和第二时间(t+2)之间的中间时间(例如,t+1)内插传感器输出值。

根据本公开的另一方面,可利用确定的损失函数在地面实况传感器数据(ground-truthsensordata)上训练本文描述的虚拟传感器模型。更具体而言,训练计算系统可利用包括用于多个传感器的许多组地面实况传感器数据的训练数据集来训练虚拟传感器模型。例如,训练数据集可包括描述针对多个传感器的大量先前观察到的传感器输出的传感器数据。在一些实现方式中,为了训练虚拟传感器模型,一组地面实况传感器数据的第一部分可被输入到要训练的虚拟传感器模型中。响应于接收到这样的第一部分,虚拟传感器模型输出预测该组地面实况传感器数据的剩余部分的虚拟传感器输出向量。

在这种预测之后,训练计算系统可应用或以其他方式确定损失函数,该损失函数将由虚拟传感器模型生成的虚拟传感器输出向量与虚拟传感器模型尝试预测的地面实况传感器数据的第二部分(例如,剩余部分)相比较。训练计算系统可将损失函数反向传播(例如,通过执行经过时间的截短反向传播)通过虚拟传感器模型来训练虚拟传感器模型(例如,通过修改与虚拟传感器模型相关联的一个或多个权重)。

在一些实现方式中,上述训练技术可用于训练被配置为提供完善的传感器输出值和预测的未来传感器输出值两者的虚拟传感器模型的传感器输出预测部分和/或传感器输出预测模型。在一些实现方式中,额外的训练技术可被采用来训练被配置为提供完善的传感器输出值和预测的未来传感器输出值两者的虚拟传感器模型的传感器输出完善部分和/或传感器输出完善模型。

在一些实现方式中,训练计算系统还可利用包括用于多个传感器的许多组地面实况传感器数据的训练数据集来训练虚拟传感器模型。例如,训练数据集可包括描述针对多个传感器的大量先前观察到的传感器输出的传感器数据。在一些实现方式中,(例如,通过向地面实况传感器数据的第一部分添加生成的随机噪声信号)可向地面实况传感器数据的第一部分添加噪声。所得到的传感器数据的有噪声的第一部分可作为输入被提供到要训练的虚拟传感器模型。响应于接收到这样的传感器数据的有噪声的第一部分,虚拟传感器模型输出预测该组地面实况传感器数据的第二部分(例如,剩余部分)的虚拟传感器输出向量。

在这种预测之后,训练计算系统可应用或以其他方式确定损失函数,该损失函数将由虚拟传感器模型生成的虚拟传感器输出向量与虚拟传感器模型尝试预测的地面实况传感器数据的第二部分(例如,剩余部分)相比较。训练计算系统可将损失函数反向传播通过虚拟传感器模型来训练虚拟传感器模型(例如,通过修改与虚拟传感器模型相关联的一个或多个权重)。

根据本公开的另一方面,在一些实现方式中,可经由应用编程接口(api)使虚拟传感器模型或其至少一部分对在计算设备上提供的一个或多个应用可用。在一些情况下,应用使用api来请求来自如本文所述的虚拟传感器模型的完善的传感器输出值和/或预测的未来传感器输出值。响应于该请求可经由api接收完善的传感器输出值和/或预测的未来传感器输出值。与一个或多个完善的传感器输出值和/或预测的未来传感器输出值相关联的一个或多个动作可被应用执行。在一些示例中,可对应用具有访问哪些传感器的许可做出确定。例如,计算设备可被配置成使得特定的应用具有访问音频传感器(例如,麦克风)的许可,但没有访问位置传感器(例如,gps)的许可。经由api而对应用可用的虚拟传感器输出向量随后可被配置为仅包括用于应用具有访问许可的一个或多个传感器(例如,传感器的授权集合)的完善的和/或预测的传感器输出值。

本公开的一个或多个方面可被采用在多种应用中。在一个示例应用中,公开的技术可用于改善虚拟现实系统内的响应性。虚拟现实系统可包括一个或多个接口设备,包括可穿戴显示设备(例如,头戴式显示设备)、操纵杆、魔杖(wand)、数据手套、触摸屏设备或者包括如本文所述的多个传感器的其他设备。在虚拟现实系统应用中,为其获得传感器数据的多个传感器可包括多个运动传感器或其他传感器。由虚拟传感器模型响应于从多个运动传感器接收到传感器数据而生成的虚拟传感器输出向量可包括针对这多个运动传感器的一个或多个预测的未来传感器输出值。这些预测的值可用于帮助改善虚拟现实应用,例如通过对(由各种传感器测量到的)用户输入更有响应性,从而能够更迅速地并且有时候提前对传感器读数作出反应。

在另一示例应用中,公开的技术可用于改善移动计算设备(例如,智能电话、可穿戴计算设备(例如,智能手表)、平板设备、膝上型电脑等等)内的响应性。在移动计算设备应用中,为其获得传感器数据的多个传感器可包括被容纳在移动计算设备内的多个传感器。由虚拟传感器模型响应于从多个传感器接收到传感器数据而生成的虚拟传感器输出向量可包括针对这多个传感器的一个或多个完善的传感器输出值和/或预测的未来传感器输出值。这些完善的和/或预测的值可用于帮助改善操作移动计算设备。例如,移动计算设备的一个或多个组件可至少部分基于一个或多个预测的未来传感器输出值而被激活。在一个示例中,移动计算设备上的键盘应用可至少部分基于指出用户将要写东西的预测的未来传感器输出值而被激活,从而减少向移动计算设备输入的时延。在另一示例中,当预测的未来传感器输出值指出移动计算设备将响应于用户交互(例如,用户拾起了他的电话或将其从他的口袋中拿出)而改变位置时,移动计算设备可被通电或者从被动操作模式被切换到活跃操作模式。

在另一示例应用中,公开的技术可用于改善交通运输应用(例如,汽车和/或飞机应用)中的响应性。在交通运输应用中,可从其获得传感器数据的多个传感器对应于位于载具(例如,汽车、卡车、公共汽车、飞机等等)中的载具传感器。由虚拟传感器模型响应于接收到载具传感器数据而生成的虚拟传感器输出向量可包括针对这多个载具传感器的一个或多个完善的传感器输出值和/或预测的未来传感器输出值。这些完善的和/或预测的值可用于帮助改善操作载具。例如,响应于来自制动传感器和加速度计的指出载具轨迹的大幅降低的预测的未来传感器数据,可更迅速地激活防抱死制动系统。

本文描述的系统和方法可提供许多个技术效果和益处。例如,公开的技术可通过整体地利用多个传感器之间的相关性来改善传感器输出值(例如,通过确定完善的传感器输出值和/或预测的未来传感器输出值)。机器学习模型可被训练以学习这种相关性,从而使得作为输入提供到机器学习模型的传感器数据可至少部分基于这种学习的相关性而产生提供完善或未来预测的输出。例如,一个或多个运动传感器(例如,陀螺仪和加速度计)之间的传感器相关性可被学习并随后被利用来完善和/或预测传感器输出值,因为如果陀螺仪测量到某种运动则加速度计将有可能也测量到某种运动,反之亦然。类似地,当存在某种运动时,接近传感器和磁罗盘有可能可具有描述状态的改变的输出值。当在移动计算设备本身的运动中存在改变时,可预测移动计算设备中的图像传感器(例如,相机)的视野会改变。传感器完善可提供传感器数据的改善版本(例如,利用加速度计来改善陀螺仪读数,反之亦然)。传感器预测可提供对于传感器在一个或多个未来时步中将可能会有什么读数的估计。通过整体地训练机器学习模型以识别多个传感器之间的相关性,相对于彼此隔离地取回独立操作的传感器输出的传统系统可实现对传感器完善和传感器预测的改善。

本公开的另一示例技术效果和益处是改善的可扩缩性。具体地,相对于开发手工制作的虚拟传感器算法,通过诸如神经网络之类的机器学习模型对传感器数据建模大大减少了需要的研究时间。例如,对于手工制作的虚拟传感器算法,设计者将需要详尽地导出关于不同的传感器在不同的场景中如何交互的启发模型,包括可用传感器的不同组合、不同的传感器频率等等。与之对照,为了使用如本文所述的机器学习模型,可在适当的训练数据上训练网络,如果训练系统允许的话这可大规模地完成。此外,随着新的训练数据变得可用,可容易地修正机器学习模型。此外,通过使用机器学习模型来自动确定多个传感器之间在潜在地不同应用中、以潜在地不同频率的交互和相关性,可大幅减少识别和利用传感器之间的这种交互所需的工作量。

本文描述的系统和方法还可提供为多个传感器提供同步的输出值的技术效果和益处。由于不同的传感器可被设计为以不同的频率产生其传感器读数,所以实时地同步取回准确的传感器输出值有时可能是有挑战性的。在这种情况下,从多个传感器获得的传感器数据可以潜在地包括比其他的更新近检测到的一些传感器数据。如果按照公开的技术将所有传感器数据作为输入提供到训练的虚拟传感器模型,则基于机器学习的相关性预测传感器数据的虚拟传感器输出向量可产生改善的传感器输出。这些改善可例如通过以下方式来实现:基于学习到的多个传感器之间的相关性将更新近检测到的传感器输出转化成针对其他传感器输出的估计的更新值。另外,在一些实现方式中,虚拟传感器模型可提供内插的传感器输出值。

本文描述的系统和方法也可对传感器时延的技术问题提供基于机器学习的技术方案。传感器有时可经历延迟或者以其他方式不能及时地提供其读数,这对于某些应用可能是成问题的。例如,虚拟现实应用可极大地受益于降低的传感器时延。通过将当前传感器输出值作为输入提供到机器学习传感器输出模型,与等待传感器更新被刷新相比,基于已知的相关性预测的未来传感器输出值可提供更迅速的更新。使用公开的机器学习传感器输出模型来确定预测的未来传感器输出值也可用于降低由计算设备接收的预期输入的时延。这样,利用传感器输出的软件应用可提供增强的性能。当这种应用可利用公开的机器学习模型来变得更响应用户输入时,应用可更迅速并且有时提前对传感器读数作出反应。

本文描述的系统和方法也可提供采取相对低的存储器使用/要求的形式的改善的计算机技术的技术效果和益处。具体地,本文描述的机器学习模型有效地总结训练数据并且将其压缩成紧凑形式(例如,机器学习模型本身)。这大大减少了存储和实现(一个或多个)传感器完善和/或预测算法所需要的存储器的量。

现在参考附图,将更详细论述本公开的示例实施例。

示例设备和系统

图1描绘了根据本公开的示例实施例的执行机器学习来实现虚拟传感器的示例计算系统100。系统100包括通过网络180通信地耦合的用户计算设备102、机器学习计算系统130和训练计算系统150。

用户计算设备102可以是任何类型的计算设备,诸如,例如个人计算设备(例如,膝上型电脑或桌面型电脑)、移动计算设备(例如,智能电话或平板设备)、游戏控制台或控制器、可穿戴计算设备、嵌入式计算设备或者任何其他类型的计算设备。

用户计算设备102可包括一个或多个处理器112和存储器114。一个或多个处理器112可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器114可包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等等,及其组合。存储器114可存储数据116和被处理器112执行来使得用户计算设备102执行操作的指令118。

用户计算设备102可包括多个传感器120。在一些实现方式中,用户计算设备102具有两个或更多个传感器,多达总数n个传感器(例如,传感器1121、传感器2122、…、传感器n123)。每个传感器121-123分别可指示传感器的物理环境中的一个或多个测量到的参数。传感器121-123可包括——但不限于——运动传感器、加速度计、陀螺仪、方向传感器、磁场传感器、音频传感器(例如,麦克风)、图像传感器(例如,相机)、线性加速度传感器、重力传感器、旋转向量传感器、磁力仪、位置传感器(例如,gps)、惯性运动单元、里程计、气压计、温度计、湿度计、触摸敏感传感器、指纹传感器、接近传感器、这种传感器和其他传感器的任何组合,等等。

用户计算设备102可存储或包括一个或多个虚拟传感器模型124。在一些示例中,一个或多个虚拟传感器模型124包括传感器输出完善模型。在一些实现方式中,一个或多个虚拟传感器模型124包括传感器输出预测模型。在一些示例中,一个或多个虚拟传感器模型124提供一个或多个传感器输出完善值和一个或多个传感器输出预测值。在一些实现方式中,一个或多个虚拟传感器模型124可以是通过网络180从机器学习计算系统130接收的,被存储在用户计算设备存储器114中,并随后被一个或多个处理器112使用或以其他方式实现。在一些实现方式中,用户计算设备102可实现单个虚拟传感器模型120的多个并行实例(例如,为了执行传感器完善和传感器预测的并行处理)。

用户计算设备102也可包括接收用户输入的一个或多个用户输入组件126。例如,用户输入组件126可以是对用户输入对象(例如,手指或触笔)的触摸敏感的触摸敏感组件(例如,触摸敏感显示屏或触摸板)。触摸敏感组件可用于实现虚拟键盘。其他示例用户输入组件包括麦克风、传统键盘或者用户可用来输入通信的其他手段。

机器学习计算系统130可包括一个或多个处理器132和存储器134。一个或多个处理器132可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器134可包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等等,及其组合。存储器134可存储数据136和被处理器132执行来使得机器学习计算系统130执行操作的指令138。

在一些实现方式中,机器学习计算系统130包括一个或多个服务器计算设备或者由一个或多个服务器计算设备以其他方式实现。在机器学习计算系统130包括多个服务器计算设备的实例中,这种服务器计算设备可根据顺序计算体系结构、并行计算体系结构或者其某种组合来操作。

机器学习计算系统130可存储或以其他方式包括一个或多个机器学习虚拟传感器模型140。例如,虚拟传感器模型140可以是或者可以其他方式包括各种机器学习模型,诸如神经网络(例如,深度递归神经网络)或其他多层非线性模型、基于回归的模型等等。参考图4-图7来论述示例虚拟传感器模型140。

机器学习计算系统130可经由与通过网络180通信地耦合的训练计算系统150的交互来训练虚拟传感器模型140。训练计算系统150可与机器学习计算系统130分离或者可以是机器学习计算系统130的一部分。

训练计算系统150可包括一个或多个处理器152和存储器154。一个或多个处理器152可以是任何合适的处理设备(例如,处理器核、微处理器、asic、fpga、控制器、微控制器等等)并且可以是一个处理器或者操作性连接的多个处理器。存储器154可包括一个或多个非暂态计算机可读存储介质,诸如ram、rom、eeprom、eprom、闪存设备、磁盘等等,及其组合。存储器154可存储数据156和被处理器152执行来使得训练计算系统150执行操作的指令158。在一些实现方式中,训练计算系统150包括一个或多个服务器计算设备或者由一个或多个服务器计算设备以其他方式实现。

训练计算系统150可包括模型训练器160,该模型训练器160利用诸如例如反向传播(例如,经过时间的截短反向传播)之类的各种训练或学习技术来训练存储在机器学习计算系统130处的机器学习模型140。模型训练器160可执行许多种一般化技术(例如,权重衰减、退出等等)来改善被训练的模型的一般化能力。

具体地,模型训练器160可基于一组训练数据142来训练虚拟传感器模型140。训练数据142可包括地面实况传感器数据(例如,描述记录的传感器读数的地面实况向量或其他传感器数据)。在一些实现方式中,如果用户提供了同意,则训练示例可由用户计算设备102提供(例如,基于由用户计算设备102检测到的传感器数据)。从而,在这种实现方式中,提供给用户计算设备102的模型120可由训练计算系统150在从用户计算设备102接收的用户特定传感器数据上训练。在一些情况下,此过程可被称为个性化模型。

模型训练器160可包括用来提供期望的功能的计算机逻辑。模型训练器160可以用硬件、固件和/或控制通用处理器的软件来实现。例如,在一些实现方式中,模型训练器160包括存储在存储设备上、被加载到存储器中并且被一个或多个处理器执行的程序文件。在其他实现方式中,模型训练器160包括被存储在诸如ram硬盘或者光介质或磁介质之类的有形计算机可读存储介质中的计算机可执行指令的一个或多个集合。

网络180可以是任何类型的通信网络,诸如局域网(例如,内联网)、广域网(例如,互联网)或者其某种组合,并且可包括任何数目的有线或无线链路。一般地,通过网络180的通信可经由任何类型的有线和/或无线连接,利用各种各样的通信协议(例如,tcp/ip、http、smtp、ftp)、编码或格式(例如,html、xml)和/或保护方案(例如,vpn、安全http、ssl)来承载。

图1图示了可用于实现本公开的一个示例计算系统。也可以使用其他计算系统。例如,在一些实现方式中,用户计算设备102可包括模型训练器160和训练数据集162。在这种实现方式中,可在用户计算设备本地训练和使用虚拟传感器模型。

图2描绘了根据本公开的示例实施例的执行通信辅助的示例计算设备10的框图。计算设备10可以是用户计算设备或服务器计算设备。

计算设备10包括许多个应用(例如,应用1至应用j)。每个应用包含其自己的机器学习库和(一个或多个)机器学习模型。例如,每个应用可包括机器学习通信辅助模型。示例应用包括文本消息传递应用、电子邮件应用、口述应用、虚拟键盘应用、浏览器应用、虚拟现实(vr)应用等等。

如图2中所示,每个应用可与计算设备的许多个其他组件通信,诸如,例如一个或多个传感器、情境管理器、设备状态组件和/或额外的组件。在一些实现方式中,每个应用可利用api(例如,公共api)与每个设备组件通信。在一些实现方式中,每个应用使用的api可以是特定于该应用的。

图3描绘了根据本公开的示例实施例的执行通信辅助的示例计算设备50的框图。计算设备50可以是用户计算设备或服务器计算设备。

计算设备50包括许多个应用(例如,应用1至应用j)。每个应用可与中央智能层通信。示例应用包括文本消息传递应用、电子邮件应用、口述应用、虚拟键盘应用、浏览器应用、虚拟现实(vr)应用等等。在一些实现方式中,每个应用可利用api(例如,所有应用上的公共api)与中央智能层(以及存储在其中的(一个或多个)模型)通信。

中央智能层包括许多个机器学习模型。例如,如图3中所示,可为每个应用提供相应的机器学习模型(例如,通信辅助模型)并且由中央智能层来管理该相应的机器学习模型。在其他实现方式中,两个或更多个应用可共享单个机器学习模型。例如,在一些实现方式中,中央智能层可以为所有应用提供单个模型(例如,单个通信辅助模型)。在一些实现方式中,中央智能层可被包括在计算设备50的操作系统内或者由计算设备50的操作系统以其他方式实现。

中央智能层可与中央设备数据层通信。中央设备数据层可以是用于计算设备50的数据的集中仓库。如图3中所示,中央设备数据层可与计算设备的许多个其他组件通信,诸如,例如一个或多个传感器、情境管理器、设备状态组件和/或额外的组件。在一些实现方式中,中央设备数据层可利用api(例如,私有api)与每个设备组件通信。

示例虚拟传感器模型

图4描绘了根据本公开的示例实施例的第一示例虚拟传感器模型200。在图4的特定实现方式中,虚拟传感器模型200包括传感器输出完善模型202。

传感器输出完善模型202可以是机器学习模型。在一些实现方式中,传感器输出完善模型202可以是或者可以其他方式包括各种机器学习模型,诸如神经网络(例如,深度递归神经网络)或其他多层非线性模型、基于回归的模型等等。当传感器输出完善模型202包括递归神经网络时,这可以是多层长短期记忆(lstm)神经网络、多层门控递归单元(gru)神经网络或者其他形式的递归神经网络。

传感器输出完善模型202可被配置为从多个传感器接收传感器数据。在一个示例中,用户计算设备(例如,移动计算设备,诸如智能电话)可从多个传感器获得传感器数据,这些传感器数据可被总体表示为传感器数据向量204。在一些示例中,传感器数据向量204包括来自两个或更多个传感器的传感器数据。在一些实现方式中,传感器数据向量204包括来自n个不同的传感器(例如,传感器1、传感器2、…、传感器n)的传感器数据,从而使得每个传感器数据向量204具有n个维度,每个维度分别对应于n个不同的传感器之一的传感器数据206-210。在传感器数据向量204中收集的来自每个传感器的传感器数据206-210可指示该传感器的物理环境中的一个或多个测量到的参数。从其获得传感器数据206-210的传感器可包括——但不限于——运动传感器、加速度计、陀螺仪、方向传感器、磁场传感器、音频传感器(例如,麦克风)、图像传感器(例如,相机)、线性加速度传感器、重力传感器、旋转向量传感器、磁力仪、位置传感器(例如,gps)、惯性运动单元、里程计、气压计、温度计、湿度计、触摸敏感传感器、指纹传感器、接近传感器、这种传感器和其他传感器的任何组合等等。

传感器输出完善模型202可被训练来识别传感器数据向量204中的来自多个传感器的传感器数据206-210之间的相关性。传感器输出完善模型202可响应于接收到传感器数据向量204中的传感器数据206-210而输出包括一个或多个完善的传感器输出值216-220的传感器输出完善向量214。在一些示例中,传感器输出完善向量214提供两个或更多个完善的传感器输出216-220。在一些示例中,传感器输出完善向量214包括针对m个不同的传感器的一个或多个完善的传感器输出216-220,从而使得每个传感器输出完善向量214具有m个维度,每个维度对应于针对m个不同的传感器之一的完善的传感器输出值。

在一些示例中,m维传感器输出完善向量214具有与n维传感器数据向量204相同的维度数(例如,m=n)。在这种情况下,可以为被采样并且其传感器数据被作为输入提供到虚拟传感器模型200的每个传感器确定完善的传感器输出值。在一些示例中,传感器数据向量204的维度数(n)可大于传感器输出完善向量214的维度数(m)(例如,n>m)。如果采样的传感器数据206-210被用于仅为如下的(一个或多个)采样的传感器的子集完善值:该(一个或多个)采样的传感器的子集对于特定应用特别重要或者特定应用具有访问该(一个或多个)采样的传感器的子集的许可,则可能是这样的情况。

按照公开的技术生成的完善的传感器输出216-220通过整体地利用如下事实可提供相对于原始传感器数据206-210的改善:多个传感器测量的总和通常可比单独考虑的每个传感器测量更好。例如,传感器1可对应于第一运动传感器(例如,加速度计)并且传感器2可对应于第二运动传感器(例如,陀螺仪)。当包括这些传感器的设备经历运动时,第一运动传感器和第二运动传感器都可经由传感器1数据206和传感器2数据208登记状态的改变。传感器输出完善模型202可首先学习并随后利用这种传感器之间的相关性来帮助改善当前采样的传感器输出值。例如,加速度计读数可用于帮助改善陀螺仪读数,并且陀螺仪读数可用于帮助改善加速度计读数。完善的传感器1输出216和完善的传感器2输出218可例如表示针对陀螺仪和加速度计的这种完善的传感器读数。

在一些实现方式中,传感器输出完善模型202可学习有效数目的传感器(例如,像上述示例中提供的那样多于两个)之间的微妙的和复杂的相关性或相依性并且可整体地应用这种学习到的相关性来为这种有效数目的传感器中的一些或全部改善或以其他方式完善传感器输出。传感器相关性也可帮助传感器输出完善模型202识别并管理可由于某些时刻的有噪声的和/或有错误的测量而产生的传感器数据异常值。

在一些实现方式中,传感器输出完善模型202可以是允许在时间上引用传感器数据204的时间模型。在这种实现方式中,作为输入提供到传感器输出完善模型202的传感器数据可以是t个输入的序列,每个输入对应于在不同的时步获得的传感器数据向量204。例如,可迭代地获得来自多个传感器的传感器数据的时步序列。考虑在t个不同的采样时间(例如,t1,t2,…,tt)迭代地获得的从n个不同的传感器获得的传感器数据。在这种示例中,对于t个不同时间中的每一个获得为n个不同的传感器中的每一个提供传感器读数的n维传感器数据向量204。这些传感器数据向量204中的每一个可随着其被迭代地获得而被迭代地作为输入提供到虚拟传感器模型200。在一些示例中,t个不同的采样时间(例如,t1,t2,…,tt)之间的时间差可以相同或者其可以不同。

图5描绘了根据本公开的示例实施例的第二示例虚拟传感器模型230。在图5的特定实现方式中,虚拟传感器模型230包括传感器输出预测模型232。

传感器输出预测模型232可以是机器学习模型。在一些实现方式中,传感器输出预测模型232可以是或者可以其他方式包括各种机器学习模型,诸如神经网络(例如,深度递归神经网络)或其他多层非线性模型、基于回归的模型等等。当传感器输出预测模型232包括递归神经网络时,这可以是多层长短期记忆(lstm)神经网络、多层门控递归单元(gru)神经网络或者其他形式的递归神经网络。

传感器输出预测模型232可被配置为接收如对于图4所述的来自多个传感器的传感器数据204。传感器输出预测模型232可被训练来识别来自多个传感器的传感器数据206-210之间的相关性。传感器输出预测模型232可响应于接收到来自多个传感器的传感器数据206-210而输出包括一个或多个预测的未来传感器输出值236-240的传感器输出预测向量234。在一些示例中,传感器输出预测向量234提供两个或更多个预测的未来传感器输出236-240。在一些示例中,传感器输出预测向量234包括针对m个不同的传感器的一个或多个预测的传感器输出值,从而使得每个传感器输出预测向量234具有m个维度,每个维度对应于针对m个不同的传感器之一的预测的未来传感器输出值。

在一些示例中,m维传感器输出预测向量234具有与n维传感器数据向量204相同的维度数(例如,m=n)。在这种情况下,可以为被采样并且其传感器数据被作为输入提供到虚拟传感器模型230的每个传感器确定预测的传感器输出值。在一些示例中,传感器数据向量204的维度数(n)可小于传感器输出预测向量234的维度数(m)(例如,n<m)。如果来自一个或多个传感器的采样的传感器数据被用于完善这些值,并且用于为不同的未采样的传感器预测值,则可能是这样的情况。在一些示例中,传感器数据向量204的维度数(n)可大于传感器输出预测向量234的维度数(m)(例如,n>m)。如果来自多个传感器的采样的传感器数据206-210被用于仅为如下的(一个或多个)采样的传感器的子集预测值:该(一个或多个)采样的传感器的子集对于特定应用特别重要或者特定应用具有访问该(一个或多个)采样的传感器的子集的许可,则可能是这样的情况。

按照公开的技术生成的预测的传感器输出236-240可描述在一个或多个未来时间针对多个传感器中的一个或多个的一个或多个预测的未来传感器输出。例如,传感器输出预测向量234可以是对每个传感器(例如,传感器1、传感器2、…、传感器m)在接下来的时步(或例如接下来的三个时步)中可能会有什么读数的预测。在一些示例中,可向传感器输出预测模型232提供额外的时间输入以指定要为其生成预测的未来传感器输出236-240的一个或多个特定的未来时间。在一些示例中,传感器输出预测模型232也可为预测的未来传感器输出中的每一个输出学习的置信度量。例如,针对每个预测的未来传感器输出236-240的置信度量可被表示为指示确定预测的未来传感器输出的可能准确度的范围(例如,0.0-1.0或0-100%)内的置信度量值。传感器输出预测模型的时间性的更具体方面在图6中描绘。

现在参考图6,描绘了根据本公开的示例实施例的第三示例虚拟传感器模型250。在图6的特定实现方式中,虚拟传感器模型250包括传感器输出预测模型252。

在一些实现方式中,传感器输出预测模型252可以是允许在时间上引用传感器数据的时间模型。在这种实现方式中,作为输入提供到传感器输出预测模型252的传感器数据可以是t个输入254-258的序列,每个输入对应于在不同的时步获得的传感器数据向量(例如,类似于传感器数据向量204)。例如,可迭代地获得来自多个传感器的传感器数据向量254-258的时步序列。考虑在t个不同的采样时间(例如,t1,t2,…,tt)迭代地获得的从n个不同的传感器获得的传感器数据。在一些示例中,t个不同的采样时间(例如,t1,t2,…,tt)之间的时间差可以相同或者其可以不同。在这种示例中,对于t个不同时间中的每一个获得为n个不同的传感器中的每一个提供传感器读数的n维传感器数据向量。例如,第一传感器数据向量254可对应于在时间t1从n个不同的传感器中的每一个采样的数据。第二传感器数据向量256可对应于在时间t2从n个不同的传感器中的每一个采样的数据。在t个时步采样的序列中可提供额外数目的传感器数据向量,直到提供与在时间tt从n个不同的传感器中的每一个采样的数据相对应的最末传感器数据向量258为止。传感器数据向量254-258中的每一个可随着其被迭代地获得而被迭代地作为输入提供到虚拟传感器模型250。

在一些实现方式中,传感器输出预测模型252接收未来时间信息260,该未来时间信息260描述期望为其预测的传感器输出的至少一个未来时间tt+f。在一些示例中,未来时间信息260包括多个未来时间(例如,tt+1,tt+2,…,tt+f)。例如,未来时间信息260可以是提供期望被传感器输出预测模型252预测的时间长度(例如,10ms、20ms、30ms等等)的列表的时间向量。响应于接收到未来时间信息260和传感器数据向量254-258中的一个或多个,虚拟传感器模型250的传感器输出预测模型252可以为在未来时间信息260中识别的未来时间中的每一个输出传感器输出预测向量264。每个传感器输出预测向量264可对应于针对m个不同的传感器的预测的传感器输出266-270。虽然在图6中只描绘了单个传感器输出预测向量264,但传感器输出预测模型252可同时(例如,当未来时间信息260识别多个不同的未来时间时)和/或迭代地(例如,每次迭代地提供一个新的传感器数据向量254-258作为输入时,可从传感器输出预测模型252输出新的传感器输出预测向量264)输出多个传感器输出预测向量。

在一些实现方式中,传感器输出预测模型252接收内插时间信息262,该内插时间信息262描述期望为其预测的传感器输出的至少一个内插时间。当期望增大其数据被按照公开的技术完善和/或预测的传感器的采样率时,可识别内插时间。一般地,可部分通过在第一时间和第二时间(例如,t和t+2)从多个传感器接收传感器数据读数来确定在内插时间的预测的传感器输出。学习到的多个传感器之间的相关性可被虚拟传感器模型整体地利用来为第一时间(t)和第二时间(t+2)之间的中间时间(例如,t+1)内插传感器输出值。在一些示例中,内插时间信息262包括多个时间(例如,t+1,t+3,t+5,等等)。例如,内插时间信息262可以是提供期望被传感器输出预测模型252预测的时间长度的列表的时间向量。例如,如果传感器数据向量254-258提供在均匀间隔10ms的时间采样的传感器数据,则内插时间信息262可提供采样的时间之间的时间长度的列表(例如,采样的传感器数据时间之间的每5ms)。响应于接收到内插时间信息262和传感器数据向量254-258中的一个或多个,虚拟传感器模型250的传感器输出预测模型252可以为在内插时间信息262中识别的内插时间中的每一个输出传感器输出预测向量264。每个传感器输出预测向量264可对应于针对m个不同的传感器的预测的传感器输出266-270。虽然在图6中只描绘了单个传感器输出预测向量264,但传感器输出预测模型252可同时(例如,当内插时间信息262识别多个不同的内插时间时)和/或迭代地(例如,每次迭代地提供新的传感器数据向量254-258作为输入时,可从传感器输出预测模型252输出内插时间的新的传感器输出预测向量264)输出多个传感器输出预测向量。

虽然图6将未来时间信息260和内插时间信息262示为到传感器输出预测模型252的分离的输入,但应当明白单个时间向量或提供定时信息的其他信号可作为输入被提供到传感器输出预测模型252,如图7中所描绘。这种单个时间向量可包括描述一个或多个未来时间和一个或多个内插时间的信息。以相同的方式,虚拟传感器模型250的传感器输出预测模型252可被配置为为一个或多个识别的未来时间和/或内插时间中的每一个输出多个传感器输出向量264。

在一些实现方式中,虚拟传感器模型250的传感器输出预测模型252提供预测的传感器输出向量264可为多个传感器(例如,传感器1、传感器2、…、传感器m)提供同步的传感器输出值。同步的传感器输出值可由虚拟传感器模型250通过从多个传感器(例如,传感器1、传感器2、…、传感器n)接收传感器数据254-258来输出,其中来自多个传感器中的至少一些(例如,第一组传感器)的传感器数据是比其他的(例如,第二组传感器)更新近检测到的。虚拟传感器输出可利用学习到的多个传感器之间的相关性和其他关系来同时或在同步的时间为所有传感器(包括第一组传感器和第二组传感器)预测/完善更新的传感器输出。

现在参考图7,描绘了根据本公开的示例实施例的第四示例虚拟传感器模型280。在图7的特定实现方式中,虚拟传感器模型280包括被配置为提供多个输出的机器学习模型282。在一些实现方式中,机器学习模型282可以是或者可以其他方式包括一个或多个神经网络(例如,深度递归神经网络)或其他多层非线性模型、基于回归的模型等等。当机器学习模型282包括递归神经网络时,这可以是多层长短期记忆(lstm)神经网络、多层门控递归单元(gru)神经网络或者其他形式的递归神经网络。虚拟传感器模型280的机器学习模型282的至少一个第一输出包括传感器输出完善向量292中的一个或多个完善的传感器输出值。虚拟传感器模型280的至少一个第二输出包括传感器输出预测向量294中的一个或多个预测的传感器输出值。虚拟传感器模型280的机器学习模型282可被训练来基于传感器数据的相同训练集合同时确定传感器完善和传感器预测两者。

虚拟传感器模型280可被配置为从多个传感器接收传感器数据。在一些实现方式中,虚拟传感器模型280可被配置为在多个时间(例如,t个不同时间的时步序列)接收传感器数据。在一些实现方式中,作为输入提供到虚拟传感器模型280的传感器数据可以是t个输入284-288的序列,每个输入对应于在不同的时步获得的传感器数据向量(例如,类似于传感器数据向量204)。例如,可迭代地获得来自多个传感器的传感器数据向量284-288的时步序列。考虑在t个不同的采样时间(例如,t1,t2,…,tt)迭代地获得的从n个不同的传感器获得的传感器数据。在一些示例中,t个不同的采样时间(例如,t1,t2,…,tt)之间的时间差可以相同或者其可以不同。在这种示例中,对于t个不同时间中的每一个获得为n个不同的传感器中的每一个提供传感器读数的n维传感器数据向量。例如,第一传感器数据向量284可对应于在时间t1从n个不同的传感器中的每一个采样的数据。第二传感器数据向量286可对应于在时间t2从n个不同的传感器中的每一个采样的数据。在t个时步采样的序列中可提供额外数目的传感器数据向量,直到提供与在时间tt从n个不同的传感器中的每一个采样的数据相对应的最末传感器数据向量288为止。传感器数据向量284-288中的每一个可随着其被迭代地获得而被迭代地作为输入提供到虚拟传感器模型280。

虚拟传感器模型280可被训练来识别每个传感器数据向量284-288中的来自多个传感器的传感器数据之间的相关性。虚拟传感器模型282可响应于接收到一个或多个传感器数据向量284-288而输出包括一个或多个完善的传感器输出值的一个或多个传感器输出完善向量292和包括一个或多个预测的传感器输出值的一个或多个传感器输出预测向量294。在一些示例中,传感器输出完善向量292和传感器输出预测向量294中的一些或全部分别提供两个或更多个完善的/预测的传感器输出。在一些示例中,传感器输出完善向量292和传感器输出预测向量294中的一些或全部为m个不同的传感器提供完善的/预测的传感器输出,从而使得传感器输出完善向量292和/或传感器输出预测向量具有m个维度,每个维度对应于针对m个不同的传感器之一的完善的/预测的传感器输出值。

在一些示例中,m维传感器输出完善向量292和m维传感器输出预测向量294中的一些或全部具有与n维传感器数据向量284-288相同的维度数(例如,m=n)。在这种情况下,可以为被采样并且其传感器数据被作为输入提供到虚拟传感器模型280的每个传感器确定完善的/预测的传感器输出值。在一些示例中,传感器数据向量284-288的维度数(n)可小于传感器输出完善向量292和/或传感器输出预测向量294的维度数(m)(例如,n<m)。如果来自一个或多个传感器的采样的传感器数据被用于完善/预测这些值,并且用于为不同的未采样的传感器预测值,则可能是这样的情况。在一些示例中,每个传感器数据向量284-288的维度数(n)可大于传感器输出完善向量292和/或传感器输出预测向量294的维度数(m)(例如,n>m)。如果传感器数据向量284-288中的采样的传感器数据被用于仅为如下的(一个或多个)采样的传感器的子集完善/预测值:该(一个或多个)采样的传感器的子集对于特定应用特别重要或者特定应用拥有访问该(一个或多个)采样的传感器的子集的许可,则可能是这样的情况。

在一些实现方式中,虚拟传感器模型280接收时间信息290,该时间信息290描述期望为其预测的传感器输出的一个或多个未来时间tt+f和/或一个或多个内插时间tt+i。在一些示例中,时间信息290包括多个未来时间和/或内插时间。例如,时间信息290可以是提供期望被虚拟传感器模型280预测的时间长度(例如,-25ms、-15ms、-5ms、5ms、15ms、25ms等等)的列表的时间向量。响应于接收到时间信息290和传感器数据向量284-288中的一个或多个,虚拟传感器模型280的机器学习模型282可以为一个或多个时间输出传感器输出完善向量292并且为一个或多个时间输出传感器输出预测向量294。虽然在图7中仅描绘了单个传感器输出完善向量292,但虚拟传感器模型280可输出多个传感器输出完善向量(例如,随着每个新的传感器数据向量284-288被迭代地作为输入提供到虚拟传感器模型280而迭代地输出)。虽然在图7中仅描绘了单个传感器输出预测向量294,但虚拟传感器模型280可输出多个传感器输出预测向量(例如,当时间信息290识别多个不同的未来时间和/或内插时间时同时输出和/或随着每个新的传感器数据向量284-288被迭代地作为输入提供到虚拟传感器模型280而迭代地输出)。

示例方法

图8描绘了根据本公开的示例实施例的执行机器学习的示例方法300的流程图。

在302,一个或多个计算设备可获得描述机器学习虚拟传感器模型的数据。虚拟传感器模型可能已被训练来接收来自多个传感器的数据,学习来自多个传感器的传感器数据之间的相关性,并且生成一个或多个输出。在一些示例中,虚拟传感器模型包括被配置为生成一个或多个预测的传感器输出值的传感器输出预测模型。在一些示例中,虚拟传感器模型包括被配置为生成一个或多个完善的传感器输出值的传感器输出完善模型。在一些示例中,虚拟传感器模型包括可被配置为生成一个或多个完善的传感器输出值和一个或多个预测的传感器输出值的联合模型。虚拟传感器模型可以是或者可以其他方式包括各种机器学习模型,诸如神经网络(例如,深度递归神经网络)或者其他多层非线性模型、基于回归的模型等等。当虚拟传感器模型包括递归神经网络时,这可以是多层长短期记忆(lstm)神经网络、多层门控递归单元(gru)神经网络或者其他形式的递归神经网络。在302为其获得数据的虚拟传感器模型可包括图4-图7的虚拟传感器模型200、230、250、280中的任何一个或者其变体。

在304,一个或多个计算设备可从多个传感器获得传感器数据。传感器数据可描述每个传感器的物理环境中的一个或多个测量到的参数。在304从其获得传感器数据的传感器可包括——但不限于——运动传感器、加速度计、陀螺仪、方向传感器、磁场传感器、音频传感器(例如,麦克风)、图像传感器(例如,相机)、线性加速度传感器、重力传感器、旋转向量传感器、磁力仪、位置传感器(例如,gps)、惯性运动单元、里程计、气压计、温度计、湿度计、触摸敏感传感器、指纹传感器、接近传感器、这种传感器和其他传感器的任何组合等等。在一些实现方式中,在304可从多个(n个)不同的传感器获得传感器数据。在这种情况下,传感器数据可采取传感器数据向量的形式,其中传感器数据向量中的每一个具有n个维度,每个维度对应于n个不同的传感器之一的传感器数据。

在306,一个或多个计算设备可将在304获得的传感器数据输入到虚拟传感器模型的机器学习系统中。在一些实现方式中,诸如当虚拟传感器模型被配置为生成至少一个预测的传感器输出值时,一个或多个计算设备可以可选地在308将识别至少一个未来时间和/或至少一个内插时间的时间信息输入到虚拟传感器模型中。在一些实现方式中,在308作为输入提供的时间信息可采取描述一个或多个未来时间和/或一个或多个内插时间的时间向量的形式。一个或多个未来时间和/或一个或多个内插可被定义为相对于当前时间和/或在304多个传感器被采样以获得传感器数据的时间的时间长度。

在308,一个或多个计算设备可接收一个或多个虚拟传感器输出向量作为虚拟传感器模型的输出。在一些示例中,虚拟传感器输出向量可包括传感器输出预测向量。在一些示例中,虚拟传感器输出向量可包括传感器输出完善向量。在一些示例中,虚拟传感器输出向量可包括一个或多个完善的传感器输出值和一个或多个预测的传感器输出值的组合。在一些示例中,一个或多个虚拟传感器输出向量包括至少一个传感器输出完善向量和至少一个传感器输出预测向量。在一些实现方式中,虚拟传感器输出向量中的一些或全部包括针对m个不同的传感器的传感器输出值,从而使得虚拟传感器输出向量中的每一个具有m个维度,每个维度对应于针对m个不同的传感器之一的完善的/预测的传感器输出值。当时间信息在308被作为输入提供到虚拟传感器模型时,在310接收的一个或多个虚拟传感器输出向量可包括对于一个或多个时间的一个或多个预测的未来传感器输出值和/或内插的传感器输出值。

在312,一个或多个计算设备可执行与由虚拟传感器输出向量描述的一个或多个虚拟传感器输出相关联的一个或多个动作。在一个示例中,在304从其获得传感器数据的多个传感器包括与虚拟现实应用相关联的一个或多个运动传感器。在这种情况下,在312执行一个或多个动作可包括将虚拟传感器模型的输出提供到虚拟现实应用。在另一示例中,在304从其获得传感器数据的多个传感器包括位于载具中的一个或多个载具传感器。在这种情况下,在312执行一个或多个动作可包括将虚拟传感器模型的输出提供到载具控制系统。在再一示例中,在304从其获得传感器数据的多个传感器可包括移动计算设备中的一个或多个运动传感器。在这种情况下,在312执行一个或多个动作可包括激活移动计算设备的组件。在再一示例中,在312执行一个或多个动作可包括将虚拟传感器输出向量中的一个或多个完善的/预测的传感器输出经由应用编程接口(api)提供给应用。

图9描绘了根据本公开的示例实施例的执行机器学习的示例方法400的第一附加方面的流程图。更具体而言,图9描述了根据本公开的示例实施例的向虚拟传感器模型提供输入并且从其接收输出的时间方面。在402,一个或多个计算设备可迭代地获得针对n个不同的传感器的t个传感器数据向量的时步序列,从而使得t个传感器数据向量中的每一个具有n个维度,每个维度对应于针对n个不同的传感器之一的传感器数据。在402获得的每个传感器数据向量可随着其被迭代地获得而被一个或多个计算设备在404迭代地输入到虚拟传感器模型中。在406,一个或多个计算设备可迭代地接收作为虚拟传感器模型的输出的多个传感器输出预测向量和/或传感器输出完善向量。在一些实现方式中,在406从虚拟传感器模型接收的每个传感器输出预测向量和/或传感器输出完善向量包括在一个或多个时间针对m个不同的传感器预测的/完善的数据,从而使得传感器输出预测向量和/或传感器输出完善向量中的每个具有m个维度,每个维度对应于为m个不同的传感器之一预测的/完善的传感器输出值。

图10描绘了根据本公开的示例实施例的执行机器学习的示例方法500的第二附加方面的流程图。更具体而言,图10描述了使用api来将虚拟传感器模型的输出提供给一个或多个软件应用。在502,一个或多个计算设备可确定应用对其具有访问许可的一个或多个传感器的授权集合。在504,一个或多个计算设备可经由应用编程接口(api)请求来自虚拟传感器模型的完善的传感器输出值和/或预测的传感器输出值。在506,一个或多个计算设备可响应于经由api的请求为一个或多个传感器的授权集合从虚拟传感器模型接收完善的传感器输出值和/或预测的传感器输出值。在508,一个或多个计算设备可执行与由传感器输出向量描述的一个或多个传感器输出值相关联的一个或多个动作。例如,如果经由api请求传感器输出值的应用是移动计算设备应用,则在508执行的一个或多个动作可包括与移动计算设备的组件交互,激活移动计算设备的组件,向与移动计算设备相关联的显示设备提供输出等等。在其他示例中,经由api请求传感器输出值的应用可以是虚拟现实应用,在此情况下在508执行的一个或多个动作可包括向输出设备(例如,显示设备、触觉反馈设备等等)提供输出。

图11描绘了根据本公开的示例实施例的用于机器学习虚拟传感器模型的第一示例训练方法600的流程图。更具体而言,图11的第一示例训练方法可用于训练被配置为提供完善的传感器输出值和预测的未来传感器输出值两者的虚拟传感器模型的传感器输出预测部分和/或传感器输出预测模型。

在602,(例如,训练计算系统内的)一个或多个计算设备可获得包括针对多个传感器的许多组地面实况传感器数据的训练数据集。例如,训练数据集可包括描述针对多个传感器的大量先前观察到的传感器输出的传感器数据。在604,一个或多个计算设备可将地面实况传感器数据的训练数据集的第一部分输入到虚拟传感器模型中。在606,一个或多个计算设备可响应于对地面实况传感器数据的第一部分的接收而接收作为虚拟传感器模型的输出的预测训练数据集的剩余部分(例如,地面实况传感器数据的第二部分)的虚拟传感器输出向量。

在608,训练计算系统内的或其他地方的一个或多个计算系统可应用或以其他方式确定损失函数,该损失函数将由虚拟传感器模型在606生成的虚拟传感器输出向量与虚拟传感器模型尝试预测的地面实况传感器数据的第二部分(例如,剩余部分)相比较。一个或多个计算设备随后可在610将损失函数反向传播通过虚拟传感器模型来训练虚拟传感器模型(例如,通过修改虚拟传感器模型的至少一个权重)。例如,计算设备可执行经过时间的截短反向传播来将在608确定的损失函数反向传播通过虚拟传感器模型。在610可以可选地执行许多种一般化技术(例如,权重衰减、退出等等)来改善被训练的模型的一般化能力。在一些示例中,在602-610中描述的训练过程可被重复若干次(例如,直到目标损失函数不再改善为止)以训练模型。在模型已在610被训练之后,其可被提供到用户计算设备并被存储在用户计算设备处,以便用于在用户计算设备处提供完善的和/或预测的传感器输出。

图12描绘了根据本公开的示例实施例的用于机器学习模型的第二训练方法700的流程图。更具体而言,图12的第二示例训练方法可用于训练被配置为提供完善的传感器输出值和预测的未来传感器输出值两者的虚拟传感器模型的传感器输出完善部分和/或传感器输出完善模型。这样,取决于虚拟传感器模型的配置,图12的训练方法可以是图11中描绘的训练方法的附加或替代训练方法。

在702,(例如,训练计算系统内的)一个或多个计算设备可获得包括针对多个传感器的许多组地面实况传感器数据的训练数据集。例如,训练数据集可包括描述针对多个传感器的大量先前观察到的传感器输出的传感器数据。在704,可向地面实况传感器数据的第一部分添加噪声。在一些实现方式中,在704可通过向地面实况传感器数据的第一部分添加生成的随机噪声信号来添加噪声。在706,一个或多个计算设备可将所得到的传感器数据的有噪声的第一部分输入到虚拟传感器模型中。在708,一个或多个计算设备可响应于对地面实况传感器数据的有噪声的第一部分的接收而接收作为虚拟传感器模型的输出的预测训练数据集的剩余部分(例如,地面实况传感器数据的第二部分)的虚拟传感器输出向量。

在710,训练计算系统内的或其他地方的一个或多个计算系统可应用或以其他方式确定损失函数,该损失函数将由虚拟传感器模型在708生成的虚拟传感器输出向量与虚拟传感器模型尝试预测的地面实况传感器数据的第二部分(例如,剩余部分)相比较。一个或多个计算设备随后可在712将损失函数反向传播通过虚拟传感器模型来训练虚拟传感器模型(例如,通过修改虚拟传感器模型的至少一个权重)。例如,计算设备可执行经过时间的截短反向传播来将在710确定的损失函数反向传播通过虚拟传感器模型。在712可以可选地执行许多种一般化技术(例如,权重衰减、退出等等)来改善被训练的模型的一般化能力。在一些示例中,在702-712中描述的训练过程可被重复若干次(例如,直到目标损失函数不再改善为止)以训练模型。在模型已在712被训练之后,其可被提供到用户计算设备并被存储在用户计算设备处,以便用于在用户计算设备处提供完善的和/或预测的传感器输出。

附加公开

本文讨论的技术参考了服务器、数据库、软件应用和其他基于计算机的系统,以及由这种系统采取的动作和发送到和来自这种系统的信息。基于计算机的系统的内在灵活性允许了在组件之间和当中对于任务和功能的各种各样可能的配置、组合和划分。例如,本文讨论的过程可利用单个设备或组件或者组合工作的多个设备或组件来实现。数据库和应用可实现在单个系统上或跨多个系统分布。分布式组件可顺序地或并行地操作。

虽然已针对其各种具体示例实施例详细描述了本主题,但每个示例是作为说明而不是对本公开的限制提供的。本领域技术人员在达到对前述的理解后,能够可靠地产生对这种实施例的更改、变化和等同。从而,本公开不排除包括对本领域普通技术人员将显而易见的对本主题的这种修改、变化和/或添加。例如,作为一个实施例的一部分图示或描述的特征可与另一实施例一起使用来产生再一实施例。从而,旨在本公开覆盖这种更改、变化和等同。

具体地,虽然图8至图12为了图示和论述而分别描绘了按特定次序执行的步骤,但本公开的方法不限于特定图示的次序或排列。方法300、400、500、600和700的各种步骤可按各种方式被省略、重排列、组合和/或适应性修改,而不脱离本公开的范围。

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