以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態の特徴点選択システムの例を示すブロック図である。第1の実施形態の特徴点選択システムは、特徴点抽出学習・評価データ生成手段41(以下、特抽学習・評価データ生成手段41と記す。)と、特徴点抽出器学習手段45と、特徴点抽出器評価手段46と、特徴点選択手段47とを備える。また、特抽学習・評価データ生成手段41は、学習データ生成手段42と、学習パターン生成手段43と、評価データ生成手段44とを有する。本実施形態の特徴点選択システムは、各種認識タスクで利用される3D形状モデル(3次元形状モデル)の複数の特徴点が指定されると、その中から、認識タスクにおける認識誤差が少ない特徴点を選択する。また、特徴点選択システムには、選択の候補となる複数の特徴点の他に、認識タスクで認識対象画像から特徴点を含むようにして切り出される局所領域(テンプレートと称されることもある)の大きさも指定される。ここでは、テンプレートが正方形である場合を例にして説明するが、テンプレートが長方形である場合には、テンプレートのアスペクト比(テンプレートとなる長方形の縦の長さに対する横の長さの倍率)が入力されてもよい。
特抽学習・評価データ生成手段41は、3D形状モデルと、その3D形状モデル上の複数の特徴点を指定する情報と、認識タスクで用いられるテンプレートの大きさとが入力される。また、テンプレートの大きさをテンプレートサイズと記す。3D形状モデルにはテクスチャが貼り付けられているものとする。入力された情報で指定される特徴点は、選択される特徴点の候補である。特抽学習・評価データ生成手段41は、入力された3D形状モデルの姿勢(向き)や、3D形状モデルに対する照明の位置等を様々に変更した画像(学習データおよび評価データ)をCG(Computer Graphics )画像として生成する。
ここで、特徴点抽出器と、学習データおよび評価データとについて説明する。特徴点抽出器は、あるパターンが入力されたときにそのパターンが特徴点であるか否かを判定する。また、特徴点抽出器は、そのような判定を行うための内部データを予め学習しておく。特徴点抽出器には様々なパターン識別法や特徴点抽出演算子を利用可能である。一例として、非特許文献2に記載のSIFT特徴量を用いることができる。この場合、学習データの特徴点に該当する位置に対してSIFT特徴抽出演算子を適用し、SIFT特徴量を抽出する。そして、そのSIFT特徴量を内部データとして記憶しておく。認識タスク等において、ある認識対象となる画像が入力されると、その画像からSIFT特徴量を抽出し、内部データと比較することにより、そのテンプレートが特徴点に該当するか否かを判定する。また、別の方法として、非特許文献3に記載のGLVQのようなパターン識別法を用いることもできる。本実施形態では、これらの方法について詳しく説明する。学習においては、特徴点に該当するテンプレートと、特徴点に該当しないテンプレートをそれぞれ複数入力され、そのテンプレートから内部データを生成する。そして、特徴点抽出器は、認識タスク等において、あるテンプレートが入力されると、内部データと比較することにより、そのテンプレートが特徴点に該当するか否かを判定する。特徴点抽出器が内部データを学習するためのテンプレートを切り出すために用いられる画像を学習データと記す。また、内部データ学習後の特徴点抽出器が入力されたテンプレートに対する判定を適切に行うか否かを評価するために用意される画像を評価データと記す。
特抽学習・評価データ生成手段41の学習データ生成手段42は、上記の学習データを生成する。また、特抽学習・評価データ生成手段41の評価データ生成手段44は、上記の評価データを生成する。学習データ生成手段42および評価データ生成手段44は、いずれも、3D形状モデルの姿勢(向き)や、3D形状モデルに対する照明の位置等を様々に変更した画像をCG(Computer Graphics )画像として生成する。ただし、3D形状モデルの姿勢(向き)や3D形状モデルに対する照明の位置等の条件は、学習データ生成時と評価データ生成時で異なるようにする。学習データ生成手段42および評価データ生成手段44は、画像生成時の条件が異なる点を除き、同様の処理を行ってそれぞれCG画像(学習データ、評価データ)を生成する。学習データや評価データは複数生成されてもよい。
また、学習データ生成手段42は、入力された情報によって指定される特徴点に対応する特徴点を学習データ中から特定する。すなわち、指定される特徴点に対応する学習データ上の特徴点の位置を計算する。同様に、評価データ生成手段44は、入力された情報によって指定される特徴点に対応する特徴点を評価データ中から特定する。
特抽学習・評価データ生成手段41の学習パターン生成手段43は、学習データから、特徴点に該当するテンプレートと、特徴点に該当しないテンプレートを複数切り出す。特徴点に該当するテンプレートとして、学習データにおける特徴点やその近辺の点を中心とし、テンプレートサイズによって決まるテンプレートを学習データから複数切り出せばよい。また、特徴点に該当しないテンプレートとして、その特徴点の周囲の点を中心とするテンプレートであって特徴点を含まないテンプレートを学習データから複数切り出せばよい。このとき、学習データ中の特徴点として、学習データ生成手段42が特定した特徴点を用いればよい。
特抽点抽出器学習手段45は、特徴点抽出器の内部データを学習する。すなわち、与えられるパターンが特徴点であるか否かを判定するための特徴点抽出器の内部データを生成する。特抽点抽出器学習手段45は、特徴点に該当する複数のテンプレートおよび特徴点に該当しない複数のテンプレートを参照して内部データを学習する。
特徴点抽出器評価手段46は、評価データ生成手段44に生成された評価データからテンプレートを順次切り出し、テンプレートと内部データとを比較して、そのテンプレートが特徴点に該当するか否かを判定する。この判定により、評価データにおけるどの部分が特徴点であるかを判定する。また、評価データ生成手段44は、入力された情報によって指定される特徴点に対応する評価データ中の特徴点を特定している。この特徴点の位置は、特徴点の正しい位置を意味する。特徴点抽出器評価手段46は、評価データから切り出したテンプレートが特徴点であるか否かを判定することによって求めた特徴点の位置が、正しい特徴点の位置からどの程度離れているかを算出する。評価データから切り出したテンプレートに基づいて求めた特徴点の位置と正しい特徴点の位置との差を、特徴点抽出誤差と記す。
学習パターン生成手段43が内部データを学習する処理、および、特徴点抽出器評価手段46がテンプレートと内部データとを比較してテンプレートが特徴点に該当するか否かを判定する処理は、特徴点抽出器としての動作である。特徴点抽出器学習手段45および特徴点抽出器評価手段46は、例えば、認識タスクにおいて用いられる特徴点抽出器として動作するコンピュータのCPUによって実現される。
特徴点選択手段47は、入力された情報において指定された複数の特徴点の中から、特徴点抽出誤差が少ない順に、所定個の特徴点を選択する。
特抽学習・評価データ生成手段41(学習データ生成手段42、学習パターン生成手段43、評価データ生成手段44)、特徴点抽出器学習手段45、特徴点抽出器評価手段46、および特徴点選択手段47は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、特徴点選択システムの記憶装置(図示せず)から特徴点選択プログラムを読み込み、そのプログラムに従って、上記の各手段として動作してもよい。あるいは、各手段がそれぞれ別々の専用回路によって実現されていてもよい。
次に、動作について説明する。図2は、第1の実施形態の処理経過の例を示すフローチャートである。特抽学習・評価データ生成手段41に3D形状モデルと、その3D形状モデル上の複数の特徴点を指定する情報と、テンプレートサイズが入力されると、学習データ生成手段42は、その3D形状モデルの姿勢や、3D形状モデルに対する照明の位置を様々に変化させた複数の画像をCG画像として生成することにより、複数の学習データを生成する(ステップS11)。ステップS11で生成する複数の画像が学習データ群である。また、ステップS11で入力される3D形状モデルは、一つの個体の3D形状モデルあっても、複数の個体の3D形状モデルであってもよい。例えば、一人の人物の顔の3D形状モデルが入力されても、複数の人物の顔の3D形状モデルが入力されてもよい。また、ここでは、顔の3D形状モデルを例示したが、3D形状モデルは顔以外のモデルであってもよい。なお、入力された情報によって指定される特徴点の数は、例えば10000個以上等のように多数であってもよい。また、このような特徴点として、例えば、エッジが強く現れている点等を指定すればよい。
次に、学習データ生成手段42は、入力された情報によって指定される各特徴点に対応する学習データ中の各特徴点を特定する(ステップS12)。続いて、学習パターン生成手段43が、学習データ群から、特徴点に該当するテンプレートおよび特徴点に該当しないテンプレートをそれぞれ複数切り出す(ステップS13)。学習パターン生成手段43は、ステップS12で特定された各特徴点およびその近辺の点を中心とするテンプレートを、特徴点に該当するテンプレートとして切り出す。また、ステップS12で特定された各特徴点の周囲の点を中心とし特徴点を含まないテンプレートを、特徴点に該当しないテンプレートとして切り出す。いずれのテンプレートの大きさも、テンプレートサイズによって指定された大きさである。
次に、特徴点抽出器学習手段45は、ステップS13で切り出された「特徴点に該当する複数のテンプレート」および「特著点に該当しない複数のテンプレート」を参照して、特徴点毎に、特徴点抽出器の内部データを学習する(ステップS14)。
また、評価データ生成手段44は、特抽学習・評価データ生成手段41に入力された3D形状モデルの姿勢や、3D形状モデルに対する照明の位置を様々に変化させた複数の画像をCG画像として生成することにより、複数の評価データを生成する(ステップS15)。ステップS14で生成する複数の画像が評価データ群である。ステップS15では、3D形状モデルの姿勢や、照明位置の条件を学習データ生成時(ステップS11)とは変えて評価データを生成する。また、評価データ生成手段44は、ステップS11で入力された情報によって指定される3D形状モデル上の各特徴点に対応する評価データ内の特徴点を特定する。この特徴点位置を正しい特徴点位置と記す。
評価データ群生成後、特徴点抽出器評価手段46は、特徴点抽出誤差を算出する(ステップS16)。具体的には、評価データ群からテンプレートサイズのテンプレートを順次切り出す。そして、特徴点抽出器評価手段46は、評価データから切り出した各テンプレートとステップS14で学習した内部データとを比較し、各点プレートが特徴点に該当するか否かを判定する。そして、その判定結果により、評価データにおけるどの位置が特徴点であるかを判定する。この判定によって得た特徴点位置を、評価結果による特徴点位置と記す。特徴点抽出器評価手段46は、特徴点毎に、正しい特徴点位置と、評価結果による特徴点位置との距離を特徴点抽出誤差として計算する。
次に、特徴点選択手段47は、ステップS11で入力された情報において指定された複数の特徴点の中から、特徴点抽出誤差が少ない順に、所定個の特徴点を選択する(ステップS17)。特徴点選択手段47は、選択した特徴点を、認識タスクに適した特徴点として出力する。選択する特徴点の数は、予め所望の数を定めておけばよい。
特徴点抽出器評価手段46および特徴点選択手段47は、入力された情報において指定された複数の特徴点群の中から認識タスクに適した特徴点群を選択する選択手段であるということができる。
本実施形態によれば、3D形状モデルから生成した学習データから切り出したテンプレートに基づいて、3D形状モデル上の指定された各特徴点についての内部データ(特徴点抽出器の内部データ)を学習する。そして、3D形状モデルから生成した評価データを用いて、その内部データによる特徴点判定を行い、特徴点の位置(評価結果による特徴点位置)を判定する。そして、実際に指定された特徴点に応じた評価データ内の特徴点位置(正しい特徴点位置)との誤差を計算することで、特徴点抽出誤差を計算する。特徴点抽出誤差が小さければ、内部データを用いて特徴点であるか否かを認識タスク実行時に行うときにも認識誤差が少なく、精度よく特徴点であるか否かを判定できる。よって、ステップS17で、特徴点抽出誤差が少ない順に所定個の特徴点を選択することによって、精度よく認識タスクを実行することができる特徴点を得ることができる。
また、特徴点抽出誤差が小さい特徴点を選択するので、認識タスクにおける特徴点抽出アルゴリズムにも合う適切な特徴点を選ぶことができる。
また、一般に、システム稼働後に認識対象の個体が新たに登録されるシステムにおいて、特徴点位置は全個体で共通とされていたが、本実施形態では、個体毎に適した特徴点を選択することができる。一般的なシステムでは、個体毎に特徴点抽出器の内部データを学習するためには、事前に個体毎の特徴点を決めておかなければならなかったため、認識対象となる個々の個体毎に好ましい特徴点を定めるために、事前に特徴点を定める必要が生じてしまう。すなわち、目的とする事項そのものが事前に必要となってしまう。そのため、個体毎に好ましい特徴点を選択することや、個体毎に特化した特徴点抽出器の学習は行えなかった。それに対し、本発明では、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定すれば、その3D形状モデルから学習データおよび評価データを作成し、学習データに基づいて特徴点抽出器の内部データの学習を行うことができる。そして、評価データを用いて、個々の特徴点が適切であるか否かを特徴点抽出誤差に基づいて評価し、一つの個体に関して、適切な特徴点を選択することができる。また、その特徴点の内部データは学習できている。よって、本発明によれば、個体毎に、適切な特徴点を選択したり、特徴点抽出器の学習を行ったりすることができる。例えば、ある人物に固有の黒子を特徴点とすれば、その人物の姿勢推定や個体識別(顔識別)の精度を高められると考えられるが、本発明によればそのような個体固有の特徴点を、好ましい特徴点として選択することができる。
また、複数の個体の3D形状モデルやその3D形状モデル上における複数の特徴点を指定することによって、個体に特化した特徴点ではなく、複数の個体において好ましい特徴点を選択したり、特徴点抽出器の学習を行ったりすることもできる。この場合、例えば、各個体間で類似しているものとして対応付けられている特徴点を指定して、本発明の動作を実行させればよい。
また、個体毎に特徴点を選択する処理を行い、個体毎の特徴点のうち、共通の特徴点(個体間で類似する特徴点)を選択してもよい。また、各個体で類似する特徴点を指定しておき、その特徴点により特徴点抽出器の内部データを学習させ、評価データを用いた評価は、個体毎に個別に行うこととしてもよい。この点は、後述の第2の実施形態、第3の実施形態でも同様である。
なお、認識タスクの例として、姿勢推定や個体識別を例示したが、認識タスクはこれらの処理に限定されない。例えば、顔画像に対する表情認識処理や年齢推定処理であってもよい。
実施形態2.
図3は、本発明の第2の実施形態の特徴点選択システムの例を示すブロック図である。第1の実施形態と同様の構成要素は、図1と同一の符号を付し、説明を省略する。第2の実施形態の特徴点選択システムは、特徴点抽出学習・評価データ生成手段41と、特徴点抽出器学習手段45と、特徴点セット選択手段51と、認識タスク実行手段52と、特徴点選択手段53とを備える。特徴点抽出学習・評価データ生成手段41は、学習データ生成手段42と、学習パターン生成手段43と、評価データ生成手段44とを有する。
特徴点セット選択手段51は、入力された情報で指定される3D形状モデル上の複数の特徴点の中から、所定数の特徴点を選択する。この所定数は、ユーザの所望の特徴点の数として予め定めておく。入力された情報で指定された複数の特徴点の中から選択される複数の特徴点を特徴点セットと記す。特徴点セット選択手段51は、特徴点セットを一組だけでなく、選び得る各通り選択する。
認識タスク実行手段52は、特徴点セット選択手段51が定めた特徴点セット毎に、その特徴点セットを特徴点とし、評価データ生成手段44が生成した評価データを用いて、認識タスクを実行する。認識タスクの種類は特に限定されず、例えば、姿勢推定を行っても、あるいは、顔識別等の個体識別を行ってもよい。あるいは、表情推定や年齢推定等を行ってもよい。これらの認識タスクを行う際には、認識タスク実行手段52は、評価データから切り出したテンプレートが、特徴点セットに属する特徴点に該当するか否かについても判定する。このとき、認識タスク実行手段52は、特徴点抽出器学習手段45が学習した特徴点抽出器の内部データと、テンプレートとを比較して判定を行う。
認識タスク実行手段52は、例えば、認識タスクを実行するコンピュータのCPUによって実現される。また、学習パターン生成手段43が内部データを学習する処理、および、認識タスク実行手段52がテンプレートと内部データとを比較してテンプレートが特徴点に該当するか否かを判定する処理は、特徴点抽出器としての動作である。特徴点抽出器学習手段45および認識タスク実行手段52は、例えば、認識タスクにおいて用いられる特徴点抽出器として動作するコンピュータのCPUによって実現される。
また、認識タスク実行手段52は、特徴点セットを用いて認識タスクを行う毎に、その認識タスクの認識結果で生じた認識誤差を求める処理も行う。認識誤差は、認識タスクで得られた認識結果と、正解との差である。例えば、認識タスクが姿勢推定であるとすると、認識タスク実行手段52は、評価データに対して特徴点セットを用いて姿勢推定を行った結果得た向きと正解となる姿勢の差を認識誤差として計算すればよい。また、認識タスクとして顔識別を行う場合、複数の人物について3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定する情報を入力しておき、各人物の評価データを作成しておく。そして、その評価データに対して特徴点セットを用いて顔認識を行った結果、顔認識に失敗した人物の割合を認識誤差として計算してもよい。
特徴点選択手段53は、特徴点セット選択手段51が定めた各特徴点セットの中から、認識誤差が最小となる特徴点セットを選択する。
特抽学習・評価データ生成手段41(学習データ生成手段42、学習パターン生成手段43、評価データ生成手段44)、特徴点抽出器学習手段45、特徴点セット選択手段51、認識タスク実行手段52、特徴点選択手段53は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、特徴点選択システムの記憶装置(図示せず)から特徴点選択プログラムを読み込み、そのプログラムに従って、上記の各手段として動作してもよい。あるいは、各手段がそれぞれ別々の専用回路によって実現されていてもよい。
図4は、第2の実施形態の処理経過の例を示すフローチャートである。第1の実施形態と同様の処理については、図2と同一の符号を付し説明を省略する。ステップS11〜S15の動作は第1の実施形態と同様である。ステップS15までの処理を行った後、以下の処理を行う。まず、特徴点セット選択手段51が、ステップS1で入力された情報で指定された複数の特徴点の中から所定個の特徴点を特徴点セットとして選択する(ステップS21)。
次に、認識タスク実行手段52が、その特徴点セットに属する各特徴点を用いて、ステップS15で生成された評価データに対して認識タスクを実行する(ステップS22)。認識タスクの種類は、本発明による特徴点選択が確定した後に、その特徴点を用いて実行する認識タスクであればよい。例えば、姿勢推定、個体識別、表情推定、年齢推定等が挙げられるが、他の認識タスクを行ってもよい。認識タスクの処理過程において、評価データから得られるテンプレートと、ステップS14で学習された特徴点抽出器の内部データとにより、そのテンプレートが特徴点に該当するか否かを判定する。認識タスクの処理の例については後述する。
また、認識タスク実行手段52は、認識タスクを実行するとともに、ステップS21で選択された特徴点セットについて認識誤差も計算する。
続いて、特徴点セット選択手段51は、入力された情報で指定された複数の特徴点から特徴点セットとして選択されていない特徴点の組み合わせがあるか否かを判定する(ステップS23)。未選択の特徴点セットがあれば(ステップS23におけるYes)、ステップS21〜S23の処理を繰り返す。このときステップS21では、未選択の特徴点セットを選択する。
特徴点セットとして選択されていない特徴点の組み合わせがなければ(ステップS23におけるNo)、特徴点選択手段53は、認識誤差が最小となる特徴点セットを選択し、出力する(ステップS24)。ステップS24で選択された特徴点セット(所定個の特徴点)の認識誤差が最小となっているので、その特徴点セットが認識タスクの認識アルゴリズムに適切な特徴点群である。
特徴点セット選択手段51、認識タスク実行手段52および特徴点選択手段53は、入力された情報において指定された複数の特徴点群の中から認識タスクに適した特徴点群を選択する選択手段であるということができる。
次に、ステップS22において、認識タスク実行手段52が実行する認識タスクの実行例を説明する。ここでは、認識タスクとして姿勢推定を行う場合を例にして説明する。姿勢推定は、「画像から抽出された特徴点の位置」と「3D形状モデル上の特徴点から計算される、ある姿勢における画像上の特徴点の位置」との間の誤差(再投影誤差)が最小となるとなるような姿勢を計算する処理である。再投影誤差をεaとすると、再投影誤差εaは、以下に示す式(1)で表される。
式(1)において、xiは特徴点抽出器の学習済みの内部データを用いて画像(評価データ)から抽出された特徴点の位置である。また、Xiはその特徴点に対応する3D形状モデル上の特徴点の位置である。また、透視カメラモデルPpを以下の式(2)のように定義すると、式(1)におけるp1,p2,p3は、Pp=[p1 p2 p3]Tとなる値である。p1,p2,p3から姿勢を計算することができるので、εaが最小となるようなp1,p2,p3を求めることが姿勢推定であるということができる。
ただし、Aは、カメラの内部パラメータ行列であり、カメラの内部パラメータ行列として現実的な値に定めておけばよい。また、特徴点確定後に実際に画像を撮影して認識タスクを行いときに、その画像を撮影するカメラの内部パラメータ行列をAとして用いてもよい。Mは、以下の式(3)で表される対象物体の姿勢パラメータ行列である。式(3)において、Rは対象の回転を表しており、Tは物体の3次元位置を表している。
また、アフィンカメラモデルPaを以下の式(4)のように定義する。
このアフィン変換モデルPaにより、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
式(5)において、チルダを付したxは、xの斉次表現である。式(5)ではベクトルの第3要素が常に一定であるため、Paの上2行を持つ部分行列Pa2を用いて、以下に示す式(6)のように表すことができる。
x=Pa2X 式(6)
Pa2は8の要素を持つため、4点以上の特徴点が与えられれば、Pa2を最小二乗法で計算できる。また、求められたPa2から姿勢パラメータMを計算することができる。認識タスク実行手段52は、X(3D形状モデル上の特徴点の位置)およびx(評価データから抽出される特徴点の位置)および式(6)を用いて行列Pa2を計算する。そして、そのPa2および式(4)とにより、姿勢パラメータ行列Mにおける回転Rおよび物体の3次元位置T)を求め、これを初期値とする。
また、式(2)に示す透視カメラモデルPpを用いて、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
ここで、λは定数倍の不定性を表すスカラ量である。
認識タスク実行手段52は、式(1)で表される再投影誤差εaを繰り返し法により最適化することで、姿勢推定を行う。j回目の反復結果により得られる姿勢パラメータを用いて計算されるカメラ行列をPPjとする。このとき、各姿勢パラメータの更新値を、Δφ,Δθ,Δψ,Δtx,Δty,Δtzを用いて、以下の式(8)が成立する。認識タスク実行手段52は、式(8)によりΔφ,Δθ,Δψ,Δtx,Δty,Δtzを計算する。
認識タスク実行手段52は、3組以上の対応点組を用い、最小二乗法を用いて更新パラメータを求め、その更新パラメータを用いて、以下の式(9)によりカメラ行列を更新する。
式(9)において、Pは各パラメータよりカメラ行列を計算する関数である。前述の初期値から更新パラメータが十分に小さくなるまで、認識タスク実行手段52は、式(8)、式(9)の計算を繰り返すことにより、再投影誤差εaを最小にするような姿勢を表す投影行列Pp(換言すればp1,p2,p3)を求めればよい。このεaが認識誤差であり、ステップS24において特徴点選択手段47はεaを基準として、εaが最小となる特徴点セットを選択する。ただし、ステップS24における選択基準はεaに限定されず、認識タスク実行手段52は認識誤差としてεa以外の値を計算してもよい。例えば、認識タスク実行手段52は、認識誤差として、以下の式(10)のε1を計算してもよい。
式(10)においてハット記号を付したXは、Xの真値であり、R,Tは姿勢推定により得られた測定結果である。特徴点選択手段47はステップS25でε1が最小となる特徴点セットを選択してもよい。また、特徴点iに対する各項の積算を行う際に、特徴点iの特徴点抽出誤差を利用し、誤差の大きい特徴点の重みを小さくすることによって、認識性能を向上させることもできる。この場合、各項の重みとして、特徴点抽出誤差の分散の逆数を用いてもよい。このように特徴点抽出誤差を利用する場合には、特徴点選択システムは、第1の実施形態における特徴点抽出器評価手段46(図6において図示せず。特徴点誤差計算手段に相当。)を備え、第1の実施形態と同様に、特徴点抽出誤差を算出すればよい。これにより、認識タスクにおける特徴点抽出アルゴリズムにも合う適切な特徴点を選ぶことができる。
本実施形態によれば、特徴点セット毎に実際に認識タスクを実行し、その結果得られる認識結果と正解との差(認識誤差)が最小となる特徴点セットを選ぶ。よって、実際に特徴点を用いて実行する認識タスクの認識アルゴリズムに適切な複数の特徴点を、指定された特徴点の中から選ぶことができる。
また、第1の実施形態と同様に、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定することによって、特定の個体にとって適切な特徴点を選択したり、特徴点抽出器の内部データを生成したりすることができる。
次に、第2の実施形態の変形例について説明する。実施形態2では、指定された特徴点の数がN個であり、一つの特徴点セットに属する特徴点の数がm個であるとすると、認識タスクの実行(ステップS22)をNCm回行うこととなる。最終的にステップS24で選択する適切な特徴点セットの精度を高めるためには、処理の開始時において指定する特徴点の数Nを大きくする必要があるが、認識タスクの実行時間が長くなってしまう。
そこで、認識タスクを含むステップS21〜S23のループ処理の実行時間が所望の時間になるようなループ処理の繰り返し数(Pとする)を定めておき、ステップS21〜S23のループ処理をP回実行した後に、特徴点選択手段53がステップS24を実行してもよい。この場合、特徴点セットはP回選択されるので、特徴点選択手段53はそのP個の特徴点セットの中から認識誤差が最小の特徴点セットを選べばよい。
また、上記のループ処理繰り返し回数Pを以下のように決定してもよい。Pの値に応じた認識タスクの総実行時間と、認識誤差の関係は、図5のようになる。すなわち、Pの値を増やすと認識タスクの総実行時間が増えるが、実行時間の増加につれて認識誤差は減少し、ある程度まで減少すると認識誤差は収束する。従って、認識誤差が収束するときにおけるPを定めておくことにより、処理時間をできるだけ短くしつつ、できるだけ認識誤差を少なくすることができる。このPは、予め想定して決定してもよい。あるいは、特徴点選択システムが繰り返し数決定手段(図示せず)を備えていてもよい。この場合、特徴点選択システムがPを変化させてそれぞれのPについて図4のフローチャートを実行し、繰り返し数決定手段(図示せず)が、認識誤差が収束するときのPを決定する。その後、特徴点を選択する処理を行うときにはステップS21〜S23のループ処理を決定された回数だけ実行すればよい。
また、特徴点セット選択手段51は、予め定められた特徴点が固定的に特徴点セットの中に含まれるようにして、特徴点セットを選択してもよい。すなわち、一つの特徴点セットに属する特徴点の数をm個とし、予め固定的に特徴点セットに含められると定められた特徴点の数をm−Z個とすると、特徴点セット選択手段51は、ステップS21において残りのZ個を、入力された情報で指定された複数の特徴点の中から選択し、m個の特徴点を含む特徴点セットを定めればよい。ただし、m>Zである。特徴点セットに固定的に含まれる特徴点は、予めユーザが適切な特徴点セットに含まれると予測されるm−Z個の特徴点を予測し、そのm−Z個を人手で事前に設定しておけばよい。この設定態様は特に限定されない。このように、m個の特徴点のうちm−Z個を固定的に定め、残りのZ個をステップS21で選択し、ステップS21〜S23のループ処理をP回繰り返してもよい。あるいは、固定的でないZ個の特徴点の組が全て選択されるまでステップS21〜S23の処理を繰り返してもよい。
実施形態3.
第2の実施形態では、所定数の特徴点を含む特徴点セット毎に認識誤差を計算し、認識誤差が最小となる特徴点セットを選択するが、第3の実施形態では、特徴点セットに含める特徴点の数を削減しながら(あるいは、増加させながら)、好ましい特徴点セットを選択する。まず、特徴点セットに含める特徴点の数を削減する場合を例にして説明する。図6は、本発明の第3の実施形態の特徴点選択システムの例を示すブロック図である。第1または第2の実施形態と同様の構成要素は、図1、図3と同一の符号を付し、説明を省略する。第3の実施形態の特徴点選択システムは、特徴点抽出学習・評価データ生成手段41と、特徴点抽出器学習手段45と、特徴点セット選択手段61と、認識タスク実行手段62と、特徴点選択手段63とを備える。特徴点抽出学習・評価データ生成手段41は、学習データ生成手段42と、学習パターン生成手段43と、評価データ生成手段44とを有する。
特徴点セット選択手段61は、特徴点セットに含める特徴点の数を削減しながら、特徴点セットを選択する。指定された特徴点の数Nとし、特徴点セットに含める特徴点の数をq個ずつ段階的に削減するとする。特徴点セット選択手段61は、N−q個の特徴点を含む特徴点セットを全通り選択する。この特徴点セット毎に認識タスクが実行され、さらに特徴点の数を削減すると判定した場合、特徴点セット選択手段61は、特徴点セットに属する特徴点の数をqだけ削減して、その数の特徴点を含む特徴点セットを全通り選択する。
認識タスク実行手段62は、ある数の特徴点を含む特徴点セットが特徴点セット選択手段61によって選択されると、その特徴点セット毎に、その特徴点セットを特徴点とし、評価データ生成手段44が生成した評価データを用いて、認識タスクを実行する。例えば、N−q個の特徴点を含む特徴点セットが複数選択されたならば、認識タスク実行手段62は、そのそれぞれの特徴点セット毎に、認識タスクを実行する。また、認識タスク実行手段62は、一つの特徴点セットについて認識タスクを実行した後、その認識タスクの認識結果で生じる認識誤差を求める。認識タスクの実行処理や認識誤差の計算は、第2の実施形態と同様である。
特徴点選択手段63は、特徴点セットに含める特徴点の数の削減を停止すると判定された場合、その時点での特徴点の数からなる特徴点セットのうち、認識誤差が最小の特徴点セットを選択する。
特抽学習・評価データ生成手段41(学習データ生成手段42、学習パターン生成手段43、評価データ生成手段44)、特徴点抽出器学習手段45、特徴点セット選択手段61、認識タスク実行手段62、特徴点選択手段63は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、特徴点選択システムの記憶装置(図示せず)から特徴点選択プログラムを読み込み、そのプログラムに従って、上記の各手段として動作してもよい。あるいは、各手段がそれぞれ別々の専用回路によって実現されていてもよい。
図7は、第3の実施形態の処理経過の例を示すフローチャートである。第1および第2の実施形態と同様の処理については、図2、図4と同一の符号を付し説明を省略する。ステップS11〜S15の動作は第1および第2の実施形態と同様である。ステップS15までの処理を行った後、以下の処理を行う。
特徴点セット選択手段61は、特徴点セットに含める特徴点の数を定める(ステップS31)。指定された特徴点の数をNとし、特徴点セットに含める特徴点の数をq個ずつ段階的に削減するとする。最初にステップS31に移行したとき、特徴点セット選択手段61は、特徴点セットに含める特徴点の数をN−q個とする。なお、1≦q<Nである。ステップS31で定めた特徴点の数をm個とする。ステップS31の後、特徴点セット選択手段61は、ステップS31で定めた数(m個)の特徴点を含む特徴点セットを選択する(ステップS32)。m個の特徴点を含む特徴点セットは複数あるが、特徴点セット選択手段61は、各特徴点セットをそれぞれ選択する。
次に、認識タスク実行手段62は、ステップS32で選択された特徴点セット毎に、その特徴点セットに属する各特徴点を用いて、ステップS15で生成された評価データに対して認識タスクを実行する(ステップS33)。認識タスク実行手段62は、認識タスクを実行するとともに認識誤差も計算する。認識タスクの実行処理および認識誤差計算は、第2の実施形態と同様である。
次に、特徴点セット選択手段61は、特徴点セットに含める特徴点の数を削減するか否かを判定する(ステップS34)。特徴点セット選択手段61は、直前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値の、その前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値からの増加量を計算し、その増加量が所定の閾値以上になったときに特徴点の数の削減を停止すると判定する。一方、その増加量が所定の閾値未満であれば、特徴点の数を削減すると判定する。また、その増加量が所定の閾値以上であっても、認識誤差が大きくならない限りは、特徴点の数の削減を続行してもよい。
また、ステップS34の判定には別の方法を用いることもできる。例えば、許容できる認識誤差に対して閾値を定めておき、特徴点セット選択手段61は、直前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値がその閾値以上になった場合に特徴点の数の削減を停止すると判定し、認識誤差うちの最小値がその閾値未満であれば特徴点の数を削減すると判定してもよい。
特徴点を削減すると判定した場合(ステップS34におけるYes)、ステップS31〜S34の処理を繰り返す。このとき、ステップS31では、前回のステップS31で定めた特徴点の数(m個)からqを減算した数を、特徴点セットに含める特徴点の数と定める。すなわち、m−qを新たなmとするように特徴点の数mを更新する。以降の動作は同様である。
また、特徴点の削減を停止すると判定した場合(ステップS34におけるNo)、特徴点選択手段63は、その時点における特徴点の数(m個)の特徴点からなる特徴点セットのうち、認識誤差が最小となっている特徴点セットを選択する(ステップS35)。
図8は、特徴点セットに含める特徴点の数と認識誤差との関係を示し、横軸が特徴点セットに含める特徴点の数を示し、縦軸が認識誤差を示している。特徴点セットに含める特徴点の数(横軸)は、認識タスクで用いる特徴点の数ということもできる。図8に示すように、特徴点の数が多いほど認識誤差は少ないが、ある程度まで特徴点の数が多くなると、認識誤差は収束する。上記のように、特徴点の数を削減していき、ステップS34で、その時点でのmにおける認識誤差の最小値と、その前のmにおける認識誤差との差が閾値以上になったならば、ステップS31〜S34のループ処理を停止する。このことは、図8に示す矢印Aのように、mを減少させて認識誤差の上昇の程度を判定し、上昇量が閾値以上に大きくなる時点におけるmを特定しているということである。従って、ステップS31〜S35では、認識誤差および特徴点の数がそれぞれできるだけ小さくなるようなmを特定し、m個の特徴点からなる特徴点セットのうち、認識誤差が最小となっている特徴点セットを選択していることになる。よって、ステップS35で選択された特徴点セットが、認識タスクにおける認識アルゴリズムに適した特徴点群であり、できるだけ認識処理量を少なくすることができる特徴点群ということができる。
また、最終的に得ようとする特徴点の数が予め定められているのであれば、ステップS34において、特徴点の数mが、予め定められた特徴点の数まで減少したか否かによって、特徴点の数をさらに削減するか否かを判定してもよい。すなわち、特徴点の数mが予め定められた数まで減少しているならば、特徴点の数の削減を停止させると判定し、予め定められた数まで減少していなければ、さらに特徴点の数を削減すると判定してもよい。
本実施形態によれば、特徴点の数を段階的に削減しながら、特徴点セットを選択し、特徴点の数の削減を停止する時点において選択していた複数の特徴点セットの中から認識誤差が最小となる特徴点セットを選択する。従って、実際に特徴点を用いて実行する認識タスクの認識アルゴリズムに適切な複数の特徴点を、指定された特徴点の中から選ぶことができる。
また、第1の実施形態や第2の実施形態と同様に、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定することによって、特定の個体にとって適切な特徴点を選択したり、特徴点抽出器の内部データを生成したりすることができる。
次に、第3の実施形態の変形例について説明する。上記の第3の実施形態では、特徴点セットに含める特徴点の数mを段階的に削減する場合を示したが、mを段階的に増加させてもよい。以下、mを増加させる場合について説明する。
この場合、特徴点セット選択手段61は、特徴点セットに含める特徴点の数mを初期値(m0とする。)からq個ずつ段階的に増加させながら、m個の特徴点を含む特徴点セットを全通り選択する。この特徴点セット毎に認識タスクが実行され、さらに特徴点の数を増やすと判定した場合、特徴点セット選択手段61は、特徴点セットに属する特徴点の数をqだけ増加させて、その数の特徴点を含む特徴点セットを全通り選択する。
認識タスク実行手段62の動作は、既に説明した動作と同様である。
特徴点選択手段63は、特徴点セットに含める特徴点の数の増加を停止すると判定された場合、その時点での特徴点の数からなる特徴点セットのうち、認識誤差が最小の特徴点セットを選択する。
図7を参照してmを増加させる場合の処理経過の例を説明する。ステップS11〜S15の動作は、第1および第2の実施形態と同様である。ステップS15までの処理を行った後、以下の処理を行う。
特徴点セット選択手段61は、特徴点セットに含める特徴点の数を定める(ステップS31)。最初にステップS31に以降したとき、特徴点セット選択手段61は、特徴点セットに含める特徴点の数mを、初期値m0とすればよい。
ステップS31の後、特徴点セット選択手段61は、ステップS31で定めた数(m個)の特徴点を含む特徴点セットを選択する(ステップS32)。次に、認識タスク実行手段62は、ステップS32で選択された特徴点セット毎に、その特徴点セットに属する各特徴点を用いて評価データに対して認識タスクを実行し、併せて認識誤差も計算する(ステップS33)。ステップS32〜S33の動作は、既に説明した動作と同様である。
次に、特徴点セット選択手段61は、特徴点セットに含める特徴点の数を増加させるか否かを判定する(ステップS34)。特徴点セット選択手段61は、直前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値の、その前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値に対する減少量を計算し、その減少量が所定の閾値以下になったときに特徴点の数の増加を停止すると判定する。一方、その減少量が所定の閾値より大きければ、特徴点の数を増加させると判定する。
また、他の方法でステップS34の判定を行ってもよい。例えば、認識誤差に対する閾値を定めておき、特徴点セット選択手段61は、直前のステップS33における認識タスクとともに計算された各認識誤差のうちの最小値がその閾値以下になった場合に特徴点の数の増加を停止すると判定し、認識誤差のうちの最小値がその閾値より大きい場合には特徴点の数を増加させると判定してもよい。
特徴点を増加させると判定した場合(ステップS34におけるYes)、ステップS31〜S34の処理を繰り返す。このとき、ステップS31では、前回のステップS31で定めた特徴点の数(m個)にqを加算した数を、特徴点セットに含める特徴点の数と定める。すなわち、m+qを新たなmとするように特徴点の数mを更新する。以降の動作は同様である。
また、特徴点の増加を停止すると判定した場合(ステップS34におけるNo)、特徴点選択手段63は、その時点における特徴点の数(m個)の特徴点からなる特徴点セットのうち、認識誤差が最小となっている特徴点セットを選択する(ステップS35)。
上記のように、特徴点の数を増加させていき、ステップS34でその時点でのmにおける認識誤差の最小値と、その前のmにおける認識誤差の差が閾値以下になったならばステップS31〜S34のループ処理を停止する。このことは、図8に示す矢印Bのように、mを増加させて認識誤差の低下の程度を判定し、低下量が閾値以下まで小さくなる時点におけるmを特定しているということである。従って、ステップS31〜S35では、認識誤差および特徴点の数がそれぞれできるだけ小さくなるようなmを特定し、m個の特徴点からなる特徴点セットのうち、認識誤差が最小となっている特徴点セットを選択していることになる。よって、mを削減していく場合と同様に、ステップS35で選択された特徴点セットが、認識タスクにおける認識アルゴリズムに適した特徴点群であり、できるだけ認識処理量を少なくすることができる特徴点群ということができる。
また、最終的に得ようとする特徴点の数が予め定められているのであれば、ステップS34において、特徴点の数mが、予め定められた特徴点の数まで増加したか否かによって、特徴点の数をさらに増加させるか否かを判定してもよい。すなわち、特徴点の数mが予め定められた数まで増加しているならば、特徴点の数の増加を停止させると判定し、予め定められた数まで増加していなければ、さらに特徴点の数を増加させると判定してもよい。
特徴点の数を段階的に増加させる場合においても、特徴点の数を段階的に削減する場合と同様の効果を得ることができる。
特徴点セット選択手段61、認識タスク実行手段62および特徴点選択手段63は、入力された情報において指定された複数の特徴点群の中から認識タスクに適した特徴点群を選択する選択手段であるということができる。
また、第3の実施形態においても、認識タスクとして姿勢推定を行う場合、第2の実施形態で説明したεaの最小化計算(式(8)および式(9)の繰り返し計算)により姿勢推定を行える。第3の実施形態では、εaの最小化計算にHessian近似法を適用し、式(8)および式(9)の繰り返し計算を行わずに、任意のq点を除いた特徴点セットにおけるεaの値を計算する。この結果、εaの最小化の計算量を少なくすることができる。第2の実施形態で説明したεaの最小化計算を第3の実施形態で用いると、認識タスク実行手段62は、現在のm個の特徴点セットからq個の特徴点を削減する際に、この最小化計算をmCq回繰り返すことになる。例えば、m=10000であり、q=1であるとすると、10000個から1つの特徴点を削減する際に10000回最小化計算を行うこととなり、q≧2のときにはさらに計算量が増える。Hessian近似法を適用することでこの計算量を削減することができる。Hessian近似法は、特徴点セットに含める特徴点の数をq個ずつ減少させる場合でも、q個ずつ増加させる場合でも適用できるが、ここでは特徴点の数をq個ずつ削減する場合を例にして説明する。
なお、Hessian近似法を適用する場合、特徴点選択システムは、第1の実施形態における特徴点抽出器評価手段46(図6において図示せず。特徴点誤差計算手段に相当。)を備え、第1の実施形態と同様に、特徴点抽出誤差を算出する。
以下、式(8)で示したΔφ,Δθ,Δψ,Δtx,Δty,Δtzをベクトルとして並べて表した姿勢パラメータをθとする。姿勢推定は、認識誤差関数εaを最小化する姿勢パラメータθを求める処理である。これは一般に非線形最適化となり、Gauss-Newton法、Levenberg-Marquard 法等の一般的な方法で最小化を行う。また、これらの手法では、εaの1次・2次微分値を計算に用いている。本変形例では、認識タスク実行手段62は、最終的にεaを最小化した時のεa,θ、および1次・2次微分値を使って、特徴点を削減した後のεaを計算し、姿勢推定を行わずにどの特徴点を削減すればよいのかを予見する。
現在選択されている特徴点の数をmとし、削減しようとしている特徴点の数をqとする。ただし、qはmに比べて小さい数であり、具体的には2,3を想定する。また、現在の特徴点セットであり、既に姿勢推定が行われεaが計算済みとなっている特徴点セットをSmとし、その特徴点セットSmからq個の特徴点を除いた特徴点のセットをSm−qとする。そして、除こうとしているq個の特徴点のセットをSqとする。認識タスク実行手段62は、m個の特徴点を含む特徴点セットSmを、m−q個の特徴点セットSm−qとq個の特徴点セットSqとに分ける。Sm−q⊂Smである。
また、現在の特徴点セットSmによる姿勢推定の認識誤差εaをコスト関数f+と表すこととする。すると、このコスト関数は式(11)のように分解する。
式(11)において、チルダを付したziは、学習済みの特徴点抽出器によって判定した特徴点iの画像上の位置である。また、zi(θ)は、姿勢がθであるときの、3D形状モデル上の特徴点iから計算される画像上での特徴点iの位置であり、姿勢θにおける特徴点iの正解位置に該当する。なお、これらの画像は評価データ生成手段44に生成された評価データである。
また、Σiは、特徴点抽出器評価手段46が計算した特徴点iの特抽点抽出誤差の分散を対角成分とする行列である。
また、式(11)は以下の式(12)のように表すことができる。
f+=f−+δf 式(12)
f+は、現在の特徴点セットSmの全特徴点の分の認識誤差(εaの値)である。f−は、q個の特徴点を取り除いた後のコスト関数であり、以下の式(13)のように表される。f−は、q点を除いた特徴点セットSmーqの分の認識誤差(εaの積算をq点を除いた特徴点についてのみ行った値)である。
δfは、取り除くq個の点に対応するコスト関数であり、以下の式(14)のように表される。δfは、除いたq点の分の認識誤差(εaの積算をq点の特徴点についてのみ行った値)である。
式(12)の各項のHessianをH+,H−,δHで表すと、以下の式(15)が得られる。Hessianは、fのθによる2次微分を表す行列である。
H+=H−+δH 式(15)
f+における姿勢の推定値が得られているとする。このとき、以下の式(16)が成立する。ただし、g+(・)=df+/dθである。
そして、以下に示す式(17)が成立する。
式(17)において、gはεaのθによる1次微分である。また、ハット記号を付したθ+は、現在のm個の特徴点を含む特徴点セットSmで姿勢推定したときの姿勢パラメータ(既に計算した姿勢パラメータ)である。ハット記号を付したθ−は、q個の特徴点を除いた特徴点セットSmーqで姿勢推定したときの姿勢パラメータであり、処理時間を削減するために計算の対象外としようとするものである。
また、ハット記号付きのf−(θ−)は、q個の特徴点を除いた特徴点セットSmーqで姿勢推定したときの認識誤差εaであり、処理時間を削減するために計算の対象外としようとするものである。
ハット記号付きのδg(θ+)は、現在のm個の特徴点を含む特徴点セットSmで姿勢推定したときの姿勢パラメータの値における、認識誤差の1次微分値であり、この値は姿勢推定処理の過程ですでに計算されているものである。
また、H− −1は、q個の特徴点を除いた特徴点セットSmーqで姿勢推定したときの姿勢パラメータの値における、認識誤差の2次微分値の逆行列である。この値は、計算しないことが好ましいが、特徴点数mがqに比べて十分に大きい場合にはH+で近似しても(すなわち置き換えても)大差ないことが知られている。そして、H+は姿勢推定処理の過程で既に計算されているものである。ハット記号を付したθ+の計算にGauss-Newton法やMarquardt 法を利用するとH+は計算済みとなる。
H−をH+に置き換えると、以下の手続により、εaを最小化しなくてもSqを取り除いた後のコスト関数値を近似的に計算することができる。認識タスク実行手段62は、以下の処理を行うことで、最小化処理を行う。
(1)認識タスク実行手段62は、SdをmCq通り変化させつつ以下の処理を実行する。
(2)認識タスク実行手段62は、以下の式(18)を計算する。
(3)次に、認識タスク実行手段62は、以下の式(19)を計算する。
(4)次に、認識タスク実行手段62は、f−(θ−)が最小となるSqを取り除いて、Sm−qを作成する。
(5)次に、認識タスク実行手段62は、実際にf−を最小化して、ハット記号付きのθ−を求める。
上記の(3)の手続では、fの最小化によってハット記号付きのθ
−を計算することなく、右辺の
の値を評価する。
このように、第3の実施形態においてHessian近似法を適用することで、認識誤差の最小値計算量を削減する効果が得られる。
以上の説明では、特徴点の数をq個ずつ削減する場合を例にしたが、特徴点の数をq個ずつ増加させていく場合には、g−(・)=df−/dθであり、式(17)の代わりに、以下に示す式(20)が成立する。この場合には、追加するSdを定めていけばよい。
以下、式(17)の導出について説明する。まず、f+(θ+)は、式(21)のように定義される。
df+/dθ=g+等のように書くこととする。g+(θ+)=0より、以下の計算が成り立つ。
上記の式において、g−(θ−)=0であり、よって、式(22)が得られる。
また、以下の計算式が成立し、式(22)を代入することで、式(23)(式(17)と同様の式)が得られる。
実施形態4.
図9は、本発明の第4の実施形態の特徴点選択システムの例を示すブロック図である。第3の実施形態と同様の構成要素については、図6と同一の符号を付し、説明を省略する。第1から第3までの各実施形態では、3D形状モデルと、その3D形状モデル上の複数の特徴点を指定する情報と、認識タスクで用いられるテンプレートの大きさとが入力される。第4の実施形態では、3D形状モデルが入力されると複数の特徴点を生成し、特抽学習・評価データ生成手段41に対してその特徴点を指定する特徴点生成手段1を備える。また、特徴点生成手段1は、認識タスクで用いられるテンプレートの大きさも指定する。特抽学習・評価データ生成手段41は、指定された複数の特徴点とテンプレートの大きさを用いて既に説明した処理を行う。
図9では、第3の実施形態の構成に特徴点生成手段1を追加した構成を図示したが、第1の実施形態や第2の実施形態の構成に特徴点生成手段1を追加した構成であってもよい。
特徴点生成手段1が生成する特徴点について説明する。本発明の発明者は、姿勢推定や個体識別等の種々の認識タスクに利用される特徴点が満たすべき要件を検討し、特徴点は以下のような3つの要件を満たすべきと考えた。
第1の要件(以下、要件Aと記す。)は、認識対象となる画像の照明や姿勢の変化に対して頑健に、特徴点の位置を画像から抽出できる特徴点抽出器を構築できることである。すなわち、特徴点と、特徴点以外の点とを特徴点抽出器に入力し、あるパターンが入力されたときに、そのパターンが特徴点であるか否かを判定するための内部データを特徴点抽出器に学習させることができることである。例えば、頬の領域はどこをとっても似たような画像パターンであるから、頬の一点を特徴点としても、その特徴点と頬の他の位置の点の画像のパターンは同様であり、特徴点抽出器による抽出が困難である。よって、頬の点は要件Aを満たしていないと言える。
第2の要件(以下、要件Bと記す。)は、異なる個体間において特徴点が対応付いていることである。例えば、目尻の点を特徴点とした場合、人物Xの目尻の点と人物Yの目尻の点とは、対応付けられる。よって、目尻の点は、要件Bを満たす。要件Bは、さらに2つの要件に分けて考えることができる。一つは、全ての3D形状モデルを同一の座標系の座標系に重ね合わせて配置したときに、3D形状モデル上の近い位置に特徴点が存在することである。この要件を要件B1と記す。もう一つは、各画像間で、画像から切り出した特徴点を含む特徴点周囲の局所領域のパターン(局所パターン)が類似していることである。この要件を要件B2と記す。上記の目尻を例に説明すると、人物X,Yの3D形状モデルを重ねた場合、目尻の点は互いに近いので要件B1を満たす。また、人物が異なっていても、人物の顔画像における目尻の点およびその周囲を切り出すと、切り出した部分同士は類似しているので、目尻の点は要件B2も満たす。
第3の要件(以下、要件Cと記す。)は、認識タスクにとって重要な点が特徴点として網羅されていて、その特徴点を用いることにより十分に高い認識性能を実現できることである。そのような条件の一例として、要件Cは、3D形状モデルの一部に特徴点が集中せずに、3D形状モデル全体から均一に抽出されていることということができる。
特徴点生成手段1は、上記の要件A,B1,B2,Cのうち少なくとも一部を満たす特徴点群を生成する。以下、特徴点生成手段1について詳細に説明する。
図10は、特徴点生成手段1の例を示すブロック図である。特徴点生成手段1は、学習画像群生成手段2と、特徴点配置手段3と、評価手段4とを備える。
学習画像群生成手段2には、3D形状モデル6が入力され、学習画像群生成手段2は、入力された3D形状モデル6からCG画像として複数の画像(2次元画像)を生成する。ここでは、学習画像群生成手段2に、人間の顔の3D形状モデルが入力される場合を例にして説明する。また、この3D形状モデルにはテクスチャが貼り付けられているものとする。学習画像群生成手段2は、入力された3D形状モデルに対して、条件を種々変化させた場合の画像を複数生成する。学習画像群生成手段2は、この条件として、照明の状態(照明の位置)や3D形状モデルの姿勢を様々に定め、それらの各条件のもとでの画像を生成する。以下、この2次元画像を学習画像と記す。また、学習画像群生成手段2には、複数の個体についてそれぞれ作成された3D形状モデルが入力される。図11では二つの3D形状モデルを示しているが、学習画像群生成手段2に入力される3D形状モデル数は2に限定されない。
図11は、学習画像群生成手段2に入力される3D形状モデルを模式的に示す説明図である。図11では3D形状モデルを模式的に2次元で表している。図11(a),(b)は、それぞれ異なる人物の顔の3D形状モデルを表している。学習画像群生成手段2は、図11(a),(b)に示すような複数の個体(複数の人物)の3D形状モデルが入力されると、それぞれの個体毎に、照明位置や姿勢を種々変化させた場合の学習画像を生成する。図12は、生成された学習画像の例を示す説明図である。図12(a)は、図11(a)に示す3D形状モデルから生成した複数の学習画像の例であり、図12(b)は、図11(b)に示す3D形状モデルから生成した複数の学習画像の例である。図12では、照明の位置を種々変化させて得た複数の画像を示しているが、3D形状モデルの姿勢を変化させてもよい。3D形状モデルに対する照明の位置を変化させることで、照明位置に応じた場所に影11が生じた学習画像を得ることができる(図12参照)。図12では、個体毎に3種類の学習画像を示しているが、学習画像群生成手段2が生成する学習画像の種類は3種類に限定されない。学習画像群生成手段2は、3D形状モデルおよび生成した学習画像群7を特徴点配置手段3および評価手段4に入力する。
特徴点配置手段3は、特徴点群の初期位置を、特徴点生成手段1に入力された3D形状モデル上において定める。学習画像は、3D形状モデルからCG画像として生成される画像であるので、3D形状モデル上の特徴点が指定されれば、その特徴点に応じた学習画像内の特徴点も定めることができる。例えば、図13に示す3D形状モデルにおける特徴点13等の特徴点群を初期位置として定めると、各学習画像においても対応する特徴点13a等をそれぞれ定めることができる。特徴点配置手段3は、3D形状モデル上の各特徴点に対応する学習画像内の各特徴点も定める。
図13(a)は、図11(b)に示す3D形状モデル上の特徴点の初期位置およびその特徴点に対応する学習画像上の特徴点の例を示す。同様に、図13(b)は、図11(b)に示す3D形状モデル上の特徴点の初期位置およびその特徴点に対応する学習画像上の特徴点の例を示す。後述するように、評価手段4は、特徴点配置手段3に指定された特徴点群が要件A〜Cをどの程度満たしているかを示す評価値を計算する。この評価値をQとする。評価値Qは、特徴点群が要件A〜Cを満たしているほど小さな値となる。特徴点配置手段3は、評価値Qを最小化するように特徴点群の位置を初期位置から移動させる。特徴点配置手段3が特徴点群を移動させて評価手段4がその特徴点群における評価値Qを計算する処理を繰り返すことで、評価値Qが最小となる特徴点群を求め、その特徴点群を最適な特徴点群8(図10参照)として指定する。
評価手段4は、各個体の3D形状モデル上の特徴点群が指定されると、その特徴点群が、要件A〜Cをどの程度満たしているかを示す評価値Qを計算する。評価手段4は、特徴点配置手段3に指定された特徴点群について、以下に示す式(24)の計算により評価値Qを求める。
以下、式(24)の右辺の第1項から第4項の計算方法について説明する。
式(24)の右辺の第1項におけるHc[P]は、個体毎の3次元形状モデル間での位置の一致性を表すエントロピーである。従って、第1項は要件B1に対応する項である。第1項の算出では、特徴点の座標を用いた計算を行う。人物数がMであるとし、着目している人物をkで表すこととする。k番目の人物の一つの3次元形状モデル上におけるi番目の特徴点をPiとしたときに、その特徴点Piの座標をxk,iと表すこととする。また、その3次元形状モデル上の特徴点の座標を並べたものをzkとすると、zkは、(xk,1 T,xk,2 T,・・・,xk,N T)Tである。Nは3次元形状モデル内の特徴点数である。座標の次元をdとすると、zkは、Nd次元ベクトルである。各特徴点Piが各人物の3次元形状モデルにおいてそれぞれ近接した位置に配置されていると、zk(k=1,2,・・・,M)のNd次元空間における分布の分散は小さくなる。{zk}の分布を正規分布で近似しその共分散をΣで表すとき、そのエントロピーは、以下に示す式(25)で計算できる。評価手段4は、式(24)の右辺第1項におけるHc[P]を以下に示す式(25)で計算すればよい。ただし、λjはΣの固有値である。
評価手段4は、計算したHc[P]にξを乗じることによって、式(24)の右辺第1項を計算する。ξは第1項の重み係数である。第1項の重みに応じてξを定めておけばよく、第1項を考慮しないのであればξ=0としてもよい。
式(24)の右辺第2項(“−”符号も含む。)の計算について説明する。この第2項は、特徴点群の分布の均一性をエントロピーで定量化した項であり、要件Cに対応する。1番目の人物からM番目の人物までについてそれぞれ−Hu[Pk]を求め、その総和を計算したものが式(24)の右辺第2項である。ここで、[Pk]は着目している人物の特徴点群であり、Hu[Pk]はそのエントロピーである。
曲面S上に分布するN個の点群{Pi}が与えられたとき、この{Pi}を、S上に定義された確率密度分布p(x)(x∈S)に従って生成された点群とみなす。このとき、点群{Pi}の分布の均一さは、p(x)のS上におけるエントロピーHu[P]=−∫Sp(x)logp(x)dxによって定義できる。ここで、{Pi}により3次元顔モデルを十分サンプリングできているとき、Hu[P]は、−(1/N)Σilogp(xi)で近似することができる。ただし、xiは特徴点Piの位置である。この式により、Hu[P]を計算するためには、p(xi)を推定する必要がある。この推定にはガウス関数G(x,σ)を窓関数としたParzen推定を採用する。このとき、以下に示す式(26)を得る。
よって、−Hu[P]を以下の式(27)のように計算することができる。
評価手段4は、M人の人物についてそれぞれ式(27)の計算で−Hu[Pk]を求め、その総和を計算し、総和にηを乗じることにより、式(24)の右辺第2項を計算すればよい。ηは第2項の重み係数である。第2項の重みに応じてηを定めておけばよく、第2項を考慮しないのであればη=0としてもよい。
式(24)の右辺第3項(“−”符号も含む。)の計算について説明する。この第3項は、局所パターンの対称性を表す項であり、局所パターンの対称性が大きいほど第3項の値は小さくなる。換言すれば、この第3項は、要件Aに対応し、特徴点群が要件Aを満たす程度が大きいほど、第3項の値は小さくなる。
この局所パターンは、学習画像内の特徴点を含む特徴点周囲の局所領域の画像である。特徴点としてエッジ、コーナーまたは極大点を含む局所パターンは、局所的に回転対称性やスケール対称性を有している。ここで対称性とは、特定の変換に対する対象の不変性のことである。例えば、左右対称とは、左右反転する変換に対する対象の不変性である。図14は対称の例を示す説明図である。図14(a)は、画素値の極大点周辺の局所パターンであり、回転変換に対して不変であることから回転対称である。図14(b)は、コーナーとエッジであり、拡大縮小に対して不変なスケール対称性を有するパターンである。
局所パターンをI(u,v)で表すことにする。局所的な座標系(u,v)の原点は局所領域の中央に設定する。ユークリッド座標系(u,v)を(対数)極座標(r,θ)へと変換する。さらに、I(u,v)が変数分離できると仮定する。ここで、以下の式(28)が成り立つ。
I(u,v)=f(r)g(θ) 式(28)
局所パターンI(u,v)が回転対称であるとき、I(u,v)はθの変化に対して不変となるため、以下の式(29)を満たす。
I(u,v)=f(r)Θ0 式(29)
ただし、Θ0は定数である。一方、I(u,v)がスケール対称であるとき、I(u,v)は動径rの変化に対して不変となるため、以下の式(30)を満たす。ここで、式(30)におけるR0は定数である。
I(u,v)=R0g(θ) 式(30)
局所パターンの極座標表現I(r,θ)の2次元フーリエ係数をCmnで表すことにすると、Cmnは、以下に示す式(31)の計算によって求めることができる。
ただし、m,nは整数であり、εは局所領域の半径である。また、ここでは、局所領域が正方形であるものとして説明する。この場合、εは、正方形の局所領域の中心から正方形の辺までの距離であり、局所領域となる内接円の半径である。また、式(31)中のjは虚数単位である。フーリエ係数Cmnのうち、C00は、I(r,θ)の局所領域内の平均値に対応していて、この値の大小は特徴点としての抽出のしやすさには関係ない。仮に局所パターンが回転対称であるならば、C0n以外は全て0になる。一方、局所パターンがスケール対称であるならば、Cm0以外は全て0になる。このため、Sallを式(32)のように定めると、局所パターンの回転対称性Srotとスケール対称性Ssclは、Sallを用いて式(33)、式(34)により計算することができる。
0≦Srot,Sscl≦1であり、Srot,Ssclは、局所パターンが対称である場合にのみ最大値1となる。評価手段4は、学習画像から局所パターンを切り出し、各位置においてSrotとSsclを計算し、3D形状モデル上の各特徴点のうち画像に写る全ての点に対して、特徴点としての抽出しやすさを表す2次元ベクトル[Srot,Sscl]Tを求める。そして、評価手段4は、このベクトルの長さにより画像からの抽出容易性を求める。この抽出容易性をlog−polar特徴量と称してもよい。抽出容易性をD(P)とすると、評価手段4は、以下に示す式(35)により、抽出容易性D(P)を計算することができる。
評価手段4は、それぞれの個体の特徴点毎に、式(35)の計算を行い、抽出容易性D(P)を求め、その総和に−αを乗じることによって、式(24)の右辺第3項を計算する。αは第3項の重み係数である。第3項の重みに応じてαを定めておけばよく、第3項を考慮しないのであればα=0としてもよい。
第3項は、3次元形状モデル上の特徴点に応じた画像内の特徴点の抽出が容易であるほど値が小さくなる項であればよい。上記の例では、そのような第3項として、画像内の特徴点における局所パターンの対称性が大きいほど小さな値として計算される項を用いる場合を例示した。
式(24)の右辺第4項(“−”符号も含む。)の計算について説明する。この第4項は、要件B2に対応する。そして、特徴点群が要件B2を満たす度合いが大きいほど、第4項の値は小さくなる。式(24)の右辺第4項におけるA(Pi)は、各人物間における特徴点Piのテンプレート(学習画像の局所領域)の輝度の統計量である。評価手段4は、各人物間で対応する特徴点のテンプレートの輝度の特徴量として、例えば、分散を計算してもよい。あるいは、人物間の輝度の平均値を計算し、その平均値と個々の人物における輝度値との差分の総和を統計量として計算してもよい。また、輝度を用いるのはあくまで一例であり、様々な特徴抽出演算子を適用して計算した特徴量の値を用いてもよい。評価手段4は、各特徴点について計算した特徴量の総和に−βを計算することで式(24)の右辺第4項を計算する。βは第4項の重み係数である。第4項の重みに応じてβを定めておけばよく、第4項を考慮しないのであればβ=0としてもよい。このように条件(本例では人物)を変えた局所パターンの類似度が大きいほど値が小さくなる項を、第4項とすればよい。この条件として、姿勢や照明位置等を用いてもよい。
また、前述のように、特徴点配置手段3は、評価値Qが小さくなるように特徴点を移動させる。特徴点配置手段3は、最急降下法によって、評価値Qを最小とする特徴点群を求める。特徴点配置手段3は、以下に示す式(36)の計算を行って、各特徴点を移動させればよい。
式(36)におけるγは移動量を調整するパラメータであり、予め定めておけばよい。また、式(36)におけるEは、各点の座標の組をz=(x1,x2,・・・,xN)により表したときに、以下に示す式(37)のように表される関数である。
E(z)のxiによる微係数は、以下の式(38)のよう表される。ただし、Σjωij=1である。
また、前述のzkに関しサンプル平均を以下の式(39)のように表す。
また、平均まわりの偏差ykを以下の式(40)のように表す。
また、ykを並べたNd×Mの行列をY=[y1y2・・・yM]で表す。このとき、Σ=(1/(M−1))YYTである。このとき、以下の式(41)が得られる。
学習画像群生成手段2、特徴点配置手段3および評価手段4は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。あるいは、学習画像群生成手段2、特徴点配置手段3および評価手段4が他の各手段(図9参照)とは別にそれぞれ専用の回路で実現されていてもよい。
次に、動作について説明する。
図15は、特徴点生成手段1の動作の例を示すフローチャートである。学習画像群生成手段2は、各人物の顔の3D形状モデルが入力されると、3D形状モデルに対する照明の位置や3D形状モデルの姿勢を種々変化させた場合の学習画像を人物毎に作成する(ステップS1)。
次に、特徴点配置手段3および評価手段4が、各特徴点の局所領域の大きさε(局所領域の内接円半径)を固定値として、特徴点の位置を定める(ステップS2)。ステップS2では、特徴点配置手段3が、各3D形状モデル上の特徴点群の初期位置を定め、その特徴点群に対する評価値を評価手段4が計算する。特徴点配置手段3は、3D形状モデル上の特徴点群の初期位置を定めるとき、その特徴点群に対応する学習画像内の特徴点群の位置も定める。特徴点の位置が指定されると、評価手段4は、式(31)におけるεを固定値として、特徴点配置手段3に指定された特徴点群の評価値Qを計算する。そして、特徴点配置手段3は、評価値Qを最小にするように、3D形状モデル上の特徴点群を移動させ、評価手段4は、その特徴点群に対する評価値Qを、εを固定値として再度計算する。この処理を、評価値Qが収束するまで行い、評価値Qが収束したときの特徴点群の位置を特定する。
次に、評価手段4は、その位置に特徴点群が存在するものとして、特徴点群の位置を固定し、局所領域の大きさεを変化させて、その特徴点群の評価値Qを再計算する。そして、評価値Qが最小となるときのεを特定する(ステップS3)。εを変化させることで、式(31)の計算で求めるCmnが変化し、その結果評価値Qもεに応じて変化する。ステップS3では、特徴点群を固定としたまま、評価手段4は、εを変化させて、評価値Qを最小とするεを求める。
図15に示すように、ステップS2,S3はループ処理である。ステップS3の後、評価手段4は、ステップS2,S3のループ処理を終了するか否かを判定する(ステップS4)。例えば、直前のステップS3でεを変化させて計算した評価値Qの最小値と、その前のステップS3でεを変化させて計算した評価値Qの最小値との差が、所定値以下となった状態(Qが収束した状態)になっていたら(ステップS4のYes)、ループ処理を終了すると判定し、そうでなければ(ステップS4のNo)、ステップS2,S3を再度繰り返すと判定してもよい。
ステップS4の後、再度ステップS2を行う場合、直前のステップS3で計算したεをεの固定値として用いればよい。また、直前のステップS2で定めた特徴点群の位置を特徴点群の初期位置としてステップS2を開始すればよい。
ステップS4においてループ処理を終了すると判定した場合、特徴点配置手段3は、直前のステップS2で定めた特徴点群と、直前のステップS3で定めたεとを特抽学習・評価データ生成手段41に指定する。すなわち、特徴点配置手段3は、特徴点の配置を定めるとともに、各特徴点の抽出に用いるべき局所パターンの大きさを、直前のステップS3で定めたεとすることを決定する。
なお、図15では、ステップS2,S3をループ処理とする場合を示したが、ステップS2,S3を繰り返さずに、ステップS2,S3を一回ずつ行った後に処理を終了してもよい。
本実施形態によれば、評価値Qを式(24)の計算によって求める。式(24)の右辺に示す第1項から第4項は、それぞれ、特徴点が満たすべき要件B1、要件C、要件A、要件B2に対応し、特徴点群がそれぞれの要件を満たす度合いが大きいほど各項は小さな値となり、評価値Qも小さな値となる。そして、特徴点配置手段3は、評価値Qを最小とするように特徴点群を移動させるので、要件A,B1,B2,Cを満たす特徴点群を生成することができる。そして、その特徴点群から特徴点を選択するので、認識タスクにおける認識アルゴリズムに合うより適切な特徴点を選択することができる。
また、式(24)の第1項から第4項に、重み付け係数が0となる項があってもよい。例えば、式(24)のξやβを0として、第2項および第3項の和を計算してもよい。また、例えば、βを0とせずに、第2項、第3項および第4項の和を計算してもよい。また、各項の重み付け係数をいずれも0とせず、第1から第4までの各項の和を計算してもよい。いずれの場合においても、重み付け係数を0としない項に対応する条件を考慮した好ましい特徴点群を生成することができる。
また、ステップS2で特徴点の位置を定めた後、特徴点を含む局所領域の大きさεを変化させて評価値Qを計算し、評価値Qを最小とするεを定める。よって、要件A,B1,B2,Cを満たすεも決定することができる。また、ステップS2,S3を繰り返すことで、より好ましい特徴点群およびεを定めることができる。
また、上記の説明では、ε(局所領域の大きさ)を固定値として特徴点の位置を定め(ステップS2)、次に、特徴点の位置を固定としてεの大きさを定める(ステップS3)場合を示した。各特徴点の位置とεとを同時に定めてもよい。すなわち、特徴点の初期位置から評価値Qが最小となるように特徴点を移動させるときに、評価値Qの計算においてεの値を変化させてもよい。そして、評価値Qが最小となるときの、特徴点の位置およびεを同時に決定してもよい。
次に、第4の実施形態の変形例を説明する。上記の説明では、局所領域が正方形であるものとして説明した。以下に示す変形例では、局所領域が長方形であり、長方形の大きさだけでなく、アスペクト比も定める。アスペクト比は、局所領域となる長方形の縦の長さに対する横の長さの倍率である。図16は、第4の実施形態の変形例を示すブロック図である。前述の特徴点生成手段1と同様の構成要素については、図10と同様の符号を付し、説明を省略する。アスペクト比も定める特徴点生成手段1aは、学習画像群生成手段2と、特徴点配置手段3と、評価手段4aとを備える。
評価手段4aは、前述の評価手段4と同様に、評価値Qを計算する。ただし、本変形例では、評価手段4aは、局所領域の大きさεだけでなく、局所領域のアスペクト比も変化させ、アスペクト比に応じた評価値Qを計算する。アスペクト比をWとすると、評価手段4aは、Wに応じた評価値Qを以下のように計算すればよい。すなわち、評価手段4aは、式(31)の積分計算を行う前に、学習画像を横方向に1/W倍になるように変換し、その変換後の学習画像について式(31)の積分計算を行う。評価値Qの計算過程におけるその他の点に関しては、第4の実施形態における評価値Qの計算方法と同様である。例えば、アスペクト比が2である場合、評価手段4aは、式(31)の積分計算を行う前に、学習画像を横方向に1/2倍になるように縮小する。そして、縮小後の学習画像について式(31)の積分計算を行えばよい。このように、学習画像を横方向に1/W倍になるように変換し、その画像について式(31)の計算を行うこととして、評価値Qを計算すれば、長方形の局所領域に応じた評価値Qを計算することができる。式(31)は、式(24)の右辺の第3項に影響する計算であり、評価手段4aは、式(24)の右辺第3項をアスペクト比に応じて計算することになる。
評価手段4aは、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現されていてもよい。あるいは、評価手段4aが専用の回路として他の手段とは別に設けられていてもよい。
図17は、第4の実施形態の変形例における特徴点生成手段1の処理経過の例を示すフローチャートである。学習画像群生成手段2は、各人物の顔の3D形状モデルが入力されると、3D形状モデルに対する照明の位置や3D形状モデルの姿勢を種々変化させた場合の学習画像を人物毎に作成する(ステップS51)。
次に、特徴点配置手段3および評価手段4aが、各特徴点の局所領域の大きさεおよびアスペクト比Wを固定値として、特徴点の位置を定める(ステップS52)。ステップS2(図15参照)と同様に、特徴点配置手段3は、各3D形状モデル上の特徴点群の初期位置を定め、その特徴点群に対応する学習画像内の特徴点群の位置も定める。特徴点の位置が指定されると、評価手段4aは評価値Qを計算する。このとき、評価手段4aは、式(31)の積分計算を行う前に、学習画像を横方向に1/W倍になるように変換する。そして、評価手段4aは、式(31)におけるεを固定値として、変換後の学習画像に対して式(31)の積分計算を行い式(24)の第3項を計算する。評価値Qの計算過程において、他の点はステップS2(図15参照)と同様である。そして、特徴点配置手段3は、評価値Qを最小にするように、3D形状モデル上の特徴点群を移動させ、評価手段4aは、その特徴点群に対する評価値Qを、εを固定値として再度計算する。この処理を、評価値Qが収束するまで行い、評価値Qが収束したときの特徴点群の位置を特定する。
次に、評価手段4aは、その位置に特徴点群が存在するものとして、特徴点群の位置を固定し、アスペクト比Wを固定値として、局所領域の大きさεを変化させて、その特徴点群の評価値Qを再計算する。そして、評価値Qが最小となるときのεを特定する(ステップS53)。このとき、評価手段4aは、式(31)の積分計算を行う前に、学習画像を横方向に1/W倍になるように変換し、変換後の学習画像について、εを種々変化させたときの評価値Qを計算すればよい。式(31)の計算の際に、学習画像を横方向に1/W倍になるように変換する点の他は、ステップS3(図15参照)と同様である。
次に、評価手段4aは、ステップS52で定めた位置に特徴点群が存在し、ステップS53で定めたεの値を固定とし、アスペクト比を変化させて、その特徴点群の評価値Qを再計算する。そして、評価値Qが最小となるときのWを特定する(ステップS54)。ステップS54においても、評価手段4aは、式(31)の積分計算の前に、学習画像を横方向に1/W倍になるように変換する。このとき、評価手段4aは、Wを変化させ、様々な倍率(1/W)で学習画像を変換する。そして、各Wに応じた評価値Qを計算し、評価値Qが最小となるWを特定する。
ステップS54の後、評価手段4aは、ステップS52〜S54のループ処理を終了するか否かを判定する(ステップS55)。例えば、直前のステップS54でWを変化させて計算した評価値Qの最小値と、その前のステップS55でWを変化させて計算した評価値Qの最小値との差が所定値以下となった状態(Qが収束した状態)になっていたら(ステップS55のYes)、ループ処理を終了すると判定し、そうでなければ(ステップS55のNo)、ステップS52〜S54を再度繰り返すと判定してもよい。
ステップS55の後、再度ステップS52を行う場合、直前のステップS53,S545で定めたεおよびWを、εおよびWの固定値として用いればよい。また、直前のステップS52で定めた特徴点群の位置を特徴点群の初期位置としてステップS52を開始すればよい。
ステップS55においてループ処理を終了すると判定した場合、特徴点配置手段3は、直前のステップS52で定めた特徴点群と、直前のステップS53で定めたεと、直前のステップS54で定めたWとを、特抽学習・評価データ生成手段41に対して指定する。すなわち、特徴点配置手段3は、特徴点の配置を定めるとともに、各特徴点の抽出に用いるべき局所パターンの大きさを、直前のステップS53で定めたεとすることを決定し、また、各特徴点の抽出に用いるべき局所パターンのアスペクト比を、直前のステップS54で定めたWとすることを決定する。
この第4の実施形態の変形例においても、第4の実施形態と同様の効果を得ることができる。さらに、アスペクト比Wも考慮して評価値Qを計算し、評価値Qが最小となるアスペクト比Wを求めているので、姿勢推定や個体認証等において局所領域として長方形を切り出す場合、要件A〜Cを満たす好ましいアスペクト比を求めることができる。
なお、図17では、ステップS52〜S54をループ処理とする場合を示したが、ステップS52〜S54をループ処理とせずに、ステップS52〜S54を一回ずつ行った後に処理を終了してもよい。
また、ステップS53とステップS54とを別々に行うのではなく、評価値4aが、εおよびWをそれぞれ変化させて、評価値Qが最小となるεおよびWを同時に特定してもよい。
また、各特徴点の位置とεおよびWを同時に定めてもよい。すなわち、特徴点の初期位置Wから評価値Qが最小となるように特徴点を移動させるときに、評価値Qの計算においてε,Wを変化させてもよい。そして、評価値Qが最小となるときの、特徴点の位置およびε,Wを同時に決定してもよい。
次に、本発明の画像認識システムについて説明する。図18は、本発明の画像認識システムの構成例を示すブロック図である。画像認識システム81は、認識タスクを実行する認識タスク実行手段82を備える。認識タスク実行手段82は、本発明による特徴点選択システムが選択した特徴点の配置を、その特徴点選択システムから読み取り、その特徴点の配置を用いて、認識対象画像に対する認識タスクを実行する。認識タスクの種類は、特に限定されない。
また、特徴点を選択する特徴点選択システムは、本発明の特徴点選択システムであればよく、第1の実施形態から第4の実施形態のうちのいずれの特徴点選択システムであってもよい。特徴点選択システムは、指定された特徴点の中から選択する特徴点を確定したときに、その特徴点の配置を記憶しておけばよい。そして、認識タスク実行手段82は、その特徴点の配置を特徴点選択システムから読み込んで認識タスクを実行すればよい。
特徴点選択システムでは認識タスクに適した特徴点を選択し、図18に示す認識タスク実行手段82はその特徴点を用いて認識タスクを実行するので、精度よく認識タスクを実行することができる。
また、認識タスク実行手段82は、本発明の特徴点選択システムにおける特徴点抽出器学習手段45が学習した特徴点抽出器の内部データも特徴点選択システムから読み込んでもよい。そして、認識タスク実行時に認識対象画像から特徴点抽出を行う際には、その内部データを用いて特徴点抽出を行ってもよい。そのような構成により、特徴点抽出精度を向上することができ、その結果、認識タスクの精度を向上させることができる。
認識タスク実行手段82は、例えば、画像認識プログラムに従って動作するコンピュータのCPUによって実現される。
次に、本発明の最小構成を説明する。図19は、本発明の最小構成を示すブロック図である。本発明の特徴点選択システムは、学習評価用データ生成手段91と、学習手段92と、選択手段93とを備える。
学習評価用データ生成手段91(例えば、特抽学習・評価データ生成手段41)は、3次元形状モデルおよびその3次元形状モデル上の複数の特徴点が指定されると、3次元形状モデルから、特徴点抽出器における判定用データの学習に用いる学習用画像(例えば学習データ)およびその特徴点位置と、認識タスクの評価に用いる評価用画像(例えば評価データ)とを生成する。
学習手段92(例えば特徴点抽出器学習手段45)は、学習用画像およびその特徴点を用いて、画像から特徴点を抽出する特徴点抽出器が用いる判定用データを学習する。
選択手段93(例えば、特徴点抽出器評価手段46および特徴点選択手段47、第2の実施形態における特徴点セット選択手段51と認識タスク実行手段52と特徴点選択手段53等)は、学習により得られた判定用データを用いて評価用画像から特徴点の位置を抽出し、抽出された特徴点位置を用いて認識タスクを実行する際の認識誤差が少なくなる特徴点を、指定された複数の特徴点の中から選択する。
そのような構成により、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができる。また、一つの個体の3次元形状モデルおよびその3次元形状モデル上の特徴点を指定することで、個体毎の適切な特徴点を選択することができる。
また、上記の実施形態には、選択手段93が、指定された複数の特徴点に含まれている複数の特徴点である特徴点セットを選択する特徴点セット選択手段(例えば、特徴点セット選択手段51,61)と、特徴点セット毎に、評価用画像に対して認識タスクを実行した時における認識誤差を算出する認識誤差算出手段(例えば、認識タスク実行手段52,62)と、特徴点セット選択手段が選択した特徴点セットのうち認識誤差が最小となる特徴点セットを選択する特徴点選択手段(例えば特徴点選択手段53,63)とを有する構成が開示されている。
また、上記の実施形態には、学習により得られた判定用データを用いて、評価用画像の各局所領域に対して特徴点に該当するか否かを判定することにより評価用画像上の特徴点の位置を特定し、特定した特徴点の位置と、3次元形状モデル上で指定された特徴点に応じ計算された評価用画像上の正しい特徴点の位置との誤差を計算する特徴点誤差計算手段を備え、認識誤差算出手段が、特徴点誤差計算手段が計算した誤差を利用して認識誤差を算出する構成が開示されている。
また、上記の実施形態には、特徴点セット選択手段が、特徴点セットに含める特徴点数を減らしつつ、定めた特徴点数の特徴点を含む各特徴点セットを選択し、認識誤差算出手段が、特徴点数が順次定められたときに、その特徴点数の特徴点を含む特徴点セット毎に評価用画像に対して認識タスクを実行した時における認識誤差を算出し、特徴点セット選択手段が、特徴点セットに含める特徴点数が所定数まで減少したとき、または、定めた特徴点数の特徴点を含む特徴点セットにおける認識誤差の、その特徴点数に減らす前の特徴点セットにおける認識誤差からの増加量が閾値以上になったとき、または、定めた特徴点数の特徴点を含む特徴点セットにおける認識誤差が閾値以上になったときに特徴点数を減らすことを停止し、特徴点選択手段が、特徴点数を減らすことを停止したときの特徴点数における認識誤差が最小となる特徴点セットを、特徴点セット選択手段が選択した特徴点セットの中から選択する構成が開示されている。
また、上記の実施形態には、特徴点セット選択手段が、特徴点セットに含める特徴点数を増やしつつ、定めた特徴点数の特徴点を含む各特徴点セットを選択し、認識誤差算出手段が、特徴点数が順次定められたときに、その特徴点数の特徴点を含む特徴点セット毎に評価用画像に対して認識タスクを実行した時における認識誤差を算出し、特徴点セット選択手段が、特徴点セットに含める特徴点数が所定数まで増加したとき、または、定めた特徴点数の特徴点を含む特徴点セットにおける認識誤差の、その特徴点数に増やす前の特徴点セットにおける認識誤差に対する減少量が閾値以下になったとき、または、定めた特徴点数の特徴点を含む特徴点セットにおける認識誤差が閾値以下になったときに特徴点数を増やすことを停止し、特徴点選択手段が、特徴点数を増やすことを停止したときの特徴点数における認識誤差が最小となる特徴点セットを、特徴点セット選択手段が選択した特徴点セットの中から選択する構成が開示されている。
また、上記の実施形態には、認識誤差算出手段が、個体の姿勢推定を行う認識タスクにおいて、更新前の特徴点数について計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用いて、特徴点数を更新したときの認識誤差を近似的に計算する構成が開示されている。
また、上記の実施形態には、特徴点セット選択手段が、所定数の特徴点を含む特徴点セットをそれぞれ選択し、認識誤差算出手段が、特徴点セット毎に認識誤差を算出し、特徴点選択手段が、認識誤差が最小となる特徴点セットを選択する構成が開示されている。
また、上記の実施形態には、選択手段93が、学習により得られた判定用データを用いて、評価用画像の各局所領域に対して特徴点に該当するか否かを判定することにより評価用画像上の特徴点の位置を特定し、特定した特徴点の位置と、3次元形状モデル上で指定された特徴点に応じ計算された評価用画像上の正しい特徴点の位置との誤差を計算する特徴点誤差計算手段(例えば、特徴点抽出器評価手段46)と、指定された特徴点の中から、その誤差が小さい順に所定数の特徴点を選択する特徴点選択手段(例えば特徴点選択手段47)とを有する構成が開示されている。
また、上記の実施形態には、学習評価用データ生成手段91が、複数の個体の3次元形状モデルにおいて類似しているとして対応付けられている複数の特徴点を指定される構成が開示されている。
また、上記の実施形態には、学習評価用データ生成手段91に対して、3次元形状モデル上の複数の特徴点を指定する特徴点指定手段(例えば、特徴点生成手段1)を備え、特徴点指定手段が、3次元形状モデルに対して条件(例えば、個体の姿勢や照明の当たり方等)を変化させて得られる複数の画像を生成する画像群生成手段(例えば、学習画像群生成手段2)と、特徴点群が3次元形状モデル上で均一に分布しているほど小さくなる第1の評価値(例えば、式(1)の右辺第2項)と、3次元形状モデル上の特徴点に応じた画像内の特徴点の抽出が容易であるほど小さくなる第2の評価値(例えば、式(1)の右辺第3項)とを計算し、各評価値の重み付和として、指定された特徴点群に対する評価値(例えば、評価値Q)を計算する評価手段(例えば、評価手段4,4a)と、評価手段が計算する評価値が最小となるように3次元形状モデル上の特徴点群を配置する特徴点配置手段(例えば、特徴点配置手段3)とを有する構成が開示されている。そのような構成により、好ましい特徴点群を指定して、その中から特徴点を選択させることができる。
また、上記の実施形態には、評価手段が、第2の評価値として、画像内の特徴点における局所パターンの対称性が大きいほど小さな値として計算される値を用いる構成が開示されている。
また、上記の実施形態には、評価手段が、条件の異なるそれぞれの画像間での、画像内の特徴点における局所パターンの類似度が大きいほど小さな値として計算される第3の評価値(例えば、式(1)の右辺第4項)を計算し、各評価値の重み付和として、指定された特徴点群に対する評価値を計算する構成が開示されている。
また、上記の実施形態には、画像群生成手段が、複数の個体の3次元形状モデルに対して条件を変化させて得られる画像を生成し、評価手段が、各個体の3次元形状モデルを同一座標系で重ねた場合の個体同士の特徴点が近いほど小さな値となる第4の評価値(例えば、式(1)の右辺第1項)を計算し、各評価値の重み付和として、指定された特徴点群に対する評価値を計算する構成が開示されている。