(57)【要約】【課題】装置に処理負荷をかけず、ユーザが所望するレイアウト結果を速やかに提供することを目的とする。【解決手段】文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する簡易レイアウトを生成する簡易レイアウト生成手段と、簡易レイアウト生成手段で生成された簡易レイアウトを提示する提示手段と、提示手段で提示された簡易レイアウトからユーザ操作に基づいて簡易レイアウトを選択する選択手段と、選択手段で選択された簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成するレイアウト結果生成手段と、を有することによって課題を解決する。【選択図】図１
2010097564.tif 000002
【特許請求の範囲】
【請求項１】
文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する簡易レイアウトを生成する簡易レイアウト生成手段と、
前記簡易レイアウト生成手段で生成された簡易レイアウトを提示する提示手段と、
前記提示手段で提示された簡易レイアウトからユーザ操作に基づいて簡易レイアウトを選択する選択手段と、
前記選択手段で選択された簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成するレイアウト結果生成手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記簡易レイアウト生成手段は、文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する複数の簡易レイアウトを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記提示手段は、更に、前記レイアウト結果生成手段で生成されたレイアウト結果を提示することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
情報処理装置におけるレイアウト処理方法であって、
文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する簡易レイアウトを生成する簡易レイアウト生成ステップと、
前記簡易レイアウト生成ステップで生成された簡易レイアウトを提示する提示ステップと、
前記提示ステップで提示された簡易レイアウトからユーザ操作に基づいて簡易レイアウトを選択する選択ステップと、
前記選択ステップで選択された簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成するレイアウト結果生成ステップと、
を有することを特徴とするレイアウト処理方法。
【請求項５】
前記簡易レイアウト生成ステップでは、文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する複数の簡易レイアウトを生成することを特徴とする請求項４に記載のレイアウト処理方法。
【請求項６】
前記レイアウト結果生成ステップで生成されたレイアウト結果を提示するレイアウト結果提示ステップを更に有することを特徴とする請求項４又は５に記載のレイアウト処理方法。
【請求項７】
コンピュータを、
文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する簡易レイアウトを生成する簡易レイアウト生成手段と、
前記簡易レイアウト生成手段で生成された簡易レイアウトを提示する提示手段と、
前記提示手段で提示された簡易レイアウトからユーザ操作に基づいて簡易レイアウトを選択する選択手段と、
前記選択手段で選択された簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成するレイアウト結果生成手段と、
して機能させることを特徴とするプログラム。
【請求項８】
請求項７に記載のプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びレイアウト処理方法に関する。
【背景技術】
【０００２】
文書レイアウト処理の一例として、予め定められたレイアウト規則に従い、文書を構成する要素（以下、文書構成要素という）（例えば、文章（文字列）や図・表、イメージ等）を自動的にレイアウトする技術が知られている。但し、自動レイアウトの結果が所望のものであるか否かはレイアウト処理を行った後にしかわからない。そのため、所望のレイアウト結果でない場合には、レイアウト結果の大幅な変更や自動レイアウト処理の再実行が必要となる場合があった。このような問題点の改善として、複数のレイアウト規則を用いてレイアウト処理を行い、複数のレイアウト結果を生成する。そして、生成された複数のレイアウト結果からユーザ所望のレイアウト結果若しくは所望するイメージに近いレイアウト結果の選択を可能とする技術も知られている。
【０００３】
【特許文献１】特開平５−２０４８９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のレイアウト結果を提示する場合、個々のレイアウト結果作成の度にレイアウト処理が必要となるため、処理負荷が大きくなるという問題があった。
【０００５】
本発明はこのような問題点に鑑みなされたもので、装置に処理負荷をかけず、ユーザが所望するレイアウト結果を速やかに提供することを目的とする。
【課題を解決するための手段】
【０００６】
そこで、本発明は、文書を構成する要素である文書構成要素と、文書構成要素のレイアウトに係るレイアウトテンプレートと、に基づいて、レイアウト結果を例示する簡易レイアウトを生成する簡易レイアウト生成手段と、前記簡易レイアウト生成手段で生成された簡易レイアウトを提示する提示手段と、前記提示手段で提示された簡易レイアウトからユーザ操作に基づいて簡易レイアウトを選択する選択手段と、前記選択手段で選択された簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成するレイアウト結果生成手段と、を有することを特徴とする。
【０００７】
また、本発明は、レイアウト処理方法、プログラム及び記憶媒体としてもよい。
【発明の効果】
【０００８】
本発明によれば、装置に処理負荷をかけず、ユーザが所望するレイアウト結果を速やかに提供することができる。
【発明を実施するための最良の形態】
【０００９】
以下、本発明の実施形態について図面に基づいて説明する。
【００１０】
図１は、複数の情報処理装置１０１より構成されるネットワークシステムの一例を示す図である。ネットワークシステムには、各種データの伝送媒体となるネットワーク１０２上に複数の情報処理装置１０１が接続されている。
【００１１】
図２は、情報処理装置のハードウェア構成の一例を示す図である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）２０１は、各処理のための演算、論理判断等を行い、バス２０９を介してそれらのバスに接続された各構成要素を制御する。
ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２０２は、読み出し専用の固定メモリであり、ＣＰＵ２０１によって実行される処理プログラム等の制御プログラムコードを記憶する。
ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２０３は、各構成要素からの各種データの一時記憶に用いられる。
【００１２】
入力装置２０４は、情報（データ）の入力に用いられる。
表示装置２０５は、陰極線管ＣＲＴ（Ｃａｔｈｏｄ−Ｒａｙ  Ｔｕｂｅ）や液晶パネル等であり、表示装置２０６におけるドット構成の表示パターン及びカーソルの表示を表示装置コントローラ２０６が制御する。
外部記憶装置２０７は、種々の情報が格納される。また、これらのデータ及びプログラムを格納する記憶媒体としては、ＲＯＭ、フロッピーディスク（登録商標）、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、メモリカード、光磁気ディスク等を用いることができる。
通信装置２０８は、情報処理装置１０１をＥｔｈｅｒｎｅｔ（登録商標）等のネットワークに接続し、ネットワークシステムにおいて複数の情報処理装置同士を接続する役割を担う。
係る各構成要素からなる情報処理装置１０１においては、入力装置２０４からの各種の入力及び通信装置２０８から提供されるネットワーク経由の各種入力に応じて作動するものである。入力装置２０４からの入力及び通信装置２０８からの入力が供給されると、まず、インタラプト信号がＣＰＵ２０１に送られ、ＣＰＵ２０１が外部記憶装置２０７内に記憶してある各種の制御信号（又はプログラム）を読み出し、それらの制御信号に従って、各種の制御が行われる。
【００１３】
＜実施形態１＞
本実施形態では、図３から図１４を用いて情報処理装置１０１が、第一のレイアウト処理で大まかなレイアウトを決定（レイアウト結果を例示する簡易レイアウトを生成）する。そして、その後、情報処理装置１０１が、第二のレイアウト処理で精密なレイアウト処理を行う（簡易レイアウトに基づき、レイアウトを実行し、レイアウト結果を生成する）処理の一例について説明を行う。
図３は、本実施形態の概要を示す図である。本実施形態では、情報処理装置１０１は、紙媒体の文書をスキャンし、スキャンした文書のレイアウトを変更するために、第一のレイアウト処理により変更可能なレイアウトを示す。そして、情報処理装置１０１は、変更可能なレイアウトから選択されたレイアウトに対して第二のレイアウト処理を行うことで出力する。なお、本実施形態では、情報処理装置１０１が紙媒体の文書をスキャンするものとして説明を行う。しかしながら、スキャナ又はスキャン機能を有するＭＦＰ等からスキャンデータ（文書）を取得したＰＣ等が、第一のレイアウト処理及び第二のレイアウト処理を実行するようにしてもよい。
【００１４】
情報処理装置１０１は、紙媒体の文書３０１をスキャナ３０２（例えば情報処理装置１０１の入力装置２０４等）にて読み込み、文書画像化する。次に、情報処理装置１０１は、文書画像化から文書画像解析処理により文書構成要素３０３を抽出する。次に、情報処理装置１０１は、文書構成要素３０３を用いてレイアウト処理を行い複数の簡易レイアウト結果３０４を作成する。この複数の簡易レイアウト結果はレイアウトのイメージを示すものであって、文書構成要素間での大きさの調整等、精密なレイアウト処理は行われていない。次に、情報処理装置１０１は、ユーザの選択操作（ユーザ操作）等に基づいて、複数の簡易レイアウト結果３０４からレイアウトを選択する。この選択されたレイアウトは、例えば、ユーザの所望するレイアウトイメージに近いレイアウトである。情報処理装置１０１は、選択されたレイアウトに対して精密なレイアウト処理を行い最終的なレイアウト結果３０５を得る。情報処理装置１０１は、精密なレイアウトとして、文書構成要素間での大きさ調整を行い、拡縮・変形等の処理を行う。また、文書構成要素が文字列であれば、情報処理装置１０１は、精密なレイアウトとして、文字列の並び替え処理等によりレイアウトバランスを整える。
【００１５】
情報処理装置１０１は、このように複数のレイアウトを生成する段階では、処理負荷の大きい精密なレイアウト処理を行うのではなく、レイアウトイメージが把握可能な簡易レイアウト処理を行う。そして、情報処理装置１０１は、ユーザが所望するレイアウトイメージにのみ処理負荷の大きな精密なレイアウト処理を行い、全体の処理負荷を軽減させる。なお、より詳細な処理に関しては、後述するフローチャートを用いて説明する。
【００１６】
図４は、情報処理装置１０１の機能構成の一例を示す図である。図４に示すように、情報処理装置１０１は、機能構成として、入力部４０１、文書画像解析部４０２、文書構成要素格納部４０３、第一レイアウト部４０４、第二レイアウト部４０５、出力部４０６、テンプレート格納部４０７を含む。
入力部４０１は、操作者による入力及び文書画像を受け付ける。
文書画像解析部４０２は、入力部４０１から入力された文書画像を解析し、文書構成要素（文字列や画像等）を抽出する。抽出した文書構成要素情報は文書構成要素格納部４０３を介してＲＡＭ２０３又は外部記憶装置２０７等に格納する。文書構成要素情報に関しては後述する図８を用いて説明する。
【００１７】
文書構成要素格納部４０３は、文書画像解析部４０２により抽出された文書構成要素の情報をＲＡＭ２０３又は外部記憶装置２０７等に格納し、管理する。
第一レイアウト部４０４は、文書構成要素格納部４０３を介してＲＡＭ２０３又は外部記憶装置２０７等に格納されている文書構成要素と、テンプレート格納部４０７を介してＲＡＭ２０３又は外部記憶装置２０７等に格納されているレイアウトテンプレートと、に基づきレイアウト処理を行う。レイアウトテンプレートはテンプレート格納部４０７によって、文書構成要素数に関連付けられて保持されている。第一レイアウト部４０４は、文書構成要素格納部４０３によって管理されている処理対象の文書の文書構成要素の数（文書構成要素数）と関連付けられるレイアウトテンプレート全てに対してレイアウト処理を行う。第一レイアウト部４０４における処理の詳細は、後述する図９を用いて説明を行う。
【００１８】
第二レイアウト部４０５は、第一レイアウト部４０４によるレイアウト結果に基づき、精密なレイアウト処理を行う。前述したが、精密なレイアウトとは文書構成要素に対する変形処理等を含む処理を指す。第二レイアウト部４０５における処理の詳細は、後述する図１３を用いて説明を行う。
出力部４０６は、第一レイアウト部４０４及び第二レイアウト部４０５によるレイアウト結果を出力（又は提示）する（レイアウト結果提示）。
【００１９】
テンプレート格納部４０７は、レイアウトに関する情報を定めたテンプレートをＲＡＭ２０３又は外部記憶装置２０７等に記憶し、管理している。後述する図１０に示すようにテンプレート格納部４０７は、テンプレートＩＤ１００１と文書構成要素数１０００とを関連付けたテーブルをＲＡＭ２０３又は外部記憶装置２０７等に保持し、管理している。例えば、テンプレート格納部４０７は、文書構成要素数からテンプレートＩＤを特定し、テンプレートＩＤを用いて実際のテンプレートデータにアクセスする。例えば、文書構成要素数が２の場合、テンプレートＩＤが０１０、０１１・・・のテンプレートが関連付けられていることがわかる。テンプレートデータは後述する図１１のようなＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で保持されており、例えばテンプレート格納部４０７は、テンプレートＩＤを用いてテンプレートデータを参照することができる。テンプレートテーブル及びテンプレートデータの詳細は、後述する図１０、図１１を用いて説明する。
【００２０】
図５は、本実施形態の処理の概要を示すフローチャートである。
ステップＳ５０００において、文書画像解析部４０２は、文書画像解析処理を行う。文書解析処理は、文書画像を解析し、文書構成要素の抽出を行う。文書画像解析処理の詳細に関しては、後述する。
ステップＳ５０１０において、第一レイアウト部４０４は、第一レイアウト処理を行う。第一レイアウト部４０４は、ステップＳ５０００で抽出された文書構成要素に基づき、複数のレイアウトテンプレートを取得し、取得したテンプレートを用いて複数のレイアウトを作成する（簡易レイアウト生成）。第一レイアウト処理の詳細は、後述する図９を用いて説明する。
【００２１】
ステップＳ５０２０において、出力部４０６は、ステップＳ５０１０における第一レイアウト処理の結果（簡易レイアウト）を表示装置２０５等に表示し、ユーザに提示する。図６は、簡易レイアウトの一例を示す図である。
ステップＳ５０３０において、入力部４１０又は第二レイアウト部４０５は、ユーザの選択操作等に基づいて、ステップＳ５０２０で表示された複数のレイアウト（簡易レイアウト）からレイアウト（簡易レイアウト）を選択する。
ステップＳ５０４０において、第二レイアウト部４０５は、ステップＳ５０３０で選択された簡易レイアウトに基づいて、第二レイアウト処理を行う。第二レイアウト部４０５は、ステップＳ５０３０で選択された簡易レイアウトに対して、再度レイアウト処理を行う（レイアウト結果生成）。第二レイアウト処理の詳細は、後述する図１３を用いて説明する。出力部４０６は、第二レイアウト処理の結果（レイアウト結果）を表示装置２０５等に表示し、ユーザに提示する。
【００２２】
次に、図５のステップＳ５０００の文書画像解析処理についてより詳細に説明する。文書画像解析処理とは、画像から意味のあるブロックをかたまりとして認識して、ブロック各々の属性を判定し、異なる属性を持つブロックに分割する処理である。図７は、文書画像解析処理の概念を示す図である。例えば、図７（ａ）のラスタ画像に対して文書画像解析部４０２が文書画像解析処理を行なうと、図７（ｂ）のように文字、画像等のブロックとして分割する。
【００２３】
以下、文書画像解析処理の一例を示す。
文書画像解析部４０２は、入力画像を受け取ると、白黒画像に二値化する。そして、文書画像解析部４０２は、輪郭線追跡を行い黒画素輪郭で囲まれる画素のかたまりを抽出する。文書画像解析部４０２は、一定面積以上の黒画素の場合、内部にある白画素に対しても輪郭線追跡を行い白画素のかたまりを抽出する。文書画像解析部４０２は、抽出した白画素のかたまりが一定面積以上であれば、更に黒画素のかたまりを抽出する。文書画像解析部４０２は、この抽出処理を、抽出されたかたまりが一定面積以上であれば、再帰的に実行する。
【００２４】
文書画像解析部４０２は、上記の処理で得られた黒画素のかたまりを大きさ及び形状により様々な属性を持つブロックとして分類する。例えば、文書画像解析部４０２は、縦横比が１に近いブロックは文字相当の画素のかたまりとし、隣接する文字相当の画素のかたまりが整列されていてグループ化可能な場合は文字列ブロックとする。また、文書画像解析部４０２は、不定形の画素のかたまりが散在する場合、写真ブロック、それ以外は図形ブロック等に分類する。
文書画像解析部４０２は、分類したブロックの位置情報や属性等を文書構成要素情報としてＲＡＭ２０３若しくは外部記憶装置２０７に記憶する。
【００２５】
図８は、文書構成要素の一例を示す図である。
図８に示すように文書構成要素情報は、各構成要素を一意に決定するためのＩＤ８０１、構成要素の属性８０２（１：文字列、２：図面、３：写真）、構成要素の位置座標８０３、８０４（Ｘ、Ｙ）、構成要素の外接矩形の幅Ｗ８０５及び高さＨ８０６を含む。
構成要素の位置座標８０３は、原稿画像の左上を原点（０、０）とした場合の位置座標である。構成要素の幅Ｗ８０４及び高さＨ８０５は、画素数で表現される。
【００２６】
続いて、図５のステップＳ５０１０の第一レイアウト処理について説明する。図９は、第一レイアウト処理の一例を示すフローチャートである。
ステップＳ９０００において、第一レイアウト部４０４は、レイアウト対象となる文書構成要素数を取得する。文書構成要素は既述したように、文書構成要素格納部４０３により管理されており、図８に示すような形式で保持、管理されている。
ステップＳ９０１０において、第一レイアウト部４０４は、テンプレート取得を行う。テンプレート取得処理では、第一レイアウト部４０４は、文書構成要素数からレイアウト可能なテンプレートを特定するテンプレートＩＤを決定し、テンプレートＩＤから実際のテンプレートデータへアクセスする。より具体的に説明すると、第一レイアウト部４０４は、図１０に示すテンプレートテーブルを参照し、ステップＳ９０００において取得した文書構成要素の数と対応づけられているテンプレートＩＤを特定する。例えば、文書構成要素数が５の場合、第一レイアウト部４０４は、テンプレートＩＤを０５０、０５１、・・・と特定する。そして、第一レイアウト部４０４は、テンプレートＩＤを特定した後、図１１に示すＸＭＬで記述されたテンプレートデータから該当するテンプレートＩＤの要素へアクセスすることによりテンプレートデータを取得する。文書構成要素数が５の場合の例では、図１１に示すデータ中のＩＤ＝０５０、ＩＤ＝０５１、・・・である要素が実際のテンプレートデータになる。
ステップＳ９０２０において、第一レイアウト部４０４は、文書構成要素の配置処理を行う。より具体的に説明すると、第一レイアウト部４０４は、ステップＳ９０１０において取得したテンプレートデータに基づき、ステップＳ９０００で取得した文書構成要素を配置する。文書構成要素配置処理の詳細は、後述する図１２を用いて説明する。
【００２７】
次に、テンプレートデータ保持方法に関して図１０及び図１１を用いて説明を行う。
図１０は、テンプレートデータと文書構成要素数を関連付けるテンプレートテーブルであり、文書構成要素数１００１とテンプレートＩＤ１００２とから構成される。
文書構成要素数１００１は、関連付けられているテンプレートが許容する文書構成要素の数を示している。例えば、文書構成要素数が３に関連付けられているテンプレート（ＩＤ＝０２０、０２１、・・・）は、文書構成要素を３つ配置できることを示している。
テンプレートＩＤ１００２は、テンプレートデータを一意に特定するための番号であり、テンプレートデータ毎に異なる番号がふられている。例えば、文書構成要素数が３の場合、図１０より、テンプレートＩＤは０２０、０２１であることがわかる。
【００２８】
図１１は、レイアウト規則が記述されたテンプレートのデータを記載したＸＭＬデータの一例を示す図である。テンプレートデータは、テンプレートデータのルートを示すルート要素１１０１、テンプレートデータの実体を示すテンプレート要素１１０２、テンプレートのページに関する情報を示すページ要素１１０３を含む。また、テンプレートデータは、文書構成要素を配置する場所に関する情報を示すコンテナ要素１１０４を含む。
ルート要素１１０１は、複数のテンプレート要素をまとめるためのルート要素であり、ＸＭＬデータのルートとなる要素である。言い換えると、テンプレートデータを記載したＸＭＬデータ中にただ一つだけ存在する要素である。ルート要素は、テンプレートデータの実体の総数を示す属性（ｔｅｍｐｌａｔｅｓ＿ｎｕｍｂｅｒ）１１０５を持っている。
【００２９】
テンプレート要素１１０２はテンプレートデータの実体を示す要素であり、テンプレートを特定するためのテンプレートＩＤ（ｉｄ）１１０６及びテンプレートで配置可能な文書構成要素数（ｃｏｎｔｅｎｔｓ＿ｎｕｍｂｅｒ）１１０７を属性として持っている。例えば、テンプレートＩＤが０３５のテンプレートは、図１１より４つの文書構成要素を配置可能なことがわかる。
ページ要素１１０３は、テンプレートのページ情報として、レイアウトする領域の幅１１０８及び高さ１１０９を持っている。例えば、テンプレートＩＤが０３６で示されるテンプレートにおけるページの大きさは高さｗｗｗ、幅ｈｈｈとなる。
【００３０】
コンテナ要素１１０４は、文書構成要素を配置する位置及び領域の大きさに関する情報を属性として持っている。より具体的に説明すると、コンテナ要素１１０４は、配置位置として、ページ領域の左上を原点とした配置領域の左上頂点のｘ座標を示すｘ属性１１１０と、ｙ座標を示すｙ属性１１１１と、を持つ。また、コンテナ要素１１０４は、領域の大きさを示す属性として領域の最大サイズ及び最小サイズを持っている。より具体的に説明するとコンテナ要素１１０４は領域の最小幅を示すｍｉｎ＿ｗｉｄｔｈ属性１１１２、最大幅を示すｍａｘ＿ｗｉｄｔｈ属性１１１３、最小高さを示すｍｉｎ＿ｈｅｉｇｈｔ属性１１１４、最大高さを示すｍａｘ＿ｈｅｉｇｈｔ属性１１１５を持つ。領域サイズの大きさは、ここで定められる範囲で変更可能であり文書構成要素の大きさや各文書構成要素間の関係により調整される。この調整処理は、本実施形態における第二レイアウト処理において行われる処理と同様である。
【００３１】
以上、テンプレートデータの説明を行った。ここでは、テンプレートとして１ページのデータしか例示していないが、ページ数が複数であることを許容してもよい。また、コンテナ要素としては領域の位置と変更可能なサイズ範囲のみを例示したが、領域に複数の文書構成要素を配置することを許すことを示す属性を追加してもよい。複数の文書構成要素配置を許容することに伴い、領域内の文書構成要素の並べ方（例えば、横方向に並べる、縦方向に並べる等）を属性として追加することができる。
【００３２】
続いて、図９ステップＳ９０２０の文書構成要素配置処理について説明する。図１２は文書構成要素配置処理の一例を示すフローチャートである。
ステップＳ１３０００において、第一レイアウト部４０４は、配置位置取得処理を行う。より具体的に説明すると、第一レイアウト部４０４は、テンプレートデータ中のコンテナ要素から文書構成要素を配置可能な領域の位置を取得する。領域が複数ある場合（文書構成要素が複数ある場合）は、第一レイアウト部４０４は、全ての領域に対して取得処理を行う。
【００３３】
ステップＳ１３０１０において、第一レイアウト部４０４は、組合せ算出処理を行う。より具体的に説明すると、第一レイアウト部４０４は、文書構成要素の並び順を考慮した場合の組合せを算出する（順列とも言う）。第一レイアウト部４０４は、算出結果を、不図示の組合せテーブルに格納する。
組合せ算出処理について一例を用いて説明する。文書構成要素数が３の場合、並び順を考慮した組合せの数は６通りある。文書構成要素がそれぞれ要素１、要素２、要素３である場合を考えると、並び順を考慮した組合せ（６通り）は次のようになる。
（１）要素１、要素２、要素３。（２）要素１、要素３、要素２。（３）要素２、要素１、要素３。（４）要素２、要素３、要素１。（５）要素３、要素１、要素２。（６）要素３、要素２、要素１。
ここでは、各文書構成要素間に並び順の制約がないこととして組合せを算出したが、並び順に制約を設けてもよい。例えば、文書構成要素Ａは必ず文書構成要素Ｂの後に来なければいけないという関係があれば、第一レイアウト部４０４は、この制約を守る組合せのみを算出してもよい。文書画像解析処理において、文書構成要素間の関係まで抽出できる場合は、このような制約を設けるのが効果的である。このようにすることにより、文字列として抽出された文書構成要素の順番や図とその説明文等の関係を保持したレイアウトのみを作成することができる。
【００３４】
ステップＳ１３０２０において、第一レイアウト部４０４は、配置処理を行う。より具体的に説明すると、第一レイアウト部４０４は、ステップＳ１３０００において取得した配置位置に対して、文書構成要素を配置していく。第一レイアウト部４０４は、文書構成要素の配置順を、組合せテーブルから取得する。第一レイアウト部４０４は、配置を行った組合せを、組合せテーブルから削除する。
ステップＳ１３０３０において、第一レイアウト部４０４は、組合せが残っているか否かを判定する。第一レイアウト部４０４は、組合せテーブルを参照して、配置処理の終了していない組合せが存在するか否かを判定する。判定の結果、未配置の組合せが存在する場合、第一レイアウト部４０４は、ステップＳ１３０２０へ戻る。未配置の組合せが存在しない場合、第一レイアウト部４０４は、図１２に示す処理を終了する。
以上、第一レイアウト処理及び第一レイアウト処理に関連する処理について詳細に説明した。次に、図５のステップＳ５０４０の第二レイアウト処理について詳細に説明する。
【００３５】
図１３は、第二レイアウト処理の一例を示すフローチャートである。
ステップＳ１２０００において、第二レイアウト部４０５は、テンプレート取得を行う。より具体的に説明すると、第二レイアウト部４０５は、第一レイアウト処理の結果のうち、ユーザ等によって選択されたレイアウトデータ（簡易レイアウト）に基づき、テンプレートデータを取得する。テンプレートデータは、図１１を用いて説明したＸＭＬ形式のデータである。
ステップＳ１２０１０において、第二レイアウト部４０５は、文書構成要素のサイズを取得する。より具体的に説明すると、第二レイアウト部４０５は、選択された第一のレイアウト処理の結果（簡易レイアウト）にレイアウトされている文書構成要素全てに対してサイズ取得を行う。各文書構成要素のサイズは、図８で示すテーブルに保持されており、このテーブルを参照することにより第二レイアウト部４０５は、各文書構成要素のサイズを取得する。例えば、各文書構成要素のサイズ図８におけるデータＩＤ００１のサイズとして、幅Ｗ１、高さＨ１を取得することができる。
【００３６】
ステップＳ１２０２０において、第二レイアウト部４０５は、領域レイアウト処理を行う。より具体的に説明すると、第二レイアウト部４０５は、ステップＳ１２０００で取得したテンプレートデータとステップＳ１２０１０で取得した文書構成要素のサイズとに基づき、実際に各文書構成要素を配置する領域のサイズを算出する。前述したように、テンプレート中には文書構成要素を配置する領域の最大値及び最小値が定められている。第二レイアウト部４０５は、この最大値、最小値を満たし、文書構成要素のサイズがなるべく変化しないように配置領域のサイズを決定する。この領域レイアウト処理は、既存のレイアウト技術により実現される。
ステップＳ１２０３０において、第二レイアウト部４０５は、文書構成要素の配置処理を行う。より具体的に説明すると、第二レイアウト部４０５は、ステップＳ１２０２０で算出された領域に対して文書構成要素を配置する。文書構成要素配置処理の詳細は、以下、図１４を用いて説明する。
【００３７】
図１４は、図１３のステップＳ１２０３０の文書構成要素配置処理の一例を示すフローチャートである。
ステップＳ１４０００において、第二レイアウト部４０５は、文書構成要素の種別判定を行う。より具体的に説明すると、第二レイアウト部４０５は、文書構成要素が文字列であるか否かの判定を行う。図８の説明において先に述べたように、文書構成要素は属性を持っている。第二レイアウト部４０５は、この属性に基づき文字列か否かの判定処理を行う。判定の結果、文字列である場合、第二レイアウト部４０５は、ステップＳ１４０１０へ移行する。文字列でない場合、第二レイアウト部４０５は、ステップＳ１４０３０へ移行する。
【００３８】
ステップＳ１４０１０において、第二レイアウト部４０５は、文字列である文書構成要素を個々の文字画像へ分割する。より具体的に説明すると、第二レイアウト部４０５は、ＯＣＲ等の処理で従来から知られている文字画像切り出し処理を用いて行う。例えば、文書構成要素が"二段階のレイアウト処理"という文字列を示す画像データである場合、第二レイアウト部４０５は、"二"、"段"、"階"、"の"、"レ"、"イ"、"ア"、"ウ"、"ト"、"処"、"理"という文字画像に分割する。
ステップＳ１４０２０において、第二レイアウト部４０５は、文字画像のレイアウトを行う。より具体的に説明すると、第二レイアウト部４０５は、ステップＳ１４０１０において分割された文字画像を配置領域にレイアウトする。例えば、第二レイアウト部４０５は、文字画像を領域に対して順番に配置していくことによりレイアウトを実現することができる。領域内に収まらない場合、第二レイアウト部４０５は、全ての文字画像を同じ割合で縮小し、領域に収まるようにすればよい。また、領域が余る場合、第二レイアウト部４０５は、全ての文字画像を同じ割合で拡大し、領域の余白を最小化することもできる。
【００３９】
なお、第二レイアウト部４０５は、文字画像に対して文字認識処理を行い、レイアウト時に組版規則を適用することも可能である。この場合、第二レイアウト部４０５は、別途組版規則を保持しておき文字画像配置時に制約として適用することとなる。組版規則の適用により、例えば行頭に"。"等の句読点が配置されるということを防ぐことができる。
また、第二レイアウト部４０５は、文字画像を画像のままレイアウトせず、ＯＣＲによる文字認識の結果に基づき、コンピュータで管理されるフォントデータを用いてレイアウト処理を行うようにしてもよい。本実施形態において文字認識処理を用いなかったのは、一般に文字認識処理では誤認識があるためである。本実施形態では、誤認識の影響を最小限にするために文字画像のままレイアウト処理を行っている。
【００４０】
ステップＳ１４０３０において、第二レイアウト部４０５は、文書構成要素のアスペクト変更が必要か否かを判定する。より具体的に説明すると、第二レイアウト部４０５は、文字列以外の文書構成要素のアスペクト比と配置領域のアスペクト比とを比べることにより、アスペクト比を変更しなくても配置領域に収まるか否かを判定する。例えば、文書構成要素のアスペクト比が４：３であり、配置領域のアスペクト比が３：４であれば、アスペクト比が異なるため、第二レイアウト部４０５は、文書構成要素のアスペクト比を維持したまま配置することができないと判定する。
判定の結果、アスペクト比の変更が不要な場合、第二レイアウト部４０５は、ステップＳ１４０４０へ移行する。変更が必要な場合、第二レイアウト部４０５は、ステップＳ１４０５０へ移行する。
【００４１】
ステップＳ１４０４０において、第二レイアウト部４０５は、文書構成要素を拡縮して配置領域へ配置する。より具体的に説明すると、第二レイアウト部４０５は、配置領域のサイズまで文書構成要素を拡大若しくは縮小することにより行う。例えば、配置領域の幅が１００で高さが１５０で、文書構成要素の幅が３００、高さが４５０であれば、第二レイアウト部４０５は、文書構成要素の幅を１００、高さを１５０へ縮小する。
ステップＳ１４０５０において、第二レイアウト部４０５は、文書構成要素からオブジェクト検出を行う。オブジェクト検出処理によってもオブジェクトが検出されなかった場合、第二レイアウト部４０５は、文書構成要素の中心をオブジェクトとして設定する。
なお、第二レイアウト部４０５は、既存の技術を用いてオブジェクトを検出する。既存の技術としては、例えば、人物が写った写真から顔領域を検出する技術等がある。複数のオブジェクト検出技術を用いる場合、例えば、第二レイアウト部４０５は、個々のオブジェクト検出技術（オブジェクト検出方法）に優先度を設けておく。そして、第二レイアウト部４０５は、優先度の高い方法順でオブジェクト検出処理を行い、オブジェクトが検出された場合は処理を終了するようにしてもよい。
【００４２】
ステップＳ１４０６０において、第二レイアウト部４０５は、ステップＳ１４０５０にて検出されたオブジェクトを中心として配置領域のサイズに文書構成要素をクリッピングし、クリッピングされた文書構成要素を配置する。例えば、文書構成要素（画像）から顔が検出されていた場合、第二レイアウト部４０５は、顔を中心にしてクリッピング処理し、顔が中心にクリッピングされた画像を配置する。ステップＳ１４０５０においてオブジェクトが検出されていなかった場合、第二レイアウト部４０５は、文書構成要素の中心がオブジェクトとして設定されているので文書構成要素の中心をクリッピング領域の中心とする。
このようにオブジェクト検出に基づくクリッピングを行うことで、ある程度意味を持つクリッピングが可能となる。例えば、画像を領域へ配置する場合、画像と領域の形状及びサイズが異なれば、画像に対して拡縮若しくはクリッピングを行う必要がある。アスペクト比の変更を伴う拡縮は、画像の印象を大きく変えてしまうため好ましくない。そこで、クリッピングを行うことになるが、クリッピングする位置を単純に決めておく場合、画像中のオブジェクトを分断する形でクリッピングされてしまう。画像の中心をクリッピングの中心として単純な処理を行った場合、人物の顔部分が半分に分断されてしまう等の現象が生じてしまう。第二レイアウト部４０５が、オブジェクトを検出し、検出結果に基づきクリッピングすることで、オブジェクトの分断等を防ぐことができる。
【００４３】
以上、図１４を用いて第二レイアウト処理における文書構成要素の配置について詳細に説明した。ここでは、文書構成要素の種別により配置方法を変更することで文書構成要素の特性を活用したレイアウトを可能にしている。例えば、文字列は画像に比べ柔軟なレイアウトが可能である。文字列は改行位置を変更するだけでさまざまな形状の領域に配置することができる。より具体的に説明すると、改行位置を変えることで縦長の領域にも横長の領域にも対応可能である。一方、画像等の場合は領域形状に対する柔軟性が低い。縦長の画像を横長の領域に配置する場合は、アスペクト比を変更して拡縮するか、クリッピング処理を行わなくてはならない。
また、オブジェクト検出を用いたクリッピングにより、クリッピングの必要性が生じた場合もオブジェクトを中心としてクリッピングを行うことが可能である。クリッピングにおいてオブジェクトの分断を削減する効果がある。
【００４４】
以上、図３から図１４までの図を用いて処理負荷を削減したレイアウト方法の説明を行った。第一レイアウト部４０４は、処理負荷の比較的少ない処理のみを実施し、レイアウトイメージを確認できる程度の簡易なレイアウトを生成した。そして、ユーザは、簡易レイアウトから所望のイメージに近いレイアウトを選択する。第二レイアウト部４０５は、選択されたレイアウトに対して処理負荷の大きな処理を行うことで、レイアウト処理全体の処理負荷を削減することができる。
本実施形態では、２つのレイアウト処理を用いて、全体の処理負荷を削減したが、任意数のレイアウト処理を用いても処理負荷を削減することができる。
【００４５】
＜その他の実施形態＞
また、本発明の目的は、以下のようにすることによって達成される。即ち、上述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（又は記録媒体）を、システム或いは装置に供給する。そして、そのシステム或いは装置の中央演算処理手段（ＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が上述した実施形態の機能を実現することになり、そのプログラムコードを記録した記憶媒体は本発明を構成することになる。
【００４６】
また、システム或いは装置の前記中央演算処理手段が読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、システム或いは装置上で稼働しているオペレーティングシステム（ＯＳ）等が実際の処理の一部又は全部を行う。その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００４７】
更に、記憶媒体から読み出されたプログラムコードが、前記システム或いは装置に挿入された機能拡張カードや、接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行い、その処理によって上述した実施形態の機能が実現される場合も含まれる。
【００４８】
本発明を前記記憶媒体に適用する場合、その記憶媒体（コンピュータ読み取り可能な記憶媒体）には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【００４９】
以上、上述した各実施形態によれば、装置に処理負荷をかけず、ユーザが所望するレイアウト結果を速やかに提供することができる。
【００５０】
以上、本発明の好ましい実施形態について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【図面の簡単な説明】
【００５１】
【図１】複数の情報処理装置１０１より構成されるネットワークシステムの一例を示す図である。
【図２】情報処理装置１０１のハードウェア構成の一例を示す図である。
【図３】本実施形態の概要を示す図である。
【図４】情報処理装置１０１の機能構成の一例を示す図である。
【図５】本実施形態の処理の概要を示すフローチャートである。
【図６】簡易レイアウトの一例を示す図である。
【図７】文書画像解析処理の概念を示す図である。
【図８】文書構成要素の一例を示す図である。
【図９】第一レイアウト処理の一例を示すフローチャートである。
【図１０】テンプレートデータと文書構成要素数を関連付けるテンプレートテーブルの一例を示す図である。
【図１１】レイアウト規則が記述されたテンプレートのデータを記載したＸＭＬデータの一例を示す図である。
【図１２】文書構成要素配置処理の一例を示すフローチャートである。
【図１３】第二レイアウト処理の一例を示すフローチャートである。
【図１４】図１３のステップＳ１２０３０の文書構成要素配置処理の一例を示すフローチャートである。
【符号の説明】
【００５２】
１０１  情報処理装置
【図１】
2010097564.tif 000003
【図２】
2010097564.tif 000004
【図３】
2010097564.tif 000005
【図４】
2010097564.tif 000006
【図５】
2010097564.tif 000007
【図６】
2010097564.tif 000008
【図７】
2010097564.tif 000009
【図８】
2010097564.tif 000010
【図９】
2010097564.tif 000011
【図１０】
2010097564.tif 000012
【図１１】
2010097564.tif 000013
【図１２】
2010097564.tif 000014
【図１３】
2010097564.tif 000015
【図１４】
2010097564.tif 000016