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