(57)【特許請求の範囲】
【請求項１】
複数の画像データを処理する画像処理装置であって、
複数の画像データを取得する取得手段と、
前記取得手段により取得された複数の画像データそれぞれの顔の部分の情報をマルチスレッド処理で検出する検出手段と、
前記検出手段により検出された前記複数の画像データそれぞれの顔の部分の情報をソートすることで得られたソート結果に基づいて、前記複数の画像データそれぞれの顔の部分の情報に対する認識処理の実行順序を決定する決定手段と、
前記決定手段により決定された実行順序に従って、前記検出された顔の部分に対する前記認識処理を実行する実行手段とを有することを特徴とする画像処理装置。
【請求項２】
前記実行手段により実行された前記認識処理の結果に基づいて前記複数の画像データをレイアウトするレイアウト手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記取得手段により取得された前記複数の画像データを複数の画像グループに分割する分割手段と、
前記分割手段により分割された複数の画像グループを複数のコアに割当てる割当て手段とをさらに有し、
前記検出手段は、前記割当て手段により割り当てられた前記複数のコアを用いて前記複数の画像グループに含まれる画像データに関して、前記顔の部分の情報を検出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記分割手段は、前記複数の画像データを複数のページにわたってレイアウトする場合に、前記複数の画像データを、予め定められた基準に従って、前記複数の画像グループに分割して、前記複数のページに割当て、
前記割当て手段は、前記分割手段により前記複数のページそれぞれに割当てられた画像データを前記複数のコアに割当てることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記予め定められた基準は、前記複数の画像データの撮影日時を含むことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記検出手段による前記複数の画像グループに含まれる画像データの前記顔の部分の情報が検出された後に、前記レイアウト手段によりレイアウトされた前記複数の画像データの内の少なくとも一部を入れ替える入れ替え手段をさらに有することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記検出手段により検出された前記顔の部分の情報を格納する格納手段をさらに有し、
前記取得手段により取得された複数の画像データを用いて再度のレイアウトを行う場合、前記レイアウト手段は、前記格納手段により格納された前記顔の部分の情報を用いてレイアウトを実行することを特徴とする請求項５又は６に記載の画像処理装置。
【請求項８】
前記検出手段による検出が中断され、その後、再実行した場合、前記格納手段に格納された前記顔の部分の情報に基づいて、前記検出手段による検出が再実行されることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記格納手段はＨＤＤを含むことを特徴とする請求項７又は８に記載の画像処理装置。
【請求項１０】
前記顔の部分の情報とは、各画像データに含まれる人物の顔に関する情報であることを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記複数の画像データを特定するために前記取得された複数の画像データに番号を割当てる第１のナンバリング手段と、
前記検出手段により検出された顔を特定するために前記検出された顔に番号を割当てる第２のナンバリング手段とを有し、
前記決定手段は、前記第１のナンバリング手段により割当てられた画像データの番号と、前記第２のナンバリング手段により割当てられた顔の番号とに基づいて、前記実行順序を決定することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記認識処理は、前記検出された顔の部分の情報と、データベースに個人ＩＤ毎に保存されている代表顔画像との類似性を比較する処理であることを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理装置。
【請求項１３】
前記複数の画像データそれぞれの顔の部分の情報をマルチスレッド処理で検出する検出処理が再度された場合、前回の検出処理で検出された前記複数の画像データそれぞれの顔の部分の情報の実行順序と、再度の検出処理で検出された前記複数の画像データそれぞれの顔の部分の情報の実行順序は同じであることを特徴とする請求項１乃至１２のいずれか１項に記載の画像処理装置。
【請求項１４】
コンピュータを請求項１乃至１３のいずれか１項に記載の画像処理装置の各手段として機能させるプログラム。
【請求項１５】
複数の画像データを処理する画像処理装置における画像処理方法であって、
複数の画像データを取得する取得工程と、
前記取得された複数の画像データそれぞれの顔の部分の情報をマルチスレッド処理で検出する検出工程と、
前記検出された前記複数の画像データそれぞれの顔の部分の情報をソートすることで得られたソート結果に基づいて、前記複数の画像データそれぞれの顔の部分の情報に対する認識処理の実行順序を決定する決定工程と、
前記決定された実行順序に従って、前記検出された顔の部分に対する前記認識処理を実行する実行工程とを有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像処理装置、プログラム、及び画像処理方法に関し、特に、例えば、デジタルカメラなどで撮影された複数の画像からフォトアルバムを作成する画像処理装置、プログラム、及び画像処理方法に関する。
【背景技術】
【０００２】
近年、ユーザが撮影した画像を自動レイアウトしてアルバムを作成サービスが提供され始めている。ここでいう、自動レイアウトとは、アルバム作成に関する一部もしくは全機能が自動処理されることを指す。例えば、（１）アルバム掲載用に自動で画像を選択する、（２）アルバムに使用するテンプレートを自動で決定する、（３）テンプレートに自動で画像を割り当てる等がこれに該当する。
【０００３】
選択された画像が人物を含む画像であった場合、その画像には重要な人物が含まれている方が好ましい。多くのユーザは、たとえ人物の構図や背景が同じであっても、「通行人がたまたま写り込んだ写真」よりも「自分が写った記念写真」を使ってアルバムを作成することを望む可能性が高い。このような判断を自動で行うのに必要な技術として個人認識技術がある。
【０００４】
例えば、特許文献１では辞書を新規に作成し、検出した顔情報に順次照合処理と登録処理を行う構成を開示している。このように辞書を新規に作成することで、各ユーザに最適な辞書を形成することが特許文献１には記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１４−４４６０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１のように順次顔辞書の内容を更新する場合、個人認識結果の「再現性」を維持できない場合がある。例えば、マルチスレッドで顔検出を実施すると、タスクの使用状況によって各スレッドの開始・終了タイミングがばらつく。結果として、個人認識処理自体が１つのスレッドだけで動いていても、その１つのスレッドに対して入力される顔情報の入力順番がばらつけば個人認識結果が変わってしまう。
【０００７】
個人認識結果が変わることは、自動レイアウト結果が変わってしまうことに繋がる。ユーザにとって、同じ画像を何度も用いてアルバム作成をする場合、その都度レイアウト結果の異なるアルバムが作成されることは好ましくない。
【０００８】
本発明は上記従来例に鑑みてなされたもので、同じ画像であれば同じレイアウト構成が実現可能な画像処理装置、画像処理方法、及び、プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために本発明の画像処理装置は次のような構成を含む。
【００１０】
即ち、複数の画像データを処理する画像処理装置であって、複数の画像データを取得する取得手段と、前記取得手段により取得された複数の画像データそれぞれの顔の部分の情報をマルチスレッド処理で検出する検出手段と、前記検出手段により検出された前記複数の画像データそれぞれの顔の部分の情報をソートすることで得られたソート結果に基づいて、前記複数の画像データそれぞれの顔の部分の情報に対する認識処理の実行順序を決定する決定手段と、前記決定手段により決定された実行順序に従って、前記検出された顔の部分に対する前記認識処理を実行する実行手段とを有することを特徴とする。
【００１１】
また本発明を他の側面から見れば、コンピュータを上記構成の装置の各手段として機能させるプログラムを備える。
【００１２】
さらに本発明を他の側面から見れば、複数の画像データを処理する画像処理装置における画像処理方法であって、複数の画像データを取得する取得工程と、前記取得された複数の画像データそれぞれの顔の部分の情報をマルチスレッド処理で検出する検出工程と、前記検出された前記複数の画像データそれぞれの顔の部分の情報をソートすることで得られたソート結果に基づいて、前記複数の画像データそれぞれの顔の部分の情報に対する認識処理の実行順序を決定する決定工程と、前記決定された実行順序に従って、前記検出された顔の部分に対する前記認識処理を実行する実行工程とを有することを特徴とする画像処理方法を備える。
【発明の効果】
【００１３】
従って本発明によれば、各画像の特定の部分を検出して得られた情報を用いて特定の処理を実行する場合に、同じ画像データを用いれば、同じレイアウト構成が得られるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】画像処理装置のハードウェアの構成を示すブロック図である。
【図２】アルバム作成アプリケーションのソフトウェア構成を示すブロック図である。
【図３】アルバム作成アプリケーションが提供する表示画面を示す図である。
【図４】自動レイアウト処理を示すフローチャートである。
【図５】ＩＤ毎に区別した画像解析情報を示す図である。
【図６】画像データ群のシーン分割の結果を示す図である。
【図７】シーン毎の平均値と標準偏差を示す図である。
【図８】得点化軸の概念を示す図である。
【図９】画像データの選択を説明するための図である。
【図１０】画像データのレイアウトに使うテンプレート群を示す図である。
【図１１】人物情報解析部２０５の詳細な構成を示すブロック図である。
【図１２】データテーブルの例を示す図である。
【図１３】実施形態１に従う人物情報解析部が実行する顔検出処理を示すフローチャートである。
【図１４】実施形態１に従う人物情報解析部が実行する個人認識処理を示すフローチャートである。
【図１５】画像得点部の詳細な構成を示すブロック図である。
【図１６】画像得点部が実行するシーン分類後の得点化処理を示すフローチャートである。
【図１７】選択されたテンプレートを示す図である。
【図１８】実施形態２に従うアルバム作成アプリケーションの自動レイアウト処理部が実行する処理を示すフローチャートである。
【図１９】実施形態２に従うページ単位での処理をマルチスレッドで実行するフローチャートである。
【図２０】見開き９ページのアルバムの例を示す図である。
【図２１】実施形態２に従うアルバム入れ替え処理の詳細を示すフローチャートである。
【図２２】実施形態３に従う人物情報解析部が実行する顔検出処理を示すローチャートである。
【図２３】実施形態３に従う人物情報解析部が実行する個人認識処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下添付図面を参照して本発明の実施形態について、さらに具体的かつ詳細に説明する。ただし、この実施形態に記載されている構成要素の相対配置等は、特定の記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００１６】
なお、この明細書において、「記録」（「プリント」という場合もある）とは、文字、図形等有意の情報を形成する場合のみならず、有意無意を問わない。さらに人間が視覚で知覚し得るように顕在化したものであるか否かも問わず、広く記録媒体上に画像、模様、パターン等を形成する、または媒体の加工を行う場合も表すものとする。
【００１７】
また、「記録媒体」とは、一般的な記録装置で用いられる紙のみならず、広く、布、プラスチック・フィルム、金属板、ガラス、セラミックス、木材、皮革等、インクを受容可能なものも表すものとする。
【００１８】
＜実施形態１＞
この実施形態では、画像処理装置上で、アルバム作成アプリケーション（以下、アプリ）を動作させ、自動レイアウトを生成する例について説明する。この実施形態は、顔検出処理をマルチスレッドで実行することが可能な構成となっていることが特徴である。
【００１９】
上述した課題でも指摘したように、顔辞書と検出した顔情報との照合結果に従って順次顔辞書の内容を更新する場合、個人認識結果の「再現性」を維持できない場合がある。個人認識結果の再現性は、顔辞書の形成過程に大きく依存する。照合・登録処理の対象となる情報の入力順番が変わる事で辞書の内容が変化してしまうのはクラスタリングの課題である。
【００２０】
例えば、顔情報Ａ、Ｂ、Ｃの内、ＡとＣは類似しておらず、ＢはＡにもＣにもある程度類似しているとする。仮に顔情報Ａ、Ｂ、Ｃの順に個人認識処理を実行すると、Ａを辞書に登録した状態でＢを辞書と照合し、顔情報ＡとＢは類似していると判断される。逆に顔情報Ｃ、Ｂ、Ａの順で個人認識処理が実行されたとすると、Ｃを辞書に登録した状態でＢを辞書と照合し、顔情報ＢとＣは類似していると判断される。このように、顔情報Ｂは既存の辞書情報によってはＡもしくはＣのどちらにも同一人物として判断され得ることになる。顔検出がマルチスレッドで動作する場合に顔情報の検出順番がその都度異なってしまうため、特許文献１のような構成では検出順番の変更に伴って各顔情報の顔認識結果が異なってしまう。この実施形態ではその課題を解決し、個人認識結果の「再現性」を向上する。
【００２１】
図１は画像処理装置のハードウェアの構成を示すブロック図である。なお、画像処理装置としては、例えば、ＰＣ、スマートフォン等が挙げられ、本実施形態ではＰＣとする。
【００２２】
ＣＰＵ（中央演算装置／プロセッサ）１０１は、画像処理装置１００を統括的に制御し、例えば、ＲＯＭ１０２に記憶されたプログラムをＲＡＭ１０３に読み出して実行することにより、本実施形態の動作を実現する。図１では、ＣＰＵは１つであるが、複数のＣＰＵで構成されても良い。ＲＯＭ１０２は、汎用的なＲＯＭであり、例えば、ＣＰＵ１０１により実行されるプログラムが記憶されている。ＲＡＭ１０３は、汎用的なＲＡＭであり、例えば、ＣＰＵ１０１によるプログラムの実行時に、各種情報を一時的に記憶するためのワーキングメモリとして用いられる。ＨＤＤ（ハードディスク）１０４は、画像ファイル、画像データ、画像解析などの処理結果を保持するデータベースや、アルバム作成アプリケーションにより用いられるテンプレートなどを記憶するための記憶媒体（記憶部）である。
【００２３】
ディスプレイ１０５は、本実施形態のユーザインタフェース（ＵＩ）や画像データのレイアウト結果をユーザに表示する。キーボード１０６及びポインティングデバイス１０７は、ユーザからの指示操作を受け付ける。ディスプレイ１０５は、タッチセンサ機能を備えても良い。キーボード１０６は、例えば、ユーザが、ディスプレイ１０５に表示されたＵＩ上に、作成したいアルバムの見開き数等の入力をユーザから受け付ける際に用いられる。ポインティングデバイス１０７は、例えば、ユーザが、ディスプレイ１０５に表示されたＵＩ上のボタンをクリックする際に用いられる。
【００２４】
データ通信部１０８は、有線や無線等のネットワークを介した外部の装置との通信を行う。データ通信部１０８は、例えば、自動レイアウト機能によりレイアウトされたデータを画像処理装置１００と通信可能なプリンタやサーバに送信する。データバス１０９は、図１の各ブロック間を相互に通信可能に接続する。
【００２５】
本実施形態におけるアルバム作成アプリケーションは、ＨＤＤ１０４に保存され、後述するようにユーザがディスプレイ１０５に表示されているアプリケーションのアイコンをポインティングデバイス１０７によりダブルクリックして起動する。
【００２６】
図２はアルバム作成アプリケーションのソフトウェア構成を示すブロック図である。図２は、特に、自動レイアウト機能を実行する自動レイアウト処理部に関するソフトウェアブロック図を示している。アルバム作成条件指定部２０１は、ポインティングデバイス１０７による後述のユーザのＵＩ操作に応じたアルバム作成条件を図２において太い実線の枠で囲んだ自動レイアウト処理部に出力する。
【００２７】
画像取得部２０２は、アルバム作成条件指定部２０１から指定された画像データ群をＨＤＤ１０４から取得する。なお、画像データ群は、データ通信部１０８を介してネットワーク上のサーバやＳＮＳから取得されても良い。取得した画像データ群は、撮影日時順にソートされシリアル番号の対応付けがなされる。シリアル番号を使用することで指定画像データの処理を行う際に情報の特定が容易になる。画像変換部２０３は、以降の処理に用いる画像データを所望の画素数や色情報に変換する。本実施形態では、短辺４２０画素の画素数とｓＲＧＢの色情報の解析画像データに変換する。
【００２８】
画像解析部２０４は、解析画像データから後述の特徴量の取得を実行する。人物情報解析部２０５は、顔検出、個人認識の各処理を実行する。また、画像解析部２０４は、ＨＤＤ１０４から取得した画像データに付随したデータの取得、例えばＥｘｉｆ情報から撮影日時の取得も実行する。画像分類部２０６は、画像データ群に対して撮影日時情報や撮影枚数、検出した顔情報等を用いて、後述のシーン分割やシーン分類を実行する。シーンとは、旅行や日常、結婚式等の撮影シーンのことである。画像得点部２０８は、レイアウトに適した画像データが高得点になるような得点付けを行う。
【００２９】
主人公情報入力部２０７は、アルバム作成条件指定部２０１から指示された主人公のＩＤ（識別情報）を画像得点部２０８に入力する。画像得点部２０８は、主人公情報入力部２０７から入力された主人公ＩＤが含まれる画像データについてより高い得点を付加するように構成されている。
【００３０】
見開き割当部２１０は、画像データ群を分割（グルーピング）してアルバムの各見開きに割り当てる。見開き数入力部２０９は、アルバム作成条件指定部２０１から指定されたアルバムの見開き数を見開き割当部２１０に入力する。見開き割当部２１０は、入力された見開き数に応じて画像データ群を分割し、各見開きに画像データ群の一部（分割分、又は画像グループともいう）を割り当てる。画像選択部２１１は、見開き割当部２１０で各見開きに割り当てられた画像データ群の一部から、アルバム作成条件指定部２０１から指定されたスロット数分の画像データを、画像得点部２０８で付された得点に基づいて選択する。
【００３１】
画像レイアウト部２１３は、画像データのレイアウトを決定する。テンプレート入力部２１２は、アルバム作成条件指定部２０１から指定されたテンプレート情報に応じた複数のテンプレートを画像レイアウト部２１３に入力する。画像レイアウト部２１３は、画像選択部２１１で選択された画像データに適したテンプレートを、テンプレート入力部２１２から入力された複数のテンプレートから選択し、画像データのレイアウトを決定する。レイアウト情報出力部２１６は、画像レイアウト部２１３が決定した画像データのレイアウトに従って、ディスプレイ１０５に表示する為のレイアウト情報を出力する。レイアウト情報は、例えば、選択されたテンプレートに画像選択部２１１により選択された画像データをレイアウトしたビットマップデータである。
【００３２】
画像補正部２１５は、覆い焼き補正、赤目補正、コントラスト補正を実行する。画像補正条件入力部２１４は、アルバム作成条件指定部２０１から指定された画像補正のＯＮ／ＯＦＦ条件を画像補正部２１５に入力する。画像補正部２１５は、画像補正条件がＯＮの場合、画像データに対して補正を実行し、画像補正条件がＯＦＦの場合、補正を実行しない。尚、画像補正部２１５は、画像変換部２０３から入力された画像データに対して補正のＯＮ／ＯＦＦに従って、補正を実行する。画像変換部２０３から画像補正部２１５に入力される画像データの画素数は、画像レイアウト部２１３で決定したレイアウトのサイズに合わせて変更可能である。
【００３３】
アルバム作成アプリケーションは、画像処理装置１００にインストールされると、画像処理装置１００上で動作するＯＳ（オペレーティングシステム）のトップ画面（デスクトップ）上に起動アイコンが表示される。ユーザがディスプレイ１０５に表示されているディスプレイ１０５上の起動アイコンをポインティングデバイス１０７でダブルクリックすると、ＨＤＤ１０４に保存されているアルバム作成アプリケーションのプログラムがＲＯＭ１０２にロードされる。ＲＯＭ１０２のプログラムがＣＰＵ１０１によりＲＡＭ１０３に読み出されて実行されると、アルバム作成アプリケーションが起動する。
【００３４】
図３は、アルバム作成アプリケーションが提供する表示画面３０１の一例を示す図である。
【００３５】
表示画面３０１は、ディスプレイ１０５に表示される。ユーザは表示画面３０１を介して後述するアルバムの作成条件を設定し、アルバム作成条件指定部２０１は、ユーザにより設定された内容を取得する。
【００３６】
表示画面３０１上のパスボックス３０２は、アルバム作成の対象となる画像データ群のＨＤＤ１０４中の保存場所（パス）を表示する。フォルダ選択ボタン３０３は、ユーザからのポインティングデバイス１０７でのクリック操作により、アルバム作成の対象とする画像データ群を含むフォルダをツリー構成でユーザ選択可能に表示する。ユーザにより選択された画像データ群を含むフォルダパスが、パスボックス３０２に表示される。
【００３７】
主人公指定アイコン３０４は、ユーザが主人公を指定するためのアイコンであり、人物の顔画像がアイコンとして表示される。主人公指定アイコン３０４には、複数の異なる顔画像のアイコンが並んで表示され、ユーザがポインティングデバイス１０７によりクリックして選択可能である。なお、それぞれの顔画像は個人ＩＤと関連付けて登録されている。また、主人公指定アイコン３０４は、解析対象の画像データが表わす画像に写った人物から中心人物である主人公を特定するために用いられる。顔画像は、例えば、予め画像データから検出され、個人ＩＤと関連付けて顔データベースに登録されている。主人公指定アイコン３０４は、例えば顔データベースに登録された人物の顔画像のうち、ユーザによって選択された人物の顔画像や自動設定されることもできる。
【００３８】
見開き数ボックス３０５は、ユーザからのアルバムの見開き数の設定を受け付ける。ユーザは、キーボード１０６を介して見開き数ボックス３０５に直接数字を入力するか、ポインティングデバイス１０７を用いてリストから見開き数ボックス３０５に数字を入力する。
【００３９】
テンプレート指定アイコン３０６は、テンプレートのテイスト（ポップ調やシック調等）別にイラスト画像を表示する。テンプレート指定アイコン３０６には、複数のテンプレートアイコンが並んで表示され、ユーザがポインティングデバイス１０７によりクリックして選択可能である。チェックボックス３０７は、ユーザからの画像補正のＯＮ／ＯＦＦの指定を受け付ける。チェックが入った状態は画像補正ＯＮが指定された状態であり、チェックが入っていない状態は画像補正ＯＦＦが指定された状態である。なお、ＵＩ構成画面３０１は複数の補正処理についてまとめてＯＮ／ＯＦＦを設定可能に構成されているが、個別の補正処理ごとにＯＮ／ＯＦＦを設定可能に構成されても良い。
【００４０】
ユーザによりＯＫボタン３０８が押下されると、アルバム作成条件指定部２０１は、表示画面３０１上で設定されている内容を取得する。アルバム作成条件指定部２０１は、取得した設定内容を、アルバム作成アプリケーションの自動レイアウト処理部に出力する。その際、パスボックス３０２に入力されているパスは、画像取得部２０２に伝えられる。主人公指定アイコン３０４で選択されている主人公の個人ＩＤは、主人公情報入力部２０７に伝えられる。見開き数ボックス３０５に入力されている見開き数は、見開き数入力部２０９に伝えられる。テンプレート指定アイコン３０６で選択されているテンプレート情報は、テンプレート入力部２１２に伝えられる。画像補正のチェックボックス３０７の画像補正のＯＮ／ＯＦＦ指定は、画像補正条件入力部２１４に伝えられる。表示画面３０１上のリセットボタン３０９は、表示画面３０１上の各設定情報をリセットするためのボタンである。
【００４１】
図４は、アルバム作成アプリケーションの自動レイアウト処理部の処理を示すフローチャートである。なお、本願のフローチャートは、例えば、ＣＰＵ１０１がＨＤＤ１０４に記憶されたプログラムをＲＯＭ１０２やＲＡＭ１０３に読み出して実行することにより実現される。
【００４２】
ここで、図４を参照しながら、自動レイアウト処理を説明する。
【００４３】
Ｓ４０１では、画像変換部２０３は、解析画像データを生成する。画像変換部２０３は、アルバム作成条件指定部２０１で指定されたＨＤＤ１０４の画像データ群の各画像データを所望の画素数と色情報の解析画像データに変換する。本実施形態では、短辺４２０画素とｓＲＧＢの色情報の解析画像データに変換する。
【００４４】
Ｓ４０２では、画像解析部２０４は、画像特徴量を解析し、取得する。画像解析部２０４は、ＨＤＤ１０４から取得した各画像データに付随する、例えばＥｘｉｆ情報から撮影日時を取得する。また、画像解析部２０４は、Ｓ４０１で生成された解析画像データから特徴量を取得する。特徴量としては、例えば、ピントである。エッジの検出方法として一般的にソーベルフィルタが知られている。ソーベルフィルタでエッジ検出を行い、エッジの始点と終点の輝度差を、始点と終点の距離で割れば、エッジの傾き（輝度勾配）が算出される。画像中のエッジの平均傾きを算出した結果から、平均傾きが大きい画像は、平均傾きが小さい画像よりもピントが合っているとみなすことができる。そして、傾きに対して異なる値の複数の閾値を設定すれば、どの閾値以上かを判定することにより、ピント量の評価値を出力可能である。本実施形態では、異なる２つの閾値を予め設定しておき、○△×の３段階により、ピント量を判定する。例えば、アルバムに採用したいピントの傾きを○と判定し、許容可能なピントの傾きを△と判定し、許容不可能な傾きを×と判定し、各閾値を予め設定しておく。閾値の設定は、例えば、アルバム作成アプリケーションの作成元等により提供されても良いし、ユーザインタフェース上で設定可能としても良い。
【００４５】
Ｓ４０３では、人物情報解析部２０５は、Ｓ４０１で生成された解析画像データに対して、顔検出を実行する。ここで、顔検出の処理には、公知の方法を用いることができ、例えば、複数用意した弱識別器から強識別器を作成するＡｄａｂｏｏｓｔが用いられる。本実施形態では、Ａｄａｂｏｏｓｔにより作成した強識別器により人物（オブジェクト）の顔画像が検出される。
【００４６】
人物情報解析部２０５は、顔画像を抽出するとともに、検出した顔画像の位置の左上座標値と右下座標値を取得する。この２種の座標を持つことにより、画像解析部２０４は、顔画像の位置と顔画像のサイズを取得可能である。ここで、顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを顔の代わりの検出対象としてＡｄａｂｏｏｓｔにより強識別器を作成しても良い。これにより、画像解析部２０４は、顔画像以外のオブジェクトを検出することができる。
【００４７】
Ｓ４０４では、人物情報解析部２０５は、Ｓ４０３で検出した顔画像と、顔辞書データベースに個人ＩＤ毎に保存されている代表顔画像との類似性を比較することにより、個人認識を行う。人物情報解析部２０５は、類似性が閾値以上で類似性が最も高いＩＤを、検出した顔画像のＩＤとする。尚、最も高い類似性が閾値未満の場合、人物情報解析部２０５は、抽出した顔画像を新規の顔として新規の個人ＩＤとして顔辞書データベースに登録する。ここで、顔に限らず、犬や猫等の動物、花、食べ物、建物、置物等のオブジェクトを顔の代わりの認識対象としても良い。例えば人物情報解析部２０５が犬を検出対象とした場合、犬種を識別するように類似性を比較することが可能である。
【００４８】
この実施形態の特徴的な構成の１つである人物情報解析部２０５の詳細な構成について説明する。人物情報解析部２０５では、図４のＳ４０３における顔検出処理とＳ４０４における個人認識処理とを実行する。
【００４９】
図１１は人物情報解析部２０５の詳細な構成を示すブロック図である。なお、本実施形態では、図１１の１４０１〜１４０３がマルチスレッドで実施され、１４０４〜１４０６がシングルスレッドで実施されるものとする。また、本願では、マルチスレッドで顔検出が実行されることにより顔情報の検出順番がその都度異なってしまう場合であっても、１４０３〜１４０５を実行することで、個人認識結果の「再現性」を向上することが可能となる。
【００５０】
画像情報取得部１４０１はユーザから入力された画像データの情報を取得する。また、画像情報取得部１４０１は画像解析部２０４で取得した画像解析情報も取得することができる。画像解析部２０４で取得した情報を人物情報解析部２０５で利用することで、部分的な色情報取得などの双方で実施する処理の重複を取り除き高速化を図ることができる。
【００５１】
顔情報取得部１４０２は、画像情報取得部１４０１で取得した画像データの情報から画像に写る顔を検出し、その検出結果を取得する。検出結果は、顔の数、各顔の位置情報、各顔の大きさ情報、各顔の回転角度、各顔の向き、各顔同士の位置関係、各顔の検出信頼度などを含む。検出信頼度とは、顔検出結果で顔と判定された領域に対して、「顔らしさ」の度合いを数値化したものである。また、検出結果として、検出された顔領域の画素値も取得することができる。本実施形態では検出された顔領域の画素値は後述の個人認識処理のために情報を正規化してから取得する。
【００５２】
顔情報ナンバリング部１４０３は、顔情報取得部１４０２で取得した複数の顔情報について、シリアル番号を付与する。本実施形態では、画像データ間の情報である画像シリアル番号と画像データ内の情報である顔シリアル番号を取得した各顔情報と対応付けて管理する。画像シリアル番号は画像データに対応付けられていたシリアル番号を使用する。顔シリアル番号は検出した各顔をＳ４０３における顔検出時に取得した検出信頼度でソートし、ソートされた各顔に対してナンバリングする。
【００５３】
例えば、画像に写る顔数（画像データに含まれる顔数）が３人（顔Ａ、顔Ｂ、顔Ｃ）で各顔の検出信頼度が顔Ａ＝８０、顔Ｂ＝７０、顔Ｃ＝９０であった場合、顔シリアル番号として顔Ａに１、顔Ｂに２、顔Ｃに０が割り当てられる。なお、顔の検出信頼度の数値が高い程、より顔らしいと判断されることを示す。顔の検出信頼度を基準にソートを行うことで、後述のＳ４０４における個人認識処理の辞書精度を高めることができる。また、ソート実行後に、検出信頼度に対して閾値を設けることもできる。例えば、顔検出閾値を７５とした時、Ｓ４０３における顔検出実行後の検出顔数は３人だったが、閾値処理によって顔Ｂ＝７０は顔とみなされず、合計顔数は２人となる。また、Ｓ４０３における顔検出時に得られる顔の向き情報から、顔の向きによっては検出顔をナンバリングしないことも可能である。例えば、顔Ａ：正面、顔Ｂ：正面、顔Ｃ：横顔であり、正面向きの顔のみをナンバリング対象とした場合、検出実行後の検出顔数は３人だったが、顔の向きを用いたフィルタ処理によって、合計顔数は２人となる。
【００５４】
情報管理部１４０４は、顔情報取得部１４０２で取得した複数の顔情報と顔情報ナンバリング部１４０３で取得した画像シリアル番号、顔シリアル番号とを紐付けて管理する。情報管理部１４０４は顔関連情報（顔情報とシリアル番号の組み合わせ情報）をＲＯＭ１０２やＲＡＭ１０３に逐次保存する。ＲＯＭ１０２、ＲＡＭ１０３の記憶可能領域が保管する顔関連情報によって少なくなった場合、もしくは、ＲＯＭ１０２、ＲＡＭ１０３の記憶領域は他に割当て対象のデータがあるという場合はＨＤＤ１０４に保管することもできる。また、本実施形態では保管情報として、各顔の情報を個別に持つだけでなく、保管された顔群を管理するデータテーブルを保管することもできる。
【００５５】
図１２（Ａ）はデータテーブルの例を示す図である。
【００５６】
図１２（Ａ）に示すように、後述する図１２のＳ１２０５、Ｓ１２０６の処理が終了すると画像シリアル番号と顔シリアル番号とは紐付けて管理される。データテーブルは情報管理部１４０４が取得した顔関連情報の順番に記憶することになるが、システム構成やＣＰＵ１０１の性能によって、画像シリアル番号が昇順で記憶されない場合もある。その場合、データテーブルには欠番について記憶しても良いし、欠番は書き飛ばしても良い。本実施形態では、画像データから顔情報が検出されなかったときは欠番を記載（画像シリアル番号は記載し、顔シリアル番号は「-」を記憶）する。また、本実施形態では、画像データから顔が複数検出されたが、顔の向きが正面でない等の要因で、顔検出信頼度ソートが行われた後に取り除かれた顔情報に関しては欠番の書き飛ばしを行う。データテーブルに格納された情報は各顔情報を一意に特定することができる。
【００５７】
順序制御部１４０５は、情報管理部１４０４で管理された複数の顔関連情報を取得し、顔関連情報が持つシリアル番号を用いたソート処理を行う。なお、このソート処理は、画像シリアル番号を用いたソート処理と顔シリアル番号を用いたソート処理の両方を指す。顔関連情報がＲＯＭ１０２、ＲＡＭ１０３に格納されている場合、ＲＯＭ１０２、ＲＡＭ１０３から必要情報を読み出しソートする。ＨＤＤ１０４に格納してある場合も同様にＨＤＤ１０４から必要情報を読み出しソートする。この必要情報とは、顔関連情報における全ての情報でも良いし、顔群を管理するデータテーブル（図１２（Ａ））だけでも良い。
【００５８】
本実施形態では画像シリアル番号で昇順ソート、同一画像シリアル番号内で顔シリアル番号の昇順ソートを実行する。この２つの昇順ソートの結果、図１２（Ｂ）が得られる。なお、図１２（Ａ）に示したデータテーブルに格納されていた欠番や書き飛ばしの箇所は順序制御部１４０５で吸収し、画像シリアル番号と顔シリアル番号が割り振られているデータに限って「個人認識実行順番」が割り振られる。
【００５９】
個人認識情報取得部１４０６は、順序制御部１４０５がソートした顔関連情報の順番に個人認識処理を実行する。個人認識処理は大別して「類似性算出処理」と「辞書登録処理」がある。個人認識情報取得部１４０６は、まず新規の顔辞書を作成する。顔辞書には、登録された顔情報の一部もしくは全てが記録されることになる。つまり、マルチスレッドで顔検出が実行されることにより顔情報の検出順番がその都度異なってしまう場合であっても、ソートされた顔関連情報の順番で個人認識処理が実行されるため、個人認識結果の「再現性」を実現できる。
【００６０】
個人認識情報取得部１４０６は、はじめに１人目に入力された顔情報を登録する。図１２（Ｂ）における個人認識実行順番“０”の顔情報がそれに該当する。登録時は顔関連情報に個人ＩＤを紐付ける。本実施形態において、辞書に登録済みの顔がない状態であれば、新規で登録する顔情報には個人ＩＤ＝０を与える。なお、本実施形態では辞書が新規作成され、はじめの顔情報を登録するが、辞書の初期状態であるかどうかは問わない。例えば、既に辞書に顔情報が登録済みであっても良い。
【００６１】
次に、個人認識情報取得部１４０６は２人目に入力された顔情報を顔辞書と照合する。
【００６２】
ここでは、図１２（Ｂ）における個人認識実行順番“１”の顔情報に関し、個人ＩＤ＝０の顔情報を含んだ顔辞書との類似性を算出する。そして、個人認識実行順番“１”の顔情報に関し、個人ＩＤ＝０との類似性を判断し、個人ＩＤ＝０と同一人物とみなすか、新規の個人ＩＤ＝１を割り振るべきか判断する。その判断が終了後、個人認識実行順番“１”の顔情報も個人ＩＤと紐付けて辞書に登録する。このように、顔辞書はユーザが投入した画像データから取得した顔情報で更新される。なお、本実施形態では全ての顔画像について登録処理を行うが、ある個人ＩＤに対して代表顔情報を決定することで、登録する顔情報を限定することも可能である。
【００６３】
以上、人物情報解析部２０５の詳細について説明したが、この構成を用いてＳ４０３における顔検出やＳ４０４における個人認識の処理を実行することで、個人認識処理を実行する順番や顔辞書の登録順番の再現性が高まる。マルチスレッドで顔検出処理が実行されることで、たとえ同じ画像データ群を扱う場合であっても、情報管理部１４０４に入力される顔関連情報の順序が顔検出処理のたびにバラバラとなるおそれがある。しかし、順序制御部１４０５がソート処理を実行することで、いつでも決まった個人認識実行順番を各顔関連情報に与えることができる。よって、情報管理部１４０４に入力される顔関連情報の順番を統一することが可能となる。
【００６４】
図１３は人物情報解析部２０５が実行する顔検出処理を示すフローチャートである。
【００６５】
本実施形態では、顔検出処理時にマルチスレッドを実行する。図１３に示す処理は１つのスレッドが実行する顔検出処理のフローチャートである。この実施形態では、ユーザがアルバム作成用に入力した画像データ群を各スレッド（各スレッドを実行する各コア）に等分に分けて実行する。例えば、ユーザが１２０枚の画像データをアルバム作成に用いることを指定し、かつ、処理実行時に顔検出用に３つ分のコアが使用可能である場合、１つのコアは４０枚の画像データを扱う。この場合、１スレッドに割当てられる画像データ数（Ｎ）は、Ｎ＝４０である。なお、コア数の指定はＯＳの指示によって適応的に変えることもできる。画像データの分配も等分である必要はなく、各スレッドの進行を見て適応的に変えることも可能である。
【００６６】
なお、この処理にあたり、後述する処理画像枚数を示すパラメータｎが“０”に初期化される。さらに、各画像データの処理検出顔数を示すパラメータｍも“０”に初期化される。
【００６７】
Ｓ１５０１では処理画像枚数を示すパラメータｎが“＋１”インクリメントされる。Ｓ１５０２では、画像情報取得部１４０１は、コアに割り当てられた画像グループから１枚分の画像データの情報を取得する。このとき、画像情報取得部１４０１は、画像解析部２０４で取得した画像解析情報も取得することができる。Ｓ１５０３では、顔情報取得部１４０２は、画像情報取得部１４０１によって取得した画像データの情報と画像解析情報から、画像データにおける顔領域を検出する。また、本実施形態では、取得した複数の顔情報に対して顔検出信頼度でソート処理を実行する。
【００６８】
Ｓ１５０４は、Ｓ１５０３で取得した検出顔数（Ｍ）の内の処理検出顔数を示すパラメータｍを“＋１”インクリメントする。１つの画像データから複数の顔が検出された場合は、検出信頼度の高い顔情報から順番にＳ１５０５、Ｓ１５０６の処理を実行する。
【００６９】
Ｓ１５０５では、顔情報ナンバリング部１４０３は、検出した顔情報に対して、画像シリアル番号を対応付ける。本実施形態では、各画像データに対して、画像データの撮影日時順に付与したシリアル番号を画像シリアル番号として、顔情報に関連付けさせる。その際、Ｓ１５０１のパラメータｎの値と、Ｓ１５０５で顔情報に対応付ける画像シリアル番号は必ずしも一致しなくてよい。例えば、あるコアが処理する画像シリアル番号が、４、８、９である場合に、Ｓ１５０１のパラメータｎとして１から順次パラメータを割り当てても良い。本実施形態では、Ｓ１５０１のパラメータｎは、コアごとに新たに割り振った値（つまり、画像シリアル番号とは一致しない値）を適用する。
【００７０】
Ｓ１５０６では、顔情報ナンバリング部１４０３は、検出した顔情報に対して、顔シリアル番号を対応付ける。本実施形態では、Ｓ１５０３で取得した複数の顔情報に対しソート処理を実行するため顔信頼度が高い顔情報から昇順で顔シリアル番号と紐付けられる。
【００７１】
Ｓ１５０７では、情報管理部１４０４は、Ｓ１５０３で取得した顔情報と、Ｓ１５０５で取得した各顔情報の画像シリアル番号、Ｓ１５０６で取得した各顔情報の顔シリアル番号を含む顔関連情報を保管する。本実施形態では、顔関連情報はＲＡＭ１０３に保管される。ＲＡＭ１０３の記憶可能領域が少なくなった場合、その保管先をＨＤＤ１０４もしくはウェブサーバ上に移して、保管する。また、保管されている顔関連情報の対応表となるデータテーブルもＲＡＭ１０３に保管する。
【００７２】
Ｓ１５０４〜Ｓ１５０７の処理中でデータテーブル（例えば、図１２（Ａ））の内容は更新される。なお、本実施形態では、更新対象としてソート前の図１２（Ａ）を記載したが、ソート後のデータテーブルが更新されても構わない。
【００７３】
Ｓ１５０７ａでは、検出顔数（Ｍ）の処理が終了したかどうか、即ち、ｍ＝Ｍとなったかどうかを調べ、ｍ≠Ｍであれば、処理はＳ１５０４に戻り、ｍ＝Ｍとなれば、処理はＳ１５０７ｂに進む。なお、図示してはいないが、画像データから顔が検出されなかった場合は、即ち、Ｍ＝０であれば、Ｓ１５０４〜Ｓ１５０７の処理は実行されず、処理は次の画像データに移る。例えば、画像シリアル番号「０」の画像データから２つの顔情報が検出された場合、Ｓ１５０４−Ｓ１５０７の処理が２回実行される。結果として、図１２（Ａ）の「画像シリアル番号：０−顔シリアル番号０」と「画像シリアル番号：０−顔シリアル番号１」が保存される。
【００７４】
Ｓ１５０７ｂでは、割当てられた画像データ数（Ｎ）の画像データに関する処理が終了したかどうか、即ち、ｎ＝Ｎとなったかどうかを調べ、ｎ≠Ｎであれば、処理はＳ１５０１に戻り、ｎ＝Ｎであれば、処理は終了する。
【００７５】
なお、本実施形態ではデータテーブルをスレッド間で共有するが、データテーブルは各スレッドで個別のものを作成しても良い。個別のデータテーブルを持つ場合は、テーブルの統合処理を必要とする。データテーブルを共有する場合は、スレッド間でデータ書込みのタイミングが重なる、アクセス衝突を回避しなくてはならない。テーブルの統合処理も同様に、各スレッドでの書込みタイミングと統合時の読込みタイミングのずれによる結果の不一致を防がなくてはならない。そのような衝突や結果の不一致を防ぐ方法として、スレッド間でのロック処理を実行する。例えば。スレッド間で共有するデータがある場合、あるスレッドが書込む前に書込み権限をロックする。他のスレッドは書込み権限がロックされていれば、書込みを行わず待機する。
【００７６】
ロックによってスレッド間のアクセス衝突は発生しないが、スレッド同士でロックのタイミングが揃った場合にはデッドロックが生じる。デッドロックを防止するにはロック実行の順序を制御する制御層を導入すれば良い。スレッド同士でロックのタイミングが揃ってしまった場合でも、制御層が実行順序を整列するため、デッドロックは発生しない。また、各コアが図１３の処理を実行することで、結果として、図１２（Ａ）のデータテーブルが生成される。
【００７７】
図１４は人物情報解析部２０５が実行する個人認識処理を示すフローチャートである。本実施形態では、マルチスレッドで動作する顔検出と個人認識処理が並列処理で実行される。個人認識処理自体は複数のコアで実行しない。図１４は１つのスレッドが実行する個人認識処理を示している。
【００７８】
Ｓ１５０８では、順序制御部１４０５は、情報管理部１４０４が管理するデータテーブル（例えば、図１２（Ａ））と顔関連情報群に更新情報があるかどうかを調べる。ここで、情報管理部１４０４が管理するデータテーブルと顔関連情報群に更新情報がない限り、処理はＳ１５０９に進み、処理を待機する。本実施形態では待機条件を１０秒間とし、１０秒が経過した後、待機を終了し、Ｓ１５０８に戻る。なお、待機終了条件は指定の秒数でも良いし、ＲＡＭ１０３やＨＤＤ１０４に格納された、もしくはウェブサーバ上のデータ更新情報をトリガとして待機を終了させても良い。これに対して、Ｓ１５０８で、順序制御部１４０５は、データテーブルおよび顔関連情報群の更新があると判断された場合、処理はＳ１５１０に進む。
【００７９】
Ｓ１５１０では、順序制御部１４０５は、情報管理部１４０４が保管しているデータテーブル（例えば、図１２（Ａ））を読込み、画像シリアル番号を基準に昇順ソートする。本実施形態では、画像シリアル番号はユーザがアルバム作成用に入力した画像グループの撮影日時順に対応している。昇順ソートによって、各顔関連情報は顔が写っていた画像データの撮影日時が古い順に整列する。
【００８０】
Ｓ１５１１では、順序制御部１４０５は、情報管理部１４０４が保管しているデータテーブル（例えば、図１２（Ａ））を読込み、同一画像シリアル番号内で顔シリアル番号を用いた昇順ソートを行う。なお、ソート基準は昇順でなくても良い。
【００８１】
Ｓ１５１２では、順序制御部１４０５は、データテーブルに個人認識実行順番の情報を追加する。追加した個人認識実行順番は、Ｓ１５１３においてＳ１５１４の個人認識を実行するかどうかを判断するのに使用される。例えば、Ｓ１５０９で更新が確認されたデータテーブルの状態が図１２（Ａ）に示した状態であったとする。Ｓ１５１０とＳ１５１１のソート処理を実行後、Ｓ１５１２では個人認識実行順番を追加して、図１２（Ｂ）に示したようなデータテーブルが取得できる。このように個人認識実行順番は画像シリアル番号の昇順、および顔シリアル番号のソート結果に従って決定される。
【００８２】
なお、図１２（Ａ）に示す例では画像シリアル番号３の顔関連情報は欠番であるため、図１２（Ｂ）に示すように個人認識実行順番の対象とみなさない。
【００８３】
ここで説明のために、Ｓ１５０９にいて確認された更新が図１２（Ｃ）に示すようなデータテーブルの状態であったとする。この場合、図１２（Ｃ）のデータテーブルは、Ｓ１５１０とＳ１５１１によりソート処理が実行される。ただし、図１２（Ｃ）に示す例では、画像シリアル番号６である画像データの顔検出結果がデータテーブルに記載されていない。マルチスレッド処理では、各コアに均等に画像データを分配していたとしてもそれぞれの処理終了時間に差異が発生する。
【００８４】
図１２（Ｃ）の例は、コアＡにシリアル番号０、３、６、９……、コアＢにシリアル番号１、４、７、１０……、コアＣにシリアル番号２、５、８、１１……である画像データを分配して、各コアで顔検出処理フローを実行したものとする。コアＡ、Ｂ、Ｃはシリアル番号０、１、２の画像データにおける顔検出処理を同時に終了することはなく、各画像データに含まれるコンテンツの違いや、実行当時の端末の状態によって実行終了タイミングは差異が生じる。各スレッドでの実行時間に再現性はなく、処理終了時間を予測することは難しい。図１２（Ｃ）ではコアＢが、コアＡ、Ｃよりも早く画像データを処理しているため、画像シリアル番号６、８である画像データの顔検出結果を得る前に画像シリアル番号７に対応した画像データの顔情報が保管されている。
【００８５】
図１２（Ｄ）に示すデータテーブルは、図１２（Ｃ）に示したデータテーブルに対するソート処理と個人認識実行順番の追加処理で取得できる。図１２（Ｄ）に示す例では、画像シリアル番号７である画像データから取得した顔関連情報については、個人認識実行順番を決定していない。本実施形態では、画像シリアル番号および顔シリアル番号の昇順ソート結果に従って個人認識実行順番を決定するものである。図１２（Ｃ）に示した状態からは、画像シリアル番号６である画像データに写る顔の数は分からない。このため、Ｓ１５１２では、画像シリアル番号７である画像データから取得した顔関連情報は次のテーブル更新まで個人認識実行順番を未決定として終了する。
【００８６】
Ｓ１５１３では、順序制御部１４０５は、個人認識実行順番から個人認識情報取得部１４０６で個人認識を実行すべき顔関連情報が存在するかを判定する。この判定は、具体的には、データテーブル上で画像シリアル番号に抜けがないか否かを判定することで実現される。データテーブルが、例えば、図１２（Ｂ）に示す状態であるとき、画像シリアル番号１−５までが連続して揃っている。そのため、図１２（Ｂ）に対応する全ての顔関連情報が、個人認識実行順番に従って、個人認識を実行可能であると判定される。つまり、個人認識を実行すべき顔関連情報が存在すると判定される。一方、図１２（Ｄ）に示す状態であるとき、画像シリアル番号１−５までが連続して揃っている。そのため、図１２（Ｄ）に対応する画像シリアル番号１−５に対応する顔関連情報が、個人認識実行順番に従って、個人認識を実行可能であると判定される。その後、例えば、画像シリアル番号８の顔検出が終わったとしても画像シリアル番号６の顔検出が未処理であり、画像シリアル番号に抜けが存在する。そのため、画像シリアル番号６の顔検出が処理されるまで、順序制御部１４０５は、個人認識を実行すべき顔関連情報が存在しないと判定する（Ｓ１５１３−Ｎｏ）。Ｓ１５１２での順番の定義と、Ｓ１５１３での実行可否判断によって、個人認識の実行順番の再現性が高まる。なお、Ｓ１５１３で個人認識を実行して良い顔情報がないと判断されたなら、処理はＳ１５０９に戻って情報の更新を待機する。
【００８７】
Ｓ１５１４では、個人認識情報取得部１４０６は、実行可能な顔関連情報に対して個人認識を実行する。Ｓ１５１４では、顔辞書に対して実行可能な顔関連情報との類似度算出を行う。ここで、その類似度が閾値を超えていれば、類似していた登録済み個人ＩＤと同一の個人ＩＤを顔関連情報に追加し、その類似度が閾値を下回っていた場合は、辞書には未登録である新規の個人ＩＤを顔関連情報に追加する。そして、顔関連情報は、その情報の一部もしくは全てを顔辞書に保存し、顔辞書を更新する。
【００８８】
以上説明したように、この実施形態では、顔検出処理がマルチスレッドで処理された場合でもＳ１５１４で個人認識処理が実行される顔関連情報の順番は、顔検出に使用される画像データが同じである限り、いつでも同じになる。その結果、顔辞書や各顔関連情報に対応づけられる個人ＩＤや最終的にアルバム作成結果の再現性は高まる。つまり、複数の画像データそれぞれの顔検出をマルチスレッド処理で複数回実行する場合、前回の検出処理で検出された顔情報に対する個人認識処理の実行順序と、再度の検出処理で検出された顔情報に対する個人認識処理の実行順序は同じである。
【００８９】
なお、本実施形態は、個人認識処理と顔検出処理が並列実行される。本実施形態のように、実行終了した画像データから検出された顔関連情報について逐次個人認識を実行すれば実行時間を短縮できるという利点がある。また、全ての画像データに対して顔検出を実行後に、顔関連情報をソートして個人認識処理を実行することもできる。
【００９０】
画像解析部２０４及び人物情報解析部２０５は、Ｓ４０２〜Ｓ４０４で取得した画像解析情報を、図５に示すように各画像データを識別するＩＤ毎に区別して、ＲＡＭ１０３等の記憶領域に記憶する。例えば、図５に示すように、Ｓ４０２で取得された撮影日時情報とピント判別結果、Ｓ４０３で検出された顔画像の数と位置情報とがテーブル形式で記憶される。尚、顔画像の位置情報は、Ｓ４０４で取得された個人ＩＤ毎に区別して記憶される。
【００９１】
Ｓ４０５では、アルバム作成条件指定部２０１で指定されたＨＤＤ１０４の画像データ群の全画像データに対してＳ４０１〜Ｓ４０４の処理が終了したか否かが判定される。ここで、終了していないと判定された場合、Ｓ４０１からの処理を繰り返す。終了していると判定された場合、処理はＳ４０６に進む。
【００９２】
Ｓ４０６では、画像分類部２０６は、シーン分割を実行する。シーン分割とは、条件指定部２０１で指定された画像データ群を複数の画像グループに分割して管理することを指す。画像分類部２０６は、Ｓ４０２で取得済みの撮影日時情報から算出した画像データ間の時間差に基づいて、画像データ群を複数のグループに分割する。本実施形態では、例えば、画像データ間に撮影していない日が存在する場合、その部分を基準として分割が行われる。分割は、他の基準により行われても良い。例えば、撮影日が連続する場合にも分割が行われる場合、時間差が１６時間以上空いていれば、その部分を基準として分割が行われる。また、１６時間未満の場合は、連続する各日の最初の撮影から最後の撮影までの時間差が４時間未満であれば、各１日の画像データ群が１つの画像グループとして分割される。各日の最初の撮影から最後の撮影までの時間差が４時間以上であり、かつ、連続する各日の撮影枚数が５０枚未満である場合、各１日の画像データ群が１つの画像グループとして分割される。一方、５０枚以上なら分割は行われない。図６（Ａ）は、上記のシーン分割方法で画像データ群がシーン分割された結果の一例を示す図である。図６（Ａ）では、撮像画像データ群を８個の画像グループに分割している。図６（Ａ）において矢印はグループの境界を示している。なお、上記のシーン分割方法の説明において使用した撮像日時の差に対する閾値や撮像画像データの数に対する閾値は一例であり、これらの値に限るものではない。
【００９３】
Ｓ４０７では、画像分類部２０６は、シーン分類を実行する。具体的には、画像分類部２０６は、Ｓ４０６でシーン分割された画像グループをシーンの種類毎に得点化して、一番得点が高いシーンに、判定対象のグループを分類する。本実施形態では、画像グループは、旅行、日常、セレモニーのいずれかのシーンの種類に分類される。ここで、図４の自動レイアウト処理部が開始される前に、予め、ユーザは、旅行、日常、セレモニーのシーンであると判断した複数の画像データをそれぞれ集めて指定している。
【００９４】
ここで、予め行われるユーザによる指定について説明する。
【００９５】
例えば、アルバム作成条件指定部２０１は、不図示のユーザインタフェース画面上で、ユーザが旅行シーンであると判断した複数の画像データの指定を受け付ける。そして、画像解析部２０４は、それらの画像データについて、特徴量を取得する。ここで、取得される特徴量は、例えば、撮影期間、撮影枚数、撮影人数である。撮影期間は、複数の画像データの最初の撮影から最後の撮影までの時間差である。撮影枚数は、複数の画像データの枚数である。撮影人数は、複数の画像データにおいて撮影されている顔の数である。その結果、ユーザが旅行シーンであると判断した複数の画像データから成る１画像データ群について、撮影期間、撮影枚数、撮影人数の特徴量が取得される。なお、特徴量として、これらの１つのみが用いられても良いし、他の特徴量が用いられても良い。
【００９６】
そして、画像解析部２０４は、上記のような撮影期間、撮影枚数、撮影人数の特徴量の取得を、ユーザがさらに指定した他の画像データ群についても行う。そして、画像解析部２０４は、複数の画像データ群から取得された特徴量に基づいて、撮影期間の平均値と標準偏差、撮影枚数の平均値と標準偏差、撮影人数の平均値と標準偏差を求める。図７は、上記の求められた、シーンの複数種類（旅行、日常、セレモニー）のそれぞれに対応する各平均値と標準偏差を示しており、画像解析部２０４は、これらの値をＲＯＭ１０２等の記憶領域に予め記憶しておく。または、アルバム作成アプリケーションのプログラムに予め組み込まれるようにしても良い。
【００９７】
図７に示した各平均値と標準偏差が、シーンの複数種類のそれぞれに対応する画像データを選択する際の選択基準（画像データの評価基準）に反映される。その詳細は後述する。
【００９８】
再び、図４に戻って、続きの処理を説明する。アルバム作成アプリケーションが起動された後、ユーザがパスボックス３０２で指定した画像データ群がＳ４０６でシーン分割された各グループに対して、画像分類部２０６は、撮影期間、撮影枚数、撮影人数の各特徴量の得点を算出する。画像分類部２０６は、各グループの撮影期間、撮影枚数、撮影人数の得点、及びそれらの平均得点を、図７に示すシーン毎の平均値と標準偏差を用いて式（１）及び（２）より算出する。即ち、
得点    ＝５０−｜１０×（平均値−特徴量）／標準偏差｜……（１）
平均得点＝（撮影期間の得点＋撮影枚数の得点＋撮影人数の得点）／特徴量項目数
……（２）
である。
【００９９】
算出の結果、各分割分の画像データに対して、旅行、日常、セレモニーのシーン毎の平均得点が算出される。そして、画像分類部２０６は、各グループの画像データを、上記のうち最高得点に対応するシーンに分類する。
【０１００】
図７に示したシーンの複数種類のそれぞれに対応する各平均値と標準偏差が、シーンの複数種類のそれぞれに対応する画像データを選択する際の選択基準（画像データの評価基準である（式（１））に反映される。そのため、シーンの種類に対して適切な選択基準により画像データを選択することができる。
【０１０１】
ここで、同点のシーンとなった場合には、予め定められたシーンの優先順位に従って分類する。例えば、本実施形態では、日常＞セレモニー＞旅行の優先順位が定められており、日常シーンの優先度が最も高い。例えば、図６（Ａ）のシーン分割された後の画像データ群５は、撮影期間が３６時間、撮影枚数が３００枚、撮影人数が１．７人であった。上記の式（１）及び（２）により算出された旅行シーンの平均得点は４５．３２、日常シーンの平均得点は１８．３８、セレモニーシーンの平均得点は−２９．９２となる。従って、画像データ群５は、旅行シーンに分類される。画像分類部２０６は、分類されたシーンに対して、識別可能なようにシーンＩＤを付与して管理する。
【０１０２】
Ｓ４０８では、Ｓ４０６の分割により得られた全グループに対してＳ４０７のシーン分類が終了したか否かが判定される。ここで、終了していないと判定された場合、Ｓ４０７からの処理を繰り返す。終了していると判定された場合、処理はＳ４０９に進む。
【０１０３】
Ｓ４０９では、画像得点部２０８は、主人公設定を実行する。主人公設定は、ユーザが指定した画像データ群に対して実行され、自動と手動の２種類の設定方法のいずれかにより行われる。画像得点部２０８は、Ｓ４０４で実行された個人認識結果と、Ｓ４０６で実行されたシーン分割の結果から、画像データ群に登場する各個人ＩＤの回数、各シーンに登場する各個人ＩＤ回数、各個人ＩＤが登場するシーン回数等を取得可能である。画像得点部２０８は、それらの情報から、ユーザから指定を受け付けることなく自動で主人公を設定する。本実施形態では、画像得点部２０８は、シーンが複数ある場合、複数のシーンでの登場回数が多い個人ＩＤを主人公ＩＤと設定し、単一のシーンのみである場合、単一シーンにおいて登場回数が多い個人ＩＤを主人公ＩＤと設定する。
【０１０４】
また、ユーザが主人公指定アイコン３０４を指定している場合、主人公情報入力部２０７は、その指定されている個人ＩＤを画像得点部２０８に伝える。ユーザにより個人ＩＤが指定されている場合、画像得点部２０８は、上記の自動で設定された主人公ＩＤによらず、ユーザにより指定された個人ＩＤを主人公ＩＤとして設定する。この設定を手動設定と呼ぶ。
【０１０５】
手動設定は、一度アルバム作成が終了した後に、ユーザ自身が編集画面で設定できる。編集画面でのユーザの手間を簡易化するため、個人ＩＤを代表する顔画像をユーザに提示する等の工夫が行える。この時、個人ＩＤを代表する顔画像を決定するために画像シリアル番号や顔シリアル番号を用いても良い。例えば、顔シリアル番号は顔検出信頼度から設定している。顔検出信頼度の高い顔を代表する顔画像とすれば、ブレボケの少ない顔画像を編集画面に表示できる。
【０１０６】
Ｓ４１０では、画像得点部２０８は、得点化（画像データの評価）を実行する。得点化とは、画像データ毎に後述の観点で評価した得点を付与する（スコアリング）ことであり、後述の、レイアウトに用いられるレイアウト対象の画像データの選択時に参照される。図１０は、画像データのレイアウトに使うテンプレート群を示す図である。テンプレート群に含まれている複数のテンプレートのそれぞれが、各見開きに対応している。テンプレート１００１は１枚のテンプレートであり、スロット１００２はメインスロットを示し、スロット１００３と１００４はサブスロットを示す。メインスロット１００２は、テンプレート１００１内でメインとなるスロット（画像データをレイアウトする枠）であり、サブスロット１００３と１００４よりもサイズが大きい。画像得点部２０８は、各画像データに対して、メインスロット用の得点とサブスロット用の得点の両方を付与する。
【０１０７】
図８（Ａ）は、得点化軸の概念を示す図である。図８（Ａ）は、Ｓ４０７のシーン分類により分類される旅行シーン、日常シーン、セレモニーシーンについて示している。一般的に、旅行シーン、日常シーン、セレモニーシーンではそれぞれ好ましいと考えられる写真の観点は異なる。旅行シーンにおける最も好まれる構図とは、例えば、旅先での象徴的な景色と旅行の主役となる人物が一緒に写っている写真である。また、セレモニーシーンでは、例えば、新郎新婦が２人で寄り添う構図の写真（２人の距離が近い写真）が好まれる。
【０１０８】
また、各シーンにおいて好ましいと考えられる写真は１種類であるとは限らない。旅行シーンは上述の人物及び風景写真以外にも、顔がアップや横顔である写真、旅行に同伴した人物や出会った人との記念写真や、旅先での食べ物や建物、風景の写真なども好ましいと考えられる場合がある。
【０１０９】
このように、シーンごとに好ましい写真の条件は異なり、またシーン内においても好ましい写真の条件は１つ以上か複数存在する。本実施形態では、画像データについてメインスロット用の得点とサブスロット用の得点との２パターンの得点を算出するために、図８（Ａ）に示すように、各シーン内において好ましい写真の条件を２つ設定する。
【０１１０】
図４の自動レイアウト処理部の実行が開始される前に、予め、ユーザは、図８（Ａ）に示す各シーンのメインスロット向きとサブスロット向きの特徴に適合すると判断した複数の画像データを集めて指定している。
【０１１１】
ここで、予め行われるユーザによる指定について説明する。
【０１１２】
例えば、アルバム作成条件指定部２０１は、不図示のユーザインタフェース画面上でユーザが旅行シーンのメインスロット向き（又は、サブスロット向き）であると判断した複数の画像データの指定を受け付ける。人物情報解析部２０５は、指定された各画像データの顔の数、顔の位置、顔のサイズの特徴量を取得する。その結果、ユーザが例えば旅行シーンのメインスロット向き（又は、サブスロット向き）であると判断した複数の画像データそれぞれについて、顔数、顔の位置、顔サイズの特徴量が取得される。そして、人物情報解析部２０５は、顔数の平均値と標準偏差、顔の位置の平均値と標準偏差、顔サイズの平均値と標準偏差を求める。人物情報解析部２０５は、各シーン各スロット種類（メインスロットとサブスロット）について、上記のように、各特徴量の統計値として平均値と標準偏差を求める。人物情報解析部２０５は、これらの値をＲＯＭ１０２等の記憶領域に予め記憶しておく。または、アルバム作成アプリケーションのプログラムに予め組み込まれるようにしても良い。
【０１１３】
画像得点部２０８は、評価対象である各画像データがどのシーンに属するのかの情報をＳ４０７のシーン分類の結果から取得可能である。画像得点部２０８は、注目画像データのシーンに対応する予め求めておいた上記の平均値と標準偏差、および注目画像データの主人公ＩＤの顔数、顔位置、顔サイズの各特徴量を用いて、式（３）及び（４）により、評価対象の画像データの平均得点を算出する。即ち、
得点    ＝  ５０−｜１０×（平均値−特徴量）／標準偏差｜  ……（３）
平均得点＝  （顔数の得点＋顔位置の得点＋顔サイズの得点）／特徴量項目数
……（４）
である。
【０１１４】
画像データの評価基準である式（３）では、図７に示したシーンの複数種類のそれぞれに対応する各平均値と標準偏差に従って、各画像データに対応するシーンの種類に対して求められた平均値、標準偏差が適用される。そのため、シーンの種類に対して適切な選択基準（画像データの評価基準）により画像データを選択することができる。
【０１１５】
画像得点部２０８は、上記の得点化を、メインスロット用とサブスロット用の両方について実行する。ここで、アルバムに用いる画像データはピントが合っている方が好ましいので、図５に示すピントの特徴量が○である画像ＩＤの画像データに対しては所定の得点を加算するようにしても良い。図８（Ｂ）は、上記の得点化による得点結果の一例を示しており、各画像ＩＤに対して、メインスロットとサブスロットについて得点化されている。
【０１１６】
つまり、本実施形態では、各シーンについてメインスロットとサブスロットに適する条件が図８（Ａ）に示すように定められており、予め、ユーザは、それらに適するであろうと判断した画像データを指定している。人物情報解析部２０５は、そのユーザから指定された画像データについて、顔数、顔位置、顔サイズの特徴量を取得し、特徴量ごとに平均値と標準偏差を求めておく。そして、アルバム作成アプリケーションの起動後、図４の自動レイアウト処理が開始されると、自動レイアウト処理対象の各画像データ（シーン分類済）が、どの程度、メインスロット向きである等のユーザ判断基準に近いかを示す得点化（類似度）が行われる。例えば、図８（Ｂ）では、画像ＩＤ１は、メインスロット用として２０点が付与され、画像ＩＤ２は、メインスロット用として４５点が付与されている。これは、つまり、メインスロット用としては、画像ＩＤ２の方がユーザの判断基準により近いということを表している。
【０１１７】
ここで、画像得点部２０８の詳細な構成について説明する。
【０１１８】
図１５は画像得点部２０８の詳細な構成を示すブロック図である。
【０１１９】
図１５によれば、画像群取得部１１０１は、ユーザから入力された画像データ群を取得する。画像群取得部１１０１は、画像データ群取得時にＳ４０６でシーン分割されたシーン分割情報も取得する。
【０１２０】
色解析情報取得部１１０２は、Ｓ４０２で取得された画像特徴量を取得する。また、色解析情報取得部１１０２は、画像データの撮影日時情報、画像データの色合いやエッジ、ピント量などの解析情報も取得する。人物関連解析情報取得部１１０３は、Ｓ４０３での顔検出とＳ４０４での個人認識の処理結果を取得する。また、人物関連解析情報取得部１１０３は、Ｓ４０９での主人公設定の情報も取得する。
【０１２１】
画像解析情報格納部１１０４は、色解析情報取得部１１０２と人物関連解析情報取得部１１０３で取得した各種画像解析情報を包括して管理する。また、画像解析情報格納部１１０４は、色解析情報取得部１１０２と人物関連解析情報取得部１１０３から算出・推量可能な副次的な特徴も管理する。例えば、画像解析情報格納部１１０４は、Ｓ４０３で得られる各顔の位置だけでなく、そこから推量可能な各顔同士の距離も管理する。
【０１２２】
なお、画像解析情報格納部１１０４で管理される画像解析情報は、上述の情報に限定されるものではない。例えば、色解析情報取得部１１０２と人物関連解析情報取得部１１０３で取得した情報だけでない副次的情報が管理されても良い。また、画像解析情報格納部１１０４は、色解析情報取得部１１０２または人物関連解析情報取得部１１０３の一方のみを使用する場合もある。
【０１２３】
シーン格納部１１０５は、撮影シーンの各種類と各撮影シーンであると判断するためのシーン分類方法を格納する。本実施形態では、旅行シーン、日常シーン、セレモニーシーンの３種類と、各シーンを判別するためのシーン分類方法が格納される。例えば、シーン格納部１１０５は、図７や図８（Ａ）に示す情報を格納する。
【０１２４】
シーン判定部１１０６は、画像解析情報格納部１１０４で管理される画像解析情報から画像データの撮影シーンを判定する。シーン判定部１１０６は、Ｓ４０７でのシーン分類に相当する処理結果を取得する。本実施形態では、各画像データは、画像解析情報に基づいて、旅行シーン、日常シーン、セレモニーシーンに分類される。シーン判定部１１０６でのシーン分類処理によって、各画像データの撮影シーンが決定される。
【０１２５】
パラメータ設定部１１０７では、決定した撮影シーンに基づいて得点化に用いるパラメータを設定する。本実施形態では、そのパラメータは、例えば、所定のシーンにおける顔数／顔の位置／顔サイズそれぞれについての平均値および標準偏差である。パラメータは予め決定されたパラメータが使用されても良いし、ユーザの経験則によりまたはシステム実行時にユーザにより設定されても良い。
【０１２６】
得点化部１１０８、１１０９、１１１０には、パラメータ設定部１１０７からそれぞれ別々のパラメータが与えられる。各得点化部は、パラメータ設定部１１０７から設定されたパラメータと画像解析情報格納部１１０４で取得される画像解析情報とから、画像データを得点化する（スコアリングする）。本実施形態においては、得点化部１１０８、１１０９、１１１０で取得される得点のいずれかが、メインスロット１００２についての得点、サブスロット１００３および１００４の得点に対応する。図１５では得点化部の個数は３個であるが、本発明はこの数に限定されるものではない。例えば、アルバム作成に要求される得点化軸が３つ以上であれば、３つ以上の得点化部により得点化を実行する。また、３つ未満の得点化軸で十分である場合は３つ未満の得点化部により得点化を実行する。
【０１２７】
以上説明したような構成の画像得点部２０８により、各画像データの得点を算出することで、画像データの撮影シーンに応じた得点化軸で得点化を実行することができる。撮影シーン間で得点化軸およびパラメータの決め方が一律とならないので、撮影シーンやスロットの種類ごとに最適な構図や人数構成の画像データを取得することができる。 
図１６は画像得点部２０８が実行するシーン分類後の得点化処理を示すフローチャートである。
【０１２８】
Ｓ１２０１では、画像解析情報格納部１１０４は、色解析情報取得部１１０２及び人物関連解析情報取得部１１０３から画像解析情報を取得して設定する。Ｓ１２０２では、シーン判定部１１０６は、シーン格納部１１０５で用意されていたシーン分類方法に基づいて分類された画像データの撮影シーンを設定する。
【０１２９】
Ｓ１２０３では、設定された画像データの撮影シーンに基づいて、撮影シーンにおける複数の得点化軸を取得するためのループ処理が実行される。本実施形態では、得点化軸とは、例えば、メインスロットやサブスロットについての得点化である。Ｓ１２０４では、パラメータ設定部１１０７は、設定された画像データの撮影シーンにおいて、各得点化軸において要求されるパラメータを設定する。Ｓ１２０５では、得点化部１１０８、１１０９、１１１０は、設定されたパラメータに従って得点化を行う。本実施形態では、得点化は、上述した式（３）や（４）により算出される。
【０１３０】
Ｓ１２０４で設定されるｎ個のパラメータには、判定閾値および判定重み情報が関連付けられている。本実施形態では、ｎ個のパラメータとは、例えば、上述のメインスロットについての顔数／顔の位置／顔サイズである。判定閾値及び判定重み情報は、各得点化軸ｅ（ｉ，ｊ）における各パラメータに対応したｎ個分が確保される。ここで、ｉは、Ｓ１２０２で設定された画像データの撮影シーンのＩＤに対応する。また、ｊは、撮影シーンにおける複数の得点化軸に対応する。
【０１３１】
ここで、判定閾値と判定重み情報について説明する。
【０１３２】
Ｓ１２０１において取得した画像解析情報と判定閾値Ｔｈ｛ｎ，ｅ（ｉ，ｊ）｝とを比較する。ここで、画像解析情報の値が判定閾値Ｔｈ｛ｎ，ｅ（ｉ，ｊ）｝を上回っていれば、判定重み情報の値Ｗ｛ｎ，ｅ（ｉ，ｊ）｝を式（４）の該当パラメータ（例えば、顔数の得点）に反映する。式（４）の各パラメータに判定重み情報が反映された値が最終的な得点となる。
【０１３３】
このように、式（３）や（４）により得点が算出されるばかりでなく、各得点軸における最終的な得点に、各パラメータが持つ判定重み情報の値が反映されるようにしても良い。上記のような判定閾値と判定重み情報により、得点化軸によっては重みが０であるパラメータ（使用しないパラメータ、例えば顔のサイズを使用しない）や、どの撮影シーンや得点化軸であっても共通で使用するパラメータなどを柔軟に設定することができる。
【０１３４】
本実施形態では、図８（Ｂ）に示すようなメインスロットについての得点、サブスロットについての得点が、各画像データに対して付与される。各得点化軸における得点化により、ユーザ所望の条件に合致した画像データが、他の画像データとどれほどの優劣を持っているかが定量的に判定可能となる。また、異なる得点化軸間（例えば、メインスロットとサブスロット間）であっても優劣の評価が行えるように、得点の正規化を行うようにしても良い。
【０１３５】
再び図４を参照して残りの処理について説明する。
【０１３６】
Ｓ４１１では、画像得点部２０８は、ユーザ指定の画像データ群の全て画像データに対してＳ４１０の画像得点化が終了したか否かを判定する。終了していないと判定された場合、Ｓ４１０からの処理を繰り返す。終了していると判定された場合、Ｓ４１２に進む。
【０１３７】
Ｓ４１２では、見開き割当部２１０は、Ｓ４０６でのシーン分割の分割数が見開き数入力部２０９から入力されるアルバムの見開き数と同じであるか否かを判定する。同じでないと判定された場合、Ｓ４１３に進む。同じであると判定された場合、Ｓ４１６に進む。例えば、図６（Ａ）に示すようにシーン分割数が８であり、見開き数入力部２０９の入力数が８である場合、Ｓ４１６に進む。
【０１３８】
Ｓ４１３では、見開き割当部２１０は、Ｓ４０６でのシーン分割の分割数が見開き数入力部２０９から入力される見開き数より少ないか否かを判定する。少なくない（多い）と判定された場合、Ｓ４１５に進む。少ないと判定された場合、Ｓ４１４に進む。図６（Ａ）に示すようにシーン分割数が８であり、見開き数入力部２０９の入力数が１０である場合、Ｓ４１４に進む。
【０１３９】
Ｓ４１４では、見開き割当部２１０は、サブシーン分割を実行する。サブシーン分割とは、シーン分割数＜アルバムの見開き数の場合に、分割されたシーンを更に細分割することを表す。図６（Ａ）のシーン分割数８に対して指定されたアルバムの見開き数が１０の場合で説明する。図６（Ｂ）は、図６（Ａ）をサブシーン分割した結果を示す。破線矢印の箇所で分割したことで、分割数を１０にしている。
【０１４０】
分割の基準について説明する。図６（Ａ）の分割の中で、画像データ数が多い分割箇所が検索される。ここでは、分割数を８から１０に２箇所増やすために、画像データ数が多い２箇所を決定する。図６（Ａ）では、多い方から画像グループ５、次に、画像グループ１と画像グループ２である。画像グループ１と画像グループ２は同じ枚数だが、画像グループ２の方が最初の画像から最後の画像の時間差が大きいので、画像グループ２を分割対象とし、画像グループ５と２をそれぞれ分割する。
【０１４１】
まず、画像グループ２の分割を説明する。画像グループ２には画像データ数の山が２つあり、この２つは撮影日が違うので、その部分に対応する図６（Ｂ）の破線矢印の箇所で分割する。次に、画像グループ５の分割を説明する。画像グループ５には画像データ数の山が３つあり、３日連続である。撮影日が変わる箇所が２箇所あるが、分割後の枚数差が小さくなるように、図６（Ｂ）の破線矢印の箇所で分割する。以上のように、分割数を８から１０にする。ここでは、撮影日の異なる箇所で分割したが、画像データ数が多い箇所が単一日である場合、単一日の中で時間差が最大の箇所で分割するようにしても良い。
【０１４２】
Ｓ４１５では、見開き割当部２１０は、シーン統合を実行する。シーン統合とは、シーン分割数＞アルバムの見開き数の場合、分割されたシーンを統合することを表す。図６（Ｃ）は、図６（Ａ）をシーン統合した結果を示す。破線の箇所を統合したことで、分割数を６にしている。
【０１４３】
統合の基準について説明する。図６（Ａ）の分割の中で、画像データ数が少ない分割箇所が検索される。ここでは、分割数を８から６に２箇所減らすために、画像データ数が少ない２箇所を決定する。図６（Ａ）では、少ない方から画像グループ８、画像グループ３、画像グループ７である。画像グループ３と画像グループ７は同じ画像データ数である。但し、画像グループ７に隣接する画像グループ８が統合対象であるので、画像グループ３を統合対象とする。結果、画像グループ８と画像グループ３それぞれの統合が行われる。
【０１４４】
まず、画像グループ３の統合を説明する。画像グループ３の前後の画像グループ２と４との時間差を比較すると、画像グループ４との時間差の方が小さい。従って、図６（Ｃ）の破線箇所に示すように、画像グループ３を画像グループ４に統合する。次に、画像グループ８の統合を説明する。画像グループ８は、後続の画像グループがないので、図６（Ｃ）の破線箇所に示すように、前の画像グループ７と統合される。
【０１４５】
Ｓ４１６では、見開き割当部２１０は、見開き割当を実行する。Ｓ４１２〜Ｓ４１５によって、シーン分割数と指定見開き数は同じとなっている。見開き割当部２１０は、撮影日時順に先頭の分割から見開きの先頭に順に割り当てる。
【０１４６】
Ｓ４１７では、画像選択部２１１は、画像データの選択を実行する。以下、ある見開きに割り当てられた画像データ群の分割分から画像データを４枚選択する例を、図９を参照しながら説明する。
【０１４７】
図９（Ａ）に示すスタート〜エンドの区間は、見開きに割り当てられたグループ分の、最初の画像データの撮影日時から最後の画像データの撮影日時までの時間差（分割撮影期間）を示している。図９（Ｂ）を参照しながら、１枚目を選択する方法を説明する。テンプレートには、１枚のメインスロット１００２がある。従って、１枚目として、メインスロット用の画像データが対象グループから選択される。図９（Ｂ）に示す分割分の撮影期間に対応する複数の画像データのうち、Ｓ４１０で付与されたメインスロット用の得点が最高点の画像データが選択される。２枚目以降としては、サブスロット用の画像データが選択される。
【０１４８】
本実施形態では、画像グループ内の撮影期間の一部に集中しないように、画像データの選択が行われる。
【０１４９】
以下、本実施形態における、分割分の撮影期間を細分化する方法について説明する。図９（Ｃ）に示すように、分割分の撮影期間を２分割する。次に、図９（Ｄ）に示すように、１枚目が選ばれていない実線の撮影期間から２枚目の画像データが選択される。図９（Ｄ）の実線の撮影期間に対応する複数の画像データのうち、サブスロット用の得点が最高点の画像データが選択される。
【０１５０】
次に、図９（Ｅ）に示すように、図９（Ｄ）の各分割分の撮影期間を２分割する。そして、図９（Ｆ）に示すように、１枚目と２枚目が選ばれていない実線の撮影期間に対応する複数の画像データのうち、サブスロット用の得点が最高点の画像データが３枚目として選択される。
【０１５１】
画像データの選択対象の撮影期間に画像データが存在せず、そのため選択できない場合について、４枚目の選択を例として説明する。図９（Ｇ）は、まだ画像データが選択されていない斜線の撮影期間から４枚目を選択しようとする場合、この斜線の撮影期間には画像データが存在しない例を示す。この場合、図９（Ｈ）に示すように、各分割分の撮影期間を２分割する。次に、図９（Ｉ）に示すように、１〜３枚目が選ばれていない実線の撮影期間に対応する複数の画像データのうち、サブスロット用の最高点の画像データが４枚目として選択される。
【０１５２】
このようにメインスロットとサブスロットのように、異なる得点化軸によって得られた得点に基づいて画像データの選択を行うことで、レイアウトに選択される画像データにバリエーションを持たせることができる。つまり、異なる判断基準の画像データを選択することができるので、変化に富むアルバムを作成することができる。
【０１５３】
再び図４を参照して続きの処理を説明する。Ｓ４１８では、画像レイアウト部２１３は、画像レイアウトの決定を行う。以下、テンプレート入力部２１２が、指定されたテンプレート情報に従って、ある見開きに対して図１０の（ａ）〜（ｐ）を入力する例を説明する。
【０１５４】
ここでは、入力されたテンプレートのスロット数は一例として３と指定されている。また、図１０（ｑ）は、選択されている画像データ３枚を撮影日時順に並べた結果であり、画像の向きも示している。つまり、画像データ１００６は画像の向きが縦であり、撮影日時が一番古い。画像データ１００７は、画像の向きが横であり、撮影日時は２番目に古い。画像データ１００５は、画像の向きが縦であり、撮影日時は一番新しい。ここでは、画像データ１００５がメインスロット用であり、画像データ１００６と１００７がサブスロット用である。本実施形態では、テンプレートの左上に撮影日時のより古い画像データがレイアウトされ、右下に撮影日時のより新しい画像データがレイアウトされる。図１０（ｑ）では、メインスロット用の画像データ１００５は撮影日時が一番新しいので、図１０（ｉ）〜（ｌ）のテンプレートが候補となる。また、サブスロット用の古い方の画像データ１００６が縦画像であり、新しい方の画像データ１００７が横画像であるので、結果、図１０（ｉ）のテンプレートが、選択された３つの画像データに最も適したテンプレートとして決定され、レイアウトが決まる。
【０１５５】
このとき、仮に、図１０（ｉ）のテンプレートに対して、スロット数や各スロットの縦横、位置も合致しており、メインスロットの大きさが図１０（ｉ）よりも大きい、図１７に示すテンプレートが検索されたとする。つまり、選択された画像データ同士の撮影日時の順序や縦横位置に基づいて、なお、複数のテンプレート候補が存在した場合、本実施形態では、各画像データの得点差からテンプレートを選定する。例えば、メインスロットの画像データの得点が、複数のサブスロットの画像データの平均得点よりも所定の閾値を超えて大きい場合、メインスロットがより大きい図１７に示すテンプレートが選択される。一方、閾値を超えていない場合、図１０（ｉ）のテンプレートが選択される。上記は、メインスロットについて他のテンプレートが検索された場合を説明したが、サブスロットについて同様に他のテンプレートが検索された場合、他のスロットの平均得点と比較するようにしても良い。
【０１５６】
Ｓ４１８では、どの画像データをどのテンプレートのどのスロットにレイアウトするかが決定される。
【０１５７】
Ｓ４１９では、画像補正部２１５は、画像補正を実行する。画像補正部２１５は、画像補正条件入力部２１４から画像補正ＯＮが入力された場合、画像補正を実行する。画像補正として、例えば、覆い焼き補正、赤目補正、コントラスト補正が実行される。画像補正部２１５は、画像補正条件入力部２１４から画像補正ＯＦＦが入力された場合、画像補正を実行しない。画像補正は、例えば、短辺１２００画素で、ｓＲＧＢの色空間にサイズが変換された画像データに対しても実行可能である。
【０１５８】
Ｓ４２０では、レイアウト情報出力部２１６は、レイアウト情報を作成する。画像レイアウト部２１３は、Ｓ４１８で決定されたテンプレートの各スロットに対して、Ｓ４１９の画像補正が実行された画像データをレイアウトする。このとき、画像レイアウト部２１３は、スロットのサイズ情報に合わせてレイアウトする画像データを変倍してレイアウトする。そして、レイアウト情報出力部２１６は、テンプレートのスロットに画像データをレイアウトしたビットマップデータを生成する。
【０１５９】
Ｓ４２１では、Ｓ４１７〜Ｓ４２０の処理が全ての見開きに対して終了したか否かが判定される。終了していないと判定された場合、Ｓ４１７からの処理を繰り返す。終了していると判定された場合、図４の自動レイアウト処理は終了する。
【０１６０】
従って以上説明した実施形態に従えば、顔検出処理をマルチスレッド処理で実行しても、同じデータ群が使用される限り、個人認識結果の再現性を向上させることができる。また、この処理に続く画像得点部や画像レイアウト部も個人認識の結果を利用するため、アルバムのレイアウト結果にも個人認識結果の再現性の向上が反映される。これにより、ユーザに最適な顔辞書を作成しても、アルバム作成の高速化を実現するとともに、その再現性を向上させることができる。
【０１６１】
＜実施形態２＞
本発明の実施形態の共通の特徴に、ユーザが指定したアルバムのページごとにマルチスレッドが実行可能な構成を有することがある。実施形態１では、ユーザがアルバム作成用に入力した画像データ群をコアに割当てて顔検出を実行し、その際に、各コアに割当てる画像データ数の基準を撮影日時とし、各コアの処理に偏りがないように画像データを分配した。
【０１６２】
この実施形態では、ユーザによりアルバム作成のために入力された画像データ群が取得された後に、イベント分割処理とページ割当て処理を実行する。この実施形態が実施形態１と異なる点は、入力された画像データ群を画像解析や評価値の算出を実行する前に、必要なページ枚数分に分割する点にある。画像処理装置は各コアに対し、ページ単位でスレッド処理の割当てを行い、各コアは割当てられたページに属する画像グループに対する画像解析処理を実行する。
【０１６３】
なお、この実施形態で用いるアルバム作成アプリケーションのソフトウェア構成は、実施形態１において、図２を参照して説明した構成と同様なので、その説明は省略する。ただし、この実施形態では、主人公情報入力部２０７が、画像得点部２０８ではなく画像選択部２１１の処理に影響している点が特徴となる。
【０１６４】
図１８はアルバム作成アプリケーションの自動レイアウト処理部が実行する処理を示すフローチャートである。なお、図１８において、図４を参照して既に実施形態１で説明したのと同じ処理ステップについては同じステップ参照番号を付し、その説明は省略する。
【０１６５】
Ｓ１８０１では、画像変換部２０３は、画像データのＥｘｉｆ情報を取得する。取得したＥｘｉｆ情報には画像データの撮影日時が記録されている。次に、Ｓ４０６のシーン分割処理では、Ｓ１８０１で取得した各画像データの撮影日時を元に画像グループをシーンごとに分割する。分割したシーンに対しては、Ｓ４１２〜Ｓ４１６の処理によって必要ページ数に応じた分割・統合処理を実行する。シーン分割方法や、ページ数分に分割・統合する処理の方法は実施形態１で説明した通りである。
【０１６６】
その後、Ｓ４０１〜Ｓ４０５を全画像データに対して実行し、Ｓ４０７〜Ｓ４０８で全シーンに関してシーン分類を実行する。
【０１６７】
その後、Ｓ１８０２では、画像得点部２０８は得点化（画像データの評価）を実行する。この実行方法は実施形態１で説明したのと同様であるが、この実施形態の画像得点部２０８では主人公設定を行わず、また主人公情報を得点化に反映しない。
【０１６８】
全画像データに対して得点化（画像データの評価）が終了すると、Ｓ４１７〜Ｓ４１８、Ｓ４２１を全見開きが終了するまで実行し、その後、Ｓ４０９で主人公設定を行う。
【０１６９】
次にＳ１８０３では、画像選択部２１１は、Ｓ４１８における画像レイアウト決定で取得したレイアウト情報から、Ｓ４０９における主人公設定の情報を加味した画像データの入れ替えを行う。
【０１７０】
この実施形態では、Ｓ４１７における画像選択時点では主人公情報は反映されず、画像データの構図情報や人物バランスといった評価基準に従った得点化の結果を元に画像データの選択処理を実行する。従って、Ｓ４１８における画像レイアウト決定で選ばれる画像データに主人公が写っている保証はない。このため、良い構図の画像データをメインスロットに配置していても、ユーザにとって好ましい画像データでない可能性がある。Ｓ１８０３では、Ｓ４０９における主人公設定の結果を受けて、選択済み画像データにおいてユーザにとって好ましくない画像データと選択候補画像データの中でユーザにとって好ましいだろう画像データを入れ替える。
【０１７１】
例えば、選択済み画像データが「通行人が写り込んだ画像データ」であった場合、画像データの得点や撮影日時、構図などの要素から入れ替え可能と判断された「主人公が写っている画像データ」に画像データの入れ替えを行うことができる。人物が主人公ではないという情報から、「通行人」とみなすことは可能である。
【０１７２】
入れ替え基準は、主人公情報を優先し、スロットの種類に応じて次の優先度を変えても良い。例えば、メインスロットの画像データを入れ替える場合は、対象の選択済み画像データと画像データの得点が同程度に高い画像データを選択するために、「画像データの得点」の優先度を上げても良い。サブスロットの画像データを入れ替える場合は、対象の選択済み画像データや隣接の選択済み画像データの撮影日時を考慮して画像データを選択するために、「画像データの撮影日時」の優先度を上げても良い。いずれにしても、画像データの入れ替え処理を実行することで、実施形態１とは異なるプロセスでもユーザにとって好ましいアルバムレイアウトを完成させることができる。
【０１７３】
次に、ページ単位での処理の詳細について説明する。
【０１７４】
図１９はページ単位での処理をマルチスレッドで実行するフローチャートである。
【０１７５】
なお、この処理にあたり、後述する処理ページ枚数を示すパラメータｌは“０”に初期化され、各ページの処理画像データ数を示すパラメータｋも“０”に初期化される。
【０１７６】
Ｓ１９０１では、処理ページ枚数を示すパラメータｌを“＋１”する。本実施形態では、ユーザがアルバム作成用に入力した画像データ群を各ページに割当てるページ割当て処理を事前に実行する。そして、アルバムの各ページという処理単位で各スレッドに割当てる。例えば、図２０に示すように、ユーザが見開き９ページのアルバムを作成するケースを想定する。この場合、見開き割当部２１０では、図２０に示すように画像データの撮影日時に応じたページ割当てを実行し、１ページから９ページまで順に、２０枚、３０枚、２５枚、３０枚、２５枚、１０枚、２０枚、３０枚、１０枚と割当てる。ここで、ページ毎に割当て画像データ数の偏りがあるのは、画像グループの撮影日時間隔の粗密やシーンとしてのまとまりが影響した結果である。ＯＳの指示によって、各ページは各コアに割当てられる。コア数の指定はＯＳの指示によって適応的に変えてもよい。また、各コアに割当てるページ数は均一であってもよいし、システム構成やＣＰＵ１０１のパフォーマンスに従った偏りがあってもよい。
【０１７７】
図２０に示す例では、３つのコアＡ、Ｂ、Ｃにそれぞれ、Ａ＝{１、４、７｝、Ｂ＝｛２、５、８｝、Ｃ＝｛３、６、９｝のページが割当てられる。即ち、各コアが３ページの処理を担当する。従って、図２０に示す例を適用すれば、各スレッドでＳ１９０１〜Ｓ１９０７ａに関する３回のループが実行されることになる。つまり、処理割当てページ枚数ＬはＬ＝３となる。
【０１７８】
Ｓ１９０２では、各ページに割り振られた画像データ数の内、処理画像データ数を示すパラメータｋを“＋１”する。図２０に示す例を適用すれば、コアＡの処理の場合、１ページ目では２０枚、４ページ目では３０枚、７ページ目では２０枚の画像データを処理する。このため、１回目のループでは割当て画像データ数Ｋは、Ｋ＝２０、２回目のループではＫ＝３０、３回目ループではＫ＝２０となる。
【０１７９】
Ｓ１９０３では、画像解析処理を実行する。画像解析処理の実行方法は実施形態１で説明した画像解析部２０４における処理、Ｓ４０２における画像特徴量取得の処理と同様である。Ｓ１９０４では、顔検出処理を実行する。顔検出処理の内容については、実施形態１において図１３を参照して説明したのと同様の処理である。
【０１８０】
Ｓ１９０４ａでは割当てられるべき全ての画像データについて処理を終了したかどうかを調べる。ここで、Ｋ＝ｋであれば、処理終了と判断し、処理はＳ１９０５に進むが、Ｋ≠ｋであれば、処理未完了として処理はステップＳ１９０２に戻る。
【０１８１】
Ｓ１９０５では、得点化処理を実施する。得点化処理の実行方法は実施形態１において説明した画像選択部２１１とＳ４１０における画像得点化の説明と、主人公情報を画像評価値に反映させない点を除き、同様である。Ｓ１９０６では、画像選択処理を実行する。画像選択処理の実行方法は実施形態１において説明した画像選択部２１１とＳ４１７における画像選択の説明と同様である。Ｓ１９０７では、レイアウト選択処理を実行する。レイアウト選択処理の実行方法は実施形態１において説明した画像レイアウト部２１３とＳ４１８における画像レイアウト決定の説明と同様である。
【０１８２】
Ｓ１９０７ａでは割当てページＬ全ての処理を終了したかどうかを調べる。ここで、Ｌ＝ｌであれば、処理終了と判断し、処理は終了するが、Ｌ≠ｌであれば、処理未完了として処理はステップＳ１９０１に戻る。
【０１８３】
以上説明したように、この実施形態ではページ単位でマルチスレッドを実行し、各スレッドでページごとのアルバムレイアウトを作成することができる。従って実施形態１と異なり、顔検出だけでなく、得点化処理や画像選択、レイアウト選択もマルチスレッドで実行することで、更に処理を高速化することができる。
【０１８４】
さらに、この実施形態では、実施形態１と同様に、マルチスレッドで動く各コアに対して個人認識処理を並列処理で実行する。個人認識処理は実施形態１において図１４を参照して説明した通りである。また、実施形態１と同様に、Ｓ４０３における顔検出とＳ４０４における個人認識処理の構成については図１１に示す通りである。顔情報ナンバリング部１４０３、情報管理部１４０４、順序制御部１４０５における処理によって個人認識結果の再現性が高まる。
【０１８５】
次に、個人認識処理が全ての顔検出結果の顔関連情報について終了した後に実行する画像選択部２１１に関連したアルバムレイアウト入れ替え処理について説明する。
【０１８６】
図２１は、アルバム入れ替え処理の詳細を示すフローチャートである。
【０１８７】
Ｓ１９０８では、図１６で示す個人認識処理が終了したかどうかを調べる。ここで、個人認識処理が終了と判断されれば、処理はＳ１９１０に進むが、未終了であると判断されれば、処理はＳ１９０９に進み、所定の時間、処理を待ち合わせる。この実施形態では所定の時間を１０秒間とし、１０秒が経過した後、待機を終了し、処理は再びＳ１９０８に戻り、個人認識処理が終了したかどうかを調べる。このようにして、ユーザが入力した画像グループに写る顔に対して全て個人認識処理が実行されるまで、処理を待機する。
【０１８８】
なお、待機終了条件は１０秒以外の指定の秒数でも良いし、ＲＯＭ１０２やＨＤＤ１０４、もしくはウェブサーバ上のデータ更新情報をトリガとして待機を終了させても良い。また、終了判定フラグをスレッド間で共有して、個人認識終了とともにフラグ内容を変更することをトリガとすることも可能である。
【０１８９】
Ｓ１９１０では、主人公設定を行う。主人公設定の実行方法は実施形態１において説明した主人公情報入力部２０７とＳ４０９における主人公設定の処理と同様である。図２１に示す処理では、Ｓ１９１０において主人公設定を行う際には、既にユーザがアルバム作成用に入力した全画像データに関して顔検出と個人認識の終了判断がなされているため、Ｓ１９１０では全個人ＩＤ情報を用いて主人公判定を実行できる。また、実施形態１において説明した図１１に示したのと同様の構成で顔検出と個人認識を実行するため、個人認識の実行順序やアルバム作成結果の再現性が高まる。
【０１９０】
Ｓ１９１１では、画像選択部２１１は、Ｓ１９０７で決定したレイアウト情報を用いて画像データの入れ替え処理を行う。入れ替え判定に用いる情報には、Ｓ１９１０で取得した主人公情報を利用する。
【０１９１】
この処理では、Ｓ１９０６で選択した選択済み画像データに主人公が写っていなければ、画像データの得点、画像データの撮影日時、画像データの構図から少なくとも１つの要素で近似している画像データを入れ替え候補画像データとする。そして、入れ替え候補画像データ中で主人公が写っている画像データがあれば、選択済み画像データと入れ替え処理を実行する。入れ替え判断基準である各近似判断条件に関しては、メインスロット、サブスロットで重みを変えても良いし、各近似判断条件を異なるシーン間で変えてもよい。
【０１９２】
例えば、旅行シーンが掲載されるページは、通行人が紛れ込んだ風景画像データに高い得点がついてしまうことが多いと考えられる。よって旅行シーンは画像データ入れ替えにおける各要素の近似条件を緩く設定する必要がある。各要素の近似条件が緩くなれば、得点に見劣りがあったとしても、主人公が写っている画像データを優先して入れ替える。
【０１９３】
一方、結婚式シーンでは、画像グループは新郎新婦がメインで撮られた写真が多いため、個人認識結果に応じた画像データ入れ替え処理は必要でない場合がある。個人認識が実行できなかった顔の向きになっている新郎新婦の画像データなどは、他の画像データと入れ替える必要はない。よって結婚式シーンは画像データ入れ替えにおける各要素の近似条件を厳しく設定してもよい。各要素の近似条件が厳しくなれば主人公が写っていると判断された画像データでも、得点が高くなければ、撮影日時が近くなければ入れ替えを実施しない。
【０１９４】
従って以上説明した実施形態に従えば、各ページの画像解析からアルバムレイアウトをマルチスレッドで実行しても、個人認識結果の再現性を向上できる。そして、個人認識結果の反映は最終的に画像データ入れ替え処理で実行されるため、アルバムのレイアウト結果にも再現性が生まれる。また、マルチスレッドでの処理を多くすることで実施形態１に比較して、より一層の高速化を実現することができる。
【０１９５】
＜実施形態３＞
この実施形態では、アルバム作成アプリケーションを使ってアルバム作成途中に中断、もしくは作成後にアプリケーションを終了した状態において、そのアプリケーションを再実行して再度アルバムを作成するときも、結果の再現性を高める例について説明する。
【０１９６】
図２２は人物情報解析部２０５が実行する顔検出処理を示すローチャートである。ここでは実施形態では実施形態１と同様に、顔検出をマルチスレッドで実行する。なお、図２２において、図１３を参照して実施形態１において説明したのと同じ処理ステップについては同じステップ参照番号を付し、その説明は省略する。
【０１９７】
Ｓ１５０１の後、Ｓ１５０１ａでは、Ｓ１５０１で実行するパラメータｎのカウントアップに対応して、そのパラメータが示す画像データに関して、以前に顔検出を含む画像解析処理が実行済みであるかどうかを調べる。例えば、ユーザがアルバム作成用に２００枚の画像データを入力した場合を想定する。前回アプリケーション立ち上げ時にユーザが１２０枚の画像データを解析した時点でアプリケーションを終了すれば、その解析結果である顔関連情報はＨＤＤ１０４やウェブサーバ上などに保管されている。同様に、１２０枚分の解析結果を管理するデータテーブルもＨＤＤ１０４やウェブサーバ上などに保管されている。従って、このような保管データを次回のアルバム作成時に再利用できれば、その分の処理短縮が実現できる。このため、Ｓ１５０１ａでは、利用可能な前回作成時のデータを検索し、該当する画像データに関して、以前に顔検出を含む画像解析処理が実行済みであるかどうかを調べる。
【０１９８】
ここで、そのような画像解析処理により得られた情報があると判断された場合、処理はＳ１５０２〜Ｓ１５０７ａをスキップして、Ｓ１５０７ｂに進む。これに対して、そのような画像解析処理により得られた情報がないと判断された場合、処理はＳ１５０２に進み、実施形態１で説明した処理を実行する。
【０１９９】
さて、Ｓ１５０２〜Ｓ１５０６の処理が実行されると、処理はＳ１５０７’において、情報管理部１４０４は、顔検出結果とシリアル番号の組み合わせである顔関連情報をＨＤＤ１０４に保管する。実施形態１では、顔関連情報は可能な限りＲＡＭ１０３に保管する構成を取っていたが、この実施形態ではＨＤＤ１０４に無条件に保管する。ＨＤＤ１０４に保管することで、アプリケーションの再起動時に過去の解析結果の再利用が可能になる。Ｓ１５０７’では、Ｓ１５０１で得られるパラメータｎのカウント値に一致する画像データの顔検出結果を記録したデータテーブルも同様にＨＤＤ１０４に保管することもできる。また、ユーザと画像解析結果との対応付けが管理システムで実現できている場合、そのデータテーブルをウェブサーバ上に保管することもできる。
【０２００】
以上説明したように、この実施形態では実施形態１に比べて、過去の解析結果が残っているかどうかを確認している。このため、画像解析や顔検出についてはアルバム再作成時も同じ結果が得られるため、再作成時に同じ画像データに対してその処理の実行を省略できる。このようにして、過去の解析結果を再利用することで処理時間の短縮化を図っている。
【０２０１】
図２３は人物情報解析部２０５が実行する個人認識処理を示すフローチャートである。ここでは実施形態では実施形態１と同様に顔検出（マルチスレッド）と個人認識処理が並列で実行される。なお、図２３において、図１４を参照して実施形態１において説明したのと同じ処理ステップについては同じステップ参照番号を付し、その説明は省略する。
【０２０２】
Ｓ１５０８ａでは、個人認識情報取得部１４０６は、顔辞書の更新処理を行う。顔辞書も前回解析結果をＨＤＤ１０４に保管することができる。本実施形態では、個人認識結果の再現性を高めるために顔辞書を新規状態に更新する。なお、顔辞書とデータテーブルの一致・整合性が取れる段階までロールバックする仕組みを入れてもよい。その場合、Ｓ１５０８ａでは、個人認識情報取得部１４０６は、顔辞書を前回作成時点と整合性が取れる状態まで戻す更新処理を行う。
【０２０３】
Ｓ１５０８ｂでは、順序制御部１４０５は、データテーブルの更新を行う。図１２（Ｄ）に示すように、データテーブルには前回作成時点での個人認識実行順番が保管されている。その実行順番は、個人認識実行が終了し個人ＩＤが判定された顔関連情報には与えられない。本実施形態ではＳ１５０８ａで顔辞書を新規状態に更新している。これに従って個人認識実行順番も新規状態に更新する。なお、ロールバック機能などで顔辞書を整合性が取れる状態に更新した場合は、個人認識実行順番も顔辞書と整合性が取れる状態まで戻す更新処理を行う。
【０２０４】
これ以降の処理は実施形態１で説明した通りである。
【０２０５】
従って以上説明した実施形態に従えば、実施形態１と比べて、過去の解析結果を最利用し、過去の解析結果が残っている場合、データテーブルを含めた各情報をアルバム再作成時に再利用することができる。これにより、アプリケーションの強制終了などによりデータテーブルの書き込みが中途状態で終了した場合でも、顔関連情報との対応付けエラーなどにも対処し結果の再現性を向上させることができる。
【０２０６】
なお、本発明は上述の実施形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。この場合、そのプログラム、および該プログラムを記憶した記憶媒体は本発明を構成する。
【符号の説明】
【０２０７】
１０１  ＣＰＵ、１０２  ＲＯＭ、１０３  ＲＡＭ、１０４  ＨＤＤ
【図１】
0006685129.tif 000002
【図２】
0006685129.tif 000003
【図３】
0006685129.tif 000004
【図４】
0006685129.tif 000005
【図５】
0006685129.tif 000006
【図６】
0006685129.tif 000007
【図７】
0006685129.tif 000008
【図８】
0006685129.tif 000009
【図９】
0006685129.tif 000010
【図１０】
0006685129.tif 000011
【図１１】
0006685129.tif 000012
【図１２】
0006685129.tif 000013
【図１３】
0006685129.tif 000014
【図１４】
0006685129.tif 000015
【図１５】
0006685129.tif 000016
【図１６】
0006685129.tif 000017
【図１７】
0006685129.tif 000018
【図１８】
0006685129.tif 000019
【図１９】
0006685129.tif 000020
【図２０】
0006685129.tif 000021
【図２１】
0006685129.tif 000022
【図２２】
0006685129.tif 000023
【図２３】
0006685129.tif 000024