利用计算设备的意图检测的制作方法

文档序号:22427654发布日期:2020-10-02 10:03阅读:131来源:国知局
利用计算设备的意图检测的制作方法

实施例涉及基于由计算设备的相机捕获的对象(例如,手、书、待售物品等)的存在来检测计算设备的用户的打算。



背景技术:

计算中的指向设备(pointingdevice)被用于控制或激活用户接口中的某些元素。在计算机上,这可以通过使用单独的控制器来实现,该控制器例如是可以在平坦的表面上移动的鼠标,并且鼠标的移动被转化为计算机屏幕上的指针/光标。另外,鼠标可能具有用以点击和滚动的按钮,这些按钮可以启用各种类型的任务,例如,打开应用、选择应用、向下滚动等。但是,随着智能手机、平板电脑等的发展,触摸屏被广泛使用并且手指例如可以代替物理控制器。例如轻击、滚动、轻扫、捏和长按的用户动作已成为与智能手机、平板电脑等交互的常见模式。



技术实现要素:

在一般方面中,设备、系统、非暂时性计算机可读介质(具有存储在其上的可以在计算机系统上执行的计算机可执行程序代码)和/或方法可以通过包括以下的方法执行处理:捕获图像;确定用户正在操作计算设备的环境;基于图像中的对象来检测手势;使用机器学习模型,基于所述手势和所述环境来确定用户的意图;以及至少基于所确定的意图来执行任务。

该系统可以包括存储指令集合的存储器;以及处理器,该处理器被配置为执行所述指令集合以使所述系统捕获图像;确定用户正在操作计算设备的环境;基于所述图像中的对象来检测手势;使用机器学习模型,基于所述手势和所述环境来确定用户的意图;以及至少基于所确定的意图来执行任务。

实现可以包括以下特征中的一个或多个。例如,确定所述用户的意图可以进一步包括转化所述用户与现实世界的交互,以及使用该交互和该手势来确定所述用户的意图。机器学习模型可以是基于计算机视觉模型。可以使用第一机器学习模型和第二机器学习模型来确定用户的意图。该方法可以进一步包括使用第二机器学习模型的对与手势相关联的手的连续跟踪。可以使用计算设备的单个非深度感测相机捕获图像。该任务可以是基于计算机助理的使用。该任务可以包括视觉和可听输出中的至少一个。可以使用包括至少一个手势的多个图像来训练机器学习模型,使用手势的多个地面真值(ground-truth)图像来训练机器学习模型,使用损失函数来确认手势与手势的地面真值图像之间的匹配,并且基于图像中的对象的对手势的检测包括将该对象与和该手势的地面真值图像匹配的该手势进行匹配。可以使用多个图像来训练机器学习模型,所述多个图像每一个都包括至少一个对象,并且至少一个对象可以具有相关联的地面真值框。机器学习模型可以生成多个边界框,机器学习模型可以基于边界框内的对象的至少部分来确定多个特征,机器学习模型可以基于多个特征来识别对象,并且可以基于所识别的对象来确定用户的意图。

附图说明

从下文给出的详细描述和附图,将更全面地理解示例性实施例,其中,相似的元件由相似的附图标记表示,其仅以示例的方式给出,因此不限制示例性实施例,并且其中:

图1示出了根据至少一个示例性实施方式的用于检测用户的意图并且基于该意图来执行任务的方法的流程图。

图2示出了根据至少一个示例性实施方式的用于检测手势的触发器。

图3示出了根据至少一个示例性实施方式的基于歧义消除来确定意图。

图4示出了根据至少一个示例性实施方式的指向姿势。

图5示出了根据至少一个示例性实施方式的信号流的框图。

图6示出了方法的流程图。

图7示出了姿势处理系统的框图。

图8a示出了不具有稀疏约束的卷积神经网络中的层。

图8b示出了具有稀疏约束的卷积神经网络中的层。

图9示出了根据示例性实施例的模型的框图。

图10示出了根据示例性实施例的用于机器学习过程的信号流的框图。

图11a和图11b示出根据至少一个示例性实施例的头戴式显示设备。

图12示出了根据至少一个示例性实施例的可穿戴计算设备。

图13a、13b、13c、14a和14b示出了根据示例性实施例的阅读助理任务。

图15示出根据至少一个示例实施例的计算机设备和移动计算机设备的示例。

应该注意的是,这些附图旨在示出在某些示例性实施例中使用的方法、结构和/或材料的一般特性,并且补充下文提供的书面描述。然而,这些附图不是按比例扩缩的,并且可能不能精确地反映任何指定实施例的精确的结构或性能特性,并且不应当被解释为限定或限制示例性实施例所涵盖的值或属性的范围。例如,为了清楚起见,可以缩小或放大分子、层、区域和/或结构元件的相对厚度和定位。在各个附图中使用相似或相同的附图标记旨在指示相似或相同的元件或特征的存在。

具体实施方式

一些计算设备缺少屏幕(例如,显示屏),并且可能依赖于通过使用利用手指的自然姿势(或姿势模式)的现实世界的交互。不包括与典型输入设备(例如,鼠标、键盘等)接合(interface)的控制器的计算设备可以包括被配置为经由非典型的(例如,作为用户意图输入设备)计算设备组件(例如相机)来检测用户意图的用户接口。在一些实施方式中,用户接口可以基于用于感知计算设备的自然姿势来检测用户的意图,并且基于所检测的用户意图来触发任务(通过计算设备)。

在增强现实(ar)应用中,待识别的对象可以限于ar应用生成的对象。例如,如果ar应用使用了200个对象,则仅需要200个检测器以识别对象。相比之下,示例性实施方式使用训练的ml模型来识别任何可能的现实世界对象(例如,手姿态、产品、名片等),以确定用户的意图。因此,示例性检测器可以被配置为检测和/或识别任何现实世界的对象和/或现实世界的对象的变化(例如,姿态)。

在一些实施方式中,可以使用计算机视觉(例如,计算机视觉模型)和/或机器学习(ml)模型来从(例如如由设备的相机捕获的)用户的手势确定用户的意图(例如,用户意图)。这样的手势的示例可以包括指向、点击、滚动、画圈、捏缩放、轻击、轻扫等。在一些实施方式中,当例如在单人观看设备(例如,可穿戴智能设备、头戴式显示器等)上使用时,可以支持通过指向姿势的自然的用户意图,例如,通过在整个段落上画圈来捕获文本文档中的该整个段落。

