説明

3次元座標取得装置、カメラ姿勢推定装置、プログラム

【課題】カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させる。
【解決手段】3次元座標取得装置100は、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の3次元座標を取得する3次元座標取得装置であって、前記撮像画像から、画像平面内の特徴点を検出する特徴点検出部111と、前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の3次元座標として取得する3次元座標取得部113とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、3次元座標取得装置、カメラ姿勢推定装置、プログラムに関する。
【背景技術】
【0002】
近年、現実空間の映像をコンピュータで処理して更なる情報を付加するAR(拡張現実感)技術が、種々の電子機器(例えば、WEBカメラが接続されたPC、カメラ付き携帯電話端末)上において、実現されるようになっている。
AR技術においては、カメラ画像内の立体対象物に対するカメラ姿勢(カメラの外部パラメータ)を推定する必要がある。
カメラ姿勢の推定には、基準マーカ等を利用する技術が知られているが、特定のマーカを利用せずに立体対象物に対するカメラ姿勢を推定する技術(3次元ポリゴンモデルを利用したマーカレスAR技術)も提案されている。例えば、特許文献1、2には、予め立体対象物の3次元ポリゴンモデルをオフラインで取得しておき、カメラ画像内の2次元ピクセル座標と3次元ポリゴンモデルの3次元座標とを対応させるカメラの姿勢を決定し、カメラ姿勢として推定する技術が開示されている。
一般にカメラ姿勢の推定では、推定精度が2次元ピクセル座標に対応する厳密な3次元座標を取得できるか否かに影響される。3次元ポリゴンモデルを利用した場合、一の2次元ピクセル座標に対応する3次元座標は、カメラの焦点及び画像平面内の一の2次元ピクセル座標を持つ点を通過する直線と、ポリゴンモデルを構成する一のポリゴン(平面)の交点Xとして取得されるため、3次元座標の取得精度は3次元ポリゴンモデル自体の精度に影響される。表面が平面のみから構成される立体対象物(例えば、直方体)を利用する場合、容易に高精度な3次元ポリゴンモデルを準備することができるため、比較的高精度に、カメラ姿勢を推定することができる。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特表2010−519629号公報
【特許文献2】特開2011−118724号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、曲面を有する立体対象物(表面の一部又は全部が曲面である立体対象物。例えば、球、円柱、円錐、円環体)を利用する場合、曲面部分において、個々の3次元座標がずれるなどの誤差が生じ、高い精度の3次元ポリゴンモデルを取得することができない。従って、曲面を有する立体対象物を利用した場合、カメラ姿勢の推定精度が悪化するという問題がある。
更に、カメラ姿勢の推定精度に係る問題点の他、2次元ピクセル座標に対応する3次元座標を取得する際には、2次元ピクセル座標に対応する一のポリゴン(平面)を計算によって特定する必要があるため、処理負荷が大きくなるという問題がある。
なお、3次元ポリゴンモデルの曲面部分の誤差の程度は、曲面部分を構成する平面の多寡によるため、誤差の程度を少なくし、カメラ姿勢の推定精度を高くするためには、曲面部分を構成する平面の数を大幅に増やす必要があるが、そうすると、処理負荷が更に大きくなるという問題がある。
【0005】
本発明は、上述の課題を鑑みてなされたものであり、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させる技術を提供する。特に、本発明は、曲面を有する立体対象物を用いる場合において、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させる技術を提供する。
【課題を解決するための手段】
【0006】
上記問題を解決するために、本発明の一態様である3次元座標取得装置は、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の3次元座標を取得する3次元座標取得装置であって、前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の3次元座標として取得する3次元座標取得手段とを備えることを特徴とする。ここで、前記立体対象物の方程式とは、立体対象物全体の表面を表すものであり、例えば球体であれば球の方程式、円柱体であれば側面と底面を表す2平面を連立した方程式を指す。
【0007】
上記3次元座標取得装置において、前記カメラの内部パラメータ及び前記立体対象物の撮像画像を用いて、前記直線の方程式のパラメータ及び前記立体対象物の方程式のパラメータを算出するパラメータ算出手段を更に備えるようにしてもよい。
【0008】
上記3次元座標取得装置において、前記3次元座標取得手段は、複数個の前記交点が算出された場合、複数個の前記交点のうち前記カメラの焦点に近い一の交点を前記3次元座標として取得するようにしてもよい。
【0009】
上記3次元座標取得装置において、前記立体対象物の特徴点を記憶する特徴情報データベースと、一の前記特徴点を通過する直線から前記交点が算出されなかった場合、当該特徴点を前記特徴情報データベースから削除する削除手段とを更に備えるようにしてもよい。
【0010】
上記3次元座標取得装置において、前記3次元座標取得手段は、前記交点を取得する方程式が2次方程式の場合、判別式を用いて、前記特徴点が立体対象物上の点であるか否かを判定するようにしてもよい。
【0011】
上記3次元座標取得装置において、前記立体対象物は、表面の一部又は全部が曲面であってもよい。
【0012】
上記3次元座標取得装置において、前記立体対象物は、表面の一部が曲面であって、前記3次元座標取得手段は、前記立体対象物の曲面部分については、前記立体対象物の方程式を利用して前記特徴点の3次元座標を取得する一方、前記立体対象物の平面部分については3次元ポリゴンモデルを利用して前記特徴点の3次元座標を取得するようにしてもよい。
【0013】
上記3次元座標取得装置において、前記3次元座標取得手段は、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を前記特徴点の3次元座標として取得しないようにしてもよい。
【0014】
上記3次元座標取得装置において、前記3次元座標取得手段は、前記立体対象物上に前記交点が存在するか否かを判定する判定式の閾値を変化させることによって、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を3次元座標として取得しないようにしてもよい。
【0015】
上記問題を解決するために、本発明の他の態様であるカメラ姿勢推定装置は、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定するカメラ姿勢推定装置であって、予め撮像した前記撮像画像内の前記立体対象物の特徴点の2次元ピクセル座標と、予め取得した前記立体対象物の特徴点の3次元座標とを対応付けて記憶するデータベース部と、今回撮像した撮像画像から前記立体対象物の特徴点を抽出し、前記データベース部内の前記2次元ピクセル座標と照合する照合部と、前記照合結果に基づいてカメラ姿勢を推定するカメラ姿勢推定部とを備え、前記データベース部は、前記カメラの焦点、及び、前記撮像画像から検出された画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから算出された、前記直線と前記立体対象物との交点を、前記立体対象物の特徴点の3次元座標として記憶することを特徴とする。
【0016】
上記カメラ姿勢推定装置において、前記立体対象物は、表面の一部が曲面であって、前記データベース部は、前記立体対象物の曲面部分について前記立体対象物の方程式を利用して算出された前記3次元座標を記憶し、前記立体対象物の平面部分について3次元ポリゴンモデルを利用して算出された3次元座標を記憶するようにしてもよい。
【0017】
上記問題を解決するために、本発明の他の態様であるプログラムは、カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の3次元座標を取得する3次元座標取得装置のコンピュータに、前記撮像画像から、画像平面内の特徴点を検出する特徴点検出ステップと、前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の3次元座標として取得する3次元座標取得ステップとを実行させることを特徴とする。
【発明の効果】
【0018】
本発明によれば、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させることができる。
【図面の簡単な説明】
【0019】
【図1】本発明の実施形態であるカメラ姿勢推定装置20を含むARシステム1の概念図である。
【図2】カメラ姿勢推定装置20の機能ブロック図の一例である。
【図3】数式モデルを説明するための説明図である。
【図4】本発明の実施形態である3次元座標取得装置100の機能ブロック図の一例である。
【発明を実施するための形態】
【0020】
以下、本発明の実施形態について図面を参照して詳細に説明する。図1は、本発明の実施形態であるカメラ姿勢推定装置20を含むARシステム1の概念図である。ARシステム1は、図1に示すように、撮像装置10、カメラ姿勢推定装置20、表示装置30、付加情報データベース90から構成される。
【0021】
撮像装置10は、撮像画像(カメラ画像、又は、2次元画像とも称する)を取得する装置である。撮像装置10の一例は、図1に示すように、WEBカメラである。但し、撮像装置10は、WEBカメラの如く独立した装置でなく、例えば、カメラ付き携帯電話端末に搭載されているカメラモジュールのように、他の装置と一体化、若しくは、他の装置の一部を構成するものであってもよい。撮像装置10、立体対象物を撮像したカメラ画像(立体対象物が写っているカメラ画像)を連続的に取得する。撮像装置10は、カメラ姿勢推定装置20及び表示装置30にカメラ画像を出力する。
【0022】
ARシステム1において使用する立体対象物は、曲面を有する立体対象物(表面の一部又は全部が曲面である立体対象物。例えば、球、円柱、円錐、円環体)である。図1に示す例では、球状の地球儀を用いているが、ボール、飲料水の容器(例えば、缶、ビン、ペットボトル)、円柱に貼付された印刷物(例えば、広告、ポスター)などを用いても、同様のARシステムが構築可能である。
【0023】
カメラ姿勢推定装置20は、撮像装置10から出力されたカメラ画像を取得する。カメラ画像を取得したカメラ姿勢推定装置20は、立体対象物に対するカメラの相対的な姿勢、即ち、カメラ姿勢(カメラの外部パラメータ)を推定する(詳細は後述)。カメラ姿勢を推定したカメラ姿勢推定装置20は、表示装置30にカメラ姿勢(カメラ姿勢を特定する情報)を出力する。
なお、ARシステム1において、複数の立体対象物を用いる場合には、カメラ姿勢とともに、カメラ姿勢の推定する際に利用した立体対象物を識別する情報を表示装置30に出力する。
【0024】
付加情報データベース90は、表示装置30に出力する立体対象物に関する付加情報を記憶する記憶装置である。PCのHDD、携帯端末のメモリモジュールなどが付加情報データベース90に該当する。
付加情報の一例は、表示装置30の表示画面上において立体対象物に重畳して表示させるCG、他の画像、文字情報である。カメラ姿勢推定装置20によってカメラ姿勢が推定された場合、付加情報データベース90から当該カメラ姿勢に応じた付加情報が読み出され、表示装置30に出力され、表示装置30の表示画面上において、立体対象物に重畳して表示される。
【0025】
付加情報は、表示部30からの要求に応じて表示装置30に出力されてもよいし、カメラ姿勢推定装置20からの制御(出力指示)に応じて表示装置30に出力されてもよい。
【0026】
重畳表示の応用例は、立体対象物の種類に応じて異なるが、図1に示すように、立体対象物として地球儀を用いる場合には、カメラ画像内の地球儀に対し、気象情報(例えば、天気図、温度分布)の重畳表示、地理的情報(例えば、高度を視覚できる表示態様による地表の情報、各種資源の埋蔵位置/埋蔵量に関する情報、過去の大陸形状/予想される未来の大陸形状)の重畳表示、社会的情報(例えば、現在の国名、国境、及び、国境、国名の更新情報、何らかの勢力分布/構成割合を示す情報)の重畳表示といった応用例が想定される。更に、ジェスチャー認識技術を更に用いて、指差した位置(指示位置)に応じた情報(例えば、指示位置を領土/領海とする国名、国旗、国境線)を重畳表示するといった応用例も考えられる。
【0027】
表示装置30は、撮像装置10が連続的に取得したカメラ画像をユーザに掲示する装置である。表示装置30の一例は、図1に示すようなモニタである。但し、表示装置30は、図1に示したモニタの如く独立した装置でなく、例えば、カメラ付き携帯電話端末における表示部(表示制御部及びディスプレイ)のように、他の装置と一体化、若しくは、他の装置の一部を構成するものであってもよい。また、表示装置30は、ヘッドマウントディスプレイ(HMD)のような形態であってもよい。
【0028】
表示装置30としてモニタ(ディスプレイ)を用いる場合には、カメラ画像に、付加情報データベース90から入力された付加情報を、カメラ姿勢推定装置20から入力されたカメラ姿勢によって補正された位置に重畳表示する。また、表示部がシースルー形の表示装置30(例えば、シースルー型のHMD)を用いる場合には、カメラ画像を表示せず、視界に付加情報のみを表示してもよい。
【0029】
なお、カメラ付き携帯電話端末に搭載されているカメラモジュール及び表示部が、ARシステム1の撮像装置10及び表示装置30と成り得る旨を説明したが、例えば、携帯端末(ノートPC、携帯電話端末、携帯型ゲーム機)上で、ARシステム1全体を構成してもよい。
【0030】
(カメラ姿勢推定装置20の構成)
図2は、カメラ姿勢推定装置20の機能ブロック図の一例である。カメラ姿勢推定装置20は、図2に示すように、データベース部100、照合部200、及び、カメラ姿勢推定部300を備える。
【0031】
データベース部100は、処理部110、特徴情報データベース120、及び、3次元座標データベース130から構成される。
特徴情報データベース120は、カメラ画像内の立体対象物(図1の例の場合、地球儀)の特徴情報(特徴点を含む情報)の座標(2次元ピクセル座標)を記憶する。
3次元座標データベース130は、立体対象物の3次元座標を記憶する。具体的には、3次元座標データベース130は、特徴情報データベース120に記憶された2次元ピクセル座標(カメラ画像内の立体対象物の特徴点を示す座標)に対応する、立体対象物の3次元座標(立体対象物の特徴点の3次元座標)を記憶する。
【0032】
処理部110は、種々の処理を実行する。例えば、処理部110は、立体対象物を撮像したカメラ画像から当該立体対象物の特徴点を検出し(特徴点検出手段)、当該特徴点の2次元ピクセル座標を特徴情報データベース120に記憶しておく。なお、処理部110は、例えば、Harrisコーナー検出器を用いて特徴点を検出する。また、例えば、処理部110は、立体対象物の特徴点の3次元座標を取得し(3次元座標取得手段)、2次元ピクセル座標に対応付けて、3次元座標データベース130に記憶しておく。また、処理部110は、特徴情報データベース120又は3次元座標データベース130に記憶されている情報を照合部230に提供する。
データベース部100の詳細については後述する。
【0033】
照合部200は、特徴点検出部210、特徴量記述部220、及び、特徴量照合部230を備える。特徴点検出部210は、カメラ画像内の特徴点(立体対象物の特徴点を含む)を検出する。特徴点を検出した特徴点検出部210は、各特徴点の2次元ピクセル座標を特徴量記述部220に出力する。
【0034】
特徴量記述部220は、特徴点検出部210から取得した各特徴点における局所特徴量を計算する。局所特徴量を計算した特徴量記述部220は、計算結果を特徴量照合部230に出力する。また、特徴量記述部220は、特徴情報データベース120において記録されている特徴点について、局所特徴量を同様に計算し、例えば、特徴情報データベース120に記憶しておいてもよい(処理部110が当該処理を実行してもよい)。
なお、特徴量記述部220(又は処理部110)は、予め、データベース部100において記録されている特徴点の局所特徴量を計算し、データベース部100に記憶しておいてもよい。
【0035】
特徴量照合部230は、特徴量記述部220から取得した局所特徴量(即ち、カメラ画像から得られた局所特徴量)と、特徴情報データベース120に記録されている局所特徴量とを比較し、カメラ画像上の特徴点と特徴情報データベース120上の特徴点の照合計算を行って、カメラ画像上の特徴点と特徴情報データベース120上の特徴点をマッチングさせる。例えば、特徴量照合部230は、個々の特徴点について、SIFTやSURF等の局所特徴量を計算し、マッチングさせる特徴点として、局所特徴量間のユークリッド距離dが最小となる特徴点を導出する。
【0036】
特徴量照合部230は、カメラ画像上の特徴点と特徴情報データベース120上の特徴点とのマッチングが完了した場合、マッチの一方側の特徴点として、カメラ画像上における、マッチさせた特徴点の2次元ピクセル座標を取得するとともに、他方側の特徴点である特徴情報データベース120上の特徴点に対応付けられている3次元座標を3次元座標データベース130から取得する。
特徴量照合部230は、照合結果として、上述の如く取得した2次元ピクセル座標と3次元座標のマッチ(組)をカメラ姿勢推定部300に出力する。
【0037】
カメラ姿勢推定部300は、照合部200から取得した照合結果(3次元座標と2次元座標のマッチ)の関係を説明するカメラ姿勢(換言すれば、照合結果と整合するカメラ姿勢)を推定する。
なお、カメラ姿勢推定部300の詳細については後述する。
【0038】
上記構成によって、カメラ姿勢推定装置20は、カメラ画像からカメラ姿勢を推定する。続いて、データベース部100、及び、カメラ姿勢推定部300について説明する。
【0039】
(データベース部100)
3次元座標データベース130は、特徴情報データベース120に記憶された2次元ピクセル座標(カメラ画像内の立体対象物の特徴点を示す座標)に対応する、立体対象物の3次元座標(立体対象物の特徴点の3次元座標)を記憶するが、処理部110は、立体対象物の幾何情報を用いて、立体対象物の特徴点の2次元ピクセル座標に対応する、立体対象物の3次元座標を取得し(3次元座標取得手段)、3次元座標データベース130に記憶しておく。立体対象物の幾何情報とは、立体対象物の方程式である。以下、立体対象物の方程式を「数式モデル」とも称する。
【0040】
即ち、処理部110は、カメラ画像から立体対象物の特徴点を検出し(特徴点検出手段)、特徴点の2次元ピクセル座標を特徴情報データベース120に記憶するとともに、数式モデルを用いて、特徴点の2次元ピクセル座標に対応する3次元座標を取得し(3次元座標取得手段)、3次元座標データベース130に記憶する。
換言すれば、処理部110は、上述のようにして、特徴点のマッチングにおいて参照されるデータベース(3次元座標データベース130、特徴情報データベース120)を構築(生成)しておく。
【0041】
ピンホールカメラモデルにおける透視投影は下記式(1)によって表される。
【0042】
【数1】

