(57)【特許請求の範囲】
【請求項１】
入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得する取得手段を備え、前記マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含み、
前記マッチグラフの構造に基づいて入力画像同士を互いに関連付けるコミュニティ構造検出手段と、
互いに関連付けられた入力画像の集合をクラスタとして出力する出力手段とを備え、
前記コミュニティ構造検出手段は、
前記マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘って前記マッチグラフ内を順次移動して、移動に係る通過履歴を取得する試行手段と、
前記試行手段により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける関連付け手段とを含む、画像クラスタリングシステム。
【請求項２】
外部から問合せ対象の画像を受信すると、当該受信した画像に対応する入力画像を各クラスタに含まれる入力画像の集合から検索するととともに、対応する入力画像が属するクラスタの情報を応答する検索手段をさらに備える、請求項１に記載の画像クラスタリングシステム。
【請求項３】
コンピュータにより実行される画像クラスタリング方法であって、
前記コンピュータが入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得するステップを備え、前記マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含み、
前記コンピュータが前記マッチグラフの構造に基づいて入力画像同士を互いに関連付けるステップと、
前記コンピュータが互いに関連付けられた入力画像の集合をクラスタとして出力するステップとを備え、
前記関連付けるステップは、
前記マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘って前記マッチグラフ内を順次移動して、移動に係る通過履歴を取得するステップと、
前記通過履歴を取得するステップにおいて取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付けるステップとを含む、画像クラスタリング方法。
【請求項４】
画像クラスタリングプログラムであって、前記画像クラスタリングプログラムは、コンピュータに、
入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得するステップを実行させ、前記マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含み、
前記マッチグラフの構造に基づいて入力画像同士を互いに関連付けるステップと、
互いに関連付けられた入力画像の集合をクラスタとして出力するステップとを実行させ、
前記関連付けるステップは、
前記マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘って前記マッチグラフ内を順次移動して、移動に係る通過履歴を取得するステップと、
前記通過履歴を取得するステップにおいて取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付けるステップとを含む、画像クラスタリングプログラム。
【請求項５】
複数の頂点および頂点間を接続する辺を含むグラフを取得する取得手段と、
前記グラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘って前記グラフ内を順次移動して、移動に係る通過履歴を取得する試行手段と、
前記試行手段により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点であるそれぞれの頂点同士を互いに関連付ける関連付け手段と、
互いに関連付けられた頂点の集合をクラスタとして出力する出力手段とを備える、コミュニティ構造検出システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、入力画像の集合をクラスタリングする画像クラスタリングシステム、画像クラスタリング方法、および、画像クラスタリングプログラム、ならびに、当該クラスタリングに好適なコミュニティ構造検出システムに関する。
【背景技術】
【０００２】
近年の情報通信技術の発展に伴って、複数の要素をクラスタリングする手法であるコミュニティ構造検出の技術が様々な分野に適用されている。例えば、ソーシャルメディアにおいては、ユーザの繋がりを表現したグラフに対してコミュニティ構造検出を適用することで、友達を推薦するようなサービスが提供されており、あるいは、ＥＣ（electronic commerce）サイトなどでは、購買履歴に基づく商品の関係を表現したグラフに対してコミュニティ構造検出を適用することで、データマイニングや商品を推薦するようなサービスが提供されている。
【０００３】
このようなコミュニティ構造検出の具体的な解決手法として、例えば、非特許文献１（"Community detection in graphs", S.Fortunato, Physics Reports, Vol.486, pp.75-174, 2010）は、「コミュニティ内のエッジ密度が偶然に得られるエッジ密度と比較してどの程度大きいか」を示すmodularityという概念を導入し、そのmodularityの大きさを示すＱという指標を最大化するというアプローチを開示している。また、非特許文献２（"Building rome in a day", S. Agarwal, N. Snavely, L. Simon, S. M. Seitz, and R. Szeliski, Proceedings of IEEE International Conference on Computer Vision, 2009）は、３次元形状への復元を目的に、マッチグラフを利用する構成を開示している。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】"Community detection in graphs", S.Fortunato, Physics Reports, Vol.486, pp.75-174, 2010
【非特許文献２】"Building rome in a day", S. Agarwal, N. Snavely, L. Simon, S. M. Seitz, and R. Szeliski, Proceedings of IEEE International Conference on Computer Vision, 2009
【非特許文献３】"Distinctive image features from scale-invariant keypoints", D. Lowe, International Journal of Computer Vision, Vol. 60, No. 2, pp. 91-110, 2004
【非特許文献４】"Statistical mechanics of community detection", J. Reichardt and S. Bornholdt, Physical Review E, Vol. 74, 2006
【非特許文献５】"The map equation", M. Rosvall and C. T. Bergstrom, The European Physical Journal Special Topics, Vol.178, pp.13-23, 2009
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述の非特許文献１に開示されるコミュニティ構造検出の手法では、クラスタリングの範囲、すなわち検出対象となるコミュニティ内の密接の度合いを任意に調整することが難しいという課題がある。また、上述の非特許文献２は、多数の画像に対する画像クラスタリングへの応用については何ら考慮されていない。そのため、汎用性の高い新規なコミュニティ構造検出の手法が要望されている。
【課題を解決するための手段】
【０００６】
本発明のある局面に従う画像クラスタリングシステムは、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得する取得手段を含む。マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含む。画像クラスタリングシステムは、マッチグラフの構造に基づいて入力画像同士を互いに関連付けるコミュニティ構造検出手段と、互いに関連付けられた入力画像の集合をクラスタとして出力する出力手段とを含む。
【０００７】
好ましくは、コミュニティ構造検出手段は、マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってマッチグラフ内を順次移動して、移動に係る通過履歴を取得する試行手段と、試行手段により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける関連付け手段とを含む。
【０００８】
好ましくは、試行手段は、同一の頂点を出発点とする、所定ステップ数に亘るマッチグラフ内の順次移動を、所定試行回数に亘って繰返す。コミュニティ構造検出手段は、さらに、同一の頂点を出発点とする複数の通過履歴から統計上の異常値を除外する除外手段をさらに含む。
【０００９】
さらに好ましくは、除外手段は、同一の頂点を出発点とする複数の通過履歴を結合するとともに、結合された通過履歴において、通過頻度が相対的に小さい頂点については、通過履歴に含まれないものとみなす。
【００１０】
好ましくは、画像マッチング処理において、第１の入力画像が参照画像とされ、第２の入力画像が対象画像とされたときに、マッチングすると判断されたことに基づいて、マッチグラフにおいて、第１の入力画像に対応する頂点から第２の入力画像に対応する頂点へ向けた辺が設けられる。
【００１１】
さらに好ましくは、試行手段は、所定ステップ数に亘る移動の完了前に、他の頂点へ移動する辺が存在しない頂点へ到達した場合には、通過履歴を取得する処理を終了する。
【００１２】
好ましくは、画像クラスタリングシステムは、画像マッチング処理として、入力画像間で対応する特徴点を探索する処理を実行する画像マッチング手段をさらに含む。
【００１３】
好ましくは、マッチグラフの辺は、接続する２つの頂点間の密接の度合いに応じた重みが付与されており、試行手段は、選択可能な辺にそれぞれ付与されている重みを反映した上で、確率的に移動先の辺を決定する。
【００１４】
好ましくは、画像クラスタリングシステムは、外部から問合せ対象の画像を受信すると、当該受信した画像に対応する入力画像を各クラスタに含まれる入力画像の集合から検索するととともに、対応する入力画像が属するクラスタの情報を応答する検索手段をさらに含む。
【００１５】
本発明の別の局面に従う画像クラスタリング方法は、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得するステップを含む。マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含む。画像クラスタリング方法は、マッチグラフの構造に基づいて入力画像同士を互いに関連付けるステップと、互いに関連付けられた入力画像の集合をクラスタとして出力するステップとを含む。
【００１６】
本発明のさらに別の局面に従う画像クラスタリングプログラムは、コンピュータに、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得するステップを実行させる。マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含む。画像クラスタリングプログラムは、コンピュータに、マッチグラフの構造に基づいて入力画像同士を互いに関連付けるステップと、互いに関連付けられた入力画像の集合をクラスタとして出力するステップとをさらに実行させる。
【００１７】
本発明のさらに別の局面に従うコミュニティ構造検出システムは、複数の頂点および頂点間を接続する辺を含むグラフを取得する取得手段と、グラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってグラフ内を順次移動して、移動に係る通過履歴を取得する試行手段と、試行手段により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点であるそれぞれの頂点同士を互いに関連付ける関連付け手段と、互いに関連付けられた頂点の集合をクラスタとして出力する出力手段とを含む。
【発明の効果】
【００１８】
本発明によれば、汎用性の高い新規なコミュニティ構造検出の手法を実現できる。
【図面の簡単な説明】
【００１９】
【図１】本実施の形態に従うコミュニティ構造検出手法を応用した画像クラスタリング手法を説明するための模式図である。
【図２】本実施の形態に従う画像クラスタリングの全体処理手順を示すフローチャートである。
【図３】本実施の形態に従うクラスタリングシステムのハードウェア構成の一例を示す模式図である。
【図４】本実施の形態に従うクラスタリングシステムのソフトウェア構成の一例を示す模式図である。
【図５】本実施の形態に従うクラスタリングシステムにより生成されるマッチグラフの一例を示す模式図である。
【図６】本実施の形態に従うクラスタリングシステムにおける画像マッチングの処理結果の一例を示す模式図である。
【図７】図５に示すマッチグラフに対応する画像マッチングの処理結果の一例を示す図である。
【図８】図５に示すマッチグラフに対してランダムウォークを実行した場合の通過頂点の一例を示す図である。
【図９】図２のステップＳ８に示す入力画像間の密接の度合いを評価する処理を示すフローチャートである。
【図１０】図９のステップＳ８４に示す異常値を除外する処理を説明するための図である。
【図１１】本実施の形態に従うコミュニティ構造検出手法の性能評価の実験結果の一例を示す図である。
【図１２】本実施の形態に従うコミュニティ構造検出手法を利用した自動ラベリングシステムの構成例を示す模式図である。
【図１３】本実施の形態に従うコミュニティ構造検出手法を利用した画像検索システムの構成例を示す模式図である。
【発明を実施するための形態】
【００２０】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２１】
［Ａ．概要］
まず、本実施の形態に従うコミュニティ構造検出手法および当該コミュニティ構造検出手法を応用した画像クラスタリングの概要について説明する。
【００２２】
図１は、本実施の形態に従うコミュニティ構造検出手法を応用した画像クラスタリング手法を説明するための模式図である。図１を参照して、本実施の形態に従うコミュニティ構造検出手法を実現するクラスタリングエンジン１０に対して、複数の入力画像からなる入力画像群２を入力すると、入力画像群２に含まれる入力画像をその画像の内容に基づいてクラスタリングして、その結果を出力する。
【００２３】
図１に示す例においては、入力画像群２は、「東大寺大仏殿」を異なる撮影条件（季節、時間帯、画角、アングルなど）で撮影した３枚の入力画像と、「平等院鳳凰堂」を異なる撮影条件で撮影した３枚の入力画像とを含むとする。これらの入力画像群２がクラスタリングエンジン１０に入力されることで、「東大寺大仏殿」に係る入力画像のクラスタ４と、「平等院鳳凰堂」に係る入力画像のクラスタ６とに分離される。
【００２４】
図１に示すように、本実施の形態に従うコミュニティ構造検出手法を入力画像群に適用することで、複数の入力画像のうちから、同一の被写体を異なる撮影条件でそれぞれ撮影した画像の部分集合を抽出することができる。図１には、説明の便宜上、複数の画像をクラスタリングする場合の処理例を挙げたが、これに限らず、任意の要素についてクラスタリングすることができる。但し、以下では、説明の便宜上、複数の画像をクラスタリングする場合の処理について説明する。
【００２５】
一般的には、「クラスタリング」および「コミュニティ構造検出」は、同義で使用されることもあるが、本明細書においては、主として、「コミュニティ構造検出」との用語は、後述するマッチグラフにおいて同一のコミュニティに属する要素を探索する処理の意味で用い、「クラスタリング」との用語は、入力された要素集合（本実施の形態においては、画像）から何らかの指標に基づいて部分集合に分類する処理の意味で用いる。
【００２６】
［Ｂ．全体処理手順］
次に、本実施の形態に従うコミュニティ構造検出手法を応用した画像クラスタリング処理の手順について説明する。
【００２７】
図２は、本実施の形態に従う画像クラスタリングの全体処理手順を示すフローチャートである。図２に示す各ステップは、後述するような、情報処理装置がプログラムを実行することなどによって実現される。図２を参照して、クラスタリング対象の複数の入力画像を取得する処理が実行される（ステップＳ２）。続いて、取得されたクラスタリング対象の複数の入力画像間でマッチングの有無を判断する処理が実行され（ステップＳ４）、その実行結果に基づいて、入力画像間の関係を示すグラフ（以下では、「マッチグラフ」とも称す。）を生成する処理が実行される（ステップＳ６）。マッチングの有無を評価する処理の一例として、本実施の形態においては、任意の画像マッチング手法を採用できる。
【００２８】
このようなステップＳ２〜Ｓ６において、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフが取得される。マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含む。マッチグラフの詳細については、後述する。なお、ステップＳ２〜Ｓ６の処理を外部装置で実行し、マッチグラフのみを当該外部装置から取得するようにしてもよい。
【００２９】
生成されたマッチグラフに対して、それに含まれるコミュニティを検出するコミュニティ構造検出処理が実行される。すなわち、マッチグラフの構造に基づいて頂点同士の密接の度合い（この場合には、各入力画像と他の入力画像との間の密接（マッチング）の度合い）を評価する処理が実行される（ステップＳ８）。そして、密接の度合いの評価結果に基づいて、入力画像群に含まれる入力画像同士を互いに関連付ける処理が実行される（ステップＳ１０）。
【００３０】
マッチグラフを構成する頂点間（入力画像同士）を互いに関連付ける処理としては、任意のコミュニティ構造検出手法を採用することができる。このようなコミュニティ構造検出手法としては、例えば、非特許文献４に開示される手法（Spin glass法）、および、非特許文献５に開示される手法（Infomap法）などが挙げられる。すなわち、コミュニティ構造検出手法としては公知の手法を採用することができるが、本実施の形態においては、主として、本願発明者らが新たに発明したコミュニティ構造検出手法である「ランダムウォーク類似度法」を採用した場合の処理について説明する。
【００３１】
ランダムウォーク類似度法では、ステップＳ８において、マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってマッチグラフ内を順次移動して、移動に係る通過履歴が取得される。そして、ステップＳ８の試行により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける処理が実行される。ランダムウォーク類似度法の詳細については、後述する。なお、本願発明者らが新たに発明したランダムウォーク類似度法は、マッチグラフに限らず、任意のグラフに含まれるコミュニティを検出することができる。
【００３２】
最終的に、互いに関連付けられた入力画像の集合をクラスタ（コミュニティ）として出力する処理が実行される（ステップＳ１２）。すなわち、同一のコミュニティに属すると判断された入力画像の集合がクラスタリング結果として出力される。そして、画像クラスタリングの処理は終了する。
【００３３】
出力されたクラスタリング結果に基づいて、画像検索や各種情報の検索がさらに実行されるようにしてもよい。
【００３４】
［Ｃ．クラスタリングシステムのハードウェア構造］
次に、本実施の形態に従う画像クラスタリングを実現するためのクラスタリングシステムのハードウェア構成の一例について説明する。
【００３５】
図３は、本実施の形態に従うクラスタリングシステムのハードウェア構成の一例を示す模式図である。図３に示す、クラスタリングシステム１００は、典型的には、パーソナルコンピュータなどの汎用コンピュータを用いて実現される。より具体的には、クラスタリングシステム１００は、主要なハードウェアコンポーネントとして、プロセッサ１０２と、主メモリ１０４と、ディスプレイ１０６と、入力デバイス１０８と、ネットワークインターフェイス（Ｉ／Ｆ：interface）１１０と、光学ドライブ１１２と、補助記憶装置１２０とを含む。これらのコンポーネントは、内部バス１１６を介して互いに接続される。
【００３６】
プロセッサ１０２は、後述するような各種プログラムを実行することで、本実施の形態に従う画像クラスタリングなどに必要な処理を実現する演算主体であり、例えば、１または複数のＣＰＵ（Central Processing Unit）やＧＰＵ（Graphics Processing Unit）などで構成される。複数のコアを有するようなＣＰＵまたはＧＰＵを用いてもよい。
【００３７】
主メモリ１０４は、プロセッサ１０２がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域であり、例えば、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static Random Access Memory）などの揮発性メモリデバイスなどで構成される。
【００３８】
ディスプレイ１０６は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（electroluminescence）ディスプレイなどで構成される。入力デバイス１０８は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。
【００３９】
ネットワークインターフェイス１１０は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りするためのコンポーネントであり、例えば、イーサネット（登録商標）、無線ＬＡＮ（Local Area Network）、Ｂｌｕｅｔｏｏｔｈ（登録商標）などの任意の通信方式を採用できる。
【００４０】
光学ドライブ１１２は、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）などの光学ディスク１１４に格納されている情報を読出して、内部バス１１６を介して他のコンポーネントへ出力する。光学ディスク１１４は、非一過的（non-transitory）な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ１１２が光学ディスク１１４からプログラムを読み出して、補助記憶装置１２０などにインストールすることで、パーソナルコンピュータなどの汎用コンピュータがクラスタリングシステム１００として機能するようになる。したがって、本発明の主題は、補助記憶装置１２０などにインストールされたプログラム自体、または、本実施の形態に従う処理を実現するためのプログラムを格納した光学ディスク１１４などの記録媒体でもあり得る。
【００４１】
図３には、非一過的な記録媒体の一例として、光学ディスク１１４などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、ＭＯ（Magneto-Optical disk）などの光磁気記録媒体を用いてもよい。
【００４２】
補助記憶装置１２０は、プロセッサ１０２にて実行されるプログラム、プログラムが処理対象とする入力データ、および、プログラムの実行により生成される出力データなどを格納するコンポーネントであり、例えば、ハードディスク、ＳＳＤ（Solid State Drive）などの不揮発性記憶装置で構成される。より具体的には、補助記憶装置１２０には、典型的には、図示しないＯＳ（Operating System）の他、画像マッチングプログラム１２２、画像クラスタリングプログラム１２４、検索プログラム１２６、および、入力画像１３０が格納される。
【００４３】
また、画像マッチングプログラム１２２、画像クラスタリングプログラム１２４、および、検索プログラム１２６をプロセッサ１０２で実行する際に必要となるライブラリや機能モジュールの一部を、ＯＳが標準で提供するライブラリまたは機能モジュールを用いて代替するようにしてもよい。この場合には、画像クラスタリングプログラム１２４、および、検索プログラム１２６の各単体は、本実施の形態に従う画像クラスタリングを実現するために必要なプログラムモジュールのすべてが含まれることにはならないが、ＯＳの実行環境下にインストールされることで、本実施の形態に従う画像クラスタリングを実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【００４４】
画像マッチングプログラム１２２、画像クラスタリングプログラム１２４、および、検索プログラム１２６は、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【００４５】
図３には、単一の情報処理装置がクラスタリングシステム１００を構成する例を示すが、これに限らず、ネットワークを介して接続された複数の情報処理装置が明示的または黙示的に連携して、本実施の形態に従う画像クラスタリングを実現するようにしてもよい。
【００４６】
補助記憶装置１２０には、クラスタリング対象の入力画像からなる入力画像群１３０が格納されてもよい。あるいは、補助記憶装置１２０に格納される入力画像群１３０をネットワーク上の１または複数のサーバ装置に格納するようにしてもよい。
【００４７】
さらに、コンピュータ（プロセッサ１０２）がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路（hard-wired circuit）を用いて実現してもよい。例えば、ＡＳＩＣ（Application Specific Integrated Circuit）やＦＰＧＡ（Field-Programmable Gate Array）などを用いて実現してもよい。
【００４８】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う画像クラスタリングを実現できるであろう。
【００４９】
［Ｄ．クラスタリングシステムのソフトウェア構造］
次に、本実施の形態に従う画像クラスタリングを実現するためのクラスタリングシステムのソフトウェア構成の一例について説明する。
【００５０】
図４は、本実施の形態に従うクラスタリングシステム１００のソフトウェア構成の一例を示す模式図である。図４を参照して、クラスタリングシステム１００は、主要なソフトウェアコンポーネントとして、選択モジュール１５２と、画像マッチングモジュール１５４と、マッチグラフ生成モジュール１５６と、コミュニティ構造検出モジュール１５８と、出力モジュール１６６とを含む。これらのソフトウェアコンポーネントは、図３に示すプロセッサ１０２が画像マッチングプログラム１２２および画像クラスタリングプログラム１２４を実行することで提供される。
【００５１】
選択モジュール１５２および画像マッチングモジュール１５４は、任意の入力画像間について、マッチングの有無を評価する。具体的には、選択モジュール１５２は、補助記憶装置１２０に格納されるクラスタリング対象の入力画像群１３０に含まれる任意の入力画像と、それ以外の入力画像とを選択し、画像マッチングモジュール１５４へ与える。画像マッチングモジュール１５４は、選択モジュール１５２から与えられる２つの入力画像の間で画像マッチング処理を実行し、当該入力画像間で同一または類似の特徴点を探索する処理（特徴点マッチング処理）を実行する。画像マッチングモジュール１５４は、任意の２つの入力画像間についての特徴点マッチング処理の結果をマッチグラフ生成モジュール１５６へ出力する。入力画像１３０の様々な組み合わせについて、上述したような選択モジュール１５２および画像マッチングモジュール１５４による処理が繰返し実行される。
【００５２】
マッチグラフ生成モジュール１５６は、画像マッチングモジュール１５４からの特徴点マッチング処理の結果と、当該特徴点マッチング処理の結果の対象となった入力画像の組の情報（画像選択情報）とに基づいて、入力画像間の関係を表現したグラフである、マッチグラフ２００を生成する。
【００５３】
図４に示す構成において、選択モジュール１５２、画像マッチングモジュール１５４、および、マッチグラフ生成モジュール１５６は、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフ２００を取得する取得手段に相当する。
【００５４】
コミュニティ構造検出モジュール１５８は、マッチグラフ生成モジュール１５６により生成されたマッチグラフ２００に対して、本実施の形態に従うコミュニティ構造検出手法を適用し、マッチグラフ２００に含まれる要素（すなわち、入力画像）からコミュニティを検出する。より具体的には、コミュニティ構造検出モジュール１５８は、ランダムウォークモジュール１６０と、類似度算出モジュール１６２と、関連付けモジュール１６４とを含む。
【００５５】
なお、コミュニティ構造検出モジュール１５８の代替の構成として、公知のコミュニティ構造検出手法によりコミュニティを検出するようなモジュールを採用してもよい。
【００５６】
ランダムウォークモジュール１６０は、マッチグラフ２００に含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってマッチグラフ２００内を順次移動して、移動に係る通過履歴を取得する試行機能を提供する。類似度算出モジュール１６２は、ランダムウォークモジュール１６０により取得される各頂点を出発点とする通過履歴同士の類似度を算出する。関連付けモジュール１６４は、類似度算出モジュール１６２により算出される類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける。
【００５７】
出力モジュール１６６は、コミュニティ構造検出モジュール１５８によって互いに関連付けられた入力画像の集合をクラスタ（クラスタリング結果）として出力する。出力モジュール１６６は、各クラスタに含まれる入力画像に対して、属性情報を付加してもよい。
【００５８】
［Ｅ．マッチグラフの生成処理］
次に、本実施の形態に従うマッチグラフ２００の生成処理について説明する。
【００５９】
（ｅ１：マッチグラフ）
図５は、本実施の形態に従うクラスタリングシステム１００により生成されるマッチグラフ２００の一例を示す模式図である。なお、図５に示すマッチグラフそのものが視覚化されている必要はなく、クラスタリングシステム１００内部で論理的に生成されるようなものであってもよい。
【００６０】
図５（Ａ）を参照して、マッチグラフ２００は、複数の頂点２１０および頂点２１０間のマッチングの有無を示す１または複数の辺２１２とからなる。頂点２１０の各々は、クラスタリング対象の入力画像の各々に対応する。すなわち図５（Ａ）には、画像Ａから画像Ｌまで１２枚の入力画像に関するマッチグラフ２００を示す。辺２１２の各々は、その辺が接続する２つの頂点（をそれぞれ示す入力画像）間がマッチングすることを表現する。
【００６１】
図５（Ａ）には、一例として、辺２１２が方向の情報をもつ有向グラフの例を示す。画像クラスタリングシステムにおいては、マッチグラフ２００の辺２１２は、隣接する２つの頂点２１０がそれぞれ示す入力画像間の画像マッチング処理の結果を示す。
【００６２】
本実施の形態に従うコミュニティ構造検出手法および画像クラスタリングにおいて処理するマッチグラフに類似したグラフは、非特許文献２に開示されている。但し、非特許文献２は、３次元形状への復元を目的に、マッチグラフを利用する構成を開示するのみであり、本実施の形態において説明するような画像クラスタリングに用いることは何ら想定されていない。
【００６３】
しかしながら、本願発明者らの鋭意研究により、マッチグラフを画像クラスタリングに応用できるという新規な着想に想到した。すなわち、本願発明者らは、マッチグラフの連結成分は、主として、同一の被写体が写った画像で構成されると推測した。そこで、大量の画像を用いて実際に実験したところ、互いに異なる被写体が写った画像からなる連結成分ができてしまうという課題に直面した。本願発明者らが分析すると、画像間で誤マッチングが発生することが原因であることがわかった。さらに、分析を進めると、画像間での誤マッチングの発生頻度は相対的に低く、同一の被写体が写った画像（マッチグラフ内の頂点）間の接続は密であり、異なる被写体が写った画像（マッチグラフ内の頂点）間の接続は疎であることがわかった。このような実験で得られた知見に基づいて、本願発明者らは、コミュニティ検出手法をマッチグラフに適用することで、接続が密な頂点の集合をコミュニティとして分類し、それぞれの分類されたコミュニティから同一の被写体が写った画像の集合をクラスタ化することに成功した。以下、マッチグラフの生成方法およびマッチグラフに対するコミュニティ構造検出処理などについて説明する。
【００６４】
（ｅ２：画像マッチング方法）
画像マッチング方法としては、任意の手法を採用することができる。本実施の形態においては、一例として、画像マッチング処理として、入力画像間で対応する特徴点を探索する処理を採用する。より具体的には、非特許文献３に詳述されるような、局所的な画像特徴量を用いる方式などを採用する。
【００６５】
画像マッチング処理は、図３に示すプロセッサ１０２が画像マッチングプログラム１２２を実行することで実現される。また、図４に示すソフトウェアコンポーネントのうち、画像マッチングモジュール１５４がこの画像マッチング処理を担当する。
【００６６】
図５（Ａ）に示すマッチグラフ２００に示す例では、頂点Ａから頂点Ｅに向けて辺２１２が存在しており、これは、頂点Ａに対応する入力画像Ａを参照画像（基準画像）とし、頂点Ｅに対応する入力画像Ｅを対象画像とした場合に、当該画像間に対応する特徴点が見つかったことを意味する。
【００６７】
一方、図５（Ａ）に示すマッチグラフ２００に示す例では、頂点Ｅから頂点Ａに向けての辺は存在しておらず、これは、頂点Ｅに対応する入力画像Ｅを参照画像（基準画像）とし、頂点Ａに対応する入力画像Ａを対象画像とした場合には、当該画像間に対応する特徴点が見つからなかったことを意味する。
【００６８】
このように、画像マッチング処理において、第１の入力画像が参照画像とされ、第２の入力画像が対象画像とされたときに、マッチングすると判断されたことに基づいて、マッチグラフ２００において、第１の入力画像に対応する頂点から第２の入力画像に対応する頂点へ向けた辺が設けられるようにしてもよい。このような有向グラフであるマッチグラフ２００を採用することで、クラスタリング精度を高めることができる。
【００６９】
上述の説明においては、有向グラフを例示したが、本実施の形態に従うコミュニティ構造検出手法は、辺２１２が方向の情報をもたない、無向グラフにも適用可能である。
【００７０】
クラスタリング対象の入力画像群に含まれる２つの入力画像の組み合わせのすべてについて画像マッチング処理を行なうことで、図５（Ａ）に示すようなマッチグラフが生成される。図５（Ａ）に視覚的に示されるマッチグラフを見れば、３つのコミュニティが含まれることを暗に知ることができるが、本実施の形態に従うクラスタリングシステム１００は、このようなクラスタリングを後述するような手法で実現する。すなわち、図５（Ａ）に示すようなマッチグラフ２００に対して、本実施の形態に従うコミュニティ構造検出手法を適用することで、図５（Ｂ）に示すようなコミュニティ検出結果が得られる。
【００７１】
図５（Ｂ）に示すようなコミュニティ検出結果に基づいて、頂点Ａ〜Ｅにそれぞれ対応する入力画像Ａ〜Ｅが同一の被写体を撮影した入力画像群（コミュニティ１）であり、頂点Ｆ〜Ｈにそれぞれ対応する入力画像Ｆ〜Ｈが別の同一の被写体を撮影した入力画像群（コミュニティ２）であり、頂点Ｉ〜Ｌにそれぞれ対応する入力画像Ｉ〜Ｌがさらに別の同一の被写体を撮影した入力画像群（コミュニティ３）である。
【００７２】
なお、図５に示すマッチグラフ２００において、コミュニティ２に属する頂点Ｇからコミュニティ１に属する頂点Ｅまでに辺２１４が存在している。この辺２１４は、頂点Ｇに対応する入力画像Ｇと頂点Ｅに対応する入力画像Ｅとの間で画像の誤マッチングが生じたことを意味する。画像マッチング処理においては、このような誤った特徴点間の対応による画像の誤マッチングが生じ得るが、本実施の形態に従うコミュニティ構造検出手法では、このような誤マッチングの除去についても、任意のレベルで行なうことができる。
【００７３】
本実施の形態に従うコミュニティ構造検出手法を画像クラスタリングに適用する場合には、マッチグラフは、入力画像を頂点とし、当該入力画像から抽出された特徴点との間でマッチング関係が成立する入力画像（頂点）同士を向きのある辺で接続したグラフである。
【００７４】
図６は、本実施の形態に従うクラスタリングシステム１００における画像マッチングの処理結果の一例を示す模式図である。図６（Ａ）には、同一の被写体を撮影した２つの入力画像に対する画像マッチング処理の実行結果（適切なマッチング）の一例を示し、図６（Ｂ）には、異なる被写体を撮影した２つの入力画像に対する画像マッチング処理の実行結果（誤マッチング）の一例を示す。
【００７５】
図６（Ａ）に示すように、参照画像とされた入力画像３０２に含まれる特徴点および対象画像とされた入力画像３０４に含まれる特徴点がそれぞれ抽出される。それぞれの入力画像から抽出された特徴点のうち、参照画像（入力画像３０２）から抽出された特徴点３１１〜３１４が対象画像（入力画像３０４）から抽出された特徴点３１５〜３１８と、それぞれ一致すると判断された例を示す。なお、抽出された特徴点の特徴量の類似度などに基づいて、入力画像間で対応する特徴点の対が抽出および探索される。
【００７６】
一方、図６（Ｂ）に示すように、異なる被写体を撮影して得られた入力画像３０２および３０６のそれぞれから抽出された特徴点の組が、一致すると誤って判断される場合もある。図６（Ｂ）に示す例では、参照画像（入力画像３０２）から抽出された特徴点３２１〜３２４が対象画像（入力画像３０６）から抽出された特徴点３２５〜３２８と、それぞれ一致すると誤って判断されている。
【００７７】
マッチグラフの連結成分は、主として、同一の被写体を撮影して得られた入力画像から構成されると想定される。しかしながら、図６（Ｂ）に示すような特徴点の誤マッチングにより、図５に示す、異なるコミュニティ間を接続する辺２１４のように、異なる被写体を撮影した入力画像を含む連結成分も生じ得る。
【００７８】
但し、全体的に見れば、誤マッチングが生じる可能性は低いので、同一の被写体を撮影して得られた入力画像を示す頂点同士の繋がりは密になり、異なる被写体を撮影して得られた入力画像同士の繋がりは疎になる。
【００７９】
このような連結成分に対して、本実施の形態に従うコミュニティ構造検出手法を適用することで、被写体毎の画像クラスタリングをより確実に実現できる。すなわち、誤マッチングによるノイズについては、後述するようなコミュニティ構造検出処理によって、その影響を任意のレベルで除去することができる。
【００８０】
図５には、マッチグラフとして有向グラフを例示するが、各矢印は、始点にある頂点に対応する入力画像を参照画像とし、終点にある頂点に対応する入力画像を対象画像とした上で、画像マッチング処理を実行したときに、画像間にマッチングする特徴点が存在することを意味する。上述の非特許文献３に開示される、特徴点に基づく画像マッチング方法を採用した場合には、入力画像Ａの特徴点にマッチングする特徴点が入力画像Ｂに存在するからといって、その逆が成立するとは限らないためである。
【００８１】
図７は、図５に示すマッチグラフに対応する画像マッチングの処理結果の一例を示す図である。図７に示すように、クラスタリングシステム１００は、クラスタリング対象の入力画像群１３０に含まれる２つの入力画像の組み合わせのすべてについて画像マッチング処理を行なう。図７において、「Ｙ」は、２つの入力画像間に対応する特徴点が見つかったことを意味する。図７に示すような画像マッチングの処理結果に基づいて、図５に示すようなマッチグラフが生成される。
【００８２】
なお、２つの入力画像について、一方の入力画像を参照画像（基準画像）として、他方の入力画像を対象画像として画像マッチング処理を実行し、参照画像と対象画像とを入れ替えても画像マッチング処理を実行し、いずれかの画像マッチング処理において対応する特徴点が見つかれば、マッチングすると判断して、それらの入力画像をそれぞれ示す頂点の間に辺を設けるようにしてもよい。
【００８３】
また、後述するコミュニティ構造検出手法において、入力画像間のマッチングの有無に加えて、２つの入力画像間で対応付けられた特徴点の数、対応付けられた特徴点の類似度の大きさ、対応付けられた特徴点についての信頼度、などの付加情報をさらに用いてもよい。このような付加情報を算出できる画像マッチング方法を採用した場合には、これらの付加情報についても併せて格納する。このような付加情報は、例えば、マッチグラフの各辺に対する重みとして反映されてもよい。
【００８４】
（ｅ３：無向グラフ）
無向グラフを用いる場合には、いずれの頂点を辺で接続するかという点において、上述したような特徴点マッチング処理の特性を考慮することが好ましい。例えば、ある２つの入力画像について、一方を参照画像とし、他方を対象画像とした場合に、対応する特徴点が見つかり、その逆の場合も対応する特徴点が見つかったときに限って、それら２つの入力画像にそれぞれ対応する２つの頂点間を接続する辺を設けるという方法を採用してもよい。
【００８５】
あるいは、いずれか一方の入力画像を参照画像とした場合に、対応する特徴点が見つかれば、それら２つの入力画像を辺で接続することにしてもよい。
【００８６】
［Ｆ．コミュニティ構造検出処理］
次に、本実施の形態に従うコミュニティ構造検出処理について説明する。
【００８７】
（ｆ１：コミュニティ構造検出処理の全体処理）
本実施の形態に従うコミュニティ構造検出処理（ランダムウォーク類似度法）においては、図５に示すようなマッチグラフに対して、「ランダムウォーク」を実行し、その実行結果に基づいてコミュニティを判断する。「ランダムウォーク」は、グラフ内の任意の頂点を出発して、現在の頂点に接続されている辺（すなわち、選択可能な辺）のうち１つをランダムに選択し、その選択された辺に沿って次の頂点へ移動するという処理を複数回に亘って繰返す処理である。このとき有向グラフによる場合には、辺の向きも考慮して移動可能かどうかが判断される。
【００８８】
図５に示すマッチグラフを例にとれば、コミュニティ１に属する頂点同士を接続する辺は、コミュニティ１に属する頂点と他のコミュニティに属する頂点とを接続される辺より多い。すなわち、同一のコミュニティに属する頂点間は、より密に接続されていると言える。
【００８９】
このような前提知識の下、グラフ内のある頂点を出発点としてランダムウォークを実行すると、ウォーカ（ランダムウォーク中の現在位置を示す主体）は、確率的には、暫くの間、接続が密な頂点間を周遊することになる。
【００９０】
図８は、図５に示すマッチグラフに対してランダムウォークを実行した場合の通過頂点の一例を示す図である。図８（Ａ）は、頂点Ａを出発点とした場合の通過頂点の一例を示し、図８（Ｂ）は、頂点Ｆを出発点とした場合の通過頂点の一例を示す。図８に示す通過頂点において、カッコ内の数字はランダムウォークのステップ番号を示す。
【００９１】
図８（Ａ）に示すように、例えば、図５に示すマッチグラフにおいて、頂点Ａを出発点とするウォーカは、暫くの間、頂点Ａ，Ｂ，Ｃ，Ｄ，Ｅ（すなわち、コミュニティ１に属する頂点）を周遊する確率が高い。同様に、頂点Ｂ，Ｃ，Ｄ，Ｅのいずれかを出発点とするウォーカも、暫くの間、頂点Ａ，Ｂ，Ｃ，Ｄ，Ｅ（すなわち、コミュニティ１に属する頂点）を周遊する確率が高い。これに対して、例えば、図８（Ｂ）に示すように、他のコミュニティに属する頂点Ｆ〜Ｌのいずれかを出発点とするウォーカは、頂点Ａ〜Ｅを出発点とするウォーカとは全く異なる頂点を周遊する確率が高い。
【００９２】
このように、対象のグラフに含まれるすべての頂点の各々からランダムウォークを所定ステップ数に亘って実行し、そのときに通過した頂点が似ている出発頂点同士については、互いに密に接続されているとみなすことができる。
【００９３】
以上のような本願発明者らの新たな知見に基づいて、本実施の形態に従うコミュニティ構造検出手法においては、マッチグラフを生成し、生成したマッチグラフの各頂点からランダムウォークを実行するとともに、そのランダムウォークの実行結果（通過頂点の集合）に基づいて、互いに密に接続されている頂点の群を特定する。すなわち、本実施の形態においては、ランダムウォークの実行結果に基づいて頂点間の類似度を評価する。
【００９４】
図９は、図２のステップＳ８に示す入力画像間の密接の度合いを評価する処理を示すフローチャートである。図９を参照して、まず、図２のステップＳ６において生成されたマッチグラフに含まれるすべての頂点を抽出する（ステップＳ８０）。続いて、ステップＳ８０において抽出されたすべての頂点のうち対象となる１つの頂点を選択する（ステップＳ８１）。選択された頂点を開始点として、ランダムウォークが所定ステップ数に亘って実行される（ステップＳ８２）。
【００９５】
このステップＳ８２の処理は、所定試行回数に亘って繰返される（ステップＳ８３においてＮＯの間、繰返される）。すなわち、同一の頂点を出発点とする、所定ステップ数に亘るマッチグラフ内の順次移動が所定試行回数に亘って繰返される。
【００９６】
所定試行回数に亘るステップＳ８２の実行が終了すると、異常値（外れ値）を除外する処理が実行され（ステップＳ８４）、ランダムウォークによりウォーカが通過した頂点のセット（通過履歴）が、対象となる出発頂点に関連付けて格納される（ステップＳ８５）。すなわち、ランダムウォークの実行結果としては、各出発頂点と、各頂点を出発点としたウォーカが通過した１または複数の頂点とを対応付けたものとなる。
【００９７】
所定ステップ数および所定試行回数については、任意の設定することができるが、例えば、所定ステップ数は、入力されたマッチグラフに含まれる頂点の数と同数に設定することができ、所定試行回数は、「１００」などに設定することができる。あるいは、ユーザが、コミュニティ構造検出処理の結果を参照しながら、所定ステップ数および／または所定試行回数をインタラクティブに調整できるようにしてもよい。
【００９８】
ステップＳ８０において抽出された頂点のすべてが対象として選択されたか否かが判断され（ステップＳ８６）、抽出された頂点のうち選択されていない頂点が残っていれば（ステップＳ８６においてＮＯの場合）、当該選択されていない頂点のうち１つが新たな頂点として選択される（ステップＳ８７）。そして、ステップＳ８２以下の処理が繰返される。
【００９９】
抽出された頂点のすべてが対象として選択されていれば（ステップＳ８６においてＹＥＳの場合）、それぞれの頂点についてのランダムウォークの実行結果（通過頂点の集合）に基づいて、各ランダムウォーク間の類似度を算出する（ステップＳ８８）。そして、算出された類似度が予め定められたしきい値以上であるランダムウォークの出発点同士を同一のコミュニティに分類する（ステップＳ８９）。そして、ステップＳ８の処理は終了する。
【０１００】
（ｆ２：有向グラフへの適用）
本実施の形態に従うコミュニティ構造検出処理は、無向グラフおよび有向グラフのいずれにも適用可能である。但し、有向グラフに適用した場合には、ランダムウォークのステップ数が指定された所定数に到達する前に、ウォーカが移動できなくなる恐れがある。例えば、他の頂点へ移動する辺が存在しない頂点へ到達したような場合などである。そのため、所定ステップ数に亘る移動の完了前に、他の頂点へ移動する辺が存在しない頂点へウォーカが到達した場合には、通過履歴を取得する処理（ランダムウォーク）を終了するようにしてもよい。
【０１０１】
このような処理を採用することで、本実施の形態に従うコミュニティ構造検出処理は、有向グラフにも適用可能なものとなる。
【０１０２】
（ｆ３：異常値の除外処理）
次に、図９のステップＳ８４における、異常値（外れ値）を除外する処理について説明する。この異常値の除外処理では、同一の頂点を出発点とする複数の通過履歴から統計上の異常値を除外する。より具体的には、出発頂点毎にランダムウォークによってウォーカが通過した頂点のうち、統計的にその頻度が小さいものを異常値として除外する。
【０１０３】
図９のステップＳ８３において、ランダムウォークを所定試行回数に亘って繰返すのは、統計的な安定性を確保するためである。例えば、各頂点を開始点とするランダムウォークをそれぞれ１回だけ実行するようにした場合には、比較的小さいステップ数で、たまたま繋がりの弱いコミュニティへウォーカが移動してしまう可能性がある。そこで、各頂点を出発点とするランダムウォークを所定試行回数（例えば、１００回）に亘って繰返し実行する。その上で、繋がりの弱いコミュニティへの移動によって生じた通過頂点を異常値として除外する。
【０１０４】
例えば、頂点ｖｉ（０＜ｉ≦頂点総数Ｌ）を出発頂点とするランダムウォークの試行ｎ回目（１≦ｎ≦所定試行回数Ｎ）において取得された通過頂点集合をＳｉｎとする。通過頂点集合Ｓｉｎは、マッチグラフに含まれる頂点ｖ１，ｖ２，ｖ３，…，ｖＬの少なくとも一部を含むことになる。そして、頂点ｖｉを出発頂点とするランダムウォークの実行結果としては、通過頂点集合Ｓｉｎの総和、すなわち、通過頂点集合Ｓｉ←Ｓｉ１∪Ｓｉ２∪…∪ＳｉＮとなる。
【０１０５】
図１０は、図９のステップＳ８４に示す異常値を除外する処理を説明するための図である。図１０には、各頂点を出発頂点として、Ｎ回に亘ってランダムウォークを実行した結果の一例を示す。図１０において最前面に表示されている結果は、頂点ｖ１を出発頂点としたものである。図１０中の数字は、対応するランダムウォークの試行において、各頂点を何回通過したかを示す。例えば、頂点ｖ１を出発頂点とした第１回目のランダムウォークの試行において、ウォーカは頂点ｖ２を「３」回通過したことを示す（図１０の「試行」の「１」の欄参照）。
【０１０６】
このような所定試行回数について、ウォーカによる各頂点の通過頻度（総合計）を算出し、この通過頻度が相対的に小さい場合には、異常値として除外する。相対的に小さいか否かは、予め定められたしきい値を用いて判断することができる。この異常値を判断するためのしきい値は、所定試行回数に所定比率を乗じた値（０〜１の間の一定値）を用いることができる。一例として、所定試行回数が「１００」である場合、所定比率を「０．２」とすると、異常値を判断するためのしきい値は「２０」となる。図１０に示す例では、頂点ｖｉおよび頂点ｖＬは、異常値として除外される。すなわち、ウォーカがしきい値以下しか通過しなかった頂点については、通過履歴としてはみなさないようにしてもよい。
【０１０７】
このように、異常値の除外処理においては、同一の頂点を出発点とする複数の通過履歴を結合するとともに、結合された通過履歴において、通過頻度が相対的に小さい頂点については、通過履歴に含まれないものとみなす。
【０１０８】
その結果、頂点ｖｉを出発頂点とするランダムウォークの実行結果である通過頂点集合Ｓｉには、通過頻度が相対的に大きな頂点ｖ１，ｖ２が含まれる一方で、頂点ｖｉ，ｖＬは除かれることになる。
【０１０９】
あるいは、通過履歴としてはみなさないと判断された頂点を含む通過頂点集合自体を、異常値として除外するようにしてもよい。例えば、図１０に示す例では、頂点ｖｉ，ｖＬの通過頻度がしきい値以下であるので、頂点ｖｉまたは頂点ｖＬを含む、通過頂点集合Ｓ１１，Ｓ１２，Ｓ１Ｎが異常値として除外され、それ以外の通過頂点集合の和集合を用いて、後述する類似度が算出されることになる。
【０１１０】
なお、異常値（外れ値）を除外するためのしきい値としては、所定試行回数に基づいて決定する以外にも、例えば、各頂点の通過頻度の分布などに基づいて決定してもよい。例えば、通過頻度分布の中央値の５０％などと設定することもできる。すなわち、異常値を除外するための基準としては、対象となる母集団の特性などに応じて、任意に設計すればよい。
【０１１１】
（ｆ４：類似度の算出処理）
次に、図９のステップＳ８８における類似度の算出方法のいくつかの具体的手法について例示する。この類似度は、出発頂点毎に実行したランダムウォークにおいて、その通過頂点が互いにどの程度似ているかを示す指標である。なお、以下の説明では、２つのランダムウォーク間の類似度を算出する場合について例示するが、３つ以上のランダムウォーク間での類似度を算出するようにしてもよい。
【０１１２】
（１）通過頂点集合間のＪａｃｃａｒｄ係数を用いる方法
頂点ｖｉを出発点としたウォーカの通過頂点集合Ｓｉとし、頂点ｖｊを出発点としたウォーカの通過頂点集合をＳｊとすると、類似度ｓｉｍｉｊとしてのＪａｃｃａｒｄ係数は、以下の（１）式に従って算出できる。
【０１１３】
【数１】
0006757913.tif 000002
【０１１４】
（１）式において、Ｓｉ∪Ｓｊは、通過頂点集合Ｓｉおよび通過頂点集合Ｓｊの少なくとも一方に属する頂点全体の集合（和集合）を意味し、Ｓｉ∩Ｓｊは、通過頂点集合Ｓｉおよび通過頂点集合Ｓｊの両方に属する頂点全体の集合（積集合）を意味する。すなわち、類似度ｓｉｍｉｊは、対象となる２つのランダムウォークのいずれかにおいて通過頂点となった頂点の数のうち、２つのランダムウォークに共通して通過頂点となった頂点の数の比率を示す。
【０１１５】
上述の異常値の除外処理が実行される場合には、通過頂点集合Ｓｉ，Ｓｊは、異常値の除外処理によって除外された頂点または通過頂点集合を除いた集合が用いられる。
【０１１６】
対象のマッチグラフに含まれる頂点の数と同数の通過頂点集合が生成され、生成された通過頂点集合のうち２つの通過頂点集合の組み合わせのすべてについて、類似度がそれぞれ算出されることになる。
【０１１７】
（２）通過頂点の頻度ベクトルのＣＯＳ類似度を用いる方法
通過頂点集合Ｓの各頂点についての通過頻度を多次元ベクトルとみなすことで、そのベクトル同士の類似度を用いるようにしてもよい。
【０１１８】
例えば、頂点ｖ１を出発点としたウォーカが、頂点ｖ１を２回、頂点ｖ２を３回、…、頂点ｖＬを０回通過したとすると、各頂点の通過頻度を示す頻度ベクトルｆ１を（２，３，…，０）と定義できる。頻度ベクトルｆ１の次数はＬとなり、Ｌ次元空間の空間ベクトルとみなすことができる。そして、Ｌ次元空間における、頻度ベクトル間の類似度として、ＣＯＳ（コサイン）（すなわち、頻度ベクトル間の相関係数）を用いることができる。
【０１１９】
すなわち、頂点ｖｉを出発点としたウォーカによる各頂点の通過頻度を示す頻度ベクトルをｆｉとし、頂点ｖｊを出発点としたウォーカの通過頂点頻度を示す頻度ベクトルをｆｊとすると、ＣＯＳ類似度ｃｏｓ（ｆｉ，ｆｊ）は、以下の（２）式に従って算出できる。
【０１２０】
【数２】
0006757913.tif 000003
【０１２１】
対象のマッチグラフに含まれる頂点の数と同数の通過頂点集合および対応する頻度ベクトルが生成され、（２）式から明らかなように、生成された頻度ベクトルのうち２つの頻度ベクトルの組み合わせのすべてについて、ＣＯＳ類似度がそれぞれ算出されることになる。
【０１２２】
（３）その他
異常値の除外処理として、１クラスＳＶＭ（Support Vector Machine）を用いるようにしてもよい。
【０１２３】
例えば、ＣＯＳ類似度を算出する際には、各頂点を開始点とする、所定試行回数（例えば、１００回）に亘るランダムウォークの繰返しによって得られた実行結果（通過頂点の集合）から頻度ベクトルを生成する。その上で、１クラスＳＶＭを用いて、所定の割合（例えば、５％）の頻度ベクトルを例外とみなして削除した上で、残ったベクトル群からランダムに１つのベクトルを選択し、その選択したベクトルを当該出発頂点についての頻度ベクトルの代表とみなすようにしてもよい。
【０１２４】
同様の手順をＪａｃｃａｒｄ係数の算出処理にも適用できる。この場合には、各ランダムウォークにおいて、ウォーカがそれぞれの頂点を通過したか否かを「１」および「０」を用いて表現したベクトルを作成し、このベクトルの集合に対して、１クラスＳＶＭを適用することになる。
【０１２５】
また、Ｊａｃｃａｒｄ係数の他、Ｄｉｃｅ係数またはＳｉｍｐｓｏｎ係数などを用いてもよい。
【０１２６】
（ｆ５：コミュニティへの分類）
次に、図９のステップＳ８９におけるコミュニティへの分類処理について説明する。
【０１２７】
上述したランダムウォーク間の類似度（Ｊａｃｃａｒｄ係数およびＣＯＳ類似度）は、いずれも正規化されており、０から１の間の実数となる。ランダムウォーク間の類似度が予め定められたしきい値以上であるものを同一のコミュニティに属すると判断し、各ランダムウォークの出発頂点同士を同一のコミュニティに分類する。
【０１２８】
上述したランダムウォーク間の類似度は、２つのランダムウォーク間の類似度を評価したものであり、特定のランダムウォークと他のランダムウォークとの間の類似度と、当該特定のランダムウォークとさらに別のランダムウォークとの間の類似度とが整合しない場合がある。このような場合には、いずれかのランダムウォークとの間で繋がりがあれば、同一のコミュニティに分類するようにしてもよい。具体的には、例えば、頂点ｖ１および頂点ｖ２についてのランダムウォーク間の類似度を算出した結果、それらの頂点が同一のコミュニティに属すると判断されるとともに、頂点ｖ２および頂点ｖ３についてのランダムウォーク間の類似度を算出した結果、それらの頂点が同一のコミュニティには属すると判断されたとする。このような場合、仮に、頂点ｖ１および頂点ｖ３についての類似度がしきい値未満であり、同一のコミュニティに属さないと判断されたとしても、頂点ｖ１および頂点ｖ３の頂点ｖ２に対する関係を考慮して、頂点ｖ１、頂点ｖ２、頂点ｖ３のすべてが同一のコミュニティに属していると決定してもよい。
【０１２９】
この類似度を評価するためのしきい値は任意に設定できる。すなわち、ランダムウォーク間の類似度を評価するしきい値を任意に調整することで、単一のコミュニティとして検出されるのに必要な繋がりの強さを直感的に調整できる。より具体的には、例えば、類似度を評価するためのしきい値は「０．４」などに設定することができる。但し、ユーザが、コミュニティ構造検出処理の結果を参照しながら、しきい値をインタラクティブに調整できるようにしてもよい。
【０１３０】
本実施の形態に従うコミュニティ構造検出処理を多数の画像に対する画像クラスタリングへ応用する場合には、同一の被写体を撮影した入力画像であっても、季節、時間帯、画角、アングルなどの撮影条件が異なるものが含まれる。図５に示すようなマッチグラフにおいて、季節などの撮影条件が同一または類似している入力画像間の繋がりは密となるが、同一の被写体であっても、撮影条件が異なっている入力画像間の繋がりは疎になる傾向がある。
【０１３１】
そこで、同一のコミュニティの範囲を定めるしきい値をインタラクティブに調整することで、同一の被写体であっても、季節などの撮影条件が異なる複数の入力画像について、そのクラスタリングの目的などに応じて、同一のコミュニティに含めるようにしてもよいし、別のコミュニティに分離するようにしてもよい。
【０１３２】
［Ｇ．重み付きグラフへの適用］
上述の説明においては、マッチグラフに含まれる辺の重みについては限定していなかったが、各辺に重みが付与されている重み付きグラフについても適用可能である。重み付きグラフを生成する場合には、例えば、上述した画像マッチング処理において、見つかった対応する特徴点の数、画像マッチング処理の信頼度などに応じて、ある頂点と他の頂点をと接続する辺に対する重みを設定してもよい。すなわち、マッチグラフの辺には、接続する２つの頂点間のマッチングの度合いに応じた重みが付与されていてもよい。
【０１３３】
ランダムウォークにおいて、ウォーカがある頂点に位置する場合に、当該頂点から選択可能な辺にそれぞれ付与されている重みを反映した上で、確率的に移動先の辺が決定される。すなわち、各頂点に接続されるそれぞれの辺に設定される重みに基づいて、遷移先が確率的に決定される。
【０１３４】
例えば、頂点Ａに接続される３つの辺に重みｗ１，ｗ２，ｗ３がそれぞれ設定されているとすると、重みｗ１が設定されている辺に遷移する確率は、ｗ１／（ｗ１＋ｗ２＋ｗ３）となる。本実施の形態に従うコミュニティ構造検出処理を重み付きグラフへ適用する場合には、遷移先を確率的に決定する処理を除いて、上述した処理と同様の処理を実行してもよい。
【０１３５】
［Ｈ．実験結果］
次に、本実施の形態に従う画像クラスタリングシステムによるクラスタリング性能について評価した実験結果の一例について説明する。
【０１３６】
（ｈ１：実験手法）
被写体として、「東大寺」、「日光東照宮」、「法隆寺」を想定し、クリエイティブコモンズライセンスの下で公開されている画像を収集した。具体的には、「東大寺」については、検索タームとして"todaiji"を入力して検索された４０１５枚の画像を用い、「日光東照宮」については、検索タームとして"toshoguを入力して検索された３８０８枚の画像を用い、「法隆寺」については、検索タームとして"horyuji"を入力して検索された１１０２枚の画像を用いた。
【０１３７】
そして、非特許文献２に開示される方法に従って、収集された画像の一部（東大寺：５００枚、日光東照宮：５００枚、法隆寺：２００枚）を用いてvocabulary tree（非特許文献２参照）を学習した上で、このvocabulary treeを用いて、それぞれの被写体についてのマッチグラフを生成した。「東大寺」のマッチグラフは３５１５個の頂点を含み、「日光東照宮」のマッチグラフは３３０８個の頂点を含み、「法隆寺」のマッチグラフは９０２個の頂点を含むものとなった。
【０１３８】
これらの３種類のマッチグラフに対して、本実施の形態に従うコミュニティ構造検出手法を含むいくつかの手法をそれぞれ適用した。例えば、「東大寺」に関連付けられた画像としては、「大仏殿」、「中門」、「木造金剛力士立像（吽形、阿形）」、「盧舎那仏像（大仏）」、「虚空蔵菩薩坐像」、「南大門」などをそれぞれ撮影したものが含まれており、これらの被写体をクラスタリングする性能を評価した。
【０１３９】
生成されたマッチグラフは、有向グラフとなるが、これを無向グラフとみなしても評価を行なった。それぞれの実験条件は以下の通りである。
【０１４０】
・実施例１（有向グラフ）：生成されたマッチグラフ（有向グラフ）に対して、図９に示すフローチャートに従ってコミュニティ構造検出を実行（所定試行回数：１００回、異常値の除外処理の所定比率：０．２、類似度を評価するためのしきい値：０．４）。
【０１４１】
・実施例２（One-way無向グラフ）：生成されたマッチグラフ（有向グラフ）について、ある頂点から別の頂点への辺がいずれか一方向でも存在すれば、有向の辺の代わりに、当該頂点同士を無向の辺で接続して、無向グラフを生成。生成された無向グラフの各連結成分をクラスタとみなす。
【０１４２】
・実施例３（Two-way無向グラフ）：生成されたマッチグラフ（有向グラフ）について、ある頂点から別の頂点への接続が双方向に存在する場合に限って、有向の辺の代わりに、当該頂点同士を無向の辺で接続し、無向グラフを生成。生成された無向グラフの各連結成分をクラスタとみなす。
【０１４３】
・実施例４（Spin glass）：生成されたマッチグラフ（有向グラフ）に対して、非特許文献４に開示される手法（Spin glass法）に従ってコミュニティ構造検出を実行。
【０１４４】
・実施例５（Infomap）：生成されたマッチグラフ（有向グラフ）に対して、非特許文献５に開示される手法（Infomap法）に従ってコミュニティ検出構造検出を実行。
【０１４５】
（ｈ２：実験結果）
評価指標としては、Global Purity、Inverse Purity、F-measureの３つを用いた。Global Purityは、検出された各コミュニティにおいて、最も多いクラスに属する要素の比率の加重平均であり、この値が大きいほど、他のクラスに属する要素（ノイズ）が混在している比率が低いことを意味する。Inverse Purityは、各ラベルで定められた要素の各クラスタ（コミュニティ）における比率の加重平均である。F-measureは、Global PurityとInverse Purityとの調和平均である。
【０１４６】
図１１は、本実施の形態に従うコミュニティ構造検出手法の性能評価の実験結果の一例を示す図である。図１１（Ａ）は「東大寺」についてのマッチグラフに対する実験結果の一例を示し、図１１（Ｂ）は「日光東照宮」についてのマッチグラフに対する実験結果の一例を示し、図１１（Ｃ）は「法隆寺」についてのマッチグラフに対する実験結果の一例を示す。
【０１４７】
図１１（Ａ）〜（Ｃ）に示すように、本実施の形態に従うコミュニティ構造検出手法をマッチグラフ（有向グラフ）に適用する（実施例１）ことで、他の方法（実施例２〜５）に比較して、より高いF-measureを得ることができた。すなわち、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを生成し、このようなマッチグラフに対してコミュニティ構造検出手法を適用して、コミュニティを検出することで、十分に実用的な画像クラスタリングが実現できると言える。そして、コミュニティ構造検出手法の中でも、上述したような本実施の形態に従うコミュニティ構造検出手法を採用することで、より高いクラスタリングの精度を得られると言える。
【０１４８】
［Ｉ．応用例］
次に、本実施の形態に従うコミュニティ構造検出手法を応用したいくつかのシステムについて例示する。
【０１４９】
（ｉ１：自動ラベリングシステム）
本実施の形態に従うコミュニティ構造検出手法の応用例として、画像に対する自動ラベリングシステムについて説明する。
【０１５０】
図１２は、本実施の形態に従うコミュニティ構造検出手法を利用した自動ラベリングシステムの構成例を示す模式図である。図１２を参照して、自動ラベリングシステム５００は、本実施の形態に従うコミュニティ構造検出手法などの処理を実行するサーバ装置５１０を含む。
【０１５１】
サーバ装置５１０は、ネットワーク５３０を介して、ＳＮＳ（Social Network Service）サーバ装置５２０、画像投稿サイトサーバ装置５２２、検索エンジン５２４などとの間で、データの遣り取りが可能に構成されている。サーバ装置５１０は、ＳＮＳサーバ装置５２０、画像投稿サイトサーバ装置５２２、検索エンジン５２４などから任意の画像５１２を収集し、これらの収集した画像５１２を、その被写体別に分類（コミュニティの特定）するとともに、分類によって得られたクラスタ（コミュニティ）に対して、ラベルを付与する。
【０１５２】
具体的には、サーバ装置５１０は、クラスタリングエンジン５１６を有しており、クラスタリングエンジン５１６は、収集された画像５１２に対して、図２に示す画像クラスタリングを実行する。これによって、画像５１２に含まれる同一の被写体を撮影したと想定されるクラスタ（コミュニティ）５１８を決定する。
【０１５３】
画像５１２に撮影日時、撮影場所、コメントなどのメタ情報が付与されている場合には、これらのメタ情報５１４についても収集される。収集されたメタ情報に基づいて、サーバ装置５１０は、決定されたクラスタ５１８に対してラベルを付与する。
【０１５４】
このように、ラベルが付与されたクラスタ５１８には、当該付与されたラベルによって示される被写体を撮影することで得られた画像が含まれることになる。
【０１５５】
このような自動ラベリングシステム５００を採用することで、大量の画像をそれに写っている被写体毎にクラスタリングする作業が容易化される。このようなクラスタリングは、例えば、観光地のガイドをビジュアル的に行なうような場合に有益である。
【０１５６】
（ｉ２：画像検索システム）
図１２に示すような自動ラベリングシステム５００によって生成された画像データベースを用いて、画像検索システムを提供することもできる。
【０１５７】
図１３は、本実施の形態に従うコミュニティ構造検出手法を利用した画像検索システムの構成例を示す模式図である。図１３を参照して、画像検索システム５５０は、ネットワーク５８０を介して、端末装置５７０からのアクセスが可能なサーバ装置５６０を含む。
【０１５８】
例えば、端末装置５７０は、スマートフォンやタブレットなどの携帯型デバイスであり、ユーザがいずれかの場所を観光で訪れたときに、何らかの被写体を撮影し、その撮影した画像５７２をサーバ装置５６０へ送信したとする。
【０１５９】
端末装置５７０からの問合せ画像５７２がサーバ装置５６０により受信されると、サーバ装置５６０の画像検索エンジン５６２が、予め用意している画像データベース５６４を参照して、問合せを受けた画像と一致する画像を検索する。画像データベース５６４には、被写体毎に複数の画像がクラスタ化されており、各クラスタには、被写体を示すラベルが付与されているとする。
【０１６０】
画像検索エンジン５６２は、入力された画像５７２と一致する画像を画像データベース５６４内から見つけると、その見つけた画像に付与されているラベル、および、当該ラベルに関連付けられる情報を端末装置５７０へ回答する。例えば、画像５７２の被写体に関連する歴史などの情報を回答するようにしてもよい。このように、画像検索エンジン５６２は、外部から問合せ対象の画像を受信すると、当該受信した画像に対応する入力画像を各クラスタに含まれる入力画像の集合から検索するととともに、対応する入力画像が属するクラスタの情報（ラベルや関連する情報）を応答する。
【０１６１】
このような画像検索システム５５０を用いることで、観光地での自動ガイダンスを提供することができる。観光客が訪問先で何らかの物体を撮影してサーバ装置５６０へ送信すると、被写体となった物体がどのような名前であるか、その歴史、または、別の季節あるいはアングルで撮影された他の画像などが表示されるようなサービスを提供してもよい。
【０１６２】
（ｉ３：その他）
上述の図１２および図１３に示すシステムは、本実施の形態に従うコミュニティ構造検出手法の応用例の一部に過ぎず、これらに限定されるものではない。本実施の形態に従うコミュニティ構造検出手法は、要素間の繋がりをグラフの形で表現できるものであれば、どのようなものにも適用可能である。
【０１６３】
［Ｊ．結論］
本実施の形態に従う画像クラスタリングシステムによれば、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフに対して、コミュニティ構造検出手法を適用することで、ラベルが付与されていない入力画像の集合であっても、被写体毎の自動的な分類が可能となる。
【０１６４】
本実施の形態に従うコミュニティ構造検出手法によれば、グラフ（典型的には、マッチグラフ）に対する各頂点を出発点とするランダムウォークによって得られた通過履歴の類似性に基づいて、グラフ内のコミュニティを特定する。通過履歴同士の類似性を示す値（類似度）を正規化された具体的な数値として算出できるので、類似度に対する取扱いが直感的に理解し易い。すなわち、この算出された類似度に対するしきい値などを任意に設定することで、コミュニティとして検出されるために必要な繋がりの強さを任意に調整することができる。このような繋がりの強さを任意に調整できることで、コミュニティ構造の検出結果を参照しながら、対象のデータ集合に応じて、より好ましい検出結果となるように、インタラクティブに調整することができる。
【０１６５】
また、本実施の形態に従うコミュニティ構造検出手法によれば、コミュニティ構造検出処理の結果を参照しながら、ランダムウォークの実行に係る所定ステップ数および所定試行回数についてインタラクティブに調整することができる。そのため、対象のデータ集合に応じて、より好ましい検出結果となるような調整を任意に行なうことができる。
【０１６６】
また、本実施の形態に従うコミュニティ構造検出手法によれば、無向グラフおよび有向グラフのいずれにも適用することができ、さらに、重み付きグラフについても適用可能である。そのため、対象のデータ集合に応じた関連付けの手法を採用してマッチグラフさえ生成できれば、どのようなマッチグラフに対しても適用が可能である。すなわち、汎用性の高い新規なコミュニティ構造検出の手法を実現できる。
【０１６７】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６８】
２，１３０  入力画像群、４，６，５１８  クラスタ、１０，５１６  クラスタリングエンジン、１００  クラスタリングシステム、１０２  プロセッサ、１０４  主メモリ、１０６  ディスプレイ、１０８  入力デバイス、１１０  ネットワークインターフェイス、１１２  光学ドライブ、１１４  光学ディスク、１１６  内部バス、１２０  補助記憶装置、１２２  画像マッチングプログラム、１２４  画像クラスタリングプログラム、１２６  検索プログラム、１５２  選択モジュール、１５４  画像マッチングモジュール、１５６  マッチグラフ生成モジュール、１５８  コミュニティ構造検出モジュール、１６０  ランダムウォークモジュール、１６２  類似度算出モジュール、１６４  関連付けモジュール、１６６  出力モジュール、２００  マッチグラフ、３０２，３０４，３０６  入力画像、３１１〜３１８，３２１〜３２８  特徴点、５００  自動ラベリングシステム、５１０，５６０  サーバ装置、５１２，５７２  画像、５１４  メタ情報、５２０  ＳＮＳサーバ装置、５２２  画像投稿サイトサーバ装置、５２４  検索エンジン、５３０，５８０  ネットワーク、５５０  画像検索システム、５６２  画像検索エンジン、５６４  画像データベース、５７０  端末装置。
【図１】
0006757913.tif 000004
【図２】
0006757913.tif 000005
【図３】
0006757913.tif 000006
【図４】
0006757913.tif 000007
【図５】
0006757913.tif 000008
【図６】
0006757913.tif 000009
【図７】
0006757913.tif 000010
【図８】
0006757913.tif 000011
【図９】
0006757913.tif 000012
【図１０】
0006757913.tif 000013
【図１１】
0006757913.tif 000014
【図１２】
0006757913.tif 000015
【図１３】
0006757913.tif 000016