识别和控制智能设备的制作方法

文档序号:23629374发布日期:2021-01-12 10:43阅读:101来源:国知局
识别和控制智能设备的制作方法



背景技术:

许多移动设备(诸如智能手机)都配备了用于捕获画面和数字图像的相机。移动设备还提供对各种信息的访问。可以在在移动设备上运行的web浏览器或本机应用中查看此信息。用户还可以使用图像来获得与图像中描绘的对象或位置有关的另外信息。

虚拟助手是为用户执行任务或服务的应用。虚拟助手可以集成在语音助手设备(例如,智能扬声器或其他语音控制设备)中。一些虚拟助手还充当控制其他智能设备的智能设备,诸如家庭自动化设备。例如,用户可以通过向被配置为控制灯的语音助手设备提供语音命令来控制灯的操作。



技术实现要素:

本说明书描述了与识别智能设备以及呈现用于控制所识别的智能设备的一个或多个用户界面控件有关的技术。

通常,本说明书中描述的主题的一个创新方面可以体现为以下方法:所述方法包括:接收由用户的移动设备的相机捕获的图像的图像数据;基于图像数据,确定图像描绘了智能设备或智能设备的物理控件中的至少一个;响应于确定图像描绘了智能设备或智能设备的物理控件中的至少一个,识别用于控制智能设备的一个或多个用户界面控件;在移动设备的显示器上生成并呈现用于控制智能设备的一个或多个用户界面控件;在移动设备的显示器上检测与一个或多个用户界面控件中的至少一个的用户交互;以及基于检测的用户交互来控制智能设备。该方面的其他实现方式包括被配置为执行在计算机存储设备上编码的方法的动作的对应装置、方法、系统和计算机程序。

这些和其他实现方式可各自可选地包括以下特征中的一个或多个。在一些方面,控制智能设备包括:将数据发送到可操作地连接到智能设备的虚拟助手控制设备,所述数据使虚拟助手控制设备向智能设备发送与检测的用户交互相对应的操作以执行操作。

在一些方面,基于图像数据确定图像描绘了智能设备或智能设备的物理控件中的至少一个包括:确定图像描绘了被配置为控制其他智能设备的虚拟助手控制设备。在一些方面,所述方法还可以包括:确定在移动设备呈现图像时移动设备能够控制虚拟助手控制设备。在一些方面,在移动设备呈现图像时确定移动设备能够控制虚拟助手控制设备包括:通过确定在用户设备呈现图像时移动设备在向用户账户注册的特定虚拟助手控制设备的阈值距离内确定虚拟助手控制设备是向用户账户注册的特定虚拟助手控制设备。在一些方面,响应于确定在移动设备呈现图像时确定移动设备能够控制虚拟助手控制设备,确定呈现用于控制智能设备的一个或多个用户界面控件。

在一些方面,基于图像数据确定图像描绘了智能设备或智能设备的物理控件中的至少一个包括:确定图像描绘了用户的虚拟辅助控制设备的图像。在一些方面,虚拟助手控制设备包括虚拟助手智能扬声器设备,从用户接收语音命令并且使用虚拟助手智能扬声器设备的扬声器向用户提供信息。在一些方面,识别用于控制智能设备的一个或多个用户界面控件包括:确定虚拟助手智能扬声器设备当前正在执行的任务或服务;以及选择用于控制任务或服务的一个或多个用户界面控件。

在一些方面,在移动设备生成并呈现用于控制智能设备的一个或多个用户界面控件包括:将一个或多个用户界面控件以增强现实方式叠加在移动设备的相机的取景器的视场上。

在一些方面,响应于确定图像描绘了智能设备或智能设备的物理控件中的至少一个,识别用于控制智能设备的一个或多个用户界面控件包括:获得智能设备的注册文件,其中,注册文件包括指定智能设备的类型的数据,以及用于控制智能设备的可用用户界面控件。

本说明书中描述的主题可以在特定实施例中实现,以实现以下优点中的一个或多个。通过促进可以在图像中识别智能设备并为所识别的智能设备呈现虚拟用户界面控件的平台,该平台允许呈现虚拟用户界面控件,这些控件已针对对象、其能力和/或对象当前操作的情境进行了定制或调整。

使用常规的用户界面,用户可能需要多次滚动和切换视图以找到正确的数据/功能或向语音助手设备提供多个语音命令。当用户在移动设备上查看智能设备时(例如,使用增强现实技术),本系统的虚拟助手应用可以为智能设备呈现虚拟用户界面控件,而不必为每个智能设备找到单独的应用。例如,当用户的家、办公室或其他位置处的虚拟助手控制设备(例如,语音助手设备,例如智能扬声器)正在播放音乐时,用户可以将移动设备的相机指向该虚拟助手控制设备。虚拟助手应用(例如,单独使用或在远程系统的帮助下)可以基于从相机接收的图像数据检测虚拟助手控制设备,并呈现使用户能够控制当前正在播放的音频的用户界面控件。通过基于在图像数据中检测的智能设备以及智能设备的当前模式或动作来选择用户界面控件,虚拟助手应用可以提供定制的用户界面,其提供对智能设备的高效且有效控制。例如,尝试使用语音控件调整音量或播放音乐可能需要智能扬声器进行多个语音命令和调整,以获取适当的音量或播放更改。移动设备呈现的用户界面控件可以使用户更快更直观地进行相同的更改。

本文描述的系统和技术可以从来自移动设备的相机的图像数据(例如,单帧图像、连续视频,图像流等)识别智能设备。一旦智能设备被识别,移动设备就可以为结果建立索引。这防止了用户必须做出多个请求,进而减少了计算系统处理请求以识别智能设备并确定应该针对特定智能设备应用呈现哪些用户界面控件(例如音乐播放的音频控件、灯的灯开关控件等)的次数。由于在许多用户上汇总,这可以通过减少对计算机设置的处理需求来显着改善选择用户界面控件的虚拟助手管理系统的计算机功能。由于可以通过网络访问虚拟助手管理系统,请求数量的减少还可以减少消耗的带宽量,从而为其他网络业务提供带宽和/或提高网络速度。

通过基于智能设备选择适当的用户界面控件,用户没有每次将移动设备的相机指向同一智能设备时都必须选择控件的负担。这允许用户更快的请求以及用户的更大灵活性。例如,通过使用虚拟助手应用,用户可以握住移动设备,使相机指向智能设备,并呈现控制智能设备的某些特征的用户界面控件,而无需与移动设备或智能设备进一步交互。因此,本文描述的系统和技术提供了用于控制智能设备的引导式人机交互处理。

下面参照附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求、其他特征和优点是显而易见的。

附图说明

图1a是虚拟助手应用识别智能设备并呈现用于控制智能设备的用户界面控件的示例环境的框图。

图1b是虚拟助手应用呈现用于所识别的智能设备的用户界面控件的示例处理的示例系统流程图。

图2是呈现用于基于接收的图像数据控制所识别的智能设备的一个或多个用户界面控件的移动设备的示例屏幕截图的序列。

图3是呈现用于基于接收的图像数据控制所识别的智能设备的一个或多个用户界面控件的移动设备的示例屏幕截图的另一序列。

图4是使用虚拟助手应用识别智能设备并呈现用于控制所识别的智能设备的一个或多个用户界面控件的示例处理的流程图。

图5是可用于实现本公开中描述的方法、系统和处理的示例计算机系统的框图。

在各个附图中,相同的附图标记和标记表示相同的元件。

具体实施方式

