首页> 中国专利> 用于线性全景图像拼接的预览图像获取用户界面

用于线性全景图像拼接的预览图像获取用户界面

摘要

本公开涉及用于线性全景图像拼接的预览图像获取用户界面。公开了允许捕获一系列图像以创建单个线性全景图像的系统和方法。所述方法包括:捕获图像;将先前捕获的图像与在捕获设备的显示器上的预览图像进行动态比较,直到满足预定的重叠阈值为止;生成用户界面,以在捕获设备的显示器上提供反馈来引导捕获设备的移动;以及捕获预览图像,所述预览图像与先前捕获的图像具有足够的重叠,并且没有或仅略微倾斜,以创建线性全景图像。

著录项

  • 公开/公告号CN105809620A

    专利类型发明专利

  • 公开/公告日2016-07-27

    原文格式PDF

  • 申请/专利权人 株式会社理光;

    申请/专利号CN201610019046.7

  • 申请日2016-01-12

  • 分类号G06T3/40(20060101);G06Q30/06(20120101);

  • 代理机构11243 北京银龙知识产权代理有限公司;

  • 代理人龚伟;杨继平

  • 地址 日本东京都

  • 入库时间 2023-06-19 00:08:08

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-21

    授权

    授权

  • 2016-08-24

    实质审查的生效 IPC(主分类):G06T3/40 申请日:20160112

    实质审查的生效

  • 2016-07-27

    公开

    公开

说明书

技术领域

本发明总体涉及提供用于引导用户捕获一系列的图像来创建单个线性全 景图像的用户界面。本发明尤其涉及如下这样的系统和方法,所述系统和方法 用于生成一个或多个用户界面单元,所述用户界面单元提供瞬时反馈,以引导 用户捕获一系列的图像来创建单个线性全景图像。

背景技术

表示货架图(planogram)是零售环境下产品的视觉表示。例如,表示货 架图可以描述零售环境中的位置和应当放置什么数量的产品。已知这样的表示 货架图是增加销售、管理库存和确保放置期望的数量和大小的物品以最优化利 润和其他参数的有效工具。然而,货架、搁架和展示架上货品的充足水平的呈 现和维护是劳动密集的工作,因此实现表示货架图是困难的。尽管可以由用户 人工跟踪零售商店中产品的位置和数量,但人们仍希望能够自动识别产品并且 自动或半自动地获取与产品的状态有关的信息。

现有的识别产品的方法存在缺陷。例如,在一种方法中,通过图像拼接来 实现从多个图像中识别多个产品的目的。但不幸的是,现有的图像拼接技术可 能会导致伪影(artifact),并且还可能会干扰识别的最优操作。

发明内容

本文中描述的技术涉及用于捕获一系列图像来创建线性全景图像的系统 和方法,克服了现有技术中的缺陷和限制。在一个实施例中,该系统包括图像 识别应用。图像识别应用被配置为,从捕获设备接收感兴趣的对象的一部分的 图像,并且确定图像的特征。图像识别应用还被配置为,在捕获设备的显示器 上生成包括感兴趣的对象的当前预览图像的用户界面,并且将捕获设备的显示 器上的感兴趣的对象的当前预览图像与所述图像的特征进行动态比较,以确定 重叠。所述图像识别应用还被配置为,更新用户界面,以包括用于引导捕获设 备的移动来产生重叠的第一视觉区分指示符,并确定所述图像和当前预览图像 之间的重叠是否满足预定的重叠阈值。图像识别应用还被配置为,基于满足预 定重叠阈值的重叠,使用捕获设备捕获感兴趣的对象的该部分的下一个图像。

其他方面包括这些和其他创新方面的对应的方法、系统、装置和计算机程 序产品。

本文中描述的特征和优势并不是完全包括形式的,并且许多额外的特征 和优势对于阅读了本说明书和附图的本领域技术人员而言是清楚的。此外,还 应当注意的是,本说明书中选用使用的词语主要用于易于理解本申请和指示性 的目的,而并不限制本申请的范围。

附图说明

通过实例来说明在这里引入的技术,附图不对所述技术构成限制,在附图 中,相似的附图标记用于指代相似的单元。

图1是说明了用于捕获一系列的图像来创建线性全景的系统的一个实施 例的高级框图。

图2是说明了包括图像识别应用的计算设备的一个实施例的框图。

图3是说明了用于在方向的引导下捕获感兴趣的对象的一系列的图像以 生成单个线性全景图像的方法的一个实施例的流程图。

图4A-4B是说明了用于在有向引导样式下捕获感兴趣的对象的一系列的 图像以生成单个线性全景图像的方法的一个实施例的流程图。

图5A-5B是说明了用于在有向引导样式下捕获感兴趣的对象的一系列的 图像以生成单个线性全景图像的方法的另一个实施例的流程图。

图6A-6B是说明了将当前的预览图像与感兴趣的对象的之前捕获的图像 重新对齐的方法的一个实施例的流程图。

图7A是用于捕获货架的图像的用户界面的实施例的图形表示。

图7B是用于捕获货架的图像的用户界面的另一个实施例的图形表示。

图8是对于感兴趣的对象的捕获图像之间重叠的一个实施例的图形表示。

图9是用于生成重叠的视觉区分指示符的图像匹配过程的一个实施例的 图形表示。

图10A-10D是当客户端设备从左向右移动时显示重叠的视觉区分指示符 的用户界面的实施例的图形表示。

图11A-11D是当客户端设备从底部向顶部移动时显示重叠的视觉区分指 示符的用户界面的实施例的图形表示。

图12A-12C是当客户端设备绕Z轴滚动时显示倾斜(tilt)的视觉区分指 示符的用户界面的实施例的图形表示。

图13A-13C是当客户端设备绕X轴俯仰(pitch)时显示倾斜的视觉区分 指示符的用户界面的实施例的图形表示。

图14A-14B是当客户端设备在X和Z轴上倾斜时显示倾斜的视觉区分指 示符的用户界面的实施例的图形表示。

图15是用于生成重新对齐的视觉区分指示符的重新对齐过程的一个实施 例的图形表示。

图16A-16D是将在客户端设备上显示的当前的预览图像与先前捕获的图 像重新对齐的用户界面显示的实施例的图形表示。

图17A-17F是说明将在客户端设备上显示的当前的预览图像与先前捕获 的图像重新对齐的用户界面显示的另一组实施例的图形表示。

图18是图像捕获的蜿蜒扫描样式的一个实施例的图形表示。

图19是使用货架单元的图像构建马赛克预览的一个实施例的图形表示。

图20A-20I是显示客户端设备的移动方向的视觉区分指示符的用户界面 的实施例的图形表示。

图21是显示客户端设备的移动方向的视觉区分指示符的用户界面的另一 个实施例的图形表示。

图22A-22B是示出了预览处于马赛克状态的一组捕获图像的用户界面的 实施例的图形表示。

具体实施方式

图1是说明了用于捕获一系列的图像来创建线性全景的系统100的一个实 施例的高级框图。所示的系统100可以具有能够由用户访问的一个或多个客户 端设备115a...115n和识别服务器101。在图1和其他附图中,参考数字之后的 字母(例如“115a”)代表对具有该特定参考数字的单元的引用。后面不带有 字母的参考数字(例如“115”)代表具有该参考数字的单元的实例的总体引用。 在所示的实施例中,经由网络105可通信地耦接系统100的这些实体。

网络105可以是常规类型的有线或无线网络,并且可以具有各种不同的配 置,包括星形配置、令牌环配置或其他配置。此外,网络105可以包括局域网 (LAN)、广域网(WAN)(例如互联网)和/或其他互连的数据路径,其中多 个设备可以跨过网络105进行通信。在一些实施例中,网络105可以是对等网 络。网络105还可以耦接到或包括通信网络的一部分,用于以各种不同的通信 协议发送数据。在一些实施例中,网络105可以包括用于发送和接收数据的蓝 牙通信网络或蜂窝通信网络,包括经由短消息服务(SMS)、多媒体消息服务 (MMS)、超文本传输协议(HTTP)、直接数据连接、WAP、电子邮件等。尽 管图1中所示的一个网络105耦接到了客户端设备115和识别服务器101,但 在实际上一个或多个网络105可以连接到这些实体。

在一些实施例中,系统100包括与网络105耦接的识别服务器101。在一 些实施例中,识别服务器101可以是硬件服务器、软件服务器、或硬件和软件 的组合。识别服务器101可以是计算设备或可以由计算设备实现,所述计算设 备包括处理器、存储器、应用、数据库和网络通信功能。在图1的示例中,识 别服务器101的组件被配置为实现图像识别应用103a,在下文中对此进行更 详细地描述。在一个实施例中,识别服务器101向包装的消费品的商品公司提 供服务,以识别货架、搁架或展示架上的产品。尽管这里的示例将描述了货架 的图像中的产品(例如零售显示)的识别,但应当理解图像可以包括被组织的 对象的任何布置。例如,图像可以是仓库、库房、储藏室、陈列室等的图像。 类似地,除了零售产品之外,对象还可以是在制造、建造或维护中使用的工具 或部件、医药用品、急救用品、紧急或安全设备等。

在一些实施例中,识别服务器101经由网络105向/从系统100的其他实 体发送/接收数据。例如,识别服务器101向/从客户端设备115发送/接收包括 图像的数据。由识别服务器101接收到的图像可以包括由客户端设备115捕获 的图像、从网站或电子邮件复制的图像或来自任何其他源的图像。尽管图1 中仅示出了单个识别服务器101,但应当理解的是,还可以存在任何其他数量 的识别服务器101或服务器集群。识别服务器101还包括数据存储243,在下 文中将参照图2对该数据存储243进行更详细的描述。

客户端设备115可以是这样的计算设备,其包括存储器、处理器和相机, 例如膝上型计算机、平板计算机、移动电话、智能电话、个人数字助理(PDA)、 移动电子邮件设备、网络摄像头、用户可穿戴计算设备或能够访问网络105 的任何其他的电子设备。客户端设备115提供任何类型应用的总体图形和多媒 体处理。例如,客户端设备115可以包括用于进行图形和多媒体处理的图形处 理器单元(GPU)。客户端设备115包括用于浏览由识别服务器101提供的信 息的显示器。尽管图1中示出了两个客户端设备115a和115n,但本公开也适 用于具有一个或更多个客户端设备115的系统结构。

客户端设备115适用于向/从识别服务器101发送/接收数据。例如,客户 端设备115向识别服务器101发送查询图像,并且识别服务器101将与查询图 像中识别出的一个或多个对象相关的JavaScript对象注释(JSON)格式的数据 提供给客户端设备115。客户端设备115可以支持使用图形应用程序接口(API), 例如苹果公司的iOSTM上的Metal或AndroidTM上的RenderScript,用于确定客 户端设备115上的特征位置和特征描述符。

图像识别应用103可以包括软件和/或逻辑来提供捕获一系列的图像的功 能以创建线性全景。在一些实施例中,可以使用可编程或专门的硬件(例如现 场可编程门阵列(FPGA)或专用集成电路(ASIC))来实现图像识别应用103。 在一些实施例中,可以使用硬件和软件的组合来实现图像识别应用103。在另 一些实施例中,图像识别应用103可以被存储在识别服务器101和客户端设备 115的组合中并且在该组合上被执行,或者可以由客户端设备115或识别服务 器101中的任何一个来进行上述的存储和执行。

在一些实施例中,图像识别应用103b可以是这样的瘦客户端应用,其具 有在客户端设备115上执行的某一功能,并且由图像识别应用103a在识别服 务器101上执行额外的功能。例如,在客户端设备115上的图像识别应用103b 可以包括这样的软件和/或逻辑,所述软件和/或逻辑用于捕获图像,将图像发 送到识别服务器101,并且显示图像识别结果。在另一个示例中,识别服务器 101上的图像识别应用103a可以包括这样的软件和/或逻辑,所述软件和/或逻 辑用于接收图像,基于与先前接收到的图像进行足够的重叠来将图像拼接为马 赛克视图,并且生成图像识别结果。图像识别应用103a或103b可以包括在本 文中描述的其他功能,例如处理图像和执行特征识别。

在一些实施例中,图像识别应用103从捕获设备接收感兴趣的对象的一部 分的图像。图像识别应用103确定图像的特征。图像识别应用103在捕获设备 的显示器上生成包括感兴趣的对象的当前预览图像的用户界面。图像识别应用 103将感兴趣的对象的当前预览图像与图像的特征进行动态比较,以确定重叠。 图像识别应用103更新用户界面以包括视觉区分指示符,从而引导捕获设备的 移动,来生成图像之间的期望或预定的重叠和对齐。图像识别应用103确定图 像和当前预览图像之间的重叠是否满足预定的重叠和对齐阈值。例如,重叠阈 值可以被设置为要拼接到一起以创建线性全景图像的图像之间的百分之六十。 图像识别应用103基于满足预定的重叠阈值的重叠,捕获感兴趣的对象的一部 分的预览图像。在下文中,将参照图3-15,对图像识别应用103的操作和上述 功能进行更详细地描述。

