JP3817505B2 - Information processing method and information processing apparatus - Google Patents

Information processing method and information processing apparatus Download PDF

Info

Publication number
JP3817505B2
JP3817505B2 JP2002284244A JP2002284244A JP3817505B2 JP 3817505 B2 JP3817505 B2 JP 3817505B2 JP 2002284244 A JP2002284244 A JP 2002284244A JP 2002284244 A JP2002284244 A JP 2002284244A JP 3817505 B2 JP3817505 B2 JP 3817505B2
Authority
JP
Japan
Prior art keywords
image
marker
coordinates
calibration information
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002284244A
Other languages
Japanese (ja)
Other versions
JP2004118734A (en
Inventor
俊広 小林
清秀 佐藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2002284244A priority Critical patent/JP3817505B2/en
Priority to EP03251542A priority patent/EP1349114A3/en
Priority to CNB031207375A priority patent/CN1210543C/en
Priority to US10/390,739 priority patent/US6792370B2/en
Publication of JP2004118734A publication Critical patent/JP2004118734A/en
Priority to US10/892,104 priority patent/US7130754B2/en
Application granted granted Critical
Publication of JP3817505B2 publication Critical patent/JP3817505B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を求めるものに関する。
【0002】
【従来の技術】
近年、現実空間と仮想空間の繋ぎ目のない結合を目的とした、複合現実感に関する研究が盛んに行われている。複合現実感の提示を行う画像表示装置は、ビデオカメラなどの撮像装置によって撮影された現実空間の画像に仮想空間(たとえばコンピュータ・グラフィックスにより描画された仮想物体や文字情報など)の画像を重畳表示することで実現される。
【0003】
このような画像表示装置の応用としては、患者の体表面に体内の様子を重畳表示する手術支援や、現実空間に浮遊する仮想の敵と戦う複合現実感ゲームなど、今までのバーチャルリアリティとは異なった新たな分野が期待されている。
【0004】
これらの応用に対して共通に要求されるのは、現実空間と仮想空間の間の位置合わせをいかに正確に行うかということであり、従来から多くの取り組みが行われてきた。
【0005】
複合現実感における位置合わせの問題は、現実空間に設定した世界座標系(以後、単に世界座標系と呼ぶ)における、撮像装置の3次元位置姿勢を求める問題に帰結される。これらの問題を解決する方法として、磁気式センサや光学式センサ、超音波式センサなどの3次元位置姿勢センサを利用することが一般的に行われている。
【0006】
一般に3次元位置姿勢センサが出力する出力値は、センサが独自に定義するセンサ座標系における測点の位置姿勢であって、世界座標系における撮像装置の位置姿勢ではない。例えばPolhemus社の磁気式センサFASTRAKを例にとると、センサ出力として得られるのは、トランスミッタが定義する座標系におけるレシーバの位置姿勢である。したがって、センサ出力値をそのまま世界座標系における撮像装置の位置姿勢として用いることはできず、何らかの較正を行う必要がある。具体的には、測点の位置姿勢を撮像装置の位置姿勢に変換する座標変換と、センサ座標系における位置姿勢を世界座標系における位置姿勢に変換する座標変換が必要となる。なお、本明細書において、センサ出力値を世界座標系における撮像装置の位置姿勢に変換するための情報を較正情報と呼ぶこととする。
【0007】
現実空間と仮想空間の正確な位置合わせを行うためには、何らかの手段によって正確な較正情報が設定される必要がある。正確な較正情報が与えられてはじめて、現実空間に正確に位置合わせのなされた仮想画像の表示が実現される。
【0008】
尚、較正情報の保持形態は、一方の座標系からみたもう一方の座標系の位置及び姿勢が定義できる情報であれば、いずれの形態をとってもよい。例えば、一方の座標系からもう一方の座標系への変換を表す4行4列のビューイング変換行列であってもよい。また、位置を記述する3パラメータと、姿勢をオイラー角によって表現する3パラメータの計6パラメータで位置姿勢を表現してもよい。また、姿勢に関しては、回転軸を定義する3値のベクトルとその軸まわりの回転角という4パラメータで表現してもよいし、回転軸を定義するベクトルの大きさによって回転角を表現するような3パラメータによって表現してもよい。
【0009】
また、それらの逆変換を表わすパラメータ(例えば、センサ座標系における世界座標系の位置姿勢)によって表現しても良い。ただし、いずれの場合も、3次元空間中における物体の位置及び姿勢は、位置に3自由度、姿勢に3自由度の計6自由度を有しているのみであるので、較正に必要な未知パラメータ数は、世界座標系からセンサ座標系への変換に必要な6パラメータと、測点の位置姿勢から撮像装置の位置姿勢への変換に必要な6パラメータの合計12パラメータとなる。
【0010】
較正情報を設定する公知の方法の一つとして、ユーザあるいはオペレータが、不図示の入力手段を介して、前記12のパラメータ(あるいはそれに等価な12以上のパラメータ)を対話的に変更し、正確な位置合わせが達成されるまで調整を試行錯誤的に行うという方法がある。
【0011】
また、特許文献1により提案された較正方法によれば、測点の位置姿勢から撮像装置の位置姿勢への変換パラメータ、または世界座標系からセンサ座標系への変換パラメータのいずれかが何らかの方法で得られていれば、ある値に固定した位置姿勢情報に基づいて生成した仮想画像を視覚キューとして用いることで、残された未知パラメータを簡便に導出することができる。
【0012】
【特許文献1】
特開2002−229730号公報
【0013】
【発明が解決しようとする課題】
しかし、前者の方法では、12の未知パラメータを同時に調整する必要があるため調整に著しく時間がかかり、必ずしも正確な較正情報が得られるとは限らないという問題点があった。また、後者の方法においても、既知とするパラメータを導出する際に試行錯誤的作業あるいは何らかの較正用器具を用いた作業を行う必要があるという問題があった。
【0014】
本発明は以上の問題に鑑みてなされたものであり、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を、より簡便に、かつ特別な較正器具を用いることなく、高精度に求めることができるようにすることを目的とする。
【0015】
【課題を解決するための手段】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
即ち、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を求める情報処理方法であって、
世界座標が既知である複数のマーカが配置されている現実空間を、前記撮像部を用いて複数の位置姿勢で撮影することにより得られる複数の撮影画像、および該撮影画像の各々を撮影した際のセンサの計測値を取得し、
前記撮影画像に含まれるマーカの画像座標を検出し、
ユーザ指示に応じて、前記取得された複数の撮影画像から、前記較正情報を算出する際に使用する撮影画像を選択し、
前記選択された撮影画像の前記センサの計測値と、該選択された撮影画像の前記検出されたマーカの画像座標と、該検出されたマーカの世界座標とを用いて、前記較正情報を算出し、
前記撮影画像に、該撮影画像から検出されたマーカの画像座標と、該検出されたマーカの識別情報と、前記算出された較正情報を用いて該検出されたマーカの世界座標から求められた画像座標と、を合成して表示する
ことを特徴とする。
【0016】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
即ち、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を求める情報処理装置であって、
世界座標が既知である複数のマーカが配置されている現実空間を、前記撮像部を用いて複数の位置姿勢で撮影することにより得られる複数の撮影画像、および該撮影画像の各々を撮影した際のセンサの計測値を入力する入力手段と、
前記撮影画像に含まれるマーカの画像座標を検出する検出手段と、
ユーザ指示に応じて、前記取得された複数の撮影画像から、前記較正情報を算出する際に使用する撮影画像を選択する選択手段と、
前記選択された撮影画像の前記センサの計測値と、該選択された撮影画像の前記検出されたマーカの画像座標と、該検出されたマーカの世界座標とを用いて、前記較正情報を算出する算出手段と、
前記撮影画像に、該撮影画像から検出されたマーカの画像座標と、該検出されたマーカの識別情報と、前記算出された較正情報を用いて該検出されたマーカの世界座標から求められた画像座標と、を合成して表示する手段と
を備えることを特徴とする。
【0019】
【発明の実施の形態】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。
<第1の実施形態>
本実施形態のセンサ較正装置は、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するためのパラメータを求める。
【0020】
そのため、本実施形態のセンサ較正装置は、
(1) 同一直線上にない4点以上のマーカの世界座標,
(2) 複数の位置姿勢で撮影した画像上におけるマーカの画像座標,
(3) (2)の画像を撮影したときのセンサ計測値,
(4) センサ配置情報の初期値(大まかな値),
を用いてパラメータを求める。
【0021】
このうち,(1)のマーカの世界座標は,較正の準備段階で既知の情報として用意すべきデータである。マーカ(ランドマーク、特徴点)は、当該画像表示装置が表示の対象としている現実空間内に、世界座標が既知な最低3点以上が配置されている必要がある。ここで、各マーカは、撮影画像上におけるその投影像の画像座標が検出可能であって、かついずれのマーカであるかが識別可能であるような、例えばそれぞれが異なる色を有するマーカであるものとする。世界座標系は所定の1点を原点とし、更にこの原点から夫々直交する方向にX、Y、Z軸をとる。そしてこの座標系において上記3点のマーカの座標が既知であるとする。つまり、予め上記3点のマーカについて原点からX、Y、Z方向への距離を測定しておく。
【0022】
(2)と(3)は,較正時に取得するデータである。(4)のセンサ配置情報の初期値は必ずしも必要なデータではないが、設定しないと適切な解が得られない場合がある。
【0023】
これらのデータを入力として,各マーカの世界座標,センサ計測値,そしてセンサ配置情報を基にそのマーカの画像座標の理論値を求め,実測値との誤差の和が最小となるような較正情報(パラメータ)を算出する。
なお、他の情報を用いる他の方法を用いてパラメータを求めても構わない。
【0024】
図1は本実施形態によるセンサ較正装置の第1の実施形態における概略構成を示すブロック図である。
図1において、100は演算処理部であり、コンピュータなどの計算機から構成される。演算処理部100はその内部にCPU101、RAM102、画像生成装置103、システムバス104、ディスク装置105、入力装置106、画像取込装置107を備える。
【0025】
CPU101は較正プログラムに基づき、較正処理を制御する。CPU101はシステムバス104に接続され、RAM102、画像生成装置103、ディスク装置105、入力装置106、画像取込装置107と相互に通信することが可能である。
【0026】
RAM102は、メモリ等の主記憶装置によって実現される。RAM102は、システムバス104を介して、較正プログラムのプログラムコードやプログラムの制御情報、マーカの世界座標および画像座標、本装置が算出した較正情報などを一時的に保持する。
【0027】
画像生成装置103は、グラフィックスカードなどの機器によって実現される。システムバス4を介して、CPU101上で実行されるプログラムによって生成された画像情報を表示部200に送出する。
システムバス104は、演算処理部100を構成する各機器が接続され、上記機器が相互に通信するための通信路となる。
【0028】
ディスク装置105は、ハードディスク等の補助記憶装置によって実現される。ディスク装置105は、較正プログラムのプログラムコードやプログラムの制御情報、マーカの世界座標および画像座標、本装置が算出した較正情報などを保持する。
【0029】
入力装置106は、各種インタフェース機器によって実現される。演算処理部100の外部に接続された機器からの信号をデータとして入力し、システムバス104を介して、RAM102にデータを書き込む。
【0030】
画像取込装置107は、キャプチャカードなどの機器によって実現される。撮像装置302から送出される画像を入力し、システムバス104を介して、RAM102に画像データを書き込む。
【0031】
200は表示部であり、CRTモニタ、液晶モニタなどのディスプレイ装置によって実現される。画像生成装置103から送出される映像信号を表示し、本装置の使用者に結果を提示するために用いられる。
300は頭部装着部であり、本装置によって較正を行う対象である。頭部装着部300はレシーバ301および撮像装置302から構成される。
【0032】
レシーバ301は、例えば磁気センサにおいては、トランスミッタ600が発生する磁界を計測する機器によって実現される。レシーバ301が計測した磁界の値は、センサ制御装置500に送出され、センサ制御部500によって、3次元位置および姿勢を表すパラメータに変換される。
撮像装置302は、CCDカメラなどの撮像装置によって実現される。撮像装置302が撮影する映像信号は画像取込装置107に送られる。
【0033】
操作入力部400は、キーボード、マウスなどの演算処理部100を制御するための入力機器によって実現される。操作入力部400は入力装置106に操作信号を送出する。図示しない本装置の使用者は、操作入力部400を操作することによって、本装置を制御する指令を与える。
【0034】
センサ制御部500は、例えば磁気センサにおいては、レシーバ301およびトランスミッタ500を制御し、レシーバ301から得た情報をもとに、レシーバ301の3次元位置および姿勢情報を算出する。センサ制御部500によって算出された前記三次元位置および姿勢情報は、入力装置106に送出される。
トランスミッタ600は、例えば磁気センサにおいては、センサ制御部500がレシーバ301の3次元位置および姿勢を算出するために、磁界を発生させる。
【0035】
本実施形態では、磁気センサを用いた場合について説明したが、用いるセンサは磁気センサに限られない。例えば光学式センサや、超音波式センサなどを用いてもよく、3次元位置および姿勢を計測することができるセンサであれば、センサの種類は問わない。この場合、レシーバ301はセンサの計測対象であり、トランスミッタ600は、センサ制御部500がレシーバ301の3次元位置および姿勢を算出するときのセンサ座標系原点である。
【0036】
図2は本実施形態における較正装置の機能構成を示すブロック図である。図2の各部の処理は図1における演算処理部100内で行われる。
世界座標保持部110は、各マーカの世界座標系における座標データを保持しており、データ管理部112からの要求に従って、これを出力する。また、世界座標保持部110は各マーカの座標データに各々のマーカ固有の情報(マーカの色情報、識別情報)のデータを関連づけて保持している。
【0037】
データ管理部111は、指示部115からデータ取得要求を受けると、画像座標取得部112からマーカの画像座標および識別情報を入力し、世界座標保持部110から前記識別情報に対応するマーカの世界座標を入力し、画像座標、世界座標、識別情報の組をデータリストに追加しこれを保持する。画像座標取得部112からマーカの画像座標のみが入力され、識別情報が入力されない場合においては、画像座標のみがデータリストに追加される。また、指示部115からデータ削除要求を受けると、データリストからデータを削除する。また、指示部115からデータ同定要求を受けると、マーカの世界座標、画像座標、識別情報の組み合わせを変更し、データリストのデータを変更する。また、較正情報算出部113からの要求に従って、生成したデータリストを較正情報算出部113に出力する。
【0038】
画像座標取得部112は、図1における撮像装置302が撮影し、図1における画像取込装置107によって獲得された画像(以下現実画像と表記する)中に撮影されているマーカの座標および識別情報を特定し、データ管理部111からの要求に従ってこれらの情報をデータ管理部111へと出力する。
【0039】
較正情報算出部113は指示部115から較正情報算出指示を受けると、データ管理部112からデータリストを入力し、これをもとに較正情報を算出し、算出した較正情報を較正情報保持部114へ送出する。
【0040】
較正情報保持部114は、較正情報算出部113が算出した較正情報を保持し、指示部115からの要求に従って、保持する較正情報を出力したり、変更したり、ファイルに保存する。指示部115から出力要求を受けると、較正情報を出力する。指示部115から較正情報変更要求を受けると、保持する較正情報の値を変更する。指示部115からファイル保存要求を受けると、ディスク装置105にファイルを作成し、較正情報を前記ファイルに保存する。指示部115からファイル読み込み要求を受けると、現在保持する較正情報を破棄し、ディスク装置105から指示されたファイルを読み込み、読み込まれた値を新たに現在の較正情報として設定する。指示部115からリセット要求を受けると、現在保持する較正情報を破棄し、本装置の起動時に保持していた較正情報のデフォルト値を新たに現在の較正情報として設定する。また、較正情報算出部113からの要求に応じて、較正情報保持部114が保持している較正情報を較正情報算出部113へ送出する。較正情報算出部113へ送出された較正情報は、較正情報算出部113が較正情報を算出する際に初期値として用いる。
【0041】
指示部115は、本装置の使用者からデータ取得コマンドが入力されたときにはデータ取得要求を、データ削除コマンドが入力されたときにはデータ削除要求を、データ同定コマンドが入力されたときにはデータ同定要求を、それぞれデータ管理部111に送出する。また、較正情報算出コマンドが入力されたときには、較正情報算出部113に較正情報算出要求を送出する。
【0042】
本実施形態において、本装置の使用者が指示部115に指示を行う際には、図3に示すGUIを用いて行う。図3におけるGUIは、メインウィンドウ1000、画像表示領域1010、較正情報表示領域1020、操作ボタン1030およびファイルメニュー1040から構成される。また、図4に示すように、ファイルメニュー1040は保存サブメニュー1050と終了サブメニュー1060から構成される。
【0043】
画像表示領域1010には、現実画像が表示される。また、画像座標取得部112が特定したマーカの座標位置を示す印および識別情報についても現実画像に重畳して表示される。
【0044】
図5には、画像座標取得部112が特定したマーカの座標位置を示す印および識別情報を、現実画像に重畳して画像表示領域1010に表示している様子を示している。図5において楕円形で示されているのは、現実画像中において撮影されているマーカである。また、画像座標取得部112が特定したマーカの画像座標を四角形で囲われた×印で示している。さらに、画像座標取得部112で特定されたマーカの識別情報について、マーカの名称を表すテキストを重畳して表示している。
【0045】
マーカの画像座標の位置に印を重畳することによって、本装置の使用者は、画像座標取得部112が特定した座標を一目で確認することが可能となる。
また、マーカの識別情報を重畳表示することによって、本装置の使用者は、画像座標取得部112が特定したマーカがどのマーカであるのかを、一目で確認することが可能となる。
【0046】
ここではマーカの画像座標を示すために四角形で囲われた×印を重畳した例を示したが、重畳するものは四角形で囲われた×印に限られない。○、×、□、矢印などの各種記号やアイコンなどを用いてもよく、画像座標取得部112が特定したマーカの画像座標を視認することができるものであれば、何でも良い。
【0047】
また、ここではマーカの識別情報として、名称を表すテキストを重畳した例を示しているが、重畳する識別情報はテキストのみに限られない。アイコンや画像などを用いて識別させても良いし、テキスト、アイコン、画像などの色や、マーカそのものの色を変えて表示することで識別させても良い。本装置の使用者が、現実画像中に撮影されているマーカと、実際のマーカとの対応を確認できるものであれば、何でも良い。
【0048】
図6では、画像座標取得部112においてマーカの画像座標の特定が行われているものの、識別情報の特定が行われておらず、データ管理部111においてマーカの世界座標、画像座標、識別情報との組が作成されていない場合における、画像表示領域1010の表示例を示している。データ管理部111において、マーカの世界座標、画像座標、識別情報との対応付けを行い、組を作成することを、以下「マーカを同定する」と表現する。
【0049】
図6では、マーカの画像座標に×印を現実画像に重畳している。また「?」のテキストを現実画像に重畳して表示している。画像表示領域1010において、マーカの同定が行われている場合には、四角形で囲われた×印とマーカの識別情報を重畳して表示し、マーカの同定が行われていない場合には、表示方法を切り替えるようにする。
【0050】
マーカの同定が行われている場合と行われていない場合の表示方法については、画像表示領域1010全体で切り替える必要はなく、画像表示領域1010で撮影されている各マーカについて、マーカ単位で独立に切り替えることが可能である。
【0051】
また、図7では、現在の較正情報およびレシーバ301の位置姿勢情報をもとに、世界座標保持部110が保持するマーカの世界座標系での座標を、撮像装置302の視点からCGによって描画し、画像表示領域1010の現実画像に重畳して表示している様子を示している。
【0052】
本装置による較正が正しく行われていれば、画像座標取得部112で特定されたマーカの座標と、現実画像に重畳された当該マーカの世界座標とは理論的に一致する。本装置の使用者は、マーカの画像座標と世界座標とのずれ量を見ることによって、本装置によって行われた較正の精度を視覚的に随時確認することが可能となる。
【0053】
本実施形態では、CGによってマーカの世界座標を描画しているが、CGで描画する対象は、マーカの世界座標に限られない。
例えば、世界座標系が現実画像上でどのように観測されるのかを確認するために、世界座標系を構成する座標軸や平面、世界座標原点などを描画するようにしてもよい。
【0054】
また、本較正装置の一部を、複合現実感の提示を行う画像表示装置を用いて実現している場合には、複合現実感の提示を行う際に用いる仮想世界や仮想物体をCGで描画するようにしてもよい。
【0055】
画像座標取得部112がマーカの座標を特定するために、画像中の色領域を抽出する処理を行っているような場合には、画像表示領域1010には、現実画像の代わりに前記色領域抽出処理の結果を示す画像を表示するようにしてもよい。このようにすることで、本装置の使用者が、色領域抽出処理のためのパラメータを容易に調整できるようになる。
【0056】
本装置の使用者は、マウス等のポインティングデバイスを用いて、画像表示領域1010中の画像座標を指定することができる。例えば、画像座標取得部112が行うマーカの(現実画像中の)座標の特定を本装置の使用者自身で行うことや、現実画像に撮影された所望のマーカを選択し、そのマーカに対する処理パラメータを変更したり、識別情報を本装置の使用者が手動で与えることが可能となる。
【0057】
較正情報表示領域1020には、較正情報保持部114が保持している現在の較正情報を表示する。
操作ボタン1030は、本装置の使用者が、ボタンの領域をマウス等のポインティングデバイスで選択することによって、本装置の挙動やGUIを制御するために用いられる。本実施形態においては、本装置の使用者が操作ボタン1030を選択すると、データ取得ダイアログ、初期値設定ダイアログ、検出パラメータ設定ダイアログを新たに表示させる。
【0058】
ファイルメニュー1040は、本装置の使用者が、メニューの領域をマウス等のポインティングデバイスで選択することによって、保存サブメニュー1050および終了サブメニュー1060を表示させる。
【0059】
保存サブメニュー1050は、本装置の使用者がサブメニューの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。保存サブメニュー1050が選択されると、指示部115はファイル保存コマンドを発行し、較正情報保持部114にファイル保存要求を送出する。
【0060】
終了サブメニュー1060は、本装置の使用者がサブメニューの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。終了サブメニュー1060が選択されると、本較正装置を終了する。較正情報保持部114が未保存の較正情報を保持している場合には、指示部115はファイル保存コマンドを発行し、較正情報保持部114にファイル保存要求を送出し、較正情報保持部114がファイル保存処理を完了するまで待機した後に、本較正装置を終了する。
【0061】
図8には、データ取得ダイアログの例を示している。図8におけるデータ取得ダイアログ1100は、データリスト表示領域1110、データ取得操作ボタン1120、表示画像切替ボタン1130、較正情報算出ボタン1140、選択データ無効化/有効化ボタン1150、選択データ削除ボタン1160、選択データ表示領域1170、選択データ操作領域1180、誤差表示領域1190、データ取得ダイアログ終了ボタン1195から構成される。
【0062】
データリスト表示領域1110は、これまでに取得したデータリストに対応する現実画像の縮小画像のサムネイルが表示される。本装置の使用者があるサムネイルを選択すると、その画像に対応するデータをデータリストから選び出し、選択データ表示領域1170に表示する。また、その画像に対応するデータを選択状態とする。選択状態になっているデータは、選択データ無効化/有効化ボタン1150、選択データ削除ボタン1160が押されたときの処理の対象となる。
【0063】
このとき、画像表示領域1010にはデータリストに対応する現実画像を表示する。データリスト表示領域1110は現実画像が縮小表示されており、本装置の使用者が縮小画像から詳細を確認するのは困難であるため、画像表示領域1010には縮小しない状態で現実画像を表示する。また、データリストから選び出したマーカの画像座標、世界座標、識別情報についても、画像表示領域1010に関する説明で述べた方法により、現実画像に重畳して表示する。
【0064】
データ取得ボタン1120は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。データ取得ボタン1120が押されると、指示部115はデータ取得コマンドを発行し、データ管理部111にデータ取得要求を送出する。また、その時点での現実画像をデータリスト表示領域に追加して表示する。
【0065】
表示画像切替ボタン1130は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。表示画像切替ボタン1130が押されると、画像表示領域1010に表示される画像のモードを切り替える。本装置の使用者は、現在取得されている現実画像を表示する「ライブ映像表示モード」と、データリスト表示領域1110で現在選択されている現実画像を表示する「取得データ表示モード」とを選択することが可能である。表示画像切替ボタン1130が押されると、現在のモードがライブ映像表示モードの時には取得データ表示モードに、現在のモードが取得データ表示モードの時にはライブ映像表示モードに切り替える。
【0066】
較正情報算出ボタン1140は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。較正情報算出ボタンが押されると、指示部115は較正情報算出コマンドを発行し、較正情報算出部113に較正情報算出要求を送出する。
【0067】
選択データ無効化/有効化ボタン1150は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。選択データ無効化/有効化ボタン1150を押すことによって、データ表示領域1110で現在選択されているデータ(撮影画像)が有効であるときには当該データを無効にし、較正情報算出処理の対象から選択データを除外する。現在選択されているデータが無効であるときには、当該データを有効にする。
【0068】
選択データ削除ボタン1160は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。選択データ削除ボタン1160が押されると、指示部115はデータ削除コマンドを発行し、データ管理部111にデータ削除指示を送出する。また、現在選択している現実画像のサムネイルをデータリスト表示領域1110から消去する。
【0069】
選択データ表示領域1170は、本装置の使用者がデータリスト表示領域1110で選択したデータが表示される。
選択データ操作領域1180は、本装置の使用者が選択データを操作するために用いられる。図9には、選択データ操作領域1180の詳細を示している。
選択データ操作領域1180は、マーカ選択ボタン1181、マーカ追加ボタン1182、マーカ識別情報選択メニュー1183、マーカ削除ボタン1184から構成される。
【0070】
マーカ選択ボタン1181は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ選択ボタン1181が押されると、操作モードを「マーカ選択モード」に設定する。マーカ選択モードが設定された状態で、本装置の使用者が、画像表示領域1010で表示されているマーカの座標位置を示す印の近傍を選択すると、当該マーカを選択状態にする。
【0071】
マーカ追加ボタン1182は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ追加ボタン1182が押されると、操作モードを「マーカ追加モード」に設定する。マーカ追加モードが設定された状態で、本装置の使用者が、画像表示領域1010の任意の部位を選択すると、その画像座標をマーカの座標とする新規のマーカを設定し、データリストに追加する。さらに当該マーカを選択状態にする。
【0072】
マーカ識別情報選択メニュー1183は、本装置の使用者がメニューの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ識別情報選択メニュー1183が選択されると、データリストに蓄積されているマーカ識別情報を一覧表示する。本実施形態では、マーカ識別情報として、マーカの名称を示す文字列を用いている。本装置の使用者は、マウス等のポインティングデバイスを用いて、一覧表示されたマーカ識別情報の中から一つを選択する。マーカ識別情報が選択されると、指示部115はデータ同定コマンドを発行し、選択した識別情報、選択状態になっているマーカ情報とをデータ管理部111に対して、データ同定要求と同時に送出する。
【0073】
マーカ削除ボタン1184は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ削除ボタン1184が押されると、現在選択状態になっているマーカをデータリストから削除する。
【0074】
誤差表示領域1190には、較正情報算出部113が較正情報を算出した際の較正誤差を表示する。本実施形態においては、データリストの各マーカに対する誤差と、全データの誤差の平均の2種類の較正誤差を表示している。
【0075】
本装置の使用者は、各マーカに対する較正誤差を確認することによって、較正情報算出部113が算出した較正情報の精度が十分でない場合、または較正情報の算出において解が収束しないような場合に、その原因となっているマーカを特定することが容易となる。
【0076】
また、全データの誤差の平均を確認することによって、選択データ無効化/有効化ボタンを用いて、較正情報の算出に用いるデータの有効もしくは無効にした結果を、評価することができる。
【0077】
データ取得ダイアログ終了ボタン1195は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。データ取得ダイアログ終了ボタン1195が選択されると、データ取得ダイアログを閉じる。データ取得ダイアログを閉じても、データリストの内容は保持される。
【0078】
図10には、初期値設定ダイアログ1200の例を示している。初期値設定ダイアログはパラメータ種選択タブ1210、パラメータ設定領域1220、標準設定視点ボタン1230、トランスミッタ観測ボタン1240、リセットボタン1250及び初期値設定ダイアログ終了ボタン1260から構成される。
【0079】
パラメータ種選択タブ1210は、本装置の使用者がタブの領域をマウス等のポインティングデバイスで選択することで、初期値を設定する較正情報の種別を選択する。タブの領域には”Local Transform”と”World Transform”の2種類が存在し、”Local Transform”の領域を選択すると、較正情報モードを、センサの計測値を撮像部の位置姿勢に変換するための第1のパラメータを求める「撮像装置−測点間較正情報モード」に設定する。”World Transform”の領域を選択すると、較正情報モードを「世界座標系−センサ座標系間較正情報モード」に設定する。
【0080】
パラメータ設定領域1220では、本装置の使用者が、ボタン、スライダ、スピンボタン、キーボードからの数値入力などの手段で、現在の較正情報モードに対応する較正情報のパラメータ設定を行うことができる。本実施形態では、以下の方法を単独または複数を併用することによって較正情報のパラメータの設定を行っている。
【0081】
第1に、位置と回転軸を定義するベクトルおよびその軸周りの回転角を指定する。
第2に、位置とオイラー角を指定する。
第3に、撮像装置302から見たレシーバ301のX、Y、Z軸の各軸周りの回転角およびレシーバ301から見た撮像装置302のX、Y、Z軸の各軸周りの回転角を指定する。
較正情報のパラメータの設定が行われると、指示部115は較正情報変更コマンドを発行し、較正情報保持部114へ較正情報変更要求を送出する。
【0082】
標準設定指定ボタン1230は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。標準設定指定ボタン1230が指定されると、指示部115は較正情報読み込みコマンドを発行し、較正情報保持部114へ較正情報読み込み要求を送出する。
【0083】
トランスミッタ観測ボタン1240は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。
トランスミッタ観測ボタン1240を選択することにより、センサ計測値を利用してLocal Transformの大まかな値を自動算出することができる。
【0084】
まず、図14(a)に示すように撮影画像のほぼ中心にセンサのトランスミッタが撮像されるようにカメラの位置姿勢を調整した後に,トランスミッタ観測ボタン1240をクリックする。その時点のセンサ計測値に基づいてLocal Transformの概略値が算出される。
【0085】
トランスミッタ観測ボタン1240がクリックされると、指示部115は較正情報算出コマンドを発行し、較正情報算出部113に較正情報算出要求を送出する。このとき、較正情報算出部113は、データ管理部111が管理するデータリストのうち、世界座標、画像座標、識別情報を用いずに、現在のセンサ計測値のみを用いることによって、撮像装置302とレシーバ301間の較正情報(Local Transform)を算出する。
【0086】
算出された概略値を用いてトランスミッタの位置姿勢の理論値を求め、理論値に応じてトランスミッタの仮想画像を生成するとともに、撮影画像上の理論値に応じた画像位置にトランスミッタの仮想画像を重畳し表示する(図14(b))。
【0087】
トランスミッタ観測ボタン1240を用いて設定したLocal Transformは撮像装置のZ軸方向の回転角が不定となるので、azimuth (z-axis)スライダーバー(パラメータ設定領域1220)でこのパラメータ(Local TransformのZ軸の姿勢成分)を大まかに調整する。そして、その調整結果に応じてトランスミッタの仮想画像をリアルタイムに更新する(図14(c))。なお、他のパラメータを調整することも可能である。
【0088】
リセットボタン1250は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。リセットボタン1250が指定されると、指示部115はリセットコマンドを発行し、較正情報保持部114にリセット要求を送出する。
【0089】
初期値設定ダイアログ終了ボタン1260は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。初期値設定ダイアログ終了ボタン1260が選択されると、初期値設定ダイアログを閉じる。初期値設定ダイアログを閉じても、較正情報は保持される。
【0090】
このように、トランスミッタ観測ボタン1240を選択することにより、センサ計測値を利用してLocal Transformの大まかな値をトランスミッタを用いて、特別な準備を必要とせず、しかも簡単に自動算出することができる。トランスミッタは本システムにおいて必要な構成であるので、ユーザは本処理を行うために特別な処理を行う必要がない。
【0091】
図11、図12には、マーカ検出パラメータ設定ダイアログ1300の例を示している。マーカ検出パラメータ設定ダイアログ1300はパラメータ種選択タブ1310、マーカ検出パラメータ設定領域1320、マーカ検出結果表示ボタン1330、マーカ検出パラメータリセットボタン1340、マーカ検出ボタン1350、マーカ同定手段切替ボタン1360、マーカ同定パラメータ設定領域1370、マーカ同定パラメータリセットボタン1380及びマーカ検出パラメータ設定ダイアログ終了ボタン1390から構成される。
【0092】
パラメータ種選択タブ1310は、本装置の使用者がタブの領域をマウス等のポインティングデバイスで選択することで、マーカ検出パラメータ設定画面またはマーカ同定パラメータ設定画面のいずれかを選択し、表示させる。
【0093】
マーカ検出パラメータ設定領域1320は、パラメータ種選択タブ1310において、マーカ検出パラメータ設定画面が選択されているときに表示される。マーカ検出パラメータ設定領域1320では、本装置の使用者が、スライダや数値入力ボックスなどの手段を用いて、マーカを検出する色のしきい値およびマーカとして認識する色領域の画素数の最小値を設定する。色のしきい値は、ある画素の各色成分の値が当該しきい値を上回っている場合に、その画素をマーカ候補とみなすために用いられる。
【0094】
本実施形態では赤、緑、青について各色の輝度値を示すR、G、Bについてしきい値を設定しているが、例えば画素のY、Cr、Cb成分にしきい値を設定するようにしてもよい。色領域の画素数の最小値については、色領域の画素数が設定した最小値よりも小さい場合には、当該領域をマーカとして認識しないようにするために用いられる。本実施形態においては、色領域の画素数の最小値のみを定めるようにしているが、最大値についても同時に定め、マーカ候補とみなす画素数がある範囲内に納まるようにしてもよい。
【0095】
マーカ検出結果表示ボタン1330は、パラメータ種選択タブ1310において、マーカ検出パラメータ設定画面が選択されているときに表示される。マーカ検出結果表示ボタン1330は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ検出結果表示ボタン1330が指定されると、現実画像表示モード色抽出結果画像表示モードとを切り替える。現実画像表示モードでは、画像表示領域1010に現実画像を表示する。色抽出結果画像表示モードでは、画像表示領域1010に色抽出結果画像を表示する。図13に示される色抽出結果画像では、実写画像中で抽出された色領域のみを表示している。
【0096】
マーカ検出パラメータリセットボタン1340は、パラメータ種選択タブ1310において、マーカ検出パラメータ設定画面が選択されているときに表示される。マーカ検出パラメータリセットボタン1340は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ検出パラメータリセットボタン1340が指定されると、現在保持しているマーカ検出パラメータを破棄し、本装置を起動したときに設定されるマーカ検出パラメータのデフォルト値を現在のマーカ検出パラメータに設定する。
【0097】
マーカ検出停止ボタン1350は、パラメータ種選択タブ1310において、マーカ検出パラメータ設定画面が選択されているときに表示される。マーカ検出停止ボタン1350は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ検出停止ボタン1350が選択されると、マーカ検出処理を停止する。
【0098】
マーカ同定手段切替ボタン1360は、パラメータ種選択タブ1310において、マーカ同定パラメータ設定画面が選択されているときに表示される。マーカ同定手段切替ボタン1360は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ同定手段切替ボタン1360が選択されると、センサ計測値を利用したマーカ同定機能の有効化・無効化を切り替える。前記マーカ同定機能は、現在のセンサ計測値および較正情報から、検出されたマーカの画像座標と、世界座標保持部110が保持するマーカの世界座標を撮像装置302の撮像面に投影した座標との距離を算出し、前記距離の最小値が最大許容値以下である場合には、自動的にマーカの同定を行う機能である。
【0099】
マーカ同定パラメータ設定領域1370は、パラメータ種選択タブ1310において、マーカ同定パラメータ設定画面が選択されているときに表示される。マーカ同定パラメータ設定領域1370では、本装置の使用者が、スライダや数値入力ボックスなどの手段を用いて、マーカを同定するための最大許容距離を設定する。
【0100】
マーカ同定パラメータリセットボタン1380は、パラメータ種選択タブ1310において、マーカ同定パラメータ設定画面が選択されているときに表示される。マーカ同定パラメータリセットボタン1380は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。マーカ同定パラメータリセットボタン1380が指定されると、現在保持しているマーカ同定パラメータを破棄し、本装置を起動したときに設定されるマーカ同定パラメータのデフォルト値を現在のマーカ同定パラメータに設定する。
【0101】
検出パラメータ設定ダイアログ終了ボタン1390は、本装置の使用者がボタンの領域をマウス等のポインティングデバイスで選択することで、本装置に指示を与える。検出おパラメータ設定ダイアログ終了ボタン1390が選択されると、検出パラメータ設定ダイアログ1390を閉じる。検出パラメータ設定ダイアログを閉じても、マーカ検出パラメータおよびマーカ同定パラメータは保持される。
【0102】
図15は、本実施形態のセンサ較正装置が行う処理のフローチャートである。なお、同フローチャートに従った処理を実現するプログラムコードは、本実施形態の装置内のディスク装置105やRAM102などの記憶装置内に格納され、CPU101により読み出され、実行される。
【0103】
ステップS000において、本実施形態のセンサ較正装置を起動する。
ステップS100において、指示部115は、本装置の使用者からデータ取得コマンドが入力されたか否かの判定を行う。データ取得コマンドが入力されている場合には、ステップS110へと処理を移行させる。
ステップS110において、データ管理部111は、センサ制御部500から現在のレシーバ301の位置姿勢の計測値を入力する。
【0104】
ステップS120において、データ管理部111は、撮像装置302が撮像した撮像画像上におけるマーカの識別情報及び画像座標を、画像座標取得部112から入力する。この入力は、当該撮像画像上の複数のマーカが撮像されている場合には、それら各々のマーカに対して行われる。
ステップS130において、データ管理部111は、検出されたマーカ毎に、入力したデータをデータリストに追加する。
【0105】
ステップS200において、指示部115は、本装置の使用者からデータリストの編集操作が入力されたか否かの判定を行う。データリストの編集操作が入力されている場合には、ステップS210の処理に移行させる。
【0106】
ステップS210において、指示部115は、本装置の使用者から入力したデータリストの編集操作に対応したコマンドを発行し、データリストの編集を行う。例えばデータリストの編集には、データリストの要素を選択する、データリストから選択要素を削除する、データリストに新規のマーカを追加する、データリストから既存のマーカを削除する、データリストの既存のマーカに識別情報を与え同定するという操作が含まれる。
【0107】
ステップS300では、較正情報算出部113によって、現在までに取得されたデータリストが、較正情報を算出するに足るだけの情報を有しているかどうかの判定が行われる。データリストが条件を満たしていない場合には、再びステップS100へと戻り、データ取得コマンドの入力を待つ。一方、データリストが較正情報算出の条件を満たしている場合には、ステップS400へと処理を移行させる。較正情報算出の条件としては、例えば、異なる3点以上のマーカに関するデータが得られていること、複数の視点位置においてデータの取得が行われていること、及びデータ総数が6以上であること、を条件とする。ただし、入力データの多様性が増すほどに導出される較正情報の精度は向上するので、より多くのデータを要求するように条件を設定してもよい。
【0108】
ステップS400では、本装置の使用者から較正情報算出コマンドが入力されたか否かの判定を行う。較正情報算出コマンドが入力されている場合には、ステップS410へと処理を移行させ、入力されていない場合には、再びステップS100へと戻り、データ取得コマンドの入力を待つ。
【0109】
ステップS410では、較正情報算出部113によって、較正情報の算出処理が行われる。
ステップS500では、指示部115は、本装置の使用者から較正情報の編集操作が入力されたか否かの判定を行う。較正情報の編集操作が入力されている場合には、ステップS510の処理に移行させる。
【0110】
ステップS510において、指示部115は、本装置の使用者から入力した較正情報の編集操作に対応したコマンドを発行し、較正情報の編集を行う。例えば較正情報の編集には、較正情報のパラメータの変更、較正情報の読み込み、較正情報のリセットという操作が含まれる。
【0111】
ステップS600では、指示部115は、本装置の使用者から較正情報の保存操作が入力されたか否かの判定を行う。較正情報の保存操作が入力されている場合には、ステップS610の処理に移行させる。
ステップS610では、指示部115は、較正情報保持部114にファイル保存要求を送出し、現在保持している較正情報をディスク装置105に出力する。
【0112】
ステップS700では、指示部115は、本装置の使用者から、本装置の終了操作が入力されたか否かの判定を行う。較正情報の終了操作が入力されている場合には、ステップS800の処理に移行させる。入力されていない場合には、再びステップS100へ戻る。
ステップS800では、本装置を終了するための処理を行う。
【0113】
図16は、本実施形態のセンサ較正装置の使用者が、本装置を用いてセンサの較正を行うための標準的な操作のフローチャートである。
ステップS1000では、本装置の使用者は、本実施形態のセンサ較正装置を起動する。
【0114】
ステップS1100では、本装置の使用者は、撮像装置302を用いてマーカを撮像する。本装置の使用者は、本装置の画像座標取得部112がマーカの画像座標および識別情報が正しく特定しているか否かを確認する。正しく特定できている場合にはステップS1200へ進み、特定できてない場合には、ステップS1110へ進む。
【0115】
ステップS1110では、本装置の使用者は、例えばマーカ検出パラメータ設定ダイアログ1300を用いて、指示部115にマーカ検出パラメータおよびマーカ同定パラメータの調整を行うための指示を与える。
ステップS1200では、本装置の使用者は、例えばデータ取得ボタン1120を用いて、指示部115にデータ取得コマンドを発行させる。
【0116】
ステップS1300では、本装置の使用者は、取得したデータリストの各データが良好であるか否かを確認する。データが良好である場合にはステップS1400へ進み、良好でない場合には、状況に応じて、ステップS1310へ進む、またはステップS1100へ戻る。
【0117】
ステップS1310では、本装置の使用者は、例えばデータ取得ダイアログ1100を用いて、指示部115にデータリストの編集作業を行うための指示を与える。
ステップS1400では、本装置の使用者は、例えば較正情報算出ボタン1140を用いて、指示部115に較正情報算出コマンドを発行させる。
【0118】
ステップS1500では、本装置の使用者は、較正情報算出部113が、正しく較正情報を算出したか否かを確認する。正しく算出された場合にはステップS1600へ進み、算出されていない場合には、ステップS1100へ戻る。
ステップS1600では、本装置の使用者は、較正情報算出部113が算出した較正情報が良好であるか否かを確認する。較正情報が良好である場合には、ステップS1700へ進み、良好でない場合には、状況に応じてステップS1610へ進むか、ステップS1100へ戻る。
【0119】
ステップS1610では、本装置の使用者は、例えば初期値設定ダイアログ1200を用いて、指示部115に較正情報の編集を行うための指示を与える。
ステップS1700では、本装置の使用者は、例えば保存サブメニュー1050を用いて、指示部115にファイル保存コマンドを発行させる。
ステップS1800では、本装置の使用者は、例えば終了サブメニュー1060を用いて、本装置を終了させる。
【0120】
<第2の実施形態>
図17は本発明によるセンサ較正装置の第2の実施形態における概略構成を示すブロック図である。第1の実施形態では表示部200は頭部装着部300の外部に設けられていた。第2の実施形態では、表示部200は頭部装着部300に含まれる。このような構成は例えばHMDのように、本装置の使用者が頭部に装着することができる表示装置を表示部200として用いることよって実現される。第2の実施形態では、頭部に装着可能な表示装置を用いることにより、本装置の使用者が、複合現実感を提示する画像表示装置を使用する条件と同一の条件下で較正を行うことが可能となる。
【0121】
<第3の実施形態>
図18は本発明によるセンサ較正装置の第3の実施形態における概略構成を示すブロック図である。第3の実施形態では、表示部200は第1の実施形態における、頭部装着部300の外部に備えられる表示装置および、第2の実施形態における、本装置の使用者が頭部に装着する表示装置の両方から構成される。例えばHMDは、CRTモニタや液晶モニタといった通常のディスプレイ装置と比較して、一般的に解像度が低い。このような表示装置を用いた場合、本装置の使用者は、第1の実施形態で説明したGUIを用いて本装置に指示を与えることが困難となることが考えられる。このような場合、例えば本装置を二人で使用することが考えられる。
【0122】
すなわち、本装置の第一の使用者が見る、頭部装着部300の外部に備えられる表示装置(第1の実施形態における表示部)には、第1の実施形態で説明したGUIを表示し、本装置の第二の使用者が頭部に装着する表示装置(第2の実施形態における表示部)には、第1の実施形態で説明したGUIを除いた、現実画像および現実画像に各種情報やCGを重畳した合成画像、マーカの色抽出画像などを表示する。本装置の操作は第一の使用者が行い、撮像装置302およびレシーバ301の位置姿勢の調整は第二の使用者が行うようにすることで、効率的に較正作業を行うことが可能である。
【0123】
【他の実施形態】
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0124】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0125】
本発明を上記記憶媒体に適用する場合、その記憶媒体には先に説明した(図15に示す)フローチャートに対応するプログラムコードが格納されることになる。
【0126】
【発明の効果】
以上説明したように、本発明によれば、センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を、より簡便に、かつ特別な較正器具を用いることなく、高精度に求めることができる。
【0127】
特に、ユーザが、取得された複数の撮影画像から較正情報を求める際に使用する撮影画像を選択することが可能なので、較正情報を求める際に不適切な撮影画像をはずすことができる。
【0128】
また、請求項4の発明によれば、検出されたマーカのそれぞれについて誤差を表示するので、不適切な撮影画像を適切に選択することができる。
【図面の簡単な説明】
【図1】本発明の第1の実施形態に係る較正装置の概略構成を説明するブロック図である。
【図2】第1の実施形態における較正装置の機能構成を説明するブロック図である。
【図3】第1の実施形態に係る較正装置が呈示するGUIについて説明する図である。
【図4】第1の実施形態に係る較正装置が呈示するGUIのうち、ファイルメニューについて説明する図である。
【図5】第1の実施形態に係る較正装置が呈示するGUIで、現実画像にマーカの画像座標を示す印および付加情報を重畳して表示する様子を説明する図である。
【図6】第1の実施形態に係る較正装置が呈示するGUIで、マーカの同定が行われていない場合に、現実画像にマーカの画像座標を示す印および付加情報を重畳して表示する様子を説明する図である。
【図7】第1の実施形態に係る較正装置が呈示するGUIで、マーカの世界座標をCGで描画し、現実画像に重畳して表示する様子を説明する図である。
【図8】第1の実施形態に係る較正装置が呈示するGUIのうち、データ取得ダイアログについて説明する図である。
【図9】図8のダイアログにおける選択データ操作領域について説明する図である。
【図10】第1の実施形態に係る較正装置が呈示するGUIのうち、初期値設定ダイアログについて説明する図である。
【図11】第1の実施形態にる較正装置が呈示するGUIのうち、検出パラメータ設定ダイアログについて説明する図である。
【図12】第1の実施形態にる較正装置が呈示するGUIのうち、検出パラメータ設定ダイアログについて説明する図である。
【図13】第1の実施形態にる較正装置において、図3のGUIの画像表示領域に色抽出結果画像を表示する様子を説明する図である。
【図14】第1の実施形態にる較正装置において、センサ計測値を利用してLocal Transformの大まかな値を自動算出する手順を説明する図である。
【図15】第1の実施形態に係るセンサ較正装置の処理手順を示すフローチャートである。
【図16】第1の実施形態において、センサ較正装置の使用者がセンサ較正装置を使用する手順を示すフローチャートである。
【図17】第2の実施形態に係るセンサ較正装置の概略構成を説明するブロック図である。
【図18】第3の実施形態に係るセンサ較正装置の概略構成を説明するブロック図である。
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for obtaining calibration information for converting a position and orientation of an imaging unit measured by a sensor into a position and orientation in a world coordinate system.
[0002]
[Prior art]
In recent years, research on mixed reality has been actively conducted for the purpose of seamless connection between the real space and the virtual space. An image display device that presents mixed reality superimposes an image of a virtual space (for example, a virtual object or character information drawn by computer graphics) on an image of a real space photographed by an imaging device such as a video camera. Realized by displaying.
[0003]
Applications of such image display devices include virtual reality, such as surgical support that superimposes the state of the body on the patient's body surface, and mixed reality games that fight against virtual enemies floating in real space. Different new fields are expected.
[0004]
A common requirement for these applications is how to accurately align the real space and the virtual space, and many efforts have been made in the past.
[0005]
The problem of alignment in mixed reality results in the problem of obtaining the three-dimensional position and orientation of the imaging device in the world coordinate system (hereinafter simply referred to as the world coordinate system) set in the real space. As a method for solving these problems, a three-dimensional position and orientation sensor such as a magnetic sensor, an optical sensor, or an ultrasonic sensor is generally used.
[0006]
In general, the output value output by the three-dimensional position and orientation sensor is the position and orientation of the measurement point in the sensor coordinate system uniquely defined by the sensor, and not the position and orientation of the imaging device in the world coordinate system. For example, taking the magnetic sensor FASTRAK of Polhemus as an example, the position and orientation of the receiver in the coordinate system defined by the transmitter is obtained as the sensor output. Therefore, the sensor output value cannot be used as it is as the position and orientation of the imaging apparatus in the world coordinate system, and some calibration is required. Specifically, coordinate conversion for converting the position and orientation of the measurement point into the position and orientation of the imaging apparatus and coordinate conversion for converting the position and orientation in the sensor coordinate system into the position and orientation in the world coordinate system are required. In the present specification, information for converting the sensor output value into the position and orientation of the imaging apparatus in the world coordinate system is referred to as calibration information.
[0007]
In order to accurately align the real space and the virtual space, it is necessary to set accurate calibration information by some means. Only when accurate calibration information is given, display of a virtual image accurately aligned with the real space is realized.
[0008]
The calibration information may be stored in any form as long as the information can define the position and orientation of the other coordinate system as viewed from one coordinate system. For example, it may be a 4-by-4 viewing transformation matrix that represents transformation from one coordinate system to the other. Alternatively, the position and orientation may be expressed by a total of six parameters, ie, three parameters describing the position and three parameters expressing the orientation by Euler angles. The posture may be expressed by four parameters, a ternary vector defining the rotation axis and a rotation angle around the axis, or the rotation angle may be expressed by the magnitude of the vector defining the rotation axis. It may be expressed by three parameters.
[0009]
Moreover, you may express with the parameter (For example, the position and attitude | position of the world coordinate system in a sensor coordinate system) showing those inverse transformations. However, in any case, the position and orientation of the object in the three-dimensional space have only a total of 6 degrees of freedom, that is, 3 degrees of freedom in the position and 3 degrees of freedom in the orientation. The number of parameters is a total of 12 parameters including 6 parameters necessary for conversion from the world coordinate system to the sensor coordinate system and 6 parameters necessary for conversion from the position and orientation of the measurement point to the position and orientation of the imaging apparatus.
[0010]
As one of known methods for setting calibration information, a user or an operator interactively changes the 12 parameters (or 12 or more equivalent parameters) through an input means (not shown) to accurately There is a method in which adjustment is performed by trial and error until alignment is achieved.
[0011]
Further, according to the calibration method proposed in Patent Document 1, either the conversion parameter from the position and orientation of the measuring point to the position and orientation of the imaging device or the conversion parameter from the world coordinate system to the sensor coordinate system is somehow used. If it is obtained, the remaining unknown parameters can be easily derived by using the virtual image generated based on the position and orientation information fixed to a certain value as the visual cue.
[0012]
[Patent Document 1]
JP 2002-229730 A
[0013]
[Problems to be solved by the invention]
However, in the former method, it is necessary to adjust twelve unknown parameters at the same time, so that the adjustment takes a considerable time, and accurate calibration information is not always obtained. The latter method also has a problem that it is necessary to perform a trial and error work or a work using some kind of calibration instrument when deriving a known parameter.
[0014]
The present invention has been made in view of the above problems, and calibration information for converting the position and orientation of the imaging unit measured by the sensor into the position and orientation in the world coordinate system can be more simply and specially calibrated. It is an object of the present invention to be able to obtain with high accuracy without using.
[0015]
[Means for Solving the Problems]
In order to achieve the object of the present invention, for example, an information processing method of the present invention comprises the following arrangement.
That is, an information processing method for obtaining calibration information for converting the position and orientation of the imaging unit measured by the sensor into a position and orientation in the world coordinate system,
When photographing a plurality of captured images obtained by photographing a real space in which a plurality of markers having known world coordinates are arranged at a plurality of positions and orientations using the imaging unit, and each of the photographed images Get the measured value of the sensor of
Detecting the image coordinates of the marker included in the captured image,
In response to a user instruction, select a captured image to be used when calculating the calibration information from the acquired captured images,
The calibration information is calculated using the measured value of the sensor of the selected captured image, the image coordinates of the detected marker of the selected captured image, and the world coordinates of the detected marker. ,
The image obtained from the image coordinates of the marker detected from the captured image, the identification information of the detected marker, and the world coordinates of the detected marker using the calculated calibration information. Combine and display the coordinates
It is characterized by that.
[0016]
In order to achieve the object of the present invention, for example, an information processing apparatus of the present invention comprises the following arrangement.
That is, an information processing apparatus for obtaining calibration information for converting the position and orientation of the imaging unit measured by the sensor into a position and orientation in the world coordinate system,
When photographing a plurality of captured images obtained by photographing a real space in which a plurality of markers having known world coordinates are arranged at a plurality of positions and orientations using the imaging unit, and each of the photographed images Input means for inputting the measured value of the sensor of
Detecting means for detecting image coordinates of a marker included in the captured image;
In accordance with a user instruction, a selection unit that selects a captured image to be used when calculating the calibration information from the acquired plurality of captured images;
The calibration information is calculated using the measured value of the sensor of the selected captured image, the image coordinates of the detected marker of the selected captured image, and the world coordinates of the detected marker. A calculation means;
The image obtained from the image coordinates of the marker detected from the captured image, the identification information of the detected marker, and the world coordinates of the detected marker using the calculated calibration information. Means for combining and displaying coordinates; and
It is characterized by providing.
[0019]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, the present invention will be described in detail based on preferred embodiments with reference to the accompanying drawings.
<First Embodiment>
The sensor calibration apparatus according to the present embodiment obtains parameters for converting the position and orientation of the imaging unit measured by the sensor into a position and orientation in the world coordinate system.
[0020]
Therefore, the sensor calibration device of the present embodiment is
(1) World coordinates of four or more markers that are not on the same straight line,
(2) Marker image coordinates on images taken at multiple positions and orientations,
(3) Sensor measurement value when the image of (2) is taken,
(4) Initial value (rough value) of sensor placement information,
The parameter is obtained using
[0021]
Among these, the world coordinates of the marker (1) are data to be prepared as known information in the calibration preparation stage. As for the markers (landmarks, feature points), it is necessary that at least three or more points with known world coordinates are arranged in the real space that is to be displayed by the image display device. Here, each marker is a marker that can detect the image coordinates of the projected image on the captured image and can identify which marker is, for example, each marker having a different color. And The world coordinate system has a predetermined point as an origin, and further takes X, Y, and Z axes in directions orthogonal to the origin. It is assumed that the coordinates of the three markers are already known in this coordinate system. In other words, the distances from the origin in the X, Y, and Z directions are measured in advance for the above three markers.
[0022]
(2) and (3) are data acquired during calibration. The initial value of the sensor arrangement information in (4) is not necessarily necessary data, but if it is not set, an appropriate solution may not be obtained.
[0023]
Using these data as input, calculate the theoretical value of the image coordinates of each marker based on the world coordinates, sensor measurement values, and sensor placement information of each marker, and calibration information that minimizes the sum of the errors from the actual measurement values. (Parameter) is calculated.
Note that the parameters may be obtained using other methods using other information.
[0024]
FIG. 1 is a block diagram showing a schematic configuration in the first embodiment of the sensor calibration apparatus according to the present embodiment.
In FIG. 1, reference numeral 100 denotes an arithmetic processing unit, which is composed of a computer such as a computer. The arithmetic processing unit 100 includes a CPU 101, a RAM 102, an image generation device 103, a system bus 104, a disk device 105, an input device 106, and an image capture device 107 therein.
[0025]
The CPU 101 controls the calibration process based on the calibration program. The CPU 101 is connected to the system bus 104, and can communicate with the RAM 102, the image generation device 103, the disk device 105, the input device 106, and the image capture device 107.
[0026]
The RAM 102 is realized by a main storage device such as a memory. The RAM 102 temporarily holds the program code of the calibration program, the control information of the program, the world coordinates and image coordinates of the marker, the calibration information calculated by the apparatus, and the like via the system bus 104.
[0027]
The image generation device 103 is realized by a device such as a graphics card. Image information generated by a program executed on the CPU 101 is sent to the display unit 200 via the system bus 4.
The system bus 104 is a communication path to which the devices constituting the arithmetic processing unit 100 are connected and the devices communicate with each other.
[0028]
The disk device 105 is realized by an auxiliary storage device such as a hard disk. The disk device 105 holds the program code of the calibration program, the control information of the program, the world coordinates and image coordinates of the marker, the calibration information calculated by this device, and the like.
[0029]
The input device 106 is realized by various interface devices. A signal from a device connected to the outside of the arithmetic processing unit 100 is input as data, and the data is written to the RAM 102 via the system bus 104.
[0030]
The image capturing device 107 is realized by a device such as a capture card. An image sent from the imaging device 302 is input, and image data is written into the RAM 102 via the system bus 104.
[0031]
A display unit 200 is realized by a display device such as a CRT monitor or a liquid crystal monitor. It is used to display a video signal sent from the image generation apparatus 103 and present the result to the user of the apparatus.
Reference numeral 300 denotes a head-mounted unit, which is a target to be calibrated by this apparatus. The head mounting unit 300 includes a receiver 301 and an imaging device 302.
[0032]
For example, in the case of a magnetic sensor, the receiver 301 is realized by a device that measures the magnetic field generated by the transmitter 600. The value of the magnetic field measured by the receiver 301 is sent to the sensor control device 500 and converted into a parameter representing a three-dimensional position and orientation by the sensor control unit 500.
The imaging device 302 is realized by an imaging device such as a CCD camera. A video signal captured by the imaging device 302 is sent to the image capturing device 107.
[0033]
The operation input unit 400 is realized by an input device for controlling the arithmetic processing unit 100 such as a keyboard and a mouse. The operation input unit 400 sends an operation signal to the input device 106. A user of the apparatus (not shown) gives an instruction to control the apparatus by operating the operation input unit 400.
[0034]
For example, in the case of a magnetic sensor, the sensor control unit 500 controls the receiver 301 and the transmitter 500 and calculates the three-dimensional position and orientation information of the receiver 301 based on information obtained from the receiver 301. The three-dimensional position and orientation information calculated by the sensor control unit 500 is sent to the input device 106.
For example, in the case of a magnetic sensor, the transmitter 600 generates a magnetic field in order for the sensor control unit 500 to calculate the three-dimensional position and orientation of the receiver 301.
[0035]
In this embodiment, although the case where the magnetic sensor was used was demonstrated, the sensor to be used is not restricted to a magnetic sensor. For example, an optical sensor or an ultrasonic sensor may be used, and the type of sensor is not limited as long as it can measure a three-dimensional position and posture. In this case, the receiver 301 is the measurement target of the sensor, and the transmitter 600 is the sensor coordinate system origin when the sensor control unit 500 calculates the three-dimensional position and orientation of the receiver 301.
[0036]
FIG. 2 is a block diagram showing a functional configuration of the calibration apparatus according to the present embodiment. The processing of each unit in FIG. 2 is performed in the arithmetic processing unit 100 in FIG.
The world coordinate holding unit 110 holds coordinate data of each marker in the world coordinate system, and outputs this according to a request from the data management unit 112. The world coordinate holding unit 110 holds the coordinate data of each marker in association with data of information unique to each marker (marker color information and identification information).
[0037]
When receiving a data acquisition request from the instruction unit 115, the data management unit 111 inputs the image coordinates and identification information of the marker from the image coordinate acquisition unit 112, and the world coordinates of the marker corresponding to the identification information from the world coordinate holding unit 110 , And a set of image coordinates, world coordinates, and identification information is added to the data list and held. When only the image coordinates of the marker are input from the image coordinate acquisition unit 112 and no identification information is input, only the image coordinates are added to the data list. When receiving a data deletion request from the instruction unit 115, the data is deleted from the data list. Also, when a data identification request is received from the instruction unit 115, the combination of the world coordinates, image coordinates, and identification information of the marker is changed, and the data in the data list is changed. Further, the generated data list is output to the calibration information calculation unit 113 in accordance with a request from the calibration information calculation unit 113.
[0038]
The image coordinate acquisition unit 112 captures the coordinates and identification information of the marker captured in the image (hereinafter referred to as a real image) captured by the image capturing device 302 in FIG. 1 and acquired by the image capturing device 107 in FIG. And outputs these pieces of information to the data management unit 111 according to a request from the data management unit 111.
[0039]
When the calibration information calculation unit 113 receives a calibration information calculation instruction from the instruction unit 115, the calibration information calculation unit 113 inputs a data list from the data management unit 112, calculates calibration information based on the data list, and stores the calculated calibration information in the calibration information holding unit 114. To send.
[0040]
The calibration information holding unit 114 holds the calibration information calculated by the calibration information calculation unit 113, and outputs or changes the held calibration information according to a request from the instruction unit 115, and saves it in a file. When an output request is received from the instruction unit 115, calibration information is output. When a calibration information change request is received from the instruction unit 115, the value of the held calibration information is changed. When a file save request is received from the instruction unit 115, a file is created in the disk device 105, and calibration information is saved in the file. When a file read request is received from the instruction unit 115, the currently held calibration information is discarded, the file instructed from the disk device 105 is read, and the read value is newly set as the current calibration information. When a reset request is received from the instruction unit 115, the currently held calibration information is discarded, and the default value of the calibration information held when the apparatus is activated is newly set as the current calibration information. In response to a request from the calibration information calculation unit 113, the calibration information held by the calibration information holding unit 114 is sent to the calibration information calculation unit 113. The calibration information sent to the calibration information calculation unit 113 is used as an initial value when the calibration information calculation unit 113 calculates the calibration information.
[0041]
The instruction unit 115 issues a data acquisition request when a data acquisition command is input from a user of the apparatus, a data deletion request when a data deletion command is input, and a data identification request when a data identification command is input. Each is sent to the data management unit 111. When a calibration information calculation command is input, a calibration information calculation request is sent to the calibration information calculation unit 113.
[0042]
In the present embodiment, when the user of the apparatus gives an instruction to the instruction unit 115, the user uses the GUI shown in FIG. 3 includes a main window 1000, an image display area 1010, a calibration information display area 1020, operation buttons 1030, and a file menu 1040. As shown in FIG. 4, the file menu 1040 includes a save submenu 1050 and an end submenu 1060.
[0043]
A real image is displayed in the image display area 1010. Further, the mark indicating the coordinate position of the marker specified by the image coordinate acquisition unit 112 and the identification information are also displayed superimposed on the real image.
[0044]
FIG. 5 shows a state in which the mark indicating the coordinate position of the marker specified by the image coordinate acquisition unit 112 and the identification information are displayed in the image display area 1010 superimposed on the real image. In FIG. 5, an ellipse indicates a marker photographed in the real image. In addition, the image coordinates of the marker specified by the image coordinate acquisition unit 112 are indicated by x marks surrounded by a rectangle. Further, the marker identification information specified by the image coordinate acquisition unit 112 is superimposed and displayed with text representing the marker name.
[0045]
By superimposing the mark on the position of the image coordinate of the marker, the user of the present apparatus can confirm the coordinates specified by the image coordinate acquisition unit 112 at a glance.
Further, by displaying the marker identification information in a superimposed manner, the user of this apparatus can check at a glance which marker the marker specified by the image coordinate acquisition unit 112 is.
[0046]
Here, an example is shown in which x marks surrounded by a rectangle are superimposed in order to indicate the image coordinates of the marker, but what is superimposed is not limited to the x marks surrounded by a rectangle. Various symbols such as ○, ×, □, and arrows, icons, and the like may be used, and any symbol can be used as long as the image coordinates of the marker specified by the image coordinate acquisition unit 112 can be visually recognized.
[0047]
Moreover, although the example which superimposed the text showing a name was shown as marker identification information here, the identification information to superimpose is not restricted only to a text. The identification may be performed using an icon or an image, or may be performed by changing the color of text, icon, image, or the color of the marker itself. Any device can be used as long as the user of the apparatus can confirm the correspondence between the marker photographed in the real image and the actual marker.
[0048]
In FIG. 6, although the image coordinate acquisition unit 112 specifies the image coordinates of the marker, the identification information is not specified, and the data management unit 111 uses the marker world coordinates, the image coordinates, and the identification information. The display example of the image display area 1010 in the case where no set is created is shown. In the data management unit 111, the association of the marker with the world coordinates, the image coordinates, and the identification information and creation of the set is hereinafter referred to as “identifying the marker”.
[0049]
In FIG. 6, the x mark is superimposed on the real image on the image coordinates of the marker. Also, the text “?” Is displayed superimposed on the real image. In the image display area 1010, when the identification of the marker is performed, the x mark surrounded by the rectangle and the identification information of the marker are superimposed and displayed, and when the identification of the marker is not performed, the display is performed. Try to switch methods.
[0050]
There is no need to switch the entire image display area 1010 for the display method when the marker is identified or not, and for each marker photographed in the image display area 1010, it is independent for each marker. It is possible to switch.
[0051]
In FIG. 7, the coordinates in the world coordinate system of the marker held by the world coordinate holding unit 110 are drawn by CG from the viewpoint of the imaging device 302 based on the current calibration information and the position and orientation information of the receiver 301. In addition, a state in which the image is displayed superimposed on the real image in the image display area 1010 is shown.
[0052]
If calibration by this apparatus is performed correctly, the coordinates of the marker specified by the image coordinate acquisition unit 112 and the world coordinates of the marker superimposed on the real image theoretically match. The user of this apparatus can visually check the accuracy of the calibration performed by this apparatus at any time by observing the amount of deviation between the image coordinates of the marker and the world coordinates.
[0053]
In the present embodiment, the world coordinates of the marker are drawn by CG, but the object to be drawn by CG is not limited to the world coordinates of the marker.
For example, in order to confirm how the world coordinate system is observed on the real image, the coordinate axes, planes, world coordinate origin, and the like constituting the world coordinate system may be drawn.
[0054]
In addition, when a part of the calibration apparatus is realized by using an image display device that presents mixed reality, a virtual world or a virtual object used when presenting mixed reality is drawn by CG. You may make it do.
[0055]
When the image coordinate acquisition unit 112 performs a process of extracting a color area in the image in order to specify the coordinate of the marker, the image display area 1010 includes the color area extraction instead of the actual image. You may make it display the image which shows the result of a process. In this way, the user of this apparatus can easily adjust the parameters for the color area extraction process.
[0056]
A user of this apparatus can specify image coordinates in the image display area 1010 using a pointing device such as a mouse. For example, the coordinate of the marker (in the real image) performed by the image coordinate acquisition unit 112 is specified by the user of the apparatus, or a desired marker photographed in the real image is selected, and processing parameters for the marker are selected. Or the identification information can be manually given by the user of the apparatus.
[0057]
In the calibration information display area 1020, the current calibration information held by the calibration information holding unit 114 is displayed.
The operation button 1030 is used by the user of the apparatus to control the behavior and GUI of the apparatus by selecting a button area with a pointing device such as a mouse. In the present embodiment, when the user of the apparatus selects the operation button 1030, a data acquisition dialog, an initial value setting dialog, and a detection parameter setting dialog are newly displayed.
[0058]
The file menu 1040 displays a save submenu 1050 and an end submenu 1060 when the user of the apparatus selects a menu area with a pointing device such as a mouse.
[0059]
The save submenu 1050 gives an instruction to the apparatus when the user of the apparatus selects a submenu area with a pointing device such as a mouse. When the save submenu 1050 is selected, the instruction unit 115 issues a file save command and sends a file save request to the calibration information holding unit 114.
[0060]
An end submenu 1060 gives an instruction to the apparatus when the user of the apparatus selects a submenu area with a pointing device such as a mouse. When the end submenu 1060 is selected, the calibration apparatus is ended. When the calibration information holding unit 114 holds unsaved calibration information, the instruction unit 115 issues a file save command, sends a file save request to the calibration information holding unit 114, and the calibration information holding unit 114 After waiting until the file saving process is completed, the calibration apparatus is terminated.
[0061]
FIG. 8 shows an example of a data acquisition dialog. The data acquisition dialog 1100 in FIG. 8 includes a data list display area 1110, a data acquisition operation button 1120, a display image switching button 1130, a calibration information calculation button 1140, a selection data invalidation / validation button 1150, a selection data deletion button 1160, and a selection. A data display area 1170, a selected data operation area 1180, an error display area 1190, and a data acquisition dialog end button 1195 are configured.
[0062]
The data list display area 1110 displays thumbnails of reduced images of real images corresponding to the data lists acquired so far. When the user of the apparatus selects a thumbnail, data corresponding to the image is selected from the data list and displayed in the selected data display area 1170. In addition, the data corresponding to the image is selected. The data in the selected state is subject to processing when the selection data invalidation / validation button 1150 and the selection data deletion button 1160 are pressed.
[0063]
At this time, a real image corresponding to the data list is displayed in the image display area 1010. In the data list display area 1110, a real image is displayed in a reduced size, and it is difficult for the user of this apparatus to confirm details from the reduced image. Therefore, the real image is displayed in the image display region 1010 without being reduced. . Further, the image coordinates, world coordinates, and identification information of the marker selected from the data list are also displayed by being superimposed on the real image by the method described in the description of the image display area 1010.
[0064]
The data acquisition button 1120 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the data acquisition button 1120 is pressed, the instruction unit 115 issues a data acquisition command and sends a data acquisition request to the data management unit 111. Further, the actual image at that time is added to the data list display area and displayed.
[0065]
A display image switching button 1130 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the display image switching button 1130 is pressed, the mode of the image displayed in the image display area 1010 is switched. The user of this apparatus selects “live video display mode” for displaying the currently acquired real image and “acquired data display mode” for displaying the real image currently selected in the data list display area 1110. Is possible. When the display image switching button 1130 is pressed, the screen is switched to the acquired data display mode when the current mode is the live video display mode, and is switched to the live video display mode when the current mode is the acquired data display mode.
[0066]
The calibration information calculation button 1140 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the calibration information calculation button is pressed, the instruction unit 115 issues a calibration information calculation command and sends a calibration information calculation request to the calibration information calculation unit 113.
[0067]
The selection data invalidation / validation button 1150 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. By pressing the selection data invalidation / validation button 1150, when the data (photographed image) currently selected in the data display area 1110 is valid, the data is invalidated, and the selection data is selected from the target of the calibration information calculation process. exclude. When the currently selected data is invalid, the data is validated.
[0068]
The selection data deletion button 1160 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the selection data deletion button 1160 is pressed, the instruction unit 115 issues a data deletion command and sends a data deletion instruction to the data management unit 111. Further, the thumbnail of the currently selected real image is deleted from the data list display area 1110.
[0069]
In the selected data display area 1170, data selected by the user of the apparatus in the data list display area 1110 is displayed.
The selection data operation area 1180 is used by the user of this apparatus to operate selection data. FIG. 9 shows details of the selection data operation area 1180.
The selection data operation area 1180 includes a marker selection button 1181, a marker addition button 1182, a marker identification information selection menu 1183, and a marker deletion button 1184.
[0070]
The marker selection button 1181 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker selection button 1181 is pressed, the operation mode is set to “marker selection mode”. When the marker selection mode is set and the user of this apparatus selects the vicinity of the mark indicating the coordinate position of the marker displayed in the image display area 1010, the marker is selected.
[0071]
The marker addition button 1182 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker addition button 1182 is pressed, the operation mode is set to “marker addition mode”. When the user of this apparatus selects an arbitrary part of the image display area 1010 in the state where the marker addition mode is set, a new marker having the image coordinates as the marker coordinates is set and added to the data list. . Further, the marker is selected.
[0072]
The marker identification information selection menu 1183 gives an instruction to the apparatus when the user of the apparatus selects a menu area with a pointing device such as a mouse. When the marker identification information selection menu 1183 is selected, a list of marker identification information accumulated in the data list is displayed. In this embodiment, a character string indicating the name of the marker is used as the marker identification information. The user of this apparatus selects one of the marker identification information displayed in a list by using a pointing device such as a mouse. When the marker identification information is selected, the instruction unit 115 issues a data identification command, and sends the selected identification information and the selected marker information to the data management unit 111 at the same time as the data identification request. .
[0073]
The marker deletion button 1184 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker deletion button 1184 is pressed, the marker that is currently selected is deleted from the data list.
[0074]
The error display area 1190 displays the calibration error when the calibration information calculation unit 113 calculates the calibration information. In the present embodiment, two types of calibration errors are displayed: an error for each marker in the data list and an average of errors for all data.
[0075]
The user of this apparatus confirms the calibration error for each marker.If the accuracy of the calibration information calculated by the calibration information calculation unit 113 is not sufficient, or if the solution does not converge in the calculation of the calibration information, It is easy to specify the marker that causes the problem.
[0076]
Further, by confirming the average of errors of all data, the result of validation or invalidation of data used for calculating calibration information can be evaluated using the selection data invalidation / validation button.
[0077]
A data acquisition dialog end button 1195 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the data acquisition dialog end button 1195 is selected, the data acquisition dialog is closed. Even if the data acquisition dialog is closed, the contents of the data list are retained.
[0078]
FIG. 10 shows an example of the initial value setting dialog 1200. The initial value setting dialog includes a parameter type selection tab 1210, a parameter setting area 1220, a standard setting viewpoint button 1230, a transmitter observation button 1240, a reset button 1250, and an initial value setting dialog end button 1260.
[0079]
The parameter type selection tab 1210 is used to select the type of calibration information for which an initial value is set by the user of the apparatus selecting a tab area with a pointing device such as a mouse. There are two types of tab areas, “Local Transform” and “World Transform”. When the “Local Transform” area is selected, the calibration information mode is converted into the position and orientation of the image sensor. The first parameter is set to “imaging device-station calibration information mode”. When the “World Transform” area is selected, the calibration information mode is set to the “world coordinate system-sensor coordinate system calibration information mode”.
[0080]
In the parameter setting area 1220, the user of this apparatus can set parameters for calibration information corresponding to the current calibration information mode by means of buttons, sliders, spin buttons, numerical input from a keyboard, and the like. In the present embodiment, the parameters of the calibration information are set by using the following methods alone or in combination.
[0081]
First, a vector defining a position and a rotation axis and a rotation angle around that axis are specified.
Second, specify the position and Euler angle.
Third, the rotation angles of the receiver 301 around the X, Y, and Z axes as viewed from the imaging device 302 and the rotation angles of the imaging device 302 as viewed from the receiver 301 around the X, Y, and Z axes. specify.
When the parameters of the calibration information are set, the instruction unit 115 issues a calibration information change command and sends a calibration information change request to the calibration information holding unit 114.
[0082]
The standard setting designation button 1230 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the standard setting designation button 1230 is designated, the instruction unit 115 issues a calibration information read command and sends a calibration information read request to the calibration information holding unit 114.
[0083]
The transmitter observation button 1240 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse.
By selecting the transmitter observation button 1240, a rough value of Local Transform can be automatically calculated using the sensor measurement value.
[0084]
First, as shown in FIG. 14A, after adjusting the position and orientation of the camera so that the transmitter of the sensor is imaged at the approximate center of the captured image, the transmitter observation button 1240 is clicked. The approximate value of Local Transform is calculated based on the sensor measurement value at that time.
[0085]
When transmitter observation button 1240 is clicked, instruction unit 115 issues a calibration information calculation command and sends a calibration information calculation request to calibration information calculation unit 113. At this time, the calibration information calculation unit 113 uses only the current sensor measurement value in the data list managed by the data management unit 111 without using the world coordinates, the image coordinates, and the identification information. Calibration information (Local Transform) between the receivers 301 is calculated.
[0086]
Calculate the theoretical value of the transmitter's position and orientation using the calculated approximate value, generate a virtual image of the transmitter according to the theoretical value, and superimpose the virtual image of the transmitter on the image position according to the theoretical value on the captured image And displayed (FIG. 14B).
[0087]
The Local Transform set using the transmitter observation button 1240 has an indefinite rotation angle in the Z-axis direction of the imaging device, so this parameter (Z-axis of Local Transform) is set using the azimuth (z-axis) slider bar (parameter setting area 1220). Roughly adjust the posture component). Then, the virtual image of the transmitter is updated in real time according to the adjustment result (FIG. 14 (c)). It is possible to adjust other parameters.
[0088]
The reset button 1250 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the reset button 1250 is designated, the instruction unit 115 issues a reset command and sends a reset request to the calibration information holding unit 114.
[0089]
An initial value setting dialog end button 1260 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the initial value setting dialog end button 1260 is selected, the initial value setting dialog is closed. Even if the initial value setting dialog is closed, the calibration information is retained.
[0090]
As described above, by selecting the transmitter observation button 1240, a rough value of Local Transform can be calculated automatically using the sensor measurement value without using any special preparation by using the transmitter. . Since the transmitter is a necessary configuration in the present system, the user does not need to perform special processing in order to perform this processing.
[0091]
11 and 12 show examples of the marker detection parameter setting dialog 1300. FIG. The marker detection parameter setting dialog 1300 includes a parameter type selection tab 1310, a marker detection parameter setting area 1320, a marker detection result display button 1330, a marker detection parameter reset button 1340, a marker detection button 1350, a marker identification means switching button 1360, a marker identification parameter setting. The area 1370 includes a marker identification parameter reset button 1380 and a marker detection parameter setting dialog end button 1390.
[0092]
The parameter type selection tab 1310 allows the user of this apparatus to select and display either the marker detection parameter setting screen or the marker identification parameter setting screen by selecting a tab area with a pointing device such as a mouse.
[0093]
The marker detection parameter setting area 1320 is displayed when the marker detection parameter setting screen is selected on the parameter type selection tab 1310. In the marker detection parameter setting area 1320, the user of this apparatus uses a means such as a slider or a numerical value input box to set the color threshold value for detecting the marker and the minimum value of the number of pixels in the color area recognized as the marker. Set. The color threshold is used to consider a pixel as a marker candidate when the value of each color component of the pixel exceeds the threshold.
[0094]
In this embodiment, threshold values are set for R, G, and B indicating the luminance values of the respective colors for red, green, and blue. For example, threshold values are set for Y, Cr, and Cb components of pixels. Also good. The minimum value of the number of pixels in the color area is used to prevent the area from being recognized as a marker when the number of pixels in the color area is smaller than the set minimum value. In the present embodiment, only the minimum value of the number of pixels in the color region is determined, but the maximum value may be determined at the same time so that the number of pixels considered as marker candidates falls within a certain range.
[0095]
The marker detection result display button 1330 is displayed when the marker detection parameter setting screen is selected on the parameter type selection tab 1310. The marker detection result display button 1330 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker detection result display button 1330 is designated, the real image display mode color extraction result image display mode is switched. In the real image display mode, a real image is displayed in the image display area 1010. In the color extraction result image display mode, the color extraction result image is displayed in the image display area 1010. In the color extraction result image shown in FIG. 13, only the color region extracted in the live-action image is displayed.
[0096]
The marker detection parameter reset button 1340 is displayed when the marker detection parameter setting screen is selected on the parameter type selection tab 1310. The marker detection parameter reset button 1340 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker detection parameter reset button 1340 is designated, the marker detection parameter currently held is discarded, and the default value of the marker detection parameter set when the apparatus is activated is set as the current marker detection parameter.
[0097]
The marker detection stop button 1350 is displayed when the marker detection parameter setting screen is selected on the parameter type selection tab 1310. The marker detection stop button 1350 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker detection stop button 1350 is selected, the marker detection process is stopped.
[0098]
The marker identification means switching button 1360 is displayed when the marker identification parameter setting screen is selected on the parameter type selection tab 1310. The marker identification means switching button 1360 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker identification means switching button 1360 is selected, the marker identification function using the sensor measurement value is switched between valid / invalid. The marker identification function is based on a current sensor measurement value and calibration information, and the detected image coordinates of the marker and the coordinates of the world coordinates of the marker held by the world coordinate holding unit 110 projected onto the imaging surface of the imaging device 302. This is a function for calculating a distance and automatically identifying a marker when the minimum value of the distance is less than or equal to the maximum allowable value.
[0099]
The marker identification parameter setting area 1370 is displayed when the marker identification parameter setting screen is selected on the parameter type selection tab 1310. In the marker identification parameter setting area 1370, the user of this apparatus sets a maximum allowable distance for identifying a marker using means such as a slider or a numerical value input box.
[0100]
The marker identification parameter reset button 1380 is displayed when the marker identification parameter setting screen is selected on the parameter type selection tab 1310. The marker identification parameter reset button 1380 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the marker identification parameter reset button 1380 is designated, the marker identification parameter currently held is discarded, and the default value of the marker identification parameter set when the present apparatus is activated is set as the current marker identification parameter.
[0101]
The detection parameter setting dialog end button 1390 gives an instruction to the apparatus when the user of the apparatus selects a button area with a pointing device such as a mouse. When the detection parameter setting dialog end button 1390 is selected, the detection parameter setting dialog 1390 is closed. Even when the detection parameter setting dialog is closed, the marker detection parameter and the marker identification parameter are retained.
[0102]
FIG. 15 is a flowchart of processing performed by the sensor calibration apparatus of the present embodiment. Note that the program code for realizing the processing according to the flowchart is stored in a storage device such as the disk device 105 or the RAM 102 in the device of the present embodiment, and is read and executed by the CPU 101.
[0103]
In step S000, the sensor calibration apparatus of the present embodiment is activated.
In step S100, the instruction unit 115 determines whether a data acquisition command has been input from the user of the apparatus. If a data acquisition command has been input, the process proceeds to step S110.
In step S <b> 110, the data management unit 111 inputs the current measurement value of the position and orientation of the receiver 301 from the sensor control unit 500.
[0104]
In step S <b> 120, the data management unit 111 inputs marker identification information and image coordinates on the captured image captured by the imaging device 302 from the image coordinate acquisition unit 112. This input is performed for each marker when a plurality of markers on the captured image are captured.
In step S130, the data management unit 111 adds the input data to the data list for each detected marker.
[0105]
In step S200, the instruction unit 115 determines whether or not a data list editing operation has been input by the user of the apparatus. If the data list editing operation has been input, the process proceeds to step S210.
[0106]
In step S210, the instruction unit 115 issues a command corresponding to the data list editing operation input from the user of the apparatus, and edits the data list. For example, to edit a data list, select an element in the data list, delete a selected element from the data list, add a new marker to the data list, delete an existing marker from the data list, An operation of giving identification information to the marker and identifying it is included.
[0107]
In step S300, the calibration information calculation unit 113 determines whether or not the data list acquired so far has enough information to calculate the calibration information. If the data list does not satisfy the condition, the process returns to step S100 again and waits for the input of a data acquisition command. On the other hand, if the data list satisfies the conditions for calculating calibration information, the process proceeds to step S400. As conditions for calculating calibration information, for example, data on three or more different markers is obtained, data is acquired at a plurality of viewpoint positions, and the total number of data is 6 or more. As a condition. However, since the accuracy of the calibration information derived as the diversity of input data increases, the condition may be set so as to request more data.
[0108]
In step S400, it is determined whether a calibration information calculation command has been input from the user of the apparatus. When the calibration information calculation command is input, the process proceeds to step S410. When the calibration information calculation command is not input, the process returns to step S100 and waits for the input of the data acquisition command.
[0109]
In step S410, the calibration information calculation unit 113 performs calibration information calculation processing.
In step S500, the instruction unit 115 determines whether or not an editing operation for calibration information has been input from the user of the apparatus. If an editing operation for calibration information has been input, the process proceeds to step S510.
[0110]
In step S510, the instruction unit 115 issues a command corresponding to the editing operation of the calibration information input from the user of the apparatus, and edits the calibration information. For example, editing calibration information includes operations such as changing calibration information parameters, reading calibration information, and resetting calibration information.
[0111]
In step S600, the instruction unit 115 determines whether or not a calibration information storage operation has been input from the user of the apparatus. If the calibration information storage operation has been input, the process proceeds to step S610.
In step S610, the instruction unit 115 sends a file storage request to the calibration information holding unit 114, and outputs the currently held calibration information to the disk device 105.
[0112]
In step S700, the instruction unit 115 determines whether or not an end operation of the apparatus has been input from the user of the apparatus. When the calibration information end operation is input, the process proceeds to step S800. If not, the process returns to step S100 again.
In step S800, processing for terminating the present apparatus is performed.
[0113]
FIG. 16 is a flowchart of a standard operation for the user of the sensor calibration apparatus of the present embodiment to calibrate the sensor using the apparatus.
In step S1000, the user of this apparatus starts the sensor calibration apparatus of this embodiment.
[0114]
In step S <b> 1100, the user of this apparatus images the marker using the imaging device 302. The user of this apparatus checks whether or not the image coordinate acquisition unit 112 of this apparatus correctly specifies the image coordinate and identification information of the marker. If it can be specified correctly, the process proceeds to step S1200. If it cannot be specified, the process proceeds to step S1110.
[0115]
In step S1110, the user of the present apparatus gives an instruction for adjusting the marker detection parameter and the marker identification parameter to the instruction unit 115 using, for example, the marker detection parameter setting dialog 1300.
In step S1200, the user of the apparatus causes the instruction unit 115 to issue a data acquisition command using, for example, the data acquisition button 1120.
[0116]
In step S1300, the user of this apparatus checks whether each data in the acquired data list is good. If the data is good, the process proceeds to step S1400. If the data is not good, the process proceeds to step S1310 or returns to step S1100 depending on the situation.
[0117]
In step S1310, the user of this apparatus gives an instruction for performing a data list editing operation to the instruction unit 115 using the data acquisition dialog 1100, for example.
In step S1400, the user of the apparatus causes the instruction unit 115 to issue a calibration information calculation command using, for example, the calibration information calculation button 1140.
[0118]
In step S1500, the user of this apparatus checks whether or not the calibration information calculation unit 113 has correctly calculated the calibration information. If it has been calculated correctly, the process proceeds to step S1600. If it has not been calculated, the process returns to step S1100.
In step S1600, the user of this apparatus checks whether the calibration information calculated by the calibration information calculation unit 113 is good. If the calibration information is good, the process proceeds to step S1700. If not, the process proceeds to step S1610 or returns to step S1100 depending on the situation.
[0119]
In step S1610, the user of this apparatus gives an instruction to edit the calibration information to the instruction unit 115 using the initial value setting dialog 1200, for example.
In step S1700, the user of the apparatus causes the instruction unit 115 to issue a file save command using the save submenu 1050, for example.
In step S1800, the user of the apparatus ends the apparatus using, for example, the end submenu 1060.
[0120]
<Second Embodiment>
FIG. 17 is a block diagram showing a schematic configuration in the second embodiment of the sensor calibration apparatus according to the present invention. In the first embodiment, the display unit 200 is provided outside the head mounting unit 300. In the second embodiment, the display unit 200 is included in the head mounting unit 300. Such a configuration is realized by using, as the display unit 200, a display device that can be worn on the head by a user of the device, such as an HMD. In the second embodiment, by using a display device that can be worn on the head, the user of this device performs calibration under the same conditions as the conditions for using an image display device that presents mixed reality. Is possible.
[0121]
<Third Embodiment>
FIG. 18 is a block diagram showing a schematic configuration in the third embodiment of the sensor calibration apparatus according to the present invention. In the third embodiment, the display unit 200 is mounted on the head by the display device provided outside the head-mounted unit 300 in the first embodiment and the user of the device in the second embodiment. Consists of both display devices. For example, the HMD generally has a lower resolution than a normal display device such as a CRT monitor or a liquid crystal monitor. When such a display device is used, it may be difficult for a user of the device to give an instruction to the device using the GUI described in the first embodiment. In such a case, for example, it is conceivable that the apparatus is used by two people.
[0122]
That is, the GUI described in the first embodiment is displayed on the display device (display unit in the first embodiment) provided outside the head-mounted unit 300 viewed by the first user of the apparatus. The display device (display unit in the second embodiment) worn by the second user of the device on the head has a variety of real images and real images excluding the GUI described in the first embodiment. A composite image in which information and CG are superimposed, a marker color extraction image, and the like are displayed. The operation of this apparatus is performed by the first user, and the adjustment of the positions and orientations of the imaging apparatus 302 and the receiver 301 is performed by the second user, so that the calibration work can be performed efficiently. .
[0123]
[Other Embodiments]
An object of the present invention is to supply a storage medium (or recording medium) in which a program code of software for realizing the functions of the above-described embodiments is recorded to a system or apparatus, and a computer (or CPU or MPU) of the system or apparatus. Needless to say, this can also be achieved by reading and executing the program code stored in the storage medium. In this case, the program code itself read from the storage medium realizes the functions of the above-described embodiments, and the storage medium storing the program code constitutes the present invention. In addition, by executing the program code read by the computer, not only the functions of the above-described embodiments are realized, but also an operating system (OS) running on the computer based on the instruction of the program code. It goes without saying that a case where the function of the above-described embodiment is realized by performing part or all of the actual processing and the processing is included.
[0124]
Furthermore, after the program code read from the storage medium is written into a memory provided in a function expansion card inserted into the computer or a function expansion unit connected to the computer, the function is determined based on the instruction of the program code. It goes without saying that the CPU or the like provided in the expansion card or the function expansion unit performs part or all of the actual processing and the functions of the above-described embodiments are realized by the processing.
[0125]
When the present invention is applied to the storage medium, the storage medium stores program codes corresponding to the flowchart described above (shown in FIG. 15).
[0126]
【The invention's effect】
As described above, according to the present invention, the calibration information for converting the position and orientation of the imaging unit measured by the sensor into the position and orientation in the world coordinate system can be used more easily and using a special calibration instrument. And can be obtained with high accuracy.
[0127]
In particular, since the user can select a photographed image to be used when obtaining calibration information from a plurality of obtained photographed images, an inappropriate photographed image can be removed when obtaining calibration information.
[0128]
According to the invention of claim 4, since an error is displayed for each detected marker, an inappropriate photographed image can be appropriately selected.
[Brief description of the drawings]
FIG. 1 is a block diagram illustrating a schematic configuration of a calibration apparatus according to a first embodiment of the present invention.
FIG. 2 is a block diagram illustrating a functional configuration of a calibration device according to the first embodiment.
FIG. 3 is a diagram illustrating a GUI presented by the calibration apparatus according to the first embodiment.
4 is a diagram illustrating a file menu in the GUI presented by the calibration apparatus according to the first embodiment. FIG.
FIG. 5 is a diagram for explaining a state in which a mark indicating image coordinates of a marker and additional information are superimposed on a real image and displayed on the GUI presented by the calibration apparatus according to the first embodiment.
FIG. 6 shows a GUI displayed by the calibration apparatus according to the first embodiment when a marker is not identified and a mark indicating the image coordinate of the marker and additional information are superimposed on the real image and displayed. FIG.
FIG. 7 is a diagram for explaining a state in which the world coordinates of a marker are drawn in CG and displayed superimposed on a real image on the GUI presented by the calibration apparatus according to the first embodiment.
FIG. 8 is a diagram illustrating a data acquisition dialog in the GUI presented by the calibration device according to the first embodiment.
FIG. 9 is a diagram for explaining a selection data operation area in the dialog shown in FIG.
FIG. 10 is a diagram illustrating an initial value setting dialog in the GUI presented by the calibration apparatus according to the first embodiment.
FIG. 11 is a diagram illustrating a detection parameter setting dialog in the GUI presented by the calibration apparatus according to the first embodiment.
12 is a diagram illustrating a detection parameter setting dialog in the GUI presented by the calibration apparatus according to the first embodiment. FIG.
13 is a diagram for explaining a state in which a color extraction result image is displayed in the image display area of the GUI in FIG. 3 in the calibration apparatus according to the first embodiment.
FIG. 14 is a diagram illustrating a procedure for automatically calculating a rough value of Local Transform using a sensor measurement value in the calibration device according to the first embodiment.
FIG. 15 is a flowchart showing a processing procedure of the sensor calibration apparatus according to the first embodiment.
FIG. 16 is a flowchart showing a procedure for a user of the sensor calibration apparatus to use the sensor calibration apparatus in the first embodiment.
FIG. 17 is a block diagram illustrating a schematic configuration of a sensor calibration apparatus according to a second embodiment.
FIG. 18 is a block diagram illustrating a schematic configuration of a sensor calibration apparatus according to a third embodiment.

