為更完全地理解本公開,參考以下詳細描述和附圖,在附圖中,相同的參考標號可被用來標識附圖中相同的元素。
圖1是根據一個示例的被配置用于觸摸分類的系統(tǒng)的框圖。
圖2是根據一個示例的用于觸摸分類的計算機實現(xiàn)的方法的流程圖。
圖3是根據一個示例的圖2的方法的非雙模評分過程的流程圖。
圖4是根據另一示例的圖2的方法的非雙模評分過程的流程圖。
圖5是根據用于所公開的方法和系統(tǒng)或其一個或多個組件或方面的實現(xiàn)的一個示例的計算環(huán)境的框圖。
盡管所公開的系統(tǒng)和方法易于具有各種形式的實施例,但在附圖中示出了(并在下文描述了)各具體實施例,其中要理解,本公開旨在是說明性的,而不將本發(fā)明限于本文所描述和示出的各具體實施例。
詳細描述
提供了用于對計算設備的觸敏表面上的觸摸事件進行分類的方法、系統(tǒng)和計算機程序產品。機器學習分類器被用來在有意和無意觸摸之間進行區(qū)分。無意觸摸事件可由用戶手掌不經意地或者以其他方式接觸觸摸表面而引起。其他無意的觸摸可包括拇指或手的其他部分在手持式設備的邊框上。該區(qū)分可允許這樣的無意觸摸事件被計算設備拒絕或忽略。對無意觸摸事件的拒絕與對有意觸摸事件(諸如故意的手指或指示筆(或筆)觸摸)的正確識別耦合可提供對計算設備的經改善的用戶體驗。在一些情況下,分類技術還可在不同類型的有意觸摸之間(例如,在手指和筆觸摸事件之間)進行區(qū)分。該區(qū)分還可包括生成指示分類的置信度或不確定度水平的數(shù)據。
這些分類技術可解決由被配置用于指示筆或筆觸摸的觸摸系統(tǒng)呈現(xiàn)的挑戰(zhàn)。例如,在用指示筆或其他筆工具將標記施加到觸敏表面上的過程中,用戶可不經意地將他或她的手掌(或手或手腕的其他部分)放在該表面上。計算設備可能隨后將該不經意的手掌接觸不正確地解釋為合法的輸入活動,由此引起計算設備的可能不想要的行為。其他無意觸摸可涉及用戶意外地相對于該表面的其他部分滑刷或撞擊手(或抓握在同一手中的筆或指示筆設備)??赏ㄟ^這些分類技術解決的又一指示筆相關的挑戰(zhàn)涉及正確地分類沒有握持指示筆的手指,這樣的手指通常接觸屏幕。使事情更困難的是,當手掌在屏幕的邊緣附近向下觸摸時,僅該手掌的一小部分可被觸敏表面檢測到。盡管手掌與觸敏表面接觸的面積減小了,這些分類技術還可正確地分類手掌。
這些分類技術可實時地提供在有意觸摸和無意觸摸之間進行可靠地區(qū)分的低計算復雜性過程。這些技術可實現(xiàn)低錯誤率,而不會在用戶界面響應性方面引入不合適的延遲。假肯定(輸入無意觸摸)和假否定(錯過的有意觸摸)通過機器學習分類器的配置和/或這些技術的其他方面來避免。機器學習分類器可經由針對(例如,來自多個人的)每一類型的觸摸收集的傳感器圖像(或幀數(shù)據)來訓練。這些分類技術由此不必為了使用戶界面處理時的等待時間最小化而依賴于簡單算法。機器學習分類實時地提供可靠的分類,即不會引入等待時間影響。
準確性方面的改善可在有不同量的存儲器和其他計算資源可用的計算設備中被實現(xiàn)。不同的機器學習分類器可被用于適應不同的資源水平。例如,在一些情況下,機器學習分類器被配置為隨機決策森林(RDF)分類器,該隨機決策森林(RDF)分類器被配置成提供條件概率分布。RDF分類器可涉及在數(shù)萬字節(jié)的存儲器的量級上對RDF樹數(shù)據結構的存儲。RDF實現(xiàn)可由此在觸摸分類發(fā)生在軟件級(諸如操作系統(tǒng)級)的情況下對通用處理器(例如,中央處理單元或圖形處理單元)有用。
分類技術還可在其中存儲器和其他計算資源被更多約束的計算環(huán)境中實現(xiàn)。在一些情況下,機器學習分類經由被實現(xiàn)為一個或多個查找表的決策樹分類器來提供。當分類由微控制器和其他資源受限硬件來實現(xiàn)時,查找表的較小的分類數(shù)據結構是有用的。分類計算由此可在各種各樣的計算平臺上實現(xiàn)。雖然以下結合RDF和查找表示例來進行描述,但分類技術不限于任何特定類型的機器學習分類器。例如,可使用神經網絡、模糊邏輯、支持向量機和邏輯回歸分類器。
分類技術被配置成在觸摸事件的多個幀上聚集觸摸信息以改善分類的準確性。該聚集避免了在嘗試僅基于單個圖像或幀來對觸摸事件進行分類時可引起的問題。例如,當手掌首先與表面接觸時,或者當手掌幾乎已從表面移走時,手掌可表現(xiàn)為類似于有意觸摸。在任一點,僅手掌的一小部分可被檢測到。在一些情況下,聚集涉及聚集在多個幀上的分類分數(shù)。在其他情況下,聚集涉及聚集在多個幀上觸摸事件的屬性或特征。在又一些情況下,分類技術可使用這兩種類型的聚集的組合。聚集還可有助于避免由其他情況(諸如在通常大面積的手掌觸摸由于用戶正處于電懸浮狀態(tài)(例如,用戶不具有良好的到地的高頻連接)而趨于消失時)引起的假肯定。
機器學習分類器被配置成提供多個非雙模分類分數(shù)。在機器學習分類中,每一非雙模分類分數(shù)都指示機器學習分類中的不確定度或置信度水平。分類分數(shù)的性質可根據例如所使用的分類器的類型而變化。例如,每一分類分數(shù)在該分類分數(shù)是概率值(例如,浮點或落在0和1之間的其他非整數(shù)數(shù)字)的意義上可以是非雙模的??商峁┒鄠€概率值(例如,每一類型的觸摸事件一個概率值)。其他類型的分類分數(shù)可改為使用整數(shù)數(shù)字。例如,分類分數(shù)可以是落在可能分數(shù)范圍(例如,-9到+9)內的分數(shù)評級。在這樣的情況下,多個非雙模分數(shù)可被組合(例如,相加)以確定最終的復合評級。例如,可為每一幀組合來自多個查找表的非雙模分數(shù),其隨后可跨與觸摸事件相關聯(lián)的所有幀被聚集??墒褂闷渌愋偷姆请p模分數(shù)。例如,分類分數(shù)的概率和評級類型可在變化的程度上被集成以提供混合分類辦法。
術語“手指觸摸”在本文中被用于指代涉及用戶的手或其他身體部位的任何故意或有意的觸摸事件。例如,手指觸摸可涉及拇指的側面接觸觸敏表面,這可例如在雙手指縮放姿勢期間發(fā)生。該觸摸可以是直接或間接的。例如,觸摸可用帶手套的手或以其他方式著裝的身體部位作出。
術語“筆觸摸”用于指代涉及筆、指示筆或由用戶握持來與觸敏表面交互的其他對象的各種不同的有意觸摸。計算設備可被配置為供與各種不同的或經標記的物理對象一起使用,物理對象包括圓盤、諸如刷子或噴槍之類的專用工具、移動設備、玩具和其他物理圖標或有形對象。
術語“觸摸”被用于指代由與觸敏表面相關聯(lián)的輸入傳感器檢測到的與觸敏表面的任何交互。觸摸可不包括或涉及直接物理接觸。交互可以是間接的。例如,觸敏表面可被配置為具有鄰近度傳感器。該交互可經由各種物理屬性(諸如電磁場)來檢測。觸摸的性質和/或源可由此變化,包括例如手指或手接觸、筆或指示筆接觸、基于懸停的輸入、經標記的對象、和被放置為與輸入表面接觸或以其他方式鄰近于觸摸表面的任何其他對象。因此,結合涉及投射電容、光學和/或其他感測技術的姿勢和懸停類型的觸摸事件,這些分類技術可以是有用的。
術語“手掌”和“手掌觸摸”被用于指代涉及用戶不旨在解釋為觸摸或與觸敏表面的其他交互的任何一個或多個身體部位的接觸或其他觸摸表面交互。這些身體部位可包括手的除手掌以外的其他部位,諸如手的指節(jié)、手指的側面、手腕或前臂、或者其他身體部位。
這些分類技術可對各種手持式和其他計算設備有用。因此,觸敏表面以及由此與觸敏表面的交互的性質可以變化。由此,有意觸摸不限于涉及用戶的指尖或手指。結合具有一個或多個觸敏表面或區(qū)域(例如,觸摸屏、觸敏邊框或外殼、用于檢測懸停類型的輸入的傳感器、光學觸摸傳感器等)的任何觸敏計算設備,這些分類技術是兼容并有用的。基于觸摸的計算設備的示例包括但不限于連接到計算設備的觸敏顯示設備、觸敏電話設備、觸敏媒體播放器、觸敏電子閱讀器、筆記本、上網本、電子書(雙屏)、或平板型計算機、或者具有一個或多個觸敏表面的任何其他設備。由此,觸敏計算設備的尺寸和形狀因子可以變化。例如,觸敏表面的尺寸的范圍可從手持式或可穿戴計算設備的顯示器到壁掛式顯示器或其他大尺寸顯示屏。然而,觸敏表面可以或可以不與顯示器或觸摸屏相關聯(lián),或者可以或可以不包括顯示器或觸摸屏。例如,觸敏表面可作為跟蹤墊來提供,或者可以是在空間上被實現(xiàn)為用于檢測觸摸輸入的平面(例如如可使用微軟公司的Kinect設備來實現(xiàn))的虛擬表面。
這些分類技術是結合電容觸摸系統(tǒng)來描述的。盡管本文中參考了電容感測,但本文中描述的觸摸分類技術不限于任何特定類型的觸摸傳感器。觸敏表面可替換地使用電阻、聲學、光學和/或其他類型的傳感器。觸敏表面可由此替換地檢測壓力、光照、位移、熱量、電阻和/或其他物理參數(shù)方面的改變。觸敏表面檢測輸入設備(諸如指示筆或筆)的方式可以變化。例如,筆可以是無源和/或有源的。任何有源筆都可發(fā)出或重傳通過觸敏表面檢測到的信號。出于鄰近度檢測的目的,無源筆可包括干擾觸敏表面的電磁場或其他特征的磁體或其他對象或材料(例如指示筆尖)。觸摸傳感器技術的性質的其他方面可以變化。
圖1描繪了被配置成實現(xiàn)觸摸分類的觸敏設備100。設備100包括觸摸系統(tǒng)102和觸敏表面104。觸敏表面104可以是觸摸屏或其他觸敏顯示器??砂ㄈ魏螖?shù)目的觸敏表面104。在該示例中,設備100還包括處理器106和一個或多個存儲器108。觸摸系統(tǒng)102可用作觸敏表面104與處理器106和存儲器108所支持的操作環(huán)境之間的接口或其他中間件。處理器106可以是通用處理器,諸如中央處理單元(CPU)、圖形處理單元(GPU)、或者任何其他專用處理器或處理單元??砂ㄈ魏螖?shù)目的這樣的處理器或處理單元。
觸摸系統(tǒng)102可通信地耦合到處理器106和/或存儲器108以提供指示觸敏表面104處發(fā)生的觸摸事件的數(shù)據。該觸摸事件數(shù)據可指定觸摸事件的位置和類型。該數(shù)據還可表示該類型指派的不確定度水平。更多、更少或替換信息可由觸摸系統(tǒng)102結合事件類型一起提供。例如,觸摸事件類型可與指示觸摸事件標識碼的數(shù)據一起被提供。觸摸事件的位置和/或其他信息可由觸摸系統(tǒng)102分開地提供。
在圖1的示例中,觸摸系統(tǒng)102包括一個或多個觸摸傳感器110、固件和/或驅動程序112、處理器114、和一個或多個存儲器116。處理器114通信地耦合到每一存儲器116和/或固件/驅動程序112。處理器114被配置成獲得經由觸敏表面104捕捉的幀數(shù)據。幀數(shù)據表示經由觸敏表面104捕捉的多個幀。每一幀的幀數(shù)據可包括值或像素的矩陣,其一起形成觸摸事件在表面104處發(fā)生的程度的圖像。每一像素的值指示傳感器110已在表面104上的特定位置處檢測到的觸摸量。幀數(shù)據可包括觸摸傳感器110的原始輸出數(shù)據和/或包括原始輸出數(shù)據的經處理的表示。
處理器114獲得幀數(shù)據的方式可以變化。例如,幀數(shù)據可經由固件/驅動程序112來接收和/或通過訪問存儲器116來獲得。
幀數(shù)據可替換地或附加地被處理器106獲得。在一些情況下,處理器106出于實現(xiàn)觸摸類型確定的目的而獲得幀數(shù)據。在這樣的情況下,處理器114可涉及控制傳感器110和/或被配置成實現(xiàn)一個或多個預處理任務或其他任務來為確定作準備。幀數(shù)據的處理和觸摸分類技術的其他方面可由處理器106和處理器114的任何組合實現(xiàn)。在其他示例中,出于獲得并處理幀數(shù)據的目的,設備100包括單個處理器(即,處理器106、處理器114或不同的處理器)。
設備100中的觸摸系統(tǒng)硬件的配置和布置可以變化。例如,每一觸摸傳感器100可替換地被配置為觸敏表面104的組件。驅動程序和經由固件112提供的其他信息可替換地被存儲在存儲器116中。
處理器114被配置成執(zhí)行存儲在存儲器116和/或存儲器108中的多個指令集。這些指令集可被布置為相應的軟件模塊。各模塊或其他指令集可被集成到任何所需程度。指令集包括團塊定義指令118、特征計算指令120和機器學習分類指令122。團塊定義指令118可涉及跨幀數(shù)據的多個幀為觸摸事件定義團塊或連接組分。相應的團塊可被定義在其中發(fā)生觸摸事件的每一幀中。特征計算指令120可涉及計算團塊的屬性或特征。每一特征可表征團塊的可有助于標識觸摸事件的類型的方面。機器學習分類指令122涉及通過機器學習分類基于特征集來確定觸摸事件的類型。分類的輸出包括多個非雙模分類分數(shù),該分數(shù)標識該分類的不確定度水平。結果,(諸)特征集可被應用于機器學習分類器以生成分類分數(shù)。結合以下多個示例描述每一指令集??砂ǜ郊拥闹噶睢⒛K或指令集。例如,可包括用于基于機器學習分類器的輸出來生成觸摸類型和/或向處理器106或設備100的其他組件傳送指示觸摸類型的數(shù)據的一個或多個指令集。
處理器114被配置成執(zhí)行團塊定義指令118來分析幀數(shù)據以在多個幀中的每一幀中為觸摸事件定義相應的團塊。給定觸摸事件可跨越任何數(shù)目的幀。在多個幀上的團塊的定義確立在對觸摸事件進行分類時要處理的輸入數(shù)據。
團塊定義指令118可使得處理器114執(zhí)行多個預處理動作以使幀數(shù)據準備好供分析。例如,幀數(shù)據(例如,原始幀數(shù)據)可在該分析(例如,團塊定義分析)之前被上采樣和/或閾值化。對幀數(shù)據進行上采樣可包括經由雙線性插值的4倍或其他上采樣速率??墒褂闷渌喜蓸舆^程,諸如雙三次、卷積和最近鄰技術。可使用其他過程。在一些情況下,幀數(shù)據在不進行上采樣、不進行閾值化、或不進行上采樣且不進行閾值化的情況下被分析。例如,在其中查找表分類器被使用的一些情況下,幀數(shù)據不被上采樣。
對幀數(shù)據進行閾值化可涉及消除幀數(shù)據中歸因于噪聲的小波動。例如,預定的強度閾值被用于將幀數(shù)據中具有低于該閾值的強度值的所有像素重置到0值。附加或替換濾波技術可被用于移除噪聲。在其中幀數(shù)據被上采樣的情況中,在該上采樣之后實現(xiàn)閾值化。
幀數(shù)據閾值可不同于觸摸系統(tǒng)102所使用的其他閾值。例如,幀數(shù)據閾值可低于被觸摸系統(tǒng)102用來檢測觸摸事件的閾值。較低的閾值在檢測在與表面104的實際接觸之前和之后的手掌和/或其他觸摸事件時可以是有用的。例如,檢測緊接在接觸之前的手掌(例如,手掌逼近表面104)可提供用于區(qū)分手掌觸摸與有意觸摸的目的的一個或多個附加數(shù)據幀。在一些情況下,該閾值可被確立為觸摸系統(tǒng)閾值的可配置或預定百分比,其取決于觸摸系統(tǒng)102檢測到的閾值水平可以是可變閾值。
該閾值可替換地或附加地被配置成并涉及在逐像素的基礎上生成幀數(shù)據的二進制表示。每一像素基于該像素的強度值相對于該閾值而為“打開”或“關閉”。幀數(shù)據的二進制表示可被用來簡化用于定義幀數(shù)據中的團塊的過程。
通過分析幀數(shù)據以確定哪些“打開”像素(例如,具有非零強度的像素)毗鄰其他“打開”像素來在該幀數(shù)據中定義團塊。這樣的毗鄰像素被認為彼此連接。連接像素的群組隨后被認為是幀圖像中的連接組分或團塊。每一幀可具有多個團塊,這些團塊中的每一者可被分開地分類??缯麄€幀數(shù)據集執(zhí)行連接組分分析以檢測該幀中的所有團塊。團塊定義指令118可引導處理器114出于跟蹤和定向與每一團塊有關的將來處理的目的向每一團塊分配標識符。
在許多情況下,每一團塊對應于觸摸表面104的分立對象。然而,存在其中兩個或更多個團塊由同一對象引起的情況。例如,手掌的觸摸接觸有時被劃分成兩個或更多個分離的團塊。在其他情況下,單個觸摸團塊是彼此太過接近的多個對象(例如彼此觸摸的手指的指尖)的結果。幀數(shù)據的連接組分分析可由此包括對幀數(shù)據的進一步處理以解決這些潛在的難題。例如,團塊定義指令118可使得處理器114進一步分析幀數(shù)據以確定團塊拆分和/或團塊合并是否被保證。
在團塊拆分分析中,每一團塊可被分析以確定該團塊是否是屬于接近的手指的多個指尖的接觸的結果。該確定可使用分類器。被認為對應于多個手指的團塊被拆分成分開的子團塊以供分析。在一個示例中,基于局部最大值(例如,強度值大于或等于所有8個鄰接鄰居的像素)在團塊中的位置來確定每一指尖接觸的坐標。假定指尖位于團塊中的每一強度局部最大值處,并通過將原始團塊中的每一像素分配給與位置(例如,局部最大值)最接近該像素的指尖相關聯(lián)的子團塊來將團塊分區(qū)成各子團塊。
關于給定團塊是否事實上是從多個指尖生成的決策可使用分類器來實現(xiàn)。在一個示例中,該分類器經由一個或多個決策樹來實現(xiàn)。但是可使用各種不同的分類器。分類器可以是或可以不是機器學習式的。例如,分類器可基于經驗或其他數(shù)據來手工實現(xiàn)。
在一個示例性團塊拆分過程中,團塊中具有高于或等于給定閾值的強度的所有局部最大值的坐標(其可以是子像素準確性)的列表被生成。該列表中的最大值按其最短遍歷(即通過該列表中的所有局部最大值的最短路徑)的可能次序之一來排序。從作為由對應于指尖的局部最大值達成的最小強度值的訓練數(shù)據來找出閾值。
分類器所采用的特征可以是或包括團塊的面積、局部最大值的數(shù)目、(即,采用其最短遍歷次序的)經排序的群組中的各連貫局部最大值之間的距離、以及沿著連接經排序的群組中的各連貫局部最大值的線的強度變化。分類器可由此被配置成對各局部最大值之間的距離以及強度落在各局部最大值之間的程度作出響應。
一旦團塊已被認為對應于多個指尖,該團塊被拆分成各分開的團塊,每一團塊與局部最大值中的相應一個局部最大值相關聯(lián)。每一這樣的團塊由來自原始團塊的像素的子集形成,或者包括來自原始團塊的像素的子集。原始團塊中的像素與具有較接近(或最接近)的局部最大值的新團塊中的相應新團塊相關聯(lián)。
在觸摸分類方面涉及更多復雜性的情況下,可實現(xiàn)團塊拆分。例如,在隨機決策森林分類器被用于觸摸分類的情況下,可實現(xiàn)團塊拆分。在其他情況下,包括查找表和其他低資源分類器用于觸摸分類的一些情況,不實現(xiàn)團塊拆分。盡管如此,在任一這些情況下都可實現(xiàn)或不實現(xiàn)團塊拆分。
在團塊拆分未被實現(xiàn)的情況下,團塊定義指令118可引導處理器114標識并存儲每一團塊內的局部最大值。隨著每一最大值被標識出,后續(xù)幀中的每一團塊(例如,在每一團塊內找到的局部最大值)的改變可被跟蹤。例如,如果在指尖分散開時團塊變成兩個分開的團塊,則局部最大值可被用來支持對這兩個分開的團塊的分開的分類。最大值的位置可附加地或替換地被用來將觸摸事件與由觸摸系統(tǒng)102的其他部分檢測到潛在觸摸相關。例如,固件112、存儲器116和/或另一存儲器可包括涉及檢測觸摸事件而無需分類的指令。
團塊合并可被實現(xiàn)為替換的或附加的團塊定義過程。在團塊合并時,緊密間隔的團塊被合并在一起以形成單個團塊。合并可被實現(xiàn)以使稍后處理和分類的團塊的數(shù)目最小化。因此,合并可在查找表和其他低資源分類平臺中被實現(xiàn)。合并還可有用于將接近手指觸摸與相應的手掌合并。團塊被合并在一起的距離可以是可配置的。在一個示例中,該距離是兩個圖像像素,其在一些觸摸系統(tǒng)中可對應于大致9毫米。
在一些情況下,團塊定義指令118還包括引導處理器114向蹤跡分配團塊的指令。術語“蹤跡”被用來指代由特定對象在一系列連貫幀上(例如,在該對象與表面104接觸時)生成的團塊的集合(以及底層的幀數(shù)據)。蹤跡分配和定義可在任何團塊拆分或合并之后被實現(xiàn)。蹤跡的定義允許跟蹤團塊跨多個幀經歷的移動和其他改變。通過向特定蹤跡分配團塊,相應幀中的團塊可彼此關聯(lián)作為同一觸摸事件的一部分。例如,各后繼幀中的多個團塊可彼此關聯(lián)作為涉及用戶指尖以滑刷姿勢跨表面104移動的觸摸事件的一部分。每一新團塊可被分配給新蹤跡或活動蹤跡?;顒盂欅E是已經被定義為先前幀的蹤跡的蹤跡。
在一些情況下,可經由對相應幀中的團塊的雙向匹配或其他分析來向各活動蹤跡分配新團塊。各種匹配技術可被用來將在當前幀中檢測到的團塊與先前幀中的團塊相關聯(lián)。雙向匹配中采用的成本函數(shù)可基于每一新團塊的位置和如從先前蹤跡的跡線中估計的每一蹤跡的接觸點的預期位置之間的距離。由每一后繼幀呈現(xiàn)的團塊確定擴展還是移除蹤跡。
觸摸系統(tǒng)102存儲活動蹤跡及其相關聯(lián)的屬性的列表。在圖1的示例中,該列表被存儲在數(shù)據庫124中,該數(shù)據庫124進而可被存儲在存儲器116之一中??墒褂闷渌鎯ξ恢煤?或數(shù)據結構。將不可通過當前團塊來擴展的蹤跡從活動蹤跡列表中移除。對于不可被匹配到任何現(xiàn)有活動蹤跡或不可以其他方式與任何現(xiàn)有活動蹤跡相關聯(lián)的每一團塊,新活動蹤跡被添加到該列表中。團塊定義指令118可被配置成經由蹤跡標識符(諸如蹤跡ID號)將團塊與蹤跡相關聯(lián)。
當蹤跡變得成熟時,團塊定義指令118可將控制傳遞給團塊特征計算指令120。當某蹤跡已被擴展至少預定數(shù)目的幀時,該蹤跡被認為是成熟的。例如,該數(shù)目的幀可以是三個幀。
當機器學習分類中要應用的特征包括蹤跡的特征時,將團塊分配到蹤跡可以是有用的。除了各個體團塊的特征外還可應用蹤跡特征,如以下結合涉及隨機決策森林(RDF)分類器的示例所描述的。在其他情況下,包括在蹤跡特征在分類中不被使用的那些情況下,也可使用蹤跡。在又一些情況下,團塊不被分配給蹤跡。例如,在查找表和具有小特征集的其他低資源分類技術中可不使用蹤跡。
處理器114被配置成執(zhí)行特征計算指令120來為每一觸摸事件計算多個特征集。每一特征集指定多個幀中的每一幀中的相應團塊的屬性。這些屬性可隨著這些團塊被定義或者在稍后的時間點(諸如在蹤跡被認為成熟時)被計算。例如,團塊特征計算指令120可被配置成使得處理器114在確定觸摸事件的類型時將特征集數(shù)據應用于機器學習分類器之前聚集特征集數(shù)據。在其他情況下,在進一步特征數(shù)據集的計算正在進行時,特定團塊的特征集數(shù)據被應用于機器學習分類器。例如,第一幀的特征集數(shù)據的應用可與第二幀的特征集數(shù)據的計算并發(fā)地被應用于分類器。在針對每一幀分開地將特征數(shù)據應用于分類器的情況中,這樣的并發(fā)處理可以是有用的。
要計算的團塊屬性可以變化。在涉及隨機決策森林(RDF)分類器的一個示例中,可為每一團塊計算以下團塊屬性的任何組合:(i)面積;加權質心(例如,∑(x,y)∈團塊(x,y)*強度(x,y));(ii)最小、最大和平均強度;(iii)最小、最大和平均強度梯度量值;(iv)周長;(v)圓度度量,諸如等周商數(shù)(isoperimetric quotient)(即,4*PI*面積/周長*2);(vi)從加權質心到最近圖像邊緣的距離;(vii)圖像邊緣上的團塊像素(即,該像素沿著該圖像中的第一行或列或最后一行或列)的平均強度;(viii)圖像邊緣處的寬度(即,圖像邊緣上的團塊像素的數(shù)目);(ix)以加權質心為中心的5x 5圖像片(來自原始或閾值化幀數(shù)據)的外觀;以及(x)以加權質心為中心的17x 17圖像片(來自原始或閾值化幀數(shù)據)的外觀。圖像片的外觀可經由對該片中的相應像素的強度值的分析來量化。圖像片特征的尺寸可以變化。圖像片也可以以處于除加權質心以外的位置為中心,或以其他方式相對于該團塊被設置。
可為RDF分類器和/或其他類型的機器學習分類器計算更多、更少或替換屬性。例如,在涉及查找表分類器的一個示例中,為每一團塊計算以下特征:該團塊的高度(例如,該團塊中的最大像素強度值);該團塊的面積;以及,該團塊的紋理。紋理特征可指示該團塊內的強度值的梯度。例如,紋理可被計算為該團塊中的每一像素和其8個最近鄰之差的絕對值的總和除以該團塊的面積的8倍。由手掌生成團塊趨于更平坦,或者具有更光滑的內部,并由此相比于通過多個緊密間隔的手指觸摸生成的團塊具有更少的紋理。計算更少的特征可減少計算指令120的代碼空間和處理時間。更少的特征還可減少在存儲針對每一團塊的計算的結果時所涉及的存儲器的量。
在涉及蹤跡的一些情況下,團塊特征計算指令120還可使得處理器114計算觸摸事件的蹤跡的一個或多個特征。除了蹤跡內的每一團塊的特征集外,還可計算該蹤跡的蹤跡特征集,其示例在以上列出。蹤跡特征集可在蹤跡達到成熟之際被計算。
蹤跡特征集可包括作為以上引用的團塊屬性中的一者或多者的累積的特征。在涉及隨機決策森林(RDF)分類器的一個示例中,在蹤跡的預定數(shù)目的幀上計算以下團塊屬性的最小、最大和平均值:(i)面積;(ii)連貫幀之間面積方面的改變;(iii)連貫幀之間位置方面的改變;(iv)等周商數(shù);(v)強度;(vi)強度梯度幅值;(vii)距最近圖像邊緣的距離;(viii)圖像邊緣上的像素的平均強度;以及(ix)圖像邊緣處的寬度。
蹤跡特征集可附加地或替換地包括涉及各個體團塊在蹤跡的第一F幀內的屬性的特征。由此,在一些情況下,計算每一幀處的團塊屬性可以是收集針對蹤跡的數(shù)據的一種方式。例如,可為每一個體團塊計算以下特征:(i)面積;(ii)連貫幀之間面積方面的改變;(iii)連貫幀之間位置方面的改變;(iv)等周商數(shù)或其他圓度度量;(v)最小、最大和平均強度;(vi)最小、最大和平均強度梯度量值;(vii)距最近圖像(或幀)邊緣的距離;(viii)圖像邊緣上的像素的平均強度;(ix)圖像邊緣處的寬度;(x)以加權質心為中心的5x 5圖像片(來自原始或經閾值化幀數(shù)據)中的像素的強度;(xi)以加權質心為中心的17x 17圖像片(來自原始或經閾值化幀數(shù)據)中的像素的強度;(xii)來自5x 5圖像片的各像素對之間的強度差;(xiii)來自17x 17圖像片的各像素對之間的強度差;(xiv)17x17片中的兩個同心環(huán)之間的最小強度差,例如,min{I(p):‖p-c‖=r_1}-max{I(p):‖p-c‖=r_2},其中r_1<r_2,其中I是圖像強度矩陣且c是加權質心??山Y合蹤跡計算更多、更少或替換特征。
處理器114被配置成執(zhí)行機器學習分類指令122以確定觸摸事件的類型或性質。該類型是經由機器學習分類來確定的。該分類被配置成基于多個幀的多個特征集來提供多個非雙模分類分數(shù)。在機器學習分類中,每一非雙模分類分數(shù)都指示不確定度或置信度水平。例如,每一分類分數(shù)可以是觸摸事件具有特定類型的概率。在其他示例中,分類算法是沿著指示觸摸事件是否具有特定類型的范圍或尺度的各個體評級。在一些情況下可聚集這些個體評級以確定累積評級??蓪⒗鄯e評級或其他分類分數(shù)與以下描述的閾值進行比較以確定觸摸事件類型。
一旦觸摸事件類型被確定,分類指令122還可被配置成使得處理器114將指示該類型的數(shù)據提供給設備100。在圖1的示例中,處理器114可將類型數(shù)據提供給處理器106。類型數(shù)據可被存儲到或提供給主機設備的任何組件。類型數(shù)據可連同指示觸摸事件的其他數(shù)據一起被提供。在一些情況下,其他數(shù)據包括蹤跡ID和觸摸事件在當前(例如,最后一個)幀中的坐標。在其他情況下,其他數(shù)據可與觸摸類型一起被提供。例如,觸摸類型可與觸摸事件坐標一起被提供。
機器學習分類指令122可按照分類被調用一次或者被迭代地調用。指令122被調用的方式可取決于特征集數(shù)據何時被計算。對于其蹤跡數(shù)據被計算的觸摸事件,處理器114可在針對該蹤跡的單個調用中將全部特征集數(shù)據共同應用于機器學習分類器。在一些其他情況下,在為每一幀計算特征集數(shù)據時迭代地實現(xiàn)分類指令122。例如,每一團塊的特征集數(shù)據被分開地應用于機器學習分類器。在先前計算的特征集數(shù)據被應用于機器學習分類器的同時,進一步的特征集數(shù)據可隨后被計算。
機器學習分類指令122可使得處理器14訪問一個或多個分類器數(shù)據結構126。分類器數(shù)據結構126可被存儲在存儲器116和/或其他存儲器中。分類器數(shù)據結構126的格式和其他特性可根據要被使用的機器學習分類器的類型而變化。為了便于解說和描述,圖1中示出了分類數(shù)據結構的兩個示例,因為設備100通常僅配置有單個分類器。這兩個示例性數(shù)據結構是隨機決策森林(RDF)數(shù)據結構128和查找表數(shù)據結構130。盡管特征集數(shù)據通常僅被應用于一個數(shù)據結構,在一些情況下可使用一個以上的分類器。例如,多個分類器的輸出可被比較或處理以確定最終分類。
RDF分類是分類指令122可使用的多個區(qū)別性分類技術之一。區(qū)別性分類器針對給定輸入陣列以一組分類上的離散概率分布的形式生成或返回多個非雙模分類分數(shù)。在該示例中,這些分類與可能的觸摸事件類型相對應,例如有意的指尖觸摸、電容式指示筆或其他筆觸摸、和無意的觸摸(諸如手掌)。例如,示例性輸出為{0.45,0.32,0.23}、有45%的機會該觸摸事件是有意的指尖觸摸、有32%的機會該觸摸事件為筆觸摸、以及有23%的機會該觸摸事件為無意的觸摸事件(例如,手掌觸摸)。每一概率分數(shù)由此表示觸摸事件具有特定類型的概率。在其他情況下,可使用更多、更少或替換分類。例如,在于有意和無意觸摸事件之間進行區(qū)分的情況中,可僅使用兩個分類。
區(qū)別性分類器可被配置成接受多個特征數(shù)據集作為輸入。區(qū)別性分類器的輸入可由此是根據計算指令120為觸摸蹤跡(例如,前幾個幀或另一預定數(shù)目的幀)計算的團塊和蹤跡特征數(shù)據。在蹤跡示例中,每一蹤跡的特征集在該蹤跡達到成熟時被應用于分類器。分類器由此提供每一成熟蹤跡的概率分布輸出。
RDF數(shù)據結構128包括隨機決策樹RDT1、RDT2、RDT3、……、RDTn的集合,其中n可以是任何數(shù)字。在一個示例中,數(shù)據結構包括20個樹,每一樹具有為11的最大決策高度。在隨機決策森林過程中,同一輸入數(shù)組被應用于每一棵樹。該RDF針對給定輸入的輸出是通過對這些樹中的每一者針對給定輸入的輸出求平均來計算的。這些樹的數(shù)量和高度可以變化。
每一RDT是其中每一內部(即,非葉)節(jié)點都具有相關聯(lián)的“分裂”二進制函數(shù)的二進制決策樹。當分裂二進制函數(shù)被應用于輸入時,該函數(shù)返回該輸入將被路由到該節(jié)點在該樹中的下一節(jié)點層中的右子節(jié)點還是左子節(jié)點的決策。RDT中針對給定輸入X的分類過程經由在該樹的根節(jié)點中通過應用該根的相關聯(lián)的分裂函數(shù)來處理X來開始,并在對應于該分裂函數(shù)的結果的子節(jié)點上對該輸入遞歸地繼續(xù)該過程。最后,該過程到達葉節(jié)點,在該葉節(jié)點處,返回在分類集合C上的離散概率分布作為過程輸出。
這些樹內的分裂函數(shù)可被實現(xiàn)為特征的值和閾值之間的不等式比較,即f<τ,其中f是特定特征的值并且τ是閾值。要在每一節(jié)點處使用的特定特征和閾值是在訓練過程期間學習到的。
在訓練期間,在每一節(jié)點處,從每一類型的特征的空間的采樣中選擇最佳特征。對于特征空間,與空間尺寸的平方根一樣多的樣本被采樣。
在圖1的示例中,僅單個RDF結構128被示出,并被用于提供所有三個分類分數(shù)(例如,指尖、筆、手掌)。但是在一些情況下,可使用多個RDF分類器來提供這些分類分數(shù)。例如,可使用各自具有相應的樹集合的兩個RDF分類器來提供這三個分類分數(shù)。在一個示例中,可使用一個RDF分類器來在有意觸摸和無意觸摸之間進行區(qū)分。隨后結合有意觸摸使用另一RDF分類器來在筆和指尖觸摸之間進行區(qū)分。
在一些情況下,可調整RDF分類的輸出。例如,這些調整可解決涉及具有多個新近成熟的蹤跡的幀的情況。在某幀中所有新近成熟的蹤跡的觸摸類型都被分類后,分類指令122可使得處理器114調整在被分類為無意(例如,手掌)觸摸事件的蹤跡附近的各蹤跡的類型。如果第一蹤跡的團塊的當前位置落在被分類為無意觸摸的第二蹤跡的團塊的閾值之內,則第一蹤跡也被分類為無意觸摸。這樣的調整可以是有用的,因為這些鄰近團塊通常由來自具有停留在表面104上的手掌的手的指節(jié)或手指的無意觸摸產生。
附加的或替換的機器學習分類器可被分類指令122使用。例如,其他類型的區(qū)別性分類技術可被使用。在一些示例中,機器學習分類器是查找表分類器。結合具有有限處理和/或存儲器資源的設備(諸如當處理器114是微控制器時),基于查找表的分類可以是有用的。對查找表的使用可極大地減少用于該分類的存儲器占用(footprint)以及處理時間。
在圖1所示的示例中,查找表數(shù)據結構130包括在有意和無意觸摸事件進行區(qū)分的一對查找表。特征集數(shù)據被應用于每一查找表。每一表隨后提供相應的個體非雙模分類分數(shù)或評級,如以下所描述的。第一查找表可被配置成提供關于觸摸事件是否是有意觸摸的第一評級。第二查找表可被配置成提供關于觸摸事件是否是無意觸摸的第二評級。相應幀的這些個體評級或分數(shù)中的每一者可隨后被組合以生成該相應幀的幀分類評級分數(shù)。附加查找表可被提供以例如進一步區(qū)分觸摸事件類型。在其他情況下,數(shù)據結構130僅包括單個查找表。
在該基于查找表的分類示例中,特征集數(shù)據在逐幀的基礎上被應用于分類器。例如,相應幀的特征集數(shù)據被應用于數(shù)據結構130中的每一查找表。每一表隨后為那個幀提供相應的個體非雙模分類分數(shù)或評級,如以下所描述的。期間存在該觸摸事件的各幀的幀分類評級分數(shù)隨后被聚集(例如,求和)以確定該觸摸事件的累積多幀分類分數(shù)。
以下結合其中各個體評級通過將評級彼此相減來組合的示例描述了用于跨各幀組合并隨后聚集分類評級或分數(shù)的方式。各個體評級可用各種各樣的其他方式來組合。例如,個體評級或分數(shù)可被配置成使得組合涉及加法操作、求平均操作和/或其他操作??绺鲙姆诸惙謹?shù)聚集也可用除以上描述的求和操作以外的方式來實現(xiàn)。分類指令122可隨后使得處理器114確定累積多幀分類分數(shù)是否越過了閾值。在一些示例中,提供多個分類閾值,每一可能觸摸事件類型一個分類閾值。如果(諸)閾值沒有被超過,則不確定度水平可被認為對于可靠地對觸摸事件進行分類而言過高了。此時,團塊定義指令118和計算指令120可被再次調用來為下一幀提供特征集數(shù)據。新特征集數(shù)據可隨后被再次應用于(諸)查找表以實現(xiàn)進一步評分、聚集和閾值化。
查找表分類器可被配置成使用團塊的特征作為(諸)查找表的索引。為每一團塊計算的特征可以是高度、尺寸和紋理,如以上所描述的。可包括更多、更少或替換特征。在一個示例中,該表中的每一條目是指示團塊具有特定觸摸事件類型(即該表的關聯(lián)分類)的可能性的二比特評級。為3的評級指示該團塊非常有可能是該分類的成員。為2的評級指示該團塊略有可能是該分類的成員。為1的評級指示該團塊有可能但不是高度有可能是該分類的成員。為0的評級指示該團塊非常不可能是該分類的成員。
在該示例中,各個體團塊評級分數(shù)是從兩個分類表中獲得的,一個分類表針對有意觸摸(例如,手指或筆),且另一分類表針對無意觸摸(例如,手掌)。每一團塊是通過將特征集數(shù)據應用于這兩個表而在這兩個表中查找出的。因幀而異的團塊分類評級(或“團塊分類評級”)可隨后通過以下方式來為該團塊計算:通過如下將來自相應表的各個體評級彼此相減來組合這些個體評級:
團塊分類評級=手指表評級-手掌表評級
結果,團塊分類評級的范圍為從-3到+3,其中正值指示該團塊較有可能是有意觸摸,并且其中負值指示該團塊更有可能是無意觸摸。評級的絕對值是對該分類的確定度或該評級方面的不確定度水平的指示。團塊分類評級是針對觸摸圖像中的每一團塊來計算的。
特定觸摸事件的團塊分類評級可隨后跨多個幀被累積或聚集以生成該觸摸事件的聚集團塊評級。例如,如果該團塊在前三個幀中具有為+2、+1和+2的團塊分類評級,則累積團塊評級為+5,即三個團塊分類評級的總和。
累積團塊評級隨后被用于確定觸摸事件類型。累積評級可與一個或多個閾值比較。在一個示例中,兩個閾值被用來支持分化為三個可能的分類之一。小于或等于手掌閾值的負觸摸評級被分類為手掌觸摸事件。大于或等于手指閾值的正觸摸評級被分類為手指/筆觸摸事件。所有其他觸摸評級被分類為未知。手掌和手指閾值是可配置的,但是示例性設置為用于手掌閾值的-9和用于手指閾值的+6。
累積團塊評級也可被用于確定處理進一步幀數(shù)據是否被保證。如果累積評級落在未知范圍內,則進一步幀數(shù)據可被處理以將另一團塊分類評級納入聚集。例如,向接近手掌的第一圖像(或幀)分配為+1的團塊分類評級。由于這是該手掌的第一圖像,累積評級也為+1。在下一圖像中,團塊分類評級再次被分配為+1。累積評級現(xiàn)在為+2。在下一圖像中,大部分手掌向下觸摸,使得團塊分類評級變?yōu)?2,并且累積評級現(xiàn)在為0。隨后向下三個圖像分配為-3的團塊分類評級,從而得到為-9的累積評級,這時觸摸被分類為手掌觸摸事件。所有先前的觸摸都將被分類為未知。即使前兩個觸摸圖像看上去略微更像手指而非手掌,分類器仍達到正確的最終分類,而不是錯誤的假肯定分類。
分類指令122可被配置成使得處理器114將各團塊與觸摸事件相關聯(lián)。在一些情況下,觸摸事件可最初通過固件112或觸摸系統(tǒng)02的其他組件來標識。對于每一潛在觸摸事件,可定義該觸摸事件的邊界框并將其與在當前觸摸圖像(或幀數(shù)據)中發(fā)現(xiàn)的所有最大值進行比較以標識出哪個團塊與該觸摸事件相關聯(lián)。大多數(shù)觸摸圖像將僅有單個團塊在邊界框內,并由此與一觸摸事件相關聯(lián)。在多個團塊有位于邊界框內的最大值的不可能事件中,觸摸事件的累積評級可被計算為這樣的交疊團塊的累積評級的平均。
分類指令122還可將多個調整納入該復合評級以解決一個或多個唯一性情形。每一調整都是基于規(guī)則或條件是否被滿足或存在來納入的。調整可補充查找表的分類能力,而不會將顯著的復雜性添加到該過程。
邊緣效應規(guī)則。通常離開觸摸屏的邊緣的手掌由于其小尺寸可具有看上去像有意觸摸的傾向。在這些情況下,為了改善性能,可跟蹤每一團塊中邊緣像素的數(shù)目。分類指令122可確定邊緣像素的數(shù)目是否超過閾值。如果邊緣像素的數(shù)目超過閾值,則團塊分類評級分數(shù)被調整。在一個示例中,從團塊分類評級分數(shù)中減去邊緣像素的數(shù)目和閾值之差。該調整使這些團塊的評級偏向手掌評級閾值。由單個有意觸摸造成的團塊往往具有小數(shù)目的邊緣像素,并因此不受調整規(guī)則的影響。由表面104的邊緣處的手掌造成的團塊更可能具有更大數(shù)目的邊緣像素,并因此偏向手掌分類以使假肯定最小化。盡管由邊緣處多個緊密間隔的手指造成的團塊依據該規(guī)則也可偏向手掌評級并導致假否定,但在接近該邊緣的姿勢通常為單個手指姿勢的范圍內,這樣的假否定結果的比率可能可接受地低。
手掌鄰近度調整。正用指示筆寫字的用戶通常將其手掌放在屏幕上,同時用2個手指和拇指抓住該指示筆。這個手的其他兩個手指接近表面104,并通常在寫字期間接觸表面104。該情形形成可表現(xiàn)為有意觸摸的團塊。為了使這些情況下的假肯定最小化,團塊分類評級分數(shù)可通過減去一商數(shù)來調整,該商數(shù)通過將該團塊的團塊面積除以閾值面積來計算出。該調整可在團塊的面積高于閾值并且該團塊在看上去像手掌的另一團塊附近(例如,為負團塊評級)時被作出。該調整趨于使非常接近手掌的手指觸摸偏向手指評級以使假肯定最小化。即使在指示筆觸摸也接近手掌時,該調整也無法單獨影響這些指示筆觸摸的分類,因為指示筆觸摸具有小于閾值的面積。
反觸摸調整。當用戶沒有到觸摸系統(tǒng)地的良好高頻連接(即,用戶正懸浮)時,大觸摸面積可趨于消失或甚至轉為反觸摸(即,其中正常觸摸將為正的觸摸圖像中的負面積)。該情形可導致假肯定,因為手掌的正常大面積在尺寸方面被顯著減小,并且到其他無意觸摸(諸如沒有握持指示筆的手指)的間隔增加了。為了使這些情況下的假肯定最小化,兩個調整可被納入分類評級過程。第一規(guī)則是一旦觸摸事件累積評級越過了該手掌閾值,下一幀中與該團塊交疊的任何團塊也被分配手掌評級。該調整在懸浮情形中可改善性能,因為手掌的各部分可趨于隨時間消失。盡管手掌在早期向下觸摸期間趨于看上去正常(并且可被分配手掌評級),但隨著該手掌的越來越多部分觸摸該表面,該手掌的諸部分趨于消失,而剩下部分可表現(xiàn)為有意觸摸。然而,由于剩下部分與在較早幀中看見的手掌交疊,這些剩下部分仍被分配手掌評級。
可在懸浮情況下可用于改善性能的第二規(guī)則涉及除正常團塊外還跟蹤反團塊。反團塊可被檢測為在觸摸圖像中的像素值小于或等于負閾值的連接像素組分。隨著反團塊也被定義在幀數(shù)據中,團塊分類評級分數(shù)可隨后通過在相應的團塊與反團塊交疊的情況下從該團塊分類評級分數(shù)中減去某值來調整。該調整可限于其中反團塊很大(例如,反團塊的尺寸超過閾值)的那些情況。通過從與大反團塊交疊的正常團塊的團塊分類評級中減去某值,這些正常團塊隨后偏向手掌評級。所減的值可以是固定值或對于越大的團塊面積變得越大的值。結合涉及多個緊密間隔的手指在對角線上對準的情況,將大反團塊的閾值設置為相對較大的尺寸(例如,50像素)可有助于避免對該調整的錯誤應用。
機器學習分類器可經由離線數(shù)據收集階段來訓練,在離線數(shù)據收集階段期間,涉及指示筆、指尖觸摸及無意的非指尖觸摸事件的多個圖像序列被接收。這些序列可在各種各樣的可能設備使用場景中被實現(xiàn),和/或涉及各種各樣的用戶。可存在壓力、姿勢、定向和其他觸摸事件特性方面的差異。有意觸摸事件(例如,指尖觸摸、或指示筆、或非指尖觸摸)的序列被分開地收集,由此避免對觸摸事件的手動標記。這些序列中每一計算出的蹤跡的特征數(shù)據集變?yōu)橛柧毷纠?/p>
在RDF示例中,RDF分類器可通過獨立地訓練該數(shù)據結構中的每一棵樹來訓練。從樹的根節(jié)點開始一次一個節(jié)點地對樹進行訓練。每一節(jié)點都是使用輸入訓練集來訓練的。最初,整個訓練集是用于訓練根節(jié)點的輸入集。
對節(jié)點n給定輸入訓練集T,該節(jié)點是通過采樣各拆分函數(shù)及其參數(shù)的空間達一定的次數(shù)(例如,與各拆分函數(shù)及其參數(shù)的空間的尺寸的平方根相對應的數(shù)目)來訓練的。對于每一經采樣(經參數(shù)化的)拆分函數(shù),還采樣多個可能的閾值(例如,100個閾值)。
對于拆分函數(shù)類型splitF、拆分函數(shù)參數(shù)化θ和閾值τ的給定拆分組合Σ=(splitF,θ,τ),每一輸入x∈T是根據splitF_θ(x)的值低于還是高于還是等于閾值τ來拆分的。
訓練過程在所有經采樣的拆分組合之上標識在該節(jié)點的輸入集T中的所有元素的拆分上實現(xiàn)最大信息增益的拆分組合。如果該增益過小或者如果節(jié)點n在最大預先選擇高度(例如,為11)處,則該節(jié)點被設為葉節(jié)點,并且與該葉節(jié)點相關聯(lián)的每一分類(例如,指尖觸摸、筆或指示筆、或手掌)的概率被設為該分類的樣本數(shù)與該節(jié)點的輸入集“T中的總樣本數(shù)的比。另一方面,如果該增益顯著地高或者節(jié)點n的高度小于最大預先選擇高度,則實現(xiàn)該最大增益的拆分組合Σ被關聯(lián)到該節(jié)點n,該節(jié)點的輸入集T被使用Σ拆分成兩個子集T_L和T_R,并且節(jié)點n被分配兩個子節(jié)點即左子節(jié)點和右子節(jié)點,每一子節(jié)點分別是使用輸入集T_L和T_R遞歸地訓練出的。
在訓練查找表分類器時可使用用于收集訓練樣本的類似方法。例如,觸摸圖像序列按自標記方式生成。例如,每一序列僅包含一個分類的觸摸(例如,全部為手指或全部為手掌)。團塊和相應的特征數(shù)據隨后從觸摸圖像中被提取出,并被傳遞到訓練過程以用作訓練樣本。
在一個查找表訓練示例中,訓練樣本根據高度特征被分組在多個桶(例如,8個桶)中。例如,在其中觸摸圖像中的任何像素的最大高度大致為1600的觸摸系統(tǒng)中,具有在0和199之間的高度的樣本被分配給桶0,具有在200-399的高度的樣本被分配給桶1,并以此類推。為了改善這些分類器的一般化,還可實現(xiàn)對樣本的微小“拖尾”。例如,高度210的樣本可被分配給桶0和1兩者。拖尾的量是可配置的,并且可以變化,但是在一個示例中,在分組邊界的10%內的樣本被分配給兩個組。隨后為每一高度分組內的所有樣本確定面積和紋理特征的最小和最大值。這時拖尾也被應用,使得最小和最大值被向下/向上調整小量(例如,10%)。這些樣本隨后根據面積特征被拆分成多個集合(例如,16個)(如以上所確定的,被均勻地分布在該面積特征的經拖尾最小值/最大值之間)。這些面積桶內的樣本隨后根據紋理特征被進一步拆分成多個桶(例如,16個)(如以上那樣被均勻地分布并被拖尾化)。隨著樣本被依據面積和紋理拆分,這些樣本可再次被拖尾化大致10%。在其中樣本被拖尾化的示例中,未經拖尾化的樣本可比經拖尾化的樣本被給予更高的優(yōu)先級。較高的優(yōu)先級可通過以下來提供:將每一未經拖尾化的樣本看成多個樣本(例如,9個),同時將每一經拖尾化的樣本看作僅單個樣本。
隨后可對這些最終桶中的每一者中的樣本數(shù)進行計數(shù)。隨后將這些計數(shù)與若干閾值進行比較。如果樣本數(shù)大于或等于“非??赡堋遍撝担瑒t針對那個桶的分類器表值被設為最高分類分數(shù)(例如,3)。如果樣本數(shù)大于或等于“很可能”閾值,則表值被設為次高分數(shù)(例如,2)。如果樣本數(shù)大于或等于“可能”閾值,則表值被設為下一次高分數(shù)(例如,1)。在2比特評分示例中,表值否則被設為0。這些閾值是可配置的,并且可以隨使用的訓練樣本數(shù)而變化,但是在一個示例中,對非??赡堋⒑芸赡芎涂赡荛撝悼煞謩e使用閾值90、9和1。2比特分數(shù)隨后根據分組、設置和桶劃分被存儲在表中。表條目由此也影響面積和紋理特征的最小值和桶尺寸。高度特征的最小值和桶尺寸可分別被固定為0和200。
在分類期間,除了以下例外外,表邊界之外的任何值默認被給予最低評級(例如,0)。具有大于或等于1600的高度的團塊被集總到1400-1599桶。具有高于在對指定高度的桶進行訓練時看到的任何手掌面積的面積的團塊被給予為1的手掌評級。這些異??捎兄诜诸惼鲗υ谟柧殨r從未看到的非常大的團塊進行正確地概括。
圖2描繪了用于觸摸分類的示例性方法200。該方法是計算機實現(xiàn)的。例如,圖1所示的觸敏設備100和/或另一觸敏設備的一個或多個計算機可被配置成實現(xiàn)該方法或其一部分。每一動作的實現(xiàn)可通過由觸摸系統(tǒng)102的處理器、設備100和/或另一處理器或處理系統(tǒng)執(zhí)行的相應計算機可讀指令來指導??梢栽诜椒ㄖ邪ǜ?、更少或替換的動作。例如,方法200可不包括涉及輸出功能性的動作。
方法200可始于涉及捕捉幀數(shù)據的一個或多個動作。捕捉幀數(shù)據的方式可以變化。幀數(shù)據可由不同的設備或處理器和/或結合由實現(xiàn)方法200的同一處理器或設備實現(xiàn)的不同方法來捕捉。
在圖2的實施例中,方法200始于動作202,在動作202中,幀數(shù)據被獲得。幀數(shù)據表示由觸敏設備捕捉的多個幀(或觸摸傳感器圖像)。幀數(shù)據可直接接收自觸摸系統(tǒng)102的硬件或(諸)其他組件(諸如固件112(圖1))以用于進行實時處理。替換地或附加地,幀數(shù)據可以是先前捕捉和存儲的幀數(shù)據。幀數(shù)據可由此通過訪問存儲器(諸如結合圖1描述的存儲器之一(即存儲器108、116)和/或另一存儲器)來獲得。
在動作204,幀數(shù)據被處理以定義多個幀中的每一幀中的相應團塊。團塊指示觸摸事件。這些團塊可跨本文中描述的多個幀被跟蹤或彼此關聯(lián),以在發(fā)生在同一幀中的多個觸摸事件之間進行區(qū)分。
該分析可包括在動作206對幀數(shù)據進行上采樣,在動作208對幀數(shù)據進行閾值化,在動作210進行團塊拆分,和/或在動作212進行團塊合并。如上所述,可實現(xiàn)這些處理動作中的每一者。方法200可包括這些處理動作中的任何一者或多者。例如,在一些RDF示例中,實現(xiàn)動作210的團塊拆分,但不實現(xiàn)動作212的團塊合并。相反,在一些查找表示例中,實現(xiàn)動作212的團塊合并,但不實現(xiàn)動作210的團塊拆分。
在一些情況(例如,一些RDF示例)中,在動作214,針對觸摸事件來定義或者按其他方式更新各團塊跨多個幀的蹤跡。蹤跡定義可在團塊定義之后發(fā)生。從當前幀提取的團塊數(shù)據被處理以更新在先前幀中標識出的蹤跡。動作214由此定義新蹤跡、擴展活動蹤跡和/或終止活動蹤跡?;顒盂欅E要么在當前幀中存在團塊的情況下被擴展一附加幀,要么由于缺少團塊而被終止,如以上所描述的。指示活動蹤跡的數(shù)據也被存儲在數(shù)據存儲216中。動作214可包括訪問如圖所示的數(shù)據存儲216以及處理活動蹤跡。
在其他情況(例如,一些查找表示例)中,特定幀的幀數(shù)據與后續(xù)幀的幀數(shù)據被分開地處理。動作204可涉及對單個幀的幀數(shù)據的分析。那個幀數(shù)據隨后準備好供進一步處理(例如,特征集計算和應用到機器學習分類器),該進一步處理與后續(xù)幀的幀數(shù)據的處理分開。
在動作218,為觸摸事件計算多個特征集。每一特征集指定多個幀中的每一幀中的相應團塊的屬性。在動作218計算出的特征和屬性可以變化,如以上所描述的。特征或屬性的數(shù)目也可隨著分類器的復雜性而變化。如圖2所示,在一些情況中,特征集數(shù)據可被存儲在其中存儲活動蹤跡數(shù)據的數(shù)據存儲216中。
在一些情況(例如,在RDF示例)中,可在動作220在多個幀上聚集特征集,并可在動作222計算蹤跡特征。例如,在其中蹤跡被定義和/或觸摸事件的多個幀的幀數(shù)據已按其他方式可用的情況下,可實現(xiàn)動作220和222。在確定觸摸事件的類型時,聚集在將多個特征應用于機器學習分類器之前發(fā)生。
在動作224應用特征集數(shù)據來經由機器學習分類確定觸摸事件的類型。該分類被配置成基于多個幀的多個特征集來提供多個非雙模分類分數(shù),如以上所描述的。在機器學習分類中,每一非雙模分類分數(shù)都指示不確定度或置信度水平。在一些情況下,數(shù)據存儲216可如圖所示被訪問以支持該分類。
在涉及蹤跡定義和擴展的情況中,動作224的分類的定時可取決于蹤跡何時成熟(例如,蹤跡被擴展了三次)。在這些情況下,當剛被擴展的活動蹤跡達到成熟時,其觸摸類型在動作224被確定。動作224可由此與動作204和218的幀數(shù)據處理和特征集計算并發(fā)且獨立地被實現(xiàn)。
對已經被分類但在當前幀中保持活動(例如,作為在當前幀中通過團塊擴展的結果)的成熟蹤跡的處理可以或可以不依賴于先前分類。在一些情況中,動作224可被配置成使得先前幀中已經成熟的蹤跡自動將其觸摸類型傳遞給軌跡通過其來擴展的團塊。在其他情況中,在給出新聚集的特征集數(shù)據(即包括由當前幀貢獻的數(shù)據)的情況下,動作224的分類被重復。
機器學習分類可包括在動作226將一個或多個特征集應用于機器學習分類器。在一些情況(例如,一些RDF示例)中,多個幀的特征集數(shù)據被共同應用于分類器。在這樣的情況下,蹤跡特征數(shù)據也可被應用。在其他情況(例如,一些查找表示例)中,特征集數(shù)據被逐幀地應用于分類器。
在特征集數(shù)據被應用于分類器后,一個或多個閾值可在動作228被應用于分類分數(shù)。(諸)閾值可被應用以確定觸摸事件類型和/或確定對進一步幀數(shù)據的處理是否被保證(例如,不確定度水平對于要知道的事件類型而言是否過高)。
方法200可包括涉及提供輸出的一個或多個過程。在圖2的示例中,指示觸摸事件類型和位置坐標的輸出數(shù)據在動作230被提供。這些坐標可指示與觸摸事件相關聯(lián)的多個幀中的最后一個團塊的位置。可提供附加或替換的輸出數(shù)據。例如,可提供蹤跡ID。
在一些情況下,圖2中示出的方法動作中的一者或多者可在多個幀上被迭代或以其他方式涉及迭代。例如,在查找表示例中,特征集數(shù)據被針對每一幀迭代地應用于查找表分類器。關于這樣的迭代的進一步細節(jié)結合圖4的示例來描述。
該方法的動作的順序可以與所示的示例有所不同。例如,在一些情況下,這些動作按流水線樣式來實現(xiàn),例如結合每一抵達幀來執(zhí)行。這些動作可在處理不同幀的幀數(shù)據、團塊和/或蹤跡時被并行或并發(fā)地實現(xiàn)。例如,動作218的特征集計算可與動作224的機器學習分類處理中的一些并發(fā)地實現(xiàn)。
圖3結合涉及隨機決策森林(RDF)分類器的示例示出關于觸摸事件確定動作224(圖2)的進一步細節(jié)。在該示例中,觸摸分類過程在動作302始于獲取多個幀的聚集特征集。一旦觸摸事件的團塊已被跟蹤了足夠數(shù)目的幀(即,蹤跡已被擴展到成熟),就可提供聚集特征集,如以上所描述的。聚集特征集合還可包括蹤跡特征數(shù)據,如以上所描述的。聚集特征集隨后在動作304被應用于RDF分類器中的每一隨機決策樹。每一樹的輸出在動作306被求平均以生成多個非雙模分類分數(shù)。在該情況下,每一非雙模分類分數(shù)表示觸摸事件具有相應類型的概率。閾值可隨后被應用于概率分數(shù)以確定觸摸事件類型??蔀槊恳挥|摸事件類型指定一個或多個閾值。例如,如果手指、指示筆和手指分類的概率分數(shù)分別為0.3以下、0.6以上和0.2以下,則觸摸事件可被分類為有意指示筆觸摸事件??呻S后提供指示觸摸事件類型、蹤跡ID和蹤跡(即,團塊)在當前幀中的位置的輸出。
圖4結合涉及查找表(LUT)分類器的示例示出關于觸摸事件確定動作224(圖2)的進一步細節(jié)。在該示例中,觸摸分類過程在動作402始于獲取當前幀的特征集。特征集隨后在動作404被應用于多個查找表。每一查找表確定個體(即,因表而異的)非雙模分類分數(shù)。例如,多個查找表可包括被配置成提供觸摸事件為有意觸摸的第一評級(例如,0到3)的第一查找表以及用于確定觸摸事件為無意觸摸的第二評級(例如0到3)的第二查找表。各個體分類分數(shù)隨后在動作406被組合以計算團塊的因幀而異的分類分數(shù)(即,團塊分類分數(shù))。例如,可從第一評級中減去第二評級,使得團塊分類分數(shù)落在從-3到+3的范圍內,其中負數(shù)更多指示無意觸摸,而正數(shù)更多指示有意觸摸。
觸摸事件的因幀而異的團塊分類分數(shù)在動作408被聚集。該聚集可包括將當前團塊分類分數(shù)與針對較早幀的任何先前計算的團塊分類分數(shù)相加。累積(即,多幀)分類分數(shù)可由此被計算出。
決策框410隨后確定觸摸類型分類的閾值是否被滿足??蔀槊恳挥|摸事件類型提供一相應的閾值。例如,如果累積分數(shù)大于+7,則觸摸事件被分類為有意觸摸。如果累積分數(shù)小于-6,則觸摸事件被分類為無意觸摸。如果任一閾值被滿足,則控制可傳遞到動作412,在動作412,觸摸事件類型被確定,并作為輸出被提供。如果任一閾值都沒被滿足,則控制返回動作402以獲得下一幀的進一步幀數(shù)據,并結合進一步幀數(shù)據來迭代特征應用動作404、分數(shù)組合動作406和分數(shù)聚集動作408。
在圖4的示例中,多個動作可被實現(xiàn)以結合若干專用情形調整分類分數(shù)或分類。決策框414可被用來確定在后續(xù)幀是否應當發(fā)生對與被認為是手掌觸摸事件的觸摸事件交疊的團塊的調整。在該示例中,如果當前觸摸事件被分類為手掌觸摸事件,則控制傳遞到動作416,在動作416,標志、狀態(tài)或其他變量被設置以將下一幀中的任何交疊團塊分類為手掌觸摸事件。
其他調整可被實現(xiàn)為對分類分數(shù)的調整。在圖4的示例中,這些調整結合在動作406計算團塊分類分數(shù)來實現(xiàn)。在動作418的調整可涉及通過在團塊與足夠大的反團塊(例如,大于50像素)交疊的情況下從團塊分類分數(shù)中減去某值來解決反團塊情形,如以上所描述的。在動作420的另一調整可涉及通過減去一商數(shù)來解決團塊何時接近手掌觸摸事件,該商數(shù)是通過將團塊的團塊面積除以閾值面積來計算出的,如以上所描述的。在動作422的又一調整可涉及通過從團塊分類評級分數(shù)中減去邊緣像素數(shù)和閾值之差來解決邊緣效應,如以上所描述的。
參考圖5,示例性計算環(huán)境500可被用來實現(xiàn)上述方法和/或系統(tǒng)的一個或多個方面或元素。計算環(huán)境500可以由觸敏設備100(圖1)或其一個或多個元件來使用或被合并到其中或者與其相對應。例如,計算環(huán)境500可用于實現(xiàn)觸摸系統(tǒng)102(圖1)或與觸摸系統(tǒng)102通信的主機設備或系統(tǒng)。計算環(huán)境500可以是被用來實現(xiàn)結合圖2-4描述的動作中的一者或多者的通用計算機系統(tǒng)。計算環(huán)境500可與各種各樣的計算設備之一向對應,這些計算設備包括但不限于個人計算機(PC)、服務器計算機、平板和其他手持式計算設備、膝上型或移動計算機、諸如移動電話之類的通信設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、網絡PC、小型計算機、大型計算機、音頻或視頻媒體播放器等。
計算環(huán)境500具有足夠的計算能力和系統(tǒng)存儲器來允許基本計算操作。在該示例中,計算環(huán)境500包括一個或多個處理單元510,其在本文中可被單獨或一起稱為處理器。計算環(huán)境500還可包括一個或多個圖形處理單元(GPU)515。處理器510和/或GPU 515可包括集成存儲器和/或與系統(tǒng)存儲器520通信。處理器510和/或GPU 515可以是專用微處理器(諸如數(shù)字信號處理器(DSP)、超長指令字(VLIW)處理器或其他微處理器),或者可以是具有一個或多個處理核的通用中央處理單元(CPU)。計算環(huán)境500的處理器510、GPU 515、系統(tǒng)存儲器520和/或任何其他組件可被封裝或以其他方式集成為片上系統(tǒng)(SoC)、專用集成電路(ASIC)或其他集成電路或系統(tǒng)。
計算環(huán)境500還可包括其他組件,諸如例如通信接口530。還可提供一個或多個計算機輸入設備540(例如,定點設備、鍵盤、音頻輸入設備、視頻輸入設備、觸覺輸入設備、用于接收有線或無線數(shù)據傳輸?shù)脑O備等)。輸入設備540可包括一個或多個觸敏表面,諸如跟蹤墊。還可提供各種輸出設備550,包括觸摸屏或(諸)觸敏顯示器555。輸出設備550可包括各種不同的音頻輸出設備、視頻輸出設備、和/或用于傳送有線或無線數(shù)據傳輸?shù)脑O備。
計算環(huán)境500還可包括用于存儲信息(諸如計算機可讀或計算機可執(zhí)行指令、數(shù)據結構、程序模塊或其他數(shù)據)的各種計算機可讀介質。計算機可讀介質可以是可通過存儲設備560訪問的任何可用介質,并且包括易失性和非易失性介質兩者,而不管在可移動存儲570和/或不可移動存儲580中。
計算機可讀介質可包括計算機存儲介質和通信介質。計算機存儲介質可包括以用于存儲諸如計算機可讀指令、數(shù)據結構、程序模塊、或其他數(shù)據等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質。計算機存儲介質包括,但不限于,RAM、ROM、EEPROM、閃存或其他存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其他光盤存儲、磁帶盒、磁帶、磁盤存儲或其他磁性存儲設備、或能用于存儲所需信息且可以由計算環(huán)境500的處理單元訪問的任何其他介質。
本文中描述的觸摸事件分類技術可用由計算環(huán)境500執(zhí)行的計算機可執(zhí)行指令(諸如程序模塊)來實現(xiàn)。程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據類型的例程、程序、對象、組件、數(shù)據結構等。本文描述的各技術還可以在其中任務由通過一個或多個通信網絡鏈接的一個或多個遠程處理設備執(zhí)行或者在該一個或多個設備的云中執(zhí)行的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可位于包括媒體存儲設備的本地和遠程計算機存儲介質兩者中。
這些技術可以部分地或整體地作為可以包括或不包括處理器的硬件邏輯電路或組件來實現(xiàn)。硬件邏輯組件可被配置為現(xiàn)場可編程門陣列(FPGA)、專用集成電路(ASIC)、程序專用標準產品(ASSP)、片上系統(tǒng)(SOC)、復雜可編程邏輯器件(CPLD)和/或其他硬件邏輯電路。
以上描述的分類技術可在觸敏設備中的有意觸摸事件和無意觸摸事件之間進行穩(wěn)健地區(qū)分。機器學習分類器被用于確定觸摸事件歸因于有意的手指觸摸還是無意的手掌觸摸。分類器還可確定觸摸事件是否是筆或指示筆接觸或觸摸。一些分類器(例如,RDF分類器)可被配置用于軟件實現(xiàn),例如處于其中不存在對存儲器可用性的硬約束的操作系統(tǒng)級或其他級。其他分類器可被配置用于資源有限平臺(諸如觸摸處理系統(tǒng)中當前使用的微控制器)中的實現(xiàn)。在這樣的情況下,可使用具有更有限的特征集合的查找表分類器(例如,3D查找表分類器)。
在一些情況下,在應用于分類器之前,觸摸事件的屬性或特征跨多個幀被計算和跟蹤。在觸摸事件的蹤跡達到預定幀數(shù)(例如,3個)后,特征集可被應用于分類器以確定觸摸事件的多個概率分數(shù)。每一概率分數(shù)是指示觸摸事件具有特定類型的概率的非雙模分數(shù)。觸摸類型的確定可隨后基于該概率分數(shù)來確定。
其他情況可涉及用于隨時間聚集觸摸事件的信息以及不同類型的分類分數(shù)的不同辦法。在一些情況下,查找表辦法被用于生成每一幀的非雙模分類分數(shù)。分類分數(shù)可隨后在多個幀上聚集(例如,求和)以確定觸摸事件的累積多幀分類分數(shù)。
由機器學習分類器提供的分類分數(shù)指示觸摸為有意或無意的可能性。分類分數(shù)的非雙模性質允許這些分數(shù)還指示該分類器確定的不確定度水平。該確定基于跨幀邊界獲得的信息,并由此基于來自多個時間點的信息。通過這種方式,例如,關于手掌第一次向下觸摸的早期幀可看上去像弱“觸摸”分類,隨著更多信息變得可用,該弱“觸摸”分類稍后變?yōu)閺姟笆终啤狈诸悺3鲥e性能可由此被改善。
分類分數(shù)可依據一個或規(guī)則來調整。這些規(guī)則可根據特征集數(shù)據所呈現(xiàn)的情形來應用或加強。這些情形可涉及幀的邊緣處的觸摸事件、手掌附近的手指觸摸、以及由“懸浮”用戶造成的觸摸圖像失真。這些調整可使分類器結果偏向或偏離手掌觸摸或其他觸摸類型。
此處所描述的技術可用各種其他通用或專用計算系統(tǒng)環(huán)境或配置來操作。適合與此處的技術一起使用的公知的計算系統(tǒng)、環(huán)境和/或配置的示例包括,但不限于,個人計算機、服務器計算機(包括服務器-客戶端體系架構)、手持式或膝上型設備、移動電話或設備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機頂盒、可編程消費電子產品、網絡PC、小型機、大型計算機、包含上述系統(tǒng)或設備中的任一個的分布式計算機環(huán)境等。該方法或過程步驟和功能中的一些或全部可由與正由用戶操作的客戶端或本地設備通信的聯(lián)網或遠程處理器來執(zhí)行。將各函數(shù)從本地設備卸載到遠程設備的潛在優(yōu)點是節(jié)省本地設備的計算和電力資源。
本文的技術可在諸如程序模塊等由計算機執(zhí)行的計算機可執(zhí)行指令的通用上下文中描述。一般而言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數(shù)據類型的例程、程序、對象、組件、數(shù)據結構等。本文的技術也可以在任務由通過通信網絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可以位于包括存儲器存儲設備的本地和遠程計算機存儲介質兩者中。
盡管已經參考具體示例描述了本發(fā)明,其中這些示例旨在僅僅是說明性的而非本發(fā)明的限制,但本領域普通技術人員將明白,可以對所公開的實施例作出改變、添加和/或刪除而不背離本發(fā)明的精神和范圍。
上述描述只是出于清楚理解的目的給出的,并且不應從中理解出不必要的限制,因為本發(fā)明的范圍內的修改對本領域普通技術人員而言是顯而易見的。