描述了系统、方法和计算机程序产品,用于使用虚拟助手应用基于图像数据(例如,单帧图像、连续视频、图像流等)识别智能设备(或智能设备的物理控件),以及对每个识别的智能设备,呈现用于控制智能设备的用一个或多个户界面控件。例如,可以在代表移动设备的相机的取景器的图像数据中识别(例如,使用对象识别技术辨识)智能设备或智能设备的物理控件。作为响应,可以例如使用增强现实技术在取景器内呈现用于控制智能设备的用户界面控件,使得用户可以控制智能设备。智能设备是通过一个或多个网络连接到其他设备的电子设备。智能设备可以与其他智能设备自主和/或交互地操作。示例性智能设备包括虚拟助手控制设备(例如,诸如智能扬声器的语音控制设备)、家庭自动化设备(例如,智能灯、智能电器、恒温器等)、智能电视和智能收音机,仅举几例。虚拟助手控制设备是包括集成虚拟助手的电子设备,该集成虚拟助手为用户执行任务和/或服务并控制其他智能设备。示例虚拟助手控制设备是智能扬声器,其响应于语音命令执行任务并控制其他智能设备。

例如,用户可以将移动设备的相机指向智能扬声器,并查看用于控制智能扬声器或智能扬声器已被配置为要控制的其他智能设备(例如,向用户账户注册的其他智能设备)用户界面控件。在另一个示例中,用户可以将移动设备的相机指向智能灯或灯开关,并查看用于调整智能灯的用户界面控件。

在一些方面,移动设备通过虚拟助手控制设备(例如,智能扬声器)连接到智能设备,其中每个虚拟助手控制设备已经连接到同一网络。在一些方面,移动设备可以连接到智能设备,而无需连接到虚拟助手控制设备或通过虚拟助手控制设备连接到智能设备,例如,特定智能设备被配置为通过与移动设备相同的网络(例如,无线网络)来通信数据的情况。

根据一些方面,用户可以向用户账户注册虚拟助手控制设备。在另一示例中,用户还可以向账户注册其他智能设备,使得虚拟助手控制设备可以控制每个注册的智能设备,用户可以配置虚拟助手控制设备来控制一个或多个智能设备,例如在虚拟助手控制设备上。然后,如果灯是已向用户账户注册或以其他方式由虚拟助手控制设备控制的智能设备(或连接到智能设备),则用户可以请求虚拟助手控制设备在其自己的扬声器上播放音乐,或者请求虚拟助手控制设备关闭某个房间中的灯。虚拟助手控制设备可以通过在无线网络上将控制数据发送到智能设备,或者通过将控制数据发送到将控制数据中继到智能设备的虚拟助手管理系统来控制智能设备。

本文所述的虚拟助手应用可以通过确定在移动设备上呈现图像时(或在捕获图像时)移动设备的位置在向用户账户注册的虚拟助手控制设备的阈值距离之内,来确定在图像数据中检测到的智能设备(诸如虚拟助手控制设备或智能灯开关)是否与移动设备的用户相关联。例如,系统可以使用移动设备的地理位置以及向用户账户注册的虚拟助手控制设备的位置,来确定由图像数据表示的特定智能设备是否是用户的智能设备。然后,虚拟助手应用可以通过生成的界面控件,使用虚拟助手控制设备与特定智能设备之间的连接来控制智能设备。智能设备的应用可用于配置特定智能设备,并将其连接到网络(诸如wifi网络)。虚拟助手控制设备的应用可用于连接和控制同一wifi网络上的智能设备,并进一步配置特定智能设备(例如,添加昵称、将其分配给房间等)。

根据一些方面,虚拟助手应用可以在没有虚拟助手控制设备的情况下连接到智能设备。例如,虚拟助手应用可以确定移动设备的用户是否可以访问智能设备注册到的家庭网络(例如,准许通过wifi密码访问家庭网络等)。本文所述的虚拟助手应用系统可以通过确定在移动设备上呈现图像时(或在捕获图像时)移动设备的位置在智能设备的位置(诸如同一网络)内并且已经向用户账户注册,来确定在图像数据中辨识的智能设备(诸如智能灯开关或智能恒温器)是否向用户注册。例如,系统可以使用移动设备的地理位置并通过虚拟助手管理系统访问注册文件,以确定是否允许移动设备访问特定智能设备。注册文件包括关于特定智能设备的数据,包括但不限于识别和控制信息。虚拟助手应用可以使用注册文件中的数据与特定智能设备进行通信并对其进行控制。

本文描述的用户界面控件可以通过移动设备的用户界面,例如通过在移动设备上执行的虚拟助手应用,生成和呈现。本系统可以使用增强现实(ar)模块等将用户界面控件覆盖在由移动设备的用户界面呈现的实时图像(例如,数字取景器)上或先前捕获的图像上。例如,用户可以在移动设备的相机的取景器中实时观看智能灯开关,并可以虚拟观看叠加在实时图像上的用户界面控件。

在操作中,虚拟助手应用接收图像数据和指定正在执行虚拟助手应用的移动设备的位置的位置数据。虚拟助手应用(或远程服务器)的对象辨识器组件可以分析图像数据并生成识别的对象数据。所识别的对象数据指定对象所占据的图像区域。在一些方面,对象辨识器组件可以确定对象是否是智能设备,并将该信息嵌入到所识别的对象数据中。虚拟助手应用(或远程服务器)的智能设备控件选择器从对象辨识器组件接收识别的对象数据,并确定图像数据是否描绘了指定对象,诸如智能设备,如果从识别的对象数据识别出智能设备,则智能设备控件选择器从移动设备接收位置数据。然后,智能设备控件选择器可以确定在呈现图像(或捕获图像的图像数据)时移动设备的位置在向用户账户注册的虚拟助手控制设备的位置的阈值距离(例如50米、100米或另一适当距离)内。在一些方面,系统可以确定智能设备是否与用户账户相关联,以及虚拟助手控制设备是否能够控制智能设备。

在一些方面,如果从识别的对象数据中识别出智能设备,则智能设备控件选择器从移动设备接收位置数据,然后处理注册文件以确定智能设备是否已注册到用户账户,例如,在网络上是否找不到语音助手控制设备。注册文件可以存储在用户设备上(如果已知的话),或者可以通过虚拟助手管理系统中的后端服务器(诸如智能设备注册引擎)进行访问。

在智能设备控件选择器确定移动设备的位置在向用户账户注册的虚拟助手控制设备的位置的阈值距离内之后,智能设备控件选择器识别(例如,选择)用于控制智能设备的一个或多个用户界面控件,并生成界面控件识别数据。界面控件识别数据包括指定可以控制所识别的智能设备的一个或多个控件的数据。例如,如果智能设备是灯开关,则控件可以包括打开图标、关闭图标和/或调光器。界面控件识别数据由界面生成器接收。对于由界面控件识别数据指定的属于感兴趣的智能设备的每个用户界面控件,界面生成器都会生成呈现数据,其在用户界面上呈现用户界面控件。

接收的图像数据可以来自实时处理的实时连续视频,即使相机移动,它也将继续在相机镜头视场内识别出感兴趣对象。在一些方面,接收的图像数据可以是单个帧截图(frameshot)或记录的视频。

这些功能和其他功能将在下面更详细地描述。

图1a是其中虚拟助手应用116识别智能设备并呈现用于控制智能设备的用户界面控件的示例环境100a的框图。图1b是虚拟助手应用116呈现用于所识别的智能设备的用户界面控件的示例处理的示例系统流程图。

可以将虚拟助手应用116安装在移动设备110上和/或由其执行。移动设备110是能够通过数据通信网络150发送和接收数据的电子设备。示例性移动设备110包括智能电话、平板计算设备、可穿戴计算设备(例如,智能手表)以及其他可以通过网络150发送和接收数据的设备。网络150可以包括局域网(lan)、广域网(wan)、互联网、移动网络或其组合。

虚拟助手应用116可以被实现为对特定平台或特定设备开发的本地应用。虚拟助手应用116可以为移动设备110的用户执行任务或服务。例如,虚拟助手应用116可以对用户的语音命令做出响应(例如,提供所请求的信息)、控制用户的智能设备、播放内容(例如,音乐或视频)等。为了使用户更容易和更有效地控制智能设备,虚拟助手应用116可以在移动设备110的显示器上呈现图形用户界面控件。

