(57)【特許請求の範囲】
【請求項１】
画像から顔を抽出する抽出手段と、
前記抽出手段により抽出された前記顔をグループに分類するグループ化手段と、
前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加する付加手段と、
前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出する親密度算出手段と、
前記タグ、前記親密度を少なくとも含む人物相関データを生成する人物相関データ生成手段と
を備える情報処理装置。
【請求項２】
前記グループ化手段は、
抽出され、処理対象とされる全ての顔の位置の重心からの各顔の位置によりグループを生成する第１の生成手段と、
処理対象とされる各顔の位置から近似直線を生成し、その近似直線からの距離によりグループを生成する第２の生成手段と、
前記第２の生成手段により生成されたグループに、グループに属さない顔を追加する追加手段と、
グループに含まれていない顔を処理対象として、処理対象とされる顔の座標平均からの距離を求めることでグループを生成する第３の生成手段と、
グループに含まれていない顔を処理対象として、単独で残った顔をグループとする第４の生成手段と
を備える請求項１に記載の情報処理装置。
【請求項３】
前記グループ化手段は、
抽出された顔のサイズの平均値と比較して、第１の閾値以上のサイズの顔と、第２の閾値以下のサイズの顔を、処理対象としない設定とするためのフィルタリングを行うフィルタリング手段をさらに備える
請求項２に記載の情報処理装置。
【請求項４】
前記第２の生成手段は、
処理対象とされる前記顔から基準となる第１の顔を選択し、その第１の顔と第２の顔から近似直線を生成し、
その近似直線からの距離と、処理対象とされる前記顔のサイズの平均値との比が一定値以下である顔を選択することで、グループを生成する
請求項２に記載の情報処理装置。
【請求項５】
前記追加手段は、
前記第２の生成手段により生成されたグループ内に含まれる顔のサイズの平均値に対して、一定の大きさであり、
前記第２の生成手段により生成されたグループが生成されたときに用いられた前記近似直線との距離が、一定の範囲内である顔を前記グループに追加する
請求項２に記載の情報処理装置。
【請求項６】
前記第３の生成手段は、
グループに含まれていない顔から第１の顔を選択し、その第１の顔を含む他の顔との座標平均との距離が一定以下になる顔の組み合わせを抽出し、
抽出された組み合わせのうちで、前記グループ内の平均座標と、グループの各顔との距離が最も小さくなるものをグループとして生成する
請求項２に記載の情報処理装置。
【請求項７】
前記第４の生成手段は、
グループ化されていない顔のうち、顔のサイズの平均値に対して一定以上の大きさがある顔を、１つのグループとする
請求項２に記載の情報処理装置。
【請求項８】
前記画像が撮像された日時を抽出する日時抽出手段と、
前記日時抽出手段により抽出された日時に関する情報を用いて、イベントを生成し、イベント毎に前記画像を分類するイベントクラスタリング手段と
をさらに含み、
前記相関データは、前記イベントに関する情報も含まれ、イベント毎に前記タグ、前記親密度が少なくとも管理するデータである
請求項１に記載の情報処理装置。
【請求項９】
前記人物相関データに基づく画像は、前記人物の顔画像、顔画像の人物同士の関係を示す前記タグを少なくとも含む画像である
請求項１に記載の情報処理装置。
【請求項１０】
前記タグが、変更、削除、追加された場合、対応する前記相関データが更新される
請求項９に記載の情報処理装置。
【請求項１１】
前記イベント毎に、前記人物相関データに基づく画像が生成される
請求項８に記載の情報処理装置。
【請求項１２】
抽出手段、グループ化手段、付加手段、親密度算出手段、および人物相関データ生成手段を備える情報処理装置の情報処理方法において、
前記抽出手段は、画像から顔を抽出し、
前記グループ化手段は、前記抽出手段により抽出された前記顔をグループに分類し、
前記付加手段は、前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加し、
前記親密度算出手段は、前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出し、
前記人間相関データ生成手段は、前記タグ、前記親密度を少なくとも含む人物相関データを生成する
ステップを含む情報処理方法。
【請求項１３】
抽出手段、グループ化手段、付加手段、親密度算出手段、および人物相関データ生成手段を備える情報処理装置を制御するコンピュータに、
前記抽出手段は、画像から顔を抽出し、
前記グループ化手段は、前記抽出手段により抽出された前記顔をグループに分類し、
前記付加手段は、前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加し、
前記親密度算出手段は、前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出し、
前記人間相関データ生成手段は、前記タグ、前記親密度を少なくとも含む人物相関データを生成する
ステップを含む処理をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、画像データを整理し、検索する際に好適な情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
デジタルカメラの普及、デジタルカメラの記録媒体の容量の大容量化、その記憶媒体の小型化などにともない、ユーザがデジタルカメラで撮影し、保存する画像が増加傾向にある。保存する画像が多くなると、ユーザ側での管理負担が増大する。例えば、所望の人物が撮像されている画像を検索したいときに、膨大な数の画像から探し出さなくてはならない。
【０００３】
そこで、画像解析技術、特に画像内から人の顔を検出する技術を用いて画像を整理したり検索の利便性を上げたりするための提案がされている。たとえば、画像に人が写っているか否かで分類したり、写っている人数で分類したり、さらに写っている人物を判別して分類したりといった提案がある（例えば、特許文献１,２参照）。
【０００４】
また、検出した顔について、さらに詳しい属性情報、たとえば顔の向き、人物の性別や年齢、笑顔の度合いなどを検出し、そのような属性情報を用いて画像を分類することも提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５-２８４４８７号公報
【特許文献２】特開２００５-１５７６７９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、画像に写っている人を検出したり、属性情報を付加したりするだけでは、汎用的な写真整理はできても、よりユーザ個人の環境や傾向に沿った整理や検索はできなかった。そこで、よりユーザ個人の環境や傾向に沿った整理や、検索ができる技術が求められている。そのような、ユーザをとりまく環境やユーザ自身の状況に合わせた情報提供は難しかった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、よりユーザ個人の環境や傾向に合った画像の検索をすることができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の情報処理装置は、画像から顔を抽出する抽出手段と、前記抽出手段により抽出された前記顔をグループに分類するグループ化手段と、前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加する付加手段と、前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出する親密度算出手段と、前記タグ、前記親密度を少なくとも含む人物相関データを生成する人物相関データ生成手段とを備える。
【０００９】
前記グループ化手段は、抽出され、処理対象とされる全ての顔の位置の重心からの各顔の位置によりグループを生成する第１の生成手段と、処理対象とされる各顔の位置から近似直線を生成し、その近似直線からの距離によりグループを生成する第２の生成手段と、前記第２の生成手段により生成されたグループに、グループに属さない顔を追加する追加手段と、グループに含まれていない顔を処理対象として、処理対象とされる顔の座標平均からの距離を求めることでグループを生成する第３の生成手段と、グループに含まれていない顔を処理対象として、単独で残った顔をグループとする第４の生成手段とを備えるようにすることができる。
【００１０】
前記グループ化手段は、抽出された顔のサイズの平均値と比較して、第１の閾値以上のサイズの顔と、第２の閾値以下のサイズの顔を、処理対象としない設定とするためのフィルタリングを行うフィルタリング手段をさらに備えるようにすることができる。
【００１１】
前記第２の生成手段は、処理対象とされる前記顔から基準となる第１の顔を選択し、その第１の顔と第２の顔から近似直線を生成し、その近似直線からの距離と、処理対象とされる前記顔のサイズの平均値との比が一定値以下である顔を選択することで、グループを生成するようにすることができる。
【００１２】
前記追加手段は、前記第２の生成手段により生成されたグループ内に含まれる顔のサイズの平均値に対して、一定の大きさであり、前記第２の生成手段により生成されたグループが生成されたときに用いられた前記近似直線との距離が、一定の範囲内である顔を前記グループに追加するようにすることができる。
【００１３】
前記第３の生成手段は、グループに含まれていない顔から第１の顔を選択し、その第１の顔を含む他の顔との座標平均との距離が一定以下になる顔の組み合わせを抽出し、抽出された組み合わせのうちで、前記グループ内の平均座標と、グループの各顔との距離が最も小さくなるものをグループとして生成するようにすることができる。
【００１４】
前記第４の生成手段は、グループ化されていない顔のうち、顔のサイズの平均値に対して一定以上の大きさがある顔を、１つのグループとするようにすることができる。
【００１５】
前記画像が撮像された日時を抽出する日時抽出手段と、前記日時抽出手段により抽出された日時に関する情報を用いて、イベントを生成し、イベント毎に前記画像を分類するイベントクラスタリング手段とをさらに含み、前記相関データは、前記イベントに関する情報も含まれ、イベント毎に前記タグ、前記親密度が少なくとも管理されているようにすることができる。
【００１６】
前記人物相関データに基づく画像は、前記人物の顔画像、顔画像の人物同士の関係を示す前記タグを少なくとも含む画像であるようにすることができる。
【００１７】
前記タグが、変更、削除、追加された場合、対応する前記相関データが更新されるようにすることができる。
【００１８】
前記イベント毎に、前記人物相関データに基づく画像が生成されるようにすることができる。
【００１９】
本発明の一側面の情報処理方法は、抽出手段、グループ化手段、付加手段、親密度算出手段、および人物相関データ生成手段を備える情報処理装置の情報処理方法において、前記抽出手段は、画像から顔を抽出し、前記グループ化手段は、前記抽出手段により抽出された前記顔をグループに分類し、前記付加手段は、前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加し、前記親密度算出手段は、前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出し、前記人間相関データ生成手段は、前記タグ、前記親密度を少なくとも含む人物相関データを生成するステップを含む。
【００２０】
本発明の一側面のプログラムは、抽出手段、グループ化手段、付加手段、親密度算出手段、および人物相関データ生成手段を備える情報処理装置を制御するコンピュータに、前記抽出手段は、画像から顔を抽出し、前記グループ化手段は、前記抽出手段により抽出された前記顔をグループに分類し、前記付加手段は、前記グループ化手段により生成されたグループに、グループ内の人物同士の関係を示すタグを付加し、前記親密度算出手段は、前記グループ化手段により生成されたグループ同士の距離から前記顔の人物の親密度を算出し、前記人間相関データ生成手段は、前記タグ、前記親密度を少なくとも含む人物相関データを生成するステップを含む処理をコンピュータに実行させる。
【００２１】
本発明の一側面の情報処理装置および方法、並びにプログラムにおいては、画像から顔が抽出され、抽出された顔がグループに分類され、グループ内の人物同士の関係を示すタグが付加され、グループ同士の距離から顔の人物の親密度が算出され、タグと親密度が少なくとも含まれるデータが生成される。
【発明の効果】
【００２２】
本発明の一側面によれば、ユーザ個人の環境や傾向に合った画像の検索をすることができる。
【図面の簡単な説明】
【００２３】
【図１】本発明を適用した情報処理装置の一実施の形態の構成を示す図である。
【図２】データベースの作成について説明するためのフローチャートである。
【図３】グループ化の処理について説明するためのフローチャートである。
【図４】フィルタリングの処理について説明するためのフローチャートである。
【図５】フィルタリングの処理について説明するための図である。
【図６】グループ作成処理について説明するためのフローチャートである。
【図７】グループ作成前処理について説明するためのフローチャートである。
【図８】暫定近似直線について説明するための図である。
【図９】重心からの距離によるグループ化の処理について説明するためのフローチャートである。
【図１０】重心からの距離によるグループ化について説明するための図である。
【図１１】近似直線を用いたグループ化の処理について説明するためのフローチャートである。
【図１２】第１番目の顔を含むグループ顔の抽出処理について説明するためのフローチャートである。
【図１３】他顔探索処理について説明するためのフローチャートである。
【図１４】顔ｊと近似直線の判断処理について説明するためのフローチャートである。
【図１５】グループ内の顔評価処理について説明するためのフローチャートである。
【図１６】孤立顔の近似直線グループへの追加処理について説明するためのフローチャートである。
【図１７】座標平均からの距離を利用したグループ化の処理について説明するためのフローチャートである。
【図１８】第１番目の顔とのグループ化候補判定処理について説明するためのフローチャートである。
【図１９】単独で残った顔のグループ化の処理について説明するためのフローチャートである。
【図２０】グループ化について説明するための図である。
【図２１】多層化について説明するための図である。
【図２２】構成タグの付加に関する処理について説明するためのフローチャートである。
【図２３】タグの付加時に参照されるテーブルの一例である。
【図２４】タグの付加時に参照されるテーブルの一例である。
【図２５】人物間の親密度の算出処理について説明するためのフローチャートである。
【図２６】距離スコアの算出について説明するための図である。
【図２７】親密度スコアの算出について説明するための図である。
【図２８】複数のタグが付けられたときに乗算される係数のテーブルの一例を示す図である。
【図２９】人物相関データの一例を示す図である。
【図３０】人物相関図の画面の一例を示す図である。
【図３１】タグの編集について説明するための図である。
【図３２】タグの編集について説明するための図である。
【図３３】タグの編集について説明するための図である。
【図３４】タグの編集について説明するためのフローチャートである。
【図３５】タグの編集について説明するためのフローチャートである。
【図３６】タグの編集について説明するためのフローチャートである。
【図３７】データの編集について説明するためのフローチャートである。
【図３８】データの編集について説明するためのフローチャートである。
【図３９】データの編集について説明するためのフローチャートである。
【図４０】本発明を適用した情報処理装置の他の実施の形態の構成を示す図である。
【図４１】データベースの作成について説明するための他のフローチャートである。
【図４２】人物相関データの一例を示す図である。
【図４３】人物相関図の画面の一例を示す図である。
【図４４】記録媒体について説明するための図である。
【発明を実施するための形態】
【００２４】
以下に、本発明の実施の形態について図面を参照して説明する。
【００２５】
［情報処理装置の構成について］
図１は、本発明を適用した情報処理装置の一実施の形態の構成を示す図である。図１に示した情報処理装置１３を含むシステムは、表示部１１、操作部１２、情報処理装置１３、および記憶部１４から構成される。情報処理装置１３は、表示制御部２１、操作判断部２２、人物相関データ生成部２３、人物相関データ更新部２４、グループ化部２５、顔クラスタリング部２６、および画像解析部２７から構成される。また、画像解析部２７は、顔認識部３１を含む構成とされる。記憶部１４は、人物相関データベース４１と画像データベース４２の２つのデータベースを含む構成とされる。
【００２６】
表示部１１は、後述する画面を表示する。その画面は、記憶部１４の人物相関データベース４１に記憶されている人物同士の相関を表すデータを基にした画面である。操作部１２は、ユーザ側が操作する部材で構成されている。
【００２７】
表示制御部２１は、記憶部１４の人物相関データベース４１に記憶されているデータに基づき表示部１１の表示を制御する。人物相関データベース４１に記憶されるデータは、人物相関データ生成部２３により生成される。人物相関データ生成部２３は、グループ化部２５によるグループ化の結果や、顔クラスタリング部２６のクラスタリングの結果に基づいて、人物同士の相関に関するデータを生成する。グループ化部２５は、画像解析部２７の顔認識部３１による画像に写っている人物（顔）の認識結果に基づき、人物同士のグループを作成する。
【００２８】
顔認識部３１は、記憶部１４の画像データベース４２に記憶されている画像データに基づく画像から、人物（顔）を抽出（認識）する機能を有する。顔クラスタリング部２６は、グループ化部２５の結果からクラスタリングの処理を行う。
【００２９】
操作判定部２２は、操作部１２が操作されたときに、その操作がどのような操作であるのかを判断する。操作判定部２２による判定結果に基づき、人物相関データ更新部２４は、人物相関データベース４１に記憶されているデータを更新する。
【００３０】
このような構成を有する情報処理装置１３は、例えば、デジタルカメラ、ビデオカメラ、携帯電話機、スマートフォン、ＰＤＡ（Personal Data Assistance）、ホームサーバ、テレビジョン受像機などに組み込まれる。または、情報処理装置１３の各機能を実現するパーソナルコンピュータなどのアプリケーションとして提供される。
【００３１】
以下に詳細を説明するように、本発明を適用した情報処理装置１３は、複数の画像を分類することができ、その分類は画像に写っている人物同士の相関に基づくものとすることができる。よって、画像を記録する機能や、画像を処理する機能を有する、上記したような装置やアプリケーションとして実現することが可能である。
【００３２】
［グループ化の処理について］
次に情報処理装置１３が行う処理について説明する。まず、図２のフローチャートを参照し、人物相関データベース４１の作成に係わる処理について説明する。また、図２のフローチャートを参照した説明は、全体の流れを簡略化した説明とし、必要に応じて詳細を後述する。
【００３３】
ステップＳ１１において、処理対象とされる画像データが取得される。ステップＳ１１における処理は、顔認識部３１が、画像データベース４２から画像データを取得することで行われる。よって、このような処理が行われる前提として、画像データベース４２には、複数の画像に関する画像データが記憶されている。
【００３４】
ステップＳ１２において、顔認識処理が実行される。顔認識部３１は、取得した画像データに基づく画像に写っている人物を、画像から顔を抽出することで認識する。顔認識部３１は、画像データベース４２から画像データを取得するとき、その画像データを一意に識別することができる画像ＩＤも取得する。顔認識部３１による顔認識処理が実行されることにより、画像内における顔の位置、顔の大きさ、顔の向き、顔の属性（例えば、性別、年齢など）、顔の特徴量などが抽出される。また、認識顔毎に、その顔を一意に識別するためのユニークなＩＤ（以下、顔ＩＤと記述する）が割り振られる。
【００３５】
なお、顔認識部３１が行う顔認識に係わるアルゴリズムは、本出願人が先に提案した顔認識技術を適用することができる。その顔認識技術については、特開２００５−２８４４８７号公報、特開２００５−１５７６７９号公報に記載があるため、ここでは、その説明を省略する。
【００３６】
ステップＳ１３において、グループ化の処理が実行される。グループ化の処理は、グループ化部２５が、顔認識部３１の認識結果を用いて行う。グループとは、認識された顔を１以上含む集団である。このグループ化の処理については、図３以降のフローチャートを参照して後述する。
【００３７】
ステップＳ１３において、グループ化の処理が実行され、グループが生成されると、ステップＳ１４において、処理対象とされる画像データを全て処理したか否かが判断される。顔認識部３１は、画像データベース４２に、まだ顔認識の処理を実行していない画像データがあるか否かを判断し、まだ顔認識の処理を実行していない画像データがあると判断した場合、ステップＳ１１に処理を戻し、新たに処理対象とする画像データを取得する。そして、ステップＳ１１以降の処理が、新たな画像データに対して繰り返し行われる。
【００３８】
一方、ステップＳ１４において、処理対象とされる画像データを全て処理したと判断された場合、ステップＳ１５に処理が進められる。ステップＳ１１乃至Ｓ１４の処理は、画像データベース４２に記憶されている１つの画像データに対して行われ（１枚の画像に対して行われ）、ステップＳ１５以下の処理は、複数の画像データ（複数の画像）を処理対象として行われる。
【００３９】
ステップＳ１１乃至Ｓ１４の処理が実行されることにより、１枚の画像から、１以上のグループが検出された画像が複数存在する状態となる。なお、グループが検出されなかった画像は、ステップＳ１５以下の処理対象とはされない。ステップＳ１５以下の処理は、複数の画像から検出された複数のグループが、処理対象として行われる。グループには、少なくとも１人以上の人物（顔）が含まれている。換言すれば、認識された顔を１以上含むのがグループである。
【００４０】
ステップＳ１５において、顔クラスタリング処理が実行される。顔クラスタリング部２６は、複数のグループを対象として、顔のクラスタリング、すなわち、同じ顔は、同じ人物として扱うための処理を行う。その結果、１以上の複数の人物が検出される。顔クラスタリング部２６は、顔認識部３１から供給された顔識別特徴量および顔ＩＤ、画像ＩＤを用いて、顔識別特徴量同士の類似度を用いて同一人物と判断される人毎にグルーピングを行なう。
【００４１】
ステップＳ１６において、同一の人物と判断された顔は、同一の人物として扱われるように、例えば、顔ＩＤが関連付ける処理が実行される。このようにして、複数の人物が生成される。ステップＳ１７において、生成された複数の人物同士の親密度が算出される。親密度の算出に関しては、グループ化の処理などの説明が終わった後に、再度説明する。
【００４２】
ステップＳ１７において、親密度が算出されると、その結果が用いられて、さらに人物間のタグが決定される。人物間のタグとは、人物Ａと人物Ｂが“夫婦”である、“親子”である、“友達”であるといった人物間の関係を示すタグである。このタグの決定に関する詳細な説明は後述する。
【００４３】
ステップＳ１７において、タグが決定されると、その情報から人物相関データが生成され、人物相関データベース４１に記憶される（ステップＳ１８）。このようにして、人物相関データベース４１は生成される。この人物相関データベース４１のデータは、画像から抽出された人物同士が、どのような関係にあるかに関するデータである。
【００４４】
［グループ化の処理について］
次に、図３のフローチャートを参照して、ステップＳ１３において実行されるグループ化の処理について説明する。このグループ化の処理は、グループ化部２５において行われる。
【００４５】
ステップＳ３１において、顔情報が取得される。上記したように、グループ化部２５は、顔認識部３１から、所定の画像に写っている顔の認識結果として、画像内における顔の位置、顔の大きさ、顔の向き、顔の属性（例えば、性別、年齢など）、顔の特徴量といった情報が供給されるので、それらの情報を、ステップＳ３１の処理として取得する。
【００４６】
ステップＳ３２において、フィルタリングの処理が実行される。このフィルタリングの処理は、顔認識処理により認識された顔を全て処理対象とすると、処理が増大する、時間がかかるといった問題があるため、処理対象とする顔を少なくするために行われる。しかしながら、処理対象とすべき顔が処理対象外にされてしまうようなことなく行われる必要があり、その処理は、図４に示すフローチャートの処理に基づいて行われる。
【００４７】
図４は、ステップＳ３２において実行されるフィルタリングの処理について説明するためのフローチャートである。ステップＳ５１において、顔サイズの平均値が算出される。図５Ａに示したように、画像５０から顔５１乃至５５の５個の顔が検出された場合を例にあげて説明する。ステップＳ５１においては、この５個の顔５１乃至５５の顔サイズの平均値が算出される。
【００４８】
顔サイズの平均値は、次式（１）に基づき算出される。
【数１】
0005434569.tif 000002
式（１）において、faceSize_ave は、平均顔サイズ[pix]を表し、N は「可」のタグのついた顔の数を表し、width_i は、顔iの幅[pix]を表し、height_i は、顔iの高さ[pix]を表す。  
【００４９】
ステップＳ５２において、算出された顔サイズの平均値と各顔サイズの比較が行われる。例えば、顔サイズの平均値と、顔５１のサイズが比較される。このような比較が、顔毎に行われる。ステップＳ５３において、除外対象となる顔があるか否かが判断される。この判断は、ステップＳ５２における比較結果が用いられて行われる。顔サイズの平均値との比較の結果、平均値の所定の範囲よりも大きなサイズの顔、または小さなサイズの顔が除外対象の顔とされる。平均値の所定の範囲よりも大きいとは、例えば、平均値に、その平均値の所定のパーセンテージの値を加算した値よりも大きい（例えば、平均値の１．５倍の値以上よりも大きい）ことである。同様に、平均値の所定の範囲よりも小さいとは、例えば、平均値に、その平均値の所定のパーセンテージの値を減算した値よりも小さい（例えば、平均値の０．５倍の値以下よりも小さい）ことである。
【００５０】
平均値の所定の範囲よりも大きなサイズの顔を処理対象の顔から除外するのは、以下の理由からである。すなわち、例えば、ユーザが撮影を意図した人物Ａの前を、撮影を意図しなかった人物Ｂが横切ったために、その人物Ｂが、人物Ａよりも大きく撮影されてしまったような画像である可能性が高い。よって、そのようなユーザが撮影を意図しなかった人物Ｂは、後段の処理における処理対象からは除外されるようにする。例えば、図５Ａに示した画像５０が処理対象とされているときには、顔５１が、平均値の所定の範囲よりも大きい顔と判断され、除外される。
【００５１】
また、平均値の所定の範囲よりも小さなサイズの顔を処理対象の顔から除外するのは、以下の理由からである。すなわち、例えば、ユーザが撮影を意図した人物Ａの後ろに、撮影を意図しなかった人物Ｂが存在していたために、その人物Ｂが、人物Ａよりも小さく撮影されてしまったような画像である可能性が高い。よって、そのようなユーザが撮影を意図しなかった人物Ｂは、後段の処理における処理対象からは除外されるようにする。例えば、図５Ａに示した画像５０が処理対象とされているときには、顔５２が、平均値の所定の範囲よりも小さい顔と判断され、除外される。
【００５２】
除外対象とされた顔には、「不可」というタグが付けられる。「不可」というタグが付けられた顔は、処理対象としない顔であることを意味する。他のタグとして「可」というタグと、「未定」というタグがある。「可」というタグが付けられた顔は、処理対象とされている顔であることを意味する。「未定」というタグが付けられた顔は、後述する所定の処理においては、処理対象とされるが、他の処理では処理対象としない顔であることを意味する。
【００５３】
図４のフローチャートの説明に戻る。図４のフローチャートの処理が実行されるとき、すなわち、フィルタリングの処理が実行されるときは、認識されている顔には、全て「可」のタグが付けられている。そして、ステップＳ５１、ステップＳ５２の処理が上記したように実行され、ステップＳ５３において、除外対象となる顔があると判断された場合、ステップＳ５１に処理が戻され、それ以降の処理が繰り返される。ステップＳ５３からステップＳ５１に処理が戻されたときに、処理対象とされる画像は、除外対象とされた顔が除外された画像である。
【００５４】
すなわち、例えば、図５Ａに示した画像５０が処理対象とされていたときには、顔５１と顔５２が除外対象とされるため、図５Ｂに示し画像５０’が、処理対象とされる。画像５０’は、顔５３乃至５５の３個の顔が写っている状態の画像である。換言すれば、顔５１と顔５２は、「不可」のタグが付けられているため、処理対象とされない。そのために、「可」のタグが付けられている顔５３、顔５４、顔５５が処理対象とされて、ステップＳ５１の処理が再度行われる。
【００５５】
このときステップＳ５１においては、図５Ｂに示した画像５０’が処理対象とされるため、顔５３乃至５５の３個の顔の顔サイズの平均値が新たに算出される。そして、ステップＳ５２において、新たに算出された平均値と各顔サイズ、この場合、顔５３、顔５４、顔５５のそれぞれの顔サイズとの比較が行われる。そして、ステップＳ５３において、除外対象とされる顔があるか否かが、上記した場合と同様の判断が行われることで判断される。
【００５６】
このような処理が繰り返されることで、所定の画像内に写っている顔のうち、同じようなサイズの顔、換言すれば、撮影者が意図して撮影したであろう人物が処理対象として残される。換言すれば、このようにして、処理対象とされている画像から、その画像に写っている顔のうち、他の顔と比較して極端に大きい顔や極端に小さい顔が検出され、後段の処理における処理では処理対象とされない顔として設定される。
【００５７】
ステップＳ５３において、除外対象となる顔がないと判断されると、ステップＳ５４に処理が進められる。ステップＳ５４において、顔サイズが閾値以下の顔があるか否かが判断される。例えば、図５Ｂに示した画像５０’が処理対象とされているとき、顔５３、顔５４、顔５５のそれぞれの顔サイズと顔サイズの平均値の比が、閾値以下であるか否かが判断される。例えば、閾値が０．７と設定されている場合であり、顔５３のサイズと平均値の比が０．７以下であったときには、ステップＳ５４において、顔のサイズが閾値以下の顔であると判断される。
【００５８】
ステップＳ５４において、顔のサイズが閾値以下の顔があるか否かを判断するのは、以下の理由からである。「可」のタグが付けられている顔のうち、他の顔よりも小さな顔は、撮影者が意図して撮影した顔であるが、例えば、子供の顔であるために他の顔（両親の顔）よりも小さかったり、他の顔よりも少し後方に位置しているために他の顔よりも小さかったりする場合（第１の場合とする）がある。または、撮影者が意図して撮影した人物ではないために、意図して撮影した人物よりは小さな顔サイズで撮影されている場合（第２の場合とする）がある。第１の場合であるのか、第２の場合であるのかを判断するために、ステップＳ５４において、顔サイズが閾値以下の顔があるか否かが判断される。
【００５９】
ステップＳ５４において、顔サイズが閾値以下の顔があると判断された場合、ステップＳ５５に処理が進められる。ステップＳ５５において、顔サイズが閾値以下であると判断された顔のタグが、「可」のタグから「未定」のタグに変更される。この時点では、「未定」のタグが付けられた顔は、撮影者が意図して撮影した人物であるか否かの判断が付けづらい状態の顔であり、後段の一部の処理を除く処理の処理対象とすべきか否かが未定のため、「未定」のタグが付けられる。
【００６０】
例えば、図５Ｂに示した画像５０’の顔５４は、顔５３や顔５５と比較して小さいので、顔サイズの平均値との比において、閾値以下の大きさしかない可能性がある。閾値以下であった場合、顔５４は、「未定」のタグに変更される。ここでは、顔５４は、「未定」のタグに変更されたとして説明を続ける。
【００６１】
ステップＳ５６において、「可」のタグが付けられている顔（以下、「可」顔と記載する、他も同様に記載する）が１つであるか否かが判断される。図５Ｂに示したような画像５０’の場合、顔５３と顔５５が「可」顔であるので、ステップＳ５６において、ＮＯと判断され、ステップＳ５８に処理が進められるが、仮に顔５３だけが「可」顔であった場合、ステップＳ５６においてＹＥＳと判断され、ステップＳ５７に処理が進められる。
【００６２】
ステップＳ５７またはステップＳ５８において、「未定」のタグを「可」のタグに変更し直すか否かの判断が行われる。上記したように、「未定」のタグが付けられている「未定」顔は、撮影者が意図して撮影した顔であるのか否かが判断付けづらい顔であり、ステップＳ５７またはステップＳ５８においては、そのような顔に対して、撮影者が意図して撮影した顔であるか否かを判断する処理である。
【００６３】
ステップＳ５７においては、画像内に「可」顔が１つだけある画像に対して、条件１で判断が行われる。条件１とは、以下の式（２）の条件を満たすか否かで判断され、その式（２）における判断を行うのに式（３）に基づき算出される値が用いられる。
【数２】
0005434569.tif 000003
式（２）、式（３）において、flag_i は、「未定」顔iが条件を満たすかどうかを表し、faceDist_(i,j) は、「未定」顔iと「可」顔jとの距離を表す。
【００６４】
式（３）は、処理対象とされている「未定」顔と「可」顔の距離を算出する式である。式（３）における（ｘi，ｙi）は、「未定」顔の座標であり、（ｘj，ｙj）は、「可」顔の座標である。この２つの顔の距離faceDist_(i,j)が、顔サイズの平均値faceSize_aveに所定の閾値threshold_facedistを乗算した値よりも小さい場合に、trueと判定される（trueというフラグが立てられる）。ここで、trueとの判断結果は、「未定」とのタグを「可」とのタグに変更することを意味するとする。
【００６５】
このように、条件１とは、「可」顔と「未定」顔との距離が一定の範囲内にあるか否かを判断し、一定の範囲内にあるときには、「可」とのタグに変更するとの判断結果を出すための条件である。「可」顔と「未定」顔との距離が一定の範囲内にある場合、例えば、両親と子供が写っているような画像であり、互いに近い位置に位置する状態で撮影されたが、子供の方が小さいサイズで写ってしまったような画像であると判断できる。このような画像内の人物は、撮影者が意図して撮影した人物であると判断し、後段の処理における処理対象とされ、「可」とのタグが付けられる。
【００６６】
一方、ステップＳ５８においては、条件２に基づき判断が行われる。条件２においては、まず、式（４）で表される近似直線ｌが求められる。式（４）で表される近似直線ｌの係数ａと係数ｂは、それぞれ式（５）と式（６）に基づいて算出される。この近似直線ｌと、処理対象とされる「未定」顔との距離lineDist_(i,l)が、式（７）に基づき算出される。この算出された距離lineDist_(i,l)に所定の閾値threshold_facedistを乗算した値が、判断式である式（８）を満たす場合、trueと判断される。
【００６７】
近似直線(approxLine)l：ｙ＝ａｘ＋ｂ  ・・・（４）
【数３】
0005434569.tif 000004
【００６８】
条件２においては、２以上の「可」顔が存在する画像に対して、その２以上の「可」顔を通る近似直線ｌと、「未定」顔との距離が一定範囲内に存在するか否かが判断されることで、撮影者が意図して撮影した人物であるか否かが判断される。
【００６９】
ステップＳ５９において、処理対象とされた「未定」とのタグが付けられた顔を、「可」とのタグを付ける顔に変更すると判断されたか否かが判断される。この判断は、ステップＳ５７またはステップＳ５８において、trueとの判断結果が出た顔であるか否かが判断されることで行われる。
【００７０】
ステップＳ５９において、タグを変更すると判断された顔であると判断された場合、ステップＳ６０に処理が進められる。ステップＳ６０において、タグを変更すると判断された顔のタグが「未定」から「可」に変更される。
【００７１】
ステップＳ５９において、処理対象とされた「未定」とのタグが付けられた顔は、「可」とのタグに変更しないと判断された場合、または、ステップＳ６０において、タグが変更された場合、ステップＳ６１において、全ての「未定」とのタグが付けられた顔が処理対象とされたか否かが判断される。
【００７２】
ステップＳ６１において、全ての「未定」顔を処理対象としていないと判断された場合、ステップＳ５６に処理が戻され、まだ処理対象とされていない「未定」とのタグが付けられた顔に対して、ステップＳ５６以下の処理が繰り返される。ステップＳ５６以下の処理が繰り返されるとき、ステップＳ６０において「可」とのタグに変更された顔は、「可」顔として扱われて処理される。
【００７３】
ステップＳ５４において、顔サイズが平均以下の顔はないと判断された場合、またはステップＳ６１において、「未定」とのタグが付けられた顔を全て処理対象としたと判断された場合、図４に示したフィルタリングの処理は終了され、ステップＳ３３（図３）に処理が進められる。フィルタリングの処理が終了されることで、ステップＳ３３以下の処理において処理対象とされる顔、すなわち「可」顔が決定された状態となる。
【００７４】
［グループ作成の処理について］
ステップＳ３３（図３）において、グループ作成の処理が実行される。この処理は、画像内の複数の人物を１または複数のグループに分類する処理である。このステップＳ３３において実行されるグループ化の処理について、図６のフローチャートを参照して説明する。
【００７５】
ステップＳ８１において、グループ作成前処理が実行される。この処理は、設けなくても良い処理（削除することが可能な処理）であるが、前処理として行うことで、後段の処理における処理負担を軽減することが可能となる。ステップＳ８１において実行されるグループ作成前処理について、図７のフローチャートを参照して説明する。
【００７６】
［グループ作成の処理におけるグループ作成前処理について］
ステップＳ１０１において、処理対象とされた画像に「可」顔が３以上あるか否かが判断される。「可」顔が１、または２のために、ステップＳ１０１において、処理対象とされた画像に「可」顔が３以上はないと判断された場合、グループ作成前処理の処理は終了される。すなわち、処理対象とされた画像に「可」顔が１、または２の場合には、前処理を行わない。
【００７７】
一方、ステップＳ１０１において、処理対象とされた画像に「可」顔が３以上あると判断された場合、ステップＳ１０２に処理が進められる。ステップＳ１０２において、画像内の「可」顔の全てを対象として近似直線が作成される。ここでは、この近似直線を暫定近似直線と記述する。
【００７８】
暫定近似直線は、次式（９）に基づいて算出される。
暫定近似曲線(interim-approxLine) l_interim ：ｙ＝ａｘ＋ｂ  ・・・（９）
式（９）における係数ａ、係数ｂは、それぞれ、式（５）、式（６）に基づいて算出される。ただし、ｎは、この場合、処理対象とされた画像内の「可」顔の数とされる。
【００７９】
なお、このステップＳ１０２において生成される暫定近似直線は、既に処理が終わっている図４のフローチャートを参照して説明したフィルタリングの処理で生成した近似直線を利用することも可能である。フィルタリングの処理で、ステップＳ５８において、条件２での判断を行うときに、「可」顔を用いて近似直線を生成している。そのステップＳ５８で生成した近似直線を、ステップＳ１０２で生成される暫定近似直線とすることも可能である。
【００８０】
ただし、「可」顔の分布の偏りが小さい場合には、そのステップＳ５８で生成した近似直線を、ステップＳ１０２で生成される暫定近似直線として処理が行われるようにしても良いが、ステップＳ５８で生成されて近似直線に対しての『可』顔の分布に偏りがある場合には、改めてステップＳ１０３において、暫定近似直線が生成される。
【００８１】
ステップＳ１０３において、画像内の各「可」顔と暫定近似直線との距離が求められる。この距離は、式（７）に基づいて算出される。ステップＳ１０４において、暫定近似直線に対して、「可」顔が、直線のどちら側に多く分布しているかが調査される。画像は、暫定近似直線により、２つの領域に分割できる。その分割された２つの領域のうち、どちらの領域に、「可」顔が多く存在しているかが判断される。ステップＳ１０５において、分布状況に偏りがあるか否かが判断される。偏りがあると判断されるのは、例えば、近似直線の上側と下側に、「可」顔が分布しているような場合である。
【００８２】
ステップＳ１０５において、分布に偏りがあると判断された場合、ステップＳ１０６に処理が進められる。ステップＳ１０６において、より多く分布している側の「可」顔が抽出される。すなわち、「可」顔が多く存在している領域に存在する「可」顔が抽出される。ここで、図８に示した画像１０１が処理対象とされている場合を例にあげ、上記したステップＳ１０２乃至Ｓ１０６における処理、およびステップＳ１０６以下の処理について説明を加える。
【００８３】
画像１０１には、「可」顔として顔１１１乃至１１５の５個の顔が検出されている。この５個の「可」顔１１１乃至１１５が用いられ、ステップＳ１０２において、暫定近似直線が作成される。生成された暫定近似直線を、図８の画像１０１では、暫定近似直線１１０として図示する。暫定近似直線１１０より図中上側には、顔１１１と顔１１２が存在し、暫定近似直線１１０より図中下側には、顔１１３、顔１１４、および顔１１５が存在している。よって、暫定近似直線１１０より図中下側に、図中上側よりも、より多くの顔が分布していることになる。
【００８４】
よって、画像１０１の場合、ステップＳ１０６において抽出される「可」顔は、顔１１３、顔１１４、および顔１１５となる。この顔１１３、顔１１４、顔１１５が、ステップＳ１０７において、「近似直線候補」顔とされる。顔１１１や顔１１２が、暫定近似直線１１０上に位置していた場合には、仮に、暫定近似直線１１０に対して多くの顔が存在している領域に存在していなくても、「近似直線候補」顔にされる。
【００８５】
ステップＳ１０８において、「近似直線候補」顔とされた「可」顔で、近似直線が次式（１０）に基づき作成される。
近似曲線(approxLine)  l: ｙ＝ａｘ＋ｂ  ・・・（１０）
式（１０）における係数ａ、係数ｂは、それぞれ、式（５）、式（６）に基づいて算出される。ただし、ｎは、この場合、「近似直線候補」顔の数とされる。
【００８６】
ステップＳ１０８において、近似直線が作成された場合、または、ステップＳ１０５において、分布に偏りがないと判断された場合、ステップＳ１０９に処理が進められる。ステップＳ１０９において、生成された近似直線からの距離の小さい順に、「可」顔がソートされる。このときソートの対象とされる「可」顔は、画像内で検出された全ての「可」顔であり、「近似直線候補」顔だけがソートの対象とされるのではない。例えば、図８に示した画像１０１の場合、顔１１１乃至１１５がソート対象とされる。
【００８７】
また、ステップＳ１０８からステップＳ１０９に処理が進められときには、ステップＳ１０８で作成された近似直線が用いられ、ステップＳ１０５からステップＳ１０９に処理が進められたときには、ステップＳ１０２において算出された暫定近似直線が、近似直線として用いられる。
【００８８】
このようにして、近似直線が生成され、その近似直線に対して距離が近い順に「可」顔がソートされると、グループ作成前処理に係わる処理が終了される。このような前処理が実行されることで、後述する後段の処理で、近似直線が用いられてグルーピングが実行されるため、初期の段階で、ある程度精度が高いグループ候補ができることになる。そのため、後段の処理で別の候補を作る際にも、かなり早い段階で精度比較により処理を打ち切ることができるなどの処理を実行することが可能となり、全体の処理速度を向上させることが可能となる。
【００８９】
［グループ作成の処理における重心からの距離によるグループ化について］
ステップＳ８１（図６）におけるグループ作成前処理（図７）が終了されると、ステップＳ８２に処理が進められる。ステップＳ８２において、重心からの距離によるグループ化の処理が実行される。この“重心からの距離によるグループ化の処理”とは、処理対象とされる全ての顔（「可」顔）の重心を求め、その重心からの各顔の距離に基づきグループを生成する処理である。このステップＳ８２において実行される重心からの距離によるグループ化の処理について、図９のフローチャートを参照して説明する。
【００９０】
ステップＳ１３１において、処理対象とされている画像内の「可」とのタグが付けられている「可」顔を対象として、「可」顔の平均顔サイズが算出される。平均顔サイズは、次式（１１）に基づき算出される。
【数４】
0005434569.tif 000005
式（１１）において、faceSize_ave は、平均顔サイズ[pix]を表し、Ｎは、「可」タグの付いた顔の数を表し、width_i は、顔iの幅[pix]を表し、height_i は、顔iの高さ[pix]を表す。
【００９１】
ステップＳ１３２において、画像内の全ての「可」顔の重心座標が、次式（１２）に基づき算出される。
【数５】
0005434569.tif 000006
式（１２）において、ｘ_g は、重心のx座標を表し、y_g は、重心のy座標を表し、n は、「可」顔の総数を表す。
【００９２】
ステップＳ１３３において、画像内の各「可」顔と、重心との距離が算出される。そして、その算出された距離のうち、最大値と最小値が抽出され、その差分が算出される。ステップＳ１３４において、ステップＳ１３３において算出された差分値が、ステップＳ１３１で算出された平均顔サイズよりも小さいか否かが判断される。
【００９３】
ステップＳ１３４において、差分値が平均顔サイズよりも小さいと判断された場合、ステップＳ１３５に処理が進められ、画像内の全ての「可」顔を含む１つのグループが生成され、図９に示したフローチャートに基づく重心からの距離によりグループ化の処理は終了される。一方、ステップＳ１３４において、差分値が平均顔サイズよりも小さいと判断されなかった場合、図９に示したフローチャートに基づく重心からの距離によりグループ化の処理は終了される。
【００９４】
ここで図１０を参照し、再度、重心からの距離によるグループ化について説明を加える。図１０Ａは、重心からの距離により、グループ化される場合の一例を示す図である。図１０Ａに示した画像１３１には、「可」顔１４１乃至１４６が撮像されている。これらの「可」顔１４１乃至１４６の位置関係から、ステップＳ１３２において、重心１５１が算出される。なお、図１０Ａにおいて、重心１５１や、矢印は説明のために付したものであり、画像１３１に撮像されているものではない。他の画像に関しても同様である。
【００９５】
画像１３１においては、重心１５１は、画像１３１の中心部分にあり、「可」顔１４１乃至１４６は、その重心１５１を取り囲むように存在している。ここで、「可」顔１４１と重心１５１との距離を距離Ｌ１４１とし、重心１５１との距離が他の「可」顔よりも短いとする。また、「可」顔１４３と重心１５１との距離を距離Ｌ１４３とし、重心１５１との距離が他の「可」顔よりも長いとする。しかしながら、図１０Ａに示したように、距離Ｌ１４１と距離Ｌ１４３は、大差ない距離であるとする。
【００９６】
このような状況の場合、ステップＳ１３３において、距離Ｌ１４１と距離Ｌ１４３との差分値が算出される。この差分値は、０もしくは、０に近い小さい値となる。よって、ステップＳ１３４において、差分値は、平均顔サイズよりも小さいと判断される。このような場合、「可」顔１４１乃至１４６は、１つのグループとされる。
【００９７】
画像１３１に対して、図１０Ｂに示したような画像１６１のような場合、重心からの距離によるグループ化の処理ではグループが生成されない。画像１６１には、「可」顔１７１乃至１７６が、図１０Ｂに示すような配置で撮像されている。画像１６１の場合、重心１８１からの距離はばらばらである。ここでは、「可」顔１７２と重心１８１との距離を距離Ｌ１７２とし、重心１８１との距離が他の「可」顔よりも短いとする。また、「可」顔１７６と重心１８１との距離を距離Ｌ１７６とし、重心１８１との距離が他の「可」顔よりも長いとする。
【００９８】
画像１６１のような「可」顔の配置の場合、距離１７３と距離１７６との差分は、ある程度の大きい値となる。そして、ステップＳ１３４における判断で、距離１７３と距離１７６との差分値は、平均顔サイズよりも小さくはないと判断される。よって、画像１６１の画像の場合、重心からの距離によるグループ化の処理ではグループが生成されないことになる。
【００９９】
このように、重心からの距離によるグループ化の処理により、グループが生成されるのは、図１０Ａに示したように、顔が円形上に配置されているような場合であり、状況としては、撮像されている人達が円陣を組んでいるような状況のときに撮影された画像のときである。このような円陣を組んでいるような人達は、何らかの関係を有する人達同士であると考えられる。よって、そのような人達でグループが生成されるようにするために、重心からの距離によるグループ化の処理が実行されるようにする。
【０１００】
このような処理が行われた結果、グループが生成された場合、図６のフローチャートにおけるステップＳ８３以降の処理は省略され、生成されたグループに対しての処理が実行される。一方、このような処理が行われた結果、グループが生成されなかった場合、ステップＳ８３（図６）に処理が進められ、近似直線を用いたグループ化の処理が実行される。
【０１０１】
［グループ作成処理における近似直線を用いたグループ化の処理について］
ステップＳ８３において、近似直線を用いたグループ化の処理が実行される。処理対象とされる各顔のなかから、基準となる第１の顔を選択し、その第１の顔と第２の顔との位置から近似直線を生成し、その近似直線からの距離と、処理対象とされる顔のサイズの平均値との比が一定値以下である顔を選択することでグループを生成する処理である。以下にステップＳ８３において実行される近似直線を用いたグループ化の処理について、図１１のフローチャートを参照して詳細に説明する。
【０１０２】
ステップＳ１６１において、基準となる第１番目の顔が、画像内の全ての「可」顔の中から１つ選択される。この選択は、ステップＳ８１（図６、図７）の処理結果を用いて行われる。すなわちソートされた結果が用いられ、近似直線からの距離が小さい順に選択されることで行われる。後に、他の顔も順次、第１番目の顔とされるため、ステップＳ１６３において、全ての顔を第１番目の顔としたか否かが判断される処理がある。
【０１０３】
ステップＳ１６２において、第１番目の顔を含むグループ顔の抽出処理が実行される。このステップＳ１６２における処理が実行されることで、その時点で第１番目の顔とされた「可」顔を基準としたグループが生成される。換言すれば、第１番目の顔とグループ化される顔があるか否かが、ステップＳ１６２に処理において実行される。このステップＳ１６２における処理の詳細な説明は、図１２のフローチャートを参照して後述する。
【０１０４】
ステップＳ１６２において、第１番目の顔を含むグループ顔の抽出処理が終了されると、ステップＳ１６３に処理が進められ、全ての顔が第１番目の顔として処理が実行されたか否かが判断される。ステップＳ１６３において、全ての顔が第１番目の顔として処理は実行されてはいないと判断された場合、ステップＳ１６１に処理が戻され、それ以降の処理が繰り返される。
【０１０５】
一方、ステップＳ１６３において、全ての顔が第１番目の顔として処理が実行されたと判断された場合、ステップＳ１６４に処理が進められる。ステップＳ１６４において、ステップＳ１６３までの処理でグループが生成された場合、そのグループに関する情報として、グループ化に使用した近似直線が登録される。
【０１０６】
図１２のフローチャートを参照し、ステップＳ１６２において実行される第１番目の顔を含むグループ顔の抽出処理について説明する。
【０１０７】
ステップＳ１９１において、第２番目の顔ｉが選択される。この第２番目の顔ｉは、処理対象とされている画像内の「可」顔のうち、第１番目の顔以外の「可」顔から１つ選択される。ステップＳ１９２において、選択された第２番目の顔ｉと、第１番目の顔との距離が算出され、その算出された距離が、一定値（閾値）以下であるか否かが判断される。このステップＳ１９２における処理は、第１番目の顔と、近傍に位置する顔を探索するための処理である。
【０１０８】
ステップＳ１９２において、第１番目の顔と第２番目の顔との距離は、一定値以下ではないと判断された場合、ステップＳ１９１に処理が戻され、新たに第２番目の顔が選択され、同様の処理が繰り返される。
【０１０９】
一方、ステップＳ１９２において、第１番目の顔と第２番目の顔との距離は、一定値以下であると判断された場合、ステップＳ１９３に処理が進められ、カウンタの値が２に設定される。カウンタとは、その時点で、第１番目の顔を基準としたときに、その第１番目の顔とグループ化される可能性のある顔の個数を示す。カウンタの初期値は、第１番目の顔が選択されている状態であるので、１である。よって、ステップＳ１９２において、第１番目の顔と第２番目の顔との距離は、一定値以下であると判断された場合、その第２番目の顔が追加されたことになり、カウンタの値が２とされる。
【０１１０】
ステップＳ１９４において、他顔探索処理が実行される。この他顔探索処理とは、第１番目の顔と第２番目の顔の他に、さらに第１番目の顔と第２番目の顔で構成されるグループに追加される顔があるか否かを探索するための処理である。ステップＳ１９４における他顔探索処理について、図１３のフローチャートを参照して説明する。
【０１１１】
ステップＳ２３１において、集合０に、第１番目の顔と第２番目の顔以外の全ての「可」顔が入れられる。そして、ステップＳ２３２において、集合Ｇに、第１番目の顔と第２番目の顔が入れられる。すなわちこの時点で、集合Ｇと集合０が生成され、集合Ｇは、第１番目の顔と第２番目の顔が含まれ、それ以外の顔は集合０に含まれる状態とされる。
【０１１２】
ステップＳ２３３において、集合０から、顔ｊが選択される。ステップＳ２３４において、集合Ｇの顔に顔ｊを含めた近似直線が作成される。すなわちこの場合、第１番目の顔、第２番目の顔、および顔ｊから近似直線が生成される。そして、ステップＳ２３５において、顔ｊと近似直線の判断処理が実行される。このステップＳ２３５において実行される顔ｊと近似直線の判断処理について、図１４のフローチャートを参照して説明する。
【０１１３】
ステップＳ２７１において、近似直線と顔ｊとの距離が一定値（閾値）以下であるか否かが判断される。ステップＳ２７１において、近似直線と顔ｊとの距離が一定値以下であると判断された場合、ステップＳ２７２に処理が進められる。ステップＳ２７２において、顔ｊは、既にグループ化された顔のどれかとの距離が一定値以下であるか否かが判断される。ステップＳ２７２において、顔ｊは、既にグループ化された顔のどれかとの距離が一定値以下であると判断された場合、ステップＳ２７３に処理が進められる。
【０１１４】
すなわち、顔ｊが近似直線と近く、かつ、近似直線を生成するのに用いられた顔ｊ以外の顔（例えば、この場合、第１番目の顔と第２番目の顔）にも近接していると判断された場合、ステップＳ２７３において、真（true）との判断結果が出力される。そして、処理は、ステップＳ２３６（図１３）に進められる。
【０１１５】
一方、ステップＳ２７１において、近似直線と顔ｊとの距離が一定値以下ではないと判断された場合、または、ステップＳ２７２において、顔ｊは、既にグループ化された顔のどれかとの距離が一定値以下ではないと判断された場合、ステップＳ２７４に処理が進められる。ステップＳ２７４において、偽（false）との判断結果が出力される。
【０１１６】
すなわち、顔ｊが近似直線と近くないか、または、近似直線には近いが、近似直線を生成するのに用いられた顔ｊ以外の顔（例えば、この場合、第１番目の顔と第２番目の顔）には近接していないと判断された場合、ステップＳ２７４において、偽（false）との判断結果が出力される。そして、処理は、ステップＳ２３６（図１３）に進められる。
【０１１７】
図１３のフローチャートの説明に戻る。ステップＳ２３５において、顔ｊと近似直線の判断処理が終了され、判断結果が出されると、ステップＳ２３６において、その判断結果は、真であるか否かが判断される。ステップＳ２３６において、その判断結果は、真であると判断された場合、ステップＳ２３７に処理が進められ、その判断結果は、偽であると判断された場合、ステップＳ２３７の処理はスキップされ、ステップＳ２３８に処理が進められる。
【０１１８】
ステップＳ２３７において、真と判断された顔ｊと暫定近似直線との傾きの差が求められる。この暫定近似直線は、グループ作成前処理（図６のステップＳ８１、図７のフローチャート）において作成された近似直線（ステップＳ１０２の処理で作成された暫定近似直線またはステップＳ１０８の処理で作成された近似直線）が用いられる。算出された暫定近似直線との傾きの差分値は、一旦記憶され、ステップＳ２３８に処理が進められる。また、このようにして差分値が算出された顔ｊは、その時点で処理対象とされているグループへの追加候補とされる。
【０１１９】
ステップＳ２３８において、集合０内の全ての顔を処理対象としたか否かが判断される。ステップＳ２３８において、集合０内の全ての顔を処理対象としていないと判断された場合、ステップＳ２３３に処理が戻され、まだ処理対象とされていない顔が選択され、ステップＳ２３３以降の処理が繰り返される。このように、ステップＳ２３３乃至Ｓ２３８の処理が繰り返されることで、その時点で処理対象とされているグループへ追加する候補となる顔ｊが抽出される。そして、ステップＳ２３８において、集合０内の全ての顔を処理対象としたと判断された場合、ステップＳ２３９に処理が進められる。
【０１２０】
ステップＳ２３９において、顔が追加されたか否かが判断される。換言すれば、その時点で処理対象とされているグループへ追加する候補とされた顔ｊがあるか否かが判断される。ステップＳ２３９において、顔が追加されたと判断された場合、ステップＳ２４０に処理が進められる。ステップＳ２４０において、暫定近似直線との傾きの差が最も小さい他顔が選択される。ステップＳ２３７において、追加候補とされた顔ｊ毎に、暫定近似直線との傾きの差が求められ、記憶されているため、この記憶されている情報が用いられて、ステップＳ２４０における処理が実行される。
【０１２１】
ステップＳ２４０において選択された他顔は、ステップＳ２４１において、集合０から削除され、集合Ｇに追加される。集合Ｇに新たな顔が追加されたことにより、ステップＳ２４２において、その時点で集合Ｇに含まれる顔の数を表すカウンタの値が、１だけ加算された値とされる。そして、処理は、ステップＳ２３３に戻され、それ以降の処理が繰り返される。
【０１２２】
一方、ステップＳ２３９において、顔は追加されていないと判断された場合、換言すれば、その時点で処理対象とされているグループへ追加する候補となる顔ｊはないと判断された場合、図１３に示した他顔探索処理のフローチャートに基づく処理は終了され、ステップＳ１９５（図１２）に処理が進められる。
【０１２３】
図１２のフローチャートの説明に戻り、ステップＳ１９４において他顔探索処理が実行され、その結果が出されると、ステップＳ１９５において、カウンタの値が３以上であるか否かが判断される。ステップＳ１９５において、カウンタの値が３以上ではないと判断された場合、ステップＳ１９１に処理が戻され、それ以降の処理が繰り返される。この状態は、第１番目の顔と第２番目の顔以外の他顔は、グループ化されなかったことを表している。なお、この時点では、最終的なグループではなく、グループとしての候補の状態である。
【０１２４】
一方、ステップＳ１９５において、カウンタの値が３以上であると判断された場合、ステップＳ１９６に処理が進められる。ステップＳ１９６において、グループ内顔評価処理が実行される。このグループ内顔評価処理は、その時点で、グループとして候補とされている顔が、グループとして登録して良いか否か、そのグループに含まれる顔として適切であるか否かなどを評価する処理である。
【０１２５】
ステップＳ１９６において実行されるグループ内顔評価処理について、図１５のフローチャートを参照して説明する。ステップＳ３０１において、グループ内の顔の距離と、グループ内の顔のサイズの平均値（平均顔サイズ）が算出される。例えば、図８に示したような画像１０１が処理対象とされている画像であり、顔１１３、顔１１４、顔１１５が、グループ内の顔として設定されている場合、顔１１３と顔１１４、顔１１３と顔１１５、および顔１１４と顔１１５の各距離が算出され、一旦記憶される。また、顔１１３乃至１１５の平均顔サイズが算出される。
【０１２６】
ステップＳ３０１における算出結果は、ステップＳ３０２以降の処理に用いられる。ステップＳ３０２において、処理対象とするグループ内の顔が選択される。例えば、上記した例であれば、顔１１３が処理対象とするグループ内の顔として選択される。ステップＳ３０３において、その処理対象とされた顔（例えば、顔１１３）は、グループ内の他の顔（例えば、顔１１４や顔１１５）との距離が遠いか否かが判断される。この判断は、例えば、所定の閾値を設定しておき、その閾値以上の距離であれば遠いと判断されることで行われる。または、平均顔サイズが用いられ、例えば、平均顔サイズの２倍以内の距離ならば、遠くないと判断されるなどの処理が実行される。
【０１２７】
ステップＳ３０３において、処理対象とされた顔は、グループ内の他の顔との距離が遠いと判断された場合、ステップＳ３０４に処理が進められる。この場合、グループを構成する顔の候補として選択はされているが、他の顔とは距離が離れているため、そのグループに含めるには好ましくない可能性があると考えられるときである。よって、ステップＳ３０４において、処理対象とされている顔が、グループから除外される。グループから除外されることで、そのグループに含まれる顔の数が変わるため、ステップＳ３０５において、カウンタの値が、１だけ減算される。
【０１２８】
ステップＳ３０５において、カウンタの値が１だけ減算された場合、または、ステップＳ３０３において、処理対象とされた顔は、グループ内の他の顔との距離は遠くないと判断された場合、ステップＳ３０６に処理が進められる。ステップＳ３０６において、グループ内の全ての顔が処理対象とされたか否かが判断される。
【０１２９】
ステップＳ３０６において、グループ内の全ての顔はまだ処理対象とされていないと判断された場合、ステップＳ３０２に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ３０６において、グループ内の全ての顔は処理対象とされたと判断された場合、図１５に示したグループ内の顔評価処理が終了され、ステップＳ１９７（図１２）に処理が進められる。
【０１３０】
図１２のフローチャートの説明に戻り、ステップＳ１９６において、グループ内の顔評価処理が終了されると、その評価結果により、グループ内の顔の数が減ったか否かが判断される。すなわち、ステップＳ１９７において、カウンタの値が３以上であるか否かが判断される。ステップＳ１９７において、カウンタの値が３以上ではないと判断された場合、ステップＳ１９１に処理が戻され、それ以降の処理が繰り返される。すなわち、第１番目の顔を含むグループ顔の抽出処理（この処理を含む近似直線を用いたグループ化の処理（図６のステップＳ８３））によれば、１つのグループに最低３つの顔が含まれなければグループが形成されないような処理とされている。
【０１３１】
一方、ステップＳ１９７において、カウンタの値が３以上であると判断された場合、ステップＳ１９８に処理が進められる。ステップＳ１９８において、近似直線と、グループに含まれている各顔との距離が、所定の範囲内であるか否かが判断される。ステップＳ１９８において、近似直線との距離の範囲は一定値以下ではないと判断された場合、ステップＳ１９１に処理が戻され、それ以降の処理が繰り返される。この場合、この処理対象とされていたグループは、グループとして設定されない。
【０１３２】
一方、ステップＳ１９８において、近似直線との距離の範囲は一定値以下であると判断された場合、ステップＳ１９９に処理が進められる。ステップＳ１９９において、グループのメンバとして確定される。すなわち、その時点で、処理対象とされているグループは、グループの候補から確定とされ、そのグループに含まれる顔が、そのグループを構成するメンバとして確定される。
【０１３３】
ステップＳ１９９において、グループが確定されると、ステップＳ２００に処理が進められる。ステップＳ２００において、全ての顔ｉを処理対象としたか否かが判断される。ステップＳ２００において、全ての顔ｉを処理対象としていないと判断された場合、ステップＳ１９１に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ２００において、全ての顔ｉを処理対象としたと判断された場合、図１２に示した第１番目の顔を含むグループ顔の抽出処理は終了され、ステップＳ１６３（図１１）に処理が進められる。
【０１３４】
ステップＳ１６３において、全ての顔を第１番目の顔としたか否かが判断される。このステップＳ１６３以降の処理は、既に説明したので、ここではその説明を省略する。ステップＳ１６４において、グループ化に使用した近似直線が登録されると、ステップＳ８４（図６）に処理が進められる。
【０１３５】
図６に示したフローチャートの説明に戻る。ステップＳ８４において、孤立顔の近似直線グループへの追加処理が実行される。ステップＳ８４の処理は、ステップＳ８３の処理で生成された近似直線によるグループに追加する顔があるか否かを判断する処理である。具体的には、近似直線によるグループ内の含まれる顔のサイズの平均値に対して、一定の大きさを有し、近似直線との距離が一定の範囲内の顔を、そのグループに追加する処理である。このステップＳ８４において実行される、孤立顔の近似直線グループへの追加処理について、図１６のフローチャートを参照して説明する。
【０１３６】
［孤立顔の近似直線グループへの追加処理について］
ステップＳ３３１において、グループ化されていない「可」顔、および「未定」顔があるか否かが判断される。この“孤立顔の近似直線グループへの追加処理”においてのみ、「未定」顔も処理対象とされる。ステップＳ３３１において、グループ化されていない「可」顔、および「未定」顔はないと判断された場合、図１６に示した孤立顔の近似直線グループへの追加処理に関する処理は終了される。すなわちこの場合、処理対象となる顔がないため、処理は終了される。よって、ステップＳ３３１において、グループ化されていない「可」顔、および「未定」顔はないと判断された場合、ステップＳ８５やステップＳ８６（図６）において実行されるグループ化のための処理を省略し、ステップＳ８７に処理が進められるようにしても良い。
【０１３７】
一方、ステップＳ３３１において、グループ化されていない「可」顔、および「未定」顔があると判断された場合、ステップＳ３３２に処理が進められる。ステップＳ３３２において、近似直線を利用したグループがあるか否かが判断される。近似直線を利用したグループとは、前段のステップＳ８３において実行された“近似直線を用いたグループ化の処理”の結果、生成されたグループのことである。この図１６に示した“孤立顔の近似直線グループへの追加処理”は、既に生成されている近似直線を用いて生成されたグループに対して、新たに顔を追加する処理なので、ステップＳ３３２において、近似直線を利用したグループはないと判断された場合、図１６に示したフローチャートの処理は終了される。
【０１３８】
一方、ステップＳ３３２において、近似直線を利用したグループがあると判断された場合、ステップＳ３３３に処理が進められる。ステップＳ３３３において、処理対象とされるグループが選択される。ステップＳ３３４において、選択されたグループ内に含まれる顔の平均顔サイズが算出される。そして、ステップＳ３３５において、グループ化されていない「可」顔または「未定」顔のうちの１つの顔が選択され、処理対象に設定される。
【０１３９】
ステップＳ３３６において、処理対象として選択された顔が、ステップＳ３３４で算出された平均顔サイズに対して、一定範囲内の大きさであるか否かが判断される。選択された顔が、平均顔サイズよりも小さいか、または大きいかが判断される。この判断や、このような判断が行われる理由は、例えば、上述したステップＳ５１乃至Ｓ５３の処理と同様である。簡便に説明すれば、ステップＳ３３４乃至Ｓ３３６の処理により、既にグループとされている顔に対して、極端に大きい顔や小さい顔は、そのグループに含まれない顔であると判断され、除外されるために行われる（追加されないようにするために行われる）。
【０１４０】
ステップＳ３３６において、選択された顔は、グループ内の平均顔サイズに対して一定範囲内ではないと判断された場合、すなわち選択された顔は、グループに追加しないと判断されたことを意味するため、追加するための処理であるステップＳ３３７乃至Ｓ３４１の処理をスキップし、ステップＳ３４２に処理が進められる。
【０１４１】
一方、ステップＳ３３６において、選択された顔は、グループ内の平均顔サイズに対して一定範囲内であると判断された場合、すなわち選択された顔は、グループに追加する顔として候補にされたことを意味するため、追加するための処理であるステップＳ３３７乃至Ｓ３４１の処理が実行される。ステップＳ３３７において、選択されている顔とグループ化した近似直線との距離が求められる。近似直線は、ステップＳ１６４（図１１）の処理で登録されているため、その登録されている近似直線であり、処理対象とされているグループに対応付けられている近似直線が読み出されて用いられる。
【０１４２】
ステップＳ３３７において、選択された顔と近似直線との距離が求められると、ステップＳ３３８に処理が進められる。ステップＳ３３８において、処理対象として選択されている顔が「未定」顔であり、顔の位置が、グループ内のいずれかの顔から一定距離内に位置するか否かが判断される。ステップＳ３３８における判断は、処理対象とされている顔が「未定」顔である場合、ステップＳ３３８においてＹＥＳと判断され、ステップＳ３３９に処理が進められる。
【０１４３】
処理対象とされている顔が「未定」顔であった場合、その「未定」顔と、グループ内の各顔（「可」顔）との距離が算出される。そして、その距離が、一定距離内であるか否かが判断される。ステップＳ３３８において、処理対象とされている「未定」顔とグループ内の各顔（「可」顔）との距離が一定距離内ではないと判断された場合、ステップＳ３４２に処理が進められる。すなわちこのような場合、「未定」顔は、処理対象とされているグループには追加されないと判断され、ステップＳ３３９乃至３４１の処理がスキップされて、ステップＳ３４１に処理が進められる。
【０１４４】
一方、ステップＳ３３８において、処理対象とされている「未定」顔とグループ内の各顔（「可」顔）との距離が一定距離内であると判断された場合、ステップＳ３３９に処理が進められる。ステップＳ３３９において、顔ｊ（この場合、処理対象とされている「可」顔または「未定」顔）と近似直線の判断処理が実行される。この顔ｊと近似直線の判断処理は、図１４に示したフローチャートに基づいて行われる。図１４に示したフローチャートについては既に説明したので、ここでは、その説明を省略する。
【０１４５】
ステップＳ３３９における処理が実行されることにより、“真”または“偽”という判断結果が出力される。“真”との判断結果は、グループに追加する顔であったことを表し、“偽”という判断結果は、グループに追加しない顔であったことを表す。ステップＳ３４０において、判断結果は、“真”であったと判断された場合、ステップＳ３４１に処理が進められ、“偽”であったと判断された場合、ステップＳ３４１の処理はスキップされ、ステップＳ３４２に処理が進められる。
【０１４６】
ステップＳ３４１において、処理対象とされている顔（「可」顔または「未定」顔）が、その時点で処理対象とされているグループに追加され、登録される。このようにして、既に生成されているグループに顔が追加、登録される。
【０１４７】
ステップＳ３４２において、全てのグループ化されていない「可」顔および「未定」顔を処理対象としたか否かが判断される。ステップＳ３４２において、全てのグループ化されていない「可」顔および「未定」顔を処理対象としていないと判断された場合、ステップＳ３３５に処理が戻され、まだ処理対象とされていない「可」顔または「未定」顔が選択され、その選択された顔に対して、ステップＳ３３６以降の処理が繰り返される。
【０１４８】
一方、ステップＳ３４２において、全てのグループ化されていない「可」顔および「未定」顔を処理対象としたと判断された場合、ステップＳ３４３に処理が進められる。ステップＳ３４３において、全てのグループ化に使用した近似直線を処理対象としたか否かが判断される。ステップＳ３４３において、全てのグループ化した近似直線（全てのグループ）を処理対象としていないと判断された場合、ステップＳ３４３に処理が戻され、まだ処理対象とされていないグループが選択され、ステップＳ３３４以降の処理が繰り返される。
【０１４９】
一方、ステップＳ３４３において、全てのグループ化した近似直線を処理対象としたと判断された場合、図１６に示したフローチャートに基づく孤立顔の近似直線グループへの追加処理は終了され、ステップＳ８５（図６）に処理が進められる。
【０１５０】
図６のフローチャートの説明に戻る。ステップＳ８４において、孤立顔の近似直線グループへの追加処理が実行されたことにより、条件を満たす孤立顔が、グループに追加される。しかしながら、まだグループに追加されていない、グループ化されていない「可」顔が存在する可能性があるため、ステップＳ８５において、座標の平均からの距離を利用したグループ化の処理が実行される。この“座標の平均からの距離を利用したグループ化”とは、処理対象とされる顔から、第１の顔を選択し、その第１の顔を含む他の顔との座標平均からの各顔の距離を求め、その距離に基づき、最も距離が小さくなるものをグループとして作成する処理である。
【０１５１】
「グループ化の処理における座標の平均からの距離を利用したグループ化の処理」
ステップＳ８５において実行される座標の平均からの距離を利用したグループ化の処理について、図１７のフローチャートを参照して説明する。ステップＳ３６１において、集合Ｇが空にされる。この集合Ｇは、“他顔探索処理”（図１３）の処理で用いられた集合Ｇであり、この集合Ｇは、第１番目の顔や第２番目の顔が入れられる集合である。ステップＳ３６１において、集合Ｇが空集合にされるのは、“他顔探索処理”（図１３）のときに入れられた第１番目の顔などが残っている可能性があるため、それらをなくすために行われる。
【０１５２】
ステップＳ３６２において、グループ化されてない「可」顔が２以上あるか否かが判断される。この“座標の平均からの距離を利用したグループ化の処理”は、“孤立顔の近似直線グループへの追加処理”（ステップＳ８４（図６））と異なり、「可」とのタグが付けられている「可」顔のみが処理対象とされ、「未定」とのタグが付けられた「未定」顔は、処理対象とされない。
【０１５３】
ステップＳ３６２において、グループ化されていない「可」顔は、２以上ないと判断された場合、図１７に示した座標の平均からの距離を利用したグループ化の処理は、終了される。すなわち、グループには、２つの顔が最低限必要なため、２以上の「可」顔がない場合、処理は終了される。
【０１５４】
一方、ステップＳ３６２において、グループ化されていない「可」顔は、２以上あると判断された場合、ステップＳ３６３に処理が進められる。ステップＳ３６３において、集合候補Ｇｃが空集合にされる。この集合候補Ｇｃは、集合Ｇに対して追加する「可」顔の候補が入れられる集合である。
【０１５５】
ステップＳ３６４において、第１番目の顔が、グループ化されていない「可」顔から選択され、集合候補Ｇｃに入れられる。ステップＳ３６４において、第１番目の顔とのグループ化候補判定処理が実行される。
【０１５６】
図１８のフローチャートを参照し、ステップＳ３６５で実行される“第１番目の顔とのグループ化候補判定処理”について説明する。
【０１５７】
ステップＳ３８１において、ステップＳ３６４（図１７）において選択された第１番目の顔が、集合候補Ｇｃに追加される。ステップＳ３８２において、以下の３つの条件を満たす「可」顔が、処理対象とされている画像内にあるか否かが判断される。
【０１５８】
条件１“グループ化されていない”、
条件２“集合候補Ｇｃに含まれていない”、
条件３“ｋ番目の追加顔として未使用の「可」顔である”
の、３つの条件を満たす「可」顔が、処理対象とされている画像内にあるか否かが判断される。条件３の“ｋ番目の追加顔として未使用の「可」顔である”とは、その時点で処理対象とされている第１番目の顔に対して、集合候補Ｇｃに入れるか否かの判断が行われていない「可」顔であることを意味する。
【０１５９】
ステップＳ３８２において、条件１乃至３を満たす「可」顔があると判断された場合、ステップＳ３８３に処理が進められる。ステップＳ３８３において、集合候補Ｇｃに対して追加する追加顔が、集合候補Ｇｃに存在していない「可」顔から選択される。
【０１６０】
ステップＳ３８４において、まず、集合候補Ｇｃ内の顔と追加顔との座標平均が算出される。少なくとも集合候補Ｇｃには、ステップＳ３８１において追加された第１番目の顔があり、その第１番目の顔の座標と、ステップＳ３８３で追加された「可」顔（追加顔）の座標との距離が算出される。仮に、集合候補Ｇｃに第１番目の顔のみが追加されていた場合には、この算出された距離が、集合候補Ｇｃの顔と追加顔との座標平均とされる。
【０１６１】
集合候補Ｇｃに、第１番目の顔以外の顔も含まれていた場合、その第１番目の顔以外の顔の座標と、追加顔の座標が用いられ、距離が算出される。このようにして、集合候補Ｇｃ内の全ての顔と、追加顔との距離が求められ、求められた距離の総和が求められ、その総和を、集合候補Ｇｃ内の顔の数で除算することで、集合候補Ｇｃの顔と追加顔との座標平均が算出される。
【０１６２】
さらに、ステップＳ３８４においては、算出された座標平均と、集合候補Ｇｃ内の各顔との距離、算出された座標平均と追加顔の距離が、それぞれ一定の値（閾値）以下であるか否かが判断される。例えば、座標平均としての座標と、集合候補Ｇｃ内の第１番目の顔の座標とが用いられ、その間の距離（距離Ａとする）が求められ、座標平均としての座標と、追加顔の座標とが用いられ、その間の距離（距離Ｂ）が求められる。この距離Ａと距離Ｂが、ともに閾値以下であるか否かが判断される。
【０１６３】
ステップＳ３８４において、距離が閾値以下ではないと判断された場合、ステップＳ３８２に処理が戻され、それ以降の処理が繰り返される。すなわち、新たに追加顔が選択され、その選択された追加顔に対して、ステップＳ３８３以降の処理が繰り返される。
【０１６４】
一方、ステップＳ３８４において、距離が一定値以下であると判断された場合、ステップＳ３８５に処理が進められる。ステップＳ３８５において、集合候補Ｇｃ内の顔と追加顔との座標の平均と、集合候補Ｇｃ内の顔との距離の総和が求められる。集合候補Ｇｃ内の顔と追加顔との座標の平均は、ステップＳ３８４において算出された座標平均を用いることができる。
【０１６５】
例えば、集合候補Ｇｃに第１番目の顔のみが登録されている状態のときであれば、第１番目の顔と追加顔との座標の平均値が算出される（算出されている座標平均が用いられる）。そして、集合候補Ｇｃ内には、第１番目の顔のみが登録されている状態なので、第１番目の顔と座標平均との距離が求められ、その距離が、距離の総和とされる。
【０１６６】
仮に、集合候補Ｇｃ内に、第１番目の顔以外の顔（第２番目の顔とする）が含まれていたような場合、その第２番目の顔と座標平均との距離も求められ、その距離と、第１番目の顔と座標平均との距離とが加算された距離が、距離の総和とされる。
【０１６７】
このようにして座標平均と、集合候補Ｇｃ内の各顔との距離がそれぞれ求められ、距離の総和が算出される。距離の総和が算出されると、ステップＳ３８６に処理が進められる。ステップＳ３８６において、追加顔として、グループ化されていない全ての「可」顔が処理対象とされたか否かが判断される。
【０１６８】
ステップＳ３８６において、追加顔として、グループ化されていない全ての「可」顔が処理対象とされていないと判断された場合、ステップＳ３８２に処理が戻され、それ以降の処理が繰り返される。
【０１６９】
一方、ステップＳ３８６において、追加顔として、グループ化されていない全ての「可」顔が処理対象とされたと判断された場合、ステップＳ３８７に処理が進められる。ステップＳ３８２乃至Ｓ３８６の処理が繰り返されることで、集合候補Ｇｃに追加される顔の候補が、複数存在している可能性がある。複数存在している場合、どの追加顔が、その時点で処理対象とされている集合候補Ｇｃに追加するのに適しているかを判断し、追加する必要がある。そのために、ステップＳ３８７における処理が実行される。
【０１７０】
ステップＳ３８７において、集合候補Ｇｃ内の顔と追加顔の座標平均と、集合候補Ｇｃ内の顔との距離との総和が最も小さくなる追加顔が集合候補Ｇｃ内に加えられる。
【０１７１】
例えば、集合候補Ｇｃ内に、第１番目の顔、第２番目の顔、および第３番目の顔が存在し、追加顔Ａと追加顔Ｂが集合候補Ｇｃに追加される候補の顔として処理対象となっている場合を考える。この場合、まず、追加顔Ａと座標平均の距離１、追加顔Ａと第１番目の顔との距離２、追加顔Ａと第２番目の顔との距離３、および追加顔Ａと第３番目の顔との距離４がそれぞれ算出される。そして、距離１、距離２、距離３、距離４が加算された値が距離の総和５とされる。
【０１７２】
同様に、追加顔Ｂと座標平均の距離６、追加顔Ｂと第１番目の顔との距離７、追加顔Ｂと第２番目の顔との距離８、および追加顔Ｂと第３番目の顔との距離９がそれぞれ算出される。そして、距離６、距離７、距離８、距離９が加算された値が距離の総和１０とされる。
【０１７３】
この場合、総和５と総和１０が比較され、小さい値が算出された追加顔が、集合候補Ｇｃに加えられる。例えば、総和５の方が、総和１０よりも小さい値であった場合、追加顔Ａが、集合候補Ｇｃに加えられ、第４番目の顔とされる。
【０１７４】
このようにして、集合候補Ｇｃに追加顔が追加されると、ステップＳ３８２に処理が戻され、それ以降の処理が繰り返される。ステップＳ３８２乃至Ｓ３８７の処理が繰り返されることにより、その時点で、処理対象とされている第１番目の顔とグループとしても良い候補となる顔が、集合候補Ｇｃに追加される。
【０１７５】
ステップＳ３８７において、集合候補Ｇｃに追加顔が追加されると、ステップＳ３８２に処理が戻される。ステップＳ３８２における処理については既に説明したが、条件１乃至３の３つの条件を満たすか否かが判断される処理である。ステップＳ３８２においては、条件のうちの１つとして条件３があり、その条件３として“ｋ番目の追加顔として未使用の「可」顔があるか”という条件が満たされるか否かが判断される。また、ステップＳ３８６において、追加顔としてグループ化されていない全ての「可」顔が処理対象とされたか否かが判断され、その判断結果が、全ての「可」顔が処理対象とされたと判断されたときに、ステップＳ３８７に処理がくる。
【０１７６】
よって、ステップＳ３８７に処理が来たときには、既に、全ての「可」顔が処理対象とされたときであるので、ステップＳ３８７からステップＳ３８２に処理が来たときには、基本的に、条件１乃至３は満たされないと判断され、処理は、ステップＳ３８８に進められる。
【０１７７】
ステップＳ３８８において、集合Ｇは空であるか否かが判断される。ステップＳ３８８において、集合Ｇが空ではないと判断された場合、ステップＳ３８９に処理が進められる。ステップＳ３８９において、集合Ｇ内の顔の数の合計と、集合候補Ｇｃ内の顔の数の合計が比較され、集合候補Ｇｃ内の顔の数の合計の方が、集合Ｇ内の顔の数の合計よりも大きいか否かが判断される。
【０１７８】
ステップＳ３８９において、集合候補Ｇｃ内の顔の数の合計の方が、集合Ｇ内の顔の数の合計よりも大きくはないと判断された場合、換言すれば、同数、またはそれ以下であると判断された場合、ステップＳ３９０に処理が進められる。ステップＳ３９０において、集合Ｇ内の顔の数の合計と、集合候補Ｇｃ内の顔の数の合計が、同数であり、座標平均と各顔の距離の総和は、集合候補Ｇｃの方が小さいか否かが判断される。
【０１７９】
座標平均と各顔の距離の総和は、集合Ｇ、集合候補Ｇｃのともに、例えば、ステップＳ３８７の処理において算出されているため、その値を用いることができる。集合Ｇは、後述するように、集合候補Ｇｃが集合Ｇと設定されるため、その集合Ｇも、ステップＳ３８７の処理を経ているため、座標平均と各顔の距離の総和も算出されている。
【０１８０】
ステップＳ３９０において、集合Ｇ内の顔の数の合計と、集合候補Ｇｃ内の顔の数の合計が同数であり、座標平均と各顔の距離の総和は、集合候補Ｇｃの方が小さいと判断された場合、ステップＳ３９１に処理が進められる。ステップＳ３９１には、ステップＳ３８８において、集合Ｇは空ではないと判断された場合、またはステップＳ３８９において、集合候補Ｇｃ内の顔の数の合計の方が、集合Ｇ内の顔の数の合計よりも大きくないと判断された場合にもくる。
【０１８１】
ステップＳ３９１において、その時点で処理対象とされている集合候補Ｇｃが、集合Ｇに設定される。すなわち、候補ではなく、グループとして設定される。
【０１８２】
ステップＳ３８８からステップＳ３９１に処理が来るのは、集合Ｇが空である場合であるので、集合候補Ｇｃと比較する対象がなく、そのためにステップＳ３８９とステップＳ３９０の処理がスキップされて、ステップＳ３９１に処理がくる。また、集合Ｇが空である場合には、集合候補Ｇｃを集合Ｇと設定することで、新たなグループを作成するために、このように処理が行われるように構成されている。
【０１８３】
ステップＳ３８９からステップＳ３９１に処理が来るのは、集合候補Ｇｃ内の顔の合計の方が、集合Ｇ内の顔の合計よりも大きいと判断された場合であり、集合候補Ｇｃに含まれる顔の数が、グループとして設定するのにふさわしい数であると判断できる。よって、この場合も、ステップＳ３９１において、集合候補Ｇｃが集合Ｇと設定される。
【０１８４】
ステップＳ３９０からステップＳ３９１に処理が来るのは、集合Ｇ内の顔の合計と、集合候補Ｇｃ内の顔の合計が同数であり、座標平均と各顔の距離の総和は、集合候補Ｇｃの方が小さいと判断された場合である。この場合、集合候補Ｇｃ内の顔同士は、集合Ｇ内の顔同士よりも、小さい範囲内に存在することを意味する。換言すれば、集合候補Ｇｃ内の顔同士は、集合Ｇ内の顔同士よりも、人間関係的には、より親しい関係にあると判断でき、そのようなときには、ステップＳ３９１において、集合候補Ｇｃが集合Ｇに設定される。
【０１８５】
このように、ステップＳ３９１において、集合候補Ｇｃが集合Ｇに設定されると、“第１番目の顔とのグループ化候補判定処理”は終了され、ステップＳ３６６（図１７）に処理が進められる。
【０１８６】
一方、ステップＳ３９０において、集合Ｇ内の顔の合計と、集合候補Ｇｃ内の顔の合計が同数であり、座標平均と各顔の距離の総和は、集合候補Ｇｃの方が小さいと判断された場合も、“第１番目の顔とのグループ化候補判定処理”は終了され、ステップＳ３６６（図１７）に処理が進められる。
【０１８７】
“第１番目の顔とのグループ化候補判定処理”が実行されることで、集合候補Ｇｃが、集合Ｇに設定され、新たに集合Ｇが生成されるか、または、集合候補Ｇｃが、集合Ｇに設定されずに、新たに生成された集合Ｇが存在しない状態となる。
【０１８８】
ステップＳ３６６において、第１番目の顔として、グループ化されていない全ての「可」顔が処理対象とされたか否かが判断される。ステップＳ３６６において、第１番目の顔として、グループ化されていない全ての「可」顔は、まだ処理対象とされていないと判断された場合、ステップＳ３６４に処理が戻され、新たな「可」顔が第１番目の顔として選択され、それ以降の処理が繰り返される。
【０１８９】
ステップＳ３６４乃至Ｓ３６６の処理が繰り返されることで、グループ化されていない全ての「可」顔が第１番目の顔とされたときに、集合Ｇが生成されるか否かが判断される。例えば、グループ化されていない「可」顔が３個あった場合、３回、ステップＳ３６４乃至Ｓ３６６の処理が繰り返される。
【０１９０】
ステップＳ３６６において、第１番目の顔として、グループ化されていない全ての「可」顔が処理対象とされたと判断された場合、ステップＳ３６７に処理が進められる。ステップＳ３６７において、集合Ｇに顔が加えられているか否かが判断される。この判断は、ステップＳ３９１（図１８）の処理が行われた否かにより判断結果が異なる。すなわち、ステップＳ３９１の処理が行われることにより、集合候補Ｇｃが集合Ｇと設定された場合、ステップＳ３６７において、集合Ｇに顔が加えられたと判断され、ステップＳ３６８に処理が進められる。
【０１９１】
一方、ステップＳ３９１の処理が行われなかった場合、集合候補Ｇｃが集合Ｇと設定されることなく、集合候補Ｇｃが残っているため、ステップＳ３６７において、集合Ｇに顔が加えられていないと判断され、ステップＳ３６３に処理が戻され、それ以降の処理が繰り返される。この場合、ステップＳ３６３において、集合候補Ｇｃが空集合にされることにより、新たな集合候補Ｇｃが作成されることになる。
【０１９２】
ステップＳ３６８において、集合Ｇが新規グループとして追加され、ステップＳ３６１に処理が戻され、それ以降の処理が繰り返される。すなわち、ステップＳ３６１において、集合Ｇが空集合にされ、ステップＳ３６２以降の処理が繰り返されることにより、新たな集合Ｇに対する処理が実行されることになる。
【０１９３】
ステップＳ３６８における処理で、集合Ｇが新規グループとして追加されることにより、その追加される集合Ｇに含まれる「可」顔は、グループ化された「可」顔になるため、ステップＳ３６２以降の処理の対象とはされなくなる。その結果、ステップＳ３６２において、グループ化されていない「可」顔が２個以上ないと判断された場合、換言すれば、グループ化されていない「可」顔が、１個または０個であると判断された場合、図１７に示した“座標平均からの距離を利用したグループ化の処理”は終了され、ステップＳ８６（図６）に処理が進められる。
【０１９４】
図６のフローチャートの説明に戻る。ステップＳ８５において、座標平均からの距離を利用したグループ化の処理が実行されることにより、グループ化されていない「可」顔の個数は、１個または０個となっている。１個の場合、まだグループ化されていない「可」顔が存在することになるため、ステップＳ８６において、単独で残った顔のグループ化の処理が実行される。この“単独で残った顔のグループ化の処理”とは、グループに含まれていない顔を処理対象として、単独で残った顔をグループとする処理であり、顔のサイズが、顔のサイズの平均値に対して一定値以上の大きさがある顔を１つのグループとする処理である。
【０１９５】
「グループ化の処理における単独で残った顔のグループ化の処理」
ステップＳ８６において実行される単独で残った顔のグループ化の処理について、図１９のフローチャートを参照して説明する。ステップＳ４１１において、グループ化されてない「可」顔があるか否かが判断される。この“単独で残った顔のグループ化の処理”は、「可」とのタグが付けられている「可」顔のみが処理対象とされ、「未定」とのタグが付けられた「未定」顔は、処理対象とされない。また、仮にグループ化されていない「可」顔が１つであった場合も処理が実行される。
【０１９６】
ステップＳ４１１において、グループ化されていない「可」顔はないと判断された場合、処理すべき「可」顔がないことを意味するため、図１９に示したフローチャートの処理は終了される。
【０１９７】
一方、ステップＳ４１１において、グループ化されていない「可」顔があると判断された場合、ステップＳ４１２に処理が進められる。ステップＳ４１２において、グループ化されていない「可」顔から、１つの「可」顔が処理対象として選択される。ステップＳ４１３において、選択された「可」顔のサイズが、平均顔サイズに比べて閾値以上の大きさであるか否かが判断される。
【０１９８】
ステップＳ４１３において用いられる平均顔サイズは、この処理の前までの処理で生成されたグループがあるか否かにより異なる。すなわち、ステップＳ８３乃至Ｓ８５の各処理が実行されたことにより、少なくとも１つのグループが生成されていた場合、グループ化されている全ての顔（グループに含まれる全ての顔）のサイズの平均値が、ステップＳ４１３において用いられる平均顔サイズとされる。
【０１９９】
一方で、ステップＳ８３乃至Ｓ８５の各処理が実行されたが、グループが１つも生成されなかった場合、全ての「可」顔のサイズの平均値が、ステップＳ４１３において用いられる平均顔サイズとされる。この場合、全ての「可」顔の個数は１個である。これは、上述したように、ステップＳ３６２（図１７）において、グループ化されていない「可」顔が２個以上ないと判断されたときに、ステップＳ８６に処理が進められ、このステップＳ４１３の処理が実行されるため、この時点で、全ての「可」顔の個数は１個である。
【０２００】
よって、グループが１つも生成されていない状態で、ステップＳ４１３の処理が実行されるときには、平均顔サイズとは、１個の「可」顔のサイズとされる。
【０２０１】
ステップＳ４１３において、処理対象とされている「可」顔が、平均顔サイズに比べて閾値上の大きさであると判断された場合、ステップＳ４１４に処理が進められる。ステップＳ４１４において、選択された「可」顔が、単独でグループ化される。すなわちこの場合、グループ化されていない「可」顔であるが、他の顔よりも比較的大きく撮影されている（平均顔サイズに比べて閾値以上の大きさで撮影されている）ため、撮影者が撮影を意図して撮影した人であると判断できる。よって、そのような人（顔）が、グループ化されないことにより、後段の処理対象とされないようなことを防ぐために、単独でもグループが作成されるようにする。
【０２０２】
このようにしてステップＳ４１４において、単独でグループが作成された場合、または、ステップＳ４１３において、平均顔サイズに比べて閾値以上の大きさではないと判断された場合、ステップＳ４１５に処理が進められる。ステップＳ４１５において、グループ化されていない全ての「可」顔が処理対象とされたか否かが判断される。
【０２０３】
ステップＳ４１５において、グループ化されていない全ての「可」顔は、処理対象とされていない（まだ処理対象とされていない「可」顔がある）と判断された場合、ステップＳ４１２に処理が戻され、まだ処理対象とされていない、グループ化されていない「可」顔が処理対象とされ、それ以降の処理が繰り返される。
【０２０４】
一方、ステップＳ４１５において、グループ化されていない全ての「可」顔は、処理対象とされたと判断された場合、図１９に示したフローチャートの処理は終了され、ステップＳ８７（図６）に処理が進められる。
【０２０５】
ステップＳ８７の処理に関する説明の前に、ここまでの処理で作成されたグループについて、図２０を参照して説明する。図２０に示した処理対象とされた画像２０１には、顔２１１乃至２２７が撮像されている。図２０中、顔の周りの四角形は、抽出された顔の範囲を示している。顔２１１乃至顔２２０は、ほぼ直線上に並んでいるため、“近似直線を用いたグループ化の処理”（図６のステップＳ８３における処理）により、グループ化（グループＡとする）される。ただし、顔２１６は、“孤立顔の近似直線への追加処理”（図６のステップＳ８４の処理）によりグループＡに追加される。同様に、顔２２１乃至顔２２５も、ほぼ直線上に並んでいるため、近似直線を用いたグループ化の処理（図６のステップＳ８３における処理）により、グループ化（グループＢとする）される。
【０２０６】
顔２２６や顔２２７は、グループＡが生成されたときに用いられた近似直線や、グループＢが生成されたときに用いられた近似直線と離れているため、グループＡ、グループＢのどちらにも含まれない。また、ステップＳ８４（図６）において、“孤立顔の近似直線グループへの追加処理”においても、グループＡの近似直線や、グループＢの近似直線とは離れているため、この処理においては、グループ化されてない「可」顔として扱われる。
【０２０７】
顔２２６と顔２２７は、比較的近い位置に存在している。このためステップＳ８５における“座標平気からの距離を利用したグループ化の処理”が実行されることにより、顔２２６と顔２２７は、１つのグループ（グループＣとする）とされる。
【０２０８】
画像２０１からは、グループＡ乃至Ｃの３つのグループが生成される。この場合、ステップＳ８５における処理が実行されることにより、グループ化されていない「可」顔が存在しない状態となる。よって、ステップＳ８６において“単独で残った顔に対するグループ化の処理”が実行されても、ステップＳ４１１（図１９）において、グループ化されていない「可」顔は存在しないと判断され、グループ化の処理は終了される。
【０２０９】
［多層化の処理について］
このようにして複数のグループが生成された場合、ステップＳ８７（図６）において、多層化の処理が実行される。上記したような処理が実行されることにより、１または複数の顔を含むグループが作成されると、作成されたグループを、さらにまとめるような処理が実行される。ステップＳ８７において実行される多層化の処理について、図２１を参照して説明する。
【０２１０】
図２１Ａは、処理対象とされている画像について説明するための図である。図２１Ａに示したように、画像２５１には、顔２６１乃至２６６の６個の顔が撮像されている。顔２６１乃至顔２６３は、画像２５１の上側、左側部分で、横並びの状態で撮像され、顔２６４、顔２６５は、画像２５１の下側、左側部分で、横並びの状態で撮像されている。顔２６６は、顔２６１乃至２６５とは離れた位置で、下側、右側の部分に、単独で撮像されている。
【０２１１】
このような画像２５１が、処理対象とされるとき、グループ化される前の状態を、擬似的に図示すると、図２１Ｂとなる。図２１Ｂは、画像２５１に撮像されている顔２６１乃至２６６を、横並びに並べた状態である。
【０２１２】
このような画像２５１に対して、図６に示した“グループ化の作成処理”が実行されると、図２１Ｃに示すようにグループが生成される。顔２６１乃至２６３は、近い範囲で横並びに撮像されているため、例えば、“近似直線を用いたグループ化の処理”（ステップＳ８３）でグループ２７１とされる。
【０２１３】
同様に、顔２６４、顔２６５も、近い範囲で横並びに撮像されているため、例えば、“近似直線を用いたグループ化の処理”（ステップＳ８３）でグループ２７２とされる。これらに対して、顔２６６は、顔２６１乃至２６５とは離れた位置に単独で撮像されているため、“近似直線を用いたグループ化の処理”（ステップＳ８３）でグループ化はされず、“単独で残った顔に対するグループ化の処理”（ステップＳ８６）でグループ２７３にされる。
【０２１４】
このように、画像２５１からは、図２１Ｃに示すように、３つのグループ２７１、グループ２７２、およびグループ２７３が生成される。これらの３つのグループが、さらに多層化される。すなわち、図２１Ｄに示すように、グループ２７１とグループ２７２が、比較的近い位置に存在するグループであるので、それらのグループ２７１とグループ２７２を含むグループ２８１が生成される。換言すれば、グループ２７１とグループ２７２は、そのグループ同士の距離が、所定の閾値内である場合、結合したグループ２８１が生成される。
【０２１５】
さらに、グループ２８１とグループ２７３が、そのグループ同士の距離が、所定の閾値内であると判断され、結合したグループ２９１が生成される。
【０２１６】
このように、グループが生成され、そのグループ同士の距離が所定の閾値内であるグループ同士が、さらに大きなグループとして生成され、といった処理が繰り返される。図２１に示した例では、図２１Ｃに示したグループ２７１，２７２，２７３が第１階層のグループとされ、図２１Ｄに示したグループ２８１が第２階層のグループとされ、図２１Ｅに示したグループ２９１が第３階層のグループとされる。
【０２１７】
このように、複数の階層のグループは、最終的に全てのグループが１つの最上層グループにまとまるまで行われる。
【０２１８】
このような多層化の処理は、後述するタグ付けのときに用いられるのだが、そのタグ付けの結果が、例えば、第１階層のグループは、子供のグループと親のグループであり、第２階層のグループは、家族のグループであるといったように分類し、処理することが可能となる。
【０２１９】
このような処理により、多層化の処理が行われると、図６に示した“グループ化作成処理”は、終了され、処理は、ステップＳ３４（図３）に進められる。
【０２２０】
［構成タグの付加に関する処理について］
図３のフローチャートの説明に戻る。ステップＳ３３において、グループ作成処理が実行されることにより、グループが生成されると、その生成されたグループにタグを付けるといった処理が、ステップＳ３４において実行される。ステップＳ３４において実行される“構成タグの付加に関する処理”について、図２２のフローチャートを参照して説明する。
【０２２１】
ステップＳ４４１において、処理対象とされている画像内の所定のグループに対して、そのグループ内の人数、性別、年齢が確認される。例えば、ステップＳ１２（図２）において、顔認識処理が行われとき、顔認識部３１により、画像内における顔の位置、顔の大きさ、顔の向き、顔の属性（例えば、性別、年齢など）、顔の特徴量などが抽出されている。また、認識顔毎に、その顔を一意に識別するためのユニークなＩＤ（顔ＩＤ）が割り振られる。
【０２２２】
よって、このステップＳ４４１における処理では、所定のグループ内に存在する顔の顔ＩＤが取得され、その顔ＩＤに関連付けられて記憶されている性別や年齢などの顔の属性情報が取得される。
【０２２３】
ステップＳ４４１においては、グループ内の合計人数、グループ内の顔が、大人の男性、大人の女性（さらには、老人の男性、老人の女性）、男の子、女の子、大人の人数、子供の人数といった情報が、グループ毎に生成される。
【０２２４】
このような情報は、グループ内の人同士が、どのような構成なのか、例えば、家族、友人同士、といった関係を類推するための情報として用いることができる。例えば、処理対象とされるグループが家族であった場合、大人、かつ男女と、子供が含まれる場合が多く、そのような情報が取得されたときには、そのグループは家族関係があると類推できる。
【０２２５】
ステップＳ４４２において、グループ内の各顔が、笑顔であるか否かが判断され、笑顔である顔の数が、グループ内の顔の数のどの程度を占めるかの割合が笑顔判定スコアとして算出される。この笑顔の判定は、既存の技術を用いることができる。また、ここでは、グループ内の顔の個数に対する笑顔の顔の個数の割合を笑顔判定スコアとするとして説明を続けるが、他の方法で算出される値を笑顔判定スコアとしても良い。
【０２２６】
例えば、グループ内の各顔が、どの程度の笑い顔であるかのスコアを顔毎に算出し、そのスコアの総和や、乗算した値などを、そのグループに対する笑顔判定スコアとしても良い。このような笑顔判定スコアという情報を用いることで、例えば、笑顔であれば、楽しいときに撮った写真であると判断でき、そのような楽しいときに写真を撮影する仲である、例えば、親しい友人同士であると判断することができる。
【０２２７】
ステップＳ４４３において、ズーム判定スコアが算出される。このズーム判定スコアとは、グループ内で一定の閾値以上の顔サイズの有無を示すスコアである。このズーム判定スコアという情報から、その画像における処理対象とされているグループ内での主役が、どの顔であるのかといったようなことを推測することが可能である。
【０２２８】
ステップＳ４４４において、顔サイズスコアが算出される。この顔サイズスコアとは、グループ内の顔のサイズの平均値のことである。顔のサイズの平均値を求めることで、例えば、グループの顔のサイズの平均値が大きければ、そのグループの人達が、その画像内で重要な人達であるといった推測をすることが可能である。
【０２２９】
なお、ステップＳ４４３でズーム判定スコアが算出されるときや、ステップＳ４４４で顔サイズスコアが算出されるとき、顔のサイズが算出されるが、このサイズは、グループを作成する上述した処理で、何度か算出されているため、その算出された値を用いることが可能であり、そのようにした方が、より効率的に処理を行うことができるため、好ましい構成である。
【０２３０】
ステップＳ４４５において、グループ内の人数は、２人であるか否かが判断される。グループ内の人数が２人である場合、その２人は、等しい関係にある可能性が高いと判断される。例えば、カップルなどは、２人だけで撮像されていることが多いと考えられ、かつ、寄り添って撮像されていることが多いと考えられる。このようなことを考慮し、グループ内の人数が２人である場合、その２人の距離を測定することで、親密な関係であるか否かが判断されるようにする。
【０２３１】
すなわち、ステップＳ４４５において、グループ内の人数は、２人であると判断された場合、ステップＳ４４６に処理が進められ、顔同士の距離が算出される。例えば、顔の中心部分の座標を用いることで、顔同士の距離が算出される。この算出された距離が、一定の閾値以下である場合、顔同士が近い位置にあると判断され、等しい間柄でると判断される。
【０２３２】
このように、ステップＳ４４６において、顔同士の距離が算出された場合、または、ステップＳ４４５において、グループ内の人数は、２人ではないと判断された場合、ステップＳ４４７に処理が進められる。ステップＳ４４７において、各スコアから、属性候補が判断され、タグが付与される。
【０２３３】
ここで、属性候補を判断するときに参照されるテーブルについて、図２３を参照して説明する。また、属性候補が判断され、タグを付与するときに参照されるテーブルについて、図２４を参照して説明する。
【０２３４】
なおここでは、テーブルとして説明し、このテーブルは、例えば、グループ化の処理を実行するグループ化部２５（図１）に記憶され、適宜参照されるとして説明する。しかしながら、テーブルとして保持され、参照されるのではなく、プログラムなどの処理フローの１ステップとして、順次判断が行われるなどの処理で実現されても良い。また、ここでは、図２３に示したテーブル３２１と図２４に示したテーブル３２２は、別々のテーブルであるとして説明をするが、１つのテーブルにまとめることも可能である。さらに、これらのテーブルは、更新することも可能であるため、システムのバージョンアップなどのときに適宜更新することが可能である。さらに、以下に示す数値などは、一例であり、限定を示すものではない。
【０２３５】
図２３に示したテーブル３２１は、タグ名と備考が関連付けられたテーブルである。また、備考欄には、そのタグ名が付与されるときの条件が記載されている。図２４に示したテーブル３２２は、タグ名、ＩＤ、意味、および備考が関連付けられたテーブルである。
【０２３６】
テーブル３２１を参照することで、“ATR_NONE”とのタグ名は、“ラベル情報がない”グループに対して付けられることがわかる。そして、ラベル情報がないとは、“タグ情報なし”という意味であり、そのようなグループに対してはＩＤとして“０”が付けられることが、テーブル３２２を参照することでわかる。
【０２３７】
テーブル３２１を参照することで、“ATR_SOLO”とのタグ名は、“グループ化あり”であり“一人組”であるグループに対して付けられることがわかる。そして、“グループ化あり”であり“一人組”であるとは、“独り者”という意味であり、そのようなグループに対してはＩＤとして“１”が付けられることが、テーブル３２２を参照することでわかる。
【０２３８】
テーブル３２１を参照することで、“ATR_FAMILY”とのタグ名は、“グループ化あり”であり、“人数 > 2 ”であり、“(ATR_MAN + ATR_WOMAN ) > 0 ”であり、“ ATR_CHILD > 0”であり、“ ATR_MAN とATR_CHILDの人数比 <= Th1”であるグループに対して付けられることがわかる。
【０２３９】
“人数 > 2 ”とは、グループ内の人数が、２人より多いという条件（条件１とする）である。 “ATR_MAN”とは、後述するように男性の意味（男の子は含まない）であり、“ATR_WOMAN”とは女性の意味（女の子は含まない）である。よって、“(ATR_MAN + ATR_WOMAN ) > 0 ”とは、年齢が一定以上の、男性と女性が、合計で２人より多いときという条件（条件２とする）である。“ATR_CHILD”とは、子供（男の子、女の子を総称して子供とする）を意味する。よって、“ATR_CHILD > 0”とは、子供の数が、０人より多いときであるという条件（条件３とする）である。
【０２４０】
さらに“ATR_MAN とATR_CHILDの人数比 <= Th1”とは、男性と子供の人数比が閾値Th1以下であるという条件（条件４とする）である。そして、これらの条件１乃至４が満たされるときは、“家族”という意味であり、そのようなグループに対してはＩＤとして“２”が付けられることが、テーブル３２２を参照することでわかる。
【０２４１】
この条件１乃至４を満たすか否かのときに用いられる情報は、ステップＳ４４１（図２２）の処理で取得されたグループ内の人数、性別、年齢に関する情報である。なお、これらの数値や条件は一例である。例えば、閾値Th1は、ユーザにより設定可能な値である。また、条件1乃至４との記述をしたが、これらの条件も、一例であり、適宜変更可能であり、またユーザにより変更可能に構成されていても良い。すなわち、“家族（Family）の定義として、ユーザが望む条件が、ユーザにより設定されるようにされていても良く、そのようにした場合、適宜、上述した数値は変更される。
【０２４２】
テーブル３２１を参照することで、“ATR_PARENT_CHILD”とのタグ名は、“グループ化あり”であり、“ATR_MAN =1”または“ ATR_WOMAN = 1”という条件を満たし、かつ、“ATR_CHILD =1”であるグループに対して付けられることがわかる。すなわち、“ATR_PARENT_CHILD”とのタグ名は、グループ化されているグループに対して、男性が１人であるか、女性が1人であるグループであり、かつ、子供が１人であるグループに対して付けられタグ名であることが、テーブル３２１を参照することでわかる。
【０２４３】
なお、“ATR_MAN =1”または“ ATR_WOMAN = 1”という条件にしたが、“ATR_MAN =1”および“ ATR_WOMAN = 1”という条件でも良い。また、親子（PARENT_CHILD）の定義として、子供が１人の親子や、２人の親子など、さまざまな構成が考えられるため、“ATR_CHILD =1”という条件の“１”という数値も、例えば、デフォルトとしておき、ユーザが、自分の家族構成を反映して、例えば、子供が２人なら、“２”と変更できる数値とされている。
【０２４４】
これらの条件が満たされるか否かの判断のときに用いられる情報は、ステップＳ４４１（図２２）の処理で取得されたグループ内の人数、性別、年齢に関する情報である。そして、これらの条件が満たされるとき、“親子（父母を問わず）”という意味であり、そのようなグループに対してはＩＤとして“２０”が付けられることが、テーブル３２２を参照することでわかる。
【０２４５】
テーブル３２１を参照することで、“ATR_COUPLE”とのタグ名は、“グループ化あり”であり、“ATR_MAN = 1”であり、“ ATR_WOMAN = 1”であり、かつ、“ 顔間距離＜1.5”であるか、もしくは、“顔間距離 > 1.5”であり、“顔間距離 < 2”であり、“どちらかが笑顔”であるグループに対して付けられることがわかる。そして、これらの条件が満たされるとき、“ATR_COUPLE”とのタグ名が付けられ、“カップル”という意味であり、そのようなグループに対してはＩＤとして“２１”が付けられることが、テーブル３２２を参照することでわかる。
【０２４６】
カップルであるため、条件として、“ATR_MAN = 1”であり、かつ“ ATR_WOMAN = 1”という条件がある。すなわち、男性と女性が１人ずつであるという条件がある。この条件が満たされるとき、さらに、カップルであると判断されるために、“顔間距離＜1.5”であるという条件もある。すなわち、男女の距離が、1.5未満である場合、お互い寄り添っている状態であると判断できるため、カップルと判断するための条件として入れてある。
【０２４７】
または、男性と女性が１人ずつであるという条件が満たされるとき、さらにカップルであると判断されるために、“顔間距離 > 1.5”であるが、“顔間距離 < 2”であり、“どちらかが笑顔”であるという条件もある。すなわち、男女の距離が、1.5より大きいということで、多少の距離があるが、2よりも小さいということで、親しい間柄の距離であると判断できる。かつ、男女のうちのどちらかが笑顔であれば、カップルである可能性が高いと判断できるため、これらの条件が入れてある。
【０２４８】
このカップルというタグ名を付与するか否かの判断を行うときの情報は、ステップＳ４４１の処理で取得されたグループ内の人数、性別、年齢といった情報、ステップＳ４４２で取得された笑顔判定スコアの情報、およびステップＳ４４６で取得された顔同士の距離に関する情報である。
【０２４９】
なお、“顔間距離 > 1.5”や、“顔間距離 < 2”との表記をしたが、この“1.5”や“2”との数値は、顔同士の距離の算出の仕方、単位などに依存して変化する数値であるため、“1.5”や“2”に限定されるわけではない。また、これらの値は一例であり、実施のときに適切な数値が設定されることを意味する。以下の説明においても、数値をあげるが、その数値は限定を示すものではなく、一例を示すものである。
【０２５０】
テーブル３２１を参照することで、“ATR_FRIENDS_ADULT”とのタグ名は、“グループ化あり”であり、“(ATR_MAN+ ATR_WOMAN) =2”であり、“顔間距離 < 2”であるか、または“ 顔間距離 > 2 ”であり、“顔間距離 < 4” であり、“どちらかが笑顔”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_FRIENDS_ADULT”とのタグ名は、“友人2人組（大人）”という意味であり、そのようなグループに対してはＩＤとして“２２”が付けられることが、テーブル３２２を参照することでわかる。
【０２５１】
大人の友人の２人組であることを判断するための条件として、まず、“(ATR_MAN+ ATR_WOMAN) =2”という条件が挙げられている。この条件は、男性の２人組であるか、女性の２人組であるか、または、男性１人と女性１人の組み合わせのいずれかであれば、満たされる条件である。
【０２５２】
なおここでは、後述するように、“ATR_FRIENDS_GROUP_ADULT”というタグ名を設け、２人組の友達と、複数の友達のグループとを区別するために、“(ATR_MAN+ ATR_WOMAN) =2”との条件を例示したが、このような区別を行わない場合や、３人組の友達とのタグ名を付けたい場合など、適宜変更可能である。後述する“ATR_FRIENDS_GROUP_ADULT”なども、同様に、数値は、適宜変更可能であり、ユーザが所望な人数設定を行えるように構成されている。また、この設定された人数に応じて、図２４の“意味”という欄に書き込まれている情報も更新される。例えば、ここでは、“友人２人組（大人）”との意味が書き込まれているが、“(ATR_MAN+ ATR_WOMAN) =3”と変更された場合、“友人３人組（大人）”との意味に更新される。他の部分においても同様である。
【０２５３】
大人が２人存在するとき、“顔間距離 < 2”という条件が満たされれば、すなわち、顔同士が所定の閾値以下の距離であるときには、その２人は親しい間柄であると判断でき、友人であるというタグが付けられる。また、大人２人が存在するとき、“ 顔間距離 > 2 ”であり、少し離れた位置にいるが、“顔間距離 < 4” であるため、そんなに離れた位置にいるわけでもない、よって知らない仲ではないと推測できる状態の条件が満たされているとき、さらに“どちらかが笑顔”であるという条件が満たされれば、友人であると判断でき、友人とのタグが付けられる。
【０２５４】
この“友人２人組（大人）”というタグ名を付与するか否かの判断を行うときの情報は、ステップＳ４４１の処理で取得されたグループ内の人数、性別、年齢といった情報、ステップＳ４４２で取得された笑顔判定スコアの情報、およびステップＳ４４６で取得された顔同士の距離に関する情報である。
【０２５５】
テーブル３２１を参照することで、“ATR_FRIENDS_ CHILD”とのタグ名は、“グループ化あり”であり、“ATR_ CHILD =2”であり、“顔間距離 < 2”であるか、または“ 顔間距離 > 2 ”であり、“顔間距離 < 4” であり、“どちらかが笑顔”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_FRIENDS_A CHILD”とのタグ名は、“友人2人組（子供）”という意味であり、そのようなグループに対してはＩＤとして“２３”が付けられることが、テーブル３２２を参照することでわかる。
【０２５６】
子供の友人の２人組であることを判断するための条件として、まず、“ATR_ CHILD =2”という条件が挙げられている。この条件は、子供の２人組であるときに満たされる条件である。子供が２人存在するとき、“顔間距離 < 2”という条件が満たされれば、すなわち、顔同士が所定の閾値以下の距離であるときには、その２人は親しい間柄であると判断でき、友人であるというタグが付けられる。
【０２５７】
また、子供２人が存在するとき、“ 顔間距離 > 2 ”であり、少し離れた位置にいるが、“顔間距離 < 4” であるため、そんなに離れた位置にいるわけでもない、よって知らない仲ではないと推測できる状態の条件が満たされているとき、さらに“どちらかが笑顔”であるという条件が満たされれば、友人であると判断でき、友人とのタグが付けられる。
【０２５８】
この“友人２人組（子供）”というタグ名を付与するか否かの判断を行うときの情報は、ステップＳ４４１の処理で取得されたグループ内の人数、性別、年齢といった情報、ステップＳ４４２で取得された笑顔判定スコアの情報、およびステップＳ４４６で取得された顔同士の距離に関する情報である。
【０２５９】
テーブル３２１を参照することで、“ATR_FRIENDS_GROUP_ADULT”とのタグ名は、“グループ化あり”であり、“人数＞2”かつ“ (ATR_MAN+ ATR_WOMAN) > Th2* ATR_CHILD”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_FRIENDS_GROUP_ADULT”とのタグ名は、“友人３人以上（大人）”という意味であり、そのようなグループに対してはＩＤとして“３０”が付けられることが、テーブル３２２を参照することでわかる。
【０２６０】
テーブル３２１を参照することで、“ATR_FRIENDS_GROUP_CHILD”とのタグ名は、“グループ化あり”であり、“人数＞2 ”かつ“ATR_CHILD > Th3* (ATR_MAN+ ATR_WOMAN)”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_FRIENDS_GROUP_CHILD”とのタグ名は、“友人３人以上（子供）”という意味であり、そのようなグループに対してはＩＤとして“３１”が付けられることが、テーブル３２２を参照することでわかる。
【０２６１】
テーブル３２１を参照することで、“ATR_MAN”とのタグ名は、“個人追加時”であり、“adult - baby > Th4 adult >Th 5  gender >= Th6”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_MAN”とのタグ名は、“男性”という意味であり、そのようなグループに対してはＩＤとして“５１”が付けられることが、テーブル３２２を参照することでわかる。なお、Th4、Th5、Th6は、それぞれ所定の閾値である。
【０２６２】
テーブル３２１を参照することで、“ATR_WOMAN”とのタグ名は、“個人追加時”であり、“adult - baby > Th7 adult > Th8 gender < Th9”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_WOMAN”とのタグ名は、“女性”という意味であり、そのようなグループに対してはＩＤとして“５２”が付けられることが、テーブル３２２を参照することでわかる。なお、Th7、Th8、Th9は、それぞれ所定の閾値である。
【０２６３】
テーブル３２１を参照することで、“ATR_CHILD”とのタグ名は、“個人追加時”であり、“≠ adult, unclear”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_CHILD”とのタグ名は、“子供”という意味であり、そのようなグループに対してはＩＤとして“５３”が付けられることが、テーブル３２２を参照することでわかる。
【０２６４】
テーブル３２１を参照することで、“ATR_UNCLEAR”とのタグ名は、“個人追加時”であり、“adult - baby > Th10 adult <= Th11”であるという条件が満たされるときのグループに対して付けられることがわかる。そして、これらの情報が満たされるとき、“ATR_UNCLEAR”とのタグ名は、“素性不明”という意味であり、そのようなグループに対してはＩＤとして“９９”が付けられることが、テーブル３２２を参照することでわかる。なお、Th10、Th11は、それぞれ所定の閾値である。
【０２６５】
このようなタグ名（タグ名に対応するＩＤ）が、図２２のフローチャートを参照して説明した処理が実行されることで取得される各スコアが用いられて決定される。なお、図２３や図２４を参照したタグ名などは、一例である。よって、図２３や図２４に示していないタグ名や、そのタグ名と関連付けられる条件など、追加、削除、変更可能である。また、図２４に示したＩＤも、一例である。
【０２６６】
このようにして、ステップＳ４４７における処理、すなわち、各スコアから属性候補が判断され、タグが付与されるという処理が実行されることにより、画像内のグループに対してタグが付けられる。ステップＳ４４７における処理が終了されると、処理は、ステップＳ３５（図３）に進められる。
【０２６７】
［グループ構成データの出力について］
図３のフローチャートの説明に戻り、ステップＳ３４において、構成タグの付与に関する処理が終了されると、ステップＳ３５において、グループ構成データが出力される。グループ化の処理は、グループ化部２５（図１）で行われ、その処理結果は、人物相関データ生成部２３と、顔クラスタリング部２６に供給される。
【０２６８】
ステップＳ３５の処理が終了されると、処理は、ステップＳ１４（図２）に進められる。ステップＳ１４において、処理対象とされる画像データの全てを処理したか否かが判断される。すなわち、上述したグループ化の処理は、１の画像データ（１の画像）毎に行われる。そこで、ステップＳ１４において、処理対象とされる画像データの全てを処理したか否かが判断される。“処理対象とされる画像データ”とは、例えば、所定のフォルダ内に記憶されている画像データの全てであり、ここでは、画像データベース４２に記憶されている画像データの全てである。
【０２６９】
ステップＳ１４において、処理対象とされる画像データの全ては処理していないと判断された場合、ステップＳ１１に処理が戻され、それ以降の処理が繰り返される。ステップＳ１１乃至Ｓ１４の処理が繰り返されることにより、画像毎に、顔が検出され、グループが生成される。そして、ステップＳ１４において、処理対象とされる画像データの全てを処理したと判断された場合、ステップＳ１５に処理が進められる。
【０２７０】
ステップＳ１５において、顔クラスタリングの処理が実行される。また、ステップＳ１６において、顔クラスタリングの処理の結果を利用して人物が生成される。上記したように、複数の画像が処理されることにより、複数の画像から、複数の顔が抽出されている。それらの複数の顔のうち、一致する顔、すなわち、同一人物の顔は、同一人物の顔であるとしてまとめ、処理できるようにするための処理が、ステップＳ１５，Ｓ１６において実行される。
【０２７１】
顔クラスタリング部２６は、顔認識部３１から供給される顔識別特徴量、顔ＩＤ、画像ＩＤを取得すると、それらの情報を用いて、顔クラスタリング処理を実行する。すなわち、顔識別特徴量同士の類似度を用いて、同一人物であると判断される顔を抽出することで、グループピングを行う。
【０２７２】
各顔には、顔ＩＤが付されているため、同一人物であると判断された顔の顔ＩＤを統括するＩＤ（人物ＩＤとする）を新たに割り振り、顔ＩＤと人物ＩＤで、１つの顔を管理するようにしても良い。または、同一人物であると判断された顔の顔ＩＤを、同一のＩＤに書き直して、顔ＩＤだけで、１つの顔を管理するようにしても良い。なお、このようにした場合であっても、上述してきた顔ＩＤと区別するために、以下の説明においては、人物ＩＤと記述する。すなわち、ここでは、顔ＩＤは、顔画像を識別するためのＩＤであり、人物ＩＤは、人物を識別するためのＩＤであるとして説明を続ける。
【０２７３】
このような処理が繰り返されることにより、複数の人物が生成される。複数の人物が生成されると、それらの人物同士の親密度が計算される。すなわち、ステップＳ１７において、人物間の親密度の算出処理が実行される。このステップＳ１７において実行される人物間の親密度の算出処理について、図２５のフローチャートを参照して説明する。
【０２７４】
ステップＳ４８１において、顔クラスタリングにより同一人物の判断が行われる。この処理が実行される前の処理で、既に、同一人物と判断される顔は、グルーピングされているので、その結果を用いることができる。
【０２７５】
ステップＳ４８２において、人物毎に登場回数が算出される。これは、グルーピングされたグループ内に、いくつの顔が含まれているかを判断することで算出される。算出された登場回数は、人物毎に記憶される。
【０２７６】
ステップＳ４８２において、人物毎に登場回数が算出されると、ステップＳ４８３に処理が進められる。ステップＳ４８３において、処理対象とする人物が選択される。例えば、処理対象とされる人物ＩＤが選択されることで行われる。
【０２７７】
ステップＳ４８４において、他の人物との親密度スコアを算出するための距離スコアが算出される。ステップＳ４８４において、画像内でのグループ間の距離のスコア（距離スコア）が算出される。処理対象とされている画像内には、複数のグループが生成されている可能性がある。距離スコアは、次式（１３）に基づいて算出される。
【数６】
0005434569.tif 000007
【０２７８】
式（１３）において、Scoreｆは、顔ＩＤ（人物ＩＤ）間のグループ間の距離スコアを表し、Ｎtreeは、グループ間の階層の差を表す。階層とは、多層化の処理のときに説明した階層であり、図２１を参照して説明した階層のことである。なお、ここでは、式(１３)に基づき距離スコアが算出されるとして説明するため、例えば、図２６Ｃなどで、距離スコアとして、式（１３）に基づき算出された具体的な数値を例示して説明している。しかしながら、式（１３）は、距離スコアを算出する一例の式にすぎず、他の式に基づいて距離スコアが算出されても良い。よって、以下に例示する数値は、式（１３）に基づくときであり、他の式に基づいて算出される場合には、異なる値となることは言うまでもない。ここで、図２６を参照して、階層を用いた場合の距離スコアの算出についてさらに説明を加える。
【０２７９】
図２６Ａに示した画像３５１が処理対象とされた画像であり、まだグループ化の処理が実行されていないときの画像であるとする。図２６Ａに示した画像３５１には、４つの顔３６１乃至３６４が抽出される。それぞれの顔の位置関係は、顔３６１と顔３６２が近く、顔３６３が、顔３６２よりも離れた位置であるが、他の顔よりも大きく、顔３６４は、顔３６１乃至３６３と離れた位置に位置している。
【０２８０】
このような画像に対してグループ化の処理が実行された結果、図２６Ｂに示したように、グループが生成されたとする。顔３６１と顔３６２は、グループ３８１に含まれ、そのタグは、“カップル”とのタグが付けられた。このグループ３８１は、第１階層のグループである。顔３６１乃至３６３は、グループ３８２に含まれ、そのタグは、“友達”とのタグが付けられた。このグループ３８２は、第２階層のグループである。顔３６１乃至３６４は、グループ３８３に含まれ、そのタグは、“友達”とのタグが付けられた。このグループ３８３は、第３階層のグループである。
【０２８１】
このようにグループが生成され、タグが付けられている画像が、親密度スコアの算出対象とされた場合、顔ＩＤ同士のグループ間の距離スコアが算出される。顔３６１と顔３６２は、同一階層に属するため、Ｎtreeは、“０”である。よって、このＮtree＝０を、式（１３）に代入すると、“２”というScoreｆが算出される。よって、顔３６１と顔３６２の距離スコアは、２である。
【０２８２】
このような計算結果を、図２６Ｃに示すような表に書き込むとする。なおここでは、説明の都合上、表形式で顔ＩＤ、距離スコア、およびタグが管理され、処理されるとして説明をするが、表形式で管理されることに限定を示すものではない。顔ＩＤ、距離スコア、およびタグを管理し、処理できる形式であれば、どのような形式であっても良い。
【０２８３】
図２６Ｃに示した表３９１の縦と横は、それぞれ顔ＩＤが記載されている。顔ＩＤとして、図２６Ｃでは、図２６Ａに示した画像３５１のところで付した符号を用いる。顔ＩＤとして“３６１”と顔ＩＤとして“３６２”が交わる欄には、距離スコアとして“２”との数値が書き込まれる。また、顔３６１と顔３６２は、“カップル”というタグが付けられているので、“Couple”とのタグ名が書き込まれている。
【０２８４】
同様に、顔３６１と顔３６３は、第１階層と第２の階層にそれぞれ属するため、Ｎtreeは、“１”である。よって、このＮtree＝１を、式（１３）に代入すると、“１”というScoreｆが算出される。よって、顔３６１と顔３６３の距離スコアは、１である。図２６Ｃに示した表３９１では、顔ＩＤとして“３６１”と顔ＩＤとして“３６３”が交わる欄には、距離スコアとして“１”との数値が書き込まれる。また、顔３６１と顔３６３は、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２８５】
同様に、顔３６１と顔３６４は、第１階層と第３の階層にそれぞれ属するため、Ｎtreeは、“２”である。よって、このＮtree＝２を、式（１３）に代入すると、“０．５”というScoreｆが算出される。よって、顔３６１と顔３６４の距離スコアは、０．５である。図２６Ｃに示した表３９１では、顔ＩＤとして“３６１”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“０．５”との数値が書き込まれる。また、顔３６１と顔３６４は、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２８６】
同様に、顔３６２と顔３６３は、第１階層と第２の階層にそれぞれ属するため、Ｎtreeは、“１”である。よって、このＮtree＝１を、式（１３）に代入すると、“１”というScoreｆが算出される。よって、顔３６２と顔３６３の距離スコアは、１である。図２６Ｃに示した表３９１では、顔ＩＤとして“３６２”と顔ＩＤとして“３６３”が交わる欄には、距離スコアとして“１”との数値が書き込まれる。また、顔３６２と顔３６３は、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２８７】
同様に、顔３６２と顔３６４は、第１階層と第３の階層にそれぞれ属するため、Ｎtreeは、“２”である。よって、このＮtree＝２を、式（１３）に代入すると、“０．５”というScoreｆが算出される。よって、顔３６２と顔３６４の距離スコアは、０．５である。図２６Ｃに示した表３９１では、顔ＩＤとして“３６２”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“０．５”との数値が書き込まれる。また、顔３６２と顔３６４は、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２８８】
同様に、顔３６３と顔３６４は、第２階層と第３の階層にそれぞれ属するため、Ｎtreeは、“１”である。よって、このＮtree＝１を、式（１３）に代入すると、“１”というScoreｆが算出される。よって、顔３６３と顔３６４の距離スコアは、１である。図２６Ｃに示した表３９１では、顔ＩＤとして“３６３”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“１”との数値が書き込まれる。また、顔３６３と顔３６４は、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２８９】
このように、式（１３）に基づいて顔ＩＤ同士のグループ間の距離スコアが算出されると、ステップＳ４８５に処理が進められる。ステップＳ４８５において、距離スコアを加算することにより、親密度スコアが算出される。親密度スコアは、画像内の顔ＩＤ間のグループ間距離スコアを、同一人物毎に足し合わせること算出される。
【０２９０】
このことについて、図２７を参照して説明する。まず、図２７Ａに他の画像に対して行われた処理の結果を示す。図２７Ａも、図２６と同じく、顔３６１乃至３６４が撮像されている画像が処理対象とされたときであるとする。このとき、図２７Ａに示した処理結果では、顔３６１と顔３６３は、グループ４０１に含まれ、そのタグは、“カップル”とのタグが付けられた。このグループ４０１は、第１階層のグループである。顔３６１乃至３６３は、グループ４０２に含まれ、そのタグは、“友達”とのタグが付けられた。このグループ４０２は、第２階層のグループである。顔３６１乃至３６４は、グループ４０３に含まれ、そのタグは、“友達”とのタグが付けられた。このグループ４０３は、第３階層のグループである。
【０２９１】
このようなグループが生成され、タグが付けられた場合、図２７Ｂに示すような表４１１が算出される。表４１１に書き込まれている距離スコアの算出については、図２６Ｃの表３９１の作成のときに説明したので、ここでは省略する。
【０２９２】
表４１１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６２”が交わる欄には、距離スコアとして“１”との数値が書き込まれ、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。表４１１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６３”が交わる欄には、距離スコアとして“２”との数値が書き込まれ、“カップル”というタグが付けられているので、“Couple”とのタグ名が書き込まれている。
【０２９３】
表４１１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“０．５”との数値が書き込まれ、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。表４１１において、顔ＩＤとして“３６２”と顔ＩＤとして“３６３”が交わる欄には、距離スコアとして“１”との数値が書き込まれ、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２９４】
表４１１において、顔ＩＤとして“３６２”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“１”との数値が書き込まれ、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。表４１１において、顔ＩＤとして“３６３”と顔ＩＤとして“３６４”が交わる欄には、距離スコアとして“０．５”との数値が書き込まれ、“友達”というタグが付けられているので、“Friend”とのタグ名が書き込まれている。
【０２９５】
このように、画像毎に、顔ＩＤ同士の距離スコアが算出されるため、画像毎に、図２６Ｃや図２７Ｂに示したような表３９１（４１１）が生成される。このようにして画像毎に表が生成された場合、ステップＳ４８５において、画像内の顔ＩＤ間の距離スコアが、同一人物毎に足し合わされることで、親密度スコアが算出される。
【０２９６】
表３９１と表４１１を参照しながら説明する。画像内の顔ＩＤ間の距離スコアは、表３９１と表４１１に既に書き込まれている。“距離スコアが、同一人物毎に足し合わされる”とは、例えば、顔３６１と顔３６２の距離スコアが足し合わされることを意味する。顔３６１と顔３６２の距離スコアは、表３９１では“２”であり、表４１１では“１”である。よって、顔３６１と顔３６２の距離スコアが足し合わされ結果は、“３”（＝２＋１）となる。この“３”が、顔３６１と顔３６２の親密度スコアとされる。
【０２９７】
また、顔３６１と顔３６２のタグは、表３９１では“Couple”であり、表４１１では“Friend”である。よって、この場合、顔３６１と顔３６２のタグは、“Couple”と“Friend”という異なる２つのタグが付くことになる。このような処理が繰り返されることにより、表４２１が生成されるとする。なお、ここでは、表４２１が生成されるとして説明を続けるが、表形式でなくても良い。
【０２９８】
表４２１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６３”が交わる欄には、親密度スコアとして“３”との数値が書き込まれ、“Couple”というタグと、“Friend”というタグが付けられている。これは、顔３６１と顔３６３の距離スコアは、表３９１では“１”であり、表４１１では“２”であるため、それらの値が加算された“３”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６１と顔３６３のタグは、表３９１では“Friend”であり、表４１１では“Couple”であるため、この２つのタグが表４２１に書き込まれるからである。
【０２９９】
表４２１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６４”が交わる欄には、親密度スコアとして“１”との数値が書き込まれ、“Friend”というタグが付けられている。これは、顔３６１と顔３６４の距離スコアは、表３９１では“０．５”であり、表４１１では“０．５”であるため、それらの値が加算された“１”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６１と顔３６４のタグは、表３９１、表４１１ともに“Friend”であるため、この１つのタグが表４２１に書き込まれるからである。
【０３００】
表４２１において、顔ＩＤとして“３６１”と顔ＩＤとして“３６４”が交わる欄には、親密度スコアとして“１”との数値が書き込まれ、“Friend”というタグが付けられている。これは、顔３６１と顔３６４の距離スコアは、表３９１では“０．５”であり、表４１１では“０．５”であるため、それらの値が加算された“１”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６１と顔３６４のタグは、表３９１、表４１１ともに“Friend”であるため、この１つのタグが表４２１に書き込まれるからである。
【０３０１】
表４２１において、顔ＩＤとして“３６２”と顔ＩＤとして“３６３”が交わる欄には、親密度スコアとして“２”との数値が書き込まれ、“Friend”というタグが付けられている。これは、顔３６２と顔３６３の距離スコアは、表３９１では“１”であり、表４１１では“１”であるため、それらの値が加算された“２”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６２と顔３６３のタグは、表３９１、表４１１ともに“Friend”であるため、この１つのタグが表４２１に書き込まれるからである。
【０３０２】
表４２１において、顔ＩＤとして“３６２”と顔ＩＤとして“３６４”が交わる欄には、親密度スコアとして“１．５”との数値が書き込まれ、“Friend”というタグが付けられている。これは、顔３６２と顔３６４の距離スコアは、表３９１では“０．５”であり、表４１１では“１”であるため、それらの値が加算された“１．５”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６２と顔３６４のタグは、表３９１、表４１１ともに“Friend”であるため、この１つのタグが表４２１に書き込まれるからである。
【０３０３】
表４２１において、顔ＩＤとして“３６３”と顔ＩＤとして“３６４”が交わる欄には、親密度スコアとして“１．５”との数値が書き込まれ、“Friend”というタグが付けられている。これは、顔３６３と顔３６４の距離スコアは、表３９１では“１”であり、表４１１では“０．５”であるため、それらの値が加算された“１．５”が、親密度スコアとして表４２１に書き込まれるからである。また、顔３６３と顔３６４のタグは、表３９１、表４１１ともに“Friend”であるため、この１つのタグが表４２１に書き込まれるからである。
【０３０４】
このようにして、距離スコアが加算されることで、親密度スコアが算出される。図２５のフローチャートの説明に戻り、ステップＳ４８５において、距離スコアが加算されることにより、親密度スコアが算出されると、ここでは換言すると、図２７Ｃに示したような表４２１が作成されると、ステップＳ４８６に処理が進められる。
【０３０５】
ステップＳ４８６において、処理対象とされている人物に、複数のタグが付けられているか否かが判断される。例えば、処理対象とされている人物が、顔３６１の人物であるとする。顔３６１には、図２７Ｃに示した表４２１を参照すると、“Couple”というタグと、“Friend”というタグの２つのタグ、すなわち、複数のタグが付けられている。よって、顔３６１が処理対象の人物とされていた場合、ステップＳ４８６において、複数のタグが付けられていると判断され、処理は、ステップＳ４８７に進められる。
【０３０６】
ステップＳ４８７において、タグ別にスコアが取得される。この場合、複数のタグが付けられているため、そのタグ毎に、距離スコアの加算された値が取得される。すなわち、上記したように、親密度スコアは、距離スコアが加算された値であり、その距離スコアは、タグに基づいて、算出されている（式（１３）参照）。
【０３０７】
例えば、図２７Ｃの表４２１を参照するに、顔３６１と顔３６２の親密度スコアは、“３”であり、“Couple”というタグと“Friend”というタグが付けられている。“Couple”というタグが付けられたのは、表３９１（図２６Ｃ）が参照されたときであり、その距離スコアは“２”である。また、“Friend”というタグが付けられたのは、表４１１（図２７Ｂ）が参照されたときであり、その距離スコアは“１”である。
【０３０８】
ここでは、２つの画像が処理されたときを例にあげているため、このようになるが、実際には、複数の画像が処理されているため、参照されている表の数も複数有り、複数の距離スコアが、タグ毎に集計されることになる。
【０３０９】
ステップＳ４８７の処理が実行されることにより、例えば、顔３６１と顔３６２が処理対象とされたときには、“Couple”というタグに対するスコアが“２”、“Friend”というタグに対するスコアは“１”と取得される。
【０３１０】
ステップＳ４８８において、タグに対応する係数が取得される。このタグに対応する係数は、例えば、テーブルとして、顔クラスタリング部２６（図１）に保持されている。ここで、係数が書き込まれているテーブルについて説明する。図２８は、タグに対応する係数が書き込まれているテーブル４５１の一例を示す図である。
【０３１１】
テーブル４５１は、タグ名と、そのタグ名が付けられているタグに乗算する係数が関連付けられて管理されているテーブルである。図２８に示したテーブル４５１を参照するに、“Couple”というタグ名には、“１．５”という係数が関連付けられている。“Parent Child”というタグ名には、“１．５”という係数が関連付けられている。“Family”というタグ名には、“１．２”という係数が関連付けられている。“Friend”というタグ名には、“１．０”という係数が関連付けられている。
【０３１２】
このように、“Couple”や“Parent-Child”といった親密な関係にあると考えられるタグに対する係数は、他のタグに対する係数よりも大きな値とし、重みをつけて優先的に採用されるようにする。採用されるとは、後段の処理で、スコアの値が大きい方が、結果的に、その人物同士のタグとして採用されることを意味する。そのような係数であれば好ましく、図２８に示した数値に係数が限定されるわけではない。また、この係数は、ユーザにより設定されるようにしても良い。すなわち、例えば、ユーザが、“Friend”とのタグ名を、他のタグ名よりも優先させたい場合には、“Friend”というタグ名に対する係数の数値を変更できるように構成されていても良い。
【０３１３】
また、兄妹なのにカップルといった、矛盾する関係が推定された場合、タグ毎に優先度を付けておき、その優先度に基づいて処理されるようにしても良い。このことは、例えば、上記した係数の値を大きくすることで、優先度を高くすることができるため、係数を調整することで実現できる。
【０３１４】
図２５のフローチャートの説明に戻り、ステップＳ４８８において、タグに対応する係数が取得される。例えば、顔３６１と顔３６２が処理対象とされたときには、“Couple”というタグに対する係数が、テーブル４５１が参照されることにより、“１．５”と読み出され、“Friend”というタグに対する係数が、“１．０”と読み出される。
【０３１５】
ステップＳ４８９において、タグ別にスコアと対応する係数が乗算される。例えば、顔３６１と顔３６２が処理対象とされたときには、“Couple”というタグに対するスコアが“２”であり、係数が“１．５”であるので、それらの値が乗算され、“３．０”との値が算出される。同様の処理により、“Friend”というタグに対するスコアは“１”であり、係数が“１．０”であるので、それらの値が乗算され、“１．０”との値が算出される。
【０３１６】
このようにして、乗算が行われ、その乗算結果が取得されると、ステップＳ４９０に処理が進められる。ステップＳ４９０において、乗算結果が最大値のタグが最適なタグとして、その処理対象とされている人物間のタグとして採用される。
【０３１７】
例えば、顔３６１と顔３６２が処理対象とされたときには、“Couple”というタグに対する乗算結果は“３．０”であり、“Friend”というタグに対する乗算結果は“１．０”であると算出されているので、乗算結果の数値が大きい“Couple”というタグが、顔３６１と顔３６２の人物間の最適なタグとして付与される。
【０３１８】
このようにして、複数のタグが付与されている場合には、１つのタグが最適なタグとして選択され、付与される。
【０３１９】
なお、複数のタグが付与され、上記したような処理が実行され、１つのタグが選択された場合、複数の画像データが処理されるため、発生する可能性は低いと考えられるが、同一の人物に対して、複数の人物との間柄で同一のタグが付けられる可能性もある。例えば、顔３６１に対して、顔３６２との間柄が“Couple”であり、顔３６３との間柄も“Couple”であるといった場合も考えられる。
【０３２０】
このような場合、顔３６１と顔３６２がカップルであり、顔３６１と顔３６３もカップルであることになる。このようなケースはあるかもしれないが、あまり好ましくない結果であると考えられる。このようなときには、どちらか一方のタグのみが残され、他方は別のタグに変更されるといった処理が行われるようにしても良い。
【０３２１】
このように、ステップＳ４９０において、最適なタグが付与された場合、または、ステップＳ４８６において、処理対象とされている人物（顔）には、複数のタグは付けられていないと判断された場合、ステップＳ４９１に処理が進められる。ステップＳ４９１において、全ての他の人物との計算が終了したか否かが判断される。
【０３２２】
ステップＳ４９１において、全ての他の人物との計算は、終了されていないと判断された場合、ステップＳ４８３に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ４９１において、全ての他の人物との計算は、終了したと判断された場合、ステップＳ４９２に処理が進められる。
【０３２３】
ステップＳ４９２において、全ての人物に対して親密度スコアの算出が行われたか否かが判断される。ステップＳ４９２において、全ての人物に対して親密度スコアの算出は行われていないと判断された場合、ステップＳ４８３に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ４９２において、全ての人物に対して親密度スコアの算出が行われたと判断された場合、図２５に示した人物間の親密度算出処理は終了され、ステップＳ１８（図２）に処理が進められる。
【０３２４】
［人物相関データの生成について］
図２のフローチャートの説明に戻る。ステップＳ１７において、人物間の親密度の算出が行われ、最適なタグが付けられ、かつ、各人物の登場回数がカウントされると、ステップＳ１８において、それらの情報が用いられて、人物相関のデータが生成され、人物相関データベース４１に保存される。
【０３２５】
人物相関データは、登場回数スコアの高い人物と、その人物と親密度の高い複数の人物との間の親密度、およびタグから生成される。このようにして人物相関データは生成されるため、登場回数の多い人物を中心とする、関係の深い人物とのつながりを、人物相関をタグとして表しているデータであるといえる。
【０３２６】
“登場回数の多い人物を中心”とするとは、登場回数が多い人物は、撮影者が意図して撮影した人物であることを意味し、そのような人物を中心とすることで、撮影者が意図した人物を中心とした相関図を作成することができると想定できるからである。
【０３２７】
換言すれば、登場回数の少ない人物は、撮影者が意図して撮影していない、撮影者が中心とする気はないといった人物であると判断できる。よって、登場回数の少ない人物は、例えば、登場回数が、所定の閾値以下である人物や、全人物の登場回数の総和に対して示す登場回数が所定の割合以下の人物などは、人物相関データの作成のときの処理対象としないようにしても良い。
【０３２８】
人物相関データ５０１は、図２９に示す２つのデータから構成される。１つのデータ５０２は、人物個人に関するデータであり、もう１つのデータ５０３は、人物間の関係を特定するためのデータである。図２９に示したデータ内の数値などは、一例である。
【０３２９】
データ５０２は、人物ＩＤ、登場回数スコア、顔アイコン画像、および属性を、それぞれ関連付けて管理するためのデータである。図２９に示したデータ５０２では、人物ＩＤが“００１”の登場回数スコアは、“３４”であり、顔アイコン画像は、“User001.jpg”であり、属性は、“MAN/Age:24”であることが、それぞれ関連付けられている。
【０３３０】
同様に、人物ＩＤが“００２”の登場回数スコアは、“１３”であり、顔アイコン画像は、“User002.jpg”であり、属性は、“WOMAN/Age:23”であることが、それぞれ関連付けられている。人物ＩＤが“００３”の登場回数スコアは、“２１”であり、顔アイコン画像は、“User003.jpg”であり、属性は、“MAN/Age:65”であることが、それぞれ関連付けられている。
【０３３１】
図３０を参照して説明する画面であり、人物相関データ５０１のデータに基づいて作成される画面において、人物の顔の画像が表示される。その人物の顔の画像が、顔アイコン画像であり、例えば、所定の画像から切り取られた顔の部分だけの画像のデータのファイル名が、顔アイコン画像の欄に記載される。
【０３３２】
また、データ５０２を構成する“属性“に関するデータのうち、“MAN”や“WOMAN”といった性別に関するデータは、グループ化の処理において取得されているので、その情報が書き込まれるようにすることが可能である。
【０３３３】
また、“Age“に関する情報も、グループ化の処理において取得されているので、その情報を利用することができるが、図２９に示したように、“２４”といった具体的な数値（年齢）まで特定することはできない。勿論、特定できるのであれば、その特定された年齢を、データ５０２の属性の欄に記載して良い。特定できない場合、判定された結果、上記した例では、大人（Adult）や子供（Child）といった情報が書き込まれるようにする。
【０３３４】
また、属性の欄に書き込まれる情報は、ユーザにより書き込まれたときに、書き込まれる用にしても良い。ユーザにより書き込まれる情報であれば、年齢など、正確な値を取得できるため、好ましい形態であると考えられる。
【０３３５】
本実施の形態においては、後述するように、この人物相関データ５０１内のデータは、ユーザにより修正可能に構成されている。よって、仮に、上述したグループ化の処理などで間違った判断が行われ、間違ったタグが付けられたなどされても、その間違いを訂正することができるため、人物相関データ５０１内のデータの適正化をはかることができる。
【０３３６】
図２９に示したデータ５０３の説明をする。データ５０３は、人物ＩＤ１、人物ＩＤ２、親密度スコア、タグ、および写真画像がそれぞれ関連付けられて管理されている。図２９に示したデータ５０３では、人物ＩＤ１が“００１”と人物ＩＤ２が“００２”の親密度スコアは、“５．５”であり、タグが“Couple”であり、写真画像が“DSC00001.jpg”であることが、それぞれ関連付けられている。
【０３３７】
同様に、人物ＩＤ１が“００２”と人物ＩＤ２が“００３”の親密度スコアは、“２．２５”であり、タグが“Family”であり、写真画像が“DSC00002.jpg”であることが、それぞれ関連付けられている。人物ＩＤ１が“００３”と人物ＩＤ２が“００１”の親密度スコアは、“０．２５”であり、タグが“Friend”であり、写真画像が“DSC00003.jpg”であることが、それぞれ関連付けられている。
【０３３８】
親密度スコアと、タグは、ステップＳ１７の処理として実行された人物間の親密度の算出処理において、取得された、例えば、図２７Ｃに示した表４２１が参照されることで生成されるデータである。また、写真画像の欄には、例えば、人物ＩＤ１が“００１”と人物ＩＤ２が“００２”が割り振られて人物（顔）が撮像されている写真で、代表とされる写真のファイル名が、写真画像の欄に記載される。
【０３３９】
このようなデータから構成される人物相関データ５０１が、ステップＳ１８において生成され、人物相関データベース４１（図１）に保持されると、図２のフローチャートを参照して説明したデータベースの作成処理は、終了される。
【０３４０】
このようにして、人物相関データベース４１に人物相関データ５０１が保持されると、その人物相関データ５０１に基づく画面が、表示制御部２１の制御の基、表示部１１に表示される。この表示部１１に表示される画面の一例を、図３０に示す。
【０３４１】
［画面について］
図３０は、表示部１１に表示される画面の一例を示す図である。表示部１１に表示される画面は、人物相関に関する画像を表示する相関画像表示部６０１と、その相関画像表示部６０１内の画像の編集などを行うときに用いるツールなどが表示されたツール表示部６０２から構成されている。
【０３４２】
相関画像表示部６０１には、複数の顔画像６１１乃至６１７、それらの顔画像同士がリンクされていることを示す紐６２１乃至６２８、顔画像の人物同士の間柄を示すタグ６４１乃至６４７、および表示されている顔画像を含む代表画像６５１が表示されている。
【０３４３】
相関画像表示部６０１の中央部分には、顔画像６１１が表示されている。この顔画像６１１は、登場回数が多く、中心となる人物の顔の画像である。この顔画像６１１の画像データは、人物相関データ５０１を構成するデータ５０２（図２９）の顔アイコン画像の欄に記載されているファイル名に基づくデータである。また、登場回数のデータも、データ５０２が参照される。また、登場回数が多い顔画像は、登場回数が少ない顔画像よりも大きく表示されるように構成されている。
【０３４４】
顔画像６１１には、紐６２１と紐６２２が張られている。紐は、顔画像同士（人物同士）が何らかの関係があることを示す。また、親密度が高い顔画像同士の紐は短く、親密度が高くない顔同士の紐は長く表示されるようにしても良い。顔画像６１１と顔画像６１２との間には、紐６２１が張られ、その間柄を表すタグとして、タグ６４１が紐６２１の近傍に表示されている。このタグ６４１の情報は、データ５０３から抽出された情報である。具体的には、例えば、顔画像６１１の人物ＩＤが“００１”であり、顔画像６１２の人物ＩＤが“００２”である場合、データ５０３が参照されることで、タグが“Couple”であることがわかる。そしてこのタグの情報から、タグ６４１の画像が生成され、顔画像６１１と顔画像６１２との間に張られた紐６２１の近傍に表示される。
【０３４５】
このように、相関画像表示部６０１内の画像は、人物相関データ５０１に基づいて生成される。図３０に示し画面について説明を続けるに、顔画像６１１と顔画像６１３の間には、紐６２２が張られ、その間柄を表すタグとして、“Child”とのタグ６４２が紐６２２の近傍に表示されている。
【０３４６】
顔画像６１２と顔画像６１３の間には、紐６２３が張られ、その間柄を表すタグとして、“Child”とのタグ６４２が紐６２２の近傍に表示されている。このようなタグなどから、閲覧者は、顔画像６１１の人物と顔画像６１２の人物は、カップル（夫婦）であり、その子供が、顔画像６１３の人物であることがわかる。顔画像の表示位置は、年齢や、関係などにより、上下左右方向での表示位置が決定される。
【０３４７】
顔画像６１２と顔画像６１４の間には、紐６２４が張られ、その間柄を表すタグとして、“Friend”とのタグ６４３が紐６２４の近傍に表示されている。この場合、顔画像６１２の人物と、顔画像６１４の人物は、友達であることがわかる。なお、後述するように、この場合、顔画像６１２の人物と、顔画像６１４の人物は、友達であるが、顔画像６１１の人物と、顔画像６１４の人物は、友達ではない。仮に、顔画像６１１の人物と、顔画像６１４の人物が友達であった場合、顔画像６１１と顔画像６１４との間にも紐が張られ、タグが表示される。
【０３４８】
顔画像６１１と顔画像６１５の間には、紐６２５が張られ、その間柄を表すタグとして、“Parent”とのタグ６４４が紐６２５の近傍に表示されている。この場合、顔画像６１１の人物と、顔画像６１５の人物は、親子関係があることがわかり、かつ、その親子関係は、顔画像６１１の人物を中心として考えた場合、顔画像６１５の人物は親にあたることがわかる。すなわち、中心人物が、顔画像６１１の人物であるため、顔画像６１１の人物に対して、顔画像６１３の人物は子であり、顔画像６１５の人物は親となる。
【０３４９】
このように、中心人物に対してどのような関係にあるかを示す画面が、相関画像表示部６０１である。例えば、閲覧者が、顔画像６１３を相関画像表示部６０１の中央部分に所定の操作を実行することで、移動させた場合、顔画像６１３の人物が中心人物とされた画面に更新される。顔画像６１３が中心人物とされた場合、顔画像６１１の人物は、顔画像６１３の人物に対して親に該当するため、顔画像６１３と顔画像６１１とのタグは、“Parent”といったタグに変更される。
【０３５０】
このようなことを実現するために、人物相関データ５０１を構成するデータ５０２（図２９）には、人物ＩＤ１と人物ＩＤ２という項目が設けられている。すなわち、データ５０２は、人物ＩＤ１の人物から、人物ＩＤ２の人物を見たときに、どのような間柄であるかという情報が、タグの欄に記載されている。よって、人物ＩＤ１と人物ＩＤ２の組が同じであっても、タグの情報が異なる。
【０３５１】
図３０に示した画面例の説明に戻り、顔画像６１５と顔画像６１６の間には、紐６２６が張られ、その間柄を表すタグとして、“Friend”とのタグ６４５が紐６２６の近傍に表示されている。顔画像６１６と顔画像６１７の間には、紐６２７が張られ、その間柄を表すタグとして、“Friend”とのタグ６４６が紐６２７の近傍に表示されている。顔画像６１７と顔画像６１５の間には、紐６２８が張られ、その間柄を表すタグとして、“Friend”とのタグ６４７が紐６２８の近傍に表示されている。
【０３５２】
このような表示から、顔画像６１５の人物、顔画像６１６の人物、および顔画像６１７の人物は、ともに友達関係にあることがわかる。このような関係のとき、図３０では、“Friend“とのタグが表示されるとして図示および説明をしたが、”Friends“（複数形）でも良い。
【０３５３】
このような、所定の人物を中心とした人物間の相関を表す画像を、上述したような例えばグループ化の処理などが実行され、人物相関データ５０１が生成されることで、生成することが可能となる。さらに、ツール表示部６０２に表示されているツールを用いて、閲覧者は、相関画像表示部６０１内の情報を、変更できるように構成されている。
【０３５４】
ツール表示部６０２には、４つの紐がツールとして用意されている。まず、紐６６１は、２つの顔画像の間に張られる紐を追加し、“Parent”というタグを追加する場合に利用されるツールである。同様に、紐６６２は、２つの顔画像の間に張られる紐を追加し、“Friend”というタグを追加する場合に利用されるツールである。同様に、紐６６３は、２つの顔画像の間に張られる紐を追加し、“Couple”というタグを追加する場合に利用されるツールである。同様に、紐６６４は、２つの顔画像の間に張られる紐を追加し、“Family”というタグを追加する場合に利用されるツールである。
【０３５５】
また、ツール表示部６０２には、既に紐が張られている紐（リンク）を削除するときに使われるはさみ６６５も表示されている。これらのツールの使い方について、図３１乃至図３３を参照して説明する。
【０３５６】
［タグの変更、追加などに関わる処理について］
図３１は、はさみ６６５を用いてリンクを削除するときに行われる処理について説明するための図である。図３１Ａに示すように、顔画像６１２と顔画像６１４との間に紐６２４が張られており、タグ６４３が表示されている状態のときに、はさみ６６５により、この紐６２４を切りたいと閲覧者が所望したとする。
【０３５７】
このようなとき閲覧者は、ツール表示部６０２に表示されているはさみ６６５をドラッグし、その状態のまま、紐６２４上まで移動される。はさみ６６５は、移動されることで、図３１Ｂに示すような状態になる。図３１Ｂでは、紐６２４上にはさみ６６５が位置している。このように、はさみ６６５が紐６２４上に位置しているときに、クリックなどの所定の操作が実行されると、紐６２４は削除される。
【０３５８】
すなわち、図３１Ｃに示すように、顔画像６１２と顔画像６１４との間に表示されていた紐６２４が削除され、表示されなくなる。さらに、紐６２４が削除されたことで、その間柄を示すタグ６４３も表示されない状態となる。さらに、図示はしないが、顔画像６１４自体も表示されないようにしても良い。すなわち、この場合、図３０を参照するに、中心人物である顔画像６１１の人物に対して親しいのは、顔画像６１２の人物であり、顔画像６１４の人物ではないため、中心人物に対して親しさの度合いが低い方の顔画像が削除される（表示されないようにする）ようにしても良い。
【０３５９】
図３２を参照して、表示されているタグが変更されるときの処理について説明する。この処理は、例えば、参照者が、表示されているタグが適切でないタグ名であるために、変更を所望したときに行われる。
【０３６０】
図３２Ａに示したように、顔画像６１１と顔画像６１２との間に紐６２１が張られており、“Friend”とのタグ６４１が表示されている状態のときに、この“Friend”とのタグ６４１を“Couple”とのタグに変更したいと所望したとする。このような場合、閲覧者は、カーソル７０１を、マウスなどを操作して、タグ６４１上に移動させる。カーソル７０１がタグ６４１上に移動されている状態を、図３２Ａに示す。
【０３６１】
このような、カーソル７０１が所定のタグ上に位置しているときにクリックなどの所定の操作が行われると、そのタグが、変更される。すなわち、図３２Ｂに示すように、１回クリックが行われると、“Friend”とのタグ６４１は、“Child”とのタグ６４１’に表示が変更される。閲覧者は、“Child”とのタグ６４１’で良ければ、操作を終了すればよい。しかしながらこの場合、“Couple”というタグにしたいため、さらにカーソル７０１がタグ６４１’上に位置している状態のときに、クリックなどの所定の操作を実行する。
【０３６２】
再度クリックが行われることにより、さらにタグの名称が変更され、“Couple”とのタグ６４１”になる。この状態を、図３２Ｃに示す。すなわち、閲覧者は、所望のタグ名になるまで、カーソル７０１が、そのタグ名を変更したいタグ上に位置した状態で操作することで、所望のタグ名に変更することができるように構成されている。
【０３６３】
次に、図３３を参照し、顔画像の間に新たな紐を張る（リンクを張る）ときの処理について説明する。図３３Ａに示した状態は、顔画像６１２と顔画像６１４が表示されているが、その顔画像の間に紐は張られておらず、タグも表示されていない状態である。このよう状態のときに、閲覧者が顔画像６１２と顔画像６１４との間に紐を張りたい（リンクを張りたい）と所望したとする。
【０３６４】
撮影者は、紐を張りたいと所望したとき、ツール表示部６０２に表示されている紐６６１乃至６６４の中から、所望のタグ名の紐を選択する。ここでは、“Friend”というタグ名の紐６６２が選択されたとする。撮影者は、紐６６２を、紐を張りたい２つの顔画像のうちの一方の顔画像上に、ドラッグなどの所定の処理を実行することで、移動させる。図３３Ｂに示した状態は、顔画像６１４上に紐６６２が移動された状態を示す。
【０３６５】
このような状態から、撮影者が、さらに顔画像６１４から顔画像６１２の方にドラッグなどの所定の操作を実行すると、図３３に示すように、顔画像６１２と顔画像６１４との間に紐６２４が表示され、さらに“Friend”というタグ６４３も表示される。このように、撮影者は、顔画像にリンクを張りたいとき、ツール表示部６０２から所望の紐６６１乃至６６４を選択し、顔画像同士を接続するような所定の操作を実行することで、リンクを張ることが可能な構成とされている。
【０３６６】
このような撮影者からの操作が行われた場合、人物相関データ５０１内の対応するデータを変更すると行った処理を行う必要がある。その処理について図３４乃至図３５にそれぞれ示したフローチャートを参照して説明する。
【０３６７】
図３４に示したフローチャートは、図３１を参照して説明した紐の削除（リンクの削除）が行われたときに実行される処理について説明するためのフローチャートである。紐が削除される操作が実行されたと判断された場合、ステップＳ５１１において、２つの人物ＩＤをキーに、対応するデータが検索される。例えば、図３１に示した例では、顔画像６１２と顔画像６１４との間の紐６２４（タグ６４３）が削除される操作が実行されたときであるので、この顔画像６１２に対応する人物ＩＤと、顔画像６１４に対応する人物ＩＤとがキーにされる。
【０３６８】
図３１に示した例では、上記したように、中心人物に対して、顔画像６１２の人物の方が、顔画像６１４の人物よりも親しい間柄なので、顔画像６１２に対応する人物ＩＤを人物ＩＤ１とし、顔画像６１４に対応する人物ＩＤを人物ＩＤ２とするデータが、データ５０２（図２９）内が検索され、抽出される。
【０３６９】
そのようなデータが検索され、抽出されると、そのデータが、ステップＳ５１２における処理として削除される。例えば、顔画像６１２に対応する人物ＩＤが“００３”であり、顔画像６１４に対応する人物ＩＤが“００１”である場合、データ５０３（図２９）内が検索されることにより、３行目のデータが抽出され、削除されることになる。
【０３７０】
次に、図３５のフローチャートを参照して、図３２を参照して説明したタグのタグ名の変更に関わる操作が実行されたときに実行される処理について説明する。閲覧者によりタグが変更される操作が実行されたと判断された場合、ステップＳ５３１において、２つの人物ＩＤをキーに、対応するデータが検索される。例えば、図３２に示した例では、顔画像６１１と顔画像６１２との間のタグ６４１のタグ名が変更される操作が実行されたときであるので、この顔画像６１１に対応する人物ＩＤと、顔画像６１２に対応する人物ＩＤとがキーにされる。
【０３７１】
例えば、顔画像６１１に対応する人物ＩＤを人物ＩＤ１または人物ＩＤ２とし、顔画像６１２に対応する人物ＩＤを人物ＩＤ２または人物ＩＤ１とするデータであり、タグの欄に“Friend”とのタグ名が書き込まれているデータが、データ５０３（図２９）内が検索され、抽出される。
【０３７２】
そのようなデータが検索され、抽出されると、そのデータが、ステップＳ５３２における処理として変更される。例えば、図３２に示した例では、“Friend”とのタグ名から“Couple”というタグ名に、タグの欄のタグ名が変更される。
【０３７３】
次に、図３６のフローチャートを参照して、図３３を参照して説明した紐（タグ）の追加に関わる操作が実行されたときに実行される処理について説明する。閲覧者により紐の追加がされる操作が実行されたと操作判断部２２（図１）により判断された場合、ステップＳ５５１において、人物相関データ更新部２４は、２つの人物ＩＤをキーに、人物相関データベース４１内のデータを検索する。例えば、図３３に示した例では、顔画像６１２と顔画像６１４との間に紐が追加される操作が実行されたときであるので、この顔画像６１２に対応する人物ＩＤと、顔画像６１４に対応する人物ＩＤとがキーにされる。
【０３７４】
このような顔画像６１２と顔画像６１４の間に紐がない状態である場合、データ５０２のタグの欄が空であるか、データ５０２自体に存在していない可能性がある。そこで、ステップＳ５５２において、データが存在するか否かが判断される。この判断において、例えば、顔画像６１２に対応する人物ＩＤを人物ＩＤ１または人物ＩＤ２とし、顔画像６１４に対応する人物ＩＤを人物ＩＤ２または人物ＩＤ１とするデータであり、タグの欄が空欄になっているデータが、データ５０３（図２９）内が検索され、抽出された場合、存在するデータがあったと判断され、ステップＳ５５３に処理が進められる。
【０３７５】
ステップＳ５５３において、変更処理に移行される。この変更処理とは、図３５に示したフローチャートを参照して説明したタグを変更する処理のことである。すなわちこの場合、データ５０２にデータが存在していたので、そのデータを書き直す処理であるため、タグを書き換える処理と同様に行うことができる。
【０３７６】
一方、ステップＳ５５２において、データは存在しないと判断された場合、ステップＳ５５４に処理が進められる。この場合、データ５０３には存在していないが、データ５０２には存在している状態である（データ５０２にも存在していない場合、顔アイコン画像自体が存在しないことになり、顔画像が表示されないことになる）。ステップＳ５５４において、データ５０３に、２つの人物ＩＤとタグのレコードが追加される。
【０３７７】
例えば、図３３に示した状態の場合、顔画像６１２に対応する人物ＩＤと、顔画像６１４に対応する人物ＩＤが、データ５０３に書き込まれ、さらにタグの欄に、“Friend”とのタグ名が書き込まれる。データ５０３を構成する他の情報、例えば、親密度スコアや写真画像も、適宜、計算が行われたり、ファイル名が書き込まれたりすることで埋められる。
【０３７８】
さらに、人物相関データベース４１に記憶されている人物相関データ５０１を、ユーザにより訂正や変更を行えるような仕組みを設ける。図３７乃至図３９を参照し、そのような訂正や変更に関わる処理について説明する。
【０３７９】
まず、図３７のフローチャートを参照して、個別の顔の追加処理について説明する。個別の顔の追加処理とは、例えば、相関画像表示部６０１内に表示されている同一の人物の顔画像が２以上表示されている場合、換言すれば、誤った判断により同一人物であるのに、異なる人物として処理されているような場合、ユーザにより同一の人物として扱われるように修正が入ったときの処理である。また、相関画像表示部６０１に表示されていないが、表示させたい顔（顔画像）があるときに、その顔が追加される処理でもある。
【０３８０】
ステップＳ６０１において、ユーザにより指定された顔（顔画像）が、人物ＩＤを持つか否かが判断される。ステップＳ６０１において、ユーザにより指定された顔が人物ＩＤを持つと判断された場合、ステップＳ６０２に処理が進められる。ステップＳ６０２において、反映されている、元の人物ＩＤが存在するという情報が更新される。すなわち、ユーザにより指定された顔に対応する人物ＩＤに関する情報が更新される。
【０３８１】
ステップＳ６０２の更新処理が終了した場合、または、ステップＳ６０１において、顔が人物ＩＤを持たないと判断された場合、ステップＳ６０３に処理が進められる。ステップＳ６０３において、追加先人物ＩＤで書き換えが行われる。同一人物であるのに、異なる人物であると判断されている場合であるので、異なる人物ＩＤが割り当てられているか、または、一方の顔にのみ人物ＩＤが割り当てられている状態である。このような状態のときには、どちらか一方の人物ＩＤに統一する、または、割り当てられている人物ＩＤを他方にも割り当てるといった処理が行われる。
【０３８２】
ステップＳ６０４において、書き換えられた人物ＩＤに関する各種スコアが更新される。例えば、登場回数や親密度スコアなどが人物ＩＤが書き換えられることで異なるスコアになる可能性が高いので、再度ステップＳ６０４の処理として、それらのスコアの更新処理が実行される。
【０３８３】
次に、図３８のフローチャートを参照して、人物間の追加処理について説明する。人物間の追加処理とは、人物間の関係性を１００％の精度で判定することはできない可能性であり、そのためにまずは、上記したようにして人物相関に関するデータを生成し、その後、ユーザにより関係の追加や誤判定の削除を行えるようにするための処理である。
【０３８４】
ステップＳ６３１において、追加元の情報を基に、追加先の各種スコアが更新される。例えば、人物間に、新たな関係（紐やタグの追加）が行われた場合や、関係の削除（紐やタグの削除）が行われた場合、その追加や削除に対応する情報が更新される。そして、ステップＳ６３２において、重複する人物間情報等、不必要なデータが削除される。そして、ステップＳ６３３において、追加元の人物ＩＤを持つ顔情報の人物ＩＤも更新される。
【０３８５】
このような処理は、図３４のタグを削除する処理や、図３５のタグの変更する処理、図３６のタグを追加する処理を含む処理であり、それぞれの処理に対応した処理が行われる。
【０３８６】
次に、図３９のフローチャートを参照して、顔の分離処理について説明する。顔の分離処理とは、図３７で説明した個別の顔の追加処理と逆の処理である。すなわち、顔の分離処理とは、例えば、誤った判断により同一人物ではないのに、同一の人物として処理されているような場合、ユーザにより異なる人物として扱われるように修正が入ったときの処理である。
【０３８７】
ステップＳ５５１において、分離が指示された顔が人物ＩＤを持つか否かが判断される。ステップＳ６５１において、顔が人物ＩＤを持つと判断された場合、ステップＳ６５２に処理が進められる。ステップＳ６５２において、反映されている、元の人物ＩＤが存在するという情報が修正される。すなわち、ユーザにより指定された顔に対応する人物ＩＤに関する情報が修正される。
【０３８８】
ステップＳ６５２の修正処理が終了した場合、または、ステップＳ６５１において、顔が人物ＩＤを持たないと判断された場合、ステップＳ６５３に処理が進められる。ステップＳ６５３において、追加先の人物ＩＤがあるか否かが判断される。ステップＳ６５３において、追加先の人物ＩＤがあると判断された場合、ステップＳ６５４に処理が進められる。
【０３８９】
ステップＳ６５４において、追加先の人物ＩＤで書き換えが行われる。すなわちこの場合、分離した顔が、既に登録されている顔であり、人物ＩＤが割り当てられていると判断されたときであるので、その人物ＩＤで書き換えが実行される。必要に応じ、スコアの更新などの処理も実行される。
【０３９０】
一方、ステップＳ６５３において、追加先の人物ＩＤはないと判断された場合、ステップＳ６５５に処理が進められる。この場合、分離されることにより、顔に対して人物ＩＤが割り当てられていない状態になったことを意味するため、ステップＳ６５５の処理として、新規に人物が作成される。すなわち、人物ＩＤを新たに割り当てたり、スコアが計算されたりする。
【０３９１】
このようにして、顔の識別精度は１００％の制度ではないのが一般的であり、そのために、間違いが発生する可能性がある。そのような間違いをユーザにより訂正できることで、より精度の高い人物相関に関する情報を生成させることが可能となる。
【０３９２】
このように、本実施の形態によれば、撮影者が撮像した画像に写っている人物との相関図を図示するためのデータを生成することができ、そのデータに基づく相関図を図示することが可能となる。このようなことが可能となることで、撮影時の撮影者の思い出やとりまく環境を、人物相関から想起させることができ、より撮影者の実体験に基づいた写真の閲覧ができるようになる。
【０３９３】
また、これまで時間や場所に限定していた写真整理方法とは違い、人物に主眼を置いた整理方法であるため、ユーザ毎に個人化された検索を実行することができる。たとえば、“人物Ａとカップルの人物”、“人物Ｂと友達の人物”といった検索を行うことが可能となる。
【０３９４】
［第２の実施の形態について］
次に、第２の実施の形態について説明する。第２の実施の形態は、第１の実施の形態と説明が重複する部分があるため、重複する部分に関しては、適宜その説明を省略する。
【０３９５】
図４０は、第２の実施の形態における情報処理装置を含むシステムの一実施の形態の構成を示す図である。図４０に示した情報処理装置８００は、図１に示した情報処理装置１３の構成に、イベントクラスタリング部８０１と、時刻情報抽出部８２１を追加した構成とされている。
【０３９６】
時刻情報抽出部８２１は、画像解析部２７に含まれ、画像解析の結果、その画像が撮像された日時を少なくとも抽出する機能を有する。イベントクラスタリング部８０１は、抽出された日時に関する情報に基づき、画像を分類する機能を有する。具体的には、イベントクラスタリング部８０１は、イベント、例えば、結婚式、運動会、パーティといったイベント毎に、そのイベントのときに撮像された画像毎にまとめるための処理を実行する。
【０３９７】
人物相関データベース４１は、人物相関データを記憶するが、そのデータには、どのイベントを識別するためのＩＤなどが含まれたデータとされ、イベント毎にイベントに属する画像が一意に特定できるようなデータベースとされている。
【０３９８】
その他の部分に関する機能は、図１に示した情報処理装置１３と同様であるので、ここではその説明を省略する。
【０３９９】
図４０に示した情報処理装置８００の動作について、図４１に示すフローチャートを参照して説明する。ステップＳ８０１において、処理対象とされる画像データが取得される。その取得された画像データに基づく画像に対して顔認識処理が、ステップＳ８０２の処理として実行されることにより、処理対象とされている画像から、顔（顔の領域）が抽出される。
【０４００】
ステップＳ８０３において、抽出された顔を所定のグループにまとめる処理（グループ化の処理）が実行される。この結果、処理対象とされている画像内に、１以上のグループが生成され、１つのグループには少なくとも１つの顔が含まれる状態とされる。このステップＳ８０１乃至Ｓ８０３の各処理は、図２に示したフローチャートのステップＳ１１乃至Ｓ１３の各処理と同様に行われ、その詳細な説明は既にしたので、ここではその説明を省略する。
【０４０１】
ステップＳ８０３において、グループ化の処理が実行されている一方で、同様の画像に対して、ステップＳ８０４において、時刻情報の抽出処理が実行される。時刻情報は、EXIF形式で保存された写真画像の”DateTimeOriginal”タグの情報を取得することで取得することが可能である。ステップＳ８０４における処理で、処理対象とされている画像が撮影された日時が、時刻情報抽出部８２１により抽出される。ステップＳ８０５において、処理対象とされる画像データを全て処理したか否かが判断される。
【０４０２】
ステップＳ８０５において、処理対象とされる画像データを全ては処理していないと判断された場合、ステップＳ８０１に処理が戻され、それ以降の処理が繰り返される。一方、ステップＳ８０５において、処理対象とされる画像データを全て処理したと判断された場合、ステップＳ８０６に処理が進められる。
【０４０３】
ステップＳ８０６において、イベントクラスタリングが実行される。このイベントクラスタリングは、イベントクラスタリング部８０１により、ステップＳ８０４において抽出された時刻情報が用いられて行われる。イベントクラスタリングに関する詳細な記載は、例えば、本出願人が先に出願した以下の文献に記載があり、その記載に基づく処理で、ステップＳ８０６の処理が実行することが可能である。
特許文献  特開２００７-９４７６２号公報
【０４０４】
イベントクラスタリングの処理が実行されることで、画像データベース４２内の全ての画像ＩＤと撮影時刻情報が、イベントクラスタリング部８０１で処理され、撮影イベント毎にグループ分けされる。イベントクラスタリングの処理が終了されると、ステップＳ８０７に処理が進められる。ステップＳ８０７において、１イベント分のデータが取得される。１イベント分のデータを取得した顔クラスタリング部２６は、ステップＳ８０８において、顔クラスタリング処理を実行し、ステップＳ８０９において、人物を生成する。
【０４０５】
すなわち、顔クラスタリング部２６は、まず、イベントクラスタリング部８０１の処理結果から、同一のイベントの画像の画像ＩＤを取得する。そして、顔クラスタリング部２６は、顔認識処理の結果から、イベント単位で該当する画像ＩＤの顔識別特徴量および顔ＩＤを取得し、顔識別特徴量同士の類似度を用いて同一イベント内の写真に写っている同一人物ごとにグルーピングを行なう。
【０４０６】
このような処理が実行されることで、イベント毎に、画像毎に、人物が生成され、同一人物が同一人物として扱われる状態となる。そのような状態になると、ステップＳ８１０において、人物間の親密度の算出処理が実行される。このステップＳ８０８乃至Ｓ８１０の各処理は、図２に示したフローチャートのステップＳ１５乃至Ｓ１７の各処理と同様に行われ、その詳細な説明は既にしたので、ここではその説明を省略する。
【０４０７】
ステップＳ８１１において、処理対象とされているイベントを全て処理したか否かが判断される。ステップＳ８０６の処理において、イベントクラスタリング処理が実行されたことにより、複数のイベントが生成された場合、それら全てのイベントに対して処理が実行されたか否かがステップＳ８１１において判断される。ステップＳ８１１において、処理対象とされているイベントの全てを処理してはないと判断された場合、ステップＳ８０７に処理が戻され、新たなイベントに対して、ステップＳ８０７以降の処理が繰り返される。
【０４０８】
一方、ステップＳ８１１において、処理対象とされているイベントの全てを処理したと判断された場合、ステップＳ８１２に処理が進められる。ステップＳ８１２において、人物相関のデータが生成され、人物相関データベース４１に保存される。このステップＳ８１２における処理は、図２のステップＳ１８における処理と同様に行われるため、その説明は省略する。
【０４０９】
このようにして、イベントという情報も含む人物相関データ５０１が生成される。例えば、図４２に示したような人物相関データ５０１が生成される。図４２に示した人物相関データ５０１は、図２９に示した人物相関データ５０１と比較して、データ５０３が、イベントＩＤを関連付けるデータ５０３’（図２のデータ５０３と区別するために、ダッシュを付して記述する）になっている点が異なる。
【０４１０】
データ５０３’は、イベントＩＤ、人物ＩＤ１、人物ＩＤ２、親密度スコア、タグ、および写真画像が関連付けられたデータとされている。イベントＩＤは、所定のイベントを一意に区別するために、イベント毎に割り振られているＩＤである。同一のイベントＩＤで管理されるデータは、同一のイベントに属していることを示す。このようなデータ５０３’を含む人物相関データ５０１に基づき作成され、表示部１１に表示される画面の一例を、図４３に示す。
【０４１１】
図４３に示した画面の基本的な構成は、図３０に示した画面と同様である。図４３に示した画面と図３０に示した画面を比較するに、図４３に示した画面のツール表示部６０２に、イベントを選択するボタン８５１とボタン８５２が表示されている点が、図３０に示した画面と異なる。
【０４１２】
ボタン８５１は、“WEDDING”とのイベント名が表示され、結婚式のときの写真を、相関画像表示部６０１に表示されるときに選択、操作されるボタンである。ボタン８５２は、“PARTY”とのイベント名が表示され、パーティのときの写真を、相関画像表示部６０１に表示されるときに選択、操作されるボタンである。図４３に示した画面では、２つのボタンしか図示していないが、生成されたイベント数だけ表示される。
【０４１３】
ユーザは、例えば、結婚式のときの写真を閲覧したいとき、“WEDDING”とのイベント名が書かれたボタン８５１を操作することで、結婚式のときの写真を、相関画像表示部６０１に表示させることができる。ユーザにより選択されているボタンは、選択されていないボタンと区別が付くように、例えば、色が変えて表示される、矢印が表示されるなどされる。
【０４１４】
このように、イベント毎に画像を処理することで、またイベントの情報も含めたデータを作成することで、図４３に一例を示したような画面をユーザに提供することが可能となる。よって、ユーザ（閲覧者）は、所定のイベントのときに撮影した画像を、ボタンを操作するだけで閲覧することが可能となる。さらに、その画像は、そのイベント時に中心となった人物と、他の人物との相関図として表示されるため、撮影時の撮影者の思い出やとりまく環境を、人物相関から想起させることができ、より撮影者の実体験に基づいた写真の閲覧ができるようになる。
【０４１５】
また、これまで時間や場所に限定していた写真整理方法とは違い、人物に主眼を置いた整理方法であるため、ユーザ毎に個人化された検索を実行することができる。たとえば、“結婚式での写真”、“人物Ａとカップルの人物”、“人物Ｂと友達の人物”といった検索を行うことが可能となる。
【０４１６】
［記録媒体について］
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【０４１７】
図４４は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示すブロック図である。コンピュータにおいて、ＣＰＵ（Central Processing Unit）１００１、ＲＯＭ（Read Only Memory）１００２、ＲＡＭ（Random Access Memory）１００３は、バス１００４により相互に接続されている。バス１００４には、さらに、入出力インタフェース１００５が接続されている。入出力インタフェース１００５には、入力部１００６、出力部１００７、記憶部１００８、通信部１００９、及びドライブ１０１０が接続されている。
【０４１８】
入力部１００６は、キーボード、マウス、マイクロフォンなどよりなる。出力部１００７は、ディスプレイ、スピーカなどよりなる。記憶部１００８は、ハードディスクや不揮発性のメモリなどよりなる。通信部１００９は、ネットワークインタフェースなどよりなる。ドライブ１０１０は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア１０１１を駆動する。
【０４１９】
以上のように構成されるコンピュータでは、ＣＰＵ１００１が、例えば、記憶部１００８に記憶されているプログラムを、入出力インタフェース１００５及びバス１００４を介して、ＲＡＭ１００３にロードして実行することにより、上述した一連の処理が行われる。
【０４２０】
コンピュータ（ＣＰＵ１００１）が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア１０１１に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
【０４２１】
コンピュータでは、プログラムは、リムーバブルメディア１０１１をドライブ１０１０に装着することにより、入出力インタフェース１００５を介して、記憶部１００８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部１００９で受信し、記憶部１００８にインストールすることができる。その他、プログラムは、ＲＯＭ１００２や記憶部１００８に、あらかじめインストールしておくことができる。
【０４２２】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０４２３】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０４２４】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【０４２５】
１１  表示部，  １２  操作部，  １３  情報処理装置，  １４  記憶部，  ２１  表示制御部，  ２２  操作判断部，  ２３  人物相関データ生成部，  ２４  人物相関データ更新部，  ２５  グループ化部，  ２６  顔クラスタリング部，  ２７  画像解析部，  ３１  顔認識部，  ５０１  人物相関データ，  ６０１  人物相関表示部，  ６０２  ツール表示部，  ８００  情報処理装置，  ８０１  イベントクラスタリング部，  ８２１  時刻情報抽出部
【図１】
0005434569.tif 000008
【図２】
0005434569.tif 000009
【図３】
0005434569.tif 000010
【図４】
0005434569.tif 000011
【図５】
0005434569.tif 000012
【図６】
0005434569.tif 000013
【図７】
0005434569.tif 000014
【図８】
0005434569.tif 000015
【図９】
0005434569.tif 000016
【図１０】
0005434569.tif 000017
【図１１】
0005434569.tif 000018
【図１２】
0005434569.tif 000019
【図１３】
0005434569.tif 000020
【図１４】
0005434569.tif 000021
【図１５】
0005434569.tif 000022
【図１６】
0005434569.tif 000023
【図１７】
0005434569.tif 000024
【図１８】
0005434569.tif 000025
【図１９】
0005434569.tif 000026
【図２０】
0005434569.tif 000027
【図２１】
0005434569.tif 000028
【図２２】
0005434569.tif 000029
【図２３】
0005434569.tif 000030
【図２４】
0005434569.tif 000031
【図２５】
0005434569.tif 000032
【図２６】
0005434569.tif 000033
【図２７】
0005434569.tif 000034
【図２８】
0005434569.tif 000035
【図２９】
0005434569.tif 000036
【図３０】
0005434569.tif 000037
【図３１】
0005434569.tif 000038
【図３２】
0005434569.tif 000039
【図３３】
0005434569.tif 000040
【図３４】
0005434569.tif 000041
【図３５】
0005434569.tif 000042
【図３６】
0005434569.tif 000043
【図３７】
0005434569.tif 000044
【図３８】
0005434569.tif 000045
【図３９】
0005434569.tif 000046
【図４０】
0005434569.tif 000047
【図４１】
0005434569.tif 000048
【図４２】
0005434569.tif 000049
【図４３】
0005434569.tif 000050
【図４４】
0005434569.tif 000051