説明

3次元情報取得装置および3次元情報取得プログラム

【課題】対象と初期状態が異なる場合、この対象と初期状態との違いに基づく最適化処理の解の誤差を軽減すること。
【解決手段】位置姿勢逐次計測手段の初回起動時において最初に求めた初期フレームに対応する前記特徴点座標と前記カメラポーズ情報に対して、前記3次元座標および前記カメラポーズ情報の信頼度に応じて予め決められている加重値に基づく補正を行い、前記3次元座標の最適化を行う最適化処理手段を備えることを特徴とする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、カメラによって入力された少なくとも1枚以上のカメラ画像列から、カメラの位置及び姿勢を示すカメラポーズ情報と、撮影された3次元実空間の3次元情報を計測する3次元情報取得装置および3次元情報取得プログラムに関する。
【背景技術】
【0002】
カメラによって入力された少なくとも1枚以上のカメラ画像列から、カメラの位置及び姿勢を示すカメラポーズ情報と、撮影された3次元実空間における3次元座標を示す3次元情報を計測する従来の3次元情報取得装置では、計測したカメラの位置及び姿勢を用いて、カメラ画像中にコンピュータグラフィクス等を合成することや、計測した3次元座標情報を用いて3次元実空間の状況を理解することなどを可能としている。
従来の3次元情報取得装置では、カメラから入力される初期時刻におけるカメラポーズ情報と、対象の3次元座標情報が与えられていることを前提に、(1)カメラ画像中での特徴点の追跡、(2)カメラポーズ情報の推定、(3)特徴点の3次元座標の推定・更新を繰り返すことによって、時々刻々と変化するカメラポーズ情報、及び撮影された3次元シーンの3次元座標情報の計測を実現している。
【0003】
初期時刻におけるカメラポーズ情報と、対象の3次元座標情報は、例えば下記非特許文献1に記載の方法では、ユーザが本やワインボトル等の平面に近い形状である撮影対象に対しおおむね正対してカメラを持つと仮定する。この初期状態のカメラポーズ情報に含まれるカメラの位置は、カメラ画像内における2次元の座標と平行移動成分を0ベクトルを用いて表わすことができる。また、カメラポーズ情報に含まれるカメラの姿勢は、カメラの方位角と仰角で表わすことができるが、この方位角と仰角の回転成分を単位行列として表わすことができる。
またカメラ画像中での特徴点pの3次元座標の初期状態を(Xp,Yp,Zp)=(xp, yp,1)としている。
【先行技術文献】
【非特許文献】
【0004】
【非特許文献1】「動画像からの三次元復元による湾曲した紙面のビデオモザイキング」(佐藤智和,池谷彰彦,池田聖,神原誠之,中島昇,横矢直和:電子情報通信学会論文誌D,巻:Vol.J90-D,No.8,pp.1900-1911,2007)
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1では、対象が非平面と大きく異なる3次元座標を有する場合がある。初期値が真値と大きく異なる場合、つまり、対象と初期状態が大きく異なる場合には、最適化処理時に局所解に陥り正しい解が得られないことがあるといった問題があった。
本発明は、上述したような従来技術が有する問題点に鑑みてなされたものであり、3次元情報取得装置において、対象と初期状態が異なる場合、この対象と初期状態との違いに基づく最適化処理の解の誤差を軽減することができる3次元情報取得装置および3次元情報取得プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上述の課題を鑑み、本発明に係る3次元情報取得装置は、所定の被写体を撮影し連続する複数のフレーム毎のカメラ画像データをカメラから入力する入力部と、前記カメラ画像データに基づきカメラ画像内における特徴点を抽出し、前記カメラ画像内における前記特徴点の位置を示す特徴点座標と、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報とを、前記実空間中における観測点とこれに対応するカメラ画像内における投影点の誤差を最小化することにより、複数フレームにわたって求める位置姿勢逐次計測手段と、仮想3次元空間における前記特徴点の位置を示す3次元座標、前記特徴点座標、および前記カメラポーズ情報に対して、前記カメラポーズ情報と前記3次元座標の信頼度に応じて予め決められている加重値に基づく補正を行い、前記カメラポーズ情報と前記3次元座標の最適化を行う最適化処理手段と、を備えることを特徴とする。
【0007】
上述の3次元情報取得装置において、前記最適化処理手段は、前記3次元座標と前記カメラポーズ情報の信頼度が低いとして予め決められているフレームに対応して与えられる前記加重値を決定するフレーム単位加重値決定手段と、前記カメラポーズ情報と前記3次元座標の最適化を行う際、複数のフレームに対応する前記カメラポーズ情報と前記3次元座標と前記特徴点座標とに基づき表わされる投影誤差に、前記フレーム単位加重値決定手段が決定した前記加重値を乗算して、フレーム単位の誤差を算出し、非線形最小二乗により前記フレーム単位の誤差が最小化となるように前記カメラポーズ情報と前記3次元座標の最適化を行う非線形最小二乗手段とを含むことを特徴とする。
【0008】
上述の3次元情報取得装置において、前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降のフレームに対して1.0の加重値を、それぞれ用いることが予め決められていることを特徴とする。
【0009】
上述の3次元情報取得装置において、前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降の予め決められた数の中期フレームに対して前記第1の加重値から1.0まで線形に減少する第2の加重値、前記中期フレーム以降のフレームに対して1.0の第3の加重値を、それぞれ用いることが予め決められていることを特徴とする。
【0010】
上述の3次元情報取得装置において、前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降の予め決められた数の中期フレームに対して前記第1の加重値から1.0までがガウス関数に基づき減少する第2の加重値、前記中期フレーム以降のフレームに対して1.0の第3の加重値を、それぞれ用いることが予め決められていることを特徴とする。
【0011】
上述の3次元情報取得装置において、前記位置姿勢逐次計測手段は、前記初期フレームに対応する前記カメラ画像データを前記入力部から入力した場合、当該初期フレームに対応するカメラ画像データに基づきカメラ画像内における特徴点を抽出し、当該カメラ画像内における前記特徴点の位置を示す特徴点座標を求めて、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報の初期値として予め決められている初期カメラポーズ情報と、仮想3次元空間における前記特徴点の位置を示す3次元座標として予め決められている初期3次元座標とを対応付けて記憶部に書き込み、前記初期フレームの以降に撮影された非初期フレームに対応するカメラ画像データを前記入力部から入力した場合、当該入力したカメラ画像データに基づきカメラ画像内における前記特徴点の前記特徴点座標を求めるとともに、当該カメラ画像データもより前の複数のフレームに対応するカメラ画像データから求めた前記特徴点座標および前記3次元座標に基づき、カメラ画像内における観測点と投影点の誤差を最小化することにより、前記非初期フレームに対応する前記カメラポーズ情報を求め、前記特徴点座標と前記カメラポーズ情報とを各フレームに対応付けて前記記憶部に書き込むことを特徴とする。
【0012】
上述の課題を鑑み、本発明に係る3次元情報取得プログラムは、コンピュータを、所定の被写体を撮影し連続する複数のフレーム毎のカメラ画像データをカメラから入力する入力手段、前記カメラ画像データに基づきカメラ画像内における特徴点を抽出し、前記カメラ画像内における前記特徴点の位置を示す特徴点座標と、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報とを、前記実空間中における観測点とこれに対応するカメラ画像内における投影点の誤差を最小化することにより、複数フレームにわたって求める位置姿勢逐次計測手段、仮想3次元空間における前記特徴点の位置を示す3次元座標と前記特徴点座標と前記カメラポーズ情報とに対して、前記カメラポーズ情報と前記3次元座標の信頼度に応じて予め決められている加重値に基づく補正を行い、前記カメラポーズ情報と前記3次元座標の最適化を行う最適化処理手段、として機能させるための3次元情報取得プログラムであることを特徴とする。
【発明の効果】
【0013】
本発明によれば、対象と初期状態が異なる可能性が高い初期値及び当該初期値により逐次算出された初期フレーム以降のカメラポーズ情報及び3次元座標に対して、重み付けをもって最適化処理を行うため、カメラポーズ情報及び対象の3次元座標を局所解に陥ることを回避し、対象と初期状態との違いに基づく最適化処理の解の誤差を軽減することができる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係る3次元情報取得装置の構成の一例を示すブロック図である。
【図2】本発明の実施形態に係る3次元情報取得装置による3次元情報所得処理フローの一例を示すフローチャートを示す図である
【図3】本発明の実施形態に係るフレーム対応テーブルの一例を示す図である。
【図4】本発明の実施形態に係る特徴点対応テーブルの一例を示す図である。
【図5】本発明の実施形態に係る3次元情報取得装置による最適化処理フローの一例を示すフローチャートを示す図である。
【図6】本発明の実施形態に係る重み関数の一例を示す図である。
【図7】本発明の実施形態に係る重み関数の他の例を示す図である。
【図8】本発明の実施形態に係る重み関数の他の例を示す図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態による3次元情報取得装置100について図1を参照して説明する。
図1は、本実施形態による3次元情報取得装置100の構成を示す概略ブロック図である。
3次元情報取得装置100は、カメラ200と、モニタ装置300と、HDD401と、メモリ402と、有線あるいは無線、若しくはネットワークを介して接続されている。
【0016】
カメラ200は、対象となる3次元の被写体を撮影する装置で、例えば、CCD(Charge−Coupled Device)カメラ、CMOSカメラ(Complementary Mental−Oxide Semiconductor)などを含む装置である。本発明においては当該カメラ100の焦点距離などを示す内部パラメータは、予め設定されており、メモリ402に記憶されているものとする。
モニタ装置300は、3次元情報取得装置100から出力される情報に基づき画像を表示する。
【0017】
メモリ402は、3次元情報取得装置100における様々なデータ、例えば、フレーム毎のカメラポーズ情報、フレーム対応テーブル、特徴点対応テーブル、初期カメラポーズ情報等を格納する。このメモリ402は、3次元情報取得装置100の本体に内蔵されても良いし、図示の通り3次元情報取得装置100本体の外部に備えられても良い。
この初期カメラポーズ情報と初期3次元座標群は適当な値で良い。例えば、非特許文献1と同様に、初期状態のカメラポーズ情報である位置及び姿勢を、それぞれ、平行移動成分を0ベクトル、回転成分を単位行列と、3次元座標点群のz座標を全て1としても良い。
【0018】
このメモリ402に記憶されているカメラの位置および姿勢が示すカメラポーズ情報とは、カメラ200が撮影する被写体とこのカメラ200との位置や向きの関係を示す情報であり、例えば、被写体に対するカメラ200の相対的な位置および姿勢を示す情報である。なお、このカメラポーズ情報は、被写体に対するカメラ200の位置や姿勢を示す情報であって、例えば、実空間におけるカメラ200のカメラ位置と、カメラ200の撮像面(例えば、CCDの光電変換面)の方位角や仰角で表わされるカメラ姿勢を示す情報であってもよい。
【0019】
この3次元情報取得装置100は、位置姿勢逐次計測手段101と、最適化処理手段102を備える。
最適化処理手段102は、パラメータ読出手段121と、フレーム単位加重値決定手段122と、非線形最小二乗手段123とを備える。
【0020】
位置姿勢逐次計測手段101は、現フレームに対応するカメラポーズ情報と特徴点座標列を算出し、その値をメモリ402に記録する。初期フレームの場合、位置姿勢逐次計測手段101は、予め与えられた初期カメラポーズ情報と初期3次元座標群に基づき、現フレームに対応するカメラポーズ情報と特徴点座標列を算出する。初期フレーム以外の場合、位置姿勢逐次計測手段101は、メモリから読出した前フレームの特徴点座標列、カメラポーズ情報、及び最新の3次元座標群に基づき、現フレームに対応するカメラポーズ情報と特徴点座標列を算出し、メモリ402に記録する。
【0021】
最適化処理手段102は、3次元座標群と、予め定められた対象フレーム数に亘ったカメラポーズ情報および3次元座標群の最適化処理を実施して各々の値を算出し、既存の値を修正出力する。
【0022】
以下、最適化処理手段102を構成するパラメータ読出手段121、フレーム単位加重値決定手段122、及び非線形最小二乗手段123の概要をそれぞれ説明する。
パラメータ読出手段121は、メモリ402からフレーム毎のカメラポーズ情報と特徴点座標列を、予め与えられた対象フレーム数分に亘って読み出す。このパラメータ読出手段121は、併せて、メモリ402から最新の3次元座標群を読み出す。
フレーム単位加重値決定手段122は、予め与えられた重み付け関数を用いて、フレーム毎に対応する加重値を前記対象フレーム数分に亘って決定し、非線形最小二乗手段123に出力する。
非線形最小二乗手段123は、処理対象フレームのカメラポーズ情報と3次元座標群及び前記特徴点座標列を用いて算出した値に、フレーム単位加重値決定手段122が算出した加重値を乗算してフレーム単位の誤差を算出する。この非線形最小二乗手段123は、フレーム単位の誤差を対象フレーム数分に亘って合算することにより誤差総和値を算出し、当該誤差総和値を用いて非線形最小二乗により3次元座標群と前記対象フレーム数に亘ったカメラポーズ情報の真値(推定値)を算出し、メモリ402に新たな情報を書き込むことで情報を更新する。
なお、本実施形態において、真値とは、初期状態におけるカメラの位置および姿勢を示す情報として概ね正確であると推定される推定値である。
【0023】
本発明の実施形態に係る3次元情報取得装置100で実行される詳細な処理を以下に説明する。
図2は、3次元情報取得装置100での全体の処理の流れを示すフローチャートである。
(ステップST1)
まず、本実施形態における3次元情報取得装置100は、例えば、ユーザにより終了が指示されて操作部(図示せず)から入力する終了指示信号の受信有無を確認する。
終了指示信号を受信した場合(ステップST1−YES)、3次元情報取得装置100は、処理を終える。
一方、終了指示信号を受信した場合(ステップST1−NO)、3次元情報取得装置100は、以下の処理を行なう。
【0024】
まず、カメラ100が、撮影を開始すると、撮影を開始したことを示す信号を3次元情報取得装置100に出力する。そして、カメラ200は、現時刻(t=1)において撮影された被写体の画像を示すカメラ画像データD1を自身のメモリに保存する。なお、このカメラ画像データD1は、第1フレーム目のデータである。
(ステップST2)
3次元情報取得装置100は、撮影を開始したことを示す信号をカメラ200から受信すると、カメラ200に対して、このカメラ画像データの転送を要求する信号を送信する。
(ステップST3)
続いて、3次元情報取得装置100は、位置姿勢逐次計測手段101を起動する。そして、カメラ200は、カメラ画像データの転送を要求する信号を受信すると、3次元情報取得装置100に対して、カメラ画像データD1を送信する。
【0025】
(ステップST4)
起動されると、位置姿勢逐次計測手段101は、カメラ200からカメラ画像データD1を受信する。そして、位置姿勢逐次計測手段101は、この起動が、初回起動であるかどうかを判定する。例えば、3次元情報取得装置100の電源がONされてから一度も起動されていない状態において、起動した場合、位置姿勢逐次計測手段101は、初回起動であると判定する。
【0026】
(ステップST5)
初回起動の場合(ステップST4−YES)、位置姿勢逐次計測手段101は、予め与えられた初期カメラポーズ情報CPをメモリ402から読み出す。
続いて、位置姿勢逐次計測手段101は、カメラ画像データD1に基づき、カメラ画像上において角部分や交点部分となる特徴点を少なくとも1つ抽出する。この位置姿勢逐次計測手段101は、例えば、カメラ画像データD1に対して、矩形図面を検出するパターン検出を行うことで、この矩形の角部分を検出することができる。また、位置姿勢逐次計測手段101は、カメラ画像データD1に対して画像処理をすることにより、同一色と判定できる領域を同一色領域として検出し、3つ以上の同一色領域が接触する点を交点部分として検出する。本実施形態において、位置姿勢逐次計測手段101は、N個(N>1)の特徴点p〜pを検出する。
【0027】
そして、位置姿勢逐次計測手段101は、カメラ画像データD1に基づき、抽出した特徴点p〜p毎に、カメラ画像内における2次元の特徴点座標2DP(xp,yp),・・・,2DP(xp,yp)を求める。この位置姿勢逐次計測手段101は、全ての特徴点座標2DP〜2DPをまとめた特徴点座標列PGを、第1フレームおよび初期カメラポーズ情報Pと対応付けて、メモリ402内のフレーム対応テーブルに書き込む。なお、このフレーム対応テーブルは、フレームごとにカメラポーズ情報と特徴点座標列を対応付けるテーブルであって、一例を図3に示す。
また、位置姿勢逐次計測手段101は、特徴点座標2DP(xp,yp),・・・,2DP(xp,yp)を、特徴点p,・・・,pと対応付けて、メモリ402内の特徴点対応テーブルに書き込む。なお、この特徴点対応テーブルは、2次元のカメラ画像内における特徴点p〜pの位置を示す特徴点座標と、仮想実空間上における特徴点p〜pの位置を示す3次元座標位置を、特徴点p〜pごとに対応付けるテーブルであって、一例を図4に示す。
【0028】
続いて、位置姿勢逐次計測手段101は、抽出した特徴点p〜p毎に、初期3次元座標群の値を対応付けて、メモリ402の特徴点対応テーブルに書き込む。
ここで、2次元のカメラ画像内における特徴点pの特徴点座標は、(xp,yp)である。3次元座標点群のz座標を全て1とした場合、特徴点pの初期3次元座標3DP(Xp,Yp,Zp)は、(Xp,Yp,Zp)=(xp,yp,1)とすることによって実現できる。
【0029】
本実施形態の場合、カメラ画像データD1からN点の特徴点p,・・・,pが抽出されており、位置姿勢逐次計測手段101は、すべての特徴点p,・・・,pに亘って、同じ処理を繰り返す。つまり、位置姿勢逐次計測手段101は、全ての特徴点p,・・・,pに対応する初期3次元座標3DP〜3DPを求める。なお、この複数の特徴点p,・・・,pに対応する初期3次元座標3DP〜3DPの集合を、3次元座標群という。
すなわち、位置姿勢逐次計測手段101は、特徴点p,・・・,pの特徴点座標(xp,yp),・・・,(xp,yp)に基づき、各特徴点p,・・・,pに基づく初期3次元座標点群{3DP(Xp,Yp,Zp),・・・,3DP(Xp,Yp,Zp)}を求める。位置姿勢逐次計測手段101は、各特徴点p,・・・,pに対して、初期3次元座標点群{3DP(Xp,Yp,Zp),・・・,3DP(Xp,Yp,Zp)}を対応付けてメモリ402の特徴点対応テーブルに保存する。なお、3次元座標点3DP(Xp,Yp,Zp)=(xp,yp,1)であり、初期3次元座標点3DP(Xp,Yp,Zp)=(xp,yp,1)である。
【0030】
そして、位置姿勢逐次計測手段101は、求めた初期3次元座標群{(Xp,Yp,Zp),・・・,(Xp,Yp,Zp)}を、最新の3次元座標群としてメモリ402の特徴点対応テーブルに書き出す。併せて、位置姿勢逐次計測手段101は、初期カメラポーズ情報CPと特徴点座標列PGを、現フレームのカメラ画像データD1と対応付けて、メモリ402のフレーム対応テーブルに書出す。そして、位置姿勢逐次計測手段101は、ステップST1へと戻る。
【0031】
(ステップST6)
一方、ステップST4において、初回起動でない場合、位置姿勢逐次計測手段101は、まずメモリ402のフレーム対応テーブルから、直前のフレームのカメラ画像データと対応付けられているカメラポーズ情報と特徴点座標列を読み出す。位置姿勢逐次計測手段101は、併せて、メモリ402の特徴点対応テーブルから、最新の3次元座標群も読み出す。
【0032】
次いで、カメラ200から第fフレーム目のカメラ画像データDf(f>1)を入力した場合、位置姿勢逐次計測手段101は、第f−1フレーム目のカメラ画像データDf−1と対応付けられているカメラポーズ情報CPf−1と特徴点座標列PGf−1{2DP(xp,yp),・・・,2DP(xp,yp)}を読出す。
例えば、カメラ200から第2フレーム目のカメラ画像データD2を入力した場合、位置姿勢逐次計測手段101は、メモリ402のフレーム対応テーブルにおいて、第1フレーム目のカメラ画像データD1と対応付けられているカメラポーズ情報CPと特徴点座標列PGを読み出すとともに、メモリ402の特徴点対応テーブルにおいて、特徴点座標列PGと対応付けられている特徴点座標{2DP(xp,yp),・・・,2DP(xp,yp)}を読み出す。
【0033】
続けて、位置姿勢逐次計測手段101は、このメモリ402から読み出した前フレームの特徴点座標列{2DP(xp,yp),・・・,2DP(xp,yp)}について、現フレーム内における対応点を特徴点追跡により決定し当該特徴点の座標を求める。
この特徴点追跡処理は、特徴点近傍画素値の類似度を評価するテンプレートマッチング等により実現される。この特徴点追跡処理をメモリから読出した前フレームの特徴点に亘って処理を行い、現フレームにおける特徴点座標列を決定する。
例えば、位置姿勢逐次計測手段101は、特徴点追跡処理により、第2フレームのカメラ画像内における特徴点p,・・・,pを抽出する。そして、位置姿勢逐次計測手段101は、抽出した第2フレームのカメラ画像内における特徴点p,・・・,pの特徴点座標(xp,yp),・・・,(xp,yp)を求める。この特徴点座標(xp,yp),・・・,(xp,yp)の集合が、特徴点座標列PGである。
【0034】
続いて、位置姿勢逐次計測手段101は、決定した現フレームの特徴点座標列と、メモリ402から読出した最新の3次元座標群を用いて現フレームのカメラポーズ情報を算出する。
例えば、位置姿勢逐次計測手段101は、現フレームの特徴点座標列として、第2フレームの特徴点座標PG{(xp,yp),・・・,(xp,yp)}を決定した場合、メモリ402の特徴点対応テーブルに書き込まれている最新の3次元座標列として、第1フレームに基づき求められた初期3次元座標列PG{3DP(Xp,Yp,Zp),・・・,3DP(Xp,Yp,Zp)}を読み出し、第2フレームに対応するカメラポーズ情報CPを求める。そして、位置姿勢逐次計測手段101は、求めたカメラポーズ情報CPを、第2フレームのカメラ画像データD2と対応付けて、メモリ402のフレーム対応テーブルに書き込む。
【0035】
この位置姿勢逐次計測手段101によるカメラポーズ情報の算出は、従来の技術と特に変わるところが無いので、以下では簡単な説明に留める。
まず、仮想実空間中の3次元空間中の点(X,Y,Z,1)と、カメラ画像上の投影点(u,v,1)には、式(1)の関係が成り立つ。
【0036】
【数1】