【0043】
図3は、数式モデルを説明するための説明図である。球状立体物の数式モデルは、下記式(2)によって表される。換言すれば、下記式(2)は、球状立体物の方程式である。但し、下記式(2)において、pは球上の点、cは球の中心、rは球の半径である(図3(a)参照)。
【0044】
【数2】

【0045】
焦点と画像平面内の特徴点を通過する直線は、例えば、下記式(3)によって表される。換言すれば、下記式(3)は、上記直線の方程式である。但し、下記式(3)において、qは直線上の点、sは焦点、vは直線の方向ベクトルである。
【0046】
【数3】

【0047】
球状立体物の特徴点の3次元座標は、上記式(2)の数式モデル、上記式(3)の直線(焦点と画像平面内の特徴点を通過する直線とする)の交点の座標として得ることができる。換言すれば、球状立体物の方程式と、焦点と画像平面内の特徴点を通過する直線の方程式とから交点の座標を取得することができる。
具体的には、処理部110は、上記式(2)によって表される球状立体物の数式モデルのパラメータ(即ち、球状立体物の方程式のパラメータ)である中心c、上記式(3)によって表される直線のパラメータ(即ち、焦点と画像平面内の特徴点を通過する直線の方程式のパラメータ)である焦点s、方向ベクトルvを求め、p=qとし、p(又はq)を交点の座標として計算し、球状立体物の特徴点の3次元座標として取得する(3次元座標取得手段)。
【0048】
処理部110は、カメラの内部パラメータ及び立体対象物のカメラ画像を用いて、数式モデルのパラメータ、及び、直線のパラメータを算出する(パラメータ算出手段)。球状立体物の場合、処理部110は、上記式(2)の球状立体物の数式モデルのパラメータ(中心c)、及び、上記式(3)の直線のパラメータ(焦点s、方向ベクトルv)を算出する。
【0049】
具体的には、球状立体物の撮像時における、球状立体物に対するカメラ姿勢W=[R、t](原点は球モデルの中心cとする)が予め与えられている場合、下記式(4)〜(7)が成立するため、処理部110は、上述のパラメータ(中心c、焦点s、方向ベクトルv)を算出することができる。
【0050】
【数4】

