説明

画像認識方法及び画像認識装置

【課題】 画像の認識を高速かつ高精度に行う。
【解決手段】 画像認識装置に、予め登録される登録画像103毎にその画像に含まれる部分画像サイズ102の登録部分画像集合105を抽出する登録部分画像集合抽出部104と、入力された新規画像106からその画像に含まれる所定のサイズの新規部分画像集合108を抽出する新規部分画像集合抽出部107と、抽出された登録部分画像集合105を分割することによって作成されるルールに基づいて新規部分画像の属性を判定する部分画像属性判定部109と、新規部分画像集合108の各要素である新規部分画像を入力とした時の部分画像属性判定部109の判定結果110を集計して、新規画像の最終的な認識結果112を導き出す部分画像判定結果集計部111とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は対象物の撮像画像を用いて対象物の名称、種類、存在位置、姿勢等の情報を推定する画像認識方法に関するものである。ここでいう対象物とは任意の物体を表し、例えば、人、動物、自動車、カメラ、プリンタ、半導体基板など何でもよい。
【背景技術】
【0002】
従来、予め学習しておいた対象物体の画像と新たに撮影した対象物体を含む画像をパターンマッチングすることによって対象物体の種類と存在領域を推定する方法があった(例えば、特許文献1参照)。特許文献1においては、予め学習、登録しておく対象物体の画像から固有値と固有ベクトルを計算する。そして、新たに撮影した画像から切り出した画像をその固有ベクトルへ射影することで、より少ない数のモデルで対象物体の認識ができるようになる工夫がなされている。また、予め学習、登録しておく対象物体の画像を分割して得られる部分学習画像を用いることによって、より認識率を高める工夫が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−32766号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に開示された方法に代表される画像のパターンマッチング方法では認識に膨大な時間を要するという問題があった。特に判別するべきクラスの数が膨大になると認識時間が爆発するという問題があった。例えば、対象物体の種類が1,000種類(例えば1,000人の顔を登録)あり、それぞれの対象物体に対して色々な角度から撮影した学習画像が1つの物体につき100枚(横顔なども含む)あったとする。すると、全部で100,000個の学習パターンが存在することになる。これでは、1つの登録画像と新規撮影画像の画像照合がたとえ10nsで行えたとしても、最終的な認識結果を得るために1秒かかってしまう。
【0005】
なお、ここで言う登録画像は例えば対象物体を囲む外接矩形の内部を想定し、新規撮影画像は登録画像を含む大きなサイズの画像を想定している。よって、1つの登録画像と新規撮影画像の画像照合は単純な1対1の画像パターンマッチングではなく、新規撮影画像の中のどの部分に対象物体が存在するかという位置特定のタスクも含む。具体的には、例えば新規撮影画像をスライディングウィンドウで切り出しそれぞれの切り出し画像と登録画像をマッチングすることによって、画像照合を実現する。よって、登録画像と新規撮影画像のピクセル数にもよるが、上記の10nsという画像照合時間は現状のコンピュータ処理速度からいうと非常に高速で処理した場合といえる。
【0006】
さらに従来技術で問題だったことは、特許文献1で開示された部分学習画像を用いる画像マッチング方法ではこの認識時間が爆発するという問題がより顕著に現れてくるということである。例えば1つの学習画像を互いに重なり合う100(=10×10)の部分画像に分割したとすると、マッチングするべき登録画像が100倍になることになるので、計算時間も単純に100倍となる。先の例だと100秒もの時間が必要になってくる。
【0007】
また、特許文献1で開示された固有ベクトルを用いて次元を削減する方法を用いたとしても、距離計算の計算時間は短縮できるが、次元を削減するためのベクトル計算を省略することはできないので、結局トータルの画像認識の高速化は実現できない。そして登録画像の種類と同じ回数の画像照合が必要になるという本質的な課題は全く解決されていない。
【課題を解決するための手段】
【0008】
そこで、本発明によれば、画像認識方法に、予め登録される登録画像毎にその画像に含まれる所定のサイズの登録部分画像の集合を抽出する第1の抽出ステップと、入力された新規画像からその画像に含まれる所定のサイズの新規部分画像の集合を抽出する第2の抽出ステップと、前記第1の抽出ステップで抽出された登録部分画像の集合を分割することによって作成されるルールに基づいて新規部分画像の属性を判定する判定ステップと、前記新規部分画像の集合の各要素である新規部分画像を入力とした時の前記判定ステップの判定結果を集計して、前記新規画像の最終的な認識結果を導き出す集計ステップとを備える。
【0009】
また、本発明の他の態様によれば、画像認識方法に、入力画像から部分画像を抽出する抽出ステップと、前記部分画像が予め学習されたどのカテゴリのどの部分画像かを判別する判別ステップと、前記判別ステップの判別結果に基づいて投票を行う投票ステップと、前記抽出ステップから前記投票ステップまでを繰り返し得られた投票結果を集計する集計ステップと、前記集計ステップの集計結果に基づいて前記入力画像中に存在する物体の位置とカテゴリとを識別する識別ステップとを備える。
【発明の効果】
【0010】
本発明によれば、高速、高精度に対象物の名称、種類、存在位置、姿勢等の情報を推定することが出来るようになるという効果がある。特に、照合するべき登録画像が増加した場合でも認識速度がその数に比例して落ちないという効果がある。より限定したケースとして、属性判定方法に分類木を採用した場合は、登録画像の種類の数の対数に比例した認識時間しか必要としないという効果がある。また、画像認識に好適な部分画像のサイズを決定することによって、より高い認識率を実現できるという効果もある。
【図面の簡単な説明】
【0011】
【図1】実施形態の画像認識装置の処理構成を表す図である。
【図2】実施形態の画像認識方法の処理手順を示すフローチャートである。
【図3】情報処理装置のハードウェア構成の一例を示す図である。
【図4】部分画像属性判定ステップを説明する図である。
【図5】登録部分画像群を説明する図である。
【図6】学習ステップを模式的に表した図である。
【図7】学習ステップの具体的な処理を説明する図である。
【図8】部分画像集合を分割する方法を説明する図である。
【図9】実施形態2の部分画像結果集計ステップを説明する図である。
【図10】実施形態3を説明する図である。
【図11】実施形態3を説明するフローチャートである。
【図12】実施形態4の部分画像サイズ決定ステップを説明するフローチャートである。
【図13】実施形態4の部分画像サイズ決定ステップでのサイズ評価方法を説明する図である。
【図14】実施形態5の部分画像サイズ決定ステップでのサイズ評価方法を説明する図である。
【図15】実施形態5の部分画像サイズ決定ステップの動作の仕方を模式的に表した図である。
【図16】実施形態6の処理手順を表わすフローチャートである。
【図17】実施形態6の分類木による認識処理手順を表わすフローチャートである。
【図18】実施形態6の投票方法を説明する図である。
【図19】実施形態6の投票の際の重み分布を説明する図である。
【発明を実施するための形態】
【0012】
以下、添付図面を参照しながら本発明の実施形態を説明する。
【0013】
<実施形態1>
図1は、実施形態による画像認識方法の基本的な処理構成を説明する図である。図2は、実施形態による画像認識方法の処理手順を示すフローチャートである。
【0014】
まず、部分画像サイズ決定部101で、切り出す部分画像のサイズ102を事前に決定する。この部分画像サイズ決定部101の処理内容の詳細は実施形態4で説明する。ここでは、適切な部分画像サイズ102が部分画像サイズ決定部101によって事前に決定されるものとする。
【0015】
ここで、認識時に比較対象となる画像を登録する場合、第1の抽出手段である登録部分画像集合抽出部104により、部分画像サイズ102に基づいて、登録画像103から登録部分画像集合105が取り出される。取り出された登録部分画像集合105が登録画像毎にM枚、登録画像の数がN枚だとすれば、登録部分画像集合105は全部でN×M枚となる。更に、辞書作成部113により、登録部分画像集合105から認識用の辞書114を作成する。ただし、認識用の辞書114を作成する処理は必須ではなく、登録部分画像集合105をそのまま利用して認識するようにしてもよい。
【0016】
一方、新規画像を認識する場合、第2の抽出手段である新規部分画像集合抽出部107により、新規画像106から部分画像サイズ102の新規部分画像集合108が抽出される。そして、部分画像属性判定部109で、先に抽出された登録部分画像集合105もしくはそれから作成された辞書114を元に新規部分画像集合108を構成する各新規部分画像の属性が判定される。
【0017】
最後に、新規部分画像集合108の各要素である新規部分画像の判定結果110を部分画像判定結果集計部111で集計し、最終的な認識結果112が得られる。なお、実施形態1においては、部分画像判定結果110は属性の判定結果だけであるが、実施形態2では、部分画像判定結果110にその部分画像の画像内の位置を表わす位置情報115が含まれる。詳しくは実施形態2の説明で述べる。
【0018】
部分画像集合抽出部107で抽出される新規部分画像集合108を構成する部分画像がK枚だとする。この時、もしも部分画像属性判定部109で、特許文献1に代表されるような、いわゆるテンプレートマッチングと呼ばれる処理を採用すると、全部でN×M×K回の照合処理をする必要がある。この時、部分画像属性判定部109では登録部分画像集合105が用いられる。
【0019】
これに対して、本実施形態に示す方法では、いわゆる機械学習を取り入れることでこの処理回数をK回に削減できる。この時、部分画像属性判定部109では辞書114が用いられる。
【0020】
なお、一般には上記説明した定数Mと定数Kの関係はM≠Kである。しかし、登録画像のサイズと新規画像のサイズが同じ場合、例えばそれぞれの画像に含まれる全部分画像を用いるとM=Kの関係が成り立つ。登録画像のサイズと新規画像のサイズが異なる場合は実施形態3で詳しく説明する。
【0021】
部分画像判定結果集計部111をより具体的に説明する。部分画像属性判定109における“属性”とは、一般には(p1,p2,・・・,pN)というN次元の確率ベクトルを意味する。ここにPiとは新規部分画像がi番目の登録画像に含まれる確率である。新規部分画像集合108がK枚から構成されている場合、このN次元確率ベクトルがK個存在することとなる。最終的な認識結果112は、これらK個の確率ベクトルを単純に相加平均、または、対数を取った後の相加平均(K個の確率を掛け合わせる相乗平均に対応する)などの処理をして得られる平均確率の中で、最大確率を示す登録画像のインデックスとなる。
【0022】
図2において、(a)が学習時のフローチャートで、(b)が判定時のフローチャートとなる。
【0023】
学習時は、登録画像それぞれについてステップS101〜S105のループが実行され、各登録画像において、部分画像のそれぞれについてステップS102〜S104のループが実行され、登録部分画像集合105が作成される。ステップS101〜S105の登録画像のループはN回実行され、ステップS102〜S104の部分画像のループはM回実行され、ステップS103の部分画像抽出は合計でN×M回実行される。
【0024】
本実施形態の画像認識方法では、望ましくは、ステップS106で、登録部分画像集合105から辞書114を作成する。但し、本実施形態は、このいわゆる機械学習の枠組みを用いる方法に限ったものではなく、登録部分画像集合105をそのまま用いて画像マッチングを行っても良い。
【0025】
図2の(b)が判定時のフローチャートで、まず、新規画像からそれに含まれる部分画像を抽出しながら部分画像の属性を判定するループ(S106〜S109)が実行される。このループはK回実行される。ステップS107で抽出される部分画像は108の新規部分画像集合108を構成する1枚の新規画像中の部分画像である。
【0026】
ステップS109では、登録部分画像集合105または辞書114を用いて新規部分画像から部分画像判定結果110を導く。
【0027】
ステップS110において、部分画像判定結果110を集計して最終的な認識結果112が導かれる。
【0028】
図3は、本実施形態を含む全ての実施形態に係わる画像認識方法が実行される情報処理装置の構成を示すブロック図である。
【0029】
画像認識方法は、外部記憶装置201、中央処理装置(CPU)202、メモリ203、入出力装置204を備えた装置に実装される。外部記憶装置201は、本実施形態の処理を実現するプログラムや、カメラで撮影した登録画像、登録画像を用いて作成された辞書114等を保持する。また、本実施形態によって導かれた対象物体の認識結果を保持する機能を持つ。CPU202は、画像認識方法のプログラムを実行したり、装置各部の制御を行ったりする。メモリ203は、CPU202が使用するプログラム、及びサブルーチンやデータを一時的に記憶する。入出力装置204は、カメラからの画像を取り込んだり、ユーザーとのインタラクションを行ったり、画像認識結果を他の情報処理装置へ出力したりする。入力装置としてはカメラが一般的であるが、スキャナーなどの装置も利用できる。また、本実施形態の画像認識方法を実現するプログラム実行のトリガーを、この入出力装置を介してユーザーが出す場合もある。また、ユーザーが結果を見たり、プログラムのパラメータ制御をこの入出力装置を介して行うこともある。また、出力先としてはロボットを制御する装置のような場合も有り得る。
【0030】
図4を用いて、部分画像属性判定部109の処理を詳しく述べる。本実施形態の画像認識方法では、いわゆる機械学習の手法を想定している。この場合、部分画像属性判定部109の処理は、学習フェーズと認識フェーズの2つのフェーズに分れる。
【0031】
まず、学習フェーズでは、学習部302において、登録部分画像集合301から判別器303が作成される。判別器303では、ニューラルネット、サポートベクターマシン等の機械学習で一般的に用いられるアルゴリズムを用いることができる。より好ましくは、図6以降で述べる分類木の集合を用いた方法を採用することができる。
【0032】
判別器303は、部分画像の属性をルールに従って判別するものであり、その実態は、採用したアルゴリズムの学習後の内部パラメータである。具体的には、ニューラルネットであれば全てのコネクションの重みの集合となり、サポートベクターマシンであれば全てのサポートベクトルの集合となる。分類木の場合は、木構造の各インターナルノードでの判定パラメータ集合と各ターミナルノードにおけるクラス存在確率の集合が内部パラメータとなる。ここで、インターナルノードとは、子ノードがあるノードで、ターミナルノードとは子ノードがない末端のノードのことを意味する。
【0033】
認識フェーズでは、属性判定部305において、新規画像から抽出された新規部分画像を判別器303を用いて判定し、属性判定結果306を得る。なお、新規部分画像304は、図1の新規部分画像集合108を構成する各要素に対応し、属性判定結果306は図1の部分画像判定結果110に対応する。
【0034】
図3の属性判定部305では、属性判定という表現を用いたが、機械学習の分野では通常は認識と呼ぶ。というのも、属性判定部305では新規部分画像と登録部分画像を1枚1枚照合するわけではなく、学習した全ての登録部分画像群の情報が格納されている判別器303に基づいて新規部分画像がどの登録部分画像とどれだけ似ているかを導くからである。
【0035】
本実施形態においては、新規部分画像304が複数あり、部分画像判定結果306も複数ある。それを図1の部分画像判定結果集計部111において集計することによって、最終的な認識結果112が求まる。属性判定部305に敢えて認識という表現を用いなかったのは、この最終的な認識結果を得るのではないことを強調したかったためである。
【0036】
従来のパターンマッチングの方法であれば、この属性判定部305において、登録部分画像集合105と新規部分画像集合108の全ての組み合わせ毎の処理が必要となる。これに対して、本実施形態では、基本的に新規部分画像集合108の要素の数しか処理の回数は必要ない。
【0037】
次に、図5を用いて登録部分画像集合105の説明をする。1枚の登録画像(学習画像)からM枚の部分画像が抽出される。これを部分画像集合と呼ぶ。この部分画像集合を構成する部分画像同士は重なりがなくても良いが、重なりがあるように網羅的に元の学習画像から抽出されることが望ましい。
【0038】
例えば学習画像のサイズが100×100ピクセルで、部分画像のサイズが50×50ピクセルだったとする。ピクセルとピクセルの中間の位置(いわゆるサブピクセル)を考慮に入れないとすると、1枚の学習画像から抽出される全部分画像は2601(=51×51)枚となる。なお、重なりのない部分画像を抽出したとすると全部で2×2=4枚の部分画像が得られる。
【0039】
部分画像集合は2601枚ある全部分画像に含まれる、出来るだけ多く(例えば半分以上)の部分画像からなることが望ましい。最終的な学習(登録)部分画像群としては、同じクラス(=登録画像のインデックスと同義)にタグ付けされた登録部分画像がそれぞれM枚ずつ、全部でM×N枚の学習部分画像が得られる。
【0040】
次に、学習アルゴリズムの説明をする。図6は学習部302の処理を模式的に表した図である。また、同じ図を使って属性判定部305の処理も説明する。
【0041】
本実施形態の学習では、分類木と呼ばれる木構造の判別器がL個作られる。Lは1でもよいが、10〜30の数が望ましい。分類木はインターナルノードとターミナルノードから構成されている。インターナルノードでは、どの子ノードへ行くべきかという判定式、判定のルールもしくは判定ルーチンが存在する。ターミナルノードでは、認識対象のクラスの存在確率が保持されている。
【0042】
学習フェーズでは、図5に示した学習部分画像群を用いて2分木を作成していく。全部でL個分類木が存在するので、この分類木作成はL回行われる。分類木作成の際、各分類木のインターナルノードでは、ランダムに2つのピクセルを選び、そのピクセルの輝度比較をすることにより、学習部分画像群に含まれる部分画像の集合を2つに分けていく。この処理の詳細な説明は図7を用いて後で述べる。
【0043】
なお、本実施形態においてはランダムに2つのピクセルを選んだが、部分画像中の任意の矩形領域をランダムに2つ選んで、その矩形領域の平均輝度を比較することによって枝分れを行ってもよい。また、矩形ではなく予め用意した複数のマスクパターンを用いて部分画像中の任意の位置にある任意の種類のマスクパターンをランダムに2つ選んで、その領域の平均輝度を比較することによって枝分かれを行っても良い。
【0044】
新規部分画像をこの分類木の集合を使って処理する属性判定部305では、分類木をたどる処理をL回することになる。新規部分画像を参照しながら分類木を辿った結果、最終的にL回ターミナルノードに行き着く。登録画像がN枚あるとすると、一般的にはそれぞれのターミナルノードではN個の存在確率のベクトル(p1,p2,…,pN)が格納されているので、結局、L個の確率ベクトルが得られる。最終的にはこれらL個の確率ベクトルを単純に相加平均、または、対数を取った後の相加平均(L個の確率を掛け合わせる相乗平均に対応する)などの処理をして得られる平均確率が、本実施形態の属性判定部305の最終出力となる。なお、上記平均確率を先鋭化する方法として、一番確率の高い値以外の確率を0としてもよい。これはいわゆるL個の分類木の認識結果の投票で一番得点の高かったクラスを属性判定部305の結果とすることに相当する。
【0045】
次に、属性判定部305による計算時間のオーダーを解析してみる。上記の分類木の個数Lは定数なので、計算時間のオーダーには関係ない。計算時間は、分類木の深さに比例し、最大値としては登録する画像の数の対数に比例して増加する。つまり、本実施形態の画像認識方法の場合、どんなに遅くてもlog(登録部分画像の数)のオーダーの計算時間しか必要ないことになる。これに対して例えば特許文献1で開示されたような従来の画像照合方法では、登録部分画像の枚数のオーダーで計算時間が必要になってくる。
【0046】
図7を用いて学習部302の具体的な処理を説明する。
【0047】
分類木の作成はサブルーチン601のSplit_a_node(S)を再帰的にコールすることによって実現される。サブルーチンSplit_a_node(S)はサブルーチン602のPick_a_random_split(S)とサブルーチン603のStop_Split(S)をコールする。
【0048】
分類木のトップのノード(ルートノード)に存在する画像は登録部分画像全部であり、Split_a_node(S)を最初にコールする時のSは登録部分画像の全部となる(全体集合も部分集合の1種)。
【0049】
再帰的にサブルーチン601が呼び出されるということは、Split_a_node(S)の結果、登録部分画像の集合がS0とS1の2つの集合に分割され、Split_a_node(S0)とSplit_a_node(S1)が実行されることを意味する。
【0050】
サブルーチン601のSplit_a_nodeの中身は、まずStop_split(S)をコールし、返り値がTRUEの場合、そのノードをターミナルノードとして再帰呼び出しを終了する。ターミナルノードでは、これまで説明してきた通り、クラスの存在確率が格納される。このクラスの存在確率は、サブルーチンSplit_a_nodeの引数であるSから、Sの中の登録画像のクラスの個数を数えることにより求められる。例えば、Sの登録部分画像の集合の中に、ある登録画像の部分画像しか含まれなかったら、そのクラスの確率が1で、他のクラスの確率が0となる。
【0051】
次に、Stop_split(S)の返り値がFALSEの場合、Z回Pick_a_random_split(S)をコールする。(例えばZ=1000)そして、もしPick_a_random_split(S)の返り値となる分割がOKだったら、ループを終了してその分割を返す。OKかどうかの判定はSOとS1のどちらにも1個以上の登録部分画像が含まれる条件となる。(|S|は集合Sに含まれる要素の数を意味する)
Z回Pick_a_random_split(S)を試みてもOKな分割ができない場合は、そのノードをターミナルノードとして再帰処理を終了する。
【0052】
Pick_a_random_split(S)ルーチンは、図6で説明してきた通り、画像中の2つのピクセルをランダムに選び、それらの輝度比較をする。
【0053】
サブルーチン603のStop_Split(S)はターミナルノードの条件が満たされるかどうかを判定するルーチンである。entropy(S)とは登録部分画像の集合Sの情報論的エントロピーでクラスの存在確率を(p1,p2,・・・,pN)とすると 式 −Σ(pi*log(pi))で計算される。例えばSがある登録画像に含まれる部分画像しか含まないとするとエントロピーは0となる。
【0054】
このStop_Split(S)のthresholdの値を変更することで、どれだけノードがピュアになればターミナルノードにするかという基準を変えることができる。例えばthresholdを0とすると、ターミナルノードには必ずある登録画像の部分画像しか含まないようになる。
【0055】
なお、本実施形態において、関数Stop_Split(S)が常にTRUEを返すようにすることもできる。すると再帰的なノード作成(展開)は行われず、ルートノードとその子ノードしか存在しない構造が出来上がることになる。
【0056】
続いて、図8を用いて、サブルーチン601のSplit_a_node(S)の動きを説明する。
【0057】
登録部分画像の集合の要素が、例えば16個(登録部分画像の数が16枚)だったとする。するとルートノードには図8の左に書いた16枚の画像が存在することになる。
【0058】
ルートノードでランダムに2つのピクセルを選び、登録部分画像集合に含まれる全部分画像をそれらの輝度比較をすることで2つの集合に分割する。図8の例では、左の子ノードに10枚の部分画像が残り、右の子ノードに6枚の部分画像が残ったことになる。なお、グレーアウトした画像は残らなかった画像を意味する。
【0059】
次に、右の子ノードにおいて、サブルーチン603のStop_Split(S)の返り値がFALSEだった場合は、さらにその下の子ノードを展開する。その時は、また別の2つのピクセルをランダムに選び、それらの輝度比較をすることによって、集合を分割していく。
【0060】
図8に示した例では、左の子ノード、右の子ノードとも3つの要素が残ったことになる。
【0061】
<実施形態2>
図9を用いて実施形態2を説明する。
【0062】
実施形態1においては、ある登録画像に含まれる部分画像を全て同じクラスとして扱ってきた。実施形態2においては、これを全て異なるクラスとして扱う。
【0063】
なお、“クラス”とは、機械学習で判別するべき対象の種類のことで、通常、画像認識の場合は登録画像の種類となる。上で述べた「ある登録画像に含まれる部分画像を全て同じクラスとして扱う」ということは、ある登録画像に含まれる色々な部分画像群を、“見え”が異なるが同じ種類の画像群として扱うことを意味する。これに対して、「ある登録画像に含まれる部分画像を全て異なるクラスとして扱う」ということは、違う位置から取り出した部分画像は同じ登録画像由来であっても異なる種類のものだとして扱うことを意味する。具体的には、部分画像に位置情報を持たせることによって、部分画像1つ1つを区別する。
【0064】
N枚の登録画像があり、1枚の登録画像につきM枚の部分画像があるとすると、実施形態1では登録部分画像が全部でM×N枚、クラスの数はNであった。実施形態2では、これが登録部分画像が全部でM×N枚、クラスの数のM×Nとなる。
【0065】
図9を用いて、位置情報の具体的な例とその使い方を述べる。
【0066】
図9では登録画像が登録画像Aと登録画像Bの2枚、1つの登録画像につき部分画像が重なりのない3×3=9枚あるとする。本実施形態では部分画像は好ましくは重なっているが、重ならなくても一般性を失わないので、簡単のために重ならない例を用いて以下、説明する。
【0067】
図9に描かれている点線の矢印は、図1の部分画像判定結果110、図3の属性判定結果306で、最もマッチした登録部分画像と入力部分画像との組み合わせを示す。新規部分画像は9枚、そのそれぞれに登録部分画像18(=9+9)枚とのマッチング結果がある。一般的には、部分画像属性判定の結果、新規部分画像9枚それぞれに(p1,p2,・・・,p18)の18次元のクラス存在確率が導かれることになるが、簡単のために図に示した最もマッチした部分画像の確率が1でその他が0として、説明する。なお、以下の議論は、確率ベクトル(p1,p2,・・・,p18)による重み付け平均を計算することによって、一般の場合に拡張できる。
【0068】
部分画像属性判定の結果、新規画像の部分画像9枚は、Aの部分画像6枚とBの部分画像3枚とマッチングしたことになる。正確にマッチした部分画像の枚数をスコアとすると、実施形態1の場合、Aの得点が6で、Bの得点が3となり、新規画像は登録画像Aと認識される。
【0069】
しかし、“正確にマッチした部分画像”という定義を位置情報も含めて考えると、Aの得点が1で、Bの得点が3となり、新規画像は登録画像Bと認識される。これが実施形態2の一番簡単な例となる。
【0070】
この場合、結果的に、新規画像の正しい認識結果がBだとすると、実施形態1の場合は間違いで、実施形態2の場合は正解となることになる。
【0071】
なお、より精密にスコアを計算したい場合、マッチした部分画像の位置と本来マッチすべき位置との距離Dの関数を用いてスコアを算出しても良い。例えばexp(−C*D)、exp(−C*D*D)、1/(1+C*D*D)(Cは任意の正定数、expとは指数関数)などの関数(評価式)を用いても良い。
【0072】
スコアにexp(−C*D)を用いた場合の計算式を以下に述べる。(簡単のために以下、Dは2次元上のユークリッド距離、C=1とする)
図9にあるように、新規部分画像と登録画像Aの部分画像は、新規部分画像9枚のうち、6枚の登録画像Aの部分画像とのマッチングがとれている。そして、それらの位置から2次元上の距離を計算すると、(左上A(0,1))、(右上A(0,0))、(左中A(0,1))、(左下A(2,2))、(中下A(2,2))、(右下A(0,2))がそれぞれ、
【0073】
【数1】

