説明

情報処理装置、情報処理方法

【課題】撮像装置や現実物体に装着された姿勢センサの校正を、簡便かつ正確に行う為の技術を提供する。
【解決手段】姿勢計測値取得部145は、撮像装置120に装着された姿勢センサ110による姿勢計測値、現実物体125に装着されたセンサ115による姿勢計測値を取得する。画像処理部135は、現実物体125上に配置された指標の撮像画像上における画像座標を取得する。校正部160は、撮像装置120に対するセンサ110の配置情報、現実物体125に対するセンサ115の配置情報、のうち少なくとも1つを、上記2つの姿勢計測値、画像座標を用いて求める。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、撮像装置や現実物体上に装着された姿勢センサの校正技術に関するものである。
【背景技術】
【0002】
現実物体に文字やCG映像を重畳して提示する複合現実感に関する研究が盛んに行われている。複合現実感を提示する提示装置は、ビデオカメラ等の撮像装置で撮像した現実物体の撮像画像に、撮像装置と現実物体との間の位置と姿勢の関係に応じて生成した画像を重畳描画し、これを表示する装置として実現できる。このような提示装置を実現する為には、撮像装置に対する現実物体の位置と姿勢を、リアルタイムに計測する必要がある。
【0003】
撮像装置に対する現実物体の位置と姿勢を、撮像装置による撮像画像を用いて計測することが一般的に行われている。この方法では、現実物体上に配置したマーカ等の特徴を撮像画像上で検出し、これに基づいて現実物体の位置と姿勢を算出する。
【0004】
また、撮像装置と現実物体の夫々に姿勢センサを装着し、姿勢センサによる姿勢計測値と、撮像装置による撮像画像とを併用する方法が提案されている(非特許文献1を参照)。この方法によると、撮像画像のみを用いる場合に比べ、現実物体の位置と姿勢を安定して計測することができる。
【0005】
ところで、非特許文献1に開示されている方法では、撮像装置と現実物体の夫々の姿勢が姿勢センサによって計測可能であることを前提としている。しかし、姿勢センサが実際に出力する姿勢計測値は、姿勢センサ自身の姿勢を表しており、計測対象物体(撮像装置及び現実物体)の姿勢そのものではない。すなわち、姿勢センサによる姿勢計測値をそのまま計測対象物体の姿勢として用いることはできず、何らかの座標変換を行う必要がある。具体的には、姿勢センサ自身の姿勢を、計測対象物体の姿勢に変換する座標変換が必要となる。この座標変換は、計測対象物体を基準とした座標系(以下、計測対象物体座標系と呼称する)における姿勢センサの姿勢によって定義できる。以下では、必要に応じて、計測対象物体座標系における姿勢センサの姿勢を姿勢センサの「配置情報」と呼ぶ。また係る配置情報を姿勢センサの「Local Transform」と呼ぶこともある。また、姿勢センサの配置情報を取得する作業及び処理を姿勢センサの「校正」と呼ぶ。
【0006】
従来までに行われていた校正の為の方法の一つは、Local Transformを表すパラメータをオペレータが対話的に増減する試行錯誤的な方法である。
【0007】
また、特許文献1には、現実空間中に配置したマーカを複数の視点から撮像した画像を利用して、撮像装置に装着した姿勢センサの配置情報を自動計算する方法が開示されている。この方法によると、非常に簡便な作業によって、撮像装置に装着した姿勢センサの校正を行うことができる。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−326275号公報
【非特許文献】
【0009】
【非特許文献1】小竹,佐藤,内山,山本:“傾斜角拘束を利用したハイブリッド位置合わせ手法”,画像の認識・理解シンポジウム(MIRU2006)論文集,pp.241-248,July 2006.
【非特許文献2】K. Satoh, S. Uchiyama, H. Yamamoto, and H. Tamura: "Robust vision-based registration utilizing bird’s-eye view with user’s view," Proc. 2nd IEEE/ACM Int’l Symp. on Mixed and Augmented Reality (ISMAR 2003) , pp.46-55, October 2003.
【非特許文献3】A. I. Comport, E. Marchand, and F. Chaumette, “A real-time tracker for markerless augmented reality,” Proc. 2nd IEEE/ACM Int’l Symp. on Mixed and Augmented Reality (ISMAR 2003) , pp.36-45, October 2003.
【発明の概要】
【発明が解決しようとする課題】
【0010】
特許文献1に開示されている手法では、撮像装置以外の任意の現実物体(言い換えると、撮像装置を有さない現実物体)に装着した姿勢センサの校正を行うことはできない。従って従来では、撮像装置以外の任意の現実物体に姿勢センサを装着した場合には、オペレータがこの姿勢センサのLocal Transformを試行錯誤的に調整するしかなかった。しかし、この作業は容易ではなく、オペレータに高度なスキルを要求するという課題があった。
【0011】
また、特許文献1に開示されている手法では、初期値として用いるパラメータを、何らかの方法によって予め推定し、入力しておかなくてはならないという課題があった。
【0012】
また、特許文献1に開示されている手法では、現実空間中に配置したマーカの3次元位置を定義する世界座標系において、重力軸が何れの方向を向いているかを予め入力しておかなくてはならないという課題があった。
【0013】
本発明は以上の課題に鑑みてなされたものであり、撮像装置や現実物体に装着された姿勢センサの校正を、簡便かつ正確に行う為の技術を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【0015】
即ち、撮像装置に装着された撮像装置用姿勢センサによる姿勢計測値と、当該撮像装置により撮像される現実物体に装着された現実物体用姿勢センサによる姿勢計測値と、を取得する姿勢計測値の取得手段と、
前記撮像装置が前記現実物体を撮像することで得られる画像を取得する画像の取得手段と、
前記現実物体上に配置された指標の前記画像上における画像座標を取得する画像座標の取得手段と、
前記撮像装置に対する前記撮像装置用姿勢センサの配置情報と、前記現実物体に対する前記現実物体用姿勢センサの配置情報、のうち少なくとも一方を、前記撮像装置用姿勢センサによる姿勢計測値、前記現実物体用姿勢センサによる姿勢計測値、前記画像座標、を用いて求める算出手段と
を備えることを特徴とする。
【発明の効果】
【0016】
本発明の構成により、撮像装置又は現実物体に装着された姿勢センサの撮像装置又は現実物体に対する姿勢を、簡便かつ正確に取得することができる。また、初期値や重力軸の方向を予め入力しておくという手間を省略することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の第1の実施形態に係るセンサ校正装置を有するシステムの機能構成を示すブロック図である。
【図2】センサ校正装置100、500に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図3】センサ校正装置100が行うメインの処理のフローチャートである。
【図4】ステップS3060における処理の詳細を示すフローチャートである。
【図5】本発明の第2の実施形態に係るセンサ校正装置を有するシステムの機能構成を示すブロック図である。
【発明を実施するための形態】
【0018】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【0019】
[第1の実施形態]
本実施形態に係る情報処理装置は、ビデオカメラなどの撮像装置に装着した姿勢センサ(撮像装置用姿勢センサ)と、現実物体に装着した姿勢センサ(現実物体用姿勢センサ)の校正を同時に行う。従って、以下では本実施形態に係る情報処理装置を、センサ校正装置と呼称する。以下では、このセンサ校正装置、及びこのセンサ校正装置が行うセンサ校正方法について説明する。
【0020】
図1は、本実施形態に係るセンサ校正装置を有するシステムの機能構成を示すブロック図である。図1に示す如く、センサ校正装置100には、校正対象である姿勢センサ110及び姿勢センサ115と、ビデオカメラに代表される動画像が撮像可能な撮像装置120と、が接続されている。
【0021】
センサ校正装置100は、画像取得部130、画像処理部135、3次元座標保持部140、姿勢計測値取得部145、指示部150、データ管理部155、校正部160、位置姿勢算出部170、画像生成部180、表示部190によって構成されている。
【0022】
姿勢センサ110は撮像装置120に装着されており、撮像装置120は姿勢センサ110にとっての姿勢計測対象物である。また、姿勢センサ115は現実物体125に装着されており、現実物体125は姿勢センサ115にとっての姿勢計測対象物である。本実施形態に係るセンサ校正装置100の目的は、撮像装置120に対する姿勢センサ110の配置情報と、現実物体125に対する姿勢センサ115の配置情報とを求めることである。
【0023】
夫々の姿勢センサ110,115は、センサ座標系における自身の姿勢を計測する。姿勢センサは、例えばジャイロセンサと加速度センサをベースとしたセンサユニットである。具体的には、株式会社トキメックのTISS-5-40や、米国InterSense社のInertiaCube3等によって構成される。これらのセンサによって計測される姿勢計測値は、慣性計測値を時間積分した値として算出されるため、蓄積誤差を含んでいる。ただし、これらの姿勢センサは、内蔵する加速度センサによって地球の重力方向を観測することによって、傾斜角方向(ピッチ角及びロール角)の誤差の蓄積をキャンセルする機能を有している。そのため、傾斜角方向に関しては蓄積誤差が発生しないという性質を有している。言い換えれば、方位角方向(ヨー角方向)に関しては、時間の経過に伴って蓄積される誤差(方位誤差)を有している。また、姿勢センサのセンサ座標系は重力軸を基準として設定されるため、複数の姿勢センサのセンサ座標系は、重力軸まわりの1自由度である方位成分を残して共通に定義される。
【0024】
以下では、姿勢センサ110が計測した3自由度の姿勢計測値を、3×3の回転行列RWSaτと表記する。同様に、姿勢センサ115が計測した3自由度の姿勢計測値を3×3の回転行列RWSbτと表記する。夫々の姿勢センサ110,115が計測した姿勢計測値は、姿勢計測値取得部145にデータとして入力される。
【0025】
姿勢計測値取得部145は、データ管理部155から要求を受けると、上記姿勢センサ110,115のそれぞれから受け取った姿勢計測値のデータをデータ管理部155に出力する。また、姿勢計測値取得部145は、後述する校正部160によって算出された夫々の姿勢センサ110,115の配置情報(Local Transform)を校正部160から受けると、これを保持する。さらに、姿勢計測値取得部145は、姿勢センサ110,115の姿勢計測値をそれぞれ撮像装置120、現実物体125の姿勢を示す情報へと変換し、変換した情報を位置姿勢算出部170へと出力する。係る変換は、姿勢センサ110、115のそれぞれの姿勢計測値に、対応するLocal Transformを乗算することで行われる。
【0026】
なお、撮像装置120の位置と姿勢は、撮像装置120上に設定したカメラ座標系の位置と姿勢によって定義される。カメラ座標系とは、撮像装置120の撮像系の投影中心を原点とし、光軸方向を−Z軸とおいた座標系であり、X軸とY軸は、Z軸に直交する互いに独立な軸として定義される。また、現実物体125の位置と姿勢は、現実物体125上に設定した物体座標系の位置と姿勢によって定義される。物体座標系とは、現実物体125内の1点を原点として定義し、互いに直交する3軸を夫々X軸、Y軸、Z軸として定義した座標系である。
【0027】
撮像装置120は、現実物体125を含む現実空間の動画像を撮像するものであり、撮像した各フレームの画像(撮像画像)は、画像取得部130にデータとして入力される。画像取得部130は、撮像装置120から撮像画像のデータを受けると、これを必要に応じて記憶した後、画像処理部135、画像生成部180に出力する。
【0028】
ここで、現実物体125上には、撮像装置120によって撮像するための指標として、物体座標系における位置(物体座標)が既知である複数個の指標Qk(k = 1, , , K)が配置されている。ここで、kは指標の識別番号を表し、Kは指標の総数を表す。指標Qkは、センサ校正用のデータを取得する時の撮像装置120によって、少なくとも4個以上の指標が同時に観測されるように配置されていることが望ましい。図1の例では、4個の指標Q1,Q2,Q3,Q4が現実物体125の同一平面上に配置されている。
【0029】
指標Qkは、例えば、それぞれが異なる色を有する小領域からなるカラーマーカによって構成される。あるいは、それぞれが異なるテクスチャ特徴を有する自然特徴等の特徴点によって構成される。このように、本実施形態で用いることのできる指標としては、撮像画像上における投影像の画像座標が検出可能であって、かついずれの指標であるかが何らかの方法で識別可能であるような指標であれば、どのようなものであっても良い。また、指標は故意に(人為的に)設定されたものであってもよい。また、例えば現実物体の角や模様のような、現実物体上に元来存在する特徴を指標として用いてもよい。また、ある程度の面積を有する単色の多角形領域によって形成される多角形マーカを用いてもよい。この場合、多角形の各頂点を指標として扱う。
【0030】
3次元座標保持部140は、現実空間中に配した各指標(図1の場合、Q1〜Q4)について、識別番号と物体座標のセットを保持している。即ち図1の場合には、指標Q1の識別番号と物体座標とのセット、指標Q2の識別番号と物体座標とのセット、指標Q3の識別番号と物体座標とのセット、指標Q4の識別番号と物体座標とのセット、がデータとして3次元座標保持部140に保持されている。そして3次元座標保持部140は、画像処理部135から識別番号を受けると、この識別番号とセットにして保持している物体座標を画像処理部135に返信する。以下では、識別番号kの指標Qkの物体座標をxOQkと表記する。
【0031】
画像処理部135は、画像取得部130から撮像画像を受けると、係る撮像画像中に含まれている指標を検出し、その画像座標を求める。更に、画像処理部135は、検出した指標を同定し、係る指標の識別番号を特定する。
【0032】
ここで、指標の検出は、使用する指標の種類に応じた方法で行われる。例えば、指標の夫々が異なる色を有するカラーマーカによって構成されている場合には、撮像画像上から各々のマーカ色に対応する領域を検出する。そして、その重心位置を指標の検出座標とする。また、指標の夫々が異なるテクスチャ特徴を有する特徴点によって構成されている場合には、テンプレート画像によるテンプレートマッチングによって指標の位置を検出する。この場合、各々の指標のテンプレート画像は、既知の情報として予め保持しておく。また、四角形マーカを用いる場合は、撮像画像に2値化処理、及びラベリング処理を施し、4つの直線によって形成されているラベル領域をマーカ候補として検出する。さらに、各マーカ候補の矩形領域の中に特定のパターンがあるか否かを判定することによって誤検出を排除する。また、矩形領域中のパターンによって、四角形マーカの識別番号を取得する。最後に、矩形領域の4頂点の座標が、4点の指標の位置として出力される。
【0033】
このように、撮像画像中の指標の識別番号、画像座標を抽出するための技術については係る分野では周知の技術であるので、画像座標、識別番号を取得するための処理についてより詳細な説明は省略する。
【0034】
画像処理部135は、検出した指標の識別番号を特定すると、検出した指標の物体座標を得るべく、この特定した識別番号を3次元座標保持部140に送出する。これにより、3次元座標保持部140からは、この特定した識別番号とセットになっている物体座標が返信されるので、これを取得する。即ち、画像処理部135は、検出した指標の識別番号を3次元座標保持部140に送出することで、この検出した指標の物体座標を3次元座標保持部140から取得することができる。このようにして画像処理部135は、1枚の撮像画像から検出した全ての指標について、識別番号、画像座標、物体座標を得る。
【0035】
そして画像処理部135は、検出した指標毎の画像座標uQkjτと物体座標xOQkjのセット(j =1, , , Jτ)を、位置姿勢算出部170に出力する。以下では、検出した各セットを対応情報と呼称し、検出した全ての指標のセット(画像座標と物体座標のセット)をまとめて指標情報Mτと表記する。従って、指標情報Mτには、各指標についての対応情報が含まれていることになる。
【0036】
ここで、記号τは、画像取得部130が撮像装置120から撮像画像を取得した時刻(タイミング)を表す識別子である。従って、Mτは、画像取得部130が識別子τが表す時刻(以下、単に時刻τ)に取得した撮像画像から得られた指標情報であることを示している。なお、係る時刻τについては、不図示のタイマでもって計時しており、センサ校正装置100を構成する各部は適宜、係るタイマが計時する時刻を取得できるものとする。もちろん、時刻以外にも、「タイミング」を表すことのできるものであれば、如何なるものを用いても良い。
【0037】
また、記号jは、1枚の撮像画像内に含まれている各指標に対して付けている通し番号を示している。係る記号jは説明上登場するものである。また、記号Jτは、画像取得部130が時刻τに取得した撮像画像から画像処理部135が検出した指標の総数を表す。また、記号kjは、j番目の指標の識別番号を表す。
【0038】
画像処理部135は更に上記指標情報Mτを用いて、撮像装置120に対する現実物体125の位置の推定値t’COτと姿勢の推定値R’COτを算出する。ここで、t’COτは位置を表す3次元のベクトルを表している。また、R’COτは姿勢を表す3×3の行列を表している。
【0039】
現実物体上の複数の点の3次元座標と画像座標の対応から、現実物体の位置と姿勢を求める方法は写真測量やコンピュータビジョンの分野において広く知られているので、係る方法についての詳細な説明は省略する。なお、撮像装置120に対する現実物体125の位置と姿勢の算出は、後述する位置姿勢算出部170における処理とは異なり、姿勢センサ110,115による姿勢計測値は利用していない。
【0040】
画像処理部135は、データ管理部155から要求を受けると、指標情報Mτ、現実物体125の位置の推定値t’COτ、姿勢の推定値R’COτを、データ管理部155に出力する。
【0041】
指示部150は、オペレータにより「データ取得」コマンドが入力されたときには、「データ取得」の指示をデータ管理部155に送信する。また、「配置情報算出」コマンドが入力されたときには、「配置情報算出」の指示を校正部160に送信する。指示部150へのコマンド入力は、例えばキーボードを用いて、特定のコマンドを割り当てたキーを押すことによって行う。また、コマンドの入力は、ディスプレイ上に表示されたGUIで行う等、何れの方法で行ってもよい。
【0042】
データ管理部155は、指示部150から「データ取得」の指示を受けると、係る指示を受けた時刻に最も近い時刻(時刻τ)に画像取得部130が取得した撮像画像に基づいて画像処理部135が取得した情報群を取得する。即ち、指標情報Mτ、現実物体125の位置の推定値t’COτ、姿勢の推定値R’COτを画像処理部135から取得する。また、データ管理部155は、指示部150から「データ取得」の指示を受けると、時刻τに上記姿勢センサ110,115による姿勢計測値のデータを取得する。
【0043】
そして、データ管理部155は、このようにして取得した各情報をセットにして、自身が管理するデータリストに追加登録する。
【0044】
・ 時刻τに姿勢計測値取得部145が取得した姿勢センサ110の姿勢計測値RWSaτ
・ 時刻τに姿勢計測値取得部145が取得した姿勢センサ115の姿勢計測値RWSbτ
・ 時刻τに画像取得部130が取得した撮像画像に基づいて求めた現実物体125の位置の推定値t’COτ、姿勢の推定値R’COτ
・ 時刻τに画像取得部130が取得した撮像画像に基づいて求めた指標情報Mτ
・ 1つ目の指標の画像座標uQk1τと物体座標xOQk1のセット
・ 2つ目の指標の画像座標uQk2τと物体座標xOQk2のセット
・ …
そして、データ管理部155は、校正部160から要求を受けると、係るデータリストを校正部160に送出する。
【0045】
校正部160は、指示部150から「配置情報算出」の指示を受けると、データ管理部155に対して上記データリストの取得要求を行う。そしてデータ管理部155がこの取得要求に応じて送出したデータリストを取得する。そして校正部160は、この取得したデータリストを用いて、後述する各数値演算処理を行うことで、姿勢センサ110の配置情報(即ち、Local Transform)、姿勢センサ115の配置情報を求める。そして求めたそれぞれの配置情報は、データとして姿勢計測値取得部145に送出され、そこで保持されると共に、必要に応じて外部へと出力される。
【0046】
以上が、撮像装置120上に配置された姿勢センサ110と、現実物体125上に配置された姿勢センサ115の校正を同時に実行する為の構成である。次に説明する構成は、係る構成によって得られた結果を確認するための、複合現実感の提示を行う為の部分である。
【0047】
位置姿勢算出部170は、非特許文献1に開示されている手法によって、撮像装置120に対する現実物体125の位置と姿勢を算出する。
【0048】
即ち、画像処理部135は上述の通り、撮像装置120から1フレーム分の撮像画像が入力される毎に、この撮像画像に基づいて指標情報Mτを取得し、取得した指標情報Mτを位置姿勢算出部170に送出する。従って、位置姿勢算出部170はこの指標情報Mτを受ける。
【0049】
また、位置姿勢算出部170は、時刻τに最も近い時刻(ほぼ時刻τと見なしても良い)における撮像装置120の姿勢、現実物体125の姿勢として姿勢計測値取得部145が求めたものを取得する。
【0050】
ここで、「時刻τに最も近い時刻における撮像装置120の姿勢」とは、次のようにして求まるものである。即ち、時刻τに最も近い時刻に姿勢計測値取得部145が取得した姿勢センサ110の姿勢計測値を、姿勢計測値取得部145がこの時点で保持している姿勢センサ110の配置情報を用いて上述の通り求めたものである。また、「時刻τに最も近い時刻における現実物体125の姿勢」とは、次のようにして求まるものである。即ち、時刻τに最も近い時刻に姿勢計測値取得部145が取得した姿勢センサ115の姿勢計測値を、姿勢計測値取得部145がこの時点で保持している姿勢センサ115の配置情報を用いて上述の通り求めたものである。
【0051】
そして位置姿勢算出部170は、指標情報Mτ、撮像装置120の姿勢、現実物体125の姿勢、を用いて、非特許文献1に開示されている技術を用いて、撮像装置120に対する現実物体125の位置と姿勢を算出する。この算出は、与えられたLocal Transformが正しいという仮定に基づいて行われるので、得られた位置と姿勢は、Local Transformの正確さを反映したものとなる。
【0052】
画像生成部180は、撮像画像を画像取得部130から取得する。また、撮像装置120に対する現実物体125の位置と姿勢を位置姿勢算出部170から取得し、取得した位置と姿勢に基づいて描画した仮想物体の画像を撮像画像上に重畳することで、複合現実感を提示する画像(重畳画像)を生成する。そして画像生成部180は、生成した画像を、表示部190に出力する。
【0053】
表示部190は、複合現実感を提示する画像を画像生成部180から取得し、これを表示することでオペレータに複合現実感を提示する。オペレータは係る画像を目視し、提示された複合現実感における現実空間と仮想空間との間の、位置合わせの正確さをもって、校正結果の正確さを判断することができる。なお、表示部190は、撮像装置120と一体化した構成になっていても良い。その場合の、撮像装置120および表示部190は、いわゆる頭部装着型ディスプレイ(Head Mounted Display)を構成するものとなりうる。
【0054】
次に、センサ校正装置100が行うメインの処理について、同処理のフローチャートを示す図3を用いて、以下説明する。なお、図3のフローチャートに従った処理を行う際には、オペレータは、撮像装置120と現実物体125の夫々の姿勢を様々に変化させながら、「データ取得」コマンドを数回入力する。そしてその後に、「配置情報算出」コマンドを入力するという操作を行う。以下では、「データ取得」コマンドが入力された時刻として記号τを用いる。そして、時刻τが異なるときには、撮像装置120及び現実物体125の夫々の姿勢は異なっているものとする。
【0055】
ステップS3010において、指示部150は、「データ取得」コマンドがオペレータから入力されたか否かの判定を行う。指示部150は、「データ取得」コマンドが入力されている場合には、「データ取得」の指示をデータ管理部155に送信し、ステップS3020へと処理を移行させる。一方、「データ取得」コマンドが入力されていない場合には、ステップS3050へと処理を移行させる。
【0056】
ステップS3020において、データ管理部155は、時刻τに画像取得部130が取得した撮像画像に基づいて画像処理部135が取得した画像処理結果を画像処理部135から取得する。即ち、係る画像処理結果とは上述の通り、指標情報Mτ、現実物体125の位置の推定値t’COτ、姿勢の推定値R’COτである。
【0057】
ステップS3030において、データ管理部155は、時刻τにおいて姿勢センサ110、姿勢センサ115が計測した姿勢計測値RWSaτ、RWSbτを、姿勢計測値取得部145から取得する。
【0058】
ステップS3040において、データ管理部155は、ステップS3020,S3030で取得した情報群を組み合わせたセット[RWSaτ,RWSbτ,t’COτ,R’COτ,Mτ]を、データリストLに追加登録する。
【0059】
以上で示したステップS3010からステップS3040までの処理によって、1回の「データ取得」指示で取得されるセットがデータリストLに登録される。そして、ステップS3010からステップS3040の処理を複数回実行することにより、複数セットをデータリストLに登録することができる。このとき、時刻τ(τ= 1, , , T)は、データリストLに登録されている各セットの識別子と解釈できる。ここでTは、データリストL中に含まれる異なるセット(異なる時刻、異なる姿勢)の数を表している。
【0060】
ステップS3050において、指示部150は、「配置情報算出」コマンドがオペレータにより入力されたか否かの判定を行う。指示部150は、「配置情報算出」コマンドが入力されている場合には、「配置情報算出」の指示を校正部160に送信し、ステップS3060へと処理を移行させる。一方、「配置情報算出」コマンドが入力されていない場合には、ステップS3080へと処理を移行させる。
【0061】
ステップS3060において、校正部160は、データ管理部155からデータリストLを取得し、この取得したデータリストLを用いて、姿勢センサ110、115のそれぞれの配置情報を算出する処理を行う。係る処理の詳細については、図4のフローチャートを用いて後述する。
【0062】
次に、ステップS3070において、校正部160は、ステップS3060で算出された姿勢センサ110、115のそれぞれの配置情報を、姿勢計測値取得部145へと出力する。また、必要に応じて、配置情報をセンサ校正装置100の外部へと出力する。
【0063】
ステップS3080において、位置姿勢算出部170は、時刻τにおいて画像取得部130が取得した撮像画像に基づいて画像処理部135が取得した指標情報Mτを、画像処理部135から取得する。
【0064】
ステップS3090において、位置姿勢算出部170は、時刻τにおける撮像装置120の姿勢、現実物体125の姿勢として姿勢計測値取得部145が求めたものを取得する。この取得したそれぞれの姿勢は、姿勢計測値取得部145が保持している姿勢センサのLocal Transformに基づいて、姿勢計測値に座標変換を施した後の姿勢を表している。従って、ステップS3060における配置情報算出処理が正しく行われていれば、本ステップで得られる姿勢は、撮像装置120の姿勢と現実物体125の姿勢を正しく(もちろん、センサの計測誤差は含んでいる)表すものとなる。
【0065】
ステップS3100において位置姿勢算出部170は、ステップS3080で取得した指標情報Mτ、ステップS3090で取得した撮像装置120の姿勢、現実物体125の姿勢、に基づいて、撮像装置120に対する現実物体125の位置と姿勢を算出する。係る算出処理は、例えば非特許文献1に開示されている公知の手法によって行うことができるので、詳細な説明は省略する。そして位置姿勢算出部170は、算出した位置と姿勢のデータを、画像生成部180へと出力する。また、必要に応じて、算出した位置と姿勢のデータを、外部へと出力する。
【0066】
ステップS3110において、画像生成部180は、複合現実感を提示する画像を生成して表示部190へと出力する。複合現実感を提示する画像の生成は、以下の処理によって行う。まず、画像生成部180は、撮像装置120に対する現実物体125の位置と姿勢を位置姿勢算出部170から取得する。さらに、時刻τにおいて画像取得部130が取得した撮像画像を、この画像取得部130から取得する。そして、撮像装置120に対する現実物体125の位置と姿勢に基づいて描画した仮想物体の画像を、この撮像画像上に重畳する。仮想物体としては、例えば、現実物体125の種類に依存しない情報として、物体座標系の3つの軸を表す矢印を表示してもよい。また、X=0平面,Y=0平面,Z=0平面等をワイヤーフレームで表示してもよい。あるいは、現実物体125のワイヤーフレームモデルを予め保持しておいて、これを現実物体125上に重畳表示してもよい。現実物体125の位置と姿勢が正しく求められていることが確認できるような内容であれば、仮想物体は何れのものであってもよい。
【0067】
次に、ステップS3120において、表示部190は、複合現実感を提示する画像を画像生成部180から取得し、これを表示することでオペレータに複合現実感を提示する。
【0068】
最後にステップS3130において、処理を終了するか否かの判定を行う。指示部150を介してオペレータにより本処理の終了指示が入力された場合には、本処理を終了させる。一方、本処理の終了指示がない場合には、再びステップS3010へと処理を戻す。
【0069】
次に、図4に示すフローチャートを用いて、ステップS3060における配置情報算出処理の詳細について説明する。図4は、上記ステップS3060における処理の詳細を示すフローチャートである。
【0070】
校正部160は、求めるべき姿勢センサの配置情報、即ち、Local Transformを、3値ベクトルω = [ξ ψ ζ]Tとして扱う。姿勢を3値によって表現する方法には様々なものが存在するが、ここでは、ベクトルの大きさによって回転角を、ベクトルの向きによって回転軸方向を定義するような3値のベクトルによって表現されているものとする。また以下では、必要に応じて、夫々のLocal Transformを3×3の回転行列R(ω)によって表記する。回転行列と上記3値ベクトルとの間の変換は、公知の変換式によって容易に行うことができる。以下では、姿勢センサ110の配置情報をωSC = [ξSC ψSC ζSC]T(未知)、姿勢センサ115の配置情報をωSO = [ξSO ψSO ζSO]T(未知)と表記する。
【0071】
校正部160は、Local Transformを算出する過程において、データリストLに登録されている各時刻τにおける現実物体125の位置tCOτ= [xCOτ yCOτ zCOτ]T(未知)を推定する。また、各時刻τにおける相対方位誤差の補正値φτ(未知)を推定する。ここで、相対方位誤差とは、姿勢センサ110の姿勢計測値に含まれる方位誤差と、姿勢センサ115の姿勢計測値に含まれる方位誤差の相対値を表している。なお、相対方位誤差には、夫々の姿勢センサのセンサ座標系の方位成分の差異も含まれている。
【0072】
以下では、これらの算出対象の未知パラメータを(6+4T)次元の状態ベクトルs = [ωSC ωSO tCO1 φ ・・・ tCOτ φτ ・・・tCOT φ]Tで記述する。以下の計算では、データリストLが保持している複数時刻における指標の情報と姿勢計測値とを用いて、状態ベクトルsの値を繰り返し計算によって最適化する。具体的には、夫々の検出指標の画像座標の実測値と、ある状態ベクトルsを仮定した際のこの指標の画像座標の理論値と間の誤差を全体として最小化するように、sの値を更新する。
【0073】
ステップS4010において、校正部160は、データ管理部155からデータリストLを取得する。
【0074】
ステップS4020において、校正部160は、状態ベクトルsに適当な初期値を与える。まず、各τにおけるtCOτの初期値として、データリストL中の対応する時刻τにおける現実物体125の位置推定値t’COτを設定する。また、全てのφτに共通の初期値として、全周方向を等分割した値からまだ選択されていない値を選択して設定する。例えば、全周方向を6分割した場合には、0度,60度,120度,180度,240度,300度の何れかを設定する。また、ωSCの初期値として、予め用意した幾つかの候補の中から、φτの初期値との組み合わせとしてまだ選択されていない姿勢を選択して設定する。さらに、ωSOの初期値として、上記で設定されたφτとωSCの初期値を利用して、次式によって算出した姿勢を設定する。
【0075】
【数1】

