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