(57)【特許請求の範囲】
【請求項１】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成手段と、
前記ストローク群生成手段により生成されたストローク群に係る文字認識処理を実行するストローク群処理手段と、を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理装置。
【請求項２】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成手段と、
前記ストローク群生成手段により生成されたストローク群に係る文字認識処理を実行するストローク群処理手段と、を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理装置。
【請求項３】
前記ストローク群処理手段は、前記ストローク群生成手段により生成されたストローク群が一字に相当するか一行に相当するかを判定する判定手段と、前記判定手段により一字に相当すると判定されたストローク群に係る文字認識処理を実行する一字認識手段と、前記判定手段により一行に相当すると判定されたストローク群に係る文字認識処理を実行する一行認識手段とを備えることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記一字認識手段は、前記ストローク群を回転させる回転手段と、前記ストローク群を回転させたストローク群から文字を認識する文字認識手段と、前記ストローク群を異なる角度回転させたストローク群のそれぞれから認識された文字に基づいて、前記ストローク群が相当する文字を決定する文字決定手段とを備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記一字認識手段は、前記ストローク群を異なる角度回転させる複数の回転手段と、前記ストローク群を異なる角度回転させたストローク群のそれぞれから文字を認識する複数の文字認識手段と、前記ストローク群を異なる角度回転させたストローク群のそれぞれから認識された文字に基づいて、前記ストローク群が相当する文字を決定する文字決定手段とを備えることを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記一行認識手段は、前記ストローク群を構成する文字の文字区切りを検出する文字区切り検出手段と、文字区切りに基づき前記ストローク群を構成する文字の筆記方向を検出する筆記方向検出手段と、筆記方向に基づき前記ストローク群を回転させる回転手段と、前記ストローク群を回転させたストローク群から文字を認識する文字認識手段とを備えることを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記一行認識手段は、前記ストローク群を構成する文字の文字区切りを検出する文字区切り検出手段と、文字区切りで区切られた部分毎に前記ストローク群を回転させる回転手段と、文字区切りで区切られた部分毎に前記ストローク群を回転させたストローク群の各部分から各文字を認識する文字認識手段と、前記ストローク群を異なる角度回転させたストローク群のそれぞれの各部分から認識された各文字に基づき、前記ストローク群が相当する文字を決定する文字決定手段とを備えることを特徴とする請求項３に記載の情報処理装置。
【請求項８】
前記文字決定手段は、前記ストローク群を異なる角度回転させたストローク群から認識された各文字の文字認識結果の確信度に基づき、前記ストローク群が相当する文字を決定することを特徴とする請求項４、５、又は７に記載の情報処理装置。
【請求項９】
前記文字決定手段は、前記ストローク群を異なる角度回転させたストローク群から認識された各文字の角度変化に応じての出現頻度に基づき、前記ストローク群が相当する文字を決定することを特徴とする請求項４、５、又は７に記載の情報処理装置。
【請求項１０】
前記文字決定手段は、前記ストローク群を異なる角度回転させたストローク群から認識された各文字の角度変化に対しての安定度に基づき、前記ストローク群が相当する文字を決定することを特徴とする請求項４、５、又は７に記載の情報処理装置。
【請求項１１】
前記判定手段は、前記ストローク群を包含する矩形を算出し、包含される矩形の縦横比に基づき前記ストローク群が一字に相当するか一行に相当するかを判定することを特徴とする請求項３乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記判定手段は、一字に相当する又は一行に相当すると判定した複数のストローク群について、同一の一行を構成すると認定したストローク群同士を同一のストローク群として併合することを特徴とする請求項３乃至１０のいずれか１項に記載の情報処理装置。
【請求項１３】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成手段を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理装置。
【請求項１４】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成手段を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理装置。
【請求項１５】
前記ストローク群生成手段は、前記手書き文字データを構成する複数のストロークの中から、前記ストローク群を生成するのに利用する複数のストロークを、ストロークが筆記された時間に基づき選別することを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成工程と、
前記ストローク群生成工程で生成されたストローク群に係る文字認識処理を実行するストローク群処理工程と、を前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理方法。
【請求項１７】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成工程と、
前記ストローク群生成工程で生成されたストローク群に係る文字認識処理を実行するストローク群処理工程と、を前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理方法。
【請求項１８】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成工程を、前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理方法。
【請求項１９】
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成工程を、前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする情報処理方法。
【請求項２０】
コンピュータに、請求項１６から１９のいずれか１項に記載の情報処理方法を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
手書き文字に係る文字認識技術が進展している。手書き文字に係る文字認識技術が応用されている機器の一例としては、電子手帳が挙げられる。
文字認識処理の実行対象となる手書き文字の入力方式としては、枠あり入力方式と枠なし入力方式とが存在する。処理の容易性からいうと枠あり入力方式の方が優れているといえるが、入力の自由度から言うと枠なし入力方式の方が優れているといえる。
【特許文献１】特開２００２−１６３６０７号公報
【特許文献２】特開２００２−０６５３４８号公報
【特許文献３】特開２００２−１７５４９８号公報
【特許文献４】特開平１０−０４９６２４号公報
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｊａｉｓｔ．ａｃ．ｊｐ／〜ｙ−ｓｕｗａ／ｐｌｏｔ．ｈｔｍｌ
【非特許文献２】ｈｔｔｐ：／／ｗｗｗ．ｊａｉｓｔ．ａｃ．ｊｐ／〜ｙ−ｓｕｗａ／Ｐｌｏｔ．ｊａｖａ
【発明の開示】
【発明が解決しようとする課題】
【０００３】
手書き文字に係る文字認識処理で問題となるのが、手書き文字の認識率である。手書き文字の認識率に影響を与える要因の一例としては、手書き文字が記入される角度が挙げられる。手書き文字が真直ぐに記入されるか斜めに記入されるかで、手書き文字の認識結果が変わってしまうことがあるのである。
【０００４】
本発明は、上述の実情を考慮してなされたものであって、手書き文字に係る文字認識処理にて、手書き文字が記入される角度が手書き文字の認識率に与える影響を抑える情報処理装置、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００５】
かかる目的を達成するために、本発明は以下の特徴を有する。
本発明にかかる情報処理装置は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成手段と、
前記ストローク群生成手段により生成されたストローク群に係る文字認識処理を実行するストローク群処理手段と、を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【０００６】
本発明にかかる情報処理装置は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成手段と、
前記ストローク群生成手段により生成されたストローク群に係る文字認識処理を実行するストローク群処理手段と、を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【０００７】
本発明にかかる情報処理装置は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成手段を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【０００８】
本発明にかかる情報処理装置は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成手段を備え、
前記ストローク群生成手段は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【０００９】
本発明にかかる情報処理方法は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成工程と、
前記ストローク群生成工程で生成されたストローク群に係る文字認識処理を実行するストローク群処理工程と、を前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【００１０】
本発明にかかる情報処理方法は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークからストローク群を生成するストローク群生成工程と、
前記ストローク群生成工程で生成されたストローク群に係る文字認識処理を実行するストローク群処理工程と、を前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【００１１】
本発明にかかる情報処理方法は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成工程を、前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の径の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の径の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【００１２】
本発明にかかる情報処理方法は、
手書き文字をデータ化した手書き文字データに係る情報処理を実行する情報処理装置で行う情報処理方法であって、
手書き文字データを構成する複数のストロークから文字認識処理の実行対象となるストローク群を生成するストローク群生成工程を、前記情報処理装置が行い、
前記ストローク群生成工程は、前記ストロークを構成する全ての点を包含し、且つ、面積最小の楕円形状を算出し、該算出した楕円形状同士が連結されている複数のストロークから前記ストローク群を生成し、
前記楕円形状同士が他の楕円形状を介さずに直に連結している場合は、前記楕円形状同士の面積の比率が所定の範囲内である場合に、前記楕円形状同士の連結を認め、
前記楕円形状同士が他の楕円形状を介して連結している場合は、連結している各楕円形状同士の面積の比率が全て所定の範囲内である場合に、前記楕円形状同士の連結を認めることを特徴とする。
【００１３】
本発明にかかるプログラムは、
上記記載の情報処理方法をコンピュータに実行させることを特徴とする。
【発明の効果】
【００２５】
本発明は、手書き文字に係る文字認識処理にて、手書き文字が記入される角度が手書き文字の認識率に与える影響を抑えることを可能にする。
【発明を実施するための最良の形態】
【００２６】
図１は、本発明の実施例に該当するＰＣ（パーソナルコンピュータ）１０１を表す。図１のＰＣ１０１には、デジタイザ１０２とスキャナ１０３が接続されている。デジタイザ１０２は、筆跡を感知して筆跡を２次元座標データに変換する装置である。これにより、手書き文字の筆跡を座標データ化することができる。スキャナ１０３は、原稿を走査して原稿から２次元画像データを読み取る装置である。これにより、原稿に記入された手書き文字を画像データ化（ビットマップデータ化）することができる。
【００２７】
ＰＣ１０１は、図１のように、ＰＣ本体１１１と、ディスプレイ１１２と、キーボード１１３と、マウス１１４等により構成されている。ＰＣ本体１１１には、図２のように、ＣＰＵ１２１と、ＲＯＭ１２２と、ＲＡＭ１２３と、ＨＤＤ（ハードディスクドライブ）１２４と、ＭＯＤＥＭ１２５と、ＮＩＣ（ネットワークインタフェースカード）１２６等が装備されている。ＨＤＤ１２４には、図３のように、オペレーティングシステム１３１と、手書き文字をデータ化した手書き文字データに係る情報処理を実行するためのアプリケーション１３２等がインストールされている。
【００２８】
図４は、図１のＰＣ１０１に係る機能ブロック図である。ＰＣ１０１には、アプリケーション１３２に係る機能ブロックとして、手書き文字データ受信部２０１と、ストローク群生成部２０２と、ストローク群処理部２０３と、文字蓄積部２０４等が存在する。
【００２９】
手書き文字データ受信部２０１は、手書き文字データをデジタイザ１０２又はスキャナ１０３から受信する機能ブロックである。ストローク群生成部２０２は、その手書き文字データを構成する１個又は複数個のストロークからストローク群を生成する機能ブロックである。ストローク群処理部２０３は、そのストローク群に係る文字認識処理を実行する機能ブロックである。文字蓄積部２０４は、そのストローク群から認識された文字を蓄積する機能ブロックである。
【００３０】
デジタイザ１０２からの手書き文字データは、図５のように、手書き文字を座標データ化したものである。デジタイザ１０２からの手書き文字データは、図６のように、手書き文字を構成する各座標の取得順番を表す「シーケンス」と、手書き文字を構成する各座標の取得時刻を表す「タイムスタンプ」と、手書き文字を構成する各座標の「Ｘ座標」と、手書き文字を構成する各座標の「Ｙ座標」と、手書き文字を構成する各座標が取得された時点で筆記面と筆記具とが接していたか離れたかを表す「ペンダウン／ペンアップ」等で構成される。手書き文字を構成する座標につき、シーケンス順にペンダウン開始からペンダウン終了をへてペンアップまでの一連の座標群のことを「ストローク」と呼ぶ。図５と図６には、手書き文字を構成する第１，第２，第３ストロークが示されている。
【００３１】
スキャナ１０３からの手書き文字データは、図７のように、手書き文字を画像データ化したものである。ＰＣ１０１では、スキャナ１０３からの手書き文字データを構成する各画素が筆記色画素と背景色画素とに分類されて、スキャナ１０３からの手書き文字データが図８のようなデータ形式の手書き文字データに変換される。筆記色は例えば黒であり、背景色は例えば白である。筆記色は複数色でもよい。図８の手書き文字データは、手書き文字を構成する各画素（筆記色画素）の「シーケンス」と、手書き文字を構成する各画素の「Ｘ座標」と、手書き文字を構成する各画素の「Ｙ座標」等で構成される。タイムスタンプやペンダウン／ペンアップは存在しない。手書き文字を構成する筆記色画素につき、空間的に連続している一連の筆記色画素群のことを「ストローク」と看做すことにする。これによって、スキャナ１０３からの手書き文字データをデジタイザ１０２からの手書き文字データと同様に取り扱うことができるようになるのである。図７と図８には、手書き文字を構成する第１，第２，第３ストロークが示されている。
【００３２】
図９は、図４のストローク群生成部２０２に係る機能ブロック図である。ストローク群生成部２０２は、包含円算出部２１１と、連結包含円検出部２１２等によって構成されている。
【００３３】
包含円算出部２１１は、上記の手書き文字データを構成する各ストロークを包含する円を算出する機能ブロックである。デジタイザ１０２からのストロークを包含する円の一例を図１０に示す。スキャナ１０３からのストロークを包含する円の一例を図１１に示す。これらの包含円は、ストロークの最小包含円である。すなわち、ストロークを構成する全ての点を包含する円の内で最小の円である。包含円算出部２１１はここでは、ストロークの最小包含円の中心座標と半径を算出するものとする。最小包含円の計算は計算幾何学の有名問題であり、最小包含円を計算するためのアルゴリズムやプログラムとしては既存のもの（例えば非特許文献１や非特許文献２）を使用することができる。最小包含円を計算するためのプログラムの一例を図１２，１３，１４，１５に示す。このプログラムは、非特許文献２から抜粋（一部改変）したものである。
【００３４】
連結包含円検出部２１２は、上記の手書き文字データを構成するストロークを包含する円同士が連結されているかどうかを検出して、包含される円同士が連結されている複数個のストロークからストローク群を生成する機能ブロックである。手書き文字データ「あ」を構成する各ストロークを包含する円の例を図１６に示す。手書き文字データ「手書き」を構成する各ストロークを包含する円の例を図１７に示す。包含円同士が連結されているとは、包含円同士が「他の包含円を介さずに」又は「他の包含円を介して」繋がっていることを意味する。
【００３５】
すなわち、包含円Ａと包含円Ｂとが連結されていると言える場合としては、包含円Ａと包含円Ｂとが直に繋がっている（包含円Ａと包含円Ｂとが重畳している）場合と、包含円Ａと包含円Ｂとが包含円Ｃ１，Ｃ２，Ｃ３等を介して繋がっている場合とがあるのである。例えば、図１６で「あ」に係る任意の包含円同士は直に繋がっていて、図１７で「手」に係る任意の包含円と「き」に係る任意の包含円とは「書」に係る包含円等を介して繋がっていることが解る。連結包含円検出部２１２はここでは、包含円同士が連結されているストローク同士をもって一群のストローク群とするものとする。
【００３６】
また、連結包含円検出部２１２の他の実施例として、上記のストロークを包含する円の連結処理に対し、包含円の大きさに着目した条件を加えることも可能である。“包含円の大きさ”とは、包含円の径（直径、又は半径）を意味する。包含円同士が連結されているとは、包含円同士が「他の包含円を介さずに」又は「他の包含円を介して」繋がっていることを意味するが、隣接、又は、重複する２つの包含円の大きさに著しい違いがある場合は、包含円同士の連結を認めない。すなわち、二つの包含円Ａの径をｒＡと、包含円Ｂの径をｒＢとした時に、以下の条件を満たした組み合わせのみを連結対象とする。
【００３７】
（１／Ｔｈ１）  ＜  ｒＡ／ｒＢ  ＜Ｔｈ１              …  （１）
ここで、Ｔｈ１は１以上の実数である。すなわち、包含円Ａと包含円Ｂとが連結されていると言える場合としては、包含円Ａと包含円Ｂとが直に繋がっている（包含円Ａと包含円Ｂとが重畳している）場合と、包含円Ａと包含円Ｂとが包含円Ｃ１，Ｃ２，Ｃ３等を介して繋がっている場合とがあるが、包含円Ａと包含円Ｂとが直に繋がっている場合においては、包含円Ａと包含円Ｂにおいて、上記の条件を満たした場合のみ、包含円Ａと包含円Ｂとが連結されているといえる。
【００３８】
また包含円Ａと包含円Ｂとが包含円Ｃ１，Ｃ２，Ｃ３等を介して繋がっている場合においては、包含円Ａと包含円Ｃ１、包含円Ｃ１と包含円Ｃ２、包含円Ｃ２と包含円Ｃ３、包含円Ｃ３と包含円Ｂのそれぞれの重複している包含円の組み合わせすべてにおいて、上記の条件を満たした場合のみに、包含円Ａと包含円Ｂとが連結されているといえる。
連結包含円検出部２１２はここでは、包含円同士が連結されているストローク同士をもって一群のストローク群とするものとする。
【００３９】
図３１は、上記の連結包含円検出部２１２の処理のうち、包含円Ａと包含円Ｂとの間で、直接連結しているか否かの判定を行う流れを示したものである。まず、包含円Ａの半径ｒＡ、中心座標（ｘＡ，ｙＡ）と包含円Ｂの半径ｒＢ、中心座標（ｘＢ，ｙＢ）が入力される（Ｓ３０１）。
次に、この２つの包含円が重複しているか否かをチェックする（Ｓ３０２）。
具体的には、２つの包含円の半径の和と中心間の距離を比較し、中心間の距離のほうが小さければ、２つの包含円は重複している。
【００４０】
２つの包含円が重複している場合（Ｓ３０２／ＹＥＳ）、Ｓ３０３へ、２つの包含円に重複領域がない場合（Ｓ３０２／ＮＯ）、Ｓ３０５へと進む。
２つの包含円の半径の比に対して閾値による有効範囲を設定し、有効範囲内であれば（Ｓ３０３／ＹＥＳ）、「２つの包含円は連結対象である」という情報を出力する（Ｓ３０４）。
一方、有効範囲内になければ（Ｓ３０３／ＮＯ）、「２つの包含円は連結対象外である」という情報を出力する（Ｓ３０５）。
ここで有効範囲は上述の式（１）により示される。またＴｈ１→∞（無限大）の極限で、上記の式（１）の範囲の下限はゼロ、上限は無限大となり、隣接または重複する２つの包含円は無条件で連結されることになる。すなわち、全てのストロークのペアはＳ３０３を通過しＳ３０４へと進む。先の実施例による図１６、図１７の例はこの状況に相当する。
【００４１】
また、連結包含円検出部２１２の他の実施例として、上記のストロークを包含する円の連結処理に対し、２つの包含円とそれらの重複領域の面積に着目した条件を加えることも可能である。包含円同士が連結されているとは、包含円同士が「他の包含円を介さずに」又は「他の包含円を介して」繋がっていることを意味するが、隣接、又は、重複する２つの包含円の大きさに著しい違いがある場合は、包含円同士の連結を認めない。すなわち、二つの包含円の面積をＳａ，Ｓｂ、両者間の共通領域をＳａｂとした時に、以下の条件を満たした組み合わせのみを連結対象とする。
【００４２】
（１／Ｔｈ２）＜（ｓＡ−ｓＡＢ）／（ｓＡ−ｓＡＢ）＜Ｔｈ２    …  （２）
ここで、Ｔｈ２は１以上の実数である。すなわち、包含円Ａと包含円Ｂとが連結されていると言える場合としては、包含円Ａと包含円Ｂとが直に繋がっている（包含円Ａと包含円Ｂとが重畳している）場合と、包含円Ａと包含円Ｂとが包含円Ｃ１，Ｃ２，Ｃ３等を介して繋がっている場合とがあるが、包含円Ａと包含円Ｂとが直に繋がっている場合においては、包含円Ａと包含円Ｂにおいて、上記の条件を満たした場合のみ、包含円Ａと包含円Ｂとが連結されているといえる。
また包含円Ａと包含円Ｂとが包含円Ｃ１，Ｃ２，Ｃ３等を介して繋がっている場合においては、包含円Ａと包含円Ｃ１、包含円Ｃ１と包含円Ｃ２、包含円Ｃ２と包含円Ｃ３、包含円Ｃ３と包含円Ｂのそれぞれの重複している包含円の組み合わせすべてにおいて、上記の条件を満たした場合のみに、包含円Ａと包含円Ｂとが連結されているといえる。
連結包含円検出部２１２はここでは、包含円同士が連結されているストローク同士をもって一群のストローク群とするものとする。
【００４３】
図３２は上記の連結包含円検出部２１２の処理のうち、包含円Ａと包含円Ｂとの間で、直接連結しているか否かの判定を行う流れを示したものである。
まず、包含円Ａの半径ｒＡ、中心座標（ｘＡ，ｙＡ）と包含円Ｂの半径ｒＢ、中心座標（ｘＢ，ｙＢ）が入力される（Ｓ４０１）。
次に、この２つの包含円が重複しているか否かをチェックする（Ｓ４０２）。具体的な処理はＳ３０２と同様である。
２つの包含円が重複している場合（Ｓ４０２／ＹＥＳ）、二つの包含円の面積ｓＡ、ｓＢと重複部分の面積ｓＡＢを算出する（Ｓ４０３）。一方、２つの包含円に重複領域がない場合（Ｓ４０２／ＮＯ）、Ｓ４０６へと進む。
次に、Ｓ４０３にて算出された２つの包含円の面積と重複部分の面積に対して閾値による有効範囲を設定し、有効範囲内であれば（Ｓ４０４／ＹＥＳ）、「２つの包含円は連結対象である」という情報を出力する（Ｓ４０５）。
また、有効範囲内になければ（Ｓ４０４／ＮＯ）、「２つの包含円は連結対象外である」という情報を出力する（Ｓ４０６）。有効範囲は上述の式（２）により示される。
【００４４】
またＴｈ１→∞（無限大）の極限で、上記の式（２）の範囲の下限はゼロ、上限は無限大となり、隣接または重複する２つの包含円は無条件で連結されることになる。すなわち、全てのストロークのペアはＳ４０４を通過しＳ４０５へと進む。先の実施例による図１６、図１７の例はこの状況に相当する。
【００４５】
なお、ストロークを包含する（最小の）円を算出して、包含される円同士が連結されている複数個のストロークからストローク群を生成するのと同様にして、ストロークを包含する（最小の）正多角形を算出して、包含される正多角形同士が連結されている複数個のストロークからストローク群を生成するようにしてもよい。
正多角形の具体例としては、正六角形や正八角形等が挙げられる。正多角形の頂点数を増やして行くと正多角形は円に近付いて行くため、最小包含正多角形の頂点数を増やして行くと最小包含正多角形の算出結果は最小包含円の算出結果に近付いて行く。
最小包含正多角形の向きは、固定で考えても非固定で考えてもよいが、最小包含正多角形を算出しやすくするためには固定で考えるとよい。この場合、連結包含円検出部２１２に２つ目の実施例を用いる場合は、包含正多角形の最長対角線を包含円の径をｒＡ，ｒＢの代わりに用いるとよい。
また、ストロークの包含円や包含正多角形を縮小（相似変換）してストロークの最小包含円や最小包含正多角形を算出するのと同様にして、ストロークの包含図形を縮小（相似変換）してストロークの最小包含図形を算出するようにしてもよい。包含円や包含正多角形以外の包含図形を採用してもよいのである。
【００４６】
例えば、等方性を持たない楕円形状などが上げられる。上記の円・正多角形による包含図形は、どのような形状のストロークでも等方性を持っている。よって、直線上のストロークを包含する図形は、その直線を直径とする円、または対角線とする正多角形になり、包含図形のうち、ストロークの両端と接している部分以外はストロークから大きく離れてしまう（図３３）。文中の単語を強調するために目的の単語に対し下線を引いた場合に下線が長くなると、他の行への同様の下線や、余白上のコメントを構成するストロークなどと連結する可能性が増えてくる。このような現象を回避するために、包含図形として等方性を持たない図形を使用し、ストロークの形状に合わせその形状をあらわすパラメータを変化させてもよい。
【００４７】
図３４は、一つのストロークに対する楕円形状の包含図形の作成方法の一例である。まずストロークの最小外接矩形を求める。この外接矩形の縦横比と等しい長軸と短軸の比を持ち、外接矩形の各頂点を通り、且つ、外接矩形の長辺と平行の長軸を持つ楕円を考える。また楕円形状の包含図形の作成方法の別の例としては、上記の最小包含円を計算したときと同様に、ストロークを構成する全ての点を包含し、且つ面積最小の楕円形状を作成してもよい。この場合、連結包含円検出部２１２に２つ目の実施例を用いる場合は、包含楕円の長径（または短径）を包含円の径をｒＡ，ｒＢの代わりに用いるとよい。
【００４８】
さらには、包含図形同士を連結されやすくするために、ストロークの最小包含図形を算出するのではなく、ストロークの最小包含図形を一定割合（例えば２，３割）拡大した包含図形を算出するようにしてもよい。さらには、スキャナ１０３からのストロークについては、包含図形の算出対象となる点を減らすために、ストロークを構成する全ての点を包含図形の算出対象にするのではなく、ストロークの輪郭を構成する点のみを包含図形の算出対象にするようにしてもよい。
【００４９】
ここで、上記のストローク群について考察してみる。図１６の手書き文字「あ」は一字の文字に相当し、図１７の手書き文字「手書き」は三字一行の文字列に相当する。図１６や図１７から解る通り、一字の文字に相当する手書き文字データを構成するストロークの包含円同士や、二字以上一行の文字列に相当する手書き文字データを構成するストロークの包含円同士は、全ての包含円同士が連結されている可能性が高い。実際、図１６でも図１７でも図中の全ての包含円同士が連結されていることが解る。したがって、一字の文字に相当する手書き文字データを構成するストローク同士や、二字以上一行の文字列に相当する手書き文字データを構成するストローク同士は、同一のストローク群に属することになる可能性が高いのである。そのため、上記のストローク群を、文字認識処理の実行対象とするのである。
【００５０】
さらに、上記のストローク群について考察してみる。円の形状は回転不変なので、同一の手書き文字が真直ぐに記入されても斜めに記入されても、手書き文字データを構成するストロークとその包含円の位置関係は不変である。すなわち、同一の手書き文字が真直ぐに記入されても斜めに記入されても、手書き文字データを構成するどのストロークがどのストローク群に属するかは不変である。これにより、上記のストローク群に係る文字認識処理にて、手書き文字が記入される角度が手書き文字の認識率に与える影響が抑えられるのである。以上のことは、包含図形として包含円の代わりに包含正多角形を採用する場合であっても略同様である。
【００５１】
このようにして、ストローク群生成部２０２では、上記の手書き文字データを構成する１個又は複数個のストロークからストローク群が生成される。自己の包含円が他の包含円と連結されているストロークは、自己以外のストロークを含むストローク群に属することになり、自己の包含円が他の包含円と連結されていないストロークは、自己以外のストロークを含まないストローク群に属することになる。このように、手書き文字データを構成するストロークは全て、いずれか１個のストローク群に属することになる。いずれか２個以上のストローク群に属することや、いずれのストローク群にも属さないことはないものとする。ストローク群生成部２０２により生成されたストローク群は、ストローク群処理部２０３により実行される文字認識処理の実行対象となる。
【００５２】
なお、ストローク群生成部２０２は、包含円同士が連結されている複数個のストロークの中から、ストローク群を生成するのに利用する複数個のストロークを、各ストロークの筆記時刻に基づき選別するようにしてもよい。包含円同士が連結されている全てのストロークをもって一群のストローク群とするのではなく、包含円同士が連結されている全てのストロークの中から筆記時刻に基づき選別したストロークをもって一群のストローク群とするのである。例えば、ストロークＡの包含円とストロークＢの包含円とが重畳している場合につき、ストロークＡとストロークＢとを同一のストローク群に属させるか否かを、ストロークＡの筆記時刻とストロークＢの筆記時刻との差が閾値以下（又は閾値未満）か否かに基づき規定するのである。ストロークの筆記時刻については例えば、ストロークの開始座標の取得時刻としてもよいし、ストロークの終了座標の取得時刻としてもよいし、ストロークの各座標の取得時刻の平均時刻としてもよい。先に筆記されたストロークＡの筆記時刻についてはストロークの終了座標の取得時刻として、後に筆記されたストロークＢの筆記時刻についてはストロークＢの開始座標の取得時刻とするようにしてもよい。
【００５３】
なお、ストローク選別処理を実行する利点としては、異なる行に属するストローク同士が同一のストローク群に属することを避けることができることが挙げられる。異なる行に属するストローク同士の包含円同士が連結されていても、これらのストロークの筆記時刻に着目することで、これらのストローク同士が同一のストローク群に属することを避けることができるのである。これにより、ストローク群に係る文字認識処理にて、ストローク群から認識される文字が二行以上に渡る文字列である可能性を考慮しなくてもよくなるのである。ただし、ストローク選別処理によって別々のストローク群となったストローク群同士については、何らかの形で互いに関連のある可能性が高いため、何らかの形で互いを関連付けておくようにしてもよい。以上のことは、包含図形として包含円の代わりに包含正多角形を採用する場合であっても同様である。
【００５４】
図１８は、図４のストローク群処理部２０３に係る機能ブロック図である。ストローク群処理部２０３は、判定部２２１と、一字認識部２２２と、一行認識部２２３等によって構成されている。
【００５５】
判定部２２１は、上記のストローク群が一字に相当するか一行に相当するかを判定する機能ブロックである。一字認識部２２２は、一字に相当すると判定されたストローク群に係る文字認識処理を実行する機能ブロックである。一行認識部２２３は、一行に相当すると判定されたストローク群に係る文字認識処理を実行する機能ブロックである。
【００５６】
図１９は、図１８の判定部２２１に係る機能ブロック図である。判定部２２１は、包含矩形算出部２３１と、縦横比算出部２３２等により構成されている。
【００５７】
包含矩形算出部２３１は、上記のストローク群を包含する矩形を算出する機能ブロックである。ストローク群「あ」を包含する矩形の具体例を図２０に示す。ストローク群「手書き」を包含する矩形の具体例を図２１に示す。これらの包含矩形は、一群のストローク群の最小包含矩形である。すなわち、一群のストローク群を構成する全ての点を包含する矩形の内で最小の矩形である。包含矩形算出部２３１はここでは、一群のストローク群の最小包含矩形を算出するものとする。最小包含矩形の向きはここでは、非固定とするものとする。最小包含矩形の向きは、９０度分をカバーすれば３６０度分をカバーすることになる。
【００５８】
縦横比算出部２３２は、上記のストローク群を包含する矩形の縦横比を算出して、包含される矩形の縦横比に基づき上記のストローク群が一字に相当するか一行に相当するかを判定する機能ブロックである。図２０のストローク群「あ」の包含矩形（最小包含矩形）の長辺と短辺とをそれぞれａ１とｂ１とすると、縦横比（長辺短辺比）Ｒ１はａ１／ｂ１となる。Ｒ１≧１である。図２１のストローク群「手書き」の包含矩形（最小包含矩形）の長辺と短辺とをそれぞれａ２とｂ２とすると、縦横比（長辺短辺比）Ｒ２はａ２／ｂ２となる。Ｒ２≧１である。縦横比算出部２３２はここでは、最小包含矩形の長辺短辺比が閾値以下か閾値超過か（又は閾値未満か閾値以上か）に基づき一群のストローク群が一字の文字に相当するか二字以上一行の文字列に相当するかを判定するものとする。
【００５９】
ここで、上記のストローク群について考察する。図２０のストローク群「あ」は一字の文字に相当し、図２１のストローク群「手書き」は三字一行の文字列に相当する。図２０や図２１から解る通り、一字の文字に相当するストローク群の長辺短辺比は比較的「１」に近くなり、二字以上一行の文字列に相当するストローク群の長辺短辺比は比較的「１」から遠くなる可能性が高い。実際、図２０のストローク群「あ」のＲ１は比較的「１」に近くなっていて、図２１のストローク群「手書き」のＲ２は比較的「１」から遠くなっていることが解る。そのため、一字の文字に相当するストローク群の長辺短辺比と二字以上一行の文字列に相当するストローク群の長辺短辺比とを分ける閾値をもって、ストローク群が一字の文字に相当するか二字以上一行の文字列に相当するかを判定することができるのである。閾値は、１よりやや大きい程度の値（例えば１．２や１．４）とするのがよいだろう。
【００６０】
なお、判定部２２１は、一字に相当する又は一行に相当すると判定した複数個のストローク群について、同一の一行を構成すると認定したストローク群同士を同一のストローク群として併合するようにしてもよい。同一の一行を構成するストローク群同士の認定方式については、図２２の通りである。図２２Ａのように、一行のストローク群Ａ１と一行のストローク群Ａ２については、群Ａ１と群Ａ２との距離が閾値以下で、群Ａ１の最小包含矩形の角度θ１と群Ａ２の最小包含矩形の角度θ２との差が閾値以下である場合、同一の一行を構成すると認定する。図２２Ｂのように、一行のストローク群Ｂ１と一字のストローク群Ｂ２については、群Ｂ１と群Ｂ２との距離が閾値以下で、群Ｂ１の最小包含矩形の中心軸と群Ｂ２の最小包含矩形の中心座標との距離が閾値以下である場合、同一の一行を構成すると認定する。図２２Ｃのように、一字のストローク群Ｃ１，Ｃ２，Ｃ３，Ｃ４については、群Ｃ１と群Ｃ２との距離，群Ｃ２と群Ｃ３との距離，群Ｃ３と群Ｃ４との距離が閾値以下で、群Ｃ１の中心座標，群Ｃ２の中心座標，群Ｃ３の中心座標，群Ｃ４の中心座標との距離が閾値以下となる直線が存在する場合、同一の一行を構成すると認定する。このようにして、同一の一行を構成するのに別々のストローク群となっていたストローク群同士を拾い上げることができるのである。判定部２２１により併合されたストローク群は再び、包含矩形算出部２３１による処理と縦横比算出部２３２による処理の実行対象となる。
【００６１】
なお、ストローク群併合処理では、一字のストローク群と一字のストローク群については、各ストローク群の最小包含円を算出し、最小包含円同士が連結されているストローク群同士を同一のストローク群として併合するようにしてもよい。また、ストローク群併合処理では、ストローク選別処理と同様に、同一の一行を構成すると認定したストローク群同士の中から、同一のストローク群として併合するストローク群同士を、各ストローク群の筆記時刻に基づき選別するようにしてもよい。
【００６２】
図２３は、図１８の一字認識部２２２に係る機能ブロック図である。一字認識部２２２は、ストローク群回転部２４１と、文字認識部２４２と、文字決定部２４３等により構成されている。
【００６３】
ストローク群回転部２４１は、上記の一字のストローク群を回転させる機能ブロックである。一字のストローク群「あ」を回転させたストローク群の具体例を図２４に示す。図２４Ａのストローク群が回転前のストローク群であり、図２４Ｂ，Ｃ，Ｄのストローク群がそれぞれ回転後のストローク群である。図２４Ｂ，Ｃ，Ｄのストローク群はそれぞれ、有向線分ＰＱの向きが上向きに対して左４５度，０度，右４５度となるように図２４Ａのストローク群を回転させたものである。Ｐは一字のストローク群の包含矩形の中心座標であり、Ｑは一字のストローク群を構成する座標の内で取得時刻が最先の座標である。一字のストローク群を回転させる角度範囲はここでは、有効線分ＰＱの向きが上向きに対して左９０度となる角度から右９０度となる角度までとする。文字の書き出し（Ｑに相当）は文字の真ん中（Ｐに相当）より上に位置することが多いため、一字のストローク群を回転させる角度範囲をＱがＰより上に位置する角度範囲に限定することで、認識精度をあまり犠牲にせずに計算速度を向上させることができるからである。一字のストローク群を構成する各座標の取得時刻が不明の場合には、回転前（図２４Ａに相当）を基準として３６０度分を角度範囲とすればよい。一字のストローク群を回転させる角度刻みは、認識精度と計算速度の兼ね合いで設定すればよいだろう。
【００６４】
文字認識部２４２は、上記の一字のストローク群を回転させたストローク群から文字を認識する機能ブロックである。文字認識部２４２は、上記の一字のストローク群を異なる角度回転させたストローク群のそれぞれから文字を認識するものとする。図２４のストローク群「あ」で言うと、文字認識部２４２は、図２４Ａのストローク群を異なる角度回転させた図２４Ｂ，Ｃ，Ｄのストローク群のそれぞれから文字を認識するのである。
【００６５】
文字決定部２４３は、上記の一字のストローク群を異なる角度回転させたストローク群のそれぞれから認識された文字に基づいて、上記の一字のストローク群が相当する文字を決定する機能ブロックである。図２４のストローク群「あ」で言うと、文字決定部２４３は、図２４Ａのストローク群を異なる角度回転させた図２４Ｂ，Ｃ，Ｄのストローク群のそれぞれから認識された文字に基づいて、図２４Ａのストローク群が相当する文字を決定するのである。
【００６６】
文字決定部２４３による文字決定方式の第１の例について、図２４を具体例にして説明することにする。第１の例としては、図２４Ｂ，Ｃ，Ｄのストローク群から認識された各文字の文字認識結果の確信度に基づいて、図２４Ａのストローク群が相当する文字を決定するような文字決定方式が挙げられる。例えば、図２４Ｂ，Ｃ，Ｄから認識された文字とその文字認識結果の確信度がそれぞれ「あ：９０％，め：８０％，ぬ：７０％」の場合、文字「あ」の文字認識結果の確信度「９０％」が最大なので、図２４Ａが相当する文字を「あ」に決定するという具合である。既存の文字認識エンジンは通常、手書き文字データから認識した文字を出力する際、その文字認識結果の確からしさを表す数値を出力する。これが文字認識結果の確信度であり、その算出方法はその文字認識エンジンで規定されている。文字認識部２４２も、一字のストローク群から認識した文字の文字認識結果の確信度を算出するものとする。
【００６７】
文字決定部２４３による文字決定方式の第２の例について、図２４を具体例にして説明することにする。第２の例としては、図２４Ｂ，Ｃ，Ｄのストローク群から認識された各文字の角度変化に応じての出現頻度に基づいて、図２４Ａのストローク群が相当する文字を決定するような文字決定方式が挙げられる。例えば、左９０度，左６０度，左３０度，０度，右３０度，右６０度，右９０度（図２４参照）となるように図２４Ａのストローク群を回転させたストローク群から認識された文字が順に「あ，あ，あ，め，あ，ぬ，ぬ」の場合、文字「あ，め，ぬ」の出現頻度（角度変化に応じて何回出現するか）はそれぞれ「左９０度と左６０度と左３０度と右３０度の４回出現，０度の１回出現，右６０度と右９０度の２回出現」となり文字「あ」の出現頻度「４回出現」が最大なので、図２４Ａが相当する文字を「あ」に決定するという具合である。
【００６８】
文字決定部２４３による文字決定方式の第３の例について、図２４を具体例にして説明することにする。第３の例としては、図２４Ｂ，Ｃ，Ｄのストローク群から認識された各文字の角度変化に対しての安定度に基づいて、図２４Ａのストローク群が相当する文字を決定するような文字決定方式が挙げられる。例えば、左９０度，左６０度，左３０度，０度，右３０度，右６０度，右９０度（図２４参照）となるように図２４Ａのストローク群を回転させたストローク群から認識された文字が順に「あ，あ，あ，め，あ，ぬ，ぬ」の場合、文字「あ，め，ぬ」の安定度（角度変化に対して何回連続するか）はそれぞれ「左９０度と左６０度と左３０度の３回連続，０度の１回，右６０度と右９０度の２回連続」となり文字「あ」の安定度「３回連続」が最大なので、図２４Ａが相当する文字を「あ」に決定するという具合である。
【００６９】
一字認識部２２２は、図２５のように、複数のストローク群回転部２４１Ａ，Ｂ，Ｃ等と、複数の文字認識部２４２Ａ，Ｂ，Ｃ等と、文字決定部２４３等によって構成するようにしてもよい。ストローク群回転部２４１Ａ，Ｂ，Ｃ等はそれぞれ、一字のストローク群を異なる角度回転させるものとする。文字認識部２４２Ａ，Ｂ，Ｃ等はそれぞれ、一字のストローク群を異なる角度回転させたストローク群のそれぞれから文字を認識するものとする。文字決定部２４３は、一字のストローク群を異なる角度回転させたストローク群のそれぞれから認識された文字に基づいて、一字のストローク群が相当する文字を決定するものとする。これにより、ストローク群回転部２４１による処理と文字認識部２４２による処理を並列実行できるようになり、文字認識部２４２による処理結果を文字決定部２４３による処理開始まで一時蓄積しておく必要もなくなるのである。なお、図２５の機能ブロックの詳細については、図２３の同一符号の機能ブロックを参照されたい。例えば、文字決定部２４３による文字決定方式の例については、上述の３つの例が参照される。
【００７０】
図２６は、図１８の一行認識部２２３に係る機能ブロック図である。一行認識部２２３は、検出前処理部２５１と、文字区切り検出部２５２と、筆記方向検出部２５３と、ストローク群回転部２５４と、文字認識部２５５等により構成されている。
【００７１】
検出前処理部２５１は、上記の一行のストローク群を包含する矩形の長辺と短辺がそれぞれ横向きと縦向きになるように、上記の一行のストローク群を回転させる機能ブロックである。文字区切り検出部２５２による検出処理や筆記方向検出部２５３による検出処理の前処理として、一行のストローク群の向きを真直ぐにするのである。一行のストローク群「手書き」を回転させたストローク群の具体例を図２７に示す。図２７Ａ，Ｂ，Ｃ，Ｄのストローク群はいずれも回転後のストローク群である。図２７Ａ，Ｂ，Ｃ，Ｄのストローク群はいずれも、包含矩形の長辺と短辺がそれぞれ横向きと縦向きになっていることが解る。
【００７２】
文字区切り検出部２５２は、上記の一行のストローク群を構成する文字列の文字区切りを検出する機能ブロックである。図２７Ａ，Ｂ，Ｃ，Ｄのストローク群を構成する文字列の文字区切りはそれぞれＡ１とＡ２，Ｂ１とＢ２，Ｃ１とＣ２，Ｄ１とＤ２となる。文字列「手書き」に相当するストローク群を、文字「手」に相当する部分と文字「書」に相当する部分と文字「き」に相当する部分とに区切るものである。文字区切り検出部２５２はここでは、既存の文字区切り方式によって、一行のストローク群を構成する文字列の文字区切りを検出するものとする。
【００７３】
筆記方向検出部２５３は、上記の一行のストローク群を構成する文字列の文字区切りに基づき、上記の一行のストローク群を構成する文字列の筆記方向を検出する機能ブロックである。図２７Ａ，Ｂ，Ｃ，Ｄのストローク群を構成する文字列の筆記方向はそれぞれ横書きで右向き，横書きで左向き，縦書きで右向き，縦書きで左向きである。すなわち、図２７Ａ，Ｂ，Ｃ，Ｄのストローク群の向きがそれぞれ、本来の向き，本来の向きを１８０度回転させた向き，本来の向きを左向きに９０度回転させた向き，本来の向きを右向きに９０度回転させた向きになっているのである。
【００７４】
図２７には、ストローク群の裏ストロークが「矢印」で記載されている。ストローク群の裏ストロークとは、ストローク群を構成する座標につき、ストローク順が隣接しているペンアップ座標とペンダウン開始座標の組合せのこと（又はストローク順が隣接しているペンアップ座標からペンダウン開始座標に向かう有向線分のこと）である。図２７では、文字区切りを横切る裏ストロークと横切らない裏ストロークが「太矢印」と「細矢印」で区別されている。図２７Ａでは、裏ストロークＡ３，Ａ４が文字区切りＡ１，Ａ２を共に「左下から右上」に横切っている。図２７Ｂでは、裏ストロークＢ３，Ｂ４が文字区切りＢ１，Ｂ２を共に「右上から左下」に横切っている。図２７Ｃでは、裏ストロークＣ３，Ｃ４が文字区切りＣ１，Ｃ２を共に「左上から右下」に横切っている。図２７Ｄでは、裏ストロークＤ３，Ｄ４が文字区切りＤ１，Ｄ２を共に「右下から左上」に横切っている。太矢印の裏ストロークは、異なる一字を構成する座標同士による裏ストロークに相当するものであり、細矢印の裏ストロークは、同じ一字を構成する座標同士による裏ストロークに相当するものである。
【００７５】
ここで、裏ストロークについて考察する。文字の書き出しというものは、文字の真ん中より右側に位置するよりは左側に位置することが多く、文字の真ん中より下側に位置するよりは上側に位置することが多いものである。したがって、横書きの文字列を本来の向きで見ると、裏ストロークは文字区切りを「左下から右上」に横切る可能性が高く、縦書きの文字列を本来の向きで見ると、裏ストロークは文字区切りを「左上から右下」に横切る可能性が高い。よって、裏ストロークと文字区切りに着目すれば、一行のストローク群を構成する文字列の筆記方向を検出できることになる。そのため、筆記方向検出部２５３はここでは、裏ストロークと文字区切りに基づき、一行のストローク群を構成する文字列の筆記方向を検出するものとする。具体的に言うとここでは、文字区切りを横切る裏ストローク（太矢印の裏ストローク）のベクトルの合計又は平均を算出して、算出結果が「左下から右上」に向いていれば横書きで右向き，算出結果が「右上から左下」に向いていれば横書きで左向き，算出結果が「左上から右下」に向いていれば縦書きで右向き，算出結果が「右下から左上」に向いていれば横書きで左向きとするものとする。
【００７６】
ストローク群回転部２５４は、上記の一行のストローク群を構成する文字列の筆記方向に基づき、上記の一行のストローク群を回転させる機能ブロックである。図２７のストローク群「手書き」で言うと、ストローク群回転部２５４は、図２７のストローク群を本来の向きになるように回転させるものとする。図２７Ａの筆記方向は横書きで右向き（本来の向き）なので、回転させないものとする。図２７Ｂの筆記方向は横書きで左向き（本来の向きを１８０度回転させた向き）なので、１８０度回転させるものとする。図２７Ｃの筆記方向は縦書きで右向き（本来の向きを左向きに９０度回転させた向き）なので、右向きに９０度回転させるものとする。図２７Ｄの筆記方向は縦書きで左向き（本来の向きを右向きに９０度回転させた向き）なので、左向きに９０度回転させるものとする。
【００７７】
文字認識部２５５は、上記の一行のストローク群を回転させたストローク群から文字列を認識する機能ブロックである。図２７のストローク群「手書き」で言うと、文字認識部２５５は、図２７のストローク群を本来の向きになるように回転させたストローク群から文字列を認識するものとする。図２７Ａの筆記方向は横書きで右向き（本来の向き）なので、図２７Ａを回転させなかったものから文字列を認識するものとする。図２７Ｂの筆記方向は横書きで左向き（本来の向きを１８０度回転させた向き）なので、図２７Ｂを１８０度回転させたものから文字列を認識するものとする。図２７Ｃの筆記方向は縦書きで右向き（本来の向きを左向きに９０度回転させた向き）なので、図２７Ｃを右向きに９０度回転させたものから文字列を認識するものとする。図２７Ｄの筆記方向は縦書きで左向き（本来の向きを右向きに９０度回転させた向き）なので、図２７Ｄを左向きに９０度回転させたものから文字列を認識するものとする。
【００７８】
一行認識部２２３は、図２８のように、検出前処理部２５１と、文字区切り検出部２５２と、ストローク群回転部２４１と、文字認識部２４２と、文字決定部２４３等によって構成するようにしてもよい。検出前処理部２５１は、一行のストローク群を包含する矩形の長辺と短辺がそれぞれ横向きと縦向きになるように、一行のストローク群を回転させるものとする。文字区切り検出部２５２は、一行のストローク群を構成する文字列の文字区切りを検出するものとする。ストローク群回転部２４１は、文字区切りで区切られた部分毎に一行のストローク群を回転させる（部分「手，書，き」毎にストローク群「手書き」を回転させる）ものとする。文字認識部２４２は、文字区切りで区切られた部分毎に一行のストローク群を回転させたストローク群の各部分から文字列の各文字を認識する（部分「手，書，き」毎にストローク群「手書き」を回転させたストローク群の各部分から文字列「手書き」の文字「手，書，き」を認識する）ものとする。文字決定部２４３は、一行のストローク群を異なる角度回転させたストローク群のそれぞれの各部分から認識された各文字に基づいて、一行のストローク群が相当する文字列を決定する（ストローク群「手書き」を０度，９０度，１８０度，２７０度回転させたストローク群のそれぞれの各部分から認識された各文字に基づいて、ストローク群「手書き」が相当する文字列「手書き」を決定する）ものとする。これにより、筆記方向検出部２５３による処理を経ずに一行のストローク群に係る文字認識処理を実行できるようになるため、ペンダウン／ペンアップが不明等で筆記方向が検出不可能な場合等に有効である。なお、図２８の機能ブロックの詳細については、図２６，２３の同一符号の機能ブロックを参照されたい。例えば、文字決定部２４３による文字決定方式の例については、上述の３つの例が参照される。
【００７９】
ここで、文字決定部２４３による文字決定方式の例として、図２８の文字決定部２４３向けの文字決定方式の例について、図２７を具体例にして説明することにする。ここでは最初に、図２７のストローク群「手書き」を０度回転させたストローク群の各部分「手，書，き」から認識された各文字の確信度「９０％，９０％，９０％」の平均値「９０％」を算出する。次に、９０度回転させたストローク群の各部分から認識された各文字の確信度「９０％，９０％，８０％」の平均値「８６．６％」を算出する。次に、１８０度回転させたストローク群の各部分から認識された各文字の確信度「９０％，８０％，８０％」の平均値「８３．３％」を算出する。そして最後に、３６０度回転させたストローク群の各部分から認識された各文字の確信度「８０％，８０％，８０％」の平均値「８０％」を算出する。結局、０度回転させたストローク群の各部分から認識された各文字の確信度の平均値「９０％」が最大なので、０度回転させたストローク群の各部分から認識された各文字「手，書，き」をもって、図２７のストローク群が相当する文字列「手書き」とするのである。
【００８０】
図２９は、図１のＰＣ１０１にて実行される情報処理に係るフローチャート図である。
先ず、手書き文字データ受信部２０１が、手書き文字データを受信（Ｓ１０１）する。次に、包含円算出部２１１が、その手書き文字データを構成する各ストロークの包含円を算出（Ｓ１０２）する。次に、連結包含円検出部２１２が、その手書き文字データを構成するストロークの包含円同士が連結されているかどうかを検出（Ｓ１０３）して、包含円同士が連結されているストローク同士からストローク群を生成（Ｓ１０４）する。次に、包含矩形算出部２３１が、その手書き文字データを構成する各ストローク群の包含矩形を算出（Ｓ１０５）する。次に、縦横比算出部２３２が、その手書き文字データを構成する各ストローク群の包含矩形の縦横比を算出（Ｓ１０６）して、包含矩形の縦横比に基づきその手書き文字データを構成する各ストローク群が一字に相当するか一行に相当するかを判定（Ｓ１０７）する。
【００８１】
以下、手書き文字データを構成する各ストローク群１，２，３，，，ｍ，，，Ｍについての処理になる。Ｍは手書き文字データを構成するストローク群の総数である。以下、手書き文字データを構成するストローク群ｍについての処理について説明する。なお、ｍの初期設定はｍ＝１（Ｓ１１１）である。
【００８２】
ストローク群ｍが一字に相当すると判定された場合（Ｓ１２１）には、ストローク群ｍは一字のストローク群に係る文字認識処理の実行対象となる。先ず、ストローク群回転部２４１が、ストローク群ｍを様々な異なる角度回転（Ｓ１３１）させる。次に、文字認識部２４２が、ストローク群ｍを様々な異なる角度回転させたストローク群のそれぞれから文字を認識（Ｓ１３２）する。次に、文字決定部２４３が、ストローク群ｍを様々な異なる角度回転させたストローク群のそれぞれから認識された文字に基づいて、ストローク群ｍが相当する文字を決定（Ｓ１３３）する。次に、ｍの設定がｍ＝ｍ＋１（Ｓ１５１）となり、ｍ≦Ｍの場合（Ｓ１５２）にはＳ１２１に戻る。
【００８３】
ストローク群ｍが一行に相当すると判定された場合（Ｓ１２１）には、ストローク群ｍは一行のストローク群に係る文字認識処理の実行対象となる。先ず、検出前処理部２５１が、ストローク群ｍの包含矩形の長辺と短辺がそれぞれ横向きと縦向きになるようにストローク群ｍを回転（Ｓ１４１）させる。次に、文字区切り検出部２５２が、ストローク群ｍを構成する文字列の文字区切りを検出（Ｓ１４２）する。次に、筆記方向検出部２５３が、ストローク群ｍを構成する文字列の文字区切りに基づき、ストローク群ｍを構成する文字列の筆記方向を検出（Ｓ１４３）する。次に、ストローク群回転部２５４が、ストローク群ｍを構成する文字列の筆記方向に基づき、ストローク群ｍを本来の向きになるように回転（Ｓ１４４）させる。次に、文字認識部２５５が、ストローク群ｍを本来の向きになるように回転させたストローク群から文字列を認識（Ｓ１４５）する。次に、ｍの設定がｍ＝ｍ＋１（Ｓ１５１）となり、ｍ≦Ｍの場合（Ｓ１５２）にはＳ１２１に戻る。
【００８４】
図３０は、図１のＰＣ１０１にて実行される情報処理（変形例）に係るフローチャート図である。
先ず、手書き文字データ受信部２０１が、手書き文字データを受信（Ｓ２０１）する。次に、包含円算出部２１１が、その手書き文字データを構成する各ストロークの包含円を算出（Ｓ２０２）する。次に、連結包含円検出部２１２が、その手書き文字データを構成するストロークの包含円同士が連結されているかどうかを検出（Ｓ２０３）して、包含円同士が連結されているストローク同士からストローク群を生成（Ｓ２０４）する。次に、包含矩形算出部２３１が、その手書き文字データを構成する各ストローク群の包含矩形を算出（Ｓ２０５）する。次に、縦横比算出部２３２が、その手書き文字データを構成する各ストローク群の包含矩形の縦横比を算出（Ｓ２０６）する。
【００８５】
以下、手書き文字データを構成する各ストローク群１，２，３，，，ｍ，，，Ｍについての処理になる。Ｍは手書き文字データを構成するストローク群の総数である。以下、手書き文字データを構成するストローク群ｍについての処理について説明する。なお、ｍの初期設定はｍ＝１（Ｓ２１１）である。
【００８６】
先ず、ストローク群処理部２０３は、ストローク群ｍを様々な異なる角度回転（Ｓ２３１）させる。ストローク群処理部２０３は次に、ストローク群ｍを様々な異なる角度回転させたストローク群のそれぞれから文字（文字列）を認識（Ｓ２３２）する。ストローク群処理部２０３は次に、ストローク群ｍを様々な異なる角度回転させたストローク群のそれぞれから認識された文字（文字列）に基づいて、ストローク群ｍが相当する文字（文字列）を決定（Ｓ２３３）する。次に、ｍの設定がｍ＝ｍ＋１（Ｓ２５１）となり、ｍ≦Ｍの場合（Ｓ２５２）にはＳ２３１に戻る。
【００８７】
（他の実施例）
図１のＰＣ１０１は、本発明「情報処理装置」の実施例に該当するものであり、図１のＰＣ１０１において実行される情報処理は、本発明「情報処理方法」の実施例に該当するものである。図３のアプリケーション１３２は、本発明「情報処理プログラム」の実施例に該当するものであり、図３のアプリケーション１３２が記録されたＣＤ−ＲＯＭは、本発明「記録媒体」の実施例に該当するものである。
【００８８】
本発明「情報処理装置」の他の実施例としては、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ）のように、図１のＰＣ１０１に相当する機能部分と図１のデジタイザ１０２に相当する機能部分とが一体化された機器等が挙げられる。
【図面の簡単な説明】
【００８９】
【図１】ＰＣのハードウェア構成を表す図である。
【図２】ＰＣ本体のハードウェア構成を表す図である。
【図３】ハードディスクに記憶されたソフトウェアの例示である。
【図４】本発明の実施形態に係る情報処理装置の機能ブロック図である。
【図５】デジタイザからの手書き文字データについて説明するための図である。
【図６】デジタイザからの手書き文字データについて説明するための図である。
【図７】スキャナからの手書き文字データについて説明するための図である。
【図８】スキャナからの手書き文字データについて説明するための図である。
【図９】図４のストローク群生成部に係る機能ブロック図である。
【図１０】デジタイザからのストロークを包含する円の一例であれる。
【図１１】スキャナからのストロークを包含する円の一例であれる。
【図１２】最小包含円を計算するためのプログラムの一例（１／４）である。
【図１３】最小包含円を計算するためのプログラムの一例（２／４）である。
【図１４】最小包含円を計算するためのプログラムの一例（３／４）である。
【図１５】最小包含円を計算するためのプログラムの一例（４／４）である。
【図１６】手書き文字データを構成する各ストロークを包含する円の例である。
【図１７】手書き文字データを構成する各ストロークを包含する円の例である。
【図１８】図４のストローク群処理部に係る機能ブロック図である。
【図１９】図１８の判定部に係る機能ブロック図である。
【図２０】ストローク群を包含する矩形の具体例である。
【図２１】ストローク群を包含する矩形の具体例である。
【図２２】同一の一行を構成するストローク群同士の認定方式に関する図である。
【図２３】図１８の一字認識部に係る機能ブロック図である。
【図２４】一字のストローク群を回転させたストローク群の具体例である。
【図２５】図１８の一字認識部に係る機能ブロック図である。
【図２６】図１８の一行認識部に係る機能ブロック図である。
【図２７】一行のストローク群を回転させたストローク群の具体例である。
【図２８】図１８の一行認識部に係る機能ブロック図である。
【図２９】図１のＰＣにて実行される情報処理に係るフローチャート図である。
【図３０】図１のＰＣにて実行される情報処理に係るフローチャート図である。
【図３１】連結包含円検出部の処理のうち、包含円Ａと包含円Ｂとの間で、直接連結しているか否かの判定を行う流れを示したフローチャート図である。
【図３２】連結包含円検出部の処理のうち、包含円Ａと包含円Ｂとの間で、直接連結しているか否かの判定を行う流れを示したフローチャート図である。
【図３３】一つのストロークに対する円形状の包含図形の作成方法の一例である。
【図３４】一つのストロークに対する楕円形状の包含図形の作成方法の一例である。
【符号の説明】
【００９０】
１０１…ＰＣ、１０２…デジタイザ、１０３…スキャナ、１１１…ＰＣ本体、１１２…ディスプレイ、１１３…キーボード、１１４…マウス、１２１…ＣＰＵ、１２２…ＲＯＭ、１２３…ＲＡＭ、１２４…ＨＤＤ、１２５…ＭＯＤＥＭ、１３１…オペレーティングシステム、１３２…アプリケーション、２０１…文字データ受信部、２０２…ストローク群生成部、２０３…ストローク群処理部、２０４…文字蓄積部、２１１…包含円算出部、２１２…連結包含円検出部、２２１…判定部、２２２…一字認識部、２２３…一行認識部、２３１…包含矩形算出部、２３２…縦横比算出部、２４１，２４１Ａ，２４１Ｂ，２４１Ｃ…ストローク群回転部、２４２，２４２Ａ，２４２Ｂ，２４２Ｃ…文字認識部、２４３…文字決定部、２５１…検出前処理部、２５２…検出部、２５３…筆記方向検出部、２５４…ストローク群回転部、２５５…文字認識部。
【図１】
0004571039.tif 000002
【図２】
0004571039.tif 000003
【図３】
0004571039.tif 000004
【図４】
0004571039.tif 000005
【図５】
0004571039.tif 000006
【図６】
0004571039.tif 000007
【図７】
0004571039.tif 000008
【図８】
0004571039.tif 000009
【図９】
0004571039.tif 000010
【図１０】
0004571039.tif 000011
【図１１】
0004571039.tif 000012
【図１２】
0004571039.tif 000013
【図１３】
0004571039.tif 000014
【図１４】
0004571039.tif 000015
【図１５】
0004571039.tif 000016
【図１６】
0004571039.tif 000017
【図１７】
0004571039.tif 000018
【図１８】
0004571039.tif 000019
【図１９】
0004571039.tif 000020
【図２０】
0004571039.tif 000021
【図２１】
0004571039.tif 000022
【図２２】
0004571039.tif 000023
【図２３】
0004571039.tif 000024
【図２４】
0004571039.tif 000025
【図２５】
0004571039.tif 000026
【図２６】
0004571039.tif 000027
【図２７】
0004571039.tif 000028
【図２８】
0004571039.tif 000029
【図２９】
0004571039.tif 000030
【図３０】
0004571039.tif 000031
【図３１】
0004571039.tif 000032
【図３２】
0004571039.tif 000033
【図３３】
0004571039.tif 000034
【図３４】
0004571039.tif 000035