人工增强基于云的机器人智能框架及相关方法
相关申请的交叉引用
本申请要求于2018年12月4日提交的美国临时专利申请No.62/774,916的优先权,其全部公开内容通过引用合并于此。
背景技术
机器人—特别是被设计为与周围环境交互的机器人—通常利用多个传感器来检测机器人会与之交互的各种障碍物和物品。这样的系统通常利用机载处理和存储,来保留移动协议并做出关于适当功能和移动特性的决定。
发明内容
本公开总体上涉及机器人技术,且更具体地涉及一种用于生成和检索协议以用于控制机器人的方法和通信网络,以及用于对所述机器人实施和执行命令的各种方法。
在此构思了一种人工增强机器人智能操作系统,该系统可以包括:多个机器人,每个机器人具有:多个传感器,被配置为检测一个或更多个环境参数和用户命令;机器人控制单元,每个机器人控制单元具有关联的通信模块和处理器,每个关联的机器人控制模块被配置为接收和发送由所述多个传感器收集的数据;以及一个或更多个关节接头(articulating joint),能够以执行所述用户命令的方式操纵所述机器人。
人工增强机器人智能操作系统还可以包括基于云的机器人智能引擎,具有:通信模块;历史数据库,包含多个历史动作和相关联的环境参数;以及处理器。
人工增强机器人智能操作系统还可以包括人工增强平台,其可以包括:通信模块,被配置为从基于云的机器人智能引擎接收数据;以及人工服务操作员中心,具有一个或更多个人类用户操作员。
在一些这样的实施方式中,通信模块可以被配置成从来自多个机器人中每个机器人的多个机器人控制单元接收数据。
此外,在一些实施方式中,处理器可以被配置为识别用户命令,并确定所述机器人在确定环境内遵循特定用户命令所需的多个可执行命令,其中,所述确定环境具有特定的一组检测环境参数。
在一些这样的实施方式中,处理器可以被配置为:通过比较具有已在在所述历史数据库中包含的相似环境参数下执行的相似可执行命令序列的确定提议路径,关于在给定特定用户命令下基于特定的一个或更多个检测环境参数成功完成所述特定用户命令的可能性,进行概率性确定。
在一些这样的实施方式中,当所述概率性确定的结果在预定阈值以上时,所述处理器被配置为将一个或更多个所需的可执行命令传送给所述机器人控制单元,其中,所述机器人控制单元然后使所述机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令;
在一些这样的实施方式中,当所述概率性确定的结果低于所述预定阈值时,所述处理器生成警报并标记所述操作以用于人工检查。
在一些这样的实施方式中,机器人控制单元可以被配置为确定关于所述用户命令的满意度的结果,并跟踪用于获得相关联的结果的一个或更多个可执行命令。
在一些这样的实施方式中,结果和相关联的可执行命令以及相关联的环境参数可以被发送到基于云的机器人智能引擎,以包括在历史数据库中,用于日后访问。
在一些这样的实施方式中,当所述概率性确定的结果低于所述预定阈值时,所述处理器被配置为发起与所述人工增强平台的连接,使得人类用户操作员然后能够检查所述用户命令并手动生成所述一个或更多个所需的可执行命令以完成命令,并将所述一个或更多个所需的可执行命令发送到所述机器人控制单元,其中,所述机器人控制单元然后使所述机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令;
在一些这样的实施方式中,每个机器人控制单元通过使用强制入口站点的基于访客的网络连接到所述基于云的机器人智能引擎。
在一些这样的实施方式中,所述基于云的机器人智能引擎的处理器被配置为生成反映从特定机器人的机器人控制单元接收的检测环境参数的虚拟现实环境设置。
在一些这样的实施方式中,所述基于云的机器人智能引擎的处理器被配置为生成并运行多个可执行命令的模拟,其中,所述多个可执行命令为所述机器人在反映从特定机器人的机器人控制单元接收的检测环境参数的所述虚拟现实环境设置内、遵循所述特定用户命令所需的。
在一些这样的实施方式中,提示所述人类用户以提供关于所述机器人在所述反映从特定机器人的机器人控制单元接收的检测的环境参数虚拟现实环境设置内、遵循特定用户命令所需的多个可执行命令的输入,以及在所述虚拟现实环境设置内部署所述多个可执行命令。
在一些这样的实施方式中,在所述虚拟环境中成功完成所述特定用户命令之后,其中,所述处理器然后被配置为将所述多个可执行命令发送到所述特定机器人控制单元,并且其中,所述多个可执行命令然后由与所述特定机器人相关联的机器人控制执行。
在一些这样的实施方式中,每个机器人控制单元可以设有用户输入界面,该用户输入界面被配置为接收关于用户命令的直接用户输入并接收关于所述命令的满意度的输入。
在一些这样的实施方式中,人工增强机器人智能操作系统还可以包括开发者入口站点,其中,所述开发者入口站点被配置为接收包含用于所述一个或更多个关节接头的一个或更多个可执行命令的数据包,所述一个或更多个关节接头被配置成使特定机器人执行预定子任务,其中多个数据包和子任务保留在所述历史数据库中,且其中所述处理器被配置为确定多个适当的数据包且将所述数据包链接在一起以执行用户命令。
在一些这样的实施方式中,基于云的机器人智能引擎的处理器被配置成访问多个外部数据库并提取用于所述一个或更多个关节接头的一个或更多个可执行命令,所述一个或更多个关节接头被配置为使特定机器人执行来自至少一个外部数据库的预定子任务。
在一些这样的实施方式中,人工增强机器人智能操作系统还可以包括用于从所述一个或更多个环境传感器接收数据的流分析平台,所述流分析平台被配置成分析原始接收的数据并将过滤的干净数据集保存在与所述机器人的周围环境有关的所述历史数据库中。
在一些这样的实施方式中,所述基于云的机器人智能引擎的处理器被配置为利用深度学习神经网络来识别一个或更多个相似的过去环境场景且识别导致成功执行用户命令的一个或更多个历史动作,以及随后生成在确定的实时环境中具有提高的成功概率可能性的一组可执行命令。
在此还构思了一种为多个机器人提供复杂机器人控制的方法,所述方法包括:提供多个机器人,每个机器人具有:多个传感器;以及一个或更多个关节接头,能够以执行用户命令的方式操纵机器人;该方法还包括为每个机器人提供机器人控制单元,每个机器人控制单元具有相关联的通信模块和处理器;提供基于云的机器人智能引擎,所述基于云的机器人具有:通信模块,被配置为从来自多个机器人中的每个机器人的多个机器人控制单元接收数据;历史数据库,包含多个历史动作和相关联的环境参数;以及处理器;
为多个机器人提供复杂机器人控制的方法还可以包括以下步骤:提供人工增强平台,所述人工增强平台包括:通信模块,被配置成从基于云的机器人智能引擎接收数据;人工服务操作员中心,具有一个或更多个人类用户操作员;
为多个机器人提供复杂机器人控制的方法还可以包括以下步骤:接收利用设置在至少一个机器人上的所述多个传感器的多个环境参数;在机器人处接收用户命令;将所述用户命令和所述多个环境参数发送至所述基于云的机器人智能引擎;利用所述基于云的机器人智能引擎的处理器确定所述机器人在机器人周围的即时环境内遵循所述用户命令所需的多个可执行命令;利用所述基于云的机器人智能引擎的处理器,通过比较具有已在在所述历史数据库中包含的相似环境参数下执行的相似可执行命令序列的确定提议路径,关于在给定特定用户命令下基于特定的一个或更多个所检测环境参数成功完成所述特定用户命令的可能性,生成概率性确定的结果。
为多个机器人提供复杂机器人控制的方法还可以包括以下步骤:当所述概率性确定的结果在预定阈值以上时,利用所述处理器将一个或更多个所需的可执行命令传送给所述机器人控制单元,其中,所述机器人控制单元然后使所述机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令;当所述概率性确定的结果低于所述预定阈值时,利用所述处理器生成警报并标记所述操作以用于人工检查;确定关于用户命令的满意度的结果,并跟踪用于获得相关联的结果的一个或更多个可执行命令;以及将所述相关联的结果和相关联的可执行命令以及相关联的环境参数发送到所述基于云的机器人智能引擎,以包括在所述历史数据库中,用于日后访问。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:利用所述处理器发起与所述人工增强平台的连接,使得所述人类用户操作员然后能够检查所述用户命令并手动生成所述一个或更多个所需的可执行命令以完成命令,并将所述一个或更多个所需的可执行命令发送至所述机器人控制单元,其中在所述概率性确定的结果低于所述预定阈值时,所述机器人控制单元然后使所述机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:利用基于云的机器人智能引擎的处理器,生成反映从特定机器人的机器人控制单元接收的检测环境参数的虚拟现实环境设置。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:利用基于云的机器人智能引擎的处理器生成并运行生成并运行多个可执行命令的模拟,所述多个可执行命令为所述机器人在反映从特定机器人的机器人控制单元接收的检测环境参数的所述虚拟现实环境设置内、遵循所述特定用户命令所需的。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:提示所述人类用户提供关于所述机器人在所述反映从特定机器人的机器人控制单元接收的检测的环境参数虚拟现实环境设置内、遵循特定用户命令所需的多个可执行命令的输入,以及在所述虚拟现实环境设置内部署所述多个可执行命令。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:在所述虚拟环境中成功完成所述特定用户命令之后,将多个可执行命令发送到所述特定机器人控制单元,并且其中,所述多个可执行命令然后由与特定机器人相关联的机器人控制执行。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:为每个机器人控制单元提供用户输入界面,该用户输入界面被配置为接收关于用户命令的直接用户输入并接收关于所述命令的满意度的输入。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:提供开发者入口站点;利用所述开发者入口站点接收包含用于所述一个或更多个关节接头的一个或更多个可执行命令的数据包,所述一个或更多个关节接头被配置成使特定机器人执行预定子任务;将多个数据包和子任务保留在所述历史数据库中;利用所述处理器确定多个适当的数据包;以及将所述数据包链接在一起以执行用户命令。
为多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:利用所述基于云的机器人智能引擎的处理器访问多个外部数据库并提取一个或更多个可执行命令;其中所述一个或更多个可执行命令包含用于所述一个或更多个关节接头的信息,所述一个或更多个关节接头被配置为使特定机器人执行来自至少一个外部数据库的预定子任务。
对多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:提供流分析平台;利用所述流分析平台从所述一个或更多个环境传感器接收数据,所述流分析平台被配置成分析原始接收的数据并将过滤的干净数据集保存在与所述机器人的周围环境有关的所述历史数据库中。
对多个机器人提供复杂机器人控制的方法在一些实施方式中还可以包括步骤:利用深度学习神经网络来识别一个或更多个相似的过去环境场景且识别导致成功执行用户命令的一个或更多个历史动作;以及生成在确定的实时环境中具有提高的成功概率可能性的一组可执行命令。
应理解,以上一般性描述和以下详细描述仅是示例性和说明性的,且不用于限制本公开。在考虑以下描述和附图后,本公开的其他方面和实施方式对本领域技术人员来说是明显的。
附图说明
为了更清楚地示出一些实施方式,以下是对附图的简要描述。
以下描述中的附图仅用于解释一些实施方式。对于本领域技术人员而言,基于这些附图,其他实施方式的其他附图可以变得明显。
图1示出了根据本发明各个方面的人工增强机器人智能操作系统的示例性示意图或框架;
图2示出了根据本发明的各种其他方面的人工增强机器人智能操作系统的另一示例性示意图或框架;
图3示出了根据本发明的各种其他方面的人工增强机器人智能操作系统的又一示例性示意图或框架;
图4示出了根据本发明各种其他方面的通过人工增强机器人智能操作系统的各种潜在数据流的另一示例性示意图或框架;
图5示出了根据本发明的各种其他方面的通过人工增强机器人智能操作系统的各种潜在数据流的另一示例性示意图或框架;
图6示出了使用人工增强机器人智能操作系统时可采用的示例性机器人,其示出了本发明的各种概念;
图7示出了使用人工增强机器人智能操作系统的方法的示例性方法流程图,其示出了本发明的各种概念;
图8示出了在使用图7的人工增强机器人智能操作系统的方法中可采用的各种其他方法步骤的示例性方法流程图,其示出了本发明的各种概念;
图9示出了在使用图7的人工增强机器人智能操作系统的方法中可采用的各种其他方法步骤的另一示例性方法流程图,其示出了本发明的各种概念;
图10示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以结合在其中的附加可选特征;
图11示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以结合在其中的附加可选特征和操作层;
图12示出了机器人操作客户端的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中;
图13示出了连接服务器的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中;
图14示出了实时开发控制应用的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中;
图15示出了命令控制单元或模块的示例性组织框架,该命令控制单元或模块可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中,以便管理发给通过其控制的任何一个机器人的命令;
图16示出了容器编排系统中心服务集群或模块的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的任一实施方式,以便管理通过其控制的任一机器人收集的数据以及发至该任一机器人的命令;
图17示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以结合在其中的附加可选特征;
图18示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以并入其中的其他可选特征;
图19示出了组织框架,该组织框架示出了示例性AI平台与本文所公开的人工增强机器人智能操作系统的所公开实施方式中的任何一个的集成,该图示出了可以并入其中的附加可选特征;
图20示出了组织框架,该组织框架示出了示例性机器人操作客户端与本文所公开的人工增强机器人智能操作系统的所公开实施方式中的任何一个的集成,该图示出了可以并入其中的附加可选特征;
图21示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的世界服务器的一部分的各种潜在选项的组织示意图;
图22示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的人工增强平台的一部分的各种潜在选项的组织示意图;
图23示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的大数据平台的一部分的各种潜在选项的组织示意图;
图24示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的机器人操作脱敏数据元素的一部分的各种潜在选项的组织示意图;
图25示出了可实施为如图11所示具有增强现实脱敏数据的人工增强机器人智能操作系统的一部分的各种潜在选项的组织示意图;
图26示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的微服务总线元件的一部分的各种潜在选项的组织示意图;
图27示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的人工增强机器人智能控制网关的一部分的各种潜在选项的组织示意图;
图28示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的人工增强机器人智能控制开关的一部分的各种潜在选项的组织示意图;以及
图29示出了可实施为如图11所示的示例性人工增强机器人智能操作系统中的真实世界状态分析器的一部分的各种潜在选项的组织示意图。
具体实施方式
以下阐述的实施方式代表使本领域技术人员能够实践实施方式的必要信息,并且示出了实践实施方式的最佳模式。在参考附图阅读以下描述时,本领域技术人员将理解本公开的概念,并且将认识到本文中未特别提到的这些概念的应用。应当理解,这些概念和应用落入本公开和所附权利要求的范围内。
应理解,尽管在此可使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个元素和另一个元素。例如,在不脱离本公开的范围的情况下,第一元件可以被称为第二元件,并且类似地,第二元件可以被称为第一元件。如本文所使用的,术语“和/或”包括一个或更多个相关联的所列项目的任何和所有组合。
应理解,当提到一元件比如层、区域或其他结构在另一元件“上”或在延伸“到”另一元件“上”时,它可以直接在另一元件上或直接延伸到另一元件上,或者还可以存在中间元件。相反,当提到一个元件“直接”在另一个元件“上”或“直接延伸到”另一个元件“上”时,则不存在中间元件。
同样,应理解的是,当提到一元件比如层、区域或衬底在另一元件“上”或在另一元件“上”延伸时,它可以直接在另一元件上或直接在另一元件上延伸,或者也可以存在中间元件。相反,当提到一元件“直接”在另一元件“上”或“直接在另一元件上延伸”时,则不存在中间元件。还应该理解,当提到一元件“连接”或“耦合”到另一个元件时,它可以直接连接或耦合到另一个元件,或者可以存在中间元件。相反,当提到一元件“直接连接”或“直接耦合”至另一元件时,则不存在中间元件。
在此可使用相对术语比如“以下”或“上方”或“上部”或“下部”或“垂直”或“水平”来描述如图中所示的一个元素、层或区域相对于另一元素、层或区域的关系。将理解的是,这些术语以及以上讨论的那些术语旨在涵盖除附图中描绘的取向之外的设备的不同取向。
本文中使用的术语仅用于描述特定实施方式的目的,并且不旨在限制本公开。如本文所使用的,除非上下文另外明确指出,单数形式(a,an)和“该”也意图包括复数形式。将进一步理解的是,当在本文中使用时,术语“包括”指定存在所述特征、整数、步骤、操作、元素和/或组件,但是不排除存在或增加一个或更多个其他特征、整数、步骤、操作、元素、组件和/或其组合。
除非另有定义,否则本文中使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常所理解的相同含义。将进一步理解的是,除非在此明确地定义,否则在此使用的术语应被理解为具有与本说明书的上下文和相关领域中的含义一致的含义,且将不会以理想化或过度正式的意义来解释。
人工智能(artificial intelligence,以下称为AI)正在触及当今的每个行业。近年来,它已嵌入我们生活的许多方面。举几个例子来说,许多公知的应用包括:车辆自动驾驶、高级计算机视觉(面部/对象识别)、智能客户服务、大数据业务分析/营销中的AI。
每个新的应用都代表着新的突破,也暴露了需要克服的新视野和挑战。
为了使AI能够从自己的经验中学习并区分失败尝试和成功尝试,已经实施了深度学习开发和算法,其使AI能够从过去的错误中学习,并能够基于在给定任务下的过去的成功和失败尝试之间识别的模式,更快地做出关于未来任务的成功确定。
此类深度学习技术的进步使发展AI技术和功能对世界来说更容易,并且加速了AI技术在许多行业和应用中的适应性。
AI技术在最近几年取得了突破,例如,深度神经网络(deep neural network,DNN),比如递归神经网络(recurrent neural network,RNN)和卷积深度神经网络(convolutional deep neural network,CNN)。这些高级数学算法和数据模型以类似于人脑的生物神经网络的方式建模,可让强大的计算机通过跟踪关于为实现某些任务而采取的动作的各个方面、各种参数约束和采取的相关动作(其在给定的各种相关联参数下带来成功)来自己学习和训练问题解决技术。
伴随着云计算和云存储的进步,AI在构建工具方面不断取得进步,这些工具可以建模、识别、教导、学习和参与各种类人活动,这些活动需要在要求同时思考和动作的环境中解决问题。
诸如深度学习之类的AI技术需要所谓的深度神经网络训练,该训练通常需要初始的人工训练,其中对数据集进行注释或直接输入,直到有关成功和失败的历史数据库变得足够鲁棒,从而使得能够确定供计算机采取以实现成功结果的可靠的一组动作。
为了搭建成功的神经网络,必须仔细设计和选择正确的算法。此外,初始时通常必须收集大量的正确注释的数据集。
正确搭建后,这些AI功能由于能够识别找到集成到特定应用/场景且被调整的道路,因此被认为是智能的,而该能力通常需要以大量数据和改进型算法来训练系统。
本文构思的是一种人工增强机器人智能架构,该架构可用来在任意数目的潜在场景下部署一个或更多个自由移动的机器人。
已经认识到,特定环境中特定机器人的计算需求可能需要大量的计算能力和大的数据存储能力,以便使AI识别发给特定机器人的命令、评估环境,并基于在类似环境或给定类似障碍物情况下设置的历史上成功执行的任务来确定最佳动作方案。
提出以下系统的人已经认识到,要求每个潜在的机器人拥有这样的机载计算存储和历史数据将会负担过重,这将需要大量的空间和大量的电力来驱动这种计算能力。
另外,如果在本地使用,机器人相互学习会更加困难。或者换句话说,替换性的相同或相似机器人的历史动作可本地存储有信息,该信息与在几乎相同的环境约束或参数下成功完成几乎相同的任务有关。在这种情况下,更加难以在与几乎无限的额外机器人相关联的大量分散的远程数据库中搜索AI,来比较确定的环境参数与其他机器人已经遇到且以其成功执行了任务的参数。
机器人应用的一些示例可以包括自由移动服务机器人,例如导盲机器人、机场服务员机器人、安全巡逻机器人等。这些复杂的应用通常需要多种AI功能,包括自然语言处理(natural language processing,NLP)、计算机视觉(computer vision,CV)、视觉SLAM、比如视觉辅助抓握(vision assisted grasping,V-Grasp)这样的运动控制和其他技能。这些功能需要将硬件和软件与包括云、网络和终端的多个平台进行端对端集成。
还将理解的是,潜在应用的这些示例并非旨在进行限制,而是仅进行讨论以便提供可以在其中说明本文构思的人工增强机器人智能系统的各种特征的各种上下文场景。
然而,应理解特定公司可能发布机器人的特定模型,该特定模型可以在无限数量的各种应用中使用。但是,在任何给定的环境参数集中,关于约束参数都有各种相似性。此外,对于机器人可能需要执行的任何给定数量的无限命令或动作,在完成特定任务所需的特定微动作或子动作中也存在各种相似性。
本文构思的人工增强机器人智能系统通过利用云计算和数据存储解决了许多前述问题。在该系统中,每个机器人设置有每个机器人本地的机器人控制单元(robotcontrol unit,RCU),其中,RCU可以包括一些处理和存储以使得能够收集在机器人附近设置的各种传感器,且不是本地进行AI确定,而是能够将数据通过网络发送至云计算平台以基于来自传感器的数据确定环境参数。然后,AI可以提取机器人接收的命令,且基于以之前相似环境参数以成功的方式执行了相似任务的所有相似机器人甚至具有相似组件的机器人的历史数据库确定环境参数。
应理解,RCU可被配置为通过将接收到的数据从机器人传输到基于云的计算系统来处理接收到的数据来进行操作,其中可能具有几乎无限功率和计算潜力的云可用来使用循环学习或人工智能系统来确定适当的动作方案,然后将适当的动作方案发送回机器人以由特定机器人执行。
在一些实施方式中,RCU可具有存储和处理能力,从而将适当的动作方案转换成一系列可执行命令,该一系列可执行命令可由机器人的一个或更多个关节接头执行,从而按照实现适当的方案所需的顺序和时间来实施所述可执行命令。
然而,在一些实施方式中,基于云的计算系统可搜索与特定机器人或特定机器人的元素相关联的数据库,从而确定可由机器人的一个或更多个关节接头执行的一系列可执行命令,并将这些命令发送至RCU,从而按照实现适当的方案所需的顺序和时间来本地实施所述可执行命令。
因此,可建立云机器人操作平台,该云机器人操作平台可通过机器人所在的任何远程位置处的有线或无线机器人控制模块来访问,而不需要特定机器人能够进行的潜在动作的冗余副本以及每个机器人上或每个机器人近端的处理能力。
在此构思的人工增强机器人智能系统的目的是构建这样的操作平台,以便在可以使用网络通信而不是本地数据库的多个应用领域中操作大量机器人,以及构建基于云的处理平台,从而执行机器学习和做决定所需的高功率计算任务。
该系统可以利用深度学习和AI、云计算和大数据中的技术连同安全网络连接技术,从而实现部署在独特环境设置中的各种机器人模型的安全的自由移动机器人操作。
尽管机器人已用在制造业多年,但是这些机器人大部分是过程控制的且非智能,这意味着这些机器人一般严格按惯例操作,即在受限环境中以一系列预定步骤重复操作,这些步骤通过使用预先编程来提供。这样的机器人没有认知能力来识别其环境中变化的参数,比如看、听以及相应地调整其动作来适应环境变化。例如,这些机器人一般不能检测到存在靠近的障碍物或目标并基于变化做出响应。
技术进步使得可被机器人利用的传感器的数目日益增长,其使得机器人能够说话、走路和看见。然后AI可以利用这些传感器,使得机器人不仅能看,还提供了机器人环境的详细地图,跟踪机器人附近潜在目标或障碍物的移动,确定必要的路线,并利用机器人的一个或更多个关节接头执行计划,从而成功地执行所检测环境里的分配的任务。
通过将AI技术与机器人技术相结合,可以形成能够完成认知行为的机器人,该认知行为比如是在不受限环境(比如办公室、家里、社区、校园等)中给人提供服务。
具体来说,如图1-6所示,在此讨论的人工增强机器人智能操作系统10可以包括多个机器人200,每个机器人具有:多个传感器210,或具有多个传感器的传感器阵列,其被配置成检测一个或更多个环境参数和用户命令;机器人控制单元214,每个机器人控制单元具有相关联的通信模块和处理器,每个相关联的机器人控制模块214可被配置成接收和发送多个传感器收集的数据;以及一个或更多个关节接头218,其能够以执行用户命令的方式操纵机器人。
人工增强机器人智能操作系统还可以包括基于云的机器人智能引擎100,其具有:通信模块;历史数据库,包含多个历史动作和相关联的环境参数;以及处理器。
人工增强机器人智能操作系统10还可以包括人工增强平台300,其可以包括通信模块,所述通信模块被配置为从基于云的机器人智能引擎接收数据;以及人工服务操作员中心,该人工服务操作员中心具有一个或更多个人类用户操作员,其可以使用人工操作中心310或一些其他类型的入口站点与人工增强平台交互。
在一些这样的实施方式中,通信模块可以被配置为从来自所述多个机器人中每个机器人的多个机器人控制单元接收数据。
此外,在一些实施方式中,基于云的机器人智能引擎100的处理器可以被配置为识别用户命令,并确定机器人在确定环境内遵循特定用户命令所需的多个可执行命令,其中,所述确定环境具有特定的一组检测环境参数;
在一些这样的实施方式中,基于云的机器人智能引擎100的处理器可被配置为:通过比较具有已在在所述历史数据库中包含的相似环境参数下执行的相似可执行命令序列的确定提议路径,关于在给定特定用户命令下基于特定的一个或更多个检测环境参数成功完成所述特定用户命令的可能性,进行概率性确定。
在一些这样的实施方式中,当概率性确定的结果在预定阈值以上时,基于云的机器人智能引擎100的处理器可以被配置为将一个或更多个所需的可执行命令传送给机器人控制单元,其中,机器人控制单元然后使机器人200的每个关节接头218执行每个所需的可执行命令,以完成用户命令。
在一些这样的实施方式中,当概率性确定的结果低于预定阈值时,处理器可以生成警报并标记该操作以供人工检查。该概率性确定的结果低于特定阈值表示尝试失败这一不可接受的可能性,这与历史数据量不足相对应,其中,系统是通过该历史数据进行比较从而使得机器人能够以可靠结果完成任务的。这样,人类操作员可直接控制机器人,利用传感器通知人环境参数且手动导航机器人来完成任务。
通过入口站点(portal)、利用虚拟现实或经由任何使得人类操作员能够被通知机器人的环境挑战或参数的潜在有用手段,该人类操作员可将环境参数在屏幕上呈现。
与基于云的机器人智能引擎和人工增强相关联的虚拟现实在本文中可以简称为HARIX。
在某些情况下,人类操作员可以利用各种方法来控制机器人、比如在每个关节接头中具有多个位置传感器的主复制品机器人,其中主复制品可被手动操纵从而将机器人放置在期望的配置中,其中真实环境里的机器人可链接到主复制品且利用其自身的关节接头作为从动装置跟随对应的主复制品移动。作为替代方案,人类操作员可设置有可与特定关节接头成对的一个或更多个输入装置,且人类用户然后可针对每个关节接头建立动作序列,从而使得机器人能够成功完成命令。
在一些这样的实施方式中,机器人控制单元可以被配置为关于用户命令的满意度来确定结果或提示用户反馈输入,并跟踪用于实现相关联结果的一个或更多个可执行命令。在一些这样的实施方式中,然后可以将结果和相关联的可执行命令以及相关联的环境参数发送到基于云的机器人智能引擎,以包括在历史数据库中,用于日后访问。
在一些这样的实施方式中,当概率性确定的结果低于预定阈值时,处理器还可以被配置为发起与所述人工增强平台的连接,使得人类用户操作员然后能够检查所述用户命令并手动生成所述一个或更多个所需的可执行命令以完成命令,并将所述一个或更多个所需的可执行命令发送到所述机器人控制单元,其中,所述机器人控制单元然后使所述机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令。
在一些这样的实施方式中,每个机器人控制单元可以通过使用强制入口站点的基于访客的网络(VBN)220连接到所述基于云的机器人智能引擎。
在这种情况下,通过添加通常称为“VBN网关”的中间服务器,每个机器人可以以基于访客的网络的形式连接到专用网络。VBN网关的功能是提供公共用户和因特网路由器之间的所需管理层,从而对访客、在这种情况下即特定网络连接位置中的机器人能够进行即插即用连接,其可无线连接或网络连接到系统。
在当前应用中,可允许机器人在其本地机器上配置很少或没有配置的情况下访问可用网络服务,这可通过在机器人和VBN网关之间提供第二层连接来实现。然后可以通过提供DHCP和代理ARP,来为机器人控制单元提供对VBN网关的访问,从而使得机器人能够在不需要IP地址配置的情况下连接到网络。然后可以实施强制入口站点,从而允许多种功能,包括计费或认证以及接受条款和条件。一旦用户成功满足强制入口站点中的条件,VBN网关便允许将用户的流量路由到基于云的机器人智能引擎。
在一些这样的实施方式中,基于云的机器人智能引擎的处理器可以被配置为生成虚拟现实环境设置,该虚拟现实环境设置反映从特定机器人的机器人控制单元接收的检测环境参数。利用虚拟现实环境,可以在虚拟现实设置中部署机器人的计算机生成的表示,并且可以确认是否完成用户命令。在某些情况下,可以在虚拟现实环境中测试各种映射的动作过程,并且可以由处理器确定或由人类操作员选择成功的路径。在一些实施方式中,可以允许操作员选择机器人的虚拟表示进行的初始尝试,作为生成自身的定制可执行命令集的模板,其仅需稍作修改即可获得最佳结果。
在一些这样的实施方式中,基于云的机器人智能引擎的处理器可以被配置为生成并运行多个可执行命令的模拟,其中,所述多个可执行命令为所述机器人在反映从特定机器人的机器人控制单元接收的检测环境参数的所述虚拟现实环境设置内、遵循所述特定用户命令所需的。
在一些这样的实施方式中,可以提示人类用户提供关于所述机器人在所述反映从特定机器人的机器人控制单元接收的检测的环境参数虚拟现实环境设置内、遵循特定用户命令所需的多个可执行命令的输入,以及在所述虚拟现实环境设置内部署所述多个可执行命令。
在一些这样的实施方式中,在虚拟环境中成功完成特定用户命令之后,处理器然后可以被配置为将所述多个可执行命令发送到所述特定机器人控制单元,并且其中,所述多个可执行命令然后由与所述特定机器人相关联的机器人控制执行。
例如,在人类用户检查后,给出将半杯牛奶从桌子移到柜台的机器人任务。系统可以在最初生成一组可执行命令,该一组可执行命令在检查后显示出命令导致失败,但是其仅仅由于单个被省略的运动或约束(比如传送过程中所抓握的玻璃的朝向或附属物通过约束进行的移动比如用户或柜台的边缘)的原因。然后,用户可以修改动作以在传送过程中正确定向玻璃,或相对于参数重新安排某些移动。一旦得以正确修改,系统可以在虚拟环境中重试以进行验证,然后最终将该一组可执行命令转送到RCU,以在实际环境中正确部署。
在一些这样的实施方式中,每个机器人控制单元可以设置有用户输入界面,该用户输入界面被配置为接收关于用户命令的直接用户输入并且接收关于所述命令的满意度的输入。例如,触摸屏可用于接收来自用户的输入、显示命令选项、阐明问题以及接收适当的反馈等。
在一些这样的实施方式中,人工增强机器人智能操作系统可以进一步包括开发者入口站点,其中,开发者入口站点可以被配置为接收包含用于一个或更多个关节接头的一个或更多个可执行命令的数据包,该一个或更多个关节接头被配置为使得特定机器人执行预定子任务,其中多个数据包和子任务保留在可以在云平台中设置的数据存储器中,数据存储器114包括一个或更多个历史数据库,并且其中处理器被配置为确定多个适当的数据包并将这些数据包链接在一起以执行用户命令。
在一些这样的实施方式中,基于云的机器人智能引擎122的处理器118可以用于访问多个外部数据库并提取用于一个或更多个关节接头的一个或更多个可执行命令,该一个或更多个可执行命令被配置为使特定机器人执行来自至少一个外部数据库的预定子任务。
在某些情况下,特定机器人的制造商可以提供有关特定运动的命令序列的文件,该数据可在历史数据库中用于日后的用途。然而,最初的开发可能缺少在特定操作中会利用到的潜在移动序列。以这种方式,该系统可以设置有开发者入口站点,其中用户可以访问该入口站点并在虚拟现实环境中在特定机器人上运行实验序列,从而提供附加的训练数据和潜在的可执行命令序列供基于云的AI系统使用。在某些情况下,人工操作中心的操作员可以用来检查操作并批准在AI数据库中使用的序列。
在一些实施方式中,系统可以将可执行命令的完整映射序列分解为任务的子集。例如,总领用户命令可以是:“机器人,给我煮杯咖啡”。此任务可能需要机器人从橱柜移动以取回杯子,从杯子移动至咖啡机,取出甜味剂,咖啡容器和杯子之间的各种抓握和释放情景等。在这种情况下,每个操作可被分类为子任务,涉及使用手指和手腕的抓握杯子、抓握杯把等,会移动肘部、手腕或肩膀的臂部运动,可通过腿部或辊实现的机器人的完全移动等。在某些情况下,各种任务可以具有与其他任务相同的子任务,其中每个子任务可以根据需要由特定的机器人检索和执行。
在某些情况下,为了减少计算量,该系统可以代替已知的成功操作,忽视对潜在最佳操作的确定。一个例子可以说明这一点,比如说已经给机器人取回笔的命令,笔是圆柱形对象。在这种情况下,抓握功能实际上与手腕的特定朝向有关,以使手指正确对齐,合拢手指,然后旋转肘部或手腕以抬高笔。与之对照,抓握功能可能类似于取回水杯的命令,然而,在某些情况下,取水杯可能包括其中水杯中装有液体的场景。在传送和提起笔期间笔的朝向是任意的,而水杯的朝向可能很重要。在这种情况下,系统可以被配置为与水杯相似地对待笔,其中将中心轴保持为与重力方向垂直或与将中心轴移动为与重力方向垂直,从而使系统仅需要检索与圆柱形物体有关的子命令,而不是区分圆柱对象的类型,以节省计算需求和系统复杂性。
在一些这样的实施方式中,人工增强机器人智能操作系统还可以包括用于从一个或更多个环境传感器接收数据的流分析平台,该流分析平台被配置为分析原始接收到的数据,并将过滤后的干净数据集保存在与机器人的周围环境有关的历史数据库上。
出于示例目的,流分析平台可以包括Apache FlinkTM、SparkTM、KafkaTM等。流分析平台可以持续分析从设置在每个机器人上的多个传感器接收的数据,从而允许机器人和基于云的AI平台基于每个机器人的特定即时环境中正在发生的事情做出决策。
在一些实施方式中,流平台可以是面向批处理的循环系统。这样的系统可以是混合流媒体系统,该系统不断实时分析从机器人接收到的所有数据,但仅导出相关信息以包含在历史数据库中。这与许多独立的数据流服务不同,后者通常不将其数据保存到永久性存储器中,因为流的全部目的不是将数据保留在存储器中,而是立即使用当前数据。在需要分析当前数据时,没有理由将其写入存储器中。然而,为了允许AI进行深度学习方法以提高可靠性并增加未来的成功率,也可以过滤此数据,且环境参数和在这种情况下关于以下特定命令所采取的动作之间的各种相关性可被配置为保存下来。
此外,尽管各种机器人可能具有不同程度的复杂性和变化的功能,包括关节接头的不同放置,但是这些机器人系统中的许多机器人系统也可能具有非常相似的子构造。例如,一个机器人可以仅包括单个手臂,该单个手臂具有由前臂支撑的联结用的手和在合成肩膀上转动的上臂。然而,这样的机器人可以在也能够进行环境运动的类人机器人上实现。在这种情况下,系统然后可以分解关于手臂机器人的历史数据库中保存的各种运动,并对类人机器人的手臂运动实施潜在的可执行命令。还将认识到,类人机器人的身体可仅作为关于机器人的肩膀和手臂的环境限制参数而被引入。这是很重要的,因为尽管该单个手臂的手臂可能具有360度的自由旋转运动,该运动可能会干扰类人机器人的身体或头部,并可能导致损坏或至少无法完成命令的任务。
该系统然后可以被配置为确定机器人之间的差异和相似性,并在具有相似特征的各种机器人之间选择具有高成功可能性的可执行命令。举例来说,各种机器人可以具有不同的“手”部分或抓握机构,然而,抓握机构可以绕标准的前臂和肘部设置。在这种情况下,系统选择的可执行命令可以包括抓握物特定的子命令,然而由于手腕、前臂和肘部相似,因此系统可以从一组成功的已知操作中选择这些命令,以执行相同或相似的任务。
这使得系统能够对特定机器人采用任何格式的数据,结合不同的集合,将数据简化为键值对(映射),然后对邻近对进行计算以关于特定动作的适当性产生最终的计算值。
在某些情况下,系统可以被配置为将流数据分成离散的数据块,该离散的数据块被称作微批量。然后,系统以连续的循环重复该步骤。然后,系统可以在流数据上创建检查点,以将其分成有限的集合。当采取该检查点时,到来的数据不会丢失,因为该检查点保留在两个产品中的队列中。然后可以将基于云的系统配置为分析静态数据集。
可替代地,系统可以针对流数据利用离散流(Discretized Streams,DStreams),针对批量数据利用弹性分布式数据集(Resilient distributed dataset,RDD)。换句话说,可以将系统配置为打开文件而从不关闭文件。就像保持TCP套接字打开一样,这是系统日志工作的方式。另一方面,批处理程序打开文件,对其进行处理,然后将其关闭。在一些这样的实施方式中,术语创建检查点意味着系统标记其离开的地方,然后从该点重新开始。然后,系统可以运行一种迭代,该迭代使其机器语言算法在许多情况下比批处理系统运行得更快。这并非无关紧要,因为ML例程运行可能要花费许多小时。
在一些实施方式中,系统可以被配置为在存储器已满时换出到磁盘。
然后,可以将流平台配置为将当前数据和历史数据位置提供给机器学习算法,并使它们在分布式体系结构即云上运行。
在一些这样的实施方式中,基于云的机器人智能引擎的处理器可以被配置为利用深度学习神经网络来识别一个或更多个相似的过去环境场景并识别导致成功执行用户命令的一个或更多个历史动作,然后生成一组可执行命令,该可执行命令在确定的实时环境中成功的可能性概率更大。
例如,机器人可以利用AI识别可能希望使用各种光学传感器、热传感器或其他传感器向机器人发出命令的人(即潜在用户)的接近。一旦识别到正在接近的人,则机器人可以利用各种麦克风来收听和接收口头命令,滤除环境噪声并确定由人给出的命令,或者在其他实施方式中,RCU可以设置有用户输入界面,用户可与该用户输入界面交互从而发出命令。从传感器或输入接口接收的信息可以通过网络被传送到基于云的服务器,该服务器可以接到所接收的原始数据(例如来自人类的音频波形),执行语音到文本操作,利用提取的文本来最终确定接收到的数据中嵌入的命令与在设置在基于云的服务器上的动作数据库中保存的一个或更多个先前执行的动作之间的匹配。然后可以利用云智能平台或基于云的处理功能来映射完成接收到的命令所需的一系列操作。
在一些实施方式中,用户输入界面可以包括显示器,该显示器也可以设置在机器人上,其中发出命令的人可被提供有信息,且可利用该输入界面来提供对命令的确认,或在一些情况下关于澄清与用户发出的命令有关的问题提供输入。还应当理解,还可以允许人直接与显示器和用户输入界面交互以输入文本命令,而不需要口头命令。
然后,系统可以利用贝叶斯表或某种其他概率算法来做出确定,以确定成功完成任务的概率。在成功概率高于特定阈值的情况下,机器人将尝试执行任务。但是,在成功概率低于预定阈值的情况下,这种情况会触发将要求人工干预的切换,这使得机器人能联系人工智能AI训练中心或人工操作中心,该人工智能AI训练中心或人工操作中心具有能直接控制机器人的人类控制员或用户。在该人工智能AI训练中心,人然后可以取得对机器人的控制权,并通过网络远程控制机器人来完成任务。
在这种情况下,机器人可以利用每个关节接头中设置的各种位置和速度传感器,还可以利用环境传感器,从而同时跟踪机器人的环境以及为成功完成所命令的任务所需的对机器人的由人发起的各种移动。然后,可以将在当前环境中导航且完成发出的命令或任务所需的每个关节接头的特定顺次移动中的每个移动保存在历史数据库中,用于与日后相似的命令串和环境相比较,从而系统可建立鲁棒的数据库并在相似的环境中映射相似的运动,从而最终系统可在日后相似的环境场景下接收日后相似的命令时映射具有高成功概率的运动序列。可以订购这些服务机器人来为人们工作。
应当理解,深度神经网络(DNN)是在输入层和输出层之间具有多层的人工神经网络(ANN)。DNN求解正确的数学运算以将输入转换为输出,在这种情况下输出就是使机器人完成任务的命令,不管其是线性关系还是非线性关系。网络遍历各层,即潜在的顺序的机器人移动,计算每个输出的成功概率。特别是在建立历史数据库的早期,用户可以检查结果并选择序列是否导致了成功,特定序列是否将导致成功,或甚至网络应该显示并返回建议标签的概率。这样的每个数学运算都被视为层,而复杂的DNN具有许多层,因此被称为“深度”网络。
DNN可以对复杂的非线性关系建模。DNN结构会产生组合模型,其中对象表示为基元的分层成分,在这种情况下,其可以是给定机器人的特定关节接头在不同时间通过投影序列、运动速率、关节接头之间的相对运动等的各个移动。额外的层使得能够从较低的层组合特征,且最终使得能够对复杂数据建模,比如基于机器人的特定环境在生成的映射中机器人肢体的投影等。
DNN通常是前馈网络,在其中数据从输入层流到输出层而不会回溯。首先,DNN创建虚拟神经元的图,并为它们之间的连接分配随机数值或“权重”。权重和输入相乘,并返回0和1之间的输出。如果网络没有准确识别特定模式,算法将调整权重。这样,算法可以使得特定参数更有影响力,直至其确定出正确的数学运算来完全处理数据。递归神经网络(RNN)中数据可在任意方向流动,其可用于涉及语言建模的应用。
卷积深度神经网络(CNN)通常用于计算机视觉。CNN也已应用于自动语音识别(ASR)的声学建模。与ANN一样,不成熟训练的DNN可能会出现许多问题。两个常见问题是过拟合和计算时间。最后,可以通过诸如裁剪和旋转之类的方法来增强数据,从而可以增加较小的训练集的大小,以减少过拟合的机会。
在此构想的DNN可利用多个训练参数来创建,比如机器人关节数目、对机器人的运动的电位弧的任何限制、连接关节接头的肢体、其加速度和力分布都可以是参数。另一个级别可以包括给定任务的可接受力水平、可接受的误差率、可接受的最大和最小速度,可接受的环境障碍物对机器人的干扰或拦截次数等。一些层还可以包括各种所需的学习速率、确定失败或成功时针对各种动作的初始权重。
可通过将处理移至云中而实现的多核架构的大型处理能力可以显著提高训练速度,因为处理能力实际上是无限的。
如图7-9所示,在此还构思了一种向多个机器人提供复杂机器人控制的方法,该方法可以包括各种子处理或步骤,其可以包括:提供多个机器人,每个机器人具有:多个传感器;一个或更多个关节接头,该关节接头能够以执行用户命令的方式操纵机器人;该方法还包括为每个机器人提供机器人控制单元,每个机器人控制单元具有相关联的通信模块和处理器;提供基于云的机器人智能引擎,基于云的机器人具有:通信模块,被配置成从来自多个机器人中每个机器人的多个机器人控制单元接收数据;历史数据库,包含多个历史动作和相关联的环境参数;以及处理器;
向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:提供人工增强平台,该人工增强平台包括:通信模块,被配置为从基于云的机器人智能引擎接收数据;以及具有一个或更多个人类用户操作员的人工服务操作员中心;
向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:接收利用设置在至少一个机器人上的所述多个传感器的多个环境参数;在机器人处接收用户命令;向基于云的机器人智能引擎发送用户命令以及多个环境参数;利用基于云的机器人智能引擎的处理器来确定机器人在机器人周围的即时环境内遵循用户命令所需的多个可执行命令;利用基于云的机器人智能引擎的处理器,通过比较具有已在所述历史数据库中包含的相似环境参数下执行的相似可执行命令序列的确定提议路径,关于在给定特定用户命令下基于特定的一个或更多个所检测环境参数成功完成所述特定用户命令的可能性,生成概率性确定的结果。
向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:利用处理器将一个或更多个所需的可执行命令传送至机器人控制单元,其中机器人控制单元然后在概率性确定的结果在预定阈值以上时,使机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成用户命令;当概率性确定的结果低于预定阈值时,利用处理器生成警报并标记用于人工检查的操作;确定关于用户命令的满意度的结果,并跟踪用来获得相关联的结果的一个或更多个可执行命令;以及将相关联结果和相关联可执行命令和相关联环境参数发送至基于云的机器人智能引擎,以包括在历史数据库中,用于日后访问。
在一些实施方式中,向多个机器人提供复杂机器人控制的方法还包括步骤:利用处理器发起与人工增强平台的连接,使得人类用户操作员可以检查用户命令并手动生成一个或更多个所需的可执行命令用于命令完成,并将一个或更多个所需的可执行命令发送至机器人控制单元,其中在概率性确定的结果低于预定阈值时,机器人控制单元然后使机器人的每个所述关节接头执行每个所述所需的可执行命令,从而完成所述用户命令。
在一些实施方式中,向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:利用基于云的机器人智能引擎的处理器来生成反映从特定机器人的机器人控制单元接收的检测环境参数的虚拟现实环境设置。
在一些实施方式中,向多个机器人提供复杂机器人控制的方法还包括以下步骤:利用基于云的机器人智能引擎的处理器生成并运行多个可执行命令的模拟,所述多个可执行命令为所述机器人在反映从特定机器人的机器人控制单元接收的检测环境参数的所述虚拟现实环境设置内、遵循所述特定用户命令所需的。
在一些实施方式中,向多个机器人提供复杂机器人控制的方法还可以包括步骤:提示人类用户提供关于所述机器人在所述反映从特定机器人的机器人控制单元接收的检测的环境参数虚拟现实环境设置内、遵循特定用户命令所需的多个可执行命令的输入,以及在所述虚拟现实环境设置内部署所述多个可执行命令。
在一些实施方式中,向多个机器人提供复杂机器人控制的方法还可以包括步骤:在所述虚拟环境中成功完成所述特定用户命令之后,将多个可执行命令发送到所述特定机器人控制单元,并且其中,所述多个可执行命令然后由与特定机器人相关联的机器人控制执行。
在一些实施方式中,向多个机器人提供复杂机器人控制的方法还可以包括步骤:向每个机器人控制单元提供用户输入界面,该用户输入界面被配置为接收关于用户命令的直接用户输入,并接收关于所述命令满意度的输入。
在一些实施方式中,向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:提供开发者入口站点;利用开发者入口站点接收包含用于一个或更多个关节接头的一个或更多个可执行命令的数据包,所述一个或更多个关节接头被配置成使特定机器人执行预定子任务;在历史数据库中保留多个数据包和子任务;利用处理器确定多个适当的数据包;将数据包链接在一起以执行用户命令。
例如,用户可以雇佣这些机器人,或机器人运行在基于云的AI机器人控制平台上的第三方公司可能希望持续提高运行在其上的机器人的性能质量。已进一步认识到,几乎不可能提供关于机器人在每个潜在环境设置中可执行的每个潜在运动的训练数据。
这样,开发者入口站点可以提供一个平台,在该平台中,希望提高性能的个人或公司可以提出具有特定环境参数的可执行命令序列或子序列,以使机器人更加高效。
在某些情况下,系统可以在虚拟现实环境中部署这些提议的命令序列,并确定该命令序列是否会导致成功完成命令,且然后包含这些命令以用于特定开发者拥有的机器人的本地控制,或用于全局包含从而跨所有可应用的机器人平台使用。在某些情况下,提议的命令可以在包含进任何历史数据库中之前由人工服务操作中心进行检查。
在一些实施方式中,向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:利用基于云的机器人智能引擎的处理器来访问多个外部数据库并提取一个或更多个可执行命令;其中,一个或更多个可执行命令包含用于一个或更多个关节接头的信息,其被配置为使特定机器人执行来自至少一个外部数据库的预定的子任务。
在一些实施方式中,向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:提供流分析平台;以及利用流分析平台从一个或更多个环境传感器接收数据,该流分析平台配置为分析原始接收到的数据,并将过滤后的干净数据集保存在与机器人周围环境有关的历史数据库中。
在一些实施方式中,向多个机器人提供复杂的机器人控制的方法还可以包括以下步骤:利用深度学习神经网络来识别一个或更多个类似的过去环境场景,并识别一个或更多个导致成功执行用户命令的历史动作;并生成一组可执行命令,这些命令在确定的实时环境中成功的概率将增加。
在一些替代实施方式中,可以利用具有更直接和收敛的训练算法的其他类型的神经网络,例如CMAC(cerebellar model articulation controller,小脑模型关节控制器)。
在此构思的该平台以独特的方式结合了AI(人工智能)和HI(人类智能)来控制服务机器人,服务机器人实时完成服务任务和动态深度学习。
实质上,作为云机器人的云大脑,在此处构思的人工增强机器人智能系统中有两部分,AI云计算部分和HI人工辅助操作控制台。在云机器人正常操作期间,通过使用来自机器人的所有可用的感测输入,AI部分首先通过计算具有置信度分数的期望指令来控制机器人。如果最可行的指令满足预设的置信度阈值(比如对话为85%,运动安全为100%),在此构思的人工增强机器人智能系统将调用该指令,并给予机器人期望的命令。否则,在此构思的人工增强机器人智能系统将立即将机器人控制转移到HI部分。真实的人类操作员将介入以辅助云机器人。
然后,可以为构思的人工增强机器人智能系统AI提供一个或更多个最新的云计算和深度学习平台130,然后,在某些情况下,该系统能够使具有丰富AI功能(例如自动导航(SLAM和VSLAM)、计算机视觉(面部识别,对象识别和OCR),自然语言处理(聊天机器人,问答),移动和抓握(视觉辅助)的机器人成为可能。
另外,在此构思的人工增强机器人智能系统通过构建有VR/AR增强的操作员控制台和实时多媒体数据投放平台的人工增强平台得到增强。
然后,可以针对在许多功能上协助服务机器人的技能,来训练人类操作员,例如,校正查询中的答案,校正机器人移动过程中的路径,校正图片的识别结果。然后,系统将人的动作记录为AI的新数据集。这些数据被反馈到AI平台中,以重新训练AI神经网络并重新调整知识库。由于这些数据是在实际工作环境中实时收集的,因此这些数据集通常比独立AI算法的标准训练数据集更为复杂和/或嘈杂,比如Face++TM和SenseTimeTM的面部识别和对象识别API。
在此构思的人工增强机器人智能系统上的AI功能将随着在此构思的人工增强机器人智能系统不断地实时收集人工增强数据并帮助重新训练和重新调整AI算法和深度网络而不断发展。
在一些情况下,服务机器人公司可能访问我们的聊天机器人服务,且经过一段在线服务后,其聊天机器人模型会从模型0在线训练到模型1。
应理解,在一些实施方式中,可使用人类操作员来对所有云机器人操作提供监管,并超控(override)任何AI控制,这增加了安全水平。
在一些情况下,系统可以针对预先记录的操作会话发起训练模式以针对虚拟机器人操作。
在一些情况下,可以在具有大存储容量和安全网络的异构云计算平台上建立所构思的人工增强机器人智能系统。以这种方式,每次云机器人连接到构思的人工增强机器人智能系统时,都会对其进行认证,并建立构思的人工增强机器人智能系统会话。每个云机器人都具有使用集装箱容器的自身的私有云。通过这种方式,构思的人工增强机器人智能系统可以与比如Hadoop TM、Spark TM、Storm TM这样的多个大数据工具集成在一起,并与比如Tensorflow TM、MXNetTM、Torch TM、Caffe TM、Theano TM、PaddlePaddle TM这样的各种机器学习平台相结合。
因此,可以将构思的人工增强机器人智能系统设计为支持数百万个并存的对AI服务的查询。目标是在单个构思的人工增强机器人智能系统中支持大量各种云机器人。
此外,可以将构思的人工增强机器人智能系统与网络爬虫/搜索引擎/数据挖掘技术集成,以收集、挖掘、获取专门用于机器人服务/操作的有用数据。通过与大学、研究机构和第三方合作以获取有用的原始数据,该系统可以利用受过训练的AI工程师/专业人员,他们可以结合大数据平台工作来净化数据、注释数据并将数据加入DNN/CNN/RNN中,以训练和优化我们的AI模型。可以将所构思系统的数据平台126配置成使得其将为我们的AI知识库的存储、排序、挖掘、注释和优化持续提供基础。最终,构思的人工增强机器人智能系统将培育一个AI平台,该平台可以自动在许多垂直领域中扩展其知识库,并使云机器人比以往任何时候都更加智能。
然而,在某些情况下,AI服务可能并不总是准确的,因此,在AI可能失败的情况下,可以进行人工干预(或人类智能)。这样,构思的人工增强机器人智能系统可以实现与复杂的数据流机制相结合的自适应AI置信指数阈值设置和事件驱动系统。然后,此机制连接到针对AI和HI之间的切换优化的机器/人增强范例。通过检查当前的AI技术,审查客户需求并在银行业、房地产和安全监控等行业进行实践,AI/HI混合平台可以工作得尤其良好。
在某些情况下,例如,接待服务机器人可能需要识别客户,这会涉及面部识别,然后机器人可能需要提供问题的答案,并引导客户到达适当的区域进行业务交易和服务。接待机器人通常在零售店工作,例如银行分行和手机店。当前系统的面部识别可以利用LFW数据库(Labeled Faces in the Wild,户外面部检测数据库)实现高准确度。
在示例性银行业场景中,在此构思的人工增强机器人智能系统将与银行提供的知识库和通过互联网获取的金融相关知识库一起建立自己的知识库,以服务于客户。另外,在此构思的人工增强机器人智能系统可以从银行操作系统检索客户信息,在允许时进行大数据分析,并因此能够回答许多与金融有关的问题并最终提供咨询服务。
在这种情况下,与所构思的人工增强机器人智能系统一起使用的NLP可在银行咨询服务领域被专门训练。
当RSR通过在此构思的人工增强机器人智能系统的云部分中的NLP与客户通信时,构思的人工增强机器人智能系统随后可以通过深度学习神经网络来分析客户问题的语义,使用正确的AI模型,从而实时提供正确答案。
如果客户的问题超出了AI知识库的范围,或者AI反馈低于置信度阈值,则本文所构思的人工增强机器人智能系统将切换至人类来寻求帮助。
在另一示例性场景下,例如在部署安全巡逻机器人(security patrol robot,SPR)时,可以使用该机器人独立巡逻社区。它可以使用面部识别自动识别居民或访客,定位和监视车牌,确定车辆类型,记录与识别的物品相遇的位置和其他信息。在每种情况下,SPR都可以与人们进行交互,如果有怀疑,还可以通知保安人员。
在实际工作中,SPR基本上取代了巡逻保安员。SPR必须沿着预定义的路线行驶,停下来,走。它还必须查看各个地方的异常情况。为了完成这些任务,可利用所构思的人工增强机器人智能系统,通过利用SLAM(LIDAR)和VSLAM(立体照相机)且将其与IMU结合来提供精密导航。
为了获得更好的检查能力,构思的人工增强机器人智能系统还可以获取环境数据,并通过融合各种异构传感器来生成高精度的三维环境地图数据,然后完成或生成三维语义图。构思的人工增强机器人智能系统可以帮助SPR进行道路检测,路径规划和现场检查。
在某些情况下,云存储可以保存有关路线的环境参数,然后比较差异,以使SPR能够通过增强仔细检查来研究差异。
SPR利用构思的人工增强机器人智能系统的面部识别功能来区分居民和访客。如果得到指示,SPR可以追踪可疑人员并记录可疑人员的图像和行为。例如,社区居民的面部会被映射并输入到历史数据库中,其中还可要求访客登录并允许进行面部扫描以临时输入到数据库中。SPR然后可以将确定的面部扫描与数据库进行比较,以便能够确定未经批准的人员的存在,然后在遇到无法识别的人员时进行更仔细的检查。
在某些情况下,SPR还可以使用构思的人工增强机器人智能系统的OCR功能来识别汽车牌照,以区分居民或访客的汽车。
为了保护社区安全,SPR还可以在本文构思的人工增强机器人智能系统上使用人类移动分析技术,以监视和报警异常人类行为,比如爬墙,在窗户上跳跃等。
在此构思的人工增强机器人智能系统在整个操作时间期间控制云机器人。为每个任务开发了整套的操作场景。每个场景然后可以包括视觉交互,语音交互,手势和移动交互。然后,可以在AI的开发中使用SLAM、VSLAM、OCR、NLP、CNN、RNN、R-CNN、面部识别、对象识别和其他AI技术,以与构思的人工增强机器人智能系统一起使用。
然后将进一步理解,任何口头命令都可以通过ASR和OCR运行,以生成与该口头命令相关联的文本字符串。然后,可以对这些文本字符串进行文本标记(tokenized),并与编索引的文本标记进行比较,该编索引的文本标记与先前由基于云的机器人智能系统控制的机器人完成的命令、以及其用于完成那些命令的相关联的相关可执行命令相关。文本标记可以表示单词或短语,然后可以将这些单词或短语与已被类似地文本标记的其他先前完成的命令进行比较。
在一些实施方式中,命令本身可以被文本标记,或者换句话说,该命令可以被转换成文本并分解成字符串序列,该字符串序列可以包括诸如单词、关键词、短语、符号和其他通常称为文本标记的元素之类的各种片段。文本标记可以是单独的单词、短语或甚至整个句子。另外,文本标记可以将句子分解为组成部分,从而将动词、副词、名词等分开,从而更好地识别格时态(case tense),且因此更有可能识别问题的适当上下文。此外,在进行文本标记的过程中,会丢弃一些标点符号之类的字符以及不会为特定文本标记增加价值的连词。然后使用该文本标记作为搜索和匹配历史数据库或先前生成的训练等处理的输入,从而找到匹配。然后,可以将命令的文本标记与数据库中的特定答案相关联,以在以后基于相似文本标记提高搜索准确性。
在另外的方面中,可以将文本标记与类似于分类词典的相似术语进行比较,从而提高识别命令的可能性,以及提高识别用于比较的历史数据库中的相似命令的可能性。
在机器人在历史数据库中不能找到合适的先前命令的情况下,或其中匹配低于关于潜在匹配的特定置信度阈值,然后可以使用系统来提示机器人位置处的用户使用关于机器人设置的用户界面216来提供澄清或呈现澄清。这样的用户界面可以包括显示屏幕和触摸或其他输入接口,或可对用户说话请求澄清问题的扬声器以及接收响应的麦克风。在这样的情况下,系统可以提议可能的术语或相似的命令,且从而辅助用户改善命令。如果系统不能找到合适的匹配,系统然后可以对交互进行标记以用于人工干预,在这种情况下人类操作员然后可从AI平台移除该实例,且手动控制机器人,辅助用户准确表达或导向适当的命令。然后可以对初始的命令进行文本标记,且将其包括在历史数据库中,从而扩展用户可用来发出命令的特定赘词。
在一些实施方式中,每个机器人可以包括多个外围输入设备222,其可以包括显示系统,用于提供收据或其他读数的打印机,用于接收输入的触摸面板,ID卡读取器,用于处理支付以执行服务或任务的信用卡读取器等。这些外围设备可以是给定机器人在特定部署区域或环境中执行特定任务所需的任何数量的项目。
图10示出了人工增强机器人智能操作系统10的另一示例性组织框架,其示出了可以并入其中的附加可选特征,比如机器人操作客户端400,其可以具有持续监视机器人动作、成功概率和安全问题的相关联管理模块。该示例性框架还示出了AI训练器模块404,该模块可以包括手动人工增强输入或受监督的机器学习,其中允许AI在没有协助然而有人类监管的情况下进行,其中如果机器人开始在期望的动作组之外行动,则人类操作员准备好进行干预。这里还示出AI平台408,其可以组织AI的各个方面作为特定模块和核功能比如深度学习算法、大数据访问和搜索、IOT连接性、传感器控制比如智能视觉、导航地图和NLP。
图11示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了附加的可选特征和操作层,这些附加特征和操作层由于可类比于相似的人类思考功能,可以基于它们如何与人工智能行为和特征的不同方面相关而被结合和描述。如此处所示,该系统可被描述为具有各种层,例如服务层,其可以包括第三方服务系统、云机器人操作系统支持、市场等。系统还可以包括大脑技能层,该层可以包括角色区域服务器,各种机器人专用技能单元,在多个机器人之间可能具有通用技能的通用技能服务单元,机器人开发引擎和人机界面操作客户端。该系统然后可以包括具有带有AI训练平台和AI服务平台的AI平台的大脑功能层,然后大脑功能层可以包括世界服务器,人工增强平台和大数据平台。然后,该系统可以包括大脑记忆层,该大脑记忆层带有含机器人操作专用脱敏数据的数据库,和含人工增强机器人智能控制脱敏数据的数据库,该人工增强机器人智能控制脱敏数据专用于人接收的专用于特定操作的命令。
图12示出了机器人操作客户端的示例性组织框架,如图所示,其可以示出给定机器人与机器人操作客户端或模块之间的至少一个连接框架。
图13示出了连接服务器的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的实施方式中的任何一个中。如此处所示,服务器可以利用特定机器人本地的RCU,其中RCU可以运行针对特定机器人专门制作的应用,例如UE4应用。
图14示出了实时开发控制应用的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统或RCU的任一实施方式中。将理解,UE4仅代表用于设计和启动用户界面应用的示例性平台,该用户界面应用可以基于所连接的基于云的网络内的特定机器人实现或特征来定制或专门制作。
图15示出了命令控制单元或模块的示例性组织框架,该命令控制单元或模块可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中,从而管理发给通过其控制的任何一个机器人的命令。
图16示出了容器编排系统中心服务集群或模块的示例性组织框架,其可以可选地实施到本文公开的机器人智能操作系统的任一实施方式中,从而管理通过其控制的任一机器人收集的数据以及发给该机器人的命令。
容器是捆绑和运行应用程序的良好方式。在生产环境中,可以将系统配置为管理运行应用的容器,并确保没有停机时间。容器编排系统可以使用DNS名称或使用其自己的IP地址暴露容器。如果到容器的流量高,则容器编排系统能够负载平衡并分配网络流量,从而使部署稳定。
容器的实现可以通过图像分层和扩展过程来封装许多应用组件。在一些实施方式中,可以将不同的用户应用和平台组件组合在单个容器中。容器的粒度(即内部应用的数量)可以根据需求以及应用的变化和其他场景而变化。在某些应用中,可以实现每个应用一个容器的方式,该方式仍然允许轻松地组成新的堆栈,例如,更改应用中的网络服务器,或重用本地或从存储库比如集装箱中心预定义的常见组件,例如监视工具或单个存储服务比如内存缓存。
该容器编排框架使得能够容易地构建/重建和管理应用。每应用单容器方式的缺点是与多应用容器相比,其导致更多容器具有交互和管理开销。存储和网络管理是比如可互操作和分布式文本的应用软件包这样的容器能够使之便利的两个特殊议题。
在集装箱中至少可以通过两种方式管理数据,包括数据卷和数据卷容器。数据存储功能可以将数据卷添加到从图像产生的任何容器。数据卷是一个或更多个容器中的特别指定的目录,该目录绕过联合文件系统以提供用于持久或共享数据的功能。在一些实施方式中,可以在容器之间共享和重用卷,其中数据卷容器可以通过专用的独立数据存储容器使得能够在应用容器之间共享持久性数据。
网络管理可以基于在主机上分配端口的两种方法,即网络端口映射和容器链接。在RCU上为每个机器人运行的应用可以通过网络端口连接到在集装箱容器中运行的服务或应用。以这种方式,容器链接使得能够将多个容器链接在一起并在它们之间发送信息。然后,链接的容器可以通过环境变量传输有关其自身的数据。为了建立链接和某些关系类型,集装箱可以依靠容器的名称。容器名称必须唯一,这意味着链接通常限于同一主机的容器,这些容器可以由同一守护程序管理。
容器编排系统可以采用节点集群,以用来运行集装箱运送的任务。该系统可以向容器编排系统提供有关每个容器需要多少CPU和内存(RAM)的参数。容器编排系统然后可被配置为使容器适合您的节点,以充分利用您的资源。
在某些情况下,可以将容器编排系统配置为重新启动出现故障的容器,替换容器,停止不响应的容器等。
容器编排系统也可以被配置为允许系统存储和管理敏感信息,例如密码、OAuth令牌和SSH密钥。然后,系统可以部署和更新机密信息和应用配置,而无需重建系统的容器图像,也无需在系统的堆栈配置中暴露机密信息或敏感信息。
特别地,容器可以被部署在各种集群中,例如如图16所示的中心服务集群、区域云,其可以包括子集群,该子集群包括一个或更多个区域集群,以及一个或更多个边缘集群。中心服务集群可以包括大数据容器集、机器人操作中心容器集、人机交互入口站点容器集、R-Boss容器集等。
区域集群可以包括人工增强机器人智能(HARI)开关容器集,世界服务器容器集,游戏服务器容器集,机器人技能容器集,自动语音识别(ASR)容器集,TTS代理容器集,视觉代理容器集,CV推理容器集,具有虚拟现实部署功能的人工增强机器人智能容器集和数据库交叉容器集。
各种边缘集群可以包含各种组件,几乎以任何适当组合包括以下一项或多项:媒体服务器容器集,视觉代理容器集,ASR代理容器集,CV推理容器集,跨数据库容器集等。
图17示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以结合在其中的附加可选特征以及各种示出的模块如何彼此交互。
图18示出了人工增强机器人智能操作系统的另一示例性组织框架,其示出了可以并入其中的附加可选特征。例如,此特定图说明了各种开发人员如何利用带有虚拟机或双生的虚拟现实环境(其代表了真实生活机器)以在实际发布之前测试并向AI数据库提供另外的训练模型、参数、控件、动作等。
图19示出了一组织框架,该组织框架示出了示例性AI平台与本文所公开的人工增强机器人智能操作系统的所公开实施方式中的任何一个的集成,该图示出了可以并入其中的其他可选特征。该机器人操作中心或模块图示出了各个子模块,它们如何相互通信以及运行应用的机器人控制单元如何处理用户输入命令,如何将数据传输到基于云的AI平台,以及机器人操作中心如何在云中进行所需的确定且以必要动作来回应以供RCU在给定机器人上采用。
图20-29示出了如图11所示的各种模块,提供了关于可以结合到各种模块中的各种潜在子模块的更多细节。
例如,在图20中,AI平台可以包括AI训练平台和AI服务平台。AI训练平台然后可以包括模拟和深度学习训练引擎、RC模块、CV模块、NLU模块和运动模块。AI服务平台可以包括决策引擎以及智能运动视觉和语音模块。例如,智能运动模块可以包括抓握模块、运动计划模块等。智能视觉模块可以具有DD/FR/OR模块、VSLAM模块等。智能语音模块可以包括NLU模块、ASR模块等。
此外,图21示出了世界服务器元件,其可以具有MMO基础和各种特定模块,比如角色协作、数字双LCM、CAS管理、位置、角色地图等。
图22示出了人工增强平台,其可以具有多流基础,并且包括各种模块,诸如具有嵌入式人机界面入口站点的人机界面中心模块和具有嵌入式处理模块的人机界面数据收集模块。
图23示出了图11中的示例性大数据平台模块,其中大数据平台模块可以利用搜索引擎运行,并具有若干子模块,这些子模块包括:网络爬虫模块、解析模块、标记模块、数据浏览器模块、数据分析模块和数据预测模块。
图24示出了各种潜在选项的组织示意图,其可以被实施为如图11所示的示例性人工增强机器人智能操作系统中的机器人操作脱敏数据元素的一部分,其中机器人操作脱敏数据包括各种类型的信息,包括:人脸,KB,AV,MA等。
图25示出了各种潜在选项的组织示意图,其可以被实施为具有如图11所示的增强现实脱敏数据的人工增强机器人智能操作系统的一部分,其中具有增强现实脱敏数据的人工增强机器人智能操作系统包括各种类型的信息,包括干净数据、标记数据和模型数据。
图26示出了各种潜在选项的组织示意图,其可以被实施为如图11所示的示例性人工增强机器人智能操作系统中的微服务总线元件的一部分,其中微服务总线可以包括服务注册表和服务发现功能。
图27示出了各种潜在选项的组织示意图,其可以被实施为如图11所示的示例性人工增强机器人智能操作系统中的人工增强机器人智能控制网关的一部分,其中,人工增强机器人智能控制网关可以包括匹配器和连接管理功能。
图28示出了各种潜在选项的组织示意图,其可以被实施为如图11所示的示例性人工增强机器人智能操作系统中的人工增强机器人智能控制开关的一部分,其中,人工增强机器人智能控制开关可以包括人工智能/人类智能开关和媒体控制器功能。
图29示出了各种潜在选项的组织示意图,其可以被实施为如图11所示的示例性人工增强机器人智能操作系统中的真实世界状态分析器的一部分,其中真实世界状态分析器可以包括VSLAM预处理器模块、语音预处理器模块、传感器分析器平台或模块以及网络即时通信选择性转发单元(网页RTC SFU)模块。
在一些实施方式中,并且关于如下所述的ASR概念,当接收口头命令以区分查询和命令时,系统还可以采用频率标记、语音变调或其他行为标签。
举例来说,可以对命令“机器人,你可以拿起笔吗”进行标记,以便机器人可以将句子解析为命令“拿起”和目标“笔”。这使系统可以轻松地与类似的命令“机器人,你可以拿起勺子吗”进行比较。然后,系统的AI可以找到与“拿起”有关的适当命令,然后确定涉及到了抓握目标。然后,系统可以从涉及抓握特定物品(在这种情况下为勺子)的其他命令中汲取信息,然而是从其他整体功能(例如搅拌等)中获取信息的。然后,系统可以将这两个方面结合起来以设计出完成当前任务的序列,假设它以前从未这样做过。
提议的确定阈值可以在这里发挥作用。然后,该系统可以关于系统是否已成功抓握勺子和其他物品做出概率性的确定,并考虑到它先前已组合了两个相似但独立的任务的元素时成功的可能性。如果系统做出高于阈值的确定,则可以将其配置为继续进行,或者可替代地在物理和虚拟并行智能平台134中的虚拟现实设置中进行部署。可替代地,如果低于阈值,则系统可以生成警报并请求人员检查,其中人员可以检查,必要时进行更改,且部署,或查看虚拟现实部署,必要时进行更改,并部署在现实生活中。
应当理解,各种机器人可以采用各种面部或物体识别技术,其中,机器学习可以在面部或物体识别过程中实施,并适应性调整机器人在给定各种环境参数下回应的方式。
一些这样的面部或物体识别算法通过从对象的面部图像或特定物体的图像中提取标志或特征来识别面部特征。例如,算法可以分析独特的特征或轮廓,其在面部情况下可以包括各种元素的相对位置,眼睛、鼻子、颧骨和下颌的大小和/或形状,或用于识别汽车的特定物体的其他区别性特征,例如车轮尺寸,牌照位置,轮舱轮廓或挡风玻璃角度。然后,使用这些特征从用户数据库或汽车登记数据库中搜索其他图像,以查找具有匹配特征的面部或物体。
在某些情况下,可以使用算法来标准化一列面部图像,然后压缩面部数据,仅保存对面部识别有用的图像中的数据。然后仅所提取的识别图像数据会与面部或物体数据进行比较。
在某些情况下,可以使用几何识别算法,在这种情况下,系统可以查看区别特征或光度学。在一些替代方案或另外的组合中,可以使用统计识别算法,其中可以将图像提炼为值,并且可以将其与一个或更多个模板的值进行比较以消除差异。两种方法都可以适用于整体模型或基于特征的模型,其中,整体性的将尝试识别整个面部,而基于特征的则将根据特征将图像细分为组成部分,并分析每个特征以及其关于其他特征的空间位置。
在某些情况下,本文构思的系统可以利用识别算法,包括使用特征面的主成分分析,线性鉴别分析,使用FisherfaceTM算法的弹性束图匹配,隐马尔可夫模型,使用张量表示的多线性子空间学习以及神经元驱动的动态链接匹配。
在此构思的系统还可以使用三维、红外、回声定位或热传感器来实现各种三维面部识别技术,以捕获关于面部形状的信息。然后,可以使用此信息来识别面部表面上的区别性特征,例如眼窝、鼻子和下巴的轮廓。
三维面部识别的一个优点是,它不会像其他技术一样受到照明变化的影响。它还可以从各种视角包括侧视图来识别面部。来自面部的三维数据点大大提高了面部识别的精度。三维研究通过开发先进的传感器得到增进,该先进的传感器可以更好地捕获三维面部图像。传感器通过将结构化的光线投射到面部来工作。高达十二个或更多个这样的图像传感器可被放置在相同的CMOS芯片上,每个传感器捕获光谱的不同部分。
即使是完美的三维匹配技术也可能对表情敏感。为此,以色列理工学院的一个小组应用了度量几何中的工具来将表达式视为等距。
另一种对象或面部识别方法是通过使用三个指向不同角度的跟踪相机来捕获三维图像;可以提供指向对象的前方的一个照相机,第二个相机指向侧面,第三个相机指向一个角度。然后,所有这些相机可以一起工作,以便实时跟踪对象的面部并能够进行面部检测和识别。
在此构思的系统可采用的另一潜在识别方法可利用标准数字图像或扫描图像中捕获的物体表面比如目标的皮肤的各种视觉细节。该技术可实现如下方法:绘制多个独特的线、图案和点将表面或人皮肤上的各种明显特征连接成比指纹更独特的数学空间表示
表面纹理分析的工作方式与面部识别非常相似。为一小块皮肤采取图像,称为皮纹。该块然后分解成更小的块。使用算法将该块转变成数学上可测量的空间,系统然后可以区分任何皱纹、毛孔和实际皮肤纹理。然后其可识别相同对之间的差异。
在某些情况下,可以通过使用热像仪来实现面部识别,通过该程序,可以将热像仪用于检测头部的形状,并且在某些情况下可以忽略诸如眼镜、帽子或化妆品之类的对象配件。与传统相机不同,热像仪即使在弱光和夜间条件下也可以捕获面部图像,而无需使用闪光灯和曝光相机的位置。在某些此类情况下,系统可以利用能够获取长波热红外(longwavethermal infrared,LWIR)的低灵敏度、低分辨率的铁电传感器。以这种方式,LWIR和常规视觉照相机的融合在室外探测器中具有更大的效果。但是,在各种室内应用中,视觉只能达到足够的精度。
在某些情况下,该系统还可以实现利用来自热像仪和常规照相机的图像。该方法可以通过结合热图分析多个面部区域和细节来合成单个图像,利用由人工智能和机器学习执行的交叉谱合成方法。然后,它可以包括将特定的热图像映射到相应的可见面部图像的非线性回归模型,以及将潜在投影投射回图像空间的优化问题。
在某些情况下,当将全局信息(即,整个面部的特征)与局部信息(即,有关眼睛、鼻子和嘴巴的特征)结合在一起时,这种方法会工作得更好。除了增强合成图像的可辨别性之外,面部识别系统还可以用于将热面部签名转换为精细的面部可见图像。
然后将理解,通过与不同技术结合,执行多个这样的物体或面部识别方法可大大提高准确度。
组合技术相对于其他系统具有优势。主要是,组合技术对表情变化(包括眨眼、皱眉或微笑)总地来说更不敏感,并且能够补偿八字须或胡须的增长以及眼镜的出现。
本公开的发明人还已经认识到,ASR和STT的改进可以改善语音控制系统的准确性、适用性和通用性。
特别是,由于经常在公共场所中出现的各种因素,部署在公共场所中的社交机器人对ASR提出了有挑战性的任务。
传统的VAD系统通常仅在单一语言模型上训练,而模型仅在低噪声环境中记录,因此,这些模型仅在低噪声情况下提供可接受的语音识别,并且随着噪声水平的提高而急剧退化。此外,常规系统通常从记录的原始音频波形中仅提取单一类型的梅尔频率倒谱系数(Mel Frequency Cepstral Coefficient,MFCC)特征,从而导致无法适应多种类型或背景噪声的语音识别。在真实世界中,可能依赖VAD接口的用户经常会遇到使先前的VAD系统不适用的范围广泛的噪声水平和噪声类型。
在高噪声情况下可能使用VAD和语音转文本系统的情况示例可以包括在机场、车辆或工业环境中使用机器人。然而,在许多用户可能只是暂停使用VAD设备直到退出此类环境条件的情况下,某些用户可能依赖于此类设备,以及可能要求VAD甚至在这些环境中执行。示例可以包括患有退行性神经疾病的用户等,这些用户可能无法退出环境或使用其他方式进行交流。VAD系统的改进将允许更多用途,并增强用户依赖所述系统的能力。此外,在嘈杂条件下增加VAD系统的可靠性还可以允许在以前不兼容的系统中使用另外的通信和语音命令敏感系统,例如车辆系统、商业环境、工厂设备、机动船、飞机控制系统、驾驶舱等。
然而,VAD系统的改进也将改善此类系统甚至在安静情况下的性能和准确性,例如用于智能家居、智能家电、办公环境等。
本文设想了通过提供具有多个模型的系统来在这种条件下提供改进的ASR性能的各种方法,每个模型利用具有不同的对应SNR和变化的背景条件的各种语言模型来训练。
为了实现这些方法,在此构思了一种利用已知VAD系统的系统,该系统从用户接收原始音频波形,在本地计算设备(即机器人)上执行VAD分类,并将结果发送到基于云的AI的平台。可以如下描述该流程:用户与机器人讲话,该机器人包括麦克风、处理电路以及包含用于处理电路完成各种任务的指令的非暂时性计算机可读介质。
使用机器人,将音频记录为原始音频波形;VAD系统转换原始音频波形并分类为语音或非语音;然后,将语音音频波形发送到基于云的AI平台200进行进一步的语音处理,AI平台确定特定的背景噪声,并将原始音频波形与已记录的具有类似背景噪声条件的特定语言模型进行匹配。然后,分类器将原始音频波形与用于训练具有特定匹配背景噪声条件的分类器的一个或多个特定语言模型进行比较,以提高特定语音转文本或语音激活检测的准确性。
换句话说,在此构思的系统可以利用具有故意背景噪声的特定语言模型来训练ASR系统,其中,在训练过程中,系统可以具有与之关联的基本事实输入,其中,基本事实与各种背景条件相关联地被输入。例如,可以基于AiShell-1中文语音语料库和Kaldi ASR工具包记录语言模型,在该语言模型上覆盖典型的机场、工厂、高速公路、车辆、机械、风、办公室对话的背景噪声。在这种情况下,系统可以将每个特定的背景覆盖保存为分离且有区别性的模型,以便在记录的原始音频波形之间进行比较,以对原始音频波形执行ASR。
在一些实施方式中,可以在相似的各种条件背景噪声覆盖中利用各种基本语言模型,以增加系统的鲁棒性。换句话说,AiShell-1中文语言模型可以在具有各种背景噪声情况的多个环境中以多个关联的SNR进行记录,其中每个记录与基本事实输入相关联,并且其中每个记录都保存为独立的语言模型,然后可以将另一种语言模型(例如英语VoxForgeTM)类似地记录在另一相似对应组的背景噪声水平、变化的环境中,具有相关联的背景噪声覆盖等,使得提供具有大量相关联SNR、环境等的多个语言模型。
系统然后可以利用电子开关,该电子开关可以比较机器人的周围环境的背景噪声来确定上述最佳语言模型,该最佳语言模型已被记录或具有适当的SNR和相关联背景环境,从而利用如下特定语言模型执行ASR,该特定语言模型具有最紧密匹配本地系统检测的当前位置的背景噪声和SNR水平。
有若干因素会影响在有挑战情况下的ASR性能。在该情况下的性能通常由亚洲语言的字错误率(word error rate,WER)或字符错误率(character error rate,CER)来量化。这些因素可以包括以下因素。
词汇:语言模型的难题对性能有显著的反作用。
麦克风距离:讲话者离麦克风越远,特别是在声活跃房间内,会导致显著降低的性能。
噪声:影响ASR性能的最大因素之一是噪声水平,通常量化为信噪比(SNR)。
混响:高度混响的声学环境尤其具有挑战性。混响时间通常以T60来量化,或房间内声音衰减60dB所需的以秒计的时间。
为了说明现有技术的局限性,记录了来自各种现实环境的原始语音,并跟踪了相关联的噪声条件,其中某些部署,并测量了噪声条件,特别是与上表相似地测量的信噪比(SNR),并与其他公知条件和环境的SNR进行比较。
机器人的公共部署在相对安静的办公室通常在15-20dB SNR运行,在非常混响的环境中在喧闹的贸易博览会在5-7dB运行。这与例如SNR为约20dB的基于家庭的社交机器人比如AlexaTM或Google HomeTM形成对照。应理解,许多ASR系统在纯净或20dB SNR语音下执行得非常好,然而超过20dB开始恶化,且在10dB SNR或甚至超过该值会表现出相当大的误差。
输入的语音被机器人接收时其特征会被特征提取模块提取。基于提取的特征和从条件分类器接收的条件,开关可在单条件ASR模型0、单条件ASR模型1,……,单条件ASR模型N中切换。使用最佳ASR模型,可输出文本以用于显示和/或命令机器人根据识别的命令执行动作。
各种机器人组件、块或部分可以具有模块化配置,或由分立的组件组成,但通常仍可称为“模块”。换句话说,本文提到的“模块”可以是或可以不是模块化形式。
为了进行比较,可以使用AiShell-1中文语料库进行初始评估,其中AiShell-1具有使用高质量麦克风的语音记录。
到目前为止,可以仅使用已使用的AiShell语料库的178小时开源部分来操作该系统。如果需要,可以获取每记录设置高达718额外小时的数据。然后可以理解,AiShell-1带有预先分区的训练、开发和测试集:来自336、40和20个扬声器,118664、14326和7176个发音,或者148、18和10小时。然后,可以将这些划分用于所有训练和测试。
为了产生噪声数据,可以将记录的噪声添加到相对干净的AiShell-1数据中以产生噪声数据,例如约35dB SNR。这给予了系统即时的大噪声数据语料库,而在现场收集这些是有挑战性的。然后将理解,为了结合诸如自动编码器之类的其他技术来实施本发明的方法,有时需要有来自相同数据的干净样本和损坏样本。
然后可以从20dB到0dB利用5dB的SNR增量来训练系统,其中,然后可以对噪声水平进行大小调整以获得跨语料库样本所需的平均SNR。
在本文所讨论的实施方式中,对于整个语料库,针对给定的SNR仅使用一种噪声水平,例如SNR中可能存在发音与发音之间的差异,然而平均值是期望的SNR。
对于给定的平均SNR条件,整个发音的SNR标准偏差可以为5dB。
然后可以从部署在真实世界环境中的社交机器人记录用于添加到语料库的基本噪声,例如,当前系统利用了在2018年2月举行的世界移动通信大会贸易展上部署的社交机器人。
该噪声比生成的白色或粉色噪声表现出更真实的噪声,因此通常是有利的。
在该实现中,从原始记录中提取音频的一分钟部分,其中仅存在背景和环境语音,即没有前景语音。
对于训练和测试语料库中的每个发音,将随机的一分钟片段用作噪声部分,以确保所添加的噪声中的随机性。
在一些实施方式中,开源Kaldi中文模型可以用作另一种替代语言模型。该模型使用Kaldi TDNN的链变体,以40维滤波器组输出作为特征,而不是MFCC。不使用基音特征,也不将i矢量用于讲话者自适应。可以在2000多个小时的语音上训练声学模型,并且可以在1TB新闻语料库上训练语言模型。
然后将理解,在某些情况下,与用于许多其他语言的单词错误率(word errorrate,WER)相比,使用字符错误率(character error rate,CER)更有意义,这是用于中文的标准量度。
图7A示出了各种CER,对干净和噪声数据使用各种第三方API和开源模型。可看出对于机器人部署的示例SNR范围以及10%CER处的虚线和15%CER处的虚线。对于超过10-15%的CER,系统可用性会是个问题。
将理解,这些模型在干净的语音和低噪声中表现非常好,但是CER随着较高的噪声而显著增加,尤其是在SNR低于15dB的情况下。模型随着更多噪声而恶化的程度可完全取决于系统。然而,考虑到性能在机器人的操作区域中会下降,因此值得研究一些方法,例如本文中构思的方法,以降低小于15dB的SNR的错误率。
如上所述,本文中构思的系统通过将原始音频波形与已经在噪声数据上而非在干净数据上训练的语言模型进行比较来执行ASR。
本文讨论的特定实验利用了AiShell和Kaldi语言模型的组合,其利用单声道,然后是基于三音素的GMM模型,首先使用MFCC加增量,然后使用多帧LDA加MLLT,然后是使用fMLLR进行的讲话者自适应,最后包含针对讲话者特征的各种在线iVector的DNN“链”模型。
为了与处理各种文本的第三方ASR API进行公平比较,重要的是使用比仅在AiShell数据上训练过的更通用的语言模型,这是Kaldi配料中的默认模型。与仅在ASR训练语料库上训练的语言模型相比,此类通用语言模型的复杂性明显提高,从而导致ASR准确性降低。
为了克服这个问题,系统也可以配置为利用搜狗中文新闻语料库,该语料库包含大约600GB的文本。然后可以使用Witten-Bell平滑和适当的修剪来建立三字母语言模型,以在计算上可行,而不会牺牲太多性能。
在一些实施方式中,然后可以使用原始的148小时的AiShell-1训练集,再加上在各种噪声水平下的训练集的噪声版本(导致148*n数目的总训练集小时数)来训练各种声学比较模型。
在某些情况下,高分辨率MFCC优于标准分辨率。MFCC(两种分辨率)优于i-vector。基音特征可以在整个面板上都是有用的。每类别多于2000个训练样本可带来一些改进。
对于SNR小于或等于15dB的情况,定制训练的模型的表现在统计上明显优于现有引擎中最好的。在20dB SNR时,结果差异不明显。对于清晰的语音,现有引擎的性能要好得多,考虑到这些模型背后的大量时间和数据,这是可以预期的。
在本文构思的一些实施方式中,系统可以使用到Kaldi的gStreamer接口以及用于该接口的关联的集装箱图像,以在适当的情况下快速部署Kaldi训练的模型。
系统利用该基础结构在现场的各种社交机器人上部署自定义模型。使用Kaldi工具箱的许多优点之一是部署所需的工作量少,因此活动可以集中在模型开发上。
该系统还可以实现其他语言模型,例如:英语是Librispeech语料库,日语是CSJ语料库,这二者建立了Kaldi配料;1000小时的AiShell-2语料库。
该系统还可以实现麦克风阵列的各种变型,特别是用于本地计算系统或社交机器人中,这些社交机器人被部署在具有多个可能的、有时是同时的讲话者的公共空间中。通过使用这样的多个麦克风所带来的这种改进允许更好地检测现场讲话者,并且还允许系统将注意力集中在该讲话者上,这在仅使用单个麦克风的系统中是无法实现的。
衡量ASR性能的典型方法是单词错误率(WER),或者将语音识别器的单词字符串转换为人工注释器生成的“基本事实”单词字符串所需的单词插入、删除和替换的最少量。对于单词的复杂字符更少的亚洲语言,有时可以使用字符错误率(Character Error Rate,CER)。
在量化噪声水平方面,通常使用信噪比(SNR)。SNR是波形语音部分的平均能量(以dB为单位)与背景噪声的平均能量(以dB为单位)之差。“干净”语音的SNR通常为30dB或更高;社交机器人的噪声部署的SNR范围从20dB到5dB。
已认识到,ASR系统通常在大量训练语音、几百个小时或更多上进行训练,其中人类收听者注释了每个训练发音的单词字符串的正字法标注,且其中一般在SNR最佳的制作室中进行训练语音的记录。然后使用一组测试语音以及正字法标注来评估系统的性能,该一组测试语音和正字法标注通常来自于相同数据体然而是该数据的完全不同的子集。来自训练集的发音或甚至讲话者都不应在测试集中,反之亦然。
一种叫作“多样式训练”的技术包含在来自各种噪声条件的语音样本上训练单个ASR模型。另一种叫作“单样式训练”的技术包含在各种噪声条件中每个噪声条件上训练单个ASR模型,然后选择在运行时间使用哪个模型。单样式训练表现比多样式训练要好,这不奇怪,这是因为每个单样式模型的训练集的可变性更少。
然而,要使用单样式模型,必须首先能够检测发音具有什么条件或噪声水平,从而选择正确的模型。然后需要在语音发音开始就尽快进行噪声水平的分类,以避免在用户得到回应方面发生额外的延迟。
在一些实施方式中,系统可被配置成利用单条件训练来进行ASR。
为了使用单条件模型,必须确定条件或噪声水平。
根据本发明各个方面的ASR的技术在运行期间通过执行以下步骤来进行:
将到来的语音分类成若干条件类别之一;
从所选条件类别中选择可在语音上训练的单条件模型;以及
使用所选单条件模型执行ASR,并提供答案。
为了构建执行此ASR的系统,可以将该系统配置为:
·根据实际部署条件的样本定义一些噪声条件;
·采集大量语音数据,并针对每种噪声条件,在相同噪声水平下添加适当量的噪声,以实现所需的平均SNR或其他度量标准;
·建立噪声分类器以将到来的语音分类为条件;以及
·为每个条件训练单条件模型。
·在噪声分类器而言,至少有两种可能的方式来生成各种条件,其中包括:
·使用可以添加噪声时指定的条件;以及
·使用无监督学习将样本聚类为一组新的定义的“条件”。
·又有几种方法可以实现此目的:
·使用众所周知的无监督学习算法(例如k均值聚类),使用欧几里德距离度量,将特征帧聚类/分类为条件;
·使用这种无监督算法通过聚类生成基本事实,然后使用诸如卷积神经网络(CNN)的有监督学习算法将帧分类为条件;以及
·使用诸如CNN之类的监督算法来获得条件类的初始估计,然后进行以下迭代:
·使用初始SNR类别作为基本事实gO,从模型mO开始,得出对类的预测pO;
·使gl=pO;其中“新的”基本事实是从最后一步预测的;
·用gl作为基本事实训练模型,导致给出预测的pI的模型ml;
·保存经过训练的模型m 1和预测pl;
·重复2和3,设置gn=p(n-1)并训练模型以获得mn和pn。
·对于所有发音,当pn=p(n-1)时停止迭代,或者直到超过某种迭代计数器停止迭代。
在一些实施方式中,构思了一种实现,其中可以对语音波形执行成分“特征提取”,其产生周期矢量或“特征”或代表语音波形重要方面的数字,其中向量的周期通常为每10毫秒。
然后可以将来自特征提取的特征向量流提供给“条件分类器”,该“条件分类器”进行提取并产生输入语音波形的噪声条件的运行估计。该估计是N个可能的符号中的1个,每个符号对应于一个噪声条件,其中N是条件的数量。
然后,可以将输入特征向量流提供给一个或更多个单条件ASR模型,该模型采用特征向量并生成与语音波形中所讲内容相对应的输出文本字符串。
然后,将来自特征提取的特征向量流提供给组件开关,该组件开关将特征向量导向与已分类的噪声条件相对应的相关单条件ASR模型。
用于创建多模型ASR系统的过程可以包括一个或更多个步骤,包括:根据实际的预期部署条件定义Nc个条件。
例如:对于Nc=6个条件,干净,即不增加噪声,20dB SNR,15dB SNR,10dB SNR,5dBSNR,0dB SNR。在这种情况下,系统可以配置为从语音数据的语料库C开始,其中C包含Nu个语音发音,其中,语料库C可以分区为3个不同的集合:具有Nu个训练发音的训练集ctrain,具有Nu个德伊发音的开发集Cdev,以及具有Nu个测试发音的测试集Ctest。在这样的实施方式中,语料库C中的每个发音可以被分类到ctrain Cdev或Ctest中的一个且仅一个中。
用于创建多模型ASR系统的过程然后可以包括以下步骤:人工修改语料库C以创建Cc,或针对每个条件c被条件c损坏的初始语料库C,其中Cc与C具有相同数目Nu的发音。然后将注意到,Cc中的每个发音将与C中的相应发音具有相同的长度,但添加了噪声或其他损坏。这种修改可以简单地以适当的水平添加噪声,或者创建其他线性或非线性失真,以对真实世界部署条件进行建模。
用于创建多模型ASR系统的过程可以包括以下步骤:针对每个条件c,仅使用Ce_train,即Ce的训练部分,来训练单条件ASR模型NIc。
用于创建多模型ASR系统的过程可以包括训练条件分类器的步骤,该条件分类器将在运行时获取特征向量流,并返回正在使用哪个Ne条件的运行估计。
对于训练条件分类器的步骤,有几种可能的选择,包括:首先,使用众所周知的无监督学习算法(例如k均值聚类),使用欧几里德距离度量,将特征帧聚类/分类为条件;第二,第三;使用这种无监督算法通过聚类生成基本事实,然后使用诸如卷积神经网络(CNN)之类的监督学习算法将帧分类为条件;或第四,使用CNN之类的监督算法来获得条件类的初始估计,然后进行如下迭代:
·使用初始SNR类别作为基本事实gO,从模型mO开始,得出对该类的预测pO;
·使gi=pO;“新的”基本事实是从最后一步预测的;
·用gi作为基本事实训练模型,得到给出预测的pl的模型mi;
·保存经过训练的模型m 1和预测pl;
·通过设置gn=p(n-I)并训练模型来重复这些迭代以获得mn和pn;以及
·对于所有发音,当pn=p(n-I)时,或直到超过某种迭代计数器,停止迭代。
在一些另外的实施方式中,该系统可以用于改善噪声性能,而其他条件可以用于训练具有在现场可预期的条件的模型。
基本训练范式之一是多条件训练或多样式训练,其中可以在部署中看到的各种条件下对模型进行训练,并可能加权各种条件以反映实际部署环境。
如会预期的那样,通过在一个模型中混合各种部署条件,多条件训练在已经具有挑战性的问题之上引入了重大的额外可变性。另一种选择是单条件训练,其中只能在特定条件下训练模型,从而消除了可变性元素,并可能导致更高的性能。
为了利用单条件训练,可以在模型中确定选择以用于语音到文本提取。根据本文公开的各个实施方式的VSR系统还能够支持多种模型的计算需求,例如,存储器,CPU等。
如上所述,一旦生成了多个模型,就可以利用该系统自动确定适当的模型以与原始记录的波形进行比较。
为了实现这一点,可以将系统配置为比较两个或更多个架构以进行条件检测。为了实现这一目标,系统可以应用前馈深度神经网络(DNN)SNR分类模型和一维卷积神经网络(CNN)模型。前馈模型可以包括4个隐藏层,其中训练时可以应用丢弃正则化。
为了减轻边缘效应,系统可以应用窗口化功能以将每个中心帧与之前或之后的相等数量的相邻帧连接起来。然后,CNN模型也可以采用窗口化的帧作为输入,其可以包括两个交织卷积的且最大池化的层。丢弃正则化也可以类似地以这种方式用于训练。
关于特征,系统可以用来平衡利用已经针对ASR计算的现有特征。第一个是低分辨率和高分辨率MFCC的基于帧的变体,第二个是基于发音的i矢量。
然后,该系统可用于利用具有增量和双增量的标准基于帧的MFCC来训练前馈深度神经网络(DNN)SNR分类模型。在一些实施方式中,也可以添加基音特征(维度3),因为这是中国ASR的标准做法。因此,针对增量和双增量每帧的总特征向量为13MFCC+3基音乘以3,总计48。
基于MFCC的条件准确度度量可以首先在逐帧的基础上计算,然后在每发音的基础上计算。有两种方法可用于从逐帧估计生成发音类估计:
第一种方法是softmax:其将基于帧的softmax分数视为概率,并直至当前帧在给定估计的情况下计算类的联合概率。
第二种方法是通过多数投票:其选择作为最多逐帧投票的类。这样的投票技术对于模型组合技术是有用的。
为了生成发音水平的类估计,系统可以使用整个发音,也可以使用仅使用发音的第一部分的各种值(例如250ms,500ms)。这对于实时操作很重要,在实时操作中,为了消除额外的延迟,可以利用系统来估计噪声条件,从而尽早将ASR模型选入发音。
系统可以利用的另一个特征可以是i矢量,其已显示为对于讲话者验证和讲话者与ASR适应是成功的。i矢量是单矢量,用于编码有关讲话者和会话的相关信息。
在一些实施方式中,与i矢量一样,每类的各种训练发音或噪声和/或其他条件是在高分辨率下计算的(40而不是通常的13)。MFCC是速度和音量扰动的,从而降低对讲话速率和音量的敏感度。在一些这样的实施方式中,i矢量的维度是100。
对于后处理,可以研究发音中在任何时间步的i矢量的有效性,并且可能不需要应用MFCC后处理所用的滑动窗口方法。i矢量是在在线模式下计算的,因此从发音起头开始,对发音的i矢量具有运行估计。
在一些实施方式中,可以实施条件准确度测量,其可以基于诸如架构(前馈DNN或CNN),基本特征(MFCC或i矢量),是否有基音特征,MFCC矢量大小(标准13或“雇佣”40),训练数据量和MFCC组合方法(softmax或多数投票)。
研究了MFCC组合方法的有效性,因为i矢量是基于发音而不是基于帧的。由于softmax在许多功能上胜过多数投票,因此可以在以下示例中使用softmax。
在一些实施方式中,通过每类具有多于2000个训练样本可以实现一些改进。
然后将意识到,所实现的98%的错误是将条件错误分类为“隔壁”条件,例如,对于10dB的基本事实选择5dB或15dB。此类错误的总体影响可能大大低于例如选择20dB或选择干净而不是5dB的结果。
在一些实施方式中,ASR系统可以使用AiShell Kaldi配料,其利用单声道,然后是基于三音素的GMM模型,首先使用MFCC加增量,然后使用多帧LDA加MLLT,然后是使用fMLLR进行的讲话者自适应,最后包含针对讲话者特征的在线iVector的DNN“链”模型。
在一些实施方式中,系统可以仅利用从语料库训练的语言模型(LM),这使得与第三方ASR引擎中使用的大型通用LM相比复杂度显著降低。
一方面,这在任何性能比较中会强烈偏袒定制训练的系统;另一方面,从基本性能观点来看,针对应用域制作定制LM的能力相对于“黑盒”方式来说可以是定制训练ASR的较大优势,且可以被忽略。
多条件,仅限讲话者:可以使用多条件训练,即可以在所有噪声条件下训练单个模型。用于讲话者适应的“讲话者”可以仅是语料库讲话者。
多条件,讲话者和条件:与上述相同,但“讲话者”可以是讲话者和条件的组合。
单条件,基本事实:有若干模型,每种条件一个,并且假定实际噪声是已知的。
单条件,预测的,整个发音:存在若干模型,在每种噪声条件上训练一种模型,且可使用整个发音通过上述技术从语音估计条件。
单条件,预测的,发音第一部分:与以上相同,但仅适用发音的前250ms。这对于实时部署来说可以是更实际的。
在某些情况下,例如对于小于15dB的SNR,定制训练模型的性能要比现有技术模型稍好。所执行的多条件训练以及对于大于5dB的SNR的单条件训练,对于大部分使用情况来说,从训练和运行时间角度来说,使用单条件训练的额外努力目前看起来没有益处。然而,相对于仅讲话者来说,使用讲话者+条件确实在低SNR情况下提供了一些小小益处。
使用条件识别的单条件结果与从假设噪声水平先验地已知的单条件模型得到的结果相比要么相似要么更好。更引人注目的是,使用发音的前250ms与使用整个发音相比,ASR性能通常相同或更好。尽管有如下事实,该事实是可预期的,即,使用前250ms与使用整个发音(76%v.90%)相比,条件分类准确度更低。
具有所预测的噪声条件的更好的性能可以由SNR的逐发音的可变性来解释。从上面可想到,对于每个平均SNR条件,由于语料库信号水平的内在可变性,发音特定的SNR的标准偏差是5dB。因此,条件检测器可针对特定发音选择特定SNR,这与针对条件使用平均SNR相比可以更准确。特别是考虑到以下事实时这更有道理:在5dB标准偏差和5dB阶跃情况下,60%的发音的SNR将更接近另一类别的平均值而不是其自身的平均值。
相似地,这可以解释具有更低条件分类准确度的更好的ASR性能。由于针对特定平均SNR类的大部分发音可实际上具有更接近另一类的发音特定SNR,因此较高分类准确度会破坏ASR性能就合乎道理了。
发音特定SNR的高可变性表明,在发音SNR上而不是平均SNR上训练条件分类器会有一些好处。
在一些实施方式中,可以为AiShell-1语料库的开源部分提供148个小时的训练数据,然而,可以提供高达718个小时的另外的AiShell数据。
在一些实施方式中,通过将语音数据聚类为对的类别,可为系统提供改善的单条件性能。
其他语言:在一些实施方式中,可以扩展系统以将具有Libri-语音语料库的英语和具有CSJ语料库的日语包括在内,这两者均已建立了Kaldi配料。
去噪自动编码器:如前所述,去噪自动编码器(de-noising auto-coder,DAE)在特征空间降低噪声影响方面已取得成功。在本发明的一些实施方式中,系统可以结合所描述的其他技术(例如多条件训练)使用去噪自动编码器。
麦克风阵列:特别是对于公共场所中具有多个、有时同时的可能讲话者的社交机器人,有用的做法是使用多个麦克风来检测现场讲话者,并且将注意力集中在该讲话者上,与单个麦克风相比降低了有效SNR。
视听语音识别:在一些实施方式中,特别是对于小于20dB的SNR,可以提供具有照相机的系统,其中还可以在视觉语音捕获上训练系统,其中视听语音识别或“唇读”可以提高ASR性能,有时是大幅提高ASR性能。
在本文构思的系统中,通过识别噪声条件能够实现显著的ASR和STT准确度,使得可选择最佳相关联的语言模型用于原始波形比较,通过这样做系统能够以高于90%的准确度识别噪声条件,且当将该预测添加到ASR系统时,整个性能与系统已先验地已知平均SNR的情况相比相同或更好。针对所有的已执行多条件训练以及单条件训练,然而SNR非常低,少于10dB。
在一些实施方式中,原始音频波形可以被记录在本地机器人上,并且其中方法还包括将原始音频波形发送到远程服务器的步骤,其中,远程服务器包含计算神经网络。
在另外的实施方式中,本领域的技术人员将理解,该系统实际上可以使用任何路径或运动计划技术,只要构思的路径或运动也基于由机器人上的一个或更多个传感器确定的环境限制或参数。
基本的运动计划问题是产生连续运动,该连续运动连接起始配置S和目标配置G,同时避免与已知障碍物发生碰撞。机器人和障碍物的几何形状可以在2D或3D工作空间中描述,而运动可以表示为(可能是高维)配置空间中的路径。
一种这样的运动计划可以包括配置空间方法。配置描述了机器人的姿势,配置空间C可以是所有可能配置的集合。
例如:
·如果机器人是在二维平面(工作空间)中平移的单点(零尺寸),则C是平面,并且配置可以使用两个参数(x,y)表示。
·如果机器人是可以平移和旋转的2D形状,则工作场所仍为二维。然而,C是特殊的欧几里得群SE(2)=R2{\显示样式\时间}SO(2)(其中SO(2)是2D旋转的特殊正交群),并且配置可以使用3个参数(x,y,θ)表示。
·如果机器人是可以平移和旋转的实体3D形状,则工作空间是3维的,但是C是特殊的欧几里得组SE(3)=R3{\显示样式\时间}SO(3),并且配置需要6个参数:用于平移的(x,y,z)和欧拉角(α,β,γ)。
·如果机器人是具有N个旋转关节(且没有闭环)的固定基座操纵器,则C为N维的。
可以由系统实施的一种这样的运动计划方法可以包括自由空间方法。避免与障碍物碰撞的一组配置被称为自由空间Cfree。C中Cfree的补足物被称为障碍或禁止区域。通常,显式计算Cfree的形状非常困难。然而,测试给定配置是否在Cfree中是有效的。首先,正向运动学确定机器人几何形状的位置,且碰撞检测测试机器人的几何形状是否与环境的几何形状发生碰撞。
可以由系统实施的一种这样的运动计划方法可以包括目标空间方法。在这种方法中,目标空间是自由空间的线性子空间,它表示我们希望机器人移动到的地方。在全局运动计划中,目标空间可以由机器人的传感器观察到。然而,在局部运动计划中,机器人在某些状态下无法观察目标空间。为了解决此问题,可以将机器人配置为移动通过若干虚拟目标空间,每个虚拟目标空间都位于可观察区域内(机器人周围)。虚拟目标空间被称为子目标。
可以由系统实施的另一种这样的运动计划方法可以包括障碍物空间方法。障碍物空间是机器人无法移动到的空间。障碍空间与自由空间并不相反。
可以由系统实施的另一种这样的运动计划方法可以包括危险空间方法。在这种方法中,危险空间是机器人可以但不希望移动到的空间。危险空间既不是障碍物,也不是自由空间。例如,在易碎物品或人周围的舒适操作区域内,树林中的泥坑和工厂的油腻地板可被视为危险区域。如果机器人找不到完全属于自由空间的轨迹,则它必须经过危险空间。在某些情况下,在具有时间/能量约束的运动计划中,机器人可能偏向于采取危险空间中的短轨迹,而不是自由空间中的长路径。
可以由系统实施的另一种此类运动计划方法可以包括一种算法方法:低维问题可以通过将网格覆盖在配置空间之上的基于网格的算法或计算Cfree的形状和连通性的几何算法来解决。关于相似的过去约束引入机器学习和历史数据库,在复杂约束下针对高维系统的精确运动计划降低了计算量。
在这种情况下,可以以有效的方式使用势场算法。在某些情况下,可以利用基于采样的算法来避免局部极小值的问题,并很快解决许多问题。特别地,这些类型的映射方法可以包括对于使用AI来说最佳的可确定的成功或失败的概率,因为随着花费更多的时间训练样本库,失败的概率降低到零。基于采样的算法目前被认为是高维空间中运动规划的最新技术,并且已应用于具有数十甚至数百维的问题(机器人操纵器,生物分子,动画数字字符和有腿机器人)。
可以由系统实施的另一种这样的运动计划方法可以包括基于网格的搜索方法。基于网格的方法将网格覆盖在配置空间上,并假定每个配置都由一个网格点标识。在每个网格点处,机器人可被允许移动到相邻网格点,只要它们之间的线完全包含在Cfree内。应理解,该线可以用碰撞检测传感器进行测试,或者替代地在虚拟环境中进行测试。这使一组动作离散化,并且使用搜索算法(例如A*)来查找从起点到目标的路径。
这些方法需要设置网格分辨率。使用较粗的网格可以更快地进行搜索,但是该算法将无法找到通过Cfree狭窄部分的路径。
传统的基于网格的方法会产生航向变化受限于多个给定基本角度的路径,通常会导致次优的路径。任何角度的路径规划方法都是通过沿网格边缘传播信息来找到较短的路径,以便快速搜索,而不会将其路径约束到网格边缘,从而找到较短的路径。
例如在路径跟随期间机器人关于配置空间的知识变化或配置空间自身变化时,基于网格的方法通常需要重复搜索。增量启发式搜索算法通过利用以前相似路径计划问题的经验来快速重新计划,从而加速其对当前这个的搜索。
可以由系统实施的另一种这样的运动计划方法可以包括基于间隔的搜索方法。该方法类似于基于网格的搜索方法,不同之处在于它可以生成覆盖整个配置空间而不是网格的铺路。铺路被分解成两个子铺路X-,X+,它们由盒子组成,使得
表征Cfree相当于解决集合反转问题。因此,当无法用线性不等式描述Cfree时,可以使用间隔分析,从而具有确保的封闭性。
因此,允许机器人在X-中自由移动,并且不能超出X+。对于这两个子铺面,都构建了一个邻居图,并且可以使用Dijkstra或A*等算法找到路径。当路径在X-中可行时,在Cfree中也可行。当X+中从一个初始配置到目标不存在路径时,可以确保在Cfree中不存在可行的路径。对于基于网格的方法,间隔方法不适用于高维问题,这是因为要生成的盒子数量相对于配置空间的维度呈指数增长。
可以由系统实施的另一种这样的运动计划方法可以包括基于奖励的算法方法。基于奖励的算法假设在每个状态、位置和内部状态(包括方向)机器人的都可以在不同的动作之间进行选择。然而,每个动作的结果是不确定的。换句话说,结果部分是随机的,部分是在机器人的控制下。机器人到达目标时会获得正向奖励,如果与障碍物碰撞,则会得到负向奖励。这些算法试图找到最大化未来累积奖励的路径。马尔可夫决策过程(Markov decisionprocess,MDP)是一种流行的数学框架,已在许多基于奖励的算法中使用。与其他基于奖励的算法相比,MDP的优势在于它们可以生成最佳路径。MDP的缺点是它们将机器人限制为从一组有限的动作中进行选择。因此,类似于基于网格的方法,路径并不平滑。模糊马尔可夫决策过程(Fuzzy Markov decision process,FDMP)是MDP的扩展,它使用模糊推理系统生成平滑路径。
可以由系统实施的另一种这样的运动计划方法可以包括人工势场。在一些这样的实施方式中,一种方法是将机器人的配置视为势场中的点,该势场组合了对目标的吸引力与对障碍物的排斥。生成的轨迹作为路径输出。这种方法的优点在于,只需很少的计算即可生成轨迹。然而,它们可能会陷入势场的局部最小值中,从而无法找到路径,或者会找到非最佳路径。可以将人工势场视为类似于静电势场(像点电荷一样对待机器人)的连续性方程,或者可以使用一组语言规则来离散化通过该场的运动。
可以由系统实现的另一种这样的运动计划方法可以包括基于采样的算法方法。基于采样的算法通过采样配置的路线图来表示配置空间。基本算法对C中的N个配置进行采样,并保留Cfree中的配置以用作里程碑。如果线段PQ完全在Cfree中,则构建一个连接两个里程碑P和Q的路线图。另一方面,使用冲突检测来测试Cfree中的包含物。为了找到连接S和G的路径,将它们添加到路线图中。如果路线图中的路径链接了S和G,则计划者成功,并返回该路径。如果不是,则原因不确定:或许是Cfree中没有路径,或者计划者没有采样足够的里程碑。
这些算法适用于高维配置空间,因为与组合算法不同,它们的运行时间不(明确)与C的维度呈指数关系。(通常)它们也更容易实现。它们是概率完全的,这意味着随着花费更多的时间,它们将产生解决方案的概率接近1。但是,他们无法确定是否不存在解决方案。
在关于Cfree的给定基本可见性条件下,已经证明,随着配置数量N变得更高,上述算法找到解决方案的概率以指数方式接近1。可见性并不明确取决于C的维度;可以有一个具有“良好”可见性的高维空间或一个具有“差”可见性的低维空间。基于样本的方法的实验成功表明,最常见的空间具有良好的可见性。
通常仅测试邻近的里程碑对之间的分段、而不是测试所有对之间的分段要快得多。非均匀采样分布试图在改善路线图连通性的区域中放置更多里程碑。准随机样本通常比伪随机样本能更好地覆盖配置空间,尽管最近的一些工作表明与采样分布的影响相比,随机性源的影响极小。
可以通过允许弯曲的视线,例如通过在阻碍两个里程碑之间的道路的障碍物上爬行,来大大减少解决给定问题所需的里程碑数目。
如果仅需要一个或几个计划查询,就不一定总需要构建整个空间的路线图。针对这种情况,树生长变体通常更快。
如果运动计划者在有限时间内产生解决方案或正确地报告没有解决方案,则说运动计划者完整。大多数完整的算法都是基于几何的。完整计划者的性能通过其计算复杂性来评估。
分辨率完整性是如果基础网格的分辨率足够精细,则保证计划者可以找到路径的属性。大多数解决方案完整的计划者都是基于网格或基于时间间隔的。分辨率完整计划者的计算复杂度取决于基础网格中的点数,其是O(1/hd),其中h是分辨率(网格单元一侧的长度),d是配置空间维度。
概率完整性是当执行更多的“工作”时,计划者无法找到路径(如果存在)的概率渐近地接近零的属性。若干基于样本的方法是概率上完整的。概率完整的计划者的性能通过收敛速度来度量。
不完整的计划者并不总是会产生可行的路径(在存在一个时)。有时,不完整的计划者在实践中做得很好。
以上详细描述了根据本公开一些实施方式在具有挑战性的声学环境里采用多模型自动语音识别的系统和方法。在此使用了具体例子来描述一些实施方式的原理和实现。
在以上实施方式中,可以将现有的功能元件或模块用于实现。例如,现有的声音接收元件可以用作麦克风;至少在现有通信设备中使用的耳机具有执行功能的元件;关于探测位置确定模块,本领域技术人员可以通过使用现有的技术手段,通过相应的设计开发,实现对探测点位置的计算;同时,位置调节模块是具有调节设备状态的功能的任何设备具有的元件。
在一些实施方式中,可以其上存储有指令的非暂时性计算机可读存储介质的形式来提供控制和/或接口软件或应用。例如,非暂时性计算机可读存储介质可以是ROM、RAM、CD-ROM、磁带、软盘、光学数据存储设备、诸如USB驱动器或SD卡之类的闪存驱动器等。
可以以诸如处理电路的数字电子电路,或者在计算机软件、固件或硬件(包括本文中公开的结构及其结构等同物)或以上一个或更多个的组合,实现本公开中描述的主题和操作的实施方式。本公开中描述的主题的实现方式可以实施为一个或更多个计算机程序,即计算机程序指令的一个或更多个部分,被编码在一个或更多个计算机存储介质上以由数据处理设备执行或控制数据处理设备的操作。
作为替代,或另外地,可以在人工产生的传播信号,例如机器产生的电、光或电磁信号上对程序指令进行编码,生成该信号以对信息进行编码以传送至合适的接收器设备,从而由数据处理设备执行。计算机存储介质可以是、或包括在计算机可读存储设备、计算机可读存储基板、随机或串行访问存储器阵列或设备或它们中的一个或更多个的组合中。
此外,虽然计算机存储介质不是传播的信号,但是计算机存储介质可以是以人工生成的传播的信号编码的计算机程序指令的源或目的地。计算机存储介质还可以是一个或更多个单独的组件或介质(例如,多个CD,磁盘,驱动器或其他存储设备)或包含在其中。因此,计算机存储介质可以是有形的。
本公开中描述的操作可以被实施为由数据处理设备对存储在一个或更多个计算机可读存储设备上或从其他源接收的数据执行的操作。
本公开中的机器人可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除硬件外,机器人还可以包括为所涉计算机程序创建执行环境的代码,比如构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时间环境、虚拟机或以上一个或更多个的组合的代码。机器人和执行环境可以实现各种不同的计算模型基础结构,比如网络服务、分布式计算和网格计算基础结构。
计算机程序(也称为程序、软件、软件应用程序、应用程序、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言,声明性或过程语言)编写,并且可以以任何形式部署,包括作为独立程序或一部分、组件、子例程、对象或其他适合在计算环境中使用的部分。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或更多个脚本)的文件的一部分中,专用于所讨论程序的单个文件中或多个协调文件中(例如,存储一个或更多个部分、子程序或部分代码的文件)。可以部署计算机程序以在位于一个站点上或分布在多个站点上并通过通信网络互连的一个计算机上或多个计算机上执行。
本公开中描述的过程和逻辑流程可以由执行一个或更多个计算机程序以通过对输入数据进行操作并生成输出来执行动作的一个或更多个可编程处理器来执行。处理和逻辑流程也可以由专用逻辑电路(例如,FPGA或ASIC)执行,并且装置也可以实施为该专用逻辑电路。
例如,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器,以及任何类型的数字计算机的任何一个或更多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的元件可以包括被配置为根据指令执行动作的处理器,以及一个或更多个用于存储指令和数据的存储设备。
适用于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器,介质和存储设备,包括例如半导体存储设备,例如EPROM,EEPROM和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。
为了提供与用户的交互,本说明书中所述的主题的实施方式可以以计算机和/或显示设备来实现,例如VR/AR设备、头戴式显示器(HMD)设备、平视显示器(head-updisplay,HUD)装置、智能眼镜(例如眼镜)、CRT(阴极射线管)显示器、LCD(液晶显示器)显示器、OLED(有机发光二极管)显示器、等离子显示器、柔性显示器或任何其他向用户显示信息的监视器,以及用户可通过其向计算机提供输入的键盘、定点设备(例如鼠标,轨迹球等)或触摸屏、触摸板等。
本说明书中描述的主题的实施方式可以在如下计算系统中实现:该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现进行交互,或者一个或更多个此类后端、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),网际网络(例如因特网)和对等网络(例如自组织对等网络)。
为了便于描述,可以根据功能将设备的组件划分为各种模块或单元,并分别进行描述。当然,当执行本公开的各种实施方式时,这些模块或单元的功能可以在一个或更多个硬件或软件中实现。
本领域技术人员应该理解,可以为方法、系统或计算机程序产品提供本发明的实施方式。因此,本发明可以采用全硬件实施方式、全软件实施方式或硬件软件实施方式混合的形式。此外,本公开的各种实施方式可以是在一个或更多个计算机适用存储介质(包括但不限于:磁盘存储器、CD-ROM、光盘等)上实现的计算机程序产品的形式,该计算机适用存储介质在其中包含计算机适用的程序代码。
已参考本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各种实施方式。应当理解,计算机程序指令实现了流程图和/或框图中的每个流程和/或框,以及流程图和/或框图中的流程和/或框的组合。可以将这些计算机程序指令提供给通用计算机,专用计算机,嵌入式存储器或其他可编程数据处理设备的处理器,以生成机器,以使由计算机的处理器或其他可编程数据处理装置执行的指令生成用于执行在流程图的一个或更多个流程和/或框图的一个或更多个框中指定的功能的设备。
这些计算机程序指令还可以存储在计算机可读存储器中,其可以引导计算机或其他可编程数据处理设备以指定的方式操作,使得存储在计算机可读存储器中的指令生成包含指令装置的制造品。指令装置执行在流程图的一个或更多个流程和/或框图的一个或更多个框中指定的功能。
也可以将这些计算机程序指令加载到计算机或其他可编程数据处理设备上,以在计算机或其他可编程数据处理设备上执行一系列操作和步骤,以使在计算机或其他可编程数据处理设备上执行的指令提供了步骤,该步骤用于执行根据流程图的一个或更多个流程和/或框图的一个或更多个框所指定的功能。
尽管已经描述了本发明的优选实施方式,但是本领域技术人员在得知基本的发明构思后就可以改变和修改这些实施方式。因此,所附权利要求应被理解为包括优选实施方式以及落入本发明范围内的所有替换和修改。
该描述仅用于帮助理解一些可能的方法和概念。同时,本领域技术人员可以根据本发明的构思来改变具体的实现方式和应用范围。因此,本说明书的内容不应被理解为限制本公开。
在前述方法实施方式中,为了简化说明,各个步骤被表示为一系列动作组合。然而,本领域技术人员将理解,本公开不受本文所述的特定步骤顺序的限制。
根据本公开的一些其他实施方式,可以以所叙述的特定顺序来执行任何处理的一些步骤,然而在适当的情况下,可以以可替代的顺序来执行一些步骤以实现相似的结果。另外,一些步骤可以被省略,或者可以以任何可能的适当方式在其他所述方法步骤之间添加或插入替代性所述步骤,这被本领域技术人员认为是适当的。
类似地,虽然在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这些操作,或者执行所有示出的操作,来实现期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,在上述实现中的各种系统组件的分离不应被理解为在所有实现中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以集成在单个软件产品中或打包成多个软件产品。
这样,已经描述了本主题的特定实施方式。其他实施方式在所附权利要求的范围内。在某些情况下,可以以不同的顺序执行权利要求中所述的动作,并且仍然实现期望的结果。另外,附图中描绘的过程不是必须需要所示的特定顺序或连续顺序来实现期望的结果。在某些实施方式中,可以利用多任务或并行处理。
另外,本领域技术人员还将理解,说明书中所描述的实施方式仅仅是一些实施方式,并且所涉及的动作和部分并不都是完全必需的,而是本领域技术人员将认识到,对于特定应用来说是否需要各种实施方式的功能。
已经以渐进方式描述了本说明书中的各个实施方式,其中一些实施方式的描述集中于与其他实施方式的不同,并且不同实施方式之间的相同或相似部分有时仅在一个实施方式中一起描述。
还应注意,在本公开中,诸如第一和第二等的关系术语仅用于将一个实体或操作与另一实体或操作区分开,并且不一定要求或暗示这些实体具有这样的顺序或顺次。不一定要求或暗示在这些实体或操作之间存在任何这样的实际关系或顺序。
此外,术语“包括”(include,including)或其任何其他变体旨在覆盖非排他性包括,使得包括一系列元素的过程、方法、物品或装置不仅包括这些元素,还包括没有明确列出的元素,或此类过程、方法、商品或设备固有的其他元素。
在没有更多限制的情况下,由句子“包括...”定义的元素不排除在包括该元素的过程、方法、商品或设备中存在另一个相同的元素。
在说明书中,关于设备、终端等,在某些情况下,使用单数形式,在某些其他情况下,在各种实施方式的描述中使用复数形式。然而,应当注意,单数或复数形式不是限制性的,而是用于说明性目的。除非明确声明使用单个设备或终端等,或者明确声明使用多个设备或终端等,否则设备、终端等可以是单数或复数。
基于本公开的各种实施方式,所公开的装置、设备和方法可以以其他方式实施。例如,上述设备仅用于说明目的,并且其他类型的设备可以采用本文公开的方法。
将设备划分为不同的“部分”、“区域”或“组件”仅反映了根据一些实施方式的各种逻辑功能,并且实际实现方式可以具有实现与以上所述相似功能的“部分”、“区域”或“组件”的其他划分,或者不进行任何划分。例如,多个部分、区域或组件可以组合或可以集成到另一个系统中。此外,可以省略某些特征,并且可以跳过方法中的某些步骤。
本领域技术人员将理解,由上述各种实施方式提供的设备中的部分或组件等可以配置在上述一个或更多个设备中。它们也可以位于与上述或附图所示的示例实施方式不同的一个或更多个设备中。例如,上述各种实施方式中的电路、部分或组件等可以被集成到一个模块中或被划分成若干子模块。
上述各种实施方式的编号仅出于说明的目的,并不表示实施方式的优先顺序。
尽管以上已经详细描述了特定实施方式,但是该描述仅出于说明的目的。因此,应当理解,除非另有明确说明,否则上述许多方面并非旨在作为所需或必要的元素。
在受益于本公开的情况下,除以上所述以外,本领域技术人员可对示例性实施方式的所公开方面进行各种修改以及等同动作,而不偏离权利要求中限定的本公开的精神和范围,对权利要求的范围赋予最宽泛的解释以包含该修改和等同结构。