(57)【要約】【課題】テンプレートに配置される画像に対して適切な編集処理を行うことができる画像処理装置を提供する。【解決手段】テンプレートへのレイアウト対象の画像を取得し、レイアウトに対応したカテゴリに応じた編集処理を用いて、取得された複数の画像を編集する。その編集された画像を、カテゴリに対応するテンプレート上に配置する。【選択図】図３３
2014016825.tif 000002
【特許請求の範囲】
【請求項１】
画像をテンプレート上にレイアウトする画像処理装置であって、
テンプレートへのレイアウト対象の画像を取得する取得手段と、
レイアウトに対応したカテゴリに応じた編集処理を用いて、前記取得手段が取得した複数の画像を編集する編集手段と、
前記編集手段により編集された画像を、前記カテゴリに対応するテンプレート上に配置する配置手段と、
を備えることを特徴とする画像処理装置。
【請求項２】
前記編集手段は、前記カテゴリに基づき、前記レイアウト対象の画像における当該カテゴリに応じた領域をトリミングすることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記編集手段は、前記レイアウト対象の画像に基づいて当該画像における編集の対象の画像の領域を特定し、特定された当該領域の色を、前記カテゴリに応じた色に変更することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記取得手段は、前記カテゴリに応じた数またはサイズの画像を、当該カテゴリに対応するテンプレートへのレイアウト対象として取得することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
画像をテンプレート上にレイアウトする画像処理装置において実行される画像処理方法であって、
前記画像処理装置の取得手段が、テンプレートへのレイアウト対象の画像を取得する取得工程と、
前記画像処理装置の編集手段が、レイアウトに対応したカテゴリに応じた編集処理を用いて、前記取得工程において取得された複数の画像を編集する編集工程と、
前記画像処理装置の配置手段が、前記編集工程において編集された画像を、前記カテゴリに対応するテンプレート上に配置する配置工程と、
を有することを特徴とする画像処理方法。
【請求項６】
請求項５に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに対して画像処理を実行する画像処理装置、画像処理方法およびプログラムに関する。
【背景技術】
【０００２】
複数の写真を組み合わせてコラージュやアルバムを作成する技術がある。
またコラージュやアルバムを作成する際に自動でレイアウトを作成する技術がある。
【０００３】
特許文献1では、レイアウト作成の際に使用するテンプレートの各画像合成枠に、配置される画像に対する編集情報が予め設定されており、その情報に基づいて自動で画像を編集し、レイアウトを作成する技術が記されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２６０９５７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述した特許文献には以下のような課題が存在する。特許文献1では、配置画像に対する編集指示がテンプレートに固定的に設定されている。そのため、画像に対して適切な編集が行えない場合があった。
【０００６】
本発明は、上記の点に鑑み、テンプレートに配置される画像に対して適切な編集処理を行うことができる画像処理装置、画像処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するため、本発明に係る画像処理装置は、画像をテンプレート上にレイアウトする画像処理装置であって、テンプレートへのレイアウト対象の画像を取得する取得手段と、レイアウトに対応したカテゴリに応じた編集処理を用いて、前記取得手段が取得した複数の画像を編集する編集手段と、前記編集手段により編集された画像を、前記カテゴリに対応するテンプレート上に配置する配置手段とを備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、テンプレートのテーマに応じた編集処理を実行するため、画像に対して適切な編集処理を行うことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明のソフトウェアを実行可能なハードウェア構成を示す図。
【図２】本発明の処理のソフトウェア構成を示すブロック図。
【図３】画像解析処理のフローチャート。
【図４】画像解析処理のフローチャート。
【図５】人物グループ生成処理のフローチャート。
【図６】自動レイアウト提案処理のフローチャート。
【図７】人物グループの表示例を示す図。
【図８】サムネイル形式による画像群の表示例を示す図。
【図９】カレンダー形式による画像群の表示例を示す図。
【図１０】画像解析した結果得られる属性情報の例を示す図。
【図１１】画像解析結果の保存形式の例を示す図。
【図１２】ユーザーが手動入力可能な属性情報の例を示す図。
【図１３】手動でお気に入り度を入力するためのＵＩ例を示す図。
【図１４】手動でイベント情報を入力するためのＵＩ例を示す図。
【図１５】手動で人物属性情報を入力するためのＵＩ例を示す図。
【図１６】人物属性情報の保存形式の例を示す図。
【図１７】レイアウトテンプレートの一例を示す図。
【図１８】図１７のレイアウトテンプレートの保持形式の例を示す図。
【図１９】レイアウトテンプレートの一例を示す図。
【図２０】図１９のレイアウトテンプレートの保持形式の例を示す図。
【図２１】第１の実施形態における自動レイアウト生成処理のフローチャート。
【図２２】第１の実施形態における不要画像フィルタリング処理のフローチャート。
【図２３】自動トリミング処理の一例を示す図。
【図２４】自動レイアウトを行う際のレイアウト評価値の例を示す図。
【図２５】明るさ適正度の算出方法を説明するための図。
【図２６】彩度適正度の算出方法を説明するための図。
【図２７】トリミング欠け判定処理を説明するための図。
【図２８】画像類似性判定処理を説明するための図。
【図２９】自動レイアウト生成結果の表示例を示す図。
【図３０】決定されたテーマと主人公情報の保持例を示す図。
【図３１】決定されたテーマと主人公情報の保持例を示す図。
【図３２】生成した自動レイアウト情報の保持例を示す図。
【図３３】レイアウト生成処理のフローチャート。
【図３４】スロットに対する画像配置の例を示す図。
【図３５】コントラスト補正処理の一例を示す図。
【図３６】コントラスト補正パラメータの算出方法を説明するための図。
【図３７】生成した自動レイアウト情報の保持例を示す図。
【図３８】レイアウトテンプレートの一例を示す図。
【図３９】図３８のレイアウトテンプレートの保持形式の例を示す図。
【図４０】第３の実施形態におけるスロットの位置情報算出処理のフローチャート。
【図４１】第３の実施形態における配置パラメータの一例を示す図。
【図４２】スロット配置の一例を示す図。
【図４３】スロット配置の一例を示す図。
【図４４】スロットサイズの算出方法を説明するための図。
【図４５】生成した自動レイアウト情報の保持例を示す図。
【図４６】第１の実施形態における配置パラメータ算出基準の一例を示す図。
【図４７】第３の実施形態におけるスロット情報生成処理のフローチャート。
【図４８】生成した自動レイアウト情報の保持例を示す図。
【発明を実施するための形態】
【００１０】
以下、添付図面を参照して本発明の好適な実施例を詳しく説明する。尚、以下の実施例は特許請求の範囲に係る本発明を限定するものでなく、また本実施例で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成要素には同一の参照番号を付して、説明を省略する。
【００１１】
（第１の実施形態）
以下では、入力画像群を用いて自動でレイアウト出力物を生成するための実施形態について説明する。これはあくまで実施の１つの形態を例として示したものであり、本発明は以下の実施に限定されるものではない。
【００１２】
なお、本実施形態では簡単のため、レイアウト出力物として、１ページのコラージュ系出力物を想定するが、複数ページのアルバム出力であっても良い。
【００１３】
図１は、第１実施形態に係わる情報処理装置のハードウェア構成例を説明するブロック図である。図１において、情報処理装置１１５は、ＣＰＵ１００と、ＲＯＭ１０１と、ＲＡＭ１０２と、２次記憶装置１０３と、表示装置１０４と、入力装置１０５と、ＩＦ１０７と、ＩＦ１０８と、無線ＬＡＮ１０９を備えている。さらに、内部撮像デバイス１０６を備えている。これらは、制御バス／データバス１１０により相互に接続されている。本実施形態の情報処理装置１１５は、画像処理装置として機能する。
【００１４】
図１において、ＣＰＵ（中央演算装置）１００は、本実施形態で説明する情報処理方法を以下に示すアプリケーションなどのプログラムに従って実行する。ＲＯＭ101は、ＣＰＵ100により実行されるプログラムが記憶されている。ＲＡＭ102は、ＣＰＵ100によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。２次記憶装置103はハードディスク等であり、画像ファイルや画像解析結果を保存するデータベースなどを保存するための記憶媒体である。表示装置104は例えばディスプレイであり、本実施形態の処理結果や以下に示す種々のＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）をユーザーに提示する装置である。表示装置１０４はタッチパネル機能を備えても良い。また、１１０は制御バス／データバスであり、上述の各部とＣＰＵ100とを接続する。このほかにユーザーが画像補正の処理の指示等を入力するためのマウスやキーボードといった入力装置105も備える。
【００１５】
また、画像処理装置である情報処理装置115は、内部撮像デバイス106を備えてもよい。該内部撮像デバイス106で撮像された画像は、所定の画像処理を経た後、２次記憶装置103に保存される。また、情報処理装置１１５はインターフェース（IF108）を介して接続された外部撮像デバイス111から読み込んでも構わない。さらに、情報処理装置115は無線LAN（Local Area Network）109を備え、該LANはインターネット113に接続されている。情報処理装置115は、インターネット113に接続された外部サーバー114より画像データを取得することもできる。
【００１６】
最後に、画像等を出力するためのプリンタ112が、IF107を介して情報処理装置１１５に接続されている。なお、該プリンタはさらにインターネット上に接続されており、上記無線LAN109経由でプリントデータのやり取りをすることもできる。
【００１７】
図2は本実施形態のアプリケーションを含む基本ソフトウェア構成のブロック図になっている。
【００１８】
まず情報処理装置115が取得した画像データは、通常JPEG（Joint Photography Expert Group）等の圧縮形式になっている。そのため、画像コーデック部200は、該圧縮形式を解凍していわゆるRGB点順次のビットマップデータ形式に変換する。変換されたビットマップデータは、表示・UI制御部201に伝達され、ディスプレイ等の表示装置104上に表示される。
【００１９】
上記ビットマップデータは、さらに画像センシング部203（アプリケーション）に入力され、同部において、画像の様々な解析処理（詳細は後述）が行われる。上記解析処理の結果得られた画像の様々な属性情報は、所定の形式に従ってデータベース202（アプリケーション）において、上述した２次記憶装置103に保存される。なお、以降においては、画像解析処理とセンシング処理は同義で扱う。
【００２０】
シナリオ生成部204（アプリケーション）では、ユーザーが入力した様々な条件に応じて、詳細は後述するが、自動で生成すべきレイアウトの条件を生成し、レイアウト生成部205では上記シナリオに従って、自動でレイアウトを生成する処理を行う。
【００２１】
生成したレイアウトは、レンダリング部206で表示用のビットマップデータを生成し、該ビットマップデータは表示・UI制御部201に送られ、結果が表示装置１０４に表示される。
【００２２】
また、レンダリング結果はさらにプリントデータ生成部207に送られ、同部でプリンタ用コマンドデータに変換され、プリンタに送出される（印刷制御）。
【００２３】
また、以下に示すものは最も基本的な処理のフローチャートである。
【００２４】
図3および図4は、画像センシング部203のフローを示しており、複数の画像データ群を取得して、それぞれについて解析処理を施し、その結果をデータベースに格納するまでの処理の流れを示している。
【００２５】
図5は、検出した顔位置情報に基づいて、同じ人物と思われる顔情報をグループ化するための処理の流れを示している。
【００２６】
図6は、画像の解析情報およびユーザーが入力した様々な情報に基づいて、レイアウト作成のためのシナリオを決定し、該シナリオに基づいて、自動でレイアウトを生成するための処理の流れを示している。
【００２７】
以下では上記フローチャートに従って、それぞれの処理の説明をしてゆく。
【００２８】
＜画像の取得＞
まず図3のS301では、画像データ群の取得を行う。画像データ群の取得は、例えば、ユーザーが、撮影画像が格納された撮像装置やメモリカードを情報処理装置115に接続することで、該撮像画像を読み込むことができる。また、内部撮像装置で撮影され、２次記憶装置に保存されていた画像も、当然のことながら対象となる。あるいは、画像は無線LANを介して、インターネット上に接続された外部サーバー114等、情報処理装置115以外の場所から取得をしてもよい。
【００２９】
画像データ群を取得すると、そのサムネイル群が図8および図9のようにＵＩに表示される。図8の801に示すように２次記憶装置内のフォルダ単位で画像のサムネイル802を表示してもよいし、図9に示すようにカレンダーのようなＵＩ901で日付ごとに管理されていてもよい。日付の部分902をクリックすれば、同日に撮影された画像が、図8のようなサムネイル一覧で表示される。
【００３０】
＜バックグラウンドセンシングおよびＤＢ登録＞
次に図３のフローチャートにおいて、取得した画像データ群それぞれについて、解析処理および解析結果のデータベース登録を行う。
【００３１】
すなわち、S302において、アプリケーションは、新規で保存され未だセンシング処理が行われていない画像をサーチし、抽出された各画像について、コーデック部が圧縮データからビットマップデータに変換する。
【００３２】
次に、S303において、上記ビットマップデータに対して、各種センシング処理を実行させる。ここでいうセンシング処理には、図10に示されるような様々な処理を想定する。本実施形態では、センシング処理の例として、顔検出および顔領域の特徴量解析、画像の特徴量解析、シーン解析を挙げており、それぞれ同図に示すようなデータ型の結果を算出することになる。
【００３３】
以下、それぞれのセンシング処理について説明する。
【００３４】
まず画像の基本的な特徴量である全体の平均輝度、平均彩度については、公知の方法で求めればよいため、詳細は割愛する。概要としては、画像の各画素について、RGB成分を公知の輝度色差成分（例えばYCbCr成分）に変換し（変換式省略）、Y成分の平均値を求めればよい。また、平均彩度については、上記CbCr成分について画素毎に式（１）から算出し、下記Sの平均値を求めればよい。
【００３５】
2014016825.tif 000003
・・・（１）
また、画像の色合いを評価するための特徴量として、画像内の平均色相AveHを算出することも考えられる。各画素毎の色相は、公知のHIS変換式を用いて求めることができ、それらを画像全体で平均化することにより、AveHを求めることができる。
【００３６】
また、上記特徴量は、画像全体のみで算出する必要はない。例えば、画像を所定サイズの領域に分割し、各領域毎に算出することも考えられる。
【００３７】
次に、人物の顔検出処理について説明する。本実施形態で使用する人物の顔検出手法としては、すでに様々な手法が提案されている。特開2002-183731号公報によれば、入力画像から目領域を検出し、目領域周辺を顔候補領域とする。
【００３８】
該顔候補領域に対して、画素毎の輝度勾配、および輝度勾配の重みを算出し、これらの値を、あらかじめ設定されている理想的な顔基準画像の勾配、および勾配の重みと比較する。その時に、各勾配間の平均角度が所定の閾値以下であった場合、入力画像は顔領域を有すると判定する方法が記載されている。
【００３９】
また、特開2003-30667号公報によれば、まず画像中から肌色領域を検出し、同領域内において、人間の虹彩色画素を検出することにより、目の位置を検出することが可能であるとしている。
【００４０】
さらに、特開平8-63597号公報によれば、複数の顔の形状をしたテンプレートと画像とのマッチング度を計算する。該マッチング度が最も高いテンプレートを選択し、最も高かったマッチング度があらかじめ定められた閾値以上であれば、選択されたテンプレート内の領域を顔候補領域とする。同テンプレートを用いるこことで、目の位置を検出することが可能であるとしている。
【００４１】
さらに、特開2000-105829号公報によれば、まず、鼻画像パターンをテンプレートとし、画像全体、あるいは画像中の指定された領域を走査し最もマッチする位置を鼻の位置として出力する。次に、画像の鼻の位置よりも上の領域を目が存在する領域と考え、目画像パターンをテンプレートとして目存在領域を走査してマッチングをとり、ある閾値よりもマッチ度が大きい画素の集合である目存在候補位置集合を求める。さらに、目存在候補位置集合に含まれる連続した領域をクラスタとして分割し、各クラスタと鼻位置との距離を算出する。その距離が最も短くなるクラスタを目が存在するクラスタと決定することで、器官位置の検出が可能であるとしている。
【００４２】
その他、顔および器官位置を検出する方法としては、特開平8-77334号公報、特開2001-216515号公報、特開平5-197793号公報、特開平11-53525号公報、特開2000-132688号公報、特開2000-235648号公報、特開平11-250267号公報がある。さらには特開平4-24503号公報など、数多くの手法が提案されている。本実施形態では特に手法を限定はしない。
【００４３】
上記処理の結果、各入力画像について、人物顔の個数と各顔毎の座標位置を取得することができる。
【００４４】
また、画像中の顔座標位置が分かれば、該顔領域毎に顔領域内に含まれる画素値の平均YCbCr値を求めることにより、該顔領域の平均輝度および平均色差を得ることができる。
【００４５】
また、画像の特徴量を用いてシーン解析処理を行うことができる。シーン解析処理については、例えば、特開2010-251999号公報や特開2010-273144号公報等で記載されている技術を利用してもよい。なお、ここでは両者の詳細説明は割愛する。上記シーン解析の結果、風景（Landscape）、夜景（Nightscape）、人物（Portrait）、露出不足（Underexposure）、その他（Others）、という撮影シーンを区別するためのIDを取得することができる。
【００４６】
なお、本発明については、上記に限定されるものではない。その他のセンシング情報を利用したとしても、本発明の範疇に含まれることは言うまでもない。
【００４７】
上記のようにして取得したセンシング情報を、データベース202に保存する。
【００４８】
データベースへの保存形式については、例えば図11に示すような汎用的なフォーマット（XML：eXtensible Markup Language）で記述し、格納することが考えられる。
【００４９】
同図においては、各画像毎の属性情報を、３つのカテゴリに分けて記述する例を示している。１番目のBaseInfoタグは、画像サイズや撮影時情報として、あらかじめ取得した画像ファイルに付加されている情報である。ここには、画像毎の識別子IDや、画像ファイルが格納されている保存場所、画像サイズ、撮影日時などが含まれる。
【００５０】
次に２番目のSensInfoタグは、上述した画像解析処理の結果を格納するためのタグである。画像全体の平均輝度、平均彩度、平均色相やシーン解析結果が格納され、さらに、画像中に存在する人物の顔位置や顔色に関する情報が記述可能である。
【００５１】
次に３番目のUserInfoタグは、ユーザーが画像毎に入力した情報を格納することができるが、詳細については後述する。
【００５２】
なお、画像属性情報のデータベース格納方法については、上記に限定されるものではない。その他のどのような形式であっても構わない。
【００５３】
＜個人認識処理を用いた人物グルーピング＞
次に、図3のS306において、S303で検出された顔位置情報を用いて、人物毎のグループを生成する処理を行う。あらかじめ人物の顔を自動でグループ化しておくことにより、その後ユーザーが各人物に対して名前を付けていく作業を効率化することが可能となる。
【００５４】
ここでの人物グループ形成は、公知の個人認識技術を用いて、図5の処理フローにより実行する。
【００５５】
なお、個人認識技術は、主に顔の中に存在する眼や口といった器官の特徴量抽出と、それらの関係性の類似度を比較する、という二つの技術で構成されるが、その技術については、例えば特開平10-232934号公報等で記載されているので、ここでの詳細な説明は省く。なお、上記は一例であって、本発明においては、そのいかなる公知の手法を用いても構わない。
【００５６】
図5は人物グループ生成処理S306の基本的なフローチャートである。
【００５７】
まず、S501で、２次記憶装置に保存されている画像を順次読みだしてデコード処理を行う。さらにS502でデータベースS503にアクセスし、該画像中に含まれる顔の個数と顔の位置情報を取得する。次に、S504において、個人認識処理を行うための正規化顔画像を生成する。
【００５８】
ここで正規化顔画像とは、画像内に様々な大きさ、向き、解像度で存在する顔を切り出して、すべて所定の大きさと向きになるよう、変換して切り出した顔画像のことである。個人認識を行うためには、眼や口といった器官の位置が重要となるため、正規化顔画像のサイズは、上記器官が確実に認識できる程度であることが望ましい。このように正規化顔画像を用意することにより、特徴量検出処理において、様々な解像度の顔に対応する必要がなくなるという利点がある。
【００５９】
次に、S505で、正規化顔画像から顔特徴量を算出する。ここでの顔特徴量とは眼や口、鼻といった器官の位置、大きさや、さらには顔の輪郭などを含むことを特徴とする。
【００６０】
さらに、S506で、あらかじめ人物の識別子（ID）毎に用意されている顔特徴量を格納したデータベース202a（以降、顔辞書と呼ぶ）の顔特徴量と類似しているか否かの判定を行う。上記判定の結果Yesの場合、S509において同じ人物として、同じ人物の辞書IDに、追加する。
【００６１】
S506の判定がNoの場合、現在評価対象となっている顔は、これまで顔辞書に登録された人物とは異なる人物であるとして、新規人物IDを発行して顔辞書S507に追加する。S502〜S509までの処理を、入力画像群の中から検出した顔領域全てに適用して、登場した人物のグループ化を行う。
【００６２】
グループ化の結果は、図16のXMLフォーマットで示すように、各顔毎にIDタグを用いて記述し、上述したデータベースS304に保存しておく。
【００６３】
なお、上記実施形態においては、図3に示したように、画像のセンシング処理が終了した後に人物グループ生成処理を実行したが、本発明はこれに限定するものではない。例えば、図4に示すように、各画像に対してS403でセンシング処理を実行した後に、顔検出位置情報を利用してグループ化処理S405を行ったとしても、同様の結果を生成することができる。
【００６４】
また、上記の処理によって得られた各人物グループは、図7のようなUI701にて表示されることになる。同図において、702は人物グループの代表顔画像を表しており、その横には、該人物グループの名前を表示する領域703が存在する。自動の人物グループ化処理を終了した直後は、同図に示すように人物名は「No name」と表示されている。また、704は該人物グループに含まれる複数の顔画像が表示されている。後述するが、同図のUIにおいては、「No name」の領域703を指定して人物名を入力したり、人物毎に誕生日や続柄等の情報を入力することができる。
【００６５】
また、上記センシング処理は、情報処理装置115を操作するユーザーには気付かれないよう、オペレーティングシステムのバックグラウンドタスクを利用して実行しても良い。この場合、ユーザーはコンピュータ上で別の作業を行っていたとしても、画像群のセンシング処理を継続させることができる。
【００６６】
＜ユーザー情報の入力（人物名、誕生日、お気に入り度、など）＞
本実施形態においては、ユーザーが手動で画像に関する様々な属性情報を入力することも想定する。
【００６７】
その属性情報（以降、手動登録情報）の例の一覧を、図12に記載する。手動登録情報は大きく、画像単位に設定するものと、上記処理によりグループ処理した人物に設定する情報に分かれる。
【００６８】
まず、画像単位に設定するものとして、ユーザーのお気に入り度がある。お気に入り度は、その画像を気に入っているかどうかを、ユーザーが手動で段階的に入力するものである。例えば図13示すように、UI1301上で、所望のサムネイル画像1302をマウスポインタ1303で選択し、右クリックをすることでお気に入り度を入力できるダイアログを表示する。ユーザーはメニューの中で自分の好みに応じて、星印の数を選択することができる。一般的には、お気に入り度が高いほど星印の数が多くなるよう設定する。
【００６９】
また、上記お気に入り度については、ユーザーが手動で設定する以外に、自動で設定することも考えられる。例えば、ユーザーが図8に示す画像サムネイル一覧表示の状態から、所望の画像ファイルをクリックし、１画像表示画面に遷移したとする。その遷移した回数を計測して、お気に入り度とすることも考えられる。すなわち、閲覧した回数が多いほど、ユーザーが該画像を気に入っていると判断することになる。
【００７０】
また他の例として、プリント回数をお気に入り度とすることもできる。プリント行為を行った場合、当然その画像を気に入っていると判断し、プリント回数を計測することで、よりお気に入り度が高いと判断することができる。
【００７１】
以上で説明したように、お気に入り度については、ユーザーが手動で設定する方法や閲覧回数をお気に入り度とする方法、あるいはプリント回数をお気に入り度とする方法など様々考えられる。上記設定および計測した情報については、それぞれ個別に、図11で示すようなXMLフォーマットで、データベース202のUserInfoタグ内に格納される。例えば、お気に入り度はFavoriteRateタグで、閲覧回数はViewingTimesタグで、プリント回数はPrintingTimesタグでそれぞれ表わされる。
【００７２】
また、画像単位に設定する別の情報として、イベント情報が考えられる。イベント情報は、例えば、家族旅行“travel”であったり、卒業式“graduation”であったり、結婚式“wedding”であったりする。
イベントの指定は、図14で示すように、カレンダー上で所望の日付をマウスポインタ1402などで指定して、その日のイベント名を入力することが考えられる。指定されたイベント名は、画像の属性情報の一部として、図11示すXMLフォーマットに含まれることになる。同図のフォーマットでは、UserInfoタグ内のEventタグを使って、イベント名と画像を紐付けている。
【００７３】
次に、別の手動設定情報である、人物属性情報について説明する。
【００７４】
図15は、人物の属性情報を入力するためのUIを示している。同図において、1502は所定人物（この場合は“father”）の代表顔画像を示している。また、1504には、他の画像の中から検出し、S506で顔特徴量が類似していると判断された画像の一覧が表示されている。
【００７５】
センシング処理が終了した直後は、図7に示したように各人物グループには名前が入力されていないが、「No name」の部分703をマウスポインタで指示することにより、任意の人物名を入力することができる。
【００７６】
また、人物毎の属性として、それぞれの人物の誕生日やアプリを操作しているユーザーから見た続柄を設定することもできる。図15の人物の代表顔1502をクリックすると、画面下部に図示するように、クリックした人物の誕生日1505および続柄情報1506を入力することができる。
【００７７】
以上、入力された人物属性情報は、これまでの画像に紐付けられた属性情報とは異なり、図16のようなXMLフォーマットによって、画像属性情報とは別にデータベース202内で管理されることになる。
【００７８】
＜テンプレートの取得＞
本実施形態においては、あらかじめ様々なレイアウトテンプレートが用意されていることを想定する。レイアウトテンプレートとは図17および図19に示すようなもので、レイアウトする用紙サイズ上に、複数の画像配置枠1702,1902（以降、スロットと同義）で構成されている。
【００７９】
このようなテンプレートは多数用意されており、あらかじめ本実施形態を実行するためのソフトウェアが情報処理装置115にインストールされた時点で、2次記憶装置に保存しておけばよい。また、その他の方法として、IF 107や無線LAN109を介して接続されたインターネット上に存在するサーバー114から、任意のテンプレート群を取得してもよい。
【００８０】
これらのテンプレートは汎用性の高いページ記述言語、例えば上述したセンシング結果の格納と同様にXMLで記載されていることが望ましい。XMLデータの例を図18および図20に示す。これらの図では、まずBASICタグにおいて、レイアウトページの基本的な情報を記述する。基本的な情報とは、例えば該レイアウトのテーマやページサイズ、およびページの解像度（dpi）等が考えられる。同図において、テンプレートの初期状態では、レイアウトテーマであるThemeタグはブランクとなっている。また、基本情報として、ページサイズはA4、解像度は300dpiを設定している。
【００８１】
また、以降は、上述した画像配置枠の情報をImageSlotタグで記述している。ImageSlotタグの中にはIDタグとPOSITIONタグの２つを保持し、画像配置枠のIDと位置を記述してある。該位置情報については、図17や図19で図示するように、例えば左上を原点とするX-Y座標系において定義されることとする。
【００８２】
また、上記ImageSlotは、その他にそれぞれのスロットに対して、スロットの形状および配置すべき推奨人物グループ名を設定することができる。
【００８３】
例えば、図17のテンプレートにおいては、図18のShapeタグで示すように、すべてのスロットは矩形“rectangle”形状で、人物グループ名はPersonGroupタグによって“MainGroup”を配置することを推奨している。
【００８４】
また、図19のテンプレートにおいては、図20に示すように、中央に配置しているID=0のスロットは矩形形状であることが記載されている。また、人物グループは“SubGroup”を配置し、その他のID=1,2と続くスロットは楕円“ellipse”形状で、人物グループは“MainGroup”を配置することを推奨している。
【００８５】
本実施形態においては、このようなテンプレートを多数保持することを推奨する。
【００８６】
＜提案シナリオ決定＞
上記のように、本実施形態で提示したアプリケーションは、入力された画像群に対して解析処理を実行し、人物を自動的にグループ化してＵＩで表示することができる。また、ユーザーはその結果を見て、人物グループ毎に名前や誕生日などの属性情報を入力したり、画像毎にお気に入り度などを設定することができる。
【００８７】
さらにはテーマごとに分類された多数のレイアウトテンプレートを保持することができる。
【００８８】
以上の条件を満たすと、本実施形態のアプリケーションは、ある所定のタイミングに、自動的にユーザーに好まれそうなコラージュレイアウトを生成し、ユーザーに提示する処理を行う。これを、レイアウトの提案処理と呼ぶこととする。
【００８９】
図6は、該提案処理を行うための基本的なフローチャートを示している。
【００９０】
同図において、まずS601において、提案処理のシナリオを決定する。シナリオには、提案するレイアウトのテーマおよびテンプレートの決定、およびレイアウト内で重視する人物（主人公）の設定、およびレイアウト生成に用いる画像群の選定情報が含まれる。
【００９１】
以下では簡単のため、２つのシナリオについて例を記載する。
【００９２】
例えば、図15で自動グループ化されている人物“son”の１歳の誕生日が近いとする。この場合には、提案するレイアウトのテーマは成長記録“growth”と決定する。次にテンプレートの選択を行うが、この場合には成長記録に適した図19のようなものを選択し、図30に示すように、XMLのThemeタグの部分に“growth”と記載する。次にレイアウトを行う際に注目する主人公“MainGroup”として、“son”を設定する。また、レイアウトを行う際に副次的に注目する“SubGroup”として“son”と“father”を設定する。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースS602を参照し、上記人物“son”の誕生日からこれまでに撮影した画像群のうち、“son”を含む画像群を大量に抽出してリスト化する。以上が、成長記録レイアウトのためのシナリオ決定である。
【００９３】
上記とは異なる例として、図14で登録したイベント情報から、例えば数日前に家族旅行に行きその画像が大量に2次記憶装置に保存されていることがわかると、シナリオ決定部は、家族旅行のレイアウトを提案するためのシナリオを決定する。この場合には、提案するレイアウトのテーマは旅行“travel”と決定する。次にテンプレートの選択を行うが、この場合には図17のようなレイアウトを選択し、図31に示すように、XMLのThemeタグの部分に“travel”と記載する。次にレイアウトを行う際に注目する主人公“MainGroup”として、“son”、“mother”、“father”を設定する。このように、XMLの特性を活かせば、“MainGroup”として複数の人物を設定することができる。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースS602を参照し、上記旅行イベントに紐付けられた画像群を大量に抽出してリスト化する。以上が、家族旅行レイアウトのためのシナリオ決定である。
【００９４】
＜レイアウト生成処理（レイアウトテーマに応じた画像選択および配置）＞
次に、図6のS603において、上述したシナリオに基づくレイアウトの自動生成処理を実行する。図21はレイアウト処理部の詳細な処理フローを示している。以降は、同図に沿って、各処理ステップの説明を行う。
【００９５】
同図では、まずS2101で、上述したシナリオ生成処理で決定され、テーマと人物グループ情報が設定された後のテンプレート情報を、S2102より取得する。
【００９６】
次に、S2103においては、上記シナリオで決定した画像リストS2106に基づいて、各画像毎に該画像の特徴量をデータベースS2104から取得し、画像群属性情報リストを生成する。ここでいう画像群情報リストとは、図11に示したIMAGEINFOタグが画像リスト分だけ並んだ構成となっている。以降ではこの画像属性情報リストに基づいて、S2105〜S2109における自動レイアウト生成処理を行う。
【００９７】
このように、本実施形態の自動レイアウト生成処理では、このように画像データそのものを直接扱うのではなく、あらかじめ画像毎にセンシング処理を行ってデータベース保存しておいた属性情報を利用する。この理由は、レイアウト生成処理を行う際に、画像データそのものを対象としてしまうと、画像群を記憶するために非常に巨大なメモリ領域を必要としてしまうことを避けることにある。
【００９８】
次に、S2105において、入力された画像群の属性情報を用いて、入力された画像群の中から不要画像のフィルタリングを行う。フィルタリング処理は、図22のフローにて行う。同図では、各画像毎に、まずS2201で全体の平均輝度がある閾値（ThY_LowとThY_Hight）内に含まれているかの判定を行う。否の場合にはS2206に進み、注目画像はレイアウト対象から除去する。
【００９９】
同様に、S2202〜S2205では、注目画像に含まれる顔領域それぞれについて、平均輝度、平均色差成分が、良好な肌色領域を示す所定閾値に含まれているかの判定を行う。S2202〜S2205のすべての判定がYesとなる画像のみ、以降のレイアウト生成処理に適用される。
【０１００】
なお、このフィルタリング処理では、以降の一時レイアウト作成処理に明らかに不要と判断できる画像の除去を目的としているため、上記閾値は比較的緩やかに設定することが望ましい。例えばS2201の画像全体輝度の判定において、ThY_HighとThY_Lowの差が画像ダイナミックレンジに比して極端に小さいと、それだけYesと判定される画像が少なくなってしまう。本実施形態のフィルタリング処理ではそうならないよう、両者の差をできる限り広く設定し、かつ明らかに異常画像と判断されるものは除去できるような閾値に設定する。
【０１０１】
次に図21のS2107において、上記処理でレイアウト対象となった画像群を用いて、L個の一時レイアウトを生成する。レイアウト生成は、図33のフローで行う。同図では、まずS3301において、図21のS2105でフィルタリングされた画像群から実際にレイアウトに使用する画像を選択する。具体的には、テンプレート内のスロットの数がN個だとすると、N個の画像を選択する。次にS3302において、S3303のテーマ情報に基づいて、S3301で選択された各々の画像に対して、後述する配置パラメータを算出する。ここでS3303のテーマ情報とは、図21のS2101で取得されたテンプレート情報に記載されたテーマ情報を指している。次にS3304において、同様にS3303のテーマ情報に基づいて、S3301で選択された各々の画像に対して、後述する加工パラメータを算出する。
【０１０２】
以下、テーマに基づいた配置パラメータ及び加工パラメータの算出について、例を挙げて記載する。まず、配置パラメータに関して記す。前述の例に沿って、テーマが成長記録“growth”のレイアウトを提案するシナリオが決定され、図19のテンプレートを使用する場合を考える。ここで、1903が示す画像枠は、図20のXML形式において、楕円“ellipse”形状のスロット（ID=1,2と続く）と記載され、人物グループ“MainGroup”として“son”が設定される旨を先に述べた。このような場合、主人公“son”の成長過程を時系列に沿って追えるよう、テンプレートに画像を配置することが好ましい。すなわち、1903が示す画像枠には、該主人公の画像が時系列順に時計回りに配置されるよう、選択画像の撮影日時と画像枠のIDの並び順を一致させる。
【０１０３】
さて、テーマが成長記録“growth”の場合、レイアウト内に配置される画像は、主に同一人物の顔領域となるため、各画像間の色調の偏りはあまりない。一方で、テーマが旅行“travel”の場合、レイアウト内に配置される画像は、主に風景を写したものであり、それがどのような風景かによって各画像間で色調が大きく異なる。このような場合に、時系列順に画像を配置すると、似たような風景の写真が隣り合うスロットに配置される可能性が高い。一つのレイアウト内で、色調の同じような画像がかたまると良いレイアウトとは言えない。よって、テーマが旅行“travel”の場合は、選択画像を撮影日時順に並べ、撮影日時が隣接する画像を互いに距離の最も離れたスロットに配置することで、レイアウト内での各画像間の色合いのバランスが良くなる可能性が高い。テンプレート上の各スロットの中心位置間の距離を各スロット間の距離とすると、図34に示すようなテンプレートにおいては、3402のスロットと最も離れたスロットは3403となる。例えば、3402に撮影日時の最も若い画像を配置し、該画像と撮影日時の隣接する画像を3403に配置する、といった作業を繰り返すことでレイアウトを生成する。以上のように、本実施形態における配置パラメータ算出とは、選択画像の配置アルゴリズムを図46に示すようにテーマに応じて変えることである。
【０１０４】
次に、加工パラメータに関して記す。例えば、テーマが成長記録“growth”のレイアウトを作成する場合、各スロットには注目する人物の顔が大きく写っている方が見栄えが良い。一方で、テーマが旅行“travel”のレイアウトを作成する場合は、人物と共にその背景も重要となるため、各スロットにおける人物の顔領域は、成長記録“growth”の場合ほど大きくなくてもよい。各スロットに占める人物の顔領域の面積の割合をFaceRatioと定義し、レイアウト内の全スロットのFaceRatioの平均をAveFaceRatioと定義すると、式（２）となるようにトリミングパラメータを算出する。
【０１０５】
（旅行"travel"のAveFaceRatio）＜（成長記録"growth"のAveFaceRatio）  ・・（２）
トリミングパラメータに示される加工率とは、例えば、以下に述べるトリミング率である。トリミング率とは、画像を配置する際、被写体を含んでどの程度のトリミングを行うかというパラメータで、例えば0〜100%で表わされ、画像の中心を基準として、図23のようにトリミングされる。同図において、2301は画像全体を示し、2302はトリミング率50%でトリミングした際の切り取り枠（トリミング対象を特定する領域）を示している。また、トリミングパラメータの別の例として、トリミング距離を算出してもよい。トリミング距離とは、トリミング前の画像とトリミング後の画像の各辺の距離であり、例えば2303の距離の値である。このような距離を画像の全ての辺に対して算出する。また、トリミングパラメータの別の例としては、トリミング後の画像の四隅の座標でもよい。具体的には、2302で示す枠の四隅の座標値である。
【０１０６】
例えば、式（３）となるようトリミングパラメータを算出する例が考えられる。
【０１０７】
（旅行"travel"のAveFaceRatio）＜２５％、
５０％＜（成長記録"growth"のAveFaceRatio）  ・・・（３）
以上、本実施形態では上記のように算出されたトリミングパラメータが加工パラメータとなる。
【０１０８】
上記の画像選択・配置・トリミング基準に基づいて、可能な限り数多くの一時レイアウトを生成する。生成した各一時レイアウトは、図32のXMLのように表わすことができる。各スロットに対して、選択され配置された画像のIDがImageIDタグで、トリミング率がTrimingRatioタグでそれぞれ記述されている。
【０１０９】
なお、ここで生成する一時レイアウトの数Ｌについては、後述するレイアウト評価ステップでの評価処理の処理量と、それを処理する情報処理装置115の性能に応じて決定されるが、例えば数十万通り以上の一時レイアウトを用意することが望ましい。生成したレイアウトは、それぞれIDを付加して図32のXML形式で２次記憶装置にファイル保存してもよいし、構造体など別のデータ構造を用いてＲＡＭ上に記憶してもよい。
【０１１０】
次に、図21のS2108において、上記で作成したＬ個の一時レイアウトに対して、それぞれ所定のレイアウト評価量を用いて評価を行う。本実施形態におけるレイアウト評価量の一覧を、図24に示す。同図に示すように、本実施形態で用いるレイアウト評価量は、主に３つのカテゴリに分けることができる。
【０１１１】
一つ目の評価カテゴリは、画像個別の評価量である。これは画像の明るさや彩度、ブレぼけ量等の状態を判断し、スコア化するものである。スコア化の一例を以下に示す。まず明るさの適正度については、図25に示すように、平均輝度がある所定レンジ範囲内においてはスコア値100とし、そこから外れてゆくとスコア値が下げるよう設定している。また、彩度の適正度については、図26に示すように、画像全体の平均彩度がある所定の彩度値より大きい場合にはスコア値100とし、所定値より小さい場合にはスコア値を除所に下げていくよう設定している。
【０１１２】
二つ目の評価カテゴリは、画像とスロットの適合度の評価をスコア化するものである。例えば、人物適合度とは、スロットに指定されている人物と、実際に該スロットに配置された画像内に存在する人物の適合率を表したものである。例を挙げると、あるスロットが、XMLで指定されているPersonGroupで、“father”、“son”が指定されているものとする。この時、該スロットに割り当てられた画像に該2人の人物が写っていたとすると、該スロットの人物適合度はスコア値100とする。もし片方の人物しか写っていなかったとすると、適合度はスコア値50になる。両者とも写っていなかった場合は、スコア値0になることは言うまでもない。ページ内の適合度は、各スロット毎に算出した適合度の平均値とする。
【０１１３】
また別の画像・スロット適合度評価値として、トリミング領域2702の欠け判定が存在する。例えば、図27に示すように、画像中に存在する顔の位置2703が判明している場合、欠けた部分の面積に応じて、0から100までのスコア値を算出する。欠けた面積が0の場合、スコアは100とし、逆にすべての顔領域が欠けた場合、スコア値は0とする。
【０１１４】
三つめの評価カテゴリは、レイアウトページ内のバランスを評価するものである。図24ではバランスを評価するための評価値をいくつか提示している。
【０１１５】
まず、画像類似性について説明する。画像の類似性は、大量に生成した一時レイアウト毎に、それぞれの画像の類似性を算出する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った類似度の高い画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない。例えば、類似性は、撮影日時によって評価することができる。撮影日時が近い画像は、同じような場所で撮影された可能性が高いが、撮影日時が離れていれば、その分、場所もシーンも異なる可能性が高いからである。撮影日時は、図11で示したように、画像属性情報として、予めデータベース202に保存されている、画像毎の属性情報から取得することができる。撮影日時から類似度を求めるには以下のような計算を行う。例えば、今注目している一時レイアウトに図28で示すような４つの画像がレイアウトされているものとする。この時、この４つの画像間で、撮影時間間隔が最も短くなる値を算出する。この場合は、画像ID102と108間の30分が最も短い間隔である。この間隔をMinIntervalとし、秒単位で格納する。すわなち30分＝1800秒である。このMinIntervalをL個の各一時レイアウト毎に算出して配列stMinInterval[l]に格納する。次に、該stMinInterval[l]の中で最大値MaxMinInterval値を求める。すると、l番目の一時レイアウトの類似度評価値Similarity[l]は式（４）のようにして求めることができる。
【０１１６】
Similarity[l] = 100×stMinInterval[l] / MaxMinInterval  ・・・（４）
すなわち、上記Similarity[l]は、最小撮影時間間隔が大きいほど100に近づき、小さいほど0に近づく値となっているため、画像類似度評価値として有効である。
【０１１７】
次に、レイアウトページ内のバランスを評価するための評価量として、色合いのバラつきについて説明する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った色（例えば、青空の青、山の緑）の画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない。したがって、ここでは注目しているl番目の一時レイアウト内に存在する画像の平均色相AveHの分散を算出して、それを色合いのバラつき度tmpColorVariance[l]として格納する。次に、該tmpColorVariance[l]の中での最大値MaxColorVariance値を求める。すると、l番目の一時レイアウトの色合いバラつき度の評価値ColorVariance[l]は式（５）のようにして求めることができる。
【０１１８】
ColorVariance[l] = 100 × tmpColorVariance[l] / MaxColorVariance  ・・（５）
すなわち、上記ColorVariance[l]は、ページ内に配置された画像の平均色相のバラつきが大きいほど100に近づき、小さいほど0に近づく値となっているため、色合いのばらつき度評価値として有効である。
【０１１９】
次に、レイアウトページ内のバランスを評価するための評価量として、顔の大きさのバラつき度について説明する。例えば旅行テーマのレイアウトを作成したい場合、レイアウト結果を見て、あまりに似通った顔のサイズの画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない。レイアウト後の紙面上における顔の大きさが、小さいものもあれば大きいものもあり、それらがバランスよく配置されていることが、良いレイアウトと考える。その場合、注目しているl番目の一時レイアウト内に配置された後の顔の大きさ（顔位置の左上から右下までの対角線の距離）の分散値を、tmpFaceVariance[l]として格納する。次に、該tmpFaceVariance[l]の中での最大値MaxFaceVariance値を求める。すると、l番目の一時レイアウトの顔サイズバラつき度の評価値FaceVariance[l]は、式（６）のようにして求めることができる。
【０１２０】
FaceVariance[l] = 100  ×  tmpFaceVariance[l] / MaxFaceVariance  ・・（６）
すなわち、上記FaceVariance[l]は、紙面上に配置された顔サイズのバラつきが大きいほど100に近づき、小さいほど0に近づく値となっているため、顔サイズのバラつき度評価値として有効である。
【０１２１】
またその他カテゴリとして、ユーザーの嗜好性評価が考えられる。
【０１２２】
以上説明したような、各一時レイアウト毎に算出した複数の評価値を、以下では統合化して、各一時レイアウト毎のレイアウト評価値とする。今、l番目の一時レイアウトの統合評価値を、EvalLayout[l]とし、上記で算出したN個の評価値（図24の評価値それぞれを含む）の値を、EvalValue[n]とする。この時、統合評価値は式（７）で求めることができる。
【０１２３】
2014016825.tif 000004
・・・（７）
上式において、W[n]は、図24で示したシーン毎の各評価値の重みである。該重みはレイアウトのテーマ毎に異なる重みを設定していることが特徴となっている。例えば、図24に示すようにテーマを成長記録“growth”と旅行“travel”で比較した場合、旅行テーマの方は、できるだけ良質の写真をいろいろな場面で数多くレイアウトすることが望ましい。そのため、画像の個別評価値やページ内のバランス評価値を重視する傾向にある。一方、成長記録“growth”の場合、画像のバリエーションよりは、成長記録の対象となる主人公が確実にスロットに適合しているか否かが重要である。そのため、ページ内バランスや画像個別評価よりも、画像・スロット適合度評価を重視する傾向にある。
【０１２４】
このようにして算出したEvalLayout[l]を用いて、S2109では、レイアウト結果表示のためのレイアウトリストLayoutList[k]を生成する。レイアウトリストは、予め定められた個数（例えば5個）に対して、EvalLayout[l]のうち、評価値が高いもの順に識別子lを記憶しておく。例えば最も良いスコアを出したものが、l=50番目に作成した一時レイアウトであった場合、LayoutList[0]=50となる。同様に、LayoutList[1]以降は、スコア値が２番目以降の識別子lを記憶しておく。
【０１２５】
以上が、図21のフローチャートの説明である。
【０１２６】
＜レンダリングおよび表示＞
次に、上記処理によって得られたレイアウト結果を、図6のS605でレンダリングして結果を図29のように表示する。S605では、まずLayoutList[0]に格納されているレイアウト識別子を読み出し、該識別子に相当する一時レイアウト結果を、２次記憶装置あるいはRAM上から読み出す。レイアウト結果には、上述したようにテンプレート情報と該テンプレート内に存在するスロット毎に、割り当てられた画像名が設定されている。S605ではこれらの情報に基づいて、情報処理装置115上で動作するOSの描画関数を用いて、該レイアウト結果をレンダリングし、図29の2902のように表示することになる。
【０１２７】
同図のNextボタン2904を押下することにより、次点スコアであるLayoutList[1]の識別子を読み出し、上記と同様にレンダリング後、表示を行うことで、ユーザーは様々なバリエーションの提案レイアウトを閲覧することができる。また、Previousボタン2903を押下することにより、前に表示したレイアウトを再表示することもできる。さらに、表示されたレイアウトが気に入った場合には、プリントボタン2905を押下することで、情報処理装置115に接続されたプリンタ112からレイアウト結果2902をプリントアウトすることもできる。
【０１２８】
以上が本実施形態における基本的な処理の流れである。
【０１２９】
（第２の実施形態）
第１の実施形態では、テーマに応じて加工パラメータを算出する例として、トリミングを制御する旨記載したが、本発明における加工パラメータはトリミング率に限定されるものではない。本実施形態では、第１の実施形態と同じ構成で、テーマに応じてトリミング以外の画像加工処理も制御する例として、テーマに応じてコントラストの変更（補正）を行う例を記載する。
【０１３０】
例えば、テーマが旅行“travel”の場合、レイアウトに使用される画像の多くは、旅行先の風景を写したものであると想定されるため、コントラストを強めに調整してメリハリの効いた画像に加工することが好ましい。一方で、同様の処理を、テーマが成長記録“growth”の場合に行うと、注目人物の顔が硬調になり、良いレイアウトとは言えない。テーマが成長記録“growth”の場合は、コントラストを補正しない、もしくは弱めに調整することが好ましい。コントラスト補正は、例えば図35に示すように行われる。同図において、グラフの横軸は画像の入力信号、縦軸は画像の出力信号をそれぞれ示している。3501は補正前の画像の入出力信号特性を、3502はコントラストが強くなるよう補正した画像の入出力信号特性を、3503はコントラストが弱くなるよう補正した画像の入出力信号特性をそれぞれ表わしている。3502や3503で示す直線に沿って画像信号を変換することで、該画像のコントラスト補正を行う。この際、例えば、3504及び3505で表すグラフ上の距離の値をそれぞれ、3502及び3503で示すコントラスト補正のためのパラメータに用いる。該補正パラメータをxとすると、xの符号は3506に示すよう、コントラストが強くなる補正の場合は正となり、コントラストが弱くなる補正の場合は負となる。xの値の算出に際しては、例えば図36のように、テンプレートに配置される全画像における平均顔サイズに応じて決定してよい。同図において、3601はテーマが旅行“travel”の場合の補正パラメータxと平均顔サイズとの関係を、3602はテーマが成長記録“growth”の場合の補正パラメータxと平均顔サイズとの関係をそれぞれ示している。この図のようにすると、レイアウトに占める顔の面積が大きくなった時は、コントラストを弱くすることで顔の硬調化を防ぎつつ、テーマが旅行“travel”の方が、コントラストがより強くなるよう処理することができる。以上、本実施形態では、上記のように算出された補正パラメータxが加工パラメータであり、図33に示すレイアウト生成フローのS3304において算出される。
【０１３１】
このように生成されたレイアウトは図37のXMLのように表わされる。コントラスト補正処理はContrastタグで記述されている。
【０１３２】
なお、これらの画像処理（編集処理）を実際に実行するのは、例えば206でレンダリングする際でもよいし、207でプリントデータを生成する際でもかまわない。
【０１３３】
（第３の実施形態）
第１の実施形態では、テンプレートが予め画像枠の位置情報及び該画像枠に配置すべき推奨人物グループ情報を有しており、それら位置の固定された画像枠に選択画像を配置して、レイアウトを作成する例を示したが、本発明はこれに限定されるものではない。本実施形態では、第１の実施形態と同じ構成で、画像枠の位置情報及び該画像枠に配置すべき推奨人物グループ情報を予め保持しない汎用テンプレートを用いてレイアウトを作成する例を記載する。その際、テーマに応じて画像枠の位置情報及び該画像枠に配置すべき推奨人物グループ情報を動的に決定すべく、配置パラメータを算出する。
【０１３４】
図38はスロット情報が決定されていない汎用テンプレートの例を示している。また、図39は該汎用テンプレートのXMLデータを示している。該XMLデータ内には、この時点では、図18や図20に見られるようなスロットの情報（例えばImageSlotタグで記述され、中にIDタグやPOSITIONタグ、ShapeタグやPersonGroupタグを持つ）はまだない。以降、該汎用テンプレートにおいて、テーマに応じてスロットの位置情報及び該画像枠に配置すべき推奨人物グループ情報を動的に算出する例を記載する。
【０１３５】
図47は、本実施形態の処理フローである。ここで、S4703のテーマ情報とは、S601で決定された提案シナリオにおけるテーマ情報を指しており、図39のXMLデータのThemeタグに記載される情報である。同図では、まずS4701で、S4703のテーマ情報に基づいて各スロットの位置情報を算出する。
【０１３６】
図40は、テーマに応じてスロットの位置情報を決定する詳細な処理フローを示している。以降は、同図に沿って、各処理ステップの説明を行う。
【０１３７】
まず、S4001で、S4002のテーマ情報に基づいて、スロットの数Nを決定する。ここで、S4002のテーマ情報とは、S601で決定された提案シナリオにおけるテーマ情報を指しており、図39のXMLデータのThemeタグに記載される情報である。例えば、テーマが成長記録“growth”の場合、スロットの数が多い方が注目する人物の画像を多く使用することができ、該人物の成長の様子を表すレイアウトとして好ましい。一方で、テーマが旅行“travel”の場合、各スロットに主に配置されると想定される風景の写真がよく見えるよう、スロットの大きさがある程度大きい方が好ましいため、スロットの数はあまり多くなくて構わない。よって、式（８）を満たすようにスロットの数Nを算出する。
【０１３８】
（旅行"travel"のスロットの数N）＜（成長記録"growth"のスロットの数N）  ・・（８）
例えば、図41に示すように、テーマに応じてスロットの数Nの上限と下限を設定し、その範囲内でランダムにNの値を決定してよい。図39のXMLデータには、ここで決定された値に基づいて、N個のImageSlotタグが作成され、0〜N-1のIDタグが割り振られる。
【０１３９】
次に、S4003〜S4010の一連の処理を各スロットに対して行う。まずS4003において、S4002のテーマ情報に基づいて、スロットの中心位置を決定する。例えば、テーマが成長記録“growth”の場合、注目する人物の成長の様子が画像の配置によってわかるよう、各スロットがある程度規則正しく並んでいた方が良いレイアウトと言える。例えば、図42のように、4203や4204で示す直線状に各スロットの中心位置が順に並ぶよう、スロットの中心位置を決定すればよい。また、別の例として、図43のように4303で示す楕円上に各スロットの中心位置が順に並ぶよう、スロットの中心位置を決定してもよい。一方、テーマが旅行“travel”の場合は、このような制約にとらわれず、スロットの中心位置をランダムに決定してよい。
【０１４０】
次に、S4004〜S4006において、スロットの大きさ（以降、スロットサイズと同義）を決定する。スロットサイズは、テーマに応じて定められた基本サイズの各辺に、テーマに応じた変動幅をランダムに加える（もしくは減ずる）ことで算出される。図44は基本サイズの各辺に変動幅を加える例を示しており、4401がスロットの基本サイズ、4402が横の辺に対する変動幅、4403が縦の辺に対する変動幅、4404が最終的に決定されたスロットサイズである。以下、再び図40の処理フローに沿って、例を挙げて説明する。S4004において、S4002のテーマ情報に基づいて、スロットの基本サイズを決定する。例えば、テーマが成長記録“growth”の場合、先述の通り、注目する人物の成長の様子がわかりやすくなるよう、スロットの数Nを大きく設定する必要があるが、各スロットの基本サイズはそれほど大きくなくてよい。一方で、テーマが旅行“travel”の場合、各スロットに主に配置されると想定される風景の写真がよく見えるよう、スロットの基本サイズをある程度大きく設定する必要がある。よって、スロットの基本サイズをBasicSizeと定義すると、式（９）を満たすようにスロットの基本サイズを算出する。
【０１４１】
（成長記録"growth"のBasicSize）＜（旅行"travel"のBasicSize）  ・・・（９）
該基本サイズの値は、例えば、テーマに応じて、図41に示すような値を設定してよい。また、テンプレートのページサイズとS4001で決定したスロットの数Nに応じて算出してもよい。
【０１４２】
次に、S4005において、S4002のテーマ情報に基づいて、基本サイズの各辺に加える変動幅を算出する。該変動幅は、テーマに応じて定められた範囲内の値からランダムで決定する。例えば、テーマが成長記録“growth”の場合、注目する人物の成長の様子が画像の配置によってわかるよう、各スロットがある程度規則正しく配置されている方が良いため、各スロットの大きさも比較的そろえた方が良い。よって、該変動幅の値があまり大きくならないよう設定する必要がある。一方、テーマが旅行“travel”の場合は、スロットサイズをそろえる必要はなく、変動幅を大きく設定することで、変化に富んだレイアウトを生成できる。よって、式（１０）を満たすように変動幅の上限値及び下限値を各々のテーマで設定し、テーマに応じて該当する範囲内の値をランダムに採用することで、該テーマの変動幅を算出する。
【０１４３】
（成長記録"growth"の変動幅の上限）＜（旅行"travel"の変動幅の上限）、
（成長記録"growth"の変動幅の下限）＜（旅行"travel"の変動幅の下限）  ・・（１０）
テーマに応じた変動幅の上限値及び下限値は、例えば図41に示すように設定してよい。また、テンプレートのページサイズとS4001で決定したスロットの数Nに応じて算出してもよい。
【０１４４】
S4006において、S4004で決定した基本サイズとS4005で決定した変動幅を加えることで、スロットサイズが決定される。以上、スロットの中心位置とスロットサイズを算出することで、スロットの位置情報を一意に定めることができる。S4007では、生成された該スロットがテンプレートサイズによって定義されるページ内に収まっているか否かの判定を行う。上記判定の結果、Noの場合はスロット再生成のためS4003に、Yesの場合はS4008に進む。S4008では、新規に生成されたスロットと既に生成されている他のスロットとの重なりを評価する。生成されるスロット同士の重なる面積が大きすぎると良いレイアウトとは言えない。新規生成スロットの面積に対する、該新規生成スロットと既生成スロットの重なる面積の割合を重複率として算出し、該重複率を予め設定した閾値と比較することで判定を行う。例えば、閾値の値は10%と設定してよい。また、テンプレートのページサイズとS4001で決定したスロット数Nに応じて算出してもよい。上記判定の結果、該重複率が閾値より高い場合はスロットの再生成のためS4003に、該重複率が閾値より低い場合はS4009に進む。S4009においては、生成されたスロットの四隅の座標を該スロットの位置情報として、テンプレート情報に格納する。具体的には、図45に示すようなXML形式のデータにおいて、各ImageSlotタグ内にPOSITIONタグを生成し、四隅の座標を記載する。図S4003〜S4010の処理フローを、全てのスロットの位置情報を決定するまで行う。
【０１４５】
次にS4702において、各スロットに対して、配置すべき推奨人物グループをS4703のテーマ情報に応じて設定する。例えば、テーマが成長記録“growth”の場合、テンプレート内のほぼ全ての画像枠に注目する人物の画像が配置される方が好ましい。一方で、テーマが旅行“travel”の場合は、注目する人物の画像だけでなく風景画像も配置される方が、よりテーマに則したレイアウトと言える。よって、全配置画像に対する注目人物の配置画像の割合をPersonRatioと定義すると、式（１１）を満たすように各スロットに対して配置すべき推奨人物グループを設定する。
【０１４６】
（旅行"travel"のPersonRatio）＜（成長記録"growth"のPersonRatio）  ・・（１１）
例えば、テーマが成長記録“growth”の場合は、図41に示すようにPersonRatioを100%としてよい。その場合、具体的には、テンプレートのXML形式のデータにおいて、全てのImageSlotタグ内にPersonGroupタグを作成し、“MainGroup”を設定する。一方、テーマが旅行“travel”の場合は、図41に示すようにPersonRatioを50%としてよい。例えば、スロット数Nが4の場合、テンプレートのXMLデータにおいて、2つのImageSlotタグ内にPersonGroupタグを作成し、“MainGroup”を設定する。そして、残りの2つImageSlotタグ内にはPersonGroupタグを作成しない。前者PersonGroupタグを作成するスロットを具体的にどのスロットにするかは、例えばテンプレート面内の中心に近い2つのスロットを選んでよい。また、全スロットのうち、スロットのサイズが大きいものから2つ順に選んでもよい。
【０１４７】
このようにして生成されたテンプレートは、図48のXMLのように表わされる。同図において、各スロットの形状を規定するShapeタグは矩形“rectangle”となっているが、円“Circle”や楕円“ellipse”に設定しても構わない。このように生成されたテンプレート情報は、S2101において取得され、S2101〜S2109の処理フローに従ってレイアウトが生成される。
【０１４８】
以上が、本実施形態の基本的な処理の流れである。本実施形態では、上記のように算出されたスロットの数N、スロットの中心位置、スロットの基本サイズ、スロット各辺の変動幅、スロットの四隅の座標値、及び全配置画像に対する注目人物画像の割合が配置パラメータである。これらをテーマに応じて制御することで、よりテーマに則したレイアウトを生成できる。
【０１４９】
以上説明した実施形態は本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
【０１５０】
また、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、プリンタ、複写機、ファクシミリ装置等）に適用しても良い。
【０１５１】
また、本発明の目的は、以下によっても達成できる。まず、前述した実施形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給する。次に、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行すればよい。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。例えば、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。さらに、プログラムを実行するコンピュータ（プロセッサ）は１つに限らず、複数のコンピュータが協働して、以上の実施形態の処理を実行してもよい。
【０１５２】
さらに、まず、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれる。その後、該プログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。また、上述した実施形態の一部をソフトウェア（プログラム）により実行し、残りの部分をハードウェアにより実行する場合であってもよい。
【０１５３】
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、上記の処理を１つのプロセッサにより実行する場合に限らず、複数のプロセッサにより実行する場合であってもよい。
【図１】
2014016825.tif 000005
【図２】
2014016825.tif 000006
【図３】
2014016825.tif 000007
【図４】
2014016825.tif 000008
【図５】
2014016825.tif 000009
【図６】
2014016825.tif 000010
【図７】
2014016825.tif 000011
【図８】
2014016825.tif 000012
【図９】
2014016825.tif 000013
【図１０】
2014016825.tif 000014
【図１１】
2014016825.tif 000015
【図１２】
2014016825.tif 000016
【図１３】
2014016825.tif 000017
【図１４】
2014016825.tif 000018
【図１５】
2014016825.tif 000019
【図１６】
2014016825.tif 000020
【図１７】
2014016825.tif 000021
【図１８】
2014016825.tif 000022
【図１９】
2014016825.tif 000023
【図２０】
2014016825.tif 000024
【図２１】
2014016825.tif 000025
【図２２】
2014016825.tif 000026
【図２３】
2014016825.tif 000027
【図２４】
2014016825.tif 000028
【図２５】
2014016825.tif 000029
【図２６】
2014016825.tif 000030
【図２７】
2014016825.tif 000031
【図２８】
2014016825.tif 000032
【図２９】
2014016825.tif 000033
【図３０】
2014016825.tif 000034
【図３１】
2014016825.tif 000035
【図３２】
2014016825.tif 000036
【図３３】
2014016825.tif 000037
【図３４】
2014016825.tif 000038
【図３５】
2014016825.tif 000039
【図３６】
2014016825.tif 000040
【図３７】
2014016825.tif 000041
【図３８】
2014016825.tif 000042
【図３９】
2014016825.tif 000043
【図４０】
2014016825.tif 000044
【図４１】
2014016825.tif 000045
【図４２】
2014016825.tif 000046
【図４３】
2014016825.tif 000047
【図４４】
2014016825.tif 000048
【図４５】
2014016825.tif 000049
【図４６】
2014016825.tif 000050
【図４７】
2014016825.tif 000051
【図４８】
2014016825.tif 000052