平码五不中公式规律
  • / 19
  • 下载费用:30 金币  

用于对像素进行分类的系统和方法.pdf

关 键 ?#21097;?/dt>
用于 像素 进行 分类 系统 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201580035002.7

申请日:

2015.06.24

公开号:

CN106663191A

公开日:

2017.05.10

当前法律状态:

实审

?#34892;?#24615;:

审中

法?#19978;?#24773;: 实质审查的生效IPC(主分类):G06K 9/00申请日:20150624|||公开
IPC分类号: G06K9/00; G06K9/62 主分类号: G06K9/00
申请人: 微软技术许可有限责任公司
发明人: A·J·姆弗; J·A·塔笛弗; S·卡里; M·J·菲诺齐奥; K·D·李; C·D·艾德蒙兹; R·克兰
地址: 美国华盛顿州
优?#28909;ǎ?/td> 2014.06.27 US 14/318,135
专利代理机构: 上海专利商标事务所有限公司 31100 代理人: 罗?#38754;?
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201580035002.7

授权公告号:

|||

法律状态公告日:

2017.06.06|||2017.05.10

法律状态类型:

实质审查的生效|||公开

摘要

公开了涉及处理图像像素的各实施例。例如,一个公开的实施例提供一种用于对像素进行分类的系统,包括:检索逻辑;像素存储分配,该像素存储分配包括多个像素槽,每一像素槽分别与一像素相关联,其中检索逻辑被配置成使得各像素按输入顺序被分配到像素槽中;管线化处理逻辑,该管线化处理逻辑被配置成针对这些像素中的每一者,输出与该像素相关联的分类信息;以及调度逻辑,该调度逻辑被配置成控制从像素槽到管线化处理逻辑的分派,其中调度逻辑和管线化处理逻辑被配置成协同行动以按输出顺序生成这些像素的分类信息,该输出顺序不同于并独立于输入顺序。

权利要求书

1.一种用于对像素进行分类的系统,包括:
检索逻辑;
像素存储分配,所述像素存储分配包括多个像素槽,每一像素槽分别与一像素相关联,
其中所述检索逻辑被配置成使得像素按输入顺序被分配到所述像素槽中;
管线化处理逻辑,所述管线化处理逻辑被配置成对于所述像素中的每一像素,输出与
该像素相关联的分类信息;以及
调度逻辑,所述调度逻辑被配置成控制从所述像素槽到所述管线化处理逻辑的分派,
其中所述调度逻辑和管线化处理逻辑被配置成协同行动以按输出顺序生成所述像素的分
类信息,使得比较早像素更晚分配到其像素槽中的较晚像素被分配到其像素槽中,所述输
出顺序不同于并独立于所述输入顺序,所述管线化处理逻辑使所述较晚像素的分类信息相
比于所述较早像素的分类信息被更快地生成。
2.如权利要求1所述的系统,其特征在于,所述管线化处理逻辑包括处理管线,并且其
中所述调度逻辑和处理管线被配置成使得在所述较早像素在所述处理管线中停滞的情况
?#28388;?#36848;停滞被清除,并且所述调度逻辑在将所述较早像素重新分派给所述处理管线之前将
所述较晚像素分派给所述处理管线。
3.如权利要求2所述的系统,其特征在于,在所述较早像素在所述处理管线中停滞的情
况下,其像素槽存储用于控制所述处理管线中对所述较早像素的后续处理的跟踪信息,并
且其中所述跟踪信息跟踪与处理所述较早像素相关联的存储请求是否已被满足,并且其中
所述调度逻辑被配置成在所述存储请求被这样满足之?#24335;?#25152;述较早像素重新分派给所述
处理管线。
4.如权利要求1所述的系统,其特征在于:
(i)所述管线化处理逻辑被配置成使所述较早像素以及所述较晚像素走查通过有向图
结构,以便输出所述较早像素和所述较晚像素的分类信息,所述分类信息是在处理所述有
向图结构的最?#25214;?#33410;点之际被生成的;并且
(ii)所述调度逻辑被配置成控制所述较早像素和所述较晚像素到所述管线化处理逻
辑的分派,使得所述较早像素和所述较晚像素独立地向前前进通过所述有向图结构,由此
准许所述较早像素有时在所述较晚像素前面,且有时在所述较晚像素后面。
5.如权利要求4所述的系统,其特征在于,所述像素槽中的每一者被配置成响应于其关
联像素的分类信息被所述管线化处理逻辑输出而被释放并随后接收要被分类的新像素。
6.如权利要求1所述的系统,其特征在于,所述管线化处理逻辑被配置成使得每一像素
通过有向图结构来处理,所述有向图结构的最?#25214;?#33410;点输出该像素的分类信息。
7.如权利要求6所述的系统,其特征在于,所述有向图结构被配置成按照与所述像素相
关联的深度数据来行动以便生成所述分类信息,并且其中所述有向图结构包括被配置成针
对正被分类的像素将这样的像素的深度数据与偏移像素的深度数据进行比较的节点。
8.一种用于对像素进行分类的方法,包括:
将多个像素分配到像素存储分配的多个像素槽中,使得每一像素分别与所述像素槽之
一相关联,所述像素包括较早像素和较晚像素,所述较早像素?#20154;?#36848;较晚像素更早地被分
配到其像素槽中;
通过管线化处理逻辑的操作使所述像素中的每一者走查通过有向图结构;
作为这样的走查的结果,输出每一像素的分类信息;以及
用调度逻辑控制从所述像素槽到所述管线化处理逻辑的分派,使得所述较早像素和所
述较晚像素独立地向前前进通过所述有向图结构,由此准许所述较早像素有时在所述较晚
像素前面,且有时在所述较晚像素后面。
9.如权利要求8所述的方法,其特征在于,使所述像素走查通过所述有向图结构使得所
述像素基于与所述像素相关联的深度值被分类。
10.如权利要求8所述的方法,其特征在于,所述像素槽包括跟踪信息,其中所述跟踪信
息跟踪与处理所述较早像素相关联的存储请求是否已被满足,并且其中所述调度逻辑被配
置成在所述存储请求被这样满足之际重新分派所述较早像素。

