用于非接觸式打字的系統、設備和方法
【專利摘要】提供用于通過非接觸式手勢和運動接收數據輸入的系統、設備、方法和非暫時性計算機可讀介質。例如,數據輸入設備包括用于接收來自傳感器的信息的至少一個處理器。該處理器可被配置成接收來自傳感器的用戶的手的傳感器數據,用戶的手與所顯示的鍵盤隔開一段距離并且不與所顯示的鍵盤接觸;并且利用所接收的傳感器數據追蹤在空中與所顯示的鍵盤圖像有一段距離的一個或多個手指。該處理器還可以被配置成使在空中的所述一個或多個手指的位點與在所顯示的鍵盤中的所述多個按鍵的圖像相關,并且基于所述一個或多個手指在空中的相關位點和由用戶執行的預定義手勢的檢測,從鍵盤圖像選擇按鍵。
【專利說明】
用于非接觸式打字的系統、設備和方法[0001]相關申請本申請要求申請號為61 /889,348,2013年10月10日提交的美國臨時申請的優選權,其 全部內容通過引用結合于本文中。
技術領域
[0002]本發明涉及非接觸式數據輸入,比如打字,并且更具體地,涉及使用一個或多個傳感器以檢測非接觸式數據輸入的設備和計算機可讀介質。【背景技術】
[0003]允許用戶與設備或設備上運行的應用進行交互,這在許多不同設置中都是有用的。例如,電子系統包括設備(例如,鍵盤,鼠標和控制桿),使得用戶能夠輸入和操作數據, 并使該系統執行其它各種動作。然而,越來越多的觸控式輸入設備,如鍵盤、鼠標和控制桿, 被那些允許非接觸式用戶交互的設備所代替或補充。例如,系統可能包括的圖像傳感器,該圖像傳感器捕獲包括用戶的手和/或手指等的用戶圖像。該設備可以包括處理器,該處理器被配置成接收這樣的圖像并基于用戶的手和手指執行的非接觸式手勢發起動作。
[0004]非接觸式系統通常檢測整個手的大的動作,但是這些系統缺乏足夠的準確度和精密度來啟用與物理的計算機外圍設備的使用相競爭的數據輸入能力。例如,這些系統不能檢測細微運動和手勢以充分模擬在鍵盤上的打字,因此,有必要改進非接觸式打字和數據輸入技術,以提供更好且更精確的用戶體驗。
【發明內容】
[0005]在一個公開的實施例中,公開了非暫時性計算機可讀介質,其具有存儲在其上面的指令,該指令可以由至少一個處理器執行以進行非接觸式數據輸入的操作,比如打字。該操作可以包括顯示包括多個按鍵的鍵盤圖像;從至少一個傳感器接收用戶的手的傳感器數據,該用戶的手與所顯示的鍵盤隔開一段距離并且不與所顯示的鍵盤圖像接觸;基于所接收的圖像追蹤在空中與所顯示的鍵盤圖像有一段距離的用戶的手的一個或多個手指,使所述一個或多個手指在空中的位點與多個按鍵的圖像相關聯;以及基于該一個或多個手指在空中的相關位點和由用戶執行的對預定義手勢的檢測,從鍵盤圖像中選擇按鍵。
[0006]在另一公開的實施例中,公開了一種數據輸入設備。該數據輸入設備包括至少一個處理器,該至少一個處理器被配置成:顯示鍵盤圖像,所顯示的鍵盤圖像包括多個按鍵; 從至少一個傳感器接收用戶的手的傳感器數據,所述用戶的手與所顯示的鍵盤隔開一段距離并且與所顯示的鍵盤圖像是非接觸的;基于所接收的傳感器數據追蹤在空中與所顯示的鍵盤圖像有一段距離的用戶的手的一個或多個手指;使所述一個或多個手指在空中的位點與所述多個按鍵的圖像相關聯;以及基于所述一個或多個手指在空中的關聯位點和由用戶執行的對預定義手勢的檢測,從鍵盤圖像選擇按鍵。
[0007]將在以下描述中的部分闡述與實施例有關的其他方面,并且從描述中可以理解本發明的其他方面,或者可以通過公開的實施例的實踐學習本發明的其他方面。
[0008]可以理解的是,以上整體概述和以下詳細描述僅是示例性和解釋性的,并非對權利要求的限制。【附圖說明】
[0009]合并在本說明書中并構成本說明書的一部分的附圖舉例說明了公開的各種實施例,在該附圖中:圖1A舉例說明了用于實現所公開的實施例的示例性系統;圖1B舉例說明了用于實現所公開的實施例的另一示例性系統;圖2舉例說明了根據所公開的一些實施例的示例性方法;圖3舉例說明了根據所公開的一些實施例的鍵盤模式和鼠標模式的圖形表示。
[0010]圖4舉例說明了按鍵區域尺寸的圖形表示。
[0011]圖5A和5B舉例說明了鍵盤行選擇的圖形表示。【具體實施方式】
[0012]所公開的實施例涉及用于非接觸式打字的系統、設備和方法。在一些實施例中,非接觸式打字可以包括在用戶和計算設備或連接至計算設備的任何外圍設備之間沒有進行物理接觸的情況下,將數據輸入計算設備中。即,可以使用由一個或多個傳感器收集的關于在空中檢測到的手和/或手指的運動的信息將數據輸入計算設備中。利用在空中的個別手和/或手指運動的檢測和分析,促進非接觸式數據輸入的準確度,從而提供用于輸入數據的有效機制。
[0013]為了便于傳感器信息收集以用于非接觸式打字,顯示設備可以顯示鍵盤圖像,作為用戶在空中進行模擬打字或鼠標操作的手和手指運動的參考。處理器可以通過與傳感器有線或無線連接接收所收集的傳感器信息,并且分析所收集的傳感器信息。基于該分析,該處理器可以區分個別手指和手,并追隨每個手指和手的空中運動,以及時確定手指和手在多個點的位置,從而追蹤在三維空間中的手和手指。該處理器可將三維空間部分分配給所顯示的鍵盤中的按鍵,并且關聯手和手指的位置與分配區域,從而關聯個別手指與所顯示的鍵盤中的按鍵。
[0014]當滿足預定義的條件同時手指保持與鍵盤關聯時,該處理器可以選擇一個或多個按鍵以進行數據輸入。例如,當手指進行打字運動(比如,指尖大致向下的動作)時,該處理器可以確定用戶意圖輸入與所關聯的按鍵有關的數據,并且選擇該按鍵進行數據輸入。
[0015]如下文更詳細的描述,該處理器可以修改分配至鍵盤按鍵的空間區域,并且分析檢測出的手和手指運動、姿勢、手勢和方向,以提高非接觸式打字的效率和準確度,并且因此改進處理器在識別數據輸入和選擇意圖按鍵的功能。
[0016]以下將結合附圖對本發明的示例性實施例進行詳細描述。在可能情況下,附圖所使用的相同附圖標記表示相同或相似的部件。
[0017]本發明的實施例可以包括數據輸入系統,該數據輸入系統具有一個或多個部件, 比如數據輸入設備,其被配置成通過非接觸式手勢接收數據輸入。其它有創造性的實施例可以包括非暫時性計算機可讀介質,該非暫時性計算機可讀介質包括指令,當由至少一個處理器執行時,該指令使至少一個處理器執行通過非接觸式手勢接收數據輸入的操作。
[0018]圖1A為展示數據輸入系統100的一個示例的圖,該數據輸入系統100可以實現所公開的實施例。系統100可以檢測來自用戶102的一個或多個手指106和/或一個或兩個手104 的非接觸式手勢、姿勢和運動。如圖1A所示,系統100可以包括至少一個傳感器110、CPU 120 和顯示器130。該系統100的這些部件可以通過一個或多個有線或無線通信鏈路在通信上相連。
[0019]傳感器110可以被配置成收集關于靠近傳感器110的空間中的活動的信息。在一些實施例中,例如,該傳感器110可以包括,一個或多個攝像頭、光傳感器、紅外(IR)傳感器、超聲傳感器、接近傳感器、CMOS圖像傳感器、短波紅外(SWIR)圖像傳感器、反射式傳感器、單個的感光器或能夠掃描區域的1-D線傳感器、2-D傳感器、包括例如多個2-D圖像傳感器的立體傳感器、深度傳感器、麥克風、運動傳感器比如加速度計、位置傳感器比如GPS接收器、或視線追蹤器。傳感器110可以與透鏡關聯以將特定區域的光聚焦在傳感器110上。
[0020]該傳感器110可以靠近顯示器130并且獲得三維視覺空間的圖像。如圖1A所描述, 用戶102位于視覺空間中,因此呈現在由傳感器110獲得的傳感器數據比如圖像數據中。例如,該傳感器110的輸出可以為2D(二維)彩色或紅外(IR)視頻。可替換地,該傳感器110可以為深度視頻系統,該深度視頻系統包括圖像傳感器或兩個2D立體圖像傳感器。傳感器110可以包括上文提及的一些或所有傳感器類型的組合。
[0021]由傳感器110捕獲的圖像可以通過傳感器110數字化,并且輸入到CPU120的處理器 122中,或者可以以模擬形式輸入到處理器122中且通過處理器122數字化。除了別的以外, 示例性的接近傳感器還可以包括:電容傳感器、電容位移傳感器、激光測距儀、使用飛行時間(TOP)技術的傳感器、紅外傳感器、檢測磁畸變的傳感器,或能夠產生指示靠近該接近傳感器的對象的存在的信息的任何其它傳感器。在一些實施例中,由接近傳感器產生的信息可以包括對象與該接近傳感器的距離。接近傳感器可以是單個傳感器,或者可以是傳感器組。雖然圖1A中所示為單個傳感器110,但系統100可包括多類傳感器110和/或類型相同的多個傳感器110。例如,多個傳感器110可以設置在單個設備比如容納系統100的所有部件的數據輸入設備內,在該系統1〇〇的其它部件外部的設備中,或在具有至少一個外部傳感器 110和置于系統1〇〇的另一部件(例如,CPU120或顯示器130)的至少一個傳感器110的其它各種結構中。[〇〇22] 在一些實施例中,CPU120可以包括至少一個處理器122和存儲器124。該CPU120可以并入數據輸入設備中,該數據輸入設備除了別的之外,包括:手機、智能眼鏡、個人計算機 (PC)、娛樂設備、機頂盒、電視機、移動游戲機、平板計算機、電子閱讀器、便攜式游戲機、筆記本電腦或超級筆記本電腦等便攜式計算機、廚房電器等家用電器、通信設備、空調、塢站、 移動視頻游戲設備等游戲機、數碼攝像頭、手表、娛樂設備、揚聲器、智能家居設備、媒體播放器或媒體系統、定位設備、微型投影儀或嵌入式投影儀、醫學顯示設備等醫學設備、車輛、 車載/機載資訊娛樂系統、導航系統、可穿戴設備、增強現實功能設備、可穿戴護目鏡、機器人、交互式數字看板、數字亭、自動售賣機、自動柜員機(ATM)、或可接收來自用戶的數據或向用戶輸出數據的任何其它裝置。此外,包括CPU120的數據輸入設備可以是手持型的(例如由用戶的手握持)或非手持型的。[〇〇23] 該CPU120可以通過一個或多個有線或無線通信鏈路連接至傳感器110,并且可以接收來自傳感器110的數據(比如圖像)或能夠由傳感器110收集的任何數據。在一些實施例中,該CPU120可以通過一個或多個有線或無線通信鏈路接收來自多個傳感器110的數據。 CPU120還可以連接至顯示器130,并且可以向顯示器130發送指令以顯示一個或多個圖像, 比如鍵盤圖像140。雖然圖1A所示為分開的部件,但在一些實施例中,傳感器110、CPU120,和顯示器130可以并入單個數據輸入設備中,或并入具有傳感器110、CPU120,和顯示器130的各種組合的兩個設備中。[〇〇24]在此使用的處理器322除其它以外,可以包括任何電路或非電子的生物電路,該電路或非電的生物電路可以被配置成對至少一個輸入變量進行邏輯運算,其例如包括,一個或多個集成電路、微芯片、微控制器、微處理器(其可以為中央處理單元(CPU)的全部的或部分)、數字信號處理器(DSP)、現場可編程門陣列(FPGA)、圖形處理單元(GPU)、或適用于執行指令或執行邏輯運算的本領域已知的任何其它電路。該處理器122可以包括,例如,一個或多個通用處理器、DSP(數字信號處理器)、GPU(圖形處理單元),或者被配置成運行一個或多個軟件程序或以其他方式執行指令的任何其它設備。可替換的處理器122可以為專用硬件、 專用集成電路(ASIC)。作為另一可替換方案,該處理器122可以為專用硬件、專用集成電路 (ASIC),以及通用處理器、DSP(數字信號處理器)、GPU(圖形處理單元)中的任何一個或多個的組合。雖然圖1A中所示為一個處理器,但系統100可以包括多個處理器,其可以提供不同的處理能力(例如專用圖像處理)和/或可以提供平行的處理功能。可以使用單個處理器實現多種功能,或可以在多個處理器之間劃分多個相關和/或不相關的功能。[〇〇25] 在一些實施例中,儲存器124可以包括,例如,非暫態性存儲器、R0M、EEPR0M、 EAR0M、閃速存儲器設備、磁盤、磁光盤、CD-ROM、DVD-ROM、藍光媒介、非電子的生物存儲器等,并且可能包括指令(比如軟件或固件)或其它數據。圖1A通過示例的方式描述了連接至處理器122的存儲器124。通常,處理器122可以接收由存儲器124存儲的指令和數據。因此, 在一些實施例中,該處理器122執行軟件或固件以通過在輸入數據上操作并且產生輸出而執行功能。但是,該處理器122也可以是,例如,通過在輸入數據上操作并且產生輸出而執行處理的專用軟件或專用集成電路(ASIC)。該處理器122可以是專用軟件、一個或多個ASIC、 一個或多個通用處理器、一個或多個DSP、一個或多個GPU,或能夠處理數字信息的一個或多個其它處理器的任意組合。圖1A描述了作為CPU120的一部分的存儲器124。但是,在可替換的實施例中,該存儲器124可以在CPU120的外部。在一些實施例中,由傳感器110捕獲的信息可以存儲在存儲器124中以在之后被處理或可以在捕獲時就被處理器122立即處理而未存儲在存儲器124中。[〇〇26] 實施例還可以包括顯示器130。該顯示器130可以包括,例如,一個或多個電視機、 計算機顯示器、頭戴式顯示器、廣播參考監視器、液晶顯示器(IXD)屏幕、基于發光二極管 (LED)的顯示器、LED背光IXD顯示器、陰極射線管(CRT)顯示器、電致發光(ELD)顯示器、電子紙/墨水顯示器、等離子顯示面板、有機發光二極管(0LED)顯示器、薄膜晶體管(TFT)顯示器、高性能定址(HPA)顯示器、表面傳導電子發射顯示器、量子點顯示器、干涉調制器顯示器、體掃描顯示器、碳納米管顯示器、變焦鏡顯示器、發射波長顯示器、激光顯示器、全息顯示器、光場顯示器、投影儀和可以投影圖像的表面(包括直接在用戶102的植入式人造眼睛視網膜等眼睛視網膜上的投影),或用于輸出視覺信息和/或使用戶102產生對視覺信息的存在的知覺的任何其它電子設備。
[0027]如上文所述,顯示器130可以接收并執行來自CPU120的指令以顯示一個或多個圖像,比如鍵盤圖像140。鍵盤圖像140可以包括一個或多個按鍵的圖形插圖、形狀或圖標,其代表不同的數據輸入和計算機功能。按鍵可以代表字母數字字符,該字母數字字符包括輸入處理器122中以響應合適按鍵的選擇的符號和表情符;或者代表由處理器122響應合適按鍵的選擇而執行的功能。在一些實施例中,鍵盤圖像140可以包括以網格圖案,或以適合用戶102的需求布局的設置。在一些實施例中,鍵盤圖像140可以包括QWERTY鍵盤、數字鍵盤、 功能鍵、媒體控制件,以及基于用戶102的數據輸入和功能需求所需的任何其它類型的按鍵中的一個或多個圖1B為展示系統的另一示例的圖,該系統可以使用檢測出的來自用戶102的一個或多個手指106和/或一個或兩個手104的非接觸式手勢、姿勢和運動以實現所公開的實施例。圖 1B描述了在可穿帶設備150中體現的系統100。如圖所示,該設備150可以包括一個或多個傳感器160、CPU170,和一個或多個顯示器180。雖然所示的設備150為用戶102頭部佩戴的一副眼鏡,但設備150可以采取被配置成由用戶102穿戴的(例如,連接至衣物)、能夠向用戶102 呈現比如鍵盤圖像140等視覺內容的其它形式。為了下文論述的目的,設備150描述為圖1B 中所示的眼鏡。此外,在此不詳細描述便攜式設備的共同部件(例如,電池)。
[0028] 相對于圖1A中的傳感器110,傳感器160可以包括上文所述的任何一種或多種傳感器類型和構造。特別地,對于圖1B所示的可穿戴式構造,取決于傳感器160的類型,傳感器 160可以設置在設備150的中心,在設備150的側邊、在設備150的一個或多個角落,或設備 150上適于放置傳感器160的任何位點。在一些實施例中,可以將多個傳感器160設置在該設備150上。[〇〇29] 相對于圖1A中的CPU120,CPU170可以包括與上文所述的那些部件類似的部件,比如處理器122和存儲器124。例如,在圖1B所示的可穿戴式構造中,該CPU170可以設置在設備 150的眼鏡框之上或之內。在一些實施例中,CPU170可以為與設備150有線或無線通信的外部設備。
[0030] 設備150可以包括一個或多個顯示器180,比如在設備150的一個或兩個眼鏡鏡片上的顯示器180。相對于圖1A中與可穿帶設備兼容的顯示器130,顯示器180可以包括與上文所述的那些顯示器類似的任何合適的顯示器類型。在一些實施例中,顯示器180可以包括投影儀,該投影儀將圖像直接投影在用戶102的眼鏡的瞳孔上。在其它實施例中,該顯示器180 可以將圖像顯示在設備150的一個或兩個鏡片上或前面,以產生增強現實的假象,使得用戶 102感知顯示的圖像如同浮現在空中,處于用戶102的前面。
[0031]圖2舉例說明了根據所公開的一些實施例的用于非接觸式數據輸入的示例過程 200。在一些實施例中,該過程200可以使用檢測出的打字動作以觸發顯示在虛擬鍵盤上的按鍵的選擇。所檢測的打字動作可以包括用戶102在空中移動他的或她的手指106以觸發按鍵的選擇,同時虛擬鍵盤位于用戶102的手指106的一段距離處。即,所檢測的打字動作涉及空中的運動,該運動不接觸顯示或投影虛擬鍵盤的表面。在此描述的過程200由傳感器110、 CPU120的處理器122,和顯示器130執行,但在一些實施例中,過程200的一些步驟可以由 CPU120的處理器122之外的處理設備執行。此外,在一些實施例中,可以使用包括多個處理器的分布式計算機系統執行的一個或多個步驟,比如處理器122執行過程200的至少一個步驟,并且在聯網設備比如移動電話中的另一處理器執行過程200的至少一個步驟。此外,在一些實施例中,可以使用云計算系統執行過程200的一個或多個步驟。[〇〇32] 在步驟202中,該處理器122可以命令設備,比如顯示器130顯示鍵盤的圖像。顯示器130可以通過顯示鍵盤的圖像,比如鍵盤圖像140,進行響應。所顯示的圖像可以包括多個按鍵。鍵盤圖像140可以顯示在有形顯示設備比如LCD屏幕上,直接投影在用戶102的眼睛上、通過使用全息技術等顯示在空中并與有形設備或表面隔開,或使用任何其它合適的顯示技術顯示。[〇〇33]在步驟204中,處理器122可以接收由傳感器110收集的傳感器數據,包括來自上述類型的一個或多個傳感器110的數據。在一些實施例中,該處理器可以被配置成執行包括接收來自至少一個傳感器的、用戶的手的傳感器數據的操作,所述用戶的手與鎖顯示的鍵盤隔開一段距離的且與所顯示的鍵盤不接觸。例如,傳感器數據可以包括與鍵盤圖像140隔開一段距離且與所顯示的鍵盤圖像140不接觸的用戶102的手104和手指106的圖像。圖像可以包括傳感器110捕獲的一種或多種模擬圖像、傳感器110捕獲或確定的數字圖像、傳感器110 捕獲的數字或模擬圖像的子集、由處理器122進一步處理的數字信息、傳感器110感應到的數據相關信息的數學表達式或變形、以視覺信息(例如代表圖像的頻率數據)呈現的信息、 概念信息(例如對象在傳感器視野中的存在)。該圖像還可以包括指示在捕獲圖像期間的傳感器的狀態、及其參數(例如曝光、幀頻、圖像分辨率、顏色比特分辨率、深度分辨率和傳感器110的視野)的信息,包括在捕獲圖像期間來自其它傳感器的信息(例如接近傳感器信息、 加速計信息)、描述進一步處理以進一步捕獲圖像的信息、捕獲圖像期間的照明條件、傳感器110從數字圖像中提取的特征或與傳感器110感應到的傳感器數據有關的任何其它信息。 此外,“圖像”可以包括與靜止圖像、動作圖像(即,視頻),或任何其它可視化數據有關的信息。在一些實施例中,所接收的來自一個或多個傳感器110的傳感器數據可以包括動作書、 GPS位置坐標和/或方向矢量、視線信息、聲音數據,以及可由不同類型傳感器110測量的任何數據類型。在一些實施例中,傳感器數據可以包括通過結合分析來自2個或更多個傳感器 110的數據獲得的度量。[〇〇34]在步驟206,所述處理器122可分析所接收的傳感器數據以識別與非接觸式打字和數據輸入相關的動作、姿勢,和手勢。在一些實施例中,處理器還可以被配置成執行操作,包括基于所接收的圖像,追蹤與所顯示的鍵盤圖像有一段距離的在空中的用戶的手的一個或多個手指。在一些實施例中,所述處理器122可以通過使用一種或多種已知的數據分析方法,例如基于按時間排序接收的傳感器數據(比如一系列圖像)的圖像分析和對象在三維空間中的動作追蹤,分析傳感器數據。所述處理器122可以將傳感器數據與存儲在存儲器124 等的預定運動、手勢、方位和姿勢的數據庫行比較。步驟260可以包括在傳感器數據中確定并追蹤對象運動(步驟207)、確定傳感器數據中個一個或多個手104和/或一個或多個手指 106的位置和/或位置變化(步驟208),或確定手方位(步驟209)中的一個或多個。步驟207、 208和209可以包括在所接收的傳感器數據中識別用戶的個別手104和手指106,并且在所接收的一系列按時間排序的傳感器數據中追蹤識別的對象的運動、位置和方位。例如,如圖1A 所示,所述處理器122可以接收來自傳感器110的用戶102的手104(包括所述處理器122識別為“A”、“B”、“C”、“D”和“E”的五個手指106)的圖像數據。隨著傳感器110捕獲數據,比如圖像數據,所述處理器122可以及時確定用戶102的手104的一些或所有手指A-E在運動、位置和方位變化中的至少一個變化,以便追蹤在空中與所顯示的鍵盤圖像有一段距離的一個或多個手104和一個或多個手指106。在一些實施例中,使用傳感器比如2D攝像頭所確定的變化可以包括在二維平面的變化。在一些實施例中,使用如下傳感器確定的變化可以包括在三維空間中的變化:單個傳感器110比如3D攝像頭,或傳感器110的組合比如2D攝像頭與深度傳感器,或圖像傳感器和接近傳感器,或線性傳感器和基于“飛行時間”的接近傳感器的組合,或立體攝像頭或包括可以在3D空間中提取用戶的手、手指、指尖的位置的一個或多個傳感器的任何系統。
[0035]在此使用的“運動”可以包括空間中的三維路徑、速度、加速度、角速度、運動路徑,及用戶102的手104和手指106的物理位置或位點的變化的其它已知特征中的一個或多個。
[0036]在此使用的“位置”可以包括在三維空間中的一個或多個維度內的位點,比如對象相對于傳感器110的位點的X、Y,和Z軸坐標。位置還可以包括相對于在所接收的來自傳感器110的傳感器數據中檢測出的另一對象的位點或距離,比如,在圖1A所示的示例中,手指“B”的位點相對于手指“A”的位點。在一些實施例中,位置還可以包括一個或多個手104和/或手指106相對于用戶102的身體的位點,其指示用戶102的體位。
[0037]在此使用的“方位”可以包括一個或多個手104或一個或多個手指106的布局,包括手104和手指106指向的位置或方向。在一些實施例中,“方位”可以涉及所檢測的對象相對于所檢測的另一對象、相對于傳感器110的檢測領域,或相對于所顯示的設備或所顯示的內容的檢測領域的位置或方向。
[0038]在此使用的“姿勢”可以包括在固定點及時確定的手104和/或一個或多個手指106的布局,以及手104和/或一個或多個手指106相對彼此定位的預定布局。在一些實施例中,示例手104的姿勢可以包括手張開并且手指106展開,比如布局成在鍵盤上打字。另一示意性的手勢可以包括手大致合攏并且一個或兩個手指伸展,比如布局成操作計算機鼠標。其它示意性手勢可以包括,例如,手大致朝下展開并且兩個或更多個手指分開,如同放置在有形鍵盤上,和手朝下并且兩個或更多個手指大致彎曲,如同放置在有形計算機鼠標上。
[0039]在此使用的“手勢”可以包括使用所接收的來自傳感器110的傳感器數據檢測檢測出/識別的預定義的運動模式。在此使用的“使用傳感器數據”可以包括分析所接收的來自傳感器110的原始傳感器數據和/或分析從原始傳感器數據延伸的一個或多個度量。在一些實施例中,手勢可以包括與識別的預定義運動模式對應的預定義手勢。該預定義手勢可以涉及指示操作可激活對象的運動模式,比如鍵入鍵盤按鍵、點擊鼠標按鈕,或移動鼠標外殼。在此使用的“可激活對象”可以包括當任何所顯示的視覺代表,當選定或操作該視覺代表時,導致數據輸入或執行功能。在一些實施例中,視覺代表可以包括圖像條目或所顯示圖像比如鍵盤圖像140的部分、虛擬按鍵、虛擬按鈕、虛擬圖標、虛擬旋鈕、虛擬開關,和虛擬滑塊。
[0040]預定義手勢可以為,例如,在可激活對象上的滑動動作、執行兩個手指的對捏動作,或指向該可激活對象、從左到右的手勢、從右到左的手勢、向上的手勢、向下的手勢、推送手勢、打開握緊的拳頭、打開握緊的拳頭并移向傳感器8(也被稱為“爆炸手勢”)、敲擊手勢、推送手勢、揮舞手勢、拍手手勢、反向拍手手勢、將手緊握成拳、捏緊手勢、反向捏緊手勢、展開手上的手指手勢、反向展開手上的手指手勢、指向可激活對象、在可激活對象處保持活動對象以一段預定義的時間、點擊可激活對象、雙擊、點擊右側、點擊左側、點擊底部、點擊頂部、抓住對象、從右側向對象做手勢、從左側向對象做手勢、穿過對象、推送對象、在對象上鼓掌、在對象上揮舞、執行爆炸手勢、執行敲擊手勢、在用兩個手指抓住可激活對象的對象上執行順時針或逆時針手勢、執行單擊拖動釋放手勢,或滑動圖標(比如音量條)。滾動命令的速度可以取決于滾動動作的速度或加速度。可以同時使用不同的活化對象,如不同的手或手指,或者同時使用不同的手勢來激活兩個或更多個激活對象。
[0041]再次參考圖2,在步驟210中,處理器122可以使用確定的運動、位置,和方位以關聯檢測出的一個或多個手指106與在所顯示的鍵盤圖像140中的一個或多個按鍵。在一些實施例中,該處理器可以進一步被配置成執行包括關聯一個或多個手指在空中的位點與多個按鍵的圖像。顯著地,對于在步驟210中使處理器122關聯手指106與鍵盤圖像140的按鍵,基于與在空中的手指106相關的傳感器數據執行手指106和鍵盤圖像140的按鍵之間的關聯并且不需要手指106接觸鍵盤圖像140的任何指示。在圖1A所示的示例中,手指A-E與鍵盤圖像140中標記為按鍵A-E的5個按鍵關聯。注意,圖1A中的按鍵A-E不是用于輸入字母數字字符“A”、“B”、“C”等的按鍵,而是處理器122基于所檢測的在空中的手指A-E的運動、位置/位點,和/或方位指示對應標記為A-E的手指的按鍵。
[0042]再次參考圖2,在步驟212中,處理器122可以基于在空中的一個或多個手指106的關聯位點,并且在滿足預定義條件,同時該一個或多個手指106與一個或多個按鍵保持關聯時,選擇鍵盤圖像140中的一個或多個按鍵。在一些實施例中,該處理器可以進一步被配置成執行包括從鍵盤圖像中選擇按鍵的操作,該操作基于在空中的一個或多個手指的關聯位點和由用戶執行的預定義手勢的檢測,其中預定義手勢可能與預定義條件對應。該預定義條件可以為,例如,在手指106保持與特定按鍵關聯期間的預定義時間段和/或由手指106執行的預定義手勢的檢測、手指106在特定按鍵上移動的檢測,以及在特定按鍵上改變運動方向,或改變與特定按鍵有關的運動方向,或檢測到指示字開始、字結尾的手勢,或連接指示字結尾的字之間的空格,或任何其它合適的預定義條件。例如,處理器122可以檢測一個或多個手指106在鍵盤圖像140的按鍵上的寫字運動,并且檢測由拇指執行的“敲擊”手勢比如字后的“空格”(這也指示字結尾)。通過使用在所接收的傳感器數據中檢測出的動作特征和手勢,所述處理器122可以準確并快速地輸入非接觸式打字數據,而不需要與設備和/或觸摸屏進行物理接觸。
[0043]在一些實施例中,所述處理器122可以通過檢測在所接收的傳感器數據中的手104和/或手指106的動作路徑選擇在鍵盤圖像140中的一個或多個按鍵并且基于所檢測的動作路徑確定在鍵盤圖像140上的手104和/或手指106位點的順序。該處理器122可以基于下面的因素使所檢測的動作路徑和/或確定的位點順序與一個或多個字相關,例如,與鍵盤圖像140上的按鍵相關的對應字符的順序、語言信息比如字或詞數據庫、關于常用字和/或詞的統計數據,和/或由處理器122隨時間收集的用戶102的統計學習數據(包括頻繁的動作路徑,特別是針對用戶102的,和打字習慣包括頻用字、詞語,和與用戶102存儲在存儲器124中相關的打字錯誤)。
[0044]作為另一示例,在一些實施例中,預定義條件可以包括檢測手指106在3D空間中的位點放置至少預定義時間,比如手指106在關聯按鍵上懸停3秒。作為另一示例,在一些實施例中,預定義手勢可以包括朝所顯示的鍵盤圖像140的敲擊動作(指示點擊或打字動作)。
[0045]一旦滿足預定義條件,就執行與選定的按鍵相關的各命令。在步驟214中,處理器122可以記錄與選定的一個或多個按鍵對應的數據輸入。該數據輸入可以包括字母數字字符比如與選定的按鍵相關的字母、數字,或符號,和選定的按鍵相關的計算機功能,或字符和功能的組合。重復過程200的步驟可以允許使用非接觸式數據輸入進行多個字符和/或功能的輸入,因此能夠進行非接觸式打字。
[0046]鍵盤模式和鼠標模式
在一些實施例中,鍵盤圖像140的版本可以包括虛擬鼠標,其形狀和構造與本領域普通技術人員已知的計算機鼠標外圍設備類似。但是,在非接觸式系統中,虛擬鼠標和虛擬鍵盤的組合使用存在一些挑戰。例如,當使用傳統的有形鍵盤和鼠標時,用戶的手在鍵盤和鼠標之間有形地移動,以通過鍵盤來輸入數據和操作鼠標之間轉換從而執行各種操作。但是,在具有虛擬鍵盤和虛擬鼠標的非接觸式環境中,不存在有形鍵盤或有形鼠標。為了使鍵盤至鼠標的虛擬轉換合理化,在一些實施例中,可以通過處理器122識別手勢以確定在一瞬間手104在打字,而下一瞬間可能無縫地用于控制光標移動。該處理器可以進一步被配置成顯示虛擬鼠標的圖像,該虛擬鼠標具有一個或多個可激活的鼠標按鈕和/或虛擬鼠標光標以選擇并點擊與用戶有一段距離的一個或多個圖標或所顯示的對象,并且檢測至少一個第一手勢和至少一個第二手勢,或至少一個第一組手勢和至少一個第二組手勢。在此使用的手104打字的瞬間被稱為“鍵盤模式”,并且手104操作虛擬鼠標的瞬間被稱為“鼠標模式”。該處理器可以在檢測出第一手勢時啟用鍵盤模式,以從所顯示的鍵盤中選擇至少一個按鍵,并且在檢測出第二手勢時啟用鼠標模式,以操作虛擬鼠標。在一些實施例中,該處理器可以通過在第一手勢和第二手勢之間改變使用戶能夠在鍵盤模式和鼠標模式之間切換。
[0047]圖3展示了根據所公開的一些實施例的鍵盤模式和鼠標模式的圖形表示。如圖3所示,處理器122可以通過檢測不同的手勢,比如第一手勢310和第二手勢340,區分鍵盤模式320和鼠標模式370。例如,當處理器122分析所接收的傳感器數據并且確定用戶102通過使其手104成形為手大致張開且手指106展開而形成第一手勢310時,則所述處理器122可以進入鍵盤模式320,并且引起顯示器130在鍵盤模式界面330顯示鍵盤。所述處理器122可以持續處理所接收的傳感器數據以基于所檢測的手勢(比如點擊或打字手勢)從所顯示的鍵盤選擇一個或多個按鍵以進行數據輸入。在一些實施例中,顯示器130可以顯示與用戶102的手104對應的一個或多個虛擬手的圖像,以展示用戶102的手104相對于鍵盤模式界面330中的鍵盤圖像140所處的位置,從而便于更準確和愉快地進行數據輸入。所顯示的虛擬手可以根據所檢測的用戶102的手104的運動而移動,并且指示個別手指在特定按鍵上的定位。例如,通過將虛擬手上的虛擬手指放置在與手指106關聯的各按鍵上,所顯示的虛擬手可以展示手指106的位置為坐落在鍵盤圖像140中一些按鍵的頂部上。在一些實施例中,鍵盤圖像140可以包括用于展示定位在一個或多個按鍵上的一個或多個手指106的任何其它合適的視覺表示,比如通過加亮與一個或多個手指106位點關聯的一個或多個按鍵。
[0048]如果所述處理器122檢測出用戶102已經將其手勢從第一手勢310改變為第二手勢340(轉變350),例如,通過使其手104成形為大致合攏的手和/或一個或多個手指106伸展并且大致向上指的手,則所述處理器122可以從鍵盤模式320轉換成鼠標模式370(轉變360)從而命令顯示器130從鍵盤模式界面330轉變(380)至鼠標模式界面390,從而在用戶102的一段距離處顯示虛擬的鼠標圖像。在一些實施例中,當處理器122檢測出一只手104相對于另一只手104的方位變化時,比如當用戶102向右/左/上/下移動一只手104而另一只手大致保持在相同位置(指示用移動的手104操作鼠標,而不動的手104保持在鍵盤上)時,該處理器122可以從鍵盤模式320轉換成鼠標模式(轉變360)。
[0049]當在鼠標模式370中時,所述處理器122可以實時持續分析傳感器數據以基于手104和手指106的運動和手勢操作虛擬鼠標,從而移動虛擬鼠標或虛擬光標,選擇在虛擬鼠標上的一個或多個按鈕,和/或點擊一個或多個所顯示的可激活對象,比如一個或多個所顯示的圖標。在檢測到用戶102轉換回第一手勢310時,該處理器122可以從鼠標模式370轉變回鍵盤模式320(反向轉變360),并且命令顯示器130從鼠標模式界面390轉換回鍵盤模式界面330(反向轉變380)。
[0050]按鍵區域尺寸
在傳統的有形鍵盤上,許多按鍵的尺寸大致相同,這對有形鍵盤是實用的,但會給虛擬鍵盤,特別是非接觸式數據輸入帶來問題。特別地,在虛擬鍵盤中按鍵尺寸均一可以導致手難以到達鍵盤區域或較頻繁用按鍵的區域的錯誤增加,因為有時這些錯誤是通過選擇接近按鍵而非意圖按鍵而產生的。在一些實施例中,可以通過相對于其它按鍵修改與一些或所有鍵盤按鍵對應的空間降低錯誤率。在一些實施例中,該處理器可以被配置成將空間區域分配給在鍵盤上的字母數字按鍵,并且分配給每個按鍵的空間區域的尺寸可以根據標準而變化,該標準包括按鍵預期使用頻率,和用戶102的手104和手指106的動作特征。
[0051]在一些實施例中,該處理器122可以將不同尺寸的空間區域分配給鍵盤圖像140中的一些按鍵并對其進行修改。為了清楚起見,所顯示的鍵盤圖像140不在修改的按鍵區域尺寸的基礎上改變外觀。相反,所述處理器122可以分配在傳感器310的視野內圍繞用戶102的手104和/或手指106的各種形狀和規格的空間區域。例如,在一些實施例中,所分配的區域可以設置在傳感器110的視野內并且與空間中的位置比如手104首次出現在打字時段的地方或最后鍵入的按鍵的位點相關。
[0052]在一些實施例中,針對鍵盤圖像140中一個或多個按鍵,該處理器122可以基于將被選擇的下一按鍵的概率而動態地修改一個或多個按鍵區域尺寸,盡管顯示在顯示器130上的鍵盤圖像140的按鍵尺寸保持不變。該處理器122可以根據一個或多個因素修改所分配的按鍵區域,該一個或多個因素包括,例如,某按鍵接下來會被選擇的可能性、某按鍵的選擇頻率、到達某按鍵的預定難度、越過按鍵的風險、手指懸停在按鍵上的檢測,或基于詞完成算法(word complet1n algorithm)的某按鍵接下來會被選擇的可能性。
[0053]在一些實施例中,該處理器122可以使用一個或多個用戶的非接觸式打字活動的歷史數據將空間區域分配給按鍵。在其它實施例中,該處理器122可以基于傳感器110收集的用戶102非接觸式打字活動的數據動態改變按鍵區域尺寸。例如,在一些實施例中,該處理器122可以將空間區域分配給鍵盤上的字母數字按鍵,空間區域的尺寸根據包括按鍵預期使用頻率的標準而變化。作為另外的例子,在一些實施例中,該處理器122可以基于接下來將選擇的特定按鍵的預測動態地改變分配給特定按鍵的空間區域。作為另外的例子,在一些實施例中,該處理器122可以基于在按鍵圖像中特定按鍵的位點,比如沿鍵盤的邊緣、在鍵盤的拐角處、遠離鍵盤的中心,或相比靠近常見鍵盤手部署的按鍵被認為是相對難以到達的其它位點等,動態地改變分配給特定按鍵的空間區域。作為另一實例,在一些實施例中,該處理器122可以基于預定的或觀察到的打字錯誤率將空間區域分配給特定按鍵或按鍵組。例如,該處理器122可以增加分配給一個或多個按鍵的一個或多個區域,該一個或多個按鍵可能為頻繁打字錯誤的主體比如錯誤地選擇特定按鍵的下一按鍵或越過該特定按鍵。在一些實施例中,該處理器122可以使用手動打字糾正頻率或使用詞完成算法觀察特定按鍵的一個或多個錯誤率。在一些實施例中,該一個或多個錯誤率可以針對一個或多個按鍵預編程序。
[0054]如圖4所示,鍵盤圖案140可以包括多個按鍵,比如與字母表的數據輸入對應的4個示意性按鍵,包括“E”按鍵、“X”按鍵、“G”按鍵和“N”按鍵,圖4提供這些按鍵的未修改版本和已經修改以便于更準確地進行數據輸入檢測的版本之間的比較。如圖所示,所展示的手周圍的虛線框表示空間區域中分配給4個按鍵中每一個按鍵的區域部分。四個按鍵中每個按鍵的實體框代表與鍵盤圖案140中顯示的按鍵尺寸直接對應的未修改區域,包括E區域40 2、X區域406、G區410,和N區域414。四個按鍵中每個按鍵的虛線框代表由處理器122分配給四個按鍵中每個按鍵的各種尺寸和形狀的修改后區域,以便于更準確地進行數據輸入檢測。該修改后的分配區域包括修改后E區域404、修改后X區域408、修改后G區域412,和修改后N區域416。
[0055]在一些實施例中,該處理器122可以分配包括偏離原按鍵空間的空間的修改后區域。例如,修改后E區域404偏向E區域40 2的左下方。該修改可能是由于,例如,將手放置在修改后E區域404而意圖通過E區域402選擇E按鍵的歷史。因此,為了補償無意越過所需按鍵(下文將更詳細討論),該處理器122可以產生偏離式分配區域,比如修改后E區域404。此外,在一些實施例中,頻繁選擇按鍵的偏離式分配區域可以比原按鍵區域大,如比E區域402更尚的修改后E區域404所不。
[0056]在一些實施例中,該處理器122可以識別較不頻繁選擇的一個或多個按鍵,比如圖4中所示的對安鍵。X區域406代表與)(按鍵對應的未修改的空間區域,并且在一些實施例中,該處理器122可以分配較小的修改后X區域408,當選擇修改后X區域408時,觸發字母“X”的輸入。顯著地,修改后X區域408的所有尺寸小于X區域406,因此,在該實施例中,X按鍵的選擇會要求更用戶102較為謹慎和精確的努力。該處理器122可以將較小的修改后區域分配給較不頻繁使用的一個或多個按鍵,并且將原按鍵區域的部分重新分配給要求較大和/或偏離式區域的按鍵。
[0057]在一些實施例中,該處理器122可以根據接下來會選定的一些按鍵的可能性動態地修改一個或多個分配的按鍵區域。例如,該處理器122可以在不修改周圍按鍵區域或在修改周圍按鍵區域的情況下,將較大區域分配給被認為是接下來可能選擇的按鍵。但是,在一些實施例中,鍵盤圖像140可以保持未修改,并且僅修改空間中看不見的分配區域。該處理器122可以采用一種或多種方法以確定接下來選擇特定按鍵的可能性,比如當手指在一定時間仍然或已經停止移過按鍵時確定手或手指懸停在特定按鍵上方。
[0058]在一些實施例中,該處理器122,可以將擴大的區域分配給比起其它按鍵歷史上較頻繁選擇的按鍵。如圖4所示,修改后G區域412比G區域410在所有尺寸上更大。通過擴大分配給較頻繁選擇按鍵的區域,提高數據輸入的準確性,因為較頻繁選擇的按鍵將被選擇的可能性較高,甚至在用戶102的手指106位于該按鍵附近時。
[0059]取決于所顯示的鍵盤的形狀和布置,一些按鍵可能比其它按鍵更難以到達。例如,當用戶102的手104位于所顯示的鍵盤的中心時,該鍵盤的邊緣或拐角周圍的按鍵可能較不易接近并且要求較多努力以到達并且選擇。在一些實施例中,該處理器122可以通過分配較大區域給較難到達的按鍵以補償這些按鍵。此外,在一些實施例中,該處理器122可以改變分配給難以達到的按鍵的區域的形狀。如圖4所示,N按鍵位于所顯示的鍵盤的右下角并且當用戶102的手104靠近所顯示的鍵盤的中心時,相比,例如所顯示的E、G,和對安鍵,較難到達。該處理器122可以改變分配給N按鍵的N區域414,從而產生修改后N區域416。如圖所示,修改后N區域416比N區域414在尺寸上更大,并且具有修改后形狀比如有角或彎曲邊緣,以便于按鍵的選擇。
[0060]確定意圖按鍵
當在半空中移動一個或多個手指時,用戶通常難以控制手指的動作以精確地停止在分配給意圖按鍵的空間區域內。結果,用戶102的手指106可能越過分配的空間,這可能導致打字錯誤。為了避免越過可能導致的錯誤,在一些實施例中,該處理器122可以要求用戶102將手指106懸停在意圖按鍵的分配區域中,比如在所顯示鍵盤圖像的意圖按鍵上方或附近懸停一定時間段,以使該處理器122確認該意圖按鍵。
[0061]為了檢測懸停,該處理器122可以分析所接收的來自傳感器110的信息以檢測移動手指106的速度并且使速度變化與懸停手勢相關。該處理器122可以確定與懸停相關的按鍵。例如,該處理器122可以使用手指106的空間中的確定位置以確定與手指106懸停的空間區域相關的按鍵。在一些實施例中,該處理器122也可以采用一種或多種算法以確定可能的意圖按鍵(例如,指定用于確定按鍵是否接近懸停手勢的位置的閾值的算法)。
[0062]此外,在非接觸式打字系統中,由于傳感器數據捕獲和處理之間的延遲、或人類大腦處理所顯示圖像(比如移過所顯示的鍵圖像140(如圖3所示及其討論)的虛擬手圖像)所花費的時間的延遲,可能存在系統滯后。在系統滯后期間,該用戶可能會導致認為手指需要保持運動以選擇按鍵或圖標,而實際上另外的運動會導致手指越過該按鍵。這可能引起用戶選擇錯誤的按鍵。在一些實施例中,該處理器122可通過確定用戶可能的意圖并顯示意圖運動而非實際運動考慮系統滯后。
[0063]在一些實施例中,該處理器122可以通過使用所接收的傳感器110信息中的一個或兩個手104和/或一個或多個手指106的一個或多個動作特征,確定用戶102可能的意圖,來預測將被選擇的下一按鍵,以避免越過。例如,傳感器110可以分析所接收的來自傳感器110的圖像并且確定一個或多個動作特征,比如動作矢量、動作速度、速度變化、動作中一個或多個的手104和/或一個或多個手指106的加速和減速、一個或多個手104和/或一個或多個手指106的方位的變化,一個或多個手指106指尖相對于其它手指106指尖和/或相對于手104中心的動作速度或路徑。
[0064]在一些實施例中,該處理器122還可以使用下列中的一個或多個來確定可能意圖:大腦處理視覺反饋的預定量的估計時間、處理器122處理所接收的傳感器110數據(比如所接收的圖像)的預定或計算量的時間、或所選擇的在前按鍵的歷史。例如,當檢測出的動作矢量高于某一水平或閾值,比如當處理器122檢測到一個或多個手指106的運動時,該處理器122可以使得顯示器130向用戶102提供視覺反饋,比如加亮鍵盤圖像140上關聯手指106方位的一個或多個按鍵。該處理器122可以基于動作矢量預測可能的按鍵,以識別在最近的將來(例如,下幾毫秒)很可能有關聯的按鍵。該處理器122可以在手指106實際放置在可能的按鍵上方之前,命令顯示器130加亮可能的按鍵,以考慮處理系統中固有的系統滯后,并且考慮用戶102的任何腦力滯后。腦力滯后可以包括,例如,圖像顯示在顯示器130上的時間和用戶102頭腦識別并理解所顯示圖像的時間之間的少量時間延遲。當用戶102查看虛擬手移過鍵盤圖像140,但用戶102不立即記錄虛擬手的準確位置時,可能存在腦力延遲,使得用戶102過度補償或可能越過該意圖按鍵。通過在手104或手指106到達可能的按鍵的實際位置之前的小間隔處選擇并且加亮可能的按鍵,可以使系統和腦力滯后的負面影響最小化。
[0065]作為另一示例,該處理器122可以使顯示器130沿動作矢量路徑的方向顯示一個以上的加亮按鍵,使得用戶102在實際到達意圖按鍵之前感知“到達”該意圖按鍵,因此用戶102會停止移動手指106,以使對該意圖按鍵的越過程度最小化。例如,顯示器130可以沿檢測的運動路徑加亮兩個按鍵-與檢測出的手指106位置對應的“當前按鍵”,和可能的下一按鍵。提早加亮意圖按鍵的時機可以取決于多個因素,包括系統滯后和人類大腦處理所顯示圖像花費的時間的滯后(即,腦力滯后)、檢測出的速度、動作矢量、鍵被選定的可能性,和用戶102的“動作行為”,比如用戶102隨時間變化的打字習慣,比如常見錯誤、常選按鍵,和常用動作特征。
[0066]在一些實施例中,該處理器122可以學習用戶102的特定“動作行為”,并且使用從用戶的“動作行為”提取的信息來提供視覺反饋(例如,鍵盤上的加量按鍵),以避免越過這些意圖按鍵。“動作行為”參數可以包括,例如,越過特定按鍵的平均距離,和越過鍵盤圖像140的位置。越過距離可以包括增加到可能的下一按鍵的按鍵區域尺寸的空間區域、增加檢測出的動作矢量的方向上的空間區域。例如,如果手指106朝可能的按鍵移至右側,該處理器122可以將越過距離增加到分配給可能的按鍵的區域的右側。
[0067]在一些實施例中,該處理器122可以基于,例如最后鍵入的按鍵與預期詞或短語中的可能的下一按鍵之間的距離確定越過距離。例如,如果該處理器122確定用戶102可能鍵入詞“時間(time)”,該處理器122可以計算在鍵盤圖像140上“t”、“i”、“m”和“e”按鍵之間的一個或多個越過距離。如果鍵盤圖像140包括標準的QWERTY鍵盤,該處理器122可以基于按鍵“t”和“i”(3個按鍵隔開)之間的距離,和/或用戶102在“t”后鍵入“i”的歷史準確度計算“t”和“i”按鍵之間的第一越過距離。接著該處理器122可以基于距離(2個按鍵隔開)和/或用戶102在“i”后鍵入“m”的歷史準確度計算“i”和“m”按鍵之間的第二越過距離。最后,該處理器122可以基于距離(4個按鍵隔開)和/或用戶102在“m”后鍵入“e”的歷史準確度計算“m”和“e”按鍵之間的第三越過距離。在一些實施例中,計算出的越過距離可以與按鍵距離和歷史準確度有直接的關系。即,該處理器122可以計算在鍵盤圖像140中較靠近的兩個按鍵的較小越過距離,并且計算用戶歷史上準確鍵入的按鍵的較小的越過距離。
[0068]可以使用已知的圖像和動作數據分析方法確定動作特征,并且基于確定的動作特征確定手104或手指106最可能的意圖位置。使用所確定的動作特征,該處理器122可以識別一可能的按鍵作為按鍵用戶102接下來意圖要選擇的按鍵,并且選擇該可能的按鍵,即使在該處理器122確定用戶102選擇了非該可能的按鍵的另一按鍵時亦是如此。
[0069]在一些實施例中,該處理器122可以在用戶102正在鍵入時預測下一按鍵。該預測可以使用以下中至少一種:詞完成算法,以及利用與用戶的手104或一個或多個手指106的至少一個位點相關聯的信息而選擇的在前按鍵。該處理器122可以采用已知的詞完成算法,但在一些實施例中,該處理器122采用詞完成算法連同所接收的傳感器110的信息,來預期下一按鍵,以增加按鍵預測準確度。例如,該處理器122可以使用以下中至少一種來預測下一按鍵:詞完成算法,和使用與用戶102的手104的位點或一個或多個手指106的位點的至少一個位點變化相關聯的信息而選擇的在前按鍵。作為另一個例子,處理器122可以使用以下中至少一種來預測下一按鍵:詞完成算法,和使用與用戶102的移動的手104的一個或多個動作特征相關聯的信息的先前所選按鍵。
[0070]在一些實施例中,該處理器122可以被配置成在詞完成之前利用詞完成算法確定用戶正在鍵入的可能的詞/短語,并且命令顯示器130顯示該可能的詞。在一些實施例中,該可能的詞/短語可以包括合適的名字、謗語,和口號、標題(如音樂專輯或電影的標題)。處理器122可以監測所接收的傳感器110的信息以識別指示用戶102對可能的詞的接受或拒絕的手104的方位。在一些實施例中,識別以接受/拒絕可能的詞的手方位可以包括一個或多個手104或手指106的固定姿勢,或一個或多個手104或手指106的動態手勢。例如,該處理器122可以在確定可能的詞并命令顯示器130顯示該可能的詞之后確定用戶將手104放置在第一方位,該第一方位預定義為代表接受所顯示的可能的詞。在一些實施例中,當處理器122識別比如用戶102將手104移開用戶102身體,或用戶102在“向下敲擊”動作中向下移動手102或多個手指的手勢時,該處理器122可以確定用戶102接受該可能的詞。在一些實施例中,當處理器122識別出用戶102從用戶102身體移開手或用戶102在“向上敲擊”動作中向上移動手104或多個手指的手勢時,該處理器122可以確定用戶102拒絕該可能的詞。手的方位和手勢的示例是非限制性的并且用于接受或拒絕可能的詞的其它方位或手勢可以由用戶在設定或學習過程預編程序或限定。接著,該處理器122可以基于識別的手104的第一方位完成可能的詞,而不要求進一步的打字輸入。
[0071]例如,該處理器122可以在確定可能的詞并命令顯示器130顯示可能的詞之后,確定用戶102將手104放置在第二方位,該第二方位預定義為代表拒絕所顯示的可能的詞。該處理器122可以結束顯示該可能的詞并且持續監測所接收的來自傳感器110的信息以進行打字輸入,和/或可以基于詞完成算法確定第二可能的詞并顯示該第二可能的詞。
[0072]觸發鍵盤顯示
為了發起與虛擬鍵盤的交互,在一些實施例中,當用戶102的手104抬升至預定義位置集之一時,該處理器122可以命令顯示器130自動顯示鍵盤,該預定義方位集比如一個或多個手104抬升的打字位置、一個或多個手指106展開,手104抬升并且彼此靠近放置,一個或多個手104抬升至傳感器110的平面,或一個或多個手處于抬升位置且手方位與地板平行。該功能使得系統能夠忽略鍵盤的顯示,并且可僅在需要時獲得,從而省電并且增加用戶102和系統100的交互水平。在一些實施例中,該處理器122可以持續處理所接收的來自傳感器110的信息以檢測在傳感器110的視野內用戶102的存在,并且檢測一個或多個手104的位置和運動。在一些實施例中,當該處理器122檢測到一個或多個手104從較低位置移動至抬升位置,比如從用戶102兩側向上抬升手104并且高于預定高度閾值,比如腰部或胸部水平,由于檢測到至少一個抬升的手,該處理器122可以命令顯示器130顯示鍵盤圖像140。在一些實施例中,當一個或多個抬升的手104降低時,比如當用戶102將一個或多個手140從腰部或胸部下降至用戶102兩側,或在預定高度閾值以下時,該處理器122可以命令顯示器130結束顯示鍵盤圖像140。在一些實施例中,在檢測到降低的手之后,該處理器122可以將結束顯示鍵盤圖像140的命令延遲預定時間段,以確認用戶102通過使一個或多個手104降低結束顯示的意圖。該傳感器122可以基于僅檢測一個手觸發鍵盤圖像140的顯示,或要求檢測兩個手以從激活的顯示狀態至未激活顯示狀態轉變,反之亦然。
[0073]在一些實施例中,有必要避免錯誤解讀用戶102的意圖動作,比如在用戶102抬升一個或多個手104而不打算打字時,呈現鍵盤圖像140。在這樣的實施例中,該處理器122可以要求滿足一個或多個預定義條件以顯示鍵盤圖像140和結束鍵盤圖像140的顯示。例如,在一些實施例中,可以僅在用戶102可獲得打字功能時,僅在正在運行的某些計算機應用支持數據輸入和打字時,或僅在某些計算機應用支持打字比如在電視機應用中所顯示的可搜索的TV電視節目表時才呈現該鍵盤圖像140。在該示例中,在視頻回放期間(不支持打字的電視機應用的一部分),盡管用戶102提供相同的手方位和位置,該處理器122可以不顯示鍵盤圖像140。在一些實施例中,該處理器122可以提供檢測出用戶102的手放置和/或定向為會觸發鍵盤圖像140顯示的手勢的視覺指示,但不會顯示鍵盤圖像140本身。
[0074]鍵盤行選擇
在一些實施例中,當在虛擬鍵盤上打字時,而不是向前或向后移動手指以在上行或下行中敲打按鍵的傳統動作,可以提高用戶移動完整的手以選擇上或下行的效率。在一些實施例中,該處理器122可以被配置成選擇所顯示的鍵盤的不同部分以進行數據輸入檢測。例如,該處理器122可以基于特定運動、手勢、手位置,或基于在所接收的傳感器數據中監測到的手位置檢測出的姿勢選擇第一按鍵子集。該處理器122可以被配置成基于所監測出的不同的運動、手勢、手位置或姿勢選擇不同的按鍵子集。在一些實施例中,該按鍵子集可以為在鍵盤中的行,或按鍵塊。
[0075]圖5A展示了基于檢測出的第一動作選擇第一和第二按鍵子集的示例,其中該按鍵子集為在所顯示的鍵盤512上的第一行506和第二行508,并且檢測出的運動為一個或多個手朝所示鍵盤512的大致水平運動。如圖5A所示,當手104在第一位置(比如Hl 512)時,第一行506可以為并非必需以直線設置的按鍵子集,而是可以包括與用戶102的手指106的所監測位置對應的第一多個按鍵。類似地,當手104在第二位置比如H2 504時,第二行508可以包括與用戶的手104或手指106的位點對應的第二多個按鍵。
[0076]在圖5A所示的實施例中,該處理器122可以接收來自傳感器110的與用戶102的手104從第一位置H1502移動至第二位置H2 504的運動相關的傳感器數據。該運動可以為大致朝向或遠離所顯示的鍵盤512,比如相對于所顯示的鍵盤512沿Z軸的大致水平運動。在檢測出向前運動后,該處理器122可以將按鍵的選擇從第一行506轉變至第二行508(轉變510)。在轉變之后,該處理器122可以使顯示器130改變所顯示的鍵盤512,比如通過以圖形說明第二行508的選擇。在圖5A所示的示例中,黑圓圈出現在該處理器122確定與檢測出的手指106方位對應的按鍵上方。在執行轉變510之后,所顯示的黑圓圈可以從第一行506移動至第二行508。在其它實施例中,按鍵圖像512可以顯示轉變510的不同指示,或可以不顯示轉變510的任何指示。
[0077]顯著地,在一些實施例中,第一行506和第二行508可以包括一個或多個常用按鍵。例如,如果在鍵盤圖像512中的特定按鍵對應在第一位置Hl 502和第二位置H2 504的手指106時,那么該按鍵可以包括在第一行506和第二行508中,比如鍵盤圖像512的右欄所示的按鍵之一。
[0078]在一些實施例中,在檢測出從第二位置H2 504至第一位置Hl 502的運動時,比如大致向后遠離所顯示的鍵盤512的運動,比如沿Z軸遠離所顯示的鍵盤512的水平運動,該處理器122可以選擇下行。
[0079]圖5B展示了利用第二只手運動的檢測進行鍵盤行選擇的另一示例。在圖5B所示的實施例中,該處理器122可以接收來自傳感器110的與用戶102的手104從第一位置Hl 502至第二位置H2 504的運動相關的傳感器數據。該運動可以為大致向上或向下運動,比如沿平行于所顯示的鍵盤512的Y軸的豎直運動。在檢測到向上運動后,該處理器122可以將按鍵的選擇從第一行506轉變成第二行508(轉變510)。在轉變之后,該處理器122可以使得顯示器130改變所顯示的鍵盤512,比如通過圖形說明選擇第二行508。在圖5B所示的實施例中,黑圓圈出現在該處理器122確定與監測的手指106方位對應的按鍵上。在執行轉變510之后,所顯示的黑圓圈可以從第一行506移動至第二行508。在其它實施例中,該鍵盤圖像512可以顯示轉變510的不同指示,或可以不顯示轉變510的任何指示。
[0080]在一些實施例中,在檢測到從第二位置H2 504至第一位置Hl 502的大致向下運動(比如沿平行于鍵盤圖像512的Y軸的豎直向下運動)之后,該處理器122可以選擇下行。
[0081 ]在此使用的術語“例如”、“比如”、“舉例來說”及其變體描述本發明主題的非限制實施例。在說明書中涉及的“一種情況”、“一些情況”、“其它情況”,或其變體意為特定特征、結構或特性結合實施例進行描述,其包括在本發明的主題的至少一個實施例中。因此,詞語“一種情況”、“一些情況”、“其它情況”,或其變體的出現不必然涉及相同的實施例。
[0082]為清晰起見,在本說明書中以單獨的實施例為背景描述的特定特征還可能結合在單個的實施例中。相反地,為簡潔起見,在以單個實施例為背景描述的各種特征還可能設置在多個獨立的實施例或任何合適的次結合方式中。此外,雖然上述特征可能用在特定的組合中,并且甚至初始要求這樣,但是要求的組合中的一個或多個特征在某些情況下可以脫離該組合,并且要求的組合可能導向次組合或次組合的變體。
[0083]根據在此所述的實施例的操作可以由為所需目的而專門構造的計算機或由為想要的目的而專門配置存儲在非暫時性計算機可讀存儲介質中的計算機程序的通用計算機執行。
[0084]以上已經描述了若干具體的實施例。其它實施例也包含在所附權利要求的范圍內。
【主權項】
1.一種非暫時性計算機可讀介質,其包括指令,當通過至少一個處理器執行時,所述指 令使所述至少一個處理器執行操作,所述操作包括:顯示鍵盤圖像,所顯示的鍵盤圖像包括多個按鍵;從至少一個傳感器接收用戶的手的傳感器數據,所述用戶的手與所顯示的鍵盤圖像隔 開一段距離,所述用戶的手與所顯示的鍵盤圖像是非接觸的;使用所接收的傳感器數據追蹤在空中與所顯示的鍵盤圖像有一段距離的用戶的手的 一個或多個手指;使所述一個或多個手指在空中的位點與所述多個按鍵的圖像相關聯;以及基于所述一個或多個手指在空中的關聯位點和由用戶執行的預定義手勢的檢測,從鍵 盤圖像選擇按鍵。2.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器將鍵盤圖像顯示在顯示設備上。3.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器將鍵盤圖像顯示在空中、與任何物理設備或表面相分離。4.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器:將虛擬鼠標圖像顯示在離用戶的一段距離處;檢測第一手勢和第二手勢;當檢測到所述第一手勢時,啟用鍵盤模式以從所顯示的鍵盤選擇至少一個按鍵;當檢測到所述第二手勢時,啟用鼠標模式以操作虛擬鼠標;以及通過在所述第一手勢與所述第二手勢之間改變,使用戶能夠在鍵盤模式和鼠標模式之 間切換。5.根據權利要求4所述的非暫時性計算機可讀介質,其特征在于,所述第二手勢為大致 向上指的手指。6.根據權利要求4所述的非暫時性計算機可讀介質,其特征在于,所述第二手勢為大致 合攏的手。7.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器將空間中的區域分配給鍵盤上的字母數字按鍵,并且其中分配給每個 按鍵的所述空間中的區域取決于包括按鍵使用的預期頻率的標準而尺寸各異。8.根據權利要求7所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器將空間中的較大區域分配給較頻繁使用的按鍵,并且將空間中的較小 區域分配給較不頻繁使用的按鍵。9.根據權利要求7所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成使 所述至少一個處理器基于對接下來將被選擇的特定按鍵的預測而動態地改變分配給該特 定按鍵的空間中的區域。10.根據權利要求7所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 當用戶的手靜止時,使所述至少一個處理器將空間中的較大區域分配給一個或多個按鍵。11.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器利用用戶移動手的動作特征來預測將會被選擇的下一按鍵,以避免 越過。12.根據權利要求11所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器利用詞完成算法和在前按鍵中的至少一個來預測下一按鍵,所述在 前按鍵是使用與用戶的手或一個或多個手指的至少一個位點相關聯的信息而選擇的。13.根據權利要求11所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器利用詞完成算法和在前按鍵中的至少一種來預測下一按鍵,所述在 前按鍵是使用與用戶的手的位點或一個或多個手指中的至少一個位點變化相關聯的信息 而選擇的。14.根據權利要求11所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器利用詞完成算法和在前按鍵中的至少一個來預測下一按鍵,所述在 前按鍵是使用與用戶移動的手的動作特征相關聯的信息而選擇的。15.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器選擇性地顯示鍵盤圖像,并且其中所述鍵盤圖像的顯示是通過對至 少一個抬升的手的檢測而觸發的。16.根據權利要求15所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 當抬升的手降低時,使所述至少一個處理器結束所述鍵盤圖像的顯示。17.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器監測所接收的傳感器數據中的手位置和手指位置,并且其中所監測 的手位置用于確定所選擇的鍵盤行,所監測的手指位置用于確定所選擇的按鍵。18.根據權利要求17所述的非暫時性計算機可讀介質,其特征在于,所選擇的鍵盤行是 基于所監測的手位置中代表向前或向后運動的水平動作而確定的。19.根據權利要求17所述的非暫時性計算機可讀介質,其特征在于,所選擇的鍵盤行是 基于所監測的手位置中代表向上或向下運動的豎直動作而確定的。20.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使至少一個處理器在詞完成之前確定用戶正在鍵入的可能的詞,顯示所述可能的詞,識別 表征著用戶對所述可能的詞的接受的手方位,并響應于識別的手方位而接受所述可能的。21.根據權利要求20所述的非暫時性計算機可讀介質,其特征在于,所述識別的手方位 包括動態手勢。22.根據權利要求1所述的非暫時性計算機可讀介質,其特征在于,其進一步被配置成 使所述至少一個處理器在詞完成之前確定用戶正在鍵入的可能的詞,顯示所述可能的詞, 識別表征著用戶對所述可能的詞的拒絕的手方位,并響應于識別的手方位而拒絕所述可能 的詞。23.根據權利要求20所述的非暫時性計算機可讀介質,其特征在于,所述識別的手方位 包括動態手勢。24.—種數據輸入設備,包括:至少一個處理器,其被配置成顯示鍵盤圖像,所顯示的鍵盤圖像包括多個按鍵;從至少一個傳感器接收用戶的手的傳感器數據,所述用戶的手與所顯示的鍵盤圖像隔 開一段距離,所述用戶的手與所顯示的鍵盤圖像是非接觸的;使用所接收的傳感器數據追蹤在空中與所顯示的鍵盤圖像有一段距離的用戶的手的一個或多個手指;使所述一個或多個手指在空中的位點與所述多個按鍵的圖像相關聯;以及基于所述一個或多個手指在空中的關聯位點和由用戶執行的預定義手勢的檢測,從鍵 盤圖像選擇按鍵。25.根據權利要求24所述的數據輸入設備,其特征在于,其進一步被配置成使所述至少 一個處理器將鍵盤圖像顯示在顯示設備上。26.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成將鍵盤圖像顯示在空中、與任何物理設備或表面相分離。27.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成:將虛擬鼠標圖像顯示在離用戶的一段距離處;檢測第一手勢和第二手勢;當檢測到所述第一手勢時,啟用鍵盤模式以從所顯示的鍵盤選擇至少一個按鍵;當檢測到第二手勢時,啟用鼠標模式以操作所述虛擬鼠標;以及通過在所述第一手勢與所述第二手勢之間改變,使用戶能夠在鍵盤模式和鼠標模式之 間切換。28.根據權利要求27所述的數據輸入設備,其特征在于,所述第二手勢為大致向上指的 手指。29.根據權利要求27所述的數據輸入設備,其特征在于,所述第二手勢為大致合攏的手。30.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成將空間中的區域分配給在鍵盤上的字母數字按鍵,并且其中分配給每個按鍵的空間 中的區域取決于包括按鍵使用的預期頻率的標準而尺寸各異。31.根據權利要求30所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成使得所述至少一個處理器將空間中的較大區域分配給較頻繁使用的按鍵,并且將空 間中的較小區域分配給較不頻繁使用的按鍵。32.根據權利要求30所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成基于對接下來將被選擇的特定按鍵的預測,動態地改變分配給所述特定按鍵的空間 中的區域。33.根據權利要求30所述的數據輸入設備,其特征在于,其進一步被配置成當用戶的手 靜止時,使所述至少一個處理器將空間中的較大區域分配給一個或多個按鍵。34.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成利用所接收的圖像的動作特征,預測將會被選擇的下一按鍵,以避免越過。35.根據權利要求34所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成利用詞完成算法和在前按鍵中的至少一個來預測下一按鍵,所述在前按鍵是使用與 用戶的手或一個或多個手指的至少一個位點相關聯的信息而選擇的。36.根據權利要求34所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成利用詞完成算法和在前按鍵中的至少一個來預測下一按鍵,所述在前按鍵是使用與 用戶的手的位點或一個或多個手指中的至少一個位點變化相關聯的信息而選擇的。37.根據權利要求34所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被配置成利用詞完成算法和在前按鍵中的至少一個來預測下一按鍵,所述在前按鍵是使用與 用戶移動手的動作特征相關聯的信息而選擇的。38.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成選擇性地使得鍵盤圖像得以顯示,并且其中所述鍵盤圖像的顯示是通過對至少一個 抬升的手的檢測而觸發的。39.根據權利要求38所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成當抬升的手降低時,使得所述鍵盤圖像的顯示結束。40.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成監測所接收的傳感器數據中的手位置和手指位置,并且其中所監測的手位置用于確 定所選擇的鍵盤行,且所監測的手指位置用于確定所選擇的按鍵。41.根據權利要求40所述的數據輸入設備,其特征在于,所選擇的鍵盤行是基于所監測 的手位置中代表向前或向后運動的水平動作而確定的。42.根據權利要求40所述的數據輸入設備,其特征在于,所選擇的鍵盤行是基于所監測 的手位置中代表向上或向下運動的豎直動作而確定的。43.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成在詞完成之前確定用戶正在鍵入的可能的詞,顯示所述可能的詞,識別表征著用戶 對所述可能的詞的接受的手方位,并響應于識別的手方位而接受所述可能的詞。44.根據權利要求43所述的數據輸入設備,其特征在于,所述識別的手方位包括動態手 勢。45.根據權利要求24所述的數據輸入設備,其特征在于,所述至少一個處理器進一步被 配置成在詞完成之前確定用戶正在鍵入的可能的詞,顯示所述可能的詞,識別表征著用戶 對所述可能的詞的拒絕的手方位,并響應于識別的手方位而拒絕所述可能的詞。46.根據權利要求45所述的數據輸入設備,其特征在于,所述識別的手方位包括動態手勢。
【文檔編號】G06F3/02GK105980965SQ201480067449
【公開日】2016年9月28日
【申請日】2014年10月9日
【發明人】伊泰·卡茨
【申請人】視力移動科技公司