用户接口可以将用户与物理或数字世界的交互转化(例如,变换、转换等)成对用户意图的数字语义理解。用户的意图可以被用来触发适用于物理或数字世界的任务。在一些实施方式中,用户接口可以支持用于检测手势(例如,用户持有名片)、基于用户的意图/或口头命令(例如,将名片持有在手中(连同“savethisbusinesscard(保存该名片)”的口头命令)来确定用户的意图(例如,保存名片的意图),并且基于所确定的意图来触发任务(例如,以保存名片)的过程或机制。在一些示例性实施方式中,手势可以被用来查询(例如,指令、询问等)数字助理关于词的定义、产品的成分或购买用户手中正持有的商品。

在一些实施方式中,上述用户接口和/或机制可以被集成到计算设备的操作系统和/或系统架构中,并且可以被其他应用(例如,app)开发者用作光标或姿势输入介质,而无需任何物理输入硬件(例如,鼠标、键盘等)。此外,用户接口和/或机制可以被扩展为经由对用户可能利用指向和用户姿势实现的事情——例如高亮文本——的语义理解来交互和操纵vr/ar世界(例如,使用不作为功能被包括在ar/vr应用中的交互)。在一些实施方式中,用户接口可以从第一人称观看透视角检测(或帮助检测)指向位置中的手以及指针的位置(例如,食指的可见部分的尖端)。在示例性实施方式中,用户接口可以是建立在例如卷积神经网络(cnn)架构上的深度神经网络。

由于被存储在与装置相关联的存储器(例如,非暂时性计算机可读存储介质)中并且由与该装置相关联的至少一个处理器执行的软件代码的执行,可以执行关于图1所述的方法。但是,可以设想替代实施例,诸如体现为专用处理器的系统。专用处理器可以是图形处理单元(gpu)。换句话说,可以在单人观看设备(例如,可穿戴智能设备、头戴式显示器等)的gpu中实现用户接口。

gpu可以是图形卡(graphicscard)的组件。图形卡还可以包括视频存储器、随机存取存储器数模转换器(ramdac)和驱动软件。视频存储器可以是帧缓冲器,其存储表示图像、视频帧、图像对象或帧场景的数字数据。可以将ramdac配置为读取视频存储器的内容、将该内容转换为模拟rgb信号,并且将模拟信号发送到显示器或监视器。

驱动软件可以是存储在上述存储器中的软件代码。可以将软件代码配置为实现本文描述的方法。尽管下文描述的方法被描述为由处理器和/或专用处理器执行,但是这些方法不必由同一处理器执行。换句话说,至少一个处理器和/或至少一个专用处理器可以执行下文关于图1描述的方法。

图1示出了根据至少一个示例性实施方式,用于检测用户的意图并且基于该意图触发任务的执行的方法的流程图。如图1所示,在步骤s110中,检测手势。例如,包括用户接口的计算设备可以使用计算设备的相机来检测用户的手势。相机可以是非深度感测相机(例如,二维(2d)相机),并且(与可能需要多个相机输入的其他手势检测技术相比)用户接口可以仅使用一个相机来检测手势。在示例性实施方式中,用户接口可以被配置为基于使用不同图像集(例如几千个图像)训练的机器学习(ml)模型来从第一人称透视角检测指向位置中的用户的手以及指针(例如,用户的食指的可见部分的尖端)的位置。

在步骤s120中,至少基于检测到的手势来确定用户的意图。例如,手势可以是用户(例如,使用食指)指向对象。在一些实施方式中,可以将用户接口配置为(例如,使用ml模型)确定用户的意图。在一些实施方式中,例如,可以使用计算设备的相机输入来开发ml模型(例如,计算机视觉模型)。尽管计算机视觉模型可能需要深度发送相机或多相机输入,但是计算设备可以使用单个非深度(例如2d)感测相机输入来确定用户的意图。这可以允许在具有单个相机或单个非深度感测相机的计算设备上实现ml模型。

在步骤s130中,任务至少基于所确定的意图来被触发。例如,用户接口可以基于所确定的意图来触发任务。任务可以是计算设备的功能。示例性任务可以包括拍摄照片或视频、增大/减小音量、跳过歌曲等。尽管本公开描述了将食指用作触发器,但是其他手指也可以用作触发器。将食指用作触发器的使用是出于说明的目的。如上所述,可以通过不同的图像集来训练ml模型。

例如,如果手势是指向手指,并且手指正指向对象。可以将用户的意图确定为获取有关该对象的一些信息。该接口可以触发计算设备来识别对象并且基于所识别的对象来执行搜索。例如,计算设备可以在一个或多个商店中搜索对象的价格。

图2示出了根据至少一个示例性实施方式的用于检测手势的触发器。在图2中,示出了具有手指210(例如,食指)的用户的手的边界框205。在示例性实施方式中,对象正被检测可以使得边界框205被生成。边界框205的生成可以触发识别边界框205中的对象。在一些实施方式中,边界框205可以是响应于(例如,由ml模型)接收到图像而生成的多个边界框之一。用户接口可以导致图像的捕获,所述图像的捕获可以触发边界框205的生成,并且使用所捕获的图像和ml模型来确定手在边界框205内。

在将对象识别为手之后,用户接口可以使ml模型(和/或触发另一ml模型)识别手的姿态和/或运动。例如,ml模型可以被配置为搜索指尖。确定手包括处于指向姿态中的手指210可以触发用户接口的另一任务(例如,作为又一ml模型和/或计算机代码)。该任务可以包括确定手指210正在指向什么。

图3示出了根据至少一个示例性实施方式的基于歧义消除来确定意图。如图3的图像300所示,手指210正指向长颈鹿305。指向可识别对象(例如长颈鹿305)的手指210可以被用来消除歧义(去除不确定性)并且使用ml模型来确定用户的意图。在示例性实施方式中,ml模型可以确定用户可能指向长颈鹿305。确定用户可能指向长颈鹿305可以触发用户接口(例如,基于ml模型)以使得计算设备执行任务(例如,使用计算机助理搜索有关长颈鹿的信息)。

图4示出了根据至少一个示例性实施方式的指向姿势。例如,ml模型可以如上所述,确定手包括指向手指。在该示例中,ml模型可以确定用户可能指向(例如,书中的)文本,而不是指向对象(例如,长颈鹿305)。可以基于所正指向的文本以及手的姿态和/或运动来确定用户的意图。例如,意图可以被确定为文本或文本的一部分(例如,单词、短语、句子等)的翻译、大声阅读、找到定义等。指向姿势的一些示例(如图4所示)可以包括:a)通过直接指向单词下方而不覆盖它来指向单词(405),b)通过从左向右滑动手指来指向短语(410),c)通过从左向右滑动手指并且两次轻击以指示选择结束来指向句子(415),d)通过在段落周围画圈来指向该段落(420)等。

在一些实施方式中,可以在多个阶段(例如,两个或更多个阶段)中检测手势。换句话说,使用第一ml模型和第二ml模型来确定用户的意图。然后,在以后的阶段中,可能不使用第一ml模型。例如,在第一阶段,可以将用户接口配置为(例如,使用ml模型)生成边界框(例如,边界框205),以将对象识别(或帮助识别)为用户的手。在第二阶段中,可以将用户接口配置为(例如,使用ml模型)确定手的姿态。用于姿势识别的这种多阶段方法可以允许连续跟踪用户的手(例如,姿态和运动)而无需再次运行阶段中的至少一个(例如,识别手的第一阶段),并且可以使得检测手势和确定意图(以及任务的后续执行)更加有效(例如,就速度和资源利用而言(例如,处理器、存储器等))。

图5示出了根据至少一个示例性实施方式的信号流的框图。如图5所示,信号流500以检测对象505块开始。检测对象505块可以被配置为监视和检测对象。例如,在发起用户接口之后,可以建立与计算设备的相机的通信。当捕获图像并将其传送到用户接口时,用户接口可以基于所传送的图像来确定对象(或新对象)已经进入相机的视野内。在识别对象510块中,用户接口可以使用训练过的ml模型来识别对象。在示例性实施方式中,对象可以是手(例如,指示用户呈现手势的意图)。但是,对象可以是例如待售产品、现实世界中的物品(例如,房屋、树木、路牌、家具、书等)。

在识别环境515块中,用户接口可以使用用户指示、应用指示、(使用相机的)周围环境的扫描等来识别计算设备正在其中操作的环境。例如,用户接口可以由计算机应用实例化。该应用可以是购物应用、教育应用、翻译应用等。因此,识别环境515块可以将环境识别为商店(或其他购物地点)、学校(或教室)、阅读地点等。

另外,识别环境515块可以使用训练过的ml模型来识别环境。为了识别环境,可以使用可以存在于各种环境中的对象的图像来训练计算机视觉模型。图像可以包括用于教室环境的桌子、椅子、黑板等。图像可以包括用于图书馆环境的桌子、椅子、书架、收款台等。图像可以包括用于室外环境的树木、植被、草、动物等。可以将由计算设备的相机捕获的图像输入到模型。可以将包括最少数量对象的结果分类为可能的环境。例如,如果图像包括几种类型的树木、草和动物,则可以将环境分类为室外环境。另外,ml模型可以使用计算机设备可用的工具来识别特定的室外(或其他分类的环境)。例如,ml模型可以使用位置信息(例如,全球定位系统)和分类的环境来更精确地识别环境(例如,识别为国家公园、州立公园、高尔夫球场等)。

在选择ml模型组520块中,可以基于对象和环境选择至少一个ml模型。在示例性实施方式中,用户接口可以被配置为检测并响应于手势。因此,至少一个ml模型可以包括使用手势训练的ml模型。至少一个ml模型可以包括用于识别手势的ml模型以及对于环境唯一并且可以将手势映射到用户意图的模型和/或算法。至少一个ml模型可以被配置为在单个操作中识别手势并将手势映射到针对环境的用户意图。例如,至少一个ml模型可以包括被配置为识别手势并将手势映射到用户意图的检测层或块。

此外,可以有多种手势技术。例如,手势可以是单手、双手、手和语音等。因此,信号流500可以包括示为姿势ml模型组1525、姿势ml模型组2530、…以及姿势ml模型组n535的多个姿势ml模型。虚线指示一次可能选择一个姿势ml模型。然而,其他配置在本公开的范围内。其他训练过的ml模型也可以被包括在如由对象ml模型组540所示但不限于此的示例性实施方式中。

用户接口也可以使用训练过的ml模型的组合。例如,应用开发人员可以为连锁杂货店开发应用。因此,应用开发人员可以依赖于所有应用开发人员可用的姿势ml模型和基于杂货店中可用的产品而训练的定制ml模型(例如,作为对象ml模型组540)。用户可以打开可以实例化用户接口的开发的应用。用户可以伸手去拿产品,从而使手被检测和识别(检测对象505块和识别对象510块)。开发的应用可以将环境标识为杂货店(识别环境515块),并且选择姿势ml模型组和对象ml模型组。例如,可以选择双手ml模型组和定制ml模型组。

信号流500可以包括在图5中示为流575块的至少一个重复的流操作和用虚线示出的流580块,以指示这些块不一定在结构上是一起的或在一个位置中。流575块包括识别姿势545块、触发任务550块和姿势的监视555块。识别姿势545块可以被配置为从计算设备的相机接收图像。图像可以被用作对学习的ml模型的输入,以识别姿势。识别姿势可以包括分配用于识别唯一的训练姿势的变量。

触发任务550块可以包括指令(例如,计算机代码),该指令可以使计算设备基于所识别的姿势来执行任务。在示例性实施方式中,每个任务可以由唯一变量识别。唯一变量可以与识别姿势的变量相同。替代地或附加地,唯一变量可以被映射到所识别的姿势,或者所识别的姿势可以被映射到唯一变量。任务可以是可以由计算设备执行的任何任务。例如,任务可以是搜索、翻译、阅读(例如,文本到话音)、计算机助理任务、存储数据(例如,图像)、映射数据(例如,将名片映射到联系人)等。

继续上述杂货店应用示例,可以识别购物者的姿势并执行任务。例如,伸手并且抓住物品可能会导致有关产品的价格、营养或其他信息的显示或可听指示。此外,利用另一个手的轻扫姿势可以使该物品放置在购物车中。这些任务仅是示例,其他任务也在本公开的范围内。

