(57)【特許請求の範囲】
【請求項１】
対象物体を含む入力画像を取得する画像取得ステップと、
前記入力画像中の複数の部分画像それぞれが、前記対象物体を認識するための辞書に登録された、学習画像を構成する部分学習画像のいずれに該当するかを決定する決定ステップと、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数を取得する取得ステップと、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数に基づいて、前記決定ステップの結果が妥当であるかを判定する判定ステップと、
前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像が示す位置に投票する投票ステップと、
前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有することを特徴とする情報処理方法。
【請求項２】
前記識別ステップでは、前記投票ステップで、前記部分画像ごとに投票された結果を集計することにより、前記対象物体のカテゴリを識別することを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記投票ステップでは、前記妥当であると判定された判定結果のみを前記投票ステップで投票することを特徴とする請求項１または２に記載の情報処理方法。
【請求項４】
前記投票ステップでは、前記決定ステップで決定された結果に応じた重み付けを行って投票することを特徴とする請求項１または２に記載の情報処理方法。
【請求項５】
前記判定ステップでは、前記部分学習画像ごとに、前記部分画像が該当すると判定された数に基づいて前記判定結果が生起する確率を求め、該確率が閾値よりも小さい場合に、当該判定結果が妥当であると判定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理方法。
【請求項６】
前記判定ステップでは、前記入力画像中において検出された前記部分画像の近傍の部分画像が前記部分画像と同じ部分学習画像に該当すると判定される数を用いて、前記判定結果が妥当であるかを判定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理方法。
【請求項７】
前記判定ステップでは、前記部分学習画像に該当すると決定された部分画像の数が少ないほど、該判定の結果が妥当であると判定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理方法。
【請求項８】
前記決定ステップでは、予め学習したパターンとのパターンマッチングを行うことを特徴とする請求項１乃至７のいずれかに記載の情報処理方法。
【請求項９】
対象物体を含む入力画像を取得する画像取得手段と、
前記入力画像の複数の部分画像それぞれが、前記対象物体を認識するために用いられる辞書に登録された、学習画像を構成する部分学習画像のいずれに該当するかを決定する決定手段と、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数を取得する取得手段と、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数に基づいて、前記決定手段によって決定された結果が妥当であるかを判定する判定手段と、
前記判定手段によって判定された結果に基づいて、前記部分画像ごとに決定された、それぞれの部分学習画像が示す位置に投票する投票手段と、
前記投票手段によって投票された結果に基づいて、前記対象物体のカテゴリを識別する識別手段とを有することを特徴とする情報処理装置。
【請求項１０】
コンピュータに、
対象物体を含む入力画像を取得する画像取得ステップと、
前記入力画像中の複数の部分画像それぞれが、前記対象物体を認識するために用いられる辞書に登録された、学習画像を構成する部分学習画像のいずれに該当するかを決定する決定ステップと、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数を取得する取得ステップと、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数に基づいて、前記決定ステップにおいて決定された結果が妥当であるかを判定する判定ステップと、
前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像が示す位置に投票する投票ステップと、
前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【請求項１１】
複数のカテゴリのいずれかに属する対象物体を含む入力画像を取得する第１の取得ステップと、
前記入力画像を構成する複数の部分画像を取得する第２の取得ステップと、
前記部分画像から、少なくとも一つの特徴量を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された特徴量に基づいて、前記部分画像それぞれが、前記対象物体を認識するための辞書に登録されているいずれの部分学習画像のカテゴリに該当するかを決定する決定ステップと、
前記部分学習画像ごとに、前記部分学習画像のカテゴリに該当すると決定された前記部分画像の数に基づいて、前記決定ステップで決定された結果が妥当であるかを判定する判定ステップと、
前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像が示す位置に投票する投票ステップと、
前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有することを特徴とする情報処理方法。
【請求項１２】
前記カテゴリは、前記対象物体の姿勢であることを特徴とする請求項１１に記載の情報処理方法。
【請求項１３】
前記投票ステップで投票された結果を集計することにより、前記対象物体のカテゴリおよび位置を識別することを特徴とする請求項１１または１２に記載の情報処理方法。
【請求項１４】
前記判定ステップでは、前記部分学習画像のクラスごとに、前記決定された部分画像の数に基づいて、該分類結果が起こる確率を求め、該確率が閾値よりも小さい場合には、該決定結果が妥当であると判定することを特徴とする請求項１１乃至１３のいずれか１項に記載の情報処理方法。
【請求項１５】
前記判定ステップでは、前記部分学習画像に該当すると決定された部分画像の数が少ないほど、該決定の結果が妥当であると判定することを特徴とする請求項１１乃至１３のいずれか１項に記載の情報処理方法。
【請求項１６】
前記投票ステップでは、前記妥当であると判定された結果のみを前記投票ステップで投票することを特徴とする請求項１１乃至１５のいずれか１項に記載の情報処理方法。
【請求項１７】
複数のカテゴリのいずれかに属する対象物体を含む入力画像を取得する第１の取得手段と、
前記入力画像を構成する複数の部分画像を取得する第２の取得手段と、
前記部分画像から、少なくとも一つの特徴量を抽出する抽出手段と、
前記対象物体を認識するための学習画像を構成する部分学習画像のカテゴリを登録した辞書を保持する保持手段と、
前記抽出手段で抽出された特徴量に基づいて、前記部分画像それぞれが、前記辞書に登録されているいずれの部分学習画像のカテゴリに該当するかを決定する決定ステップと、
前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数に基づいて、前記決定された結果が妥当であるかを判定する判定手段と、
前記判定手段により判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像が示す位置に投票する投票手段と、
前記投票手段により投票された結果に基づいて、前記対象物体のカテゴリを識別する識別手段とを有することを特徴とする情報処理装置。
【請求項１８】
コンピュータに、
複数のカテゴリのいずれかに属する対象物体を含む入力画像を取得する第１の取得ステップと、
前記入力画像を構成する複数の部分画像を取得する第２の取得ステップと、
前記部分画像から、少なくとも一つの特徴量を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された特徴量に基づいて、前記部分画像それぞれが、前記対象物体を認識するための辞書に登録されているいずれの部分学習画像のカテゴリに該当するかを決定する決定ステップと、
前記部分学習画像ごとに、前記部分学習画像のカテゴリに該当すると決定された前記部分画像の数に基づいて、前記決定ステップで決定された結果が妥当であるかを判定する判定ステップと、
前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像が示す位置に投票する投票ステップと、
前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【請求項１９】
入力画像から対象物体を構成する部分領域を検出する検出ステップと、
前記入力画像から検出された前記部分領域ごとの出現回数の頻度値が閾値よりも少ない場合に、前記検出ステップの検出結果を妥当であると評価する評価ステップと、
前記評価ステップにおける結果に基づいて、前記検出ステップにおいて検出された結果に対応する位置に投票する投票ステップと、
前記投票ステップで投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有することを特徴とする情報処理方法。
【請求項２０】
入力画像から対象物体を構成する部分領域を検出する検出手段と、
前記入力画像から検出された前記部分領域ごとの出現回数の頻度値が閾値よりも少ない場合に、前記検出手段の検出結果を妥当であると評価する評価手段と、
前記評価手段による結果に基づいて、前記検出ステップにおいて検出された結果に対応する位置に投票する投票手段と、
前記投票手段で投票された結果に基づいて、前記対象物体のカテゴリを識別する識別手段とを有することを特徴とする情報処理装置。
【請求項２１】
コンピュータに、
入力画像から対象物体を構成する部分領域を検出する検出ステップと、
前記入力画像から検出された前記部分領域ごとの出現回数の頻度値が閾値よりも少ない場合に、前記検出ステップの検出結果を妥当であると評価する評価ステップと、
前記評価ステップにおける結果に基づいて、前記検出ステップにおいて検出された結果に対応する位置に投票する投票ステップと、
前記投票ステップで投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを実行させることを特徴とするコンピュータ読み取り可能なプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は対象物の撮像画像を用いて対象物の存在位置、姿勢、および名称、種類等のカテゴリ情報を推定する情報処理方法に関するものである。ここでいう対象物とは任意の物体を表し、例えば、人、動物、自動車、カメラ、プリンター、半導体基板など何でもよい。
【背景技術】
【０００２】
従来、一般化ハフ変換と呼ばれる物体検出方法があった（特許文献１参照）。この方法は、検出したい対象物体の部分的な形状を用いて対象物体の位置や姿勢を求める方法である。より具体的には、入力画像中に存在する対象物体の一部を検出し、その検出結果を元に対象物体の基準位置へ投票を行うことで、入力画像における対象物体の位置を求める方法である。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３２３６１６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来の方法では、本来対象物体が存在しない所に物体を検出する、いわゆる誤検出が発生してしまうという問題があった。これは、入力画像中に例えば複数の平行線のような単調な模様が存在する場合に顕著である。その原因は、その平行線の領域を入力とした対象物体の一部の検出結果が、全て同じ結果になるという理由で起きることが多い。つまり、本来はバラバラな位置に向かって投票するべき所が、同じ投票が局在して投票点が集中することによって、本来対象物がない場所に対象物を検出するわけである。
【課題を解決するための手段】
【０００５】
そこで、本発明に係る情報処理方法は、例えば、対象物体を含む入力画像を取得する画像取得ステップと、前記入力画像中の複数の部分画像それぞれが、前記対象物体を認識するために用いられる辞書に登録された、学習画像を構成する部分学習画像のいずれに該当するかを決定する決定ステップと、前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数を取得する取得ステップと、前記部分学習画像ごとに、該部分学習画像それぞれに対して該当すると決定された前記部分画像の数に基づいて、前記決定ステップの結果が妥当であるかを判定する判定ステップと、前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定された、それぞれの部分学習画像が示す位置に投票する投票ステップと、前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有する。
また、本発明の別の側面の情報処理方法は、例えば、複数のカテゴリのいずれかに属する対象物体を含む入力画像を取得する第１の取得ステップと、前記入力画像を構成する複数の部分画像を取得する第２の取得ステップと、前記部分画像から、少なくとも一つの特徴量を抽出する抽出ステップと、前記抽出ステップにおいて抽出された特徴量に基づいて、前記部分画像それぞれが、前記対象物体を認識するための辞書に登録されているいずれの部分学習画像のカテゴリに該当するかを決定する決定ステップと、前記部分学習画像ごとに、前記部分学習画像のカテゴリに該当すると決定された前記部分画像の数に基づいて、前記決定ステップで決定された結果が妥当であるかを判定する判定ステップと、前記判定ステップにおいて判定された結果に基づいて、前記部分画像ごとに決定されたそれぞれの部分学習画像のカテゴリに対応するデータ空間における前記部分学習画像に対応する位置に投票する投票ステップと、前記投票ステップにおいて投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有する。
また、本発明の別の側面の情報処理方法は、例えば、入力画像から対象物体を構成する部分領域を検出する検出ステップと、前記入力画像から検出された前記部分領域ごとの出現回数の頻度値が閾値よりも少ない場合に、前記検出ステップの検出結果を妥当であると評価する評価ステップと、前記評価ステップにおける結果に基づいて、前記検出ステップにおいて検出された結果に対応する位置に投票する投票ステップと、前記投票ステップで投票された結果に基づいて、前記対象物体のカテゴリを識別する識別ステップとを有する。
【発明の効果】
【０００６】
誤検出が削減され、本来検出されるべき対象物体が検出できるようになるという効果がある。
【図面の簡単な説明】
【０００７】
【図１】実施形態１の処理手順を説明するフローチャートである。
【図２】実施形態の情報処理装置のハードウェア構成を表す図である。
【図３】学習フェーズを説明する図である。
【図４】部分領域の検出過程を説明する図である。
【図５】投票の様子を説明する図である。
【図６】投票の結果を説明する図である。
【図７】部分領域の検出状況を説明する図である。
【図８】投票妥当性評価ステップの詳細を説明するフローチャートである。
【図９】実施形態２の投票妥当性評価ステップの詳細を説明するフローチャートである。
【図１０】対象物体の位置・種類検出ステップを説明するフローチャートである。
【発明を実施するための形態】
【０００８】
以下、添付図面を参照しながら本発明の実施形態を説明する。
【０００９】
＜実施形態１＞
図１は、実施形態１による情報処理方法の基本的な処理手順を説明するフローチャートである。図１を詳述する前に、本実施形態の情報処理方法が実装される装置の構成について説明する。
【００１０】
図２は、以下の実施形態すべてに係わる情報処理装置のハードウェア構成を示すブロック図である。なお、図２に示すのは、最も典型的な情報処理装置としてパーソナルコンピュータをモデルにした構成となっている。しかしながら、本情報処理装置として、例えば組み込みデバイス、デジタルカメラ、ハンドヘルドデバイスなどであってもよい。
【００１１】
ＣＰＵ２０１は、後述するフローチャートに対応する処理手順を含む各種プログラムを実行し、装置各部の制御を行う。ＲＯＭ２０２は、不揮発性のメモリであり、情報処理装置を初期動作させる際に必要なプログラムなどを記憶する。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアを提供し、２次記憶装置２０４から読みだされたプログラムなどを一時記憶する。２次記憶装置２０４は、ＣＰＵ２０１が使用するプログラム２１０を記録する。なお、このプログラム２１０は、ＯＳ２１１、アプリケーション２１２、モジュール２１３、およびデータ２１４から構成される。
【００１２】
各デバイス２０１〜２０４は、バス２０５を通して情報をやり取りする。情報処理装置は、バス２０５を介して、ディスプレイ２０６、キーボード２０７、マウス２０８、Ｉ／Ｏデバイス２０９とつながっている。
【００１３】
ディスプレイ２０６は、ユーザに処理結果や処理の途中経過等の情報を表示するのに用いる。キーボード２０７とマウス２０８は、ユーザからの指示を入力するのに用いられ、特にマウス２０８は２次元や３次元の位置関係を入力するのに用いられる。Ｉ／Ｏデバイス２０９は、新規パターンや登録用パターンを取り込むために用いられる。例えば、パターンとして２次元の画像を用いる場合には、Ｉ／Ｏデバイス２０９は、対象物体を撮影するカメラとなる。また、Ｉ／Ｏデバイス２０９は、情報処理結果を他の情報処理装置へ出力することもある。
【００１４】
本実施形態の情報処理方法は、図１に示すステップＳ１０１〜Ｓ１０４の４つのステップを実行する。まず、ステップＳ１０１で、入力された画像の中から対象物体の部分領域を検出する。これは通常、事前に学習した対象物体の部分領域と入力画像とのパターンマッチングを行うことで実現する。なお、このパターンマッチング手法については、特に限定しない。公知のサポートベクターマシン、分類木、テンプレートマッチング等を用いることが出来る。
【００１５】
次に、ステップＳ１０２で、部分領域の検出結果を評価する投票妥当性評価を実行する。次にステップＳ１０３で、ステップＳ１０２の投票妥当性評価により妥当と判断された結果のみを用いて投票を行う。そして、最後にステップＳ１０４で、投票結果を集計して対象物体の位置、姿勢および種類（カテゴリ）を検出（識別）する。なお、従来技術として説明した通常の一般化ハフ変換では、投票妥当性を評価するステップが存在しない。本実施形態では、このステップが存在する所が特徴となる。
【００１６】
以下、ステップＳ１０１における部分領域検出を図３、図４を用いて詳述する。また、ステップＳ１０２における投票妥当性評価を図７、図８を用いて詳述する。そして、ステップＳ１０３における投票を図５を用いて詳述する。さらに、ステップＳ１０４における対象物体の位置・種類検出を図６を用いて詳述する。
【００１７】
いわゆる一般化ハフ変換と呼ばれる情報処理方法では、入力画像中に存在する対象物体の断片を検出するステップが存在する。例えば四角形のような単純な線画を検出する場合は、入力画像中に存在する線分やコーナーを検出すればよい。この場合は、線分検出ルーチンやコーナー検出ルーチンを用いることで、この検出処理を実現することが可能となる。
【００１８】
これに対して、対象物体が少し複雑な形状となると、線分ルーチンやコーナー検出ルーチンのような単純な検出処理では対処できなくなる。この場合、対象物体を構成する部分領域と入力画像中の部分領域とをパターンマッチすることで、対象物体の断片を検出する方法がある。基本的に、本実施形態はこのパターンマッチを用いた対象物体の部分領域検出方法を前提としており、以下その前提で説明する。但し、前述の線分検出ルーチンやコーナー検出ルーチンなどの基本的な部分図形検出ルーチンを用いた方法で本実施形態を実現してもかまわない。
【００１９】
部分領域検出ステップＳ１０１の処理は、学習フェーズと認識フェーズの２つに分けられる。この学習フェーズを図３を用いて説明し、認識フェーズを図４を用いて説明する。図３に示すように、学習フェーズは、部分領域抽出３０２、特徴量抽出３０４、学習３０６の３つの処理からなる。
【００２０】
学習フェーズでは、まず学習用画像３０１を準備する。学習用画像３０１の例を３０８に示す。学習用画像３０１の例３０８では、異なる種類の対象物体が写っているが、例えば同じ対象物体の異なる視点からの画像を用意してもよい。また、同じ対象物体の異なる大きさで写った画像を用意してもよい。なお、以下の説明において、学習用画像の種類の数はＫ個だとする。１つの極端な例として、学習用画像１つ１つが別種類とみなすと、Ｋは学習用画像の枚数と同じになる。また、もう１つの極端な例として、対象物体が写っている学習用画像と写っていない学習用画像の２種類しかないとするとＫ＝２となる。また、１つの対象物体のＫ個の異なる姿勢に対応する撮影画像を学習用画像として、Ｋ種類としてもよい。
【００２１】
次に、部分領域抽出３０２で、学習用画像３０１から対象物体を構成する学習用部分領域３０３を抽出する。この抽出された部分領域３０３が実際に学習する画像となる。３０９に学習用部分領域の例を示す。この例３０９でいうと、各学習用画像について２つの部分領域を抽出している。この抽出する部分領域の数は、各学習用画像で異なってもよいし、同じでもよい。最終的に用意する学習用部分領域３０３の数は全部でＮ個だとする。
【００２２】
次に、特徴量抽出３０４で学習用部分領域３０３から特徴量を抽出する。特徴量としてはいろいろなものが考えられる。例えば、Ｓｏｂｅｌなどのフィルター処理を施してエッジを強調するものから、ＳＩＦＴ特徴量などの比較的計算量の多い特徴を抽出するものまである。また、特徴量抽出３０４で特別な処理をしない結果、画像の各ピクセルの輝度値そのものを特徴として採用してもよい。学習用部分領域３０３に特徴量抽出３０４を施して得られたデータが学習用データ３０５となる。この時点で学習用データ３０５は一般的にｄ次元のベクトルデータＮ個となる。
【００２３】
学習３０６では、この学習用データ３０５を用いて学習を行い、最終的に辞書３０７が作られる。学習３０６の学習アルゴリズムは、機械学習のアルゴリズムなら何でもよい。例えば、サポートベクターマシンや分類木などのアルゴリズムを用いることができる。また、一番単純なアルゴリズムとしてテンプレートマッチングのアルゴリズムを採用したとすると、学習量データ３０５をそのまま辞書３０７として保持することになる。
【００２４】
次に図４を用いて、ステップＳ１０１における部分領域検出の認識フェーズを詳述する。認識フェーズは、対象画像抽出４０２とマッチング４０５の２つの処理からなる。まず、対象画像抽出４０２で、入力画像４０１からパターンマッチングの対象となる対象部分画像４０３を抽出する。対象画像抽出４０２は、抽出位置を少しずつずらしながら繰り返すことで、入力画像の全ての領域から対象部分画像４０３が抽出されるようにする。これはいわゆるスライディング・ウィンドウの処理と呼ばれる。４０７が入力画像の例であり、４０８が入力画像中に存在する対象物体の例である。対象物体４０８は非常に単純な正方形だが、これは説明を簡単にするためのものである。そして、図３の３０８のような複雑な図形が対象物体である場合であっても、ここで説明する処理はなんら変わりない。そして、４０９は入力画像を走査するスライディング・ウィンドウの例である。
【００２５】
次に、マッチング４０５で、対象部分画像４０３と辞書４０４とのマッチングを行う。なお、図４の辞書４０４は図３の辞書３０７と同じものである。マッチング４０５で用いるモジュールは、学習フェーズで用いたアルゴリズムと対応したものを用いる。また、マッチング４０５は、図３の特徴量抽出３０４を対象部分画像４０３に施すモジュールも含む。結局、認識フェーズでは、それぞれの位置の対象部分画像４０３のマッチング結果４０６が得られることとなる。
【００２６】
図１のステップＳ１０１における部分領域検出が終了すると、ステップＳ１０２でその結果の妥当性をチェックする妥当性評価を行う。この処理を詳述する前に、図５を用いてステップＳ１０３における投票を詳述し、図６を用いてステップＳ１０４における対象物体の位置・姿勢・種類の検出を詳述する。
【００２７】
図５の（ａ）は、投票処理の様子を示した図である。入力画像５０１の中に対象物体５０２が写っている。なお、入力画像５０１は、入力画像という意味と同時に投票面という意味も持つ。投票面の具体的実装は後述する。この対象物体の部分領域として、４つのコーナー周辺の領域５０３、５０４、５０５、５０６をその代表として図示している。スライディング・ウィンドウを移動させながら部分領域５０３〜５０６が検出された結果、部分領域５０３〜５０６のそれぞれから対象物体の中心位置５０７への投票が行われる。
【００２８】
図５の（ｂ）は、具体的に投票面の実装を示したものである。投票面はテーブルの形式をしており、学習用画像の種類（Ｋ個）の小さなテーブルの集まりとなる。テーブルの内容はアドレス５０８と投票スコア５０９からなる。そして、アドレス５０８は、学習用画像の種類番号ｋと入力画像５０１における２次元上の位置との組で構成される。小さなテーブルのサイズは対象物体の中心位置の存在範囲のサイズであり、通常は入力画像の全ピクセル数となる。結局、入力画像が横Ｘピクセル、縦Ｙピクセルだとすると、図５の（ｂ）の全部の行数はＫ＊Ｘ＊Ｙとなる。
【００２９】
なお、対象物体の存在位置の同定精度が入力画像のピクセルより粗くてもよい場合は、存在位置を量子化することでテーブルのサイズを削減してもよい。例えば、２ピクセルｘ２ピクセルの正方形の部分をまとめて量子化したとすると、図５の（ｂ）のテーブルサイズは１／４になる。図５の（ａ）で説明した通り、部分領域５０３〜５０６の４回の投票が行われるので、対象物体５０２の種類番号がｋ、中心位置５０７が（ｘ，ｙ）のとき、アドレス（ｋ，ｘ，ｙ）のスコアが４になっている。
【００３０】
図５では、部分領域５０３〜５０６の４箇所のウィンドウの認識・検出結果とその投票しか示していないが、もちろんそれ以外の位置のウィンドウに関する認識・検出結果も存在する。また、図５では、１回の投票で５０９のスコアを１インクリメントしているが、部分画像ごとに投票の重みを変えて例えば０．５とかの値を加算してもよい。
【００３１】
続いて、図１のステップＳ１０４における対象物体の位置・種類の検出を説明する。図６に、図５で説明した全ての投票結果を足し合わせた得点の分布状況の例を示す。図６は、図５の（ｂ）の小さなテーブル１つを立体図示したもので、ある学習画像の入力画像中での存在確率を表示していると見ることができる。図６の入力画像６０１と対象物体６０２は、図５の入力画像５０１と対象物体５０２にそれぞれ対応する。
【００３２】
図６の高さ方向は投票の結果（スコア）を示し、高いほど投票得点が高いことを意味する。投票得点の分布は６０３のような形になっていて、そのピークの位置６０４に対象物体が検出されている。図６では単峰性の投票得点分布になっているが、もちろん複数ピークがある分布になることもある。その時は、入力画像中に複数の対象物体が存在すると判断するのが妥当な場合が多いので、Ｘ、Ｙ平面における局所的なピーク（極大値）を求めることで、この複数の対象物体存在位置を求める。
【００３３】
一方、投票得点の分布形状が、図６の６０３のような曲面である場合はそれでよいが、分布形状が不連続なギザギザな形をしている場合もある。このような時は、最も得点の高い場所に対象物体が１つ存在すると判断してもよい。最終的に、Ｋ枚のそれぞれの投票面で、図６に示したような投票ピーク位置の検出をすることによって、対象物体全種類の検出が可能となる。
【００３４】
図１０のフローチャートは、この処理の動きを説明したものである。処理はステップＳ１００１からＳ１００８までの画像種類のループと、ステップＳ１００３からＳ１００６までのＸ軸、Ｙ軸のループとの２重ループからなっている。なお、ステップＳ１００１からＳ１００８までの画像種類のループはＫ回実行する。内側のＸ軸、Ｙ軸のループで、それぞれの対象物体の種類に対する最もスコアの高い点を求め、それらを集計する。具体的には、まず最大値に０をセットし（Ｓ１００２）、Ｘ軸Ｙ軸を走査しながらそれぞれの位置のスコアが最大値より大きいかどうかをチェックする（Ｓ１００４）。もし当該位置のスコアが現在の最大値より大きかったら、最大値とその位置を更新する（Ｓ１００５）。Ｘ軸、Ｙ軸のループが終了したら、最大値およびその位置を当該対象物体のスコアおよびその存在位置としてテーブルに格納する（Ｓ１００７）。
【００３５】
結局、画像種類のループが終了した時点（Ｓ１００８）で、全ての種類の登録画像に対してその最も存在確率の高い位置とスコアがテーブルに格納されていることになる。そして、そのテーブルをスコアが高い順にソート（Ｓ１００９）することで、存在確率の高い対象物体の種類と位置がスコア順で求まる。
【００３６】
最後に、図７と図８に示すフローチャートとを用いて、図１のステップＳ１０２における投票妥当性評価を説明する。図７の入力画像７０１は、図４の入力画像４０１と同じものを意味する。また、図７のスライディング・ウィンドウ７０２は、図４のスライディング・ウィンドウ４０３と同じものを意味する。図７の（ｂ）、（ｃ）に示した２つのグラフは、部分領域の認識結果をヒストグラムとして表したものであり、入力画像７０１の中をスライディング・ウィンドウ７０２が移動する毎にカウントされていく。２つのグラフ７０３と７０４の横軸はクラスの種類を示し、縦軸はその出現状況としての出現回数を示す。ここでクラスというのは、例えば図３の学習用部分領域３０２の種類を意味する。
【００３７】
図３の説明では、Ｎ個の学習用部分領域が存在するので、図７の（ｂ）  、（ｃ）に示したヒストグラムには、Ｎ個のビンが存在することになる。ビンの数は学習用画像の種類Ｋではないことに注意する。なお、Ｎ個の学習用部分領域をＭ個（Ｍ＜Ｎ）の集合に束ねて、それぞれの集合の要素を同一視することで、Ｍ個のクラスに関するヒストグラムを作成してもよい。スライディング・ウィンドウ７０２を入力画像７０１の中で完全に走査した結果、最終的なクラス毎の出現回数の分布７０３、または７０４が取得できることとなる。
【００３８】
ここまでの処理が、図８のフローチャートに示したステップＳ８０１からＳ８０４の処理である。入力画像に対象物体が存在する場合は、対象物体を構成する部分領域のクラスの出現頻度が若干高くなるが、基本的には分布７０３は確率分布に従っていると近似できる。具体的には、入力画像中のスライディング・ウィンドウ走査総数をＺとして、もしＮ＞＞Ｚの場合はポワソン分布、それ以外の場合２項分布で近似可能となる。なお、それ以外の確率分布で近似してもよい。例えば、ヒストグラムの頻度平均などの統計情報を用いて想定した確率分布のパラメータを求める。これが図８のステップＳ８０５の処理である。
【００３９】
そして、その得られたパラメータを用いて、例えば０．００１％以下の確率でしか起こりえない出現回数を求める。これが図８のステップＳ８０６の処理である。なお、この閾値確率の値は、統計の推定で用いられるＰ値のように事前に決めておく。例えば、確率分布としてポワソン分布を仮定した場合、その分布関数は
【００４０】
【数１】
0005984327.tif 000002
【００４１】
という式で表される。パラメータλは、投票のヒストグラム７０３または７０４から推定する。具体的には、平均投票回数がλとなり、例えば投票数の合計がＮ／１０（ヒストグラムのビンの数Ｎの１／１０）だとすれば、λは０．１となる。
【００４２】
この時、推定される出現回数０回が確率９０％でおき、１回が確率９％でおき、２回が０．４５％でおき、３回が０．０１５％でおきる。つまり、ほとんどのクラスの出現回数は０回で、３回同じクラスと認識・検出されたとすると、それは非常に稀な事象（確率０．０１５％）と判断できることになる。そして出現回数４回以上は、その起こる確率が０．００１％未満となる。従ってこの例の場合は出現回数の閾値を４回とする。
【００４３】
例えば、ヒストグラム７０４では、第４番目のビンの出現回数が突出して多い。このような場合に、部分領域のクラスが第４番目だと認識・検出されたものは、妥当でないと言う評価結果となり、投票しないことになる。これに対して、ヒストグラム７０３の場合、評価結果として、全ての検出結果が妥当だと評価されて投票されることになる。
【００４４】
なお、このような非常に確率頻度の低い事象（＝ヒストグラムのビンが突出する事象）が起こるケースは、入力画像中に存在する平行線などの単純な部分全域に対して、対象物体のある１種類の部分領域が検出された場合となる。どんなに単純な形状が入力画像中に存在したとしても、部分領域の種類Ｎは多いので、ある１種類の部分領域のみが検出されるのは不自然である。本実施形態は、このような異常な認識・検出結果を、統計的な推定を行う評価によって排除、または実質的に無効にする所が特徴となる。
【００４５】
最後に、ステップＳ８０７からＳ８１０のループ処理で、再度、入力画像の中のスライディング・ウィンドウの走査を行う。そのループの中で、ステップＳ８０８の判断処理において、ヒストグラム７０３を参照して、認識結果の出現回数がステップＳ８０６で決定した閾値を超えた場合は、投票を行わずにステップＳ８０７に戻る。もし出現回数が閾値以下だった場合は、ループの中で投票する（Ｓ８０９）。なお、ステップＳ８０８の判断でｎｏと判断された投票であっても、投票の重みを（例えば半分に）減じて投票してもかまわない。また投票をしないということは、投票の強度を０とする場合と見ることもできる。
【００４６】
また、この投票の重みを調整する方法の最も自然な実装は、ステップＳ８０５で推定した出現回数の生起確率を投票に乗じる方法である。なお、以上説明してきた図８のフローチャートは、図１のステップＳ１０１における部分領域検出、ステップＳ１０２における投票妥当性評価、ステップＳ１０３における投票の処理に相当する。
【００４７】
＜実施形態２＞
実施形態１では、入力画像全体に対する部分領域の認識・検出結果を集計することで、異常な認識・検出結果を判定していた。これに対して実施形態２では、局所的な部分領域の認識・検出結果を見ることで異常な認識・検出結果を判定する。
【００４８】
図９に処理のフローチャートを示す。ステップＳ９０１とＳ８０１、ステップＳ９０２とＳ８０２、ステップＳ９０３とＳ８０４がそれぞれ対応し、同じステップとなる。実施形態２では、ステップＳ９０５〜Ｓ９０７のループで、スライディング・ウィンドウの近傍領域に同じ認識・検出結果があるかどうかを判定している。例えば、当該スライディング・ウィンドウの位置が（ｉ，ｊ）だったとすると、ｉ−２≦ｘ≦ｉ＋２、ｊ−２≦ｙ≦ｊ＋２の範囲の５ｘ５の近傍領域の認識・検出結果をサーチする。そして、ステップＳ９０６で、同じ認識・検出結果が予め決めた閾値以上（例えば１）存在すれば、当該スライディング・ウィンドウと同じ認識結果があると判断し、ステップＳ９０４に戻る。一方、近傍領域に同じ認識・検出結果がないと判断されると、ステップＳ９０８で、通常通り投票処理が行われる。
【００４９】
なお、実施形態１と同様に、ステップＳ９０６の判断で同じ認識結果があると判断された投票であっても、投票の重みを（例えば半分に）減じて投票してもかまわない。また、投票をしないということは、投票の強度を０として投票する場合と見ることもできる。また、この投票の重みを調整する方法を一般化すると、所定の関数（例えば、｛１／（１＋近傍での出現回数）｝）を投票に乗じる方法といえる。なお、この投票に乗じる所定の関数は、近傍での出現回数に関して単調減少する関数であれば何でもよい。
【００５０】
＜他の実施形態＞
以上、実施形態を詳述したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記憶媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
【００５１】
尚、本発明は、ソフトウェアのプログラムをシステム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが該供給されたプログラムコードを読み出して実行することによって前述した実施形態の機能が達成される場合を含む。この場合、供給されるプログラムは実施形態で図に示したフローチャートに対応したコンピュータプログラムである。
【００５２】
また、コンピュータが、コンピュータ読み取り可能なプログラムを読み出して実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどとの協働で実施形態の機能が実現されてもよい。この場合、ＯＳなどが、実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される。
【図１】
0005984327.tif 000003
【図２】
0005984327.tif 000004
【図３】
0005984327.tif 000005
【図４】
0005984327.tif 000006
【図５】
0005984327.tif 000007
【図６】
0005984327.tif 000008
【図７】
0005984327.tif 000009
【図８】
0005984327.tif 000010
【図９】
0005984327.tif 000011
【図１０】
0005984327.tif 000012