在增强现实中通过动态建模来进行鲁棒对象识别 相关申请的交叉引用
本申请要求于 2010 年 3 月 10 日提交的题为 “ROBUST OBJECT RECOGNITION BY DYNAMIC MODELING IN AUGMENTED REALITY” 的美国专利申请序号 No.12/720,858 的优先 权。为了所有的目的, 将该专利申请的公开内容以引用的方式并入本文中。
背景技术
除非本文中另行指示, 否则在本节中描述的材料对于本申请的权利要求不是现有 技术, 而且并不通过将其包括在本节中而认可其是现有技术。
增强现实 (AR) 指代具有通过虚拟 ( 一般是计算机产生的 ) 影像增强的元素的物 理 ( 真实 ) 世界环境, 从而创建了混合现实。传统上, 该增强是实时的且在环境因素的上下 文中, 比如体育赛事、 军事演习、 游戏等等。 AR 技术通过添加对象识别和图像产生, 使得与个 人周围的真实世界相关的信息能够变为互动的且可数字化使用。 可以存储并获取与环境和 对象相关的人工信息, 作为与实际世界视图层分离的信息层。 本公开意识到 AR 系统存在若干限制。 对象识别是 AR 的主要组成部分, 且在对象识 别中通常使用基于外观的方案。基于外观的对象识别方案可以处理以下各项的组合效果 : 形状、 反射比属性、 场景中的姿态、 照明条件、 以及可比较效果。此外, 可以通过与传统形状 表示不同的自动学习阶段, 获取基于外观的表示。 然而, 基于外观的识别技术依然存在各种 挑战, 因为其依赖于直接的基于外观的匹配, 且不能成功地处理遮挡 (occlusion)、 异常数 据 (outlier)、 以及变化的背景。换言之, 基于外观的方案不是鲁棒的, 其中, 术语 “鲁棒” 指 代: 在存在各种类型的噪声的情况下结果依然保持稳定, 且可以容忍异常数据的特定部分。
发明内容
以下发明内容仅是说明性的, 且不意在以任何方式加以限制。除了上述说明性方 面、 实施例和特征之外, 通过参照附图以及以下详细描述, 其他方面、 实施例和特征将变得 显而易见。
本公开总体上描述了一种用于在增强现实 (AR) 系统中执行对象识别的方法。所 述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 将对象的二维图像转换为 图像域表示。 所述用于在增强现实 (AR) 系统中执行对象识别的方法还可以包括 : 基于所述 图像域表示的节点之间的链接, 定义所述图像域中的属性图, 以及定义模型域中的另一属 性图。 所述用于在增强现实 (AR) 系统中执行对象识别的方法还可以包括 : 通过识别并激活 属性图的对应节点之间的链接, 匹配所述图像域中的属性图和所述模型域中的属性图。
本公开还描述了一种用于在增强现实 (AR) 系统中执行对象识别的装置。所述用 于在增强现实 (AR) 系统中执行对象识别的装置可以包括 : 存储器, 适于存储图像数据和图 数据 ; 以及第一处理单元, 适于执行动态建模模块, 其中, 所述动态建模模块可以适于 : 将 二维 (2D) 图像从存储的图像数据变换为图像域表示, 所述图像域表示包括链接节点的 2D 数组, 且每个节点对图像域中的至少一个区别特征进行编码, 确定表示所述图像域中的每个节点的所述至少一个特征的活动向量的顶点标签, 确定表示所述图像域的节点之间的连 通性的边标签, 以及基于所述顶点标签和 / 或所述边标签中的一个或更多个来定义模型域 中的属性图, 所述属性图被存储在所述存储器中作为所述图数据的一部分。所述用于在增 强现实 (AR) 系统中执行对象识别的装置还可以包括 : 第二处理单元, 适于执行图匹配模 块, 其中, 所述图匹配模块适于识别并激活所述图像域中的节点和所述模型域中的对应节 点之间的链接, 以及减小具有类似特征的节点之间的连接的数目。
本公开还描述了一种计算机可读存储介质, 具有存储于其上的用于在增强现实 (AR) 系统中执行对象识别的指令。所述指令可以包括 : 将对象的二维图像转换为包括多个 链接节点在内的图像域表示, 每个节点包括特征检测器的集合。 所述指令还可以包括 : 通过 向所述二维图像的每个像素应用所述特征检测器, 确定表示特征检测器的活动向量的顶点 标签。 所述指令还可以包括 : 通过检测每个节点之间的链接, 确定表示所述节点之间的连通 性的边标签。 所述指令还可以包括 : 基于所述顶点标签和所述边标签, 产生所述图像域中的 属性图, 以及定义模型域中的属性图, 其中, 所述模型域中的属性图可以是所述图像域中的 属性图的理想化副本。 所述指令还可以包括 : 基于属性图的顶点标签和边标签的匹配, 确定 所述图像域中的属性图和所述模型域中的属性图之间的连接, 以及将所述连接简化为所述 图像域和所述模型域之间的拓扑保留映射。
本公开还描述了一种用于在增强现实 (AR) 系统中执行对象识别的系统。所述用 于在增强现实 (AR) 系统中执行对象识别的系统可以包括 : 至少一个传感器, 适于捕捉实际 场景的二维 (2D) 图像 ; 以及图像处理服务器, 适于将所述 2D 图像转换为图像域表示, 所述 图像域表示包括图像域中的节点的 2D 数组, 每个节点包括特征检测器的集合。所述用于在 增强现实 (AR) 系统中执行对象识别的系统还可以包括 : 现实服务器, 适于确定表示所述图 像域中每个节点的至少一个特征的活动向量的顶点标签, 确定表示所述图像域的节点之间 的连通性的边标签, 基于所述顶点标签和所述边标签定义所述图像域中的属性图以及模型 域中的另一属性图, 识别并激活所述图像域中的节点和所述模型域中的对应节点之间的链 接, 以及减少具有类似特征的节点之间的连接的数目。所述用于在增强现实 (AR) 系统中执 行对象识别的系统还可以包括 : 图像产生服务器, 适于通过将所述 2D 图像与基于在所述图 像域中的属性图和在所述图像域中的另一属性图之间的已减少的连接所呈现的虚拟图像 重叠, 来产生增强场景。 附图说明 根据与附图结合的以下描述和所附权利要求, 本公开的前述和其他特征将变得更 加完全地明显。请理解这些附图仅示出了根据本公开的若干实施例, 且因此不应被视为对 其范围进行了限制, 将通过使用附图并利用附加特征和细节来描述本公开, 在附图中 :
图 1 示出了示例增强现实 (AR) 系统 ;
图 2 示出了采用动态建模和图匹配的示例 AR 系统的框图 ;
图 3A 示出了在示例动态建模子系统中的示例过程的框图 ;
图 3B 示出了在示例图匹配子系统中的操作的图 ;
图 3C 示出了在示例图选择子系统中的操作的图 ;
图 4 示出了在采用动态建模和图匹配的系统中如何将输入图像表示为属性图 ;
图 5 示出了通用计算设备, 其可以用于实现 AR 系统中的动态建模和图匹配 ;
图 6 是示出了可以由诸如图 5 中设备 500 之类的计算设备来执行的示例方法的流 程图 ; 以及
图 7 示出了示例计算机程序产品的框图, 其全部根据本文描述的至少一些实施例 来布置。 具体实施方式
在以下详细说明中, 参考了作为详细说明的一部分的附图。 在附图中, 除非上下文 另行指明, 否则类似符号通常表示类似部件。 具体实施方式部分、 附图和权利要求书中记载 的示例性实施例并不是限制性的。在不脱离在此所呈现主题的精神或范围的情况下, 可以 利用其他实施例, 且可以进行其他改变。 应当理解, 在此一般性记载以及附图中图示的本公 开的各方案可以按照在此明确公开的多种不同配置来设置、 替换、 组合、 分割和设计。
本公开大体上涉及与在 AR 系统中的基于动态建模和图匹配的鲁棒对象识别相关 的方法、 装置、 系统、 设备和 / 或计算机程序产品等。
简而言之, 基于动态建模的鲁棒对象识别方案采用了蜂窝区域的精细尺度时间结 构中的相关, 以将这些区域分组为更高阶的实体。 该实体表示丰富的结构, 且可以用于对高 级对象编码。可以将对象识别格式化为弹性图匹配。 图 1 示出了示例增强现实 (AR) 系统 100, 其中, 可以根据本公开来实现一些实施 例。AR 采用了将计算机产生的影像应用到实况视频流中, 以扩展真实世界呈现。AR 系统一 般包括 : 受控环境, 该受控环境包含一定数目的传感器和致动器 ; 一个或多个计算设备, 用 于处理实际影像和计算机产生的影像 ; 以及可视化系统, 比如头戴式显示器、 虚拟视网膜显 示器、 监视器或类似的常规显示器以及可比较设备。
AR 系统 100 包括被配置为捕捉实际场景 ( 对象 )102 的实况图像的传感器 104。 传感器 104 可以是数字相机、 网络摄像头和 / 或可以提供模拟或数字图像作为捕捉图像的 类似图像捕捉设备。可以由传感器 104 向图像处理子系统 106 提供捕捉图像, 图像处理子 系统 106 可以适于执行将模拟图像数字化为数字图像, 接收数字图像和 / 或处理数字图像。 图像处理子系统 106 提供的处理可以包括 : 确定特征点在图像中的位置、 计算仿射投影、 跟 踪边缘、 滤波和 / 或类似操作。图像处理子系统 106 还可以被配置为向现实引擎 110 提供 投影信息, 比如上述操作的结果。现实引擎 110 可以适于执行图形处理, 以呈现基于捕捉图 像的场景。可以由现实引擎 110 来呈现虚拟对象, 现实引擎 110 可以被布置为采用下面更 详细讨论的动态建模和图匹配。
图像产生器 108 可以适于 : 从传感器 104 接收参考图像, 从现实引擎 110 接收虚 拟对象, 以及将捕捉到的实际场景图像与虚拟对象重叠, 以产生增强场景。 在一个示例实现 中, 可以通过亮度键控 (luminance keying) 来执行虚拟和实际场景图像的融合, 其中, 虚拟 图像是键输入 (key input), 且实际场景图像是参考输入。在该实现中, 实际场景图像可以 提供针对亮度键的背景信号, 且还作为键控器 (keyer)( 图像产生器 ) 的同步信号。显示器 112 是可以用于产生由用户观看的增强场景的一个示例可视化机制。 如前所述, 其他类型的 显示设备可以用于向用户提供增强场景 114 的可视化。
可以将图像处理子系统 106、 现实引擎 110、 以及图像产生器 108 实现为不同的应
用、 集成应用、 集中式服务、 或在一个或多个计算设备上的分布式服务。一个或多个计算设 备可以是不同种类的或相同种类的, 且可以被实现为通用计算设备或专用计算设备, 其可 以包括独立的计算机、 联网的计算机系统、 通用处理单元 ( 例如, 微处理器、 微控制器、 数字 信号处理器或 DSP 等等 )、 或特殊用途处理单元。如果在不同的计算设备上执行, AR 系统 100 的各种组件可以被配置为通过一个或多个网络彼此通信。
网络可以包括以下各项的任何拓扑结构 : 服务器、 客户端、 交换机、 路由器、 调制解 调器、 互联网服务提供商、 以及任何恰当的通信介质 ( 例如, 有线或无线通信 )。 根据实施例 的系统可以具有静态或动态网络拓扑结构。 网络可以包括安全网络 ( 比如企业网络 ( 例如, LAN、 WAN 或 WLAN))、 不安全网络 ( 比如无线开放式网络 ( 例如, IEEE802.11 无线网络 ))、 或 全球网络 ( 例如, 互联网 )。网络还可以包括适于在一起工作的多个不同网络。作为示例而 非限制, 网络可以包括无线介质, 比如声、 RF、 红外和其他无线介质。
图 2 示出了根据本文所述的至少一些实施例的采用动态建模和图匹配的示例 AR 系统的框图 200。 特别地, 为了探查、 注册以及操作等目的, 在例如机器视觉行业中广泛使用 对象识别。然而, 用于对象识别的常规系统通常依赖于基于相关的模板匹配。本公开识别 出并意识到, 尽管这些常规系统对于对象姿态和亮度严格受控的特定工程环境可能是有效 的, 当对象旋转、 缩放、 亮度以及三维姿态允许改变时, 模板匹配在计算方面可能变得非常 繁重, 且当处理部分可见性以及大的模型数据库时, 情况更为严重。 根据本公开的至少一些实施例的基于动态建模的系统可以利用基于语法链接结 构的数据格式的优点。更精确地, 可以在图像域中将图像表示为属性图。从而, 图像域包含 节点的二维数组。在特定位置处的每个节点可以包括一定数目的不同特征。示例特征类型 可以包括以下一项或多项 : 局部光强度、 反射比属性、 场景中的姿态、 遮挡和 / 或背景变化。 然而, 还可以使用通过滤波操作所导出的更复杂的特征类型。可以将图像域中的节点之间 的关系称为激励连接 (excitatory connection)。 在 2 个节点之间的激励连接是加权连接, 其中, 权重可以是正数 ( 即, 引起系统激励或系统中的正信号 )。 在一些示例实现中, 可以连 接相邻节点。在其他实现中, 在任意数目节点之间的复杂连接可以存在。根据动态模型, 可 以由图像域中会受到对象影响的子图来表示特定对象。
模型域可以是图像域中的属性图 ( 即, 子图的理想化副本 ) 的合集。从而, 激励连 接可以存在于图像域和模型域之间。这些激励连接可以保留某些特征。例如, 如果 2 个节 点存在, 1 个在图像域中, 且 1 个在模型域中, 当它们属于对应的特征类型时, 它们之间可以 具有连接。 使用这种结构, 可以将对象识别实现为图匹配的过程 : 可以将对对象进行编码的 模型域中的属性图进行局部失真, 以正确地反映变形和改变。
在示例图匹配中, 当在图像域和模型域的多个节点之间存在近似邻居保留和特征 类型保留映射时, 可以将 2 个图视为近似相同。可以根据一些实施例, 通过对图像域的子图 中的节点进行分组和选择性激活来实现图匹配。可以在不参考模型域的情况下, 仅通过将 具有类似特征向量的节点绑定在一起, 来部分地实现图匹配。 因此, 在与一个对象相对应的 图像部分中的节点趋向于同步它们的行动, 而在不同图像段之间的节点趋向于不同步以及 打破它们的动态链接。接下来, 可以在模型域中识别并激活子图中的节点和链接 ( 即, 从用 于连接模式的结合存储器 (associative memory) 中获取的连接模式 )。 在对模型域中的链 接的识别和激活之后, 可以将图像域和模型域中的具有类似特征的节点之间的连接 ( 多对
多 ) 化简为相容 ( 即, 保留拓扑结构 ) 的一对一映射。应当注意到, 上述操作不需要顺序执 行。 实际上, 根据实施例的系统可以用交织的方式来执行这些动作, 因为每个操作可以需要 其它操作的部分结果。
返回图 2, 框图 200 示出了可以提供给根据所述实施例中至少一个实施例的 AR 系 统的动态建模块 226 的三维 (3D) 对象 222 的二维 (2D) 图像 224。动态建模块 226 可以适 于执行图像域变换 ( 比如滤波 ), 可以确定顶点和边属性, 以及可以向图匹配块 228 提供属 性图像域图 ( 具有顶点标签和边标签 )。 如前所述, 图匹配块 228 可以适于识别并激活子图 的节点之间的链接, 识别并激活模型域中的链接, 以及将连接化简至一对一映射。 可以将作 为结果的模式 230 提供给任何消费应用 232, 比如呈现引擎。
图 3A 示出了根据本文所述至少一些实施例来布置的示例动态建模子系统 326 中 的示例过程的框图 300。根据一些实施例的基于动态建模的对象识别系统可以包括在 2 个 子系统中执行的过程 : 动态建模子系统和图匹配子系统。 如图 300 所示, 可以在动态建模子 系统 326 中, 通过以下步骤来完成图像表示 : 应用动态结构以对 2D 灰阶数字图像进行建模, 以及提取图模型 (364、 366) 作为结果。 使用提取的图模型 364 和 366, 可以对输入图应用图 匹配算法, 以从数据库中搜索匹配图, 从而如下面结合图 3B 更详细讨论的分配类标签。 可以将动态建模子系统 326 实现为硬件、 软件、 或硬件和软件的组合。例如, 通用 或专用视频处理器可以被配置为执行下述操作。 示例动态建模子系统 326 适于接收 2D 图像 序列作为输入 340。根据实施例使用动态模型来进行对象识别的目标是找到用于对与图像 域中的图的属性和链接有关的信息进行编码的数据格式, 以及将该信息转移至模型域。对 图像进行预处理可以涉及估计图像域中每个神经元 (neuron) 的实际属性值。这可以通过 对与每个神经元相关的波动图像的集合 ( 例如, 来自视频的图像序列 ) 进行时间求平均来 完成。可以采用时间相关的形式对神经元之间的绑定进行编码, 时间相关扮演了针对信号 传输的联合权重 (synaptic weight) 的角色。
作为第一步骤, 可以处理数字图像 340( 例如, 从视频中捕捉到的 ) 或静态图像的 序列, 以在步骤 342 处产生图表示 ( 即, 图属性向量 )。下面结合图 4 说明图提取和表示的 示例过程。作为预处理和图提取的结果, 获得图像域中的图 346。将这些图称为全维度图, 因为之后要在维度结构上进行化简。类似地, 可以在框 350 处在模型域中定义并建立属性 图, 得到模型域图数据库 352。当在图像域中形成图像时, 可以将以图像中的一个点为中心 的局部特征检测器加以捆绑, 以形成复合特征检测器。 可以向模型域提供复合特征检测器, 以整体与其他复合特征检测器进行比较, 从而建立属性模型域图。使用复合特征检测器可 以通过减少针对复杂特征在能够识别新的对象类之前训练新的单独特征作为检测器的需 求, 来降低 AR 系统上的计算和存储器负担。
模型域中的图可以担当原型图数据库, 可以使用该原型图数据库来实现图匹配算 法。原型图选择过程 354( 如图 3C 所述 ) 可以产生原型图集合 362, 原型图集合 362 可以用 于对图像域和模型域中的图 (344、 356) 进行分解。模型域图数据库 352 也是属性图 ( 图像 域中子图的理想化副本 ) 的合集。在建立原型子图集合 362 之后, 可以将图像域中提取的 图化简 (344) 为符合预定义规则的图。在图像域 348 中的化简维度图可以由来自原型图的 子集的组合构成。类似地, 也可以将模型域中的图 ( 来自模型域图数据库 352) 分解 (356) 为来自原型图的子集的组合, 导致在图像域和模型域中在结构上具有化简维度的图 ( 分别
为 348、 360)。
然后可以如下结合图 3B 来讨论的建立表示在图像域和模型域中的邻居关系的链 接。神经对象从而获取内部结构, 且现在可以将他们的关系约束为具有匹配的语法结构的 组合, 其形成了对象识别的基础。
图 3B 是在根据本文所述至少一些实施例布置的示例图匹配子系统 328 中的操作 350 的示意图。可以由与图 3A 的动态建模子系统 326 相同的设备 ( 和 / 或软件 ) 或不同的 设备 ( 和 / 或软件 ) 来体现图匹配子系统 328。
操作 350 可以包括块 368、 370、 372、 374、 376 和 / 或 330 中一项或多项。 在块 368 “联 合权重和连接计算” , 在计算设备中实现的图匹配算法可以适于 : 预处理属性图像域图 ( 由 附图标记 364 来指示的连接 )。 预处理可以涉及估计图像域中每个神经元的实际属性值, 这 可以通过对与每个神经元相关的波动图像的集合进行时间求平均来完成。 可以用时间相关 的形式对神经元之间的绑定进行编码, 时间相关可以用作信号传输的联合权重。
块 368 之后可以是块 370。在块 370 “图像域分段” , 可以将图像域的子图 I 中的节 点进行分组。可以通过将具有类似特征向量的节点绑定在一起来实现分组或分段, 该节点 有可能存在于相同的对象中。这样, 图像或场景中与一个对象相对应的部分内的节点趋向 于同步它们的活动, 而在不同图像段之间的节点趋向于不同步以及打破它们的动态链接。
块 370 之后可以是块 372。在块 372“代价函数检查” , 可以基于从动态建模子系 统提供的图属性来执行作为图匹配的一部分的代价函数检查。 代价函数是特定解决方案与 给定问题的最优解决方案相距多远的度量。在该情况下, 优化涉及顶点标签和边标签的匹 配。
块 372 之后可以是块 374。在块 374, “最终属性图匹配” , 可以将属性图匹配用于 对象识别。属性图匹配可以基于发现并选择性激活由图像域中与存储的模型图 M( 如果存 储的模型图 M 存在 ( 由附图标记 366 所指示的连接 )) 相同或近似相同的部分 ( 子图 )I 构 成的子图。且还可以将 I 和 M 中的对应点之间的一对一连接确定为属性图匹配的一部分。 具体地, 可以通过搜索顶点位置的集合来实现该过程, 其根据如上所述确定的代价函数, 同 时优化了顶点标签和边标签的匹配。还可以在块 374 中描述的操作期间, 将 I 和 M 中具有 类似特征的节点之间的多对多连接减少为相容的一对一映射。
块 374 之后可以是块 376。在块 376 “后向标记 (back labeling)” , 可以用识别出 的模式来后向标记图像。图匹配过程可以包括以下事件 : 同时激活 I 中的相邻神经元的块 以及 M 中具有对应位置的相邻神经元的块。因此, 在匹配图之间的动态绑定可以用于使用 识别出的模式来后向标记图像, 以及可以用于基于该模式来形成复合对象和场景的表示。 该模式可以是执行操作 350 的图匹配子系统 328 的输出 330。
图 3C 示出了根据本文所述至少一些实施例来布置的示例图选择子系统中的操作 的图。可以在图 3A 的动态建模子系统的原型图选择块 354 中执行图 3C 所述的操作。
实时执行图匹配的主要挑战在于图模型的高复杂度。 该复杂度可以由图的复杂结 构和图的固有高维度所引起。 根据一些实施例, 可以通过开发有效的图选择方法, 使用用于 构造较低维度向量表示 ( 所有图表示的子集 ) 的自动化方法。
该过程可以开始于输入块 378“创建原型图集合” , 可以通过例如随机地选择图, 来构造具有 n 个原型图的初始集合 P0 = {p1, ..., pn}。该初始集合可以包括更简单的结构图, 以及可以用于在图像域和模型域中跨越 (span) 更完整的图模型。可以使用各种原型图 选择算法, 根据模型域中的训练图集合来构造原型图集合。 然后, 可以将来自输入图像域的 提取图和模型域中的训练图分解为与每个域相关的图的子集, 其在结构上更简单, 同时保 持了原始图中用于识别的最多信息量的信息。
具体地, 原型图选择的目标可以是从模型域的训练集合中 ( 例如, 从模型域图数 据库 352 中 ) 选择精确表示与它们的图结构相关的不同类别的图的子集。原型图可以足够 小, 以跨越图像域和模型域中更复杂的图结构。原型图可以同时避免在选择类似图和传输 充足信息方面的冗余。
在块 380, “创建初始集合” , 可以选择 n 个集合 Si, 使得每个集合包括一个原型 S1 = {p1}, ..., Sn = {pn}。在块 382, “扫描 T 以找到图” , 可以扫描来自模型域的训练图集合, 以 查找图 g ∈ T\P。如块 384 “计算 g 和 Pi 之间的距离” 、 386 “是最近的邻居? ” 、 以及 388 “向 集合 Si 添加 g” 所示, 针对每个图 g, 可以找到其最近的邻居 pi ∈ P, 且将所考察的图添加到 与原型 pi 相对应的集合 Si 中。这些步骤可以导致 n 个不相交的集合, T ∪ 1 ≤ i ≤ nSi。
在块 390, “计算 Pi 的中心 ci” , 可以针对每个集合 Si 发现中心 ci。ci 可以是图, 其 到 Si 中其他对象的最大距离是最小的。如判定块 394 “ci = pi ? ” 以及输出块 392 “输出原 型图集合 Si” 所示, 对于 ci = pi 的每个中心 ci, 可以提供输出原型图集合 Si。如块 396“在 Si 中用 ci 来替换 pi” 所示, 对于 ci ≠ pi 的每个中心 ci, 在 Si 中可以用 ci 来替换 pi, 且过程 返回块 382 以获得另一训练集合。当在集合 Si 中不再发生更多改变时, 该过程可以结束。 可以由 n 个不相交集合的中心来提供原型图。
尽管上面已使用了特定示例、 组件和配置来讨论了实施例, 它们意在提供针对通 过 AR 系统中的动态建模来进行鲁棒对象识别所要使用的通用指导原则。这些示例不构成 对实施例的限制, 可以使用采用了本文所述原理的其它组件、 模块和配置来实现这些实施 例。例如, 可以在匹配顶点标签和边标签中使用任何合适的代价函数。此外, 可以按各种顺 序来执行上述动作, 特别是以交织的方式来执行。
图 4 示出了在采用根据本文所述至少一些示例的动态建模和图匹配的系统中如 何将输入图像表示为属性图。在根据一些实施例的图像表示中, 可以应用动态结构以对 2D 数字图像建模, 且因此通过图 442 中所示过程来提取图模型。动态结构可以包括图像域和 模型域中的图表示。作为第一步骤, 可以从输入数字图像中提取特征 (W1 至 WN), 以便使用 这些特征来形成图表示 406( 即, 图像域表示 )。图像域中的图表示 406 可以是节点的 2D 数 组, 且每个节点包括 N 个不同的特征检测器神经元 402。在一个方面中, 在图像域中形成输 入图像 424 的图表示 406 可以等价于选择特征检测器 402 的集合并对输入图像 424 的像素 应用滤波器 404。结果可以是所谓的顶点标签 408, 其为表示局部特征检测器的活动的特征 向量。
第二步骤可以包括在每个节点之间形成链接。结果可以是所谓的图表示 406 的边 标签 410, 表示顶点之间的连通性。 从而, 可以将输入图像 424 转换为图像域中的属性图, 其 具有附加到顶点和边的属性 ( 特征向量 )。 因此, 对象可以是图像域中具有类似属性的子图 表示。
当提取图像以作为图像域中的图时, 可以将以图像的一个点为中心的局部特征检 测器对应地捆绑, 以形成图 442 中所示的复合特征检测器。可以向模型域提供复合特征检测器, 且与其他复合特征检测器比较。这可以消除或降低针对复杂特征在能够识别新的对 象类之前将新的单个特征训练为检测器的需求。
图 5 示出了示例通用计算设备 500, 其可以用于实现根据本公开的 AR 系统中的动 态建模和图匹配。在非常基本的配置 502 中, 计算设备 500 典型地包括一个或多个处理器 504 以及系统存储器 506。存储器总线 508 可用于在处理器 504 和系统存储器 506 之间进 行通信。
根 据 所期 望的配置, 处理器 504 可 以是任 意 类型 的, 包括 但 不限于 微 处理器 (μP)、 微控制器 (μC)、 数字信号处理器 (DSP) 或其任意组合。 处理器 504 可以包括一级或 多级高速缓存 ( 例如, 级别高速缓存 512)、 处理器核 514、 以及寄存器 516。示例处理器核 514 可以包括算术逻辑单元 (ALU)、 浮点单元 (FPU)、 数字信号处理核 (DSP 核 ) 或其任意组 合。示例存储器控制器 518 也可以与处理器 504 一起使用, 或者在一些实施方式中, 存储器 控制器 518 可以是处理器 504 的内部部件。
根据所期望的配置, 系统存储器 506 可以是任意类型的, 包括但不限于易失性存 储器 ( 如 RAM)、 非易失性存储器 ( 如 ROM、 闪存等 ) 或其任意组合。系统存储器 506 可以包 括操作系统 520、 一个或多个应用程序 522 和程序数据 524。应用程序 522 可以包括 AR 模 块 526, 其被布置为使用如上所述的动态建模和属性图匹配来调整对象识别系统的工作参 数。程序数据 524 可以包括以下一项或多项 : 成像数据、 模型数据 528-1、 图数据 528-2、 以 及上面结合图 3A 和 3B 所讨论的类似数据。该数据可以用于如本文所述地产生图像域子图 和模型域子图之间的一对一映射。在一些实施例中, 应用程序 522 可以设置为在操作系统 520 上与程序数据 524 操作, 使得如本文所述识别三维对象并产生虚拟表示。 这里所描述的 基本配置 502 在图 5 中由内部虚线内的部件来图示。 计算设备 500 可以具有额外特征或功能以及额外接口, 以有助于基本配置 502 与 任意所需设备和接口之间进行通信。 例如, 总线 / 接口控制器 530 可以有助于基本配置 502 与一个或多个数据存储设备 532 之间经由存储接口总线 534 进行通信。数据存储设备 532 可以是可拆除存储设备 536、 不可拆除存储设备 538 或其组合。 可拆除存储设备和不可拆除 存储设备的示例包括磁盘设备 ( 如软盘驱动器和硬盘驱动器 (HDD))、 光盘驱动器 ( 如紧致 盘 (CD) 驱动器或数字通用盘 (DVD) 驱动器 )、 固态驱动器 (SSD) 以及磁带驱动器, 这仅仅是 极多例子中的一小部分。 示例计算机存储介质可以包括以任意信息存储方法和技术实现的 易失性和非易失性、 可拆除和不可拆除介质, 如计算机可读指令、 数据结构、 程序模块或其 他数据。
系统存储器 506、 可拆除存储设备 536 和不可拆除存储设备 538 均是计算机存储 介质的示例。计算机存储介质包括但不限于 RAM、 ROM、 EEPROM、 闪存或其他存储器技术, CD-ROM、 数字多功能盘 (DVD) 或其他光存储设备, 磁盒、 磁带、 磁盘存储设备或其他磁存储 设备, 或可以用于存储所需信息并可以由计算设备 500 访问的任意其他介质。任何这种计 算机存储介质可以是设备 500 的一部分。
计算设备 500 还可以包括接口总线 540, 以有助于各种接口设备 ( 例如, 输出接口 542、 外围设备接口 544 和通信接口 546) 经由总线 / 接口控制器 530 与基本配置 502 进行 通信。 示例输出设备 542 包括图形处理单元 548 和音频处理单元 550, 其可被配置为经由一 个或多个 A/V 端口 552 与多种外部设备 ( 如显示器或扬声器 ) 进行通信。示例外围设备接
口 544 包括串行接口控制器 554 或并行接口控制器 556, 它们可被配置为经由一个或多个 I/O 端口 558 与外部设备 ( 如输入设备 ( 例如, 键盘、 鼠标、 笔、 语音输入设备、 触摸输入设备 等 )) 或其他外围设备 ( 例如, 打印机、 扫描仪等 ) 进行通信。示例通信设备 546 包括网络 控制器 560, 其可以被设置为经由一个或多个通信端口 564 与一个或多个其他计算设备 562 通过网络通信链路进行通信。
网络通信链路可以是通信介质的一个示例。 通信介质典型地可以由调制数据信号 ( 如载波或其他传输机制 ) 中的计算机可读指令、 数据结构、 程序模块或其他数据来体现, 并可以包括任意信息传送介质。 “调制数据信号” 可以是通过设置或改变一个或多个特性而 在该信号中实现信息编码的信号。例如, 但并非限制性地, 通信介质可以包括有线介质 ( 如 有线网络或直接布线连接 )、 以及无线介质 ( 例如声、 射频 (RF)、 微波、 红外 (IR) 和其他无 线介质 )。这里所使用的术语计算机可读介质可以包括存储介质和通信介质。
计算设备 500 可以实现为小体积便携式 ( 或移动 ) 电子设备的一部分, 如蜂窝电 话、 个人数据助理 (PDA)、 个人媒体播放设备、 无线 web 浏览设备、 个人耳机设备、 专用设备 或包括任意上述功能的混合设备。计算设备 500 也可以实现为个人计算机, 包括膝上型计 算机和非膝上型计算机配置。此外, 计算设备 500 可以实现为联网系统, 或实现为通用或专 用服务器的一部分。 示例实施例还可以包括方法。 这些方法可以用包括本文所述的结构在内的任何数 目的方式来实现。一个这种方式是通过本公开所述类型的设备的机器操作。另一可选方式 是: 针对要执行的方法的一个或多个操作, 让一个或多个人类操作者执行这些操作中的一 些操作, 而让机器执行其他操作。 这些人类操作者不需要彼此位于一处, 但是每个人类操作 者可以仅与执行一部分程序的机器在一起。 在其它示例中, 可以将人类交互自动化, 比如通 过由机器自动化的预先选择标准。
图 6 是示出了可以由根据本文所述至少一些实施例布置的计算设备 ( 比如图 5 中 设备 500) 来执行的示例方法的流程图。 示例方法可以包括由块 622、 624、 626、 628、 630、 632 和 / 或 634 中一项或多项所示出的一个或多个操作、 功能或动作。还可以将块 622 至 634 中所述的操作存储为计算机可读介质 ( 比如计算设备 610 的计算机可读介质 620) 中的计 算机可执行指令。
在 AR 对象识别中采用动态建模和图像匹配的过程可以开始于块 622“将 2D 图像 转换为图像域” 。在块 622, 可以由计算设备的处理器 ( 例如, 计算设备 500 的处理器 504 或 图形处理单元 548) 来获得实际场景中的 3D 对象的 2D 图像。图像域中的每个节点可以由 一定数目的不同的特征检测器神经元来构成。在可选的滤波过程中, 可以选择特征检测器 的集合并将其应用于 2D 图像的每个像素。
块 622 之后可以是块 624“在节点之间建立链接” 。在块 624, 可以建立每个节点 顶点之间的链接, 得到边标签, 其表示每个节点之间的连通性。从而, 可以将图像转换为图 像域中的属性图, 其具有附加到顶点和边的属性。
块 624 之后可以是块 626“定义图像域中的属性图” 。在块 626, 通过顶点标签和 边标签来定义属性图。块 622 到 626 可以由第一计算设备的处理器 ( 例如, 计算设备 500 的处理器 504 或图形处理单元 548) 的动态建模模块来执行。另一方面, 块 628 到 634 可以 由相同处理器或通过网络耦合到第一计算设备的第二计算设备上的另一处理器的图匹配
模块来执行。当然, 也可以由单一模块来执行所有块。
块 626 之后可以是块 628“估计每个节点的实际属性值” 。在块 628, 可以在图像 域中通过例如对与每个节点相关的波动图像的集合的时间求平均, 来估计每个节点的实际 属性值。该估计是预处理的一部分, 其还可以包括针对链接的联合权重和连接计算。
块 628 之后可以是块 630“匹配属性图” 。在块 630, 可以基于发现并选择性激活 图像域的子图中的节点, 来匹配属性图。还可以将图像域和模型域的子图中的对应点之间 的一对一连接确定为属性图匹配的一部分。 可以通过将具有类似特征向量的节点绑定在一 起, 来实现图匹配的该初始部分, 其也被称为图像域中的分段。
块 630 之后可以是块 632“识别并激活子图中的链接” 。在块 632, 可以通过从结 合存储器中获取针对 2 个域中的节点的连接模式, 来完成属性图的第二部分。作为识别和 激活链接的一部分, 可以根据建立的代价函数来优化顶点标签和边标签的匹配。
块 632 之后可以是块 634“映射连接” 。在块 634, 可以将在图像域和模型域子图 中具有类似特征的节点之间的多对多连接化简为一对一连接。结果, 匹配图之间的动态绑 定可以用于利用识别的模式后向标记图像。 然后可以通过相同计算设备或其他计算设备上 的呈现软件和 / 或硬件, 基于模式形成复合对象和场景的表示。
上述过程中包括的块是用于说明的。 可以由具有更少的块或额外的块的类似过程 来实现通过动态建模和图匹配来进行的对象识别。在一些示例中, 可以按不同顺序来执行 这些块。在某些其他示例中, 可以消除各种块。在另一些其他示例中, 可以将各种块分为附 加块, 或结合在一起成为较少的块。
图 7 示出了根据本文所述的至少一些实施例布置的示例计算机程序产品 700 的框 图。 在一些示例中, 如图 7 所示, 计算机程序产品 700 包括信号承载介质 702, 信号承载介质 702 也可以包括计算机可读指令 704, 当由例如处理器执行时, 计算机可读指令 704 可以提 供上面关于图 5 和图 6 所述的功能。从而, 例如参见处理器 504, AR 模块 526 可以响应于由 介质 702 传递至处理器 504 的指令 704, 而执行图 7 所示的一个或多个任务, 以执行如本文 所述的与基于动态建模的对象识别相关联的动作。一些指令可以包括 : 建立节点之间的链 接; 定义属性图 ; 在图像域和模型域之间匹配属性图 ; 以及确定映射连接。
在一些实现中, 图 7 所示的信号承载介质 702 可以包括计算机可读介质 706, 比如 ( 但不限于 ) 硬盘驱动器、 紧致盘 (CD)、 数字通用盘 (DVD)、 数字磁带、 存储器等。在一些实 现中, 信号承载介质 702 可以包括可记录介质 708, 比如 ( 但不限于 ) 存储器、 读 / 写 (R/W) CD、 R/W DVD 等等。在一些实现中, 信号承载介质 702 可以包括通信介质 710, 比如 ( 但不 限于 ) 数字和 / 或模拟通信介质 ( 例如, 光纤电缆、 波导、 有线通信链路、 无线通信链路等 等 )。从而可以通过例如 RF 信号承载介质 702 向处理器 504 的一个或多个模块传递程序产 品 700, 其中, 信号承载介质 702 通过无线通信介质 710( 例如, 遵循 IEEE802.11 标准的无线 通信介质 ) 来传递。
本公开总体上描述了一种用于在增强现实 (AR) 系统 (100) 中执行对象识别的方 法。所述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 将对象 222 的二维图 像 224 转换为图像域表示。所述用于在增强现实 (AR) 系统中执行对象识别的方法还可以 包括 : 基于在所述图像域表示的节点之间的链接来定义所述图像域中的属性图 (626), 以 及在模型域中定义另一属性图 (350)。 所述用于在增强现实 (AR) 系统中执行对象识别的方法还可以包括 : 通过识别并激活在属性图的对应节点之间的链接 (632), 来匹配所述图像 域中的属性图和所述模型域中的属性图 (630)。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 减少在所述图像域和所述模型域中的属性图之间的连接数目 (634) ; 以及使用基于减少的 连接的模式来后向标记所述二维图像的模型域表示 (370)。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 通过将所述二维图像 224 与所述模型域表示 230 重叠, 来呈现复合图像。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 确定与所述图像域表示中的每个节点相关联的特征, 以及通过将特征应用于所述二维图 像 224 的像素来获得表示所述图像域表示中每个节点的局部特征的活动向量的顶点标签 344。
根据其它示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法可以包括 : 通过建立在所述图像域表示的节点之间的链接, 获得表示所述图像域表示的节点之间的连 通性的边标签 346。
根据所述用于在增强现实 (AR) 系统中执行对象识别的方法的其它示例, 可以将 所述图像域 348 中的属性图定义为所述图像域表示中的节点和相关联的顶点标签 344 和边 标签 346 的合集。
根据其他示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法通过向与 所述模型域中每个节点相关的波动图像的集合应用时间求平均, 估计所述模型域 628 中的 节点的实际属性值。
根据其他示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法将所述模 型域中的节点之间的绑定编码为时间相关 362。
根据其他示例, 所述用于在增强现实 (AR) 系统中执行对象识别的方法基于编码 绑定 362 来计算权重, 并将其分配给所述模型域中的节点之间的链接。
本公开还描述了一种用于在增强现实 (AR) 系统 (100) 中执行对象识别的装置 700。所述用于在增强现实 (AR) 系统中执行对象识别的装置可以包括 : 存储器 506, 适于 存储图像数据和图数据 (528-1、 528-2) ; 以及第一处理单元, 适于执行动态建模模块 326, 其中, 所述动态建模模块可以适于 : 将二维 (2D) 图像从所存储的图像数据变换为图像域表 示, 所述图像域表示包括链接节点 (342) 的 2D 数组, 且每个节点对图像域中的至少一个区 别特征进行编码 ; 确定表示所述图像域中的每个节点的所述至少一个特征的活动向量的顶 点标签 344 ; 确定表示所述图像域的节点之间的连通性的边标签 346 ; 以及基于所述顶点标 签和 / 或所述边标签中的一个或多个来定义模型域 350 中的属性图, 所述属性图被存储在 所述存储器中作为所述图数据的一部分。所述用于在增强现实 (AR) 系统中执行对象识别 的装置还可以包括 : 第二处理单元, 适于执行图匹配模块 328, 其中, 所述图匹配模块适于 识别并激活所述图像域中的节点和所述模型域中的对应节点之间的链接 (632), 以及减小 具有类似特征的节点之间的连接的数目 (634)。
根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 所述动 态建模模块 326 还可以适于对所述图像域中的节点进行分组和选择性激活 (624)。
根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 所述动态建模模块 326 还可以适于 : 通过将所述图像域中具有类似特征向量的节点绑定在一起, 对所述图像域中的节点进行分组。
根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 所述图 匹配模块 328 还可以适于通过以下步骤来识别和激活在所述图像域和所述模型域中的节 点之间的链接 (632) : 从所述存储器 506 中获取连接模式, 以及使用从所述存储器中获取的 连接模式, 执行对顶点位置的搜索。
根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 所述图 匹配模块 328 还可以适于 : 根据预定义的代价函数, 匹配所述顶点标签 344 和所述边标签 346。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的装置可以包括 : 第三处理单元, 适于执行呈现模块 (108), 其中, 所述呈现模块可以适于 : 通过基于所述减 少的链接将所述二维图像 224 与所述图像的模型域表示重叠, 来呈现复合图像。
根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 可以将 所述第一、 第二和第三处理单元分别集成到第一计算设备 106、 第二计算设备 110 和第三计 算设备 108 中, 以及所述第一、 第二、 和第三计算设备可以通过网络通信。 根据所述用于在增强现实 (AR) 系统中执行对象识别的装置的一些示例, 所述第 一、 第二和第三处理单元可以是相同处理器 504 的一部分。
本公开还描述了一种计算机可读存储介质 706, 其具有存储于其上的用于在增强 现实 (AR) 系统 (100) 中执行对象识别的指令 704。所述指令可以包括 : 将对象的二维图像 转换为包括多个链接节点在内的图像域表示 (622), 每个节点包括特征检测器的集合。所 述指令还可以包括 : 通过对所述二维图像的每个像素应用所述特征检测器, 确定表示特征 检测器的活动向量的顶点标签 344。所述指令还可以包括 : 通过检测每个节点之间的链接, 确定表示所述节点之间的连通性的边标签 346。所述指令还可以包括 : 基于所述顶点标签 344 和所述边标签 346, 产生所述图像域 348 中的属性图, 以及在模型域 350 中定义属性图, 其中, 所述模型域中的属性图可以是所述图像域中的属性图的理想化副本。所述指令还可 以包括 : 基于属性图 (630) 的顶点标签和边标签和匹配, 确定所述图像域中的属性图和所 述模型域中的属性图之间的连接, 以及将所述连接简化为所述图像域和所述模型域之间的 拓扑保留映射。
根据一些示例, 所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执 行对象识别的指令 704 的计算机可读存储介质可以包括 : 基于映射的连接来识别模式 (481-487), 基于所识别的模式来产生虚拟图像 (474), 以及基于所述二维图像 (472) 和所 述虚拟图像 (474) 的重叠来产生复合图像。
根据一些示例, 所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对 象识别的指令 704 的计算机可读存储介质还可以包括 : 通过搜索顶点位置, 以及根据预定 义的代价函数、 针对每个顶点位置优化顶点标签 344 和边标签 346 之间的匹配, 确定所述图 像域和所述模型域中的属性图之间的连接 (632)。
根据一些示例, 所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对 象识别的指令 704 的计算机可读存储介质还可以包括 : 不参考所述模型域, 将所述图像域 中具有类似特征向量 (348) 的节点加以绑定。
根据一些示例, 所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对 象识别的指令 704 的计算机可读存储介质还可以包括 : 如果在所述属性图的实质上所有节 点之间存在近似邻居保留和特征类型保留映射, 则分别确定所述图像域和所述模型域中的 属性图对的连接 (632)。
根据一些示例, 所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对 象识别的指令 704 的计算机可读存储介质还可以包括 : 基于分配给所述图像域中的节点之 间的链接的权重 (362), 分别确定所述图像域和所述模型域中的属性图对的连接 (632)。
根据所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对象识别的 指令 704 的计算机可读存储介质的一些示例, 可以用交织的方式来执行以下步骤 : 在所述 图像域中产生属性图 (348), 在所述模型域中定义属性图 (350), 以及确定所述图像域和所 述模型域中的属性图之间的连接 (632)。
根据所述具有存储于其上的用于在增强现实 (AR) 系统 (100) 中执行对象识别的 指令 704 的计算机可读存储介质的一些示例, 每个节点可以与包括以下各项在内的一个或 多个特征相关联 : 局部光强度、 反射比属性、 对象姿态、 遮挡、 和 / 或背景变化。
本公开还描述了一种用于在增强现实 (AR) 系统中执行对象识别的系统。所述用 于在增强现实 (AR) 系统中执行对象识别的系统可以包括 : 至少一个传感器 104, 适于捕捉 实际场景 102 的二维 (2D) 图像 224 ; 以及图像处理服务器 106, 适于将所述 2D 图像 224 转 换为图像域表示, 所述图像域表示包括图像域中的节点 (622) 的 2D 数组, 每个节点包括特 征检测器的集合。 所述用于在增强现实 (AR) 系统中执行对象识别的系统还可以包括 : 现实 服务器 110, 适于确定表示所述图像域中每个节点的至少一个特征的活动向量的顶点标签 344, 确定表示所述图像域中的节点之间的连通性的边标签 346, 基于所述顶点标签和所述 边标签, 定义所述图像域 348 中的属性图以及模型域 350 中的另一属性图, 识别并激活所述 图像域中的节点和所述模型域中的对应节点之间的链接 (632), 以及减少具有类似特征的 节点之间的连接的数目 (634)。所述用于在增强现实 (AR) 系统中执行对象识别的系统还 可以包括 : 图像产生服务器 108, 适于通过将所述 2D 图像 224 与虚拟图像重叠, 产生增强场 景 114, 所述虚拟图像是基于所述图像域中的属性图和所述图像域中的另一属性图之间的 已减少的连接来呈现的。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的系统还可以适 于在结合数据存储器 352 中存储所述模型域中的属性图。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的系统还可以适 于: 通过确定属性图的实质上所有节点之间的近似邻居保留和特征类型保留映射, 识别并 激活所述图像域中的节点和所述模型域 (632) 中的对应节点之间的链接, 以及将所述连接 简化为拓扑保留连接 (634)。
根据所述用于在增强现实 (AR) 系统中执行对象识别的系统的一些示例, 所述图 像处理服务器 106、 现实服务器 110 以及图像产生服务器 108 可以是以下之一的一部分 : 集 中式 AR 系统和分布式 AR 系统。
根据一些示例, 所述用于在增强现实 (AR) 系统中执行对象识别的系统还可以包 括: 可视化系统 112, 适于使所述增强场景 114 可视化, 其中, 所述可视化系统可以包括以下 一项或多项 : 头戴式显示器、 虚拟视网膜显示器和 / 或监视器。在系统方案的硬件和软件实现方式之间存在一些小差别 ; 硬件或软件的使用一般 ( 但并非总是, 因为在特定情况下硬件和软件之间的选择可能变得很重要 ) 是一种体现成 本与效率之间权衡的设计选择。可以各种手段 ( 例如, 硬件、 软件和 / 或固件 ) 来实施这里 所描述的工艺和 / 或系统和 / 或其他技术, 并且优选的手段将随着所述工艺和 / 或系统和 / 或其他技术所应用的环境而改变。例如, 如果实现方确定速度和准确性是最重要的, 则实 现方可以选择主要为硬件和 / 或固件的手段 ; 如果灵活性是最重要的, 则实现方可以选择 主要是软件的实施方式 ; 或者, 同样也是可选地, 实现方可以选择硬件、 软件和 / 或固件的 特定组合。
以上的详细描述通过使用方框图、 流程图和 / 或示例, 已经阐述了设备和 / 或工艺 的众多实施例。在这种方框图、 流程图和 / 或示例包含一个或多个功能和 / 或操作的情况 下, 本领域技术人员应理解, 这种方框图、 流程图或示例中的每一功能和 / 或操作可以通过 各种硬件、 软件、 固件或实质上它们的任意组合来单独和 / 或共同实现。在一个实施例中, 本公开所述主题的若干部分可以通过专用集成电路 (ASIC)、 现场可编程门阵列 (FPGA)、 数 字信号处理器 (DSP)、 或其他集成格式来实现。 然而, 本领域技术人员应认识到, 这里所公开 的实施例的一些方面在整体上或部分地可以等同地实现在集成电路中, 实现为在一台或多 台计算机上运行的一个或多个计算机程序 ( 例如, 实现为在一台或多台计算机系统上运行 的一个或多个程序 ), 实现为在一个或多个处理器上运行的一个或多个程序 ( 例如, 实现为 在一个或多个微处理器上运行的一个或多个程序 ), 实现为固件, 或者实质上实现为上述方 式的任意组合, 并且本领域技术人员根据本公开, 将具备设计电路和 / 或写入软件和 / 或固 件代码的能力。
本公开不限于在本申请中描述的具体示例, 这些具体示例意在说明不同方案。本 领域技术人员清楚, 不脱离本公开的精神和范围, 可以做出许多修改和变型。 本领域技术人 员根据之前的描述, 除了在此所列举的方法和装置之外, 还可以想到本公开范围内功能上 等价的其他方法和装置。这种修改和变型应落在所附权利要求的范围内。本公开应当由所 附权利要求的术语及其等价描述的整个范围来限定。 应当理解, 本公开不限于具体方法、 试 剂、 化合物组成或生物系统, 这些都是可以改变的。还应理解, 这里所使用的术语仅用于描 述具体示例的目的, 而不应被认为是限制性的。
此外, 本领域技术人员将认识到, 本文所述主题的机制能够作为多种形式的程序 产品进行分发, 并且无论实际用来执行分发的信号承载介质的具体类型如何, 本公开所述 主题的示例性实施例均适用。信号承载介质的示例包括但不限于 : 可记录型介质, 如软盘、 硬盘驱动器、 紧致盘 (CD)、 数字通用盘 (DVD)、 数字磁带、 计算机存储器等 ; 以及传输型介 质, 如数字和 / 或模拟通信介质 ( 例如, 光纤光缆、 波导、 有线通信链路、 无线通信链路等 )。
本领域技术人员应认识到, 上文详细描述了设备和 / 或工艺, 此后使用工程实践 来将所描述的设备和 / 或工艺集成到数据处理系统中是本领域的常用手段。也即, 这里所 述的设备和 / 或工艺的至少一部分可以通过合理数量的试验而被集成到数据处理系统中。 本领域技术人员将认识到, 典型的数据处理系统一般包括以下各项中的一项或多项 : 系统 单元外壳 ; 视频显示设备 ; 存储器, 如易失性和非易失性存储器 ; 处理器, 如微处理器和数 字信号处理器 ; 计算实体, 如操作系统、 驱动程序、 图形用户接口、 以及应用程序 ; 一个或多 个交互设备, 如触摸板或屏幕 ; 和 / 或控制系统, 包括反馈环和控制电机 ( 例如, 用于感测位置和 / 或速度的反馈 ; 用于移动和 / 或调节成分和 / 或数量的控制电机 )。
典型的数据处理系统可以利用任意合适的商用部件 ( 如数据计算 / 通信和 / 或网 络计算 / 通信系统中常用的部件 ) 予以实现。本公开所述的主题有时说明不同部件包含在 不同的其他部件内或者不同部件与不同的其他部件相连。应当理解, 这样描述的架构只是 示例, 事实上可以实现许多能够实现相同功能的其他架构。在概念上, 有效地 “关联” 用以 实现相同功能的部件的任意设置, 从而实现所需功能。 因此, 这里组合实现具体功能的任意 两个部件可以被视为彼此 “关联” 从而实现所需功能, 而无论架构或中间部件如何。同样, 任意两个如此关联的部件也可以看作是彼此 “可操作地连接” 或 “可操作地耦合” 以实现所 需功能, 且能够如此关联的任意两个部件也可以被视为彼此 “能可操作地耦合” 以实现所需 功能。能可操作地耦合的具体示例包括但不限于物理上可连接和 / 或物理上交互的部件, 和 / 或无线可交互和 / 或无线交互的部件, 和 / 或逻辑交互和 / 或逻辑可交互的部件。
至于本文中任何关于多数和 / 或单数术语的使用, 本领域技术人员可以从多数形 式转换为单数形式, 和 / 或从单数形式转换为多数形式, 以适合具体环境和应用。为清楚起 见, 在此明确声明单数形式 / 多数形式可互换。
本领域技术人员应当理解, 一般而言, 所使用的术语, 特别是所附权利要求中 ( 例 如, 在所附权利要求的主体部分中 ) 使用的术语, 一般地应理解为 “开放” 术语 ( 例如, 术语 “包括” 应解释为 “包括但不限于” , 术语 “具有” 应解释为 “至少具有” 等 )。本领域技术人 员还应理解, 如果意在所引入的权利要求中标明具体数目, 则这种意图将在该权利要求中 明确指出, 而在没有这种明确标明的情况下, 则不存在这种意图。 例如, 为帮助理解, 所附权 利要求可能使用了引导短语 “至少一个” 和 “一个或多个” 来引入权利要求中的特征。然而, 这种短语的使用不应被解释为暗示着由不定冠词 “一” 或 “一个” 引入的权利要求特征将包 含该特征的任意特定权利要求限制为仅包含一个该特征的实施例, 即便是该权利要求既包 括引导短语 “一个或多个” 或 “至少一个” 又包括不定冠词如 “一” 或 “一个” ( 例如, “一” 和 /或 “一个” 应当被解释为意指 “至少一个” 或 “一个或多个” ); 在使用定冠词来引入权利要 求中的特征时, 同样如此。另外, 即使明确指出了所引入权利要求特征的具体数目, 本领域 技术人员应认识到, 这种列举应解释为意指至少是所列数目 ( 例如, 不存在其他修饰语的 短语 “两个特征” 意指至少两个该特征, 或者两个或更多该特征 )。
另外, 在使用类似于 “A、 B 和 C 等中至少一个” 这样的表述的情况下, 一般来说应 该按照本领域技术人员通常理解该表述的含义来予以解释 ( 例如, “具有 A、 B 和 C 中至少一 个的系统” 应包括但不限于单独具有 A、 单独具有 B、 单独具有 C、 具有 A 和 B、 具有 A 和 C、 具 有 B 和 C、 和 / 或具有 A、 B、 C 的系统等 )。在使用类似于 “A、 B 或 C 等中至少一个” 这样的 表述的情况下, 一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释 ( 例 如, “具有 A、 B 或 C 中至少一个的系统” 应包括但不限于单独具有 A、 单独具有 B、 单独具有 C、 具有 A 和 B、 具有 A 和 C、 具有 B 和 C、 和 / 或具有 A、 B、 C 的系统等 )。本领域技术人员还 应理解, 实质上任意表示两个或更多可选项目的转折连词和 / 或短语, 无论是在说明书、 权 利要求书还是附图中, 都应被理解为给出了包括这些项目之一、 这些项目任一方、 或两个项 目的可能性。例如, 短语 “A 或 B” 应当被理解为包括 “A” 或 “B” 、 或 “A 和 B” 的可能性。
另外, 在以马库什组描述本公开的特征或方案的情况下, 本领域技术人员应认识 到, 本公开由此也是以该马库什组中的任意单独成员或成员子组来描述的。本领域技术人员应当理解, 出于任意和所有目的, 例如为了提供书面说明, 这里公 开的所有范围也包含任意及全部可能的子范围及其子范围的组合。 任意列出的范围可以被 容易地看作充分描述且实现了将该范围至少进行二等分、 三等分、 四等分、 五等分、 十等分 等。 作为非限制性示例, 在此所讨论的每一范围可以容易地分成下三分之一、 中三分之一和 上三分之一等。本领域技术人员应当理解, 所有诸如 “直至” 、 “至少” 、 “大于” 、 “小于” 之类 的语言包括所列数字, 并且指代了随后可以如上所述被分成子范围的范围。 最后, 本领域技 术人员应当理解, 范围包括每一单独数字。因此, 例如具有 1 ~ 3 个单元的组是指具有 1、 2 或 3 个单元的组。类似地, 具有 1 ~ 5 个单元的组是指具有 1、 2、 3、 4 或 5 个单元的组, 以此 类推。
尽管已经在此公开了多个方案和实施例, 但是本领域技术人员应当明白其他方案 和实施例。 这里所公开的多个方案和实施例是出于说明性的目的, 而不是限制性的, 本公开 的真实范围和精神由所附权利要求表征。