【0074】
となる(ここで、上記の説明で、左上などの表記は新規画像における部分画像の位置を意味しており、それに続くA(0,1)などの表記はそれに対応するマッチング結果を意味する。)。その結果、Aのトータルスコアは、
【0075】
【数2】

【0076】
となる。
【0077】
一方、新規部分画像と登録画像Bの部分画像は、新規部分画像9枚のうち、3枚の登録画像Bの部分画像とのマッチングがとれている。そして、それらの位置から2次元上の距離を計算すると、(中上B(1,0))、(中中B(1,1))、(右中B(2,1))がそれぞれ、
【0078】
【数3】

【0079】
となる。その結果、Bのトータルスコアは、
【0080】
【数4】

【0081】
となる。
【0082】
なお、この例ではそれぞれマッチングが取れた部分画像同士のスコアを加算してトータルスコアを導いたが、乗算することでトータルスコアを導いてもよい。
【0083】
<実施形態3>
図10、図11を用いて実施形態3を説明する。
【0084】
実施形態1、実施形態2においては、登録画像は矩形の形をしていた。つまり、矩形の内部を全て登録画像として扱っていた。しかし、一般には、登録画像の矩形の内部は対象物と背景に分離することができる。例えば、図10の(a)に示した対象物は登録画像中の楕円の形をしているとする。本実施形態では、図1の登録部分画像集合抽出部104において、登録画像中の全ての部分画像を抽出するのではなく、対象物が存在する楕円の内部の部分画像のみを抽出する。このことで、背景の画像を抽出せずに、対象物の内部の画像のみを抽出することができるようになる。
【0085】
また、登録する部分画像が対象物の内部に完全に含まれる、という条件よりもっと緩い条件を設定することもできる。例えば、部分画像中の対象物の占める面積が80%以上となる部分画像を抽出する、ということもできる。
【0086】
この動作をフローチャートにしたものが図11である。
【0087】
部分画像評価のループ1101において、その画像に含まれる部分画像全部がチェックされる。そして、上記の例のように例えば、部分画像中の対象物の占める面積が80%以上となる部分画像のみ採用部分画像集合1102に加えられる。
【0088】
一方、部分画像属性判定部109では、本実施形態でも実施形態1、実施形態2と同様に新規画像から抽出された任意の部分画像とのマッチングを行う。これは新規画像に含まれる対象物体が未知であるために、新規画像のどの位置を見るべきかは予め分かっていないからである。
【0089】
また、実施形態1、実施形態2においては、登録画像と新規画像のサイズは同一として本実施形態を説明してきた。しかし、一般には新規画像は登録画像より大きい。このことを説明したのが、図10の(b)である。
【0090】
例えば登録画像のサイズが100×100で、部分画像のサイズが20×20だとする。実施形態1と実施形態2では新規画像の大きさが登録画像と同じ100×100だったので、新規部分画像集合抽出部107で抽出される部分画像の数は6,561(=81×81)枚となる。
【0091】
これに対して本実施形態では、新規画像のサイズが200×200だとすると、新規部分画像集合抽出部107で抽出される部分画像の数は32,761(=181×181)枚となる。
【0092】
登録画像全体を新規画像から切り出してマッチングする場合(いわゆるスライディングウィンドウによる登録画像のマッチング)を考える。登録画像のサイズが100×100、新規画像のサイズが200×200だとすると、10,201(=101×101)回マッチングを行うこととなる。これに対し上記の部分画像を用いた場合でも、マッチング回数は3倍強ほどしか増えない。よって、部分画像属性判定部109の処理が高速であれば(より正確には登録画像の枚数に比例して速度が低下しなければ)、本実施形態の登録部分画像を非常に多く用いた画像認識方法は十分実用に耐えうることとなる。
【0093】
<実施形態4>
図12および図13を用いて実施形態4を説明する。実施形態4では、部分画像サイズ決定部101の具体的実装の例を示す。本実施形態では、いわゆるクロスバリデーションという手法を用いて部分画像のサイズを決定する。
【0094】
図1の登録画像103を以下に述べる方法でサンプル登録画像群1301とサンプル新規画像群1302とに分ける。通常はランダムに2分割するが、登録画像103がN枚あるとして、その中の1枚をサンプル新規画像(群)とし、それ以外の画像をサンプル登録画像群とすることもできる。(これをleave one out法と呼ぶ。この場合、認識率の評価はサンプル新規画像をN回巡回していった認識率の値の平均で行い、認識率評価のループ1303は、{N×(評価する部分画像のサイズの種類数)}回の実行となる。)
まず、部分画像のサイズをあるサイズに仮に決定しておいてサンプル登録画像群1301を登録画像103として学習する。学習は学習部302で行う。次に、サンプル新規画像群1302の1枚1枚を新規画像106とし、画像認識をする。そして、新規画像群、全部から得られた認識結果112を集計することによって、部分画像が所定のサイズであった場合の認識率が求まる。
【0095】
図13は、サイズをいろいろ変えたときの認識率の違いをプロットしたグラフである。横軸が部分画像サイズで、縦軸がそのサイズで評価した平均認識率である。
【0096】
この例でいうと、部分画像サイズが40のところにピークがあるので、最高認識率決定ステップ1304で40が選択され、最適部分画像サイズ1305が40となる。本実施形態で重要なことは、実施形態1〜実施形態3で述べた画像認識方法を用いて部分画像サイズを評価することである。
【0097】
<実施形態5>
図14および図15を用いて実施形態5を説明する。
【0098】
実施形態4で述べたクロスバリデーションの方法は、認識性能の高い部分画像サイズを決定できるというメリットがある反面、非常に多くのコンピュータコストを必要とするというデメリットも存在する。本実施形態では、より簡便な部分画像サイズ決定部101の処理の例を述べる。
【0099】
図14は、図1の登録画像103の中から2枚の異なるクラスに属する登録画像を適当に選び、それらの部分画像群間の構造を解析したグラフである。(以下、クラスとは登録画像の種類を意味し、例えばクラスAの画像がAさんの顔画像、クラスBの画像がBさんの顔画像というようになる。)
図14のグラフにおいて、横軸は部分画像のサイズで、縦軸は(クラス内平均距離/クラス間距離)である。クラス内平均距離とクラス間距離を図15を用いて説明する。
【0100】
図15では、あたかも特徴空間が3次元のような書き方をしているが、これは便宜的に書いたもので、実際は非常に高次元である。より具体的には、部分画像のピクセルサイズ数の次元となる。また、以下“距離”という言葉で説明しているものは、ユークリッド距離を意味する。なお、本実施形態はユークリッド距離に限定したものではなく、任意の距離尺度を利用できる。
【0101】
例えば、登録画像103のサイズが100×100であるとする。そして、クラスAとクラスBの2つの画像があるとする。部分画像のサイズをフルサイズである100×100とすると登録部分画像の個数はそれぞれのクラスで1つずつとなり、図15の右の空間配置となる。ここで空間の次元数は10,000(=100×100)である。なお、以下の説明で図15の○は1つの部分画像を意味する。クラスAとクラスBの配置は便宜上、左がAで右がBとして説明する。
【0102】
“クラス内平均距離”とは、クラスの平均部分画像とそれぞれの部分画像の距離の平均を意味し、この場合、部分画像が1つだけなので、クラスの平均部分画像は“登録画像そのもの”となり、クラス内平均距離は0となる。
【0103】
そして、“クラス間距離”とは、クラスの平均部分画像間(=2つの登録画像間)の距離を意味し、図15の右の場合、横向きの矢印の長さを指す。
【0104】
結局、図14の縦軸である(クラス内平均距離/クラス間距離)は分子が0となるので0となる。
【0105】
なお、“クラス内平均距離”と“クラス間距離”を数式を用いて説明すると以下の通りとなる。
【0106】
部分画像のベクトルを
【0107】
【数5】