图2是说明了包括图像识别应用103的计算设备200的一个实施例的框图。 根据一些实施例,计算设备200还可以包括处理器235、存储器237、可选显 示设备239、通信单元241、数据存储243、可选方位传感器245和可选捕获 设备247。通过总线220可通信地耦接计算设备200的各个组件。总线220可 以代表一个或多个总线,包括工业标准结构(ISA)总线、外围组件互连(PCI) 总线、通用串行总线(USB)或现有技术中的提供类似功能的一些其他总线。 在一些实施例中,计算设备200可以是客户端设备115、识别服务器101或客 户端设备115和识别服务器101的组合。在计算设备200是识别服务器101或 客户端设备115的这样的实施例中,应当理解的是,客户端设备115和识别服 务器101可以包括图2中未示出的如上所述的其他组件。

处理器235可以通过执行各种输入/输出、逻辑和/或数学操作来执行软件 指令。处理器235可以具有各种计算结构来处理数据信号,包括例如复杂指令 集计算机(CISC)结构、缩减指令集计算机(RISC)结构、和/或实现指令集 的组合的结构。处理器235可以是物理上的和/或虚拟的,并且可以包括单个 处理单元或多个处理单元和/或内核。在一些实现中,处理器235能够生成电 子显示信号并将电子显示信号提供给显示设备,支持图像的显示,捕获并发送 图像、执行复杂任务,所述复杂任务包括各种类型的特征提取和采样等。在一 些实现中,处理器235可以经由总线220耦接到存储器237来从其访问数据和 指令并在其中存储数据。总线220可以将处理器235耦接到计算设备200的其 他组件,例如包括存储器237、通信单元241、图像识别应用103和数据存储 243。对于本领域技术人员而言明显的是,还可以使用其他的处理器、操作系 统、传感器、显示器和物理配置。

存储器237可以为计算设备200的其他组件存储数据并提供对数据的访问。 存储器237可以被包括在单个计算设备中或分布在多个计算设备中,如本文中 其他位置所述。在一些实现中,存储器237可以存储由处理器235执行的指令 和/或数据。指令和/或数据可以包括用于执行本文中描述的技术的代码。例如, 在一个实施例中,存储器237可以存储图像识别应用103。存储器237还能够 存储其他指令和数据,包括例如操作系统、硬件驱动器、其他软件应用、数据 库等。存储器237可以耦接到总线220以与处理器235和计算设备200的其他 组件进行通信。

存储器237可以包括一个或多个非易失性计算机可使用(例如可读、可写) 设备、静态随机存储器(SRAM)设备、嵌入式存储器设备、分离的存储器设 备(例如PROM、FPROM、ROM)、硬盘驱动器、光盘驱动器(CD、DVD、 蓝光(Blu-rayTM)等)介质,其可以是任何这样的有形装置或设备,所述装置 或设备能够包括、存储、传送或传输指令、数据、计算机程序、软件、代码、 例程等,以由处理器235处理或与处理器235相连接。在一些实现中,存储器 237可以包括一个或多个易失性或非易失性存储器。例如,存储器237可以包 括但不限于一个或多个动态随机存取存储器(DRAM)设备、静态随机存取存 储器(SRAM)设备、嵌入的存储器设备、分离的存储器设备(例如PROM、 FPROM、ROM)、硬盘驱动器、光盘驱动器(CD、DVD、蓝光(Blu-rayTM) 等)。应当理解,存储器237可以是单个设备,或可以包括多种类型的设备和 配置。

显示设备239是液晶显示器(LCD)、发光二极管(LED)或任何其他类 似配置的显示设备、屏幕或监视器。显示设备239代表适用于显示本文中描述 的用户界面、电子图像和数据的任何设备。在其他一些实施例中,显示是二进 制的(针对像素仅仅只有两个不同的值)、单色(一个颜色的多种阴影),或允 许多种颜色和阴影。显示设备239耦接到总线220,以与处理器235和计算设 备200的其他组件进行通信。应当注意的是,图2中所示的显示设备239是以 虚线绘示的,以指示其是可选的。例如,在计算设备200是识别服务器101 的情况下,显示设备239不是系统的一部分,而在计算设备200是客户端设备 115的情况下,显示设备239被包括并被用于显示在下文中参照图7A、图7B, 图9A-15B、图17A-17I、图18和图22A-22B所描述的用户界面。

通信单元241是用于通过将处理器235链接到网络105和其他处理系统来 接收和发送数据的硬件。通信单元241从客户端设备115接收诸如请求之类的 数据,并且将请求(例如处理图像的请求)发送到控制器201。通信单元241 例如响应于处理图像,还将包括识别结果的信息发送到客户端设备115以进行 显示。通信单元241耦接到总线220。在一个实施例中,通信单元241可以包 括与客户端设备115或另一个通信通道直接物理连接的端口。例如,通信单元 241可以包括RJ45端口或与客户端设备115进行有线通信的类似端口。在另 一个示例中,通信单元241可以包括无线收发器(未示出),用于使用一个或 多个无线通信方法(例如IEEE802.11、IEEE802.16、蓝牙或 另一种适当的无线通信方法)经由客户端设备115或任何其他通信通道交换数 据。

在另一个实施例中,通信单元241可以包括蜂窝通信收发器,用于通过蜂 窝通信网络经由例如经由短消息服务(SMS)、多媒体消息服务(MMS)、超 文本传输协议(HTTP)、直接数据连接、WAP、电子邮件或另一种适当类型 的电子通信等发送和接收数据。在另一个实施例中,通信单元241可以包括有 线端口和无线收发器。本领域技术人员可以理解的是,通信单元241还向网络 105提供其他的常规连接,以使用诸如TCP/IP、HTTP、HTTPS和SMTP之类 的标准网络协议分发文件和/或媒体对象。

数据存储243是存储用于提供本文中描述的功能的数据的非暂时性存储 器。数据存储243可以是动态随机存取存储器(DRAM)设备、静态随机存取 存储器(SRAM)设备、闪速存储器或一些其他的存储器设备。在一些实施例 中,数据存储243还可以包括非易失性存储器或其他类似的永久性存储设备和 介质,包括硬盘驱动器、软盘驱动器、CD-ROM设备、DVD-ROM设备、 DVD-RAM设备、DVD-RW设备、闪速存储器设备或其他一些大容量存储设 备,用于更持久地存储信息。

在所示的实施例中,数据存储243可通信地耦接到总线220。数据存储243 存储用于分析所接收到的图像的数据以及分析和本文中所描述的其他功能的 结果。例如,数据存储243可以存储图像重叠阈值,用于捕获最优重叠图像。 数据存储243可以类似地存储所捕获的图像和针对所捕获的图像确定的特征 集。此外,数据存储243可以存储被拼接的线性全景图像。在下文中更详细地 描述数据存储243中存储的数据。

方位传感器245可以是基于硬件的或基于软件的,或硬件和软件的组合, 用于确定计算设备200的位置或运动。在一些实施例中,方位传感器245可以 包括加速度器、陀螺仪、邻近传感器、地磁场传感器等。在另一些实施例中, 方位传感器245可以提供三坐标轴的加速力数据,三坐标轴的转动数据的速率 (例如,偏离、俯仰和滚动的值)、指示对象的距离的邻近度数据等。应当注 意的是,图2中所示的方位传感器245是以虚线示出的,以指示它是可选的。 例如,在计算设备200是识别服务器101的情况下,方位传感器245不是系统 的一部分,而在计算设备200是客户端设备115的情况下,方位传感器245被 包括,并被用于提供本文中描述的各种运动的传感器信息或客户端200的位置 确定事件。

捕获设备247可操作以捕获感兴趣的对象的数字数据或图像。例如,捕获 设备247可以是高清(HD)相机、常规的2D相机、多光谱相机、结构化的 发光3D相机、瞬时3D相机、立体相机、标准的智能电话相机或可穿戴计算 设备。捕获设备247耦接到总线,以向处理器235、存储器237或数据存储243 提供图像和其他处理过的元数据。应当注意的是,图2中所示的捕获设备247 是以虚线绘示的,以指示它是可选的。例如,在计算设备200是识别服务器 101的情况下,捕获设备247不是系统的一部分,而在计算设备200是客户端 设备115的情况下,捕获设备247被包括并被用于提供在下文中参照图7A、 图7B、图9A-15B,、图17A-17I、图18和图22A-22F所描述的图像和其他元 数据信息。

在一些实施例中,图像识别应用103可以包括控制器201、特征提取模块 203、对齐模块205、用户引导模块207、拼接模块209和用户界面模块211。 通过总线220可通信地耦接图像识别应用103的各个组件。

控制器201可以包括软件和/或逻辑,用于控制图像识别应用103的其他 组件的操作。控制器201控制图像识别应用103的其他组件,以执行下文中参 照图3-6描述的方法。控制器201可以包括软件和/或逻辑,以提供用于进行 图像识别应用103和计算设备200的其他组件之间、以及图像识别应用103 的组件之间的通信的功能。在一些实施例中,可以使用可编程或专门的硬件(例 如现场可编程门阵列(FPGA)或专用集成电路(ASIC))来实现控制器201。 在一些实施例中,可以使用由处理器235执行的硬件和软件的组合来实现控制 器201。在一些实施例中,控制器201是由处理器235可执行的指令集。在一 些实现中,控制器201被存储在存储器237中,并且可被处理器235访问和执 行。在一些实现中,控制器201适用于经由总线220与处理器235、存储器237 和图像识别应用103的其他组件进行协作和通信。

在一些实施例中,控制器201经由通信单元241向/从客户端设备115和 识别服务器101中的一个或多个发送/接收数据。例如,控制器201经由通信 单元241从由用户操作的客户端设备115接收图像,并且将图像发送到特征提 取模块203。在另一个示例中,控制器201从用户界面模块211接收用于将图 形用户界面提供到用户的数据,并且将数据发送到客户端设备115,使得客户 端设备115向用户呈现用户界面。

在一些实施例中,控制器201从图像识别应用103的其他组件接收数据, 并且将数据存储在数据存储243中。例如,控制器201从特征提取模块203 接收包括针对图像识别出的特征的数据,并且将数据存储在数据存储243中。 在其他一些实施例中,控制器201从数据存储243获取数据,并且将数据发送 到图像识别应用103的其他组件。例如,控制器201从数据存储243获取包括 重叠阈值的数据,并且将所获取的数据发送到对齐模块205。

特征提取模块203可以包括软件和/或逻辑,用于提供从客户端设备115 接收感兴趣的对象的图像并且确定图像的特征的功能。在一些实施例中,可以 使用可编程或专门的硬件(例如现场可编程门阵列(FPGA)或专用集成电路 (ASIC))来实现特征提取模块203。在一些实施例中,可以使用由处理器235 执行的硬件和软件的组合来实现特征提取模块203。在一些实施例中,特征提 取模块203是由处理器235可执行的指令集。在一些实现中,特征提取模块 203被存储在存储器237中,并且可被处理器235访问和执行。在一些实现中, 特征提取模块203适用于经由总线220与处理器235、存储器237和图像识别 应用103的其他组件进行协作和通信。

在一些实施例中,特征提取模块203接收图像,并且确定图像的特征。在 一些实施例中,特征提取模块203从对齐模块205接收感兴趣的对象的预览图 像,并且确定图像的一组特征。例如,特征提取模块203可以确定图像中识别 出的每个特征的位置、方位和图像描述符。在一些实施例中,特征提取模块 203使用角点检测算法(例如Shi-Tomasi角点检测算法、Harris和Stephens角 点检测算法等)来确定特征位置。在一些实施例中,特征提取模块203使用二 进制稳健独立基本特征(BRIEF)描述符方法来确定有效的图像特征描述符。 在一些实施例中,特征提取模块203将图像的特征集发送到对齐模块205。在 其他实施例中,特征提取模块203将图像识别为参考图像,并且在数据存储 243中存储特征集。

对齐模块205可以包括用于提供以下功能的软件和/或逻辑:从客户端设 备115接收感兴趣的对象的预览图像,以将所述预览图像与参考图像对齐;指 示用户界面模块211生成包括预览图像的用户界面;和/或将感兴趣的对象的 预览图像参考与图像的特征进行动态比较。在一些实施例中,可以使用可编程 或专门的硬件(例如现场可编程门阵列(FPGA)或专用集成电路(ASIC)) 来实现对齐模块205。在一些实施例中,可以使用由处理器235执行的硬件和 软件的组合来实现对齐模块205。在一些实施例中,对齐模块205是可由处理 器235执行的指令集。在一些实现中,对齐模块205被存储在存储器237中, 并且可被处理器235访问和执行。在一些实现中,对齐模块205适用于经由总 线220与处理器235、存储器237和图像识别应用103的其他组件进行协作和 通信。

在一些实施例中,对齐模块205连续接收由捕获设备247采样的感兴趣的 对象的预览图像,并且将预览图像发送到特征提取模块203。在其他一些实施 例中,对齐模块205指示用户界面模块211生成用于在客户端设备115的显示 器上显示预览图像的用户界面。在一些实施例中,对齐模块205可以接收用于 在客户端设备115上对齐图像的用户选择。在一些实施例中,对齐模块205从 特征提取模块203接收预览图像的特征,并且将参考图像的特征与预览图像的 特征进行动态比较。在一些实施例中,对齐模块205确定图像之间的重叠,并 且指示用于在用户界面上生成视觉区分指示符的用户界面模块211以引导客 户端设备115的移动来生成期望的重叠。在其他实施例中,对齐模块205确定 重叠是否满足预定的重叠阈值,并且将指令发送到特征提取模块203,以基于 所满足的预定的重叠阈值将预览图像设置为参考图像。

