以下に本発明の実施の形態を説明するが、本明細書に記載の発明と、発明の実施の形態との対応関係を例示すると、次のようになる。この記載は、本明細書に記載されている発明をサポートする実施の形態が本明細書に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、発明に対応するものとして、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その発明に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その発明以外の発明には対応しないものであることを意味するものでもない。
さらに、この記載は、本明細書に記載されている発明の全てを意味するものではない。換言すれば、この記載は、本明細書に記載されている発明であって、この出願では請求されていない発明の存在、すなわち、将来、分割出願されたり、補正により出現、追加される発明の存在を否定するものではない。
即ち、本発明の学習装置は、認識対象を含む画像のみからなる学習用モデル画像より複数の第1の特徴点を抽出する第1の特徴点抽出手段(例えば、図1の特徴点抽出部11)と、第1の特徴点抽出手段により抽出された複数の第1の特徴点より、それぞれ第1の特徴量を抽出する第1の特徴量抽出手段(例えば、図1の特徴量抽出部12)と、所定の位置関係を有する、少なくとも2個以上の第1の特徴点の第1の特徴量を合わせて、複数の第1の特徴情報を生成する第1の特徴情報生成手段(例えば、図1の特徴点ペアリング部13)と、認識対象を含む画像と含まない画像とからなる学習用入力画像より複数の第2の特徴点を抽出する第2の特徴点抽出手段(例えば、図1の特徴点抽出部15)と、第2の特徴点抽出手段により抽出された複数の第2の特徴点より、それぞれ第2の特徴量を抽出する第2の特徴量抽出手段(例えば、図1の特徴量抽出部16)と、所定の位置関係を有する、少なくとも2個以上の第2の特徴点の第2の特徴量を合わせて、複数の第2の特徴情報を生成する第2の特徴情報生成手段(例えば、図1の特徴点ペアリング部17)と、複数の第1の特徴情報のそれぞれについて、複数の第2の特徴情報のうち、最も相関の高い第2の特徴情報を選択する選択手段(例えば、図1の特徴量選択部18)と、選択手段により選択された第2の特徴情報を用いた統計学習により認識対象を認識する認識器を生成する認識器生成手段(例えば、図1の認識器生成部19)とを含むことを特徴とする。
本発明の学習方法は、認識対象を含む画像のみからなる学習用モデル画像より複数の第1の特徴点を抽出する第1の特徴点抽出ステップ(例えば、図9のフローチャートにおけるステップS1の処理)と、第1の特徴点抽出ステップの処理により抽出された複数の第1の特徴点より、それぞれ第1の特徴量を抽出する第1の特徴量抽出ステップ(例えば、図9のフローチャートにおけるステップS2の処理)と、所定の位置関係を有する、少なくとも2個以上の第1の特徴点の第1の特徴量を合わせて、複数の第1の特徴情報を生成する第1の特徴情報生成ステップ(例えば、図9のフローチャートにおけるステップS3の処理)と、認識対象を含む画像と含まない画像とからなる学習用入力画像より複数の第2の特徴点を抽出する第2の特徴点抽出ステップ(例えば、図9のフローチャートにおけるステップS5の処理)と、第2の特徴点抽出ステップの処理により抽出された複数の第2の特徴点より、それぞれ第2の特徴量を抽出する第2の特徴量抽出ステップ(例えば、図9のフローチャートにおけるステップS6の処理)と、所定の位置関係を有する、少なくとも2個以上の第2の特徴点の第2の特徴量を合わせて、複数の第2の特徴情報を生成する第2の特徴情報生成ステップ(例えば、図9のフローチャートにおけるステップS7の処理)と、複数の第1の特徴情報のそれぞれについて、複数の第2の特徴情報のうち、最も相関の高い第2の特徴情報を選択する選択ステップ(例えば、図9のフローチャートにおけるステップS8の処理)と、選択ステップの処理により選択された第2の特徴情報を用いた統計学習により認識対象を認識する認識器を生成する認識器生成ステップ(例えば、図9のフローチャートにおけるステップS9の処理)とを含むことを特徴とする。
本発明の画像認識装置は、認識用入力画像より複数の第1の特徴点を抽出する第1の特徴点抽出手段(例えば、図1の特徴点抽出部31)と、第1の特徴点抽出手段により抽出された複数の第1の特徴点より、それぞれ第1の特徴量を抽出する第1の特徴量抽出手段(例えば、図1の特徴量抽出部32)と、所定の位置関係を有する、少なくとも2個以上の第1の特徴点の第1の特徴量を合わせて、複数の第1の特徴情報を生成する第1の特徴情報生成手段(例えば、図1の特徴点ペアリング部33)と、認識対象を含む画像のみからなる学習用モデル画像より抽出された、所定の位置関係を有する、少なくとも2個以上の第2の特徴点の第2の特徴量を合わせた複数の第2の特徴情報のそれぞれについて(認識用特徴量記憶部3に記憶されている特徴量のそれぞれについて)、最も相関の高い第1の特徴情報を選択する選択手段(例えば、図1の特徴量選択部34)と、複数の第2の特徴情報のそれぞれについて、最も相関の高い、認識対象を含む画像と含まない画像からなる学習用入力画像より抽出された、所定の位置関係を有する、少なくとも2個以上の第3の特徴点の第3の特徴量を合わせた複数の第3の特徴情報を用いた統計学習により生成される認識器(例えば、認識器記憶部4に記憶されている認識器)を用いて、選択手段により選択された第1の特徴情報に基づいて、認識用入力画像における認識対象の有無を認識する認識手段(例えば、図1の認識計算部35)とを含むことを特徴とする。
本発明の認識方法は、認識用入力画像より複数の第1の特徴点を抽出する第1の特徴点抽出ステップ(例えば、図17のフローチャートにおけるステップS121の処理)と、第1の特徴点抽出ステップの処理により抽出された複数の第1の特徴点より、それぞれ第1の特徴量を抽出する第1の特徴量抽出ステップ(例えば、図17のフローチャートにおけるステップS122の処理)と、所定の位置関係を有する、少なくとも2個以上の第1の特徴点の第1の特徴量を合わせて、複数の第1の特徴情報を生成する第1の特徴情報生成ステップ(例えば、図17のフローチャートにおけるステップS123の処理)と、認識対象を含む画像のみからなる学習用モデル画像より抽出された、所定の位置関係を有する、少なくとも2個以上の第2の特徴点の第2の特徴量を合わせた複数の第2の特徴情報のそれぞれについて、最も相関の高い第1の特徴情報を選択する選択ステップ(例えば、図17のフローチャートにおけるステップS124の処理)と、複数の第2の特徴情報のそれぞれについて、最も相関の高い、認識対象を含む画像と含まない画像からなる学習用入力画像より抽出された、所定の位置関係を有する、少なくとも2個以上の第3の特徴点の第3の特徴量を合わせた複数の第3の特徴情報を用いた統計学習により生成される認識器を用いて、選択ステップの処理により選択された第1の特徴情報に基づいて、認識用入力画像における認識対象の有無を認識する認識ステップ(例えば、図17のフローチャートにおけるステップS125の処理)とを含むことを特徴とする。
尚、記録媒体、および、プログラムについては、学習方法、および、画像認識装置と同様であるので、その説明は省略する。
図1は、本発明を適用した画像処理システムの一実施の形態の構成を示す図である。
本発明を適用した画像処理システムは、画像中の対象物体を認識させる、いわゆる画像認識処理を実現させるものである。
学習装置1は、認識しようとする対象物体が含まれている画像からなる複数の学習用モデル画像と、認識しようとする対象物体が含まれている画像、および対象物体が含まれていない画像のいずれもが含まれている複数の学習用入力画像とに基づいて、画像認識装置2による画像認識処理において必要とされる認識用特徴量と、認識器を生成し、それぞれ認識特徴量記憶部3、および認識器記憶部4に記憶させる。
画像認識装置2は、入力画像に基づいて、認識用特徴量記憶部3に記憶されている認識用特徴量と、認識器記憶部4に記憶されている認識器に基づいて、入力画像中に対象物体が存在するか否かを判定する。
学習装置1の特徴点抽出部11は、例えば、Harris Corner Ditectorなどからなり、学習用モデル画像の各画素について、特徴を有する位置、すなわち、特徴点を抽出し、特徴量抽出部12に供給する。
特徴量抽出部12は、特徴点抽出部11より供給される特徴点のそれぞれについて、ステアラブルフィルタと呼ばれるフィルタ処理により特徴量を抽出し、特徴点ペアリング部13に供給する。尚、特徴量抽出部12については、図2を参照して、詳細を後述する。
特徴点ペアリング部13は、特徴量抽出部12より供給される各特徴点毎の特徴量のうち、後述する主方向の情報に基づいて、2個の特徴点をペアリングし、それぞれの特徴量を1個の特徴量(以下、モデル特徴量とも称する)として、学習用モデル特徴量記憶部14に記憶させる。尚、特徴点ペアリング部13については、図5を参照して、詳細を後述する。
特徴点抽出部15、特徴量抽出部16、および特徴点ペアリング部17は、学習用入力画像に対して、特徴点抽出部11、特徴量抽出部12、および特徴点ペアリング部13と同様の処理を実行するものであるので、その説明は省略する。尚、特徴点ペアリング部17が特徴量選択部18に供給する、特徴量ペアリング部17より供給されてくる学習用入力画像より抽出された2個の特徴点の特徴量がペアリングされた特徴量については、学習用入力特徴量とも称するものとする。
特徴量選択部18は、学習用モデル特徴量記憶部14に記憶されている、モデル特徴量毎に、最も相関の高い学習用入力特徴量を選択し、認識器生成部19に供給する。尚、特徴量選択部18については、図7を参照して、詳細を後述する。
尚、特徴点抽出部11、特徴量抽出部12、および特徴点ペアリング部13は、複数の学習用モデル画像よりモデル特徴量を抽出して学習用モデル特徴量記憶部14に記憶させる。この際、学習用モデル画像を区別することはない。一方、特徴量選択部18は、学習用入力画像のそれぞれについて区別して学習用入力特徴量を選択して、認識器生成部19に供給する。
認識器生成部19は、モデル特徴量毎に、最も相関の高い学習用入力特徴量を用いて、(Adaboostによる)統計学習処理を実行し、対象物体を認識する認識器を生成し、認識器記憶部4に記憶させる。この際、認識器生成部19は、認識器の学習の過程で、対象物体を認識するのに大きく影響するモデル特徴量のみを抽出し、認識用特徴量として認識用特徴量記憶部3に記憶させる。尚、認識器生成部19については、図8を参照して、詳細を後述する。
特徴点抽出部31、特徴量抽出部32、および特徴点ペアリング部33は、対象物体を認識しようとする入力画像に対して、特徴点抽出部11、特徴量抽出部12、および特徴点ペアリング部13と同様の処理を実行するものであるので、その説明は省略する。尚、特徴点ペアリング部33が特徴量選択部34に供給する、特徴量ペアリング部33より供給されてくる入力画像より抽出された2個の特徴点の特徴量がペアリングされた特徴量については、入力特徴量とも称するものとする。
特徴量選択部34は、基本的に特徴量選択部18と同様であり、すなわち、認識用特徴量記憶部3に記憶されている、認識用特徴量毎に、最も相関の高い入力特徴量を選択し、認識計算部35に供給する。
認識計算部35は、認識器記憶部4に記憶されている認識器を読み出し、特徴量選択部34より供給されてくる入力特徴量に基づいて計算し、計算結果を認識結果出力部36に供給する。認識結果出力部36は、認識計算部35より供給される認識結果に基づいて、対象物体が入力画像で認識されたか否かの認識結果を出力する。
次に、図2を参照して、特徴量抽出部12について説明する。1次フィルタ処理部51は、特徴点抽出部11より供給されてくる特徴点ごとに、ガウシアン関数Gの1次導関数G1によりフィルタ処理を施し特徴量を抽出する。より詳細には、1次フィルタ処理部51は、図3で示されるように、処理しようとする特徴点の画素が、注目画素J1である場合、注目画素J1と、注目画素J1に対して水平方向に5画素、および垂直方向に5画素だけ離れている画素J2乃至J5のそれぞれに対して、以下の式(1)で示されるようなガウシアン関数Gの1次導関数G1を用いたフィルタ処理を施し、特徴量生成部55に供給する。さらに、1次フィルタ処理部51は、以下の式(2)で示されるガウス関数Gのガウス幅σを3個の所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させて、それぞれのガウス幅σについてのフィルタ処理結果を特徴量生成部55に供給する。
ここで、θは、任意の角度であり、1次フィルタ処理部51は、所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について、式(1)を計算する。また、関数Gは、以下の式(2)で示されるガウス関数である。
さらに、ここで、σは、ガウス幅を示す。
2次フィルタ処理部52は、特徴点抽出部11より供給されてくる特徴点ごとに、ガウシアン関数Gの2次導関数G2によりフィルタ処理を施し特徴量を抽出する。より詳細には、2次フィルタ処理部52は、図3で示されるように、処理しようとする特徴点の画素が、注目画素J1である場合、注目画素J1と、注目画素J1に対して水平方向に5画素、および垂直方向に5画素だけ離れている参照画素J2乃至J5のそれぞれに対して、以下の式(3)で示されるようなガウシアン関数Gの2次導関数G2を用いたフィルタ処理を施し特徴量生成部55に供給する。さらに、2次フィルタ処理部52は、ガウス幅σを3個の所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させて、それぞれのガウス幅σについてのフィルタ処理結果を特徴量生成部55に供給する。
ここで、θは、上述と同様に任意の角度であり、2次フィルタ処理部52は、所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について、式(3)を計算する。また、係数k2i(i=1,2,3:k21,k22,k23)は、以下の式(4)で示される関数である。
3次フィルタ処理部53は、特徴点抽出部11より供給されてくる特徴点ごとに、ガウシアン関数Gの3次導関数G3によりフィルタ処理を施し特徴量を抽出する。より詳細には、3次フィルタ処理部53は、図3で示されるように、処理しようとする特徴点の画素が、注目画素J1である場合、注目画素J1と、注目画素J1に対して水平方向に5画素、および垂直方向に5画素だけ離れている参照画素J2乃至J5のそれぞれに対して、以下の式(5)で示されるようなガウシアン関数Gの3次導関数G3を用いたフィルタ処理を施し特徴量生成部55に供給する。さらに、3次フィルタ処理部52は、ガウス幅σを3個の所定値(例えば、ガウス幅σ1,σ2,σ3=1,2,4)に変化させて、それぞれのガウス幅σについてのフィルタ処理結果を特徴量生成部55に供給する。
ここで、θは、上述と同様に任意の角度であり、3次フィルタ処理部53は、所定の4方向(例えば、θ=θ1,θ2,θ3,θ4)について、式(5)を計算する。また、係数k3i(i=1,2,3:k31,k32,k33)は、以下の式(6)で示される関数である。
主方向計算部54は、特徴点抽出部11より供給されてくる特徴点ごとに、上述した3個の所定値であるガウス幅σの最大値のガウシアン関数Gのx方向とy方向の1次導関数Gx,Gyを求め、特徴点における主方向α(=atan(Gy/Gx))を計算し、特徴量生成部55に供給する。すなわち、特徴量の主方向αは、ガウシアン関数Gのx方向とy方向の1次導関数Gx,Gyにより決定される値である。従って、特徴点における図4の左部で示されるように、注目画素J1に対して参照画素J2乃至J5が、水平方向および垂直方向に対して平行で、かつ等距離に配置された状態で主方向が角度αである場合、図4の右部で示されるように、注目画素J1に対して参照画素J2乃至J5が、それぞれ角度αだけ回転移動するようなことがあっても、主方向はαから2αとなるだけである。従って、特徴点における特徴量は、特徴点を中心とした回転に対して不変である。
特徴量生成部55は、1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53よりそれぞれ供給されてくる特徴点毎に、4個の角度θで、かつ、3種類のガウス幅σのそれぞれについて注目画素を含む5点分のそれぞれの特徴量の供給を受け、さらに、主方向計算部54より主方向αの情報を取得するため、合計181個(=3(次数)×5(特徴点の画素+特徴点から水平方向および垂直方向に対して均等な距離だけ離れた4画素)×4(方向)×3(ガウス幅)+1(主方向の情報))のパラメータを特徴点における特徴量として生成し、特徴点ペアリング部13に供給する。このとき、特徴量生成部55は、各特徴点の位置の情報についても併せて特徴点ペアリング部13に供給する。
このように各特徴点に対する特徴量は、特徴点を中心として回転不変であるため、特に、回転不変局所記述子とも称される。
次に、図5を参照して、特徴点ペアリング部13の構成について説明する。
特徴量バッファ71は、特徴量抽出部12より供給されてくる特徴量を特徴点に対応付けて一旦記憶する。主方向抽出部72は、特徴量バッファ71に記憶されている特徴量毎に、すなわち、各特徴点の特徴量毎に、主方向の情報を抽出し、特徴点の情報と共に同一主方向特徴量検索部73に供給する。
同一主方向特徴量検索部73は、主方向抽出部72より供給されてくる主方向の情報に基づいて、各特徴点毎の主方向αに対して所定の角度(α−θ)乃至角度(α+θ)の範囲内に存在する特徴点のうち、注目画素に対して最も近い位置に存在する特徴点をペアリング特徴点として検索し、注目画素となる特徴点とペアリング特徴点とを特徴量合成部74に供給する。
例えば、図6で示されるように、特徴点P1乃至P6が存在するものとする。尚、図6においては、各特徴点P1乃至P6から伸びている矢印が各特徴点における主方向であるものとする。注目画素となる特徴点P1における主方向αに対して角度(α−θ)乃至角度(α+θ)の範囲内に存在する特徴点は、特徴点P2乃至P4,P6である。さらに、このうち、注目画素である特徴点P1から最も近い位置に存在する特徴点は、特徴点P2である。従って、図6において、同一主方向特徴量検索部73は、特徴点P1と、特徴点P1のペアリング特徴点としての特徴点P2とを特徴量合成部74に供給する。同一主方向特徴量検索部73は、各特徴点毎に、ペアリング特徴点を抽出して、特徴量合成部74に供給する。
特徴量合成部74は、同一主方向特徴量検索部73より供給されてくる各特徴点と、そのペアリング特徴点とのそれぞれの特徴量を特徴量バッファ71より読み出して合成し、ペアリング特徴量を生成して、学習用モデル特徴量として、学習用モデル特徴量記憶部14に記憶させる。
すなわち、特徴点ペアリング部13は、図6の特徴点P1の特徴量を、特徴点P1における特徴量と、特徴点P1における主方向αに対して、角度α±θの範囲に存在する特徴点であって、最も近い位置に存在する特徴点P2における特徴量とを併せたものとする。従って、特徴点1点についてステアラブルフィルタにより得られるパラメータが181個であるので、特徴点がペアリングされることにより各特徴点の特徴量(ペアリング特徴量)のパラメータは362個となる。つまり、ここでは、各特徴点における主方向という幾何学的な弱い拘束により決定される2個の特徴点の特徴量が、1個の特徴点の特徴量(ペアリング特徴量)として扱われることになる。
結果として、学習用モデル特徴量記憶部14には、各特徴点について362個のパラメータからなる特徴量がモデル特徴量として記憶されることになる。
尚、上述したように、特徴点抽出部15、特徴量抽出部16、および特徴点ペアリング部17については、特徴点抽出部11、特徴量抽出部12、および特徴点ペアリング部13と同様の構成であり、特徴点抽出部11、特徴量抽出部12、および特徴点ペアリング部13は、認識対象物体を含んだ画像からなる学習用モデル画像を対象にしているのに対して、特徴点抽出部15、特徴量抽出部16、および特徴点ペアリング部17は、認識対象物体を含む画像と、含まない画像からなる学習用入力画像に対して同様の処理を施している点で異なる。
次に、図7を参照して、特徴量選択部18の構成について説明する。ペアリング特徴量記憶部91は、特徴量ペアリング部17より供給されてくる学習用入力画像から抽出されたペアリング特徴量を特徴点毎に一時的に記憶する。相関係数生成部92は、学習モデル特徴量記憶部14に記憶されている各ペアリング特徴量毎に、ペアリング特徴量記憶部91に記憶されている各ペアリング特徴量との相関係数を生成し、最大相関係数探索部93に供給する。
より具体的には、ペアリング特徴量が、n次元のパラメータから構成される場合(今の場合、n=362である)、各特徴点における特徴量は、n次元のベクトルであるとみなすことができる。そこで、学習用モデル特徴量記憶部14にN個の特徴点(複数の学習用モデル画像により設定された特徴点)に対応するN個のペアリング特徴量(上述したモデル特徴量)が記憶され、ペアリング特徴量記憶部91にS個の特徴点(1個の学習用入力画像により設定された特徴点)に対応するS個のペアリング特徴量(以降においては、入力特徴量とも称する)が記憶されている場合、相関係数生成部92は、モデル特徴量であるN個のn次元のベクトルgi(i=1,2,3,・・・N)のそれぞれに対して、入力特徴量であるS個のn次元のベクトルhj(j=1,2,3,・・・S)との内積を求め、ベクトルgi,hjのそれぞれの長さの積で除することにより相関係数を計算し、それぞれ最大相関係数探索部93に供給する。すなわち、モデル特徴量であるN個のベクトルgiのそれぞれについて、入力特徴量であるS個のベクトルhjのそれぞれとの相関係数Dijが求められることになる。相関係数は、具体的には(ベクトルgi・ベクトルhj)/(|ベクトルgi|×|ベクトルhj|)で表される。ここで、「(ベクトルgi・ベクトルhj)」はベクトルgiとベクトルhjとの内積を示し、「|ベクトルgi|」および「|ベクトルhj|」は、それぞれベクトルgiおよびベクトルhjの絶対値を示している。
最大相関係数探索部93は、相関係数生成部92より供給されてくる相関係数のうち、各モデル特徴量毎に(各ベクトルgi毎に)、最大の相関係数Dijとなるを探索し、探索結果を選択部94に供給する。
選択部94は、最大相関係数探索部93より供給されてきたモデル特徴量毎の最大の相関係数Dijを構成する入力特徴量(ベクトルhj)を選択し、認識器生成部19に供給する。すなわち、今の場合、モデル特徴量がN個である(ベクトルgi(i=1,2,3,・・・N))ことが前提であるので、1個の学習用入力画像につき、N個のモデル特徴量のそれぞれに対して、最も相関の高い入力特徴量が選択されることになる(ベクトルgi(i=1,2,3,・・・N)について、最も相関の高いベクトルhjが選択されることになる)。
次に、図8を参照して、認識器生成部19の構成について説明する。尚、上述した特徴量選択部18により1個の学習用入力画像毎に選択されるN個の入力特徴量が選択されることになるので、複数のM個の学習用入力画像が用いられた場合、認識器生成部19にはM個の学習用入力画像毎に、N個のモデル特徴量のそれぞれについて、最も相関の高い入力特徴量が供給されてくることになる。換言すれば、M個の学習用入力画像毎に、N個のモデル特徴量のそれぞれに対して最も相関の高い入力特徴量をパラメータとしたN次元のベクトルが生成されるていることになる。
サンプリング部101は、重み設定部102により設定される学習用入力画像単位の重みに応じて、モデル特徴量毎に(パラメータ毎に)M個の入力特徴量をサンプリングし、並び替え部103に供給する。
並び替え部103は、N個の入力特徴量のそれぞれについてサンプリングされたM個の入力特徴量を昇べきの順、または、降べきの順に並び替えて、認識器設定部104に供給する。
認識器設定部104は、入力特徴量が抽出された学習用入力画像に認識しようとする対象物体が含まれている画像であるか否かを示す正誤情報に基づいて、昇べきの順、または、降べきの順に並び替えられたN個の入力特徴量のそれぞれについて、閾値を変化させながら誤り率計算部104aを制御して、誤り率を計算させ、誤り率が最小となるように閾値設定する(この閾値が、弱認識器として設定される)。さらに、認識器設定部104は、認識器毎の誤り率を認識器選択部105に供給する。すなわち、N個の入力特徴量に応じたN個の弱認識器が設定され、N個のそれぞれについて誤り率が求められることになる。
認識器選択部105は、N個の弱認識器のうち、誤り率が最小となる弱認識器を選択して、認識器記憶部4に記憶させる(更新させる)と共に、弱認識器に対応するモデル特徴量を学習用モデル特徴量記憶部より読み出し、認識用特徴量記憶部3に記憶させる。さらに、認識器選択部105は、選択した弱認識器の誤り率に基づいて、信頼度を計算し、重み更新部106に供給する。
重み更新部106は、供給された信頼度に基づいて学習用入力画像毎の重みを再計算すると共に、重みを正規化して更新し、更新結果を重み設定部102に供給する。重み設定部102は、重み更新部106より供給されてくる重みの更新結果に基づいて、学習用入力画像単位の重みを設定する。
次に、図9のフローチャートを参照して、学習装置1による学習処理について説明する。
ステップS1において、特徴点抽出部11は、入力される複数の学習用モデル画像よりハリスコーナ点などを抽出し、特徴量抽出部12に供給する。
ステップS2において、特徴量抽出部12は、学習用モデル画像特徴量抽出処理を実行し、供給された特徴点における特徴量を各学習用モデル画像より抽出し、特徴点ペアリング部13に供給する。
ここで、図10のフローチャートを参照して、特徴量抽出部12による特徴量抽出処理について説明する。
ステップS21において、1次フィルタ処理部51、2次フィルタ処理部52、3次フィルタ処理部53、および主方向計算部54は、それぞれ特徴点抽出部11より供給されてきた特徴点の情報のうち、未処理の特徴点を注目画素として選択する。
ステップS22において、1次フィルタ処理部51、2次フィルタ処理部52、3次フィルタ処理部53、および主方向計算部54は、それぞれ注目画素に対応する参照画素を抽出する。すなわち、例えば、図3で示されるように、画素J1が注目画素として選択された場合、注目画素J1に対して垂直方向に5画素、および、水平方向に5画素離れた参照画素J2乃至J5が抽出されることになる。つまり、この場合、注目画素を含む5画素が処理対象画素として抽出されることになる。尚、参照画素は、今の場合、各注目画素J1に対して垂直方向に5画素、および、水平方向に5画素だけ離れた合計4画素であるが、各注目画素に対して、それ以外の位置関係にある画素であってもよいし、さらに、4個以外の個数であってもよい。
ステップS23において、1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53は、注目画素および参照画素の全ての処理対象画素のうち未処理の画素を選択する。
ステップS24において、方向θを示すカウンタqが1に初期化される。従って、この時点では、方向θqは、方向θ1となる。
ステップS25において、ガウス幅σを示すカウンタpが、1に初期化される。従って、この時点では、ガウス幅σpは、ガウス幅σ1となる。
ステップS26において、1次フィルタ処理部51は、処理対象となる画素の画素値に基づいて、ガウス幅σpで、かつ、方向θqにおける、上述した式(1)を演算し、フィルタ処理した結果を特徴量生成部55に供給する。
ステップS27において、2次フィルタ処理部52は、処理対象となる画素の画素値に基づいて、ガウス幅σpで、かつ、方向θqにおける、上述した式(3)を演算し、フィルタ処理した結果を特徴量生成部55に供給する。
ステップS28において、3次フィルタ処理部53は、処理対象となる画素の画素値に基づいて、ガウス幅σpで、かつ、方向θqにおける、上述した式(5)を演算し、フィルタ処理した結果を特徴量生成部55に供給する。
ステップS29において、ガウス幅σpがガウス幅σ3であるか否かが判定され、ガウス幅σpがガウス幅σ3ではないと判定された場合、ステップS30において、カウンタpは、1インクリメントされ、その処理は、ステップS26に戻る。また、ステップS29において、ガウス幅σpがガウス幅σ3であると判定された場合、その処理は、ステップS31に進む。すなわち、ガウス幅σpがガウス幅σ1乃至σ3の3種類のガウス幅について1次乃至3次フィルタ処理が実行されるまで、ステップS26乃至S30の処理が繰り返される。
ステップS31において、方向θqが方向θ4であるか否かが判定され、方向θqが方向θ4ではないと判定された場合、ステップS32において、カウンタqは、1インクリメントされ、その処理は、ステップS25に戻る。また、ステップS31において、方向θqが方向θ4であると判定された場合、その処理は、ステップS33に進む。すなわち、方向θqが方向θ1乃至θ4の4種類の方向θについて1次乃至3次フィルタ処理が実行されるまで、ステップS25乃至S32の処理が繰り返されることになる。
ステップS33において、1次フィルタ処理部51、2次フィルタ処理部52、および3次フィルタ処理部53は、注目画素および参照画素の全てについて、特徴量が抽出される処理がなされたか否かを判定し、注目画素および参照画素の全てにおいて、処理がなされていないと判定された場合、その処理は、ステップS23に戻る。
ステップS33において、注目画素および参照画素の全てにおいて、処理がなされていると判定された場合、その処理はステップS34に進む。
ステップS34において、主方向計算部54は、上述した3個の所定値であるガウス幅σの最大値のガウシアン関数Gのx方向とy方向の1次導関数Gx,Gyを求め、特徴点における主方向α(=atan(Gy/Gx))を計算し、特徴量生成部55に供給する。
ステップS35において、特徴量生成部55は、1次フィルタ処理部51、2次フィルタ処理部52、3次フィルタ処理部53、および主方向計算部54よりそれぞれに供給されてくる計算結果を特徴量として合成し、1個の特徴点に対する特徴量を生成する。
ステップS36において、ステップS21において、1次フィルタ処理部51、2次フィルタ処理部52、3次フィルタ処理部53、および主方向計算部54は、全ての特徴点について処理が終了したか否かを判定し、全ての特徴点について処理が終了していないと判定された場合、その処理は、ステップS21に戻る。すなわち、全ての特徴点において、特徴量が生成されるまで、ステップS21乃至S36の処理が繰り返される。
ステップS36において、全ての特徴点について処理が終了したと判定された場合、その処理は終了する。
すなわち、以上に処理により、複数の認識対象を含む画像における特徴点の特徴量が抽出されることになる。
ここで、図9のフローチャートの説明に戻る。
ステップS3において、特徴点ペアリング部13は、ステップS2の学習用モデル画像特徴量抽出処理により抽出された、複数の学習用モデル画像の特徴点から抽出された特徴量の情報を用いて、学習用モデル画像ペアリング処理を実行し、各特徴点の特徴量と、各特徴点の主方向の条件に基づいたペアリング特徴点の特徴量とをペアリング(合成)し、ペアリング特徴量を生成する。
ここで、図11のフローチャートを参照して、特徴点ペアリング部13によるペアリング処理について説明する。
ステップS51において、特徴量バッファ71は、特徴量抽出部12より供給されてくる特徴量を特徴点に対応付けて記憶する。
ステップS52において、主方向抽出部72は、特徴量バッファ71に記憶された各特徴点毎に特徴量より主方向の情報を抽出し、同一主方向特徴量検索部73に供給する。
ステップS53において、同一主方向特徴量検索部73は、処理対象とする未処理の特徴点の主方向の情報を決定する。
ステップS54において、同一方向特徴量検索部73は、処理対象として決定した未処理の特徴点の主方向と同一の主方向の特徴点を1個検索し、検索結果となる特徴点を特徴量合成部74に供給する。より詳細には、同一方向特徴量検索部73は、処理対象として決定した未処理の特徴点の主方向が角度αである場合、その他の特徴点の主方向φが、α+Θ<φ<α−Θの範囲であるとき、同一方向の特徴点とみなす。尚、複数の同一方向の特徴点が検索された場合、処理対象とする特徴点から最も近い位置に存在する特徴点が検索される。また、主方向φが、α+Θ<φ<α−Θの範囲の特徴点が検索されない場合、同一方向特徴量検索部73は、主方向φが、α+Θ<φ<α−Θの範囲に最も近い主方向の特徴点を検索する。
ステップS55において、特徴量合成部74は、処理対象となっている特徴点の特徴量と、処理対象となっている特徴点と主方向が同一の特徴点の特徴量とを合成し、処理対象となっている特徴点の特徴量(ペアリング特徴量)として学習用モデル特徴量記憶部14に供給する。
ステップS56において、同一主方向特徴量検索部73は、処理対象とする未処理の特徴点があるか否かを判定し、未処理の特徴点があると判定された場合、その処理は、ステップS53に戻る。すなわち、ステップS53乃至S56の処理が繰り返されて、全ての特徴点について、同一主方向であって、かつ、最も近い位置に存在するペアリング特徴点が検索され、処理対象となる特徴点の特徴量と、ペアリング特徴点の特徴量とが合成される。
ステップS56において、未処理の特徴点がないと判定された場合、その処理は、終了する。
以上の処理により、全ての特徴点の特徴量と、全ての特徴点における同一主方向の特徴点の特徴量とがペアリングされる。結果として、各特徴点における特徴量には、特徴点における主方向に応じた特徴量が付加される事になるため、特徴点毎に特徴量に幾何学的な弱い拘束が付加されることになる。
ここで、図9のフローチャートの説明に戻る。
ステップS4において、学習用モデル特徴量記憶部14は、特徴点ペアリング部13より供給されてくる、特徴点毎に、特徴点の特徴量と、主方向に基づいてペアリングされた特徴点の特徴量とが合成されたペアリング特徴量を記憶する。
ステップS1乃至S4の処理により、複数の学習用モデル画像における特徴点のペアリング特徴量が、学習用モデル特徴量記憶部14に記憶されることになる。
ステップS5において、特徴点抽出部15は、入力される学習用入力画像よりハリスコーナ点などを抽出し、特徴量抽出部16に供給する。
ステップS6において、特徴量抽出部16は、学習用入力画像特徴量抽出処理を実行し、供給された特徴点における特徴量を各学習用入力画像より抽出し、特徴点ペアリング部17に供給する。尚、特徴量抽出処理については、図10のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
ステップS7において、特徴点ペアリング部17は、学習用入力画像ペアリング処理を実行し、主方向が同一で、かつ、距離の近い位置に存在する2個の特徴点における特徴量をペアリングし、ペアリング特徴量を生成し、特徴量選択部18に供給する。尚、ペアリング処理については、図11のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
尚、ステップS6乃至S8の処理については、いずれの処理においても、処理結果は、各学習用入力画像毎に区別されて出力される。
ステップS8において、特徴量選択部18は、特徴量選択処理を実行し、各学習用入力画像について、モデル特徴量毎に入力特徴量(いずれもペアリング特徴量)を選択し、認識器生成部19に供給する。
ここで、図12のフローチャートを参照して、特徴量選択処理について説明する。
ステップS71において、ペアリング特徴量記憶部91は、特徴量ペアリング部17より供給されてくる学習用入力画像から抽出されたペアリング特徴量を、学習用入直画像毎に全ての特徴点について一時的に取得し、記憶する。
ステップS72において、相関係数生成部92は、ペアリング特徴量記憶部91に記憶された学習用入力画像の学習用入力特徴量のうち、未処理の学習用入力画像の学習用入力特徴量を選択する。
ステップS73において、相関係数生成部92は、学習用モデル特徴量記憶部14に記憶されている未処理の学習用モデル特徴量を読み出す。
ステップS74において、相関係数生成部92は、ステップS72の処理で選択された学習用入力特徴量のうち未処理の学習用入力特徴量(ペアリング特徴量)を選択する。
ステップS75において、相関係数生成部92は、ステップS73の処理で選択された学習用モデル特徴量と、ステップS74の処理で選択された学習用入力画像における学習用入力特徴量との相関係数を生成し、最大相関係数探索部93に供給する。
ステップS76において、相関係数生成部92は、ステップS74の処理で選択された学習用入力画像における学習用入力特徴量のうち、未処理の学習用入力特徴量が存在するか否かを判定し、存在する場合、その処理は、ステップS74に戻る。すなわち、ステップS72の処理で選択された学習用入力特徴量のうち、未処理の学習用入力特徴量がないと判定されるまで、ステップS74乃至S76の処理が繰り返され、1個のモデル特徴量について、ステップS72の処理で選択された学習用入力特徴量の数だけ相関係数が計算される。
ステップS76において、ステップS72の処理で選択された学習用入力特徴量のうち、未処理の学習用入力特徴量がないと判定された場合、その処理は、ステップS77に進む。
ステップS77において、最大相関係数探索部93は、相関係数生成部92より供給された相関係数のうち最大相関係数を探索し、選択部94に供給する。選択部94は、最大相関係数となるペアリング特徴量を、ペアリング特徴量記憶部91より選択する。
ステップS78において、相関係数生成部92は、未処理の学習用モデル特徴量が学習用モデル特徴量記憶部14に記憶されているか否かを判定し、例えば、未処理の学習用モデル特徴量があると判定された場合、その処理は、ステップS73に戻る。すなわち、1個の学習用入直画像について、全ての学習用モデル特徴量のそれぞれの、学習用入力特徴量の中で最も相関の高いペアリング特徴量が選択され、認識器生成部19に出力されるまで、ステップS73乃至S78の処理が繰り返される。
ステップS78において、未処理の学習用モデル特徴量が学習用モデル特徴量記憶部14に記憶されていないと判定された場合、ステップS79において、相関係数生成部92は、未処理の学習用入力画像の学習用入力特徴量があるか否かを判定する。ステップS79において、例えば、未処理の学習用入力画像の学習用入力特徴量があると判定された場合、その処理は、ステップS72に戻り、ステップS72乃至S79の処理が繰り返される。すなわち、全ての学習用入力画像毎に、全ての学習用モデル特徴量のそれぞれについて最も相関の高い相関係数が計算される。
ステップS79において、未処理の学習用入力画像の学習用入力特徴量がないと判定された場合、その処理は、終了する。
以上の処理により、学習用入力画像1個毎に、学習用モデル特徴量記憶部14に記憶されているモデル特徴量のそれぞれに最も相関の高い学習用入力特徴量が抽出されることになる。
すなわち、例えば、学習用モデル特徴量記憶部14に、図13の上部で示されるようにX個の学習用モデル画像PM1乃至PMXのそれぞれの特徴点より抽出されるN個のモデル特徴量が記憶されているものとする。ここで、認識しようとする対象物体は、学習用モデル画像PM1乃至PMXの全ての画像に含まれている自動車の画像である。
図12のフローチャートを参照して説明した特徴量選択処理により、例えば、図13の下部で示されるM個の学習用入力画像PI1乃至PIMのそれぞれについて、特徴点毎に最も相関の高いN個の入力特徴量のベクトル(A1,A2,・・・AN),(B1,B2,・・・BN),・・・,(M1,M2,・・・MN)が構成され、認識器生成部19に出力されることになる。ここで、学習用入力画像PI1乃至PIMには、認識しようとする対象物体を含むものと含まないものが有り、図13においては、認識しようとする対象物体を含む学習用入力画像PIiについては「+1」と表記されており、認識しようとする対象物体を含まない学習用入力画像PIiについては「−1」と表記されている。
ここで、図9のフローチャートの説明に戻る。
ステップS9において、認識器生成部19は、ステップS8の特徴量選択処理により選択された学習用入力画像毎に求められた最もモデル特徴量と相関の高い特徴量を用いて、認識器生成処理を実行し、生成した認識器を認識器記憶部4に記憶させると共に、生成した認識器を使用するための学習用モデル特徴量を読み出し、認識用特徴量として認識用特徴量記憶部3に記憶させる。
ここで、図14のフローチャートを参照して、認識器生成部19による認識器生成処理について説明する。
ステップS91において、重み設定部102は、例えば、図13で示される学習用入力画像PIi毎の重みWiを全て1/Mに初期化すると共に、カウンタjを1に、認識器R(x)を0にそれぞれ初期化する。ここで、iは、図13における学習用入力画像PIiを識別するものであり、1<i<Mである。従って、ステップS91の処理により、全ての学習用入力画像PIiは、いずれも正規化された同一の重み(=1/M)に設定されることになる。
ステップS92において、サンプリング部101は、モデル特徴量が抽出される特徴点k(k=1,2,3,・・・N)毎に、学習用入力画像PIiの重みWiに応じてM個選択し、並び替え部103に供給する。すなわち、特徴量選択部18より供給されてくる各学習用入力画像毎に相関の高い学習用入力特徴量が、例えば、図15で示されるように、学習用入力画像PI1について、(A1,A2,・・・AN)として、学習用入力画像PI2について、(B1,B2,・・・BN)として、学習用入力画像PI3について、(C1,C2,・・・CN)として、・・・、学習用入力画像PIMについて、(M1,M2,・・・MN)として、それぞれ供給された場合、特徴点k=1の特徴量は、グループGr1で示される(A1,B1,C1,・・・M1)であり、同様に、特徴点k=2の特徴量は、グループGr2で示される(A2,B2,C2,・・・M2)であり、・・・特徴点k=Nの特徴量は、グループGrNで示される(AN,BN,CN,・・・MN)となる。すなわち、各特徴点kについて、学習用入力画像PIi毎にM個の特徴量のグループGrkが設定されることになる。尚、図15においては、学習用入力画像PI1,PI2が、認識しようとする対象物体を含む画像であることを示しており(図中の「+1」の表記)、学習用入力画像PI3,PIMが、認識しようとする対象物体を含まない画像であることを示している(図中の「−1」の表記)。
サンプリング部101は、各特徴点k毎に、各学習用入力画像PIiに設定された重みに応じて特徴量をM個抽選で抽出する。最初の処理においては、いずれの重みWiも等しいため、M個が抽選されると、確率的には全ての特徴量が選択されることになるので、ここでは、最初の処理では各特徴点kにおいて、全ての特徴量が選択されたものとする。もちろん、実際には、同一の特徴量が重複して選択されることもある。
ステップS93において、並び替え部103は、N個の特徴点のそれぞれについてサンプリングされたM個の特徴量のグループGrN毎に、特徴量を昇べきの順、または、降べきの順に並び替えて、認識器設定部104に供給する。
ステップS94において、認識器設定部104は、入力特徴量が抽出された学習用入力画像に認識しようとする対象物体が含まれている画像であるか否かを示す情報に基づいて、特徴点k毎に、M個の特徴量のそれぞれについて、閾値を変化させながら誤り率計算部104aを制御して、以下の式(7)で示すように誤り率ejkを計算させ、誤り率ejkが最小となるように閾値を設定する。ここで、特徴点k毎の閾値thjkが、1個の弱認識器fjkとなる。そこで、認識器設定部104は、弱認識器毎の誤り率ejkを認識器選択部105に供給する。すなわち、各特徴点kについて、N個の特徴量に応じたN個の弱認識器fjkが設定され、N個のそれぞれについて(弱認識器fjkのそれぞれについて)誤り率ejkが求められることになる。ここで、認識器fjkは、認識しようとする対象物体を含む場合「+1」を出力し、認識しようとする対象物体を含まない場合「−1」を出力する関数である。
すなわち、j=1であって、特徴点k=1が、図16で示されるようにL1,A1,C1,B1,・・・,M1に昇べき、または、降べきの順に並べられた場合、閾値th11が、特徴量A1とC1の間に設定されて、閾値th11より小さい範囲では、認識しようとする対象物体がないと認識し(「−1」で示されている範囲)、閾値th11より大きい範囲では、認識しようとする対象物体があると認識する(「+1」で示されている範囲)とき、図中の点線で囲まれた特徴量A1は、認識しようとする対象物体が含まれた学習用入力画像の特徴量であるので、エラーであるとみなされ、特徴量C1,M1は、逆に、認識しようとする対象物体が含まれていない学習用入力画像の特徴量であるので、エラーであるとみなされる。誤り率計算部104aは、以下の式(7)で示されるように、学習用入力画像の正誤情報(認識しようとする対象物体が含まれているか否かの情報)に基づいて、エラーであるとみなされた特徴量が抽出された学習用入力画像の重みWiを加算し、誤り率ejkを計算する。
ここで、y≠fjkは、エラーとなっている特徴点kの条件を示しており、Ewは、エラーの発生した特徴点kにおける重みが加算されることを示している。
ステップS95において、認識器選択部105は、N個の弱認識器fjkのうち、誤り率ejkが最小となる弱認識器fjkを選択する。
ステップS96において、認識器選択部105は、選択した弱認識器の最小の誤り率ejk(=ej)に基づいて、以下の式(8)で示されるように信頼度cjを計算し、計算結果を重み更新部106に供給する。
ステップS97において、重み更新部106は、供給された信頼度cjに基づいて、以下の式(9)で示されるように各学習用入力画像毎に重みWiを再計算すると共に、全ての重みWiを正規化して更新し、更新結果を重み設定部102に供給する。重み設定部102は、重み更新部106より供給されてくる重みの更新結果に基づいて、学習入力画像毎の重みを設定する。
すなわち、式(9)においては、エラーの発生した特徴量を含む学習用入力画像の重みが大きくなることが示されている。
ステップS98において、認識器選択部105は、認識器fjとして認識器記憶部4に記憶させる(更新させる)。すなわち、認識器選択部105は、以下の式(10)で示されるように、認識器R(x)を更新して、以下の式(11)で示される形式で認識器記憶部4に記憶させる。
R(x)=R(x)+cj×fj(x)
・・・(10)
sign(R(x))=sign(R(x)+cj×fj)
・・・(11)
すなわち、重み付けされた弱認識器fjが認識器R(x)に加算される。また、sign(Y)は、Yが正の場合、認識しようとする対象物体が、入力画像中に存在することを示す「+1」を出力し、Yが負の場合、認識しようとする対象物体が、入力画像中に存在しないことを示す「−1」を出力する関数である。
ステップS99において、認識器選択部105は、弱認識器fjの特徴点kに対応するモデル特徴量を学習用モデル特徴量記憶部14より読み出し、認識用特徴量記憶部3に記憶させる。
ステップS100において、認識器選択部105は、カウンタjがLより大きいか否かを判定し、Lよりも大きくないと判定された場合、その処理は、ステップS101に進み、カウンタjが1インクリメントされ、ステップS92に戻る。ステップS100において、カウンタjがLよりも大きいと判定された場合、その処理は、終了する。
以上の処理により、L個の比較的誤り率の低い弱認識器fj(1<j<L)からなる認識器R(x)が認識器記憶部4に記憶されると共に、それぞれの弱認識器fjで使用されるべき特徴点kのモデル特徴量が認識用特徴量記憶部3に記憶される。ここで、Lは、L≦Nである。
尚、式(11)の認識器は、L個の弱認識器の多数決により、認識しようとする対象物体の有無を出力する関数であると言える。また、図14のフローチャートを参照して説明した弱認識器を学習処理により重み付けしつつ付加することを繰り返し、認識器を生成する学習処理は、Descrete Adaboost Algorithmと呼ばれる処理である。
すなわち、以上の認識器生成処理により、誤り率の高い学習用入力画像の学習用入力特徴量の重みが順次大きくなり、誤り率の低い学習用入力特徴量の重みが小さくなるように、モデル特徴量ごとに認識器と誤り率が計算される処理が繰り返されることになる。したがって、繰り返し処理(ステップS92乃至S101の処理)の中で、認識器を設定する際に選択される学習用入力特徴量(ステップS92で選択される学習用入力特徴量)は、徐々に誤り率の高いものが選択されやすくなるので、認識し難い学習用入力特徴量が繰り返されるほどに選択されて学習が繰り返されることになるため、認識し難い学習用入力画像の特徴量がより多く選択されることになり、最終的に高い認識率にすることが可能となる。
また、繰り返し処理(ステップS92乃至S101の処理)の中で、認識器選択部105は、常に誤り率の最も低いモデル特徴量に対応する弱認識器を選択することになるので、学習処理の繰り返しにより、常に信頼度の最も高いモデル特徴量についての弱認識器が選択されて認識器に加算されることになり、繰り返されるごとに精度の高い弱認識器が順次加算されることになる。
この認識器生成処理が終了すると共に、図9のフローチャートにおける学習処理が終了する。
すなわち、以上の学習処理により、特徴点毎に特徴量に幾何学的な拘束が付加された特徴量を用いて、誤り率ejの低いL個の弱認識器fj(1<j<L)からなる認識器R(x)が生成されることになる。結果として、信頼度の高い弱認識器のみからなる認識器が構成されることになるので、限られた個数の弱認識器で信頼度の高い認識器を構成することが可能となるので、後述する認識処理における演算処理数を低減させつつ、認識精度を向上させることが可能となる。
また、認識器の数を多くすれば(上述したLを大きくすれば)、弱認識器をより多くすることで、認識精度を向上させることが可能となる。一方、認識器の数を少数にしても(上述したLを小さくしても)、選択される弱認識器は、少数ながらも信頼度の高い弱認識器のみのを用いた認識処理がなされるので、信頼度を維持しつつ認識処理における演算処理数を低減させることが可能となる。すなわち、必要に応じて、学習処理に手間を掛けて認識器の生成個数を多くすることでより高い精度の認識器を生成することも可能であるし、逆に、学習に手間を掛けず生成する認識器の個数を減らして1発学習に近い学習にしても比較的精度の高い認識器を生成することが可能となる。
さらに、学習の過程において使用される各特徴点の特徴量は、特徴点における回転不変なステアラブルフィルタにより得られる特徴量に、主方向が同一で、かつ、最も近い位置の特徴点における特徴量とがペアリングされた特徴量であるため、空間的に弱い幾何学的な拘束を含んだ学習がなされることになり、例えば、認識対象となる物体が回転していたり、視点が異なるような画像であっても認識することが可能となる。
次に、図17のフローチャートを参照して、画像認識装置2による画像認識処理について説明する。
ステップS121において、特徴点抽出部31は、認識しようとする対象物体の有無を認識しようとする入力画像よりハリスコーナ点などを抽出し、特徴量抽出部32に供給する。
ステップS122において、特徴量抽出部32は、入力画像特徴量抽出処理を実行し、供給された特徴点における特徴量を入力画像より抽出し、特徴点ペアリング部33に供給する。尚、特徴量抽出処理については、図10を参照して説明した処理と同様であるので、その説明は省略する。
ステップS123において、特徴点ペアリング処理部33は、入力画像ペアリング処理を実行し、主方向の条件に応じて2個の特徴点における特徴量をペアリングし、ペアリング特徴量を生成する。尚、特徴量ペアリング処理については、図11を参照して説明した処理と同様であるので、その説明は省略する。
ステップS124において、特徴量選択部34は、認識用特徴量記憶部3に記憶された特徴量を用いて、特徴量選択処理を実行し、特徴量を選択し、認識計算部35に供給する。尚、特徴量選択処理については、学習用モデル特徴量記憶部14に記憶されている特徴量を用いる点と、認識用特徴量記憶部3に記憶された特徴量を用いる点で異なるが、その他の処理については、図12のフローチャートを参照して説明した処理と同様であるので、その説明は、省略する。
ステップS125において、認識計算部35は、認識器記憶部4に記憶されている認識器を読み出し、特徴量選択部34より供給されてくる入力画像の特徴量に基づいて、認識器を計算する。すなわち、上述したように、特徴量選択部34より供給されてくる特徴量は、学習の際、信頼度の高い弱認識器fjの計算に必要な特徴量であるので、認識計算部35は、供給されてくる選択された特徴量を各弱認識器fjに代入して認識器R(x)を計算する。そして、認識計算部35は、各弱認識器fjの判定結果の重み付けられた投票結果を計算結果として認識結果出力部36に供給する。
ステップS126は、認識計算部35より供給されてくる計算結果に基づいて、認識しようとする対象物体の有無の判定結果を出力する。すなわち、認識計算部35より供給されてくる計算結果は、上述した式(11)で示される演算結果であるので、演算結果として「+1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれているという結果を出力し、演算結果として「−1」が供給されてきた場合、認識しようとする対象物体が入力画像に含まれていないという結果を出力することになる。
以上の処理により、学習処理の過程で、特徴点毎に特徴量に幾何学的な弱い拘束が付加された特徴量が用いられて、生成された誤り率ejの比較的低いL個の弱認識器fj(1<j<L)からなる認識器R(x)により対象物体の認識処理がなされる。
結果として、学習の過程において使用される各特徴点の特徴量が、特徴点における回転不変なステアラブルフィルタにより得られる特徴量に、主方向が同一で、かつ、最も近い位置の特徴点における特徴量とがペアリングされた特徴量であるため、空間的に幾何学的な弱い拘束を含んだ学習がなされるため、例えば、認識対象となる物体が回転していたり、視点が異なるような画像であっても比較的高い精度で認識することが可能となる。
尚、以上においては、Descrete Adaboost Algorithmに基づいて、学習処理を実行する例について説明してきたが、それ以外のBoosting Algorithmを適用するようにしてもよく、例えば、Gentle Adaboost Algorithmを用いるようにしてもよい。Descrete Adaboost Algorithmと、Gentle Adaboost Algorithmとは、前者の認識器の出力結果が離散変量であるのに対して、後者は、連続変量である点で異なる。しかしながら、前者においては、信頼度が乗じられるため、出力結果は、実質的に連続変量として扱われており、本質的に処理の違いはない。Gentle Adaboost Algorithmを適用した場合、上述した式(9)、および式(11)は、以下の式(12)および式(13)に置き換えられることになるが、処理は同様である。
sign(R(x))=sign(R(x)+fj)
・・・(13)
すなわち、Gentle Adaboost Algorithmを適用した場合、弱認識器fjが、それぞれ信頼度を含んだ連続変量の値を出力することになるため、対応した重み付けがなされ、信頼度の計算が省かれることになる。
また、以上においては、特徴点の特徴量と、主方向が同一とみなされる特徴点であって、最も近い位置の特徴点における特徴量との2点の特徴点の特徴量がペアリングされる例について説明してきたが、特徴量がペアリングされる特徴点の数は、2点に限らずそれ以上の数であってもよく、例えば、全ての特徴点とペアリングするようにしても良い。
さらに、特徴量がペアリングされる特徴点の条件は、主方向に対して同一であるという条件でなくてもよく、例えば、図18で示されるように、特徴点の主方向と、所定の角度βを成す主方向の特徴点とのそれぞれの特徴量をペアリングさせるようにしてもよい。図18においては、特徴点P11とP12の主方向は、それぞれ角度βを成している。同様にして、特徴点P13とP14および特徴点P15とP16の主方向は、それぞれ角度βを成している。このため、特徴点P11とP12、特徴点P13とP14および特徴点P15とP16のそれぞれの特徴量がペアリングされることになる。このような条件であっても、特徴点間には、空間的に幾何学的な弱い拘束がなされることになるので、上述した物体認識における精度の向上が期待できる。
また、基準となる特徴点の主方向に対してランダムな角度を成す特徴点のそれぞれの特徴量をペアリングさせるようにしてもよい。すなわち、例えば、図19で示されるように、基準となる特徴点P21の主方向に対して、角度γ1だけ成す角度の主方向を持つ特徴点P22とペアリングさせる一方で、基準となる特徴点P23の主方向に対して、角度γ2だけ成す角度の主方向を持つ特徴点P24とペアリングさせ、さらに、基準となる特徴点P25の主方向に対して、角度γ3だけ成す角度の主方向を持つ特徴点P26とペアリングさせるようにしてもよい。
換言すれば、特徴点のペアリングは、少なくとも2個以上で、かつ、ランダムに選択される特徴点同士であればよいものである。
いずれにおいても、特徴点間には、空間的に幾何学的な弱い拘束がなされることになるので、上述した物体認識における物体の回転や視点の変化に対しての認識精度の向上が期待できる。
以上によれば、空間的に幾何学的な拘束がなされる特徴点間の特徴量をペアリングして、認識しようとする対象物体の学習処理および認識処理を実行するようにしたので、少ないながら信頼度の高い弱認識器のみで構成される認識器を用いた認識処理がなされ、認識率を低下させることなく認識処理における演算処理数を低減させることが可能となる。また、学習の過程において使用される各特徴点の特徴量は、空間的に幾何学的な所定の条件が満たされる特徴点間の特徴量がペアリングされるため、空間的に幾何学的な弱い拘束を含んだ学習がなされ、例えば、認識対象となる物体が回転していたり、視点が異なるような画像であっても認識することが可能となる。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
図20は、図1の学習装置1または画像認識装置2の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU201は、パーソナルコンピュータの全体の動作を制御する。また、CPU201は、バス204および入出力インタフェース205を介してユーザからキーボードやマウスなどからなる入力部206から指令が入力されると、それに対応してROM(Read Only Memory)202に格納されているプログラムを実行する。あるいはまた、CPU201は、ドライブ210に接続された磁気ディスク221、光ディスク222、光磁気ディスク223、または半導体メモリ224から読み出され、記憶部208にインストールされたプログラムを、RAM(Random Access Memory)203にロードして実行する。これにより、上述した図1の学習装置1または画像認識装置2の機能が、ソフトウェアにより実現されている。さらに、CPU201は、通信部209を制御して、外部と通信し、データの授受を実行する。
プログラムが記録されている記録媒体は、図20に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク221(フレキシブルディスクを含む)、光ディスク222(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク223(MD(Mini-Disc)を含む)、もしくは半導体メモリ224などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や、記憶部208に含まれるハードディスクなどで構成される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
1 学習装置, 2 画像認識装置, 3 認識用特徴量記憶部, 4 認識器記憶部, 11 特徴点抽出部, 12 特徴量抽出部, 13 特徴点ペアリング部, 14 学習用モデル特徴量記憶部, 15 特徴点抽出部, 16 特徴量抽出部, 17 特徴点ペアリング部, 18 特徴点選択部, 19 認識器生成部, 31 特徴点抽出部, 32 特徴量抽出部, 33 特徴点ペアリング部, 34 特徴量選択部, 35 認識計算部, 36 認識結果出力部