最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

用于對像素進(jìn)行分類的系統(tǒng)和方法與流程

文檔序號:11161040閱讀:876來源:國知局
用于對像素進(jìn)行分類的系統(tǒng)和方法與制造工藝

存在用于對像素進(jìn)行分類的各種方法。一種類型的分類需要計算像素具有特定特征或?qū)儆谔囟惖慕y(tǒng)計概率。在一些分類系統(tǒng)中,像素數(shù)據(jù)被“走查”通過決策樹的各決策節(jié)點,直到處理操作在葉節(jié)點處完結(jié)。用于對像素進(jìn)行分類的輸出與葉節(jié)點相關(guān)聯(lián)。典型的決策樹系統(tǒng)具有淺管線,并且在其對操作停滯、存儲器爭用和長等待時間事件的處理中是次優(yōu)的。

概述

提供本概述以便以簡化的形式介紹以下在詳細(xì)描述中進(jìn)一步描述的一些概念。本概述并不旨在標(biāo)識所要求保護主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護主題的范圍。此外,所要求保護的主題不限于解決在本公開的任一部分中所提及的任何或所有缺點的實現(xiàn)。

公開了涉及處理圖像像素的各實施例。例如,一個公開的實施例提供一種用于對像素進(jìn)行分類的系統(tǒng),該系統(tǒng)包括:檢索邏輯;像素存儲分配,該像素存儲分配包括多個像素槽,每一像素槽分別與一像素相關(guān)聯(lián),其中檢索邏輯被配置成使得各像素按輸入順序被分配到像素槽中;管線化處理邏輯,該管線化處理邏輯被配置成針對這些像素中的每一者,輸出與該像素相關(guān)聯(lián)的分類信息;以及調(diào)度邏輯,該調(diào)度邏輯被配置成控制從像素槽到管線化處理邏輯的分派,其中調(diào)度邏輯和管線化處理邏輯被配置成協(xié)同行動以按輸出順序生成這些像素的分類信息,使得比較早像素更晚分配到其像素槽中的較晚像素被分配到其像素槽中,輸出順序與輸入順序不同于并獨立于輸入順序,管線化處理邏輯使較晚像素的分類信息相比于較早像素的分類信息被更快地生成。

附圖簡述

圖1示出根據(jù)本公開的一實現(xiàn)的示例性有向圖結(jié)構(gòu)。

圖2示意性地示出根據(jù)本公開的一實現(xiàn)的用于對像素進(jìn)行分類的示例性系統(tǒng)。

圖3示出解說根據(jù)本公開的一實現(xiàn)的可用于對像素進(jìn)行分類的示例性方法的流程圖。

圖4示意性地示出根據(jù)本公開的一實現(xiàn)的示例像素槽。

圖5示意性地示出根據(jù)本公開的一實現(xiàn)的深度圖。

圖6示出根據(jù)本公開的一實現(xiàn)的像素分類系統(tǒng)。

圖7示出根據(jù)本公開的一實現(xiàn)的計算系統(tǒng)的框圖。

詳細(xì)描述

該描述涉及用于使用管線化處理邏輯來使各像素走查通過有向圖結(jié)構(gòu)的新穎的系統(tǒng)和方法。有向圖結(jié)構(gòu)被遍歷,以便生成這些像素的分類信息。分類信息可包括例如像素是否具有特定特征或?qū)儆谔囟?。在一些情況下,這是根據(jù)像素具有該特征或?qū)儆谠擃惖母怕蕘碇付ǖ摹?/p>

在一些實施例中,有向圖結(jié)構(gòu)處理深度圖以便對像素進(jìn)行分類。檢索邏輯將各像素分配到包括多個像素槽的像素存儲分配中。像素槽存儲關(guān)于像素的各種信息,例如與像素相關(guān)聯(lián)的數(shù)據(jù)的地址、標(biāo)識像素的XY屏幕坐標(biāo)或其他索引、正被處理的圖節(jié)點的標(biāo)識、有向圖處理操作的結(jié)果等等。各像素是按輸入順序被逐像素地分配到像素槽中的。例如,來自一掃描行的像素可被串行地一個接一個地放置到可用像素槽中。如以下將更詳細(xì)描述的,當(dāng)像素在飛行中通過有向圖結(jié)構(gòu)時,像素槽充當(dāng)該像素的“主基地(home base)”。一旦像素被分類,其槽就被解除分配并且被釋放以供由檢索邏輯取得的另一輸入像素使用。

調(diào)度邏輯在功能上被插入在像素槽和管線化處理邏輯之間。調(diào)度邏輯控制從像素槽到管線化處理邏輯的執(zhí)行機制的操作分派。管線化處理邏輯用于使每一像素走查通過有向圖結(jié)構(gòu)。像素槽用作與像素相關(guān)聯(lián)的信息的主基地/臨時存儲位置,并且隨著管線化處理邏輯使得該像素向前前進(jìn)通過該有向圖結(jié)構(gòu),該信息可被改變、更新等。如本文中所使用的,“向前前進(jìn)”描述像素朝向葉節(jié)點越來越深地走查通過有向圖結(jié)構(gòu)。如以下將更詳細(xì)地討論的,向前前進(jìn)可斷斷續(xù)續(xù)地行進(jìn)(例如可發(fā)生要花時間來解決的停滯或其他長等待時間事件),使得當(dāng)各像素向下移動通過并更深入有向圖結(jié)構(gòu)時,在飛行中這些像素可越過(leapfrog)彼此。該用于無序、獨立向前前進(jìn)的能力可提供許多優(yōu)點,并允許該系統(tǒng)最大地利用可用處理資源,減少等待時間和爭用,并確保執(zhí)行機制不會閑置。

