(57)【要約】【課題】逐次に追加されるデータをより妥当なクラスタに分類する。【解決手段】それぞれが特徴量空間での位置情報を有し上記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、上記特徴量空間での位置情報を有する新規データを追加する場合、上記クラスタのうち上記新規データが上記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは上記新規データを上記クラスタに分類するときに上記候補クラスタを再構成することを決定するクラスタ再構成判定部を備える情報処理装置が提供される。【選択図】図１
2014095967.tif 000002
【特許請求の範囲】
【請求項１】
それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定するクラスタ再構成判定部を備える情報処理装置。
【請求項２】
前記特徴量空間での前記データ群に含まれるデータと前記新規データとの間の距離を要素とする距離行列を生成し、前記距離行列の一部の要素に前記特徴量空間での位置情報に基づいて算出された距離を設定する距離算出部と、
前記算出された距離が設定されなかった前記距離行列の要素の予測値を含む予測距離行列を、前記距離行列を用いた行列演算によって算出する距離推定部と
をさらに備え、
前記クラスタ再構成判定部は、前記予測距離行列に基づいて前記候補クラスタを決定する、請求項１に記載の情報処理装置。
【請求項３】
前記距離推定部は、前記距離行列から導出される１対の行列を、前記距離行列を参照して交互に再計算することによって１対の中間行列を生成し、前記１対の中間行列に基づいて前記予測距離行列を算出する、請求項２に記載の情報処理装置。
【請求項４】
前記新規データは、第１の新規データと、該第１の新規データの後に追加される第２の新規データとを含み、
前記距離行列は、前記第１の新規データが追加されたときに生成される第１の距離行列と、前記第２の新規データが追加されたときに生成される第２の距離行列とを含み、
前記予測距離行列は、前記第１の新規データが追加されたときに生成された第１の算出される第１の予測距離行列と、前記第２の新規データが追加されたときに算出される第２の予測距離行列とを含み、
前記距離推定部は、前記第２の距離行列から導出される前記１対の行列の代わりに、前記第１の新規データが追加されたときに生成された前記１対の中間行列を利用することによって、前記第２の距離行列から前記第２の予測距離行列を算出するときの前記再計算の回数を前記第１の距離行列から前記第１の予測距離行列を算出するときよりも少なくする、請求項３に記載の情報処理装置。
【請求項５】
前記距離推定部は、前記第２の距離行列から前記第２の予測距離行列を算出するときの前記再計算の対象を、前記第１の距離行列と前記第２の距離行列との差分に対応する行を含む一部の行に限定する、請求項４に記載の情報処理装置。
【請求項６】
前記一部の行は、前記差分に対応する行と、それ以外の少なくとも１つの行とを含む、請求項５に記載の情報処理装置。
【請求項７】
前記一部の行は、前記差分に対応する行と、前記差分の行との相関性が高い少なくとも１つの行とを含む、請求項６に記載の情報処理装置。
【請求項８】
前記距離推定部は、所定の条件が満たされた場合、前記第２の距離行列から導出された１対の行列を、前記第２の距離行列を参照して交互に再計算することによって前記１対の中間行列を再生成し、該再生成された１対の中間行列に基づいて前記第２の予測距離行列を再算出する、請求項４に記載の情報処理装置。
【請求項９】
前記距離推定部は、前記第２の距離行列と前記第２の予測距離行列との間の誤差が所定の範囲を超えた場合に前記第２の予測距離行列を再算出する、請求項８に記載の情報処理装置。
【請求項１０】
前記距離推定部は、前記算出された距離が設定された前記第２の距離行列の要素と、前記第２の予測距離行列における該要素の予測値とを比較することによって前記誤差を算出する、請求項９に記載の情報処理装置。
【請求項１１】
前記距離推定部は、前記第２の距離行列から導出される前記１対の行列の代わりに前記第１の新規データが追加されたときに生成された前記１対の中間行列を利用した前記第２の予測距離行列の算出が所定の回数実行された場合に前記第２の予測距離行列を再算出する、請求項８に記載の情報処理装置。
【請求項１２】
前記距離推定部は、所定の時間周期ごとに前記第２の予測距離行列を再算出する、請求項８に記載の情報処理装置。
【請求項１３】
前記クラスタ再構成判定部は、再構成の対象になる前記候補クラスタの数、または該候補クラスタに含まれるデータの数に応じて、前記候補クラスタを決定するための閾値を変化させる、請求項１に記載の情報処理装置。
【請求項１４】
前記特徴量空間での距離に基づいてデータ間の類似度スコアを算出する類似度スコア算出部をさらに備え、
前記クラスタ再構成判定部は、前記類似度スコアの相関性に基づいて前記候補クラスタを決定する、請求項１に記載の情報処理装置。
【請求項１５】
前記新規データの入力を、時間的に分散して逐次に受け付ける入力部をさらに備える、請求項１に記載の情報処理装置。
【請求項１６】
前記データ群である画像群が格納されるストレージと、
前記新規データである新規画像の特徴量を抽出する特徴抽出部と、
前記特徴量空間での前記画像群に含まれる画像と前記新規画像との間の距離を算出する距離算出部と、
前記再構成する候補クラスタが決定された場合には前記再構成後のクラスタに前記新規画像を分類し、それ以外の場合には前記クラスタを再構成せずに前記新規画像を前記クラスタのいずれかまたは新たなクラスタに分類するクラスタリング部と、
前記新規画像をクラスタに分類した結果を出力する出力部と
をさらに備える、請求項１に記載の情報処理装置。
【請求項１７】
それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定することを含む情報処理方法。
【請求項１８】
それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定する機能をコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、情報処理装置、情報処理方法およびプログラムに関する。
【背景技術】
【０００２】
特徴量を有するデータをクラスタに分類することは、さまざまな場面で利用される技術である。データが分類されるクラスタは、例えば、各データの特徴量が表現された特徴量空間におけるデータ間の距離に基づいて決定される。このような技術は、画像処理の分野でも多く利用されている。例えば、特許文献１には、動画ストリームの各フレームに含まれる顔画像を検出してクラスタに分類することによって、登場人物のデータを得る技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−３０２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
近年、携帯電話（スマートフォン）のような携帯端末に搭載されたカメラで撮影した画像をサーバにアップロードすることが普及している。サーバは、例えば大容量のストレージを提供して、ユーザが膨大な量の画像を保存したり、保存した画像を他のユーザとの間で共有したりすることを可能にするサービスを提供している。このようにして保存される画像についても、ユーザによる画像閲覧の便宜のため、上記のようなクラスタリングの技術を利用して、同じ人物が映っている画像や、似たような場所／時間で撮影された画像などを同じクラスタに分類する需要がある。
【０００５】
この場合、クラスタリングの対象になる画像は、その数が多く、また逐次追加されていくデータである。それゆえ、新たな画像が追加される度に全画像を対象にしてクラスタリングを実行するは現実的ではない。そこで、追加された画像については、例えば既に形成されたクラスタの画像との間で特徴量空間での距離を算出し、その距離に基づいて分類されるクラスタを決定することが考えられる。しかしながら、このようにして追加されたデータについて逐次にクラスタリングを実行した場合、結果として形成されるクラスタが、追加されたデータも含めて一括してクラスタリングを実行した場合に比べて細かく分割されやすくなる。つまり、例えば同じ人物が映っている画像が別々のクラスタに分類されるような場合が多くなる。
【０００６】
そこで、本開示では、逐次に追加されるデータをより妥当なクラスタに分類することを可能にする、新規かつ改良された情報処理装置、情報処理方法およびプログラムを提案する。
【課題を解決するための手段】
【０００７】
本開示によれば、それぞれが特徴量空間での位置情報を有し上記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、上記特徴量空間での位置情報を有する新規データを追加する場合、上記クラスタのうち上記新規データが上記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは上記新規データを上記クラスタに分類するときに上記候補クラスタを再構成することを決定するクラスタ再構成判定部を備える情報処理装置が提供される。
【０００８】
また、本開示によれば、それぞれが特徴量空間での位置情報を有し上記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、上記特徴量空間での位置情報を有する新規データを追加する場合、上記クラスタのうち上記新規データが上記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは上記新規データを上記クラスタに分類するときに上記候補クラスタを再構成することを決定することを含む情報処理方法が提供される。
【０００９】
また、本開示によれば、それぞれが特徴量空間での位置情報を有し上記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、上記特徴量空間での位置情報を有する新規データを追加する場合、上記クラスタのうち上記新規データが上記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは上記新規データを上記クラスタに分類するときに上記候補クラスタを再構成することを決定する機能をコンピュータに実現させるためのプログラムが提供される。
【発明の効果】
【００１０】
以上説明したように本開示によれば、逐次に追加されるデータをより妥当なクラスタに分類することができる。
【図面の簡単な説明】
【００１１】
【図１】本開示の第１の実施形態に係るサーバの概略的な機能構成を示すブロック図である。
【図２】本開示の第１の実施形態において算出される画像間距離の例を示す図である。
【図３】本開示の第１の実施形態おいて算出される類似度スコアの例を示す図である。
【図４】本開示の第１の実施形態におけるクラスタ再構成の判定について説明するための図である。
【図５】本開示の第１の実施形態に係るサーバの処理の概要を示すフローチャートである。
【図６】本開示の第２の実施形態に係るサーバの概略的な機能構成を示すブロック図である。
【図７】本開示の第２の実施形態において生成される距離行列の例を示す図である。
【図８】本開示の第２の実施形態において生成される予測距離行列の例を示す図である。
【図９】本開示の第２の実施形態における行列演算の例について説明するための図である。
【図１０】本開示の第２の実施形態における行列の繰り返し再計算の例について説明するための図である。
【図１１】本開示の第２の実施形態における付加的な構成の第１の例について説明するための図である。
【図１２】本開示の第２の実施形態における付加的な構成の第２の例について説明するための図である。
【図１３】本開示の第２の実施形態における付加的な構成の第３の例について説明するための図である。
【図１４】本開示の第２の実施形態における付加的な構成の第３の例について説明するための図である。
【図１５】本開示の第２の実施形態に係るサーバの処理の概要を示すフローチャートである。
【図１６】情報処理装置のハードウェア構成を説明するためのブロック図である。
【発明を実施するための形態】
【００１２】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１３】
なお、説明は以下の順序で行うものとする。
１．第１の実施形態
１−１．機能構成
１−２．処理フロー
２．第２の実施形態
２−１．機能構成
２−２．行列演算の例
２−３．行列演算の付加的な例
２−４．処理フロー
３．ハードウェア構成
４．補足
【００１４】
（１．第１の実施形態）
まず、図１〜図５を参照して、本開示の第１の実施形態について説明する。本実施形態は、ユーザからの画像の入力を受け付け、画像をクラスタリングした結果を出力するサーバに係る。このサーバは、単一の情報処理装置によって実現されてもよく、有線または無線のネットワークで接続された複数の情報処理装置の協働によって実現されてもよい。各情報処理装置を実現するためのハードウェア構成の例については後述する。
【００１５】
（１−１．機能構成）
図１は、本開示の第１の実施形態に係るサーバの概略的な機能構成を示すブロック図である。サーバ１００は、上述のように、単一の情報処理装置によって実現されてもよく、複数の情報処理装置の協働によって実現されてもよい。後者の場合、以下で説明するサーバ１００の機能構成は、それぞれが単一の情報処理装置によって実現されてもよいし、１つの機能構成が複数の情報処理装置に分割して実現されてもよい。
【００１６】
サーバ１００は、機能構成として、入力部１１０、特徴検出部１２０、ストレージ１３０、距離算出部１４０、類似度スコア算出部１５０、再構成判定部１６０、クラスタリング部１７０、および出力部１８０を含む。以下、各機能構成について説明する。
【００１７】
入力部１１０は、ユーザによる画像の入力を受け付ける。入力される画像は、例えばユーザが携帯端末に搭載されたカメラを用いて撮影した画像が、撮影直後にアップロードされたものでありうる。また、入力される画像は、例えばユーザが過去に撮影した画像であり、ユーザがＰＣ（Personal  Computer）などの端末装置から任意に送信したものであってもよい。いずれにしても、入力部１１０は、時間的に分散して逐次に画像の入力を受け付ける。なお、ここでいう“逐次に”とは、サーバ１００のストレージ１３０に既にクラスタリングが完了した画像が保存されているときに、１または複数の画像が追加で入力される状況が発生しうるような入力の状態である。従って、ストレージ１３０に保存されている画像のすべてが逐次に入力されたものでなくてもよいし（そうであってもよい）、画像が入力される間隔は一定でなくてよい。入力部１１０は、例えば、画像を送信する端末装置と通信する通信装置によって実現される。
【００１８】
特徴検出部１２０は、入力部１１０が受け付けた画像の特徴量を抽出する。ここで抽出される特徴量は、画像に関するあらゆる特徴量であり、任意の次元のベクトルとして特徴量空間上に表現されうる。従って、特徴量が抽出された各画像は、特徴量空間での位置情報を有しているともいえる。なお、特徴量は、画像全体についての特徴量であってもよいし、被写体の顔の領域についての特徴量であってもよい。特徴量の抽出については、例えば特開２０１０−３０２１号公報や特開２００８−７７５３６号公報に記載されているような技術をはじめとして、公知のさまざまな技術を利用することが可能である。特徴検出部１２０は、検出した特徴量を、画像に関連付けてストレージ１３０に格納する。特徴検出部１２０は、例えばＣＰＵ（Central  Processing  Unit）がメモリに格納されたプログラムに従って動作することによって実現される。
【００１９】
ストレージ１３０は、サーバ１００の処理に関するさまざまなデータを格納する。例えばストレージ１３０は、入力部１１０が受け付けた画像を格納する。また、ストレージ１３０は、特徴検出部１２０によって検出された画像の特徴量を、画像に関連付けて格納する。さらに、ストレージ１３０は、後述する距離算出部１４０によって算出された画像間距離や、類似度スコア算出部１５０によって算出された類似度スコアや、クラスタリング部１７０によるクラスタリングの結果などをも格納する。既にストレージ１３０に格納されているデータは、クラスタリング部１７０によって既にクラスタリングされている。このクラスタリングは、例えば距離算出部１４０によって算出された画像間距離や、画像間距離に基づいて類似度スコア算出部１５０によって算出された類似度スコアに基づくものである。なお、特徴検出部１２０および距離算出部１４０とストレージ１３０との間のデータのやりとりだけが図示されているが、ストレージ１３０は、これ以外のサーバ１００の各構成要素との間でもデータをやりとりすることが可能である。
【００２０】
距離算出部１４０は、入力部１１０が受け付けた画像と、既にストレージ１３０に格納されている画像との画像間距離を算出する。本明細書では、特徴量空間において、２つの画像の特徴量のベクトルによってそれぞれ示される位置の間の距離を画像間距離という。距離算出部１４０は、ストレージ１３０に格納されている画像の中から所定の基準で抽出された一部の画像を対象として、新たに受け付けられた画像との間の画像間距離を算出してもよい。この場合、対象になる画像は、例えば画像間距離を算出するための特徴量がより正確に検出されうる画像として抽出され、ストレージ１３０に格納されている画像が分類されたクラスタのそれぞれを代表する特徴を有する画像や、ぼけていない（明瞭な）画像、被写体の顔が対象にある場合は顔のパーツ（目、鼻、口、あごなど）がすべて検出されている画像などでありうる。距離算出部１４０も、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００２１】
ここで、距離算出部１４０によって算出される画像間距離の例を、図２に示す。図２は、本開示の第１の実施形態において算出される画像間距離の例を示す図である。図示された例では、新たに受け付けられた画像（画像ＩＤ“１０”）について、既にストレージ１３０に格納されている画像（画像ＩＤ“１”〜“９”）との画像間距離が算出されている。なお、画像間距離は、図示された例のように所定のレンジ（例えば−１００〜＋１００など）によって表現されてもよいし、特徴量空間の座標系に従って表現されてもよい。図示された例の場合、画像間距離は、値が正であり大きいほど、対象の画像同士が類似した特徴量を有することを示す。従って、この場合、新たに受け付けられた画像に最も類似した特徴量を有するのは、正で最も大きい画像間距離“８０”が算出された画像ＩＤ“７”の画像であることがわかる。
【００２２】
類似度スコア算出部１５０は、入力部１１０が受け付けた画像と、既にストレージ１３０に格納されている画像との類似度スコアを算出する。本明細書では、２つの画像が互いに類似しているか否かを二値化して表現したスコアを類似度スコアという。類似度スコア算出部１５０は、距離算出部１４０によって算出された画像間距離に基づいて類似度スコアを算出する。より具体的には、類似度スコア算出部１５０は、画像間距離に閾値を設定し、この閾値によって類似していることが示される２つの画像間で類似度スコアを“１”、そうではない画像間で類似度スコアを“０”として設定してもよい。ここで、類似度スコア算出部１５０は、距離算出部１４０と同様に、ストレージ１３０に格納されている画像の中から所定の基準で抽出された一部の画像を対象として、新たに受け付けられた画像との間の類似度スコアを算出してもよい。類似度スコア算出部１５０も、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００２３】
ここで、類似度スコア算出部１５０によって算出される類似度スコアの例を、図３に示す。図３は、本開示の第１の実施形態おいて算出される類似度スコアの例を示す図である。図示された例では、新たに受け付けられた画像（画像ＩＤ“１０”）について、既にストレージ１３０に格納されている画像（画像ＩＤ“１”〜“９”）との類似度スコアが算出されている。なお、上記の図２の例と、この図３の例との数値に相関性はない。
【００２４】
図では、類似度スコアが、画像ＩＤ“１”〜“９”の画像の間の類似度スコアも加えた行列として示されている。なお、行の項目と列の項目とが同じであるため、この行列は対称行列である。この類似度スコアの行列から、各画像が他の画像と類似している傾向を知ることができる。例えば、画像ＩＤ“１０”の画像は、画像ＩＤ“１”，“４”，“７”，“９”，“１０”の画像と類似している。一方、画像ＩＤ“２”の画像は、画像ＩＤ“１”，“２”，“４”，“５”，“７”，“９”の画像と類似している。これらの画像自身は、画像間距離によれば互いに類似していない。しかし、それ以外の画像との類似傾向に着目すると、画像ＩＤ“１０”の画像が類似している画像はすべて画像ＩＤ“２”の画像が類似している画像に含まれており、比較的高い相関性が見られる。このように、類似度スコアの相関性を用いることによって、画像間距離とは異なる観点から画像の類似度を量ることができる。
【００２５】
再構成判定部１６０は、入力部１１０が受け付けた画像をクラスタに分類するにあたり、既にストレージ１３０に格納されている画像が分類されているクラスタの中で再構成すべきクラスタを判定する。より具体的には、再構成判定部１６０は、距離算出部１４０によって算出された画像間距離、または類似度スコア算出部１５０によって算出された類似度スコアに基づいて、新たに受け付けられた画像を分類するクラスタの候補になるクラスタが複数抽出された場合に、抽出された複数のクラスタを再構成することを決定する。クラスタが再構成の対象になった場合、当該クラスタに分類された画像はクラスタに分類されていない状態になり、これらの画像に新たに受け付けられた画像を加えて、後述するクラスタリング部１７０において再度クラスタリングが実行される。再構成判定部１６０も、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００２６】
ここで、再構成判定部１６０によるクラスタ再構成の判定について、図４を参照してさらに説明する。図４は、本開示の第１の実施形態におけるクラスタ再構成の判定について説明するための図である。図示された例では、新たに受け付けられた画像Ｐｎについて、画像Ｐ１を代表画像とするクラスタＣ１、画像Ｐ２を代表画像とするクラスタＣ２、および画像Ｐ３を代表画像とするクラスタＣ３が、分類するクラスタの候補になっている。ここで、単純に画像間距離または類似度スコアに基づいて画像Ｐｎが分類されるクラスタを決定した場合、いずれかのクラスタに画像Ｐｎが追加されて、引き続き３つのクラスタＣ１〜Ｃ３が併存する。
【００２７】
しかしながら、仮に、画像Ｐｎが最初から存在した場合、クラスタリングの結果は変わっていた可能性がある。例えば、クラスタＣ１〜Ｃ３のちょうど中間付近に最初から画像Ｐｎが存在した場合、クラスタＣ１〜Ｃ３は別々のクラスタにならず、これらを包含する単一のクラスタＣ４が形成されていたかもしれない。ところが、上記のように、新たに受け付けられた画像Ｐｎを、単純に“最も類似しているクラスタ”に分類すると、本来はまとまるべきクラスタが細かく分割された状態が、全画像を対象としたクラスタリングが再実行されるまで残ってしまう。画像の数が多い場合、全画像を対象にしたクラスタリングの実行には時間がかかるため、再実行は容易ではなく、そう頻繁には実施されない。従って、例えばユーザから見れば不自然なクラスタリングがされた状態が、長く続いてしまう可能性がある。
【００２８】
そこで、本実施形態では、再構成判定部１６０が、新たに受け付けられた画像が分類されるクラスタの候補になるクラスタ（候補クラスタ）が複数存在する場合に、候補クラスタに分類された画像と新たに受け付けられた画像とを対象にしてクラスタを再構成することを決定する。図４の例の場合、クラスタＣ１〜Ｃ３に分類された画像（画像Ｐ１，Ｐ２，Ｐ３など）がクラスタに分類されていない状態になり（クラスタＣ１〜Ｃ３が解体され）、これらの画像と画像Ｐｎとを対象にして、クラスタリング部１７０において再度クラスタリングが実行される。これによって、例えば画像Ｐｎが追加された時点で、例えばクラスタＣ４のようなより適切なクラスタが設定しなおされる可能性がある。また、クラスタリングを再実行する範囲が限定されるため、全画像を対象にする場合に比べて処理量が少なく、画像が追加される度に実行する処理として現実的である。
【００２９】
なお、再構成判定部１６０は、再構成の対象になる候補クラスタの数、または再構成の対象になる候補クラスタに含まれる画像の数に応じて、候補クラスタを決定するための閾値を変化させてもよい。例えば、再構成判定部１６０は、再構成の対象になる候補クラスタが多くなりすぎる場合や、候補クラスタに既に含まれている画像が多すぎる場合には、閾値を高く設定し（例えば、特徴量空間での距離がより近くなければ候補クラスタとして抽出されないように設定し）、クラスタリング部１７０における再構成を伴うクラスタリングの処理量を抑制してもよい。
【００３０】
クラスタリング部１７０は、再構成判定部１６０による判定に従って、画像のクラスタリングを実行する。クラスタリング部１７０は、特徴量のベクトルによって示される特徴量空間での位置情報に基づいて、対象になった画像をクラスタに分類する。より具体的には、クラスタリング部１７０は、距離算出部１４０によって算出された画像間距離、および／または類似度スコア算出部１５０によって算出された類似度スコアに基づいて、画像をクラスタに分類する。クラスタリング部１７０は、画像間距離および類似度スコアの両方に基づいてクラスタリングを実行してもよいし、画像間距離または類似度スコアのいずれか一方に基づいてクラスタリングを実行してもよい。クラスタリング部１７０は、クラスタリングの結果を出力部１８０に提供するとともに、ストレージ１３０に格納する。なお、クラスタリング部１７０が画像間距離だけに基づいてクラスタリングを実行する場合、サーバ１００には類似度スコア算出部１５０が設けられなくてもよい。クラスタリング部１７０も、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００３１】
なお、再構成判定部１６０において、候補クラスタが１つしか抽出されなかった場合、クラスタリング部１７０はクラスタリングを再実行することなく、新たに受け付けられた画像をその候補クラスタに分類する。また、候補クラスタが抽出されなかった場合も、クラスタリング部１７０はクラスタリングを再実行することなく、新たに受け付けられた画像が分類される新たなクラスタを作成する。このように、クラスタリング部１７０が、再構成判定部１６０の判定に従ってクラスタの再構成を必要な場合に限って実行することで、新たな画像が追加された場合の処理の負荷および所要時間を必要最小限に抑えることができる。
【００３２】
出力部１８０は、クラスタリング部１７０によるクラスタリングの結果を出力する。出力される情報は、例えば、新たに受け付けられた画像が分類されたクラスタを示す情報であってもよい（例えば、“０１１．ｊｐｇは、カテゴリ‘あなた’に分類されました！”など）。また、再構成判定部１６０での判定の結果に従ってクラスタが再構成され、既にストレージ１３０に格納されている画像が分類されるクラスタが変更された場合には、そのことを示す情報がさらに加えられてもよい（例えば、“００３．ｊｐｇ、００５．ｊｐｇの分類がカテゴリ‘あなた’に変更されました！”など）。出力部１８０は、例えば、結果を端末装置など送信する通信装置によって実現される。
【００３３】
ここで、本実施形態における構成要素の技術的意義についてまとめる。本実施形態において、画像は、特徴量空間における位置が定義されるデータとしての意味をもつ。ストレージ１３０に既にクラスタに分類された画像が格納されている場合、これらの画像は、特徴量空間での距離（距離算出部１４０が算出した画像間距離、または画像間距離に基づいて類似度スコア算出部１５０が算出した類似度スコア）に基づいてクラスタに分類されたデータ群であるといえる。このデータ群が存在する状態で、入力部１１０によって新たに受け付けられた画像は、特徴量空間での位置情報（特徴検出部１２０によって抽出される特徴量のベクトルによって示される位置情報）を有する新規データといえる。
【００３４】
また、再構成判定部１６０は、上記のデータ群が分類されたクラスタに新規データを新たに分類するにあたり、新規データが特徴量空間での距離（画像間距離または類似度スコア）に基づいて分類されうる候補クラスタが複数存在する場合に、新規データのクラスタリングにあたって候補クラスタについてクラスタの再構成を実行することを決定しているといえる。
【００３５】
（１−２．処理フロー）
図５は、本開示の第１の実施形態に係るサーバの処理の概要を示すフローチャートである。このフローチャートを参照して、本実施形態の構成をさらに別の観点から説明する。
【００３６】
サーバ１００では、まず、入力部１１０が画像の入力を受け付ける（ステップＳ１０１）。次に、特徴検出部１２０は、新たに受け付けられた画像の特徴量を抽出する（ステップＳ１０３）。さらに、距離算出部１４０が、新たに受け付けられた画像と、既にストレージ１３０に格納されている画像との画像間距離を算出する。さらに、類似度スコア算出部１５０が、画像間距離に基づいて類似度スコアを算出してもよい（ステップＳ１０５）。
【００３７】
ここで、再構成判定部１６０が、画像間距離または類似度スコアに基づいて抽出された候補クラスタ、すなわち新たに受け付けられた画像が分類されるクラスタの候補が、複数存在するか否かを判定する（ステップＳ１０７）。ここで、候補クラスタが複数存在する場合（ＹＥＳ）、クラスタリング部１７０が、候補クラスタを再構成してクラスタリングを実行する（ステップＳ１０９）。この場合、クラスタリング部１７０は、複数の候補クラスタに既に分類された画像についても、新たに受け付けられた画像とともにクラスタリングの対象にする。
【００３８】
一方、ステップＳ１０７において、候補クラスタが１つだけ存在する、または存在しない場合（ＮＯ）、クラスタリング部１７０が、再構成なしでクラスタリングを実行する（ステップＳ１１１）。この場合、クラスタリング部１７０は、画像間距離または類似度スコアに従って、新たに受け付けられた画像を候補クラスタに分類するか、または新たなクラスタを生成してそこに分類する。ステップＳ１０９，またはステップＳ１１１に続いて、出力部１８０がクラスタリング結果を出力する（ステップＳ１１３）。
【００３９】
以上のような処理によって、新たに受け付けられた画像が、例えば特徴量空間において従前は別々に設定されていたクラスタをつなぎ合せる位置に追加される可能性があるような場合には、関係するクラスタを再構成してクラスタリングを実行し、新たに受け付けられた画像が分類されるクラスタを適切に決定するとともに、その画像が元々存在したならば同じクラスタに分類されていた画像についても同じクラスタに分類しなおすことができる。ステップＳ１０７の判定によって、クラスタの再構成は必要な場合に限って実行され、また再構成の範囲も限定されるため、画像が追加される度に上記の処理を実行し、画像の追加を反映したクラスタリングの結果をリアルタイムで出力することも可能である。
【００４０】
（２．第２の実施形態）
次に、図６〜図１５を参照して、本開示の第２の実施形態について説明する。本実施形態は、上記の第１の実施形態と同様に、ユーザからの画像の入力を受け付け、画像をクラスタリングした結果を出力するサーバに係る。ただし、本実施形態は、距離算出部が画像間距離を一部しか算出せず、残りを距離推定部が推定する点で、第１の実施形態とは異なる。従って、以下の説明では、かかる相違点について主に説明し、それ以外の第１の実施形態と同様の構成については重複した説明を省略する。
【００４１】
（２−１．機能構成）
図６は、本開示の第２の実施形態に係るサーバの概略的な機能構成を示すブロック図である。サーバ２００は、第１の実施形態に係るサーバ１００と同様に、単一の情報処理装置によって実現されてもよく、複数の情報処理装置の協働によって実現されてもよい。後者の場合、以下で説明するサーバ２００の機能構成は、それぞれが単一の情報処理装置によって実現されてもよいし、１つの機能構成が複数の情報処理装置に分割して実現されてもよい。
【００４２】
サーバ２００は、機能構成として、入力部１１０、特徴検出部１２０、ストレージ１３０、距離算出部２４０、距離推定部２９０、類似度スコア算出部１５０、再構成判定部１６０、クラスタリング部１７０、および出力部１８０を含む。以下、第１の実施形態とは異なる機能構成である距離算出部２４０および距離推定部２９０について説明する。
【００４３】
距離算出部２４０は、入力部１１０が受け付けた画像と、既にストレージ１３０に格納されている画像の一部との画像間距離を算出する。距離算出部２４０は、ストレージ１３０に格納されている画像の中から所定の基準で抽出された一部の画像（対象画像）を対象として、さらにその中の一部について、新たに受け付けられた画像との画像間距離を算出する。対象画像は、第１の実施形態と同様に、例えば画像間距離を算出するための特徴量がより正確に検出されうる画像である。さらに、距離算出部２４０は、算出した画像間距離と、既にストレージ１３０に格納されている画像同士の画像間距離とを要素とする距離行列Ｒを生成する。距離算出部２４０は、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００４４】
ここで、距離算出部２４０が生成する距離行列の例を、図７に示す。図７は、本開示の第２の実施形態において生成される距離行列の例を示す図である。図示された例では、新たに受け付けられた画像（画像ＩＤ“１０”）について、既にストレージ１３０に格納されている画像の一部（画像ＩＤ“１”，“３”，“６”，“８”）との画像間距離が算出され、距離行列Ｒの要素として設定されている（１０行目）。また、画像ＩＤ“１”〜“９”の画像のそれぞれについて既に算出されている画像間距離も、距離行列Ｒの要素として設定されている（１〜９行目）。新たに受け付けられた画像については画像間距離が一部しか算出されていないため、距離行列Ｒは未知の要素を含む行列である。また、行の項目と列の項目とが同じであるため、距離行列Ｒ（および後述する予測距離行列Ｒ’）は対称行列になる。それゆえ、簡単のため、距離行列Ｒおよび予測距離行列Ｒ’の上側については図示を省略する。
【００４５】
距離推定部２９０は、距離行列Ｒの要素のうち、距離算出部２４０によって算出された画像間距離が設定されなかった要素の予測値を、距離行列Ｒを用いた行列演算によって算出する。例えば、距離推定部２９０は、例えば図７に示したような未知の要素を含む距離行列Ｒを用いた行列演算によって、図８に示すような未知の要素の予測値（丸囲みで示した）を含む予測距離行列Ｒ’を生成する。図８は、本開示の第２の実施形態において生成される予測距離行列の例を示す図である。なお、図示された例では、予測距離行列Ｒ’の予測値以外の要素が距離行列Ｒと同一であるが、実際にはこれらの要素はわずかに異なりうる。距離推定部２９０が実行する行列演算の種類は特に限定されないが、ここではそのうちの１つについて後に詳しく説明する。距離推定部２９０は、距離行列Ｒの要素の予測値として得られた画像間距離を、距離算出部２４０によって算出された画像間距離とあわせて、類似度スコア算出部１５０、再構成判定部１６０、またはクラスタリング部１７０に提供する。距離推定部２９０も、例えばＣＰＵがメモリに格納されたプログラムに従って動作することによって実現される。
【００４６】
（２−２．行列演算の例）
ここで、距離推定部２９０における行列演算の例を、図９に示す。図９は、本開示の第２の実施形態における行列演算の例について説明するための図である。図示されているように、距離推定部２９０では、未知の要素を含む行ｒｏｗを有する距離行列Ｒから１対の中間行列ｒ１，ｒ２を導出し、これらの行列を掛け合わせることによって、未知の要素の予測値を含む行ｒｏｗ’を有する予測距離行列Ｒ’を算出する（Ｒ’＝ｒ１Ｔ×ｒ２）。距離推定部２９０は、行ｒｏｗ’に含まれる予測値を、距離算出部２４０によって算出されなかった画像間距離の予測値として出力する。また、予測距離行列Ｒ’は、次に新たな画像が追加された場合に、距離行列Ｒの既存の画像に対応する部分（行ｒｏｗおよび対応する列以外の部分）として利用されうる。
【００４７】
上記の行列演算において、中間行列ｒ１，ｒ２は、例えば特異値分解（ＳＶＤ：Singular  Value  Decomposition）を利用して距離行列Ｒから導出される。しかし、初めて距離行列Ｒから予測距離行列Ｒ’を算出するような場合、中間行列ｒ１，ｒ２として適切な行列を得ることは容易ではない。そこで、中間行列ｒ１，ｒ２は、例えば図１０に示すような繰り返し再計算によって算出される。図１０は、本開示の第２の実施形態における行列の繰り返し再計算の例について説明するための図である。なお、図中において、（０），（１），・・・のように示される数字は、その時点での再計算の回数を表している。
【００４８】
図示された例では、まず、距離行列Ｒから特異値分解などによって中間行列ｒ１（０）が導出される。次に、中間行列ｒ１（０）と距離行列Ｒとに基づいて中間行列ｒ２（１）が導出される。具体的には、中間行列ｒ１（０）を固定し、ｒ１（０）Ｔ×ｒ２（１）＝Ｒ’として算出したときの予測距離行列Ｒ’と距離行列Ｒとの誤差が最小化されるように中間行列ｒ２（１）が決定される。次に、中間行列ｒ２（１）を固定し、ｒ１（１）Ｔ×ｒ２（１）＝Ｒ’として算出したときの予測距離行列Ｒ’と距離行列Ｒとの誤差が最小化されるように中間行列ｒ１（１）が決定される。以下同様にして中間行列ｒ１，ｒ２の再計算が所定の回数（ｋ回）繰り返された後、ｒ１（ｋ）Ｔ×ｒ２（ｋ）＝Ｒ’として予測距離行列Ｒ’が算出される。
【００４９】
以上のような行列演算によって、距離行列Ｒに含まれる未知の要素の予測値を取得することができる。例えばストレージ１３０に既に格納されている画像の数が多い場合、全画像の中から所定の基準で抽出された画像（特徴量がより正確に検出される画像）といえども、そのすべての特徴量のデータをメモリにキャッシュすることは困難である。従って、距離算出部において、対象画像のすべてについて新たに受け付けられた画像との画像間距離を算出する場合、ストレージへのアクセスが頻発し、その所要時間が処理全体の所要時間を増大させてしまう可能性がある。
【００５０】
そこで、本実施形態のように、対象画像の一部、例えば特徴量のデータをメモリにキャッシュすることが可能な数の対象画像については距離算出部２４０で画像間距離を計算し、残りの画像については距離推定部２９０で画像間距離を推定することにすれば、処理全体の所要時間を抑制することができる。また、行列演算による画像間距離の予測の精度は、例えば上述したような繰り返し演算を採用することによって向上させることができる。
【００５１】
（２−３．行列演算の付加的な例）
さらに、本実施形態の付加的な構成として、画像が新たに受け付けられた場合に、距離推定部２９０が以前に算出された中間行列ｒ１，ｒ２を利用して予測距離行列Ｒ’を算出することで、さらなる処理量の抑制を図ってもよい。これについて、以下で図１１を参照して説明する。
【００５２】
（第１の例）
図１１は、本開示の第２の実施形態における付加的な構成の第１の例について説明するための図である。図示された例では、ある時点（ｎ回目）の行列演算処理において、距離行列Ｒ（ｎ）から中間行列ｒ１（ｎ），ｒ２（ｎ）が導出され、ｒ１（ｎ）Ｔ×ｒ２（ｎ）＝Ｒ’（ｎ）として予測距離行列Ｒ’（ｎ）が算出されている。これによって、距離行列Ｒ（ｎ）の行ｒｏｗ（ｎ）に含まれていた未知の要素の予測値が、予測距離行列Ｒ’（ｎ）の行ｒｏｗ’（ｎ）から得られる。
【００５３】
次回（ｎ＋１回目）の行列演算処理では、距離行列Ｒ（ｎ＋１）から中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）が導出され、ｒ１（ｎ＋１）Ｔ×ｒ２（ｎ＋１）＝Ｒ’（ｎ＋１）として予測距離行列Ｒ’（ｎ＋１）が算出されている。これによって、距離行列Ｒ（ｎ＋１）の行ｒｏｗ（ｎ＋１）に含まれていた未知の要素の予測値が、予測距離行列Ｒ’（ｎ＋１）の行ｒｏｗ’（ｎ＋１）から得られる。
【００５４】
ここで、ｎ＋１回目の行列演算処理で導出される中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）は、ｎ回目の行列演算処理で導出された中間行列ｒ１（ｎ），ｒ２（ｎ）を基にした再計算によって求められる。例えば、ｎ＋１回目の処理では、ｒ１（ｎ）に行および列を１つずつ追加した行列ｒ１’を固定し、ｒ１’Ｔ×ｒ２（ｎ＋１）＝Ｒ’として算出したときの予測距離行列Ｒ’と距離行列Ｒ（ｎ＋１）との誤差が最小化されるように中間行列ｒ２（ｎ＋１）が決定される。このとき、ｒ２（ｎ＋１）は、ｒ２（ｎ）に行および列を１つずつ追加した行列ｒ２’を基にして探索されうる。次に、中間行列ｒ２（ｎ＋１）を固定し、ｒ１（ｎ＋１）Ｔ×ｒ２（ｎ＋１）＝Ｒ’として算出したときの予測距離行列Ｒ’と距離行列Ｒ（ｎ＋１）との誤差が最小化されるように中間行列ｒ１（ｎ＋１）が決定される。
【００５５】
図示された例において、前回の処理で導出された中間行列ｒ１（ｎ），ｒ２（ｎ）に基づく再計算によって中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）を求める場合、上記のような中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）の再計算の回数は、図１０に示した例の繰り返し回数（ｋ回）よりも少ない回数、例えば１回であってもよい。つまり、図示された例において、距離推定部２９０は、上記の手順、すなわち１回だけの再計算によって中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）を導出し、ｒ１（ｎ＋１）Ｔ×ｒ２（ｎ＋１）＝Ｒ’（ｎ＋１）として予測距離行列Ｒ’（ｎ＋１）を算出することができる。
【００５６】
この例は、距離行列Ｒ（ｎ＋１）が、距離行列Ｒ（ｎ）に、新たに追加された画像の行ｒｏｗ（ｎ＋１）および対応する列を付加したものであるために可能になる。つまり、距離行列Ｒ（ｎ＋１）は、行ｒｏｗ（ｎ＋１）および対応する列以外の要素について、距離行列Ｒ（ｎ）と同一である。従って、ｒ１（ｎ）に行および列を１つずつ追加した行列ｒ１’や、ｒ２（ｎ）に行および列を１つずつ追加した行列ｒ２’は、距離行列Ｒ’（ｎ＋１）を算出するための中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）に近いものである可能性が高い。それゆえ、距離行列Ｒ（ｎ＋１）からＳＶＤなどを利用して導出した行列の代わりに、行列ｒ１’，ｒ２’を基にして再計算を実行すれば、より少ない回数の再計算で適切な中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）を導出することができる。
【００５７】
図示された例では、ｎ＋２回目以降、ｎ＋ｍ回目までの行列演算処理についても同様に、前回の行列演算処理で導出された中間行列に基づく再計算によって中間行列ｒ１，ｒ２が求められ、中間行列ｒ１，ｒ２から予測距離行列Ｒ’が算出されている。このような構成によって、画像が新たに受け付けられた場合に、距離推定部２９０が予測距離行列Ｒ’を算出するときの再計算回数が減少し、処理量を抑制することができる。
【００５８】
（第２の例）
図１２は、本開示の第２の実施形態における付加的な構成の第２の例について説明するための図である。図示された例では、距離行列Ｒ（ｎ＋１）から中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）を導出し、ｒ１（ｎ＋１）Ｔ×ｒ２（ｎ＋１）＝Ｒ’（ｎ＋１）として予測距離行列Ｒ’（ｎ＋１）を算出するときに、再計算の対象になる行を中間行列ｒ１，ｒ２の一部の行に限定している。なお、この例は、上記の第１の例と組み合わせて採用されてもよいし、単独で採用されてもよい。
【００５９】
ここで、上述のように、距離行列Ｒ（ｎ＋１）は、距離行列Ｒ（ｎ）に、新たに追加された画像の行ｒｏｗ（ｎ＋１）および対応する列を追加したものである。従って、中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）では、これらの行および列に対応する行ｒｏｗ１（ｎ＋１），ｒｏｗ２（ｎ＋１）以外の部分が、中間行列ｒ１（ｎ），ｒ２（ｎ）と同じ、または近いものである可能性が高い。従って、図示された例では、中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）を導出するときの再計算の対象になる行を行ｒｏｗ１（ｎ＋１），ｒｏｗ２（ｎ＋１）に限定することで、さらなる処理量の抑制を図っている。
【００６０】
上記の例において、再計算の対象になる行は、必ずしも新たに追加された画像に対応する行だけでなくてもよい。実際には、距離行列Ｒ（ｎ＋１）の行ｒｏｗ（ｎ＋１）および対応する列は、中間行列ｒ１（ｎ＋１），ｒ２（ｎ＋１）の行ｒｏｗ１（ｎ＋１），ｒｏｗ２（ｎ＋１）以外にも影響を及ぼすため、行ｒｏｗ１（ｎ＋１），ｒｏｗ２（ｎ＋１）に加えていくつかの行を再計算の対象に加えることは、予測距離行列Ｒ’の精度の向上のために有益である。例えば、再計算の対象には、行ｒｏｗ１（ｎ＋１），ｒｏｗ２（ｎ＋１）に加えてランダムに選択された１または複数の行が追加されてもよい。また、再計算の対象には、例えば既に算出されている画像間距離に基づいて、追加された画像と相関性が高いと推定される１または複数の行が追加されてもよい。
【００６１】
（第３の例）
図１３および図１４は、本開示の第２の実施形態における付加的な構成の第３の例について説明するための図である。図１３は、本実施形態とは異なる一般的な平均二乗誤差（ＲＭＳＥ：Root  Mean  Square  Error）の算出方法を示し、図１４は、本実施形態の付加的な構成の例におけるＲＭＳＥの算出方法の例を示す。
【００６２】
一般的な算出方法では、図１３に示されるように、データ行列（ＤＡＴＡ）をトレーニング部分（ＴＲＡＩＮＩＮＧ）とプローブ部分（ＰＲＯＢＥ）に分け、トレーニング部分を入力行列として行列演算を実行する。行列演算の結果得られる予測行列（ＥＳＴＩＭＡＴＥＤ）は、入力行列で空白になっていた（未知の要素であった）プローブ部分の予測値を含む。この予測値と、実際のプローブ部分の値との間でＲＭＳＥを算出することで、行列演算による要素予測の精度を評価することができる。
【００６３】
一方、本例における算出方法では、図１４に示されるように、距離行列Ｒを入力行列として行列演算を実行して予測距離行列Ｒ’を算出し、距離行列Ｒに含まれる既知の要素と、当該要素に対応する予測距離行列Ｒ’の要素との間でＲＭＳＥを算出する。予測距離行列Ｒ’の算出にあたっては、距離行列Ｒに含まれる未知の要素だけでなく、既知の要素についても計算によって値が算出されるため、算出された値と、本来の距離行列Ｒの要素の値との間の誤差によって、行列演算による要素予測の精度を評価することができる。
【００６４】
上記の２つの算出方法のうち、一般的な算出方法では、数学的に厳密な誤差の算出が可能である。これに対して、本例における算出方法によって算出される誤差は、一般的な算出方法に比べれば厳密ではない。しかし、本例における算出方法では、データを２つの部分に分ける必要がないために、予測値の算出と誤差の算出とを１度の行列演算に含めることができる。
【００６５】
本実施形態において、距離推定部２９０は、行列演算による誤差を算出し、誤差が所定の範囲を超えた場合には、上記の第１の例および第２の例によらずに、図１０に示した例のような所定の回数（ｋ回）の繰り返し計算によって、距離行列Ｒから予測距離行列Ｒ’を再算出してもよい。上記の第１の例および第２の例は、効率的に計算を省略することによって処理量を抑制することを可能にするが、それでも計算を省略していることによっていくらかの誤差が発生する。この誤差が蓄積すると、予測距離行列Ｒ’における予測値の精度が低下する可能性がある。それゆえ、距離推定部２９０が行列演算における誤差を算出し、その結果に基づいて予測距離行列Ｒ’の再計算を実行することは有益である。
【００６６】
しかし、ストレージ１３０に格納される画像が増加するにしたがって、距離行列Ｒは大規模化する。また、画像は逐次に追加されるため、距離推定部２９０による行列演算も高い頻度で実行されうる。従って、上記の一般的な算出方法のように、本来の行列演算とは別に誤差評価用の行列演算を実行することは容易ではない。一方、本例における算出方法では、本来の行列演算の結果を利用して誤差の評価が可能であるために、距離推定部２９０でも実行可能である。
【００６７】
上記の通り、本例における算出方法によって算出される誤差は、数学的な厳密性という点では一般的な算出方法に及ばない。しかしながら、距離推定部２９０では、絶対的な基準での正確な誤差を算出する必要はなく、誤差が増加しているか否かといった相対的な変化傾向が把握できれば十分である。それゆえ、距離推定部２９０が、本例における算出方法によって行列演算の誤差を算出し、その誤差に基づいて予測距離行列Ｒ’を再計算するか否かを判定することによって、適切なタイミングで予測距離行列Ｒ’を再計算し、要素予測の精度を維持することが可能である。
【００６８】
なお、距離推定部２９０は、上記のＲＭＳＥのような誤差以外の基準を用いて、予測距離行列Ｒ’を再算出するか否かを判定してもよい。例えば、距離推定部２９０は、新たな画像の追加による、計算を省略した形での予測距離行列Ｒ’の算出が所定の回数以上実行された場合に、予測距離行列Ｒ’を再算出することを決定してもよい。あるいは、距離推定部２９０は、所定の時間周期ごとに、予測距離行列Ｒ’を再計算することを決定してもよい。
【００６９】
（２−４．処理フロー）
図１５は、本開示の第２の実施形態に係るサーバの処理の概要を示すフローチャートである。このフローチャートを参照して、本実施形態の構成をさらに別の観点から説明する。
【００７０】
サーバ２００では、まず、入力部１１０が画像の入力を受け付ける（ステップＳ１０１）。次に、特徴検出部１２０は、新たに受け付けられた画像の特徴量を抽出する（ステップＳ１０３）。さらに、距離算出部２４０が、新たに受け付けられた画像と、既にストレージ１３０に格納されている画像の一部との画像間距離を算出する（ステップＳ２０１）。さらに、距離推定部２９０が、残りの画像について、距離行列Ｒから予測距離行列Ｒ’を算出する行列演算によって画像間距離を推定する（ステップＳ２０３）。
【００７１】
次に、類似度スコア算出部１５０が、算出または推定された画像間距離に基づいて類似度スコアを算出してもよい（ステップＳ２０５）。上記の第１の実施形態と同様に、類似度スコアの算出は必ずしも実行されなくてもよい。その場合、クラスタリング部１７０は専ら画像間距離に基づいてクラスタリングを実行する。以降の処理（ステップＳ１０７〜Ｓ１１３）については、第１の実施形態と同様であるため重複した説明を省略する。
【００７２】
以上の処理によって、第１の実施形態と同様に、新たに受け付けられた画像が分類されるクラスタを適切に決定するとともに、その画像が元々存在したならば同じクラスタに分類されていた画像についても同じクラスタに分類しなおすことができる。また、そのようなクラスタリングの結果をリアルタイムで出力することも可能である。
【００７３】
さらに、本実施形態では、ステップＳ２０１，Ｓ２０３の処理によって、画像間距離の計算がストレージに格納された一部の画像について実行され、残りの画像については画像間距離が推定される。これによって、画像間距離の算出のために発生するストレージへのアクセスが抑制され、処理を高速化してリアルタイム性を向上させることができる。
【００７４】
加えて、ステップＳ２０３での画像間距離の推定のための行列演算において、前回の計算結果を利用して再計算回数を減らしたり、再計算の対象にする行列の行を限定したりすれば、さらなる処理の高速化が可能である。また、このとき、所定の条件で再計算（計算を省略しない行列演算）を実行することによって、計算の省略による予測精度の低下を防ぐことができる。
【００７５】
（３．ハードウェア構成）
次に、図１６を参照して、本開示の実施形態に係る情報処理装置のハードウェア構成について説明する。図１６は、情報処理装置のハードウェア構成を説明するためのブロック図である。図示された情報処理装置９００は、例えば、上記の実施形態におけるサーバを構成する１または複数の情報処理装置を実現しうる。
【００７６】
情報処理装置９００は、ＣＰＵ（Central  Processing  unit）９０１、ＲＯＭ（Read  Only  Memory）９０３、およびＲＡＭ（Random  Access  Memory）９０５を含む。また、情報処理装置９００は、ホストバス９０７、ブリッジ９０９、外部バス９１１、インターフェース９１３、入力装置９１５、出力装置９１７、ストレージ装置９１９、ドライブ９２１、接続ポート９２３、通信装置９２５を含んでもよい。情報処理装置９００は、ＣＰＵ９０１に代えて、またはこれとともに、ＤＳＰ（Digital  Signal  Processor）などの処理回路を有してもよい。
【００７７】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、ＲＯＭ９０３、ＲＡＭ９０５、ストレージ装置９１９、またはリムーバブル記録媒体９２７に記録された各種プログラムに従って、情報処理装置９００内の動作全般またはその一部を制御する。ＲＯＭ９０３は、ＣＰＵ９０１が使用するプログラムや演算パラメータなどを記憶する。ＲＡＭ９０５は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータなどを一次記憶する。ＣＰＵ９０１、ＲＯＭ９０３、およびＲＡＭ９０５は、ＣＰＵバスなどの内部バスにより構成されるホストバス９０７により相互に接続されている。さらに、ホストバス９０７は、ブリッジ９０９を介して、ＰＣＩ（Peripheral  Component  Interconnect/Interface）バスなどの外部バス９１１に接続されている。
【００７８】
入力装置９１５は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなど、ユーザによって操作される装置である。入力装置９１５は、例えば、赤外線やその他の電波を利用したリモートコントロール装置であってもよいし、情報処理装置９００の操作に対応した携帯電話などの外部接続機器９２９であってもよい。入力装置９１５は、ユーザが入力した情報に基づいて入力信号を生成してＣＰＵ９０１に出力する入力制御回路を含む。ユーザは、この入力装置９１５を操作することによって、情報処理装置９００に対して各種のデータを入力したり処理動作を指示したりする。
【００７９】
出力装置９１７は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置９１７は、例えば、ＬＣＤ（Liquid  Crystal  Display）、ＰＤＰ（Plasma  Display  Panel）、有機ＥＬ（Electro-Luminescence）ディスプレイなどの表示装置、スピーカおよびヘッドホンなどの音声出力装置、ならびにプリンタ装置などでありうる。出力装置９１７は、情報処理装置９００の処理により得られた結果を、テキストまたは画像などの映像として出力したり、音声または音響などの音声として出力したりする。
【００８０】
ストレージ装置９１９は、情報処理装置９００の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置９１９は、例えば、ＨＤＤ（Hard  Disk  Drive）などの磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイスなどにより構成される。このストレージ装置９１９は、ＣＰＵ９０１が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
【００８１】
ドライブ９２１は、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブル記録媒体９２７のためのリーダライタであり、情報処理装置９００に内蔵、あるいは外付けされる。ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録されている情報を読み出して、ＲＡＭ９０５に出力する。また、ドライブ９２１は、装着されているリムーバブル記録媒体９２７に記録を書き込む。
【００８２】
接続ポート９２３は、機器を情報処理装置９００に直接接続するためのポートである。接続ポート９２３は、例えば、ＵＳＢ（Universal  Serial  Bus）ポート、ＩＥＥＥ１３９４ポート、ＳＣＳＩ（Small  Computer  System  Interface）ポートなどでありうる。また、接続ポート９２３は、ＲＳ−２３２Ｃポート、光オーディオ端子、ＨＤＭＩ（High-Definition  Multimedia  Interface）ポートなどであってもよい。接続ポート９２３に外部接続機器９２９を接続することで、情報処理装置９００と外部接続機器９２９との間で各種のデータが交換されうる。
【００８３】
通信装置９２５は、例えば、通信ネットワーク９３１に接続するための通信デバイスなどで構成された通信インターフェースである。通信装置９２５は、例えば、有線または無線ＬＡＮ（Local  Area  Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、またはＷＵＳＢ（Wireless  USB）用の通信カードなどでありうる。また、通信装置９２５は、光通信用のルータ、ＡＤＳＬ（Asymmetric  Digital  Subscriber  Line）用のルータ、または、各種通信用のモデムなどであってもよい。通信装置９２５は、例えば、インターネットや他の通信機器との間で、ＴＣＰ／ＩＰなどの所定のプロトコルを用いて信号などを送受信する。また、通信装置９２５に接続される通信ネットワーク９３１は、有線または無線によって接続されたネットワークであり、例えば、インターネット、家庭内ＬＡＮ、赤外線通信、ラジオ波通信または衛星通信などである。
【００８４】
以上、情報処理装置９００のハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。かかる構成は、実施する時々の技術レベルに応じて適宜変更されうる。
【００８５】
（４．補足）
本開示の実施形態は、例えば、上記で説明したような情報処理装置、システム、情報処理装置またはシステムで実行される情報処理方法、情報処理装置を機能させるためのプログラム、およびプログラムが記録された一時的でない有形の記録媒体を含みうる。
【００８６】
なお、上記で説明した実施形態では、サーバで処理が実行される例について説明したが、本開示の実施形態はこのような例には限られない。例えば、ユーザが大量の画像をローカルストレージに保持しており、かつそこに頻繁に画像を追加し、また処理能力の高いＰＣなどの端末装置を保有しているような場合には、上記で説明したような処理をユーザが使用するＰＣなどの端末装置で実行することも可能である。あるいは、上記の処理は、端末装置とサーバとに分散して実行されてもよい。この場合、入力部および出力部は、端末装置に設けられるカメラやディスプレイなどの入出力装置によって実現されてもよい。
【００８７】
また、上記で説明した実施形態では、処理対象のデータとして画像を例示したが、本開示の実施形態はこのような例には限られない。本開示に係る技術は、特徴量空間における位置が定義され、データ間の距離に基づいてクラスタに分類され、かつ新たなデータが逐次に追加されるデータであれば、どのようなものにでも適用可能である。従って、データは、画像に限られず、例えば統計、パターン認識、データマイニングなどの各種の分野で用いられるあらゆるデータでありうる。
【００８８】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【００８９】
なお、以下のような構成も本開示の技術的範囲に属する。
（１）それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定するクラスタ再構成判定部を備える情報処理装置。
（２）前記特徴量空間での前記データ群に含まれるデータと前記新規データとの間の距離を要素とする距離行列を生成し、前記距離行列の一部の要素に前記特徴量空間での位置情報に基づいて算出された距離を設定する距離算出部と、
前記算出された距離が設定されなかった前記距離行列の要素の予測値を含む予測距離行列を、前記距離行列を用いた行列演算によって算出する距離推定部と
をさらに備え、
前記クラスタ再構成判定部は、前記予測距離行列に基づいて前記候補クラスタを決定する、前記（１）に記載の情報処理装置。
（３）前記距離推定部は、前記距離行列から導出される１対の行列を、前記距離行列を参照して交互に再計算することによって１対の中間行列を生成し、前記１対の中間行列に基づいて前記予測距離行列を算出する、前記（２）に記載の情報処理装置。
（４）前記新規データは、第１の新規データと、該第１の新規データの後に追加される第２の新規データとを含み、
前記距離行列は、前記第１の新規データが追加されたときに生成される第１の距離行列と、前記第２の新規データが追加されたときに生成される第２の距離行列とを含み、
前記予測距離行列は、前記第１の新規データが追加されたときに生成された第１の算出される第１の予測距離行列と、前記第２の新規データが追加されたときに算出される第２の予測距離行列とを含み、
前記距離推定部は、前記第２の距離行列から導出される前記１対の行列の代わりに、前記第１の新規データが追加されたときに生成された前記１対の中間行列を利用することによって、前記第２の距離行列から前記第２の予測距離行列を算出するときの前記再計算の回数を前記第１の距離行列から前記第１の予測距離行列を算出するときよりも少なくする、前記（３）に記載の情報処理装置。
（５）前記距離推定部は、前記第２の距離行列から前記第２の予測距離行列を算出するときの前記再計算の対象を、前記第１の距離行列と前記第２の距離行列との差分に対応する行を含む一部の行に限定する、前記（４）に記載の情報処理装置。
（６）前記一部の行は、前記差分に対応する行と、それ以外の少なくとも１つの行とを含む、前記（５）に記載の情報処理装置。
（７）前記一部の行は、前記差分に対応する行と、前記差分の行との相関性が高い少なくとも１つの行とを含む、前記（６）に記載の情報処理装置。
（８）前記距離推定部は、所定の条件が満たされた場合、前記第２の距離行列から導出された１対の行列を、前記第２の距離行列を参照して交互に再計算することによって前記１対の中間行列を再生成し、該再生成された１対の中間行列に基づいて前記第２の予測距離行列を再算出する、前記（４）〜（７）のいずれか１項に記載の情報処理装置。
（９）前記距離推定部は、前記第２の距離行列と前記第２の予測距離行列との間の誤差が所定の範囲を超えた場合に前記第２の予測距離行列を再算出する、前記（８）に記載の情報処理装置。
（１０）前記距離推定部は、前記算出された距離が設定された前記第２の距離行列の要素と、前記第２の予測距離行列における該要素の予測値とを比較することによって前記誤差を算出する、前記（９）に記載の情報処理装置。
（１１）前記距離推定部は、前記第２の距離行列から導出される前記１対の行列の代わりに前記第１の新規データが追加されたときに生成された前記１対の中間行列を利用した前記第２の予測距離行列の算出が所定の回数実行された場合に前記第２の予測距離行列を再算出する、前記（８）〜（１０）のいずれか１項に記載の情報処理装置。
（１２）前記距離推定部は、所定の時間周期ごとに前記第２の予測距離行列を再算出する、前記（８）〜（１１）のいずれか１項に記載の情報処理装置。
（１３）前記クラスタ再構成判定部は、再構成の対象になる前記候補クラスタの数、または該候補クラスタに含まれるデータの数に応じて、前記候補クラスタを決定するための閾値を変化させる、前記（１）〜（１２）のいずれか１項に記載の情報処理装置。
（１４）前記特徴量空間での距離に基づいてデータ間の類似度スコアを算出する類似度スコア算出部をさらに備え、
前記クラスタ再構成判定部は、前記類似度スコアの相関性に基づいて前記候補クラスタを決定する、前記（１）〜（１３）のいずれか１項に記載の情報処理装置。
（１５）前記新規データの入力を、時間的に分散して逐次に受け付ける入力部をさらに備える、前記（１）〜（１４）のいずれか１項に記載の情報処理装置。
（１６）前記データ群である画像群が格納されるストレージと、
前記新規データである新規画像の特徴量を抽出する特徴抽出部と、
前記特徴量空間での前記画像群に含まれる画像と前記新規画像との間の距離を算出する距離算出部と、
前記再構成する候補クラスタが決定された場合には前記再構成後のクラスタに前記新規画像を分類し、それ以外の場合には前記クラスタを再構成せずに前記新規画像を前記クラスタのいずれかまたは新たなクラスタに分類するクラスタリング部と、
前記新規画像をクラスタに分類した結果を出力する出力部と
をさらに備える、前記（１）〜（１５）のいずれか１項に記載の情報処理装置。
（１７）それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定することを含む情報処理方法。
（１８）それぞれが特徴量空間での位置情報を有し前記特徴量空間での距離に基づいてクラスタに分類されたデータ群に、前記特徴量空間での位置情報を有する新規データを追加する場合、前記クラスタのうち前記新規データが前記特徴量空間での距離に基づいて分類されうる候補クラスタが複数存在するときは前記新規データを前記クラスタに分類するときに前記候補クラスタを再構成することを決定する機能をコンピュータに実現させるためのプログラム。
【符号の説明】
【００９０】
１００，２００    サーバ
１１０    入力部
１２０    特徴検出部
１３０    ストレージ
１４０    距離算出部
１５０    類似度スコア算出部
１６０    再構成判定部
１７０    クラスタリング部
１８０    出力部
２９０    距離推定部
【図１】
2014095967.tif 000003
【図２】
2014095967.tif 000004
【図３】
2014095967.tif 000005
【図４】
2014095967.tif 000006
【図５】
2014095967.tif 000007
【図６】
2014095967.tif 000008
【図７】
2014095967.tif 000009
【図８】
2014095967.tif 000010
【図９】
2014095967.tif 000011
【図１０】
2014095967.tif 000012
【図１１】
2014095967.tif 000013
【図１２】
2014095967.tif 000014
【図１３】
2014095967.tif 000015
【図１４】
2014095967.tif 000016
【図１５】
2014095967.tif 000017
【図１６】
2014095967.tif 000018