【0037】
式(1)に示すPは、3×4の行列であり、カメラ200の外部パラメータであるカメラポーズ情報Pを示す。またTは、転値を表す。
続いて画像上の観測点を、以下に示す。
【0038】
【数2】

【0039】
この観測点と、投影点の誤差を、式(2)で表現する。
【0040】
【数3】

【0041】
現フレームのカメラポーズ情報Pは、これをパラメータとして、現フレーム内の特徴点pの座標(u´,v´と、これに対応する最新の3次元座標値(Xp,Yp,Zp)を用いることで決定される式(2)で定義した誤差関数の和を、以下に示す。
【0042】
【数4】

【0043】
位置姿勢逐次計測手段101は、この式(3)に示す誤差関数の和を、非線形最小二乗法によって最小化することにより算出できる。
ここで、pは、フレーム内の特徴点に唯一に付与されたIDを示す。
非線形最小二乗法の処理は、例えばニュートン法や、マーカート法を用いることで実現可能である。
【0044】
例えば、位置姿勢逐次計測手段101は、式(1)における(X,Y,Z,1)を、特徴点p,・・・,pに対応する最新の3次元座標点群{3DP(Xp,Yp,Zp),・・・,3DP(Xp,Yp,Zp)}として、カメラ画像上の投影点{(u,v,1),・・・,(u,v,1)}を求める。また、位置姿勢逐次計測手段101は、式(2)における(u´,v´)を、カメラ画像上の観測点である特徴点座標{(xp,yp),・・・,(xp,yp)}として、カメラ画像上の投影点{(u,v,1),・・・,(u,v,1)}のそれぞれについて、カメラ画像上の観測点である特徴点座標{(xp,yp),・・・,(xp,yp)}との誤差E,・・・,Eを、特徴点p,・・・,pごとに求める。
そして、位置姿勢逐次計測手段101は、式(3)に示すこの誤差E,・・・,Eの総和を、非線形最小二乗法によって最小化することにより、第2フレームのカメラ画像データD2に対応するカメラポーズ情報CPを求めることができる。
【0045】
続いて、位置姿勢逐次計測手段101は、算出したカメラポーズ情報と現フレームの特徴点座標列を、現フレームと対応付けてメモリ402に書出す。
つまり、位置姿勢逐次計測手段101は、算出したカメラポーズ情報CPと現フレームの第2フレームの特徴点座標列PGを、第2フレームのカメラ画像データD2と対応付けて、メモリ402のフレーム対応テーブルに書き出す。
【0046】
(ステップST7)
続いて、位置姿勢逐次計測手段101は、予め与えられた閾値により最適化処理要否判定を行なう。
この判定は、例えば、閾値として、最適化処理が可能となる処理フレーム数として決められたフレーム数と、最新の3次元座標群を求めるために処理対象としたフレーム数とを、位置姿勢逐次計測手段101が比較することにより行う。位置姿勢逐次計測手段101は、処理対象としたフレーム数が、閾値以上であった場合(ステップST7−要)、最適化処理を行う。一方、処理対象としたフレーム数が閾値未満であった場合(ステップST7‐不要)、位置姿勢逐次計測手段101は、最適化処理が不要と判定し、行わない。なお、この処理対象としたフレーム数とは、最適化処理を行うために必要なフレーム数であって、例えば3フレームである。
勿論、位置姿勢逐次計測手段101は、最小化された結果の誤差関数Eやその複数フレームでの和等に対する閾値処理によっても実現できる。
【0047】
上記判定で最適化処理が不要となれば、位置姿勢逐次計測手段101は、処理を終えてステップST1へと戻る。
(ステップST8)
上記判定で最適化処理が必要となれば、位置姿勢逐次計測手段101は、処理を終えて、最適化処理手段102を起動する。
【0048】
次いで、図5を参照して、最適化処理手段102による処理フローについて説明する。図5は、最適化処理手段による処理フローの一例を説明するためのフローチャートである。
(ステップST11)
最適化処理手段102は、起動されると、まずパラメータ読出手段121を起動する。
パラメータ読出手段121は起動されると、メモリ402に記憶されているフレーム毎のカメラポーズ情報と特徴点座標列を、予め与えられた対象フレーム数分に亘って読出す。
また、パラメータ読出手段121は、メモリ402に記憶されている最新の3次元座標群も読出す。そして、パラメータ読出手段121は、読み出した情報を夫々、フレーム単位加重値前決定手段122へと転送する。これにより、フレーム単位加重値決定手段122は、起動する。
【0049】
(ステップST12)
フレーム単位加重値前決定手段121は起動すると、予め与えられた重み付け関数W(f)を用いて、フレーム毎に対応する加重値Wを、前記対象フレーム数分に亘って決定する。
ここで重み付け関数W(f)としては、例えば、以下、式(4)、(5)、(6)に示すような関数のいずれか1つを用いることができる。
式(4)〜(6)において、cは自然数で予め与えられた非信頼区間フレーム数を示す。この非信頼区間フレーム数とは、実験的あるいは経験的に、位置姿勢逐次計測手段101によって求められた3次元座標とカメラポーズ情報の信頼性が低いと判断されるフレーム数である。このフレーム数は予め決められている。bは、1.0より大きな実数で予めユーザにより与えられた値を示す。fはフレーム番号を示す。
【0050】
【数5】

【0051】
式(4)、(5)、(6)をグラフ化したものを、それぞれ、図6,7,8に示す。図6,7,8は、それぞれ、横軸にフレーム数を、縦軸に加重値Wを、それぞれとるグラフであって、式(4)、(5)、(6)に示す重み付け関数W(f)を表わすものである。
【0052】
図6に示す通り、式(4)では、初期フレームに対する加重値のみ大きく、次フレーム以降は1.0となる。つまり、真値と異なる初期フレームのみ重み付けを行い、最適化処理に要する時間を短縮するとともに、局所解とならないようにすることができる。
【0053】
図7に示す通り、式(5)では、初期フレームは加重値が大きく次フレーム以降線形に加重値が減少し、対象フレーム数を超えた時点で1.0となる。これは、真値と異なる初期フレームから徐々にフレーム数が増えるに従って、3次元座標列と真値とのズレを収束することができていると考えられる。よって、初期フレームに対して最も重い重み付けを行い、線形に徐々に重みを減らしていくことにより、最適化処理に要する時間を短縮するとともに、局所解とならないようにすることができる。
【0054】
図8に示す通り、式(6)では、初期フレーム近辺では加重値が大きく初期フレームから離れるに従ってガウス関数に基づき加重値が減少し、対象フレーム数を超えた時点で約1.0となる。ここでも、初期フレームに対して最も重い重み付けを行い、線形に徐々に重みを減らしていくことにより、最適化処理に要する時間を短縮するとともに、局所解とならないようにすることができる。
【0055】
例えば、このフレーム単位加重値決定手段122による加重値の算出について、例えば式(4)を利用し、非信頼区間フレーム数cが3、対象フレーム数が5であった場合、フレームIDであるfの順で加重値Wを並べるとW={b,1,1,1,1,1}となる。
【0056】
(ステップST13)
続けて、非線形最小二乗手段123が起動する。
非線形最小二乗手段123は、始めに、フレーム単位の誤差E´を、処理対象フレームのカメラポーズ情報と3次元座標群及び特徴点座標列を用いて算出した値に加重値Wを乗算して算出する。
【0057】
式(2)で定義した誤差関数を用いると、E´は下式(7)で表される。
【0058】
【数6】

【0059】
続いて、非線形最小二乗手段123は、前記フレーム単位の誤差E´を対象フレーム数分に亘って合算することにより誤差総和値E´´を算出する。
式(2)で定義した誤差関数を用いると、E´´は、下式(8)で表される。
【0060】
【数7】

【0061】
続いて、非線形最小二乗手段123は、フレーム毎のカメラポーズ情報と最新の3次元座標群をパラメータとして、当該誤差E´´を非線形最小二乗により最小化することによって、真値と推定されるパラメータ(カメラポーズ情報および3次元座標群)を算出し、更新することによって処理を終了する。つまり、非線形最小二乗手段123は、誤差E´´が非線形最小二乗により最小となるときのカメラポーズ情報および3次元座標群を、真値と推定されるパラメータとして決定する。
【0062】
ここで、フレーム毎のカメラポーズ情報と最新の3次元座標群をパラメータとした非線形最小二乗は、例えば非特許文献2記載のバンドルアジャスメントの枠組みを用いることによって、非線形最小二乗手段123が実現できる。
<非特許文献2>「バンドルアジャスメント」(岡谷貴之:情報処理学会研究報告 2009年6月 Vol.2009‐CVIM‐167 No.37, pp. 1‐16, 2009)
【0063】
以上、本発明を実施形態例に基づき具体的に説明したが、上記実施の形態の説明は、本発明を説明するためのものであって、特許請求の範囲に記載の発明を限定し、或は範囲を減縮する様に解すべきではない。
また、本発明の各手段構成は上記実施の形態に限らず、特許請求の範囲に記載の技術的範囲内で種々の変形が可能であることは勿論である。
【0064】
上述の通り、本発明によれば、対象と初期状態が異なる可能性が高い初期値及び当該初期値により逐次算出された初期フレーム以降のカメラポーズ及び3次元座標に対して、重み付けをもって最適化処理を行うため、カメラポーズ及び対象の3次元座標を局所解に陥ることを回避し、対象と初期状態との違いに基づく最適化処理の解の誤差を軽減することができる。
また、初期値が真値と異なる場合、つまり、対象と初期状態が異なる場合、3次元座標の推定・更新を行う最適化処理に時間を要するといった問題があった。本発明によれば、最適化処理において、対象と初期状態との違いに応じて重み付けを行うことにより、その対象と初期状態の違いに基づく最適化処理に用いられるパラメータのズレを補正することができる。よって、対象と初期状態との違いを補正しないで最適化処理した場合に要する時間に比べて、時間を短縮することができる。
【0065】
なお、上述の3次元情報取得装置100は、内部にコンピュータシステムを有している。そして、3次元情報取得装置100の動作の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータシステムが読み出して実行することによって、上記処理が行われる。ここでいう「コンピュータシステム」とは、CPU及び各種メモリやOS、周辺機器等のハードウェアを含むものである。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
【0066】
また、図2,5に示す各ステップを実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、また、図1に示す3次元情報取得装置100の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、検出対象物の形状情報の推定値を算出する処理を行ってもよい。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、フラッシュメモリ等の書き込み可能な不揮発性メモリ、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0067】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(例えばDRAM(Dynamic Random Access Memory))のように、一定時間プログラムを保持しているものも含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【符号の説明】
【0068】
100・・・3次元情報取得装置、101・・・位置姿勢逐次計算手段、102・・・最適化処理手段、121・・・パラメータ読出手段、122・・・フレーム単位加重値決定手段、123・・・非線形最小二乗手段、200・・・カメラ、300・・・モニタ装置、401・・・HDD、402・・・メモリ

【特許請求の範囲】
【請求項1】
所定の被写体を撮影し連続する複数のフレーム毎のカメラ画像データをカメラから入力する入力部と、
前記カメラ画像データに基づきカメラ画像内における特徴点を抽出し、前記カメラ画像内における前記特徴点の位置を示す特徴点座標と、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報とを、前記実空間中における観測点とこれに対応するカメラ画像内における投影点の誤差を最小化することにより、複数フレームにわたって求める位置姿勢逐次計測手段と、
仮想3次元空間における前記特徴点の位置を示す3次元座標、前記特徴点座標、および前記カメラポーズ情報に対して、前記カメラポーズ情報と前記3次元座標の信頼度に応じて予め決められている加重値に基づく補正を行い、前記カメラポーズ情報と前記3次元座標の最適化を行う最適化処理手段と、
を備えることを特徴とする3次元情報取得装置。
【請求項2】
前記最適化処理手段は、
前記3次元座標と前記カメラポーズ情報の信頼度が低いとして予め決められているフレームに対応して与えられる前記加重値を決定するフレーム単位加重値決定手段と、
前記カメラポーズ情報と前記3次元座標の最適化を行う際、複数のフレームに対応する前記カメラポーズ情報と前記3次元座標と前記特徴点座標とに基づき表わされる投影誤差に、前記フレーム単位加重値決定手段が決定した前記加重値を乗算して、フレーム単位の誤差を算出し、非線形最小二乗により前記フレーム単位の誤差が最小化となるように前記カメラポーズ情報と前記3次元座標の最適化を行う非線形最小二乗手段と
を含むことを特徴とする請求項1に記載の3次元情報取得装置。
【請求項3】
前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降のフレームに対して1.0の加重値を、それぞれ用いることが予め決められていることを特徴とする請求項1あるいは2に記載の3次元情報取得装置。
【請求項4】
前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降の予め決められた数の中期フレームに対して前記第1の加重値から1.0まで線形に減少する第2の加重値、前記中期フレーム以降のフレームに対して1.0の第3の加重値を、それぞれ用いることが予め決められていることを特徴とする請求項1あるいは2に記載の3次元情報取得装置。
【請求項5】
前記加重値は、初期フレームに対して1.0よりも大きい第1の加重値、前記初期フレーム以降の予め決められた数の中期フレームに対して前記第1の加重値から1.0までがガウス関数に基づき減少する第2の加重値、前記中期フレーム以降のフレームに対して1.0の第3の加重値を、それぞれ用いることが予め決められていることを特徴とする請求項1あるいは2に記載の3次元情報取得装置。
【請求項6】
前記位置姿勢逐次計測手段は、
前記初期フレームに対応する前記カメラ画像データを前記入力部から入力した場合、当該初期フレームに対応するカメラ画像データに基づきカメラ画像内における特徴点を抽出し、当該カメラ画像内における前記特徴点の位置を示す特徴点座標を求めて、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報の初期値として予め決められている初期カメラポーズ情報と、仮想3次元空間における前記特徴点の位置を示す3次元座標として予め決められている初期3次元座標とを対応付けて記憶部に書き込み、
前記初期フレームの以降に撮影された非初期フレームに対応するカメラ画像データを前記入力部から入力した場合、当該入力したカメラ画像データに基づきカメラ画像内における前記特徴点の前記特徴点座標を求めるとともに、当該カメラ画像データもより前の複数のフレームに対応するカメラ画像データから求めた前記特徴点座標および前記3次元座標に基づき、カメラ画像内における観測点と投影点の誤差を最小化することにより、前記非初期フレームに対応する前記カメラポーズ情報を求め、前記特徴点座標と前記カメラポーズ情報とを各フレームに対応付けて前記記憶部に書き込むことを特徴とする請求項1から5のうちいずれか1つに記載の3次元情報取得装置。
【請求項7】
コンピュータを、
所定の被写体を撮影し連続する複数のフレーム毎のカメラ画像データをカメラから入力する入力手段、
前記カメラ画像データに基づきカメラ画像内における特徴点を抽出し、前記カメラ画像内における前記特徴点の位置を示す特徴点座標と、前記被写体に対する前記カメラの相対的な位置および姿勢を示すカメラポーズ情報とを、前記実空間中における観測点とこれに対応するカメラ画像内における投影点の誤差を最小化することにより、複数フレームにわたって求める位置姿勢逐次計測手段、
仮想3次元空間における前記特徴点の位置を示す3次元座標と前記特徴点座標と前記カメラポーズ情報とに対して、前記カメラポーズ情報と前記3次元座標の信頼度に応じて予め決められている加重値に基づく補正を行い、前記カメラポーズ情報と前記3次元座標の最適化を行う最適化処理手段、
として機能させるための3次元情報取得プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2012−103115(P2012−103115A)
【公開日】平成24年5月31日(2012.5.31)
【国際特許分類】
【出願番号】特願2010−252053(P2010−252053)
【出願日】平成22年11月10日(2010.11.10)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】