虚拟助手应用116可以呈现用于智能设备的用户界面控件,该智能设备是在表示移动设备110的相机111的视场中的场景的图像数据中被识别的。例如,虚拟助手应用116可以识别智能设备,并确定是否为识别的智能设备提供用户界面控件。虚拟助手应用116可以基于是否向用户账户注册了所识别的智能设备和/或移动设备110是否在向用户账户注册的虚拟助手控制设备的阈值距离之内,来确定是否为所识别的智能设备呈现用户界面控件。虚拟助手应用116还可以选择要用于识别的智能设备的用户界面控件(例如,用于音乐的音频控件、用于智能设备灯开关的拨动(toggle)控件等),并呈现具有所选控件的界面,例如,作为图像数据(例如,相机111的图像或取景器中描绘的对象)上的图形叠加。

虚拟助手应用116可以尝试从移动设备110的相机111接收的图像数据中检测智能设备,例如连续地而不接收识别智能设备的用户请求。例如,虚拟助手应用116可以(基于图像数据)检测和/或辨识移动设备110的相机11的取景器中的对象,并将用户将相机111指向智能设备的事实解释为请求控制识别的智能设备。

在一些实现方式中,虚拟助手应用116可以经由一个或多个输入来接收用于定位和选择智能设备控件的命令。例如,虚拟助手应用116可以从移动设备110的麦克风113接收语音请求。虚拟助手应用116可以包括语音辨识器120,该语音辨识器120可以接收来自麦克风113的音频输入并将音频转换为文本(如果音频包括说出的单词),并将文本提供给虚拟助手应用116。

在一些实现方式中,虚拟助手应用116可以通过用户与显示在移动设备110上的虚拟助手应用116的界面上的按钮交互(例如,触摸)接收识别智能设备的命令以发起本文所述的处理。在一些实现方式中,虚拟助手应用116还可以接收例如使用移动设备110的物理或触摸小键盘键入的文本请求。

虚拟助手应用116包括智能设备控件选择器130,其确定图像(例如,代表该图像的像素数据)中是否存在智能设备,并基于所识别的智能设备、其能力和/或智能设备当前操作的情境来选择用户界面控件。在某些方面,虚拟助手应用116可以在虚拟助手应用116处于活动状态时从对象辨识器125(本文进一步描述)接收所识别的对象数据126。例如,当启动虚拟助手应用116时,虚拟助手应用116可以开始从相机111获得取景器的像素数据。智能设备控件选择器130可以监视数据,直到智能设备控件选择器130具有足够的信息来选择用户界面控件为止。例如,智能设备控件选择器130可以监视图像流的所识别的对象数据126、和/或其他数据,诸如位置数据124,直到智能设备控件选择器130获得足够的数据以做出关于是否呈现其控制要选择的用户界面控件的决定为止。

在一些实现方式中,智能设备控件选择器130可以基于由对象辨识器125基于相机111的取景器的图像数据123生成的所识别的对象数据126来选择用户界面控件。图像数据123可以包括表示相机111的取景器的当前场景的像素数据。在启动虚拟助手应用116之后,虚拟助手应用116可以从相机111获得图像数据123。例如,虚拟助手应用116可以获得像素数据集的流。每个像素数据集可以代表特定时间点的取景器的像素。每个像素数据集中的像素数据可以包括指定取景器的每个像素的视觉特性(例如颜色、强度、亮度等)数据。

智能设备控件选择器130可以基于是否在取景器中(例如,在一个或多个像素数据集中)检测到智能设备(或智能设备的物理控件),并且如果是,智能设备的身份或智能设备的类别,来选择用户界面控件。例如,虚拟助手应用116可以包括对象辨识器125,其尝试在像素数据(或图像)中检测和辨识(例如,识别)智能设备(或其物理控件)。对象辨识器125可以使用边缘检测和/或其他对象辨识技术来检测各种对象,诸如智能扬声器、电器、电视、物理控件(例如,灯开关、门把手、恒温器、烤箱/炉灶控件等)和/或其他类型的对象。对于某些智能设备,智能设备和用于智能设备的物理控件可以是相同的(例如,智能恒温器、智能咖啡壶等)。如下所述,对象辨识器125可以向智能设备控件选择器130提供所识别的对象数据126,所识别的对象数据126标识在图像数据123中识别的智能设备(如果有的话)。

在一些实现方式中,对象辨识器125包括粗分类器,其确定像素数据集是否包括对象的一个或多个特定类(例如,类别)中的对象。例如,粗分类器可以在识别或不识别实际对象的情况下检测到像素数据集包括特定类(例如,诸如照明控件的智能设备的类)的对象。在一些方面,对象辨识器125可以从图像数据123确定智能设备是否在图像数据中,并且生成特定于所识别的智能设备的数据。

粗分类器可以基于图像是否包括指示对象的类的一个或多个特征来检测对象的类的存在。粗分类器可以包括执行低计算分析的轻量级模型来检测其对象类内对象的存在。例如,粗分类器可以对每个对象类检测图像中描绘的视觉特征的有限集合,以确定图像是否描绘了落入对象类内的对象。在特定示例中,粗分类器可以检测图像是否描绘了被分类为以下一个或多个类的对象:智能扬声器、电器、电视、物理控件(例如,灯开关、门把手、恒温器、烤箱/炉灶控件)。

在一些实现方式中,粗分类器使用训练的机器学习模型(例如,卷积神经网络)基于图像的视觉特征对图像进行分类。例如,可以使用带有标签的图像来训练机器学习模型,这些图像使用其各自的类别进行标记。可以训练机器学习模型以将图像分类为对象类的特定集合中的零个或更多个。机器学习模型可以接收与图像的视觉特征有关的数据作为输入,并且输出到对象类的特定集合中的零个或更多个对象类的分类。

粗分类器可以输出指定在图像中是否已经检测到对象类的数据。粗分类器还可以输出指示在图像中已经检测到对象类的存在的置信度的置信度值和/或指示在图像中描绘实际对象(例如,特定类型的智能扬声器)的置信度的置信度值。

如图1b所示,用户正将移动设备110的相机111指向对象115。对象115大概是用户希望虚拟助手应用116生成并呈现控件的智能设备。使用虚拟助手应用116时,用户正握住移动设备110,使得对象115在相机110的视场中,并且对象115在虚拟助手应用116的用户界面136中呈现给用户。例如,虚拟助手应用116的用户界面136可以包括相机111的取景器。在特定示例中,当虚拟助手应用116处于图像模式时,虚拟助手应用116可以呈现取景器,对于该图像模式,虚拟助手应用116可以呈现用于在图像中检测到的智能设备的用户界面控件和/或提供与图像中检测的对象有关的内容。

对象辨识器125接收表示相机111的视场内(并呈现在用户界面136的取景器中)的场景的图像数据123。位置数据还可以由智能设备控件选择器130例如从移动设备110的全球定位系统(gps)接收器接收。对象辨识器125可以向智能设备控件选择器126提供指定是否在图像数据123中检测到对象的所识别的对象数据126,并且如果辨识出对象(诸如特定智能设备),则提供标识所辨识出的对象的数据。当使用粗分类器时,对象辨识器125可以向智能设备控件选择器130提供数据,该数据指定是否已经检测到对象类中的至少一个内的对象的存在,并且如果是,则提供检测的类。如上所述,虚拟助手应用116可以接收像素数据集的流。在该示例中,对流中每个像素数据集(或至少一部分),对象辨识器125可以评估每个像素数据集,并向智能设备控件选择器130提供该数据(该数据指定是否检测到对象以及任何辨识出的对象的标识)。