用户引导模块207可以包括用于提供下述功能的软件和/或逻辑:在一定 方向上引导客户端设备115的移动;在方位轴上引导客户端设备115的方位; 并且通过视觉区分指示符提供进度信息。在一些实施例中,可以使用可编程或 专门的硬件(例如现场可编程门阵列(FPGA)或专用集成电路(ASIC))来 实现用户引导模块207。在一些实施例中,可以使用由处理器235执行的硬件 和软件的组合来实现用户引导模块207。在一些实施例中,用户引导模块207 是由处理器235可执行的指令集。在一些实现中,用户引导模块207被存储在 存储器237中,并且可被处理器235访问和执行。在一些实现中,用户引导模 块207适用于经由总线220与处理器235、存储器237和图像识别应用103的 其他组件进行协作和通信。

在一些实施例中,用户引导模块207从客户端设备115的方位传感器245 接收陀螺仪传感器信息。在一些实施例中,用户引导模块207基于陀螺仪传感 器信息确定客户端设备115是否在方位的三个轴的一个轴上发生倾斜。在其他 一些实施例中,用户引导模块207将指令发送到用户界面模块211,以在用户 界面上生成视觉区分指示符,来引导客户端设备115的方位来消除倾斜。在一 些实施例中,用户引导模块207从客户端设备115接收针对用于接收感兴趣的 对象的图像的图像捕获的样式的选择。在一些实施例中,用户引导模块207 将指令发送到用户界面模块211,以基于图像捕获的所选择的样式生成用于客 户端设备的有向移动的视觉区分指示符。在其他一些实施例中,用户引导模块 207将指令发送到用户界面模块211,以在用户界面上生成针对感兴趣的对象 接收到的图像的马赛克预览。

拼接模块209可以包括软件和/或逻辑,以提供用于将一系列的图像拼接 为单个线性全景图像的功能。在一些实施例中,可以使用可编程或专门的硬件 (例如现场可编程门阵列(FPGA)或专用集成电路(ASIC))来实现拼接模 块209。在一些实施例中,可以使用由处理器235执行的硬件和软件的组合来 实现拼接模块209。在一些实施例中,拼接模块209是由处理器235可执行的 指令集。在一些实现中,拼接模块209被存储在存储器237中,并且可被处理 器235访问和执行。在一些实现中,拼接模块209适用于经由总线220与处理 器235、存储器237和图像识别应用103的其他组件进行协作和通信。

在一些实施例中,拼接模块209从特征提取模块203接收感兴趣的对象的 参考图像。在一些实施例中,拼接模块209接收由对齐模块205处理的图像之 间的重叠信息。在一些实施例中,在计算设备200是客户端设备115的情况下, 图像识别应用103的拼接模块209将感兴趣的对象的参考图像、重叠信息和其 他元数据信息发送到识别服务器101,以生成单个线性全景图像。在一些实施 例中,在计算设备200是识别服务器101的情况下,图像识别应用103的拼接 模块209使用感兴趣的对象的参考图像、重叠信息和其他元数据信息来生成单 个线性全景图像。在其他一些实施例中,拼接模块209接收线性全景图像,在 数据存储243中存储线性全景图像,并且指示用户界面模块211生成用于显示 线性全景图像的用户界面。

用户界面模块211可以包括用于将用户界面提供给用户的软件和/或逻辑。 在一些实施例中,可以使用可编程或专门的硬件(例如现场可编程门阵列 (FPGA)或专用集成电路(ASIC))来实现用户界面模块211。在一些实施例 中,可以使用由处理器235执行的硬件和软件的组合来实现用户界面模块211。 在一些实施例中,用户界面模块211是由处理器235可执行的指令集。在一些 实现中,用户界面模块211被存储在存储器237中,并且可被处理器235访问 和执行。在一些实现中,用户界面模块211适用于经由总线220与处理器235、 存储器237和图像识别应用103的其他组件进行协作和通信。

在一些实施例中,用户界面模块211从对齐模块205接收指令,以生成指 示用户如何移动客户端设备115以捕获接下来的图像的图形用户界面,所述接 下来的图像具有与先前捕获的图像的良好的重叠。在一些实施例中,用户界面 模块211从用户引导模块207接收指令,以生成图形用户界面,所述图形用户 界面引导用户捕获在方位轴的任何一个(例如X、Y或Z轴)上不倾斜或仅略 微倾斜的重叠图像。在其他一些实施例中,用户界面模块211将图形用户界面 数据经由通信单元241发送到客户端设备115中的应用(例如浏览器),使得 该应用将数据显示为图形用户界面。

方法

图3是说明了用于在方向的引导下捕获单个线性全景图像的感兴趣的对 象的一系列的图像的方法300的一个实施例的流程图。在302处,特征提取模 块203从客户端设备115接收感兴趣的对象的一部分的图像,用作参考图像。 例如,图像可以是货架、区域、艺术作品、路标、景区位置、外空间等的图像。 对图像进行处理,并且假定其满足作为一系列的图像中的第一个图像的标准 (位置、方位和对齐)以形成单个线性全景图像,其被识别为参考图像。在 304处,对齐模块205确定是否存在由客户端设备115正在采样预览图像。在 306处,如果预览图像正被采样,对齐模块205从客户端设备115接收感兴趣 的对象的另一个部分的预览图像。在308处,用户界面模块211生成包括在预 览图像上重叠的视觉区分指示符的用户界面,所述视觉区分指示符识别用于引 导客户端设备的移动的方向。例如,移动的方向可以是北、南、东或西向。在 310处,用户界面模块211将包括参考图像的缩略图表示的逐渐扩大的马赛克 预览添加到用户界面。在312处,对齐模块205将参考图像与预览图像进行动 态比较,以确定在参考图像和预览图像之间检测到的重叠是否满足预定的重叠 阈值。例如,预定的对齐阈值可以被设置为百分之六十。在314处,对齐模块 205检查是否满足重叠阈值。在316处,如果满足重叠阈值,则特征提取模块 203将预览图像设置为参考图像,并且方法300重复从步骤304开始的过程。 如果并不满足重叠阈值,则方法300重复从步骤304开始的过程。随着持续更 新捕获设备的显示器和用户界面上的预览图像,会接收到更多的图像,直到确 定预览图像与参考图像具有足够的重叠为止。如果客户端设备115没有正对预 览图像进行采样则在318处,拼接模块209发送感兴趣的对象的各部分的图像, 以生成单个线性全景图像。在一些实施例中,对齐模块205响应于用户输入, 并且一旦用户停止提供预览图像,对齐模块205就将指令发送到拼接模块209。 拼接模块209将感兴趣的对象的图像发送到识别服务器101以用于要生成的全 景图像。在一些实施例中,拼接模块209向用户提供是否已经捕获到了用于形 成全景图像的足够图像的反馈。在一些实施例中,用户引导模块207可以接收 与图像捕获的样式相关的输入,并且用户引导模块207可以指示用户界面模块 211生成用户界面以引导用户预览或提供下一个图像。换言之,本方法可以向 用户提供进行什么样的垂直和水平移动来提供预览图像的额外反馈。

图4A-4B是说明了用于在有向引导样式下捕获感兴趣的对象的一系列的 图像以生成单个线性全景图像的方法400的一个实施例的流程图。在402处, 用户引导模块207从客户端设备接收针对用于接收感兴趣的对象的图像的图 像捕获的蜿蜒样式的选择。在404处,特征提取模块203从客户端设备接收感 兴趣的对象的一部分的图像,并且将图像识别为参考图像。在406处,特征提 取模块203确定参考图像的特征。例如,特征提取模块203确定针对参考图像 识别出的每个特征的图像描述符。特征提取模块203使用二进制稳健独立基本 特征(BRIEF)描述符方法来确定有效的图像特征描述符。图像描述符可以是 256比特的比特掩码,其描述由特征覆盖的图像子区域。

在408处,用户引导模块207检查蜿蜒样式的横向方向是否已知。在414 处,如果蜿蜒样式的横向方向已知,则对齐模块205确定是否存在由客户端设 备115正在采样预览图像。例如,当前预览图像可以是通过持续接收在镜头上 形成并且由客户端设备115内包括的图像传感器处理的图像而在客户端设备 115的显示屏上生成的实时预览。在416处,如果预览图像正被采样,对齐模 块205从客户端设备115接收感兴趣的对象的另一个部分的预览图像。在418 处,用户界面模块211在客户端设备的显示器上生成包括预览图像的用户界面。 在420处,用户界面模块211向用户界面添加识别方向的视觉区分指示符,所 述视觉区分指示符用于根据蜿蜒样式引导客户端设备的移动以从客户端设备 115接收额外的预览图像。例如,视觉区分指示符可以是在用户界面上指向东、 西、北或南的有向箭头。在422处,对齐模块205将预览图像与参考图像的特 征进行动态比较,以确定在参考图像和预览图像之间的期望的重叠是否满足预 定的重叠阈值。例如,对齐模块205使用汉明距离(Hammingdistance)将感 兴趣的对象的预览图像和参考图像的特征的图像描述符(即,256比特的比特 掩码)进行比较,以确定重叠。在424处,对齐模块205检查是否满足重叠阈 值。在426处,如果满足重叠阈值,则特征提取模块203将预览图像设置为参 考图像,并且方法400重复从步骤406开始的过程。如果并不满足重叠阈值, 则方法400重复从步骤414开始的过程。

如果蜿蜒样式的横向方向未知,则在410处,用户引导模块207检查是否 识别出参考图像位于上一个参考图像的横向处。在412处,如果识别出参考图 像位于预览参考图像的横向处,则用户引导模块207识别出蜿蜒样式的横向方 向,以引导客户端设备115线性地跨过感兴趣的对象,并且方法400继续以执 行步骤414。例如,如果后续图像是在先前捕获的图像的左侧捕获的,则用户 引导模块207确定蜿蜒样式的横向方向是从右到左的蜿蜒样式,以线性地跨过 感兴趣的对象捕获图像。如果参考图像并非位于先前的参考图像的横向处,则 方法400继续以执行步骤414。在414处,对齐模块205确定是否存在由客户 端设备115正在采样预览图像。如果客户端设备115没有正对预览图像进行采 样,则在428处,拼接模块209发送感兴趣的对象部分的图像,以生成单个线 性全景图像。

图5A-5B是说明了用于在有向引导样式下捕获感兴趣的对象的一系列的 图像以生成单个线性全景图像的方法500的另一个实施例的流程图。在502 处,用户引导模块207从客户端设备接收针对用于接收感兴趣的对象的图像的 图像捕获的蜿蜒样式的选择。在504处,特征提取模块203从客户端设备接收 感兴趣的对象的一部分的图像,并且将图像识别为参考图像。例如,图像可以 是货架、区域、艺术作品、路标、景区位置、外空间等的图像。例如,移动的 方向可以是北、南、东或西向。在506处,特征提取模块203确定参考图像的 特征。在508处,用户引导模块207检查蜿蜒样式的横向方向是否已知。

在516处,如果蜿蜒样式的水平方向已知,则对齐模块205确定是否存在 由客户端设备115正在采样预览图像。在518处,如果预览图像正被采样,对 齐模块205从客户端设备115接收感兴趣的对象的另一个部分的预览图像。在 520处,用户界面模块211在客户端设备的显示器上生成包括预览图像和逐渐 扩大的马赛克预览的用户界面。例如,马赛克预览提供与目前为止针对感兴趣 的对象接收到的图像相关的渐进信息。在522处,用户界面模块211将参考图 像的缩略图表示添加到马赛克预览,并在马赛克预览中识别出至少一个位置, 在所述至少一个位置中,根据蜿蜒样式放置感兴趣的对象的后续图像。在524 处,对齐模块205将参考图像的特征与预览图像的特征进行动态比较,以确定 在参考图像和预览图像之间的期望的重叠是否满足预定的重叠阈值。在526 处,对齐模块205检查是否满足重叠阈值。在528处,如果满足重叠阈值,则 特征提取模块203将预览图像设置为参考图像,并且方法500重复从步骤506 开始的过程。如果并不满足重叠阈值,则方法500重复从步骤516开始的过程。

如果蜿蜒样式的横向方向未知,则在510处,用户引导模块207检查是否 识别出参考图像位于上一个参考图像的横向处。在512处,如果参考图像位于 预览参考图像的横向处,则用户引导模块207识别出蜿蜒样式的横向方向,以 引导客户端设备115线性地跨过感兴趣的对象。在514处,用户引导模块207 在用户界面上以相反的方向滑动逐渐扩大的马赛克预览,并且方法500继续以 执行步骤516。例如,如果图像捕获的蜿蜒样式的横向方向是从左到右的方向, 则马赛克预览在用户界面上滑动到左侧。如果参考图像并不是位于先前的参考 图像的横向处,则方法500继续以执行步骤516。在516处,对齐模块205确 定是否存在由客户端设备115正在采样预览图像。如果客户端设备115没有正 对预览图像进行采样,则在530处,拼接模块209发送感兴趣的对象部分的图 像,以生成单个线性全景图像。

