JPWO2012032747A1 - 特徴点選択システム、特徴点選択方法および特徴点選択プログラム - Google Patents

特徴点選択システム、特徴点選択方法および特徴点選択プログラム Download PDF

Info

Publication number
JPWO2012032747A1
JPWO2012032747A1 JP2012532853A JP2012532853A JPWO2012032747A1 JP WO2012032747 A1 JPWO2012032747 A1 JP WO2012032747A1 JP 2012532853 A JP2012532853 A JP 2012532853A JP 2012532853 A JP2012532853 A JP 2012532853A JP WO2012032747 A1 JPWO2012032747 A1 JP WO2012032747A1
Authority
JP
Japan
Prior art keywords
feature point
point set
feature
recognition error
recognition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2012532853A
Other languages
English (en)
Inventor
石山 塁
塁 石山
秀堅 本谷
秀堅 本谷
文彦 坂上
文彦 坂上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of JPWO2012032747A1 publication Critical patent/JPWO2012032747A1/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/211Selection of the most significant subset of features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/28Determining representative reference patterns, e.g. by averaging or distorting; Generating dictionaries

Landscapes

  • Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Image Analysis (AREA)

Abstract

認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる特徴点選択システムを提供する。特徴点セット選択手段51は、特徴点候補から特徴点セットを複数選択する。認識誤差算出手段52は、特徴点セット毎に認識誤差を算出する。特徴点選択手段53は、特徴点セット毎の認識誤差の最小値が、特徴点候補を用いたときの認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いたときの認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果に応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新する。特徴点セット選択手段51は、その特徴点セットに基づいて、再度、特徴点セットを複数選択する。

Description

