掌桥专利:专业的专利平台
掌桥专利
首页

用于基于视觉背景无关语法模型推断场景的系统和方法

文献发布时间:2023-06-19 09:29:07


用于基于视觉背景无关语法模型推断场景的系统和方法

相关申请的交叉引用

本申请要求2018年2月15日提交的美国临时申请62/630,998的优先权,其内容全文并入此处作为参考。

本申请与2019年2月15日提交的国际申请_________(代理人案卷号047437-0461788)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503025)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461789)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503026)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461790)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503027)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461808)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503028)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461809)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503029)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503030)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461819)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503031)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461811)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0502960)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0502961)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503035)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461814)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0502963)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0502966)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0502964)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0502965)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503032)、2019年2月15日提交的国际申请_________(代理人案卷号047437-0461820)、2019年2月15日提交的美国专利申请_________(代理人案卷号047437-0503017)有关,其全部内容并入此处作为参考。

技术领域

本示教一般涉及计算机。具体而言,本示教涉及计算机化的智能代理。

背景技术

由于互联网连接无处不在,带来人工智能技术的进步和基于互联网的通信的蓬勃发展,因此,计算机辅助的对话系统日渐普及。例如,越来越多的呼叫中心配置自动对话机器人来处理用户呼叫。酒店开始安装能够回答旅客或客人问题的多种售货亭。在线预订(无论是旅游住宿还是剧场票务等)也越来越频繁地用聊天机器人完成。近些年来,其他领域内的自动人机通信也变得越来越普遍。

基于不同领域中公知的会话模式,这样的传统计算机辅助对话系统通常用特定的问题和回答预先编程。不巧的是,人类会话者可能无法预测,有时不会遵从预先计划的对话模式。另外,在某些情况下,人类会话者可能在该过程中离题,继续固定的会话模式可能令人恼火或失去兴趣。当这种情况发生时,这种机器传统对话系统常常不能继续吸引人类会话者参与,故使人机对话或者中辍、将任务交给人类操作员,或者,人类会话者直接离开对话,而这是不希望看到的。

另外,传统的基于机器的对话系统常常并非设计为处理人的情绪因素,更不用说在与人类进行会话时将如何处理这种情绪因素考虑在内。例如,传统的机器对话系统常常不会发起会话,除非人启动系统或问某些问题。即使传统对话系统发起会话,它具有开始会话的固定方式,不会因人而异或是基于观察进行调整。因此,尽管它们被编程为忠实遵循预先设计的对话模式,它们通常不能就会话的动态发展做出行动以及进行自适应,以便使会话以能吸引人参与的方式进行。在许多情况下,当涉入对话的人明显心烦或感到不满时,传统的机器对话系统浑然不觉,还以使那人心烦的同种方式继续会话。这不仅使得会话不愉快地结束(机器对此还是不知情),而且使那人在将来不愿意与任何基于机器的对话系统进行会话。

在某些应用中,为了判断如何有效进行下去,基于从人观察到的内容来执行人机对话线程是至为重要的。一个例子是教育相关的对话。当聊天机器人用于教孩子阅读时,必须监视孩子是否以正被施教的方式具有感知力,并持续处理以便有效进行。传统对话系统的另一限制是它们对背景的毫无意识。例如,传统的对话系统不具有这样的能力:观察会话的背景并即兴产生对话策略,从而吸引用户参与,并改善用户体验。

因此,存在对解决这些限制的方法和系统的需求。

发明内容

这里公开的示教涉及用于计算机化的智能代理的方法、系统和程序设计。

在一实例中,公开了一种在机器上实现的方法,该机器具有至少一个处理器、存储器和能够连接到网络的通信平台,该方法用于确定场景的类型。接收由照相机获取的关于场景的图像数据,并从中检测场景中存在的一个以上的对象。基于对象识别模型来识别检测到的对象。于是,基于图像数据确定检测到的对象之间的空间关系。于是,识别出的对象及其空间关系用于根据至少一个场景背景无关(context-free)语法模型来推断场景的类型。

在一不同的实例中,一种用于确定场景的类型的系统。该系统包含视觉对象检测单元、对象识别单元、空间关系识别器以及基于模型的场景推断引擎。视觉对象检测单元被配置为,接收由照相机关于场景获取的图像数据,并从图像数据中检测场景中存在的一个以上的对象。对象识别单元被配置为,基于一个以上的对象识别模型,分析所述一个以上的对象,以识别所述一个以上的对象。空间关系识别器被配置为,基于图像数据,确定所述一个以上的对象之间的空间关系。基于模型的场景推断引擎被配置为,根据至少一个场景背景无关语法模型,基于所述一个以上的对象及其空间关系来推断场景的类型。

其他的概念涉及实现本示教的软件。根据此概念的软件产品包含至少一个机器可读的非暂时性介质以及由该介质承载的信息。由该介质承载的信息可以是可执行程序代码数据、与可执行程序代码相关联的参数和/或与用户、请求、内容或其它附加信息有关的信息。

在一实例中,机器可读的非暂时性有形介质上记录有用于确定场景类型的数据,其中,该介质在由机器读取时使得机器执行一系列的步骤。接收由照相机获取的关于场景的图像数据,并从中检测场景中存在的一个以上的对象。基于对象识别模型来识别检测到的对象。于是,基于图像数据确定检测到的对象之间的空间关系。于是,识别出的对象及其空间关系用于根据至少一个场景背景无关语法模型来推断场景的类型。

其他的优点和新特征将部分在下面的说明书中给出,部分将由本领域技术人员在检视下面的说明书和附图时明了或通过制造或运行实例来习得。本示教的优点可通过实践和应用下面讨论的详细实例中给出的方法、设备以及组合的多种实施形态来实现和获得。

附图说明

这里介绍的方法、系统和/或程序设计进一步以示例性实施例的方式描述。这些示例性实施例参照附图详细介绍。这些实施例是非限制性的示例性实施例,其中,贯穿几幅附图,类似的参考标号代表类似的结构,其中:

图1示出了根据本示教一实施例,用于促成操作用户装置的用户与连同用户交互引擎的代理装置之间的对话的网络环境;

图2A-2B示出了根据本示教一实施例,在对话过程中,在用户装置、代理装置和用户交互引擎之间的连接;

图3A示出了根据本示教一实施例,具有示例性类型的代理身体的代理装置的示例性结构;

图3B示出了根据本示教一实施例的示例性代理装置;

图4A示出了根据本示教多种实施例,用于自动伴侣的整体系统的示例性高层次系统图;

图4B示出了根据本示教一实施例,具有基于自动伴侣与用户之间的交互采取的路径的正在进行的对话的对话树的一部分;

图4C示出了根据本示教一实施例的示例性人类-代理装置交互和由自动伴侣执行的示例性处理;

图5示出了根据本示教一实施例,在自动对话伴侣的不同处理层之间的示例性多层处理和通信;

图6示出了根据本示教一实施例,用于基于人工智能的教育伴侣的示例性高层次系统框架;

图7示出了根据本示教一实施例的示例性对话场景;

图8示出了根据本示教一实施例,用于基于视觉信息理解对话场景以促成用户机器对话的示例性框架;

图9A示出了根据本示教一实施例,在对话场景中用于对象检测/跟踪的示例性系统图;

图9B为根据本示教一实施例,用于对象检测/跟踪的示例性过程的流程图;

图10A示出了根据本示教一实施例,用于3D空间占据推定器的示例性系统图;

图10B-10C示出了根据本示教一实施例,基于面部检测推定3D空间占据的概念;

图10D为根据本示教一实施例,用于基于面部检测推定3D空间占据的示例性过程的流程图;

图11A示出了不同类型的对话场景的分类法;

图11B示出了根据本示教一实施例的示例性场景背景语法;

图12A示出了根据本示教一实施例的场景分类单元的示例性高层次系统图;

图12B示出了根据本示教一实施例,基于机器学习来学习场景背景语法的示例性过程的流程图;

图12C为根据本示教一实施例,基于场景背景语法用于场景分类的示例性过程的流程图;

图13A示出了根据本示教一实施例,经由注视检测来识别不同人的共同的感兴趣对象的概念;

图13B示出了根据本示教一实施例,经由注视跟踪,识别用户的感兴趣对象的概念;

图14A示出了根据本示教一实施例,感兴趣对象识别单元的示例性高层次系统图;

图14B为根据本示教一实施例,感兴趣对象识别单元的示例性过程的流程图;

图14C示出了根据本示教一实施例,经由注视跟踪检测感兴趣的对象的概念;

图15A示出了根据本示教一实施例,动态注视光束(gazing ray)检测器的示例性高层次系统图;

图15B为根据本示教一实施例,动态注视光束检测器的示例性过程的流程图;

图16A示出了根据本示教一实施例,基于注视的感兴趣对象推定器的示例性高层次系统图;

图16B示出了根据本示教一实施例,基于注视的感兴趣对象推定器的示例性过程的流程图;

图17示出了根据本示教一实施例,基于具有预测移动的稀疏样本呈现移动对象的框架;

图18示出了根据本示教一实施例,基于对象的数据包的示例性数据组织;

图19示出了根据本示教一实施例,呈现系统的示例性高层次系统图;

图20A示出了在场景中从位置移动到位置的用户;

图20B示出了根据本示教一实施例,以较为稀疏的速率的基于补偿预测运动的呈现的概念;

图21为根据本示教一实施例,呈现系统的示例性过程的流程图;

图22为示例性移动装置架构的示例性图,其可用于实现根据多种实施例实施本示教的特定系统;

图23为示例性计算装置架构的示例性图,其可用于实现根据多种实施例实施本示教的特定系统。

具体实施方式

在下面的具体介绍中,通过举例的方式,给出了多种具体细节,以便提供对相关示教的详尽理解。然而,本领域技术人员应当明了,本示教可以在没有这些细节的情况下实现。在其他的实例中,公知的方法、过程、部件和/或电路以相对较高的层次介绍而没有细节,从而避免不必要地模糊本示教的实施形态。

本示教目标在于解决传统的人机对话系统的不足之处,并提供使得更为有效且真实的人机对话成为可能的系统和方法。本示教将人工智能并入具有代理装置的自动伴侣,其与来自用户交互引擎的支柱支持(backbone support)配合,故使自动伴侣能够基于连续监视的指示对话周边情况的多模态数据来执行对话,自适应地推定对话参与者的心态/情绪/意图,并基于动态改变的信息/推定/背景信息来适应性地调整会话策略。

通过多个面向的自适应,包括但不限于会话的主题、用于进行会话的硬件/部件以及用于向人类会话者发送响应的表情/行为/姿态,根据本示教的自动伴侣能够对对话进行个性化。通过基于人类会话者对于对话的接受度有多高的观察来灵活地改变会话策略,自适应控制策略将使得会话更加真实且富有成效。根据本示教的对话系统可被配置为实现目标驱动的策略,包括动态配置被认为是最适合实现预期目的的硬件/软件部件。这样的最优化基于学习来进行,包括从以前的会话进行学习,以及通过在会话期间关于某些预期目标连续评估人类会话者的行为/反应,从正在进行的会话进行学习。为实现目标驱动策略而开发的路径可被确定为使人类会话者保持参与会话,即使在某些实例中,某些时刻的路径可能看起来偏离预期目标。

具体而言,本示教公开了一种用户交互引擎,其向代理装置提供支柱支持,以促成与人类会话者的更为真实且参与度更高的对话。图1示出了根据本示教一实施例的网络环境100,网络环境用于促成在操作用户装置的用户和与用户交互引擎协同的代理装置之间的对话。在图1中,示例性的网络环境100包含:一个以上的用户装置110,例如用户装置110-a、110-b、110-c和110-d;一个以上的代理装置160,例如代理装置160-a、……、160-b;用户交互引擎140;以及,用户信息数据库130,其中的每一个可以经由网络120彼此通信。在某些实施例中,网络120可对应于单个网络或者不同网络的组合。例如,网络120可以是局域网(“LAN”)、广域网(“WAN”)、公用网络、专用网络、公共交换电话网(“PSTN”)、互联网、内联网、蓝牙网络、无线网络、虚拟网络和/或其任何组合。在一实施例中,网络120也可包含多个网络接入点。例如,环境100可包含有线或无线接入点,例如但不限于基站或互联网交换点120-a、……、120-b。基站120-a和120-b可促成例如到/来自用户装置110和/或代理装置160的与联网框架100中的一个以上的其他部件在不同类型的网络上的通信。