图6A-6B是说明了将当前的预览图像与感兴趣的对象的之前捕获的图像 的重新对齐的方法600的一个实施例的流程图。在602处,特征提取模块203 从客户端设备115接收感兴趣的对象的一部分的图像。在604处,对齐模块 205确定是否需要重新对齐。例如,对齐模块205可以接收用户输入,以将客 户端设备115上的预览图像与先前捕获的图像进行重新对齐。如果不需要重新 对齐,则方法600结束。如果需要重新对齐,则在606处,特征提取模块203 将图像识别为重影图像(ghostimage),并且确定重影图像的特征。在608处, 对齐模块205确定是否存在由客户端设备115正在采样预览图像。如果没有正 对预览图像进行采样,则方法600结束。如果预览图像正被采样,则在610 处,对齐模块205从客户端设备115接收感兴趣的对象的另一个部分的预览图 像。在612处,用户界面模块211生成与重影图像重叠的用户界面作为客户端 设备115的显示器上的预览图像的上面的半透明掩膜。在614处,对齐模块 205将感兴趣的对象的预览图像与重影图像的特征进行动态比较,以确定重影 图像和预览图像之间的重新对齐。在616处,用户界面模块211将在预览图像 上重叠的视觉区分指示符添加到用户界面,所述视觉区分指示符用于引导客户 端设备115的移动以产生期望的重新对齐。在618处,用户界面模块211基于 动态比较、指示重新对齐成功的目标轮廓内部的视觉区分指示符的位置,更新 与用户界面中的预览图像的中心处的目标轮廓相关的视觉区分指示符的位置。 在620处,对齐模块205检查重新对齐是否成功。如果重新对齐成功,则在 622处,用户界面模块211更新用户界面以指示重新对齐成功。如果重新对齐 不成功,则方法600重复从步骤608开始的过程。

用户界面

在一些实施例中,对齐模块205从客户端设备115的用户接收请求,以捕 获感兴趣的对象的图像。例如,图像可以是货架、区域、艺术作品、路标、景 区位置、外空间等的图像。在一些实施例中,对齐模块205指示用户界面模块 211生成用户界面,以便在客户端设备115的显示器上包括感兴趣的对象的预 览图像。特征提取模块203接收由客户端设备115捕获的图像,并且提取图像 的特征集。如图7A的示例中所示,图形表示说明了用于捕获货架的图像的用 户界面700的实施例。例如,货架的图像捕获了零售商店处的货架的状态。图 形表示中的用户界面700包括:由四个角标记702定义的框架701,用于将客 户端设备115与图像捕获的货架对齐;位于显示中心的货架中心处的同心圆形 状的一对目标轮廓703和704;陀螺仪水平线705和处于外围的一对倾斜参考 箭头709a-709b以及711a-711b,用于指示在捕获图像之前货架的预览图像707 是否偏离中心和/或倾斜。连接倾斜参考箭头709a-709b的细直线715可以与倾 斜参考箭头709a-709b一致地横向左右移动,以指示方位的轴中的客户端设备 115的倾斜。连接倾斜参考箭头711a-711b的细直线717可以与倾斜参考箭头 711a-711b一致地上下移动,以指示方位的另一个轴中的客户端设备115的倾 斜。外部目标轮廓704可以包括一对倾斜参考箭头713a-713b,其以不同方式 提供与倾斜参考箭头709a-709b相同的功能。在另一个实施例中,如图7B中 所示,图形表示说明了用于捕获货架的图像的用户界面750的另一个实施例。 图形表示中的用户界面750是极简化的。在图7B中舍弃了图7A中的倾斜参 考箭头709a-709b。替代地使用外部目标轮廓704内部放置的倾斜参考箭头 713a-713b。与陀螺仪水平线705相结合的倾斜参考箭头709a-709b可以指示货 架的预览图像707是否偏离中心和/或倾斜。例如,倾斜参考箭头709a-709b 和陀螺仪水平线705可以根据客户端设备115绕着Z轴滚动的方向顺时针/逆 时针转动。可以接收货架的图像以用于识别,并且货架的图像可以包括感兴趣 的多个货品。例如,图像可以包括零售商店中的货架上的包装产品的图像(例 如咖啡包装、早餐燕麦盒、苏打饮料瓶等等)。包装的产品可以包括在其表面 上印刷的文本和图形信息,以将其与货架上的其他货品相区分。在一个示例中, 客户端设备115的显示器可以闪烁以指示响应于用户触拍屏幕而捕获了图像。

在一些实施例中,特征提取模块203从客户端设备115接收感兴趣对象的 一部分的图像,从图像中提取特征集,并且将特征集发送到对齐模块205。所 提取的特征集对于伸缩、转动、环境光、图像获取参数等的变化具有鲁棒性。 特征提取模块203在特征集中定位每个特征,并且确定每个特征的位置、方位 和图像描述符。位置可以是出现了每个特征的图像中的点的相对位置(例如, 所识别出的特征的位置)。在一些实施例中,特征提取模块203使用角点检测 算法(例如Shi-Tomasi角点检测算法、Harris和Stephens角点检测算法等)来 确定特征位置。在一些实施例中,特征提取模块203使用二进制稳健独立基本 特征(BRIEF)描述符方法来确定有效的图像特征描述符。特征的图像描述符 可以是256比特的比特掩码,其描述由特征覆盖的图像子区域。在一些实施例 中,特征提取模块203可以将密度的特征附近的每对256个像素对进行比较, 并且基于每个比较,特征提取模块203可以设置或清除256比特的比特掩码中 的一个比特。在一些实施例中,特征提取模块203确定所接收到的图像是否对 于图像识别是最优的,并且指示用户界面模块211生成数据,所述数据指示用 户在所拍摄的图像的一部分具有完整识别的有限信息(例如,切除掉了特征丰 富的部分)、图像过于模糊、图像具有照明伪影(例如过多的反射)等的情况 下重新拍摄图像。在一些实施例中,特征提取模块203识别由客户端设备115 捕获的图像作为参考图像,并且将参考图像的所识别出的特征的集合存储在高 速缓存中。例如,特征提取模块203处理图像,并且确定该图像是否满足作为 形成单个线性全景图像所需的一系列图像中的第一图像的标准(位置、方位和 对齐)。如果满足,则特征提取模块203将图像识别为参考图像。在其他一些 实施例中,特征提取模块203将由客户端设备115捕获的图像发送到拼接模块 209。在其他一些实施例中,特征提取模块203从对齐模块205接收感兴趣的 对象的预览图像,从预览图像中实时地提取特征集,并且将特征集发送到对齐 模块205。

为了使用一系列图像创建线性全景图像,用户可以沿着感兴趣的对象在任 何方向上移动客户端设备115,同时保持与感兴趣的对象平行,以捕获跟随第 一图像的接下来的图像。例如,携带客户端设备115的用户可以从位置的一个 点向北、南、东或西向移动到另一个点,同时保持与货架单元平行,以捕获一 系列图像中的其他图像。客户端设备115的用户无法通过保持在位置的固定点 处的稳定来捕获用于创建长货架单元的线性全景图像所需的图像。这是因为, 从位置的固定点处,用户仅垂直或水平地旋转以捕获与第一图像相连接的周围 环境图像。如果货架的图像是以这种方式捕获的,在不会在两个图像拼接到一 起的位置处的全景图像中产生奇怪的伪影的情况下,无法将图像拼接到一起。 在一些实施例中,用户引导模块207接收用户针对用于捕获一系列的图像的图 像捕获的样式的选择。用户引导模块207基于图像捕获的所选择的样式,指示 用户界面模块211经由客户端设备115向用户提供如何捕获一系列图像中的下 一个图像的引导。

在一些实施例中,图像捕获的所选择的样式可以是蜿蜒扫描样式。在蜿蜒 扫描样式中,图像捕获的顺序可以在顶部和底部之间(或左右之间)变换,同 时客户端设备115在水平方向(或垂直方向)上与感兴趣的对象平行地移动。 用户引导模块207基于蜿蜒扫描样式,指示用户界面模块211生成用于引导用 户移动客户端设备115的用户界面。例如,用户界面可以指示客户端设备115 首先向下(或向上)移动到感兴趣的对象,随后移动到感兴趣的对象的右侧(左 侧),随后向上(或向下)移动到感兴趣的对象,随后移动到感兴趣的对象的 右侧(左侧),并且再次向下(或向上)移动到感兴趣的对象,以便跟随蜿蜒 的扫描样式。特征提取模块203可以在每次移动的结束处接收由客户端设备 115捕获的感兴趣的对象的图像。

在一些实施例中,图像捕获的所选择的样式可以是光栅扫描样式。光栅扫 描样式通过沿着感兴趣的对象一次一条线地渐进移动客户端设备115,来覆盖 感兴趣的对象的图像捕获。用户引导模块207基于光栅扫描样式,指示用户界 面模块211生成用于引导用户移动客户端设备115的用户界面。例如,用户界 面可以指示客户端设备115在一条线上从左向右(或从右向左)移动到感兴趣 的对象,随后在线的结束处向下(或向上)移动到感兴趣的对象,并且在下一 条线上再次从左向右(或从右向左)开始移动到感兴趣的对象,以便跟随光栅 扫描样式。特征提取模块203可以在客户端设备115从左向右(或从右向左) 每次移动的结束处接收由客户端设备115捕获的感兴趣的对象的图像。

在其他一些实施例中,图像捕获的所选择的样式可以是回场扫描样式 (over-and-backscanpattern)。回场扫描样式通过在水平(或垂直)方向上在 感兴趣的对象的一部分之上向一端移动客户端设备115并且随后将客户端设 备115移动回来以捕获并未覆盖的感兴趣的对象的另一部分,来覆盖感兴趣的 对象的图像捕获。用户引导模块207基于回场扫描样式,指示用户界面模块 211生成用于引导用户移动客户端设备115的用户界面。例如,用户界面可以 指示客户端设备115从左向右(或从右向左)向一端移动到感兴趣的对象,随 后向下(或向上)移动到感兴趣的对象,并且从右向左(或从左向右)移动回 开始端,以便跟随回场扫描样式。特征提取模块203接收在客户端设备115从 左向右每次移动到一端的结束处、以及在客户端设备115从右向左每次移动并 回到开始端处的结束处由客户端设备115捕获的感兴趣的对象的图像。

如图8的示例中所示,图形表示800说明了针对感兴趣的对象所捕获的图 像之间重叠的一个实施例。图形表示800包括零售商店中货架单元805的第一 捕获图像801和第二捕获图像803。货架单元805存储有消费产品。图形表示 800说明了第一捕获图像801和第二捕获图像803之间的重叠807。在一些实 施例中,对齐模块205指示用户界面模块211生成用户界面,以引导客户端设 备115的移动来捕获一系列图像中的下一个图像,所述下一个图像与感兴趣的 对象的先前捕获的图像在一定程度上重叠。可以根据携带捕获设备的用户移动 客户端设备115的方向来在水平或垂直方向上计算重叠。该重叠可以是用于通 过将一系列图像中的每个单独的捕获图像拼接在一起来创建线性全景的拼接 算法所预期的图像之间的重叠的阈值量(例如大约60%)。在一些实施例中, 图像重叠阈值可以基于由识别服务器101使用的拼接算法来调谐图像重叠阈 值。例如,拼接算法可以是在开源计算机视觉(OpenCV)包中包括的拼接器 类,其中找到拼接器类的特征和支持拼接器类的描述算法可以是由下述各项组 成的组中的一项或多项:二进制鲁棒不变尺度特征关键点(BRISK)算法、快 速视网膜关键点(FREAK)算法、面向FAST和转动的BRIEF(ORB)算法 等。在一些实施例中,图像重叠阈值可以是其他百分比。在一些实施例中,图 像重叠阈值可以处于55%至65%之间的范围内。这样,客户端设备115可以 调谐用于捕获图像的可兼容的参数,并且改进拼接算法的性能。

在一些实施例中,当客户端设备115指向感兴趣的对象时,对齐模块205 连续接收由客户端设备115所显示的感兴趣的对象的一部分的当前预览图像。 当前预览图像可以是通过持续接收在镜头上形成并且由客户端设备115内包 括的图像传感器处理的图像而在客户端设备115的显示屏上生成的实时预览。 在一些实施例中,对齐模块205将正从客户端设备115连续接收的感兴趣的对 象的预览图像发送到特征提取模块203以提取图像特征。例如,特征提取模块 203确定随着客户端设备115沿着感兴趣的对象移动时的相机预览中的图像的 图像特征。

在一些实施例中,对齐模块205将感兴趣的对象的先前捕获的图像的所识 别出的特征与由客户端设备115正在显示的当前预览图像的特征进行动态比 较。对齐模块205识别出先前捕获的图像中的区别性特征,并且随后将它们有 效地匹配到当前预览图像的特征,以快速建立图像对之间的对应关系。例如, 如果变量“i”可以用于代表最新的先前捕获的图像,则图像特征集可以被表 示为“Fi”,并且因此图像流水线中的当前图像的图像特征集可以被表示为Fi+1。 序列中的第一个图像的图像特征集可以被表示为F0。在一些实施例中,对齐 模块205确定相似度函数,以将先前捕获的图像Fi与当前预览图像Fi+1进行比 较,以生成相似度测量值Si。例如,公式可以被表示为sim(Fi,Fi+1)=Si。值 Si代表先前捕获图像Fi和当前预览图像Fi+1之间的相似度的量。