調(diào)度邏輯和管線化處理邏輯彼此協(xié)同行動以實現(xiàn)對這些像素的機器級并行和無序處理。在一些示例中,這使得分類信息按輸出順序產(chǎn)生,該輸出順序不同于并獨立于用于經(jīng)分類的像素被分配到其相關(guān)聯(lián)的像素槽中的輸入順序。在一個場景中,如以上所提到的,這可使得像素操作越過彼此,從而準(zhǔn)許像素的無序分類輸出。例如,“較晚”像素的分類信息相比于“較早”像素的分配信息可被更快地生成。“較早”和“較晚”指代這些像素被分配到其在像素存儲分配中的相關(guān)聯(lián)的像素槽中的次序。即,“較早”像素是先被分配到像素存儲分配中的像素。更一般地,調(diào)度邏輯和管線化處理邏輯的具體配置可準(zhǔn)許像素獨立地向前前進(jìn)通過有向圖結(jié)構(gòu),而不管較晚像素是否最終在有向圖結(jié)構(gòu)的輸出處越過較早像素。

在一個設(shè)置中,有向圖結(jié)構(gòu)處理要被分類的像素的深度信息(例如,系統(tǒng)的輸入是深度圖)。處于該設(shè)置的分類信息可指定該像素是否與由深度相機捕捉的場景中的特定對象相關(guān)聯(lián)。在一些示例中,分類信息是經(jīng)處理的像素屬于特定類(例如,其對應(yīng)于特定對象)的概率。具體地,本文中描述的創(chuàng)新可結(jié)合身體部位(例如在手跟蹤應(yīng)用中)實現(xiàn)以確定像素是否對應(yīng)于手指、手腕、前臂等。

現(xiàn)轉(zhuǎn)至附圖,圖1描繪了示例性有向圖結(jié)構(gòu)100。如所描繪的,有向圖結(jié)構(gòu)可包括多個決策樹102。個體決策樹的示例在圖2中的102a處被示出。決策樹102a包括決策節(jié)點104和葉節(jié)點106。每一決策節(jié)點處的操作的輸出是關(guān)于要跟隨哪個分支的二元左或右決策。相對于從其分叉出的節(jié)點,目標(biāo)節(jié)點可被稱為子節(jié)點。

葉節(jié)點輸出被用來生成像素的最終分類信息的信息。在典型實現(xiàn)中,為像素遍歷多個決策樹,并且來自個體樹的葉節(jié)點輸出被用于計算最終分類輸出。取像素是否對應(yīng)于用戶的腕部的示例上下文,每一葉節(jié)點輸出可指定一百分比概率,并且從各個體樹輸出的概率被求平均以生成最終概率(例如,有90%的概率該像素對應(yīng)于用戶的腕部)。

根據(jù)本描述,可使用各種各樣的有向圖結(jié)構(gòu)實現(xiàn)。在圖1的特定示例中,有向圖結(jié)構(gòu)100包括多個決策樹102。被研究的像素經(jīng)由調(diào)度邏輯和管線化處理邏輯的操作被走查通過每一決策樹102。對于經(jīng)完全處理的像素(在一些情況下,像素將在早期退出該結(jié)構(gòu)),最終分類信息是響應(yīng)于該像素流經(jīng)最終葉節(jié)點106a而被生成的。

有向圖結(jié)構(gòu)100可被實現(xiàn)為使各像素移動通過特定的預(yù)定義子結(jié)構(gòu)(例如,決策樹)序列。該附圖中的樹到樹箭頭指示這樣的布置,在該布置中,在像素被走查通過給定樹102后,該像素隨后被發(fā)送到指定的后續(xù)下游樹。在其他實現(xiàn)中,樹到樹的流動可以是動態(tài)的,使得例如一個樹可取決于運行時條件動態(tài)地鏈接到不同的后續(xù)下游樹。

同樣,如所指示的,有向圖結(jié)構(gòu)可包括多個階段,并且來自一個階段的輸出提供另一階段的輸入。多階段布置可例如提供臨時操作邊界,在該臨時操作邊界期間,其他處理操作可在移動到下一階段之前被執(zhí)行。將領(lǐng)會,任何數(shù)目的樹可按預(yù)定或動態(tài)順序并在具有任何期望數(shù)目的樹的一個或多個階段中被實現(xiàn)。此外,有向樹結(jié)構(gòu)作為整體以及其子結(jié)構(gòu)可以是循環(huán)或非循環(huán)的。此外,所描述的系統(tǒng)和方法也可結(jié)合具有兩個以上分支的決策樹來實現(xiàn)。

現(xiàn)在參考圖2,該圖示意性地描繪了用于對像素進(jìn)行分類的示例性系統(tǒng)200。在其他元素中,系統(tǒng)200包括:一個或多個像素走查器202形式的檢索邏輯;包括像素槽206a、206b和206c的像素存儲分配204;管線化處理邏輯208;在功能上被插入在像素槽和管線化處理邏輯之間的調(diào)度邏輯210;以及,數(shù)據(jù)保持子系統(tǒng)212。雖然像素存儲分配被示為不同于數(shù)據(jù)保持子系統(tǒng),但其像素槽確實保持?jǐn)?shù)據(jù),使得像素存儲分配及其像素槽可與數(shù)據(jù)保持子系統(tǒng)212中的數(shù)據(jù)同時駐留在各存儲設(shè)備/位置中。

檢索邏輯通過向像素槽提供與要分類的像素相關(guān)聯(lián)的數(shù)據(jù)來將像素分配到像素槽中。再一次,每一槽單獨與其分類正待處理的像素相關(guān)聯(lián)。在所描繪的示例中,檢索邏輯是從深度圖檢索數(shù)據(jù)的一個或多個像素走查器202。

