(57)【要約】【課題】  スケール基準の入力が必要な場合にはその入力を促すと共に、どの指標に対してスケール基準を入力すべきかという情報をも提示する為の技術を提供すること。【解決手段】  複数の指標が配された現実空間を撮像した撮像装置から撮像画像を入力し、それぞれの指標を検出する（Ｓ１０１０）。検出された指標の画像座標と、撮像装置による撮像に関する情報とを用いて、それぞれの指標の配置のスケールに関するスケール情報を表示する（Ｓ１１２０）。【選択図】  図４
2008140047.tif 000002
【特許請求の範囲】
【請求項１】
複数の画像から指標の位置姿勢を推定する情報処理装置が行う情報処理方法であって、
複数の指標が配された現実空間を撮像した撮像装置から撮像画像を入力する入力工程と、
前記撮像画像からそれぞれの指標を検出する検出工程と、
前記検出工程で検出された指標の画像座標と、前記撮像装置による撮像に関する情報とを、メモリに格納する格納工程と、
前記メモリに格納された前記画像座標、及び前記情報を用いて、前記それぞれの指標の配置のスケールに関するスケール情報を表示する表示工程と
を備えることを特徴とする情報処理方法。
【請求項２】
更に、
前記スケール情報が十分か否かを判断する処理を、前記情報処理装置が有する判断手段が行う判断工程を備え、
前記スケール情報が十分ではない場合、前記表示工程では、前記スケール情報の入力を促す表示を行うことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記表示工程では、スケール情報を入力すべき一組以上の指標の組についての情報を表示すると共に、スケール情報の入力を促す表示を行うことを特徴とする請求項１に記載の情報処理方法。
【請求項４】
前記表示工程では、前記スケール情報を入力すべき一組以上の指標の組の各々に対して距離を表示することを特徴とする請求項３に記載の情報処理方法。
【請求項５】
更に、
画像を逐次的に追加し、画像から指標の位置姿勢を推定する処理を、前記情報処理装置が有する推定手段が逐次的に行う工程を備え、
前記判断工程では、逐次的に指標の位置姿勢を求める毎に、スケール情報が十分か否かを判断することを特徴とする請求項２に記載の情報処理方法。
【請求項６】
更に、
位置姿勢が計測可能な指標に対する条件を受け付ける処理を、前記情報処理装置が有する受け付け手段が行う受け付け工程と、
表示する指標の組を、前記条件を満たす指標群から選択する処理を、前記情報処理装置が有する選択手段が行う選択工程とを備え、
前記選択工程で選択された指標の組を表示することを特徴とする請求項３又は４に記載の情報処理方法。
【請求項７】
前記条件は、計測可能な最大指標間距離であることを特徴とする請求項６に記載の情報処理方法。
【請求項８】
更に、
指標の組が、幾何学的に計測可能である事を判断する処理を、前記情報処理装置が有する第２の判断手段が行う第２の判断工程と、
表示する指標の組を、前記第２の判断工程で計測可能と判断された指標群から選択する処理を、前記情報処理装置が有する第２の選択手段が行う第２の選択工程とを備え、
前記第２の選択工程で選択された指標の組を表示することを特徴とする請求項３又は４に記載の情報処理方法。
【請求項９】
複数の画像から指標の位置姿勢を推定する情報処理装置であって、
複数の指標が配された現実空間を撮像した撮像装置から撮像画像を入力する入力手段と、
前記撮像画像からそれぞれの指標を検出する検出手段と、
前記検出手段によって検出された指標の画像座標と、前記撮像装置による撮像に関する情報とを、前記情報処理装置が有するメモリに格納する格納手段と、
前記メモリに格納された前記画像座標、及び前記情報を用いて、前記それぞれの指標の配置のスケールに関するスケール情報を表示する表示手段と
を備えることを特徴とする情報処理装置。
【請求項１０】
コンピュータに請求項１乃至８の何れか１項に記載の情報処理方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、現実空間中に配された指標の位置姿勢を推定する為の技術に関するものである。
【背景技術】
【０００２】
近年、複合現実感（Mixed Reality; MR）技術の研究が盛んである。MR技術は、現実空間とコンピュータによって作られる仮想空間とを継ぎ目なく融合する技術である。MR技術の中でも、現実空間に仮想空間を重ね合わせて表示するAugmented Reality（AR、拡張現実感、増強現実感とも呼ばれる）技術が特に注目を集めている。
【０００３】
AR技術で用いられている画像表示装置は、ビデオシースルー方式か光学シースルー方式によって実現される。ビデオシースルー方式とは、ビデオカメラ等の撮像装置によって撮影された現実空間の画像に、該撮像装置の位置及び姿勢に応じて生成された仮想空間の画像を重畳描画した合成画像を表示する方式である。ここで、仮想空間の画像とは、コンピュータグラフィクスにより描画された仮想物体や文字情報等のことである。また、光学シースルー方式とは、観察者の頭部に装着された光学シースルー型ディスプレイに、観察者の視点の位置及び姿勢に応じて生成された仮想空間の画像を表示する方式である。
【０００４】
AR技術は、患者の体表面に体内の様子を重畳表示する手術支援や、空き地に仮想のビルを重畳表示する建築シミュレーション、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援等様々な分野への応用が期待される。
【０００５】
AR技術において最も重要な課題の一つは、現実空間と仮想空間との間の位置合わせをいかに正確に行うかということであり、従来より多くの取り組みが行われてきた。AR技術における位置合わせの問題は、ビデオシースルー方式の場合はシーン中における（すなわちシーン中に規定された基準座標系における）撮像装置の位置及び姿勢を求める問題に帰結する。一方、光学シースルー方式の場合は、シーン中における観察者の視点あるいはディスプレイの位置及び姿勢を求める問題に帰結する。
【０００６】
前者の問題を解決する方法としては次のような技術が一般には用いられている。即ち、シーン中に複数の指標を配置あるいは設定し、撮像装置が撮影した画像内における指標の投影位置と、指標の基準座標系における既知の位置との対応関係から、基準座標系における該撮像装置の位置及び姿勢を求める。また後者の問題を解決する方法としては、計測対象物（即ち観察者の頭部或いはディスプレイ）に撮像装置を装着し、前者と同様な方法によって該撮像装置の位置及び姿勢を求め、それに基づいて計測対象物の位置及び姿勢を求めることが一般的に行われている。
【０００７】
画像上の指標の投影像とその指標の３次元位置との対応に基づいて撮像装置の位置及び姿勢を求める方法は、写真測量の分野において古くから提案されている（非特許文献１を参照）。
【０００８】
また非特許文献２等には次のようなことが開示されている。即ち、先ず前述の画像上の指標の投影像をもとに求めた撮像装置の位置及び姿勢を初期値とする。そして、画像上での指標の投影像の実際の観察位置と投影像との計算位置との誤差が最小になるように反復演算によって撮像装置の位置及び姿勢を最適化する。
【０００９】
係る技術は即ち、指標の３次元位置と、撮像装置の位置及び姿勢から計算される投影像の位置と、の誤差が最小になるように反復演算によって撮像装置の位置及び姿勢を最適化することである。
【００１０】
以上の方法によって、撮像装置が撮影した画像に基づいて、該撮像装置の位置及び姿勢を求めることが従来からなされてきた。
【００１１】
一方、例えば特許文献１、２や非特許文献３で開示されているようなことも行われている。即ち、計測対象である撮像装置に磁気センサや超音波センサなどの６自由度位置姿勢センサを取り付け、前述のような画像処理による指標の検出との併用によって位置及び姿勢を計測する。センサの出力値は測定範囲によって精度は変わるが安定的に得ることができるため、センサと画像処理を併用する方法は、画像処理だけによる方法に比べてロバスト性を向上させることができる。特許文献２では、６自由度位置姿勢センサから得られる撮像装置の位置及び姿勢を初期値として、前述の画像上での指標の投影像の観察位置と計算位置との誤差を反復演算によって最小化することによって、撮像装置の位置及び姿勢を得ている。
【００１２】
以上で述べた指標を利用した位置合わせ手法では、計測対象である撮像装置の基準座標系における位置及び姿勢を求めるためには、以下のようなものが既知である必要がある。即ち、空間中に存在する同一色の円領域といった点形状の指標（以下、点指標）の場合にはその重心の基準座標系における位置が既知である必要がある。また、三角形や正方形といった多角形形状の指標の場合にはその重心の基準座標系における位置と基準座標系に対する指標の姿勢と、が既知である必要がある。正方形指標等の多角形形状の指標の場合には基準座標系を別途設けることなく、指標そのものを座標系の基準とする場合が多いが、複数の指標を用いる場合には互いの位置及び姿勢の関係が既知である必要があるため、基準座標系が必要であることに変わりはない。
【００１３】
指標の位置及び姿勢の計測は、巻尺や分度器を用いた手作業や、測量器によって行うことが可能であるが、精度や手間の問題から、画像を利用した計測が行われている。点指標の位置計測は、バンドル調整法と呼ばれる方法で行うことができる。
【００１４】
バンドル調整法とは次のようなものである。即ち、撮像装置によって点指標の画像を多数撮影し、画像上での点指標の投影像の観察位置を求める。そして求めた観察位置と、該点指標の3次元位置及び撮像装置の位置姿勢をもとに計算される該点指標の投影像の計算位置と、の誤差（投影誤差）が最小になるように、繰返し演算によって点指標の位置と撮像装置の位置姿勢の補正を繰り返し行う。これにより、点指標の位置を求める。
【００１５】
また、非特許文献４では、3次元空間中に配置された多数の正方形指標の位置及び姿勢を計測する方法が開示されている。非特許文献４では、3次元空間中に配置された多数の正方形指標の画像を多数撮影し、投影誤差が最小になるように、繰返し演算によって各画像を撮影した撮像装置の位置及び姿勢と、正方形指標の位置及び姿勢を求めている。
【特許文献１】特開平１１−０８４３０７号公報
【特許文献２】特開２０００−０４１１７３号公報
【非特許文献１】R. M. Haralick, C. Lee, K. Ottenberg, and M. Nolle: “Review and analysis of solutions of the three point perspective pose estimation problem”, Int’l. J. Computer Vision, vol.13, no.3, pp.331-356, 1994.
【非特許文献２】加藤, M. Billinghurst, 浅野, 橘: “マーカー追跡に基づく拡張現実感システムとそのキャリブレーション”, 日本バーチャルリアリティ学会論文誌, vol.4, no.4, pp.607-616, 1999.
【非特許文献３】A. State, G. Hirota, D. T. Chen, W. F. Garrett and M. A. Livingston: “Superior augmented reality registration by integrating landmark tracking and magnetic tracking”, Proc. SIGGRAPH’96, pp.429-438, 1996.
【非特許文献４】G. Baratoff, A. Neubeck and H. Regenbrecht: “Interactive multi-marker calibration for augmented reality applications”, Proc. ISMAR2002, pp.107-116, 2002.
【発明の開示】
【発明が解決しようとする課題】
【００１６】
前述した指標の位置計測手法では、既知の指標の大きさや、既知の指標間の距離を元に計測された指標全体のスケールが決定される。
【００１７】
しかし、計測対象の指標が既知のスケールの基準となった長さに比べて、大きな範囲に分散している場合、大きく離れた指標間では、計測された距離の誤差が大きくなってしまう。あらかじめ、十分離れた指標間の距離をスケール基準にして、計算する場合は問題は生じないが、計測範囲を徐々に広げていった場合にスケールが不正確になっている事に計測者が気がつかない。またスケールの基準を入力するための指標としてどの指標を選択すれば十分なのかがわからないという課題があった。
【００１８】
本発明は以上の問題に鑑みてなされたものであり、スケール基準の入力が必要な場合にはその入力を促すと共に、どの指標に対してスケール基準を入力すべきかという情報をも提示する為の技術を提供することを目的とする。
【課題を解決するための手段】
【００１９】
本発明の目的を達成するために、例えば、本発明の情報処理方法は以下の構成を備える。
【００２０】
即ち、複数の画像から指標の位置姿勢を推定する情報処理装置が行う情報処理方法であって、
複数の指標が配された現実空間を撮像した撮像装置から撮像画像を入力する入力工程と、
前記撮像画像からそれぞれの指標を検出する検出工程と、
前記検出工程で検出された指標の画像座標と、前記撮像装置による撮像に関する情報とを、メモリに格納する格納工程と、
前記メモリに格納された前記画像座標、及び前記情報を用いて、前記それぞれの指標の配置のスケールに関するスケール情報を表示する表示工程と
を備えることを特徴とする。
【００２１】
本発明の目的を達成するために、例えば、本発明の情報処理装置は以下の構成を備える。
【００２２】
即ち、複数の画像から指標の位置姿勢を推定する情報処理装置であって、
複数の指標が配された現実空間を撮像した撮像装置から撮像画像を入力する入力手段と、
前記撮像画像からそれぞれの指標を検出する検出手段と、
前記検出手段によって検出された指標の画像座標と、前記撮像装置による撮像に関する情報とを、前記情報処理装置が有するメモリに格納する格納手段と、
前記メモリに格納された前記画像座標、及び前記情報を用いて、前記それぞれの指標の配置のスケールに関するスケール情報を表示する表示手段と
を備えることを特徴とする。
【発明の効果】
【００２３】
本発明の構成によれば、スケール基準の入力が必要な場合にはその入力を促すと共に、どの指標に対してスケール基準を入力すべきかという情報をも提示することができる。
【発明を実施するための最良の形態】
【００２４】
以下添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００２５】
［第１の実施形態］
図１は、本実施形態に係るシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムは、撮像装置１１０と情報処理装置１とで構成されている。また、現実空間中には、複数の指標１９９が配されている。
【００２６】
撮像装置１１０は、このように複数の指標１９９が配された現実空間の動画像を撮像する。撮像した各フレームの画像（現実空間の撮像画像）は、情報処理装置１に入力される。また、撮像装置１１０には自身の位置姿勢を計測するセンサ１２３が取り付けられており、計測した位置姿勢を示すデータは、情報処理装置１に入力される。
【００２７】
情報処理装置１は、画像入力部１２０、指標検出同定部１３０、データ管理部１４０、操作部１５０、データ保持部１６０、表示部１７０、指標位置姿勢算出部１８０により構成されている。
【００２８】
画像入力部１２０は、撮像装置１１０から入力された各フレームの画像を順次後段の指標検出同定部１３０、及び表示部１７０に転送する。
【００２９】
指標検出同定部１３０は、画像入力部１２０から受けた各フレームの画像毎に次のような処理を行う。即ち、受けた画像中に写っている指標１９９を検出し、検出した指標１９９についての同定処理を行う。係る同定処理については後述する。そして指標検出同定部１３０は、係る同定処理の結果を後段のデータ管理部１４０に送出する。
【００３０】
ユーザが操作部１５０を用いて、撮像装置１１０が現在撮像しているフレームの画像データをデータ保持部１６０に登録する旨の指示を入力すると、データ管理部１４０はこの指示を検知する。そしてデータ管理部１４０は、この検知のタイミング近傍で指標検出同定部１３０から受けた同定処理結果に、センサ１２３から受けた撮像装置１１０の位置姿勢データを含めてデータ保持部１６０に登録する。
【００３１】
また、ユーザが操作部１５０を用いて、指標１９９の位置姿勢を計算する指示を入力すると、データ管理部１４０はこの指示を検知する。そしてデータ管理部１４０は係る指示を検知すると、データ保持部１６０に登録されている指標１９９の同定処理結果を指標位置姿勢算出部１８０に送出する。
【００３２】
指標位置姿勢算出部１８０は、データ管理部１４０を介してデータ保持部１６０から受けた指標１９９の同定処理結果を用いて、指標１９９の位置姿勢を求める（推定する）処理を行う。
【００３３】
一方、表示部１７０は、画像入力部１２０から順次送出される各フレームの画像を表示する。
【００３４】
なお、本実施形態では、情報処理装置１を構成する上記各部は専用のハードウェアでもって実装されているものとして説明する。
【００３５】
次に、本実施形態で用いる指標１９９について説明する。図２（ａ）は、指標１９９として適用可能な指標の一例を示す図である。同図に示す指標は正方形形状の指標（正方形指標）であり、指標領域であることを示すための境界領域（黒枠）と、その内部領域とからなる。内部領域は、縦と横とがそれぞれ５等分されており、内側の３×３領域が正方形指標の向き及び固有の識別子を表す。３×３領域の四隅（同図において丸で囲まれている領域）が正方形指標の向きを表す領域（向き決め領域）である。四隅のうちの三つは黒く塗りつぶされており、残る一つは白く塗りつぶされている。これによって正方形指標の向きを表す。各正方形指標の識別子は、３×３領域の四隅を除いた五つの領域（ビット領域）によって現される（同図において斜線で示されている領域）。ビット領域が白く塗りつぶされている場合は０、黒く塗りつぶされている場合は１を表すとすると、５つのビット領域によって５ビット、すなわち３２通りの識別子を表すことができる。
【００３６】
図２（ｂ）は正方形指標の配置について説明する図である。正方形指標の位置姿勢とは、基準座標系に対する位置及び姿勢で表現される。本実施形態では、正方形指標の位置は正方形の中心（対角線の交点）の位置であり、基準座標系に対する３次元ベクトルｔｗｍによって表す。正方形指標の姿勢は、正方形指標の座標系（指標座標系）の基準座標系に対する姿勢であるとする。姿勢の自由度は３であるので、３次元ベクトルωｗｍによって表す。
【００３７】
次に、図１に示したシステムの動作についてより詳細に説明する。
【００３８】
ユーザは撮像装置１１０を手に持ち、自由に動かしながら、図２（ａ）に示したような指標が配されている現実空間を撮像する。撮像装置１１０によって撮像された各フレームの画像は順次情報処理装置１が有する画像入力部１２０に入力される。画像入力部１２０は受けた各フレームの画像を順次指標検出同定部１３０、表示部１７０に送出する。表示部１７０は、受けた画像を順次表示する。これにより、表示部１７０の表示画面上には、撮像装置１１０が撮像している動画像が表示されることになるので、ユーザは撮像装置１１０によって撮像した画像を常に表示部１７０の画面を見ることで確認することができる。
【００３９】
また、撮像装置１１０には上述のセンサ１２３が取り付けられており、このセンサ１２３は自身の位置姿勢を計測し、計測した結果を「撮像装置１１０の位置姿勢」として情報処理装置１が有するデータ管理部１４０に送出する。センサ１２３には、例えば磁気式、光学式、超音波式などの6自由度位置姿勢センサが用いられる。
【００４０】
指標検出同定部１３０は、画像入力部１２０から受けた各フレームの画像について、画像中に含まれている指標の検出、及び同定を行う。画像から指標を検出する処理については、例えば、画像入力部１２０から受けた画像の二値画像を生成し、生成した二値画像について連結領域のラベリング処理を行い、正方形指標の境界領域である黒枠で囲まれた内部領域を抽出する。さらに、指標の内部領域について直線フィッティングを行い、内部領域の正方形の４頂点の画像座標を求める。そして、２次元射影変換によって画像上の正方形指標を正射影画像に変換し、向き決め領域及びビット領域を読み取ることにより、正方形指標の識別子を読み出し、係る正方指標の同定を行う。なお、画像中に含まれている指標を検出し同定する一連の処理については周知の技術であるので、係る処理についてのより詳細な説明は省略する。
【００４１】
データ管理部１４０は、指標検出同定部１３０による同定処理結果を受けると共に、センサ１２３から逐次送信される「撮像装置１１０の位置姿勢を示すデータ」を受ける。そして、操作部１５０から現在撮像装置１１０が撮像している画像を保存する指示（画像保存指示）が入力されると、データ管理部１４０は画像保存指示の入力を検知する。そしてデータ管理部１４０は、係る検知のタイミングに最も近いタイミングで指標検出同定部１３０から受けた同定処理結果に、係る検知のタイミングに最も近いタイミングでセンサ１２３から受けた位置姿勢データを含めて、データ保持部１６０に登録する。例えば、データ管理部１４０がｓ番目のフレームの画像からの同定処理結果を指標検出同定部１３０から受けた時に、操作部１５０からの上記画像保存指示を検知したとする。この場合、データ管理部１４０がデータ保持部１６０に登録する情報は次のようなデータセットとなる。
【００４２】
（フレーム番号（＝ｓ）、ｓ番目のフレームの画像から検出した指標の識別子、ｓ番目のフレームの画像から検出した指標の４隅の向き決め領域の画像座標、ｓ番目のフレームの画像の撮像時における撮像装置１１０の位置姿勢）
係るデータセットは、画像保存指示が入力される毎にデータ保持部１６０に登録されるものであるので、画像保存指示が入力された回数に相当する個数分、データ保持部１６０に登録されることになる。
【００４３】
更に、データ管理部１４０は、同じ指標がこれまでに何回画像から検出されているのかを常に計数している。従って、例えば、データ管理部１４０は、２回以上画像から検出された指標についての情報を、表示部１７０の表示画面上に表示する。例えば、２回以上画像から検出された指標の画像座標に、特定のマークを表示する。
【００４４】
ここで、ユーザが十分な同定処理結果をデータ保持部１６０に登録したと判断した場合には、ユーザは、操作部１５０を用いて、各指標の基準座標系における位置および姿勢を計算する指示（指標位置姿勢計算指示）を入力する。データ管理部１４０は係る指示を検知すると、データ保持部１６０に登録されている同定処理結果を指標位置姿勢算出部１８０に送出する。そして指標位置姿勢算出部１８０は、受けた同定処理結果を用いて、各指標の位置姿勢を計算する。
【００４５】
図４は、情報処理装置１が行う処理のフローチャートである。
【００４６】
先ず、ステップＳ１０１０では、画像入力部１２０が、撮像装置１１０から送出された画像を取得し、後段の指標検出同定部１３０に送出するので、指標検出同定部１３０は、この画像中に含まれている指標の検出、及び同定を行う。そして同定処理結果をデータ管理部１４０に送出する。
【００４７】
次にステップＳ１０３０では、データ管理部１４０は上記指標位置姿勢計算指示が入力されたか否かをチェックする。係るチェックの結果、入力された場合には処理をステップＳ１０６０に進め、入力されていない場合には処理をステップＳ１０４０に進める。
【００４８】
ステップＳ１０４０では、データ管理部１４０は上記画像保存指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップＳ１０１０に戻し、撮像装置１１０から出力された次のフレームの画像について以降の処理を行う。
【００４９】
一方、入力された場合には処理をステップＳ１０５０に進める。ステップＳ１０５０では、データ管理部１４０は、画像保存指示の検知タイミングに最も近いタイミングで指標検出同定部１３０から受けた同定処理結果に、係る検知タイミングに最も近いタイミングでセンサ１２３から受けた位置姿勢データを含める。そして位置姿勢データを含めた同定処理結果をデータ保持部１６０に登録する。更に、データ管理部１４０は、同じ指標がこれまでに何回画像から検出されているのかを計数し、その計数結果もデータ保持部１６０に登録する。
【００５０】
一方、ステップＳ１０６０では、データ管理部１４０はデータ保持部１６０に登録されている同定処理結果を指標位置姿勢算出部１８０に送出する。そして指標位置姿勢算出部１８０は、受けた同定処理結果を用いて、各指標の位置姿勢を計算する。
【００５１】
ここで、指標の位置姿勢の計算処理について詳細に説明する。以下の説明において、位置姿勢を求める指標の数をＮとし、撮像装置１１０によって撮像した画像の枚数（即ち上記データセットの個数）をＭとする。また、指標i（i=1,2,…,N）の位置姿勢を表す6次元ベクトルをai、画像j（j=1,2,…,M）を撮像した撮像装置１１０の位置姿勢を表す6次元ベクトルをsjと表す。指標の位置姿勢を表す6次元ベクトルaは、指標の基準座標系における位置ｔｗｍ＝［ｔｗｍｘ  ｔｗｍｙ  ｔｗｍｚ］ｔ、基準座標系に対する姿勢ωｗｍ＝［ωｗｍｘ  ωｗｍｙ  ωｗｍｚ］ｔの各成分からなるベクトルである。従って、ａ＝［ｔｗｍｘ  ｔｗｍｙ  ｔｗｍｚ  ωｗｍｘ  ωｗｍｙ  ωｗｍｚ］ｔのように表すことができる。撮像装置１１０の基準座標系における位置をｔｗｃ＝［ｔｗｃｘ  ｔｗｃｙ  ｔｗｃｚ］ｔ、基準座標系に対する姿勢をωｗｃ＝［ωｗｃｘ  ωｗｃｙ  ωｗｃｚ］ｔとすると、撮像装置１１０の位置姿勢を表す6次元ベクトルをsも同様に、ｓ＝［ｔｗｃｘ  ｔｗｃｙ  ｔｗｃｚ  ωｗｃｘ  ωｗｃｙ  ωｗｃｚ］ｔのように表すことができる。
【００５２】
正方形指標の各頂点の指標座標系における座標Ｘｍｋ＝［ｘｍｋ  ｙｍｋ  ｚｍｋ］ｔ  （k=1,2,3,4）は、正方形の一辺の長さをeとして、例えば（式１）のように表すことができ、正方形の一辺の長さがわかる場合には既知の値となる。
【００５３】
【数１】
2008140047.tif 000003
【００５４】
基準座標系に対する位置姿勢がtwm、ωｗｍである指標の指標座標がＸｍである頂点の基準座標系に対する位置姿勢がtwc、ωwcである撮像装置１１０のカメラ座標Ｘｃは（式２）のように表すことができる。
【００５５】
【数２】
2008140047.tif 000004
【００５６】
但し、Ｒ（ωｗｃ）、Ｒ（ωｗｍ）はそれぞれωｗｃ、ωｗｍで表される姿勢を表す３×３回転変換行列である。また、カメラ座標がＸｃ＝［ｘｃ  ｙｃ  ｚｃ］ｔである点が焦点距離がfであるピンホールカメラによって画像上に投影される位置Ｕ＝［ｕｘ  ｕｙ］ｔは、（式３）のように表すことができる。
【００５７】
【数３】
2008140047.tif 000005
【００５８】
すなわち、Ｕは指標の位置姿勢twm、ωwm、撮像装置１１０の位置姿勢twc、ωwcの関数となる。よって、指標iの頂点k（k=1,2,3,4）の画像j上における投影像の位置を表す2次元ベクトルui,j,kは、（式４）に示すように、ai、sjの関数となる。
【００５９】
【数４】
2008140047.tif 000006
【００６０】
指標iの頂点kの画像j上における投影像の実際の画像上での観察位置をｕ＾i,j,kと表すと、観察位置ｕ＾i,j,kと、ai、sjから計算されるui,j,kとの誤差Δｕi,j,k（＝ｕ＾i,j,k−ｕi,j,k）は（式５）のように１次近似することができる。
【００６１】
【数５】
2008140047.tif 000007
【００６２】
∂ｕi,j,k／∂ａｉ、∂ｕi,j,k／∂ｓｊは（式４）において、ui,j,kをそれぞれai、sjの各成分によって偏微分したときの偏微分係数を並べたヤコビ行列である。（式５）を各画像中で検出同定された各指標の各頂点について立て、すべてのΔａｉ  （i=1,2,…,N）、Δｓｊ  （j=1,2,…,M）を共通の未知変数として連立方程式として解くことにより、Δａｉ  （i=1,2,…,N）、Δｓｊ  （j=1,2,…,M）を得ることができる。予め、ai、sjには初期値を与えておき、Δａｉ  （i=1,2,…,N）、Δｓｊ  （j=1,2,…,M）を求めて、ａｉ＝ａｉ＋Δａｉ、ｓｊ＝ｓｊ＋Δｓｊという補正を行う操作を繰り返すことで、指標の位置姿勢ａｉ  （i=1,2,…,N）を求める。
【００６３】
なお、指標の位置姿勢の初期値は、予め概略の位置を手動で計測しておく。また、位置姿勢がわかっている撮像装置１１０によって撮像した画像上の指標の投影像をもとに求めてもよい。
【００６４】
以上説明した処理によって、予め入力されていた指標の初期位置姿勢に基づくスケール基準による計算結果が求められる。
【００６５】
次にステップＳ１１１０では、データ管理部１４０は、スケール情報が十分な精度であるか否かをチェックする。係るチェックの結果、十分ではない場合には処理をステップＳ１１２０に進め、十分である場合には本処理を終了する。
【００６６】
例えば予め正確な初期位置を計測した指標の中でもっとも距離が長い物が1メートルであり、ステップＳ１０６０で求められた指標の位置姿勢の中で最も距離の遠い指標間の距離が１０メートルであるとする。この場合、誤差が約１０倍に拡大し、指標の精度が不十分と判断できる。１０倍未満であれば、十分な精度であると判断する。この精度はユーザの要求に応じて変わるため、１０倍というのは決まった基準ではなく、その時の要求精度に応じて何倍までを基準にするかを予め決めておく。
【００６７】
例えば図３に示すような指標の配置で指標ID0と指標ID1との間の距離が入力されていた場合を例に取る。図３は、４つの指標（ＩＤ０〜ＩＤ４）の配置例を示す図である。
【００６８】
この場合、全４個の指標間で最も距離の長い指標ID0と指標ID3との間の距離が指標ID0と指標ID1との間の距離に対して１０倍以上大きい事によって、スケールの精度が十分ではないという判断ができる。判断する基準は、このように倍率だけではなく、正確に入力された指標間の距離と、計測された指標の中での最大の指標間の距離の差によって判断する等、さまざまな判定方法が考えられ、これらの判断方法に制限されるものではない。
【００６９】
図４に戻ってステップＳ１１２０では、データ管理部１４０は、図６に例示するようなＧＵＩ（グラフィカルユーザインターフェース）を表示部１７０の表示画面上に表示する。これにより、スケール基準情報として十分に遠い指標間の距離を領域６９９内に入力することを促す。図６は、指標間の距離を入力するためのＧＵＩの表示例を示す図である。
【００７０】
そして、ユーザは操作部１５０を用いて、スケール基準情報として十分に遠い指標間の距離を領域６９９内に入力するので、ステップＳ１１３０では、データ管理部１４０は係る入力を受け付ける。
【００７１】
そしてステップＳ１１４０では、指標位置姿勢算出部１８０は、領域６９９に対して距離の入力がなされ、処理を続行する旨の指示を操作部１５０を介して検知すると、スケールの再計算を行う。そしてその後、処理をステップＳ１１１０に進める。
【００７２】
ステップＳ１１１０では、データ管理部１４０は再びスケール情報が十分か否かの判断を行い、十分であれば処理を終了する。一方、十分ではない場合には処理をステップＳ１１２０に進め、以降、同様の処理を行う。
【００７３】
以上の説明により本実施形態によれば、ユーザがスケール情報の入力と精度の関係について知識を持たない場合であっても、システムがスケール精度の低下の可能性を自動的に検知して、入力を促す事により容易に、指標の位置姿勢を正確に求めることができる。
【００７４】
［変形例１−１］
上記説明では、ＧＵＩを介してユーザにスケール基準の入力を促すだけであった。しかし、その時に同時に、ステップＳ１０６０で位置姿勢が計算された指標の中から、十分な距離を持った指標の組を一つ以上提示する事により、より容易にスケール情報をユーザが入力することができる。
【００７５】
［変形例１−２］
変形例１−１では、入力候補の指標の組を一つ以上表示するだけであった。しかし、それぞれの指標間の距離をステップＳ１０６０で計算された位置姿勢に基づいて計算し、その計算結果を表示することで、ユーザが、計測のし易さと精度の向上のトレードオフを考えた上でどの指標の組を選択するかを判断する事ができる。
【００７６】
このとき表示する距離は正確な距離ではないが、相対的な指標間の距離の比率としてはほぼ正しい値を表示できるため問題は無い。
【００７７】
図５は、本変形例で複数の候補を提示している表示例を示す図である。
【００７８】
［変形例１−３］
第１の実施形態では、ある一定量のデータセットの取得後に１回だけステップＳ１０６０における処理を行うものとしている。しかし、限られた数のデータセットを用いて指標の位置姿勢計算を逐次的に行い。少しずつ広い範囲に位置姿勢計算対象を広げていくといった方法も考えられる。
【００７９】
このような場合には、初期の段階の位置姿勢計算ではスケールの誤差として問題が無かったものが、画像を追加し、位置姿勢計算を進めていく途中でスケール情報が不足する可能性がある。その場合には、位置姿勢の計算対象となる指標の追加を行う毎にステップＳ１１１０と同等の判断を行うことにより、必要になった段階で、ユーザが気がついていなくても、適切にスケール基準情報を入力する事ができる。
【００８０】
［変形例１−４］
第１の実施形態では位置姿勢計算の対象となる指標を正方形指標としたが、点形状の指標や、その他自然特徴を利用しても、上記説明の本質は変わらない。
【００８１】
［変形例１−５］
変形例１−２、変形例１−３において距離のみを候補表示の条件としていたが、計測者が測定可能な指標の組の最大距離を入力し、その範囲内での候補を表示するしても良い。幾何学的に測定不可能な、例えば柱の両側に貼られた指標の組などを候補から除外するなどで、スケールを入力すべき好適な指標の組をより容易にユーザが選択する事が可能になる。
【００８２】
また、第１の実施形態では、撮像装置１１０の位置姿勢をセンサ１２３によって取得していたが、これ以外の方法を用いて撮像装置１１０の位置姿勢を取得しても良い。例えば、基準座標系における位置姿勢が既知の指標を撮影した画像をDLT（Direct Linear Transform）法などの公知の手法を利用して求めてもよい。
【００８３】
以上の各変形例を含め、本実施形態によれば、指標の位置姿勢計測を行うための画像取得を行う際に、ユーザにスケールの誤差が大きくなる事や、スケールを入力すべき指標の組を提示することができる。これによりユーザは、容易にスケール基準を入力する事が可能になり、容易にスケールの正しい較正結果を得る事が可能になる。
【００８４】
［第２の実施形態］
第１の実施形態では、情報処理装置１を構成する上記各部は専用のハードウェアで実装されているものとして説明した。しかし、指標検出同定部１３０、データ管理部１４０、指標位置姿勢算出部１８０はソフトウェアで実装しても良い。この場合、係るソフトウェアは、例えば、一般のＰＣ（パーソナルコンピュータ）によって実行可能である。
【００８５】
図７は、情報処理装置１に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【００８６】
ＣＰＵ７０１は、ＲＡＭ７０２やＲＯＭ７０３に格納されているプログラムやデータを用いて、本コンピュータ全体の制御を行うと共に、情報処理装置１が行う上述の各処理を実行する。
【００８７】
ＲＡＭ７０２は、Ｉ／Ｆ（インターフェース）７０７を介して撮像装置１１０から入力した各フレームの画像を一時的に記憶するためのエリア、外部記憶装置７０６からロードされたプログラムやデータを一時的に記憶するためのエリアを有する。更には、ＲＡＭ７０２は、ＣＰＵ７０１が各種の処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ７０２は、各種のエリアを適宜提供することができる。
【００８８】
ＲＯＭ７０３には、本コンピュータの設定データや、ブートプログラムなどが格納されている。
【００８９】
操作部７０４は、キーボードやマウスなどにより構成されており、ユーザが操作することで、各種の指示をＣＰＵ７０１に対して入力することができる。この操作部７０４は、図１に示した操作部１５０に相当するものである。
【００９０】
表示部７０５は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ７０１による処理結果を画像や文字などでもって表示することができる。この表示部７０５は、図１に示した表示部１７０に相当するものである。
【００９１】
外部記憶装置７０６は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。ここには、ＯＳ（オペレーティングシステム）や、情報処理装置１が行う上記各処理をＣＰＵ７０１に実行させるためのプログラムやデータが保存されている。即ち、指標検出同定部１３０、データ管理部１４０、指標位置姿勢算出部１８０の機能をＣＰＵ７０１に実行させるためのプログラムやデータは外部記憶装置７０６に保存されている。また、上記説明において、既知の情報として説明したものもこの外部記憶装置７０６に保存されている。換言すれば、図４に示したフローチャートに従った処理をＣＰＵ７０１に実行させるためのプログラムやデータは、外部記憶装置７０６に保存されていることになる。
【００９２】
外部記憶装置７０６に保存されているプログラムやデータは、ＣＰＵ７０１による制御に従って適宜ＲＡＭ７０２にロードされる。そしてＣＰＵ７０１はこのＲＡＭ７０２にロードされたプログラムやデータを用いて処理を実行することになる。
【００９３】
Ｉ／Ｆ７０７は、図１に示した画像入力部１２０として機能するものであり、撮像装置１１０をコンピュータに接続するためのものである。撮像装置１１０により撮像された各フレームの画像は、このＩ／Ｆ１４０７を介してＲＡＭ７０２や外部記憶装置７０６に入力される。
【００９４】
Ｉ／Ｆ７０８は、図１に示したセンサ１２３を本コンピュータに接続するためのもので、センサ１２３により計測された結果はこのＩ／Ｆ７０８を介してＲＡＭ７０２や外部記憶装置７０６に送出される。
【００９５】
７０９は上述の各部を繋ぐバスである。
【００９６】
なお、図７に示した構成は主要な構成を示したのみであり、係る構成に更なる構成を付加したものを用いても良いし、図７に示した構成と同等の他の構成を用いても良い。
【００９７】
なお、上記各実施形態、各変形例は適宜組み合わせても良い。
【００９８】
［その他の実施形態］
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００９９】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１００】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【０１０２】
【図１】本発明の第１の実施形態に係るシステムの機能構成を示すブロック図である。
【図２】（ａ）は、指標１９９として適用可能な指標の一例を示す図、（ｂ）は正方形指標の配置について説明する図である。
【図３】４つの指標（ＩＤ０〜ＩＤ４）の配置例を示す図である。
【図４】情報処理装置１が行う処理のフローチャートである。
【図５】変形例１−２で複数の候補を提示している表示例を示す図である。
【図６】指標間の距離を入力するためのＧＵＩの表示例を示す図である。
【図７】情報処理装置１に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図１】
2008140047.tif 000008
【図２】
2008140047.tif 000009
【図３】
2008140047.tif 000010
【図４】
2008140047.tif 000011
【図５】
2008140047.tif 000012
【図６】
2008140047.tif 000013
【図７】
2008140047.tif 000014