【0076】
ここで、RWSaτ,RWSbτ,R’COτの夫々は、データリストLから選択したある一つの(ある時刻τの)セットから得た値を表している。また、ΔR(φτ)は、方位角方向にφτだけの回転(相対方位誤差の補正)を加える3×3の回転行列を表しており、次式によって定義される。
【0077】
【数2】

【0078】
一方、R(ω)は、ωによって決定される回転行列であり、次式によって定義される。
【0079】
【数3】

【0080】
ただし、θは次式によって定義される。
【0081】
【数4】

【0082】
ステップS4030において、校正部160は、データリストLに登録されている各対応情報に関して、指標の画像座標の理論値を算出する。指標の画像座標の理論値とは、撮像装置120に対する現実物体125の位置と姿勢に仮説が与えられた時に、この指標が撮像画像中に見えるべき座標を指す。以下では、指標の物体座標xOiと、画像座標(実測値)uiのセットに関する画像座標の理論値を、ui’と表記する。ここで、記号i(i = 1, , , I)は、データリストL中の指標の対応情報の夫々に割り振った通し番号であり、Iは指標の対応情報の総数を表す。すなわち、I = Σττの関係にある。
【0083】
理論値ui’は、状態ベクトルsを変数とした観測方程式Fτi()に基づいて、次式によって算出される。
【0084】
【数5】

【0085】
ここで、τは、i番目の対応情報が属するセットの時刻を表す。観測方程式Fτi()は、物体座標xOiからカメラ座標xCiへの変換と、カメラ座標xCiから画像座標ui’への変換によって構成される。前者はモデルビュー変換であり、状態ベクトルsの要素であるωSC,ωSO,tCOτi,φτiを用いて、次式によって定義される。
【0086】
【数6】

【0087】
一方、後者は透視変換であり、次式によって定義される。
【0088】
【数7】

【0089】
ここでfx及びfyは、それぞれx軸方向、y軸方向における撮像装置120の焦点距離であり、既知の値として校正部160内に予め保持されているものとする。
【0090】
ステップS4040において、校正部160は、指標の対応情報の夫々に関して(即ち全てのiについて)、実測値として得られた画像座標uiと、それに対応する画像座標の理論値ui’との誤差Δuiを次式によって算出する。
【0091】
【数8】

【0092】
ステップS4050において、校正部160は、全てのiに対して、状態ベクトルsに関する画像ヤコビアンJi(=∂ui/∂s)を算出する。画像ヤコビアンとは、(式5)の観測方程式Fτi()を、状態ベクトルsの各要素で偏微分した解を各要素に持つ2行×(6+4T)列の行列(ヤコビ行列)である。具体的には先ず、(式7)の右辺をカメラ座標系上の位置ベクトルxCiの各要素で偏微分した解を各要素に持つ2行×3列のヤコビ行列Ju_xCi(=∂ui/∂xCi)を算出する。また、(式6)の右辺を状態ベクトルsの各要素で偏微分した解を各要素に持つ3行×(6+4T)列のヤコビ行列JxCi_s(=∂xCi/∂s)を算出する。そして、次式によって画像ヤコビアンJiを算出する。
【0093】
【数9】

【0094】
ヤコビ行列Ju_xCiの導出方法は公知であるので、その説明は省略する。例えば、非特許文献2等にその導出方法が開示されている。一方、JxCi_sの算出は以下のようにして行う。以下の計算を説明するために、モデルビュー変換を表す(式6)を、次の4つの式に分解して考える。
【0095】
【数10】

【0096】
【数11】

【0097】
【数12】

【0098】
【数13】

【0099】
これらの式に従うと、JxCi_sは、ωSCとその他の要素(これをs’と置く)に関する二つの行列に、以下のように分解できる。
【0100】
【数14】

【0101】
ここで、JxCi_ωSCはωSCによる(式10)の偏微分であり、(式10)、(式11)から以下のように導出できる。
【0102】
【数15】

【0103】
ここで、JxCi_rWCτはRWCτiの各要素による(式10)の偏微分を表している。JrWCτ_rSCはR(ωSC)の各要素による(式11)の偏微分を表している。JrSC_ωSCはωSCによるR(ωSC)の偏微分を表している。また、JxCi_xWiはxWiによる(式10)の偏微分を表している。また、JxWi_s’はs’による(式12)の偏微分を表しており、次式のように、s’の各要素に分解して求めることができる。
【0104】
【数16】

【0105】
ここで、JxWi_ωSOはωSOによる(式12)の偏微分であり、(式12)、(式13)から以下のように導出できる。
【0106】
【数17】

【0107】
ここで、JxWi_rWOτはRWOτiの各要素による(式12)の偏微分を表している。JrWOτ_rSOはR(ωSO)の各要素による(式13)の偏微分を表している。JrSO_ωSOはωSOによるR(ωSO)の偏微分を表している。また、JxWi_tτは、tCOτiによる(式12)の偏微分を表しており、(式12)から以下のように導出できる。
【0108】
【数18】

【0109】
【数19】

【0110】
また、JxWi_φτはφτiによる(式12)の偏微分を表しており、(式12)及び(式13)から以下のように導出できる。
【0111】
【数20】

【0112】
【数21】

【0113】
ここで、JrWOτ_ΔrτはR(φτi)の各要素による(式13)の偏微分を表している。JΔrτ_φτはφτiによるR(φτi)の偏微分を表している。
【0114】
これらのヤコビ行列を順次算出することで、JxCi_sを求めることができる。なお、これ以上の式の導出は一般的な偏微分の計算によって可能であるので省略する。
【0115】
ステップS4060において、校正部160は、以上のステップで算出した、全てのiに対する誤差Δui及びヤコビ行列Jiに基づいて、sの補正値Δsを算出する。具体的には、全てのiに対する誤差Δuiを垂直に並べた誤差ベクトルU及び全てのiに対するヤコビ行列Jiを垂直に並べた行列Φを作成し、次式によってΔsを算出する。
【0116】
【数22】

