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