在本示例中,通過以下方式來為各個體像素順序地分配槽:將每一像素的XY屏幕值216饋送到像素槽中。這些像素槽被串行地填充/分配,例如按這些像素槽被從深度圖中掃描出的次序,例如在深度圖的特定行中從左向右移動的次序。再一次,“較早像素”是在其他像素(其被稱為“較晚像素”)之前被分配到其槽中的像素。換言之,除了深度圖中的第一個像素和最后一個像素以外,任何給定像素都將相對于一些像素“更早”,并且相對于其他像素“更晚”。如以下將更詳細(xì)描述的,處理邏輯208可被深度管線化,并且系統(tǒng)可實現(xiàn)調(diào)度制度,該調(diào)度制度:(i)減少停滯和等待時間;(ii)高效地利用可用執(zhí)行機制來避免有資源閑置;(iii)無序地計算結(jié)果——例如,較晚像素的分類相比于較早像素的分類可被更快地生成——以最大化性能和吞吐量;(iv)最小化存儲器爭用的影響;(v)允許各像素獨立地向前前進(jìn)通過有向圖結(jié)構(gòu);(vi)等等。

管線化處理邏輯208可包括一個或多個處理管線222,每一處理管線具有一個或多個處理階段224??刹捎镁哂腥魏慰尚袛?shù)目的階段的任何可行數(shù)目的管線。此外,可采用任何數(shù)目的像素槽。在一個非限制性示例中,發(fā)明人已通過使用12個像素槽(即12個待處理像素可在飛行中通過有向圖結(jié)構(gòu))以及3個具有至少一些冗余執(zhí)行機制(例如,地址計算器、負(fù)載存儲單元等)的多階段處理管線來達(dá)到合需的考慮平衡。但再一次,可采用任何數(shù)目的槽、管線和管線階段。

現(xiàn)轉(zhuǎn)至數(shù)據(jù)保持子系統(tǒng)212,它可包括描述有向圖節(jié)點(例如,決策樹)的各方面的節(jié)點描述符230。這樣的描述符可指定要在某節(jié)點處執(zhí)行的特定操作、決策所需的數(shù)據(jù)輸入的類型等等。

數(shù)據(jù)保持子系統(tǒng)212通信將還包括像素數(shù)據(jù)232。這可包括正被分類的各像素的任何相關(guān)數(shù)據(jù)。示例包括:(i)例如來自深度圖的XY屏幕坐標(biāo)以及可能來自深度圖的傳感器數(shù)據(jù);(ii)與該像素相關(guān)聯(lián)的數(shù)據(jù)的地址;(iii)來自決策樹操作的計算結(jié)果;(iv)初步分類信息,例如來自非最終決策樹的葉節(jié)點的概率輸出;(v)等等。在該數(shù)據(jù)可駐留在當(dāng)像素在飛行中通過有向圖結(jié)構(gòu)時向該像素分配的臨時主基地(槽)中或者與該臨時主基地相關(guān)聯(lián)的意義上說,該數(shù)據(jù)的部分或全部也可與在待處理分類期間向該像素分配的像素槽相關(guān)聯(lián)。數(shù)據(jù)保持子系統(tǒng)212也存儲每一像素的分類信息234,例如來自深度圖的像素對應(yīng)于由深度相機捕捉的場景中的特定身體部位或其他對象/特征的概率。

現(xiàn)參考圖3,該圖示出管線化處理邏輯208可用于使各像素走查通過有向圖結(jié)構(gòu)以對像素進(jìn)行分類的示例性方法300。將理解,這是非限制性示例實現(xiàn):一個或多個步驟可被忽略;不同于附圖中所暗示的,各步驟可被按順序執(zhí)行;一個或多個步驟可被并行地執(zhí)行;未示出的附加步驟可被采用;等等。在許多情況下,該附圖中示出的許多處理將用硬件來執(zhí)行,但是將領(lǐng)會,軟件和/或硬件和軟件的組合可被采用。軟件操作可例如通過存儲在數(shù)據(jù)保持子系統(tǒng)212中的可執(zhí)行指令236來執(zhí)行。

圖3構(gòu)想了具有多個決策樹的有向圖結(jié)構(gòu),并示出了所發(fā)生的針對通過樹節(jié)點的處理回合的管線化操作。將領(lǐng)會,該工作流將針對每一經(jīng)處理的節(jié)點反復(fù)迭代地發(fā)生。一般來說,槽存儲用作標(biāo)識正被處理的特定節(jié)點的指針/標(biāo)識符的標(biāo)識符/索引。一旦針對那個節(jié)點的處理工作流被完成,指針標(biāo)識符就被更新為指向目標(biāo)節(jié)點(例如,被分支到的子節(jié)點)。針對決策節(jié)點的處理回合的結(jié)果是到下游目標(biāo)節(jié)點(子)的左或右分支。對于非最終葉節(jié)點,該處理回合的結(jié)果是該像素屬于某類的概率,并且隨后工作流移動到后續(xù)決策樹。在最終葉節(jié)點的情況下,來自該最終葉節(jié)點和所有先前遍歷的非最終葉節(jié)點的輸出被評估以生成最終分類信息。在一個示例中,來自每一葉節(jié)點的概率輸出被求平均以產(chǎn)生最終概率(例如,該像素對應(yīng)于用戶的指尖之一)。

一般來說,圖3中的操作包括對于給定決策樹節(jié)點,計算所需數(shù)據(jù)的地址;取得/存儲該所需數(shù)據(jù);使用所需數(shù)據(jù)作為輸入來執(zhí)行計算,例如從決策分支向左還是向右轉(zhuǎn);存儲結(jié)果;以及更新標(biāo)識接著要處理哪個節(jié)點的指針。

