特許文献1や非特許文献1に開示されている技術では、大まかな視点を特定する処理と、特定した視点に応じた画像と入力画像との間で対応点を取得する処理と、の2段階の処理を行う必要がある。このため、計算負荷が増加してしまうという課題があった。
また、特許文献1や非特許文献1に開示されている技術では、3次元物体を複数の視点から撮影した画像のそれぞれについて、予め、特徴点や局所特徴量などをデータベースに登録しておく必要がある。このため、画像を記憶するデータベースが増大してしまうという課題があった。
また、特許文献1や非特許文献1に開示されている技術では、上述のように3次元物体を複数の視点から撮影するに際して、予め撮影する視点に偏りがある場合や、予め撮影する視点の数が少ない場合に、カメラ姿勢の推定精度の悪い視点が存在してしまう。このため、カメラ姿勢の推定精度に偏りが生じてしまい、カメラ姿勢の推定の安定性が損なわれてしまうおそれがあるという課題があった。
一方、非特許文献2に開示されている技術では、対象物の模様が均一でない場合に、データベースに予め記憶させる3次元座標の配置に偏りが生じてしまう場合がある。この場合、カメラ姿勢の推定精度に偏りが生じてしまい、カメラ姿勢の推定の安定性が損なわれてしまうという課題があった。
そこで、本発明は、上述の課題に鑑みてなされたものであり、計算負荷の増加およびデータベースの増大を抑制しつつ、カメラ姿勢の推定の安定性を向上させることを目的とする。
本発明は、上記の課題を解決するために、以下の事項を提案している。
(1) 本発明は、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するためのデータベース生成装置であって、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める特徴点検出手段(例えば、図2の特徴点検出部11に相当)と、記特徴点検出手段により求められた前記特徴点と対応付ける対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜して、対応点候補として前記局所特徴量とともに記憶手段に登録する学習手段(例えば、図2の学習部121に相当)と、を備えることを特徴とするデータベース生成装置を提案している。
この発明によれば、観察対象を撮影したカメラの姿勢を推定するためのデータベース生成装置に、特徴点検出手段および学習手段を設けた。そして、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、学習手段により、特徴点と対応付ける対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜して、対応点候補として局所特徴量とともに記憶手段に登録することとした。
このため、対応点候補の中から対応点を決定することで、特許文献1や非特許文献1に開示されている技術では必要であった、大まかな視点を特定する処理が、不要になる。したがって、計算負荷の増加を抑制することができる。
また、記憶手段への登録を、対応点となり得る候補の全てについて行うのではなく、これら候補を選抜したものについて行う。したがって、データベースの増大を抑制できる。
また、対応点となり得る候補の選抜に、これら候補の座標を用いるので、登録する候補の配置が偏ってしまうのを防止できる。また、対応点となり得る候補の選抜に、これら候補のそれぞれに対応する特徴点が検出された入力画像を撮影した際のカメラの位置を用いるので、登録する候補が、特定の視点から特徴点として検出されるものに偏ってしまうのを防止できる。以上によれば、特徴点検出手段により検出される可能性の高い特徴点に対応するものを、配置や視点によらず均一に、対応点候補として局所特徴量とともに記憶手段に登録することができる。このため、カメラ姿勢の推定精度に偏りが生じてしまうのを防止して、カメラ姿勢の推定の安定性を向上させることができる。
(2) 本発明は、(1)のデータベース生成装置について、前記学習手段は、前記観察対象を撮影する際に前記カメラが配置される可能性のある範囲を複数の視点クラスに分割し、前記対応点となり得る候補の中から、前記特徴点検出手段により検出される可能性の高い特徴点に対応するものを、当該視点クラスごとに予め定められた数ずつ選抜することを特徴とするデータベース生成装置を提案している。
この発明によれば、(1)のデータベース生成装置において、学習手段により、観察対象を撮影する際にカメラが配置される可能性のある範囲を複数の視点クラスに分割し、対応点となり得る候補の中から、特徴点検出手段により検出される可能性の高い特徴点に対応するものを、視点クラスごとに予め定められた数ずつ選抜することとした。このため、対応点候補が、特定の視点から特徴点として検出されるものに偏ってしまうのを防止できる。したがって、カメラ姿勢の推定精度に偏りが生じてしまうのを防止して、カメラ姿勢の推定の安定性を向上させることができる。
(3) 本発明は、(2)のデータベース生成装置について、前記学習手段は、前記観察対象の周囲から、当該観察対象を撮影する際に前記カメラを配置不可能な範囲と、当該観察対象を撮影する際に前記カメラが配置される可能性の低い範囲と、を除外して、前記観察対象を撮影する際に前記カメラが配置される可能性のある範囲とすることを特徴とするデータベース生成装置を提案している。
この発明によれば、(2)のデータベース生成装置において、学習手段により、観察対象の周囲から、観察対象を撮影する際にカメラを配置不可能な範囲と、観察対象を撮影する際にカメラが配置される可能性の低い範囲と、を除外して、観察対象を撮影する際にカメラが配置される可能性のある範囲とすることとした。このため、カメラが配置され得る範囲から特徴点として検出することのできる位置にのみ、対応点候補を配置することができる。したがって、データベースの増大を抑制しつつ、カメラ姿勢の推定の安定性を向上させることができる。
(4) 本発明は、(2)または(3)のデータベース生成装置について、前記学習手段は、前記観察対象を撮影する際に前記カメラが配置される可能性のある範囲を、当該観察対象に対する当該カメラの方向と、当該観察対象と当該カメラとの距離と、の少なくともいずれかに基づいて、前記複数の視点クラスに分割することを特徴とするデータベース生成装置を提案している。
この発明によれば、(2)または(3)のデータベース生成装置において、学習手段により、観察対象を撮影する際にカメラが配置される可能性のある範囲を、観察対象に対するカメラの方向と、観察対象とカメラとの距離と、の少なくともいずれかに基づいて、複数の視点クラスに分割することとした。このため、観察対象を撮影する際にカメラが配置される可能性のある範囲を、複数の視点クラスに適切に分割して、カメラ姿勢の推定の安定性を向上させることができる。
(5) 本発明は、(2)〜(4)のいずれかのデータベース生成装置について、前記学習手段は、各視点クラスにおける再現性を評価し、各視点クラスにおいて再現性の高い座標を予め定められた数ずつ求めて、前記対応点となり得る候補を選抜することを特徴とするデータベース生成装置を提案している。
この発明によれば、(2)〜(4)のいずれかのデータベース生成装置において、学習手段により、各視点クラスにおける再現性を評価し、各視点クラスにおいて再現性の高い座標を予め定められた数ずつ求めて、対応点となり得る候補を選抜することとした。このため、特徴点検出手段により検出される可能性の高い特徴点に対応するものを対応点候補とすることができるとともに、対応点候補が、観察対象を撮影する際にカメラが配置される可能性のある範囲のうち特定の範囲から特徴点として検出されるものに偏ってしまうのを防止できる。したがって、カメラ姿勢の推定の安定性を向上させることができる。
(6) 本発明は、(5)のデータベース生成装置について、前記学習手段は、前記対応点となり得る候補を選抜したもののうち、前記記憶手段に登録されていないものであって、再現性の最も高いものを、前記視点クラスごとに1点ずつ当該記憶手段に登録する登録手順と、前記記憶手段に登録した対応点候補の数が予め定められた規定数に達するまで、前記登録手順を繰り返す繰り返し手順と、を行うことを特徴とするデータベース生成装置を提案している。
ここで、例えば、対応点となり得る候補を選抜したもののうち同一のものを、第1の視点クラスにおいても、第2の視点クラスにおいても、記憶手段に登録した場合について、以下に検討する。この場合、記憶手段に登録される対応点候補の種類が少なくなるので、その結果、カメラ姿勢の推定の安定性が損なわれてしまうおそれがある。
そこで、この発明によれば、(5)のデータベース生成装置において、学習手段により、対応点となり得る候補を選抜したもののうち、記憶手段に登録されていないものであって、再現性の最も高いものを、視点クラスごとに1点ずつ記憶手段に登録することとした。このため、対応点となり得る候補を選抜したもののうち同一のものが、複数の視点クラスにおいて記憶手段に登録されてしまうのを防止できるので、カメラ姿勢の安定性を向上させることができる。
また、例えば、対応点となり得る候補を選抜したもののうち、記憶手段に登録されていないものであって、再現性の最も高いものを、視点クラスごとに一度に5つずつ記憶手段に登録した場合について、以下に検討する。なお、視点クラスとしては、第1の視点クラスと、第2の視点クラスと、の2つの視点クラスを想定し、第1の視点クラス、第2の視点クラスの順番に登録するものとする。また、第1の視点クラスにおいて再現性の高い上位5つの3次元座標の中に、第2の視点クラスにおいて再現性の高い上位5つの3次元座標のうちの2つが含まれているものとする。さらに、第2の視点クラスにおいて1〜7番目に再現性の高い3次元座標のうち、第1の視点クラスと重複しない5点の3次元座標については、第1の視点クラスにおいて低い再現性を持つ(または幾何的に観察されない)ものとする。
この場合、第1の視点クラスにおいては、再現性の高い上位5つの3次元座標が全て登録される。一方、第2の視点クラスにおいては、再現性の高い上位5つの3次元座標のうちの2つが既に登録されているため、再現性の高い上位5つの3次元座標のうちこれら2つを除くものと、6番目に再現性の高い3次元座標と、7番目に再現性の高い3次元座標と、が登録される。以上によれば、記憶手段に登録される3次元座標は10点になり、これら10点のうち、第1の視点クラスにおいて再現性の高い3次元座標は5点になるのに対して、第2の視点クラスにおいて再現性の高い3次元座標は7点になる。
以上のように、再現性の最も高いものを視点クラスごとに一度に複数個ずつ記憶手段に登録する場合には、記憶手段への登録を行う順番が遅い視点クラスほど、その視点クラスにおいて再現性の高い3次元座標が記憶手段に登録される数が多くなる可能性がある。このため、記憶手段への登録を行う順番が早い視点クラスほど、カメラ姿勢の推定精度が悪くなってしまう場合があり、カメラ姿勢の推定精度に偏りが生じてしまい、カメラ姿勢の推定の安定性が損なわれてしまうおそれがある。
そこで、この発明によれば、(5)のデータベース生成装置において、対応点となり得る候補を選抜したもののうち、記憶手段に登録されていないものであって、再現性の最も高いものを、視点クラスごとに1点ずつ記憶手段に登録する登録手順を、記憶手段に登録した対応点候補の数が予め定められた規定数に達するまで繰り返すこととした。このため、視点クラスごとに、再現性の高い座標が記憶手段に登録される数が異なってしまうのを、抑制することができる。したがって、対応点候補の全てにおける視点に対する再現性を平滑化することができ、対応点候補が、観察対象を撮影する際にカメラが配置される可能性のある範囲のうち特定の範囲から特徴点として検出されるものに偏ってしまうのを防止でき、カメラ姿勢の推定の安定性を向上させることができる。
(7) 本発明は、(6)のデータベース生成装置について、前記学習手段は、各視点クラスの優先度に応じて、前記規定数に対して視点クラスごとに重みづけを行うことを特徴とするデータベース生成装置を提案している。
この発明によれば、(6)のデータベース生成装置において、学習手段により、各視点クラスの優先度に応じて、上述の規定数に対して視点クラスごとに重みづけを行うこととした。このため、カメラが配置される可能性の高い範囲から特徴点として検出される点を、カメラが配置される可能性の低い範囲から特徴点として検出される点よりも多く、対応点候補として登録することができる。したがって、データベースの増大を抑制しつつ、カメラ姿勢の推定の安定性を向上させることができる。
(8) 本発明は、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するカメラ姿勢推定装置であって、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める特徴点検出手段(例えば、図2の特徴点検出部11に相当)と、前記特徴点検出手段により求められた前記特徴点に対応する局所特徴量を用いて、当該特徴点と対応付ける対応点の座標を求めるマッチング手段(例えば、図2のマッチング部12に相当)と、前記特徴点検出手段により検出された前記特徴点の2次元座標と、前記マッチング手段により求められた前記対応点の座標と、に基づいて、前記観察対象に対する前記カメラの相対的な姿勢を算出するカメラ姿勢算出手段(例えば、図2のカメラ姿勢算出部13に相当)と、を備え、前記マッチング手段は、前記特徴点検出手段により求められた前記特徴点に対応する局所特徴量を用いて、記憶手段(例えば、図2のデータベース122に相当)に登録された対応点候補の中から、当該特徴点と対応付ける対応点を決定し、前記記憶手段に登録された対応点候補は、前記対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜したものであることを特徴とするカメラ姿勢推定装置を提案している。
この発明によれば、観察対象を撮影したカメラの姿勢を推定するカメラ姿勢推定装置に、特徴点検出手段、マッチング手段、およびカメラ姿勢算出手段を設けた。そして、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、マッチング手段により、特徴点検出手段により求められた特徴点に対応する局所特徴量を用いて、記憶手段に登録された対応点候補の中から、特徴点と対応付ける対応点を決定することとした。ここで、記憶手段に登録された対応点候補とは、対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜したもののことである。また、カメラ姿勢算出手段により、特徴点検出手段により検出された特徴点の2次元座標と、マッチング手段により求められた対応点の座標と、に基づいて、観察対象に対するカメラの相対的な姿勢を算出することとした。
このため、特許文献1や非特許文献1に開示されている技術では必要であった、大まかな視点を特定する処理が、不要になる。したがって、計算負荷の増加を抑制することができる。
また、記憶手段に登録されるのは、対応点となり得る候補の全てではなく、これら候補を選抜したものである。このため、データベースの増大を抑制できる。
また、対応点となり得る候補の選抜に、これら候補の座標が用いられるので、登録される候補の配置が偏ってしまうのを防止できる。また、対応点となり得る候補の選抜に、これら候補のそれぞれに対応する特徴点が検出された入力画像を撮影した際のカメラの位置が用いられるので、登録される候補が、特定の視点から特徴点として検出されるものに偏ってしまうのを防止できる。以上によれば、特徴点検出手段により検出される可能性の高い特徴点に対応するものが、配置や視点によらず均一に、対応点候補として記憶手段に登録されることになる。このため、カメラ姿勢の推定精度に偏りが生じてしまうのを防止して、カメラ姿勢の推定の安定性を向上させることができる。
(9) 本発明は、(8)のカメラ姿勢推定装置について、前記マッチング手段は、前記記憶手段に登録された対応点候補の中から、前記特徴点検出手段により求められた前記特徴点に対応する局所特徴量に対して最も類似するものを選択し、当該特徴点と対応付ける対応点とすることを特徴とするカメラ姿勢推定装置を提案している。
この発明によれば、(8)のカメラ姿勢推定装置において、マッチング手段により、記憶手段に登録された対応点候補の中から、特徴点検出手段により求められた特徴点に対応する局所特徴量に対して最も類似するものを選択し、特徴点と対応付ける対応点とすることとした。このため、特徴点を適切な対応点と対応付けることができ、カメラ姿勢の推定精度を向上させることができる。
(10) 本発明は、(8)のカメラ姿勢推定装置について、前記記憶手段には、前記特徴点に対応する局所特徴量を前記対応点候補のいずれかに分類する分類器を学習した結果が登録され、前記マッチング手段は、前記特徴点検出手段により求められた前記特徴点に対応する局所特徴量を前記分類器に入力し、前記記憶手段に登録された前記対応点候補のそれぞれに対する尤度を求め、最も尤度の高い対応点候補を選択し、当該特徴点と対応付ける対応点とすることを特徴とするカメラ姿勢推定装置を提案している。
ここで、分類器を用いない場合には、特徴点検出手段により求められた特徴点に対応する対応点を、毎回、全ての対応点候補の中から探す必要があるため、対応点の探索時間が長くなってしまう。
そこで、この発明によれば、(8)のカメラ姿勢推定装置において、マッチング手段により、特徴点に対応する局所特徴量を対応点候補のいずれかに分類する分類器を学習し、学習した分類器を記憶手段に登録することとした。また、マッチング手段により、特徴点検出手段により求められた特徴点に対応する局所特徴量を分類器に入力し、記憶手段に登録した対応点候補のそれぞれに対する尤度を求め、最も尤度の高い対応点候補を選択し、特徴点と対応付ける対応点とすることとした。
このため、特徴点検出手段により求められた特徴点に対応する対応点を、毎回、全ての対応点候補の中から探す必要はなくなるので、対応点の探索時間を短縮できる。
また、特徴点検出手段により検出される可能性の高い特徴点に対応するものを選抜できるとともに、特徴点を適切な対応点と対応付けることができ、カメラ姿勢の推定精度を向上させることができる。
(11) 本発明は、(10)のカメラ姿勢推定装置について、前記マッチング手段は、前記対応点候補の前記記憶手段への登録と、前記分類器の学習と、を同時に行うことを特徴とするカメラ姿勢推定装置を提案している。
この発明によれば、(10)のカメラ姿勢推定装置において、マッチング手段により、対応点候補の記憶手段への登録と、分類器の学習と、を同時に行うこととした。これによれば、効率的な学習、具体的には学習時間の短縮を実現できる。
(12) 本発明は、特徴点検出手段(例えば、図2の特徴点検出部11に相当)および学習手段(例えば、図2の学習部121に相当)を備え、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するためのデータベース生成装置におけるデータベース生成方法であって、前記特徴点検出手段が、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める第1のステップと、前記学習手段が、前記第1のステップにおいて求められた前記特徴点と対応付ける対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜して、対応点候補として前記局所特徴量とともに記憶手段(例えば、図2のデータベース122に相当)に登録する第2のステップと、を備えることを特徴とするデータベース生成方法を提案している。
この発明によれば、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、学習手段により、特徴点と対応付ける対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜して、対応点候補として局所特徴量とともに記憶手段に登録することとした。このため、上述した効果と同様の効果を奏することができる。
(13) 本発明は、特徴点検出手段(例えば、図2の特徴点検出部11に相当)、マッチング手段(例えば、図2のマッチング部12に相当)、およびカメラ姿勢算出手段(例えば、図2のカメラ姿勢算出部13に相当)を備え、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するカメラ姿勢推定装置におけるカメラ姿勢推定方法であって、前記特徴点検出手段が、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める第1のステップと、前記マッチング手段が、前記第1のステップにおいて求められた前記特徴点に対応する局所特徴量を用いて、当該特徴点と対応付ける対応点の座標を求める第2のステップと、前記カメラ姿勢算出手段が、前記第1のステップにおいて検出された前記特徴点の2次元座標と、前記第2のステップにおいて求められた前記対応点の座標と、に基づいて、前記観察対象に対する前記カメラの相対的な姿勢を算出する第3のステップと、を備え、前記第2のステップでは、前記第1のステップにおいて求められた前記特徴点に対応する局所特徴量を用いて、記憶手段に登録された対応点候補の中から、当該特徴点と対応付ける対応点を決定し、前記記憶手段に登録された対応点候補は、前記対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜したものであることを特徴とするカメラ姿勢推定方法を提案している。
この発明によれば、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、マッチング手段により、特徴点検出手段により求められた特徴点に対応する局所特徴量を用いて、記憶手段に登録された対応点候補の中から、特徴点と対応付ける対応点を決定することとした。ここで、記憶手段に登録された対応点候補とは、対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜したもののことである。また、カメラ姿勢算出手段により、特徴点検出手段により検出された特徴点の2次元座標と、マッチング手段により求められた対応点の座標と、に基づいて、観察対象に対するカメラの相対的な姿勢を算出することとした。このため、上述した効果と同様の効果を奏することができる。
(14) 本発明は、特徴点検出手段(例えば、図2の特徴点検出部11に相当)および学習手段(例えば、図2の学習部121に相当)を備え、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するためのデータベース生成装置におけるデータベース生成方法を、コンピュータに実行させるためのプログラムであって、前記特徴点検出手段が、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める第1のステップと、前記学習手段が、前記第1のステップにおいて求められた前記特徴点と対応付ける対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜して、対応点候補として前記局所特徴量とともに記憶手段(例えば、図2のデータベース122に相当)に登録する第2のステップと、をコンピュータに実行させるためのプログラムを提案している。
この発明によれば、コンピュータを用いてプログラムを実行することで、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、学習手段により、特徴点と対応付ける対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜して、対応点候補として局所特徴量とともに記憶手段に登録することとした。このため、上述した効果と同様の効果を奏することができる。
(15) 本発明は、特徴点検出手段(例えば、図2の特徴点検出部11に相当)、マッチング手段(例えば、図2のマッチング部12に相当)、およびカメラ姿勢算出手段(例えば、図2のカメラ姿勢算出部13に相当)を備え、観察対象(例えば、図4の対象物AAに相当)を撮影したカメラ(例えば、図1の撮像装置2に相当)の姿勢を推定するカメラ姿勢推定装置におけるカメラ姿勢推定方法を、コンピュータに実行させるためのプログラムであって、前記特徴点検出手段が、前記観察対象を撮影した入力画像から当該観察対象の特徴点を検出し、当該特徴点に対応する局所特徴量を求める第1のステップと、前記マッチング手段が、前記第1のステップにおいて求められた前記特徴点に対応する局所特徴量を用いて、当該特徴点と対応付ける対応点の座標を求める第2のステップと、前記カメラ姿勢算出手段が、前記第1のステップにおいて検出された前記特徴点の2次元座標と、前記第2のステップにおいて求められた前記対応点の座標と、に基づいて、前記観察対象に対する前記カメラの相対的な姿勢を算出する第3のステップと、をコンピュータに実行させ、前記第2のステップでは、前記第1のステップにおいて求められた前記特徴点に対応する局所特徴量を用いて、記憶手段に登録された対応点候補の中から、当該特徴点と対応付ける対応点を決定し、前記記憶手段に登録された対応点候補は、前記対応点となり得る候補を、当該候補の座標と、当該候補に対応する特徴点が検出された入力画像を撮影した際の前記カメラの位置と、に基づいて選抜したものであるプログラムを提案している。
この発明によれば、コンピュータを用いてプログラムを実行することで、特徴点検出手段により、観察対象を撮影した入力画像から観察対象の特徴点を検出し、特徴点に対応する局所特徴量を求めることとした。また、マッチング手段により、特徴点検出手段により求められた特徴点に対応する局所特徴量を用いて、記憶手段に登録された対応点候補の中から、特徴点と対応付ける対応点を決定することとした。ここで、記憶手段に登録された対応点候補とは、対応点となり得る候補を、候補の座標と、候補に対応する特徴点が検出された入力画像を撮影した際のカメラの位置と、に基づいて選抜したもののことである。また、カメラ姿勢算出手段により、特徴点検出手段により検出された特徴点の2次元座標と、マッチング手段により求められた対応点の座標と、に基づいて、観察対象に対するカメラの相対的な姿勢を算出することとした。このため、上述した効果と同様の効果を奏することができる。
本発明によれば、計算負荷の増加およびデータベースの増大を抑制しつつ、カメラ姿勢の推定の安定性を向上させることができる。
以下、本発明の実施の形態について図面を参照しながら説明する。なお、以下の実施形態における構成要素は適宜、既存の構成要素などとの置き換えが可能であり、また、他の既存の構成要素との組み合せを含む様々なバリエーションが可能である。したがって、以下の実施形態の記載をもって、特許請求の範囲に記載された発明の内容を限定するものではない。
[ARシステム100の構成および動作]
図1は、本発明の一実施形態に係るカメラ姿勢推定装置1を備えるARシステム100のブロック図である。ARシステム100は、カメラ姿勢推定装置1、撮像装置2、表示装置3、および付加情報記憶部4を備える。
撮像装置2は、対象物を撮影して入力画像を生成し、入力画像をカメラ姿勢推定装置1および表示装置3に送信する。この撮像装置2は、WEBカメラといったカメラ画像を取得できるもので構成され、例えば携帯端末に搭載されているカメラモジュールであってもよい。
なお、対象物は、形状が既知である任意の3次元物体であるものとする。具体的には、対象物は、例えば、直方体形状、円柱形状、球形状などのプリミティブな構造を有する3次元物体であってもよいし、3次元モデルが与えられている場合には複雑な構造を有する3次元物体であってもよい。本実施形態では、対象物は、3次元モデルがカメラ姿勢推定装置1に予め与えられている3次元物体であるものとする。
付加情報記憶部4は、対象物に紐付けられた、CG(Computer Graphics)や2次元画像の情報で構成される付加情報を記憶している。この付加情報記憶部4は、PCや携帯端末に設けられたHDD(Hard Disk Drive)やメモリモジュールなどの記憶装置で構成される。
カメラ姿勢推定装置1は、入力画像内の対象物に対する撮像装置2の相対的なカメラ姿勢を推定し、推定したカメラ姿勢に関するカメラ姿勢情報を表示装置3に送信する。また、ARシステム100が複数種類の3次元物体を対象物とする場合には、推定したカメラ姿勢に関するカメラ姿勢情報に加えて、これら複数種類の3次元物体のうちどれに対するカメラ姿勢を推定したのかを示す情報も、表示装置3に送信する。カメラ姿勢推定装置1の詳細については、後述する。
表示装置3は、対象物に紐付けられた付加情報を付加情報記憶部4から読み出し、カメラ姿勢推定装置1で推定されたカメラ姿勢に応じて表示位置を補正して、表示する。この表示装置3は、例えば携帯端末のディスプレイや、ヘッドマウントディスプレイ(HMD)で構成される。
表示装置3が、携帯端末のディスプレイや、ビデオシースルー型のHMDで構成される場合には、入力画像に付加情報を重畳させて表示する。具体的には、対象物に紐付けられた付加情報を付加情報記憶部4から読み出し、カメラ姿勢推定装置1で推定されたカメラ姿勢に応じて表示位置を決定する。そして、入力画像に対して、読み出した付加情報を決定した表示位置に重畳させ、表示画面に表示する。
また、表示装置3が、透過型のディスプレイや、光学シースルー型のHMDで構成される場合には、付加情報のみを表示する。具体的には、対象物に紐付けられた付加情報を付加情報記憶部4から読み出し、カメラ姿勢推定装置1で推定されたカメラ姿勢に応じて表示位置を決定する。そして、表示画面の決定した表示位置に付加情報を表示して、表示画面を透過してユーザが見ている視界に付加情報を重畳させる。
以上の構成を備えるARシステム100は、ノートPCや携帯電話機、携帯ゲーム機などの携帯端末上で構築することが可能である。例えば対象物が地球儀である場合には、高度を視覚表示するように地表を重畳表示したり、過去の大陸形状を重畳表示したり、国境や国名に変更があった際に更新された情報を重畳表示したり、ジェスチャー認識と組み合わせてユーザが指差した国名を重畳表示したり、といった利用例が想定される。
[カメラ姿勢推定装置1の構成および動作]
図2は、カメラ姿勢推定装置1のブロック図である。カメラ姿勢推定装置1は、特徴点検出部11、マッチング部12、およびカメラ姿勢算出部13を備える。
カメラ姿勢は、撮像装置2の外部パラメータと呼ばれる行列の形で表され、対象物に対する撮像装置2の相対的な位置および方向の情報を含んで構成される。この撮像装置2の外部パラメータと、撮像装置2の内部パラメータと呼ばれる撮像装置2固有の焦点距離および主軸の位置の情報が含まれる行列と、その他光学的歪みのパラメータと、によって画面内の物体の見え方が決定される。本実施形態では、内部パラメータや歪みパラメータは、撮像装置2のカメラキャリブレーションなどによって予め取得され、歪みは取り除かれているものとする。
(特徴点検出部11の構成および動作)
特徴点検出部11は、入力画像から対象物の特徴点を検出し、検出した特徴点に対応する局所特徴量をマッチング部12に送信するとともに、検出した特徴点の2次元座標をカメラ姿勢算出部13に送信する。
特徴点の検出には、特徴点検出器111を用いる。特徴点検出器111としては、例えば、Harrisコーナー検出器やHessianキーポイント検出器などの、2次元座標を特定できるものであれば、あらゆる種類のものを適用できる。本実施形態では、特徴点検出器111として、高速な特徴点の検出が可能であるFAST特徴点検出器を適用するものとする。
局所特徴量とは、例えばSIFTディスクリプタやSURFディスクリプタなどの、特徴点を識別するための情報のことである。本実施形態におけるマッチング部12は、一般的な局所特徴量であれば、あらゆる種類のものを使用できる。本実施形態では、局所特徴量として、非特許文献2に開示されているパッチ画像を用いるものとする。
パッチ画像とは、予め定められた大きさで入力画像から切り出された画像のことであり、本実施形態では、特徴点を中心とした所定の幅および高さ(例えば、幅が32ピクセル、高さが32ピクセル)を有する画像のことである。特徴点が大きさ(スケール)の情報も有する場合には、その大きさに応じてパッチ画像の幅および高さを変更することができる。パッチ画像の取得には、一般的な局所特徴量の取得と比較して、非常に高速であるという特徴がある。
(マッチング部12の構成および動作)
マッチング部12は、学習部121、データベース122、および認識部123を備えており、学習処理および認識処理の2種類の処理により、対象物の特徴点に対応する局所特徴量に基づいて、特徴点と対応付ける対応点を作成(マッチング)し、対応点の3次元座標をカメラ姿勢算出部13に送信する。
学習処理は、認識処理が実行されるよりも前の段階において、予め実行される。この学習処理では、学習部121が、対応点の候補となる対応点候補をデータベース122に登録する。学習部121の詳細については、後述する。
認識処理は、カメラ姿勢を推定する際に実行される。この認識処理では、認識部123が、特徴点に対応する局所特徴量に対して、最も類似する対応点候補をデータベース122の中から選択し、対応点を作成する。認識部123の詳細については、後述する。
なお、本実施形態では、対象物は、上述のように3次元物体であるため、対応点候補は、3Dモデル上の点である。このため、対応点は、特徴点を意味する入力画像内の2次元座標と、3Dモデル上の点を意味する3次元座標と、で構成される2D−3D対応点となる。
認識部123は、特徴点に対応する局所特徴量に対して、最も類似する対応点候補をデータベース122の中から選択して対応点を作成(マッチング)し、対応点の3次元座標をカメラ姿勢算出部13に送信する。データベース122に対応点候補の局所特徴量が登録されている場合には、最も類似する(具体的には、ユークリッド距離やハミング距離が近い)局所特徴量を有する対応点候補とマッチングする。一方、学習処理において後述のように分類器を学習した場合には、学習した分類器に特徴点に対応する局所特徴量を入力し、各クラス(対応点候補)に対応する尤度(確率分布)を取得して、最も尤度の高い対応点候補とマッチングする。
なお、入力画像内の対象物の表面から検出されたものが特徴点であり、データベース122に登録されている対応点候補の中に特徴点に対応する局所特徴量と一致する点が登録されており、これらを認識部123が正しく対応付けられた場合に、対応点を正しく作成することができる。このため、背景といった対象物以外から特徴点が検出されている場合や、特徴点に対応する局所特徴量と一致する点がデータベース122に対応点候補として登録されていない場合には、正しい対応点を作成することが困難になる。
このため、学習部121は、特徴点検出部11において検出される可能性がある特徴点に対応する3次元座標を、対応点候補としてデータベース122に漏れなく登録することが好ましい。しかしながら、データベース122の記憶容量には限りがあり、特にARシステム100が上述のように携帯端末上で構成される場合には、データベース122に登録する情報量をできる限り小さくすることが望まれる。そこで、学習部121は、対応点候補となり得るものの中から、データベース122に登録する対応点候補を選抜する。
さらに、学習部121は、上述のように対応点候補を選抜する際に、特徴点検出部11において検出される可能性の高い(対応付けられやすい)特徴点に対応する3次元座標を単純に選抜するのではなく、対応付けられやすい特徴点に対応する3次元座標を、視点クラスごとに予め定められた数ずつ選抜する。これによれば、対象物が撮像装置2により撮影される可能性のある視点の範囲において、特徴点を対応点候補に安定的に対応付けて、正しい対応点を作成することができる可能性を向上させることができる。なお、視点クラスとは、対象物が撮像装置2により撮影される可能性のある視点の範囲を離散的に分割した各領域のことであり、各視点は、いずれかの視点クラスに割り当てられるものとする。
以上の学習部121により行われる学習処理について、以下に説明する。
図3は、学習部121が行う学習処理のフローチャートである。
ステップS1において、学習部121は、視点クラスを設定し、ステップS2に処理を移す。具体的には、対象物が撮像装置2により撮影される可能性のある視点の範囲を、対象物に対する撮像装置2の方向(角度)と、対象物と撮像装置2との距離と、に基づいて分割し、分割した範囲ごとに視点クラスを設定する。学習部121による視点クラスの設定について、図4を用いて以下に詳述する。
図4は、直方体の対象物AAに対して視点クラスを設定する場合を説明するための図である。SPH1〜SPH5は、対象物AAを中心とする球の表面を表している。
学習部121は、上述の撮像装置2により撮影される可能性のある視点の範囲、言い換えると対象物AAを撮影するために撮像装置2が配置される可能性のある範囲、すなわち対象物AAの周囲に、SPH1〜SPH5の5つの層を想定し、各層に42個ずつ代表視点を設け、各層において42個の代表視点をほぼ等間隔に配置する。具体的には、まず、撮像装置2により撮影される可能性のある視点の範囲に、方向および距離に基づいて、SPH1〜SPH5の5つの層を想定する。次に、SPH1〜SPH5のそれぞれに内接する正80面体を球を近似したものとして配置し、正80面体の各頂点を代表視点とする。次に、これら代表視点のそれぞれを中心とする領域を、隣接する2つの代表視点に対応する領域同士が接するように設定し、これら領域のそれぞれを視点クラスとする。これによれば、撮像装置2により撮影される可能性のある視点の範囲が、210個の代表視点を中心とする210個の視点クラスに分割されることになる。また、各視点は、認識処理により、210個の代表視点のうち、最も近い代表視点が属する視点クラスに割り当てられることになる。
図3に戻って、ステップS2において、学習部121は、対象物の3次元モデルから学習用の画像を複数生成し、ステップS3に処理を移す。具体的には、まず、カメラの内部パラメータに、撮像装置2の内部パラメータを設定するとともに、カメラの外部パラメータを、対象物が撮像装置2により撮影される可能性のある視点の範囲の中からランダムに視点をサンプリングすることで設定する。次に、対象物の3次元モデルを、内部パラメータと外部パラメータとを合わせたカメラパラメータで投影(レンダリング)して、2次元の学習用の画像を複数生成する。
ステップS3において、学習部121は、特徴点検出器111を用いて、ステップS2において生成した学習用の画像から特徴点を検出し、対応する3次元モデル上の3次元座標を逆投影によって計算して、ステップS4に処理を移す。逆投影の処理については、公知の技術によって、3次元モデルと、ステップS2におけるレンダリングの際に用いたカメラパラメータと、を用いて行うことが可能である。
ステップS4において、学習部121は、ステップS3において計算した複数の3次元座標を選抜し、ステップS5に処理を移す。具体的には、まず、ステップS3において計算した複数の3次元座標のうち予め定められた距離内にあるものについて、これらの重心を求めて1つにまとめるとともに、まとめられた3次元座標の数を再現性として求める。上述の再現性は、3次元座標の特徴点としての検出されやすさの指標となる。次に、3次元座標の再現性を視点クラスごとに評価し、各視点クラスにおいて再現性の高い3次元座標を、予め定められた数ずつ求める。
ステップS5において、学習部121は、ステップS4において求めた3次元座標を、対応点候補としてデータベース122に登録し、図3の学習処理を終了する。具体的には、後述の登録手順および繰り返し手順を行う。
登録手順では、学習部121は、ステップS4において求めた3次元座標のうち、データベース122に登録されていないものであって、再現性の最も高いものを、視点クラスごとに1点ずつデータベース122に登録する。また、繰り返し手順では、学習部121は、登録手順によりデータベース122に登録した3次元座標の数が予め定められた規定数に達するまで、登録手順を繰り返す。
以上によれば、ステップS4において求められた3次元座標が、視点クラスごとに、再現性の高いものから順番に1点ずつ、登録数が規定数に達するまで繰り返し求めてデータベース122に登録されることになる。また、データベース122に登録される際には、既に登録されている対応点候補と重複していないかが確認され、重複している場合は次に再現性の高い対応点候補が登録されることになる。
このため、各視点クラスで再現性の高い3次元座標を評価する際に、重複が生じてしまう場合(複数の視点クラスで最も再現性の高い3次元座標として評価される点が多数存在する場合)に対応することができるとともに、データベース122に登録されている対応点候補の全てにおける視点に対する再現性を平滑化することができる。
なお、対応点候補をデータベース122に登録する際には、学習部121は、対応点候補の局所特徴量も、データベース122に登録する。これによれば、認識処理において、対応点のマッチングを行うことができる。
また、非特許文献2に開示されているように、認識処理において、局所特徴量に基づいてマッチングを行う代わりに、分類器によりマッチングを行う場合には、登録した対応点候補をクラスとする分類器を学習し、局所特徴量の代わりにデータベース122に登録する。この場合、特徴点に対応する局所特徴量として、局所領域を切り出したパッチ画像を用い、分類器として、Randomized TreesやRandom Fernsなどを用いることができる。
本実施形態では、学習部121は、パッチ画像を分類するRandom Fernsを学習し、対応点候補のデータベース122への登録と、分類器の学習と、を同時に行う。具体的には、分類器の学習の際には、対応点候補の教師ラベルを付けた学習用のパッチ画像が多数必要である。そこで、ステップS3において学習用の画像から特徴点を検出した際に、そのパッチ画像を取得しておく。これによれば、各対応点候補に対応する学習用のパッチ画像を、容易に取得することができ、効率的な学習、具体的には学習時間の短縮を実現できる。
(カメラ姿勢算出部13の動作)
図2に戻って、カメラ姿勢算出部13は、特徴点検出部11から送信された特徴点の2次元座標と、マッチング部12から送信された対応点の3次元座標と、に基づいてカメラ姿勢を推定し、推定したカメラ姿勢に関するカメラ姿勢情報を表示装置3に送信する。3次元座標と2次元座標との関係は、以下の式(1)で表される。
式(1)において、[u,v]は、特徴点検出部11から送信された特徴点の2次元座標値を示し、[X,Y,Z]は、マッチング部12から送信された対応点の3次元座標値を示し、[・]^Tは、転置行列を示す。また、Aは、カメラの内部パラメータを示し、Wは、カメラの外部パラメータ(カメラ姿勢)を示し、カメラ姿勢Wは、以下の式(2)で表される。
式(2)において、Rは、回転行列を示し、tは、並進ベクトルを示す。
以上より、2次元座標[u,v,1]^Tと3次元座標[X,Y,Z,1]^Tとのマッチと、カメラの内部パラメータと、を用いて、カメラ姿勢Wを推定することができる。なお、送信された2次元座標と3次元座標の対応点の中には、誤った対応点が含まれるおそれがある。このため、カメラ姿勢算出部13は、RANSAC(RANdom SAmple Consensus)やPROSAC(PROgressive SAmple Consensus)などのサンプリング手法によって、入力された対応点から正しい対応点(インライア)のみを抽出し、カメラ姿勢の推定を行う。
なお、本発明のカメラ姿勢推定装置1の処理を、コンピュータ読み取り可能な非一時的な記録媒体に記録し、この記録媒体に記録されたプログラムをカメラ姿勢推定装置1に読み込ませ、実行することによって、本発明を実現できる。
ここで、上述の記録媒体には、例えば、EPROMやフラッシュメモリといった不揮発性のメモリ、ハードディスクといった磁気ディスク、CD−ROMなどを適用できる。また、この記録媒体に記録されたプログラムの読み込みおよび実行は、カメラ姿勢推定装置1に設けられたプロセッサによって行われる。
また、上述のプログラムは、このプログラムを記憶装置などに格納したカメラ姿勢推定装置1から、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネットなどのネットワーク(通信網)や電話回線などの通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上述のプログラムは、上述の機能の一部を実現するためのものであってもよい。さらに、上述の機能をカメラ姿勢推定装置1にすでに記録されているプログラムとの組み合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計なども含まれる。
例えば、上述の実施形態では、対象物は、3次元物体であるものとした。しかし、これに限らず、例えば、平面状の物体の表面に描かれた画像といった、2次元物体であってもよい。対象物が2次元物体である場合には、マッチング部12は、3次元座標のz座標が常にゼロであるものとして動作し、対応点は、2次元座標同士で構成される2D−2D対応点となる。
また、上述の実施形態では、図3のステップS5において、3次元座標を選抜したものを、視点クラスごとに、再現性の高いものから順番に1点ずつ、登録数が規定数に達するまで登録するものとした。このため、上述の実施形態では、データベース122に3次元座標が登録される対応点候補の数は、視点クラスごとに等しくなる。しかし、これに限らず、例えば視点クラスの優先度に応じて、3次元座標を登録する対応点候補の数に対して視点クラスごとに重みづけを行ってもよい。これによれば、撮影される頻度が高い視点の情報や、何らかの外的要因によってカメラ姿勢の推定精度が悪くなってしまうという視点の情報が予め得られているなどにより、カメラ姿勢の推定精度を向上させたい視点が存在する場合に、その視点におけるカメラ姿勢の推定精度を向上させることができる。
また、上述の実施形態では、図3のステップS1において、学習部121は、対象物AAの周囲にSPH1〜SPH5の5つの層を想定し、各層に42個ずつ代表視点を設け、各層において42個の代表視点をほぼ等間隔に配置するものとした。しかし、これに限らず、例えば、特徴点検出器111が特徴点の検出にSIFT(Scale Invariant Feature Transform)といった距離の変化に頑健な手法を用いた場合には、代表視点を1層のみに配置し、距離の変化によって視点クラスを変えないようにしてもよい。また、対象物が平面画像であり、撮影される可能性のある視点の角度が限定される場合には、視点の距離のみによって視点クラスを変えるようにしてもよい。
撮影される可能性のある視点の角度が限定される場合とは、例えば対象物が建物である場合が考えられる。この場合、対象物の真下の方向から撮影されることはあり得ない。そこで、撮影されない方向には代表視点を設定しないことで、対象物の表面のうち実際に撮影される範囲内に、対応点候補の位置を限定することができ、マッチングの安定性を向上させることができる。
また、上述の実施形態では、カメラ姿勢推定装置1は、学習処理と認識処理との両方を行うものとしたが、これに限らない。例えば、学習処理は、カメラ姿勢推定装置の外部で行われ、カメラ姿勢推定装置は、外部で行われた学習処理の結果を用いて認識処理を行うこととしてもよい。