在一些实现方式中,对象辨识器125使用训练的机器学习模型(例如,卷积神经网络)辨识从移动设备110接收的图像数据中的对象。例如,可以使用标记的图像来训练机器学习模型,这些标记图像用它们相应的智能设备和/或智能设备的物理控件标记。可以训练机器学习模型以辨识和输出识别由图像数据表示的图像中描绘的智能设备和/或智能设备的物理控件的数据。机器学习模型可以接收与图像的视觉特征有关的数据作为输入,并且输出识别图像中描绘的智能设备或图像中描绘其物理控件的智能设备的数据。

如果识别出智能设备,则智能设备控件选择器130可以基于所识别的实际智能设备,在像素数据集中检测到的智能设备的类,智能设备的能力和/或智能设备操作的情境来选择用于所识别的智能设备的用户界面控件。例如,如果在取景器中检测到智能设备(基于取景器的像素数据集),则与取景器中没有可检测的智能设备的情况相比,用户更有可能根据取景器中的内容来请求用户界面控件。因此,如果在像素数据中检测到智能设备或智能设备类,则智能设备控件选择器130可以选择用户界面控件。

每个智能设备或智能设备类可以包括一个或多个对应的用户界面控件。每个智能设备或智能设备类的用户界面控件可以存储在用户界面控件索引140中。例如,智能灯可以具有使用户能够打开和关闭灯的对应用户界面控件。可调光灯与非可调光灯可以具有不同的用户界面控件。例如,用于可调光灯的用户界面可以包括用户可以调节以调节光的强度的旋转调光器或滑动条,如果用户将相机111指向拨动灯开关并且对象辨识器125检测到相机111指向拨动灯开关,则智能设备控件选择器130可以确定灯是可以被打开和关闭但不能调光的灯。因此,智能设备控件选择器130可以选择使用户能够打开和关闭灯但是不调节灯的强度的用户界面控件。类似地,如果对象辨识器125识别出调光器,则智能设备控件选择器130可以选择使用户能够调节光的强度的用户界面控件。

一些智能设备(诸如虚拟助手控制设备)可以执行多个不同的任务或执行多个应用。智能设备控件选择器130可以基于智能设备当前正在操作的情境为这些设备选择用户界面控件。例如,如果当对象辨识器125在相机111的取景器中识别出智能扬声器时智能扬声器正在播放音乐,则智能设备控件选择器130可以选择用于控制音乐的用户界面控件,例如用于调整音量、播放不同歌曲,快进等的控件。如果智能扬声器当前正在控制家用电器(例如烤箱),则智能设备控件选择器130可以选择使用户能够控制应用(例如,改变烤箱的温度)的用户界面控件。

在一些实现方式中,智能扬声器可以具有用于操作智能扬声器的对应的用户界面。该用户界面可以对应于由配备有图形显示器的智能扬声器呈现的用户界面。例如,某些智能扬声器可以包括可选的显示器。在该示例中,如果用户拥有不具有显示器的智能扬声器,则当用户将相机111指向智能扬声器时,虚拟助手应用116可以呈现与将由显示器呈现的用户界面相对应的用户界面。

虚拟助手控制设备(例如,智能扬声器)的用户界面可以包括用于向用户账户注册的每个智能设备的用户界面控件。例如,虚拟助手应用可以响应于在表示相机111的取景器的图像数据123中识别虚拟助手控制设备并确定移动设备在虚拟辅助控制设备的阈值距离内,选择并呈现用于控制虚拟助手控制设备的用户界面控件(如下所述)。这些用户界面控件可以使用户从向用户账户注册的智能设备中进行选择。例如,如果用户已经将虚拟助手控制设备配置为控制智能烤箱和智能灯,则用户界面控件可以使用户响应于选择而选择这些设备中的任何一个,虚拟助手应用116可以呈现用于控制所选设备的用户界面控件。在另一个示例中,虚拟助手应用116可以为所有(或至少多个智能设备)呈现主面板,使用户能够从主面板控制每个智能设备。

在一些实现方式中,当在图像数据123中识别出虚拟助手控制设备时,虚拟助手应用116可以使用户能够从注册的智能设备中进行选择并配置要呈现的智能设备的用户界面控件。例如,虚拟助手应用116可以呈现注册智能设备的列表,并使用户能够从列表中进行选择。作为响应,每当在图像数据123中识别出虚拟助手控制设备时,虚拟助手应用116就可以为所选智能设备呈现用户界面控件。

虚拟助手应用116还可以响应于辨识出图像数据123中的其他对象能够使用户呈现内容或用户界面控件。例如,虚拟助手应用116可以使用户能够配置仪表板,该仪表板每当在图像数据123中检测到特定壁或其他对象时,便在虚拟助手应用116的用户界面内以ar呈现内容(例如,从一个或多个网页或其他资源获得的天气信息、体育信息、财务信息等)。在另一示例中,每当在图像数据123中检测到特定壁或其他对象时,用户就可以将虚拟助手应用116配置为在虚拟助手应用116的用户界面内以ar方式呈现实时网页或应用。用户可以通过将相机111指向壁或特定对象,选择用于将内容分配给特定对象的图标或其他用户界面控件,然后选择该内容(例如,通过提供一个或多个url,选择书签等),来进行这些配置。

在一些实现方式中,用户可以使用语音命令结合智能设备的图像来注册将由虚拟助手应用116控制的智能设备。例如,用户可以将相机111指向智能设备并说出语音命令(例如,这是我的立体声)。作为响应,虚拟助手应用116可以将智能设备的图像与智能设备的名称(例如,立体声)相关联。如果用户将相机111指向智能设备,则虚拟助手应用116可以识别智能设备的用户界面控件,并使用户能够使用这些控件来控制智能设备。

在一些实现方式中,虚拟助手应用116响应于语音命令对特定位置创建智能设备的实例。例如,虚拟助手应用116还可以响应于检测到语音命令来识别智能设备的位置,并且将位置与智能设备的图像和智能设备的名称相关联。如果当智能设备位于不同的位置(例如,大于与智能设备的位置的阈值距离)时用户将相机111指向智能设备(或其副本),则虚拟助手应用116可以确定不呈现智能设备的用户界面控件。如果在移动设备110靠近智能设备时(例如,在智能设备的阈值距离之内)用户将相机111指向智能设备,则虚拟助手应用116可以呈现智能设备的用户界面控件。

智能设备控件选择器130还可以基于例如流中的像素数据集的序列来选择用户界面控件。例如,如果在像素数据集中辨识的对象在短时间段(例如2-5秒)内发生变化,则用户可能正在四处移动移动设备110,而没有尝试获得对特定智能设备的控制。然而,如果在像素数据集的序列中辨识到同一智能设备,则用户更有可能请求对特定智能设备的控制。

智能设备控件选择器130还可以基于移动设备110例如相对于虚拟助手控制设备的位置来确定是否呈现用户界面控件和/或选择用户界面控件。例如,如果当移动设备110正在呈现图像时,移动设备110位于用户的虚拟助手控制设备附近(例如,在阈值距离内),则用户可能正在请求对于取景器中的智能设备的控制,并且可以选择特定用户界面控件。如果移动设备距离用户的虚拟助手控制设备较远(例如,远于阈值距离),则取景器查看与用户相关联的智能设备的可能性较小。由于虚拟助手应用116可能无法控制其他用户的虚拟助手控制设备,这也防止了虚拟助手应用116在偶然捕获另一用户的虚拟助手控制设备的情况下呈现用户界面控件。在这种情况下,用户界面控件的呈现可能会使用户感到沮丧。

在另一个示例中,用户可以访问先前捕获的图像,使得在此示例中用户可以例如从远离虚拟助手控制设备的位置控制智能设备,智能设备控件选择器130可以在捕获图像时访问移动设备110的位置。该位置可以与图像一起存储,例如作为元数据。如果在捕获图像时移动设备110的位置在虚拟助手控制设备的位置的阈值距离内,则智能设备控件选择器130可以确定移动设备110可以控制在图像所辨识的智能设备并呈现用于控制智能设备的用户界面控件。