?#24471;?#20070;

用于对像素进行分类的系统和方法

背景

存在用于对像素进行分类的各种方法。一种类型的分类需要计算像素具有特定特
征或属于特定类的统计概率。在一些分类系统中,像素数据被“走查”通过决策树的各决策
节点,直到处理操作在叶节点处完结。用于对像素进行分类的输出与叶节点相关联。典型的
决策树系统具有浅管线,并?#20197;?#20854;对操作停滞、存储器争用?#32479;?#31561;待时间事件的处理中是
次优的。

概述

提供本概述以便以简化的形式介绍以下在详?#35813;?#36848;中进一步描述的一些概念。本
概述并不旨在标?#31471;?#35201;求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护
主题的范围。此外,所要求保护的主题不限于解决在本公开的任一部分中所提及的任何或
所有缺点的实现。

公开了涉及处理图像像素的各实施例。例如,一个公开的实施例提供一种用于对
像素进行分类的系统,该系统包括:检索逻辑;像素存储分配,该像素存储分配包括多个像
素槽,每一像素槽分别与一像素相关联,其中检索逻辑被配置成使得各像素按输入顺序被
分配到像素槽中;管线化处理逻辑,该管线化处理逻辑被配置成针对这些像素中的每一者,
输出与该像素相关联的分类信息;以及调度逻辑,该调度逻辑被配置成控制从像素槽到管
线化处理逻辑的分派,其中调度逻辑和管线化处理逻辑被配置成协同行动以按输出顺序生
成这些像素的分类信息,使得比较早像素更晚分配到其像素槽中的较晚像素被分配到其像
素槽中,输出顺序与输入顺序不同于并独立于输入顺序,管线化处理逻辑使较晚像素的分
类信息相比于较早像素的分类信息被更快地生成。

附图简述

图1示出根据本公开的一实现的示例性有向图结构。

图2示意性地示出根据本公开的一实现的用于对像素进行分类的示例性系统。

图3示出解说根据本公开的一实现的可用于对像素进行分类的示例性方法的流程
图。

图4示意性地示出根据本公开的一实现的示例像素槽。

图5示意性地示出根据本公开的一实现的深度图。

图6示出根据本公开的一实现的像素分类系统。

图7示出根据本公开的一实现的计算系统的框图。

详?#35813;?#36848;

该描述涉及用于使用管线化处理逻辑来使各像素走查通过有向图结构的新颖的
系统和方法。有向图结构被遍历,以便生成这些像素的分类信息。分类信息可包括例如像素
是否具有特定特征或属于特定类。在一些情况下,这是根据像素具有该特征或属于该类的
概率来指定的。

在一些实施例中,有向图结构处理深度图以便对像素进行分类。检索逻辑将各像
素分配到包括多个像素槽的像素存储分配中。像素槽存储关于像素的各种信息,例如与像
素相关联的数据的地址、标识像素的XY屏幕坐标或其他索引、正被处理的图节点的标识、有
向图处理操作的结果等等。各像素是按输入顺序被逐像素地分配到像素槽中的。例如,来自
一扫描行的像素可被串行地一个接一个地放置到可用像素槽中。如以下将更详?#35813;?#36848;的,
当像素在飞行中通过有向图结构时,像素槽充当该像素的“主基地(home base)”。一旦像素
被分类,其槽就被解除分配并且被释放以供由检索逻辑取得的另一输入像素使用。

调度逻辑在功能上被插入在像素槽和管线化处理逻辑之间。调度逻辑控制从像素
槽到管线化处理逻辑的执行机制的操作分派。管线化处理逻辑用于使每一像素走查通过有
向图结构。像素槽用作与像素相关联的信息的主基地/临时存储位置,并且随着管线化处理
逻辑使得该像素向前前进通过该有向图结构,该信息可被改变、更新等。如本文中所使用
的,“向前前进”描述像素朝向叶节点越来越深地走查通过有向图结构。如以下将更详细地
讨论的,向前前进可断断续续地行进(例如可发生要花时间来解决的停滞或其他长等待时
间事件),使得当各像素向下移动通过并更深入有向图结构时,在飞行中这些像素?#31245;?#36807;
(leapfrog)彼此。该用于无序、独立向前前进的能力可提供许多优点,并允许该系统最大地
利用可用处理资源,减少等待时间和争用,并确保执行机制不会闲置。

调度逻辑和管线化处理逻辑彼此协同行动以实现对这些像素的机器级并行和无
序处理。在一些示例中,这使得分类信息按输出顺序产生,该输出顺序不同于并独立于用于
经分类的像素被分配到其相关联的像素槽中的输入顺序。在一个场景中,如以上所提到的,
这可使得像素操作越过彼此,从而准许像素的无序分类输出。例如,“较晚”像素的分类信息
相比于“较早”像素的分配信息可被更快地生成。“较早”和“较晚”指代这些像素被分配到其
在像素存储分配中的相关联的像素槽中的次序。即,“较早”像素是先被分配到像素存储分
配中的像素。更一般地,调度逻辑和管线化处理逻辑的具体配?#27599;?#20934;许像素独立地向前前
进通过有向图结构,而不管较晚像素是否最终在有向图结构的输出处越过较早像素。

在一个设置中,有向图结构处理要被分类的像素的深度信息(例如,系统的输入是
深度图)。处于该设置的分类信息可指定该像素是否与由深度相机捕捉的场景中的特定对
象相关联。在一些示例中,分类信息是经处理的像素属于特定类(例如,其对应于特定对象)
的概率。具体地,本文中描述的创新可结合身体部位(例如在手跟踪应用中)实现以确定像
素是否对应于?#31181;浮⑹滞蟆?#21069;臂等。

现转至附图,图1描绘了示例性有向图结构100。如所描绘的,有向图结构可包括多
个决策树102。个体决策树的示例在图2中的102a处被示出。决策树102a包括决策节点104和
叶节点106。每一决策节点处的操作的输出是关于要跟随哪个分支的二元左或右决策。相对
于从其分叉出的节点,目标节点可被称为子节点。

叶节点输出被用来生成像素的最终分类信息的信息。在典型实?#31181;校?#20026;像素遍历
多个决策树,并且来自个体树的叶节点输出被用于计算最终分类输出。取像素是否对应于
用户的腕部的示例上下文,每一叶节点输出可指定一百分比概?#21097;?#24182;且从各个体树输出的
概率被求平均以生成最终概率(例如,有90%的概率该像素对应于用户的腕部)。