【0108】
(iは部分画像のインデックス、x、yは座標で、Iはその座標のピクセル値(実数))とする。
【0109】
すると、平均部分画像(ベクトル)
【0110】
【数6】

【0111】

【0112】
【数7】

【0113】
で定義される。(なおNは部分画像の個数)
【0114】
そして、クラス内平均距離(スカラー)は
【0115】
【数8】

【0116】
(XとYはそれぞれ画像の横サイズと縦サイズ)となる。
【0117】
クラス間距離(スカラー)は
【0118】
【数9】

【0119】
(A、Bはクラス名)となる。
【0120】
次に図14のグラフの指数がピークとなる部分画像サイズ30の説明をする。部分画像のサイズが30×30となると、部分画像の個数はA、Bそれぞれ5,041(=71×71)個となり、次元数は900(=30×30)となる。
【0121】
図15の真ん中にある図がこの900次元の空間で、それぞれの部分画像がどのように分布するかを示した図となる。なお、正確に記述すると、クラスA、クラスB、それぞれに関して○の数が部分画像の数(=5,041)個あるはずであるが、書ききれないのでほとんどは省略してある。
【0122】
太い2本の矢印1601と1602が“クラス内平均距離”を意味し、具体的には上でも説明したように、“クラスの平均部分画像とそれぞれの部分画像の距離の平均”で定義される。なお指数で用いる“クラス内平均距離”はクラスAのクラス内平均距離1601とクラスBのクラス内平均距離1602の平均をとる。
【0123】
図15の真ん中にある通り、部分画像の個数がある程度多いと、その分布が広がりクラス内平均距離が大きくなる。なお、図15において、“クラスの広がりぐらい”は○で表される部分画像を囲む大きな楕円で表現している。
【0124】
そして、“クラス間距離”(横向きの矢印の長さ)は図15の右の100×100の場合より小さくなるが、最終的な指数(クラス内平均距離/クラス間距離)は大きくなる。
【0125】
更に部分画像のサイズを小さく(5×5)とすると、図15の左のような空間配置となる。ここで次元数は25(=5×5)で、部分画像の個数はクラスA、B、それぞれ9,216(=96×96)個となる。
【0126】
“クラス間距離”は更に短くなるが、それ以上に“クラス内平均距離”が小さくなり、指数(クラス内平均距離/クラス間距離)は下がる。これは、部分画像の個数は増えるが、その分布範囲は相対的に、小さくなることを意味する。これは部分画像の分布に個性がなくなり、Aの部分画像群もBの部分画像群も区別が付きにくくなることに対応する。
【0127】
以上説明してきた(クラス内平均距離/クラス間距離)を用いた部分画像サイズ評価法は、いわゆるFisherの分離関数と混同しやすい概念である。しかし、上記の指数は、ちょうどFisherの分離関数とは逆の関係になる。つまり、Fisherの分離関数は、クラス内の分布範囲を出来るだけ小さくし、クラス間の分布範囲を出来るだけ大きくするようにすることになる。これに対して、本実施形態で説明してきた指数(クラス内平均距離/クラス間距離)は、クラス間の分布範囲を出来るだけ小さく、クラス間の分布範囲を出来るだけ大きくするような指数となる。
【0128】
これではFisherの分離関数と全く逆の性質を見てしまうので、通常の感覚では、この指数が大きいと認識率が低くなるように感じる。しかし、本発明の部分画像を用いた画像認識方法では、この指数が大きいと部分画像の集合の形が十分意味のある構造(分布)を持つことを意味し、結果的に(経験的に)認識率が高くなるという現象が起こる。
【0129】
<実施形態6>
図16〜図19を用いて実施形態6を説明する。
【0130】
実施形態6では対象物体をいろいろな方向から撮影した画像を登録画像として学習し、入力された対象物体を含む画像の中から対象物体を検出する技術を実現する。本実施形態の学習ステップ(図4の302)は、基本的に実施形態2と同じである。つまり、図8のN枚の登録画像として、1つの対象物体をN姿勢方向から撮影した画像N枚を採用することになる。例えば、図18(b)に示したような画像となる。ここから複数の部分画像を抽出して登録部分画像とする。
【0131】
通常、このN姿勢方向はジオディシックドーム上の等間隔に配置された点から物体中心に向かう方向にカメラもしくは画像の面内回転を掛け合わせた姿勢方向となる。このように登録画像を準備することにより、入力画像中に対象物体がどのような姿勢で写っていてもそれを認識、検出することが可能となる。なお、機械学習でN枚の登録画像のマッチングを行うことはN個のクラス判別を行うことと等価となる。以下、N枚の登録画像とN個の姿勢クラスを同一視して説明する。
【0132】
なお、コンピュータグラフィックスの技術を用いて、例えばCAD画像から人工的に対象物体をいろいろな方向から撮影した画像を作り出してもよい。また、本実施形態の説明では対象物体を1つとしているが、対象物体が複数あっても本質は変わらない。
【0133】
姿勢クラスの数を増やせば増やすほど詳細に姿勢の判別が可能となる。つまり、姿勢について高い分解能を実現するためには、登録画像の枚数Nを十分多くする必要がある。しかしN=2として説明してもその本質は変わらないので、以下では説明を簡単にするためにN=2とする。対象物体は図18(b)に示すような直方体であり、2つ(=N)の姿勢クラスは同じく図18(b)に示すような正面右向き、正面左向きの姿勢とする。また、高い物体認識、検出能力を実現するためには、部分画像の枚数(M)もある程度の量必要となる。しかし、M=2として説明してもその本質は変わらないので、以下説明を簡単にするためにM=2とする。具体的には、それぞれの姿勢クラスの登録部分画像は図18(b)に示すように、クラス1では1910、1911、クラス2では1913、1914とする。なお、図18(b)では、登録画像における対象物体の中心位置を、クラス1では1912、クラス2では1915で示している。
【0134】
次に物体を検出する工程を説明する。図16は実施形態6における物体検出ルーチンのフローチャートを示した図である。物体検出工程では、まず新規に入力された画像でウィンドウをスライディングさせながら、ウィンドウ内にある部分画像を処理するルーチンが走る。このループがS1701からS1707までのループとなる。この様子は、実施形態3の説明で用いた図10(b)と同じ動作となる。
【0135】
例えば登録画像のサイズが100x100で、部分画像のサイズが20x20だとする。そして、新規画像のサイズが200x200だとすると、S1702の部分画像の抽出ステップ(図2(b)の新規部分画像集合抽出ステップS107と同じ)で抽出される部分画像の数は32,761(=181x181)枚となる。なお、ステップS1701からS1707までのループで、この32,761(=181x181)枚全てを処理せずに、その中から適当にサンプリングすることによって高速化を実現してもよい。
【0136】
このループの中で、まず部分画像の抽出を行い(S1702)、抽出された部分画像を入力としてL本の分類木判別器の判別結果を得る。このループがS1703からS1706までのループとなる。抽出された部分画像をそれぞれの分類木に認識処理させるステップはS1704であり、図17にその詳細のフローチャートを示す。
【0137】
図17で示したフローチャートは、分類木をルートノードからリーフノード、またはヌルノードへ向かって辿る工程を説明したものである。分類木における現在着目しているノードをカレントノードと定義する。まずルートノードをカレントノードとする(S1801)。次にカレントノードがヌルノードかリーフノードかの判定を行う(S1802)。そして、カレントノードがヌルノードかリーフノードであった場合は、このサブルーチンは終了する。
【0138】
なお、リーフノードが格納している情報は、“どの登録画像のどの位置の部分画像”という情報の集合であり、より具体的には“クラス番号と基準位置からのオフセット”群である。(オフセットの詳細な説明は図18を用いて後述する。)
もしカレントノードがヌルノードかリーフノードのどちらでもない場合、カレントノードのクエリーに基づいて枝番号を計算する(S1803)。そして、計算された枝番号の子ノードをカレントノードに設定する(S1804)。なお、以上説明した工程は分類木を用いた認識工程に一般的、普遍的なものである。
【0139】
図16に戻って、i番目の判別器(分類木)の認識結果を用いて投票する(S1705)。この様子を図18と図19を用いて説明する。図18(a)に示したのは投票の様子で、図18(b)に示したのが学習画像の様子である。登録画像、つまり、クラスの数が2であるので、図18(a)に示した投票面(2次元のシート)の枚数は2枚となる。ここでいう投票面の具体的な中身は投票のスコアを加算する2次元のテーブルのことである。このテーブルで値の高い場所はそのクラスの物体が存在する可能性が高い場所を意味する。
【0140】
図18(a)の図において点線で描かれた2つの直方体(1901)が表示されているが、これは入力された画像に2つの直方体が写っていたことを意味する。図18(a)はあくまで投票面なので、点線で描画をすることで入力画像そのものではないことを表現した。(図18(a)のクラス1、クラス2の2枚の投票面の同じ位置に1901が描かれていることに注意する。)
図18(a)の1902は、部分画像枠をスライディングさせた時、つまり、図16のステップS1701からS1707までのループを回した時の“ある一つ”の切り出された部分画像を意味する。部分画像1902を認識させた結果、クラス1の登録画像の部分画像1910(図18(b))とマッチしたとする。この結果、図18(b)の部分画像1910と部分画像1912のそれぞれの位置関係(中心位置へのオフセット)が読み出される(なお、この情報は図17で説明したリーフノードに格納されている。)。そして、部分画像1902の位置からクラス1の投票面上の点1904の位置へ投票が行われる。
【0141】
同様に、部分画像1903の認識結果からも投票面上の点1904への投票が行われる。また、部分画像1905の認識結果からはクラス2の投票面上の点1907への投票が行われる。また、部分画像1906の認識結果からも1907への投票が行われる。
【0142】
以上説明してきたように、ステップS1705の投票面への投票とは“入力画像中の部分画像と似ている登録画像のクラス投票面の物体中心位置へ投票する”ことを意味する。
【0143】
図18の説明では説明を簡単にするために物体中心の1点へ投票するような説明をしたが、普通は図19に示したように広がった領域に分散して投票してもよい。例えば、図19は底面がx、yの2次元(x、yの2次元は投票面の縦横の2次元と同じ意味)で高さが投票の重みを意味する。式で表現すると、
【0144】
【数10】