为了确定移动设备110是否在虚拟助手控制设备的阈值距离之内,虚拟助手应用116可以从移动设备的gps接收器获得移动设备110的位置数据,并且可以从虚拟助手控制设备、虚拟助手管理系统180或虚拟助手控制设备的初始配置中获得虚拟助手控制设备的位置数据。在示例中,虚拟助手控制设备可以向虚拟助手管理系统160周期性地发送指定其当前位置的数据。虚拟助手应用116可以将移动设备110的位置与虚拟助手控制设备的位置进行比较,以确定移动设备110是否在虚拟助手控制设备的阈值距离内。

智能设备控件选择器130还可以基于与辨识出的智能设备匹配的智能设备是否已经向用户账户(例如,用户的虚拟助手账户)注册,来确定是否呈现智能设备的用户界面控件。这样,虚拟助手应用116不会为尚未设置虚拟助手应用116来控制的智能设备提供用户界面控件。例如,用户可以使用虚拟助手应用116注册由虚拟助手控制设备控制的智能设备,诸如用户家中的智能扬声器。虚拟助手应用116可以在本地例如在控制索引140或另一索引中存储关于每个注册智能设备的数据。该数据可以包括设备的名称、设备的类、设备的能力、例如如何通过虚拟助手控制设备与该设备之间的无线连接来控制该设备、和/或其他适当的数据。在一些实现方式中,用于设备的数据还可以包括设备的图像和/或用于控制设备的物理控件的图像。虚拟助手应用116可以将该数据提供给管理用户的虚拟助手账户的虚拟助手管理系统160。

智能设备控件选择器130还可以基于移动设备110的位置(例如,移动设备110的地理位置)选择用户界面控件。例如,移动设备110可以包括确定移动设备110的地理位置的gps接收器,并向虚拟助手应用116提供指定移动设备110的位置的位置数据124。智能设备控件选择器130可以使用地理位置确定移动设备位于用户的虚拟助手控制设备所在的已知位置(诸如他们的家),还是用户拥有注册的虚拟助手控制设备的其他区域。当移动设备110位于这些位置之一(或与之关联的阈值距离内),诸如与虚拟助手控制设备相关联的家庭网络时,如果智能设备控件选择器130均与同一网络相关联,则智能设备控件选择器130可以向虚拟助手控制设备注册所识别的智能设备。

智能设备控件选择器130可以基于用户将用户界面控件用于识别的智能设备或类似智能设备的历史来选择用于控制识别的智能设备的用户界面控件。智能设备控件选择器130还可以基于用户指定的用户界面控件的偏好来选择识别的智能设备的用户界面控件。例如,用户可以选择用户在特定情况下偏爱的用户界面控件。在特定示例中,虚拟助手应用116可以为相同对象或相同对象类生成各种用户界面控件。用户可以在各种用户界面控件之间进行选择,虚拟助手应用116可以为用户存储该选择。

根据一些方面,虚拟助手应用116可以通过网络150将图像数据123和/或位置数据124发送到虚拟助手管理系统160,以执行本文讨论的一个或多个处理。例如,利用图像数据123和位置数据124,虚拟助手管理系统160可以确定接收的图像数据是否描绘了智能设备,确定在捕获图像数据123时移动设备110的位置在向用户账户注册的虚拟助手控制设备(例如,智能扬声器)的位置的阈值距离内,并且如果移动设备110在虚拟辅助控制设备的阈值距离内,则选择一个或多个用户界面控件用于控制智能设备。虚拟助手应用116可以将一个或多个像素数据集发送到虚拟助手管理系统160。像素数据集可以包括用于选择智能设备控件的取景器的像素数据和/或在选择图像智能设备控件之后捕获的像素数据集。例如,虚拟助手应用116可以首先发送用于选择智能设备控件的像素数据集。如果取景器随后指向不同智能设备,则虚拟助手应用116可以向虚拟助手管理系统160发送不同智能设备的像素数据。

虚拟助手管理系统160包括一个或多个前端服务器161和一个或多个后端服务器162。前端服务器161可以从移动设备110接收数据并将数据提供给后端服务器162。前端服务器161还可以响应于接收到该数据而将内容发送到移动设备110。

后端服务器162包括智能设备控件选择引擎165,其基于从移动设备110接收的数据来选择用户界面控件并将其提供给移动设备110。如本文所使用的,术语引擎是指执行任务集的数据处理装置。智能设备控件选择引擎165可以从智能设备控件存储单元166(例如,一个或多个硬盘驱动器、闪存等)选择用户界面控件,该存储单元166存储了多个智能设备和/或智能设备类的用户界面控件。智能设备控件选择引擎165可以执行与虚拟助手应用116的对象辨识器125和智能设备控件选择器130相同的操作或相似的操作。例如,智能设备控件选择引擎165可以包括对象识别模块,其可以确定图像数据123是否包括智能设备(或智能设备的物理控件),并且如果是,则选择用于所辨识的智能设备的用户界面控件。

例如,如果从移动设备110接收的图像数据123表示虚拟助手控制设备(例如,智能扬声器)的图像,并且从移动设备110接收的音频表示音乐,则智能设备控件选择引擎165可以识别由语音助手设备表示的智能设备控件,并选择与特定语音助手设备相关的音频的智能设备控件(例如,可调节音量触发、前进、后退、标题、喜欢/不喜欢的按钮等,如图2所示)。如果从移动设备110接收的图像数据123表示灯或灯控制器(例如物理灯开关)的图像,则智能设备控件选择引擎165可以选择用于控制灯的用户界面控件(例如,虚拟可调调光器触发、on/off按钮等),如图3所示。

在一些实施例中,智能设备控件选择引擎165正在为其生成用户界面控件的特定智能设备被确定为注册到作为虚拟助手控制设备的注册用户的移动设备110的用户的账户中,并且用户界面控件与虚拟助手控制设备能够控制的语音激活控件相关联。

后端服务器162还包括管理用户账户的账户管理引擎167。账户管理引擎167可以为具有账户的每个用户存储注册数据168,该注册数据168指定用户的虚拟助手控制设备和已经被注册以由虚拟助手控制设备控制的智能设备。账户管理引擎167可以从每个用户的虚拟助手应用116接收数据。每个智能设备的注册数据可以包括设备名称、设备类、设备能力、如何控制设备(例如,通过虚拟助手控制设备与该设备之间的无线连接)、该设备的图像和/或用于控制该设备的物理控件的图像。

后端服务器162可以将由智能设备控件选择引擎165选择的用户界面控件提供给前端服务器161。前端服务器161进而可以将智能设备控件提供给从其接收了用于选择智能设备控件的数据的移动设备110。

在一些实施例中,后端服务器162可以包括智能设备注册引擎,其响应于从移动设备110接收的数据来选择注册文件并将其提供给移动设备110。智能设备注册引擎可以为多个智能设备选择注册文件。例如,如果智能设备控件选择引擎165可以识别在像素数据中表示的智能设备,则智能设备注册引擎可以通过移动设备110的用户账户来确定注册文件是否与该智能设备相关联。例如,智能设备的原始设备制造商(oem)可以要求用户通过其家庭网络注册设备。在一些实施例中,oem可以通过用户的虚拟助手控制设备来关联和注册智能设备,或者可以通过oem管理的本机应用或web浏览器访问智能设备。在某些方面,虚拟助手管理系统160可以存储oem允许通过用户家庭网络访问的注册文件。