姿势的监视555块可以监视相机捕获和传送的图像。姿势的监视555块可以使用训练过的ml模型,该训练过的ml模型可以测试图像并确定图像是否可能是姿势。如果图像可能是姿势,则可以将图像传送到识别姿势545块。如果识别姿势545块将图像识别为姿势,则处理继续到触发任务550块。否则,处理返回到姿势的监视555块。在一些实施方式中,信号流可以从流575和/或流580开始。也就是说,可以首先识别姿势(流575)(例如,能够经由应用来预先配置手和ml模型组)然后对象(流560),或者与之相反。

流580块包括识别对象560块、触发任务565块和对象的监视570块。识别对象560块可以使用训练过的ml模型来识别对象。触发任务550块可以基于对象的识别,使得执行某个任务。继续上述杂货店应用示例,可以将对象识别为产品,而任务可以是查找有关该产品的信息。此外,可以将两个或更多个ml模型组配置为一起操作。例如,触发任务550块可以触发识别对象560块的开始。

对象的监视570块可以监视由相机捕获并传送的图像。对象的监视570块可以使用训练过的ml模型,该训练过的ml模型可以测试图像并确定图像是否可能是对象(例如,与先前识别的对象不同的对象)。如果图像可能是对象,则可以将图像传送到识别对象560块。如果识别对象560块将图像识别为对象,则处理继续到触发任务565块。否则,处理返回到对象的监视570块。

由于被存储在与装置相关联的存储器(例如,非暂时性计算机可读存储介质)中并且由与该装置相关联的至少一个处理器执行的软件代码的执行,可以执行关于图6描述的方法。但是,可以设想替代实施例,诸如体现为专用处理器的系统。专用处理器可以是图形处理单元(gpu)。换句话说,可以在单人观看设备(例如,可穿戴智能设备、头戴式显示器等)的gpu中实现用户接口。

gpu可以是图形卡的组件。图形卡还可以包括视频存储器、随机存取存储器数模转换器(ramdac)和驱动软件。视频存储器可以是帧缓冲器,其存储表示图像、视频帧、图像对象或帧场景的数字数据。可以将ramdac配置为读取视频存储器的内容、将该内容转换为模拟rgb信号,并且将模拟信号发送到显示器或监视器。

驱动软件可以是存储在上述存储器中的软件代码。可以将软件代码配置为实现本文描述的方法。尽管下文描述的方法被描述为由处理器和/或专用处理器执行,但是这些方法不必由同一处理器执行。换句话说,至少一个处理器和/或至少一个专用处理器可以执行下文关于图6描述的方法。

图6示出了根据至少一个示例性实施方式的方法的流程图。如图6所示,在步骤s605中,检测用户的手运动。例如,可以将手运动检测为手进入计算设备的相机的视野中。手运动也可以是在相机视野内并且改变位置(例如,改变姿态、从一侧向另一侧移动等)的手。该运动可以指示用户正在展现意图的过程中。

在步骤s610中,检测手的姿态。例如,该姿态可以被检测为由相机捕获的图像。该姿态可以是手指指向、手抓握、捏、手指的画圈等。

在步骤s615中,识别环境。可以基于环境(例如,用例、场景、工具、应用等)来不同地解释手的姿态。为了(例如,基于手势)确定用户的打算。应该确定计算设备正在其中操作的环境。例如,环境可以基于计算设备的位置、与用户接口交互的应用等。该环境可以是商店、教室、阅读场所、公园、室外空间(例如,森林、湖泊等)等。可以基于用户输入(例如,语音命令)或计算机应用设置来识别环境。例如,用户可以在课堂上大声说出他/她正在读书,或打开购物应用。替代地或另外,可以使用ml模型来执行识别,该ml模型使用计算设备的现实世界环境的图像。

例如,为了识别环境,可以使用可以存在于在各种环境中的对象的图像来训练计算机视觉模型。图像可以包括用于教室环境的桌子、椅子、黑板等。图像可以包括用于图书馆环境的桌子、椅子、书架、收款台等。图像可以包括用于室外环境的树木、植被、草、动物等。可以将由计算设备的相机捕获的图像输入到模型。可以将包括最少数量对象的结果分类为可能的环境。例如,如果图像包括几种类型的树木、草和动物,则可以将环境分类为室外环境。另外,ml模型可以使用计算机设备可用的工具来识别特定的室外(或其他分类的环境)。例如,ml模型可以使用位置信息(例如,全球定位系统)和分类的环境来更精确地识别环境(例如,识别为国家公园、州立公园、高尔夫球场等)。

在步骤s620中,使用训练过的ml模型,基于手的姿态来识别姿势。可以使用可由计算机设备的用户做出的多个手姿态来训练ml模型。可以基于多个图像(例如,作为姿势的手姿态的图像)和地面真值图像来训练ml模型。例如,可以使用计算设备的相机,将姿态捕获为图像。图像可以被输入到训练过的ml模型。训练过的ml模型可以基于图像来识别姿势。训练过的ml模型可以输出姿势识别(例如,作为唯一的id号)。

在步骤s625中,基于姿势和环境来识别用户的意图。ml模型可以包括用于识别手势的ml模型(步骤s620)以及对于环境唯一并且可以将手势映射到用户意图的ml模型和/或算法。至少一个ml模型可以被配置为在单个操作中识别手势并将手势映射到针对环境的用户意图。例如,至少一个ml模型可以包括被配置为识别手势并将手势映射到用户意图的检测层或块。

在示例性实施方式中,计算机设备可以在现实世界空间中操作。与执行(例如,可以识别并响应于有限数量的姿势的)ar应用的计算机设备不同,示例性实施方式可以被配置为基于(例如,受训练过的姿势约束的)无限数量的姿势和无限数量的环境(例如,现实世界空间)来确定用户的意图。

例如,姿势可以基于环境来指示不同的用户意图。相应地,不同的环境可以具有被配置为确定用户的意图的不同的映射、查找表、算法和/或ml模型。因此,可以基于环境来选择映射、查找表、算法和/或ml模型。在示例性实施方式中,确定或识别用户意图可以包括将所识别的姿势映射到用户意图。确定或识别用户意图可以包括使用映射基于所识别的姿势来识别用户意图,该映射基于环境。确定或识别用户意图可以包括基于所识别的姿势(例如,将所识别的姿势用作键(key))在查找表中查找用户意图。确定或识别用户意图可以包括使用ml模型,该ml模型包括被配置为识别手势并将手势映射到用户意图的检测层或块。

例如,在(例如,书的)阅读环境中的指向姿势可以指示与购物环境中的指向姿势不同的意图。因此,对于阅读环境和购物环境,被配置为将手势映射到用户意图的ml模型和/或映射或查找表可以不同。换句话说,每个ml模型都可以具有被用来通过将姿势映射到可能的意图以确定用户的意图的映射(例如查找表)。替代地,应用可以被配置为使用ml模型,该ml模型被配置为识别应用开发人员可用的手势。该应用可以进一步包括被配置成将手势映射到用户意图的映射或查找表。

在步骤s630中,任务基于用户意图来被执行。例如,任务可以是计算机实现的任务。可以将用户的意图映射到响应于识别用户的意图而执行的任务。任务可以是输出(例如,可听输出)单词的定义、翻译单词、存储信息(例如名片)、搜索信息(例如价格、百科信息等)、打开/关闭电器等。

图7示出了根据至少一个示例性实施例的姿势处理系统的框图。如图7所示,姿势处理系统700包括至少一个处理器705、至少一个存储器710、控制器720、用户接口725、ml模型模块730和任务模块735。至少一个处理器705、至少一个存储器710、控制器720、用户接口725、ml模型模块730和任务模块735经由总线715通信地耦合。

至少一个处理器705可以被用来执行存储在至少一个存储器710上的指令,从而由此实现本文描述的各种特征和功能,或者附加的或替代的特征和功能。至少一个处理器705可以是通用处理器。至少一个处理器705可以是图形处理单元(gpu)。至少一个处理器705和至少一个存储器710可以被用于各种其他目的。特别地,至少一个存储器710可以表示可以被用来实现本文描述的任一模块的各种类型的存储器以及相关的硬件和软件的示例。

至少一个存储器710可以被配置为存储与姿势处理系统700相关联的数据和/或信息。例如,至少一个存储器710可以被配置为存储与实现捕获和/或编辑图像的用户接口相关联的代码。例如,至少一个存储器710可以被配置为存储与识别姿势、识别和实现ml模块、识别和实现计算任务等相关联的代码。至少一个存储器710可以是具有代码的非暂时性计算机可读介质,该代码在由处理器705执行时,使处理器705实现本文描述的技术中的一个或多个。至少一个存储器710可以是共享资源。例如,姿势处理系统700可以是较大系统(例如,服务器、个人计算机、移动设备、头戴式显示器、智能眼镜、免提计算机设备等)的元件。因此,至少一个存储器710可以被配置为存储与较大系统内的其他元件(例如,图像/视频渲染、web浏览、计算机助理和/或有线/无线通信)相关联的数据和/或信息。

控制器720可以被配置为生成各种控制信号,并且将控制信号传送到姿势处理系统700中的各个块。控制器720可以被配置为生成控制信号以实现本文所述的技术。控制器720可以被配置为控制任务模块735以执行根据示例性实施例的基于计算机的过程的软件代码。例如,控制器720可以生成与参数相对应的控制信号,以实现搜索、控制应用、存储数据、执行ml模型、训练ml模型等。