Claims (7)

センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を求める情報処理方法であって、
世界座標が既知である複数のマーカが配置されている現実空間を、前記撮像部を用いて複数の位置姿勢で撮影することにより得られる複数の撮影画像、および該撮影画像の各々を撮影した際のセンサの計測値を取得し、
前記撮影画像に含まれるマーカの画像座標を検出し、
ユーザ指示に応じて、前記取得された複数の撮影画像から、前記較正情報を算出する際に使用する撮影画像を選択し、
前記選択された撮影画像の前記センサの計測値と、該選択された撮影画像の前記検出されたマーカの画像座標と、該検出されたマーカの世界座標とを用いて、前記較正情報を算出し、
前記撮影画像に、該撮影画像から検出されたマーカの画像座標と、該検出されたマーカの識別情報と、前記算出された較正情報を用いて該検出されたマーカの世界座標から求められた画像座標と、を合成して表示する
ことを特徴とする情報処理方法。
An information processing method for obtaining calibration information for converting a position and orientation of an imaging unit measured by a sensor into a position and orientation in a world coordinate system,
When photographing a plurality of captured images obtained by photographing a real space in which a plurality of markers having known world coordinates are arranged at a plurality of positions and orientations using the imaging unit, and each of the photographed images Get the measured value of the sensor of
Detecting the image coordinates of the marker included in the captured image,
In response to a user instruction, select a captured image to be used when calculating the calibration information from the acquired captured images,
The calibration information is calculated using the measured value of the sensor of the selected captured image, the image coordinates of the detected marker of the selected captured image, and the world coordinates of the detected marker. ,
The image obtained from the image coordinates of the marker detected from the captured image, the identification information of the detected marker, and the world coordinates of the detected marker using the calculated calibration information. An information processing method characterized by combining and displaying coordinates.
前記マーカの画像座標の検出は、前記撮影画像を解析することにより自動的に行われ、
更に、前記表示された画像を用いたユーザ指示に基づき、前記検出されたマーカの画像座標の削除、および、前記撮影画像に含まれるマーカの画像座標の追加を行うことができることを特徴とする請求項1記載の情報処理方法。
Detection of the image coordinates of the marker is automatically performed by analyzing the captured image,
Furthermore, based on a user instruction using the displayed image, it is possible to delete image coordinates of the detected marker and add image coordinates of a marker included in the captured image. Item 3. The information processing method according to Item 1.
前記表示された撮影画像は、ユーザ指示に応じて、前記複数の撮影画像から選択された画像であることを特徴とする請求項1又は2記載の情報処理方法。  The information processing method according to claim 1, wherein the displayed captured image is an image selected from the plurality of captured images according to a user instruction. 更に、前記検出されたマーカのそれぞれに対する前記較正情報における誤差および該検出されたマーカのそれぞれに対する誤差の平均値を表示することを特徴とする請求項1乃至3の何れか1項に記載の情報処理方法。  The information according to any one of claims 1 to 3, further comprising displaying an error in the calibration information for each of the detected markers and an average value of the error for each of the detected markers. Processing method. 更に、ユーザ指示に基づき、前記撮影画像に含まれるマーカの画像座標を検出する際に使用する検出条件を調整することを特徴とする請求項1乃至4の何れか1項に記載の情報処理方法。  5. The information processing method according to claim 1, further comprising adjusting a detection condition used when detecting an image coordinate of a marker included in the captured image based on a user instruction. . コンピュータに請求項1乃至5の何れか1項に記載の情報処理方法を実行させるためのプログラム。  A program for causing a computer to execute the information processing method according to any one of claims 1 to 5. センサにより計測された撮像部の位置姿勢を世界座標系における位置姿勢に変換するための較正情報を求める情報処理装置であって、
世界座標が既知である複数のマーカが配置されている現実空間を、前記撮像部を用いて複数の位置姿勢で撮影することにより得られる複数の撮影画像、および該撮影画像の各々を撮影した際のセンサの計測値を入力する入力手段と、
前記撮影画像に含まれるマーカの画像座標を検出する検出手段と、
ユーザ指示に応じて、前記取得された複数の撮影画像から、前記較正情報を算出する際に使用する撮影画像を選択する選択手段と、
前記選択された撮影画像の前記センサの計測値と、該選択された撮影画像の前記検出されたマーカの画像座標と、該検出されたマーカの世界座標とを用いて、前記較正情報を算出する算出手段と、
前記撮影画像に、該撮影画像から検出されたマーカの画像座標と、該検出されたマーカの識別情報と、前記算出された較正情報を用いて該検出されたマーカの世界座標から求められた画像座標と、を合成して表示する手段と
を備えることを特徴とする情報処理装置。
An information processing apparatus for obtaining calibration information for converting a position and orientation of an imaging unit measured by a sensor into a position and orientation in a world coordinate system,
When photographing a plurality of captured images obtained by photographing a real space in which a plurality of markers having known world coordinates are arranged at a plurality of positions and orientations using the imaging unit, and each of the photographed images Input means for inputting the measured value of the sensor of
Detecting means for detecting image coordinates of a marker included in the captured image;
In accordance with a user instruction, a selection unit that selects a captured image to be used when calculating the calibration information from the acquired plurality of captured images;
The calibration information is calculated using the measured value of the sensor of the selected captured image, the image coordinates of the detected marker of the selected captured image, and the world coordinates of the detected marker. A calculation means;
The image obtained from the image coordinates of the marker detected from the captured image, the identification information of the detected marker, and the world coordinates of the detected marker using the calculated calibration information. An information processing apparatus comprising: means for combining and displaying coordinates.
JP2002284244A 2002-03-19 2002-09-27 Information processing method and information processing apparatus Expired - Fee Related JP3817505B2 (en)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2002284244A JP3817505B2 (en) 2002-09-27 2002-09-27 Information processing method and information processing apparatus
EP03251542A EP1349114A3 (en) 2002-03-19 2003-03-13 Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus
CNB031207375A CN1210543C (en) 2002-03-19 2003-03-18 Sensor calibrating device and method, program, memory medium, information processing method and device
US10/390,739 US6792370B2 (en) 2002-03-19 2003-03-19 Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus
US10/892,104 US7130754B2 (en) 2002-03-19 2004-07-16 Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002284244A JP3817505B2 (en) 2002-09-27 2002-09-27 Information processing method and information processing apparatus

Publications (2)

Publication Number Publication Date
JP2004118734A JP2004118734A (en) 2004-04-15
JP3817505B2 true JP3817505B2 (en) 2006-09-06

Family

ID=32277868

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002284244A Expired - Fee Related JP3817505B2 (en) 2002-03-19 2002-09-27 Information processing method and information processing apparatus

Country Status (1)

Country Link
JP (1) JP3817505B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4367926B2 (en) 2004-05-17 2009-11-18 キヤノン株式会社 Image composition system, image composition method, and image composition apparatus
JP4926817B2 (en) * 2006-08-11 2012-05-09 キヤノン株式会社 Index arrangement information measuring apparatus and method
JP5714232B2 (en) * 2009-03-12 2015-05-07 オムロン株式会社 Calibration apparatus and method for confirming accuracy of parameters for three-dimensional measurement
JP5728372B2 (en) 2011-11-30 2015-06-03 キヤノン株式会社 Information processing apparatus, information processing apparatus control method, and program
JP7242229B2 (en) * 2018-09-27 2023-03-20 キヤノン株式会社 Information processing device, information processing method, and program

Also Published As

Publication number Publication date
JP2004118734A (en) 2004-04-15

Similar Documents

Publication Publication Date Title
US7035760B2 (en) Information processing method and information processing apparatus
US7130754B2 (en) Sensor calibration apparatus, sensor calibration method, program, storage medium, information processing method, and information processing apparatus
JP4137078B2 (en) Mixed reality information generating apparatus and method
US9767563B2 (en) Image processing apparatus and method for obtaining position and orientation of imaging apparatus
US7627137B2 (en) Image composition system, image composition method, and image composition apparatus
US7664341B2 (en) Index layout measurement method, position and orientation estimation method, index layout measurement apparatus, and position and orientation estimation apparatus
JP4522140B2 (en) Index placement information estimation method and information processing apparatus
US7487468B2 (en) Video combining apparatus and method
JP4926817B2 (en) Index arrangement information measuring apparatus and method
JP5196825B2 (en) Image processing apparatus and image processing method
US20050174361A1 (en) Image processing method and apparatus
JP4346950B2 (en) Information processing method and apparatus
US8098263B2 (en) Image processing method and image processing apparatus
JP2004062756A (en) Information-presenting device and information-processing method
JP2005326274A (en) Arrangement information inferring method and information processor
JP3817505B2 (en) Information processing method and information processing apparatus
JP2009015648A (en) Image processor and image processing method
JP2008139911A (en) Information processing apparatus and method
JP2008122109A (en) Information processing device and information processing method

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060310

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060509

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060529

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060612

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 3817505

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090616

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100616

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110616

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120616

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130616

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees