(57)【要約】【課題】  様々なバリエーションの良好なレイアウト結果を得ることができる画像処理装置、画像処理方法、及びプログラムを提供することを課題とする。【解決手段】  複数の画像を含む画像群を取得し、取得した画像群から所定数の画像を選択して配置することにより、複数のレイアウト候補を作成する。作成されたレイアウト候補の評価を行い、評価結果に基づいて、複数のレイアウト候補の中から選択される複数のレイアウト候補の提示順を決定する。そして、決定された提示順でレイアウト候補を提示する。提示順は、評価結果に基づき、提示順が評価値の順とは異なる順に決定する。【選択図】  図２５
2015053543.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像を含む画像群を取得する取得手段と、
前記取得手段により取得した画像群から所定の数の画像を選択して配置することにより、複数のレイアウト候補を作成する作成手段と、
前記作成手段により作成されたレイアウト候補の評価を行う評価手段と、
前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から選択される複数のレイアウト候補の提示順を決定する決定手段と、
前記決定手段により決定された提示順でレイアウト候補を提示する提示手段と、
を備え、
前記決定手段は、前記評価手段の評価結果に基づき、前記提示順が前記評価手段の評価値の順とは異なる順に提示順を決定することを特徴とする画像処理装置。
【請求項２】
前記決定手段は、所定の数のレイアウト候補を提示する場合、評価値の高いレイアウト候補の数が評価値の低いレイアウト候補の数が多くなるように提示順を決定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記作成手段は、レイアウト内に配置する画像の選択を少なくとも変化させて複数のレイアウト候補を作成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記決定手段は、前記評価手段による評価結果の評価順及び乱数に基づいて、提示順を決定することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記決定手段は、前記評価手段による評価結果の評価順の度数分布に基づいて、提示順を決定することを特徴とする請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項６】
前記提示手段は、アプリケーションの起動時、所定の時間が経過した後、前記決定手段により決定したレイアウトを印刷した後、及びＰＣの起動時のうち少なくともいずれかのタイミングで提示することを特徴とする請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
複数の画像を含む画像群を取得する取得工程と、
前記取得工程において取得した画像群から所定の数の画像を選択して配置することにより、複数のレイアウト候補を作成する作成工程と、
前記作成工程において作成されたレイアウト候補の評価を行う評価工程と、
前記評価工程における評価結果に基づいて、複数のレイアウト候補の中から選択される複数のレイアウト候補の提示順を決定する決定工程と、
前記決定工程において決定された提示順でレイアウト候補を提示する提示工程と、
を備え、
前記決定工程では、前記評価工程における評価結果に基づき、前記提示順が前記評価工程における評価値の順とは異なる順に提示順を決定することを特徴とする画像処理方法。
【請求項８】
請求項１〜６のいずれか１項に記載の画像処理装置の各手段としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理のための画像処理装置、画像処理方法及びプログラムに関する。
【背景技術】
【０００２】
近年、デジタルカメラやカメラ付携帯端末の普及により、容易に写真を撮影できる環境が整ってきている。また、ＰＣを利用することで、複数の写真を組み合わせてコラージュやアルバムなどの様々な成果物を作成する方法が知られている。特許文献１では、画像に含まれるオブジェクトの向きを特定し、特定されたオブジェクトの向きに基づいて画像を出力領域内にレイアウトし、レイアウトした画像を出力する画像出力方法が提案されている。また、特許文献２には、複数画像を配置する際に、基本レイアウトを作成し、基本レイアウトに対して配置画像数等を変化させたレイアウト候補を作成し、最適なレイアウトを指定させる方法が提案されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−２８７９１７号公報
【特許文献２】特開２００９−２４５０７１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の方法では、テンプレートに定められた向きに合致する画像を配置してレイアウトを生成する。このように、テンプレートに指定された条件に合致する画像群を抽出する方法では、テンプレートに定められた条件から外れるレイアウトは生成することができず、同じような結果のレイアウトしか得ることができないという問題があった。また、画像群の特徴を生かした好適なレイアウトを作成することができないという問題があった。
【０００５】
一方、特許文献２に記載の方法では、様々なバリエーションのレイアウト結果が得られるが、選択された画像が好ましくない場合、良好なレイアウト結果が得られないという問題があった。
【０００６】
本発明は、上述した事情に鑑み、様々なバリエーションの良好なレイアウト結果を得ることができる画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述のような課題を解決するための本発明の画像処理装置は、複数の画像を含む画像群を取得する取得手段と、前記取得手段により取得した画像群から所定の数の画像を選択して配置することにより、複数のレイアウト候補を作成する作成手段と、前記作成手段により作成されたレイアウト候補の評価を行う評価手段と、前記評価手段による評価結果に基づいて、複数のレイアウト候補の中から選択される複数のレイアウト候補の提示順を決定する決定手段と、前記決定手段により決定された提示順でレイアウト候補を提示する提示手段と、を備え、前記決定手段は、前記評価手段の評価結果に基づき、前記提示順が前記評価手段の評価値の順とは異なる順に提示順を決定することを特徴とすることを特徴とする。
【発明の効果】
【０００８】
本発明では、複数のレイアウト候補を作成し、それらを評価してレイアウトリストを作成するため、好ましいレイアウト結果を得られる可能性が向上する。
【０００９】
これにより、画像群に応じて全体整合のとれた良質なレイアウト結果を複数バリエーションを得ることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る画像処理装置のハードウェア構成図である。
【図２】実施形態１に係るソフトウェアブロック図である。
【図３】実施形態１に係る画像解析処理のフローチャートである。
【図４】実施形態１に係る画像解析処理のフローチャートである。
【図５】実施形態１に係る人物グループ生成処理のフローチャートである。
【図６】実施形態１に係る自動レイアウト提案処理のフローチャートである。
【図７】実施形態１の人物グループの表示例を示す図である。
【図８】実施形態１の画像群の表示例を示す図である。
【図９】画像解析結果の保存形式の例を示す図である。
【図１０】手動でお気に入り度を入力するためのＵＩの例及び手動でイベント情報を入力するためのＵＩ例を示す図である。
【図１１】手動で人物属性情報を入力するためのＵＩ例を示す図である。
【図１２】人物属性情報の保存形式の例を示す図である。
【図１３】レイアウトテンプレートの一例を示す図である。
【図１４】図１３のレイアウトテンプレートの保持形式の例を示す図である。
【図１５】レイアウトテンプレートの一例を示す図である。
【図１６】図１５のレイアウトテンプレートの保持形式の例を示す図である。
【図１７】実施形態１における自動レイアウト生成処理のフローチャートである。
【図１８】実施形態１における不要画像フィルタリング処理のフローチャートである。
【図１９】自動トリミング処理の説明図、明るさ適正度の算出方法の説明図、及び彩度適正度の算出方法の説明図である。
【図２０】トリミング欠け判定処理の説明図である。
【図２１】実施形態１に係る自動レイアウト生成結果の表示例を示す図である。
【図２２】決定されたテーマと主人公情報の保持例を示す図である。
【図２３】決定されたテーマと主人公情報の保持例を示す図である。
【図２４】生成したレイアウト情報の保持例を示す図である。
【図２５】実施形態１に係る提案レイアウトのリストの決定処理のフローチャートである。
【図２６】実施形態１に係る評価スコアに対する提案レイアウトの対応付けを制御するための確率分布を示す図である。
【図２７】実施形態２の評価スコアに対する提案レイアウトの対応付けを制御するための確率分布を示す図である。
【図２８】実施形態３に係る提案レイアウトのリストの決定処理のフローチャートである。
【発明を実施するための形態】
【００１１】
（実施形態１）
以下では、入力画像群を用いて自動でレイアウト出力物を生成するために、本発明における実施形態１について説明する。これはあくまで実施の１つの形態を例として示したものであり、本発明は以下の実施形態に限定されるものではない。
【００１２】
図１は実施形態１の画像処理装置のハードウェア構成例を示すブロック図である。
【００１３】
図１において、画像処理装置１１５は、ＣＰＵ１００と、ＲＯＭ１０１と、ＲＡＭ１０２と、２次記憶装置１０３と、表示装置１０４と、入力装置１０５と、ＩＦ１０７と、ＩＦ１０８と、無線ＬＡＮ１０９を備えている。さらに、内部撮像デバイス１０６を備えている。これらは、制御バス／データバス１１０により相互に接続されている。
【００１４】
画像処理装置１１５は、例えば、コンピュータである。ＣＰＵ１００（中央演算装置）は、実施形態１で説明する情報処理をプログラムに従って実行する。ＲＯＭ１０１は、ＣＰＵ１００により実行される以下に示すアプリケーション等のプログラムが記憶されている。ＲＡＭ１０２は、ＣＰＵ１００によるプログラムの実行時に、各種情報を一時的に記憶するためのメモリを提供している。２次記憶装置１０３は、ハードディスク等であり、画像ファイルや画像解析結果を保存するデータベース等を保存するための記憶媒体である。表示装置１０４は、例えば、ディスプレイであり、実施形態１の処理結果や以下に示すＵＩ（Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等をユーザに提示する装置である。表示装置１０４は、タッチパネル機能を備えても良い。入力装置１０５は、ユーザが画像補正の処理の指示等を入力するためのマウスやキーボード等である。
【００１５】
また、内部撮像デバイス１０６で撮像された画像は、所定の画像処理を経た後、２次記憶装置１０３に記憶される。また、画像処理装置１１５は、インターフェース（ＩＦ１０８）を介して接続された外部撮像デバイス１１１から画像データを読み込むこともできる。さらに、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０８はインターネット１１３に接続されている。画像処理装置１１５は、インターネット１１３に接続された外部サーバー１１４より画像データを取得することもできる。
【００１６】
画像等を出力するためのプリンタ１１２は、ＩＦ１０７を介して画像処理装置１１５に接続されている。尚、プリンタ１１２はさらにインターネット上に接続されており、無線ＬＡＮ１０９経由でプリントデータのやり取りをすることもできる。
【００１７】
図２は本実施形態における上記アプリケーション等ソフトウェア構成のブロック図である。
【００１８】
まずハードウェアが取得した画像データは、通常ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｙ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）等の圧縮形式になっている。そのため、画像コーデック部２００は、該圧縮形式を解凍していわゆるＲＧＢ点順次のビットマップデータ形式に変換する。変換されたビットマップデータは、表示・ＵＩ制御部２０１に伝達され、ディスプレイ等の表示装置１０４上に表示される。
【００１９】
上記ビットマップデータは、さらに画像センシング部２０３（アプリケーション）に入力され、同部において、詳細は後述するが、画像の様々な解析処理が行われる。上記解析処理の結果得られた画像の様々な属性情報は、所定の形式に従ってデータベース部２０２において、上述した２次記憶装置１０３に保存される。なお、以降においては、画像解析処理とセンシング処理は同義で扱う。
【００２０】
シナリオ生成部２０４（アプリケーション）では、ユーザが入力した様々な条件に応じて、自動で生成すべきレイアウトの条件を生成し、レイアウト生成部２０５（アプリケーション）では上記シナリオに従って、自動でレイアウトを生成する処理を行う。
【００２１】
生成したレイアウトは、レンダリング部２０６で表示用のビットマップデータを生成し、該ビットマップデータは表示・ＵＩ制御部２０１に送られ、結果がディスプレイ等の表示装置１０４に表示される。一方で、レンダリング結果はさらにプリントデータ生成部２０７に送られ、同部でプリンタ用コマンドデータに変換され、プリンタに送出される。
【００２２】
図３〜６は、本実施形態のアプリケーションの基本的な画像処理のフローチャートである。具体的には、図３及び４は、画像センシング部２０３のフローを示しており、複数の画像データ群を取得して、それぞれについて解析処理を施し、その結果をデータベースに格納するまでの処理の流れを示している。図５は、検出した顔位置情報に基づいて、同じ人物と思われる顔情報をグループ化するための処理の流れを示している。図６は、画像の解析情報およびユーザが入力した様々な情報に基づいて、レイアウト作成のためのシナリオを決定し、該シナリオに基づいて、自動でレイアウトを生成するための処理の流れを示している。
【００２３】
図３のＳ３０１では、１以上の画像データを含む画像データ群の取得を行う。画像データ群は、例えば、ユーザが、撮影画像が格納された撮像装置やメモリカードを画像処理装置１１５に接続して、これらから撮像画像を読み込むことで取得する。また、内部撮像装置で撮影され、２次記憶装置に保存されていた画像データ群を取得してもよい。あるいは、無線ＬＡＮを介して、インターネット上に接続された外部サーバー１１４等、画像処理装置１１５以外の場所から画像データ群を取得をしてもよい。
【００２４】
画像データ群を取得すると、そのサムネイル群が図８（ａ）や図８（ｂ）に示すようにＵＩに表示される。図８（ａ）の８０１に示すように２次記憶装置１０３内のフォルダ単位で画像のサムネイル８０２を表示してもよいし、図８（ｂ）に示すようにカレンダーのようなＵＩ９０１で日付ごとに画像データが管理されていてもよい。日付の部分９０２をクリックすることにより、同日に撮影された画像を、図８（ａ）のようなサムネイル一覧で表示する。
【００２５】
次に、Ｓ３０２において、各画像のデコードを行う。具体的には、アプリケーションが、新規で保存され未だセンシング処理が行われていない画像をサーチし、抽出された各画像について、画像コーデック部２００が圧縮データからビットマップデータに変換する。
【００２６】
次に、Ｓ３０３において、上記ビットマップデータに対して、各種センシング処理を実行する。ここでいうセンシング処理には、次の表１に示すような様々な処理が含まれる。本実施形態では、センシング処理の例として、顔検出、画像の特徴量解析、シーン解析を挙げており、それぞれ表１に示すようなデータ型の結果を算出する。
【００２７】
【表１】
2015053543.tif 000003
【００２８】
以下、それぞれのセンシング処理について説明する。
【００２９】
画像の基本的な特徴量である全体の平均輝度、平均彩度は、公知の方法で求めればよいため、詳細な説明は省略する。平均輝度は、画像の各画素について、ＲＧＢ成分を公知の輝度色差成分（例えばＹＣｂＣｒ成分）に変換し（変換式省略）、Ｙ成分の平均値を求めればよい。また、平均彩度は、上記ＣｂＣｒ成分について画素毎に以下を算出し、下記Ｓの平均値を求めればよい。
【００３０】
【数１】
2015053543.tif 000004
【００３１】
また、画像内の平均色相（ＡｖｅＨ）は、画像の色合いを評価するための特徴量である。各画素毎の色相は、公知のＨＩＳ変換式を用いて求めることができ、それらを画像全体で平均化することにより、ＡｖｅＨを求めることができる。
【００３２】
また、これらの特徴量は、上述したように画像全体で算出してもよいし、例えば、画像を所定サイズの領域に分割し、各領域毎に算出してもよい。
次に、人物の顔検出処理について説明する。本実施形態で使用する人物の顔検出手法としては、公知の方法を用いることができる。
【００３３】
特開２００２−１８３７３１号に記載されている方法では、入力画像から目領域を検出し、目領域周辺を顔候補領域とする。この顔候補領域に対して、画素毎の輝度勾配、および輝度勾配の重みを算出し、これらの値を、あらかじめ設定されている理想的な顔基準画像の勾配、および勾配の重みと比較する。そのときに、各勾配間の平均角度が所定の閾値以下であった場合、入力画像は顔領域を有すると判定する。
【００３４】
また、特開２００３−３０６６７号に記載されている方法では、まず画像中から肌色領域を検出し、同領域内において、人間の虹彩色画素を検出することにより、目の位置を検出することができる。
【００３５】
特開平８−６３５９７号に記載されている方法では、まず、複数の顔の形状をしたテンプレートと画像とのマッチング度を計算する。そのマッチング度が最も高いテンプレートを選択し、最も高かったマッチング度があらかじめ定められた閾値以上であれば、選択されたテンプレート内の領域を顔候補領域とする。同テンプレートを用いることで、目の位置を検出することができる。
【００３６】
さらに、特開２０００−１０５８２９号に記載されている方法では、まず、鼻画像パターンをテンプレートとし、画像全体、あるいは画像中の指定された領域を走査し最もマッチする位置を鼻の位置として出力する。次に、画像の鼻の位置よりも上の領域を目が存在する領域と考え、目画像パターンをテンプレートとして目存在領域を走査してマッチングをとり、ある閾値よりもマッチ度が度置きい画素の集合である目存在候補位置集合を求める。そして、目存在候補位置集合に含まれる連続した領域をクラスタとして分割し、各クラスタと鼻位置との距離を算出する。その距離が最も短くなるクラスタを目が存在するクラスタと決定することで、器官位置の検出することができる。
【００３７】
その他の人物の顔検出方法としては、特開平８−７７３３４、特開２００１−２１６５１５、特開平５−１９７７９３、特開平１１−５３５２５、特開２０００−１３２６８８、特開２０００−２３５６４８、特開平１１−２５０２６７に記載されるような顔および器官位置を検出する方法が挙げられる。また、人物の顔検出処理は、特許第２５４１６８８号に記載された方法でもよく、方法は特に限定されるものではない。
【００３８】
人物の顔検出処理により、各入力画像について、人物顔の個数と各顔毎の座標位置を取得することができる。また、画像中の顔座標位置が分かることにより、顔領域の特徴量を解析することができる。例えば、顔領域毎に顔領域内に含まれる画素値の平均ＹＣｂＣｒ値を求めることにより、顔領域の平均輝度および平均色差を得ることができる。
【００３９】
また、画像の特徴量を用いてシーン解析処理を行うことができる。シーン解析処理は、例えば、出願人が開示している特開２０１０−２５１９９９号や特開２０１０−２７３１４４号等で開示されている方法により行うことができる。シーン解析処理により、風景（Ｌａｎｄｓｃａｐｅ）、夜景（Ｎｉｇｈｔｓｃａｐｅ）、人物（Ｐｏｒｔｒａｉｔ）、露出不足（Ｕｎｄｅｒｅｘｐｏｓｕｒｅ）、その他（Ｏｔｈｅｒｓ）、という撮影シーンを区別するためのＩＤを取得することができる。
【００４０】
なお、本実施形態では、上記のセンシング処理によりセンシング情報を取得したが、その他のセンシング情報を利用してもよい。
【００４１】
上記のようにして取得したセンシング情報は、データベース部２０２に保存する。データベース部２０２への保存形式については、例えば、図９に示すような汎用的なフォーマット（例えば、ＸＭＬ：ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）で記述し、格納すればよい。
【００４２】
図９においては、各画像毎の属性情報を、３つのカテゴリに分けて記述する例を示している。
【００４３】
１番目のＢａｓｅＩｎｆｏタグは、画像サイズや撮影時情報として、あらかじめ取得した画像ファイルに付加されている情報を格納するためのタグである。ここには、画像毎の識別子ＩＤ、画像ファイルが格納されている保存場所、画像サイズ、撮影日時などが含まれる。
【００４４】
２番目のＳｅｎｓＩｎｆｏタグは、上述した画像解析処理の結果を格納するためのタグである。画像全体の平均輝度、平均彩度、平均色相やシーン解析結果が格納され、さらに、画像中に存在する人物の顔位置や顔色に関する情報が格納される。
【００４５】
３番目のＵｓｅｒＩｎｆｏタグは、ユーザが画像毎に入力した情報を格納することができるタグであるが、詳細については後述する。
【００４６】
なお、画像属性情報のデータベース格納方法については、上記に限定されるものではない。その他公知のどのような形式で格納してもよい。
【００４７】
図３のＳ３０５では、上述したＳ３０２及びＳ３０３の処理を行った画像が最後の画像か否かを判定する。最後の画像である場合は、Ｓ３０６へ進み、最後の画像ではない場合は、Ｓ３０２へ戻る。
【００４８】
Ｓ３０６において、Ｓ３０３で検出された顔位置情報を用いて、人物毎のグループを生成する処理を行う。あらかじめ人物の顔を自動でグループ化しておくことにより、その後ユーザが各人物に対して名前を付ける作業を効率化することができる。
【００４９】
ここでの人物グループ形成は、公知の個人認識方法を用いて、図５の処理フローにより実行する。
【００５０】
なお、個人認識処理は、主に、顔の中に存在する眼や口といった器官の特徴量抽出と、それらの関係性の類似度を比較することにより実行される。個人認識処理は、例えば、特許第３４６９０３１号等に開示されているので、ここでの詳細な説明は省略する。
【００５１】
図５は人物グループ生成処理Ｓ３０６の基本的なフローチャートである。
【００５２】
まず、Ｓ５０１で、２次記憶装置に保存されている画像を順次読みだしてデコード処理を行う。さらにＳ５０２でデータベース部２０２にアクセスし、該画像中に含まれる顔の個数と顔の位置情報を取得する。次に、Ｓ５０４において、個人認識処理を行うための正規化顔画像を生成する。
【００５３】
ここで正規化顔画像とは、画像内に様々な大きさ、向き、解像度で存在する顔を切り出して、すべて所定の大きさと向きになるよう、変換して切り出した顔画像のことである。個人認識を行うためには、眼や口といった器官の位置が重要となるため、正規化顔画像のサイズは、上記器官が確実に認識できる程度であることが望ましい。このように正規化顔画像を生成することにより、特徴量検出処理において、様々な解像度の顔に対応する必要がなくなる。
【００５４】
次に、Ｓ５０５で、正規化顔画像から顔特徴量を算出する。ここでの顔特徴量とは眼や口、鼻といった器官の位置、大きさや、さらには顔の輪郭などを含むことを特徴とする。
【００５５】
さらに、Ｓ５０６で、あらかじめ人物の識別子（辞書ＩＤ）毎に顔特徴量が格納されているデータベース（以降、顔辞書と呼ぶ）の顔特徴量と類似しているか否かの判定を行う。類似度は、例えば、辞書ＩＤ内部で管理されている特徴量と、新たに入力された特徴量を比較して算出する。ここで用いる特徴量は、保持されている目、鼻、口といった器官の位置や、器官間の距離等の情報である。類似度は、上記の特徴量が類似しているほど高く、類似してない場合には低い値を取るものとし、例えば０〜１００の値を取り得るものとする。そして、類似しているか否かの判定は、算出した類似度を予め保持されている閾値と比較し、類似度が閾値よりも高い場合には辞書ＩＤと同一人物であると判断する。一方、類似度が閾値よりも低い場合には、同一人物ではないものとして判定する。このような類似度判定のための閾値は、全ての辞書ＩＤに対して固定の値を一つだけ保持するようにいてもよいし、各辞書ＩＤ毎に異なった閾値を保持するようにしてもよい。
【００５６】
Ｓ５０６の判定がＹｅｓの場合Ｓ５０９に進み、同じ人物として同じ人物の辞書ＩＤに該顔の特徴量を追加する。
【００５７】
Ｓ５０６の判定がＮｏの場合Ｓ５０８に進み、現在評価対象となっている顔は、これまで顔辞書に登録された人物とは異なる人物であると判断して、新規辞書ＩＤを発行して顔辞書に追加する。Ｓ５０２〜Ｓ５０９までの処理を、入力画像群の中から検出した顔領域全てに適用して、登場した人物のグループ化を行う。
【００５８】
人物グループ生成処理の結果は、図１２のＸＭＬフォーマットで示すように、各顔毎にＩＤタグを用いて記述し、上述したデータベースに保存する。
【００５９】
なお、上記実施形態においては、図３に示すように、全ての画像のセンシング処理が終了した後に人物グループ生成処理を実行したが、これ以外の方法としてもよい。例えば、図４に示すように、１つの画像に対してＳ４０３でセンシング処理を実行した後に、顔検出位置情報を利用してグループ化処理Ｓ４０５を行うという作業を繰り返したとしても、同様の結果を生成することができる。
【００６０】
また、人物グループ生成処理によって得られた各人物グループは、図７のようなＵＩ７０１にて表示されることになる。同７において、７０２は人物グループの代表顔画像を表しており、その横には、該人物グループの名前を表示する領域７０３が存在する。自動の人物グループ化処理を終了した直後は、同図に示すように人物名は「Ｎｏ  ｎａｍｅ１」「Ｎｏ  ｎａｍｅ２」などと表示されている。これらの人物名を以下「人物ＩＤ」とする。また、７０４は該人物グループに含まれる複数の顔画像である。後述するが、図７のＵＩ７０１においては、「Ｎｏ  ｎａｍｅ  Ｘ」の領域７０３を指定して人物名を入力したり、人物毎に誕生日や続柄等の情報を入力することができる。
【００６１】
また、上記センシング処理は、オペレーティングシステムのバックグラウンドタスクを利用して実行してもよい。この場合、ユーザはコンピュータ上で別の作業を行っていたとしても、画像群のセンシング処理を継続させることができる。
【００６２】
本実施形態においては、ユーザが手動で画像に関する様々な属性情報を入力することもできる。
【００６３】
その属性情報（以降、手動登録情報）の例の一覧を、表２に記載する。手動登録情報は大きく、画像単位に設定するものと、上記処理によりグループ処理した人物に設定する情報に分かれる。
【００６４】
【表２】
2015053543.tif 000005
【００６５】
まず、画像毎に設定する属性情報として、ユーザのお気に入り度がある。お気に入り度は、その画像を気に入っているかどうかを、ユーザが手動で段階的に入力するものである。例えば、図１０（ａ）に示すように、ＵＩ１３０１上で、所望のサムネイル画像１３０２をマウスポインタ１３０３で選択し、右クリックをすることでお気に入り度を入力できるダイアログを表示する。ユーザはメニューの中で自分の好みに応じて、★の数を選択することができる。本実施形態では、お気に入り度が高いほど★の数が多くなるよう設定する。
【００６６】
また、上記お気に入り度については、ユーザが手動で設定せずに、自動で設定するようにしてもよい。例えば、ユーザが図８（ａ）に示す画像サムネイル一覧表示の状態から、所望の画像ファイルをクリックし、１画像表示画面に遷移したとする。その遷移した回数を計測して、回数に応じてお気に入り度を設定してもよい。例えば、閲覧した回数が多いほど、ユーザが該画像を気に入っていると判断する。
【００６７】
また、他の例として、プリント回数をお気に入り度に設定してもよい。例えば、プリント行為を行った場合、当然その画像を気に入っていると判断してお気に入り度が高いと設定すればよい。この場合は、プリント回数を計測して、プリント回数に応じてよりお気に入り度を設定する。
【００６８】
以上説明したように、お気に入り度については、ユーザが手動で設定してもよく、閲覧回数に応じてお気に入り度を設定してもよく、プリント回数に応じてお気に入り度を設定してもよい。これらの設定及び計測した情報は、それぞれ個別に、図９で示すようなＸＭＬフォーマットで、データベース部２０２のＵｓｅｒＩｎｆｏタグ内に格納される。例えば、お気に入り度はＦａｖｏｒｉｔｅＲａｔｅタグで、閲覧回数はＶｉｅｗｉｎｇＴｉｍｅｓタグで、プリント回数はＰｒｉｎｔｉｎｇＴｉｍｅｓタグにそれぞれ格納される。
【００６９】
また、画像毎に設定する別の情報として、イベント情報が挙げられる。イベント情報は、例えば、家族旅行“ｔｒａｖｅｌ”、卒業式“ｇｒａｄｕａｔｉｏｎ”、結婚式“ｗｅｄｄｉｎｇ”が挙げられる。
【００７０】
イベントの指定は、図１０（ｂ）に示すように、カレンダー上で所望の日付をマウスポインタ１４０２などで指定して、その日のイベント名を入力することにより行うことができるようにすればよい。指定されたイベント名は、画像の属性情報の一部として、図９に示すＸＭＬフォーマットに含まれることになる。図９のフォーマットでは、ＵｓｅｒＩｎｆｏタグ内のＥｖｅｎｔタグを使って、イベント名と画像を紐付けている。なお、以下、「紐づけ」とは、関連付けることを指す。
【００７１】
次に、人物の属性情報について説明する。
【００７２】
図１１は、人物の属性情報を入力するためのＵＩを示している。図１１において、１５０２は所定人物（この場合は“ｆａｔｈｅｒ”）の代表顔画像を示している。１５０３は、所定人物の人物名（人物ＩＤ）の表示領域である。また、１５０４は、他の画像の中から検出し、Ｓ５０６で顔特徴量が類似していると判断された画像（サムネイル）である。このように、図１１では、人物ＩＤ１５０３の下に、Ｓ５０６で顔特徴量が類似していると判断された画像１５０４の一覧が表示される。
【００７３】
センシング処理が終了した直後は、図７に示すように各人物グループには名前が入力されていないが、「Ｎｏ  ｎａｍｅ」の部分７０２をマウスポインタで指示することにより、任意の人物名を入力することができる。
【００７４】
また、人物毎の属性情報として、それぞれの人物の誕生日やアプリを操作しているユーザから見た続柄を設定することもできる。図１１の人物の代表顔１５０２をクリックすると、画面下部に図示するように、第１の入力部１５０５ではクリックした人物の誕生日を入力することができる。また、第２の入力部１５０６では、クリックした人物の続柄情報を入力することができる。
【００７５】
以上、入力された人物属性情報は、これまでの画像に関連付けられた属性情報とは異なり、図１２のようなＸＭＬフォーマットによって、画像属性情報とは別にデータベース部２０２内で管理される。
【００７６】
本実施形態では、あらかじめ用意した様々なレイアウトテンプレートを用いてレイアウト生成処理を行う。レイアウトテンプレートとは図１３や図１５に示すようなものであり、レイアウトする用紙サイズ上に、複数の画像配置枠１７０２、１９０２、１９０３（以降、スロットと同義）を備えている。
【００７７】
このようなテンプレートは多数用意されており、あらかじめ本実施例を実行するためのソフトウェアが画像処理装置１１５にインストールされた時点で、２次記憶装置１０３に保存しておけばよい。また、その他の方法として、ＩＦ１０７や無線ＬＡＮ１０９を介して接続されたインターネット上に存在する外部サーバー１１４から、任意のテンプレート群を取得してもよい。
【００７８】
これらのテンプレートは汎用性の高い構造化言語、例えば上述したセンシング結果の格納と同様にＸＭＬで記載されているものとする。ＸＭＬデータの例を図１４及び図１６に示す。
【００７９】
これらの例では、まずＢＡＳＩＣタグに、レイアウトページの基本的な情報を記述する。基本的な情報とは、例えば該レイアウトのテーマやページサイズ、およびページの解像度（ｄｐｉ）等が考えられる。同例Ｘにおいて、テンプレートの初期状態では、レイアウトテーマであるＴｈｅｍｅタグはブランクとなっている。また、基本情報として、ページサイズはＡ４、解像度は３００ｄｐｉを設定している。
【００８０】
また、ＩｍａｇｅＳｌｏｔタグは、上述した画像配置枠の情報を記述している。ＩｍａｇｅＳｌｏｔタグの中にはＩＤタグとＰＯＳＩＴＩＯＮタグの２つを保持し、画像配置枠のＩＤと位置を記述している。該位置情報については、図１４や図１６で図示するように、例えば左上を原点とするＸ−Ｙ座標系において定義される。
【００８１】
また、上記ＩｍａｇｅＳｌｏｔは、その他にそれぞれのスロットに対して、スロットの形状および配置すべき推奨人物グループ名を設定する。例えば、図１３のテンプレートにおいては、図１４のＳｈａｐｅタグで示すように、すべてのスロットは矩形“ｒｅｃｔａｎｇｌｅ”形状で、人物グループ名はＰｅｒｓｏｎＧｒｏｕｐタグによって“ＭａｉｎＧｒｏｕｐ”を配置することを推奨している。
【００８２】
また、図１５のテンプレートにおいては、図３４に示すように、中央に配置しているＩＤ＝０のスロットは矩形形状であることが記載されている。また、人物グループは“ＳｕｂＧｒｏｕｐ”を配置し、その他のＩＤ＝１，２と続くスロットは楕円“ｅｌｌｉｐｓｅ”形状で、人物グループは“ＭａｉｎＧｒｏｕｐ”を配置することを推奨している。
【００８３】
本実施形態においては、上述したようなテンプレートを多数保持する。
【００８４】
本実施形態に係るアプリケーションは、入力された画像群に対して解析処理を実行し、人物を自動的にグループ化してＵＩで表示することができる。また、ユーザはその結果を見て、人物グループ毎に名前や誕生日などの属性情報を入力したり、画像毎にお気に入り度などを設定することができる。さらに、テーマごとに分類された多数のレイアウトテンプレートを保持することができる。
【００８５】
以上の条件を満たす本実施形態のアプリケーションは、ある所定のタイミングで、自動的にユーザに好まれそうなコラージュレイアウトを生成し、ユーザに提示する処理を行う（以下、レイアウトの提案処理という）。
【００８６】
以上の条件を満たすと、本実施例のアプリケーションは、ある所定のタイミングに、自動的にユーザに好まれそうなコラージュレイアウトを生成し、ユーザに提示する処理を行う。これを、レイアウトの提案処理と呼ぶこととする。
【００８７】
図６は、レイアウトの提案処理を行うための基本的なフローチャートを示している。
【００８８】
まず、Ｓ６０１において、レイアウトの提案処理のシナリオを決定する。シナリオには、提案するレイアウトのテーマ及びテンプレートの決定、レイアウト内で重視する人物（主人公）の設定、レイアウト生成に用いる画像群の選定情報などが含まれる。
【００８９】
以下では、２つのシナリオを例示して、シナリオの決定方法について説明する。
【００９０】
例えば、２週間前に自動的に各人物に関する誕生日のレイアウトの提案処理を行う設定がされていたとする。図１１で自動グループ化されている人物“ｓｏｎ”の１歳の誕生日が近いとする。この場合には、提案するレイアウトのテーマは成長記録“ｇｒｏｗｔｈ”と決定する。次にテンプレートの選択を行うが、この場合には成長記録に適した図１５のようなものを選択し、図２２に示すように、ＸＭＬのＴｈｅｍｅタグの部分に“ｇｒｏｗｔｈ”と記載する。次にレイアウトを行う際に注目する主人公“ＭａｉｎＧｒｏｕｐ”として、“ｓｏｎ”を設定する。また、レイアウトを行う際に副次的に注目する“ＳｕｂＧｒｏｕｐ”として“ｓｏｎ”と“ｆａｔｈｅｒ”を設定する。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースを参照し、上記人物“ｓｏｎ”の誕生日からこれまでに撮影した画像群のうち、“ｓｏｎ”を含む画像群を大量に抽出してリスト化する。以上が、成長記録レイアウトのためのシナリオ決定である。
【００９１】
上記とは異なる例として、１カ月以内に所定のイベント情報が登録されていた場合、レイアウトの提案処理を実行する設定がされているとする。図１０（ｂ）で登録したイベント情報から、例えば数日前に家族旅行に行きその画像が大量に２次記憶装置に保存されていることがわかると、シナリオ決定部は、家族旅行のレイアウトを提案するためのシナリオを決定する。この場合には、提案するレイアウトのテーマは旅行“ｔｒａｖｅｌ”と決定する。次にテンプレートの選択を行うが、この場合には図１３のようなレイアウトを選択し、図３６に示すように、ＸＭＬのＴｈｅｍｅタグの部分に“ｔｒａｖｅｌ”と記載する。次にレイアウトを行う際に注目する主人公“ＭａｉｎＧｒｏｕｐ”として、“ｓｏｎ”、“ｍｏｔｈｅｒ”、“ｆａｔｈｅｒ”を設定する。このように、ＸＭＬの特性を活かせば、“ＭａｉｎＧｒｏｕｐ”として複数の人物を設定することができる。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースを参照し、上記旅行イベントに紐付けられた画像群を大量に抽出してリスト化する。以上が、家族旅行レイアウトのためのシナリオ決定である。
【００９２】
次に、図６のＳ６０３において、上述したシナリオに基づくレイアウトの自動生成処理を実行する。図１７はレイアウト処理部の詳細な処理フローを示している。以降は、同図に沿って、各処理ステップの説明を行う。
【００９３】
まず、Ｓ２１０１で、上述したシナリオ生成処理で決定され、テーマと人物グループ情報が設定された後のテンプレート情報を取得する。
【００９４】
次に、Ｓ２１０３においては、上記シナリオで決定した画像リストに基づいて、各画像毎に該画像の特徴量をデータベースから取得し、画像群属性情報リストを生成する。ここでいう画像群情報リストとは、図９に示したＩＭＡＧＥＩＮＦＯタグが画像リスト分だけ並んだ構成となっている。
【００９５】
このように、本実施形態の自動レイアウト生成処理では、このように画像データそのものを直接扱うのではなく、あらかじめ画像毎にセンシング処理を行ってデータベース保存しておいた属性情報を利用する。レイアウト生成処理を行う際に、画像データそのものを対象としてしまうと、画像群を記憶するために非常に巨大なメモリ領域を必要としてしまうことを避けるためである。すなわち、これにより、レイアウト生成処理で必要なメモリ量を低減させることができる。
【００９６】
具体的には、まず、Ｓ２１０５において、入力された画像群の属性情報を用いて、入力された画像群の中から不要画像のフィルタリングを行う。フィルタリング処理は、図１８のフローにて行う。図１８では、各画像毎に、まずＳ２２０１で全体の平均輝度がある閾値（ＴｈＹ＿ＬｏｗとＴｈＹ＿Ｈｉｇｈ）内に含まれているかの判定を行う。否の場合にはＳ２２０６に進み、注目画像はレイアウト対象から除去する。
【００９７】
同様に、Ｓ２２０２〜Ｓ２２０５では、注目画像に含まれる顔領域それぞれについて、平均輝度、平均色差成分が、良好な肌色領域を示す所定閾値に含まれているかの判定を行う。Ｓ２２０２〜Ｓ２２０５のすべての判定がＹｅｓとなる画像のみ、以降のレイアウト生成処理に適用される。具体的には、Ｓ２２０２では、ＩＤ＝Ｎである顔領域のＡｖｅＹが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈ）の範囲に含まれているか否かの判定を行う。Ｓ２２０３では、ＩＤ＝Ｎである顔領域のＡｖｅＣｈが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈ）の範囲に含まれているか否かの判定を行う。Ｓ２２０４では、ＩＤ＝Ｎである顔領域のＡｖｅＣｒが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈ）の範囲に含まれているか否かの判定を行う。Ｓ２２０５では、最後の顔であるか否かを判定する。最後の顔ではない場合は、Ｓ２２０２へ戻り、最後の顔である場合は、処理を終了する。
【００９８】
なお、このフィルタリング処理では、以降の一時レイアウト作成処理に明らかに不要と判断できる画像の除去を目的としているため、上記閾値は比較的湯緩やかに設定することが望ましい。例えばＳ２２０１の画像全体輝度の判定において、ＴｈＹ＿ＨｉｇｈとＴｈＹ＿Ｌｏｗの差が画像ダイナミックレンジに比して極端に小さいと、それだけＹｅｓと判定される画像が少なくなってしまう。本実施形態のフィルタリング処理ではそうならないよう、両者の差をできる限り広く設定し、かつ明らかに異常画像と判断されるものは除去できるような閾値に設定する。
【００９９】
次に図１７のＳ２１０７において、上記処理でレイアウト対象となった画像群を用いて、大量（Ｌ個）の一時レイアウトを生成する。一時レイアウトの生成は、取得したテンプレートの画像配置枠に対して、入力画像を任意に当てはめる処理を繰り返す。このときに、例えば、以下のパラメータ（画像選択・配置・トリミング）をランダムで決定する。
【０１００】
画像選択基準としては、例えば、レイアウト中の画像配置枠がＮ個の時、画像群の中からどの画像を選択するかが挙げられる。配置基準としては、例えば、選択した複数の画像を、どの配置枠に配置するかが挙げられる。トリミング基準としては、配置した際に、どの程度のトリミング処理を行うかというトリミング率が挙げられる。トリミング率は例えば０〜１００％で表わされ、トリミングは、図１９（ａ）に示すように、画像の中心を基準として所定のトリミング率で行われる。図１９（ａ）では、２３０１は画像全体を示し、２３０２はトリミング率５０％でトリミングした際の切り取り枠を示している。
【０１０１】
上述したような画像選択・配置・トリミング基準に基づいて、可能な限り数多くの一時レイアウトを生成する。生成した各一時レイアウトは、図３７のＸＭＬのように表わすことができる。各スロットに対して、選択され配置された画像のＩＤがＩｍａｇｅＩＤタグに記述され、トリミング率がＴｒｉｍｉｎｇＲａｔｉｏタグに記述される。
【０１０２】
なお、ここで生成する一時レイアウトの数Ｌは、後述するレイアウト評価ステップでの評価処理の処理量と、それを処理する画像処理装置１１５の性能に応じて決定されるが、例えば、数十万通り以上の一時レイアウトを生成するのが好ましい。
【０１０３】
レイアウト評価ステップでの評価処理の処理量は、作成するレイアウトテンプレートの複雑度合いに応じて増減する。例えば、テンプレート内で取り扱うスロット数が多いほど評価処理量は増加し、また、各スロットに指定されたレイアウト条件が複雑であるほど評価処理量は増加する。したがって、生成しようとしているテンプレートの複雑度合をあらかじめ見積もって、それにより動的にＬを決定してもよい。
【０１０４】
以上述べたように適切にＬを設定することで、自動レイアウト作成時のレスポンスとレイアウト結果の品質を最適にコントロールできる。
【０１０５】
生成したレイアウトは、それぞれＩＤを付加して図２４のＸＭＬ形式で２次記憶装置１０３にファイル保存してもよいし、構造体など別のデータ構造を用いてＲＡＭ１０２上に記憶してもよい。
【０１０６】
次に、図１７のＳ２１０８において、大量に生成した一時レイアウトの定量評価を行う。具体的には、作成したＬ個の一時レイアウトに対して、それぞれ所定のレイアウト評価量を用いて評価を行う。本実施形態におけるレイアウト評価量の一覧を、表３に示す。表３に示すように、本実施形態で用いるレイアウト評価量は、主に３つのカテゴリに分けることができる。
【０１０７】
【表３】
2015053543.tif 000006
【０１０８】
一つ目は、画像個別の評価量である。これは画像の明るさや彩度、ブレぼけ量等の状態を判断し、スコア化するものである。以下、本実施形態のスコア化の一例について説明する。明るさの適正度は、図１９（ｂ）に示すように、平均輝度がある所定レンジ範囲内においてはスコア値１００とし、所定レンジ範囲から外れるとスコア値を下げるよう設定する。彩度の適正度は、図１９（ｃ）に示すように、画像全体の平均彩度がある所定の彩度値より大きい場合にはスコア値１００とし、所定値より小さい場合にはスコア値を除々に下げるように設定する。
【０１０９】
二つ目は、画像とスロットの適合度の評価である。画像とスロットの適合度の評価としては、例えば、人物適合度、トリミング欠け判定が挙げられる。人物適合度は、スロットに指定されている人物と、実際に該スロットに配置された画像内に存在する人物の適合率を表したものである。例を挙げると、あるスロットが、ＸＭＬで指定されているＰｅｒｓｏｎＧｒｏｕｐで、“ｆａｔｈｅｒ”、“ｓｏｎ”が指定されているものとする。この時、該スロットに割り当てられた画像に該２人の人物が写っていたとすると、該スロットの人物適合度はスコア値１００とする。片方の人物しか写っていなかったとすると、適合度はスコア値５０とし、両者とも写っていなかった場合は、スコア値０とする。ページ内の適合度は、各スロット毎に算出した適合度の平均値とする。トリミング領域２７０２の欠け判定は、例えば、図２０に示すように、画像中に存在する顔の位置２７０３が判明している場合、欠けた部分の面積に応じて、０から１００までのスコア値を算出する。欠けた面積が０の場合、スコアは１００とし、逆にすべての顔領域が欠けた場合、スコア値は０とする。
【０１１０】
三つめは、レイアウトページ内のバランスを評価である。バランスを評価するための評価値としては、例えば、画像類似性、画素値分布のばらつき、オブジェクトのばらつきが挙げられる。
【０１１１】
レイアウト頁内のバランスを評価するための評価量として、画像類似性について説明する。画像の類似性は、大量に生成した一時レイアウト毎に算出されるレイアウト頁内のそれぞれの画像の類似性である。例えば、旅行テーマのレイアウトを作成したい場合、あまりに似通った類似度の高い画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。したがって、例えば、類似性は、撮影日時によって評価することができる。撮影日時が近い画像は、同じような場所で撮影された可能性が高いが、撮影日時が離れていれば、その分、場所もシーンも異なる可能性が高いからである。撮影日時は、図９で示したように、画像属性情報として、予めデータベース部２０２に保存されている、画像毎の属性情報から取得することができる。撮影日時から類似度を求めるには以下のような計算を行う。例えば、今注目している一時レイアウトに表４で示すような４つの画像がレイアウトされているものとする。
【０１１２】
なお、画像ＩＤで特定される画像には、それぞれ撮影日時情報が付加されている。具体的には、撮影日時として、年月日及び時間（西暦：ＹＹＹＹ、月：ＭＭ、日：ＤＤ、時：ＨＨ、分：ＭＭ、秒：ＳＳ）が付加されている。このとき、この４つの画像間で、撮影時間間隔が最も短くなる値を算出する。
【０１１３】
【表４】
2015053543.tif 000007
【０１１４】
この場合は、画像ＩＤ１０２と１０８間の３０分が最も短い間隔である。この間隔をＭｉｎＩｎｔｅｒｖａｌとし、秒単位で格納する。すなわち３０分＝１８００秒である。このＭｉｎＩｎｔｅｒｖａｌをＬ個の各一時レイアウト毎に算出して配列ｓｔＭｉｎＩｎｔｅｒｖａｌ［ｌ］に格納する。次に、該ｓｔＭｉｎＩｎｔｅｒｖａｌ［ｌ］の中で最大値ＭａｘＭｉｎＩｎｔｅｒｖａｌ値を求める。すると、ｌ番目の一時レイアウトの類似度評価値Ｓｉｍｉｌａｒｉｔｙ［ｌ］は以下のようにして求めることができる。
Ｓｉｍｉｌａｒｉｔｙ［ｌ］＝１００×ｓｔＭｉｎＩｎｔｅｒｖａｌ［ｌ］／ＭａｘＭｉｎＩｎｔｅｒｖａｌ
すなわち、上記Ｓｉｍｉｌａｒｉｔｙ［ｌ］は、最小撮影時間間隔が大きいほど１００に近づき、小さいほど０に近づく値となっているため、画像類似度評価値として有効である。
【０１１５】
レイアウト頁内のバランスを評価するための評価量として、画素値分布のばらつきについて説明する。ここでは、画素値分布のばらつきとして、色合いのバラつきを例に挙げて説明する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った色（例えば、青空の青、山の緑）の画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。この場合は、色のばらつきの大きいものを高い評価とする。注目しているｌ番目の一時レイアウト内に存在する画像の平均色相ＡｖｅＨの分散を算出して、それを色合いのバラつき度ｔｍｐＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］として格納する。次に、ｔｍｐＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］の中での最大値ＭａｘＣｏｌｏｒＶａｒｉａｎｃｅ値を求める。すると、ｌ番目の一時レイアウトの色合いバラつき度の評価値ＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］は以下のようにして求めることができる。
ＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］＝１００×ｔｍｐＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］／ＭａｘＣｏｌｏｒＶａｒｉａｎｃｅ
上記ＣｏｌｏｒＶａｒｉａｎｃｅ［ｌ］は、ページ内に配置された画像の平均色相のバラつきが大きいほど１００に近づき、小さいほど０に近づく値となる。したがって、色合いのばらつき度評価値として用いることができる。
【０１１６】
画素値分布のばらつきは、上述したものに限定されるものではない。
【０１１７】
レイアウト頁内のバランスを評価するための評価量として、オブジェクトのバラつきについて説明する。ここでは、オブジェクトのバラつきとして、顔の大きさのバラつきを例に挙げて説明する。例えば、旅行テーマのレイアウトを作成したい場合、レイアウト結果を見て、あまりに似通った顔のサイズの画像ばかりが並んでいたとすると、それは良いレイアウトとは言えない場合がある。レイアウト後の紙面上における顔の大きさが、小さいものもあれば大きいものもあり、それらがバランスよく配置されていることが、良いレイアウトと考える。この場合は、顔のサイズのばらつきの大きいものを高い評価とする。注目しているｌ番目の一時レイアウト内に配置された後の顔の大きさ（顔位置の左上から右下までの対角線の距離）の分散値を、ｔｍｐＦａｃｅＶａｒｉａｎｃｅ［ｌ］として格納する。次に、該ｔｍｐＦａｃｅＶａｒｉａｎｃｅ［ｌ］の中での最大値ＭａｘＦａｃｅＶａｒｉａｎｃｅ値を求める。すると、ｌ番目の一時レイアウトの顔サイズバラつき度の評価値ＦａｃｅＶａｒｉａｎｃｅ［ｌ］は、以下のようにして求めることができる。
ＦａｃｅＶａｒｉａｎｃｅ［ｌ］＝１００×ｔｍｐＦａｃｅＶａｒｉａｎｃｅ［ｌ］／ＭａｘＦａｃｅＶａｒｉａｎｃｅ
上記ＦａｃｅＶａｒｉａｎｃｅ［ｌ］は、紙面上に配置された顔サイズのバラつきが大きいほど１００に近づき、小さいほど０に近づく値となる。したがって、顔サイズのバラつき度評価値として用いることができる。
【０１１８】
オブジェクトのバラつきは、上述したものに限定されるものではない。
【０１１９】
またその他カテゴリとして、ユーザの嗜好性評価が挙げられる。
例えば、上記に述べた各種の評価量による評価値が低いレイアウトであっても、ユーザが個人的に気に入った写真が含まれるレイアウトであれば、そのユーザにとっては良いレイアウトとなる場合もある。そのようなレイアウトの選択を阻害しないよう、ユーザ嗜好性を元にした評価量を用いて評価するのが好ましい。
【０１２０】
上述したように、ユーザは各画像に対して事前にお気に入り度を設定することができるため、これに基づいて嗜好性を評価することができる。また、例えば、自動で閲覧回数や閲覧時間に基づいて嗜好性を評価することもできる。これらの評価に用いる情報は、ＦａｖｏｒｔｅＲａｔｅタグ、ＶｉｅｗｉｎｇＴｉｍｅｓタグ、ＰｒｉｎｔｉｎｇＴｉｍｅｓタグで管理されている情報をもとにして算出できる。
【０１２１】
１番目の一時レイアウトについて、各スロットに配置された画像のタグ情報の各々の数値について全ての画像の平均値ＦａｖｏｒｔｅＲａｔｅＡｖｅ［ｌ］、ＶｉｅｗｉｎｇＴｉｍｅｓＡｖｅ［ｌ］、ＰｒｉｎｔｉｎｇＴｉｍｅｓＡｖｅ［ｌ］を求める。
【０１２２】
次に、これらの総和を取ることで、ユーザの嗜好性評価値ＵｓｅｒＦａｖｏｒ［ｌ］は、以下のようにして求めることができる。
ＵｓｅｒＦａｖｏｒ［ｌ］＝ＦａｖｏｒｔｅＲａｔｅＡｖｅ［ｌ］＋ＶｉｅｗｉｎｇＴｉｍｅｓＡｖｅ［ｌ］＋ＰｒｉｎｔｉｎｇＴｉｍｅｓＡｖｅ［ｌ］
上記ＵｓｅｒＦａｖｏｒ［ｌ］は、ユーザのお気に入り度が高い画像、閲覧回数が多い画像、印刷回数の多い画像を用いたレイアウトほど高い値を示す。したがって、本実施形態では、ＵｓｅｒＦａｖｏｒ［ｌ］の値が高いほどレイアウトに対するユーザ嗜好性が高いと判断する。
【０１２３】
以上説明したような、各一時レイアウト毎に算出した複数の評価値を、以下では統合化して、各一時レイアウト毎のレイアウト評価値とする。１番目の一時レイアウトの統合評価値を、ＥｖａｌＬａｙｏｕｔ［ｌ］とし、上記で算出したＮ個の評価値（表３の評価値それぞれを含む）の値を、ＥｖａｌＶａｌｕｅ［ｎ］とする。このとき、統合評価値は以下で求めることができる。
【０１２４】
【数２】
2015053543.tif 000008
【０１２５】
上式において、Ｗ［ｎ］は、表３で示したシーン毎の各評価値の重みである。この重みはレイアウトのテーマ毎に異なる重みを設定する。例えば、表３に示すようにテーマを成長記録“ｇｒｏｗｔｈ”と旅行“ｔｒａｖｅｌ”で比較した場合、旅行テーマの方は、できるだけ良質の写真をいろいろな場面で数多くレイアウトすることが望ましい場合が多い。このため、画像の個別評価値やページ内のバランス評価値を重視する傾向に設定する。一方、成長記録“ｇｒｏｗｔｈ”の場合、画像のバリエーションよりは、成長記録の対象となる主人公が確実にスロットに適合しているか否かが重要である場合が多い。このため、ページ内バランスや画像個別評価よりも、画像・スロット適合度評価を重視する傾向に設定する。なお、本実施形態におけるテーマ毎の重要度は表３に示すように設定した。このようにして算出したＥｖａｌＬａｙｏｕｔ［ｌ］を用いて、Ｓ２１０９では、レイアウト結果表示のためのレイアウトリストＬａｙｏｕｔＬｉｓｔ［ｋ］を生成する。レイアウトリストＬａｙｏｕｔＬｉｓｔ［ｋ］の作成方法については、詳細は後述する。このレイアウトリストＬａｙｏｕｔＬｉｓｔ［ｋ］は、図６のＳ６０５でレンダリング表示を行う際にレイアウト順番をｋ番目とした時に、評価が終了したレイアウトの順番ｌとの対応付けを行うのに用いられる。ＬａｙｏｕｔＬｉｓｔ［ｋ］の中身は、レイアウト順番値ｌの値が、記載されている。このレイアウトリストＬａｙｏｕｔＬｉｓｔ［ｋ］のｋが小さい方から、順に表示が行われる。
【０１２６】
図６に戻って、上記処理によって得られたレイアウト結果を、図６のＳ６０５でレンダリングした結果を図２１のように表示する。Ｓ６０５では、まずＬａｙｏｕｔＬｉｓｔ［０］に格納されているレイアウト識別子を読み出し、識別子に相当する一時レイアウト結果を、２次記憶装置１０３あるいはＲＡＭ１０２上から読み出す。レイアウト結果には、上述したようにテンプレート情報とテンプレート内に存在するスロット毎に、割り当てられた画像名が設定されている。したがって、これらの情報に基づいて、画像処理装置１１５上で動作するＯＳの描画関数を用いて、該レイアウト結果をレンダリングし、図２１の２９０２のように表示することになる。
【０１２７】
図２１では、Ｎｅｘｔボタン２９０４を押下することにより、次点スコアであるＬａｙｏｕｔＬｉｓｔ［１］の識別子を読み出し、上記と同様にレンダリング後、表示を行う。これにより、ユーザは様々なバリエーションの提案レイアウトを閲覧することができる。また、Ｐｒｅｖｉｏｕｓボタン２９０３を押下することにより、前に表示したレイアウトを再表示することができる。さらに、表示されたレイアウトが気に入った場合には、プリントボタン２９０５を押下することで、画像処理装置１１５に接続されたプリンタ１１２からレイアウト結果２９０２をプリントアウトすることができる。
【０１２８】
ここで、図２５及び図２６を用いて、図１７のＳ２１０９のレイアウトリストＬａｙｏｕｔＬｉｓｔ［ｋ］の作成方法について説明する。図２５は、実施形態１に係る提案レイアウトのリストの決定処理のフローチャートであり、図２６は、実施形態１に係る評価スコア（評価値）に対する提案レイアウトの対応付けを制御するための確率分布を示す図である。
【０１２９】
図２５において、Ｓ３３０１では、レイアウト評価スコア順にソートリストを作成する。具体的には、ＥｕａｌＬａｙｏｕｔのうち評価値の高い順に識別子ｌをならべ記憶した、ソートリストＬａｙｏｕｔｌｉｓｔ［ｏ］を作成する。たとえば最も良いスコアを出したものがｌ＝５０番目に作成した一時レイアウトだった場合は、ｔｍｐＳｏｒｔＬａｙｏｕｔＬｉｓｔ［０］＝５０となる。同様にｔｍｐＳｏｒｔＬａｙｏｕｔＬｉｓｔ［１］は、スコア値が２番目の識別子ｌ、というようにｔｍｐＳｏｒｔＬａｙｏｕｔＬｉｓｔ［Ｎ］にスコア値がＮ番目の識別子１を順に記憶する。
【０１３０】
Ｓ３３０２では、カウンタｐを初期化（ｐ＝０）する。
【０１３１】
次にＳ３３０３において、乱数値Ｑを取得する。乱数値Ｑは、詳細は後述するが、レイアウト候補を選択する際に用いる。乱数値Ｑは、例えば、０からＬ−１の間の範囲の整数（Ｌは、一時レイアウトの総数）が不均一な確率で発生する特殊な乱数である。図２６は、本実施形態で用いる乱数値Ｑであり、横軸は、発生させる乱数値Ｑを示しており、縦軸は横軸の数値の発生確率を示している。図２６では、発生確率が、Ｑ＝０の場合が最大で、Ｑ＝Ｌ−１で最小となる直線となるような関数となっている。Ｓ３３０３では、乱数値Ｑを取得する度に、この発生確率に基づいて、異なる乱数値Ｑを発生させる。
【０１３２】
図２５のＳ３３０４では、取得した乱数値Ｑを元にｔｍｐＳｏｒｔＬａｙｏｕｔＬｉｓｔ［ｏ］のＱ番目の値を、ＬａｙｏｕｔＬｉｓｔ［ｐ］に記憶させる。
ＬａｙｏｕｔＬｉｓｔ［ｐ］＝ｔｍｐＳｏｒｔＬａｙｏｕｔＬｉｓｔ［Ｑ］
となる。すなわち、最初（カウンタｐ＝０の場合）の  ＬａｙｏｕｔＬｉｓｔには、スコア値が上位からＱ番目のレイアウトを候補として登録する。
【０１３３】
Ｓ３３０５において、カウンタｐを１進め、Ｓ３３０６へ進む。
【０１３４】
Ｓ３３０６において、カウンタｐが総提示レイアウト数Ｏ以下なら、Ｓ３３０３に戻り、再度乱数値Ｑの取得を行う。ここで、総提示レイアウト数Ｏとは、ユーザ提示のために事前に準備しておくレイアウトの個数である。総提示レイアウト数Ｏは、任意の値を設定することができ、ＲＯＭ１０１等に予め設定されていてもよいし、ユーザが設定するようにしてもよい。その後、Ｓ３３０４において、Ｓ３３０３で新たに取得した乱数に基づいたＱ番目のスコア値のレイアウトが２番目のレイアウトリストに登録される。Ｓ３３０５でカウンタｐを１つ進め、Ｓ３３０６で再び総提示レイアウト数Ｏとの比較を行う。このように、Ｓ３３０３〜Ｓ３３０５を総提示レイアウト数Ｏ個分のレイアウトリストが作成されるまで繰り返す。レイアウトリストがＯ個準備できたら終了する。
【０１３５】
上述したように、本実施形態では、レイアウト評価順序と乱数を用いてレイアウトリストを作成する。このレイアウトリストは、ユーザが本発明に係るアプリケーションを起動したタイミング毎に作成する（更新する）。このとき、用いる乱数の初期値をＰＣのタイムスタンプ等を用いて変更することにより、毎回異なるレイアウトリストを作成することが可能となる。そして、レイアウトリストの作成結果に基づき、ユーザに対しレイアウトを提示する。
【０１３６】
ここで、スコア順が近いレイアウトは、似通ったレイアウト結果になる可能性がある。例えば、評価スコアの算出方法からわかるように、同じレイアウトテンプレートを用いた場合等のように同じレイアウトパターンで、一部の画像が異なる場合には、双方の評価スコアは近いものとなる。具体例としては、図１５に示すレイアウトパターンにおいて、中心のＩＤ＝０に同じ画像がレイアウトされ、ＩＤ＝１以降の画像のうち１画像だけが異なるレイアウトの場合、双方の評価スコアは近くなる。したがって、レイアウトリストをスコア順に作成してユーザに画像を提示する場合、似通ったレイアウトを順次提示する可能性が高い。
【０１３７】
これに対し、本実施形態では、レイアウトリスト作成には、乱数を用いてスコア順にソートされたレイアウト候補から所定のレイアウト候補を選択する。すなわち、レイアウトリストには、レイアウト候補の評価スコア順位順のうち、乱数で選択された順にレイアウトが設定される。このため、スコア値の近いレイウアトが続くこと可能性が低くなり、ユーザに似通ったレイアウトが連続して提示される可能性を低下させることができる。すなわち、連続してレイアウトを提示する際に、評価スコアが異なるレイアウト、言い換えれば、似通っていないレイアウトを順に提示する可能性が高くなる。
【０１３８】
このように、本実施形態では、評価結果であるスコア順に、レイアウトリストを作成し、このスコア順と乱数を用いて、ユーザに提示するレイアウトリストを決定する。このように、ユーザに提示する提示順を評価値の順とは異なる順となるように決定することにより、似通っていないレイアウトを順に提示する可能性を高くすることができる。
【０１３９】
すなわち、本実施形態によれば、アプリケーションを使用するたびに、異なるバリエーションのレイアウトを提供できる。これにより、ユーザを飽きさせず、同一画像群を楽しみつつ、かつ自動的に好適なレイアウトを提供することができる。
【０１４０】
また、本実施形態では、レイアウト候補の選択に用いる乱数は、図２６に示すように、スコア上位のレイアウトが高確率で選択されるような確率分布を有している。したがって、評価スコア上位のレイアウトが高確率で選択される可能性が高く、高品質のレイアウトを自動的にユーザに提供できる。
【０１４１】
想定されるあらゆる画像群入力に合わせてテンプレートを大量に用意しておき、画像群入力の特徴に応じてテンプレートを自動／手動で選択してレイアウトを作成した場合大量のテンプレートを保持するコストがかかる。また、画像群入力の特徴に応じて適切なテンプレートを何らかの手段で選ぶ必要がある。さらに、一度作成したレイアウト結果とは異なるレイアウト結果を得たい場合には、異なるテンプレートを有する必要がある。これに対し、本実施形態では、レイアウト評価順序と乱数を用いてレイアウトリストを作成することにより、低コストで異なるバリエーションのレイアウトを容易に提供することができる。
【０１４２】
また、単一のレイアウト結果だけでなく、複数のレイアウト候補を用意することで、レイアウトのバリエーションを増やす際に、複数のレイアウト候補間では選択される画像を同じとした場合、画像によりレイアウトが左右されてしまう。具体的には、選択されている画像自体が好ましくない場合には、それをベースに大きさや配置位置を変更したとしてもどのレイアウト候補も好ましくないものである可能性が高い。これに対し、本実施形態では、レイアウト評価順序と乱数を用いてレイアウトリストを作成することにより、異なる画像が選択されたレイアウトリストを表示することができる。したがって、より良好なレイアウト結果を得る可能性が高くなる。
【０１４３】
（実施形態２）
本実施形態では、図２５のＳ３３０３で取得される乱数値Ｑとして、図２７に示すような乱数を用いる。なお、実施形態１と同様の部分については、説明を省略する。図２７は、実施形態２に係るレイアウト作成において用いる乱数の確率分布を示す図である。
【０１４４】
図２７（Ａ）は、図２６と同様に、０からＬ−１の間の範囲の整数（Ｌは、一時レイアウトの総数）が、不均一な確率で発生する特殊な乱数である。図２７（Ａ）において、横軸は発生させる乱数値Ｑを示しており、縦軸は横軸の乱数値Ｑの発生確率を示している。乱数値Ｑは、Ｑ＝０の場合が発生確率が最大で、Ｑ＝Ｌ’（＜Ｌ−１）で発生確率が０となる直線と、Ｌ’＜Ｑ（＜Ｌ−１）では発生確率が０となるような関数である。本実施形態でも、実施形態１と同様に、乱数値Ｑを取得する度に、この発生確率に基づいて、異なる乱数値Ｑを発生させる。
【０１４５】
そして、乱数値Ｑの結果は、図２５に示すフローの通り、評価スコアが上位からＱ番目の順位の候補レイアウトをレイウアトリストに追加する。
【０１４６】
ここで、乱数値Ｑに基づいて所定の候補レイアウトをレイアウトリストに追加するため、乱数値Ｑの取りうる範囲によって、候補レイウアトとして選択する評価スコア順位の範囲を限定することが可能である。図２５（Ａ）のような特性の発生確率の乱数を用いた場合、発生する乱数値Ｑのレンジが０〜Ｌ’のみに限定されており、結果として評価スコアが上位Ｌ’番目までのレイアウトのみがレイアウトリストに登録されることになる。
【０１４７】
本実施形態では、レイアウトリストに追加されるレイウアトの評価スコアが上位Ｌ’目までとなることにより、評価順位が下位のレイアウト、すなわち、低い評価スコアのレイアウトがレイアウトリストに登録されるのを防ぐことができる。したがって、評価値の近いレイアウトが連続することを防止しつつ、実施形態１と比較してより高評価のレイアウトのみをユーザに提示できる。この結果、高評価で飽きのこない連続した自動レイアウト結果の提示することができる。
【０１４８】
また、図２７（Ｂ）は、図２６と同様に、０からＬ−１の間の範囲の整数（Ｌは、一時レイアウトの総数）が、不均一な確率で発生する特殊な乱数である。図２７（Ｂ）の横軸は発生させる乱数値Ｑを示しており、縦軸は横軸の乱数値Ｑの発生確率を示している。図２７（Ｂ）に示す発生確率曲線は、正規乱数分布となっている。正規分布乱数は、単純乱数から生成できる乱数であり、０を中心とした正規分布の形状の発生頻度分布とすることができ、発生レンジも調整も制御可能な乱数発生アルゴリズムである。図２７（Ｂ）の発生確率曲線は、正規分布乱数を発生し、レンジは±Ｍ’を超える値を有する範囲とし、発生した正規分布乱数のうち、レンジが０〜Ｍ’−１のもののみを選び、選ばれたレンジの範囲で正規化（発生頻度総和が１）となるようにしたものである。図２７（Ｂ）の発生確率曲線は、図２７（Ａ）と同様に、０に行くほど高確率であり、Ｍ’以上の値は発生しない。図２７（Ｂ）の乱数値Ｑを用いてレイアウト作成を行った場合の基本的な効果は、図２７（Ａ）の乱数値Ｑを用いた場合と同様であるが、図２７（Ａ）の乱数値Ｑを用いた場合と比較してより高スコアのレイアウトが選択される。
【０１４９】
図２７（Ｃ）は、０〜Ｍまでの数値の発生確率を標準乱数とした例である。図２７（Ｃ）では、図２７（Ａ）及び図２７（Ｂ）と同様に、評価スコアの順位の上位側が低順位側に対して、高確率となる。標準乱数は、他の乱数に比べ比較的その実装が簡易である。したがって、実装上、メモリに制約があるケースなどは、この乱数を用いることでメモリの使用量を低減させることができる。ただし、この場合、評価スコアの順位が低順位のレイアウトまで高順位のレイアウトと同確率で出現する可能性があるので、Ｍはあまり大きな値ではないのが好ましい。例えば、Ｍ＜（Ｌ−１）／２がより好ましい。このような乱数値Ｑを用いた場合も、評価値が近いレイアウトが連続することを防止しつつ、高評価のレイアウトをユーザに提示できる。結果、飽きのこない連続した有効な自動レイアウト結果の提示が可能となる。
【０１５０】
上述したように、図２７（Ａ）〜（Ｃ）では、評価スコアの順位の上位側が下位側に対して、高確率になるようにしている。これにより、評価値の近いレイアウトが連続することを防止しつつ、高評価のレイアウトのみをユーザに提示でき、結果、飽きのこない連続した有効な自動レイアウト結果の提示が可能となる。
【０１５１】
すなわち、本実施形態では、候補レイアウトのうち、評価スコアの順位が上位にあるレイアウトを選択してレイアウトリストに登録し、ユーザに自動提案することができる。これにより、ユーザは、より良いレイアウトを選択することが可能となる。また、それらの候補リストを所定のタイミングで更新することにより、飽きのこないレイアウトを楽しむことが可能となる。さらに、提案順番と提案されるレイアウトの評価スコアの順位とが一致しないようにレイアウトリストを作成しているため、レイアウトを提示する際に同じようなレイアウトが連続せず、より飽きのこないレイアウト結果を楽しむことができる。
【０１５２】
（実施形態３）
図２８を用いて本実施形態のレイアウトリスト作成について説明する。図２８は、図１７のＳ２１０９のレイアウトリスト作成の詳細フローである。なお、本実施形態では、実施形態１と重複する説明は省略する。
【０１５３】
Ｓ３６０１において、レイアウト評価スコア（ＥｖａｌＬａｙｏｕｔ値）の度数分布（ヒストグラム）データベースを作成する。表３に、作成される度数分布データベースの一例を示す。インデックスナンバーＲ（列１）に対して、対応する度数分布のスコア範囲（列２）、該当スコア範囲に入ったレイアウト候補のリスト個数（列３）がデータベース化される。さらに、該当スコア範囲までの累積度数（％）（列４）、該当スコア範囲に入ったレイアウトリスト番号ｌ（列５）が、データベース化される。
【０１５４】
【表５】
2015053543.tif 000009
【０１５５】
Ｓ３６０２で、評価用に作成した一時レイアウト総数のうち、レイアウトリストに追加対象とするレイアウトを評価値の上位何（％）か指定するリスト個数閾値（％）を取得する。本実施形態では、例えば、Ｔ＝３０（％）とする。
【０１５６】
Ｓ３６０３で、Ｓ３０６１で作成したデータベース３６１０を参照し、乱数発生範囲ｒ及び総提示レイアウト数Ｏを設定する。本実施形態では、ＤＢ中の列４の累積度数中で、Ｓ３６０２で設定したＴ（＝３０）％以上となるインデックス値Ｒ（＝５）を乱数発生範囲ｒ（＝５）として設定する。
【０１５７】
次に、Ｓ３６０４では、カウンタｐを初期化（Ｐ＝０）する。
【０１５８】
Ｓ３６０５では、乱数値Ｑを取得する。このとき、乱数値Ｑは０以上、乱数発生範囲ｒ以下の値とする。Ｓ３６０３で設定された乱数範囲ｒ（＝５）を元に０から５の乱数を発生させる。ここでの発生乱数の確率分布形状は図２６および図２７（Ａ）〜（Ｃ）に示したような、乱数値Ｑの範囲が０〜ｒ（＝５）であり、乱数値Ｑの値が小さい方（０側）の発生確率が高い乱数を用いる。
【０１５９】
Ｓ３６０６では、データベースを参照してインデックスＲに対するリスト番号を取得する。ここでは、Ｓ３６０５で発生した乱数値Ｑ（＝２）を元に、再びデータベース３６１０を参照し、乱数値Ｑに対応するインデックスＲの行のリスト番号値を取得する。
【０１６０】
Ｓ３６０７では、Ｓ３６０６で取得したリスト番号のいずれか一つをＬａｙｏｕｔＬｉｓｔ［ｐ］に記憶させる。
【０１６１】
Ｓ３６０８において、カウンタｐを１進め、Ｓ３６０９において、カウンタｐが総提示レイアウト数Ｏ以下なら、Ｓ３６０５に戻り、再度乱数値Ｑの取得を行う。ここで、総提示レイアウト数Ｏは、任意に設定される値で、ユーザ提示のために事前準備しておくレイアウトの個数を示している。総提示レイアウト数Ｏ個分のレイアウトリストが作成されるまで、Ｓ３３０３〜Ｓ３３０５を繰り返す。そして、レイアウトリストがＯ個準備できたら終了する。本実施形態では、レイアウトリストの作成には、レイアウト候補の評価スコア範囲は、乱数を用いて選択される。ここで、上述した通り、同じレイアウトパターンで一部の画像が異なる場合には、双方の評価スコアは近いものとなる。したがって、評価スコアが近接した場合ユーザに画像を提示した場合、似通ったレイアウトが順次提示される可能性がある。本実施形態でのレイアウトリスト作成には、評価スコア範囲をまず乱数を用いて選択し、選択されたスコア範囲内のレイアウトを選ぶ。これにより、スコア値の近いレイウアトが続くこと可能性が低くなり、ユーザに似通ったレイアウトを連続して提示する可能性を低下させることができる。
【０１６２】
また、評価スコア範囲を選択する乱数が図２６及び図２７（Ａ）〜（Ｂ）のような発生確率に分布を有しているので、レイアウトリストには、スコア上位のレイアウトが高確率で選ばれる。したがって、高品質のレイアウトを自動的にユーザに提供できる。
【０１６３】
（他の実施形態）
以上説明した実施形態は、本発明の効果を得るための一例であり、類似の別手法を用いたり、異なるパラメータを用いたりしたとしても、同等の効果が得られる場合は、本発明の範疇に含まれる。
【０１６４】
上述した実施形態では、レイアウト候補の上位スコアの画像をより多く選択するために、図２６や図２７に示すような発生確率分布をもった乱数を用いてレイアウトリストを作成する場合について説明したが、これに限定されるものではない。例えば、図２５のＳ３３０３において、乱数値Ｑの代わりに、事前に準備したルックアップテーブルを用いてもよい。この場合、ルックアップテーブルには、Ｓ３３０３のステップが呼び出される回数の総提示レイアウト数Ｏと同数分、すなわち、Ｏ個分、カウンタ値ｐとレイアウト候補番号１とを対応付けさせておく。このとき、例えば、レイアウト１に対する発生頻度が図２６に示す発生確率であれば、実施形態１と同様の効果を得ることができる。
【０１６５】
また、ユーザに対するレイアウト候補の提示順は、評価値の順と異なる順であればよい。ここで「異なる順」とは、提示順と評価値のスコア順が完全に一致していなければよく、一部の順が同じであってもよい。例えば、提示順は、スコア順が１〜３番目のレイアウト候補、６番目のレイアウト候補、８番目のレイアウト候補・・・等のように、評価値の順と一致する部分があってもよい。
【０１６６】
また、上述した実施形態では、アプリケーションを起動したタイミング毎にレイアウトリストを更新したが、更新のタイミングはこれに限定されるものではない。例えば、時間や日付が一定期間が経過した場合には、自動的にレイアウトリスト更新し、そのタイミングで乱数の初期値を変更するようにしてもよい。ある一定期間は、同じ状態である方がユーザにとっては作業上メリットがあるケースでは、このように所定のタイミングでレイアウトリストを更新するのが好ましい。例えば、あるレイアウトを選択、プリントした後、再度同一レイアウトをプリントするようなケースでは、再度プリントするまでは同じレイアウトリストである方が好ましい。この場合は、時間がたつと、同一レイアウトを出力する必要性が低くなると思われるので、一定時間たつとレイアウトリストを更新する。これにより、異なるバリエーションのレイアウトを提供でき、ユーザの飽きさせず、同一画像群を楽しみつつ、かつ自動的にレイアウトを提供できる。また、他の例としては、アプリケーション上にユーザが入力できる何らかの指示手段があり、ユーザの指示があったタイミングでレイアウトリスト更新し、そのタイミングで乱数の初期値を変更してもよい。この場合、ユーザが飽きたかどうかの意図をより反映しやすい。さらに他の例としては、ユーザが提示されたレイアウト候補の中から、プリントを行った後に、自動的にレイアウトリスト更新ならびに乱数の初期化を行うようにしてもよい。この場合は、次にプリント動作を行う際に、提示順序が変わるため目新しさをユーザに提供することができる。さらに他の例としては、ＰＣの起動時にレイアウトリストを更新するようにしてもよい。この場合は、アプリ起動前にレイアウトを作成するようなケースにおいて、バックグラウンド処理で行える。したがって、ユーザはアプリ起動時に瞬時に新たなレイアウトを見ることができる。
【０１６７】
また、上述した実施形態では、テンプレートに画像を配置する領域数に対して選択できる画像数（例えば、入力される画像数）が充分に多い前提で説明をしたが、選択できる画像数が充分多くない場合には、レイアウトを複数作成しても、似た画像が選ばれてしまう。例えば、テンプレートにおいて、画像を配置する領域数が３で、選択できる画像数が４画像の場合、複数のレイアウトを生成しようとしても、必ず２画像は、同じ画像となってしまう。このように、選択できる画像数とテンプレート等に画像を配置する領域数によっては、前に提示するレイアウトと後に提示するレイアウトにおいて重複する画像を所定割合以上含めないようにすると、複数のレイアウトを表示することができない場合がある。以下、後に提示するレイアウトにおいて前に提示するレイアウトと重複する画像を許容する割合を許容割合ともいう。
【０１６８】
従って、レイアウトを複数必ず表示させるためには、選択できる画像数、テンプレートに画像を配置する領域数に基づいて、動的に許容割合を変化させるのが好ましい。具体的には、例えば、入力される画像数が、レイアウトされる画像の配置数の近い程、レイアウト類似の評価値の判定基準を下げて、似ても良い閾値に設定する。また、入力される画像数が、レイアウトされる画像の配置数の遠い程、レイアウト類似評価値の判定基準を上げて、あまり似ない閾値を設定すればよい。また、例えば、許容割合を、選択できる画像数とレイアウトされる画像の配置数（例えば、テンプレートの画像を配置する領域数）に基づいて自動的に算出するようにしてもよい。例えば、必要なレイアウト数とテンプレートの画像を配置する領域数を掛けた値に対して、複数の画像情報の画像数で割った値を許容割合としてもよい。この場合、所定以下の式となる。
所定割合＝必要なレイアウト数×（テンプレートの画像を配置する領域数／選択できる画像数）×１００％
例えば、必要なレイアウト数が１０で、テンプレートの画像を配置する領域数を３、選択できる画像数が１００画像とする。この場合、以下の式となり、許容割合が３０となる。許容割合＝１０×（３／１００）×１００＝３０このように、選択できる画像数に応じて、所定の割合を算出すればよく、いずれの方法により算出するようにしてもよい。上述したように、選択できる画像数に応じて、許容割合を変えることで、生成できるレイアウトの有無を考慮しつつ、似たレイアウトが続きにくくバリエーションのあるレイアウトを提供することが可能となる。
【０１６９】
ここでは、許容割合を予め設定又は自動で設定する場合について説明したが、許容割合は上述した方法に限定されるものではない。例えば、許容割合をユーザが設定してもよい。この場合、必ず似たような画像を配置したくないなどのユーザの要求に応じた設定とすることができる。
【０１７０】
また、上述した実施形態では、候補レイアウトの評価スコア順とは異なる順序で候補レイアウトを並べたレイアウトリストを作成した。このようなレイアウトリストと、候補レイアウトの評価スコア順と同じ順に候補レイアウトを並べたレイアウトリストも同じプログラム内に保持するようにしてもよい。そして、例えば、ユーザの指定等の何らかの指定により、提示するレイアウトリストを切り換える構成としてもよい。この場合は、レイアウト評価値は共用可能なので、処理負荷は低減させることができる。このように、異なるレイアウトリストを保持させることにより、ユーザは自分が好ましい形態を選択できる。さらに、評価スコアの算出時にユーザ志向を学習して、より、レイアウトリストにユーザの意図を反映できる構成としてもよい。このような構成とした場合には、異なるレイアウトリストを保持させることは特に有効となる。
【０１７１】
また、上述した実施形態では、オブジェクトとして人物を例に挙げて説明したが、オブジェクトは人物とは限らない。犬や猫などのペットの認識処理を行ってこれらを認識することにより、オブジェクトとしてペットを設定することができる。また、エッジ検出などの形を認識処理によれば、建物や小物なども認識できるため、オブジェクトとして、建物や小物などを設定することができる。
【０１７２】
上述した実施形態では、レイアウト出力物として、１ページに複数の画像を配置した出力物を生成する例を挙げて説明したが、本発明は、複数ページのアルバム出力にも適用することができる。
【０１７３】
また、本発明は、複数の機器（例えばホストコンピュータ、インタフェイス機器、リーダ、プリンタ等）から構成されるシステムに適用しても、一つの機器からなる装置（例えば、プリンタ、複写機、ファクシミリ装置等）に適用しても良い。
【０１７４】
上述した実施形態は、以下の処理を実行することによっても実現される。すなわち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部又は全部をハードウェアによって実現するようにしてもよい。
【符号の説明】
【０１７５】
１００  ＣＰＵ
１０１  ＲＯＭ
１０２  ＲＡＭ  ７０１  人物表示画面
７０２  人物表示画面に表示する人物グループの代表顔画像
７０３  人物グループ名
７０４  顔画像
８０１  サムネイル表示画面
８０２  画像のサムネイル
９０１  カレンダー形式表示画面
９０２  画像のサムネイル
１３０１  画像のサムネイル表示画面
１３０２  画像のサムネイル
１３０３  マウスポインタ
【図１】
2015053543.tif 000010
【図２】
2015053543.tif 000011
【図３】
2015053543.tif 000012
【図４】
2015053543.tif 000013
【図５】
2015053543.tif 000014
【図６】
2015053543.tif 000015
【図７】
2015053543.tif 000016
【図８】
2015053543.tif 000017
【図９】
2015053543.tif 000018
【図１０】
2015053543.tif 000019
【図１１】
2015053543.tif 000020
【図１２】
2015053543.tif 000021
【図１３】
2015053543.tif 000022
【図１４】
2015053543.tif 000023
【図１５】
2015053543.tif 000024
【図１６】
2015053543.tif 000025
【図１７】
2015053543.tif 000026
【図１８】
2015053543.tif 000027
【図１９】
2015053543.tif 000028
【図２０】
2015053543.tif 000029
【図２１】
2015053543.tif 000030
【図２２】
2015053543.tif 000031
【図２３】
2015053543.tif 000032
【図２４】
2015053543.tif 000033
【図２５】
2015053543.tif 000034
【図２６】
2015053543.tif 000035
【図２７】
2015053543.tif 000036
【図２８】
2015053543.tif 000037