用户接口725可以被配置为与计算设备的相机通信。从相机接收图像和/或多个图像,并且使用训练过的ml模型来处理图像。在处理图像之后,可以将用户接口配置为识别并触发计算机实现的任务或过程的执行。

ml模型模块730可以被配置为存储、训练和执行至少一个ml模型。ml模型可以是基于卷积神经网络。可以为多个用户和/或单个用户训练ml模型。例如,可以训练ml模型并将其存储在网络设备上。在初始化过程中,可以将ml模型从网络设备下载到本地设备。可以在使用之前和/或当本地设备使用ml模型时进一步训练ml模型。

任务模块735可以被配置为存储和执行被配置为使得计算机设备执行任务的至少一个计算机程序(例如,计算机代码)。该任务可以使计算机设备实现搜索、控制应用、控制计算机助理、解释和存储数据、翻译文本、将文本转换为话音等。

图8a示出了不具有稀疏约束的卷积神经网络中的层。图8b示出了具有稀疏约束的卷积神经网络中的层。参考图8a和8b,将描述用在至少一个示例性实施方式中的神经网络的各种配置。在图8a中示出了示例性分层神经网络。分层神经网络包括三个层810、820、830。每个层810、820、830可以由多个神经元805形成。在该实施方式中,尚未应用稀疏约束。因此,每个层810、820、830中的所有神经元805被网络连接(network)到任何相邻层810、820、830中的所有神经元805。

图8a中所示的示例性神经网络由于小数量的神经元805和层,所以计算上并不复杂。然而,图8a中所示的神经网络的布置可能由于连接(例如,神经元/层之间的连接)的密度而无法扩大到更大大小的网络。换句话说,随着网络大小扩缩且以非线性方式扩缩,计算复杂度可能会太大。因此,如果需要扩大神经网络以在具有大数量维度的输入上工作,则对于将被网络连接到一个或多个相邻层810、820、830中的所有神经元805的每一层810、820、830中的所有神经元805而言,计算可能太复杂。

初始稀疏条件可以被用来降低神经网络的计算复杂度。例如,如果神经网络充当优化过程,则该神经网络方法可以通过限制神经元和/或层之间的连接数量来处理高维度数据。在图8b中示出了具有稀疏约束的神经网络的示例。图8b中所示的神经网络被布置成使得每个神经元805仅连接到相邻层840、850、860中的小数量的神经元805。这可以形成未完全连接并且可以扩缩以对更高维度数据起作用的神经网络。例如,具有稀疏约束的神经网络可以被用作用于模型的优化过程和/或生成用在基于用户发布回复而对回复进行评级/降级中的模型。与完全网络连接的神经网络相比,连接数量越少,则允许神经元之间的连接数量可以以基本上线性的方式扩缩。

在一些实施方式中,可以使用完全连接的或不完全连接的但以与参考图8b所描述的配置不同的特定配置的神经网络。此外,在一些实施方式中,可以使用未完全连接并且具有比完全连接的神经网络更少的复杂度的卷积神经网络。卷积神经网络还可以利用池化或最大池化来减少流过神经网络的数据的维度(从而减少复杂度)。可以使用降低卷积神经网络的计算复杂度的其他方法。

图9示出了根据示例性实施例的模型的框图。模型900可以是卷积神经网络(cnn),包括多个卷积层915、920、925、935、940、945、950、955、960和加法层930。多个卷积层915、920、925、935、940、945、950、955、960分别可以是至少两种类型的卷积层之一。如图9所示,卷积层915和卷积层925可以是第一卷积类型。卷积层920、935、940、945、950、955和960可以是第二卷积类型。图像(未示出)可以被输入到cnn。归一化层905可以将输入图像转换成可以被用作对cnn的输入的图像910。模型900进一步包括检测层975和抑制层980。模型900可以基于计算机视觉模型。

归一化层905可以被配置为归一化输入图像。归一化可以包括将图像转换为mxm像素。在示例性实施方式中,归一化层905可以将输入图像归一化为300x300像素。另外,归一化层905可以生成与图像910相关联的深度。在示例性实施方式中,图像910可以具有多个通道、深度或特征图。例如,rgb图像可以具有三个通道:红色(r)通道、绿色(g)通道和蓝色(b)通道。换句话说,对于mxm(例如300x300)像素中的每一个,有三(3)个通道。特征图可以具有与图像相同的结构。然而,代替像素,特征图具有基于至少一个特征(例如,颜色、频域、边缘检测器等)的值。

卷积层或卷积可以被配置为从图像提取特征。特征可以基于颜色、频域、边缘检测器等。卷积可以具有滤波器(有时称为核)和步长。例如,滤波器可以是步长为1的1x1滤波器(或用于变换到n个输出通道的1x1xn,有时将1x1滤波器称为逐点卷积),其结果是基于在mxm网格的位置处的每个通道的细胞的特征的组合(例如,加、减、乘等)来生成的细胞的输出。换句话说,具有一个以上深度或通道的特征图被组合成具有单个深度或通道的特征图。滤波器可以是步长为1的3x3滤波器,其结果是mxm网格或特征图的每个通道的利用更少细胞的输出。输出可以具有相同的深度或通道数量(例如3x3xn滤波器,其中,n=深度或通道数量,有时也称为逐深度滤波器)或减小的深度或通道数量(例如3x3xk滤波器,其中,k<深度或通道数量)。每个通道、深度或特征图都可以具有关联的滤波器。可以将每个关联的滤波器配置为强调通道的不同方面。换句话说,可以基于滤波器(有时称为逐深度可分离滤波器),从每个通道中提取不同的特征。其他滤波器在本公开的范围内。

另一类型的卷积可以是两个或更多个卷积的组合。例如,卷积可以是逐深度和逐点可分离卷积。这可以包括例如两个步骤的卷积。第一步骤可以是逐深度卷积(例如3x3卷积)。第二步骤可以是逐点卷积(例如1x1卷积)。逐深度和逐点卷积可以是可分离卷积,因为可以对每个通道或特征图的每个深度使用不同的滤波器(例如,用以提取不同特征的滤波器)。在示例性实施方式中,逐点卷积可以基于滤波器来将特征图变换为包括c个通道。例如,可以基于滤波器来将8x8x3特征图(或图像)变换为8x8x256特征图(或图像)。在一些实施方式中,可以使用一个以上滤波器来将特征图(或图像)变换为mxmxc特征图(或图像)。

卷积可以是线性的。线性卷积根据输入将输出描述为线性时不变(lti)。卷积还可以包括修正线性单元(relu)。relu是可对卷积的lti输出进行修正并且将修正后的输出限制到最大值的激活函数。relu可以被用来加速收敛(例如,更有效的计算)。

在示例性实施方式中,第一类型的卷积可以是1x1卷积,第二类型的卷积可以是逐深度和逐点可分离卷积。多个卷积层920、935、940、945、950、955、960中的每一个可以具有多个细胞,并且每个细胞至少一个边界框。卷积层915、920、925和加法层930可以被用来将图像910变换为特征图,该特征图在大小上相当于vgg-16标准的conv_3层的特征图。换句话说,卷积层915、920、925和加法层930可以将图像910变换为38x38x512特征图。卷积层935、940、945、950、955、960可以被配置为将特征图递增地变换为1x1x256特征图。这种递增变换可能会导致生成大小不同的边界框(特征图或网格的区域),这使得能够实现具有许多大小的对象的检测。每个细胞可以具有至少一个关联的边界框。在示例性实施方式中,网格(例如,细胞的数量)越大,每个细胞的边界框的数量越少。例如,最大的网格可以使用每个细胞三(3)个边界框,而较小的网格可以使用每个细胞六(6)个边界框。

检测层975接收与每个边界框相关联的数据。该数据可以与边界框中的特征相关联。数据可以指示边界框中的对象(该对象可以不是对象或对象的一部分)。对象可以通过其特征来识别。数据有时累积地被称为类或分类器。该类或分类器可以与对象相关联。数据(例如边界框)还可以包括置信度得分(例如,零(0)和一(1)之间的数字)。

在cnn处理图像之后,检测层975可以接收并包括指示同一对象的多个分类器。换句话说,对象(或对象的一部分)可以在多个重叠的边界框内。但是,每个分类器的置信度得分可以不同。例如,识别对象的一部分的分类器可以具有比识别完整的(或基本上完整的)对象的分类器更低的置信度得分。检测层975可以进一步被配置为丢弃没有关联的分类器的边界框。换句话说,检测层975可以丢弃它们中没有对象的边界框。

抑制层980可以被配置为基于置信度得分来排序边界框,并且可以将具有最高得分的边界框选择为识别对象的分类器。抑制层可以对具有相同或基本上相似的分类器的每个边界框重复排序和选择过程。作为结果,抑制层可以包括识别输入图像中的每个对象的数据(例如,分类器)。

在增强现实(ar)应用中,待识别的对象可以限于ar应用生成的对象。例如,如果ar应用使用了200个对象,则检测层975可能仅包括200个检测器(例如,与地面真值框类似)以识别对象。示例性实施方式使用训练的ml模型来识别任何可能的现实世界对象(例如,手姿态、产品、名片等),以确定用户的意图。因此,检测层975可以被配置为检测和/或识别任何现实世界的对象和/或现实世界的对象的变化(例如,姿态)。

