JP6106231B2 - 情報処理装置、情報処理方法およびプログラム - Google Patents

情報処理装置、情報処理方法およびプログラム Download PDF

Info

Publication number
JP6106231B2
JP6106231B2 JP2015169721A JP2015169721A JP6106231B2 JP 6106231 B2 JP6106231 B2 JP 6106231B2 JP 2015169721 A JP2015169721 A JP 2015169721A JP 2015169721 A JP2015169721 A JP 2015169721A JP 6106231 B2 JP6106231 B2 JP 6106231B2
Authority
JP
Japan
Prior art keywords
node
query
information processing
tree
learning
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
JP2015169721A
Other languages
English (en)
Other versions
JP2015212990A (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 JP2015169721A priority Critical patent/JP6106231B2/ja
Publication of JP2015212990A publication Critical patent/JP2015212990A/ja
Application granted granted Critical
Publication of JP6106231B2 publication Critical patent/JP6106231B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/243Classification techniques relating to the number of classes
    • G06F18/24323Tree-organised classifiers

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は情報処理装置、情報処理方法およびプログラムに関する。
従来、学習パターンを用いて新規パターンを解析する機械学習の技術がある。その中でも、分類木、決定木と呼ばれるパターン認識手法が提案され(非特許文献1を参照)、多くのシステムで用いられてきている。この手法は木構造(ツリー構造とも呼ばれる)を用いて高速にパターンを解析できるという性質を持っており、計算機の能力の貧弱な時代にはその能力を発揮してきた。なお、パターン認識問題をパターン識別問題として捉えたとき、識別するべきパターンの種類を「クラス」と呼び、以下の説明において、「クラス」という言葉はこの意味で用いるものとする。
一方、非特許文献にあるような古典的な分類木、決定木の欠点として、認識性能があまり高くないということが挙げられる。この欠点を克服する技術として、例えば、特許文献1にあるような分類木の集合(アンサンブル)を用いた手法が提案されている。これは分類木をL個(Lは2以上の定数であり、通常は10〜100の範囲)作成し、それら全部を用いることによって、より高い認識性能を実現する技術である。これは従来の1つの分類木を用いた手法のL倍、計算時間を要するという欠点を持っており、従来の分類木の高速性という性質を犠牲にしている。しかし、最近の計算機の能力向上により、この分類木のアンサンブルを用いた手法は現実的な時間で実行可能になった。そして、その認識性能の高さから最近、多くのシステムに採用されるようになってきている。ちなみに、この手法は古典的な分類木のアルゴリズムより遅いものの、特許文献2にあるようなsupport vector machineを用いたパターン認識手法より高速、かつ、同程度の能力を出すという性質を持っている。
米国特許第6,009,199号公報 特開2005−339186号公報
Leo Breiman, Jerome Friedman, Charles J. Stone, and R.A. Olshen, "Classification and Regression Trees", Chapman & Hall/CRC (1984)
しかしながら、パターンとして画像を用いるアプリケーションを想定した場合、リアルタイム性が求められることが多く、より高速なパターン認識アルゴリズムが必要になってくる。そして、特許文献1に記載の分類木のアンサンブルを用いた手法であっても認識処理にかける計算時間が不足し、更なる高速化が要求されている。
本発明は、高速に、かつ、高精度にパターン認識が可能な情報処理技術を提供する。
あるいは、本発明にかかる情報処理装置は、複数のクエリー列に従って学習パターンを分割することによってテーブルを生成する第1のテーブル生成手段と、
前記第1のテーブル生成手段によって生成されたテーブルを用いて分割された学習パターン集合を複数のクエリー列に従って更に分割することによってテーブルを生成する第2のテーブル生成手段と、
前記第1のテーブル生成手段で生成されたテーブルと前記第2のテーブル生成手段で生成されたテーブルとを組み合わせることでパターンを判別する判別器を作成する判別器作成手段と、を備えることを特徴とする。
本発明によれば、高速に、かつ、高精度にパターン認識が可能な情報処理技術の提供が可能になる。
あるいは、パターン認識の情報処理に必要となるディスク、また、メモリの容量を削減することができる。
第1の実施形態にかかる学習過程の処理の流れを説明する図。 (a)本発明の実施形態にかかる情報処理装置の概略的な構成を説明する図、(b)木構造の判別器を例示的に説明する図、(c)木構造の判別器を例示的に説明する図。 認識過程の処理の流れを説明する図。 (a)第2の実施形態における学習過程の処理の流れを説明する図、(b)第2の実施形態における認識過程の処理の流れを説明する図。 テーブル化を例示的に説明する図。 テーブルを作成する手順を説明する図。 木構造の判別器の実装例を例示的に示す図。 パターンとして画像を扱う場合を説明する図。 (a)第4の実施形態における学習過程の処理の流れを説明する図、(b)第4の実施形態における認識過程の処理の流れを説明する図。 (a)元となるツリーを例示的に示す図、(b)ツリーを元に作成された組み合わせテーブルを例示的に示す図。 第5の実施形態の処理の流れを説明する図。 第6の実施形態の処理の流れを説明する図。 作成されるテーブルを例示的に示す図。 クエリーにおける分岐の2進法表示とエンティティ番号との対応関係を示す図。 (a)判別器の作成装置の構成例を示す図、(b)認識装置の構成例を示す図。
(第1の実施形態)
図2(a)−(c)の参照により、本発明の実施形態にかかる情報処理装置の概略的な構成を説明する。情報処理装置は、中央処理装置(CPU)202、メモリ203、入出力装置204を有し、中央処理装置(CPU)202は不図示のインタフェースを介して、外部記憶装置201との間でデータの送受信が可能である。外部記憶装置201は、本発明の実施形態にかかるパターン認識方法をコンピュータに実行させるためのプログラムや、学習パターン、学習パターンを用いて作成された辞書等を保持することが可能である。また、新たに導かれた新規パターンの認識結果を保持することが可能である。中央処理装置(CPU)202はパターン認識方法のプログラムの実行を司り、情報処理装置の全体的な制御を行う。メモリ203は中央処理装置(CPU)202が使用するプログラム、及びサブルーチンやデータを一時的に格納するワークエリアとして機能する。また、本発明の実施形態により導かれた新規パターンの認識結果を保持することも可能である。
入出力装置204は、新規パターンを取り込んだり、データの入出力を行う他、ユーザからの指示の受付け、ユーザに対するデータ表示等、ユーザと情報処理装置との間のインタフェースとしても機能する。例えば、パターンとして2次元の画像を用いる場合は、入出力装置204は対象物体を撮影するカメラとして機能する。また、入出力装置204はパターン認識結果を他の情報処理装置へ出力することも可能である。また、本実施形態のパターン認識方法を実現するプログラムの実行のトリガーを、入出力装置204を介してユーザが指示を出す場合もある。また、入出力装置204を介して、ユーザが、パターン認識処理の結果を見たり、プログラムのパラメータ設定を行うことも可能である。
機械学習によるパターン認識方法には、多くのパターンから学習をする学習過程と、新規パターンを解析する認識過程と、の2つの過程が存在する。以下、図1(a)、(b)の参照により学習過程の処理の流れを説明し、図3(a)、(b)の参照により認識過程の処理の流れを説明する。
学習過程は図1(a)と図1(b)との2つのルーチンに分けられる。図1(b)のルーチンは再帰呼び出しされる。図1(a)、(b)に示したフローチャートを実行することによって、学習パターンの集合が再帰的に分割されていくことになる。そして、その結果として図2(b)、(c)に示すような木構造の辞書(=木構造を持った判別器)が出来上がる。つまり、木構造の辞書、もしくは木構造の判別器を作成することは、論理的には、学習パターンの集合を再帰的に分割することと等価となる。
まず、ステップS101において、クエリー列が作成される。ここでクエリーとは、パターンをどの枝に振り分けるかを決定する「問い」であり、「i番目の次元の値がある閾値以上か未満か」で、左右の枝に分岐する例などが考えられる。パターンが画像データの場合、「ある位置の値(輝度)と、ある位置の値(輝度)と、を比較してどちらが大きいか」で分岐する例も考えられる。一般には枝は2つである必要はなくN本あってよい。この場合のクエリーの例としては、「i番目の次元の値をある定数で割った商」の値に応じた分岐などが考えられる。
以下、クエリーの例として、多次元データのある次元を選んで、その次元の値がある閾値以上か未満かを判断するクエリーを考えてみる。ここで注目する次元の選択を全ての次元からランダムに選び、かつ、閾値をある区間からランダムに選ぶことでランダムなクエリー列が導かれる。ステップS101では、例えばこのようなクエリー列を作成する。なお、作成するクエリーの個数(=クエリー列の長さ)は事前に設定しておく。この数をT(クエリー列の長さ)として以下説明する。
次に、ステップS102では、ルートノードに学習パターンの全てを格納(設定)する。そして、ステップS103では、ルートノードをカレントノードとして設定する。ここで、「ルートノード」とはツリーの一番根元に存在するノードのことを言い、図2(b)のノード211がルートノードに対応する。「カレントノード」とは学習過程および認識過程において現在処理しているノードを意味する。ステップS104では、図1(b)に記述されたカレントノードを展開するサブルーチンを呼んで、このサブルーチンから処理が戻されたら学習過程は終了となる。なお、図2(b)、(c)のノード211から219の番号順にカレントノードは移動することとなる。
図1(b)の参照によりノードを展開するサブルーチンの処理の流れを説明する。まず、ステップS105で、カレントノードがnullノードかleafノードかが判断される(nullノード及びleafノードの定義は後述する。)。そして、カレントノードがnullノードかleafノードであった場合(S105−Yes)、図1(b)のサブルーチンは終了する。
カレントノードに学習パターンが全く含まれない場合、そのノードはnullノードとする。また、カレントノードに残っている学習パターンの集合がある一定条件を満たした場合、そのノードをleafノードとする。ここで、ある一定条件とは、例えば、「カレントノードに存在するクラスがK種類(例えばK=10)以下だった場合」という条件などが考えられる。この条件でK=1に設定した場合は、「カレントノードが純粋に1つのクラスしか含まない」という条件となる。また、カレントノードに存在する学習パターンから情報量エントロピーを計算し、その値がある閾値以下だった場合とすることもできる。なお、この条件で閾値を0とすると、上述の「カレントノードが純粋に1つのクラスしか含まない」条件と同じとなる。
図2(b)、(c)の例では、ノード213、215、219がleafノードであり、216、218がnullノードとなる。カレントノードにノード213、215、216、218、219が設定された場合、ステップS105における判断は「Yes」となり、図1(b)の処理は終了する。nullノードおよびleafノードは、ターミナルノードとも呼ばれ、残った学習パターンの情報が保持される。例えば、パターン認識の目的がクラス判定の場合、ターミナルノードには各クラスの存在確率が保持される。なお、前述した通り、leafノードの条件が「カレントノードが純粋に1つのクラスしか含まれない」であった場合、その残ったクラスの番号を情報として格納してもよい。一方、パターン認識の目的がいわゆる回帰の場合、ターミナルノードにはある推定値、もしくは推定ベクトルが格納される。
ステップS105−Noの場合、ステップS106以降のサブルーチンの処理が続き、カレントノードを展開する。カレントノードを展開する処理はステップS106〜S113のステップにより実行される。この中でステップS112の処理では、図1(b)のサブルーチンが再帰的に呼び出される。この処理の結果、学習パターンの集合が再帰的に分割されることとなる。
ステップS106で、カレントノードの展開に先立ち、まずステップS101で作成されたクエリー列からカレントノードの深さ(階層)に応じてクエリーを読み込む。例えば、図2(b)では、ルートノード(ノード211)がカレントノードとなっており、ルートノードの深さは「0」なので、クエリー列の0番目のクエリーが読み込まれる。
次に、ステップS107で、クエリーの読み込みに成功したか否かの判断が行われる。読み込みに成功したと判断された場合(S107―Yes)、処理はステップS109に進められ、ステップS107において、読み込みに成功していないと判断された場合(S107−No)、処理はステップS108に進められる。
ステップS107におけるクエリーの読み込みが成功と判断されるケースとは、カレントノードの深さがステップS101で作成したクエリー列の長さ未満になり、読み込むべきクエリーが存在した場合を意味する。例えば、同じ深さのノード212、217には、同じクエリーが読み込まれる。
ステップS107におけるクエリーの読み込みが失敗と判断されるケースとは、カレントノードの深さがステップS101で作成したクエリー列の長さ以上になり、読み込むべきクエリーが存在しなかった場合を意味する。具体的には、カレントノードの深さが、クエリー列の長さ(T)以上になった場合、ステップS107の判断結果は「No」になり、処理はステップS108に進められる。
ステップS108では、クエリーの読み込みに失敗したときの処理が実行される。具体的には、カレントパターン集合に基づいて新たなクエリーを作成するための処理が実行される。図2(b)の例では、クエリー列の長さT=2としており、カレントノードが212と217の場合、深さが「1」となるため、ステップS107では、クエリーの読み込みに成功したと判断される(S107−Yes)。
一方、ノード214の場合、深さが「2」となるため、クエリーの読み込みに失敗する。この時、ステップS108の処理が実行され、新たなクエリーが作成される。ステップS108の処理は、例えば、ノード毎に適したクエリーを選びたい場合などにその効果を発揮する。クエリーの選び方としては情報量エントロピーを基準にした相互情報量を用いるやり方や、非特許文献1に記載されているGini係数を用いたやり方などがある。また、ステップS108の処理では最適なクエリーを選ぶ必要性はなく、クエリーの選び方にステップS101で説明したようなランダム性を取り入れても良い。
ステップS109では、読み込みにより設定されたクエリーに基づいてカレントノードに残っている学習パターン(カレントパターン集合)を分割する。この分割の数Nは一般的にはカレントノードによって異なっていても良いが、通常、全てのノードで同じ値が用いられる。例えば、N=2となる場合は、いわゆる2分木が作成され、図2(b)のような形態の分類木(分割枝)となる。ステップS110〜S113の処理は、分割された分割枝ごとに実行されるループであり、分割枝がN個の場合に、N回のループで処理が繰り返される。ステップS111で分割枝iをカレントノードに設定し、ステップS112で図1(b)のサブルーチンが再帰的にされる。
図2(b)は作成された分類木の例であり、太い横線250の上がテーブル部分で、横線250の下の四角で囲った部分がツリーの部分となる。ノード番号で示すとノード211、212、217の部分がテーブルで、それ以外のノードがツリーとなる。ここで、「テーブル」と「ツリー」と呼び方を分けて明確に区別している。その生成(作成)過程をフローチャート上で示すと、「テーブル」と呼んでいる部分は、図1(b)のステップS107、S109の順で実行され、「ツリー」と呼んでいる部分は、図1(b)のステップS107、S108、S109の順番で処理が実行される。通常は、ノード214、215、216で構成される形となっているが、ノード213、218、219はルートノードがnullノードまたはleafノードとなっている特殊なツリーの形式となっている。
テーブルの長さ(深さ(階層)とも呼ぶ)がPで、それぞれの分岐の個数がRだとするとテーブルの個々の要素(エンティティ)はRP個あることになる。図2(b)の場合、深さがP=2で分岐もR=2なので4つ(=2)のエンティティがあり、それぞれのエンティティには四角で囲った部分のツリーが保持されている。図2(b)のノード212とノード217は同じクエリーを保持するので同一視することができる。それをまとめて表示したのが図2(c)である。木構造のノードのうち、クエリー列の長さに対応する階層までのノードについて、各階層のノードを共通化したノードとしてまとめることにより、木構造が変更される。図2(c)においては、ノード217とノード212とを1つにまとめて共通化したノード212として表記している。あるクエリーを入力すると、その結果、R通り(=分岐の個数)の可能性が出てくる。これを枝で表示したのが図2(b)であり、枝では明示的に表示していないのが図2(c)といえる。図2(c)の表現方法にすると、テーブルとツリーの部分がより明確になる。P個のクエリー列の結果に応じて、RP個の分岐(=テーブルのエンティティ)が存在する。認識の過程に先立ち、クエリー列を構成するクエリーの読み込みを行い、読み込まれたクエリーと、変更された木構造とを用いてパターンの認識処理が実行される。
図3(a)、(b)の参照により、新規の未知パターンを図1(a)、(b)で作成した木構造の辞書を用いて認識する過程を説明する。まず、ステップS301でクエリー列を構成するクエリーが読み込まれる。図2(b)の場合、2つのクエリーが読み込まれる。このように、本発明の実施形態にかかるパターン認識処理では、クエリー列の深さでクエリーが一意に決定されているので、このクエリーの先き読みを行うことが可能となる。最近のCPUの進化により、クエリー先き読みができればそれらをまとめて処理する技術、例えばSIMD(Single Instruction/Multiple Data)などの技術を用いることができるようになる。結果的に本実施形態にかかるパターン認識方法は、超高速な演算処理が可能になる。次に、ステップS302では、先のステップS301で読み込まれたクエリー列を構成するクエリーに基づいてツリー(tree)番号を計算する。図2(b)に示すツリーの場合、ツリー(tree)番号は0番から3番までとなる。それぞれのサブツリーのルートノードは213(tree番号0)、ノード214(tree番号1)、ノード218(tree番号2)、ノード219(tree番号3)となる。そして、計算された番号のツリー(tree)を読み込み(S303)、そのツリー(tree)をたどる(S304)。ここで、ツリー(tree)をたどるサブルーチンを図3(b)に示す。まず、ステップS305でカレントノードをルートノードに設定する。次に、カレントノードがターミナルノード(nullノードもしくはleafノード)であるかどうかの判断を行う。もしカレントノードがターミナルノードであった場合(S306−Yes)、認識結果にそのターミナルノードの情報をセットして(S309)、サブルーチンを終了する。
もしカレントノードがターミナルノードでない場合(S306−No)、カレントノードに格納されているクエリーに基づいて枝番号を計算する(S307)。そして、計算された枝番号の子ノードをカレントノードに設定する(S308)。続いて、処理をステップS306に戻して、同様の処理を繰り返す。
図3(b)に示したサブルーチンでは、ルートノードからnullノードかleafノードに到達するまでツリー(tree)をたどることになる。認識過程(図3(a)、(b)で示したフローチャート)で用いる木構造の判別器の実装例は、例えば、図7(b)の710、711のようになる。図7(b)の710にあるようにP個のクエリーからなるクエリー列をまず読み込む(図3(a)のS301)。そしてクエリーに基づいてツリー(tree)番号を計算する(図3(a)のS302)。その結果、計算されたツリー(tree)番号の判別器を全部でRP個ある判別器(図7(b)のテーブル711)から読み込む(図3(a)のS303)。そして、その判別器を用いて新規パターンを解析する(図3(a)のS304)。
本実施形態によれば、高速に、かつ、高精度にパターン認識が可能な情報処理技術の提供が可能になる。あるいは、パターン認識の情報処理に必要となるディスク、また、メモリの容量を削減することができる。
(第2の実施形態)
次に、図4(a)の参照により第2の実施形態における学習過程の処理の流れを説明し、図4(b)の参照により第2の実施形態における認識過程の処理の流れを説明する。第1の実施形態では、1つの木構造の判別器を作成する方法、および、1つの木構造の判別器を用いてパターンを解析する方法を説明した。これに対して、第2の実施形態では複数の木構造の判別器を生成する方法、および、複数の木構造の判別器を用いてパターンを解析する方法を説明する。木構造の判別器の個数をL個とする。通常、Lは10〜100ぐらいの数になるが、2つ以上の任意の定数となる。Lを大きくすると辞書サイズが大きくなり、認識率は向上する。一方、判別器の個数Lを小さくすると辞書はコンパクトになるが、認識率は低下する。
ステップS401〜S403の処理を、ツリー(tree)番号が1からLまで繰り返すことより、学習過程の処理が実行される。学習過程の処理ループの中で、図1(b)の学習過程がサブルーチンとして呼び出される(S402)。学習過程の処理ループの中でS402のサブルーチンの呼び出しは、全体の処理に対して独立に行うことが可能である。つまり、ステップS401〜S403の学習過程の処理ループは単純にマルチスレッド、マルチタスクで行ってもよい。また、容易に複数の計算機を用いて並列に実行することも可能である。図4(a)で示した複数(L個)の木構造の判別器を作成する方法は、並列計算向きであり、並列度を高くすると極めて高速に実行できると言える。次に、図4(b)の認識過程では、判別器(tree)番号が1からLまでのループ(S404〜S406)の後、ステップS407において、最終的に得られたL個の判別器の結果を集計する。認識過程のループ処理の中で図4(a)の木構造を用いた学習過程がサブルーチンとして呼び出される(S405)。
ステップS407では、L個の判別器の認識結果を集計し、最終的なパターン認識結果を得る。集計方法としては、例えば、パターン認識のタスクがクラス判定タスクだとすると、判別器の結果は各クラスの存在確率ベクトルとなる。この時、ステップS407の集計としては、L個の存在確率ベクトルの相加平均や、相乗平均などが考えられる。図4(b)の認識過程も図4(a)の学習過程と同様に並列処理に向いており、並列度を高くすると非常に高速に処理することが可能である。
(第3の実施形態)
第3の実施形態では第1の実施形態で説明した木構造の判別器を全部テーブル化する。そのために、まず図1(a)のステップS101におけるクエリー列の長さTを十分大きくする必要がある。第1の実施形態の説明では、例示的にクエリー列の長さをT=2として説明したが、例えば、本実施形態では、T=100と設定することが可能である。図2(b)で説明した学習結果である木構造は、T=2の条件で作成したものである。しかし、結果的に第3階層(ルートノードが1階層だとして)のノードは、ノード214を除いた全部(3つ)がターミナルノードになっている。よって、例えば、Tが3以上に設定したとしても図2(b)の形式の木構造が生成されることになる。以下、図2(b)は十分大きなTを設定して、図1(a)、(b)のフローチャートに従って作成された木構造だと仮定して説明する。
図5(a)−(d)は図2(b)の全てのテーブル化を例示する図である。図5(a)−(d)は表示上ツリーの形をしているが、同じ階層(深度)のノードでは同じクエリーを持つので実質的にはテーブルとなる。そして、階層の数は3で分岐が2なので、テーブルのエンティティの数は8(=2)となる。
末端ノードの下に書かれた数字は図2(b)、(c)で示したノード番号を示しており、同じ情報が保持される。ハッチングを付したノードはnullノードを意味する。ここで各ノードが保持する情報とは、第1の実施形態で説明した通り、各クラスの存在確率ベクトルであったり、回帰の際の推定値だったりする。なお、実装形態としては、末端ノード(=テーブルのエンティティ)の保持する情報へのポインタを各ノードが保持すると効率が良い。
図5(a)は図2(b)を全部テーブル化した例であり、図5(b)は図2(b)のnullノードの部分をその親ノードで置換してテーブル化した例を示す。図5(a)−(d)の例で重要なことは、同じ情報を保持する末端のノード(=テーブルのエンティティ)があることである。つまり、本実施形態で作成されるテーブルは冗長な情報を保持していることになる。結果的に本実施形態では、ディスク容量、もしくはメモリ容量は多く必要とするが、非常に高速に認識できるという効果が得られる。図5(a)、(b)のテーブルをよりわかりやすく図示したのが図5(c)、(d)である。これは図2(b)、(c)の関係と全く同じで、同じ内容のクエリーを同一視して表示したものとなる。図5(a)に対応するのが図5(c)であり、図5(b)に対応するのが図5(d)である。テーブルの長さ(深さとも呼ぶ)がPで、それぞれのノードの分割数(分岐の個数)がRだとするとテーブルの個々の要素(エンティティ)はRP個あることになる。図5(a)−(d)の場合、深さがP=3で分岐がR=2なので8=2の数のエンティティがある。認識過程においては、3個のクエリーを読み込むだけで最終的なエンティティが計算できるので非常に高速に処理することができる。
図6(a)、(b)の参照により、図5(a)−(d)のテーブルを作成する手順を説明する。まず、ステップS601において、図1(a)、(b)のフローチャートをサブルーチンとして呼び出しツリー(tree)を作成する。この時、前述した通り、ステップS101のクエリー列は十分大きな長さを用意する。次に、ステップS602において、先のステップS601で作成されたツリー(tree)の最大深度(P)を計算する。図2(b)の木構造の場合、最大深度(P)=3となる。
そして、エンティティ番号iのループ処理としてステップS603〜S606が実行される。分岐の数をRとすると、エンティティ番号iは0〜RP−1の範囲を動く。ここで、エンティティ番号iが0から開始するのは後で説明を簡単にするためであり、1〜RPとしても本質的には変わらない。ステップS604で、エンティティ番号iに対応するターミナルノード(nullノードまたはleafノード)を計算する。ステップS604の処理において、図1(b)のサブルーチンが呼び出される。
図1(b)のサブルーチンから処理が戻されたら、計算されたターミナルノード(nullノードまたはleafノード)に応じた情報がエンティティに格納される(S605)。
図6(b)のステップS607、S608、S610、S611と、図3(b)のステップS305、S306、S308、S309と、はそれぞれ同じ処理となる。図3(b)のサブルーチンと異なっているのは、ステップS609の処理のみである。この処理はエンティティ番号iから枝番号を計算する処理である。説明を簡単にするために、エンティティ番号iをR進数の数字だとすると、iはP桁の数字となる。そして、カレントノードの深さをdとすると、iのd桁目の数字が枝番号となる。
図6(a)のステップS603〜S606のループを実行した結果が図5(a)−(d)の数字で示した部分となる。図5(a)では、図2(b)で示した8つのノード213、213、215、216、218、218、219、219が得られる。一方、図5(b)では、図2(b)で示した8つのノード213、213、215、214、217、217、219、219が得られる。
次に、図7(a)、(b)の参照により本実施形態の認識過程を説明する。図7(b)の712に示すようにP個のクエリーからなるクエリー列をまず読み込む(図7(a)のS701)。そしてクエリーに基づいてエンティティ番号を計算する(図7(a)のS702)。その結果、全部でRP個あるエンティティ(図7(b)の713)の中から計算された番号のエンティティ情報を読み込む(図7(a)のS703)。
本実施形態によれば、高速に、かつ、高精度にパターン認識が可能な情報処理技術の提供が可能になる。あるいは、パターン認識の情報処理に必要となるディスク、また、メモリの容量を削減することができる。
(第4の実施形態)
図8(a)、(b)の参照により、パターンとして画像を扱う場合を説明する。本実施形態では、1枚の学習画像からM枚の部分画像が抽出される。これを部分画像集合と呼ぶ。この部分画像集合を構成する部分画像同士は重なりがなくても良いが、重なりがあるように網羅的に元の学習画像から抽出されることが望ましい。
例えば、学習画像のサイズが100×100ピクセルで、部分画像のサイズが50×50ピクセルだとする。ピクセルとピクセルの中間の位置(いわゆるサブピクセル)を考慮に入れないとすると、1枚の学習画像から抽出される全部分画像は2601(=51×51)枚となる。なお、重なりのない部分画像を抽出したとすると全部で2×2=4枚の部分画像が得られる。図8(a)に示す部分画像集合は2601枚ある全部分画像中の出来るだけ多くの部分画像からなることが望ましい。最終的な学習部分画像群としては、同じクラスの学習部分画像がそれぞれM枚ずつ、全部でMxN枚の学習部分画像が得られる。そして、この学習部分画像群を用いて2分木を作成していく(図8(b))。
全部でL個分類木が存在するので、この分類木の作成はL回行われる。分類木作成の際、各分類木のノードでは、ランダムに2つのピクセルを選ぶ。そして、そのピクセルの輝度比較を行うことにより、学習部分画像の集合を再帰的に分割していく。なお、本実施形態においてはランダムに2つのピクセルを選んだが、部分画像中の任意の矩形領域をランダムに2つ選んで、その矩形領域の平均輝度を比較することによって枝分かれを行ってもよい。
また、矩形ではなく予め用意した複数のマスクパターンを用いてもよい。この時、部分画像中の任意の位置にある任意の種類のマスクパターンをランダムに2つ選ぶ。そして、その領域の平均輝度を比較することによって集合を再帰的に分割する。この学習過程をフローチャートにしたものが図9(a)である。
ステップS901では、部分画像を取り出し学習パターン集合を作成する。この処理は、図8(a)の参照により説明した処理に対応する。そして、ステップS902では、ツリー(tree)のアンサンブルを作成する。この処理は、図8(b)で説明した処理に対応するもので、具体的には図4(a)の処理をサブルーチンとして呼び出す。なお、図8(a)、(b)の模式図では1枚の学習(登録)画像から抽出されるM枚の部分画像を全て同一視することで、学習過程におけるクラスの数がNだとした。これに対して、M枚の部分画像を学習画像中のオフセット位置を用いて区別し、全部でMxN個(種類)のクラスがあるとすることもできる。
次に、図9(b)の参照により本実施形態の認識過程の処理の流れを説明する。一例として、新規入力画像のサイズが1280×1024、部分画像のサイズを50×50とする。この場合、サブピクセルを考慮しなければ、新規入力画像の中に部分画像が1200225(1231×975)個存在することになる(X=1280−50+1、Y=1024−50+1)。基本的に、ステップS903からS908の処理は、1200225回だけ繰り返されるループとなる。但し、必ずしも1200225回繰り返しを実行する必要はなく、途中スキップして実行することによって高速化してもよい。
部分画像のループの中でツリー(tree)番号のループ(S905〜S907)が実行される。本処理では、2重のループが実行されることになるが、2つのループはお互い独立なので、ループの内側外側を入れ替えても良い。ループの一番深い処理ステップS906において、i番目の判別器が実行される。本処理ステップでは、図3(a)、(b)のフローチャートがサブルーチンとして呼び出される。最後に、ステップS909において、判別結果の集計を行う。この結果、1280×1024のサイズの入力画像の中に存在する100×100のサイズの学習画像が抽出されることとなる。集計方法として、それぞれのクラスの存在確率ベクトルの相加平均、相乗平均などの処理を行うこともできる。また、前述の部分画像の学習画像中での位置を記録したオフセットを用いて、学習画像の存在位置を求めることもできる。
本実施形態によれば、高速に、かつ、高精度にパターン認識が可能な情報処理技術の提供が可能になる。あるいは、パターン認識の情報処理に必要となるディスク、また、メモリの容量を削減することができる。
(第5の実施形態)
第1の実施形態ではテーブルとツリーを組み合わせることによって高速、高精度なパターン認識を実現した。また、第3の実施形態では1つの大きなテーブルを用いて高速、高精度なパターン認識を実現した。第1の実施形態と第3の実施形態を比べると、第1の実施形態の方が速度を犠牲にして、よりコンパクトな辞書を作成することができるという利点がある。これに対して、第3の実施形態は、第1の実施形態と比べるとコンパクト性を犠牲にして、より高速な判別器を実現できるという利点ある。本実施形態では、異なるテーブル生成プロセスにより生成された複数のテーブルを組み合わせることによって、第1の実施形態と第3の実施形態の良い点を備える判別器を作成する構成を提供する。
図10(a)に元となるツリーを例示的に示し、図10(b)にそのツリーを元に作成された組み合わせテーブルを例示的に示す。図10(a)の1011から1023はツリーを構成するノードを示している。なお、図10(a)で示したツリーは図2(b)で示したツリーより1段深くなっている。図2(b)と同じように、末端にあるノードのうち、白い丸で示したノードはleafノード(リーフノード)を表し、斜線で塗りつぶしたノードはnullノード(ヌルノード)を表す。そして、末端ではない、つまり枝を持つノードはインターナルノードを示しており、そのノードで用いるクエリーに従ってそれぞれの枝への分岐が生じる。
第5の実施形態および第6の実施形態において、説明を簡単にするために1つのリーフノードには1つの学習パターンが格納されているとする。そして、例えば、リーフノード1013に格納されている学習パターンを学習パターン「P1013」のように先頭にPを付けて表記する。この条件のもとでは、結局、図10(a)で示したツリーを作成する時点で4つの学習パターンP1013、P1016、P1017、P1023が学習データとして準備されていることになる。なお、一般的には第1の実施形態で説明したように1つのリーフノードに格納される学習パターンは1つに限定されるものではなく、複数の学習パターンの情報を格納することも可能である。
図10(a)に示したツリーの作成方法は第3の実施形態で説明した方法と同じである。つまり、予め多くのクエリーを生成した後で、そのクエリーに基づいてツリーを作成する。この結果、ツリーに存在する深さが同じノードにおけるクエリーは全て共通になる。具体的にはノード1012とノード1019は同じクエリーを使う。また、ノード1014とノード1021は同じクエリーを用いる。
太線1050は、最初にテーブル化するためのノード間の境界を示し、図2(b)における太線250と同じである。まず太線1050で示した境界で、クエリーが2段のテーブルが作成される。この結果、図10(b)のノード1011、ノード1012を囲む1100で示したテーブル1100が作成される。テーブル1100のことをルートテーブルと呼ぶ。なお、太線1050の位置、すなわち、ルートノード1011から数えて2段目という位置は任意である。予め辞書化の効率の良い位置をユーザが決めても良いし、最も効率の良い段数を計算して決定しても良い。
第1の実施形態(図2(b))においては、このルートテーブルの末端に4つのツリーがつながっていた。これに対して本実施形態では、ルートテーブルに1101〜1104の四角で示した4つのテーブルがつながっている。なお、テーブル1101とテーブル1103は、それぞれリーフノード1013とヌルノード1020からなるクエリーが存在しないテーブルとなる。通常、クエリーが存在しないテーブルはテーブルとは呼ばない。しかし、本実施形態を理解しやすいように、便宜的にテーブル1101とテーブル1103のようなクエリーが存在しないテーブルも0段のテーブルと呼ぶ。これは、第1の実施形態でターミナルノードのみからなるツリーもツリーと呼んだことに対応する。また、同じ命名規則で、図10(b)のテーブル1102をクエリー2段のテーブル、テーブル1104をクエリー1段のテーブルと呼ぶ。そして、テーブル1102を作成する際にクエリーの境界となるのは図10(a)の太線1051で、テーブル1104を作成する際にクエリーの境界となるのは太線1052となる。なお、太線1051及び太線1052の位置は末端のリーフノードの深さの位置となる。
テーブル1102の作成規則は図5(c)で示した生成規則と同じである。つまり図5(c)において、ヌルノード218がコピーされて2つ存在するのと同じように、ヌルノード1018がコピーされて2つ存在する。例えば、これを図5(d)で示した生成規則に準じて作成する場合、図10(b)の2つのヌルノード1018はノード1014の情報で置換されることとなる。
図11に本実施形態の処理の流れを説明するフローチャートを示す。まずルートテーブル(図10(a)の太線1050より上の部分、もしくは図10(b)の四角で囲った1100の部分)を作成する。ルートテーブルの作成に際して、ステップS1101において予め決められた数のクエリー(クエリー列)を作成する。例えば、図10(b)の例なら、ルートテーブルの段数は2なので、ステップS1101で2つのクエリー列を作成する。そしてステップS1102で、このクエリー列に基づき学習パターンを分割する(第1のテーブル生成プロセス)。
具体的に図10(a)、(b)の例を用いて説明すると、全ての学習パターン(P1013、P1016、P1017P、P1023)を含む集合が以下の4つの部分集合に分割される。4つの部分集合は、学習パターンP1013を含む集合、学習パターンP1016、P1017を含む集合、空集合、学習パターンP1023を含む集合である。
一般的には、1つのクエリーによって分割される部分集合の数(ツリーにおける枝の数と等価)をR、クエリーの数をPとする。すると、ルートテーブルにおいて分割される学習パターンの部分集合の数はRPとなる。図10(a)、(b)の例でいうと、R=2かつP=2なので、分割された学習パターンの部分集合の数は上述の通り22=4となる。
次に、全ての学習パターンの部分集合に対して、それを学習パターンとみなして、テーブルを作成していく(第2のテーブル生成プロセス)。これがステップS1103〜ステップS1105までのルーチンとなり、このループの中のステップS1104でそれぞれのテーブルが作成される。図10(b)の例でいうと、テーブル1101〜テーブル1104が作成される。ステップS1104のサブルーチンは具体的には図6のフローチャートが呼び出される。
なお、図10、図11を用いて説明してきた実施形態は、テーブルを2層組み合わせた例となる。この層の数は2に限定されるものではなく、3以上の層であっても本実施形態の本質は変わらない。
(第6の実施形態)
これまで説明してきた実施形態では、まずツリーを作成しておいてからそれに対応するテーブルを作成した。この方法によって性能を保ったままより高速なパターン認識アルゴリズムが実現できる。これに対して、本実施形態では最初から直接テーブルを作成し、次にそれを変換したテーブルを作成する。この方法によって高速性を保ったままより高性能なパターン認識アルゴリズムを実現する。
図12に本実施形態における処理の流れを説明するフローチャートを示し、図13(a)、(b)に作成されるテーブルを例示的に示す。なお、図13(a)、(b)で示したテーブルの例は図10(a)、(b)で示した例と全く同じ学習パターンを用いて作成されたものとする。すなわち、図13(a)、(b)で示したテーブルは学習パターンP1013、P1016、P1017、P1023を用いて作成されている。
まずステップS1201において、予め決められた数のクエリー列を作成する。図13(a)、(b)の例でいうと4つのクエリー列を作成する。なお、図13(a)の四角で囲んだ4つのクエリー列1351は図10(a)におけるノード1011、ノード1012、ノード1014、ノード1015で用いられるクエリー列と同じとし、同じ番号を振っている。
次にステップS1202において、先のステップで作成されたクエリーに列に基づいて初期テーブルを作成する。この初期テーブルの例が図13(a)で図示したテーブルとなる。なお、図13(a)において白丸で示したエンティティは学習パターンが格納されているエンティティを意味し、斜線で塗られたエンティティは学習パターンが全くないヌルエンティティを意味する。
この結果、作成されるエンティティの数は一般的にはRPとなる。図13(a)の例ではR=2、P=4となっており、結果的に24=16個のエンティティ(1301〜1316)が作成される。なお、図13(a)で示した初期テーブルは図10(a)で示したツリーに準拠して書かれている。具体的には、リーフノード1013に相当するエンティティが1302で、リーフノード1016に相当するエンティティが1305となる。そして、リーフノード1017に相当するエンティティが1306で、リーフノード1023に相当するエンティティが1316となる。この初期テーブルでは16個あるエンティティのうち12個がヌルエンティティとなっている。
ここで重要な事は、図10(a)では学習パターンが1つとなったらクエリーが実行されないのに対して、図13(a)ではノード1011、1012、1014、1015で示した4つのクエリーが必ず実行される事である。
クエリーにおける左分岐を0で表し、右分岐を1で表したとすると、エンティティ1301〜1316は0000から1111までの4ケタの2進数に対応する。図14は、クエリーにおける分岐の2進法表示とエンティティ番号との対応関係を表示する図である。左のカラムが2進数表記の数字で、右のカラムがそれに対応したエンティティ番号となる。例えばエンティティ1302の2進数表示は0001となり、最初の3つのクエリーの分岐は左で、最後の1つのクエリーの分岐が右だったということを意味する。これに対して、図10(a)では最初の2回の分岐で学習パターンが1つになったので、それ以降のクエリーは実行されていない。
また、エンティティ1316の2進数表示は1111となり、4つのクエリーの分岐は全て右だったということを意味する。これに対して、図10(a)では最初の3回の分岐で学習パターンが1つになったので、最後の4つ目のクエリーは実行されていない。
図12のフローチャートに戻り説明すると、ステップS1203からステップS1215までのルーチンによって初期テーブルを変換した最終的なテーブルが作成される。具体的には図13(b)で示したような全てのエンティティに学習パターンが格納されているテーブルが作成される。
ステップS1203からステップS1214までのループで初期テーブルを構成する全てのエンティティがチェックされる。まずステップS1204で当該エンティティがヌルかどうかがチェックされる。もしヌルでないエンティティである場合、即ち学習パターン情報を持ったエンティティである場合、ステップS1214までジャンプして次のエンティティに処理を進める。
ステップS1204の判定で、当該エンティティがヌルであった場合、ステップS1205からステップS1213までのルーチンが実行される。ここでアルゴリズムを説明するために、テーブルの階層と近傍エンティティの概念を説明する。ステップS1205とステップS1206で使っている「階層」という言葉は、テーブルの階層のことを意味する。
テーブルの階層とは、テーブルを構成するクエリーの上から下への階層のことを意味する。具体的には図13(b)で示したテーブルなら全部で4階層あって、1011、1012、1014、1015で示した4つのクエリーノードに対応する。以下、テーブルの階層番号とこれらのノードの番号を同じ番号を使って説明する。
近傍エンティティとは、テーブルの中で論理的に近いエンティティを意味する。ここで“論理的に近い”とは、“当該階層以下の階層がなかった場合に同一のエンティティとなる”という意味である。前述した2進法表記を用いて説明すると、上位のビットが同一の数字になることを意味する。
具体的には、図13(a)のエンティティ1301の階層1015に関する近傍エンティティはエンティティ1302となる。2進法表記で説明すると、エンティティ1301とエンティティ1302はともに上位3ビットが「000」となるからである。
また、エンティティ1301の階層1014に関する近傍エンティティはエンティティ1302、エンティティ1303、エンティティ1304となる。2進法表記で説明すると、エンティティ1301〜1304はともに上位2ビットが「00」となるからである。
また、例えば、エンティティ1307の階層1015に関する近傍エンティティはエンティティ1308となる。2進法表記で説明すると、エンティティ1307とエンティティ1308はともに上位3ビットが「011」となるからである。
また、エンティティ1307の階層1014に関する近傍エンティティはエンティティ1305、エンティティ1306、エンティティ1308となる。2進法表記で説明すると、エンティティ1305〜1308はともに上位2ビットが「01」となるからである。
また、エンティティ1307の階層1012に関する近傍エンティティはエンティティ1301からエンティティ1306、エンティティ1308となる。2進法表記で説明すると、エンティティ1301〜1308はともに上位1ビットが「0」となるからである。
図12のフローチャートに戻って説明する。ステップS1205からステップS1211までのループは、テーブルの階層を上へさかのぼるループとなる。図13(b)の例でいうと、階層1015から階層1011までさかのぼるループである。このループの中にあるステップS1206からステップS1209までのループは、当該階層に関する近傍エンティティを巡回するループとなる。ステップS1207で、当該階層に関する近傍エンティティがヌルかどうか1つずつチェックされる。そして、もしヌルでない近傍エンティティが存在したらステップS1208で有効近傍エンティティリストへ格納される。
当該階層に関する近傍エンティティが全てチェックされるとステップS1206からステップS1209までのループを抜けてステップS1210へ処理が移る。ステップS1210では有効近傍エンティティリストが空かどうかチェックする。もし空だった場合、ステップS1211へ進んだ結果、もし上の階層に上れるならステップS1205へ戻る。もし空でない場合は、ループを抜けて処理がステップS1212へ進む。なお、初期テーブルでヌルでないエンティティが1つでもあるなら、一番上の階層に関する近傍エンティティの中にヌルでないノードが少なくとも1つはあることになる。
ステップS1212では有効近傍エンティティリストからコピーする1個のエンティティを選び、ステップS1213において、先のステップで選ばれたエンティティ情報をコピーリストへ格納する。なお、ステップS1212でのエンティティ選び方は、基本的にランダムに選択することが可能であるが、エンティティ選び方として、何らかの評価関数を用いて選んでも構わない。
そして、ステップS1214のループを抜けた後、最後にステップS1215でコピーリストに格納されているエンティティ情報を初期テーブルの当該エンティティへコピーする。なぜこのような回りくどい方法を取るかというと、ステップS1213で初期テーブルへ直接コピーしていくとステップS1207におけるチェックが初期テーブルとは異なった情報を元にすることになるからである。なおステップS1215でコピーリストからコピーされるエンティティ情報は、実体であるメモリ情報でも良いし、また、ポインタでも良い。ポインタでも良い理由は、コピーされるエンティティ情報は必ず初期テーブルに存在する情報だからである。
以上説明してきたように、初期テーブルから有効近傍エンティティの情報をコピーすることによって、全てのエンティティが学習パターンの情報で満たされることになる。このことによりヌルエンティティに落ち、認識結果がないという状況がなくなり、より高性能なテーブルが作成できる。
(第7の実施形態)
これまで説明してきた実施形態を実現する装置の概略構成を図15(a)、(b)を用いて説明する。図15(a)に判別器の作成装置(判別器作成装置)の構成例を示し、図15(b)に認識装置の構成例を示す。
図15(a)に示すクエリー列作成部1501はクエリー列1502を作成する。クエリー列読み込み部1503は、クエリー列作成部1501で作成されたクエリー列1502を読み込む。クエリー列読み込み部1503により読み込まれたクエリー列1502は、更に、読み込み部1503からツリー作成部1505またはテーブル作成部1509に読み込まれる。ツリー作成部1505は、学習パターン1504を読み込まれたクエリー列1502に従って分割することによってツリー1506を作成する。次に、ツリー変更部1507は、ツリー作成部1505により作成されたツリー1506を元に、ツリー1506の一部、または全部をテーブル1508とする。テーブル作成部1509は学習パターン1504を読み込んだクエリー列1502に従って分割することによって初期テーブル1510を作成する。次に、テーブル変更部1511は、テーブル作成部1509により作成された初期テーブル1510をテーブル1508に変換する。
フローチャートと対応を取ると、クエリー列作成部1501が図1(a)のS101の処理に対応し、クエリー列読み込み部1503が図1(b)のS106の処理に対応する。また、ツリー作成部1505は図1のS103からS113の処理に対応する。また、ツリー変更部1507は図6(a)のS602からS611の処理に対応する。また、テーブル作成部1509は図12のS1202の処理に対応し、テーブル変更部1511は図12のS1203からS1215の処理に対応する。
図15(b)に示す認識装置は、ツリー探索部1513およびテーブル探索部1514を中心に構成される。ツリー探索部1513およびテーブル探索部1514は、予め作成されているクエリー列1502を、クエリー列読み込み部1503を介して読み込む。そして、ツリー探索部1513およびテーブル探索部1514は、その読み込まれたクエリー列1502に基づき、クラスが未知のパターン1512を認識し、認識結果1515を導く。この時、ツリー探索部1513は図15(a)の判別器の作成装置で作成されたツリー1506を用いる。また、テーブル探索部1514は図15(a)の判別器の作成装置で作成されたテーブル1508を用いる。フローチャートと対応を取ると、ツリー探索部1513は図3(b)のS305からS309の処理に対応する。また、テーブル探索部1514は図7(a)のS702からS703に対応する。
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
1501:クエリー列作成部、1502:クエリー列、1503:クエリー列読み込み部、1504:学習パターン、1505:ツリー作成部

Claims (6)

  1. 複数のクエリー列に従って学習パターンを分割することによってテーブルを生成する第1のテーブル生成手段と、
    前記第1のテーブル生成手段によって生成されたテーブルを用いて分割された学習パターン集合を複数のクエリー列に従って更に分割することによってテーブルを生成する第2のテーブル生成手段と、
    前記第1のテーブル生成手段で生成されたテーブルと前記第2のテーブル生成手段で生成されたテーブルとを組み合わせることでパターンを判別する判別器を作成する判別器作成手段と、
    を備えることを特徴とする情報処理装置。
  2. 前記複数のクエリー列を作成する作成手段を更に備え、
    前記作成手段は、前記第1のテーブル生成手段で生成されたテーブルの段数と同数のクエリー列を作成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記第2のテーブル生成手段は、同じ情報を有する末端のノードを複数保持することによりテーブルを生成することを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記同じ情報を有する末端のノードはヌルノードであることを特徴とする請求項3に記載の情報処理装置。
  5. 情報処理装置で実行される情報処理方法であって、
    前記情報処理装置の第1のテーブル生成手段が、複数のクエリー列に従って学習パターンを分割することによってテーブルを生成する第1のテーブル生成工程と、
    前記情報処理装置の第2のテーブル生成手段が、前記第1のテーブル生成工程で生成されたテーブルを用いて分割された学習パターンの集合を複数のクエリー列に従って更に分割することによってテーブルを生成する第2のテーブル生成工程と、
    前記情報処理装置の判別器作成手段が、前記第1のテーブル生成工程で生成されたテーブルと前記第2のテーブル生成工程で生成されたテーブルとを組み合わせることでパターンを判別する判別器を作成する判別器作成工程と、
    を有することを特徴とする情報処理方法。
  6. コンピュータを、請求項1乃至のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
JP2015169721A 2010-08-18 2015-08-28 情報処理装置、情報処理方法およびプログラム Active JP6106231B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015169721A JP6106231B2 (ja) 2010-08-18 2015-08-28 情報処理装置、情報処理方法およびプログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010183383 2010-08-18
JP2010183383 2010-08-18
JP2015169721A JP6106231B2 (ja) 2010-08-18 2015-08-28 情報処理装置、情報処理方法およびプログラム

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011177253A Division JP5801646B2 (ja) 2010-08-18 2011-08-12 情報処理装置、情報処理方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2015212990A JP2015212990A (ja) 2015-11-26
JP6106231B2 true JP6106231B2 (ja) 2017-03-29

Family

ID=45594901

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2011177253A Active JP5801646B2 (ja) 2010-08-18 2011-08-12 情報処理装置、情報処理方法、およびプログラム
JP2015169721A Active JP6106231B2 (ja) 2010-08-18 2015-08-28 情報処理装置、情報処理方法およびプログラム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2011177253A Active JP5801646B2 (ja) 2010-08-18 2011-08-12 情報処理装置、情報処理方法、およびプログラム

Country Status (2)

Country Link
US (1) US8768944B2 (ja)
JP (2) JP5801646B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5538967B2 (ja) 2009-06-18 2014-07-02 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP5806606B2 (ja) 2011-12-01 2015-11-10 キヤノン株式会社 情報処理装置、情報処理方法
JP6032930B2 (ja) * 2012-04-19 2016-11-30 キヤノン株式会社 情報処理装置、情報処理方法
JP6053341B2 (ja) * 2012-06-13 2016-12-27 キヤノン株式会社 情報処理装置、その処理方法及びプログラム
GB2516493A (en) * 2013-07-25 2015-01-28 Ibm Parallel tree based prediction
US10169392B2 (en) 2017-03-08 2019-01-01 International Business Machines Corporation Persistent data structures on a dispersed storage network memory
JP7149692B2 (ja) 2017-08-09 2022-10-07 キヤノン株式会社 画像処理装置、画像処理方法
US11281995B2 (en) 2018-05-21 2022-03-22 International Business Machines Corporation Finding optimal surface for hierarchical classification task on an ontology
US11676043B2 (en) 2019-03-04 2023-06-13 International Business Machines Corporation Optimizing hierarchical classification with adaptive node collapses
CN116910320B (zh) * 2023-09-12 2023-12-08 北京云枢创新软件技术有限公司 层次结构树节点的筛选方法、电子设备和介质

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3466689B2 (ja) 1994-01-26 2003-11-17 キヤノン株式会社 手書き文字認識方法及びその装置
JP3453422B2 (ja) 1994-02-10 2003-10-06 キヤノン株式会社 文字パターンのユーザ辞書への登録方法及び該ユーザ辞書を有する文字認識装置
JPH07282028A (ja) * 1994-02-15 1995-10-27 Matsushita Electric Ind Co Ltd 学習認識装置
JP3416268B2 (ja) 1994-06-30 2003-06-16 キヤノン株式会社 画像認識装置及びその方法
JP3630734B2 (ja) 1994-10-28 2005-03-23 キヤノン株式会社 情報処理方法
JPH08249422A (ja) 1995-03-08 1996-09-27 Canon Inc 文字処理装置及び方法
JP3792755B2 (ja) 1995-08-29 2006-07-05 キヤノン株式会社 文字認識方法及び装置
JP3437347B2 (ja) 1995-09-08 2003-08-18 キヤノン株式会社 文字認識装置及びその方法及びコンピュータ
JP3761937B2 (ja) 1995-09-18 2006-03-29 キヤノン株式会社 パターン認識方法及び装置及びコンピュータ制御装置
JP3535624B2 (ja) 1995-09-21 2004-06-07 キヤノン株式会社 検索装置及び方法
JPH0991380A (ja) 1995-09-21 1997-04-04 Canon Inc 情報処理装置及び方法及び記憶媒体
JP3744997B2 (ja) 1996-01-12 2006-02-15 キヤノン株式会社 文字認識装置及びその方法
US5982933A (en) 1996-01-12 1999-11-09 Canon Kabushiki Kaisha Information processing method, information processing apparatus, and storage medium
JPH09282415A (ja) * 1996-04-12 1997-10-31 Canon Inc 情報処理方法
US5930392A (en) 1996-07-12 1999-07-27 Lucent Technologies Inc. Classification technique using random decision forests
US6055539A (en) * 1997-06-27 2000-04-25 International Business Machines Corporation Method to reduce I/O for hierarchical data partitioning methods
JP2000089956A (ja) * 1998-09-09 2000-03-31 Nippon Telegr & Teleph Corp <Ntt> 決定木生成方法および装置と決定木生成プログラムを記録した記録媒体
JP4846924B2 (ja) 2001-05-31 2011-12-28 キヤノン株式会社 パターン認識装置
US7398201B2 (en) * 2001-08-14 2008-07-08 Evri Inc. Method and system for enhanced data searching
US20030233244A1 (en) * 2002-06-13 2003-12-18 International Business Machines Corporation System and method for network tracking of passenger travel progress
WO2004055735A1 (ja) 2002-12-16 2004-07-01 Canon Kabushiki Kaisha パターン識別方法、その装置及びそのプログラム
EP2955662B1 (en) 2003-07-18 2018-04-04 Canon Kabushiki Kaisha Image processing device, imaging device, image processing method
WO2005059811A1 (en) 2003-12-16 2005-06-30 Canon Kabushiki Kaisha Pattern identification method, apparatus, and program
JP2005339186A (ja) 2004-05-27 2005-12-08 Nippon Telegr & Teleph Corp <Ntt> パターン認識学習装置と識別装置、パターン認識学習処理方法と識別処理方法及びパターン認識プログラム並びにそのプログラムを記録した記録媒体
JP4217664B2 (ja) 2004-06-28 2009-02-04 キヤノン株式会社 画像処理方法、画像処理装置
US20070053563A1 (en) * 2005-03-09 2007-03-08 Zhuowen Tu Probabilistic boosting tree framework for learning discriminative models
JP5008269B2 (ja) 2005-04-08 2012-08-22 キヤノン株式会社 情報処理装置、情報処理方法
JP5270863B2 (ja) * 2007-06-12 2013-08-21 キヤノン株式会社 データ管理装置及び方法
JP2009086749A (ja) 2007-09-27 2009-04-23 Canon Inc パターン識別手法、識別用パラメータ学習方法、及び装置
JP4895988B2 (ja) * 2007-12-13 2012-03-14 ヤフー株式会社 文書分類装置の余分構造減退方法
JP4948379B2 (ja) 2007-12-18 2012-06-06 キヤノン株式会社 パターン識別器生成方法、情報処理装置、プログラム及び記憶媒体
US8190604B2 (en) * 2008-04-03 2012-05-29 Microsoft Corporation User intention modeling for interactive image retrieval
US8331655B2 (en) 2008-06-30 2012-12-11 Canon Kabushiki Kaisha Learning apparatus for pattern detector, learning method and computer-readable storage medium
JP5254893B2 (ja) 2009-06-26 2013-08-07 キヤノン株式会社 画像変換方法及び装置並びにパターン識別方法及び装置
JP5409237B2 (ja) 2009-09-28 2014-02-05 キヤノン株式会社 パターン検出装置、その処理方法及びプログラム
JP5336995B2 (ja) 2009-10-19 2013-11-06 キヤノン株式会社 特徴点位置決め装置、画像認識装置、その処理方法及びプログラム
JP5588165B2 (ja) 2009-12-24 2014-09-10 キヤノン株式会社 画像処理装置、画像処理方法およびプログラム
JP5554984B2 (ja) 2009-12-24 2014-07-23 キヤノン株式会社 パターン認識方法およびパターン認識装置

Also Published As

Publication number Publication date
US20120047182A1 (en) 2012-02-23
JP2015212990A (ja) 2015-11-26
JP2012064204A (ja) 2012-03-29
US8768944B2 (en) 2014-07-01
JP5801646B2 (ja) 2015-10-28

Similar Documents

Publication Publication Date Title
JP6106231B2 (ja) 情報処理装置、情報処理方法およびプログラム
US6868420B2 (en) Method for traversing quadtrees, octrees, and N-dimensional bi-trees
JP6041923B2 (ja) 情報処理方法及び情報処理装置
US8363049B2 (en) 3D image processing method and apparatus for enabling efficient retrieval of neighboring point
Brockenauer et al. Drawing clusters and hierarchies
TW201403542A (zh) 圖形處理單元中3d加速結構之完全並列原地建構
US20200074289A1 (en) Pooling processing method and system applied to convolutional neural network
KR20190079354A (ko) 분할 공간 기반의 공간 데이터 객체 질의처리장치 및 방법, 이를 기록한 기록매체
US20170262411A1 (en) Calculator and matrix factorization method
van de Ruit et al. An efficient dual-hierarchy t-sne minimization
Hoseini Monjezi et al. An inexact multiple proximal bundle algorithm for nonsmooth nonconvex multiobjective optimization problems
JP2012043437A (ja) 画像処理方法及び画像処理装置
Recaido et al. Interpretable Machine Learning for Self-Service High-Risk Decision-Making
Bachmaier et al. Drawing recurrent hierarchies
Bramer Clustering
CN113204607B (zh) 一种平衡面积、拓扑和形状特征的矢量多边形栅格化方法
CN107077481A (zh) 信息处理装置、信息处理方法和计算机可读存储介质
Zhang et al. Parallel selectivity estimation for optimizing multidimensional spatial join processing on gpus
JP3615439B2 (ja) 類似特徴量の検索方法,その検索装置およびその検索プログラム記録媒体
KR102173204B1 (ko) 빅데이터 시각화 기반의 특허 분석 시스템 및 그 방법
Freitas et al. On the visualization of trade-offs and reducibility in many-objective optimization
JP6032930B2 (ja) 情報処理装置、情報処理方法
He Algorithms for Graph Drawing Problems
WO2005093666A1 (en) Method for processing computer aided polygon model
KR20230099120A (ko) 동적 후보 공간을 이용한 연속적 부분 그래프 매칭 방법 및 장치

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150928

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170120

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: 20170203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170303

R151 Written notification of patent or utility model registration

Ref document number: 6106231

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151