(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-03-08
(45)【発行日】2024-03-18
(54)【発明の名称】タッチベースユーザインターフェース入力におけるジェスチャーストローク認識
(51)【国際特許分類】
G06V 30/19 20220101AFI20240311BHJP
G06F 3/04883 20220101ALI20240311BHJP
【FI】
G06V30/19 G
G06F3/04883
(21)【出願番号】P 2022529075
(86)(22)【出願日】2020-11-26
(86)【国際出願番号】 EP2020083495
(87)【国際公開番号】W WO2021105279
(87)【国際公開日】2021-06-03
【審査請求日】2023-11-17
(32)【優先日】2019-11-29
(33)【優先権主張国・地域又は機関】EP
【早期審査対象出願】
(73)【特許権者】
【識別番号】515295429
【氏名又は名称】マイスクリプト
(74)【代理人】
【識別番号】110002952
【氏名又は名称】弁理士法人鷲田国際特許事務所
(72)【発明者】
【氏名】エラグーニ カウーラ
(72)【発明者】
【氏名】セロヴィック シリル
(72)【発明者】
【氏名】ベルニュ ジュリアン
【審査官】▲広▼島 明芳
(56)【参考文献】
【文献】特表2019-511025(JP,A)
【文献】特表2016-523406(JP,A)
【文献】米国特許出願公開第2014/0363082(US,A1)
【文献】米国特許出願公開第2018/0129897(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00 ー 30/424
G06F 3/0488 ー 3/04886
(57)【特許請求の範囲】
【請求項1】
タッチベースのユーザインターフェースを介して電子文書に適用されるユーザ入力におけるジェスチャーストロークを認識する方法であって、
ユーザ入力に基づいて生成されたデータであって、前記データが、ストロークを表し、矩形座標空間における複数のインクポイントと、前記複数のインクポイントにそれぞれ関連付けられた複数のタイムスタンプとを含むデータを受信すること(100)と、
前記複数のインクポイントを、前記ストロークのそれぞれのサブストロークに対応し、前記複数のインクポイントのそれぞれのサブセットを構成する複数のセグメントの各々にセグメント化すること(104)と、
前記複数のセグメントにそれぞれ基づいて複数の特徴ベクトルを生成すること(106)と、
前記ストロークが非ジェスチャーストロークである確率及び前記ストロークがジェスチャーストロークのセットの所定のジェスチャーストロークである確率を含む確率のベクトルを生成するために、前記ストロークを表す入力シーケンスとして前記複数の特徴ベクトルを学習済みストローク分類器に適用すること(108)と、を含む方法。
【請求項2】
前記複数のタイムスタンプに基づいて、複数の補正されたタイムスタンプを生成することを含む、請求項1に記載の方法。
【請求項3】
前記複数のタイムスタンプに基づいて前記複数の補正されたタイムスタンプを生成することが、
前記複数のインクポイントのオリジナルタイムスタンプ曲線(304)を近似する関数(302)を決定することと、
前記複数のタイムスタンプのタイムスタンプを、前記決定された関数(302)に従って得られた値に修正することと、を含む、請求項2に記載の方法。
【請求項4】
前記複数のインクポイントを再サンプリングして、第2の複数のインクポイント及び関連する第2の複数のタイムスタンプを生成することを含み、前記第2の複数のタイムスタンプが、連続するタイムスタンプ間の固定持続時間によって特徴付けられる、請求項1から3のいずれかに記載の方法。
【請求項5】
前記再サンプリングが、前記複数のインクポイント及び関連する複数のタイムスタンプを補間して、前記第2の複数のインクポイント及び前記関連する第2の複数のタイムスタンプを生成することを含む、請求項4に記載の方法。
【請求項6】
前記セグメント化が、前記複数のセグメントが等しい持続時間を有するように、前記複数のインクポイントをセグメント化することを含む、請求項4または5に記載の方法。
【請求項7】
前記複数のセグメントが、等しい数のインクポイントを有する、請求項6に記載の方法。
【請求項8】
前記複数のセグメントにそれぞれ基づいて前記複数の特徴ベクトルを生成することが、それぞれのサブストロークに対応する前記複数のセグメントの各セグメントに対して、
前記それぞれのサブストロークの形状を表す幾何学的特徴を生成することと、
前記サブストロークと、前記サブストロークに隣接するコンテンツとの間の空間的関係を表す、近傍特徴を生成することと、を含み、
前記サブストロークに隣接する前記コンテンツが、前記サブストロークを中心とするウィンドウと交差する、請求項1から7のいずれかに記載の方法。
【請求項9】
前記幾何学的特徴を生成することが、サブストロークに対して統計的サブストローク幾何学的特徴及び/またはグローバルサブストローク幾何学的特徴を生成することを含む、請求項8に記載の方法。
【請求項10】
前記統計的サブストローク幾何学的特徴を生成することが、幾何学的特徴のセットの各幾何学的特徴に対して、
前記それぞれのサブストロークに対応する前記セグメントの前記インクポイントに対するそれぞれの値を決定することと、
前記決定されたそれぞれの値に基づいて、1つ以上の統計的尺度を計算することと、を含む、請求項9に記載の方法。
【請求項11】
前記サブストロークの前記グローバルサブストローク幾何学的特徴を生成することが、サブストロークの長さ、前記サブストローク内の特異なインクポイントのカウント、及び前記サブストロークの長さと前記サブストロークの最初と最後のインクポイント間の距離との間の比率のうちの1つ以上を計算することを含む、請求項9または10に記載の方法。
【請求項12】
前記近傍特徴を生成することが、
前記サブストロークと前記サブストロークに隣接するテキストコンテンツとの間の空間的関係を表すテキスト近傍特徴と、
前記サブストロークと前記サブストロークに隣接する数学的コンテンツとの間の空間的関係を表す数学的近傍特徴と、
前記サブストロークと前記サブストロークに隣接する非テキストコンテンツとの間の空間的関係を表す非テキスト近傍特徴と、
のうちの1つ以上を生成することを含む、請求項8から11のいずれかに記載の方法。
【請求項13】
前記電子文書が手書きコンテンツまたはタイプセットコンテンツを含む、請求項1から12のいずれかに記載の方法。
【請求項14】
プロセッサ(1102)と、
前記プロセッサ(1102)によって実行されると、請求項1から13のいずれか1項に係る方法を実行するように前記プロセッサ(1102)を構成する命令を記憶するメモリ(1104)と、を備える、コンピューティングデバイス。
【請求項15】
プロセッサ(1102)によって実行されると、前記プロセッサ(1102)に請求項1から13のいずれか1項に係る方法を実行させる命令を含む、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、タッチベースのユーザインターフェースにおけるジェスチャー認識の分野に関する。
【背景技術】
【0002】
タッチベースのユーザインターフェースを介した電子文書の作成または編集の文脈では、ジェスチャーストローク、すなわち、コンテンツ上で定義されたアクションの実現に関連するストロークと、ユーザーによって追加される実際のコンテンツ(例えば、テキスト、数学、形状など)などの非ジェスチャーストロークとを区別する必要がある。
【0003】
既存のジェスチャー認識技術は、ルールベースである。より具体的には、それらは、定義された一連のジェスチャーを認識するためのヒューリスティックのセットを手動で定義することに依存する。これらの手法のパフォーマンスは一般的に許容範囲内であるが、通常、より複雑な/非定型のジェスチャーストロークではパフォーマンスが低下する。さらに、新しいジェスチャーストロークを追加するためのこれらの手法の更新は、新しいジェスチャーストロークに対して毎回新しいヒューリスティックを開発する必要があるため、困難である。
【発明の概要】
【0004】
本発明は、先行技術のいくつかの認識された欠点に対処する。
【0005】
具体的には、本発明は、タッチベースのユーザインターフェースを介して電子文書に適用されるユーザ入力におけるジェスチャーストロークを認識する方法であって、ユーザ入力に基づいて生成されたデータであって、データが、ストロークを表し、矩形座標空間における複数のインクポイントと、複数のインクポイントにそれぞれ関連付けられた複数のタイムスタンプとを含むデータを受信することと、複数のインクポイントを、ストロークのそれぞれのサブストロークに対応し、複数のインクポイントのそれぞれのサブセットを構成する複数のセグメントの各々にセグメント化することと、複数のセグメントにそれぞれ基づいて複数の特徴ベクトルを生成することと、ストロークが非ジェスチャーストロークである確率及びストロークがジェスチャーストロークのセットの所定のジェスチャーストロークである確率を含む確率のベクトルを生成するために、ストロークを表す入力シーケンスとして複数の特徴ベクトルを学習済みストローク分類器に適用することと、を含む方法、を提案する。
【0006】
ストローク分類器は、ニューラルネットワークとして実装してもよい。ニューラルネットワークの使用は、新しいジェスチャーストロークを含むデータに対するストローク分類器の簡単な再トレーニングで、新しいジェスチャーストロークを容易に追加することができることを意味する。
【0007】
実施形態によれば、電子文書は、手書きコンテンツ及び/またはタイプセットコンテンツを含んでもよい。
【0008】
サブストロークのセグメント化により、ストロークの経路に従った連続的な表現を得ることができる。各セグメントは、それ自体がストロークの局所的な記述に対応する。ストロークを単なるポイントのシーケンスとして表現する場合と比較して、サブストロークのセグメント化では、経路情報(すなわち、各セグメント内のポイント間の関係)を維持することができるため、計算時間が短縮される。
【0009】
一実施形態では、ストローク分類器はリカレント双方向長短期記憶(BLSTM)として実装される。リカレントBLSTMニューラルネットワークの使用は、ネットワークが長期的な依存関係を学習し、時間をかけて情報を記憶することを可能にするメモリブロックを含むことを意味する。このタイプのネットワークは、ストローク分類器が一連のベクトル(ストローク全体)を処理し、連続するサブストローク間の時間的依存性を考慮すること(すなわち、ストロークの経路の詳細を記憶すること)を可能にする。
【0010】
一実施形態では、本方法は、複数のタイムスタンプに基づいて、複数の補正されたタイムスタンプを生成することをさらに含む。
【0011】
複数のタイムスタンプの補正は、デバイスキャプチャーに関連するアーチファクトを除去し、ジェスチャーストローク認識を向上させるのに有利である。実際、デバイスキャプチャーの問題により、特定のタイムスタンプが、それぞれのインクポイントが描かれた正確な瞬間に対応しないのが一般的である。例えば、特定のデバイスでは、インクポイントに割り当てられたタイムスタンプは、インクポイントがキャプチャーされた正確な瞬間ではなく、インクポイントを含むイベントログがプロセッサユニットに送信された時間に対応する。したがって、受信したデータでは、異なる連続したインクポイントが同じタイムスタンプ値を有することがある。複数のタイムスタンプを補正することで、それぞれのインクポイントがユーザによって描かれた正確な瞬間をタイムスタンプがよりよく反映するようになる。それによって、ジェスチャー認識の向上が達成される。
【0012】
一実施形態では、複数のタイムスタンプに基づいて複数の補正されたタイムスタンプを生成することは、複数のインクポイントのオリジナルタイムスタンプ曲線を近似する関数を決定することと、複数のタイムスタンプのタイムスタンプを、決定された関数に従って得られた値に修正することと、を含む。
【0013】
一実施形態では、複数のインクポイントを再サンプリングして、第2の複数のインクポイント及び関連する第2の複数のタイムスタンプを生成することをさらに含む。
【0014】
複数のインクポイントを再サンプリングすることは、異なるデバイス間で均一な性能を確保するのに有利である。実際、デバイスは一般的に異なるサンプリング技術を使用するため、受信したデータはデバイス間でサンプリング特性が異なる場合がある。
【0015】
一実施形態では、第2の複数のタイムスタンプは、連続するタイムスタンプの間の固定された持続時間によって特徴付けられる。
【0016】
一実施形態では、再サンプリングは、複数のインクポイント及び関連する複数のタイムスタンプを補間して、第2の複数のインクポイント及び関連する第2の複数のタイムスタンプを生成することを含む。
【0017】
一実施形態では、複数のインクポイントのセグメント化は、複数のセグメントが等しい持続時間を有するように、複数のインクポイントをセグメント化することを含む。代替的にまたは追加的に、複数のセグメントは、等しい数のインクポイントを有してもよい。これらのセグメント化技術のうちの1つ以上を使用することによって、認識精度が向上することが示される。
【0018】
一実施形態では、複数のセグメントにそれぞれ基づいて複数の特徴ベクトルを生成することは、それぞれのサブストロークに対応する複数のセグメントの各セグメントに対して、それぞれのサブストロークの形状を表す幾何学的特徴を生成することと、サブストロークと、サブストロークに隣接するコンテンツとの間の空間的関係を表す、近傍特徴を生成することと、を含む。
【0019】
サブストロークに隣接するコンテンツは、サブストロークを中心とするウィンドウと交差するコンテンツとして定義されてもよい。
【0020】
この実施形態によれば、サブストロークに関連する特徴ベクトルは、サブストロークの形状及びサブストロークが描かれるコンテンツの両方を記述する。これら2種類の情報は相補的であり、ストロークをジェスチャーストロークまたは非ジェスチャーストロークとして高精度に認識することを可能にする。
【0021】
一実施形態では、幾何学的特徴を生成することは、サブストロークに対して統計的サブストローク幾何学的特徴及び/またはグローバルサブストローク幾何学的特徴を生成することを含む。統計的サブストローク幾何学的特徴は、個々のインクポイント幾何学的特徴に対して実行される統計分析から得られる特徴である。グローバルサブストローク幾何学的特徴は、サブストロークの全体的な経路(例えば、長さ、曲率など)を表す特徴である。
【0022】
一実施形態では、統計的サブストローク幾何学的特徴を生成することは、幾何学的特徴のセットの各幾何学的特徴に対して、それぞれのサブストロークに対応するセグメントのインクポイントに対するそれぞれの値を決定することと、決定されたそれぞれの値に基づいて1つ以上の統計的尺度を計算することと、を含む。
【0023】
一実施形態では、サブストロークのグローバルサブストローク幾何学的特徴を生成することは、サブストローク長、サブストローク内の特異インクポイントのカウント、及びサブストローク長とサブストロークの最初と最後のインクポイント間の距離との間の比率のうちの1つ以上を計算することを含む。
【0024】
一実施形態では、近傍特徴の生成は、サブストロークと、サブストロークに隣接するテキストコンテンツとの間の空間的関係を表すテキスト近傍特徴、サブストロークと、サブストロークに隣接する数学的コンテンツとの間の空間的関係を表す数学的近傍特徴、及び、サブストロークと、サブストロークに隣接する非テキストコンテンツとの間の空間的関係を表す非テキスト近傍特徴、のうちの1つ以上を生成することを含む。
【0025】
別の態様では、本発明は、コンピューティングデバイスを提供し、プロセッサと、プロセッサによって実行されると、上述した方法の実施形態のいずれかに係る方法を実行するようにプロセッサを構成する命令を記憶するメモリと、を含む。
【0026】
一実施形態では、上述した方法の実施形態のいずれも、コンピュータプログラムの命令として実装してもよい。したがって、本開示は、プロセッサによって実行されたとき、プロセッサに上述の方法の実施形態のいずれかによる方法を実行させる命令を含むコンピュータプログラムを提供する。
【0027】
コンピュータプログラムは、任意のプログラミング言語を使用することができ、ソースコード、オブジェクトコード、もしくは部分的にコンパイルされたコードなどのソースコードとオブジェクトコードとの中間のコード、または任意の他の望ましい形態、の形態をとってもよい。
【0028】
コンピュータプログラムは、コンピュータ可読媒体に記録されてもよい。したがって、本開示は、上記のようなコンピュータプログラムをその上に記録したコンピュータ可読媒体も対象にする。コンピュータ可読媒体は、コンピュータプログラムを記録することができる任意の実体またはデバイスであり得る。
【0029】
本発明のさらなる特徴及び利点は、以下の添付の図面を参照して、限定ではなく例示のみとして与えられる、その特定の実施形態の以下の説明から明らかになろう。
【図面の簡単な説明】
【0030】
【
図1】本発明の一実施形態に係る、タッチベースのユーザインターフェースを介して電子文書に適用されるユーザ入力におけるジェスチャーストロークを認識するための例示的なプロセスを示す。
【
図2】本発明の一実施形態に係る例示的なジェスチャーストロークを示す。
【
図3】本発明の一実施形態に係るオリジナルのタイムスタンプ曲線と近似関数を示す。
【
図4】本発明の一実施形態に係るサブストロークセグメントに分割された例示的なアンダーラインジェスチャーストロークを示す。
【
図5A】本発明の一実施形態に係る例示的な統計的サブストローク幾何学的特徴を示す。
【
図5B】本発明の一実施形態に係る例示的な統計的サブストローク幾何学的特徴を示す。
【
図5C】本発明の一実施形態に係る例示的な統計的サブストローク幾何学的特徴を示す。
【
図5D】本発明の一実施形態に係る例示的な統計的サブストローク幾何学的特徴を示す。
【
図6】本発明の一実施形態に係る例示的なジェスチャーストロークを示す。
【
図7】本発明の一実施形態に係るサブストロークのテキスト近傍特徴を生成する例示的なアプローチを示す。
【
図8】本発明の一実施形態に係る例示的ストローク分類器を示す。
【
図9A】本発明の一実施形態に係るトレーニングデータを生成する例示的なアプローチを示す。
【
図9B】本発明の一実施形態に係るトレーニングデータを生成する例示的なアプローチを示す。
【
図9C】本発明の一実施形態に係るトレーニングデータを生成する例示的なアプローチを示す。
【
図9D】本発明の一実施形態に係るトレーニングデータを生成する例示的なアプローチを示す。
【
図10】本発明の一実施形態に係る例示的な手書きメモ及び対応するタイプセットバージョンを示す。
【
図11】本発明の一実施形態を実施するために使用され得る例示的なコンピュータデバイスを示す。
【発明を実施するための形態】
【0031】
タッチベースのユーザインターフェースを介して電子文書に適用されるユーザ入力のジェスチャーストロークを認識するシステム及び方法が、本明細書に開示される。
【0032】
図1は、本発明の一実施形態に係る、タッチベースのユーザインターフェースを介して電子文書に適用されたユーザ入力におけるジェスチャーストロークを認識する例示的なプロセス100を示す。
【0033】
実施形態によれば、ジェスチャーストロークは、特定の特性または属性を有し、コンテンツ上で対応するアクションを実現することを意図されたストロークである。一実施形態では、6つのジェスチャーストロークが定義され、使用される。これらは、以下の動作に対応する:スクラッチアウト(ジグザグまたは走り書きの形状を有する消去ジェスチャー)、取り消し線(ラインストロークで実行される消去ジェスチャー。ラインストロークは水平、垂直、または斜めにすることができる)、スプリット(1つの単語を2つの単語に、または1つの行を2つの行に、または1つの段落を2つの段落にスプリットするジェスチャー)、結合(2つの単語を1つの単語に、または2行を1行に、または2段落を1段落に結合するジェスチャー)、サラウンド(コンテンツを囲むジェスチャー)及びアンダーライン。図示の目的で、
図2は、一例示実施形態に係るスプリットジェスチャーストローク及び結合ジェスチャーストロークを示す。本明細書の教示に基づいて当業者によって理解されるように、実施形態は6つのジェスチャーストロークを有することに限定されず、より多いまたは少ないジェスチャーストロークが定義され使用されてもよい。
【0034】
これに対して、アドストローク(非ジェスチャーストローク)は、定義されたジェスチャーストロークのうちの1つではない任意のストロークである。非ジェスチャーストロークは、ユーザによって追加されるコンテンツに対応してもよい。
【0035】
実施形態によれば、タッチベースのユーザインターフェースを介して電子文書に適用されるユーザ入力におけるジェスチャーストロークが認識される。限定なく、ユーザ入力は、例えば、指先またはスタイラスペンによって、タッチベースのユーザインターフェースに適用されてもよい。電子文書は、手書きコンテンツ及び/またはタイプセットコンテンツを含んでもよい。タッチベースのユーザインターフェースは、任意のタイプ(例えば、抵抗性、静電容量性など)であってよく、コンピュータ、モバイルデバイス、タブレット、ゲームコンソールなどのインターフェースであってよい。
【0036】
図1に示すように、例示的プロセス100は、ステップ102、104、106、及び108を含む。しかしながら、以下にさらに説明するように、他の実施形態では、プロセス100は、ステップ102、104、106、及び108に対する追加の介在ステップまたは後続ステップを含んでもよい。
【0037】
一実施形態では、プロセス100は、ステップ102で始まり、タッチベースのユーザインターフェースを介して電子文書に適用されたユーザ入力に基づいて生成されたデータを受信することを含む。
【0038】
受信されたデータは、ユーザによって適用されたストロークを表し、複数のインクポイントと、複数のインクポイントにそれぞれ関連付けられた複数のタイムスタンプを含む。複数のインクポイントは、(タッチベースのユーザインターフェースのスクリーンに基づいて定義される)矩形座標空間内に局在し、各インクポイントは矩形座標空間内の(X,Y)座標と関連付けられる。
【0039】
一実施形態では、受信されたデータは、ユーザによって適用されたストロークのキャプチャーに応答してタッチベースのユーザインターフェース及び関連する回路によって生成されたデータに対応する。異なるタッチベースのユーザインターフェースは、異なる入力サンプリング技術、異なるデータ表現技術などを使用することを含めて、異なる方法でストロークをキャプチャーしてもよい。一実施形態では、タッチベースのユーザインターフェースから受信したデータが、本発明によって使用されるインクポイントフォーマットと異なるフォーマットである場合、受信したデータは、複数のインクポイント及びそこからそれぞれの複数のタイムスタンプを生成するように変換される。
【0040】
一実施形態では、プロセス100は、複数の補正されたタイムスタンプを生成するために、受信したデータに含まれる複数のタイムスタンプを補正することをさらに含んでもよい。次いで、複数の補正されたタイムスタンプは、複数のインクポイントに関連付けられ、プロセス100の残りの部分のためにオリジナルタイムスタンプの代わりに使用される。
【0041】
一実施形態では、複数のタイムスタンプの補正は、デバイスキャプチャーに関連するアーチファクトを除去し、ジェスチャーストローク認識を向上させるのに有利である。実際、デバイスキャプチャーの問題により、特定のタイムスタンプが、それぞれのインクポイントが描かれた正確な瞬間に対応しないのが一般的である。例えば、特定のデバイスでは、インクポイントに割り当てられたタイムスタンプは、インクポイントがキャプチャーされた正確な瞬間ではなく、インクポイントを含むイベントログがプロセッサユニットに送信された時間に対応する。したがって、受信したデータでは、異なる連続したインクポイントが同じタイムスタンプ値を有することがある。複数のタイムスタンプを補正することで、それぞれのインクポイントがユーザによって描かれた正確な瞬間をタイムスタンプがよりよく反映するようになる。それによって、ジェスチャー認識の向上が達成される。
【0042】
一実施形態では、複数のタイムスタンプの補正は、複数のインクポイントのオリジナルタイムスタンプ曲線を近似する関数を使用することによって行われる。近似する関数は、線形関数であってもよいが、実施形態はそのように限定されない。
【0043】
図3は、一例に係るオリジナルタイムスタンプ曲線304を近似する線形関数302を示す。オリジナルタイムスタンプ曲線304は、複数のインクポイント(X軸によって与えられる番号1~163)の各々に、対応するタイムスタンプ(Y軸によって与えられる0~600)を提供する。図示のように、オリジナルタイムスタンプ曲線304は、複数の連続するインクポイントが同じタイムスタンプ値を有することを反映して、ステップ関数である。前に議論したように、これはデバイスキャプチャーの問題に起因している場合がある。
【0044】
線形関数302は、オリジナルタイムスタンプ曲線304の線形近似である。一実施形態では、線形関数302は、オリジナルタイムスタンプ曲線304に最も適合する関数である。例えば、線形関数302は、オリジナルタイムスタンプ曲線304に最小二乗フィッティングすることによって得られる。
【0045】
インクポイントに関連するタイムスタンプの修正は、オリジナルタイムスタンプ曲線304によって提供されるインクポイントに関連するタイムスタンプを、インクポイントを線形関数302に投影することによって得られる対応する値に修正することを含む。
【0046】
一実施形態では、プロセス100は、複数のインクポイントを再サンプリングして、第2の複数のインクポイント及び関連する第2の複数のタイムスタンプを生成することをさらに含んでもよい。再サンプリングは、オリジナルタイムスタンプまたは補正されたタイムスタンプに基づいて実行されてもよい。第2の複数のインクポイント及び第2の複数のタイムスタンプは、その後、プロセス100の残りの部分に使用される。
【0047】
複数のインクポイントを再サンプリングすることは、異なるデバイス間で均一な性能を確保するのに有利である。実際、デバイスは一般的に異なるサンプリング技術を使用するため、ステップ102で受信したデータはデバイス間でサンプリング特性が異なる場合がある。
【0048】
時間的、空間的、またはその両方という異なる再サンプリング技術が使用されてもよい。一実施形態では時間的周波数に従う再サンプリングが使用され、その結果、第2の複数のタイムスタンプは、連続するタイムスタンプの間の固定された持続時間によって特徴付けられる。
【0049】
一実施形態では、再サンプリングは、複数のインクポイント及び関連する複数のタイムスタンプを補間して、第2の複数のインクポイント及び関連する第2の複数のタイムスタンプを生成することを含む。
【0050】
図1に戻ると、ステップ104において、プロセス100は、複数のインクポイントを、受信したデータによって表されるストロークのそれぞれのサブストロークにそれぞれ対応する複数のセグメントにセグメント化することを含む。各サブストロークは、ストロークを表す複数のインクポイントのそれぞれのサブセットを含む。
【0051】
サブストロークのセグメント化の背後にある示唆は、ストロークの経路に従う連続的な表現を得ることである。各セグメントは、それ自体がストロークの局所的な記述に対応する。ストロークを単なるポイントのシーケンスとして表現する場合と比較して、サブストロークのセグメント化では、経路情報(すなわち、各セグメント内のポイント間の関係)を維持することができるため、計算時間が短縮される。
【0052】
実施形態によれば、異なるサブストロークセグメント化技術を使用してもよい。一実施形態では、時間情報に基づくサブストロークセグメント化が使用され、その結果、複数のセグメントが等しい持続時間を有する。一実施形態では、同じセグメント持続時間がすべてのストロークに使用される。さらに、セグメント持続時間は、デバイス独立であってもよい。
【0053】
一実施形態では、複数のインクポイントが時間的周波数に従って再サンプルされる場合、時間的情報に基づく複数のインクポイントの後続のセグメント化(すなわち、等しい持続時間のセグメントへの)は、ストロークを(同じ持続時間を有するが異なる長さを有する可能性がある)同数のインクポイントを有する複数のセグメントへスプリットするすることに対応する。
図4は、アンダーラインジェスチャーストロークに対応する例示的なストローク402を示す。ストローク402に対応するデータは、連続するタイムスタンプの間に一定の持続時間を有するインクポイント404をもたらす時間的周波数に従って再サンプリングされる。再サンプリングされたインクポイント404は、次いで、インクポイント406によって定義される、等しいセグメント持続時間のサブストロークにスプリットされる。したがって、ストローク402は、
図4に示すように、等しい数のインクポイントを有するセグメントにスプリットされる。
【0054】
図1に戻ると、ステップ106において、プロセス100は、複数のセグメントにそれぞれ基づいて複数の特徴ベクトルを生成することを含む。
【0055】
一実施形態では、ステップ106は、ストロークのそれぞれのサブストロークに対応する複数のセグメントの各セグメントに対して、それぞれのサブストロークの形状を表す幾何学的特徴を生成することと、サブストロークとサブストロークに隣接するコンテンツとの間の空間的関係を表す近隣特徴を生成することと、を含む。
【0056】
一実施形態では、サブストロークに隣接するコンテンツは、サブストロークに対して中心を持つウィンドウと交差するコンテンツである。ウィンドウサイズは、様々な方法で構成してもよい。一実施形態では、ウィンドウサイズは、電子文書内の文字及び/または記号の平均高さに比例して設定される。別の実施形態では、電子文書が文字または記号を含まない場合、ウィンドウサイズは、タッチベースのユーザインターフェースのサイズ(これは、デバイスの画面サイズに対応し得る)に比例して設定される。
【0057】
一実施形態では、セグメントまたはサブストロークに関連する幾何学的特徴を生成することは、統計的サブストローク幾何学的特徴及び/またはグローバルサブストローク幾何学的特徴を生成することを含む。
【0058】
一実施形態では、統計的サブストローク幾何学的特徴は、個々のインクポイント幾何学的特徴に対して実行される統計分析から得られる特徴である。
【0059】
一実施形態では、セグメントのインクポイントごとに計算される関心のある個々の幾何学的特徴のセットが定義される。個々の幾何学的特徴のセットは、例えば、(現在の)インクポイントとセグメント内の前のインクポイント、セグメント内の次のインクポイント、ストローク内の最初のインクポイント、及び/またはストロークの重心(ストロークのインクポイントのX及びY座標を平均することによって得られる)の間の幾何学的関係を記述してもよい。
【0060】
一実施形態では、個々の幾何学的特徴のセットは、以下を含んでもよい:セグメント内の現在のインクポイントと前のインクポイントとの間の絶対距離「ds」(
図5Aに示す)、距離「ds」(
図5Aに示す)のX軸及びY軸それぞれにおける投影「dx」及び「dy」、現在のインクポイントにおける曲率の尺度(
図5Bに示す一実施形態では、値cosθ、sinθ、及びθによって表される、ここで、θは、前のインクポイントと現在のインクポイントとを結ぶ線と、現在のインクポイントと次のインクポイントとを結ぶ線との間に形成される角度である)、現在のインクポイントとストロークにおける最初のインクポイントとの間の距離のX軸及びY軸それぞれにおける投影「dx_s」及び「dy_s」(
図5Cに示される)、及び現在のインクポイントとストロークの重心との間の距離のX軸及びY軸上のそれぞれの投影「dx_g」及び「dy_g」(
図5Dに示される)。
【0061】
一実施形態では、個々の幾何学的特徴のセットの各特徴に対して、セグメントのインクポイントのそれぞれの値を決定するために、セグメントのすべてのインクポイント(適切な場合)上で特徴が決定される。次いで、各特徴に対して、その特徴に対応する決定されたそれぞれの値に基づいて、1つ以上の統計的尺度が計算される。一実施形態では、各特徴に対して、最小値、最大値、及び中央値が、その特徴に対応する決定されたそれぞれの値に基づいて得られる。
【0062】
一実施形態では、個々の幾何学的特徴のセットのすべての特徴にわたって計算された1つ以上の統計的尺度は、サブストロークの統計的サブストローク幾何学的特徴に対応する。
【0063】
グローバルサブストローク幾何学的特徴は、サブストロークの全体的な経路(例えば、長さ、曲率など)を表す特徴である。一実施形態では、サブストロークのグローバルサブストローク幾何学的特徴を生成することは、サブストローク長、サブストローク内の特異インクポイント(変曲ポイント及び/または交差ポイント(交差ポイントは、ストロークがそれ自身に交差するポイント)など)のカウント、及びサブストローク長とその最初と最後のインクポイント間の距離との比の1つ以上を計算することを含む。
【0064】
一実施形態では、セグメントまたはサブストロークに関連付けられた幾何学的特徴は、統計的サブストローク幾何学的特徴と、サブストロークに基づいて決定されたグローバルサブストローク幾何学的特徴との両方を含む。
【0065】
上述のように、セグメントまたはサブストロークに関連付けられた近傍特徴は、サブストロークと、サブストロークに隣接するコンテンツとの間の空間的関係を表す。この情報は、異なるジェスチャーストローク間の曖昧さを排除するのに有用である。例えば、
図6に示すように、取り消し線ジェスチャーストロークとアンダーラインジェスチャーストロークは、類似の形状を有し、したがって類似の幾何学的特徴を有することがある。しかし、隣接するコンテンツに対するストロークの位置(すなわち、ストロークが文字または単語のベースラインより下にあるかどうか)を考慮すると、2つのジェスチャーストロークの区別が非常に容易になる。
【0066】
一実施形態では、近傍特徴を生成することは、以下のうちの1つ以上を生成することを含む:サブストロークと、サブストロークに隣接するテキストコンテンツとの間の空間的関係を表すテキスト近傍特徴、サブストロークと、サブストロークに隣接する数学的コンテンツとの間の空間的関係を表す数学的近傍特徴、及びサブストロークと、サブストロークに隣接する非テキストコンテンツとの間の空間的関係を表す非テキスト近傍特徴。
【0067】
上術のように、一実施形態では、サブストロークに隣接するコンテンツは、サブストロークに対して中心を持つウィンドウと交差するコンテンツである。ウィンドウサイズは、様々な方法で構成してもよい。一実施形態では、ウィンドウサイズは、電子文書内の文字及び/または記号の平均高さに比例して設定される。別の実施形態では、電子文書が文字または記号を含まない場合、ウィンドウサイズは、タッチベースのユーザインターフェースのサイズ(これは、デバイスの画面サイズに対応し得る)に比例して設定される。
【0068】
一実施形態では、3タイプの近傍特徴(テキスト、数学、及び非テキスト)は、互いに独立している。各タイプは、独自の固定数の特徴を有してもよい。
【0069】
図7は、本発明の一実施形態に係るサブストロークのテキスト近傍特徴を生成する例示的なアプローチを示す。
図7に示すように、このアプローチは、サブストロークを中心とする近傍ウィンドウを選択し、次いで近傍ウィンドウをサブストロークの中心の周りの4つの領域に分割することを含む。4つの領域は、近傍ウィンドウの交差する対角線によって決定し得る。
【0070】
次に、サブストロークの左、右、上、及び下に位置する(選択されたウィンドウ内に少なくとも部分的に含まれる)4つの最も近い文字及び/または4つの最も近い単語が識別される。例えば、US 9,875,254 B2に記載されているようなテキスト認識器を使用して、最も近い文字及び/または単語を識別し得る。
図7の実施例では、選択された近傍ウィンドウは文字のみを含み、したがって、文字のみが識別される。具体的には、左文字、上文字、及び右文字が識別される。
【0071】
次いで、識別された文字または単語ごとに、特徴群が決定される。一実施形態では、特徴群は、サブストロークの中心と識別された文字または単語の中心(識別された文字または単語の中心は、識別された文字または単語の境界ボックスの中心である)との間の距離、この距離のX軸及びY軸それぞれへの投影、サブストロークの中心と識別された文字または単語のベースラインとの距離、及びサブストロークの中心と識別された文字または単語の中間線との間の距離、を含む。ベースラインは、テキストの行の上にある仮想の線である。中間線は、すべての非昇順の文字が停止する仮想の線である。一実施形態では、ベースライン及び中間線は、テキスト認識器によって決定され、ジェスチャー認識器に提供される。
【0072】
一実施形態では、所定の領域において文字または単語が識別されない場合(例えば、
図7の実施例では、底部の文字または単語がない)、その領域に対応するテキスト近傍特徴に対してデフォルト値が使用される。
【0073】
本明細書の教示に基づいて当業者によって理解されるように、近傍ウィンドウは、
図7に示すような正方形のウィンドウに限定されず、矩形であってもよい。さらに、他の実施形態では、近傍ウィンドウは、4つを超えるまたは4つ未満の領域に分割されてもよい。したがって、4つを超えるまたは4つ未満の最も近い文字及び/または4つの最も近い単語が識別され得る。
【0074】
サブストロークの数学的近傍特徴及び非テキスト近傍特徴も、テキストコンテンツの代わりに数学的または非テキストコンテンツを識別して、上述したアプローチに従って生成されてもよい。
【0075】
一実施形態では、数学的近傍特徴に対して、サブストロークに最も近い数学記号(例えば、サブストロークの左、右、上、及び下における最も近い4つ)が識別される。例えば、WO 2017/008896 A1に記載されているような数学記号認識器を使用して、最も近い数学記号を識別し得る。識別された記号ごとに決定される特徴は、サブストロークの中心と記号の中心との距離のX軸及びY軸への投影を含んでもよい。上記と同様に、領域が数学記号を含まない場合、対応する特徴は、デフォルト値に設定される。
【0076】
一実施形態では、非テキスト近傍特徴に対して、サブストロークに最も近い形状及びプリミティブ(形状の一部)(例えば、サブストロークの左、右、上、及び下における最も近い4つ)が識別される。例えば、WO 2017/067652 A1またはWO 2017/067653 A1に記載されているような形状認識器を使用して、最も近い形状及びプリミティブを識別し得る。識別された形状またはプリミティブごとに決定される特徴は、サブストロークの中心と形状またはプリミティブの中心との間の距離を含んでもよい。上記と同様に、領域が形状またはプリミティブを含まない場合、対応する特徴は、デフォルト値に設定される。
【0077】
一実施形態では、セグメントまたはサブストロークに関連する特徴ベクトルは、上記のように、幾何学的特徴及び近傍特徴の両方を含む。したがって、特徴ベクトルは、サブストロークの形状及びサブストロークが描かれるコンテンツの両方を記述する。これら2種類の情報は相補的であり、ストロークをジェスチャーストロークまたは非ジェスチャーストロークとして高精度に認識することを可能にする。
【0078】
ステップ106の終了時に、ストローク全体は、複数の連続する特徴ベクトル(各ベクトルは、ストロークのそれぞれのサブストロークに対応する)によって表される。
【0079】
図1に戻ると、ステップ108において、プロセス100は、ストロークを表す入力シーケンスとして複数の特徴ベクトルをトレーニング済みストローク分類器に適用して、確率のベクトルを生成することを含み、この確率は、ストロークが非ジェスチャーストロークである確率と、ストロークがジェスチャーストロークのセットの所定のジェスチャーストロークである確率を含む。上述したように、ジェスチャーストロークのセットは、スクラッチアウト、取り消し線、スプリット、結合、サラウンド、及びアンダーラインなどの予め定義されたジェスチャーストロークを含む。一実施形態では、ステップ108は、ジェスチャーストロークのセットのすべてのジェスチャーストロークに対して、ストロークがジェスチャーストロークであるそれぞれの確率(例えば、ストロークがスクラッチアウトジェスチャーストロークである確率、ストロークが取り消し線ジェスチャーストロークである確率など)を決定することを含んでもよい。
【0080】
図8は、本発明の一実施形態に係る例示的ストローク分類器800を示す。上述したように、ストローク分類器は、推論に使用する前にトレーニングされる。ストローク分類器をトレーニングするために使用し得る例示的なアプローチは、以下でさらに説明される。
【0081】
図8に示すように、例示的なストローク分類器800は、リカレント双方向長短期記憶(BLSTM)ニューラルネットワーク802を含む。ニューラルネットワーク802は、後方層804及び前方層806を含む。後方層804及び前方層806に使用され得る関数の詳細な説明は、「Graves,A.&Schmidhuber,J.(2005),Framewise phoneme classification with bidirectional LSTM and other neural network architectures,Neural networks,18(5-6),602-610」;「S.Hochreiter and J.Schmidhuber,Long Short-Term Memory,NC,9(8):1735-1780,1997」 及び「F.Gers,N.Schraudolph,and J.Schmidhuber,Learning precise timing with LSTM recurrent networks,Journal of Machine Learning Research,3:115-143,2002」に見出すことができる。後方層804及び前方層806の実施態様は、当業者の技術及び知識の範囲内であり、本明細書では説明しない。
【0082】
リカレントBLSTMニューラルネットワークの使用は、ネットワークが長期的な依存関係を学習し、時間をかけて情報を記憶することを可能にするメモリブロックを含むことを意味する。ジェスチャー認識の文脈では、このネットワークは、ストローク分類器がベクトルのシーケンス(ストローク全体)を処理し、連続するサブストローク間の時間的依存性を説明すること(すなわち、ストロークの経路の詳細を記憶すること)を可能にする。
【0083】
さらに、例示的なストローク分類器800は、後方層804及び前方層806の出力に基づいて確率810-1、810-2、...、810-kのセットを生成するように構成された出力層808を含む。一実施形態では、出力層808は、Kのうちの1の分類タスクのための標準的な実施態様であるクロスエントロピーの目的関数及びソフトマックス活性化関数を使用して実装し得る。このような実施態様の詳細な説明は、例えば、C.Bishop.Neural Networks for Pattern Recognition.Oxford University Press,Inc.,1995に見出すことができる。
【0084】
動作において、ストロークを表す複数の特徴ベクトルt
0、...、t
nを含むシーケンスが、ニューラルネットワーク802への入力シーケンスとして適用される。
図8に示すように、また上述したように、各特徴ベクトルt
i(サブストロークを表す)は、幾何学的記述子(上述した幾何学的特徴に対応する)及び近傍記述子(上述したテキスト的、数学的、及び非テキスト近傍特徴を含む、近傍特徴に対応する)を含む。
【0085】
入力シーケンスは、ネットワーク802の双方向性により、前方及び後方の両方でニューラルネットワーク802に供給される。一実施形態では、入力シーケンスは、そのオリジナルの順序(すなわち、t0次いでtt次いでt2など)で前方層806に供給され、逆の順序(すなわち、tn次いでtn-1次いでtn-2など)で後方層804に供給される。これにより、ネットワーク802は、前の情報(過去のサブストロークに関連する情報)を考慮することによって、及び次の情報(次のサブストロークに関連する情報)を考慮することによっての両方で、ストロークデータを処理することができる。
【0086】
出力層808は、後方層804及び前方層806の出力を受け取り、確率のセット810-1、810-2、...、810-kを生成する。一実施形態では、出力層808は、804及び806の両方の層からの活性化レベルを合計して、出力層808のノードの活性化レベルを得る。次いで、出力層808のノードの活性化レベルは、合計が1になるように正規化される。したがって、確率のセット810-1、810-2、...、810-kを有するベクトルが提供される。一実施形態では、
図8に示すように、確率801-1は、ストロークがアドストロークまたは非ジェスチャーストロークである確率に対応する。確率810-2、...、810-kは各々、ストロークがジェスチャーストロークの集合のそれぞれのジェスチャーストロークであるそれぞれの確率に対応する。
【0087】
一実施形態では、特定のジェスチャーストロークに関連する確率が確率810-1、810-2、...、810-kのセットの中で最大確率を表す場合、ジェスチャーは特定のジェスチャーストローク(例えば、アンダーライン)であると認識される。そうでなければ、非ジェスチャーストロークに関連する確率が最大である場合、そのストロークは非ジェスチャーストロークまたはアドストロークと見なされる。
【0088】
一実施形態では、ストローク分類器は、ストローク認識タスクのために特別に調整されたトレーニングデータのセットに基づいてトレーニングされる。ストローク分類器は、ジェスチャーストロークと非ジェスチャーストロークとを区別することを目的としているので、一実施形態では、トレーニングデータは、ジェスチャーストローク(例えば、アンダーライン、取り消し線など)と非ジェスチャーストローク(例えば、テキスト、数学記号、非テキストストローク)の両方を含む。
【0089】
一実施形態では、トレーニングデータは、実際のユースケースを模倣することによって構築される。具体的には、データ収集のための専用プロトコルを用いて、ユーザにノート(オリジナルのノートは手書きでもタイプセットでもよい)をコピーして手書きの電子ノートを生成するように依頼する。ユーザが作成したオリジナルのノートとその手書き電子コピーの例を、
図9Aと
図9Bにそれぞれ示す。次いで、ユーザは、追加のストロークが適用されたオリジナルのノートの別のバージョンを示され(追加のストロークは、ノート内の異なるタイプのコンテンツに適用されてもよい)、このバージョンを再現するように求められる。例えば、
図9Cは、いくつかのコンテンツが強調された
図9Aのオリジナルノートの別のバージョンを示す。
図9Dでは、ユーザはハイライトされたコンテンツに二重アンダーラインを引くことによって、このバージョンを再現する。ユーザが修正したコンテンツを再現する際に、ストロークデータをキャプチャーし、トレーニングに使用される。
【0090】
上記のアプローチを使用して、様々なレイアウト(シンプル、マルチカラム、セパレータあり/なし、タイトルあり/なしなど)、及び様々なコンテンツタイプ(テキスト、表、図、数式、幾何学など)のノートを作成してもよい。さらに、様々な言語及びスクリプトを使用してもよい。例えば、異なる国のユーザに、母国語でノートをコピーし、これらのノートにストロークを実行するように勧めてもよい。
【0091】
さらに、異なるタッチベースのデバイス(例えば、iPad(登録商標)、Surfaceなど)を使用してノートを生成してもよい。これにより、異なるインクキャプチャー特性(例えば、異なるサンプリングレート、異なるタイムスタンプ生成方法、適用される異なる圧力レベルなど)を使用して生成されたデータで分類器をトレーニングすることができ、分類をよりデバイスに依存しないものにすることができる。
【0092】
トレーニングデータは、ストローク分類器をタイプセット文書で実行するようにトレーニングするために生成されたノートも含んでもよい。一実施形態では、これらのノートは、手書きノートの各インク要素(文字、記号、形状、またはプリミティブ)を、インク要素の経路に対応するそれぞれのモデルに置き換えることによって、生成された手書きノートをタイプセットバージョンに変換することによって生成される。一実施形態では、各インク要素に対して、その対応するタイプセットモデルは、オリジナルのインク要素の境界ボックスに適合するように再尺度化され、次いで、ベースライン及び対応するインク要素の中心に対して位置決めされる。
図10は、本発明のアプローチに従って生成された例示的な手書きノート及び対応するタイプセットバージョンを示す。
【0093】
次いで、手書きのノートに対してキャプチャーされたストロークデータは、それぞれのタイプセットバージョンに適用される。
【0094】
図11は、本発明の実施形態を実施するために使用され得るコンピュータデバイス1100を示す。
図11に示すように、コンピュータデバイス1100は、プロセッサ1102、リードオンリーメモリ(ROM)1104、ランダムアクセスメモリ(RAM)1106、不揮発性メモリ1108、及び通信手段1110を含む。コンピュータデバイス1100のROM1104は、プロセッサ1102によって実行されると、プロセッサ1102に本発明の方法を実行させる命令を含むコンピュータプログラムを記憶し得る。この方法は、
図1で上述したステップのうちの1つ以上を含んでもよい。
【0095】
追加の変形例
本発明は、特定の具体的な実施形態を参照して上述したが、本発明は、特定の実施形態の特殊性によって制限されないことが理解されよう。添付の特許請求の範囲の範囲内で、上述した実施形態に数多くの変形、修正及び開発を行ってもよい。