以下、本開示の実施形態について図面を参照して詳細に説明する。
図1を参照して、本開示の情報処理装置20の構成の一例について説明する。図1に示すように、情報処理装置20は、記憶装置14と通信可能に接続されている。情報処理装置20は、ユーザが保有する画像Pを、ネットワークを介してアップロード及びダウンロード可能に記憶装置14に保管する装置であり、例えば、オンラインストレージサービスに用いられる。各ユーザが保有するスマートフォン11及びPC(Personal Computer)12等の端末と、記憶装置14と、情報処理装置20と、はそれぞれ無線通信又は有線通信により通信可能に接続される。
情報処理装置20が提供するオンラインサービスを利用する場合は、まず、ユーザはスマートフォン11等の端末を通じてユーザ情報を情報処理装置20に送信して、ユーザごとのアカウントの作成を要求する。情報処理装置20は、ユーザからの要求に基づいて、ユーザごとのアカウントを作成する。ユーザ情報には、例えば、ユーザID(IDentifier)、氏名、性別及び生年月日等が含まれる。
アカウントが作成された後、ユーザは、各ユーザが保有するスマートフォン11及びPC12等の端末から情報処理装置20に接続し、端末に記憶されている、ユーザが保有する画像Pを記憶装置14にアップロードすることが可能となる。また、ユーザは、情報処理装置20に接続し、アップロードした画像Pを記憶装置14から端末にダウンロードすることも可能である。なお、各ユーザが保有する端末は1台とは限らず、1人のユーザが複数の端末で同一のアカウントを共有し、それぞれの端末から情報処理装置20に接続し、画像Pのアップロード及びダウンロードをしてもよい。
画像Pは、例えば、デジタルカメラで撮影して得られる写真の画像データ、及び写真フィルムに記録された画像をイメージスキャナ等の読取装置で読み取ることでデジタル化した画像データである。なお、写真フィルムをデジタル化する場合、情報処理装置20の提供事業者がユーザから写真フィルムを引き受け、写真フィルムのデジタル化を代行してもよい。
また、画像Pには、画像が作成された日付情報が予め付与されている。日付情報は、例えば、画像PのExif(Exchangeable Image File Format)情報に含まれる撮影日時の情報である。また、日付情報は、例えば、日付写し込み機能を有するフィルムカメラにより写真フィルムに記録された撮影日でもよい。この場合、写真フィルムに記録された撮影日は、例えば、OCR(Optical Character Recognition/Reader)等の文字認識機能によって読み取られ、画像Pの付帯情報として入力される。また、撮影日は、ユーザが目視で読み取って、手作業で画像Pの付帯情報として入力してもよい。
記憶装置14は、画像Pを保有者であるユーザ(より具体的には、情報処理装置20に予め登録されたユーザのアカウント)ごとに分類し、各ユーザの画像群として記憶する。図1では、一例として、記憶装置14内に、ユーザAとユーザBの二人のユーザの画像群が記憶されていることを示している。なお、記憶装置14は、それぞれの画像Pの付帯情報として、日付情報も記憶する。記憶装置14は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、及びフラッシュメモリ等の記憶装置によって実現され、単一の装置に限らず、複数の装置で構成されていてもよい。また、記憶装置14は、情報処理装置20に内蔵されていても良い。
以下、本実施形態に係る情報処理装置20について説明する。本実施形態に係る情報処理装置20は、画像Pに含まれる人物間の関係性を推定するために、画像Pに含まれる人物のうち、主たる人物と、主たる人物に関連のある人物と、を特定する。
まず、図2を参照して、本実施形態に係る情報処理装置20のハードウェア構成を説明する。図2に示すように、情報処理装置20は、CPU81、不揮発性の記憶部82、及び一時記憶領域としてのメモリ83を含む。また、情報処理装置20は、液晶ディスプレイ及び有機EL(Electro Luminescence)ディスプレイ等のディスプレイ84、キーボードとマウス等の入力部85、及びネットワークに接続されるネットワークI/F(InterFace)86を含む。CPU81、記憶部82、メモリ83、ディスプレイ84、入力部85、及びネットワークI/F86は、バス88に接続される。
記憶部82は、HDD、SSD及びフラッシュメモリ等の記憶装置によって実現される。記憶媒体としての記憶部82には、情報処理プログラム87が記憶される。CPU81は、記憶部82から情報処理プログラム87を読み出してからメモリ83に展開し、展開した情報処理プログラム87を実行する。CPU81は、本開示におけるプロセッサの一例である。
次に、図3~13を参照して、本実施形態に係る情報処理装置20の機能的な構成を説明する。図3に示すように、情報処理装置20は、取得部22、検出部24、抽出部26、クラスタリング部28、第1~第5指標導出部31~35、主クラスタ特定部40、関連クラスタ特定部42、及び表示制御部44を含む。CPU81が情報処理プログラム87を実行することにより、取得部22、検出部24、抽出部26、クラスタリング部28、第1~第5指標導出部31~35、主クラスタ特定部40、関連クラスタ特定部42、及び表示制御部44として機能する。
取得部22は、記憶装置14から解析対象のユーザの画像群を取得する。すなわち、情報処理装置20における処理は、同一のユーザが保有する複数の画像Pについて行われる。以下、一例として、記憶装置14に記憶されたユーザAの画像群について、情報処理装置20が処理を実行する例を説明する。
図4を参照して、検出部24、抽出部26及びクラスタリング部28の機能について説明する。図4は、ユーザAの画像群の一例としての複数の画像P1及びP2を示している。画像P1及びP2はともに家族写真であり、画像P1には、父親と推定される成人男性MA、母親と推定される成人女性FA、及び成人男性MAと成人女性FAの子供と推定される女児FCの3人の人物が写っている。画像P2には、画像P1に写っているのと同じ成人男性MA、成人女性FA及び女児FCと、画像P1には写っていない男児MCと、の4人の人物が写っている。男児MCは女児FCと同様に、成人男性MAと成人女性FAの子供と推定される。また、画像P1及びP2のそれぞれには日付情報が付与されている。以下、画像P1及びP2を区別しない場合は、単に画像Pという。
検出部24は、取得部22が取得した複数の画像Pのそれぞれに含まれる複数の人物の顔画像Dを検出する。顔画像Dの検出手法としては、例えば、画像Pについてエッジ検出等の処理を施して輪郭抽出及びパターンマッチングを行う方法、並びに機械学習を用いた方法等の公知の顔認識技術を用いることができる。図4は、画像P1及びP2のそれぞれから、各人物の顔画像D01~D32が検出された例を示している。なお、各顔画像D01~D32の下部に、検出元の画像Pの符号を付与している。以下、顔画像D01~D32を区別しない場合は、単に顔画像Dという。
抽出部26は、検出部24により検出された顔画像Dごとに、特徴量を抽出する。特徴量としては、例えば、Haar-like特徴量、HOG(Histograms of Oriented Gradients)特徴量、及びLBP(Local Binary Pattern)特徴量等の公知の特徴量を適宜用いることができる。特徴量の抽出手法としては、例えば、学習用の顔画像によって特徴量を出力するように予め学習され、顔画像Dを入力とし、特徴量を出力とする学習済みモデルを用いた方法等の公知の特徴量抽出技術を用いることができる。
クラスタリング部28は、抽出部26により抽出された特徴量に基づき、複数の顔画像Dを複数のクラスタCにクラスタリングする。具体的には、例えば、各顔画像Dに係る特徴量を比較する等により特徴量間の類似度を算出し、類似度が予め定められた閾値以上である顔画像D同士を同一のクラスタCに分類する。すなわち、人物一人につき、対応するクラスタCが一つとなるようにクラスタリングされることが望ましい。クラスタリング部28におけるクラスタリング手法としては、例えば、k-means法等の公知のクラスタリングアルゴリズムを用いることができる。図4は、成人男性MAの顔画像D01及びD02がクラスタC0に、成人女性FAの顔画像D11及びD12がクラスタC1に、女児FCの顔画像D21及びD22がクラスタC2に、男児MCの顔画像D32がクラスタC3に、分類された例を示している。
以上のようにして、複数の人物の顔画像Dが人物ごとにクラスタリングされると、情報処理装置20は、主たる人物に係るクラスタC(以下、主クラスタという)と、主たる人物に関連のある人物に係るクラスタC(以下、関連クラスタという)と、を特定する。情報処理装置20は、主たる人物に係る主クラスタを基準として、主たる人物に関連のある人物に係る関連クラスタを特定する。つまり、主たる人物とは、同一のユーザが保有する画像群に含まれる複数の人物の関係性を推定する場合において、基準となる人物をいう。以下、ユーザAの画像群に含まれる複数の人物の関係性を推定する場合において、成人女性FAが主たる人物であり、成人女性FAに係るクラスタC(図4の例ではクラスタC1)が主クラスタである例について説明する。また、この場合において、関連クラスタが、主クラスタに係る人物である成人女性FAの家族と推定される人物に係るクラスタである例について説明する。
まず、主クラスタ及び関連クラスタに係る人物は、複数の画像Pに相対的に多く写っているものと推定される。そこで、第1指標導出部31は、クラスタCに含まれる顔画像Dの数に応じた第1指標を、クラスタCごとに導出する。具体的には、第1指標導出部31は、クラスタCに含まれる顔画像Dの数が多いほど第1指標の値を大きくする。例えば、図4に示すように、各クラスタC0~C3に含まれる顔画像数を算出し、顔画像数をそのまま第1指標として用いる。なお、第1指標として、例えば、予め設定された点数を各クラスタCに含まれる顔画像Dの数に応じて比例配分した値、及び各クラスタCに含まれる顔画像Dの数を順位付けした値等を用いてもよい。
また、家族関係における構成員の属性は、父親、母親、息子、娘、祖父及び祖母等のようにある程度決まっている。また、父親及び母親は1人ずつ、祖父及び祖母は2人ずつというように構成員の属性毎に人数も決まっている場合が多い。さらに、父親及び祖父は男性、母親及び祖母は女性であり、父親及び母親と、息子及び娘と、祖父及び祖母とでは、それぞれ世代が異なる。そのため、家族関係のように複数の人物の具体的な関係性を推定するためには、人物ごとに年齢及び性別を判定することが重要である。
そこで、第2指標導出部32は、クラスタCに含まれる顔画像Dから判定される人物の年齢及び性別に応じた第2指標を、クラスタCごとに導出する。具体的には、例えば、第2指標導出部32は、図5に示すように、年齢及び性別に応じた6種類の指標M1~M3及びF1~F3が設定されたテーブルT1を参照可能である。テーブルT1は、例えば、記憶部82等に記憶されている。図5に示す第2指標において、「M」は男性、「F」は女性を意味し、「M」又は「F」に続く「1」から「3」の数字は、年齢を意味する。図5において、「1」、「2」、「3」の順に年齢は高くなる。
第2指標導出部32は、顔画像Dから年齢及び性別を判定すると、テーブルT1を参照する。図4及び5の例では、第2指標導出部32は、クラスタC0の第2指標をM2、クラスタC1の第2指標をF2、クラスタC2の第2指標をF1、クラスタC3の第2指標をM1、と導出する。顔画像Dから人物の年齢及び性別を判定する手法としては、例えば、抽出部26により抽出された特徴量に基づくパターンマッチングを行う方法、及び機械学習を用いた方法等の公知の年齢及び性別判定技術を用いることができる。
また、第2指標導出部32は、例えば、クラスタCに含まれる複数の顔画像Dのうち、少なくとも1つの顔画像Dから年齢及び性別を判定する。この場合、年齢を判定する対象の顔画像Dの検出元の画像Pの撮影日は、各クラスタC(すなわち、各人物)間でできるだけ近いことが望ましい。というのも、撮影日は顔画像Dの年齢を判定する基準日の役割を果たすが、顔画像Dごとの撮影日の時間的な差が大きいと、顔画像Dに係る人物ごとに判定される年齢の比較が意味をなさないからである。
したがって、第2指標導出部32は、予め定められた日付情報を有する画像Pから検出された顔画像Dに基づき、第2指標をクラスタCごとに導出することが望ましい。ここで、「予め定められた日付情報」とは、同日に限らず、例えば、情報処理装置20における処理を行う日から3年以内の日付情報等、時間的な幅を持っていてもよい。また、予め定められた日付情報を有する画像Pが複数ある場合、第2指標導出部32は、当該複数の画像Pから検出された顔画像Dから判定される人物の年齢の平均値に応じて、第2指標を導出してもよい。また、この場合、四分位数等を用いて外れ値を除外してもよい。
また、家族関係を推定する場合、主クラスタ及び関連クラスタに係る人物は、複数の画像Pに相対的に長期間に亘って写っているものと推定される。そこで、第4指標導出部34は、クラスタCに含まれる複数の顔画像Dがそれぞれ検出された複数の画像Pのそれぞれに付与された日付情報に応じた第4指標を、クラスタCごとに導出する。具体的には、第4指標導出部34は、複数の画像Pのそれぞれに付与された日付情報のうち、最も古い日付情報と、最も新しい日付情報と、の差が大きいほど第4指標の値を大きくする。すなわち、複数の画像Pに相対的に長期間に亘って写っている人物に係るクラスタCの第4指標の値を大きくする。
図8は、各クラスタCに含まれる顔画像Dのそれぞれの検出元の画像Pの日付情報に基づき、クラスタC0~C3のそれぞれについて、顔画像Dの数を撮影年ごとに示すグラフである。図9は、図8のグラフに対応し、各クラスタCに含まれる顔画像Dが検出された撮影年のうち、最も古い撮影年を「最古」の欄に、最も新しい撮影年を「最新」の欄に、「最古」年と「最新」年との差を「差」の欄に、示したものである。図9における「差」の欄の値が、それぞれのクラスタC0~C3に係る第4指標となる。
なお、複数の画像Pに、息子及び娘が生まれる前の期間の画像Pが含まれている場合は、息子及び娘であっても写っている期間が相対的に短くなり、第4指標が低く導出される場合がある(図8及び9のクラスタC2及びC3を参照)。そこで、第4指標導出部34は、各クラスタCの第2指標を参照し、第2指標がM1又はF1と導出されているクラスタCについて、第4指標の値に予め定めた割合の加算をしてもよい。
また、主クラスタ及び関連クラスタに係る人物は、より古い撮影日の画像Pから、より新しい撮影日の画像Pにまで写っている場合が多いものと推定される。そこで、第4指標導出部34は、複数の画像Pのそれぞれに付与された日付情報のうちの最も古い日付情報が古いほど、第4指標の値を大きくしてもよい。また、第4指標導出部34は、複数の画像Pのそれぞれに付与された日付情報のうちの最も日付情報が新しいほど、第4指標の値を大きくしてもよい。また、第4指標導出部34は、最も古い日付情報の古さ、最も新しい日付情報の新しさ、及び最も古い日付情報と最も新しい日付情報との差、のうち任意の値を組み合わせて第4指標を導出してもよい。
主クラスタ特定部40は、第1、第2及び第4指標に基づき、複数のクラスタCから、主クラスタを特定する。具体的には、例えば、主クラスタ特定部40は、第1、第2及び第4指標の値に応じた主クラスタとしての適切度をクラスタCごとに算出し、最も適切度の高いクラスタCを主クラスタとして特定する。
図10を参照して、第1、第2及び第4指標の値に応じた主クラスタとしての適切度の算出方法の一例を説明する。図10は、第1及び第4指標の値(図4及び9参照)と、第1及び第4指標の値の合計と、第2指標と、適切度と、をクラスタC0~C3ごとに示している。上述したように、クラスタCに含まれる顔画像Dの数(すなわち、画像Pに写っている数)が多いほど第1指標の値が大きく、画像Pに長期間に亘って写っているほど第4指標の値が大きくなる。すなわち、第1及び第4指標の合計が大きいほど、主クラスタとして適切である可能性が高いと推定される。
一方、本実施例において、主クラスタに係る主たる人物は、同一のユーザが保有する画像群に含まれる複数の人物の関係性を推定する場合において基準となる人物である。そのため、主たる人物としては、ユーザ本人と推定される人物が適切であると考えられる。ところで、同一のユーザが保有する画像群には、ユーザ本人が撮影した画像が最も多く含まれているものと考えられる。一方、子世代の人物が、写真の撮影者、すなわちユーザ本人となる可能性は低い。したがって、子世代の人物に係るクラスタCは主クラスタとして不適切と判定され、親世代又は祖父母世代の人物に係るクラスタCが主クラスタとして適切と判定されることが好ましい。
そこで、本実施例においては、主クラスタ特定部40は、主クラスタとして適切か否かを、第2指標に応じて判定する。上述したように、第2指標は、人物の年齢及び性別に基づいて導出されるので、第2指標を参照することで、主クラスタに係る主たる人物として適切な世代の人物であるか否かを判定することができる。具体的には、主クラスタ特定部40は、第2指標に基づき、予め定められた年齢以上と判定された人物に係るクラスタCの中から、主クラスタを特定する。例えば、主クラスタ特定部40は、第2指標に応じて主クラスタとして適切か否かを判定するための判定条件が予め設定されたテーブルT2を参照可能である。
図6にテーブルT2の一例を示す。図6に示すように、テーブルT2は、例えば、第2指標に応じた、家族関係における構成員の属性候補と、第2指標に応じて主クラスタ及び関連クラスタとして適切か否かを判定するための判定条件と、を含む。上述したように、第2指標は、人物の年齢及び性別に基づいて導出されるので、第2指標に応じて、家族関係における構成員の属性が特定可能である。また、第2指標に応じて、主クラスタ及び関連クラスタとして適切か否かを判定することが可能である。テーブルT2は、例えば記憶部82に記憶されている。
主クラスタ特定部40は、テーブルT2を参照し、予め定められた年齢未満であることを示す第2指標がM1又はF1であるクラスタC2及びC4を、主クラスタ特定の対象から除外し、適切度を0と算出する。また、主クラスタ特定の対象であるクラスタC0及びC1について、第1及び第4指標の合計に基づき適切度を算出する。主クラスタ特定部40は、適切度が最も大きいクラスタC1を、主クラスタとして特定する。
なお、主クラスタ特定部40は、第1及び第4指標の少なくとも一方が主クラスタとして不適当な値となっているクラスタCについて、適切度を適宜下げてもよい。例えば、第1指標の値が大きいために第1及び第4指標の合計が最も大きくても、第4指標の値が規定値以下であれば、適切度を0とし、主クラスタの対象外としてもよい。
また、主クラスタ特定部40は、主クラスタに、主クラスタに係る人物の属性情報を第2指標に応じて付与する。この場合、主クラスタ特定部40は、テーブルT2を参照し、主クラスタと特定したクラスタC1の第2指標F2に基づき、クラスタC1に、クラスタC1に係る人物の属性情報である「母親」を付与する。
また、主クラスタ及び関連クラスタに係る人物は、それぞれ同一の画像Pに一緒に写っている頻度が相対的に高いものと推定される。そこで、第3指標導出部33は、複数のクラスタCのうちの予め特定された主クラスタに含まれる顔画像Dと、複数のクラスタCのうちの主クラスタ以外のクラスタCに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第1共起数に応じた第3指標を、主クラスタ以外のクラスタCごとに導出する。第1共起数とは、言い換えれば、主たる人物と、主たる人物以外の人物とが、同一の画像Pに一緒に写っている頻度である。具体的には、第3指標導出部33は、第1共起数が多いほど第3指標の値を大きくする。
ここで、主クラスタが「予め特定された」とは、主クラスタが特定されるタイミングが、第3指標を導出する前であることを意味し、第1、第2又は第4指標が導出される前に主クラスタが特定されていなければならないわけではない。上述のとおり、本実施例では、第1、第2及び第4指標が導出された後に主クラスタが特定されている。このように、「予め特定された主クラスタ」には、第1、第2及び第4指標の少なくとも1つが導出された後、第3指標が導出されるまでの間に特定された主クラスタも含まれる。もちろん、例えば、ユーザの選択等によって、第1、第2及び第4指標が導出される前に主クラスタが特定されていてもよい。
図7は、第3指標の一例として、主クラスタと特定されたクラスタC1と、他のクラスタC0、C2及びC3と、の第1共起数をそのまま用いた例を示している。なお、これに限らず、第3指標として、予め設定された点数を、第1共起数に応じて比例配分した値、及び第1共起数を順位付けした値等を用いてもよい。
関連クラスタ特定部42は、第1~第4指標に基づき、関連クラスタを、主クラスタ以外の複数のクラスタCから特定する。具体的には、上述したように、画像Pに写っている数が多いほど第1指標の値は大きくなるので、関連クラスタ特定部42は、複数のクラスタCのうち、第1指標の値が相対的に大きなクラスタの中から、関連クラスタを特定する。また、主クラスタに係る人物と一緒に写っている数が多いほど第3指標の値が大きくなるので、関連クラスタ特定部42は、複数のクラスタCのうち、第3指標の値が相対的に大きなクラスタの中から、関連クラスタを特定する。また、画像Pに長期間に亘って写っているほど第4指標の値が大きくなるので、関連クラスタ特定部42は、第4指標の値が相対的に大きなクラスタの中から、関連クラスタを特定する。
具体的には、関連クラスタ特定部42は、第1~第4指標の値に応じた関連クラスタとしての適切度を、クラスタCごとに算出し、最も適切度の高いクラスタCを関連クラスタとして特定する。図11を参照して、第1~第4指標の値に応じた関連クラスタとしての適切度の算出方法の一例を説明する。図11は、第1、第3及び第4指標の値(図4、7及び9参照)と、第1、第3及び第4指標の値の合計と、第2指標と、適切度と、をクラスタC0、C2及びC3ごとに示している。上述したように、関連クラスタは、第1、第3及び第4指標がそれぞれ相対的に大きいクラスタの中から特定される。
一方、本実施例において、関連クラスタは、主クラスタに係る人物(すなわち、図4において母親と推定される成人女性FA)の家族である。上述したように、家族の構成員の属性は、世代及び性別に基づき、ある程度推定され、構成員の属性毎に人数も決まっている場合が多い。そこで、まず、関連クラスタ特定部42は、主クラスタに係る第2指標と異なる第2指標が導出されたクラスタの中から、関連クラスタを特定する。言い換えれば、関連クラスタ特定部42は、主クラスタに係る第2指標と同じ第2指標のクラスタを、関連クラスタ特定の対象から除外する。例えば、本例では主クラスタの第2指標はF2である。そのため、仮に主クラスタと同じ第2指標であるF2を有するクラスタが他にある場合、関連クラスタ特定部42は、当該クラスタを関連クラスタ特定の対象から除外し、適切度を0と算出する。
また、関連クラスタ特定部42は、各クラスタC0、C2及びC3について、第1、第3及び第4指標の合計に基づき適切度を算出する。関連クラスタ特定部42は、適切度が最も大きいクラスタC2を、関連クラスタとして特定する。
なお、関連クラスタ特定部42は、第1、第3及び第4指標の少なくとも1つが関連クラスタとして不適当な値となっているクラスタCの適切度を適宜下げてもよい。例えば、第1指標の値が大きいために第1、第3及び第4指標の合計が最も大きくても、第3及び第4指標の値が規定値以下であれば、適切度を0とし、関連クラスタの対象外としてもよい。
また、関連クラスタ特定部42は、関連クラスタに係る人物の属性情報を第2指標に応じて付与する。例えば、関連クラスタ特定部42は、主クラスタ特定部40と同様に、図6に示すテーブルT2を参照可能である。関連クラスタ特定部42は、テーブルT2を参照し、関連クラスタと特定したクラスタC2の第2指標F1に基づき、クラスタC2に係る人物の属性情報である「娘」を付与する。
なお、関連クラスタ特定部42は、以上のように算出した適切度を用いて、主クラスタとそれぞれ関連する複数の関連クラスタを特定してもよい。例えば、適切度が予め定められた閾値以上の複数のクラスタを関連クラスタとして特定してもよいし、適切度の上位から予め定められた割合の複数のクラスタを関連クラスタとして特定してもよい。
また、関連クラスタ特定部42は、主クラスタとそれぞれ関連する複数の関連クラスタを特定する場合において、1つ以上の関連クラスタが特定されている場合は、既に特定された関連クラスタとも関連のあるクラスタCを、他の関連クラスタとして特定してもよい。すなわち、2つ目以降の関連クラスタを、主クラスタに加え、既に特定された他の関連クラスタとも関連があるクラスタとしてもよい。例えば、本実施例のように、主クラスタと家族関係にある関連クラスタを特定する場合、複数の関連クラスタ同士も、相互に関連があることが推定される。このように関連クラスタ同士の関連性を考慮することにより、主クラスタの友人関係等、主クラスタのみと関連がある人物に係るクラスタは、家族関係にある関連クラスタの対象から除外されやすくなる。すなわち、このような形態によれば、家族関係等の相互に関連がある人物に係るクラスタCの特定精度を向上させることができる。
この場合、情報処理装置20は、異なる関連クラスタ間の関連性を表す第5指標を用いて、関連クラスタの特定を行う。第5指標導出部35は、既に特定された関連クラスタに含まれる顔画像Dと、複数のクラスタのうちの主クラスタ以外のクラスタに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第2共起数に応じた第5指標を、主クラスタ以外のクラスタごとに導出する。第2共起数とは、言い換えれば、既に特定されている関連クラスタに係る人物と、主たる人物以外の人物とが、同一の画像Pに一緒に写っている頻度である。具体的には、第5指標導出部35は、第2共起数が多いほど第5指標の値を大きくする。
図7に、第5指標の一例として、既に特定された関連クラスタC2と、主クラスタC1以外のクラスタC0及びC3と、の第2共起数を用いた例を示している。なお、これに限らず、第5指標として、予め設定された点数を、第2共起数に応じて比例配分した値、及び第2共起数を順位付けした値等を用いてもよい。
関連クラスタ特定部42は、第1~第5指標の5つの指標に基づき、関連クラスタを特定する。具体的には、関連クラスタ特定部42は、第1~第5指標の値に応じた関連クラスタとしての適切度を、クラスタCごとに算出し、適切度が相対的に高いクラスタCを関連クラスタとして特定する。
図12を参照して、第1~第5指標の値に応じた関連クラスタとしての適切度の算出方法の一例を説明する。図12は、第1、第3~第5指標の値(図4、7及び9参照)と、第1、第3~第5指標の値の合計と、第2指標と、適切度と、をクラスタC0及びC3ごとに示している。
関連クラスタ特定部42は、主クラスタC1及び既に特定された関連クラスタC2に係る第2指標と異なる第2指標が導出されたクラスタの中から、関連クラスタを特定する。例えば、仮に主クラスタC1と同じ第2指標であるF2、又は既に特定された関連クラスタC2と同じ第2指標であるF1を有するクラスタが他にある場合、関連クラスタ特定部42は、当該クラスタを関連クラスタ特定の対象から除外し、適切度を0と算出する。
なお、関連クラスタ特定部42は、図6に示すテーブルT2の条件を満たした場合には、主クラスタ及び他の関連クラスタに係る第2指標と同じ第2指標が導出されたクラスタの中から、関連クラスタを特定してもよい。例えば、第一子と第二子の性別が同じ場合、及び父方の祖父と母方の祖父が存在する場合等、家族に同じ第2指標を有する複数の人物が含まれる場合があるためである。
また、関連クラスタ特定部42は、各クラスタC0及びC3について、第1、第3~第5指標の値の合計に基づき適切度を算出する。関連クラスタ特定部42は、適切度が最も大きいクラスタC3を、主クラスタC1に加え、既に特定された他の関連クラスタC2とも関連がある関連クラスタとして特定する。また、関連クラスタ特定部42は、2番目に適切度が大きいクラスタC0を、主クラスタC1に加え、既に特定された他の関連クラスタC2とも関連がある関連クラスタとして特定してもよい。
また、関連クラスタ特定部42は、図6に示すテーブルT2を参照して、各関連クラスタに係る人物の属性情報を第2指標に応じて付与する。図12の例では、関連クラスタC0には属性情報である「父親」が付与され、関連クラスタC3には「息子」が付与される。
一方、例えば、同一人物に係る顔画像Dが複数のクラスタCにクラスタリングされる等の不具合が発生すると、実際には主クラスタと関連があるクラスタであっても、第1、第3及び第4指標の値が低くなり、関連クラスタとして特定されない場合がある。そこで、関連クラスタ特定部42は、主クラスタとそれぞれ関連する複数の関連クラスタを特定する場合において、主クラスタと関連する既に特定された関連クラスタ(以下、第1関連クラスタという)の他に、第1関連クラスタに関連する関連クラスタ(以下、第2関連クラスタという)を特定してもよい。すなわち、主クラスタとの関連性は弱いものの、第1関連クラスタとの関連性が強いクラスタを、第2関連クラスタとして特定してもよい。この場合、主クラスタとの関連性(すなわち、第1、第3及び第4指標の値)のみに基づいて関連クラスタを特定する場合と比較して、関連クラスタの抜けを抑制することができる。
この場合、第5指標導出部35は、第1関連クラスタに含まれる顔画像Dと、複数のクラスタCのうちの主クラスタ及び第1関連クラスタ以外のクラスタCに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第2共起数に応じた第5指標を、主クラスタ及び第1関連クラスタ以外のクラスタCごとに導出する。上述のとおり、第2共起数とは、言い換えれば、既に特定されている関連クラスタ(本例では第1関連クラスタ)に係る人物と、主たる人物以外の人物とが、同一の画像Pに一緒に写っている頻度である。関連クラスタ特定部42は、少なくとも第1、第2及び第3指標に基づき、第1関連クラスタを特定し、第1、第2及び第5指標に基づき、第1関連クラスタとの関連性がある第2関連クラスタを特定する。
また、主クラスタ特定部40は、関連クラスタに係る人物の属性情報に応じて、主クラスタに係る人物の属性情報を修正してもよい。例えば、第2指標は顔画像Dに基づいて判定される年齢に応じた指標なので、実年齢との誤差が生じ、実際には母親の人物に「祖母」の属性情報を付与してしまう場合がある。そこで、主クラスタ特定部40は、主クラスタ及び全ての関連クラスタの属性情報の付与が完了した後に、「母親」の属性情報が付与された主クラスタ又は関連クラスタが無い場合に、「祖母」が付与された主クラスタの属性情報を、「母親」に修正してもよい。
情報処理装置20は、予め定められたタイミングで、以上説明した関連クラスタの特定、及び主クラスタの特定のうちの少なくとも一方の処理を再度行う。「予め定められたタイミング」とは、例えば、一度処理を行ってから予め定められた期間が経過したタイミングであってもよい。また、例えば、ユーザによって画像Pが追加されたタイミングであってもよい。また、例えば、ユーザによって画像Pが追加され、かつ画像Pの追加枚数が予め定められた数に達したタイミングであってもよい。また、例えば、ユーザによって画像Pが追加され、かつ追加された画像から予め定められた数の顔画像Dが検出されたタイミングであってもよい。また、例えば、これらの各タイミングを適宜組み合わせたものであってもよい。
ここで、関連クラスタの特定処理を再度行う場合、情報処理装置20は、既に特定されている主クラスタと、既に特定されている少なくとも1つの関連クラスタと、の特定結果を引き継ぐことが好ましい。例えば、図13に示すように、複数のクラスタC0~C6があり、再度の関連クラスタの特定処理の前に、クラスタC1が主クラスタとして特定され、クラスタC0、C2及びC3が関連クラスタとして特定されているものとする。この場合、情報処理装置20は、既に特定されている主クラスタC1と、既に特定されている関連クラスタC0、C2及びC3のうち少なくとも1つと、の特定結果を引き継ぐ。
図13を参照して、特定結果を引き継ぎ得る関連クラスタのうち、特に特定結果を引き継ぐことが好ましい関連クラスタについて説明する。特定結果を引き継ぐことが好ましい関連クラスタとは、例えば、再度関連クラスタの特定処理を行っても、結果が変わる可能性が比較的低いと考えられるものである。
このような関連クラスタの第1例として、追加された画像Pよりも過去に撮影された画像Pに基づいて既に特定されている関連クラスタが挙げられる。過去に撮影された画像Pに基づいて既に関連クラスタとして特定されたクラスタCは、それ以降に撮影された画像Pの追加によって関連クラスタから除外されることは考えにくい。というのも、通常、関連性は過去から現在に引き継がれるものであり、特に家族関係にある人物同士の関連性を考えた場合は、その傾向が強いと考えられるためである。そこで、情報処理装置20は、画像Pが追加された後に関連クラスタの特定処理を再度行う場合、既に関連クラスタとして特定され、かつ、追加された画像Pから検出された顔画像Dを新たにクラスタリングした場合において顔画像Dの追加があった関連クラスタであって、追加された顔画像Dの検出元の画像Pよりも過去に撮影された画像Pから検出された顔画像Dを含む関連クラスタの特定結果を引き継ぐことが好ましい。図13の例では、クラスタC0がこれに該当する。また、この場合、図13の例において、情報処理装置20は、クラスタC2~C6の中から、関連クラスタを特定し直す処理を行う。なお、関連クラスタが、追加された顔画像Dの検出元の画像Pよりも過去に撮影された画像Pから検出された顔画像Dを含むか否かは、それぞれの画像Pに付与された日付情報により判定可能である。
また、第2例として、ユーザによって画像Pが追加され、追加された画像Pから検出された顔画像Dを新たにクラスタリングした場合において、顔画像Dの追加がなかった関連クラスタが挙げられる。そこで、情報処理装置20は、画像Pが追加された後に関連クラスタの特定処理を再度行う場合、既に特定されている関連クラスタであって、追加された画像Pから検出された顔画像Dを新たにクラスタリングした場合において、顔画像Dの追加がなかった関連クラスタの特定結果を引き継ぐことが好ましい。図13の例では、クラスタC3がこれに該当する。一方、クラスタC0及びC2は、既に特定されている関連クラスタではあるが、追加された画像Pから検出された顔画像Dを新たにクラスタリングした場合において、顔画像Dの追加があった関連クラスタである。クラスタC0及びC2については、再度関連クラスタの特定処理を行った場合、結果が変わる可能性が比較的高いとも考えられるので、関連クラスタの特定結果は引き継がれない。そのため、図13の例において、情報処理装置20は、クラスタC0、C2及びC4~C6の中から、関連クラスタを特定し直す処理を行う。
また、上述した第1例と第2例を組み合わせてもよい。例えば、図13の例において、情報処理装置20が、クラスタC0及びC3の関連クラスタの特定結果を引き継ぎ、クラスタC2及びC4~C6の中から、関連クラスタを特定し直す処理を行うようにしてもよい。
また、もちろん、情報処理装置20が、既に特定されている全ての主クラスタ及び関連クラスタの特定結果を引き継ぐようにしてもよい。例えば、図13の例において、情報処理装置20が、既に特定されている全ての主クラスタ及び関連クラスタであるC0~C3の特定結果を引き継ぎ、クラスタC4~C6の中から、新たな関連クラスタを特定する処理を行ってもよい。
また、情報処理装置20は、ユーザによって画像Pが追加された場合に、追加された画像Pのみに基づいて、関連クラスタの特定、及び主クラスタの特定のうちの少なくとも一方の処理を再度行ってもよい。なお、この場合において、既に特定されている主クラスタ及び関連クラスタの特定結果を引き継ぐか否かは、任意に定めることが可能である。
表示制御部44は、特定した主クラスタ及び関連クラスタに基づき、記憶装置14内の複数の画像Pのうち一部の画像を選択し、選択した画像がユーザの端末で表示されるように、選択した画像をユーザの端末に配信する制御を行う。情報処理装置20は、こうした表示制御を通じて、ユーザにおすすめの画像を提示してもよい。例えば、情報処理装置20は、図14に示すように、複数の画像Pのうち、特定した主クラスタ及び関連クラスタに係る人物が全員写っている画像Pを選択し、選択した画像Pをおすすめの家族写真としてユーザに提示してもよい。また、情報処理装置20は、選択した画像Pを提示する際に、画像Pに加えて、当該画像Pに写っている人物の属性を提示してもよい。
次に、図15及び16を参照して、本実施形態に係る情報処理装置20の作用を説明する。図15は、関連クラスタの特定及び主クラスタの特定に係る処理の一例を示すフローチャートであり、図16は、図15に示す処理の再処理に係るフローチャートである。CPU81が情報処理プログラム87を実行することによって、図15及び16に示す処理が実行される。
図15に示す処理は、例えば、ユーザから処理開始の指示が入力された場合に実行される。図15のステップS10で、取得部22は、記憶装置14から解析対象のユーザの画像群を取得する。ステップS12で、検出部24は、ステップS10で取得した複数の画像Pのそれぞれに含まれる複数の人物の顔画像Dを検出する。ステップS14で、抽出部26は、ステップS12で検出した顔画像Dごとに、特徴量を抽出する。ステップS16で、クラスタリング部28は、ステップS14で抽出した特徴量に基づき、複数の顔画像Dを複数のクラスタCにクラスタリングする。
ステップS18で、第1指標導出部31は、クラスタCに含まれる顔画像Dの数に応じた第1指標を、クラスタCごとに導出する。ステップS20で、第2指標導出部32は、クラスタCに含まれる顔画像Dから判定される人物の年齢及び性別に応じた第2指標を、クラスタCごとに導出する。ステップS22で、第4指標導出部34は、クラスタCに含まれる複数の顔画像Dがそれぞれ検出された複数の画像Pのそれぞれに付与された日付情報に応じた第4指標を、クラスタCごとに導出する。なお、ステップS18、S20及びS22の処理は、それぞれ並行して行ってもよいし、順序を入れ替えて行ってもよい。
ステップS24で、主クラスタ特定部40は、ステップS18、S20及びS22でそれぞれ導出した第1、第2及び第4指標に基づき、複数のクラスタCから、主クラスタを特定する。ステップS26で、第3指標導出部33は、ステップS24で特定した主クラスタに含まれる顔画像Dと、複数のクラスタCのうちの主クラスタ以外のクラスタCに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第1共起数に応じた第3指標を、主クラスタ以外のクラスタCごとに導出する。
ステップS28で、関連クラスタ特定部42は、ステップS18、S20、S22及びS26でそれぞれ導出した第1~第4指標に基づき、関連クラスタを、主クラスタ以外の複数のクラスタCから特定する。ステップS30で、関連クラスタ特定部42は、関連クラスタの特定が完了したか否かを判定する。例えば、複数の関連クラスタを特定しない場合は、この時点で関連クラスタの特定が完了したと判定し(ステップS30がY)、本処理を終了する。
一方、関連クラスタの特定が完了していない場合(ステップS30がN)は、異なる関連クラスタの特定のため、ステップS32に移行する。ステップS32で、第5指標導出部35は、ステップS28で既に特定された関連クラスタに含まれる顔画像Dと、複数のクラスタCのうちの主クラスタ以外のクラスタCに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第2共起数に応じた第5指標を、主クラスタ以外のクラスタCごとに導出する。ステップS34で、関連クラスタ特定部42は、ステップS18、S20、S22、S26及びS32でそれぞれ導出した第1~第5指標に基づき、ステップS28で特定した関連クラスタとは異なる関連クラスタを、主クラスタ及び既に特定された関連クラスタ以外の複数のクラスタCから特定する。
関連クラスタ特定部42は、関連クラスタの特定が完了するまで、ステップS30、S32及びS34を繰り返す。関連クラスタの特定が完了すると(ステップS30がY)、本処理を終了する。
図16に示す処理は、予め定められたタイミングが到来した場合に実行される。図16のステップS50で、CPU81は、予め定められたタイミングが到来するまで待機し、予め定められたタイミングが到来すると、ステップS52に移行する。ステップS52で、CPU81は、図15に示す特定処理を再度実行する。
以上説明したように、本実施形態に係る情報処理装置20は、少なくとも1つのプロセッサを備えた情報処理装置である。プロセッサは、複数の画像Pのそれぞれに含まれる複数の人物の顔画像Dを検出し、顔画像Dごとに、特徴量を抽出し、特徴量に基づき、複数の顔画像Dを複数のクラスタCにクラスタリングする。また、クラスタCに含まれる顔画像Dの数に応じた第1指標を、クラスタごとに導出する。また、クラスタCに含まれる顔画像Dから判定される人物の年齢及び性別に応じた第2指標を、クラスタCごとに導出する。また、複数のクラスタCのうちの予め特定された主クラスタに含まれる顔画像Dと、複数のクラスタCのうちの主クラスタ以外のクラスタCに含まれる顔画像Dと、の2つの顔画像Dが、同一の画像Pから検出された数である第1共起数に応じた第3指標を、主クラスタ以外のクラスタCごとに導出する。また、第1、第2及び第3指標に基づき、主クラスタと関連する1つ以上の関連クラスタを、主クラスタ以外の複数のクラスタCから特定する。
すなわち、本実施形態に係る情報処理装置20は、画像Pから検出される顔画像Dの数に応じた第1指標、顔画像Dから判定される人物の年齢及び性別に応じた第2指標、及び第1共起数に応じた第3指標に基づき、主クラスタと関連する1つ以上の関連クラスタを特定する。したがって、画像に含まれる人物間の関係性として、従来よりも具体的な関係性を推定することができる。
なお、上記実施形態においては、関連クラスタ特定部42が、第1~第4指標の少なくとも4つの指標に基づき、関連クラスタを、主クラスタ以外の複数のクラスタCから特定する形態について説明したが、これに限らない。関連クラスタ特定部42は、少なくとも第1、第2及び第3指標に基づき、主クラスタと関連する1つ以上の関連クラスタを、主クラスタ以外の複数のクラスタCから特定すればよい。すなわち、第4指標を用いずに、関連クラスタの特定を行ってもよい。
また、上記実施形態においては、主クラスタとそれぞれ関連する複数の関連クラスタを特定する場合において、関連クラスタ特定部42が、第1~第5の5つの指標に基づき、複数の関連クラスタを特定する形態について説明したが、これに限らない。複数の関連クラスタを特定する場合において、関連クラスタ特定部42は、第1、第2及び第3指標に、第5指標を加えた少なくとも4つの指標に基づき、関連クラスタを特定すればよい。すなわち、第4指標を用いずに、複数の関連クラスタの特定を行ってもよい。
また、上記実施形態においては、情報処理装置20が第1、第2及び第4指標に基づいて主クラスタを特定する形態について説明したが、これに限らない。例えば、情報処理装置に登録された性別及び生年月日等のユーザ情報と一致するクラスタを、主クラスタとして特定してもよい。また、クラスタリングが完了した時点で、複数のクラスタCをユーザに提示し、ユーザによる主クラスタの選択を受け付けてもよい。
また、上記実施形態においては、同一のユーザの画像群に含まれる複数の人物の家族関係を推定する例で説明したが、友人関係等、家族関係以外の関係を推定してもよい。その場合には、例えば、図6に示すテーブルT2等は、家族関係を推定するための内容ではなく、友人関係等を推定するための内容に変更される。
また、上記実施形態においては、アカウントとユーザが1対1で対応し、画像Pがユーザごとに分類されて、記憶装置14に記憶される形態について説明したが、これに限らない。例えば、1つのアカウントを家族等の複数の人物が共有し、それぞれの人物が自身の所有する端末から情報処理装置20に接続し、画像Pのアップロード及びダウンロードをすることも可能である。この場合は、家族等のアカウント共有者のそれぞれは、同一のアカウントを利用する同一のユーザとみなされる。
また、上記実施形態においては、情報処理装置20を1台のコンピュータで構成し、1台のコンピュータが顔画像Dの検出、特徴量の抽出、クラスタリング、第1~第3指標の各指標の導出をすべて行う形態で説明したが、これに限らない。例えば、情報処理装置20を複数台のコンピュータで構成し、1台のコンピュータが顔画像Dの検出からクラスタリングまでを行い、別のコンピュータが各指標の導出を行うというように、複数台のコンピュータで処理を分散してもよい。また、顔画像Dの検出からクラスタリングまでを行う1台のコンピュータに対して、各指標の導出を行うコンピュータを複数台接続してもよい。
また、上記各実施形態において、例えば、取得部22、検出部24、抽出部26、クラスタリング部28、第1~第5指標導出部31~35、主クラスタ特定部40、関連クラスタ特定部42、及び表示制御部44といった各種の処理を実行する処理部(Processing Unit)のハードウェア的な構造としては、次に示す各種のプロセッサ(Processor)を用いることができる。上記各種のプロセッサには、上述したように、ソフトウェア(プログラム)を実行して各種の処理部として機能する汎用的なプロセッサであるCPUに加えて、FPGA(Field Programmable Gate Array)等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device :PLD)、ASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が含まれる。
1つの処理部は、これらの各種のプロセッサのうちの1つで構成されてもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGAの組み合わせ又はCPUとFPGAとの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアント及びサーバ等のコンピュータに代表されるように、1つ以上のCPUとソフトウェアとの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System On Chip:SoC)等に代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサの1つ以上を用いて構成される。
さらに、これらの各種のプロセッサのハードウェア的な構造としては、より具体的には、半導体素子等の回路素子を組み合わせた電気回路(Circuitry)を用いることができる。
また、本開示の技術は、情報処理装置プログラムに加えて、情報処理プログラムを非一時的に記憶するコンピュータで読み取り可能な記憶媒体(USBメモリ又はDVD(Digital Versatile Disc)-ROM(Read Only Memory)など)にもおよぶ。