本発明は、3次元形状モデル上の複数の特徴点の中から好ましい特徴点を選択する特徴点選択システム、特徴点選択方法および特徴点選択プログラムに関する。
画像に示された物体やその物体の状態を認識する処理を認識タスクと呼ぶ。認識タスクの例として、個体(例えば人の顔)の画像から、その個体の向き(以下、姿勢と記す。)を推定したり、その個体を識別したりする処理が挙げられる。物体の姿勢推定を例にして認識タスクの例を示す。まず、予め物体の3次元形状モデルにおける特徴点の3次元位置を記憶しておく。一般に、システム稼働後に認識対象の個体が新たに登録されるシステムにおいて、特徴点位置は全個体で共通とされる。特徴点の記憶後、認識対象の画像(本例では、姿勢推定しようとする物体が表された画像)から、特徴点の位置を検出し、予め記憶していた特徴点の3次元位置と対応付ける。そして、認識対象画像における特徴点の位置と、3次元形状モデル上における特徴点の位置との対応関係から物体の姿勢推定を行う。この対応関係から物体の姿勢を推定する方法は、透視n点問題の解法として知られている。
上記のような処理において、予め記憶される3次元形状モデル上の特徴点は、予め認識対象物体の一部であり画像の中で位置を特定することが容易であること、および、認識タスクにおいてその部位の位置が重要であると考えられることを考慮して人手で定められていた。人手による特徴点決定について、より詳細に説明する。姿勢推定等の認識アルゴリズムは、一般に、用いる特徴点の数が多いほど認識性能を向上できる。しかし、多数の特徴点を用いると、認識タスクの計算量は増大する。さらに、認識対象画像から特徴点を抽出するための計算量も増大する。そのため、特徴点の数を絞り込むことが実用上重要である。少数の特徴点で認識タスクにおける認識性能を向上させるためには、以下のような条件を満たす特徴点を決めておく必要がある。第1条件として、認識タスクにおいて重要な特徴点であること(換言すれば、精度に与える影響が大きいこと)が必要である。さらに、第2条件として、画像から特徴点として精度良く抽出できることが必要である。一般的に、第1条件および第2条件を両方とも満たす特徴点が3次元形状モデル上の点から人手で決められている。
3次元モデル上の特徴点を自動的に決定する手法としては、例えば、非特許文献1に、エントロピーに基づいて特徴点を生成する方法が記載されている。しかしながら、上記の第1条件・第2条件を考慮し、認識タスクにとって有用な少数の特徴点に絞り込むことができなかった。このため、認識タスクに使用する特徴点の定義は人手によって決定されていた。
また、認識対象画像からの特徴点抽出は、認識対象画像から各部分をそれぞれ切り出し、予め学習しておいた判定用パターンと比較し、最も特徴点らしいと判定された位置を特徴点位置と決定することにより行う。
非特許文献2には、画像間の対応点を求めるために必要な特徴点を、SIFT(Scale-Invariant Feature Transform )アルゴリズムによって抽出する技術が記載されている。SIFTアルゴリズムは、多重解像度解析による塊検出と、濃淡勾配のヒストグラムを利用した画像間の対応付けを可能とする。SIFTアルゴリズムでは、特徴点の特徴量も算出する。予め学習において与えられた判定用パターンの特徴量を記憶しておき、認識対象の画像から抽出された特徴点の特徴量と比較することで、特徴点かどうかの判定を行い、その位置を抽出することができる。
また、この判定を行う技術として、多くのパターン識別法を利用することもできる。その一例として、一般化学習ベクトル量子化(GLVQ:Generalized Learning Vector Quantization)を用いることが非特許文献3に記載されている。非特許文献3では顔のパターン検出を行っているが、パターンを顔から特徴点に置き換えれば特徴点の検出を行うことができる。また、機械学習の手法としてSVM(Support Vector Machine)も知られている。
認識対象画像上に表される特徴点の見え方は、物体の姿勢や照明条件によって変化する。画像から切り出された部分が特徴点に該当するか否かを正しく判断するためには、判定用パターンを学習しておく必要がある。そのため、様々な条件で物体の学習用画像を多数撮影しておき、その多数の学習用画像それぞれにおいて正しい特徴点の位置を人手で入力して判定用パターンを学習させていた。
Joshua Cates, Miriah Meyer, P.Thomas Fletcher, Ross Whitaker, "Entropy-Based Particle Systems for Shape Correspondence",Proceedings of the MICCAI,2006年 藤吉弘亘、「Gradientベースの特徴抽出 −SIFTとHOG−」、情報処理学会研究報告 CVIM160、pp.211-224、2007年 細井利憲、鈴木哲明、佐藤敦、「一般化学習ベクトル量子化による顔検出」、Technical report of IEICE. PRMU,Vol.102,No.651(20030213),pp.47-52
上記の第1条件における重要度や第2条件における特徴点抽出の精度は、認識対象物体の種類(形状や見え方)、画像から特徴点を抽出する方法の特性、認識タスク(姿勢推定や個体識別等)に用いる手法の特性、認識対象画像の撮影条件等の様々な要因に依存する。そのため、認識タスクを行うシステムを作り上げて稼働させるまで、第1条件における重要度や第2条件における特徴点抽出の精度は定量化することが難しかった。そのため、そのような重要度や精度をシステム開発者が主観的に見積もっていた。従って、熟達した開発者でなければ、3次元形状モデル上から、上記の第1条件および第2条件を満たす適切な特徴点を選択することが困難であり、認識タスクのアルゴリズム自体が持つ最大限の認識性能を得ることが困難であった。
また、特徴点選択方法として、以下に示す方法が考えられる。すなわち、3次元形状モデルおよびその3次元形状モデル上の複数の特徴点候補が指定されると、その3次元形状モデルから、特徴点抽出器における判定用データの学習に用いる学習用画像と、認識タスクの評価に用いる評価用画像とを生成する。そして、特徴点に該当する局所領域および特徴点に該当しない局所領域を学習用画像から切り出し、特徴点に該当する局所領域および特徴点に該当しない局所領域により、判定用データを学習する。さらに、学習により得られた判定用データを用いて評価用画像から特徴点位置を抽出する。その特徴点位置に基づいて、認識タスクを実行したときの認識誤差を表す関数(コスト関数)を計算し、その関数の値が小さくなる特徴点を、抽出された複数の特徴点位置の中から選択する。この方法により、特徴点が得られる。
また、抽出された特徴点位置の中から、認識誤差が少なくなる特徴点の集合を選択し、さらに、その特徴点の集合の中から、選択する特徴点の数を少なくして(換言すれば、一部の特徴点を除外して)、認識誤差が少なくなる特徴点の集合を選択することを繰り返す方法が考えられる。このように、逐次的に特徴点の数を、最終的に選択したい特徴点の数にまで逐次的に減らしていき、最終的に選択したい数の特徴点を選択する方法も考えられる。さらに、ある特徴点の集合から、一部の特徴点を除外したときの認識誤差を予測することも考えられる。
しかし、認識誤差が少なくなる特徴点の集合を探索するようにして、逐次的に特徴点の数を減らしながら特徴点を決定した場合、特徴点の集合の最適化の初期段階(すなわち、選択する特徴点の数がまだ多数残っている状態)で、適切な特徴点を除外してしまって、適切な特徴点を除外したまま、特徴点を逐次的に減らしていってしまう場合が生じる。例えば、比較的重要度が低い点が多数残っている場合には、重要度を高く評価することができないような特徴点に関しては、最適化の初期段階で、特徴点の重要度の優劣の差が現れにくいために、選択することが困難となり、除外されてしまう場合がある。すると、最終的に選択したい数の特徴点を選択したときに、初期段階で重要度を高く評価できなかった特徴点が特徴点の集合から漏れてしまう。
そこで、本発明は、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点(認識タスクの精度に影響を与える特徴点)が最終的に選択した特徴点の集合から漏れにくくすることができる特徴点選択システム、特徴点選択方法および特徴点選択プログラムを提供することを目的とする。
本発明による特徴点選択システムは、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する特徴点選択手段とを備え、特徴点セット選択手段が、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする。
また、本発明による特徴点選択方法は、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出し、選択した特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択し、その一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする。
また、本発明による特徴点選択プログラムは、コンピュータに、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させることを特徴とする。
本発明によれば、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる。
本発明の第1の実施形態の特徴点選択システムの例を示すブロック図である。 特徴点選択手段が特徴点セット毎のPに応じた確率で、特徴点セットを選択する処理を模式的に表す説明図である。 第1の実施形態の処理経過の例を示すフローチャートである。 認識タスクの総実行時間と認識誤差との関係を示す説明図である。 本発明の第2の実施形態の特徴点選択システムの例を示すブロック図である。 第2の実施形態の処理経過の例を示すフローチャートである。 本発明の最小構成の例を示すブロック図である。
以下、本発明の実施形態を図面を参照して説明する。
実施形態1.
図1は、本発明の第1の実施形態の特徴点選択システムの例を示すブロック図である。第1の実施形態の特徴点選択システムは、特徴点抽出学習・評価データ生成手段41(以下、特抽学習・評価データ生成手段41と記す。)と、特徴点抽出器学習手段45と、特徴点位置検出手段46と、特徴点セット選択手段51と、認識誤差算出手段52と、特徴点選択手段53とを備える。また、特抽学習・評価データ生成手段41は、学習データ生成手段42と、学習パターン生成手段43と、評価データ生成手段44とを有する。
特抽学習・評価データ生成手段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は、特徴点抽出器学習手段45で学習した内部データを用いて、評価データ生成手段44が生成した評価データから特徴点の位置を抽出し、その特徴点位置の情報を特徴点セット選択手段51に入力する。具体的には、特徴点位置検出手段46は、特徴点抽出器が特徴点であるか否かを判定するテンプレートサイズの画像を評価データの各位置から切り出す。そして、特徴点抽出器学習手段45が学習した内部データを用いて、そのテンプレートサイズの画像が特徴点に該当するか否かを判定することによって、どこに特徴点があるのかを決定する。
特徴点位置検出手段46によって判定された特徴点位置における特徴点群の中から、最適な特徴点の集合が定められる。なお、3D形状モデルの入力時に指定される特徴点の数と、特徴点位置検出手段46によって判定された特徴点位置における特徴点の数は同数である。以下、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を初期特徴点候補と記す場合がある。
特徴点セット選択手段51は、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を特徴点の候補とし、その特徴点の候補の中から一部の特徴点を選択する。この特徴点の候補から選択される複数の特徴点を特徴点セットと記す。特徴点セットに含める特徴点の数が定められると、特徴点セット選択手段51は、その数の特徴点を含む特徴点セットを一組だけでなく、選び得る各通り選択する。
認識誤差算出手段52は、特徴点セット選択手段51が定めた各特徴点セットについて、特徴点セットに含まれる特徴点の位置を用いて認識タスクを実行したときの認識誤差を算出する。認識タスクの種類は特に限定されない。例えば、認識誤差算出手段52は、認識タスクとして、姿勢推定を行っても、あるいは、顔識別等の個体識別を行ってもよい。また、例えば、認識タスクとして、顔画像に対する表情認識処理(表情推定)や年齢推定処理を行ってもよい。
認識誤差算出手段52は、例えば、認識タスクを実行するコンピュータのCPUによって実現される。また、特徴点抽出器学習手段45が内部データを学習する処理、および、認識誤差算出手段52がテンプレートと内部データとを比較してテンプレートが特徴点に該当するか否かを判定する処理は、特徴点抽出器としての動作である。特徴点抽出器学習手段45および認識誤差算出手段52は、例えば、認識タスクにおいて用いられる特徴点抽出器として動作するコンピュータのCPUによって実現される。
認識誤差算出手段52は、特徴点セットを用いて認識タスクを行う毎に、その認識タスクの認識結果で生じた認識誤差を求める処理も行う。認識誤差は、認識タスクで得られた認識結果と、正解との差である。例えば、認識タスクが姿勢推定であるとすると、認識誤差算出手段52は、評価データに対して特徴点セットを用いて姿勢推定を行った結果得た姿勢(向き)と正解となる姿勢との差を認識誤差として計算すればよい。また、認識タスクとして顔識別を行う場合、複数の人物について3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定する情報を入力しておき、各人物の評価データを作成しておく。そして、その評価データに対して特徴点セットを用いて顔認識を行った結果、顔認識に失敗した人物の割合を認識誤差として計算してもよい。
特徴点選択手段53は、特徴点セットが定めた特徴点セットの中から、各特徴点セットの認識誤差を用いて、一つの特徴点セットを定める。
特徴点セット選択手段51は、特徴点選択手段53によって定められた一つの特徴点セットを特徴点の候補として、その特徴点の候補の中から一部の特徴点を選択する。すなわち、特徴点セットを選択する。このときにも、特徴点セット選択手段51は、特徴点セットを一組だけでなく、選び得る各通り選択する。
この結果、特徴点セット選択手段51による複数の特徴点セットの選択、認識誤差算出手段52による特徴点セット毎の認識誤差の算出、特徴点選択手段53による、その複数の特徴点セットの中からの一つの特徴点セットの選択が繰り返されることになる。そして、特徴点選択手段53が複数の特徴点セットから一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数が最終的にユーザの所望する特徴点数になっていれば、特徴点選択手段53は、その特徴点セットに含まれる特徴点群を、認識タスクにおける認識アルゴリズムに合う適切な特徴点として決定する。なお、上記の繰り返し処理は、後述のステップS21〜S26(図3参照)の繰り返し処理に相当する。
そして、特徴点選択手段53は、複数の特徴点セットの中からの一つの特徴点セットを選択したときに、次に、特徴点セット選択手段51が特徴点セットを選択する際にその特徴点セットに含めるべき特徴点の数を定める。例えば、複数の特徴点セットの中からの一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数から一定数を減算した値を、次に特徴点セット選択手段51が特徴点セットに含める特徴点数として定める。この減算する一定数の値は、予め定めておけばよい。
ただし、特徴点セット選択手段51は、一定の確率で、特徴点選択手段53が選択した一つの特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点を含めるようにする。例えば、特徴点選択手段53が選択した一つの特徴点セットに対して、初期特徴点候補に含まれる特徴点を追加してもよい。あるいは、特徴点選択手段53が選択した一つの特徴点セット内の一部の特徴点を、初期特徴点候補に含まれる特徴点に入れ替えてもよい。特徴点選択手段53が選択した一つの特徴点セットに対して、一定の確率で新たに含めるようにする特徴点の個数は、例えば、予め定めておけばよい。また、特徴点選択手段53が選択した一つの特徴点セットに対して、一定の確率で新たに特徴点を含める場合、その特徴点は、特徴点選択手段53が選択した特徴点セットには含まれていないが初期特徴点候補に含まれる特徴点の中からランダムに選択すればよい。また、特徴点選択手段53が選択した一つの特徴点セット内の一部の特徴点を他の特徴点に入れ替える場合にも、入れ替える特徴点はランダムに選択すればよい。このように、特徴点選択手段53が選択した一つの特徴点セットに対して、ランダムに特徴点を含めるようにした場合には、特徴点セット選択手段51は、その特徴点を含めた特徴点セットの中から、その一部の特徴点群を特徴点セットとして選択していく。以下の説明では、特徴点選択手段53が選択した一つの特徴点セットに対して、特徴点セット選択手段51が一定の確率で特徴点を追加する場合を例にして説明する。
例えば、90個の特徴点を含む複数の特徴点セットの中から、特徴点選択手段53が、1つの特徴点セットを選択し、次に特徴点セット選択手段51が特徴点セットを選択する場合、89個の特徴点を含む特徴点を選択すると定めたとする。特徴点セット選択手段51は、その1つの特徴点セット(特徴点数は90個)から、89個の特徴点からなる特徴点セットを各通り選択していけばよい。ただし、特徴点セット選択手段51は、毎回このような動作をするのではなく、一定の確率で、その1つの特徴点セット(上記の例では特徴点数は90個)に対して、初期特徴点候補からランダム選択した特徴点(例えば、5個の特徴点)を追加する。そして、特徴点セット選択手段51は、その特徴点を追加した後の特徴点セット(本例では95個の特徴点を含む特徴点セット)を特徴点の候補とし、その特徴点候補の中から、その一部の特徴点群を特徴点セットとして選択していく。
また、このように、一定の確率のもとで、特徴点セット選択手段51が、選択された特徴点セットに対して特徴点を追加した場合には、特徴点選択手段53が次回の特徴点セット選択時における特徴点数として定めた数も、増加させてもよい。この特徴点数の増加数は、例えば、予め定めておけばよい。例えば、上記の例のように、特徴点セット選択手段51が、90個の特徴点からなる特徴点セットに特徴点を追加した場合には、特徴点セット選択手段51は、特徴点選択手段53が定めた特徴点数(89個)も増加させて、例えば、92個とし、95個の特徴点候補の中から、92個の特徴点を含む特徴点セットを各通り選択していけばよい。以下の説明では、このように、特徴点セット選択手段51が、選択された特徴点セットに対して特徴点を追加した場合には、特徴点選択手段53が次回の特徴点セット選択時における特徴点数として定めた数も増加させる場合を例にして説明する。
また、特徴点セット選択手段51は、選択された特徴点セットに対して特徴点を追加するか否かを、以下のように判定すればよい。例えば、上記の「一定の確率」がK(0<K<1)であるとすると、特徴点セット選択手段51は、0より大きく1未満の範囲で乱数を発生させ、その値がK以下であれば、特徴点選択手段53に選択された一つの特徴点セットに対して特徴点を追加し、特徴点追加後の特徴点セットを新たな特徴点候補とすればよい。また、発生させた乱数がKより大きい値であれば、特徴点選択手段53に選択された一つの特徴点セットをそのまま新たな特徴点候補とすればよい。なお、このように乱数を用いる方法は、特徴点選択手段53に選択された特徴点セットに対して一定の確率で特徴点を追加する方法の一例であり、他の方法を用いてもよい。
また、上記の説明では、特徴点セット選択手段51、認識誤差算出手段52および特徴点選択手段53による繰り返し処理を行い、特徴点選択手段53が複数の特徴点セットから一つの特徴点セットを選択したときに、その特徴点セットに含まれる特徴点数が最終的にユーザの所望する特徴点数になっていれば、特徴点選択手段53は、その特徴点セットに含まれる特徴点群を、認識タスクにおける認識アルゴリズムに合う適切な特徴点として決定するものとして説明した。特徴点セット選択手段51は、最初に複数の特徴点セットを選択するときに、特徴点位置検出手段46によって判定された特徴点位置における特徴点群の中から、ユーザの所望する数の特徴点を含む特徴点セットを選び得る各通り選択してもよい。
ただし、多数の初期特徴点候補の中から、一度の処理で少数の特徴点からなる特徴点セットを選択すると、選択し得る特徴点セットの数が膨大になる。例えば、初期特徴点候補の数をNとし、ユーザの所望の特徴点数をMとすると、選択し得る特徴点セットの数は、となる。ここで、MがNに比べて小さいと、の値は膨大となり、現実的な計算時間でユーザの所望数の最適な特徴点を決定することが困難になる。よって、既に説明したように、初期特徴点候補から、段階的に特徴点数を削減しながら、特徴点セットを選択していき、ユーザの所望数の特徴点を決定することが好ましい。
次に、特徴点選択手段53について、より詳細に説明する。特徴点選択手段53は、特徴点セット選択手段51がある個数の特徴点からなる特徴点セットを選び得る各通り選択した場合、その特徴点セットの中から、認識誤差が最小となる特徴点セットを選択する。ただし、その最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が初回に特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)よりも大きくなる場合には、以下のように特徴点セットを選択する。すなわち、各特徴点セットiについて、認識誤差の増加分aを求める。認識誤差の増加分aは、特徴点セットiを用いて認識タスクを行ったときの認識誤差から、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が初回に特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)を減算した値である。そして、特徴点選択手段53は、各特徴点セットiについて求めた認識誤差の増加分aを用いて、以下に示す式(1)で算出される値Pを計算する。
Figure 2012032747
式(1)から分かるように、Pは、認識誤差の増加量aの指数関数の逆数である。また、後述するように、このPは、特徴点セットiの選択確率を所定数倍したものである。
そして、特徴点選択手段53は、各特徴点セットのPに応じた確率で、特徴点セットを一つ選択する。図2は、特徴点選択手段53が特徴点セット毎のPに応じた確率で、特徴点セットを選択する処理を模式的に表す説明図である。図2に示す例では、説明を簡単にするため、特徴点セットが特徴点セット1〜3の3つであり、特徴点セット毎にP,P,Pを求めた場合を示している。特徴点選択手段53は、例えば、0より大きくP+P+P以下の範囲で乱数を発生させる。そして、特徴点選択手段53は、その乱数値が0より大きくP以下であれば特徴点セット1を選択し、乱数値がPより大きくP+P以下であれば特徴点セット2を選択し、乱数値がP+Pより大きくP+P+P以下であれば、特徴点セット3を選択する。このように選択することで、各特徴点セットのPに比例した確率で、特徴点セットを一つ選択することができる。このように、特徴点選択手段53は、Pの値が大きいほど選択されやすく、Pの値が小さいほど選択されにくくするという条件のもとで、特徴点セットを一つ選択する。ここでは、乱数を用いた場合を例に説明したが、他の方法で、特徴点セットを選択してもよい。
上記の特徴点セット毎に算出したPは、特徴点セットの選択確率を所定数倍した値である。すなわち、特徴点セットiの選択確率をpとすると、特徴点セット毎の選択確率pの総和は1となるので、p=(1/ΣP)Pである。よって、式(1)のPは、特徴点セットの選択確率pをΣP倍した値である。ここで、ΣPは、特徴点セット毎に算出したPの総和である。
また、式(1)におけるTの値は、例えば、特徴点選択手段53が特徴点セットを選択する処理の回数が増えていき、選択される特徴点セットに含まれる特徴点数の数が、最終的にユーザが所望する特徴点数に近づくにつれて小さくしていけばよい。例えば、特徴点選択手段53が特徴点セットを選択する処理の回数がt回目の時におけるTの値をTと表すことにする。この場合、特徴点選択手段53が特徴点セットを選択する処理の回数がt+1回目になったときのTt+1は、以下に示す式(2)によって求めればよい。
t+1=γ・T 式(2)
式(2)において、γは1以下の定数であり、特に、1未満とすることが好ましい。具体的には、γは0.8〜0.9程度の定数とすることが好ましい。
上記の変数Tは、シミュレーテッドアニーリング(Simulated Annealing )による最適化(ここでは特徴点セットの最適化)における温度に相当するということが言え、以下、変数Tを温度と称する場合がある。また、式(2)は、シミュレーテッドアニーリングによる最適化における冷却関数に相当するということが言え、以下、式(2)を冷却関数と称する場合がある。
ただし、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が多いときには、温度Tが高いと、不適切な特徴点を選択する可能性が高くなりすぎる。そこで、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数がある程度小さくなるまでは(すなわち、特徴点数に関して予め定めた閾値より小さくなるまでは)、特徴点選択手段53は、最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差より大きい場合であっても、認識誤差が最小となる特徴点セットを選択することが好ましい。そして、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が閾値より小さくなっていて、最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差より大きい場合には、各特徴点セットのPに応じた確率で、特徴点セットを一つ選択することが好ましい。最小となる認識誤差が、特徴点選択手段53が前回選択した特徴点セットを用いて認識タスクを行ったときの認識誤差以下ならば、特徴点選択手段53は、認識誤差が最小となる特徴点セットを選択する。
特抽学習・評価データ生成手段41(学習データ生成手段42、学習パターン生成手段43および評価データ生成手段44)、特徴点抽出器学習手段45、特徴点位置検出手段46、特徴点セット選択手段51、認識誤差算出手段52、特徴点選択手段53は、例えば、特徴点選択プログラムに従って動作するコンピュータのCPUによって実現される。例えば、CPUが、特徴点選択システムの記憶装置(図示せず。)から特徴点選択プログラムを読み込み、そのプログラムに従って、上記の各手段として動作してもよい。あるいは、各手段がそれぞれ別々の専用回路によって実現されていてもよい。
次に、動作について説明する。
図3は、第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)とは変えて評価データを生成する。
特徴点位置検出手段46は、評価データ生成手段44に生成された評価データからテンプレートを切り出し、テンプレートと内部データとを比較して、そのテンプレートが特徴点に該当するか否かを判定する。この判定により、評価データにおけるどの部分が特徴点であるかを判定する(ステップS16)。
ステップS16で特徴点位置検出手段46によって判定された特徴点位置における特徴点群が、初期特徴点候補であり、以降の処理で、初期特徴点候補から、認識アルゴリズムに合う適切な特徴点が選択される。
また、特抽学習・評価データ生成手段41に対して指定された複数の特徴点の数と、ステップS16で判定される特徴点位置の数は同数となる。
なお、本実施形態では、学習データ生成手段42および評価データ生成手段44が3D形状モデルからCG画像として学習データや評価データを生成する場合を例に説明しているが、その3次元形状モデルを撮影した実際の画像が入手可能な場合には、その実際の画像を学習データや評価データとして用いてもよい。その場合、特徴点選択システムは、学習データ生成手段42や評価データ生成手段44を備えていなくてよい。さらに、認識タスクで用いる特徴点の位置データを特徴点選択システムの外部の特徴点抽出器から取得して利用してもよい。すなわち、外部の特徴点抽出器が検出した特徴点の位置データを取得して、その位置データに対応する特徴点群を初期特徴点候補としてもよい。この場合、特徴点選択システムは、特徴点抽出器学習手段45および特徴点位置検出手段46を備えていなくてもよい。なお、本実施形態では、ステップS16で判定した特徴点位置における特徴点を初期特徴点候補として、以降の処理を行う場合を例にして説明する。
特徴点選択システムは、ステップS16までの処理を行った後、以下の処理を行う。まず、特徴点セット選択手段51は、特徴点位置検出手段46によって判定された特徴点位置における特徴点群を特徴点の候補とし、その特徴点の候補から特徴点セットを選択する(ステップS21)。最初にステップS21に移行した場合には、特徴点セット選択手段51は、初期特徴点候補となる特徴点数から一定数を減算した数を求め、その数の特徴点を含む特徴点セットを選択する。
なお、特徴点セット選択手段51は、特徴点数が定められているという条件のもとで、特徴点セットを選び得る各通り選択するが、特徴点セット選択手段51は、ステップS21に移行する毎に、1つずつ特徴点セットを選択する。後述するように、ステップS21、S22,S23のループ処理を未選択の特徴点セットがなくなるまで繰り返し、この繰り返し処理でステップS21に複数回移行することで、特徴点セット選択手段51は、特徴点セットを選び得る各通り選択する。このステップS21〜S23の繰り返し処理において選択される各特徴点セットの特徴点数は共通である。
本実施形態では、特徴点セット選択手段51が、特徴点セットを選び得る各通り選択する場合を例に説明する。このように、特徴点セットを各通り選択することが好ましいが、特徴点セットの数が多くなり計算量が多くなるのであれば、特徴点セット選択手段51は、定められた特徴点数のもとで選択し得る各通りの特徴点セットの中から、一部の特徴点セットをランダムに複数個選択してもよい。望ましい方法は、第2の実施形態で説明するように、現在の候補から特定の点を除去した組み合わせにした場合に、認識誤差の増大量が多い特徴点を優先的に除外するように、特徴点を選択する確率に重みを付けて特徴点毎に特徴点セットに含めるかどうかを決定することがこのましい。なお、第1の実施形態では、上述のように、選び得る各通りの特徴点セットを選択する場合を例にする。
また、既に説明したように、特徴点セット選択手段51は、最初に複数の特徴点セットを選択するときに(すなわち、最初にステップS21〜S23の繰り返し処理を行うときに)、初期特徴点候補の中から、ユーザの所望する数の特徴点を含む特徴点セットを選び得る各通り選択してもよい。しかし、例えば、初期特徴点候補の数が10000個等のように多く、一方、ユーザの所望する特徴点数が初期特徴点候補に対して大幅に少ない場合(例えば、10個等)、特徴点セットの数が膨大になる。すると、ステップS21〜S23の繰り返し処理の回数も膨大となり、処理時間がかかりすぎてしまう。そこで、最初にステップS21〜S23の繰り返し処理を行う場合には、初期特徴点候補の数よりも僅かに少ない数の特徴点を含む特徴点セットを各通り選択すればよい。また、後述のステップS26では、ステップS24で選択される特徴点セットに含まれる特徴点数より僅かに少ない数の特徴点数を、更新後の特徴点数として定めればよい。この特徴点数の減少量は、予め定めておけばよい。
ステップS21で特徴点セットが選択されると、認識誤差算出手段52は、その特徴点セットに属する各特徴点を用いて、ステップS15で生成された評価データに対して認識タスクを実行する(ステップS22)。認識タスクの種類は、本発明による特徴点選択が確定した後に、その特徴点を用いて実行する認識タスクであればよい。例えば、姿勢推定、個体識別、表情推定、年齢推定等が挙げられるが、他の認識タスクを行ってもよい。認識タスクの処理過程において、評価データから得られるテンプレートと、ステップS14で学習された特徴点抽出器の内部データとにより、そのテンプレートが特徴点に該当するか否かを判定する。認識タスクの処理の例については後述する。
また、認識タスク実行手段52は、認識タスクを実行するとともに、ステップS21で選択された特徴点セットについて認識誤差も計算する。
続いて、特徴点セット選択手段51は、特徴点の候補から特徴点セットとして選択されていない特徴点の組み合わせがあるか否かを判定する(ステップS23)。すなわち、未だ選択されておらず、ステップS22で認識誤差が計算されていない特徴点セットがあるか否かを判定する。未選択の特徴点セットがあれば(ステップS23におけるYes)、特徴点セット選択手段51および認識誤差算出手段52は、ステップ21〜S23の処理を繰り返す。この結果、選び得る各通りの特徴点セットについて認識誤差が算出される。
ステップS23において、未選択の特徴点セットがなければ(ステップS23におけるNo)、特徴点選択手段53は、認識誤差が最小となる特徴点セットを選択する(ステップS24)。ステップS24で選択された特徴点セットの認識誤差が、ステップS21で選択された各特徴点セットの中で最小となっているので、その特徴点セットが認識タスクの認識アルゴリズムにとって好ましいと言うことができる。
ただし、一般に、認識タスクに用いる特徴点の数を削減すると、認識誤差は大きくなる。従って、ステップS21で選択した各特徴点セットの中で最小の認識誤差であっても、特徴点数を削減する前の特徴点セットを用いた場合の選択誤差よりも大きくなる。ステップS24では、認識誤差が最小となる特徴点セットを選択することを原則とするが、その最小となる認識誤差が、特徴点選択手段53が前回のステップS24で選択した特徴点セットを用いて認識タスクを行ったときの認識誤差(特徴点選択手段53が最初にステップS24に移行して特徴点セットを選択する場合には、初期特徴点候補を用いて認識タスクを行ったときの認識誤差)よりも大きい場合には、ステップS21で選択した各特徴点セットについて認識誤差の増加分aを計算し、前述の式(1)で算出される値Pを計算する。なお、aは、前回のステップS24で選択した特徴点セットについて算出した認識誤差(最初にステップS24に移行した場合には初期特徴点候補を用いて認識タスクを行ったときの認識誤差)から、着目している特徴点セットについて算出した認識誤差への増加量である。また、Pは、既に説明したように、Pに対応する特徴点セットiの選択確率pを所定数倍(ΣP倍)した値である。
また、既に説明したように、特徴点選択手段53が特徴点セットを選択する処理(ステップS24)に移行した回数がt回目のときのTの値をTと表すこととし、ステップ24に移行した回数がt+1回目のときのTの値をTt+1とし、γを1以下の定数(1未満であることが好ましい)とすると、式(1)における温度Tは、例えば、前述の式(2)によって、ステップS24の実行時毎に計算すればよい。
また、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が多いときには、温度Tが高いと、不適切な特徴点を選択する可能性が高くなりすぎる。よって、特徴点セット選択手段51が選択する特徴点セットに含まれる特徴点数が予め定めた閾値より小さくなるまでは、各特徴点セットの認識誤差のうち最小となる認識誤差が、ステップS21〜S26の繰り返し処理における前回のステップS24で選択した特徴点セットで認識タスクを行ったときの認識誤差より大きい場合であっても、認識誤差が最小となる特徴点セットを選択することが好ましい。
ステップS24の後、特徴点選択手段53は、ステップS24で選択した特徴点セットに属する特徴点の数が、ユーザの所望の特徴点数(換言すれば、最終的に選択する特徴点数)になったか否かを判定する(ステップS25)。ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になっていれば(ステップS25におけるYes)、特徴点選択手段53は、その特徴点セットに属する特徴点を、認識アルゴリズムに適した特徴点として決定し、処理を終了する。このとき、その特徴点群の情報を出力してもよい。なお、ユーザの所望の特徴点数は、例えば、予め特徴点選択手段53が記憶していてもよい。あるいは、ステップS11以降の処理の開始前に、事前に外部から入力されていてもよい。
このように、ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になった場合、特徴点選択手段53は、ステップS21〜S26の繰り返し処理を停止して、処理を終了する。このとき、特徴点選択手段53は、直近のステップS21〜S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
ステップS24で選択した特徴点セットに属する特徴点の数がユーザの所望の特徴点数になっていなければ(具体的には、ユーザの所望の特徴点数よりも多ければ)、特徴点選択手段53は、ステップS21に戻ったときに特徴点セット選択手段51が特徴点セットに含める特徴点の数を更新する(ステップS26)。ステップS26では、特徴点選択手段53は、ステップS24で選択した特徴点セットに属する特徴点の数から一定数を減算した値を、新たな特徴点数として定めればよい。この減算する値は予め定めておけばよい。
ステップS26の後、特徴点選択システムは、ステップS21以降の処理を繰り返す。ステップS26からステップS21に戻ったときには、特徴点セット選択手段51は、ステップS24で選択された一つの特徴点セットを特徴点の候補として、その特徴点の候補の中から、ステップS26で更新された特徴点数の特徴点を含む特徴点セットを選択する。そして、認識誤差算出手段52が、その特徴点セットに属する特徴点を用いて評価データに対する認識タスクを実行し、そのときの認識誤差を算出する(ステップS22)。ステップS26で更新された特徴点数の特徴点を含む特徴点セットが全て選択された否かを判定し(ステップS23)、その特徴点セットが全て選択し、各特徴点セットについて認識誤差を算出するまで、ステップS21〜23の繰り返し処理を行う。
ただし、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51は、一定の確率で、ステップS24で特徴点選択手段53が選択した特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点を含める。本例では、特徴点セット選択手段51は、ステップS24で選択された特徴点セットに対して、その特徴点セットには含まれていないが、初期特徴点候補に含まれる特徴点をランダムに追加する処理を、一定の確率で実行する。追加する特徴点の個数は、予め定めておけばよい。また、このように、ステップS24で選択された特徴点セットに対して、特徴点を追加する場合、特徴点セット選択手段51は、ステップS26で更新された特徴点数(次の特徴点セット選択時に特徴点セットに含める特徴点の数)も増加させてよい(本例では増加させるものとする)。ただし、この特徴点数は、特徴点を追加後の特徴点セットに得する特徴点数よりも小さくなるようにする。ステップS26からステップS21に戻ったときに、ステップS24で選択された特徴点セットに対して特徴点セット選択手段51が特徴点を追加するか否かは、既に説明したように、例えば、乱数を用いて決定すればよい。
なお、ここでは、ステップS24で選択された特徴点セットに対して、一定の確率で特徴点を追加する場合を例にしているが、ステップS24で選択された特徴点セット内の一部の特徴点を他の特徴点に入れ替えてもよい。
上記の一定の確率のもとで、特徴点セット選択手段51が特徴点セットに特徴点を追加した場合は、特徴点セット選択手段51は、ステップS21〜S23の繰り返し処理において、特徴点が追加された特徴点セットを特徴点の候補として、その特徴点の候補の中から、定めた特徴点数分の特徴点を含む特徴点セットをそれぞれ選択していく。また、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51が、上記のような特徴点セットに対する特徴点追加処理を行わない場合には、特徴点セット選択手段51は、ステップS21〜S23の繰り返し処理において、前のステップS24で選択された特徴点セットを特徴点候補として、その特徴点の候補の中から、ステップS26で更新された特徴点数分の特徴点を含む特徴点セットをそれぞれ選択していく。
ステップS23で、未選択の特徴点がないと判定したときには、ステップS24に移行し、既に説明した動作と同様の動作を行えばよい。そして、ステップS24で選択した特徴点セットに属する特徴点の数が、最終的に選択しようとする特徴点数まで減少したならば(ステップS25におけるYes)、処理を終了する。
次に、ステップS22において、認識誤差算出手段52が実行する認識タスクの実行例を説明する。ここでは、認識タスクとして姿勢推定を行う場合を例にして説明する。姿勢推定は、「画像から抽出された特徴点の位置」と「3D形状モデル上の特徴点から計算される、ある姿勢における画像上の特徴点の位置」との間の誤差(再投影誤差)が最小となるような姿勢を計算する処理である。再投影誤差をεとすると、再投影誤差εは、以下に示す式(3)で表される。
Figure 2012032747
式(3)において、xは特徴点抽出器の学習済みの内部データを用いて画像(評価データ)から抽出された特徴点の位置である。また、Xはその特徴点に対応する3D形状モデル上の特徴点の位置である。また、透視カメラモデルPを以下の式(4)のように定義すると、式(3)におけるp,p,pは、P=[pとなる値である。p,p,pから姿勢を計算することができるので、εが最小となるようなp,p,pを求めることが姿勢推定であるということができる。
Figure 2012032747
ただし、Aは、カメラの内部パラメータ行列であり、カメラの内部パラメータ行列として現実的な値に定めておけばよい。また、特徴点確定後に実際に画像を撮影して認識タスクを行うときに、その画像を撮影するカメラの内部パラメータ行列をAとして用いてもよい。Mは、以下の式(5)で表される対象物体の姿勢パラメータ行列である。式(5)において、Rは対象の回転を表しており、Tは物体の3次元位置を表している。
Figure 2012032747
また、アフィンカメラモデルPを以下の式(6)のように定義する。
Figure 2012032747
このアフィン変換モデルPにより、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
Figure 2012032747
式(7)において、チルダを付したxは、xの斉次表現である。式(7)ではベクトルの第3要素が常に一定であるため、Pの上2行を持つ部分行列Pa2を用いて、以下に示す式(8)のように表すことができる。
x=Pa2X 式(8)
a2は8の要素を持つため、4点以上の特徴点が与えられれば、Pa2を最小二乗法で計算できる。また、求められたPa2から姿勢パラメータMを計算することができる。認識誤差算出手段52は、X(3D形状モデル上の特徴点の位置)およびx(評価データから抽出される特徴点の位置)および式(8)を用いて行列Pa2を計算する。そして、そのPa2および式(6)とにより、姿勢パラメータ行列Mにおける回転Rおよび物体の3次元位置T)を求め、これを初期値とする。
また、式(4)に示す透視カメラモデルPを用いて、3D形状モデル上の特徴点Xは画像上の特徴点xとして投影される。
Figure 2012032747
ここで、λは定数倍の不定性を表すスカラ量である。
認識誤差算出手段52は、式(3)で表される再投影誤差εを繰り返し法により最適化することで、姿勢推定を行う。j回目の反復結果により得られる姿勢パラメータを用いて計算されるカメラ行列をPPjとする。このとき、各姿勢パラメータの更新値を、Δφ,Δθ,Δψ,Δt,Δt,Δtを用いて、以下の式(10)が成立する。認識誤差算出手段52は、式(10)によりΔφ,Δθ,Δψ,Δt,Δt,Δtを計算する。
Figure 2012032747
認識誤差算出手段52は、3組以上の対応点組を用い、最小二乗法を用いて更新パラメータを求め、その更新パラメータを用いて、以下の式(11)によりカメラ行列を更新する。
Figure 2012032747
式(11)において、Pは各パラメータよりカメラ行列を計算する関数である。前述の初期値から更新パラメータが十分に小さくなるまで、認識誤差算出手段52は、式(10)、式(11)の計算を繰り返すことにより、再投影誤差εを最小にするような姿勢を表す投影行列P(換言すればp,p,p)を求めればよい。このεが認識誤差である。ステップS24において、特徴点選択手段53は、εが最小となる特徴点セットを選択する。ただし、最小となるεが、前回のステップS24で選択した特徴点セットにおけるεより増加していれば、既に説明したように特徴点セット毎に、式(1)でPを計算し、Pに応じて確率的に特徴点セットを選択する。
上記の例では、認識誤差算出手段52は、認識誤差としてεを計算したが、認識誤差としてε以外の値を計算してもよい。例えば、認識誤差算出手段52は、認識誤差として、以下の式(12)のεを計算してもよい。
Figure 2012032747
式(12)においてハット記号を付したXは、Xの真値であり、R,Tは姿勢推定により得られた測定結果である。式(12)においてiで示す特徴点に関する各項の積算を行う際に、iで示す特徴点の特徴点抽出誤差を利用し、誤差の大きい特徴点の重みを小さくすることによって、認識性能を向上させることもできる。この場合、各項に特徴点抽出誤差の分散の逆数を用いることが一般的である。なお、特徴点抽出誤差とは、評価データから切り出したテンプレートに基づいて求めた特徴点の位置と、3D形状モデル上の指定された特徴点に対応する正しい特徴点の位置との差である。
本実施形態によれば、特徴点セット毎に実際に認識タスクを実行し、その結果得られる認識結果と正解との差(認識誤差)や、認識誤差の増加量a(式(1)参照)を利用して、ステップS24で特徴点セットを選択していく。よって、実際に特徴点を用いて実行する認識タスクの認識アルゴリズムに適切な複数の特徴点を選ぶことができる。
また、仮に、図3に示すフローチャートのステップS24において、常に、認識誤差が最小となる特徴点セットを選択するものとし、ステップS26からステップS21に戻ったときに特徴点セットに対する特徴点の追加を行うことがないとする。すると、ステップS24で選択された特徴点セットに属さない特徴点は、その後の処理で選択されることはない。このため、特徴点セットに属する特徴点数が多い初期段階で重要度を高く評価することができないような特徴点は、早い段階で選択候補から漏れてしまいやすい。
一方、本実施形態では、ステップS24において、各特徴点セットについての認識誤差のうち最小となる認識誤差が、前回のステップS24で選択した特徴点セットについての認識誤差より大きい場合、前述の式(1)によりPを特徴点セット毎に計算し、Pの値が大きいほど選択されやすく、Pの値が小さいほど選択されにくくするという条件のもとで、特徴点セットを一つ選択する。Pの値が小さい特徴点セットに関しては、選択されにくいものの、選択される余地を残しているので、特徴点数が多い初期段階で重要度を高く評価することができないような特徴点を漏れにくくすることができる。
また、ステップS26からステップS21に戻ったときに、特徴点セット選択手段51は、一定の確率で、ステップS24で選択された特徴点セットに対して、その特徴点セットに含まれていない特徴点を含ませるようにする。そして、ステップS21〜S23の繰り返し処理におけるステップS21では、その特徴点セットを特徴点の候補として、その特徴点の候補の中から特徴点セットを各通り選択していく。従って、特徴点数が多い初期段階で重要度を高く評価することができないような特徴点がステップS24で選択される特徴点セットから漏れてしまったとしても、ステップS21でそのような特徴点を含む特徴点セットを再度選択することができる。換言すれば、一旦漏れてしまった重要な特徴点を再度復活させるようにして、重要な特徴点を最終的な選択結果に残しやすくすることができる。
また、上記の例では、ステップS26で特徴点数を削減しながら、ステップS21〜S26の繰り返し処理を行う。よって、一定の確率で特徴点数が増加することもあるが、特徴点セットに含める特徴点数を逐次的に減少させるようにして、最終的に選択する特徴点を決定する。このようにすることで、最終的に選択する特徴点を決定するまでの計算量を抑えることができる。
また、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定することによって、特定の個体にとって適切な特徴点を選択したり、特徴点抽出器の内部データを生成したりすることができる。
また、本実施形態では、3D形状モデルから生成した学習データから切り出したテンプレートに基づいて、3D形状モデル上の指定された各特徴点について内部データ(特徴点抽出器の内部データ)を学習する。そして、3D形状モデルから生成した評価データを用いて、その内部データによる特徴点判定を行って認識タスクを実行したときの認識誤差を評価することができ、特徴点判定および認識タスクの両者を通じて、精度よく認識タスクを実行することができる特徴点を得ることができる。
また、一般に、システム稼働後に認識対象の個体が新たに登録されるシステムにおいて、特徴点位置は全個体で共通とされていたが、本実施形態では、個体毎に適した特徴点を選択することができる。一般的なシステムでは、個体毎に特徴点抽出器の内部データを学習するためには、事前に個体毎の特徴点を決めておかなければならなかったため、認識対象となる個々の個体毎に好ましい特徴点を定めるために、事前に特徴点を定める必要が生じてしまう。すなわち、目的とする事項そのものが事前に必要となってしまう。そのため、個体毎に好ましい特徴点を選択することや、個体毎に特化した特徴点抽出器の学習は行えなかった。それに対し、本発明では、一つの個体の3D形状モデルおよびその3D形状モデル上の複数の特徴点を指定すれば、その3D形状モデルから学習データおよび評価データを作成し、学習データに基づいて特徴点抽出器の内部データの学習を行うことができる。そして、評価データを用いて認識タスクを実行し認識誤差を利用してステップS24で特徴点セットを選択していくことを繰り返すことによって、一つの個体に関して、適切な特徴点を選択することができる。また、その特徴点の内部データは学習できている。よって、本発明によれば、個体毎に、適切な特徴点を選択したり、特徴点抽出器の学習を行ったりすることができる。例えば、ある人物に固有の黒子を特徴点とすれば、その人物の姿勢推定や個体識別(顔識別)の精度を高められると考えられるが、本発明によればそのような個体固有の特徴点を、好ましい特徴点として選択することができる。
また、複数の個体の3D形状モデルやその3D形状モデル上における複数の特徴点を指定することによって、個体に特化した特徴点ではなく、複数の個体において共通に重要である特徴点を選択したり、共通で利用可能な特徴点抽出器の学習を行ったりすることもできる。この場合、例えば、各個体間で類似しているものとして対応付けられている特徴点を指定して、本発明の動作を実行させればよい。
また、個体毎に特徴点を選択する処理を行い、個体毎の特徴点のうち、共通の特徴点(個体間で類似する特徴点)を選択してもよい。また、各個体間で類似する特徴点をしておき、その特徴点により特徴点抽出器の内部データを学習させ、評価データを用いた評価は、個体毎に個別に行うこととしてもよい。この点は、後述の実施形態でも同様である。
次に、本実施形態の変形例について説明する。
初期特徴点候補の数をNとし、最初にステップS21に移行したときに定める特徴点数をmとすると、ステップS21〜S23の繰り返し処理を回行うことになる。そして、ステップS21〜S26の処理を繰り返して、最終的に得る特徴点セットの精度を高めるためには、処理の開始時に指定する特徴点の数Nを大きくしておく必要があるが、そうするとステップS21〜S23の繰り返し数が多くなり、処理時間が長くなってしまう。
そこで、ステップS16からステップS21に移行したときや、ステップS26からステップS21に移行したときに、その後に行うステップS21〜S23の繰り返し処理の回数を固定回数(ここではP回とする。)に定めておいてもよい。そして、ステップS21〜S23の繰り返し処理をP回実行したときに、特徴点選択手段53がステップS24を実行してもよい。この場合、特徴点セット選択手段51によってP個の特徴点セットが選択されているので、特徴点選択手段53は、そのP個の特徴点セットの中から一つの特徴点セットを選択すればよい。
また、上記のステップS21〜S23の処理の繰り返し回数Pを以下のように決定してもよい。ステップS21〜S23の繰り返し数Pに応じた認識タスクの総実行時間と、認識誤差の関係は、図4に示すようになる。すなわち、繰り返し数Pの値を増やすと認識タスクの総実行時間が増えるが、実行時間の増加につれて認識誤差は減少し、ある程度まで減少すると認識誤差は収束する。従って、認識誤差が収束するときのPを定めておくことにより、処理時間をできるだけ短くしつつ、できるだけ認識誤差を少なくすることができる。このPは、予め想定して決定してもよい。あるいは、特徴点選択システムが繰り返し数決定手段(図示せず)を備えていてもよい。この場合、特徴点選択システムがPを変化させて、それぞれのPについて図3に示すフローチャートを実行し、繰り返し数決定手段(図示せず)が、認識誤差が収束するときのPを決定する。その後、特徴点を選択する処理を行うときには、図3に示すフローチャート中のステップS21〜S23の繰り返し処理を、決定された回数だけ実行すればよい。
また、特徴点セット選択手段51は、予め定められた特徴点が固定的に特徴点セットの中に含まれるようにして、特徴点セットを選択してもよい。すなわち、ステップS21で選択される特徴点セットに属する特徴点の数をm個とし、予め固定的に特徴点セットに含められると定められた特徴点の数をZとすると、m−Z個の特徴点を、特徴点候補の中から選択し、m個の特徴点を含む特徴点セットを定めればよい。ただし、m>Zである。また、mは、ステップS26で減少するように更新され、ステップS26からステップS221に戻ったときには、一定の確率で増加するように定められる。特徴点セットに固定的に含まれる特徴点は、ユーザが重要な特徴点であると予測し、ユーザが人手で設定しておけばよい。この設定態様は限定されない。このように、特徴点セットに固定的に含めるZ個の特徴点を定めておき、残りのm−Z個の特徴点をステップS21で選択して、ステップS21〜S23の繰り返し処理をP回繰り返してもよい。あるいは、固定的でないm−Z個の特徴点の組み合わせが全て選択されるまでステップS21〜S23の繰り返し処理を行ってもよい。
また、上記の実施形態では、ステップS24で選択した特徴点セットに属する特徴点の数が、最終的に選択しようとする特徴点数(ユーザの所望の特徴点数)まで減少したときに(ステップS25におけるYes)、処理を終了する場合を説明した。ステップS21〜S26の繰り返し処理を停止して、処理を終了する基準として他の基準を用いてもよい。以下、処理を終了する他の基準について説明する。
上記の例において、ステップS21〜S26の繰り返し処理では、ステップS26からステップS21に戻ったときに、選択する特徴点セットに含める特徴点数を一定の確率で増加することがある、ステップS26に移行する毎に、特徴点セットに含める特徴点数を値が小さくなるように更新する。従って、全体としては、ステップS21〜S26の処理の繰り返し数が増えると、選択される特徴点セットに属する特徴点の数は減少していく傾向になる。そして、特徴点セットに属する特徴点の数が少なくなると、その特徴点セットに属する特徴点を用いて認識タスクを実行したときの認識誤差が増加していく傾向がある。そこで、ステップS25において、特徴点選択手段51は、直近のステップS21〜S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値が、予め定められた閾値(認識誤差に関する閾値)以上になった場合、ステップS26に移行せずに、処理を終了すると決定してもよい。この場合、特徴点選択手段51は、直近のステップS21〜S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定し、処理を終了する。また、このとき、直近のステップS24で選択した特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
また、あるいは、特徴点選択手段51は、前回のステップS21〜S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値に対する、直近のステップS21〜S23の繰り返し処理で計算された特徴点セット毎の認識誤差の最小値の増加量を計算し、その増加量が予め定められた閾値(認識誤差の増加量に関する閾値)以上になった場合、ステップS26に移行せずに、処理を終了すると決定してもよい。この場合にも、特徴点選択手段51は、直近のステップS21〜S23の繰り返し処理で選択された複数の特徴点セットのうち、認識誤差が最小となる特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定し、処理を終了する。また、このとき、直近のステップS24で選択した特徴点セットに属する特徴点を認識アルゴリズムに適切な特徴点として決定してもよい。
実施形態2.
第1の実施形態では、特徴点候補から特徴点を除外した特徴点セットの全てについて、姿勢推定等の認識タスクを実行し、認識誤差を計算していた。これに対し、第2の実施形態では、特徴点セット毎に認識タスクを実行するのではなく、認識誤差を評価しようとしている特徴点セットを選択する元になった、前回の繰り返し処理で認識誤差が既に評価された特徴点セットの認識誤差の値を利用して、その特徴点セットから任意の特徴点を除外した特徴点セットでの認識誤差の値を推定する技術を利用する。このように特徴点セットの認識誤差を推定することで、計算量を少なくすることができる。
また、第1の実施形態では、特徴点候補から特徴点セットを選択する特徴点セット選択手段51は、特徴点セットに対して特徴点を追加したり、特徴点候補から特徴点を除外して特徴点セットを選択したりする際に、それらの特徴点をランダムに選択する。これに対し、第2の実施形態では、特徴点候補全てを用いたときの認識誤差およびその微分値に基づいて、所定の特徴点を特徴点候補から除外または追加して生成される特徴点セットを認識タスクに用いたときの認識誤差を推定する。そして、特徴点候補の各特徴点の重要度を予め予測しておくことにより、重要度の高い特徴点を優先して選択した特徴点セットを生成する。この方式により、より適切な特徴点を選択することができる。
図5は、本発明の第2の実施形態の特徴点選択システムの例を示すブロック図である。図6は、第2の実施形態の処理経過の例を示すフローチャートである。
第2の実施形態の特徴点選択システムは、第1の実施形態の構成要素に加えて、特徴点重要度推定手段54を備える。また、第2の実施形態では、特徴点セット選択手段51が行うステップS21の処理内容と、認識誤差算出手段52が行うステップS22の処理内容がそれぞれ第1の実施形態と異なる。図6に示すステップS21,S22,S31以外の処理は、第1の実施形態(図3参照)と同様である。
第2の実施形態においても、認識タスクとして姿勢推定を行う場合、第1の実施形態で説明した認識誤差εの最小化計算(式(10)および式(11)の繰り返し計算)により姿勢推定を行える。ただし、第2の実施形態では、εの最小化計算にHessian近似法を適用し、式(10)および式(11)の繰り返し計算を行わずに、前回の繰り返し処理において計算した認識誤差の値を用いて、そのときの特徴点セットから任意のq点を除いた特徴点セットにおけるεの値を計算する。この結果、εの最小化の計算量を少なくすることができる。
第1の実施形態で説明したεの最小化計算を用いると、認識誤差算出手段52は、現在の特徴点セット(ここでは特徴点数がm個とする。)からq個の特徴点を削減する際に、この最小化計算を回繰り返すことになる。例えば、m=10000であり、q=1であるとすると、10000個から1つの特徴点を削減する際に10000回最小化計算を行うこととなり、q≧2のときにはさらに計算量が増える。Hessian近似法を適用することでこの計算量を削減することができる。Hessian近似法は、特徴点セットに含める特徴点の数をq個ずつ減少させる場合でも、q個ずつ増加させる場合でも適用できるが、ここでは特徴点の数をq個ずつ削減する場合を例にして説明する。
以下、式(10)で示したΔφ,Δθ,Δψ,Δt,Δt,Δtをベクトルとして並べて表した姿勢パラメータをθとする。姿勢推定は、認識誤差関数εを最小化する姿勢パラメータθを求める処理である。これは一般に非線形最適化となり、Gauss-Newton法、Levenberg-Marquard 法等の一般的な方法で最小化を行う。また、これらの手法では、εの1次・2次微分値を計算に用いている。第2の実施形態では、認識誤差算出手段52は、最終的にεを最小化したときのε,θ、および1次・2次微分値を使って、特徴点を削減した後のεを計算し、姿勢推定を行わずにどの特徴点を削減すればよいのかを予見する。
現在の特徴点セット(前回のステップS24で選択された特徴点セット)内の特徴点の数をmとし、削減しようとしている特徴点の数をqとする。ただし、qはmに比べて小さい数であり、具体的には2,3を想定する。また、現在の特徴点セットであり、既に姿勢推定が行われεが計算済みとなっている特徴点セットをSとし、その特徴点セットSからq個の特徴点を除いた特徴点のセットをSm−qとする。そして、除こうとしているq個の特徴点のセットをSとする。認識誤差算出手段52は、m個の特徴点を含む特徴点セットSを、m−q個の特徴点を含む特徴点セットSm−qとq個の特徴点を含む特徴点セットSとに分ける。Sm−q⊂Sである。
また、現在の特徴点セットSによる姿勢推定の認識誤差εをコスト関数fと表すこととする。すると、このコスト関数は式(13)のように分解する。
Figure 2012032747
式(13)において、チルダを付したzは、学習済みの特徴点抽出器によって判定した特徴点iの画像上の位置である。また、z(θ)は、姿勢がθであるときの、3D形状モデル上の特徴点iから計算される画像上での特徴点iの位置であり、姿勢θにおける特徴点iの正解位置に該当する。なお、これらの画像は評価データ生成手段44に生成された評価データである。
また、Σは、特徴点iの特徴点抽出誤差の分散を対角成分とする行列である。なお、特徴点抽出誤差は、例えば、特徴点位置検出手段46が計算すればよい。
また、式(13)は以下の式(14)のように表すことができる。
=f+δf 式(14)
は、現在の特徴点セットSの全特徴点の分の認識誤差(εの値)である。fは、q個の特徴点を取り除いた後のコスト関数であり、以下の式(15)のように表される。fは、q点を除いた特徴点セットSm−qの分の認識誤差(εの積算をq点を除いた特徴点についてのみ行った値)である。
Figure 2012032747
δfは、取り除くq個の点に対応するコスト関数であり、以下の式(16)のように表される。δfは、除いたq点の分の認識誤差(εの積算をq点の特徴点についてのみ行った値)である。
Figure 2012032747
式(14)の各項のHessianをH,H,δHで表すと、以下の式(17)がが得られる。Hessianは、fのθによる2次微分を表す行列である。
=H+δH 式(17)
f+における姿勢の推定値が得られているとする。このとき、以下の式(18)が成立する。ただし、g(・)=df/dθである。
Figure 2012032747
そして、以下に示す式(19)が成立する。
Figure 2012032747
式(19)において、gはεのθによる1次微分である。また、ハット記号を付したθは、現在のm個の特徴点を含む特徴点セットSで姿勢推定したときの姿勢パラメータ(既に計算した姿勢パラメータ)である。ハット記号を付したθは、q個の特徴点を除いた特徴点セットSmーqで姿勢推定したときの姿勢パラメータであり、処理時間を削減するために計算の対象外としようとするものである。
また、ハット記号付きのf(θ)は、q個の特徴点を除いた特徴点セットSm−qで姿勢推定したときの認識誤差εであり、処理時間を削減するために計算の対象外としようとするものである。
ハット記号付きのδg(θ)は、現在のm個の特徴点を含む特徴点セットSで姿勢推定したときの姿勢パラメータの値における、認識誤差の1次微分値であり、この値は姿勢推定処理の過程ですでに計算されているものである。
また、H −1は、q個の特徴点を除いた特徴点セットSm−qで姿勢推定したときの姿勢パラメータの値における、認識誤差の2次微分値の逆行列である。この値は、計算しないことが好ましいが、特徴点数mがqに比べて十分に大きい場合にはHで近似しても(すなわち置き換えても)大差ないことが知られている。そして、Hは姿勢推定処理の過程で既に計算されているものである。ハット記号を付したθの計算にGauss-Newton法やMarquardt 法を利用するとHは計算済みとなる。
をHに置き換えると、以下の手続により、εを最小化しなくてもSを取り除いた後のコスト関数値を近似的に計算することができる。認識誤差算出手段52は、以下の処理を行うことで、最小化処理を行う。
(1)認識誤差算出手段52は、S通り変化させつつ以下の処理を実行する。
(2)認識誤差算出手段52は、以下の式(20)を計算する。
Figure 2012032747
(3)次に、認識誤差算出手段52は、以下の式(21)を計算する。
Figure 2012032747
(4)次に、認識誤差算出手段52は、f(θ)が最小となるSを取り除いて、Sm−qを作成する。
(5)次に、認識誤差算出手段52は、実際にfを最小化して、ハット記号付きのθを求める。
上記の(3)の手続では、fの最小化によってハット記号付きのθを計算することなく、右辺の
Figure 2012032747
の値を評価する。
このように、本実施形態においてHessian近似法を適用することで、認識誤差の最小値計算量を削減する効果が得られる。
以上の説明では、特徴点の数をq個ずつ削減する場合を例にしたが、特徴点の数をq個ずつ増加させていく場合には、g(・)=df/dθであり、式(19)の代わりに、以下に示す式(22)が成立する。この場合には、追加するSを定めていけばよい。
Figure 2012032747
以下、式(19)の導出について説明する。まず、f(θ)は、式(23)のように定義される。
Figure 2012032747
df/dθ=g等のように書くこととする。g(θ)=0より、以下の計算が成り立つ。
Figure 2012032747
上記の式において、g(θ)=0であり、よって、式(24)が得られる。
Figure 2012032747
また、以下の計算式が成立し、式(24)を代入することで、以下に示す式(25)(式(19)と同様の式)が得られる。
Figure 2012032747
Figure 2012032747
特徴点セットの認識誤差を推定する処理の他に、本実施形態では、特徴点セット選択手段51によるステップS21の処理の前に、特徴点重要度推定手段54が、以下の処理を行う。すなわち、ステップS21の前に、特徴点セットに含める特徴点としてどの特徴点を選択するかに関する確率を、現在の特徴点候補(ここでは、前回のステップS24で選択された特徴点セット)から特徴点を除外したり追加したりしたときの認識誤差の増減量に基づいて決定する(ステップS31)。換言すれば、特徴点重要度推定手段54は、前回のステップS24で選択された特徴点セットに特徴点を追加したり除外したり場合における、特徴点セット以外の特徴点が特徴点セットに追加される確率や、特徴点セットに属する特徴点が除外される確率を、特徴点の追加や除外後の認識誤差の増減量に基づいて決定する。
以下、本実施形態における特徴点重要度推定手段54および特徴点セット選択手段51の動作(ステップS31,S21。図6参照。)について説明する。
初期特徴点候補の各特徴点が、現在の特徴点セット(前回のステップS24で選択された特徴点セット)に属する特徴点として選択されているか否かを“1”または“0”の値で表し、その値を並べたベクトルをwと表すこととする。また、このベクトル、およびこのベクトルの要素を「重み」と記す場合がある。特徴点全体に着目して「重み」と記す場合には、ベクトルを指し、個々の特徴点に着目して「重み」と記す場合には、ベクトルの要素を指す。ランダムにベクトルwの要素の値を“0”または“1”に変化させても、認識誤差の削減に有効な新たな重み(特徴点セットを規定するベクトル)が得られる確率は低い。現在の特徴点セットを表すベクトルをwとし、wの近傍空間を、認識誤差関数(コスト関数)fの削減度を指標に、効率的に探索したうえで、新たな重み(ベクトルwとする。)を決定することが好ましい。
そこで、現在の重みwを近傍の重みwへ変化させる際に、逐次予測法(認識誤差を予測する前述の方法)で用いた認識誤差関数の近似解を利用する。この近似解を用いることにより、現在の特徴点セットに含まれている各特徴点に対し、それらの特徴点を取り除いたときの認識誤差関数fの変化量を推定できる。また、現在の特徴点セットに含まれておらず、ベクトルの要素の値が“0”となっている各特徴点に対して、それらを復活させたとき(すなわち、重みの値を“1”に変化させたとき)の認識誤差関数fの変化量を推定できる。なお、復活させるとは、一旦、特徴点セットから漏れた特徴点を、特徴点セットに含めることを意味する。特徴点セット選択手段51は、これらの推定値(認識誤差関数fの変化量の推定値)に基づき、認識誤差関数fの値がより小さくなるように、確率的に重みをつけて、各特徴点の重みの変化、すなわち、各特徴点を特徴点セットに含めるか否かを決定する(ステップS21)。
初期特徴点候補の数をN個とし、現在の特徴点セットに属する特徴点の数をM個とする。この場合、ベクトルの要素はN個である。そして、現在の特徴点セットを表すベクトルwでは、その特徴点セットに属する特徴点に対応するM個の要素の値が“1”となっている。現在の特徴点セットに属するM個の特徴点のうち、K個の特徴点を排除し、その代わりに現在選択されていないN−M個の特徴点の中からK個の特徴点を復活させることを想定する。特徴点セットからK個の特徴点を排除するということは、特徴点の入れ替え後の特徴点セットを表すベクトルwにおいて、その特徴点に対応するK個の要素の値を“0”にすることを意味する。また、選択されていないN−M個の特徴点の中からK個の特徴点を復活させるということは、ベクトルwにおいて、その特徴点に対応するK個の要素の値を“1”にすることを意味する。特徴点セット選択手段51は、このとき入れ替える特徴点の数Kを、1〜M/2の乱数で決定する。すなわち、1〜M/2の範囲で乱数を発生させ、発生させた乱数の値を、入れ替える特徴点の数として決定する。
特徴点セット選択手段51は、排除する特徴点を以下の式(26)に示す確率分布で決定する。
P(w (t+1)=0|w (t)=1)=1/Zfi− −1 式(26)
式(26)におけるiは、ベクトル要素の順番(換言すれば特徴点の順番)を表す。また、w (t)は、図6におけるステップS31〜S26の繰り返し処理におけるt回目のステップS24で選択された特徴点セットを表すベクトルのi番目の要素である。w (t+1)=0は、その特徴点セットに対して特徴点の入れ替えを行った後のベクトルのi番目の要素を表す。そして、P(w (t+1)=0|w (t)=1)は、現在、特徴点セットに含まれているw (t)に対応する特徴点を排除する(すなわち、要素の値を0にする)確率を表している。
また、式(26)におけるZは、ΣP(w (t+1)=0|w (t)=1)となるように正規化する正規化定数である。
また、fi−は、i番目の特徴点(ここでは、現在の特徴点セットに含まれている特徴点)を排除した際の認識誤差関数の近似値であり、特徴点重要度推定手段54が、前述の式(19)から導出する。特徴点重要度推定手段54はさらに、fi−を用いてP(w (t+1)=0|w (t)=1)を計算する。特徴点重要度推定手段54がP(w (t+1)=0|w (t)=1)を計算する動作は、ステップS31(図6参照)に該当する。
特徴点セット選択手段51は、現在の特徴点セットに含まれる特徴点に関して、ステップS31で計算された確率P(w (t+1)=0|w (t)=1)に基づいて、特徴点セットから除外するか否かを決定する。具体的には、0〜1の範囲で乱数を発生させ、その乱数値が確率P(w (t+1)=0|w (t)=1)以下ならば、要素wの値を“1”から“0”にする。すなわち、wに対応する特徴点を特徴点セットから除外する。特徴点セット選択手段51は、ステップS21において、この処理を現在の特徴点セットに含まれる各特徴点に関して行う。
式(26)の確率分布は、現在の特徴点セットから取り除いた場合に認識誤差関数が小さくなる特徴点では高い確率となり、取り除いた場合に認識誤差関数が大きくなる特徴点では低い確率となる。従って、式(26)に従うことにより、特徴点セット選択手段51は、取り除いた場合に認識誤差関数が小さくなる特徴点を積極的に取り除く。また、そうでない特徴点は、特徴点セットから除去されにくくなる。
また、特徴点セット選択手段51は、特徴点セットの入れ替えで復活させる特徴点を以下の式(27)に示す確率分布に従って選択する。
P(w (t+1)=1|w (t)=0)=1/Yfi+ −1 式(27)
(t+1)やw (t)の意味は式(26)と同様である。そして、式(27)において、P(w (t+1)=1|w (t)=0)は、現在、特徴点セットに含まれていないw (t)に対応する特徴点を特徴点セットに復活させる(すなわち、要素の値を1にする)確率を表している。
また、式(27)におけるYは、ΣP(w (t+1)=1|w (t)=0)となるように正規化する正規化定数である。
また、fi+は、i番目の特徴点(ここでは、現在の特徴点セットに含まれていない特徴点)を復活させた際の認識誤差関数の近似値である。特徴点重要度推定手段54がfi+を以下の式(28)の計算によって計算する。
Figure 2012032747
特徴点重要度推定手段54は、さらに、fi+を用いてP(w (t+1)=1|w (t)=0)を計算する。特徴点重要度推定手段54がP(w (t+1)=1|w (t)=0)を計算する動作は、ステップS31(図6参照)に該当する。
ここで、fは、逐次予測法の場合と異なり、i番目の特徴点を特徴点セットに加える前のコストであり、θは、特徴点を復活させる前の推定パラメータである。上式により、特徴点セットに加えたときのコストが小さい点が積極的に特徴点セットに加えられ、そうでない点は特徴点セットに選択されにくくなる。
特徴点セット選択手段51は、現在の特徴点セットに含まれていない特徴点に関して、ステップS31で計算された確率P(w (t+1)=1|w (t)=0)に基づいて、特徴点セットに復活させるか否かを決定する。具体的には、0〜1の範囲で乱数を発生させ、その乱数値が確率P(w (t+1)=1|w (t)=0)以下ならば、要素wの値を“0”から“1”にする。すなわち、wに対応する特徴点を復活させ、特徴点セットに含める。特徴点セット選択手段51は、ステップS21において、この処理を現在の特徴点セットに含まれていない各特徴点に関して行う。
本実施形態では、特徴点重要度推定手段54がステップS31において、fi−およびfi+を計算し、さらに、式(26)、式(27)の左辺に示す確率を計算する。そして、ステップS31の後のステップS21において、特徴点セット選択手段51が、その確率を用いて、上記のように、現在の特徴点セットに含まれている特徴点を除外したり、現在の特徴点セットに含まれていない点を復活させたりする処理を行う。
以上の第1の実施形態および第2の実施形態において、温度Tが、特徴点の最適化における局所解を避けるためのシミュレーテッドアニーリングのパラメータである。既に説明したように、Tの設定方法として、前述の式(2)(すなわち、冷却関数Tt+1=γ・T)を用いて設定する方法がある。
例えば、一定の温度でd回近傍の探索を行い、その後、上記の冷却関数で温度Tを下げることが好ましい。また、例えば、γは0.8〜0.9程度の定数とする。また、一旦、特徴点の最適解を選択し、その特徴点の最適解におけるコストが導出されている場合には、初期温度Tの値を、その最適解のコストの10%以下の値とすればよい。まだ、特徴点の最適解を選択する処理を行っていない場合には、初期温度Tの値を、例えば、aの10%以下の値とすればよい。
高い温度Tから開始し、Tをゆっくり下げていくことで、特徴点の局所解を避けられる可能性が高くなる。しかし、処理時間は長くなる。特に、初期特徴点候補が多い状態から、高い温度で処理を開始すると、処理時間が長くなる。そこで、第1の実施形態によってある程度、特徴点の数を削減し、その結果得られた特徴点セットを元に、第2の実施形態の処理を実行してもよい。
次に、本発明の特徴点選択システムの最小構成について説明する。図7は、本発明の最小構成の例を示すブロック図である。本発明の特徴点選択システムは、特徴点セット選択手段51と、認識誤差算出手段52と、特徴点選択手段53とを備える。
特徴点セット選択手段51は、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する。
認識誤差算出手段52は、特徴点セット選択手段51に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて認識タスクを実行した場合における認識誤差を算出する。
特徴点選択手段53は、特徴点セット選択手段51に選択された特徴点セット毎の認識誤差の最小値が、特徴点候補を用いて認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、特徴点候補を用いて認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに認識タスクに適した特徴点を選択する。
そして、特徴点セット選択手段51は、特徴点選択手段53が特徴点セットを選択したときに、その特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する。
そのような構成により、認識タスクにおける認識アルゴリズムに合う適切な特徴点を選ぶことができ、また、重要な特徴点が最終的に選択した特徴点の集合から漏れにくくすることができる。
上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、前記特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、前記特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択手段とを備え、特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択システム。
(付記2)認識タスクは、個体の姿勢推定であり、認識誤差算出手段は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記1に記載の特徴点選択システム。
(付記3)認識タスクは、個体の姿勢推定であり、特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、特徴点選択手段が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択手段が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記1または付記2に記載の特徴点選択システム。
(付記4)特徴点選択手段は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記1から付記3のうちのいずれかに記載の特徴点選択システム。
(付記5)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出し、選択した特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択し、前記一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択方法。
(付記6)認識誤差を算出するときに、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記5に記載の特徴点選択方法。
(付記7)前記一つの特徴点セットを選択した場合、再度、特徴点セットを複数選択するときに、前記一つの特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、前記一つの特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記5または付記6に記載の特徴点選択方法。
(付記8)選択した複数の特徴点セットにおける特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記5から付記7のうちのいずれか1項に記載の特徴点選択方法。
(付記9)コンピュータに、認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、前記特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、前記特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させるための特徴点選択プログラム。
(付記10)コンピュータに、認識誤差算出処理で、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出させる付記9記載の特徴点選択プログラム。
(付記11)コンピュータに、特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、特徴点選択処理で選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択処理で選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定めさせる付記9または付記10に記載の特徴点選択プログラム。
(付記12)コンピュータに、特徴点選択処理で、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択させる付記9から付記11のうちのいずれか1項に記載の特徴点選択プログラム。
(付記13)認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択部と、前記特徴点セット選択部に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出部と、前記特徴点セット選択部に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択部が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択部とを備え、特徴点セット選択部は、特徴点選択部が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択することを特徴とする特徴点選択システム。
(付記14)認識タスクは、個体の姿勢推定であり、認識誤差算出部は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する付記13に記載の特徴点選択システム。
(付記15)認識タスクは、個体の姿勢推定であり、特徴点セット選択部は、特徴点選択部が特徴点セットを選択したときに、特徴点選択部が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択部が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める付記13または付記14に記載の特徴点選択システム。
(付記16)特徴点選択部は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する付記13から付記15のうちのいずれかに記載の特徴点選択システム。
この出願は、2010年9月6日に出願された日本特許出願2010−199228を基礎とする優先権を主張し、その開示の全てをここに取り込む。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記の実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
産業上の利用の可能性
本発明は、個体の姿勢推定や個体識別等の認識タスクを行う装置等で用いられる特徴点を決定するシステムに好適に適用される。
41 特抽学習・評価データ生成手段
42 学習データ生成手段
43 学習パターン生成手段
44 評価データ生成手段
45 特徴点抽出器学習手段
46 特徴点位置検出手段
51 特徴点セット選択手段
52 認識誤差算出手段
53 特徴点選択手段
54 特徴点重要度推定手段

