(57)【要約】【課題】複数の種別が混在した手書きデータを正しく整形できる整形装置、方法及びプログラムを提供する。【解決手段】実施形態の整形装置は、取得部と、分割部と、決定部と、整形部と、表示部とを、備える。取得部は、ユーザが手書きした手書きデータを取得する。分割部は、手書きデータを複数の構造に分割する。決定部は、複数の構造それぞれの整形モードを決定する。整形部は、構造毎に、決定された整形モードで当該構造を整形する。表示部は、複数の構造それぞれの整形結果を表示する。【選択図】図１
2014127188.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが手書きした手書きデータを取得する取得部と、
前記手書きデータを複数の構造に分割する分割部と、
前記複数の構造それぞれの整形モードを決定する決定部と、
前記構造毎に、決定された前記整形モードで当該構造を整形する整形部と、
前記複数の構造それぞれの整形結果を表示する表示部と、
を含む整形装置。
【請求項２】
前記複数の構造のうち少なくともいずれかの構造の整形モードの入力を受け付ける第１受付部を更に備え、
前記整形部は、受け付けられた前記整形モードで前記構造を再整形し、
前記表示部は、前記構造の再整形結果を表示する請求項１に記載の整形装置。
【請求項３】
前記第１受付部は、前記構造内の少なくとも一部分の選択を更に受け付け、
前記整形部は、受け付けられた前記整形モードで前記構造内の選択された前記一部分を再整形する請求項２に記載の整形装置。
【請求項４】
前記複数の整形結果のうちの少なくともいずれかの整形結果をファイル出力する出力部を更に備える請求項１〜３のいずれか１つに記載の整形装置。
【請求項５】
前記整形結果の出力指示を受け付ける第２受付部を更に備え、
前記出力部は、前記出力指示が受け付けられると、前記整形結果をファイル出力する請求項４に記載の整形装置。
【請求項６】
前記第２受付部は、前記整形結果の少なくとも一部分の選択を更に受け付け、
前記出力部は、前記出力指示が受け付けられると、前記整形結果内の選択された前記一部分をファイル出力する請求項５に記載の整形装置。
【請求項７】
前記第２受付部は、前記整形結果の出力のキャンセル指示を更に受け付け、
前記出力部は、前記キャンセル指示が受け付けられると、前記整形結果のファイル出力をキャンセルする請求項５又は６に記載の整形装置。
【請求項８】
取得部が、ユーザが手書きした手書きデータを取得する取得ステップと、
分割部が、前記手書きデータを複数の構造に分割する分割ステップと、
決定部が、前記複数の構造それぞれの整形モードを決定する決定ステップと、
整形部が、前記構造毎に、決定された前記整形モードで当該構造を整形する整形ステップと、
表示部が、前記複数の構造それぞれの整形結果を表示する表示ステップと、
を含む整形方法。
【請求項９】
ユーザが手書きした手書きデータを取得する取得部と、
前記手書きデータの整形結果を複数に分割した複数の分割整形結果を表示部に表示する表示制御部と、
複数の分割整形結果のうち少なくともいずれかの分割整形結果について、整形モードの入力を受け付ける第１受付部と、を備え、
前記表示制御部は、前記分割整形結果について、受け付けられた前記整形モードでの整形結果を前記表示部に表示する整形装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、整形装置及び方法に関する。
【背景技術】
【０００２】
ユーザが手書き入力した手書きデータが、文字を構成するデータか図形を構成するデータかを判定し、判定結果に応じて当該手書きデータの編集方法を切り替える技術がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１０−２０９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上述したような従来技術では、文字及び図形など複数の種別が混在した手書きデータをユーザが入力した場合、当該手書きデータを正しく整形することができない。本発明が解決しようとする課題は、複数の種別が混在した手書きデータを正しく整形できる整形装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態の整形装置は、取得部と、分割部と、決定部と、整形部と、表示部とを、備える。取得部は、ユーザが手書きした手書きデータを取得する。分割部は、前記手書きデータを複数の構造に分割する。決定部は、前記複数の構造それぞれの整形モードを決定する。整形部は、前記構造毎に、決定された前記整形モードで当該構造を整形する。表示部は、前記複数の構造それぞれの整形結果を表示する。
【図面の簡単な説明】
【０００６】
【図１】本実施形態の整形装置の例を示す構成図。
【図２】本実施形態の手書きデータ例を示す図。
【図３】本実施形態の手書きデータの分割結果例を示す図。
【図４】本実施形態の図形整形モードでの整形結果例を示す図。
【図５】本実施形態の数式整形モードでの整形結果例を示す図。
【図６】本実施形態の手書き文字を構成するストローク群の構造例を示す図。
【図７】本実施形態の文字整形モードでの整形結果例を示す図。
【図８】本実施形態の罫線ストロークの分類例を示す図。
【図９】本実施形態の罫線ストロークの分類例を示す図。
【図１０】本実施形態の手書き表を構成するストローク群の分類結果例を示す図。
【図１１】本実施形態の手書き表の領域特定結果例を示す図。
【図１２】本実施形態の罫線ストロークの判定結果例を示す図。
【図１３】本実施形態の表整形モードでの整形結果例を示す図。
【図１４】本実施形態の整形結果の表示例を示す図。
【図１５】本実施形態の整形処理例を示すフローチャート。
【図１６】本実施形態の再整形及び出力処理例を示すフローチャート。
【図１７】変形例１の一部分の選択例を示す図。
【図１８】実施形態及び変形例の整形装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、実施形態を詳細に説明する。
【０００８】
図１は、本実施形態の整形装置１０の一例を示す構成図である。図１に示すように、整形装置１０は、入力部１１と、取得部１３と、受付部１５と、分割部１７と、決定部１９と、整形部２１と、表示制御部２３と、表示部２５と、出力部２７とを、備える。
【０００９】
入力部１１は、タッチパネル、タッチパッド、マウス、及び電子ペンなどの手書き入力可能な入力装置により実現できる。取得部１３、受付部１５、分割部１７、決定部１９、整形部２１、表示制御部２３、及び出力部２７は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、即ち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェア及びハードウェアを併用して実現してもよい。表示部２５は、例えば、タッチパネルディスプレイや液晶ディスプレイなどの表示装置により実現できる。
【００１０】
入力部１１は、ユーザが手書きした文字、図形、表、又は数式などのデータである手書きデータを整形装置１０に入力する。第１実施形態では、入力部１１はタッチパネルであり、ユーザがスタイラスペンや指を用いてタッチパネル上で文字、図形、表、又は数式を手書きすることにより、手書きデータを入力することを想定しているが、これに限定されるものではない。例えば、入力部１１をタッチパッド、マウス、及び電子ペンなどで実現してもよい。
【００１１】
手書きデータは、ストロークの集合により構成される。ストロークは、ユーザが手書した文字、図形、表、又は数式などの１画、即ち、スタイラスペンや指がタッチパネルの入力面に接してから離れるまで（ペンダウンからペンアップまで）の軌跡を示すデータである。ストロークは、例えば、｛（ｘ１，ｙ１）、（ｘ２，ｙ２）、…、（ｘｎ，ｙｎ）｝のような、スタイラスペンや指と入力面との接点の時系列の座標値として表される。
【００１２】
また入力部１１は、入力した手書きデータの整形指示、手書きデータの再整形指示、手書きデータを整形又は再整形した整形データのファイル出力指示、整形データのファイル出力キャンセル指示、及び手書きデータのファイル出力指示などの各種指示を整形装置１０に入力する。
【００１３】
本実施形態では、入力部１１がこれらの各種指示の入力も行うことを想定しているが、これに限定されるものではない。例えば、整形装置１０が、操作子などの入力部１１とは異なる入力部を更に備えるようにして、当該入力部が上述の各種指示の入力を行うようにしてもよい。
【００１４】
取得部１３は、入力部１１により入力された手書きデータを取得する。具体的には、取得部１３は、入力部１１により入力されたストロークを順次取得することで、手書きデータを取得する。
【００１５】
図２は、本実施形態の手書きデータの一例を示す図である。図２に示す例では、手書きデータ４１は、ユーザが手書きしたフローチャート図である手書き図形と、ユーザが手書きした数式である手書き数式とを、含んでいる。詳細な説明は省略するが、本実施形態では、入力部１１から入力された手書きデータは、取得部１３により取得されると、ストロークの座標値が線形補完されて、表示部２５に表示されるものとする。図２に示す例では、表示部２５に表示された手書きデータ４１を整形ボタン４２とともに示している。なお、整形ボタン４２などのメニュー画面の表示形式はこれに限定されるものではなく、アイコンやテキストなど種々の表示形式を採用できる。
【００１６】
以下では、手書き図形と手書き数式を含んだ手書きデータを想定して説明を行うが、手書きデータはこれに限定されるものではなく、手書き文字、手書き図形、手書き表、及び手書き数式などのうち、少なくとも２つ以上を含んだものであればよい。
【００１７】
受付部１５（第１受付部及び第２受付部の一例）は、入力部１１により入力された各種指示を受け付ける。例えば、図２に示す例において、整形ボタン４２がタッチされると、入力部１１は、手書きデータ４１の整形指示を入力し、受付部１５は、当該整形指示を受け付ける。
【００１８】
分割部１７は、取得部１３により取得された手書きデータを複数の構造に分割する。具体的には、分割部１７は、受付部１５により手書きデータの整形指示が受け付けられると、取得部１３により取得された手書きデータを構成する各ストロークの位置関係に応じて、手書きデータ（ストロークの集合）を複数のストローク群に構造化する。
【００１９】
詳細には、分割部１７は、取得された手書きデータを構成する各ストロークに対する尤度を算出し、座標面上での空間的な近さと連続性を加味するため、マルコフ確率場（ＭＲＦ：Markov  random  field）で表現し、当該手書きデータが存在する領域を分割する最も分離のよい複数の分割領域を推定する（例えば、“Xiang-Dong  Zhou,  Cheng-Lin  Liu,  “Text/Non-text  Ink  Stroke  Classification  in  Japanese  Handwriting  Based  on  Markov  Random  Fields,”  Document  Analysis  and  Recognition,  2007.  ICDAR  2007.  Ninth  International  Conference  on,  23-26  Sept.  2007.”参照）。そして分割部１７は、分割領域毎に、当該分割領域に存在する１以上のストロークをストローク群に構造化する。これにより、分割部１７は、手書きデータ（ストロークの集合）を複数の構造（ストローク群）に分割する。
【００２０】
図３は、本実施形態の手書きデータの分割結果の一例を示す図である。図３に示す例では、手書きデータ４１が、手書き図形を構成するストローク群を構造化した構造４１Ａと、手書き数式を構成するストローク群を構造化した構造４１Ｂとに、分割されている。
【００２１】
決定部１９は、分割部１７により分割された複数の構造それぞれの整形モードを決定する。具体的には、決定部１９は、構造を構成する各ストロークから特徴量を抽出し、抽出した各特徴量を整形モード毎に用意された複数の識別器それぞれで識別し、整形モード毎に各ストロークの尤度を算出する。そして決定部１９は、整形モード毎に、算出した各ストロークの尤度を加算し、尤度の総和が最も高い整形モードを当該構造の整形モードに決定する。複数の識別器は、それぞれ、整形モードが対応する代表的なフォーマットを予め学習したものである。
【００２２】
本実施形態では、整形モードは、例えば、手書き文字を整形する文字整形モード、手書き図形を整形する図形整形モード、手書き表を整形する表整形モード、及び手書き数式を整形する数式形モードを想定しているが、これらに限定されるものではない。なお、手書き図形は、手書き図形のみで構成されている必要はなく、手書き図形及び手書き文字で構成されていてもよい。同様に、手書き表は、手書き表のみで構成されている必要はなく、手書き表及び手書き文字で構成されていてもよい。
【００２３】
ここで、手書きデータが漢字の手書き文字で構成されている場合、長さが短くかつ直線状のストロークの割合が多く、手書きデータが仮名やアルファベットの手書き文字で構成されている場合、曲線状のストロークの割合が多く、手書きデータが手書き図形で構成されている場合、直線状のストロークの割合が多くなるなどの傾向がある。
【００２４】
このため、上述した整形モードの決定手法により、構造（構造内のストローク群が、手書き文字、手書き図形、手書き表、及び手書き数式のいずれを構成するか）に応じた整形モードを決定できる。
【００２５】
なお決定部１９は、分割部１７により分割された複数の構造のうち面積の大きい構造から順に整形モードを決定することが好ましい。また決定部１９は、尤度の総和が最も高い整形モードであっても、閾値に達していなければ、上述した整形モードの決定をやり直すようにしてもよい。この場合、決定部１９は、当該構造全体に対して上述した整形モードの決定をやり直すのではなく、当該構造内で当該構造の次に大きな構造に対して上述した整形モードの決定をやり直せばよい。そして決定部１９は、尤度の総和の最大値が閾値に達すれば、当該尤度の総和の整形モードに決定し、尤度の総和の最大値が閾値に達しなければ、同様の処理を繰り返せばよい。
【００２６】
整形部２１は、分割部１７により分割された構造毎に、決定部１９により決定された整形モードで当該構造を整形する。具体的には、整形部２１は、分割部１７により分割された構造を構成するストローク群に対して、決定部１９により決定された整形モードで認識を行うことで、ストローク群内で文字を構成する文字ストロークや図形を構成する図形ストロークなどに対して、該当する文字コード、ベクトルデータ、又はイメージデータなどを割り当てる。そして整形部２１は、ストローク群内の文字ストロークや図形ストロークを割り当てられた文字コードやベクトルデータに変換する。整形部２１は、分割部１７により分割された各構造に対して上記の整形を行うことで、手書きデータを整形する。
【００２７】
例えば、整形部２１は、図形整形モードで構造（手書き図形を構成するストローク群）を整形する場合、図形のベクトルデータやイメージデータと当該データに対応するストロークの標準パターンと対応付けて定義した辞書データを用いて、ストローク群内の図形ストロークそれぞれとストロークの標準パターンとの図形認識用のパターンマッチングを行う。そして整形部２１は、ストローク群内の図形ストロークそれぞれに対して、マッチングされた標準パターンに対応付けられたベクトルデータやイメージデータを割り当て、ストローク群内の文字ストロークそれぞれを割り当てられたベクトルデータやイメージデータに変換する。
【００２８】
なお、図形認識用のパターンマッチングでマッチングされなかったストロークは図形ストロークではなく文字ストロークの可能性が高いので、整形部２１は、当該ストロークに対しては、文字認識用のパターンマッチングを行う。
【００２９】
例えば、整形部２１は、文字コードと当該文字コードに対応するストロークの標準パターンと対応付けて定義した辞書データを用いて、ストローク群内の文字ストロークそれぞれとストロークの標準パターンとの文字認識用のパターンマッチングを行う。そして整形部２１は、ストローク群内の文字ストロークそれぞれに対して、マッチングされた標準パターンに対応付けられた文字コードを割り当て、ストローク群内の文字ストロークそれぞれを割り当てられた文字コードに変換する。
【００３０】
なお、パターンマッチングの認識精度を高めるため、１の文字コードに対応付けられる標準パターンを複数用意してバリエーションを持たせたりしてもよいし、整形部２１は、標準パターンのストロークを構成するストロークの端点間の距離、及び文字ストロークを構成するストロークの端点間の距離を算出し、パターンマッチングに用いるようにしたりしてもよい。
【００３１】
図４は、本実施形態の図形整形モードでの整形結果の一例を示す図である。図４に示す例では、手書き図形（ユーザが手書きしたフローチャート図）を構成するストローク群を構造化した構造４１Ａ（図３参照）が、ベクトルデータ及び文字コードで表されたフローチャート図５１Ａに整形されている。
【００３２】
また例えば、整形部２１は、数式整形モードで構造（手書き数式を構成するストローク群）を整形する場合、ストローク尤度及び構造尤度（例えば、ストローク尤度と構造尤度との積の最大値）に基づいて、ストローク群内の数式用文字ストロークそれぞれに数式用の文字コードを割り当てる。ストローク尤度は、上述した文字認識用のパターンマッチングにより求められ、例えば、数式用文字ストロークがマッチングされた標準パターンとなる確率を示す。構造尤度は、ストローク群で表される構造となる確率を表し、例えば、「−｜」という構造が、“−１”である確率や“＋”である確率などを示す。構造尤度は、例えば、確率文脈自由文法（ＳＣＦＧ：Stochastic  Context-Free  Grammar）によりモデル化できる。そして整形部２１は、ストローク群内の数式用文字ストロークそれぞれを割り当てられた数式用の文字コードに変換する。
【００３３】
図５は、本実施形態の数式整形モードでの整形結果の一例を示す図である。図５に示す例では、手書き数式を構成するストローク群を構造化した構造４１Ｂ（図３参照）が、数式用の文字コードで表された数式５１Ｂに整形されている。
【００３４】
また例えば、整形部２１は、文字整形モードで構造（手書き文字を構成するストローク群）を整形する場合、前述した文字認識用のパターンマッチングにより、ストローク群内の文字ストロークそれぞれに対して、マッチングされた標準パターンに対応付けられた文字コードを割り当て、ストローク群内の文字ストロークそれぞれを割り当てられた文字コードに変換する。
【００３５】
図６は、本実施形態の手書き文字を構成するストローク群を構造化した構造の一例を示す図であり、図７は、本実施形態の文字整形モードでの整形結果の一例を示す図である。図７に示す例では、手書き文字を構成するストローク群を構造化した構造（図６参照）が、文字コードで表された文字（文書）に整形されている。
【００３６】
また例えば、整形部２１は、表整形モードで構造（手書き表を構成するストローク群）を整形する場合、まず、ストローク群内のストロークを解析し、罫線ストロークと罫線ストローク以外のストロークとに分類する。
【００３７】
ここで、表の罫線は、相対的にストローク長が大きい、ストロークの始終端によって決まる縦横のアスペクト比が極端に大きい又は小さいなどの傾向がある。このため、例えば、整形部２１は、図８に示すようなストローク長のヒストグラムＬにおいて、閾値Ｔｈを超えるストローク長を持つストロークは罫線ストロークに分類する。また例えば、整形部２１は、図９に示すように、縦横のアスペクト比が極端に大きいストローク（始端Ｓ１と終端Ｅ１とを有するストローク）や、縦横のアスペクト比が極端に小さいストローク（始端Ｓ２と終端Ｅ２とを有するストローク）も罫線ストロークに分類する。
【００３８】
図１０は、本実施形態の手書き表を構成するストローク群の分類結果の一例を示す図である。図１０に示す例では、手書き表を構成するストローク群が、罫線ストロークＲＬと罫線ストローク以外のストローク（図１０に示す例では、文字ストローク）ＨＷとに分類されている。
【００３９】
次に、整形部２１は、分類した罫線ストロークを解析することで行数や列数などの表の構造を特定し、４つの交点で囲まれた領域（以下、「セル領域」と称する場合がある）と、４つの交点で囲まれていない領域（以下、「非セル領域」と称する場合がある）とを、特定する。なお、整形部２１は、少なくとも１つ以上の端点を含んだ領域を非セル領域に特定し、それ以外の領域をセル領域に特定してもよい。
【００４０】
図１１は、本実施形態の手書き表の領域特定結果の一例を示す図である。図１１に示す例では、手書き表において、セル領域ＲＡ１〜ＲＡ４と、非セル領域ＲＢ１〜ＲＢ９とが、特定されている。
【００４１】
次に、整形部２１は、非セル領域に存在する罫線ストロークが、交点から突出した「はみ出し（small  extension）」であるか、表を構成する上で新たな罫線ストロークが補完されるべきものであるかを判定する。例えば、整形部２１は、非セル領域に存在する罫線ストロークの長さが、非セル領域に存在する複数の罫線ストロークの長さから算出した統計量に基づく閾値に達するか否かを判定し、閾値に達すれば、新たな罫線ストロークが補完されるべき罫線ストロークとし、閾値に達しなければ、はみ出した罫線ストロークとする。なお整形部２１は、非セル領域に存在する罫線ストロークを判定する場合、縦の罫線ストロークと横の罫線ストロークそれぞれの閾値を用意し、縦の罫線ストロークと横の罫線ストロークそれぞれとに分けて判定することが好ましい。
【００４２】
図１２は、本実施形態の非セル領域に存在する罫線ストロークの判定結果の一例を示す図である。図１２に示す例では、罫線ストロークＲＡＬ２〜ＲＡＬ７が新たな罫線ストロークが補完されるべき罫線ストロークとなり、罫線ストロークＲＢＬ１〜ＲＢＬ３がはみ出した罫線ストロークとなっている。
【００４３】
次に、整形部２１は、新たな罫線ストロークが補完されるべき罫線ストロークに当該新たな罫線ストロークを補完する。例えば、整形部２１は、図１２に示す例において、罫線ストロークＲＡＬ４〜ＲＡＬ６の端点を結ぶ縦の罫線ストロークと罫線ストロークＲＡＬ２、ＲＡＬ３、ＲＡＬ７の端点を結ぶ横の罫線ストロークとを補完する。
【００４４】
次に、整形部２１は、表を構成する罫線データと当該罫線データに対応するストロークの標準パターンと対応付けて定義した辞書データを用いて、ストローク群内の罫線ストローク（補完された罫線ストローク含む）とストロークの標準パターンとの表認識用のパターンマッチングを行う。そして整形部２１は、ストローク群内の罫線ストロークに対して、マッチングされた標準パターンに対応付けられた罫線データを割り当て、ストローク群内の罫線ストロークを割り当てられた罫線データに変換する。
【００４５】
また、ストローク群内の罫線ストローク以外のストロークは文字ストロークの可能性が高いので、整形部２１は、当該ストロークに対しては、前述した文字認識用のパターンマッチングを行い、ストローク群内の文字ストロークそれぞれに対して、マッチングされた標準パターンに対応付けられた文字コードを割り当て、ストローク群内の文字ストロークそれぞれを割り当てられた文字コードに変換する。
【００４６】
図１３は、本実施形態の表整形モードでの整形結果の一例を示す図である。図１３に示す例では、手書き表を構成するストローク群を構造化した構造（図１０参照）が、罫線データ及び文字コードで表された表に整形されている。
【００４７】
なお整形部２１は、手書きデータを整形する際に、配置やサイズを変更してもよい。例えば、整形部２１は、文字コードへの変換で手書きデータ（手書き文字）を整形する場合、フォントサイズを共通化したり、所定位置に揃えて（例えば、左揃えで）配置したりしてもよい。また例えば、整形部２１は、ベクトルデータやイメージデータへの変換で手書きデータ（手書き図形）を整形する場合、図形オブジェクト（ベクトルデータやイメージデータ）のサイズを共通化したり、所定位置に揃えて（例えば、中央揃えで）配置したりしてもよい。
【００４８】
また整形部２１は、パターンマッチングでマッチングされなかったストロークについては、線分を組み合わせたものを割り当て、当該ストロークを割り当てられた線分の組合せに変換すればよい。
【００４９】
また整形部２１は、ストロークを構成するサンプリング点（座標値）を当該ストロークの形状が変わらない程度に削減して、パターンマッチングを行うようにしてもよい。また整形部２１は、例えば、ベジェ曲線やｎ（Ｎ≧１）次のスプラインなどいくつかの制御点で曲線を近似できる手法を用いて、ストロークを曲線に近似して、パターンマッチングを行うようにしてもよい。
【００５０】
表示制御部２３は、手書きデータの整形結果を複数に分割した複数の分割整形結果を表示部２５に表示したり、当該複数の分割整形結果のうち後述の受付部１５により整形モードが受け付けられた分割整形結果について、受け付けられた整形モードでの整形結果を表示部２５に表示したりする。具体的には、表示制御部２３は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果や後述する再整形結果を表示部２５に表示したり、取得部１３により取得された手書きデータのストロークの座標値を線形補完して当該手書きデータを表示部２５に表示したりする。なお本実施形態では、表示部２５は、入力部１１と同一のタッチパネルにより実現されていることを想定しているが、これに限定されず、例えば、入力部１１と異なるタッチパネルで実現してもよいし、液晶ディスプレイなどで実現してもよい。
【００５１】
図１４は、本実施形態の整形結果の表示例を示す図である。図１４に示す例では、構造４１Ａ（図３参照）の整形結果であるフローチャート図５１Ａ（図４参照）を、文字再整形ボタン５２Ａ、数式再整形ボタン５３Ａ、表再整形ボタン５４Ａ、出力ボタン５５Ａ、手書き出力ボタン５６Ａ、及びキャンセルボタン５７Ａとともに表示し、構造４１Ｂ（図３参照）の整形結果である数式５１Ｂ（図５参照）を、文字再整形ボタン５２Ｂ、図形再整形ボタン５３Ｂ、表再整形ボタン５４Ｂ、出力ボタン５５Ｂ、手書き出力ボタン５６Ｂ、及びキャンセルボタン５７Ｂとともに表示している。なお、文字再整形ボタン５２Ａなどのメニュー画面の表示形式はこれに限定されるものではなく、アイコンやテキストなど種々の表示形式を採用できる。
【００５２】
ここで、受付部１５は、表示部２５に表示された複数の分割整形結果のうち少なくともいずれかの分割整形結果について、整形モードの入力を受け付ける。具体的には、受付部１５は、分割部１７により分割された複数の構造のうち少なくともいずれかの構造の整形モードの入力を受け付ける。
【００５３】
例えば、図１４に示す例において、文字再整形ボタン５２Ａがタッチされると、入力部１１は、構造４１Ａに対する文字整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。また例えば、図１４に示す例において、数式再整形ボタン５３Ａがタッチされると、入力部１１は、構造４１Ａに対する数式整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。また例えば、図１４に示す例において、表再整形ボタン５４Ａがタッチされると、入力部１１は、構造４１Ａに対する表整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。
【００５４】
また例えば、図１４に示す例において、文字再整形ボタン５２Ｂがタッチされると、入力部１１は、構造４１Ｂに対する文字整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。また例えば、図１４に示す例において、図形再整形ボタン５３Ｂがタッチされると、入力部１１は、構造４１Ｂに対する図形整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。また例えば、図１４に示す例において、表再整形ボタン５４Ｂがタッチされると、入力部１１は、構造４１Ｂに対する表整形モードでの再整形指示を入力し、受付部１５は、当該再整形指示を受け付ける。
【００５５】
この場合、整形部２１は、受付部１５により受け付けられた構造を受け付けられた整形モードで再整形し、表示制御部２３は、整形部２１による再整形結果を表示部２５に表示する。再整形については、整形部２１で説明した整形手法で再整形が行われるため、詳細な説明は省略する。ここでは、元の整形モードと異なる整形モードでの再整形を想定して説明したが、元の整形モードと同一の整形モードでの再整形を行うようにしてもよい。この場合、“やり直し”などのボタンを表示し、受付部１５は、元の整形モードと同一の整形モードの入力を受け付けるようにしてもよい。また、フローチャート図５１Ａについては図形再整形ボタンを更に表示し、数式５１Ｂについては数式再整形ボタンを更に表示するなど、元の整形モードと同一の整形モードとなる再整形ボタンを表示し、受付部１５は、元の整形モードと同一の整形モードの入力を受け付けるようにしてもよい。
【００５６】
これにより、決定部１９で決定された整形モードの誤りの修正や、決定部１９で決定された整形モードは正しいがユーザが意図的に異なる整形モードでの整形を望む場合などに対応できる。
【００５７】
例えば、構造４１Ｂ（図３参照）の整形モードが、決定部１９により数式整形モードではなく文字整形モードに決定されてしまうことも想定されるが、このような場合であっても数式整形モードでの再整形指示を入力することにより、整形モードの誤りを修正できる。
【００５８】
また例えば、構造４１Ａ（図３参照）は手書き図形であるため、決定部１９により決定された図形整形モードは本来正しい整形モードであるが、ユーザの意図がフローチャート図中の文字の整形が必要ということもあり得る。このような場合であっても文字整形モードでの再整形指示を入力することにより、ユーザの意図した整形モードに修正できる。
【００５９】
また受付部１５は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果や再整形結果のうち少なくともいずれかの出力指示を受け付ける。
【００６０】
例えば、図１４に示す例において、出力ボタン５５Ａがタッチされると、入力部１１は、整形結果であるフローチャート図５１Ａ（図４参照）の出力指示を入力し、受付部１５は、当該出力指示を受け付ける。また例えば、図１４に示す例において、出力ボタン５５Ｂがタッチされると、入力部１１は、整形結果である数式５１Ｂ（図５参照）の出力指示を入力し、受付部１５は、当該出力指示を受け付ける。なお、再整形結果が表示部２５に表示されている状態で出力ボタン５５Ａや出力ボタン５５Ｂがタッチされた場合には、受付部１５は、再整形結果の出力指示を受け付けることになる。
【００６１】
出力部２７は、受付部１５により出力指示が受け付けられると、該当する整形結果や再整形結果をファイル出力し、図示せぬ記憶部や外部装置（例えば、クラウドなど）に当該整形結果や再整形結果のファイルを格納する。なお、整形結果や再整形結果のファイル化は、整形部２１が行ってもよいし、出力部２７が行ってもよい。
【００６２】
また受付部１５は、分割部１７により分割された複数の構造のうち少なくともいずれかの出力指示である手書き出力指示を受け付ける。
【００６３】
例えば、図１４に示す例において、手書き出力ボタン５６Ａがタッチされると、入力部１１は、構造４１Ａ（図３参照）の手書き出力指示を入力し、受付部１５は、当該手書き出力指示を受け付ける。また例えば、図１４に示す例において、手書き出力ボタン５６Ｂがタッチされると、入力部１１は、構造４１Ｂ（図３参照）の手書き出力指示を入力し、受付部１５は、当該手書き出力指示を受け付ける。
【００６４】
出力部２７は、受付部１５により手書き出力指示が受け付けられると、該当する構造をファイル出力し、図示せぬ記憶部や外部装置（例えば、クラウドなど）に当該構造のファイルを格納する。なお、構造のファイル化は、分割部１７が行ってもよいし、出力部２７が行ってもよい。
【００６５】
また受付部１５は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果や再整形結果の出力のキャンセル指示を受け付ける。
【００６６】
例えば、図１４に示す例において、キャンセルボタン５７Ａがタッチされると、入力部１１は、整形結果であるフローチャート図５１Ａ（図４参照）のキャンセル指示を入力し、受付部１５は、当該キャンセル指示を受け付ける。また例えば、図１４に示す例において、キャンセルボタン５７Ｂがタッチされると、入力部１１は、整形結果である数式５１Ｂ（図５参照）のキャンセル指示を入力し、受付部１５は、当該キャンセル指示を受け付ける。なお、再整形結果が表示部２５に表示されている状態でキャンセルボタン５７Ａやキャンセルボタン５７Ｂがタッチされた場合には、受付部１５は、再整形結果のキャンセル指示を受け付けることになる。
【００６７】
出力部２７は、受付部１５により出力指示が受け付けられると、該当する整形結果や再整形結果のファイル出力をキャンセルし、既に当該整形結果や再整形結果のファイル化が行われている場合には、当該ファイルを削除してもよい。
【００６８】
図１５は、本実施形態の整形装置１０で行われる整形処理の手順の流れの一例を示すフローチャートである。
【００６９】
まず、取得部１３は、入力部１１により入力された手書きデータを取得する（ステップＳ１０１）。
【００７０】
続いて、分割部１７は、取得部１３により取得された手書きデータを複数の構造に分割する（ステップＳ１０３）。
【００７１】
続いて、決定部１９は、分割部１７により分割された構造の整形モードを決定する（ステップＳ１０７）。
【００７２】
続いて、整形部２１は、分割部１７により分割された構造を、決定部１９により決定された整形モードで整形する（ステップＳ１０９）。
【００７３】
そして分割部１７により分割された全ての構造を処理（整形）するまで（ステップＳ１１１でＮｏ）、ステップＳ１０７〜ステップＳ１０９を繰り返す。
【００７４】
続いて、分割部１７により分割された全ての構造が処理されると（ステップＳ１１１でＹｅｓ）、表示制御部２３は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果を表示部２５に表示する（ステップＳ１１３）。
【００７５】
図１６は、本実施形態の整形装置１０で行われる再整形及び出力処理の手順の流れの一例を示すフローチャートである。
【００７６】
まず、受付部１５は、分割部１７により分割された複数の構造のうち少なくともいずれかの構造の再整形用の整形モードを指示する再整形指示を受け付けると（ステップＳ２０１でＹｅｓ）、整形部２１は、指示された構造を、指示された整形モードで再整形する（ステップＳ２０３）し、表示制御部２３は、整形部２１による再整形結果を表示部２５に表示する（ステップＳ２０５）。
【００７７】
続いて、受付部１５は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果や再整形結果のうち少なくともいずれかの出力指示を受け付けると（ステップＳ２０１でＮｏ、ステップＳ２０７でＹｅｓ）、出力部２７は、該当する整形結果や再整形結果をファイル出力する（ステップＳ２０９）。
【００７８】
続いて、受付部１５は、分割部１７により分割された複数の構造のうち少なくともいずれかの手書き出力指示を受け付けると（ステップＳ２０７でＮｏ、ステップＳ２１１でＹｅｓ）、出力部２７は、該当する構造をファイル出力する（ステップＳ２１３）。
【００７９】
続いて、受付部１５は、分割部１７により分割された複数の構造それぞれの整形部２１による整形結果や再整形結果の出力のキャンセル指示を受け付けると（ステップＳ２１１でＮｏ、ステップＳ２１５でＹｅｓ）、出力部２７は、該当する整形結果や再整形結果のファイル出力をキャンセルし、処理を終了する。
【００８０】
なお、受付部１５がキャンセル指示を受け付けなかった場合（ステップＳ２１５でＮｏ）、ステップＳ２０１へ戻る。
【００８１】
以上のように本実施形態では、手書きデータを複数の構造に分割し、分割された構造それぞれに対して整形を行う。このため本実施形態によれば、複数の種別が混在した手書きデータであっても正しく整形できる。
【００８２】
（変形例１）
上記実施形態において、整形結果や再整形結果の一部分を指定してファイル出力を行うようにしてもよい。この場合、受付部１５は、出力指示とともに整形結果や再整形結果の少なくとも一部分の選択（例えば、図１７に示す矩形６１の選択）を更に受け付けるようにすればよい。そして出力部２７は、受付部１５により出力指示及び選択が受け付けられると、該当する整形結果や再整形結果の一部分をファイル出力すればよい。このようにすれば、ユーザが必要とする部分のファイル出力が可能となる。
【００８３】
（変形例２）
上記実施形態において、構造の少なくとも一部分を指定して整形や再整形を行うようにしてもよい。この場合、受付部１５は、整形指示とともに構造の少なくとも一部分の選択を更に受け付けたり、再整形指示とともに整形結果の少なくとも一部分の選択を更に受け付けたりするようにすればよい。そして整形部２１は、受付部１５により整形指示が受け付けられると、該当する構造の一部分を整形したり、受付部１５により再整形指示が受け付けられると、該当する整形結果の一部分を再整形したりすればよい。このようにすれば、ユーザが必要とする部分の整形が可能となる。
【００８４】
（変形例３）
上記実施形態では、手書き文字、手書き図形、手書き表、及び手書き数式などのうち、少なくとも２つ以上を含んだ手書きデータを想定して説明を行ったが、手書きデータに含まれるものはこれに限定されず、例えば、手書きカレンダーや手書きＴＯＤＯリストなどが含まれていてもこれらに応じた整形(認識)を行うようにすれば対応可能である。
【００８５】
（変形例４）
上記実施形態において、文字整形モードを言語種別に応じて細分化（例えば、日本語整形モードや英語整形モードなど）してもよい。
【００８６】
（変形例５）
上記実施形態では、構造毎に再認識や出力を行う例について説明したが、全ての構造に対して一括して再認識や出力を行うようにしてもよい。
【００８７】
（ハードウェア構成）
図１８は、上記実施形態及び変形例の整形装置１０のハードウェア構成の一例を示す図である。上記実施形態及び変形例の整形装置１０は、ＣＰＵなどの制御装置９０１と、ＲＯＭやＲＡＭなどの記憶装置９０２と、ＨＤＤなどの外部記憶装置９０３と、タッチパネルなどの表示装置９０４と、タッチパネルなどの入力装置９０５と、通信インタフェースなどの通信装置９０６と、を備えており、通常のコンピュータを利用したハードウェア構成となっている。
【００８８】
上記実施形態及び変形例の整形装置１０で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでＣＤ−ＲＯＭ、ＣＤ−Ｒ、メモリカード、ＤＶＤ（Digital  Versatile  Disk）、フレキシブルディスク（ＦＤ）等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【００８９】
また、上記実施形態及び変形例の整形装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記実施形態及び変形例の整形装置１０を、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記実施形態及び変形例の整形装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するようにしてもよい。
【００９０】
上記実施形態及び変形例の整形装置１０で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、ＣＰＵがＨＤＤからプログラムをＲＡＭ上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【００９１】
なお、本発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせても良い。
【００９２】
例えば、上記各実施形態のフローチャートにおける各ステップを、その性質に反しない限り、実行順序を変更し、複数同時に実施し、あるいは実施毎に異なった順序で実施してもよい。
【００９３】
以上のように、上記実施形態及び変形例によれば、複数の種別が混在した手書きデータであっても正しく整形できる。
【符号の説明】
【００９４】
１０  整形装置
１１  入力部
１３  取得部
１５  受付部
１７  分割部
１９  決定部
２１  整形部
２３  表示制御部
２５  表示部
２７  出力部
９０１  制御装置
９０２  記憶装置
９０３  外部記憶装置
９０４  表示装置
９０５  入力装置
９０６  通信装置
【図１】
2014127188.tif 000003
【図２】
2014127188.tif 000004
【図３】
2014127188.tif 000005
【図４】
2014127188.tif 000006
【図５】
2014127188.tif 000007
【図６】
2014127188.tif 000008
【図７】
2014127188.tif 000009
【図８】
2014127188.tif 000010
【図９】
2014127188.tif 000011
【図１０】
2014127188.tif 000012
【図１１】
2014127188.tif 000013
【図１２】
2014127188.tif 000014
【図１３】
2014127188.tif 000015
【図１４】
2014127188.tif 000016
【図１５】
2014127188.tif 000017
【図１６】
2014127188.tif 000018
【図１７】
2014127188.tif 000019
【図１８】
2014127188.tif 000020