用户装置(例如110-a)可以出于不同的类型,以促成操作用户装置的用户连接到网络120并发送/接收信号。这样的用户装置110-a可对应于任何合适类型的电子/计算装置,包括但不限于桌面计算机(110-d)、移动装置(110-a)、包含在运输工具(110-b)中的装置、……、移动计算机(110-c),或为固定装置/计算机(110-d)。移动装置可包括但不限于移动电话、智能电话、个人显示装置、个人数字助理(“PDA”)、游戏机/装置、例如手表、Fibit、别针/胸针、耳机等的可穿戴装置。带有一装置的运输工具可包括汽车、卡车、摩托车、客船、轮船、火车或飞机。移动计算机可包括笔记本电脑、超级本、手持式装置等。固定装置/计算机可包括电视机、机顶盒、智能家居装置(例如冰箱、微波炉、洗衣机或干衣机、电子助理等)和/或智能配件(例如灯泡、电灯开关、电子相框等)。

代理装置(例如160-a、……、160-b中的任何一个)可对应于不同类型装置中的一个,该装置可与用户装置和/或用户交互引擎140通信。如下面更为详细地介绍的,每个代理装置可被看作自动伴侣装置,其在例如来自用户交互引擎140的支柱支持下与用户接口。这里介绍的代理装置可对应于机器人,其可以是游戏装置、玩具装置、指定的代理装置,例如旅游代理或天气代理,等等。这里公开的代理装置能够促成和/或帮助与操作用户装置的用户的交互。通过这样,代理装置可被配置为机器人,经由来自应用服务器130的后端支持,其能够控制其某些部件,例如,做出某些身体移动(例如头部),表现出特定的面部表情(例如笑弯眼睛),或以特定的嗓音或音调(例如兴奋的音调)说话以表现特定的情绪。

当用户装置(例如用户装置110-a)被连接到例如160-a的代理装置时(例如经由接触或无接触连接),在例如110-a的用户装置上运行的客户端可以与自动伴侣(代理装置或用户交互引擎或二者)通信,以便使得操作用户装置的用户与代理装置之间的交互式对话成为可能。客户端可以在某些任务中独立动作,或者,可以由代理装置或用户交互引擎140远程控制。例如,为了响应来自用户的问题,代理装置或用户交互引擎140可以控制在用户装置上运行的客户端,以便向用户呈现响应的语音。在会话过程中,代理装置可包含一个以上的输入机制(例如照相机、麦克风、触摸屏、按钮等),其允许代理装置捕获与用户或与会话相关联的本地环境有关的输入。这样的输入可帮助自动伴侣建立对会话周围的氛围(例如用户的移动,环境的声音)以及人类会话者心态(例如用户捡起球,这可能表示用户厌倦了)的理解,从而使得自动伴侣能够相应地反应,并以将保持用户感兴趣和参与的方式进行会话。

在所示的实施例中,用户交互引擎140可以是后端服务器,其可以是集中式的或分布式的。它被连接到代理装置和/或用户装置。它可被配置为向代理装置160提供支柱支持,并引导代理装置以个性化和定制化的方式执行会话。在某些实施例中,用户交互引擎140可接收来自所连接装置(代理装置或用户装置)的信息,分析这些信息,并通过向代理装置和/或用户装置发送指示来控制会话的流动。在某些实施例中,用户交互引擎140也可直接与用户装置通信,例如提供动态数据(例如,用于在用户装置上运行的客户端的控制信号,以呈现特定的响应)。

一般而言,用户交互引擎140可控制用户与代理装置之间的会话的流动和状态。各个会话的流动可以基于与会话相关联的不同类型的信息受到控制,例如,关于参与会话的用户的信息(例如来自用户信息数据库130)、会话历史、会话周边情况信息、和/或实时用户反馈。在某些实施例中,用户交互引擎140可以被配置为获得多种传感器输入(例如但不限于音频输入、图像输入、触觉输入和/或背景输入),处理这些输入,阐述对人类会话者的理解,相应地基于这种理解生成响应,并控制代理装置和/或用户装置,以便基于响应进行会话。作为一说明性实例,用户交互引擎140可接收表征来自操作用户装置的用户的言语的音频数据,并生成响应(例如文本),于是,该响应可以以计算机生成言语的形式作为对用户的响应被传送给用户。作为另一实例,用户交互引擎140也可响应于该言语生成一个以上的指示,其控制代理装置执行特定的动作或动作组。

如所示的,在人机对话过程中,用户作为对话中的人类会话者可通过网络120与代理装置或用户交互引擎140通信。这样的通信可涉及多种模态的数据,例如音频、视频、文本等。经由用户装置,用户可发送数据(例如请求、表征用户言语的音频信号、或用户周边的场景的视频)和/或接收数据(例如来自代理装置的文本或音频响应)。在某些实施例中,多种模态的用户数据在被代理装置或用户交互引擎140接收到时可被分析,以理解人类用户的语音或姿态,故使用户的情绪或意图可被推定并用于确定对用户的响应。

图2A示出了根据本示教一实施例,在对话过程中,在用户装置110-a、代理装置160-a和用户交互引擎140之间的特定连接。可以看到,任何两方之间的连接全部可以是双向的,如这里所讨论的。代理装置160-a可以与用户经由用户装置110-a接口,以便以双向通信执行对话。一方面,代理装置160-a可以由用户交互引擎140控制,以便向操作用户装置110-a的用户说出响应。另一方面,来自用户现场的输入,包括例如用户的言语或动作以及关于用户周边情况的信息,经由连接被提供给代理装置。代理装置160-a可被配置为处理这种输入,并动态调节其对用户的响应。例如,代理装置可被用户交互引擎140指示为在用户装置上呈现树。知道用户周围环境(基于来自用户装置的视觉信息)显示出绿色的树和草地,代理装置可以把将被呈现的树定制为繁茂的绿树。如果来自用户现场的场景显示正值冬季,代理装置可进行控制,以便用对于没有叶子的树的参数在用户装置上呈现树。作为另一实例,如果代理装置被指示为在用户装置上呈现鸭子,代理装置可从用户信息数据库130取得关于颜色偏好的信息,并在发送用于向用户装置呈现的指示之前生成以用户偏好颜色对鸭子进行定制的参数。

在某些实施例中,来自用户现场的这些输入以及其处理结果也可被发送到用户交互引擎140,用于促成用户交互引擎140更好地理解与对话相关联的具体情况,使得用户交互引擎140可确定对话的状态、用户的情绪/心态,并生成基于对话的具体情况以及对话的预期目的(例如用于教小孩英语词汇)的响应。例如,如果从用户装置接收的信息指示用户看上去厌倦并变得不耐烦,用户交互引擎140可判断为将对话的状态改变为用户感兴趣的话题(例如基于来自用户信息数据库130的信息),以便继续使用户参与会话。

在某些实施例中,在用户装置上运行的客户端可以被配置为,能够处理从用户现场获取的不同模态的原始输入,并将处理的信息(例如原始输入的相关特征)发送到代理装置或用户交互引擎,以便进一步处理。这将减少通过网络传输的数据的量,并增强通信效率。类似地,在某些实施例中,代理装置也可被配置为能够处理来自用户装置的信息,并提取用于例如定制化目的的有用信息。尽管用户交互引擎140可控制对话的状态和流动控制,使得用户交互引擎140轻量级更好地改善了用户交互引擎140的规模(scale)。

图2B示出了与图2A所示相同的设置,且具有用户装置110-a的附加细节。如图所示,在用户和代理310之间的对话过程中,用户装置110-a可连续收集与用户及其周边情况有关的多模态传感器数据,其可被分析,以检测与对话有关的任何信息,并被用于以自适应的方式智能地控制对话。这可进一步增强用户体验或参与度。图2B示出了示例性的传感器,例如视频传感器230、音频传感器240、……、或触觉传感器250。用户装置也可发送文本数据,作为多模态传感器数据的一部分。这些传感器共同提供对话周边的背景信息,并可被用于由用户交互引擎140理解情况,以便管理对话。在某些实施例中,多模态传感器数据可首先在用户装置上被处理,不同模态的重要特征可被提取并发送到用户交互引擎140,故对话能以对背景的理解受到控制。在某些实施例中,原始多模态传感器数据可被直接发送到用户交互引擎140,用于处理。

由图2A-2B可见,代理装置可对应于具有不同部分(包括其头部210及其身体220)的机器人。尽管图2A-2B所示的代理装置显示为人形机器人,其可以以其他的形式被构建,例如鸭子、熊、兔子等。图3A示出了根据本示教一实施例,具有示例性类型的代理身体的代理装置的示例性结构。如所示的,代理装置可包括头和身体,头附着到身体。在某些实施例中,代理装置的头可具有附加的部分,例如面部、鼻子和嘴,它们中的一些可被控制为例如做出移动或表情。在某些实施例中,代理装置上的面部可对应于显示屏,显示屏上可呈现面部且该面部可以是人类的或动物的。这样显示的面部也可受到控制以表达情绪。

代理装置的身体部分也可对应于不同形态,例如鸭子、熊、兔子等。代理装置的身体可以是固定的、可动的或半可动的。具有固定身体的代理装置可对应于能放置在例如桌子的表面上的装置,从而与坐在桌边的人类用户进行面对面的会话。具有可动身体的代理装置可以对应于能够在例如桌面或地板的表面上到处移动的装置。这样的可动的身体可包括能在运动学上被控制以进行实体移动的部件。例如,代理身体可包括脚,其可被控制为在需要时在空间中移动。在某些实施例中,代理装置的身体可以是半可动的,即,有些部分可动,有些不可动。例如,具有鸭子外表的代理装置的身体上的尾巴可以是可动的,但鸭子不能在空间中移动。熊形身体代理装置也可具有可动的手臂,但熊只能坐在表面上。

图3B示出了根据本示教一实施例的示例性代理装置或自动伴侣160-a。自动伴侣160-a是使用语音和/或面部表情或身体姿态与人交互的装置。例如,自动伴侣160-a对应于具有不同部分的、电子操控(animatronic)的外围装置,包括头部310、眼部(照相机)320、具有激光器325和麦克风330的嘴部、扬声器340、具有伺服机构350的颈部、可用于无接触存在性检测的一个以上的磁体或其它部件360、以及对应于充电底座370的身体部分。在运行中,自动伴侣160-a可以连接到用户装置,其可包括经由网络连接的移动多功能装置(110-a)。一旦连接,自动伴侣160-a和用户装置经由例如语音、动作、姿态和/或经由用激光点指器的点指(pointing)而彼此交互。

自动伴侣160-a的其他示例性功能可以包括响应于用户响应的反应式表达,例如,经由显示在例如作为自动伴侣面部的一部分的屏幕上的交互式视频卡通角色(例如化身(avatar))。自动伴侣可使用照相机(320)来观察用户的存在性、面部表情、注视方向、周边情况等。电子操控实施例可以通过点指其包含照相机(320)的头(310)来“看”,使用其麦克风(340)来“听”,通过引导能够经由伺服机构(350)移动的头(310)的方向来“点指”。在某些实施例中,代理装置的头也可由例如用户交互系统140或由用户装置(110-a)的客户端经由激光器(325)来远程控制。如图3B所示示例性自动伴侣160-a也可被控制为经由扬声器(330)来“说话”。

图4A示出了根据本示教多种实施例,用于自动伴侣的整体系统的示例性高层次系统图。在此所示实施例中,整体系统可包含驻留在用户装置、代理装置和用户交互引擎140中的部件/功能模块。这里所述的整体系统包含多个处理层和分级结构,它们一起执行智能方式的人机交互。在所示的实施例中有5个层,包括用于前端应用以及前端多模态数据处理的层1、用于对话设定的描绘的层2、对话管理模块所驻留的层3、用于不同参与者(人、代理、装置等)的推定心态的层4、用于所谓效用(utility)的层5。不同的层可对应于不同等级的处理,从层1上的原始数据采集和处理到层5上的改变对话参加者的效用的处理。

