專利名稱:利用虛擬輸入裝置輸入數(shù)據(jù)的方法和設(shè)備的制作方法
本申請要求于1999年11月4日登記的美國臨時專利申請(序列號60/163445)“Method and Devices for 3D Sensing of Input Commands toElectronic Devices”的優(yōu)選權(quán),其中本申請的申請人是該臨時專利申請的申請人。被轉(zhuǎn)讓給Canasta有限公司(本申請的受讓人)的所述臨時專利申請作為參考包含于此。
另外參考申請人Cyrus Bamji的同時待審的美國專利申請(序列號09/401059,申請日1999年9月22日)“CMOS-COMPATIBLE THREE-DIMENSIONAL IMAGE SENSOR IC”,該專利申請被轉(zhuǎn)讓給和本申請相同的受讓人Canasta有限公司。所述同時待審的美國專利申請也作為參考包含于此。
近年來,計(jì)算機(jī)系統(tǒng)和計(jì)算機(jī)型系統(tǒng)已設(shè)法進(jìn)入了新一代的電子裝置,包括交互式TV、機(jī)頂盒、電子現(xiàn)金記錄器、合成音樂發(fā)生器、包括所謂的個人數(shù)字助手(PDA)的手持式便攜式裝置、和無線電話機(jī)。常規(guī)的輸入方法和裝置并不總是適合或者便于和這樣的系統(tǒng)一起使用。
例如,某些便攜式計(jì)算機(jī)系統(tǒng)已縮小到整個系統(tǒng)可放入用戶的手中或口袋中的程度。為了克服觀看微小顯示器方向的困難,能夠使用可商業(yè)獲得的虛擬顯示附件,所述虛擬顯示附件夾在系統(tǒng)用戶所佩帶的鏡框上。用戶觀察所述附件(它可以是1英寸的VGA顯示器),看到的仿佛是對角測量可能為15英寸的大顯示器。
研究表明鍵盤和/或類似于鼠標(biāo)的輸入裝置可能是效率最高的在配對計(jì)算機(jī)或計(jì)算機(jī)型系統(tǒng)中輸入或編輯數(shù)據(jù)的技術(shù)。不幸的是很難克服與較小尺寸的輸入裝置相關(guān)的問題,因?yàn)槌叽巛^小的輸入裝置會顯著降低輸入數(shù)據(jù)的速度。例如,某些PDA系統(tǒng)具有尺寸約為3英寸×7英寸的鍵盤。雖然通過該鍵盤可把數(shù)據(jù)和命令輸入PDA中,但是和尺寸約為6英寸×12英寸的標(biāo)準(zhǔn)尺寸鍵盤相比,輸入速度降低并且不舒適感增大。其它的PDA系統(tǒng)簡單地取消鍵盤,并提供觸摸屏,用戶可利用輸入筆在觸摸屏上書寫字母數(shù)字字符。隨后PDA內(nèi)的筆跡識別軟件試圖解釋并識別用戶利用輸入筆在觸摸屏上描畫的字母數(shù)字字符。某些PDA可在觸摸屏上顯示鍵盤的圖像,并允許用戶通過利用輸入筆觸及各個按鍵的圖像來輸入數(shù)據(jù)。在其它系統(tǒng)中,用戶和計(jì)算機(jī)系統(tǒng)之間的距離使得不可能方便地使用導(dǎo)線耦接的輸入裝置,例如起居室內(nèi)用戶和機(jī)頂盒之間的距離使得不能使用導(dǎo)線耦接的鼠標(biāo)進(jìn)行瀏覽。
另一種向電子裝置輸入數(shù)據(jù)和命令的方法是識別用戶操作和手勢的各種圖像,所述用戶操作和手勢隨后被解釋并被轉(zhuǎn)換成附隨計(jì)算機(jī)系統(tǒng)的命令。在Korth的美國專利No.5767842,“Method and Device forOptical Input of Commands or Data”中描述了一種這樣的方法。Korth提出使計(jì)算機(jī)系統(tǒng)用戶擊打假想的或者虛擬的鍵盤,例如一張鍵盤大小的具有鍵盤按鍵的模板或印刷略圖的紙張。該模板用于指導(dǎo)用戶的手指擊打虛擬鍵盤按鍵。當(dāng)用戶“擊打”虛擬鍵盤時,聚焦于虛擬鍵盤的常規(guī)TV(二維)視頻照相機(jī)以某種方式允許識別用戶的手指正在觸及的是哪個虛擬按鍵(例如按鍵的印刷略圖)。
但是由于依賴于相對發(fā)光數(shù)據(jù),實(shí)際上依賴于足夠的周圍環(huán)境照明光源,Korth的方法存在固有的不確定性。雖然常規(guī)的二維視頻照相機(jī)的視頻信號輸出呈適于人眼進(jìn)行圖像識別的格式,但是該信號輸出并不適合于所觀看圖像的計(jì)算機(jī)識別。例如,在Korth型應(yīng)用中,為了跟蹤用戶手指的位置,計(jì)算機(jī)可執(zhí)行的程序必須利用視頻照相機(jī)輸出信號中象素的發(fā)光度方面的變化來確定各個手指的輪廓。當(dāng)不能準(zhǔn)確控制背景顏色或者照明時,這種跟蹤及輪廓確定是一項(xiàng)難以完成的任務(wù),并且實(shí)際上可能類似用戶的手指。此外,Korth獲得的視頻的各幀,一般至少為100象素×100象素,只具有一個灰度級或者顏色級代碼(一般稱為RGB)。如同對這種RGB值數(shù)據(jù)的限制一樣,如果周圍環(huán)境照明條件最佳,Korth系統(tǒng)中的微處理器或者信號處理器最多能檢測以背景圖像為背景的手指的輪廓。
伴隨而來的問題和跟蹤用戶手指的潛在不確定性一樣重大。由于傳統(tǒng)的視頻照相機(jī)輸出二維圖像數(shù)據(jù),并且在視頻場景中不提供關(guān)于對象的實(shí)際形狀和距離的確定信息,因此Korth的技術(shù)不可能避免不確定性。實(shí)際上,從Korth視頻照相機(jī)的有利位置以很難檢測沿著照相機(jī)透鏡光軸的擊鍵動作。于是,為了充分捕捉復(fù)雜的擊鍵動作,需要多個具有不同有利位置的照相機(jī)。另外,如
圖1中Korth提議的那樣,難以僅僅獲得用戶雙手上的各個手指的清楚視圖,例如由于右手中指的圖像阻擋的緣故,使得不可能獲得右手食指的圖像等等??傊?,即使在良好的周圍環(huán)境照明和良好的視頻照相機(jī)有利位置的情況下,Korth的方法仍存在許多缺點(diǎn),包括關(guān)于用戶的手指正在觸及虛擬鍵盤的哪一行的不確定性。
在獲得深度信息的嘗試中,通過利用多個二維視頻照相機(jī),每個照相機(jī)從不同的視角瞄準(zhǔn)所關(guān)心的對象,可重復(fù)Korth方法。這種方法聽起來簡單,但是不實(shí)用。當(dāng)采用成倍的照相機(jī)時,安裝多個照相機(jī)既麻煩,費(fèi)用又高。必須相對于所觀察的對象以及相對于彼此精確地校準(zhǔn)每個照相機(jī)。為了獲得足夠的精度,可能不得不在鍵盤的左上方和右上方位置布置立體照相機(jī)。但是即使利用這種結(jié)構(gòu),在至少一個照相機(jī)的視界中,也會由于手指遮住手指而困擾照相機(jī)。此外,根據(jù)各個照相機(jī)的二維圖像信息輸出產(chǎn)生三維信息所需的計(jì)算影響用于處理圖像數(shù)據(jù)的計(jì)算機(jī)系統(tǒng)的處理開銷??梢岳斫猓枚鄠€照相機(jī)會使Korth信號處理需求極為復(fù)雜。最后,很難獲得檢測并識別微小的對象移動,例如忙于擊鍵動作的用戶手指的微小移動所必需的照相機(jī)-對象距離分辨率。
總之,使用Korth方法檢查忙于擊鍵的用戶雙手的基于發(fā)光度的二維視頻圖像,并根據(jù)圖像確定何時哪個手指觸及哪個按鍵(虛擬按鍵或者另外的按鍵)并不現(xiàn)實(shí)。即使當(dāng)利用如Korth提出的計(jì)算機(jī)化圖像模式識別增大所需的二維視頻信息處理時仍然存在這種缺點(diǎn)。另外可看出實(shí)際上Korth的技術(shù)不適合于輕便性。例如,實(shí)際上在所有時候,圖像采集系統(tǒng)和環(huán)境光源都將處于打開狀態(tài),將消耗足夠的工作功率,使有意義的電池工作成為不可能。即使Korth能夠降低數(shù)據(jù)采集的幀速率以節(jié)省一些電力,Korth系統(tǒng)仍然需要足夠的環(huán)境照明光源。
除了電力考慮之外,由于Korth的視頻照相機(jī)(或者可能是照相機(jī))需要位于鍵盤上方的有利位置,因此對于諸如蜂窩電話機(jī)之類的小型配對裝置來說,Korth的二維成像系統(tǒng)無助于輕便性。不論系統(tǒng)正在工作還是被保存處于搬運(yùn)過程中,這種要求都對Korth的系統(tǒng)的實(shí)際尺寸施加了限制。
于是需要一種方法和系統(tǒng),借助所述方法和系統(tǒng),用戶能夠利用不與計(jì)算系統(tǒng)電連接的虛擬鍵盤或者其它虛擬輸入裝置,把數(shù)據(jù)輸入配對計(jì)算系統(tǒng)中。這種方法和系統(tǒng)實(shí)現(xiàn)的數(shù)據(jù)輸入接口模擬應(yīng)在最好不必使用多個圖像獲取裝置的情況下,提供關(guān)于按照什么時間序列,用戶的哪個手指觸及虛擬輸入裝置上的哪個按鍵(或者其它符號)的有意義的三維獲取信息。這種系統(tǒng)最好應(yīng)包括信號處理,從而系統(tǒng)輸出可以由配對計(jì)算系統(tǒng)以掃描模式或者其它格式直接用作輸入。最后,這種系統(tǒng)應(yīng)便于攜帶,并且易于安裝及操作。
發(fā)明內(nèi)容
本發(fā)明提供一種這樣的方法和系統(tǒng)。
本發(fā)明使用戶能夠從手動輸入裝置的被動式虛擬模擬把命令和數(shù)據(jù)(總稱為數(shù)據(jù))輸入配對計(jì)算機(jī)系統(tǒng),所述配對計(jì)算機(jī)系統(tǒng)可以是PDA、無線電話機(jī)、或者適于接收數(shù)字輸入信號的任意電子系統(tǒng)或器具。本發(fā)明包括即使不存在環(huán)境光線也能夠起作用,從而實(shí)時收集和用戶手指在支承或顯示模板的基體上的放置有關(guān)的三維數(shù)據(jù)的三維傳感器成像系統(tǒng),所述模板用于模擬諸如鍵盤、數(shù)字小鍵盤或者數(shù)字化表面之類的輸入裝置。基體最好是被動式的,并且可以是可折疊或者可卷起的包含鍵盤按鍵的印刷圖像的紙張或塑料,或者僅僅是區(qū)分鍵盤按鍵會位于哪些行和哪些列的標(biāo)記線?;w可被定義為位于水平X-Z平面上,在所述X-Z平面上,Z軸確定模板按鍵行,X軸確定模板按鍵列,Y軸表示基體上方的垂直高度。如果需要,代替基體鍵盤,本發(fā)明可包括使用光線把網(wǎng)格或者鍵盤的圖像投射到配對裝置前面的工作面上的投影器。投射的圖案可用作用戶在該表面上“打字”時的指導(dǎo)。投影裝置最好包含在配對裝置內(nèi)或者附著在配對裝置上。
另一方面,也可取消作為打字指導(dǎo)的基體。改為當(dāng)用戶在配對裝置之前的桌面或者其它工作面(可能是桌面)上鍵入字母數(shù)字字符時,使用配對裝置的屏幕來顯示這些字母數(shù)字字符。對于未達(dá)到盲打水平的用戶,當(dāng)用戶“按下”或者“擊打”鍵盤“按鍵”時,本發(fā)明可改為(或者另外)提供表示鍵盤“按鍵”的顯示圖像??稍谠擄@示圖像中以一種顏色突出顯示所察覺的直接位于用戶手指之下的“按鍵”,而以另一種顏色或者相反的顏色突出顯示所察覺的實(shí)際被觸發(fā)的“按鍵”。這種配置許可用戶擊打配對裝置之前的工作面或者擊打虛擬鍵盤。當(dāng)用戶擊打工作面或者虛擬鍵盤時,對應(yīng)的文本最好出現(xiàn)在配對裝置上顯示的文本域中。
從而,各種形式的反饋可用于指導(dǎo)用戶的虛擬鍵入。用戶雙手的哪些手指按照什么時序擊打哪些虛擬按鍵或者虛擬按鍵位置由三維傳感器系統(tǒng)確定。三維傳感器系統(tǒng)最好包括一個信號處理器,所述信號處理器包括中央處理器(CPU)和相關(guān)的只讀存儲器(ROM)和隨機(jī)存取存儲器(RAM)。ROM中保存的是可由信號處理器CPU執(zhí)行,以致三維位置信息被接收并被基本實(shí)時地轉(zhuǎn)換成鍵掃描數(shù)據(jù)或者直接與配對計(jì)算機(jī)系統(tǒng)的裝置輸入兼容的其它形式數(shù)據(jù)的軟件例程。三維傳感器最好發(fā)出特定波長的光線,并且檢測從被掃描對象,例如用戶的雙手的不同表面區(qū)域反射回的能量飛行時間(return energy time-of-flight)。
在打字開始時,用戶將把他或她的手指放在工作面或者虛擬鍵盤(如果存在的話)附近或者之上。在用戶或者其它一些對象進(jìn)入三維傳感器的成像范圍內(nèi)之前,本發(fā)明保持待機(jī)、低能量消耗模式。在待機(jī)模式下,發(fā)射的光學(xué)脈沖的重復(fù)頻率被降低到1-1-脈沖/秒,以便保存工作功率,如果本發(fā)明用電池作電源,這是一項(xiàng)需要考慮的重要事項(xiàng)。這樣,本發(fā)明將發(fā)出相對較少的脈沖,但是仍然能夠獲得圖像數(shù)據(jù),雖然具有粗糙或者較低的Z軸分辨率。就三維數(shù)據(jù)收集的備選方法而論,可使用降低采集幀速率和分辨率以保存能量的方法。但是這樣低的分辨率信息至少足以提醒本發(fā)明注意觀察的成像場內(nèi)對象的存在。當(dāng)對象確實(shí)進(jìn)行觀察的成像場內(nèi)時,管理本發(fā)明的操作的CPU命令進(jìn)入正常的工作模式,其中采用高的脈沖頻率,并且現(xiàn)在系統(tǒng)功能以全功率工作。為了保存工作功率,當(dāng)用戶的手指或者其它潛在相關(guān)對象從觀察的成像場中消失時,本發(fā)明將降低功率,返回待機(jī)功率模式。當(dāng)認(rèn)為相關(guān)對象在超過時間閾值的一段長期時間內(nèi)保持靜止時,最好也產(chǎn)生這種功率降低。
現(xiàn)在假定用戶已把他或她的手指放在虛擬鍵盤的起始行按鍵(例如A、S、D、F、J、K、L、)上(或者如果不存在虛擬鍵盤,放在本發(fā)明與之一起實(shí)踐的配對裝置之前的工作面上)。已處于全功率模式的本發(fā)明現(xiàn)在最好啟動軟鍵校準(zhǔn),其中計(jì)算機(jī)根據(jù)用戶輸入把位置分配給鍵盤按鍵。用戶手指被放置在某些(預(yù)期的)按鍵上,并且根據(jù)手指的確切位置,軟件根據(jù)用戶手指的位置把位置分配給鍵盤上的按鍵。
當(dāng)用戶“擊打”顯示在基體模板上的按鍵時,或者當(dāng)用戶擊打配對裝置之前如果存在真實(shí)鍵盤,則“按鍵”一般所處的工作空間時,三維傳感器系統(tǒng)觀察用戶的手指。傳感器系統(tǒng)以功能上和諸如鍵盤、鼠標(biāo)之類常規(guī)輸入裝置輸出的數(shù)據(jù)無區(qū)別的格式把數(shù)據(jù)輸出給配對計(jì)算機(jī)系統(tǒng)。最好可由信號處理器(CPU)(或者由配對計(jì)算機(jī)系統(tǒng)中的CPU)執(zhí)行的軟件處理輸入的三維信息,并且相對于基體上的鍵盤或者工作面(如果不存在虛擬鍵盤)的圖像,識別三維空間中用戶雙手和手指的位置。
軟件例程最好通過檢查Z軸不連續(xù)性來識別各幀中用戶手指的輪廓。當(dāng)手指“鍵擊”按鍵,或者“鍵擊”如果存在鍵盤(真實(shí)的或者虛擬的)的話,則按鍵應(yīng)在工作面上所處的區(qū)域時,檢測用戶手指和虛擬鍵盤或者工作面之間的物理界面。軟件例程最好檢測以光學(xué)方式獲得的數(shù)據(jù),在連續(xù)幀中確定這樣的界面邊界,從而計(jì)算手指的Y軸速度。(在其它實(shí)施例中,可改為使用諸如超聲波之類的低頻能量)。當(dāng)這樣的垂直手指動作停止時,或者取決于所述例程,當(dāng)手指觸及基體時,根據(jù)所考慮的手指的(Z,X)坐標(biāo)確定正被按下的虛擬按鍵。隨后可發(fā)出恰當(dāng)?shù)腒EYDOWN事件命令。本發(fā)明對所有手指(包括拇指)進(jìn)行類似的分析,以便精確地確定觸及(例如按下)不同按鍵的順序。按照這種方式,軟件向配對計(jì)算機(jī)系統(tǒng)發(fā)出適當(dāng)?shù)腒EYUP、KEYDOWN,以及掃描代碼數(shù)據(jù)命令。
軟件例程最好識別并糾正打字時用戶雙手的偏移,例如虛擬鍵盤上的偏移。軟件例程還提供一定的滯后作用,以減少起因于用戶把手指擱在虛擬按鍵上,并沒有實(shí)際“按下”該按鍵的錯誤。通過在打字應(yīng)用程序中觀察測量誤差,進(jìn)一步減少測量誤差,跟蹤Z值所需的幀速率小于跟蹤X值和Y值所需的幀速率。即,Z方向的手指動作一般慢于其它軸方向的手指動作。本發(fā)明還在不同競爭手指之中區(qū)分擊打在鍵盤或者其它工作面上的時間。最好通過在足夠高的幀速率下觀察X軸、Y軸數(shù)據(jù)值來實(shí)現(xiàn)這種區(qū)分,因?yàn)橐獏^(qū)分的正是Y維計(jì)時。不必在不同手指之間區(qū)別Z軸觀察結(jié)果,從而幀速率可由單個手指沿Z維方向在不同按鍵之間移動的速度所控制。本發(fā)明提供的軟件例程最好求所獲得的Z軸數(shù)據(jù)在幾幀內(nèi)的平均值,以減少噪聲或抖動。雖然相對于X值和Y值的有效幀速率來說,Z值的有效幀速率被降低,但是Z值的精度被提高,并且仍然能夠獲得有意義的數(shù)據(jù)采集幀速率。
軟件例程允許用戶簡單地通過“鍵入”某些按鍵組合,可能是同時按下Control鍵和Shift鍵,把配對計(jì)算機(jī)系統(tǒng)從字母數(shù)字?jǐn)?shù)據(jù)輸入模式切換到圖形模式。在圖形模式下,模板模擬數(shù)字化轉(zhuǎn)換器表格,并且當(dāng)用戶在模板內(nèi)拖拉他或她的手指時,被觸及點(diǎn)的(Z,X)軌跡可被用于繪制線條、簽名、或者進(jìn)入配對計(jì)算機(jī)系統(tǒng)的其它圖形。
與配對計(jì)算機(jī)系統(tǒng)相關(guān)的顯示器最好可基本實(shí)時地顯示用戶輸入的字母數(shù)字或者其它數(shù)據(jù)。除了描繪鍵盤按鍵和手指的圖像之外,配對計(jì)算機(jī)系統(tǒng)的顯示器還可提供塊光標(biāo),所述塊光標(biāo)顯示將要被輸入的字母數(shù)字字符。通過在一些或者所有按鍵下形成彈性區(qū),從而當(dāng)某一“按鍵”被用戶手指觸及時提供觸覺反饋,實(shí)現(xiàn)另一形式的輸入反饋。如果采用適當(dāng)?shù)呐鋵ρb置,則甚至可采用配對裝置大聲地逐個字母地說明“被鍵擊”按鍵的名稱,例如當(dāng)用戶鍵入單詞“cat”時,清晰地讀出字母“c”-“a”-“t”。通過當(dāng)檢測到按下虛擬按鍵的用戶手指時,使配對裝置發(fā)出電子擊鍵聲音,提供一種較簡單形式的聲音反饋。
圖1A根據(jù)本發(fā)明描述和被動式基體鍵盤模板一起使用的三維傳感器系統(tǒng);圖1B根據(jù)本發(fā)明描述在不存在基體鍵盤模板的情況下使用的三維傳感器系統(tǒng);圖1C根據(jù)本發(fā)明描述顯示觸及虛擬按鍵的用戶手指的虛擬鍵盤的配對裝置顯示器;圖1D根據(jù)本發(fā)明描述圖1C的顯示器,還表示了用戶在虛擬鍵盤上輸入的文本;圖2A根據(jù)本發(fā)明描述處于部分折疊狀態(tài)下的被動式基體;圖2B根據(jù)本發(fā)明描述處于部分卷起狀態(tài)的支承不同字符集的被動式基體;圖3是本發(fā)明可與之一起實(shí)踐的三維信號處理和傳感器系統(tǒng)的例證實(shí)現(xiàn)方框圖;圖4是具有可用本發(fā)明可與之一起實(shí)踐的三維傳感器系統(tǒng)中的相關(guān)光子脈沖檢測器和高速計(jì)數(shù)器的例證單一象素檢測器的方框圖;圖5根據(jù)本發(fā)明描述用戶手指的輪廓識別;圖6根據(jù)本發(fā)明描述在識別按下的虛擬按鍵的過程中交錯按鍵位置的應(yīng)用;圖7A-7O根據(jù)本發(fā)明描述根據(jù)光學(xué)獲得的三維數(shù)據(jù)產(chǎn)生的,供識別用戶手指位置之用的群集矩陣。
如果需要,模板70可以僅僅包含區(qū)分存在位置的行線和列線。具有印刷或以其它方式顯示于其上的模板70的基體50是虛擬輸入裝置,在該所示的例子中,虛擬輸入裝置模擬鍵盤。這樣,這里可把基體50和/或模板70稱為輸入數(shù)字?jǐn)?shù)據(jù)和/或命令的虛擬鍵盤或虛擬裝置。這種虛擬輸入裝置的優(yōu)點(diǎn)在于它可印刷在紙張上或者柔軟的塑料上,并且可如圖2A中所示那樣折疊。按鍵的排列不必如圖所示為便于圖解說明幾個手指那樣呈矩形陣列的形式,也可布置在如真實(shí)的QWERTY鍵盤那樣的交錯或偏移位置中。圖2B還表示具有印刷為模板70,這里是西里爾字母字符的預(yù)備鍵集合的裝置。如果需要,可在模板的一側(cè)印刷一個鍵集合,在另一側(cè)印刷另一個鍵集合,例如英文字符和俄文字符。
如同相對于圖1B-1D說明的那樣,虛擬鍵盤的圖像也可顯示在與配對裝置相關(guān)的屏幕上。在該實(shí)施例中,如果需要,可省卻基體甚至省卻工作面,允許用戶“擊打”稀薄的空氣。在允許正被使用的“鍵盤”的on-the-fly變化,例如提供英語鍵盤、或者德語鍵盤,俄語鍵盤,模擬數(shù)字轉(zhuǎn)換表等方面,該實(shí)施例特別靈活。不同的鍵盤和鍵集合被簡單地顯示在與配對裝置或用具相關(guān)的屏幕90上??衫斫獾氖牵ㄟ^在結(jié)合本發(fā)明使用的配對裝置的顯示器上,以具有不同字符集合的虛擬按鍵的顯示圖像的形式呈現(xiàn)備選按鍵集合,獲得極大的靈活性。從而,在圖1B中,虛擬鍵盤被消除為導(dǎo)向器,進(jìn)一步提高了便攜性和靈活性。
在不同的實(shí)施例中,用戶將從虛擬鍵盤50(如圖1A中所示)或者從甚至沒有虛擬鍵盤的工作面(如圖1B中所示)輸入的數(shù)據(jù)(和/或命令)將被耦接到配對計(jì)算機(jī)或其它系統(tǒng)80。沒有任何限制,配對計(jì)算機(jī)系統(tǒng)或類似系統(tǒng)可以是PDA、無線電話機(jī)、膝上型PC、筆輸入計(jì)算機(jī)或者需要向其輸入數(shù)據(jù)的其它任意電子系統(tǒng)??墒拐郫B或者卷起后的尺寸足夠小,以便和將與之一起使用從而輸入數(shù)據(jù)和命令的PDA或其它配對計(jì)算機(jī)系統(tǒng)80一起保存。例如折疊時,鍵盤的尺寸可能為2.5″×3″,并且最好至少小于8″×8″。PDA的虛擬鍵盤可具有可在PDA的背部放入衣袋的折疊形狀因素。但是當(dāng)使用時,虛擬鍵盤被打開或者展開,變成實(shí)足尺寸的虛擬鍵盤。
當(dāng)用戶把數(shù)據(jù)輸入配對系統(tǒng)80中時,通常存在于系統(tǒng)80上的顯示器90可實(shí)時顯示正從虛擬鍵盤輸入的數(shù)據(jù)100,例如可輸入PDA的文本,可輸入無線電話機(jī)的電子郵件等等。在一個實(shí)施例中,塊狀光標(biāo)102圍繞本發(fā)明發(fā)覺將被擊打的單個字母數(shù)字字符,例如圖1A中的字母“d”的顯示。這種視覺反饋特征可幫助用戶確認(rèn)數(shù)據(jù)輸入的準(zhǔn)確性,并且可提供重新定位用戶手指以確保將擊打所需字符的指導(dǎo)。當(dāng)按下各個虛擬按鍵時,系統(tǒng)80可發(fā)出諸如“按鍵滴答聲”之類的聲音反饋,以便向用戶提供更多的反饋。如果需要,可在虛擬鍵盤中形成被動式凸起107,以便向用戶提供觸覺反饋。舉例來說,這樣的凸起可以是形成于由彈性塑料制成的模擬鍵盤中的各個“按鍵”下的半球體。
如上所述,也可通過在配對裝置的屏幕上顯示虛擬鍵盤(它是配對裝置前的基體或者空工作面)的圖像,提供視覺反饋。當(dāng)用戶擊鍵時,他或她由表示當(dāng)用戶手指相對于虛擬鍵盤移動時,用戶手指的鍵盤圖像所指導(dǎo)。該圖像可包括突出顯示直接位于用戶手指下方的按鍵,如果實(shí)際按下某一按鍵,則可以不同的顏色或者相反的顏色突出顯示該按鍵。如果需要,配對裝置的屏幕可被“劈開”,從而當(dāng)“擊打”字母數(shù)字字符時,實(shí)際的字母數(shù)字字符出現(xiàn)在屏幕的上部,用戶手指置于其上的虛擬按鍵的圖像出現(xiàn)在屏幕的下部(或者反之亦然)。
在圖1A和圖1B中,配對系統(tǒng)80被表示成安裝在托架110上,三維傳感器20可永久地連接在托架110上。另一方面,傳感器20可永久地安裝在配對裝置80的下部中。來自傳感器20的輸出通過通道120被耦接到配對裝置80上的數(shù)據(jù)輸入端口。如果使用托架或者類似的裝置,則把裝置80插入托架110中可用于自動實(shí)現(xiàn)傳感器20的輸出和裝置80的輸入之間的連接。
如同這里說明的那樣,即使不存在如圖1A中所示的印刷虛擬鍵盤,圖1B的結(jié)構(gòu)也有利于允許用戶把數(shù)據(jù)(例如文本、圖形、命令)輸入配對裝置80中。為了便于理解,在配對裝置80前的工作面區(qū)域60上表示沿著X軸和Y軸的網(wǎng)格線。這里描述的各種軟件映射技術(shù)允許本發(fā)明辨別用戶手指打算擊打哪些虛擬按鍵(如果按鍵存在)。盡管圖1A的實(shí)施例便于從虛擬鍵盤獲得觸覺反饋,圖1B的實(shí)施例不允許獲得這樣的觸覺反饋。因此,裝置80的顯示器90最好顯示圖像,以幫助用戶擊鍵。當(dāng)然,如圖1A的實(shí)施例中那樣,在“擊鍵”時,當(dāng)用戶的手指按下工作面60時,裝置80可發(fā)出擊鍵聲音。
圖1C描述可從恰當(dāng)?shù)难b置80獲得的一種視覺幫助,所述幫助當(dāng)然可和圖1A的實(shí)施例一起使用。在圖1C中,屏幕90至少顯示鍵盤115的一部分圖像和用戶雙手的外形或者其它表現(xiàn)40′,表示相對于按鍵在實(shí)際或虛擬鍵盤上的位置的手和手指的位置。為了便于舉例說明,圖1C只描繪了用戶左手的位置。當(dāng)某一按鍵被“觸及”或者用戶的手指近到足以“觸及”某一按鍵(例如如果存在鍵盤,則這種按鍵存在于工作面60上的位置)時,裝置80可突出顯示該按鍵的圖像(例如顯示相應(yīng)的“軟鍵”),并且當(dāng)該鍵被“按下”或者被“擊打”時,裝置80可利用不同的顏色或者相反的顏色顯示該按鍵。例如在圖1C中,“Y”鍵被表示成突出顯示或者被對比,這可指出該按鍵正被觸及或者將被觸及,或者正被用戶的左手食指按下。如圖1D中所示,裝置80可提供分屏幕顯示,其中一部分屏幕描述圖像,以便引導(dǎo)用戶的手指放置在不存在的鍵盤上,而另一部分屏幕顯示用戶向裝置80輸入的數(shù)據(jù)或命令100。雖然圖1D表示當(dāng)完成屏幕90上單詞“key”的拼寫時,和正被擊打的按鍵相對應(yīng)的文本,例如單詞“key”中的字母“Y”被突出顯示,不過數(shù)據(jù)100也可以是圖形。例如,用戶可命令裝置80進(jìn)入圖形模式,從而手指在工作面60(或者虛擬鍵盤70)內(nèi)的移動將產(chǎn)生圖形,例如,利用食指或者輸入筆在工作面60上“書寫”的用戶簽名。用戶手指或輸入筆可被總稱為“用戶手指”。
隨意地,與本發(fā)明相關(guān)的軟件(例如圖3中的軟件285)可使用字詞上下文關(guān)系來幫助減少“鍵入”錯誤。假定事先已知正被輸入的語言,例如英語中的文本的詞匯表。配對裝置中的存儲器將保存該語言中最頻繁使用的單詞的詞典,并且當(dāng)用戶在虛擬鍵盤上或者實(shí)際上在稀薄的空氣中“鍵入”單詞時,配對裝置軟件將把迄今鍵入的字母和詞典的候選單詞進(jìn)行匹配。例如,如果用戶輸入“S”,以字母“S”開頭的所有單詞為候選單詞。如果用戶隨后鍵入“數(shù)字磁記錄/再現(xiàn)設(shè)備”,則至少在英文中不存在匹配的候選單詞。當(dāng)用戶鍵入更多的字母時,可匹配正被鍵入的單詞的該組候選單詞減少到易處理的規(guī)模。在某些閾值點(diǎn),例如當(dāng)候選單詞的規(guī)模減少到5-10個單詞時,軟件可指定用戶將鍵入的下一字母的概率。例如,如果用戶已輸入“SUBJ”,則下一字母為字母“E”的概率高于字母“W”的概率。但是由于在真實(shí)或者虛擬鍵盤上,字母“E”和“W”相鄰,用戶有可能按壓字母“W”的按鍵附近的區(qū)域。本例中,配對裝置軟件可用于校正按鍵輸入,并且假定用戶打算輸入字母“E”。
現(xiàn)在說明三維傳感器20的操作,傳感器發(fā)出已知頻率的輻射,并檢測由觀察的光場內(nèi)的對象的表面返回的能量。圖1A和圖1B中發(fā)射的輻射被表示成射線140。傳感器20沿著Z軸瞄準(zhǔn),以便確定用戶的哪些指尖30以何種時間順序觸及模板70的哪些部分,例如觸及哪些虛擬按鍵。如圖1B中所示,即使不存在模板70,用戶僅僅在裝置80前的工作空間上擊打,傳感器20仍然能夠起作用,輸出有意義的數(shù)據(jù)。在這樣的實(shí)施例中,配對裝置80的屏幕90可顯示鍵盤105的圖像100′,在所示圖像100′中,“按下的”或者潛在的“按鍵”被突出顯示,例如字母“T”的按鍵107。
如圖1A和1B中所示,如果需要,發(fā)光體或者發(fā)出可見光束147的其它投射器145可用于投射虛擬鍵盤的圖像,引導(dǎo)用戶擊鍵。例如,可見光源(可能為可見光波長的激光)可和衍射型透鏡一起用于投射引導(dǎo)用戶擊鍵的圖像。在這種實(shí)施例中,鍵盤的圖像(可能以普通的圖形文件格式(例如GIF)的形式提供)被用于在透鏡上“蝕刻”衍射圖案。雖然投射圖像的一部分有時會落在用戶手指的表面上,但是在不存在擊打的基體的情況下,這樣的投射導(dǎo)向器是有用的。包括例如可從AL35806,Huntsville的MEMS Optical,LLC購得的光學(xué)器件在內(nèi)衍射光學(xué)器件的應(yīng)用可用于實(shí)現(xiàn)這樣的投射實(shí)施例。
圖3是描述最好構(gòu)成于單一CMOS IC210上的例證三維圖像傳感器系統(tǒng)200的方框圖。系統(tǒng)200可放置在和三維傳感器20相同的框架中,并用于實(shí)現(xiàn)本發(fā)明。如同在作為參考包含于此的同時待審的美國專利申請,序列號09/401059中更詳細(xì)描述的那樣,這種系統(tǒng)有利的是不需要移動部件,并且需要相對較少的芯片外組件,主要是發(fā)光二極管(LED)或者激光源220及相關(guān)的光學(xué)聚焦系統(tǒng),如果提供適當(dāng)?shù)钠聊?,可把激光?20接合在其上構(gòu)成IC210的共同基體上。要明白雖然如同上述同時待審的US發(fā)明專利申請中公開的那樣,關(guān)于三維傳感器20說明了本發(fā)明,不過本發(fā)明也可和其它三維傳感器20一起被實(shí)踐。
系統(tǒng)200包括象素檢測器240的陣列230,每個象素檢測器具有用于處理由相關(guān)檢測器產(chǎn)生的檢測電荷輸出的專用電路250。在虛擬鍵盤識別應(yīng)用中,陣列230可包括15×100象素和一個對應(yīng)的15×100處理電路250。注意陣列尺寸顯著小于例如Korth所述的現(xiàn)有二維視頻系統(tǒng)所需的陣列尺寸。Korth需要4∶3的寬高比或者在某些情況下可能為2∶1,本發(fā)明利用顯著小于3∶1,最好約為2∶15或者甚至1∶15的寬高比來獲得并處理數(shù)據(jù)。參見圖1A和1B,雖然必須包圍相對較大的X軸范圍,但是傳感器20相對于基體50的邊緣(edge-on)布置意味著只需要包圍相對較小的Y軸距離。
在用戶擊鍵期間,為了區(qū)別沿著一行虛擬按鍵的用戶的各個手指,需要高的幀速率。但是實(shí)際上,指定擊鍵手指的來回移動并不太快。因此Z軸數(shù)據(jù)的采集速率可以小于X軸和Y軸數(shù)據(jù)的采集速率,例如Z軸數(shù)據(jù)為10幀/秒,對X軸和Y軸數(shù)據(jù)來說為30幀/秒。
降低Z軸幀速率的實(shí)際優(yōu)點(diǎn)在于在獲得鍵盤手指位置信息方面,本發(fā)明所需的電流較小。實(shí)際上,就獲得的信息的信號處理來說,本發(fā)明可在多幀內(nèi)平均Z軸信息,例如關(guān)于Z軸位置信息檢查1/3的幀。獲得的Z軸數(shù)值將具有可通過求平均值而降低的噪聲或抖動。例如可三個連續(xù)30幀/秒的多幀內(nèi)求Z值的平均值,從而三個連續(xù)圖像幀將共有相同的處理后的Z值。雖然Z值的有效幀速率被降低到X軸和Y軸數(shù)據(jù)采集的采集速率的1/3,但是通過中和噪聲或抖動,提高了Z數(shù)據(jù)的精度。結(jié)果的降低后的Z軸幀速率仍然足夠快,足以獲得有意義的信息。對于X值和Y值使用與Z軸不同的幀速率對本發(fā)明有用。例如,相對于X軸和Y軸數(shù)據(jù)降低Z軸數(shù)據(jù)的采集速率使電流消耗降至最小,避免因過多的信號處理加重信號處理器(CPU 260)的負(fù)擔(dān)。
從而,本發(fā)明在不需要環(huán)境光線的情況下獲得三維圖像數(shù)據(jù),而現(xiàn)有的類似于Korth的系統(tǒng)在存在環(huán)境光線的情況下獲得二維發(fā)光度數(shù)據(jù)。本質(zhì)上,本發(fā)明可感知三維對象,例如手指和基體,類似于人類通過觸摸感知物體。有利的是,這可通過利用相對較小的工作功率,例如10mW下的3.3VDC,這允許本發(fā)明用電池作電源,并且按照相對較小并且可移動的形狀因數(shù)制造本發(fā)明。
可從陣列230獲得用戶雙手和手指及基體的每秒多幀的三維圖像數(shù)據(jù)。利用該數(shù)據(jù),本發(fā)明構(gòu)成雙手和手指相對于基體的三維圖像,或者如果不存在基體,則構(gòu)成相對于如果鍵盤位于配對裝置80前的工作面上,則虛擬鍵盤所處的位置的三維圖像。在早先提及的申請人Bamji的同時待審的美國專利申請中描述了完成上述工作的例證技術(shù)。根據(jù)飛行時間數(shù)據(jù)構(gòu)成這樣的三維圖像優(yōu)于例如Korth提出的試圖利用基于二維發(fā)光度的數(shù)據(jù),推測空間關(guān)系的現(xiàn)有技術(shù)。應(yīng)指出飛行時間方法可包括返回脈沖時間測量,相位或頻率檢測,或者高速快門方法,如Bamji專利申請中所述。不依賴飛行時間的其它方法可捕獲三維數(shù)據(jù),包括立體圖像,以及根據(jù)反射強(qiáng)度了解深度的基于發(fā)光度的技術(shù)。
實(shí)際上,陣列230可以每秒30幀的速度(足以處理每秒5個字符,約為每分鐘60個單詞的虛擬鍵入的幀速率)獲得并處理數(shù)據(jù)。如果陣列230為矩形,例如包括n個X軸象素和m個Y軸象素,如果n=100并且m=15,則形成包含1500個象素的網(wǎng)格。對于數(shù)據(jù)的各幀來說,陣列230中的每個象素將具有代表由該象素捕獲的從傳感器20到對象的表面(例如用戶手指的一部分,基體的一部分等)的矢量距離的數(shù)值,例如某一矢量或Z值。和Korth的在以二維形式確定用戶手指的輪廓及在虛擬鍵盤上的位置中最多向視頻幀提供RGB灰度或色級數(shù)值的基于發(fā)光度的圖像數(shù)據(jù)相比,該數(shù)據(jù)更為有用。
獲得的三維數(shù)據(jù)的使用使得軟件285能夠確定用戶手指(名義上假定為略呈圓柱形)的實(shí)際形狀,從而確定相對于其它手指,相對于基體上方或者基體上的位置的相對手指位置,以及相對于三維傳感器20的相對手指位置。例如在圖1A中,當(dāng)感覺到手指正在移向Y=0位置時,可確定該手指可能準(zhǔn)備擊打虛擬按鍵。如果還感覺到該手指正在逼近Z=Z1區(qū),則該手指可能準(zhǔn)備擊打虛擬鍵盤上第一行按鍵中的某一虛擬按鍵。確定虛擬按鍵是否將被按下還要考慮速度數(shù)據(jù)。例如,檢測到正在快速向下移向Y=0的用戶手指可能正在準(zhǔn)備擊打某一虛擬按鍵。
在圖3中,IC210還包括微處理器或微控制器260(表示為CPU)、隨機(jī)存取存儲器270(RAM)和只讀存儲器280(ROM),ROM的一部分最好保存可由CPU執(zhí)行以實(shí)現(xiàn)本發(fā)明的軟件例程285??刂破?60最好是以50MHz工作的16位RISC微處理器。除了其它功能之外,CPU260還進(jìn)行到對象的矢量距離和對象速度計(jì)算,這里所述對象是基體及用戶的雙手。IC210還包括一個可高速分布的時鐘290和各種計(jì)算、光學(xué)驅(qū)動輸入/輸出(I/O)電路300,以及接口數(shù)據(jù)/命令輸入/輸出(I/O)電路310。數(shù)字鍵盤掃描類型數(shù)據(jù)或者數(shù)字轉(zhuǎn)換圖形輸入板/鼠標(biāo)類型數(shù)據(jù)從I/O 310輸出,例如從COM和/或與系統(tǒng)200相關(guān)的USP端口輸出。
最好利用標(biāo)準(zhǔn)商用硅技術(shù)制造象素傳感檢測器的二維陣列230,所述標(biāo)準(zhǔn)商用硅技術(shù)有利于允許在同一個IC210上制備電路250、260、270、280、290和300??衫斫?,由于縮短了信號通道,因此在具有象素檢測器陣列的同一個IC上制備這樣的電路的能力可縮短處理和延遲時間。
每個象素檢測器可被表示成電流源、理想二極管和分路阻抗及噪聲電流源的并聯(lián)組合。每個象素檢測器將輸出與落于其上的輸入光子光能的數(shù)量成正比的電流。最好使用CMOS加工來實(shí)現(xiàn)CMOS象素二極管或者photogate檢測器裝置的陣列。例如,可利用擴(kuò)散-井,或者井-基體結(jié),可制備光電二極管。井-基體光電二極管對紅外(IR)光線更敏感,電容較小,從而更可取。
如圖3和4中所示,電路250與各個象素檢測器240相關(guān)。各個電路250最好包括一個脈沖峰值檢測器310、一個高速計(jì)數(shù)器320,并且可以利用高速時鐘290。最好形成于IC210上的高速時鐘200最好以500MHz的固定頻率輸出一連串的高頻時鐘脈沖,當(dāng)輸出脈沖時,占空度最好較低。當(dāng)然也可使用其它高速時鐘參數(shù)。該脈沖系列被耦接到各個高速插值計(jì)數(shù)器320的輸入端口。計(jì)數(shù)器320最好可進(jìn)行子計(jì)數(shù)(sub-count),如同Bamji待審專利申請中描述的那樣,并且可節(jié)約大約70%的時間。每個計(jì)數(shù)器320最好還具有接收START信號(例如現(xiàn)在開始計(jì)數(shù))的端口,接收STOP信號(例如現(xiàn)在停止計(jì)數(shù))的端口,和接收CONTROL信號(例如現(xiàn)在重置累積計(jì)數(shù))的端口。CONTROL和STAT信號從控制器260獲得,CLOCK信號從時鐘290獲得,STOP信號從脈沖峰值檢測器310獲得。
虛擬鍵盤50將放置在距離三維傳感器20約20厘米的地方,大體上和傳感器透鏡在相同的平面中。由于典型的傳感器透鏡角度為60°,20厘米的距離確保虛擬鍵盤的光學(xué)覆蓋。在圖3中,為了便于舉例說明,夸大了傳感器20光發(fā)射和收集的光線之間的距離。
概括地說,系統(tǒng)200如下操作。在時間t0,微處理器260命令光源220發(fā)出已知波長的光脈沖,所述光脈沖通過聚焦透鏡288′,并以光速(C)300000公里/秒向感興趣的對象,例如基體50和用戶的手指30行進(jìn)。如果光源220功率足夠高,則可省卻透鏡288′。在被成像的對象的表面,至少一些光線可被反射回系統(tǒng)200,從而被檢測器陣列檢測。在圖3中,感興趣的對象是用戶雙手的手指30,并且如果存在的話,如前所述基體50可包括擊鍵時引導(dǎo)用戶放置手指的可視標(biāo)記,例如鍵盤按鍵70或者投射的網(wǎng)格線。
如圖1A所示,在X-Z平面上的二維空間中,已知基體50上的虛擬按鍵70(或者其它用戶可用標(biāo)記)相對于基體上其它這種按鍵的位置的位置。當(dāng)用戶的手指在基體50上來回移動時,在“擊鍵”的同時觸摸虛擬按鍵70。CPU 260和軟件例程285的一個功能是檢測返回光能,以便識別在何時用戶的手指正在觸及哪些虛擬按鍵(如果有的話)。一旦得到這種信息,則可向配對裝置80的輸入端口130提供恰當(dāng)?shù)腒EYUP、KEYDOWN以及按鍵掃描代碼或者其它輸入信號,就象正被提供的數(shù)據(jù)或命令由實(shí)際鍵盤或者其它輸入裝置產(chǎn)生一樣。
在時間t0時或者在此之前,陣列230中的各個象素計(jì)數(shù)器310從控制器260接收CONTROL信號,所述CONTROL信號把計(jì)數(shù)器中以前保存的任意計(jì)數(shù)值置0。在時間t0,控制器260向各個計(jì)數(shù)器發(fā)出START命令,于是各個計(jì)數(shù)器開始計(jì)數(shù)并累積來自于時鐘290的CLOCK脈沖。在光脈沖的往返飛行時間(TOF)內(nèi),各個計(jì)數(shù)器累計(jì)CLOCK脈沖,越多的累積時鐘脈沖代表越長的TOF,即成像對象上反光點(diǎn)和系統(tǒng)200之間的距離越大。
與系統(tǒng)200相關(guān)的聚焦透鏡288的基本特征是這樣的,使得來自成像對象20的表面上某一點(diǎn)的反射光只會落在陣列中聚焦于該點(diǎn)的象素上。從而,在時間t1,從對象20的表面上最近的點(diǎn)反射的光子光能將通過透鏡/濾光器288,并將落在陣列230中聚焦于該點(diǎn)的象素檢測器240上。與透鏡288相關(guān)的濾光器確保只有具有光源220發(fā)出的波長的輸入光線才會無衰減地落在檢測器陣列上。
假定陣列230內(nèi)的一個特定象素檢測器240聚焦于最近的用戶手指的指尖70上的最近表面點(diǎn)。相關(guān)檢測器300將檢測象素檢測器響應(yīng)從這樣的對象點(diǎn)輸入的光子能量所輸出的電壓。脈沖檢測器300最好被實(shí)現(xiàn)為檢測較小但是快速變化的象素輸出電流或電壓的放大峰值檢測器。當(dāng)快速變化的輸出電壓大到足以被檢測到時,檢測器300內(nèi)的邏輯電路(例如SR觸發(fā)器)切換到鎖存輸出脈沖,該輸出脈沖以STOP信號的形式被提供給相關(guān)計(jì)數(shù)器320。從而,在相關(guān)計(jì)數(shù)器320內(nèi)累積的計(jì)數(shù)數(shù)目將表示出到所考慮的指尖的最近部分的往返TOF,一個可計(jì)算的距離Z1。
可根據(jù)下述關(guān)系式確定距離Z1,其中C是光速Z1=C*(t1-t0)/2在稍后的時間t2,光子能量將從用戶指尖30上距離稍遠(yuǎn)的部分到達(dá)透鏡288,并將落在陣列230上,由另一象素檢測器檢測。迄今與所述另一檢測器相關(guān)的計(jì)數(shù)器從時間t0開始一直在計(jì)數(shù)CLOCK脈沖,如同除了在時間t1停止計(jì)數(shù)的那個計(jì)數(shù)器之外的所有計(jì)數(shù)器那樣。在時間t2,與剛剛接收并檢測輸入光子能量的象素相關(guān)的脈沖檢測器將向相關(guān)的計(jì)數(shù)器發(fā)出STOP命令。該計(jì)數(shù)器中累積的計(jì)數(shù)值將反映到指尖上中間點(diǎn)的往返TOF,距離Z2。在IC210內(nèi),執(zhí)行保存在存儲器280中的軟件例程285的控制器260可計(jì)算與對象表面上各個光反射點(diǎn)的TOF數(shù)據(jù)相關(guān)的距離。通過檢測連續(xù)多幀的獲取數(shù)據(jù),可計(jì)算速度。
按照類似的方式,在時間t3,陣列中的又一象素檢測器將為其相關(guān)脈沖檢測器300檢測剛剛到達(dá)的足夠的光子能量,從而向相關(guān)計(jì)數(shù)器發(fā)出STOP命令。該計(jì)數(shù)器中累積的計(jì)數(shù)值代表到成像對象上更遠(yuǎn)距離Z3的TOF數(shù)據(jù)。雖然為了便于舉例說明,圖3只表示了均在一個指尖附近的三個發(fā)射光線及光線反射,但是實(shí)際上所有基體和用戶手指及拇指將被光源220照射,并且將至少把一些能量反射入與三維傳感器20相關(guān)的透鏡288中。
當(dāng)然,陣列中的一些象素可能未從它們所聚焦的對象點(diǎn)收到足夠的反射光線。這樣,在預(yù)定時間(預(yù)定時間可被編程寫入控制器260中)之后,由于脈沖檢測的緣故,與傳感器陣列中各個象素相關(guān)的計(jì)數(shù)器將被停止(或者將被假定為保存對應(yīng)于位于距離Z=無窮遠(yuǎn)的目標(biāo)的計(jì)數(shù)值)。
如上所述,在本申請中,如果系統(tǒng)200能夠?qū)ξ挥?0厘米-30厘米的范圍內(nèi),例如約20厘米加上基體50上最高一行虛擬按鍵和最低一行虛擬按鍵之間的距離的范圍內(nèi)的對象精確成像就足夠了。利用檢測到的各個反射光脈沖,確定關(guān)于陣列中各個象素的計(jì)數(shù)器計(jì)算的TOF距離值,并且最好將其保存在與裝置270相關(guān)的RAM中的幀緩沖器中。微處理器260最好檢測保存在RAM中的連續(xù)幀,從而識別視場中的對象及對象位置。隨后微處理器260可計(jì)算對象,例如手指移動速度。除了計(jì)算距離和速度之外,微處理器和相關(guān)的單片電路最好被編程為識別用戶手指的外形或者輪廓,以及把手指表面和基體表面區(qū)分開。一旦識別了手指輪廓,則系統(tǒng)200可通過COM或USB或其它端口把相關(guān)數(shù)字?jǐn)?shù)據(jù)和命令輸出給配對計(jì)算機(jī)系統(tǒng)。
上述例子說明了在三個獨(dú)立的時間t1、t2、t3接收光子能量的三個象素檢測器如何關(guān)閉相關(guān)的計(jì)數(shù)器,所述計(jì)數(shù)器的累積計(jì)數(shù)值可用于計(jì)算到視場中的手指表面和基體的距離Z1、Z2、Z3。實(shí)際上,對于每個光脈沖,本發(fā)明并不僅僅處理三個這樣的計(jì)算,而是處理數(shù)千或者數(shù)萬個這樣的計(jì)算,取決于陣列的大小。這種處理可在IC芯片210上進(jìn)行,例如通過利用微處理器260執(zhí)行保存在(或者可保存在)ROM 280中的例程285進(jìn)行這種處理。陣列中的每個象素檢測器在檢測陣列上具有唯一的位置定位,并且可唯一地識別從與各個象素檢測器相關(guān)的高速計(jì)數(shù)器輸出的計(jì)數(shù)。從而,由二維檢測陣列230收集的TOF數(shù)據(jù)可被信號處理,從而提供到三維對象表面,例如用戶的手指和基體的準(zhǔn)確距離。要理解如果需要,可隨機(jī)地獲取來自于CMOS兼容的檢測器240的輸出,這允許按照任意順序輸出TOF數(shù)據(jù)。
光源220最好是發(fā)射波長約為800nm的能量的LED或激光器,不過也可使用其它波長。低于800nm波長,發(fā)出的光線開始變得可見,激光器效率被降低。高于900nm,CMOS傳感器效率快速降低,總之,1100nm是在硅基體上制備的裝置,例如IC210的上限波長。如前所述,通過發(fā)射具有特定波長的光脈沖,并且通過濾出不同波長的輸入光線,系統(tǒng)200可在存在或不存在環(huán)境光線的情況下工作。如果基體50包含,例如確定虛擬按鍵的輪廓的凸脊,則用戶可在黑暗中逐字打字,系統(tǒng)200仍然能夠正確地工作。這種不依賴于環(huán)境光線進(jìn)行工作的能力完全和例如Korth描述的現(xiàn)有方案相反。如前所述,即使對于未達(dá)到盲打水平的用戶來說,通過在配對裝置80的顯示器上提供虛擬鍵盤的圖像,在黑暗中仍然能夠使用本發(fā)明。
如前所述,透鏡288最好把過濾的輸入光能聚焦于傳感器陣列230上,從而陣列中的各個象素只接收來自于視場中的一個特定點(diǎn)(例如對象表面上的點(diǎn))的光線。光波傳播的性質(zhì)允許使用普通透鏡288把光線聚焦到傳感器陣列上。如果需要透鏡對發(fā)射光線聚焦,那么如果使用類似于鏡子的結(jié)構(gòu),就可把單個透鏡用于288、288′。
在實(shí)際應(yīng)用中,傳感器陣列230最好具有足夠的分辨率,以便區(qū)分約為1厘米的目標(biāo)距離,這意味著各個象素必須能夠分辨約為70皮秒的時間差(例如1厘米/C)。就CMOS實(shí)現(xiàn)的系統(tǒng)規(guī)范來說,高速計(jì)數(shù)器320必須能夠把時間分解到約70皮秒內(nèi),峰值脈沖檢測器310必須是在約為幾百微伏(μV)的檢測靈敏度條件下,也能夠分辨約70皮秒(在對約100個樣本求平均值之后)的低噪聲高速裝置。準(zhǔn)確的距離測量需要從總的共用時間中除去脈沖檢測器響應(yīng)時間。最后,電路280輸出的CLOCK信號應(yīng)具有約為2ns的周期。
如前所述,每個插值計(jì)數(shù)器320最好能夠分辨約為1厘米的距離,這意味著把時間分解為約為70皮秒。利用具有70皮秒有效周期時間的10位計(jì)數(shù)器可產(chǎn)生約為10米(例如1024厘米)的最大系統(tǒng)檢測距離。在最壞的情況下,實(shí)現(xiàn)普通的10計(jì)數(shù)器一般需要40個門電路的通道,每個門電路一般需要200皮秒,總的傳播時間約為8ns。這會把最快的系統(tǒng)時鐘周期時間限制到約10ns。以利用先行進(jìn)位硬件為代價可降低計(jì)數(shù)器傳播時間,但是很難實(shí)現(xiàn)2ns的系統(tǒng)周期時間。
為了獲得所需的周期時間,可使用所謂的偽隨機(jī)序列計(jì)數(shù)器(PRSC),有時稱為線性移位寄存器(LSR)。在申請人前面提及的同時待審的發(fā)明專利申請中可找到關(guān)于實(shí)現(xiàn)包括PRSC裝置的高速計(jì)數(shù)器的細(xì)節(jié)。
現(xiàn)在參考圖5說明識別觀察的光場內(nèi)的用戶手指的輪廓涉及的各種考慮事項(xiàng),圖5描述了用戶的兩個手指的橫截面。+符號表示對手指成像的陣列210中的各個象素傳感器的矢量距離值的子幀((幀內(nèi))樣本。在獲得的各個樣本中,相對于被成像手指對象的相同點(diǎn),與象素傳感器相關(guān)的固有噪聲產(chǎn)生不斷變化的矢量距離。為了降低噪聲并改善信號/噪聲,傳感器中和各個象素的測量結(jié)果,從而產(chǎn)生該幀的平均值,圖5中用○符號表示。圖5中的□符號表示當(dāng)保存的例證手指形狀橫截面的模板或者一組保存的例證手指形狀橫截面被例程285用于解釋所述平均值時的校正平均值。該方法提高了距離測量準(zhǔn)確性,并且減少了在識別用戶手指方面的不確定性。
數(shù)據(jù)收集噪聲會影響識別用戶手指并確定手指動作及速度所需的最小幀速率。在基于TOF的成像術(shù)中,如同本發(fā)明中使用的一樣,象素級噪聲把其自身表現(xiàn)為指定象素的距離值方面的變化,這種變化因幀而異,即使被成像對象保持固定不動。
為了便于舉例說明,圖1A和2A、2B中描述的鍵盤圖像被描繪成矩陣,例如均勻的行和列。但是實(shí)際上,如圖6中部分所示,標(biāo)準(zhǔn)的QWERTY型鍵盤(以及實(shí)際上具有其它按鍵結(jié)構(gòu)的鍵盤)被設(shè)計(jì)成偏移或者交錯的結(jié)構(gòu)。有利的是,通過考慮到實(shí)際鍵盤布局的交錯,本發(fā)明降低了對Z軸分辨率的要求。從而,從鍵盤頂部開始的第二行稍向右移,第三行(從頂部數(shù)起)更向右移,以此類推。這種交錯把按鍵放置在各行中相對于相鄰一行中的按鍵偏移的位置中。舉例來說,注意圖6中的鍵盤字母“G”。虛線矩形400指出用戶擊打字母“G”時所允許的范圍,例如,該矩形區(qū)內(nèi)的任意虛擬接觸將明確地被理解為用戶手指觸及字母“G”。該矩形的高度(由Z表示)是檢測Z軸坐標(biāo)時許可的最大誤差容限。注意該容限大于QWERTY鍵盤中單行R的高度。另外注意關(guān)于某一按鍵的識別區(qū)不必是矩形,可以是任意合理的形狀,例如以按鍵為中心的橢圓形。
根據(jù)需要,CPU 270以及例程285可以使用三維數(shù)據(jù)幀根據(jù)獲得的數(shù)據(jù)識別用戶的手指。該任務(wù)被簡化,因?yàn)閿?shù)據(jù)實(shí)際上包括用戶手指的三維表現(xiàn),并且手指具有眾所周知的形狀,例如當(dāng)從邊緣觀察時,手指在形狀上稍微類似于圓柱形。如前所述,通過降低識別并跟蹤手指位置所需的CPU時間,把手指形狀的模板和手指及手的直觀推斷保存在存儲器280中加快了手指識別。這種信號處理可很快降低數(shù)據(jù)收集噪聲,并且更易于從獲得的三維數(shù)據(jù)內(nèi)辨別用戶的手指。在幀內(nèi)狀態(tài)下還可提高信噪比,因?yàn)橐阎怀上竦膱鼍暗那闆r,例如該場景包括虛擬鍵盤和用戶的雙手。最好對幾百個數(shù)據(jù)捕獲求平均值,或者使用幾百個數(shù)據(jù)捕獲來構(gòu)建一幀獲得的數(shù)據(jù)。
一旦識別出用戶的手指,則軟件例程285(或者等同的例程,可能由除CPU 260以外的其它器件執(zhí)行)隨后可確定手指的位置和動作(例如單位時間的位置相對變化)。由于代表手指的數(shù)據(jù)呈三維形式,因此例程285能夠容易地消除背景圖像,并且只集中于用戶雙手上。在Korth二維成像方案中,該任務(wù)非常困難,因?yàn)楸尘皩ο蟮男螤詈鸵苿?例如用戶的袖子、手臂、身體、椅子外形等)會干擾對象跟蹤和識別軟件例程。
通過利用指尖的輪廓,例程285使用Z軸距離測量結(jié)果來確定手指相對于虛擬鍵盤各行的位置,例如圖1A中的距離Z1或Z2。如前所述,這種軸測量結(jié)果的間隔尺寸明顯大于在圖1A中所描述的。X軸距離測量結(jié)果提供和指尖相對于虛擬鍵盤各列的位置有關(guān)的數(shù)據(jù)。通過利用行列坐標(biāo)數(shù),軟件285可確定各個手指觸及的實(shí)際虛擬按鍵,例如圖1A中由左手食指觸及的按鍵“T”。
為了幫助用戶在諸如鍵盤、數(shù)字小鍵盤、電話機(jī)號碼盤之類特定虛擬輸入裝置上確定手指的位置,配對裝置80內(nèi)的軟件可被用于在與該裝置相關(guān)的屏幕90(例如PDA或者蜂窩電話機(jī)屏幕)上,或者在與裝置80耦接的顯示終端上顯示軟鍵盤。軟鍵盤圖像將通過,例如突出顯示直接位于用戶手指之下的按鍵,顯示虛擬鍵盤50上(或者附近的)所有按鍵的用戶手指位置。當(dāng)某一按鍵實(shí)際被擊打時(根據(jù)用戶手指的移動來察覺),可利用不同的顏色或者相反的顏色突出顯示被擊打的按鍵。如果虛擬按鍵不在正確的靜止位置,則用戶可命令配對裝置把虛擬鍵盤或者其它輸入裝置放置在正確的開始位置。例如,如果用戶一般通過把右手手指放置在起始按鍵J、K、L和“”上,把左手手指放置在起始按鍵F、D、S和A上開始擊鍵,則軟件將把虛擬鍵盤的按鍵移動到這樣的位置。
檢測用戶手指的垂直Y軸動作,以便確定裝置50上的哪些虛擬按鍵正在被擊打。在擊打機(jī)械鍵盤時,幾個手指可能同時動作,但是在不存在雙鍵輸入,例如同時按下CONTROL鍵及“P”鍵,或者不存在排字錯誤的情況下,通常只有一個手指擊打一個按鍵。在本發(fā)明中,軟件例程285根據(jù)所獲得信息的連續(xù)各幀,確定手指動作信息。有利的是,人手對手指的動作施加了某些限制,在模擬用戶雙手和手指的圖像中采用了這些限制。例如,手指的連接特性在手指的移動之間施加了某些耦合性。手指關(guān)節(jié)處的自由度要要移動,例如接近或者遠(yuǎn)離其它手指的各個手指賦予一定的自由。有利的是,例程285可采用幾種直觀推斷來確定哪個虛擬按鍵正在被擊打。例如,鍵擊可被檢測為從其后跟隨快速手指向下動作的被檢測手指的向上移動開始。具有最小Y軸位置或者最大向下速度的用戶手指被選為鍵盤輸入手指,例如將擊打虛擬數(shù)據(jù)輸入裝置中的虛擬按鍵之一的手指。
通過智能監(jiān)視用戶手指的移動,辨別用戶的無意鍵盤輸入。例如,用戶可把手指放置在基體50的表面上,而不觸發(fā)無意識的按鍵輸入。這類似于使用機(jī)械鍵盤的打字員把他或她的手指放置在按鍵上,而不會足夠用力地按下任意按鍵以致鍵入的情況。本發(fā)明的用戶還被允許在虛擬鍵盤上輕輕地移動他或她的手指,而不會無意觸發(fā)任意按鍵。軟件285可校準(zhǔn)其操作,以致只有有意的手勢才會被認(rèn)為是把數(shù)據(jù)或命令輸入配對計(jì)算機(jī)裝置80中的有效鍵盤輸入。
當(dāng)被諸如CPU270之類的CPU執(zhí)行時,軟件285可用于實(shí)現(xiàn)用于識別哪些虛擬按鍵正被本發(fā)明的用戶擊打的算法或例程。該算法的輸入數(shù)據(jù)是從傳感器20獲得的三維光學(xué)信息。例證的算法可被看成具有三個階段建立并個性化模板,校準(zhǔn),并實(shí)際跟蹤正在擊打虛擬鍵盤或者工作面的用戶。在下面的描述中,將假定進(jìn)行使用所有手指的正常打字。對于只使用一個或兩個手指的情況,將應(yīng)用該算法的特殊情形。
模板是不同用戶的不同打字姿勢的預(yù)定模型。這類模板以一組系統(tǒng)用戶的分析為基礎(chǔ),所述一組系統(tǒng)用戶的各種打字風(fēng)格被分類。注意模板可產(chǎn)生于輸入數(shù)據(jù)的例子(例如通過觀察處于打字位置的手指收集的數(shù)據(jù)的例子)或者產(chǎn)生于被跟蹤對象的幾何特性的預(yù)編程數(shù)學(xué)描述(例如手指的圓柱形描述)??稍谥苽銻OM,尤其是例程285的時候產(chǎn)生作為結(jié)果的模板。由于鍵盤按鍵的位置和形狀對用戶施加了某些風(fēng)格共性,因此要理解預(yù)定模板的數(shù)目不必過大。
最好本發(fā)明的各個用戶還可利用引導(dǎo)用戶通過建立模板所需的步驟的訓(xùn)練工具,構(gòu)建他們自己的專用模板。例如,軟件285的訓(xùn)練程序部分可在顯示器90上呈現(xiàn)告訴用戶把他或她的手指放在虛擬鍵盤(如果存在的話)或者配對裝置80前面的工作面上的打字位置上的命令。隨后訓(xùn)練程序告訴用戶反復(fù)按下各個手指下的虛擬按鍵。光學(xué)捕獲拇指移動可被看作是特殊情況,因?yàn)槟粗敢苿硬煌谄渌种傅囊苿樱⑶乙话惚幌拗朴诎聪绿摂M鍵盤或者工作面的空格鍵區(qū)域。
就建立模板來說,最好把模板圖像中的對象的類別構(gòu)造成用戶雙手的不同手指。如同下面更詳細(xì)說明的那樣,該方法步驟為分類程序或者算法例程收集關(guān)于用戶雙手的物理特性的信息。隨后,在實(shí)際打字過程中,分類程序使用該模板很快把獲得幀中的圖像映象到各個用戶手指。作為模板構(gòu)建的一部分,最好確定相對于處于靜止位置的特定鍵盤按鍵的用戶手指位置的映象。例如,例程285和CPU 270可通知配對裝置80,靜止時用戶的左手手指觸及“A”、“S”、“D”和“F”鍵,用戶的右手手指觸及“J”、“K”、“L”和“”鍵。這種方法步驟按照特定用戶的風(fēng)格個性化虛擬鍵盤。這種個性化過程只進(jìn)行一次,不必反復(fù)進(jìn)行,除非用戶的打字姿勢顯著改變到過多的錯誤按鍵被識別為已被擊打的程度??扇缦逻M(jìn)行根據(jù)本發(fā)明的校準(zhǔn)過程。在開始打字時,用戶將通過使正被裝置80運(yùn)行的應(yīng)用程序處于文本輸入模式,發(fā)信號通知配對裝置80。例如,如果裝置80是PDA,則用戶可利用輸入筆或者手指觸及在屏幕80上顯示的文本域,從而把配對裝置80應(yīng)用程序的輸入中心調(diào)整到文本域。利用與其它配對裝置相關(guān)的程序,可把其它配對裝置調(diào)整到適當(dāng)?shù)奈谋据斎肽J健?br>
隨后用戶的手指被放入三維傳感器20前面的工作面上的打字位置,或者放在虛擬鍵盤上的打字位置或者簡單地放在工作面上。該步驟用于把用戶手指映象成模板的元素,并在開始打字之前,按照虛擬鍵盤(或者工作面)的按鍵校準(zhǔn)用戶的手指。
在此時刻,三維傳感器20將反復(fù)捕獲用戶手指的輪廓圖。這樣捕獲的數(shù)據(jù)將由軟件285放入如圖7A-70中所示的表格或者矩陣中。
圖7A描繪了當(dāng)被傳感器20成像時,正在擊打?qū)嶋H鍵盤的用戶的左手。傳感器20的視場(FOV)有意指向上工作面,在本例中,所述工作面是實(shí)際鍵盤。圖中表示了左手的五個手指,并且可被識別為手指1(拇指)、2、3、4和5(小指)。手指后面及手指之間的交叉陰影區(qū)表示太暗以致不能被本發(fā)明看作是用戶手指一部分的區(qū)域。在實(shí)際的設(shè)置中,暗度當(dāng)然不斷變化,而不是這里為了表示理解及說明所表示的均勻黑暗區(qū)。
圖7A中表示了覆蓋網(wǎng)格狀矩陣或者表格,其中不同的區(qū)域具有代表用戶手指的相關(guān)表面部分和傳感器20之間的標(biāo)準(zhǔn)化矢量距離的量化數(shù)字。要明白這些量化距離數(shù)值由本發(fā)明,例如由軟件285動態(tài)計(jì)算。在圖7A中所示的映象中,低的數(shù)字值,例如1、2表示近的距離,較高的數(shù)值,例如7、8表示遠(yuǎn)的距離?!癲”值表示察覺的不連續(xù)點(diǎn)。根據(jù)與傳感器20相關(guān)的技術(shù),“d”值可相差極大地振蕩,并且指示前景對象的不存在。在圖7A中,量化距離值指出和其距離值較低,例如1的用戶左手食指相比,用戶左手拇指遠(yuǎn)離傳感器20(由為7和8的相對較高的距離指出)。另外可看出用戶左手小指與傳感器20的距離一般比用戶的食指與傳感器20的距離大。
圖7A的中央部分是表示標(biāo)準(zhǔn)化距離值以及適當(dāng)?shù)胤降摹癲”項(xiàng)目的表格或矩陣。圖7B-7O中表示了類似的表格。表格項(xiàng)目可代表用戶手指的輪廓,并且已把陰影增加到這些表格中,以幫助表示到用戶手指輪廓的距離數(shù)據(jù)的潛在映象。從圖7A的FOV部分指向表格中各列的箭頭指出各個數(shù)據(jù)列如何能夠表示用戶手指位置的輪廓。在圖7A-7O中所示的表格中,帶圈的數(shù)字“1”、“2”…“5”分別描述對應(yīng)于用戶左手拇指(手指“1”)、食指、中指、無名指和小指(手指“5”)的感知位置的輪廓。
如前所述,在本發(fā)明中最好使用模板來幫助從傳感器20獲得的數(shù)據(jù)中識別用戶手指位置。當(dāng)不連續(xù)點(diǎn)不一定明顯時,模板可幫助分類算法(或者分類程序)285區(qū)分手指之間的邊界。例如,在圖7A中,用戶的第三和第四手指(手指3和4)相對靠近在一起。
圖7A底部所示的是以傳感器感知的距離值、動態(tài)速度值的本發(fā)明的分析以及與識別在什么時間哪些按鍵(真實(shí)的或者虛擬的)正被按下的整體任務(wù)相關(guān)的直觀推斷為基礎(chǔ)的用戶正在鍵入內(nèi)容的動態(tài)顯示。從而,在圖7A中捕捉的時刻,因?yàn)椴糠宙I入的短語100可出現(xiàn)在配對裝置80的顯示器90上,用戶的左手食指(手指2)看起來剛剛鍵入了可能是句子“The quick brown fox jumped over the lazy dog”中的字母“f”。
軟件例程285的校準(zhǔn)階段最好用戶便于使用。因此,例程285實(shí)質(zhì)上把虛擬鍵盤移動或者重定位到用戶手指之下??赏ㄟ^把從傳感器20獲得的圖像映射成模板的手指,隨后把觸及的按鍵映射到用戶的自然位置進(jìn)行這種程序,在模板構(gòu)建階段確定所述自然位置。
校準(zhǔn)步驟確定初始狀態(tài)或者靜止位置,并把位于靜止位置的用戶手指映射到鍵盤上的特定按鍵。如圖1B中所示,在假定存在屏幕90的情況下,最好在配對裝置80的屏幕90上顯示的軟鍵盤105上突出顯示被觸及或者非常接近(但是未被按下)的“按鍵”107。所述靜止位置還是打字結(jié)束時用戶手指的位置。
在實(shí)際打字過程中,例程285感知用戶的手指,并把手指的移動映象到虛擬鍵盤上的正確按鍵。在開始該算法的這一階段之前,已使相關(guān)配對裝置80應(yīng)用程序進(jìn)入文本輸入模式,并且相關(guān)配對裝置80應(yīng)用程序?qū)?zhǔn)備接受鍵盤事件(例如KEYUP和KEYDOWN)。
可以多種方式實(shí)現(xiàn)例程285(或者等同物)。在優(yōu)選實(shí)施例中,例程285使用三個模塊?!胺诸惓绦颉蹦K用于把各幀中的群映象成用戶手指?!案櫝绦颉蹦K用于通過搜索擊打按鍵的手指,并且確定用戶手指和虛擬鍵盤或者其它工作面上某一位置之間擊打點(diǎn)的坐標(biāo),跟蹤活動手指的動作。第三個“映象程序”模塊把用戶手指的擊打點(diǎn)映象到虛擬鍵盤上的特定按鍵,并向配對裝置80發(fā)送按鍵事件。下面將更詳細(xì)地說明這些例證模塊。
分類程序模擬的任務(wù)是針對以光學(xué)方式獲得的各幀數(shù)據(jù),感知由傳感器20產(chǎn)生的場景的輪廓圖。群集模塊將識別具有某些共性,例如為同一表面的一部分的群集。重要的是,分類程序?qū)?biāo)記每個群集,從而可在獲得的連續(xù)數(shù)據(jù)幀中把相同的群集和其它群集區(qū)分開。分類程序還確定各個群集的邊界,具體地說確定各個群集的尖端,所述尖端對應(yīng)于用戶手指的指尖。目的不是識別用戶手指本身,因?yàn)閷?shí)際上用戶可能正拿著用于按下虛擬按鍵或者按鍵的虛擬位置的棒狀物或者輸入筆。從而上述模板主要用于對這些群集賦予含義,并幫助形成群集。
一種成群或者定位群集的方法是使用最近相鄰條件來形成最近相鄰分區(qū),其中各個分區(qū)映象為用戶的各個手指。這種映象會產(chǎn)生用戶左手的5個分區(qū)和用戶右手的5個分區(qū),其中可單獨(dú)處理左手分區(qū)和右手分區(qū)。
一種分區(qū)形成方法以Llyod算法為基礎(chǔ)。在圖像處理領(lǐng)域中眾所周知的該算法的細(xì)節(jié)可在Allen Gersho和Robert Gray的教科書VectorQuantization and Signal Compresseion中找到(參見第362頁)。舉例來說,假定Ct={ci;=1,…5}為一只手的分區(qū)集合。在各個分區(qū)中,確定一組點(diǎn) 其中函數(shù)d()是該集合中兩個點(diǎn)之間的距離的量度。如果d(r,ci)=d(r,cj),則通過把該點(diǎn)放入下標(biāo)較小的集合中可打破這種“相等關(guān)系”。對于兩個點(diǎn)a和b來說,d(a,b)可被定義為(xa-xb)2+(ya-yb)2+(za-zb)2,其中x、y和z是從傳感器20獲得的軸線測量結(jié)果。函數(shù)center(Pi,t)可被定義為 Pi,t中點(diǎn)的重心或者質(zhì)心。接下來定義Ct+1={center(Pi,t)=1,…5。通過利用新的質(zhì)心,如上所述可找到Pi,t+1。繼續(xù)進(jìn)行迭代(例如由例程285或者等同物進(jìn)行),直到兩個連續(xù)Pi集合的全體元素保持不變?yōu)橹埂R话銇碚f,通過3-4次迭代,迭代收斂,并且最終的集合Pi中的點(diǎn)是各個用戶手指的點(diǎn)群集。利用這種方法,分類程序的根本目的不是識別用戶手指本身,而是確定哪個按鍵被用戶手指擊打。這種觀察使得分類程序能夠容許擊鍵區(qū)外圍中不影響系統(tǒng)性能的成群誤差。
下面將根據(jù)圖7A-7O中所示的矩陣更充分地說明跟蹤程序模塊,在圖7A-7O中,群集被描影,以幫助在視覺上理解數(shù)據(jù)。感知的群集最好被輸入將持續(xù)跟蹤各個群集的移動的跟蹤程序模塊中。跟蹤程序模塊尤其注意較快的上下移動,并將計(jì)算群集的速度和方法。
圖7D-7K描繪了表示當(dāng)用戶的第二手指向上升起,隨后向下移動,從而擊打在位于第二手指指端之下的(虛擬)按鍵時獲得的一系列圖像的矩陣表格。被跟蹤程序模塊密切監(jiān)視的各個群集的尖端最好已被分類程序模塊識別出。在實(shí)際的圖像中,其它用戶手指也可能輕微移動,但是在所述的例子中,分類程序確定和其它手指的移動相比,左手食指(手指2)的加速度變化率明顯較大。
在圖7D-7D中,增加了表示感知的群集(例如用戶手指)的方向和尖端的指示箭頭。在圖7D-7F中,手指移動的群集向上,圖7F表示用戶手指的最大向上位置,例如根據(jù)傳感器20獲得的數(shù)據(jù)確定的最大Y軸位置。在圖7G-7H中,手指的群集現(xiàn)在向下移動,例如朝著虛擬鍵盤50或者工作面60移動。在圖7I中,感知用戶手指和虛擬按鍵或者工作面上的按鍵位置的接觸。
例程285(或者其它例程)可按照幾種方式計(jì)算指尖的垂直速度。在優(yōu)選實(shí)施例中,跟蹤程序模塊通過用在該序列內(nèi)獲得的幀的數(shù)目去除指尖的最高位置和最低位置之間的差值,計(jì)算用戶指尖(由分類程序識別)的垂直速度。利用依據(jù)幀數(shù)的Y軸分辨率來計(jì)算該速度,所述Y軸分辨率與每秒的幀速率無關(guān)。為了記錄鍵擊,計(jì)算的Y軸速度必須等于或大于閾值速度。閾值速度是軟件285使用的一個參數(shù),并且最好在個性化步驟內(nèi)用戶能夠進(jìn)行調(diào)整。
圖7J-7O描繪其中一個更復(fù)雜的序列表示用戶左手食指(手指2)沿下后方的移動的矩陣表格。在圖7O中,該手指動作被表示成到達(dá)在虛擬鍵盤的第一行中的某一按鍵(或者裝置80前面的工作面上會找到這樣的虛擬按鍵的位置)上的鍵擊的頂點(diǎn)。
現(xiàn)在提及映象程序模塊,當(dāng)其確定已檢測到鍵擊時,跟蹤程序模塊將通知映象程序模塊,并且跟蹤程序模塊傳遞群集尖端的群集尖端(X、Y、Z)坐標(biāo)。映象程序模塊使用Z軸值確定虛擬鍵盤上的行位置,并使用X軸和Y軸值確定該行內(nèi)的按鍵。例如參見圖1A,坐標(biāo)(X、Y、Z)位置(7、0、3)可表示虛擬鍵盤上的字母“T”。同樣要明白各個模塊最好包括軟件例程285的各個部分,不過也可使用其它例程,包括由除CPU285之外的其它執(zhí)行裝置執(zhí)行的例程。
在不脫離下述權(quán)利要求限定的本發(fā)明的主題和精神的情況下,可對公開的實(shí)施例做出修改和變化。例如如果需要,可采用一個以上的傳感器來獲取三維位置信息。
權(quán)利要求
1.一種用戶利用虛擬輸入裝置,把數(shù)據(jù)手動輸入配對系統(tǒng)的方法,所述方法包括下述步驟(a)提供能夠收集所述至少一個用戶手指相對于工作面的相對位置的三維位置信息的傳感器,利用所述用戶手指,用戶可在所述工作面上輸入數(shù)據(jù);(b)處理由所述傳感器收集的信息,確定所述用戶手指是否觸及所述工作面的一部分,并且如果觸及一部分工作面,則確定所述觸及的位置;和(c)把和所述觸及的所述位置相稱的數(shù)字信息輸出給所述配對系統(tǒng)。
2.按照權(quán)利要求1所述的方法,其中所述傳感器利用從傳感器到所述用戶手指的表面部分的飛行時間來收集所述信息。
3.按照權(quán)利要求1所述的方法,其中步驟(a)包括提供寬高比小于21的固態(tài)傳感器。
4.按照權(quán)利要求1所述的方法,其中所述用戶手指選自(i)用戶一只手上的一個手指,和(ii)由用戶的一只手控制的輸入筆設(shè)備。
5.按照權(quán)利要求1所述的方法,其中所述工作面選自(i)三維空間,(ii)物理平面,(iii)基體,(iv)支承實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射用戶可視的打字指導(dǎo)的基體,(vii)支承實(shí)際鍵盤的用戶可視圖像,并且包括當(dāng)被所述用戶手指按下時,提供觸覺反饋的被動式鍵狀區(qū)域的被動式基體,和(viii)當(dāng)使用時尺寸至少為6″×12″,但是當(dāng)不使用時尺寸小于6″×8″的基體。
6.按照權(quán)利要求1所述的方法,還包括向所述方法的所述用戶提供引導(dǎo)放置所述用戶手指的反饋,所述反饋包括下述至少一種反饋(i)模擬用戶擊打?qū)嶋H鍵盤的觸覺反饋,(ii)由所述配對裝置產(chǎn)生的聽得見的反饋,(iii)在所述配對裝置上顯示的描述至少一個鍵盤按鍵的圖像的視覺反饋,(iv)在所述配對裝置上顯示的描述鍵盤按鍵的視覺反饋,其中在視覺上可把鄰近所述手指的按鍵和被所述手指觸及的按鍵區(qū)分開,和(iii)在所述配對裝置上顯示的描述所述用戶手指輸入的數(shù)據(jù)的視覺反饋。
7.按照權(quán)利要求1所述的方法,其中所述數(shù)據(jù)至少包括下述一種數(shù)據(jù)(i)代表字母數(shù)字字符的數(shù)字代碼,(ii)代表命令的數(shù)字代碼,(iii)代表被所述用戶手指跟蹤的點(diǎn)的軌跡的數(shù)字代碼。
8.按照權(quán)利要求1所述的方法,其中步驟(c)包括至少利用下述之一(i)所述用戶手指的末端部分的三維位置,(ii)所述末端部分在至少一個方向上的速度信息,(iii)使獲得的信息與所述用戶手指的模板模型匹配,(iv)滯后信息處理,和(v)正被輸入數(shù)據(jù)的語言知識,相對于所述工作面上的位置,確定所述末端部分的空間位置。
9.按照權(quán)利要求1所述的方法,還包括把所述用戶手指的指尖部分的三維位置映象到實(shí)際鍵盤上的按鍵,并且確定如果所述按鍵存在于所述工作面上,則所述按鍵中的哪些按鍵已被擊打。
10.按照權(quán)利要求1所述的方法,其中所述用戶手指包括所述方法的用戶的多個手指或者一只手,其中數(shù)據(jù)由所述傳感器以幀的形式收集,并且步驟(b)包括處理在連續(xù)幀中獲得的數(shù)據(jù),以確定和所述用戶的一只手上的至少兩個手指有關(guān)的三維位置信息,包括至少兩個手指的垂直速度分量。
11.按照權(quán)利要求1所述的方法,其中所述配對系統(tǒng)至少包括下述一種裝置(i)PDA,(ii)無線電話機(jī),(iii)機(jī)頂盒,(iv)計(jì)算機(jī),和(v)適于接受輸入數(shù)據(jù)的器具。
12.一種和適合于接收由用戶手動提供的數(shù)字輸入的配對裝置一起使用的系統(tǒng),包括能夠收集至少一個用戶手指相對于工作面的相對位置的三維位置信息的傳感器,通過利用所述用戶手指,用戶可在所述工作面上把數(shù)據(jù)輸入所述配對裝置中;處理由所述傳感器收集的信息,以確定所述用戶手指是否觸及所述工作面的一部分,并且如果觸及一部分工作面,則確定所述觸及的位置的處理器;和所述處理器把和所述觸及的所述位置相稱的數(shù)字信息輸出給所述配對系統(tǒng)。
13.按照權(quán)利要求12所述的系統(tǒng),其中所述傳感器使用寬高比小于21的能量發(fā)射裝置,并且通過利用從傳感器到所述用戶手指的表面部分的飛行時間來收集所述信息。
14.按照權(quán)利要求12所述的系統(tǒng),其中所述用戶手指選自(i)用戶一只手上的一個手指,和(ii)由用戶的一只手控制的輸入筆設(shè)備。
15.按照權(quán)利要求12所述的系統(tǒng),其中所述工作面選自(i)三維空間,(ii)物理平面,(iii)基體,(iv)支承實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射用戶可視的打字指導(dǎo)的基體,(vii)支承實(shí)際鍵盤的用戶可視圖像,并且包括當(dāng)被所述用戶手指按下時,提供觸覺反饋的被動式鍵狀區(qū)域的被動式基體,和(viii)當(dāng)使用時尺寸至少為6″×12″,但是當(dāng)不使用時尺寸小于6″×8″的基體。
16.按照權(quán)利要求12所述的系統(tǒng),其中所述系統(tǒng)向所述系統(tǒng)的用戶提供引導(dǎo)放置所述用戶手指的反饋,所述反饋包括下述至少一種反饋(i)模擬用戶擊打?qū)嶋H鍵盤的觸覺反饋,(ii)由所述配對裝置產(chǎn)生的聽得見的反饋,(iii)在所述配對裝置上顯示的描述至少一個鍵盤按鍵的圖像的視覺反饋,(iv)在所述配對裝置上顯示的描述鍵盤按鍵的視覺反饋,其中在視覺上可把鄰近所述手指的按鍵和被所述手指觸及的按鍵區(qū)分開,和(iii)在所述配對裝置上顯示的描述所述用戶手指輸入的數(shù)據(jù)的視覺反饋。
16.按照權(quán)利要求12所述的系統(tǒng),其中所述數(shù)據(jù)至少包括下述一種數(shù)據(jù)(i)代表字母數(shù)字字符的數(shù)字代碼,(ii)代表命令的數(shù)字代碼,(iii)代表被所述用戶手指跟蹤的點(diǎn)的軌跡的數(shù)字代碼。
17.按照權(quán)利要求12所述的系統(tǒng),其中所述處理器通過利用下述至少之一(i)所述用戶手指的末端部分的三維位置,(ii)所述末端部分在至少一個方向上的速度信息,(iii)使獲得的信息與所述用戶手指的模板模型匹配,(iv)滯后信息處理,和(v)正被輸入數(shù)據(jù)的語言知識,相對于所述工作面上的位置,確定所述末端部分的空間位置。
18.按照權(quán)利要求12所述的系統(tǒng),其中所述處理器把所述用戶手指的指尖部分的三維位置映象到實(shí)際鍵盤上的按鍵,并且確定如果所述按鍵存在于所述工作面上,則所述按鍵中的哪些按鍵已被擊打。
19.一種允許用戶利用虛擬輸入裝置手動輸入數(shù)據(jù)的系統(tǒng),包括能夠收集至少一個用戶手指相對于工作面的相對位置的三維位置信息的傳感器,通過利用所述用戶手指,用戶可在所述工作面上把數(shù)據(jù)輸入所述配對裝置中;處理由所述傳感器收集的信息,以確定所述用戶手指是否觸及所述工作面的一部分,并且如果觸及一部分工作面,則確定所述觸及的位置的處理器;和耦接地接收從所述處理器輸出的和所述觸及的所述位置相稱的數(shù)字信息的配對系統(tǒng)。
20.按照權(quán)利要求19的系統(tǒng),其中所述用戶手指選自(i)用戶一只手上的一個手指,和(ii)由用戶的一只手控制的輸入筆設(shè)備,其中所述工作面選自(i)三維空間,(ii)物理平面,(iii)基體,(iv)支承實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射實(shí)際鍵盤的用戶可視圖像的基體,(v)其上投射用戶可視的打字指導(dǎo)的基體,(vii)支承實(shí)際鍵盤的用戶可視圖像,并且包括當(dāng)被所述用戶手指按下時,發(fā)出聽得見的聲音的被動式鍵狀區(qū)域的被動式基體,和(viii)當(dāng)使用時尺寸至少為6″×12″,但是當(dāng)不使用時尺寸小于6″×8″的基體。
全文摘要
用戶利用諸如鍵盤的圖像之類的虛擬輸入裝置,把數(shù)字?jǐn)?shù)據(jù)輸入諸如PDA、蜂窩電話機(jī)、應(yīng)用設(shè)備之類的配對系統(tǒng)中。傳感器收集和用戶手指與按鍵在實(shí)際鍵盤上所處位置的相對位置有關(guān)的三維位置信息。就手指位置、速度和形狀處理該信息,以確定虛擬按鍵何時被擊打。處理后的數(shù)字信息被輸出給配對系統(tǒng)。配對系統(tǒng)可顯示鍵盤的圖像,包括顯示用戶手指的鍵盤圖像,和/或字母數(shù)字文本(當(dāng)用戶在虛擬輸入裝置上輸入這樣的數(shù)據(jù)時)。
文檔編號G06F3/033GK1439151SQ01807299
公開日2003年8月27日 申請日期2001年2月12日 優(yōu)先權(quán)日2000年2月11日
發(fā)明者艾巴斯·拉菲, 塞路斯·班吉, 納茲姆·卡里米, 什拉茲·什弗吉 申請人:卡尼斯塔公司