如上所述,卷积层915、920、925和加法层930可以生成38x38x512个特征图。每个细胞(例如,1444个细胞中的每一个)可以具有至少三(3)个边界框。因此,可以将至少4332个边界框从加法层930传送到检测层975。卷积层935和卷积层940可以是第二类型的卷积,并且可以配置为执行3x3x1024卷积和1x1x1024卷积。结果可以是19x19x1024的特征图。每个细胞(例如361个细胞中的每一个)可以具有至少六(6)个边界框。因此,可以将至少2166个边界框从卷积层940传送到检测层975。

卷积层945可以是第二类型的卷积并且被配置为执行3x3x512卷积。结果可以是10x10x512的特征图。每个细胞(例如100个细胞中的每一个)可以具有至少六(6)个边界框。因此,可以将至少600个边界框从卷积层945传送到检测层975。卷积层950可以是第二类型的卷积,并且可以配置为执行3x3x256卷积。结果可以是5x5x256的特征图。每个细胞(例如25个细胞中的每一个)可以具有至少六(6)个边界框。因此,可以将至少150个边界框从卷积层950传送到检测层975。

卷积层955可以是第二类型的卷积并且被配置为执行3x3x256卷积。结果可以是3x3x256的特征图。每个细胞(例如9个细胞中的每一个)可以具有至少六(6)个边界框。因此,可以将至少54个边界框从卷积层955传送到检测层975。卷积层960可以是第二类型的卷积并且被配置为执行3x3x128卷积。结果可以是1x1x128的特征图。该细胞可以具有至少六(6)个边界框。可以将六(6)个边界框从卷积层960传送到检测层975。因此,在示例性实施方式中,检测层975可以处理至少7,298个边界框。

然而,可以将附加的边界框添加到每个卷积层的特征图。例如,可以基于细胞的数量(例如mxm)来将固定数量的边界框(有时称为锚点)添加到每个特征图。这些边界框可以包含一个以上细胞。细胞的数量越大,越多边界框被添加。随着边界框的数量增加,在边界框内捕获对象的可能性也会增加。因此,通过增加每个细胞的边界框的数量和/或通过增加每个特征图的固定框的数量,可以增加识别图像中的对象的可能性。此外,边界框可以具有特征图上的位置。作为结果,可以将一个以上的相同对象(例如,手、罐头、狗、猫等)识别为在图像中。

在示例性实施方式中,模型900可以被用来检测和/或识别手势。可以基于用作对模型900的输入的图像中的对象来检测和/或识别手势。模型900可以在图像中放置多个边界框,并且边界框中的至少一个应当包括对象,该对象是在可以是手势的姿态中配置的手。可以训练模型900以检测和/或识别多个手势。换句话说,可以使用多个图像和多个地面真值图像(例如,作为地面真值框)来训练模型(在下文详细描述)。对象可以在边界框内,该对象是在可以为手势的姿态中配置的手,并且可以确定边界框包括识别手势的特征。

一旦模型(例如,模型900)架构已经被设计(和/或处于操作中),就应当训练模型(有时被称为开发模型)。模型架构可以用于若干模型。例如,基于用于训练模型的对象可以将模型900用在许多对象识别模型中。换句话说,通过使用与读书相关的图像来训练模型900可以开发读书模型。通过使用与购物相关的对象(例如,产品)的图像来训练模型900可以开发购物模型。通过使用与手势相关的图像来训练模型900可以开发姿势模型。确定用户的意图可以基于使用单个训练过的模型(例如ml模型)和/或使用多个训练过的模型。基于用户意图来执行任务可以基于使用单个训练过的模型(例如ml模型)和/或使用多个训练过的模型。

图10示出了根据示例性实施方式的用于机器学习过程的信号流的框图。训练模型包括将图像中的对象的预测与指示图像中的内容的数据进行比较。该数据有时被称为地面真值。换句话说,模型被用来生成包括与图像中的对象相关联的数据的边界框。包括地面真值框的数据集与边界框一起被输入到训练例程中。训练例程包括使用损失函数,将生成的边界框与地面真值框进行比较。训练例程可以被配置为基于比较的结果(例如,损失函数的输出)来修改被用来生成边界框的模型。

用户数据作为输入1005被输入。用户数据可以包括图像、姿势、对象、文本等。例如,图像可以包括至少一个对象。基于图像中的对象,图像可以包括包含地面真值框的元数据、识别对象的数据、识别地面真值框的数据、识别ml模型的数据等。用户数据可以包括表示可以被用来训练模型的对象的多个地面真值框。也可以使用其他数据。可以从提取地面真值1010块中的数据中提取或由提取地面真值1010块中的数据生成地面真值框。提取地面真值1010块也可以被配置为识别预训练的模型或待训练的模型。可替代地,可以通过用户输入来识别预训练模型或待训练的模型。所识别的模型可以被用来从库1035中选择ml模型(框1015)。

然后,开发所选择的ml模型(框1020),以对输入1005更准确地执行期望的输出功能(例如,检测或识别图像中的对象)。然后,可以对输入1005立即(例如,以继续训练或者对实时数据(框1025))或者在将来(例如,在被配置为确定用户意图的用户接口中)使用输出模型1025块。然后将开发的模型保存(框1030)在库1035中,以在需要时和/或在将来立即使用。

如果将来输入类似的数据,则不必重新开发模型。库1035可以随着使用系统而增长。例如,当用户输入附加的姿势、不同类型的产品或不同名片时,可以对用于姿势、产品或名片的模型进行更新、修订、开发和/或添加到库1035。

训练和优化过程(例如,作为在框1020中开发模型的功能)可以被配置为生成包括与图像中的对象相关联的数据的边界框(或框)。可以使用所选择的ml模型(例如,模型900)来生成边界框(或框)。可以使用所选择的ml模型来识别(或检测)边界框中的对象。可以基于与边界框相关联的数据来识别(或检测)对象。与边界框相关联的数据可以是使用ml模型从图像的一部分提取的特征。训练和优化过程(例如,作为在框1020中开发模型的功能)可以被配置为使用损失函数,将所生成的边界框与地面真值框进行比较。训练可以包括基于比较的结果(例如,损失函数的输出)来修改用于生成边界框的ml模型。

修改ml模型可以包括改变特征和/或特征的特性(例如,关键特征或特征的重要性)、包括以下的超参数:框建议(boxesproposal)、宽高比、数据增强选项、损失函数、深度乘数、层数量、图像输入大小(例如,归一化)、锚点框、锚点框的位置、每个细胞的框数目、特征图大小、卷积参数等。

可以基于所花费的计算时间与期望的结果质量之间的期望折衷来配置训练和优化过程(例如,作为框1020中开发模型的功能)。通常,在训练过程期间使用的迭代次数量会产生在重构精度上的近似对数增益,因此优选使用自动阈值来停止进一步优化。当偏向结果质量时,可以例如通过计算均方误差,将自动阈值设置为重建误差的预定值,但是也可以使用其他方法。可以设置自动阈值以将训练和优化过程限制为预定的迭代数量。另外的替代方式,可以使用这两个因素的组合。

也可以随着时间优化模型。例如,产品识别目标可以是最小化误识别。因此,在训练(使用前和使用中)期间,最小化与每个产品相关联的误识别可以最小化操作环境中的误识别。在示例性实施方式中,可以对每个产品设置误识别的阈值数量。阈值数量可以与时间段(例如,一周或一个月)相关联。响应于确定与产品相关联的误识别的数量超过阈值数量,可以触发相关模型的附加训练。尽管描述了阈值数量,但是其他标准也在本公开的范围内。可以响应于事件而优化模型。例如,当将新产品添加到产品线时,可以触发优化(或开发)模型。

在增强现实(ar)应用中,待识别的对象可以限于由ar应用生成的对象。因此,仅需要一个模型,而对模型进行训练也可能是不必要的。例如,如果ar应用使用了200个对象,则检测(例如,检测层975)可以仅包括200个检测器(例如,类似于地面真值框)以识别对象。示例性实施方式使用训练过的ml模型来识别任何可能的现实世界对象(例如,手姿态、产品、名片等),以确定用户的意图。因此,检测可以包括检测和/或识别任何现实世界对象和/或现实世界对象的变化(例如,姿态)。

图11a和11b是根据至少一个示例性实施方式的由用户佩戴的示例性头戴式显示器(hmd)1100的透视图。hmd1100可以包括耦合到框架1120的外壳1110,以及包括例如安装在耳机中的扬声器的也耦合到框架1120的音频输出设备1130。

在图11b中,使外壳1110的前部1111a远离外壳1110的基座部1111b旋转,使得容纳在外壳1110中的部件中的一些可见。显示器1140可以安装在外壳1110的前部1111a的朝向内部侧上。镜头1150可以安装在外壳1110中,当前部1111a相对于外壳1110的基座部1111b处于关闭位置时位于用户的眼睛和显示器1140之间。在一些实施方式中,hmd1100可以包括感测系统1160和控制系统1170,该感测系统1160包括各种传感器,该控制系统1170包括处理器1190和便于hmd1100的操作的各种控制系统设备。

在一些实施方式中,hmd1100可以包括相机1180以捕获静止和运动图像。相机1180捕获的图像可以用于帮助跟踪用户、hmd1100和/或手持电子设备(未示出)在现实世界或相对于增强环境的现实世界空间中的物理位置,和/或可以在直通(passthrough)模式下在显示器1140上显示给用户,从而允许用户暂时离开增强环境并返回到物理环境,而无需去除hmd1100或以其他方式改变hmd1100的配置以使外壳1110移出用户的视线。