還將結(jié)合示出示例像素槽400及其內(nèi)容的圖4來討論圖3。在404,槽包含指定正被處理的當(dāng)前節(jié)點的節(jié)點指針。在一個示例中,該指針可指示有向圖結(jié)構(gòu)中的階段、特定樹以及該樹內(nèi)的節(jié)點,例如{階段1.樹4.節(jié)點9}。在302,方法包括對于被分配到像素槽400中的像素(圖4),計算并存儲與該像素相關(guān)聯(lián)的一個或多個數(shù)據(jù)片段的地址。在一個示例中,該地址是從由像素走查器饋送到槽400中的、與該像素相關(guān)聯(lián)的XY屏幕坐標(biāo)(402處示出的坐標(biāo))中計算出。不管該方法如何,計算的地址都可在406處被存儲在像素槽中。可取得與像素相關(guān)聯(lián)的任何類型的數(shù)據(jù)。在一個實現(xiàn)類別中,如貫穿本文討論的,像素深度值可被取得以供在節(jié)點計算中使用。

在304,該方法包括取得并存儲像素數(shù)據(jù)。這可包括例如使用在302處計算出的地址來從數(shù)據(jù)保持系統(tǒng)212中取得相關(guān)的像素數(shù)據(jù)232。在本文中正討論的特定實現(xiàn)中,被提取的數(shù)據(jù)是與該像素相關(guān)聯(lián)的深度信息和/或反射率信息。一些信息可通過深度相機的傳感器或產(chǎn)生深度/反射率數(shù)據(jù)的其他感測機制直接或通過中間處理導(dǎo)出。檢索出的信息可被存儲在像素槽400中,如408處所示出的。

在一些實現(xiàn)中,可存在從處理流的早期退出,如306處所示出的。例如,該系統(tǒng)可具有關(guān)于深度相機正掃描的房間的一些知識,在捕捉體中房間的后墻處于特定深度。如果該像素的深度信息接近于后墻的深度,則可假定,該像素不是用戶的身體的一部分,從而消除對進(jìn)一步分類處理的需要??墒褂萌魏螖?shù)目的評估來確定早期工作流退出。另一示例將是分析運動信息——如果深度信息在特定持續(xù)時間內(nèi)尚未改變,則可假定這種運動的缺乏意味著該像素不是身體部位。在任何情況下,早期退出允許槽400被釋放(即被解除分配),由此允許新的像素被分配到該槽中,在該情況下,該槽中的任何存儲數(shù)據(jù)都將被轉(zhuǎn)儲清除,或者被允許被蓋寫。

在該構(gòu)想示例中,有向圖結(jié)構(gòu)中的每一節(jié)點都具有存儲在數(shù)據(jù)保持子系統(tǒng)212中的描述符(描述符230)。該描述符可例如描述要在決策節(jié)點處執(zhí)行的操作的類型,諸如邊緣決策、運動決策、與相鄰像素的深度比較、與一個或多個閾值的比較、對過濾器的應(yīng)用等等。描述符可指定作出計算所需的運算對象或其他數(shù)據(jù)的類型和/或位置。無論如何,該描述符將具有可用于檢索該描述符的地址(例如,在數(shù)據(jù)保持子系統(tǒng)212內(nèi)的地址)。如308處所指示的,該示例方法包括計算并存儲節(jié)點描述符地址。如410處所指示的(圖4),描述符地址可被存儲在槽400中。如上所述,在一些實現(xiàn)中,像素槽400包括標(biāo)識正被處理的當(dāng)前節(jié)點的節(jié)點指針402?;剡^頭參考圖1,該指針可包括標(biāo)識當(dāng)前決策樹的索引以及指定樹上的特定節(jié)點的子索引??稍?08在地址計算中使用這些指針/索引。在310,該方法包括檢索節(jié)點標(biāo)識符。取得的描述符可被存儲在像素槽400中,如412處所示出的。

如果檢索到的節(jié)點是決策節(jié)點,而非葉節(jié)點,則處理流移動到步驟312、314、316和318,這些步驟將附加地參考圖5來描述。圖5示出用戶的手H的深度圖500;在502該深度圖的一部分被擴大。像素504是正被分類的像素。在一個示例中,分類操作需要將該像素的深度值與兩個相鄰像素(被稱為偏移探針)的深度值進(jìn)行比較,其中“偏移”意味著這些相鄰像素在距正被分類的像素的某個距離處。偏移探針在圖5中在506和508處被示出。

可使用涉及偏移探針的大范圍的實現(xiàn):任何可行數(shù)目的探針可被采樣;采樣可以是隨機的或者通過某個非隨機的采樣方法來執(zhí)行;距正被研究的像素的任何距離可被使用;其中多個探針可被使用,偏移距離可從一個探針到另一探針等同或不同。然而,將領(lǐng)會,這些是作為非限制性示例來提供的,并且其他探針方法在本公開的范圍內(nèi)。

