(57)【要約】【課題】  画像中の顔の個人認識処理において、個人認識精度を向上させた画像処理装置、画像処理方法、及びプログラムを提供する。【解決手段】  画像データから抽出した被写体の顔領域の複数の部位の特徴量を含む特徴パターンを被写体毎に分類して、顔領域の認識に用いる辞書において管理する辞書管理手段と、被写体の顔領域の各部位の特徴量を、小分類化できるか否かを判定し、小分類化できると判定した場合にはその着目部位の特徴量を複数に小分類化して新たな特徴量とする小分類化手段と、小分類化手段により小分類化された場合は、着目部位の新たな特徴量と、管理手段において管理される着目部位以外の部位の特徴量と、を組み合わせた特徴パターンを、被写体を識別するための新たな特徴パターンとして辞書を更新する更新手段と、を備える。【選択図】  図２８
2014016824.tif 000002
【特許請求の範囲】
【請求項１】
画像データから抽出した被写体の顔領域の複数の部位の特徴量を含む特徴パターンを被写体毎に分類して、顔領域の認識に用いる辞書において管理する辞書管理手段と、
前記被写体の顔領域の各部位の特徴量を、小分類化できるか否かを判定し、小分類化できると判定した場合にはその着目部位の特徴量を複数に小分類化して新たな特徴量とする小分類化手段と、
前記小分類化手段により小分類化された場合は、前記着目部位の新たな特徴量と、前記管理手段において管理される前記着目部位以外の部位の特徴量と、を組み合わせた特徴パターンを、前記被写体を識別するための新たな特徴パターンとして前記辞書を更新する更新手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記辞書管理手段において管理される特徴量及び前記新たな特徴量を組み合わせた新たな特徴パターンの複数の画像データにおける出現頻度が所定基準を満たすか否かを判定する判定手段をさらに備え、
前記更新手段は、前記判定手段で所定基準を満たさないと判定された特徴パターンを除外し、前記判定手段で所定基準を満たすと判定された特徴パターンを、前記被写体を識別するための新たな特徴パターンとして前記辞書を更新することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記小分類化手段は、前記辞書において被写体の特徴パターンが予め設定された値を超えた場合に、前記各部位の分散値を求め、当該分散値が所定値以上になった場合に実行されることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
各画像データの画像の撮影日時を示す情報を取得する取得手段をさらに備え、
前記小分類化手段は、前記被写体の撮影日時の時間軸に沿って特徴量をさらに分割し、  前記判定手段は、更に前記撮影日時も前記パターンの１要素として判定を行う
ことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
画像データから抽出した被写体の顔領域の複数の部位の特徴量を含む特徴パターンを被写体毎に分類して、顔領域の認識に用いる辞書において管理する辞書管理工程と、
前記被写体の顔領域の各部位の特徴量を、小分類化できるか否かを判定し、小分類化できると判定した場合にはその着目部位の特徴量を複数に小分類化して新たな特徴量とする小分類化工程と、
前記小分類化工程において前記着目部位の特徴量が複数に小分類化された場合は、前記着目部位の新たな特徴量と、前記管理工程において管理される前記着目部位以外の部位の特徴量と、を組み合わせた特徴パターンを、前記被写体を識別するための新たな特徴パターンとして前記辞書を更新する更新工程と、
を備えることを特徴とする情報処理装置の制御方法。
【請求項６】
請求項１乃至４のいずれか一項に記載の情報処理装置の各手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像中の人物の顔を識別技術に関するものである。
【背景技術】
【０００２】
デジタルスチールカメラ（以下「ＤＳＣ」とも記載）の普及に伴い、昨今では時に数千枚から数万枚といった多くの画像データをハンドリングする必要がある。ハンドリングする方法として、特に、重要な技術の１つとして、人物の顔を手掛かりに画像をハンドリングすることによって人物抽出を実現するものがある。
【０００３】
人物抽出の方法は、大きく顔検出技術と個人認識技術に分けられる。前者は、画像内に存在する顔を見つけだすものであり、顔の存在有無の判断に利用される。後者は、検出された顔に対し、誰の顔かを特定するものである。人物抽出する際には、各個人を識別するため、個人毎の顔の特徴パターンを記憶するためのデータベース（顔辞書）を参照する。そして、顔辞書に登録された画像をもとに、新たに追加された画像の解析処理を実施して人物抽出を行う。
【０００４】
特許文献１では、人物の認識を実施する際、複数の異なる表情の特徴量と確率分布パラメータを利用することが開示されている。
【０００５】
また、特許文献２では、認識する際の変動する照明や顔の向き、表情の変化についての精度低下防止が記述されている。データ属性ごとに用意された複数の辞書データの各々について、入力データと辞書データとの間で対応する局所パターンの相関値を算出する。データ属性ごとの相関値の集合を統合し、入力データの類似度を算出し、それに基づいて識別している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開2005-208850号公報
【特許文献２】特開2011-134114号公報
【特許文献３】特開平06-095685号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記の特許文献１および特許文献２においては、個人認識の精度を向上させるために、表情や照明の変化に対応する記載がなされているものの、十分な個人認識の精度とは言えなかった。
【０００８】
本発明は係る問題点に鑑みなされたものであり、画像中の顔の個人認識処理において、個人認識精度を向上させた画像処理装置、画像処理方法、及びプログラムを提供しようとするものである。
【課題を解決するための手段】
【０００９】
この課題を解決するため、例えば本発明の情報処理装置は以下の構成を備える。すなわち、
画像データから抽出した被写体の顔領域の複数の部位の特徴量を含む特徴パターンを被写体毎に分類して、顔領域の認識に用いる辞書において管理する辞書管理手段と、
前記被写体の顔領域の各部位の特徴量を、小分類化できるか否かを判定し、小分類化できると判定した場合にはその着目部位の特徴量を複数に小分類化して新たな特徴量とする小分類化手段と、
前記小分類化手段により小分類化された場合は、前記着目部位の新たな特徴量と、前記管理手段において管理される前記着目部位以外の部位の特徴量と、を組み合わせた特徴パターンを、前記被写体を識別するための新たな特徴パターンとして前記辞書を更新する更新手段と、を備える。
【発明の効果】
【００１０】
本発明によれば、個人認識精度を向上させることができる。例えば、デジタル画像中の顔の個人認識処理において、表情の異なる画像について、十分な精度を実現することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のソフトウェアを実行可能なハードウェア構成を示す図。
【図２】本発明の処理のソフトウェアブロック図。
【図３】画像解析処理のフローチャート。
【図４】画像解析処理のフローチャート。
【図５】人物グループ生成処理のフローチャート。
【図６】自動レイアウト提案処理のフローチャート。
【図７】人物グループの表示例を示す図。
【図８】サムネイル形式による画像群の表示例を示す図。
【図９】カレンダー形式による画像群の表示例を示す図。
【図１０】画像解析した結果得られる属性情報の例を示す図。
【図１１】画像解析結果の保存形式の例を示す図。
【図１２】ユーザが手動入力可能な属性情報の例を示す図。
【図１３】手動でお気に入り度を入力するためのＵＩ例を示す図。
【図１４】手動でイベント情報を入力するためのＵＩ例を示す図。
【図１５】手動で人物属性情報を入力するためのＵＩ例を示す図。
【図１６】レイアウトテンプレートの一例を示す図。
【図１７】レイアウトテンプレートの一例を示す図。
【図１８】実施形態１における自動レイアウト生成処理のフローチャート。
【図１９】実施形態１における不要画像フィルタリング処理のフローチャート。
【図２０】自動トリミング処理の一例を示す図。
【図２１】自動レイアウトを行う際のレイアウト評価値の例を示す図。
【図２２】明るさ適正度の算出方法の説明図。
【図２３】彩度適正度の算出方法の説明図。
【図２４】トリミング欠け判定処理の説明図。
【図２５】画像類似性判定処理の説明図。
【図２６】自動レイアウト生成結果の表示例を示す図。
【図２７】実施形態１における顔辞書作成処理のフローチャート。
【図２８】実施形態１における細分化処理のフローチャート。
【図２９】実施形態１における特徴量要素の細分化処理の一例を示す図。
【図３０】実施形態１における個人認識処理の一例を示す図。
【図３１】実施形態１における個人認識および顔辞書更新のフローチャート。
【図３２】人間の特徴量の変化のイメージ図。
【図３３】実施形態２における特徴量要素の細分化処理の一例を示す図。
【図３４】実施形態２における個人認識処理の一例を示す図。
【図３５】実施形態２における顔辞書作成処理のフローチャート。
【図３６】実施形態２における顔辞書削減のフローチャート。
【図３７】実施形態１及び２における特徴量パターン削減のフローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１３】
［実施形態１］
以下では、画像群から顔辞書を生成し、それに基づいた人物（被写体）抽出、レイアウトしたコラージュ画像生成、提案についての実施形態を説明する。これはあくまで実施の１つの形態を例として示したものであり、本発明は以下の実施形態に限定されるものではない。
【００１４】
＜ハードウェア構成の説明＞
図１は、第１の実施形態に係わる情報処理装置のハードウェア構成例を説明するブロック図である。図１において、情報処理装置１１５は、例えば、コンピュータである。この情報処理装置１１５は、画像処理装置として機能する。同図において、100はＣＰＵ（中央演算装置）であり、本実施形態で説明する情報処理方法をプログラムに従って実行する。101はＲＯＭであり、ＣＰＵ100により実行されるＢＩＯＳプログラムが記憶されている。102はＲＡＭで、ＣＰＵ100により実行されるＯＳやアプリケーションを記憶したり、ＣＰＵ100による各種情報の一時的に記憶のためのワークメモリとしても機能する。103はハードディスク等の２次記憶装置であり、ＯＳ，各種アプリケーションを記憶保持機能、並びに、記憶管理対象の画像ファイルを格納する画像記憶機能、更には、画像解析結果を保存するデータベース機能として作用する記憶媒体である。104は表示装置であり、本実施形態の処理結果など以下に示す種々のＵＩ（Ｕｓer Inter Fａｃｅ）をユーザに提示する装置である。該表示装置１０４としては、例えば、ディスプレイが挙げられ、タッチパネル機能を備えても良い。また、１１０は制御バス／データバスであり、上述の各部とＣＰＵ100とを接続する。このほかにユーザが画像補正の処理の指示等を入力するためのマウスやキーボードといった入力装置１０５も備える。
【００１５】
また、情報処理装置115は、内部撮像デバイス１０６を備えてもよい。該内部撮像デバイス１０６で撮像された画像は、所定の画像処理を経た後、２次記憶装置103に保存される。また、画像データはインターフェース（IF108）を介して接続された外部撮像デバイス111から読み込んでも構わない。さらに、情報処理装置115は無線LAN（Local Area Network）109を備え、該LANはインターネット113に接続されている。該インターネットに接続された外部サーバー114より画像を取得することもできる。
【００１６】
最後に、画像等を出力するためのプリンタ112が、IF107を介して接続されている。なお、該プリンタはさらにインターネット上に接続されており、上記無線LAN109経由でプリントデータのやり取りをすることもできる。
【００１７】
＜ソフトウェアのブロック図＞
図２は本実施形態における上記アプリケーションを含むソフトウェア構成のブロック図になっている。
【００１８】
まずハードウェア115が取得する、デジタルカメラ等で撮像された画像データは、通常JPEG（Joint Photography Expert Group）等の圧縮形式になっている。そのため、画像コーデック部200は、該圧縮形式を解凍していわゆるRGB点順次のビットマップデータ形式に変換する。変換されたビットマップデータは、表示・UI制御部201に伝達され、ディスプレイ等の表示装置104上に表示される。
【００１９】
上記ビットマップデータは、さらに画像センシング部203（アプリケーション）に入力され、同部において、詳細は後述するが、画像の様々な解析処理が行われる。上記解析処理の結果得られた画像の様々な属性情報は、所定の形式に従ってデータベース部202（アプリケーション）において、上述した２次記憶装置103に保存される。なお、以降においては、画像解析処理とセンシング処理は同義で扱う。
【００２０】
シナリオ生成部204（アプリケーション）では、ユーザが入力した様々な条件に応じて、詳細は後述するが、自動で生成すべきレイアウトの条件を生成する。レイアウト生成部205では上記シナリオに従って、自動でレイアウトを生成する処理を行う。
【００２１】
生成したレイアウトは、レンダリング部206で表示用のビットマップデータを生成し、該ビットマップデータは表示・UI制御部201に送られ、結果がディスプレイに表示される。また、レンダリング結果はさらにプリントデータ生成部207に送られ、同部でプリンタ用コマンドデータに変換され、プリンタに送出される。
【００２２】
図３〜図６を用いて、本実施形態の基本的な画像処理のフローについて説明する。
【００２３】
図３および図４は、画像センシング部203のフローを示しており、複数の画像データ群を取得して、それぞれについて解析処理を施し、その結果をデータベースに格納するまでの処理の流れを示している。図５は、検出した顔位置情報に基づいて、同じ人物と思われる顔情報をグループ化する人物グループ生成処理の流れを示している。図６は、画像の解析情報およびユーザが入力した様々な情報に基づいて、レイアウト作成のためのシナリオを決定し、該シナリオに基づいて、自動でレイアウトを生成するための処理の流れを示している。
【００２４】
図３を用いて、画像センシング部２０３が実行する処理のフローについて説明する。まず図３のS301では、画像データ群の取得を行う。画像データ群は、例えば、ユーザが、撮影画像が格納された撮像装置やメモリカードを情報処理装置115に接続し、これらから撮影画像を読み込むことで取得する。また、画像データ群として、内部撮像装置で撮影され、２次記憶装置１０３に保存されていた画像を取得してもよい。あるいは、画像は無線LANを介して、インターネット上に接続された外部サーバー114等、情報処理装置115以外の装置から取得をしてもよい。
【００２５】
ここで、図８及び図９を用いて、画像データ群を取得した際の表示装置１０４の表示について説明する。画像データ群を取得すると、そのサムネイル群が図８や図９に示すようにＵＩに表示される。表示装置１０４上のＵＩの表示方法は、画像を確認できるものであれば、特に限定されるものではない。図８の801に示すように２次記憶装置１０３内のフォルダ単位で画像のサムネイル802を表示してもよいし、図９に示すようにカレンダーのようなＵＩ901で日付ごとに画像データが管理されていてもよい。図９のＵＩ９０１では、日付の部分902をクリックすれば、同日に撮影された画像が、図８のようなサムネイル一覧で表示される。
【００２６】
次に、Ｓ３０２〜３０５において、取得した画像データ群それぞれについて、解析処理および解析結果のデータベース登録を行う。
【００２７】
具体的には、S302において、各画像のデコードを行う。まず、アプリケーションは、新規で保存され未だセンシング処理が行われていない画像をサーチし、抽出された各画像について、コーデック部が圧縮データからビットマップデータに変換する。
【００２８】
次に、S303において、上記ビットマップデータに対して、各種センシング処理を実行させる。ここでいうセンシング処理には、図１０に示されるような様々な処理を想定する。本実施形態では、センシング処理の例として、顔検出および顔領域の特徴量解析、画像の特徴量解析、シーン解析を挙げており、それぞれ同図に示すようなデータ型の結果を算出する。本実施形態では、画像基本特徴量としては、平均輝度（ｉｎｔ：値０〜２５５）、平均彩度（ｉｎｔ：０〜２５５）、平均色相（ｉｎｔ：値０〜３５９）を解析した。また、顔検出としては、人物顔の個数（ｉｎｔ：値０以上（０〜ＭＡＸＦＡＣＥ）、人物顔の位置情報である座標位置（ｉｎｔ＊８：値０以上（Ｗｉｄｔｈ及びＨｅｉｇｈｔそれぞれ同様）を解析した。さらに、顔領域内の平均Ｙ（ｉｎｔ：値０〜２５５）、顔領域内の平均Ｃｂ（ｉｎｔ：値−１２８〜１２７）、顔領域内の平均Ｃｒ（ｉｎｔ：値−１２８〜１２７）を解析した。以下、それぞれのセンシング処理について説明する。
【００２９】
まず画像の基本的な特徴量である全体の平均輝度、平均彩度については、公知の方法で求めればよいため、簡単に説明する。平均輝度は、画像の各画素について、RGB成分を公知の輝度色差成分（例えばYCbCr成分）に変換し（変換式省略）、Y成分の平均値を求めればよい。また、平均彩度は、上記CbCr成分について画素毎に次式Ｓを算出し、その平均値を求めればよい。
Ｓ＝（Ｃｂ2＋Ｃｒ2）1/2
【００３０】
また、画像内の平均色相（AveH）は、画像の色合いを評価するための特徴量である。各画素毎の色相は、公知のHIS変換式を用いて求めることができ、それらを画像全体で平均化することにより、AveHを求めることができる。
【００３１】
また、上記特徴量は、画像全体で算出してもよいし、例えば、画像を所定サイズの領域に分割し、各領域毎に算出してもよい。
【００３２】
次に、人物の顔検出処理について説明する。本実施形態で使用する人物の顔検出手法としては、すでに様々な手法を用いることができる。特開2002-183731では、入力画像から目領域を検出し、目領域周辺を顔候補領域とする。
【００３３】
そして、該顔候補領域に対して、画素毎の輝度勾配、および輝度勾配の重みを算出し、これらの値を、あらかじめ設定されている理想的な顔基準画像の勾配、および勾配の重みと比較する。その時に、各勾配間の平均角度が所定の閾値以下であった場合、入力画像は顔領域を有すると判定する方法が記載されている。
【００３４】
また、特開2003-30667によれば、まず画像中から肌色領域を検出し、同領域内において、人間の虹彩色画素を検出することにより、目の位置を検出することが可能である。
【００３５】
特開平8-63597によれば、複数の顔の形状をしたテンプレートと画像とのマッチング度を計算する。該マッチング度が最も高いテンプレートを選択し、最も高かったマッチング度があらかじめ定められた閾値以上であれば、選択されたテンプレート内の領域を顔候補領域とする。同テンプレートを用いるこことで、目の位置を検出することが可能である。
【００３６】
特開2000-105829によれば、まず、鼻画像パターンをテンプレートとし、画像全体、あるいは画像中の指定された領域を走査し最もマッチする位置を鼻の位置として出力する。次に、画像の鼻の位置よりも上の領域を目が存在する領域と考え、目画像パターンをテンプレートとして目存在領域を走査してマッチングをとり、ある閾値よりもマッチ度が度置きい画素の集合である目存在候補位置集合を求める。さらに、目存在候補位置集合に含まれる連続した領域をクラスタとして分割し、各クラスタと鼻位置との距離を算出する。その距離が最も短くなるクラスタを目が存在するクラスタと決定することで、顔の部位位置の検出が可能である。
【００３７】
その他、顔および部位位置を検出する方法としては、特開平8-77334、特開2001-216515、特開平5-197793、特開平11-53525、特開2000-132688、特開2000-235648、特開平11-250267などが挙げられる。さらには特登録2541688など、数多くの手法が挙げられる。本実施形態では特に手法を限定はしない。
【００３８】
上記処理の結果、各入力画像について、人物顔の個数と各顔毎の座標位置を取得することができる。
【００３９】
また、画像中の顔座標位置が分かれば、該顔領域毎に顔領域内に含まれる画素値の平均YCbCr値を求めることにより、該顔領域の平均輝度および平均色差を得ることができる。
【００４０】
また、画像の特徴量を用いてシーン解析処理を行うことができる。シーン解析処理については、様々な手法を用いることができ、例えば、出願人が開示している特開2010-251999や特開2010-273144等で開示されている技術を利用することができる。上記シーン解析の結果、風景（Landscape）、夜景（Nightscape）、人物（Portrait）、露出不足（Underexposure）、その他（Others）、という撮影シーンを区別するためのIDを取得することができる。
【００４１】
なお、センシング情報は、上記のセンシング処理により取得されるものに限定されるものではなく、例えば、その他のセンシング情報を利用してもよい。
【００４２】
上記のようにして取得したセンシング情報を、データベース202に保存する。データベースへの保存形式は、特に限定されないが、例えば、図１１に示すような汎用的なフォーマット（例えば、XML：eXtensible Markup Language）で記述し、格納すればよい。
【００４３】
同図においては、各画像毎の属性情報を、３つのカテゴリに分けて記述する例を示している。１番目のBaseInfoタグは、画像サイズや撮影時情報として、あらかじめ取得した画像ファイルに付加されている情報である。ここには、画像毎の識別子IDや、画像ファイルが格納されている保存場所、画像サイズ、撮影日時などが含まれる。
【００４４】
次に２番目のSensInfoタグは、上述した画像解析処理の結果を格納するためのタグである。画像全体の平均輝度、平均彩度、平均色相やシーン解析結果が格納され、さらに、画像中に存在する人物の顔位置や顔色に関する情報が記述可能である。
【００４５】
次に３番目のUserInfoタグは、ユーザが画像毎に入力した情報を格納することができるが、詳細については後述する。
【００４６】
なお、画像属性情報のデータベース格納方法については、上記に限定されるものではない。その他どのような形式であっても構わない。
【００４７】
＜個人認識処理を用いた人物グルーピング＞
次に、図３のS306において、S303で検出された顔位置情報を用いて、人物毎のグループを生成する処理を行う。あらかじめ人物の顔を自動でグループ化しておくことにより、その後ユーザが各人物に対して名前を付けていく作業を効率化することが可能となる。
【００４８】
ここでの人物グループ生成処理は、公知の個人認識技術を用いて、図５の処理フローにより実行する。
【００４９】
図５は人物グループ生成処理S306の基本的なフローチャートである。
【００５０】
まず、S501で、２次記憶装置に保存されている画像を順次読みだしてデコード処理を行う。さらにS502でデータベースにアクセスし、該画像中に含まれる顔の個数と顔の位置情報を取得する。次に、S504において、個人認識処理を行うための正規化顔画像を生成する。
【００５１】
ここで正規化顔画像とは、画像内に様々な大きさ、向き、解像度で存在する顔を切り出して、すべて所定の大きさと向きになるよう、変換して切り出した顔画像のことである。個人認識を行うためには、眼や口といった部位の位置が重要となるため、正規化顔画像のサイズは、上記部位が確実に認識できる程度であることが望ましい。このように正規化顔画像を用意することにより、特徴量検出処理において、様々な解像度の顔に対応する必要がなくなるという利点がある。
【００５２】
次に、S512で被写体毎の顔を分類するための顔辞書作成処理を実施する。対象となる画像から顔位置取得S504、正規化生成S504された顔画像をもとに、顔辞書を作成する。本処理について、詳細は後述する。
【００５３】
Ｓ５１０において、処理対象の画像データ中に、他の顔領域があるか否かを判定する。他の顔領域がある場合（Ｓ５１０でＹＥＳ）、Ｓ５０２に戻る。一方、他の顔領域がない場合（Ｓ５１０でＮＯ）、Ｓ５１１に進む。Ｓ５１１において、全ての画像についてＳ５０２〜５０９の処理が終了したか否かを判定する。全ての画像について処理が終了した場合は、処理を終了し、全ての画像について処理が終了していない場合は、Ｓ５０２へ戻る。つまり、S510およびS511の判定処理により全ての顔および画像により、顔辞書が生成された後、S513により、顔辞書の細分化グループ生成が実施される。これは対象の画像をもとに生成された顔辞書を解析し、さらに細分化されたグループを生成するものであり、本処理についても詳細は後述する。
【００５４】
グループ化の結果は、XMLなどのフォーマットで、上述したデータベースに保存しておく。
【００５５】
なお、上記実施形態においては、図３に示したように、全ての画像のセンシング処理が終了した後に人物グループ生成処理を実行したが、これに限定されるものではない。例えば、図４に示すように、各画像に対してS403でセンシング処理を実行した後に、顔検出位置情報を利用してグループ化処理S405を行い、これを繰り返して全ての画像データの処理を行うようにしたとしても、同様の結果を生成することができる。
【００５６】
また、上記の処理によって得られた各人物グループは、図７のようなUI701にて表示されることになる。同図において、702は人物グループの代表顔画像を表しており、その横には、該人物グループの名前を表示する領域703が存在する。自動の人物グループ化処理を終了した直後は、同図に示すように人物名は「No name」と表示される。また、704は該人物グループに含まれる複数の顔画像が表示される。後述するが、同図のUIにおいては、「No name」の領域703を指定して人物名を入力したり、人物毎に誕生日や続柄等の情報を入力することができる。
【００５７】
また、上記センシング処理は、オペレーティングシステムのバックグラウンドタスクを利用して実行しても良い。この場合、ユーザはコンピュータ上で別の作業を行っていたとしても、画像群のセンシング処理を継続させることができる。
【００５８】
＜ユーザ情報の入力（人物名、誕生日、お気に入り度、など）＞
本実施形態においては、ユーザが手動で画像に関する様々な属性情報を入力してもよく、自動で画像に関する様々な属性情報を設定するようにしてもよい。
【００５９】
その属性情報の例の一覧を、図１２に示す。手動登録情報は大きく分けると、画像毎に設定する画像の属性情報と、上記処理によりグループ処理した人物毎に設定する人物の属性情報に分かれる。
【００６０】
まず、画像毎に設定する属性情報として、ユーザのお気に入り度がある。お気に入り度は、その画像を気に入っているかどうかを、例えば、ユーザが手動で入力することができる。例えば図１３示すように、UI1301上で、所望のサムネイル画像1302をマウスポインタ1303で選択し、右クリックをすることでお気に入り度を入力できるダイアログを表示する。ユーザはメニューの中で自分の好みに応じて、★の数を選択することができる。本実施形態では、お気に入り度が高いほど★の数が多くなるよう設定した。
【００６１】
また、上記お気に入り度は、ユーザが手動で設定せずに、自動で設定するようにしてもよい。例えば、ユーザが図８に示す画像サムネイル一覧表示の状態から、所望の画像ファイルをクリックし、１画像表示画面に遷移したとする。その遷移した回数を計測して、回数に応じてお気に入り度を自動設定してもよい。すなわち、閲覧した回数が多いほど、ユーザが該画像を気に入っていると判断する。
【００６２】
また他の例として、プリント回数に応じてお気に入り度を自動設定してもよい。具体的には、例えば、プリント行為を行った場合、当然その画像を気に入っていると判断し、プリント回数が多いほど、よりお気に入り度が高いと判断する。
【００６３】
以上で説明したように、お気に入り度については、ユーザが手動で設定する方法、閲覧回数やプリント回数に応じてお気に入り度を自動設定する方法など様々考えられる。上記設定および計測した情報については、それぞれ個別に、図１１で示すようなXMLフォーマットで、データベース202のUserInfoタグ内に格納される。例えば、お気に入り度はFavoriteRateタグで、閲覧回数はViewingTimesタグで、プリント回数はPrintingTimesタグに格納される。
【００６４】
また、画像毎に設定する別の属性情報として、イベント情報が考えられる。イベント情報としては、例えば、家族旅行“travel”、卒業式“graduation”、結婚式“wedding”が挙げられる。 イベントの指定は、例えば、図１４で示すように、カレンダー上で所望の日付をマウスポインタ1402などで指定して、その日のイベント名を入力することで設定できるようにしてもよい。指定されたイベント名は、画像の属性情報の一部として、図１１に示すXMLフォーマットに含まれることになる。同図のフォーマットでは、UserInfoタグ内のEventタグを使って、イベント名と画像を関連付けている（紐付けている）。
【００６５】
次に、人物の属性情報について説明する。
【００６６】
図１５は、人物の属性情報を入力するためのUIを示している。同図において、1502は所定人物（この場合は“father”）の代表顔画像を示している。また、1504には、他の画像の中から検出し、S506で顔特徴量が類似していると判断された画像の一覧が表示される。
【００６７】
センシング処理が終了した直後は、図７に示したように各人物グループには名前が入力されていないが、「No name」の部分703をマウスポインタで指示することにより、任意の人物名を入力することができる。
【００６８】
また、人物毎の属性として、それぞれの人物の誕生日やアプリを操作しているユーザから見た続柄を設定することもできる。本実施形態では、図１５の人物の代表顔1502をクリックすると、画面下部に図示するように、クリックした人物の誕生日を第１入力部1505で、続柄情報を第２入力部1506で入力することができるようにした。
【００６９】
以上、入力された人物の属性情報は、これまでの画像に紐付けられた画像の属性情報とは異なり、画像属性情報とは別にデータベース202内で管理される。
【００７０】
本実施形態においては、あらかじめ様々なレイアウトテンプレートが用意されている。レイアウトテンプレートとは図１６および図１７に示すようなもので、レイアウトする用紙サイズ上に、複数の画像配置枠1702,1902（以降、スロットと同義）で構成されている。
【００７１】
このようなテンプレートは多数用意されており、あらかじめ本実施形態を実行するためのソフトウェアが情報処理装置115にインストールされた時点で、2次記憶装置１０３に保存しておけばよい。また、その他の方法として、IF 107や無線LAN109を介して接続されたインターネット上に存在するサーバー114から、任意のテンプレートを取得してもよい。
【００７２】
これらのテンプレートは汎用性の高いページ記述言語、例えば上述したセンシング結果の格納と同様にXMLなどで記載されているものとする。本実施形態においては、このようなテンプレートを多数保持する。
【００７３】
上記のように、本実施形態で提示したアプリケーションは、入力された画像群に対して解析処理を実行し、人物を自動的にグループ化してＵＩで表示することができる。また、ユーザはその結果を見て、人物グループ毎に名前や誕生日などの属性情報を入力したり、画像毎にお気に入り度などを設定することができる。
【００７４】
さらにはテーマごとに分類された多数のレイアウトテンプレートを保持することができる。
【００７５】
以上の条件を満たすと、本実施形態のアプリケーションは、ある所定のタイミングで、自動的にユーザに好まれそうなコラージュ画像を生成し、ユーザに提示する処理を行う。これを、レイアウトの提案処理と呼ぶこととする。
【００７６】
図６は、レイアウトの提案処理を行うための基本的なフローチャートを示している。
【００７７】
同図において、まずS601において、提案処理のシナリオを決定する。シナリオには、提案するレイアウトのテーマおよびテンプレートの決定、レイアウト内で重視する人物（主人公）の設定、レイアウト生成に用いる画像群の選定情報が含まれる。
【００７８】
以下では簡単のため、２つのシナリオについて例を記載する。
【００７９】
例えば、各人物の誕生日の２週間前になった場合、自動的にコラージュレイアウトを生成し提示するように予め設定されているとする。そして、図１５で自動グループ化されている人物“son”の１歳の誕生日が２週間後となったとする。この場合には、提案するレイアウトのテーマは成長記録“growth”と決定する。次にテンプレートの選択を行うが、この場合には成長記録に適した図１７のようなものを選択する。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースを参照し、上記人物“son”の誕生日からこれまでに撮影した画像群のうち、“son”を含む画像群を大量に抽出してリスト化する。以上が、成長記録レイアウトのためのシナリオ決定である。
【００８０】
上記とは異なる例として、１カ月以内に撮影された旅行の写真がある場合、自動的にコラージュレイアウトを生成して提示するように予め設定されているとする。図１４で登録したイベント情報から、例えば数日前に家族旅行に行きその画像が大量に2次記憶装置に保存されていることがわかると、シナリオ決定部は、家族旅行のレイアウトを提案するためのシナリオを決定する。この場合には、提案するレイアウトのテーマは旅行“travel”と決定し、図１６のようなレイアウトを選択する。次に、レイアウトに利用するための画像群を選定する。この例の場合には、データベースS602を参照し、上記旅行イベントに紐付けられた画像群を大量に抽出してリスト化する。以上が、家族旅行レイアウトのためのシナリオ決定である。
【００８１】
次に、図６のS603において、上述したシナリオに基づくレイアウトの自動生成処理を実行する。ここで、図１８を用いて、シナリオに基づくレイアウトの自動生成処理について説明する。図１８はレイアウト処理部の詳細な処理フローを示している。
【００８２】
同図では、まずS2101で、上述したシナリオ生成処理で決定され、レイアウトテーマと人物グループ情報が設定された後のレイアウトテンプレート情報を、より取得する。
【００８３】
次に、S2103においては、上記シナリオで決定した画像群リストに基づいて、各画像毎に該画像の特徴量をデータベースから取得し、画像群属性情報リストを生成する。ここでいう画像群情報リストとは、図１１に示したIMAGEINFOタグが画像リスト分だけ並んだ構成となっている。以降ではこの画像属性情報リストに基づいて、S2105〜S2109における自動レイアウト生成処理を行う。
【００８４】
このように、本実施形態の自動レイアウト生成処理では、このように画像データそのものを直接扱うのではなく、あらかじめ画像毎にセンシング処理を行ってデータベース保存しておいた属性情報を利用する。この理由は、レイアウト生成処理を行う際に、画像データそのものを対象としてしまうと、画像群を記憶するために非常に巨大なメモリ領域を必要としてしまうためである。すなわち、本実施形態のようにデータベース部に記憶しておいた属性情報を利用することにより、メモリ領域の使用量を低減することができる。
【００８５】
次に、S2105において、入力された画像群の属性情報を用いて、入力された画像群の中から不要画像のフィルタリングを行う。フィルタリング処理は、図１９のフローにて行う。同図では、各画像毎に、まずS2201で全体の平均輝度がある閾値（ThY_LowとThY_Hight）内に含まれているかの判定を行う。否の場合にはS2206に進み、注目画像はレイアウト対象から除去する。具体的には、Ｓ２２０２では、ＩＤ＝Ｎである顔領域のＡｖｅＹが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈｔ）の範囲に含まれているか否かの判定を行う。Ｓ２２０３では、ＩＤ＝Ｎである顔領域のＡｖｅＣｈが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈｔ）の範囲に含まれているか否かの判定を行う。Ｓ２２０４では、ＩＤ＝Ｎである顔領域のＡｖｅＣｒが所定閾値（ＴｈｆＹ＿ＬｏｗとＴｈｆＹ＿Ｈｉｇｈｔ）の範囲に含まれているか否かの判定を行う。Ｓ２２０５では、最後の顔であるか否かを判定する。最後の顔ではない場合は、Ｓ２２０２へ戻り、最後の顔である場合は、処理を終了する。
【００８６】
同様に、S2202〜S2205では、注目画像に含まれる顔領域それぞれについて、平均輝度、平均色差成分が、良好な肌色領域を示す所定閾値に含まれているかの判定を行う。S2202〜S2205のすべての判定がYesとなる画像のみ、以降のレイアウト生成処理に適用される。
【００８７】
なお、このフィルタリング処理では、以降の一時レイアウト作成処理に明らかに不要と判断できる画像の除去を目的としているため、上記閾値は比較的湯緩やかに設定することが望ましい。例えばS2201の画像全体輝度の判定において、ThY_HighとThY_Lowの差が画像ダイナミックレンジに比して極端に小さいと、それだけYesと判定される画像が少なくなってしまう。したがって、本実施形態のフィルタリング処理では、両者の差をできる限り広く設定し、かつ明らかに異常画像と判断されるものは除去できるような閾値を設定する。
【００８８】
次に図１８のS2107において、上記処理でレイアウト対象となった画像群を用いて、大量（L個）の一時レイアウトを生成する。一時レイアウトの生成は、取得したテンプレートの画像配置枠に対して、入力画像を任意に当てはめる処理を繰り返すことにより実行する。この時に、以下のパラメータ（画像選択・配置・トリミング基準）をランダムで決定する。画像選択基準としては、レイアウト中の画像配置枠がＮ個の時、画像群の中からどの画像を選択するかが挙げられ、配置としては、選択した複数の画像を、どの配置枠に配置するかが挙げられ、トリミング基準としては、・配置した際に、どの程度のトリミング処理を行うかというトリミング率が挙げられる。ここで、トリミング率は例えば0〜100%で表わされ、画像の中心を基準として、図２０のように所定の領域がトリミングされる。同図において、2301は画像全体を示し、2302はトリミング率50%でトリミングした際の切り取り枠を示している。
【００８９】
上記の画像選択・配置・トリミング基準に基づいて、可能な限り数多くの一時レイアウトを生成する。生成した各一時レイアウトについても、XMLのように形式で表わすことができる。
【００９０】
なお、ここで生成する一時レイアウトの数Ｌについては、後述するレイアウト評価ステップでの評価処理の処理量と、それを処理する情報処理装置115の性能に応じて決定されるが、例えば数十万通り以上の一時レイアウトを用意する。
【００９１】
次に、図１８のS2108において、上記で作成したＬ個の一時レイアウトに対して、それぞれ所定のレイアウト評価量を用いて評価を行う。本実施形態におけるレイアウト評価量の一覧を、図２１に示す。同図に示すように、本実施形態で用いるレイアウト評価量は、主に３つのカテゴリに分けることができる。
【００９２】
一つ目の評価カテゴリは、画像個別の評価量である。これは画像の明るさや彩度、ブレぼけ量等の状態を判断し、スコア化するものである。スコア化の一例を如何に示す。まず明るさの適正度については、図２２に示すように、平均輝度がある所定レンジ範囲内においてはスコア値100とし、所定レンジ範囲外となるとスコア値が下げるよう設定している。また、彩度の適正度については、図２３に示すように、画像全体の平均彩度がある所定の彩度値より大きい場合にはスコア値100とし、所定値より小さい場合にはスコア値を除所に下げていくよう設定している。
【００９３】
二つ目の評価カテゴリは、画像とスロットの適合度の評価である。画像・スロットの適合度の評価としては、例えば、人物適合度、トリミング欠け判定が挙げられる。人物適合度とは、スロットに指定されている人物と、実際に該スロットに配置された画像内に存在する人物の適合率を表したものである。例を挙げると、あるスロットが、 “father”、“son”が指定されているものとする。この時、該スロットに割り当てられた画像に該2人の人物が写っていたとすると、該スロットの人物適合度はスコア値100とする。もし片方の人物しか写っていなかったとすると、適合度はスコア値50とし、両者とも写っていなかった場合は、スコア値0とする。ページ内の適合度は、各スロット毎に算出した適合度の平均値とする。
【００９４】
また別の画像・スロット適合度評価値として、トリミング領域2702の欠け判定が存在する。例えば、図２４に示すように、画像中に存在する顔の位置2703が判明している場合、欠けた部分の面積に応じて、0から100までのスコア値を算出する。欠けた面積が0の場合、スコアは100とし、逆にすべての顔領域が欠けた場合、スコア値は0とする。
【００９５】
三つめの評価カテゴリは、レイアウトページ内のバランスの評価である。図２１ではバランスを評価するための評価値として画像類似性、色合いばらつき、顔サイズばらつきを挙げている。
【００９６】
まず、画像類似性について説明する。画像の類似性は、大量に生成した一時レイアウト毎に、それぞれの画像の類似性を算出する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った類似度の高い画像ばかりが並んでいたとすると、それは良いレイアウトとは言えないことがある。例えば、類似性は、撮影日時によって評価することができる。撮影日時が近い画像は、同じような場所で撮影された可能性が高いが、撮影日時が離れていれば、その分、場所もシーンも異なる可能性が高いからである。撮影日時は、図１１で示したように、画像属性情報として、予めデータベース202に保存されている、画像毎の属性情報から取得することができる。撮影日時から類似度を求めるには以下のような計算を行う。例えば、今注目している一時レイアウトに図２５で示すような４つの画像がレイアウトされているものとする。なお、図２５において、画像ＩＤで特定される画像には、それぞれ撮影日時情報が付加されている。具体的には、撮影日時として、年月日及び時間（西暦：ＹＹＹＹ、月：ＭＭ、日：ＤＤ、時：ＨＨ、分：ＭＭ、秒：ＳＳ）が付加されている。この時、この４つの画像間で、撮影時間間隔が最も短くなる値を算出する。この場合は、画像ID102と108間の30分が最も短い間隔である。この間隔をMinIntervalとし、秒単位で格納する。すわなち30分＝1800秒である。このMinIntervalをL個の各一時レイアウト毎に算出して配列stMinInterval[l]に格納する。次に、該stMinInterval[l]の中で最大値MaxMinInterval値を求める。すると、l番目の一時レイアウトの類似度評価値Similarity[l]は以下のようにして求めることができる。
Similarity[l] = 100×stMinInterval[l] / MaxMinInterval
すなわち、上記Similarity[l]は、最小撮影時間間隔が大きいほど100に近づき、小さいほど0に近づく値となっているため、画像類似度評価値として有効である。
【００９７】
次に、レイアウトページ内のバランスを評価するための評価量として、色合いのバラつきについて説明する。例えば旅行テーマのレイアウトを作成したい場合、あまりに似通った色（例えば、青空の青、山の緑）の画像ばかりが並んでいたとすると、それは良いレイアウトとは言えないことがある。この場合は、色合いのばらつきが大きくなるように設定する。ここでは注目しているl番目の一時レイアウト内に存在する画像の平均色相AveHの分散を算出して、それを色合いのバラつき度tmpColorVariance[l]として格納する。次に、該tmpColorVariance[l]の中での最大値MaxColorVariance値を求める。すると、l番目の一時レイアウトの色合いバラつき度の評価値ColorVariance[l]は以下のようにして求めることができる。
ColorVariance[l] = 100 × tmpColorVariance[l] / MaxColorVariance
すなわち、上記ColorVariance[l]は、ページ内に配置された画像の平均色相のバラつきが大きいほど100に近づき、小さいほど0に近づく値となっているため、色合いのばらつき度評価値として有効である。
【００９８】
次に、レイアウトページ内のバランスを評価するための評価量として、顔の大きさのバラつき度について説明する。例えば旅行テーマのレイアウトを作成したい場合、レイアウト結果を見て、あまりに似通った顔のサイズの画像ばかりが並んでいたとすると、それは良いレイアウトとは言えないことがある。レイアウト後の紙面上における顔の大きさが、小さいものもあれば大きいものもあり、それらがバランスよく配置されていることが、良いレイアウトとする場合、顔サイズばらつきが大きくなるように設定する。その場合、注目しているl番目の一時レイアウト内に配置された後の顔の大きさ（顔位置の左上から右下までの対角線の距離）の分散値を、tmpFaceVariance[l]として格納する。次に、該tmpFaceVariance[l]の中での最大値MaxFaceVariance値を求める。すると、l番目の一時レイアウトの顔サイズバラつき度の評価値FaceVariance[l]は、以下のようにして求めることができる。
FaceVariance[l] = 100  ×  tmpFaceVariance[l] / MaxFaceVariance
すなわち、上記FaceVariance[l]は、紙面上に配置された顔サイズのバラつきが大きいほど100に近づき、小さいほど0に近づく値となっているため、顔サイズのバラつき度評価値として有効である。
【００９９】
またその他カテゴリとして、ユーザの嗜好性評価が考えられる。
【０１００】
以上説明したような、各一時レイアウト毎に算出した複数の評価値を、以下では統合化して、各一時レイアウト毎のレイアウト評価値とする。今、l番目の一時レイアウトの統合評価値を、EvalLayout[l]とし、上記で算出したN個の評価値（図２１の評価値それぞれを含む）の値を、EvalValue[n]とする。この時、統合評価値は以下で求めることができる。EvalLayout[l]＝Σ{EvalValue[n]×W[n]}ここで、Σはn=0,1,2,…,Nの合算演算記号を示す。また、W[n]は、図２１で示したシーン毎の各評価値の重みである。該重みはレイアウトのテーマ毎に異なる重みを設定していることが特徴となっている。例えば、図２１に示すようにテーマを成長記録“growth”と旅行“travel”で比較した場合、旅行テーマの方は、できるだけ良質の写真をいろいろな場面で数多くレイアウトすることが望ましいとし、画像の個別評価値やページ内のバランス評価値を重視する傾向に設定する。一方、成長記録“growth”の場合、画像のバリエーションよりは、成長記録の対象となる主人公が確実にスロットに適合しているか否かが重要である。そのため、ページ内バランスや画像個別評価よりも、画像・スロット適合度評価を重視する傾向に設定する。
【０１０１】
このようにして算出したEvalLayout[l]を用いて、S2109では、レイアウト結果表示のためのレイアウトリストLayoutList[k]を生成する。レイアウトリストは、予め定められた個数（例えば5個）に対して、EvalLayout[l]のうち、評価値が高いもの順に識別子lを記憶しておく。例えば最も良いスコアを出したものが、l=50番目に作成した一時レイアウトであった場合、LayoutList[0]=50となる。同様に、LayoutList[1]以降は、スコア値が２番目以降の識別子lを記憶しておく。
【０１０２】
次に、図１９を用いて説明したレイアウト生成処理によって得られたレイアウト結果を表示する。本実施形態では、レンダリングした結果を、図６のS605でレンダリングして結果を図２６のように表示し、提案する。S605では、まずLayoutList[0]に格納されているレイアウト識別子を読み出し、該識別子に相当する一時レイアウト結果を、２次記憶装置あるいはRAM上から読み出す。レイアウト結果には、上述したようにテンプレート情報と該テンプレート内に存在するスロット毎に、割り当てられた画像名が設定されている。S605ではこれらの情報に基づいて、情報処理装置115上で動作するOSの描画関数を用いて、該レイアウト結果をレンダリングし、図２６の2902のようにポップアップし、表示する。
【０１０３】
同図の他の画像ボタン2903を押下することにより、次点スコアであるLayoutList[1]の識別子を読み出し、上記と同様にレンダリング後、表示を行うことで、ユーザは様々なバリエーションの提案レイアウトを閲覧することができる。さらに、表示されたレイアウトが気に入った場合には、印刷ボタン2905を押下することで、情報処理装置115に接続されたプリンタ112からレイアウト結果をプリントアウトすることもできる。
【０１０４】
上述した実施形態のうち、図５のS512にあたる顔辞書作成処理について説明する。
【０１０５】
図２７に顔辞書作成処理S512のフローチャートを示す。以下、本実施形態では、説明を簡単にするために、顔を構成する部位による判定として、眉の角度、目の大きさ、口の角度を例に挙げて説明するが、これに限定されるものではない。例えば、さらに多くの部位を用いて判定ようにしてもよく、他の部位を用いて判定してもよい。
【０１０６】
S3301〜S3303は、それぞれ、眉の角度Bθ、目の大きさES、口の角度Mθ（以下、説明のために、これらを特徴量要素と呼ぶ）の算出を行う。
【０１０７】
Ｓ3301では、眉角度を算出する。眉の角度は、例えば、両端部を直線で結んだ際の水平からの傾きから算出することができる。眉の角度を左右別々に取得するようにしてもよいが、本実施形態では、左右の眉の角度の平均を求めて、これを眉の角度とした。Ｓ３３０２では、目の大きさを算出する。目の大きさは、目の横（水平）方向、縦（垂直）方向の高さを、左右別々に算出してもよいが、本実施形態では縦方向の左右の平均の値とした。S3303では、口の角度は、眉毛と同様に、水平からの傾きから算出した。口の角度を算出する際には、口は顔の中心で変局点を取ることも多いので、最大角度を利用したり、近似曲線を使って求めたりしてもよい。
【０１０８】
S3304では、顔辞書に登録された特徴量パターンの中に、類似のものがあるか否かを判定する。すなわち、算出したBθ、ES、Mθの組み合わせ（以下、これを特徴量パターンと呼ぶ）が顔辞書内に既に存在するか否かの判断を行う。このとき、既に顔辞書に格納されている特徴量パターンのうち、各特徴量要素の平均値BθAve、ESAve、MθAveに対し、算出した眉の角度Bθ、目の大きさES、口の角度Mθが予め定められ所定範囲内にあるか否かで判定する。この範囲をBθWidth、ESWidth、MθWidthと定義した場合には、次の評価を行えば良い。
（BθAve−BθWidth）＜ Bθ ＜（BθAve＋BθWidth） かつ
（ESAve−ESWidth）＜ ES ＜（ESAve＋ESWidth）  かつ
（MθAve−MθWidth）＜ Mθ ＜（MθAve＋MθWidth）
【０１０９】
類似のものが存在しない場合は、S3305で新たな特徴量パターンとして、顔辞書に新規登録する。類似のものが存在する場合は、S3306において、該特徴量パターンと同一と判断され、追加登録される。
【０１１０】
次のS3307では、新規作成又は追加された特徴量パターンにおいて、各特徴量要素の統計値を作成又は更新を行う。統計値の一例としては、上記S3304で使用した平均値のほか、分散値などが挙げられる。
【０１１１】
以上により、顔辞書の追加、更新が繰り返され、S511において、全画像が終了と判断された場合には、既存画像をもとにした顔辞書が作成される。
【０１１２】
次にS513の細分化グループ生成について説明する。ここでは、顔辞書内の１つのグループ（例えば人物「太郎」）に属する特徴量をさらに細分化処理することで、よりきめ細かい判定が可能な辞書に修正する。図２８に細分化グループ生成処理のフローチャートを示す。なお、細分化グループ生成処理は、該当する人物であると判定された顔の個数が、予め設定された個数以上になった場合に実行されるものとする。
【０１１３】
S3401では対象となる人物「太郎」と判定された画像群の特徴量の特徴量パターンを取得する。尚、上記と同様、特徴量パターンは、眉の角度、目の大きさ、口の角度の特徴量要素で構成されているものとして説明する。
【０１１４】
S3402では、特徴量要素の一つを取得する。そして、S3403にて、対象とする特徴量要素のピーク検出を行う。図２９(a)に、ある特徴量パターンの一例を示す。横軸が特徴量を示し、矢印がその特徴量の存在範囲を示している。縦軸が度数（頻度）である。
【０１１５】
S3402において対象とする特徴量要素を眉の角度とした場合には、図２９（ａ）では、２つのピークが検出される。ピークの検出は、幾つかの方法があるが、微分処理を用いて変局点（ここでは上に凸の変局点）を検出するものとする。なお、局所的な凹凸により誤検出してしまう場合は、スムージング処理や近似曲線を併用する方法も有用である。図２９(a)の眉の角度を表わす特徴量範囲には、ピークが２つ検出される。また、同様の処理を適用すると、図２９(a)では、目の大きさ、口の角度はそれぞれ1および2となる。
【０１１６】
S3404において、着目部位についてピークが複数あるか否かの判定、すなわち、小分類化できるか否かの判定を実施する。
【０１１７】
2つ以上のピークが存在する場合は、S3405へと進み、特徴量存在範囲を２以上の小範囲に分割する処理（ピーク分割処理）が実施される。その後、S3406に処理を進める。分割方法は、ピーク値を中心とした正規分布を考慮してもよいし、実際の半値幅をもとに推定する方法を利用してもよい。本実施形態では、図２９(b)に示すように、分割をする。
【０１１８】
一方、S3404でピークが１以下であれば、ピーク分割はせず、現在の特徴量範囲を維持し、S3406に処理を進める。
【０１１９】
S3406において、全特徴量要素についてS3403からS3405が終了したか否かを判定する。終了した場合は、S3407に進み、終了していない場合は、S3402へ戻る。また、S3407において、全特徴量パターンについてS3402からS3406が終了したか否かを判定する。終了した場合は、S3408に進み、終了していない場合は、S3401へ戻る。
【０１２０】
S3408では、S3405において分割されたピークをもとに、再度グルーピングをやり直す。図２９(a)では同一特徴量要素となっていたものを本処理後では、図２９(b)のように分割し、それに基づき顔辞書を変更する。図２９(b)の例では、図２９(a)であった特徴量パターンが分割され、図２９(b)の眉の角度は2種類（矢印の色：黒、白）、目は1種類のまま（同：黒）、口の角度は2種類（同：黒、白）に分割される。従って、分割処理後は下記2×1×2＝4通りの特徴量パターンになる。
特徴量パターン１：眉（黒）×目（黒）×口（黒）
特徴量パターン２：眉（黒）×目（黒）×口（白）
特徴量パターン３：眉（白）×目（黒）×口（黒）
特徴量パターン４：眉（白）×目（黒）×口（白）
【０１２１】
尚、図２９の眉の角度のように、正規分布などで推定した場合、重複する領域が存在することになる（同図(b)斜線部）。この場合、該領域に存在する画像をどちらに振り分けるのかが問題となる。本実施形態では、両ピークの交点Aを求め、交点Aに相当する角度MθAを境界に細分化を実施する。こうすることで、画像の細かい変化に感度をもつ辞書が作成されることになる。例えば、特徴量パターン１は、大きく笑った顔への検出、特徴量パターン２では少し笑った顔への検出感度をもつ辞書となる。
【０１２２】
さらに、本実施形態では、上記のようにして得られた各特徴量パターン毎（パターン１乃至４）の出現頻度を計数し、出現頻度が少ないパターンを除外する。図３７にそのフローチャートを示す。S4301で対象とする特徴量パターンを取得し、S4302でその出現頻度（ここでは画像の中の出現回数）を計測する。S4303において、予め決められた所定数と比較し、所定数未満の場合はS4304へ進み、所定数以上の場合は、S4305へ進む。S4304では、該当するパターンは所定基準を満たさないとして削除する。すなわち、所定数以下であるパターンを個人識別のためのパターンから除外する。このとき、取りえない組み合わせのパターンは、個人識別のためのパターンから除外される。これを細分化した全特徴量パターンに対し実施する。S4305では、全特徴量パターンが終了したか判定し、終了していない場合は、S4301へ戻り、終了している場合は処理を終了する。これにより、各部位の取り得る組み合わせを規定し、目は笑っているものの口は怒っているなどの、実際に取り得ない組み合わせを除外し、出現頻度の高いパターンで辞書を更新することで、辞書の精度、すなわち、人物識別の精度の向上を図ることが出来る（精度の高い辞書管理が可能になる）。
【０１２３】
また、こうした処理は表情だけでなく、眉と口の角度は似ているものの、目の大きさが少し違うといった、似た顔をもつ異なる人物（例えば、兄弟や親子など）を区別するのにも有効となる。
【０１２４】
尚、顔の変化の中には、メガネなどの装飾品を付けた場合も含めることが出来る。レンズの影響で目の大きさなどが変化することも起こり、この場合も独立した特徴量パターンとして辞書に登録することにより、検出性能を持つことが出来る。
【０１２５】
上記の処理の結果、例えば人物「太郎」を識別するための顔辞書は、図３０に示すように構築される。図示の如く、特徴量パターン１、２、４を用いて「太郎」を識別することと決定し、特徴パターン３は「太郎」を識別するためには不使用とする。不使用とするとは、識別対象の顔画像の特徴が特徴量パターン３であったとしても、それを「太郎」とは識別しないことを意味する。この結果、たまたま他人が特徴量パターン３を持つ顔を持っていたとしても、それを誤って太郎とは識別しなくなる。すなわち、他人が誤って「太郎」として判定される可能性を低くするいことができ、顔識別の精度を向上させることが可能になる。
【０１２６】
上述した顔辞書を利用し、新たに入力された画像の個人認識を行う。その際、顔辞書についても、適宜修正を行うことにより、個人認識の精度を向上させることができる。当初の顔辞書を作成した画像群が、必ずしも十分なサンプル数であったとは限らないからである。一方で、十分最適な顔辞書になっているにも関わらず、修正を行い精度の低下を引き起こす恐れもある。それらを考慮し、下記処理により、辞書の更新を実施する。
【０１２７】
図３１に、新たに入力された画像内に存在する顔の個人認識および顔辞書の更新のフローチャートを示す。
【０１２８】
S3701では、対象とする顔の画像を取得する。この顔の画像は、S504で記載されたものと同様に正規化処理実施済みのものとする。
【０１２９】
S3702では、S3701で取得した画像より、特徴量要素である、眉の角度Bθ、目の大きさES、口の角度Mθを算出する。
【０１３０】
S3703では、顔辞書内に登録された特徴量パターンを参照し、類似のパターンがあるか否かの判定を行う。図２７のS3304で示した処理と同様の判定でも構わないが、予め設定する所定の範囲BθWidth2、ESWidth2、MθWidth2（いずれも正の値としている）は、S3304のそれらよりも小さい値にすることが望ましい。既に細分化グループ生成が実施されているものであり、各特徴量パターンのもつ特徴量要素の幅が小さいためである。
（BθAve−BθWidth2）＜ Bθ ＜（BθAve＋BθWidth2） かつ
（ESAve−ESWidth2）＜ ES ＜（ESAve＋ESWidth2） かつ
（MθAve−MθWidth2）＜ Mθ ＜（MθAve＋MθWidth2）
【０１３１】
上記条件による判定が実行され、類似パターンが存在する場合はS3704へ進み、存在しない場合はS3705に進む。S3704では、該特徴量パターンとひも付けられた（関連付けられた）名前が特定され、対象の顔の個人認識が実施される。
【０１３２】
S3705では、該当する顔（人物）が存在しなかったため、処理は終了になる。
【０１３３】
S3704では、個人認識が実施された後、辞書の更新処理に移行する。S3706では、対象となった特徴量パターンのもつ統計値を取得する。このうち、ばらつきを示す分散値σOLDに着目する。
【０１３４】
S3707において、既存の分散値σOLDが、予め設定した所定値以上であるか否かの判定を実施する。既存の分散値σOLDが所定値以上ではない場合、すなわち、十分に小さい値になっている場合は、特徴量パターンが既に十分な精度が出ていると判断し、S3708に進む。この場合は、特に顔辞書は更新されない。
【０１３５】
一方、既存の分散値σOLDが所定値以上と判定された場合は、まだ特徴量パターンを形成するのに十分なサンプリング数でないと判断し、S3709に進む。
【０１３６】
S3709では対象となる顔の特徴量パターンを追加した場合の統計量を算出する。新たに計算された分散値をσNEWとする。
【０１３７】
S3710では、σOLDとσNEWの比較を行い、σNEWが小さくなる場合、つまり追加した方が、ばらつきが小さくなる場合には、S3711に進み、顔辞書に特徴量パターンの追加が行われる。ばらつきが小さくならない場合は、S3708に進み、特に顔辞書は更新されない。
【０１３８】
本実施形態では、顔辞書を用いた個人認識精度を向上させることができる。例えば、デジタル画像中の顔の個人認識処理において、表情の異なる画像について、十分な精度を実現することができる。尚、異なる表情の中には、メガネなどの装飾品による変化も含まれる。以上のように、個人認識を実施すると同時に、必要と判断した場合には顔辞書の更新を行うことで、顔辞書の学習機能を有することが出来る。また、本実施形態に係る辞書を用いた上記処理により、提案型でコラージュ画像を作成する際に、既存の画像に類似する表情の画像であっても正確に個人認識することが可能となる。このように、誤った個人認識が抑制されることにより、適切なコラージュ画像を提案することができる。なお、本実施形態では、ピークを分割することにより、特徴量を細分化したが、特徴量を細分化できるものであれば、これに限定されない。
【０１３９】
［実施形態２］
上記実施形態１では、特徴量パターンを構成する特徴量要素として、眉の角度、目の大きさ、口の角度を例に挙げた。
これに対し、本実施形態では、人物識別のためのパターンの１要素として時間を取り入れた例を説明する。本実施形態は、顔辞書以外は、実施形態１と同様であるので、実施形態１と同様の部分については説明を省略する。
【０１４０】
人物識別のためのパターンの１要素として、時間要素を取り入れる場合、各画像とその撮影日時がひも付けされることが必要になる。本実施形態では、各画像は図１１に示す属性情報を用いて記憶管理されるので、図１１の記述ににおけるタグ「CaptureDateTime」からその撮影時刻を得ることができる。
【０１４１】
図３２は、人間の顔のある変化の度合いを示したイメージ図である。縦軸はある特徴量を示す軸、横軸は時間軸である。図３２に示すように、人間の顔は、誕生から変化を始め、死亡するまで常に変わり続ける。したがって、本実施形態では、加齢による変化という要素を加えて顔辞書を細分化する。
【０１４２】
実施形態１で細分化した特徴量パターンを用いることによる多様な表情検出について説明したが、本実施形態では、さらに、その中で加齢による変化という要素を加えてさらに細分化し、個人認識精度を向上させた。
【０１４３】
顔辞書の作成に係る処理手順を図３５に示す。尚、S4101〜S4107については、図２７のS3301〜S3307と同様であるため説明は省略する。
【０１４４】
S4108では、S4106で画像の特徴量要素を辞書に追加した後、該画像の時間情報を取得する。時間の情報は、画像ファイルに付加されているメタデータ、例えばExifの撮影日時を参照すればよい。メタデータが含まれない場合は、ファイルの作成日時を参照することでも代用可能である。
【０１４５】
画像ファイルのExif情報は、撮影日時として秒単位の詳細なものが記載されているが、本処理ではそこまでの情報は必要ないため、日、月、年などの単位でまとめた時間の情報を取得するようにしてもよい。また、図３２の顔の変化に示したように、幼少の頃の方が大きく、年齢を重ねるにつれ、変化率が小さくなることを考慮し、対象とする人物の年齢に応じ、取得する時間の情報の単位を切り替えるようにしても良い。
【０１４６】
最初の検出時で、まだ年齢や名前などのプロファイルが取得出来ていない場合は、予め決められた期間を使用すればよい。
【０１４７】
顔辞書の細分化グループ生成処理のフローは実施形態１の図２８に示したものと同様であるが、S3408のグルーピング処理において、取得した時間の情報を利用し、実施を行う点で異なる。その部分について説明を加える。
【０１４８】
図３３は、本実施形態の特徴量要素を示す図である。実施形態１の図２９で示した特徴量要素、眉の角度、目の大きさ、口の角度に加え、時間の特徴量要素が加わったものになっている（図３３）。時間の特徴量要素の場合、一定期間撮影した後、しばらく経って撮影というケースもあり、正規分布になるとは限らない。そうしたことを考慮し、上述した日、月、年など決められた期間の最初と最後の日時を決定すればよい。
【０１４９】
ピークで分離したものに対し、さらに時間の要素を考慮したグルーピング処理を実施する。図３３において、特徴量要素としての時間を、黒、斜線、白の３つの時間範囲で表している。
【０１５０】
この時間の要素を、他の特徴量要素に適用したものが、それぞれのピーク部分である。例えば、眉の角度であれば、ピーク検出による細分化により、２つに分けられるが、さらに時間の要素により、５つに細分化される（黒：２、斜線：２、白：１）。同様に、目の大きさ、口の角度は、それぞれ、３（黒：１、斜線：１、白：１）、４（黒：２、斜線：１、白：１）に細分化される。顔辞書としては、同一時間の要素を掛け合わせて、登録することから、
黒：２×１×２＝４
斜線：２×１×１＝２
白：１×１×１＝１
の合計７つの特徴量パターンに分類される。
【０１５１】
この後、第１実施形態で図３７を用いて説明した、出現頻度による、取り得ない組み合わせの除去を実施する。
【０１５２】
こうした処理を実施することにより、図３４に示すような顔辞書が構成される。すなわち、７つの特徴量パターンのうち、特徴量パターン１、２、４、５、７は「一郎」を識別するために利用し、残りの特徴量パターン３、６は「一郎」を識別するためには使用しないことにする。
【０１５３】
上記で作成した時間を考慮した顔辞書を利用し、新たに入力された画像の個人認識を行っていく方法について説明する。実施形態１と同様に、個人認識すると同時に、その結果をもとに辞書の更新を行う。処理フローは、図３１のフローと同様であるため、説明は省略する。
【０１５４】
ここでは、辞書の更新方法の一つとして、顔辞書の容量最適化処理について説明する。本実施形態のシステムでは、顔辞書のデータは、２次記憶装置、図１の103に記憶されることになる。２次記憶装置１０３は、一般的に有限な領域のため、顔辞書データを蓄積する際も限られた容量に抑える必要がある。つまり、予め決められた容量をオーバーした場合は、データベースに登録してある何かしらのデータを削除し、容量を押さえる処理が必要となる。
【０１５５】
図３６は、容量を抑える処理の一例の処理フローを示したものである。S4201では、顔辞書データベースの容量が一定以上に到達しているか否かの判定処理を実施する。本判定処理で、一定以上に達していない、すなわち、まだ容量に十分な空きがあると判定された場合には、何も行われず、処理を終了する。容量が一定以上であり、データの削減が必要だと判断された場合は、S4202へと進む。S4202では、顔辞書を生成した際に利用した時間の特徴量要素を参考に最も古い時間で構成される特徴量パターンを検出し、取得する。S4203では、S4202で取得した特徴量パターンの削除を実行する。実行後、再度、容量の確認を行い、一定以下になるまで繰り返し処理が実施される。
【０１５６】
図３３に示した例では、時間の特徴量要素のうち、左側が古い、つまり最も古いものを黒とした場合に、黒の特徴量要素を含むデータを削除する。つまり、本例であれば、黒の特徴量パターン４つが削除されることになる。
【０１５７】
顔が刻々と変化することは上述したが、新たに入力され画像に対し、個人認識処理を実施するため参照する顔辞書は、新しいデータで構成することにより、より個人認識精度を向上させることができる。すなわち、古い時間の含むものを取り除いて行くことにより、より個人認識を向上させることができる。なお、時間を利用し、細分化した特徴量要素で構成されている顔辞書では、この処理を実現するのが容易である。
【０１５８】
尚、図３６で記載した処理フローでは、容量を参照し、その実施可否を判断したが、これ以外にもユーザが明示的に容量を削減する処理を実施してもよい。
【０１５９】
［その他の実施形態］
以上説明した実施形態は本発明の効果を得るための一手段であり、類似の別手法を用いたり、異なるパラメータを用いたとしても、本発明と同等の効果が得られる場合は、本発明の範疇に含まれる。
【０１６０】
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、プログラムは、１つのコンピュータで実行させても、複数のコンピュータを連動させて実行させるようにしてもよい。また、上記した処理の全てをソフトウェアで実現する必要はなく、一部または全部をハードウェアによって実現するようにしてもよい。
【０１６１】
上述した実施形態では、レイアウト出力物として、１ページに複数の画像を配置した出力物について説明したが、勿論、複数ページの出力にも適用することができる。
【図１】
2014016824.tif 000003
【図２】
2014016824.tif 000004
【図３】
2014016824.tif 000005
【図４】
2014016824.tif 000006
【図５】
2014016824.tif 000007
【図６】
2014016824.tif 000008
【図７】
2014016824.tif 000009
【図８】
2014016824.tif 000010
【図９】
2014016824.tif 000011
【図１０】
2014016824.tif 000012
【図１１】
2014016824.tif 000013
【図１２】
2014016824.tif 000014
【図１３】
2014016824.tif 000015
【図１４】
2014016824.tif 000016
【図１５】
2014016824.tif 000017
【図１６】
2014016824.tif 000018
【図１７】
2014016824.tif 000019
【図１８】
2014016824.tif 000020
【図１９】
2014016824.tif 000021
【図２０】
2014016824.tif 000022
【図２１】
2014016824.tif 000023
【図２２】
2014016824.tif 000024
【図２３】
2014016824.tif 000025
【図２４】
2014016824.tif 000026
【図２５】
2014016824.tif 000027
【図２６】
2014016824.tif 000028
【図２７】
2014016824.tif 000029
【図２８】
2014016824.tif 000030
【図２９】
2014016824.tif 000031
【図３０】
2014016824.tif 000032
【図３１】
2014016824.tif 000033
【図３２】
2014016824.tif 000034
【図３３】
2014016824.tif 000035
【図３４】
2014016824.tif 000036
【図３５】
2014016824.tif 000037
【図３６】
2014016824.tif 000038
【図３７】
2014016824.tif 000039