用于ransac算法的并行执行的技术的制作方法

文档序号:10663607阅读:408来源:国知局
用于ransac算法的并行执行的技术的制作方法
【专利摘要】各个实施例一般针对用于采用依次和并行处理的混合来执行随机取样一致性(RANSAC)的技术。执行RANSAC的装置包括:推导组件,从数据集的最小样本集合的第一集合并行地得出所建议模型的第一集合;以及比较组件,如果所建议模型的第一集合的所建议模型比所建议模型的第一集合的推导之前所得出的任何所建议模型更好地拟合数据集,则重新计算得出准确模型的所建议模型的所需量,并且在所建议模型的第一集合的推导之后基于所需量与包括第一集合的先前所得出的所建议模型的量的比较来确定是否得出所建议模型的第二集合。描述并且要求保护其他实施例。
【专利说明】用于RANS AC算法的并行执行的技术
【背景技术】
[0001] 司空见惯的是采用各种估计算法从表示各种领域的多种类型的数据的任一种的 大数据集来得出数学模型,包括动态力的分析、气体或流体移动的模拟、热分析、图像处理 等。在图像处理领域中,这类数据集可从视觉表象来得出,以及这类估计算法可用来得出来 自一个以上照相装置的图像的部分之间的关系,作为用于识别对象的过程的部分。
[0002] 然而,虽然存在用于从相对地没有"异常值"的数据集(例如表示统计异常的数据 集的元素)来得出模型的许多算法,但是有较少算法已经证明在以较高确定度从可具有这 类异常值的较高比例的数据集来得出模型方面是有效的。换言之,存在用于从相对"有噪" 数据(其中数据集中多达50%的元素可能是不表示实际信息的噪声)来得出模型的较少算 法。
[0003] 在那些少数算法之中是随机抽样一致性(RANSAC)、即所建议模型反复被生成并且 测试以查找在预定概率度最佳拟合数据集的数据元素的所建议模型的迭代算法。RANSAC通 常完全按照依次方式执行,使得在各迭代中,生成数据集的随机选择元素的单个子集,从那 个子集来得出单个所建议模型,测试那个所建议模型,确定那个所建议模型与来自先前迭 代的所有其他模型相比是否为数据集的更好拟合,并且确定是否要求其他迭代。如果新得 出和测试的所建议模型与来自先前迭代的所有其他模型相比是更好的拟合,则它成为新的 总体最佳建议模型,以及至少部分基于新的总体最佳建议模型拟合数据集的程度重新计算 所需迭代的总数。至此所执行的迭代次数则与所需总数(无论是否重新计算)进行比较,以 确定是否将要执行其他迭代。
[0004] 取决于所建议模型的复杂度,每个所建议模型的推导和测试能够消耗大量处理、 存储和/或功率资源,以及消耗大量时间。此外,确定是否要求其他迭代的计算的重复执行 也能够消耗大量资源和/或时间。
【附图说明】
[0005] 图1示出模型处理系统的一实施例。
[0006] 图2示出模型处理系统的备选实施例。
[0007] 图3和图4各示出按照一实施例、并行处理在执行RANSAC的一部分中的使用。
[0008] 图5示出按照一实施例、得出数学模型的示例。
[0009] 图6示出一实施例的一部分。
[0010] 图7-9各示出按照一实施例的逻辑流程。
[0011] 图10示出按照一实施例的处理架构。
[0012] 图11示出图形处理系统的另一个备选实施例。
[0013]图12示出装置的一实施例。
【具体实施方式】
[0014]各个实施例一般针对用于采用依次和并行处理的混合来执行随机取样一致性 (RANSAC)算法的技术。从其中得出所建议模型的数据集的子集的生成可依次执行。但是,多 个所建议模型并行地得出和测试。此外,关于哪一个所建议模型最佳地拟合数据集的确定、 必须得出和测试的所建议模型的数量的计算以及关于是否得出和测试更多所建议模型的 确定尽管依次执行,但是不经常执行。一些部分的并行执行以及依次执行其他部分的降低 频率减少执行RANSAC所需的时间。并行执行的部分可由一个或多个处理器组件的一个或多 个核心(其架构与执行依次部分的单个核心和/或单个处理器组件有所不同)来执行。
[0015] 大体上,在执行RANSAC的迭代中发生的情况从执行RANSAC的长期典型完全依次方 式的各迭代中发生的情况来重新定义。在每次这种重新定义迭代中,生成数据集的多个子 集,并且得出和测试所建议模型的新集合。在所建议模型的每个新集合的推导和测试之后, 将最佳地拟合数据集的新集合的一个所建议模型与先前确定为所有先前所得出和测试集 合的所有所建议模型之中的总体最佳拟合的所建议模型进行比较。如果新集合的最佳拟合 建议模型与来自所建议模型的所有先前集合的总体最佳建议模型相比是对数据集的更好 拟合,则新集合的最佳拟合建议模型成为新的总体最佳建议模型。如果新集合的最佳拟合 建议模型成为新的总体最佳建议模型,则需要被得出和测试的所建议模型的总数至少部分 基于新的总体最佳建议模型拟合数据集的程度来重新计算。至此所得出和测试的所建议模 型的数量则与需要被得出和测试的所建议模型的数量(无论是否重新计算)进行比较,以确 定是否将要执行得出和测试所建议模型的另一个集合的其他迭代。在确定没有更多所建议 模型集合将要被得出和测试的点,无论所建议模型是什么,总体最佳建议模型都成为通过 RANSAC的执行所得出的模型。
[0016] 依次执行的RANSAC算法的部分可由一个处理器组件的单个核心来执行。那个处理 器组件的那个核心可基于具有使它更好地适合依次执行那些部分(包括但不限于执行概率 计算)的一个或多个特性来选择。并行执行的RANSAC算法的其他部分可由相同处理器组件 或不同处理器组件的一个或多个其他核心来执行。一个或多个其他核心可基于具有使一个 或多个其他核心更好地适合并行执行那些部分的一个或多个特性(包括但不限于运行多个 线程和/或执行数据的单指令多数据(SHffi)并行处理的能力)来选择。
[0017] 在一些实施例中,在依次执行RANSAC的部分中采用的核心可属于计算装置的中央 处理器(CPU),以及在并行执行RANSAC的其他部分中采用的一个或多个其他核心可属于那 个计算装置的图形处理单元(GPU) XPU和GPU可在计算装置的相同处理器组件中的半导体 管芯上实现。备选地,CPU和GPU可在多芯片模块(MCM)中携带和互连的独立半导体管芯上实 现,计算装置的单个处理器组件。作为又一个备选方案,GPU可实现为计算装置的不同控制 器处理器组件控制器的部分(例如实现图形子系统的图形控制器),其可访问结合了 CPU的 计算装置的主处理器组件并且在其控制下进行操作。
[0018] 与不同核心的物理实现无关,依次执行RANSAC的部分中采用的核心以及并行地执 行RANSAC的其他部分的一个或多个其他核心可经过该核心和一个或多个其他核心可访问 的存储装置的共享存储空间来交换信息。此外,共享存储空间可以是在由高速缓存至少部 分覆盖的地址范围可访问的。取决于所交换的信息和高速缓存的高速缓存线的相对大小, 大量性能有益效果可通过按照避免与向/从共享存储空间存储/检索信息关联的等待时间 的方式、经由高速缓存交换这种信息来实现。
[0019] 将要从其中得出模型的数据集和/或指示将要得出的模型的特性的定义数据可由 结合了不同核心的计算装置从一个或多个其他计算装置来接收。这可以是计算装置是可用 来执行例如RANSAC等的任务的计算装置集合(例如"服务器群")中的许多计算装置其中之 一的情况。作为举例,执行RANSAC以从数据集来得出模型的请求可由提交装置提交给计算 装置。在接收这种请求中,计算装置可从提交装置接收定义数据。此外,该请求可包括使计 算装置从存储服务器单独检索数据集的指示。
[0020]备选地,数据集和/或模型特性的指定可在计算装置中生成。这可以是应用例程要 求RANSAC被执行以得出模型的情况,作为较大任务的部分,例如识别两个或更多照相装置 的阵列所捕获的两个或更多帧中的像素集合之间的相关性,作为使用多个视觉角度来识别 图像处理(例如图像识别中的单应性)中的对象的部分。
[0021 ]在经过RANSAC的部分的这种混合依次和并行执行来得出模型时,描述模型本身的 信息或者基于所得出模型从后续处理所创建的其他数据可传送给另一个装置供使用。作为 举例,在RANSAC这样用来得出模型(作为较大任务的部分,例如识别和生成对象的三维模 型)的情况下,包括那个对象的可视化的结果数据可传送给查看装置,以便在显示器上可视 地呈现。备选地,这种可视化可直接由计算装置可视地呈现。
[0022] -般参照本文所使用的符号和术语,以下详细描述的部分可根据计算机或者计算 机网络上运行的程序过程来呈现。这些过程描述和表示由数据处理领域的技术人员用来向 本领域的其他技术人员最有效地传达其工作主旨。过程在这里以及一般被认为是产生预期 结果的独立操作序列。这些操作是要求物理量的物理操控的那些操作。这些量通常但不一 定采取能够被存储、传递、组合、比较以及以其他方式操控的电、磁或光信号的形式。主要为 了一般使用的原因,将这些信号称作位、值、元素、符号、字符、项、编号等,证明有时非常便 利。但是应当理解,所有这些及类似的项均与适当的物理量关联,并且只是应用到那些数量 的便捷标签。
[0023] 此外,常常按照诸如"添加"或"比较"之类的术语来提到这些操控,其通常与人类 操作员所执行的心理操作关联。但是,在形成一个或多个实施例的部分的本文所述操作的 任一个中,不需要人类操作员的这种能力。这些操作而是机器操作。用于执行各个实施例的 操作的有用机器包括通用数字计算机,如通过其中存储的、按照本文理论所编写的计算机 程序有选择地激活或配置,和/或包括专门构造用于所需目的的设备。各个实施例还涉及用 于执行这些操作的设备或系统。这些设备可专门构造用于所需目的,或者可包括通用计算 机。多种这些机器的所需结构将通过所给出的描述显现。
[0024] 现在参照附图,其中相似参考标号通篇用来表示相似元件。为了便于说明,以下描 述中提出大量具体细节,以便提供对其的透彻了解。但是可显而易见,即使没有这些具体细 节也能够实施新实施例。在其他情况下,众所周知的结构和装置采取框图形式示出,以便于 其描述。本发明在权利要求的范围之内涵盖所有修改、等效和备选方案。
[0025]图1示出结合了提交装置100、存储服务器300、计算装置500和查看装置700中的一 个或多个的模型处理系统1000的一实施例的框图。在模型处理系统1000中,具有在定义数 据130中定义的特性的模型由计算装置500从数据集330来得出,其中数据集330可以是包括 异常值(例如作为"噪声"的元素)的高比例的数据集。定义数据130可由计算装置500从提交 装置100作为从提交装置100所接收的执行RANSAC以得出模型的请求的部分来接收。数据集 330可由计算装置500从存储服务器300来检索,并且这种检索可由计算装置500响应从存储 服务器300的提交装置100所接收的请求的指示(作为数据集330被存储的位置)而执行。但 是,在其他实施例中,定义数据130或数据集330其中之一或两者可完全在计算装置500中生 成,而不是从另一个计算装置所接收。
[0026]在由计算装置500得出模型之后,计算装置500可传送图像数据730,其传递模型的 可视化或者传递由计算装置500在执行包括得出模型的较大任务中所创建的图像。这些计 算装置装置的每个可以是多种类型的计算装置中的任一种,非限制性地包括台式计算机系 统、数据输入终端、膝上型计算机、上网本计算机、平板计算机、手持个人数字助理、智能电 话、智能眼镜、智能手表、数码相机、结合到服装中的穿戴式计算装置、集成到车辆(例如汽 车、自行车、轮椅等)中的计算装置、服务器、服务器集群、服务器群等。
[0027] 如所示,这些计算装置100、300、500和700经过网络999交换传递数据集、模型特性 的定义数据、图像数据和/或相关数据的信号。但是,这些计算装置的一个或多个可经由网 络999在相互之间和/或与又一些计算装置(未示出)来交换与从数据集得出模型或者那个 模型的使用完全无关的其他数据。在各个实施例中,网络999可以是可能限制到在单个大楼 或者其他相对受限的区域中延伸的单个网络、可能延伸相当大的距离的连接网络的组合, 和/或可包括因特网。因此,链路999可基于可用以交换信号的多种通信技术的任一种(或组 合),非限制性地包括采用电和/或光传导电缆布线的有线技术以及采用红外、射频或其他 形式的无线传输的无线技术。
[0028]在备选实施例中,提交装置100、存储服务器300和查看装置700的一个或多个可按 照完全不同的方式耦合到计算装置500。在又一些实施例中,定义数据130、数据集330和图 像数据730的一个或多个可经由可拆卸介质(例如FLASH存储卡、光盘、磁盘等)在这些计算 装置之间来传递。
[0029] 在各个实施例中,计算装置500结合处理器组件550、高速缓存555、存储装置560、 显示器580、控制器600和接口 390中的一个或多个,以便将计算装置300耦合到网络999。处 理器组件550结合至少一个核心551。存储装置560存储定义数据130、数据集330、图像数据 730、工作数据335、测试数据530、控制例程540和结果数据630中的一个或多个。控制器600 结合处理器组件650和存储装置660中的一个或多个。处理器组件650结合一个或多个核心 651。存储装置460存储控制例程640的一个或多个。共享存储区565在存储装置560中定义, 其中使存储装置560的存储位置的子集是处理器组件550和650均可访问的,以实现其之间 的信息(包括数据集330、测试数据530和结果数据630)的交换。但是,共享存储区565的至少 一部分在由高速缓存555所缓存的地址范围是可访问的,使得在处理器组件550与650之间 所交换的至少部分信息可按照避免通过在存储装置560中存储数据或者从存储装置560来 检索数据中的等待时间所施加的延迟的方式经过高速缓存555来交换。
[0030] 控制例程540结合指令序列(其在处理器组件550上按照其作为计算装置500的主 处理器组件的作用是可操作的),以实现执行各种功能的逻辑。在一些实施例中,在运行控 制例程540中,处理器组件550可从其他计算装置接收定义数据130和数据集330其中之一或 两者,或者可生成定义数据130和数据集330其中之一或两者,如先前所述。处理器组件550 则将定义数据130和数据集330存储在存储装置560中。在这样做时,处理器组件550可将数 据集330存储在共享存储区565中,其中它成为处理器组件550和650均可访问的。
[0031] 定义数据130包括将要经由RANSAC所得出的数学模型的各种特性的指示,包括数 学模型的预期格式(例如方程、矩阵或者数学表达式的又一种格式)的指示。作为举例,如果 待得出的数学模型具有诸如线条、平面、曲线、椭圆、多边形等的几何形状,则定义数据130 可指示待得出的数学模型的类型具有表达几何形状中包含的点的坐标值之间的几何关系 的几何方程的格式。在其他示例中,定义数据130可指示表达(例如在空间域与频域之间或 者在两个空间坐标系之间的)变换是系数矩阵的模型的预期格式。待得出的模型的格式的 指示还为处理器组件550提供关于哪一个是得出模型所需的来自数据集330的数据元素的 最小数量的指示。在熟悉RANSAC的人员之中,元素的这种最小数量常常称作最小样本集合。 结合到MSS中的元素的每个从自其中得出模型的数据集中随机选择。
[0032] 处理器组件550则生成多个MSS的集合,以便作为测试数据530来提供给处理器组 件650。组成这些MSS的每个的数据的元素从组成数据集330的数据元素中随机选择。集合中 的MSS的数量可完全基于处理器组件650能够并行运行的一系列计算的实例的数量。作为举 例,处理器组件650可以能够总共运行并行执行的线程的的具体最大数量,其中在各线程 中,指令序列与其他线程无关地运行。在一些实施例中,处理器组件650的核心651的每个可 以能够与其他核心的每个对另一个线程的运行并行地运行这类线程的单个线程。作为替代 或补充,核心651的每个可结合寄存器组和/或支持S頂D操作的其他特征,其中相同数学和 其他运算能够对多个完全独立数据同时执行。换言之,处理器组件550生成多个MSS,其匹配 处理器组件650能够并行执行操作的数据集的数量。
[0033]处理器组件550还将待得出的模型的特性的指示存储在测试数据530中,例如先前 从定义数据130所检索的预期格式的指示。处理器组件550还将拟合阈值存储在测试数据 530中,以便由处理器组件650在测试所建议模型的每个中采用。处理器组件550然后向处理 器组件650发信号通知,以便使用测试数据530中的信息来生成多个所建议模型的集合,使 用拟合阈值来测试它们与数据集330的拟合度,并且在结果数据630中为处理器组件550提 供那些测试的结果。
[0034]控制例程640结合指令序列(其在处理器组件650上按照其作为计算装置500的控 制器600的控制器处理器组件的作用是可操作的),以实现执行各种功能的逻辑。在运行控 制例程640中并且响应来自处理器组件550的信号,处理器组件650生成所建议模型的集合, 各用于处理器组件550在测试数据530中提供的MSS之一。处理器组件650通过使用支持多个 线程的执行、SB?支持和/或如可在处理器组件650的架构中实现的其他并行处理技术的多 个核心651并行地执行该集合的所有所建议模型的这个生成。
[0035] 在得出MSS的每个的所建议模型之后,处理器组件650则采用数据集330中的数据 的所有元素来测试所建议模型的每个。更具体来说,对于所建议模型的每个,处理器组件 650检查在处于拟合阈值之内的程度上数据集330的多少数据元素拟合所建议模型。对于每 个所建议模型,在拟合阈值之内拟合的数据元素被确定为那个所建议模型的"内点",而在 拟合阈值之内不拟合的数据元素被确定为那个所建议模型的"异常值"。在熟悉RANSAC的人 员之中,来自数据集的所建议模型的所有内点的集合常常称作"一致集"。处理器组件650将 处理器组件650所得出的所有所建议模型的指示存储在结果数据650中。处理器组件650还 将关于多少内点存在于所建议模型的每个的一致集中的指示存储在结果数据650中。处理 器组件650则采用关于所建议模型的这个集合的推导和测试完成的指示来发信号通知处理 器组件550。
[0036]图3更详细示出处理器组件550与650之间经由共享存储区565的信息的这种交换 的示例实施例。如所示,处理器组件550从数据集330生成多个MSS 533的集合,并且在测试 数据530中指示多个MSS 533的集合。处理器组件550还将模型特性531包含在测试数据530 中,以便对处理器组件650将这类特性指定为模型的预期格式。处理器组件550还包括拟合 阈值537,以指定数据集330的各数据元素必须拟合所建议模型以便被确定为那个所建议模 型的内点并且因此包含在那个模型的一致集中的程度。
[0037]又如图3所示,处理器组件651经过多个核心651(各能够支持与其他核心651并行 运行至少一个线程)的提供来实现并行处理。在由处理器组件650对控制例程640的运行期 间,核心651的每个从共享存储区565中检索模型特性531和测试数据530的MSS 533的对应 MSS。核心651的每个则使用模型特性531以及它的MSS 533的对应MSS来生成对应所建议模 型。核心651的每个则检索数据集330和测试数据530的拟合阈值537。核心651的每个采用其 对应所建议模型来测试数据集330的数据元素的每个的拟合度,以确定哪些是其对应所建 议模型的一致集的内点以及哪些是异常值。核心651的每个然后将其对应所建议模型636的 指定连同指定其对应所建议模型的一致集中的内点的量的模型拟合结果637的指示一起存 储在结果数据630中。
[0038]图4更详细示出经由共享存储区565的信息的这种交换的另一个示例实施例。处理 器组件650再次检索多个MSS 533(更具体来说标记为533a-d)连同模型特性531和拟合阈值 537。但是,与图3的示例实施例中所示和所述的不同,图4中,处理器组件650的核心651的至 少一个包括寄存器组652,其中各寄存器划分为多个通道,作为提供对SMD操作的支持的部 分(其中相同数学运算能够对多个独立数据并行地执行)。
[0039]作为利用通过使用S頂D操作对并行性的这种支持的部分,MSS 533a_d的每个分别 分配给通道653a-d的不同通道。在通道653a-d的每个中,模型特性531和MSS 533a-d的对应 MSS用来生成对应所建议模型。数据集330和拟合阈值537然后被检索,并且在通道653a-d的 每个中用来测试数据集330的数据元素的每个与对应所建议模型的拟合度,以确定数据集 330的数据元素的哪些是对应所建议模型的一致集的内点。对于通道653a-d的每个,对应所 建议模型的对应指定636a-d(其各是指定636的实例)存储在结果数据630中。另外,对于通 道653a-d的每个,指定对应一致集中的内点的量的模型拟合结果637a-d(其各是模型拟合 结果637的实例)的对应指示也存储在结果数据630中。
[0040]因此,如所述并且如图3和图4所示,对多个所建议模型的并行推导和测试的支持 可经过多个核心651的提供或者经过核心651其中之一的寄存器组652的寄存器中的多个通 道的提供来提供。在又一些实施例中,两种方式可结合以实现更大并行性,其中处理器组件 650结合多个核心651,并且那些核心的每个结合支持多个通道的寄存器652的寄存器组。 [0041]回到图1,在进一步运行控制例程540中并且响应来自处理器组件650的关于测试 数据530的MSS集合的所建议模型的集合的推导和测试完成的信号,处理器组件550确定新 集合的哪一个所建议模型是最佳的。在一些实施例中,处理器组件550可通过比较结果数据 630中关于多少内点处于所建议模型的新集合的所建议模型的每个的一致集中的指示来这 样做。新集合的所建议模型中具有其一致集中的内点的最大数量的所建议模型则被认为是 所建议模型的新集合的最佳建议模型。新集合中的所建议模型的最佳建议模型则与来自所 建议模型的所有先前所得出和测试的集合的总体最佳建议模型进行比较。所有先前集合的 总体最佳建议模型的指定可作为工作数据335的部分连同关于数据集330的多少数据元素 是其一致集中的内点的指示一起来存储和保持。如果所建议模型的新集合中的所建议模型 的最佳建议模型被确定为比所建议模型的所有先前所得出和测试的集合的总体最佳建议 模型要好,则新集合中的所建议模型的最佳建议模型成为新的总体最佳建议模型。在那种 情况下,新集合中的所建议模型的最佳建议模型的指定连同关于数据集330的多少数据元 素是其一致集中的内点的指示一起来存储在工作数据335中。
[0042]如果所建议模型的所有先前所得出和测试的集合的总体最佳建议模型采用所建 议模型的新集合的最佳建议模型来取代,则处理器组件550可重新计算必须被得出和测试 以得出准确模型(其在来自所有所建议模型的预定概率度之内最佳地拟合数据集330)的所 建议模型的总量。与是否取代所建议模型的所有先前所得出和测试的集合的总体最佳建议 模型无关,将至此所生成和测试的所建议模型的量与必须被得出和测试以确定所建议模型 的另一个集合是否将要被得出和测试的所建议模型的总量进行比较。如果不是的话,则无 论所建议模型是什么,当前总体最佳建议模型(其指定在工作数据335中保持)都成为通过 RANSAC的这个执行所得出的模型。处理器组件550还可将至此所生成和测试的所建议模型 的量作为工作数据335的部分连同必须被得出和测试的所建议模型的总量一起来存储和保 持。
[0043]在一些实施例中,概率是RANSAC将错误地选择不准确建议模型作为准确模型的 (1-W),其中W是至此所得出和测试的所建议模型之中的总体最佳建议模型的一致集中的内 点的量,以及C是从数据集330中随机选择以生成每个MSS的数据元素的量。不准确建议模型 是从MSS所得出的包括作为准确模型的异常值的至少一个随机选择数据元素的所建议模 型。因此,在K是必须被得出和测试的所建议模型的总量的情况下,从其中得出所建议模型 的所有MSS包括准确模型的至少一个异常值以使得没有所建议模型是准确的概率为(1-W e )K〇
[0044] 因此,Κ应当选择为足够大以使(l-We)K成为等于或小于l-ρ的可接受故障阈值,其 中Ρ是与得出准确模型的预期确定度关联的预定置信等级。因此,在这类实施例中,Κ的值计 算如下:
因此,在这类实施例中,在生成MSS的集合并且均得出和测试所建议模型的集合的各迭 代之后,将至此所得出和测试的所建议模型的量与确定是否执行另一个这种迭代所需的所 建议模型的总量Κ进行比较。在给定所建议模型的各集合由所建议模型的量(其基于多少处 理器组件650能够并行地得出和测试)来组成的情况下,经过多次迭代实际得出和测试的所 建议模型的量可以是各集合中的所建议模型的量的倍数。因此,所得出和测试的所建议模 型的量最终可超过被得出和测试所需的所建议模型的量Κ较小量。
[0045] 图5示出采用并行和串行处理的混合来执行RANSAC的一实施例的示例使用。应当 注意,这是寻求最佳地拟合平面的点的集合的线条的数学模型的极简化示例,其中每个这 种点是数据集330的成员。如本领域的技术人员熟知,在通过轴X和Y所限定的平面中延伸的 线条通常采用方程、例如y=ax+b来描述,其中a和b的值必须被确定以得出所示线条的准确 模型。定义数据130可包括关于这个方程的格式是将要由处理器组件650来得出的所建议模 型的预期格式的指示以及关于在每个MSS中要求表示平面中的两个点的数据集330的两个 数据元素以实现所建议模型的推导的指示。
[0046]处理器组件550生成MSS 533的集合,其各包括通过数据集330所表示的点的一对 随机选择点,并且将MSS 533的集合作为测试数据530的部分来存储。处理器组件550还将包 括y=ax+b方程格式的指示的模型特性531的指示作为测试数据530的部分连同拟合阈值537 的指示一起来存储。处理器组件550则向处理器组件650发信号通知,以得出所建议模型的 集合,测试它们,并且在结果数据630中提供那个测试的结果。
[0047]响应来自处理器组件550的信号,处理器组件650采用MSS 533的集合和模型特性 531来得出所建议模型的对应集合,每个所建议模型对应于MSS 533其中之一。每个所建议 模型是经过从数据集330中随机选择的两个点延伸的不同的所建议线条(只有其中之一示 为图5中的虚线)的数学表达式。所建议模型的每个与从MSS 533的集合所得出的所建议模 型的集合中的所有其他所建议模型并行地得出。
[0048]在得出所建议模型的集合之后,处理器组件650通过在拟合阈值537之内的程度上 确定数据集330的点的每个是否拟合所建议模型的每个,并行地测试该集合的所建议模型 的每个。如图5所示,拟合阈值537可指定从平面中离与使那个点足够良好地拟合以便作为 那个所建议模型的一致中包含的内点的所建议模型对应的线条的最大距离。如所示,通过 拟合阈值537所指定的距离可相对所建议线条的所示示例正交的测量。在并行地测试所建 议模型的集合的所有所建议模型之后,处理器组件650将所建议模型的指定636作为结果数 据630连同指定所建议模型的每个的一致集中的内点的量的模型拟合结果637-起来存储。 处理器组件650则向处理器组件550发信号通知关于所建议模型的集合的测试的推导完成。 [0049]响应来自处理器组件650的信号,处理器组件550分析模型拟合结果637,以确定所 建议模型的集合的哪些所建议模型在测试期间被发现最佳地拟合数据集330的点。在一些 实施例中,这可通过比较所建议模型的每个的一致集中的内点的量以识别具有其一致集中 的内点的最大数量的所建议模型来确定。该集合的所建议模型的那个最佳建议模型则与来 自模型的所有先前集合(若存在模型的先前集合)的总体最佳建议模型进行比较。如果该集 合的最佳建议模型与来自所有先前集合的总体最佳建议模型相比是与数据集330的点的更 好拟合(例如在其一致集中具有内点的更大数量),则该集合的最佳建议模型成为新的总体 最佳建议模型。另外,如果该集合的最佳建议模型与来自所有先前集合的总体最佳建议模 型相比是更好的拟合,则以预定确定度来确定准确模型所需的所建议模型的数量至少部分 基于新的总体最佳建议模型的一致集中的内点的量来重新计算。与这类重新计算是否发生 无关,至此所得出和测试的所建议模型的量则与确定所建议模型的另一个集合是否将要被 得出和测试这样要求的所建议模型的量进行比较。
[0050]来看图1,在由处理器组件650对所建议模型的集合的并行得出和测试期间,在继 续运行控制例程540中,处理器组件550可预占地生成MSS的下一个集合,并且将它们存储在 测试数据530中,为可能是其他迭代作准备。尽管关于其他迭代是否将要执行的不定性,预 占地生成MSS的下一个集合可被认为是合乎需要的,以便使处理器组件650对所建议模型的 集合的得出和测试之间的延迟为最小,以增加执行RANSAC的速度。
[0051 ]如先前所述,共享存储区565的至少一部分可由高速缓存555来缓存。再次取决于 相对于数据集330、测试数据530和/或结果数据630的大小的高速缓存555的大小和架构,也 许有可能经过高速缓存555在处理器组件550与650之间交换这种信息,而没有引起因在存 储装置560中存储数据或者从存储装置560来检索数据所需的时间引起的延迟。作为替代或 补充,在一些实施例中,高速缓存555可以是处理器组件550和650中的一个或另一个可控制 的,以便分配高速缓存555的一部分,以用作在其之间传递这种数据的缓冲器,而完全没有 涉及对存储装置560的读或写操作。
[0052]如先前所述,在没有所建议模型的更多集合将要被得出和测试的点,无论所建议 模型当前是什么,总体最佳建议模型都成为通过RANSAC的这个混合并行和依次执行所得出 的模型。处理器组件550则可操作接口 590,以便传送这个模型的指示,和/或向另一个计算 装置传送从这个模型所得出的其他数据。作为举例,处理器组件550可生成模型的可视化, 并且将它作为图像数据730来存储,其然后可由处理器组件550传送给查看装置700,以便在 其显示器780上可视地呈现。备选地,处理器组件550可在显示器580上更直接地可视呈现图 像数据730(若存在的话)。在另一个示例中,RANSAC的并行和依次执行的这种混合可用来得 出模型,作为较大功能的部分,例如使用模型生成视觉表象(例如渲染动画的图像)或者作 为图像处理的部分识别对象。因此,图像数据730可表示至少部分通过使用模型所渲染的图 像,或者可表示使用模型在图像中识别的对象的方面。
[0053]图2示出包括计算装置500的备选实施例的模型处理系统1000的备选实施例的框 图。图2的模型处理系统1000的备选实施例与图1的实施例在许多方面相似,并且因而相似 参考标号通篇用来表示相似元件。但是,与图1的计算装置500不同,图2的计算装置500没有 结合控制器600。因此,与图1的计算装置500不同,在图2的计算装置500中,正是处理器组件 550结合两种核心551和651,并且因此运行两种控制例程640,而不是存在这样作的独立处 理器组件650。
[0054] 因此,在图2的运动处理系统1000的备选实施例中,处理器组件550执行RANSAC的 混合依次和并行处理执行的一些部分的依次处理和其他部分的并行处理。更准确来说,核 心551可依次执行从数据集330生成MSS 533,以及一个或多个核心651 (在这个备选实施例 中也结合到处理器组件550中)可并行地执行所建议模型的集合的推导和测试。在这个备选 实施例中,高速缓存555还可结合到处理器组件550中。
[0055] 在各个实施例中,处理器组件550和650的每个可包括大量市场销售处理器的任一 个。另外,这些处理器组件的一个或多个可包括多个处理器、多线程处理器、多核处理器(无 论是相同还独立管芯上共存的多个核心)和/或用以按照某种方式链接多个物理上独立的 处理器的另外某个种类的多处理器架构。
[0056] 此外,处理器组件550和/或650的核心551和/或651各可采用异构核心对(其包括 能够以更大功率消耗为代价来取得较高处理吞吐量的一个核心以及能够以较慢处理吞吐 量为代价来取得较低功率消耗的另一个核心)来实现。在核心551和/或651的这类实现中, 每对这类异构核心的核心之间的自动切换可在各种时间并且按照对操作系统和/或应用例 程充分透明的方式(这种异构核心对被感知为单个核心)响应处理吞吐量的等级而发生。 [0057]作为举例,在核心551参与生成MSS 533的新集合或者参与比较内点的量的情况 下,组成核心551的异构核心对的较高处理吞吐量核心可处于操作中。但是,取决于所建议 模型636的新集合的并行推导和测试所需的时间量,可使核心551在等待这种推导和测试完 成的同时保持相对空载,使得那个异构核心对的较低功率消耗核心可处于操作中。对应地, 虽然处理器组件650的一个或多个核心651参与得出和测试所建议模型636的新集合,但是 组成核心651的每个的异构核心对的每个的较高处理吞吐量核心可处于操作中。但是,取决 于内点值的量的比较所需的时间量,可使一个或多个核心651在等待这类比较结束并且进 行关于所建议模型的另一个集合是否将要被得出和测试的确定时保持相对空载,使得那些 异构核心对的每个的较低功率消耗核心可处于操作中。
[0058] 虽然处理器组件550和650的每个可包括多种类型的处理器的任一种,但是设想控 制器600(若存在的话)的处理器组件650可略微专门化和/或优化成执行与图形和/或视频 相关的任务。更广义来说,设想控制器600包含计算装置500的图形子系统,以便实现使用与 处理器组件650及其更密切相关组件分开和不同的组件来执行与图形渲染、视频压缩、图像 重新缩放等相关的任务。
[0059]在各个实施例中,存储装置560和660的每个可基于大量信息存储技术的任一种, 可能包括要求电力的不间断提供的易失性技术,以及可能包括需要使用可以是或者可以不 是可拆卸的机器可读存储介质的技术。因此,这些存储装置的每个可包括存储装置的大量 类型的任一种(或者类型的组合),非限制性地包括只读存储器(R0M)、随机存取存储器 (RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDR-DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、 可编程ROM(PROM)、可擦可编程ROM(EPROM)、电可擦可编程ROM(EEPROM)、闪速存储器、聚合 物存储器(例如铁电聚合物存储器)、奥氏存储器、相变或铁电存储器、硅-氧化物-氮化物_ 氧化物-硅(S0N0S)存储器、磁或光卡、一个或多个单独铁磁盘驱动器或者组织为一个或多 个阵列的多个存储装置(例如组织为独立磁盘冗余阵列或RAID阵列的多个铁磁盘驱动器)。 应当注意,虽然这些存储装置的每个示为单个块,但是这些的一个或多个可包括可基于不 同存储技术的多个存储装置。因此,例如,这些所示存储装置的每个的一个或多个可表示光 驱动器或闪速存储卡读取器(可用以在某种形式的机器可读存储介质上存储和输送程序 和/或数据)、铁磁盘驱动器(将程序和/或数据本地存储相对延长时期)以及一个或多个易 失性固态存储器装置(实现对程序和/或数据的较快访问,例如SRAM或DRAM)的组合。还应当 注意,这些存储装置的每个可由基于相同存储技术的多个存储组件来组成,但是其可因用 途的专门化(例如,一些DRAM装置用作主存储装置,而其他DRAM装置用作图形控制器的不同 帧缓冲器)而单独保持。
[0060]在各个实施例中,接口590可采用大量信令技术的任一种,从而使这些计算装置能 够如所述耦合到其他装置。这些接口的每个包括提供必要功能性的至少一部分以实现这种 耦合的电路。但是,这些接口的每个也可至少部分采用处理器组件的对应处理器组件所运 行(例如以便实现协议栈或其他特征)的指令序列来实现。在采用电和/或光传导电缆布线 的情况下,这些接口可采用符合大量工业标准的任一种的信令和/或协议,非限制性地包括 RS-232C、RS-422、USB、以太网(IEEE-802.3)或IEEE-1394。在需要使用无线信号传输的情况 下,这些接口可采用符合多种工业标准的任一种的信令和/或协议,非限制性地包括IEEE 802 · lla、802 · llb、802 · llg、802 · 16、802 · 20(通常称作"移动宽带无线接入")、蓝牙、ZigBee 或者蜂窝无线电话服务(例如采用通用分组无线业务的GSM(GSM/GPRS)、CDMA/lxRTT、增强 全球演进数据速率(EDGE)、仅演进数据/优化(EV-D0)、数据和语音的演进(EV-DV)、高速下 行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)、4G LTE等)之类的蜂窝无线电话 服务。
[0061]图6更详细示出图1或图2的视频处理系统1000的一实施例的一部分的框图。更具 体来说,图6示出计算装置500的操作环境的方面,包括控制器600的操作环境,其中处理器 组件550在运行控制例程540中依次执行RANSAC的部分,并且处理器组件550或650并行地执 行所建议模型的集合的推导和测试。
[0062]图7更详细示出那个部分的操作的时间方面,具体是计算装置500和控制器600的 操作环境之间的并行性的方面。图8示出确定停止RANSAC的执行的时间的那个部分的示例 逻辑的伪代码。如本领域的技术人员可理解,包括组成其的各组件的控制例程540和640被 选择成在被选择以实现处理器组件550或650的可适用处理器组件的无论任一种类型的(一 个或多个)处理器上是可操作的。
[0063]在各个实施例中,控制例程540和640的每个可包括操作系统、装置驱动程序和/或 应用级例程(例如,在光盘介质上提供的所谓"软件套装"、从远程服务器所得到的"小应用 程序"等)中的一个或多个。在包括操作系统的情况下,操作系统可以是适合于处理器组件 550或650的任一个对应处理器组件的多种可用操作系统的任一种。在包括一个或多个装置 驱动程序的情况下,那些装置驱动程序可提供对计算装置500或控制器600的无论是硬件还 是软件组件的多种其他组件的任一种的支持。
[0064] 控制例程540可包括由处理器组件550可执行的通信组件549,以便操作接口 590以 经由网络999传送和接收信号,如上所述。在所接收信号之中可以是经由网络999在计算装 置100、300、500或700的一个或多个之间传递定义数据130、数据集330和/或图像数据730的 信号。如本领域的技术人员将会理解,通信组件549选择成与被选择以实现接口 590的任一 种类型的接口技术是可配合操作的。
[0065]控制例程540可包括由处理器组件550可执行的高速缓存组件545,以便将高速缓 存555的至少一部分配置成用作处理器组件550与650之间的缓冲器,以使数据集330、测试 数据530和结果数据630中的一个或多个能够在其之间只经过高速缓存555来交换。作为替 代或补充,高速缓存组件545可将高速缓存555的至少一部分配置成缓存共享存储区565的 至少一部分。
[0066] 控制例程540可包括由处理器组件550可执行的测试准备组件543,以便将信息存 储在测试数据530中,为所建议模型的新集合的生成和测试作准备。如所示,测试准备组件 543可结合MSS生成器5433,以便生成作为所建议模型的新集合的基础的MSS 533的新集合。 测试准备组件543则可将MSS 533的新集合作为测试数据530的部分来存储。如先前所述, MSS 533的新集合的推导可在从MSS 533的上一个集合的新模型的生成和测试的同时预占 地进行。测试准备组件543可检索拟合阈值和/或所建议模型的新集合的所建议模型将要具 有的特性(例如格式)的指示,并且将那些指示分别作为拟合阈值537和/或模型特性531存 储在测试数据530中。
[0067]控制例程640可包括由处理器组件650可执行的推导组件643,以便基于测试数据 530的MSS 533的新集合并行地得出所建议模型636的新集合。推导组件643可检索模型特性 531以及测试数据530的MSS 533,以得到所建议模型的每个将要具有的格式的指示。在生成 所建议模型636的新集合时,推导组件643则可将所建议模型636的新集合的所建议模型636 的每个的指定作为结果数据630的部分来存储。
[0068] 控制例程640可包括由处理器组件650可执行的测试组件647,以便并行地测试推 导组件643所生成的所建议模型636的新集合,以供与数据集330的数据元素的拟合。测试组 件647可从测试数据530来检索拟合阈值537以及检索数据集330。在所建议模型636的新集 合的测试完成时,测试组件647可将所建议模型636的每个与数据集330的数据元素的拟合 度的指示作为结果数据630的模型拟合结果637来存储。如先前所述,拟合度的指示可包括 作为新集合中的所建议模型的每个的一致集中的内点的数据集330的数据元素的数量的指 不。
[0069] 控制例程640可包括由处理器组件650可执行的线程分配器645,以便例示执行的 多个线程,以实现由推导组件643和测试组件647分别对所建议模型636的每个新集合的得 出和测试。更准确来说,线程分配器645可例示将要与MSS生成器5433所生成的MSS 533的新 集合的每个MSS 533关联的独立线程。从MSS 533其中之一的每个所建议模型636的推导可 在与MSS 533其中之一关联的线程上进行以及后续测试每个所建议模型636。
[0070] 控制例程540可包括由处理器组件550可执行的比较组件547,以控制RANSAC的执 行的进度。比较组件547可检索结果数据630的模型拟合结果637,并且比较其中所建议模型 的新集合的所建议模型的每个的拟合度的指示,以确定新集合的哪一个最佳地拟合数据集 330。比较组件547则可将新集合的所建议模型的最佳拟合的拟合度的指示与所建议模型的 所有先前集合的总体最佳建议模型的拟合度的工作数据335中保持的指示进行比较。如所 示,比较组件547可结合选择组件5477,以便在新集合的最佳建议模型在比总体最佳建议模 型更大的程度上拟合数据集330时选择所建议模型的新集合的最佳拟合建议模型成为新的 总体最佳建议模型。如所述,所建议模型在其一致集中具有更多数量的内点时可被确定为 更好的拟合。如果所建议模型的新集合的最佳建议模型是更好的拟合,则选择组件5477从 结果数据630来检索那个模型636的指定,并且将那个指定连同数据集330的多少数据元素 是新集合的最佳建议模型的一致集中的内点一起存储在工作数据335中。
[0071] 如果新集合的所建议模型的最佳拟合是更好的拟合以使得它成为新的总体最佳 建议模型,则比较组件547可重新计算以预定确定度来确定准确模型所需的所建议模型的 量。与总体最佳建议模型是否被取代以使得可以存在或者可以不存在所需的所建议模型的 数量的重新计算无关,通过被得出和测试的所建议模型的各集合,比较组件547将至此所得 出和测试的所建议模型的数量与确定所建议模型的另一个新集合是否将要被得出和测试 所需的所建议模型的数量进行比较。比较组件547可将至此得出和测试了多少所建议模型 以及以预定确定度来确定准确模型要求多少所建议模型的指示存储和保持在工作数据335 中。如果至此所得出和测试的所建议模型的量已经满足或超过所需量,则不得出和测试所 建议模型的更多集合,并且无论所建议模型当前是什么,总体最佳建议模型(其指定存储在 工作数据335中)都成为通过RANSAC的执行所得出的模型。
[0072] 更具体来看图7,如采用从左到右的时间线进展所示,可存在并行地运行控制例程 540和640的每个的至少一部分的周期,其与控制例程540运行(其中确定是否要求RANSAC的 进一步执行)的其他周期进行交替。更具体来说,可存在与运行控制例程540以预占地得出 MSS 533的新集合并行地运行控制例程640以得出和测试所建议模型636的集合的周期。 [0073]在并行执行的这类周期期间,控制例程640的线程分配器645将线程(例如所示线 程1至R)关联到先前从控制例程540的MSS生成器5433所接收的MSS 533的集合的对应MSS 533(例如的对应MSS)。在这些线程的每个中,所建议模型636的集合的对应所建 议模型636 (例如所建议模型施至施的对应所建议模型)从MSS 533的集合来得出。然后,在这 些线程的每个中,包括所建议模型636的每个的内点的量(例如内点的量Wi至Wr)的对应指示 的模型拟合结果637的指示从那些所建议模型636的每个针对数据集330的测试来生成。如 所述,由线程分配器645与MSS 533的集合的对应MSS所关联的线程1至R可并行运行。在一些 实施例中,线程1至R的每个可被指配由不处理器组件650的同核心651来运行,由此同时实 现所有线程1至R的并行执行。但是,在不存在充分数量的可用核心651以实现所有线程1至R 的同时执行的实施例中,线程1至R的子集可在可用数量的核心651之间并行地运行。
[0074] 又在并行执行的这类周期期间,控制例程540的MSS生成器5433可预占地得出MSS 533的另一个集合(例如MSSR+1至MSS2R),为所建议模型636的另一个新集合(例如M R+1SM2R) 将要被得出和测试的概率作准备。如先前所述,由MSS生成器5433对MSS 533的比较小的计 算复杂生成可使用由处理器组件550所运行的依次处理(例如单个线程)来执行。
[0075]在其他周期期间,比较组件547执行所建议模型636的新集合的内点的量(例如分 别为所建议模型%至跑的内点的量1至%)针对至此所测试的所有所建议模型的总体最佳 建议模型Μ的内点的量W的比较。使至此已经得出和测试的所建议模型636的量N递增,以反 映控制例程540和640的并行执行的上一个周期期间的所建议模型636的新集合的推导和测 试的完成。然后,检查所建议模型636的新集合的所建议模型636的任一个与总体最佳建议 模型Μ相比是否为数据集330的更好拟合。如所述,如果所建议模型636的新集合的所建议模 型636其中之一的内点的量具有比总体最佳建议模型Μ要大的内点的量(例如,W^Wr其中之 一的量大于W),则所建议模型636的新集合的那个所建议模型636成为新的总体最佳建议模 型M。如果这样取代总体最佳建议模型M,则更新与最佳总体建议模型Μ关联的内点的量W的 指示,以反映与新的最佳总体建议模型Μ关联的内点的量。此外,如果这样替代总体最佳建 议模型Μ,则以预定确定度来确定准确模型所需的所建议模型的量Κ根据与新的总体最佳建 议模型关联的内点的新量W来重新计算。
[0076] 在总体最佳建议模型Μ的条件替代、内点的关联量W的更新以及所建议模型636的 所需量Κ的重新计算之后,检查至此已经得出和测试的所建议模型636的量Ν是否仍然小于 以预定确定度来确定准确模型所需的所建议模型636的量Κ。如果Ν不再小于Κ,则执行 RANSAC的控制例程540和640的进一步执行停止,并且当前总体最佳建议模型Μ被认为是通 过RANSAC的执行所得出的准确模型。但是,如果Ν小于Κ,则开始控制例程540和640的并行执 行的另一个周期。具体来说,从MSS 533 (例如MSSR+1SMSS2R)的另一个新集合来得出所建议 模型636 (例如所建议模型跑^至跑^的另一个新集合连同那些所建议模型636相对数据集 330的测试一起开始,并且这些与MSS 533(例如MSS2R+1至MSS3R)的又一个新集合的预占生成 并行地开始。
[0077] 图8示出控制例程540的至少比较组件547的逻辑在确定是否继续执行单应应用中 的RANSAC中的操作示例。在这个示例中,以预定确定度(例如在Ι-p的预定可接受故障阈值 之内)来确定准确模型所需的所建议模型636的量K最初设置成2000的量,其定义将要尝试 的所建议模型636的上限。定义那个阈值的预定置信等级p设置为0.995。所建议模型636的 各集合中将要得出和测试的所建议模型636的量itersPerChunk设置成500的量,其定义将 要在控制例程640的整个执行中并行得出和测试的所建议模型636的上限。
[0078]为了准备执行,仍然要得出和测试以得出量K的所建议模型636的量leftlters最 初设置为K(例如2000的初始量)。将要在这种推导和测试的当前执行中并行地得出和测试 的所建议模型636的量curNumOfModels初始化为量intersPerChunk,连同将要在这种推导 和测试的后续执行中并行地得出和测试的所建议模型636的量nextNumOfModel s。至此所得 出和测试的总体最佳建议模型的内点的量W初始化为0。
[0079]以MSS选择开始控制例程540的逻辑的至少一部分的执行,测试准备组件543的执 行以500的量的MSS 533的集合的生成进行,其经过共享存储区565来提供,以实现由处理器 组件650对控制例程640的运行。如先前所述,控制器600可以是计算装置500的图形子系统, 其中处理器组件650用作其图形处理单元(GPU)。控制例程540的至少一些部分的进一步执 行可等待执行640的完成,以并行地得出和测试总共500个所建议模型636。
[0080]在总共500个所建议模型636的这种并行推导和测试之后,控制例程540的逻辑的 一部分的执行可恢复,其中对finBestH的调用实现比较组件547的逻辑的一部分。为了准备 执行,与总体最佳建议模型Μ关联的内点的量previousW初始化为当前量W,以及下标i初始 化为0。下标i用来控制关联所建议模型636的新集合的每个所建议模型636的内点的量1与 关联总体最佳建议模型Μ的内点的量W的迭代比较。更准确来说,在刚得出和测试的所建议 模型636的新集合中存在500个所建议模型636的情况下,i从0迭代到499,以引起W与每一个 Wi的比较。
[0081 ]如果作为这类比较的结果,所建议模型636的新集合的所建议模型636其中之一被 发现与关联总体最佳建议模型Μ的内点的量W相比具有内点的更大量I,则新集合的所建议 模型636成为新的总体最佳建议模型Μ。相应地,量W更新成量Wi,并且量Κ根据内点的新量W 来重新计算(设置成newK)。
[0082]与是否因存在新的总体最佳建议模型Μ而更新确定准确模型所需的所建议模型 636的量Κ无关,更新仍然要被得出和测试以得出量Κ的所建议模型636的量leftlters。如果 量left Iters因被更新而下降到0(应当注意,明确防止left Iters下降到低于0),则RANSAC 的进一步执行停止,以及当前总体最佳建议模型Μ被认为是经由RANSAC所得出的准确模型。 [0083]但是,如果量lef titers尚未因被更新而下降到0,则重新计算指示所建议模型636 的下一个集合中将要得出和测试的所建议模型636的量的量nextNumOfModels。如果量 16代1丨6^在被更新之后处于500或以上,则量1161丨1'|111110现〇(1618保持为设置成其初始值 500,从而指示所建议模型636的下一个新集合包括500个所建议模型636的量。但是,如果量 leftlters在被更新之后下降到低于500,则量nextNumOfModels设置成小于500的值,以便 仅使得出量K所需的所建议模型636的量随后被得出和测试。
[0084]图9示出逻辑流程2100的一个实施例。逻辑流程2100可表示由本文所述的一个或 多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2100可示出由处理器组件 550和/或650在至少运行控制例程540和640中所执行的和/或由计算装置500或控制器600 的(一个或多个)其他组件分别执行的操作。
[0085]在2110,计算装置的处理器组件(例如计算装置500的处理器组件550)从数据集依 次生成MSS的新集合。如所述,MSS的集合中的MSS的量可选择成匹配在所建议模型的新集合 中将要并行生成的所建议模型的量。
[0086] 在2120,相同和/或一个或多个其他处理器组件的至少一个核心(例如处理器组件 550s和/或650的一个或多个核心651)从MSS的新集合和所建议模型的一个或多个特性(例 如可在模型特性531中指示的所建议模型的格式)的指示并行地生成所建议模型的新集合。 如所述,执行RANSAC的部分中涉及的处理器组件和/或处理器组件的核心之间的通信可通 过使用高速缓存和/或由高速缓存所缓存的共享存储空间(例如高速缓存555和/或共享存 储空间565)进行。
[0087]在2130,并行地测试所建议模型的新集合,以确定新集合中的所建议模型的每个 与数据集的数据元素的拟合度。对于每个所建议模型,拟合阈值可用来确定数据集的哪些 数据元素是所建议模型的内点(并且因此处于其一致集中),而哪些是那个所建议模型的异 常值。
[0088]在2140,确定新集合的所建议模型的哪一个最佳地拟合数据集。然后确定新集合 的所建议模型的最佳拟合是否比拟合来自所建议模型的所有先前所得出和测试的集合的 所有所建议模型的数据集的总体最佳建议模型更好地拟合数据集。如先前所述,每个所建 议模型的拟合度可基于数据集的多少数据元素是所建议模型的一致集的内点,其中所建议 模型具有带有被认为是更好拟合的内点的更大量的一致集。
[0089] 在2150,如果所建议模型的新集合的最佳拟合建议模型与所建议模型的所有先前 集合的总体最佳建议模型相比是更好拟合,则新集合的最佳拟合建议模型在2152成为新的 总体最佳建议模型。在总体最佳建议模型的这个变化之后,将要得出和测试以便以预定确 定度来确定准确模型所需的模型的量在2154重新计算。
[0090] 与是否改变总体最佳建议模型以及重新计算将要得出和测试所需的所建议模型 的量无关,在2160,将至此所得出和测试的所建议模型的量与所建议模型的那个所需量进 行比较,以确定所需量是否被至此所得出和测试的量超过。如果不是的话,则执行MSS的另 一个集合的生成和所建议模型的另一个集合的推导和测试。
[0091] 图10示出逻辑流程2200的一个实施例。逻辑流程2200可表示由本文所述的一个或 多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2200可示出由处理器组件 550在至少运行控制例程540中所执行和/或由计算装置500的(一个或多个)其他组件所执 行的操作。
[0092]在2210,计算装置的处理器组件(例如计算装置500的处理器组件550)将所建议模 型的特性的指示以及与数据集的拟合阈值存储在共享存储器空间中。执行RANSAC的部分中 涉及的处理器组件和/或处理器组件的核心之间的通信再次可通过使用高速缓存和/或由 高速缓存所缓存的共享存储空间(例如高速缓存555和/或共享存储空间565)进行。
[0093]在2220,处理器组件从数据集依次生成MSS的新集合。如所述,MSS的集合中的MSS 的量可选择成匹配在所建议模型的新集合中将要并行生成的所建议模型的量。MSS的集合 中的MSS的量再次可选择成匹配在所建议模型的新集合中将要并行生成的所建议模型的 量。向相同和/或一个或多个其他处理器组件的至少一个核心(例如处理器组件550s和/或 650的一个或多个核心651)发信号通知,以便在2230从MSS的新集合并行地得出和测试所建 议模型的新集合。
[0094]在2240,处理器组件从数据集预占地和依次地生成MSS的另一个新集合。如所述, 虽然关于是否将实际使用MSS的这个另一新集合是推测性的,但是MSS的另一个新集合的这 种预占生成对RANSAC的执行带来另一个平行度,由此进一步减少其执行时间。在2250,处理 器组件等待存储所建议模型的新集合的所建议模型的指定的指示以及测试所建议模型的 新集合的所建议模型的每个与数据集的拟合度的测试结果。
[0095] 在2260,确定新集合的所建议模型的哪一个最佳地拟合数据集。然后确定新集合 的所建议模型的最佳拟合是否比拟合来自所建议模型的所有先前所得出和测试的集合的 所有所建议模型的数据集的总体最佳建议模型更好地拟合数据集。每个所建议模型的拟合 度再次可基于数据集的多少数据元素是所建议模型的一致集的内点,其中所建议模型具有 带有被认为是更好拟合的内点的更大量的一致集。
[0096] 在2270,如果所建议模型的新集合的最佳拟合建议模型与所建议模型的所有先前 集合的总体最佳建议模型相比是更好拟合,则新集合的最佳拟合建议模型在2272成为新的 总体最佳建议模型。在总体最佳建议模型的这个变化之后,将要得出和测试以便以预定确 定度来确定准确模型所需的模型的量在2274重新计算。
[0097]与是否改变总体最佳建议模型以及重新计算将要得出和测试所需的所建议模型 的量无关,在2280,将至此所得出和测试的所建议模型的量与所建议模型的那个所需量进 行比较,以确定所需量是否被至此所得出和测试的量超过。如果不是的话,则向相同和/或 一个或多个其他处理器组件的至少一个核心发信号通知,以便在2230从MSS的另一新集合 并行地得出和测试所建议模型的另一个新集合。
[0098]图11示出逻辑流程2300的一个实施例。逻辑流程2300可表示由本文所述的一个或 多个实施例所运行的操作的部分或全部。更具体来说,逻辑流程2300可示出由处理器组件 550或650在至少运行控制例程640中所执行的和/或由计算装置500或控制器600的(一个或 多个)其他组件分别执行的操作。
[0099] 在2310,计算装置的处理器组件(例如计算装置500的处理器组件550或者控制器 600的处理器组件650)等待来自相同或不同的处理器组件的核心的信号,以便从共享存储 器空间中存储的MSS的新集合来得出和测试所建议模型的新集合。执行RANSAC的部分中涉 及的处理器组件和/或处理器组件的核心之间的通信再次可通过使用高速缓存和/或由高 速缓存所缓存的共享存储空间(例如高速缓存555和/或共享存储空间565)进行。
[0100]在2320,处理器组件检索所建议模型的特性(例如可在模型特性531中指示的所建 议模型的格式)的指示以及来自共享存储器空间的MSS的新集合。MSS的集合中的MSS的量再 次可选择成匹配在所建议模型的新集合中将要并行生成的所建议模型的量。在2330,处理 器组件的至少一个核心(例如处理器组件550s和/或650的至少一个核心651)从MSS的新集 合和所建议模型的一个或多个特性的指示来生成所建议模型的新集合。
[0101]在2340,处理器组件从共享存储器空间来检索从其中生成MSS的数据集和拟合阈 值的指示。在2350,处理器组件的至少一个核心测试所建议模型的新集合的所建议模型的 新集合与数据集的数据元素的拟合度。对于每个所建议模型,拟合阈值可用来确定数据集 的哪些数据元素是所建议模型的内点(并且因此处于其一致集中),而哪些是那个所建议模 型的异常值。
[0102]在2360,处理器组件将所建议模型的新集合的所建议模型的每个的指定的指示和 每个的测试结果的指示存储在共享存储器空间中。测试结果的指示可包括关于多少内点处 于所建议模型的新集合的所建议模型的每个的一致集中的指示。在2370,采用关于所建议 模型的新集合的推导和测试完成的指示向相同或不同的处理器组件的另一个核心发信号 通知。
[0103] 图12示出适合于实现如先前所述的各个实施例的示范处理架构3000的一实施例。 更具体来说,处理架构3000 (或者其变体)可实现为计算装置100、300、500或700中的一个或 多个的部分和/或控制器600的部分。应当注意,向处理架构3000的组件给予参考标号,其中 最后两位数对应于先前作为这些计算装置1〇〇、300、500和700以及控制器600的部分所示和 所述的组件的至少一部分的参考标号的最后两位数。这作为对相互关连每个的组件的辅助 进行。
[0104] 处理架构3000包括在数字处理中常用的各种元件,非限制性地包括一个或多个处 理器、多核处理器、协处理器、存储器单元、芯片组、控制器、外设、接口、振荡器、定时装置、 视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。如本申请所使用的术语"系统"和"组 件"预计表示执行数字处理的计算装置的实体,那个实体作为硬件、硬件和软件的组合、软 件或者执行中的软件,其示例通过这种所示示范处理架构来提供。例如,组件能够非限制性 地是运行于处理器组件的进程、处理器组件本身、可采用光和/或磁存储介质的存储装置 (例如硬盘驱动器、阵列中的多个存储驱动器等)、软件对象、指令的可执行序列执行的线 程、程序和/或整个计算装置(例如整个计算机)。作为说明,运行于服务器的应用和服务器 能够是组件。一个或多个组件能够驻留在过程和/或执行线程中,以及组件能够定位在一个 计算装置上和/或分布在两个或更多计算装置之间。此外,组件可通过各种类型的通信介质 在通信上相互耦合,以便协调操作。协调可涉及单向或双向信息交换。例如,组件可采取通 过通信介质所传递的信号形式来传递信息。信息能够实现为分配给一个或多个信号线的信 号。消息(包括命令、状态、地址或数据消息)可以是这类消息其中之一,或者可以是多个这 类消息,并且可经过多种连接和/或接口的任一种串行或者基本上并行地传送。
[0105] 如所示,在实现处理架构3000中,计算装置至少包括处理器组件950、存储装置 960、到其他装置的接口 990和耦合959。如将要进行说明,取决于实现处理架构3000的计算 装置的各个方面、包括其预计用途和/或使用条件,这种计算装置还可包括附加组件、非限 制性地例如显示器接口 985。
[0106] 耦合959包括一个或多个总线、点对点互连、收发器、缓冲器、交叉点开关和/或在 通信上至少将处理器组件950耦合到存储装置960的其他导体和/或逻辑。耦合959还可将处 理器组件950耦合到接口 990、音频子系统970和显示器接口 985中的一个或多个(取决于这 些和/或其他组件中的哪一个也存在)。随着处理器组件950通过耦合959这样耦合,处理器 组件950能够执行以上对于实现处理架构3000的上述计算装置的无论哪一个(哪些)详细描 述的任务的各种任务。耦合959可采用多种技术或者技术(用以光和/或电传达信号)的组合 的任一种来实现。此外,耦合959的至少部分可采用符合大量工业标准的任一种的定时和/ 或协议,非限制性地包括加速图形端口(AGP)、CardBu S、扩展工业标准架构(E-ISA)、微通道 架构(MCA)、NuBus、外设部件互连(扩展)(PCI-X)、PCI Express (PCI-E)、个人计算机存储 卡国际协会(PCMCIA)总线、HyperTransport ?、QuickPath等。
[0107] 如先前所述,处理器组件950(对应于处理器组件550和650)可包括采用大量技术 的任一种并且采用按照多种方式的任一种物理结合的一个或多个核心的大量市场销售处 理器中的任一种。
[0108] 如先前所述,存储装置960(对应于存储装置560和660)可由基于大量技术或者技 术组合的任一种的一个或多个不同存储装置来组成。更具体来说,如所示,存储装置960可 包括易失性存储装置961(例如基于RAM技术的一种或多种形式的固态存储装置)、非易失性 存储装置962(例如不要求电力的恒定提供以保存其内容的固态、铁磁或其他存储装置)以 及可拆卸介质存储装置963(例如可拆卸磁盘或固态存储卡存储装置,可用以在计算装置之 间传送信息)。存储装置960示为可能包括多种不同类型的存储装置是按照计算装置中多于 一种类型的存储装置的常见用途,其中一种类型提供较快的读取和写入能力,从而实现由 处理器组件950对数据的更快操控(但是可能使用不断要求电力的"易失性"技术),而另一 种类型提供非易失性存储的较高密度(但是可能提供较慢的读取和写入能力)。
[0109]给定采用不同技术的不同存储装置的经常不同的特性,还常见的是使这类不同存 储装置经过不同存储控制器(其经过不同接口耦合到其不同存储装置)来耦合到计算装置 的其他部分。作为举例,在易失性存储装置961存在并且基于RAM技术的情况下,易失性存储 装置961可在通信上经过存储控制器965a耦合到耦合959,从而提供到易失性存储装置961 (其也许采用行和列寻址)的适当接口,并且其中存储控制器965a可执行行刷新和/或其他 维护任务以帮助保存易失性存储装置961中存储的信息。作为举例,在非易失性存储装置 962存在并且包括一个或多个铁磁和/或固态磁盘驱动器的情况下,非易失性存储装置962 可在通信上经过存储控制器965b耦合到耦合959,从而提供到非易失性存储装置962(其也 许采用信息块和/或柱面和扇区的寻址)的适当接口。作为又一个示例,在可拆卸介质存储 装置963存在并且包括采用一个或多个机器可读存储介质969的一个或多个光和/或固态磁 盘驱动器的情况下,可拆卸介质存储装置963可在通信上经过存储控制器965c耦合到耦合 959,从而提供到可拆卸介质存储装置963(其也许采用信息块的寻址)的适当接口,并且其 中存储控制器965c可按照延长机器可读存储介质969的使用期限特定的方式来协调读、擦 除和写操作。
[0110]易失性存储装置961或者非易失性存储装置962中的一个或另一个可包括采取机 器可读存储介质(其上可存储包含处理器组件950可执行的指令序列的例程)的形式的制造 产品,这取决于作为每个的基础的技术。作为举例,在非易失性存储装置962包括基于铁磁 的磁盘驱动器(例如所谓的"硬盘驱动器")的情况下,每个这种磁盘驱动器通常采用一个或 多个旋转盘片,其上沉积并且按照各种图案磁性定向了磁性响应微粒,以便按照与例如软 盘等的存储介质类似的方式来存储信息、例如指令序列。作为另一个示例,非易失性存储装 置962可由固态存储装置组来组成,以便按照与致密闪存卡类似的方式来存储信息、例如指 令序列。再次常见的是在不同时间、在计算装置中采用不同类型的存储装置来存储可执行 例程和/或数据。
[0111]因此,包括将要由处理器组件950所运行的指令序列的例程最初可存储在机器可 读存储介质969上,以及可拆卸介质存储装置963随后可用于将那个例程复制到非易失性存 储装置962,以供不要求机器可读存储介质969和/或易失性存储装置961的持续存在的较长 期存储,以便实现由处理器组件950的更快访问,因为那个例程被运行。
[0112]如先前所述,接口 990 (可能对应于接口 590)可采用与可用来在通信上将计算装置 耦合到一个或多个其他装置的多种通信技术的任一种对应的多种信令技术的任一种。各种 形式的有线或无线信令中的一个或两者再次可用来使处理器组件950能够可能经过网络 (例如网络999)或者一组互连网络与输入/输出装置(例如,所示示例键盘920或打印机925) 和/或其他计算装置进行交互。按照常常必须由任一个计算装置来支持的多种类型的信令 和/或协议的经常极为不同特征,接口990示为包括多个不同接口控制器995a、995b和995c。 接口控制器995a可采用多种类型的有线数字串行接口或射频无线接口的任一种从用户输 入装置、例如所示键盘920来接收串行传送的消息。接口控制器995b可采用多种基于电缆布 线或无线信令、定时和/或协议的任一种、经过所示网络999(也许由一个或多个链路所组成 的网络、较小网络或者也许因特网)来访问其他计算装置。接口 995c可采用多种导电电缆布 线的任一个,从而实现将数据输送到所示打印机925的串行或并行信号传输的使用。可在通 信上经过接口 990的一个或多个接口控制器耦合的装置的其他示例非限制性地包括监测人 们的声音以接受那些人经由语音或者他们可制造的其他声音发信号通知的命令和/或数据 的话筒、遥控、触控笔、读卡器、指纹读取器、虚拟现实交互手套、图形输入平板、操纵杆、其 他键盘、视网膜扫描仪、触摸屏的触摸输入组件、轨迹球、各种传感器、监测人们的移动以接 受那些人经由手势和/或脸部表情发信号通知的命令和/或数据的照相装置或照相装置阵 列、激光打印机、喷墨打印机、机械机器人、铣床等。
[0113]在计算装置在通信上耦合到(或者也许实际上结合)显示器(例如所示示例显示器 980)的情况下,实现处理架构3000的这种计算装置还可包括显示器接口 985。虽然更一般化 类型的接口可用于在通信上耦合到显示器,但是在显示器上视觉显示各种形式的内容中常 常所需的稍微专门的附加处理以及所使用的基于电缆布线的接口的稍微专门的性质常常 使不同显示器接口的提供是合乎需要的。可由显示器接口985用于显示器980的通信耦合中 的有线和/或无线信令技术可利用符合多种工业标准的任一种的信令和/或协议,非限制性 地包括多种模拟视频接口、数字视频接口(DVI)、DisplayPort等的任一种。
[0114] 图13示出系统4000的一个实施例。在各个实施例中,系统4000可表示适合与本文 所述的一个或多个实施例配合使用的系统或架构,例如:系统1000;计算装置1〇〇、300、500 或700中的一个或多个;和/或逻辑流程2100、2200或2300中的一个或多个。实施例并不局限 于这个方面。
[0115] 如所示,系统4000可包括多个元件。一个或多个元件可使用一个或多个电路、组 件、寄存器、处理器、软件子例程、模块或者它们的任何组合来实现,如根据设计或性能限制 的给定集合的需要。虽然图13作为举例示出按照某种拓扑的有限数量的元件,但是能够理 解,根据给定实现的需要,在系统4000中可使用按照许多适当拓扑的或多或少的元件。实施 例并不局限于这个上下文。
[0116] 在实施例中,系统4000可以是媒体系统,但是系统4000并不局限于这个上下文。例 如,系统4000可结合到个人计算机(PC)、膝上型计算机、超膝上型计算机、平板、触摸板、便 携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电话、组合蜂窝电话/PDA、电 视机、智能装置(例如智能电话、智能平板或者智能电视机)、移动因特网装置(MID)、消息传 递装置、数据通信装置等。
[0117] 在实施例中,系统4000包括耦合到显示器4980的平台4900a。平台4900a可从诸如 (一个或多个)内容服务装置4900c或者(一个或多个)内容分发装置4900d之类的内容装置 或者其他类似内容源来接收内容。包括一个或多个导航特征的导航控制器4920可用来与例 如平台4900a和/或显示器4980进行交互。下面更详细描述这些组件的每个。
[0118] 在实施例中,平台4900a可包括处理器组件4950、芯片组4955、存储器单元4969、收 发器4995、存储装置4962、应用4940和/或图形子系统4985的任何组合。芯片组4955可提供 处理器电路4950、存储器单元4969、收发器4995、存储装置4962、应用4940和/或图形子系统 4985之间的相互通信。例如,芯片组4955可包括存储适配器(未示出),其能够提供与存储装 置4962的相互通信。
[0119] 处理器组件4950可使用任何处理器或逻辑装置来实现,并且可与处理器组件550 或650和/或与图12的处理器组件950相同或相似。
[0120]存储器单元4969可使用能够存储数据的任何机器可读或计算机可读介质来实现, 并且可与图12的存储介质969相同或相似。
[0121]收发器4995可包括能够使用各种适当无线通信技术来传送和接收信号的一个或 多个无线电单元,并且可与图12的收发器995b相同或相似。
[0122] 显示器4980可包括任何电视类型监视器或显示器,并且可与显示器380和680的一 个或多个和/或与图12的显示器980相同或相似。
[0123] 存储装置4962可实现为非易失性存储装置,并且可与图12的非易失性存储装置 962相同或相似。
[0124] 图形子系统4985可执行诸如静止或视频之类的图像的处理供显示。例如,图形子 系统4985可以是图形处理单元(GPU)或者视觉处理单元(VPU)。模拟或数字接口可用来在通 信上耦合图形子系统4985和显示器4980。例如,接口可以是高清晰度多媒体接口、 DisplayPort、无线HDMI和/或符合无线HD的技术中的任一个。图形子系统4985可集成到处 理器电路4950或芯片组4955中。图形子系统4985可能是通信上耦合到芯片组4955的独立 卡。
[0125] 本文所述的图形和/或视频处理技术可通过各种硬件架构来实现。例如,图形和/ 或视频功能性可集成在芯片组中。备选地,可使用分立图形和/或视频处理器。作为又一个 实施例,图形和/或视频功能可通过包括多核处理器的通用处理器来实现。在另一实施例 中,功能可在消费电子装置中实现。
[0126] 在实施例中,(一个或多个)内容服务装置4900b可由任何国家、国际和/或单独服 务来托管,并且因而是平台4900a经由例如因特网可访问的。(一个或多个)内容服务装置 4900b可耦合到平台4900a和/或显示器4980。平台4900a和/或(一个或多个)内容服务装置 4900b可耦合到网络4999,以便向/从网络4999传递(例如发送和/或接收)媒体信息。(一个 或多个)内容分发装置4900c也可耦合到平台4900a和/或显示器4980。
[0127] 在实施例中,(一个或多个)内容服务装置4900b可包括有线电视盒、个人计算机、 网络、电话、因特网使能装置或者能够传递数字信息和/或内容的设备以及能够在内容提供 商与平台4900a和/或显示器4980之间、经由网络4999或者直接地单向或双向传递内容的任 何其他类似装置。将会理解,可经由网络4999向/从系统4000中的组件的任一个和内容提供 商单向和/或双向传递内容。内容的示例可包括任何媒体信息,其中包括例如视频、音乐、医 疗和游戏信息等。
[0128] (-个或多个)内容服务装置4900b接收内容,例如包括媒体信息的有线电视节目、 数字信息和/或其他内容。内容提供商的示例可包括任何有线或卫星电视或无线电或者因 特网内容提供商。所提供的示例并不是意在限制实施例。
[0129] 在实施例中,平台4900a可从具有一个或多个导航特征的导航控制器4920接收控 制信号。例如,导航控制器4920的导航特征可用来与用户界面4880进行交互。在实施例中, 导航控制器4920可以是指针装置,其可以是允许用户将空间(例如连续并且多维的)数据输 入计算机中的计算机硬件组件(特别是人性化界面装置)。诸如图形用户界面(GUI)之类的 许多系统以及电视机和监视器允许用户使用形体姿态来控制并且将数据提供给计算机或 电视机。
[0130] 通过显示器上显示的移动指针、光标、聚焦环或者其他视觉指示符,可在显示器 (例如显示器4980)上仿效导航控制器4920的导航特征的移动。例如,在软件应用4940的控 制下,位于导航控制器4920上的导航特征可映射到用户界面4880上显示的虚拟导航特征。 在实施例中,导航控制器4920可以不是独立组件,而是集成到平台4900a和/或显示器4980 中。但是,实施例并不局限于本文所示或所述的元件或上下文。
[0131] 在实施例中,驱动程序(未示出)可包括使用户能够例如通过在引导之后触摸按钮 (在被启用时)来立即接通和关断平台4900a、例如电视机的技术。程序逻辑可允许平台 4900a在平台"关断"时,将内容流播到媒体适配器或者(一个或多个)其他内容服务装置 4900b或者(一个或多个)内容分发装置4900c。另外,例如,芯片组4955可包括对5.1环绕声 音频和/或高清晰度7.1环绕声音频的硬件和/或软件支持。驱动程序可包括集成图形平台 的图形驱动程序。在实施例中,图形驱动程序可包括外设部件互连(PCIExpress图形卡。
[0132] 在各个实施例中,可集成系统4000中所示组件的任一个或多个。例如,可集成平台 4900a和(一个或多个)内容服务装置4900b,或者可集成平台4900a和(一个或多个)内容分 发装置4900c,或者例如可集成平台4900a、(一个或多个)内容服务装置4900b和(一个或多 个)内容分发装置4900c。在各个实施例中,平台4900a和显示器4890可以是集成单元。例如, 可集成显示器4980和(一个或多个)内容服务装置4900b,或者可集成显示器4980和(一个或 多个)内容分发装置4900c。这些示例并不是意在限制实施例。
[0133] 在各个实施例中,系统4000实现为无线系统、有线系统或者两者的组合。当实现为 无线系统时,系统4000可包括适合于通过无线共享介质(例如一个或多个天线、发射器、接 收器、收发器、放大器、滤波器、控制逻辑等)进行通信的组件和接口。无线共享介质的一个 示例包括无线谱的部分,例如RF谱等。当实现为有线系统时,系统4000可包括适合于通过有 线通信介质(例如(I/O)适配器、将I/O适配器与对应有线通信介质连接的物理连接器、网络 接口卡(NIC)、磁盘控制器、视频控制器、音频控制器等)进行通信的组件和接口。有线通信 介质的示例可包括电线、电缆、金属引线、印刷电路板(PCB)、底板、交换结构、半导体材料、 双绞线、同轴电缆、光纤等。
[0134] 平台4900a可建立一个或多个逻辑或物理信道以传递信息。信息可包括媒体信息 和控制信息。媒体信息可表示预计送往用户的内容的任何数据。内容的示例可包括例如来 自语音转换的数据、电视会议、流播视频、电子邮件("email")消息、语音邮件消息、字母数 字符号、图形、图像、视频、文本等。来自语音转换的数据可以是例如话音信息、静寂周期、背 景噪声、舒适噪声、信号音等。控制信息可表示预计用于自动化系统的命令、指令或控制字 的任何数据。例如,控制信息可用于通过系统路由媒体信息,或者指示节点以预定方式处理 媒体信息。但是,实施例并不局限于图13所示或所述的元件或上下文。
[0135] 如上所述,系统4000可按照变化物理样式或形状因数来实施。图14示出其中可包 含系统4000的小形状因数装置5000的实施例。在实施例中,例如,装置5000可实现为具有无 线能力的移动计算装置。例如,移动计算装置可指具有处理系统和移动电源或电力供应、例 如一个或多个电池的任何装置。
[0136] 如上所述,移动计算装置的示例可包括个人计算机(PC)、膝上型计算机、超膝上型 计算机、平板、触摸板、便携计算机、手持计算机、掌上计算机、个人数字助理(PDA)、蜂窝电 话、组合蜂窝电话/PDA、电视机、智能装置(例如智能电话、智能平板或者智能电视机)、移动 因特网装置(MID)、消息传递装置、数据通信装置等。
[0137] 移动计算装置的示例还可包括设置成供人佩戴的计算机,例如手腕计算机、手指 计算机、指环计算机、眼镜计算机、皮带夹计算机、臂章计算机、靴式计算机、服饰计算机和 其它可佩戴计算机。在实施例中,例如,移动计算装置可实现为智能电话,其能够运行计算 机应用以及进行语音通信和/或数据通信。虽然作为举例可采用实现为智能电话的移动计 算装置来描述一些实施例,但是可理解,其他实施例也可使用其他无线移动计算装置来实 现。实施例并不局限于这个上下文。
[0138] 如图14所示,装置5000可包括显示器5980、导航控制器5920a、用户界面5880、壳体 5905、I/O装置5920b和天线5998。显示器5980可包括适合于移动计算装置的用于显示信息 的任何适当显示单元,并且可与图13的显示器4980相同或相似。导航控制器5920a可包括一 个或多个导航特征(其可用来与用户界面5880进行交互),并且可与图13的导航控制器4920 相同或相似。I/O装置5920b可包括用于将信息输入移动计算装置中的任何适当I/O装置。1/ 0装置5920b的示例可包括字母数字键盘、数字键盘、触摸板、输入按键、按钮、开关、摇臂开 关、话筒、喇叭、语音识别装置和软件等。信息也可通过话筒输入到装置5000中。这种信息可 由语音识别装置来数字化。实施例并不局限于这个上下文。
[0139] 更一般来说,本文所述和所示的计算装置的各种元件可包括各种硬件元件、软件 元件或者两者的组合。硬件元件的示例可包括装置、逻辑装置、组件、处理器、微处理器、电 路、处理器组件、电路元件(例如晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电 路(ASIC)、可编程逻辑装置(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、存储 器单元、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件元件的示例可包括软件 组件、程序、应用、计算机程序、应用程序、系统程序、软件开发程序、机器程序、操作系统软 件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用程序接口 (API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或者它们的任何 组合。但是,确定一个实施例是否使用硬件元件和/或软件元件来实现可按照任何数量的因 素而改变,例如预期计算速率、功率级、耐热性、处理周期预算、输入数据速率、输出数据速 率、存储器资源、数据总线速度以及如对于给定实现所预期的其他设计和性能限制。
[0140] -些实施例可使用表达"一个实施例"或"一实施例"连同其派生来描述。这些术语 表示结合该实施例所述的特定特征、结构或特性包含在至少一个实施例中。词语"在一个实 施例中"在说明书的各个位置的出现不一定全部表示同一个实施例。此外,一些实施例可使 用表达"耦合"和"连接"连同其派生来描述。这些术语不一定是要作为彼此的同义词。例如, 一些实施例可使用术语"连接"和/或"耦合"来描述,以指示两个或更多元件相互直接物理 或电接触。但是,术语"親合"还可表示两个或更多元件不是相互直接接触,但仍然相互配合 或交互。此外,可组合来自不同实施例的方面或元件。
[0141] 要强调,提供本公开的摘要以允许读者快速确定技术公开的性质。要理解,它的提 供并不是要用于解释或限制权利要求书的范围或含意。另外,在以上详细描述中能够看到, 各种特征集中到单个实施例中,用于简化本公开。公开的这种方法不是要被解释为反映了 要求保护的实施例要求超过各权利要求中明确描述的特征的意图。相反,如以下权利要求 书所反映,发明主题在于少于单个公开实施例的全部特征。因此,以下权利要求书结合到详 细描述中,其中各权利要求本身代表独立实施例。在所附权利要求书中,术语"包括"和"其 中"分别用作相应术语"包含"和"其中"的普通英语等效体。此外,术语"第一"、"第二"、"第 三"等只用作标号,而不是意在对其对象施加数字要求。
[0142] 以上描述的是所公开架构的示例。当然,不可能描述组件和/或方法的每一个可设 想组合,但是本领域的技术人员可知道,许多其他组合和置换是可能的。相应地,新架构预 计包含落入所附权利要求书的精神和范围之内的所有这类改变、修改和变更。本详细公开 现在转到提供与其他实施例有关的示例。下面所提供的示例不是要进行限制。
[0143] 在示例1中,执行随机取样一致性(RANSAC)的装置包括:推导组件,从数据集的最 小样本集合(MSS)的集合并行地得出所建议模型的新集合的多个所建议模型;以及比较组 件,如果新集合的所建议模型比任何先前所得出的所建议模型更好地拟合数据集,则重新 计算在所选确定度之内得出准确模型的所建议模型的所需量,并且基于所需量与已经得出 的所建议模型的量的比较来确定是否得出所建议模型的另一个新集合。
[0144] 在包括示例1的主题的示例2中,该装置可包括测试组件,以测并行地试所建议模 型的新集合的每个所建议模型与数据集的拟合度,并且测试组件可基于多少数据元素在所 选拟合阈值之内拟合新集合的每个所建议模型来确定数据集的多少数据元素是新集合的 每个所建议模型的一致集的内点。
[0145] 在包括示例1-2的任一个的主题的示例3中,比较组件可基于比任何先前得出的所 建议模型更好地拟合数据集的新集合的所建议模型的一致集中的内点的量来重新计算所 需量。
[0146] 在包括示例1-3的任一个的主题的示例4中,比较组件可在存储装置中存储最佳地 拟合数据集的所建议模型的所有先前所得出集合的总体最佳建议模型的指定,并且该装置 可包括选择组件,以采用比总体最佳建议模型更好地拟合数据集的新集合的所建议模型的 指定来取代存储装置中的总体最佳建议模型的指定。
[0147] 在包括示例1-4的任一个的主题的示例5中,该装置可包括最小样本集合(MSS)生 成器,以便在所建议模型的新集合的推导之前生成MSS的集合,以实现所建议模型的新集合 的并行推导,以及与新集合的推导并行地生成MSS的另一个集合,为所建议模型的另一个新 集合的并行推导作准备。
[0148] 在包括示例1-5的任一个的主题的示例6中,MSS生成器可随机选择数据集的数据 元素,以生成MSS的集合的每个MSS和MSS的另一集合的每个MSS。
[0149] 在包括示例1-6的任一个的主题的示例7中,该装置可包括运行MSS生成器的核心、 运行推导组件的至少一个其他核心以及在核心与至少一个其他核心之间传递MSS的集合的 高速缓存。
[0150] 在包括示例1-7的任一个的主题的示例8中,该装置可包括核心和至少一个其他核 心。
[0151] 在包括示例1-8的任一个的主题的示例9中,至少一个其他核心可包括多个核心, 多个核心的各核心可支持执行的至少一个线程,以及推导组件可经由多个核心其中之一上 的执行的独立线程来得出新集合的每个所建议模型。
[0152] 在包括示例1-9的任一个的主题的示例10中,至少一个其他核心可包括具有多个 通道、支持单指令多执行(SMD)操作的寄存器组,并且推导组件可在多个通道的独立通道 中得出新集合的每个所建议模型。
[0153] 在包括示例1-10的任一个的主题的示例11中,该装置可包括高速缓存组件,以便 将高速缓存配置成用作核心与至少一个其他核心之间的缓冲器。
[0154] 在包括示例1-11的任一个的主题的示例12中,该装置可包括:核心和至少一个其 他核心可访问的存储装置;存储装置中所定义并且由高速缓存至少部分所缓存的共享存储 空间;MSS生成器,将MSS的集合和MSS的其他集合存储在共享存储空间中;以及推导组件,从 共享存储空间来检索MSS的集合。
[0155] 在包括示例1-12的任一个的主题的示例13中,该装置可包括基于准确模型可视地 呈现图像的显示器或者向另一个装置传送与准确模型关联的数据的接口中的至少一个。
[0156] 在示例14中,执行随机取样一致性(RANSAC)的装置包括:测试组件,并行地测试所 建议模型的新集合的多个所建议模型与数据集的拟合度;以及比较组件,如果新集合的所 建议模型比任何先前所测试的所建议模型更好地拟合数据集,则重新计算在所选确定度之 内得出准确模型的所建议模型的所需量,并且基于所需量与已经测试的所建议模型的量的 比较来确定是否测试所建议模型的另一个新集合。
[0157] 在包括示例14的主题的示例15中,该装置可包括推导组件,以便从数据集的最小 样本集合(MSS)的集合并行地得出所建议模型的新集合的每个所建议模型。
[0158] 在包括示例14-15的任一个的主题的示例16中,比较组件可在存储装置中存储最 佳地拟合数据集的所建议模型的所有先前所测试集合的总体最佳建议模型的指定,并且该 装置可包括选择组件,以采用比总体最佳建议模型更好地拟合数据集的新集合的所建议模 型的指定来取代存储装置中的总体最佳建议模型的指定。
[0159] 在包括示例14-16的任一个的主题的示例17中,该装置可包括最小样本集合(MSS) 生成器,以便在所建议模型的新集合的测试之前生成MSS的集合,以实现所建议模型的新集 合的并行推导和测试,以及与新集合的测试并行地生成MSS的另一个集合,为所建议模型的 另一个新集合的并行推导和测试作准备。
[0160] 在包括示例14-17的任一个的主题的示例18中,MSS生成器可随机选择数据集的数 据元素,以生成MSS的集合的每个MSS和MSS的另一集合的每个MSS。
[0161] 在包括示例14-18的任一个的主题的示例19中,测试组件可基于多少数据元素在 所选拟合阈值之内拟合新集合的每个所建议模型来确定数据集的多少数据元素是新集合 的每个所建议模型的一致集的内点,以及比较组件可基于比任何先前所测试的所建议模型 更好地拟合数据集的新集合的所建议模型的一致集中的内点的量来重新计算所需量。
[0162] 在包括示例14-19的任一个的主题的示例20中,该装置可包括运行比较组件的核 心、运行测试组件的至少一个其他核心以及在核心与至少一个其他核心之间传递所建议模 型的新集合的一致集的集合的高速缓存。
[0163] 在包括示例14-20的任一个的主题的示例21中,处理器组件可包括核心和至少一 个其他核心。
[0164] 在包括示例14-21的任一个的主题的示例22中,至少一个另一核心可包括:多个核 心,多个核心的各核心支持执行的至少一个线程;以及测试组件,经由多个核心其中之一上 的执行的独立线程来测试新集合的每个所建议模型。
[0165] 在包括示例14-22的任一个的主题的示例23中,至少一个其他核心可包括具有多 个通道、支持单指令多执行(SMD)操作的寄存器组,并且测试组件可在多个通道的独立通 道中测试新集合的每个所建议模型。
[0166] 在包括示例14-23的任一个的主题的示例24中,该装置可包括高速缓存组件,以便 将高速缓存配置成用作核心与至少一个其他核心之间的缓冲器。
[0167] 在包括示例14-24的任一个的主题的示例25中,该装置可包括:核心和至少一个其 他核心可访问的存储装置;存储装置中所定义并且由高速缓存至少部分所缓存的共享存储 空间;测试组件,将一致集的集合存储在共享存储空间中;以及比较组件,从共享存储空间 来检索一致集的集合。
[0168] 在包括示例14-25的任一个的主题的示例26中,该装置可包括基于准确模型可视 地呈现图像的显示器或者向另一个装置传送与准确模型关联的数据的接口中的至少一个。
[0169] 在示例27中,用于执行随机取样一致性(RANSAC)的计算机实现方法包括从数据集 的最小样本集合(MSS)的集合并行地得出所建议模型的新集合的多个所建议模型,在新集 合的所建议模型比任何先前所得出的所建议模型更好地拟合数据集时重新计算在所选确 定度之内得出准确模型的所建议模型的所需量,并且基于所需量与已经得出的所建议模型 的量的比较来确定是否得出所建议模型的另一个新集合。
[0170] 在包括示例27的主题的示例28中,该方法可包括基于多少数据元素在所选拟合阈 值之内拟合新集合的每个所建议模型来确定数据集的多少数据元素是新集合的每个所建 议模型的一致集的内点。
[0171] 在包括示例27-28的任一个的主题的示例29中,该方法可包括基于比任何先前得 出的所建议模型更好地拟合数据集的新集合的所建议模型的一致集中的内点的量来重新 计算所需量。
[0172] 在包括示例27-29的任一个的主题的示例30中,该方法可包括在得出所建议模型 的新集合之前生成MSS的集合,以实现所建议模型的新集合的并行推导,以及与得出新集合 并行地生成MSS的另一个集合,为并行得出所建议模型的另一个新集合作准备。
[0173] 在包括示例27-30的任一个的主题的示例31中,该方法可包括随机选择数据集的 数据元素以生成MSS的集合的每个MSS,并且随机选择数据集的数据元素以生成MSS的其他 集合的每个MSS。
[0174] 包括示例27-31的任一个的主题的示例32中,该方法可包括在一个核心上生成MSS 的集合和MSS的其他集合,并且在至少一个其他核心上得出所建议模型的新集合。
[0175] 在包括示例27-32的任一个的主题的示例33中,至少一个其他核心可包括多个核 心,多个核心的各核心可支持执行的至少一个线程,以及该方法可包括经由多个核心其中 之一上的执行的独立线程来得出新集合的每个所建议模型。
[0176] 在包括示例27-33的任一个的主题的示例34中,至少一个其他核心可包括具有多 个通道、支持单指令多执行(SMD)操作的寄存器组,并且该方法可包括在多个通道的独立 通道中得出新集合的每个所建议模型。
[0177] 在包括示例27-34的任一个的主题的示例35中,该方法可包括将高速缓存配置成 用作核心与至少一个其他核心之间的缓冲器。
[0178] 在包括示例27-35的任一个的主题的示例36中,该方法可包括定义核心和至少一 个其他核心可访问的存储装置中的共享存储空间,将高速缓存配置成至少部分缓存共享存 储空间,并且将MSS的集合和MSS的其他集合存储在共享存储空间中。
[0179] 在包括示例27-36的任一个的主题的示例37中,该方法可包括下列步骤的至少一 个:基于准确模型可视地呈现图像;或者向另一个装置传送与准确模型关联的数据中。
[0180] 在示例38中,至少一个机器可读存储介质包括在由计算装置运行时使该计算装置 执行下列步骤的指令:从数据集的最小样本集合(MSS)的集合并行地得出所建议模型的新 集合的多个所建议模型;如果新集合的所建议模型比任何先前所得出的所建议模型更好地 拟合数据集,则重新计算在所选确定度之内得出准确模型的所建议模型的所需量;以及基 于所需量与已经得出的所建议模型的量的比较来确定是否得出所建议模型的另一个新集 合。
[0181]在包括示例38的主题的示例39中,可使计算装置基于多少数据元素在所选拟合阈 值之内拟合新集合的每个所建议模型来确定数据集的多少数据元素是新集合的每个所建 议模型的一致集的内点。
[0182] 在包括示例38-39的任一个的主题的示例40中,可使计算装置基于比任何先前得 出的所建议模型更好地拟合数据集的新集合的所建议模型的一致集中的内点的量来重新 计算所需量。
[0183] 在包括示例38-40的任一个的主题的示例41中,可使计算装置在得出所建议模型 的新集合之前生成MSS的集合,以实现所建议模型的新集合的并行推导,以及与得出新集合 并行地生成MSS的另一个集合,为并行得出所建议模型的另一个新集合作准备。
[0184] 在包括示例38-41的任一个的主题的示例42中,可使计算装置随机选择数据集的 数据元素以生成MSS的集合的每个MSS,并且随机选择数据集的数据元素以生成MSS的其他 集合的每个MSS。
[0185] 包括示例38-42的任一个的主题的示例43中,可使计算装置在计算装置的一个核 心上生成MSS的集合和MSS的其他集合,并且在计算装置的至少一个其他核心上得出所建议 模型的新集合。
[0186] 在包括示例38-43的任一个的主题的示例44中,至少一个其他核心可包括多个核 心,多个核心的各核心可支持执行的至少一个线程,以及可使计算装置经由多个核心其中 之一上的执行的独立线程来得出新集合的每个所建议模型。
[0187] 在包括示例38-44的任一个的主题的示例45中,至少一个其他核心可包括具有多 个通道、支持单指令多执行(SMD)操作的寄存器组,并且可使计算装置在多个通道的独立 通道中得出新集合的每个所建议模型。
[0188] 在包括示例38-45的任一个的主题的示例46中,可使计算装置将计算装置的高速 缓存配置成用作核心与至少一个其他核心之间的缓冲器。
[0189] 在包括示例38-46的任一个的主题的示例47中,可使计算装置定义核心和至少一 个其他核心可访问的存储装置中的共享存储空间,将高速缓存配置成至少部分缓存共享存 储空间,并且将MSS的集合和MSS的其他集合存储在共享存储空间中。
[0190]在包括示例38-47的任一个的主题的示例48中,可使计算装置向另一个装置传送 与准确模型关联的数据。
[0191] 在示例49中,至少一个机器可读存储介质可包括指令,其在由计算装置运行时使 计算装置执行上述步骤的任一个。
[0192] 在示例50中,执行随机取样一致性(RANSAC)的装置可包括用于执行以上所述的任 一个的部件。
【主权项】
1. 一种执行随机取样一致性(RANSAC)的装置,包括: 推导组件,用于从数据集的最小样本集合(MSS)的第一集合并行地得出所建议模型的 第一集合;以及 比较组件,用于: 在所建议模型的所述第一集合的所建议模型比所建议模型的所述第一集合的推导之 前所得出的任何所建议模型更好地拟合所述数据集时重新计算在所选确定度之内得出准 确模型的所建议模型的所需量;以及 在所建议模型的所述第一集合的推导之后基于所述所需量与先前所得出的所建议模 型的量的比较来确定是否得出所建议模型的第二集合,其中先前所得出的所建议模型的所 述量包括所建议模型的所述第一集合。2. 如权利要求1所述的装置,包括测试组件,以便并行地确定所建议模型的所述第一集 合的每个所建议模型与所述数据集的拟合度,所述拟合度基于所述数据集的多少数据元素 在所选拟合阈值之内拟合所建议模型的所述第一集合的每个所建议模型。3. 如权利要求1所述的装置,所述比较组件在存储装置中存储在最佳地拟合所述数据 集的所建议模型的所述第一集合的推导之前所得出的任何所建议模型的总体最佳建议模 型的指定,所述装置包括选择组件,以便采用比所述总体最佳建议模型更好地拟合所述数 据集的所建议模型的所述第一集合的所建议模型的指定来取代所述存储装置中的所述总 体最佳建议模型的所述指定。4. 如权利要求1所述的装置,包括最小样本集合(MSS)生成器,以便生成MSS的所述第一 集合以使能所建议模型的所述第一集合的推导,并且与所建议模型的所述第一集合的推导 并行地生成MSS的所述第二集合以使能所建议模型的所述第二集合的推导。5. 如权利要求4所述的装置,所述MSS生成器随机选择所述数据集的数据元素,以生成 MSS的所述第一集合的每个MSS和MSS的所述第二集合的每个MSS。6. 如权利要求4所述的装置,包括: 核心,用于运行所述MSS生成器; 至少一个其他核心,用于运行所述推导组件;以及 高速缓存,用于在所述核心与所述至少一个其他核心之间传递MSS的所述第一集合。7. 如权利要求6所述的装置,包括高速缓存组件,以便将所述高速缓存配置成用作所述 核心与所述至少一个其他核心之间的缓冲器。8. 如权利要求6所述的装置,包括: 所述核心和所述至少一个其他核心可访问的存储装置;以及 共享存储空间,其在所述存储装置中所定义并且由所述高速缓存至少部分所缓存,所 述MSS生成器将MSS的所述第一集合和MSS的所述第二集合存储在所述共享存储空间中,以 及所述推导组件从所述共享存储空间来检索MSS的所述第一集合。9. 如权利要求1所述的装置,包括基于所述准确模型可视地呈现图像的显示器或者向 另一个装置传送与所述准确模型关联的数据的接口中的至少一个。10. -种执行随机取样一致性(RANSAC)的装置,包括: 测试组件,用于并行地测试所建议模型的第一集合的多个所建议模型与数据集的拟合 度;以及 比较组件,用于: 在所建议模型的所述第一集合的所建议模型比所建议模型的所述第一集合的测试之 前所测试的任何所建议模型更好地拟合所述数据集时重新计算在所选确定度之内得出准 确模型的所建议模型的所需量;以及 在所建议模型的所述第一集合的测试之后基于所述所需量与先前所测试的所建议模 型的量的比较来确定是否测试所建议模型的第二集合,其中先前所测试的所建议模型的所 述量包括所建议模型的所述第一集合。11. 如权利要求10所述的装置,包括推导组件,以从所述数据集的最小样本集合(MSS) 的第一集合并行地得出所建议模型的所述第一集合的每个所建议模型。12. 如权利要求10所述的装置,所述测试组件并行地确定所建议模型的所述第一集合 的每个所建议模型与所述数据集的拟合度,所述拟合度基于所述数据集的多少数据元素在 所选拟合阈值之内拟合所建议模型的所述第一集合的每个所建议模型被视为一致集的内 点,以及所述比较组件基于具有比所建议模型的所述第一集合的测试之前所测试的任何所 建议模型要大的拟合度的所述第一集合的所建议模型来重新计算所述所需量。13. 如权利要求12所述的装置,包括: 核心,用于运行所述比较组件; 至少一个其他核心,用于运行所述测试组件;以及 高速缓存,用于在所述核心与所述至少一个其他核心之间传递所建议模型的所述第一 集合的一致集的集合。14. 如权利要求13所述的装置,包括处理器组件,其包括所述核心和所述至少一个其他 核心。15. 如权利要求13所述的装置,所述至少一个其他核心包括:多个核心,所述多个核心 的各核心支持执行的至少一个线程;以及所述测试组件,其经由所述多个核心其中之一上 的执行的独立线程来测试所建议模型的所述第一集合的每个所建议模型。16. 如权利要求13所述的装置,所述至少一个其他核心包括:具有多个通道、支持单指 令多执行(SMD)操作的寄存器组;以及所述测试组件,其在所述多个通道的独立通道中测 试所建议模型的所述第一集合的每个所建议模型。17. 如权利要求10所述的装置,包括基于所述准确模型可视地呈现图像的显示器或者 向另一个装置传送与所述准确模型关联的数据的接口中的至少一个。18. -种用于执行随机取样一致性(RANSAC)的计算机实现方法,包括: 从数据集的最小样本集合(MSS)的集合并行地得出所建议模型的第一集合; 在所建议模型的所述第一集合的所建议模型比所建议模型的所述第一集合的推导之 前所得出的任何所建议模型更好地拟合所述数据集时重新计算在所选确定度之内得出准 确模型的所建议模型的所需量;以及 在所建议模型的所述第一集合的推导之后基于所述所需量与先前所得出的所建议模 型的量的比较来确定是否得出所建议模型的第二集合,其中先前所得出的所建议模型的所 述量包括所建议模型的所述第一集合。19. 如权利要求18所述的计算机实现方法,包括基于所述数据集的多少数据元素在所 选拟合阈值之内拟合所述第一集合的每个所建议模型来确定所述数据集的多少数据元素 是所述第一集合的每个所建议模型的一致集的内点。20. 如权利要求19所述的计算机实现方法,包括基于所建议模型的所述第一集合的所 建议模型的一致集中的内点的量超过所建议模型的所述第一集合的推导之前所得出的任 何所建议模型的一致中的内点的量来重新计算所述所需量。21. 如权利要求18所述的计算机实现方法,包括: 在实现所建议模型的所述第一集合的推导之前生成MSS的所述第一集合;以及 与得出所建议模型的所述第一集合并行地生成MSS的第二集合以使能所建议模型的所 述第二集合的推导。22. 如权利要求21所述的计算机实现方法,包括: 随机选择所述数据集的数据元素,以生成MSS的所述第一集合的每个MSS;以及 随机选择所述数据集的数据元素,以生成MSS的所述第二集合的每个MSS。23. 如权利要求21所述的计算机实现方法,包括: 在一个核心上生成MSS的所述第一集合和MSS的所述第二集合;以及 在至少一个其他核心上得出所建议模型的所述第一集合。24. 如权利要求18所述的计算机实现方法,包括下列的至少一个:基于所述准确模型可 视地呈现图像;或者向另一个装置传送与所述准确模型关联的数据。25. 包括指令的至少一个机器可读存储介质,所述指令在由处理器组件运行时使所述 处理器组件执行如权利要求18-24中的任一项所述的方法。
【文档编号】G06F17/50GK106030583SQ201480076486
【公开日】2016年10月12日
【申请日】2014年3月27日
【发明人】L.杨, Q.李, B.王, X.徐, B.牛
【申请人】英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1