在一些实施例中,对齐模块205使用图像重叠阈值作为参数沿着当前预览 图像和先前捕获的图像之间的动态特征比较,以经由客户端设备115上的用户 界面向用户提供引导和/或反馈。例如,对齐模块205使用图像重叠阈值来设 置相似度值“V”为0.6。在一些实施例中,当用户在捕获前一个图像之后在 与感兴趣的对象平行的一个方向(例如北、南、东或西)上移动客户端设备 115时,对齐模块205可以从方位传感器245接收包括客户端设备115的移动 的数据。在一些实施例中,对齐模块205基于在感兴趣的对象的先前捕获的图 像和由客户端设备115所显示的当前预览图像之间的动态特征比较,确定客户 端设备115的移动的方向。先前捕获的图像和当前预览图像之间的动态特征比 较确定了图像差别的程度。对齐模块205确定在先前捕获的图像和当前预览的 图像之间在客户端设备115的移动方向上是否存在重叠,以及当客户端设备 115在移动方向上移动时,现有的重叠是否接近预定的图像重叠阈值。对齐模 块205响应于客户端设备115的移动方向上的确定的重叠,指示用户界面模块 211生成视觉区分指示符,用于用户界面上的重叠。重叠的视觉区分指示符可 以在由客户端设备115显示的预览图像上重叠。重叠的视觉区分指示符可以在 视觉上在如下方面中的一个或多个方面不同:形状、尺寸、颜色、位置、方位 和阴影。

对齐模块205将用户界面上的重叠的视觉区分指示符的位置耦接到客户 端设备115的移动方向。例如,如果携带客户端设备115的用户从左向右移动, 则重叠的视觉区分指示符可以初始地显现在显示器的右侧上,并且基于动态特 征比较开始移动到左侧。在另一个示例中,如果携带客户端设备115的用户从 右向左移动,则重叠的视觉区分指示符可以初始地显现在显示器的左侧上,并 且基于动态特征比较开始移动到右侧。对齐模块205在客户端设备115的移动 方向上继续动态比较感兴趣的对象的先前捕获图像的所识别出的特征与当前 预览图像的特征。对齐模块205将移动方向上的动态比较数据转换为改变用户 界面上的视觉区分指示符的位置,该用户界面向用户提供如何移动客户端设备 115以实现满足预定的重叠阈值的最优重叠的瞬时反馈。例如,如果先前捕获 图像和当前预览图像之间的重叠在移动方向上对应于预定的图像重叠阈值(即 相似度值“V”=60%),则用于重叠的视觉区分指示符在用户界面上的位置发 生改变以指示已经符合这样的条件。重叠的视觉区分指示符可以移动到在客户 端设备115的显示器的中心处的预览图像上的几何形状(例如圆形、方形或多 边形)的边界目标轮廓内,以说明已经满足了最优重叠的条件。在一些实施例 中,当重叠的视觉区分指示符在范围内时,例如在几何形状的内部时,对齐模 块205使用容差值“T”以及相似度值“V”来进行计算。在一些实施例中, 对齐模块205使用容差值“T”来允许在捕获图像之前相对于重叠的视觉区分 指示符的多少的失真的比特需要处于几何形状的内部。换言之,视觉区分指示 符可以部分位于几何形状之内,部分位于几何形状之外。在可以捕获图像之前, 视觉区分指示符无需完全适配在几何形状之内。在一些实施例中,对齐模块 205指示用户界面模块211在用户界面上生成进度状态条,以指示在先前捕获 图像和当前预览图像之间出现的重叠的程度,直到满足图像重叠阈值为止。例 如,进度状态条可以示出实现重叠的递增进度。在其他实施例中,对齐模块 205响应于满足图像重叠阈值的重叠将捕获命令发送到客户端设备115以捕获 图像,从客户端设备115接收图像,并且将图像发送到特征提取模块203。

在一些实施例中,对齐模块205确定随着相似度函数的距离测量函数, 以将指令发送到用户界面模块211。例如,发送到用户界面模块211的指令可 以是驱动用户界面以显示重叠的视觉区分指示符并确定何时捕获图像的指令。 距离测量函数代表从图像F0(即S0)到图像Fi(即Si)的这样确定的所有相似度测 量值“S”的总和,并且可以被表示为dist(Si)。距离测量函数确定两个图像 F0和Fi彼此有多接近。对齐模块205确定相似度测量值Si是否在相似度“V” 的容差值“T”的范围内,使得满足条件(V-T)<dist(Si)<(V+T)。如果满足 该条件,则对齐模块205将捕获命令发送到客户端设备115以捕获图像。随着 距离测量函数dist(Si)接近位于容差值“T”的范围内,对齐模块205使用通过 距离测量函数dist(Si)产生的值来表示重叠的视觉区分指示符正在接近几何形 状以适配在用户界面上的几何形状的边界区域内。例如,这可以转换为用于重 叠的视觉区别指示符在客户端设备115的用户界面上显现得越来越不透明。

如图9的示例中所示,图形表示900说明了用于生成重叠的视觉区分指示 符的图像匹配过程的实施例。在图9中,图形表示900包括相机预览帧902, 所述相机预览帧902用于基于在移动客户端设备115的用户改变图像帧(F1到F4),并且接收客户端设备115的显示器上的预览图像。图形表示900还包 括针对每两个图像帧902进行计算的相似度测量函数904和针对目前已经接收 的图像帧902进行计算的距离测量函数906。

如图10A-10D的示例中所示,图形表示说明了当客户端设备115从左向 右方向移动时显示重叠的视觉区分指示符的用户界面的实施例。在图10A中, 图形表示说明了用户界面1000,该用户界面1000包括球1001(阴影填充的圆) 和货架的当前预览图像1005上的同心圆的一对目标轮廓1003和1003,如客 户端设备115上所显示的那样。球1001用作重叠的视觉区分指示符,并且初 始显现为透明,并且处于用户界面1000上的显示的右边缘处,这是因为随着 客户端设备115从货架的左侧向右侧移动而开始出现重叠。圆的内部目标轮廓 1003用作其中可以放置球1001的目标边界区域。在一些实施例中,球1001 和一对目标轮廓1003和1003可以被定制为任何颜色、阴影、透明性、方位、 形状、符号等。用户的目标在于通过将客户端设备115从货架的左侧向右侧移 动以便将球1001对齐并且将球1001放置在用户界面1000上的内部目标轮廓 1003内,以便捕获在显示器上正被连续预览的重叠图像。球1001在外部目标 轮廓1003之内被对齐但处于内部目标轮廓1003之外,这表明重叠良好但不足 够。球1001在内部目标轮廓1003之内被对齐表明当前预览图像1005和先前 捕获图像之间的重叠足够满足用于捕获下个图像的图像重叠阈值。在图10B 和图10C中,各个图形表示说明了更新后的用户界面1030和1060,所述更新 后的用户界面1030和1060显示球1001朝向接近内部目标轮廓1003移动并且 显现为在色彩上越来越不透明,以指示正在产生期望的重叠。在其他一些实施 例中,可以改变球1001的外观,以在视觉上指示重叠的程度。例如,球1001 改变颜色、形状、透明性、阴影、方位等。随着球1001越来越接近内部目标 轮廓1003,球1001的位置指示与获取图像重叠阈值相对应的当前预览图像 1005和先前捕获的图像之间的重叠相关联的进程。在图10D中,图形表示说 明了更新用户界面1090以显示以实体非透明的颜色在内部目标轮廓1003内中 心处的球1001。这向用户指示满足捕获图像的图像重叠阈值条件。可以通过 从其先前状态以视觉区分(例如闪烁、以不同颜色闪烁、形状上的变化(例如 三角形、五角形等)、填充的改变等)的方式示出球1001来以各种其他方式示 出满足重叠阈值。在一些实施例中,用户界面1090可以在客户端设备115上 暂短闪烁伴随有能够听得见的按快门的声音来指示已经捕获了图像。在图10D 中,用户界面1090可以被重置,并且球1001可以在图像已经被捕获之后从用 户界面1090消失,直到客户端设备115再次开始在货架的一个方向上移动为 止。

在图11A-11D的另一个示例中,图形表示说明了当客户端设备115从下 向上方向移动时显示重叠的视觉区分指示符的实施例。在图11A中,图形表 示说明了用户界面1100,该用户界面1100包括球1101和货架的当前预览图 像1105上的同心圆的一对目标轮廓1103和1104,如客户端设备115上所显示 的那样。球1101用作重叠的视觉区分指示符,并且初始显现为透明,并且处 于用户界面1100上的显示的顶部缘处,这是因为随着客户端设备115从货架 的底部向顶部移动而开始出现重叠。用户的目的是通过将客户端设备115从货 架的底部移动到顶部,对齐球1101并且将球1101放置在用户界面1100上的 内部目标轮廓1103中,以便捕获在显示器上正在预览的重叠图像。球1101在 内部目标轮廓1103之内被对齐表明当前预览图像1105和先前捕获图像之间的 重叠满足用于捕获下个图像的图像重叠阈值。在图11B和图11C中,各个图 形表示说明了更新后的用户界面1130和1160,所述更新后的用户界面1130 和1160显示球1101朝向接近内部目标轮廓1103移动并且显现为在色彩上越 来越不透明。随着球1101越来越接近内部目标轮廓1103,球1101的位置指 示与获取图像重叠阈值相对应的当前预览图像1105和先前捕获的图像之间的 重叠相关联的进程。在图11D中,图形表示说明了更新用户界面1190以显示 以实体非透明的颜色在目标轮廓1003内为中心的球1101。这向用户指示满足 捕获图像的图像重叠阈值条件。在一些实施例中,用户界面1190可以在客户 端设备115上暂短闪烁伴随有能够听得见的按快门的声音来指示已经捕获了 图像。在图11D中,用户界面1190可以重置,并且球1101可以在图像已经 被捕获之后从用户界面1190消失,直到客户端设备115再次开始在货架的一 个方向上移动为止。

在一些实施例中,特征提取模块203接收随后捕获的图像,所述随后捕获 的图像跟随感兴趣的对象的第一捕获图像,并且在图像之间没有或仅略微有倾 斜。用户引导模块207指示用户界面模块211生成用户界面,所述用户界面引 导用户捕获在方位轴的任何一个轴(例如X、Y或Z轴)上不倾斜或仅略微倾 斜的重叠图像。可以通过拼接算法来实现不倾斜或仅略微倾斜的重叠图像,以 创建高分辨率的线性全景图像,该高分辨率的线性全景图像继而可以使得实现 更好的图像识别。在一些实施例中,用户引导模块207接收陀螺仪传感器数据, 该陀螺仪传感器数据包括在方位的三个轴的任何一个轴上的客户端设备115 的倾斜。可以由在测量三个轴的任意一个轴中旋转的角度的客户端设备115内 包括的方位传感器245来生成陀螺仪传感器数据。例如,由俯仰(pitch)参数 来定义X轴上的转动的角度,由偏离(yaw)参数来定义Y轴上的转动的角度, 并且由滚动(roll)参数来定义Z轴上的转动的角度。用户引导模块207基于 陀螺仪传感器数据,确定当指向感兴趣的对象时客户端设备115是否在方位的 各个轴的一个轴上倾斜。响应于客户端设备115在方位的各个轴的一个或多个 轴上倾斜,用户引导模块207指示用户界面模块211在客户端设备115的用户 界面上生成倾斜的视觉区分指示符。用户界面上的倾斜的视觉区分指示符的位 置和/或外观可以耦接到客户端设备115的倾斜/方位,使得其在方位的三个轴 的任何一个轴上存在与客户端设备115相关联的倾斜时能够通过瞬时反馈进 行指示。在一个示例中,倾斜的视觉区分指示符可以是基于梯度的指示符,以 示出用户设备115上的用户界面的外围上的倾斜反馈。基于梯度的指示符可以 在颜色上不同,例如红色指示滚动,蓝色指示俯仰,并且白色指示偏离。在另 一个示例中,倾斜的视觉区分指示符可以是在客户端设备115上的用户界面的 中心处显示的水平线。在另一个示例中,倾斜的视觉区分指示符可以是角度偏 移指示符,以示出客户端设备115的用户界面上的绕X轴、Y轴和Z轴转动 的角度。在另一个示例中,倾斜的视觉区分指示符可以是连接在客户端设备 115上显示的用户界面的相对侧上的两个箭头点的线。连接跨用户界面的两个 箭头点的线的移动可以被配置为示出用户界面上的倾斜反馈。在另一个实施例 中,倾斜的视觉区分指示符可以是基于梯度的指示符、水平线和连接两个箭头 点的线的组合。在一些实施例中,用户引导模块207指示用户界面模块211在 用户界面上生成警告通知,以指示用户在能够捕获感兴趣的对象的图像之前首 先必须要纠正倾斜。

如图12A-12C的示例中所示,图形表示说明了当客户端设备115绕Z轴 滚动时显示重叠的视觉区分指示符的用户界面的实施例。在图12A中,图形 表示说明了用户界面1200,该用户界面1200包括在货架的当前预览图像1205 上的一对滚动参考箭头1201a-1201b、一对俯仰参考箭头1209a-1209b以及水 平线1203,如客户端设备115上所显示的那样。滚动参考箭头1201a-1201b 位于用户界面1200的顶部和底部外围部分处。通过细直线1207连接滚动参考 箭头1201a-1201b,并且滚动参考箭头1201a-1201b用作滚动的视觉区分指示 符。俯仰参考箭头1209a-1209b位于用户界面1200的左侧和右侧外围部分处。 通过细直线1211连接俯仰参考箭头1209a-1209b,并且俯仰参考箭头 1209a-1209b用作俯仰的视觉区分指示符。在图12A中,通过细直线1207连 接的滚动参考箭头1201a-1201b、通过细直线1211连接的俯仰参考箭头 1209a-1209b和水平线1203处于中间滚动位置,这是因为客户端设备115并不 朝向货架倾斜。在图12B中,图形表示说明了在客户端设备115向左滚动同 时与货架平行时的更新的用户界面1230。通过细直线1207连接的滚动参考箭 头1201a-1201b移动到用户界面1230的左侧,以指示与指向货架的客户端设 备115相关联的滚动的程度。由于客户端设备115并不俯仰,因此通过细直线 1211连接的俯仰参考箭头1209a-1209b并不改变位置。除了滚动参考箭头 1201a-1201b之外,用户界面1230还包括在用户界面1230的外围上的滚动梯 度1213a和1213b,以用作滚动的视觉区分指示符。滚动梯度1213a和1213b 指示由于滚动到左侧造成倾斜离中心有多远。水平线1203提供客户端设备115 距离中间滚动位置多远的额外信息。在图12C中,图形表示说明了在客户端 设备115向右滚动同时与货架平行时的另一个更新的用户界面1260。通过细 直线1207连接的滚动参考箭头1201a-1201b移动到用户界面1260的右侧,以 指示与指向货架的客户端设备115相关联的滚动的程度。滚动梯度 1213a-1213b再次指示由于滚动到右侧造成中心离倾斜有多远,并且水平线 1203示出了客户端设备115离中间滚动位置有多远。在一些实施例中,图12B 和图12C中的球1215可以变换为不同的黄色,以指示客户端设备115正滚动 到左侧或右侧。在一些实施例中,当存在与先前捕获图像的较好的重叠时,球 1215可以变为位于内部目标轮廓1217内的中心处。用户引导模块207指示用 户界面模块211在用户界面上生成警告通知,以指示用户在能够捕获图像之前 首先必须要纠正倾斜。在一些实施例中,在用户界面上可以不存在滚动参考箭 头1201a-1201b。可以更新图12A的图形表示中所示的用户界面1200,以显示 水平网格线(未示出)来取代滚动参考箭头1201a-1201b。可以在当前的预览 图像1205上视觉地显示水平网格线。如果在客户端设备115绕着Z轴滚动时 出现倾斜,则在用户界面中的当前预览图像上显示的水平线1203可以离开中 间滚动位置,并且根据捕获设备是向左滚动还是向右滚动来绕着中心沿着顺时 针方向或逆时针方向转动。在用户界面上用于滚动倾斜的水平线1203的位置 可以耦接到客户端设备115的移动。在用户界面上倾斜的用于滚动的水平线 1203的位置可以耦合到客户端设备115的移动。用户的目的在于,通过移动 客户端设备115,将水平线1203对齐并且放置为与网格线平行。可以进行上 述操作,以在捕获图像之前纠正滚动倾斜。

如图13A-13C的示例中所示,图形表示说明了当客户端设备115绕X轴 俯仰时显示重叠的视觉区分指示符的用户界面的实施例。在图13A中,图形 表示说明了用户界面1300,该用户界面1300包括在货架的当前预览图像1305 上的一对俯仰参考箭头1301a-1301b、以及一对滚动参考箭头1303a-1303b,如 客户端设备115上所显示的那样。俯仰参考箭头1301a-1301b位于用户界面 1300的左侧和右侧外围部分处。通过细直线1307连接俯仰参考箭头 1301a-1301b,并且俯仰参考箭头1301a-1301b可以用作俯仰的视觉区分指示符。 在图13A中,俯仰参考箭头1301a-1301b位于中间俯仰位置,这是因为客户端 设备115并不朝向货架倾斜。在图13B中,图形表示说明了在客户端设备115 向前俯仰时的更新的用户界面1330。客户端设备115的顶部接近货架的顶部, 并且朝向货架顶部的产品在当前预览图像1205上显得比较大。通过细直线 1307连接的滚动参考箭头1301a-1301b移动到用户界面1330的顶部,以指示 与指向货架的客户端设备115相关联的俯仰的程度。由于客户端设备115并不 滚动,因此通过细直线1309连接的一对滚动参考箭头1303a-1303b并不改变 位置。除了俯仰参考箭头1301a-1301b之外,用户界面1330还包括在用户界 面的外围上的俯仰梯度1311a和1311b,以用作俯仰的视觉区分指示符。俯仰 梯度1311a和1311b指示客户端设备115感测到多少俯仰。在图13C中,图形 表示说明了在客户端设备115向后俯仰时的另一个更新的用户界面1360。客 户端设备115的底部接近货架的底部,并且朝向货架底部的产品在当前预览图 像1305上显得比较大。通过细直线1307连接的滚动参考箭头1301a-1301b移 动到用户界面1360的底部,以指示与指向货架的客户端设备115相关联的俯 仰的程度。俯仰梯度1311a和1311b再次指示在进行向后俯仰时客户端设备115 感测到多少俯仰。在一些实施例中,图13B和图13C中的球1313可以变换为 不同的颜色,以指示客户端设备115正在向前或向后俯仰。

如图14A-14B的示例中所示,图形表示说明了当客户端设备115在X轴 和Z轴上倾斜时显示倾斜的视觉区分指示符的用户界面的实施例。在图14A 中,图形表示说明了在客户端设备115向前倾斜并且向左滚动同时指向货架时 的用户界面1400。连接滚动参考箭头1407a-1407b的细直线1415和连接俯仰 参考箭头1411a-1411b的细直线1417在内部目标轮廓1403之外彼此交叉以形 成交叉点1401。位于内部目标轮廓1403之外的交叉点1401的位置可以向用 户视觉指示客户端设备115在X轴上或Z轴上倾斜或者在X和Z轴两者上都 倾斜。在图14B中,图形表示说明了在客户端设备115向后倾斜并且向右滚 动同时指向货架时的另一个用户界面1450。再次位于目标轮廓1403之外的交 叉点1401可以向用户视觉指示客户端设备115在X轴上或Z轴上倾斜或者在 X和Z轴两者上都倾斜。在图14A和图14B中,包括基于梯度的指示符(例 如滚动梯度1409a-1409b、俯仰梯度1413a-1413b等)的用户界面1400和1450 的外围部分可以改变颜色以向用户视觉指示客户端设备115在一个或多个轴 上倾斜得过多了。在用户界面1400和1450的外围上,由直线1415连接的滚 动参考箭头1407a-1407b左右滑动,并且由直线1417连接的俯仰参考箭头 1411a-1411b上下滑动,上述滑动接合它们对应的在滚动(Z)轴上的滚动梯度 1409a-1409b和在俯仰(X)轴上的俯仰梯度1413a-1413b,以向用户提供关于 倾斜的瞬时反馈。

在一些实施例中,对齐模块205可以从用户接收请求来将由客户端设备 115所显示的感兴趣的对象的当前预览图像与在图像捕获样式的序列中的中断 之后先前捕获的图像的观察点进行对齐。例如,用户可以在捕获感兴趣的对象 的一部分的图像的同时进行中断,并且不得不离开场景一段时间。用户可能随 后希望返回以继续捕获感兴趣的对象的后续图像。在一些情况下,用户可能忘 记了图像捕获过程中他们被中断的位置。在捕获过道中的货架单元的图像的示 例中,关键的是在中断之前捕获最后图像大致相同的位置处重新开始图像捕获 过程。在一些实施例中,重叠和/或方向的视觉区分指示符可能不会起作用, 除非用户从与先前捕获的图像良好重叠的位置处重新开始图像捕获过程。重要 的是找到总体区域,在所述总体区域中,在重新开始图像捕获过程之前由客户 端设备115捕获感兴趣的对象的先前的图像。

在一些实施例中,特征提取模块203识别出先前捕获的图像作为重影图像 (期望将该重影图像与先前的图像重新对齐),并且将重影图像发送到对齐模 块205。对齐模块205指示用户界面模块211生成用户界面,所述用户界面将 作为重影图像的先前捕获的图像放置在正由客户端设备115显示的当前预览 图像的顶部上。例如,用户可以走到沿着感兴趣的对象的位置(该位置是用户 理解的最后图像被先前捕获的位置),并且使用在当前预览图像之上的重影图 像的重叠来开始对齐过程。重影图像显现为重叠在上一个图像之上的半透明掩 膜。对齐模块205指示用户界面模块211利用视觉区分指示符更新用户界面, 以引导客户端设备115的移动来产生期望的对齐。对齐的视觉区分指示符可以 在视觉上在如下方面中的一个或多个方面不同:形状、尺寸、颜色、位置、方 位和阴影。特征提取模块203确定随着客户端设备115沿着感兴趣的对象移动 时的相机预览中的预览图像的图像特征,并且将图像特征发送到对齐模块205。 对齐模块205将用户界面上的对齐的视觉区分指示符的位置耦接到客户端设 备115的移动。对齐模块205在客户端设备115的移动方向上动态比较感兴趣 的对象的先前捕获的图像的所识别出的特征与当前预览图像的特征。例如,先 前捕获的图像的图像特征集可以被表示为F0。为预览图像帧确定的图像特征 集可以被表示为Fi。随着客户端设备115沿着感兴趣的对象移动以与先前捕获 的图像重新对齐,特征提取模块203为每个预览图像帧生成图像特征。如果 Fi中的变量“i”等于五(即五个预览图像帧已经被捕获,其中没有计算先前 捕获的图像,第五个预览图像帧是F5),则对齐模块205确定相似度函数,以 将先前捕获的图像F0与当前的预览图像F5进行比较,以生成相似度测量值S5。 例如,相似度函数可以被表示为sim(F0,F5)=S5。该值S5表示两个图像彼此之 间的相似度,并且指示用户必须沿着感兴趣的对象移动多远才能与先前捕获的 图像重新对齐。相似度测量值S5指示与用作参考图像的先前捕获的图像F0的 比较,而非与在图像特征集F5之前的上一个图像特征集F4的比较。对齐模块 205随后将移动方向上的动态比较(即相似度函数)转换为改变用户界面上的 视觉区分指示符的位置,使得其向用户提供如何移动客户端设备115以实现与 先前捕获图像的适当重新对齐的反馈。在一些实施例中,对齐模块205从用户 界面模块211接收重新对齐成功的确认。在一些实施例中,对齐模块205指示 用户界面模块211更新用户界面以指示重新对齐成功并且将用户界面从重新 对齐模式返回到能够引导用户如何捕获一系列图像中的下个图像的捕获模式。

如图15的示例中所示,图形表示1500说明了用于生成重新对齐的视觉区 分指示符的重新对齐过程的实施例。在图15中,图形表示1500包括相机预览 帧1504,所述相机预览帧1504用于基于用户沿着感兴趣的对象移动客户端设 备115来改变图像帧(F1到F4)。图形表示1500还包括在每个预览图像帧1504 的特征和先前捕获的图像1502的特征之间计算的相似度测量函数1506。如上 所述,相似度测量函数1506代表每个预览图像帧1504与先前捕获的图像1502 之间的相似度,并且指示用户必须如何沿着感兴趣的对象移动客户端设备115 来将预览图像与先前捕获的图像1502重新对齐。

如图16A-16D的示例中所示,图形表示说明了将在客户端设备115上显 示的当前的预览图像与先前捕获的图像重新对齐的用户界面显示的实施例。在 图16A中,图形表示说明了用户界面1600,该用户界面1600包括球1601和 在货架的当前预览图像1607的顶部上出现的重影图像1605之上的同心圆的一 对目标轮廓1603和1604,如客户端设备115上所显示的那样。球1601用作 重新对齐的视觉区分指示符。内部目标轮廓1603可以显现为被修改有“X” 交叉线,以指示用户界面处于重新对齐模式。内部目标轮廓1603假定与客户 端设备115的用户选择开始对齐过程的对齐按钮1609相同的外观。内部目标 轮廓1603用作目标边界区域,在该目标边界区域中,定位重新对齐的视觉区 分指示符。用户的目的是通过移动客户端设备115,对齐并且将球1601放置 在用户界面1600上的目标轮廓1603中,以实现与重叠图像1605的对齐。在 图16B中,图形表示说明了显示随着预览图像1607显现球1601移动接近内 部目标轮廓1603的更新后的用户界面1630,以与重叠图像1605重新对齐。 在图16C中,图形表示说明了显示更新后的内部目标轮廓1603的另一个用户 界面1660,以示出重新对齐已经基本上完成,并且球1601几乎处于内部目标 轮廓1603的内部。内部目标轮廓1603返回到常规的交叉线。在图16D中, 图形表示说明了用户界面1690,所述用户界面1690被更新以显示重新对齐之 后的当前预览图像1607。由于重新对齐成功,因此图16C中的重影图像1605 不再在预览图像1607上重叠。这向用户指示用户界面1690被从重新对齐模式 切换到捕获模式,并且现在已经准备好捕获感兴趣的对象的下一个图像。