【0145】
(dx,dyは中心からの距離)という釣鐘型の関数を用いる。一般に釣鐘型の関数ならこの関数でなくてもよい。また、区間一様分布のような分布関数でもよい。
【0146】
なお、図18では物体中心へ投票する方法を説明したが、必ずしも物体中心へ投票しなくてもよい。つまり、対象物体の3次元モデルに複数の基準位置を設定しておいて、その基準位置毎に図18(a)で示したような投票面を用意してもよい。
【0147】
また、図18で示した例は、1つの部分画像について1つの位置または領域への投票だったが、図17で述べたリーフノードに格納された情報が複数クラスの複数位置の部分画像だった場合、それぞれのクラスの投票領域に投票することになる。
【0148】
図18で説明した投票は、マッチしたクラスの投票面だけへの投票であった。つまり、部分画像1902と1903はクラス1の部分画像とマッチしたのでクラス1の投票面へ投票した。同じく部分画像1905と1906はクラス2の部分画像とマッチしたのでクラス2の投票面へ投票した。しかしながらクラス1とクラス2は全く異なるカテゴリではなく、同じ直方体(対象物体)の異なる姿勢という意味を持つ。よって、部分画像1902、1903の認識結果からクラス2の投票面上の点1909への投票をしても良い。同様に部分画像1905、1906の認識結果からクラス1の投票面上の点1908への投票をしても良い。
【0149】
このことをより一般的に説明すると、クラスがN個あるとして、その全てのペアの類似度、または、距離を予め計算しておく。そして、例えば距離がある閾値以下の類似するクラスの投票面へ距離に応じた大きさで投票をする。ここで距離に応じた投票とは、例えばクラス間の距離をDとすると、Exp(−D)で示すような係数をかけた投票をする。(同一クラス間の距離は0だとすると、この係数は1となることに注意。)なお、通常は姿勢クラス間の距離はロドリゲスローテーションの回転角で求めるが、特にこれに限定しなくてもよい。
【0150】
図16のステップS1701からS1707までのループが終了した時点で、図18(a)に示したそれぞれの投票面への投票が終了し、それぞれの投票面の強度分布が求まる。結局、それぞれのクラスつまり姿勢方向における対象物体が存在する分布が求まることになる。この情報から部品の姿勢方向と位置を確定するのであるが、その1つの例を以下に述べる。
【0151】
S1708からS1710までのループでそれぞれのクラスの投票面においてピークとなる位置を算出する(S1709)。結果、N個の姿勢クラスそれぞれが存在する可能性の最も高い場所とそのスコアが求められることになる。具体的には図18の場合、クラス1の投票面では1904の点がピークとして選ばれ、クラス2の投票面では1907の点がピークとして選ばれる。
【0152】
そして、N個の姿勢クラスの結果をソートすることによって投票結果の集計を行う(S1711)。この集計結果によって入力画像中で存在可能性が高い姿勢方向の物体とその位置が識別できる。具体的には図18の場合、点1904の値が点1907の値より大きかったとすると、識別結果の第1候補が姿勢クラス1で位置が1904、第2候補が姿勢クラス2で位置が1907となる。
【0153】
なお、図16で説明した方法は集計方法の1つの例であって、対象物体の姿勢方向、および位置が識別できればどのような処理を行ってもよい。例えば、それぞれのクラスの投票面の局所的なピークを複数算出し、それを集計しても良い。例えば、図18の場合、点1904、点1907の他に、点1908、点1909の点を候補点に含めて集計してもよい。その結果、例えば、得点の高い順に1904、1908、1907、1909となったとする。すると、姿勢クラス1の物体が1904と1908の2つの位置に検出されることになる。
【0154】
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【0155】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図示したフローチャートに対応したコンピュータ読み取り可能なプログラムである。
【0156】
また、コンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどとの協働で実施形態の機能が実現されてもよい。この場合、OSなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【符号の説明】
【0157】
101 部分画像サイズ決定部
102 部分画像サイズ
103 登録画像
104 登録部分画像集合抽出部
105 登録部分画像集合
106 新規画像
107 新規部分画像集合抽出部
108 新規部分画像集合
109 部分画像属性判定部
110 部分画像判定結果
111 部分画像判定結果集計部
112 認識結果
113 辞書作成部
114 辞書