例如,在一些实施方式中,感测系统1160可以包括惯性测量单元(imu)1162,该惯性测量单元(imu)包括各种不同类型的传感器,诸如例如加速度计、陀螺仪、磁力计和其他这样的传感器。可以基于imu1162中包括的传感器提供的数据来检测和跟踪hmd1100的位置和定向。所检测的hmd1100的位置和定向可以允许系统继而检测和跟踪用户的头凝视方向和移动。

在一些实施方式中,hmd1100可以包括凝视跟踪设备1165,以检测和跟踪用户的眼睛凝视。凝视跟踪设备1165可以包括例如图像传感器1165a或多个图像传感器1165a,以捕获用户眼睛——例如诸如瞳孔的用户眼睛的特定部分——的图像,以检测并跟踪用户凝视的方向和移动。在一些实施方式中,hmd1100可以被配置为将所检测的凝视处理为用户输入,以被转化为沉浸式虚拟体验中的对应交互。

在一些实施方式中,hmd1100包括可移除地设置在外壳1110的腔室内的便携式电子设备,诸如智能电话。例如,显示器1140和相机1180可以由便携式电子设备提供。当腔室关闭时(如图11a所示),显示器1140与镜头1150对准,使得用户可以通过每个眼睛观看(由便携式电子设备提供的)显示器1140的至少一部分。相机1180可以与外壳1110中的孔径对准,使得hmd1100的便携式电子设备可以在被设置外壳1110中时捕获图像。

图12示出了根据至少一个示例性实施例的可穿戴计算设备。如图12所示,可穿戴计算设备1200包括镜头框架1205、镜头框架1210、中心框架支撑物1215、镜头元件1220、镜头元件1225、延伸侧臂1230、延伸侧臂1235、图像捕获设备1240(例如,相机)、板上计算系统1245、扬声器1250和麦克风1255。

框架元件1205、1210和1215以及延伸侧臂1230、1235中的每个可以由塑料和/或金属的实心结构形成,或者可以由相似材料的中空结构形成,以便允许布线和组件互连以在内部穿过可穿戴计算设备1200。其他材料也是可能的。镜头元件1220、1225中的至少一个可以由能够适当地显示投影图像或图形的任何材料形成。镜头元件1220、1225中的每一个也可以足够透明以允许用户通过镜头元件看见。组合镜头元件的这两个特征可以促进增强现实或平视显示,其中,投影图像或图形叠加在用户通过镜头元件所感知的现实世界视图上。

中心框架支持物1215和延伸侧臂1230、1235被配置为分别经由用户的鼻子和耳朵,将可穿戴计算设备1200固定到用户的面部。延伸侧臂1230、1235每一个均可以是分别远离镜头框架1205、1210延伸的突出物,并且可以定位在用户的耳朵后面以将可穿戴计算设备1200固定到用户。延伸侧臂1230、1235可以通过绕用户头部的后部延伸而进一步将可穿戴计算设备1200固定至用户。附加地或可替代地,例如,可穿戴计算设备1200可以连接至或贴附在头戴式头盔结构内。可穿戴计算设备的其他配置也是可能的。

板上计算系统1245被示为定位在可穿戴计算设备1200的延伸侧臂1230上;然而,板上计算系统1245可以被提供在可穿戴计算设备1200的其他部分上,或者可以远离可穿戴计算设备1200定位(例如,板上计算系统1245可以有线或无线连接到可穿戴计算设备1200)。板上计算系统1245可以包括例如处理器和存储器。板上计算系统1245可以被配置为从图像捕获设备1240(并且可能从其他感官设备)接收和分析数据,并且生成图像以供镜头元件1220、1225输出。

图像捕获设备1240可以是例如被配置为捕获静止图像和/或捕获视频的相机。在所示的配置中,图像捕获设备1240被定位在可穿戴计算设备1200的延伸侧臂1230上;然而,图像捕获设备1240可以被提供在可穿戴计算设备1200的其他部分上。图像捕获设备1240可以被配置为以各种分辨率或以不同的帧速率捕获图像。可以将诸如用在移动电话或网络摄像头中的相机的具有小形状因子的许多图像捕获设备合并到可穿戴计算设备1200的示例中。

示出了一个图像捕获设备1240。但是,可以使用更多的图像捕获设备,并且每个设备可以被配置为捕获相同的视图或捕获不同的视图。例如,图像捕获设备1240可以是面向前的以捕获用户感知的现实世界视图的至少一部分。然后,由图像捕获设备1240捕获的该面向前图像可以被用来生成增强现实,其中,计算机生成的图像看起来与用户感知的现实世界视图交互或覆盖。

可穿戴计算设备1200可以被用来(例如,板上计算系统1245)将(例如,穿戴者的一个或多个手进行的)某些姿势解释为用户输入。例如,可穿戴计算设备1200可以通过分析来自图像捕获设备1240的图像数据来捕获手势,并且发起被定义为与某些姿势相对应的任务,如上更详细地讨论以及下文示例的。此外,扬声器1250和麦克风1255可以被用作输入/输出组件。例如,麦克风1255可以检测可以被用来补充和/或修改与手势相关联的意图的话音。扬声器可以被配置为输出用户可以听到的可听信号。可听信号可以与响应于手势的任务相关联的任务有关。例如,可听信号可以是指示任务已完成的嘟嘟声。

在一些实施方式中,如图13a-13c和14a-14b所示,用户接口可以确定用户的意图。在一些实施方式中,应该注意的是,计算设备可以基于手势和来自数字助理的口头命令的组合来确定用户的意图,如图13a-13c所示。在一些实施方式中,计算设备可以执行任务,该任务可以包括协助发音(例如,图14a)、提供关于指向的文本的信息(例如,图14b)等。

在一些实施方式中,用户接口可以执行任务,该任务可以包括将名片信息保存在用户的联系人中。在一些实施方式中,计算设备可以将文本从一种语言翻译成另一种语言。这些仅仅是一些示例性任务,并且本公开不仅仅限于这些任务。

在一些实施方式中,用户接口可以与多模式上下文输入集成。例如,上下文可以来自用户指向的内容、语音任务、应用、历史查询等,并且可以与其他应用有关联。

本文描述的技术不需要任何附加硬件,并且需要最少的训练集来训练用户接口以及可以解决现实世界场景。此外,所提出的机制可以在基本设备(例如,可穿戴、智能电话等)上运行,并且与设备无关。即,实施方式可以包括可以与需要手势的任何开发者应用连接的计算设备。

在一些实施方式中,来自计算设备的相机的帧可以被实时地流传输到计算设备的处理器,并且用户接口的深度学习卷积网络可以辨识手势(例如,白名单的手势,诸如手指向、ok、停止等)及其地标(例如关节)。在示例性实施方式中,可以经由用于实时跟踪手和地标的附加过程来改进电池效率。在一些实施方式中,示例性用例可以包括与语音触发的数字助理相结合。这样的示例性用例可能包括:用户指向一些文本并说“readthistexttome(向我读此文本)”、指向一段文本并说“将其翻译为法语”等。在下文中,描述另外的示例。

近场姿势-在一些实施方式中,用户接口可以例如利用单个相机捕获近场中的用户交互。应当注意的是,与可以将指针放在感兴趣实体顶部上的台式或移动设备不同,使用包括用户接口的计算设备,手势可以放在感兴趣实体的下方一点,以避免或最小化覆盖实体——例如,正在阅读、解释、翻译的文本等——的不透明手指,如上所述。

在示例性实施方式中,姿势可以包括指向挑选/选择实体。这样的实施方式可以包括例如在阅读时寻求翻译单词的帮助、保存来自票的确认号或座位号、指向食品包装标签中的成分以及获得(或检索)相关信息。

在示例性实施方式中,姿势可以包括滑过以挑选实体集合。这对例如阅读一行文本、保存(记忆)书的引文等的用例很有帮助。

在示例性实施方式中,姿势可包括通过画圆或框来选择。这可能有助于挑选更大的实体组。

在示例性实施方式中,姿势可以包括两次轻击或划掉作为取消任务的交互。例如,在用户环境中两次轻击可能与取消或划掉同义。

用户体验-在一些实施方式中,当设备正在主动地收入相机输入时,可以触发指向手势。在示例性实施方式中,当计算设备打开并在视场(fov)中记录手势时,可以注册基于姿势的意图。在示例性实施方式中,可以使用像“this(这)”之类的显式触发命令来注册基于姿势的意图。例如,翻译示例可以包括:

用户:“okdigitalassistant,whatisthemeaningofthis?(ok,数字助理,这是什么意思?)”

数字助理(对前n次):pointwithyourfingeronthewordorsetofwords.(用手指指向一个或单词集合。)

用户:将手指移到单词上。

数字助理:digitalassistant:augmentedrealityisatechnologythatsuperimposesacomputer-generatedimageonauser'sviewoftherealworld,thusprovidingacompositeview.(增强现实是将计算机生成的图像叠加在现实世界的用户视图上,从而提供合成视图的技术。)

在示例性实施方式中,该机制可以包括显式触发以确定任务并辨识姿势。例如,示例性用户行程可以包括(以不同语言或相同语言的)阅读帮助。例如,这样的示例性实施方式可以包括:

用户:“heydigitalassistant,read(translate)this.(嗨,数字助理,请阅读(翻译)这。)”

数字助理(对前n次或当存在密集文本时):“pointtowhatyouwanttoread(指向您要阅读的内容)”

用户:将手指移到单词上

数字助理:“augmentedrealityisatechnologythatsuperimposesacomputer-generatedimageonauser'sviewoftherealworld,thusprovidingacompositeview.(增强现实是将计算机生成的图像叠加在现实世界的用户视图上,从而提供合成视图的技术。)”

在示例性实施方式中,数字助理的默认语言设置可以被用来阅读文本以进行翻译。

高级学习(定义、同义词、发音等)–在一些实施方式中,可以支持高级学习。例如,这样的示例性实施方式可以包括:

用户:“heydigitalassistant.whatdoesthiswordmean(嘿,数字助理。这个词是什么意思)”并且将手指指向词

数字助理:“diasporameans……(diaspora的意思是……)”

用户:“okdigitalassistant.howdoipronouncethis(好的,数字助理。我该如何对此发音)”并指向单词

数字助理:“thiswordispronouncedas//.wouldyoulikemetorepeatit?(这个单词的发音是//。您要我重复一遍吗?)”

用户:“heydigitalassistant.canyoutellmeasynonymofthisword?(嘿,数字助理。您能告诉我这个词的同义词吗?)”并指向单词(例如,augmentation(增强))。

数字助理:“thesynonymofaugmentationisamplification(增强的同义词是放大)”。

用于消除产品的歧义的对象识别–在一些实施方式中,可以支持用于消除产品的歧义的对象识别。例如,这样的示例性实施方式可以包括:

用户:“heydigitalassistant.whatisthis?(嘿,数字助理。这是什么?)”指向购物通道中的对象

数字助理:“thisisteriyakigingersauce(这是照烧姜汁)”

超人记忆–在一些实施方式中,可以支持超人记忆。例如,这样的示例性实施方式可以包括:

用户:“okdigitalassistant.rememberthisquote.(好,数字助理。请记住该引文。)”将手指移过短语或在短语上画圈。

数字助理:“savingnotetoyourkeep:thetimeisalwaysrighttodowhatisright.(保存便笺以保持:做正确的事,时机总是对的。)”

信息搜寻器–示例性实施方式可以包括:

用户:“heydigitalassistant.tellmemoreaboutthis.(嗨,数字助理。请告诉我更多有关此。)”指向产品的成分。

数字助理:“omega3fattyacidsarepolyunsaturatedfattyacidscharacterizedbyadoublebondthreeatomsawayfromtheterminalmethylgroup.(omega3脂肪酸是多不饱和脂肪酸,特征在于远离末端甲基的三个原子的双键。)”

在一些实施方式中,手势可以支持不同的用户来满足他们的大多数需求。例如,这样的示例性实施方式可以包括:识别食指和拇指上的指针(例如,拇指在举起对象时是常见的)、对左右手进行训练、对多种皮肤颜色进行训练、手指和指甲的长度、手指上有艺术和配件(例如指甲油,珠宝等)时进行训练。

在一些实施方式中,可以支持近场视图中的高级意图。这样的示例性实施方式可以包括捏和张开以缩放实体、举起手以停止数字助理的语音、向左右轻扫手以分别向前和向后移动、竖起大拇指以指示好的。

在一些实施方式中,可以扩大视野以支持比手的长度更长的距离。在示例性实施方式中,可以用可以帮助三角测量用户在远视场中可能正在引用的姿势的一个以上的相机来支持这样的功能。如上所述,指向、轻扫等的交互可能是类似的,但是手指可能会在其后面覆盖在对象上。可以支持附加的功能性,例如,抓取和拖动以移动视场中的虚拟对象。

图15示出可以与这里描述的技术一起使用的计算机设备1500和移动计算机设备1550的示例。计算设备1500旨在表示各种形式的数字计算机,诸如膝上型电脑、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。计算设备1550旨在表示各种形式的移动设备,诸如个人数字助理、蜂窝电话、智能电话和其它类似的计算设备。这里示出的组件、其连接和关系及其功能仅仅意在为示例性的,而不意在限制本文档中描述和/或要求保护的发明的实施方式。

计算设备1500包括处理器1502、存储器1504、存储设备1506、连接到存储器1504和高速扩展端口1510的高速接口1508以及连接到低速总线1514和存储设备1506的低速接口1512。组件1502、1504、1506、1508、1510和1512中的每一个均使用各种总线来互连,并且可以被酌情安装在公共主板上或者以其它方式安装。处理器1502可处理在计算设备1500内执行的指令,包括存储在存储器1504中或者在存储设备1506上以在外部输入/输出设备(诸如耦合到高速接口1508的显示器1516)上显示用于gui的图形信息的指令。在其它实施方式中,可以酌情使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备1500,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。

存储器1504存储计算设备1500内的信息。在一个实施方式中,存储器1504是一个或多个易失性存储器单元。在另一实施方式中,存储器1504是一个或多个非易失性存储器单元。存储器1504还可以是另一形式的计算机可读介质,诸如磁盘或光盘。

存储设备1506能够为计算设备1500提供大容量存储。在一个实施方式中,存储设备1506可以是或者包含计算机可读介质,诸如软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似的固态存储设备或设备的阵列,包括存储区域网络或其它配置中的设备。计算机程序产品可被有形地具体实现在信息载体中。计算机程序产品还可以包含指令,所述指令当被执行时,执行一种或多种方法,诸如上面描述的那些方法。信息载体是计算机或机器可读介质,诸如存储器1504、存储设备1506或处理器1502上的存储器。

高速控制器1508管理用于计算设备1500的带宽密集操作,而低速控制器1512管理较低带宽密集操作。功能的这种分配仅是示例性的。在一个实施方式中,高速控制器1508耦合到存储器1504、显示器1516(例如,通过图形处理器或加速器),并且耦合到高速扩展端口1510,所述高速扩展端口1510可以接受各种扩展卡(未示出)。在该实施方式中,低速控制器1512耦合到存储设备1506和低速扩展端口1514。可以包括各种通信端口(例如,usb、蓝牙、以太网、无线以太网)的低速扩展端口例如通过网络适配器耦合到一个或多个输入/输出设备,诸如键盘、指向设备、扫描器或诸如交换机或路由器的联网设备。

如图中所示,可以以许多不同的形式实现计算设备1500。例如,它可以作为标准服务器1520被实现,或者在一组此类服务器中实现多次。它还可以作为机架服务器系统1524的一部分被实现。此外,它可以被实现在诸如膝上型计算机1522的个人计算机中。可替选地,来自计算设备1500的组件可以与移动设备(未示出)诸如设备1550中的其它组件组合。此类设备中的每一个均可以包含计算设备1500、1550中的一个或多个,并且整个系统可以由彼此通信的多个计算设备1500、1550组成。

计算设备1550包括处理器1552、存储器1564、诸如显示器1554的输入/输出设备、通信接口1566和收发器1568以及其它组件。设备1550还可以被提供有存储设备,诸如微驱动器或其它设备,以提供附加存储。组件1550、1552、1564、1554、1566和1568中的每一个均使用各种总线来互连,并且若干组件可以被酌情安装在公共主板上或者以其它方式安装。

处理器1552可执行计算设备1550内的指令,包括存储在存储器1564中的指令。处理器可作为芯片的芯片组被实现,所述芯片包括单独的和多个模拟和数字处理器。例如,处理器可以提供用于设备1550的其它组件的协调,诸如对用户接口、由设备1550运行的应用以及由设备1550进行的无线通信的控制。

处理器1552可以通过耦合到显示器1554的控制接口1558和显示器接口1556来与用户进行通信。显示器1554可以是例如tftlcd(薄膜晶体管液晶显示器)或oled(有机发光二极管)显示器或其它适当的显示技术。显示接口1556可以包括用于驱动显示器1554以向用户呈现图形和其它信息的适当的电路。控制接口1558可以从用户接收命令并且对它们进行转换以用于提交给处理器1552。此外,可以提供与处理器1552通信的外部接口1562,以使得能实现设备1550与其它设备的近区域通信。外部接口1562可以例如在一些实施方式中提供用于有线通信,或者在其它实施方式中提供用于无线通信,并且还可以使用多个接口。

存储器1564存储计算设备1550内的信息。存储器1564可作为中的一种或多种被实现:一个或多个计算机可读介质、一个或多个易失性存储器单元或者一个或多个非易失性存储器单元。扩展存储器1574还可以通过扩展接口1572来提供并连接到设备1550,所述扩展接口1572可以包括例如simm(单列直插存储器模块)卡接口。这种扩展存储器1574可以为设备1550提供额外的存储空间,或者还可以为设备1550存储应用或其它信息。具体地,扩展存储器1574可以包括用于执行或者补充上述的过程的指令,并且还可以包括安全信息。因此,例如,扩展存储器1574可以作为用于设备1550的安全模块被提供,并且可以被编程有允许安全地使用设备1550的指令。此外,可以经由simm卡提供安全应用以及附加信息,诸如以不可破解的方式将识别信息放置在simm卡上。

如在下面所讨论的,存储器可以包括例如闪速存储器和/或nvram存储器。在一个实施方式中,计算机程序产品被有形地具体实现在信息载体中。计算机程序产品包含指令,所述指令当被执行时,执行一种或多种方法,诸如上述的那些方法。信息载体是可以例如通过收发器1568或外部接口1562接收的计算机或机器可读介质,诸如存储器1564、扩展存储器1574或处理器1552上的存储器。