繼續(xù)圖3和4,在312,方法300包括計算并存儲與偏移探針相關(guān)聯(lián)的數(shù)據(jù)(例如,深度數(shù)據(jù))的地址。計算出的地址在414被存儲在槽400中。在314,探針數(shù)據(jù)在416處被取得并被存儲的槽400中。如貫穿全文討論的,所描述的系統(tǒng)和方法在將正被研究的像素的深度/反射率數(shù)據(jù)與針對鄰近點探針取得的類似數(shù)據(jù)進(jìn)行比較的上下文中可被有益地使用。但這是非限制性示例。可考慮與正被研究的像素和/或鄰近像素相關(guān)聯(lián)的任何類型的數(shù)據(jù)。更廣泛地,該描述涵蓋非常寬范圍的左右決策以及用于作出這樣的決策的準(zhǔn)則/運算對象/輸入。所描述的系統(tǒng)的許多方面不知道分支決策的細(xì)節(jié),而改為聚焦于:無序處理的實現(xiàn);存儲器爭用的緩解;長等待時間影響的緩解;對深管線的利用和對可用處理資源的高效使用;機器級并行性;等等。在任何情況下,在316處發(fā)生左右分支決策,其進(jìn)而導(dǎo)致流到目標(biāo)節(jié)點,目標(biāo)節(jié)點可以是另一決策節(jié)點、非最終葉節(jié)點或最終葉節(jié)點。如318處所示出的,使用{階段.樹.階段}表述方式或其他合適的索引/標(biāo)識符將節(jié)點指針更新為指向新目標(biāo)節(jié)點。在這時,針對該節(jié)點的處理回合完成。針對感興趣的像素的流程圖隨后再次針對下一節(jié)點開始。通常,每像素僅進(jìn)行步驟302、304和306一次,使得處理以對下一節(jié)點描述符的檢索來恢復(fù)(步驟308和310)。

如以下將更詳細(xì)描述的,針對像素的圖3的流不必穩(wěn)定地沿著有向圖結(jié)構(gòu)處理/走查通過有向圖結(jié)構(gòu),而沒有中斷??砂l(fā)生各種停滯、障礙和長等待時間事件。例如,地址計算在某些情況下可能是慢的/被延遲,請求的數(shù)據(jù)可花費幾個周期來返回,管線可嘗試從正被另一像素/槽訪問的存儲器位置中檢索節(jié)點。任何數(shù)目的事情可發(fā)生以中斷處理。因此,來自像素槽的操作可被調(diào)度邏輯反復(fù)“發(fā)射”到管線化處理邏輯,并且進(jìn)行中操作可被認(rèn)為“撤退”回到該槽。所謂的撤退構(gòu)成處理的中斷,但槽和調(diào)度邏輯協(xié)同行動以在問題被解決時高效地恢復(fù)處理。通常,槽將包括充當(dāng)占位符/跟蹤器的某個機制,該占位符/跟蹤器協(xié)調(diào)重新發(fā)射(包括重新發(fā)射的定時)—參見圖4中的跟蹤/調(diào)度信息。換言之,調(diào)度邏輯控制到管線化處理邏輯的操作分派,并且它與像素槽協(xié)同行動以執(zhí)行該功能—例如,在接收到請求的數(shù)據(jù)之際重新發(fā)射。將領(lǐng)會,長等待時間事件通常與存儲器請求相關(guān)聯(lián)。由此,除了經(jīng)由智能調(diào)度獲得的效率和性能益處外,長等待時間存儲器存取事件也可通過存儲器換頁并提供多個請求行來稍微緩解——參見圖2的240。

在節(jié)點是非最終葉節(jié)點的情況下,工作流行進(jìn)到步驟320和322。在320,該方法包括計算/存儲概率信息。如先前所指示的,一個示例實現(xiàn)涉及提供概率的每一非最終葉節(jié)點。例如,取非最終葉節(jié)點A、B和C,假設(shè)非最終葉節(jié)點A指示有95%概率正被研究的像素對應(yīng)于用戶的前臂;非最終葉節(jié)點B指示有98%的概率正被研究的像素對應(yīng)于用戶的前臂;并且非最終葉節(jié)點C指示有78%的概率正被研究的像素對應(yīng)于用戶的前臂。在這樣的情況下,在到達(dá)最終葉節(jié)點之際可對三個結(jié)果求平均,以便生成正被研究的像素有90.33%的可能是前臂的最終分類輸出。在322,節(jié)點指針被更新為指向新目標(biāo)節(jié)點,其在該場景中(從非最終葉節(jié)點向外流)通常會以該有向圖結(jié)構(gòu)中的下一決策樹的根決策節(jié)點為目標(biāo)。針對正被研究的像素的處理將隨后行進(jìn)到該下一根節(jié)點。如以上所指示的,通常每像素僅進(jìn)行步驟302、304和306一次,使得后繼處理以對下一根節(jié)點的檢索(步驟308和310)開始。

在節(jié)點是最終葉節(jié)點的情況下,處理流從310到324。在324,通用處理將生成最終分類輸出,例如像素具有特定特征或?qū)儆谔囟悇e/類的概率。在本文中描述的實現(xiàn)中,最終輸出是該像素對應(yīng)于用戶的身體部位(前臂、腕部、指尖等)的概率。該概率可作為分類信息234被存儲在數(shù)據(jù)保持子系統(tǒng)212中。在這時,該像素已被分類,這允許其像素槽被解除分配(步驟326),這進(jìn)而允許該槽被填充進(jìn)另一像素(例如,像素走查器可將新像素的XY坐標(biāo)饋送到該槽)。在解除分配之前,經(jīng)由遍歷葉節(jié)點產(chǎn)生的分類信息可作為分類信息420被存儲在槽400中。

如以上所指示的,使像素走查通過有向圖結(jié)構(gòu)可時不時地因停滯、障礙、長等待時間事件、存儲器爭用/沖突等被中斷。在這樣的情況下,處理流可“撤退”回到主基地像素槽,并且重新發(fā)射可比該問題已被解決(例如,請求的數(shù)據(jù)已返回)晚幾個周期發(fā)生。像素槽通常具有調(diào)度邏輯可訪問的某個占位符/跟蹤機制,該機制允許調(diào)度邏輯智能地控制該像素到管線化處理邏輯的適當(dāng)機制的重新發(fā)射。應(yīng)當(dāng)注意,多個處理管線可被采用,并且重新發(fā)射可被控制,從而使得坐標(biāo)被分派到特定管線。特定管線可以是其中發(fā)生了該停滯的管線,或者它可以是可提供與發(fā)生的停滯相同功能性的在進(jìn)行中的另一管線。就這一點而言,調(diào)度邏輯通常將具有以下某種機制,該機制允許該調(diào)度邏輯最大地利用可用執(zhí)行資源,使得這些資源被最優(yōu)地使用且不被允許在這些資源能被良好地使用時閑置。