在一些实施例中,虚拟助手管理系统160可以通过确定特定智能设备是否被注册到移动设备110的用户账户,来允许特定移动设备110通过虚拟助手应用116控制智能设备,而无需关联虚拟助手控制设备。在一些在实施中,可能需要在注册文件中向用户授予权限以访问该特定智能设备。例如,用户可以通过oem设置处理来设置智能设备灯控制器,而无需通过虚拟助手控制设备进行连接。虚拟助手应用116可以访问智能设备注册引擎并检索与识别的智能设备相关联的注册文件,并且基于移动设备110的位置数据124和在注册文件中与用户相关联的账户信息,控制智能设备灯控制器。在一些实施例中,虚拟助手应用可以将注册文件存储在移动设备上。

虚拟助手应用116包括用户界面生成器135,其生成并呈现图形用户界面。用户界面可以包括用于控制已经在相机11的取景器中表示的图像数据123中辨识的智能设备的用户界面控件。如上所述,虚拟助手应用116的用户界面可以呈现相机111的取景器。如图1b所示,智能设备控件选择器130在选择用于控制智能设备的一个或多个用户界面控件之后,生成界面控件识别数据131并将其发送给用户界面生成器135。界面控件识别数据131包括用于界面生成器135可以用来呈现所选择的用户界面控件的所选择的用户界面控件的数据(例如,不同类型的控件、用作控件的不同图标、不同布局等)。用户界面生成器135至少部分地基于界面控件识别数据131,生成、更新并在移动设备110的显示器上呈现用户界面136。例如,用户界面生成器135可以在(例如,在相机111的取景器中的)实时图像上呈现所选择的用户界面控件。

用户界面生成器135可以生成定义用户界面的呈现数据138,并将呈现数据138输出到移动设备110的显示器145。呈现数据138可以包括使得显示器在用户界面135中的特定位置呈现用户界面控件的数据。例如,呈现数据138可以指定要在用户界面136中呈现用户界面控件的位置(例如,使用像素坐标)。用户界面控件的位置可以呈现在辨识出的智能设备附近,例如在取景器中辨识出的智能设备下方或附近。在另一个示例中,用户界面控件可以在与取景器下方或附近呈现。

然后,在一些实现方式中,用户可以与用户界面控件进行交互以控制智能设备,虚拟助手应用116检测到用户交互,并将指定用户交互的数据提供给用户的虚拟助手控制设备。例如,移动设备110可以通过无线网络将数据发送到虚拟助手控制设备。然后,虚拟助手控制设备可以通过无线网络控制设备。在另一个示例中,虚拟助手控制设备可以将控制数据发送到虚拟助手管理系统160,虚拟助手管理系统160进而基于该控制数据来控制智能设备,例如,通过在网络150上将控制数据发送到智能设备。

在一些实现方式中,虚拟助手应用116例如通过网络150将控制数据发送到虚拟助手管理系统160,而不将数据发送到虚拟助手控制设备。虚拟助手管理系统160然后可以将控制数据发送到智能设备,如上所述。

在一些实现方式中,虚拟助手应用116可以允许多个用户彼此通信,并且为了通信目的而在所识别的对象上留下消息或其他内容介质。例如,相同家庭网络(或相同虚拟助手账户)的用户可以注册识别的对象(诸如冰箱),并放置虚拟便笺(note)(例如,使用增强现实技术),以供另一个用户或多个用户使用虚拟助手应用116在取景器中访问和查看。在一些实施例中,用户可以指定特定用户有权访问虚拟便笺,或者用户可以允许家庭网络上的任何人查看虚拟便笺。

图2描绘了呈现用于基于接收的图像数据控制所识别的智能设备的一个或多个用户界面控件的移动设备的示例屏幕截图210和220的序列。第一屏幕截图210描绘了移动设备的示例用户界面212。在该示例中,用户正在通过用户界面212中呈现的相机的取景器查看语音助手设备215(例如,智能扬声器),语音助手设备215正在播放音乐。用户界面212可以由虚拟助手应用(例如图1的虚拟助手应用116)生成和呈现。

第二屏幕截图220呈现了虚拟助手应用116的用户界面222。在此示例中,用户界面222呈现了覆盖在用户界面222的当前视图上的用户界面控件224。具体地,用户界面控件224在识别的对象周围呈现窗口,在此示例中,该对象是语音助手设备215。虚拟助手应用116可以从表示取景器的图像数据中识别语音助手设备215。如上所述,虚拟助手应用116还可以基于移动设备的位置是否在用户的语音助手设备的位置的阈值距离内来确定是否呈现语音助手设备的用户界面控件。

在用户界面控件224内,存在许多用于控制音乐音频的示例智能设备控件。具体地,示出了音量切换条226以控制语音助手设备215的音量水平。此外,音乐控制按钮228示出有可以呈现给用户的几个不同选项,包括但不限于暂停/播放按钮、喜欢和不喜欢、上一首歌曲按钮、下一首歌曲按钮和用于移动到当前播放的音频中的特定点的占位切换条。音乐控制按钮228的选项可以取决于语音助手设备215正在使用的特定音乐应用。在一些方面,可用按钮可以是所有音乐播放应用通用的。在一些方面,按钮可以被定制为特定音乐播放应用,并且可以由虚拟助手管理系统160来更新。

虚拟助手应用116可以基于语音助手设备215的情境选择音乐控件。例如,虚拟助手应用116可以与语音助手设备215通信,并请求当前操作模式、由语音助手设备215执行的当前任务或者语音助手设备215当前正在使用的应用(例如音乐应用)。语音助手设备215可以向虚拟助手应用116提供指定当前操作模式或正在执行的当前任务的数据,并且进而,虚拟助手应用116可以选择使用户能够控制当前操作模式或当前任务的用户界面控件。在该示例中,语音助手设备215正在播放音乐,并且虚拟助手应用116响应于接收到指定语音助手设备215正在播放音乐的数据选择了音乐控件。在一些实现方式中,虚拟助手应用116可以基于检测到的音频来确定语音助手设备215正在播放音乐。

如果用户与音乐控制按钮228交互(例如,选择),则虚拟助手应用116可以与语音助手设备215通信以控制音乐播放应用。根据一些方面,如果用户将取景器移离语音助手设备215,则虚拟助手应用116将从用户界面222中移除用户界面控件224,因为它在图像数据中再也检测不到智能设备,特别是,语音助手设备215。在一些方面,虚拟助手应用116可以在用户界面222中冻结语音助手设备215的图像。例如,虚拟助手应用116可以向用户呈现锁定屏幕或锁定图像按钮,当与之交互时,使虚拟助手应用116冻结该图像。在该示例中,用户可以移动移动设备110而不必将相机直接指向智能设备,但是可以继续使用用户界面控件224来控制智能设备。在一些实现方式中,虚拟助手应用116可以响应于用户与控件之一的交互而冻结图像,因为这表明用户希望使用所述控件来控制语音助手设备215。

在一些方面,用户界面控件224可以呈现内容或动画,其指示虚拟助手应用116正在尝试识别内容。例如,用户界面222可以呈现循环动画的跳动动画或信号通知虚拟助手应用正在识别的智能设备控件的另一动画以呈现给用户。

图3描绘了呈现用于基于接收的图像数据控制所识别的智能设备的一个或多个用户界面控件的移动设备的示例屏幕截图310、320和330的另一序列。第一屏幕截图310描绘了移动设备的示例界面312。在该示例中,用户正在通过取景器查看智能设备的物理控件315。在该示例中,智能设备是智能灯,而物理控件315是灯开关。