如图17A-17F的示例中所示,图形表示说明了将在客户端设备115上显示 的当前的预览图像与先前捕获的图像重新对齐的用户界面显示的另一组实施 例。在图17A中,图形表示说明了用户界面1700,所述用户界面1700包括当 球1712进入内部目标轮廓1714中时由客户端设备115捕获的货架的图像1702。 用户界面1700包括区域1704,所述区域1704用于显示目前为止由客户端设 备115已经捕获到的货架的图像的马赛克预览1706。马赛克预览1706包括空 闲的缩略图条块(thumbnailslot)1708,所述空闲的缩略图条块1708用作要 被附着到马赛克预览1706的图像1702的缩略图表示的占位符。空闲的缩略图 条块1708被标记为“4”,这是因为图像1702是由客户端设备115捕获的货架 的第四个图像。用户界面1700还指示目前为止已经捕获的货架的多个图像, 其中文本1710指示捕获了三个图像。将参照图20A-20I更详细地描述马赛克 预览及其构造的示例性实施例。在图17A中,当用户选择暂停按钮1712以暂 停捕获过程时,用户界面1700从活动捕获模式变换为重新对齐模式。在图17B 中,图形表示说明了用户界面1715,该用户界面1715包括用于在先前捕获的 图像(即图17A中的图像1702)的重影图像1719(半透明图像掩膜)上重叠 的用于重新对齐的修改后的内部目标轮廓1717。当在暂停之后用户按下重新 对齐按钮1721以继续图像捕获过程时,在客户端设备115上显示重影图像1719。 一旦实现了重新对齐并且捕获了货架的图像,用户界面1715就更新马赛克预 览1706以包括被标记为“5”的空闲的缩略图条块1723,以指示可以放置货 架的第五个图像的位置。在一些实施例中,马赛克预览1706还可以向客户端 设备115的用户提供与从货架上的何处开始重新对齐相关的视觉提醒。在图 17C中,图形表示说明了用户界面1730,该用户界面1730引导客户端设备115 的移动,以将预先捕获的图像的重影图像1719与预览图像1732重新对齐。用 户界面1730指示客户端设备115向前俯仰,并且预览图像1732在外观上与先 前捕获的图像的重影图像1719相差很大。用户界面1730在当前的预览图像 1732上重叠重影图像1719,用于在视觉上引导客户端设备115的移动。由于 客户端设备115俯仰,因此没有出现诸如球之类的视觉区分指示符。当预览图 像1732和重影图像1719开始在一定程度上彼此重新对齐时,球出现。在图 22D中,图形表示说明了显示球1747的更新的用户界面1745,所述球1747 出现在修改后的目标轮廓1717之外。球1747的外观指示由于客户端设备115 移动接近货架上的先前捕获的图像的位置,因此已经检测到先前捕获的图像的 重影图像1719和当前的预览图像1732之间的重叠/重新对齐。在图17E中, 图形表示说明了另一个用户界面1760,所述另一个用户界面1760显示了在目 标轮廓1717附近的球1747的更新的位置,以示出由于预览图像1732和重影 图像1719之间的良好重叠的发生,重新对齐基本上已经完成。在图17F中, 图形表示说明了用户界面1775,所述用户界面1775被更新以显示实现重新对 齐之后的当前预览图像1732。由于重新对齐成功,因此在更新的用户界面1775 中没有图17E中所示的重影图像1719的重叠。这向用户指示用户将客户端设 备115移动得足够近以使得球1747在图17E中位于内部目标轮廓1717之内。 由于重新对齐完成,因此现在将用户界面1775改变到捕获模式,其中切换回 到图17A中的内部目标轮廓1714,并且准备好捕获感兴趣的对象的下一个图 像。

在零售商店的情况下,捕获货架的状态的过程可能需要拍摄大量的具有适 当的重叠量的图像。例如,针对16英尺×8英尺的线性货架单元,可能需要 捕获最少18到24个图像。在捕获一系列的图像以创建线性全景图像的过程中, 用户可能忘记了移动客户端设备115来捕获后续图像的方向(例如,北、南、 东或西)。在一些情况下,用户可以完全停止在错误方向上移动客户端设备115 或在已经捕获了图像的方向上停止移动客户端设备115。例如,当用户最初不 得不沿着感兴趣的对象向南移动客户端设备115时,用户可以沿着感兴趣的对 象向东移动客户端设备115。这样的错误在创建感兴趣的对象的高分辨率的线 性全景图像上可能不是有益的,并且可能会过度增加捕获感兴趣的对象的图像 所花费的时间。在一些实施例中,用户引导模块207指示用户界面模块211生 成能够引导用户在适当方向上捕获一系列图像的用户界面单元。

在一些实施例中,用户引导模块207指示用户界面模块211生成用于提供 方向的视觉区分指示符的用户界面,以向用户指示在特定方向上移动客户端设 备115来捕获一系列图像中的后续图像。在一些实施例中,用户引导模块207 从对齐模块205接收基于动态特征比较在感兴趣的对象的先前捕获的图像和 由客户端设备115显示的当前预览图像之间是否存在重叠的确定。用户引导模 块207基于出现重叠,确定客户端设备115的移动方向。用户引导模块207指 示用户界面模块211在用户界面上生成移动方向上的方向的视觉区分指示符。 方向的视觉区分指示符可以在视觉上在如下方面中的一个或多个方面不同:形 状、尺寸、颜色、位置、方位和阴影。

在一些实施例中,用户引导模块207接收用户针对用于捕获一系列图像的 图像捕获的样式的选择。例如,图像捕获的所选择的样式可以是下述各项中的 一项:蜿蜒扫描样式、光栅扫描样式和回场扫描样式。如图18的示例中所示, 图形表示说明了图像捕获的蜿蜒扫描样式的实施例。图形表示1800包括用于 线性地跨过感兴趣的对象捕获图像的从左到右的蜿蜒样式1802和从右到左的 蜿蜒样式1804。从左到右的蜿蜒样式1802和从右向左的蜿蜒样式1804被分 别示出为从左上位置开始和从右上位置开始。在其他一些实施例中,从左到右 的蜿蜒样式1802和从右向左的蜿蜒样式1804可以分别从左下位置开始和从右 下位置开始。图像捕获的蜿蜒样式可以考虑感兴趣的对象的高度和宽度,使得 蜿蜒样式中的客户端设备115的移动可以捕获完全在一系列图像中的感兴趣 的对象。当遵从图像捕获的蜿蜒样式时,客户端设备115可以平行于感兴趣的 对象并且面向感兴趣的对象。例如,从右到左蜿蜒样式1804中的圆圈1806 中的数字指示跟随的序列以捕获一系列的图像,而箭头1808指示客户端设备 115在从右向左蜿蜒样式1804中的移动方向以捕获一系列的图像。在一些实 施例中,用户引导模块207基于图像捕获的用户选择的样式,确定客户端设备 115的移动方向以捕获一系列的图像。用户引导模块207指示用户界面模块211 基于由图像捕获的用户选择样式指明的捕获流程,在用户界面上生成方向的视 觉区分指示符。例如,用户界面模块211在用户界面的中心处生成方向的视觉 区分指示符,以指示线性地跨过感兴趣的对象捕获图像的锯齿形(zigzag)的 移动。方向的视觉区分指示符可以在用户界面的中心处自由地指向360度内的 任何方向。在用户界面上,方向的视觉区分指示符可以重叠在感兴趣的对象的 当前预览图像上。在下文中,参考图20A-20I更详细地描述示例性的实施例。

在一些实施例中,用户引导模块207指示用户界面模块211在用户界面上 生成目前为止捕获的图像的马赛克预览,用于向用户指示图像捕获进程信息。 例如,马赛克预览可以显示目前为止已经捕获的与感兴趣的对象相关的图像的 进程预览。在一些实施例中,用户引导模块207指示用户界面模块211以马赛 克预览上的轮廓突出显示位置和地点。轮廓指示可以放置感兴趣的对象的要捕 获的下一个图像的位置。在客户端设备115捕获了图像之后,轮廓可以被替换 为感兴趣的对象的缩略图图像表示。马赛克预览可以是基于捕获的图像的数量 的逐渐扩大的马赛克预览。例如,马赛克预览可以包括处于在马赛克预览中可 以放置下一个捕获的图像的位置处的每个捕获的图像的被编号的缩略图图像 和空闲的缩略图条块的被编号的轮廓。在捕获了与马赛克预览上的缩略图的位 置相对应的感兴趣的对象的图像之后,每个缩略图图像出现在马赛克预览上。 用户可以预览马赛克预览上目前为止已经捕获的图像,并且识别针对给定的零 售类别捕获的图像是否适当。

如图19的示例中所示,图形表示1900说明了使用货架单元的图像构造马 赛克预览的实施例。图形表示1900包括货架单元1904的捕获的六个单独图像 (编号为1-6)的轮廓表示1902。图形表示1900说明了捕获具有适当的重叠 (例如大约60%)的六个图像(被编号为1-6)。图形表示1900还包括以马赛 克预览1906的形式对捕获图像的重建。

在一些实施例中,用户引导模块207基于图像捕获的所选择的样式,确定 客户端设备115沿着感兴趣的对象以捕获图像的移动方向。例如,用户可以发 起用于从左上位置(或左下位置)在过道中捕获货架单元的图像的捕获会话 (capturesession),并且将客户端设备115沿着货架单元线性地向右移动以捕 获一系列图像中剩余的图像。在另一个示例中,用户可以发起用于从右上位置 (或右下位置)在过道中捕获货架单元的图像的捕获会话,并且随后将客户端 设备115沿着货架单元线性地向左移动以捕获一系列图像中剩余的图像。在上 述示例中,用户的图像捕获的所选择的样式可以是图18中描述的图像捕获的 蜿蜒样式。在一些实施例中,用户引导模块207可以确定用户选择作为沿着感 兴趣的对象移动客户端设备115的样式的图像捕获的蜿蜒样式的横向方向。在 一些实施例中,用户引导模块207可以识别所捕获的后续图像是否位于图像捕 获的蜿蜒样式的序列中上一个图像的横向处,并且确定图像捕获的蜿蜒样式的 方向。例如,用户可以从顶部捕获货架单元的第一图像,并且将客户端设备 115移动到货架单元的底部,以捕获货架的第二图像。此时,用户可以横向地 向左或向右移动客户端设备115以捕获一系列图像中的第三图像。用户引导模 块108识别所捕获的第三图像是否横向位于货架的第二图像的左侧或右侧,并 且确定在过道中沿着货架移动客户端设备115的方向。例如,如果捕获的第三 图像位于第二捕获图像的左侧,则用户引导模块207确定方向是从右到左的蜿 蜒样式,以线性地跨过货架单元来捕获图像。在另一个示例中,如果捕获的第 三图像位于第二捕获图像的右侧,则用户引导模块207确定方向是从左到右的 蜿蜒样式,以捕获图像。相应地,在一些实施例中,用户引导模块207指示用 户界面模块211基于针对图像捕获的蜿蜒样式识别出的横向方向,生成或更新 用户界面上的方向的视觉区分指示符,以捕获感兴趣的对象的后续图像。

在一些实施例中,用户引导模块207指示用户界面模块211更新所捕获的 图像的马赛克预览,以指示沿着感兴趣的对象移动客户端设备115的方向。例 如,马赛克预览可以被推移到用户界面的左侧,以指示客户端设备115遵从于 图像捕获的从左到右的蜿蜒样式。在另一个示例中,马赛克预览可以被推移到 用户界面的右侧,以指示客户端设备115遵从于图像捕获的从右到左的蜿蜒样 式。

如图20A-20I的示例中所示,图形表示说明了显示客户端设备115的移动 方向的视觉区分指示符的用户界面的实施例。