像素槽、調(diào)度邏輯和管線化處理邏輯的協(xié)作式操作提供多種益處。首先,如別處所述,對較早像素的分類可在較晚像素的分類之前發(fā)生(即,輸出順序可不同于用于將各像素分派到槽中的輸入順序)。例如,在假設(shè)為像素P0、P1、P2、P3、P4的時間輸入順序的情況下,輸入順序可以為P3,P0,P2,P4,P1。任何次序是可能的,并且最終的輸出順序通常將根據(jù)在使各個像素走查通過有向圖結(jié)構(gòu)時發(fā)生的指定問題(停滯、長等待時間事件的持續(xù)時間和數(shù)目、存儲器沖突等)。理解該動態(tài)的另一種方式是這些像素獨立地向前前進(jìn)通過有向圖結(jié)構(gòu)。

圖6結(jié)合像素分類系統(tǒng)600提供保持在像素存儲分配602中的三個像素被走查通過有向圖結(jié)構(gòu)604的示例,該有向圖結(jié)構(gòu)604由管線化處理邏輯606來用硬件實現(xiàn)。像素存儲分配602包括像素槽610,在此處被標(biāo)識為槽1到12。雖然描繪了十二個槽,但可采用任何可行的數(shù)目。在該示例中,十二個槽允許十二個像素被同時在飛行中通過有向圖結(jié)構(gòu)604。調(diào)度邏輯608在功能上被插入在像素槽和管線化處理邏輯606之間。如在別處描述的,調(diào)度邏輯用于:(i)控制操作分派—也被稱為“發(fā)射”—到有向圖結(jié)構(gòu)及其實現(xiàn)的管線化處理邏輯中;(ii)智能地將像素和像素數(shù)據(jù)分派給可用處理資源;(iii)監(jiān)視重新發(fā)射操作的定時,例如僅在請求的數(shù)據(jù)在像素槽中變得可用時才重新發(fā)射;(iv)通過轉(zhuǎn)儲清除停滯的進(jìn)行中操作,控制回到槽的撤退并跟蹤停滯何時被解決以使得重新發(fā)射被適當(dāng)?shù)囟〞r來促成對停滯的清除。

在該示例中,每一像素槽都填充有其分類正待處理的像素;換言之,有十二個像素在飛行中并獨立向前前進(jìn)通過有向圖結(jié)構(gòu)604以最后以最終分類輸出告終。出于清楚和說明的目的,操作將僅針對這些像素中的以下三個像素來描述:P0、P1和P20/1/2指定指代它們被分配到其槽中的輸入順序:P0是最早的像素,P2是最晚的像素,并且P1在像素P0和P2之間的時間被分配。再次如先前所描述的,針對這些像素的最終輸出的定時可按任何次序發(fā)生。示出了僅針對一個決策樹620的處理。每一像素都流經(jīng)該樹,在去葉節(jié)點的途中可能具有偶爾的中斷。根決策節(jié)點被指定為“0”。該樹中的每一子節(jié)點是參考其父節(jié)點以及籍此到達(dá)該子節(jié)點的分支方向來指定的。左轉(zhuǎn)用“0”來指定,并且右轉(zhuǎn)用“1”來指定。換言之,來自根節(jié)點[0]的左目標(biāo)為[0.0],并且右目標(biāo)為[0.1]。[0.0]的左目標(biāo)為[0.0.0],其右目標(biāo)為[0.0.1],并以此類推。像素P0流經(jīng)[0]>[0.0]>[0.0.1]>[0.0.1.0]>[0.0.1.0.0](葉節(jié)點)。像素P1流經(jīng)[0]>[0.0]>[0.0.1]>[0.0.1.1](葉節(jié)點)。像素P2流經(jīng)[0]>[0.1]>[0.1.0](葉節(jié)點)。

如可明白的,所有三個像素在某種程度上共享公共路徑。首先,所有三個像素在根節(jié)點[0]處開始。像素P1隨后與其他兩個節(jié)點分叉到節(jié)點[0.1]。像素P2和P0共同流經(jīng)[0]、[0.0]和[0.0.1],這時,像素P2和P0分叉到不同的目標(biāo)子節(jié)點。

雖然像素P2和P0走查相同路徑的一部分,它們可甚至沿著該公共路徑越過彼此。例如,像素P0可首先在節(jié)點[0]處開始??呻S后很好地想像到當(dāng)P0正在[0.0]處處理時可能的停滯?;蛟SP0正在請求當(dāng)前在被另一槽/像素訪問的節(jié)點描述符?;蛟S在[0.0]處,存在與地址計算相關(guān)聯(lián)的一些等待時間?;蛟S在[0.0]處,在點探針被取得時,存在存儲器爭用。另一中斷數(shù)目是可能的。在這樣的中斷的情況下,P0將撤退到其槽,且像素P2隨后可能在P0被重新發(fā)射之前(例如,在請求的數(shù)據(jù)已被返回之后)流經(jīng)[0]>[0.0]>[0.0.1]。該獨立、無序的向前前進(jìn)提供極大的靈活性、對處理資源的高效使用、與存儲器爭用相關(guān)聯(lián)的性能損失的最小化等等。

使用十二個像素槽允許十二個像素同時在飛行中通過有向圖結(jié)構(gòu)606,并且管線化處理邏輯604和調(diào)度邏輯608被配置成使得每一像素可獨立地向前前進(jìn)通過該有向圖結(jié)構(gòu)—各像素可越過彼此;最終的寫出順序獨立于將像素分配到其像素槽中的輸入順序;最終,較晚像素相比于較早像素可被更快速地分類。