第二屏幕截图320和第三屏幕截图330分别为虚拟助手应用116呈现了用户界面322和332。在这些示例中,用户界面322和332呈现覆盖在用户界面322的当前视图上的用户界面控件324。特别是,用户界面控件324在智能灯的物理控件315下方呈现窗口。虚拟助手应用116从表示用于移动设备的相机的取景器的图像数据中识别物理控件315。如图所示,在用户界面控件324内,存在三个示例性智能设备控件,用于控制智能设备315的照明。如图所示,屏幕截图320显示了具有照明控制的智能设备315,该智能设备315最初被用户先前选择为“on”(或代表智能灯的当前状态)。在一些示例中,用户可以选择“on”切换按钮325以打开灯控制。如果移动设备的用户选择使用虚拟助手应用116来关闭灯,则如屏幕截图330所示,用户选择“off”切换按钮334。此外,示出了调光切换条326以控制智能灯的调光水平。

在这些示例中,智能设备315已经向用户账户注册,并且可以与虚拟助手控制设备(诸如图2中的语音助手设备215)通信并由其控制。虚拟助手应用116将从用户的移动设备的相机接收图像数据,并确定接收的图像数据描绘了智能设备。接下来,虚拟助手应用116可以确定在捕获图像数据时移动设备的位置在虚拟助手控制设备(诸如图2中的语音助手设备215)的位置的阈值距离之内。此外,虚拟助手应用116可以识别用于控制智能设备的一个或多个用户界面控件,并且呈现用于控制智能设备的一个或多个用户界面控件(即,界面控件324)。

根据一些方面,可用按钮可以是所有照明控制智能设备通用的。在一些方面,按钮可以被定制为特定照明控制智能设备,并且可以由虚拟助手管理系统160来更新。

根据一些方面,如果其他智能设备控件可用(例如,诸如第二灯控制器的第二智能设备在图像数据中),则用户界面322可以包括允许用户选择其他智能设备的用户界面控件。

根据一些方面,图像数据中的智能设备是诸如炉子或微波炉的家用电器的定时器或时钟。在该示例中,虚拟助手应用116可以呈现用于设置定时器的用户界面控件,或者提供简单控件以快速改变时钟时间或设置智能设备的警报。

根据一些方面,图像数据中的智能设备是呈现在显示设备上或投影在背景上的数字仪表板应用。例如,智能设备可以在客厅墙壁上使用投影仪,其呈现虚拟仪表板(例如,天气、新闻、体育、金融等)。移动设备将获取仪表板的图像数据,并将该数据提供给虚拟助手应用116,虚拟助手应用116随后可提供界面控件以更新或更改仪表板。

图4是使用虚拟助手应用识别智能设备并呈现用于控制所识别的智能设备的一个或多个用户界面控件的示例处理400的流程图。处理400的操作可以例如由一个或多个数据处理装置(诸如图1a和图1b的移动设备110)执行。处理400的操作也可以实现为存储在非暂时性计算机可读介质上的指令。指令的执行使一个或多个数据处理装置执行处理400的操作。

接收来自用户的移动设备的相机的图像数据(402)。如本文所述,虚拟助手应用116的对象辨识器125可以接收移动设备的相机的取景器的像素数据(例如,图1b所示的图像数据123)。图像数据可以是单个图像或连续图像,诸如流实时视频。

在从移动设备的相机接收到图像数据之后,确定接收的图像数据是否描绘智能设备或智能设备的物理控件(404)。智能设备可以是虚拟助手控制设备(例如,语音助手设备)或另一种类型的智能设备。例如,智能设备可以是能够由虚拟助手控制设备控制的智能设备,例如,通过向用户的虚拟助手账户注册智能设备,或者以其他方式配置虚拟助手控制设备控制智能设备。如上所述,移动设备上的虚拟助手应用可以确定是否在图像数据中描绘了智能设备或用于智能设备的物理控件。在一些方面,可以通过远程系统(例如虚拟助手管理系统)来分析图像数据,并且将结果发送回移动设备。

根据一些方面,如果确定在图像数据中描绘了智能设备,则确定在移动设备上呈现图像时该移动设备是否能够控制向用户账户注册的虚拟助手控制设备。例如,确定可以基于呈现图像时移动设备是否在虚拟辅助控制设备的阈值距离内。如上所述,移动设备可以将位置数据发送到虚拟助手应用,该虚拟助手应用然后可以确定虚拟助手控制设备(例如,语音助手设备)是否紧邻移动设备或在移动设备的位置的预定距离内。例如,虚拟助手应用可以将移动设备的位置与虚拟助手控制设备的位置进行比较。虚拟助手控制设备的位置可以是指定位置(例如,在虚拟助手控制设备最初注册时确定)。在另一个示例中,虚拟助手控制设备可以将(例如,使用安装在虚拟助手控制设备上或在虚拟助手控制设备中的gps接收器)识别其当前位置的数据发送到移动设备或虚拟助手管理系统(虚拟助手应用可以从其获得位置数据)。位置数据和智能设备是否在用户虚拟助手控制设备的特定距离之内的确定可以通过远程系统(例如,虚拟助手管理系统)进行并将确定结果发送回移动设备。

根据一些方面,确定接收的图像描绘了向用户账户注册的智能设备包括:确定图像数据描绘了用户的虚拟助手控制设备的图像。根据一些方面,虚拟助手控制设备包括虚拟助手智能扬声器设备,其从用户接收语音命令,并使用虚拟助手智能扬声器设备的扬声器向用户提供信息。

根据一些方面,确定接收的图像描绘了向用户账户注册的智能设备包括:确定图像描绘了由用户的虚拟助手控制设备控制的智能设备。例如,虚拟助手应用可以与语音助手设备进行通信,以确定其控制了哪些智能设备,诸如确定语音助手设备已经与哪些智能设备配对。

根据一些方面,确定接收的图像描绘了向用户账户注册的智能设备包括:获得指定已经向用户的虚拟助手账户注册的智能设备(例如,用户为其配置了用于控制的虚拟助手控制设备的智能设备)的数据。如果在图像中识别的智能设备(或物理控件)与注册的智能设备(或注册的智能设备的物理控件)匹配,则虚拟助手应用可以确定用户正将移动设备的相机指向注册的智能设备。

响应于确定图像描绘了智能设备或用于智能设备的物理控件中的至少一个,识别用于控制智能设备的一个或多个用户界面控件(408)。如上所述,在智能设备控件选择器确定捕获图像数据时移动设备的位置在向用户账户注册的虚拟助手控制设备的位置的距离之内,智能设备控件选择器识别用于控制智能设备的一个或多个用户界面控件,并生成界面控件识别数据。界面控件识别数据包括指定可以控制所识别的智能设备的特定控件的数据。用户界面控件可以由远程系统(例如虚拟助手管理系统)选择,并发送到移动设备。

根据一些方面,识别用于控制智能设备的一个或多个用户界面控件包括确定虚拟助手控制设备当前正在执行的任务或服务,以及选择用于控制特定任务或服务的一个或多个用户界面控件。例如,如果虚拟助手控制设备是智能扬声器并且智能扬声器正在控制电器,则可以选择用于控制电器的控件。

生成用于控制智能设备的一个或多个用户界面控件,并将其呈现给移动设备的用户(408)。如上所述,界面控件识别数据由界面生成器接收,对于由界面控件识别数据指定的属于感兴趣的智能设备的每个用户界面控件,界面生成器生成呈现数据,该呈现数据呈现叠加在移动设备上的用户界面上的用户界面控件。在一些方面中,对于连续视频(例如,现场直播),仅当在图像数据中识别出智能设备时,才将用户界面控件叠加在用户界面上。用户界面控件可以由远程系统(例如,虚拟助手管理系统)选择,并且作为呈现数据发送到移动设备以进行显示。

在移动设备的显示器上检测与一个或多个用户界面控件中的至少一个的用户交互(410)。例如,虚拟助手应用可以检测该交互并基于该交互确定要执行的对应动作。

基于检测的与一个或多个用户界面控件中的至少一个的用户交互,控制智能设备(412)。如上所述,如果用户与界面控件交互,则用户能够基于用户交互来控制特定智能设备。例如,如果音乐应用在智能扬声器上运行,则用户可以通过与在移动设备的显示器上呈现给用户的界面控件进行交互来控制应用(例如,音量、跳到下一首曲目等)。