Claims (10)

  1. 認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択手段と、
    前記特徴点セット選択手段に選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出手段と、
    前記特徴点セット選択手段に選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択手段が特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択手段とを備え、
    特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する
    ことを特徴とする特徴点選択システム。
  2. 認識タスクは、個体の姿勢推定であり、
    認識誤差算出手段は、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する
    請求項1に記載の特徴点選択システム。
  3. 認識タスクは、個体の姿勢推定であり、
    特徴点セット選択手段は、特徴点選択手段が特徴点セットを選択したときに、
    特徴点選択手段が選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、
    特徴点選択手段が選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める
    請求項1または請求項2に記載の特徴点選択システム。
  4. 特徴点選択手段は、選択した特徴点セットの特徴点数が所定数まで減少したこと、または、選択した特徴点セットにおける認識誤差が前回選択した特徴点セットにおける認識誤差から一定量以上増加したこと、または、選択した特徴点セットにおける認識誤差が予め定めた閾値以上になったことを所定の条件として、前記所定の条件が成立したときに、その時に定められていた特徴点数に基づいて選択された複数の特徴点セットのうち、認識誤差が最小になる特徴点セットに含まれる特徴点群を、認識タスクに適した特徴点として選択する
    請求項1から請求項3のうちのいずれか1項に記載の特徴点選択システム。
  5. 認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択し、
    選択した特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出し、
    選択した特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、複数の特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択し、
    前記一つの特徴点セットを選択したときに、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択する
    ことを特徴とする特徴点選択方法。
  6. 認識誤差を算出するときに、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出する
    請求項5に記載の特徴点選択方法。
  7. 前記一つの特徴点セットを選択した場合、再度、特徴点セットを複数選択するときに、
    前記一つの特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、
    前記一つの特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定める
    請求項5または請求項6に記載の特徴点選択方法。
  8. コンピュータに、
    認識タスクに適した特徴点の候補となる点の集合である特徴点候補から、特徴点の集合である特徴点セットであって、定められた特徴点数の特徴点を含む特徴点セットを複数選択する特徴点セット選択処理、
    前記特徴点セット選択処理で選択された特徴点セット毎に、特徴点セットに含まれる特徴点を用いて前記認識タスクを実行した場合における認識誤差を算出する認識誤差算出処理、および、
    前記特徴点セット選択処理で選択された特徴点セット毎の認識誤差の最小値が、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差より大きい場合に、特徴点セット毎に、前記特徴点候補を用いて前記認識タスクを実行した場合における認識誤差からの認識誤差の増加量の指数関数の逆数を計算し、その計算結果の値の大きさに応じて、一つの特徴点セットを選択し、特徴点セット選択処理で特徴点セットを選択する際の特徴点数を更新し、所定の条件が成立したときに前記認識タスクに適した特徴点を選択する特徴点選択処理を実行させ、
    特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、当該特徴点セットに基づいて特徴点候補を定め、再度、特徴点セットを複数選択させる
    ための特徴点選択プログラム。
  9. コンピュータに、
    認識誤差算出処理で、更新前の特徴点数の特徴点を含む特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータ、およびそれらの微分値を用い、更新後の特徴点数に基づいて選択された特徴点セットに含まれる特徴点を用いた場合の認識誤差を近似的に算出させる
    請求項8に記載の特徴点選択プログラム。
  10. コンピュータに、
    特徴点選択処理で特徴点セットを選択させたときに、特徴点セット選択処理で、
    特徴点選択処理で選択した特徴点セットに含まれる特徴点に関して、前記特徴点セットから削除した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した除外確率に応じて、前記特徴点を前記特徴点セットから除外し、特徴点選択処理で選択した特徴点セットに含まれないが、最初の特徴点候補に含まれる特徴点に関して、前記特徴点セットに追加した場合の認識誤差を、前記特徴点セットについて計算した姿勢推定の認識誤差および姿勢パラメータおよびそれらの微分値を用いて近似的に計算し、当該認識誤差の逆数を用いて計算した追加確率に応じて、前記特徴点を前記特徴点セットに追加することにより、特徴点候補を定めさせる
    請求項8または請求項9に記載の特徴点選択プログラム。
