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