移动设备可以例如通过在无线网络上向智能设备发送控制数据来直接控制智能设备。如果智能设备由虚拟助手控制设备控制,则移动设备可以将控制数据发送到虚拟助手控制设备,进而虚拟助手控制设备可以控制智能设备。

在一些方面,呈现用于控制智能设备的一个或多个用户界面控件包括:将一个或多个用户界面控件以增强现实方式叠加在移动设备的相机的取景器的视场上。例如,如图2所示,音乐控制按钮228是音量切换条226,是在移动设备的相机的取景器上以增强现实显示的用户界面控件,用户可以选择该控件来控制语音助手设备215的音乐播放应用。

在一些方面,对于连续视频(例如,现场直播),仅当在图像数据中识别出智能设备时,才将用户界面控件叠加在用户界面上。在一些方面,可以捕获智能设备的静止帧截图并将其用于控制智能设备,因此将不必要求移动设备连续获取智能设备的图像数据以对其进行控制。例如,用户可能希望拍摄语音助手设备的截图,然后从语音助手设备移开并运行虚拟助手应用以生成用于控制语音助手设备的用户界面控件。

图5是可用于执行上述操作的示例计算机系统500的框图。系统500包括处理器510、存储器520、存储设备530和输入/输出设备540。组件510、520、530和540中的每一个都可以例如使用系统总线550互连。处理器510能够处理用于在系统500内执行的指令。在一种实现方式中,处理器510是单线程处理器。在另一实现方式中,处理器510是多线程处理器。处理器510能够处理存储在存储器520或存储设备530中的指令。

存储器520将信息存储在系统500内。在一种实现方式中,存储器520是计算机可读介质。在一种实现方式中,存储器520是易失性存储单元。在另一实现方式中,存储器520是非易失性存储单元。

存储设备530能够为系统500提供大容量存储。在一种实现方式中,存储设备530在各种不同的实现中是计算机可读介质,存储设备530可以包括例如硬盘设备、光盘设备、由多个计算设备(例如,云存储设备)在网络上共享的存储设备或其他一些大容量存储设备。

输入/输出设备540为系统500提供输入/输出操作。在一种实现方式中,输入/输出设备540可以包括网络接口设备(例如,以太网卡)、串行通信设备(例如,rs-232端口)和/或无线接口设备(例如,802.11卡)中的一个或多个。在另一实现方式中,输入/输出设备可以包括驱动器设备,被配置为接收输入数据并将输出数据发送到其他输入/输出设备,例如,键盘、打印机和显示设备580。然而,其他的实现方式也可以使用,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。

尽管在图5中描述了示例处理系统,但是本主题描述的实现和功能操作可以在其他类型的数字电子电路中,或在计算机软件、固件或硬件中(包括本说明书中公开的结构及其等同结构,或它们中的一个或多个的组合)实现。

本说明书中描述的主题和操作的实现方式可以在数字电子电路中,或在计算机软件或固件中,或在计算机硬件中(包括本说明书中公开的结构及其等同结构,或它们中的一个或多个的组合)实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即,在有形的非暂时性程序载体上编码的计算机程序指令的一个或多个模块,以由数据处理装置执行或控制数据处理的操作。可选地或另外,程序指令可以被编码在人工产生的传播信号上,例如,机器产生的电、光或电磁信号,其被产生以对信息进行编码以传输到合适的接收器装置以由数据处理装置执行。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或者它们中的一个或多个的组合。

术语“数据处理装置”涵盖用于处理数据的各种装置、设备和机器,例如包括可编程处理器、计算机或多个处理器或计算机。装置可以包括专用逻辑电路,例如fpga(现场可编程门阵列)或asic(专用集成电路)。除了硬件之外,装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或他们的一个或多个的组合的代码。

计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言(包括编译或解释语言、声明性或过程语言)编写,并且可以以任何形式进行部署,包括作为独立程序或作为模块、组件、子例程、对象或其他适合在计算环境中使用的单元。计算机程序可以但不必对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的一部分中(例如,存储在标记语言文档中的一个或多个脚本)、专用于所讨论程序的单个文件中或多个协调文件(例如,存储一个或多个模块、子程序或部分代码的文件)。可以将计算机程序部署为在一个计算机上执行,或者在位于一个站点上或分布在多个站点上并通过通信网络互连的多个计算机上执行。

本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能的一个或多个可编程计算机来执行。处理和逻辑流程也可以由专用逻辑电路执行,并且装置也可以实现为专用逻辑电路,例如fpga(现场可编程门阵列)、asic(专用集成电路)或gpgpu(通用图形处理单元)。

例如,适合于执行计算机程序的计算机可以基于通用或专用微处理器或两者,或者基于任何其他种类的中央处理单元。通常,中央处理单元将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于运行或执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括一个或多个用于存储数据的大容量存储设备,例如,磁、磁光盘或光盘,或者可操作地耦合为从一个或多个大容量存储设备接收数据或将数据传输到一个或多个大容量存储设备,或两者。然而,计算机不必具有此类设备。此外,计算机可以被嵌入到另一个设备中,例如,移动电话、个人数字助理(pda)、移动音频或视频播放器、游戏控制台、全球定位系统(gps)接收器或便携式存储设备,例如通用串行总线(usb)闪存驱动器,仅举几例。

适用于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cdrom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充或并入专用逻辑电路中。

为了提供与用户的交互,本说明书中描述的主题的实现方式可以在具有用于将信息显示给用户的显示设备(例如,crt(阴极射线管)或lcd(液晶显示器))以及键盘和定点设备(例如鼠标或轨迹球)(用户可以通过它们向计算机提供输入)的计算机上实现。其他种类的设备也可以用于提供与用户的交互,提供给用户的反馈可以是任何形式的感觉反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。另外,计算机可以通过向用户使用的设备发送文档或从用户使用的设备接收文档来与用户进行交互;例如,通过响应从网页浏览器接收的请求,将网页发送到用户客户端设备上的web浏览器。

本说明书中描述的主题的实施例可以实现在包括后端组件(例如,作为数据服务器)或包括中间件组件(例如,应用服务器)或包括前端组件(例如,具有图形用户界面或web浏览器的客户端计算机,用户可以通过图形用户界面或web浏览器与本说明书中描述的主题的实现进行交互)或者包括一个或多个这种后端组件,中间件组件或前端组件的任意组合的计算系统中。系统的组件可以通过数字数据通信的任何形式或介质(例如,通信网络)互连。通信网络的示例包括局域网(“lan”)和广域网(“wan”),例如,互联网。

计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器之间的关系通过在各自计算机上运行并彼此具有客户端-服务器关系的计算机程序产生。

尽管本说明书包含许多特定实现细节,但是这些细节不应被解释为对任何发明或可要求保护的范围的限制,而应解释为对特定发明的特定实施例而言特定的特征的描述。在单独的实施例的情境中在本说明书中描述的特定特征也可以在单个实施例中组合实现。相反,在单个实施例的情境中描述的各种特征也可以分别在多个实施例中或以任何合适的子组合来实现。此外,尽管上面可以将特征描述为以特定组合起作用并且甚至最初如此宣称,但是在某些情况下,可以从组合中删除所要求保护的组合中的一个或多个特征,并且可以将所要求保护的组合用于子组合或子组合的变型。

类似地,尽管在附图中以特定顺序描绘了操作,但是这不应理解为要求以所示的特定顺序或以连续的顺序执行这样的操作,或者执行所有示出的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的分离不应被理解为在所有实施例中都需要这种分离,并且应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或打包成多个软件产品。

已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理不一定需要所示的特定顺序或连续顺序来实现期望的结果。在特定实现方式中,多任务和并行处理可能是有利的。

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