术语“效用”由此定义为基于与对话历史相关联地检测到的状态识别的参与者的偏好。效用可以与对话中的参与者相关联,无论该参与者是人、自动伴侣还是其他的智能装置。用于特定参与者的效用可表征世界的不同状态,无论是实物的、虚拟的或者甚至是精神的。例如,状态可以表征为对话所沿在世界的复杂地图中穿行的特定路径。在不同的实例中,当前状态基于多个参与者之间的交互而演化为下一状态。状态也可以是与参与者有关的,即,当不同参与者参加交互时,由这种交互带来的状态可能发生变化。与参与者相关联的效用可被组织为偏好的分级结构,且这样的偏好分级结构可基于在会话过程中做出的参与者选择以及表露出的喜好而随时间演化。这样的偏好(其可被表征为从不同选项中做出的有顺序的选择序列)被称为效用。本示教公开了这样的方法和系统:通过该方法和系统,智能自动伴侣能够通过与人类会话者的对话来学习用户的效用。

在支持自动伴侣的整体系统中,层1中的前端应用以及前端多模态数据处理可驻留在用户装置和/或代理装置中。例如,照相机、麦克风、键盘、显示器、呈现器、扬声器、聊天泡泡、用户接口元件可以是用户装置的部件或功能模块。例如,可能有在用户装置上运行的应用或客户端,其可包括图4A所示外部应用接口(API)之前的功能。在某些实施例中,超出外部API的功能可以被考虑为后端系统,或驻留在用户交互引擎140中。在用户装置上运行的应用可取得来自用户装置的电路或传感器的多模态数据(音频、图像、视频、文字),对多模态数据进行处理,以生成表征原始多模态数据的特征的文字或其他类型的信号(例如检测到的用户面孔等对象、语音理解结果),并发送到系统的层2。

在层1中,多模态数据可以经由例如为照相机的传感器、麦克风、键盘、显示器、扬声器、聊天泡泡、呈现器或其他用户接口元件来获取。可对这样的多模态数据进行分析,以推定或推断能用于推断更高层次的特性(例如表情、角色(character)、手势、情绪、动作、注意力、意图等)的多种特征。这样的更高层次的特性可由层2上的处理单元获得,接着,经由图4A所示的内部API,例如,由更高层次的部件用于在更高的概念层次上智能地推断或推定与对话有关的附加信息。例如,在层2上获得的所推定的对话参加者的情绪、注意力或其它特性可用于推定参加者的心态。在某些实施例中,这种心态也可在层4上基于附加的信息来推定,例如,记录的周边环境或这种周边环境中的其他附加信息,例如声音。

推定的参与者的心态,无论是与人还是自动伴侣(机器)有关,可被层3的对话管理所依赖,以便确定,例如,如何进行与人类会话者的会话。每个对话如何逐步发展常常表征人类用户的偏好。这样的偏好可以动态地在对话过程中在效用(层5)上被捕获。如图4A所示,层5上的效用表征演化的状态,其指示参与者的演化的偏好,它们也可由层3上的对话管理用于决定进行交互的合适或智能的方式。

不同层之间的信息共享可以经由API实现。在图4A中所示的某些实施例中,层1和其他层之间的信息分享经由外部API,而层2-5之间的信息分享经由内部API。能够明了,这仅仅是一种设计上的选择,其他的实现方式也可以实现这里给出的示教。在某些实施例中,通过内部API,多种层(2-5)可访问由其他层产生或存储的信息,以支持处理。这样的信息可包括将被应用到对话的通用配置(例如代理装置的角色是化身、优选的嗓音或将为对话产生的虚拟环境,等等)、对话的当前状态、当前对话历史、已知的用户偏好、推定的用户意图/情绪/心态等等。在某些实施例中,可从外部数据库访问能经由内部API分享的某些信息。例如,可从例如开源数据库访问与代理装置(例如鸭子)的希望的角色有关的特定配置,其提供参数(例如,视觉上呈现鸭子的参数,和/或呈现来自鸭子的语音需要的参数)。

图4B示出了根据本示教的实施例的正在进行的对话的对话树的一部分,其具有基于自动伴侣和用户之间的交互取得的路径。在此所示实例中,(自动伴侣的)层3中的对话管理可预测多种路径,与用户的对话(或一般地,交互)可以以该路径进行。在此实例中,各个节点可代表对话的当前状态的点,且节点的各个分支可代表来自用户的可能的响应。如此实例所示,在节点1上,自动伴侣可面临三种分立的路径,其可取决于从用户检测到的响应来取得。如果用户用肯定性的响应来回应,对话树400可从节点1进行到节点2。在节点2上,响应于来自用户的肯定性响应,可以为自动伴侣生成响应,于是,响应可被呈现给用户,其可包括音频、视觉、文本、触觉或其任何组合。

在节点1上,如果用户负面地响应,用于此阶段的路径是从节点1到节点10。如果用户在节点1上用“一般”响应来回应(例如,不是负面的,但也不是正面的),对话树400可进行到节点3,在节点3上,来自自动伴侣的响应可被呈现,可存在来自用户的三种分立的可能响应,“无响应”、“正面响应”、“负面响应”,分别对应于节点5、6、7。取决于关于在节点3上呈现的自动伴侣响应的、用户的实际响应,层3上的对话管理于是可相应地延续对话。例如,如果用户在节点3上用正面响应来回应,自动伴侣移动到在节点6上回应用户。类似地,取决于用户对自动伴侣在节点6上的响应的反应,用户可进一步用正确的回答来响应。在这种情况下,对话状态从节点6移动到节点8,等等。在此所示的实例中,这一阶段期间的对话状态从节点1移动到节点3、到节点6、并到节点8。节点1、3、6、8的遍历构成与自动伴侣和用户之间的底层会话一致的路径。如图4B所示,代表该对话的路径由连接节点1、3、6、8的实线表示,而在该对话过程中跳过的路径用虚线表示。

图4C示出了根据本示教一实施例,由自动伴侣执行的示例性人-代理装置交互和示例性处理。如图4C所示,可以进行不同层上的操作,且它们一起以协调的方式促成智能对话。在所示的实例中,代理装置可首先在402处询问用户“你今天好吗?”以发起对话。响应于402处的言语,用户可以在404处用言语“好”来回应。为了管理对话,自动伴侣可以在对话过程中致动不同的传感器,以便做出对用户以及周边环境的观察。例如,代理装置可获取关于用户所处周边环境的多模态数据。这样的多模态数据可包括音频、视觉或文本数据。例如,视觉数据可捕获用户的面部表情。视觉数据也可揭示会话场景周围的背景信息。例如,场景的图像可揭示存在篮球、桌子和椅子,这提供了关于环境的信息,并可在对话管理中被利用,以便增强用户的参与度。音频数据可不仅捕获用户的语音响应,还捕获其他的周边信息,例如响应的音调、用户说出回应的方式或者用户的口音。

基于所获取的多模态数据,分析可以由自动伴侣(例如由前端用户装置或由后端用户交互引擎140)进行,以评估用户的态度、情绪、心态和效用。例如,基于视觉数据分析,自动伴侣可检测到用户表现出悲哀、无笑容、用户语音缓慢且嗓音低沉。对对话中的用户状态的描绘可在层2上基于在层1上获取的多模态数据来进行。基于这样检测的观察,自动伴侣可以推断(在406上)用户对当前话题不是那么感兴趣且参与度不高。例如,对用户的情绪或精神状态的这样的推断可以在层4上基于对与用户相关联的多模态数据的描绘来进行。

为了响应用户的当前状态(参与度不高),自动伴侣可判断为使用户振奋,以便使用户更好地参与。在此所示的实例中,自动伴侣可以通过在408处向用户说出问题“你想玩游戏吗?”来利用会话环境中可用的东西。这样的问题可以通过将文本转换为语音(例如,使用为用户个性化的定制嗓音)以音频形式作为语音给出。在这种情况下,用户可通过在410处说“好”来回应。基于连续获取的与用户有关的多模态数据,例如,经由层2的处理,可能观察到响应于玩游戏的邀请,用户的眼睛看上去左顾右盼,特别是,用户的眼睛可能注视篮球所在的地方。同时,自动伴侣也可观察到,一旦听到玩游戏的建议,用户的面部表情从“悲伤”变为“微笑”。基于这样观察到的用户的特性,自动伴侣可在412处推断为用户对篮球感兴趣。

根据所获取的新信息以及基于其的推断,自动伴侣可以决定利用环境中可用的篮球来使用户在对话中的参与度更高,同时仍又实现对用户的教育目的。在这种情况下,层3中的对话管理可对会话进行适应以谈论游戏,并利用用户注视房间里的篮球这一观察,使得对话对用户来说更加有趣,同时仍实现例如对用户进行教育的目标。在一示例性实施例中,自动伴侣生成响应,建议用户玩拼写游戏(在414处),并让用户拼写单词“篮球”。

在给定自动伴侣的根据对用户和环境的观察的自适应对话策略的情况下,用户可做出响应,提供单词“篮球”的拼写(在416处)。可连续就用户在回答拼写问题时有多热情进行观察。基于例如在用户回答拼写问题时获取的多模态数据所判断,如果用户看起来以更为欢快的态度迅速响应,自动伴侣可以在418处推断为用户现在参与度更高。为了进一步鼓励用户积极参加对话,自动伴侣于是可生成正面响应“做得好!”,并指示将此响应用欢快、鼓励、积极的嗓音传送给用户。

图5示出了根据本示教的多种实施例,在以对话管理器510为中心的自动对话伴侣的不同处理层之间的示例性通信。图中的对话管理器510对应于层3中的对话管理的功能部件。对话管理器是自动伴侣的重要部分,且其管理对话。按照传统,对话管理器将用户的言语取作输入,并判断如何对用户做出响应。这在不考虑用户偏好、用户的心态/情绪/意图或对话的周边环境的情况下做出,也就是说,不为相关世界的不同的可用状态授予任何权重。缺少对周边世界的了解常常限制了人类用户和智能代理之间会话的参与度或感知的真实性。

在本示教的某些实施例中,充分运用与正在进行的对话有关的会话参与者的效用,以允许进行更为个性化、灵活且参与度更高的对话。这促进了智能代理扮演不同的角色,以便在不同的任务中更为有效,例如安排约会、预订旅行、订购设备和补给品、在线研究多种话题。当智能代理认识到用户的动态心态、情绪、意图和/或效用时,这使得代理能以更有目标且有效的方式使人类会话者参与对话。例如,当教育代理教孩子时,孩子的偏好(例如他喜欢的颜色)、观察到的情绪(例如,有时候孩子不想继续课程)、意图(例如,孩子将手伸向地板上的球,而不是专注于课程)都可允许教育代理灵活地将关注的主题调整到玩具,并可能调整继续与孩子会话的方式,以便给孩子休息时间,从而实现对孩子进行教育的整体目标。

作为另一实例,本示教可用于,通过问在给定从用户实时观察到的东西的情况下更为适合的问题,增强用户服务代理的服务,并因此实现改善的用户体验。这根植于如这里所公开的本示教的本质方面,通过开发学习和适应参加对话的参与者的偏好或心态的方法和手段,使得对话能够以参与度更高的方式进行。

对话管理器(DM)510是自动伴侣的核心部件。如图5所示,DM 510(层3)取得来自不同层的输入,包括来自层2的输入以及来自更高的抽象层的输入,例如,用于推定涉入对话的参与者的心态的层4,以及基于对话以及评估的其性能来学习效用/偏好的层5。如所示的,在层1上,从不同模态的传感器获取多模态信息,其被处理,以便获得例如对数据进行描绘的特征。这可包括视觉、音学和文本模态的信号处理。

这样的多模态信息可以在对话过程中由布置在用户装置(例如110-a)上的传感器获取。所获取的多模态信息可以与操作用户装置110-a的用户和/或对话场景周边情况有关。在某些实施例中,多模态信息也可在对话过程中由代理装置(例如160-a)获取。在某些实施例中,用户装置和代理装置二者上的传感器可获取相关信息。在某些实施例中,所获取的多模态信息在层1上受到处理,如图5所示,其可包括用户装置和代理装置二者。取决于情况和配置,各个装置上的层1处理可以不同。例如,如果用户装置110-a用于获取对话的周边信息,包括关于用户以及用户周边情况的信息,原始输入数据(例如文本、视觉或音频)可在用户装置上被处理,接着,处理得到的特征可被发送到层2,用于进一步的分析(在更高的抽象层上)。如果关于用户和对话环境的某些多模态信息由代理装置获取,这样获取的原始数据的处理也可由代理装置(图5未示出)处理,于是,从这样的原始数据中提取的特征可从代理装置被发送到层2(其可以位于用户交互引擎140中)。

层1也处理从自动对话伴侣到用户的响应的信息呈现。在某些实施例中,呈现由代理装置(例如160-a)执行,这种呈现的实例包括语音、表情(其可以是面部的)或执行的身体动作。例如,代理装置可将从用户交互引擎140接收的文本串(作为对用户的响应)呈现为语音,使得代理装置可以向用户说出响应。在某些实施例中,文本串可被发送到代理装置,并具有附加的呈现指示,例如音量、音调、音高等,其可用于以特定方式将文本串转换为与内容的言语对应的声波。在某些实施例中,将要传送给用户的响应也可包括动画(animation),例如,用将要经由例如面部表情或身体动作(例如举起一只手臂等)传送的态度说出响应。在某些实施例中,代理可以被实现为用户装置上的应用。在这种情况下,来自自动对话伴侣的相应的呈现经由用户装置(例如110-a(图5未示出))实现。

多模态数据的处理得到的特征可在层2上进一步处理,以实现语言理解和/或多模态数据理解,包括视觉、文字及其任何组合。某些这样的理解可能针对单一模态,例如语音理解,有些可以针对基于集成的信息对参与对话的用户的周边情况的理解。这样的理解可以是实物的(例如,识别场景中的特定对象)、认知上的(例如识别出用户说了什么,或某个明显的声音,等等)或精神上的(例如特定的情绪,例如基于语音的音调、面部表情或用户姿态推定出的用户的压力)。

层2上生成的多模态数据理解可由DM 510用于判断如何响应。为了增强参与度和用户体验,DM 510也可基于来自层4的推定的用户心态和代理心态以及来自层5的参与对话的用户的效用来确定响应。涉入对话的参与者的心态可基于来自层2的信息(例如推定的用户情绪)以及对话的进展推定。在某些实施例中,用户和代理的心态可以在对话过程中动态推定,这样推定的心态于是可用于学习(与其他数据一起)用户的效用。所学习的效用代表用户在不同对话情境中的偏好,并基于历史对话及其结果而被推定。

在特定话题的各个对话中,对话管理器510将其对对话的控制基于相关的对话树,对话树可能与、或者可能不与话题相关联(例如,可引入闲聊,以增强参与度)。为了生成对话中对用户的响应,对话管理器510也可考虑附加的信息,例如用户的状态、对话场景的周边情况、用户的情绪、用户和代理的推定的心态、以及已知的用户偏好(效用)。

DM 510的输出对应于相应地确定的对用户的响应。为了将响应传送给用户,DM510也可以阐述传送响应的方式。响应被传送的形式可以基于来自多个源的信息来确定,例如,用户的情绪(例如,如果用户是不快乐的孩子,响应可以以温柔的嗓音呈现),用户的效用(例如,用户可能偏好与其父母类似的某种口音),或用户所处的周边环境(例如,嘈杂的地方,故响应需要以高音量传送)。DM 510可将所确定的响应与这些传送参数一起输出。

在某些实施例中,这样确定的响应的传送通过根据与响应相关联的多种参数来生成各个响应的可传送形式来实现。在一般情况下,响应以某些自然语言的语音的形式传送。响应也可以以与特定非语言表达耦合的语音传送,非语言表达作为所传送响应的一部分,例如为点头、摇头、眨眼或耸肩。可能有听觉上的但是非语言的其他形式的可传送响应模式,例如口哨。

为了传送响应,可传送的响应形式可以经由例如语言响应生成和/或行为响应生成来产生,如图5所示。出于其所确定的可传送形式的这种响应于是可由呈现器用于实际以其预期形式呈现响应。对于自然语言的可传送形式,响应的文本可用于,根据传送参数(例如音量、口音、风格等),经由例如文本到语音技术来合成语音信号。对于将要以非语言形式(例如特定的表情)传送的任何响应或其部分,预期的非语言表达可以被翻译成为(例如经由动画)能用于控制代理装置(自动伴侣的有形体现)的特定部分的控制信号,从而执行特定的机械运动,以便传送响应的非语言表达,例如点头、耸肩或吹口哨。在某些实施例中,为了传送响应,特定的软件部件可被调用,以便呈现代理装置的不同的面部表情。响应的这种演绎也可由代理同时进行(例如,用开玩笑的嗓音说出响应,并在代理的脸上浮现大大的笑容)。

图6示出了根据本示教的多种实施例,用于基于人工智能的教育型伴侣的示例性高层次系统图。在此所示实施例中,存在五个处理层次,即装置层、处理层、论证层、教学或施教层以及教师层。装置层包含传感器(例如麦克风和照相机),或者媒体传送装置(例如伺服机构),其用于移动例如扬声器或机器人的身体部分,从而传送对话内容。处理层包含多种处理部件,其目的在于处理不同类型的信号,包括输入和输出信号。

在输入侧,处理层可包括语音处理模块,用于基于从音频传感器(麦克风)获得的音频信号来进行例如语音识别,以便理解在说什么,从而确定如何响应。音频信号也可被识别,以便生成用于进一步分析的文本信息。来自音频传感器的音频信号也可被情绪识别处理模块使用。情绪识别模块可以被设计为,基于来自照相机的视觉信息和同步的音频信息,识别参与者的多种情绪。例如,快乐的情绪常常可伴有笑脸和特定的听觉线索。作为情绪指示的一部分,经由语音识别获得的文本信息也可由情绪识别模块用于推定所涉及的情绪。

在处理层的输出侧,当特定的响应策略被确定时,这样的策略可被翻译成为将由自动伴侣做的具体动作,以便对另一参与者做出响应。这样的动作可以通过传送某种音频响应或经由特定姿态表达特定情绪或态度来进行。当响应以音频被传送时,具有需要被说出的词语的文本由文本到语音模块进行处理,以便产生音频信号,于是,这样的音频信号被发送到扬声器,以便呈现作为响应的语音。在某些实施例中,基于文本生成的语音可以根据其他的参数进行,例如,可用于以特定音调或嗓音对语音生成进行控制的参数。如果响应将作为实体动作被传送,例如,在自动伴侣上实现的身体移动,则将要采用的动作也可以是将用于生成这样的身体移动的指示。例如,处理层可包含根据某种指示(符号)来移动自动伴侣的头部(例如点头、摇头或头部的其他运动)的模块。为了遵从移动头部的指示,基于该指示,用于移动头部的模块可生成电信号,并发送到伺服机构,以便实体控制头部运动。

第三层是论证层,其用于基于分析的传感器数据来执行高层次的论证。来自语音识别的文本或推定的情绪(或其他描绘)可被发送到推断程序,该程序可用于,基于从第二层接收的信息,推断多种高层次概念,例如意图、心态、偏好。推断的高层次概念于是可由基于效用的计划模块使用,在给定在教学层上定义的施教计划和当前用户状态的情况下,该模块设计出在对话中做出响应的计划。计划的响应于是可被翻译成将被执行以便传送计划的响应的动作。该动作于是被动作生成器进一步处理,以便具体指向不同的媒体平台,从而实现智能响应。

教学层和教师层都涉及所公开的教育型应用。教师层包含关于设计用于不同主题的课程表的活动。基于设计的课程表,教学层包含课程表调度器,其基于所设计的课程表来调度课程,基于课程表调度,问题设置模块可安排将基于特定的课程表调度而被提供的特定的问题设置。这样的问题设置可由论证层的模块用于辅助推断用户的反应,于是,基于效用和推断的心理状态来相应地规划响应。

根据本示教,为了保持用户参与,实现自动对话伴侣以理解对话场景,使得对话能够以更为切题、自适应且个性化的方式受到管理。在某些配置中,自动对话伴侣被配置为理解对话环境,以便改进其自适应与用户的会话的能力。例如,自动对话伴侣可被配置为检测场景中存在的对象,推定这些对象如何布置在对话场景中,对对话场景的类型(例如办公室或公园)进行分类,或检测用户看上去对哪些对象感兴趣。对周边情况的这样的理解可促进自动对话伴侣判断向用户说什么或如何用对话场景中可用的东西改变对话的主题,等等。在某些实施例中,基于在对话场景中观察到的(例如用户的移动),例如,自动对话伴侣可实时地在用户正在交互的应用中呈现所观察到的东西,从而增强用户感知到的与自动对话伴侣的密切关系(affinity)。

图7示出了根据本示教一实施例的示例性对话场景。如图所示,对话场景是办公室,用户正在场景中走向桌子,在不同的时间实例(t1,t2,……,t3)上有轨迹或路径。办公室场景通过在空间上以特定方式配置的不同对象的观察来表明。例如,场景中观察到的对象包括墙、墙上悬挂的东西(图片、海报)、门、窗户、桌子、椅子、计算机屏幕、桌上的某些文具。这些观察到的对象也可被观察为以特定的配置在空间上布置,例如,椅子在空间上邻近桌子,计算机屏幕放在桌子之上,等等。这样的空间配置可能代表办公室或人能工作的场所。

通过在对话场景中观察用户,多种类型的信息可被推断。例如,如果检测到用户在笑,可推断为用户高兴或处于良好的心情。如果观察到用户安静并且以严厉的音调说话,可以推断为用户不高兴或不满。这样检测到的情绪在理解用户、从而适当地执行对话方面是相关的。除了用户的情绪状态以外,观察用户的行为(例如用户的移动)还可能是重要的,以便进一步推断相关情绪或意图。例如,如果用户看起来高兴,同时走向桌子,可推定为用户想要在办公室中拿什么东西或有兴趣开始工作。为了做出区分,可进行进一步的观察,例如,可以检测用户的注视方向,以推定用户的意图。如果观察到用户注视窗子,可推定为用户当前不想工作。

在某些实施例中,观察到的用户的移动也可用于推断3D空间如何构建。例如,通过跟踪在对话场景中到处移动的用户,可推断未占据的3D空间。连同关于在空间内检测到的对象的信息,对话场景可被更为准确地构建或呈现。例如,在某些设置下,为了增强用户机器交互,在场景中存在的对象以及在场景中观察到的动态用户行为可在由用户操作的装置的显示屏上呈现。在这种情况下,可基于所观察到的来推定占据的和未占据的3D空间,使得可以在显示屏上合适地呈现观察到的对象和用户行为。

图8示出了根据本示教一实施例的示例性框架800,其用于基于视觉信息理解对话场景,以促成用户机器对话。在所示的实施例中,框架800包含对象检测单元820、3D空间占据推定器810、场景分类单元830、感兴趣对象识别单元840、用户移动呈现单元850。对象检测单元820被配置为,基于输入图像数据识别在对话场景中存在的对象,并用其多种描绘特征在场景对象档案825中填充(populate)所识别的对象。3D空间占据推定器810被设置为,基于输入图像数据来推定3D空间占据,并在3D空间占据日志815中存档空间配置信息(其可包括识别未占据和占据的3D空间)。在某些实施例中,3D空间占据的检测可依赖于例如与检测到的在对话场景中存在的对象有关的信息(来自对象检测单元820)和与检测到的用户及其移动有关的信息(来自3D空间占据推定器810)。与基于用户跟踪来推定3D空间占据有关的细节参照图10A-10D来提供。

场景分类单元830被设置为,基于由对象检测单元820检测的对象以及场景背景无关语法,识别对话场景的类型(例如办公室、公园、店铺),并基于这样检测的对象及其空间关系更新815中的3D空间占据日志。关于场景分类的细节将参照图11A到12C详细讨论。在某些对话设置中,可检测参与与自动对话伴侣的对话的用户的关注点,以促成自适应的对话管理。例如,可以随时间基于用户注视方向进行关于用户的感兴趣对象检测。作为另一实例,也可通过检测不同用户的注视方向,检测这些不同用户的共同的感兴趣对象(例如对话场景中多个用户关注篮球)。这通过感兴趣对象识别单元840来实现。与之有关的细节可关于图13A-16B提供。如这里所讨论的,在某些用户机器交互设置中,对话场景中所发生的(包括场景中存在的对象以及在对话场景中到处漫游的用户)在用户正在操作的装置的界面上被呈现。为了促成实时地呈现移动的用户,用户移动呈现单元850访问3D空间占据日志815,并基于稀疏采样,根据从这种稀疏采样以及实时校正预测的移动来呈现移动的用户。关于本示教此实施形态的细节将参照图17-21提供。

