用于在自动驾驶车辆与外部观察者之间的通信的虚拟模型

文档序号:1957942 发布日期:2021-12-10 浏览:3次 >En<

阅读说明:本技术 用于在自动驾驶车辆与外部观察者之间的通信的虚拟模型 (Virtual model for communication between an autonomous vehicle and an external observer ) 是由 D·班纳吉 A·A·肯达黛 于 2020-05-04 设计创作,主要内容包括:用于在自动驾驶车辆与一个或多个外部观察者之间的交互的系统和方法包括自动驾驶车辆的驾驶员的虚拟模型。虚拟模型可以由自动驾驶车辆生成并且显示给一个或多个外部观察者,并且在一些情况下使用由外部观察者佩戴的设备进行显示。虚拟模型可以使用手势或其它视觉提示,来促进在外部观察者与自动驾驶车辆之间的交互。虚拟模型可以利用外部观察者的特性(比如外部观察者的面部图像、虹膜或其它代表性特征)进行加密。用于多个外部观察者的多个虚拟模型可以同时地用于多个通信,同时防止由于可能的多个虚拟模型的重叠而造成的干扰。(Systems and methods for interaction between an autonomous vehicle and one or more external observers include a virtual model of a driver of the autonomous vehicle. The virtual model may be generated by the autonomous vehicle and displayed to one or more external observers, and in some cases using a device worn by the external observer. The virtual model may use gestures or other visual cues to facilitate interaction between an external observer and the autonomous vehicle. The virtual model may be encrypted using characteristics of the external observer, such as an image of the external observer&#39;s face, iris, or other representative features. Multiple virtual models for multiple external observers can be used for multiple communications simultaneously while preventing interference due to possible overlapping of multiple virtual models.)

用于在自动驾驶车辆与外部观察者之间的通信的虚拟模型

技术领域

本申请涉及在自动驾驶车辆与外部观察者之间的通信。例如,本申请的各方面针对用于在自动驾驶车辆与一个或多个行人之间的通信的驾驶员虚拟模型。

背景技术

在存在行人和/或其他外部观察者的时候,避免事故和营造安全驾驶环境是操作自动驾驶车辆的重要目标。在涉及具有人类驾驶员的传统车辆的情况下,在人类驾驶员与外部观察者之间的实时交互可以帮助减少不安全的交通状况。然而,自动驾驶车辆缺少人类驾驶员可能会对这样的交互造成挑战。

发明内容

在一些示例中,描述了用于生成虚拟模型的技术和系统,该虚拟模型描绘自动驾驶车辆的虚拟驾驶员。使用本文描述的技术生成的虚拟模型允许在自动驾驶车辆与一个或多个外部观察者之间的交互,所述外部观察者包括行人和/或其他乘客和/或除了自动驾驶车辆之外的其它车辆的驾驶员。虚拟模型可以包括自动驾驶车辆的虚拟驾驶员的增强现实和/或虚拟现实三维(3D)模型(例如,驾驶员的全息图、拟人化、人形机或类人演示)。

在一些示例中,虚拟模型可以由自动驾驶车辆生成。在一些示例中,虚拟模型可以由与自动驾驶车辆相通信的服务器或其它远程设备生成,并且自动驾驶车辆可以从该服务器或其它远程设备接收虚拟模型。在一些示例中,一个或多个虚拟模型可以显示在自动驾驶车辆内或者在自动驾驶车辆的一部分(例如,挡风玻璃、显示器和/或车辆的其它部分)上,使得一个或多个虚拟模型可以由一个或多个外部观察者看到。在一些示例中,自动驾驶车辆可以使得虚拟模型要由一个或多个外部观察者所佩戴的、附着于一个或多个外部观察者的或与一个或多个外部观察者并列的一个或多个设备(例如,头戴式显示器(HMD)、平视显示器(HUD)、增强现实(AR)设备(比如AR眼镜)和/或其它合适的设备)来显示。

虚拟模型可以促进在一个或多个外部观察者与自动驾驶车辆之间的交互。例如,一个或多个外部观察者可以使用一个或多个用户输入,比如使用手势或其它视觉提示、音频输入和/或其它用户输入,来与自动驾驶车辆进行交互。在一些示例中,其它类型的通信技术(例如,利用音频和/或视觉消息)可以与所述一个或多个输入一起使用,以与自动驾驶车辆进行通信。在一个说明性示例中,可以使用手势输入和另一类型的通信技术(例如,一个或多个音频和/或视觉消息)与自动驾驶车辆进行通信。

在一些方面中,可以利用针对特定外部观察者的唯一加密,对虚拟模型进行加密。在一些示例中,加密可以是基于外部观察者的面部图像、虹膜和/或其它代表性特征的。在这样的示例中,外部观察者的面部图像、虹膜和/或其它代表性特征可以用于对与外部观察者有关的虚拟模型进行解密,而与外部观察者无关的其它虚拟模型(但可能与其他外部观察者有关,例如)可能不会被外部观察者解密。因此,通过使用特定于外部观察者的解密,使得外部观察者能够观看针对该外部观察者创建的虚拟模型并与之交互,而向该外部观察者隐藏针对其他外部观察者的虚拟模型。

根据至少一个示例,提供在一个或多个车辆与一个或多个外部观察者之间进行通信的方法。该方法包括:检测用于与车辆进行通信的第一外部观察者。该方法还包括:针对车辆获取用于与第一外部观察者进行通信的第一虚拟模型。该方法包括:基于第一外部观察者的一个或多个特性,对第一虚拟模型进行加密以生成加密的第一虚拟模型。该方法还包括:以及使用加密的第一虚拟模型与第一外部观察者进行通信。

在另一示例中,提供用于在一个或多个车辆与一个或多个外部观察者之间进行通信的装置,该装置包括:被配置为存储数据的存储器、以及耦合到存储器的处理器。处理器可以在电路中实现。处理器被配置为并且可以:检测用于与车辆进行通信的第一外部观察者。该装置还被配置为并且可以:针对车辆获取用于与第一外部观察者进行通信的第一虚拟模型。该装置被配置为并且可以:基于第一外部观察者的一个或多个特性,对第一虚拟模型进行加密以生成加密的第一虚拟模型。该装置被配置为并且可以:使用加密的第一虚拟模型与第一外部观察者进行通信。

在另一示例中,提供具有存储在其上的指令的非暂时性计算机可读介质,指令在被一个或多个处理器执行时使得一个或多个处理器进行以下操作:检测用于与车辆进行通信的第一外部观察者;针对车辆获取用于与第一外部观察者进行通信的第一虚拟模型;基于第一外部观察者的一个或多个特性,对第一虚拟模型进行加密以生成加密的第一虚拟模型;以及使用加密的第一虚拟模型与第一外部观察者进行通信。

在另一示例中,提供用于在一个或多个车辆与一个或多个外部观察者之间进行通信的装置。该装置包括:用于检测用于与车辆进行通信的第一外部观察者的单元。该装置还包括:用于针对车辆获取用于与第一外部观察者进行通信的第一虚拟模型的单元。该装置包括:用于基于第一外部观察者的一个或多个特性,对第一虚拟模型进行加密以生成加密的第一虚拟模型的单元;用于使用加密的第一虚拟模型与第一外部观察者进行通信的单元。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:检测一个或多个外部观察者中的至少第一外部观察者正在尝试与车辆进行通信。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:检测至少第一外部观察者正在使用一个或多个手势来尝试与车辆进行通信。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:从包括第一外部观察者的至少一部分的一个或多个图像中提取一个或多个图像特征;并且基于一个或多个图像特征,检测第一外部观察者正在尝试与车辆进行通信。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:识别与第一外部观察者相关联的输入;并且基于输入,检测第一外部观察者正在尝试与车辆进行通信。在一些示例中,输入包括一个或多个手势。

在一些方面中,检测至少第一外部观察者正在尝试与车辆进行通信,包括:识别第一外部观察者的一个或多个特点;检测第一外部观察者正在执行一个或多个手势;并且基于第一外部观察者的一个或多个特点来解释一个或多个手势。

在一些方面中,一个或多个特点包括以下中的至少一项:由第一外部观察者所说的语言、第一外部观察者的人种、或者第一外部观察者的种族。

在一些方面中,检测第一外部观察者正在执行一个或多个手势并且基于一个或多个特点来解释一个或多个手势包括:访问手势数据库。

在一些方面中,第一虚拟模型是基于第一外部观察者的一个或多个特点针对第一外部观察者来生成的。

在一些方面中,一个或多个特点包括以下中的至少一项:由第一外部观察者所说的语言、第一外部观察者的人种、或者第一外部观察者的种族。

在一些方面中,检测第一外部观察者包括:跟踪第一外部观察者的注视;基于跟踪注视,确定第一外部观察者的视野;并且检测视野包括车辆的至少一部分。

在一些方面中,第一外部观察者的一个或多个特性包括:第一外部观察者的面部特性或虹膜中的至少一项。

在一些方面中,使用加密的第一虚拟模型与第一外部观察者进行通信包括:基于第一外部观察者的一个或多个特性,对加密的第一虚拟模型的帧进行解密;向第一外部观察者投射第一虚拟模型的经解密的帧。

在一些方面中,向第一外部观察者投射第一虚拟模型的经解密的帧包括:检测第一外部观察者的视野;并且基于视野,向第一外部观察者投射第一虚拟模型的经解密的帧的注视点渲染。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:使得加密的第一虚拟模型的第一组帧对第一外部观察者可见;并且防止第一组帧对一个或多个其他外部观察者可见。

在一些方面中,使得第一组帧可见包括:在具有可变折射率的玻璃表面上显示第一组帧;并且修改玻璃表面的折射率,以选择性地允许第一组帧穿过在第一外部观察者的视野中的玻璃表面。

在一些方面中,防止第一组帧可见包括:在具有可变折射率的玻璃表面上显示第一组帧;并且修改折射率,以选择性地阻止第一组帧穿过在一个或多个其他外部观察者的视野中的玻璃表面。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:检测用于与车辆进行通信的第二外部观察者;针对车辆获取用于与第二外部观察者进行通信的第二虚拟模型;基于第二外部观察者的一个或多个特性,对第二虚拟模型进行加密,以生成加密的第二虚拟模型;并且在使用加密的第一虚拟模型与第一外部观察者进行通信的同时,使用加密的第二虚拟模型与第二外部观察者进行通信。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:向第一外部观察者投射加密的第一虚拟模型的第一组帧;向第二外部观察者投射加密的第二虚拟模型的第二组帧;并且防止第一组帧与第二组帧重叠。

在一些方面中,防止第一组帧与第二组帧重叠包括:在具有可变折射率的玻璃表面上显示第一组帧和第二组帧;修改玻璃表面的第一部分的折射率,以选择性地允许第一组帧穿过玻璃表面的在第一外部观察者的视野中的第一部分,同时阻止第二组帧穿过玻璃表面的在第一外部观察者的视野中的第一部分;并且修改玻璃表面的第二部分的折射率,以选择性地允许第二组帧穿过玻璃表面的在第二外部观察者的视野中的第二部分,同时阻止第一组帧穿过玻璃表面的在第二外部观察者的视野中的第二部分。

在一些方面中,检测要与车辆进行通信的第一外部观察者包括:检测第一外部观察者的设备。在一些方面中,该设备包括头戴式显示器(HMD)。在一些方面中,该设备包括增强现实眼镜。

在一些方面中,使用加密的第一虚拟模型与第一外部观察者进行通信包括:与设备建立连接,并且使用连接,向设备发送加密的第一虚拟模型的帧。在一些方面中,该设备可以基于一个或多个特性,对加密的第一虚拟模型进行解密。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:生成第一虚拟模型。例如,在一些示例中,装置是车辆或者是车辆的组件(例如,计算设备)。在这样的示例中,车辆或车辆的组件可以生成第一虚拟模型。在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:从服务器接收第一虚拟模型。

在一些方面中,上文所描述的方法、装置和计算机可读介质还包括:在与至少第一外部观察者的通信终止时,禁用第一虚拟模型或降低其质量。

根据至少一个其它示例,提供用于在车辆与一个或多个外部观察者之间进行通信的方法。该方法包括:由一个或多个外部观察者中的一外部观察者的设备在设备与车辆之间建立连接。该方法还包括:在设备处从车辆接收虚拟驾驶员的虚拟模型,并且使用虚拟模型与车辆进行通信。

在另一示例中,提供用于在车辆与一个或多个外部观察者之间进行通信的装置,该装置包括:被配置为存储数据的存储器、以及耦合到存储器的处理器。处理器被配置为并且可以:由一个或多个外部观察者中的一外部观察者的设备在设备与车辆之间建立连接。处理器被配置为并且可以:在设备处从车辆接收虚拟驾驶员的虚拟模型,并且使用虚拟模型与车辆进行通信。

在另一示例中,提供具有存储在其上的指令的非暂时性计算机可读介质,指令在被一个或多个处理器执行时使得一个或多个处理器进行以下操作:由一个或多个外部观察者中的一外部观察者的设备在设备与车辆之间建立连接;在设备处从车辆接收虚拟驾驶员的虚拟模型,并且使用虚拟模型与车辆进行通信。

在另一示例中,提供用于在车辆与一个或多个外部观察者之间进行通信的装置。该装置包括:用于由一个或多个外部观察者中的一外部观察者的设备在设备与车辆之间建立连接的单元;用于在设备处从车辆接收虚拟驾驶员的虚拟模型的单元;用于使用虚拟模型与车辆进行通信的单元。

在一些方面中,设备包括头戴式显示器(HMD)。在一些方面中,设备包括增强现实眼镜。

在一些方面中,虚拟模型是基于外部观察者的一个或多个特性来加密的。

在一些方面中,建立连接是基于接收与车辆进行通信的请求的。在一些方面中,建立连接是基于发送与车辆进行通信的请求的。在一些方面中,虚拟模型是由设备来显示的。

在一些方面中,使用所接收的虚拟模型与车辆进行通信是基于一个或多个手势的。

本概述既不旨在标识所要求保护的主题的关键或基本特征,也不旨在单独地用于确定所要求保护的主题的范围。应当通过参考本专利的整个说明书的适当部分、任何或所有附图、以及每项权利要求来理解主题。

在参考以下说明书、权利要求和附图时,前述内容连同其它特征和实施例将变得更加显而易见。

附图说明

本申请的说明性实施例是结合附图在下文详细地描述的:

图1示出根据本公开内容的包括自动驾驶车辆和一个或多个外部观察者的示例系统。

图2示出根据本公开内容的用于创建驾驶员的虚拟模型以与外部观察者进行交互的过程的示例。

图3示出根据本公开内容的用于创建和加密驾驶员的虚拟模型以与外部观察者进行交互的过程的示例。

图4示出根据本公开内容的用于投射驾驶员的虚拟模型的波束以与外部观察者进行交互的过程的示例。

图5示出根据本公开内容的包括自动驾驶车辆和具有重叠视野的两个或更多外部观察者的示例系统。

图6示出根据本公开内容的用于防止在多个外部观察者的重叠视野中的多个虚拟模型之间的干扰的过程的示例。

图7示出根据本公开内容的用于修改玻璃表面的折射率的示例系统。

图8示出根据本公开内容的包括自动驾驶车辆和具有头戴式显示器的一个或多个外部观察者的示例系统。

图9A-图9B示出根据本公开内容的用于在自动驾驶车辆与具有头戴式显示器的一个或多个外部观察者之间的交互的示例过程。

图10A和图10B示出用于在自动驾驶车辆与一个或多个外部观察者之间提供通信以实现在本公开内容中描述的技术的过程的示例。

图11示出用于实现在本公开内容中描述的技术的示例计算设备架构。

具体实施方式

下文提供本公开内容的某些方面和实施例。对于本领域技术人员将显而易见的是,这些方面和实施例中的一些可以独立地应用,并且它们中的一些可以组合地应用。在以下描述中,为了解释的目的,阐述特定的细节以便提供对本申请的实施例的透彻理解。然而,将显而易见的是,可以在不具有这些特定细节的情况下实践各个实施例。附图和描述不旨在是限制性的。

随后的描述仅提供示例性实施例,并且不旨在限制本公开内容的范围、适用性或配置。确切地说,示例性实施例的随后描述将向本领域技术人员提供用于实现示例性实施例的使能性描述。应当理解的是,在不脱离在所附权利要求书中阐述的本申请的精神和范围的情况下,可以对各元素的功能和布置进行各种改变。

与在交通中操作车辆相关联的一些挑战与以下各项有关:遵守交通法规、了解道路状况和周围环境、以及与附近其它人工驾驶车辆的驾驶员以及其他外部观察者(比如行人)进行通信。虽然人类驾驶员可以通过多个有意和潜意识的动作(例如,使用手势、眼神、倾斜或转动头部、使用车辆的转向灯、刹车灯、喇叭等)来表明他们的意图,但在自动驾驶车辆中缺少人类驾驶员限制了在自动驾驶车辆与外部观察者之间可能进行的通信类型。在当前的道路和其它交通环境(例如,停车场)中,在车辆与外部观察者之间的这些通信对于实现安全且高效的交通流是非常重要的。

随着自动驾驶车辆的进步,具有人工智能、大型传感器阵列、自动化机制和其它设备的计算机能够在自动驾驶车辆中替代人类驾驶员。全自动驾驶车辆在驾驶座上可能没有人类驾驶员,而一个或多个人类乘客可能位于其它座位上。虽然自动驾驶车辆可能会继续具有内置的传统的信号方法(比如转向信号和刹车灯),但它们可能缺乏执行可以由人类驾驶员执行的各种其它类型的通信的能力。

本公开内容的示例方面针对于用于通过使用驾驶员的虚拟模型来实现或增强在自动驾驶车辆与一个或多个外部观察者(比如行人)之间的交互的技术。应当理解的是,如本文所使用的外部观察者可以包括行人和/或乘客和/或除了本自动驾驶车辆之外的其它车辆的驾驶员。

在一些示例中,描述用于生成虚拟模型的技术和系统,该虚拟模型描绘自动驾驶车辆的虚拟驾驶员。使用本文描述的技术生成的虚拟模型允许在自动驾驶车辆与一个或多个外部观察者之间的交互。虚拟模型可以包括自动驾驶车辆的虚拟驾驶员的增强现实和/或虚拟现实三维(3D)模型(例如,在驾驶员的图形、全息图、拟人化、人形机或类人演示中使用网格生成)。在一些情况下,虚拟模型可以包括虚拟驾驶员的二维(2D)模型。在一些示例中,虚拟模型可以由自动驾驶车辆生成。虽然一些示例是关于执行各种功能的自动驾驶车辆来描述的,但是本领域技术人员将理解的是,在一些实现方式中,自动驾驶车辆可以与可以执行本文描述的功能中的一个或多个功能的服务器进行通信。例如,在一些示例中,服务器可以向自动驾驶车辆发送信息,并且自动驾驶车辆可以基于来自服务器的信息,显示或以其它方式呈现虚拟模型。在一些示例中,虚拟模型可以由与自动驾驶车辆相通信的服务器或其它远程设备生成,并且自动驾驶车辆可以从服务器或其它远程设备接收虚拟模型。

在一些示例中,一个或多个虚拟模型可以在自动驾驶车辆内显示或多个虚拟模型(例如,作为全息图或其它描绘)或者在自动驾驶车辆的一部分(例如,挡风玻璃、显示器和/或车辆的其它部分)上显示,使得一个或多个虚拟模型可以被一个或多个外部观察者看到。在一些示例中,自动驾驶车辆和/或服务器可以使得虚拟模型要由一个或多个外部观察者所佩戴的、附着于一个或多个外部观察者的或与一个或多个外部观察者并列的一个或多个设备(例如,头戴式显示器(HMD)、平视显示器(HUD)、虚拟现实(VR)眼镜、增强现实(AR)设备(比如AR眼镜)和/或其它合适的设备)来显示。

虚拟模型可以用于促进在一个或多个外部观察者与自动驾驶车辆之间的交互。例如,一个或多个外部观察者可以使用一个或多个用户输入,比如使用手势或其它视觉提示、音频输入和/或其它用户输入,来与自动驾驶车辆进行交互。在一些示例中,一个或多个输入(例如,手势输入)可以与其它类型的通信技术(例如,利用音频和/或视觉消息)一起用于与自动驾驶车辆进行通信。

在一些情况下,当检测到外部观察者和/或当外部观察者被识别为执行指示该外部观察者正在尝试与自动驾驶车辆进行通信的特定动作时,可以生成虚拟驾驶员的虚拟模型(例如,作为3D模型)。在一些实现方式中,虚拟模型可以是类人数字投射或提供类人形象的图像。通过提供外部观察者可以与之交互的虚拟模型,外部观察者可以获得改进的用户体验,因为外部观察者在与看起来像人类的3D模型(例如,类人数字投射或类人形象的图像)交互时可能会感到放松且舒适。例如,外部观察者可以使用比如手势(例如,挥手、指示停车标志、表示让路或按标志驾驶、或其它手势)、用眼睛做手势(例如,眼睛注视车辆的方向)、可听见或不可听见的口语等的本能自然语言交流技术与虚拟驾驶员的虚拟模型交互(例如,向虚拟驾驶员传达一个或多个消息)。

如上文所指出的,在一些方面中,虚拟模型可以由自动驾驶车辆在检测外部观察者正在尝试与自动驾驶车辆通信时生成。例如,触发生成虚拟模型的动作可以包括一个或多个手势、听觉输入和/或由外部观察者执行的指示外部观察者正在尝试与自动驾驶车辆进行通信的其它动作。

在一些示例中,自动驾驶车辆可以利用一个或多个标记来辅助检测外部观察者正在尝试与自动驾驶车辆进行通信。在一些情况下,标记可以包括任何视觉提示,其可以将外部观察者的注视吸引到自动驾驶车辆或者其一部分。例如,标记可以包括挡风玻璃的一部分或者在自动驾驶车辆的驾驶员座椅中的物体。在一说明性示例中,标记可以包括在自动驾驶车辆的驾驶员座椅上的人的物理模型,以传达驾驶员在场的存在。物理模型可以吸引外部观察者的注意力,并且将外部观察者的注视吸引到物理模型。物理模型可以是一个或多个图像、剪贴画(例如,纸板剪贴画)、三维(3D)形状(例如,类人人体模型、雕塑、人物等)、和/或可以放置在自动驾驶车辆的驾驶员座椅或其他部分以吸引或招致外部观察者注意力的其它物体。在一些情况下,标记可以包括在自动驾驶车辆中(例如,比如在车辆的挡风玻璃上或在车辆内)显示的虚拟模型(例如,2D或3D模型)。如上文所指出的,外部观察者可以使用手势或其它输入与虚拟模型进行交互。

在一些情况下,在确定在外部观察者与虚拟模型之间的交互完成之后,可以撤回模型(例如,模型的投射或显示)以降低功耗。在一些情况下,可以始终在车辆内部或车辆的一部分上呈现(例如,作为标记)虚拟驾驶员的3D模型的模糊、低/较低质量(与在与一个或多个外部观察者建立的交互期间的较高质量渲染相比)和/或较低功率投射,以便向外部观察者传达存在可能与之通信(例如,利用手势、音频输入等)的虚拟驾驶员模型。当与一个或多个外部观察者的交互正在发生时,可以呈现3D模型的较高质量和/或较高功率投射。

除了标记之外,自动驾驶车辆还可以包括一个或多个图像传感器和目标检测机制以检测外部观察者。一个或多个图像传感器可以包括一个或多个摄像机、静止图像相机、光学传感器、深度传感器和/或其它图像捕获设备。在一种示例实现方式中,可以对捕获的图像(例如,通过自动驾驶车辆或其它设备的一个或多个图像传感器捕获)执行特征提取。然后,可以将目标检测算法应用于所提取的图像特征以检测外部观察者。在一些情况下,可以应用Weiner(维纳)滤波器来锐化图像。然后,可以向所检测到的外部观察者应用目标识别,以确定所检测到的外部观察者是否正在向车辆做出手势和/或进行其它视觉输入。在一些情况下,除了基于手势的输入之外,可以使用其它输入(例如,音频输入),或者可以使用其它输入作为基于手势的输入的替代。手势(或其它输入,比如音频)可以用作触发,所述触发用于触发比如估计外部观察者的姿势(姿势估计)、虚拟驾驶员的渲染等的过程。在一些情况下,可以使用光流算法来跟踪外部观察者。当外部观察者被检测为尝试使用手势或如上文所概述的其它消息传递技术与车辆进行通信时,可以提高跟踪质量(例如,每秒帧数或“fps”)。

在一些实现方式中,自动驾驶车辆可以包括眼睛追踪机制,以检测外部观察者的眼睛或虹膜,比如以测量外部观察者的眼睛位置和/或眼睛运动。眼睛追踪机制可以获得比如注视点(外部观察者正在看的地方)、眼睛相对于外部观察者的头部的运动等的信息。使用眼睛追踪机制,自动驾驶车辆可以确定外部观察者是否正在观看与自动驾驶车辆相关联的标记(例如,车辆的虚拟驾驶员的虚拟模型、车辆内或车辆上的视觉提示和/或其它标记)。可以考虑各种附加因素,以期望的置信度或确定性来确定外部观察者在意图与自动驾驶车辆进行通信的情况下正在观看标记。例如,外部观察者被检测为正在观看标记并且保持凝视的持续时间,可以用于确定外部观察者正在尝试与自动驾驶车辆进行通信。

如先前所描述的,自动驾驶车辆可以在检测外部观察者正在尝试与自动驾驶车辆进行通信时,生成虚拟模型。在一些示例中,自动驾驶车辆可以基于检测外部观察者正在观看或凝视标记,来检测外部观察者正在尝试与自动驾驶车辆进行通信,如先前所讨论的。在一些实现方式中,由自动驾驶车辆在检测外部观察者正在尝试与自动驾驶车辆通信时生成的虚拟模型可能与标记不同。在一些方面中,自动驾驶车辆可以通过确定与外部观察者通信的愿望或需要,来生成虚拟模型,即使外部观察者可能没有首先显示与自动驾驶车辆进行通信的意图。例如,自动驾驶车辆可以确定获得外部观察者注意的愿望或需要,并且可以与外部观察者进行通信,即使外部观察者没有观看标记或以其它方式建立与自动驾驶车辆进行通信的意图。在一说明性示例中,自动驾驶车辆可以在人行横道处确定外部观察者正在试图以违反交通规则或状况的方式在自动驾驶车辆前方穿过,并且自动驾驶车辆可能希望使用至少一个或多个手势、音频输出和/或由虚拟模型执行的其它功能来传达指令或消息。

在一些示例中,可以定制虚拟模型以与外部观察者进行交互。对驾驶员的虚拟模型的定制可以是基于外部观察者的一个或多个特点或特性的。定制的虚拟模型可以具有定制的肢体语言、定制的手势、定制的外貌、以及基于外部观察者特性的其它定制特征。例如,可以基于一个或多个特点或特性来定制虚拟驾驶员的增强现实3D或2D虚拟模型,以与特定的外部观察者进行交互。一个或多个特点或特性可以包括种族、外貌、动作、年龄、其任何组合、和/或外部观察者的其它特点或特性。

在一些情况下,包括特征提取的目标识别算法可以用于提取特征并且检测外部观察者的特点或特性(例如,外部观察者的种族、外部观察者的性别、外部观察者的头发颜色、外部观察者的其它特性、或者其任何组合)。在一些示例中,如上文所描述的,用于确定所检测到的外部观察者是否正在向车辆进行输入的目标识别、或者其它目标识别算法可以用于执行特征提取以检测外部观察者的特点或特性。

外部观察者的特性可以用于定制针对该外部观察者生成的驾驶员虚拟模型。例如,可以生成虚拟模型以匹配外部观察者的种族、以与外部观察者相同的语言说话(例如,根据从外部观察者接收的语音信号来识别),和/或匹配外部观察者的其它检测到的特性。使用种族作为一个说明性示例,基于检测到的外部观察者的种族的虚拟模型的定制,可以基于特定于种族的手势、特定于种族的音频(例如,带有与种族相对应的口音的音频)、或其它特定于种族的通信来提高通信质量。在一些实现方式中,定制的虚拟模型可以是基于神经网络根据先前学习的模型来生成的,比如使用基于云的模式匹配实时生成。例如,随着获取更多的样本数据,可以不断地重新训练用于生成虚拟模型的神经网络。

在一些示例中,自动驾驶车辆可以获得与手势相关的特征数据,与手势相关的特征数据可以用于与外部观察者的通信或交互。例如,自动驾驶车辆可以连接到数据存储和/或访问数据存储(例如,数据库或其它存储机制)以获得与手势相关的特征数据。在一些示例中,数据存储可以是存储在自动驾驶车辆中的具有已知手势的本地数据库。在一些示例中,数据存储可以是基于服务器的系统,比如包括具有已知手势的数据库的基于云的系统,可以从基于服务器的系统下载手势相关信息并将其存储在自动驾驶车辆上,或根据需要按需访问。当检测并识别新的手势时,可以更新数据存储(本地数据库和/或存储在服务器上的数据库)。在一些示例中,神经网络可以基于里用已知手势进行训练(例如,使用监督学习技术)来识别手势。在一些情况下,可以使用最新检测到的手势来训练神经网络(例如,在使用神经网络时使用在线训练),并且可以将新手势保存在数据存储中。

在一个说明性示例中,自动驾驶车辆可以将由外部观察者执行的手势与来自数据存储的一个或多个手势进行比较,以确定该手势是否是可用作生成虚拟模型的触发的已识别手势。可以基于对检测到的手势的解释,来生成可以与外部观察者进行交互的虚拟模型(例如,虚拟驾驶员的2D或3D渲染)。例如,在一些情况下,可以将虚拟驾驶员的3D渲染生成为增强现实3D投射(例如,位于车辆的驾驶员座椅中),以向外部观察者显示为自动驾驶车辆的驾驶员。如上文所指出的,在一些情况下,可以将虚拟驾驶员的渲染生成为2D模型。

在一些实现方式中,可以同时生成多个虚拟模型,并将其用于与多个外部观察者的交互。例如,可以生成两个或更多的虚拟模型,以与两个或更多外部观察者同时进行交互(例如,被生成用于与第一外部观察者进行交互的第一虚拟模型,被生成用于与第二外部观察者进行交互的第二虚拟模型,等等)。可以在与相应的两个或更多外部观察者相对应的特定角度和/或距离处渲染两个或更多虚拟模型。例如,可以在相对于第一外部观察者的第一角度和/或第一距离处显示第一虚拟模型,并且可以在相对于第二外部观察者的第二角度和/或第二距离处显示第二虚拟模型。

在生成用于与一个或多个外部观察者通信的一个或多个虚拟模型的各个方面中,自动驾驶车辆可以利用加密技术来确保特定的虚拟模型只可以被作为预期接收者的特定外部观察者查看,而不可以被不是来自一个或多个虚拟模型的通信的预期接收者的其他外部观察者查看。在一些示例中,可以在存在多个外部观察者并且多个虚拟模型被同时生成并用于与多个外部观察者的交互的情况下,采用加密技术。

在一些示例中,加密技术可以是基于提取外部观察者的一个或多个图像特征的(例如,使用上文所描述的目标识别算法或其它目标识别算法)。例如,可以从自动驾驶车辆的一个或多个图像传感器获得外部观察者的面部、虹膜和/或其它代表性特征或部位的一个或多个图像,并且可以从一个或多个图像中提取一个或多个图像特征(例如,作为表示特征(比如面部、虹膜或其它特征)的一个或多个特征矢量)。自动驾驶车辆可以使用一个或多个图像特征,对针对与外部观察者的通信而生成的虚拟模型进行加密。在一些示例中,图像特征可以包括对于外部观察者是唯一的或可区分的一个或多个特性,比如外部观察者的面部的一个或多个特征,还被称为外部观察者的面部识别(ID)。自动驾驶车辆可以将这样的图像特征(比如外部观察者的面部ID)用作私钥,来对被生成用于与外部观察者进行通信的虚拟模型的帧进行加密。在一些示例中,自动驾驶车辆可以将图像特征(比如面部ID)作为元数据,添加到被生成用于与外部观察者进行通信的虚拟模型的帧中。这样,自动驾驶车辆可以确保虚拟模型的帧与该虚拟模型将用于与之通信的预期的外部观察者唯一地关联。

当在预期的外部观察者的视野中显示或投射虚拟模型的帧时,自动驾驶车辆可以对它们进行解密。自动驾驶车辆可以利用前面描述的眼睛追踪机制来检测外部观察者的注视和视野。在一些示例中,自动驾驶车辆可以使用注视点渲染技术,向外部观察者的眼睛投射虚拟模型的经解密的帧。注视点渲染是一种图形渲染技术,其利用眼睛追踪来将帧聚焦或引导到外部观察者的视野,同时使向着外部观察者的周边视觉的图像投射最小化。周边视觉位于由外部观察者的眼睛的中央凹注视的区域之外。中央凹或中心凹是一个小的中央凹陷,其由在眼睛中紧密排列的视锥细胞组成、位于视网膜中心并且负责敏锐的中央视觉(还被称为中央凹视觉)。人类将敏锐的中央视觉用于视觉细节最重要的活动。中央凹被几个外部区域包围,其中,近中心凹(perifovea)是其中视敏度明显低于中央凹的视敏度的最外部区域。注视点渲染的使用以将帧带入外部观察者的注视的锐聚焦的方式实现帧的聚焦投射,同时最小化或消除外围噪声。

在一些方面中,在使用注视点渲染的聚焦投射之前向虚拟模型的帧应用解密,确保帧被预期的外部观察者观看。在一个说明性示例中,使用Rivest、Shamir和Adelman(RSA)算法的解密技术可以用于对使用外部观察者的图像特征的帧进行解密,帧要向外部观察者投射。在一些示例中,自动驾驶车辆可以使用从外部观察者的图像中提取的图像特征(例如,面部ID或其它图像特征)作为这种解密的私钥。当多个虚拟模型被生成并且同时向多个外部观察者投射时,上文所描述的加密-解密过程确保:使用预期外部观察者的图像特征生成和加密的虚拟模型的帧,是使用预期的外部观察者的图像特征进行解密的,并且被投射到预期的外部观察者。上文所描述的加密-解密过程还确保:使用预期的外部观察者的图像特征生成和加密的虚拟模型的帧,不会使用不同的外部观察者的图像特征进行解密,从而防止非预期的外部观察者能够查看这些帧。

在一些示例中,如上文所描述的,虚拟模型可以由自动驾驶车辆进行加密以生成加密的虚拟模型。在一些示例中,虚拟模型可以由与自动驾驶车辆相通信的服务器或其它远程设备进行加密,并且自动驾驶车辆可以从服务器或其它远程设备接收加密的虚拟模型。同样,在一些示例中,虚拟模型可以由自动驾驶车辆进行解密,以向预期的外部观察者投射。在一些示例中,虚拟模型可以由与自动驾驶车辆相通信的服务器或其它远程设备进行解密,并且自动驾驶车辆可以从服务器或其它远程设备接收经解密的虚拟模型,以向预期的外部观察者投射。

图1是包括自动驾驶车辆110的系统100的示意图,自动驾驶车辆110被示为接近第一外部观察者122和第二外部观察者124。如所示出的,外部观察者122和外部观察者124是在自动驾驶车辆110附近行走、站立或以其它方式静止的人。在其它说明性示例中,一个或多个外部观察者可以以驾驶员或乘客的身份(capacity)出现在一个或多个车辆中,在轮椅或手推车中移动或静止,和/或以任何其他身份出现,所述任何其他身份可能影响自主车辆110在存在外部观察员(例如,外部观察员122、124等)的环境中导航时可能做出的驾驶决策、或者与驾驶决策相关。

为了实现在自动驾驶车辆110与第一外部观察者122和第二外部观察者124之间的通信,并且一个或多个虚拟模型112、114可以由自动驾驶车辆110或者由与自动驾驶车辆110相通信的服务器生成。例如,当确定自动驾驶车辆110需要与多个外部观察者进行通信时,可以针对第一外部观察者122生成第一虚拟模型112,并且可以针对第二外部观察者124生成第二虚拟模型114。本领域技术人员应当理解的是,可以针对多于或少于在图1中所示的两个外部观察者,生成多于或少于两个的虚拟模型。

图2(结合图1进行描述)示出根据本文所描述的一种或多种实现方式的过程200,过程200可以由自动驾驶车辆110执行以用于创建一个或多个虚拟模型。例如,过程200可以用于生成虚拟模型112、114,以分别用于实现或增强在自动驾驶车辆110与第一外部观察者122和第二外部观察者124之间的交互。

在方块202处,过程200包括:检测一个或多个外部观察者的存在。例如,自动驾驶车辆110可以包括用于捕获自动驾驶车辆110附近的图像的图像传感器(例如,一个或多个摄像机、静止图像相机、光学传感器、深度传感器和/或其它图像捕获设备)。在一些示例中,自动驾驶车辆110还可以使用其它类型的传感器。例如,自动驾驶车辆110可以包括雷达,雷达使用无线电波来检测自动驾驶车辆110附近的物体的存在、范围、速度等等。在一些示例中,也可以使用任何其它类型的运动检测机制来检测自动驾驶车辆110附近的移动物体。自动驾驶车辆110的附近可以包括自动驾驶车辆110周围的区域,包括前面、后面和侧面。在一些示例中,自动驾驶车辆110可以利用特别聚焦于自动驾驶车辆110的行进方向(例如,朝向前方和后方,取决于自动驾驶车辆110是向前移动还是反向移动)的检测机制。

在方块204处,过程200包括:提取外部观察者的图像特征。例如,自动驾驶车辆110可以实施图像识别或目标识别算法,以识别在方块202中由自动驾驶车辆捕获的图像中的人(比如第一外部观察者122和第二外部观察者124)。例如,自动驾驶车辆110可以从在方块202中由一个或多个图像传感器提供的视频馈送中获得图像。在一些情况下,自动驾驶车辆110可以将视频馈送分割成静态图像帧。可以对图像应用目标识别算法,其中对图像进行分割并且提取图像特征。

在一些示例中,自动驾驶车辆110可以分析图像数据,比如由图像传感器所捕获的图像的红-绿-蓝或“RGB”分量。自动驾驶车辆110还可以使用深度传感器来检测深度(D)参数,深度(D)参数与被检测的目标(比如外部观察者122、124)与自动驾驶车辆110的距离有关。RGB和D的组合被称为RGBD数据。RGBD可以包括每个图像帧的RGB信息和深度信息。RGBD信息可以用于目标检测。每个图像帧的深度信息(D)可以用于识别行人与自动驾驶车辆110的距离。在一些情况下,可以在执行图像识别之前,对提取的图像执行去噪(例如,使用Weiner滤波器)。在一些示例中,也可以应用轮廓检测技术来检测图像目标的轮廓。

可以执行任何类型的目标识别。在一些示例中,自动驾驶车辆110可以利用显著性图建模技术、机器学习技术(例如,神经网络或其它基于人工智能的目标识别)、计算机视觉技术和/或用于图像识别的其它技术。在一些示例中,还可以使用利用卷积神经网络来检测和识别作为外部观察者的目标的深度学习技术。在一个说明性示例中,自动驾驶车辆110可以使用显著性图模型来执行目标识别。例如,可以从由图像捕获的静态图像中获取特征图,以揭示静态图像中的特征(比如颜色(RGB)、深度(D)、方向、强度、运动特性等)的组成。这些特征图的总和提供具有静态图像帧的特定特征的显著性分数(或权重)的显著性图。显著性分数可以以迭代方式来细化,并且被归一化。经归一化的显著性分数可以与用于例如人和/或其他目标的图像的显著性分数的数据库进行比较。使用显著性分数,可以提取人类的特定图像特征。例如,可以获得外部观察者的面部图像、虹膜和/或其它代表性特征或部位。

在方块206处,过程200包括:确定一个或多个外部观察者是否正在使用一个或多个手势与自动驾驶车辆进行通信。在一个示例实现方式中,可以对提取的图像特征应用目标检测算法,以确定所提取的图像特征是否对应于人(例如,外部观察者122和/或124)。然后,可以向所检测到的外部观察者应用目标识别或手势识别算法,以确定所检测到的外部观察者是否正在向车辆进行手势和/或其它视觉输入。在一些情况下,可以使用除了基于手势的输入之外的其它输入(例如,音频输入),或者可以使用其它输入作为基于手势的输入的替代。例如,语音识别可以用于确定由外部观察者(例如,外部观察者122和/或124)提供的语音命令。手势(或其它输入,比如音频)可以用作触发,所述触发可以用于触发比如估计外部观察者的姿势(姿势估计)、车辆110的虚拟驾驶员的虚拟模型的渲染等的处理。在一些情况下,如下面所描述的,可以跟踪外部观察者122、124(例如,使用光流算法)。在一些示例中,当外部观察者122、124中的一者或多者被检测为尝试使用手势或如上文所概述的其它消息传递技术与车辆进行通信时,可以增加跟踪质量(例如,每秒帧数或“fps”)。

可以使用任何适当的目标检测技术在一个或多个图像中检测一个或多个外部观察者(例如,第一外部观察者122和第二外部观察者124)的身体部位,比如面部、手等。在一个说明性示例中,基于计算机视觉的目标检测可以由自动驾驶车辆110的处理器用于在图像中检测外部观察者的一个或多个身体部位(例如,一只手或两只手)。通常,目标检测是用于从图像或视频帧中检测(或定位)目标的技术。当执行定位时,所检测的目标可以使用边界区域来表示,所述边界区域标识目标(例如,人脸)在图像或视频帧中的位置和/或近似边界。所检测的目标的边界区域可以包括边界框、边界圆、边界椭圆、或者表示所检测的目标的任何其它适当形状的区域。

不同类型的基于计算机视觉的目标检测算法可以由自动驾驶车辆110的处理器使用。在一个说明性示例中,基于模板匹配的技术可以用于检测在图像中的一只或多只手。可以使用各种类型的模板匹配算法。模板匹配算法的一个示例可以执行Haar或类Haar特征提取、积分图像生成、Adaboost训练和级联分类器。这样的目标检测技术通过跨越图像应用滑动窗口(例如,具有矩形、圆形、三角形或其它形状)来执行检测。可以将积分图像计算为根据图像来评估特定区域特征(例如,矩形或圆形特征)的图像表示。对于每个当前窗口,可以根据上文提到的积分图像来计算当前窗口的Haar特征,积分图像可以在计算Haar特征之前进行计算。

可以通过计算在目标图像的特定特征区域内的图像像素的和(比如积分图像的那些像素)来计算Harr特征。例如,在面部中,眼睛区域通常比鼻梁或脸颊区域更暗。可以通过选择最佳特征和/或训练使用它们的分类器的学习算法(例如,Adaboost学习算法)来选择Harr特征,并且Harr特征可以用于使用级联分类器有效地将窗口分类为手部(或其他目标)窗口或非手部窗口。级联分类器包括级联组合的多个分类器,这允许在对类目标区域执行更多计算的时候快速丢弃图像的背景区域。使用手部作为外部观察者的身体部位的示例,级联分类器可以将当前窗口分类为手部类别或非手部类别。如果一个分类器将窗口分类为非手部类别,则丢弃该窗口。否则,如果一个分类器将窗口分类为手部类别,则将使用在级联排列中的下一个分类器再次进行测试。直到所有分类器都确定当前窗口是手部(或其它目标),该窗口才将被标记为针对手部(或其它目标)的候选。在所有窗口都被检测之后,可以使用非最大抑制算法对每只手周围的窗口进行分组,以生成一个或多个所检测的手部的最终结果。

在一些示例中,机器学习技术可以用于检测图像中的一个或多个身体部位(例如,一只或多只手)。例如,可以使用标记的训练数据来训练神经网络(例如,卷积神经网络),来检测图像中的一只或多只手。在一些示例中,可以基于轮廓检测从由一个或多个图像传感器所捕获的图像帧中提取图像特征,以检测一个或多个外部观察者122、124的身体部位(例如,面部、手部等),并且可以将包含这些身体部位或其它特征的图像特征提供给已被训练来检测手势的神经网络。在一些示例中,可以对神经网络进行训练来检测与交通相关通信(例如,通过、让路、停止等)有关的手势。

使用上文所描述的机器学习或基于计算机视觉的技术或使用其它技术,自动驾驶车辆110可以解释第一外部观察者122和/或第二外部观察者124可以用来与自动驾驶车辆110进行通信的手势。例如,如本文中所描述的,例如,自动驾驶车辆110可以从数据存储(例如,本地数据库或基于服务器的系统(比如基于云的系统))获得与手势相关的特征数据,以解释来自外部观察者(例如,外部观察者122和/或124)的手势。除了解析各个图像帧以提取图像特征之外,在一些示例中,还可以使用在多个帧上的图像序列来解释在一系列图像帧中的动作。例如,在图像序列中的动作系列可以指示手部运动,比如挥手、指示停止标志等。

在方块208处,过程200包括:确定是否针对一个或多个检测到的外部观察者识别了任何手势。在一些方面中,自动驾驶车辆110可以确定外部观察者122、124中的一者或多者是否正在尝试与自动驾驶车辆进行通信。在一些情况下,如先前所描述的,自动驾驶车辆110可以结合眼睛追踪机制使用标记,来确定外部观察者122、124是否正在观看自动驾驶车辆的驾驶员座椅。在一说明性示例中,标记可以包括在自动驾驶车辆的驾驶员座椅上的人类的物理模型,以传达驾驶员在场的存在。物理模型可以吸引外部观察者的注意力,并且将外部观察者的注视吸引到物理模型上。物理模型可以是一个或多个图像、剪贴画(例如,纸板剪贴画)、3D形状(例如,类人人体模型、雕塑、人物等)、或者可以放置在驾驶员座椅(或自动驾驶车辆110的显示虚拟模型112、114的其它部分)中以吸引或招致外部观察者注意力的其它物体。

在一些情况下,标记可以包括在自动驾驶车辆110中(例如,比如在自动驾驶车辆110的挡风玻璃上或者在自动驾驶车辆110内)显示的外部观察者122、124可以使用手势或其它输入与之进行交互的2D或3D模型。在一些示例中,除了上文所描述的一个或多个手势之外,自动驾驶车辆110还可以确定外部观察者122、124中的一者或多者是否正在使用可听输入和/或其它动作,所述可听输入和/或其它动作指示外部观察者122、124中的一者或多者正在尝试与自动驾驶车辆110通信。如果一个或多个外部观察者122、124被确定为正在使用一个或多个手势(或其它输入)与自动驾驶车辆110进行通信,则过程200可以进行到方块210。否则,可以重复方块204-206以继续提取图像特征,并且检测一个或多个外部观察者是否正在使用手势来与自动驾驶车辆110进行通信。

在方块210处,过程200包括:生成自动驾驶车辆的一个或多个虚拟驾驶员的一个或多个虚拟模型,以与一个或多个检测到的外部观察者进行通信。例如,可以生成虚拟模型112、114,以与一个或多个检测到的外部观察者122、124进行通信。在一些示例中,一个或多个虚拟模型112、114可以使用手势或其它交互式输出(例如,可听消息),来发起与一个或多个检测到的外部观察者的通信。在一些实现方式中,可以基于神经网络根据先前学习的模型来生成定制的虚拟模型,比如利用基于云的模式匹配实时地生成。例如,随着获取更多的样本数据,可以不断地重新训练用于生成虚拟模型的神经网络。

在一些示例中,可以定制虚拟模型112、114以与外部观察者122、124进行交互。在一些情况下,虚拟模型112、114的定制可以是基于外部观察者122、124的一个或多个特点或特性的。定制的虚拟模型可以具有定制的肢体语言、定制的手势、定制的外貌、以及基于外部观察者的特性的其它定制特征。例如,可以基于外部观察者122、124各自的特征(例如,种族、外貌、动作、年龄等)定制虚拟模型112、114,以与他们进行交互。在一些情况下,例如,方块204中用于特征提取的目标识别算法可以进一步提取特征以检测比如外部观察者的种族之类的特征,所述特征可以用于对针对相应外部观察者122、124生成的虚拟模型112、114进行定制。例如,可以创建虚拟模型112、114,以匹配外部观察者122、124的相应种族。例如,这可以基于特定于种族的手势来提高通信质量。

在一些示例中,自动驾驶车辆110可以获得可以用于与外部观察者的通信或交互的与手势相关的特征数据。例如,自动驾驶车辆110可以连接到和/或访问数据存储(例如,本地数据库或基于服务器的系统,比如基于云的系统)以获得与手势相关的特征数据。在一个说明性示例中,自动驾驶车辆110可以将由外部观察者122、124中的一者或多者执行的手势与来自数据存储的一个或多个手势进行比较,以确定该手势是否是可以用作用于生成相应的虚拟模型112、114的触发的已识别手势。可以生成虚拟模型112、114,以基于对检测到的手势的解释与外部观察者122、124进行交互。

在方块212处,过程200包括:确定是否从一个或多个外部观察者接收到一个或多个手势。例如,自动驾驶车辆110可以确定一个或多个外部观察者122、124是否正在使用手势。如先前所描述的,然后可以将目标识别算法应用于检测到的外部观察者122、124的提取的图像特征,以确定检测到的外部观察者122、124中的一者或多者是否正在向自动驾驶车辆110进行手势和/或其它视觉输入。手势(或其它输入,比如音频)可以用作触发,所述触发用于触发比如估计外部观察者的姿势(姿势估计)的过程。在方块212处,如果未接收到一个或多个手势,则可以重复方块208-210。否则,过程200可以进行到方块214。

在方块214处,过程200包括:使用一个或多个虚拟模型与一个或多个外部观察者进行通信。例如,自动驾驶车辆110的处理器可以使得一个或多个虚拟模型112、114使用手势与一个或多个外部观察者122、124进行通信,来指示一个或多个外部观察者前进、停止等等。在一些示例中,可以定制由一个或多个虚拟模型112、114使用的手势,以与外部观察者122、124进行交互。手势的定制可以是基于相应外部观察者122、124的一个或多个特点或特性的。例如,定制的手势可以包括定制的肢体语言,定制的肢体语言可以是基于外部观察者122、124的特性或特点的(例如,种族、外貌、动作、年龄等)。例如,这可以基于特定于种族的手势来提高交流质量。

在方块216处,过程200可以包括:生成用于检测到的多个外部观察者的多个虚拟模型。如先前所描述的,自动驾驶车辆110可以生成两个或更多虚拟模型112、114,以与两个或更多外部观察者122、124进行交互。在一些情况下,自动驾驶车辆110可以使用两个或更多虚拟模型112、124,以同时与两个或更多外部观察者122、124进行通信。将在以下部分中更详细地讨论使用两个或更多虚拟模型的同时通信的各方面。

在一些示例中,除了由虚拟模型112、114启用的交互之外,自动驾驶车辆110还可以使用音频或其它手段(例如,转向灯、刹车灯等)进行通信。

在方块218处,过程200包括:在使用一个或多个虚拟模型的相应通信终止时,禁用一个或多个虚拟模型或降低其质量。例如,在虚拟模型112、114已经达到与外部观察者122、124通信的目的并且不再需要维持(或以在通信期间使用的质量水平进行维持)之后,自动驾驶车辆110可以通过禁用虚拟模型112、114来减少生成和维护虚拟模型112、114所涉及的功耗。例如,当与外部观察者122、124的通信终止时,可以维持降低质量的虚拟模型(例如,虚拟驾驶员的模糊的或低质量的渲染)和/或标记。在一些情况下,降低质量的虚拟模型和/或标记可以始终维持,或者可以在交通信号灯处或在预计高人流量的其它区域启用,以例如向潜在的外部观察者指示存在外部观察值可以与之交互的驾驶员的虚拟模型。保持用于向潜在的外部观察者显示的降低质量的虚拟模型和/或标记,可以鼓励潜在的外部观察者使用手势或其它输入来发起通信。当与相应的外部观察者的交互开始时,可以提高一个或多个虚拟模型的质量。

如先前所描述的,根据本公开内容的在自动驾驶车辆与外部观察者之间的一些通信方法可以包括对加密技术的使用。在一些示例中,可以在存在多个外部观察者并且同时的多个虚拟模型被生成并且用于与多个外部观察者的交互的情况下,采用加密技术。例如,在检测用于与自动驾驶车辆110通信的两个外部观察者122、124并且生成或获得(例如,从服务器获得)虚拟模型112、114时,自动驾驶车辆110可以将加密技术应用于虚拟模型112,114,以确保特定的虚拟模型只可以被作为预期接收者的特定外部观察者查看,而不可以被其他外部观察者查看。例如,可以对虚拟模型112的帧进行加密,使得虚拟模型112只可以被外部观察者122查看而不可以被外部观察者124查看。类似地,加密技术可以用于确保虚拟模型114只可以被作为预期接收者的外部观察者124查看,而不可以被其他外部观察者(比如外部观察者122)查看。

在一些示例中,加密技术可以是基于提取外部观察者的一个或多个图像特征的。例如,可以从自动驾驶车辆的一个或多个图像传感器获得外部观察者122的面部图像、虹膜和/或其它代表性特征或部位。在一些示例中,外部观察者122的代表性特征或部位可以包括外部观察者122的面部ID,面部ID包括外部观察者122的独特的面部特征特性。自动驾驶车辆110可以使用一个或多个图像特征(比如外部观察者122的面部ID),对所生成的用于与外部观察者122进行通信的虚拟模型112进行加密。例如,自动驾驶车辆110可以使用面部ID作为私钥,来对虚拟模型112的一个或多个帧进行加密。在一些示例中,自动驾驶车辆110可以另外地或替代地将面部ID添加到虚拟模型112的帧中(例如,作为元数据添加到帧的一个或多个分组)。加密的虚拟模型可以用于与外部观察者122进行通信。这样,自动驾驶车辆110可以确保虚拟模型112的帧是与虚拟模型112将用于与之通信的预期外部观察者122唯一地关联的。

在一些示例中,当虚拟模型112的帧被显示或投射在预期的外部观察者122的视野中时,自动驾驶车辆110可以对帧进行解密。如上文所描述的,自动驾驶车辆可以使用注视点渲染技术,向着外部观察者122的眼睛投射虚拟模型112的经解密的帧。自动驾驶车辆110可以利用先前描述的眼睛追踪机制来检测外部观察者122的注视和视野。在一些方面中,在使用注视点渲染的聚焦投射之前对虚拟模型112的帧应用的解密确保:帧被预期的外部观察者122观看。自动驾驶车辆110可以使用从外部观察者122提取的图像特征,对帧进行解密。

当多个虚拟模型112、114被生成并且同时向多个外部观察者122、124投射时,上文所描述的加密-解密过程确保:使用预期的外部观察者122的图像特征来生成和加密的虚拟模型112的帧是使用预期的外部观察者122的图像特征进行解密并且向预期的外部观察者122进行投射的。上文所描述的加密-解密过程还确保:使用预期的外部观察者122的图像特征来生成和加密的虚拟模型112的帧未使用不同的外部观察者(比如外部观察者124)的图像特征进行解密,从而防止非预期的外部观察者124能够观看虚拟模型112的帧。

在一些示例中,虚拟模型112、114可以由自动驾驶车辆110以上文描述的方式进行加密,以生成相应的加密的虚拟模型。在一些示例中,虚拟模型112、114可以由与自动驾驶车辆110相通信的服务器或其它远程设备(未示出)进行加密,并且自动驾驶车辆110可以从服务器或其它远程设备接收加密的虚拟模型。同样,在一些示例中,加密的虚拟模型可以由自动驾驶车辆110进行解密,以向相应的预期的外部观察者122、124进行投射。在一些示例中,加密的虚拟模型可以由与自动驾驶车辆110相通信的服务器或其它远程设备进行解密,并且自动驾驶车辆110可以从服务器或其它远程设备接收经解密的虚拟模型以向预期的外部观察者122、124投射。

图3示出用于在自动驾驶车辆与一个或多个外部观察者之间的通信的另一过程300。如下文所描述的,可以执行过程300,以基于一个或多个外部观察者(例如,外部观察者122、124)的相应的一个或多个特点来生成一个或多个虚拟模型(例如,虚拟模型112、114)。过程300可以基于相应的一个或多个外部观察者(例如,外部观察者122、124)的一个或多个特性(例如,脸部特性或虹膜),对一个或多个虚拟模型(例如,虚拟模型112、114)进行加密。

如所示出的,过程300包括如上文参考图2所描述的方块202-206。例如,在方块202处,过程300包括:检测外部观察者。在方块204处,过程300包括:提取一个或多个检测到的外部观察者的图像特征。在方块206处,过程300包括:跟踪一个或多个检测到的外部观察者,并且确定一个或多个外部观察者是否正在使用一种或多种手势与自动驾驶车辆进行通信。为了简洁起见,这里将不再重复这些方块202-206的进一步细节。

在方块308处,过程300包括:提取外部观察者的一个或多个特性,并且将一个或多个特性与现有模型进行比较。例如,可以从由自动驾驶车辆110的一个或多个图像传感器捕获的图像中提取外部观察者的面部图像、虹膜和/或其它代表性特征或部位。面部识别(ID)可以与外部观察者的一个或多个面部特性或虹膜特性相关联,其中面部ID可能对于外部观察者是唯一的,和/或可以将一个外部观察者与一个或多个其他外部观察者区分开来。例如,外部观察者122、124的面部ID可以是彼此可区分的,并且是可以与在自动驾驶车辆110的存在下检测的一个或多个其他外部观察者的面部ID可区分的。在一些方面中,一个或多个特性、面部ID等可以与被存储在虚拟模型的数据存储(例如,数据库或其它存储机制)中的特性进行比较。在一些情况下,可以训练由一个或多个处理器或计算机实现的一个或多个神经网络和/或其它人工智能系统,以学习外部观察者的特性并且将其与不同的虚拟模型进行关联。一个或多个处理器或计算机可以是自动驾驶车辆的一部分,或者可以是一个或多个远程系统(例如,基于服务器或基于云的系统)的一部分。一旦完成方块308中的提取一个或多个外部观察者的特性的过程,过程300就可以进行到方块310。可以重复方块204-206,直到一个或多个外部观察者的特性被提取并且与现有模型进行比较。

在方块310处,过程300包括:基于一个或多个外部观察者的上文描述的特性,生成一个或多个虚拟驾驶员的一个或多个虚拟模型并且对一个或多个虚拟模型进行加密。参考图1,虚拟模型112、114可从由自动驾驶车辆110进行加密,以生成相应的加密的虚拟模型。在一些示例中,虚拟模型112、114可以由与自动驾驶车辆110相通信的服务器或其它远程设备进行加密,并且自动驾驶车辆110可以从服务器或其它远程设备接收加密的虚拟模型。

如上文所描述的,外部观察者122、124的面部特性和/或其它图像特征可以用于对针对外部观察者122、124的相应的虚拟模型112、114进行加密。例如,自动驾驶车辆110可以使用相应的外部观察者122、124的一个或多个图像特征(例如,面部ID)作为私钥,以对被生成用于与外部观察者122、124进行通信的相应的虚拟模型112、114的帧进行加密。在一些示例中,自动驾驶车辆可以将相应的外部观察者122、124的图像特征(例如,面部ID)作为元数据,添加到被生成用于通信的相应的虚拟模型112、114的帧中。通过对虚拟模型112、114进行加密(例如,使用作为元数据被包括在一个或多个帧中的面部ID),自动驾驶车辆110可以确保:虚拟模型112、114的帧是分别与虚拟模型112、114将用于与之通信的预期的外部观察者122、124唯一地关联的。

在方块312处,如果虚拟模型未被加密,则过程300返回到方块204。否则,过程300进行到方块314。在方块314处,过程300包括:向或朝着外部观察者发送加密的虚拟模型。在一些示例中,自动驾驶车辆110可以当虚拟模型的帧被显示或投射在预期的外部观察者的视野中时,对虚拟模型的帧进行解密。如上文所描述的,在一些情况下,自动驾驶车辆110可以使用注视点渲染技术,来向外部观察者122、124的眼睛投射加密的虚拟模型的经解密的帧。自动驾驶车辆可以利用先前描述的眼睛追踪机制来检测外部观察者的注视和视野以进行注视点渲染。

在一些方面中,在使用注视点渲染的聚焦投射之前对加密的虚拟模型的帧应用的解密确保帧被预期的外部观察者122、124观看。例如,RSA算法可以用于使用预期的外部观察者的图像特征(在方块308中获得)对帧进行解密。在一些方面中,在使用注视点渲染的聚焦投射之前对虚拟模型112的帧应用的解密确保帧被预期的外部观察者122观看。自动驾驶车辆110可以使用从外部观察者122提取的图像特征进行解密。

当多个虚拟模型112、114被生成并且同时向多个外部观察者122、124投射时,上文所描述的加密-解密过程确保:虚拟模型112的帧是使用预期的外部观察者122的图像特征进行解密并且向预期的外部观察者122进行投射的,并且还确保:虚拟模型112的帧未使用不同的外部观察者(比如外部观察者124)的图像特征进行解密,从而防止非预期的外部观察者124能够观看虚拟模型112的帧。

在方块316处,过程300包括:识别来自外部观察者的一个或多个手势。例如,在接收和/或观察到向或朝着外部观察者122、124分别发送的虚拟模型112、114的相应的帧时,一个或多个外部观察者122、124可以使用手势进行通信。在一些示例中,在方块316处识别的手势可以是响应于由虚拟模型112、114传达的指令(例如,以手势的形式)的。自动驾驶车辆110可以识别由一个或多个外部观察者122、124执行的手势,并且可以适当地响应。例如,自动驾驶车辆110可以修改虚拟模型112、114中的一个或多个虚拟模型,以提供对来自相应的一个或多个外部观察者122、124的任何接收的手势(或其它输入)的响应,和/或响应于来自一个或多个外部观察者122、124的手势(或其它输入)来采取其它动作(比如停止自动驾驶车辆)。

在方块318处,过程300包括:一旦使用一个或多个虚拟模型与相应外部观察者的交互完成,就完全地或部分地禁用一个或多个虚拟模型。在一说明性示例中,一旦外部观察者122已经采取了如由相应的虚拟模型112所指示的动作(例如,已经让路或穿过道路),就可以认为与外部观察者122的交互完成。在一些示例中,一旦外部观察者已经离开自动驾驶车辆的视野(例如,特别与行进方向有关),就可以认为与外部观察者的交互完成。在一些示例中,如果外部观察者不再显示与自动驾驶车辆进行通信的意图(例如,不再使用手势或不再查看自动驾驶车辆的标记),则可以认为与外部观察者的交互完成。

如上文所描述的,在虚拟模型112、114已经达到与外部观察者122、124通信的目的并且不再需要维持(或以在通信期间使用的质量水平来维持)之后,自动驾驶车辆110可以通过禁用虚拟模型112、114来减少生成和维持虚拟模型112、114所涉及的功耗。在一些示例中,当与外部观察者122、124的通信终止时,可以保留降低质量的虚拟模型(例如,虚拟驾驶员的模糊的或低质量的渲染)和/或标记。如先前所描述的,质量降低的虚拟模型和/或标记可以始终维持,或者可以在交通信号灯处或在预计高人流量的其它区域启用,以例如向潜在的外部观察者指示存在驾驶员的虚拟模型。

图4示出过程400,过程400示出向外部观察者的眼睛投射虚拟模型的帧的示例。在一些示例中,虚拟模型的帧可以包括加密的帧,并且投射可以包括如参考图3所讨论的经解密的帧的注视点渲染。

在方块402处,过程400包括:跟踪外部观察者的眼睛。例如,外部观察者124的虹膜和/或视网膜可以由自动驾驶车辆110使用跟踪算法来跟踪。可以在连续帧中的特定位置处跟踪对象,以检测对象在帧之间的运动。可以基于对象被跟踪的运动,针对对象生成运动矢量,并且运动矢量可以与对象的运动相关联。可以对运动矢量进行记录和分析,以揭示关于由被跟踪对象执行的动作的信息。例如,跟踪算法可以揭示关于被跟踪对象的运动的信息,比如外部观察者124的眼睛、头部、手等。例如,跟踪算法可以用于通过跟踪外部观察者124的眼睛(例如,视网膜和/或虹膜)来检测眼睛注视和视野。

在一些示例中,跟踪算法可以包括光流跟踪,以跟踪在由自动驾驶车辆110的图像传感器所捕获的图像帧中的对象(例如,外部观察者的眼睛或眼睛的一部分,比如一个或多个虹膜和/或视网膜)。任何适当类型的光流技术或算法可以用于确定在帧之间的光流。在一些情况下,可以逐个像素地执行光流运动估计。例如,对于当前帧y中的每个像素,运动估计f定义对应像素在前一帧x中的位置。针对每个像素的运动估计f可以包括指示像素在帧之间的移动的光流矢量。在一些情况下,针对像素的光流矢量可以是示出像素从第一帧到第二帧的移动的位移矢量(例如,指示水平位移和垂直位移,比如x位移和y位移)。

在一些示例中,可以基于在帧之间的光流矢量的计算来生成光流图(还被称为运动矢量图)。每个光流图可以包括2D矢量场,其中每个矢量是示出点从第一帧到第二帧的移动的位移矢量(例如,指示水平位移和垂直位移,比如x位移和y位移)。光流图可以包括针对帧中每个像素的光流矢量,其中每个矢量指示像素在帧之间的移动。例如,可以计算相邻帧之间的密集光流,以生成针对在帧中的每个像素的光流矢量,光流矢量可以被包括在密集光流图中。在一些情况下,光流图可以包括针对少于在帧中所有像素的矢量,比如针对仅属于被跟踪的外部观察者的一个或多个部位(例如,外部观察者的眼睛、外部观察者的一只或多只手和/或其它部位)的像素。在一些示例中,计算可以在相邻帧之间的Lucas-Kanade光流,以生成针对在帧中一些或所有像素的光流矢量,光流矢量可以被包括在光流图中。

如上文所指出的,可以计算在帧序列的相邻帧之间(例如,在相邻帧xt和xt-1集合之间)的光流矢量或光流图。两个相邻的帧可以包括作为连续捕获的帧的两个直接相邻的帧、或者在帧序列中相隔一定距离(例如,彼此的两帧内、彼此的三帧内或其它合适的距离内)的两个帧。从帧xt-1到帧xt的光流可以通过Oxt-1,xt=dof(xt-1,xt)来给出,其中dof是密集光流。可以使用任何适当的光流过程来生成光流图。在一个说明性示例中,在帧xt-1中的像素I(x,y,t)可以在下一帧xt中移动距离(Δx,Δy)。假设在帧xt-1和下一帧xt之间像素相同并且强度没有变化,则可以假设以下等式:

I(x,y,t)=I(x+Δx,y+Δy,t+Δt) 等式(1).

通过对以上方程(1)右手侧进行泰勒级数近似,并且然后去除公共项并且除以Δt,可以导出光流等式:

fxu+fyv+ft=0, 等式(2),

其中:

以及

使用光流等式(2),可以得出图像梯度fx和fy以及随时间的梯度(表示为ft)。项u和v是I(x,y,t)的速度或光流的x和y分量,并且是未知的。在一些情况下,当光流方程不能利用两个未知变量求解时,可能需要估计技术。可以使用任何适当的估计技术来估计光流。这样的估计技术的示例包括微分方法(例如,Lucas-Kanade估计、Horn-Schunck估计、Buxton-Buxton估计或其它适当的微分方法)、相位相关、基于块的方法或者其它适当的估计技术。例如,Lucas-Kanade假设光流(图像像素的位移)小并且在像素I的局部邻域中近似恒定,并且使用最小二乘法针对在该邻域中的所有像素求解基本光流等式。

在方块404处,过程400包括生成光束,光束包含被生成用于与外部观察者进行通信的虚拟模型的帧,如上文所描述的。在一些示例中,这些光束可以基于外部观察者的视野,而朝着外部观察者的眼睛聚焦。在一些示例中,将光束朝着外部观察者的眼睛进行聚焦,被称为自动驾驶车辆110的投射模式。例如,在方块402中的视网膜跟踪可以揭示外部观察者124的视野。自动驾驶车辆车辆110可以包括用于将虚拟模型114的帧例如向外部观察者的视网膜投射的投射仪。在一些示例中,投射的帧可以包括RGB或高清晰度多媒体接口(HDMI)加密帧。

在方块406处,过程400包括:确定外部观察者的眼睛的位置是否已经改变。例如,外部观察者124的眼睛可能由于在外部观察者124与自动驾驶车辆110之间的相对运动而改变。如果位置改变被确定,则在方块408处光束的焦点相应地改变,使得被投射的帧被投射在外部观察者的视野中。如果未确定位置改变,则过程400直接进行到方块410。

在方块410处,过程400可以使用例如衰减器来控制要向外部观察者124的眼睛投射的光束的强度。控制光束的强度可以确保光束不太亮或太暗。可以基于环境光、从自动驾驶车辆的前照灯产生的光等来确定最佳亮度。在方块412处,包含驾驶员的虚拟模型的帧的经适当调整的光束,向外部观察者的眼睛进行投射。在图4的说明性示例中示出外部观察者124,其中光束420a-b被投射到外部观察者124的眼睛。在一些示例中,光束420a-b可以根据方块402-412来生成并且可以包含虚拟模型114的帧。

在一些示例中,可以生成多个虚拟模型并且使用图在4中讨论的聚焦投射技术将其导向多个外部观察者。如先前所解释的,两个或更多虚拟模型可以由两个或更多外部观察者同时观看。在一些情况下,不同外部观察者的视野存在重叠。以下描述针对用于处理这样的重叠的示例实现方式。

要认识到,使用上文所描述的技术来利用两个或更多虚拟模型与两个或更多外部观察者的同时通信,可能涉及两个或更多外部观察者同时观看两个或更多个虚拟模型的情况。在一些情况下,上文所描述的加密-解密技术结合注视点渲染的投射,可以解决当两个或更多外部观察者同时观看两个或更多虚拟模型时可能接着发生的混淆和缺乏清晰度的问题。

在一些方面中,即使当使用注视点渲染和聚焦投射光束时,两个或更多虚拟模型向两个或更多外部观察者的同时投射也可能重叠。例如,当两个外部观察者彼此靠得很近和/或当他们的视野在某种程度上重叠时,可能就是这种情况。例如,外部观察者122可能靠近外部观察者124的一侧。在另一示例中,外部观察者124可能位于外部观察者122的后面,其中自动驾驶车辆110位于两个外部观察者122、124的视野的前方。在这些类型的场景中,外部观察者122、124的视野可能存在重叠,所述视野包括自动驾驶车辆。例如,外部观察者122的第一视野可以包括虚拟模型112的投射,可能与包括虚拟模型114的投射的外部观察者124的第二视野重叠。以下的示例方面针对用于解决两个或更多虚拟模型的同时投射的技术,包括其中观看两个或更多虚拟模型的外部观察者的视野可能存在重叠的情况。

图5示出其中多个虚拟模型向多个外部观察者的聚焦投射可能重叠的示例系统500。例如,显示自动驾驶车辆110的一部分(比如挡风玻璃510)。在该示例中,示出为了分别与两个外部观察者522和524进行通信而生成的两个虚拟模型512和514。如上文所描述的,可以生成、定制和加密虚拟模型512和514,以向外部观察者522和524投射。在一些示例中,虚拟模型512和514可以是从内部位置(例如,位于自动驾驶车辆110的驾驶员座椅或方向盘处的投射仪)来投射的。虽然已经单独地示出虚拟模型512和514,但是虚拟模型512和514的投射可能具有来自同一投射仪的共同原点或投射源。

在投射仪处虚拟模型512和514的原点与其预期接收者的眼睛之间的任何点处,虚拟模型512和514可能重叠。例如,外部观察者522和524可能彼此非常接近,使得他们的包括虚拟模型512和524的视野可能重叠。在包括自动驾驶车辆的挡风玻璃510的位置处,示出这种重叠的一实例。区域502包括虚拟模型512的投射的帧,以及区域504包括虚拟模型514的投射的帧。在图5中将区域506示出为重叠区域。在区域506中的重叠可能导致外部观察者522、524能够观看不意在针对他们的帧的投射的可能性。例如,虚拟模型512的在重叠区域506中的帧可能被包括在外部观察者524的视野中,即使虚拟模型512的帧不旨在被外部观察者524观看。类似地,虚拟模型514的在重叠区域506中的帧可能被包括在外部观察者522的视野中,即使虚拟模型514的帧不旨在被外部观察者522观看。来自在重叠区域506中的非预期帧的干扰可能对外部观察者522、524造成糟糕的用户体验。重叠越高,用户体验可能越差。当在系统500中引入更多具有额外重叠视野和相关干扰的外部观察者时,上述问题会加剧。

图6示出用于在自动驾驶车辆与一个或多个外部观察者之间通信的过程600。更具体地说,过程600可以与其中两个或更多外部观察者的视野和/或两个或更多虚拟模型向两个或更多外部观察者的投射可能重叠的情况有关。例如,过程600的一个或多个方面可以与系统500相关,其中自动驾驶车辆可以利用两个或更多虚拟模型512、514与两个或更多外部观察者522、524进行通信,并且其中在两个或更多虚拟模型512、514的投射中可能存在重叠区域506。

在方块602处,过程600包括:检测两个或更多外部观察者。例如,可以实现先前针对图2的方块202所描述的过程,来检测两个或更多的外部观察者。例如,自动驾驶车辆110可以包括用于捕获自动驾驶车辆110附近的图像的图像传感器(例如,一个或多个摄像机、静止图像相机、光学传感器和/或其它图像捕获设备)。例如,自动驾驶车辆110可以利用来自捕获的图像和深度传感器的RGBD数据,来检测两个或更多外部观察者522、524的存在。

在方块604处,过程600包括:提取两个或更多外部观察者的图像特征。例如,自动驾驶车辆110可以实现目标识别算法,以在由自动驾驶车辆在方块602处捕获的图像中识别人(比如外部观察者522、524)。在一些示例中,自动驾驶车辆110可以利用机器学习技术(例如,使用一个或多个神经网络)、计算机视觉技术或其它技术,以使用RGBD数据进行目标识别。

在方块606处,过程600包括:确定与多个外部观察者的同时通信是预期的。例如,自动驾驶车辆110可以确定两个或更多个外部观察者522、524正在尝试使用手势或其它输入与自动驾驶车辆110进行通信。在一些示例中,可以对检测到的外部观察者522、524的所提取的图像特征应用目标识别算法,以确定检测到的外部观察者522、524中的一者或多者是否正在向自动驾驶车辆110进行手势和/或其它视觉输入。手势(或其它输入,比如音频)可以用作触发,所述触发用于触发比如估计外部观察者的姿势(姿势估计)的过程。在一些情况下,如先前所描述的,标记可以由自动驾驶车辆110结合眼睛追踪机制来使用,以确定外部观察者122、124在意图通信的情况下正在查看自动驾驶车辆的驾驶员座椅。

在方块608处,过程600包括:确定多个外部观察者的视野是否重叠。例如,自动驾驶车辆110可以确定外部观察者522、524的视野是否在驾驶员座位或标记处重叠,所述视野指示外部观察者522、524与自动驾驶车辆110进行通信的意图。例如,自动驾驶车辆110可以实现参考图4所描述的过程,以跟踪外部观察者522、524的眼睛和视野。

基于视野和基于参数(比如到外部观察者522、524的深度或距离)的相对位置,自动驾驶车辆110可以确定外部观察者522、524的视野重叠并且包括重叠区域506。在一些示例中,可以使用跟踪算法来确定视野是否重叠。可以使用任何适当的跟踪算法。在一个说明性示例中,可以使用光流算法来跟踪指示一外部观察者或多个外部观察者(例如,外部观察者522和外部观察者524)的注视的一个或多个特征(例如,眼睛或眼睛的一部分,比如一个或两个虹膜和/或视网膜),所述外部观察者正在尝试与自动驾驶车辆110进行通信(例如,使用如手势识别所检测到的手势)。上面关于图4描述了光流。一旦自动驾驶车辆110正在跟踪一只或多只眼睛,就可以基于眼睛相对于自动驾驶车辆110面对的方向来确定视野。如本文中所描述的,在执行识别之后,可以在连续帧中的特定位置处跟踪外部观察者,并且可以记录与外部观察者的特征的运动相关联的运动矢量(例如,基于光流的运动矢量)。对外部观察者的所识别的特征(例如,一只或多只眼睛)的运动矢量和位置进行分析,自动驾驶车辆110可以执行动作,比如执行面部位置检测、以及向外部观察者的眼睛投射虚拟模型的帧。

在一些示例中,如本文中所描述的,可以使用注视点渲染将虚拟模型的帧(例如,作为光束)向外部观察者发送,使得外部观察者可以查看增强的驾驶员。例如,可以在自动驾驶车辆110的驾驶员座椅的方向盘附近生成3D增强现实模型。自动驾驶车辆110可以跟踪外部观察者的眼睛,并且可以使用注视点渲染概念来确定外部观察者的视野。如本文中所描述的,注视点渲染是在图形和虚拟现实中的概念,其中,跟踪一个人的一只或多只眼睛(例如,视网膜)并且仅在眼睛的视野中渲染内容。可以对所显示内容的其它部分进行修改(例如,可能不被锐化),使得其无法被其他用户正确地查看。在以上示例中,基于跟踪外部观察者的眼睛(例如,视网膜)、所得到的视野、以及手势识别,自动驾驶车辆110可以确定外部观察者是否正在尝试与汽车进行通信。

在方块608中,如果外部观察者522、524的视野未被确定为重叠,则自动驾驶车辆110可以实现上文所描述的过程中一个过程,以向外部观察者522、524发送虚拟模型512、514的帧。例如,过程600可以进行到方块610,其中可以实现类似于过程300和/或400的过程来发送虚拟模型512、514的帧。在一些示例中,虚拟模型512、514的帧可以如上文所提及的进行加密和解密,并且可以使用聚焦的波束和注视点渲染进行发送。

在方块608中,如果外部观察者522、524的视野被确定为重叠,则过程600可以进行到方块612、614或616中的任何一个或多个方块。在一些示例中,在方块612、614和616中所描述的过程可以以彼此组合以及与方块610组合的任何适当组合来实现。因此,在一些示例中,在方块612、614和616中的任何一个或多个方块中,除了在其中执行的过程之外,虚拟模型512、514的帧还可以如上文所提及的进行加密和解密,并且使用聚焦的波束和注视点渲染进行发送。现在将更详细地讨论方块612、614和616。

在方块612处,过程600实现逆滤波技术,以防止在重叠区域506中的预期的投射的帧受到由非预期投射的帧产生的干扰或噪声的影响。例如,对虚拟模型512的第一组帧应用逆滤波,可以抵消或消除可能由虚拟模型514在重叠区域506中的第二组帧的重叠引起的干扰。类似地,对虚拟模型514的第二组帧应用逆滤波,可以抵消或消除可能由虚拟模型516在重叠区域506中的第一组帧的重叠引起的干扰。这样,观察者522、524两者都可以查看他们预期的来自相应的虚拟模型512、514的帧组,而在重叠区域506中没有不期望的干扰。下面进一步讨论逆滤波技术。

在对原始信号进行逆滤波的各方面中,如果将原始滤波器应用于原始信号,则逆滤波器是一种使得应用跟随后逆滤波器的原始滤波器的序列产生原始信号的滤波器。因此,在示例方面,在应用逆滤波技术的示例中,可以向针对虚拟模型512发送的第一组帧应用原始图像滤波器。即使在第一组帧中的图像或者其部分与其它图像(例如,来自第二组帧)重叠,也可以通过将适当的逆滤波器应用于利用原始滤波器进行滤波的第一组帧,来获取包含虚拟模型512的第一组帧的图像。类似地,也可以对第二组帧进行滤波,然后进行逆滤波以恢复包含虚拟模型514的第二组帧的图像,而在重叠区域506中没有重叠的图像。

在一些方面中,用于虚拟模型的帧的原始滤波器可以是基于在它们相应的元数据中编码的相应的外部观察者的特性的。例如,外部观察者522、524的面部ID可以用于对相应的虚拟模型512、514的帧进行加密。在一些示例中,外部观察者522、524的面部ID可以被包括在虚拟模型512、514的帧的元数据中。虚拟模型512、514的经加密的帧可以向外部观察者522、524的视野进行投射。由于虚拟模型512、514可以是基于针对不同的外部观察者522、524(例如,基于他们的面部ID,或者一个或多个其它特性和/或特点)进行定制而生成的,因此虚拟模型512、514的帧可以是不同的并且可区分的。自动驾驶车辆110还可以基于比如外部观察者522、524的头发颜色、衣服颜色或其他外貌的其它属性,来定制虚拟模型512、514,以向虚拟模型512、514添加额外的区别方面。

在一个方面,原始滤波器可以是频率模式滤波器。在频域中,涉及滤波的计算(比如用于执行卷积的傅立叶变换和矢量/矩阵乘法)更加高效。针对原始滤波器的相应的逆滤波器可以是基于频域的,以在逆滤波器应用于原始滤波器时使得原始帧能够被恢复。逆滤波器还可以是基于在原始滤波器中使用的面部ID或其它区分特征的。由于针对两个外部观察者522、524的逆滤波器是唯一的并且是基于它们相应的原始滤波器的,因此即使在重叠区域506中,相应的虚拟模型512、514的经逆滤波的帧也是可区分的。

在方块614处,过程600包括:以较高的速度来发送混合在一起的多个虚拟模型的帧。例如,可以以比外部观察者522、524可感知的速度高的速度(例如,该速度的两倍或三倍)来投射混合帧。在一个说明性示例中,虚拟模型512的第一组帧和虚拟模型514的第二组帧均可以以每秒30帧(fps)来采样,并且可以相互散布。可以以采样帧率的速度的两倍(例如,使用30fps采样率,以60fps),对来自第一组和第二组的帧的组合进行投射。外部观察者522、524均可以能够以30fps查看帧。在重叠区域506中,由于第一组帧和第二组帧被混合,所以在每个时刻最多将存在来自一组帧的图像。

第一组帧和第二组帧中的每组帧可以基于其预期的接收者的图像特征进行加密(例如,使用外部观察者522、524的相应的面部ID对帧进行加密,和/或将面部ID包括在对应的第一组帧和第二组帧的元数据中)。两组帧中的每组帧可以是基于外部观察者522、524的相应面部ID进行解密的。例如,自动驾驶车辆110可以将提取的面部ID的图像特征与正在发送的帧的元数据进行匹配,并且可以使用上文所描述的注视点渲染和投射模式将图像帧发送给外部观察者522、524。外部观察者522、524均可以能够查看基于其相应的面部ID来以30fps的速度进行解密的帧。

在方块616处,过程600包括:通过具有可变折射率的介质或材料,发送多个虚拟模型的帧。在一些示例中,介质可以是具有可变折射率的玻璃结构。例如,自动驾驶车辆110可以使得表面(比如挡风玻璃510)的折射率以下面的方式变化:选择性地允许虚拟模型512的第一组帧穿过表面,使得第一组帧在重叠区域506中对于外部观察者522可见,同时阻止第一组帧对于外部观察者524可见(例如,通过阻止第一组帧在外部观察者524的视野内)。类似地,自动驾驶车辆110可以使得挡风玻璃510的折射率以下面的方式变化:针对外部观察者524,选择性地允许虚拟模型514的第二组帧穿过在重叠区域506中,同时阻止第二组帧在外部观察者522的视野内。

介质(比如玻璃)的折射率基于介质的密度而变化。折射率是指光通过介质的速度,折射率决定了多少光被反射,多少光被折射。材料的折射率越高,光穿过材料的速度就越慢。高折射率导致不透明。在不透明材料中,折射光被吸收并且很少的光或没有光通过,取决于折射率或不透明度有多高。在一些示例中,可以通过在一区域中堆叠一个或多个玻璃平面来修改该区域的密度,从而修改玻璃表面的密度。因此,背靠背堆叠的玻璃面板越多,该区域的密度以及因此不透明度就越高。下面关于图7来描述修改材料密度的示例实现方式。

图7示出用于使用玻璃面板修改折射率的系统700。在系统700中,示出材料710,在一些示例中,材料710可以包括挡风玻璃510。在水平方向上示出若干轨道,包括轨道702a、轨道702b、轨道702c、轨道702d、轨道702e和轨道702f。一个或多个玻璃面板704a、704b和704c可以使用轮子在轨道702a-f上滑动,所述轮子可以使用可以由自动驾驶车辆控制的伺服电机或其它致动器来控制(例如,无线地或使用在处理器与致动器之间的有线连接)。尽管仅示出三个玻璃面板704a-c,但在一些示例中,可以利用更多或更少数量的这样的玻璃面板。玻璃面板704a-c可以是透明的,并且在表面上的玻璃面板704a-c中的单个玻璃面板可以不会充分增加下面的表面的密度以引起折射率的显著修改。因此,在不堆叠多个玻璃面板704a-c的玻璃面板704a-c的任何布置中,下面的表面可以具有类似于常规挡风玻璃的透明度。尽管轨道702a-f被示为在水平方向,但是还可以包括各种其它类似的轨道以允许玻璃面板704a-c在除了水平方向之外或作为水平方向的替代的其他方向(例如,在垂直方向、对角线方向和/或其它方向)上移动。通过控制各个玻璃面板704a-c的移动,一个或多个玻璃面板704a-c(例如,两个或更多玻璃面板704a-c以显著地增加密度)可以被添加到材料710的特定区域。在一个示例中,玻璃面板704a-c中的两个或更多个玻璃面板可以移动到图5的重叠区域506,以控制重叠区域506的不透明度。

在重叠区域506中背对背堆叠一个以上的玻璃面板704a-c,可以增加重叠区域506的密度,并且因此可以增加重叠区域506的折射率。可以针对在重叠区域506中堆叠的玻璃面板704a-c的不同组合和数量来计算重叠区域506的折射率。折射率指代光在材料中的速,并且在确定材质中多少光被反射对比多少光被折射时是相关的。材料的折射率越高,光将越慢地穿过该材料。高折射率会导致不透明,在这种情况下,光在不透明材料中被吸收。可以将材料的折射率n计算为,其中c是真空中的光速,以及v是光在该介质中的相速度。因此,折射率是在真空中的光速与物质中的光速之间的关系。上文所描述的滑动玻璃面板可以用于在自动驾驶车辆110的挡风玻璃510下方堆叠玻璃表面。添加玻璃面板将增加密度并且因此将增加挡风玻璃510的折射率。可以通过导出在真空中的光速、检查在重叠区域506中的光速,来计算使用不同数量的玻璃面板的重叠区域506的折射率。例如,可以在光被发送通过玻璃面板之后计算光速。可以计算介质的折射率并且将其与计算出的光速值相关联,以确定允许内容在重叠区域506中被隐藏的折射率。

在一示例中,当将第一组帧发送给外部观察者522时,可以通过使重叠区域506透明或者具有非常低的折射率,来允许虚拟模型512的第一组帧通过重叠区域506。可以基于不在重叠区域506中堆叠玻璃面板704a-c中的任何玻璃面板,来实现在重叠区域506中的非常低的折射率或透明度。可以通过使重叠区域506不透明,来在重叠区域506中阻止第二组帧被发送给外部观察者522。可以通过在重叠区域506上堆叠玻璃面板504a-c中预先确定数量的玻璃面板,来重叠区域506不透明。在一些示例中,如在方块614中所描述的,可以对第一组帧和第二组帧进行混合,以及因此,可以允许第一组帧穿过去往外部观察者522,同时使用上文所描述的用于移动玻璃面板504a-c并且控制重叠区域506的折射率的系统700,间歇性地阻挡第二组帧。

在一些示例中,基于堆叠玻璃面板704a-c以使重叠区域506不透明,可以在重叠区域506中对外部观察者522、524隐藏第一组帧和第二组帧两者。可以在非重叠区域502和504中对第一组帧和第二组帧进行重新采样。

返回到图6,过程600从方块610、612、614和/或616中的任何一个方块进行到方块618。在方块618处,过程600确定多个虚拟模型的帧是否成功地发送给它们的预期的接收者。例如,自动驾驶车辆110可以确认多个虚拟模型512、514是使用上文所描述的一个或多个过程来发送的。自动驾驶车辆110还可以确定预期的接收者(比如外部观察者522、524)是否如预期地进行反应。例如,自动驾驶车辆110可以在传输这些帧之后对外部观察者522、524的图像执行目标检测和/或目标识别,以确定由外部观察者522、524采取的动作。如果动作包括针对由虚拟模型512、514传送的消息的一个或多个预期反应,则自动驾驶车辆110可以确定帧被成功地发送并且接收。在一说明性示例中,虚拟模型512可以向外部观察者522传送停止,并且外部观察者522可以如预期的那样停止。来自外部观察者522、524的动作/反应也可以与预期反应的数据库进行比较,其中数据库可以使用神经网络或其它学习模型来训练。例如,如果外部观察者通过停止来对向外部观察者传达他们要停止的消息做出反应,则可以训练神经网络来检测帧传输的成功。

在方块618处,如果多个帧未被成功地投射,则过程600可以返回到方块606。否则,过程600可以进行到方块620。在方块620处,过程600可以包括:识别来自一个或多个外部观察者的一个或多个手势。例如,一个或多个外部观察者522、524可以基于或响应于他们正在查看的虚拟模型512、514来传达一种或多种手势。自动驾驶车辆110可以识别这些一个或多个手势并且适当地进行响应。例如,自动驾驶车辆110可以修改虚拟模型512、514中的一个或多个虚拟模型,以提供对手势的响应或采取其它动作(比如停止自动驾驶车辆110)。

在一些方面中,一个或多个外部观察者可以在其身上具有用于观看从自动驾驶车辆接收的图像的设备(例如,头戴式显示器(HMD)、虚拟现实(VR)或增强现实(AR)眼镜等)。在自动驾驶车辆与一个或多个外部观察者之间的通信可以涉及:由外部观察者的设备建立在设备与自动驾驶车辆之间的连接,以及由设备从自动驾驶车辆接收虚拟驾驶员的虚拟模型。使用设备,外部观察者可以与由自动驾驶车辆显示的虚拟模型进行通信。

图8是包括被示为接近外部观察者822和824的自动驾驶车辆810的系统800的示意图。设备823被示为在外部观察者822的身上,以及设备825被示为在外部观察者824的身上。设备823和825可以被配置为:与自动驾驶车辆810进行通信,分别从虚拟模型812和814接收图像并显示虚拟模型812和814,以供相应的外部观察者822和824查看并与之交互,以及其它可能的功能。

在一些示例中,自动驾驶车辆810可以检测外部观察者822、824,并且可以确定外部观察者822、824中的一者或多者是否正在尝试与自动驾驶车辆810进行通信,如上文所描述的。自动驾驶车辆810可以在检测外部观察者822、824具有在其身上的设备823、825时,发起用于与设备823、825建立相应连接(或“与……配对”)的发现过程。然后,自动驾驶车辆810可以生成虚拟模型812、814(例如,自动驾驶车辆810的驾驶员的3D增强现实全息图),并且可以将虚拟模型812、814发送给相应的设备823、825。可以使用接口或通信介质(比如蜂窝(例如,4G、5G等)、Wi-Fi、蓝牙等),无线地或在空中执行传输。设备823、825可以接收虚拟模型812、814的帧。一旦帧被接收,设备823、825就可以对通过相应的连接接收的虚拟模型812、814的帧进行解码(或解压缩)和/或解密(如果使用加密的话),并且针对相应的外部观察者822、824重构、渲染和/或显示帧。外部观察者822、824可以查看虚拟模型812、814,并且使用手势和/或其它输入通过虚拟模型812、814与自动驾驶车辆810进行交互。

在一些情况下,一个或多个外部观察者822、824还可以发起与自动驾驶车辆810的通信。例如,在接收并且接受来自自动驾驶车辆810的配对请求时,可以对自动驾驶车辆810的凭证进行验证。然后,外部观察者822、824可以通过如上文所描述的的配对连接,接收虚拟模型812、814的帧。

图9A-图9B示出用于使用与一个或多个外部观察者相关联的相应的一个或多个设备(例如,设备823、825)在自动驾驶车辆(例如,自动驾驶车辆810)与一个或多个外部观察者(例如,外部观察者822、824)之间进行通信的过程900、950。在一些方面中,过程900可以类似于上文所描述的过程,并且在一些示例中可以结合过程950来执行。可以执行过程900,以检测是否存在利用手势进行通信的任何外部观察者,而不管外部观察者是否配备有参考图8所讨论的设备(比如HMD、VR或AR眼镜,或其它设备)。可以执行过程950,以与可以配备有参考图8所讨论的设备的一个或多个外部观察者通信。虽然是根据在图9A-图9B中的一个示例依次示出的,但过程900和950不需要按先后顺序地执行。在一些示例中,过程900和950可以独立地执行以及以任何顺序或次序执行。

图9A的过程900可以包括:捕捉或获得自动驾驶车辆周围的场景的图像。例如,自动驾驶车辆810可以使用图像传感器和/或其它机制来捕捉图像。在方块902处,该处理包括:使用所捕获的图像来检测一个或多个外部观察者822、824的存在,类似于图2的方块202。在方块904处,过程900包括:从一个或多个外部观察者的图像中提取图像特征。例如,类似于图2的方块204,自动驾驶车辆810可以提取外部观察者822、824的图像特征。基于图像特征,自动驾驶车辆810可以将在图像中的外部观察者822、824识别为人类。

在方块906处,过程900包括:跟踪一个或多个检测到的外部观察者。例如,自动驾驶车辆810可以比如逐帧地跟踪一个或多个外部观察者822、824。在方块908处,过程900包括:根据跟踪来确定一个或多个外部观察者是否正在尝试使用手势和/或其它输入与自动驾驶车辆进行通信。例如,自动驾驶车辆810可以实现类似于图2的方块206的过程,来确定一个或多个外部观察者822、824是否正在尝试使用手势和/或其它输入与自动驾驶车辆810进行通信。如果一个或多个外部观察者822、824未尝试使用手势和/或其它输入与自动驾驶车辆810进行通信,则重复方块904-906。如果确定一个或多个外部观察者822、824正在尝试使用手势和/或其它输入与自动驾驶车辆810进行通信,则过程900进行到方块910。

在方块910处,过程900包括:创建用于与一个或多个检测到的外部观察者822、824进行通信的一个或多个虚拟模型812、814。例如,自动驾驶车辆810可以实现类似于图2的方块210的过程。在一些示例中,可以检测试图与自动驾驶车辆810通信的一个或多个外部观察者的特性(例如,他们的面部ID),并且可以使用所述特性来对虚拟模型812、814进行加密。

在方块912处,过程900包括:确定一个或多个虚拟模型的创建是否成功,并且如果没有成功,则重复方块904-910。根据一些示例,如果确定成功创建了一个或多个虚拟模型,则过程900进行到图9B的过程950。在一些示例中,过程950可以独立于如上文所描述的的过程900,并且不需要为了执行过程950,而执行上文提及的过程900的方块。

根据图9B,在方块952处,过程950包括:由自动驾驶车辆检测在外部观察者身上的设备。例如,自动驾驶车辆810可以检测接近或附接到一个或多个外部观察者822、824或者由一个或多个外部观察者822、824佩戴的一个或多个设备823、825。例如,设备可以是头戴式显示器(HMD)、虚拟现实(VR)或增强现实(AR)眼镜、或其它类型的设备。如果检测到一个或多个这样的设备,则自动驾驶车辆810可以进入发现模式以通过无线连接(例如,蓝牙、WiFi、蜂窝或其它无线连接)与一个或多个设备连接。

在方块954处,过程950包括:确定检测到的一个或多个设备相对于自动驾驶车辆的信号位置。例如,可以基于由设备823发送的发现信号来检测设备823的信号位置。确定设备823的信号位置,可以使得自动驾驶车辆810能够将通信(比如配对请求)引导至设备823。还可以确定在设备823与自动驾驶车辆810之间的距离和相对方向(例如,使用深度传感器),这也可以帮助细化对信号位置和信号位置相对于自动驾驶车辆810的方向的识别。在一些示例中,提取图像特征(比如佩戴设备823的外部观察者822的面部属性)也可以揭示在外部观察者822身上的设备823的位置。

在方块956处,过程950包括:向设备发送配对请求。例如,自动驾驶车辆810可以向设备823发送配对请求。配对请求可能与比如通过无线通信协议与设备823建立通信链路有关。一旦已经接收到配对请求,设备823可以接受或拒绝配对请求。设备823可以验证自动驾驶车辆810的凭证,以帮助决定接受还是拒绝配对请求。

在方块958处,过程950包括:生成可以由设备用于渲染虚拟驾驶员的虚拟模型的数据。例如,自动驾驶车辆810可以生成可以由设备823用于在设备823中渲染虚拟模型812的帧。自动驾驶车辆810可以将数据传输给设备823,以使得设备823渲染虚拟模型812。在一些示例中,可以在设备823接受配对请求时发起数据传输。在一些示例中,可以通过使用由设备823支持的通信协议来执行数据传输。

在方块960处,过程950包括:确定设备可以支持的一种或多种通信协议。在一些示例中,自动驾驶车辆810可以请求设备823提供关于设备823支持的通信协议的信息。在一些示例中,自动驾驶车辆810可以将针对关于设备823支持的通信协议的信息的该请求,连同在方块956中发送的配对请求包括在一起。基于来自设备的对针对信息的请求的响应,自动驾驶车辆810可以确定设备823支持的一种或多种通信协议。这些通信协议可以是无线通信协议(例如,Wi-Fi、蓝牙或其它无线通信协议)、空中协议、一种或多种蜂窝通信协议(例如,4G、5G或其它蜂窝通信协议)和/或其它通信协议。

在方块962处,过程950包括:将由自动驾驶车辆用于数据传输的通信协议与由设备支持的一种或多种通信协议进行匹配。例如,自动驾驶车辆810可以使用设备823支持的相同的空中协议,来传输数据并且执行与设备823的进一步通信。

在方块964处,过程950包括:使用由设备支持的一种或多种通信协议向设备发送用于渲染虚拟模型的数据。例如,自动驾驶车辆810可以使用由设备823支持的通信协议来发送数据,以使得设备823能够使用该数据来渲染虚拟模型。例如,设备823可以从接收到的数据中解码和提取信息,并且执行3D渲染以重建虚拟模型812(比如使用单应性)。

在方块966处,过程950包括:使用由设备渲染或显示的虚拟模型,与外部观察者进行通信。例如,自动驾驶车辆810可以使用由设备823渲染或显示的虚拟模型812与外部观察者822进行通信。外部观察者822可以对由设备823渲染的虚拟模型812进行解释,并且使用手势与自动驾驶车辆810进行通信,或者基于由虚拟模型812传达的手势来采取动作。

图10A是示出使用本文所描述的技术在一个或多个车辆(例如,自动驾驶车辆)与一个或多个外部观察者之间进行通信的过程1000的示例的流程图。在方块1002处,过程1000包括:检测用于与车辆(例如,自动驾驶车辆)通信的第一外部观察者。在一些示例中,过程1000可以识别与第一外部观察者相关联的输入,并且可以基于输入来检测第一外部观察者正在尝试与车辆进行通信。输入可以包括一个或多个手势、一个或多个可听输入(例如,语音命令)和/或任何其它类型的输入。

在一个说明性示例中,自动驾驶车辆110可以检测分别用于与自动驾驶车辆110的潜在通信的第一外部观察者122和第二外部观察者124。在一些示例中,自动驾驶车辆110可以包括用于捕获自动驾驶车辆110附近的图像的图像传感器(例如,一个或多个摄像机、静止图像相机、光学传感器和/或其它图像捕获设备)。在一些示例中,自动驾驶车辆还可以使用其它类型的传感器,比如雷达,雷达使用无线电波来检测自动驾驶车辆110附近物体的存在、范围、速度等。在一些示例中,也可以采用任何其它类型的运动检测机制来检测自动驾驶车辆110附近的移动物体。自动驾驶车辆110的附近可以包括自动驾驶车辆110周围的区域,包括前面、后面和侧面。在一些示例中,自动驾驶车辆110可以采用特别聚焦于自动驾驶车辆110的行进方向(例如,朝前和朝后,取决于自动驾驶车辆110是正在向前移动还是向后移动)的检测机制。

在方块1004处,过程1000包括:针对车辆获得用于与第一外部观察者进行通信的第一虚拟模型。在一些情况下,第一虚拟模型可以由车辆生成。在一些情况下,第一虚拟模型可以由服务器生成,并且车辆可以从服务器接收第一虚拟模型。在方块1006处,过程1000包括:基于第一外部观察者的一个或多个特性,对第一虚拟模型进行加密以生成加密的第一虚拟模型。例如,可以生成虚拟模型112、114,以用于与检测到的外部观察者122、124进行通信。在一些示例中,虚拟模型112、114可以使用手势或其它交互输出(例如,可听消息),来发起与一个或多个检测到的外部观察者的通信。

在一些示例中,可以将虚拟模型112、114定制以用于与外部观察者122、124进行交互。在一些情况下,虚拟模型112、114的定制可以是基于外部观察者122、124的一个或多个特点或特性的。定制的虚拟模型可以具有定制的肢体语言、定制的手势、定制的外貌、以及基于外部观察者的特性的其它定制特征。例如,可以基于外部观察者122、124相应的特性(例如,种族、外貌、动作、年龄等)来定制虚拟模型112、114以与外部观察者122、124进行交互。在一些情况下,例如,在方块204中用于特征提取的目标识别算法可以进一步提取特征以检测可以用于定制针对相应外部观察者122、124生成的虚拟模型112、114的特性,比如外部观察者的种族。例如,可以创建虚拟模型112、114以匹配外部观察者122、124的相应的种族。例如,这可以基于特定于种族的手势来提高通信质量。在一些实现方式中,可以基于神经网络根据先前学习的模型来生成定制的虚拟模型,比如使用基于云的模式匹配实时生成。例如,随着获取更多的样本数据,可以不断地重新训练用于生成虚拟模型的神经网络。

根据本公开内容的在车辆与外部观察者之间的通信的一些示例方法可以包括使用加密技术。在一些示例中,可以在存在多个外部观察者并且同时的多个虚拟模型被生成并且用于与多个外部观察者的交互的情况下,采用加密技术。例如,在检测到用于与自动驾驶车辆110通信的两个或更多外部观察者122、124时,自动驾驶车辆110可以利用加密技术来确保:特定的虚拟模型112只可以被作为预期的接收者的特定外部观察者122查看,而不可以被其他外部观察者(比如外部观察者124)查看。类似地,加密技术可以用于确保:虚拟模型114只可以被作为预期的接收者的外部观察者124查看,而不可以被其他外部观察者(比如外部观察者122)查看。

在一些示例中,加密技术可以是基于提取外部观察者的一个或多个图像特征的。例如,可以从自动驾驶车辆110的一个或多个图像传感器获得外部观察者122的面部图像、虹膜和/或其它代表性特征或部位。在一些示例中,外部观察者122的代表性特征或部位可以包括外部观察者122的面部ID。自动驾驶车辆110可以使用一个或多个图像特征(比如外部观察者122的面部ID),对被生成用于与外部观察者122进行通信的虚拟模型112进行加密。例如,自动驾驶车辆110可以使用面部ID作为私钥,对虚拟模型112的一个或多个帧进行加密。在一些示例中,自动驾驶车辆110可以另外地或替代地将面部ID例如作为元数据添加到虚拟模型112的帧。

在方块1008处,过程1000包括:使用加密的第一虚拟模型与第一外部观察者进行通信。在一些示例中,上文所描述的加密虚拟模型可以用于与外部观察者122进行通信。

在一些示例中,过程1000可以包括:检测用于与车辆进行通信的第二外部观察者。过程1000可以包括:针对车辆获得用于与第二外部观察者进行通信的第二虚拟模型。在一些情况下,过程1000可以基于第二外部观察者的一个或多个特性,对第二虚拟模型进行加密以生成加密的第二虚拟模型。过程1000可以在使用加密的第一虚拟模型与第一外部观察者进行通信的同时,使用加密的第二虚拟模型与第二外部观察者进行通信。

例如,过程1000可以向第一外部观察者投射加密的第一虚拟模型的第一组帧,并且可以向第二外部观察者投射加密的第二虚拟模型的第二组帧。过程1000可以以防止第一组帧与第二组帧重叠的方式,投射第一组帧和第二组帧。以这种方式,自动驾驶车辆110可以确保:虚拟模型112的帧与虚拟模型112将用于与之通信的预期的外部观察者122唯一地相关联。

在一些实现方式中,可以通过在具有可变折射率的玻璃表面上显示第一组帧和第二组帧,来防止第一组帧与第二组帧重叠。过程1000可以包括:修改玻璃表面的第一部分的折射率,以选择性地允许第一组帧穿过玻璃表面的在第一外部观察者的视野中的第一部分,同时阻止第二组帧穿过玻璃表面的在第一外部观察者的视野中的第一部分。过程1000还可以包括:修改玻璃表面的第二部分的折射率,以选择性地允许第二组帧穿过玻璃表面的在第二外部观察者的视野中的第二部分,同时阻止第一组帧穿过玻璃表面的在第二外部观察者的视野中的第二部分。上面关于图7提供了修改玻璃表面(例如,挡风玻璃)的折射率的说明性示例。

当虚拟模型112的帧在预期的外部观察者122的视野中进行显示或投射时,自动驾驶车辆110可以对这些帧进行解密。例如,自动驾驶车辆可以采用注视点渲染技术,向外部观察者122的眼睛投射虚拟模型112的经解密的帧。自动驾驶车辆110可以利用先前描述的眼睛追踪机制来检测外部观察者122的注视和视野。在一些方面中,在使用注视点渲染的聚焦投射之前对虚拟模型112的帧应用的解密确保:帧被预期的外部观察者122观看。自动驾驶车辆110可以针对该解密使用从外部观察者122提取的图像特征。当多个虚拟模型112、114被生成并且同时向多个外部观察者122、124投射时,上文所描述的加密-解密过程确保:使用预期的外部观察者122的图像特征来生成和加密的虚拟模型112的帧是使用预期的外部观察者122的图像特征进行解密并且向预期的外部观察者122进行投射的。换言之,上文所描述的加密-解密过程还确保:使用预期的外部观察者122的图像特征来生成和加密的虚拟模型112的帧未使用不同的外部观察者(比如外部观察者124)的图像特征进行解密,从而防止非预期的外部观察者124能够观看虚拟模型112的帧。

在一些示例中,虚拟模型112、114可以由自动驾驶车辆110以上文描述的方式进行加密,以生成相应的加密的虚拟模型。在一些示例中,虚拟模型112、114可以由与自动驾驶车辆110相通信的服务器或其它远程设备(未示出)进行加密,并且自动驾驶车辆110可以从服务器或其它远程设备接收加密的虚拟模型。同样,在一些示例中,加密的虚拟模型可以由自动驾驶车辆110进行解密,以向相应的预期的外部观察者122、124进行投射。在一些示例中,加密的虚拟模型可以由与自动驾驶车辆110相通信的服务器或其它远程设备进行解密,并且自动驾驶车辆110可以从服务器或其它远程设备接收解密的虚拟模型,以向预期的外部观察者122、124进行投射。

图10B是示出使用本文所描述的技术在车辆(例如,自动驾驶车辆)与一个或多个外部观察者之间进行通信的过程1050的示例的流程图。

在方块1052处,过程1050包括:由设备在一个或多个外部观察者中的一外部观察者的设备与车辆之间建立连接。例如,自动驾驶车辆810可以检测接近或附接到一个或多个外部观察者822、824或者由一个或多个外部观察者822、824佩戴的一个或多个设备823、825。例如,设备可以是头戴式显示器(HMD)、虚拟现实(VR)眼镜等等。如果检测到一个或多个这样的设备,则自动驾驶车辆810可以进入发现模式以与一个或多个设备连接。例如,自动驾驶车辆810可以向设备823发送配对请求。配对请求可能与比如通过无线通信协议与设备823建立通信链路有关。一旦已经接收到配对请求,设备823可以接受或拒绝配对请求。设备823可以验证自动驾驶车辆810的凭证,以帮助决定接受还是拒绝配对请求。

在方块1054处,过程1050包括:在设备处从车辆接收虚拟驾驶员的虚拟模型。例如,自动驾驶车辆810可以生成可以由设备823用于在设备823中渲染虚拟模型812的帧。自动驾驶车辆810可以将该数据传输给设备823,以使得设备823渲染虚拟模型812。在一些示例中,可以在由设备823接受配对请求时,启动数据传输。在一些示例中,数据传输可以是通过对由设备823所支持的通信协议的使用的。

在方块1056处,过程1050包括:使用虚拟模型与车辆进行通信。例如,自动驾驶车辆810可以请求设备823提供关于设备823支持的通信协议的信息。在一些示例中,自动驾驶车辆810可以将针对关于设备823支持的通信协议的信息的该请求、连同发送的配对请求包括在一起。基于来自设备的对针对信息的请求的响应,自动驾驶车辆810可以确定设备823支持的一种或多种通信协议。这些通信协议可以是无线通信协议(例如,Wi-Fi、蓝牙)、空中协议、一种或多种蜂窝通信协议(例如,4G、5G等)。自动驾驶车辆810可以使用设备823支持的相同的空中协议,来传输数据并且执行与设备823的进一步通信。自动驾驶车辆810可以使用由设备823支持的通信协议来发送数据,以使得设备823能够使用数据来渲染虚拟模型。例如,设备823可以对接收的数据进行解码并且从中提取信息,并且执行3D渲染以重建虚拟模型812(例如,使用单应性)。自动驾驶车辆810可以使用由设备823渲染或显示的虚拟模型812与外部观察者822进行通信。外部观察者822可以对由设备823渲染的虚拟模型812进行解释,并且使用手势与自动驾驶车辆810进行通信,或者基于由虚拟模型812传达的手势来采取动作。

在一些示例中,上文所描述的方法可以由计算设备或装置来执行。在一个说明性示例中,过程200、300、400、600、900、950、1000和1050中的一个或多个过程可以由在车辆(例如,自动驾驶车辆110和/或自动驾驶车辆810)中的计算设备来执行。在一些情况下,在一些实现方式中,车辆可以包括其它类型的车辆,比如无人驾驶飞行器(UAE)(或无人机)、或者其它类型的车辆或船只。在一些示例中,计算设备可以配置有在图11中所示出的计算设备架构1100。在一些情况下,计算设备或装置可以包括各种组件,比如一个或多个输入设备、一个或多个输出设备、一个或多个处理器、一个或多个微处理器、一个或多个微型计算机、一个或多个照相机、一个或多个传感器和/或被配置为执行本文所描述的过程的步骤的其它组件。在一些示例中,计算设备可以包括显示器、被配置为传送和/或接收数据的网络接口、其任何组合、和/或其它组件。网络接口可以被配置为传送和/或接收基于互联网协议(IP)的数据或其它类型的数据。

计算设备的组件可以是用电路实现的。例如,组件可以包括电子电路或其它电子硬件,和/或是使用电子电路或其它电子硬件来实现的,和/或可以包括计算机软件、固件或其任何组合,和/或是使用计算机软件、固件或其任何组合来实现的,以执行本文所描述的各种操作,所述电子电路或其它电子硬件可以包括一个或多个可编程电子电路(例如,微处理器、图形处理单元(GPU)、数字信号处理器(DSP)、中央处理单元(CPU)和/或其它适当的电子电路)。

过程200、300、400、600、900、950、1000和1050被示为逻辑流程图,其操作表示可以以硬件、计算机指令或其组合来实现的一系列操作。在计算机指令的上下文中,操作表示被存储在一个或多个计算机可读存储介质上的计算机可执行指令,当所述计算机可执行指令被一个或多个处理器执行时,执行所述的操作。通常,计算机可执行指令包括执行特定功能或实现特定数据类型的例程、程序、对象、组件、数据结构等。以其描述操作的顺序不旨在被理解为是限制,并且所描述的操作中的任意数量的操作可以以任何顺序和/或并行地组合以实现过程。

过程200、300、400、600、900、950、1000和1050可以在配置有可执行指令的一个或多个计算机系统的控制下来执行,并且可以被实现为在一个或多个处理器上共同执行的代码、通过硬件执行的代码或者其组合(例如,可执行指令、一个或多个计算机程序或一个或多个应用)。如上文所指出的,可以例如以包括可由一个或多个处理器执行的多个指令的计算机程序的形式,将代码存储在计算机可读或机器可读存储介质上。计算机可读或机器可读存储介质可以是非暂时性的。

图11示出可以实现本文所描述的各种技术的示例计算设备的示例计算设备架构1100。例如,计算设备架构1100可以实现本文所描述的一个或多个处理。计算设备架构1100的组件被示出为使用连接1105(比如总线)彼此进行电通信。示例计算设备架构1100包括处理单元(CPU或处理器)1110和计算设备连接1105,计算设备连接1105将包括计算设备存储器1115(比如只读存储器(ROM)1120和随机存取存储器(RAM)1125)的各种计算设备组件耦合到处理器1110。

计算设备架构1100可以包括高速存储器的高速缓存,高速存储器与处理器1110直接连接、紧密地接近处理器1110或被整合为处理器1110的一部分。计算设备架构1100可以将数据从存储器1115和/或存储设备1130复制到高速缓存1112以供处理器1110快速访问。以这种方式,高速缓存1112可以提供避免处理器1110在等待数据时的延迟的性能提升。这些和其它模块可以控制或者被配置为控制处理器1110执行各种动作。其它计算设备存储器1115也可以是可用的。存储器1115可以包括具有不同性能特性的多种不同类型的存储器。处理器1110可以包括任何通用处理器和硬件或软件服务(比如被存储在存储设备1130中的服务1 1132、服务2 1134和服务3 1136),在软件指令被整合到处理器设计方案中的情况下,所述硬件或软件服务被配置为控制处理器1110以及专用处理器。处理器1110可以是包含多个核或处理器、总线、存储器控制器、高速缓存等的自包含系统。多核处理器可以是对称的或非对称的。

为了实现与计算设备架构1100的交互,输入设备1145可以表示任意数量的输入机制,比如用于语音的麦克风、用于手势或图形输入的触摸敏感型屏幕、键盘、鼠标、运动输入、语音等等。输出设备1135也可以是本领域技术人员已知的众多输出机制中的一种或多种输出机制,比如显示器、投射仪、电视、扬声器设备等等。在一些实例中,多模式计算设备可以使得用户能够提供多种类型的输入,以与计算设备架构1100进行通信。通信接口1140通常可以控制和管理用户输入和计算设备输出。不存在对在任何特定硬件布置上的操作的限制,以及因此随着硬件或固件布置的发展,本文的基本特征可以容易地被替换为改进的硬件或固件布置。

存储设备1130是非易失性存储器,并且可以是能够存储可由计算机访问的数据的硬盘或其它类型的计算机可读介质,比如磁带盒、闪存卡、固态存储设备、数字通用磁盘、盒式磁带、随机存取存储器(RAM)1125、只读存储器(ROM)1120以及其混合。存储设备1130可以包括用于控制处理器1110的服务1132、1134、1136。其它硬件或软件模块是预期的。存储设备1130可以连接到计算设备连接1105。在一个方面,执行特定功能的硬件模块可以包括被存储在与必要的硬件组件(比如处理器1110、连接1105、输出设备1135等等)相连接的计算机可读介质中的用于执行该功能的软件组件。

为了解释清楚,在一些实例中,本技术可以被表示为包括包含功能块的单独的功能块,所述功能块包括设备、设备组件、以软件体现的方法中的步骤或例程、或者硬件和软件的组合。

在一些实施例中,计算机可读存储设备、介质和存储器可以包括包含比特流等的电缆或无线信号。但是,当提及时,非暂时性计算机可读存储介质明确地排除比如能量、载波信号、电磁波和信号本身的介质。

根据上文描述的示例的方法和过程可以使用存储在计算机可读介质中或者从计算机可读介质中可用的计算机可执行指令来实现。例如,这样的指令可以包括使得或以其它方式配置通用计算机、专用计算机或处理设备来执行某个功能或功能组的指令和数据。所使用的计算机资源的各部分是可以通过网络访问的。计算机可执行指令可以是例如二进制、中间格式指令(比如汇编语言)、固件、源代码等等。可以用于存储所使用的指令、信息和/或在根据所描述的示例的方法期间创建的信息的计算机可读介质的示例包括磁盘或光盘、闪存、配备有非易失性存储器的USB设备、网络存储设备等。

实现根据这些公开内容的方法的设备可以包括硬件、固件和/或软件,并且可以采用多种形状因子中的任何一种形状因子。这样的形状因子的典型示例包括膝上型计算机、智能手机、小型形状因子的个人计算机、个人数字助理、机架式设备、独立设备等。本文所描述的功能还可以体现在外围设备或附加卡中。作为进一步的示例,这样的功能还可以被实现在电路板上以及在单个设备中执行的不同芯片或不同过程上。

指令、用于传送这样的指令的介质、用于执行指令的计算资源、以及用于支持这样的计算资源的其它结构,是用于提供在本公开内容中描述的功能的示例单元。

在前面的描述中,本申请的各方面是参考其特定实施例来描述的,但是本领域技术人员将认识到,本申请并不受此限制。因此,虽然本文已经详细描述了本申请的说明性实施例,但是要理解的是,可以以其它方式不同地体现和采用发明构思,并且所附权利要求旨在被解释为包括这样的变型,除非受到现有技术的限制。可以单独或联合地使用上述申请的各种特征和方面。此外,在不脱离本说明书的更广泛的精神和范围的情况下,可以在本文所描述的那些环境和应用之外的任何数量的环境和应用中利用实施例。因此,说明书和附图要被认为是说明性的而不是限制性的。为了说明的目的,方法是以特定顺序描述的。应当理解的是,在替代实施例中,方法可以以与所描述的顺序不同的顺序来执行。

本领域技术人员将理解,在不脱离本说明书的范围的情况下,可以将本文中使用的小于(“<”)和大于(“>”)符号或术语分别替换为小于或等于(“≤”)和大于或等于(“≥”)符号。

在组件被描述为“被配置为”执行某些操作的情况下,这样的配置可以例如通过以下方式来实现:设计电子电路或其它硬件来执行操作,通过对可编程电子电路(例如,微处理器或其它适当的电子电路)进行编程以执行操作,或其任意组合。

短语“耦合到”指代直接或间接地物理连接到另一组件的任何组件、和/或直接或间接地与另一组件相通信的任何组件(例如,通过有线或无线连接和/或其它适当的通信接口来连接到其它组件)。

陈述集合中的“至少一个”和/或集合中的“一个或多个”的权利要求语言或其它语言,指示集合中的一个成员或集合中的多个成员(以任何组合)满足权利要求。例如,陈述“A和B中的至少一个”或者“A或B中的至少一个”的权利要求语言意指A、B、或A和B。在另一示例中,陈述“A、B和C中的至少一个”或者“A、B或C中的至少一个”的权利要求语言意指A、B、C、或A和B、或A和C、或B和C、或A和B和C。集合中的“至少一个”和/或集合中的“一个或多个”的语言并不将集合限制于在集合中列出的项目。例如,陈述“A和B中的至少一个”或者“A或B中的至少一个”的权利要求语言可以意指A、B、或A和B,并且可以另外地包括在A和B的集合中没有列出的项目。

结合本文所公开的实施例描述的各种示例性的逻辑方块、模块、电路和算法步骤均可以被实现成电子硬件、计算机软件、固件或者其组合。为了清楚地说明硬件和软件的这种可交换性,上文已经对各种示例性元件、方块、模块、电路和步骤均围绕其功能进行了总体描述。至于这样的功能是被实现为硬件还是软件,取决于特定的应用和对整个系统所施加的设计约束。本领域技术人员可以针对每个特定应用,以变通的方式实现所描述的功能,但是,这样的实现决策不应被解释为导致背离本申请的范围。

本文所描述的技术还可以利用电子硬件、计算机软件、固件或者其任何组合来实现。这样的技术可以在各种设备中的任何设备中实现,比如通用计算机、无线通信设备手持装置、或者在无线通信设备手持装置中的具有包括应用的多种用途的集成电路设备、以及其他设备。被描述为模块或组件的任何特征可以在集成逻辑设备中一起实现,或者分别被实现为离散但可互操作的逻辑设备。如果以软件实现,则所述技术可以至少部分地通过包括包含指令的程序代码的计算机可读数据存储介质来实现,所述指令在被执行时执行上文所描述的方法中的一个或多个方法。计算机可读数据存储介质可以形成计算机程序产品的一部分,所述计算机程序产品可以包括封装材料。计算机可读介质可以包括存储器或数据存储介质,比如随机存取存储器(RAM)(比如同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光数据存储介质等等。另外地或替代地,所述技术可以至少部分地通过计算机可读通信介质来实现,所述计算机可读通信介质(比如传播的信号或波)携带或传送具有指令或数据结构的形式并且可以由计算机访问、读取和/或执行的程序代码。

程序代码可以由处理器执行,处理器可以包括一个或多个处理器,比如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或者其它等效的集成逻辑电路或离散逻辑电路。这样的处理器可以被配置为执行在本公开内容中描述技术中的任何技术。通用处理器可以是微处理器,但是在替代方案中,处理器也可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以被实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、与DSP核心结合的一个或多个微处理器、或者任何其它这样的配置。因此,如本文中所使用的术语“处理器”可以指代前述结构中的任何结构、前述结构的任何组合、或者适合于实现本文所描述的技术的任何其它结构或装置。此外,在一些方面中,可以在被配置为执行本文所描述的操作中的一个或多个操作的专用软件模块或硬件模块内提供本文所描述的功能。

52页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:用于在3D情景中显示对象的设备、方法和图形用户界面

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类