设备1550可以通过通信接口1566以无线方式通信,所述通信接口1566必要时可以包括数字信号处理电路。通信接口1566可以提供用于在各种模式或协议下通信,所述各种模式或协议诸如gsm语音呼叫、sms、ems或mms消息传送、cdma、tdma、pdc、wcdma、cdma2000或gprs等。这种通信可以例如通过射频收发器1568来发生。此外,短距离通信可以例如使用蓝牙、wi-fi或其它这种收发器(未示出)来发生。此外,gps(全球定位系统)接收器模块1570可以向设备1550提供附加的导航和位置相关无线数据,其可以由在设备1550上运行的应用酌情使用。

设备1550还可以使用音频编解码器1560来可听地通信,所述音频编解码器1560可以从用户接收说出的信息并将它转换为可用的数字信息。音频编解码器1560可以同样地为用户生成可听声音,诸如通过扬声器,例如在设备1550的头戴式耳机中。这种声音可以包括来自语音电话呼叫的声音,可以包括录制声音(例如,语音消息、音乐文件等)并且还可以包括由在设备1550上操作的应用所生成的声音。

如图中所示,可以以许多不同的形式实现计算设备1550。例如,它可以作为蜂窝电话1580被实现。它还可以作为智能电话1582、个人数字助理或其它类似的移动设备的一部分被实现。

在一般方面,设备、系统、非暂时性计算机可读介质(具有存储在其上的可以在计算机系统上执行的计算机可执行程序代码)和/或方法可以通过包括下述的方法执行处理:包括捕获图像;确定用户正在操作计算设备的环境;基于图像中的对象来检测手势;使用机器学习模型,基于手势以及环境来确定用户的意图;并且至少基于所确定的意图来执行任务。

该系统可以包括:存储器,其存储指令集合;以及处理器,其被配置成执行指令集合,以使系统捕获图像;确定用户正在操作计算设备的环境;基于图像中的对象来检测手势;使用机器学习模型,基于手势和环境来确定用户的意图;并至少基于所确定的意图来执行任务。

实施方式可以包括下述特征中的一个或多个。例如,确定所述用户的意图可以进一步包括转化用户与现实世界的交互,以及使用交互和手势来确定用户的意图。机器学习模型可以是基于计算机视觉模型。可以使用第一机器学习模型和第二机器学习模型来确定用户的意图。该方法可以进一步包括使用第二机器学习模型的对与手势相关联的手的连续跟踪。可以使用计算设备的单个非深度感测相机捕获图像。该任务可以基于计算机助理的使用。该任务可以包括视觉和可听输出中的至少一个。可以使用包括至少一个手势的多个图像来训练机器学习模型,使用手势的多个地面真值图像来训练机器学习模型,使用损失函数来确认手势与手势的地面真值图像之间的匹配,并且基于图像中的对象的对手势的检测包括将该对象与和该手势的地面真值图像匹配的该手势进行匹配。可以使用多个图像来训练机器学习模型,多个图像每一个都包括至少一个对象,并且至少一个对象可以具有相关联的地面真值框。机器学习模型可以生成多个边界框,机器学习模型可以基于边界框内的对象的至少部分来确定多个特征,机器学习模型可以基于多个特征来识别对象,并且可以基于所识别的对象来确定用户的意图。

虽然示例实施例可以包括各种修改和替代形式,但是其实施例在附图中通过示例示出,并且将在本文中详细描述。然而,应当理解,不旨在将示例实施例限制为所公开的特定形式,而是相反,示例实施例将覆盖落入权利要求范围内的所有修改、等效物和替代形式。在整个附图的描述中,相同的标号指代相同的元件。

这里描述的系统和技术的各种实施方式可用数字电子电路、集成电路、专门地设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合加以实现。这些各种实施方式可包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,所述可编程系统包括至少一个可编程处理器,其可以是专用的或通用的,耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备发送数据和指令。这里描述的系统和技术的各种实施方式可作为可组合软件和硬件方面的电路、模块、块或系统被实现和/或一般地在本文中被称为可组合软件和硬件方面的电路、模块、块或系统。例如,模块可以包括在处理器(例如,形成在硅衬底、gaas衬底等上的处理器)或某个其它可编程数据处理装置上执行的功能/行为/计算机程序指令。

上述示例实施例中的一些被描述为作为流程图描绘的过程或方法。尽管流程图将操作描述为顺序过程,然而可以并行地、并发地或同时地执行许多操作。此外,可以重新布置操作的次序。这些过程可以在其操作完成时被终止,但是也可以具有未包括在图中的附加步骤。这些过程可以对应于方法、函数、程序、子例程、子程序等。

上面讨论的方法(其中的一些通过流程图来图示)可以通过硬件、软件、固件、中间件、微码、硬件描述语言或其任何组合来实现。当用软件、固件、中间件或微码加以实现时,用于执行必要的任务的程序代码或代码段可以被存储在诸如存储介质的机器或计算机可读介质中。处理器可以执行必要的任务。

本文中公开的具体结构和功能细节仅仅是表示性的以用于描述示例实施例的目的。然而,示例实施例被以许多替代形式具体实现,而不应该被解释为限于仅本文中阐述的实施例。

应理解的是,尽管可以在本文中使用术语第一、第二等来描述各种元件,然而这些元件不应该受这些术语限制。这些术语仅用于区分一个元件和另一元件。例如,第一元件能被称为第二元件,并且类似地,第二元件能被称为第一元件,而不脱离示例实施例的范围。如本文中所使用的,术语和/或包括相关列举项目中的一个或多个的任何和所有组合。

应理解的是,当一个元件被称为连接或者耦合到另一元件时,它可直接地连接或者耦合到另一元件或者可以存在中间元件。相比之下,当一个元件被称为直接地连接或者直接地耦合到另一元件时,不存在中间元件。应该以相似的方式解释用于描述元件之间的关系的其它单词(例如,在…之间对直接地在…之间、相邻对直接地相邻等)。

本文中使用的术语仅用于描述特定实施例的目的而不旨在限制示例实施例。如本文中所使用的,除非上下文另外清楚地指示,否则单数形式一(a/an)和该(the)也旨在包括复数形式。应进一步理解的是,术语含、含有、包括和/或包括有当在本文中使用时,指定存在陈述的特征、整数、步骤、操作、元件和/或组件,但是不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或其组。

还应该注意的是,在一些替代实施方式中,所指出的功能/行为可以不按图中指出的次序发生。例如,取决于所涉及的功能性/行为,相继示出的两个图实际上可以被并发地执行或者有时可以被以相反的次序执行。

除非另外定义,否则本文中使用的所有术语(包括技术和科学术语)具有与由示例实施例所属的领域的普通技术人员所通常理解的相同的含义。应进一步理解的是,除非在本文中明确地如此定义,否则术语(例如,在常用词典中定义的那些术语)应该被解释为具有与其在相关领域的上下文中的含义一致的含义,而不应在理想化或过于正式的意义上进行解释。

上述示例实施例的各部分和对应的详细描述是按软件或算法以及对计算机存储器内的数据比特的操作的符号表示来呈现的。这些描述和表示是本领域的普通技术人员用来有效地将其工作的实质传达给本领域的其它普通技术人员的描述和表示。算法(当在这里使用该术语时,并且当一般地使用它时)被认为是导致期望结果的步骤的自相一致序列。这些步骤是要求对物理量物的理操纵的那些步骤。通常,尽管不一定,然而这些量采取能够被存储、转移、组合、比较和以其它方式操纵的光学信号、电信号或磁信号的形式。有时主要由于通用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等已证明是方便的。

在上述说明性实施例中,对可以作为程序模块或功能过程被实现的操作(例如,形式为流程图)的行为和符号表示的引用包括执行特定任务或者实现特定抽象数据类型并且可以使用现有结构元件处的现有硬件来描述和/或实现的例程、程序、对象、组件、数据结构等。这种现有硬件可以包括一个或多个中央处理单元(cpu)、数字信号处理器(dsp)、专用集成电路、现场可编程门阵列(fpga)计算机等。

然而,应该记住的是,所有这些和类似的术语都将与适当的物理量相关联并且仅仅是应用于这些量的方便标签。除非另外具体地陈述,或者如从讨论中显而易见的,诸如处理或计算或计算出或确定显示等的术语指代计算机系统或类似的电子计算设备的动作和过程,所述计算机系统或类似的电子计算设备将被表示为计算机系统的寄存器和存储器内的物理电子量的数据操纵并变换成被类似地表示为计算机系统存储器或寄存器或其它此类信息存储、传输或显示设备内的物理量的其它数据。

另外注意的是,示例实施例的软件实现的方面通常被编码在某种形式的非暂时性程序存储介质上或者实现在某种类型的传输介质上。程序存储介质可以是磁的(例如,软盘或硬盘驱动器)或光学的(例如,紧致盘只读存储器或cdrom),并且可以是只读或随机存取的。类似地,传输介质可以是双绞线对、同轴电缆、光纤或为本领域所知的某个其它适合的传输介质。示例实施例不受任何给定实施方式的这些方面限制。

最后,还应该注意的是,虽然所附权利要求书陈列本文中描述的特征的特定组合,但是本公开的范围不限于此后要求保护的特定组合,而是替代地扩展到包含本文中公开的特征或实施例的任何组合,而不管此时是否已在所附权利要求中具体地枚举了该特定组合。

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