图9A示出了根据本示教一实施例,对象检测单元820的示例性系统图。如这里所讨论的,对象检测单元820将检测和跟踪在对话场景中存在的对象,并在3D对话场景中产生对象配置的表征。这种表征于是由框架800中的其他的部件用于例如确定对话场景中用户的感兴趣对象和/或3D空间占据。在此所示实施例中,对象检测单元820包含视觉对象检测单元910、对象识别单元930、对象姿势推定器980、对象空间关系识别器960以及对象属性确定器950。

图9B为根据本示教一实施例,对象检测单元820的示例性过程的流程图。在运行中,对象检测单元820在915处接收来自一个以上传感器900的从对话场景获取的视觉输入数据,并在925处从这样的视觉输入数据中检测在对话场景中存在的对象。这样的检测可以根据一个以上的对象检测模型920来检测。在某些实施例中,传感器900可以分布在对话场景中,可能已被校准。某些传感器可以被配置为捕捉场景的图像,有些可以被配置为捕捉场景的深度信息。图像数据和深度数据可被组合以用于对象检测。例如,基于深度信息,对象可在具有连续深度时被检测。也可关于对象颜色或纹理上的一致性来验证这样的检测对象。反之同样适用。使用例如颜色或纹理等视觉线索检测的对象可基于深度信息得到验证。

对于各个帧中检测到的对象,对象识别单元930可进一步在935处基于例如对象识别模型940来识别每一个检测到的对象。例如,如果基于颜色上的一致性检测到对象(例如场景中的椅子),识别检测到的对象可进一步依赖于特定的对象模型,例如,椅子应当具有相对扁平的表面和支撑腿。与各个检测到的对象相关联的特定特征也可被确定,例如各个检测到的对象的位姿(pose)(例如深度)、维度和其他视觉特征可被推定。对象姿势推定器980可在945处基于例如对象在图像中被检测到的区域的例如深度信息来确定与各个对象相关联的深度和其他位置信息。这种深度信息可从传感器直接接收,例如从获取各个像素的深度的激光雷达(LiDar)传感器,或者,可基于使用多个照相机的立体视觉来获得。在某些实施例中,为了确定对象的3D位姿,对象姿势推定器980也可使用校准参数来将2D图像中检测到的对象根据校准参数映射到3D坐标系统。

另一方面,对象属性确定器950也可确定与各个检测到的对象相关联的其他特征或属性。这样的特征可包括对象的维度、对象的颜色或对象的构成。基于各个对象的检测到的属性(姿势、维度等),空间关系识别器960于是可在955处确定这些检测到的对象之间的空间关系。检测到的对象、它们的对应的属性以及它们的空间关系于是可在965处存档在场景对象档案825中,作为对话场景的表征。这样的对话场景表征可由框架800中的其他部件用于相应地管理底层对话。

图10A示出了根据本示教一实施例,3D空间占据推定器810的示例性系统图。如这里所讨论的,3D空间占据推定器810被设置为,通过跟踪对话场景中存在的一个以上的用户,确定用户的3D空间占据。这种占据可以是动态的(因为人可四处移动),并且,与场景中的检测到的固定对象(例如桌子、椅子等)一起,3D空间的占据可被动态地确定。如图所示,3D空间占据推定器810的示例性系统图包含面部检测单元1010、基于面部的人类跟踪单元1020、人类3D占据推定器1030、人类/对象空间关系更新器1050、动态占据更新器1040。在此所示实施例中,基于人类模型1006来推定3D对话场景中被跟踪用户的占据,该模型可具体指定与检测到的人类面部有关的3D占据。这在图10B-10C中示出。在图10B和10C中,用户可以位于对话场景的3D空间中的特定深度1009上。用户可在2D图像1001中被捕捉,且深度传感器可提供指示用户的深度1009的数据。在2D图像中,用户的面部1005可被检测,使用人类模型1006,用户的身体部分1003可被相应地确定。基于用户的检测到的面部1005和推定的身体1003,用于用户的3D棱柱体(prism)1007可在深度1009上被推定,故棱柱体所占据的3D空间对应于由用户占据的3D空间。

图10D是根据本示教一实施例,用于基于面部检测推定3D空间占据的示例性过程的流程图。如这里所讨论的,在运行中,当面部检测单元1010在1015处接收由传感器900从对话场景获取的图像数据时,其在1025处基于例如面部检测模型1002检测与在对话场景中存在的人对应的人的面部。在某些实施例中,基于每个这样检测的面部,基于面部的人类跟踪单元1020在1035处在于不同时刻获取的2D图像序列中跟踪面部。对于各个被跟踪面部的移动的轨迹于是可记录在空间跟踪轨迹档案1012中。

为了为各个跟踪的面部确定3D空间占据,基于所跟踪面部的深度信息以及基于面部的人类模型1006来确定3D棱柱体(如图10C所示),其表征3D空间中的人。例如,对应于在2D图像中检测的人的面部的深度信息可被获得,以确定人的3D位置。这样的深度信息可直接从3D传感器(例如从LiDar传感器)获得,或者基于例如视差信息来计算,其中,视差信息是基于从不同视角捕捉同一场景的信息的至少两个照相机传感器确定的。基于与各个检测到的面部相关联的深度信息,人类3D占据推定器1030在1045处基于根据基于面部的人类模型1006确定的3D棱柱体1007确定在该深度上由人占据的3D体积。通过这种方式,各个帧中由每个检测到的人占据的3D空间可被确定,且这样推定的由检测到的人占据的3D空间可被发送到动态占据更新器1040。

为了确定与对话场景相关联的3D空间占据,除了由被检测的人占据的3D空间之外,也可考虑由对话场景中存在的其他对象(例如静止的固定设施或物体)占据的3D空间。如这里所示,为了这样做,人/对象空间关系更新器1050在1055处接收与对象检测单元820检测的对象有关并存储在场景对象档案825中的信息,以及在对话场景中由检测到的人占据的推定3D空间,并确定对话场景中在静止对象和检测到的人之间的空间关系。这样构建的空间关系于是可用于在1065处推定对话场景的3D空间占据,相应地,未占据的3D空间也可在1075处被推定。这样推定的3D占据配置信息于是可被发送到动态占据更新器1040,其于是在1085处更新3D占据日志1085,以反映当前的3D占据情况。通常,移动的人产生动态3D占据信息。类似地,跟踪人的移动也使得检测未占据3D空间成为可能。例如,当人正在移动时,人移出之后的3D空间现在可能是未占据的。另外,由于移动的人占据的任何3D空间对应于未被静止对象占据的3D空间,因此,大体来说,是未占据的。在某些情况下,对话场景中的静止对象可被四处移动,因此,在3D占据信息中产生动态。3D空间占据推定器810被配置为能够捕捉这种动态信息,并生成自适应更新的3D占据日志。

如这里所讨论的,如上面所公开的那样推定的3D空间占据图可能在对话管理的不同情境中有用。根据本示教,认识到一种类型的对话场景以及其中包含的对象以及参与对话的用户注意什么对象可以使自动对话伴侣能够自适应地确定对话管理策略。例如,如果自动对话伴侣识别为对话发生在办公室里,办公室桌子上有乐高文具,且参与对话的用户正在注视乐高玩具而没有对正在进行的对话有足够的注意(例如没有正确响应问题),自动对话伴侣可决定将会话切换到乐高玩具,以便继续吸引用户参与。

为了实现对对话周边情况的这种认识,推定的3D空间占据可为对话环境的附加理解提供有用的基础。例如,自动对话伴侣可以配置在一装置(例如代理装置或用户装置)上,并可在任何类型的环境中被致动,例如在办公室、教室、公园、家、餐馆或游乐场等。某些示例性类型的对话场景在图11A中示出,其中,不同类型的场景可以以分类学结构来组织。在每个所配置的场景中,传感器数据可提供视觉和音频信息,并可用于检测场景中的对象、这些对象之间的空间关系以及由之推定的3D空间占据。

为了基于从场景中检测的对象及其空间关系推断场景的类型,本示教公开了用于基于场景背景无关语法对场景进行分类的方法,该语法可以从先前已知的场景以及其中包含的对象学习。图11B示出了根据本示教一实施例,用于办公室场景的示例性场景背景无关语法。在此所示的实例中,办公室场景可包含典型地在这种场景中存在且可能在空间上构成特定关系的对象。办公室场景背景无关语法可以在这里通过AND-OR图来表征,其包括AND节点和OR节点。每个节点可表征对象或多于一个对象。在此所示实例中,AND节点被表征为具有实线圆圈的节点。OR节点是具有虚线圆圈的节点。

在此所示的实施例中,AND节点表征连接到必须存在的所有子对象的对象。例如,节点1110是连接到必须在办公室场景中存在的所有对象的AND节点。由图11B可见,办公室需要具有围墙、桌子、某些座位、计算机、某些文具以及门。OR节点表征可具有替代性实例化的对象。例如,表征“计算机”的节点是OR节点,并连接到子节点“桌上电脑”和“笔记本电脑”。这种表征指示,计算机可以是桌上型电脑或笔记本电脑,不需要在场景中存在全部这些替代物。关于办公室场景的另外的要求也可在此示例性语法中表征。例如,办公室场景中的桌子和座位可以通过“邻近”空间关系1130相关,且办公室场景中存在的桌子和计算机也可以被要求为具有“位于其上”的空间布置1140,即,计算机必须位于桌子之上。

基于这种示例性办公室场景背景无关语法,为了满足作为办公室场景的条件,需要观察到若干个对象,包括围墙、桌子、座位、计算机、文具和门,对于表征围墙的节点,其可进一步需要至少一些墙在场景中存在。对于桌子,尽管在办公室场景中需要,其有着例如L形桌、……、或写字桌等的替代性形式。类似地,在办公室场景中观察到的座位可以是椅子或长凳,办公室场景中的计算机可以是桌上电脑或笔记本电脑,在办公室场景中观察到的文具可以是笔、铅笔,而笔可能是钢笔或圆珠笔,铅笔可以是普通铅笔或自动铅笔。

这样的语法可以经由机器学习得出。在某些实施例中,不同对象之间的连接可以用例如概率注释,故可以引入更大的灵活性。例如,到节点“围墙”的连接用概率Pe注释,表征例如办公室场景在围墙内的概率。这使得这样成为可能:没有围墙的某些场景,例如,或者从传感器不可见,或者其他办公室相关对象简单地存在在开放空间(例如在没有墙的门廊)中。类似地,在到对象“门”的连接上,设置了概率Pd,其表示办公室场景有门的可能性。还可能有与到可在办公室场景中存在的其他可能的对象的连接相关联的概率。这样的概率也可经由机器学习从训练数据中学习。

图12A示出根据本示教一实施例,基于场景背景无关语法模型推断场景的场景分类单元830的示例性高层次系统图。场景分类单元830包含两个运行部分。第一部分被设置为基于训练数据经由机器学习得到不同的场景背景无关语法。第二部分将依赖于与当前场景有关的信息(检测到的对象,等等)以及学习的场景背景无关语法来推断对话场景的类型。为了得到不同的场景背景无关语法,场景分类单元830包含训练数据处理单元1270和背景无关语法学习引擎1280。图12B是根据本示教一实施例,用于基于机器学习来学习场景背景无关语法的示例性过程的流程图。训练数据处理单元1270在1215处接收训练数据,对接收到的训练数据进行处理,并发送到背景无关语法学习引擎1280以进行训练,其中,训练数据可包括先前已知的具有在各个相关联场景中存在的对象的场景及其特征(例如空间布置特征等)。在接收到处理的训练数据时,背景无关语法学习引擎1280在1225处基于训练数据且关于不同的场景类型执行机器学习,以便在1235处为各种类型的对话场景生成背景无关语法。这样为不同场景类型学习的背景无关语法于是被存档为场景背景无关语法1240,其于是可被用于对话场景推断。

为了使用学习得到的背景无关语法来推断或对对话场景进行分类,场景分类单元830进一步包含场景对象分析器1210、对象空间关系分析器1230、场景信息分析单元1250和基于语法的场景类型推断引擎1260。图12C是根据本示教一实施例,基于场景背景无关语法的场景类型推断的示例性过程的流程图。推断场景类型是基于与场景有关的信息进行的,例如在场景中存在的对象、与对象相关联的特征以及这样检测的场景对象的空间配置。当场景对象分析器1210在1255处接收到与在对话场景中检测到的对象有关的信息时,其在1265处分析场景对象及其相关联的特征。另外,基于与场景对象和特征有关的信息,对象空间关系分析器1230在1275处根据训练的场景背景无关语法来确定场景对象之间的空间关系。在场景对象之间的这样确定的空间关系以及对象自身于是被发送到基于语法的场景类型推断引擎1260。

