(57)【要約】【課題】  インク入力内のリストを検出するシステムおよび方法を提供すること。【解決手段】  インク入力内のアイテムの黒丸付きまたは番号付きのリストなどのリストを検出できるディテクタを設ける。行のグループを、まず、候補リストとして選択することができる。次に、インデントレベルクラスタ化および黒丸検出を実行して、リストの構造を判定することができる。黒丸検出は、黒丸パートナを検出することによって実行することができ、黒丸パートナは、同一のインデントレベルにある、類似する機能を有する黒丸候補から始まることができる行の対である。行の対の黒丸候補の機能を使用して、行の対が黒丸パートナである確度を判定することができる。最後に、リストアイテムの間の関係を含めて、リストの構造を判定することができる。【選択図】  図２
2005100416.tif 000002
【特許請求の範囲】
【請求項１】
インク入力内のリストを検出するコンピュータシステムであって、
インク入力を受け取るリストディテクタと、
インク入力内の手書き行のインデントを検出する、前記リストディテクタに動作可能に結合されたインデントディテクタと、
インク入力内の手書き行内の黒丸を検出する、前記リストディテクタに動作可能に結合された黒丸ディテクタと
を含むことを特徴とするコンピュータシステム。
【請求項２】
前記リストディテクタにインク入力を送る、前記リストディテクタに動作可能に結合されたインクパーサをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項３】
前記インク入力内のリストを形成することができる行のグループを選択する、前記リストディテクタに動作可能に結合されたリスト候補ディテクタをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項４】
前記インク入力内のリストの構造を提供する、前記リストディテクタに動作可能に結合されたリスト構造ディテクタをさらに含むことを特徴とする請求項１に記載のシステム。
【請求項５】
前記黒丸が、英数字黒丸を含むことを特徴とする請求項１に記載のシステム。
【請求項６】
前記黒丸が、グラフィカル黒丸を含むことを特徴とする請求項１に記載のシステム。
【請求項７】
請求項１に記載のシステムを含むコンピュータ実行可能コンポーネントを有することを特徴とするコンピュータ可読媒体。
【請求項８】
インク入力内のリストを検出する方法であって、
インク入力を受け取ること、
前記インク入力内のリストに関するリスト検出を実行すること、および
出力としてリスト構造を生成すること
を含むことを特徴とする方法。
【請求項９】
前記インク入力内でライティングをドローイングから区別するために前記インク入力を解析することをさらに含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記リスト検出を実行することは、前記インク入力内のリストを形成することができる行のグループを選択するためにリスト候補識別を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記リスト検出を実行することは、前記インク入力内の手書き行のインデントを検出するためにインデント検出を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記リスト検出を実行することは、前記インク入力内の手書き行内の黒丸を識別するために黒丸検出を実行することを含むことを特徴とする請求項８に記載の方法。
【請求項１３】
前記リスト検出を実行することは、前記インク入力内の前記リストの構造を判定することを含むことを特徴とする請求項８に記載の方法。
【請求項１４】
前記リスト候補識別を実行することは、リスト候補として選択された行の前記グループ内のすべての行をセットすることを含むことを特徴とする請求項１０に記載の方法。
【請求項１５】
前記リスト候補識別を実行することは、２つのリスト候補をマージできるかどうかを判定するために前記２つのリスト候補を選択することを含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記リスト候補識別を実行することは、リスト候補を形成するために選択された行の前記グループからの２つの行をマージすることを含むことを特徴とする請求項１０に記載の方法。
【請求項１７】
前記リスト候補識別を実行することは、新しいリスト候補を形成するために前記２つの行候補をマージすることを含むことを特徴とする請求項１５に記載の方法。
【請求項１８】
前記リスト候補識別を実行することは、前記新しいリスト候補を別のリスト候補とマージすることを含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記インデント検出を実行することは、インデントレベルをグループ化するためのインデントレベルクラスタ化を含むことを特徴とする請求項１１に記載の方法。
【請求項２０】
前記インデント検出を実行することは、インデントレベルをグループ化するためにｋ−ｍｅａｎクラスタ化を実行することを含むことを特徴とする請求項１１に記載の方法。
【請求項２１】
前記インデント検出を実行することは、行のインデントレベルから平均インデントレベルまでの距離を判定することを含むことを特徴とする請求項１１に記載の方法。
【請求項２２】
前記インデント検出を実行することは、インデントレベルの平均位置を再計算することを含むことを特徴とする請求項１１に記載の方法。
【請求項２３】
前記黒丸検出を実行することは、黒丸候補として、前記リスト内の前記行の最初の単語を選択することを含むことを特徴とする請求項１２に記載の方法。
【請求項２４】
前記黒丸検出を実行することは、前記行の黒丸パートナ検出を実行することを含むことを特徴とする請求項１２に記載の方法。
【請求項２５】
前記黒丸検出を実行することは、前記行が、前記行のインデントレベルでの行の組内の黒丸パートナとして隣接する行を有するかどうかを判定し、そうである場合に、前記行の最初の単語を黒丸と考えることを含むことを特徴とする請求項１２に記載の方法。
【請求項２６】
黒丸検出を実行することは、前記行が黒丸パートナを有するかどうかを判定し、そうでない場合に、前記行のインデントレベルの行の組が黒丸パートナのサブセットを有するかどうかを判定することを含むことを特徴とする請求項１２に記載の方法。
【請求項２７】
前記インデントレベルセット内の行数に対する黒丸パートナの前記サブセット内の行数の比が、閾値を超えるかどうかを判定し、そうである場合に、前記行の最初の単語が黒丸であると考えることをさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記インデントレベルセット内の行数に対する黒丸パートナの前記サブセット内の行数の比が、閾値を超えるかどうかを判定し、そうでない場合に、前記行の最初の単語が黒丸でないと考えることをさらに含むことを特徴とする請求項２６に記載の方法。
【請求項２９】
前記行の黒丸パートナ検出を実行することは、行の対の前記最初の単語の機能を判定することを含むことを特徴とする請求項２４に記載の方法。
【請求項３０】
前記行の対の前記最初の単語の機能を判定することは、行の前記対の前記最初の単語を囲む境界ボックスの高さおよび幅の差を判定することを含むことを特徴とする請求項２９に記載の方法。
【請求項３１】
前記境界ボックスの前記幅の最大値を判定すること、
行の前記対の前記最初の単語のストローク長の差を判定すること、および
行の前記対の各最初の単語と次の単語との間の距離を判定すること
をさらに含むことを特徴とする請求項３０に記載の方法。
【請求項３２】
行の前記対の前記最初の単語の機能を使用して、行の前記対が黒丸パートナである確度を判定することをさらに含むことを特徴とする請求項２９に記載の方法。
【請求項３３】
前記確度が閾値を超えるかどうかを判定し、そうである場合に、行の前記対が黒丸パートナであると考えることをさらに含むことを特徴とする請求項３２に記載の方法。
【請求項３４】
前記インク入力内の前記リストの前記構造を判定することは、リストアイテムを識別することを含むことを特徴とする請求項１３に記載の方法。
【請求項３５】
前記インク入力内の前記リストの構造を判定することは、リストアイテム間の関係を判定することを含むことを特徴とする請求項１３に記載の方法。
【請求項３６】
前記インク入力内の前記リストの構造を判定することは、前記リストの構造を作成することを含むことを特徴とする請求項１３に記載の方法。
【請求項３７】
前記インク入力内の前記リストの構造を判定することは、前記リストの前記構造から、前記リストが有効なリストであることを判定することを含むことを特徴とする請求項１３に記載の方法。
【請求項３８】
前記有効なリストは、少なくとも２つの黒丸を有するリストを含むことを特徴とする請求項３７に記載の方法。
【請求項３９】
請求項８に記載の方法を実行するコンピュータ実行可能命令を有するコンピュータ可読媒体。
【請求項４０】
インク入力内のリストを検出するコンピュータシステムであって、
インク入力を受け取る手段と、
前記インク入力内のリストに関するリスト検出を実行する手段と、
出力としてリスト構造を生成する手段と
を含むことを特徴とするコンピュータシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にコンピュータシステムに関し、より詳細には、インク入力内のリストを検出する改良されたシステムおよび方法に関する。
【背景技術】
【０００２】
リストを検出する能力は、ユーザがインク入力またはインクノートを使用してコンピュータに直接に書くか描くことができるようにするのに重要である。現在のハードウェアおよびソフトウェアは、手書きを表すインクを適度に取り込むことができる場合があるが、現在は、インク入力内のアイテムのリストなど、手書き構造の意味を同様に検出し、表すことができない。その結果、ユーザは、その代わりに、メニューベースのアプリケーションプログラムを使用して、リストなどのテキストの構造を作成する場合がある。ユーザが入力テキストをフォーマットする際に選択し、かつ／または使用するために、さまざまな構造を、そのようなアプリケーションプログラムによって提示することができる。たとえば、ワードプロセッシングアプリケーションプログラムに、黒丸（ｂｕｌｌｅｔ）付きまたは番号付きのアイテムのリストとしてテキストをフォーマットするメニューオプションが含まれる場合がある。
【０００３】
手書きオブジェクトの認識に焦点を合わせた研究は、今日まで、重要な結果を生んでいない。たとえば、特定の順序で作られる特定の数のストロークから円または箱などの単純な幾何形状を認識できる増分認識アルゴリズム（ｉｎｃｒｅｍｅｎｔａｌ  ｒｅｃｏｇｎｉｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）が、使用されてきた。しかし、そのような増分アルゴリズムは、特定の手書きオブジェクトを認識するために、ストロークの順序に頼り、かつ／または特定の個数のストロークを前提とする。そのような手法は、複数の理由から、堅牢になることができない。まず第１に、増分アルゴリズムのどれもが、ストロークのどの集合が、これらが特定の構造または形状を表すので、一緒に属するかを判断するというグループ化問題を解決しない。ある構造または形状に属するストロークを一緒にグループ化する能力がないので、増分アルゴリズムは、リストなどのマルチストローク構造に対処することができない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
必要なものは、所与の構造を形成するのに必要なストローク入力順序および／またはストローク数に敏感でないものとすることができる、手書き構造の意味を検出し、表現する形である。そのようなシステムおよび方法は、マルチストローク手書き構造を認識でき、手書き構造を表すストロークのどの集合が一緒に属するかを判断できなければならない。
【課題を解決するための手段】
【０００５】
簡単に言えば、本発明は、インク入力内のリストを検出するシステムおよび方法を提供する。このために、インク入力内の黒丸付きまたは番号付きのアイテムのリストなどのリストを検出できるディテクタ（ｄｅｔｅｃｔｏｒ）を提供する。ディテクタに、インク入力内のリストを形成できる行のグループを選択するリスト候補ディテクタ、リスト内の手書き行のインデントレベルを検出するリストインデントディテクタ、リストの手書き行内の黒丸を検出する黒丸ディテクタ、およびリストの構造を提供するリスト構造ディテクタを含めることができる。
【０００６】
本発明は、まずリスト候補識別を実行して、インク入力内のリストを形成する可能性がある行のグループを選択することによって、リストなどの手書き構造を検出し、その意味を表現することができる。インデントレベルクラスタ化を候補リストの行ごとに実行して、候補リストのインデントレベルをグループ化することもできる。その後、黒丸検出を実行して、グラフィカル黒丸または英数字黒丸など、インク入力内の手書き行に含まれる黒丸を識別することができる。最後に、リストアイテムの間の関係を含むリストの構造を判定でき、少なくとも２つの黒丸付きアイテムを含む有効なリストになるように、候補リストを確認することができる。
【０００７】
一実施形態で、類似する機能を有する黒丸候補から始まることができる同一インデントレベルの行の対である黒丸パートナを検出することによって、黒丸検出を実行することができる。行の対の黒丸候補の機能を使用して、その行の対が黒丸パートナである確度を判定することができる。黒丸候補の機能の確度が閾値を超える場合に、行の対を黒丸パートナと考えることができ、黒丸候補を有効な黒丸と考えることができる。そうでない場合に、黒丸候補の行が、黒丸パートナのサブセットを有するインデントレベルのメンバであり、インデントレベルセットの行数に対する黒丸パートナのセット内の行数の比が、閾値より高いと判定される場合に、候補黒丸を有効な黒丸と考えることができる。
【０００８】
有利なことに、このシステムおよび方法は、手書き構造を形成する可能性があるストローク入力順序およびストローク数に敏感でない。他の長所は、図面と共に解釈される時の下記の詳細な説明から明白になる。
【発明を実施するための最良の形態】
【０００９】
例示的なオペレーティング環境
図１に、本発明を組み込むことができる適切なコンピューティングシステム環境１００の例を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の１例にすぎず、本発明の使用または機能性の範囲に関する制限を提案することを意図されたものではない。コンピューティング環境１００を、例示的な動作環境１００に示されたコンポーネントのいずれかまたはその組合せに関する依存性または要件を有するものと解釈してもならない。
【００１０】
本発明は、多数の他の汎用のまたは特殊目的のコンピューティングシステム環境またはコンピューティング構成と共に動作する。本発明と共に使用するのに適する可能性がある周知のコンピューティングシステム、コンピューティング環境、および／またはコンピューティング構成の例に、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはラップトップデバイス、タブレットデバイス、ヘッドレスサーバ、マルチプロセッサシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラマブル民生用電子機器、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境、および類似物が含まれるが、これに制限はされない。
【００１１】
本発明を、プログラムモジュールなど、コンピュータによって実行されるコンピュータ実行可能命令の全般的な文脈で説明することができる。一般に、プログラムモジュールには、特定のタスクを実行するか特定の抽象データ型を実施する、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明を、通信ネットワークを介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境で実践することもできる。分散コンピューティング環境では、プログラムモジュールを、メモリストレージデバイスを含むローカルおよび／またはリモートのコンピュータストレージメディアに配置することができる。
【００１２】
図１を参照すると、本発明を実施する例示的システムに、コンピュータ１１０の形の汎用コンピューティングデバイスが含まれる。コンピュータ１１０のコンポーネントに、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含むさまざまなシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１が含まれる。システムバス１２１は、メモリバスまたはメモリコントローラ、周辺バス、およびさまざまなバスアーキテクチャのいずれかを使用するローカルバスを含む複数のタイプのバス構造のいずれかとすることができる。制限ではなく例として、そのようなアーキテクチャに、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびメザニンバスとも称するＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バスが含まれる。
【００１３】
コンピュータ１１０に、通常は、さまざまなコンピュータ可読メディアが含まれる。コンピュータ可読メディアは、コンピュータ１１０によってアクセスできるすべての使用可能メディアとすることができ、コンピュータ可読メディアには、揮発性メディアおよび不揮発性メディア、ならびに取外し可能メディアおよび取外し不能メディアの両方が含まれる。制限ではなく例として、コンピュータ可読メディアに、コンピュータストレージメディアと通信メディアが含まれる。コンピュータストレージメディアには、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなど、情報のストレージに関するあらゆる方法またはテクノロジで実施される、揮発性および不揮発性の、取外し可能および取り外し不能のメディアが含まれる。コンピュータストレージメディアには、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、または他のメモリテクノロジ、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）、または他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイス、あるいは所望の情報を保管するのに使用でき、コンピュータ１１０によってアクセスできる他のメディアが含まれるが、これに制限はされない。通信メディアによって、通常は、搬送波または他のトランスポート機構などの変調されたデータ信号内でコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータが実施され、通信メディアには、すべての情報配信メディアが含まれる。用語「変調されたデータ信号」は、信号内で情報をエンコードする形でその１つまたは複数の特性を設定または変更された信号を意味する。制限ではなく例として、通信メディアに、有線ネットワークまたは直接配線接続などの有線メディアと、音響、ＲＦ、赤外線、および他の無線メディアなどの無線メディアが含まれる。上記のいずれかの組合せも、コンピュータ可読メディアの範囲に含まれなければならない。
【００１４】
システムメモリ１３０に、読取専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２など、揮発性メモリおよび／または不揮発性メモリの形のコンピュータ可読メディアが含まれる。起動中などにコンピュータ１１０内の要素の間での情報の転送を助ける基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が、通常はＲＯＭ１３１に保管される。ＲＡＭ１３２には、通常は、処理ユニット１２０から即座にアクセス可能および／または処理ユニット１２０によって現在操作されているデータおよび／またはプログラムモジュールが含まれる。制限ではなく例として、図１に、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示す。
【００１５】
コンピュータ１１０に、他の取外し可能／取外し不能、揮発性／不揮発性コンピュータストレージメディアを含めることもできる。例としてのみ、図１に、取外し不能不揮発性磁気メディアから読み取るか、これに書き込むハードディスクドライブ１４１、取外し可能不揮発性磁気ディスク１５２から読み取るか、これに書き込む磁気ディスクドライブ１５１、ＣＤ  ＲＯＭまたは他の光メディアなどの取外し可能不揮発性光ディスク１５６から読み取るかこれに書き込む光ディスクドライブ１５５を示す。例示的オペレーティング環境で使用することができる他の取外し可能／取外し不能、揮発性／不揮発性コンピュータストレージメディアに、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、ソリッドステートＲＡＭ、ソリッドステートＲＯＭ、および類似物が含まれるが、これに制限はされない。ハードディスクドライブ１４１は、通常、インターフェース１４０などの取外し不能メモリインターフェースを介してシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通常は、インターフェース１５０などの取外し可能メモリインターフェースによってシステムバス１２１に接続される。
【００１６】
上で説明し、図１に示したドライブおよびそれに関連するコンピュータストレージメディアは、コンピュータ１１０に、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータのストレージを提供する。図１では、たとえば、ハードディスクドライブ１４１が、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を保管するものとして図示されている。これらのコンポーネントを、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同一または異なるもののいずれかとすることができることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、最低限でもこれらが異なるコピーであることを示すために、本明細書では別の符号を与えられている。ユーザは、タブレットまたは電子ディジタイザ１６４、マイクロホン１６３、キーボード１６２、および通常はマウス、トラックボール、またはタッチパッドと称するポインティングデバイス１６１などの入力デバイスを介してコンピュータ１１０にコマンドおよび情報を入力することができる。図１に示されていない他の入力デバイスに、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナ、あるいは、バイオメトリックセンサ、環境センサ、位置センサ、または他のタイプのセンサを含むデバイスを含む他のデバイスを含めることができる。上記および他の入力デバイスは、しばしば、システムバスに結合されたユーザ入力インターフェース１６０を介して処理ユニット１２０に接続されるが、パラレルポート、ゲームポート、またはＵＳＢ（ｕｎｉｖｅｒｓａｌ  ｓｅｒｉａｌ  ｂｕｓ）など、他のインターフェースおよびバス構造によって接続することができる。モニタ１９１または他のタイプのディスプレイデバイスも、ビデオインターフェース１９０などのインターフェースを介してシステムバス１２１に接続することができる。モニタ１９１は、タッチスクリーンパネルまたは類似物と一体化することもできる。タブレットタイプのパーソナルコンピュータなど、モニタおよび／またはタッチスクリーンパネルを、コンピューティングデバイス１１０が組み込まれるハウジングに物理的に結合できることに留意されたい。さらに、コンピューティングデバイス１１０などのコンピュータに、スピーカ１９５およびプリンタ１９６など、出力周辺インターフェース１９３などを介して接続できる他の周辺出力デバイスを含めることもできる。
【００１７】
コンピュータ１１０は、リモートコンピュータ１８０など、１つまたは複数のリモートコンピュータへの論理接続を使用して、ネットワーク化された環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイス、または他の一般的なネットワークノードとすることができ、リモートコンピュータ１８０には、通常、コンピュータ１１０に関して上で説明した要素の多数またはすべてが含まれるが、図１にはメモリストレージデバイス１８１だけを示した。図１に示された論理接続に、ローカルエリアネットワーク（ＬＡＮ）１７１および広域ネットワーク（ＷＡＮ）１７３が含まれるが、他のネットワークも含めることができる。そのようなネットワーキング環境は、オフィス、会社全体のコンピュータネットワーク、イントラネット、およびインターネットでありふれたものである。ＬＡＮネットワーキング環境で使用される時に、コンピュータ１１０は、ネットワークインターフェースまたはネットワークアダプタ１７０を介してＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される時に、コンピュータ１１０に、通常、インターネットなどのＷＡＮ１７３を介する通信を確立する、モデム１７２または他の手段が含まれる。モデム１７２は、内蔵または外付けとすることができるが、ユーザ入力インターフェース１６０または他の適当な機構を介してシステムバス１２１に接続することができる。ネットワーク化された環境では、コンピュータ１１０に関して示したプログラムモジュールまたはその一部を、リモートメモリストレージデバイスに保管することができる。制限ではなく例として、図１に、メモリデバイス１８１に常駐するものとしてリモートアプリケーションプログラム１８５を示す。図示のネットワーク接続が、例示的であり、コンピュータの間の通信リンクを確立する他の手段を使用できることを諒解されたい。
【００１８】
インク入力内のリストの検出
本発明は、一般に、インク入力内のリストを検出するシステムおよび方法を対象とする。ユーザは、手書き入力に関する制限なしに、自由にリストを描くことができる。リストは、多数のストロークを有することができ、ストロークの入力順序は、任意とすることができ、その結果、このシステムおよび方法は、入力としてどのインクでも受け入れることができる。本明細書で使用されるリストは、少なくとも２つの黒丸付きリストアイテムを伴う構造を意味し、リストアイテムには、少なくとも１つの行が含まれ、黒丸を含めることができる。
【００１９】
具体的には、このシステムおよび方法によって、候補リストとしてリストのグループを選択することができる。次に、リストの構造を判定するために、インデントレベルクラスタ化および黒丸検出を実行することができる。最後に、リストアイテムの間の関係を含む、リストの構造を判定することができる。理解されるように、本明細書に記載のさまざまなブロック図、流れ図、およびシナリオは、例にすぎず、本発明が適用される多数の他のシナリオがある。
【００２０】
図面の図２に移ると、入力インク内のリストの検出に関するシステムコンポーネントの例示的アーキテクチャを一般に表すブロック図が示されている。当業者は、この図に示されたブロック内で実施される機能性を、別々のコンポーネントとして実施でき、あるいはブロックの複数またはすべての機能性を、単一のコンポーネントで実施できることを理解するであろう。たとえば、リスト候補ディテクタ２０６の機能性を、インクパーサ２０２に含めることができる。あるいは、リスト構造ディテクタ２１２の機能性を、別々のコンポーネントとして実施することができる。
【００２１】
インクパーサ２０２は、ドローイングオブジェクトを伴うインクを含めて、すべてのインクを受け入れることができる。インクパーサ２０２に、動作可能に結合されるリストディテクタ２０４を含めることができる。一般に、インクパーサ２０２およびリストディテクタ２０４は、カーネルコンポーネント、アプリケーションプログラム、リンクされたライブラリ、オブジェクトなど、実行可能ソフトウェアコードのどのタイプにもすることができる。リストディテクタ２０４には、インク入力から候補リストを形成することができる行のグループを選択する動作可能に結合されたリスト候補ディテクタ２０６、リストの行内の黒丸を検出する動作可能に結合された黒丸ディテクタ２０８、リスト内の行のインデントレベルを検出する動作可能に結合されたリストインデントディテクタ２１０、およびリストアイテムの間の関係を含めて、リストの構造を提供する動作可能に結合されたリスト構造ディテクタ２１２を含めることができる。これらのコンポーネントのそれぞれを、カーネルコンポーネント、アプリケーションプログラム、リンクされたライブラリ、オブジェクト、または他のタイプの実行可能ソフトウェアコードなど、あらゆるタイプの実行可能ソフトウェアコードとすることもできる。
【００２２】
図３に、インク入力内のリストの検出およびリスト構造の生成のために行われるステップを一般に表す流れ図を示す。ステップ３０２で、リストなどの手書き構造を伴うインクを含めて、どのインクでも解析することができる。たとえば、一実施形態で、入力としてインクのページを受け入れ、解析することができる。この実施形態では、たとえば、インクパーサが、ページのインクの先見的知識（ｐｒｉｏｒｉ  ｋｎｏｗｌｅｄｇｅ）を有しないものとすることができる。したがって、単語グループ化、ライティング／ドローイング分類（ｗｒｉｔｉｎｇ／ｄｒａｗｉｎｇ  ｃｌａｓｓｉｆｉｃａｔｉｏｎ）、およびドローインググループ化などの基本的なアルゴリズムを実行することができる。単語グループ化を実行するために、ストロークを、単語、行、およびブロックの階層にグループ化することができる。それを行うために、単語グループ化プロセスに、ストロークの機能抽出を含めて、距離、幾何学的な不同性および線形性、ならびに他のストローク機能を取り込むことができる。単語グループ化プロセスに、時間的情報に従ってストロークをグループ化するために動的計画法を含めることもできる。単語グループ化プロセスに、空間的情報に従ってストロークをグループ化するためにクラスタ化を含めることもできる。グループ内で識別された単語、行、およびブロックは、必ずしも、実際の意味論的な単語、行、およびブロックに対応しない場合がある。実際、これらのグループに、リストなどの手書き構造のストロークが含まれる場合がある。
【００２３】
ライティング／ドローイング分類を実行するために、ライティングをドローイングから区別することができるさまざまな機能を識別することができる。たとえば、曲率、密度、および他の手書きモデル機能などの単一単語機能を使用して、ライティングをドローイングから区別することができる。一実施形態で、時間的コンテキスト機能および空間的コンテキスト機能などのコンテキスト機能を使用して、ライティングをドローイングから区別することができる。さまざまな機能のそれぞれを、ファジイ関数にマッピングすることができ、ライティングとドローイングの間の分類を、ファジイ関数の組合せに従って判定することができる。
【００２４】
単語グループ化およびライティング／ドローイング分類を実行した後に、ドローインググループ化を実行することによって、ドローイングストロークを良く編成することもできる。ドローインググループ化を実行するために、ドローイングストロークを、その間の空間的関係に従って独立のオブジェクトにグループ化することができる。効率的なグリッドベースの手法を使用して、インクストロークを適当なサイズのイメージグリッドにあてはめることができる。イメージグリッドにラベルを付けて、接続されたコンポーネントを見つけることができる。各接続されたコンポーネントが、ドローイングオブジェクトに対応することができる。次に、ヒューリスティックルールを適用して、ドローイングオブジェクトを調整することができる。
【００２５】
インクパーサによって生成されたライティング行およびドローイングストロークを使用して、ステップ３０４でリスト検出を実行して、手書きオブジェクトがリストであるかどうかを判定し、そうである場合に、リストの構造を提供することができる。リスト検出では、まず、リスト候補識別を実行して、候補リストを識別する。次に、リストの構造を判定するために、インデントレベルクラスタ化および黒丸検出を実行することもできる。最後に、リストの構造を判定することができる。ステップ３０６で、リスト構造を、出力として生成することができる。リスト構造は、リストの構造的関係を表す有向非周期グラフなどの階層構造とすることができる。
【００２６】
図４に、リストの検出を実行する際に使用されるインク入力内の手書きオブジェクトの構造的関係を一般に表す例示的な図を示す。ルート４０２は、インク入力のページなど、ライティングと、ドローイングオブジェクト４０４および４０６などの１つまたは複数のドローイングオブジェクトを含む可能性がある、インク入力を表すことができる。ライティングは、構造的に段落４０８によって表すことができ、段落４０８は、行４１０から作られるものとすることができ、行４１０は、ストローク４１４によって形成される単語４１２を有する。ドローイングオブジェクト４０４は、テキストなどの関連コンテンツを有する場合があり、このテキストは、ストローク４１４によって形成される単語４１２を有する行４１０からなるものとすることができる段落４０８によって構造的に表すことができる。インク入力４０２内で、リストなどの手書き構造を検出し、その構造を判定することができる。
【００２７】
図５に、リストの検出のために行われるステップの一実施形態を一般に表す流れ図を示す。ステップ５０２で、リスト候補識別を実行して、インク入力内のリストを形成することができる行のグループを選択することができる。ステップ５０４で、リスト候補の行ごとにインデントレベルクラスタ化を実行して、リスト候補のインデントレベルをグループ化することもできる。行のインデントは、本明細書では、行の左端からリストの左端までの距離として定義される。インデントを、レベルにグループ化することができ、同一レベルのインデントは、類似する。ステップ５０６で、黒丸検出を実行して、黒丸を識別することができる。黒丸は、１つまたは複数のストロークからなるものとすることができ、行を開始することができる。黒丸には、一般に２つのタイプすなわち、グラフィカル黒丸と英数字黒丸がある。グラフィカル黒丸には、ドット、ダッシュ、円、長方形などを含めることができる。グラフィカル黒丸の形状は、通常は類似する。英数字黒丸には、アルファベット文字、数字、またはアルファベット文字および／または数字の組合せを含めることができる。通常、英数字黒丸のシーケンスは、増分式である。同一のインデントレベルの黒丸は、通常は同一のタイプである。最後に、ステップ５０８で、リストアイテムの間の関係を含めて、リストの構造を判定することができる。その後、少なくとも２つの黒丸付きアイテムが含まれる場合に、候補リストが有効であることを確認することができる。
【００２８】
図６に、リスト候補識別のために行われるステップの実施形態を一般に表す流れ図を示す。ステップ６０２で、リストディテクタへのライティング行入力のそれぞれを、行候補としてセットすることができる。一実施形態で、リストディテクタは、一時的にそのような行の１つのグループだけを扱うことができる。ステップ６０４で、リスト候補としてセットされた行のグループに１つのリスト候補だけがあるかどうかを判定することができる。そうである場合には、リスト候補識別を終了することができる。そうでない場合には、ステップ６０６で、リスト候補の対を生成することができる。ステップ６０８で、リスト候補の対を、生成されたリスト候補の対から選択することができる。次に、ステップ６１０で、リスト候補の対をマージするかどうかを決定することができる。両方のリストの行の角度がほぼ同一であり、リストの隣接する行の間の垂直距離が小さい場合に、ステップ６１２で、リスト候補を新しいリスト候補にマージすることができ、その後、処理はステップ６０４に戻ることができる。そうでない場合には、ステップ６１４で、マージすることができるリスト候補の別の対があるかどうかを判定することができる。そうである場合には、処理はステップ６０８に戻って、リスト候補の対を選択することができる。そうでない場合には、リスト候補識別の処理を終了することができる。
【００２９】
図７に、リスト候補を一般に表す例示的な図を示す。３つのリスト候補すなわち、リスト１  ７０２、リスト２  ７０４、およびリスト３  ７０６が示されている。リスト１  ７０２をリスト２  ７０４とマージすることはできない。というのは、この両方のリストの行の角度の差が大きすぎるからである。リスト２  ７０４とリスト３  ７０６は、一緒にマージすることができない。というのは、リスト２  ７０４の最後の行と、リスト３  ７０６の最初の行の間の垂直距離が大きすぎるからである。長方形７０８は、一実施形態でインクパーサによって実行される単語グループ化によって作られるブロックグループ化を表すものとすることができる。リスト候補に、たとえばリスト３  ７０６の３つのブロックグループ化などのブロックグループ化を含めることができる。
【００３０】
図８に、インデントレベルクラスタ化を実行するために行われるステップの実施形態を一般に示す流れ図を示す。候補リストの行を、各行のインデントに基づいてインデントレベルグループにクラスタ化することができる。それを行うために、各行のインデントを計算し、次に、インデントを複数のインデントレベルグループにクラスタ化する。リストアイテムのインデントレベルは、その第１行のインデントレベルと等しいものとすることができる。
【００３１】
一実施形態で、使用されるインデントレベルクラスタ化方法を、パターン認識で周知のｋ−ｍｅａｎクラスタ化アルゴリズムとすることができる。ｃ個のレベルを与えられて、ｍｉが、レベルΓｉの平均インデント、
【００３２】
【数１】
2005100416.tif 000003
【００３３】
、ｙが、行のインデント、Ｎｉが、レベルΓｉの行数、Ｊｅが、すべてのレベルの二乗誤差の和である。クラスタ化の目標は、
【００３４】
【数２】
2005100416.tif 000004
【００３５】
として定義されるＪｅを最小にすることである。
【００３６】
ステップ８０２で、インデントの初期ステップサイズｌに対して、平均インデントレベルをｍｉ＝ｉ×ｌとして初期化することができ、検査される行のカウンタに、検査される行数をセットすることができる。ユーザが異なるサイズのインクノートを書くことができるというシナリオをサポートするために、一実施形態で、正規化されたインデントを使用することができる。たとえば、インデントを、リスト候補の行の平均高さによって正規化することができ、これによって、インデントの初期ステップサイズｌを、１．４×（行の平均高さ）とすることができる。
【００３７】
ステップ８０４で、次の行ｙ∈Γｉを検索することができる。次に、ステップ８０６で、ｙのインデントから各レベルの平均インデントまでの距離を判定することができる。ステップ８０８で、ｙ∈Γｉに最も近いインデントレベルΓｊを見つけることができる。ステップ８１０で、最も近いインデントレベルが現在のインデントレベルと等しい場合に、ステップ８１６で、検査する行のカウンタを減分し、その行に関するインデントクラスタ化は終了である。そうでない場合には、ステップ８１２で、行を、最も近いインデントレベルに移動することができる。ステップ８１４で、各インデントレベルの平均位置を再検査することができ、検査する行のカウンタに、検査される行の数をセットすることができる。ステップ８２０で、行のカウンタが０であるかどうかを判定することができる。そうでない場合には、この処理はステップ８０４に戻って、次の行ｙ∈Γｉを得る。そうである場合には、このレベルのインデントに関して、処理が終了する。
【００３８】
図９に、インデントレベルクラスタ化の後の候補リストの例示的な図を示す。候補リスト９０２は、６つの行を有する。インデントレベルクラスタ化の終了時に、行１、３、および５が、インデントレベル１にあり、行２、４、および６が、インデントレベル２にある。楕円９０４によって、インデントレベル１の行の黒丸を囲み、楕円９０６によって、インデントレベル２の行の黒丸を囲んでいる。
【００３９】
黒丸検出は、インデントレベルクラスタ化の後に実行することができる。黒丸検出では、リストのアイテムに黒丸が含まれるかどうかを判定することができる。したがって、リストの各行の最初の単語を、黒丸検出処理の黒丸候補と考えることができる。経験的観察に基づいて、リストの２つの行が同一のインデントレベルを有し、黒丸から始まる場合に、この２つの行の黒丸は、通常は、グラフィカル黒丸または英数字黒丸など、同一の記号である。その結果、リスト内の同一のインデントレベルの２つの行は、この２つの行の黒丸候補が類似する機能を有する場合に、黒丸から始まる可能性が高い。したがって、黒丸パートナは、本明細書では、類似する機能を有する黒丸候補から始まる可能性があるリスト内の同一インデントレベルの２つの行と定義される。２つのそのような行の一方が、他方の黒丸パートナである。黒丸パートナが、隣接する行である場合もそうでない場合もあることに留意されたい。黒丸検出では、黒丸パートナの黒丸候補が、黒丸であると考えることができる。
【００４０】
図１０に、黒丸検出を実行するために行われるステップの実施形態を一般に表す流れ図を示す。ステップ１００２で、黒丸候補の行について、黒丸パートナ検出を実行することができる。ステップ１００４で、同一のインデントレベルの黒丸候補の隣接する行を検査して、隣接する行が黒丸候補の行の黒丸パートナであるかどうかを判定することができる。そうである場合には、ステップ１０１０で、黒丸候補を黒丸と考えることができる。黒丸パートナが検出されなかった場合には、ステップ１００６で、黒丸候補の行が、黒丸パートナのサブセットを有するインデントレベルセットのメンバであるかどうかを判定することができる。そうでない場合には、ステップ１０１２で示されているように、候補黒丸が黒丸でないと考えることができる。黒丸候補の行が、黒丸パートナのサブセットを有するインデントレベルセットのメンバであり、インデントレベルセット内の行の数（Ｓ（Ｉ））に対する黒丸パートナの組の行の数（Ｂ（Ｉ））の比が、ステップ１００８で閾値より高いと判定される場合に、ステップ１０１０に示されているように、候補黒丸を黒丸と考えることができる。そうでない場合には、ステップ１０１２に示されているように、候補黒丸を黒丸でないと考えることができる。一実施形態で、この閾値を、経験的に０．６６にセットすることができる。当業者は、他の閾値を使用できることを理解するであろう。
【００４１】
図１１に、黒丸パートナ検出を実行するために行われるステップを示す。一実施形態で、黒丸パートナ検出によって、所与のインデントレベルの行のすべての対が黒丸パートナであるかどうかを検査することができる。有利なことに、行対による黒丸の検査によって、黒丸検出の処理の堅牢さを改善することができる。たとえば、黒丸候補として奇形の（ｍａｌｆｏｒｍｅｄ）黒丸に出会うと、同一リスト内の他の黒丸の検出の失敗をもたらさない可能性がある。
【００４２】
黒丸パートナ検出処理の解析速度を改善するために、行の最初の単語として現れる可能性がある一般的な単語から黒丸を検出するために、単純な機能を使用することができる。この機能には、黒丸候補を囲む境界ボックスの幅および高さを使用することを含めることができる。たとえば、グラフィックス黒丸および番号付き黒丸の境界ボックスのサイズは、通常は類似するが、行の最初の単語として現れる可能性がある一般的な単語の境界ボックスのサイズは、劇的に異なる可能性がある。さらに具体的に言うと、黒丸の境界ボックスは、しばしば、行の最初の単語として現れる可能性がある一般的な単語の境界ボックスほど幅広くはなく、それほど高くない。当業者は、黒丸候補と行の次の単語の間の距離など、他の単純な機能を使用できることを諒解するであろう。通常、黒丸から行の次の単語までの距離は、しばしば、行内の２つの一般的な単語の間の距離より大きい。
【００４３】
一実施形態で、黒丸を検出する５つの機能すなわち、Δｈ＝｜ｈ（Ｒａ）−ｈ（Ｒｂ）｜、Δｗ＝｜ｗ（Ｒａ）−ｗ（Ｒｂ）｜、ｗ＝ｍａｘ（ｗ（Ｒａ）、ｗ（Ｒｂ））、Δｓ＝ｍｉｎ（ｓａ、ｓｂ）／ｍａｘ（ｓａ、ｓｂ）、およびｄ＝ｍｉｎ（ｄａ、ｄｂ）を使用して、２つの行が黒丸パートナである確率を計算することができる。ステップ１１０２で、２つの黒丸候補ａおよびｂについて、それぞれａおよびｂの境界ボックスである長方形Ｒａおよび長方形Ｒｂを、ａおよびｂが現れるリストの角度位置で判定することができる。
【００４４】
ステップ１１０４で、境界ボックスの機能の差を判定することができる。たとえば、ステップ１１０６で、黒丸候補の境界ボックスの高さの差Δｈ＝｜ｈ（Ｒａ）−ｈ（Ｒｂ）｜を判定することができ、ここで、ｈ（Ｒａ）およびｈ（Ｒｂ）は、それぞれ長方形Ｒａおよび長方形Ｒｂの高さである。あるいは、ステップ１１０８で、黒丸候補の境界ボックスの幅の差Δｗ＝｜ｗ（Ｒａ）−ｗ（Ｒｂ）｜を判定することができ、ここで、ｗ（Ｒａ）およびｗ（Ｒｂ）は、それぞれ長方形Ｒａおよび長方形Ｒｂの幅である。あるいは、ステップ１１１０で、黒丸候補の境界ボックスの幅の最大値ｗ＝ｍａｘ（ｗ（Ｒａ）、ｗ（Ｒｂ））を判定することができる。
【００４５】
ステップ１１１２で、黒丸候補のストローク長の差Δｓ＝ｍｉｎ（ｓａ、ｓｂ）／ｍａｘ（ｓａ、ｓｂ）を判定することができ、ここでｓａおよびｓｂは、それぞれ黒丸候補ａおよびｂの総ストローク長である。ステップ１１１４で、行の次の単語までの距離ｄ＝ｍｉｎ（ｄａ、ｄｂ）を判定することができ、ここで、ｄａおよびｄｂは、各黒丸候補ａおよびｂとそのめいめいの行の次の単語の間の距離である。
【００４６】
次に、ステップ１１１６で、行の対が黒丸パートナである確度を、黒丸候補の機能を使用して判定することができる。一実施形態では、機能を組み合わせることができるファジイ関数を構築して、２つの行が黒丸パートナである確度を判定することができる。この関数は、次のように定義することができる。
【００４７】
【数３】
2005100416.tif 000005
【００４８】
ここで、Δｈ０、Δｗ０、ｗ０、Δｓ０、ｄ０は、５つの機能の閾値であり、α、β、γ、η、κは、決定境界のソフトさ（ｓｏｆｔｎｅｓｓ）を調整するのに使用することができる。この関数は、すべての機能が０から無限大に増える時に、単調に減少するものとすることができる。いずれかの機能がその閾値を超える場合に、この関数は、０．５未満になることができる。関数値は、すべての機能が０の時に１になり、すべての機能が無限大に近づく時に０に達することができる。決定境界は、一実施形態でｆ（Δｈ、Δｗ、ｗ、Δｓ、ｄ）＝０．５として定義することができる。この場合に、
【００４９】
【数４】
2005100416.tif 000006
【００５０】
である。ステップ１１１８で、ファジイ関数の確度が０．５の閾値より大きいかどうかを判定することができる。そうである場合に、ステップ１１２０で、この２つの行を黒丸パートナと考えることができる。そうでない場合には、ステップ１１２２で、この２つの行を黒丸パートナでないと考えることができる。
【００５１】
黒丸検出の後に、インデントレベルクラスタ化および黒丸検出の結果を使用して、リスト構造判定を実行することができる。たとえば、各行のインデントレベルを使用して、どの行がリストアイテムを形成するかを判定することができ、識別されたリストアイテムの間の関係を判定することもできる。リストの構造は、黒丸の存在によっても判定することができる。図１２に、リスト構造判定を実行するために行われるステップの実施形態を一般に表す流れ図を示す。
【００５２】
ステップ１２０２で、どの行がリストアイテムを形成するかを判定することによって、リストアイテムを識別する。リストアイテム構成に複数のルールがある場合がある。たとえば、リストアイテムに、黒丸から始まる１行だけを含めることができる。リストアイテムが、黒丸から始まる行を有する場合に、その行は、リストアイテムの第１行にならなければならない。リストアイテムが、黒丸がある行を有する場合に、その行のインデントレベルは、そのリストアイテムの他の行のインデントレベル以下でなければならない。リストアイテムが、黒丸のある行を有しない場合には、そのリストアイテムの各行のインデントレベルは、同一でなければならない。また、リストアイテムの隣接する行の間の垂直距離は、非常に大きくなってはならない。
【００５３】
リストアイテムを識別したならば、ステップ１２０４で、リストアイテムの間の関係を判定することができる。リストアイテムの間の関係を判定する複数のルールがある場合がある。たとえば、リストアイテムは、任意の数のサブアイテムを有するか、一切有しないことができる。リストアイテムのインデントレベルは、そのサブアイテムのインデントレベル未満とすることができる。インデントレベルは、リストアイテムのサブレベルと同一とすることができる。リストアイテムは、１つの親アイテムだけを有するか、全く有しないことができる。
【００５４】
ステップ１２０６で、リストアイテムからリスト候補構造を作成することができる。リスト候補構造は、有向非周期グラフまたはツリーなど、ツリーの特定のレベルでリスト候補内の特定のインデントレベルのリストアイテムを含むことができる、階層構造とすることができる。最後に、ステップ１２０８で、リスト候補に少なくとも２つの黒丸がある場合に、リスト候補が有効なリストであると判定することができる。
【００５５】
図１３に、候補リスト構造の一実施形態の例示的な図を示す。候補リスト構造１３０２に、行の左上角に番号を付けられた複数の行が含まれ、リストアイテムの複数の例が示されている。たとえば、行２は、リストアイテム１３０４を形成することができる。行４および５は、リストアイテム１３０６を形成することができる。というのは、行４だけが黒丸から始まり、行４が、候補リストアイテムの最初の行でもあるからである。さらに、行４および５のインデントレベルは、同一のインデントレベル２  １３１６である。行６および７は、それぞれ同一のインデントレベル、インデントレベル２  １３１６であるが、それぞれが別々のリストアイテム１３０８および１３１０を形成する。というのは、これらの行のそれぞれが、黒丸から始まり、リストアイテムには、黒丸から始まる行を１つだけ含めることができるからである。行８および９は、それぞれ同一のインデントレベル、インデントレベル３  １３１８であり、各行が、それぞれ個別に別々のリストアイテム１３１２および１３１４を形成する。というのは、これらの行のそれぞれが、黒丸から始まり、リストアイテムに、黒丸から始まる行を１つだけ含めることができるからである。
【００５６】
リストを検出し、その構造を判定したならば、手書きオブジェクトの構造的関係を理解することができる。図１４は、ドローイングオブジェクトのリスト検出を実行した後の、インク入力内の手書きオブジェクトの構造的関係を一般に表す例示的な図である。ルート１４０２は、インク入力のページなど、リスト１４０４およびリスト１４０６などの１つまたは複数の構造を含むことができる、インク入力を表すものとすることができる。リストに、リストアイテム１４０８および１４１０などの１つまたは複数のリストアイテムを含めることができる。リストアイテムに、行１４１２および１４１４など、１つまたは複数の行と、黒丸１４１８など、１つまたは複数の黒丸を含めることができる。各行に、ストローク１４２０によって形成できる単語１４１６など、１つまたは複数の単語によって構造的に表すことができるテキストを含めることができる。各黒丸１４１８は、ストローク１４２０によって形成することができる。
【００５７】
すべてのリストが、説明されたシステムおよび方法によって検出された後に、インク入力内の手書きオブジェクトを、完全に検出し、その構造を認識することができる。本発明を使用することによって、ユーザは、手書き入力に関する制限なしで、リストを自由に描くことができる。リストは、複数のストロークを有することができ、ストロークの入力順序は、任意とすることができ、その結果、このシステムおよび方法は、すべてのインクを入力として受け入れることができる。リストアイテムの間の関係を含めて、リストの構造を認識することができる。
【００５８】
上述の詳細な説明からわかるように、本発明は、リストの検出のシステムおよび方法を提供する。有利なことに、このシステムおよび方法は、手書きリストを形成することができるストローク入力順序およびストローク数に敏感でない。さらに、提供されるシステムおよび方法は、柔軟であり、拡張可能である。理解されるように、本発明を使用して、リストの構造の認識を含めて、アイテムの黒丸付きまたは番号付きのリストなど、インク入力内のすべてのリストを検出することができる。したがって、この方法およびシステムによって、現在のコンピューティングに必要な、かなりの長所および利益がもたらされる。
【００５９】
本発明は、さまざまな修正形態および代替構成を許すが、そのある例証する実施形態を、図面に示し、上で詳細に説明した。しかし、本発明を、開示された特定の形態に制限することが意図されておらず、逆に、その意図が、本発明の趣旨および範囲に含まれるすべての修正形態、代替構成、および均等物を含むことであることを理解されたい。
【図面の簡単な説明】
【００６０】
【図１】本発明を組み込むことができるコンピュータシステムを一般に表すブロック図である。
【図２】本発明の一態様による、入力インク内のリストの検出に関するシステムコンポーネントの例示的アーキテクチャを一般に表すブロック図である。
【図３】本発明の一態様による、インク入力内のリストの検出およびリスト構造の生成のために行われるステップを一般に表す流れ図である。
【図４】本発明の一態様による、リストの検出を実行する際に使用されるインク入力内の手書きオブジェクトの構造的関係を一般に表す例示的な図である。
【図５】本発明の一態様による、リスト検出のために行われるステップの一実施形態を一般に表す流れ図である。
【図６】本発明の一態様による、リスト候補識別のために行われるステップの実施形態を一般に表す流れ図である。
【図７】本発明の一態様による、リスト候補を一般に表す例示的な図である。
【図８】本発明の一態様による、インデントレベルクラスタ化を実行するために行われるステップの実施形態を一般に示す流れ図である。
【図９】本発明の一態様による、識別レベルクラスタ化の後の候補リストを一般に表す例示的な図である。
【図１０】本発明の一態様による、黒丸検出を実行するために行われるステップの実施形態を一般に表す流れ図である。
【図１１】本発明の一態様による、黒丸パートナ検出を実行するために行われるステップの実施形態を一般に表す流れ図である。
【図１２】本発明の一態様による、リスト構造判定を実行するために行われるステップの実施形態を一般に表す流れ図である。
【図１３】本発明の一態様による、候補リスト構造の一実施形態を一般に表す例示的な図である。
【図１４】本発明の一態様による、ドローイングオブジェクトのリスト検出を実行した後の、インク入力内の手書きオブジェクトの構造的関係を一般に表す例示的な図である。
【符号の説明】
【００６１】
２０２  インクパーサ
２０４  リストディテクタ
２０６  リスト候補ディテクタ
２０８  黒丸ディテクタ
２１０  リストインデントディテクタ
２１２  リスト構造ディテクタ
【図１】
2005100416.tif 000007
【図２】
2005100416.tif 000008
【図３】
2005100416.tif 000009
【図４】
2005100416.tif 000010
【図５】
2005100416.tif 000011
【図６】
2005100416.tif 000012
【図７】
2005100416.tif 000013
【図８】
2005100416.tif 000014
【図９】
2005100416.tif 000015
【図１０】
2005100416.tif 000016
【図１１】
2005100416.tif 000017
【図１２】
2005100416.tif 000018
【図１３】
2005100416.tif 000019
【図１４】
2005100416.tif 000020