專利名稱:識別輸入姿勢的制作方法
識別輸入姿勢
背景
計(jì)算機(jī)系統(tǒng)和相關(guān)技術(shù)影響社會的許多方面。的確,計(jì)算機(jī)系統(tǒng)處理信息 的能力已改變了人們生活和工作的方式。計(jì)算機(jī)系統(tǒng)現(xiàn)在通常執(zhí)行在計(jì)算機(jī)系 統(tǒng)出現(xiàn)以前手動執(zhí)行的許多任務(wù)(例如,文字處理、日程安排和會計(jì)等)。最 近,計(jì)算機(jī)系統(tǒng)彼此耦合并耦合到其它電子設(shè)備以形成計(jì)算機(jī)系統(tǒng)和其它電子 設(shè)備可以在其上傳輸電子數(shù)據(jù)的有線和無線計(jì)算機(jī)網(wǎng)絡(luò)。因此,許多計(jì)算任務(wù) 的執(zhí)行分布在多個不同的計(jì)算機(jī)系統(tǒng)和/或多個不同的計(jì)算組件上。
在許多環(huán)境中,計(jì)算機(jī)系統(tǒng)通常包括中央處理單元("CPU")、系統(tǒng)存 儲器(例如隨機(jī)存取存儲器("RAM"))、 一些類型的大容量存儲設(shè)備(例 如磁盤)、輸入設(shè)備、以及輸出設(shè)備。輸入設(shè)備被用于接受用戶對計(jì)算機(jī)系統(tǒng) 的輸入并將用戶輸入轉(zhuǎn)送給CPU。輸出設(shè)備用于將CPU輸出呈現(xiàn)給用戶。由 此,用戶通常使用輸入設(shè)備將數(shù)據(jù)輸入到計(jì)算機(jī)系統(tǒng)中,該輸入設(shè)備將輸入數(shù) 據(jù)轉(zhuǎn)送給CPU, CPU處理該輸入數(shù)據(jù)以生成相應(yīng)的輸出數(shù)據(jù)(例如通過系統(tǒng) 或應(yīng)用程序),CPU將輸出數(shù)據(jù)發(fā)送給輸出設(shè)備,并且輸出設(shè)備呈現(xiàn)輸出數(shù)據(jù)。
輸入和輸出設(shè)備兩者都可包括硬件(物理對象)和軟件(例如設(shè)備驅(qū)動器、
用戶界面控件)來實(shí)現(xiàn)其期望功能。具體對輸入設(shè)備而言,比如鍵盤、鼠標(biāo)、
操縱桿等的硬件設(shè)備被用來接收輸入數(shù)據(jù)。這些或其它硬件設(shè)備可用來操縱和 導(dǎo)航到具有指定輸入功能的用戶界面控件(例如按鈕、菜單等)。例如,用戶
可操縱鼠標(biāo)將光標(biāo)移動到"打印"按鈕上并點(diǎn)擊鼠標(biāo)按鈕以使文檔得以打印。 近來,計(jì)算機(jī)顯示設(shè)備已被配置成既用作輸入設(shè)備、又用作視頻輸出設(shè)備。 例如,計(jì)算機(jī)顯示設(shè)備可配置有便于通過顯示表面?zhèn)魅胼斎霐?shù)據(jù)的觸摸面機(jī) 構(gòu)。嵌入于顯示表面的傳感器(例如壓力傳感器)可檢測物體(例如手指)何 時接觸顯示表面上的特定位置。然后計(jì)算機(jī)系統(tǒng)可響應(yīng)于檢測到該接觸執(zhí)行某 些動作。例如,響應(yīng)于在對應(yīng)于用戶界面控件的位置檢測到物體與顯示表面之 間的接觸,計(jì)算機(jī)系統(tǒng)可執(zhí)行與該用戶界面控件相關(guān)聯(lián)的某些動作。
因此,輸入設(shè)備有利地許可用戶與計(jì)算機(jī)系統(tǒng)作有意義的交互。在許多公 共環(huán)境和半公共環(huán)境(例如圖書館、餐館、私人俱樂部、航班休息室等)中,大量用戶可使用計(jì)算機(jī)系統(tǒng)(例如自助服務(wù)終端、桌面計(jì)算機(jī)系統(tǒng)等)。在這 些環(huán)境內(nèi),常常期望允許多個用戶同時使用同一臺計(jì)算機(jī)以節(jié)約空間、計(jì)算機(jī) 系統(tǒng)資源等。通常還期望使任意用戶能同時協(xié)同工作、或能同時基于個人需求 單獨(dú)工作。例如,在演示時期望使多個用戶能協(xié)同工作。另一方面,還期望使 第一用戶能瀏覽因特網(wǎng),而第二用戶能編輯字處理文檔。
不幸的是,在嘗試提供對同一計(jì)算機(jī)系統(tǒng)的多用戶訪問(協(xié)同或單獨(dú))時, 現(xiàn)有的輸入設(shè)備技術(shù)具有至少一些缺點(diǎn)。對于硬件設(shè)備,通常必須向每個用戶 提供至少一個設(shè)備。例如,對于同時執(zhí)行不同計(jì)算任務(wù)的多個用戶,每個用戶 可能都需要單獨(dú)的鍵盤和鼠標(biāo)。因而,即使沒有利用多個計(jì)算機(jī)系統(tǒng),通常也 必須有足夠的工作空間來將每個計(jì)算機(jī)系統(tǒng)的多套輸入設(shè)備放置在一起。
對于軟件,用戶界面空間的每個實(shí)例都會消耗一部分的顯示表面。此外, 必須顯示多套用戶界面控件以向?qū)?yīng)的多個用戶提供同步計(jì)算機(jī)訪問。取決于 顯示表面的顯示區(qū)域、所呈現(xiàn)的用戶界面控件的套數(shù)、以及所支持的用戶的數(shù) 量,現(xiàn)有的顯示區(qū)域會變得擁擠,并且可能只能有限地使用。此外,用戶界面 控件(例如按鈕)通常具有單一 (或"正面朝上")朝向。因而,當(dāng)多個用戶 協(xié)同工作時,用戶界面控件只對多個用戶之一有適當(dāng)朝向。通常用戶界面控件 還針對大手寸優(yōu)化,從而使其消耗比許多用戶所需更多的顯示區(qū)域。
在一些環(huán)境中,可結(jié)合觸摸面使用基于運(yùn)動的姿勢識別來接收輸入數(shù)據(jù)。 計(jì)算機(jī)系統(tǒng)內(nèi)的軟件模塊可識別在觸摸面上作出的基于運(yùn)動的姿勢。例如,軟 件包括可在用戶的手指劃弧線、畫輪廓線等時跟蹤用戶手指與觸摸面的持續(xù)接 觸,以比如繪制文字字符。當(dāng)觸摸面上不再檢測到用戶手指時,軟件模塊可處 理觸摸路徑以識別對應(yīng)的基于運(yùn)動的姿勢,比如字母'a'?;谶\(yùn)動的姿勢 可對應(yīng)于預(yù)定輸入功能。因而,當(dāng)軟件模塊檢測到基于運(yùn)動的姿勢時,響應(yīng)于 該基于運(yùn)動的姿勢執(zhí)行對應(yīng)的輸入功能(例如識別字符)。因此,基于運(yùn)動的 姿勢至少在某種程度上可緩和對按用戶的硬件輸入設(shè)備的需要,并且可減少按 用戶的多套用戶界面控件的大小。
然而,基于運(yùn)動的姿勢的識別相對較為復(fù)雜。這至少部分是由于不同用戶 能怎樣繪制不同符號(或字符)的差異性。例如,當(dāng)?shù)谝挥脩艉偷诙脩舾髯?br>
繪制字母、'時,字母'a'的圖樣會有許多差異。這些差異會如此顯著,使得計(jì)算機(jī)系統(tǒng)與字母'a'的控制數(shù)據(jù)作比較時不能將這兩個圖樣之一或全部 識別為字母'a'。因此,嘗試統(tǒng)一地識別多個用戶的基于運(yùn)動的姿勢(例如
符號和字符)會是困難的。 簡要概述
本發(fā)明涉及用于識別輸入姿勢的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。在一些實(shí) 施例中,計(jì)算機(jī)系統(tǒng)被訓(xùn)練成將在多觸點(diǎn)輸入顯示表面上輸入的輸入姿勢數(shù)據(jù) 識別為對應(yīng)的指定輸入模式(例如文字字符)。計(jì)算機(jī)系統(tǒng)訪問指定輸入模式 的至少一個示例的輸入姿勢數(shù)據(jù)。輸入姿勢數(shù)據(jù)表示一時間段內(nèi)多觸點(diǎn)輸入顯
示表面上所檢測到的接觸。輸入姿勢數(shù)據(jù)包括第一方向運(yùn)動數(shù)據(jù)和第二方向運(yùn) 動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的
接觸相對于第一軸(例如x軸)的位置。第二方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi) 多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸(例如Y軸)的位置。
計(jì)算機(jī)系統(tǒng)將輸入姿勢數(shù)據(jù)編碼成實(shí)值輸入向量。各實(shí)值對應(yīng)于第一或第 二軸上的樣本。計(jì)算機(jī)系統(tǒng)保存輸入向量中所包含的實(shí)值表示指定輸入模式的 一示例的指示。
計(jì)算機(jī)系統(tǒng)訪問全連接的神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)包括輸入節(jié)點(diǎn)、隱藏節(jié)點(diǎn) 和輸出節(jié)點(diǎn)。輸入節(jié)點(diǎn)被全連接到隱藏節(jié)點(diǎn),而隱藏節(jié)點(diǎn)被全連接到輸出節(jié)點(diǎn)。
計(jì)算機(jī)系統(tǒng)創(chuàng)建一訓(xùn)練組以提供給神經(jīng)網(wǎng)絡(luò),從而訓(xùn)練該神經(jīng)網(wǎng)絡(luò)識別指 定輸入模式。訓(xùn)練組包括至少輸入向量和對應(yīng)輸出向量。對應(yīng)輸出向量指示神 經(jīng)網(wǎng)絡(luò)的要對應(yīng)于指定輸入模式的期望輸出。計(jì)算機(jī)系統(tǒng)使用反向傳播算法來 訓(xùn)練神經(jīng)網(wǎng)絡(luò)識別指定輸入模式。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)響應(yīng)于接收輸入向量生成 接近對應(yīng)輸出向量的輸出節(jié)點(diǎn)值,來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)將在多觸點(diǎn)輸入顯示表面上輸入的輸入姿勢 數(shù)據(jù)識別為指定符號。計(jì)算機(jī)系統(tǒng)訪問表示一時間段內(nèi)多觸點(diǎn)輸入顯示表面上 所檢測到的接觸的輸入姿勢數(shù)據(jù)。輸入姿勢數(shù)據(jù)至少包括第一方向運(yùn)動數(shù)據(jù)和 第二方向運(yùn)動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸入顯示表面
上檢測到的接觸相對于第一軸(例如x軸)的位置。第二方向運(yùn)動數(shù)據(jù)指示在 該時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸(例如Y 軸)的位置。計(jì)算機(jī)系統(tǒng)在該時間段開始之時與該時間段結(jié)束之時之間的多個指定間 隔上取第一方向運(yùn)動數(shù)據(jù)和第二方向運(yùn)動數(shù)據(jù)的每一個的多個樣本。計(jì)算機(jī)系 統(tǒng)將該多個樣本提交給先前所訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的相應(yīng)的多個輸入節(jié)點(diǎn)。神經(jīng)網(wǎng) 絡(luò)先前已訓(xùn)練了從輸入節(jié)點(diǎn)到多個隱藏節(jié)點(diǎn)的鏈路權(quán)重,并且已訓(xùn)練了從多個 隱藏節(jié)點(diǎn)到多個輸出節(jié)點(diǎn)的鏈路權(quán)重。各個輸出節(jié)點(diǎn)分配到一指定符號,從而 被激活成指定閾值的輸出節(jié)點(diǎn)指示神經(jīng)網(wǎng)絡(luò)將輸入姿勢數(shù)據(jù)識別為該指定符 號。
該神經(jīng)網(wǎng)絡(luò)基于先前訓(xùn)練的鏈路權(quán)重處理多個樣本以激活多個輸出節(jié)點(diǎn) 的每一個上的值。計(jì)算機(jī)系統(tǒng)確定分配到指定符號的對應(yīng)輸出節(jié)點(diǎn)上的激活值 至少是指定閾值。計(jì)算機(jī)系統(tǒng)指示已從輸入姿勢數(shù)據(jù)識別了指定符號。
提供本概述是為了以簡化的形式介紹將在以下詳細(xì)描述中進(jìn)一步描述的 一些概念。本概述不旨在標(biāo)識所要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不 旨在用于幫助確定所要求保護(hù)的主題的范圍。
本發(fā)明的附加特征和優(yōu)點(diǎn)將在以下描述中敘述,且其一部分根據(jù)本描述將 是顯而易見的,或可通過對本發(fā)明的實(shí)踐來獲知。本發(fā)明的特征和優(yōu)點(diǎn)可通過 在所附權(quán)利要求書中特別指出的手段和組合來實(shí)現(xiàn)和獲得。本發(fā)明的這些和其 他特征將通過以下描述和所附權(quán)利要求書而變得更加完全明顯,或可通過對下 文中所述的本發(fā)明的實(shí)踐來獲知。
附圖簡述
為了描述可獲得本發(fā)明的上述和其它優(yōu)點(diǎn)和特征的方式,將通過參考附圖 中示出的本發(fā)明的具體實(shí)施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述。可 以理解,這些附圖僅描述本發(fā)明的典型實(shí)施例,從而不被認(rèn)為是對其范圍的限 制,本發(fā)明將通過使用附圖用附加特征和細(xì)節(jié)來描述和說明,在附圖中
圖1A和1B示出未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)和對應(yīng)的經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的示例。 圖2A和2D示出便于識別輸入姿勢的計(jì)算機(jī)體系結(jié)構(gòu)。 圖2B示出輸入姿勢數(shù)據(jù)、對應(yīng)訓(xùn)練輸入向量、以及期望輸出向量的一示例。
圖2C示出訓(xùn)練神經(jīng)網(wǎng)絡(luò)來將輸入姿勢識別為指定符號的示例。
圖3示出輸入姿勢數(shù)據(jù)和可用于創(chuàng)建對應(yīng)輸入向量的多筆劃符號的組合圖的一示例。
圖4示出用于訓(xùn)練計(jì)算機(jī)系統(tǒng)來識別指定輸入模式的示例方法的流程圖。 圖5示出了用于識別指定輸入模式的示例方法的流程圖。
詳細(xì)描述
本發(fā)明涉及用于識別輸入姿勢的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。在一些實(shí) 施例中,計(jì)算機(jī)系統(tǒng)被訓(xùn)練成將在多觸點(diǎn)輸入的顯示表面上輸入的輸入姿勢數(shù) 據(jù)識別為對應(yīng)的指定輸入模式(例如文字字符)。計(jì)算機(jī)系統(tǒng)訪問指定輸入模 式的至少一個示例的輸入姿勢數(shù)據(jù)。輸入姿勢數(shù)據(jù)表示一段時間內(nèi)多觸點(diǎn)輸入 顯示表面上所檢測到的接觸。輸入姿勢數(shù)據(jù)包括第一方向運(yùn)動數(shù)據(jù)和第二方向 運(yùn)動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到 的接觸相對于第一軸(例如X軸)的位置。第二方向運(yùn)動數(shù)據(jù)指示在該時間段 內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸(例如Y軸)的位置。
計(jì)算機(jī)系統(tǒng)將輸入姿勢數(shù)據(jù)編碼成實(shí)值輸入向量。各實(shí)值對應(yīng)于第一或第 二軸上的樣本。計(jì)算機(jī)系統(tǒng)保存輸入向量中所包含的實(shí)值表示指定輸入模式的 一示例的指示。
計(jì)算機(jī)系統(tǒng)訪問全連接的神經(jīng)網(wǎng)絡(luò)。該神經(jīng)網(wǎng)絡(luò)包括輸入節(jié)點(diǎn)、隱藏節(jié)點(diǎn) 和輸出節(jié)點(diǎn)。輸入節(jié)點(diǎn)被全連接到隱藏節(jié)點(diǎn),而隱藏節(jié)點(diǎn)被全連接到輸出節(jié)點(diǎn)。 計(jì)算機(jī)系統(tǒng)創(chuàng)建一訓(xùn)練組以提供給神經(jīng)網(wǎng)絡(luò),從而訓(xùn)練該神經(jīng)網(wǎng)絡(luò)識別指
定輸入模式。訓(xùn)練組包括至少輸入向量和對應(yīng)輸出向量。對應(yīng)輸出向量指示神 經(jīng)網(wǎng)絡(luò)的要對應(yīng)于指定輸入模式的期望輸出。計(jì)算機(jī)系統(tǒng)使用反向傳播算法來 訓(xùn)練神經(jīng)網(wǎng)絡(luò)識別指定輸入模式。通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)響應(yīng)于接收輸入向量生成 接近對應(yīng)輸出向量的輸出節(jié)點(diǎn)值,來訓(xùn)練神經(jīng)網(wǎng)絡(luò)。
在其它實(shí)施例中,計(jì)算機(jī)系統(tǒng)將在多觸點(diǎn)輸入顯示表面上輸入的輸入姿勢 數(shù)據(jù)識別為指定符號。計(jì)算機(jī)系統(tǒng)訪問表示一時間段內(nèi)多觸點(diǎn)輸入顯示表面上 所檢測到的接觸的輸入姿勢數(shù)據(jù)。輸入姿勢數(shù)據(jù)至少包括第一方向運(yùn)動數(shù)據(jù)和 第二方向運(yùn)動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸入顯示表面 上檢測到的接觸相對于第一軸(例如X軸)的位置。第二方向運(yùn)動數(shù)據(jù)指示在 該時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸(例如Y軸)的位置。
計(jì)算機(jī)系統(tǒng)在該時間段開始之時與該時間段結(jié)束之時之間的多個指定間 隔上取第一方向運(yùn)動數(shù)據(jù)和第二方向運(yùn)動數(shù)據(jù)的每一個的多個樣本。計(jì)算機(jī)系 統(tǒng)將該多個樣本提交給先前所訓(xùn)練的神經(jīng)網(wǎng)絡(luò)的相應(yīng)的多個輸入節(jié)點(diǎn)。神經(jīng)網(wǎng) 絡(luò)先前已訓(xùn)練了從輸入節(jié)點(diǎn)到多個隱藏節(jié)點(diǎn)的鏈路權(quán)重,并且已訓(xùn)練了從多個 隱藏節(jié)點(diǎn)到多個輸出節(jié)點(diǎn)的鏈路權(quán)重。各個輸出節(jié)點(diǎn)分配到一指定符號,從而 被激活成指定閾值的輸出節(jié)點(diǎn)指示神經(jīng)網(wǎng)絡(luò)將輸入姿勢數(shù)據(jù)識別為該指定符 號。
該神經(jīng)網(wǎng)絡(luò)基于先前訓(xùn)練的鏈路權(quán)重處理多個樣本以激活多個輸出節(jié)點(diǎn) 的每一個上的值。計(jì)算機(jī)系統(tǒng)確定分配到指定符號的對應(yīng)輸出節(jié)點(diǎn)上的激活值 至少是指定閾值。計(jì)算機(jī)系統(tǒng)指示已從輸入姿勢數(shù)據(jù)識別了指定符號。
在本說明書和所附權(quán)利要求中,"反向傳播"被定義為用于訓(xùn)練神經(jīng)網(wǎng)絡(luò) 的學(xué)習(xí)技術(shù)。 一般而言,反向傳播被用于訓(xùn)練正向饋送網(wǎng)絡(luò)(無反饋或回線連 接的網(wǎng)絡(luò))。訓(xùn)練樣本被提供給神經(jīng)網(wǎng)絡(luò)。從訓(xùn)練樣本得到的輸出與訓(xùn)練樣本 的期望輸出作比較。針對每個節(jié)點(diǎn)計(jì)算局部誤差。局部誤差包括要節(jié)點(diǎn)的輸出 應(yīng)當(dāng)是什么以生成期望輸出、以及指示要匹配期望輸出節(jié)點(diǎn)的輸出要高多少或 低多少的縮放因數(shù)??烧{(diào)節(jié)來自每個節(jié)點(diǎn)的鏈路權(quán)重以降低局部誤差。針對局 部誤差的"譴責(zé)"被分配到前一層的節(jié)點(diǎn),從而將責(zé)任賦予由更高權(quán)重連接的 節(jié)點(diǎn)。反方向地遍歷神經(jīng)網(wǎng)絡(luò),在每一層重復(fù)這些步驟直到抵達(dá)輸入節(jié)點(diǎn)。
因而,誤差(以及由此的學(xué)習(xí))反向地從輸出節(jié)點(diǎn)傳播到內(nèi)部節(jié)點(diǎn)。因此, 反向傳播被用于計(jì)算神經(jīng)網(wǎng)絡(luò)相對于其可更改(鏈路)權(quán)重的誤差梯度。使用 反向傳播,可根據(jù)輸入樣本迭代用于產(chǎn)生期望輸出的鏈路權(quán)重,以使得神經(jīng)網(wǎng) 絡(luò)產(chǎn)生期望輸出。
本發(fā)明的各實(shí)施例可以包括或利用含有計(jì)算機(jī)硬件的專用或通用計(jì)算機(jī), 這將在以下做出進(jìn)一步討論。本發(fā)明范圍內(nèi)的各實(shí)施例還包括用于承載或儲存 計(jì)算機(jī)可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理和其他計(jì)算機(jī)可讀介質(zhì)。這樣的計(jì)算機(jī) 可讀介質(zhì)可以是可由通用或?qū)S糜?jì)算機(jī)系統(tǒng)訪問的任何可用介質(zhì)。存儲計(jì)算機(jī) 可執(zhí)行指令的計(jì)算機(jī)可讀介質(zhì)是物理存儲介質(zhì)。攜帶計(jì)算機(jī)可執(zhí)行指令的計(jì)算 機(jī)可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實(shí)施例可包括至少兩種完全不同的計(jì)算機(jī)可讀介質(zhì)物理存儲介質(zhì)和傳輸介質(zhì)。
物理存儲介質(zhì)包括RAM、 ROM、 EEPROM、 CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設(shè)備、或可用于存儲計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置且可由通用或?qū)S糜?jì)算機(jī)訪問的任何其他介質(zhì)。
"網(wǎng)絡(luò)"被定義為允許在計(jì)算機(jī)系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一通信連接(硬連線、無線或硬連線或無線的組合)傳輸或提供給計(jì)算機(jī)時,該計(jì)算機(jī)將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶或傳輸計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的所需程序代碼裝置并可由通用或?qū)S糜?jì)算機(jī)訪問的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述組合應(yīng)被包括在計(jì)算機(jī)可讀介質(zhì)的范圍內(nèi)。
然而,應(yīng)當(dāng)理解,在到達(dá)各種計(jì)算機(jī)系統(tǒng)組件之后,計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動轉(zhuǎn)移到物理存儲介質(zhì)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈路接收到的計(jì)算機(jī)可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口卡內(nèi)的RAM中,然后最終被傳送到計(jì)算機(jī)系統(tǒng)RAM和/或計(jì)算機(jī)系統(tǒng)處的較不易失的物理存儲介質(zhì)。由此,應(yīng)當(dāng)理解,物理存儲介質(zhì)可被包括在同樣(或甚至主要)利用傳輸介質(zhì)的計(jì)算機(jī)系統(tǒng)組件中。
計(jì)算機(jī)可執(zhí)行指令包括例如,使通用計(jì)算機(jī)、專用計(jì)算機(jī)、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計(jì)算機(jī)可執(zhí)行指令可以是例如二進(jìn)制代碼、諸如匯編語言等中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實(shí)現(xiàn)權(quán)利要求的示例形式而公開的。
本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計(jì)算機(jī)系統(tǒng)配置的網(wǎng)絡(luò)計(jì)算環(huán)境中實(shí)踐,這些計(jì)算機(jī)系統(tǒng)配置包括個人計(jì)算機(jī)、桌面計(jì)算機(jī)、
膝上型計(jì)算機(jī)、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子設(shè)備、網(wǎng)絡(luò)PC、小型計(jì)算機(jī)、大型計(jì)算機(jī)、移動電話、PDA、尋呼機(jī)等等。本發(fā)明也可以在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠(yuǎn)程計(jì)算機(jī)系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實(shí)踐。在分布式系統(tǒng)環(huán)境中,程序模塊可以位于本地和遠(yuǎn)程存儲器存儲設(shè)備中。
圖1A示出未經(jīng)訓(xùn)練的反向傳播神經(jīng)網(wǎng)絡(luò)101U的一示例。未經(jīng)訓(xùn)練的反
向傳播神經(jīng)網(wǎng)絡(luò)IOIU包括輸入節(jié)點(diǎn)102、隱藏節(jié)點(diǎn)103和輸出節(jié)點(diǎn)104。未經(jīng) 訓(xùn)練的鏈路值106U將輸入節(jié)點(diǎn)102全連接到隱藏節(jié)點(diǎn)103 (即各個輸入節(jié)點(diǎn) 連接到每個隱藏節(jié)點(diǎn))。類似地,未經(jīng)訓(xùn)練的鏈路值107U將隱藏節(jié)點(diǎn)103全 連接到輸出節(jié)點(diǎn)104 (即各個隱藏節(jié)點(diǎn)連接到每個輸出節(jié)點(diǎn))u未經(jīng)訓(xùn)練的鏈
路值106U和107U可被初始化為隨機(jī)值。
比如訓(xùn)練輸入向量111和112的多個輸入訓(xùn)練向量可被提供給未經(jīng)訓(xùn)練的 反向傳播神經(jīng)網(wǎng)絡(luò)IOIU。還可指示期望輸出向量113是訓(xùn)練輸入向量要產(chǎn)生 的期望輸出。輸入訓(xùn)練向量111可被提供為對未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)101U的輸 入。響應(yīng)于接收到訓(xùn)練輸入向量111,未經(jīng)訓(xùn)練的鏈路值106U和107U可通過 反向傳播提煉,從而最終鏈路值被訓(xùn)練成對訓(xùn)練輸入向量111產(chǎn)生期望輸出向 量113 (或其某閾值內(nèi)的一組值)。
隨后,訓(xùn)練向量112可輸入到未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)IOIU。響應(yīng)于接收到 訓(xùn)練輸入向量112,未經(jīng)訓(xùn)練的鏈路值106U和107U可通過反向傳播進(jìn)一步提 煉,從而最終鏈路值被訓(xùn)練成對訓(xùn)練輸入向量112產(chǎn)生期望輸出向量113 (或 其某閾值內(nèi)的一組值)。
在訓(xùn)練之后,任何接收到的類似于訓(xùn)練輸入向量111、 112等的輸入向量 使得神經(jīng)網(wǎng)絡(luò)101輸出類似于期望輸出向量113 (例如其某閾值內(nèi)的一組值) 的輸出向量。例如,圖1B示出經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)101T。經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)101T 包括通過反向傳播訓(xùn)練的經(jīng)訓(xùn)練的鏈路值106T和經(jīng)訓(xùn)練的鏈路值107T。輸入 向量121隨后可被提供為對經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)101T的輸入?;诮?jīng)訓(xùn)練的鏈 路值106T和經(jīng)訓(xùn)練的鏈路值107T,經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)101T可產(chǎn)生輸出向量 122。輸出向量122內(nèi)的值可被確定為在期望輸出向量113中值的指定閾值內(nèi), 從而兩個輸出向量在實(shí)質(zhì)上被標(biāo)識為相同輸出。
由此, 一般而言,通過使用一個或多個訓(xùn)練輸入和期望輸出,神經(jīng)網(wǎng)絡(luò)中 的鏈路值可被訓(xùn)練成根據(jù)訓(xùn)練輸入產(chǎn)生期望輸出。隨后,當(dāng)與訓(xùn)練輸入相似的 其它輸入被提供給神經(jīng)網(wǎng)絡(luò)時,該神經(jīng)網(wǎng)絡(luò)將產(chǎn)生與期望輸出相似的輸出。
圖2A和和2D示出便于在虛擬鍵盤上復(fù)制文字的示例計(jì)算機(jī)體系結(jié)構(gòu)200。在計(jì)算機(jī)體系結(jié)構(gòu)200中示出的有桌面計(jì)算機(jī)系統(tǒng)201。桌面計(jì)算機(jī)系統(tǒng) 201包括傳感器203、傳感器接口213、訓(xùn)練模塊233、向量生成器259、識別 模塊266、以及圖形子系統(tǒng)269。 一般而言,計(jì)算機(jī)體系結(jié)構(gòu)200中包括傳感 器203、傳感器接口213、訓(xùn)練模塊233、向量生成器259、識別模塊266、以 及圖形子系統(tǒng)269的各個組件互操作,以實(shí)現(xiàn)用于識別輸入姿勢的各個實(shí)施例。 桌面計(jì)算機(jī)系統(tǒng)101可以被連接到諸如局域網(wǎng)("LAN")、廣域網(wǎng)
("WAN")或甚至因特網(wǎng)等網(wǎng)絡(luò)。因此,各種組件可對連接到網(wǎng)絡(luò)的其它組 件收發(fā)數(shù)據(jù)。因此,這些組件可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通過網(wǎng)絡(luò)交換消息相關(guān) 數(shù)據(jù)(例如,網(wǎng)際協(xié)議("IP")數(shù)據(jù)報和利用IP數(shù)據(jù)報的其它更高層協(xié)議,諸 如傳輸控制協(xié)議("TCP")、超文本傳輸協(xié)議("HTTP")、簡單郵件傳輸協(xié)議
("SMTP")等)。
傳感器203可被配置成檢測物理物體(例如瓶子、玻璃、手指、帽子等) 何時與一部分多觸點(diǎn)輸入顯示表面202物理接觸。例如,傳感器203可檢測手 237 (或手257)的一部分何時與多觸點(diǎn)輸入顯示表面202接觸。傳感器203 可被嵌入到多觸點(diǎn)輸入顯示表面202中,并且可包括例如壓力傳感器、溫度傳 感器、圖像掃描儀、條形碼掃描儀等,它們與傳感器接口213互操作以檢測多 個同時輸入。
在某些實(shí)施例中,多觸點(diǎn)輸入顯示表面202包括用于實(shí)現(xiàn)觸摸屏接口的傳 感器。例如,多觸點(diǎn)輸入顯示表面202可包括交互多觸點(diǎn)表面。由此,多觸點(diǎn) 輸入顯示表面202還可用作向桌面計(jì)算機(jī)系統(tǒng)201的用戶顯示視頻輸出數(shù)據(jù)的 演示表面。
傳感器203可被包括(例如嵌入)在多觸點(diǎn)輸入顯示表面202上的多個位 置中。傳感器203可檢測發(fā)生與多觸點(diǎn)輸入顯示表面202的物理接觸的位置。 傳感器203的密度可以是足以檢測到整個多觸點(diǎn)輸入顯示表面202上的接觸。
傳感器203可以在比如1毫秒、5毫秒等指定間隔上針對檢測到的接觸來 對多觸點(diǎn)輸入顯示表面202的整個表面采樣。在每個采樣間隔,指示采樣結(jié)果 的原始傳感器數(shù)據(jù)(包括任何檢測到的與多觸點(diǎn)輸入顯示表面202的接觸的位 置和/或區(qū)域)被發(fā)送給傳感器接口213。因而,來自傳感器203的傳感器輸出 可以是指示多觸點(diǎn)輸入顯示表面202上的多個不同位置和/或區(qū)域處的接觸的
16原始傳感器信號數(shù)據(jù)。
傳感器接口 213可從傳感器203接收原始傳感器信號數(shù)據(jù),并且可將原始
傳感器信號數(shù)據(jù)轉(zhuǎn)換成輸入姿勢數(shù)據(jù)(例如數(shù)字?jǐn)?shù)據(jù)),輸入姿勢數(shù)據(jù)可由桌
面計(jì)算機(jī)系統(tǒng)201的其它模塊兼容處理。傳感器接口 213或其它模塊可按需緩 沖接觸輸入數(shù)據(jù)以確定一時間段內(nèi)選擇區(qū)域的變化。
例如,來自傳感器203的原始傳感器信號數(shù)據(jù)可在檢測到新的接觸時、移 動現(xiàn)有接觸時、在多觸點(diǎn)輸入顯示表面202上釋放現(xiàn)有接觸時改變(例如在采 樣間隔之間)。因而,在接收到多觸點(diǎn)輸入顯示表面202上的接觸的指示時, 傳感器接口 213可發(fā)起對原始傳感器信號數(shù)據(jù)的緩沖(例如緩沖到桌面計(jì)算機(jī) 系統(tǒng)201的系統(tǒng)存儲器中的緩沖區(qū)內(nèi))。當(dāng)多觸點(diǎn)輸入顯示表面202上的接觸 改變時,傳感器接口213可跟蹤原始傳感器信號數(shù)據(jù)中的改變、并更新檢測到 的接觸在緩沖區(qū)內(nèi)的位置和排序。
例如,傳感器接口 213可確定首先在第一位置檢測到接觸、然后接觸隨后 移動到其它位置。在接收到在多觸點(diǎn)輸入顯示表面202上的任何地方都不再檢 測到接觸的指示時,傳感器接口 213可將緩沖區(qū)的內(nèi)容轉(zhuǎn)換成輸入姿勢數(shù)據(jù)。 傳感器接口 213然后將輸入姿勢數(shù)據(jù)發(fā)送至桌面計(jì)算機(jī)系統(tǒng)201上的其它模 塊。
訓(xùn)練模塊233被配置成接收輸入姿勢數(shù)據(jù)和分配符號。根據(jù)所接收到的輸 入姿勢數(shù)據(jù),訓(xùn)練模塊233能產(chǎn)生用于訓(xùn)練神經(jīng)網(wǎng)絡(luò)產(chǎn)生與分配符號相對應(yīng)的 輸出向量的訓(xùn)練輸入向量。訓(xùn)練模塊233還能維護(hù)輸出向量/分配符號映射,其 將輸出向量映射到分配符號。 一般而言,訓(xùn)練模塊233能訓(xùn)練神經(jīng)網(wǎng)絡(luò)以識別 任何數(shù)目的不同符號,比如數(shù)字、字母表中的字符、甚至用戶生成的符號。
圖4示出用于訓(xùn)練計(jì)算機(jī)系統(tǒng)來識別指定輸入模式的示例方法400的流程 圖。圖2B示出輸入姿勢數(shù)據(jù)、對應(yīng)的訓(xùn)練輸入向量、以及期望輸出向量的一 示例。圖2C示出訓(xùn)練神經(jīng)網(wǎng)絡(luò)來將輸入姿勢識別為指定符號的示例。方法400 將參考圖2A、 2B和2C中的組件和數(shù)據(jù)來描述。
方法400包括訪問指定輸入模式的至少一個示例的輸入姿勢數(shù)據(jù)的動 作,該輸入姿勢數(shù)據(jù)表示一時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸(動 作401)。該輸入姿勢數(shù)據(jù)包括針對指定輸入模式的至少一個示例的第一方向運(yùn)動數(shù)據(jù)和第二方向運(yùn)動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸 入顯示表面上檢測到的接觸相對于第一軸的位置。第二方向運(yùn)動數(shù)據(jù)指示在該 時間段內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸的位置。
例如,手237的食指在輸入?yún)^(qū)域221內(nèi)接觸多觸點(diǎn)輸入顯示表面202以傳 入輸入姿勢267。傳感器103可跟蹤從點(diǎn)281至點(diǎn)282的接觸(基本上呈一直 線)。然后傳感器103可跟蹤從點(diǎn)282至點(diǎn)283的接觸(基本上呈一直線)。 當(dāng)接觸在多觸點(diǎn)表面202上從一點(diǎn)到另一點(diǎn)地移動時,傳感器203和傳感器接 口 213可互操作以跟蹤和緩沖相對于X軸271和Y軸272的代表性傳感器信 號數(shù)據(jù)。
在抵達(dá)點(diǎn)283之后,手237的食指可從多觸點(diǎn)輸入顯示表面202抬起。相 應(yīng)地,傳感器203不再檢測到多觸點(diǎn)輸入顯示表面202上的接觸。作為響應(yīng), 傳感器接口 213可將代表性傳感器信號數(shù)據(jù)轉(zhuǎn)換成輸入姿勢數(shù)據(jù)231。輸入姿 勢數(shù)據(jù)231表示在輸入姿勢267被輸入的時間段內(nèi)檢測到的接觸。輸入姿勢數(shù) 據(jù)231指示在該時間段內(nèi)針對輸入姿勢267檢測到的接觸相對于X軸271和Y 軸272的位置。點(diǎn)281 (接觸的初始點(diǎn))可被用作原點(diǎn)。
傳感器接口 213可將輸入姿勢數(shù)據(jù)231發(fā)送至訓(xùn)練模塊233。訓(xùn)練模塊233 可接收來自傳感器接口 213的輸入姿勢數(shù)據(jù)231。訓(xùn)練模塊233還可接收分配 符號232。分配符號232可通過(例如識別應(yīng)用程序的)用戶接口來輸入桌面 計(jì)算機(jī)系統(tǒng)201。用戶可指定輸入姿勢267 (以及由此的輸入姿勢數(shù)據(jù)231)表 示分配符號232的示例。
方法400包括將輸入姿勢數(shù)據(jù)編碼成實(shí)值輸入向量,各個實(shí)值對應(yīng)于第一 或第二軸上的樣本(動作402)。參照圖2B,示出了輸入姿勢數(shù)據(jù)231的圖形 表示?;谠搱D形表示,訓(xùn)練模塊233可計(jì)算第一維度曲線236。第一維度曲 線236指示一時間段內(nèi)所檢測到的輸入姿勢267的接觸相對于X軸271的位置。 基于該圖形表示,訓(xùn)練模塊233還可計(jì)算第二維度曲線238。第二維度曲線238 指示一時間段內(nèi)所檢測到的輸入姿勢267的接觸相對于Y軸272的位置。
訓(xùn)練模塊233可在多個指定時間采樣第一維度曲線236和第二維度曲線 238的每一個的值。根據(jù)釆樣值,訓(xùn)練模塊233可編碼實(shí)值的訓(xùn)練輸入向量239。 在圖2B的示例中,在八個不同時間(在傳入輸入姿勢267的時間段內(nèi))取樣本。值X1到X8表示來自第一維度曲線236的采樣值,而值Y1到Y(jié)8表示來 自到第二維度曲線238的對應(yīng)的采樣值。然而,可使用更少數(shù)量或更多數(shù)量的 采樣次數(shù)。樣本的組合數(shù)(采樣次數(shù)乘以軸數(shù)的乘積)可對應(yīng)于神經(jīng)網(wǎng)絡(luò)的輸 入節(jié)點(diǎn)的數(shù)量。
方法400包括保存輸入向量中所包含的實(shí)值表示指定輸入模式的一示例 的指示的動作(動作403)。例如,訓(xùn)練模塊233可將分配符號232映射到期 望輸出向量251,并將該映射儲存在輸出向量/分配符號映射262中。訓(xùn)練模塊 然后可保存提供訓(xùn)練輸入向量239的實(shí)值作為對神經(jīng)網(wǎng)絡(luò)的輸入將使得神經(jīng)網(wǎng) 絡(luò)輸出期望輸出向量251的指示。
方法400包括訪問全連接神經(jīng)網(wǎng)絡(luò)的動作(動作404)。該神經(jīng)網(wǎng)絡(luò)包括 輸入節(jié)點(diǎn)、隱藏節(jié)點(diǎn)和輸出節(jié)點(diǎn),輸入節(jié)點(diǎn)與隱藏節(jié)點(diǎn)全連接,而隱藏節(jié)點(diǎn)與 輸出節(jié)點(diǎn)全連接。例如,訓(xùn)練模塊233可訪問未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U。現(xiàn) 在參照圖2C,示出未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U的更詳細(xì)視圖。未經(jīng)訓(xùn)練的鏈路 246U將輸入節(jié)點(diǎn)251全連接到隱藏節(jié)點(diǎn)252,而未經(jīng)訓(xùn)練的鏈路247U將隱藏 節(jié)點(diǎn)252全連接到輸出節(jié)點(diǎn)253。
方法400包括創(chuàng)建一訓(xùn)練組以提供給神經(jīng)網(wǎng)絡(luò),從而訓(xùn)練該神經(jīng)網(wǎng)絡(luò)識別 指定輸入模式的動作(動作405)。該訓(xùn)練組至少包括輸入向量和對應(yīng)的輸出 向量,該對應(yīng)的輸出向量指示對應(yīng)于指定輸入模式的神經(jīng)網(wǎng)絡(luò)的期望輸出。例 如,訓(xùn)練模塊233可創(chuàng)建一訓(xùn)練組以提供給未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U,從而 訓(xùn)練未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U識別分配符號232。該訓(xùn)練組至少可包括訓(xùn)練 輸入向量239和期望輸出向量251 。
方法400包括使用反向傳播算法來通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)響應(yīng)于接收到輸入 向量產(chǎn)生接近對應(yīng)的輸出向量的輸出節(jié)點(diǎn)值,從而訓(xùn)練神經(jīng)網(wǎng)絡(luò)來識別指定輸 入模式的動作(動作406)。例如,訓(xùn)練模塊233可使用反向傳播算法來訓(xùn)練 未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U,以識別分配符號232。訓(xùn)練模塊233能通過訓(xùn)練未 經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U來在輸出節(jié)點(diǎn)253處產(chǎn)生在指定閾值內(nèi)接近期望輸出 向量239的值來這樣做。
比較模塊244可將實(shí)際輸出向量241與期望輸出向量244作比較。如果實(shí) 際輸出向量241的值不在期望輸出向量239的值的指定閾值內(nèi),則比較模塊244
19可將鏈路調(diào)節(jié)值242 (即誤差)饋送回未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U。比較模塊 244可執(zhí)行將鏈路調(diào)節(jié)值242饋送到未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234U的一次或多次 迭代,直到實(shí)際輸出向量241的值在期望輸出向量239的值的指定閾值內(nèi)。當(dāng) 輸出值在閾值內(nèi)時,比較模塊244可向訓(xùn)練模塊233指示未經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò) 234U受訓(xùn)來從輸入姿勢數(shù)據(jù)231中識別出分配符號232。例如,經(jīng)訓(xùn)練的神經(jīng) 網(wǎng)絡(luò)234T可輸出實(shí)際輸出向量243的值,其在期望輸出向量239的值的指定 閾值內(nèi)。
與不同人的筆跡的差異性相似,不同計(jì)算機(jī)用戶也可輸入表示相同符號的 不同輸入姿勢。因而,在一些實(shí)施例中,利用了表示分配符號的多個示例輸入 姿勢。例如,可向訓(xùn)練模塊233提供指定為'八'符號的附加示例輸入姿勢。
輸入姿勢數(shù)據(jù)可針對各個示例輸入姿勢創(chuàng)建和訪問。根據(jù)各輸入姿勢數(shù) 據(jù),可編碼對應(yīng)的訓(xùn)練輸入向量。各個訓(xùn)練輸入向量可被包括在訓(xùn)練組中,該 組用來使得神經(jīng)網(wǎng)絡(luò)輸出相同的期望輸出向量(其映射至分配符號)。因而, 神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練成將具有不同變體的各種輸入姿勢識別為同一分配符號。使 用多個輸入向量增加了經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)將隨后輸入的輸入姿勢適當(dāng)?shù)貥?biāo)識 為分配符號的可能性。
此外,本發(fā)明的各個實(shí)施例還包括訓(xùn)練神經(jīng)網(wǎng)絡(luò)來識別多個不同的分配符 號。例如,神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練成識別字母表中的各個字符(例如拉丁語、西里 爾語、阿拉伯語、婆羅門語系、希伯來語、韓語等)或可用于通信的其它符號 集(例如簡寫漢字或日語假名表)中的各個不同字符。神經(jīng)網(wǎng)絡(luò)還可被訓(xùn)練成 識別數(shù)系中的各個數(shù)字(例如阿拉伯、羅馬、漢語、日語、韓語等)。神經(jīng)網(wǎng) 絡(luò)還可被訓(xùn)練成識別包括字符(或簡寫漢字、日語假名等)和數(shù)字的不同符號 組合。例如,神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練成識別指定字符集(例如統(tǒng)一代碼字符集、 ASCII、 EBCDIC、 ISO-8859字符集、ANSI、 Microsoft Windows⑧字符集、Shift JIS、 EUC-KR等)中的所有符號。
因此,可利用表示字母表、數(shù)系、字符集等中的各個符號或其組合的輸入 姿勢的一個或多個示例。例如,對拉丁字母表(例如a、 b、 c、 d等)中的各 個字符(字母)指定的多個輸入姿勢可被提供給訓(xùn)練模塊233。對于各個分配 符號,可針對表示分配符號的各個示例輸入姿勢創(chuàng)建并訪問輸入姿勢數(shù)據(jù)。根
20據(jù)分配符號的各輸入姿勢數(shù)據(jù),可編碼對應(yīng)的訓(xùn)練輸入向量。分配符號的各輸 入姿勢數(shù)據(jù)可關(guān)聯(lián)于相同的期望輸出向量(映射至分配符號)。
因而,可創(chuàng)建包括多個訓(xùn)練輸入向量和對應(yīng)的期望輸出向量的一個或多個 集(每個分配符號一個集)。該一個或多個集的每一個都可被包括在訓(xùn)練組中, 以使得神經(jīng)網(wǎng)絡(luò)輸出適當(dāng)?shù)钠谕敵鱿蛄?其映射至適當(dāng)?shù)姆峙浞?。因而, 神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練成即使計(jì)算機(jī)用戶會輸入旨在表示符號中每一個的變化的 輸入姿勢也能識別符號集中的各個符號。
神經(jīng)網(wǎng)絡(luò)還可被訓(xùn)練成識別用戶定義的符號。
因此,本發(fā)明的各個實(shí)施例包括訓(xùn)練神經(jīng)網(wǎng)絡(luò)來識別多筆劃符號?,F(xiàn)在參
照圖3,圖3示出'x'的輸入姿勢數(shù)據(jù)的圖形表示。筆劃301表示在點(diǎn)351 與點(diǎn)352之間檢測到接觸。隨后,檢測到無接觸的時段。
對于筆劃301,訓(xùn)練模塊233可計(jì)算第一維度曲線303。第一維度曲線303 指示一時間段內(nèi)所檢測到的對應(yīng)的輸入姿勢的接觸相對于X軸271的位置。基 于該圖形表示,訓(xùn)練模塊233還可計(jì)算第二維度曲線304。第二維度曲線304 指示一時間段內(nèi)所檢測到的對應(yīng)輸入姿勢的接觸相對于Y軸272的位置。
在無接觸的時段之后,筆劃302表示在點(diǎn)353與點(diǎn)354之間檢測到接觸。 對于筆劃302,訓(xùn)練模塊233可計(jì)算第一維度曲線306。第一維度曲線306指 示一時間段內(nèi)所檢測到的對應(yīng)的輸入姿勢的接觸相對于X軸271的位置。基于 該圖形表示,訓(xùn)練模塊233還可計(jì)算第二維度曲線307。第二維度曲線307指 示一時間段內(nèi)所檢測到的對應(yīng)的輸入姿勢的接觸相對于Y軸272的位置。
隨后,可檢測到第二 (可能更長)無接觸的時段,其指示對應(yīng)輸入姿勢完 成。作為響應(yīng),訓(xùn)練模塊233可將第一維度曲線303和第一維度曲線306組合 成組合第一維度曲線308。組合第一維度曲線308表示對應(yīng)輸入姿勢相對于X 軸271的集合接觸。類似地,訓(xùn)練模塊233可將第二維度曲線304和第二維度 曲線307組合成組合第二維度曲線309。組合第二維度曲線309表示對應(yīng)輸入 姿勢相對于Y軸的集合接觸。
當(dāng)進(jìn)一步包括附加筆劃(例如東亞語系字符)時,可在每一筆劃基礎(chǔ)上創(chuàng) 建獨(dú)立曲線??砂摧S組合任何數(shù)量的獨(dú)立曲線(例如每一筆劃一條曲線)。因 此,輸入姿勢的集合接觸數(shù)據(jù)(相對于各個軸)可在對應(yīng)輸入姿勢不包括與多觸點(diǎn)輸入顯示202的連續(xù)接觸時畫成曲線。
訓(xùn)練模塊233然后可在多個指定時間采樣組合第一維度曲線308和組合第 二維度曲線309的每一個的值。根據(jù)采樣值,訓(xùn)練模塊233可編碼實(shí)值的訓(xùn)練 輸入向量239。訓(xùn)練模塊然后可保存提供訓(xùn)練輸入向量239的實(shí)值作為對神經(jīng) 網(wǎng)絡(luò)的輸入將使得神經(jīng)網(wǎng)絡(luò)輸出對應(yīng)于字母、'的期望輸出向量的指示。訓(xùn) 練模塊233然后可向神經(jīng)網(wǎng)絡(luò)提供輸入向量和期望輸出向量。使用反向傳播算 法,神經(jīng)網(wǎng)絡(luò)可被訓(xùn)練成根據(jù)訓(xùn)練輸入向量識別期望輸出向量(以及由此識別 字母'x,)。
當(dāng)彼此在空間上接近或彼此交叉地輸入多個筆劃(例如'x'或)時, 這些筆劃對應(yīng)于同一輸入姿勢的可能性增加。另一方面,當(dāng)多個筆劃不是彼此 在空間上接近地輸入(例如V'之后為'\'或者'e'之后為'~')時,這 些筆劃對應(yīng)于同一輸入姿勢的可能性減小。筆劃之間的必要接近距離可用來確 定兩個或多個筆劃之間的空間關(guān)系的充分性,并且因而確定該兩個或多個筆劃 是否對應(yīng)于同一輸入姿勢。該必要接近距離可以是例如多觸點(diǎn)顯示表面202上 的某數(shù)量的厘米、毫米、像素等。
一般而言,在確定多個筆劃對應(yīng)于同一輸入姿勢之前,訓(xùn)練模塊233或向 量生成器259可確認(rèn)多個筆劃之間的充分空間關(guān)系。例如,當(dāng)兩個筆劃分隔開 的距離比必要接近距離小或與之相等時,訓(xùn)練模塊233或向量生成器259可確 定該兩個筆劃對應(yīng)于同一輸入姿勢。另一方面,當(dāng)兩個筆劃分隔開的距離比必 要接近距離大時,訓(xùn)練模塊233或向量生成器259可確定該兩個筆劃不對應(yīng)于 同一輸入姿勢。
在一些實(shí)施例中,邊界框被用來確定兩個或多個筆劃之間空間關(guān)系的充分 性。指定維度的邊界框被定位在多個筆劃的每一個周圍。當(dāng)對應(yīng)于不同筆劃的 邊界框交叉時,訓(xùn)練模塊233或向量生成器259可確定該兩個筆劃對應(yīng)于同一 輸入姿勢。另一方面,當(dāng)對應(yīng)于不同筆劃的邊界框不交叉時,訓(xùn)練模塊233或 向量生成器259可確定該兩個筆劃不對應(yīng)于同一輸入姿勢。
另一方面,邊界框可結(jié)合必要接近距離使用以確定兩個或多個筆劃之間空 間關(guān)系的充分性。當(dāng)對應(yīng)于不同筆劃的邊界框分隔開的距離比必要接近距離小 或與之相等時,訓(xùn)練模塊233或向量生成器259可確定該兩個筆劃對應(yīng)于同一
22輸入姿勢。另一方面,當(dāng)對應(yīng)于不同筆劃的邊界框分隔開的距離比必要接近距
離大時,訓(xùn)練模塊233或向量生成器259可確定該兩個筆劃不對應(yīng)于同一輸入 姿勢。
空間接近度的使用允許多個用戶在彼此不相干擾的情況下同時利用多觸 點(diǎn)輸入顯示表面202來傳入輸入姿勢,從而進(jìn)行識別符號的訓(xùn)練并識別符號。
類似地,當(dāng)多個筆劃彼此時間接近地輸入時,這些筆劃對應(yīng)于同一輸入姿 勢的可能性增大。另一方面,當(dāng)多個筆劃不是彼此時間接近地輸入時,這些筆 劃對應(yīng)于同一輸入姿勢的可能性減小。筆劃之間的必要時間間隔可用來確定多 個筆劃是否對應(yīng)于同一輸入姿勢。該必要時間間隔可以是例如50毫秒與毫秒 之間的某毫秒數(shù)。在一些實(shí)施例中,400毫秒被用作必要時間間隔。
一般而言,在確定多個筆劃對應(yīng)于同一輸入姿勢之前,訓(xùn)練模塊233或向 量生成器259可確認(rèn)多個筆劃之間的充分時間關(guān)系。例如,當(dāng)?shù)谝还P劃的輸入 和第二筆劃的輸入之間的時間間隔小于或等于必要時間間隔時,訓(xùn)練模塊233 或向量生成器259可確定第一筆劃和第二筆劃對應(yīng)于同一輸入姿勢。另一方面, 當(dāng)?shù)谝还P劃的輸入和第二筆劃的輸入之間的時間間隔大于或等于必要時間間 隔時,訓(xùn)練模塊233或向量生成器259可確定第一筆劃和第二筆劃不對應(yīng)于同 一輸入姿勢。
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)之后,神經(jīng)網(wǎng)絡(luò)然后可被用來將輸入姿勢識別為對應(yīng)的分 配符號?,F(xiàn)在參照圖2D,向量生成器259可被配置成根據(jù)接收輸入姿勢數(shù)據(jù) 生成輸入向量。向量生成器259可以類似于訓(xùn)練模塊233 (并且可以是其子組 件)的方式產(chǎn)生輸入向量。例如,向量生成器259可繪制接觸相對于X軸271 和Y軸272的曲線。向量生成器然后可在輸入姿勢被輸入的時間段內(nèi)的多個時 間間隔處取曲線的樣本。
經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234T受限于接收輸入向量并產(chǎn)生對應(yīng)的輸出向量。識 別模塊266被配置成接收輸出向量并參考輸出向量/分配符號映射262以標(biāo)識適 當(dāng)?shù)姆峙浞?。識別模塊266可將分配符號發(fā)送給圖形子系統(tǒng)269,以供在多 觸點(diǎn)輸入顯示表面202上演示。
圖5示出了用于識別指定輸入模式的示例方法500的流程圖。方法500 將參考圖2C和2D中的組件和數(shù)據(jù)來描述。
23方法500包括訪問表示一時間段內(nèi)在多觸點(diǎn)輸入顯示表面上檢測到的接 觸的輸入姿勢數(shù)據(jù)的動作(動作501)。輸入姿勢數(shù)據(jù)包括第一方向運(yùn)動數(shù)據(jù) 和第二方向運(yùn)動數(shù)據(jù)。第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)多觸點(diǎn)輸入顯示表 面上檢測到的接觸的相對于第一軸的位置。第二方向運(yùn)動數(shù)據(jù)指示在該時間段 內(nèi)多觸點(diǎn)輸入顯示表面上檢測到的接觸的相對于第二不同軸的位置。
例如,手257的食指可在輸入?yún)^(qū)域221內(nèi)接觸多觸點(diǎn)輸入顯示表面202 以傳入輸入姿勢256。傳感器103可跟蹤從點(diǎn)284至點(diǎn)285的接觸(基本上呈 一直線)。然后傳感器103可跟蹤從點(diǎn)285至點(diǎn)286的接觸(基本上呈一直線)。 當(dāng)接觸在多觸點(diǎn)表面202上從一點(diǎn)到另一點(diǎn)地移動時,傳感器203和傳感器接 口 213可互操作以跟蹤和緩沖相對于X軸271和Y軸272的代表性傳感器信 號數(shù)據(jù)。
在抵達(dá)點(diǎn)286之后,手257的食指可從多觸點(diǎn)輸入顯示表面202抬起。相 應(yīng)地,傳感器203不再檢測到多觸點(diǎn)輸入顯示表面202上的接觸。作為響應(yīng), 傳感器接口 213可將代表性傳感器信號數(shù)據(jù)轉(zhuǎn)換成輸入姿勢數(shù)據(jù)258。輸入姿 勢數(shù)據(jù)258表示在輸入姿勢256被輸入的時間段內(nèi)檢測到的接觸。輸入姿勢數(shù) 據(jù)258指示在該時間段內(nèi)針對輸入姿勢256檢測到的接觸相對于X軸271和Y 軸272的位置。點(diǎn)284 (接觸的初始點(diǎn))可被用作原點(diǎn)。
傳感器接口 213可將輸入姿勢數(shù)據(jù)258發(fā)送至向量生成器259。向量生成 器259可接收來自傳感器接口 213的輸入姿勢數(shù)據(jù)258。
方法500包括在該時間段開始之時與該時間段結(jié)束之時之間的多個指定 間隔上取第一方向運(yùn)動數(shù)據(jù)和第二方向運(yùn)動數(shù)據(jù)的每一個的多個樣本的動作 (動作502)。例如,向量生成器259可創(chuàng)建一時間段內(nèi)相對于X軸271的運(yùn) 動的維度曲線和相對于Y軸272的運(yùn)動的維度曲線。向量生成器259可在多個 指定時間上對各個維度曲線的值采樣。根據(jù)采樣值,向量生成器259可編碼實(shí) 值的輸入向量261。向量生成器259可類似于訓(xùn)練模塊233對接收到的輸入姿 勢數(shù)據(jù)采樣(例如取相同數(shù)量的樣本以及在相同時間間隔上采樣)。因而,由 向量生成器209產(chǎn)生的輸入向量在通過訓(xùn)練模塊233訓(xùn)練的神經(jīng)網(wǎng)絡(luò)上兼容接 收。
方法500包括向神經(jīng)網(wǎng)絡(luò)的相應(yīng)的多個輸入節(jié)點(diǎn)提交多個樣本的動作(動作503)。神經(jīng)網(wǎng)絡(luò)先前己訓(xùn)練從輸入節(jié)點(diǎn)到多個隱藏節(jié)點(diǎn)的鏈路權(quán)重,并且 已訓(xùn)練從多個隱藏節(jié)點(diǎn)到多個輸出節(jié)點(diǎn)的鏈路權(quán)重。各個輸出節(jié)點(diǎn)分配到一指 定符號,從而被激活成指定閾值的輸出節(jié)點(diǎn)指示神經(jīng)網(wǎng)絡(luò)將輸入姿勢數(shù)據(jù)識別 為該指定符號。
例如,向量生成器259可將輸入向量261提交給經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234T。 訓(xùn)練模塊233先前己訓(xùn)練輸入節(jié)點(diǎn)251與隱藏節(jié)點(diǎn)252之間的鏈路權(quán)重,并且 先前已訓(xùn)練隱藏節(jié)點(diǎn)252與輸出節(jié)點(diǎn)253之間的鏈路權(quán)重。每個輸出節(jié)點(diǎn)253 分配到一指定符號。因而,當(dāng)輸出節(jié)點(diǎn)253之一被激活成處于指定閾值內(nèi)時, 輸入姿勢數(shù)據(jù)258被識別為分配符號232。
方法500包括該神經(jīng)網(wǎng)絡(luò)基于先前訓(xùn)練的鏈路權(quán)重處理多個樣本以激活 多個輸出節(jié)點(diǎn)的每一個上的值的動作(動作504)。例如,經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò) 234T可基于所訓(xùn)練的鏈路值246T和247T處理輸入向量261以激活輸出節(jié)點(diǎn) 253的每一個上的值(由此生成輸出向量264)。方法500包括確定在分配給 指定符號的指定輸出節(jié)點(diǎn)上的激活值至少是指定閾值的動作(動作505)。例 如,識別模塊可將輸出向量264與輸出向量/分配符號映射262中的一個或多個 期望輸出向量作比較。當(dāng)輸出向量264中的激活值在期望輸出向量的激活值的 指定閾值內(nèi)時,識別模塊266將輸出向量264和該期望輸出向量識別為匹配。 例如,識別模塊266可將輸出向量264和期望輸出向量239識別為匹配。
方法500包括指示已從輸入姿勢數(shù)據(jù)識別出指定符號的動作(動作506)。 例如,識別模塊266可確定期望輸出向量239映射到分配符號232。識別模塊 可將分配符號232發(fā)送至圖形子系統(tǒng)269。圖形子系統(tǒng)然后可在輸入姿勢256 被輸入之處或附近的輸入?yún)^(qū)域221內(nèi)呈現(xiàn)分配符號。
本發(fā)明的各個實(shí)施例包括識別神經(jīng)網(wǎng)絡(luò)能受訓(xùn)來識別的任何符號。因而, 分配符號232可以是經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)234T受訓(xùn)練來識別的多個可識別符號 (包括多筆劃符號)之一。
本發(fā)明的各個實(shí)施例還可跟蹤針對輸入姿勢附加維度的接觸數(shù)據(jù)。例如, 當(dāng)傳感器203被配置成檢測壓力時,可沿Z軸(因而為三維)針對壓力跟蹤接 觸數(shù)據(jù)。比如高度傳感器的其它類型的傳感器可用于跟蹤手指在桌子上的運(yùn) 動。這些其它傳感器可用于跟蹤手指相對于Z軸在高度上的運(yùn)動。因而,可創(chuàng)建一時間段內(nèi)接觸數(shù)據(jù)相對于Z軸的維度曲線。可取Z軸維 度曲線的樣本與X和Y維度的樣本?;赯維度測量值,可識別不同的姿勢。 例如,更有力地繪制的曲線和更輕地繪制的同一姿勢可被訓(xùn)練或識別為不同姿 勢。另一方面,多觸點(diǎn)輸入顯示表面202上的不同運(yùn)動可指示不同姿勢,即使 對這些姿勢而言多觸點(diǎn)輸入顯示表面202上的接觸是相同。
本發(fā)明的各個實(shí)施例還可對以任意旋轉(zhuǎn)輸入的輸入姿勢作出補(bǔ)償。為補(bǔ)償 旋轉(zhuǎn),模塊(例如訓(xùn)練模塊233或向量生成器259)確定接觸運(yùn)動的初始方向 (例如參照圖2A,從點(diǎn)281到點(diǎn)282)。可根據(jù)以下的偽碼示例來計(jì)算初始方 向
1. 創(chuàng)建點(diǎn)集S,初始為空
2. 根據(jù)姿勢G,創(chuàng)建邊界框,其完全界定G中的點(diǎn)、以G為之心、 并且為方形(各邊等長)。邊界框各邊的長度為B。
3. 持續(xù)將姿勢G中的點(diǎn)加入S,直到
A. 這些點(diǎn)的x方向位移為33M的B;或者
B. 這些點(diǎn)的y方向位移為33W的B;
4. 擬合通過S中各點(diǎn)的線(例如使用最小二乘法)
一旦計(jì)算了"初始方向"線,整個姿勢就被旋轉(zhuǎn)以使該初始方向線水平地 從左向右。旋轉(zhuǎn)可如下地進(jìn)行-
5. 計(jì)算初始方向線與從左向右的水平線之間的角度e。 0°幼<360°。
6. 使用標(biāo)準(zhǔn)旋轉(zhuǎn)矩陣將所有點(diǎn)旋轉(zhuǎn)e度。
根據(jù)標(biāo)準(zhǔn)化的(經(jīng)旋轉(zhuǎn)的)輸入姿勢數(shù)據(jù),可創(chuàng)建和采樣X對T和Y對
T的曲線。然后可將采樣值傳遞給神經(jīng)網(wǎng)絡(luò)??擅慨?dāng)姿勢被給作訓(xùn)練樣本、或
在正在識別由用戶繪制的姿勢時執(zhí)行對旋轉(zhuǎn)的補(bǔ)償。"初始方向"可被用來標(biāo)
準(zhǔn)化所有輸入,從而總是向神經(jīng)網(wǎng)絡(luò)呈現(xiàn)標(biāo)準(zhǔn)的單一朝向。對于多筆劃姿勢,
可基于串接的輸入曲線以相同方式計(jì)算初始方向。另一方面,對于多筆劃姿勢,
可僅基于第一筆劃計(jì)算初始方向。
本發(fā)明可具體化為其它具體形式而不背離其精神或本質(zhì)特征。所述實(shí)施例
在所有方面都應(yīng)被認(rèn)為僅是說明性而非限制性的。從而,本發(fā)明的范圍由所附
26權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方式的含義和范圍內(nèi)的 所有改變應(yīng)被權(quán)利要求書的范圍涵蓋。
權(quán)利要求
1.在包括多觸點(diǎn)輸入顯示表面(202)的計(jì)算機(jī)系統(tǒng)(201)上,一種用于訓(xùn)練所述計(jì)算機(jī)系統(tǒng)(201)將在所述多觸點(diǎn)輸入顯示表面(202)上輸入的輸入姿勢數(shù)據(jù)(231)識別為對應(yīng)的指定輸入模式(232)的方法,所述方法包括訪問針對指定輸入模式(232)的至少一個示例的輸入姿勢數(shù)據(jù)(231)的動作,所述輸入姿勢數(shù)據(jù)(231)表示在一時間段內(nèi)在所述多觸點(diǎn)輸入顯示表面(202)上檢測到的接觸,所述輸入姿勢數(shù)據(jù)(231)包括所述指定輸入模式(232)的至少一個示例第一方向運(yùn)動數(shù)據(jù)(236),所述第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)所述多觸點(diǎn)輸入顯示表面(202)上檢測到的接觸相對于第一軸(271)的位置;以及第二方向運(yùn)動數(shù)據(jù)(238),所述第二方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)所述多觸點(diǎn)輸入顯示表面(202)上檢測到的接觸相對于第二不同軸(272)的位置;將輸入姿勢數(shù)據(jù)(231)編碼成實(shí)值的輸入向量(239)的動作,各個實(shí)值對應(yīng)于第一(271)或第二軸(272)上的樣本;保存輸入向量(239)中所包含的實(shí)值表示指定輸入模式(232)的一示例的指示的動作;訪問全連接的神經(jīng)網(wǎng)絡(luò)(234U)的動作,所述神經(jīng)網(wǎng)絡(luò)(234U)包括輸入節(jié)點(diǎn)(255)、隱藏節(jié)點(diǎn)(252)、以及輸出節(jié)點(diǎn)(253),所述輸入節(jié)點(diǎn)全連接到所述隱藏節(jié)點(diǎn),而所述隱藏節(jié)點(diǎn)全連接到所述輸出節(jié)點(diǎn);創(chuàng)建訓(xùn)練組以提供給所述神經(jīng)網(wǎng)絡(luò)、從而訓(xùn)練所述神經(jīng)網(wǎng)絡(luò)(234U)識別所述指定輸入模式(232)的動作,所述訓(xùn)練組至少包括輸入向量(239)和對應(yīng)的輸出向量(287),所述對應(yīng)的輸出向量(255)指示神經(jīng)網(wǎng)絡(luò)的要對應(yīng)于指定輸入模式(232)的期望輸出;以及使用反向傳播算法來通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)響應(yīng)于接收到輸入向量(239)產(chǎn)生接近對應(yīng)輸出向量(255)的輸出節(jié)點(diǎn)值,從而訓(xùn)練神經(jīng)網(wǎng)絡(luò)(234U)來識別指定輸入模式(232)的動作。
2. 如權(quán)利要求1所述的方法,其特征在于,所述訪問針對指定輸入模式的 至少一個示例的輸入姿勢數(shù)據(jù)的動作包括訪問針對指定輸入模式的多個示例 的輸入姿勢數(shù)據(jù)的動作。
3. 如權(quán)利要求1所述的方法,其特征在于,所述訪問針對指定輸入模式的至少一個示例的輸入姿勢數(shù)據(jù)的動作包括訪問針對多個不同指定輸入模式的 的每一個的一個示例的輸入姿勢數(shù)據(jù)的動作。
4. 如權(quán)利要求1所述的方法,其特征在于,所述訪問針對指定輸入模式的至少一個示例的輸入姿勢數(shù)據(jù)的動作包括訪問針對多個不同指定輸入模式的 每一個的多個示例的輸入姿勢數(shù)據(jù)的動作。
5. 如權(quán)利要求1所述的方法,其特征在于,所述訪問輸入姿勢數(shù)據(jù)的動作 包括訪問針對多筆劃輸入模式的輸入姿勢數(shù)據(jù)的動作。
6. 如權(quán)利要求1所述的方法,其特征在于,還包括在將所述輸入姿勢數(shù)據(jù) 編碼成實(shí)值的輸入向量之前補(bǔ)償從中創(chuàng)建所述輸入姿勢數(shù)據(jù)的輸入姿勢的旋 轉(zhuǎn)的動作創(chuàng)建。
7. 如權(quán)利要求1所述的方法,其特征在于,所述輸入姿勢數(shù)據(jù)還包括第三 方向運(yùn)動數(shù)據(jù),所述第三方向運(yùn)動數(shù)據(jù)表示在該時間段內(nèi)沿任意附加第三軸的 運(yùn)動。
8. 如權(quán)利要求1所述的方法,其特征在于,所述將所述輸入姿勢數(shù)據(jù)編碼 成實(shí)值的輸入向量的動作包括在所述時間段開始之時與所述時間段結(jié)束之時 之間的多個指定間隔上取所述第一方向運(yùn)動數(shù)據(jù)與所述第二方向運(yùn)動數(shù)據(jù)的 每一個的多個樣本。
9. 如權(quán)利要求8所述的方法,其特征在于,使用反向傳播算法來訓(xùn)練所述 神經(jīng)網(wǎng)絡(luò)識別所述指定輸入模式包括向所述神經(jīng)網(wǎng)絡(luò)的對應(yīng)多個輸入節(jié)點(diǎn)提交多個樣本的動作,所述神經(jīng)網(wǎng)絡(luò) 具有從所述輸入節(jié)點(diǎn)向多個隱藏節(jié)點(diǎn)分配的隨機(jī)鏈路權(quán)重,并且所述神經(jīng)網(wǎng)絡(luò) 具有從所述多個隱藏節(jié)點(diǎn)向多個輸出節(jié)點(diǎn)分配的隨機(jī)鏈路權(quán)重;向所述神經(jīng)網(wǎng)絡(luò)指示所述輸入姿勢數(shù)據(jù)使得所述神經(jīng)網(wǎng)絡(luò)將指定輸出節(jié) 點(diǎn)激活成至少一指定闊值的動作,所述多個輸出節(jié)點(diǎn)中的指定輸出節(jié)點(diǎn)分配到指定符號;所述神經(jīng)網(wǎng)絡(luò)基于所述隨機(jī)鏈路權(quán)重處理多個樣本以激活多個輸出節(jié)點(diǎn)的每一個上的值的動作;確定指定輸出節(jié)點(diǎn)上的激活值并不是至少指定閾值的動作;計(jì)算指示指定輸出節(jié)點(diǎn)上的激活值與指定閾值之間的差的誤差值的動作;將所述誤差值從所述多個輸出節(jié)點(diǎn)反向傳播到所述神經(jīng)網(wǎng)絡(luò)以調(diào)節(jié)所述神經(jīng)網(wǎng)絡(luò)內(nèi)的鏈路權(quán)重的動作,所述經(jīng)調(diào)節(jié)的鏈路權(quán)重使所述神經(jīng)網(wǎng)絡(luò)在后續(xù)處理多個樣本時將指定輸出節(jié)點(diǎn)激活成更接近指定閩值。
10. 如權(quán)利要求9所述的方法,其特征在于,還包括在從多個輸出節(jié)點(diǎn) 向神經(jīng)網(wǎng)絡(luò)反向傳播所述誤差值之后向所述神經(jīng)網(wǎng)絡(luò)的對應(yīng)多個輸入節(jié)點(diǎn)重新提交所述多個樣本的動作;以及 所述神經(jīng)網(wǎng)絡(luò)基于所述經(jīng)調(diào)節(jié)的鏈路權(quán)重處理多個樣本以激活多個輸出 節(jié)點(diǎn)的每一個上的第二值的動作。
11. 如權(quán)利要求IO所述的方法,其特征在于,還包括 繼續(xù)計(jì)算進(jìn)一步的誤差值并從所述多個輸出節(jié)點(diǎn)向所述神經(jīng)網(wǎng)絡(luò)反向傳播所述進(jìn)一步的誤差值以進(jìn)一步調(diào)節(jié)所述神經(jīng)網(wǎng)絡(luò)內(nèi)的鏈路權(quán)重,直至經(jīng)調(diào)節(jié) 的鏈路權(quán)重產(chǎn)生至少是指定閾值的指定輸出節(jié)點(diǎn)值的動作;以及在檢測到指定輸出節(jié)點(diǎn)值至少是指定閾值時,指示所述神經(jīng)網(wǎng)絡(luò)受訓(xùn)識別 指定符號的動作。
12. 如權(quán)利要求l所述的方法,其特征在于,保存輸入向量中所包含的 實(shí)值表示指定輸入模式的一示例的指示的動作包括保存輸入向量中所包含的 實(shí)值表示用戶定義輸入模式的一示例的指示的動作。
13. 如權(quán)利要求1所述的方法,其特征在于,保存輸入向量中所包含的實(shí)值表示指定輸入模式的一示例的指示的動作包括保存輸入向量中所包含的 實(shí)值表示字母表中的多個輸入模式中一輸入模式的一示例的指示的動作。
14. 在包括多觸點(diǎn)輸入顯示表面(202)的計(jì)算機(jī)系統(tǒng)(201)上,一 種用于將在所述多觸點(diǎn)輸入顯示表面(202)上輸入的輸入姿勢數(shù)據(jù)(256)識 別為指定符號(232)的方法,所述方法包括-訪問表示在一時間段內(nèi)檢測到的所述多觸點(diǎn)輸入顯示表面(202)上的接 觸的輸入姿勢數(shù)據(jù)(258)的動作,所述輸入姿勢數(shù)據(jù)(258)至少包括第一方向運(yùn)動數(shù)據(jù),所述第一方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)所述多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第一軸的位置;以及第二方向運(yùn)動數(shù)據(jù),所述第二方向運(yùn)動數(shù)據(jù)指示在該時間段內(nèi)所述多觸點(diǎn)輸入顯示表面上檢測到的接觸相對于第二不同軸的位置;在該時間段開始之時與該時間段結(jié)束之時之間的多個指定間隔上取第一 方向運(yùn)動數(shù)據(jù)和第二方向運(yùn)動數(shù)據(jù)的每一個的多個樣本的動作;向神經(jīng)網(wǎng)絡(luò)(234T)的對應(yīng)多個輸入節(jié)點(diǎn)提交所述多個樣本(261)的動 作,所述神經(jīng)網(wǎng)絡(luò)(234T)具有先前訓(xùn)練的從所述輸入節(jié)點(diǎn)(251)到多個隱 藏節(jié)點(diǎn)(252)的鏈路權(quán)重(246T),并且所述神經(jīng)網(wǎng)絡(luò)(234T)具有先前訓(xùn) 練的從所述多個隱藏節(jié)點(diǎn)(252)到多個輸出節(jié)點(diǎn)(253)的鏈路權(quán)重(247T), 每個輸出節(jié)點(diǎn)(253)分配到指定符號以使被激活到指定閾值的輸出節(jié)點(diǎn)指示 所述神經(jīng)網(wǎng)絡(luò)(234T)將輸入姿勢數(shù)據(jù)(256)識別為所述指定符號(232);所述神經(jīng)網(wǎng)絡(luò)(234T)基于所述先前訓(xùn)練的鏈路權(quán)重處理多個樣本以激活 多個輸出節(jié)點(diǎn)(253)的每一個上的值的動作;確定在分配到指定符號(232)的指定輸出節(jié)點(diǎn)(253)上的激活值至少是 指定閾值的動作;以及指示已從輸入姿勢數(shù)據(jù)(257)識別出指定符號(232)的動作。
15. 如權(quán)利要求14所述的方法,其特征在于,還包括在取所述多個樣 本之前,補(bǔ)償從中創(chuàng)建所述輸入姿勢數(shù)據(jù)的所述輸入姿勢的旋轉(zhuǎn)。
16. 如權(quán)利要求14所述的方法,其特征在于,向神經(jīng)網(wǎng)絡(luò)的對應(yīng)多個 輸入節(jié)點(diǎn)提交所述多個樣本的動作包括向受訓(xùn)識別指定字母表的字符的神經(jīng) 網(wǎng)絡(luò)提交多個樣本的動作。
17. 如權(quán)利要求14所述的方法,其特征在于,所述輸入姿勢數(shù)據(jù)還包 括第三方向運(yùn)動數(shù)據(jù),所述第三方向運(yùn)動數(shù)據(jù)表示在該時間段內(nèi)沿第三軸的運(yùn) 動。
18. 如權(quán)利要求14所述的方法,其特征在于,所述訪問輸入姿勢數(shù)據(jù) 的動作包括訪問針對多筆劃輸入姿勢的輸入姿勢數(shù)據(jù)的動作。
19. 如權(quán)利要求14所述的方法,其特征在于,還包括在所述多觸點(diǎn)輸 入顯示表面上呈現(xiàn)指定符號的動作。
20. —種在包括多觸點(diǎn)輸入顯示表面(202)的計(jì)算機(jī)系統(tǒng)(201)上使 用的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品實(shí)現(xiàn)用于訓(xùn)練所述計(jì)算機(jī)系統(tǒng)(201)將在多觸點(diǎn)輸入顯示表面(202)上輸入的輸入姿勢數(shù)據(jù)(257)識別 為對應(yīng)的指定輸入模式(232)的方法,所述計(jì)算機(jī)程序產(chǎn)品包括其上儲存有 計(jì)算機(jī)可執(zhí)行指令的一個或多個計(jì)算機(jī)可讀介質(zhì),這些指令在處理器上執(zhí)行時 使得所述計(jì)算機(jī)系統(tǒng)(201)執(zhí)行所述方法,包括執(zhí)行以下步驟訪問針對指定輸入模式(232)的至少一個示例的輸入姿勢數(shù)據(jù)(231), 所述輸入姿勢數(shù)據(jù)(231)表示在一時間段內(nèi)在所述多觸點(diǎn)輸入顯示表面(202) 上檢測到的接觸,所述輸入姿勢數(shù)據(jù)(231)包括所述指定輸入模式(232)的 至少一個示例第一方向運(yùn)動數(shù)據(jù)(236),所述第一方向運(yùn)動數(shù)據(jù)指示在該時間段 內(nèi)所述多觸點(diǎn)輸入顯示表面(202)上檢測到的接觸相對于第一軸(271) 的位置;以及第二方向運(yùn)動數(shù)據(jù)(238),所述第二方向運(yùn)動數(shù)據(jù)指示在該時間段 內(nèi)所述多觸點(diǎn)輸入顯示表面(202)上檢測到的接觸相對于第二不同軸 (272)的位置;將輸入姿勢數(shù)據(jù)(231)編碼成實(shí)值的輸入向量(239),各個實(shí)值對應(yīng)于 第一 (271)或第二軸(272)上的樣本;保存輸入向量(239)中所包含的實(shí)值表示指定輸入模式(232)的一示例 的指示;訪問全連接的神經(jīng)網(wǎng)絡(luò)(234U),所述神經(jīng)網(wǎng)絡(luò)(234U)包括輸入節(jié)點(diǎn) (255)、隱藏節(jié)點(diǎn)(252)、以及輸出節(jié)點(diǎn)(253),所述輸入節(jié)點(diǎn)全連接到 所述隱藏節(jié)點(diǎn),而所述隱藏節(jié)點(diǎn)全連接到所述輸出節(jié)點(diǎn);創(chuàng)建訓(xùn)練組以提供給所述神經(jīng)網(wǎng)絡(luò)、從而訓(xùn)練所述神經(jīng)網(wǎng)絡(luò)(234U)識 別所述指定輸入模式(232),所述訓(xùn)練組至少包括輸入向量(239)和對應(yīng)的 輸出向量(287),所述對應(yīng)的輸出向量(255)指示神經(jīng)網(wǎng)絡(luò)的要對應(yīng)于指定 輸入模式(232)的期望輸出;以及使用反向傳播算法來通過訓(xùn)練神經(jīng)網(wǎng)絡(luò)響應(yīng)于接收到輸入向量(239)產(chǎn) 生接近對應(yīng)輸出向量(255)的輸出節(jié)點(diǎn)值,從而訓(xùn)練神經(jīng)網(wǎng)絡(luò)(234U)來識 別指定輸入模式(232)。
全文摘要
本發(fā)明涉及用于識別輸入姿勢的方法、系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。神經(jīng)網(wǎng)絡(luò)使用示例輸入和反向傳播來訓(xùn)練以識別指定輸入模式。輸入姿勢數(shù)據(jù)表示在一時間段內(nèi)多觸點(diǎn)輸入顯示表面上的接觸相對于一個或多個軸的運(yùn)動。用于訓(xùn)練數(shù)據(jù)網(wǎng)絡(luò)識別指定輸入模式的示例輸入可根據(jù)采樣輸入姿勢數(shù)據(jù)(例如已知表示指定輸入模式的輸入姿勢)創(chuàng)建。經(jīng)訓(xùn)練的神經(jīng)網(wǎng)絡(luò)隨后可用來將與已知輸入姿勢相似的輸入姿勢識別為對應(yīng)于已知輸入姿勢的指定輸入模式。
文檔編號G06K11/00GK101689245SQ200880022403
公開日2010年3月31日 申請日期2008年6月17日 優(yōu)先權(quán)日2007年6月27日
發(fā)明者M·布洛克 申請人:微軟公司