根据本描述,可使用各种各样的有向图结构实现。在图1的特定示例中,有向图结
构100包括多个决策树102。被研究的像素经由调度逻辑和管线化处理逻辑的操作被走查通
过每一决策树102。对于经完全处理的像素(在一些情况下,像素将在早期?#39034;?#35813;结构),最
终分类信息是响应于该像素流经最?#25214;?#33410;点106a而被生成的。

有向图结构100可被实现为使各像素移动通过特定的预定义子结构(例如,决策
树)序列。该附图中的树到树箭?#20998;?#31034;这样的布置,在该布置中,在像素被走查通过给定树
102后,该像素随后被发送到指定的后续下游树。在其他实?#31181;校?#26641;到树的流动可以是动态
的,使得例如一个树可取决于运行时条件动态地链接到不同的后续下游树。

同样,如所指示的,有向图结构可包括多个阶段,并且来自一个阶段的输出提供另
一阶段的输入。多阶段布?#27599;?#20363;如提供临时操作边界,在该临时操作边界期间,其他处理操
作可在移动到下一阶段之前被执行。将领会,任何数目的树可按预定或动态顺序并在具有
任何期望数目的树的一个或多个阶段中被实现。此外,有向树结构作为整体以及其子结构
可以是循环或非循环的。此外,所描述的系统和方法也可结合具有两个以上分支的决策树
来实现。

现在参考图2,该图示意性地描绘了用于对像素进行分类的示例性系统200。在其
他元素中,系统200包括:一个或多个像素走查器202形式的检索逻辑;包括像素槽206a、
206b和206c的像素存储分配204;管线化处理逻辑208;在功能上被插入在像素槽和管线化
处理逻辑之间的调度逻辑210;以及,数据保持子系统212。虽然像素存储分配被示为不同于
数据保持子系统,但其像素槽确实保持数据,使得像素存储分配及其像素槽可与数据保持
子系统212中的数据同时驻留在各存储设备/位置中。

检索逻辑通过向像素槽提供与要分类的像素相关联的数据来将像素分配到像素
槽中。再一次,每一槽单独与其分类正待处理的像素相关联。在所描绘的示例中,检索逻辑
是从深度图检索数据的一个或多个像素走查器202。

在本示例中,通过以下方式来为各个体像素顺序地分配槽:将每一像素的XY屏幕
值216馈送到像素槽中。这些像素槽被串行地填充/分配,例如按这些像素槽被从深度图中
扫描出的次序,例如在深度图的特定行中从左向右移动的次序。再一次,“较早像素”是在其
他像素(其被称为“较晚像素”)之前被分配到其槽中的像素。换言之,除了深度图中的第一
个像素和最后一个像素以外,任何给定像素都将相对于一些像素“更早?#20445;?#24182;且相对于其他
像素“更晚”。如以下将更详?#35813;?#36848;的,处理逻辑208可被深度管线化,并且系统可实现调度
制度,该调度制度:(i)减少停滞和等待时间;(ii)高效地利用可用执行机制来避免有资源
闲置;(iii)无序地计算结果——例如,较晚像素的分类相比于较早像素的分类可被更快地
生成——以最大化性能和吞吐量;(iv)最小化存储器争用的影响;(v)允许各像素独立地向
前前进通过有向图结构;(vi)等等。

管线化处理逻辑208可包括一个或多个处理管线222,每一处理管线具有一个或多
个处理阶段224。可采用具有任何可行数目的阶段的任何可行数目的管线。此外,可采用任
何数目的像素槽。在一个非限制性示例中,发明人已通过使用12个像素槽(即12个待处理像
素可在飞行中通过有向图结构)以及3个具有至少一些冗余执行机制(例如,地址计算器、负
载存储单元等)的多阶段处理管线来达到合需的考虑平衡。但再一次,可采用任何数目的
槽、管线和管线阶段。

现转至数据保持子系统212,它可包括描述有向图节点(例如,决策树)的各方面的
节点描述符230。这样的描述符可指定要在某节点处执行的特定操作、决策所需的数据输入
的类型等等。

数据保持子系统212通信将还包括像素数据232。这可包括正被分类的各像素的任
何相关数据。示例包括:(i)例如来自深度图的XY屏幕坐标以及可能来自深度图的传感器数
据;(ii)与该像素相关联的数据的地址;(iii)来自决策树操作的计算结果;(iv)初步分类
信息,例如来自非最终决策树的叶节点的概率输出;(v)等等。在该数据可驻留在当像素在
飞行中通过有向图结构时向该像素分配的临时主基地(槽)中或者与该临时主基地相关联
的意义上说,该数据的部分或全部也可与在待处理分类期间向该像素分配的像素槽相关
联。数据保持子系统212也存储每一像素的分类信息234,例如来自深度图的像素对应于由
深度相机捕捉的场景中的特定身体部位或其他对象/特征的概率。

现参考图3,该图示出管线化处理逻辑208可用于使各像素走查通过有向图结构以
对像素进行分类的示例性方法300。将理解,这是非限制性示例实现:一个或多个步骤可被
忽略;不同于附图中所暗示的,各步骤可被按顺序执行;一个或多个步骤可被并行地执行;
未示出的附加步骤可被采用;等等。在许多情况下,该附图中示出的许多处理将用硬件来执
行,但是将领会,软件和/或硬件和软件的组合可被采用。软件操作可例如通过存储在数据
保持子系统212中的可执行指令236来执行。

图3构想了具有多个决策树的有向图结构,并示出了所发生的针对通过树节点的
处理回合的管线化操作。将领会,该工作流将针对每一经处理的节点反复迭代地发生。一般
来说,槽存储用作标识正被处理的特定节点的指针/标识符的标识符/索引。一旦针对那个
节点的处理工作流被完成,指针标识符就被更新为指向目标节点(例如,被分支到的子节
点)。针对决策节点的处理回合的结果是到下?#25991;?#26631;节点(子)的左或右分支。对于非最?#25214;?br />节点,该处理回合的结果是该像素属于某类的概?#21097;?#24182;且随后工作流移动到后续决策树。在
最?#25214;?#33410;点的情况下,来自该最?#25214;?#33410;点和所有先前遍历的非最?#25214;?#33410;点的输出被评估以
生成最终分类信息。在一个示例中,来自每一叶节点的概率输出被求平均以产生最终概率
(例如,该像素对应于用户的指尖之一)。

一般来说,图3中的操作包括对于给定决策树节点,计算所需数据的地址;取得/存
储该所需数据;使用所需数据作为输入来执行计算,例如从决策分支向左还是向右转;存储
结果;以及更新标识接着要处理哪个节点的指针。

还将结合示出示例像素槽400及其内容的图4来讨论图3。在404,槽包含指定正被
处理的当前节点的节点指针。在一个示例中,该指针可指示有向图结构中的阶段、特定树以
及该树内的节点,例如{阶段1.树4.节点9}。在302,方法包括对于被分配到像素槽400中的
像素(图4),计算并存储与该像素相关联的一个或多个数据片段的地址。在一个示例中,该
地址是从由像素走查器馈送到槽400中的、与该像素相关联的XY屏幕坐标(402处示出的坐
标)中计算出。不管该方法如何,计算的地址都可在406处被存储在像素槽中。可取得与像素
相关联的任何类型的数据。在一个实现类别中,如贯穿本文讨论的,像素深度值可被取得以
供在节点计算中使用。

在304,该方法包括取得并存储像素数据。这可包括例如使用在302处计算出的地
址来从数据保持系统212中取得相关的像素数据232。在本文中正讨论的特定实?#31181;校?#34987;提
取的数据是与该像素相关联的深度信息和/或反射率信息。一些信息可通过深度相机的传
感器或产生深度/反射率数据的其他感测机制直接或通过中间处理导出。检索出的信息可
被存储在像素槽400中,如408处所示出的。

在一些实?#31181;校?#21487;存在从处理流的早期?#39034;觶?#22914;306处所示出的。例如,该系统可具
有关于深度相机正扫描的房间的一些知识,在捕捉体中房间的后墙处于特定深度。如果该
像素的深度信息接近于后墙的深度,则可假定,该像素不是用户的身体的一部分,从而消除
对进一步分类处理的需要。可使用任何数目的评?#35272;?#30830;定早期工作流?#39034;觥?#21478;一示例将是
分析运动信息——如果深度信息在特定?#20013;?#26102;间内尚未改变,则可假定这种运动的缺乏意
味着该像素不是身体部位。在任何情况下,早期?#39034;?#20801;许槽400被释放(即被解除分配),由
此允许新的像素被分配到该槽中,在该情况下,该槽中的任何存储数据都将被转储清除,或
者被允许被盖写。

在该构想示例中,有向图结构中的每一节点都具有存储在数据保持子系统212中
的描述符(描述符230)。该描述符可例如描述要在决策节点处执行的操作的类型,诸如边缘
决策、运动决策、与相邻像素的深度比较、与一个或多个阈值的比较、对过滤器的应用等等。
描述符可指定作出计算所需的运算对象或其他数据的类型和/或位置。无论如何,该描述符
将具有可用于检索该描述符的地址(例如,在数据保持子系统212内的地址)。如308处所指
示的,该示例方法包括计算并存储节点描述符地址。如410处所指示的(图4),描述符地址可
被存储在槽400中。如上所述,在一些实?#31181;校?#20687;素槽400包括标识正被处理的当前节点的节
点指针402。回过头参考图1,该指针可包括标识当前决策树的索引以及指定树上的特定节
点的子索引。可在308在地址计算中使用这些指针/索引。在310,该方法包括检索节点标识
符。取得的描述符可被存储在像素槽400中,如412处所示出的。

如果检索到的节点是决策节点,而?#19988;?#33410;点,则处理流移动到步骤312、314、316和
318,这些步骤将附加地参考图5来描述。图5示出用户的手H的深度图500;在502该深度图的
一部分被扩大。像素504是正被分类的像素。在一个示例中,分类操作需要将该像素的深度
值与两个相邻像素(被称为偏移探针)的深度值进行比较,其中“偏移?#24065;?#21619;着这些相邻像素
在距正被分类的像素的某个距离处。偏移探针在图5中在506和508处被示出。

可使用涉及偏移探针的大范围的实现:任何可行数目的探针可被采样;采样可以
是随机的或者通过某个非随机的采样方法来执行;距正被研究的像素的任何距离可被使
用;其中多个探针可被使用,偏移距离可从一个探针到另一探针等同或不同。然而,将领会,
这些是作为非限制性示例来提供的,并且其他探针方法在本公开的范围内。

继续图3和4,在312,方法300包括计算并存储与偏移探针相关联的数据(例如,深
度数据)的地址。计算出的地址在414被存储在槽400中。在314,探针数据在416处被取得并
被存储的槽400中。如贯穿全文讨论的,所描述的系统和方法在将正被研究的像素的深度/
反射率数据与针对邻近点探针取得的类似数据进行比较的上下文中可被有益地使用。但这
是非限制性示例。可考虑与正被研究的像素和/或邻近像素相关联的任何类型的数据。更广
泛地,该描述涵盖?#27973;?#23485;范围的左右决策以及用于作出这样的决策的准则/运算对象/输
入。所描述的系统的许多方面不知道分支决策的?#38468;冢?#32780;改为聚焦于:无序处理的实现;存
储器争用的缓解;长等待时间影响的缓解;对深管线的利用和对可用处理资源的高效使用;
机器级并行性;等等。在任何情况下,在316处发生左右分支决策,其进而导致流到目标节
点,目标节点可以是另一决策节点、非最?#25214;?#33410;点或最?#25214;?#33410;点。如318处所示出的,使用
{阶段.树.阶段}表述方式或其他合适的索引/标识符将节点指针更新为指向新目标节点。
在这时,针对该节点的处理回合完成。针对?#34892;?#36259;的像素的流程图随后再次针对下一节点
开始。通常,每像素仅进行步骤302、304和306一次,使得处理以对下一节点描述符的检索来
?#25351;?步骤308和310)。

如以下将更详?#35813;?#36848;的,针对像素的图3的流不必稳定地沿着有向图结构处理/走
查通过有向图结构,而没有中断。可发生各种停滞、?#20064;统?#31561;待时间事件。例如,地址计算
在某些情况下可能是慢的/被延迟,请求的数据可花费几个周期来返回,管线可尝试从正被
另一像素/槽访问的存储器位置中检索节点。任何数目的事情可发生以中断处理。因此,来
自像素槽的操作可被调度逻辑反复“发射”到管线化处理逻辑,并且进行中操作可被认为
“撤退?#34987;?#21040;该槽。所谓的撤退构成处理的中断,但槽和调度逻辑协同行动以在问题被解决
?#22791;?#25928;地?#25351;?#22788;理。通常,槽将包括充当占位符/跟踪器的某个机制,该占位符/跟踪器协调
重新发射(包括重新发射的定时)—参见图4中的跟踪/调度信息。换言之,调度逻辑控制到
管线化处理逻辑的操作分派,并且它与像素槽协同行动以执行该功能—例如,在接收到请
求的数据之际重新发射。将领会,长等待时间事件通常与存储器请求相关联。由此,除了经
由智能调度获得的效率和性能益处外,长等待时间存储器存取事件也可通过存储器换页并
提供多个请求行来稍微缓解——参见图2的240。

在节点是非最?#25214;?#33410;点的情况下,工作流行进到步骤320和322。在320,该方法包
括计算/存储概率信息。如先前所指示的,一个示例实现涉及提供概率的每一非最?#25214;?#33410;
点。例如,取非最?#25214;?#33410;点A、B和C,假设非最?#25214;?#33410;点A指示有95%概?#25910;?#34987;研究的像素对
应于用户的前臂?#29615;?#26368;?#25214;?#33410;点B指示有98%的概?#25910;?#34987;研究的像素对应于用户的前臂;并
且非最?#25214;?#33410;点C指示有78%的概?#25910;?#34987;研究的像素对应于用户的前臂。在这样的情况下,
在到达最?#25214;?#33410;点之际可对三个结果求平均,以便生成正被研究的像素有90.33%的可能
是前臂的最终分类输出。在322,节点指针被更新为指向新目标节点,其在该场景中(从非最
?#25214;?#33410;点向外流)通常会以该有向图结构中的下一决策树的根决策节点为目标。针对正被
研究的像素的处理将随后行进到该下一根节点。如以上所指示的,通常每像素仅进行步骤
302、304和306一次,使得后继处理以对下一根节点的检索(步骤308和310)开始。

在节点是最?#25214;?#33410;点的情况下,处理流从310到324。在324,通用处理将生成最终
分类输出,例如像素具有特定特征或属于特定类别/类的概率。在本文中描述的实?#31181;校?#26368;
终输出是该像素对应于用户的身体部位(前臂、腕部、指尖等)的概率。该概率可作为分类信
息234被存储在数据保持子系统212中。在这时,该像素已被分类,这允许其像素槽被解除分
配(步骤326),这进而允许该槽被填充进另一像素(例如,像素走查器可将新像素的XY坐标
馈送到该槽)。在解除分配之前,经由遍历叶节点产生的分类信息可作为分类信息420被存
储在槽400中。

如以上所指示的,使像素走查通过有向图结构可时不时地因停滞、?#20064;?#38271;等待时
间事件、存储器争用/冲突等被中断。在这样的情况下,处理流可“撤退?#34987;?#21040;主基地像素槽,
并且重新发射可比该问题已被解决(例如,请求的数据已返回)晚几个周期发生。像素槽通
常具有调度逻辑可访问的某个占位符/跟踪机制,该机制允许调度逻辑智能地控制该像素
到管线化处理逻辑的?#23454;被?#21046;的重新发射。应当注意,多个处理管线可被采用,并且重新发
射可被控制,从而使得坐标被分派到特定管线。特定管线可以是其中发生了该停滞的管线,
或者它可以是可提供与发生的停滞相同功能性的在进行中的另一管线。就这一点而言,调
度逻辑通常将具有以下某种机制,该机制允许该调度逻辑最大地利用可用执行资源,使得
这些资源被最?#35834;?#20351;用?#20063;?#34987;允许在这些资源能被良好地使用时闲置。

像素槽、调度逻辑和管线化处理逻辑的协作式操作提供多种益处。首先,如别处所
述,对较早像素的分类可在较晚像素的分类之前发生(即,输出顺序可不同于用于将各像素
分派到槽中的输入顺序)。例如,在假设为像素P0、P1、P2、P3、P4的时间输入顺序的情况下,
输入顺序可以为P3,P0,P2,P4,P1。任?#26410;?#24207;是可能的,并且最终的输出顺序通常将根据在
使各个像素走查通过有向图结构时发生的指定问题(停滞、长等待时间事件的?#20013;?#26102;间和
数目、存储器冲突等)。理解该动态的另一种方式是这些像素独立地向前前进通过有向图结
构。

图6结合像素分类系统600提供保持在像素存储分配602中的三个像素被走查通过
有向图结构604的示例,该有向图结构604由管线化处理逻辑606来用硬件实现。像素存储分
配602包括像素槽610,在此处被标识为槽1到12。虽然描绘了十二个槽,但可采用任何可行
的数目。在该示例中,十二个槽允许十二个像素被同时在飞行中通过有向图结构604。调度
逻辑608在功能上被插入在像素槽和管线化处理逻辑606之间。如在别处描述的,调度逻辑
用于:(i)控制操作分派—也被称为“发射”—到有向图结构及其实现的管线化处理逻辑中;
(ii)智能地将像素和像素数据分派给可用处理资源;(iii)监视重新发射操作的定时,例如
仅在请求的数据在像素槽中变?#27599;?#29992;时才重新发射;(iv)通过转储清除停滞的进行中操
作,控制回到槽的撤退并跟踪停滞何时被解决以使得重新发射被?#23454;?#22320;定时来促成对停滞
的清除。

在该示例中,每一像素槽都填充有其分类正待处理的像素?#25442;?#35328;之,有十二个像素
在飞行中并独立向前前进通过有向图结构604以最后以最终分类输出告终。出于清楚和说
明的目的,操作将仅针对这些像素中的以下三个像素来描述:P0、P1和P20/1/2指定指代它
们被分配到其槽中的输入顺序:P0是最早的像素,P2是最晚的像素,并且P1在像素P0和P2之
间的时间被分配。再次如先前所描述的,针对这些像素的最终输出的定时可按任?#26410;?#24207;发
生。示出了仅针对一个决策树620的处理。每一像素都流经该树,在去叶节点的途中可能具
?#20449;级?#30340;中断。根决策节点被指定为“0”。该树中的每一子节点是参考其?#38468;?#28857;以及籍此到
达该子节点的分支方向来指定的。左转用“0”来指定,并且右转用“1”来指定。换言之,来自
根节点[0]的左目标为[0.0],并且右目标为[0.1]。[0.0]的左目标为[0.0.0],其右目标为
[0.0.1],并以此类推。像素P0流经[0]>[0.0]>[0.0.1]>[0.0.1.0]>[0.0.1.0.0](叶节点)。
像素P1流经[0]>[0.0]>[0.0.1]>[0.0.1.1](叶节点)。像素P2流经[0]>[0.1]>[0.1.0](叶
节点)。

如可明白的,所有三个像素在某种程度上共享公共路径。首先,所有三个像素在根
节点[0]处开始。像素P1随后与其他两个节点分叉到节点[0.1]。像素P2和P0共同流经[0]、
[0.0]和[0.0.1],这时,像素P2和P0分叉到不同的目标子节点。

虽然像素P2和P0走查相同路径的一部分,它们可甚至沿着该公共路?#23545;?#36807;彼此。
例如,像素P0可首先在节点[0]处开始。可随后很好地想像到当P0正在[0.0]处处理时可能
的停滞。或许P0正在请求当前在被另一槽/像素访问的节点描述符。或许在[0.0]处,存在与
地址计算相关联的一些等待时间。或许在[0.0]处,在点探针被取得时,存在存储器争用。另
一中断数目是可能的。在这样的中断的情况下,P0将撤退到其槽,且像素P2随后可能在P0被
重新发射之前(例如,在请求的数据已被返回之后)流经[0]>[0.0]>[0.0.1]。该独立、无序
的向前前进提供极大的灵活性、对处理资源的高效使用、与存储器争用相关联的性能损失
的最小化等等。

使用十二个像素槽允许十二个像素同时在飞行中通过有向图结构606,并且管线
化处理逻辑604和调度逻辑608被配置成使得每一像素可独立地向前前进通过该有向图结
构—各像素?#31245;?#36807;彼此;最终的写出顺序独立于将像素分配到其像素槽中的输入顺序;最
终,较晚像素相比于较早像素可被更快速地分类。

调度逻辑608控制从像素槽到管线化处理606的执行机制的操作分派。如所指示
的,对于任何给定槽,操作可“发射”到管线化处理逻辑,并可从该管线撤退。将理解,这些术
语是概念上的,并?#20918;?#31034;相对于该槽发生的活动——即,发射指示该管线中针对所分配的
像素的操作的开始;撤退指示操作已停止,例如在停滞或其他长等待时间事件的情况下。

在一些实施例中,本文中描述的方法和过程可以与一个或多个计算设备的计算系
统绑定。尤其地,这样的方法和过程可被实现为计算机应用程序或服务、应用编程接口
(API)、库和/或其他计算机程序产品。

图7示意性地示出了可执行上述方法和过程中的一个或多个的计算系统700的非
限制性实现。以简化形式示出了计算系统700。计算系统700可采取以下形式:一个或多个个
人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计
算设备、移动通信设备(例如,智能电话)和/或其他计算设备。例如,计算系统700可以是微
软的Kinect。

计算系统700包括数据保持子系统62和管线处理逻辑714。计算系统700可任选地
包括显示子系统716、通信子系统718、输入子系统704和/或在图7中未示出的其他组件。

数据保持子系统702包括一个或多个物理设备,该一个或多个物理设备被配置成
保持可由管线处理逻辑执行以实?#30452;?#25991;中所述的方法和过程的指令。在实现这样的方法和
过程时,可以变换数据保持子系统702的状态(例如,以保持不同的数据)。例如,数据保持子
系统702可被配置成保持深度图710和/或其他数据712,其中其他数据包括节点描述符230、
像素数据232、分类信息234、可执行指令236和任何其他合适的数据。此外,数据保持子系统
702可包括被配置成保持数据的像素槽,使得像素存储分配及其像素槽可与数据保持子系
统702中的数据同时驻留在各存储设备/位置中。

数据保持子系统702可包括可移动和/或内置设备。数据保持子系统702可以包括
光学存储器(例如,CD、DVD、HD-DVD、蓝光碟等)、半导体存储器(例如,RAM、EPROM、EEPROM等)
和/或磁性存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)、等等。数据保持子
系统702可包括?#36164;?#24615;、?#19988;资?#24615;、动态、静态、读/写、只读、随机存取、顺序存取、位?#27599;?#23547;
址、文件可寻址和/或内容可寻址设备。将理解,数据保持子系统702包括一个或多个物理设
备。然而,本文描述的指令的各方面可另选地通过不由物理设备在有限时长内持有的通信
介质(例如,电磁信号、光信号等)来传播。

输入子系统704可包括传感器子系统706或与传感器子系统706对接。传感器子系
统706可被配置成捕捉对象708作深度图710形式的深度信息,其中深度图被发送并存储在
数据保持子系统702中附加地或替换地,输入子系统704可包括诸如键盘、鼠标、触摸屏或游
戏控制器之类的一个或多个用户输入设备。

在一些实施例中,输入子系统可包括所选的自然用户输入(NUI)部件或与其结合。

这种部件可以是集成的或外围的,且输入动作的转导和/或处理可以在板上或板
外被处理。

NUI部件的示例可包括用于语言和/或语音识别的话筒;用于机器视觉和/或姿势
识别的红外、色彩、立体显示和/或深度相机;用于运动检测和/或意图识别的头部跟踪器、
眼睛跟踪器、加速计和/或陀螺仪;以及用于评估脑部活动的电场感测部件。

管线处理逻辑714包括被配置成执行指令的一个或多个物理设备。例如,管线处理
逻辑可以被配置为执行作为一个或多个应用、服务、程序、例程、库、对象、组件、数据结构或
其它逻辑构造的一部分的指令。这种指令可被实现以执行任务、实现数据类型、转换一个或
多个部件的状态、实现技术效果、或以其它方式得到期望结果。

管线处理逻辑714可包括被配置成执行软件指令的一个或多个处理器。附加地或
可替代地,管线处理逻辑可包括被配置为执行硬件或固件指令的一个或多个硬件或固件逻
辑机。管线处理逻辑的处理器可以是单核的或多核的,并且其上执行的指令可以被配置用
于串行、并行和/或分布式处理。管线处理逻辑的个体组件可任选地可分布在两个或更多个
分开的设备之中,所述设备可以位于远程以及/或者被配置用于协同处理。管线处理逻辑的
各方面可由以云计算配置进行配置的?#31245;?#31243;访问的联网计算设备来虚拟化和执行。

数据保持子系统702和管线处理逻辑704的各方面可被一起集成到一个或多个硬
件逻辑组件中。这些硬件逻辑组件可包括例如现场可编程门阵列(FPGA)、程序和应用专用
的集成电路(PASIC/ASIC)、程序和应用专用的标准产品(PSSP/ASSP)、片上系统(SOC)以及
复杂可编程逻辑器件(CPLD)。

术语“模块”、“程序”和“引擎”可用于描述被实现为执行一个特定功能的计算系统
700的一方面。在某些情况下,可以通过执行由数据保持子系统702所保持的指令的管线处
理逻辑714来实例化这样的模块、程序或引擎。将理解,可以从同一应用、服务、代码块、对
象、库、例程、API、函数等实例化不同的模块、程序和/或引擎。同样,可以由不同的应用程
序、服务、代码块、对象、例程、API、函数等来实例化同一模块、程序和/或引擎。术语“模块”、
“程序”和“引擎”可涵盖单个或成组的可执行文件、数据文件、库、驱动程序、脚本、数据库记
录等。

应当理解,如此处所使用的“服务”可以是跨越多个用户会话可执行的应用程序。
服务可对一个或更多系统组件、程序、和/或其他服务可用。在某些实?#31181;校?#26381;务可以在一个
或多个服务器计算设备上运行。

当被包括时,显示子系统716可用于呈现由数据保持子系统702所保持的数据的可
?#39062;?#31034;。该视觉表示可采用图形用户界面(GUI)的形式。由于此处所描述的方法和过程改变
了由数据保持子系统保持的数据,并由此转变了数据保持子系统的状态,因此同样可以转
变显示子系统716的状态以可视地表?#38236;?#23618;数据中的改变。显示子系统716可以包括使用实
质上任何类型的技术的一个或多个显示设备。可将此类显示设备与数据保持子系统702和/
或管线处理逻辑704一起组合在共享封装中,或此类显示设备可以是外围显示设备。

当包括通信子系统718时,通信子系统718可被配置成将计算系统700与一个或多
个其他计算设备通信地耦合。通信子系统718可以包括与一个或多个不同通信协议兼容的
有线和/或无线通信设备。作为非限制性示例,通信子系统可被配置成用于经由无线电话网
络或者有线或无线局域网或广域网来进行通信。在一些实施例中,通信子系统?#31245;?#35768;计算
系统700经由诸如因特网这样的网络将消息发送至其他设备以及/或者从其它设备接收消
息。

本文中的示例主要指代二元决策树,其中节点操作导致“左或右”决策。然而,将领
会,本系统和方法可结合其他类型的节点结果被采用。例如,分类器可基于嵌入在节点中的
真/假偏移而跳到?#25105;?#33410;点。例如,如果决策被评估为真,则(下一节点偏移=当前节点偏移
+节点真偏移)。

将会理解,此处描述的配置和/或方法本质是示例性的,这些具体实施例或示例不
应被视为限制性的,因为许多变体是可能的。此处描述的具体例程或方法可以表示任何数
量的处理策略中的一个或多个。如此,所示和/或所述的各种动作可以以所示和/或所述顺
序、以其它顺序、并行地执行,或者被省略。同样,上述过程的次序可以改变。

本公开的主题包括各种过程、系统和配置以及此处公开的其它特征、功能、动作
和/或属性、以及它们的任一和全部等价物的所?#34892;?#39062;且非显而?#20934;?#30340;组合和子组合。

关于本文
本文标题:用于对像素进行分类的系统和方法.pdf
链接地址:http://www.pqiex.tw/p-6091843.html
关于我们 - 网站声明 - 网?#38236;?#22270; - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 假货赚钱的怎么举报 捕鱼来了稳定上分设置 二人麻将在线玩 排球比分直播 西游争霸游戏机玩法 2018捕鱼赢现金可提现 时时彩组三开出规律 梦幻西游 打图赚钱吗 2019076双色球开奖结果 ak娱乐是正规的平台吗