JP4820382B2 - ノードリンクダイアグラムに構造認識を提供する方法 - Google Patents

ノードリンクダイアグラムに構造認識を提供する方法 Download PDF

Info

Publication number
JP4820382B2
JP4820382B2 JP2008071456A JP2008071456A JP4820382B2 JP 4820382 B2 JP4820382 B2 JP 4820382B2 JP 2008071456 A JP2008071456 A JP 2008071456A JP 2008071456 A JP2008071456 A JP 2008071456A JP 4820382 B2 JP4820382 B2 JP 4820382B2
Authority
JP
Japan
Prior art keywords
node
stroke
hypothesis
hypotheses
strokes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008071456A
Other languages
English (en)
Other versions
JP2008243204A5 (ja
JP2008243204A (ja
Inventor
サウンド エリック
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Palo Alto Research Center Inc
Original Assignee
Palo Alto Research Center Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Palo Alto Research Center Inc filed Critical Palo Alto Research Center Inc
Publication of JP2008243204A publication Critical patent/JP2008243204A/ja
Publication of JP2008243204A5 publication Critical patent/JP2008243204A5/ja
Application granted granted Critical
Publication of JP4820382B2 publication Critical patent/JP4820382B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/32Digital ink
    • G06V30/333Preprocessing; Feature extraction
    • G06V30/347Sampling; Contour coding; Stroke extraction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/10Character recognition
    • G06V30/14Image acquisition
    • G06V30/142Image acquisition using hand-held instruments; Constructional details of the instruments
    • G06V30/1423Image acquisition using hand-held instruments; Constructional details of the instruments the instrument generating sequences of position coordinates corresponding to handwriting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Artificial Intelligence (AREA)
  • Character Discrimination (AREA)
  • User Interface Of Digital Computer (AREA)
  • Position Input By Displaying (AREA)

Description

本出願は、電子的に形成された画像の生成に関し、具体的にはノードリンク型ダイアグラム、より具体的には非電子的ホワイトボードすなわちペンと紙を用いるのと同様の仕方で形成でき、しかも電子的な編集機能を更に含んでいる概念マップに関する。
コンピュータへのペン/スタイラスインターフェースは、紙またはホワイトボードと同程度に直観的でありながら、コンピュータアプリケーションが提供する編集、探索その他の処理能力および機能を有するアプリケーションの可能性も有している。
関連する技術についての文献として、例えば以下の特許文献がある。
米国特許第7036077号明細書 米国特許第7139004号明細書 米国特許第7136082号明細書 米国特許第6903751号明細書 米国特許第5553224号明細書
概念マッピングや思考マッピング等のノードリンクダイアグラム用の現行UI設計は、メニューから選択により図形が入力され、キーボードにより文字が入力されるキーボード/マウスソフトウェアを応用したものである。この方式をペン/スタイラスコンピュータに採用すべく、ペンは主としてポインティングデバイスとして扱われるが、限られた単一ストロークの形状認識を用いてノードオブジェクトの入力またはリンクの表示を行なったり、マイクロソフトその他のソフトウェア会社から提供される手書き文字認識機能を導入してペン入力や文字編集に利用したりすることができる。この方式は、ユーザーが描画や筆記を行なう際に外部ユーザーインターフェースコマンドを用いる必要なしにユーザーが描画および筆記した内容を認識して受容する知的アプリケーションに期待されるものからは懸け離れている。本出願は、既存のペン方式のシステムおよび方法の上記および他の短所を解決するシステムおよび方法を提示するものである。
本発明の一態様の方法は、入力装置により電子装置のキャンバスに描画された複数のデジタルインクストロークにより形成されたノードリンクダイアグラムに構造認識を提供する方法であって、関係するデジタルインクストロークを、グループ内のデジタルインクストロークの構造化された解釈を反映する複数の仮説にグループ分けするステップと、前記複数の仮説の信頼度スコアを計算するステップと、前記仮説間に制約を適用するステップと、前記適用された制約下で、集合的に高いスコアを割り当てられた仮説を探索するステップと、前記ノードリンクダイアグラムの表現として前記集合的に高いスコア割り当てを有する仮説を受理するステップであって、構造情報が前記ノードリンクダイアグラムのデジタルインクストロークに提供され、前記ノードリンクダイアグラムを電子的に編集可能にするステップと、を含み、前記グループ分けするステップにおけるインクストロークの構造化された解釈は、当該インクストロークの特徴の類似度に基づいて、関係したインクストロークを決定することを含み、前記複数の仮説のそれぞれは、予め定義された複数のオブジェクトタイプのうちの1つを表し、各仮説が表すオブジェクトタイプは、当該仮説に係るデジタルインクストロークグループが表し得ると解釈されるオブジェクトの種類であり前記複数の仮説の信頼度スコアを計算するステップにおいて、各仮説が固有のスコアと支持コンテキストスコアとを有、前記固有のスコアは、デジタルインクストロークグループのデジタルインクストロークどうしの類似度と、前記仮説によって表されるオブジェクトタイプに対する、定められた基準とに基づき、前記支持コンテキストスコアは、囲みデジタルインクストロークの信頼度スコアに基づく、方法である。
本発明の一態様の方法において、(i)前記ノードリンクダイアグラムにデジタルインクストロークを追加するステップと、(ii)前記ノードリンクダイアグラムからデジタルインクストロークを削除するステップと、(iii)前記ノードリンクダイアグラムから文字項目のオブジェクト表現を削除するステップと、(iv)前記ノードリンクダイアグラムから図形項目のオブジェクト表現を削除するステップと、(v)前記ノードリンクダイアグラムのデジタルインクストロークを選択するユーザの入力を受け付けるステップと、(vi)前記ノードリンクダイアグラムの文字項目のオブジェクト表現を選択するユーザの入力を受け付けるステップと、(vii)前記ノードリンクダイアグラムの図形項目のオブジェクト表現を選択するユーザの入力を受け付けるステップと、のうち少なくとも1つのステップと、前記ノードリンクダイアグラムの漸増的構造認識を実行するステップと、を更に含んでいてよい。
また、本発明の一態様の方法において、前記漸増的構造認識が、追加、削除、およびユーザの入力の受付のうち少なくとも一つに起因して新たな構造仮説を生成するステップと、(i)前記新たな構造仮説を既存の構造仮説グループとグループ化するステップ、及び、(ii)新たな構造仮説グループを形成するステップ、のうちの1つのステップと、影響を受けたグループを認識するステップと、前記受理された仮説から形成された階層束を更新するステップと、を含んでいてよい。
また、本発明の一態様の方法において、前記適用された制約下で、集合的に高いスコアを割り当てられた仮説を探索するステップが、探索アルゴリズムを使用して前記仮説の仮説束を探索するステップを更に含み、前記探索アルゴリズムは、前記複数の仮説の部分集合であって当該部分集合に含まれる仮説の前記信頼度スコアの合計が最大である部分集合を最適な仮説束として、最適な、ほぼ最適な、あるいは最良に達成可能な、仮説束を探索するアルゴリズムであってよい。
なお、本段落の次の文から段落[0011]までの記載は、本願の出願当初の[特許請求の範囲]に記載の請求項1〜6の記載に対応する。
本発明の1つの態様の方法は、入力装置により電子装置のキャンバスに描画された複数のデジタルインクストロークにより形成されたノードリンクダイアグラムに構造認識を提供する方法であって、関係するストロークを、グループ内のストロークの構造化された解釈を反映する複数の仮説にグループ分けするステップと、前記ストロークグループのストロークおよび囲みストロークに関する局所的証拠に基づいて複数の仮説の信頼度スコアを計算するステップと、前記仮説間に制約を適用するステップと、前記適用された制約下で仮説への受理/棄却値の集合的に高いスコア割り当てを探索するステップと、前記ノードリンクダイアグラムのストロークに構造情報を提供して前記ノードリンクダイアグラムを電子的に編集可能にすべく、前記ノードリンクダイアグラムの表現として前記集合的に高いスコア割り当てを有する仮説を受理するステップと、を含む。

本発明の1つの態様の方法において、(i)前記ノードリンクダイアグラムにデジタルインクストロークを追加するステップと、(ii)前記ノードリンクダイアグラムからデジタルインクストロークを削除するステップと、(iii)前記ノードリンクダイアグラムから文字項目の正式なオブジェクト表現を削除するステップと、(iv)前記ノードリンクダイアグラムから図形項目の正式なオブジェクト表現を削除するステップと、(v)前記ノードリンクダイアグラムのデジタルインクストロークを空間的に変換するステップと、(vi)前記ノードリンクダイアグラムの文字項目の正式なオブジェクト表現を空間的に変換するステップと、(vii)前記ノードリンクダイアグラムの図形項目の正式なオブジェクト表現を空間的に変換するステップと、のうち少なくとも1つのステップと、前記ノードリンクダイアグラムの漸増的構造認識を実行するステップと、を更に含んでいてよい。
本発明の1つの態様の方法において、前記漸増的構造認識が、追加、削除、空間的変換のうち少なくとも一つに起因して新たな構造仮説を生成するステップと、(i)前記新たな構造仮説を既存の構造仮説グループとグループ化するステップ、及び、(ii)新たな構造仮説グループを形成するステップ、のうちの1つのステップと、影響を受けたグループを認識するステップと、前記受理された仮説から形成された階層束を更新するステップと、を含んでいてよい。
本発明の1つの態様のプログラムは、関係するストロークを、グループ内のストロークの構造化された解釈を反映する複数の仮説にグループ分けするステップと、前記ストロークグループのストロークおよび囲みストロークに関する局所的証拠に基づいて複数の仮説の信頼度スコアを計算するステップと、前記仮説間に制約を適用するステップと、前記適用された制約下で仮説への受理/棄却値の集合的に高いスコア割り当てを探索するステップと、前記ノードリンクダイアグラムのストロークに構造情報を提供して前記ノードリンクダイアグラムを電子的に編集可能にすべく、前記ノードリンクダイアグラムの表現として前記集合的に高いスコア割り当てを有する仮説を受理するステップと、をコンピュータに実行させる。
本発明の1つの態様のプログラムにおいて、(i)前記ノードリンクダイアグラムにデジタルインクストロークを追加するステップと、(ii)前記ノードリンクダイアグラムからデジタルインクストロークを削除するステップと、(iii)前記ノードリンクダイアグラムから文字項目の正式なオブジェクト表現を削除するステップと、(iv)前記ノードリンクダイアグラムから図形項目の正式なオブジェクト表現を削除するステップと、(v)前記ノードリンクダイアグラムのデジタルインクストロークを空間的に変換するステップと、(vi)前記ノードリンクダイアグラムの文字項目の正式なオブジェクト表現を空間的に変換するステップと、(vii)前記ノードリンクダイアグラムの図形項目の正式なオブジェクト表現を空間的に変換するステップと、のうち少なくとも1つのステップと、前記ノードリンクダイアグラムの漸増的構造認識を実行するステップと、を更にコンピュータに実行させてよい。
本発明の1つの態様のプログラムにおいて、前記漸増的構造認識が、追加、削除、空間的変換のうち少なくとも一つに起因して新たな構造仮説を生成するステップと、(i)前記新たな構造仮説を既存の構造仮説グループとグループ化するステップ、及び、(ii)新たな構造仮説グループを形成するステップ、のうちの1つのステップと、影響を受けたグループを認識するステップと、前記受理された仮説から形成された階層束を更新するステップと、を含んでいてよい。
本明細書においてユーザーインターフェース(UI)を用いるコンセプトスケッチプログラムまたはプロセスとも呼ぶ、スタイラス/ペンコンピュータシステムによりノードリンクダイアグラムを対話的に作成および編集する方法および装置について記述する。UIは、電子ホワイトボード、グラフィックタブレット、デジタル用紙その他の平坦な表面または電子キャンバス上への手書き動作の拡張として動作する。ユーザーが文字や図形を描画するのに従い、マーキングがノード、リンク、および概念マップ等のノードリンクダイアグラムの文字ラベルとして密かに解釈される。認識された構造は続いて、有意味なオブジェクトを単にタップするだけで選択したり、ユーザー指示による漸増的且つ可逆的な整形/正式化動作を可能にする。
本UI設計は、UIの複雑な水面下の働きをグラフィカルユーザーインターフェース(GUI)および認識モジュール(層またはプロセスとも呼ばれる)に分割する新たなアーキテクチャを用いる。GUIと認識モジュールの間でデジタルインクストロークが並列に維持され、モジュール間の通信は主にストロークIDおよびXML文字列により行なわれる。
UI設計の実装は、手書きの文字や図形を解釈する認識モジュールの能力に依存するが、これは人工知能およびコンピュータビジョン分野の極めて困難な問題である。本出願はまた、オブジェクトのオントロジー、仮説の束を構築するアルゴリズム、および最適、ほぼ最適、あるいは所望の達成可能な大域的解釈を求めて仮説空間を探索する制約付き探索プロセスについて記述する。
本概念は、知的ノードリンクダイアグラムを作成および編集する方法およびシステムを指向しており、本システムの知的な部分が、ダイアグラムの構造の認識により得られた追加的機能を、独立に、または一体的に包含している。以下では一般にノードリンクダイアグラムについて議論するが、本概念から概念マップの作成および編集に特定の利点が得られる。
概念マップとは、情報を視覚的に表わすために用いるノードおよびリンクからなるノードリンクダイアグラムの特別な形式である。概念マッピングにおいて、ノードは概念、項目、または質問を表わすデータの表現として定義される。ノードは、ラベル、色、または形状等、データを表わすために多くの排他的でない属性を有することができる。リンクもまた、概念ノード同士の関係を示すことによりデータを表わすために用いられる。これらは往々にして、例えば矢印等の終端記号により方向を識別することによりデータ表現に関係する点で追加的な特徴を有する。このように、ラベル付けされたリンクはノード間の関係を説明し、矢印その他の終端子により関係の向きを表わすことができるため、ユーザーは概念マップを理解することができる。しかし、有向リンクを概念マップその他のノードリンクダイアグラムで用いるか否かは任意である。リンクは、いずれかの終端に終端記号があっても、あるいは一切終端記号がなくてもよい。また、リンクおよびノードは、ラベル付きでも、あるいはラベル無しでもよい。関係を表わすために単に有向または無向リンクが存在するだけで十分な場合もある一方、他の状況ではラベルが関係についてより多くの詳細事項を提供する。
図1に、電子スタイラスまたはペン16、あるいは追加的/代替的にキーボード18またはマウス20を用いて操作すべく構成されたコンピュータ14と通信状態にある電子ディスプレイ12を含む環境またはシステム10を示す。コンピュータ14は、適切な入力がコンピュータ14により受理された場合にコンセプトスケッチプログラムを格納して動作させるのに十分なメモリおよび処理能力を含んでいる。システムは、有線または無線環境において動作可能である。上述の構成要素の各種のものは、別々であっても、あるいはタブレットコンピュータ、携帯情報端末、携帯電話その他の計算能力を有する電子装置等の単一装置に一体化されていてもよい。電子ディスプレイ12は、電子ホワイトボードシステムと同様に、これらの装置のいずれにも取り付け、または組み込むことができる。
電子ディスプレイ12およびコンピュータ14は、ユーザーがスタイラスまたはペン16を操作してその上にノードリンクダイアグラム24を作成するキャンバス22等の書込領域を形成すべく構成されている。キャンバスは、電子ディスプレイのある領域を表わすことを意図しているため、スタイラスまたはペン16による電子インクの生成により、ディスプレイ面上への直接的な描画や筆記が可能になる。
あるいは、装置(例:グラフィックタブレット)は別個であって、ユーザーその他がダイアグラムを見るディスプレイとは分かれていてよい。
手書きノードリンクダイアグラム24は、4個のノード26a〜26dおよび5個のリンク28a〜28eを含んでおり、閉じたグラフィック形状(例:26a、26c)がノードを表わし、湾曲した弧(例:28a〜28e)が2個のノードを関係付けるリンクを表わし、文字単独(例:26d)を用いてノードを表わすこともでき、文字はノード内に含まれていてよい(例:30a)。文字(30b〜30c)はリンクのラベルであってよく、矢印その他の形状32aを用いて以下に詳述するノードリンクダイアグラムにおけるリンクの終端を識別する。キャンバスへの全てのストロークが必ずしもノードリンクダイアグラムの一部でという訳ではない。例えば、インクストローク34を解釈することができる。
図2に、キャンバス作成初期化プロセス42、グラフィカルユーザーインターフェース(GUI)初期化プロセス44、未処理ストローク列初期化プロセス46、処理済(または解釈済)ストローク列初期化プロセス48、および認識初期化プロセス50を含む動作の環境10を整えるために用いる初期化動作40を記述する高水準のダイアグラム38を示す。上述の初期化が完了したならば、ユーザー入力の待ち状態が入力される(52)。本システムは、入力が提供され都度リアルタイムに動作することができる。あるいは、本システムは、格納されたインクストロークのファイルからインクストロークを読み込むべく設計することができる。
各種の初期化プロセス42〜50は互いに非同期化されており、別々の非同期スレッドとして実行される。非同期化は、コンセプトスケッチプログラムに柔軟性と共に、認識プロセスをバックグラウンドジョブとして実行しながら、筆記に対するリアルタイムに応答する能力を提供する。
図3に、GUIモジュール62と認識モジュール64との関係を示しながら、ユーザーインターフェース(UI)60の全体的なシステムアーキテクチャを示す。GUIモジュール62は、キャンバスへのデジタルインクストロークの入力と表示、および大多数のコマンド対話ロジック、例えば囲みストロークの検出およびポップアップボタンの表示やプロセスを扱うべく設計されている。GUIモジュール62は、各種のプログラミング言語およびランタイム環境で実装されていてよく、コンセプトスケッチ認識モジュール(例:JVM−Java Virtual Machine)64a、未処理ストローク列64b、処理(解釈)済みストローク列64c、正式インターフェース64d、および手書き認識モジュール64eへのアクセスを含む認識モジュール64の環境とは異なっていてよい。
認識モジュール64は、ユーザーが入力したマーキングを単語、ライン、文字カラム、図形オブジェクト、およびノードリンクダイアグラムのモデルとして解釈すべく設計されている。未処理ストローク列64bはGUIモジュール62から電子インクストローク情報を受信すべく設計されている、処理済みストローク列64cは認識モジュール64からの処理済みストローク情報をGUIモジュール62に提供する。正式インターフェース64dは、2個のモジュール間に対話の経路を提供する。一実施形態において、手書き文字認識モジュールはマイクロソフトから同社のタブレットPCオペレーティングシステムで使用すべく提供される手書き文字ソフトウェアであってよい。
図4に、フロー図70を示す。ステップ72において、GUIモジュールは、スタイラスまたはペンからの入力(例:ストローク))等のイベントを待機している。ユーザーがペンをキャンバス面上に置いたならば、GUIモジュールがインクストロークを受信する(74)。インクストロークを受信したならば、GUIモジュールは、インクストロークが(i)インキング動作、(ii)タップ動作、(iii)囲み動作、または(iv)取消し動作の状態にあるか否かを判定する(76)。インキング動作は、キャンバス上への筆記または描画と解釈する。タップ動作は、タップされた項目を選択するかまたは除外すべくキャンバス上のある点へのスタイラスまたはペンの移動である。あるいは、ある項目が選択された場合、キャンバスの背景へのタップにより当該項目を除外する機能を果たす。囲み動作は、他の既存のインクストロークまたは他の項目を囲むインクストロークであって、インキング動作または選択ジェスチャであってよい。削除動作は、既存のインクストロークその他の項目に対するジグザグの筆記または描画、往復の筆記または描画、×印による取消し、または他の「削除」的動作である。プロセスの一部として、囲み動作および取消し動作は、インキング動作または選択ジェスチャのいずれかであると判定される。
ステップ78において、以下のうち一つが真の場合、ストロークが明確にインキング動作(すなわち、筆記または描画を意図している)であるか否かが最初に判定される。(i)ストロークの長さが所定の長さより短く、キャンバス上のどのオブジェクトも当該ストロークまで所定の距離より近くには無く、当該ストロークが前のストロークの終了(ペン持ち上げ)後、所定時間内で始まる、(ii)ストロークが閉経路の形状をなしておらず、且つジグザク(取消し)形状もなしていない、(iii)ストロークが、キャンバス上の他のどの対象も囲んでいない閉経路の形状をなす、または(iv)ストロークがジグザク(取消し)の形状をなしているが、キャンバス上のどのオブジェクトも当該ストロークの所定の近傍内に存在しない。
ストロークが明確にインキング動作である場合、プロセスはステップ80へ進み、ストロークを未処理ストローク列(例:図3の64b)に入れる。ストロークがインキング動作またはタップ選択、囲み選択、あるいは取消しコマンドジェスチャのいずれであるかが曖昧な場合、プロセスはステップ82へ進んでストロークがタップ動作であるか、あるいは囲み動作、取消し動作またはインキング動作のいずれであるかを判定する。ステップ82において、ストロークの長さが所定の閾値より短いか、ストロークが前のストロークの終了(ペン持ち上げ)の後で所定時間以後に始まるか、且つキャンバス上の少なくとも1個のオブジェクトが当該ストロークの位置から所定距離内にある場合、当該ストロークがタップ動作であると判定する。ステップ82において、当該動作がタップ動作であると判定されたならば、プロセスはステップ84へ進み、対応するタップ選択コマンドに関連付けられた動作を実行するよう認識モジュールへコマンドまたは信号を送る。ステップ82において、当該動作がタップ動作ではないと判定されたならば、プロセスはステップ86へ進む。ステップ86において、ストロークの形状に基づいて、当該ストロークが囲み選択ジェスチャまたは取消し削除ジェスチャであるか否かを判定する。
ストロークが囲み選択ジェスチャである場合、「選択?」ボタンがユーザー88に提示される。この「選択?」ボタンは、当該囲み動作がインキング動作かまたは選択ジェスチャであるかをシステムが判定できないため、囲み動作が曖昧であることを示す。ステップ90において、システムはユーザー動作を総合して状況を明確にすべく設定されている。ステップ92において、囲まれた情報に関連付けられた「選択?」にユーザーがスタイラスまたはペンを置いたならば、システムはステップ94へ進み、囲み選択コマンドを認識モジュールへ送る。このことは、囲み動作が選択ジェスチャであることを示す。認識モジュールは次いで、何が選択されたかを判定する。認識モジュールは、例えば、囲まれたか取消し線で覆われたものを選択することも、あるいはジェスチャの意図を、文字通り覆われている/いないに拘わらず認識されたストローク(または他の項目)として解釈することもできる。しかし、ステップ94でユーザーがタップ選択動作を行なわず、キャンバスの背景にペンを下ろした場合、システムはこれを単語または描画を意図した囲み情報として解釈し、ステップ80で当該ストロークがデジタルインクとしてキャンバスに追加される。
ストロークが削除ジェスチャ86と思われる場合、「削除?」ボタンがユーザー96に提示される。この「削除?」ボタンは、当該ストローク動作がインキング動作かまたは取消しジェスチャであるかをシステムが判定できないため、ストローク動作が曖昧であることを示す。ステップ98において、システムはユーザー動作を総合して状況を明確にすべく設定されている。ステップ100において、当該ストロークに近接するオブジェクトに関連付けられた「削除?」にユーザーがスタイラスまたはペンを置いたならば、システムはステップ102へ進み、インキング動作が削除ジェスチャであることを示す取消し選択コマンドが認識モジュールへ与えられ、ジェスチャにより覆われた項目が認識モジュールおよびUIキャンバスから削除される。ステップ100でユーザーが「削除?」に対してタップ選択動作を行なわず、キャンバスの背景にペンを下ろした場合、システムはこれを、単語または描画に対して取消しストロークを意図していると解釈し、ステップ80において当該ストロークがデジタルインクとしてキャンバスに追加される。
ステップ80で動作がインクストロークであると判定された場合、プロセスは、ストロークを未処理ストローク列に入れる。ステップ104において、事前解釈またはプロセスコマンドが認識モジュールへ送られて未処理ストローク例のストロークに対して「事前解釈」および/または「処理」動作を実行する。ステップ72〜104で実行される動作は、GUIモジュール(例:図3の62)で生起するものと見なすことができる。認識モジュールは、事前解釈および/またはプロセスコマンドを担う。GUIモジュールおよび認識モジュールの動作が一時的に非同期化され、更なるストロークがキャンバスに置かれて、GUIモジュールは独立に動作し続ける。
ステップ106において、認識モジュールは、GUIモジュールが「事前解釈」または「処理」コマンドを発行するのを待機している。受信したならば、認識モジュールの動作は判定ブロック108へ進み、当該コマンドが事前解釈コマンドであると判定される場合、プロセスはステップ110へ進む。次いで、複雑なストロークの場合、未処理ストローク列からの未加工ストロークを角でフラグメントに分解する。角の無い単純なストロークの場合、この動作は不要である。
その後、ストロークフラグメントおよび/または単純なストロークには、識別情報(ID)が付与されて処理済みストローク列に入れられる(112)。GUI層62はステップ116へ進み、未処理ストロークを処理済みストローク列からのストロークフラグメントで置換する。ステップ118において、GUIは全てのストロークフラグメントをストロークIDと共に表その他のメモリ装置に追加し、次いでストロークフラグメントは、置換したことがユーザーに感知されないように、キャンバス上の未処理ストロークを置換する。
GUIモジュール62と認識モジュール64の間で最初にストローク情報を受け渡す際に、ストロークフラグメントを構成する点の両方の情報(すなわちx−y位置および時間)がIDと共にGUIモジュールへ渡されるため、認識モジュールおよびGUIモジュールがストロークに関して同じ格納情報を有している。
GUIモジュールから送られたコマンドが「事前解釈」ではなく、「処理」コマンドであった場合、ステップ106で、プロセスはステップ114へ進んで処理済みの分解されたストロークに対して構造化認識動作を実行する。これらの構造処理済フラグメントは、ストローク(例:オブジェクト形式の)がコマンド動作(例:正式化、移動等)用に選択されるまで認識モジュール内で維持されていてよい。
フロー図70に、ストロークがインキング動作、タップ動作、囲み動作または取消し動作であるか否かを判定するプロセス、および当該判定に続く動作の概要を示す。上述のプロセスを採用することにより、ユーザーは、紙やホワイトボードを用いるのと同様に直観的に、しかもコンピュータアプリケーションの能力および機能を以って、ノードリンクダイアグラムを作成することができる。
図5に、ノードリンクダイアグラム120のスクリーンショットを示す。ここで、ユーザーが特定の部品、すなわち楕円122内の「taste(味覚)」および手書きの概念マップ(すなわちノードリンクダイアグラム)の単語「texture(テクスチャ)」124を選択して正式化している。ノードリンクダイアグラムは、システムにより4個のグラフノードおよび3個のグラフリンクを有することが自動的に認識されている。
事前解釈および/またはプロセス動作はまた、認識モジュールに、未処理および処理済列を調べて、上述の動作を実行すべきストロークが列に存在するか否かを判定することができる。本システムはまた、複数の事前解釈動作を実行して、これらの事前解釈ストロークをグループとして処理するように設計されていても、あるいは、本システムは事前解釈動作のすぐ後に同一ストロークのプロセス動作が続くように構成されていてもよい。
図6に、UIを操作するためにユーザーが知る必要がある少数の命令群130a〜130fを示す例証的な命令シート130を示す。
ペンコンピュータ用のユーザーインターフェース設における一つの問題として、モードの問題がある。これは、多数の機能、すなわち、マーキングの入力、マーキングの選択、および選択されたマーキングに対して実行されるコマンドの特定のために単一の実装を用いねばならないという課題がある。
ここに提示するモード問題に対する一つの解決策として、ペン/スタイラスシステムにおける混合デジタルインク入力および選択のための推論モードプロトコルおよびタップサイクル選択技術を用いる。推論モードプロトコルの下で、ユーザーは先にモードを指定しなくても、自由にモードのマーキングまたは選択ジェスチャを実行することができる。システムは、前後関係からユーザーの意図を推論しようと試みて、曖昧ならば仲介ボタンが現れる。
推論モードプロトコルの下で、ペン入力はキャンバス上に描画されたデジタルインクとして登録される。しかし、特定のペン入力は、デジタルインクマーキングの何らかの部分集合の選択を意図しているとも解釈できる。例えば、オブジェクトのタッピング、囲み、または取消しは全て、選択および削除動作を始めるのに際して自然な入力形式である。意図が曖昧な場合、ポップアップボタンまたはアイコンの形式で選択肢が提供される。
閉じた空の円を描くことは、明らかに描画動作であるが、既存のデジタルインクの周囲を円で囲むのは曖昧である。ユーザーは、囲まれた項目を選択しようとしているか、または単にその周囲に円を描いているだけかもしれない。この場合、「選択?」と尋ねるポップアップボタンが表示される。ユーザーがポップアップボタンをタップすると、当該項目が強調表示されて選択されたことを示すと共に、サイズ変更その他の動作を実行するためのアイコンが局所的にキャンバス上に重ねられる。ユーザーは自由に、ポップアップボタンを無視して描画を続けることができ、その場合、囲みはデジタルインクとして登録される。
ユーザーが既存のマーキングの上に取消し線を描いた場合、下側のマーキングを削除したいのか、×印を表わすデジタルインクを入力したいのかが曖昧なため、システムは、ユーザーが下側のどのインクを削除したいのかを推論し、これを強調表示して「削除?」と尋ねるポップアップボタンを表示する。ユーザーがポップアップボタンをタップした場合、当該項目が削除される。背景をタップするか描画を続けた場合、取消しマーキングはデジタルインクとして登録される。最後に、画像オブジェクトの選択に広く用いられる方法は、それらをタップすることである。
UIとのユーザー対話の例を、図7の対話フロー図140に示す。(このバージョンでは、説明をわかりやすくするために取消し削除ジェスチャを省略している。)、四角形の枠は、ユーザーに対する情報のコンピュータ表示を表す(すなわち、四角形の枠は、ユーザーに提示される情報142a〜142dに付随するコンピュータ動作である)。表示の見せ方として4通りの主な方法がある。すなわち、(手書きストロークおよび正式な図形オブジェクトを含む)キャンバスの内容のみを表示(142a)し、キャンバスの内容と「選択?」ボタンを表示(142b)し、複数の項目が選択済みとして強調表示された状態でキャンバスの内容をコマンドアイコンと共に表示(142c)して、複数の項目が選択された状態でキャンバスの内容をポップアップコマンドメニューと共に表示(142d)する。角が丸い枠は、ストロークの描画、囲みジェスチャの描画、ストロークまたは正式な図形オブジェクトへのタッピングによるオブジェクトの選択または選択内容の巡回、背景へのタッピングによる選択解除、ポップアップ「選択?」へのタッピング、ポップアップコマンドアイコンへのタッピング、ポップアップコマンドメニュー144a〜144h内の項目選択等を含むユーザー動作を表わす。判定ブロック146は、曖昧な囲み動作が前後関係に基づいて明確にできるか否かに関する当該プロセスの判定を表わす。丸印148a〜148dはユーザーの選択肢を表わす。
本出願のシステムは、束階層構造を用いる代替的な構造選択プロトコル(例:タップサイクル選択技術)を利用する。第1のタップにより、タップされているデジタルインクオブジェクトが支持する、最も選択される可能性が高いオブジェクトが選択される。可能な選択肢の中で、どの選択肢の可能性を最も高いとみなして最初に表示するかは、システム側で調整可能な設計パラメータである。概念マップの場合、ノードとリンクが最も顕著なオブジェクトと考えられる。ほぼ同じ場所にある反復タップが他の選択肢を巡回する。いずれかの項目が選択されたならば、他のマーキングをタップすることでその各々の構造オブジェクトが強調表示された選択に追加される。
上の議論から分かるように、所与のデジタルインクのどの部分も、ノードリンクダイアグラム(例:概念マップ)の領域における多構造オブジェクトの一部であり得る。例えば、図8の画像150の場合、ストローク152へのペンタップにより文字「T」154、単語「Today」156、あるいは単語「Today」からなる概念マップ内のノードおよびそれを囲む長方形158を表わすことができる。ユーザーは、反復タッピングにより所望の選択を得ることができる。(タップサイクル選択技術を用いて、意図したストロークを選択する)
画像項目(例:インクストローク)が選択された場合、小さい局所的ボタンまたはアイコンが近くに置かれる。このボタンまたはアイコンをタップすることにより、実行可能な動作のポップアップメニューが現われる。実行可能なコマンドには、正式化/非正式化(すなわち、デジタルインクと正式な図形および文字との間の変換)、切り取り、削除、色変更が含まれる。選択された項目の回転および拡大縮小用にドラッグハンドルが提供されており、項目が選択された状態で、ペンを任意の強調表示されたオブジェクトの上に置いてドラッグすることにより随時移動させることができる。
誤った手書き文字認識の訂正は、不正確な文字、単語、または文字ブロックを取消すか別途選択することにより開始される。これらは削除され、削除された文字が置かれていた場所に次の文字入力がマッッピングされる。ある場合には、ユーザーに選択させるため以前の代替的な手書き文字認識結果がメニューに表示される。
当該設計の下で、ユーザーは、ノード、リンク、ノードラベル、リンクラベル、注釈文字、周辺の落書きや図形を入力しているか否か等をシステムに意図的に指示する必要なしに、随時、任意の順序で図形または手書きの文字を直接描画することができる。単一のストロークで描画される形状、または複数のストロークを特定の順序で描画する等の要件は存在しない。本インターフェースの中核動作にはツールバーも大域的メニューも一切関与しない。全てのメニューは、局所的且つ文脈依存である。ノードリンク構造および手書き文字の正しい認識により、選択タップ入力を、一般に閉じた形状、直線または曲線、矢印、および文字ラベルの組合せを含んでいて有意味なノードおよびリンクオブジェクトからなるインクストロークの集合であると解釈するシステムの能力を介して生産性が向上する。認識が失敗しても、意図するインクストロークをより慎重に囲んでおよび正確にタップ選択することにより、ユーザーが操作したい項目を選択することを妨げない。本UI設計は、ユーザーを制御しながら、認識モジュールの能力に関して弾力的である。
本出願のシステムアーキテクチャを三つの観点から記述する。すなわち(i)システムモジュールの機能的編成、(ii)各モジュールにより実行される機能の仕様、および(iii)モジュール間の通信を統制するインターフェースである。
GUIモジュール62は、キャンバス上へのデジタルインクストロークの入力と表示、および囲みストロークの検出等のシステムのコマンド対話ロジックの大部分、並びにポップアップボタン(図7に示す)の表示とプロセスを扱う。GUIモジュール62は、通信が可能な限り、認識モジュール64とは異なるプログラミング言語およびランタイム環境において実装されていてよい。
認識モジュール64は、単語、線および文字、図形オブジェクトおよびノードリンクダイアグラムの文書モデルの列に関して、ユーザーによる入力マーキングの解釈を扱う。認識モジュールの特定の目的は、(i)タッピング、囲み、および取消し動作を介した知的な選択の提供、(ii)項目の正式化、(iii)リンクが自身の指示するノードに追随するようにオブジェクトを移動、および(iv)ノードリンク(例:概念マップ)構造の出力を可能にすることによりシステム機能を提供することである。
2個の層はオペレーティングシステム内で異なるスレッドとして、従って非同期的に実行させることができる。GUIモジュール62は高速且つユーザー入力に対して応答し、ペン、スタイラスまたはマウスからイベントが受信されたならば即時にデジタルインクを表示すべく設計されている。別個のスレッドにおいて、認識モジュール64は、完了までに相当な時間(数秒)を要する計算負荷の重い動作を実行することができる。
2層間の通信は、少なくとも二通りの方式で行なわれる。第1の方式では、デジタルインクストロークの記述はバッファまたはストローク列を介して受け渡される。第2の方式では、選択およびコマンド動作は、所定のインターフェースを介して伝達される。選択およびコマンド動作は動作期間中、デジタルインクにストロークの受け渡しを行なわない。その代わり、GUIおよび認識モジュールは、共通の識別子またはIDにより名付けられた、既存のストロークの表現を相互に同期的に維持する。ストロークが参照されたならば、各ストロークに属する点全体のリストを渡す必要はなく、IDだけを渡せばよい。
図9のプロセスフロー図180は、図3のモジュール間におけるストロークデータの受け渡しの詳細を示す。認識グループ分けプロセスが効果的に動作して、ユーザーがダイアグラムに対してきめ細かい制御を行なえるようにすべく、元の入力ストロークをより小さいフラグメントに分解する必要がある。これはユーザーが筆記している際にリアルタイムで行なうことはできず、若干の遅延が生じる場合がある。ストローク列を用いて未処理且つ分解されたストロークを、各々の受け入れプロセスがそれらを受理する用意ができるまで保持する。
フロー図180において、(UI層)が未処理ストローク列に未処理ストローク182を入れる。これらのストロークは、ストローク分解プロセス184のため認識層へ送られる。ストローク分解プロセスは、ストロークを分解して(186)、これらのストロークを処理済みストローク列に入れる(188)。処理済みストローク列は、キャンバス上にある既存のストローク情報を処理済の分解されたストローク190で置換すべく用いられる。図9において、ステップ190までの動作は相対的にリアルタイムで生起する。これにより、システム更新または遅延を待つことなくキャンバス上に連続的に描画できるようになる。本システムの当該部分は、キャンバス上の画像に「知能」を提供しない(すなわち、非正式スケッチの正式化、オブジェクトの移動、色付け、切り取り等は不可能である)。この能力を得るために、分解されたストローク186は、自身に対して構造認識動作192をなされる。これらの構造認識動作は、筆記および描画ステップから時間的に非同期化された仕方で生起する。処理済の分解されたストローク190は、認識層内で同一分解されたストロークが構造認識動作を受けるのと同時にキャンバス上に表示され、その後、分解されたストロークに正式なオブジェクトおよび関係194が与えられる。注目する特定の分解されたストロークに対して構造認識動作が完了したならば、これらはシステムのインターフェース198を介してGUI層に提供された分解されたストローク、正式なオブジェクト196としてGUI層側に再び表示される。この設計により、GUI層と認識層のデータ構造とが同期化される。
GUIおよび認識モジュールにおいて「事前解釈」により実行されるように未処理ストロークをフラグメントに分解して、ストロークフラグメントの同期化されたリストを生成する方法の詳細を図10のフロー図210に示す。事前解釈動作には、認識モジュールにおいてストロークのどのグループが手書きの単語、すなわち「文字オブジェクト」を形成するかに関する初期仮説を設定および更新するロジックを含んでいる。
図10において、ペンが画面に接触した場合、GUIモジュールは新たな「ペン経路」オブジェクトを設定する。ペンがドラッグされるに従い、点列が経路に追加される。ペンが持ち上げられたならば、GUIモジュールはペン経路オブジェクトがタップまたはストロークのいずれであるかを判定する。ストロークである場合、GUIモジュールは、当該ストロークが他のストロークを囲んでいるか否かを判定する。囲んでいない場合、ペン経路オブジェクトは、ID(未処理ペン経路id)が割当てられて、未処理ストローク列212に入れられる。
ある時点で認識モジュールは別個のスレッドで起動される。既に実行中でなければ、ストロークを描画した後にペンが持ち上げられた後、認識モジュールが開始される。認識には時間を要するため、未処理ストロークは待ち行列に入っている場合があり、この状況において認識モジュールは、未処理ストローク列のより大規模ながら頻度は少ない読み取り処理を当該未処理ストロークに対して行なう。あるいは、認識モジュールは常時収集すべく構成されていてよく、その場合、未処理ストロークが無いかを常に調べており、そのようなストロークがあれば直ちに処理する。
認識モジュールは、未処理ストローク列212からストロークを除去して、ストロークを「終了ストローク(finished stroke)」または「分解されたストローク」と呼ばれる、より小さいフラグメントに分解する(216)。当分野で公知のマルチスケール角検出アルゴリズムが適用されて、どこで分解すべきかを判定する。終了ストロークは、各々が導かれた元の未処理「親」ストロークへのポインタを保持する。各々の終了ストロークは一意な識別子が割当てられて、処理済み(終了)ストローク列218に入れられる。そして、各々の終了ストロークは、認識モジュール内で維持されているキャンバスの複製にも格納され、この状態で「原子」と呼ばれて原子リスト220に格納される。
GUIプロセスは、処理済みストローク列を選択的に調べる。処理済みストロークが存在する場合、これらのストロークの親である未処理ストロークをキャンバスから除去して、これを処理済である、より小さい終了ストロークで置換する。
本サイクルの後で、GUIモジュールおよび認識モジュールは各々、終了(処理済)ストロークおよびこれらに関連付けられた共有IDの同一の複製を有する。IDは、2個のモジュールに対し、ストロークIDを介してストロークに関して互いに通信するための手段を提供する。
未加工ストロークをフラグメントに分解すると共に、認識モジュールはまた事前解釈段階において、同一の手書き単語に属する可能性のある終了ストロークのグループを形成する(222)。これらは、文字オブジェクト仮説であって、文字オブジェクト仮説リスト224に格納される。デジタルインクストロークの単語へのグループ分けを判定する方法は当分野で公知である。人間の筆跡は多様であるため、人間の解釈と一致するグループ分けを形成する確実且つ迅速なルールは無い。その代わり、多くの仮説が設定される。
各々の新規ストロークについて、本プロセスは当該新規ストロークが既存の文字オブジェクトに明らかに帰属するか、既存の文字オブジェクトに明らかには帰属しないか、あるいは曖昧であるかを判定する役割を果たす。ストロークが曖昧な場合、二つの新たな仮説が設定され、その一つではストロークが既存の文字オブジェクト仮説リスト224に追加され、もう一つではストロークが新たな文字オブジェクトを生成し、これが新たに接触された(または空間的に変換された)文字オブジェクトリスト226に入れられる。本プロセスでは潜在的に、仮説が膨大になる恐れがあるため、この方式の実行には注意を要する。仮説を制限する多くの手順、例えば、最大許容可能仮説値の包含等がある。あるいは、仮説設定の時間制限を含めてもよい。これらは、本システムに含め得る任意の数の仮説規制の二つの例に過ぎない。
図11に、文字オブジェクト仮説によるストロークのグループ分け(図10のブロック222)をより詳細に示す。新たな終了ストローク214を、「極めて整合性が高い」、「いくぶん整合性を有する」、あるいは「整合性が無い」を判定する判定ブロック232に渡して調べることにより、当該ストロークと既存の文字オブジェクト仮説の幾何学的整合性を判定する(230)。「極めて整合性が高い」場合、本プロセスは、ストロークを既存の文字オブジェクト仮説(234)、およびリスト(236、または図10の224)に追加する。ステップ232において当該ストロークが「いくぶん整合性を有する」ことが分かった場合、本プロセスは、既存の文字オブジェクト仮説を複製し(238)、複製された仮説にストロークを追加して(240)、既存のリスト236にも追加する。ストロークが「整合性が無い」と判定された場合、本プロセスは、新たな文字オブジェクト仮説を生成して(242)、全ての仮説のリスト236に追加する。
GUIおよび認識モジュールは、インターフェースプロトコル(Iコンセプトスケッチ認識モジュール)を介して相互に作用すべく設計されている。
GUIの観点から、認識モジュールの主要な役割は二つある。第一に、ユーザーが選択ジェスチャを実行した際に、どのオブジェクトが選択されたかを表示すべきかをGUIが決定するのを支援し、第2に、ユーザーが正式化または非正式化コマンドを発行する際に、表示すべき正式化または非正式オブジェクトを提供することである。多くの補助機能もまた提供される。
認識モジュールにより実装されるIコンセプトスケッチ認識インターフェース250の実施形態を図12に示す。これらは全て、任意の認識モジュールで実装される方法であって、GUIにより呼ばれる。いくつかの方法は戻り値を返し、他のものは副作用(待ち行列へのストロークの追加、削除等)により動作する。
インターフェース250に固有の関数群は、以下の通りである。
<未加工ストローク列を介したストロークの追加(252)>
GUIモジュールがペンからのデジタルインクを総合するに従い、GUI側で「未加工ストローク」として表現される。これらは、未加工ストローク列に入れられる。
<事前解釈ストローク(266):preInterpretStrokesInInputStrokeQueue();>
認識モジュールは、preInterpretStrokesInInputStrokeQueue()と呼ばれるメッセージ受け渡しメソッドを実行する。これは、GUIにより意図的に呼ぶことも、あるいは、スケジューラにより自動的に起動することもできる。認識モジュールの事前解釈プロセスは、未処理ストローク列からストロークを除去して、処理済(終了)ストローク列にストロークを入れる。終了ストロークは、未処理ストローク列から得られた未処理ストロークと同一であっても、あるいは未処理ストロークのフラグメントである新規ストロークであってもよい。通常、フラグメントは元の未処理ストロークを角で分解することで生じる。
GUIモジュールは、処理済(終了)ストローク列上の終了ストロークを連続的に試験する。そこで終了ストロークを見つけたならば、待ち行列から除去して、古い未処理ストロークがあれば新たな終了ストロークで置換する。全ての未処理および終了ストロークは内部IDを維持していて、GUIおよび認識モジュールにより追跡可能である。
本アーキテクチャの一実装において、GUIモジュールおよび認識モジュールは、ハッシュ表その他の相互参照を維持する公知技術を用いて、終了ストロークの別々の同期化された複製を維持している。
<構造認識(268):performStructureRecognitionOnPreprocessedStrokes();>
構造認識の認識モジュールでの実装実行は、ユーザーには感知できない。唯一の視覚的効果は、オブジェクトが選択されて正式化される際に反映される。
<タップ選択(258):public int[] selectTap(Point p, boolean b_last_operation_was_select_objects);>
selectTapメソッドはGUIにより呼ばれて、点pのx−y位置で示すキャンバス上の特定の位置でユーザーがペンタップしたことを認識モジュールに教える。GUIが次いで、ユーザーが何のストロークを選択しようと意図したかを判定して、これらのストロークのIDを含む配列(例:int[]配列)を返す。推論モードプロトコルの下で、当該判定は、点pの下方または近傍にある任意のストローク、および当該ストロークが属すると認識されたグループに基づいている。認識モジュールが知的であるほど、ユーザーがキャンバス上の様々な位置でタッピングした際に選択しようと意図するストロークの適切な集合を識別することに関してより知的になる。
第2の引数b_last_operation_was_select_objectsは、推論モードプロトコルの直観的な選択ロジックに寄与する。ロジックが真である場合、タップ位置の位置に応じて、ユーザーが連続的なタッピングにより複数のオブジェクトを選択していることを認識モジュールに教え、従って、既に選択されたストロークのIDが呼び出しにより返された選択済みストロークのリストに含まれている筈である。ロジックが偽の場合、返される選択済みストロークのリストを生成する前に、現在選択されているストロークのIDを廃棄すべきであることを示す。
<エンクロージャ選択(254):public int[] selectPath(Path path)>
selectPathメソッドは、ストロークの周囲に閉経路を描画することにより選択を可能にする。他のストロークを囲みにより閉経路ストロークが曖昧であり、従って推論モードプロトコルの下で「選択?」メディエーターを要求するか否かに関する判定はGUIに委ねられる。selectPathメソッドは、囲まれたストロークがGUIおよび認識モジュールの両方により選択されたものと見なす場合にのみ用いる。GUIは通常、選択されたストロークを何らかの方法で強調表示されるように加工する。
<ストロークの削除(256):public int[] deleteStrokes(int[] stroke-ids);>
deleteStrokesはGUIにより呼ばれて、特定のストロークをキャンバスから除去させる。認識モジュールは、これらのストロークが関与する認識済み構造は全て分解することに対処する必要がある。返されるint[]はキャンバスから削除されたストロークのIDであって、渡されたint[]stroke-idsと同一でなければならない。
<取消し(260):public int[] scratchOut(PenPath scratchout-path);>
scratchOutメソッドは、ユーザーが取消しジェスチャ(通常はジグザグ)と意図されたストロークを描画した場合にGUIにより呼ばれる。次いで認識モジュールは、取消しジェスチャの経路および認識アルゴリズムが構築した構造グループにより判定されたのと同様に、ユーザーがどのストロークの削除を意図しているかを正確に判定することを求められる。引数PenPath scratchout-pathは、ジェスチャの時点(そのタイムスタンプを含む)のリストである。認識モジュールが知的であるほど、たとえ曖昧な取消しジェスチャを行なった場合であっても、ユーザーの意図をより的確に認識することができる。
戻り値は、ストロークID(例:int[]配列)を含むデータ構造である。GUIは通常、「削除?」等の問いかけを行なう確認ボタンと共に強調して表示しなければならない。タップされたならば、GUIはこれらのストロークIDをdeleteStrokesメソッドへの引数として認識モジュールに渡す。
<正式化(262):public String formalizeObjects(int[] strok-ids);>
formalizeObjectsコマンドはまた、beautifyObjectsとも呼ばれる場合がある。これにより、int[]stroke-ids引数として渡された選択された非正式な終了ストロークが、円、楕円、長方形、多角形、矢印、弧および形式化された文字等の正式化図形オブジェクトで置き換えられる。渡されたstroke-idsにどのような認識可能オブジェクトが含まれていて、それらをどのように正式なオブジェクトで置換するかについては認識モジュールに委ねられている。
返される文字列(String)は、行なうべきプロセスを判定すべくGUIにより構文解析を必要とするXML文字列である。XML文字列は3種類のタグ、<introduce-object>、<remove-object>および<add-object>を含んでいる。<introduce-object>コマンドは、新たなプリミティブ、すなわち原子オブジェクトがGUIおよび認識モジュールの両方で用いられることをGUIに知らせる。導入されるオブジェクトには、形式化された文字列、および長方形、楕円、多角形、ポリライン、弧、および矢印の図形オブジェクト等の種類が含まれる。他の種類のものも導入することができる。導入されたオブジェクトにはストロークIDと同様に一意のオブジェクトIDが付与される。<remove-object>タグの後に、IDで示されるキャンバス削除すべき原子オブジェクトID(通常はストロークID)のリストが続く。<add-object>タグは、キャンバスにどのオブジェクトを追加すべきかを示す。
手書き図形の一部または全てが最初に正式化される際に、正式化図形オブジェクトが導入、次いで追加される。しかし、正式化の後で、ユーザーは、既に作成されたオブジェクトをキャンバスに単に追加または削除することにより、正式および非正式バージョンの間を行き来することができる。
<非正式化する(264):public String roughen Objects(int[] object-ids);>
roughenObjectsコマンドは、formalizeObjectsコマンドの逆である。選択されたオブジェクトのオブジェクトIDは、int[]object_ids引数を介して渡される。これらは、正式なオブジェクトまたは未処理ストロークであってよい。認識モジュールはroughenObjectsコマンドを受信したならば、どの正式なオブジェクトをキャンバスから除去すべきか、あるいはどのストロークを追加すべきかを判定する。
返されるXML文字列は、formalizeObjectsコマンドにより返されたXML文字列と構文的に同一であるが、通常は<remove-object>および<add-object>タグだけを含んでいる。
<変換(270):public String affineTransform(int[] object-ids);>
affineTransformコマンドを用いて、キャンバス上の選択されたオブジェクトの移動、スケーリング、伸長および回転変換を認識モジュールへ伝達する。認識モジュールが関与するのは、ダイアグラムのノードリンク構造に関する知識を有しており、従って、ノードが移動または別途変換されるのに伴ない、紐付けられているノードに追随してリンクグラフィックをどのように更新すべきかを指示すべく配置されているためである。
以上、インターフェース250に固有の関数群について説明した。
認識モジュールは、GUI/認識インターフェースに関して自身の役割を遂行すべく、図形オブジェクト、文字内容、およびダイアグラムの空間構造を認識する。第1段階、すなわち事前解釈段階は、上述のように、キャンバスに追加されている新たなストロークに応答して素早く動作する。事前解釈段階は、未加工ストロークをより小さいフラグメントに分解して、文字オブジェクト仮説を形成する。構造認識と呼ばれる第2段階は、より多くのプロセス時間を要する場合があり、ユーザーの筆記や描画とは非同期的に動作する。構造認識は、ストロークが図形的ドメインモデル、すなわち、概念マップとみなされるノードリンクダイアグラムに関して解釈される。
ノードリンクダイアグラム構造認識を高い水準で捉えるならば、認識モジュールのパラダイムが含まれ、その場合、
(i)必要に応じてストロークが分解される
(ii)関連するストロークがグループ分けされて、ストロークの構造化された解釈を反映する複数の仮説を形成する(ストロークは、形状の類似度および位置の近さを含むがこれに限定されない、多くの類似度特徴の任意のもの基づいて関連していると判定される)
(iii)仮説に対し、局所的証拠(例:固有のスコア)に基づいて信頼度スコアが適用されている
(iv)仮説に対し、囲みストローク(例:支持コンテキストスコア)等の相互に作用する支持オブジェクトに応じて信頼度スコアが適用されている
(v)仮説は支持関係に応じて束を形成する
(vi)競合する仮説同士に制約が適用される
(vii)適用された制約の下で、集合的に高いスコアが割当てられた仮説(例:受理/棄却値問合せ、すなわち他の競合する仮説よりも高い受理値を有する仮説に基づいて)の探索が行なわれる
(viii)集合的に高いスコアが割当てられている受理仮説が、ノードリンクダイアグラムの解釈を表わす仮説束の部分集合を形成する。
事前処理されたストロークに対する構造認識:構造仮説の形成、について述べる。構造認識は、原子ストロークオブジェクトを比較的複雑なオブジェクトにグループ分けすることにより生じる。グループ分けの規則は変動およびノイズを許容しなければならず、複雑なオブジェクトに対する多くの仮説が構築されている。これにより束310が形成される。最適化手順は、集合的に最高いスコアを達成する仮説の組合せを選択すべく動作し、特定の制約に従って仮説束の部分集合(例:図15の330)を選択する。
各々の複雑なオブジェクトは、1個以上の比較的単純なオブジェクトにより「支持」される。これらの比較的単純なオブジェクトは、比較的複雑なオブジェクトで規定された役割を果たす場合がある(例:くさびが、矢印の比較的複雑なオブジェクトを支持する役割を果たす)。
ノードリンクコンセプトスケッチドメインについて、図形および文字オブジェクト並びに部品280のオントロジーを図13に示す。図形および文字オブジェクトのオントロジーは、原子から分子へ、グラフノードへ、およびノードリンクダイアグラムのグラフリンクへと構築される。
以下、図13に例示する各要素について説明する。
原子ストローク(282):未加工ストロークを角で分解することにより得られる分解されたデジタルインクストローク。極めて短い孤立したストロークはペンドット(PenDot)と呼ばれ、より長いストロークはペンストローク(PenStroke)と呼ばれる。
くさび(284):角で交わるほぼ一対の同じ長さのペンストローク。
矢印(286):角で交わるくさびとペンストロークであって、当該ペンストロークはくさびの辺の間に来なければならない。
曲線オブジェクト(290):自身とは交差しない開経路を形成する一連のペンストローク。
曲線コネクタ(292):開経路、単一ペンストローク、または端と端がつながった複数ペンストロークは、終端子図形(TerminatorGraphic)、すなわち矢印等のコネクタの終端子として機能できるオブジェクトのオプション的役割を含んでいる。他の形状または項目は終端子として機能することができる。
閉経路オブジェクト(288):自身とは交わらない閉経路またはほぼ閉じた経路を形成する一連のペンストローク。閉経路は通常、閉経路オブジェクトと見なすことができるためには比較的単純且つ小さい形状でなければならない。蛇行する長い閉経路はこれに該当しない。
文字オブジェクト(294):手書きの単語に概ね対応する、まとまりのある細長い塊を形成するペンストロークおよびペンドットの集合。
文字ライン(296):通常は水平線に沿って端から端まで並んだ文字オブジェクトのグループ。
文字カラム(298):文字オブジェクトおよび/または文字ラインを垂直にならべたもの。
グラフノード(300):ノードグラフィックおよびノードラベルの二つの主な役割を有する。グラフノードを支持すべく、役割の少なくとも一つ、オプション的には両方を果たす。一実施形態において、閉経路オブジェクトによりノードグラフィックの役割を果たし、文字オブジェクト、文字ラインまたは文字カラムによりノードラベルの役割を果たすことができる。同じ実施形態において、グラフノードに対して両方の役割が果たされ、次いで閉経路オブジェクトにより文字が囲まれる。また、グラフノードは、自身に関連付けられたグラフリンクへのポインタを保持する。他の実施形態では異なる構成であってよい。
グラフリンク(302):リンクグラフィックおよびリンクラベルの二つの役割を有している。リンクグラフィック役割は、曲線コネクタが果たさなければなければならない。リンクラベル役割はオプション的に、文字オブジェクト、文字ライン、または文字カラムにより果たすことができる。また、グラフリンクはいずれかの終端に関連付けられた(指示される)グラフノードのリストを保持する。
図13には示していないが、グラフノードの関連付けも本概念と合わせて用いられることを理解されたい。
これらの種類のオブジェクトの各々について、これを支持する何らかの比較的単純なオブジェクトからオブジェクト仮説を形成する方法を用いる。また、各々のオブジェクトは、支持オブジェクトが、形状やサイズ要件等の規定された基準をどの程度満たすかに依存する固有のスコアを得る。例えば、本実装において、仮定された文字オブジェクトは、マイクロソフトタブレットPC APIを介して呼ばれるマイクロソフト手書き認識プログラムの信頼度スコア(低、中間、高)に応じて、0.1、0.5、または0.9の固有スコアを得る。くさびおよび矢印は、それぞれの部品のジオメトリに基づいて発見的な基準で採点される。他のスコア設定方式も公知であって利用できる。
オブジェクトの構築方法を図14の仮説束310に示す。
ペンストロークおよびペンドット(例:プリミティブまたは原子)312から出発して、分子313を経て、グラフノード314a、314bおよびグラフリンク316まで、比較的単純なオブジェクトを比較的複雑なオブジェクトにグループ分けするアルゴリズムが多くの仮説(すなわち、仮説束)を生成し、そこから仮説の部分集合が選択される。黒い(太線)連鎖318a、318b、318cは受理された仮説と見なすことができる一方、明るい(太線でない)連鎖320a、320b、320cは棄却された仮説である。受理された仮説の組は、ノードリンクダイアグラムの正確な解釈であるとして集合的に高いスコア割当て(他の競合する仮説の組と比較して)を有する。時折、形の拙い矢印のように低いスコアを付与された仮説が、曲線の等高線すなわちグラフリンクの支持に重要な役割を果たす場合、当該仮説が正しいことがわかり、トップダウン情報により効果的に補強される。
図15に、フラグメント(1〜28)334に分解されたノードリンクダイアグラム332の受理された仮説束330を示す。これらは、グループ分けされ(例:1〜7、8〜11、12、13、14、15、16、17〜28)、次いで、くさび336等の最も単純な形式から出発して、矢印338、曲線コネクタ340、文字オブジェクト342a、342b、閉経路344、グラフノード346、およびグラフリンク348まで構築されて、全体的なノードリンク関連付け(ダイアグラム)350が得られる。構造階層には最終の正しい仮説だけを示し、多くの誤ったグループ分けが削除されている。
以下に、構造認識手順の一実施形態の入出力と共にステップについて述べる。
入力:新たに分解されたペンストローク;新しくタッチされた文字オブジェクト仮説;既存の文字オブジェクト、閉経路オブジェクト、くさび、矢印、曲線コネクタ、NLリンク、NLノード。
出力:文字オブジェクトのリスト。閉経路オブジェクト、くさび、矢印、曲線コネクタ、NLリンク、NLノード。
適切な入力がなされたならば、プロセスは、
1.全てのペンストロークの近位端にリンクを形成する。リンクされたペンストローク終端の各対が並び(alignment)または角を形成する程度を表すスコアを数値的に与える。
2.くさび仮説を形成する。
本システムは、図16のノードリンクダイアグラム360を解釈して、潜在的にくさびと考えられるストロークを識別する。くさび仮説362aのあるものは真であるが、他のものは偽362bである。仮説の同様の例を図17〜21に示す。仮説束を修正する認識モジュールの動作を示す図30のブロック512における最適化プロセスの一部としてT/Fの判定がなされる。
3.矢印仮説を形成する(図17、364a真、364b偽を参照)。
4.閉経路オブジェクト仮説を形成する(図18、365a真を参照)。
5.曲線コネクタ仮説を形成する(図19、366a真を参照)。
6.閉経路オブジェクトにより囲まれるストロークの集合を見出す。
7.閉経路オブジェクトによる囲い込みに基づいて文字オブジェクト仮説を破る。
8.共通の支持オブジェクトを有することに基づいて、互いに冗長である文字オブジェクト仮説または他のいずれかの図形オブジェクトと冗長である文字オブジェクト仮説を除去する。
9.スコアが与えられていない全ての文字オブジェクト仮説に対して手書き文字認識を実行する。
10.文字オブジェクトから文字ラインおよび文字カラム仮説を形成する。
11.文字オブジェクト、文字ライン、または文字カラム(図21、368a真を参照)を囲む閉経路オブジェクトからグラフノード仮説を形成する(図20、367a真を参照)。
12.文字オブジェクト、文字ライン、または文字カラムを指す曲線オブジェクトからグラフノードおよびグラフリンク仮説を形成する。
各オブジェクトは、スコアと、自身の支持オブジェクトおよび自身が支持するより複雑なオブジェクトへのポインタと、を含んでいる。この出力は、例えば図14の310の仮説束を形成する。
キャンバス上のストロークが特定のオブジェクト形式であるか否かを判定する仮説を生成すべく利用可能且つ当分野で公知である多くの技術が存在する。単純なくさび仮説に関して、本システムは、互いに一定の近さにある2個のストロークの間の角度および各ストロークの相対的な長さを判定することができる。これらの属性には値が付与される(例:2個のストローク間の角度がxならば角度スコアは0.1であり、角度がzならば角度スコアは0.9である)。このような属性から、各々の仮説について全体的なスコアが得られ、これを用いて全体的なスコア(例:図15の固有スコア)を判定すべく属性のコスト関数が定義される。特定のインクストロークおよびオブジェクトに関係する技術およびプロセスが当分野で公知である。
受理された束が形成されたならば、束の原子は自身が支持する仮説が知らされる。これらの仮説の少なくともいくつかは「選択可能仮説」と見なすことができる。各原子は選択可能オブジェクトリストを保持しており、これらは選択可能なグループ仮説(例えば、インクストローク原子は矢印の仮説を支持することができ、その場合当該矢印は選択可能な項目である)と見なすことができる。タップ選択コマンドが呼ばれた場合、タッピング動作を受けている原子に対し、自身の選択可能オブジェクトリストに関して問い合わせが行なわれる。図15に注目すれば、原子「15」は(少なくともある程度)「くさび」、「矢印」、「曲線コネクタ」を支持し、これら全ては原子「15」の選択可能オブジェクトリストに含まれている。
本システムは選択可能オブジェクトリストの順序を編成することが可能であり、従って本考察では、曲線コネクタが選択可能オブジェクトリストの先頭にあると見なすことができる。原子「15」がタップされたならば、本システムは曲線コネクタまで構造階層を上がって、キャンバス上の曲線コネクタを選択(例:強調表示により)する。ユーザーが実際には曲線コネクタを望んでおらず、矢印を選択したい場合、原子「15」を再度タップすることによりシステムはリストで2番目の選択可能仮説(例:本例では矢印)へ移動し、階層内の移動が受理されて矢印が取り出される。これにより、プロセスが選択オプションを循環することができる。同様の機能が囲み動作や取消し動作にも利用できる。
図22では、選択可能オブジェクトリストに関係する動作をフロー図370に示す。最初に、画像または画像の一部(原子オブジェクト等)に対しタップ動作が行なわれ(370a)、これにより選択可能オブジェクトリストの最初の項目を選択する(370b)。本システムは次いで、構造階層内を移動して選択可能オブジェクトリストの最初の項目を識別し(370c)、当該項目をキャンバス上で強調表示する(370d)。強調表示された項目の選択が決定された場合(370e)、本システムは選択コマンドを認識モジュールへ送信するか(370f)、または、項目が選択されてない(例:ユーザーが再び画像をタップする)場合(370g)、プロセスは選択可能オブジェクトリスト内で一段先へ進み、次に登録されている項目(例:矢印)に達する(370h)。構造階層を再び調査して選択可能オブジェクトリストから現在選択されている項目を識別(370i)し、当該項目をキャンバス上で強調表示する(370j)。次いで、強調表示された項目を選択するか否かをについて再度判定する必要がある(370k)。項目が選択されたならば、選択コマンドを認識モジュールへ送るか(370l)、または、項目が選択されていない場合、当該項目が選択可能オブジェクトリストにおける最後の項目であるか否かの問合せを行なう(370m)。結果が否認的な場合、ユーザーは再び画像をタップすることができ(370g)、ステップ370h〜370kが繰り返される。選択された項目が選択可能オブジェクトリストの最後の項目であるが、ユーザーが項目を選択していないと判定された場合、本システムはリストを一巡して、スタイラスまたはペンでタッピングされたならば再びリスト上の選択可能な最初の項目を選択する。
いくつかの実施形態において、複雑なオブジェクトから単純なオブジェクトへ選択可能オブジェクトリストを並べ替えるオプションを、他の順序の中から、提示されることで、ユーザーが選択可能オブジェクトリストの項目の順序を決定することができる。
あるいは、ノードリンクダイアグラムの漸増的構造認識または漸増的更新が提供される。ダイアグラムがキャンバスに描画されていて、追加のノード、リンクまたはラベルがダイアグラムに追加または削除された際に、システムが自動的に知的ノードリンクダイアグラム(すなわち、認識動作により機能が与えられているという意味で知的ノードリンクダイアグラムである)を認識すべく動作しているならば、これらの変更により以前に形成された全ての仮説を再生成する必要が無い。既存のノードリンクダイアグラムに変更が生じる都度、仮説の「森」を再構築する必要が無い(例:図14)。その代わり、新たに追加または削除されたインクストロークに起因して生成された新たな構造仮説グループは、適宜、既存の構造仮説のグループに統合されるか、または新たな構造仮説のグループが形成される。再スコア付与(すなわち、固有および/またはコンテキストスコアの)があれば、既存の階層束(例:図15)を更新すべく伝播される。この漸増的構造認識はまた、ストロークが新たにタッチされた場合に生起する。束仮説に何らかの変更を行なうべく、ユーザーがノードリンク構造の既存の要素をタッチまたは選択しても、新たな仮説の森全体および新たな束仮説グラフを再生成する必要が無い。
本システムでは代替的な仮説の森を再構築する際に反復的な作業を行なう必要が無いため、上述のプロセスは、修正された知的ノードリンクダイアグラムを生成する速度を向上させる。従って、既に生成されている構造が維持される。
グループ分け手順により生成された階層束が含んでいる多くの誤った仮説は、知覚的に顕著で有意味なオブジェクトと一致せず、整合的なノードリンクダイアグラムの一部として互いに整合しない(図14参照)。選択プロセスは、受理された解釈(図15参照)の状態に進んで、タップ選択コマンドおよび正式化/非正式化その他の動作を通じてユーザーに利用可能になるオブジェクト仮説を決定すべく動作する。この選択プロセスは、一実施形態において、スコアの合計が最大になるか、個々の仮説の同様の算術的組合せの下で、また、重複しない支持制約の下で最大値を生ずるオブジェクトを保持すべく設計することができる。一実装例において、この制約は、任意のグループまたは原子ペンストロークは高々他の1個の受理されたグループしか支持できないとするものである。他の実装例では、重複しない制約を緩めることができ、例えば、重複しない概念を文字オブジェクト仮説と、くさび、曲線オブジェクトまたは閉経路オブジェクト仮説はグループ仮説との間で緩めて、複数の受理されたグループを支持できるようにすることができる。
本アルゴリズムは、境界を用いて探索木を剪定する探索概念に基づいている。本アルゴリズムでは重複しない支持制約が起動されて、探索木のより高い位置でなされた決定に基づいて動的に分岐を棄却することにより更に探索木を剪定する。以下の議論は、深さ優先探索として当分野で公知の方法に焦点を当てる。とりわけ「最良優先」を含むがこれに限定されない他の種類の探索を用いてもよい点を理解されたい。
一実施形態において重複しない支持制約の下で階層グループに対し「深さ優先」探索手順を用いる探索プロセスのステップと共に、入力および出力を以下に記述する。
入力:ノードの階層束。束の基礎部分には原子ノードがある。その上にグループノードがある。各グループノードは、階層内でより低いいくつかノードにより「支持」されている。各グループノードには2個のスコア、すなわち上述の固有スコアおよび後述の支持コンテキストスコアが割当てられている。
出力:各ノードが階層において自分より上のノードを高々1つ支持するように、部分集合に含まれるノードの支持、支持コンテキストスコアの合計または関係する算術的組合せを最大にするグループノードの部分集合。
1.図23の階層的束構造380に示すように、各原子ノード(A1〜A6)382に支持コンテキストスコアとして1が割当てられる。スコアは原子ノードから上方へ伝播されることにより、各グループノード(M1〜M8)384は、自身の固有スコア388と、自身の支持ノード群の最小支持コンテキストスコアからイプシロン値を減算した値と、のうちの小さい方である支持コンテキストスコア386を有している。支持コンテキストスコアは、底部の原子ノードから伝播させて、固有のスコアを支持ノードの支持コンテキストと組み合わせることによりノードの階層に割当てられる。
2.全てのグループノードの支持コンテキストスコアを一覧表示するスコアベクトルが生成される。スコアベクトルにおいて固有スコアを用いることは可能であるが、これにより探索木の剪定が大幅に減り、従って探索時間が増える恐れがある。
3.スコアベクトルおよび付随するグループノードが、最大支持コンテキストスコアから最小なものへ並べ替えられる。ステップ1でのスコア割当てのため、束内でより高いノードがそれらの支持ノードの後に厳密に来るよう、ノードは順序付けられる。
4.図24の表390のような支持表が階層束(例えば図23の)に基づいて構築される。図24に、支持表390が、階層グループ束380の支持構造を符号化する様子を示す。表の水平方向の次元(行添え字)は、全てのグループノードを、支持コンテキストスコアの順に一覧表示する。支持表の垂直方向の次元(列添え字)は、原子ノードに加え、束内でより上位にある少なくとも1個の他のグループノードを支持する全てのグループノードからなる。支持表の項目はブール値であり、行添え字付き原子または支持グループノードが束内で列添え字付きグループノードを支持するか否かを示す。
5.重複しない支持制約の下で最適化探索が実行される。探索の目的は、各グループ(または仮説)ノードにT/F値を割当てることである。これは2進木の探索により達成され、ここで、木の各ノードにおいて左分岐がノードに真値を割当てることに対応し、右分岐が偽値を割当てることに対応する。木の深さは、グループノードの個数である(図26参照)。
図24に、階層ノード束の例および支持表390の支持関係の表現を示す。ノード(MI、M3、M5)392a〜392cは受理される(真)一方、ノード(M2、M4、M6、M7、M8)394a〜394dは棄却される(偽)。支持表の帯状域396は、深さ優先探索を動的に剪定するための重複しない支持制約の動作を示す。
重複しない支持制約の下で深さ優先最適化探索のより特定の実施形態に注目すれば、以下の段落において、探索(A1〜A3)の主ステップおよび主ステップ(A1〜A3)のより詳細と共に、そのような探索の入力および出力を記述する。
入力:オブジェクトスコアのベクトルおよび支持表。
出力:全ての真であるオブジェクトが支持表に従い高々1個の他の真であるオブジェクトを支持するという制約の下で、オブジェクトスコアの合計または関係する算術的組合せが最大化されるようなオブジェクのT/F値のラベリング。
A1.ノード変数を初期化する。
A2.主ループ:...となるまで現在ノードを処理する。
A3.終了:最適なノードT/F値割当てを出力する。
A1の初期化ステップは以下を含んでいる。
I1.変数best-score(最高スコア)を0に初期化する。
I2.変数cumulative-score(累積スコア)を0に初期化する。
I3.各ノードの変数veto-count(否認回数)を0に初期化する。
I4.各ノードの変数current-state(現在の状態)の値を「状態A」に初期化する。
I5.ポインタtree-pointer(木ポインタ)を第1ノードに初期化する。ポインタtree-pointerにより指示されるノードを「current-node(現在ノード)」と呼ぶ。
主ループ:current-node(現在ノード)を処理する。ステップA1〜A3中のステップA2について、構造認識を得るために用いるプロセスに関する詳細を提供する図25〜図29と合わせて説明する。プロセスが繰り返す間に、ポインタtree-pointerが探索木を上下に調査して、ノード値を真および偽のさまざまな組合せに設定する。プロセスは、2通りの方法で探索を剪定するように設計されている。第一に、プロセスは、否認されたノードが重複しない支持制約を満たさないため、その真値を調べない。第二に、プロセスは、ノードを受理することにより得られる最適な累積スコアが、これまで得られた最高スコアを下回る場合、当該ノードの真値を調べない。
図25に、重複しない支持制約アルゴリズム400の下での深さ優先最適化の主ループのロジックダイアグラムを示す。ステップ402において、現在ノードが処理される。このプロセスにおいて、動作は判定ブロック404へ移動して、当該ノードが最後のグループノードの現在ノードであるか否かを判定する。そうでない場合、判定ブロック406において、現在ノードの状態がA、BまたはC(図26参照、Aが未調査、Bは真、Cは真および偽である)であるか否かを判定する。Aである場合、判定ブロック408は現在ノードの否認回数がゼロ(0)を超えるか否かを調べる。NOの場合、プロセスはブロック410へ移動して、現在ノードの累積スコアが現在ノードのスコアに等しいか否かを調べる。ステップ412において楽観的スコアを合計する。動作「楽観的スコアを合計する」は、現在の累積スコアを否認回数がゼロ(0)に等しい木の下方にあるノードのスコアに加算することを意味する。楽観的スコアが最高スコアより小さいか否かを判定する(414)。YESならば、現在ノードの変数T/Fの値を偽に設定する(416)。次いで、現在ノードの変数current-stateの値を「C」に設定し(418)、変数current-nodeの値を減らし(420)、プロセスは402へ戻って現在ノードの入力を処理する。
ステップ414において楽観的スコアが最高スコアより大きいことが分かった場合、プロセスは現在ノードの変数T/Fの値を真に設定し(422)、矛盾している支持ノードを否認するプロセスを呼び出す(424)。この時点で、現在ノードの変数current-stateの値を「B」に設定し(426)、変数current-nodeの値を増やす(428)。その後、プロセスは入力された現在ノードの処理ブロック402へ戻る。
ステップ408において現在ノードの否認回数がゼロ(0)より大きいと判定された場合、プロセスは現在ノードの変数current-stateを「C」に設定して(430)、現在ノードの変数T/Fの値を偽に設定し(432)、次いで変数current-nodeの値を減らす(434)。その後、プロセスは現在ノードの次の処理のためステップ402へ移動する。これは、ステップ406で現在ノードの状態が「A」であることが分かった場合に利用できる代替方法である。
ステップ406において現在ノードの状態が「B」である場合、矛盾する支持ノードの否認を解除するプロセスを呼び出し(436)、現在ノードの変数current-stateを「C」に設定し(438)、現在ノードの変数T/Fの値を偽に設定し(440)、変数current-nodeの値を増やす(442)。
上記は、現在ノードの状態が「B」である場合に生じるステップである。ステップ406において現在ノードの状態が「C」である場合、現在ノードが第1ノードであるか否かの問い合わせを行なう(444)。NOならば、変数current-nodeの値を減らし(446)、プロセスは現在ノードの処理402へ戻る。ステップ444において現在ノードが第1ノードである場合、プロセスが終了し、最適ノードT/F値割当てがなされた旨を報告する(448)。
ステップ404へ戻り、現在ノードが最後のグループであると判定された場合、プロセスは最後のグループノードを処理する(450)。現在ノードの変数current-stateを「C」に設定し(452)、変数current-nodeの値が減らされる(446)。この時点で、プロセスは再び現在ノードの初期プロセス402へ戻る。
図26に、本明細書に記述している探索概念の動作により生成された探索木の一部(または極めて簡単な探索木の全体)を示す。数字は、探索木内でノード状態、A、BおよびCがどのように探索の現在状態を追跡し続けて、木ポインタを探索における次のノードに向けるかを示している。図26は、ノード探索状態変数460が状態の値としてA、BまたはCを取り得ることを示す。これらは、ノードが未だ調べられていない(状態A)462、調べた結果が真(状態B)である464、あるいは調べた結果が真および偽の両方(状態C)である466か否かを追跡する。
ステップA3、「終了:最適なノードT/F値割当てを出力する」に注目すれば、ポインタtree-pointerが最上位のノードに到達して、その現在の状態current-stateがCである場合、アルゴリズムは終了する。これが生じるのは、それより下位の全てのノードが調査されたか剪定されている場合である。本アルゴリズムは次いで、探索過程で見つかった、最高スコアのT/F値割当てのT/F値を出力する。これは例えば、図15のダイアグラムで最適なグループ仮説を選択することに対応する。
図27において、最後のグループノードのプロセス450に関係し、且つこれに続く動作をより詳細に示す。累積スコアcumulative-scoreが最高スコアbest-scoreより大きいか否かを判定する(470)。結果が肯定的である場合、変数best-scoreの値を変数cumulative-scoreの値に設定する(472)。次いで、変数best node true-or-false assignmentの値を現在ノードの真偽値割当ての値に設定する(474)。この情報を用いて、システムはプロセスを終了する。一方、ステップ470において、累積スコアが最高スコアより大きいと判定されなかった場合、プロセスは否認的な結果を返し、直ちに終了する。
図28において、矛盾する支持ノードを否認する動作(424)についてより詳細に示す。変数node-to-considerの値を現在ノードの値に設定する(480)。システムは、支持表内で変数node-to-considerが表すノードの支持ノードを探す。支持ノードを利用不可支持スタックに追加し(482)、システムは利用不可支持スタックが空であるか否かを判定する(484)。空である場合、プロセスを終了する。空でない場合、変数node-to-considerの値を、利用不可支持スタックからポップアップされたノードの値に設定して(486)、変数node-to-considerが表すノードの変数veto-countの値を増やす(488)。プロセスは再びステップ482へ移動して、ステップ484で利用不可支持スタックに他のノードが存在するが否かを判定し、プロセスは利用不可支持スタックが空になるまで継続される。このプロセスでは、システムはシステムの重複しない制約が満たされるか否かを判定する。
図29に、図25の矛盾する支持ノードの否認解除プロセス436を更に詳細に示す。変数node-to-considerの値を現在ノードの値に設定し(490)、システムはステップ492において再び、支持表において変数node-to-considerが表すノードの支持ノードを探して、支持ノードを利用不可支持スタックに追加する。次いで、ステップ494において、プロセスは利用不可支持スタックが空であるか否かを判定する。結果が肯定的である場合、プロセスを終了する。結果が否認的である場合、変数node-to-considerの値を、利用不可支持スタックからポップアップされたノードの値に設定し(496)、変数node-to-considerが表すノードの変数veto-countの値を減らす(498)。その後、プロセスがステップ494の結果が肯定的になるまで継続され、プロセスを終了する。
本明細書に記述する探索概念は、重複しない制約を用いており、特に構造認識に注目して記述してきた。その用途を、上述の実装例に限定することを意図しておらず、他の図形認識用途、および他の計算機視覚アプリケーションまたは上述の方法およびプロセスから得られる探索能力による利益が享受する他の任意の分野にも適用可能である。
上述の議論は、最適化された、ほぼ最適化された、または所望の実行可能な解決策に到達すべく、T/F値の判定を用いて探索木を剪定する各種の手順の動作を記述している。多くの理由により、ある解釈を「強制する」ことが望ましい場合がある。解釈を強制するとは、介入の無い動作の下で最適化探索が仮説のT/F値をどのように判定するかに関らず、何らかの介入(例:ユーザーによる能動的入力または所定の選択)により仮説の値を真または偽値に設定することを意味する。従って、最適化探索が別途真(または偽)値を発見し得る状況において、システムは当該判定をオーバーライドすることにより、当該計算内のノードが潜在的に受理可能(または受理不可能)にすべく設計することができる。
上の段落が仮説束の生成を用いる認識動作について述べていて、図30に示すように各種の動作が仮説束の修正を可能にすることを理解されたい。例えば、システム図500において、ストロークの事前解釈動作を実行した場合(502)、更新された文字オブジェクト仮説504が仮説束506に与えられる。構造認識動作を実行した場合(508)、特定の動作に全ての構造化オブジェクト仮説の更新が含まれている(510)。これが認識動作の下で必要とされる全てである場合、これらの更新された構造オブジェクト仮説が仮説束506に与えられる。システムは、受理された仮説の選択を必要とする場合がある(すなわち、最適化探索を行なわなければならない512)。この状況において、仮説束を更新する前に、当該仮説に真または偽のラベルを付与する(514)。
ストローク正式化動作516に際して、システムは、正式化すべき仮説を決定すべく選択動作を実行し(518)、選択された仮説を正式なグラフィカルオブジェクトに変換する(520)。これら正式なオブジェクトは、束506の更新に際して非正式な仮説と交換または差し替えられる(522)。代替的な措置において、システムは棄却された仮説の除去を要求する場合があり(524)、その場合は選択された仮説を除去(526)して仮説束を更新する(506)。
また、上述の議論が電子的に形成されたノードリンクダイアグラムに知能を与えてダイアグラムの構造を認識可能にする動作を開示している点に注意されたい。これらの動作は、ノードリンクダイアグラムの編集を可能にする。基本すなわち原子オブジェクトを取得する態様を以下に要約する。
I.ストローク毎の処理段階
1.原子オブジェクト(ストローク、ノード)の形成
1a.ストローク解釈列から次の利用可能ストロークを除去する。
1b.ストロークが筆記体であるか否かの指標を計算する。
これはストロークの二乗和曲率、長さ、速度、およびオプションとして他の特性に基づいている。
1c.筆記体と判定されたストロークを「文字」型の原子とみなして、ストローク解釈列の先頭に戻す。
1d.筆記体と判定されなかったストロークを公知の手段に従い角で分解する。結果的に生じる各々のストロークフラグメントを原子ストロークとみなす。生成された原子ストロークフラグメントの集合をストローク解釈列の先頭に入れる。
2.原子ストークスのグループ分けに基づく分子文字オブジェクト仮説の形成
原子ストロークをストローク解釈列から除去し、仮説束内の文字オブジェクト型分子オブジェクト仮説の現在の集合に関して考察する。(最初、仮説束に分子オブジェクトは存在しない。)、各文字型分子仮説について、ストロークの位置、長さ、形状および他の特性を評価し、行なうべき動作を以下のように決定する。
−ストロークが文字オブジェクト分子オブジェクト仮説と完全に整合性を有する場合、ストロークを当該分子オブジェクトの支持オブジェクトに加える。
−ストロークが分子オブジェクト仮説と部分的に整合性を有する場合、二つの新たな分子オブジェクト仮説を形成する。一つはストローク単独からなり、もう一つは当該ストロークに当該分子の支持原子ストロークを加えたものからなる。
−ストロークがどの既存の文字型分子オブジェクト仮説とも部分的に整合性を有しないと判定された場合、当該ストロークをその唯一の支持オブジェクトとして新たな文字型分子オブジェクト仮説を形成する。
II.後続処理段階
3.終端リンク
3a.筆記体と判定されなかった全てのストローク(ストロークフラグメント)について、各ストロークの終端点の位置と向きを表わすストローク終端オブジェクトを生成する。
3b.閾値に従い互いに十分近くにある一対のストローク終端を表わす終端リンクデータ構造を形成する。そのような各々の終端対が角を形成する度合い、およびそのような各々の終端対が滑らかな曲線形状をなす度合いを計算して終端リンクデータ構造に加える。
3c.当分野で公知のアルゴリズムに従い、原子ストロークにより形成される知覚的に閉じた経路の探索を行なう。結果的に生じた各々の閉経路図形オブジェクトを仮説束に加える。
3d.くさびまたは矢印を形成する3重のストロークを発見すべく、閉経路図形オブジェクトに関与していない全てのストロークを更に処理する。矢印ストロークの対を仮説束の矢印図形オブジェクトとして登録される。
3e.終端同士がリンクされたストロークの連鎖を発見すべく、閉経路図形オブジェクトに関与していない全てのストロークを更に処理する。仮説束の開経路図形オブジェクトとして連鎖を登録する。
4.グラフまたはノードリンク構造ノードの生成。
4a.上で定義したグラフノードおよびグラフリンクオブジェクトの要件を満たす仮説束における分子オブジェクトの集合を、適切な型であって、互いに空間的に適切な近さにある分子オブジェクトの対を網羅的に探索することにより発見する。例えば、閉経路オブジェクトと文字型分子オブジェクトを比較して、閉経路オブジェクトが文字オブジェクトを囲んでいることが分かった場合、グラフノードオブジェクトが生成される。
同様に、開経路オブジェクトが、文字型分子オブジェクトまたは閉経路オブジェクトを「指す」関係があることが分かった場合、グラフリンクおよびグラフノードオブジェクトが生成される。
5.信頼度スコアの割当て
5a.自身の原子支持オブジェクトが当該分子オブジェクトの型の理想的なモデルにどれほど良く当てはまるかに基づいて、仮説グラフ内の各分子オブジェクトに信頼度スコアを付与する。
5b.自身の寄与するノードリンク分子オブジェクトのスコア、および当該ノードリンク構造オブジェクト型について定義された部品の理想的な構成を満たす空間構成に応じて、仮説グラフ内の各ノードリンク構造オブジェクトにスコアを割当てる。
6.グラフ構造信頼度スコアの補強
6a.グラフ構造オブジェクト度の信頼度スコアは、互いを補強する程度に応じて調整される。信頼度は、グラフ構造ノードオブジェクトがグラフ構造リンクオブジェクトにより指示される程度から、グラフ構造リンクオブジェクトがグラフ構造ノードオブジェクトを指示する程度まで上がる。
7.仮説の選択
7a.勝ち残る仮説は、最適探索により仮説グラフから選択される。最高スコアを得たグラフ構造ノードが「受理された」として選択され、これを支持する全ての分子オブジェクトがこれに割当てられる。
7b.このような支持分子オブジェクトの各々について、当該分子オブジェクトを支持する全ての原子ストロークがこれに割当てられる。
7c.次の層のオブジェクトに割当てられた全ての分子オブジェクトおよび原子ストロークの支持オブジェクトが、仮説グラフ内の他の全ての仮説から除去される。
7d.影響を受けた全てのグラフ構造および分子オブジェクトが、自身の信頼度スコアを再計算する。
7e.信頼度スコアが閾値を超える状態で、未受理グラフ構造仮説ノードがなくなるまで制御は7aへ戻る。
7f.受理されたグラフ構造ノードおよびこれらの支持分子オブジェクト並びに原子ストロークを、抽象オブジェクトおよびそれらの支持ストロークにおけるノードリンクとその支持オブジェクトの論理的関係を記録するデータ構造に登録する。このデータ構造は、上述のユーザー選択および編集動作に対応している。
本出願の概念図である。 本出願の概念を実装するために用いるプロセスの高水準のダイアグラムである。 グラフィカルユーザーインターフェースモジュールと認識モジュールのアーキテクチャ上の関係を示す構成図である。 高水準のフロー図である。 ノードリンクダイアグラムプログラムの画面スナップショットである。 プログラム(例:コンセプトスケッチ)への各種の指示/動作の概要図である。 フロー図である。 タッピング動作を示す概念図である。 GUIモジュール(層)と認識モジュール(層)の関係の詳細図である。 事前解釈動作の更なる詳細図である。 図10のグループ分け動作の更なる詳細図である。 GUIと認識モジュールの間のインターフェースの各種の方法を示す関数一覧図である。 ノードリンクダイアグラム構造のオントロジーを示す構成図である。 複数の構造仮説または構造仮説の森を示す概念図である。 ノードリンク構造階層を示す概念図である。 くさび仮説を示す関係図である。 矢印仮説を示す関係図である。 閉経路オブジェクト仮説を示す関係図である。 曲線コネクタ仮説を示す関係図である。 グラフノードの仮説を示す関係図である。 グラフリンク仮説を示す関係図である。 フロー図である。 階層ノードダイアグラムである。 階層ノード束の例を示す概念図である。 ロジックダイアグラムである。 状態がノード探索を追跡する様子を示す概念図である。 ノード探索における最後のグループノードのプロセスステップ拡大を示すフロー図である。 より詳細なフロー図である。 矛盾する支持ノードの否認を解除する動作を示すフロー図である。 認識モジュールの動作を示すフロー図である。
符号の説明
10 環境またはシステム、12 電子ディスプレイ、14 コンピュータ、16 電子スタイラスまたはペン、18 キーボード、20 マウス、22 キャンバス、24 ノードリンクダイアグラム、26a,26c 図形形状、26d 文字、28a〜28e 湾曲した弧、30a〜30c 文字、32a 矢印、34 インクストローク、60 ユーザーインターフェース、62 GUIモジュール、64 認識モジュール、64a コンセプトスケッチ認識モジュール、64b 未処理ストローク列、64c 処理(解釈)済みストローク列、64d 正式インターフェース、64e 手書き認識モジュール。

Claims (4)

  1. 入力装置により電子装置のキャンバスに描画された複数のデジタルインクストロークにより形成されたノードリンクダイアグラムに構造認識を提供する方法であって、
    関係するデジタルインクストロークを、グループ内のデジタルインクストロークの構造化された解釈を反映する複数の仮説にグループ分けするステップと、
    前記複数の仮説の信頼度スコアを計算するステップと、
    前記仮説間に制約を適用するステップと、
    前記適用された制約下で、集合的に高いスコアを割り当てられた仮説を探索するステップと、
    前記ノードリンクダイアグラムの表現として前記集合的に高いスコア割り当てを有する仮説を受理するステップであって、構造情報が前記ノードリンクダイアグラムのデジタルインクストロークに提供され、前記ノードリンクダイアグラムを電子的に編集可能にするステップと、
    を含み、
    前記グループ分けするステップにおけるインクストロークの構造化された解釈は、当該インクストロークの特徴の類似度に基づいて、関係したインクストロークを決定することを含み、
    前記複数の仮説のそれぞれは、予め定義された複数のオブジェクトタイプのうちの1つを表し、各仮説が表すオブジェクトタイプは、当該仮説に係るデジタルインクストロークグループが表し得ると解釈されるオブジェクトの種類であり
    前記複数の仮説の信頼度スコアを計算するステップにおいて、各仮説が固有のスコアと支持コンテキストスコアとを有
    前記固有のスコアは、デジタルインクストロークグループのデジタルインクストロークどうしの類似度と、前記仮説によって表されるオブジェクトタイプに対する、定められた基準とに基づき、
    前記支持コンテキストスコアは、囲みデジタルインクストロークの信頼度スコアに基づく
    法。
  2. (i)前記ノードリンクダイアグラムにデジタルインクストロークを追加するステップと、
    (ii)前記ノードリンクダイアグラムからデジタルインクストロークを削除するステップと、
    (iii)前記ノードリンクダイアグラムから文字項目のオブジェクト表現を削除するステップと、
    (iv)前記ノードリンクダイアグラムから図形項目のオブジェクト表現を削除するステップと、
    (v)前記ノードリンクダイアグラムのデジタルインクストロークを選択するユーザの入力を受け付けるステップと、
    (vi)前記ノードリンクダイアグラムの文字項目のオブジェクト表現を選択するユーザの入力を受け付けるステップと、
    (vii)前記ノードリンクダイアグラムの図形項目のオブジェクト表現を選択するユーザの入力を受け付けるステップと、
    のうち少なくとも1つのステップと、
    前記ノードリンクダイアグラムの漸増的構造認識を実行するステップと、
    を更に含む、請求項1に記載の方法。
  3. 前記漸増的構造認識が、
    追加、削除、およびユーザの入力の受付のうち少なくとも一つに起因して新たな構造仮説を生成するステップと、
    (i)前記新たな構造仮説を既存の構造仮説グループとグループ化するステップ、及び、(ii)新たな構造仮説グループを形成するステップ、のうちの1つのステップと、
    影響を受けたグループを認識するステップと、
    前記受理された仮説から形成された階層束を更新するステップと、
    を含む、請求項2に記載の方法。
  4. 前記適用された制約下で、集合的に高いスコアを割り当てられた仮説を探索するステップが、探索アルゴリズムを使用して前記仮説の仮説束を探索するステップを更に含み、
    前記探索アルゴリズムは、前記複数の仮説の部分集合であって当該部分集合に含まれる仮説の前記信頼度スコアの合計が最大である部分集合を最適な仮説束として、最適な、ほぼ最適な、あるいは最良に達成可能な、仮説束を探索するアルゴリズムである
    請求項1に記載の方法。
JP2008071456A 2007-03-23 2008-03-19 ノードリンクダイアグラムに構造認識を提供する方法 Expired - Fee Related JP4820382B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/726,796 US7907141B2 (en) 2007-03-23 2007-03-23 Methods and processes for recognition of electronic ink strokes
US11/726,796 2007-03-23

Publications (3)

Publication Number Publication Date
JP2008243204A JP2008243204A (ja) 2008-10-09
JP2008243204A5 JP2008243204A5 (ja) 2011-05-06
JP4820382B2 true JP4820382B2 (ja) 2011-11-24

Family

ID=39364046

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008071456A Expired - Fee Related JP4820382B2 (ja) 2007-03-23 2008-03-19 ノードリンクダイアグラムに構造認識を提供する方法

Country Status (3)

Country Link
US (1) US7907141B2 (ja)
EP (1) EP1973062B1 (ja)
JP (1) JP4820382B2 (ja)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070177804A1 (en) * 2006-01-30 2007-08-02 Apple Computer, Inc. Multi-touch gesture dictionary
TW200813806A (en) * 2006-06-27 2008-03-16 Ibm Method, program, and data processing system for modifying shape of display object
US9311528B2 (en) * 2007-01-03 2016-04-12 Apple Inc. Gesture learning
US8413075B2 (en) * 2008-01-04 2013-04-02 Apple Inc. Gesture movies
US8166119B2 (en) * 2008-04-25 2012-04-24 T-Mobile Usa, Inc. Messaging device for delivering messages to recipients based on availability and preferences of recipients
US9508059B2 (en) 2008-04-25 2016-11-29 T-Mobile Usa, Inc. Messaging device having a graphical user interface for initiating communication to recipients
WO2010009072A1 (en) * 2008-07-14 2010-01-21 Medtronic, Inc. Improved interface for implantable medical device programming
US8464167B2 (en) * 2008-12-01 2013-06-11 Palo Alto Research Center Incorporated System and method for synchronized authoring and access of chat and graphics
US20100163316A1 (en) * 2008-12-30 2010-07-01 Microsoft Corporation Handwriting Recognition System Using Multiple Path Recognition Framework
US8648878B2 (en) 2009-03-16 2014-02-11 Microsoft Corporation Inferring diagram structure through implicit shape relationships
JP5620113B2 (ja) * 2010-01-26 2014-11-05 シャープ株式会社 構造化データ処理装置、構造化データ処理方法、その方法を実現するためのプログラムおよび記録媒体
US8261213B2 (en) 2010-01-28 2012-09-04 Microsoft Corporation Brush, carbon-copy, and fill gestures
US9519356B2 (en) * 2010-02-04 2016-12-13 Microsoft Technology Licensing, Llc Link gestures
US9454304B2 (en) 2010-02-25 2016-09-27 Microsoft Technology Licensing, Llc Multi-screen dual tap gesture
US20110307840A1 (en) * 2010-06-10 2011-12-15 Microsoft Corporation Erase, circle, prioritize and application tray gestures
US9400592B2 (en) 2012-03-26 2016-07-26 Sharp Laboratories Of America, Inc. Methods, systems and apparatus for digital-marking-surface space and display management
JP2014032632A (ja) * 2012-08-06 2014-02-20 Toshiba Corp 電子機器、方法、およびプログラム
KR101413987B1 (ko) * 2012-10-02 2014-07-01 (주)이스트소프트 마인드맵 사용자 인터페이스를 포함하는 전자기기, 및 이를 이용한 마인드맵 작성방법
US9519414B2 (en) * 2012-12-11 2016-12-13 Microsoft Technology Licensing Llc Smart whiteboard interactions
US9727535B2 (en) * 2013-06-11 2017-08-08 Microsoft Technology Licensing, Llc Authoring presentations with ink
JP2015049618A (ja) * 2013-08-30 2015-03-16 株式会社東芝 手書き文書処理装置、手書き文書処理方法及び手書き文書処理プログラム
US9317937B2 (en) 2013-12-30 2016-04-19 Skribb.it Inc. Recognition of user drawn graphical objects based on detected regions within a coordinate-plane
US9384403B2 (en) 2014-04-04 2016-07-05 Myscript System and method for superimposed handwriting recognition technology
US9524440B2 (en) 2014-04-04 2016-12-20 Myscript System and method for superimposed handwriting recognition technology
JP6408273B2 (ja) * 2014-07-17 2018-10-17 シャープ株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
US20160048318A1 (en) * 2014-08-15 2016-02-18 Microsoft Technology Licensing, Llc Detecting selection of digital ink
KR20160062565A (ko) 2014-11-25 2016-06-02 삼성전자주식회사 디바이스 및 디바이스의 필기 컨텐트 제공 방법
US9864479B2 (en) 2014-12-19 2018-01-09 Xerox Corporation System and method for managing and reviewing document integration and updates
US9639183B2 (en) * 2015-04-20 2017-05-02 Wacom Co., Ltd. System and method for bidirectional communication between stylus and stylus sensor controller
US20180101724A1 (en) * 2015-06-04 2018-04-12 Mowdo System and method for capturing and interpreting images into triple diagrams
US9898841B2 (en) 2015-06-29 2018-02-20 Microsoft Technology Licensing, Llc Synchronizing digital ink stroke rendering
US10387034B2 (en) * 2015-09-03 2019-08-20 Microsoft Technology Licensing, Llc Modifying captured stroke information into an actionable form
US10210383B2 (en) 2015-09-03 2019-02-19 Microsoft Technology Licensing, Llc Interacting with an assistant component based on captured stroke information
US10324618B1 (en) * 2016-01-05 2019-06-18 Quirklogic, Inc. System and method for formatting and manipulating digital ink
US10067731B2 (en) 2016-01-05 2018-09-04 Quirklogic, Inc. Method and system for representing a shared digital virtual “absolute” canvas
US10755029B1 (en) 2016-01-05 2020-08-25 Quirklogic, Inc. Evaluating and formatting handwritten input in a cell of a virtual canvas
US10129335B2 (en) 2016-01-05 2018-11-13 Quirklogic, Inc. Method and system for dynamic group creation in a collaboration framework
US9904447B2 (en) 2016-01-08 2018-02-27 Microsoft Technology Licensing, Llc Universal inking support
US10228775B2 (en) * 2016-01-22 2019-03-12 Microsoft Technology Licensing, Llc Cross application digital ink repository
US10713304B2 (en) * 2016-01-26 2020-07-14 International Business Machines Corporation Entity arrangement by shape input
US9940513B2 (en) 2016-03-11 2018-04-10 Microsoft Technology Licensing, Llc Intuitive selection of a digital stroke grouping
US10817169B2 (en) * 2016-10-14 2020-10-27 Microsoft Technology Licensing, Llc Time-correlated ink
WO2018085929A1 (en) * 2016-11-09 2018-05-17 Quirklogic, Inc. Method and system for erasing an enclosed area on an interactive display
US10895954B2 (en) * 2017-06-02 2021-01-19 Apple Inc. Providing a graphical canvas for handwritten input
US10761719B2 (en) * 2017-11-09 2020-09-01 Microsoft Technology Licensing, Llc User interface code generation based on free-hand input
US10866997B2 (en) * 2018-03-26 2020-12-15 Kapow Technologies, Inc. Determining functional and descriptive elements of application images for intelligent screen automation
JP2019023888A (ja) * 2018-09-20 2019-02-14 シャープ株式会社 情報処理装置、情報処理プログラムおよび情報処理方法
KR20210073196A (ko) * 2019-12-10 2021-06-18 삼성전자주식회사 필기 입력을 처리하는 방법 및 그 장치
CN115202553B (zh) * 2021-04-14 2024-05-28 广州视源电子科技股份有限公司 白板应用的控制方法、装置和电子设备

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5252951A (en) * 1989-04-28 1993-10-12 International Business Machines Corporation Graphical user interface with gesture recognition in a multiapplication environment
US5953735A (en) * 1991-03-20 1999-09-14 Forcier; Mitchell D. Script character processing method and system with bit-mapped document editing
US5539427A (en) * 1992-02-10 1996-07-23 Compaq Computer Corporation Graphic indexing system
US5485565A (en) * 1993-08-04 1996-01-16 Xerox Corporation Gestural indicators for selecting graphic objects
US5553224A (en) * 1993-08-04 1996-09-03 Xerox Corporation Method for dynamically maintaining multiple structural interpretations in graphics system
US5522022A (en) 1993-11-24 1996-05-28 Xerox Corporation Analyzing an image showing a node-link structure
US5528290A (en) * 1994-09-09 1996-06-18 Xerox Corporation Device for transcribing images on a board using a camera based board scanner
DE69533074T2 (de) * 1994-09-09 2004-09-16 Xerox Corp. Verfahren zum Interpretieren handgeschriebener schematischer Benutzerschittstellenbefehle
US5687364A (en) * 1994-09-16 1997-11-11 Xerox Corporation Method for learning to infer the topical content of documents based upon their lexical content
US5659766A (en) * 1994-09-16 1997-08-19 Xerox Corporation Method and apparatus for inferring the topical content of a document based upon its lexical content without supervision
US5798769A (en) * 1996-08-15 1998-08-25 Xerox Corporation Method and apparatus for maintaining links between graphic objects in a free-form graphics display system
JPH10187185A (ja) * 1996-12-25 1998-07-14 Fuji Xerox Co Ltd 言語処理装置および方法
US6380954B1 (en) * 1998-02-09 2002-04-30 Reuters, Ltd. Method and system for layout of objects within a perimeter using constrained interactive search
US6766494B1 (en) * 1998-06-15 2004-07-20 Fuji Xerox Co., Ltd. Method and system for creating ad-hoc links from free-form ink
US6377710B1 (en) * 1998-11-25 2002-04-23 Xerox Corporation Method and apparatus for extracting the skeleton of a binary figure by contour-based erosion
US6411733B1 (en) * 1998-11-25 2002-06-25 Xerox Corporation Method and apparatus for separating document image object types
US6459442B1 (en) 1999-09-10 2002-10-01 Xerox Corporation System for applying application behaviors to freeform data
US6651048B1 (en) * 1999-10-22 2003-11-18 International Business Machines Corporation Interactive mining of most interesting rules with population constraints
EP1277104A1 (en) 2000-03-30 2003-01-22 Ideogramic APS Method for gesture based modeling
US7139004B2 (en) 2002-01-25 2006-11-21 Xerox Corporation Method and apparatus to convert bitmapped images for use in a structured text/graphics editor
US7136082B2 (en) * 2002-01-25 2006-11-14 Xerox Corporation Method and apparatus to convert digital ink images for use in a structured text/graphics editor
US6903751B2 (en) * 2002-03-22 2005-06-07 Xerox Corporation System and method for editing electronic images
US7036077B2 (en) 2002-03-22 2006-04-25 Xerox Corporation Method for gestural interpretation in a system for selecting and arranging visible material in document images
US7123770B2 (en) 2002-05-14 2006-10-17 Microsoft Corporation Incremental system for real time digital ink analysis
US20040090439A1 (en) 2002-11-07 2004-05-13 Holger Dillner Recognition and interpretation of graphical and diagrammatic representations
CA2470930A1 (en) * 2003-08-21 2005-02-21 Microsoft Corporation Electronic ink processing
CN1669047A (zh) * 2003-08-21 2005-09-14 微软公司 电子墨水处理
US8074184B2 (en) * 2003-11-07 2011-12-06 Mocrosoft Corporation Modifying electronic documents with recognized content or other associated data
US7729538B2 (en) 2004-08-26 2010-06-01 Microsoft Corporation Spatial recognition and grouping of text and graphics
US7400771B2 (en) 2004-09-21 2008-07-15 Microsoft Corporation System and method for connected container recognition of a hand-drawn chart in ink input
US7581052B1 (en) 2005-08-22 2009-08-25 Sun Microsystems, Inc. Approach for distributing multiple interrupts among multiple processors
US7725493B2 (en) * 2007-03-23 2010-05-25 Palo Alto Research Center Incorporated Optimization method and process using tree searching operation and non-overlapping support constraint requirements

Also Published As

Publication number Publication date
US7907141B2 (en) 2011-03-15
EP1973062A1 (en) 2008-09-24
US20080231635A1 (en) 2008-09-25
JP2008243204A (ja) 2008-10-09
EP1973062B1 (en) 2011-10-26

Similar Documents

Publication Publication Date Title
JP4820382B2 (ja) ノードリンクダイアグラムに構造認識を提供する方法
JP5284662B2 (ja) ペンコンピュータシステム内にノードリンクダイアグラムを生成および編集する方法および装置
US7725493B2 (en) Optimization method and process using tree searching operation and non-overlapping support constraint requirements
US11709992B2 (en) System and method for collaborative ink management
RU2702270C2 (ru) Обнаружение выбора рукописного фрагмента
KR102473543B1 (ko) 디지털 잉크 상호작용을 위한 시스템 및 방법
KR102677199B1 (ko) 그래픽 객체를 선택하기 위한 방법 및 대응하는 디바이스
KR102470522B1 (ko) 핸드라이팅된 다이어그램 커넥터들의 관리를 위한 시스템 및 방법
US11880648B2 (en) Automatic semantic labeling of form fields with limited annotations
JP2020140450A (ja) 構造化データ生成方法および構造化データ生成装置
Schwarz et al. An architecture for generating interactive feedback in probabilistic user interfaces
Malik et al. Reimagining application user interface (UI) design using deep learning methods: Challenges and opportunities
Carcangiu et al. Gesture modelling and recognition by integrating declarative models and pattern recognition algorithms
Sun et al. Informal user interface for graphical computing
JP2024084393A (ja) 情報処理装置、情報処理装置の制御方法、及びプログラム
WO2017118609A1 (en) System and method for digital ink interactivity

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110316

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110316

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20110316

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20110401

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110722

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20110809

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110902

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140909

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees