説明

画像処理装置、画像処理方法、プログラム、及び電子装置

【課題】簡易な構成で、より容易にカメラの位置や姿勢を推定する。
【解決手段】合成画像生成部103は、推定の基準となる基準画像を構成する画素の位置を、基準画像を構成する画素に対応する撮像画像上の画素の位置に射影する射影パラメータに基づいて、射影パラメータにより射影される撮像画像上の位置に存在する各画素により構成される合成画像を生成し、評価部104は、合成画像と基準画像との相関を表す評価関数を生成し、パラメータ更新部106は、評価関数に基づいて、射影パラメータを更新し、更新後の射影パラメータに基づいて、撮像部の位置又は姿勢の少なくとも一方を推定する。本発明は、例えば、カメラの位置や姿勢を推定し、その推定結果に基づく処理を行なうコンピュータ等に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、プログラム、及び電子装置に関し、特に、例えば、カメラの撮像により得られる撮像画像に基づいて、カメラの位置や姿勢を推定する場合に用いて好適な画像処理装置、画像処理方法、プログラム、及び電子装置に関する。
【背景技術】
【0002】
カメラの撮像により得られる撮像画像に基づいて、カメラの位置や姿勢を推定するキャリブレーションを行なう推定方法として、例えば、以下の第1及び第2の推定方法が存在する。
【0003】
第1の推定方法では、カメラが、特定の模様(例えば市松模様等)の壁紙等を撮像する。そして、予め用意された基準画像と撮像された撮像画像との、対応する画素どうしの差分自乗和を算出し、算出した差分自乗和を、カメラの位置や姿勢を推定するための評価関数として用いて、カメラの位置や姿勢を推定する(例えば、特許文献1を参照)。
【0004】
なお、基準画像とは、位置や姿勢が既知であるカメラにより、特定の模様の壁紙等を撮像したときに得られる画像を表す。
【0005】
また、第2の推定方法では、例えば、8ビットの画素値を有する画素により構成される8ビット画像から、8ビットのビット列を構成する各ビットのうち、異なる8つの位置に存在するビットをそれぞれ画素値とする8枚の1ビット画像を生成する。
【0006】
そして、8枚の1ビット画像を、順次、LCD(Liquid Crystal Display)に表示させるようにして、LCDに表示される8枚の1ビット画像を、カメラにより撮像して得られる撮像画像に基づいて、カメラの位置や姿勢を推定する(例えば、非特許文献1を参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2002−27507号公報
【非特許文献】
【0008】
【非特許文献1】中村泰敏,渡部斉:画像の差分による高精度ステレオカメラキャリブレーション,画像センシングシンポジウムSSII09,IS1-10,2009.
【発明の概要】
【発明が解決しようとする課題】
【0009】
しかしながら、上述した第1の推定方法では、評価関数を算出する際に、撮像画像と基準画像との間に生じる画素値(輝度値)のレベル差による悪影響を軽減するために、特定の模様の壁紙等を対象として撮像を行なうとともに、基準画像及び撮像画像それぞれを構成する各画素の画素値を、所定の値で正規化(除算)して2値化する必要があった。
【0010】
また、上述した第2の推定方法では、LCDが表示可能な総画素数に応じて、LCDに表示させる1ビット画像の画素数に制限が加わってしまう。さらに、第2の推定方法では、LCDに表示される8枚の1ビット画像を撮像するために、カメラにより、少なくとも8回の撮像を行なわなければならなかった。
【0011】
また、第2の推定方法では、キャリブレーションにおいて、LCDを使用するため、例えば、LCDを使用せずにキャリブレーションを行なう場合と比較して、大掛かりな構成となっていた。
【0012】
本発明は、このような状況に鑑みてなされたものであり、簡易な構成で、より容易にカメラの位置や姿勢を推定できるようにするものである。
【課題を解決するための手段】
【0013】
本発明の第1の側面の画像処理装置は、撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置であって、推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段とを含む画像処理装置である。
【0014】
前記評価生成手段では、2次多項式により表される前記評価関数を生成し、前記更新手段では、前記評価関数を用いた最急降下法により算出した射影パラメータを新たな射影パラメータとして更新するようにすることができる。
【0015】
前記評価生成手段では、更新後の前記射影パラメータの候補を表す候補射影パラメータを変数として有する前記評価関数を生成し、前記更新手段では、前記評価関数が最小となるときの前記候補射影パラメータを新たな射影パラメータとして更新するようにすることができる。
【0016】
前記基準画像を構成する各画素の位置と、対応する前記撮像画像上の位置に基づいて、前記射影パラメータを生成する初期パラメータ生成手段をさらに設けることができ、前記合成画像生成手段では、前記初期パラメータ生成手段により前記射影パラメータが生成されたことに対応して、前記射影パラメータに基づいて、前記合成画像を生成し、前記更新手段により前記射影パラメータが更新されたことに対応して、更新後の前記射影パラメータに基づいて、前記合成画像を生成するようにすることができる。
【0017】
前記基準画像は、前記撮像部とは異なる、位置及び姿勢が既知である他の撮像部の撮像により得られたものであり、前記推定手段では、前記他の撮像部に対する前記撮像部の位置及び姿勢の違いを表す前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定するようにすることができる。
【0018】
本発明の第1の側面の画像処理方法は、撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置の画像処理方法であって、前記画像処理装置は、合成画像生成手段と、評価生成手段と、更新手段と、推定手段とを含み、前記画像合成手段が、推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成し、前記評価生成手段が、前記合成画像と前記基準画像との相関を表す評価関数を生成し、前記更新手段が、前記評価関数に基づいて、前記射影パラメータを更新し、前記推定手段が、更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定するステップを含む画像処理方法である。
【0019】
本発明の第1の側面のプログラムは、撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置のコンピュータを、推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段として機能させるためのプログラムである。
【0020】
本発明の第1の側面によれば、推定の基準となる基準画像を構成する画素の位置を、基準画像を構成する画素に対応する撮像画像上の画素の位置に射影する射影パラメータに基づいて、射影パラメータにより射影される撮像画像上の位置に存在する各画素により構成される合成画像が生成され、合成画像と基準画像との相関を表す評価関数が生成され、評価関数に基づいて、射影パラメータが更新され、更新後の射影パラメータに基づいて、撮像部の位置又は姿勢の少なくとも一方が推定される。
【0021】
本発明の第2の側面の電子装置は、撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する電子装置であって、推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段と、前記推定手段により推定された推定結果に基づいて、所定の処理を実行する実行手段とを含む電子装置である。
【0022】
本発明の第2の側面によれば、推定の基準となる基準画像を構成する画素の位置を、基準画像を構成する画素に対応する撮像画像上の画素の位置に射影する射影パラメータに基づいて、射影パラメータにより射影される撮像画像上の位置に存在する各画素により構成される合成画像が生成され、合成画像と基準画像との相関を表す評価関数が生成され、評価関数に基づいて、射影パラメータが更新され、更新後の射影パラメータに基づいて、撮像部の位置又は姿勢の少なくとも一方が推定され、その推定結果に基づいて、所定の処理が実行される。
【発明の効果】
【0023】
本発明によれば、簡易な構成で、より容易にカメラの位置や姿勢を推定することが可能となる。
【図面の簡単な説明】
【0024】
【図1】本発明の概要を説明するための第1の図である。
【図2】本発明の概要を説明するための第2の図である。
【図3】本実施の形態である画像処理装置の構成例を示すブロック図である。
【図4】画像処理装置が行なうパラメータ更新処理を説明するためのフローチャートである。
【図5】合成画像生成部が行なう第1の初期行列算出処理を説明するためのフローチャートである。
【図6】合成画像生成部が行なう第2の初期行列算出処理を説明するためのフローチャートである。
【図7】合成画像生成部が行なう合成画像生成処理を説明するためのフローチャートである。
【図8】第1及び第2の初期行列算出処理により得られる射影行列P0による推定結果の一例を示す図である。
【図9】ノイズに応じて変化する推定結果の一例を示す第1の図である。
【図10】ピッチ角に応じて変化する推定結果の一例を示す第1の図である。
【図11】ヨー角に応じて変化する推定結果の一例を示す第1の図である。
【図12】ロール角に応じて変化する推定結果の一例を示す第1の図である。
【図13】撮像画像内の部分領域に応じて変化する推定結果の一例を示す第1の図である。
【図14】領域マッチング処理を説明するための第1の図である。
【図15】領域マッチング処理を説明するための第2の図である。
【図16】ノイズに応じて変化する推定結果の一例を示す第2の図である。
【図17】ピッチ角に応じて変化する推定結果の一例を示す第2の図である。
【図18】ヨー角に応じて変化する推定結果の一例を示す第2の図である。
【図19】ロール角に応じて変化する推定結果の一例を示す第2の図である。
【図20】撮像画像内の部分領域に応じて変化する推定結果の一例を示す第2の図である。
【図21】コンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【0025】
以下、発明を実施するための形態(以下、本実施の形態という)について説明する。なお、説明は以下の順序で行う。
本実施の形態(合成画像と基準画像との相互相関に基づいて射影行列を更新する場合の一例)
変形例
【0026】
[本発明の概要]
図1は、本発明の概要を示している。
【0027】
図1Aには、3次元位置(x,y,z)が既知である3次元物体が示されている。なお、図1Aにおいて、3次元物体は、X軸、Y軸、及びZ軸により定義されるXYZ座標軸上に配置されている。
【0028】
図1B上側には、カメラ21により、3次元物体を撮像した場合に得られる基準画像41を示している。なお、カメラ21の3次元位置(x,y,z)及び姿勢は既知であるものとする。
【0029】
ここで、カメラ21の姿勢は、例えば、カメラ21の回転角度(θrpy)により表される。なお、回転角度(θrpy)とは、カメラ21の中心を原点とし、その原点において互いに直交するロール軸、ピッチ軸、及びヨー軸を定義した場合、カメラ21の撮像方向に対して、ロール軸との成す角度を表すロール角θr、ピッチ軸との成す角度を表すピッチ角θp、及びヨー軸との成す角度を表すヨー角θyを表す。このことは、カメラ22についても同様である。
【0030】
また、図1B下側には、カメラ22により、3次元物体を撮像した場合に得られる撮像画像42を示している。なお、カメラ22の3次元位置(x,y,z)及び姿勢は未知であるものとする。
【0031】
本発明では、カメラ21の撮像により得られる基準画像41、及びカメラ22の撮像により得られる撮像画像42に基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を推定する。
【0032】
すなわち、例えば、本発明では、カメラ21の撮像により得られる基準画像41、及びカメラ22の撮像により得られる撮像画像42に基づいて、撮像画像42に生じている、基準画像41との位置ずれを補正するための補正パラメータとして、例えば、射影行列P0を算出する。
【0033】
そして、本発明では、算出した射影行列P0に基づき生成される評価関数に対して、Levenberg-Marquardt法等の最急降下法を適用して射影行列P1を算出する。さらに、本発明では、算出した射影行列P1に基づき生成される評価関数に対して、最急降下法を適用して射影行列P2を算出する。
【0034】
このようにして、本発明では、射影行列Piに基づいて新たな射影行列Pi+1を算出するようにして、射影行列Piを新たな射影行列Pi+1に更新する。そして、最終的に得られる射影行列Piに基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を推定する。なお、射影行列Piは、i+1番目(iは自然数を示す)に算出された射影行列を表す。
【0035】
次に、図2は、最急降下法を用いて、射影行列Piを更新する様子の一例を示している。
【0036】
本発明では、図2に示されるように、カメラ22の撮像により得られる撮像画像42内の部分領域42a(基準画像41上に存在する3次元物体(被写体)と同一の3次元物体が存在する領域)に生じている位置ずれを、基準画像41の位置に補正するための射影行列P0を算出する。そして、本発明では、算出した射影行列P0に基づいて、撮像画像42内の部分領域42aに生じている位置ずれを、基準画像41の位置に補正して合成画像61を生成する。
【0037】
さらに、本発明では、射影行列P0に基づいて生成された合成画像61と、基準画像41との相関の程度を表す評価関数を算出する。
【0038】
そして、本発明は、算出した評価関数に対して、最急降下法を適用して、評価関数が最小となるときの射影行列P1を算出する。これにより、射影行列P0は、撮像画像42に生じている位置ずれを、基準画像41の位置に補正する精度がより高い射影行列P1に更新される。
【0039】
また、本発明は、射影行列P1に基づいて、新たに合成画像61を生成し、生成した合成画像61と基準画像41との相関の程度を表す評価関数を算出する。そして、算出した評価関数に対して、最急降下法を適用して、評価関数が最小となるときの射影行列P2を算出して、射影行列P1を新たな射影行列P2に更新する。それ以降、同様にして、射影行列Piを、最急降下法を用いて更新する。
【0040】
本発明では、例えば、更新により得られる射影行列Piが収束した場合、すなわち、射影行列Pi-1と殆ど変わらない射影行列Piが更新により得られた場合、射影行列Piに基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を推定する。
【0041】
なお、射影行列Piは、上述のように、撮像画像42内の部分領域42aに生じている、基準画像41との位置ずれを補正するためのものである。したがって、射影行列Piは、撮像画像42内の部分領域42aと基準画像41との間に生じている位置ずれを表している。
【0042】
また、撮像画像42内の部分領域42aと基準画像41との間に生じる位置ずれは、カメラ22の3次元位置(x,y,z)、及びカメラ22の姿勢を表す回転角度(θrpy)に応じて変化する。
【0043】
すなわち、射影行列Piは、カメラ22の3次元位置(x,y,z)及び回転角度(θrpy)に応じて変化するものであり、カメラ21とカメラ22との3次元位置(x,y,z)及び回転角度(θrpy)の違いを表すものである。
【0044】
このため、本発明では、カメラ22の3次元位置(x,y,z)及び回転角度(θrpy)に応じて変化する射影行列Piに基づいて、カメラ22の3次元位置(x,y,z)、及び回転角度(θrpy)により表される姿勢を推定できる。
【0045】
[画像処理装置81の構成例]
図3は、本実施の形態である画像処理装置81の構成例を示している。
【0046】
この画像処理装置81は、3次元情報保持部101、基準画像保持部102、合成画像生成部103、評価部104、最適化演算部105、及びパラメータ更新部106により構成される。
【0047】
3次元情報保持部101は、基準画像41上に存在する3次元物体の3次元位置(x,y,z)Tを、予め保持している。なお、説明の便宜のため、3次元位置(x,y,z)を行列により表すようにしている。すなわち、Tは転置を表しており、したがって、3次元位置(x,y,z)Tは、3行1列の行列を表す。
【0048】
具体的には、例えば、3次元情報保持部101は、基準画像41を構成する画素毎に、その画素に表示される3次元物体の3次元位置(x,y,z)Tが対応付けられて保持されている。
【0049】
なお、基準画像41を構成する画素の2次元位置(x,y)は、基準画像41を構成する各画素のうち、最も左下に存在する画素の位置を原点(0,0)とし、撮像画像42の水平方向にX軸を、垂直方向にY軸を定義したXY座標により表される。
【0050】
すなわち、本実施の形態では、基準画像41を構成する画素の2次元位置(x,y)を表すXY座標と、3次元物体の3次元位置(x,y,z)のうちの(x,y)を表すXY座標とは一致しているものとする。
【0051】
3次元情報保持部101は、基準画像41を構成する各画素の2次元位置(xj,yj)を特徴点mjとして、特徴点mj毎に、特徴点mjの特徴を表す特徴量を予め保持している。なお、特徴点mj毎の特徴量は、基準画像41に基づいて予め生成される。
【0052】
なお、本実施の形態では、説明を簡単にするため、基準画像41を構成する各画素の2次元位置(xj,yj)を特徴点mjとすることとしているが、特徴点mjとして採用される位置はこれに限定されない。
【0053】
すなわち、例えば、特徴点mjは、基準画像41を構成する各画素において、横方向及び縦方向にそれぞれ所定の画素(例えば、5画素や25画素)だけ離れて存在する画素それぞれが存在する2次元位置(xj,yj)のみを特徴点mjとして採用するようにしてもよい。
【0054】
基準画像保持部102は、カメラ21により、3次元物体を撮像して得られた基準画像41が予め保持されている。
【0055】
合成画像生成部103には、カメラ22から撮像画像42が供給される。合成画像生成部103は、射影行列Piに基づいて、カメラ22からの撮像画像42における、基準画像41との位置ずれを補正することにより、撮像画像42から合成画像61を生成する。
【0056】
すなわち、例えば、合成画像生成部103は、3次元情報保持部101から、3次元情報保持部101に保持されている基準画像41上の特徴点mj、及び特徴点mj毎の特徴量を読み出す。
【0057】
そして、合成画像生成部103は、読み出した特徴点mj毎の特徴量に基づいて、カメラ22からの撮像画像42から、特徴点mjに対応する撮像画像42上の特徴点nj(撮像画像42を構成する画素の位置(uj,vj))を抽出する。
【0058】
なお、撮像画像42を構成する画素の位置(u,v)は、撮像画像42を構成する各画素のうち、最も左下に存在する画素の位置を原点(0,0)とし、撮像画像42の水平方向にU軸を、垂直方向にV軸を定義したUV座標により表される。
【0059】
合成画像生成部103は、読み出した基準画像41上の特徴点mjと、対応する撮像画像42上の特徴点njとにおいて、特徴点mjに対応する3次元位置(xj,yj,zjTと特徴点njとしての2次元位置(uj,vjTを用いて、最小自乗法等により、3次元位置(xj,yj,zjTを2次元位置(uj,vjTに変換(射影)するための射影行列P0を算出する。
【0060】
合成画像生成部103は、算出した射影行列P0に基づいて、読み出した特徴点njに対応する3次元位置(xj,yj,zjTを、撮像画像42上の2次元位置(uj,vjTに変換する。
【0061】
合成画像生成部103は、カメラ22からの撮像画像42を構成する各画素のうち、変換により得られた2次元位置(uj,vjTに存在する画素を抽出し、抽出した画素により構成される合成画像61を生成する。そして、合成画像生成部103は、生成した合成画像61及び射影行列P0を、評価部104に供給する。
【0062】
また、合成画像生成部103は、3次元情報保持部101に予め保持されている、基準画像41を構成する各画素に対応付けられている3次元位置(x,y,z)Tを読み出す。さらに、合成画像生成部103は、パラメータ更新部106からの射影行列Pi(≠P0)に基づいて、読み出した3次元位置(x,y,z)Tを、撮像画像42上の2次元位置(u,v)Tに変換する。
【0063】
合成画像生成部103は、カメラ22からの撮像画像42を構成する各画素のうち、変換により得られた2次元位置(uj,vjTに存在する画素を抽出し、抽出した画素により構成される合成画像61を生成する。そして、合成画像生成部103は、生成した合成画像61、及びパラメータ更新部106からの射影行列Piを、評価部104に供給する。
【0064】
評価部104は、基準画像保持部102に保持されている基準画像41を、基準画像保持部102から読み出す。
【0065】
評価部104は、読み出した基準画像41、並びに合成画像生成部103からの合成画像61及び射影行列Piに基づいて、次式(1)に示されるように、基準画像41と合成画像61との相関を表す評価関数f(xn)を算出する。
【0066】
【数1】

・・・(1)
【0067】
ここで、式(1)において、画素値ai及びajは、基準画像41を構成する各画素の画素値を表し、画素値bi及びbkは、合成画像61を構成する各画素の画素値を表す。また、i,j,kは、それぞれ、1から基準画像41(又は合成画像61)を構成する各画素の総数までの値をとる。なお、基準画像41と合成画像61は、同一の画素数により構成されている。
【0068】
また、式(1)において、候補行列xnは、新たな射影行列Pi+1の候補を表しており、xn=Pi+dnである。なお、dnは射影行列Piと同一の行と列により表される行列であり、それぞれ異なる行列を表す。
【0069】
ところで、基準画像41を構成する各画素の画素値ai及びakは定数であり、合成画像61を構成する各画素の画素値bi及びbkは、候補行列xnに応じて変化する変数である。したがって、評価関数f(xn)は、画素値bi及びbkを変数として有する関数となる。
【0070】
評価部104は、算出した評価関数f(xn)を最適化演算部105に供給する。
【0071】
最適化演算部105は、評価部104からの評価関数f(xn)に対して、最急降下法を適用して、評価関数f(xn)が最小となるときの候補行列xn(=Pi+dn)を、新たな射影行列Pi+1として算出し、パラメータ更新部106に供給する。
【0072】
パラメータ更新部106は、最適化演算部105からの射影行列Pi+1を、合成画像生成部103に供給する。この場合、合成画像生成部103は、パラメータ更新部106からの射影行列Pi+1に基づいて、合成画像61を生成する。
【0073】
また、パラメータ更新部106は、例えば、最適化演算部105からの射影行列Pi+1が収束したと判定した場合、最適化演算部105からの射影行列Pi+1に基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を表す回転角度(θrpy)を推定し、後段に出力する。
【0074】
ところで、最適化演算部105において行われる最急降下法によれば、評価関数f(xn)が2次多項式により表されている場合、2次多項式により表されていない場合と比較して、容易に解を算出することができる。
【0075】
したがって、評価関数f(xn)は2次多項式により表されていることが望ましい。そこで、式(1)に示された評価関数f(xn)を2次多項式により表すことを考える。
【0076】
まず、式(1)の右辺を2乗して逆数をとり、次式(2)に示されるような評価関数に変更する。
【0077】
【数2】

・・・(2)
【0078】
式(2)において、Σaj2は定数であり、候補行列xnによって変化する値ではないため、候補行列xnに応じて変化する評価関数f(xn)から、Σaj2を除外し、式(3)を導出する。
【0079】
【数3】

・・・(3)
【0080】
式(3)において、変数kについてのΣ(サメーション)を外部に移動させて、式(4)に変換する。
【0081】
【数4】

・・・(4)
【0082】
ここで、式(4)に示される評価関数f(xn)は、変数bi及びbkについての2次多項式となっている。
【0083】
したがって、式(4)に示される評価関数f(xn)に対して、最急降下法を適用する場合には、評価関数f(xn)が2次多項式により表されていない場合と比較して、最急降下法の解としての射影行列Pi+1を容易に算出できるので、より迅速に射影行列Pi+1を算出することが可能となる。
【0084】
なお、式(4)において、f(Bk)は(bk/Σaibi)を表している。
【0085】
以下、評価部104は、式(1)に示される評価関数f(xn)ではなく、式(4)に示された評価関数f(xn)を算出して、最適化演算部105に供給し、最適化演算部105は、評価部104からの、式(4)に示された評価関数f(xn)に基づいて、最急降下法により、新たな射影行列Pi+1を算出して、合成画像生成部103に供給するものとして説明する。
【0086】
[画像処理装置81の動作説明]
次に、図4のフローチャートを参照して、画像処理装置81が行うパラメータ更新処理について説明する。
【0087】
このパラメータ更新処理は、例えば、カメラ22から画像処理装置81の合成画像生成部103に撮像画像42が供給されたときに開始される。
【0088】
ステップS1において、合成画像生成部103は、3次元画像保持部101に記憶されている基準画像41上の特徴点mj、及びカメラ22からの撮像画像42上の特徴点njに基づいて、射影行列Pi(=P0)を算出する初期行列算出処理を行う。なお、初期行列算出処理については、図5及び図6を参照して後述する。
【0089】
ステップS2において、合成画像生成部103は、3次元情報保持部101に予め保持されている、基準画像41を構成する各画素に対応付けられている3次元位置(x,y,z)T、及びステップS1の処理で算出された射影行列Piに基づいて、撮像画像42から合成画像61を生成する合成画像生成処理を行なう。なお、合成画像生成処理の詳細は、図7を参照して後述する。
【0090】
合成画像生成部103は、合成画像生成処理で生成した合成画像61を、評価部104に供給する。
【0091】
ステップS3において、評価部104は、基準画像保持部102に予め保持されている基準画像41を、基準画像保持部102から読み出す。そして、評価部104は、読み出した基準画像41、並びに合成画像生成部103からの合成画像61及び射影行列Piに基づいて、式(4)に示されたような評価関数f(xn)を算出し、最適化演算部105に供給する。
【0092】
ステップS4において、最適化演算部105は、評価部105からの評価関数f(xn)に基づいて、最急降下法を適用し、評価関数f(xn)が最小となるときの候補行列xnを新たな射影行列Pi+1として算出し、パラメータ更新部106に供給する。
【0093】
ステップS5において、パラメータ更新部106は、最適化演算部105からの射影行列Pi+1を、合成画像生成部103に供給して、処理をステップS2に戻す。
【0094】
そして、ステップS2では、合成画像生成部103は、3次元情報保持部101に予め保持されている、基準画像41を構成する各画素に対応付けられている3次元位置(x,y,z)T、及び直前のステップS5の処理で更新された新たな射影行列Pi+1に基づいて、撮像画像42から合成画像61を生成する合成画像生成処理を行ない、それ以降、同様の処理が行なわれる。
【0095】
なお、ステップS5において、パラメータ更新部106は、例えば、最適化演算部105からの射影行列Pi+1が収束したと判定した場合、最適化演算部105からの射影行列Pi+1に基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を推定し、後段に出力して、パラメータ更新処理は終了される。
【0096】
[初期行列算出処理の詳細]
次に、図5のフローチャートを参照して、パラメータ更新処理のステップS1において、合成画像生成部103が行なう初期行列算出処理としての第1の初期行列算出処理について説明する。
【0097】
ステップS21において、合成画像生成部103は、3次元情報保持部101から、基準画像41上の特徴点mj及び特徴点mjの特徴量を読み出す。なお、変数jは、1からJまでの自然数を表す。
【0098】
ステップS22において、合成画像生成部103は、読み出した特徴点mj(=(xj,yj)T)の特徴量と同様の特徴量を有する特徴点として、カメラ22から供給される撮像画像42上の特徴点nj(=(uj,vj)T)を抽出する。
【0099】
これにより、合成画像生成部103は、基準画像41上の特徴点mjと、特徴点mjに対応する、撮像画像42上の特徴点njとのJ個の組合せ(mj,nj)を、組合せ対応点(mj,nj)として取得する。
【0100】
ステップS23において、合成画像生成部103は、J個の組合せ対応点(mj,nj)から、それぞれ異なるQ(<J)個の組合せ対応点(mj,nj)を抽出し、抽出したQ個の組合せ対応点(mj,nj)により構成される集合Ukを生成する。
【0101】
すなわち、合成画像生成部103は、J個の組合せ対応点(mj,nj)の中から、JCQ通りの組合せにより、Q個の組合せ対応点(mj,nj)を抽出し、抽出したQ個の組合せ対応点(mj,nj)それぞれの集合を、JCQ個の集合Ukとして生成する。なお、kは1からJCQまでの自然数の値をとる。
【0102】
ステップS24において、合成画像生成部103は、生成した集合Uk毎に、集合Ukを構成するQ個の組合せ対応点(mj,nj)に基づいて得られる射影行列Pkを算出する。
【0103】
具体的には、例えば、合成画像生成部103は、集合Ukを構成するQ個の組合せ対応点(mj,nj)において、特徴点mjに対応する3次元位置(xj,yj,zjTと、特徴点njとしての2次元位置(uj,vjTとを用いて、最小自乗法等により、誤差Err1=Σj=1J{(uj,vjT-Pk(xj,yj,zj)T}が最小となるような射影行列Pkを算出する。
【0104】
ステップS25において、合成画像生成部103は、算出した複数の射影行列Pkのうち、算出した誤差Err1=Σj=1J{(uj,vjT-Pk(xj,yj,zj)T}が最小となるときの射影行列Pkを、射影行列Pminとする。
【0105】
ステップS26において、合成画像生成部103は、J個の組合せ対応点(mj,nj)において、特徴点mjに対応する3次元位置(xj,yj,zjTと、特徴点njとしての2次元位置(uj,vjTとを用いて、誤差Enj=1J(uj,vjT-Pn(xj,yj,zj)Tj=1J(uj,vjT-(Pmin+dn)(xj,yj,zj)Tを算出する。
【0106】
そして、合成画像生成部103は、算出した値Enに基づいて、関数g(En)=αEn2/(1+αEn2)を算出する。なお、αは定数であり、例えば、0以上であって1以下の値とされる。
【0107】
ステップS27において、合成画像生成部103は、最急降下法により、関数g(En)を最小化するときのEnを算出し、算出したEnに対応するPn=(Pmin+dn)を、射影行列P0とする。そして、ステップS27の処理の終了後、処理を図4のステップS1にリターンさせ、処理をステップS2に進め、それ以降の処理が行なわれる。
【0108】
なお、合成画像生成部103は、上述した第1の初期行列算出処理により射影行列P0を算出するようにしたが、図6のフローチャートに示される第2の初期行列算出処理により、射影行列P0を算出するようにしてもよい。
【0109】
[第2の初期行列算出処理の詳細]
次に、図6のフローチャートを参照して、パラメータ更新処理のステップS1において、合成画像生成部103が行う初期行列算出処理として行なう第2の初期行列算出処理について説明する。
【0110】
ステップS41乃至ステップS45において、図5のステップS21乃至ステップS25と同様の処理が行なわれる。
【0111】
ステップS46において、合成画像生成部103は、J個の組合せ対応点(mj,nj)毎に、特徴点mjに対応する3次元位置(xj,yj,zjT、及び特徴点njとしての2次元位置(uj,vjTに基づいて、誤差Err2=(uj,vjT-Pmin(xj,yj,zj)Tを算出する。そして、合成画像生成部103は、J個の組合せ対応点(mj,nj)のうち、対応する誤差Err2が予め決めた閾値未満となる組合せ対応点(mj,nj)を選択する。
【0112】
ステップS47において、合成画像生成部103は、選択した組合せ対応点(mj,nj)において、特徴点mjに対応する3次元位置(xj,yj,zjTと、特徴点njとしての2次元位置(uj,vjTとを用いて、最小自乗法等により、(uj,vjT-P0(xj,yj,zjTが最小となるときの射影行列P0を算出し、処理を図4のステップS1にリターンさせ、処理をステップS2に進め、それ以降の処理が行なわれる。
【0113】
[合成画像生成処理の詳細]
次に、図7のフローチャートを参照して、パラメータ更新処理のステップS2において、合成画像生成部103が行なう合成画像生成処理について説明する。
【0114】
ステップS61において、合成画像生成部103は、3次元情報保持部101から、基準画像41を構成する各画素に対応付けられている3次元位置(x,y,z)Tを読み出す。
【0115】
そして、ステップS62において、合成画像生成部103は、ステップS1の処理で射影行列P0が生成され、ステップS2に進められた場合には、生成した射影行列P0に基づいて、読み出した基準画像41上の3次元位置(x,y,z)Tを、撮像画像42上の2次元位置(u,v)Tに変換する。
【0116】
また、ステップS62において、合成画像生成部103は、パラメータ更新部106から新たな射影行列Pi+1が供給され、ステップS5からステップS2に進められた場合には、パラメータ更新部106からの新たな射影行列Pi+1に基づいて、3次元情報保持部101から読み出した3次元位置(x,y,z)Tを、撮像画像42上の2次元位置(u,v)Tに変換する。
【0117】
ステップS63において、合成画像生成部103は、カメラ22からの撮像画像42を構成する各画素のうち、ステップS62の処理で得られた撮像画像42上の2次元位置(u,v)Tに存在する画素を抽出する。
【0118】
そして、合成画像生成部103は、抽出した画素により構成される画像を、合成画像61として生成し、処理を図4のステップS2にリターンさせ、生成した合成画像61を、評価部104に供給して、それ以降の処理が行なわれる。
【0119】
以上説明したように、パラメータ更新処理によれば、ステップS3において、カメラ21とカメラ22との性能の違いや、撮像条件の違いに応じて、撮像画像42(合成画像61)と基準画像41との画素値に生じるレベル差による影響を受けにくい評価関数として、合成画像61と基準画像41との相関を表す評価関数P(xn)を算出するようにしている。
【0120】
したがって、例えば、パラメータ更新処理では、合成画像61と基準画像41との、対応する各画素の画素値についての差分自乗和Σ(ai-bi2を評価関数P(xn)として用いる場合のように、特定の模様(パターン)が表示された壁紙等を被写体として撮像したり、合成画像61と基準画像41とを正規化して2値化画像に変換する必要がなくなる。
【0121】
すなわち、パラメータ更新処理によれば、カメラ21及び22で撮像する被写体は、特定の模様が表示された壁紙等に限定されず、どのような物体を被写体として撮像するようにしてもよいし、合成画像61及び基準画像41は、2値化画像とされる必要がなく、グレースケールの他、RGB(Red,Green,Blue)値により表される画像として用いることが可能となる。
【0122】
また、パラメータ更新処理では、式(4)に示されるように、2次多項式により表される評価関数P(xn)を用いるようにしたので、評価関数P(xn)が2次多項式ではない場合と比較して、より迅速に、最急降下法の解としての新たな射影行列Pi+1を算出することが可能となる。
【0123】
さらに、例えば、パラメータ更新処理では、式(4)に示されたように、2次多項式により表される評価関数P(xn)を用いるようにしたので、式(4)の評価関数P(xn)において、評価関数P(xn)の計算速度を速めるために、評価関数P(xn)に用いられる画素値ai,aj,bi及びbkを少なくしたとしても、比較的、精度の高い射影行列Pi+1を算出することが可能となる。
【0124】
なお、評価関数P(xn)に用いられる画素値ai,aj,bi及びbkを少なくしたとしても、比較的、精度の高い射影行列Pi+1を算出できる点は、本出願人が行なった実験により確認されている。本出願人が行なった実験と、その実験により確認された事項については、後述する図16乃至図20を参照して説明する。
【0125】
また、例えば、パラメータ更新処理において、撮像画像61にノイズが生じていたとしても、式(4)に示されたような評価関数(xn)を用いるときには、例えば、自乗和Σ(ai-bi2を評価関数P(xn)として用いるときと比較して、より精度の高い射影行列Pi+1を算出することができる。
【0126】
なお、撮像画像42にノイズが生じていたとしても、比較的、精度の高い射影行列Pi+1が算出可能な点については、後述する図16を参照して説明する。
【0127】
[第1及び第2の初期行列算出処理により得られる射影行列P0による推定結果]
次に、図8は、121個の組合せ対応点(mj,nj)を、それぞれ異なる15パターンだけ用意し、用意した15パターンそれぞれに基づいて、第1及び第2の初期行列算出処理を行った場合に得られる射影行列P0から推定される推定結果を示している。
【0128】
図8A及び図8Bにおいて、黒色で示される棒グラフは、それぞれ異なる15パターンの、121個の組合せ対応点(mj,nj)に基づいて、第1の初期行列算出処理を行った場合に得られる射影行列P0に基づく推定結果の誤差についての平均を示している。
【0129】
また、図8A及び図8Bにおいて、白色で示される棒グラフは、それぞれ異なる15パターンの、121個の組合せ対応点(mj,nj)に基づいて、第2の初期行列算出処理を行った場合に得られる射影行列P0に基づく推定結果の誤差についての平均を示している。
【0130】
具体的には、図8A中央では、撮像画像42に対するノイズが0である場合(撮像画像42に対してノイズが生じていない場合)における3次元位置の平均誤差として、白色で示される棒グラフが誤差0.00011633を表しており、黒色で示される棒グラフが誤差0.000145667を表している。
【0131】
なお、3次元位置の平均誤差とは、それぞれ異なる15パターンについて得られる推定結果として推定されたカメラ22の3次元位置(x,y,z)と、実際の3次元位置(x',y',z')との誤差|x-x'|+|y-y'|+|z-z'|の平均を表している。
【0132】
また、図8A右側では、撮像画像42に対するノイズが0である場合における回転角度の平均誤差として、白色で示される棒グラフが誤差0.000123333を表しており、黒色で示される棒グラフが誤差0.000142667を表している。
【0133】
なお、回転角度の平均誤差とは、それぞれ異なる15パターンについて得られる推定結果として推定されたカメラ22の姿勢を表す回転角度(θrpy)と、実際の回転角度(θr',θp',θy')との誤差|θrr'|+|θpp'|+|θyy'|の平均を表している。
【0134】
また、図8A左側では、撮像画像42に対するノイズが0である場合において、パラメータ更新処理により、射影行列P0に基づいて、新たに生成した射影行列P1から推定される3次元位置及び回転角度それぞれの平均誤差を加算した平均誤差加算値を表している。図8A左側において、射影行列P1に基づく平均誤差加算値として、白色及び黒色で示されるいずれの棒グラフについても、平均誤差加算値0を表している。
【0135】
さらに、図8B中央では、撮像画像42に対するノイズが3.0である場合(本来、得られるノイズのない撮像画像42の各画素の画素値に画素値3を加算した場合)における3次元位置の平均誤差として、白色で示される棒グラフが誤差1.58628を表しており、黒色で示される棒グラフが誤差1.067658667を表している。
【0136】
また、図8B右側では、撮像画像42に対するノイズが3.0である場合における回転角度の平均誤差として、白色で示される棒グラフが誤差6.623128333を表しており、黒色で示される棒グラフが誤差1.421813333を表している。
【0137】
なお、図8B左側では、撮像画像42に対するノイズが3.0である場合において、パラメータ更新処理により、射影行列P0に基づいて、新たに生成した射影行列P1から推定される3次元位置及び回転角度それぞれの平均誤差を加算した平均誤差加算値を表している。図8B左側において、射影行列P1に基づく平均誤差加算値として、白色で示される棒グラフが平均誤差加算値0.032973を表しており、黒色で示される棒グラフが平均誤差加算値0.333367333を表している。
【0138】
図8A中央及び右側、並びに図8B中央及び右側に示されるように、撮像画像42にノイズが生じていない(ノイズが0である)場合には、第1及び第2の初期行列算出処理により生成された射影行列P0について、推定結果の誤差に大きな差はない。
【0139】
しかしながら、図8A中央及び右側、並びに図8B中央及び右側に示されるように、撮像画像42にノイズが生じている(ノイズが3.0である)場合には、第1の初期行列算出処理により生成された射影行列P0についての推定結果の方が、第2の初期行列算出処理により生成された射影行列P0についての推定結果と比較して、推定結果の誤差は非常に小さくなる。
【0140】
次に、図9乃至図13を参照して、第1の初期行列算出処理を用いて算出した射影行列P0に基づいて推定されるカメラ22の3次元位置(x,y,z)及び回転角度(θrpy)、並びに第2の初期行列算出処理を用いて算出した射影行列P0に基づいて推定される3次元位置(x,y,z)及び回転角度(θrpy)について説明する。
【0141】
[撮像画像42上に生じるノイズに応じて変化する推定結果の様子]
図9は、撮像画像42を構成する各画素に生じるノイズに応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。
【0142】
なお、図9A及び図9Bの横軸は、各画素に生じるノイズとして加算される画素値を表す。
【0143】
また、図9Aにおける縦軸は、推定された3次元位置(x,y,z)と、実際の3次元位置(x',y',z')との誤差|x-x'|+|y-y'|+|z-z'|を表している。このことは、図10A、図11A、図12A、及び図13Aにおける縦軸においても同様である。
【0144】
さらに、図9Bにおける縦軸は、推定された回転角度(θrpy)と、実際の回転角度(θr',θp',θy')との誤差|θrr'|+|θpp'|+|θyy'|を表している。このことは、図10B、図11B、図12B、及び図13Bにおける縦軸においても同様である。
【0145】
また、図9において、グラフ121乃至123は、第2の初期行列算出処理を用いて算出した射影行列P0に基づいて推定された推定結果についてのグラフを表している。
【0146】
さらに、図9において、グラフ141乃至143は、第1の初期行列算出処理を用いて算出した射影行列P0に基づいて推定された推定結果についてのグラフを表している。
【0147】
なお、グラフ121及び141の組合せ,グラフ122及び142の組合せ,並びにグラフ123及び143の組合せにおいて、それぞれ異なる組合せ毎に、基準画像41上の特徴点mjとして異なる特徴点mjを採用した場合に得られるグラフの組合せを示している。
【0148】
グラフ121乃至123、及びグラフ141乃至143については、後述する図10乃至図13についても同様である。
【0149】
[カメラ22のピッチ角θpに応じて変化する推定結果の様子]
図10は、カメラ22のピッチ角θpの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図10A及び図10Bの横軸は、カメラ22のピッチ角θpを表しており、カメラ22のロール角θr及びヨー角θyは、カメラ21と同様に設定されている。
【0150】
[カメラ22のヨー角θyに応じて変化する推定結果の様子]
図11は、カメラ22のヨー角θyの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図11A及び図11Bの横軸は、カメラ22のヨー角θyを表しており、カメラ22のロール角θr及びピッチ角θpは、カメラ21と同様に設定されている。
【0151】
[カメラ22のロール角θrに応じて変化する推定結果の様子]
図12は、カメラ22のロール角θrの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図12A及び図12Bの横軸は、カメラ22のロール角θrを表しており、カメラ22のピッチ角θp及びヨー角θyは、カメラ21と同様に設定されている。
【0152】
[撮像画像42内の部分領域42aの面積に応じて変化する推定結果の様子]
図13は、撮像画像42内の部分領域42aの面積に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図13A及び図13Bの横軸は、撮像画像42上の全領域の面積を100とした場合における、部分領域42aの面積の割合を表す。
【0153】
第1の初期行列算出処理を用いて算出した射影行列P0から推定される3次元位置(x',y',z')及び回転角度(θr',θp',θy')の方が、図9乃至図13に示されるいずれの場合も、第2の初期行列算出処理を用いて算出した射影行列P0から推定された3次元位置(x',y',z')及び回転角度(θr',θp',θy')と比較して、より正確に推定されていることがわかる。
【0154】
次に、図14及び図15を参照して、領域マッチング処理により、基準画像41と合成画像61との組合せ対応点(mj,nj)を抽出し、抽出した組合せ対応点(mj,nj)に基づいて、射影行列P1を生成する場合について説明する。
【0155】
なお、図14及び図15を参照して説明する領域マッチング処理は、後述する図16乃至20において、本発明との対比のために用いられる。
【0156】
図14は、領域マッチング処理により組合せ対応点(mj,nj)を抽出する様子を示している。
【0157】
なお、合成画像61は、本発明におけるパラメータ更新処理の場合と同様にして、射影行列P0が算出され、算出された射影行列P0に基づいて生成されたものとして説明する。
【0158】
領域マッチング処理では、基準画像41上の特徴点mjを順次、注目特徴点とし、注目特徴点に存在する画素を含む、注目特徴点の周囲に存在する複数の画素により構成される矩形領域41aを設定する。また、領域マッチング処理では、合成画像61上の全領域のうち、矩形領域41aと最も類似する領域を検出し、検出した領域の中心に存在する画素が存在する位置を、特徴点mjに対応する合成画像61上の特徴点njとして抽出する。
【0159】
そして、領域マッチング処理は、基準画像41上の特徴点mjと、対応する合成画像61上の特徴点njとの組合せを表す組合せ対応点(mj,nj)に基づいて、最小自乗法等により射影行列P1を算出する。
【0160】
これにより、領域マッチング処理では、図15に示されるように、基準画像41上の特徴点mjに対応する3次元位置(x,y,z)を、対応する撮像画像42上の2次元位置(u,v)に変換するための射影行列P1が算出される。
【0161】
次に、図16乃至図20を参照して、領域マッチング処理により算出した射影行列P1に基づいて推定されるカメラ22の3次元位置(x,y,z)及び回転角度(θrpy)、並びにパラメータ更新処理により算出した射影行列P1に基づいて推定される3次元位置(x,y,z)及び回転角度(θrpy)について説明する。
【0162】
[撮像画像42上に生じるノイズに応じて変化する推定結果の様子]
図16は、撮像画像42を構成する各画素に生じるノイズに応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。
【0163】
なお、図16A及び図16Bの横軸は、各画素に生じるノイズとして加算される画素値を表す。
【0164】
また、図16Aにおける縦軸は、推定された3次元位置(x,y,z)と、実際の3次元位置(x',y',z')との誤差|x-x'|+|y-y'|+|z-z'|を表している。このことは、図17A、図18A、図19A、及び図20Aにおける縦軸においても同様である。
【0165】
さらに、図16Bにおける縦軸は、推定された回転角度(θrpy)と、実際の回転角度(θr',θp',θy')との誤差|θrr'|+|θpp'|+|θyy'|を表している。このことは、図17B、図18B、図19B、及び図20Bにおける縦軸においても同様である。
【0166】
また、図16において、グラフ161乃至163は、パラメータ更新処理により算出した射影行列P1に基づいて推定された推定結果についてのグラフを表している。
【0167】
さらに、図16において、グラフ181乃至183は、領域マッチング処理により算出した射影行列P1に基づいて推定された推定結果についてのグラフを表している。
【0168】
なお、グラフ161及び181は、基準画像41を構成する各画素のうち、縦方向及び横方向に1画素だけ離れて存在する画素それぞれの2次元位置(x,y)を、基準画像41の特徴点mjとした場合についてのグラフを示している。
【0169】
また、グラフ162及び182は、基準画像41を構成する各画素のうち、縦方向及び横方向に5画素だけ離れて存在する画素それぞれの2次元位置(x,y)を、基準画像41の特徴点mjとした場合についてのグラフを示している。
【0170】
さらに、グラフ163及び183は、基準画像41を構成する各画素のうち、縦方向及び横方向に25画素だけ離れて存在する画素それぞれの2次元位置(x,y)を、基準画像41の特徴点mjとした場合についてのグラフを示している。
【0171】
グラフ161乃至163、及びグラフ181乃至183については、後述する図17乃至図20についても同様である。
【0172】
[カメラ22のピッチ角θpに応じて変化する推定結果の様子]
図17は、カメラ22のピッチ角θpの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図17A及び図17Bの横軸は、カメラ22のピッチ角θpを表しており、カメラ22のロール角θr及びヨー角θyは、カメラ21と同様に設定されている。
【0173】
[カメラ22のヨー角θyに応じて変化する推定結果の様子]
図18は、カメラ22のヨー角θyの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図18A及び図18Bの横軸は、カメラ22のヨー角θyを表しており、カメラ22のロール角θr及びピッチ角θpは、カメラ21と同様に設定されている。
【0174】
[カメラ22のロール角θrに応じて変化する推定結果の様子]
図19は、カメラ22のロール角θrの変化に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図19A及び図19Bの横軸は、カメラ22のロール角θrを表しており、カメラ22のピッチ角θp及びヨー角θyは、カメラ21と同様に設定されている。
【0175】
[撮像画像42内の部分領域42aの面積に応じて変化する推定結果の様子]
図20は、撮像画像42内の部分領域42aの面積に応じて、推定される3次元位置(x,y,z)及び回転角度(θrpy)が変化する様子の一例を示している。なお、図20A及び図20Bの横軸は、撮像画像42上の全領域の面積を100とした場合における、部分領域42aの面積の割合を表す。
【0176】
パラメータ更新処理により算出した射影行列P1から推定される3次元位置(x',y',z')及び回転角度(θr',θp',θy')の方が、図16乃至図20に示されるいずれの場合も、領域マッチング処理により算出した射影行列P1から推定された3次元位置(x',y',z')及び回転角度(θr',θp',θy')と比較して、より正確に推定されていることがわかる。
【0177】
また、パラメータ更新処理により算出した射影行列P1から推定された3次元位置(x',y',z')及び回転角度(θr',θp',θy')においては、基準画像41の特徴点が、25画素おきに存在するようにしても、領域マッチング処理の場合と比較して、精度良く推定することができる。
【0178】
したがって、本発明におけるパラメータ更新処理によれば、パラメータ更新処理において、射影行列P1を生成する際に、評価関数f(xn)に用いられる基準画像41の特徴点が疎であったとしても、比較的精度良く、カメラ22の3次元位置(x',y',z')及び回転角度(θr',θp',θy')を推定することが可能となる。
<2.変形例>
本実施の形態では、3次元情報保持部101には、基準画像41を構成する各画素の3次元位置(x,y,z)Tを予め保持するようにしたが、例えば、3次元位置(x,y,z)Tに代えて、2次元位置(x,y)Tを保持するようにしてもよい。
【0179】
この場合、2次元位置(x,y)Tを、3次元位置(x,y,c)Tとして表すようにすれば、本実施の形態において説明した場合と同様にして、パラメータ更新処理を行うことができる。なお、3次元位置(x,y,c)Tにおけるcは定数を表しており、例えばc=0とされる。
【0180】
また、本実施の形態における画像処理装置81には、カメラ22が含まれないように構成したが、その他、例えば、カメラ22を含めるように構成してもよい。
【0181】
さらに、本実施の形態では、射影行列Piに基づいて、カメラ22の3次元位置(x,y,z)及び姿勢を推定するようにしたが、その他、例えば、カメラ22の3次元位置(x,y,z)又は姿勢のいずれか一方を推定するようにしてもよい。
【0182】
なお、画像処理装置81としては、例えば、カメラ22の位置や姿勢に基づいて、所定の処理を行なうカメラ付き携帯端末や、HMD(head mount display、ヘッドマウントディスプレイ)等の電子装置を採用することができる。すなわち、例えば、画像処理装置81としては、AR(Augmented Reality)技術を用いて、カメラ22により撮像されて図示せぬモニタ等に表示される撮像画像上に、カメラ22の位置や姿勢に応じた物体を表示させる処理等を行なう電子装置を採用できる。
【0183】
この電子装置は、カメラ22の撮像により得られる撮像画像上に存在する物体に関連した関連情報を、ネットワークに接続されたサーバから取得する。
【0184】
例えば、撮像画像上に存在する物体についての特徴点のパターンを表す各特徴点パターン(例えば、物体としての四角い紙が存在する場合、その紙の4つの角をそれぞれ表す4つの特徴点を、1つの特徴点パターンとする)毎に、対応する物体の関連情報を対応付けて保持するようにサーバを構成した場合、電子装置は、カメラ22の撮像により得られる撮像画像から、特徴点を抽出し、抽出した特徴点についての特徴点パターンに対応付けられている関連情報をサーバから取得する。
【0185】
また、電子装置の位置及び方向(例えば、電子装置に内蔵されるカメラ22の撮像方向)の組合せ毎に、対応する関連情報を対応付けて保持するようにサーバを構成した場合、電子装置は、GPS(global positioning system)等により、電子装置の位置を測定するとともに、加速度センサやジャイロセンサ等を用いて、電子装置の方向を測定する。
【0186】
そして、電子装置は、測定した位置及び方向の組合せに対応付けられている関連情報を、サーバから取得するものとなる。
【0187】
なお、電子装置の位置毎に、対応する関連情報を対応付けて保持するようにサーバを構成した場合、電子装置は、測定した位置に対応付けられている関連情報を取得し、電子装置の方向毎に、対応する関連情報を対応付けて保持するようにサーバを構成した場合、電子装置は、測定した方向に対応付けられている関連情報を取得するものとなる。
【0188】
電子装置は、取得した関連情報に基づいて、撮像画像上に合成(重畳)して表示させる合成用画像を生成する。そして、電子装置は、本実施の形態において上述したようにして、カメラ22の位置や姿勢を推定し、その結果得られる推定結果を考慮して、合成用画像を、撮像画像に合成して表示させる。
【0189】
電子装置は、ネットワークに接続されたサーバから、関連情報を取得するようにしたが、その他、例えば、電子装置が、関連情報を予め保持する記憶部を有している場合には、サーバに代えて、記憶部から関連情報を取得することができる。
【0190】
この場合、電子装置は、ネットワークに接続することなく、記憶部から関連情報を取得できるので、ネットワークに接続できない環境下においても、撮像画像上に、関連情報に対応する合成用画像を合成して表示することが可能となる。
【0191】
次に、上述した一連の処理は、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、いわゆる組み込み型のコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0192】
[コンピュータの構成例]
図21は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成例を示している。
【0193】
CPU(Central Processing Unit)201は、ROM(Read Only Memory)202、または記憶部208に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)203には、CPU201が実行するプログラムやデータなどが適宜記憶される。これらのCPU201、ROM202、およびRAM203は、バス204により相互に接続されている。
【0194】
CPU201にはまた、バス204を介して入出力インタフェース205が接続されている。入出力インタフェース205には、キーボード、マウス、マイクロホンなどよりなる入力部206、ディスプレイ、スピーカなどよりなる出力部207が接続されている。CPU201は、入力部206から入力される指令に対応して各種の処理を実行する。そして、CPU201は、処理の結果を出力部207に出力する。
【0195】
入出力インタフェース205に接続されている記憶部208は、例えばハードディスクからなり、CPU201が実行するプログラムや各種のデータを記憶する。通信部209は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【0196】
また、通信部209を介してプログラムを取得し、記憶部208に記憶してもよい。
【0197】
入出力インタフェース205に接続されているドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア211が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部208に転送され、記憶される。
【0198】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録する記録媒体は、図21に示されるように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(compact disc-read only memory),DVD(digital versatile disc)を含む)、光磁気ディスク(MD(mini-disc)を含む)、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア211、または、プログラムが一時的もしくは永続的に記録されるROM202や、記憶部208を構成するハードディスクなどにより構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデムなどのインタフェースである通信部209を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【0199】
なお、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0200】
さらに、本実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【符号の説明】
【0201】
81 画像処理装置, 101 3次元情報保持部, 102 基準画像保持部, 103 合成画像生成部, 104 評価部, 105 最適化演算部, 106 パラメータ更新部

【特許請求の範囲】
【請求項1】
撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置において、
推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、
前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、
前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、
更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段と
を含む画像処理装置。
【請求項2】
前記評価生成手段は、2次多項式により表される前記評価関数を生成し、
前記更新手段は、前記評価関数を用いた最急降下法により算出した射影パラメータを新たな射影パラメータとして更新する
請求項1に記載の画像処理装置。
【請求項3】
前記評価生成手段は、更新後の前記射影パラメータの候補を表す候補射影パラメータを変数として有する前記評価関数を生成し、
前記更新手段は、前記評価関数が最小となるときの前記候補射影パラメータを新たな射影パラメータとして更新する
請求項2に記載の画像処理装置。
【請求項4】
前記基準画像を構成する各画素の位置と、対応する前記撮像画像上の位置に基づいて、前記射影パラメータを生成する初期パラメータ生成手段をさらに含み、
前記合成画像生成手段は、
前記初期パラメータ生成手段により前記射影パラメータが生成されたことに対応して、前記射影パラメータに基づいて、前記合成画像を生成し、
前記更新手段により前記射影パラメータが更新されたことに対応して、更新後の前記射影パラメータに基づいて、前記合成画像を生成する
請求項1に記載の画像処理装置。
【請求項5】
前記基準画像は、前記撮像部とは異なる、位置及び姿勢が既知である他の撮像部の撮像により得られたものであり、
前記推定手段は、前記他の撮像部に対する前記撮像部の位置及び姿勢の違いを表す前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する
請求項1に記載の画像処理装置。
【請求項6】
撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置の画像処理方法において、
前記画像処理装置は、
合成画像生成手段と、
評価生成手段と、
更新手段と、
推定手段と
を含み、
前記画像合成手段が、推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成し、
前記評価生成手段が、前記合成画像と前記基準画像との相関を表す評価関数を生成し、
前記更新手段が、前記評価関数に基づいて、前記射影パラメータを更新し、
前記推定手段が、更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する
ステップを含む画像処理方法。
【請求項7】
撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する画像処理装置のコンピュータを、
推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、
前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、
前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、
更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段と
して機能させるためのプログラム。
【請求項8】
撮像部の撮像により得られる撮像画像に基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する電子装置において、
推定の基準となる基準画像を構成する画素の位置を、前記基準画像を構成する画素に対応する前記撮像画像上の画素の位置に射影する射影パラメータに基づいて、前記射影パラメータにより射影される前記撮像画像上の位置に存在する各画素により構成される合成画像を生成する合成画像生成手段と、
前記合成画像と前記基準画像との相関を表す評価関数を生成する評価生成手段と、
前記評価関数に基づいて、前記射影パラメータを更新する更新手段と、
更新後の前記射影パラメータに基づいて、前記撮像部の位置又は姿勢の少なくとも一方を推定する推定手段と、
前記推定手段により推定された推定結果に基づいて、所定の処理を実行する実行手段と
を含む電子装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate


【公開番号】特開2011−242134(P2011−242134A)
【公開日】平成23年12月1日(2011.12.1)
【国際特許分類】
【出願番号】特願2010−111588(P2010−111588)
【出願日】平成22年5月14日(2010.5.14)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】