以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は、以下の順序で行うものとする。
(1)木構造について
(2)第1の実施形態
(2−1)情報処理装置が実現するクラスタリングの概略について
(2−2)情報処理装置の構成について
(2−3)ノードの抽出方法について
(2−4)表示画面の一例について
(2−5)表示画面の制御方法について
(3)本発明の実施形態に係る情報処理装置のハードウェア構成について
(木構造について)
まず、本発明の実施形態に係る説明を行うに先立ち、本明細書中で使用する木構造に関する用語について、図1を参照しながら簡単に説明する。図1は、木構造について説明するための説明図である。
図1に例示したように、木構造は、複数の要素(図1において○で示したもの)から構成されている。これら複数の要素のことを、ノードと称する。また、木構造において、一番上に位置するノードをルートノードと称する。ルートノードに着目すると、このルートノードから図の下方向に向かって枝分かれが生じており、それぞれの枝の先にノードが位置している。このような枝分かれが繰り返されることで、木構造は、図1に示したような多層的な構造となる。また、木構造において、一番下に位置するノードを、リーフノードと称する。図から明らかなように、これらリーフノードからは枝分かれが生じていない。
ここで、図1に示したノード「B」に着目する。ノードBから上に向かって延びている枝は、ルートノードにつながっており、ノードBから下に向かって延びている枝は、リーフ3およびリーフ4という2つのノード(リーフノード)につながっている。ここで、ノードBに対するルートノードのように、上方向(換言すれば、ルートノードの方向)に向かって延びている枝に直接つながっているノードのことを、親ノードと称することとする。また、ノードBに対するリーフ3およびリーフ4のように、下方向(換言すれば、ルートノードの方向とは逆の方向)に向かって延びている枝に直接つながっているノードのことを、子ノードと称することとする。
親ノード、および、子ノードという呼び方は、あくまでも相対的なものであって、着目しているノードが変わることで、その呼び方も変化する。例えば、ノードBは、リーフ3またはリーフ4にとっては親ノードとなるが、ルートノードにとっては子ノードとなる。
また、木構造は、図1に示したような多層構造となっているが、以下では、ルートノードが属する階層を第0階層と呼ぶこととし、ルートノードの子ノードが属する階層を第1階層、第1階層に位置するノードの子ノードが属する階層を第2階層と呼ぶこととする。以下、必要に応じて、順に、第3階層、第4階層・・・と称することとする。
また、ノードBに着目した場合におけるノードAおよびノードCのように、あるノードの親ノードから分岐している、着目しているノード以外の子ノードのことを、兄弟ノード(sibling node)と称することとする。例えば図1において、リーフ3に着目した場合、その兄弟ノードはリーフ4となる。
なお、図1に示した例では、あるノードから複数の枝が分岐している場合について示しているが、ノードから下方向(ルートノードに向かう方向とは逆の方向)に延びる枝の個数は、1つのみであってもよい。また、あるノードから分岐する枝の個数は、図1に示した例に限定されるわけではない。
(第1の実施形態)
<情報処理装置が実現するクラスタリングの概略について>
まず、図2を参照しながら、本発明の第1の実施形態に係る情報処理装置が実現するクラスタリングの概略について、簡単に説明する。図2は、本実施形態に係る情報処理装置が実施するクラスタリングの一例を説明するための説明図である。
先に説明したように、データをグループ分け(クラスタリング)する際に、ある特定の位置を基準として、この特定の位置から近いデータは細かい粒度で分割し、遠く離れたデータは粗い粒度でまとめるようなグループ分けを行いたい場合がある。
例えば、地図上の現在地に応じて、周辺のお勧めスポットを表示する装置を考える。この際、現在地の近くに位置するスポットは、グループ分けが行われることなく(または、1データ=1グループのグループ分けを行って)表示されるものとする。また、現在地から少し離れた位置のスポットは市町村毎などにグループ分けして表示され、遠く離れた外国のスポットは国毎などにグループ分けして表示されるものとする。
図2に示した例は、現在位置が東京の渋谷近辺である場合に、渋谷からの距離に応じてグループ(すなわち、クラスタ)の粒度を変化させながら、グループ分けの結果を示したものである。現在位置である渋谷の近傍に位置するグループ(クラスタ)である、「新宿」、「上野」、「品川」といった位置を表すクラスタは、細かい粒度で表示されており、現在位置から離れるにしたがって、クラスタの粒度が粗くなっていることがわかる。
このような表示が装置によって提供されることで、ユーザは、表示されているクラスタ間の位置関係を大まかに、かつ、容易に把握することが可能となる。したがって、かかる装置を実現できれば、結果としてユーザの利便性を向上させることが可能となる。
以上の例のように、指定された位置からの距離に応じてグループのサイズを分けたい場合、このようなグループ分けは、特徴空間上のデータの絶対的な位置に加え、特定の位置からのデータまでの距離も加味してクラスタリングを行うことで可能となる。
しかしながら、クラスタリングは、特にデータが大量になる場合には、演算量の負荷が大きい。したがって、上述の例のような、現在の位置に応じてスポットをグループ分けするような場合、時々刻々と変化する現在地に応じて毎回クラスタリングを実行し直すことは、システムに大きな負荷を強いる処理となる。
実際の現在地に基づくクラスタリングであれば、例えば現実世界ではそれほど高速な移動は考えられないことから、例えば1分に一度現在地を変更する、というような運用も考えられる。しかし、上記例と同じようなことを仮想世界で行わせようとする場合など、いつどれだけ特定位置が変化するか想定できないような場合では、かかるクラスタリングの実現は、困難となる。
そこで、以下で説明する本実施形態に係る情報処理装置では、クラスタ粒度の異なる多階層のクラスタ構造を生成するクラスタリングを実施し、クラスタ構造を表す木構造を生成する。また、クラスタ構造が規定される特徴空間においてある位置が指定されると、指定された位置と、生成されたクラスタ構造とを利用して、様々な階層から所望のクラスタを抽出する。これにより、本実施形態に係る情報処理装置では、特徴空間における特定の位置からの距離に基づきクラスタ粒度を変化させるようなクラスタリングを、クラスタリングに要する負荷を抑制しながら行うことが可能となる。
<情報処理装置の構成について>
次に、図3を参照しながら、本発明の第1の実施形態に係る情報処理装置の構成について、詳細に説明する。図3は、本実施形態に係る情報処理装置の構成を説明するためのブロック図である。
なお、本実施形態に係る情報処理装置10で扱うコンテンツデータの一例として、静止画コンテンツ、動画コンテンツといった画像コンテンツや、ユーザ同士が各種情報の共有を行うためにサーバ等に登録した各種の文字情報・画像情報等を挙げることができる。これらのデータ以外にも、例えば、メール、楽曲、スケジュール、電子マネー使用履歴、通話履歴、コンテンツ視聴履歴、観光情報や地域情報、ニュースや天気予報、着信音モード履歴等のコンテンツに適用することができる。
以下の説明では、静止画コンテンツおよび動画コンテンツといった画像コンテンツを例にとって、説明を行うものとする。しかしながら、本実施形態に係る情報処理装置10では、特徴空間における位置を表す位置情報が例えばメタデータとして添付されているデータであれば、任意の情報やコンテンツデータを扱うことが可能である。
また、上述のようなコンテンツデータや各種情報を表すデータは、情報処理装置10の内部に格納されていることが好ましい。しかしながら、情報処理装置10の外部に設けられたサーバ等の装置にデータ本体が格納されており、情報処理装置10には、これらのデータ本体に対応するメタデータが格納されていてもよい。以下では、情報処理装置10がコンテンツデータや各種情報を表すデータを、メタデータとともに格納している場合を例にとって説明を行うものとする。
本実施形態に係る情報処理装置10は、例えば図3に示したように、木構造生成部101と、抽出条件設定部103と、ノード抽出部105と、表示制御部107と、表示部109と、入力部111と、GPS信号処理部113と、記憶部115と、を主に備える。
木構造生成部101は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等により実現される。木構造生成部101は、所定の特徴量に基づいて規定される特徴空間の位置を表す位置情報がメタデータとして関連づけられたコンテンツデータをリーフノードとし、特徴空間において所定の条件を満たすノードの集合が、当該所定の条件を満たすノードの親ノードとして規定される木構造を生成する。
ここで、コンテンツデータに関連付けられた位置情報について、まず説明する。
本実施形態に係る木構造生成部101は、コンテンツデータに関連付けられたメタデータ中に記載されている所定の特徴量に基づき、この所定の特徴量で規定される特徴空間を想定する。メタデータ中に記載されている所定の特徴量の一例としては、例えば、コンテンツが生成された場所を特定するための緯度・経度に関する情報、コンテンツが生成された時刻に関する情報、コンテンツが生成された場所を表す住所に関する情報等を挙げることができる。これら所定の特徴量に関するメタデータは、例えば、コンテンツデータに関連付けられたExif(Exchangeable Image File Format)タグ等に格納されていてもよい。
場所を特定するための緯度・経度に関する情報は、例えばGPS信号を取得および解析することで得ることが可能な情報である。緯度・経度といった位置情報は、地球という球状の物体の表面の位置(球表面上の位置)を特定するための特徴量であるといえる。したがって、この緯度・経度に関する情報をもとに規定された特徴空間は、地球という球表面上の位置を表す空間となる。かかる特徴空間における位置は、当然ながら、緯度および経度をそれぞれ指定することで定義することができる。また、特徴空間上のある2つの位置間の距離は、いわゆる大圏距離を用いて定義することができる。
また、地球表面上の位置を表す情報を特徴量として用いる場合であっても、着目している領域が局所的である場合には、球表面を近似的に平面とみなすこともできる。したがって、緯度をx座標とし、経度をy座標として扱うことで、特徴空間を規定することも可能である。この場合における特徴空間は、(x,y)のような2次元のベクトルで規定される平面空間(ユークリッド空間)となり、特徴空間上のある2つの位置間の距離は、いわゆるユークリッド距離を用いて定義することができる。
また、コンテンツが生成された時刻に関する情報を特徴量として用いる場合には、時間という一次元の情報を元に特徴空間を規定することとなる。したがって、かかる場合における特徴空間は、スカラー量である時刻によって定義され、特徴空間上のある2つの位置間の距離は、時刻差で定義することができる。
木構造生成部101は、このような特徴量を用いて規定される特徴空間を想定し、この特徴空間内におけるコンテンツの分布度合いに応じて、コンテンツのクラスタリング結果を表す木構造を生成する。
木構造生成部101が生成する木構造は、以下のような特徴を有するものである。
(1)コンテンツデータは、リーフノードに対応している。
(2)特徴空間上で互いの距離が近いデータは、同一のノードに包含される。
(3)互いの距離が近いデータを包含するノード自体が、他のノードと近い距離に存在する場合、これらのノードは、同一のノードに包含される。
(4)階層レベルが同じノード間には、ノードサイズに関して関連性がある。
また、木構造生成部101が生成する木構造は、上記(1)〜(4)に示した特徴に加えて、以下の特徴を更に備えていても良い。
(5)親子関係にあるノードを除き、あるノードの特徴空間での領域は、他のノードの特徴空間での領域と重複しない。
木構造生成部101は、上述のような木構造を、例えば以下のようにして生成する。
木構造生成部101は、まず、情報処理装置10が利用可能なコンテンツデータに関連付けられているメタデータを参照し、メタデータ中に記載されている位置情報に基づいて、コンテンツデータを特徴空間内の平面上に配置する。これらのコンテンツの配置は、あくまでも仮想的なものである点に注意されたい。
次に、木構造生成部101は、平面上に存在するコンテンツデータの集合に対して、各データ間の距離を算出する。続いて、木構造生成部101は、互いの距離が近い複数のデータ同士をまとめて、グループ化(分類)する。木構造生成部101が実施するこのようなグループ化処理が、クラスタリングであるといえる。また、このグループ化処理(クラスタリング)によってまとめられた各グループのことを、クラスタと称することとする。
木構造生成部101は、このようなクラスタの結合または分離の操作を経ることで、情報処理装置10が利用可能なコンテンツを複数のクラスタに分類し、コンテンツデータがリーフノードとなり各クラスタがノードとなる多階層の木構造を生成する。
以下では、図4〜図10を参照しながら、木構造生成部101が実施するクラスタリング方法について、簡単に説明する。
本実施形態に係る木構造生成部101が実施するクラスタリング方法は、図4に示したような流れで行われる。まず、木構造生成部101は、コンテンツデータに関連付けられている位置情報を参照して、図4の右上に示した内部ツリーと称する木構造をまず生成する。次に、木構造生成部101は、所定の条件に基づき、生成した内部ツリーを再構成することで、図4の下側に示したクラスタツリーを生成する。
なお、図4では、コンテンツデータに関連付けられた位置情報の例として、緯度および経度を用いた位置情報を記載している。また、図4において、斜線のつけられた○印で示したものがコンテンツデータに対応し、○印が内部ツリーにおけるノード(クラスタ)を表している。また、□印は、以下で説明するノード抽出部105によって抽出されるクラスタを表している。
まず、内部ツリーを生成する処理について説明する。
図5は、クラスタの生成方法について説明するための説明図である。ここで、図5(a)は、クラスタc1に1つのコンテンツが属する場合を示す図であり、図5(b)は、クラスタc2に2つのクラスタが属する場合を示す図である。また、図5(c)は、クラスタc5に少なくとも4つのクラスタが属する場合を示す図である。
なお、図5(b)に示すクラスタc2は、1つのコンテンツのみを有するクラスタc3およびc4で構成されているクラスタであり、図5(c)に示すクラスタc5は、少なくとも2以上のコンテンツを有するクラスタc6およびc7により作成されているクラスタである。また、以下では、2次元に配置されるコンテンツをクラスタリングする場合について説明する。
複数のコンテンツがクラスタリングされた後に生成される各クラスタは、円形状の領域であり、その円の中心位置(中心点)および半径を属性値として有する。このように、中心点および半径により定まる円形状のクラスタ領域に、当該クラスタに属するコンテンツが含まれることとなる。
例えば図5(a)に示すように、クラスタc1に1つのコンテンツのみが属する場合において、クラスタc1の中心位置は、クラスタc1に属するコンテンツの位置となる。また、クラスタc1の半径は、クラスタc1自体が1つの点のみで構成されているため、0(r=0)となる。
また、例えば図5(b)に示すように、クラスタc2に2つのコンテンツ(クラスタc3およびc4)が属する場合、クラスタc2の中心位置は、2つのコンテンツの位置を結ぶ直線上に位置し、詳細な位置はこの直線の中央となる。また、クラスタc2の半径は、2つのコンテンツの位置を結ぶ直線の半分となる。例えば、2つのコンテンツに対応するクラスタc3およびc4を結ぶ直線の距離がA1の場合、クラスタc2の半径rは、A1/2となる。
なお、クラスタリングする場合において、1つのコンテンツのみが属するクラスタ間の距離を算出する場合には、各コンテンツ間の距離を算出する。例えば、クラスタc3およびc4間の距離を算出する場合には、クラスタc3に属するコンテンツの位置と、クラスタc4に属するコンテンツの位置との間の距離を算出する。
また、例えば図5(c)に示すように、クラスタc5に少なくとも4以上のコンテンツが属する場合を考える。この場合、クラスタc5の中心位置は、クラスタc6の中心位置およびクラスタc7の中心位置を結ぶ直線上であって、クラスタc5の円とクラスタc6の円とが接する位置と、クラスタc5の円とクラスタc7の円とが接する位置とを結ぶ直線の真中の位置となる。また、クラスタc5の半径は、クラスタc6およびc7の円とクラスタc5の円とが接する位置を結ぶ直線の半分の値となる。
なお、クラスタリングする場合において、複数のコンテンツが属するクラスタ間の距離を算出する場合には、各クラスタの円の外周間の最短距離を算出する。例えば、クラスタc6およびc7間の距離は、図中に示した距離dとなる。クラスタc6の半径をA2とし、クラスタc7の半径をA3とし、クラスタc5の半径をA4とした場合には、クラスタc6およびc7間の距離dは、2(A4−A2−A3)となる。
なお、本実施形態に係る木構造生成部101で用いられるクラスタ間の距離の計算方法は、上述の方法に限定されるわけではなく、重心法(Centroid)、最短距離法、最長距離法、群間平均距離法、Ward法等の任意の方法を利用することができる。
次に、図6A〜図7を参照しながら、木構造生成部101により実施されるクラスタリング処理の具体例について説明する。図6A〜図7は、クラスタの生成方法(より詳細には、内部ツリーの生成方法)について説明するための説明図である。図6A〜図7では、5つのコンテンツC11〜C15をクラスタリングする場合について図示している。
まず、木構造生成部101は、5つのコンテンツC11〜C15に関連付けられている位置情報を参照して、これらのコンテンツを特徴空間上の平面に配置する(図6A)。次に、木構造生成部101は、各コンテンツ間の距離を計算する。この計算結果に基づいて、木構造生成部101は、コンテンツ間の距離が最も短くなったコンテンツC11およびコンテンツC12を1つのグループとしてまとめ、クラスタc21とする(図6B)。ここで、木構造生成部101は、クラスタc21を、クラスタc21の要素であるコンテンツC11およびコンテンツC12の全てを包含するように決定する。
木構造生成部101は、同様にして処理を行い、コンテンツ間の距離が次に短くなったコンテンツC14およびコンテンツC15を1つのグループとしてまとめ、クラスタc22とする(図6C)。この場合にも、木構造生成部101は、クラスタc22を、クラスタc22の要素であるコンテンツC14およびコンテンツC15の全てを包含するように決定する。
次に、木構造生成部101は、生成した2つのクラスタc21およびc22と、残っているコンテンツC13との間の距離をそれぞれ算出する。図6Cに示した場合では、クラスタc21とコンテンツC13との距離が、クラスタc22とコンテンツC13との距離よりも短くなる。そのため、木構造生成部101は、クラスタc21とコンテンツC13とを1つのグループとしてまとめ、クラスタc23とする(図6D)。この場合においても、木構造生成部101は、クラスタc23を、クラスタc21とコンテンツC18の全てを包含するように決定する。
最後に、木構造生成部101は、残っている2つのクラスタc22およびクラスタc23を1つのグループとしてまとめ、クラスタc24とする(図6E)。この場合においても、木構造生成部101は、クラスタc24を、クラスタc22およびクラスタc23の全てを包含するように決定する。例えば、木構造生成部101は、2つのクラスタc22およびc23が表す円の外接円となるように、クラスタ24を決定することができる。
木構造生成部101は、以上説明したようにコンテンツC11〜C15を順次クラスタリングし、クラスタc21〜c24を生成する。また、木構造生成部101は、生成したクラスタc21〜c24に基づいて、木構造(クラスタリング樹形図)を生成する。このようにして生成された木構造を、図7に示す。
各コンテンツC11〜C15をリーフノードとして扱うと、木構造生成部101により生成される各クラスタは、図7に示すような木構造を形成することがわかる。例えば図6Bにおいて、クラスタc21は、コンテンツC11およびコンテンツC12の全てを包含するクラスタである旨を説明した。このような包含関係は、図7において、クラスタc21から2つの枝が分岐しており、コンテンツC11およびコンテンツC12がクラスタc21の子ノードとなっていることに対応している。同様に、例えば図6Eにおいて、クラスタc24が、クラスタc22およびクラスタc23の全てを包含するクラスタである旨を説明した。このような包含関係は、図7に示した木構造において、クラスタc24から2つの枝が分岐しており、クラスタc22およびクラスタc23がクラスタc24の子ノードとなっていることに対応している。
また、図6Eおよび図7からも明らかなように、最終的に生成されたクラスタc24は、全てのコンテンツ(すなわち、全てのリーフノード)および全てのクラスタ(すなわち、ノード)を包含するものである。したがって、クラスタc24は、木構造において、ルートノードに対応するクラスタであることがわかる。
以上、木構造生成部101が実施する内部ツリーの生成処理を、具体例を挙げながら説明した。
木構造生成部101は、内部ツリーの生成処理が終了すると、続いて、以下で説明するようなクラスタツリーの生成処理を実施する。
なお、図6A〜図6Eに示したような内部ツリーの生成処理、および、以下で説明するクラスタツリーの生成処理が行われる際には、クラスタの中心位置およびクラスタ間距離を適式に算出することが好ましい。本実施形態に係る木構造生成部101は、これらの情報を算出するために、任意の方法を用いることが可能であるが、例えば、以下のような方法を用いても良い。
例えば、コンテンツデータが全部でn個存在する場合、木構造生成部101は、まず、1つのクラスタに各データが1つの要素として属するようにクラスタを設定し、全体でn個のクラスタを作成する。なお、各クラスタは、属性値として、中心点Cおよび半径rを有し、中心点Cの初期値はデータの座標値であり、半径rの初期値は0である。
次に、木構造生成部101は、クラスタに属する全要素について、クラスタ中心Cから各要素までの距離が半径r以下になるように、クラスタ中心Cと半径rとを決定する。これにより、中心点Cおよび半径rで定まる球の内部に、クラスタに属する全要素が含まれることとなる。
続いて、木構造生成部101は、クラスタ間の距離を、例えば以下のように定める。
クラスタiおよびクラスタjを併合してクラスタkが作成される場合、木構造生成部101は、クラスタiおよびクラスタjの間の距離d(i,j)を、以下の式101および式102を利用して算出することができる。
d(i,j)=r(k)−r(i)−r(j) (r(k)≧r(i)+r(j))
・・・(式101)
d(i,j)=0 (r(k)<r(i)+r(j)) ・・・(式102)
なお、上記式101および式102において、r(i)は、クラスタiの半径を表す。上記式101および式102から明らかなように、クラスタ間距離dは、クラスタを併合した場合の半径の増分に相当する。
次に、2つのクラスタが併合された後の併合後のクラスタの中心点および半径を求める方法について、図8A〜図8Cを参照しながら、簡単に説明する。図8A〜図8Cは、2つのクラスタを併合する場合における各クラスタに属する要素の包含関係を示す図である。
2つのクラスタを併合する場合、木構造生成部101は、クラスタに属する要素の包含関係に応じて、以下の(1)〜(3)の3つのパターンに場合分けをする。
(a) m(i)⊃m(j)
(b) m(j)⊃m(i)
(c) 上記以外
なお、m(i)は、クラスタiに属する全要素の集合を示し、m(j)は、クラスタjに属する全要素の集合を示している。
上記(a)が表す状況は、図8Aに示したように、クラスタjに属する全ての要素が、クラスタiに属する場合である。上記(b)が表す状況は、図8Bに示したように、クラスタiに属する全ての要素が、クラスタjに属する場合である。また、上記(c)は、上記(a)および(b)以外の状況であり、例えば、クラスタiおよびクラスタjの包含関係が、図8Cに示す関係となっている場合である。
木構造生成部101は、上記(a)〜(c)の場合分けを、クラスタiおよびクラスタjの各中心点の座標および各半径に基づいて決定する。
例えば、クラスタiの中心点の座標C(i)から半径r(i)の球が、中心点の座標C(j)および半径r(j)で構成される球からなるクラスタjを全て含む場合、木構造生成部101は、図8Aにしたような上記(a)の状況が成立していると判断する。
換言すれば、木構造生成部101は、r(i)≧r(j)+l(i,j)となる場合、上記(a)の関係が成立していると判断する。ここで、l(i,j)は、以下の式103に示すように、クラスタiおよびクラスタjの中心点間のユークリッド距離である。
l(i,j)=|C(i)−C(j)| ・・・(式103)
ここで、データの次元をdimとすると、l(i,j)は、以下の式104により表すことができる。ここで、以下の式104において、c(i,k)は、クラスタiの中心値を表す属性のk番目の値を意味する。
上記(a)の状況が成立している場合、木構造生成部101は、併合後のクラスタkの中心点および半径として、クラスタiのものをそのまま利用する。
また、上記(b)の場合は、上記(a)の場合において添え字「i」および「j」を入れ替えた場合に相当するため、木構造生成部101は、上記(a)の場合と同様に処理を行うことができる。
上記(c)の状況が成立している場合、木構造生成部101は、図8Cに示したように、クラスタiの球およびクラスタjの球を含む最小の球として、クラスタkを生成する。ここで、木構造生成部101は、クラスタkの半径を、以下の式105を用いて算出する。また、木構造生成部101は、クラスタkの中心点を、以下の式106を用いて算出する。ここで、クラスタkの中心点は、クラスタiの中心点C(i)およびクラスタjの中心点C(j)を結ぶ直線上に存在することとなる。
r(k)=(l(i,j)+r(i)+r(j))/2 ・・・(式105)
C(k)={(r(i)−r(j)+l(i,j))*C(i)
+(r(j)−r(i)+l(i,j))*C(j)}
/(2*l(i,j)) ・・・(式106)
以上説明したような方法を用いることで、木構造生成部101は、クラスタ間距離およびクラスタの中心点を決定することができる。
木構造生成部101は、このようにして算出されたクラスタの中心点(中心位置)および半径を、クラスタデータを構成するクラスタに固有な属性値とする。木構造生成部101は、内部ツリーを構成する各クラスタに固有なこれらの属性値を利用して、以下で説明するクラスタツリーの生成処理を実行する。また、後述するノード抽出部105は、任意の点がクラスタに含まれるか否かを、クラスタツリーを構成する各クラスタの属性値と、任意の点に対応する位置情報とを比較することで、容易に判断することができる。また、あるクラスタ領域は、このクラスタ領域の親クラスタのクラスタ領域に全てが含まれており、クラスタの属性値(中心位置および半径)がそのクラスタに含まれる要素の範囲を示す。そのため、後述するノード抽出部103および表示制御部107は、表示画面に表示されるクラスタと要素との対応付けを容易に行うことができる。
続いて、図9を参照しながら、木構造生成部101が行うクラスタツリーの生成処理について、簡単に説明する。図9は、クラスタの生成方法(より詳細には、クラスタツリーの生成方法)を説明するための説明図である。
内部ツリーに基づくクラスタツリーの生成処理は、図9に示したようなパラメータに則して行われる。クラスタツリーの生成処理に利用されるパラメータとして、図9では、(A)クラスタのどのような特徴量に着目するか、(B)ルートノードの位置する階層およびリーフノードの位置する階層以外に、いくつの階層を生成するか、(C)各階層のクラスタ粒度の条件、というパラメータが設定されている。具体的には、図9では、(A)クラスタの最大直径に基づいて、(B)ルートノードの位置する階層およびリーフノードの位置する階層の間に2つの階層を生成し、(C)第1階層の最大直径R≦100、第2階層の最大直径R≦50、という設定がなされている。
ここで、木構造生成部101は、生成した内部ツリーのルートノードから順に木構造を探索し、第1階層に関する条件を満たすノードを特定する。そして、木構造生成部101は、特定したノードが属する各ブランチについて、条件を満たす最上位のノードを、第1階層に属するノードとする。この結果、図9に示した例では、太字の点線でつないだ3つのノード(図の左から順に、R=53であるノード、R=46であるノード、および、R=82であるノード)が、第1階層に属するノードとして選択される。
同様にして、木構造生成部101は、生成した内部ツリーのルートノードから順に木構造を探索し、第2階層に関する条件を満たすノードを特定する。そして、木構造生成部101は、特定したノードが属する各ブランチについて、条件を満たす最上位のノードを第2階層に属するノードとする。この結果、図9に示した例では、一点鎖線でつないだ6つのノード(左から順に、R=1であるノード、R=20であるノード、R=46であるノード、左から7番目のコンテンツデータ、R=22であるノード、一番右のコンテンツデータ)が、第2階層に属するノードとして選択される。
このような処理を行うことで、木構造生成部101は、図9の右側に示したようなクラスタツリーを生成する。
木構造生成部101は、情報処理装置10が利用可能なコンテンツについて、クラスタツリーの生成が終了すると、生成した各クラスタに対して、図10に示したようなメタデータを関連付ける。このメタデータを、以下では、クラスタデータと称することとする。
クラスタデータは、生成されたクラスタそれぞれに固有の情報である。このクラスタデータには、図10に例示したように、クラスタに固有な識別情報(クラスタID)、クラスタ中心位置と半径に関する情報、クラスタに属するコンテンツ数、コンテンツリスト、子クラスタのリスト等が記録されている。
クラスタIDは、クラスタデータに対応するクラスタに固有の識別情報であり、例えば、4桁の整数値が記録される。クラスタ中心位置は、クラスタデータに対応するクラスタの中心位置を示すデータであり、特徴空間における位置を指定する情報(例えば、クラスタの中心位置に対応する緯度および経度を表す情報)が記録される。クラスタ半径は、クラスタデータに対応するクラスタの半径を示すデータであり、例えば、単位をメートル(m)とする値など、特徴空間を規定する特徴量を表すのに適した任意の形式で記録される。コンテンツ数は、クラスタデータに対応するクラスタの領域に含まれるコンテンツの数を示すデータである。コンテンツデータリストは、クラスタデータに対応するクラスタの領域に含まれるコンテンツのID(図10では整数値で表されている。)を示すデータであり、例えば、コンテンツのIDとして整数値のリストが記録される。
木構造生成部101は、クラスタリング処理が終了し、クラスタデータを生成した各クラスタに関連付けると、生成した木構造を表す木構造データ、および、クラスタデータを、後述する記憶部115等に格納する。
以上、本実施形態に係る情報処理装置10が備える木構造生成部101について説明した。続いて、本実施形態に係る情報処理装置10が備える抽出条件設定部103について、説明する。
抽出条件設定部103は、例えば、CPU、ROM、RAM等により実現される。抽出条件設定部103は、後述する入力部111またはGPS信号処理部113から通知された情報に基づいて、後述するノード抽出部105が、木構造生成部101の生成した木構造を利用してあるノードを抽出する際に用いる抽出条件を設定する。
具体的には、抽出条件設定部103は、入力部111またはGPS信号処理部113から通知された情報に基づいて、後述するノード抽出部105がノード抽出処理の際に基準として用いる位置に関する情報を生成し、生成した位置情報を抽出条件とする。
抽出条件設定部103が設定する位置情報は、木構造生成部101によって設定された特徴空間の種別に対応したものとなる。例えば、特徴空間が、緯度・経度といった球表面上の位置を表す特徴量により規定されたものである場合、抽出条件設定部103は、緯度・経度といった特徴量で記載された位置情報を、抽出条件として設定する。また、特徴空間が、2次元ベクトルにより規定される平面空間である場合、抽出条件設定部103は、所定の2次元ベクトルで記載された位置情報を、抽出条件として設定する。また、特徴空間が、時刻のようなスカラー量で規定される1次元空間である場合、抽出条件設定部103は、所定のスカラー量で記載された位置情報を、抽出条件として設定する。
抽出条件設定部103は、設定した位置情報を、後述するノード抽出部105に出力する。
ノード抽出部105は、例えば、CPU、ROM、RAM等により実現される。ノード抽出部105は、木構造生成部101が生成した木構造を利用し、抽出条件設定部103により設定された抽出条件に基づいて、木構造を構成するノードの中から、1または複数のノードを抽出する。
より詳細には、ノード抽出部105は、抽出条件設定部103により任意の位置情報が抽出条件として指定されると、指定された位置情報が属する木構造中のノードに対応付けられたクラスタデータを参照して、指定された位置情報が、どのノードに属するかを特定する。また、ノード抽出部105は、特定したノードの木構造における位置に応じて、木構造中に存在するノードのなかから、指定された位置情報が属するノード以外の1または複数のノードを抽出する。
ここで、ノード抽出部105は、木構造中に存在するノード(すなわちクラスタ)のなかから、(i)特定したノードの子ノードである全てのノードと、(ii)特定したノードの親ノードから分岐する、特定したノード以外のノード(すなわち兄弟ノード)と、を抽出する。更に、ノード抽出部105は、特定したノード、および、特定したノードの兄弟ノードの親ノードを、新たに着目ノードとし、着目ノードの親ノードから分岐する当該着目ノード以外のノード(すなわち、着目ノードの兄弟ノード)を更に抽出する。ノード抽出部105は、このようなノード抽出処理を、着目ノードがルートノードとなるまで繰り返す。
また、木構造生成部101が生成した木構造によっては、抽出条件設定部103により設定された位置情報が、木構造中の複数のノードに属する場合(換言すれば、位置情報が複数のクラスタに属する場合)も生じうる。このような場合、ノード抽出部105は、設定された位置情報が属する複数のノードのうち、ルートノードから最も深い位置に存在するノードを、指定された位置情報が属するノードとすることが好ましい。
以下では、上述のようなノード抽出部105が行うノード抽出処理について、図11〜図17を参照しながら、具体的に説明する。
なお、以下の説明では、特徴空間が、地球表面上における位置を表現する球表面上の位置空間であるものとし、特徴空間上の任意の位置は、緯度および経度によって定義されるものとする。また、特徴空間でのデータ間距離は、図11に示した、いわゆる大圏距離で定義されるものとする。
大圏距離は、球面上の2地点間の距離を表すものであり、図11に示した曲線dの長さに相当するものである。この大圏距離dは、2つの地点の球面上での座標をそれぞれ(lat1,long1)、(lat2,long2)と表した場合に、以下の式107によって算出される値である。
このような特徴空間のもとで、メタデータとして緯度・経度に関する情報を含む画像コンテンツをクラスタリングした結果得られる木構造(クラスタツリー)の例を、図12に示した。図12に示した木構造は、木構造生成部101により生成されるものであるが、この木構造は、画像コンテンツが撮像された場所に着目してクラスタリングを行った結果を表しているものといえる。
図12において、リーフノードであるノードa〜ノードrが、それぞれの画像コンテンツのコンテンツデータに対応しており、木構造において、第4階層に位置している。また、第3階層〜第0階層に位置するノードが、木構造生成部101によるクラスタリングの結果生成されたクラスタツリーの各クラスタに対応している。
図6A〜図9で説明したように、木構造生成部101におけるクラスタリングは、データ間距離(またはクラスタ間距離)が近いもの同士をクループとみなすことで実施される。したがって、各クラスタが示す領域は、図12の左側にクラスタの直径を用いて示したように、第4階層から第0階層に向かうにしたがって、広いものとなる。また、図12に示した木構造では、図9で説明したように階層ごとにサイズの上限(図12では、クラスタの直径の上限)が決まっており、階層ごとにノードの粒度(クラスタの粒度)を合わせるようになっている。
ここで、第0階層から第3階層に位置するクラスタにつけられた名前は、あくまでも説明の都合上設けたものであって、木構造生成部101によって生成されるクラスタそれぞれに、クラスタが表す実空間での領域を特徴付けるような名前が付与されていなくともよい。また、木構造生成部101は、各クラスタをユーザに提示するような状況が生じうる場合には、コンテンツのメタデータに記載されている住所を表す情報や、ユーザによって入力された各種情報等を参照して、各クラスタに対して具体的な名前を付与してもよい。
ここで、図12に示した第4階層に位置するリーフノード「j」、「k」、「l」に着目する。これらのリーフノードに対応するコンテンツデータは、メタデータに記載されている位置に関する情報が互いに近い場所になっており、特徴空間上で互いの距離が近いデータとなっている。そのため、これら3つのデータは1つのグループとしてまとめられ、「東京展望台」というノード(クラスタ)に包含されている。なお、このノードに「東京展望台」というランドマークが付与されているのは、リーフノードj〜lに関連付けられた位置に関する情報が、「東京展望台」という場所の周辺を示す情報だからである。
また、図12において、「新宿庭園」という名前が付与されているノードは、「新宿庭園」というランドマーク周辺を表す位置情報を有しているリーフノードg〜リーフノードiを包含したノードである。この「新宿庭園」というノードと「東京展望台」というノードとは、互いに距離が近いため、それぞれ「東京」というノードに包含されている。
また、「東京展望台」というノードが「東京」というノードに包含される、といったように、親子関係にあるノード間ではクラスタ領域の重複があるものの、それ以外のノード間、例えば「東京」と「名古屋」というノード間には、クラスタ領域の重複はない。すなわち、この木構造は、先に示した木構造の5つの特徴(1)〜(5)の全てを有する木構造である。
図12に示したような木構造が木構造生成部101によって生成されている際に、抽出条件設定部103から、ある位置情報が抽出条件として設定された場合におけるノード抽出部105の処理を、図13〜図15を参照しながら具体的に説明する。
図13は、抽出条件設定部103から「東京展望台」ノードの領域内に位置する位置情報が通知された場合に抽出されるノードの木構造における位置関係を示している。
かかる場合において、ノード抽出部105は、まず、木構造生成部101に対して、現在生成されている木構造の有無を問い合わせ、木構造生成部101から、図13に示したような木構造(クラスタツリー)に関する木構造データを取得する。続いて、ノード抽出部105は、通知された位置情報が、どのノードに含まれるのかを、第0階層から順に判定していく。この判定処理は、通知された位置情報と、各ノードに対応するクラスタデータに記載されているクラスタ中心位置およびクラスタ半径等により規定されるクラスタ領域と、を比較することで行われる。
図13に示した例の場合、ノード抽出部105は、通知された位置情報が属するノードを検索していき、第0階層から順に、「日本」ノード、「首都圏」ノード、「東京」ノード、「東京展望台」ノードという4つのノードに属している旨を把握する。
続いて、ノード抽出部105は、通知された位置情報が属するノードのうち、一番下位の階層に位置するノードを選択する。図13に示した例の場合、ノード抽出部105は、「東京展望台」というノードを選択し、ノード抽出処理の開始ノードとする。
次に、ノード抽出部105は、開始ノードである「東京展望台」の全ての子ノードであるリーフノードj、リーフノードk、リーフノードlを抽出する。また、ノード抽出部105は、開始ノードである「東京展望台」の兄弟ノードである「新宿庭園」ノードを抽出する。
続いて、ノード抽出部105は、「東京展望台」ノードおよび「新宿庭園」ノードの親ノードである「東京」ノードを着目ノードとし、着目ノードである「東京」ノードの兄弟ノードである「千葉」ノードを抽出する。
次に、ノード抽出部105は、抽出したノードである「千葉」ノードおよび着目ノードである「東京」ノードの親ノードである「首都圏」ノードを、新たな着目ノードとし、着目ノードである「首都圏」ノードの兄弟ノードである「中京圏」ノードを抽出する。
続いて、ノード抽出部105は、抽出した「中京圏」ノードと着目ノードである「首都圏」ノードとの親ノードである「日本」ノードを、新たな着目ノードとする。ここで、図13に示した木構造において「日本」ノードはルートノードであるため、ノード抽出部105は、ノードの抽出処理を終了する。
ノード抽出部105は、以上のような抽出処理を行った結果、木構造中に存在するノードの中から、リーフノードj〜l、「新宿庭園」ノード、「千葉」ノード、および、「中京圏」ノードを、指定位置を基準としたクラスタリングの結果として抽出する。
図14は、抽出条件設定部103から、「千葉」ノードの領域内に位置するものの、「千葉」ノードの子ノードのいずれの領域にも含まれない位置情報が通知された場合に抽出されるノードについて、木構造における位置関係を示したものである。
ノード抽出部105は、図14に示した例においても、図13に示した例と同様にして、通知された抽出条件である位置情報が属するノードを選択する。この例の場合、ノード抽出部105は、「千葉」ノードを、ノード抽出処理の開始ノードとして選択する。
次に、ノード抽出部105は、「千葉」ノードの子ノードである「千葉遊園地」ノードと、「千葉展示場」ノードを抽出する。また、ノード抽出部105は、開始ノードである「千葉」ノードの兄弟ノードである「東京」ノードを抽出する。
続いて、ノード抽出部105は、「千葉」ノードと「東京」ノードの親ノードである「首都圏」ノードを着目ノードとし、着目ノードである「首都圏」ノードの兄弟ノードである「中京圏」ノードを抽出する。
続いて、ノード抽出部105は、抽出した「中京圏」ノードと着目ノードである「首都圏」ノードとの親ノードである「日本」ノードを、新たな着目ノードとする。ここで、図14に示した木構造において「日本」ノードはルートノードであるため、ノード抽出部105は、ノードの抽出処理を終了する。
ノード抽出部105は、以上のような抽出処理を行った結果、木構造中に存在するノードの中から、「千葉遊園地」ノード、「千葉展示場」ノード、「東京」ノード、および、「中京圏」ノードを、指定位置を基準としたクラスタリングの結果として抽出する。
図15は、抽出条件設定部103から、「日本」ノードの領域内に位置するものの、「日本」ノードの子ノードのいずれの領域にも含まれない位置情報が通知された場合に抽出されるノードについて、木構造における位置関係を示したものである。
ノード抽出部105は、図15に示した例においても、図13に示した例と同様にして、通知された抽出条件である位置情報が属するノードを選択する。この例の場合、ノード抽出部105は、「日本」ノードを、ノード抽出処理の開始ノードとして選択する。
ノード抽出部105は、ノード抽出処理の開始ノードが木構造のルートノードである場合には、ルートノードの全ての子ノード(すなわち、第1階層に属する全てのノード)を抽出して、ノード抽出処理を終了する。したがって、図15に示した例では、ノード抽出部105は、開始ノードがルートノードである旨を把握すると、ルートノードの子ノードである「首都圏」ノードおよび「中京圏」ノードを抽出し、ノード抽出処理を終了する。
なお、抽出条件設定部103から通知された位置情報が、木構造生成部101から取得した木構造のルートノードにも含まれない場合も生じうる。このような場合、ノード抽出部105は、木構造のルートノードを抽出して処理を終了する。例えば、図12に示したような木構造の場合において、ルートノードである「日本」ノードに含まれないような位置情報が抽出条件設定部103から通知された場合、ノード抽出部105は、ルートノードである「日本」ノードを抽出して処理を終了する。
次に、図16および図17を参照しながら、親子関係にないノード間に領域の重複がある木構造(すなわち、先に示した5つの木構造の特徴のうち、(5)の特徴を有しないもの)を用いた場合のノード抽出処理について、説明する。
図16および図17に示した木構造では、各図の右上に示したベン図(Venn diagram)のように、ノードIが、2つのノード(ノードDおよびノードE)の領域の双方に属している。
図16は、かかる場合において、抽出条件設定部103から、ノードIの領域内に属する位置情報が通知された場合に抽出されるノードについて、木構造における位置関係を示したものである。
ノード抽出部105は、木構造生成部101から取得した木構造を参照して、親子関係にないノード間に領域の重複がある旨を把握すると、以下で説明するような処理を行う。
ノード抽出部105は、まず、ルートノードから分岐したそれぞれのブランチにおいて、通知された位置情報が含まれるノードがどのノードかを判定する。図16に示した例の場合、ノード抽出部105は、通知された位置情報が、ノードCから分岐した流れに属するノードIと、ノードCから分岐した流れに属するノードEとに、含まれる旨を把握する。
ノード抽出部105は、指定された位置情報が含まれる複数のノードを特定すると、続いて、これら複数のノードのうち、最も下層に位置するノードがどれかを判断し、最も下層に位置するノードを、ノード抽出処理の開始ノードとして選択する。図16に示した例の場合、ノードEは第2階層に属しており、ノードIは第3階層に属している。したがって、ノード抽出部105は、第3階層に属しているノードIを、ノード抽出処理の開始ノードとして選択する。この時点で、選択状態となっているノードは1つのみであるため、以下の処理は、図13で説明した場合と同様の処理が行われる。その結果、図16に示したように、ノード抽出部105は、リーフノードj〜lと、ノードHと、ノードEと、ノードBとを、指定位置を基準としたクラスタリングの結果として抽出する。
他方、図17に示した例は、抽出条件設定部103から通知された位置情報が、図中のベン図に示したように、ノードDおよびノードEの双方に含まれる場合に、ノード抽出部103により抽出されるノードを示したものである。
ノード抽出部105は、指定された位置情報が含まれる複数のノードを特定した結果、ノードDおよびノードEが、開始ノードの候補となることを把握する。続いて、ノード抽出部105は、木構造生成部101から取得した木構造に基づいて、どちらのノードがより下層に位置するかを判断する。本例の場合、ノード抽出部105は、2つのノードがともに同じ階層に属することを認識する。このように、開始ノードの候補となる複数のノードが同一の階層に属している場合には、ノード抽出部105は、同一の階層に属している複数のノードを、それぞれ開始ノードとして扱う。本例の場合、ノード抽出部105は、ノードDおよびノードEを、ノード抽出処理の開始ノードとして選択する。
次に、ノード抽出部105は、開始ノードの全ての子ノードを抽出する。図17に示した例では、ノード抽出部105は、ノードDおよびノードEそれぞれの子ノードであるノードH〜ノードKを抽出する。続いて、ノード抽出部105は、開始ノードの兄弟ノードを全て抽出する。しかし、図17に示した例では、開始ノードであるノードDおよびノードE以外に、ノードCの子ノードとなっているノードは存在しない(すなわち、ノードDおよびノードE以外の兄弟ノードは存在しない)ため、ノード抽出部105は、何も選択しない。
次に、ノード抽出部105は、各開始ノードの親ノードを着目ノードとして、ノードの抽出を継続する。本例の場合、開始ノードであるノードDおよびノードEの親ノードは、ともにノードCであるため、ノード抽出部105は、2つ存在した選択状態を1つにまとめ、ノードCのみを着目ノードとして、処理を継続する。
ノード抽出部105は、かかる処理を、着目ノードの親ノードが存在しなくなるまで繰り返す。その結果、図17に示した例では、ノード抽出部105は、ノードH、ノードI、ノードJ、ノードKおよびノードBを、指定位置を基準としたクラスタリングの結果として抽出する。
なお、木構造において、ルートノードは1つしか存在しないため、複数存在した選択状態は、最終的にはルートノードにおいて1つに統合されることとなる。
以上の例では、抽出条件設定部103により、ある特徴空間上の点が指定された場合における、ノード抽出部105の処理について述べてきたが、位置だけでなく、範囲を伴うある特徴空間上の領域が指定された場合の処理について、以下で説明する。
この処理は、例えばクラスタリング結果をいずれかに表示するようなケースにおいて、現在のビュー(表示可能領域)に依存したクラスタリングを行うような場合に行うことが可能な処理である。例えば、情報処理装置10が備える表示部109の表示画面に、日本全体が表示されるような縮尺の地図が表示されている場合を考える。この際に、抽出条件設定部103から、ある点を中心とした円で表される領域が、抽出条件として通知されたとする。
ここで、抽出条件設定部103から通知された位置情報が、図12に示したランドマーク「東京展望台」の周辺だった場合、上述の方法であれば、リーフノードj,k,lが抽出されることになる。このような粒度に対応する情報(例えば、画像コンテンツのサムネイル画像)が表示画面に表示されたとする。この場合、日本全体が表示されている地図における「東京展望台」周辺の大きさは微小なものとなると推察されるため、これらのノードに対応する情報は、互いに重なり合ってしまうと考えられる。そのため、かかる状況において、選択されたノードよりも粒度の高い「東京展望台」や「東京」などといったノード粒度で表示画面上に抽出結果を表示した方が、ユーザの視認性を高めることとなり、より適切であるといえる。
そこで、かかる場合に対応するために、ノード抽出部105は、図18に示したような木構造における階層レベルに対応した下限と指定領域の半径との対応関係を、予め設定しておき、後述する記憶部115等に格納しておく。
図18に示した例では、例えば、抽出条件設定部103から通知された領域が、ある位置を中心とし、半径20kmの円であった場合、ノード抽出部105は、図18のような表(またはデータベース)を参照して表示する階層レベルの下限を調べ、階層レベルの下限が第3階層であることを把握する。この場合、ノード抽出部105は、図13〜図15で説明した処理において、与えられた木構造は第3階層が末端である(すなわち、それ以上子ノードが存在しない)として、抽出ノードの決定を行うことが可能である。
これにより、例えば、指定位置のみの条件設定であればノード「j」「k」「l」が抽出され得るケースにおいて、階層レベルの下限が3であった場合、ノード抽出部105は、これら3ノードの代わりに「東京展望台」というノードを抽出することになる。
なお、上述の説明では、指定される領域が、ある位置を中心とした円であるとしたが、この指定領域は、長方形などで表される矩形領域であってもよい。この場合には、長方形の短辺の半分、または、長辺と短辺の平均の半分を、上述の指定半径と置き換えて用いることが可能である。
また、円形や矩形ではなく、任意の形状を領域として指定することも可能である。この場合には、領域面積の平方根(n次元であれば、体積の1/n乗)を、上述の指定半径と置き換えて用いることが可能である。
また、上述の例では、指定された領域の大きさに応じて、表示する階層レベルの下限を決定する場合について説明したが、指定された領域の大きさに応じて、表示する階層レベルの上限を決定してもよい。
なお、ノード抽出部105は、図18に示したような対応表を予め生成しておくのではなく、データ構造に応じて自動で生成するようにしてもよい。例えば、各階層において、まず同階層における最大のサイズを調査し、このサイズに予め定めた関数(例えば、最大サイズの定数倍)を作用させ、その階層レベルを下限とする指定半径を、逆に算出してもよい。
また、上述の例のような地球表面上の位置を表現する場合でも、データの存在区間が局所的である場合には、球表面を近似的に平面とみなすこともできる。そのため、緯度をx、経度をyとした2次元の特徴平面を考え、距離に関してもユークリッド距離で近似するようにして生成されたデータ構造(木構造)を用いてもよい。この場合であっても、先に説明した方法と同様にして、同様の結果を得ることが可能である。
更に、特徴空間は、1次元の時刻空間であってもよい。この場合には、特徴空間上の位置は、スカラー量である時刻で定義され、特徴空間上でのデータ間の距離は、時刻差で定義される。このような特徴空間に対して先だって説明したような処理を行うことで、特定の時刻を基準としたグループ分けを実現することができる。
例えば、特定の時刻として現在時刻を指定する場合を考える。また、データは、写真の撮影時刻を表すものであるとする。この場合、最近撮影した写真ほど細かい粒度でクラスタリングされることとなり、また撮影後時間のたった過去の写真ほど、大きな粒度でクラスタリングされることになる。そのため、例えば直近の写真は日単位くらいの粒度でクラスタリングされる一方、数か月前くらいの写真は月単位になり、さらに数年前の写真になると年単位でクラスタリングされるような効果を得ることができる。
以上説明したように、本実施形態に係るノード抽出部105では、位置情報が指定される毎に、木構造を構築してクラスタリングを行うのではなく、特徴空間におけるデータ間の距離に基づいて予め構築された木構造(クラスタツリー)を利用して、指定された位置情報が木構造のどのノードに属するかを判断しながら、ノードを抽出する。これにより、指定される位置情報が時々刻々と変化する場合であっても、その都度クラスタリングを再実行しなくてもよくなり、特徴空間における特定の位置からの距離に基づきクラスタ粒度を変化させるようなクラスタリングを、クラスタリングに要する負荷を抑制しながら行うことが可能となる。
以上、本実施形態に係るノード抽出部105の機能について、詳細に説明した。
続いて、再び図3に戻って、本実施形態に係る表示制御部107について説明する。
表示制御部107は、例えば、CPU、ROM、RAM等により実現される。表示制御部107は、後述する入力部111から、クラスタの閲覧を指示するユーザ操作がなされた旨の通知を受けると、ノード抽出部105によって抽出されたノード(すなわち、クラスタ)に基づいて、後述する記憶部115等に格納されているコンテンツを取得する。その後、表示制御部107は、取得した画像コンテンツを抽出されたクラスタに基づいてグループ化して閲覧ビューを構成し、この閲覧ビューを後述する表示部109に表示させる表示制御を行う。
また、表示制御部107は、必要に応じて、木構造生成部101またはノード抽出部105に対して、木構造データの伝送を要請してもよい。また、表示制御部107は、必要に応じて、木構造生成部101またはノード抽出部105に対して、木構造がどのようになっているのか、または、あるノードの親ノード、子ノード、兄弟ノード等を問い合わせてもよい。
表示制御部107で行われる表示部109の表示制御方法については、以下で改めて詳細に説明する。
表示部109は、本実施形態に係る情報処理装置10が備える表示装置の一例である。表示部109は、情報処理装置10が実行可能な各種のコンテンツや、各種のアプリケーションの実行画面等を表示する表示部である。また、表示部109には、各種コンテンツの動作や、各種アプリケーションの実行状況等を操作するために利用される各種のオブジェクトが表示されてもよい。
表示部109が備える表示画面には、表示制御部107による制御によって、様々な情報が表示される。表示部109に表示される表示画面の一例については、以下で改めて詳細に説明する。
入力部111は、本実施形態に係る情報処理装置10が備える入力装置の一例である。この入力部111は、例えば、CPU、ROM、RAM、入力装置等により実現される。入力部111は、情報処理装置10が備えるキーボード、マウス、タッチパネル等になされたユーザ操作を、なされたユーザ操作に対応する電気的な信号に変換して、抽出条件設定部103および表示制御部107に通知する。例えば、ユーザによって、表示画面のある地点を指定する操作や、表示画面のある地点を中心とする領域を指定する操作がなされた場合、入力部111は、かかる地点や領域を表す情報を生成して、抽出条件設定部103等に出力する。
GPS信号処理部113は、例えば、CPU、ROM、RAM、通信装置等により実現される。GPS信号処理部113は、GPS受信アンテナ(図示せず。)で受信されたGPS信号に基づいて、情報処理装置10が位置している場所(正確には、GPS信号を受信した場所)の位置情報を算出する。GPS信号処理部113は、算出した位置情報を、抽出条件設定部103に出力する。なお、この算出された位置情報には、緯度、経度、高度等の各種メタデータが含まれている。
記憶部115は、本実施形態に係る情報処理装置10が備えるストレージ装置の一例である。この記憶部115には、情報処理装置10が有する各種のコンテンツデータ、および、コンテンツデータに対応付けられたメタデータ等が格納されてもよい。また、記憶部115には、木構造生成部101が生成した木構造に対応する木構造データが格納されてもよい。また、記憶部115には、表示制御部107が、各種の情報を表示部109に表示するために利用する各種のアプリケーションに対応する実行データが格納されてもよい。また、この記憶部115には、情報処理装置10が何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が適宜格納される。この記憶部115は、本実施形態に係る情報処理装置10が備える各処理部が、自由に読み書きを行うことが可能である。
なお、本実施形態に係る情報処理装置10は、位置情報およびコンテンツの生成時刻をコンテンツや付加データファイルから取得する機能を有する装置であればよい。例えば、デジタルスチルカメラ、デジタルビデオカメラ等の撮像装置、記憶装置内蔵マルチメディアコンテンツビューワー、コンテンツを記録保存閲覧することが可能な携帯情報端末、ネットワーク上の地図サービスと連携したコンテンツ管理閲覧サービス、パーソナルコンピュータのアプリケーションソフト、写真データ管理機能を有する携帯ゲーム端末、記憶装置を有するカメラ付き携帯電話機、記憶装置、写真データ管理機能を有するデジタル家電やゲーム機に適用することができる。なお、記憶装置の容量が大きいほどグループ化の効果を発揮するものの、記憶容量の大小にかかわらず、本実施形態に係る機能を適用することができる。
以上、本実施形態に係る情報処理装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る情報処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
また、上述の説明では、木構造の各ノードが超球である場合を例にとったが、木構造の各ノードが上述の例に限定されるわけではない。例えば、木構造におけるノード領域を、長方形をもちいてノードの領域を表現する手法(R−Tree法)、長方形と円を組み合わせてノードの領域を表現する手法(SR−Tree法)、多角形を用いて表現する方法等を利用して、表現してもよい。
<ノードの抽出方法について>
次に、図19および図20を参照しながら、本実施形態に係る情報処理装置10が実施する情報処理方法(より詳細には、ノードの抽出方法)について、簡単に説明する。図19および図20は、本実施形態に係る情報処理装置10が実施するノードの抽出方法を説明するための流れ図である。
なお、以下の説明に先立ち、木構造生成部101により情報処理装置10が利用可能なコンテンツデータについて上述のような木構造(クラスタツリー)が生成されており、ノード抽出部105が、木構造生成部101から木構造に対応する木構造データを取得しているものとする。
まず、図19を参照しながら、親子関係にあるノード間にのみ領域の重複がある木構造(すなわち、先に説明した木構造の5つの特徴(1)〜(5)の全てを有する木構造)を用いたノードの抽出方法について、簡単に説明する。
まず、ノード抽出部105は、抽出条件設定部103から、ノード抽出処理を行う際の基準となる位置に関する位置情報が通知されると、指定された位置情報が、木構造に関連する特徴空間のどの位置に該当するものであるのかを特定する(ステップS101)。次に、ノード抽出部105は、木構造中に存在するノードが占める特徴空間における領域と、指定された位置情報の特徴空間上での位置とを比較することで、ルートノードから順に、指定位置がノードに含まれているかを判定する(ステップS103)。次に、ノード抽出部105は、抽出条件設定部103が指定した指定位置が含まれる最も下層のノードを、ノード抽出処理の開始ノードとして選択する(ステップS105)。
次に、ノード抽出部105は、選択中のノードを表す識別情報を、パラメータPの内容として設定する(ステップS107)。続いて、ノード抽出部105は、抽出処理済みのノードを表すパラメータCの内容を、空データ(null)に初期化する(ステップS109)。
その後、ノード抽出部105は、パラメータPの内容が空データではない間、以下のステップS113およびステップS115を繰り返す(ステップS111)。
ステップS113は、木構造生成部101から取得した木構造データを参照しながら、ノード抽出部105が、パラメータPで表されるノードの子ノードのうち、パラメータCに記載されているもの以外のノードを全て抽出するステップである。
また、ステップS115は、パラメータの更新を行うステップである。すなわち、ノード抽出部105は、現在パラメータPに記載されている内容を、新たにパラメータCの内容として設定する。また、ノード抽出部105は、新たに設定されたパラメータCで表されるノードの親ノードを、新たにパラメータPの内容として設定する。
このようなステップS113およびステップS115を、ステップS111に示した条件が成立している間繰り返すことにより、ノード抽出部105は、図12〜図15で説明したようなノード抽出処理を実行することができる。
続いて、図20を参照しながら、親子関係にあるノード間以外に領域の重複がある木構造(すなわち、先に示した5つの木構造の特徴のうち、(5)の特徴を有しないもの)を用いたノードの抽出方法について、簡単に説明する。
まず、ノード抽出部105は、抽出条件設定部103から、ノード抽出処理を行う際の基準となる位置に関する位置情報が通知されると、指定された位置情報が、木構造に関連する特徴空間のどの位置に該当するものであるのかを特定する(ステップS201)。次に、ノード抽出部105は、木構造中に存在するノードが占める特徴空間における領域と、指定された位置情報の特徴空間上での位置とを比較することで、ルートノードから順に、指定位置がノードに含まれているかを判定する(ステップS203)。次に、ノード抽出部105は、抽出条件設定部103が指定した指定位置が含まれる最も下層のノードPiをノード抽出処理の開始ノードとして選択し、リストLに入力する(ステップS205)。
次に、ノード抽出部105は、各種パラメータの設定を行う。すなわち、ノード抽出部105は、パラメータPi.ptrに、選択したノードへのポインタを指定し、パラメータPi.ignore_listを空データとする(ステップS207)。
続いて、ノード抽出部105は、パラメータP0.ptrの内容が空データではない間、以下のステップS211〜ステップS219を繰り返す(ステップS209)。
ステップS211は、木構造生成部101から取得した木構造データを参照しながら、ノード抽出部105が、パラメータPi.ptrで表されるノードの子ノードのうち、パラメータPi.ignore_listに記載されていないノードを全て抽出するステップである。
ステップS213は、パラメータの更新を行うステップである。すなわち、ノード抽出部105は、現在パラメータPi.ptrに記載されているポインタを、パラメータPi.ignore_listに入力する。また、ノード抽出部105は、Pi.ptrで表されるノードの親ノードを、新たにパラメータPi.ptrの内容として設定する。
ステップS215は、ノード抽出部105は、Pi.ptrの内容が同一となるノードPi,Pjの組が存在するかを調査するステップである。ステップS217による判定ステップにより、Pi.ptrが同一となる(i,j)の組み合わせが存在した場合、ノード抽出部105は、以下の処理を実行する。すなわち、ノード抽出部105は、Pi.ignore_listとPj.ignore_listを統合して、新たにPi.ignore_listとするとともに、リストLからPjを削除する(ステップS219)。また、Pi.ptrが同一となる(i,j)の組み合わせが存在しない場合には、ノード抽出部105は、かかるステップS219の処理は実行しない。
このようなステップS211〜ステップS219を、ステップS209に示した条件が成立している間繰り返すことにより、ノード抽出部105は、図16〜図17で説明したようなノード抽出処理を実行することができる。
なお、図20に示したノード抽出方法は、図19に示したノード抽出方法をより一般化したものであるため、図20に示した方法にて図12〜図15に示したようなケースも扱うことが可能である。ただし、処理を一般化しなくてもよいのであれば、処理が単純である図19に示した方法を利用することが好ましい。
以上、本実施形態に係る情報処理装置10で実施されるノード抽出方法について、簡単に説明した。続いて、図21〜図26を参照しながら、本実施形態に係る表示制御部107が実施する表示制御方法および表示部109の表示画面の一例について、詳細に説明する。
<表示画面の一例について>
まず、図21〜図25を参照しながら、本実施形態に係る表示制御部107が表示制御することによって表示部109に表示される表示画面の一例について、詳細に説明する。
なお、以下では、表示制御部107が、コンテンツデータに対応するサムネイルやアイコン等といったオブジェクトを、コンテンツデータに関連付けられた位置情報に応じた表示位置に表示するアプリケーションを実施している場合について説明する。以下の説明では、このようなアプリケーションとして、指定された位置周辺の地図を表示する地図アプリケーションを例にとり、静止画コンテンツおよび動画コンテンツといった画像コンテンツに対応するオブジェクトを表示する場合を考える。
また、以下の説明に先立ち、情報処理装置10が実行可能なコンテンツに関する木構造(クラスタツリー)が予め構築されているものとする。
この地図アプリケーションを起動する操作がユーザによってなされ、そのユーザ操作に対応する操作信号が入力部111から通知されると、表示制御部107は、該当する地図アプリケーションのプログラム本体を記憶部115等から取得して実行し、表示部109の表示画面に、所定の位置周辺の地図を表示する。ここで、表示画面に最初に表示される位置は、GPS信号処理部113によって通知される現在位置であってもよく、入力部111によって通知される、ユーザによって指定された位置であってもよい。
ここで、表示制御部107は、この地図アプリケーションを実行して実行画面を生成する際に、入力部111またはGPS信号処理部113等から指定された位置が、実行画面の中央に位置するように調整を行う。
他方、入力部111またはGPS信号処理部113により指定された位置に関する情報は、抽出条件設定部103を介して、ノード抽出部105にも通知されている。ノード抽出部105は、先だって説明したような処理を行って、予め構築されている木構造中に含まれるノード(クラスタ)の中から、1または複数のノードを抽出し、表示制御部107に出力する。
ここで、表示制御部107は、情報処理装置10が利用可能なコンテンツの一覧を実行画面に表示する際に、コンテンツに対応する位置情報が表す位置と、実行画面の中央位置との間の離隔距離に応じて、表示画面に表示するコンテンツのオブジェクトを変更する。
より詳細には、表示制御部107は、実行画面として表示画面に表示されている領域内にコンテンツが含まれている場合(コンテンツの位置情報が表示領域内の位置を示すものである場合)には、該当するコンテンツのサムネイル画像等のオブジェクトを表示する。換言すれば、表示制御部107は、コンテンツデータに対応するリーフノードの親ノードとして表されるクラスタを考え、クラスタ領域の少なくとも一部が実行画面として表示されている領域内に含まれる場合、該当するコンテンツデータのサムネイル画像等を表示画面に表示する。
また、コンテンツに対応する位置情報が表す位置が、表示画面に表示されている領域に含まれない場合も生じうる。この場合、表示制御部107は、ノード抽出部105から通知されたノードのうち該当するコンテンツを包含するノード(クラスタ)を利用して、このクラスタに対応するオブジェクトを表示画面に表示する。この際、クラスタに対応するオブジェクトとして、クラスタに付与された名前を用いることが好ましい。
例えば、図13に示したような場合を例にとって、具体的に説明する。この際、表示画面の中央位置は、「東京展望台」というノードに含まれているものとし、表示画面には、「東京展望台」周辺の地図が表示されているものとする。
かかる場合において、リーフノードj〜lに対応するコンテンツは、その位置情報が表示画面に表示されている領域に含まれる。したがって、表示制御部107は、リーフノードj〜lに対応するコンテンツのサムネイル画像等をオブジェクトとして利用し、表示画面に表示する。
また、リーフノードg〜iに対応するコンテンツは、その位置情報が表示画面に表示されている領域に含まれない。そのため、表示制御部107は、ノード抽出部105によって抽出されたノードであり、かつ、これらのリーフノードを包含するノードである「新宿庭園」ノードを利用し、このノードに対応するオブジェクトを表示する。
同様に、リーフノードm〜rに対応するコンテンツは、その位置情報が表示画面に表示されている領域に含まれない。したがって、表示制御部107は、ノード抽出部105によって抽出されたノードであり、かつ、これらのリーフノードを包含するノードである「千葉」ノードを利用し、このノードに対応するオブジェクトを表示する。
また、リーフノードa〜fに対応するコンテンツは、その位置情報が表示画面に表示されている領域に含まれない。したがって、表示制御部107は、ノード抽出部105によって抽出されたノードであり、かつ、これらのリーフノードを包含するノードである「中京圏」ノードを利用し、このノードに対応するオブジェクトを表示する。
表示制御部107は、このような表示制御を行うことで、表示画面の中央位置からの距離に応じたクラスタリング粒度で、情報処理装置10が実行可能なコンテンツの一覧を、ユーザに提示することが可能となる。
以上のような処理により生成される表示画面の一例を、図21に示す。なお、図21に示した表示画面は、図12〜図17に示した木構造とは異なる木構造を用いて生成されたものである。なお、表示画面の生成に用いられた木構造は、地球表面上における位置を表現する特徴空間に基づくものである。
図21の中央に示した図のように、本実施形態に係る表示制御部107は、表示画面の中央位置からの距離に応じて、コンテンツデータに対応するオブジェクトの表示態様を変化させながら、当該オブジェクトを表示画面中に表示させる。
図21の中央に示した図の場合、コンテンツAおよびコンテンツBについては、その位置情報が表示画面に表示された領域内に含まれるものであったため、サムネイル画像301が表示されている。また、情報処理装置10が利用可能な他のコンテンツについては、その位置情報が表示画面に表示された領域内に含まれないため、該当するクラスタを表すオブジェクト(以下、クラスタオブジェクトと称する。)303が表示されている。
また、クラスタを表すオブジェクトであるクラスタオブジェクト303には、図21に示したように、矢印等の方向指示オブジェクト305が設けられる。
表示画面中に複数のクラスタオブジェクト303が配置される場合も生じうる。この場合、表示制御部107は、クラスタオブジェクト303および方向指示オブジェクト305がなるべく重なりあわないように、その表示位置を調整することが好ましい。
この方向指示オブジェクト305は、その先端が、対応するクラスタオブジェクト303の中心位置の方向に向くように表示画面中に表示される。以下、図22A〜図22Cを参照しながら、方向指示オブジェクト305の描画方法について、簡単に説明する。なお、図22A〜図22Cに示した座標系は、表示画面の中央を原点とする、表示画面中の各位置を表すための座標系である。
図22Aは、表示画面に表示されている表示領域と、クラスタAとの位置関係を模式的に表した図である。図22Aに示したように、表示制御部107は、クラスタAに対応するクラスタオブジェクトに方向指示オブジェクト305を付加する場合、まず、クラスタAのクラスタ領域について、表示画面用の座標系における中心位置C(c_x,c_y)を特定する。その後、表示制御部107は、原点と中心位置Cとを結ぶ直線を考え、この直線上に方向指示オブジェクト305を配置する。この際、図22Aに示したように、方向指示オブジェクト305の先端を、原点と中心位置Cとを結ぶ直線と、表示領域の境界線との交点A(a_x,a_y)とすることが好ましい。
また、図22Bに示したように、表示制御部107は、表示画面の中心位置(すなわち、原点O)とクラスタAとの間の距離に応じて、方向指示オブジェクト305の大きさを変化させる。より詳細には、表示制御部107は、クラスタAとの距離が近づくほど、方向指示オブジェクト305の大きさを大きくする。かかる表示を行うことで、ユーザは、方向指示オブジェクト305に対応するクラスタと、表示領域の中心位置との間の距離を、感覚的に把握することが可能となる。
また、図22Cに示したように、表示制御部107は、クラスタAのクラスタ領域の少なくとも一部が表示領域に含まれるようになると、クラスタオブジェクト303および方向指示オブジェクト305に換えて、サムネイル画像301を表示する。また、クラスタAのクラスタ領域の一部が表示領域に含まれるようになった場合であっても、方向指示オブジェクト305を表示したままにしておいてもよい。
また、図22A〜図22Cでは、方向指示オブジェクト305の表示位置および大きさについて説明したが、クラスタオブジェクト303についても、クラスタAが存在する方向を示唆するような位置に表示され、また、クラスタとの距離を示唆するような大きさで表示されることが好ましい。
例えば図22Aに示したように、表示領域は、その対角線を現す2本の直線によって、4つの部分領域に区分することができる。ここで、各クラスタに対応するクラスタオブジェクト303は、クラスタが属する部分領域内に配置されることが好ましい。例えば、図22Aに示したクラスタAに対応するクラスタオブジェクト303は、y≧(height/width)x、かつ、y≧−(height/width)xで表される領域内に配置されることが好ましい。
また、図21に示したようにクラスタオブジェクト303が文字配列からなるオブジェクトである場合には、表示制御部107は、文字の大きさを、クラスタとの距離を示唆するような大きさで表示することが好ましい。例えば、表示制御部107は、クラスタとの距離が大きい場合には文字の大きさを小さくし、クラスタとの距離が小さい場合には文字の大きさを大きくすることが好ましい。
ここで、表示制御部107は、クラスタオブジェクト303および方向指示オブジェクト305の具体的な大きさを任意の方法で決定することが可能であるが、表示制御部107は、例えば、図23Aに示したような関数を用いて具体的な大きさを決定してもよい。
図23Aに示した関数において、X座標は、表示画面の中心位置からクラスタ中心までのピクセル距離を現しており、Y座標は、クラスタオブジェクトおよび方向指示オブジェクトの表示倍率を表している。
ここで、表示制御部107は、表示倍率Yを、以下の式151および式152のように決定する。
上記式より明らかなように、表示制御部107は、クラスタ中心との距離が所定の閾値(MIN_DIST)未満である場合には、表示倍率を最大値(MAX_SCALE)とし、所定の閾値以上である場合には、表示倍率が最大値の1/Xとなるように変化させる。
また、表示制御部107は、クラスタオブジェクト303および方向指示オブジェクト305の具体的な大きさを、クラスタに含まれるコンテンツ数に応じて決定してもよい。この場合、表示制御部107は、図23Bに示したような関数を用いて具体的な大きさを決定してもよい。
図23Bに示した関数において、X座標は、クラスタに含まれるコンテンツ数を現しており、Y座標は、クラスタオブジェクトおよび方向指示オブジェクトの表示倍率を表している。
ここで、表示制御部107は、表示倍率Yを、以下の式153および式154のように決定する。
ここで、上記式153におけるパラメータkは、関数の傾きを決める係数であり、本方法を適用する環境に応じて、任意の値を設定することが可能である。上記式より明らかなように、表示制御部107は、クラスタに含まれるコンテンツ数が1である場合には、表示倍率を最小値(MIN_SCALE)とし、クラスタに含まれるコンテンツ数が増加するに従って、上記式153に基づいて表示倍率を変化させる。
再び図21に戻って、表示画面の一例について説明する。
表示画面に表示されるコンテンツの数によっては、表示画面中に多くのオブジェクトが表示されてしまい、画面が煩雑になる場合も生じうる。そこで、表示制御部107は、表示画面に表示されるオブジェクトが増加して表示画面が煩雑になったと判断した場合、表示画面に表示するオブジェクトを更に選択してもよい。
例えば、表示制御部107は、表示画面の中心位置からの距離、コンテンツの大きさ、クラスタが包含しているコンテンツの個数、コンテンツ視聴に関するユーザの履歴情報、コンテンツに紐付けられている各種の情報の有無や順位付け等に応じて、オブジェクトの更なる選択を行うことが可能である。
また、表示画面中に表示されているクラスタオブジェクト303の個数が煩雑になってきた場合には、表示制御部107は、同一階層に属するクラスタに対応するクラスタオブジェクト303を一つにまとめて表示するようにしてもよい。
なお、表示画面が煩雑になったか否かの判定は、任意の方法で行うことが可能であるが、例えば、表示制御部107は、表示画面中に表示されるオブジェクトの個数が所定の閾値を超えたか否かに基づいて、判断を行っても良い。
また、表示画面を見たユーザが、表示されているコンテンツのサムネイル画像301をクリックしたりタッピングしたりして選択する場合もある。かかる場合、表示制御部107は、選択されたコンテンツに関連付けられている説明文などのメタデータを、表示画面にあわせて表示したり、説明文を表示するために表示画面を切り替えたりしてもよい。また、選択したコンテンツが動画コンテンツ等のように再生可能なコンテンツである場合には、コンテンツの再生を行っても良い。
ここで、ユーザが、表示画面の中心位置を変更せずに表示領域の拡大・縮小処理を行う場合も考えうる。例えば、ユーザによりズームアウト処理が行われた場合、表示制御部107は、新たに表示領域内に含まれるようになったコンテンツのサムネイル画像301を、表示画面に表示する。また、この処理に伴い、クラスタオブジェクト303および方向指示オブジェクト305の大きさが、ズームレベルに応じて変更となる。
逆に、ユーザによりズームイン処理が行われる場合もある。この際、表示制御部107は、ズームイン処理に伴い、位置情報に対応する位置が新たな表示画面内に存在しなくなったコンテンツについて、そのオブジェクトをサムネイル画像301からクラスタオブジェクト303に変更する。
また、表示制御部107は、拡大・縮小処理に伴って、クラスタオブジェクト303として表示しているクラスタの粒度を変更してもよい。これにより、拡大・縮小処理に伴ってクラスタへの距離に大きな変化が生じたことを、ユーザに周知することができる。
例えば、図21の中央に示した図において、ズームアウト処理がなされた場合、新たに表示画面内に属することとなったコンテンツ(例えば、「富士山」クラスタ、「川崎」クラスタ、「横浜」クラスタ)に対応するサムネイル画像301が表示画面中に表示される。また、図21の中央に示した図において、「北海道」と「東北」という同一階層に属するクラスタのクラスタオブジェクト303がまとめて表示されているが、ここで、ズームアウトによって画面の煩雑さが解消されるため、まとめて表示されていたオブジェクトが個々の表示へと変更になる。また、ズームアウト処理によって画面の縮尺が変更となった関係で、表示制御部107は、「西日本」クラスタとして表示していたものを、より下層のクラスタである「名古屋」クラスタへと粒度の変更を行う。
また、図21の中央に示した図において、ズームイン処理がなされた場合、コンテンツBが表示画面中に位置しなくなり、サムネイル画像301からクラスタオブジェクト303へと、オブジェクトの態様が変化する。また、ズームイン処理によって画面の縮尺が変更となった関係で、表示制御部107は、「川崎」、「横浜」と分けて表示していたクラスタをより上層のクラスタである「神奈川」へと変更する。
なお、上述のようなクラスタの粒度の変更を行うか否かの判断は、任意の方法に則して行うことが可能であるが、表示制御部107は、例えば、以下のような方法でクラスタの粒度変更を行うか否かの判断を行っても良い。
例えば、表示制御部107は、図24に例示したように、表示領域のうち、対象となっているクラスタに最も近い点Aを特定し、この点Aを起点として、図24に示した角度θを算出する。ここで、表示制御部107は、拡大・縮小処理に伴って角度θの大きさが所定の閾値よりも大きくなった場合には、クラスタを分割してより小さなクラスタ粒度に変更してもよい。例えば図24において、左側に示した図のような表示領域が設定されており、クラスタAが表示領域内に表示されており、拡大処理において、右側に示した図のように表示領域が変化したものとする。この際、図中の角度θが所定の閾値以上となると、表示制御部107は、クラスタAに変えて、クラスタBおよびクラスタCを表示してもよい。
他方、ユーザが表示画面中に表示されている方向指示オブジェクト305を選択する場合もある。この場合、表示制御部107は、まず、選択された方向指示オブジェクト305に対応するクラスタがどれであるかを特定する。続いて、表示制御部107は、特定したクラスタのクラスタ中心位置をクラスタデータに基づいて特定し、かかる位置が表示画面の中央となるように、画面の遷移を行う。なお、表示制御部107は、クラスタの中心位置ではなく、クラスタ中心位置に最も近いコンテンツの位置が表示画面の中央となるように、画面の遷移を行っても良い。かかる画面の遷移を行う場合、表示制御部107は、遷移先のクラスタに含まれるクラスタ(またはコンテンツ)が全て表示画面内に表示されるように、実行画面(例えば地図)の縮尺を決定することが好ましい。
また、かかる画面遷移を行う場合、表示制御部107は、ノード抽出部105に、再度のノード抽出処理を要請し、新たに抽出されたノードに基づいて代表的な画像を表示画面内に表示してもよい。ここで、代表的な画像として、クラスタの中心位置に近い画像、クラスタ内のコンテンツ分布の重心に近い画像等を挙げることができる。
また、例えば図25に示したように、表示制御部107は、コンテンツに対応するオブジェクトを、指定位置(例えば現在位置)からの距離のみに応じて、その分布を示すようにしてもよい。ここで、図中に示した距離が、指定位置からの離隔距離を示している。この場合、表示制御部107は、各クラスタに対して、クラスタに包含されるコンテンツの代表的なサムネイル画像301と、クラスタオブジェクト303と、離隔距離を表したオブジェクト307とを、表示画面に表示する。ここで、ユーザによりあるクラスタ(例えば「栃木」というクラスタ)が選択された場合には、表示制御部107は、そのクラスタに含まれるコンテンツが一度に表示されるように、表示画面の遷移を行う。
以上説明したように、本実施形態に係る表示制御部107は、ノード抽出部105による抽出結果を利用し、位置が近いコンテンツ同士をまとめてクラスタリング結果として表示することで、表示画面が煩雑になるという状況を解消することが可能となる。また、表示制御部107は、指定された位置から近いコンテンツほど細かい粒度で表示画面上に表示することで、指定位置から近い位置にあるコンテンツの情報を、詳細に表示することが可能となる。
なお、上記説明では、表示制御部107が、表示画面中に存在するコンテンツを表示する際に、このコンテンツのサムネイル画像を表示する場合について説明を行った。しかしながら、表示制御部107は、コンテンツのサムネイル画像ではなく、コンテンツの位置を表すピンなどのようなオブジェクトを、表示画面に表示してもよい。
<表示画面の制御方法について>
続いて、図26を参照しながら、本実施形態に係る表示画面の制御方法について、簡単にその流れを説明する。図26は、本実施形態に係る表示画面の制御方法を説明するための流れ図である。
なお、以下の説明に先立ち、木構造生成部101によって、情報処理装置10が利用可能なコンテンツに関する木構造の生成が行われているものとする。
ユーザにより所定のアプリケーションの起動を要請する操作が行われると、情報処理装置10の表示制御部107は、指定されたアプリケーションを起動する(ステップS301)。また、抽出条件設定部103は、入力部111またはGPS信号処理部113から通知された各種情報に基づいて、ノード抽出処理に利用される抽出条件を設定し、ノード抽出部105に通知する。続いて、ノード抽出部105は、通知された抽出条件に基づいて、上で説明したようなノードの抽出処理を実施し(ステップS303)、抽出したノードに関する情報を、表示制御部107に通知する。
続いて、表示制御部107は、抽出されたノードに関する情報等を利用して、表示部109に表示する表示画面を生成し(ステップS305)、生成した表示画面を、表示部109の所定の領域に表示する。
その後、情報処理装置10は、ユーザによってアプリケーションの終了操作が行われたか否かを判定する(ステップS307)。終了操作が行われた場合には、情報処理装置10は、アプリケーションの実行を終了する。
他方、終了操作が行われなかった場合には、情報処理装置10は、表示画面の状態変化を生じさせるようなユーザ操作が行われたか否かを判断する(ステップS309)。
例えば、ユーザ操作によって、あるクラスタ(クラスタオブジェクト)が選択された場合には、表示制御部107は、選択されたクラスタの内容を表示する表示画面を生成して(ステップS311)、表示部109の所定の領域に表示する。その後、情報処理装置10は、ステップS307に戻って、処理を継続する。
また、ユーザによって、表示領域が変化するような操作が行われた場合には、表示制御部107は、変化後の表示領域に基づいて表示画面を生成し(ステップS313)、表示部109の所定の領域に表示する。その後、情報処理装置10は、ステップS307に戻って、処理を継続する。
また、ユーザによって、あるコンテンツが選択された場合には、表示制御部107は、選択されたコンテンツに対応する説明文等の情報を表示画面に表示する処理を行う(ステップS315)。その後、情報処理装置10は、ステップS307に戻って、処理を継続する。
かかる処理を行うことで、本実施形態に係る情報処理装置10は、表示画面が煩雑にならないように、コンテンツの内容を表示画面に表示することが可能となる。
(ハードウェア構成について)
次に、図27を参照しながら、本発明の実施形態に係る情報処理装置10のハードウェア構成について、詳細に説明する。図27は、本発明の実施形態に係る情報処理装置10のハードウェア構成を説明するためのブロック図である。
情報処理装置10は、主に、CPU901と、ROM903と、RAM905と、を備える。また、情報処理装置10は、更に、ホストバス907と、ブリッジ909と、外部バス911と、インターフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、情報処理装置10内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、情報処理装置10の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。情報処理装置10のユーザは、この入力装置915を操作することにより、情報処理装置10に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置917は、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。このような装置として、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなどがある。出力装置917は、例えば、情報処理装置10が行った各種処理により得られた結果を出力する。具体的には、表示装置は、情報処理装置10が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置919は、情報処理装置10の記憶部の一例として構成されたデータ格納用の装置である。ストレージ装置919は、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、記録媒体用リーダライタであり、情報処理装置10に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア等である。また、リムーバブル記録媒体927は、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、フラッシュメモリ、または、SDメモリカード(Secure Digital memory card)等であってもよい。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート923は、機器を情報処理装置10に直接接続するためのポートである。接続ポート923の一例として、USB(Universal Serial Bus)ポート、IEEE1394ポート、SCSI(Small Computer System Interface)ポート等がある。接続ポート923の別の例として、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等がある。この接続ポート923に外部接続機器929を接続することで、情報処理装置10は、外部接続機器929から直接各種のデータを取得したり、外部接続機器929に各種のデータを提供したりする。
通信装置925は、例えば、通信網931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth(登録商標)、またはWUSB(Wireless USB)用の通信カード等である。また、通信装置925は、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等であってもよい。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の実施形態に係る情報処理装置10の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。