【0051】
処理部110が特徴点の2次元ピクセル座標に対応する3次元座標を予めオフラインで計算し、データベースに登録しておくような場合、カメラ画像からカメラ姿勢を理想的に取得することができる。
【0052】
カメラ姿勢をフレーム毎に追跡するような場合、前フレームの特徴点とカメラ姿勢の推定値を利用して3次元座標を取得し、データベースを更新していくことができる。
【0053】
また、カメラ姿勢が与えられていない場合には、カメラ画像内の立体対象物のピクセル座標(球の場合は楕円の中心(x0,y0)と長径2a)を取得することで、数式モデルのパラメータ、及び、直線のパラメータを求めることが可能である。
【0054】
例えば、cを原点とし、カメラの焦点距離と特徴点の2次元ピクセル座標から、上記式(7)のv’を求める。立体対象物がX軸、Y軸、Z軸に対し、夫々、θ、φ、ψだけ回転している場合、回転行列Rは、下記式(8)によって表現されるため、下記式(8)と上記式(7)とから方向ベクトルvを求める。
【0055】
【数5】

【0056】
次に、カメラ画像内の球の位置と投影された球(楕円)の長径2a、回転行列R、球の半径rから球の中心と焦点間のベクトルdとその長さを計算し、焦点sを求める。
【0057】
また、処理部110は、複数個の交点が算出された場合、複数個の交点のうちカメラの焦点に近い一の交点を3次元座標として取得する(3次元座標取得手段)。これにより、立体対象物の特徴点の2次元ピクセル座標に対し、正しい、立体対象物の特徴点の3次元座標を対応付けることができる。
【0058】
また、処理部110は、一の特徴点を通過する直線を用いたときに交点が算出されなかった場合、当該特徴点を特徴情報データベース120から削除してもよい(削除手段)。つまり、交点が得られない場合、特徴点が立体対象物にないことを意味するため、特徴情報データベース120から削除してもよい。
【0059】
また、処理部110は、交点を取得する方程式が2次方程式の場合、判別式(下記式(9)参照)を用いて、特徴点が立体対象物上の点であるか否かを判定してもよい(3次元座標取得手段)。
【0060】
また、処理部110は、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁に位置を特徴点の3次元座標として取得しないようにしてもよい(無視してもよい)(3次元座標取得手段)。
【0061】
一般に曲面の法線と直線の交わる角度が大きい3次元座標値は精度が悪くなるため、例えば球状立体物の場合、中心から離れた輪郭周辺の2次元ピクセル座標値に対応する3次元座標は誤差が大きくなる。従って、処理部110は、誤差が大きくなるような3次元座標については、3次元座標データベース130に記憶しないようにして、最終的なカメラ姿勢推定精度を向上させるようにしてもよい。
【0062】
具体的には、処理部110は、立体対象物の曲面の法線と直線との間の角度(曲面の法線と直線の交わる角度)が大きい3次元座標値をマスキングし(即ち、交点として算出されないようにし)、特徴点の3次元座標として取得しないようにする。
【0063】
また、処理部110は、交点の座標計算の式が2次方程式の場合、判別式の閾値を変更し、簡便に、上述のマスキングを実現してもよい。
【0064】
下記式(9)は、球の場合の判別式の一例である。
【数6】

