新四季網

用於緊湊設備的基於相機的用戶輸入的製作方法

2023-06-17 01:54:21 3

專利名稱:用於緊湊設備的基於相機的用戶輸入的製作方法
技術領域:
本公開一般涉及用戶輸入,並且至少一種特定配置涉及利用相機檢測用 戶指尖的位置作為提供用戶輸入的機制。
背景技術:
包括蜂窩電話的手持設備可以包括一個或更多用於用戶輸入的機制,例 如小鍵盤、控制杆、或者滾動輪。 一些手持設備使用光學傳感器來模擬 (emulate)控制杆功能,並且一些手持設備包括觸敏(touch-sensitive)顯示 屏。用於手持設備的輸入機制典型地限於二維的控制。

發明內容
本公開一般涉及用戶輸入,並且至少一個特定配置涉及利用相機檢測用 戶指尖的位置作為提供用戶輸入的機制的新穎方法。
根據一個一般的實施方式,使用相機來檢測例如用戶的手指的對象的位 置和/或取向作為用於提供用戶輸入的方法,例如用於滾過(scroll through) 數據、控制光標位置和基於用戶的手指位置提供輸入以控制視頻遊戲。把輸 入提供給手持設備,包括例如蜂窩電話、視頻遊戲系統、可攜式音樂(MP3) 播放器、可攜式視頻播放器、個人數據助理(PDA)、音頻/視頻設備遙控器 和消費型數位相機,或者其他類型的設備。手持設備可以包括相機,所以為 了實施用於提供用戶輸入的系統,可以不要求額外的硬體。
根據另一個一般實施方式, 一種方法包括使用手指的解剖模型在與電 子設備進行交互的用戶的手的圖像中檢測用戶的手的手指的取向。所述方法 還可以包括把所檢測的取向映射到控制輸入,並基於所述控制輸入控制應用程式(application )。
實施方式可用包括一個或更多的下列特徵。例如,所述方法還可以包括在與電子設備進行交互的用戶的手的圖像中檢測用戶的手的手指的位置,其中,可以基於所檢測的位置映射控制輸入。控制輸入可以在虛擬環境中定義對應於手指的所檢測的位置和所檢測的取向的位置和取向。所述方法可以包括控制虛擬環境中的虛擬對象移動到虛擬環境中對應於手指的所檢測的位置和所檢測的取向的位置和取向;以及,在虛擬環境中對應於手指的所檢測的位置和所檢測的取向的位置和取向表現虛擬對象的顯示。
使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測用戶的手的手指的取向可以包括識別對應於指尖的手指的第一部分,識別對應於手指根部的手指的第二部分,計算手指的第一部分和手指的第二部分之間的向量,以及,基於所述向量確定手指的取向。所述方法還可以包括獲取手指的圖像,並對所述圖像進行邊緣處理。此外,所述方法可以包括沿著具有基本垂直於手指的取向的掃描線分割所述圖像。
在某些實施方式中,所述方法還可以包括檢測手指周圍的輪廓。可以通過計算所述圖像內的圖像密度的梯度,並識別所述圖像密度的梯度中的局部最小和局部最大中的至少一個來檢測手指周圍的輪廓。所述方法可以包括識別所述圖像對應於手指皮膚中的褶皺的區域,並且在所述圖像內檢測手指時忽略所述圖像對應於手指皮膚中的所述褶皺的被識別區域。
在某些例子中,所述方法可以包括在所述圖像中基於對象的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交選擇作為手指的對象。所述方
剖模型檢測手指的取向,所述解剖模型是從手指的根部延伸到手指的指尖的手指模型。
根據另一個一般實施方式, 一種設備包括圖像檢測器,被配置成使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測所述用戶的
手的手指的取向。所述設備還可以包括處理器,該處理器被配置成把所檢測的取向映射到控制輸入,並基於所述控制輸入控制應用程式。所述圖像檢測器可以被配置在行動電話、可攜式視頻遊戲系統、可攜式音樂播放器、個人數據助理、遙控器或者數位相機中。
根據另一個一般實施方式, 一種存儲電腦程式產品的計算機可讀介質。
7所述電腦程式產品包括指令,所述指令當被執行時工作以使計算機執行操作。所述操作包括使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測所述用戶的手的手指的取向。所述操作還可以包括把所檢測的取向映射到控制輸入,並基於所述控制輸入控制應用程式。
根據另一個一般實施方式, 一種方法包括訪問與電子設備進行交互的
用戶的手的圖像,並且基於對象的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交,在所述圖像中識別作為所述用戶的手的手指的對象。所述方法還可以包括確定在所述圖像中被識別為所述用戶的手的手指的所述對象的位置,把所檢測的位置映射到控制輸入,並基於所述控制輸入控制應用程式。
實施方式可以包括一個或更多的下列特徵。例如,所述方法可以包括基於具有對應於手指的解剖模型的拉長形狀的對象,在所述圖像中識別作為所述用戶的手的手指的對象。所述方法還可以包括基於在平行於所述電子設備的顯示器的平面中取向的手指的解剖模型,在所述圖像中識別作為所述用戶的手的手指的對象。所述解剖模型可以是從手指的根部延伸到手指的指尖的
手指模型。
在某些實施方式中,所述方法可以包括把所檢測的位置映射到顯示區域中對應於手指的所檢測的位置的位置,並把所顯示的指示符移動到所述顯示區域中對應於手指的所檢測的位置的位置。所述方法還可以包括識別在所顯示的用戶界面中對應於手指的所檢測的位置的位置處的輸入控制,並確定和被識別的輸入控制相關聯的操作。基於所述控制輸入控制所述應用程式可以
包括執行和被識別的輸入控制相關聯的梯:作。
在某些例子中,所述方法可以包括確定所述圖像中手指的寬度,並基於所確定的寬度,估計手指相對於捕獲所述圖像的相機的深度位置。在這些例子中,可以基於所估計的深度位置映射所述控制輸入。所述方法還可以包括檢測手指的對應於指尖的部分,並確定所述位置為手指的對應於指尖的部分的質心。
所述方法可以包括在所述圖像內定義圖像區域以使所述圖像區域的邊界與所述圖像的邊界分隔開所預期的指尖寬度的至少一半的距離,其中,可以在所定義的圖像區域內檢測手指的位置。當在所述圖像區域外部檢測到指尖時,該指尖的位置可以被映射到所述圖像區域的邊界上的位置。才艮據另一個一4殳實施方式, 一種設備包括相機,該相枳4皮配置成捕獲與 電子設備進行交互的用戶的手的圖像。所述設備還可以包括處理器,該處理 器被配置成訪問與電子設備進行交互的用戶的手的圖像,並基於對象的尺寸、 對象的形狀以及該對象是否和所述圖像的邊界相交,在所述圖像中識別作為 所述用戶的手的手指的對象。所述處理器還被配置成確定在所述圖像中被識 別為所述用戶的手的手指的所述對象的位置,把所檢測的位置映射到控制輸 入,並基於所述控制輸入控制應用程式。
根據另一個一般實施方式, 一種存儲電腦程式產品的計算機可讀介質。 所述電腦程式產品包含指令,所述指令當被執行時工作以使計算機執行操 作。所述操作包括訪問與電子設備進行交互的用戶的手的圖像,並基於對象 的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交,在所述圖像中 識別作為所述用戶的手的手指的對象。所述操作還包括確定在所述圖像中被 識別為所述用戶的手的手指的對象的位置,把所檢測的位置映射到控制輸入, 並基於所述控制輸入控制應用程式。
在附圖和下面的描述中給出了一個或更多實施方式的細節。從所述描述 和附圖,本公開的其他的潛在特徵和優點將會清楚。