調(diào)度邏輯608控制從像素槽到管線化處理606的執(zhí)行機制的操作分派。如所指示的,對于任何給定槽,操作可“發(fā)射”到管線化處理邏輯,并可從該管線撤退。將理解,這些術(shù)語是概念上的,并且表示相對于該槽發(fā)生的活動——即,發(fā)射指示該管線中針對所分配的像素的操作的開始;撤退指示操作已停止,例如在停滯或其他長等待時間事件的情況下。

在一些實施例中,本文中描述的方法和過程可以與一個或多個計算設(shè)備的計算系統(tǒng)綁定。尤其地,這樣的方法和過程可被實現(xiàn)為計算機應(yīng)用程序或服務(wù)、應(yīng)用編程接口(API)、庫和/或其他計算機程序產(chǎn)品。

圖7示意性地示出了可執(zhí)行上述方法和過程中的一個或多個的計算系統(tǒng)700的非限制性實現(xiàn)。以簡化形式示出了計算系統(tǒng)700。計算系統(tǒng)700可采取以下形式:一個或多個個人計算機、服務(wù)器計算機、平板計算機、家庭娛樂計算機、網(wǎng)絡(luò)計算設(shè)備、游戲設(shè)備、移動計算設(shè)備、移動通信設(shè)備(例如,智能電話)和/或其他計算設(shè)備。例如,計算系統(tǒng)700可以是微軟的Kinect。

計算系統(tǒng)700包括數(shù)據(jù)保持子系統(tǒng)62和管線處理邏輯714。計算系統(tǒng)700可任選地包括顯示子系統(tǒng)716、通信子系統(tǒng)718、輸入子系統(tǒng)704和/或在圖7中未示出的其他組件。

數(shù)據(jù)保持子系統(tǒng)702包括一個或多個物理設(shè)備,該一個或多個物理設(shè)備被配置成保持可由管線處理邏輯執(zhí)行以實現(xiàn)本文中所述的方法和過程的指令。在實現(xiàn)這樣的方法和過程時,可以變換數(shù)據(jù)保持子系統(tǒng)702的狀態(tài)(例如,以保持不同的數(shù)據(jù))。例如,數(shù)據(jù)保持子系統(tǒng)702可被配置成保持深度圖710和/或其他數(shù)據(jù)712,其中其他數(shù)據(jù)包括節(jié)點描述符230、像素數(shù)據(jù)232、分類信息234、可執(zhí)行指令236和任何其他合適的數(shù)據(jù)。此外,數(shù)據(jù)保持子系統(tǒng)702可包括被配置成保持?jǐn)?shù)據(jù)的像素槽,使得像素存儲分配及其像素槽可與數(shù)據(jù)保持子系統(tǒng)702中的數(shù)據(jù)同時駐留在各存儲設(shè)備/位置中。

數(shù)據(jù)保持子系統(tǒng)702可包括可移動和/或內(nèi)置設(shè)備。數(shù)據(jù)保持子系統(tǒng)702可以包括光學(xué)存儲器(例如,CD、DVD、HD-DVD、藍(lán)光碟等)、半導(dǎo)體存儲器(例如,RAM、EPROM、EEPROM等)和/或磁性存儲器(例如,硬盤驅(qū)動器、軟盤驅(qū)動器、磁帶驅(qū)動器、MRAM等)、等等。數(shù)據(jù)保持子系統(tǒng)702可包括易失性、非易失性、動態(tài)、靜態(tài)、讀/寫、只讀、隨機存取、順序存取、位置可尋址、文件可尋址和/或內(nèi)容可尋址設(shè)備。將理解,數(shù)據(jù)保持子系統(tǒng)702包括一個或多個物理設(shè)備。然而,本文描述的指令的各方面可另選地通過不由物理設(shè)備在有限時長內(nèi)持有的通信介質(zhì)(例如,電磁信號、光信號等)來傳播。

輸入子系統(tǒng)704可包括傳感器子系統(tǒng)706或與傳感器子系統(tǒng)706對接。傳感器子系統(tǒng)706可被配置成捕捉對象708作深度圖710形式的深度信息,其中深度圖被發(fā)送并存儲在數(shù)據(jù)保持子系統(tǒng)702中附加地或替換地,輸入子系統(tǒng)704可包括諸如鍵盤、鼠標(biāo)、觸摸屏或游戲控制器之類的一個或多個用戶輸入設(shè)備。

在一些實施例中,輸入子系統(tǒng)可包括所選的自然用戶輸入(NUI)部件或與其結(jié)合。

這種部件可以是集成的或外圍的,且輸入動作的轉(zhuǎn)導(dǎo)和/或處理可以在板上或板外被處理。

NUI部件的示例可包括用于語言和/或語音識別的話筒;用于機器視覺和/或姿勢識別的紅外、色彩、立體顯示和/或深度相機;用于運動檢測和/或意圖識別的頭部跟蹤器、眼睛跟蹤器、加速計和/或陀螺儀;以及用于評估腦部活動的電場感測部件。

管線處理邏輯714包括被配置成執(zhí)行指令的一個或多個物理設(shè)備。例如,管線處理邏輯可以被配置為執(zhí)行作為一個或多個應(yīng)用、服務(wù)、程序、例程、庫、對象、組件、數(shù)據(jù)結(jié)構(gòu)或其它邏輯構(gòu)造的一部分的指令。這種指令可被實現(xiàn)以執(zhí)行任務(wù)、實現(xiàn)數(shù)據(jù)類型、轉(zhuǎn)換一個或多個部件的狀態(tài)、實現(xiàn)技術(shù)效果、或以其它方式得到期望結(jié)果。

