【文献】
飯田 恭弘,大規模グラフ構造データからのコミュニティ抽出と重要度計算 −高速化への取組みと応用−,人工知能,日本,(一社)人工知能学会,2014年 9月 1日,第29巻 第5号,472−479ページ
(58)【調査した分野】(Int.Cl.,DB名)
入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを取得する取得手段を備え、前記マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含み、
前記マッチグラフの構造に基づいて入力画像同士を互いに関連付けるコミュニティ構造検出手段と、
互いに関連付けられた入力画像の集合をクラスタとして出力する出力手段とを備え、
前記コミュニティ構造検出手段は、
前記マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘って前記マッチグラフ内を順次移動して、移動に係る通過履歴を取得する試行手段と、
前記試行手段により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける関連付け手段とを含む、画像クラスタリングシステム。
外部から問合せ対象の画像を受信すると、当該受信した画像に対応する入力画像を各クラスタに含まれる入力画像の集合から検索するととともに、対応する入力画像が属するクラスタの情報を応答する検索手段をさらに備える、請求項1に記載の画像クラスタリングシステム。
【発明を実施するための形態】
【0020】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0021】
[A.概要]
まず、本実施の形態に従うコミュニティ構造検出手法および当該コミュニティ構造検出手法を応用した画像クラスタリングの概要について説明する。
【0022】
図1は、本実施の形態に従うコミュニティ構造検出手法を応用した画像クラスタリング手法を説明するための模式図である。
図1を参照して、本実施の形態に従うコミュニティ構造検出手法を実現するクラスタリングエンジン10に対して、複数の入力画像からなる入力画像群2を入力すると、入力画像群2に含まれる入力画像をその画像の内容に基づいてクラスタリングして、その結果を出力する。
【0023】
図1に示す例においては、入力画像群2は、「東大寺大仏殿」を異なる撮影条件(季節、時間帯、画角、アングルなど)で撮影した3枚の入力画像と、「平等院鳳凰堂」を異なる撮影条件で撮影した3枚の入力画像とを含むとする。これらの入力画像群2がクラスタリングエンジン10に入力されることで、「東大寺大仏殿」に係る入力画像のクラスタ4と、「平等院鳳凰堂」に係る入力画像のクラスタ6とに分離される。
【0024】
図1に示すように、本実施の形態に従うコミュニティ構造検出手法を入力画像群に適用することで、複数の入力画像のうちから、同一の被写体を異なる撮影条件でそれぞれ撮影した画像の部分集合を抽出することができる。
図1には、説明の便宜上、複数の画像をクラスタリングする場合の処理例を挙げたが、これに限らず、任意の要素についてクラスタリングすることができる。但し、以下では、説明の便宜上、複数の画像をクラスタリングする場合の処理について説明する。
【0025】
一般的には、「クラスタリング」および「コミュニティ構造検出」は、同義で使用されることもあるが、本明細書においては、主として、「コミュニティ構造検出」との用語は、後述するマッチグラフにおいて同一のコミュニティに属する要素を探索する処理の意味で用い、「クラスタリング」との用語は、入力された要素集合(本実施の形態においては、画像)から何らかの指標に基づいて部分集合に分類する処理の意味で用いる。
【0026】
[B.全体処理手順]
次に、本実施の形態に従うコミュニティ構造検出手法を応用した画像クラスタリング処理の手順について説明する。
【0027】
図2は、本実施の形態に従う画像クラスタリングの全体処理手順を示すフローチャートである。
図2に示す各ステップは、後述するような、情報処理装置がプログラムを実行することなどによって実現される。
図2を参照して、クラスタリング対象の複数の入力画像を取得する処理が実行される(ステップS2)。続いて、取得されたクラスタリング対象の複数の入力画像間でマッチングの有無を判断する処理が実行され(ステップS4)、その実行結果に基づいて、入力画像間の関係を示すグラフ(以下では、「マッチグラフ」とも称す。)を生成する処理が実行される(ステップS6)。マッチングの有無を評価する処理の一例として、本実施の形態においては、任意の画像マッチング手法を採用できる。
【0028】
このようなステップS2〜S6において、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフが取得される。マッチグラフは、入力画像の各々に対応する頂点と、マッチングすると判断された入力画像同士に対応する頂点同士を接続する辺とを含む。マッチグラフの詳細については、後述する。なお、ステップS2〜S6の処理を外部装置で実行し、マッチグラフのみを当該外部装置から取得するようにしてもよい。
【0029】
生成されたマッチグラフに対して、それに含まれるコミュニティを検出するコミュニティ構造検出処理が実行される。すなわち、マッチグラフの構造に基づいて頂点同士の密接の度合い(この場合には、各入力画像と他の入力画像との間の密接(マッチング)の度合い)を評価する処理が実行される(ステップS8)。そして、密接の度合いの評価結果に基づいて、入力画像群に含まれる入力画像同士を互いに関連付ける処理が実行される(ステップS10)。
【0030】
マッチグラフを構成する頂点間(入力画像同士)を互いに関連付ける処理としては、任意のコミュニティ構造検出手法を採用することができる。このようなコミュニティ構造検出手法としては、例えば、非特許文献4に開示される手法(Spin glass法)、および、非特許文献5に開示される手法(Infomap法)などが挙げられる。すなわち、コミュニティ構造検出手法としては公知の手法を採用することができるが、本実施の形態においては、主として、本願発明者らが新たに発明したコミュニティ構造検出手法である「ランダムウォーク類似度法」を採用した場合の処理について説明する。
【0031】
ランダムウォーク類似度法では、ステップS8において、マッチグラフに含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってマッチグラフ内を順次移動して、移動に係る通過履歴が取得される。そして、ステップS8の試行により取得される各頂点を出発点とする通過履歴同士の類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける処理が実行される。ランダムウォーク類似度法の詳細については、後述する。なお、本願発明者らが新たに発明したランダムウォーク類似度法は、マッチグラフに限らず、任意のグラフに含まれるコミュニティを検出することができる。
【0032】
最終的に、互いに関連付けられた入力画像の集合をクラスタ(コミュニティ)として出力する処理が実行される(ステップS12)。すなわち、同一のコミュニティに属すると判断された入力画像の集合がクラスタリング結果として出力される。そして、画像クラスタリングの処理は終了する。
【0033】
出力されたクラスタリング結果に基づいて、画像検索や各種情報の検索がさらに実行されるようにしてもよい。
【0034】
[C.クラスタリングシステムのハードウェア構造]
次に、本実施の形態に従う画像クラスタリングを実現するためのクラスタリングシステムのハードウェア構成の一例について説明する。
【0035】
図3は、本実施の形態に従うクラスタリングシステムのハードウェア構成の一例を示す模式図である。
図3に示す、クラスタリングシステム100は、典型的には、パーソナルコンピュータなどの汎用コンピュータを用いて実現される。より具体的には、クラスタリングシステム100は、主要なハードウェアコンポーネントとして、プロセッサ102と、主メモリ104と、ディスプレイ106と、入力デバイス108と、ネットワークインターフェイス(I/F:interface)110と、光学ドライブ112と、補助記憶装置120とを含む。これらのコンポーネントは、内部バス116を介して互いに接続される。
【0036】
プロセッサ102は、後述するような各種プログラムを実行することで、本実施の形態に従う画像クラスタリングなどに必要な処理を実現する演算主体であり、例えば、1または複数のCPU(Central Processing Unit)やGPU(Graphics Processing Unit)などで構成される。複数のコアを有するようなCPUまたはGPUを用いてもよい。
【0037】
主メモリ104は、プロセッサ102がプログラムを実行するにあたって、プログラムコードやワークメモリなどを一時的に格納する記憶領域であり、例えば、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性メモリデバイスなどで構成される。
【0038】
ディスプレイ106は、処理に係るユーザインターフェイスや処理結果などを出力する表示部であり、例えば、LCD(Liquid Crystal Display)や有機EL(electroluminescence)ディスプレイなどで構成される。入力デバイス108は、ユーザからの指示や操作などを受付けるデバイスであり、例えば、キーボード、マウス、タッチパネル、ペンなどで構成される。
【0039】
ネットワークインターフェイス110は、インターネット上またはイントラネット上の任意の情報処理装置などとの間でデータを遣り取りするためのコンポーネントであり、例えば、イーサネット(登録商標)、無線LAN(Local Area Network)、Bluetooth(登録商標)などの任意の通信方式を採用できる。
【0040】
光学ドライブ112は、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)などの光学ディスク114に格納されている情報を読出して、内部バス116を介して他のコンポーネントへ出力する。光学ディスク114は、非一過的(non-transitory)な記録媒体の一例であり、任意のプログラムを不揮発的に格納した状態で流通する。光学ドライブ112が光学ディスク114からプログラムを読み出して、補助記憶装置120などにインストールすることで、パーソナルコンピュータなどの汎用コンピュータがクラスタリングシステム100として機能するようになる。したがって、本発明の主題は、補助記憶装置120などにインストールされたプログラム自体、または、本実施の形態に従う処理を実現するためのプログラムを格納した光学ディスク114などの記録媒体でもあり得る。
【0041】
図3には、非一過的な記録媒体の一例として、光学ディスク114などの光学記録媒体を示すが、これに限らず、フラッシュメモリなどの半導体記録媒体、ハードディスクまたはストレージテープなどの磁気記録媒体、MO(Magneto-Optical disk)などの光磁気記録媒体を用いてもよい。
【0042】
補助記憶装置120は、プロセッサ102にて実行されるプログラム、プログラムが処理対象とする入力データ、および、プログラムの実行により生成される出力データなどを格納するコンポーネントであり、例えば、ハードディスク、SSD(Solid State Drive)などの不揮発性記憶装置で構成される。より具体的には、補助記憶装置120には、典型的には、図示しないOS(Operating System)の他、画像マッチングプログラム122、画像クラスタリングプログラム124、検索プログラム126、および、入力画像130が格納される。
【0043】
また、画像マッチングプログラム122、画像クラスタリングプログラム124、および、検索プログラム126をプロセッサ102で実行する際に必要となるライブラリや機能モジュールの一部を、OSが標準で提供するライブラリまたは機能モジュールを用いて代替するようにしてもよい。この場合には、画像クラスタリングプログラム124、および、検索プログラム126の各単体は、本実施の形態に従う画像クラスタリングを実現するために必要なプログラムモジュールのすべてが含まれることにはならないが、OSの実行環境下にインストールされることで、本実施の形態に従う画像クラスタリングを実現できる。このような一部のライブラリまたは機能モジュールを含まないプログラムであっても、本発明の技術的範囲に含まれ得る。
【0044】
画像マッチングプログラム122、画像クラスタリングプログラム124、および、検索プログラム126は、上述したようないずれかの記録媒体に格納されて流通するだけでなく、インターネットまたはイントラネットを介してサーバ装置などからダウンロードすることで配布されてもよい。
【0045】
図3には、単一の情報処理装置がクラスタリングシステム100を構成する例を示すが、これに限らず、ネットワークを介して接続された複数の情報処理装置が明示的または黙示的に連携して、本実施の形態に従う画像クラスタリングを実現するようにしてもよい。
【0046】
補助記憶装置120には、クラスタリング対象の入力画像からなる入力画像群130が格納されてもよい。あるいは、補助記憶装置120に格納される入力画像群130をネットワーク上の1または複数のサーバ装置に格納するようにしてもよい。
【0047】
さらに、コンピュータ(プロセッサ102)がプログラムを実行することで実現される機能の全部または一部を、集積回路などのハードワイヤード回路(hard-wired circuit)を用いて実現してもよい。例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)などを用いて実現してもよい。
【0048】
当業者であれば、本発明が実施される時代に応じた技術を適宜用いて、本実施の形態に従う画像クラスタリングを実現できるであろう。
【0049】
[D.クラスタリングシステムのソフトウェア構造]
次に、本実施の形態に従う画像クラスタリングを実現するためのクラスタリングシステムのソフトウェア構成の一例について説明する。
【0050】
図4は、本実施の形態に従うクラスタリングシステム100のソフトウェア構成の一例を示す模式図である。
図4を参照して、クラスタリングシステム100は、主要なソフトウェアコンポーネントとして、選択モジュール152と、画像マッチングモジュール154と、マッチグラフ生成モジュール156と、コミュニティ構造検出モジュール158と、出力モジュール166とを含む。これらのソフトウェアコンポーネントは、
図3に示すプロセッサ102が画像マッチングプログラム122および画像クラスタリングプログラム124を実行することで提供される。
【0051】
選択モジュール152および画像マッチングモジュール154は、任意の入力画像間について、マッチングの有無を評価する。具体的には、選択モジュール152は、補助記憶装置120に格納されるクラスタリング対象の入力画像群130に含まれる任意の入力画像と、それ以外の入力画像とを選択し、画像マッチングモジュール154へ与える。画像マッチングモジュール154は、選択モジュール152から与えられる2つの入力画像の間で画像マッチング処理を実行し、当該入力画像間で同一または類似の特徴点を探索する処理(特徴点マッチング処理)を実行する。画像マッチングモジュール154は、任意の2つの入力画像間についての特徴点マッチング処理の結果をマッチグラフ生成モジュール156へ出力する。入力画像130の様々な組み合わせについて、上述したような選択モジュール152および画像マッチングモジュール154による処理が繰返し実行される。
【0052】
マッチグラフ生成モジュール156は、画像マッチングモジュール154からの特徴点マッチング処理の結果と、当該特徴点マッチング処理の結果の対象となった入力画像の組の情報(画像選択情報)とに基づいて、入力画像間の関係を表現したグラフである、マッチグラフ200を生成する。
【0053】
図4に示す構成において、選択モジュール152、画像マッチングモジュール154、および、マッチグラフ生成モジュール156は、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフ200を取得する取得手段に相当する。
【0054】
コミュニティ構造検出モジュール158は、マッチグラフ生成モジュール156により生成されたマッチグラフ200に対して、本実施の形態に従うコミュニティ構造検出手法を適用し、マッチグラフ200に含まれる要素(すなわち、入力画像)からコミュニティを検出する。より具体的には、コミュニティ構造検出モジュール158は、ランダムウォークモジュール160と、類似度算出モジュール162と、関連付けモジュール164とを含む。
【0055】
なお、コミュニティ構造検出モジュール158の代替の構成として、公知のコミュニティ構造検出手法によりコミュニティを検出するようなモジュールを採用してもよい。
【0056】
ランダムウォークモジュール160は、マッチグラフ200に含まれる各頂点を出発点として、接続されている辺を確率的に選択しつつ、所定ステップ数に亘ってマッチグラフ200内を順次移動して、移動に係る通過履歴を取得する試行機能を提供する。類似度算出モジュール162は、ランダムウォークモジュール160により取得される各頂点を出発点とする通過履歴同士の類似度を算出する。関連付けモジュール164は、類似度算出モジュール162により算出される類似度に基づいて、互いに関連付けられる通過履歴を決定するとともに、当該互いに関連付けられる通過履歴の出発点にそれぞれ対応する入力画像同士を互いに関連付ける。
【0057】
出力モジュール166は、コミュニティ構造検出モジュール158によって互いに関連付けられた入力画像の集合をクラスタ(クラスタリング結果)として出力する。出力モジュール166は、各クラスタに含まれる入力画像に対して、属性情報を付加してもよい。
【0058】
[E.マッチグラフの生成処理]
次に、本実施の形態に従うマッチグラフ200の生成処理について説明する。
【0059】
(e1:マッチグラフ)
図5は、本実施の形態に従うクラスタリングシステム100により生成されるマッチグラフ200の一例を示す模式図である。なお、
図5に示すマッチグラフそのものが視覚化されている必要はなく、クラスタリングシステム100内部で論理的に生成されるようなものであってもよい。
【0060】
図5(A)を参照して、マッチグラフ200は、複数の頂点210および頂点210間のマッチングの有無を示す1または複数の辺212とからなる。頂点210の各々は、クラスタリング対象の入力画像の各々に対応する。すなわち
図5(A)には、画像Aから画像Lまで12枚の入力画像に関するマッチグラフ200を示す。辺212の各々は、その辺が接続する2つの頂点(をそれぞれ示す入力画像)間がマッチングすることを表現する。
【0061】
図5(A)には、一例として、辺212が方向の情報をもつ有向グラフの例を示す。画像クラスタリングシステムにおいては、マッチグラフ200の辺212は、隣接する2つの頂点210がそれぞれ示す入力画像間の画像マッチング処理の結果を示す。
【0062】
本実施の形態に従うコミュニティ構造検出手法および画像クラスタリングにおいて処理するマッチグラフに類似したグラフは、非特許文献2に開示されている。但し、非特許文献2は、3次元形状への復元を目的に、マッチグラフを利用する構成を開示するのみであり、本実施の形態において説明するような画像クラスタリングに用いることは何ら想定されていない。
【0063】
しかしながら、本願発明者らの鋭意研究により、マッチグラフを画像クラスタリングに応用できるという新規な着想に想到した。すなわち、本願発明者らは、マッチグラフの連結成分は、主として、同一の被写体が写った画像で構成されると推測した。そこで、大量の画像を用いて実際に実験したところ、互いに異なる被写体が写った画像からなる連結成分ができてしまうという課題に直面した。本願発明者らが分析すると、画像間で誤マッチングが発生することが原因であることがわかった。さらに、分析を進めると、画像間での誤マッチングの発生頻度は相対的に低く、同一の被写体が写った画像(マッチグラフ内の頂点)間の接続は密であり、異なる被写体が写った画像(マッチグラフ内の頂点)間の接続は疎であることがわかった。このような実験で得られた知見に基づいて、本願発明者らは、コミュニティ検出手法をマッチグラフに適用することで、接続が密な頂点の集合をコミュニティとして分類し、それぞれの分類されたコミュニティから同一の被写体が写った画像の集合をクラスタ化することに成功した。以下、マッチグラフの生成方法およびマッチグラフに対するコミュニティ構造検出処理などについて説明する。
【0064】
(e2:画像マッチング方法)
画像マッチング方法としては、任意の手法を採用することができる。本実施の形態においては、一例として、画像マッチング処理として、入力画像間で対応する特徴点を探索する処理を採用する。より具体的には、非特許文献3に詳述されるような、局所的な画像特徴量を用いる方式などを採用する。
【0065】
画像マッチング処理は、
図3に示すプロセッサ102が画像マッチングプログラム122を実行することで実現される。また、
図4に示すソフトウェアコンポーネントのうち、画像マッチングモジュール154がこの画像マッチング処理を担当する。
【0066】
図5(A)に示すマッチグラフ200に示す例では、頂点Aから頂点Eに向けて辺212が存在しており、これは、頂点Aに対応する入力画像Aを参照画像(基準画像)とし、頂点Eに対応する入力画像Eを対象画像とした場合に、当該画像間に対応する特徴点が見つかったことを意味する。
【0067】
一方、
図5(A)に示すマッチグラフ200に示す例では、頂点Eから頂点Aに向けての辺は存在しておらず、これは、頂点Eに対応する入力画像Eを参照画像(基準画像)とし、頂点Aに対応する入力画像Aを対象画像とした場合には、当該画像間に対応する特徴点が見つからなかったことを意味する。
【0068】
このように、画像マッチング処理において、第1の入力画像が参照画像とされ、第2の入力画像が対象画像とされたときに、マッチングすると判断されたことに基づいて、マッチグラフ200において、第1の入力画像に対応する頂点から第2の入力画像に対応する頂点へ向けた辺が設けられるようにしてもよい。このような有向グラフであるマッチグラフ200を採用することで、クラスタリング精度を高めることができる。
【0069】
上述の説明においては、有向グラフを例示したが、本実施の形態に従うコミュニティ構造検出手法は、辺212が方向の情報をもたない、無向グラフにも適用可能である。
【0070】
クラスタリング対象の入力画像群に含まれる2つの入力画像の組み合わせのすべてについて画像マッチング処理を行なうことで、
図5(A)に示すようなマッチグラフが生成される。
図5(A)に視覚的に示されるマッチグラフを見れば、3つのコミュニティが含まれることを暗に知ることができるが、本実施の形態に従うクラスタリングシステム100は、このようなクラスタリングを後述するような手法で実現する。すなわち、
図5(A)に示すようなマッチグラフ200に対して、本実施の形態に従うコミュニティ構造検出手法を適用することで、
図5(B)に示すようなコミュニティ検出結果が得られる。
【0071】
図5(B)に示すようなコミュニティ検出結果に基づいて、頂点A〜Eにそれぞれ対応する入力画像A〜Eが同一の被写体を撮影した入力画像群(コミュニティ1)であり、頂点F〜Hにそれぞれ対応する入力画像F〜Hが別の同一の被写体を撮影した入力画像群(コミュニティ2)であり、頂点I〜Lにそれぞれ対応する入力画像I〜Lがさらに別の同一の被写体を撮影した入力画像群(コミュニティ3)である。
【0072】
なお、
図5に示すマッチグラフ200において、コミュニティ2に属する頂点Gからコミュニティ1に属する頂点Eまでに辺214が存在している。この辺214は、頂点Gに対応する入力画像Gと頂点Eに対応する入力画像Eとの間で画像の誤マッチングが生じたことを意味する。画像マッチング処理においては、このような誤った特徴点間の対応による画像の誤マッチングが生じ得るが、本実施の形態に従うコミュニティ構造検出手法では、このような誤マッチングの除去についても、任意のレベルで行なうことができる。
【0073】
本実施の形態に従うコミュニティ構造検出手法を画像クラスタリングに適用する場合には、マッチグラフは、入力画像を頂点とし、当該入力画像から抽出された特徴点との間でマッチング関係が成立する入力画像(頂点)同士を向きのある辺で接続したグラフである。
【0074】
図6は、本実施の形態に従うクラスタリングシステム100における画像マッチングの処理結果の一例を示す模式図である。
図6(A)には、同一の被写体を撮影した2つの入力画像に対する画像マッチング処理の実行結果(適切なマッチング)の一例を示し、
図6(B)には、異なる被写体を撮影した2つの入力画像に対する画像マッチング処理の実行結果(誤マッチング)の一例を示す。
【0075】
図6(A)に示すように、参照画像とされた入力画像302に含まれる特徴点および対象画像とされた入力画像304に含まれる特徴点がそれぞれ抽出される。それぞれの入力画像から抽出された特徴点のうち、参照画像(入力画像302)から抽出された特徴点311〜314が対象画像(入力画像304)から抽出された特徴点315〜318と、それぞれ一致すると判断された例を示す。なお、抽出された特徴点の特徴量の類似度などに基づいて、入力画像間で対応する特徴点の対が抽出および探索される。
【0076】
一方、
図6(B)に示すように、異なる被写体を撮影して得られた入力画像302および306のそれぞれから抽出された特徴点の組が、一致すると誤って判断される場合もある。
図6(B)に示す例では、参照画像(入力画像302)から抽出された特徴点321〜324が対象画像(入力画像306)から抽出された特徴点325〜328と、それぞれ一致すると誤って判断されている。
【0077】
マッチグラフの連結成分は、主として、同一の被写体を撮影して得られた入力画像から構成されると想定される。しかしながら、
図6(B)に示すような特徴点の誤マッチングにより、
図5に示す、異なるコミュニティ間を接続する辺214のように、異なる被写体を撮影した入力画像を含む連結成分も生じ得る。
【0078】
但し、全体的に見れば、誤マッチングが生じる可能性は低いので、同一の被写体を撮影して得られた入力画像を示す頂点同士の繋がりは密になり、異なる被写体を撮影して得られた入力画像同士の繋がりは疎になる。
【0079】
このような連結成分に対して、本実施の形態に従うコミュニティ構造検出手法を適用することで、被写体毎の画像クラスタリングをより確実に実現できる。すなわち、誤マッチングによるノイズについては、後述するようなコミュニティ構造検出処理によって、その影響を任意のレベルで除去することができる。
【0080】
図5には、マッチグラフとして有向グラフを例示するが、各矢印は、始点にある頂点に対応する入力画像を参照画像とし、終点にある頂点に対応する入力画像を対象画像とした上で、画像マッチング処理を実行したときに、画像間にマッチングする特徴点が存在することを意味する。上述の非特許文献3に開示される、特徴点に基づく画像マッチング方法を採用した場合には、入力画像Aの特徴点にマッチングする特徴点が入力画像Bに存在するからといって、その逆が成立するとは限らないためである。
【0081】
図7は、
図5に示すマッチグラフに対応する画像マッチングの処理結果の一例を示す図である。
図7に示すように、クラスタリングシステム100は、クラスタリング対象の入力画像群130に含まれる2つの入力画像の組み合わせのすべてについて画像マッチング処理を行なう。
図7において、「Y」は、2つの入力画像間に対応する特徴点が見つかったことを意味する。
図7に示すような画像マッチングの処理結果に基づいて、
図5に示すようなマッチグラフが生成される。
【0082】
なお、2つの入力画像について、一方の入力画像を参照画像(基準画像)として、他方の入力画像を対象画像として画像マッチング処理を実行し、参照画像と対象画像とを入れ替えても画像マッチング処理を実行し、いずれかの画像マッチング処理において対応する特徴点が見つかれば、マッチングすると判断して、それらの入力画像をそれぞれ示す頂点の間に辺を設けるようにしてもよい。
【0083】
また、後述するコミュニティ構造検出手法において、入力画像間のマッチングの有無に加えて、2つの入力画像間で対応付けられた特徴点の数、対応付けられた特徴点の類似度の大きさ、対応付けられた特徴点についての信頼度、などの付加情報をさらに用いてもよい。このような付加情報を算出できる画像マッチング方法を採用した場合には、これらの付加情報についても併せて格納する。このような付加情報は、例えば、マッチグラフの各辺に対する重みとして反映されてもよい。
【0084】
(e3:無向グラフ)
無向グラフを用いる場合には、いずれの頂点を辺で接続するかという点において、上述したような特徴点マッチング処理の特性を考慮することが好ましい。例えば、ある2つの入力画像について、一方を参照画像とし、他方を対象画像とした場合に、対応する特徴点が見つかり、その逆の場合も対応する特徴点が見つかったときに限って、それら2つの入力画像にそれぞれ対応する2つの頂点間を接続する辺を設けるという方法を採用してもよい。
【0085】
あるいは、いずれか一方の入力画像を参照画像とした場合に、対応する特徴点が見つかれば、それら2つの入力画像を辺で接続することにしてもよい。
【0086】
[F.コミュニティ構造検出処理]
次に、本実施の形態に従うコミュニティ構造検出処理について説明する。
【0087】
(f1:コミュニティ構造検出処理の全体処理)
本実施の形態に従うコミュニティ構造検出処理(ランダムウォーク類似度法)においては、
図5に示すようなマッチグラフに対して、「ランダムウォーク」を実行し、その実行結果に基づいてコミュニティを判断する。「ランダムウォーク」は、グラフ内の任意の頂点を出発して、現在の頂点に接続されている辺(すなわち、選択可能な辺)のうち1つをランダムに選択し、その選択された辺に沿って次の頂点へ移動するという処理を複数回に亘って繰返す処理である。このとき有向グラフによる場合には、辺の向きも考慮して移動可能かどうかが判断される。
【0088】
図5に示すマッチグラフを例にとれば、コミュニティ1に属する頂点同士を接続する辺は、コミュニティ1に属する頂点と他のコミュニティに属する頂点とを接続される辺より多い。すなわち、同一のコミュニティに属する頂点間は、より密に接続されていると言える。
【0089】
このような前提知識の下、グラフ内のある頂点を出発点としてランダムウォークを実行すると、ウォーカ(ランダムウォーク中の現在位置を示す主体)は、確率的には、暫くの間、接続が密な頂点間を周遊することになる。
【0090】
図8は、
図5に示すマッチグラフに対してランダムウォークを実行した場合の通過頂点の一例を示す図である。
図8(A)は、頂点Aを出発点とした場合の通過頂点の一例を示し、
図8(B)は、頂点Fを出発点とした場合の通過頂点の一例を示す。
図8に示す通過頂点において、カッコ内の数字はランダムウォークのステップ番号を示す。
【0091】
図8(A)に示すように、例えば、
図5に示すマッチグラフにおいて、頂点Aを出発点とするウォーカは、暫くの間、頂点A,B,C,D,E(すなわち、コミュニティ1に属する頂点)を周遊する確率が高い。同様に、頂点B,C,D,Eのいずれかを出発点とするウォーカも、暫くの間、頂点A,B,C,D,E(すなわち、コミュニティ1に属する頂点)を周遊する確率が高い。これに対して、例えば、
図8(B)に示すように、他のコミュニティに属する頂点F〜Lのいずれかを出発点とするウォーカは、頂点A〜Eを出発点とするウォーカとは全く異なる頂点を周遊する確率が高い。
【0092】
このように、対象のグラフに含まれるすべての頂点の各々からランダムウォークを所定ステップ数に亘って実行し、そのときに通過した頂点が似ている出発頂点同士については、互いに密に接続されているとみなすことができる。
【0093】
以上のような本願発明者らの新たな知見に基づいて、本実施の形態に従うコミュニティ構造検出手法においては、マッチグラフを生成し、生成したマッチグラフの各頂点からランダムウォークを実行するとともに、そのランダムウォークの実行結果(通過頂点の集合)に基づいて、互いに密に接続されている頂点の群を特定する。すなわち、本実施の形態においては、ランダムウォークの実行結果に基づいて頂点間の類似度を評価する。
【0094】
図9は、
図2のステップS8に示す入力画像間の密接の度合いを評価する処理を示すフローチャートである。
図9を参照して、まず、
図2のステップS6において生成されたマッチグラフに含まれるすべての頂点を抽出する(ステップS80)。続いて、ステップS80において抽出されたすべての頂点のうち対象となる1つの頂点を選択する(ステップS81)。選択された頂点を開始点として、ランダムウォークが所定ステップ数に亘って実行される(ステップS82)。
【0095】
このステップS82の処理は、所定試行回数に亘って繰返される(ステップS83においてNOの間、繰返される)。すなわち、同一の頂点を出発点とする、所定ステップ数に亘るマッチグラフ内の順次移動が所定試行回数に亘って繰返される。
【0096】
所定試行回数に亘るステップS82の実行が終了すると、異常値(外れ値)を除外する処理が実行され(ステップS84)、ランダムウォークによりウォーカが通過した頂点のセット(通過履歴)が、対象となる出発頂点に関連付けて格納される(ステップS85)。すなわち、ランダムウォークの実行結果としては、各出発頂点と、各頂点を出発点としたウォーカが通過した1または複数の頂点とを対応付けたものとなる。
【0097】
所定ステップ数および所定試行回数については、任意の設定することができるが、例えば、所定ステップ数は、入力されたマッチグラフに含まれる頂点の数と同数に設定することができ、所定試行回数は、「100」などに設定することができる。あるいは、ユーザが、コミュニティ構造検出処理の結果を参照しながら、所定ステップ数および/または所定試行回数をインタラクティブに調整できるようにしてもよい。
【0098】
ステップS80において抽出された頂点のすべてが対象として選択されたか否かが判断され(ステップS86)、抽出された頂点のうち選択されていない頂点が残っていれば(ステップS86においてNOの場合)、当該選択されていない頂点のうち1つが新たな頂点として選択される(ステップS87)。そして、ステップS82以下の処理が繰返される。
【0099】
抽出された頂点のすべてが対象として選択されていれば(ステップS86においてYESの場合)、それぞれの頂点についてのランダムウォークの実行結果(通過頂点の集合)に基づいて、各ランダムウォーク間の類似度を算出する(ステップS88)。そして、算出された類似度が予め定められたしきい値以上であるランダムウォークの出発点同士を同一のコミュニティに分類する(ステップS89)。そして、ステップS8の処理は終了する。
【0100】
(f2:有向グラフへの適用)
本実施の形態に従うコミュニティ構造検出処理は、無向グラフおよび有向グラフのいずれにも適用可能である。但し、有向グラフに適用した場合には、ランダムウォークのステップ数が指定された所定数に到達する前に、ウォーカが移動できなくなる恐れがある。例えば、他の頂点へ移動する辺が存在しない頂点へ到達したような場合などである。そのため、所定ステップ数に亘る移動の完了前に、他の頂点へ移動する辺が存在しない頂点へウォーカが到達した場合には、通過履歴を取得する処理(ランダムウォーク)を終了するようにしてもよい。
【0101】
このような処理を採用することで、本実施の形態に従うコミュニティ構造検出処理は、有向グラフにも適用可能なものとなる。
【0102】
(f3:異常値の除外処理)
次に、
図9のステップS84における、異常値(外れ値)を除外する処理について説明する。この異常値の除外処理では、同一の頂点を出発点とする複数の通過履歴から統計上の異常値を除外する。より具体的には、出発頂点毎にランダムウォークによってウォーカが通過した頂点のうち、統計的にその頻度が小さいものを異常値として除外する。
【0103】
図9のステップS83において、ランダムウォークを所定試行回数に亘って繰返すのは、統計的な安定性を確保するためである。例えば、各頂点を開始点とするランダムウォークをそれぞれ1回だけ実行するようにした場合には、比較的小さいステップ数で、たまたま繋がりの弱いコミュニティへウォーカが移動してしまう可能性がある。そこで、各頂点を出発点とするランダムウォークを所定試行回数(例えば、100回)に亘って繰返し実行する。その上で、繋がりの弱いコミュニティへの移動によって生じた通過頂点を異常値として除外する。
【0104】
例えば、頂点vi(0<i≦頂点総数L)を出発頂点とするランダムウォークの試行n回目(1≦n≦所定試行回数N)において取得された通過頂点集合をSinとする。通過頂点集合Sinは、マッチグラフに含まれる頂点v1,v2,v3,…,vLの少なくとも一部を含むことになる。そして、頂点viを出発頂点とするランダムウォークの実行結果としては、通過頂点集合Sinの総和、すなわち、通過頂点集合Si←Si1∪Si2∪…∪SiNとなる。
【0105】
図10は、
図9のステップS84に示す異常値を除外する処理を説明するための図である。
図10には、各頂点を出発頂点として、N回に亘ってランダムウォークを実行した結果の一例を示す。
図10において最前面に表示されている結果は、頂点v1を出発頂点としたものである。
図10中の数字は、対応するランダムウォークの試行において、各頂点を何回通過したかを示す。例えば、頂点v1を出発頂点とした第1回目のランダムウォークの試行において、ウォーカは頂点v2を「3」回通過したことを示す(
図10の「試行」の「1」の欄参照)。
【0106】
このような所定試行回数について、ウォーカによる各頂点の通過頻度(総合計)を算出し、この通過頻度が相対的に小さい場合には、異常値として除外する。相対的に小さいか否かは、予め定められたしきい値を用いて判断することができる。この異常値を判断するためのしきい値は、所定試行回数に所定比率を乗じた値(0〜1の間の一定値)を用いることができる。一例として、所定試行回数が「100」である場合、所定比率を「0.2」とすると、異常値を判断するためのしきい値は「20」となる。
図10に示す例では、頂点viおよび頂点vLは、異常値として除外される。すなわち、ウォーカがしきい値以下しか通過しなかった頂点については、通過履歴としてはみなさないようにしてもよい。
【0107】
このように、異常値の除外処理においては、同一の頂点を出発点とする複数の通過履歴を結合するとともに、結合された通過履歴において、通過頻度が相対的に小さい頂点については、通過履歴に含まれないものとみなす。
【0108】
その結果、頂点viを出発頂点とするランダムウォークの実行結果である通過頂点集合Siには、通過頻度が相対的に大きな頂点v1,v2が含まれる一方で、頂点vi,vLは除かれることになる。
【0109】
あるいは、通過履歴としてはみなさないと判断された頂点を含む通過頂点集合自体を、異常値として除外するようにしてもよい。例えば、
図10に示す例では、頂点vi,vLの通過頻度がしきい値以下であるので、頂点viまたは頂点vLを含む、通過頂点集合S11,S12,S1Nが異常値として除外され、それ以外の通過頂点集合の和集合を用いて、後述する類似度が算出されることになる。
【0110】
なお、異常値(外れ値)を除外するためのしきい値としては、所定試行回数に基づいて決定する以外にも、例えば、各頂点の通過頻度の分布などに基づいて決定してもよい。例えば、通過頻度分布の中央値の50%などと設定することもできる。すなわち、異常値を除外するための基準としては、対象となる母集団の特性などに応じて、任意に設計すればよい。
【0111】
(f4:類似度の算出処理)
次に、
図9のステップS88における類似度の算出方法のいくつかの具体的手法について例示する。この類似度は、出発頂点毎に実行したランダムウォークにおいて、その通過頂点が互いにどの程度似ているかを示す指標である。なお、以下の説明では、2つのランダムウォーク間の類似度を算出する場合について例示するが、3つ以上のランダムウォーク間での類似度を算出するようにしてもよい。
【0112】
(1)通過頂点集合間のJaccard係数を用いる方法
頂点viを出発点としたウォーカの通過頂点集合Siとし、頂点vjを出発点としたウォーカの通過頂点集合をSjとすると、類似度simijとしてのJaccard係数は、以下の(1)式に従って算出できる。
【0114】
(1)式において、Si∪Sjは、通過頂点集合Siおよび通過頂点集合Sjの少なくとも一方に属する頂点全体の集合(和集合)を意味し、Si∩Sjは、通過頂点集合Siおよび通過頂点集合Sjの両方に属する頂点全体の集合(積集合)を意味する。すなわち、類似度simijは、対象となる2つのランダムウォークのいずれかにおいて通過頂点となった頂点の数のうち、2つのランダムウォークに共通して通過頂点となった頂点の数の比率を示す。
【0115】
上述の異常値の除外処理が実行される場合には、通過頂点集合Si,Sjは、異常値の除外処理によって除外された頂点または通過頂点集合を除いた集合が用いられる。
【0116】
対象のマッチグラフに含まれる頂点の数と同数の通過頂点集合が生成され、生成された通過頂点集合のうち2つの通過頂点集合の組み合わせのすべてについて、類似度がそれぞれ算出されることになる。
【0117】
(2)通過頂点の頻度ベクトルのCOS類似度を用いる方法
通過頂点集合Sの各頂点についての通過頻度を多次元ベクトルとみなすことで、そのベクトル同士の類似度を用いるようにしてもよい。
【0118】
例えば、頂点v1を出発点としたウォーカが、頂点v1を2回、頂点v2を3回、…、頂点vLを0回通過したとすると、各頂点の通過頻度を示す頻度ベクトルf1を(2,3,…,0)と定義できる。頻度ベクトルf1の次数はLとなり、L次元空間の空間ベクトルとみなすことができる。そして、L次元空間における、頻度ベクトル間の類似度として、COS(コサイン)(すなわち、頻度ベクトル間の相関係数)を用いることができる。
【0119】
すなわち、頂点viを出発点としたウォーカによる各頂点の通過頻度を示す頻度ベクトルをfiとし、頂点vjを出発点としたウォーカの通過頂点頻度を示す頻度ベクトルをfjとすると、COS類似度cos(fi,fj)は、以下の(2)式に従って算出できる。
【0121】
対象のマッチグラフに含まれる頂点の数と同数の通過頂点集合および対応する頻度ベクトルが生成され、(2)式から明らかなように、生成された頻度ベクトルのうち2つの頻度ベクトルの組み合わせのすべてについて、COS類似度がそれぞれ算出されることになる。
【0122】
(3)その他
異常値の除外処理として、1クラスSVM(Support Vector Machine)を用いるようにしてもよい。
【0123】
例えば、COS類似度を算出する際には、各頂点を開始点とする、所定試行回数(例えば、100回)に亘るランダムウォークの繰返しによって得られた実行結果(通過頂点の集合)から頻度ベクトルを生成する。その上で、1クラスSVMを用いて、所定の割合(例えば、5%)の頻度ベクトルを例外とみなして削除した上で、残ったベクトル群からランダムに1つのベクトルを選択し、その選択したベクトルを当該出発頂点についての頻度ベクトルの代表とみなすようにしてもよい。
【0124】
同様の手順をJaccard係数の算出処理にも適用できる。この場合には、各ランダムウォークにおいて、ウォーカがそれぞれの頂点を通過したか否かを「1」および「0」を用いて表現したベクトルを作成し、このベクトルの集合に対して、1クラスSVMを適用することになる。
【0125】
また、Jaccard係数の他、Dice係数またはSimpson係数などを用いてもよい。
【0126】
(f5:コミュニティへの分類)
次に、
図9のステップS89におけるコミュニティへの分類処理について説明する。
【0127】
上述したランダムウォーク間の類似度(Jaccard係数およびCOS類似度)は、いずれも正規化されており、0から1の間の実数となる。ランダムウォーク間の類似度が予め定められたしきい値以上であるものを同一のコミュニティに属すると判断し、各ランダムウォークの出発頂点同士を同一のコミュニティに分類する。
【0128】
上述したランダムウォーク間の類似度は、2つのランダムウォーク間の類似度を評価したものであり、特定のランダムウォークと他のランダムウォークとの間の類似度と、当該特定のランダムウォークとさらに別のランダムウォークとの間の類似度とが整合しない場合がある。このような場合には、いずれかのランダムウォークとの間で繋がりがあれば、同一のコミュニティに分類するようにしてもよい。具体的には、例えば、頂点v1および頂点v2についてのランダムウォーク間の類似度を算出した結果、それらの頂点が同一のコミュニティに属すると判断されるとともに、頂点v2および頂点v3についてのランダムウォーク間の類似度を算出した結果、それらの頂点が同一のコミュニティには属すると判断されたとする。このような場合、仮に、頂点v1および頂点v3についての類似度がしきい値未満であり、同一のコミュニティに属さないと判断されたとしても、頂点v1および頂点v3の頂点v2に対する関係を考慮して、頂点v1、頂点v2、頂点v3のすべてが同一のコミュニティに属していると決定してもよい。
【0129】
この類似度を評価するためのしきい値は任意に設定できる。すなわち、ランダムウォーク間の類似度を評価するしきい値を任意に調整することで、単一のコミュニティとして検出されるのに必要な繋がりの強さを直感的に調整できる。より具体的には、例えば、類似度を評価するためのしきい値は「0.4」などに設定することができる。但し、ユーザが、コミュニティ構造検出処理の結果を参照しながら、しきい値をインタラクティブに調整できるようにしてもよい。
【0130】
本実施の形態に従うコミュニティ構造検出処理を多数の画像に対する画像クラスタリングへ応用する場合には、同一の被写体を撮影した入力画像であっても、季節、時間帯、画角、アングルなどの撮影条件が異なるものが含まれる。
図5に示すようなマッチグラフにおいて、季節などの撮影条件が同一または類似している入力画像間の繋がりは密となるが、同一の被写体であっても、撮影条件が異なっている入力画像間の繋がりは疎になる傾向がある。
【0131】
そこで、同一のコミュニティの範囲を定めるしきい値をインタラクティブに調整することで、同一の被写体であっても、季節などの撮影条件が異なる複数の入力画像について、そのクラスタリングの目的などに応じて、同一のコミュニティに含めるようにしてもよいし、別のコミュニティに分離するようにしてもよい。
【0132】
[G.重み付きグラフへの適用]
上述の説明においては、マッチグラフに含まれる辺の重みについては限定していなかったが、各辺に重みが付与されている重み付きグラフについても適用可能である。重み付きグラフを生成する場合には、例えば、上述した画像マッチング処理において、見つかった対応する特徴点の数、画像マッチング処理の信頼度などに応じて、ある頂点と他の頂点をと接続する辺に対する重みを設定してもよい。すなわち、マッチグラフの辺には、接続する2つの頂点間のマッチングの度合いに応じた重みが付与されていてもよい。
【0133】
ランダムウォークにおいて、ウォーカがある頂点に位置する場合に、当該頂点から選択可能な辺にそれぞれ付与されている重みを反映した上で、確率的に移動先の辺が決定される。すなわち、各頂点に接続されるそれぞれの辺に設定される重みに基づいて、遷移先が確率的に決定される。
【0134】
例えば、頂点Aに接続される3つの辺に重みw1,w2,w3がそれぞれ設定されているとすると、重みw1が設定されている辺に遷移する確率は、w1/(w1+w2+w3)となる。本実施の形態に従うコミュニティ構造検出処理を重み付きグラフへ適用する場合には、遷移先を確率的に決定する処理を除いて、上述した処理と同様の処理を実行してもよい。
【0135】
[H.実験結果]
次に、本実施の形態に従う画像クラスタリングシステムによるクラスタリング性能について評価した実験結果の一例について説明する。
【0136】
(h1:実験手法)
被写体として、「東大寺」、「日光東照宮」、「法隆寺」を想定し、クリエイティブコモンズライセンスの下で公開されている画像を収集した。具体的には、「東大寺」については、検索タームとして"todaiji"を入力して検索された4015枚の画像を用い、「日光東照宮」については、検索タームとして"toshoguを入力して検索された3808枚の画像を用い、「法隆寺」については、検索タームとして"horyuji"を入力して検索された1102枚の画像を用いた。
【0137】
そして、非特許文献2に開示される方法に従って、収集された画像の一部(東大寺:500枚、日光東照宮:500枚、法隆寺:200枚)を用いてvocabulary tree(非特許文献2参照)を学習した上で、このvocabulary treeを用いて、それぞれの被写体についてのマッチグラフを生成した。「東大寺」のマッチグラフは3515個の頂点を含み、「日光東照宮」のマッチグラフは3308個の頂点を含み、「法隆寺」のマッチグラフは902個の頂点を含むものとなった。
【0138】
これらの3種類のマッチグラフに対して、本実施の形態に従うコミュニティ構造検出手法を含むいくつかの手法をそれぞれ適用した。例えば、「東大寺」に関連付けられた画像としては、「大仏殿」、「中門」、「木造金剛力士立像(吽形、阿形)」、「盧舎那仏像(大仏)」、「虚空蔵菩薩坐像」、「南大門」などをそれぞれ撮影したものが含まれており、これらの被写体をクラスタリングする性能を評価した。
【0139】
生成されたマッチグラフは、有向グラフとなるが、これを無向グラフとみなしても評価を行なった。それぞれの実験条件は以下の通りである。
【0140】
・実施例1(有向グラフ):生成されたマッチグラフ(有向グラフ)に対して、
図9に示すフローチャートに従ってコミュニティ構造検出を実行(所定試行回数:100回、異常値の除外処理の所定比率:0.2、類似度を評価するためのしきい値:0.4)。
【0141】
・実施例2(One-way無向グラフ):生成されたマッチグラフ(有向グラフ)について、ある頂点から別の頂点への辺がいずれか一方向でも存在すれば、有向の辺の代わりに、当該頂点同士を無向の辺で接続して、無向グラフを生成。生成された無向グラフの各連結成分をクラスタとみなす。
【0142】
・実施例3(Two-way無向グラフ):生成されたマッチグラフ(有向グラフ)について、ある頂点から別の頂点への接続が双方向に存在する場合に限って、有向の辺の代わりに、当該頂点同士を無向の辺で接続し、無向グラフを生成。生成された無向グラフの各連結成分をクラスタとみなす。
【0143】
・実施例4(Spin glass):生成されたマッチグラフ(有向グラフ)に対して、非特許文献4に開示される手法(Spin glass法)に従ってコミュニティ構造検出を実行。
【0144】
・実施例5(Infomap):生成されたマッチグラフ(有向グラフ)に対して、非特許文献5に開示される手法(Infomap法)に従ってコミュニティ検出構造検出を実行。
【0145】
(h2:実験結果)
評価指標としては、Global Purity、Inverse Purity、F-measureの3つを用いた。Global Purityは、検出された各コミュニティにおいて、最も多いクラスに属する要素の比率の加重平均であり、この値が大きいほど、他のクラスに属する要素(ノイズ)が混在している比率が低いことを意味する。Inverse Purityは、各ラベルで定められた要素の各クラスタ(コミュニティ)における比率の加重平均である。F-measureは、Global PurityとInverse Purityとの調和平均である。
【0146】
図11は、本実施の形態に従うコミュニティ構造検出手法の性能評価の実験結果の一例を示す図である。
図11(A)は「東大寺」についてのマッチグラフに対する実験結果の一例を示し、
図11(B)は「日光東照宮」についてのマッチグラフに対する実験結果の一例を示し、
図11(C)は「法隆寺」についてのマッチグラフに対する実験結果の一例を示す。
【0147】
図11(A)〜(C)に示すように、本実施の形態に従うコミュニティ構造検出手法をマッチグラフ(有向グラフ)に適用する(実施例1)ことで、他の方法(実施例2〜5)に比較して、より高いF-measureを得ることができた。すなわち、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフを生成し、このようなマッチグラフに対してコミュニティ構造検出手法を適用して、コミュニティを検出することで、十分に実用的な画像クラスタリングが実現できると言える。そして、コミュニティ構造検出手法の中でも、上述したような本実施の形態に従うコミュニティ構造検出手法を採用することで、より高いクラスタリングの精度を得られると言える。
【0148】
[I.応用例]
次に、本実施の形態に従うコミュニティ構造検出手法を応用したいくつかのシステムについて例示する。
【0149】
(i1:自動ラベリングシステム)
本実施の形態に従うコミュニティ構造検出手法の応用例として、画像に対する自動ラベリングシステムについて説明する。
【0150】
図12は、本実施の形態に従うコミュニティ構造検出手法を利用した自動ラベリングシステムの構成例を示す模式図である。
図12を参照して、自動ラベリングシステム500は、本実施の形態に従うコミュニティ構造検出手法などの処理を実行するサーバ装置510を含む。
【0151】
サーバ装置510は、ネットワーク530を介して、SNS(Social Network Service)サーバ装置520、画像投稿サイトサーバ装置522、検索エンジン524などとの間で、データの遣り取りが可能に構成されている。サーバ装置510は、SNSサーバ装置520、画像投稿サイトサーバ装置522、検索エンジン524などから任意の画像512を収集し、これらの収集した画像512を、その被写体別に分類(コミュニティの特定)するとともに、分類によって得られたクラスタ(コミュニティ)に対して、ラベルを付与する。
【0152】
具体的には、サーバ装置510は、クラスタリングエンジン516を有しており、クラスタリングエンジン516は、収集された画像512に対して、
図2に示す画像クラスタリングを実行する。これによって、画像512に含まれる同一の被写体を撮影したと想定されるクラスタ(コミュニティ)518を決定する。
【0153】
画像512に撮影日時、撮影場所、コメントなどのメタ情報が付与されている場合には、これらのメタ情報514についても収集される。収集されたメタ情報に基づいて、サーバ装置510は、決定されたクラスタ518に対してラベルを付与する。
【0154】
このように、ラベルが付与されたクラスタ518には、当該付与されたラベルによって示される被写体を撮影することで得られた画像が含まれることになる。
【0155】
このような自動ラベリングシステム500を採用することで、大量の画像をそれに写っている被写体毎にクラスタリングする作業が容易化される。このようなクラスタリングは、例えば、観光地のガイドをビジュアル的に行なうような場合に有益である。
【0156】
(i2:画像検索システム)
図12に示すような自動ラベリングシステム500によって生成された画像データベースを用いて、画像検索システムを提供することもできる。
【0157】
図13は、本実施の形態に従うコミュニティ構造検出手法を利用した画像検索システムの構成例を示す模式図である。
図13を参照して、画像検索システム550は、ネットワーク580を介して、端末装置570からのアクセスが可能なサーバ装置560を含む。
【0158】
例えば、端末装置570は、スマートフォンやタブレットなどの携帯型デバイスであり、ユーザがいずれかの場所を観光で訪れたときに、何らかの被写体を撮影し、その撮影した画像572をサーバ装置560へ送信したとする。
【0159】
端末装置570からの問合せ画像572がサーバ装置560により受信されると、サーバ装置560の画像検索エンジン562が、予め用意している画像データベース564を参照して、問合せを受けた画像と一致する画像を検索する。画像データベース564には、被写体毎に複数の画像がクラスタ化されており、各クラスタには、被写体を示すラベルが付与されているとする。
【0160】
画像検索エンジン562は、入力された画像572と一致する画像を画像データベース564内から見つけると、その見つけた画像に付与されているラベル、および、当該ラベルに関連付けられる情報を端末装置570へ回答する。例えば、画像572の被写体に関連する歴史などの情報を回答するようにしてもよい。このように、画像検索エンジン562は、外部から問合せ対象の画像を受信すると、当該受信した画像に対応する入力画像を各クラスタに含まれる入力画像の集合から検索するととともに、対応する入力画像が属するクラスタの情報(ラベルや関連する情報)を応答する。
【0161】
このような画像検索システム550を用いることで、観光地での自動ガイダンスを提供することができる。観光客が訪問先で何らかの物体を撮影してサーバ装置560へ送信すると、被写体となった物体がどのような名前であるか、その歴史、または、別の季節あるいはアングルで撮影された他の画像などが表示されるようなサービスを提供してもよい。
【0162】
(i3:その他)
上述の
図12および
図13に示すシステムは、本実施の形態に従うコミュニティ構造検出手法の応用例の一部に過ぎず、これらに限定されるものではない。本実施の形態に従うコミュニティ構造検出手法は、要素間の繋がりをグラフの形で表現できるものであれば、どのようなものにも適用可能である。
【0163】
[J.結論]
本実施の形態に従う画像クラスタリングシステムによれば、入力画像群に含まれる入力画像同士の画像マッチング処理の結果を反映したマッチグラフに対して、コミュニティ構造検出手法を適用することで、ラベルが付与されていない入力画像の集合であっても、被写体毎の自動的な分類が可能となる。
【0164】
本実施の形態に従うコミュニティ構造検出手法によれば、グラフ(典型的には、マッチグラフ)に対する各頂点を出発点とするランダムウォークによって得られた通過履歴の類似性に基づいて、グラフ内のコミュニティを特定する。通過履歴同士の類似性を示す値(類似度)を正規化された具体的な数値として算出できるので、類似度に対する取扱いが直感的に理解し易い。すなわち、この算出された類似度に対するしきい値などを任意に設定することで、コミュニティとして検出されるために必要な繋がりの強さを任意に調整することができる。このような繋がりの強さを任意に調整できることで、コミュニティ構造の検出結果を参照しながら、対象のデータ集合に応じて、より好ましい検出結果となるように、インタラクティブに調整することができる。
【0165】
また、本実施の形態に従うコミュニティ構造検出手法によれば、コミュニティ構造検出処理の結果を参照しながら、ランダムウォークの実行に係る所定ステップ数および所定試行回数についてインタラクティブに調整することができる。そのため、対象のデータ集合に応じて、より好ましい検出結果となるような調整を任意に行なうことができる。
【0166】
また、本実施の形態に従うコミュニティ構造検出手法によれば、無向グラフおよび有向グラフのいずれにも適用することができ、さらに、重み付きグラフについても適用可能である。そのため、対象のデータ集合に応じた関連付けの手法を採用してマッチグラフさえ生成できれば、どのようなマッチグラフに対しても適用が可能である。すなわち、汎用性の高い新規なコミュニティ構造検出の手法を実現できる。
【0167】
今回開示された実施の形態は、すべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。