为了推断场景类型,从对话场景获取的附加的信息也可促成场景类型确定。这种附加场景信息的一个实例包括从对话场景检测的环境声音。特定声音的识别可进一步帮助在场景类型推断过程中消除歧义。例如,如果检测到的来自对话场景的声音指示在背景中存在大量TV声音,可能暗示着对话场景不可能是海滩或公园场景。在某些实施例中,视情况可选地,场景信息分析单元1250可接收由例如用户装置或是代理装置上的传感器获取的附加场景信息,并在1285处分析这样的信息,并将分析得到的结果提供给基于语法的场景类型推断引擎1260。基于所接收的场景对象、其特征、这些场景对象之间的空间关系以及视情况可选的附加场景信息,基于语法的场景类型推断引擎1260在1295处根据场景背景无关语法1240推断对话场景的类型。这样推断的场景类型可由自动对话伴侣用于相应地执行与用户的对话。另外,在对话中涉及的场景可能随时间而改变,例如,用户可手持装置四处走动,故装置上的传感器获取的场景可能相应地变化。来自对话场景的动态变化的输入(具有特征的场景对象以及附加场景信息)可以被连续提供给场景分类单元830,使得场景类型的推断可以相应地自适应于变化的场景。

在对话场景中的3D空间占据方面用关于其空间配置的信息来检测对话场景中存在的对象不仅促成了自动对话伴侣推断对话场景的类型,还可帮助自动对话伴侣进一步推断或理解对话线程过程中的特定动态。例如,已经知道什么对象在哪里在3D对话场景中存在,经由视觉跟踪,自动对话伴侣可推定什么是用户当前关注的或感兴趣的,什么可能是用户的意图(从观察到的用户当前关注点推断),是否偏离了意图,于是,相应地设计对话策略,以便增强用户参与度,并改进用户体验。根据本示教的实施例,通过随时间跟踪用户的注视,自动对话伴侣检测参与对话的用户的注意力,从而促成关于用户正在关注什么对象、以及用户关注于该对象多长时间等等的判断。在某些情况下,用户可能正在关注于对象,例如,在进行与自动对话伴侣的对话时,孩子一直看着桌子上的乐高玩具。在某些情况下,对话场景中的多个用户可能对同一对象感兴趣,例如,教室里的两个学生注视着教师角落里的篮球。这些观察可能对于如何进行与场景中的人的对话是相关的。

图13A示出了根据本示教一实施例,经由注视检测识别不同人的共同感兴趣对象的概念。在所示出的对话场景中,存在人1和人2。在该场景中,存在不同的对象,例如桌子、一些椅子、冰箱、放在桌上的花瓶等。如果人1和人2都在看着同一对象,例如桌上的花瓶,他们在相应的注视方向(1310和1320)注视着花瓶,故他们的注视方向的交叉点(1330)对应于花瓶位于的3D位置。类似地,为了识别3D对话场景中感兴趣的对象,通过检测同一人在不同时间的注视方向可促成对用户正在关注的对象的检测。图13B示出了根据本示教一实施例,经由注视跟踪识别用户的感兴趣对象的概念。3D对话场景中的人可注视场景中的对象。人在不同时间的注视方向(1340和1350)可被检测,且不同时间的不同注视方向的交叉点(1360)可被确定,以识别与交叉点对应的3D位置上的感兴趣对象。尽管图13B中的人1在不同时间位于不同位置(即人在移动),同一人在不同时间的注视方向可能彼此重合或基本重合(即人没有移动),其可能使得交叉点的检测成为可能,因此识别感兴趣的对象。

图14A示出了根据本示教一实施例,感兴趣对象识别单元840的示例性高层次系统图。在此所示实施例中,感兴趣对象识别单元840包含动态注视光束(gazing ray)检测器1410、基于注视的感兴趣对象推定器1430、时间持续感兴趣对象1440以及基于注视的感兴趣对象确定器1450。动态注视光束检测器1410被提供为检测与对话场景中存在的各个用户的时间点对应的注视光束。检测产生注视光束推定1420,其可以关于各个目标用户被记录下来,且对于各个目标用户,多个注视光束可被记录,其中的每一个对应于特定的时间点,例如t1、t2、……、tk。对于出现在检测过程中的任何用户,记录下来的所检测注视光束也可关于注视光束被检测的时间点而被记录。例如,如图14A可见,对于目标k,第一注视光束在时间tk被检测,而从其他目标用户检测的注视光束在时间t1开始。

基于注视光束推定1420,基于注视的感兴趣对象推定器1430可进行到确定不同注视光束的交叉点。这在图14C中形象地示出。可见,每个目标有着在不同时间的注视光束。例如,对于目标1,存在时间t1、t2、……上的一组注视光束推定,目标2,存在时间t1、t2、……上的一组对于目标2的注视光束推定,以及时间tk上对于目标k的注视光束推定(目标k比其他的更晚检测)。该实例示出了目标1的注视光束和目标3的注视光束持续在不同的时间点(t1,t2,……,ti,tj)上交叉,且不同时间的交叉点持续对应于对话场景中的3D位置。该实例还示出了目标j有着不同时间点上的多个注视光束,且这些注视光束在对话场景中的3D空间内的点上交叉。另外,目标2和目标i的注视光束在时间点t2上交叉。在某些实施例中,对于检测到的每个注视光束,可以将其与在同一时间点上检测的所有其他注视光束(无论是来自同一个人还是不同的人)比较,以寻找交叉点。通过这种方式,可以识别所有的交叉点。

一旦识别出注视光束的交叉点,可基于与存储在场景对象档案825中的与检测到的场景对象有关的信息来确定这种交叉点是否与场景对象对应。在某些实施例中,尽管注视光束交叉,交叉点可能并不严格是对象的位置。这可能由于不准确的注视光束方向推定导致,不准确的注视光束方向推定由于例如不准确的照相机校准或图像处理导致。在这种情况下,可能需要基于最近的对象位置进行消歧义,从而实现场景对象的不严格的识别。在某些情况下,交叉点可能接近多个对象,特别是在一个对象挡住另一个的情况下。在这种情况下,注视光束的交叉点可以与多于一个的对象相关联。在某些情况下,交叉点可能没有任何附近的对象,如果基于场景对象的3D位姿对场景对象档案825的搜索没有显示任何对象的话。这也可以经由3D空间占据日志815来确定,例如,交叉点对应于标记为未占据的3D空间。

注视光束可以短暂而非持续性地交叉。例如,用户可看向场景中的对象达2-3秒,但迅速移开。在这种情况下,尽管注视光束在这2-3秒钟交叉,但交叉并不持续。对话场景中不同人的目光可能临时交叉但不连续。在这种情况下,特别是当他们的注视目光的交叉不具有对应的场景对象时,临时交叉的注视光束可能并不表示有意的关注。根据本示教,这可以基于时间上的持续性来消除歧义。也就是说,如果注视光束的交叉点在规定时间段上持续地被检测到,交叉点更有可能表示有意的关注。否则,其可被认为是短暂的,而不是持续的。例如,目标2和目标i之间注视光束的交叉点可能是短暂的,因为它仅仅在时间t2上被检测到,接着就消失不见了。在这种情况下,尽管目标2和目标i在t2上的注视光束交叉点对应于对象“计算机屏幕”的3D位姿,可能不能下结论说目标2和目标i感兴趣于对象“计算机屏幕”,因为这仅仅是短暂的事件。另一方面,目标1和目标i的注视光束的交叉点在t1、t2、t3、……tj上是持续的,表示这是持续事件,因此,可以下结论说目标1和目标i都关注于在3D位姿上接近目标1与目标i的注视光束持续交叉点或与之重合的对象“花瓶”。

图14B为根据本示教一实施例,感兴趣对象识别单元840的示例性过程的流程图。当动态注视光束检测器1410在1415上接收到从对话场景获取的传感器数据时,其在1425处检测在对话场景中检测到的用户的注视光束,并在不同的时间跟踪检测到的用户的这种注视光束。这样的检测产生注视光束推定1420,其于是由基于注视的对象兴趣推定器1430在1435处识别注视光束交叉点,在1445处将这样的交叉点与检测到的场景对象的3D位姿进行比较,并在1455处为与位于其上或与之接近的场景对象对应的交叉点确定备选感兴趣对象。基于备选感兴趣对象,在1465处,时间持续感兴趣对象推定器1440基于时间持续性判据1457,评估与各个备选感兴趣对象相关联的交叉点的时间持续性。基于注视的感兴趣对象选择器1450于是在1475处选择时间上持续的那些备选感兴趣对象,并在1485处输出所确定的感兴趣对象。

在替代性实施例中,时间持续性可以关于交叉点来评估,仅仅保留时间上持续的那些交叉点,并使用这些保留的交叉点来基于存档的场景对象识别对应的感兴趣对象。这参照图16A-16B更为详细地介绍。在某些实施例中,时间持续性可关于交叉点和备选感兴趣对象二者进行评估。将用于评估时间持续性的判据可以是一段连续的时间,例如长于10秒,或者是断断续续的,例如,如果在30秒的时间段内,用户专注于同一对象超过三次且每次长于5秒。这样的判据可以是依赖于应用的,或者甚至是依赖于用户的。例如,如果自动对话伴侣参与与成年用户的对话,所需要的时间持续性可以不同于用于儿童用户的。

图15A示出了根据本示教一实施例,动态注视光束检测器1410的示例性高层次系统图。如这里所讨论的,动态注视光束检测器1410被提供为检测并跟踪对话场景中一个以上的用户的注视光束,并生成注视光束推定1420。在此所示的实施例中,动态注视光束检测器1410包含用户面部跟踪器1510、用户眼睛跟踪器1520、用户识别单元1540、注视光束推定器1570。图15B为根据本示教一实施例的动态注视光束检测器840的示例性过程的流程图。为了检测注视光束,可首先检测人类面部和眼睛。在1515处接收到传感器图像数据时,用户面部跟踪器1510检测和跟踪出现在对话场景中的人类面部。与各个检测到的面部相关联的特定特征也可被识别。例如,检测到的面部相对于照相机的角度可被检测。检测到的面部及其特征可被发送到用户眼睛跟踪器1530,其在1535处从在不同图片帧中跟踪的人类面部检测眼睛及其特征。从眼睛检测的特征可包含例如瞳孔的位置,其可用于与例如和面部有关的特征(例如面部相对于照相机的角度)一起推定注视方向。

检测到的面部和眼睛及其特征于是可被发送到注视光束推定器1570和用户识别单元1540。在某些实施例中,基于检测到的面部及其特征(包括眼睛),用户识别单元1540可分析将要识别的特征,以便在1545处基于例如来自用户配置文件数据库1560的信息来识别对应的人的身份。在某些实施例中,识别可以基于用户面部特征来进行。在某些实施例中,识别可以基于其他的生物计量特征来进行,例如虹膜。在某些实施例中,识别可以基于面部和虹膜特征的组合来进行。识别用户可促成对在不同时间、关于不同用户的注视光束推定进行组织(如图14A中的1420进行组织)。

在某些实施例中,代替识别所跟踪的各个用户的身份(这可能是计算成本昂贵的)的是,用户识别单元1540可以仅仅个体地跟踪各个用户,而不进行识别。在这种情况下,用户识别单元1540可跟踪面部,以便基于例如面部特征的相似性,确保各个所跟踪面部序列最大可能地对应于同一个人。通过这种方式,用户识别单元1540将提供关于这些的信息:对话场景中存在多少个体,以及,对于各个个体,存在相关联的所跟踪面部和眼睛序列(其具有相关联的特征)。这样的结果于是被发送到注视光束推定器1570,于是,其将进行到推定在不同时间与各个个体相关联的注视光束。