圖1是展示檢測用戶指尖的位置作為用於提供用戶輸入的方法的情境圖。
圖2示出了示範性手持設備。
圖3A示出了包括面朝著觀察手持設備的顯示器的用戶的相機的另一個 示範性手持設備。
圖3B示出了包括從觀察手持設備的顯示器的用戶轉開(facing away )的 相機的另一個示範性手持設備。
圖4示出了用於向設備提供用戶輸入的用戶手指的位置的例子。
圖5是示出把檢測到的手指位置和/或取向映射到控制輸入並基於所述控 制輸入控制應用程式的過程的流程圖。
圖6是利用相機檢測用戶的指尖的位置作為用於提供用戶輸入的方法的 過程的流程圖。
圖7A示出了手指從底部圖像邊緣進入視場(field of view)的例子。圖7B示出了手指在相機的視場內成角度出現的例子。 圖8A示出了沿著掃描線的像素密度的例子。
圖8B示出了通過邊緣檢測過程計算的梯度大小(magnitude)的例子。 圖9A示出了連結的段的例子。
圖9B示出了被識別為手指的連結的段的集合的例子。
圖9C示出了代表手指的部分的子集的例子。
圖9D示出了手指的寬度測量的例子。
圖10 A示出了在相機圖像內定義的圖像區域的例子。
圖10B示出了被定位成使得指尖位置在圖像區域外部的手指的例子。
圖IIA示出了把圖像區域映射到顯示區域的例子。
圖11B示出了指示符位置直接和手指位置相關的例子。
圖12示出了在顯示屏幕上顯示的應用程式的用戶界面的例子。
圖13A示出了在顯示屏幕上顯示的遊戲的顯示圖像的例子。
圖13B示出了包括主視角(first-person view)的手指控制射擊遊戲的例子。
圖13C示出了包括第三人視角(third-personview)的手指控制射擊遊戲 的例子。
相同的參考符號在各個附圖中指示相同的元素。
具體實施例方式
根據一個實施方式,使用相機來檢測例如用戶指尖的對象的位置作為用 於提供用戶輸入的方法。例如,檢測用戶指尖的位置可用於滾過數據、控制 光標位置和基於用戶的指尖位置提供輸入以控制視頻遊戲。還可以檢測額外 的信息,例如手指的取向。輸入被提供給手持(或其他)設備,包括例如, 蜂窩電話、視頻遊戲系統、可攜式音樂(MP3)播放器、可攜式視頻播放器、 個人數據助理(PDA)、音頻/視頻設備遙控器,和消費型數位相機,或者其 他類型的設備。手持設備可以包括相機(camera ),所以為了實施用於提供用 戶輸入的系統,可以不要求額外的硬體。
圖1是展示檢測用戶指尖的位置作為用於提供用戶輸入的方法的情景 圖。手持設備101 (下面更詳細地描述)包括顯示器103,顯示器103顯示在 手持設備101上運行的應用程式或者作業系統的輸出。用戶使用用戶的手指
10201向手持設備101提供用戶輸入。如圖所示,應用程式是格鬥(melee combat) 遊戲,並且使用把手指位置和取向映射到虛擬對象120 (例如一把劍)的表 示(representation)的用戶輸入方法來實現控制該遊戲。
例如,用戶的手指201的移動111被映射到遊戲內的虛擬對象120 (例如 劍或其他的武器)的移動112。在這個例子中,遊戲使用三維計算機圖形技 術顯示虛擬對象120的表示,因而虛擬對象120具有在虛擬體(virtual volume ) 內的位置和取向。在圖像區域或者三維圖像區域內的指根位置被映射到虛擬 體內的虛擬對象根部位置,並且手指取向被映射到虛擬體內的虛擬對象取向。 至此,虛擬對象120的位置和取向對應於用戶手指201的位置和取向,所以 用戶的手指201映射到了虛擬對象120。
使用這種映射,用戶例如向右揮動其手指201向遊戲提供用戶輸入以使 劍120向右欲。用戶也可以使其手指201在和代表顯示器103的前表面的平 面平行的平面中取向,使用戶的指尖指向垂直於顯示器103的最高邊緣的方 向。用戶手指201的這種取向使得劍120在虛擬環境中出現在和代表顯示器 103的前表面的平面平行的平面中,劍120的尖端指向垂直於顯示器103的 最高邊緣的方向。如果用戶在保持著取向的同時向上移動其手指201 (即沿 著垂直於顯示器103的最高邊緣的方向),則用戶輸入被提供給遊戲,使劍 120在顯示器中以對應於用戶手指201的方式向上刺。
類似地,如果用戶在保持著取向的同時向著顯示器移動其手指201,則 劍120保持對應於用戶手指201的取向,並在虛擬環境中沿著進入顯示器中 的方向行進。如果用戶在保持著取向的同時從顯示器移動開其手指201,則 劍120保持對應於用戶手指201的取向,並在虛擬環境中沿著離開顯示器的 方向行進。就這樣,用戶手指201的位置的變化映射到虛擬環境中虛擬對象 (即劍)120的位置的變化,所述虛擬對象(即劍)120的位置的變化由顯示 器103上的虛擬對象120的顯示中的變化代表。
在某些例子中,用戶可以改變用戶手指201的取向以改變劍120在虛擬 環境中的取向。例如,用戶可以傾斜其手指201以使劍120在虛擬環境中傾 斜。劍120可以在虛擬環境中傾斜特定的度數,所述度數直接地或者成比例 地對應於用戶傾斜其手指201的度數。這樣,用戶手指201的取向的變化映 射到虛擬環境中虛擬對象(即劍)120的取向的變化,所述虛擬對象(即劍) 120的取向的變化由顯示器103中虛擬對象120的顯示中的變化代表。對用戶手指201的位置和取向的變化都可以被映射到虛擬環境中劍120 的位置和取向。例如,用戶可以向著顯示器傾斜或者轉動其手指201以便通 過以對應於用戶的手指201的移動的方式(例如以對應於向著顯示器傾^f或 者轉動用戶的手指201的方式)傾斜或者轉動劍120,使劍120在虛擬環境 中沿進入顯示器的方向砍。用戶也可以把其手指201指向顯示器,並在把其 手指201指向顯示器的同時向著顯示器移動其手指201。這種移動可以使劍 120沿著進入顯示器中的方向刺。在某些例子中,深度感測相機(例如立體 相機或者飛行時間(time-of-flight)相機)可被用來檢測用戶的手指201距相 才幾的if巨離。
應用程式(即格鬥遊戲)把虛擬環境(例如虛擬體)內的虛擬對象120 的位置和取向與虛擬環境內的其他虛擬對象進行比較,以控制遊戲進行。基 於所述比較,應用程式(即格鬥遊戲)確定虛擬對象120是否與虛擬目標對 象(例如虛擬人物、另一個虛擬武器、目標等)相交(intersect )。虛擬目標 對象也可以^皮表現在顯示器上。在顯示器上顯示虛擬目標對象允許用戶向著 或向虛擬目標對象移動其手指201,以^使虛擬對象120在虛擬環境中以對應 的方式移動,並因而與虛擬目標對象相交。把用戶的手指201的位置和取向 映射到虛擬對象120的位置和取向允許用戶使用其手指201控制格鬥遊戲。
參考圖2,手持設備101包括相機102和為應用程式提供視覺顯示的顯 示器103 (例如LCD屏幕)。手持設備101還可以包括按鈕104或者小鍵盤 105。內部的處理器被配置成從相機102、按鈕104和/或小鍵盤105接受輸入, 並基於所述輸入執行功能或者操作,並在顯示器103上表現圖像。
相交102是捕獲圖像的設備。例如,相機102可以是數位相機、數碼攝 像機,或者任何其他類型的捕獲圖像的設備。設備101可以包括一個或更多 相機。相機102可以捕獲與應用程式進行交互的物理對象的圖像。例如,相 機102可以捕獲在相機102的視場內與應用程式物理地進行交互的用戶的手 指或者指尖的圖#>。
相機102還可以包括照明手指201的發射器(emitter ),所以相機可以在 低環境光中檢測手指。發射器可以產生紅外光,並且相機102可以對紅外光 敏感。或者,發射器可以產生可見光(例如白光),並且相才幾102可以對可見 光敏感。代替發射器,顯示屏幕103可以發射光以便可以在低環境光中檢測 手指201。相才幾102也可以是深度感測相才幾(depth sensing camera )。例如,相才幾102 可以是包括多個傳感器的立體相機,以便從不同的視點獲取手指201的圖像。 相機102能夠通過比較每個視點的圖像來感測深度,或者,該設備可以通過 在每個視點中檢測手指201並比較手指位置來計算深度。在另一個例子中, 相機102可以是飛行時間相機,其包括發射光脈衝的發射器和能夠測量光脈 沖被感測到的時間的傳感器。飛行時間相機能夠通過比較光脈衝被發射的時 間和被感測的時間、從而測量光所佔路徑的長度來感測深度。
顯示器103向用戶表現可以包括文本或者圖像的視覺顯示。視覺顯示可 以指示關於設備101的狀態的信息,或者為諸如遊戲的應用程式或者其他在 設備101上執行的應用程式提供視覺界面(visual interface )。顯示器103也可 以顯示圖形、圖像或者文本,其包含用於所描述的實施方式中的軟體應用程 序以及操作設備101所需的作業系統程序的用戶界面。
按鈕104是用戶可以用來向設備101提供輸入命令的輸入控制按鈕。按 鈕104可以對應於基於在顯示器103上表現的界面改變或者不改變的特定功 能。按鈕104可用來激活使用戶能夠基於在由相機102拍攝的圖像中捕獲的 用戶手指的移動向設備101提供輸入的輸入控制程序。例如,用戶手指的移 動可以在按鈕104被按下時被映射到用戶輸入,而在按鈕104未被按下時可 以被忽略。使用按鈕104來控制用戶輸入程序的激活可以防止用戶手指的偶 然移動(例如當用戶從其口袋或者包中取出設備101時)被映射到用戶輸入。 按鈕104的激活也可以控制相機102捕獲圖像,並控制處理器執行在把用戶 手指的移動映射到用戶輸入時使用的其他過程。
設備101的用戶使用小鍵盤105輸入命令和數據來操作和控制作業系統 程序以及應用程式。小4走盤105包括用戶可以激活以向設備101提供輸入的 一組一個或更多按鈕或者壓力激活的開關。小鍵盤105可以使用戶能夠把文 本數據和用戶命令輸入設備101中。
處理器(未示出)可以從按鈕104和小4建盤105接受輸入,並可以分析 由相機102捕獲的圖像以便把用戶手指的移動映射到用戶輸入命令。處理器 可以基於用戶輸入執行功能或者操作,並且可以在適當時響應於用戶輸入在 顯示器103上表現顯示。處理器可以執行在手持設備101上運行的應用程式 和作業系統程序。手持設備101可以包括多個處理器(或者其他控制電路), 並且可以包括存儲應用程式、作業系統、用戶輸入程序以及由應用程式、作業系統和用戶輸入程序使用的數據的存儲器(或者其他計算機可讀存儲介 質)。
儘管在圖2中設備101被示出為行動裝置,但是在進一步的方面中,設 備101可以包括個人計算機(PC)或者遊戲系統、膝上型電腦、手持或平板 計算機、個人數據助理("PDA")或者例如計算機4建盤或者遙控器的其他類 型的嵌入式系統的部件。設備IOI也可以是可攜式音樂播放器、尋呼機或者 其他的通信設備,或者用於遊戲、通信和/或數據組織的手持或可攜式電子設 備。
參考圖3A,在一個一般實施方式中,手持設備101包括面朝著觀察手持 設備IOI的顯示器的用戶的相機102。在這個實施方式中,用戶將其手指201 保持在手持設備101上方,在相機102前面較短的距離,以便向手持設備101 提供用戶輸入。相機102可以被定位成使得相機的視場覆蓋顯示器前面的區 域。用戶也使用其手指202來操縱按鈕104。
參考圖3B,在另一個一般實施方式中,手持設備IOI包括從觀察手持設 備101的顯示器的用戶轉開的相機102。在這個實施方式中,用戶將其手指 201保持在手持設備101下面,在相機102後面較短的距離,以便向手持設 備101提供用戶輸入。如圖所示,相機102的暴露部分(exposed portion)在 手持設備101的後側,並且不被看到。用戶也使用其手指202來操縱按鈕104。 儘管圖3A和圖3B示出了兩個示範性相機結構,但是在其他的實施方式中, 相機也可以被設置在手持設備的任何表面或者側面上。
在圖3A和圖3B中所示的實施方式中,用戶通過在相機102成像的區域 內移動手指201來與手持設備101進行交互。此外,用戶可以通過使用拇指 202或者另一個手指來按按鈕104或者小鍵盤105的按鍵來與手持設備101 進行交互。
可以以各種方式握持和/或操作設備。例如,用戶可以用第一隻手握持設 備,同時使用第二隻手的手指來指點。在另一個例子中,用戶可以用用來握 持設備的同一隻手的手指來指點。在又一個例子中,設備可以是靜態的(例 如擱在桌子上),並且用戶可以用任一手指指點。
圖4示出了向設備^是供用戶輸入的用戶手指201的位置的例子。例如, 用戶保持手指201以使指尖401處於相機的視場402內。用戶的指尖401可 以是距相機102二到十釐米的距離(儘管也可以使用更小或者更大的距離)。
14相機102可以是通常用於拍攝照片或者視頻的類型或者結構,並且如果手指 201是離焦的(out of focus),其仍可用來提供用戶輸入。具體來說,如下面 更全面地描述的那樣,處理器分析相機圖像以便分割手指201的圖像。處理 器在分割相機圖像之後計算指尖401的取向和位置。
圖5是示出把檢測到的手指位置和/或取向映射到控制輸入並基於控制輸 入控制應用程式的過程500的流程圖。為了方便,執行所述過程時引用了針 對圖2到圖4描述的具體部件。但是,類似的方法學可以應用在其他實施方 式中,其中,使用不同的部件來限定系統的結構,或者,其中功能被在圖2 到圖4所示的部件間不同地分布。
設備101的處理器在與電子設備進行交互的用戶的手的圖像中檢測用戶 的手的手指的位置和/或取向(510)。例如,處理器205可以處理或者分析一 個或更多訪問的圖像,以便在所訪問的圖像中檢測用戶的手指。在這個例子 中,處理器可以通過把所訪問的圖像中的特徵與圖像中的手指的典型特徵(例 如手指的解剖模型)進行比較來檢測手指,或者,可以通過檢測所訪問的圖 像中的運動來檢測手指。所述處理器也可以基於所訪問圖像的皮膚顏色分析 來檢測手指,或者,可以通過把包括一個或更多手指的當前圖像與背景模型 進行比較以檢測在當前圖像和背景模型之間的差別來檢測手指。處理器205 可以使用任何類型的技術在單個圖像內或者多個圖像的集合內檢測手指。
在一個或更多圖像中檢測手指以後,處理器分析所述一個或更多圖像的 一部分以確定所檢測的手指的位置和/或取向。處理器可以基於在檢測到手指 的相才幾的視場內的區域來確定手指的位置,並且處理器可以基於相機的視場 內的手指的角度來確定手指的取向。處理器可以在二維或者三維中確定手指 的位置。當在三維中確定手指的位置時,處理器可以基於手指的尺寸估計手
息的圖像。類似地,處理器可以在二維空間或者三維空間中確定手指的取向。 在檢測手指的位置和取向時,處理器可以計算代表在三維空間中所檢測的手 指的位置和取向的向量。
處理器把所檢測的位置和/或取向映射到控制輸入(520)。處理器可以基 於在檢測位置和/或取向時表現的顯示,把所檢測的手指的位置和/或取向映射 到控制輸入。例如,處理器可以把手指的位置和/或取向與在所顯示的用戶界 面中表現的物件的位置和/或取向進行比較。基於所述比較,處理器可以把手指的所檢測的位置和/或取向映射到和所顯示的界面控制(例如所顯示的對應 於手指的位置和/或取向的界面控制)相關聯的特定命令或操作。
處理器也可以把所檢測的位置和/或取向映射到在用戶界面中顯示的對 象的位置和/或取向。例如,處理器可以:fc所;險測的位置和/或取向映射到在用 戶界面中顯示的光標(例如滑鼠光標)的位置和/或取向。這樣,用戶的手指 的移動可以被映射到光標在用戶界面中的移動,使用戶能夠使用光標控制應 用程序。
處理器也可以4巴所斥全測的位置和/或取向映射到虛擬環境中的虛擬對象 的位置和/或取向。例如,如上面針對圖l所述,處理器可以^巴所4企測的位置 和/或取向映射到虛擬環境中的虛擬對象(例如格鬥遊戲中的武器),以使虛 擬環境中的虛擬對象的位置和/或取向對應於所檢測的位置和/或取向。
處理器還可以基於由所檢測的位置和/或取向代表的手勢(gesture ),把所 檢測的位置和/或取向映射到控制輸入。處理器可以分析所檢測的手指的移動 (例如改變位置和/或取向),以確定用戶是否做出了與控制輸入相關的手勢。 例如,處理器可以把所檢測的手指的移動與一組認識的(recognized)手勢進 行比較,基於所述比較檢測所認識的手勢的做出,並把移動(例如手指位置 和/或取向)映射到和所認識的手勢相關聯的控制輸入。在一個例子中,用戶 可以在相機前面按照字母"Z"的形狀移動其手指來提供將設備101關閉或者 使設備101進入休眠模式的輸入。
處理器基於控制輸入控制應用程式(530)。例如,處理器可以執行對應 於控制輸入的應用程式中的操作或者命令。處理器可以基於控制輸入選擇所 顯示的界面控制,或者,可以基於控制輸入控制所顯示的對象(例如,光標 或者虛擬對象)。控制輸入可以和數據處理應用程式、遊戲、才喿作系統、J 某體 應用程式、設備控制應用程式,或者任何其他類型的應用程式中的命令或者 操作相關。
圖6是示出利用相機來檢測用戶的指尖的位置和/或取向作為用於提供用 戶輸入的方法的過程600的流程圖。如上針對標號510所描述的,過程600 可以用於基於圖<14企測手指的位置和/或取向。為了方便,執行所述過程時引 用了針對圖2到圖4描述的具體部件。但是,類似的方法學可以應用在其他 實施方式中,其中,使用不同的部件來限定系統的結構,或者,其中功能被 在圖2到圖4所示的部件間不同地分布。
16手持設備101的處理器從相機102獲取相機圖像(610),並對相機圖像 進行邊緣處理(620),以檢測手指的輪廓。使用該輪廓,處理器分割相機圖 像(630)以便識別手指。處理器基於所識別的手指計算指示手指的位置和/ 或取向的信息(640)。
在某些實施方式中,設備(例如相機102)捕獲彩色格式的圖像,在所 述彩色格式中,彩色通道(color channels )被打包(packed)(例如,16比特 字包含5比特紅色、6比特綠色和5比特藍色)。在一個示範性實施方式中, 獲取相機圖像(610)包括把相機圖像轉換為對於後續處理更為有效和方便的 彩色格式。例如,處理器可以把彩色格式轉換為8比特灰階(grayscale)或 者24比特RGB彩色。
在其他的實施方式中,由於手指接近相機,手指出現模糊,因此,圖像 中的高頻成分可能不歸因於手指。在這種情況下,獲取相機圖像(610)還包 括向圖像施加低通濾波器。施加低通濾波器可以去除比歸因於手指的頻率成 分更高的頻率成分,並且可以減小副邊糹彖(ancillary edges)的大小和信號噪 聲的影響。
在進一步的實施方式中,設備(例如相機102)以比所描述的過程要求 的更高的解析度捕獲圖像。在這種情況下,獲取相機圖像(610)可以包括抽 取(decimating)圖像。抽取的方法可以包括合併(binning),藉此,被抽取 的像素值被作為區域內多個像素值的平均來計算。合併過程可以減小信號噪 聲的影響,因為在多個像素的區域內平均噪聲成分傾向於具有比該區域內單 個像素的噪聲成分更低的大小。可以使用子採樣或者其他的抽取方法。
邊緣檢測過程(620 )檢測手指周圍的輪廓。邊緣檢測過程計算每一個像 素處圖像密度的梯度。處理器可以在邊緣檢測過程中使用索貝爾(Sobel)操 作。索貝爾操作把一對內核與原始圖像巻積來確定梯度的水平和垂直分量。 下面在等式1A和1B中示出了這些內核計算formula see original document page 17
(1A)
formula see original document page 17
(1B)在等式1A和IB中,A是相機圖像,並且Gx和Gy是水平和垂直梯度 分量。水平和垂直分量被組合。組合結果計算為平方分量的總和的平方根, 在下面等式1C中示出
可以使用更為有效的近似。使用近似可以使通常在手持設備上採用的處 理器能夠執行必要的計算。在近似中,組合結果計算為水平和垂直分量的絕
對值的總和,在下面等式ID中示出
G = x|Gx|+ Z>x|G^| (ID)
此外,水平和垂直分量可以和預先定義的標量a和b相乘。標量a可以 大於或不大於標量b。在某些實施方式中,標量a可以大於標量b,所以系統 可以對手指的側面比對皮膚的褶皺更加敏感。可以使用其他的邊緣檢測方法 替代索貝爾操作。
作為手指接近相機的結果,手指在相機圖像中可能顯得模糊。形成手指 的輪廓的梯度可能跨越幾個像素的寬度。手指內的特徵,例如皮膚褶皺、角 質層和手指曱也可能形成邊緣,但是模糊可以減小那些梯度的大小。
在分割過程的實施方式中(630),相機圖像可以按具有取向的掃描線處 理。所述取向被選擇成基本垂直於手指,以使每一個掃描線代表手指的一個 才黃截面。取向可以預先確定或者不預先確定。例如,取向可以基於設備101 內的相機102的取向和預期用戶握持設備的通常取向。
圖7A示出了手指201從底部圖像邊緣701進入視場402,所以手指取向 702顯得基本垂直的例子。在這個例子中,掃描線703被定義為像素的水平 行。定義了間隔一個像素的多個平行的掃描線。
圖7B示出了手指201在相機的視場402內顯得成角度的例子。在這個例 子中,掃描線705被定義垂直於手指取向704。定義了大致間隔一個像素的 多個平行的掃描線。
如圖7B中所示,在掃描線取向成角度的例子中,處理器在邊緣處理之前 旋轉相機圖像。旋轉處理旋轉圖像數據,以使掃描線呈現為被旋轉的圖像緩 衝區(image buffer)內水平的像素行。在被旋轉的圖像緩沖區中,掃描線上 的像素可以具有連續的存儲器地址,所以不使用變換。
在如圖7B中所示,在掃描線取向成角度的其他實施方式中,分割過程在 訪問掃描線的像素的梯度結果時使用變換。在像素值被訪問時,可以計算掃描線上的像素的存儲器地址。在計算上,變換可能比或不比旋轉圖像更有效 率。
圖8A示出了沿著掃描線(例如圖7A的掃描線703 )的^f象素的強度的例 子,並且圖8B示出了由邊緣^r索過程計算的梯度大小的例子。在手指的任一 側的邊緣被標記為801和802。作為手指接近相才幾的結果,手指可以在相機 圖像中顯得模糊,這使得邊緣的斜率顯得緩和,如圖8B中所示。
在分割相機圖像時(630),處理器識別局部最大,並在局部最大的點分 割掃描線。局部最大被識別為作為803識別的、以所述局部最大為中心的區 域內的最大值,並且其值比周圍值至少大出被識別為804的閾值。掃描線段 (segments ) 一皮鏈4妄形成圖l史據結構(graph data structure )。如果羊殳重疊,則 段被連結到相鄰掃描線的段。
圖9A示出了連結的段的例子,其中水平線代表段,而垂直線代表連結。 在這個例子中,背景內的特徵也可能形成邊緣。在形成包括被連結的段的圖 數據結構以後,該圖數據結構可以被修剪。在一個例子中,手指周圍的邊緣 是不完整的,從而掃描線段包括手指的一部分和背景的一部分。通過修剪連 接子集的那些段,被相對較少段(相對於例如區域的尺寸)連結的圖的子集 (例如,區域)可以淨皮解除連結(un-linked)。
選擇連結的段的集合作為手指。選擇標準包括尺寸、形狀,以及和預期 手指進入圖像(例如如圖7A中所示,在底部圖像邊緣701 )的相機圖像(或 被轉動的圖像)的邊界的相交。尺寸標準把像素計數和預先定義的範圍進行 比較。形狀標準把寬度和高度的比率和預先定義的範圍進行比較。邊界相交 標準確定連結的段的集合是否包括預先選擇的掃描線的段。
選擇標準可以代表手指的解剖模型,並且手指的解剖模型可以和連結的 段的集合進行比較,以確定連結的段的集合是否是手指。解剖模型可以包括 定義相機圖像中的手指的典型屬性的信息,例如手指的典型尺寸和典型形狀。 由解剖模型定義的手指的典型形狀可以反映從手指根部到手指尖的延伸的手 指的拉長形狀。解剖模型還可以包括皮膚紋理特徵,例如指紋(fingerprints) 預期的褶皺和預期的區域。手指的解剖模型可以代表整個手指,並且包括例 如手指關節、手指和手的連接、手指曱、皮膚顏色等的特徵。
解剖模型還可以涉及以與設備進行交互的用戶保持手指的方式取向的手 指。例如,在用戶通過將其手指保持在平行於設備的顯示器的平面中與設備
19進行交互的實施方式中,解剖模型可以代表在平行於設備的顯示器的平面中 取向的手指的解剖模型。把解剖模型以與設備進行交互的用戶保持手指的方 式來取向可以有助於在與設備進行交互的圖像中檢測手指。
在某些實施方式中,可以使用具有變化的特性的手指的多個解剖模型。 例如,不同尺寸的解剖模型(例如成年人和兒童模型)或者不同性別模型(例 如男性和女性模型)可被用來確定連結的段的集合是否是手指。具體來說, 多個解剖模型中的每一個均可以和連結的段的集合進行比較,直到找到匹配 為止,或者所有的模型已經被使用,並且確定連結的段的集合不是手指為止。 使用多個解剖模型可以實現更為大量用戶的手指的檢測。
在與設備進行交互時,用戶可以保持其手指處於相對於設備不同的取向。 如果與設備進行交互的用戶手指的取向不和解剖模型相匹配,則可能不能正 確地檢測用戶的手指。因此,具有變化的取向的手指的解剖模型可被用來幫 助在較寬的取向範圍上檢測手指。把連結的段的集合與具有變化的取向的解 剖模型進行比較也可以用於確定用戶的手指的取向,所述取向可以被映射到 控制輸入。
在某些結構中,可以使用手指登記過程把特定手指向特定設備進行登記
(register)。例如,用戶可以向設備提供識別信息並控制設備捕獲用戶手指的 一個或更多圖像。設備可以從所述一個或更多被捕獲的圖像產生對應於用戶 的手指的解剖模型,並把為用戶的手指產生的解剖模型與識別所述用戶的信 息相關聯地存儲。當隨後用戶使用該設備並提供了識別信息(或者以其他方 式被該設備識別)時,該設備使用為用戶的手指產生的解剖模型檢測與該設 備進行交互的用戶手指的位置和/或取向。使用專為特定用戶的手指產生的解 剖模型可以有助於檢測該用戶的手指。
圖9B示出了被識別為手指的連結的段的集合的例子。在手指輪廓周圍的 所有位置可能不都檢測到邊緣。例如,在901所指示的手指的輪廓的位置不 包括檢測到的邊緣。結果,在902識別的段可以被修剪(例如,可以去除由 虛線指示的部分)。在手指內檢測到邊緣。例如,在903識別的邊緣是由指關 節處的皮膚褶皺導致的,而在904識別的邊緣是由手指甲或者角質層導致的。 被連結的段的路徑繞過這些特徵。
處理器從所選擇的連結的段的集合計算手指的位置和/或取向信息。選擇 靠近集合末端的段(例如在圖9B中由905指示的段)作為代表指尖的子集。選擇靠近集合末端的段(例如在圖9B中由906指示的段)作為代表手指根部 的子集的一部分。代表指尖或者手指根部的段的子集包括了在最遠段的預先 確定數量的掃描線內的段。
圖9C示出了代表手指的一部分的子集的例子。選擇靠近集合末端的段的 子集來代表指尖。例如,子集907代表指尖。靠近集合末端的段被選作代表 手指根部的子集的一部分。例如,子集908代表手指的根部。
處理器把指尖位置909計算為被識別的指尖部分(例如子集)907的質 心。可以使用浮點精度或者浮點的定點模擬來計算質心。處理器把根部位置 910計算為被識別的手指才艮部部分(例如子集)卯8的質心。可以使用浮點精 度或者浮點的定點模擬來計算質心。浮點精度或者浮點的定點模擬允許以比 相機圖像更高的解析度(或者,在圖像被抽取的情況下,比被抽取的相機圖 像更高的解析度)計算/估計質心。因此,使用浮點精度或者浮點的定點模擬 可以通過允許邊緣過程620和分割過程630處理較低解析度圖像來減小處理 功4毛要求。處理功率要求的減小可適於典型的手持設備的處理器能力。
處理器把手指取向911計算為從根部位置910到指尖位置909形成的向 量。在另一個實施方式中,處理器計算手指的矩(moments)(例如被修剪的 所選擇連結段的集合)以確定手指取向。作為選擇,可以計算額外的特性, 例如手指的平均寬度。
參考圖9D,靠近指尖和手指根部,垂直於手指取向911測量手指的寬度。 從指尖位置和根部位置之間的手指取向向量上的點測量指尖寬度913。例如, 在位於距指尖預先確定的距離的點912處測量指尖寬度913。選擇預先確定 的距離以避免指尖的彎曲並避免手指的指曱部分。避免手指的指曱部分可能 是有益的,因為對手指的那個部分的分割可能不那麼準確。從指尖位置和根 部位置之間的手指取向向量的點測量手指根部寬度915。例如,在位於距圖 像底部預先確定的距離的點914處(例如預先確定的掃描線)測量手指根部 寬度915。
作為選擇,可以使用手指寬度測量估計三維位置和取向。例如,指尖寬 度913和手指根部寬度915可以和手指的解剖模型的對應寬度進行比較以估 計手指的深度尺寸(例如,距相機的距離)。指尖寬度913依賴於指尖距相機 的距離。測量的指尖寬度可以被反向映射到距離。例如,大量值的指尖寬度 被映射到較短距離,並且小量值的指尖寬度被映射到較遠距離。所計算的距離被包括作為指尖位置坐標的分量。同樣地,手指根部寬度915被映射到手
指根部距離,並被包括在手指根部位置坐標中。手指取向被計算為從手指根 部位置到指尖位置形成的向量,包括被映射的距相機的指尖距離和被映射的 距相機的手指根部距離坐標分量。所描述的分割過程可以被優化,以便在計 算上有效率,並且可適於典型的手持設備的處理器能力。
在分割(630 )的另一個實施方式中,使用分水嶺變換(Watershed transformation)處理相機圖像。邊緣(例如梯度大小)被解析以識別局部最 小。針對每一個局部最小定義一個區域。每一個區域被擴展,以包括具有小 於或等於一個值的大小的相連接的像素。針對增加的值重複這個過程,直到 區域集合被擴展成包括圖像的所有像素。區域可以合併以形成更大的區域。 基於和上面描述的類似的標準(例如尺寸、形狀,以及在預期手指進入圖像 的情況下與相機圖像的邊界的相交)選擇區域作為手指。和上面描述的類似, 從所選擇的區域計算手指的位置和取向信息。
可以應用分水嶺變換的各種實施方式。所選擇的分水嶺變換的實施方式 可以依賴於設備的處理能力。例如,分水嶺變換的計算較不密集的實施方式 可用於具有有限的處理能力的設備。此外,獲取圖像可以包括抽取圖像(如 上所述)以便減小分水嶺變換的處理要求。
其他的方法可用於處理相機圖像。例如,可以使用Condensation或"條 件密度傳播,,(Conditional Density Propagation)過程。例如,可以利用已知的 手指分割數據初始化Condensation過程。此後,當手指移動時,Condensation 過程預測連續的視頻幀或者相機圖像中的手指分割。Condensation過程的每 一次迭代均執行選擇、預測和測量。選擇使用參數化採樣產生用於評估的潛 在狀態集合。預測使用動態模型估計目標的狀態如何變化。測量把預測的狀 態和實際像素數據進行比較。Condensation過程在追蹤混亂背景中的目標時 特別穩健,並且可能對手持設備有用,因為每視頻幀迭代的數量和每一次迭 代中採樣的像素的數量可以根據手指設備的處理器能力調整。卡爾曼濾波 (Kalman Filtering)是可用於處理相機圖像的另 一個過程。
指尖位置坐標空間被變換成對應於顯示器103以便在用戶的手指移動和 顯示器103之間提供直觀的映射。在相機朝著用戶的實施方式中,如圖3A 所示,變換包括鏡像變換。在這個實施方式中,相機從後側觀察手指,並且 用戶從前側觀察手指和顯示器,所以把坐標系統鏡像允許相機對手指的觀察對應於用戶對手指和顯示器的觀察。在掃描線取向成角度的實施方式中,如
圖7B中所示,變換包括旋轉與掃描線取向的角度相反的角度。在相機102 的取向和顯示器103的取向不同的實施方式中,變換校正了取向上的差別。
參考10A,在相機圖像1002內定義了圖像區域1001。處理器可以定義 圖像區域1001,並在基於所述圖#^企測手指的位置和/或取向時處理圖像區域 1001,如上面針對數字510所述。
在指尖位置坐標空間變換包括旋轉的實施方式中,圖像區域1001被相對 於相機圖像1002旋轉。圖像區域1001被定義為使得指尖位置1007可以移動 到圖像區域1001內的所有位置,包括區域的邊界。例如,如距離1003、 1004、 1005和1006所指示,距相機圖像1002的邊界的最小距離是預期的指尖寬度 的一半。這個例子導致了指尖位置1007可以移動到圖像區域1001內的所有 位置的圖像區域1001,因為指尖位置在指尖的中心中,並且指尖位置和指尖 邊緣之間的指尖的部分大約是指尖寬度的一半。此外,在手指的根部,選擇 從相機圖像1002的邊界到圖像區域1001的距離1006以滿足手指選擇標準。
圖10B示出了手指定位使得指尖位置1008在圖像區域1001外部的例子。 在這個例子中,指尖位置1008被映射到圖像區域1001的邊界上的最近位置 1009。
圖11A示出了把圖像區域1001映射到顯示區域1101的例子,顯示區域 1101是顯示器103的一部分。把圖像區域1001映射到顯示區域1101可用於 把所檢測的位置和/或取向映射到控制輸入,如上面針對數字520所述。顯示 區域1101可以包括整個顯示器103或者顯示器103的一部分。例如,顯示區 域1101可以包括顯示器103的活動區域,狀態條除外。相對於圖像區域1001 的指尖位置1007被映射到相對於顯示區域1101的指示符位置1102。
圖IIB示出了指示符位置1102直接和手指位置相關的例子。對於在平行 於顯示器的平面上的手指位置,手指位置和指示符位置之間存在一對一相關。 手指201的移動1103 ;陂映射到指示符位置1102的類似移動1104。例如,如 果用戶把手指放在第一指尖位置,則導致第一指示符位置。如果用戶把其手 指移動到第二指尖位置,則導致第二指示符位置。在這個例子中,如果用戶 移動其手指所以其返回第一指尖位置,則指示符也將返回第一指示符位置。
用戶可發現這比控制杆更直觀。例如,控制杆向指示符位置施加速度,以使 指示符位置以間接方式和控制杆的狀態相關。
23在另一個實施方式中,圖像區域是三維區域,並且指尖位置包括代表所 計算的距相機的距離的分量。例如,如上所述,使用手指的寬度測量計算代 表所計算的距相機的距離的分量。定義三維圖像區域以使指尖位置能夠移動 到所定義空間內的所有位置。
在一個例子中,指尖靠近相機,並且相機具有一個有限的範圍,在該範 圍中,相機在平行於顯示器的平面內對指尖移動成像(例如小的移動可以導 致指尖跑到相機的視場外)。在這個例子中,區域邊界被定義成包括距相機的 一系列距離,其中,相機的視場不限制相機對閾值以下的指尖成像的區域。
三維圖像區域被映射到三維顯示區域。三維顯示區域是虛擬體的一部分, 並被使用三維計算機圖形表現技術表現到顯示器103。
在某些結構中,相對於三維圖像區域的指尖位置被映射到相對於三維虛 擬體的指示符位置。指示符位置直接和手指的位置相關。在手指位置和指示 符位置之間存在一對一相關。手指的移動被映射到虛擬體內指示符位置的類 似移動。例如,如果用戶把手指放在第一指尖位置,則導致虛擬體中的第一 指示符位置。如果用戶把手指移動到第二指尖位置,則導致虛擬體中的第二 指示符位置。在這個例子中,如果用戶移動手指所以其返回第一指尖位置, 則指示符也將返回虛擬體中的第一指示符位置。第二指示符位置在虛擬體中 的高度、寬度和深度尺寸上可以和第一指示符位置不同。
圖12繪出了在顯示屏103上顯示的應用程式用戶界面的例子。顯示區域 1101被示出,並且在對應於指尖位置的指示符位置1102,顯示光標圖像1202 被作為指示符。顯示圖像顯示屏上對象,包括具有和個人計算機、手持設備 或任何其他類型的電子設備上的那些類似的外觀和功能的圖標1203、滾動條 1204、菜單1205和按鈕(未示出)。基於位置指示符的控制功能和個人計算 機上的滑鼠光標類似。
用戶通過定位其指尖以使指示符位置在屏上對象的界限內,並點擊按鈕 104或者小鍵盤105的按鍵來激活屏上對象。用戶通過定位其指尖以使指示 符位置在屏上對象的界限內,按下並保持按鈕104或者小鍵盤105的按鍵, 移動其指尖以使指示符位置移動,並釋放按鈕104或者小鍵盤105的按鍵來 拖動屏上對象。
在另一個實施方式中,用戶通過定位其指尖以使指示符位置在屏上對象 的界限內並做出手勢來激活屏上對象。所述手勢可以是移動指尖更靠近相機,其中,在小於預先定義的時限的持續時間上,距離減小了大於預先定義的閾 值的量。如上所述,使用指尖寬度計算指尖的距離。使用開始所述手勢時的 指示符位置來確定輸入,因為用戶在做出所述手勢的同時可能非有意地改變 指示符位置。
檢測手勢的過程的實施方式包括把所計算的指尖距離(或者指尖尺寸/寬
度)存儲在緩沖區中。數據被存儲在環形數組(circular array)數據結構中, 藉此新的數據樣本代替了最老的數據樣本。悽t據樣本指尖距離(或者尺寸/寬 度)被與當前指尖距離(或者尺寸/寬度)比較,以確定所述數據樣本指尖距 離(或者尺寸/寬度)是否比當前指尖距離(或者尺寸/寬度)更靠近了超過預 先定義的閾值距離的距離。
在另一個實施方式中,所描述的技術適於使用戶能夠滾過所顯示的列表。 例如,列表包括多個等級。在所述列表是聯繫人列表(例如地址和電話號碼) 的實施方式中,第一等級包括字母表字母的列表,第二等級包括歸檔在字母 下的名字的列表,並且第三等級包括聯繫人的信息。在所述列表是歌曲列表
(例如音樂)的實施方式中,第一等級包括藝術家列表,第二等級包括專輯 列表(例如由藝術家創作的專輯),第三等級包括歌曲列表(例如專輯上包括 的歌曲),並且第四等級包括歌曲。
在列表是時間和日期的列表(例如日曆)的實施方式中,第一等級包括 月的列表,第二等級包括天(例如一月內的天)的列表,第三等級包括時間
(例如一天內的時間),並且第四等級包括在一時間的信息(例如約會)。在 另一個實施方式中,其中所述列表是時間和日期的列表(例如日曆),第一等 級包括星期的列表,第二等級包括天(例如一星期內的天)的列表,第三等 級包括時間(例如一天內的時間),並且第四等級包括在一時間的信息(例如 約會)。
圖像區域1001內的指尖位置1007的水平分量控制對列表的等級的選擇。 圖像區域1001被劃分為對應於等級的許多列。應用程式被配置成根據指尖位 置位於的列顯示信息。用戶通過把其指尖向左或向右移動在等級之間切換。 設備可以顯示動畫或者播放聲音向用戶指示等級的變化。
在等級(level)內,項目的列表被顯示,其中項目指示符按列排列。項 目指示符可以包括文本和/或圖標。圖像區域IOOI內的指尖位置1007被映射 到項目指示符排列的界限,並與項目指示符排列的界限內的項目指示符位置
25比較。在對應於指尖位置的位置處的項目指示符被表現成指示其被選擇。例 如,可以用交替的顏色(突出顯示)表現項目指示符,或者,當項目指示符 對應於指尖位置時,可以用較大尺寸表現該項目指示符。其他的項目指示符 可以移動以便為所述較大尺寸讓出地方。設備也可以播放聲音向用戶指示選 擇的變化。
在某些實施方式中,指尖距相機的距離控制對列表的等級的選擇。預先 定義的距離範圍由許多個等級劃分。應用程式根據對應於指尖距相機的距離 的等級顯示信息。用戶通過移動其指尖更靠近或遠離相機在等級之間切換。 設備也可以顯示動畫或者播放聲音向用戶指示等級的變化。定義三維圖像區 域並且三維圖像區域的距離分量被劃分為層。
在等級內,其中排列了項目指示符的項目列表被顯示。項目指示符可以 按列、行、網格,或者成行成列地,或者任意的布置排列,項目指示符可以
包括文本或者圖標。圖像區域1001內的指尖位置1007被映射到項目指示符
排列的界限,並與項目指示符排列的界限內的項目指示符位置比較。在對應 於指尖位置的位置處的項目指示符被表現以指示其被選擇。例如,可以用交 替的顏色(突出顯示)表現項目指示符,或者,當項目指示符對應於指尖位 置時,可以用較大尺寸表現該項目指示符。其他的項目指示符可以移動以便 為所述較大尺寸讓出地方。設備也可以播放聲音向用戶指示選擇的變化 在某些排列中,用戶可以通過改變用戶手指的取向來改變等級。用戶通
過在平行於顯示器103的平面內旋轉用戶手指來改變等級。用戶可以通過把 其手指定位在平行於顯示器103的平面中並使其手指取向指著朝著九點鐘方 向來選擇第一等級。然後,用戶可以通過旋轉其手指以便指著朝著十二點鐘 方向選擇第二等級,然後通過旋轉其手指以指著朝著三點鐘方向來選"^第三 等級。
此外,在某些例子中,用戶通過沿著進入顯示器103方向改變用戶手指 的取向或者角度。在這些例子中,用戶通過朝著顯示器103旋轉用戶的手指 改變等級。用戶通過保持用戶手指的取向並保持著所述取向改變用戶手指的 位置在特定等級內選^^項目。
在圖像區域被劃分為行和列,或者三維圖像區域被劃分為行、列和層的 實施方式中,可以動態地調整劃分以使包括指尖的劃分被放大。放大包括指 尖的劃分可以減小用戶在試圖切換行或列時非有意地切換層的可能性,或者在試圖切換行時非有意地切換列的可能性。
參考圖13A,在顯示器103上顯示了遊戲。手指201的移動1301被映射 到遊戲內的移動1302。在這個實施方式中,所描述的技術適於使用戶能夠控 制射擊遊戲。例如,指尖位置被映射到瞄準功能。在手指控制的射擊遊戲的 實施方式中,相對於圖像區域的指尖位置被映射到相對於顯示區域的耙位置。
圖13B描繪了包括主視角的手指控制的射擊遊戲的例子。顯示區域1101 被示出,並且瞄準圖像1303 (例如十字瞄準線)在對應於指尖位置的指示符 位置1102被顯示為指示符。靶圖像1304也被顯示。用戶可以移動其手指以 便把瞄準圖像1303定位在靶圖^象1304上。
用戶可以按按鈕104或者小鍵盤105上的按鍵來激活射擊功能。在另一 個實施方式中,用戶可以做出手勢來激活射擊功能。可以如上所述做出並檢 測所述手勢。
手指控制的射擊遊戲可以表現主視角,例如如圖13B中所示。用戶也能 夠改變虛擬環境內的視角。如果用戶移動其手指以使指示符位置1102在顯示 區域1101的左部分中的子區域1305內移動,則視角向左滾動(或者旋轉)。 如果用戶移動其手指以使指示符位置1102在顯示區域1101的右部分中的子 區域1306內移動,則視角向右滾動(或者旋轉)。類似地,如果用戶移動其 手指以使指示符位置1102在顯示區域1101的上部分中的子區域(未示出) 內移動,則遊戲向上滾動(或者旋轉),並且,如果用戶移動其手指以使指示 符位置1102在顯示區域1101的下部分中的子區域(未示出)內移動,則遊 戲向上滾動(或者旋轉)。如果用戶移動其手指以使指尖距相機的距離比預先 定義的閾值更近,則遊戲向前移動(或者放大)。如果用戶移動其手指以使指 尖距相^L的距離比預先定義的閾值更遠,則遊戲向後移動(或者縮小)。
在另一個實施方式中,在具有主視角的手指控制的射擊遊戲中,用戶通 過按按鈕104、小鍵盤105上的按鍵、方向板或者控制杆改變虛擬環境內的 視角。
在又一個實施方式中,在手指控制的射擊遊戲中,手指位置控制虛擬環 境內的視角。在這個實施方式中,瞄準圖像可以是靜態的,或者被自動功能 控制。在一個例子中,速度被計算為圖像區域(或者三維圖像區域)內指尖 位置相對於圖像區域(或者三維圖像區域)內的中心位置的差。在另一個例 子中,速度被計算為圖像區域(或者三維圖像區域)內指尖位置相對於中心在圖像區域(或者三維圖像區域)內的子區域的邊界上的最靠近部分的差,
其中,子區域代表"死區"。速度的水平分量被施加到虛擬環境內的視點(view point),以使虛擬環境的視角被水平地旋轉(或滾動)。速度的垂直分量^皮施 加到虛擬環境內的視點,以使虛擬環境的視角被垂直地旋轉(或者滾動)。速 度的距離分量被施加於虛擬環境內的視點,以使虛擬視點的位置在虛擬環境 中沿著當前前視軌跡(forward looking trajectory )平移(或者縮i文)。
圖13C示出了包括第三人視角的手指控制的射擊遊戲的例子。在這個例 子中,在顯示器103上表現玩家圖像l307。以使武器彈道(weapon trajectory) 1309對準指示符位置1102的取向表現武器圖像1308。當用戶移動其手指時, 武器圖像1308和武器彈道1309跟蹤指示符位置1102。在某些結構中,武器 彈道1309對應於用戶用其手指指著的方向,所以改變用戶手指的取向改變了 武器彈道1309。
在另一個實施方式中,在具有第三人視角的手指控制的射擊遊戲中,用 戶通過按按鈕104、小鍵盤105上的按鍵、方向板或者控制杆移動玩家圖像 1307。手指控制的射擊遊戲可以採用各種形式。靶圖像1304和玩家圖像1307 可以代表例如宇宙飛船、車輛、士兵、異形、怪物、卡通人物、獵人和獵物, 等等。
在另一個實施方式中,提供了用於在圖像上滾動和縮放的用戶輸入技術。 圖像可以包括相片、地圖,或者任何其他類型的圖像。可以顯示地圖,其中, 比例尺確定了被表現的細節的等級。例如,"縮小的"地圖顯示城市的位置, 並且"放大的"地圖顯示各個街道。
縮放圖像(例如改變比例尺)的過程使用手指距相機的距離來控制比例 尺或者圖像的"縮放"。在手持被保持在設備上方的系統的實施方式中,靠近 相機的距離對應於大比例尺(即被放大),而遠離相機的距離對應於小比例尺 (即糹皮縮小)。
在手指被保持在設備下方的系統的實施方式中,如圖3B所示,靠近相機 的距離可以對應於小比例尺(即被縮小),而遠離相機的距離可以對應於大比 例尺(即被放大)。在另一方面,靠近相機的距離可以對應於大比例尺(即被 縮小),而遠離相機的距離可以對應於小比例尺(即被縮小)。用戶可以選擇 優選的配置,並且所述優選的配置可以為用戶應用。
在把手指距相機的距離映射成控制圖像的比例尺或者"縮放"的實施方
28式中,三維圖像區域的距離分量被映射到圖像的尺寸(或者"縮放")範圍。 相對於三維圖像區域的指尖位置的距離分量被映射到相對於圖像的尺寸(或 者"縮放,,)範圍的圖像尺寸(或者"縮放")。
在另一個實施方式中,使用手指位置滾動(或者"搖動")圖像實現滾動
圖像的過程。圖像區域1001內的指尖位置被映射到表現到顯示器103的圖像 的顯示區域位置。移動手指以使表現到顯示器103的圖像的顯示區域移動, 從而滾動或者"搖動"該圖像。
在又一個實施方式中,滾動和縮放圖像的過程把圖像區域1001映射到圖 像內的範圍,其中,圖像內的可滾動範圍依賴於縮放等級。例如,用戶在平 行於顯示器的平面中移動手指以便滾過整個圖像,並且, 一旦期望的圖像部 分被集中在顯示器上,在用戶沿著垂直於顯示器的方向移動手指來"放大"。 一旦"放大",用戶在平行於顯示器的平面中移動手指以便滾過圖像的一部分。 對於小比例尺(即被縮小),可滾動範圍被定義成包括整個圖像,所以通過滾 動圖像,圖像的所有部分都被顯示。對於大比例尺(即被放大),可滾動範圍 被定義成包括一部分圖像,所以圖像被縮放的部分可以被精確地滾動。可滾 動範圍可以和比例尺成線性比例。
在另一個實施方式中,提供了用於在虛擬環境內導航的用戶輸入技術。 虛擬環境可以是遊戲的一部分,包括但不限於上面所討論的遊戲類型。應用 程序或者遊戲使用計算機圖形技術把虛擬環境表現到顯示器。
在虛擬環境內導航允許在虛擬三維空間內移動,並且系統4是供控制在虛 擬三維空間內導航的用戶輸入。例如,速度被計算為圖像區域(或者三維圖 像區域)內指尖位置相對於圖像區域(或者三維圖像區域)內的中心位置的 差。在另一個例子中,速度被計算為圖像區域(或者三維圖像區域)內指尖 位置相對於中心在圖像區域(或者三維圖像區域)內的子區域的邊界上的最 靠近部分的差,其中,子區域代表"死區"。在計算過速度以後,該速度的水 平分量被施加到虛擬環境內的視點,以使虛擬環境的視角被水平地旋轉(或 滾動)。速度的垂直分量被施加到虛擬環境內的視點,以使虛擬環境的視角被 垂直地旋轉(或者滾動)。速度的距離分量被施加於虛擬環境內的視點,以使 虛擬視點的位置在虛擬環境中沿著當前前視軌跡平移(或者縮方文)。
在另 一個實施方式中,提供了用於使用戶能夠定位和旋轉虛擬對象的用 戶輸入技術。在這個實施方式中,應用程式或者遊戲使用計算機圖形技術把
29虛擬環境表現到顯示器。例如,用戶通過在平行於顯示器的平面中移動手指 旋轉虛擬對象。在這個例子中,圖像區域1001被映射到旋轉範圍,並且圖像 區域內的指尖位置被映射到旋轉範圍內的角度。在另一個例子中,用戶通過 沿著垂直於顯示器的方向移動手指"放大"和"縮小"。在這個例子中,指尖 距相機的距離被映射到虛擬對象的比例尺。
在除了上述那些以外的應用程式和遊戲中,可以使用跟蹤手指位置和取 向的方法。此外,所描述的提供用戶輸入的技術可在包括相機或者其他成像 設備的任何設備中使用。
實施方式可以包括例如過程、設備或用於執行過程的設備。例如,實施 方式可以包括一個或更多被配置成執行一個或更多過程的設備。設備可以包 括例如分立或者集成的硬體、固件和軟體。設備可以包括例如計算設備或者 其他的計算或處理設備,特別是假如被編程為執行一個或更多所描述的過程 及其變體。這些計算或處理設備可以包括例如處理器、集成電路、可編程邏 輯器件、個人計算機、個人數字助理、遊戲設備、蜂窩電話、計算器和包含 軟體應用程式的設備。
實施方式也可以具體實施在包括一個或更多計算才幾可讀介質的設備中, 所述計算機可讀介質具有用於實現一個或更多過程的指令。所述計算機可讀 介質可以包括例如存儲設備、存儲器和編碼或者傳送指令的格式化電磁波。 計算機可讀介質還可以包括例如各種非易失或易失存儲器結構,例如硬碟、 快閃記憶體、隨機訪問存儲器、只讀存儲器和緊制盤。指令可以存儲在例如 硬體、固件、軟體和電》茲波中。
因此,計算設備可以代表被編程為執行所描述的實施方式的計算設備的 實施方式,並且存儲設備可以代表存儲用於實現所描述的實施方式的指令的 計算機可讀介質。
已經描述了許多實施方式。儘管如此,將會理解,可以做出各種修改。 因此,其他的實施方式在下列權利要求的範圍內。
權利要求
1.一種計算機實施的方法,包括使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測用戶的手的手指的取向;把所檢測的取向映射到控制輸入;和基於所述控制輸入控制應用程式。
2. 如權利要求l所述的方法,還包括在與所述電子設備進行交互的用 戶的手的圖像中檢測用戶的手的手指的位置,其中,基於所檢測的位置映射 所述控制輸入。
3. 如權利要求2所述的方法,其中所述控制輸入定義了虛擬環境中對應於手指的所檢測的位置和所檢測的 取向的位置和取向;並且基於所述控制輸入控制所述應用程式包括控制所述虛擬環境中的虛擬對象移動到所述虛擬環境中對應於手指 的所檢測的位置和所檢測的取向的位置和取向;和在所述虛擬環境中對應於手指的所檢測的位置和所檢測的取向的位 置和取向表現所述虛擬對象的顯示。
4. 如權利要求l所述的方法,其中,使用手指的解剖模型在與電子設備 進行交互的用戶的手的圖像中檢測用戶的手的手指的取向包括識別對應於 指尖的手指的第一部分,識別對應於手指#~部的手指的第二部分,計算手指 的第一部分和手指的第二部分之間的向量,並基於所述向量確定手指的取向。
5. 如權利要求l所述的方法,其中,使用手指的解剖模型在與電子設備 進行交互的用戶的手的圖像中^r測用戶的手的手指的取向包括獲取手指的圖像,和 對所述圖像進行邊緣處理。
6. 如權利要求5所述的方法,還包括沿著具有基本垂直於手指的取向的 掃描線分割所述圖像。
7. 如權利要求l所述的方法,還包括檢測手指周圍的輪廓。
8. 如權利要求7所述的方法,其中,通過計算所述圖像中圖像密度的梯 度,並識別所述圖像密度的梯度中局部最小和局部最大中的至少一個來檢測手指周圍的輪廓。
9. 如權利要求l所述的方法,其中,使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測用戶的手的手指的取向包括識別所述圖 像的對應於手指皮膚中褶皺的區域,並且當在所述圖像中檢測手指時忽略所 識別的所述圖像的對應於手指皮膚中褶皺的區域。
10. 如權利要求1所述的方法,其中,使用手指的解剖模型在與電子設 備進行交互的用戶的手的圖像中檢測用戶的手的手指的取向包括基於對象 的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交來在所述圖像中 選擇作為手指的對象。
11. 如權利要求1所述的方法,其中,使用解剖模型檢測手指的取向包檢測手指的取向,所述解剖模型是從手指的根部延伸到手指的指尖的手指模 型。
12. —種設備,包括圖像檢測器,被配置成使用手指的解剖模型在與電子設備進行交互的用 戶的手的圖像中檢測用戶的手的手指的取向;和處理器,被配置成把所檢測的取向映射到控制輸入,並基於所述控制輸 入控制應用程式。
13. 如權利要求12所述的設備,其中,所述圖像檢測器被配置在移動電 話、可攜式視頻遊戲系統、可攜式音樂播放器、個人數據助理、遙控器或者 數位相機中。
14. 一種包括電腦程式產品的計算機可讀介質,所述電腦程式產品 包括指令,所述指令當被執行時工作以使計算機執行操作,包括使用手指的解剖模型在與電子設備進行交互的用戶的手的圖像中檢測用 戶的手的手指的取向;把所檢測的取向映射到控制輸入;和 基於所述控制輸入控制應用程式。
15. —種計算^L實施的方法,包括訪問與電子設備進行交互的用戶的手的圖像;基於對象的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交來 在所述圖像中識別作為用戶的手的手指的對象;確定在所述圖像中被識別為用戶的手的手指的對象的位置; 把所檢測的位置^射到控制輸入;和 基於所述控制輸入控制應用程式。
16. 如權利要求15所述的方法,其中,在所述圖像中識別作為用戶的手 的手指的對象包括基於具有對應於手指的解剖模型的拉長形狀的對象,在 所述圖像中識別作為用戶的手的手指的對象。
17. 如權利要求15所述的方法,其中,在所述圖像中識別作為用戶的手 的手指的對象包括基於在平行於所述電子設備的顯示器的平面中取向的手 指的解剖模型,在所述圖像中識別作為用戶的手的手指的對象,所述解剖模 型是從手指的根部延伸到手指的指尖的手指模型。
18. 如;f又利要求15所述的方法,其中把所檢測的位置映射到控制輸入包括把所檢測的位置映射到顯示區域 中對應於手指的所檢測的位置的位置;和基於所述控制輸入控制應用程式包括把所顯示的指示符移動到所述顯 示區域中對應於手指的所檢測的位置的位置。
19. 如權利要求15所述的方法,其中把所檢測的位置映射到控制輸入包括識別在所顯示的用戶界面中對應 於手指的所檢測的位置的位置處的輸入控制,並確定和所識別的輸入控制相 關聯的操作;和基於所述控制輸入控制應用程式包括執行和所識別的輸入控制相關聯 的操作。
20. 如權利要求15所述的方法,其中確定在所述圖像中被識別為用戶的手的手指的對象的位置包括 確定所述圖像中手指的寬度;和基於所確定的寬度,估計手指相對於捕獲所述圖像的相機的深度位 置5和基於所估計的深度位置映射所述控制輸入。
21. 如權利要求15所述的方法,其中,確定在所述圖像中被識別為用戶 的手的手指的對象的位置包括檢測對應於指尖的手指部分,並確定作為所 述對應於指尖的手指部分的質心的位置。
22. 如權利要求15所述的方法,還包括在所述圖像中定義圖像區域,以使所述圖像區域的邊界與所述圖像的邊界分隔開至少所預期的指尖寬度的一 半的距離,其中,在所定義的圖像區域內檢測手指的位置。
23. 如權利要求22所述的方法,其中,當在所述圖像區域外檢測到指尖 時,所述指尖的位置被映射到所述圖像區域的邊界上的位置。
24. —種i殳備,包括相機,被配置成捕獲與電子設備進行交互的用戶的手的圖像; 處理器,被配置成訪問與電子設備進行交互的用戶的手的圖像;基於對象的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相 交,在所述圖像中識別作為用戶的手的手指的對象;確定在所述圖像中被識別為用戶的手的手指的對象的位置;把所檢測的位置映射到控制輸入;和基於所述控制輸入控制應用程式。
25. —種包括電腦程式產品的計算機可讀介質,所述電腦程式產品 包括指令,所述指令當被執行時工作以使計算機執行操作,包括訪問與電子設備進行交互的用戶的手的圖像;基於對象的尺寸、對象的形狀以及該對象是否和所述圖像的邊界相交, 在所述圖像中識別作為用戶的手的手指的對象;確定在所述圖像中被識別為用戶的手的手指的對象的位置; 把所檢測的位置映射到控制輸入;和 基於所述控制輸入控制應用程式。
全文摘要
使用相機來檢測諸如用戶手指的對象的位置和/或取向作為用於提供用戶輸入的方法,例如用於滾過數據、控制光標位置、以及基於用戶手指的位置提供輸入以控制視頻遊戲。可以把輸入提供給手持設備,包括例如,蜂窩電話、視頻遊戲系統、可攜式音樂(MP3)播放器、可攜式視頻播放器、個人數據助理(PDA)、音頻/視頻設備遙控器和消費型數位相機,或者其他類型的設備。
文檔編號G06K9/00GK101689244SQ200880023087
公開日2010年3月31日 申請日期2008年5月2日 優先權日2007年5月4日
發明者埃文·希爾德雷思 申請人:格斯圖爾泰克股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