JP2012532853A 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム Withdrawn JPWO2012032747A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2010199228 2010-09-06
JP2010199228 2010-09-06
PCT/JP2011/004917 WO2012032747A1 (ja) 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Publications (1)

Publication Number Publication Date
JPWO2012032747A1 true JPWO2012032747A1 (ja) 2014-01-20

Family

ID=45810357

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012532853A Withdrawn JPWO2012032747A1 (ja) 2010-09-06 2011-09-01 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Country Status (2)

Country Link
JP (1) JPWO2012032747A1 (ja)
WO (1) WO2012032747A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6399518B2 (ja) * 2014-12-18 2018-10-03 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 処理装置、処理方法、およびプログラム
JP2018124798A (ja) * 2017-02-01 2018-08-09 東芝テック株式会社 画像探索装置および画像探索プログラム
WO2022044301A1 (en) * 2020-08-28 2022-03-03 Nec Corporation Information processing apparatus, information processing method, and computer readable medium

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3279913B2 (ja) * 1996-03-18 2002-04-30 株式会社東芝 人物認証装置、特徴点抽出装置及び特徴点抽出方法
WO2002007096A1 (fr) * 2000-07-17 2002-01-24 Mitsubishi Denki Kabushiki Kaisha Dispositif de recherche d'un point caracteristique sur un visage
JP4284288B2 (ja) * 2005-03-10 2009-06-24 株式会社東芝 パターン認識装置及びその方法
JP4774818B2 (ja) * 2005-06-07 2011-09-14 トヨタ自動車株式会社 画像処理装置及び画像処理方法
EP2106599A4 (en) * 2007-02-13 2010-10-27 Olympus Corp FEATURE COMPARISON PROCEDURE
JP4946730B2 (ja) * 2007-08-27 2012-06-06 ソニー株式会社 顔画像処理装置及び顔画像処理方法、並びにコンピュータ・プログラム
JP5206517B2 (ja) * 2009-03-13 2013-06-12 日本電気株式会社 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
US8744144B2 (en) * 2009-03-13 2014-06-03 Nec Corporation Feature point generation system, feature point generation method, and feature point generation program
JPWO2011086889A1 (ja) * 2010-01-12 2013-05-16 日本電気株式会社 特徴点選択システム、特徴点選択方法および特徴点選択プログラム