【0117】
ここで、ΦはΦの擬似逆行列Φであり、例えばΦ=(ΦΦ)−1Φによって求めることができる。Φの導出は、他の何れの手法によってもよい。
【0118】
なお、以上で述べたステップS4060の処理によって補正値を算出することは、非線形最適化手法の一種であるガウス・ニュートン法を適用していることに相当する。誤差ベクトルUとヤコビ行列Φを利用した補正値の算出方法はガウス・ニュートン法以外にも提案されており、例えば、レーベンバーグ・マーカート法や、最急降下法等を用いてもよい。また、外れ値を除外するM推定等のロバスト推定手法を組み合わせてもよいし、その他の何れの解法を用いてもよい。
【0119】
ステップS4070において、校正部160は、ステップS4060において算出した補正値Δsを用いて、次式に従って状態ベクトルsを補正し、得られた値を新たなsとする。
【0120】
【数23】

【0121】
ステップS4080において、校正部160は、更新された状態ベクトルsを用いて、ステップS4030と同一の処理により、指標の対応情報の夫々に関してその画像座標の理論値を算出する。
【0122】
ステップS4090において、校正部160は、更新された状態ベクトルsを用いて、ステップS4040と同一の処理により、指標の対応情報の夫々に関してその画像座標の実測値と理論値との誤差Δuiを算出する。
【0123】
ステップS4100において、校正部160は、何らかの判断基準を用いて、反復処理を継続するか否かの判断を行う。これ以上の反復処理は不要と判断した場合には、ステップS4110へと処理を進める。一方、反復処理を行うと判断した場合には、更新されたsを用いて、ステップS4050からステップS4090までの処理を再度実行する。
【0124】
反復処理を行うか否かの判断は、例えば、計算が収束または発散しているか否かの判定によって行う。計算が収束も発散もしていないと判定した場合には、反復処理を継続する。一方、計算が収束あるいは発散していると判定した場合には、反復処理を終了する。また、収束や発散の判定を行わずに、一定回数の反復処理を必ず行うようにしてもよい。収束や発散の判定は、例えば、ステップS4090で更新された誤差ベクトルUの大きさによって行うことができる。例えば、収束の判定を、誤差ベクトルUの大きさが予め定めた閾値より小さいか否か、あるいは、誤差ベクトルUの大きさの変化量が予め定めた閾値より小さいか否かといった基準によって行う。何れも閾値よりも小さければ、処理を終了すると判断する。
【0125】
また、発散の判定を、誤差ベクトルUの大きさが増加傾向にあるか否か、あるいは、誤差ベクトルUの大きさが予め定めた閾値より大きいか否かといった基準によって行う。また、補正値Δsの大きさによって収束判定を行うこともできる。
【0126】
このような反復計算の終了条件を用いて反復計算を有限回数行うことについては従来からなされていることであるので、これについてのこれ以上の説明は省略する。
【0127】
ステップS4110において、校正部160は、ステップS4020で設定した初期値に対して行った最適化計算(ステップS4030〜ステップS4100)が、成功したか否かの判定を行う。具体的には、ステップS4090で更新された誤差ベクトルUの大きさが予め定めた閾値以下であれば、最適化計算が成功したものと判断する。最適化計算が失敗したと判断した場合には、処理をステップS4020へと移行する。そして、状態ベクトルの初期値として他の候補を再設定し、以降の最適化計算(ステップS4030〜ステップS4100)を再度実行する。一方、最適化計算が成功したと判断した場合には、処理を終了する。
【0128】
以上の処理によって、撮像装置120や現実物体125に装着した姿勢センサの校正を、簡便かつ正確に行うことができる。また、初期値や重力軸の方向を予め入力しておくという手間を必要としない。
【0129】
[第2の実施形態]
第1の実施形態では、撮像装置120に姿勢センサ110が装着されていた。しかし、現実物体125に装着した姿勢センサ115の配置情報を計測するという目的のみを考えると、撮像装置120に姿勢センサ110が装着されていることは必須ではない。本実施形態では、撮像装置120に姿勢センサを設けない場合のシステムについて説明する。
【0130】
図5は、本実施形態に係るセンサ校正装置を有するシステムの機能構成を示すブロック図である。図5において、図1に示したものと同じものについては同じ番号を付けており、その説明は省略する。図5に示した構成が図1に示した構成と異なる点は、以下の3点である。
【0131】
・ 撮像装置120には姿勢センサが設けられていない
・ 撮像装置120は三脚500でその姿勢が固定されている
・ センサ校正装置100には新たに姿勢取得部165が付加されている
以下では、この3点を中心に説明する。もちろん、以下説明する点以外については第1の実施形態と同様である。
【0132】
撮像装置120は、三脚500上に設置されている。撮像装置120の姿勢RWCは予め計測されており、データとして外部のメモリ599内に保持されている。撮像装置120の姿勢RWCを得る為には、世界座標系における3次元位置が既知である指標を現実空間中に幾つか配置し、その幾つかの指標を撮像装置120によって撮像する。そして、指標の画像座標を検出し、指標の世界座標と画像座標との対応関係から世界座標系における撮像装置120の姿勢を算出すればよい。なお、撮像装置120の姿勢RWCとしては、重力軸(の逆方向を示す軸)に対するカメラ座標系の傾斜が得られていればよい。即ち、世界座標系における方位は任意の方向でよく、Y軸が重力軸の逆方向と一致していればよい。
【0133】
姿勢取得部165は、外部のメモリ599内に保持されている撮像装置120の姿勢RWCのデータを読み出す。以下の処理では、第1の実施形態における姿勢センサ110の姿勢計測値RWSaτを、姿勢RWCに置き換えて考えればよい。また、第1の実施形態においては導出対象の一つであった姿勢センサ110の配置情報ωSCを既知の単位行列と考えればよい。
【0134】
そして以降の処理は、第1の実施形態の場合と同様である。第1の実施形態からの変更点として、状態ベクトルsやヤコビ行列Jiから、ωSCに関する成分を除外する。そして、この新たなsに対して、第1の実施形態の最適化計算と同様な処理を実行する。なお、ωSCが既知であるので、ステップS4020で設定される初期値の組み合わせは、φのみによって決定される。すなわち、φの初期値としてある角度を選択すると、(式1)によりωSOの初期値が一意に決定される。
【0135】
なお、撮像装置120は、その姿勢RWCが何らかの手段によって計測可能であれば、必ずしも固定されている必要はない。例えば世界座標系の指標の観測によって計測し続けてもよい。また、磁気式センサや光学式センサなどのセンサを撮像装置120に装着することで、このセンサにより撮像装置120の位置姿勢を計測してもよい。
【0136】
<変形例1>
上記の実施形態では、夫々が一つの座標を表すような指標(以下、これを点指標と呼ぶ)を指標として用いていた。しかし、点指標以外の指標を用いることも可能である。例えば、エッジのような線特徴によって構成される指標(以下、これを線指標と呼ぶ)を用いてもよい。
【0137】
線指標を用いる場合の処理の概要を以下に述べる。線特徴を用いる場合であっても、複数の時刻における指標の情報と夫々の姿勢計測値を入力として、指標の投影誤差を評価基準として状態ベクトルsを最適化するという枠組みは同じである。線指標を用いる場合、画像処理部135における現実物体125の位置と姿勢の推定は、例えば、非特許文献3に開示されている手法によって行う。
【0138】
校正部160では先ず、状態ベクトルがsであるときに線指標上のいくつかの点(分割点と呼ぶ)が観察されるであろう画像座標の理論値を算出する。そして、その画像座標の近辺で実際に検出されるエッジ(実測値)までの法線方向の距離を、分割点の誤差と定義する。そして、全ての分割点に関する誤差によって誤差ベクトルUを構成する。一方、状態ベクトルsの関数として定義される上記の誤差の導出式をsの各要素で偏微分して、その解を各要素に持つ1行×(6+4T)列のヤコビ行列Φを構成する。
【0139】
そして、以上で得られる誤差ベクトルU及びヤコビ行列Φを用いて上記実施形態と同様な最適化計算を行うことで、配置情報の算出を行うことができる。もちろん、線指標と点指標、その他の指標から得られる誤差、及び画像ヤコビアンを積み重ねることによって、それらの特徴を併用することも可能である。
【0140】
<変形例2>
上記の実施形態では、校正部160における最適化計算において、時刻τにおける現実物体125の位置tCOτを未知としていた。しかし、画像処理の結果としてデータリストL中に保持されている各時刻τにおける現実物体125の位置の推定値t’COτをtCOτとおいて、最適化計算工程においてはtCOτを既知の値として扱ってもよい。この場合、上記の実施形態からの変更点として、状態ベクトルsやヤコビ行列Jiから、tCOτに関する成分を除外すればよい。例えば、第1の実施形態の場合であれば、状態ベクトルsを、s = [ωSC ωSO φ … φτ … φ]Tと定義する。そして、このsに対して上記の実施形態における最適化計算と同様な処理を実行する。
【0141】
また、上記の実施形態では、校正部160の最適化計算において、姿勢センサの相対方位誤差は時刻毎に異なるものと仮定していた。しかし、校正のためのデータを取得する短時間においては、相対方位誤差は一定と仮定してもよい。例えば、第1の実施形態の場合であれば、状態ベクトルsを、s = [ωSC ωSO φ tCO1 … tCOτ … tCOT]Tと定義できる。そして、このsに対して上記の実施形態の最適化計算と同様な処理を実行する。ここで、φは、時刻τに依存しない相対方位誤差の補正値を表している。
【0142】
もちろん、本変形例で述べた双方の仮定をおいて、s = [ωSC ωSO φ]Tを未知パラメータとした最適化計算を行うことも可能である。
【0143】
<変形例3>
第1の実施形態では、姿勢センサ110の配置情報と姿勢センサ115の配置情報を同時に求めていた。しかし、何れか一方の姿勢センサが既に校正済みの場合には、校正済みの姿勢センサの配置情報は既知としてもよい。この場合、校正部160の処理(ステップS3060)のみを変更すればよい。
【0144】
まず、姿勢センサ115が校正済みであり、姿勢センサ110のみが未校正である場合を考える。この場合、姿勢センサ115の配置情報ωSOは既知となるので、第1の実施形態からの変更点として、状態ベクトルsやヤコビ行列Jiから、ωSOに関する成分を除外すればよい。そして、このsに対して、第1の実施形態の最適化計算と同様な処理を実行する。なお、ωSOが既知の場合、ステップS4020におけるωSCの算出は、次式によって行えばよい。
【0145】
【数24】