【0065】
上記式(9)において、Dの閾値をαrとし、0<α<1と変化させることで球面の輪郭に近い3次元座標値を閾値以下として除外する。つまり、処理部110は、立体対象物上に交点が存在するか否かを判定する判定式(球の場合、上記式(9))の閾値を変化させることによって、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁の位置を3次元座標として取得しないようにしている(3次元座標取得手段)。
【0066】
カメラ姿勢推定装置20における処理部110は、このようにして取得した3次元座標値を3次元座標データベース130に登録する。
【0067】
なお、表面の一部又は全部が曲面である立体対象物の一例として、球状立体物の例を説明したが、表面の一部又は全部が曲面である他の立体対象物についても、夫々の数式モデルを用いて、球状立体物と同様、夫々の立体対象物の3次元座標を取得することができる。
【0068】
例えば、円柱状立体物の場合、その側面の数式モデルは、下記式(10)によって表され、球状立体物と同様の方法を用いて3次元座標を取得することができる(図3(b)参照)。
【0069】
【数7】

【0070】
なお、円柱状立体物の軸をy軸に平行とした場合、上記式(10)におけるAは、下記式(11)によって表される。
【0071】
【数8】

【0072】
また例えば、円錐状立体物の場合、その側面の数式モデルは、下記式(12)によって表され、球状立体物と同様の方法を用いて3次元座標を取得することができる
【0073】
【数9】

【0074】
なお、円錐状立体物の軸がy軸に平行とした場合、上記式(12)におけるAは、下記式(13)によって表される。
【0075】
【数10】

【0076】
以上のように、データベース部100は、数式モデルによって表現可能な、表面の一部又は全部が曲面である立体対象物を含む、あらゆる立体対象物について、夫々の数式モデルを利用して、精密な3次元座標を取得することができる。特に、球、円柱、円錐、円環体のような幾何形状で構成される立体対象物(簡潔な数式モデルによって表現可能な立体対象物)の場合、処理の負荷も少なく、容易に、精密な3次元座標を取得することができる。
【0077】
なお、データベース部100は、数式モデルに加え、3次元ポリゴンモデルを利用して3次元座標を取得するようにしてもよい。例えば、データベース部100は、立体対象物の平面部分については3次元ポリゴンモデルを利用し、曲面部分については数式モデルを利用し、3次元座標を取得してもよい。既存の3次元ポリゴンモデルを利用した3次元座標の取得方法と組み合わせることで、曲面と平面の両方含む複雑な形状の立体対象物であっても、カメラ姿勢を効率的に推定することが可能になる。
【0078】
つまり、3次元ポリゴンモデルを利用した場合、2次元ピクセル座標がどのポリゴンに対応するか計算する必要があるが、多くのポリゴンによって表現しなければならない曲面の部分について数式モデルを利用することによって、曲面の部分については上述の計算処理が不要となるため、負荷を軽減することができる。
【0079】
(カメラ姿勢推定部300)
カメラ姿勢推定部300は、照合部200から入力された3次元座標と2次元座標のマッチから3次元座標と2次元座標の関係を説明するカメラ姿勢を推定する。
具体的には、カメラ姿勢推定部300は、照合部200から入力された3次元座標Xと2次元ピクセル座標xのマッチと、カメラの内部パラメータAとを用いて、カメラ姿勢Wを推定する。例えば、カメラ姿勢推定部300は、下記式(14)の再投影誤差eを最小にするWを最小二乗アルゴリズムによって推定する。
【0080】
【数11】