Also Published As

Publication number Publication date
WO2012032747A1 (ja) 2012-03-15

Similar Documents

Publication Publication Date Title
JP5206517B2 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
WO2011086889A1 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
EP3414743B1 (en) Method and system for efficiently mining dataset essentials with bootstrapping strategy in 6dof pose estimate of 3d objects
JP6483667B2 (ja) ベイズの最適化を実施するためのシステムおよび方法
CN110852349B (zh) 一种图像处理方法、检测方法、相关设备及存储介质
CN111523422B (zh) 一种关键点检测模型训练方法、关键点检测方法和装置
JP7263216B2 (ja) ワッサースタイン距離を使用する物体形状回帰
JP6597914B2 (ja) 画像処理装置、画像処理方法、及びプログラム
WO2012100819A1 (en) Method and system for comparing images
CN110648289B (zh) 图像的加噪处理方法及装置
KR20120066462A (ko) 얼굴 인식 방법 및 시스템, 얼굴 인식을 위한 학습용 특징 벡터 추출 장치 및 테스트용 특징 벡터 추출 장치
CN114072809A (zh) 经由神经架构搜索的小且快速的视频处理网络
JP2014160457A (ja) 対話的変数選択装置、対話的変数選択方法および対話的変数選択プログラム
JP2012234466A (ja) 状態追跡装置、方法、及びプログラム
CN111611395B (zh) 一种实体关系的识别方法及装置
WO2012032747A1 (ja) 特徴点選択システム、特徴点選択方法および特徴点選択プログラム
CN111445021A (zh) 学习方法、学习设备和计算机可读记录介质
KR101700030B1 (ko) 사전 정보를 이용한 영상 물체 탐색 방법 및 이를 수행하는 장치
WO2021095509A1 (ja) 推定システム、推定装置および推定方法
CN112287959A (zh) 目标重识别模型的训练方法以及目标重识别方法和装置
US20220027677A1 (en) Information processing device, information processing method, and storage medium
JP2007133840A (ja) EMObjectLocalizationusingHaar−likefeature
JP2018005505A (ja) 画像認識パラメータ設定装置、画像認識パラメータ設定方法、および画像認識パラメータ設定プログラム
Vijayarani et al. An efficient algorithm for facial image classification
US20210326754A1 (en) Storage medium, learning method, and information processing apparatus

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20141104