在图20A中,图形表示说明了用户界面2000,该用户界面1100包括货架 单元的当前预览图像2006上重叠的同心圆的一对目标轮廓2002和2004,如 客户端设备115上所显示的那样。用户界面2000还包括区域2008,所述区域 2008用于显示当前预览图像2006之下的捕获的图像的马赛克预览2010。马赛 克预览2010可以基于向其添加的货架单元的所捕获的图像渐进地增长。根据 客户端设备115沿着货架单元的移动是从右到左还是从左到右,在区域2008 中包括的马赛克预览2010可以被推移到区域2008的右侧或区域2008的左侧。 区域2008中(示出为空闲的)马赛克预览2010包括空闲的缩略图图像条块的 被标记为“1”的轮廓,当客户端设备115捕获了货架单元的第一图像时,该 空闲的缩略图图像条块可以被替换为货架单元的第一图像。在图20B中,图 形表示说明了包括箭头2017的更新后的用户界面2015,所述箭头2017恰恰 位于在内部目标轮廓2002之外,以用作方向的视觉区分指示符。箭头2017 绕着内部目标轮廓2002环转并且指向360度中的任何方向。箭头2017可以被 定制为任何颜色、形状、阴影、尺寸、符号等。用户界面2015还包括用作重 叠的视觉区分指示符的球2019。箭头2017在用户界面2015上向下指向,以 向用户指示向下移动客户端设备115来捕获货架单元的下一个图像。区域2008 中包括的马赛克预览2010现在包括第二图像的被标记为“2”的轮廓2021, 以在由轮廓2021示出的位置处适配到马赛克预览2010之内。图20A中的马 赛克预览2010的被标记为“1”的轮廓在图20B中不再可见,这是因为在马 赛克预览2010中货架单元的第一图像的缩略图表示已经替换了被标记为“1” 的轮廓。与箭头2017相关联地,马赛克预览2010上的轮廓2021的位置还用 作视觉地指示沿着货架移动客户端设备以捕获第二图像的位置。可以通过向下 移动客户端设备115来捕获第二图像,以产生与第一图像的较好的重叠。当球 2019通过外部目标轮廓2004时,箭头2017消失,这是因为不再需要其指示 方向。当球2019被对齐并且被放置在内部目标轮廓2002之内时,可以捕获第 二图像。在区域2008内包括的马赛克预览2010中,捕获的第二图像的缩略图 可以替换被标记为“2”的轮廓2021。当用户按下撤销按钮2023时,撤销按 钮2023可以使得用户回到货架并且能够在需要时重新拍摄第二图像。在图20C 中,图形表示说明了包括示例性的两个箭头的更新后的用户界面2030,所述 两个箭头为右箭头2032和左箭头2034,以说明用户可以采用以捕获一系列图 像中的下一个图像的两个可能的路径。在一些实施例中,用户界面2030可以 一次显示右箭头2032或左箭头2034。用户界面2030中的区域2008内包括的 马赛克预览2010现在包括两个轮廓:被标记为“3a”的左轮廓2036和被标记 为“3b”的右轮廓2038,用于向用户指示可以捕获处于上一个图像的左侧或 右侧的下一个图像。假定用户将要移动到右侧,随着用户开始将客户端设备 115移动到右侧,用户界面2030可以被更新来在用户界面的右侧上显示右箭 头2032和球2019。当球2019被对齐并且被放置在内部目标轮廓2002之内时, 可以捕获第三图像。在区域2008内包括的马赛克预览2010中,捕获的第三图 像的缩略图可以替换被标记为“3b”的轮廓2038。在一些实施例中,用户引 导模块207响应于捕获到的第三图像位于第二图像的横向处,确定客户端设备 115在过道中沿着货架的移动方向。例如,捕获的第三图像位于第二捕获图像 的右侧,则用户引导模块207确定客户端设备115的移动方向是从左到右的蜿 蜒样式,以捕获图像。在一些实施例中,用户引导模块207指示用户界面模块 211向用户呈现用户界面,并且请求用户指示从感兴趣的对象的哪一侧(例如 过道)开始图像捕获过程。用户引导模块207基于用户输入,确定客户端设备 115的移动方向。

在图20D中,图形表示说明了更新后的用户界面2045,所述更新后的用 户界面2045包括上箭头2047,用于向用户指示向上移动客户端设备115以捕 获货架单元的下一个图像。用户界面2045包括在顶部出现的球2019。区域2008 中包括的马赛克预览2010现在包括第四图像的被标记为“4”的轮廓2049, 以在由轮廓2049示出的位置处适配到马赛克预览2010之内。可以通过向上移 动客户端设备115来捕获第四图像,并且当球2019被对齐并且被放置在内部 目标轮廓2002之内时。区域2008中的马赛克预览2010被一直推动到区域2008 的左侧,以在视觉上指示客户端设备115的移动方向是从货架单元的左侧到右 侧。在图20E中,图形表示说明了更新后的用户界面2060,所述更新后的用 户界面2060包括右箭头2062,用于向用户指示向右移动客户端设备115以捕 获货架单元的第五图像。类似地,在图20F中,图形表示说明了更新后的用户 界面2075,所述更新后的用户界面2075包括下箭头2077,用于向用户指示向 下移动客户端设备115以捕获货架单元的第六图像。在图20G-20I中,图形表 示说明了基于用户选择将客户端设备115移动到图20C中的左侧来交替用户 界面。在图20G-20I中,区域2008中的马赛克预览2010被一直推动到区域 2008的右侧,以在视觉上指示客户端设备115的移动方向是从货架单元的右 侧到左侧。

如图21的示例中所示,图形表示说明了显示捕获设备的移动方向的视觉 区分指示符的用户界面2100的另一个实施例。在图21中,图形表示说明了包 括箭头2104的用户界面2100,所述箭头2014处于外部目标轮廓2102的边界 之外,以用作方向的视觉区分指示符。箭头2104绕着外部目标轮廓2102环转 并且指向360度中的任何方向。

在一些实施例中,拼接模块209从特征提取模块203接收图像,并且将捕 获的图像集以及重叠信息从客户端设备115发送到识别服务器101以拼接单个 线性全景图像。在一些实施例中,拼接模块209将捕获的图像集中的每个单独 图像的提取的特征与在数据存储243中存储的那些特征进行比较以进行识别。 拼接模块209例如识别单个图像中的产品,并且使用这样的信息以及重叠信息, 以将捕获的图像集拼接为单个线性全景图像。如图22A-22B的示例中所示, 图形表示说明了用于以马赛克形式预览所捕获的图像集的用户界面的实施例。 在图22A中,图形表示说明了显示马赛克2201的图形界面2200,该马赛克 2201预览目前已经被捕获的货架的所有图像的集合,并且被使用当捕获图像 时获取的图像特征和重叠信息拼接为单个全景图像。例如,用户界面2200中 所示的图像的重叠可以大致相同于百分之六十的重叠阈值参数。用户界面 2200还包括滑块(tab)2203,用户可以滑动该滑块2203以观看每个单独捕获 的图像的缩略图图像的突出显示。在图22B中,图形表示说明了用户界面2250, 该用户界面2250响应于用户滑动滑块2203而突出显示每个单独捕获的图像的 缩略图图像。例如,用户可以触拍突出显示的图像2205,从而以更大的预览 用户界面观看图像。在一些实施例中,拼接模块209根据线性全景图像确定包 括与货架的状态相关的信息的相关分析数据。例如,拼接模块209可以根据线 性全景图像识别出产品缺货、未知产品等。在另一个示例中,拼接模块209 可以使用线全景图像确定表示货架图遵从度。拼接模块209可以将全景图像和 相关联的元数据存储在数据存储243中。拼接模块209还可以指示用户界面模 块211在客户端设备115的显示器上提供指令,以请求用户采取正确的商店中 的行为。例如,正确的行为可以是遵从于表示货架图而在货架上布置产品。

已经描述了用于捕获一系列的图像来创建线性全景图像的系统和方法。在 上述方法中,出于解释的目的,阐述了许多具体细节以便提供对上述介绍的技 术的彻底理解。但应当理解的是,对于本领域技术人员而言,可以在没有这些 具体细节的情况下实现本申请中的技术。在其他示例中,以框图形式示出了结 构和设备,以便避免对说明书造成模糊并便于理解。例如,在上文中主要参照 软件和特定硬件在一个实施例中描述了技术。然而,本发明可以适用于任何类 型的计算系统,所述计算系统能够接收数据和命令,并且呈现信息作为提供服 务的任何外围设备的一部分。

在本说明书中对“一个实施例”或“实施例”的引用表示与实施例相关联 而描述的特定的特征、结构或特性被包括在至少一个实施例中。本说明书中各 处出现的词语“在一个实施例中”不一定都指示相同的实施例。

以对计算机存储器内的数据比特进行从操作的算法和符号表示的形式呈 现了以上描述的详细说明中的一部分。在一些情况下,这些算法描述和表示由 数据处理技术领域的技术人员使用,用于将他们工作的实质传递给本领域中的 其他技术人员。这样的算法通常被构思为能够得到期望的结果的自身一致的步 骤的序列。这些步骤需要针对物理量的物理操作。尽管并非必要,但这些量一 般采用能够被存储、传输、组合、比较或进行其他操作的电或磁信号的形式。 已经证实了在一些情况下主要出于公共使用的原因以比特、值、单元、符号、 字符、词语或数字等参照这些信号是有益的。

但应当理解,所有这些和类似词语将关联于适当的物理量,并且仅是被应 用于这些量的方便标签。除非在以下论述中另有明确说明,否则应当理解在说 明书中使用诸如“处理”、“计算”、“算术”、“确定”或“显示”之类的词语进 行的论述是指计算机系统或类似的电子计算设备的动作或处理,所述计算机系 统或类似的电子计算设备操作并将被表示为计算机系统的寄存器和存储器中 的物理(电子)量的数据转换为被类似表示为计算机系统的存储器或寄存器或 其他这样的信息存储、传输或显示设备中的物理量的其他数据。

本技术还涉及用于执行本文中所述的操作的装置。可以为了所需的目的专 门构造该装置,或者其可以包括被选择性地激活的通用计算机或通过在计算机 中存储的计算机程序被重新配置。这样的计算机程序可以被存储在非易失性计 算机可读存储介质中,例如但不限于任何类型的盘片(包括软盘、光盘、 CD-ROM和磁盘)、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、 EEPROM、磁或光卡、包括具有非易失性存储器的USB密钥的闪速存储器或 适合于存储电子指令的任何类型的介质,上述存储介质均耦接到计算机系统总 线。

一些实施例可以采用完全硬件实施例的形式、完全软件实施例的形式或包 括硬件和软件单元两者的实施例的形式。以软件实现实施例,所述软件包括但 不限于固件、驻留软件、微代码等。

此外,一些实施例可以采用从计算机可使用或计算机可读介质可访问的计 算机程序产品的形式,所述介质提供程序代码,以供由计算机或任何指令执行 系统使用或与计算机或任何指令执行系统相关联。出于本说明的目的,计算机 可使用或计算机可读介质可以是能够包含、存储、通信、传播或传输程序的任 何装置,所述程序由指令执行系统、装置或设备使用或与指令执行系统、装置 或设备相关联地使用。

适用于存储和/或执行程序代码的数据处理系统可以包括通过系统总线与 存储器单元直接或间接耦接的至少一个处理器。处理器单元包括在程序代码实 际执行期间采用的本地存储器、大容量存储器或高速缓存存储器,所述高速缓 存存储器提供至少一些程序代码的临时存储,以便减少在执行期间必须从大容 量存储器获取代码的次数。

输入/输出(I/O)设备(包括但不限于键盘、显示器、指向设备等)可以 被直接或通过中间I/O控制器耦接到系统。

网络适配器还可以耦接到系统,以使得数据处理系统能够通过中间私有或 公共网络耦接到其他数据处理系统或远程打印机或存储设备。调制解调器、线 缆调制解调器和以太网卡仅仅是当前可用类型的网络适配器中的一些。

最后,本文中出现的算法和显示并不内在地涉及任何特定的计算机或其他 装置。可用根据本文中的技术与程序一起使用各种通用系统,或可以证明便捷 地构件更专门的装置来执行所需的方法步骤。从以上的描述中可以看出各种这 些系统所需的结构。此外,并不参照任何特定的编程语言来描述上述技术。应 当理解,可以使用各种编程语言来实现在本文中描述的各个实施例的教诲。

出于说明和描述的目的已经呈现了实施例的以上描述。其并不意在是穷尽 的或将说明书限制到所公开的精确形式。根据上述教诲可以进行许多修改和变 更。并非由详细的说明书、而是由本申请的权利要求来显示实施例的范围。如 本领域技术人员所熟悉的那样,实施例可以被体现为其他具体形式,而不偏离 其精神和实质特征。同样,模型、例程、特征、属性、方法或其他方面的特定 名称和划分并不是必要或重要的,并且实现说明或其特征的机构可以具有不同 的名称、划分和/或格式。此外,如对于本领域一般技术人员而言显而易见的, 本说明书的模型、例程、特征、属性、方法或其他方面可以被实现为软件、硬 件、固件或这三者的任意组合。而且,在本说明书的组件(其示例是模块)被 实现为软件的情况下,组件可以被实现为单独的程序、大型程序的一部分、多 个分离的程序、静态或动态的链接库、内核可加载模块、设备驱动器,和/或 如计算机编程领域的一般技术人员现在或在未来以每种方式或以任何其他方 式已知的那样。此外,说明书并不被限制为任何特定编程语言的实施例,或并 不被限制为任何特定的操作系统或环境。相应地,本公开意在是说明性的,而 非限制说明的范围,其在所附权利要求中进行限制。

本申请基于并要求于2015年1月19日提交的美国临时专利申请No. 62/105,189、于2015年3月3日提交的美国临时专利申请No.62/127,750以及 于2015年7月3日提交的美国专利申请No.14/791,376的优先权,上述申请 的全部内容通过引用方式并入到本文中。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号