在接收到来自用户面部跟踪器1510的输入(跟踪的面部)、用户眼睛跟踪器1530(关于面目跟踪的眼睛)和来自用户识别单元1540的输出(关于跟踪的面部、眼睛如何关于场景中存在的各个不同的个体分组的信息)时,注视光束推定器1570在1555处评估存储的注视方向推定模型1580,在1565处根据注视方向推定模型来分析与各个跟踪的面部和眼睛相关联的特征。例如,为了计算与2D图像中的跟踪的面部/眼睛对应的注视方向,注视光束推定器1570可基于来自2D图像的检测到的瞳孔,推定来自2D图像的目光的方向。为了进一步确定3D对话场景中的目光方向,注视光束推定器也可在1575中取得照相机校准参数1004,其具体规定2D和3D之间的映射,并在1585中推定对话场景中的目光方向或不同时间上与各个跟踪的个体相关联的注视光束。这样推定的注视光束于是可关于各个不同的个体沿着时间线被组织,并被输出为注视光束推定1420。

图16A示出了根据本示教一实施例,基于注视的感兴趣对象推定器1430的示例性高层次系统图。如参照图14A所讨论的,注视光束推定1420(其可关于个体目标沿着时间线而被组织)由感兴趣对象推定器1430用于识别与不同目标相关联的感兴趣的对象。在此所示的实施例中,基于注视的感兴趣对象推定器1430包含基于用户的注视光束交叉点确定器1610、基于用户的感兴趣对象识别器1630、跨用户注视光束交叉点确定器1620、跨用户感兴趣对象识别器1640。如所示的,注视光束的交叉点可基于注视光束推定1420,关于对话场景中各个跟踪的个体(由基于用户的注视光束交叉点确定器1610)以及跨不同用户(由跨用户注视光束交叉点确定器1620)地被识别。

基于存储在3D空间占据日志815中的信息,这样确定的交叉点可以视情况可选地被确定或否定。如果交叉点落在未占据的3D空间中或落在对话场景外,交叉点可能不对应于对话场景中的任何对象(包括移动的用户,其也被跟踪)。如果交叉点落在占据的3D空间内,则感兴趣的对象可基于与825中存档的场景对象有关的信息来识别。这由1630或是1640实现。在某些实施例中,部件1630和1640可以被合并,以便执行从对应于对话场景的3D空间中的交叉点到位置在交叉点附近或相同位置上的对象的映射。

如这里所讨论的,识别的感兴趣的对象的时间持续性可能需要确认,以便使感兴趣的对象满足作为有效的感兴趣对象的条件。如前面所讨论的,时间上的持续性可在不同的处理阶段被检查。在某些实施例中,其可以关于交叉点来执行。在某些实施例中,其可以关于基于交叉点识别的感兴趣的对象来执行。在某些实施例中,其可以在两个处理点上都执行。为了使得时间上持续的检查成为可能。基于注视的感兴趣对象推定器1430也可包含时间持续性过滤器1650,其被设置为执行基于时间持续性的过滤,或者针对交叉点,或者针对基于交叉点识别的对象。如可以看出的,为了在交叉点上执行时间持续性检查,时间持续性过滤器1650可取得来自注视光束交叉点确定器1610和1620的输入,并将过滤后的结果(时间上持续的交叉点)分别发送到感兴趣对象识别器1630和1640(取决于过滤后的交叉点涉及一个还是更多用户),从而基于通过时间持续性检查的交叉点来识别感兴趣的对象。

在一替代性配置中,时间持续性检查也可应用到基于交叉点识别的感兴趣的对象。在这种配置中,由基于用户的注视光束交叉点确定器1610以及跨用户注视光束交叉点确定器1620分别确定的交叉点可被直接发送到基于用户的感兴趣对象识别器1630和跨用户感兴趣对象识别器1640,用于识别与交叉点对应的感兴趣的对象。各个这样识别的感兴趣对象可以与特定的特征或元数据相关联,例如构成交叉点的底层注视光束的时间持续性。这样识别的感兴趣对象以及相关联的元信息于是可被发送到时间持续性过滤器1650,于是,不满足要求的时间持续性的那些可被滤除。

图16B为根据本示教一实施例,基于注视的感兴趣对象推定器1430的示例性过程的流程图。当基于注视的感兴趣对象推定器1430在1615处接收到基于用户的注视光束推定时,基于用户的注视光束交叉点确定器1610在1625处确定关于个体用户的注视光束交叉点。跨用户注视光束交叉点确定器1620在1635处确定跨不同用户的注视光束交叉点。在此所示流程图中,这样确定的交叉点在1645处被时间持续性过滤器1650过滤,于是,时间上持续的交叉点被用于识别感兴趣的对象,或者是个体用户感兴趣的,或者是多于一个用户共同感兴趣的。

为了做到这一点,基于用户的感兴趣对象识别器1630和跨用户感兴趣对象识别器1640在1655处访问在对话场景中存在的存档对象及其相关联的特征,例如它们在对话场景中的3D位置及其关于对象性质的描述。基于时间持续的交叉点及其3D坐标以及存档的场景对象的3D坐标(包括跟踪的人),基于用户的感兴趣对象识别器1630在1665处推定对话场景中的个体被跟踪用户的感兴趣对象。类似地,跨用户感兴趣对象识别器1640在1675处推定对话场景中多于一个被跟踪用户共同感兴趣的感兴趣对象。这样识别的感兴趣的对象以及与之相关联的一个以上的用户于是在1685处被输出。

采用人机对话中的推定感兴趣对象,可以帮助自动对话伴侣设计管理对话时的自适应的策略。例如,当参与对话的用户看起来不专注于对话的内容时(例如,儿童正在上辅导课,但不能正确回答问题),自动对话伴侣可访问与推定的感兴趣对象有关的信息,以查明用户当前是否感兴趣。采用此信息,对话可以以继续吸引用户参与、一直到他/她能重新专注的方式得到引导。例如,如果儿童用户处在数学辅导课的中途且丧失专注,如果观察到用户将注视集中到桌上的乐高玩具上,自动对话伴侣于是可引导会话,以临时转移到乐高玩具上,使得用户能继续参与机器。在这种情况下,自动对话伴侣可调用不同的对话树(或子树),其可被设计为谈论玩具(例如乐高玩具),但将本来预期的不同数学问题注入会话,以便不仅更好地吸引用户参与,还实现教数学的预期目的。这也为用户提供了增强的体验。

在某些情况下,在用户机器交互过程中,观察到的用户可在屏幕上被呈现,以便向用户提供更加有趣的界面。为了以模仿用户的方式进行呈现,可随时间观察多种特征,包括用户的位置和移动,于是,其可用于控制应当如何在装置上进行呈现。对于例如用户的移动对象,观察可以使用以特定的帧率进行的视频完成。众所周知,视频照相机的典型帧率是每秒钟24帧。采用这一速率,被收集的信息量极其庞大。如果使用如此高体量的数据得出需要的特征,控制移动对象在屏幕上的呈现需要许多的计算力和速度。另一方面,还有呈现帧率的问题。如果以同样的每秒24帧进行呈现,也需要许多的计算力和速度来实现。另外,将与真实场景有关的监视信息传送到装置以实现呈现目的也需要带宽。高帧率将必然增大需要的带宽。

本示教公开了使用呈现和传输需要的较低数量的位来实现上述内容的方法。图17示出了根据本示教一实施例,基于来自具有预测移动的移动对象(用户)的稀疏采样呈现移动对象(用户)的框架。在此图示中,用户1700在场景中存在,其具有特定的移动,如箭头所示。用户和移动经由例如一个以上的照相机1705、……、以及1710捕获,且所获取的视频信息被发送到监视系统1720,视频在那里被处理,以便识别从视频数据预测的用户(对象)和运动。采样点上的检测到的对象以及推定的运动被封装为基于对象的数据包,并被发送到呈现系统1750,其被设置为在装置1770上生成具有与由照相机1705、……、1710观察到的类似的特定运动的用户的呈现版本1780。

在此所示实施例中,监视系统1720包含视频处理单元1725、对象跟踪器1730、移动推定器1735、3D对象数据包生成器1740。基于来自视频处理单元1725的处理后的视频数据,正在被监视的场景中的每个用户/对象可随时间被对象跟踪器1730个体地检测和跟踪。捕获图像中的用户的随时间的位置可由对象跟踪器1730确定。基于这样跟踪的图像位置,与跟踪的2D图像位置对应的3D位置可被获得,如果在照相机1705、……以及1710被校准的话。与各个用户相关联的移动可以由移动推定器1735基于用户在不同的帧中的被跟踪位置来推定。移动可以以特定的帧率被推定,例如每秒24帧或以较低的帧率。

在某些实施例中,当例如多个照相机用于捕捉用户不同视角的图像时,可以得出关于被跟踪用户的3D信息。可应用使用2D图像得出3D信息的多种技术,以便获得3D信息。例如,可以使用基于立体视觉的方法,以便获得用户的3D信息(例如深度)。这样检测的关于场景中监视到的移动对象的信息(2D和3D中)于是可以以例如对象中心的方式被封装,并被发送到呈现系统1750。如这里所讨论的,各个封装对象可对应于在特定的时间实例上的被跟踪的用户。也就是说,每个被跟踪用户可具有一系列的对象包,其中的每一个提供在特定采样点或者在特定时间点对被跟踪用户的描绘。为了获得更为精确的跟踪信息,监视侧可以以与帧率相同或基本接近的速率保持跟踪用户移动。为了使得高效传输和呈现成为可能,跟踪信息可以稀疏地采样,与各个特定被跟踪人对应的对象包的序列可对应于系数采样速率。

图18示出了基于对象的数据包的示例性数据组织。在此所示的实施例中,基于对象的数据包可包括特定时间点上每个被跟踪对象的信息和详细描绘。例如,基于对象的数据包1790可包含与对象1 1810、对象21820、……、对象k 1830有关的信息,用于视频中特定时间点上跟踪的各个对象。对于被跟踪的对象的每一个,可以提供多种跟踪特征,例如对象的位置(其可包括2D或3D位置)、对象的定向、其在该时间点上经历的运动,等等。

在呈现侧,在从监视系统接收到对象数据包时,呈现系统1750使用推定的特征(例如3D位姿、定向以及移动信息)来呈现识别的对象。如这里讨论的,为了允许呈现系统1750使用可从装置1770获得的有限的计算能力以合理的方式呈现对象,将用于在装置1770上呈现个体对象的帧率可能较低,或甚至显著低于监视系统1720监视场景所用的帧率。为了实现这一点,对象数据包可以以稀疏的采样率生成,另外,呈现系统1750可包含基于补偿预测运动的对象呈现引擎1755,其通过依赖于在其上应用了补偿的预测运动,接纳监视速率和呈现速率之间的不同。在某些实施例中,当来自接收数据的3D信息可用时,呈现可能是3D(或部分3D)进行的,例如,基于应用于跟踪用户图像的3D动画模型1760和3D实体模型1765。基于补偿预测运动的对象呈现引擎1755的细节在下面提供。

图19示出了根据本示教一实施例,呈现系统1750的示例性系统图。在此所示的实施例中,呈现系统1750包含对象分析器1910、对象位姿/移动分析器1920、补偿移动预测器1930、对象变形(morphing)确定器1960以及基于补偿的对象呈现器1980。为了讨论基于补偿预测移动的对象呈现引擎1750如何运行,提供一说明性实例并参照图20A和图20B讨论。

在图20A中,场景中的用户从位置P1移动到P2、P3、P4和P5。这些位置被监视系统1720观察到,且这些观察可以是根据与帧率对应的频率或处于低于帧率的速率的。位置P1-P5可对应于稀疏采样点。在此说明性实例中,P1在时间T1观察到,P2在时间T2观察到,具有SP1的不同(P2-P1=SP1),其为两个采样点之间的持续时间。如所见的,在所示的实例中,采样速率用SP1描绘。对于各个采样点,监视系统1720推定与监视对象相关联的移动向量。例如,对于采样点P1,推定移动向量为M1,在P2处,移动向量为M2,等等。可以看到,所跟踪对象的序列移动构成从P1到P5的轨迹,采样率为SP1,且其基于SP1的监视速率推定。

如这里所讨论的,为了减少在装置1770上呈现所需要的资源(计算力、内存、带宽等),呈现侧可能不以目标被监视的速率呈现所跟踪对象。这可以通过以较低的帧率发送具有元信息的所跟踪对象来完成而不降低监视速率,以确保更为准确的对对象特征的推定(例如移动向量)。如图20B所示,所跟踪的用户可以以这样的呈现速率SP2呈现:其与跟踪侧上的监视速率的相比较低(SP1)。特别地,所跟踪用户仅仅关于位置P1、P3、P5来呈现,这与同一时间段上P1、P2、P3、P4、P5的采样点形成对比。本示教公开了解决更为稀疏的呈现、但具有随时间的补偿以便确保平滑视觉效果的方法和系统。