管線處理邏輯714可包括被配置成執(zhí)行軟件指令的一個或多個處理器。附加地或可替代地,管線處理邏輯可包括被配置為執(zhí)行硬件或固件指令的一個或多個硬件或固件邏輯機。管線處理邏輯的處理器可以是單核的或多核的,并且其上執(zhí)行的指令可以被配置用于串行、并行和/或分布式處理。管線處理邏輯的個體組件可任選地可分布在兩個或更多個分開的設(shè)備之中,所述設(shè)備可以位于遠(yuǎn)程以及/或者被配置用于協(xié)同處理。管線處理邏輯的各方面可由以云計算配置進(jìn)行配置的可遠(yuǎn)程訪問的聯(lián)網(wǎng)計算設(shè)備來虛擬化和執(zhí)行。

數(shù)據(jù)保持子系統(tǒng)702和管線處理邏輯704的各方面可被一起集成到一個或多個硬件邏輯組件中。這些硬件邏輯組件可包括例如現(xiàn)場可編程門陣列(FPGA)、程序和應(yīng)用專用的集成電路(PASIC/ASIC)、程序和應(yīng)用專用的標(biāo)準(zhǔn)產(chǎn)品(PSSP/ASSP)、片上系統(tǒng)(SOC)以及復(fù)雜可編程邏輯器件(CPLD)。

術(shù)語“模塊”、“程序”和“引擎”可用于描述被實現(xiàn)為執(zhí)行一個特定功能的計算系統(tǒng)700的一方面。在某些情況下,可以通過執(zhí)行由數(shù)據(jù)保持子系統(tǒng)702所保持的指令的管線處理邏輯714來實例化這樣的模塊、程序或引擎。將理解,可以從同一應(yīng)用、服務(wù)、代碼塊、對象、庫、例程、API、函數(shù)等實例化不同的模塊、程序和/或引擎。同樣,可以由不同的應(yīng)用程序、服務(wù)、代碼塊、對象、例程、API、函數(shù)等來實例化同一模塊、程序和/或引擎。術(shù)語“模塊”、“程序”和“引擎”可涵蓋單個或成組的可執(zhí)行文件、數(shù)據(jù)文件、庫、驅(qū)動程序、腳本、數(shù)據(jù)庫記錄等。

應(yīng)當(dāng)理解,如此處所使用的“服務(wù)”可以是跨越多個用戶會話可執(zhí)行的應(yīng)用程序。服務(wù)可對一個或更多系統(tǒng)組件、程序、和/或其他服務(wù)可用。在某些實現(xiàn)中,服務(wù)可以在一個或多個服務(wù)器計算設(shè)備上運行。

當(dāng)被包括時,顯示子系統(tǒng)716可用于呈現(xiàn)由數(shù)據(jù)保持子系統(tǒng)702所保持的數(shù)據(jù)的可視表示。該視覺表示可采用圖形用戶界面(GUI)的形式。由于此處所描述的方法和過程改變了由數(shù)據(jù)保持子系統(tǒng)保持的數(shù)據(jù),并由此轉(zhuǎn)變了數(shù)據(jù)保持子系統(tǒng)的狀態(tài),因此同樣可以轉(zhuǎn)變顯示子系統(tǒng)716的狀態(tài)以可視地表示底層數(shù)據(jù)中的改變。顯示子系統(tǒng)716可以包括使用實質(zhì)上任何類型的技術(shù)的一個或多個顯示設(shè)備??蓪⒋祟愶@示設(shè)備與數(shù)據(jù)保持子系統(tǒng)702和/或管線處理邏輯704一起組合在共享封裝中,或此類顯示設(shè)備可以是外圍顯示設(shè)備。

當(dāng)包括通信子系統(tǒng)718時,通信子系統(tǒng)718可被配置成將計算系統(tǒng)700與一個或多個其他計算設(shè)備通信地耦合。通信子系統(tǒng)718可以包括與一個或多個不同通信協(xié)議兼容的有線和/或無線通信設(shè)備。作為非限制性示例,通信子系統(tǒng)可被配置成用于經(jīng)由無線電話網(wǎng)絡(luò)或者有線或無線局域網(wǎng)或廣域網(wǎng)來進(jìn)行通信。在一些實施例中,通信子系統(tǒng)可允許計算系統(tǒng)700經(jīng)由諸如因特網(wǎng)這樣的網(wǎng)絡(luò)將消息發(fā)送至其他設(shè)備以及/或者從其它設(shè)備接收消息。

本文中的示例主要指代二元決策樹,其中節(jié)點操作導(dǎo)致“左或右”決策。然而,將領(lǐng)會,本系統(tǒng)和方法可結(jié)合其他類型的節(jié)點結(jié)果被采用。例如,分類器可基于嵌入在節(jié)點中的真/假偏移而跳到任意節(jié)點。例如,如果決策被評估為真,則(下一節(jié)點偏移=當(dāng)前節(jié)點偏移+節(jié)點真偏移)。

將會理解,此處描述的配置和/或方法本質(zhì)是示例性的,這些具體實施例或示例不應(yīng)被視為限制性的,因為許多變體是可能的。此處描述的具體例程或方法可以表示任何數(shù)量的處理策略中的一個或多個。如此,所示和/或所述的各種動作可以以所示和/或所述順序、以其它順序、并行地執(zhí)行,或者被省略。同樣,上述過程的次序可以改變。

本公開的主題包括各種過程、系統(tǒng)和配置以及此處公開的其它特征、功能、動作和/或?qū)傩浴⒁约八鼈兊娜我缓腿康葍r物的所有新穎且非顯而易見的組合和子組合。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1