【0146】
このとき、φの初期値としてある角度を選択すると、(式24)によりωSCの初期値が一意に決定される。
【0147】
次に、姿勢センサ110が校正済みであり、姿勢センサ115のみが未校正である場合を考える。この場合、姿勢センサ110の配置情報ωSCは既知となるので、第2の実施形態と同様に、第1の実施形態の状態ベクトルsやヤコビ行列Jiから、ωSCに関する成分を除外すればよい。
【0148】
<変形例4>
上記の実施形態において、姿勢センサ110、姿勢センサ115は3軸の姿勢を計測するセンサであった。しかし、これらの姿勢センサが重力軸に対する2軸の傾斜角のみを計測するセンサ(一般的に傾斜センサと呼ばれる)の場合であっても、同様の方法によって姿勢センサの配置情報を算出することはできる。この場合、最適化処理におけるパラメータφτは、相対方位誤差の補正値ではなく、撮像装置120と現実物体125との間の相対的な方位角の差を表すことになる。
【0149】
<変形例5>
上記の実施形態では、指標の検出及び同定を画像処理によって行っていた。しかし、現実物体125の形状や状況によっては、物体座標系上での位置が既知でかつ画像処理によって検出及び同定可能な指標を用意することが困難な場合がある。このような場合には、指標の情報を手入力で与えてもよい。すなわち、オペレータがモニタに表示された撮像画像上においてマウス等のポインティングデバイスを用いて指標の画像座標を入力し、さらに、指標の識別番号を入力するような構成としてもよい。これは、物体座標系上での位置が既知でかつ画像上において目視で位置を特定可能な点がある場合に有効である。
【0150】
また、指標の検出のみが画像処理によって可能な場合には、同定処理のみをオペレータが手入力で行ってもよい。また、画像処理によって検出及び/または同定された指標の誤りを手入力によって修正できるようにしてもよい。また、画像処理によって検出及び/または同定する指標と、手入力によって検出及び/または同定する指標とを組み合わせて用いてもよい。
【0151】
[第3の実施形態]
図1,5に示したセンサ校正装置100、500を構成する各部は全てハードウェアでもって構成されているものとして説明した。しかし、データを保持するための構成を除くその他の各部のうち一部若しくは全部をソフトウェア(コンピュータプログラム)でもって構成しても良い。この場合、係るソフトウェアは、PC(パーソナルコンピュータ)等のコンピュータが有するメモリ上にロードされ、このコンピュータが有するCPUが係るソフトウェアを実行することになる。これにより、係るコンピュータは、図1,5に示したセンサ校正装置100、500と同様の処理を行うことができる。
【0152】
図2は、センサ校正装置100、500に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【0153】
CPU1001は、RAM1002やROM1003に格納されているプログラムやデータを用いてコンピュータ全体の制御を行うと共に、本コンピュータを適用するセンサ校正装置100、500が行う上述の各処理を実行する。
【0154】
RAM1002は、外部記憶装置1007や記憶媒体ドライブ1008からロードされたプログラムやデータ、I/F(インターフェース)1009を介して外部から受信したプログラムやデータ、を一時的に記憶するためのエリアを有する。また、RAM1002は、CPU1001が各種の処理を実行する際に用いるワークエリアも有する。即ち、RAM1002は、各種のエリアを適宜提供することができる。
【0155】
ROM1003は、本コンピュータの設定データや、ブートプログラムなどを格納する。
【0156】
キーボード1004,マウス1005は、本コンピュータの操作者がCPU1001に対して各種の指示を入力するための入力デバイスとしての一例であり、その他の入力デバイスを用いても良い。例えば、上記指示部150に対して入力するコマンドは、キーボード1004やマウス1005を用いて行う。
【0157】
表示部1006は、上記表示部190に相当するものであり、CRTや液晶画面などにより構成されている。表示部1006は、CPU1001による処理結果を画像や文字などでもって表示することができる。例えば上述のように、撮像画像と仮想物体の画像とが合成された画像を表示することができる。
【0158】
外部記憶装置1007は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置1007内には、OS(オペレーティングシステム)や、センサ校正装置100、500が行う上述の各処理をCPU1001に実行させるためのプログラムやデータが保存されている。また、外部記憶装置1007には、以上の説明において、既知の情報として説明したものについても保存されている。
【0159】
外部記憶装置1007に保存されているプログラムやデータは、CPU1001による制御に従って適宜RAM1002にロードされる。そしてCPU1001はこのロードされたプログラムやデータを用いて処理を実行することで、本コンピュータは、センサ校正装置100、500が行う上述の各処理を実行することになる。
【0160】
記憶媒体ドライブ1008は、CD−ROMやDVD−ROMなどの記憶媒体に記録されているプログラムやデータを読み出し、読み出したプログラムやデータをRAM1002や外部記憶装置1007に送出するものである。係る記憶媒体には、外部記憶装置1007に保存されているものとして説明した情報のうち一部を記録しておくようにしても良い。また、係る記憶媒体は、上記外部のメモリ599として機能するようにしても良い。
【0161】
I/F1009には、上記姿勢センサ110、115、撮像装置120が接続されている。I/F1009は、以下の複数種のポートによって構成されている。撮像画像を取得するという画像取得部130の機能の一部は、アナログビデオポートあるいはIEEE1394等のデジタル入出力ポートによって実現される。また、姿勢計測値を取得するという姿勢計測値取得部145の機能の一部は、USBポートやRS−232Cポートによって実現される。入力データは、I/F1009を介してRAM1002や外部記憶装置1007に取り込まれる。また、校正部160が算出した夫々の姿勢センサの配置情報や、位置姿勢算出部170が算出した物体の位置及び姿勢は、必要に応じて、イーサネット(登録商標)ポート等(I/F1009の機能の一部)によって外部へ出力される。
【0162】
1010は上述の各部を繋ぐバスである。
【0163】
なお、センサ校正装置100、500に適用可能なコンピュータのハードウェア構成については図2に示した構成に限定するものではなく、当業者であれば適宜変形しうるものである。
【0164】
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0165】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0166】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0167】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。

