使用膚色檢測的視頻流的姿勢預處理的制作方法
【專利摘要】公開了用于通過使用階梯式和分布式管道處理來處理視頻流以便降低平臺功率的技術,其中,選擇性地執行CPU密集型處理。所述技術特別適用于基于手部的導航姿勢處理。例如,在一種示例情況中,所述技術實現在計算機系統中,其中,初始閾值檢測(圖像擾動)以及可選的用戶存在(手部圖像)處理部件接近于所述系統的相機或者位于所述相機內,并且所述相機位于所述系統的主顯示器內或者接近于所述主顯示器。在一些情況中,消除了位于標記區域外部的像素信息的圖像處理以及在各種處理級之間的通信。在一些實施例中,所述標記區域與鼠標墊、桌面區域或用戶輸入設備(例如,鍵盤)對齊。由所述系統評估的像素可以被局限于標記區域的子集。可以使用簡化的膚色檢測處理。
【專利說明】使用膚色檢測的視頻流的姿勢預處理
【背景技術】
[0001]對于終端用戶,大多數計算機的使用是將該終端用戶連接到互聯網,并且經過瀏覽界面發生。一般的使用和活動例如包括基于搜索引擎的瀏覽、電子郵件、社交網絡、內容消費(例如,新聞文章和視頻觀看)、內容共享(例如照片、音樂等等)、網絡購物和采購以及地圖和向導,僅列舉一些。這樣的一般的互聯網使用通常要求一些形式的基于用戶的導航,例如典型地利用鼠標或觸摸板和鍵盤來進行。
[0002]為了改善用戶導航體驗,已經興起基于姿勢的導航技術。具體地說,用戶的手部移動能夠被所謂的網絡相機記錄并且被翻譯為指針移動。典型的結合網絡相機操作的基于姿勢的導航應用能夠模仿利用常規的鼠標或觸摸板經常進行的動作:點擊、雙擊、拖動和滾動。用戶也可以使用頭部移動來控制計算機或者以其它方式影響導航。存在用于使用相機實現人體姿勢的兩種基本方法:使用具有所謂的標記的對象的姿勢(其中,部署在視場中的標記與相機傳感器交互)和無標記姿勢(例如,無標記的手勢)。無標記姿勢技術可以使用通常用于大約3到5米(m)范圍中的觀察距離的三維或3D相機(具有Z-景深)或者通常用于大約0.5m范圍中的觀察距離的二維或2D相機(根據2D信息解釋3D運動)來實現。
[0003]諸如臺式計算機或工作站、膝上型計算機或平板電腦或者游戲控制臺的計算環境中的圖形處理通常要求一些復雜的操作。這樣的操作例如包括關于確保圖像被正確且及時地渲染的操作以及關于姿勢識別的操作。在這樣的操作的環境中會出現很多重大問題。
【專利附圖】
【附圖說明】
[0004]圖1a通過圖表說明了根據本文公開技術的實施例用于執行視頻流的姿勢預處理以便降低平臺功耗的階梯式、分布式處理。
[0005]圖1b說明了根據實施例的圖1a的階梯式、分布式處理的流程圖。
[0006]圖2a說明了根據本文公開技術的實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的系統的方框圖。
[0007]圖2b說明了根據實施例來自圖2a所示系統的不同級的控制和數據流。
[0008]圖2c示出了根據本文公開技術的實施例在給定特定的計算系統設置的情況下對于每一個過程的典型CPU利用率,并且因而說明了通過使用視頻流處理的階梯式、分布式姿勢預處理能夠具有的改進的潛力。
[0009]圖2d示出了根據本文公開技術的實施例用于膚色閾值檢測以便降低平臺功率的示例方法。
[0010]圖2e示出了根據本文公開技術的另一實施例用于膚色閾值檢測以便降低平臺功率的示例方法。
[0011]圖3a說明了根據本文公開技術的實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的計算系統的示例用例。
[0012]圖3b_3e分別說明了根據本文公開技術的實施例的相機和GP-電路的示例布置。
[0013]圖4說明了根據本文公開技術的實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的計算系統的方框圖。
[0014]圖5說明了根據本文公開技術的另一實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的計算系統的方框圖。
[0015]圖6說明了根據本文公開技術的又一實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的計算系統的方框圖。
[0016]圖7說明了根據本文公開技術的又一實施例能夠降低多少平臺功耗的示例。
[0017]圖8說明了根據本文公開技術的另一實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的應用程序接口(API)的方框圖。
[0018]圖9a_9b分別說明了根據本文公開技術的實施例能夠用于控制計算機系統的手勢視頻處理系統的視場內的示例標記區域。
[0019]圖9c說明了根據本文公開技術的實施例的目標存在的標記閾值化的方法。
[0020]圖1Oa-1Of說明了根據本文公開技術的實施例能夠用于控制計算機系統的示例手勢。
[0021]圖1la-1lf說明了根據本文公開技術的實施例如何將手勢視頻處理系統的視場內的給定手勢分析為運動的六個軸上的移動。
[0022]圖12說明了根據本文公開技術的實施例用于分析手勢視頻的方法。
[0023]圖13說明了根據本文公開技術的實施例配置的介質系統。
[0024]圖14說明了根據文本公開技術的實施例配置的移動計算系統。
【具體實施方式】
[0025]公開了用于通過使用階梯式和分布式的管道處理來處理視頻流以便降低平臺功耗的技術,其中,選擇性地執行CUP密集型處理。根據一些實施例,所述技術特別適用于高效的視頻流的基于手部的導航姿勢處理。所述處理的階梯式和分布式本質允許在圖像處理之前將圖像數據從給定相機轉移到存儲器所需要的功率的降低。在一種示例情況中,例如,在用戶的計算機系統中實現該技術,其中初始閾值檢測(圖像擾動)以及可選地用戶存在(手部圖像)處理部件接近于系統的相機或者位于該相機內,并且該相機位于系統的主顯示器內或者接近于該主顯示器。在一些實施例中,為了進一步幫助降低功耗,位于標記區域外部的像素信息的圖像處理以及在各種處理級中的至少一些之間的通信被取消或者被以其它方式抑制。標記區域可以是給定視場的子集,并且在一些示例情況中與鼠標墊或指定的桌面區域或者諸如鍵盤的用戶輸入設備對齊,其中該標記區域由該鼠標墊、桌面區域或輸入設備的邊界限定。為了進一步節約處理功率,能夠使由該系統評估的一些像素局限于標記區域的子集。在再一示例情況中,標記區域是給定視場的用戶可配置的子集。可以使用簡化的膚色檢測處理。計算系統可以例如是具有顯示器和相機的任何移動或靜止計算系統,該顯示器和相機位于該系統的內部和/或外部。
[0026]鍵
[0027]如先前解釋的,在圖形處理的環境中出現很多重大問題,特別是關于姿勢識別。例如,執行用于姿勢識別的典型的2D和3D視頻圖像處理的工作量消耗相對大量的輸入/輸出(1)功率,并且透支了中央處理單元(CPU)的利用率和平臺散熱設計功率(有時被稱為TDP)預算。這樣的問題在相機“常開”并且提供用于處理的圖像時更加惡化,并且因此,即使當在視覺圖像內沒有發生相關事情時也在消耗功率。例如,即使對于簡單的姿勢或以其它方式計算簡單的任務,捕獲圖像信息并且將其推送到CPU用于處理也會輕松地消耗超過10個瓦特。大多數圖像處理工作量通常涉及更加計算復雜的任務并且在或者接近可用的最大視頻處理功率處操作,并且內在地受CPU利用率和能量預算限制。這樣,圖像處理應用會消耗所有可用的CUP周期,沒有為其它應用留下CPU處理能力或者以其它方式留下不充分的CPU處理能力。相機功率本身是在圖像處理之前將圖像數據從相機轉移到存儲器所需要的視頻捕獲功率(包括平臺控制器集線器、CPU和存儲器功率)的相對小的一部分。圖像處理算法被這些因素有效地自我限制,并且如果它是可用的,則將消耗更多的功率。例如,當使用較高的幀每秒(FPS )將發生較好的識別時,典型的算法將幀率自我限制到15FPS。因而,即使當不存在感興趣影像(例如,姿勢等)要被分析時,視頻圖像處理也會消耗最大平臺功率。
[0028]因而,根據本文公開技術的實施例,公開了用于處理視頻流以便降低平臺功率的技術。根據一些實施例,盡管可以關于處理任何類型的視頻內容來使用所述技術,但是它們尤其適用于高效的視頻流的基于手部的導航姿勢處理。本文也提供了示例手勢。所述技術可以按照階梯式和分布式的方式實現,以使得極大地降低在圖像處理之前將圖像數據從給定相機轉移到存儲器所需要的功率。在一種示例情況中,例如,在用戶的計算機系統中實現該技術,其中預處理部件接近于系統的相機或者位于該相機內,并且相機位于系統的主顯示器中或者接近于該主顯示器。所述計算機系統可以例如是膝上型計算機或上網本(其中,顯示器是蓋式顯示器),或者臺式計算機或工作站計算機或游戲控制臺(其中,顯示器是外部顯示器),或者平板電腦或智能電話(其中,顯示器是計算機系統的用戶界面和殼體的一體部分)。所述顯示器可以例如是IXD或CRT,或者觸摸屏顯示器,并且可以與該計算設備一體(例如,平板電腦、膝上型計算機、移動電話)或者在該計算設備外部(例如,臺式計算機、膝上型計算機或平板電腦)。盡管可以使用包括3D相機或所謂的立體相機對的任何合適的相機技術,但是所述相機可以例如是單獨的2D相機或網絡相機,并且可以與該計算設備和/或顯示器一體或者位于其外部。
[0029]根據一個示例實施例,預處理部件包括閾值檢測級、目標存在級、分割級、手部解析器級和姿勢識別級。所述閾值檢測級通常配置為確定視頻幀是否實際上為空。如果該幀不為空或者從上一幀以有意義的方式發生改變,則處理轉換到目標存在級,該級配置為發現目標像素顏色,特別是其顏色與膚色特性相匹配的像素。如果發現足夠的膚色像素來表明手指可能存在,則處理轉換到分割級,該級配置為使感興趣像素與不感興趣像素分離,并且因此能夠作為自適應膚色檢測級(膚色/非膚色邊緣檢測)進行操作。在一個示例配置中,這一級將顏色視頻幀變換為能夠被編碼為單色或灰度級圖像的斑塊的圖像。斑塊用于表示膚色像素區域。根據一些示例實施例,這一級還配置為校正相機噪聲和照明差異,并且使用腐蝕和膨脹變形方法來平滑這些斑塊。
[0030]手部解析器級配置為執行由分割級產生的斑塊數據的空間解釋,并且嘗試將斑塊數據映射到人體解剖幾何形狀。根據實施例,相關性選擇極大地依賴于關于執行導航姿勢的人體的相機視角的使用情況和假設。取決于場景,有時僅要求邊緣數據,有時要求填充有斑塊的數據,并且有時要求關節連接的手部模型。將意識到,取決于被成像的身體部分的復雜性,特定解剖的解析可能難于泛化,并且因而難于加入到固定功能的解決方案。然而,在這一使用情況中,可以例如通過分析手部斑塊的邊緣來在手部解析器級檢測到手指。例如,手部解析器級可以配置用于對邊緣的斜率進行比較以便識別峰值(指尖)的位置。根據一些示例實施例,可以根據手部斑塊來定位拇指和食指,并且這些能夠用作姿勢識別任務的目標。根據示例實施例,能夠由手部解析器級檢測的一個特定示例手勢是基于卵形的手勢,例如當用戶的手部觸摸的拇指和食指放到一起或者類似的姿勢但是在端部處打開以使得拇指和食指不接觸時。姿勢識別級配置為執行由手部解析器級生成的解剖/手部數據的時間解釋。例如,如果姿勢識別級用于檢測等同于鼠標的操作,則它可以尋找用戶的指尖和/或手部的位置改變。在一種這樣的示例情況中,基于卵形的手勢可以用于模擬鼠標移動以及點擊-和-釋放動作(單擊、雙擊等等)。可以在標記區域內分析這樣的姿勢。
[0031]注意到,并不是所有這些五個預處理級都必須接近計算系統的相機或者位于該相機內。它們也不必都位于計算系統的顯示器內或者接近該顯示器以便實現功率節約。例如,如果僅閾值檢測級和目標存在級是在接近顯示器的相機傳感器中實現的級,并且其余級在CPU中實現(例如,作為將被順次討論的姿勢API的一部分),則根據本公開能夠意識到,這樣的實施例將仍然能夠實現可觀的功率節約。而且,不同的使用模式可以指示不同的實現戰略。例如,可以希望具有兩種模式操作:用于互聯網導航的2D模式(涉及相對低復雜性姿勢的較偶爾使用),和用于更密集型應用的3D模式(例如,會涉及相對高復雜性姿勢的CAD操控、Photoshop)。在這樣的實施例中,2D模式可以完全在相機傳感器中執行(以增加的相機成本為代價),而3D模式可以在相機傳感器中執行前兩個或前三個級并且然后將原始圖像數據傳送到姿勢API用于由計算系統的CPU執行的姿勢處理步驟(或者將原始圖像數據傳送到專用軟件應用上)。在2D和3D模式二者中,均實現了功率節省,特別是當在相機的視場(FOV)中沒有發生感興趣的事物時。
[0032]在一些實施例中,將各種階梯式和分布式預處理部件到計算機系統的邏輯連接實現為姿勢應用編程接口(以下將其稱為姿勢API)。根據一些實施例,可以例如將該姿勢API表示為擴展的通用串行總線人體接口(USM HID)類型設備。通常,姿勢API有效地顯示來自各種預處理級(閾值檢測、目標存在、分割、手部解析器和姿勢識別)的信息,以使得計算系統的其它部分在需要時能夠利用這樣的信息。在一些實施例中,該API可以進一步被編程或者以其它方式配置為包括安全/隱私策略以便例如防止來自視頻流的不安全信息到計算系統的CUP或其它資源的訪問。
[0033]根據本公開將意識到,本文提供的視頻流姿勢預處理技術可以用于許多應用,包括改善基于手勢的互聯網導航以及基于手勢的計算機導航。可以應用該技術的一個具體應用是在大約0.5m的距離處使用2D相機的無標記手勢識別。然而,如果需要,該技術可以應用于包括基于3D的應用的很多其它應用。根據本公開,多種使用模型將是顯而易見的,例如,位于桌面或用戶膝上或公園長椅上的筆記本或上網本、在家庭或辦公室處具有一個或多個外部顯示器的臺式計算機或筆記本或上網本、在工作/臥室環境中的臺式計算機或筆記本或上網本、在咖啡廳桌子上的筆記本或上網本、在會議室桌子上的筆記本或上網本、在飛機托盤頂部上的筆記本或上網本以及網吧(例如,具有一個或多個外部顯示器的臺式計算機),僅列舉一些。
[0034]根據本公開將進一步意識到,計算系統內用于視頻處理任務的功耗理想上應該與從計算系統的相機傳感器獲得的原始圖像數據的抽象級別相當。換言之,原始圖像數據消耗最小的功率,遞增地,消耗更多的功率用于閾值化該圖像,進一步消耗更多的功率用于檢測存在,等等。為此,根據本發明實施例,預處理部件有效地體現階梯式或累進式操作序列,其中,在進程中的每一級處遞增地消耗更多的功率以便產生視頻流的圖像內相關信息或含義的更高級別。然而,注意到,一些實施例可能具有一些比后面的級使用更多功率的中間級,并且本公開并不意在局限于表現出功耗的任一特定進程的級。例如,在一些實施例中,分割級比其它四個級的組合更加計算密集。作為總計,預處理部件能夠共同而有效地分析原始(未壓縮)視頻流或者該視頻流的子集,以便確定視頻流的圖像內的意義或相關性。可以例如在硬件(例如,諸如Verilog或VHDL的寄存器傳送語言,或者其它門級邏輯或具有特定用途的半導體)或軟件/固件(例如,在微控制器上執行的微代碼)中實現所述預處理部件。
[0035]系統架構
[0036]圖1a通過圖表說明了根據本文公開技術的實施例用于執行視頻流的姿勢預處理以便降低平臺功耗的階梯式、分布式處理。可以看出,存在能夠在分布式執行基元和計算系統的CPU之間進行有效劃分的數據抽象的五個不同級別。這些級別包括原始數據、閾值化、存在、命令和識別。可以進一步看出,可以在相機中(或在相機附近),或者在圖形處理單元(GPU)硬件加速中,或者在CUP上執行的應用軟件中執行與這些數據抽象的級別中的每一個相關聯的處理。
[0037]原始數據可以例如是編碼視頻流或原始圖像流。原始數據通常指示沒有被壓縮的圖像數據,而編碼視頻流通常已經被壓縮。通常使用壓縮算法來適應經過低帶寬通信信道的大量數據,并且這典型地在相機傳感器硅內完成。數據壓縮典型地降低了圖像的保真度并且使圖像處理更加困難。在閾值化級別,可以進行閾值化來檢測圖像中的擾動,以便粗略地識別用戶活動的存在。例如,這樣的粗略識別將檢測到從沒有用戶存在的數據幀的流到有用戶存在的數據幀的流的轉變,如由用戶移動(視頻內容)和/或用戶語音(音頻內容)指示的。如在這一示例實施例中可以看到,可以在相機內或者以其它方式在相機附近處理原始數據和閾值化級別中的每一個。
[0038]一旦在閾值化級別進行了這樣的粗略識別,然后能夠在存在級識別內容中具體用戶特征的存在。例如,具體用戶特征可以包括用戶的面部和/或手部。正如進一步參照圖1a中闡釋的示例實施例可以看到的,取決于所涉及的圖像分析的復雜性(例如,面部分析可能比手部分析更復雜),在一些情況中,這一特定級別的處理可以在相機內或者以其它方式在相機附近執行,或者在其它情況中,由GUP作為加速處理來執行。
[0039]一旦做出了具體用戶特征存在于內容流中這樣的精細識別,就可以通常評估那些用戶特征用于在命令級別做姿勢。例如,通常評估面部和/或手部活動用于例如運動手部或者轉動頭部的類似命令的姿勢。正如進一步參照圖1a中闡釋的示例實施例可以看到的,這一特定的處理級別可以由GPU作為加速處理來執行。在一些情況中,GPU可以例如與CPU共置,或者可以經由總線架構可操作地耦接到CUP。在后者的情況中,GPU可以與CPU位于相同的母板上,或者可以位于該母板的外部(例如,在有效地耦接到母板的專用圖形處理卡上,或者在經由通信端口有效地耦接到計算系統的外部圖形處理設備上)。
[0040]一旦識別了類似命令的姿勢,接下來就能夠在識別級別評估該姿勢用于具體的命令。該命令可以例如是用于指導用戶正在執行的在線購物處理的用戶導航命令。例如,關于視頻內容,基于面部的姿勢可以經歷面部識別和/或基于手部的姿勢可以經歷識別符合美國手語(ASL)的手勢的分析,以便識別給定的命令。正如進一步參照圖1a中闡釋的示例實施例所看到的,這一特定的處理級別可以由在CUP上執行的應用軟件來執行。
[0041]圖1b說明了根據實施例圖1a所示的階梯式、分布式處理的流程圖。在這一示例實施例中可以看出,在給定計算機設置下,視頻相機用于生成用戶的手部活動的原始圖像數據。在其它實施例中,將被處理的視頻內容可以包括用戶的面部活動。根據本公開將意識到,無論是哪種內容類型,本文提供的用于預處理媒體內容的階梯式和分布式技術能夠按照相似的方式被等同地應用。
[0042]該流程開始于接收從可以包括一個或多個相機的傳感器流出的原始圖像數據流。如本文討論的,如果使用多于一個相機,則可以相應地處理每一個視頻流。在閾值化級別,分析視頻流以便檢測該視頻流中的擾動。在一個示例實施例中,如果當前視頻巾貞超過10%不同于先前視頻幀,則可以發出檢測信號。從一個實施例到另一實施例,閾值可以不同(例如,5%或更多,或者50%或更多等等),并且可以根據期望的給定因素進行設置,該給定因素例如是對于給定計算系統(用例)設置觀察到的特定環境以及對于該環境/系統中的改變的期望敏感度。如果未超過預設置的粗糙閾值,則該處理繼續接收并且監控原始圖像數據。然而,如果超過該粗糙閾值,則處理在存在級別繼續,檢測圖像中的用戶手部。如先前解釋的,在一些實施例中,閾值化和存在級別處的預處理可以在相機電路中執行,或者可以在配置為接近于相機布置并且在相對短的距離上(例如,小于0.lm,例如0.05m或更少,或者經由總線結構或其它合適的通信接口直接耦接到相機殼體)與相機可操作地耦接的專用電路中執行,以使得相對于如果將來自相機的所有圖像內容都提供到在CPU上執行的應用軟件將使用的1功率,降低了 1功率。可以理解,本公開并不意在局限于專用電路和給定相機傳感器之間的距離的任一特定范圍;而是能夠在任意數量的配置中實現本文提供的使用階梯式、分布式預處理方案的概念。如果圖像不包括可識別為用戶手部的任何事物,則該處理繼續接收并且監控原始圖像數據。
[0043]然而,如果圖像包括可識別為用戶的手部的內容,則該處理在命令級別處繼續或者以其它方式朝向命令級別繼續,將成像的手部映射到與已知手勢相關聯的關節連接的手部的模型。在一些這樣的示例實施例中,將成像的手部與多個這樣的模型進行比較,并且對于每一個模型確定相似性得分。該處理在命令級別處繼續確定圖像是否包括做出已知手勢的手部。在一些這樣的情況中,例如,能夠將產生最高相似度得分的模型確定為匹配。在其它情況中,能夠將遇到的具有超過預設的閾值的相似度得分的第一個模型識別為匹配(以使得不必測試所有模型)。如先前解釋的,在一些實施例中,該命令級別預處理可以作為GTO加速處理來執行。如果在命令級別確定圖像不包括做出已知手勢的手部,則該處理返回到存在級別,以便繼續關于圖像中是否存在用戶手部的視頻流的分析。根據本公開將意識至IJ,所述命令級別可以向存在級別通知它的發現(例如,沒有斑塊數據),以使得在存在級別處的處理按照受過訓練的方式繼續進行。
[0044]然而,如果在命令級別確定圖像包括做出已知手勢的手部,則該處理繼續將姿勢數據傳送到應用軟件用于在識別級別處進行處理。如先前解釋的,這一處理級別趨向于是CPU密集型的。進一步注意到,在這一示例情況中,姿勢數據經由USB HID API (姿勢API)上傳到堆棧。將參照圖8來順次討論這一 API。將進一步意識到,注意到,命令級別確定可以足以決定性地識別已知手勢,并且將不需要執行在基于CPU的識別級別處的后續處理,從而進一步節省了基于CPU的功耗。
[0045]因而,通過在相機內或者在相機附近至少一些程度地執行視頻流的姿勢預處理,能夠實質地降低功耗,這在移動計算設備(例如,膝上型計算機、筆記本、平板電腦、智能電話等等)中尤其有益。這是因為,通常,多數視頻處理涉及相對低復雜性的處理,這些處理可以在配置為并且定位為減少1活動和CPU工作量的分布式電路中執行,并且能夠將涉及高復雜性處理的剩余百分比處理作為原始數據發送到GPU用于加速處理和/或發送到GPU中的驅動器(應用軟件)用于處理。在這一意義上,本文提供的技術通過使用專用分布式執行基元或在相機和GPU中(或者接近)運行的硬件功能,減少了對于在通用CUP核心中執行的基于軟件的算法的需要。
[0046]圖2a說明了根據本文公開技術的實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的系統的方框圖。可以看出,該系統是配置為具有多個分布式部件(在這一示例情況中為5個)的姿勢處理管道。在這一示例實施例中,所述部件中的兩個,閾值檢測級和目標存在級被實現為在相機內或以其它方式接近相機的姿勢預處理(GP)電路。根據本公開將意識到,如果該GP電路實際上直接集成在相機電路內或者以其它方式足夠接近相機,將可以認為該GP電路與相機共置,只要該GP電路充分接近相機傳感器以便降低1功率和⑶P處理時間,或者以其它方式比接近CPU更接近相機。另一部件,分割級,被GPU加速。另兩個部件,手部解析器級和姿勢識別級,在計算系統的CUP中執行。在這一示例實施例中,這兩個級能夠用于基于卵形的手勢處理,這將參照圖9a到12順次進行討論。根據本公開,這一階梯式和分布式架構的變形將是顯而易見的,其中任何這樣的階梯式和分布式架構允許關于活動和空閑功率場景的優化。具體地,與相機和GPU共置的視頻處理部件實際上是更加固定的功能,從而比解決相同計算問題的傳統CPU要求更少的功率。
[0047]如本文使用的,‘GP-電路’是配置為執行圖2a所示的五個級中的一個或多個的集成電路,該集成電路或者在提供將被分析的視頻流的相機內實現,或者被實現為配置為通過如先前解釋的相對短的連接與該相機直接耦接的專用電路(例如,以便與將所有視頻從相機傳送到基于CPU的驅動器的傳統技術相比降低1功率和CPU周期)。共置的GP-電路和相機中的每一個可以集成在顯不器內或位于顯不器外部或者一些合適的組合。例如,在一些具體的示例實施例中,該GP-電路可以被實現在移動計算設備(例如,膝上型計算機、平板電腦等等)的轉軸連接的顯示器蓋體內并且接近于也嵌入在該蓋體內的相機電路。在其它這樣的示例基于蓋體的顯示器情況中,GP-電路可以被直接實現在嵌入式相機本身內。在其它示例情況中,該GP-電路可以被直接實現在外部相機內,所述外部相機配置為例如夾到計算系統(例如,臺式計算機、膝上型電腦等等)的基于蓋體的顯示器或外部顯示器或者以其它方式可操作地與該顯示器耦接。在再一些示例情況中,可以以離散包裝的形式實現該GP-電路,并且該GP-電路配置可操作地與這樣的外部相機耦接。在又一些示例實施例中,可以將GP-電路嵌入在外部顯示器的殼體中并且接近也嵌入在該顯示器內的相機電路。在其它這樣的示例外部顯示器情況中,可以將該GP-電路直接實現在嵌入式相機內。根據本公開將意識到,GP-電路和相機電路之間的集成或接近的程度越大,在相機和GP-電路圖像處理子系統之間的1功率中能夠實現的降低就越大。
[0048]閾值檢測級是管道中的第一級并且配置為粗略地確定視頻幀是否真正為空。如果當前視頻幀與先前幀足夠相似,則認為該幀為空。根據一個這樣的實施例,這可以例如通過使用實現對于每一幀的亮度信道進行加和和比較的簡單算法的低功率硅來實現。如果視頻使用RGB顏色空間,則綠色分量將在其位置中被替代,因為對于RGB像素,綠色分量包含YUV像素的亮度分量的大多數。如果當前幀和先前幀的差值高于給定閾值,則這將觸發移動到下一級。否則,不向下一級發送空幀,這有助于在用戶不執行手勢時管理功率。在一些實施例中,閾值檢測級僅檢查作為成像系統的整個FOV的子集的標記區域內的像素,并且關閉或者以其它方式忽略標記區域外部的像素。所述標記區域可以例如通過作為用于用戶提供手勢的邏輯地點的POV內的用戶的鍵盤或鼠標墊或一些其它可檢測區域的邊界來限定。在一些這樣的實施例中,用戶區域可以是用戶可配置的(例如,通過利用給定系統的FOV來標定給定區域并且校準/配置相機電路以便在具體的處理級期間通過關閉該區域外部的像素而僅對標定的部分成像)。在再進一步的實施例中,閾值檢測級僅分析位于作為標記區域的子集的閾值化事件區域內的像素。根據本公開將意識到,允許閾值檢測級僅分析相對小的檢測區域節約了處理功率,并且可以作為用戶存在的可靠預測器,特別是給定在期望的姿勢期間由用戶的手部直觀敲擊的基于鍵盤的標記區域或者其它這樣的區域。也將進一步意識到,使用貫穿用戶的基于鍵盤的標記區域的閾值化事件區域能夠用于進一步降低處理功率,并且用于進一步消除假陽性閾值事件(例如,當用戶可能敲擊基于鍵盤的標記區域的手掌支撐區域并且并不意在做手勢時,用戶將不太可能敲擊貫穿A-GH-L鍵的閾值化事件區域或者基于鍵盤的標記區域,除非意在是手勢時段)。
[0049]根據實施例,目標存在級配置為實現用于發現目標像素顏色的相對低復雜性方法。在一些情況中,這一級尋找其顏色與膚色特性匹配的像素。與膚色匹配可以例如在配置為將RGB (或YUV)數據流轉換為HSV像素的硅中執行。人類膚色在色調中占據相對有限的范圍,這允許快速的、低功率的固定功能的轉換和比較。注意到,目標存在級不要求對于先前幀的任何數據存儲或信息。如果在掃描線中發現足夠多的膚色像素來表明手指可能存在,則處理將轉換到下一級。否則,不將沒有目標存在或者具有不充足的膚色像素的幀發送到下一級,這有助于當用戶沒有執行做姿勢時管理功率。正如先前關于閾值檢測級解釋的,目標存在級可以配置為僅分析指定的標記區域(例如,基于鍵盤的標記區域)或者該標記區域的閾值化事件區域(例如A-GH-L鍵或基于鍵盤的標記區域)內的像素,并且前述討論也適用于此。在其它實施例中,可以使用簡化的膚色檢測處理,如將順次進行討論的。
[0050]根據實施例,分割級配置為從目標存在級接收目標存在幀并且使感興趣像素與不感興趣像素分離。在一種示例情況中,這一級實現將彩色視頻幀變換為可以被編碼為單色或灰度級圖像的斑塊圖像的自適應膚色檢測算法。例如,在灰度級圖像的情況下,可以使用非零像素來代表斑塊像素,并且黑色像素指示非斑塊像素。基本上,斑塊用于代表膚色像素的區域。自適應膚色檢測以幀數據為基礎來調整皮膚色調的下邊界和上邊界。除了使用腐蝕和膨脹變形方法來平滑對象,這也消除了由于相機噪聲和照明產生的分散像素。眾所周知,形態學是以形狀為基礎來處理數字圖像的數學方法。膨脹變形通常指代擴充或者填充目標的操作。腐蝕變形涉及相似的方法,但是對圖像的背景而非對象進行操作。根據本公開將意識到,很多GPU具有能夠調節用于分割級的優化實現的指令。
[0051]根據實施例,手部解析器級配置為執行斑塊數據的空間解釋。在一個特定的示例情況中,該級嘗試將斑塊數據映射到人體解剖幾何形狀,例如,取決于要被評估的目標姿勢,人類手部的模型或人類身體的模型。根據本公開將意識到,手部解析器級嘗試使斑塊數據與人體部分/姿勢相關的方式極大地取決于相機的人體視角周圍的用例和假設。解釋斑塊的方式也可以不同。在一些示例情形中,僅使用邊緣就足以確定人體幾何形狀。在其它場景中,內部填充的斑塊是更合適的。在一些情況中,來自分割級的斑塊數據可能需要附加的處理以便去除斑塊上不利于對它們進行正確解析的視覺偽跡,并且手部解析器級可以配置為去除這樣的偽跡。在相機配置為觀看用戶的手部的情況中,可以通過分析手部斑塊的邊緣來檢測手指。對邊緣上不同采樣點上的斜率進行比較可以表明峰值(例如,指尖)的位置。對這些類似峰值的斑塊的進一步分析(按照各種像素之間的距離和斜率)可以揭示指尖附屬于指干。如果必要,這一級可以嘗試用關節連接整個人體手部,包括所有5個指尖的位置。在一些情況中,檢測單個手指可能是充分的。在這一含義上,使用模型確定要求的分析的量。如先前指示的,特定解剖學的解析(例如,手部解析)會難于泛化,并且因而難于應用到固定功能的硅中。因而,在一些實施例中,手部解析器級由CPU執行。根據一個示例實施例,能夠由手部解析器級檢測到的一個特定的示例手勢是基于卵形的姿勢,例如當用戶的手部觸摸的拇指和食指放到一起(例如,OK符號,但是其它三個手指在食指后面更加緊湊)或者類似的姿勢但是在端部處打開以使得拇指和食指不接觸。圖1Oa-1Of和圖1la-1lf示出了這樣的封閉和部分封閉的基于卵形的手勢的示例,并且將順次進行討論。
[0052]根據實施例,姿勢識別級配置為執行解剖/手部數據(從手部解析器級接收到的斑塊數據)的時間解釋。例如,如果該級用于分析鼠標或觸摸板操作,則它能夠尋找一個或多個指尖的位置的改變。在一個這樣的示例情況中,基于卵形的手勢能夠用于模擬鼠標移動以及點擊-和-釋放動作(單擊、雙擊等等),將參照圖1Oa-1Of和圖1la-1lf順次進行討論。可以在標記區域內分析這樣的姿勢,如圖9a或9b所示。在一些情況中,原始相機圖像中的運動模糊會使手部解析器級難于用關節連接人體解剖結構。在這樣的情況下,姿勢識別級能夠使用關于用例的假設來改善姿勢解釋的可靠性。例如,如果手部解析器級在一個幀中成功地檢測到整個手指但是可能在下一幀中僅確定了指尖(例如,不能夠確認指尖附接到“正確的”手指),則該姿勢識別級可以假設在該下一幀中是相同的手指。
[0053]通常,分割、手部解析器和姿勢識別級可以配置為或者向閾值檢測級或者向目標存在級發送反饋。例如,并且也能夠在圖2a的示例實施例中看到,如果手部解析器級實際上發現了可能是手部的足夠大的斑塊,則它可以向閾值檢測級發送信號以便使先前幀的亮度/綠色計數器重置為零,從而強制下一幀指示它是非空幀。在一個具體的示例實施例中,這一類型的信號發送能夠經過GP-電路的閾值檢測級硅上的單個針腳/導線實現,例如可以從驅動器控制該單個針腳/導線。根據另一實施例,可選地,也能夠經過USB來完成。這有助于防止其中非移動的手部造成閾值檢測級認為該手部是靜態背景的一部分的場景。當檢測到足夠大的斑塊時(如圖2a中闡釋的,并且標記為目標存在-數據流),另一示例反饋回路場景將強制系統直接從相機向分割級發送數據,而不將其發送到閾值檢測級和目標存在級。這一類型的行為可以通過去除不必要的閾值相關處理來改善功率。然而,注意到,盡管這樣的反饋機制可以提供進一步的優化程度,但是它們在所有實施例中不是必要的。如果這些技術的實現例如是代價過高的,則可選解決方案是每I秒或2秒回到目標存在級以便檢查該目標是否持續存在。在這樣的情況中,對此的懲罰是值得姿勢命令數據的一幀的損失。
[0054]圖2b描述了根據實施例來自圖2a的系統的不同級的控制和數據。對于根據一個示例實施例提出的劃分,GP-電路能夠配置有閾值檢測和目標存在級,并且可以進一步配置為控制數據復用并且決定是否向上游發送數據(用于分割)以便喚醒系統。根據一些這樣的實施例,利用這樣的按需發送數據的解決方案,可以實現平臺功率的顯著節約,并且計算系統僅在需要喚醒時才喚醒。
[0055]可以看出,向配置為對于感興趣區域檢測給定幀與先前幀相比較的改變的閾值狀態提供來自開始幀的原始數據。如果未滿足改變閾值,則可以降低FPS,并且處理繼續監控幀的原始數據。根據一些實施例,如果滿足該閾值,則將原始數據傳送到配置為在感興趣的色調范圍內尋找目標存在的目標存在狀態。可以例如使用通過各種樣本收集的經驗數據來確定色調范圍。在其它實施例中,可以將色調范圍確定為測量給定用戶的膚色的初始設置或校準處理的一部分。根據本公開,很多其它示例膚色檢測處理將是顯而易見的(例如,圖2d和圖2e)。在任何這樣的情況中,如果未發現合適的目標,則將控制提供回到閾值狀態。在一些實施例中,能夠將閾值狀態和目標存在狀態有效地組合為一個狀態。否則,如果在給定的幀率(例如,默認幀率或者如在這一控制環路內改良的)處發現合適的目標,則將控制傳遞到執行先前解釋的自適應膚色檢測的分割處理狀態。也注意到,如先前解釋的,在一些實施例中,在例如當檢測到足夠大的斑塊時(如圖2b中闡釋的,并且標記為處理狀態期間的數據/控制流)的某些情形中,系統可以直接將來自相機的原始數據發送到分割處理狀態,而不將其發送到閾值和目標存在狀態。
[0056]在任何這樣的情況中,分割處理狀態配置為執行自適應膚色檢測以便分割圖像。在一些實施例中,可以使用變形方法來去除噪聲并且平滑圖像。將該自適應皮膚圖像信息提供到配置為將斑塊數據映射到在這一示例情況中例如是人手模型的人體解剖幾何結構的手部解析器狀態。如果該手部解析器狀態不能夠確認給定斑塊與手部相關,則將控制傳遞回到目標存在狀態(未檢測到斑塊)。然而,如果手部解析器狀態確認給定斑塊與手部相關,則將控制傳遞到姿勢識別狀態(發現斑塊)。然后,姿勢識別狀態針對具體的命令來分析該手部數據,例如由用戶提供的導航命令。在結束這一分析時,針對那一幀的處理流完成,并且然后可以相應地控制在計算系統上執行的給定應用。
[0057]圖2c示出了給定包括2-2.66GHz的CPU和提供視頻數據的640X480像素幀的USB相機的特定設置下,能夠在GP-電路中實現的所述五個處理的每一個的典型CPU利用率。可以看出,分割占用了最大的利用率并且具有最少的迭代改變,因此是能夠被加速的良好候選。根據本文公開技術的實施例,GPU加速的自適應膚色檢測算法將幫助整體上改善系統的性能和功率效率。由于能夠在CPU/GPU之間共享工作量,這也將確保在沒有任何幀掉落的情況下來處理數據幀。當發現具有較長的邊界長度的較大斑塊時,可以看到典型的最差情況的手部解析器使用率。根據一些示例實施例,在如本文描述的對處理進行劃分(例如,其中,將閾值檢測和目標存在分布在USB相機中或者使其以其它方式接近于USB相機,并且分割是GPU加速的)之后,整體的CPU使用率將小于10%。
[0058]簡化的膚色閾值檢測
[0059]根據本公開將意識到,可以使用多個改良來進一步降低功耗。例如,一個示例實施例允許簡化的膚色閾值檢測以便在目標存在級的預處理期間降低平臺功率。通常,膚色檢測一般在諸如HSV、YUV或YCbCr的非RGB顏色空間中執行,并且因而要求在這些顏色空間之間的顏色空間轉換。根據實施例,人體膚色檢測在色調上占據有限的范圍,這允許快速的、低功率的、固定功能的轉換和比較。通常,如果在掃描線中發現足夠多的膚色像素來表明手指或手部可能存在,則處理可以轉換到下一級,分割。然而,注意到,初始閾值化級的膚色檢測(在閾值檢測級檢測到擾動之后)根本不要求顏色空間轉換或任何像素數據增強。而是,并且根據實施例,相機傳感器的原始RGB數據可以經過ADD函數,從而獨立地對標記區域內期望的區域/像素掃描線/等等的像素流的R、G和B值進行加和,并且該系統可以進一步配置為隨著時間檢測加和的顏色值(集成的)的凈差異。例如,當在這些加和的值中發生某種百分比改變時,指示膚色與背景-鍵盤顏色比率的改變,則發生了閾值事件,并且處理能夠轉換到下一級(分割級)。與先前討論的使用色調的膚色檢測技術類似,使用RGB膚色檢測的這一技術不要求來自先前視頻圖像幀的數據存儲或者信息,因為在處理之后可以丟棄視頻流數據。可以使用單個寄存器來存儲閾值(例如,必須超出以便觸發閾值化事件的掃描線上的膚色百分比或比率)。因而,通過對膚色顏色值與背景顏色值(例如,鍵盤顏色)進行比較,能夠實現對于這一閾值評估的簡化和功率降低。在它涉及膚色與非膚色的比較而不是非膚色與顏色上的某一任意差異的比較這一意義上,這是簡單的。
[0060]圖2d示出了根據實施例用于膚色閾值檢測以便降低平臺功率的示例方法。根據本公開將意識到,由于能夠在例如相機(或GP-電路)中的RTL或軟件內容易地實現該算法,以便不影響CPU處理周期,因此能夠實現功率降低。可以看出,在這一示例實施例中,目標存在的閾值化使用在單個像素-掃描線(例如,貫穿鍵盤的A-GH-L鍵)內的膚色檢測來執行,而目標的評估能夠在整個標記區域(例如,鍵盤)上執行。該方法包括對閾值-事件區域(例如,掃描線或局部掃描線或沿著A-GH-L鍵或者以其它方式位于其上的像素)內的像素流的R、G和B值進行加和。
[0061]該方法繼續確定是否檢測到閾值化-事件區域內的膚色擾動(通過使加和的R-G-B值與給定閾值進行比較)。如果比較指示沒有檢測到膚色擾動,則該處理繼續尋找每一個隨后幀在閾值化-事件區域的有限像素區域內的一個膚色擾動。然而,如果已經檢測到在給定幀的閾值化-事件區域內的膚色擾動,則該方法繼續發送指示目標存在的中斷,并且執行姿勢預處理(在一些實施例中可以包括由分割級、手部解析器級和姿勢識別級執行的處理)和/或任何其它姿勢處理任務。對于每一個下一幀,該方法包括使用先前討論的基于色調的技術來確定在標記區域中是否具有膚色像素存在,并且如果為是,則繼續幀的處理。對在給定幀中沒有檢測到膚色做出響應,該方法繼續發送指示目標不再存在的中斷,并且停止任何進一步的姿勢預處理和/或姿勢處理任務。在這一點上,通過對閾值事件區域中的R-G-B像素值進行加和以便觀察在膚色與背景-鍵盤顏色的比率方面是否已發生了改變,該方法有效地重復并且繼續針對膚色擾動來監控隨后幀的閾值化-事件區域。
[0062]圖2e示出了根據另一實施例用于膚色閾值檢測以便降低平臺功率的示例方法。可以進一步改善利用參照圖2d討論的基于RGB的膚色檢測算法實現的功率節省。特別地,膚色的色調(和亮度)由綠色主導。這樣,可以使用來自掃描線(或其它合適的閾值化-事件區域)的綠色像素的測試來更加快速并且更加功率有效地提供相同的信息。不需要顏色空間轉換或者膚色映射/比較,并且僅對綠色像素進行操作。顏色空間信息因此降低了三分之二(例如,相機可以關閉紅色和藍色像素)。如先前注意到的,可以選擇鍵盤顏色以便突出膚色與鍵盤的顏色差異。因而,通過對來自單色(綠色)視頻流內的原始像素數據進行加和,能夠實現簡化的膚色閾值檢測,以便降低姿勢識別預處理期間的平臺功率。注意到,在一些情況中,可以將顏色空間信息降低75%,因為每一個像素典型地設計有Rxl、Gx2和Bxl傳感器,因此相機供應商能夠保留Gxl傳感器可操作并且關閉像素RxUGxUBxl中的其它顏色傳感器。因而,在一些實施例中,能夠將閾值檢測和膚色檢測(閾值檢測級和目標存在級)降低到作用于來自閾值化-事件區域(例如,單個/局部掃描線或單個像素)內的像素的有限集合的綠色像素的低帶寬視頻流的單個加和/檢測功能。這一可選實施例由圖2d表示,如虛線框所示。當檢測到膚色時,相機能夠對未使用的像素和像素-顏色-傳感器進行功率備份,以使得系統能夠轉換到下一級或處理(例如,分割級)。根據一些實施例,能夠例如將這樣的基本膚色檢測功能擴展到使用手勢提供低功率用戶喚醒事件。在一個這樣的實施例中,當處于掛起/待機或者其它低功率模式中時,能夠關閉整個計算機系統中的所有其它系統,而極度低功率的膚色閾值化算法可以配置為等待來自用戶的手勢的喚醒事件。給定用戶的從待機喚醒的時間預期,能夠以非常慢的幀每秒(FPS)圖像(例如,1-4FPS,與相機傳感器中可用的典型的30+FPS相比較)進行相機(或GP-電路)的閾值化決定,這將更進一步地降低功率。
[0063]如先前參照圖2d的示例方法解釋的,圖2e的方法也可以被實現為例如在相機(或GP-電路)中的RTL或者軟件內實現的算法。可以看出,在這一示例實施例中,使用單像素掃描線(例如,貫穿鍵盤的A-GH-L鍵)內的膚色檢測來執行目標存在的閾值化,而能夠在整個標記區域(例如,鍵盤)上執行目標的評估。該方法包括僅對閾值-事件區域(例如,掃描線或局部掃描線或沿A-GH-L鍵或者以其它方式位于其上的像素)內的像素流的綠色像素值進行加和。該方法繼續確定是否檢測到閾值化-事件區域內的膚色擾動(通過使加和的綠色像素值與給定閾值進行比較)。如果該比較指示沒有檢測到膚色擾動,則該處理繼續對于每一個隨后的幀在閾值化-事件區域的有限像素區域內尋找一個膚色擾動。然而,如果已經檢測到在給定幀的閾值化-事件區域內的膚色擾動,則該方法繼續發送指示目標存在的中斷,并且執行姿勢預處理(在一些實施例中可以包括通過分割、手部解析器和姿勢識別級的處理)和/或任何其它姿勢處理任務。對于每一個下一幀,該方法包括使用先前討論的基于色調的技術來確定是否具有存在于標記區域中的膚色像素,并且如果為是,則繼續幀的處理。對在給定幀中沒有檢測到膚色做出響應,該方法繼續發送指示目標不再存在的中斷,并且停止任何進一步的姿勢預處理和/或姿勢處理任務。在這一點上,通過僅對閾值事件區域中的綠色像素值(排除掉紅色和藍色像素)進行加和以便觀察在膚色對背景-鍵盤顏色的比率方面是否已發生了改變,該方法有效地重復并且繼續針對膚色擾動監控隨后幀的閾值化-事件區域。
[0064]示例用例和系統配置
[0065]圖3a說明了根據實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的計算系統的示例用例。可以看出,用戶正在以普通或者以其它方式典型的方式坐在計算系統的前面。這一示例的計算系統表現為具有外部顯示器的臺式計算機布置,但將意識到,其可以是任意合適的計算系統,例如使用基于蓋體的顯示器的膝上型計算機或上網本或其它這樣的移動計算設備,或者使用外部顯示器的移動計算設備,或者諸如平板電腦或智能電話的觸摸屏設備。
[0066]在任一這樣的情況中,這一不例實施例的系統進一步配置有相機和GP-電路。所述相機可以例如用于捕獲諸如手勢的用戶姿勢。在圖3a闡釋的這一示例情況中,相機和GP-電路嵌入在顯示器的頂部中以便提供包括一區域的FOV,在該區域中,用戶手部將例如使用計算機系統鍵盤、鼠標、觸摸屏或其它這樣的輸入設備而活動。然而注意到,給定本文描述的系統的姿勢解釋能力,用戶不需要實際上占用這樣的輸入設備。而是如本文討論的,用戶能夠在位于FOV中的指定的用戶輸入區域內簡單地移動他或她的手部,以便使用基于手部的姿勢與計算機系統進行有效的通信。圖3b-3e說明了相機和GP-電路的各種示例布置。
[0067]圖3b說明了其中通過將GP-電路集成或以其它方式歸入到相機的成像集成電路(硅或其它)內以便通過消除相機傳感器和至少一些圖像處理功能之間的1功率來進一步降低平臺功率的示例情況。在這一示例情況(以及圖3C-3e所示的示例情況)中,GP-電路至少包括本文提供的姿勢預處理電路的閾值檢測和目標存在電路,以及如果期望則可能包括其它。圖3c說明了另一示例情況,在該示例情況中,相機和GP-電路彼此分離地實現,但是無論如何彼此接近,并且通過相對短的通信總線可操作地耦接,在這一示例實施例中,該通信總線是USB總線。將意識到,可以使用任意數量的其它合適的通信接口和總線結構。圖3d說明了另一示例情況,在該情況中,GP-電路集成到或以其它方式歸入到相機的成像集成電路內,并且相機嵌入在顯示器內。圖3e說明了另一示例情況,在該情況中,相機嵌入在顯示器內,并且GP-電路配置為單機設備,該單機設備配置為與設備的USB端口可操作地耦接以便提供到嵌入在其中的相機的訪問。在圖3a_e中所示的任意這樣的示例情況中,所述顯示器可以例如是外部顯示器、觸摸屏顯示器或者基于蓋體的顯示器。
[0068]圖4說明了根據實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的膝上型計算系統的方框圖。可以看出,這一示例具有膝上型計算機典型具有的形狀因子,并且包括通過轉軸可操作地耦接到顯示器部分的基板部分。所述顯示器可以具有觸摸屏能力,但是也可以例如是LED顯示器。通常,除了根據本文公開技術的實施例實現并且將順次進行討論的與視頻內容的階梯式和分布式姿勢預處理相關的結構和功能,所示的多個結構和功能可以根據期望使用傳統或定制技術實現。
[0069]在這一示例情況中,GP-電路包括在經由相對應的移動產業處理器接口 -相機串行接口(MIP1-CSI)可操作地耦接到兩個集成相機的顯示器電路的傳感器數據處理方框中。一個相機聚焦于第一用戶輸入區域以便捕獲用戶手勢,另一相機聚焦于第二用戶輸入區域以便捕獲用戶手部和面部姿勢。將意識到,手部GP-電路配置有用于用戶手勢處理的閾值檢測和目標存在級,并且手部-面部GP-電路配置有用于用戶頭部和/或面部姿勢處理的閾值檢測和目標存在級。因而,在這一示例情況中,可以將GP-電路有效地分為兩個特定姿勢方框。在其它示例實施例中,如果期望,可以結合有效地允許單個相機捕獲兩個目標用戶輸入區域的機械透鏡組件來使用一個相機。在這樣的情況中,可以將GP-電路實現為能夠處理所涉及的各種姿勢類型的每一個的單個方框。
[0070]將意識到,可以按照類似的方式針對每一個手部和頭部-面部來實現GP-電路。如先前解釋的,與解剖目標無關,GP-電路的閾值檢測級可以利用門級邏輯或其它具有特定目的的半導體實現,所述門級邏輯或其它具有特定目的的半導體配置為例如對于每一幀的亮度信道進行加和和比較,并且如果當前幀和先前幀的差值大于給定閾值(例如,>3%改變,或者>5%改變,或者>10%改變),則能夠生成用戶檢測信號,從而觸發原始數據到目標存在級的傳遞。否則,未改變的幀或以其它方式為空的幀有效地抑制這樣的檢測信號,從而在無姿勢時間期間保存功率。按照類似的方式并且與解剖目標無關,目標存在級GP-電路可以利用門級邏輯或其它具有特定目的的半導體實現,所述門級邏輯或其它具有特定目的的半導體配置為例如將RGB(或YUV)數據流掃描線轉換為HSV像素,并且對其中表示的像素色調值和膚色色調的相對有限范圍進行比較。在其它實施例中,目標存在級GP-電路可以利用配置為對像素值進行加和的門級邏輯或其它具有特定目的的半導體實現,如先前參照圖2d-e描述的。如果在掃描線中發現表明可能存在手指或面部的膚色像素,則處理轉換到分割級。否則,不將不具有目標存在的幀或者具有不足夠數量的膚色像素的幀發送到下一級或者以其它方式來抑制這些幀,以便在無姿勢時間期間保存功率。在其它實施例中,給定其功能的并行特性(例如,針對給定掃描線內的每一個像素的并行色調分析),目標存在級可以在GPU中實現。然而,在這樣的情況中,將意識到,通常存在較高的1功率成本以便將所述圖像數據從相機發送到GPU。無論如何,使用GPU仍然避免了該圖像數據處理在驅動級別必需的相關聯的CPU周期。
[0071]在這一示例實施例中,分割級有時與CPU共置,有時是這樣,但是其它實施例可以使用與CPU通信的分離的GPU。根據一個示例實施例,分割級配置為將其接收到的彩色視頻的每一幀轉換到斑塊圖像,其中非零像素代表斑塊像素并且黑色像素指示非斑塊像素。在這樣的情況中,例如,斑塊可以用于代表膚色像素的區域。在這一意義下,分割級調整或者以其它方式更加清晰地限定給定幀內基于皮膚色調的斑塊的界限,從而有效地降低給定圖像到二值布置(斑塊和非斑塊)的復雜性。這樣的以掃描線為基礎的處理任務到并行處理的可處理性使分割級成為GPU實現的理想候選。
[0072]在其它實施例中,按照與目標存在級類似的方式,分割級可以在具有門級邏輯或其它具有特定目的的半導體的GP-電路中實現。然而,限定斑塊數據的邊緣通常會要求處理更大數量的掃描線,這會增加目標存在級的復雜性。然而,這一復雜性可以例如通過使用符合目標解剖特征的假設和合理的插值程度來抵消。例如,假設做出和平符號的手部是目標解剖特征,并且假設處理手部圖像的三條或者四條掃描線。第一掃描線可以例如表示跨越和平符號‘V部分的上部所提取的非膚色像素(三組)和膚色像素(兩組)的交替組。第二掃描線可以類似地表示跨越和平符號‘V部分的下部所提取的非膚色像素(三組)和膚色像素(兩組)的交替組,但是兩個膚色像素部分之間的非膚色像素部分的長度將更短。第三掃描線可以例如表示跨越手部的主體部分所提取的非膚色像素(兩組)和膚色像素(一組)的交替組,第四掃描線可以例如表示跨越手腕部分所提取的非膚色像素(兩組)和膚色像素(一組)的交替組,其中,手部主體部分的膚色像素組長于手腕區域的膚色像素組。因而,如果能夠利用使用基于邏輯的比較來確認這些三條或四條掃描線的這樣的特性,則可以對與介于其間的掃描線相關聯的手部數據進行插值或者以其它方式進行估計,并且可以相應地分配整體膚色斑塊的界限。將意識到,可以使用類似的處理來檢測如圖1Oa-1Oc和Ila-1lf(全封閉)和1d-1Of (部分封閉)的示例手勢中表示的全封閉卵形和部分封閉卵形。在一些這樣的實施例中,并且如將參照圖9a-9b討論的,能夠將圖像處理約束到諸如用戶的鍵盤(圖9a)或鼠標墊(圖9b)的標記區域,在計算機/互聯網導航場景中可能在該區域上發生這樣的手勢,其中,由目標存在級處理的用于限定斑塊數據界限的一條或多條掃描線可以被設置在橫向穿過鍵盤中間的閾值化-事件區域處。
[0073]手部解析器與姿勢識別級能夠由基板上的CPU執行為應用驅動器的一部分,但是僅在由本文描述的較早級激活時。此外,根據一些實施例,這樣的處理能夠可選地在GPU中執行,或者甚至在GP-電路中執行。為此,預處理功能到GPU和/或GP-電路中的集成程度能夠例如以均衡(一方面)這樣的集成的支出/成本與(另一方面)在功耗和CPU周期上的節省的成本收益分析為基礎。根據本公開將意識到,通過在GP-電路中實現閾值檢測級和目標存在級、在GPU中實現分割級,能夠實現相對低成本的有效節約,并且允許手部解析器級和姿勢識別級在CPU上執行。到GP-電路的進一步集成的成本可能是不合理或不希望的,但是本公開并不意在如此限制。
[0074]進一步參照圖4,SRAM高速緩存可以用于存儲與視頻的有效處理相關聯的參數,并且可以利用其它類型的合適存儲器技術實現。例如,在一些實施例中,存儲器可以用于存儲典型地包括由用戶提供的手勢的幀內坐標。這些坐標可以例如以經驗分析為基礎隨著時間建立和/或細化,或者是用戶配置的。這些坐標也可以例如以相機的FOV內的標記區域的相對位置的改變為基礎而被周期性地細化或更新。在任一情況中,這樣的坐標可以由GP-電路(和其它部件,如果需要)使用以便有效地進一步降低圖像處理負載。在這一意義上,可以分析視頻流的子集。存儲器也可以包括與特定用戶設置相關聯的膚色的范圍。這一數據可以例如以經驗分析為基礎而隨著時間建立或者是用戶配置的。將意識到,能夠將各種其它類型的信息和數據存儲在存儲器中。
[0075]執行基元是能夠被提供以便支持GP-電路的功能的可選部件,并且可以在硬件和/或軟件中實現。適用于處理手勢視頻的示例執行基元可以例如是矩陣乘法或加和模塊。另一示例功能可以是將圖像從空間域變換到頻率域以便方便處理的傅立葉變換模塊。在更通常的意義下,將由基于CPU的驅動器處理使用的任何圖像處理工具都能夠在執行基元中實現以便輔助分布式預處理功能。可選的隱私&安全策略模塊可以配置為提供對抗惡意行為的保護,并且可以實現為實施一個或多個安全策略,例如與可信設備處理環境相關聯的那些。例如,隱私&安全策略模塊可以實施諸如基于用戶的策略(例如,一些用戶可能不想打開相機)和基于平臺的策略(例如,僅可信平臺模塊(TPM)設備能夠經由USB端口連接到平臺控制器集線器(PCH))的策略。
[0076]可以根據典型操作或需要來實現圖4所示的其它顯示器和基板組件。圖5說明了根據另一實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的上網本計算系統的方框圖。可以看出,該系統的顯示器部分與圖4所示的膝上型系統的顯示器類似,并且先前的相關討論也適用于此。基板部分也類似,但是在給定其是上網本配置的條件下配置稍有不同。因而,CPU可以例如是Intel? AtonTCPU或其它這樣的適用于上網本、上網電腦和其它這樣的低功率微計算系統的處理器。如先前解釋的,GPU可以如圖所示與CPU共置或者以其它方式可操作地與CPU耦接。
[0077]圖6說明了根據另一實施例配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的具有外部顯示器的計算系統的方框圖。所述計算系統可以例如是臺式計算機或膝上型電腦(拆除電池或者未拆除電池地運行)。可以看出,該系統的顯示器和基板部分與圖4和圖5所示的顯示器/基板部分類似,并且先前的相關討論也適用于此。可以使用許多其它計算系統架構和配置,并且本公開并不意在局限于任一特定的架構和配置。
[0078]圖7指示根據實施例通過將視頻預處理移出核心/非核心并且移入相機模塊而實現的功率節約。總△功率是在平臺的待機功率上消耗的功率。根據本公開將意識到,當圖像中不存在任何事物時,可以實質上降低用于視頻操作的co%的CUP占用。可以進一步看出,當將圖像處理從核心移動到非核心節省了大約1.4瓦特的功率(來自減少的CPU周期),當在相機傳感器本身內執行預處理(例如閾值檢測和目標存在狀態)從而消除I/o功率時可以實現另外的大約3.6瓦特的功率節約。
[0079]可以用于互聯網導航的示例手勢通常依賴于粗糙姿勢(例如,向上/向下滾動、下一 /前一頁、雙擊等等),單獨精細姿勢例如通常用于鼠標移動。僅當輸入特定文本信息時,才要求在鍵盤上鍵入。典型的文本類型包括URL、用戶名、密碼、搜索詞(包括街道名稱等)。在許多場景下,不要求或者很少要求鼠標移動。因而,姿勢的簡化進一步允許將姿勢識別實現為相機本身內的分布式處理。
[0080]姿勢API
[0081]圖8說明了根據本文公開技術的另一實施例表示配置用于執行視頻流的階梯式、分布式姿勢預處理以便降低平臺功耗的應用程序接口(API)的方框圖。在這一示例情況中,所述姿勢API是在這一特定系統上可用的一個或多個API (傳感器AP1、環境API)。經過傳感器API來處理原始傳感器數據,并且姿勢API預處理原始傳感器數據且顯示來自閾值檢測和目標存在級(存在&閾值數據)以及來自分割、手勢解析器和/或姿勢識別級(姿勢數據)的信息,而與是否在相機傳感器內/附近或者在運行于CPU/主存儲器上的軟件驅動器內執行計算無關。可以進一步看出,所述姿勢API可以包括諸如基于用戶的策略(例如,一些用戶可能不想打開相機)和基于平臺的策略(例如,僅可信平臺模塊(TPM)設備能夠經由USB端口連接到平臺控制器集線器(PCH))的隱私&安全策略。如先前解釋的,所述姿勢API預處理原始視頻數據并且表現為擴展的USB HID類型設備。在這樣的情況中,原始數據不受影響并且表現為標準U SB視頻類型設備。
[0082]所述姿勢API可以被編程為或以其它方式配置為將狀態消息通信到相機中的姿勢設備端點,例如包括用戶輸入區域(如圖3a所示的鍵盤/鼠標區域)的像素。用于外部顯示器的相機的過程與用于筆記本的集成顯示器的相機相同。在一個示例情況中,該過程包括:定位視頻流的FOV中的鍵盤;以感興趣像素(虛擬標記)的形式將鍵盤信息通信到相機/GP-電路;在相機傳感器/GP-電路中開始手勢預處理任務;根據需要更新鍵盤位置;并且經由姿勢API向平臺呈現姿勢處理信息。在多顯示器或多鍵盤系統中,用戶可以指示哪一個顯示器或者鍵盤是主要的。這里可以使用任意數量的適合的選項。
[0083]還如先前解釋的,由姿勢API解釋的手勢可以用于增強其它補充輸入模態,例如由鍵盤和/或鼠標接收到的用戶輸入。多種搜索引擎當前結合了用戶能夠作為快捷方式使用的各種鼠標/觸摸姿勢,以便改善他們的瀏覽體驗。用戶可以啟用/禁用特定的快捷方式,并且根據期望添加新的定制快捷方式。這樣的系統的一個缺點(除了缺乏標準化)是所有快捷方式全體地合計達到要使用的潛在過多的姿勢數量,導致在不可避免地禁止普遍采用時的精神混亂。根據一個實施例,提供了相對簡單和簡潔的基于姿勢的命令列表,這可以根據期望進行修改/擴展。可能期望一些可編程性,因為大多數勤勉的用戶可能希望擴展姿勢的列表,并且大多數用戶可能想增加例如用于他們收藏夾中列出的網站的個性化姿勢。大多數用戶通常一再地常去相同的網頁(如Google、Gmail、Facebook等等)。將這一系列的鍵盤/鼠標命令減少到單個姿勢(或短的姿勢系列)可以改善易用性并且加速用戶的頁面切換時間。
[0084]此外,可以對幾個手勢要求的“中性返回”給予考慮。“中性位置”是當不執行手勢時手部的統計平均位置。例如,當把手掌放在掌托上休息時,手指放置在下面的鍵上:Q-E-R-G-空格-空格-H-U-1-P。所述中性返回是手部到中性位置的返回(例如,在執行一個手勢之后并且在開始下一個手勢之前)。在大多數計算系統使用模型中,手部保持在中性位置中。期望最小化總的手勢,在手勢期間將手掌保持在相同的物理位置中。這簡化了圖像處理,因為圖像處理算法將忽略位于相機的FOV外部的所有視覺活動。
[0085]根據本公開將意識到,前面參照圖4-6討論了圖8所示的其它部件和特征,或者能夠以其它方式實現為被典型地完成。
[0086]2D中用于精細姿勢識別的標記區域
[0087]如先前解釋的,姿勢識別級可以配置為執行由手部解析器級生成的解剖/手部數據的時間解釋。例如,如果姿勢識別級用于檢測鼠標等同的操作,則它可以尋找用戶的指尖和/或手部的位置改變。在一些實施例中,可以使用用于在視頻流的FOV內創建虛擬標記以便在姿勢預處理期間降低平臺功率的技術來執行手勢識別。在一個這樣的實施例中,標記區域包括視頻流的圖像內的用戶的鍵盤或者與該鍵盤對齊。可以消除位于標記區域外部的像素信息的圖像處理和計算機系統內通信,以便降低處理負載。在進一步的實施例中,可以將所評估的像素數量減少到該標記區域的子集,該子集可以例如與像素掃描線、局部像素掃描線或單個像素一樣小。
[0088]為此,如先前解釋的,參照閾值檢測級和目標存在級,圖9a說明了根據一個實施例能夠用于控制計算機系統的手勢視頻處理系統的視場內的示例基于鍵盤的標記區域。可以看出,相機的視頻圖像內的標記區域由通常與用戶鍵盤的邊界相對應的實線指示,并且這一標記區域內的閾值化事件區域(水平穿過鍵盤的中心區域的虛線,通常與A-GH-L鍵相對應)。在這一閾值化事件區域中的一個或多個經過(例如,掃描線或局部掃描線或者甚至是像素)可以在通過閾值檢測和目標存在級進行評定時完成。可以忽略目標標記區域外部的像素,并且在一些實施例中,可以在這些初始級期間忽略閾值化事件區域外部的像素。將意識到,所述閾值化事件區域可以位于標記區域內的其它區域中,例如鍵盤的空格鍵附近,因為用戶的手部通常不可能從最上方的像素(例如,功能鍵)敲擊標記區域的平面。盡管示出了外部鍵盤單元,但是也可以使用具有集成鍵盤的實施例,該集成鍵盤例如與配置為停駐(dock拆除)物理外部鍵盤或者與該物理外部鍵盤一起使用的膝上型電腦或筆記本計算機或平板計算機相關聯。如先前解釋的,用戶手部相對于計算系統的鍵盤的位置是計算機使用活動的良好指示,并且來自這一區域的手勢是用戶的直覺處理。
[0089]一旦啟用(例如,在閾值檢測級確定視頻流的當前幀是否與該視頻流的先前幀充分不同并且目標存在級確定當前幀包括膚色像素之后),隨后的圖像處理級能夠容易地識別鍵盤的標記區域并且搜索這一區域內的手部。可以通過相機的觀察到的圖像內的標記區域內的手部的存在來確定閾值化事件,并且這一事件能夠例如由標記區域內(或者閾值化事件區域內)發生的充分大的視覺擾動來限定。忽略在標記區域外部的圖像中反映的活動(包括可能被誤解為做手勢的錯誤指示符)。例如,并且根據一些實施例,顯示器和鍵盤傾向于在長的時間段內處在相對于彼此固定的位置中(對于膝上型電腦或筆記本布置尤其如此,但是也可以應用于具有外部鍵盤的臺式計算機設置),因此相機傳感器的視覺圖像中鍵盤標記的相對位置也將趨向于相對固定。因而,根據一些實施例,圖像處理能夠將感興趣的特定像素(例如,與標記區域或標記區域子集相對應的那些像素、例如與閾值化事件區域相對應的那些像素)下載到相機傳感器內的圖像處理子系統中(或者本文以其它方式多樣化描述的GP-電路中),并且相機傳感器可以關閉這一目標標記區域外部的其它像素以便節約功率。類似地,當向CPU通信用于姿勢識別任務(手部解析器級和姿勢識別級)的像素時,這一標記區域外部的像素信息不相關并且不要求傳輸到CPU,這進一步節約了功率。注意到,不必在鍵盤上使用物理“標記”,因為鍵盤通常利用跨供應商、文化、年齡組的非常一致的工業設計制造,并且能夠容易地與人手區分開。例如,鍵盤通常是單色的,這簡化了膚色檢測的任務,因為他們是(或者以其它方式能夠是)被制造為與膚色高度區分開。
[0090]在使用基于鍵盤的標記區域的一些實施例中,所標記的鍵盤區域將要求傳遞到GP-電路(例如,相機傳感器)的周期性更新,因為顯示器-鍵盤的相對位置會改變(以用戶活動、膝上型電腦蓋體角度的移動、外部鍵盤的移動等等為基礎),結果修改了相機的FOV圖像中的期望像素區域,從而修改了圖像內的鍵盤標記位置。視頻圖形陣列(VGA)技術為用于姿勢識別的大多數形式的圖像處理提供充足的像素分辨率。根據本公開將意識到,盡管平臺上高清晰度的相機正變得更加標準,但是額外的圖像分辨率對于監控手勢不是必要的。而是,根據本文公開技術的一個實施例,通過使感興趣的目標標記區域窗口化,姿勢圖像處理系統能夠配置為向最小數量的像素提供能量以便精確地捕獲手勢,同時能夠使對于較高清晰度圖像分辨率所要求的任何額外像素斷電以便節約1系統的功耗和計算任務。
[0091]因而,通過做出關于用戶的手部將如何與標記區域進行交互的判斷能夠顯著地降低功耗。為此,根據一個實施例的目標在于在預處理的每一級將被評估像素的數量降到最小,以便保存電池壽命。也可以做出關于哪些像素適合評估的其它判斷,例如,當評估例如包括像素的單空格鍵-對齊的掃描線的閾值化事件區域時。例如,在一些這樣的情況中,由于用戶將兩只手放置在空格鍵兩側的物理人體測量學,用戶的手部不可能敲擊空格鍵本身上方的平面。在更通常的意義下,做出關于用戶與標記區域和閾值化事件區域進行交互的判斷可以將被評估像素的數量降低到標記區域的子集,可以與像素掃描線、局部像素掃描線或單個像素一樣小。當發生閾值化事件時,閾值檢測級可以將事件報告給系統和/或將控制傳遞到圖像處理級的下一級(目標存在級的膚色檢測)。按照類似的方式,當發生膚色檢測時,目標存在級可以將事件報告給系統和/或可以將控制傳遞到圖像處理級的下一級(分割級的自適應膚色檢測)。
[0092]注意到,根據一些實施例,在操作期間系統可以使用多個標記限定。例如,用于閾值化和/或目標存在檢測的標記區域可以小于用于斑塊識別或者用于手勢識別的標記區域。在一些示例情況中,標記區域可以包括鍵盤和鍵盤的掌托。然而,為了初始化手勢(即,為了將發生的閾值化事件),手部必須敲擊在A-GH-L鍵的軸上方對齊的水平面,如圖9a所
/Jn ο
[0093]在另一示例實施例中,標記區域可以是鼠標墊或者指定的桌面區域,如圖9b所示。其它這樣的標記區域根據本公開將是顯而易見的,例如其它輸入設備(例如,軌跡板、觸摸屏)或指定區域。在其它實施例中,標記區域可以被內部指定,其中系統配置為自動排除FOV的邊界區域。在一些這樣的實施例中,排除的FOV邊界的厚度是用戶可配置的。按照這種方式,用戶能夠有效地將他/她的系統校準到期望的用戶設置。根據本公開將進一步意識到,根據實施例,使用單個2D相機和膚色檢測算法,這樣的標記的和閾值化事件區域的使用可以用于輔助執行用于計算機或者互聯網導航的低成本、低功率、精細姿勢識別的技術。在一些實施例中,可以將該技術擴展為能夠進行3D對象操控。
[0094]用于目標存在的標記閾值化的方法
[0095]圖9c說明了根據本文公開技術的實施例的目標存在的標記閾值化的方法。這一方法可以在硬件或軟件或它們的組合中實現,并且在一個示例實施例中通過可以按照如本文描述的階梯式和分布式方式執行的五個預處理級執行。標記區域可以例如是用戶的鍵盤和能夠貫穿所述鍵盤的一部分的閾值化事件區域。在一個具體的示例實施例中,目標存在的閾值化使用貫穿A-GH-L鍵(閾值化事件區域)的像素掃描線執行,而隨后的目標評估在整個標記區域上執行。然而,根據這一公開,多個變形和實施例將是顯而易見的,并且本文提供的標記分析技術可以按照任何合適的方式實現。
[0096]所述方法包括確定是否已經檢測到閾值化事件區域內的擾動。如果為否,則過程繼續在每一個隨后幀的閾值化事件區域內的有限像素區域內尋找一個擾動。然而,如果在給定幀中已經檢測到在閾值化事件區域內的擾動,則該方法繼續發送指示目標存在的中斷,以使得能夠將處理傳遞到下一級,在這一示例中,該級涉及膚色檢測。具體地,取決于處理的級,該方法繼續確定在標記區域或閾值化事件區域中是否已經檢測到膚色。例如,在一個示例情況中,如果處理剛剛從閾值檢測級傳遞到目標存在級,則僅位于閾值化事件區域內的像素被進行膚色分析,并且如果在目標存在級發送用戶存在的信號之后處理隨后的幀,則能夠掃描整個標記區域用于膚色像素。
[0097]在任一這樣的情況中,如果確定在目標標記區域中不存在膚色像素,則該方法繼續發送指示目標不存在的中斷,并且停止任何進一步的姿勢預處理和/或姿勢處理任務。此時,該方法有效地重置并且繼續監控隨后幀的閾值化事件區域的擾動,如先前描述的。然而,如果確定在標記區域的子集中存在膚色像素,則該方法繼續執行可以包括在一些實施例中由分割、手部解析器和姿勢識別級進行的處理的姿勢預處理,和/或任何其它姿勢處理任務。
[0098]對于每一個隨后幀,將整個標記區域評估用于膚色像素并且姿勢預處理/處理對于每一幀繼續,直到確定在標記區域中不存在膚色像素為止。此時,該方法繼續發送指示目標不存在的中斷并且停止任何進一步的姿勢預處理和/或姿勢處理任務,并且然后繼續監控隨后幀的閾值化事件區域的擾動,如先前解釋的。根據需要,該處理可以重復。
[0099]精細的基于卵形的手勢
[0100]如先前解釋的,相對簡單的手勢能夠用于計算機或者互聯網導航并且僅具有模擬鼠標移動和活動的單個精細姿勢要求。任何數量的合適的姿勢能夠用于模擬在導航中經常使用的鼠標按鈕的按壓和釋放。例如,根據實施例,能夠用于指示鼠標按鈕按下的一個手勢涉及由拇指和食指形成卵形,如圖1Oa所示。可以看出,在用戶的拇指和食指之間,鍵盤顏色的卵形是可識別的。可以由具有基于鍵盤的標記FOV的視頻姿勢處理系統檢測到的卵形,可以被用作鼠標按鈕被保持按下的指示。根據實施例,如圖1Ob所示,當卵形被破壞(通過分離拇指和食指)時,該指示是鼠標按鈕被釋放。
[0101]利用這兩個簡單的手勢,當關于非膚色鍵盤背景顏色進行評估時,圖像處理算法(例如在姿勢識別級的算法)可以被編程或者以其它方式配置為檢測膚色形狀。例如,對于將鼠標按鈕保持按下的時段(卵形存在),由姿勢識別級執行的姿勢處理能夠配置為使用卵形的幾何中心來跟蹤該卵形的X-Y移動,以便確定X-Y光標移動,從而模仿鼠標的光標移動。在這樣的示例情況中,X-Y軸可以由鍵盤的X-Y軸在視覺圖像內限定。在一個具體的示例實施例中,使用+/-1.5個像素的膚色/非膚色邊緣檢測,并且發現足夠精確地沿著本文描述的X-Y軸跟蹤卵形的幾何中心。根據本公開將意識到,取決于期望的精確度,可以不同地配置其它實施例。
[0102]可以使用的另一鼠標功能是鼠標雙擊,能夠將鼠標雙擊識別為拇指與其它四個手指的快速增加的分離,在拇指+手指的中間位置上方稍微擴展。具體地,這一鼠標雙擊姿勢可以如圖10d-f所示來執行,其中,在圖1Od中示出了初始中間位置,其后是如圖1Oe所示的拇指與其它四個手指的快速增加的分離,其后是圖1Of所示的返回到中間位置,在從初始中間位置到分離位置的轉換中具有I到2秒的延遲,并且然后在從分離位置回到初始中間位置的轉換中具有I到2秒的延遲。這些具體示例允許相對手部斑塊的中心維持接近完整的卵形(在本文有時被稱為部分封閉卵形)的位置。根據本公開將意識到,其它適合的手勢也是可能的。
[0103]擴展到3D對象操控
[0104]大多數當前可用的姿勢識別技術集中于由相信這樣的解決方案提供放置在相機的FOV內的目標的更好空間分辨率驅動的3D Z-景深相機。然而,這要求大量的計算功率,并且這消耗電池功率。此外,存在嘗試將2D相機圖像映射到關節連接的手部模型上,并且然后通過解釋該手部模型的關節連接點的相對運動來理解手勢的多個解決方案。但是這些解決方案是相當復雜的。
[0105]因而,根據實施例,能夠容易地將本文提供的使用2D相機用于互聯網和計算機導航的精細姿勢控制的基于卵形的技術擴展到3D空間中對象的操控。如先前參照圖1Oa-1Of解釋的,用戶的手部在相機的圖像內創建可以被時域地分析為X-Y光標移動的卵形非膚色元件。根據本公開將意識到,卵形形狀的比例按照可預測的方式改變,因為用戶經過運動的六個軸(χ-Y-ζ和俯仰-傾斜-偏航)來移動他/她的手部。
[0106]例如,參照圖1 la-1 If,對于傾斜(圖1ld)和俯仰(lie)手部移動的圖像表示在這些具體的手部移動期間第3/第4/第5手指如何更少或更多地可視,而他們的比例在X(圖1la)和Y (圖1lb)和Z (圖lie)以及偏航(圖1lf)手部移動期間相當類似。另一微小但是仍可檢測的并且因此可行的區別是,與姿勢的向下部分相比較,Z運動姿勢傾向于在姿勢的向上部分中表示更多的指甲。同樣,與姿勢的其它部分相比較,在姿勢的一個部分中,偏航運動姿勢趨向于表示手指的正面視圖。與能夠使用如本文討論的幾何中心跟蹤的2D X-Y光標移動不同,手部的3D跟蹤必須也考慮手部和手腕更加復雜的關節連接。例如,簡單的橫向X運動可以實際上包括垂直Y運動和傾斜運動的分量。在典型的3D處理下,這些必須被校正以便僅給出用戶期望的X分量。
[0107]基于卵形的手勢方法
[0108]圖12說明了根據本文公開技術的實施例用于分析手勢視頻的方法。根據一些實施例,該方法可以在硬件或軟件或它們的組合中實現,并且在一個示例實施例中由如先前描述的可以在主機計算系統的CPU上執行的手部解析器級和姿勢識別級執行。例如,在一些這樣的實施例中,手部解析器級能夠配置為使用由分割級產生的斑塊數據的空間解釋來做出關于膚色區域內非膚色的類似卵形的區域是否存在的初始確定。如果為是,則將該處理傳遞到能夠配置為執行斑塊數據的時間解釋以便觀察從視頻的一個幀到下一個幀的改變的姿勢識別級。然而,根據本公開,多種變形和實施例將是顯而易見的,并且本文提供的姿勢分析技術可以被實現在任意合適的模塊或模塊的集合中。
[0109]可以看出,該方法包括確定是否已經檢測到膚色區域內完全封閉的非膚色區域(卵形)。回想到手部解析器級能夠配置為執行斑塊數據的空間解釋,并且該斑塊像素(例如,非零或“灰度”像素)能夠被容易地與非斑塊像素(例如,黑色像素)區分開。如果沒有檢測到膚色區域內的非膚色區域卵形,則處理繼續尋找一個卵形。如圖2a所示,此時可以將處理傳遞回到目標存在級。
[0110]在由手部解析器級進行給定幀的膚色區域內的非膚色卵形的檢測時,該方法繼續限定卵形的幾何中心以及關于X-Y對齊的鍵盤標記區域參照的相關標記。示例相關標記例如包括皮膚皺紋、關節泛紅、關節計數、靜脈、毛發以及其它這樣的人手的典型可識別特征。將意識到,知道卵形幾何中心的位置允許進行其它測量以便評估姿勢的進一步細節(包括在運動的6個軸中的任意一個中的移動)。
[0111]該方法繼續測量圍繞在這一初始幀中捕獲的卵形的膚色厚度。將意識到,注意到,圖12中對第一幀的參考不必意味著視頻流的第一幀,而是代表在其中已經檢測到膚色區域內的非膚色卵形的視頻流的第一幀。在任一情況中,這些厚度測量能夠在進一步評估在視頻流的一個或多個隨后幀中捕獲的姿勢的特性時使用。例如,在這一特定實施例中,所述方法通過估計卵形幾何中心、標記和周圍膚色厚度的尺寸和角度關于X-Y平面的變化來繼續分析下一幀。這些變化可以例如通過評估在圖1la-1lf中闡釋的特征來進行測量,如先前解釋的,這有效地特征化了六個軸上的手部運動。除了在X-Y平面內跟蹤卵形幾何中心的移動并且測量關于非膚色卵形的膚色的厚度,可以使用任何數量的特征識別技術來進一步增加評估的魯棒性(例如,在與偏航移動相關聯的橫向上的關節連接識別和跟蹤;在與Z移動相關聯的垂直方向上的指甲識別和跟蹤)。關于測量膚色厚度,注意到,例如,在傾斜和俯仰移動中卵形左部的膚色厚度隨著傾斜開始而顯著改變。
[0112]參照圖12可以進一步看出,該方法可以用于提供2D分析,其中,估計X-Y位移(以估計的在X-Y運動中產生的變化為基礎),或者用于提供3D分析,其中,估計6-軸位移(以估計的在χ-y-ζ和俯仰-傾斜-偏航運動中產生的變化為基礎)。所述方法然后繼續將所計算的位移估計通信到主機處理器(例如,圖形處理系統的CPU)。給定在這一示例情況中由鍵盤的標記區域提供的容量,可以按照相對有效的方式計算這樣的位移。
[0113]該方法繼續進行到下一幀并且確定膚色區域內的完全封閉的非膚色卵形是否仍然完整。如果為是,則對于下一幀重復處理,以便進一步評估該手勢已經如何從上一幀的手勢進行,并且能夠以關于兩個軸(對于2D處理)或六個軸(對于3D處理)的移動為基礎來計算任何相關位移,并且將其傳遞到主處理器,該主機處理器然后能夠按照接收到的導航命令(例如,點擊瀏覽器后退按鈕或者收藏夾鏈接、選擇超級鏈接、打開下拉菜單、最小化窗口、發起瀏覽器應用等等)來進行動作。
[0114]然而,如果確定膚色區域內的全封閉非膚色卵形不再完整(由于用戶已經通過分離拇指和食指而打開卵形),則該方法通過停止位移估計到CPU的通信并且針對膚色區域內新的非膚色卵形的存在繼續監控隨后的幀而繼續,并且相應地重復該處理。
[0115]根據本公開,多種變形是顯而易見的。例如,該方法可以等同地應用到檢測膚色區域內的局部非膚色卵形(如圖1Od-1Of所示)用于處理鼠標雙擊。進一步注意到,假設用戶具有兩只手,能夠在相機圖像中解釋這兩個相對應的不同的卵形非膚色元素(左手、右手)的互動。這樣的雙手處理可以例如在增益應用和其它高級應用中使用,而基本的計算機和互聯網導航姿勢可以僅使用一只手來執行。
[0116]示例系統
[0117]圖13說明了根據一些實施例可以執行本文描述的視頻內容的階梯式和分布式姿勢預處理的示例系統1300。在一些實施例中,系統1300可以是媒體系統,盡管系統1300并不局限于這一環境。例如,可以將系統1300結合在個人計算機(PC)、膝上型計算機、超級膝上型計算機、平板電腦、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數字助理(PDA)、蜂窩電話、手持計算機、掌上電腦、電視機、智能設備(例如,智能電話、智能平板電腦或智能電視機)、移動互聯網設備(MID)、消息傳送設備、數據通信設備、機頂盒、游戲控制臺或其它這樣的能夠執行圖形渲染操作的計算環境。
[0118]在一些實施例中,系統1300包括耦接到顯示器1320的平臺1302。平臺1302可以從諸如內容服務設備1330或內容傳送設備1340或其它類似內容資源的內容設備接收內容。包括一個或多個導航特征的導航控制器1350可以用于例如與平臺902和/或顯示器920交互,以便補充用戶做出的導航姿勢(例如,本文描述的基于完整和局部卵形的姿勢)。下面更加詳細地描述這些示例部件中的每一個。
[0119]在一些實施例中,平臺1302可以包括芯片集1305、處理器1310、存儲器1312、存儲1314、圖形子系統1315、應用1316和/或無線電1318的任意組合。芯片集1305可以提供處理器1310、存儲器1312、存儲1314、圖形子系統1315、應用1316和/或無線電1318之間的相互通信。例如,芯片集1305可以包括能夠提供與存儲1314相互通信的存儲適配器(未闡釋)。
[0120]處理器1310可以例如實現為復雜指令集計算機(CISC)或精簡指令集計算機(RISC)處理器、x86指令集兼容的處理器、多核處理器或任何其它微處理器或中央處理單元(CPU)。在一些實施例中,處理器1310可以包含雙核處理器、雙核移動處理器等等。存儲器1312可以例如實現為易失性存儲設備,例如但不局限于隨機存取存儲器(RAM)、動態隨機存取存儲器(DRAM)或靜態RAM (SRAM)0存儲1314可以例如實現為非易失性存儲設備,例如但不局限于磁盤驅動、光盤驅動、磁帶驅動、內部存儲設備、附接的存儲設備、閃存、電池供電的SDRAM (同步DRAM)和/或網絡可存取存儲設備。在一些實施例中,存儲1314可以包括用于增加對于有價值數字媒體的存儲性能增強保護的技術,例如當包括多個硬驅時。
[0121]圖形子系統1315可以執行諸如靜止或者視頻的圖像的處理用于顯示。圖形子系統1315可以例如是圖形處理單元(GPU)或視覺處理單元(VPU)。模擬或數字接口可以用于可通信地耦接圖形子系統1315和顯示器1320。例如,該接口可以是高清晰度媒體接口、顯示接口、無線HDMI和/或符合無線HD的技術中的任意一種。圖形子系統1315可以被集成到處理器1310或芯片集1305中。圖形子系統1315可以是可通信地耦接到芯片集1305的單獨的卡。本文描述的階梯式和分布式圖形和/或視頻處理技術可以在各種硬件架構(例如,在接近相機的相機硅中的GP-電路)中實現。在另一實施例中,包括一些分布式預處理級(例如,手部解析器和姿勢識別)的圖形和/或視頻功能可以由包括多核處理器的通用處理器實現。在另外一些情況中,可以使用共置或離散的GPU處理器(例如,分割級)。
[0122]無線電1318可以包括能夠使用各種合適的無線通信技術發射和接收信號的一個或多個無線電。這樣的技術可以涉及跨越一個或多個無線網絡的通信。示例性無線網絡包括(但不局限于)無線局域網(WLAN)、無線個域網(WPAN)、無線城域網(WMAN)、蜂窩網絡以及衛星網絡。在跨越這樣的網絡進行通信時,無線電918可以根據任意版本的一個或多個可應用標準進行操作。
[0123]在一些實施例中,顯示器1320可以包括任意電視機或計算機類型的監視器或顯示器。顯示器1320可以例如包括液晶顯示器(IXD)屏幕、電泳顯示器(EPD)或液體紙顯示器、平板顯示器、觸摸屏顯示器、類似電視機的設備和/或電視機。顯示器1320可以是數字和/或模擬的。在一些實施例中,顯示器1320可以是全息或三維顯示器。并且,顯示器1320可以是可以接收視覺投射的透明平面。例如,這樣的投射可以是用于移動增強現實(MAR)應用的視覺覆蓋層。在一個或多個軟件應用1316的控制下,平臺1302可以在顯示器1320上顯示用戶界面1322。
[0124]在一些實施例中,內容服務設備1330可以由任何國內、國際和/或獨立的服務主持并且因而例如經由互聯網或其它網絡對于平臺1302可訪問。內容服務設備1330可以耦接到平臺1302和/或顯示器1320。平臺1302和/或內容服務設備1330可以耦接到網絡1360以便向并且從網絡1360通信(例如,發送和/或接收)媒體信息。內容傳送設備1340也可以耦接到平臺1302和/或顯示器1320。在一些實施例中,內容服務設備1330可以包含有線電視盒、個人計算機、網絡、電話、能夠傳送數字信息和/或內容的互聯網使能的設備或裝置,以及任何其它能夠經由網絡1360或直接在內容提供方和平臺1302和/或顯示器1302之間單向或雙向地通信內容的設備。將意識到,可以經由網絡1360單向和/或雙向地向并且從系統1300和內容提供方中的任一部件通信所述內容。內容的示例可以包括任何媒體信息,例如視頻、音樂、圖形、文本、醫學和游戲內容等等。
[0125]內容服務設備1330接收諸如包括媒體信息、數字信息和/或其它內容的有線電視節目的內容。內容提供方的示例可以包括任何有線或衛星電視或無線電或互聯網內容提供方。所提供的示例并不意在限制本公開。在一些實施例中,平臺1302可以從具有一個或多個導航特征的導航控制器1350接收控制信號。所述控制器1350的導航特征可以例如用于與用戶界面1322交互。在一些實施例中,導航控制器1350可以是允許用戶向計算機輸入空間(例如,連續和多維)數據的計算機硬件部件(特別地,人類接口設備)的指向設備。將意識到,本文描述的導航姿勢可以用作這樣的導航控制器1350的替代,或者用于增強這樣的用戶輸入模態。因而,根據本公開將意識到,本文關于導航控制器1350的各種公開可以等同地應用于這樣的導航姿勢(除了控制器1350輸入相對于手勢輸入的處理路徑將不同)。諸如圖形用戶接口(GUI)和電視機以及監視器的許多系統允許用戶使用物理姿勢來控制計算機或電視機并且向其提供數據。
[0126]控制器1350的導航特征的移動可以通過指針、光標、聚焦環或顯示在顯示器上的其它視覺指示符的移動而被反射到顯示器(例如,顯示器1320)上。例如,在軟件應用1316的控制下,可以例如將位于導航控制器1350上的導航特征映射到在用戶界面1322上顯示的虛擬導航特征。在一些實施例中,控制器1350可以不是單獨的部件而是集成到平臺1302和/或顯示器1320中。然而,將意識到,實施例并不局限于本文示出或者描述的元件或環境。
[0127]在一些實施例中,驅動器(未示出)可以包括例如當被啟用時使用戶能夠立即打開和關閉平臺1302的技術,該平臺與在初始啟動之后具有按鈕觸摸的電視類似。當平臺“關閉”時,程序邏輯可以允許平臺1302向媒體適配器或其它內容服務設備1330或內容傳送設備1340流入內容。此外,芯片集1305可以例如包括支持5.1環繞立體聲音頻和/或高清晰度7.1環繞立體聲音頻的硬件和/或軟件。驅動器可以包括用于集成圖形平臺的圖形驅動器。在一些實施例中,所述圖形驅動器可以包括外圍部件互聯(PCI)高速圖形卡。
[0128]在各種實施例中,可以集成系統1300中示出的任意一個或多個部件。例如,可以集成平臺1302和內容服務設備1330,或者可以集成平臺1302和內容傳送設備1340,或者可以集成平臺1302、內容服務設備1330和內容傳送設備1340。在各種實施例中,平臺1302和顯示器1320可以是集成單元。例如,可以集成顯示器1320和內容服務設備1330,或者可以集成顯示器1320和內容傳送設備1340。這些示例并不意在限制本公開。
[0129]在各種實施例中,系統1300可以實現為無線系統、有線系統或兩者的組合。當實現為無線系統時,系統1300可以包括適于在無線共享媒體上進行通信的部件和接口,例如一個或多個天線、發射機、接收機、收發器、放大器、濾波器、控制邏輯等等。無線共享媒體的示例可以包括無線頻譜的一部分,例如RF頻譜等等。當實現為有線系統時,系統1300可以包括適于在有線通信媒體上進行通信的組件和接口,例如輸入/輸出(I/O)適配器、使I/O適配器與相對應的有線通信媒體連接的物理連接器、網絡接口卡(NIC)、磁盤控制器、視頻控制器、音頻控制器等等。有線通信媒體的示例可以包括電線、電纜、金屬引線、印刷電路板(PCB)、背板、交換光纖、半導體材料、雙絞線、同軸電纜、光纖等等。
[0130]平臺1302可以建立一個或多個邏輯或物理信道以便通信信息。所述信息可以包括媒體信息和控制信息。媒體信息可以指代代表用于用戶的內容的任何數據。內容的示例可以例如包括來自語音會話、視頻會議、視頻流、電子郵件或文本消息、語音郵件信息、字母數字符號、圖形、圖像、視頻、文本等等的數據。控制信息可以指代代表用于自動化系統的命令、指令或控制字的任何數據。例如,控制信息可以用于經過系統路由媒體信息,或者指示節點按照預定的方式(例如,使用本文描述的輔助特權接入違例檢查的硬件)來處理媒體信息。然而,所述實施例并不局限于圖13示出或描述的元件或環境。
[0131]如上所述,系統1300可以體現在不同的物理樣式或形狀因數中。圖14說明了其中可以體現系統1300的小形狀因數設備1400的實施例。例如,在一些實施例中,設備1400可以實現為具有無線能力的移動計算設備。移動計算設備可以例如指代具有處理系統和諸如一個或多個電池的移動功率源或電源的任何設備。
[0132]如先前描述的,移動計算設備的示例可以包括個人計算機、膝上型計算機、超級膝上型計算機、平板電腦、觸摸板、便攜式計算機、手持計算機、掌上計算機、個人數字助理(PDA)、蜂窩電話、組合蜂窩電話/PDA、電視機、智能設備(例如,智能電話、智能平板電腦或智能電視機)、移動互聯網設備(MID)、消息傳送設備、數據通信設備等等。
[0133]移動計算設備的示例也可以包括布置為由人穿戴的計算機,例如手腕計算機、手指計算機、戒指計算機、眼鏡計算機、夾在腰帶上的計算機、綁在手臂上的計算機、鞋式計算機、服裝計算機及其它可穿戴計算機。例如,在一些實施例中,移動計算設備可以實現為能夠執行計算機應用以及語音通信和/或數據通信的智能電話。盡管可以通過示例的方式,利用實現為智能電話的移動計算設備來描述一些實施例,但是可以意識到,也可以使用其它無線移動計算設備實現其它實施例。所述實施例并不局限于這一環境。
[0134]如圖14所示,設備1400可以包括殼體1402、顯示器1402、輸入/輸出(I/O)設備1406和天線1408。設備1400也可以包括導航特征1412。顯示器1404可以包括用于顯示適于移動計算設備的信息的任何合適的顯示單元。I/O設備1406可以包括用于向移動計算設備輸入信息的任何合適的I/O設備。I/O設備1406的示例可以包括字母數字鍵盤、數字小鍵盤、觸摸板、輸入鍵、按鈕、相機、開關、搖桿式開關、麥克風、揚聲器、語音識別設備和軟件等等。也可以通過麥克風的形式將信息輸入到設備1400中。這樣的信息可以由語音識別設備數字化。所述實施例并不局限于這一環境。
[0135]可以使用硬件元件、軟件元件或者二者的組合來實現各種實施例。硬件元件的示例可以包括處理器、微處理器、電路、電路元件(例如,晶體管、電阻器、電容器、電感器等等)、集成電路、專用集成電路(ASIC)、可編程邏輯器件(PLD)、數字信號處理器(DSP)、現場可編程門陣列(FPGA)、邏輯門、寄存器、半導體設備、芯片、微芯片、芯片集等等。軟件的示例可以包括軟件部件、程序、應用、計算機程序、應用程序、系統程序、機器程序、操作系統軟件、中間件、固件、軟件模塊、例程、子例程、函數、方法、過程、軟件接口、應用程序接口(API)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、字、值、符號或它們的任意組合。根據例如期望的計算率、功率級別、耐熱性、處理周期預算、輸入數據率、輸出數據率、存儲器資源、數據總線速度以及其它設計或性能約束,使用硬件元件和/或軟件元件可以隨著一個實施例到下一個實施例而變化。
[0136]一些實施例可以例如通過存儲指令或指令集的機器可讀介質或物品實現,如果由機器執行,這些指令或指令集可以使該機器執行根據實施例的方法和/或操作。這樣的機器可以例如包括任何合適的處理平臺、計算平臺、計算設備、處理設備、計算系統、處理系統、計算機、處理器等等,并且可以使用硬件和軟件的任意合適的組合來實現。所述機器可讀介質或物品可以例如包括任意合適類型的非暫態存儲器單元、存儲器設備、存儲器物品、存儲器介質、存儲設備、存儲物品、存儲介質和/或存儲單元,例如,存儲器、可移除或不可移除介質、可擦除或不可擦除介質、可寫入或可重寫入介質、數字或模擬介質、硬盤、軟盤、壓縮盤只讀存儲器(⑶-ROM)、可記錄壓縮盤(⑶-R)、可重寫壓縮盤(⑶-RW)、光盤、磁介質、磁-光介質、可移除存儲卡或盤、多種類型的數字通用盤(DVD)、磁帶、盒式磁帶等等。所述指令可以包括使用任意合適的高級、低級、面向對象的、視覺的、編譯的和/或解釋的編程語言實現的任何合適類型的可執行代碼。
[0137]講一步示例實施例
[0138]下面的示例涉及進一步實施例,根據這些實施例,多個排列和配置是顯而易見的。
[0139]示例I是用于處理原始視頻流的系統,包括:配置為通過僅評估包括在作為給定成像視場的子集的標記區域內的閾值化事件區域中的像素來確定視頻流的當前幀是否包括膚色像素的目標存在級,并且對當前幀不包括膚色像素做出響應,所述目標存在級進一步配置為停止由隨后級對當前幀的進一步處理;以及配置為針對由目標存在級指示為包括膚色的幀執行標記區域內的圖像數據的空間和時間解釋中的至少一個;其中,目標存在級或者姿勢處理級不處理標記區域外部的像素。
[0140]示例2包括示例I的主題,其中,所述閾值化事件區域是單像素掃描線、局部像素掃描線或像素。
[0141]示例3包括示例I或示例2的主題,其中,所述目標存在級配置為通過對閾值事件區域內的視頻流的R、G和B像素值進行加和來評估僅包括在閾值化事件區域中的像素。
[0142]示例4包括示例1-3中的任意一個的主題,其中,所述閾值事件區域是單掃描線或局部掃描線或像素。
[0143]示例5包括示例1-4中的任意一個的主題,其中,所述標記區域與鍵盤對齊并且由鍵盤的邊界限定,并且所述閾值事件區域是沿著鍵盤的A-GH-L鍵或者以其它方式位于其上的單掃描線或局部掃描線或像素。
[0144]示例6包括示例3-5中的任意一個的主題,其中,目標存在級進一步配置為對加和的R-G-B像素值與給定閾值進行比較以便確定當前幀是否包括膚色像素。
[0145]示例7包括示例3-6中的任意一個的主題,其中,對閾值事件區域中的R-G-B像素值進行加和用于確定膚色關于標記區域的背景顏色的比率是否已發生了改變。
[0146]示例8包括示例I或示例2的主題,其中,所述目標存在級配置為通過僅對閾值事件區域內的視頻流的綠色像素值進行加和來僅評估包括在閾值化事件區域中的像素。
[0147]示例9包括示例8的主題,其中,所述閾值事件區域是單掃描線或局部掃描線或像素。
[0148]示例10包括示例8或9的主題,其中,所述標記區域與鍵盤對齊并且由鍵盤的邊界限定,并且所述閾值事件區域是沿著鍵盤的A-GH-L鍵或者以其它方式位于其上的單掃描線或局部掃描線或像素。
[0149]示例11包括示例8-10中的任意一個的主題,其中,所述目標存在級進一步配置為對加和的綠色像素值與給定閾值進行比較以便確定當前幀是否包括膚色像素。
[0150]示例12包括示例8-11中的任意一個的主題,其中,僅對閾值事件區域中的綠色像素值進行加和用于確定膚色關于標記區域的背景顏色的比率是否已發生了改變。
[0151]在示例13中,示例1-12中的任意一個的主題可以可選地包括配置為確定視頻流的當前幀是否與視頻流的先前幀充分不同的閾值檢測級,并且對當前幀與視頻流的先前幀不充分不同做出響應,所述閾值檢測級進一步配置為停止對當前幀的進一步處理。這一閾值檢測級可以例如配置為將處理傳遞到目標存在級或者可以與目標存在級集成。在后者的情況中,在一些實施例中,包括膚色像素的幀的檢測可以用于聲明當前幀與先前幀充分不同。
[0152]示例14包括示例1-4、6_9和11_13中的任意一個的主題,其中,標記區域與用戶輸入設備或鼠標墊或桌面區域對齊。
[0153]示例15包括示例14的主題,其中,標記區域與鍵盤對齊并且由鍵盤的邊界限定。
[0154]示例16包括示例14的主題,其中,標記區域與鼠標墊對齊并且由鼠標墊的邊界限定。
[0155]示例17包括示例1-16中的任意一個的主題,其中,所述姿勢處理級包括配置為使感興趣像素與不感興趣像素分離的分割級,其中,將感興趣像素表示為斑塊,并且將不感興趣像素表示為非斑塊。
[0156]示例18包括示例17的主題,其中,分割級在圖形處理單元(GPU)中實現。
[0157]示例19包括示例17或18的主題,其中,姿勢處理級進一步包括配置為對從分割級接收到的斑塊數據執行空間解釋的解析器級。
[0158]示例20包括示例19的主題,其中,所述解析器級配置為對斑塊數據執行空間解釋以便識別膚色區域內非膚色的類似卵形區域的存在,并且其中,所述膚色區域內的非膚色的類似卵形區域是全封閉或部分封閉的。
[0159]示例21包括示例19或20的主題,其中,所述姿勢處理級進一步包括配置為對從解析器級接收到的斑塊數據執行時間解釋的姿勢識別級。
[0160]示例22包括示例21的主題,其中,在可部署在第一位置處并且具有包括用戶輸入區域的成像視場的相機內或者靠近該相機實現目標存在級,并且所述分割級、解析器級和姿勢識別級位于與所述第一位置不同的一個或多個位置處。
[0161]示例23包括示例21或22的主題,其中,所述分割級在圖形處理單元中實現,并且所述解析器級和姿勢識別級由應用軟件實現。
[0162]示例24包括示例1-23中的任意一個的主題,其中,在可部署在第一位置處并且具有包括用戶輸入區域的成像視場的相機內或靠近該相機實現目標存在級,并且在與所述第一位置不同的一個或多個位置處實現姿勢處理級。
[0163]在示例25中,示例1-24中的任意一個的主題可以可選地包括用于將一個或多個級可操作地耦接到計算平臺的應用程序接口(API),所述系統配置為在所述計算平臺上操作。
[0164]示例26包括示例1-25中的任意一個的主題,其中,所述目標存在級進一步配置為對在閾值化事件區域中檢測到膚色做出響應而向計算平臺(例如在示例25中提及的平臺)發送信號以便從低功耗模式喚醒。
[0165]示例27包括示例26的主題,其中,所述目標存在級進一步配置為在低功耗模式期間以相對于計算平臺的正常模式的幀率至少降低的幀率進行操作。
[0166]示例28包括包含權利要求1-27中的任意一項的系統以及可操作地耦接到系統的相機的成像設備,其中,所述目標存在級在相機的傳感電路內實現。
[0167]示例29包括包含權利要求1到27中的任意一項的系統的顯示器,其中,所述目標存在級在集成在顯示器內的相機的傳感器電路內實現。
[0168]示例30包括使用原始視頻流的計算機導航方法,所述方法包括:在第一處理級通過僅評估包括在作為給定成像視場的子集的標記區域內的閾值化事件區域內的像素,確定視頻流的當前幀是否包括膚色像素,并且對當前幀不包括膚色像素做出響應,停止由隨后級對當前幀的進一步處理;并且在一個或多個隨后的處理級,針對由第一處理級指示為包括膚色的幀執行所述標記區域內的圖像數據的空間和時間解釋中的至少一個;其中,所述處理級不處理標記區域外部的像素。
[0169]在示例31中,示例30的主題可以可選地包括位于所述第一級之前的處理級,確定視頻流的當前幀是否與視頻流的先前幀充分不同,并且對當前幀與先前幀不充分不同做出響應,停止對當前巾貞的進一步處理;
[0170]示例32包括示例30或31的主題,其中,所述一個或多個隨后的處理級可以包括第二、第三、第四、第五和第六處理級中的一個或多個。在這樣的示例中,所述主題可以可選地包括下面項目中的更多或更少:在第二處理級接收來自當前幀的數據并且使感興趣像素與不感興趣像素分離,其中,感興趣像素由斑塊表示,并且不感興趣像素由非斑塊表示;在第三處理級通過將斑塊數據映射到人手幾何特征,執行從第二處理級接收到的斑塊數據的空間解釋,在第四處理級,執行從第三處理級接收到的斑塊數據的時間解釋以便識別用戶導航姿勢;并且以該用戶導航姿勢為基礎來指導計算系統。
[0171]示例33包括示例32的主題,其中所述處理級(或者至少它們中的一些)配置在階梯式和分布式布置中,并且消除位于標記區域外部的像素信息的處理和通信。
[0172]示例34包括示例30-33中的任意一個的主題,其中,閾值化事件區域是單像素掃描線或局部像素掃描線。
[0173]示例35包括示例30-33中的任意一個的主題,其中,閾值化事件區域是單像素。
[0174]示例36包括示例30-35中的任意一個的主題,其中,所述第一處理級配置為通過對閾值事件區域內的視頻流的R、G和B像素值進行加和,僅評估包括在閾值化事件區域中的像素。
[0175]示例37包括示例36的主題,其中,閾值事件區域是單掃描線或局部掃描線或像素。
[0176]示例38包括示例30-37中的任意一個的主題,其中,所述標記區域與鍵盤對齊并且由鍵盤的邊界限定,并且所述閾值事件區域是沿著鍵盤的A-GH-L鍵或者以其它方式位于其上的單掃描線或局部掃描線或像素。在其它示例情況中,所述標記區域和/或閾值事件區域是給定成像視場的用戶可配置子集。
[0177]示例39包括示例36-38中的任意一個的主題,其中,所述第一處理級進一步配置為對加和的R-G-B像素值與給定閾值進行比較,以便確定當前幀是否包括膚色像素。
[0178]示例40包括示例36-39中的任意一個的主題,其中,對閾值事件區域中的R_G_B像素值進行加和用于確定膚色關于標記區域的背景顏色的比率是否已發生了改變。
[0179]示例41包括示例30-35中的任意一個的主題,其中,所述第一處理級配置為通過僅對閾值事件區域內的視頻流的綠色像素值進行加和,僅評估包括在閾值化事件區域中的像素。
[0180]示例42包括示例41的主題,其中,所述閾值事件區域是單掃描線或局部掃描線或像素。
[0181]示例43包括示例41或42的主題,其中,所述標記區域與鍵盤對齊并且由鍵盤的邊界限定,并且所述閾值事件區域是沿著鍵盤的A-GH-L鍵或者以其它方式位于其上的單掃描線或局部掃描線或像素。
[0182]示例44包括示例41-43中的任意一個的主題,其中,所述第一處理級進一步配置為對加和的綠色像素值與給定閾值進行比較以便確定當前幀是否包括膚色像素。
[0183]示例45是編碼有指令的非暫態計算機可讀介質或計算機程序產品,當由一個或多個處理器執行時,所述指令導致使用原始視頻流執行導航方法。所述方法可以例如包括示例30-44中的任意一個的主題,或者如在示例1-30中多樣化描述的任意計算機可實現功倉泛。
[0184]出于說明和描述的目的呈現了示例實施例的前面描述。并不意在是排它性的或將本公開局限于所公開的精確形式。根據本公開,多種修改和變形是可能的。意在本公開的范圍不受該詳細描述限制,而是受限于所附的權利要求。要求本申請優先權的未來遞交的申請可以按照不同方式來請求保護所公開的主題,并且通常可以包括如本文多樣化或者以其它方式列舉的一個或多個限制的任意集合。
【權利要求】
1.一種用于處理原始視頻流的系統,包括: 目標存在級,配置為通過僅評估包括在作為給定成像視場的子集的標記區域內的閾值化事件區域中的像素來確定所述視頻流的當前幀是否包括膚色像素,并且響應于所述當前幀不包括膚色像素,所述目標存在級進一步配置為停止由隨后的級對所述當前幀的進一步處理;以及 姿勢處理級,配置為針對由所述目標存在級指示為包括膚色的幀執行所述標記區域內的圖像數據的空間解釋和時間解釋中的至少一個; 其中,所述目標存在級或者所述姿勢處理級不處理所述標記區域外部的像素。
2.如權利要求1所述的系統,其中,所述閾值化事件區域是單像素掃描線、局部像素掃描線或像素。
3.如權利要求1所述的系統,其中,所述目標存在級配置為通過對閾值事件區域內的所述視頻流的R、G和B像素值進行加和來評估僅包括在閾值化事件區域中的像素。
4.如權利要求3所述的系統,其中,所述閾值事件區域是單掃描線或局部掃描線或像素。
5.如權利要求3所述的系統,其中,所述目標存在級進一步配置為對加和的R-G-B像素值與給定閾值進行比較以便確定所述當前幀是否包括膚色像素。
6.如權利要求3所述 的系統,其中,對所述閾值事件區域中的所述R-G-B像素值進行加和用于確定膚色相對所述標記區域的背景顏色的比率是否已發生了改變。
7.如權利要求1所述的系統,其中,所述目標存在級配置為通過僅對閾值事件區域內的所述視頻流的綠色像素值進行加和來評估僅包括在所述閾值化事件區域中的像素。
8.如權利要求7所述的系統,其中,所述閾值事件區域是單掃描線或局部掃描線或像素。
9.如權利要求7所述的系統,其中,所述目標存在級進一步配置為對加和的綠色像素值與給定閾值進行比較以便確定所述當前幀是否包括膚色像素。
10.如權利要求7所述的系統,其中,僅對所述閾值事件區域中的所述綠色像素值進行加和用于確定膚色相對所述標記區域的背景顏色的比率是否已發生了改變。
11.如權利要求1到10中的任意一項所述的系統,進一步包括閾值檢測級,配置為確定所述視頻流的所述當前幀是否與所述視頻流的先前幀充分不同,并且響應于所述當前幀與所述先前幀不充分不同,所述閾值檢測級進一步配置為停止對所述當前幀的進一步處理。
12.如權利要求1到10中的任意一項所述的系統,其中,所述標記區域與鍵盤對齊并且由所述鍵盤的邊界限定。
13.如權利要求1到10中的任意一項所述的系統,其中,在能夠部署在第一位置處并且具有包括用戶輸入區域的成像視場的相機內或接近于所述相機實現所述目標存在級,并且在與所述第一位置不同的一個或多個位置處實現所述姿勢處理級。
14.如權利要求1到10中的任意一項所述的系統,進一步包括用于將所述級中的一個或多個可操作地耦接到計算平臺的應用程序接口(API),所述系統配置為在所述計算平臺中進行操作。
15.如權利要求1到10中的任意一項所述的系統,其中,所述目標存在級進一步配置為響應于在所述閾值化事件區域中檢測到膚色,而向計算平臺發送信號以便從低功耗模式中喚醒。
16.一種包括如權利要求1到10中的任意一項所述的系統的顯示器,其中,所述目標存在級實現在集成在所述顯示器內的相機的傳感器電路內。
17.一種使用原始視頻流的計算機導航方法,包括: 在第一處理級,通過僅評估包括在作為給定成像視場的子集的標記區域內的閾值化事件區域中的像素,確定所述視頻流的當前幀是否包括膚色像素,并且響應于所述當前幀不包括膚色像素,停止由隨后的級對所述當前幀的進一步處理;并且 在一個或多個隨后的處理級,針對由所述第一處理級指示為包括膚色的幀,執行所述標記區域內的圖像數據的空間解釋和時間解釋中的至少一個; 其中,所述處理級不處理所述標記區域外部的像素。
18.如權利要求17所述的方法,其中,所述一個或多個隨后的處理級包括第二、第三、第四、第五和第六處理級,所述方法進一步包括: 在所述第一級之前的處理級,確定所述視頻流的所述當前幀是否與所述視頻流的先前幀充分不同,并且響應于所述當前幀與所述先前幀不充分不同,停止對所述當前幀的進一步處理; 在所述第二處理級 ,接收來自所述當前幀的數據并且使感興趣像素與不感興趣像素分離,其中,感興趣像素由斑塊表示,并且不感興趣像素由非斑塊表示; 在所述第三處理級,通過將所述斑塊數據映射到人手幾何特征,執行從所述第二處理級接收到的斑塊數據的空間解釋; 在所述第四處理級,執行從所述第三處理級接收到的斑塊數據的時間解釋以便識別用戶導航姿勢;并且 以所述用戶導航姿勢為基礎來指導計算系統。
19.如權利要求17所述的方法,其中,所述第一處理級配置為通過對閾值事件區域內的所述視頻流的R、G和B像素值進行加和,僅評估包括在所述閾值化事件區域中的像素,以便確定膚色相對所述標記區域的背景顏色的比率是否已發生了改變。
20.如權利要求17所述方法,其中,所述第一處理級配置為通過僅對閾值事件區域內的所述視頻流的綠色像素值進行加和,僅評估包括在所述閾值化事件區域中的像素。
21.—種編碼有指令的非暫態計算機可讀介質,當由一個或多個處理器執行時,所述指令導致執行如權利要求17到20中的任意一項所述的方法。
【文檔編號】G06K9/78GK104050443SQ201410089933
【公開日】2014年9月17日 申請日期:2014年3月12日 優先權日:2013年3月13日
【發明者】J·伯爾 申請人:英特爾公司