【0081】
以上のように、カメラ姿勢推定装置20によれば、立体対象物が曲面を含む場合であっても、カメラ姿勢の推定精度を向上させるとともに、処理負荷を軽減させることができる。
【0082】
なお、カメラ姿勢推定装置20は、図2に示すように、データベース部100、照合部200、及び、カメラ姿勢推定部300を備えるが、各部(データベース部100、照合部200、カメラ姿勢推定部300)を独立した装置(即ち、別体)としてもよい。例えば、データベース部100は、カメラ姿勢推定装置20から独立させた別体としてもよい。
【0083】
なお、データベース部100内の処理部110は、上述の如く、処理機能(特徴点検出手段、3次元座標取得手段、パラメータ算出手段、削除手段)を有し、カメラによって撮像された立体対象物のカメラ画像から当該カメラのカメラ姿勢を推定する際に用いられる立体対象物の3次元座標を取得する。以下では、別体としたデータベース部100の装置名を3次元座標取得装置と称する。
【0084】
図4は、本発明の実施形態である3次元座標取得装置100の機能ブロック図の一例である。3次元座標取得装置100は、カメラ姿勢を推定する際に用いられる立体対象物の3次元座標を取得する。3次元座標取得装置100は、図4に示すように、処理部110、特徴情報データベース120、3次元座標データベース130、数式モデル記憶部140を備える。処理部110は、特徴点検出部111、パラメータ算出部112、3次元座標取得部113、削除部114、及び、データ送信部119を備える。なお、特徴情報データベース120、3次元座標データベース130については、既に説明したため、説明を省略する。
【0085】
数式モデル記憶部140は、立体対象物の数式モデル(即ち、立体対象物の方程式)を記憶する。なお、本実施形態においては、数式モデルを予め取得し記憶しているが、3次元座標を取得する都度、数式モデルを取得してもよく、3次元座標を取得する都度、数式モデルを取得する場合には、3次元座標取得装置100は、数式モデル記憶部140を備える必要はない。
【0086】
特徴点検出部111は、カメラ画像内の立体対象物の特徴点を検出する。具体的には、特徴点検出部111は、カメラ画像から、当該画像平面内の特徴点を検出する。パラメータ算出部112は、カメラの内部パラメータ及び立体対象物のカメラ画像を用いて、カメラの焦点及び前記画像平面内の特徴点を通過する直線のパラメータ、及び、立体対象物の数式モデルのパラメータを算出する。
【0087】
3次元座標取得部113は、上述の直線の方程式と、立体対象物の数式モデル(立体対象物の方程式)とから、直線と立体対象物との交点を算出し、特徴点の3次元座標として取得する。なお、3次元座標取得部113は、複数個の交点が算出された場合、複数個の交点のうちカメラの焦点に近い一の交点を3次元座標として取得する。また、3次元座標取得部113は、交点を取得する方程式が2次方程式の場合、立体対象物上に交点が存在するか否かを判定する判定式(例えば、球の場合、上記式(9)を用いて、特徴点が立体対象物上の点であるか否かを判定する。また、3次元座標取得部113は、立体対象物の曲面部分については、数式モデルを利用して特徴点の3次元座標を取得する一方、立体対象物の平面部分については3次元ポリゴンモデルを利用して特徴点の3次元座標を取得してもよい。
【0088】
また、3次元座標取得部113は、立体対象物の曲面上の位置であってカメラの焦点の側から見て周縁の位置を特徴点の3次元座標として取得しないようにしてもよい。具体的には、3次元座標取得部113は、上述の判定式の閾値を変化させることによって、上述の位置を3次元座標として取得しないようにしてもよい。
【0089】
削除部114は、一の特徴点を通過する直線から交点が算出されなかった場合、当該特徴点を特徴情報データベース120から削除する。
【0090】
送受信部119は、上述のように構築したデータベース(特徴情報データベース120、3次元座標データベース130)内の情報を、例えば、要求に応じて、カメラ姿勢推定装置(データベース部100を具備しないカメラ姿勢推定装置20)に送信する。
【0091】
以上のように、3次元座標取得装置100は、数式モデルによって表現可能な、表面の一部又は全部が曲面である立体対象物を含む、あらゆる立体対象物について、夫々の数式モデルを利用して、精密な3次元座標を取得することができる。特に、球、円柱、円錐、円環体のような幾何形状で構成される立体対象物の場合、処理の負荷も少なく、容易に、精密な3次元座標を取得することができる。
【0092】
なお、本発明の一実施形態によるカメラ姿勢推定装置20の各処理を実行するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、当該記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、本発明の一実施形態によるカメラ姿勢推定装置20に係る処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものであってもよい。また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0093】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【0094】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0095】
1…ARシステム 10…撮像装置 20…カメラ姿勢推定装置 30…表示装置 90…付加情報データベース 100…データベース部(3次元座標取得装置) 110…処理部 111…特徴点検出部 112…パラメータ算出部 113…3次元座標取得部 114…削除部 119…データ送信部 120…特徴情報データベース 130…3次元座標データベース 200…照合部 210…特徴点検出部 220…特徴量記述部 230…特徴量照合部 300…カメラ姿勢推定部

【特許請求の範囲】
【請求項1】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の3次元座標を取得する3次元座標取得装置であって、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出手段と、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の3次元座標として取得する3次元座標取得手段と
を備えることを特徴とする3次元座標取得装置。
【請求項2】
前記カメラの内部パラメータ及び前記立体対象物の撮像画像を用いて、前記直線の方程式のパラメータ及び前記立体対象物の方程式のパラメータを算出するパラメータ算出手段
を更に備えることを特徴とする請求項1に記載の3次元座標取得装置。
【請求項3】
前記3次元座標取得手段は、
複数個の前記交点が算出された場合、複数個の前記交点のうち前記カメラの焦点に近い一の交点を前記3次元座標として取得する
ことを特徴とする請求項1又は請求項2に記載の3次元座標取得装置。
【請求項4】
前記立体対象物の特徴点を記憶する特徴情報データベースと、
一の前記特徴点を通過する直線から前記交点が算出されなかった場合、当該特徴点を前記特徴情報データベースから削除する削除手段と
を更に備えることを特徴とする請求項1乃至請求項3の何れか1項に記載の3次元座標取得装置。
【請求項5】
前記3次元座標取得手段は、
前記交点を取得する方程式が2次方程式の場合、判別式を用いて、前記特徴点が立体対象物上の点であるか否かを判定する
ことを特徴とする請求項1乃至請求項4の何れか1項に記載の3次元座標取得装置。
【請求項6】
前記立体対象物は、
表面の一部又は全部が曲面である
ことを特徴とする請求項1乃至請求項5の何れか1項に記載の3次元座標取得装置。
【請求項7】
前記立体対象物は、
表面の一部が曲面であって、
前記3次元座標取得手段は、
前記立体対象物の曲面部分については、前記立体対象物の方程式を利用して前記特徴点の3次元座標を取得する一方、前記立体対象物の平面部分については3次元ポリゴンモデルを利用して前記特徴点の3次元座標を取得する
ことを特徴とする請求項1乃至請求項5の何れか1項に記載の3次元座標取得装置。
【請求項8】
前記3次元座標取得手段は、
前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を前記特徴点の3次元座標として取得しないようにする
ことを特徴とする請求項6又は請求項7に記載の3次元座標取得装置。
【請求項9】
前記3次元座標取得手段は、
前記立体対象物上に前記交点が存在するか否かを判定する判定式の閾値を変化させることによって、前記立体対象物の曲面上の位置であって前記カメラの焦点の側から見て周縁の位置を3次元座標として取得しないようにする
ことを特徴とする請求項8に記載の3次元座標取得装置。
【請求項10】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定するカメラ姿勢推定装置であって、
予め撮像した前記撮像画像内の前記立体対象物の特徴点の2次元ピクセル座標と、予め取得した前記立体対象物の特徴点の3次元座標とを対応付けて記憶するデータベース部と、
今回撮像した撮像画像から前記立体対象物の特徴点を抽出し、前記データベース部内の前記2次元ピクセル座標と照合する照合部と、
前記照合結果に基づいてカメラ姿勢を推定するカメラ姿勢推定部と
を備え、
前記データベース部は、
前記カメラの焦点、及び、前記撮像画像から検出された画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから算出された、前記直線と前記立体対象物との交点を、前記立体対象物の特徴点の3次元座標として記憶する
ことを特徴とするカメラ姿勢推定装置。
【請求項11】
前記立体対象物は、
表面の一部が曲面であって、
前記データベース部は、
前記立体対象物の曲面部分について前記立体対象物の方程式を利用して算出された前記3次元座標を記憶し、前記立体対象物の平面部分について3次元ポリゴンモデルを利用して算出された3次元座標を記憶する
ことを特徴とする請求項10に記載のカメラ姿勢推定装置。
【請求項12】
カメラによって撮像された立体対象物の撮像画像から当該カメラのカメラ姿勢を推定する際に用いられる前記立体対象物の3次元座標を取得する3次元座標取得装置のコンピュータに、
前記撮像画像から、画像平面内の特徴点を検出する特徴点検出ステップと、
前記カメラの焦点及び前記画像平面内の特徴点を通過する直線の方程式と、前記立体対象物の方程式とから、前記直線と前記立体対象物との交点を算出し、前記特徴点の3次元座標として取得する3次元座標取得ステップと
を実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2013−92407(P2013−92407A)
【公開日】平成25年5月16日(2013.5.16)
【国際特許分類】
【出願番号】特願2011−233586(P2011−233586)
【出願日】平成23年10月25日(2011.10.25)
【出願人】(000208891)KDDI株式会社 (2,700)
【Fターム(参考)】