【特許請求の範囲】
【請求項1】
予め登録される登録画像毎にその画像に含まれる所定のサイズの登録部分画像の集合を抽出する第1の抽出ステップと、
入力された新規画像からその画像に含まれる所定のサイズの新規部分画像の集合を抽出する第2の抽出ステップと、
前記第1の抽出ステップで抽出された登録部分画像の集合を分割することによって作成されるルールに基づいて新規部分画像の属性を判定する判定ステップと、
前記新規部分画像の集合の各要素である新規部分画像を入力とした時の前記判定ステップの判定結果を集計して、前記新規画像の最終的な認識結果を導き出す集計ステップとを有することを特徴とする画像認識方法。
【請求項2】
前記属性は、前記新規部分画像が前記登録画像のそれぞれに含まれる確率であることを特徴とする請求項1に記載の画像認識方法。
【請求項3】
前記属性は、前記新規部分画像が前記登録部分画像のそれぞれに含まれる確率であることを特徴とする請求項1に記載の画像認識方法。
【請求項4】
前記判定ステップにおいて複数のルールを用い、それぞれのルールに基づいて判定した結果を集計して最終的な属性を決定することを特徴とする請求項1乃至3に記載の画像認識方法。
【請求項5】
前記判定ステップにおいて、集合の分割をランダムに選んだ2つのピクセルの輝度比較に基づいて行うことを特徴とする請求項1乃至4に記載の画像認識方法。
【請求項6】
前記ルールは、前記登録部分画像の集合を再帰的に分割することによって作成されることを特徴とする請求項1乃至5に記載の画像認識方法。
【請求項7】
前記画像認識方法に基づいたクロスバリデーションを用いて前記所定の部分画像サイズを決定する決定ステップを備えることを特徴とする請求項1乃至6に記載の画像認識方法。
【請求項8】
各登録画像における登録部分画像を平均した平均部分画像と各登録部分画像との距離の平均を、異なる登録画像の平均部分画像の間の距離で割った値に基づいて、前記所定の部分画像サイズを決定する決定ステップを備えることを特徴とする請求項1乃至6に記載の画像認識方法。
【請求項9】
入力画像から部分画像を抽出する抽出ステップと、
前記部分画像が予め学習されたどのカテゴリのどの部分画像かを判別する判別ステップと、
前記判別ステップの判別結果に基づいて投票を行う投票ステップと、
前記抽出ステップから前記投票ステップまでを繰り返し得られた投票結果を集計する集計ステップと、
前記集計ステップの集計結果に基づいて前記入力画像中に存在する物体の位置とカテゴリとを識別する識別ステップとを有することを特徴とする画像認識方法。
【請求項10】
前記カテゴリが物体の姿勢であることを特徴とする請求項9に記載の画像認識方法。
【請求項11】
前記投票ステップにおいて、前記判別ステップで判別された姿勢と当該姿勢と類似する姿勢とに投票することを特徴とする請求項10に記載の画像認識方法。
【請求項12】
前記判別ステップは1つまたは複数の分類木を用いて実行されることを特徴とする請求項9乃至11に記載の画像認識方法。
【請求項13】
前記複数の分類木が同じ種類のカテゴリを判別することを特徴とする請求項12に記載の画像認識方法。
【請求項14】
前記複数の分類木がそれぞれ異なる種類のカテゴリを判別することを特徴とする請求項12に記載の画像認識方法。
【請求項15】
予め登録される登録画像毎にその画像に含まれる所定のサイズの登録部分画像の集合を抽出する第1の抽出手段と、
入力された新規画像からその画像に含まれる所定のサイズの新規部分画像の集合を抽出する第2の抽出手段と、
前記第1の抽出手段で抽出された登録部分画像の集合を分割することによって作成されるルールに基づいて新規部分画像の属性を判定する判定手段と、
前記新規部分画像の集合の各要素である新規部分画像を入力とした時の前記判定手段の判定結果を集計して、前記新規画像の最終的な認識結果を導き出す集計手段とを有することを特徴とする画像認識装置。
【請求項16】
入力画像から部分画像を抽出する抽出手段と、
前記部分画像が予め学習されたどのカテゴリのどの部分画像かを判別する判別手段と、
前記判別手段の判別結果に基づいて投票を行う投票手段と、
前記抽出手段による抽出と、前記判別手段の判別と、前記投票手段の投票とを繰り返し得られた投票結果を集計する集計手段と、
前記集計手段の集計結果に基づいて前記入力画像中に存在する物体の位置とカテゴリとを識別する識別手段とを有することを特徴とする画像認識装置。
【請求項17】
コンピュータに、
予め登録される登録画像毎にその画像に含まれる所定のサイズの登録部分画像の集合を抽出する第1の抽出ステップと、
入力された新規画像からその画像に含まれる所定のサイズの新規部分画像の集合を抽出する第2の抽出ステップと、
前記第1の抽出ステップで抽出された登録部分画像の集合を分割することによって作成されるルールに基づいて新規部分画像の属性を判定する判定ステップと、
前記新規部分画像の集合の各要素である新規部分画像を入力とした時の前記判定ステップの判定結果を集計して、前記新規画像の最終的な認識結果を導き出す集計ステップとを実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【請求項18】
コンピュータに、
入力画像から部分画像を抽出する抽出ステップと、
前記部分画像が予め学習されたどのカテゴリのどの部分画像かを判別する判別ステップと、
前記判別ステップの判別結果に基づいて投票を行う投票ステップと、
前記抽出ステップから前記投票ステップまでを繰り返し得られた投票結果を集計する集計ステップと、
前記集計ステップの集計結果に基づいて前記入力画像中に存在する物体の位置とカテゴリとを識別する識別ステップとを実行させることを特徴とするコンピュータ読み取り可能なプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2011−22991(P2011−22991A)
【公開日】平成23年2月3日(2011.2.3)
【国際特許分類】
【出願番号】特願2010−64316(P2010−64316)
【出願日】平成22年3月19日(2010.3.19)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】