【特許請求の範囲】
【請求項1】
撮像装置に装着された撮像装置用姿勢センサによる姿勢計測値と、当該撮像装置により撮像される現実物体に装着された現実物体用姿勢センサによる姿勢計測値と、を取得する姿勢計測値の取得手段と、
前記撮像装置が前記現実物体を撮像することで得られる画像を取得する画像の取得手段と、
前記現実物体上に配置された指標の前記画像上における画像座標を取得する画像座標の取得手段と、
前記撮像装置に対する前記撮像装置用姿勢センサの配置情報と、前記現実物体に対する前記現実物体用姿勢センサの配置情報、のうち少なくとも一方を、前記撮像装置用姿勢センサによる姿勢計測値、前記現実物体用姿勢センサによる姿勢計測値、前記画像座標、を用いて求める算出手段と
を備えることを特徴とする情報処理装置。
【請求項2】
前記姿勢計測値の取得手段は、前記撮像装置と前記現実物体とが異なる姿勢をとる毎に、前記撮像装置用姿勢センサによる姿勢計測値、前記現実物体用姿勢センサによる姿勢計測値を取得し、
前記画像の取得手段は、前記撮像装置前記現実物体が異なる姿勢をとる毎に、前記撮像装置が撮像した画像を取得し、
前記画像座標の取得手段は、前記画像の取得手段が取得したそれぞれの画像から前記指標の画像座標を取得し、
前記算出手段は、前記撮像装置と前記現実物体とが異なる姿勢をとる毎に取得された、前記撮像装置用姿勢センサによる姿勢計測値、前記現実物体用姿勢センサによる姿勢計測値、前記撮像装置が撮像した画像から取得された指標の画像座標、を用いて、前記撮像装置に対する前記撮像装置用姿勢センサの配置情報、前記現実物体に対する前記現実物体用姿勢センサの配置情報のうち少なくとも一方を算出する
ことを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記算出手段は、
前記撮像装置に対する前記撮像装置用姿勢センサの配置情報、前記現実物体に対する前記現実物体用姿勢センサの配置情報、のうち算出対象を未知パラメータとし、当該未知パラメータに基づいて決まる画像上の指標の座標と、当該指標について前記画像座標の取得手段が取得した画像座標と、の誤差を小さくするように前記未知パラメータを求めることを特徴とする請求項2に記載の情報処理装置。
【請求項4】
撮像装置を有していない現実物体に装着された姿勢センサによる姿勢計測値を取得する姿勢計測値の取得手段と、
撮像装置が前記現実物体を撮像することで得られる画像を取得する画像の取得手段と、
前記現実物体上に配置された指標の前記画像上における画像座標を取得する画像座標の取得手段と、
前記現実物体に対する前記姿勢センサの配置情報を、既知の情報として与えられる前記撮像装置の姿勢、前記姿勢センサによる姿勢計測値、前記画像座標、を用いて求める算出手段と
を備えることを特徴とする情報処理装置。
【請求項5】
前記算出手段が算出した配置情報に基づいて、仮想物体の画像を生成する手段と、
前記撮像装置により撮像された画像上に、前記仮想物体の画像を重畳した重畳画像を生成する手段と、
前記重畳画像を表示する手段と
を備えることを特徴とする請求項1乃至4の何れか1項に記載の情報処理装置。
【請求項6】
情報処理装置が行う情報処理方法であって、
前記情報処理装置が有する姿勢計測値の取得手段が、撮像装置に装着された撮像装置用姿勢センサによる姿勢計測値と、当該撮像装置により撮像される現実物体に装着された現実物体用姿勢センサによる姿勢計測値と、を取得する姿勢計測値の取得工程と、
前記情報処理装置が有する画像の取得手段が、前記撮像装置が前記現実物体を撮像することで得られる画像を取得する画像の取得工程と、
前記情報処理装置が有する画像座標の取得手段が、前記現実物体上に配置された指標の前記画像上における画像座標を取得する画像座標の取得工程と、
前記情報処理装置が有する算出手段が、前記撮像装置に対する前記撮像装置用姿勢センサの配置情報と、前記現実物体に対する前記現実物体用姿勢センサの配置情報、のうち少なくとも一方を、前記撮像装置用姿勢センサによる姿勢計測値、前記現実物体用姿勢センサによる姿勢計測値、前記画像座標、を用いて求める算出工程と
を備えることを特徴とする情報処理方法。
【請求項7】
情報処理装置が行う情報処理方法であって、
前記情報処理装置が有する姿勢計測値の取得手段が、撮像装置を有していない現実物体に装着された姿勢センサによる姿勢計測値を取得する姿勢計測値の取得工程と、
前記情報処理装置が有する画像の取得手段が、前記撮像装置が前記現実物体を撮像することで得られる画像を取得する画像の取得工程と、
前記情報処理装置が有する画像座標の取得手段が、現実物体上に配置された指標の前記画像上における画像座標を取得する画像座標の取得工程と、
前記情報処理装置が有する算出手段が、前記現実物体に対する前記姿勢センサの配置情報を、既知の情報として与えられる前記撮像装置の姿勢、前記姿勢センサによる姿勢計測値、前記画像座標、を用いて求める算出工程と
を備えることを特徴とする情報処理方法。
【請求項8】
コンピュータを、請求項1乃至5の何れか1項に記載の情報処理装置が有する各手段として機能させるためのコンピュータプログラム。
【請求項9】
請求項8に記載のコンピュータプログラムを格納した、コンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−101128(P2013−101128A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2012−280059(P2012−280059)
【出願日】平成24年12月21日(2012.12.21)
【分割の表示】特願2007−105249(P2007−105249)の分割
【原出願日】平成19年4月12日(2007.4.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】