如图20B所示,在呈现系统1750接收到关于P1上的用户的信息时,也可使描绘P1上的人的移动的移动向量M1(基于视频数据推定)变得可用。在呈现移动中的人时,呈现系统1750可能没有关于P3和M3的用户信息,并可基于根据在接收到与处于P1的人有关的信息时可用的信息的预测,呈现与P3对应的时间的人。为了呈现与P1对应的时间的用户,与P1相关联的移动向量被用作基础。为了基于SP2的速率呈现与P3对应的时间的人,呈现系统1750依赖于预测,例如,基于与P1相关联的所接收的移动M1得出预测移动PM1,以确保用户从当前位置P1的投射(projection),一直到下一个时间点,或者使用与呈现系统1750相关联的呈现速率SP2的预测位置PP2。这在图20B中示出,其中,用户在P1处被呈现,从那里,同一用户在PP2处使用预测移动向量PM1被呈现,它是与P1相关联的所接收的移动向量M1的扩展版本。

当呈现系统1750接收到用于下一监视点P3的下一个基于对象的数据包时,对象位置P3被接收,其可能由于例如M1与PM1之间的不同(由于跳动的M2,其可能有着与图20A所示的M1不同的方向)而与呈现位置PP2不同。P3和PP2之间在空间中的差异可能小也可能大,但可用于补偿由呈现系统1750在下一个位置呈现用户的差异。用户的监视位置P3被接收,其具有对应的移动向量M3,M3可用于以SP2的呈现速率从P3到位置PP3的投射。基于PP2和PP3(用户在这一点上被呈现),补偿预测移动向量PM2可被得出,以便将在PP2上呈现的用户变形为PP3上的用户。通过这种方式,在每一步上,尽管对于下一时刻的呈现位置可能由于较稀疏呈现速率导致在与监视侧实际采样位置相比时具有差异,经由补偿预测移动向量PMi,呈现仍然可以大致跟踪呈现侧的移动对象的实际轨迹。然而,基于这种方法,网络和呈现装置上要求的带宽和计算低得多。当3D信息可用时,通过使用3D动画模型1760和3D实体模型1765,其可以以类似的方式得到补偿。

给出上面的讨论,图21为根据本示教一实施例,呈现系统1750的示例性过程的流程图。在运行中,当对象分析器1910在图21的2110处接收到基于对象的数据包时,其在2120处提取对象以及对应的元信息,包括其位置和移动向量,移动向量描绘采样/呈现时刻的对象的移动。呈现侧的对象状态和呈现速率可在2130处被取得(例如从对象状态日志1940),其中,对象状态可包括关于对象(用户)先前被呈现的前一位置的信息。对象状态还可包含其他的信息,例如对应的移动向量,其用于在以前的时间将对象从一个位置变形到另外的位置。

基于呈现速率,下一个呈现时间可以在2140处确定,例如0.5秒以后。采用下一个呈现时间,对象的新位姿和新移动向量用于在2150处确定接下来将要呈现对象的新的呈现位置。例如,基于接收的新位姿,新移动向量(描述移动的方向和速度)可被用于计算下一个呈现时间(0.5秒)上哪里是新位置。将要用于在新位置呈现对象的移动向量取决于先前呈现位置和从对象数据包接收的新位姿是否互相重合。为了确定这一点,先前呈现的对象位置于是可以在2160处与从当前接收的基于对象的数据包提取的对象的位姿或位置进行比较。如果如对象位姿/移动分析器1920在2160处确定的那样,它们相同,这意味着不需要补偿。例如,图20A中的P1可对应于呈现装置上的P1。在这种情况下,用当前基于对象的数据包接收的移动向量(例如M1)是正确的移动向量。

如在2160所确定的那样,如果在对象的先前呈现的位置和当前接收的位置之间存在差异(如图20B所示,在PP2和P3之间以及在PP3和P5之间),需要计算补偿移动向量。例如,如图20B所示,当PP2不与P3重合时,需要确定补偿移动向量PM2。为了做到这一点,补偿移动预测器1930在2170处基于对象将要在稍后的时间呈现(根据呈现速率SP2)的新呈现位置(例如图20B中的PP3)以及先前呈现位置(例如图20B中的PP2)确定补偿移动向量。也就是说,连接这两个呈现位置的向量与来自对象数据包的已知速度构成补偿移动向量。这样生成的补偿移动向量将被用于将对象从先前呈现的位置变形到新呈现位置。

如图20B所示,先前呈现的位置是PP2,新接收的位置是具有移动向量M3的P3。由于PP2和P3不同(差异存在),M3被用于将P3上的点投射到未来的点PP3,如基于SP2的呈现速率所确定的。于是,基于PP2和PP3,补偿移动向量PM2被生成并被用于从点PP2(先前的呈现位置)投射到PP3(基于M3和P3确定的当前呈现点)。通过这种方式,尽管PP2不与P3重合(差异存在),通过从基于新接收的对象的数据包得出补偿移动向量PM2,对象可以在这样的下一个位置被呈现:基于当前接收的对象位置(P3)和移动向量(M3),其尽可能地接近于实际位置。

为了在下一个呈现位置呈现对象,对象(用户)可根据某些变形参数从先前呈现的位置变形到新呈现位置,变形参数确定如何在下一个呈现位置对对象进行可视化。在某些实施例中,与先前呈现的对象有关的信息可用于由对象变形确定器1960在2180处确定特定的可应用变形参数,以便用于使用移动向量对对象进行变形,移动向量是接收的新移动向量(当先前呈现位置与对象的新接收位置相同时)或者是补偿移动向量(当先前呈现位置不是对象的新接收位置时)。在某些实施例中,变形参数可以根据不同的模型(例如3D动画模型1760和/或3D实体模型1765)基于对象的3D信息(如果适用)来确定。采用如此确定的移动向量,对象于是由2190处的基于补偿的3D对象呈现器1980以根据变形参数确定的虚拟化被变形/呈现在下一个位置上。通过所提出的机制,根据观察的实际移动轨迹呈现移动的用户的速率可以基于装置可用的资源而降低。另外,传送数据包以促成呈现的带宽也可显著降低。

图22为示例性移动装置架构的示意图,该架构可用于根据多种实施例实现实施本示教的至少某些部分的特定系统。在此实例中,实现本示教的用户装置对应于移动装置2200,其包括但不限于智能电话、平板电脑、音乐播放器、手持游戏机、全球定位系统(GPS)接收器、可穿戴计算装置(例如眼镜、腕表等)或其它任何外形因素。移动装置2200可包括一个以上的中央处理单元(CPU)2240、一个以上的图形处理单元(GPU)2230、显示器2220、内存2260、诸如无线通信模块的通信平台2210、存储器2290以及一个以上的输入/输出(I/O)装置2240。任何其他合适的部件,包括但不限于系统总线或控制器(未示出),也可包含在移动装置2200中。如图22所示,移动操作系统2270(例如iOS、Android、Windows Phone等)以及一个以上的应用2280可从存储器2290被装载到内存2260中,以便由CPU 2240执行。应用2280可包括浏览器或任何其他合适的移动app,用于管理移动装置2200上的会话系统。用户交互可以经由I/O装置2240实现,并经由网络120被提供给应用客户端。

为了实现本公开中介绍的多种模块、单元及其功能,计算机硬件平台可用作用于这里介绍的一个或多于一个元件的硬件平台。硬件元件、操作系统和这种计算机的编程语言在性质上是传统的,且假设本领域技术人员足够熟悉它们,以便使这些技术适应于这里介绍的本示教。具有用户接口元件的计算机可用于实现个人计算机(PC)或其他类型的工作站或终端装置,但是,如果合适地编程的话,计算机也可作为服务器运行。相信本领域技术人员熟悉这种计算机设备的结构、编程和一般运行,因此,附图可能是不言自明的。

图23为示例性计算装置架构的示意图,该架构可用于根据多种实施例实现实施本示教的至少某些部分的特定系统。实现本示教的这种特定系统具有硬件平台的功能框图,该硬件平台包括用户接口元件。计算机可以是通用计算机或专用计算机。二者都能用于实施用于本示教的特定系统。这种计算机2300可用于实现如这里所介绍的会话或对话管理系统的任何部件。例如,会话管理系统可以在例如计算机2300的计算机上实现,经由其硬件、软件程序、固件或其组合。尽管为方便起见示出了仅仅一个这样的计算机,与这里介绍的会话管理系统有关的计算机功能可以以分布式方式在若干个类似的平台上实现,从而分散处理负荷。

例如,计算机2300包括与连接于其上的网络相连接的COM端口2350,以促进数据通信。计算机2300还包括中央处理单元(CPU)2320,其采用一个或多于一个处理器的形式,用于执行程序指令。示例性计算机平台包括:内部通信总线2310;不同形式的程序存储器和数据存储器(例如盘2370、只读存储器(ROM)2330或随机访问存储器(RAM)2340),用于将要由计算机2300处理和/或进行通信的多种数据文件以及将由CPU 2320执行的可能的程序指令。计算机2300还包括I/O部件2360,其支持在计算机和这里的其他部件(例如用户接口元件2380)之间的输入/输出流。计算机2300也可经由网络通信接收编程和数据。

因此,如上面所概述的对话管理方法和/或其他过程的实施形态可以在程序中实现。本技术的程序方面可被看作典型地出于可执行代码和/或相关数据的形式的“产品”或“制品”,该可执行代码和/或相关数据被承载在一种机器可读介质上或在其中实现。有形非暂时性“存储器”类型介质包括任何或全部存储器或其他的用于计算机、处理器等的存储器或其相关模块,例如多种半导体存储器、带驱动器、盘驱动器等,其可在任何时候提供用于软件编程的存储。

所有或部分软件有时可通过网络(例如互联网或多种其他电信网络)传送。例如,这种传送可使软件从一台计算机或处理器向另一台(例如与会话管理有关)的载入成为可能。因此,可承载软件元件的另一类型的介质包括光、电和电磁波,例如通过本地装置之间的物理接口、通过有线和光固定网络、通过多种空中链路使用。承载这种波的物理元件(例如有线或无线链路,光链路等)也被看作承载软件的介质。如这里所使用的,除了限制为有形的“存储”介质,例如计算机或机器“可读介质”的术语指参与向处理器提供指令以便执行的任何介质。

因此,机器可读介质可采用多种形式,包括但不限于有形存储介质、载波介质或物理传输介质。非易失性存储介质包括例如光或磁盘,例如任何计算机等等之中的任何存储装置,其可用于实现附图所示的系统或其任何部件。易失性存储介质包括动态存储器,例如这种计算机平台的主存储器。有形传输介质包括:同轴电缆、铜线和光纤,其包括构成计算机系统内的总线的导线。载波传输介质可采用电或电磁信号或者是声或光波(例如在射频(RF)和红外(IR)数据通信期间生成的那些)的形式。计算机可读介质的一般形式因此包括例如软盘、可折叠盘、硬盘、磁带、任何其他磁介质、CD-ROM、DVD或DVD-ROM、任何其他光介质、穿孔卡片纸带、具有孔的图案的任何其他物理存储介质、RAM、PROM和EPROM、闪速EPROM、任何其他的存储器芯片或插装盒、传输数据或指令的载波、传送这样的载波的链路或电缆、或计算机可从之读取编程代码和/或数据的任何其他介质。许多这些形式的计算机可读介质可以涉入将一个或多于一个的指令的一个或多于一个的序列承载到物理处理器,以便执行。

本领域技术人员将会明了,本示教适用于多种修改和/或增强。例如,尽管上面介绍的多种部件的实现可以在硬件装置中实现,其还可实现为仅仅使用软件的解决方案,例如安装在已有的服务器上。另外,这里所公开的欺骗性网络检测技术也实现为固件、固件/软件组合、固件/硬件组合或是硬件/固件/软件组合。

尽管上面已经介绍了本示教和/或其他实例,将会明了,可对之做出多种修改,且这里公开的主题可以以多种形式和实例实现,且本示教可以在多种应用中应用,这里仅仅介绍了其中的一些。所附权利要求旨在要求落入本示教真实范围内的任何以及全部应用、修改和变型。

相关技术
  • 用于基于视觉背景无关语法模型推断场景的系统和方法
  • 在自然语言理解系统中用于位置的基于规则的语法和用于前终端的统计模型
技术分类

06120112180587