(57)【特許請求の範囲】
【請求項１】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置であって、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得手段と
を備え、
前記立体対象物は、
表面の一部又は全部が曲面であり、
前記３次元座標取得手段は、
前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を前記特徴点の３次元座標として取得しないようにすることを特徴とする３次元座標取得装置。
【請求項２】
前記３次元座標取得手段は、
前記立体対象物上に前記交点が存在するか否かを判定する判定式の閾値を変化させることによって、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を３次元座標として取得しないようにする
ことを特徴とする請求項１に記載の３次元座標取得装置。
【請求項３】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置であって、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得手段と
を備え、
前記立体対象物の特徴点を記憶する特徴情報データベースと、
一の前記特徴点を通過する直線から前記交点が算出されなかった場合、当該特徴点を前記特徴情報データベースから削除する削除手段と
を更に備えることを特徴とする３次元座標取得装置。
【請求項４】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置であって、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得手段と
を備え、
前記立体対象物は、
表面の一部が曲面であって、
前記３次元座標取得手段は、
前記立体対象物の曲面部分については、前記立体対象物の方程式を利用して前記特徴点の３次元座標を取得する一方、前記立体対象物の平面部分については３次元ポリゴンモデルを利用して前記特徴点の３次元座標を取得することを特徴とする３次元座標取得装置。
【請求項５】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定するカメラ姿勢推定装置であって、
予め撮像した前記撮像画像内の前記立体対象物の特徴点の２次元ピクセル座標と、予め取得した前記立体対象物の特徴点の３次元座標とを対応付けて記憶するデータベース部と、
今回撮像した撮像画像から前記立体対象物の特徴点を抽出し、前記データベース部内の前記２次元ピクセル座標と照合する照合部と、
前記照合部による照合結果に基づいてカメラ姿勢を推定するカメラ姿勢推定部と
を備え、
前記データベース部は、
前記カメラの焦点、及び、前記撮像画像から検出された画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから算出された、前記直線と前記立体対象物との交点を、前記立体対象物の特徴点の３次元座標として記憶し、
前記立体対象物は、
表面の一部が曲面であって、
前記データベース部は、
前記立体対象物の曲面部分について前記立体対象物の方程式を利用して算出された前記３次元座標を記憶し、前記立体対象物の平面部分について３次元ポリゴンモデルを利用して算出された３次元座標を記憶することを特徴とするカメラ姿勢推定装置。
【請求項６】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置のコンピュータに、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出ステップと、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得ステップと
を実行させるプログラムであって、
前記立体対象物は、
表面の一部が曲面であって、
前記３次元座標取得ステップは、
前記立体対象物の曲面部分については、前記立体対象物の方程式を利用して前記特徴点の３次元座標を取得する一方、前記立体対象物の平面部分については３次元ポリゴンモデルを利用して前記特徴点の３次元座標を取得することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３次元座標取得装置、カメラ姿勢推定装置、プログラムに関する。
【背景技術】
【０００２】
近年、現実空間の映像をコンピュータで処理して更なる情報を付加するＡＲ（拡張現実感）技術が、種々の電子機器（例えば、ＷＥＢカメラが接続されたＰＣ、カメラ付き携帯電話端末）上において、実現されるようになっている。
ＡＲ技術においては、カメラ画像内の立体対象物に対するカメラ姿勢（カメラの外部パラメータ）を推定する必要がある。
カメラ姿勢の推定には、基準マーカ等を利用する技術が知られているが、特定のマーカを利用せずに立体対象物に対するカメラ姿勢を推定する技術（３次元ポリゴンモデルを利用したマーカレスＡＲ技術）も提案されている。例えば、特許文献１、２には、予め立体対象物の３次元ポリゴンモデルをオフラインで取得しておき、カメラ画像内の２次元ピクセル座標と３次元ポリゴンモデルの３次元座標とを対応させるカメラの姿勢を決定し、カメラ姿勢として推定する技術が開示されている。
一般にカメラ姿勢の推定では、推定精度が２次元ピクセル座標に対応する厳密な３次元座標を取得できるか否かに影響される。３次元ポリゴンモデルを利用した場合、一の２次元ピクセル座標に対応する３次元座標は、カメラの焦点及び画像平面内の一の２次元ピクセル座標を持つ点を通過する直線と、ポリゴンモデルを構成する一のポリゴン（平面）の交点Xとして取得されるため、３次元座標の取得精度は３次元ポリゴンモデル自体の精度に影響される。表面が平面のみから構成される立体対象物（例えば、直方体）を利用する場合、容易に高精度な３次元ポリゴンモデルを準備することができるため、比較的高精度に、カメラ姿勢を推定することができる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１０−５１９６２９号公報
【特許文献２】特開２０１１−１１８７２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、曲面を有する立体対象物（表面の一部又は全部が曲面である立体対象物。例えば、球、円柱、円錐、円環体）を利用する場合、曲面部分において、個々の３次元座標がずれるなどの誤差が生じ、高い精度の３次元ポリゴンモデルを取得することができない。従って、曲面を有する立体対象物を利用した場合、カメラ姿勢の推定精度が悪化するという問題がある。
更に、カメラ姿勢の推定精度に係る問題点の他、２次元ピクセル座標に対応する３次元座標を取得する際には、２次元ピクセル座標に対応する一のポリゴン（平面）を計算によって特定する必要があるため、処理負荷が大きくなるという問題がある。
なお、３次元ポリゴンモデルの曲面部分の誤差の程度は、曲面部分を構成する平面の多寡によるため、誤差の程度を少なくし、カメラ姿勢の推定精度を高くするためには、曲面部分を構成する平面の数を大幅に増やす必要があるが、そうすると、処理負荷が更に大きくなるという問題がある。
【０００５】
本発明は、上述の課題を鑑みてなされたものであり、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させる技術を提供する。特に、本発明は、曲面を有する立体対象物を用いる場合において、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させる技術を提供する。
【課題を解決するための手段】
【０００６】
上記問題を解決するために、本発明の一態様である３次元座標取得装置は、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置であって、前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得手段とを備えることを特徴とする。ここで、前記立体対象物の方程式とは、立体対象物全体の表面を表すものであり、例えば球体であれば球の方程式、円柱体であれば側面と底面を表す２平面を連立した方程式を指す。
【０００７】
上記３次元座標取得装置において、前記カメラの内部パラメータ及び前記立体対象物の撮像画像を用いて、前記直線の方程式のパラメータ及び前記立体対象物の方程式のパラメータを算出するパラメータ算出手段を更に備えるようにしてもよい。
【０００８】
上記３次元座標取得装置において、前記３次元座標取得手段は、複数個の前記交点が算出された場合、複数個の前記交点のうち前記カメラの焦点に近い一の交点を前記３次元座標として取得するようにしてもよい。
【０００９】
上記３次元座標取得装置において、前記立体対象物の特徴点を記憶する特徴情報データベースと、一の前記特徴点を通過する直線から前記交点が算出されなかった場合、当該特徴点を前記特徴情報データベースから削除する削除手段とを更に備えるようにしてもよい。
【００１０】
上記３次元座標取得装置において、前記３次元座標取得手段は、前記交点を取得する方程式が２次方程式の場合、判別式を用いて、前記特徴点が立体対象物上の点であるか否かを判定するようにしてもよい。
【００１１】
上記３次元座標取得装置において、前記立体対象物は、表面の一部又は全部が曲面であってもよい。
【００１２】
上記３次元座標取得装置において、前記立体対象物は、表面の一部が曲面であって、前記３次元座標取得手段は、前記立体対象物の曲面部分については、前記立体対象物の方程式を利用して前記特徴点の３次元座標を取得する一方、前記立体対象物の平面部分については３次元ポリゴンモデルを利用して前記特徴点の３次元座標を取得するようにしてもよい。
【００１３】
上記３次元座標取得装置において、前記３次元座標取得手段は、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を前記特徴点の３次元座標として取得しないようにしてもよい。
【００１４】
上記３次元座標取得装置において、前記３次元座標取得手段は、前記立体対象物上に前記交点が存在するか否かを判定する判定式の閾値を変化させることによって、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を３次元座標として取得しないようにしてもよい。
【００１５】
上記問題を解決するために、本発明の他の態様であるカメラ姿勢推定装置は、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定するカメラ姿勢推定装置であって、予め撮像した前記撮像画像内の前記立体対象物の特徴点の２次元ピクセル座標と、予め取得した前記立体対象物の特徴点の３次元座標とを対応付けて記憶するデータベース部と、今回撮像した撮像画像から前記立体対象物の特徴点を抽出し、前記データベース部内の前記２次元ピクセル座標と照合する照合部と、前記照合結果に基づいてカメラ姿勢を推定するカメラ姿勢推定部とを備え、前記データベース部は、前記カメラの焦点、及び、前記撮像画像から検出された画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから算出された、前記直線と前記立体対象物との交点を、前記立体対象物の特徴点の３次元座標として記憶することを特徴とする。
【００１６】
上記カメラ姿勢推定装置において、前記立体対象物は、表面の一部が曲面であって、前記データベース部は、前記立体対象物の曲面部分について前記立体対象物の方程式を利用して算出された前記３次元座標を記憶し、前記立体対象物の平面部分について３次元ポリゴンモデルを利用して算出された３次元座標を記憶するようにしてもよい。
【００１７】
上記問題を解決するために、本発明の他の態様であるプログラムは、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の３次元座標を取得する３次元座標取得装置のコンピュータに、前記撮像画像から、画像平面内の特徴点を検出する特徴点検出ステップと、前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の３次元座標として取得する３次元座標取得ステップとを実行させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させることができる。
【図面の簡単な説明】
【００１９】
【図１】本発明の実施形態であるカメラ姿勢推定装置２０を含むＡＲシステム１の概念図である。
【図２】カメラ姿勢推定装置２０の機能ブロック図の一例である。
【図３】数式モデルを説明するための説明図である。
【図４】本発明の実施形態である３次元座標取得装置１００の機能ブロック図の一例である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して詳細に説明する。図１は、本発明の実施形態であるカメラ姿勢推定装置２０を含むＡＲシステム１の概念図である。ＡＲシステム１は、図１に示すように、撮像装置１０、カメラ姿勢推定装置２０、表示装置３０、付加情報データベース９０から構成される。
【００２１】
撮像装置１０は、撮像画像（カメラ画像、又は、２次元画像とも称する）を取得する装置である。撮像装置１０の一例は、図１に示すように、ＷＥＢカメラである。但し、撮像装置１０は、ＷＥＢカメラの如く独立した装置でなく、例えば、カメラ付き携帯電話端末に搭載されているカメラモジュールのように、他の装置と一体化、若しくは、他の装置の一部を構成するものであってもよい。撮像装置１０、立体対象物を撮像したカメラ画像（立体対象物が写っているカメラ画像）を連続的に取得する。撮像装置１０は、カメラ姿勢推定装置２０及び表示装置３０にカメラ画像を出力する。
【００２２】
ＡＲシステム１において使用する立体対象物は、曲面を有する立体対象物（表面の一部又は全部が曲面である立体対象物。例えば、球、円柱、円錐、円環体）である。図１に示す例では、球状の地球儀を用いているが、ボール、飲料水の容器（例えば、缶、ビン、ペットボトル）、円柱に貼付された印刷物（例えば、広告、ポスター）などを用いても、同様のＡＲシステムが構築可能である。
【００２３】
カメラ姿勢推定装置２０は、撮像装置１０から出力されたカメラ画像を取得する。カメラ画像を取得したカメラ姿勢推定装置２０は、立体対象物に対するカメラの相対的な姿勢、即ち、カメラ姿勢（カメラの外部パラメータ）を推定する（詳細は後述）。カメラ姿勢を推定したカメラ姿勢推定装置２０は、表示装置３０にカメラ姿勢（カメラ姿勢を特定する情報）を出力する。
なお、ＡＲシステム１において、複数の立体対象物を用いる場合には、カメラ姿勢とともに、カメラ姿勢の推定する際に利用した立体対象物を識別する情報を表示装置３０に出力する。
【００２４】
付加情報データベース９０は、表示装置３０に出力する立体対象物に関する付加情報を記憶する記憶装置である。ＰＣのＨＤＤ、携帯端末のメモリモジュールなどが付加情報データベース９０に該当する。
付加情報の一例は、表示装置３０の表示画面上において立体対象物に重畳して表示させるＣＧ、他の画像、文字情報である。カメラ姿勢推定装置２０によってカメラ姿勢が推定された場合、付加情報データベース９０から当該カメラ姿勢に応じた付加情報が読み出され、表示装置３０に出力され、表示装置３０の表示画面上において、立体対象物に重畳して表示される。
【００２５】
付加情報は、表示部３０からの要求に応じて表示装置３０に出力されてもよいし、カメラ姿勢推定装置２０からの制御（出力指示）に応じて表示装置３０に出力されてもよい。
【００２６】
重畳表示の応用例は、立体対象物の種類に応じて異なるが、図１に示すように、立体対象物として地球儀を用いる場合には、カメラ画像内の地球儀に対し、気象情報（例えば、天気図、温度分布）の重畳表示、地理的情報（例えば、高度を視覚できる表示態様による地表の情報、各種資源の埋蔵位置／埋蔵量に関する情報、過去の大陸形状／予想される未来の大陸形状）の重畳表示、社会的情報（例えば、現在の国名、国境、及び、国境、国名の更新情報、何らかの勢力分布／構成割合を示す情報）の重畳表示といった応用例が想定される。更に、ジェスチャー認識技術を更に用いて、指差した位置（指示位置）に応じた情報（例えば、指示位置を領土／領海とする国名、国旗、国境線）を重畳表示するといった応用例も考えられる。
【００２７】
表示装置３０は、撮像装置１０が連続的に取得したカメラ画像をユーザに掲示する装置である。表示装置３０の一例は、図１に示すようなモニタである。但し、表示装置３０は、図１に示したモニタの如く独立した装置でなく、例えば、カメラ付き携帯電話端末における表示部（表示制御部及びディスプレイ）のように、他の装置と一体化、若しくは、他の装置の一部を構成するものであってもよい。また、表示装置３０は、ヘッドマウントディスプレイ（ＨＭＤ）のような形態であってもよい。
【００２８】
表示装置３０としてモニタ（ディスプレイ）を用いる場合には、カメラ画像に、付加情報データベース９０から入力された付加情報を、カメラ姿勢推定装置２０から入力されたカメラ姿勢によって補正された位置に重畳表示する。また、表示部がシースルー形の表示装置３０（例えば、シースルー型のＨＭＤ）を用いる場合には、カメラ画像を表示せず、視界に付加情報のみを表示してもよい。
【００２９】
なお、カメラ付き携帯電話端末に搭載されているカメラモジュール及び表示部が、ＡＲシステム１の撮像装置１０及び表示装置３０と成り得る旨を説明したが、例えば、携帯端末（ノートＰＣ、携帯電話端末、携帯型ゲーム機）上で、ＡＲシステム１全体を構成してもよい。
【００３０】
（カメラ姿勢推定装置２０の構成）
図２は、カメラ姿勢推定装置２０の機能ブロック図の一例である。カメラ姿勢推定装置２０は、図２に示すように、データベース部１００、照合部２００、及び、カメラ姿勢推定部３００を備える。
【００３１】
データベース部１００は、処理部１１０、特徴情報データベース１２０、及び、３次元座標データベース１３０から構成される。
特徴情報データベース１２０は、カメラ画像内の立体対象物（図１の例の場合、地球儀）の特徴情報（特徴点を含む情報）の座標（２次元ピクセル座標）を記憶する。
３次元座標データベース１３０は、立体対象物の３次元座標を記憶する。具体的には、３次元座標データベース１３０は、特徴情報データベース１２０に記憶された２次元ピクセル座標（カメラ画像内の立体対象物の特徴点を示す座標）に対応する、立体対象物の３次元座標（立体対象物の特徴点の３次元座標）を記憶する。
【００３２】
処理部１１０は、種々の処理を実行する。例えば、処理部１１０は、立体対象物を撮像したカメラ画像から当該立体対象物の特徴点を検出し（特徴点検出手段）、当該特徴点の２次元ピクセル座標を特徴情報データベース１２０に記憶しておく。なお、処理部１１０は、例えば、Harrisコーナー検出器を用いて特徴点を検出する。また、例えば、処理部１１０は、立体対象物の特徴点の３次元座標を取得し（３次元座標取得手段）、２次元ピクセル座標に対応付けて、３次元座標データベース１３０に記憶しておく。また、処理部１１０は、特徴情報データベース１２０又は３次元座標データベース１３０に記憶されている情報を照合部２３０に提供する。
データベース部１００の詳細については後述する。
【００３３】
照合部２００は、特徴点検出部２１０、特徴量記述部２２０、及び、特徴量照合部２３０を備える。特徴点検出部２１０は、カメラ画像内の特徴点（立体対象物の特徴点を含む）を検出する。特徴点を検出した特徴点検出部２１０は、各特徴点の２次元ピクセル座標を特徴量記述部２２０に出力する。
【００３４】
特徴量記述部２２０は、特徴点検出部２１０から取得した各特徴点における局所特徴量を計算する。局所特徴量を計算した特徴量記述部２２０は、計算結果を特徴量照合部２３０に出力する。また、特徴量記述部２２０は、特徴情報データベース１２０において記録されている特徴点について、局所特徴量を同様に計算し、例えば、特徴情報データベース１２０に記憶しておいてもよい（処理部１１０が当該処理を実行してもよい）。
なお、特徴量記述部２２０（又は処理部１１０）は、予め、データベース部１００において記録されている特徴点の局所特徴量を計算し、データベース部１００に記憶しておいてもよい。
【００３５】
特徴量照合部２３０は、特徴量記述部２２０から取得した局所特徴量（即ち、カメラ画像から得られた局所特徴量）と、特徴情報データベース１２０に記録されている局所特徴量とを比較し、カメラ画像上の特徴点と特徴情報データベース１２０上の特徴点の照合計算を行って、カメラ画像上の特徴点と特徴情報データベース１２０上の特徴点をマッチングさせる。例えば、特徴量照合部２３０は、個々の特徴点について、ＳＩＦＴやＳＵＲＦ等の局所特徴量を計算し、マッチングさせる特徴点として、局所特徴量間のユークリッド距離dが最小となる特徴点を導出する。
【００３６】
特徴量照合部２３０は、カメラ画像上の特徴点と特徴情報データベース１２０上の特徴点とのマッチングが完了した場合、マッチの一方側の特徴点として、カメラ画像上における、マッチさせた特徴点の２次元ピクセル座標を取得するとともに、他方側の特徴点である特徴情報データベース１２０上の特徴点に対応付けられている３次元座標を３次元座標データベース１３０から取得する。
特徴量照合部２３０は、照合結果として、上述の如く取得した２次元ピクセル座標と３次元座標のマッチ（組）をカメラ姿勢推定部３００に出力する。
【００３７】
カメラ姿勢推定部３００は、照合部２００から取得した照合結果（３次元座標と２次元座標のマッチ）の関係を説明するカメラ姿勢（換言すれば、照合結果と整合するカメラ姿勢）を推定する。
なお、カメラ姿勢推定部３００の詳細については後述する。
【００３８】
上記構成によって、カメラ姿勢推定装置２０は、カメラ画像からカメラ姿勢を推定する。続いて、データベース部１００、及び、カメラ姿勢推定部３００について説明する。
【００３９】
（データベース部１００）
３次元座標データベース１３０は、特徴情報データベース１２０に記憶された２次元ピクセル座標（カメラ画像内の立体対象物の特徴点を示す座標）に対応する、立体対象物の３次元座標（立体対象物の特徴点の３次元座標）を記憶するが、処理部１１０は、立体対象物の幾何情報を用いて、立体対象物の特徴点の２次元ピクセル座標に対応する、立体対象物の３次元座標を取得し（３次元座標取得手段）、３次元座標データベース１３０に記憶しておく。立体対象物の幾何情報とは、立体対象物の方程式である。以下、立体対象物の方程式を「数式モデル」とも称する。
【００４０】
即ち、処理部１１０は、カメラ画像から立体対象物の特徴点を検出し（特徴点検出手段）、特徴点の２次元ピクセル座標を特徴情報データベース１２０に記憶するとともに、数式モデルを用いて、特徴点の２次元ピクセル座標に対応する３次元座標を取得し（３次元座標取得手段）、３次元座標データベース１３０に記憶する。
換言すれば、処理部１１０は、上述のようにして、特徴点のマッチングにおいて参照されるデータベース（３次元座標データベース１３０、特徴情報データベース１２０）を構築（生成）しておく。
【００４１】
ピンホールカメラモデルにおける透視投影は下記式（１）によって表される。
【００４２】
【数１】
0005855416.tif 000002
【００４３】
図３は、数式モデルを説明するための説明図である。球状立体物の数式モデルは、下記式（２）によって表される。換言すれば、下記式（２）は、球状立体物の方程式である。但し、下記式（２）において、ｐは球上の点、ｃは球の中心、ｒは球の半径である（図３（ａ）参照）。
【００４４】
【数２】
0005855416.tif 000003
【００４５】
焦点と画像平面内の特徴点を通過する直線は、例えば、下記式（３）によって表される。換言すれば、下記式（３）は、上記直線の方程式である。但し、下記式（３）において、ｑは直線上の点、ｓは焦点、ｖは直線の方向ベクトルである。
【００４６】
【数３】
0005855416.tif 000004
【００４７】
球状立体物の特徴点の３次元座標は、上記式（２）の数式モデル、上記式（３）の直線（焦点と画像平面内の特徴点を通過する直線とする）の交点の座標として得ることができる。換言すれば、球状立体物の方程式と、焦点と画像平面内の特徴点を通過する直線の方程式とから交点の座標を取得することができる。
具体的には、処理部１１０は、上記式（２）によって表される球状立体物の数式モデルのパラメータ（即ち、球状立体物の方程式のパラメータ）である中心ｃ、上記式（３）によって表される直線のパラメータ（即ち、焦点と画像平面内の特徴点を通過する直線の方程式のパラメータ）である焦点ｓ、方向ベクトルｖを求め、ｐ＝ｑとし、ｐ（又はｑ）を交点の座標として計算し、球状立体物の特徴点の３次元座標として取得する（３次元座標取得手段）。
【００４８】
処理部１１０は、カメラの内部パラメータ及び立体対象物のカメラ画像を用いて、数式モデルのパラメータ、及び、直線のパラメータを算出する（パラメータ算出手段）。球状立体物の場合、処理部１１０は、上記式（２）の球状立体物の数式モデルのパラメータ（中心ｃ）、及び、上記式（３）の直線のパラメータ（焦点ｓ、方向ベクトルｖ）を算出する。
【００４９】
具体的には、球状立体物の撮像時における、球状立体物に対するカメラ姿勢Ｗ＝［Ｒ、ｔ］（原点は球モデルの中心ｃとする）が予め与えられている場合、下記式（４）〜（７）が成立するため、処理部１１０は、上述のパラメータ（中心ｃ、焦点ｓ、方向ベクトルｖ）を算出することができる。
【００５０】
【数４】
0005855416.tif 000005
【００５１】
処理部１１０が特徴点の２次元ピクセル座標に対応する３次元座標を予めオフラインで計算し、データベースに登録しておくような場合、カメラ画像からカメラ姿勢を理想的に取得することができる。
【００５２】
カメラ姿勢をフレーム毎に追跡するような場合、前フレームの特徴点とカメラ姿勢の推定値を利用して３次元座標を取得し、データベースを更新していくことができる。
【００５３】
また、カメラ姿勢が与えられていない場合には、カメラ画像内の立体対象物のピクセル座標（球の場合は楕円の中心（ｘ０，ｙ０）と長径２ａ）を取得することで、数式モデルのパラメータ、及び、直線のパラメータを求めることが可能である。
【００５４】
例えば、ｃを原点とし、カメラの焦点距離と特徴点の２次元ピクセル座標から、上記式（７）のｖ’を求める。立体対象物がＸ軸、Ｙ軸、Ｚ軸に対し、夫々、θ、φ、ψだけ回転している場合、回転行列Ｒは、下記式（８）によって表現されるため、下記式（８）と上記式（７）とから方向ベクトルｖを求める。
【００５５】
【数５】
0005855416.tif 000006
【００５６】
次に、カメラ画像内の球の位置と投影された球（楕円）の長径２ａ、回転行列Ｒ、球の半径ｒから球の中心と焦点間のベクトルｄとその長さを計算し、焦点ｓを求める。
【００５７】
また、処理部１１０は、複数個の交点が算出された場合、複数個の交点のうちカメラの焦点に近い一の交点を３次元座標として取得する（３次元座標取得手段）。これにより、立体対象物の特徴点の２次元ピクセル座標に対し、正しい、立体対象物の特徴点の３次元座標を対応付けることができる。
【００５８】
また、処理部１１０は、一の特徴点を通過する直線を用いたときに交点が算出されなかった場合、当該特徴点を特徴情報データベース１２０から削除してもよい（削除手段）。つまり、交点が得られない場合、特徴点が立体対象物にないことを意味するため、特徴情報データベース１２０から削除してもよい。
【００５９】
また、処理部１１０は、交点を取得する方程式が２次方程式の場合、判別式（下記式（９）参照）を用いて、特徴点が立体対象物上の点であるか否かを判定してもよい（３次元座標取得手段）。
【００６０】
また、処理部１１０は、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁に位置を特徴点の３次元座標として取得しないようにしてもよい（無視してもよい）（３次元座標取得手段）。
【００６１】
一般に曲面の法線と直線の交わる角度が大きい３次元座標値は精度が悪くなるため、例えば球状立体物の場合、中心から離れた輪郭周辺の２次元ピクセル座標値に対応する３次元座標は誤差が大きくなる。従って、処理部１１０は、誤差が大きくなるような３次元座標については、３次元座標データベース１３０に記憶しないようにして、最終的なカメラ姿勢推定精度を向上させるようにしてもよい。
【００６２】
具体的には、処理部１１０は、立体対象物の曲面の法線と直線との間の角度（曲面の法線と直線の交わる角度）が大きい３次元座標値をマスキングし（即ち、交点として算出されないようにし）、特徴点の３次元座標として取得しないようにする。
【００６３】
また、処理部１１０は、交点の座標計算の式が２次方程式の場合、判別式の閾値を変更し、簡便に、上述のマスキングを実現してもよい。
【００６４】
下記式（９）は、球の場合の判別式の一例である。
【数６】
0005855416.tif 000007
【００６５】
上記式（９）において、Ｄの閾値をαｒ２とし、０＜α＜１と変化させることで球面の輪郭に近い３次元座標値を閾値以下として除外する。つまり、処理部１１０は、立体対象物上に交点が存在するか否かを判定する判定式（球の場合、上記式（９））の閾値を変化させることによって、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁の位置を３次元座標として取得しないようにしている（３次元座標取得手段）。
【００６６】
カメラ姿勢推定装置２０における処理部１１０は、このようにして取得した３次元座標値を３次元座標データベース１３０に登録する。
【００６７】
なお、表面の一部又は全部が曲面である立体対象物の一例として、球状立体物の例を説明したが、表面の一部又は全部が曲面である他の立体対象物についても、夫々の数式モデルを用いて、球状立体物と同様、夫々の立体対象物の３次元座標を取得することができる。
【００６８】
例えば、円柱状立体物の場合、その側面の数式モデルは、下記式（１０）によって表され、球状立体物と同様の方法を用いて３次元座標を取得することができる（図３（ｂ）参照）。
【００６９】
【数７】
0005855416.tif 000008
【００７０】
なお、円柱状立体物の軸をｙ軸に平行とした場合、上記式（１０）におけるＡは、下記式（１１）によって表される。
【００７１】
【数８】
0005855416.tif 000009
【００７２】
また例えば、円錐状立体物の場合、その側面の数式モデルは、下記式（１２）によって表され、球状立体物と同様の方法を用いて３次元座標を取得することができる
【００７３】
【数９】
0005855416.tif 000010
【００７４】
なお、円錐状立体物の軸がｙ軸に平行とした場合、上記式（１２）におけるＡは、下記式（１３）によって表される。
【００７５】
【数１０】
0005855416.tif 000011
【００７６】
以上のように、データベース部１００は、数式モデルによって表現可能な、表面の一部又は全部が曲面である立体対象物を含む、あらゆる立体対象物について、夫々の数式モデルを利用して、精密な３次元座標を取得することができる。特に、球、円柱、円錐、円環体のような幾何形状で構成される立体対象物（簡潔な数式モデルによって表現可能な立体対象物）の場合、処理の負荷も少なく、容易に、精密な３次元座標を取得することができる。
【００７７】
なお、データベース部１００は、数式モデルに加え、３次元ポリゴンモデルを利用して３次元座標を取得するようにしてもよい。例えば、データベース部１００は、立体対象物の平面部分については３次元ポリゴンモデルを利用し、曲面部分については数式モデルを利用し、３次元座標を取得してもよい。既存の３次元ポリゴンモデルを利用した３次元座標の取得方法と組み合わせることで、曲面と平面の両方含む複雑な形状の立体対象物であっても、カメラ姿勢を効率的に推定することが可能になる。
【００７８】
つまり、３次元ポリゴンモデルを利用した場合、２次元ピクセル座標がどのポリゴンに対応するか計算する必要があるが、多くのポリゴンによって表現しなければならない曲面の部分について数式モデルを利用することによって、曲面の部分については上述の計算処理が不要となるため、負荷を軽減することができる。
【００７９】
（カメラ姿勢推定部３００）
カメラ姿勢推定部３００は、照合部２００から入力された３次元座標と２次元座標のマッチから３次元座標と２次元座標の関係を説明するカメラ姿勢を推定する。
具体的には、カメラ姿勢推定部３００は、照合部２００から入力された３次元座標Ｘと２次元ピクセル座標ｘのマッチと、カメラの内部パラメータＡとを用いて、カメラ姿勢Ｗを推定する。例えば、カメラ姿勢推定部３００は、下記式（１４）の再投影誤差eを最小にするWを最小二乗アルゴリズムによって推定する。
【００８０】
【数１１】
0005855416.tif 000012
【００８１】
以上のように、カメラ姿勢推定装置２０によれば、立体対象物が曲面を含む場合であっても、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させることができる。
【００８２】
なお、カメラ姿勢推定装置２０は、図２に示すように、データベース部１００、照合部２００、及び、カメラ姿勢推定部３００を備えるが、各部（データベース部１００、照合部２００、カメラ姿勢推定部３００）を独立した装置（即ち、別体）としてもよい。例えば、データベース部１００は、カメラ姿勢推定装置２０から独立させた別体としてもよい。
【００８３】
なお、データベース部１００内の処理部１１０は、上述の如く、処理機能（特徴点検出手段、３次元座標取得手段、パラメータ算出手段、削除手段）を有し、カメラによって撮像された立体対象物のカメラ画像から当該カメラのカメラ姿勢を推定する際に用いられる立体対象物の３次元座標を取得する。以下では、別体としたデータベース部１００の装置名を３次元座標取得装置と称する。
【００８４】
図４は、本発明の実施形態である３次元座標取得装置１００の機能ブロック図の一例である。３次元座標取得装置１００は、カメラ姿勢を推定する際に用いられる立体対象物の３次元座標を取得する。３次元座標取得装置１００は、図４に示すように、処理部１１０、特徴情報データベース１２０、３次元座標データベース１３０、数式モデル記憶部１４０を備える。処理部１１０は、特徴点検出部１１１、パラメータ算出部１１２、３次元座標取得部１１３、削除部１１４、及び、データ送信部１１９を備える。なお、特徴情報データベース１２０、３次元座標データベース１３０については、既に説明したため、説明を省略する。
【００８５】
数式モデル記憶部１４０は、立体対象物の数式モデル（即ち、立体対象物の方程式）を記憶する。なお、本実施形態においては、数式モデルを予め取得し記憶しているが、３次元座標を取得する都度、数式モデルを取得してもよく、３次元座標を取得する都度、数式モデルを取得する場合には、３次元座標取得装置１００は、数式モデル記憶部１４０を備える必要はない。
【００８６】
特徴点検出部１１１は、カメラ画像内の立体対象物の特徴点を検出する。具体的には、特徴点検出部１１１は、カメラ画像から、当該画像平面内の特徴点を検出する。パラメータ算出部１１２は、カメラの内部パラメータ及び立体対象物のカメラ画像を用いて、カメラの焦点及び前記画像平面内の特徴点を通過する直線のパラメータ、及び、立体対象物の数式モデルのパラメータを算出する。
【００８７】
３次元座標取得部１１３は、上述の直線の方程式と、立体対象物の数式モデル（立体対象物の方程式）とから、直線と立体対象物との交点を算出し、特徴点の３次元座標として取得する。なお、３次元座標取得部１１３は、複数個の交点が算出された場合、複数個の交点のうちカメラの焦点に近い一の交点を３次元座標として取得する。また、３次元座標取得部１１３は、交点を取得する方程式が２次方程式の場合、立体対象物上に交点が存在するか否かを判定する判定式（例えば、球の場合、上記式（９）を用いて、特徴点が立体対象物上の点であるか否かを判定する。また、３次元座標取得部１１３は、立体対象物の曲面部分については、数式モデルを利用して特徴点の３次元座標を取得する一方、立体対象物の平面部分については３次元ポリゴンモデルを利用して特徴点の３次元座標を取得してもよい。
【００８８】
また、３次元座標取得部１１３は、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁の位置を特徴点の３次元座標として取得しないようにしてもよい。具体的には、３次元座標取得部１１３は、上述の判定式の閾値を変化させることによって、上述の位置を３次元座標として取得しないようにしてもよい。
【００８９】
削除部１１４は、一の特徴点を通過する直線から交点が算出されなかった場合、当該特徴点を特徴情報データベース１２０から削除する。
【００９０】
送受信部１１９は、上述のように構築したデータベース（特徴情報データベース１２０、３次元座標データベース１３０）内の情報を、例えば、要求に応じて、カメラ姿勢推定装置（データベース部１００を具備しないカメラ姿勢推定装置２０）に送信する。
【００９１】
以上のように、３次元座標取得装置１００は、数式モデルによって表現可能な、表面の一部又は全部が曲面である立体対象物を含む、あらゆる立体対象物について、夫々の数式モデルを利用して、精密な３次元座標を取得することができる。特に、球、円柱、円錐、円環体のような幾何形状で構成される立体対象物の場合、処理の負荷も少なく、容易に、精密な３次元座標を取得することができる。
【００９２】
なお、本発明の一実施形態によるカメラ姿勢推定装置２０の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の一実施形態によるカメラ姿勢推定装置２０に係る処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、フラッシュメモリ等の書き込み可能な不揮発性メモリ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【００９３】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ（例えばＤＲＡＭ（Dynamic Random Access Memory））のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【００９４】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【００９５】
１…ＡＲシステム  １０…撮像装置  ２０…カメラ姿勢推定装置  ３０…表示装置  ９０…付加情報データベース  １００…データベース部（３次元座標取得装置）  １１０…処理部  １１１…特徴点検出部  １１２…パラメータ算出部  １１３…３次元座標取得部  １１４…削除部  １１９…データ送信部  １２０…特徴情報データベース  １３０…３次元座標データベース  ２００…照合部  ２１０…特徴点検出部  ２２０…特徴量記述部  ２３０…特徴量照合部  ３００…カメラ姿勢推定部
【図１】
0005855416.tif 000013
【図２】
0005855416.tif 000014
【図３】
0005855416.tif 000015
【図４】
0005855416.tif 000016