JP5863494B2 - 情報処理装置、及びその制御方法、プログラム - Google Patents

情報処理装置、及びその制御方法、プログラム Download PDF

Info

Publication number
JP5863494B2
JP5863494B2 JP2012028859A JP2012028859A JP5863494B2 JP 5863494 B2 JP5863494 B2 JP 5863494B2 JP 2012028859 A JP2012028859 A JP 2012028859A JP 2012028859 A JP2012028859 A JP 2012028859A JP 5863494 B2 JP5863494 B2 JP 5863494B2
Authority
JP
Japan
Prior art keywords
spatial data
time information
partial space
node
area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012028859A
Other languages
English (en)
Other versions
JP2013164813A5 (ja
JP2013164813A (ja
Inventor
悠美子 内田
悠美子 内田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2012028859A priority Critical patent/JP5863494B2/ja
Priority to US13/747,195 priority patent/US20130212107A1/en
Publication of JP2013164813A publication Critical patent/JP2013164813A/ja
Publication of JP2013164813A5 publication Critical patent/JP2013164813A5/ja
Application granted granted Critical
Publication of JP5863494B2 publication Critical patent/JP5863494B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2246Trees, e.g. B+trees
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/51Indexing; Data structures therefor; Storage structures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、写真の撮影位置情報等に代表される多次元データの検索を高速化する多次元インデックス技術に関するものである。
近年、GPS(Global Positioning System)機能を搭載したカメラが増加しており、撮影場所の緯度・経度を記録した地理情報を写真データに付与可能になっている。これに伴い、カメラやPC上の写真閲覧アプリケーションでは、写真データの撮影位置の地理情報を利用して、任意の地域内で撮影した写真データを検索し、その撮影位置を地図上に対応付けて表示する機能を備えるものが増えている。
撮影位置の地理情報は緯度・経度・標高等から構成される多次元データである。このため、地理情報の検索に、1次元データ向けのインデックス構造を用いることは適していない。B−Treeのような1次元インデックスでは、空間内において位置の近いデータをインデックス上で近くに配置することが出来ないため、検索クエリによっては大幅に性能が劣化するためである。
地理情報等の多次元データの検索に適したインデックス(多次元インデックスあるいは空間インデックスと総称)として、一般的にR−Treeが用いられることが多い。R−Treeは、階層的に入れ子になった矩形状の部分空間領域で多次元空間を分割することで、木構造のインデックスを形成する方式である。R−Treeでは、空間内で近くに存在する要素が、なるべく同じ部分空間領域(インデックス内のノード)に属するように設計されている。R−Treeは多分木であるため、中間ノードのサイズをファイルシステムへの入出力サイズに合わせて変更することができる。このため、二次記憶装置とのやりとりが効率的であり、多くのデータベースシステムで採用されている。
R−Treeに類似した多次元インデックス方式の改良に関する先行技術として、特許文献1及び特許文献2が開示されている。
特許文献1では、多次元空間を矩形と球形の論理積の領域に分割する多次元インデックス方式において、球形空間領域の配置を工夫することでノードサイズを削減し、その結果としてインデックスサイズを縮小している。
特許文献2では、多次元空間を球形の領域に分割する多次元インデックス方式において、インデックス内での球形の表現を符号化することでノードサイズを削減し、インデックスサイズを縮小している。
これらの先行技術では、インデックスサイズを縮小することで、検索時のディスクアクセス回数を削減することができ、検索処理を高速化することが可能である。
特開2011−81554号公報 特開2000−357168号公報
R−Treeには、空間データの偏在性や登録順によっては、部分空間領域が適切に生成されないという課題がある。特に、少数の空間データのみが他の空間データ群から離れた位置に存在する場合、空間内での位置が離れたデータ同士が同じ部分空間領域に属してしまう場合がある。この場合には、部分空間領域内に本来必要ではない空き領域が増えることになる。
R−Treeを用いて検索を実行する際には、ユーザが指定した検索領域と重複する部分空間内の全データに対して検索条件に合致するか否かをチェックする処理が必要である。このため、各部分空間領域は必要最小限の大きさであることが望ましい。部分空間領域内に空き領域が増加すると、検索領域内にデータが存在しない場合にも、検索領域と部分空間領域が重複してしまう可能性が高く、無駄な探索処理が発生してしまう。このため、部分空間領域内の空き領域の増加は、検索性能を劣化させる要因となる。
上記の先行技術はいずれも多次元インデックスのインデックスサイズを縮小することで、検索の高速化を実現するものであるが、部分空間領域の分割に関する工夫は行われていない。このため上記の先行技術では、少数の空間データのみが他の空間データ群から離れた位置に存在するような場合には、部分空間領域内に空き領域が多く発生してしまい、検索性能が劣化する。
本発明は上記課題に鑑みてなされたものであり、空間内での位置が離れたデータを別の部分空間領域として管理することで、部分空間領域内の空き領域を削減する多次元インデックス技術を提供することにより、検索領域と重複する部分空間領域の数を減らすことを目的とする。
上記の目的を達成するための本発明による情報処理装置は以下の構成を備える。即ち、
多次元空間を部分空間領域に分割し、その部分空間領域をノードに格納した上で、空間データの登録時には、前記空間データを包含するよう部分空間領域を拡大する多次元インデックス処理を実行する情報処理装置であって、
点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力手段と、
前記多次元インデックスのノード内の1つ以上の部分空間領域に対し、前記空間データを格納する場合の拡大値をそれぞれ算出する算出手段と、
前記算出手段で拡大値を算出した部分空間領域の中から、前記空間データの格納先候補となる部分空間領域を選択する選択手段と、
前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得手段と、
前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得手段と、
前記選択手段で選択した格納先候補の部分空間領域に対する前記拡大値が閾値以上になり、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域を生成する生成手段と
を備える。
本発明によれば、少数の空間データが他の空間データ群から離れた位置に存在する場合にも、部分空間領域内の空き領域を削減することで検索領域と重複する部分空間領域の数を減らすことができ、高速に検索を行うことができる。
実施形態1の情報処理装置の構成図である。 実施形態1の画像管理テーブル及び撮影位置インデックスの模式図である。 実施形態1の空間分割方式の模式図である。 実施形態1の空間分割方式の模式図である。 R−Treeの空間分割方式の模式図である。 実施形態1の空間分割方式の模式図である。 実施形態1の登録処理を示すフローチャートである。 実施形態1の空間データ入力処理を示すフローチャートである。 実施形態1の格納先ノード選択処理を示すフローチャートである。 実施形態1のエントリ格納処理を示すフローチャートである。 実施形態1の木の調整処理を示すフローチャートである。 実施形態1の検索処理を示すフローチャートである。 実施形態2の格納先ノード選択処理を示すフローチャートである。
以下、本発明の実施の形態について図面を用いて詳細に説明する。
(実施形態1)
図1(A)は実施形態1の多次元インデックス処理を実現する情報処理装置を示す構成図である。
CPU101は、ROM106に格納されている制御プログラムを実行することにより本装置全体の制御を行う。ROM106は、CPU101が実行するプログラムを格納する。CPU101がプログラムを実行することにより、当該装置は後述するフローチャートに示す各処理を実行するための各種構成要素として機能する。例えば、データベースエンジン107を格納し、データの登録・検索を行うことができる。RAM102は、各構成要素からの各種データを一時記憶する。また、プログラムを展開し、CPU101によって実行する。
外部記憶装置108は、処理対象となるデータを格納する装置である。外部記憶装置108としては、フラッシュメモリ、HDD等を用いることができる。外部記憶装置108には、画像データベース110が存在し、画像管理テーブル111が撮影画像109に付与されたメタデータを管理する。画像管理テーブル111内に格納されている撮影位置情報に対し、撮影位置インデックス112が構築されている。
撮像部113は、光学装置及び撮像素子等の部品によって構成され、CPU101からの指示に応じて、被写体の撮像を行う。撮像部113によって得られた撮像結果は、撮影画像109として外部記憶装置108に格納する。
GPS受信機103は、GPS衛星からの信号を受信し、装置の現在位置を測位する。撮像部113が撮像を行う際には、GPS受信機103の機能により、撮影位置情報を撮影画像109と対応付けて記憶することができる。
入力部104は、操作ボタン、タッチパネル等の入力装置で構成され、ユーザからの指示を受け付ける。出力部105は、液晶パネル等の出力装置で構成され、本発明の処理対象となるデータを表示する。
尚、実施形態1では、後述するフローチャートの各ステップに対応する処理を、CPU101を用いてソフトウェアで実現するが、その処理の一部又は全部を電子回路等のハードウェアで実現するようにしても良い。
図1(B)は実施形態1におけるデータ処理部分の構成を示す構成図である。
データ登録部114は、撮像部113から撮影画像109のメタデータを受信し、データベースエンジン107を介して、画像データベース110へ登録する。検索実行部115は、入力部104からユーザの指示を受信し、データベースエンジン107を介して、画像データベース110への検索を実行する。検索実行部115が取得した検索結果は、出力部105へ表示される。
尚、データ登録部114及び検索実行部115は、例えば、CPU101を用いてソフトウェアで実現されても良いが、その処理の一部又は全部を電子回路等のハードウェアで実現するようにしても良い。
図2(A)は画像管理テーブル111の構成を示す図である。
画像管理テーブル111は、撮影画像109を一意に特定する画像ID201、及び撮影時に付与されるメタデータとして撮影時刻202、撮影位置情報203を格納している。撮影位置情報203を空間データとみなし、撮影位置インデックス112を構築する。
尚、実施形態1では、撮影位置情報203として、緯度・経度を格納しているが、更に標高を加えてもよい。この場合には、高層ビルや山のように高さに変化のある場所で撮影した撮影画像109に対し、標高位置を指定して検索を行うことができる。あるいは、標高以外に撮影方角等のパラメータを加えて、より高次元の情報を空間データ(点あるいは空間領域からなる)とみなしてもよい。この場合には、撮影位置のみならず、撮影対象が類似している撮影画像109を検索することが可能となる。
また、実施形態1では、画像管理テーブル111に画像データを格納しているが、動画データを格納してもよい。動画データの場合の撮影位置情報203は、複数の撮影位置が連なった線状のデータでもよい。この場合には、長距離を移動しながら動画の撮影を行う場合でも、移動経路を考慮した検索を行うことができる。
図2(B)は撮影位置インデックス112のデータ構造を示す模式図である。
撮影位置インデックス112は、木構造を形成し、ルートノード204、中間ノード205及び葉ノード206を持つ。また、各ノードはエントリ207を複数保持する。1ノード内に格納可能なエントリ207の上限数はシステムが規定する。実施形態1では、エントリ207の上限数は4である。
図3(A)及び図3(B)は撮影位置インデックス112の具体例を示す模式図である。
撮影位置インデックス112は、従来のR−Treeと同様に多次元空間を階層化した部分空間領域に分割する。ここで、部分空間領域は、各ノード内のエントリ207が含まれる領域であるMBR(最小外接矩形:Minimum Bounding Rectangle)で表現される。実施形態1では、全空間はMBR301とMBR302で示す部分空間領域で分割され、それぞれの領域の座標情報がルートノード204のエントリ207として格納される。更に、MBR301の領域内は、MBR303〜MBR306で示す部分領域へ、MBR302の領域内は、MBR307〜MBR309で示す部分領域へ、というように再帰的に分割が行われる。階層化された部分空間領域の内、最下位階層の領域は葉ノード206に相当する。
葉ノード206のエントリ207は、次のデータを保持する。
・空間データへのリンク情報
・空間データのMBRの座標値
中間ノードのエントリ207及びルートノードのエントリ207は次のデータを保持する。
・子ノードへのリンク情報
・子ノード内の全エントリ207を包含するMBRの座標値
尚、図3では、空間データのMBRは図面の簡略化のため図示していない。
図4は、図3の撮影位置インデックス112に空間データ401を新規に登録する場合を示している。この場合には、追加する空間データ401を含むように既存の部分空間領域を拡大する必要がある。ここでの基本的な処理の流れは、従来のR−Treeと同様である。まず、ルートノード204から順に、インデックス木を探索する。そして、1ノード内のエントリ207の内、空間データ401を格納した場合の部分空間領域(=MBR)の拡大が最も小さいエントリ207を辿ることで、新規データを格納する葉ノード206を選択する。
図4の例では、まず、ルートノード204内の2つのエントリに相当するMBR301とMBR302に対して、空間データ401を格納した場合の拡大値を算出する。空間データ401を格納する場合、MBR301はMBR402に、MBR302はMBR403へと拡大する必要がある。実施形態1では、MBR302の拡大の方が小さいため、引き続きMBR302の子ノードを探索することになる。
図5(A)及び図5(B)は従来のR−Treeのアルゴリズムに従って、図3の撮影位置インデックス112に対し、空間データ501を登録した後の状態を示している。特に、図5(B)では空間データ501の格納位置を斜線で示している。
図5に示す従来例では、MBR502及びMBR503で表現する部分空間領域の拡大量が大きく、部分空間領域内に空き領域が多く発生している。この場合、空き領域に相当する空間に対して検索が発行されると、インデックス内を葉ノード206まで辿らない限り、検索結果に該当する空間データが存在しないということを判断できない。このように、空き領域の増加は、インデックス内の不必要な探索を増加させ、検索性能が劣化する一因となる。
図6(A)及び図6(B)は実施形態1に従って、図3の撮影位置インデックス112に対し、空間データ501を登録した後の状態を示している。特に、図6(B)では、空間データ501の格納位置を斜線で示している。
実施形態1では、部分空間領域の拡大量が一定以上に大きくなる場合には、空間データ501を既存の部分空間領域とは別の部分空間領域として管理する。このため、実施形態1では、既存の部分空間領域を必要以上に拡大することがないため、空き領域の増加を抑えることができ、木の探索を効率的に行うことができる。
実施形態1における処理をフローチャートに従って説明する。
図7は実施形態1におけるデータ登録部114の登録処理を示すフローチャートである。
ステップS701で、新規の空間データを撮影位置インデックス112へ入力し、空間データからインデックスのエントリ207を生成する(空間データ入力工程)。ステップS702で、撮影位置インデックス112内を探索し、エントリ207の格納先となるノードを選択する。続いて、ステップS703で、エントリ207をステップS702で選択したノード内に格納する。必要に応じて、オーバーフローに伴うノードの分割等の処理も本ステップ内で行う。ステップS704で、エントリ207の追加による木の再構築を、上位階層に伝播する。ステップS705で、ノードの分割及び木の再構築によって、木の高さを増やす必要がある場合に、その処理を行う。具体的には、ステップS705では、ルートノード204の分割が必要となる場合に、新規のルートノード204を生成し、分割された2つのノードを新規のルートノード204の子ノードとすることで木の高さを1つ増やす。
図8はステップS701の処理の詳細を示すフローチャートである。
ステップS801で、入力された空間データの位置情報を取得する。具体的には、撮影画像109に付随する撮影位置情報203を取得する。ステップS802で、ステップS801で取得した撮影位置情報203を多次元インデックス上の直行座標系(x座標、y座標)に変換する。ステップS803で、ステップS802で算出した座標値を用い、新規のエントリを生成する。ここで作成するエントリは、葉ノード206のエントリとなるため、空間データへのリンク情報及び空間データのMBRの座標値を保持する。このエントリを新規登録エントリEと表現する。
図9はステップS702の処理の詳細を示すフローチャートである。
ステップS901で、探索先のノードNをルートノード204に設定する。ステップS902で、探索先のノードNが葉ノード206であるか否かを判定する。探索先のノードNが葉ノード206である場合(ステップS902でYES)、ステップS908へ進む。一方、探索先のノードNが葉ノード206でない場合(ステップS902でNO)、ステップS903へ進む。
ステップS903で、探索先のノードN内の各エントリが保持するMBRに対し、新規登録エントリEを格納した場合の拡大値をそれぞれ算出する(拡大値算出工程)。拡大値には、新規登録エントリEの格納後のMBRの面積と新規登録エントリEの格納前のMBRの面積の差あるいは比を用いることができる。新規登録エントリEの格納前後のMBRの面積差あるいは面積比は、新規登録エントリEの格納による部分空間領域内の空き領域の増加量あるいは増加率とみなすことができる。
従って、この構成によれば、ステップS903で算出した拡大値を用いて、各エントリに新規登録エントリEを追加した際の空き領域の増加量あるいは増加率を相対比較することができる。尚、3次元以上の空間を対象とする場合には、拡大値には、新規登録エントリEの格納後のMBRの体積と新規登録エントリEの格納前のMBRの体積の差あるいは比を用いることができる。この構成によれば、ステップS903で算出した拡大値を用いて、各エントリに新規登録エントリEを追加した際の多次元空間内における空き領域(空間)の増加量あるいは増加率を相対比較することができる。
ステップS904で、探索先のノードN内のエントリから格納先候補を選択する(格納先候補選択工程)。ステップS904では、ステップS903で算出した拡大値が最小となるエントリを格納先候補とする。前述の通り、ステップS903で算出した拡大値は、新規登録エントリEの格納による部分空間領域内の空き領域の増加量あるいは増加率を示すものであるため、拡大値が最小となるエントリを選択することで、空き領域の増加を相対的に少なくすることができる。尚、探索先のノードN内の全エントリから部分空間領域の拡大値が最小となるエントリを算出する代わりに、探索先のノードN内のいくつかのエントリから拡大値が最小であるエントリを算出し、格納先候補とすることで、計算時間を短縮することもできる。
ステップS905で、ステップS904で選択した格納先候補のエントリに対する拡大値が閾値以上であるか否かを判定する。拡大値が閾値未満である場合(ステップS905でNO)、格納先候補のエントリからリンクされる子ノードが格納先として適していると判定し、ステップS906へ進む。ステップS906では、格納先候補のエントリからリンクされる子ノードを、次の探索先ノードNとして設定し、ステップS902から処理を繰り返す。
一方、ステップS905で、拡大値が閾値以上である場合(ステップS905でYES)、新規登録エントリEをどのノードに格納したとしても、空き領域が大幅に増加すると判定し、ステップS907へ進む。ステップS907で、新規登録エントリEを包含するようなMBRを新たに生成する(新規部分空間領域生成工程)。ここでは、図6に示すように、新規登録エントリEを別ノードとして管理するために、新規のノードNNを生成し、新規登録エントリEを格納する。更に、新規のノードNNを、親ノードに格納するために、中間ノードのエントリEEを生成する。具体的には、新規のノードNN内の全エントリを包含するMBRを生成し、中間ノードのエントリEE内にNNへのリンク情報と生成したMBRの座標情報を格納する。そして、新規登録エントリEを中間ノードのエントリEEで置き換える。ステップS908で、ノードNを、新規登録エントリEを挿入するノードとして返す。
尚、ステップS905で用いる閾値は、固定の値をシステムが設定する他に、多次元インデックス内の部分空間領域の最大値あるいは平均値に基づいて適宜変更してもよい。この構成によれば、現在の部分空間領域の大きさに応じて閾値を設定できるため、部分空間領域の大きさに対して閾値が小さ過ぎるというような問題を回避することができる。従って、所定の値が小さ過ぎることにより新規部分空間領域の生成が頻発し、ノード数が極端に増加してしまうことを避けることができる。
また、ステップS905では、部分空間領域の拡大値に基づき新規部分空間領域を生成するか否かを判定しているが、判定基準に地名情報を合わせて利用してもよい。例えば、ユーザが自宅や勤務先等のランドマーク情報をシステムに登録している場合には、その付近に位置する空間データが初めて入力された時に、新規部分空間領域に格納するよう構成することもできる。この構成によれば、この先、空間データが多数生成される可能性の高いユーザ登録ランドマーク付近の空間データを、他の空間データ群とは異なる部分空間領域へ集約するよう補正することができ、部分空間領域の構築をより適正化することができる。
図10はステップS703の処理の詳細を示すフローチャートである。
本フローでは、ステップS702で選択したノードNに新規登録エントリEを格納する処理を行う。まず、ステップS1001で、ノードN内に空きエントリがあるか否かを判定する。空きがある場合(ステップS1001でYES)、ステップS1002へ進み、新規登録エントリEをノードNに格納する。一方、ノードN内に空きがない場合(ステップS1001でNO)、ステップS1003へ進み、ノードNを2つのノードに分割する。ノードの分割方法の一例としては、既存のR−Treeと同様に分割後のMBR同士の重なりが最小となるような分割位置を選択する手法を適用することができる。
図11はステップS704の処理の詳細を示すフローチャートである。
ステップS1101で、ステップS703で新規登録エントリEを格納したノードNを処理対象のノードに設定する。ノードNが分割された場合には、分割後の2つのノードを処理対象とする。ステップS1102で、本フローがルートノード204まで処理を終えているか否かを判定する。ルートノード204まで処理を終えている場合(ステップS1102でYES)、本フローを終了する。一方、ルートノード204まで処理を終えていない場合(ステップS1102でNO)、ステップS1103へ進む。
ステップS1103で、ノードNの親エントリが保持しているMBRの情報を更新する。新規登録エントリEの格納によるMBRの拡大、あるいはノード分割によるMBRの変更を反映する。ステップS1104で、分割を上位階層へ伝播する。具体的には、ステップS1003における分割処理で新たに生成したノードを、ノードNの親ノードに格納する。ここで、親ノードに空きがない場合には、ステップS1003と同様の処理を行い、親ノードを分割する。ステップS1105で、現在のノードNの親ノードを新たにノードNに設定することで上位階層へ移動する。以降は、ステップS1102から処理を繰り返す。
図12は実施形態1における検索実行部115の検索処理を示すフローチャートである。
本フローでは、ユーザが指定した検索領域S内に存在する空間データを検索する。初めに、ステップS1201で、ルートノード204を処理対象のノードTに設定する。ステップS1202で、ノードT内のすべてのエントリのMBRに対して、検索領域Sと領域が重複するか否かを判定する。ステップS1203で、ノードTが葉ノード206であるか否かを判定する。ノードTが葉ノード206である場合(ステップS1203でYES)、ステップS1205へ進む。ステップS1205で、ステップS1202で検索領域Sと重複すると判定したエントリからリンクされる空間データを検索結果として返し、処理を終える。一方、ノードTが葉ノード206でない場合(ステップS1203でNO)、ステップS1204へ進む。ステップS1204で、検索領域Sと重複すると判定したエントリからリンクされる子ノードをルートノードとする部分木に対して、本フローを再帰的に実行する。
本方式では、前述の登録処理(図7)によって部分空間領域内の空き領域を削減するため、ステップS1202において検索領域Sと重複するエントリ数が、従来のR−Treeより減少する。このため、ステップS1204での再帰処理の対象となる部分木が従来のR−Treeに比べ減少し、検索時間を短縮することが可能である。
尚、実施形態1では、1つの撮影位置インデックス112で全データの撮影位置情報203を管理する構成としているが、複数の撮影位置インデックス112で撮影位置情報203を管理してもよい。この場合には、部分空間領域内における空き領域増加時に、撮影位置インデックス112の数を1つ増やし、新規の部分空間領域に相当するノードを、新たなインデックスに格納するよう構成することができる。この構成によれば、各インデックスを平衡木に保つことができ、探索処理を簡易化することができる。また、各インデックスを別ファイルに格納することで、インデックス1つ辺りのファイルサイズを縮小することができる。
また、実施形態1では、ベースとなる多次元インデックス方式としてR−Treeを例に挙げているが、本方式の適用先はR−Treeに限定されるものではない。R*−TreeあるいはSR−Tree等、多次元空間を部分空間領域に分割する多次元インデックス方法一般に適用が可能である。
以上説明したように、実施形態1によれば、空間データ登録時のインデックスノードに相当する部分空間領域の拡大値が閾値以上になる場合には、空間データを格納する部分空間領域を新規に生成することで、部分空間領域内の空き領域を削減する。この構成によって、少数の空間データが他の空間データ群から離れた位置に存在する場合にも、従来に比べ空き領域を削減することができ、検索時のノードの探索回数を減らすことができる。特に、写真データのような位置分布特徴を持つデータ集合に対して、検索性能を改善することができる。
(実施形態2)
以下、本発明の実施形態2を説明する。尚、実施形態1と同一構成部分についてはその説明を省略する。
実施形態1では、インデックス内のノードに相当する部分空間領域の拡大値が閾値以上となる場合に、新規の部分空間領域を生成することで、ノードの部分空間領域内の空き領域を削減する構成としている。
しかし、空間データとして写真データを用いる場合には、撮影位置のみではなく撮影時刻の情報も考慮する必要がある。例えば、2つの写真データの撮影位置の距離が離れている場合であっても、撮影時刻の差が小さい場合には、2つの撮影地点は短時間で移動可能であり、なおかつユーザは撮影を行いながら移動中であると判断することができる。この場合には、2地点間の中間地点にも、短時間の内にユーザが移動して撮影を行う可能性が高く、2つの撮影地点を別の部分空間領域に格納する必要性は低い。
そこで、実施形態2では、部分空間領域の拡大値に加え、空間データに付随する時刻情報を考慮し、新規の部分空間領域を生成するか否かの判定を行うことで、不必要な新規部分空間領域の生成を抑制する構成について説明する。特に、実施形態2では、実施形態1の図7のステップS702の格納先ノードの選択処理を、図13に示すように実行する。
図13は実施形態2のステップS702の処理の詳細を示すフローチャートである。
尚、実施形態1の図9と同一の処理については、同一のステップ番号を付加して、その説明は省略する。
ステップS901〜ステップS904の処理後、ステップS1305で、ステップS904で選択した格納先候補のエントリに対する拡大値が閾値以上であるか否かを判定する。拡大値が閾値未満である場合(ステップS1305でNO)、格納先候補のエントリからリンクされる子ノードが格納先として適していると判定し、ステップS906へ進む。ステップS906では、格納先候補のエントリからリンクされる子ノードを、次の探索先ノードNとして設定し、ステップS902から処理を繰り返す。
一方、ステップS1305で、拡大値が閾値値以上である場合(ステップS1305でYES)、新規登録エントリEをどのノードに格納したとしても、空き領域が大幅に増加すると判定し、ステップS1307へ進む。
ステップS1307で、新規登録エントリEからリンクされる空間データの撮影時刻202(第1の時刻情報)を取得する(第1の時刻情報取得工程)。ステップS1308で、格納先候補のエントリ207から辿ることのできる空間データの撮影時刻202(第2の時刻情報)を取得する(第2の時刻情報取得工程)。ここでは、多次元インデックスを葉ノード206まで辿り空間データを取得した上で、画像管理テーブル111から該当する空間データの撮影時刻202を取得することができる。あるいは、中間ノードのエントリ207に、当該エントリ207より辿ることのできる空間データの撮影時刻202をコピーして保持しておく構成にしても良い。この場合には、多次元インデックスを葉ノード206まで辿ることなく、空間データの撮影時刻202を取得することができる。
尚、格納先候補のエントリ207から辿ることのできる空間データが複数存在する場合には、取得した撮影時刻202の内、最新の値を用いることが望ましい。通常、新規空間データは、格納先候補のエントリ207以下の空間データより後に撮影されたデータであり、部分空間領域間の移動時間を考慮するためには、部分空間領域内の最も新しい空間データとの撮影時刻差が必要であるためである。
ステップS1309では、ステップS1307及びステップS1308で取得した2つの撮影時刻202の差が一定値以上であるか否かを判定する。撮影時刻202の差が一定値未満である場合(ステップS1309でNO)、2つの空間データの存在地点間は短時間で移動可能であると判定できる。この場合には、2つの空間データの存在地点間に近い将来新たな空間データが生成される可能性が高いため、これら2つの空間データを別の部分空間領域に格納する必要性は低い。従って、格納先候補のエントリからリンクされる子ノードが格納先として適していると判定して、ステップS906へ進む。一方、撮影時刻202の差が一定値以上である場合(ステップS1309でYES)、ステップS907へ進む。
以上説明したように、実施形態2によれば、部分空間領域の拡大値に加え、空間データに付随する時刻情報を考慮し、新規の部分空間領域を生成するか否かを判定することが可能である。実施形態1と異なり、部分空間領域の領域拡大が大きい場合でも、領域内を短時間で移動可能と判断した場合には、新規部分空間領域を生成せず、同一ノードに格納する。この構成によって、不必要な新規部分空間領域の生成を抑えることができ、ノード数の増加によるインデックスサイズの肥大化を低減することができる。
尚、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステムまたは装置に供給し、そのシステムまたは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (19)

  1. 多次元空間を部分空間領域に分割し、その部分空間領域をノードに格納した上で、空間データの登録時には、前記空間データを包含するよう部分空間領域を拡大する多次元インデックス処理を実行する情報処理装置であって、
    点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力手段と、
    前記多次元インデックスのノード内の1つ以上の部分空間領域に対し、前記空間データを格納する場合の拡大値をそれぞれ算出する算出手段と、
    前記算出手段で拡大値を算出した部分空間領域の中から、前記空間データの格納先候補となる部分空間領域を選択する選択手段と、
    前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得手段と、
    前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得手段と、
    前記選択手段で選択した格納先候補の部分空間領域に対する前記拡大値が閾値以上になり、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域を生成する生成手段と
    を備えることを特徴とする情報処理装置。
  2. 前記選択手段は、前記算出手段で算出した拡大値が、最小となる部分空間領域を格納先候補とする
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記閾値は、前記多次元インデックス内の部分空間領域の最大値あるいは平均値に基づいて設定される
    ことを特徴とする請求項1また2に記載の情報処理装置。
  4. 前記拡大値は、前記空間データを格納後の部分空間領域の面積と前記空間データを格納前の部分空間領域の面積の差あるいは比で表現される
    ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  5. 前記拡大値は、前記空間データを格納後の部分空間領域の体積と前記空間データを格納前の部分空間領域の体積の差あるいは比で表現される
    ことを特徴とする請求項1乃至3のいずれか1項に記載の情報処理装置。
  6. 多次元空間を部分空間領域に分割し、その部分空間領域をノードに格納した上で、空間データの登録時には、前記空間データを包含するよう部分空間領域を拡大する多次元インデックス処理を実行する情報処理装置の制御方法であって、
    入力手段が、点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力工程と、
    算出手段が、前記多次元インデックスのノード内の1つ以上の部分空間領域に対し、前記空間データを格納する場合の拡大値をそれぞれ算出する算出工程と、
    選択手段が、前記算出工程で拡大値を算出した部分空間領域の中から、前記空間データの格納先候補となる部分空間領域を選択する選択工程と、
    第1の時刻情報取得手段が、前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得工程と、
    第2の時刻情報取得手段が、前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得工程と、
    生成手段が、前記選択手段で選択した格納先候補の部分空間領域に対する前記拡大値が閾値以上になり、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域を生成する生成工程と
    を備えることを特徴とする情報処理装置の制御方法。
  7. 多次元空間を部分空間領域に分割し、その部分空間領域をノードに格納した上で、空間データの登録時には、前記空間データを包含するよう部分空間領域を拡大する多次元インデックス処理を実行する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
    前記コンピュータを、
    点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力手段と、
    前記多次元インデックスのノード内の1つ以上の部分空間領域に対し、前記空間データを格納する場合の拡大値をそれぞれ算出する算出手段と、
    前記算出手段で拡大値を算出した部分空間領域の中から、前記空間データの格納先候補となる部分空間領域を選択する選択手段と、
    前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得手段と、
    前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得手段と、
    前記選択手段で選択した格納先候補の部分空間領域に対する前記拡大値が閾値以上になり、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域を生成する生成手段と
    して機能させることを特徴とするプログラム。
  8. 多次元空間を部分空間領域に分割して、該部分空間領域を多次元インデックスのノードに対応させ、空間データの登録時には、前記空間データを包含するよう前記ノードに対応する部分空間領域の大きさを拡大する多次元インデックス処理を実行する情報処理装置であって、
    点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力手段と、
    前記部分空間領域に対応する前記多次元インデックスのノードに前記入力された空間データを登録する場合の、前記部分空間領域の拡大値を取得する取得手段と、
    前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得手段と、
    前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得手段と、
    前記拡大値の大きさが閾値を超え、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域に対応する新規ノードを生成し、前記空間データを前記新規ノードに登録する登録手段と
    を備えることを特徴とする情報処理装置。
  9. 前記取得手段で、1つ以上の部分空間領域の拡大値を取得し、前記拡大値が最小となる部分空間領域を登録先候補とする
    ことを特徴とする請求項に記載の情報処理装置。
  10. 前記閾値は、前記多次元インデックス内の部分空間領域の最大値あるいは平均値に基づいて設定される
    ことを特徴とする請求項8または9に記載の情報処理装置。
  11. 前記拡大値は、前記空間データを登録後の部分空間領域の面積と前記空間データを登録前の部分空間領域の面積の差あるいは比で表現される
    ことを特徴とする請求項8乃至10のいずれか1項に記載の情報処理装置。
  12. 前記拡大値は、前記空間データを登録後の部分空間領域の体積と前記空間データを登録前の部分空間領域の体積の差あるいは比で表現される
    ことを特徴とする請求項8乃至10のいずれか1項に記載の情報処理装置。
  13. 空間データの検索領域を指定する指定手段と、
    前記検索領域と前記部分空間領域との重複の有無を判定する判定手段と、
    前記判定手段で重複すると判定された前記部分空間領域に対応する前記ノードを探索する探索手段と
    を更に備えることを特徴とする請求項8乃至12のいずれか1項に記載の情報処理装置。
  14. 前記多次元インデックスは階層構造のノードである
    ことを特徴とする請求項8乃至13のいずれか1項に記載の情報処理装置。
  15. 前記部分空間領域は、他の部分空間領域に包含される場合と他の部分空間領域に包含されない場合とがある
    ことを特徴とする請求項8乃至14のいずれか1項に記載の情報処理装置。
  16. 前記階層構造は、前記部分空間領域の包含関係に基づいた階層である
    ことを特徴とする請求項14に記載の情報処理装置。
  17. 前記探索手段では、前記判定手段で重複すると判定された前記部分空間領域に対応する複数階層の前記ノードを探索する
    ことを特徴とする請求項13に記載の情報処理装置。
  18. 多次元空間を部分空間領域に分割して、該部分空間領域を多次元インデックスのノードに対応させ、空間データの登録時には、前記空間データを包含するよう前記ノードに対応する部分空間領域の大きさを拡大する多次元インデックス処理を実行する情報処理装置の制御方法であって、
    点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力工程と、
    前記部分空間領域に対応する前記多次元インデックスのノードに前記入力された空間データを登録する場合の、前記部分空間領域の拡大値を取得する取得工程と、
    前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得工程と、
    前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得工程と、
    前記拡大値の大きさが閾値を超え、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域に対応する新規ノードを生成し、前記空間データを前記新規ノードに登録する登録工程と
    を備えることを特徴とする情報処理装置の制御方法。
  19. 多次元空間を部分空間領域に分割して、該部分空間領域を多次元インデックスのノードに対応させ、空間データの登録時には、前記空間データを包含するよう前記ノードに対応する部分空間領域の大きさを拡大する多次元インデックス処理を実行する情報処理装置の制御をコンピュータに機能させるためのプログラムであって、
    前記コンピュータを、
    点あるいは空間領域からなる空間データを、記憶装置において構築されている多次元インデックスに入力する入力手段と、
    前記部分空間領域に対応する前記多次元インデックスのノードに前記入力された空間データを登録する場合の、前記部分空間領域の拡大値を取得する取得手段と、
    前記空間データに付随する第1の時刻情報を取得する第1の時刻情報取得手段と、
    前記多次元インデックスのノード内の1つ以上の空間データの第2の時刻情報をそれぞれ取得する第2の時刻情報取得手段と、
    前記拡大値の大きさが閾値を超え、かつ前記第1の時刻情報と前記第2の時刻情報の差が、一定値以上になる場合に、少なくとも前記空間データを包含する新規部分空間領域に対応する新規ノードを生成し、前記空間データを前記新規ノードに登録する登録手段と
    して機能させるプログラム。
JP2012028859A 2012-02-13 2012-02-13 情報処理装置、及びその制御方法、プログラム Active JP5863494B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012028859A JP5863494B2 (ja) 2012-02-13 2012-02-13 情報処理装置、及びその制御方法、プログラム
US13/747,195 US20130212107A1 (en) 2012-02-13 2013-01-22 Information processing apparatus and control method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012028859A JP5863494B2 (ja) 2012-02-13 2012-02-13 情報処理装置、及びその制御方法、プログラム

Publications (3)

Publication Number Publication Date
JP2013164813A JP2013164813A (ja) 2013-08-22
JP2013164813A5 JP2013164813A5 (ja) 2015-02-05
JP5863494B2 true JP5863494B2 (ja) 2016-02-16

Family

ID=48946528

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012028859A Active JP5863494B2 (ja) 2012-02-13 2012-02-13 情報処理装置、及びその制御方法、プログラム

Country Status (2)

Country Link
US (1) US20130212107A1 (ja)
JP (1) JP5863494B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6428615B2 (ja) * 2013-07-12 2018-11-28 日本電気株式会社 多次元範囲検索装置及び多次元範囲検索方法
CN105493050B (zh) * 2013-08-28 2019-03-12 三菱电机株式会社 数据处理装置及数据处理方法
JP2018148247A (ja) * 2015-06-22 2018-09-20 日本電気株式会社 データ処理装置、データ処理方法およびプログラム
CN106610974B (zh) * 2015-10-21 2020-04-03 北京国双科技有限公司 网页照片墙的生成方法及装置
CN108287795B (zh) * 2018-01-16 2022-06-21 安徽蔻享数字科技有限公司 一种处理器缓存替换方法
CN108346131A (zh) * 2018-01-26 2018-07-31 深圳开阳电子股份有限公司 一种数字图像缩放方法、装置及显示设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5968109A (en) * 1996-10-25 1999-10-19 Navigation Technologies Corporation System and method for use and storage of geographic data on physical media
US6252605B1 (en) * 1997-08-01 2001-06-26 Garmin Corporation System and method for packing spatial data in an R-tree
KR100419575B1 (ko) * 2000-12-05 2004-02-19 한국전자통신연구원 고차원 색인구조를 위한 벌크 로딩방법
US7283987B2 (en) * 2001-03-05 2007-10-16 Sap Ag Compression scheme for improving cache behavior in database systems
US7080065B1 (en) * 2001-06-22 2006-07-18 Oracle International Corporation Query pruning using interior rectangles in an R-tree index
KR100483321B1 (ko) * 2001-10-17 2005-04-15 한국과학기술원 하이퍼사각형 기반의 다차원 데이터 세그먼테이션을이용한 유사성 검색 장치와 그 방법
KR100491724B1 (ko) * 2002-10-14 2005-05-27 한국전자통신연구원 공간영상의 효율적인 저장 및 검색을 지원하기 위한공간영상정보시스템 및 그 검색방법
US7389283B2 (en) * 2004-12-07 2008-06-17 International Business Machines Corporation Method for determining an optimal grid index specification for multidimensional data
JP4835134B2 (ja) * 2005-12-06 2011-12-14 ソニー株式会社 画像表示装置、画像表示方法、および、プログラム
EP2297703A1 (en) * 2008-06-03 2011-03-23 ETH Zurich Method and system for generating a pictorial reference database using geographical information
US20100114905A1 (en) * 2008-11-03 2010-05-06 Elvin Slavik Method, System, and Product for Managing Spatial Data in a Database
US8483519B2 (en) * 2008-12-22 2013-07-09 Ipointer Inc. Mobile image search and indexing system and method
US20110082846A1 (en) * 2009-10-07 2011-04-07 International Business Machines Corporation Selective processing of location-sensitive data streams
US8903837B2 (en) * 2010-04-13 2014-12-02 Yahoo!, Inc. Incorporating geographical locations in a search process
EP2659394A4 (en) * 2010-12-30 2016-10-26 Ericsson Telefon Ab L M METHOD FOR MANUFACTURING A GEOGRAPHIC TREE

Also Published As

Publication number Publication date
US20130212107A1 (en) 2013-08-15
JP2013164813A (ja) 2013-08-22

Similar Documents

Publication Publication Date Title
JP5863494B2 (ja) 情報処理装置、及びその制御方法、プログラム
JP4507991B2 (ja) 情報処理装置、情報処理方法、およびプログラム
Chen et al. Searching trajectories by locations: an efficiency study
EP2565583B1 (en) Navigation device, method of outputting a map, and method of generating a database
US10922339B2 (en) Portable globe creation for a geographical information system
US20040220965A1 (en) Indexed database structures and methods for searching path-enhanced multimedia
US9659023B2 (en) Maintaining and using a cache of child-to-parent mappings in a content-addressable storage system
CN111930767A (zh) 一种基于多层缓存的矢量瓦片实时切片和更新方法
CN109815232B (zh) 一种利用二叉查找树的数据排名的检索、数据处理的方法和系统
Cao et al. KORS: Keyword-aware optimal route search system
JP5713652B2 (ja) データ検索装置、方法、及びプログラム
CN103712628A (zh) 导航路径描绘方法和终端
CN111858613B (zh) 一种业务数据的检索方法
KR100966478B1 (ko) 3d 지도 서비스 제공 방법 및 지리정보 시스템
US20100042938A1 (en) Interactive Navigation of a Dataflow Process Image
KR102002360B1 (ko) 영상 처리용 NoSQL 데이터베이스 구축 방법 및 장치
WO2016107440A1 (zh) 一种电子地图的生成、显示方法和装置
JP6376124B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP2012256119A (ja) 情報処理装置、その処理方法及びプログラム
CN114117260B (zh) 时空轨迹索引与查询处理方法、装置、设备及介质
JP6242090B2 (ja) 地図更新装置、地図更新システム及び地図の更新管理方法
JP5879445B2 (ja) 時空間データ管理システム、時空間データ管理方法、及びプログラム
JP6167531B2 (ja) 領域検索方法、領域インデックス構築方法および領域検索装置
KR20190079353A (ko) 다중 키워드 도메인 기반 공간-키워드 검색 장치 및 방법, 이를 기록한 기록매체
KR101358937B1 (ko) 도로 네트워크 환경에서의 색인 갱신방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141216

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141216

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150908

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151104

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151124

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151222

R151 Written notification of patent or utility model registration

Ref document number: 5863494

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151