画像処理装置、画像処理方法
【課題】 現実空間中に配された指標の位置姿勢をこの現実空間を撮像することで得られる画像から求める為にユーザが次に行うべき操作内容を、このユーザに分かり易く提示する為の技術を提供すること。また、指標の位置を求めるための手間を軽減させるための技術を提供すること。
【解決手段】 撮像画像中に含まれている指標について同定処理を行うことで、識別子、画像座標、画像番号、のセットを、指標毎に取得し、取得したセットをデータ保存部160に登録する。データ保存部160は、識別子毎に、過去に同定された回数を管理する。表示部170は、セットを登録する毎に、登録するセット中の識別子について管理している回数を表示する。指標位置姿勢算出部180は、メモリに登録されているセット群を用いて、セット群に対応する指標の位置姿勢を計算する。
【解決手段】 撮像画像中に含まれている指標について同定処理を行うことで、識別子、画像座標、画像番号、のセットを、指標毎に取得し、取得したセットをデータ保存部160に登録する。データ保存部160は、識別子毎に、過去に同定された回数を管理する。表示部170は、セットを登録する毎に、登録するセット中の識別子について管理している回数を表示する。指標位置姿勢算出部180は、メモリに登録されているセット群を用いて、セット群に対応する指標の位置姿勢を計算する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、現実空間中に配されている指標の位置姿勢を求めるための技術に関するものである。
【背景技術】
【0002】
近年、複合現実感(Mixed Reality; MR)技術の研究が盛んである。MR技術は、現実空間とコンピュータによって作られる仮想空間とを継ぎ目なく融合する技術である。MR技術の中でも、現実空間に仮想空間を重ね合わせて表示するAugmented Reality(AR、拡張現実感、増強現実感とも呼ばれる)技術が特に注目を集めている。
【0003】
AR技術における画像表示装置は、ビデオシースルー方式か、光学シースルー方式によって実現される。ビデオシースルー方式とは、ビデオカメラ等の撮像装置によって撮像された現実空間の画像に、この撮像装置の位置及び姿勢に応じて生成された仮想空間の画像を重畳描画した合成画像を表示する方式である。ここで、仮想空間の画像は、コンピュータグラフィクスにより描画された仮想物体や文字情報等により構成されている。また、光学シースルー方式とは、観察者の頭部に装着された光学シースルー型ディスプレイに、観察者の視点の位置及び姿勢に応じて生成された仮想空間の画像を表示する方式である。
【0004】
AR技術は、患者の体表面に体内の様子を重畳表示する手術支援や、空き地に仮想のビルを重畳表示する建築シミュレーション、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援等様々な分野への応用が期待される。
【0005】
AR技術において最も重要な課題の一つは、現実空間と仮想空間との間の位置合わせをいかに正確に行うかということであり、従来より多くの取り組みが行われてきた。ARにおける位置合わせの問題は、ビデオシースルー方式の場合はシーン中における(すなわちシーン中に規定された基準座標系における)撮像装置の位置及び姿勢を求める問題に帰結する。同様に、光学シースルー方式の場合は、シーン中における観察者の視点あるいはディスプレイの位置及び姿勢を求める問題に帰結する。
【0006】
前者の問題を解決する方法としては次のようなものが一般的である。即ち、シーン中に複数の指標を配置あるいは設定し、撮像装置が撮像した画像内における指標の投影位置と、既知の情報である指標の基準座標系における位置との対応関係から、基準座標系における撮像装置の位置及び姿勢を求める。また、後者の問題を解決する方法としては次のようなものが一般的である。即ち、計測対象物(すなわち観察者の頭部あるいはディスプレイ)に撮像装置を装着し、前者と同様な方法によって撮像装置の位置及び姿勢を求め、それに基づいて計測対象物の位置及び姿勢を求めることが一般的に行われている。
【0007】
画像上の指標の投影像とその指標の3次元位置との対応関係に基づいて撮像装置の位置及び姿勢を求める方法は、写真測量の分野において古くから提案されている(非特許文献1を参照)。
【0008】
また、非特許文献2には次のようなことが提案されている。即ち、前述の画像上の指標の投影像に基づいて求めた撮像装置の位置及び姿勢を初期値とし、画像上での指標の投影像の実際の観察位置と投影像の計算位置との誤差が最小になるように反復演算によって撮像装置の位置及び姿勢を最適化することが行われている。ここで、投影像の計算位置とは、指標の3次元位置と撮像装置の位置及び姿勢から計算される投影像の位置のことである。
【0009】
以上の方法によって、撮像装置が撮像した画像に基づいて、撮像装置の位置及び姿勢を求めることが従来からなされてきた。
【0010】
一方、例えば特許文献1、2や非特許文献3で開示されているよなことも従来からなされてきた。即ち、計測対象である撮像装置に磁気センサや超音波センサ等の6自由度位置姿勢センサを取り付け、前述のような画像処理による指標の検出との併用によって位置及び姿勢を計測することも行われている。センサの出力値は測定範囲によって精度は変わるが安定的に得ることができるため、センサと画像処理を併用する方法は、画像処理だけによる方法に比べてロバスト性を向上させることができる。
【0011】
特許文献2では、6自由度位置姿勢センサから得られる撮像装置の位置及び姿勢を初期値とし、前述の画像上での指標の投影像の観察位置と計算位置との誤差を反復演算によって最小化することによって、撮像装置の位置及び姿勢を得ている。
【0012】
以上で述べた指標を利用した位置合わせ手法では、計測対象である撮像装置の基準座標系における位置及び姿勢を求める為には次のような情報が既知である必要がある。即ち、空間中に存在する同一色の円領域といった点形状の指標(点指標)の場合にはその重心の基準座標系における位置、基準座標系に対する指標の姿勢、が既知である必要がある。また、三角形や正方形といった多角形形状の指標の場合にはその重心の基準座標系における位置が既知である必要がある。正方形指標などの多角形形状の指標の場合には、基準座標系を別途設けることなく、指標そのものを座標系の基準とする場合が多い。しかし、複数の指標を用いる場合には、互いの位置及び姿勢の関係が既知である必要があるため、基準座標系が必要であることに変わりはない。
【0013】
指標の位置及び姿勢の計測は、巻尺や分度器を用いた手作業や、測量器によって行うことが可能であるが、精度や手間の問題から、画像を利用した計測が行われている。点指標の位置計測は、バンドル調整法と呼ばれる方法で行うことができる。
【0014】
バンドル調整法とは、次のような手法である。即ち、撮像装置によって点指標の画像を多数撮像し、画像上での点指標の投影像の観察位置を求める。そして求めた観察位置と、点指標の3次元位置及び撮像装置の位置姿勢をもとに計算される点指標の投影像の計算位置と、の誤差(投影誤差)が最小になるように、繰返し演算によって点指標の位置と撮像装置の位置姿勢の補正を繰り返し行う。これにより、点指標の位置を求める。
【0015】
また、非特許文献4では、3次元空間中に配置された多数の正方形指標の位置及び姿勢を計測する方法が開示されている。非特許文献4では、3次元空間中に配置された多数の正方形指標の画像を多数撮像し、投影誤差が最小になるように、繰返し演算によって各画像を撮像した撮像装置の位置及び姿勢と、正方形指標の位置及び姿勢を求めている。
【0016】
また、上記MRやARを実現するためには、撮像装置の位置姿勢を測定する必要がある。撮像装置の位置姿勢を測定するための1つの技術としては、現実空間中で位置が既知の指標を撮像装置によって撮像し、撮像した画像を用いる方法がある。
【0017】
しかし「現実空間中の位置が既知の指標」を現実空間中に配置する際には当然、その位置を計測する必要があるが、その計測には手間がかかる。そこで、現実空間中に配した指標を複数の撮像装置によって撮像することで得られる複数枚の画像を用いて、この指標の位置を計算する「指標キャリブレーションツール」が提案されている(非特許文献5を参照)。係る指標キャリブレーションツールを使用することにより、簡便に現実空間における指標の位置を測定することができる。
【特許文献1】特開平11-084307号公報
【特許文献2】特開2000-041173号公報
【非特許文献1】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.
【非特許文献2】加藤, M. Billinghurst, 浅野, 橘: “マーカー追跡に基づく拡張現実感システムとそのキャリブレーション”, 日本バーチャルリアリティ学会論文誌, vol.4, no.4, pp.607-616, 1999.
【非特許文献3】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.
【非特許文献4】G. Baratoff, A. Neubeck and H. Regenbrecht: “Interactive multi-marker calibration for augmented reality applications”, Proc. ISMAR2002, pp.107-116, 2002.
【非特許文献5】D. Kotake, S. Uchiyama, and H. Yamamoto: "A marker calibration method utilizing a priori knowledge on marker arrangement," Proc. 3rd IEEE/ACM Int'l Symp. on Mixed and Augmented Reality (ISMAR 2004), pp.89-98, November 2004.
【発明の開示】
【発明が解決しようとする課題】
【0018】
前述したバンドル調整法を用いた点指標の位置計測手法では、一つの指標について最低二枚以上の画像を撮像しないと、正確な位置姿勢を求めることができない。点指標の場合、一枚の画像にしか撮像されない場合には、点指標が3次元空間中に存在する直線が決定されるだけで、撮像装置の奥行き方向の位置が不定になる。そのため位置計測に最低限必要な画像が取得できているかどうかという情報は重要である。
【0019】
また撮像する上では、各々の指標が基準となる指標であるか、較正の対象となる指標であるかを示す情報が重要である。
【0020】
また、較正を行った結果として、特定の指標の較正ができない場合がある。その場合は計算の障害となった画像を削除しない限りは、計算のエラーは解消しない場合が多く、どの画像が障害であるのかを示す情報が必要である。
【0021】
また較正を行った後に画像データを追加して再度較正を行う場合には、どの指標がすでに較正済かという情報が必要になる。
【0022】
また、正方形指標などの多角形形状の指標の場合には、指標自体が固有のIDを持っており、予め較正対象として指定されていない場合でも、画像から指標が認識された時点で、自動的に較正対象として追加する事が可能である。しかし、自動追加された指標は、本来較正対象に加えたくない指標である可能性もあるため、自動追加された指標が予め指定されていた指標か否かを示す情報は必要である。
【0023】
また、指標が撮像される画像の枚数が多ければ多いほど、誤差が多数の画像に分散されることによって、少ない画像枚数の場合に比べてより精度の高い位置姿勢を得ることができる。そのため、位置姿勢を求めたい指標が撮像される回数がなるべく多くなるように指標を撮影することが望ましい。そのため各指標の撮像回数の情報を提示する必要がある。しかし、上述のように、較正用の画像の取得に対しては、さまざまな条件を考慮する必要があり、それらの条件を組み合わせて、操作者が次に何をすればよいかを判断するのが難しかった。
【0024】
本発明は以上の問題に鑑みてなされたものであり、現実空間中に配された指標の位置姿勢をこの現実空間を撮像することで得られる画像から求める為にユーザが次に行うべき操作内容を、このユーザに分かり易く提示する為の技術を提供することを目的とする。
【0025】
また、上記指標キャリブレーションツールを用いて現実空間中における指標の位置を効率よく取得するには、すべての指標をまんべんなく撮像する必要がある。これは、各指標に関して均等に位置情報を蓄積することが必要であるといえる。
【0026】
しかし、従来のシステムでは、どの指標が既に撮像されたかの情報は提供されていなかった。そのため利用者は指標を撮像する際には、個々の指標ついて既に撮像されているかどうかを覚えている必要があった。また撮像し忘れた指標がある際には撮像しなおさなければならず、指標の位置を求めるためには手間がかかっていた。
【0027】
本発明の別の目的は、指標の位置を求めるための手間を軽減させるための技術を提供することにある。
【課題を解決するための手段】
【0028】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【0029】
即ち、複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得手段と、
前記取得手段が取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録手段と、
前記登録手段が同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理手段と、
前記登録手段が前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理手段が管理している回数を表示する表示手段と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算手段と
を備えることを特徴とする。
【0030】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【0031】
即ち、複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得工程と、
前記取得工程で取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録工程と、
前記登録工程で同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理工程と、
前記登録工程で前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理工程で管理している回数を表示する表示工程と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算工程と
を備えることを特徴とする。
【発明の効果】
【0032】
本発明の構成によれば、現実空間中に配された指標の位置姿勢をこの現実空間を撮像することで得られる画像から求める為にユーザが次に行うべき操作内容を、このユーザに分かり易く提示することができる。
【0033】
また、指標の位置を求めるための手間を軽減させることもできる。
【発明を実施するための最良の形態】
【0034】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【0035】
[第1の実施形態]
図1は、現実空間中に配されている指標の位置姿勢を求めるための、本実施形態に係るシステムの機能構成を示すブロック図である。図1に示す如く、本実施形態に係るシステムは、撮像部110と画像処理装置1とで構成されている。
【0036】
先ず、撮像部110について説明する。撮像部110は、複数の指標100が配されている現実空間の画像を複数枚撮像する装置であり、例えば、現実空間の動画像を撮像するビデオカメラである。撮像部110が撮像した各フレームの画像(現実空間画像、撮像画像)は順次、後段の画像処理装置1に入力される。
【0037】
次に、画像処理装置1について説明する。図1に示す如く、画像処理装置1は、画像入力部120、指標検出同定部130、データ管理部140、操作部150、データ保存部160、表示部170、指標位置姿勢算出部180により構成されている。
【0038】
画像入力部120は、撮像部110から順次送出される撮像画像を受けると、受けた順に後段の指標検出同定部130、表示部170に送出する。これにより、表示部170の表示画面上には、撮像部110が撮像している現実空間の動画像が表示されていることになる。
【0039】
指標検出同定部130は、画像入力部120から受けた撮像画像中に指標が含まれている場合には、この指標についての同定を行い、その同定結果のデータは後段のデータ管理部140に送出する。
【0040】
データ管理部140は、指標検出同定部130から受けた同定結果のデータを管理するものである。データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示を入力したことを検知すると、指標検出同定部130から受けた同定結果のデータをデータ保存部160に登録する。
【0041】
また、データ管理部140は、指標検出同定部130から受けた最新の同定結果のデータとデータ保存部160に既に登録されている同定結果のデータとを比較し、過去に複数回同定されている指標についての情報を表示部170に送出する。係る処理について詳しくは後述する。
【0042】
また、データ管理部140は、ユーザが操作部150を用いて「指標の位置姿勢計算」の指示を入力したことを検知すると、データ保存部160から適宜同定結果のデータを読み出し、指標位置姿勢算出部180に送出する。
【0043】
指標位置姿勢算出部180は、データ管理部140から受けた同定結果のデータを用いて、指標の位置姿勢を計算する。
【0044】
なお、図1には、指標位置姿勢算出部180が求めた指標の位置姿勢のデータの出力先については特に図示していないが、出力先については、ここでの主眼とするところではないので示していない。しかし、一般に、撮像画像から求めた指標の位置姿勢のデータの利用方法については周知のものであるので、ここでの説明、及び図示は省略する。
【0045】
次に、本実施形態で用いる指標について説明する。図2は、本実施形態で用いる指標を説明する図である。本実施形態では、図2(a)に示されるような正方形形状の指標(以下、正方形指標)を、位置姿勢の計算対象とする。正方形指標は、図2(a)に示すように、指標領域であることを示すための境界領域(黒枠)と内部領域からなる。内部領域は、縦と横がそれぞれ5等分されており、内側の3×3領域が正方形指標の向き、及び固有の識別子(識別情報)を表す。3×3領域の四隅(図2(a)において丸で囲まれている領域)が正方形指標の向きを表す領域(向き決め領域)である。四隅のうちの三つは黒く塗りつぶされており、残る一つは白く塗りつぶされている。これによって正方形指標の向きを表す。正方形指標の識別子は、3×3領域の四隅を除いた5つの領域(ビット領域)によって現される(図2(a)において斜線で示されている領域)。5つの領域のそれぞれは、白く塗りつぶされている場合は0、黒く塗りつぶされている場合は1を表すとすると、5ビット、すなわち32通りの識別子を表すことができる。
【0046】
図2(b)は正方形指標の配置情報を説明する図である。正方形指標の配置情報は基準座標系に対する位置及び姿勢で表現される。本実施形態では、正方形指標の位置は正方形の中心(対角線の交点)の位置であり、基準座標系に対する3次元ベクトルtwmによって表す。正方形指標の姿勢は、図2(b)に示すように、基準座標系に対する正方形指標の座標系(指標座標系)の姿勢であるとする。姿勢の自由度は3であるので、3次元ベクトルωwmによって表す。
【0047】
ここで、基準座標系とは、例えば、現実空間中の1点を原点とし、係る原点で互いに直交する3軸をそれぞれx軸、y軸、z軸とする座標系のことである。また、指標座標系とは、例えば、正方形指標の中心を原点とし、正方形指標の一辺に沿った方向をx軸、係る一辺に隣接する辺に沿った方向をy軸、正方形指標の法線方向をz軸とする座標系のことである。
【0048】
次に、本実施形態に係るシステムの動作について、より詳細に説明する。
【0049】
撮像部110は上述の通り、複数の指標100(正方形指標)が配されている現実空間の画像を、ユーザによる操作とは無関係に複数枚撮像するものである。以下の説明では、撮像部110は動画像を撮像するビデオカメラであるとする。撮像部110が撮像した各フレームの撮像画像は画像入力部120に入力される。
【0050】
画像入力部120は、撮像部110から順次送出される撮像画像をそのまま表示部170に転送する。これにより、表示部170の表示画面上には、撮像部110が撮像した撮像画像、即ち、複数の指標100が配された現実空間の動画像が表示されることになる。従って、ユーザは、表示部170の表示画面上に表示されている動画像を確認しながら、位置姿勢を求める対象となる指標100が撮像部110によって撮像されるように、撮像部110の位置や姿勢を動かすことができる。
【0051】
一方、画像入力部120は、撮像部110から受けた各フレームの撮像画像を指標検出同定部130にも送出する。
【0052】
指標検出同定部130は上述の通り、画像入力部120から受けた撮像画像中に指標100が存在する場合には、係る指標100を同定する処理を行う。正方形指標としての指標100を撮像画像から検出するために、指標検出同定部130は撮像画像について二値化、及び連結領域のラベリングを行い、正方形指標の境界領域である黒枠で囲まれた内部領域を抽出する。更に指標検出同定部130は、正方形指標の内部領域について直線フィッティングを行い、内部領域の正方形の4頂点の画像座標を求める。そして、2次元射影変換によって撮像画像上の正方形指標を正射影画像に変換し、向き決め領域及びビット領域を読み取ることにより、正方形指標の識別子を読み出し、同定を行う。なお、指標100の同定については、どのような指標100を用いるのかに応じて変わるものであり、指標100の同定方法は、指標100に応じて適宜対応すればよい。
【0053】
指標検出同定部130は、撮像画像中に指標100が含まれている場合には、係る指標100について、指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標、のセット(抽出指標セット)を求める。係る抽出指標セットは、撮像画像中の指標100毎(指標毎)に求めるものである。フレーム番号については、画像入力部120が各フレームの撮像画像を入力する毎にカウントするカウント値を用いればよい。もちろん、フレーム番号に限定するものではなく、各フレームの撮像画像を一意に特定できるものであれば、如何なるものを画像識別情報として用いても良い。
【0054】
指標検出同定部130は、撮像画像中に含まれる指標100毎の上記抽出指標セットを後段のデータ管理部140に送出する。
【0055】
そして、データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示を入力したことを検知すると、指標検出同定部130が撮像画像から検出した各指標100についての抽出指標セットをデータ保存部160に登録する。即ち、データ保存部160には、「画像保存」の指示が入力される毎に、「指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標」のセットが登録されることになる。
【0056】
また、係る登録処理の際には、図5に例示するような指標管理テーブルもデータ保存部160内に作成する。図5は、指標管理テーブルの構成例を示す図である。指標管理テーブルには各指標100について、撮像画像から検出された回数、対応する抽出指標セットが画像から指標100を同定することで得られたものか、ユーザが手動で入力したものかを示す情報、位置姿勢を求めたのか否かを示す情報等を登録する。
【0057】
図5において「指標ID」の列には、指標の識別子を登録する。「入力種別」の列には、対応する識別子の指標(同じ行に登録されている識別子の指標)が撮像画像から求めたもの(自動検出)であるのか、手動でユーザが登録したもの(ユーザ定義)であるのかを示す情報を登録する。「撮影回数」の列には、対応する識別子の指標が過去に撮像画像から検出された回数を登録する。「較正状態」の列には、対応する識別子の指標の位置姿勢を求めたのか否かを示す情報を登録する。
【0058】
例えば、図5では、指標ID(識別子)=1の指標についての抽出指標セットはユーザが手動でデータ保存部160に登録したものであり、係る指標は過去に2回撮像画像から検出されており、且つ係る指標は位置姿勢が既知の基準指標である。
【0059】
即ち、データ管理部140はある抽出指標セット(注目抽出指標セット)をデータ保存部160に登録する際には先ず、注目抽出指標セット中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されているのかをチェックする。係るチェックの結果、登録されていない場合、「指標ID」の最後の行に注目抽出指標セット中の識別子を登録し、「入力種別」の最後の行に「自動検出」を登録し、「撮影回数」の最後の行に「1」を登録し、「較正状態」の最後の行に「未推定」を登録する。一方、係るチェックの結果、登録されている場合には、注目抽出指標セット中の識別子を登録している行における「撮影回数」の欄における数値に1を加算する。そして加算した結果が予め設定された値(例えば2)以上であれば、係る指標を用いて撮像部110の位置姿勢を求める処理を行い、対応する「較正状態」の欄に「概略計算済み」を登録する。
【0060】
またデータ管理部140は、注目抽出指標セットをデータ保存部160に登録する際、注目抽出指標セット中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されている場合には、次の処理を行う。即ち、注目抽出指標セットについて、図5に示した指標管理テーブルに登録した情報を表示部170に送出する。例えば、注目抽出指標セット中の識別子=13である場合には、指標ID=13に対応する「入力種別」=「自動検出」、「撮影回数」=「4」、「較正状態」=「概略計算済み」を表示部170の表示画面上に追加表示する。
【0061】
ここで、表示部170の表示画面上に表示されている全ての指標について撮影回数が2以上である等、指標100の位置姿勢を計算するために十分な画像を撮像したとユーザが判断した場合には、操作部150を用いて「指標の位置姿勢計算」の指示を入力する。
【0062】
データ管理部140は係る指示の入力を検知すると、指標管理テーブルに登録されている各識別子に対応する抽出指標セットをデータ保存部160から読み出し、指標位置姿勢算出部180に送出する。
【0063】
指標位置姿勢算出部180は、受けた各抽出指標セットを用いて、各指標100の基準座標系における位置姿勢を計算する。計算方法については後述する。
【0064】
図4は、画像処理装置1が指標100の基準座標系における位置姿勢を計算するための処理のフローチャートである。
【0065】
ステップS4000では、画像入力部120は、撮像部110から順次送出される撮像画像をそのまま表示部170に転送すると共に、指標検出同定部130にも送出する。
【0066】
次にステップS4010では、指標検出同定部130は上述の通り、画像入力部120から受けた撮像画像中に指標100が存在する場合には、係る指標100を同定する処理を行う。そして係る指標100について、指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標、のセット(抽出指標セット)を求める。そして指標検出同定部130は、撮像画像中に含まれる指標100毎の抽出指標セットを後段のデータ管理部140に送出する。
【0067】
次にステップS4020では、データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS4000に戻す。一方、入力されている場合には処理をステップS4030に進める。
【0068】
ステップS4030では、データ管理部140は、指標検出同定部130から受けた各抽出指標セットをデータ保存部160に登録する。
【0069】
次にステップS4040では、データ管理部140はステップS4030で登録した抽出指標セット(注目抽出指標セット)中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されているのかをチェックする。係るチェックの結果、登録されていない場合には、処理をステップS4050に進める。
【0070】
ステップS4050ではデータ管理部140は「指標ID」の最後の行に注目抽出指標セット中の識別子を登録し、「入力種別」の最後の行に「自動検出」を登録し、「撮影回数」の最後の行に「1」を登録し、「較正状態」の最後の行に「未推定」を登録する。一方、係るチェックの結果、登録されている場合には、処理をステップS4060に進める。
【0071】
ステップS4060では、データ管理部140は、注目抽出指標セット中の識別子を登録している行における「撮影回数」の欄における数値に1を加算する。
【0072】
次にステップS4070では、「撮影回数」が予め設定された閾値(例えば2)以上である指標があるのかをチェックする。係るチェックの結果、「撮影回数」が予め設定された閾値(例えば2)以上である指標がある場合には処理をステップS4080に進め、ない場合には処理をステップS4090に進める。
【0073】
ステップS4080では、撮像部110の位置姿勢の初期値を、基準座標系における位置姿勢が既知の指標を撮像した撮像画像を利用してDLT(Direct Linear Transform)法などの公知の手法を利用して求める。そしてステップS4070で存在が確認された指標100に対応する「較正状態」を「概略計算済み」に変更する。なお、撮像部110の位置姿勢の初期値は、撮像部110に磁気式、光学式、超音波式等の6自由度位置姿勢センサを装着し、係るセンサによる計測値から得てもよい。
【0074】
次にステップS4090では、データ管理部140はステップS4030で登録した抽出指標セット(注目抽出指標セット)中の識別子と同じ識別子を含む抽出指標セットについて、「入力種別」、「撮影回数」、「較正状態」を表示部170に送出する。これにより、表示部170の表示画面上には、この送出された「入力種別」、「撮影回数」、「較正状態」が表示されることになる。ここで、「撮影回数」の表示とは、換言すれば、注目抽出指標セットを登録する際に、データ保存部160に既に登録されている抽出指標セット群のうち、注目抽出指標セットと同じ識別子を含むセットの個数を表示することでもある。
【0075】
次に、ステップS4100ではデータ管理部140は、操作部150を用いて「指標の位置姿勢計算」の指示が入力されたか否かをチェックする。係るチェックの結果、係る指示が入力されていない場合には処理をステップS4130に進める。一方、入力されている場合には処理をステップS4110に進める。
【0076】
ステップS4110では、データ管理部140は、指標管理テーブルに登録されている各識別子に対応する指標の抽出指標セットをデータ保存部160から読み出し、指標位置姿勢算出部180に送出する。そして指標位置姿勢算出部180は、受けた各抽出指標セットを用いて、各指標100の基準座標系における位置姿勢を計算する。
【0077】
以下では、ステップS4110における処理の詳細について説明する。
【0078】
位置姿勢を求める指標の数をNとし、撮像された画像の枚数をMとする。Mは、データ保存部160に保存されている各抽出指標セット中の画像番号のうち最大値を用いればよい。また、指標i(i=1,2,…,N)の位置姿勢を表す6次元ベクトルをai、画像j(j=1,2,…,M)を撮像した撮像部110の位置姿勢を表す6次元ベクトルをsjと表す。指標の位置姿勢を表す6次元ベクトルaは、指標の基準座標系における位置twm=[twmx twmy twmz]t、基準座標系に対する姿勢ωwm=[ωwmx ωwmy ωwmz]tの各成分からなるベクトルであり、a=[twmx twmy twmz ωwmx ωwmy ωwmz]tのように表すことができる。撮像部110の基準座標系における位置をtwc=[twcx twcy twcz]t、基準座標系に対する姿勢ωwc=[ωwcx ωwcy ωwcz]tとすると、撮像部110の位置姿勢を示す6次元ベクトルsは、s=[twcx twcy twcz ωwcx ωwcy ωwcz]tのように表すことができる。
【0079】
正方形指標の各頂点の指標座標系における座標xmk=[xmk ymk zmk]t (k=1,2,3,4)は、正方形の一辺の長さをeとして、例えば(式1)のように表すことができ、正方形の一辺の長さがわかる場合には既知の値となる。
【0080】
【数1】
【0081】
基準座標系に対する位置姿勢がtwm、ωwmである指標の指標座標がxmである頂点の基準座標系に対する位置姿勢がtwc、ωwcである撮像部110のカメラ座標xcは(式2)のように表すことができる。
【0082】
【数2】
【0083】
但し、R(ωwc)、R(ωwm)はそれぞれωwc、ωwmで表される姿勢を表す3×3回転変換行列である。また、カメラ座標がXc=[xc yc zc]tである点が焦点距離がfであるピンホールカメラ(本実施形態では撮像部110)によって画像上に投影される位置u=[ux uy]tは、(式3)のように表すことができる。
【0084】
【数3】
【0085】
すなわち、uは指標の位置姿勢twm、ωwm、撮像部110の位置姿勢twc、ωwcの関数となる。よって、指標iの頂点k(k=1,2,3,4)の画像j上における投影像の位置を表す2次元ベクトルui,j,kは、(式4)に示すように、ai、sjの関数となる。
【0086】
【数4】
【0087】
指標iの頂点kの画像j上における投影像の実際の画像上での観察位置をui,j,k^と表すと、ui,j,k^と、観察位置ui,j,k^とai、sjから計算されるui,j,kとの誤差Δui,j,k(=ui,j,k^−ui,j,k)は、(式5)のように1次近似することができる。
【0088】
【数5】
【0089】
∂ui,j,k/∂ai、∂ui,j,k/∂sjは(式4)において、ui,j,kをそれぞれai、sjの各成分によって偏微分したときの偏微分係数を並べたヤコビ行列である。
【0090】
(式5)を各画像中で検出同定された各指標の各頂点について立て、全てのΔai (i=1,2,…,N)、Δsj (j=1,2,…,M)を共通の未知変数として連立方程式として解くことにより、Δai (i=1,2,…,N)、Δsj (j=1,2,…,M)を得ることができる。予め、ai、sjには初期値を与えておき、Δai (i=1,2,…,N)、Δsj (j=1,2,…,M)を求めて、ai=ai+Δai、sj=sj+Δsjという補正を行う操作を繰り返すことで、指標の位置姿勢ai (i=1,2,…,N)を求める。
【0091】
そして、求めた位置姿勢を示す情報(位置姿勢情報)を、データ保存部160に登録するのであるが、指標管理テーブルにおいて位置姿勢を求めた指標についての「較正状態」を「最適計算済み」に更新する。図6は、ステップS4110による更新済みの指標管理テーブルの一例を示す図である。
【0092】
次にステップS4120では、現在表示部170の表示画面上に表示している「較正状態」のうち、位置姿勢を求めた指標についての「較正状態」を「最適計算済み」に更新する。なお、上記計算処理において、計算結果が収束しない、指標の誤認識、等により、位置姿勢が求められない指標については、「較正状態」には「エラー」を登録する。
【0093】
次に、ステップS4130では、データ管理部140は、操作部150から、処理終了指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS4000に戻し、入力されている場合には、本処理を終了する。
【0094】
以上の説明により、本実施形態によれば、撮像画像上で検知された指標のそれぞれについて、位置姿勢を求めたのか否か、これまでに何回撮像されたのか、位置姿勢算出のために使用できるのか否か、等の状態をユーザが確認することができる。これにより、ユーザは、各指標の位置姿勢を計算する処理を開始するタイミングや、未だ位置姿勢を求めていない指標等を把握することができるので、全ての指標についてより高精度に位置姿勢を求めることができる。
【0095】
<変形例1>
指標100を表示部170の表示画面上に表示する際には、過去に同定された回数に応じた色でもってこの指標100を表示しても良い。例えば、「2」以上の回数に対応する指標100については位置姿勢の計算対象しても良いことをユーザに通知するために、「2」以上の指標100を赤で表示し、「2」未満の指標100を白で表示する。
【0096】
もちろん、指標100の表示形態についてはこれに限定するものではなく、様々な形態が考えられる。例えば、正方形指標の外枠部分だけを色を変えて描画し、内部領域全体を塗りつぶさなくてもよい。また、色を変えるのではなく、過去に同定された回数が閾値以上である指標は透明度を大きく、閾値未満である指標は透明度を小さくしてもよいし、その逆であってもよい。さらに、過去に同定された回数が閾値以上である指標には何も情報を提示せず、閾値未満である指標にのみ情報を提示してもよいし、その逆であってもよい。係る情報については特に限定するものではなく、例えば、「入力種別」、「撮影回数」、「較正状態」であっても良い。
【0097】
また、「撮影回数」を表示する文字の色や透明度を同様に制御しても良い。
【0098】
また、過去に同定された回数ではなく、後何回同定すれば、対応する指標を位置姿勢の計算対象としても良いのかをユーザに通知するために、残りの同定回数を用いても良い。
【0099】
<変形例2>
指標100には上述のような正方形指標だけでなく、他のタイプの指標、例えば、点形状の指標を用いても良い。その場合、指標の同定方法については、その指標のタイプに応じて適宜異ならせる。なお、各指標のタイプに応じた指標同定は、周知の技術でもってなし得る。
【0100】
<変形例3>
上記説明では、ステップS4100において、ユーザからの指示を検知すると、指標の位置姿勢を計算する処理を開始していた。しかし、現在の指標管理テーブルに登録されている全ての撮影回数が閾値(例えば「2」)以上であれば、ユーザからの指示を受け付けることなく、ステップS4100以降の処理を開始しても良い。その場合、ステップS4100では、現在の指標管理テーブルに登録されている全ての撮影回数が閾値以上であるか否かをチェックする。そして、閾値以上であれば処理をステップS4110に進め、閾値未満である場合には処理をステップS4130に進める。
【0101】
[第2の実施形態]
図1に示した画像処理装置1を構成する各部について、第1の実施形態では、ハードウェアでもって実装しているものとして説明した。しかし、係る各部のうち、幾つかについてはソフトウェアでもって実装しても良い。この場合、係るソフトウェアは、PC(パーソナルコンピュータ)などのコンピュータ上で実行され、これにより、係るコンピュータは、画像処理装置1が行うものとして説明した上記各処理を実行することになる。
【0102】
図3は、画像処理装置1に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【0103】
CPU301は、RAM302やROM303に格納されているプログラム(コンピュータプログラム)やデータを用いてコンピュータ全体の制御を行うと共に、画像処理装置1が行うものとして説明した上記各処理を実行する。
【0104】
RAM302は、外部記憶装置306からロードされたプログラムやデータ、I/F(インターフェース)307を介して撮像部110から受信した各フレームの撮像画像のデータを一時的に記憶するためのエリアを有する。更に、RAM302は、CPU301が各種の処理を実行する際に用いるワークエリアも備える。即ち、RAM302は、各種のエリアを適宜提供することができる。
【0105】
ROM303には、ブートプログラムやコンピュータの設定データなどを格納する。
【0106】
操作部304は、上記操作部150として機能するものであり、キーボードやマウスなどにより構成されている。本コンピュータの操作者は、この操作部304を用いて各種の指示をCPU301に対して入力することができる。
【0107】
表示部305は、上記表示部170として機能するものであり、CRTや液晶画面等により構成されている。表示部305は、CPU301による処理結果を画像や文字などでもって表示することができる。
【0108】
外部記憶装置306は、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、上記データ保存部160として機能するものである。外部記憶装置306には、OS(オペレーティングシステム)や、画像処理装置1が行うものとして上述した各処理をCPU301に実行させるためのプログラムやデータなどが保存されている。また、既知の情報として上述したものについても、この外部記憶装置306に保存されている。外部記憶装置306に保存されているプログラムやデータは、CPU301による制御に従って適宜RAM302にロードされ、CPU301による処理対象となる。
【0109】
I/F307は、上記撮像部110を本コンピュータに接続するためのインターフェースとして機能するものであり、撮像部110が撮像した各フレームの撮像画像のデータは、このI/F307を介して、RAM302や外部記憶装置306に送出される。
【0110】
308は上述の各部を繋ぐバスである。
【0111】
[第3の実施形態]
本実施形態では、第1の実施形態で説明したような、指標を撮像した撮像画像から、係る指標の基準座標系(世界座標系)における位置を求めるためのツール(マーカキャリブレーションツール)について説明する。本実施形態では、指標をマーカと呼称する。
【0112】
図7は、マーカキャリブレーションツールのGUI(グラフィカルユーザインターフェース)の表示例を示す図である。図8は、本実施形態に係るシステム、及び係るシステムが設置される環境の例を示す図である。
【0113】
本実施形態で取り扱うマーカキャリブレーションツールは、コンピュータシステム800上で動作するものであり、コンピュータシステム800には、現実空間の動画像を撮像する撮像装置801が接続されている。撮像装置801が撮像した各フレームの画像(撮像画像)のデータは順次、コンピュータシステム800に入力される。本実施形態では、コンピュータシステム800として、図3に示すハードウェア構成を有するコンピュータを用いるものとして説明する。
【0114】
従って、以下の説明において、コンピュータシステム800が行うものとして説明する各処理をCPU301に実行させるためのプログラムやデータは外部記憶装置306に保存されているものとする。そして、係るプログラムやデータは、CPU301による制御に従って適宜RAM302にロードされ、CPU301による処理対象となる。
【0115】
机1200や壁1300には、マーカ1400〜1470が貼り付けられている。撮像装置801はこれらマーカ1400〜1470を含む現実空間の動画像を撮像し、撮像した各フレームの撮像画像のデータをコンピュータシステム800に送出する。なお、本実施形態では、マーカ1400の基準座標系における位置は既知であるとする。
【0116】
次に、図7に例示したGUIについて説明する。図7において700はGUIのウィンドウで、係るウィンドウ700内には以下のような表示領域、ボタン画像が設けられている。
【0117】
701はプレビュー表示領域で、撮像装置801から送出される各フレームの撮像画像を表示するための表示領域である。ここで、プレビュー表示領域701を観察しているユーザがボタン画像702を上記操作部304等を用いて指示すると、CPU301は係る指示を検知したタイミングで撮像装置801から取得した撮像画像を外部記憶装置306に登録する。そして、登録する撮像画像中にマーカが含まれている場合には、係るマーカについての同定処理を行う。更に、この登録する撮像画像のサムネイル画像を生成し、領域704内に追加表示する。
【0118】
図9は、本実施形態で用いるマーカ(マーカ1400〜1470)の一例を示す図である。図9に示す如く、本実施形態で用いるマーカは、第1の実施形態と同様に、枠領域の中に、2次元バーコードが記されている。係る2次元バーコードは、マーカに固有の識別子(指標識別情報の一例)をコード化したものである。従って、係るマーカを撮像した画像から、この2次元バーコードを読み取り、エンコードすることで、係るマーカが、マーカ1400〜1470の何れであるのかを特定することができる。
【0119】
なお、2次元バーコードが記されたマーカを撮像画像から検出するための技術については、例えば、「加藤博一, Mark Billinghurst, 浅野浩一, 橘啓八郎: マーカー追跡に基づく拡張現実感システムとそのキャリブレーション, 日本バーチャルリアリティ学会論文誌, Vol.4, No.4, pp.607-616 (1999)」に記されているように、公知の技術である。
【0120】
ここで、外部記憶装置306には、過去に撮像画像から検出し、同定したマーカの識別子毎(指標識別情報毎)に、その検出回数(頻度)が登録されている。即ち、マーカの識別子と、この識別子のマーカが過去に撮像画像から検出された検出回数と、のセットが、識別子毎に外部記憶装置306内に登録されている。
【0121】
従って、マーカの同定処理を行うと、係る同定処理で特定した識別子(注目識別子)が、外部記憶装置306に登録されているか否かをチェックする。係るチェックの結果、登録されていない場合には、このマーカは初めて撮像画像から検出されたものであるから、このマーカの識別子(注目識別子)と、検出回数=1のセットを外部記憶装置306に登録する。一方、登録されていた場合には、注目識別子とセットになって外部記憶装置306に登録されている検出回数を1つインクリメントする。
【0122】
なお、同定したマーカについて、係る同定処理で求めた他の情報(例えば、マーカを検出した撮像画像に固有の情報や、検出した画像座標など)についても、外部記憶装置306に登録するものとする。
【0123】
そして、CPU301は、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートしたものを表示領域705内に表示する。
【0124】
図12は、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートする様子を示す図である。例えば、外部記憶装置306内に図12の左側に示す如く、各セットが登録されていた場合には、図12の右側に示す如く、各セットが検出回数の少ない順にソートされる。
【0125】
図10は、表示領域705内の表示例を示す図である。図10に示す如く、各マーカのIDは、対応する回数の少ない順にソートされた状態で表示されている。更に、図10では、各マーカのIDは、対応する回数に応じた色でもって表示されている。図10では、回数が平均以下であるマーカIDは赤で表示し、回数が2/3以下であるマーカIDは黄色で表示し、残りのマーカIDは緑で表示している。なお、ソートする為の条件や、表示色についてはこれに限定するものではない。また、表示色の代わりに、表示文字サイズを変化させても良い。即ち、撮像画像から検出された回数が少ない程、マーカのマーカIDの表示文字サイズを大きくする。
【0126】
このように、撮像画像から検出された回数が比較的少ないマーカは、未だ位置姿勢を求めるためには不十分であるので、係る点をユーザに分かり易く報知するために、係るマーカのマーカIDについては、比較的目立つ色で表示する。これにより、ユーザは、更に撮像すべくマーカを知ることができる。
【0127】
図7に戻って、ボタン画像706は、指示することで、現在検出されているマーカについて、基準座標系における位置を求める処理を開始する。撮像画像中のマーカを用いてその位置を求めるための処理についてはここでの主眼ではないので、これについての説明は省略する。
【0128】
図11は、マーカキャリブレーションツールが有する機能のうち、各マーカのマーカIDを、各マーカの検出回数でソートした順に、その検出回数に応じた色でもって表示する機能を実行することで行われる処理のフローチャートである。係る処理は、コンピュータシステム800、即ち、図3に示したハードウェア構成を有するコンピュータが行うものとする。従って、以下説明する各ステップにおける処理の主体は、CPU301である。
【0129】
先ず、ステップS1101では、撮像装置801から送出される各フレームの画像をRAM302に取得し、取得した画像をプレビュー表示領域701に表示する。
【0130】
次にステップS1102では、ボタン画像702指示されたことにより、「画像取得」指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS1101に戻す。一方、入力されている場合には、処理をステップS1103に進める。
【0131】
ステップS1103では、係る指示を検知したタイミングで撮像装置801から取得した撮像画像を外部記憶装置306に登録する。
【0132】
ステップS1104では、この登録する撮像画像のサムネイル画像を生成し、領域704内に追加表示する。
【0133】
ステップS1105では、登録する撮像画像中にマーカが含まれている場合には、係るマーカについての同定処理を行う。
【0134】
ステップS1106では、ステップS1105における同定処理で特定した識別子(注目識別子)が、外部記憶装置306に登録されているか否かをチェックする。係るチェックの結果、登録されていない場合には、処理をステップS1108に進める。
【0135】
ステップS1108では、注目識別子と、検出回数=1のセットを外部記憶装置306に登録する。一方、登録されていた場合には、処理をステップS1107に進める。
【0136】
ステップS1107では、注目識別子とセットになって外部記憶装置306に登録されている検出回数を1つインクリメントする。
【0137】
そしてステップS1109では、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートしたものを表示領域705内に表示する。その際、各セットを、検出回数に応じて予め定められた色でもって表示する。
【0138】
なお、本実施形態で説明した処理、即ち、指標の検出回数を識別子毎に管理しておき、各識別子を検出回数の少ない順に、検出回数に応じた色でもって一覧表示する処理は、第1の実施形態で説明した処理に加えても良い。
【0139】
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0140】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0141】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0142】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0143】
【図1】現実空間中に配されている指標の位置姿勢を求めるための、本発明の第1の実施形態に係るシステムの機能構成を示すブロック図である。
【図2】本発明の第1の実施形態で用いる指標を説明する図である。
【図3】画像処理装置1に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図4】画像処理装置1が指標100の基準座標系における位置姿勢を計算するための処理のフローチャートである。
【図5】指標管理テーブルの構成例を示す図である。
【図6】ステップS4110による更新済みの指標管理テーブルの一例を示す図である。
【図7】マーカキャリブレーションツールのGUI(グラフィカルユーザインターフェース)の表示例を示す図である。
【図8】本発明の第3の実施形態に係るシステム、及び係るシステムが設置される環境の例を示す図である。
【図9】本発明の第3の実施形態で用いるマーカ(マーカ1400〜1470)の一例を示す図である。
【図10】表示領域705内の表示例を示す図である。
【図11】マーカキャリブレーションツールが有する機能のうち、各マーカのマーカIDを、各マーカの検出回数でソートした順に、その検出回数に応じた色でもって表示する機能を実行することで行われる処理のフローチャートである。
【図12】外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートする様子を示す図である。
【技術分野】
【0001】
本発明は、現実空間中に配されている指標の位置姿勢を求めるための技術に関するものである。
【背景技術】
【0002】
近年、複合現実感(Mixed Reality; MR)技術の研究が盛んである。MR技術は、現実空間とコンピュータによって作られる仮想空間とを継ぎ目なく融合する技術である。MR技術の中でも、現実空間に仮想空間を重ね合わせて表示するAugmented Reality(AR、拡張現実感、増強現実感とも呼ばれる)技術が特に注目を集めている。
【0003】
AR技術における画像表示装置は、ビデオシースルー方式か、光学シースルー方式によって実現される。ビデオシースルー方式とは、ビデオカメラ等の撮像装置によって撮像された現実空間の画像に、この撮像装置の位置及び姿勢に応じて生成された仮想空間の画像を重畳描画した合成画像を表示する方式である。ここで、仮想空間の画像は、コンピュータグラフィクスにより描画された仮想物体や文字情報等により構成されている。また、光学シースルー方式とは、観察者の頭部に装着された光学シースルー型ディスプレイに、観察者の視点の位置及び姿勢に応じて生成された仮想空間の画像を表示する方式である。
【0004】
AR技術は、患者の体表面に体内の様子を重畳表示する手術支援や、空き地に仮想のビルを重畳表示する建築シミュレーション、組み立て作業時に作業手順や配線の様子を重畳表示する組み立て支援等様々な分野への応用が期待される。
【0005】
AR技術において最も重要な課題の一つは、現実空間と仮想空間との間の位置合わせをいかに正確に行うかということであり、従来より多くの取り組みが行われてきた。ARにおける位置合わせの問題は、ビデオシースルー方式の場合はシーン中における(すなわちシーン中に規定された基準座標系における)撮像装置の位置及び姿勢を求める問題に帰結する。同様に、光学シースルー方式の場合は、シーン中における観察者の視点あるいはディスプレイの位置及び姿勢を求める問題に帰結する。
【0006】
前者の問題を解決する方法としては次のようなものが一般的である。即ち、シーン中に複数の指標を配置あるいは設定し、撮像装置が撮像した画像内における指標の投影位置と、既知の情報である指標の基準座標系における位置との対応関係から、基準座標系における撮像装置の位置及び姿勢を求める。また、後者の問題を解決する方法としては次のようなものが一般的である。即ち、計測対象物(すなわち観察者の頭部あるいはディスプレイ)に撮像装置を装着し、前者と同様な方法によって撮像装置の位置及び姿勢を求め、それに基づいて計測対象物の位置及び姿勢を求めることが一般的に行われている。
【0007】
画像上の指標の投影像とその指標の3次元位置との対応関係に基づいて撮像装置の位置及び姿勢を求める方法は、写真測量の分野において古くから提案されている(非特許文献1を参照)。
【0008】
また、非特許文献2には次のようなことが提案されている。即ち、前述の画像上の指標の投影像に基づいて求めた撮像装置の位置及び姿勢を初期値とし、画像上での指標の投影像の実際の観察位置と投影像の計算位置との誤差が最小になるように反復演算によって撮像装置の位置及び姿勢を最適化することが行われている。ここで、投影像の計算位置とは、指標の3次元位置と撮像装置の位置及び姿勢から計算される投影像の位置のことである。
【0009】
以上の方法によって、撮像装置が撮像した画像に基づいて、撮像装置の位置及び姿勢を求めることが従来からなされてきた。
【0010】
一方、例えば特許文献1、2や非特許文献3で開示されているよなことも従来からなされてきた。即ち、計測対象である撮像装置に磁気センサや超音波センサ等の6自由度位置姿勢センサを取り付け、前述のような画像処理による指標の検出との併用によって位置及び姿勢を計測することも行われている。センサの出力値は測定範囲によって精度は変わるが安定的に得ることができるため、センサと画像処理を併用する方法は、画像処理だけによる方法に比べてロバスト性を向上させることができる。
【0011】
特許文献2では、6自由度位置姿勢センサから得られる撮像装置の位置及び姿勢を初期値とし、前述の画像上での指標の投影像の観察位置と計算位置との誤差を反復演算によって最小化することによって、撮像装置の位置及び姿勢を得ている。
【0012】
以上で述べた指標を利用した位置合わせ手法では、計測対象である撮像装置の基準座標系における位置及び姿勢を求める為には次のような情報が既知である必要がある。即ち、空間中に存在する同一色の円領域といった点形状の指標(点指標)の場合にはその重心の基準座標系における位置、基準座標系に対する指標の姿勢、が既知である必要がある。また、三角形や正方形といった多角形形状の指標の場合にはその重心の基準座標系における位置が既知である必要がある。正方形指標などの多角形形状の指標の場合には、基準座標系を別途設けることなく、指標そのものを座標系の基準とする場合が多い。しかし、複数の指標を用いる場合には、互いの位置及び姿勢の関係が既知である必要があるため、基準座標系が必要であることに変わりはない。
【0013】
指標の位置及び姿勢の計測は、巻尺や分度器を用いた手作業や、測量器によって行うことが可能であるが、精度や手間の問題から、画像を利用した計測が行われている。点指標の位置計測は、バンドル調整法と呼ばれる方法で行うことができる。
【0014】
バンドル調整法とは、次のような手法である。即ち、撮像装置によって点指標の画像を多数撮像し、画像上での点指標の投影像の観察位置を求める。そして求めた観察位置と、点指標の3次元位置及び撮像装置の位置姿勢をもとに計算される点指標の投影像の計算位置と、の誤差(投影誤差)が最小になるように、繰返し演算によって点指標の位置と撮像装置の位置姿勢の補正を繰り返し行う。これにより、点指標の位置を求める。
【0015】
また、非特許文献4では、3次元空間中に配置された多数の正方形指標の位置及び姿勢を計測する方法が開示されている。非特許文献4では、3次元空間中に配置された多数の正方形指標の画像を多数撮像し、投影誤差が最小になるように、繰返し演算によって各画像を撮像した撮像装置の位置及び姿勢と、正方形指標の位置及び姿勢を求めている。
【0016】
また、上記MRやARを実現するためには、撮像装置の位置姿勢を測定する必要がある。撮像装置の位置姿勢を測定するための1つの技術としては、現実空間中で位置が既知の指標を撮像装置によって撮像し、撮像した画像を用いる方法がある。
【0017】
しかし「現実空間中の位置が既知の指標」を現実空間中に配置する際には当然、その位置を計測する必要があるが、その計測には手間がかかる。そこで、現実空間中に配した指標を複数の撮像装置によって撮像することで得られる複数枚の画像を用いて、この指標の位置を計算する「指標キャリブレーションツール」が提案されている(非特許文献5を参照)。係る指標キャリブレーションツールを使用することにより、簡便に現実空間における指標の位置を測定することができる。
【特許文献1】特開平11-084307号公報
【特許文献2】特開2000-041173号公報
【非特許文献1】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.
【非特許文献2】加藤, M. Billinghurst, 浅野, 橘: “マーカー追跡に基づく拡張現実感システムとそのキャリブレーション”, 日本バーチャルリアリティ学会論文誌, vol.4, no.4, pp.607-616, 1999.
【非特許文献3】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.
【非特許文献4】G. Baratoff, A. Neubeck and H. Regenbrecht: “Interactive multi-marker calibration for augmented reality applications”, Proc. ISMAR2002, pp.107-116, 2002.
【非特許文献5】D. Kotake, S. Uchiyama, and H. Yamamoto: "A marker calibration method utilizing a priori knowledge on marker arrangement," Proc. 3rd IEEE/ACM Int'l Symp. on Mixed and Augmented Reality (ISMAR 2004), pp.89-98, November 2004.
【発明の開示】
【発明が解決しようとする課題】
【0018】
前述したバンドル調整法を用いた点指標の位置計測手法では、一つの指標について最低二枚以上の画像を撮像しないと、正確な位置姿勢を求めることができない。点指標の場合、一枚の画像にしか撮像されない場合には、点指標が3次元空間中に存在する直線が決定されるだけで、撮像装置の奥行き方向の位置が不定になる。そのため位置計測に最低限必要な画像が取得できているかどうかという情報は重要である。
【0019】
また撮像する上では、各々の指標が基準となる指標であるか、較正の対象となる指標であるかを示す情報が重要である。
【0020】
また、較正を行った結果として、特定の指標の較正ができない場合がある。その場合は計算の障害となった画像を削除しない限りは、計算のエラーは解消しない場合が多く、どの画像が障害であるのかを示す情報が必要である。
【0021】
また較正を行った後に画像データを追加して再度較正を行う場合には、どの指標がすでに較正済かという情報が必要になる。
【0022】
また、正方形指標などの多角形形状の指標の場合には、指標自体が固有のIDを持っており、予め較正対象として指定されていない場合でも、画像から指標が認識された時点で、自動的に較正対象として追加する事が可能である。しかし、自動追加された指標は、本来較正対象に加えたくない指標である可能性もあるため、自動追加された指標が予め指定されていた指標か否かを示す情報は必要である。
【0023】
また、指標が撮像される画像の枚数が多ければ多いほど、誤差が多数の画像に分散されることによって、少ない画像枚数の場合に比べてより精度の高い位置姿勢を得ることができる。そのため、位置姿勢を求めたい指標が撮像される回数がなるべく多くなるように指標を撮影することが望ましい。そのため各指標の撮像回数の情報を提示する必要がある。しかし、上述のように、較正用の画像の取得に対しては、さまざまな条件を考慮する必要があり、それらの条件を組み合わせて、操作者が次に何をすればよいかを判断するのが難しかった。
【0024】
本発明は以上の問題に鑑みてなされたものであり、現実空間中に配された指標の位置姿勢をこの現実空間を撮像することで得られる画像から求める為にユーザが次に行うべき操作内容を、このユーザに分かり易く提示する為の技術を提供することを目的とする。
【0025】
また、上記指標キャリブレーションツールを用いて現実空間中における指標の位置を効率よく取得するには、すべての指標をまんべんなく撮像する必要がある。これは、各指標に関して均等に位置情報を蓄積することが必要であるといえる。
【0026】
しかし、従来のシステムでは、どの指標が既に撮像されたかの情報は提供されていなかった。そのため利用者は指標を撮像する際には、個々の指標ついて既に撮像されているかどうかを覚えている必要があった。また撮像し忘れた指標がある際には撮像しなおさなければならず、指標の位置を求めるためには手間がかかっていた。
【0027】
本発明の別の目的は、指標の位置を求めるための手間を軽減させるための技術を提供することにある。
【課題を解決するための手段】
【0028】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【0029】
即ち、複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得手段と、
前記取得手段が取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録手段と、
前記登録手段が同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理手段と、
前記登録手段が前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理手段が管理している回数を表示する表示手段と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算手段と
を備えることを特徴とする。
【0030】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【0031】
即ち、複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得工程と、
前記取得工程で取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録工程と、
前記登録工程で同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理工程と、
前記登録工程で前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理工程で管理している回数を表示する表示工程と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算工程と
を備えることを特徴とする。
【発明の効果】
【0032】
本発明の構成によれば、現実空間中に配された指標の位置姿勢をこの現実空間を撮像することで得られる画像から求める為にユーザが次に行うべき操作内容を、このユーザに分かり易く提示することができる。
【0033】
また、指標の位置を求めるための手間を軽減させることもできる。
【発明を実施するための最良の形態】
【0034】
以下、添付図面を参照し、本発明の好適な実施形態について詳細に説明する。
【0035】
[第1の実施形態]
図1は、現実空間中に配されている指標の位置姿勢を求めるための、本実施形態に係るシステムの機能構成を示すブロック図である。図1に示す如く、本実施形態に係るシステムは、撮像部110と画像処理装置1とで構成されている。
【0036】
先ず、撮像部110について説明する。撮像部110は、複数の指標100が配されている現実空間の画像を複数枚撮像する装置であり、例えば、現実空間の動画像を撮像するビデオカメラである。撮像部110が撮像した各フレームの画像(現実空間画像、撮像画像)は順次、後段の画像処理装置1に入力される。
【0037】
次に、画像処理装置1について説明する。図1に示す如く、画像処理装置1は、画像入力部120、指標検出同定部130、データ管理部140、操作部150、データ保存部160、表示部170、指標位置姿勢算出部180により構成されている。
【0038】
画像入力部120は、撮像部110から順次送出される撮像画像を受けると、受けた順に後段の指標検出同定部130、表示部170に送出する。これにより、表示部170の表示画面上には、撮像部110が撮像している現実空間の動画像が表示されていることになる。
【0039】
指標検出同定部130は、画像入力部120から受けた撮像画像中に指標が含まれている場合には、この指標についての同定を行い、その同定結果のデータは後段のデータ管理部140に送出する。
【0040】
データ管理部140は、指標検出同定部130から受けた同定結果のデータを管理するものである。データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示を入力したことを検知すると、指標検出同定部130から受けた同定結果のデータをデータ保存部160に登録する。
【0041】
また、データ管理部140は、指標検出同定部130から受けた最新の同定結果のデータとデータ保存部160に既に登録されている同定結果のデータとを比較し、過去に複数回同定されている指標についての情報を表示部170に送出する。係る処理について詳しくは後述する。
【0042】
また、データ管理部140は、ユーザが操作部150を用いて「指標の位置姿勢計算」の指示を入力したことを検知すると、データ保存部160から適宜同定結果のデータを読み出し、指標位置姿勢算出部180に送出する。
【0043】
指標位置姿勢算出部180は、データ管理部140から受けた同定結果のデータを用いて、指標の位置姿勢を計算する。
【0044】
なお、図1には、指標位置姿勢算出部180が求めた指標の位置姿勢のデータの出力先については特に図示していないが、出力先については、ここでの主眼とするところではないので示していない。しかし、一般に、撮像画像から求めた指標の位置姿勢のデータの利用方法については周知のものであるので、ここでの説明、及び図示は省略する。
【0045】
次に、本実施形態で用いる指標について説明する。図2は、本実施形態で用いる指標を説明する図である。本実施形態では、図2(a)に示されるような正方形形状の指標(以下、正方形指標)を、位置姿勢の計算対象とする。正方形指標は、図2(a)に示すように、指標領域であることを示すための境界領域(黒枠)と内部領域からなる。内部領域は、縦と横がそれぞれ5等分されており、内側の3×3領域が正方形指標の向き、及び固有の識別子(識別情報)を表す。3×3領域の四隅(図2(a)において丸で囲まれている領域)が正方形指標の向きを表す領域(向き決め領域)である。四隅のうちの三つは黒く塗りつぶされており、残る一つは白く塗りつぶされている。これによって正方形指標の向きを表す。正方形指標の識別子は、3×3領域の四隅を除いた5つの領域(ビット領域)によって現される(図2(a)において斜線で示されている領域)。5つの領域のそれぞれは、白く塗りつぶされている場合は0、黒く塗りつぶされている場合は1を表すとすると、5ビット、すなわち32通りの識別子を表すことができる。
【0046】
図2(b)は正方形指標の配置情報を説明する図である。正方形指標の配置情報は基準座標系に対する位置及び姿勢で表現される。本実施形態では、正方形指標の位置は正方形の中心(対角線の交点)の位置であり、基準座標系に対する3次元ベクトルtwmによって表す。正方形指標の姿勢は、図2(b)に示すように、基準座標系に対する正方形指標の座標系(指標座標系)の姿勢であるとする。姿勢の自由度は3であるので、3次元ベクトルωwmによって表す。
【0047】
ここで、基準座標系とは、例えば、現実空間中の1点を原点とし、係る原点で互いに直交する3軸をそれぞれx軸、y軸、z軸とする座標系のことである。また、指標座標系とは、例えば、正方形指標の中心を原点とし、正方形指標の一辺に沿った方向をx軸、係る一辺に隣接する辺に沿った方向をy軸、正方形指標の法線方向をz軸とする座標系のことである。
【0048】
次に、本実施形態に係るシステムの動作について、より詳細に説明する。
【0049】
撮像部110は上述の通り、複数の指標100(正方形指標)が配されている現実空間の画像を、ユーザによる操作とは無関係に複数枚撮像するものである。以下の説明では、撮像部110は動画像を撮像するビデオカメラであるとする。撮像部110が撮像した各フレームの撮像画像は画像入力部120に入力される。
【0050】
画像入力部120は、撮像部110から順次送出される撮像画像をそのまま表示部170に転送する。これにより、表示部170の表示画面上には、撮像部110が撮像した撮像画像、即ち、複数の指標100が配された現実空間の動画像が表示されることになる。従って、ユーザは、表示部170の表示画面上に表示されている動画像を確認しながら、位置姿勢を求める対象となる指標100が撮像部110によって撮像されるように、撮像部110の位置や姿勢を動かすことができる。
【0051】
一方、画像入力部120は、撮像部110から受けた各フレームの撮像画像を指標検出同定部130にも送出する。
【0052】
指標検出同定部130は上述の通り、画像入力部120から受けた撮像画像中に指標100が存在する場合には、係る指標100を同定する処理を行う。正方形指標としての指標100を撮像画像から検出するために、指標検出同定部130は撮像画像について二値化、及び連結領域のラベリングを行い、正方形指標の境界領域である黒枠で囲まれた内部領域を抽出する。更に指標検出同定部130は、正方形指標の内部領域について直線フィッティングを行い、内部領域の正方形の4頂点の画像座標を求める。そして、2次元射影変換によって撮像画像上の正方形指標を正射影画像に変換し、向き決め領域及びビット領域を読み取ることにより、正方形指標の識別子を読み出し、同定を行う。なお、指標100の同定については、どのような指標100を用いるのかに応じて変わるものであり、指標100の同定方法は、指標100に応じて適宜対応すればよい。
【0053】
指標検出同定部130は、撮像画像中に指標100が含まれている場合には、係る指標100について、指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標、のセット(抽出指標セット)を求める。係る抽出指標セットは、撮像画像中の指標100毎(指標毎)に求めるものである。フレーム番号については、画像入力部120が各フレームの撮像画像を入力する毎にカウントするカウント値を用いればよい。もちろん、フレーム番号に限定するものではなく、各フレームの撮像画像を一意に特定できるものであれば、如何なるものを画像識別情報として用いても良い。
【0054】
指標検出同定部130は、撮像画像中に含まれる指標100毎の上記抽出指標セットを後段のデータ管理部140に送出する。
【0055】
そして、データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示を入力したことを検知すると、指標検出同定部130が撮像画像から検出した各指標100についての抽出指標セットをデータ保存部160に登録する。即ち、データ保存部160には、「画像保存」の指示が入力される毎に、「指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標」のセットが登録されることになる。
【0056】
また、係る登録処理の際には、図5に例示するような指標管理テーブルもデータ保存部160内に作成する。図5は、指標管理テーブルの構成例を示す図である。指標管理テーブルには各指標100について、撮像画像から検出された回数、対応する抽出指標セットが画像から指標100を同定することで得られたものか、ユーザが手動で入力したものかを示す情報、位置姿勢を求めたのか否かを示す情報等を登録する。
【0057】
図5において「指標ID」の列には、指標の識別子を登録する。「入力種別」の列には、対応する識別子の指標(同じ行に登録されている識別子の指標)が撮像画像から求めたもの(自動検出)であるのか、手動でユーザが登録したもの(ユーザ定義)であるのかを示す情報を登録する。「撮影回数」の列には、対応する識別子の指標が過去に撮像画像から検出された回数を登録する。「較正状態」の列には、対応する識別子の指標の位置姿勢を求めたのか否かを示す情報を登録する。
【0058】
例えば、図5では、指標ID(識別子)=1の指標についての抽出指標セットはユーザが手動でデータ保存部160に登録したものであり、係る指標は過去に2回撮像画像から検出されており、且つ係る指標は位置姿勢が既知の基準指標である。
【0059】
即ち、データ管理部140はある抽出指標セット(注目抽出指標セット)をデータ保存部160に登録する際には先ず、注目抽出指標セット中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されているのかをチェックする。係るチェックの結果、登録されていない場合、「指標ID」の最後の行に注目抽出指標セット中の識別子を登録し、「入力種別」の最後の行に「自動検出」を登録し、「撮影回数」の最後の行に「1」を登録し、「較正状態」の最後の行に「未推定」を登録する。一方、係るチェックの結果、登録されている場合には、注目抽出指標セット中の識別子を登録している行における「撮影回数」の欄における数値に1を加算する。そして加算した結果が予め設定された値(例えば2)以上であれば、係る指標を用いて撮像部110の位置姿勢を求める処理を行い、対応する「較正状態」の欄に「概略計算済み」を登録する。
【0060】
またデータ管理部140は、注目抽出指標セットをデータ保存部160に登録する際、注目抽出指標セット中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されている場合には、次の処理を行う。即ち、注目抽出指標セットについて、図5に示した指標管理テーブルに登録した情報を表示部170に送出する。例えば、注目抽出指標セット中の識別子=13である場合には、指標ID=13に対応する「入力種別」=「自動検出」、「撮影回数」=「4」、「較正状態」=「概略計算済み」を表示部170の表示画面上に追加表示する。
【0061】
ここで、表示部170の表示画面上に表示されている全ての指標について撮影回数が2以上である等、指標100の位置姿勢を計算するために十分な画像を撮像したとユーザが判断した場合には、操作部150を用いて「指標の位置姿勢計算」の指示を入力する。
【0062】
データ管理部140は係る指示の入力を検知すると、指標管理テーブルに登録されている各識別子に対応する抽出指標セットをデータ保存部160から読み出し、指標位置姿勢算出部180に送出する。
【0063】
指標位置姿勢算出部180は、受けた各抽出指標セットを用いて、各指標100の基準座標系における位置姿勢を計算する。計算方法については後述する。
【0064】
図4は、画像処理装置1が指標100の基準座標系における位置姿勢を計算するための処理のフローチャートである。
【0065】
ステップS4000では、画像入力部120は、撮像部110から順次送出される撮像画像をそのまま表示部170に転送すると共に、指標検出同定部130にも送出する。
【0066】
次にステップS4010では、指標検出同定部130は上述の通り、画像入力部120から受けた撮像画像中に指標100が存在する場合には、係る指標100を同定する処理を行う。そして係る指標100について、指標100の抽出元の撮像画像のフレーム番号、指標100の識別子、指標100の内部領域の4隅の画像座標、のセット(抽出指標セット)を求める。そして指標検出同定部130は、撮像画像中に含まれる指標100毎の抽出指標セットを後段のデータ管理部140に送出する。
【0067】
次にステップS4020では、データ管理部140は、ユーザが操作部150を用いて「画像保存」の指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS4000に戻す。一方、入力されている場合には処理をステップS4030に進める。
【0068】
ステップS4030では、データ管理部140は、指標検出同定部130から受けた各抽出指標セットをデータ保存部160に登録する。
【0069】
次にステップS4040では、データ管理部140はステップS4030で登録した抽出指標セット(注目抽出指標セット)中の識別子と同じ識別子を含む抽出指標セットが指標管理テーブルに登録されているのかをチェックする。係るチェックの結果、登録されていない場合には、処理をステップS4050に進める。
【0070】
ステップS4050ではデータ管理部140は「指標ID」の最後の行に注目抽出指標セット中の識別子を登録し、「入力種別」の最後の行に「自動検出」を登録し、「撮影回数」の最後の行に「1」を登録し、「較正状態」の最後の行に「未推定」を登録する。一方、係るチェックの結果、登録されている場合には、処理をステップS4060に進める。
【0071】
ステップS4060では、データ管理部140は、注目抽出指標セット中の識別子を登録している行における「撮影回数」の欄における数値に1を加算する。
【0072】
次にステップS4070では、「撮影回数」が予め設定された閾値(例えば2)以上である指標があるのかをチェックする。係るチェックの結果、「撮影回数」が予め設定された閾値(例えば2)以上である指標がある場合には処理をステップS4080に進め、ない場合には処理をステップS4090に進める。
【0073】
ステップS4080では、撮像部110の位置姿勢の初期値を、基準座標系における位置姿勢が既知の指標を撮像した撮像画像を利用してDLT(Direct Linear Transform)法などの公知の手法を利用して求める。そしてステップS4070で存在が確認された指標100に対応する「較正状態」を「概略計算済み」に変更する。なお、撮像部110の位置姿勢の初期値は、撮像部110に磁気式、光学式、超音波式等の6自由度位置姿勢センサを装着し、係るセンサによる計測値から得てもよい。
【0074】
次にステップS4090では、データ管理部140はステップS4030で登録した抽出指標セット(注目抽出指標セット)中の識別子と同じ識別子を含む抽出指標セットについて、「入力種別」、「撮影回数」、「較正状態」を表示部170に送出する。これにより、表示部170の表示画面上には、この送出された「入力種別」、「撮影回数」、「較正状態」が表示されることになる。ここで、「撮影回数」の表示とは、換言すれば、注目抽出指標セットを登録する際に、データ保存部160に既に登録されている抽出指標セット群のうち、注目抽出指標セットと同じ識別子を含むセットの個数を表示することでもある。
【0075】
次に、ステップS4100ではデータ管理部140は、操作部150を用いて「指標の位置姿勢計算」の指示が入力されたか否かをチェックする。係るチェックの結果、係る指示が入力されていない場合には処理をステップS4130に進める。一方、入力されている場合には処理をステップS4110に進める。
【0076】
ステップS4110では、データ管理部140は、指標管理テーブルに登録されている各識別子に対応する指標の抽出指標セットをデータ保存部160から読み出し、指標位置姿勢算出部180に送出する。そして指標位置姿勢算出部180は、受けた各抽出指標セットを用いて、各指標100の基準座標系における位置姿勢を計算する。
【0077】
以下では、ステップS4110における処理の詳細について説明する。
【0078】
位置姿勢を求める指標の数をNとし、撮像された画像の枚数をMとする。Mは、データ保存部160に保存されている各抽出指標セット中の画像番号のうち最大値を用いればよい。また、指標i(i=1,2,…,N)の位置姿勢を表す6次元ベクトルをai、画像j(j=1,2,…,M)を撮像した撮像部110の位置姿勢を表す6次元ベクトルをsjと表す。指標の位置姿勢を表す6次元ベクトルaは、指標の基準座標系における位置twm=[twmx twmy twmz]t、基準座標系に対する姿勢ωwm=[ωwmx ωwmy ωwmz]tの各成分からなるベクトルであり、a=[twmx twmy twmz ωwmx ωwmy ωwmz]tのように表すことができる。撮像部110の基準座標系における位置をtwc=[twcx twcy twcz]t、基準座標系に対する姿勢ωwc=[ωwcx ωwcy ωwcz]tとすると、撮像部110の位置姿勢を示す6次元ベクトルsは、s=[twcx twcy twcz ωwcx ωwcy ωwcz]tのように表すことができる。
【0079】
正方形指標の各頂点の指標座標系における座標xmk=[xmk ymk zmk]t (k=1,2,3,4)は、正方形の一辺の長さをeとして、例えば(式1)のように表すことができ、正方形の一辺の長さがわかる場合には既知の値となる。
【0080】
【数1】
【0081】
基準座標系に対する位置姿勢がtwm、ωwmである指標の指標座標がxmである頂点の基準座標系に対する位置姿勢がtwc、ωwcである撮像部110のカメラ座標xcは(式2)のように表すことができる。
【0082】
【数2】
【0083】
但し、R(ωwc)、R(ωwm)はそれぞれωwc、ωwmで表される姿勢を表す3×3回転変換行列である。また、カメラ座標がXc=[xc yc zc]tである点が焦点距離がfであるピンホールカメラ(本実施形態では撮像部110)によって画像上に投影される位置u=[ux uy]tは、(式3)のように表すことができる。
【0084】
【数3】
【0085】
すなわち、uは指標の位置姿勢twm、ωwm、撮像部110の位置姿勢twc、ωwcの関数となる。よって、指標iの頂点k(k=1,2,3,4)の画像j上における投影像の位置を表す2次元ベクトルui,j,kは、(式4)に示すように、ai、sjの関数となる。
【0086】
【数4】
【0087】
指標iの頂点kの画像j上における投影像の実際の画像上での観察位置をui,j,k^と表すと、ui,j,k^と、観察位置ui,j,k^とai、sjから計算されるui,j,kとの誤差Δui,j,k(=ui,j,k^−ui,j,k)は、(式5)のように1次近似することができる。
【0088】
【数5】
【0089】
∂ui,j,k/∂ai、∂ui,j,k/∂sjは(式4)において、ui,j,kをそれぞれai、sjの各成分によって偏微分したときの偏微分係数を並べたヤコビ行列である。
【0090】
(式5)を各画像中で検出同定された各指標の各頂点について立て、全てのΔai (i=1,2,…,N)、Δsj (j=1,2,…,M)を共通の未知変数として連立方程式として解くことにより、Δai (i=1,2,…,N)、Δsj (j=1,2,…,M)を得ることができる。予め、ai、sjには初期値を与えておき、Δai (i=1,2,…,N)、Δsj (j=1,2,…,M)を求めて、ai=ai+Δai、sj=sj+Δsjという補正を行う操作を繰り返すことで、指標の位置姿勢ai (i=1,2,…,N)を求める。
【0091】
そして、求めた位置姿勢を示す情報(位置姿勢情報)を、データ保存部160に登録するのであるが、指標管理テーブルにおいて位置姿勢を求めた指標についての「較正状態」を「最適計算済み」に更新する。図6は、ステップS4110による更新済みの指標管理テーブルの一例を示す図である。
【0092】
次にステップS4120では、現在表示部170の表示画面上に表示している「較正状態」のうち、位置姿勢を求めた指標についての「較正状態」を「最適計算済み」に更新する。なお、上記計算処理において、計算結果が収束しない、指標の誤認識、等により、位置姿勢が求められない指標については、「較正状態」には「エラー」を登録する。
【0093】
次に、ステップS4130では、データ管理部140は、操作部150から、処理終了指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS4000に戻し、入力されている場合には、本処理を終了する。
【0094】
以上の説明により、本実施形態によれば、撮像画像上で検知された指標のそれぞれについて、位置姿勢を求めたのか否か、これまでに何回撮像されたのか、位置姿勢算出のために使用できるのか否か、等の状態をユーザが確認することができる。これにより、ユーザは、各指標の位置姿勢を計算する処理を開始するタイミングや、未だ位置姿勢を求めていない指標等を把握することができるので、全ての指標についてより高精度に位置姿勢を求めることができる。
【0095】
<変形例1>
指標100を表示部170の表示画面上に表示する際には、過去に同定された回数に応じた色でもってこの指標100を表示しても良い。例えば、「2」以上の回数に対応する指標100については位置姿勢の計算対象しても良いことをユーザに通知するために、「2」以上の指標100を赤で表示し、「2」未満の指標100を白で表示する。
【0096】
もちろん、指標100の表示形態についてはこれに限定するものではなく、様々な形態が考えられる。例えば、正方形指標の外枠部分だけを色を変えて描画し、内部領域全体を塗りつぶさなくてもよい。また、色を変えるのではなく、過去に同定された回数が閾値以上である指標は透明度を大きく、閾値未満である指標は透明度を小さくしてもよいし、その逆であってもよい。さらに、過去に同定された回数が閾値以上である指標には何も情報を提示せず、閾値未満である指標にのみ情報を提示してもよいし、その逆であってもよい。係る情報については特に限定するものではなく、例えば、「入力種別」、「撮影回数」、「較正状態」であっても良い。
【0097】
また、「撮影回数」を表示する文字の色や透明度を同様に制御しても良い。
【0098】
また、過去に同定された回数ではなく、後何回同定すれば、対応する指標を位置姿勢の計算対象としても良いのかをユーザに通知するために、残りの同定回数を用いても良い。
【0099】
<変形例2>
指標100には上述のような正方形指標だけでなく、他のタイプの指標、例えば、点形状の指標を用いても良い。その場合、指標の同定方法については、その指標のタイプに応じて適宜異ならせる。なお、各指標のタイプに応じた指標同定は、周知の技術でもってなし得る。
【0100】
<変形例3>
上記説明では、ステップS4100において、ユーザからの指示を検知すると、指標の位置姿勢を計算する処理を開始していた。しかし、現在の指標管理テーブルに登録されている全ての撮影回数が閾値(例えば「2」)以上であれば、ユーザからの指示を受け付けることなく、ステップS4100以降の処理を開始しても良い。その場合、ステップS4100では、現在の指標管理テーブルに登録されている全ての撮影回数が閾値以上であるか否かをチェックする。そして、閾値以上であれば処理をステップS4110に進め、閾値未満である場合には処理をステップS4130に進める。
【0101】
[第2の実施形態]
図1に示した画像処理装置1を構成する各部について、第1の実施形態では、ハードウェアでもって実装しているものとして説明した。しかし、係る各部のうち、幾つかについてはソフトウェアでもって実装しても良い。この場合、係るソフトウェアは、PC(パーソナルコンピュータ)などのコンピュータ上で実行され、これにより、係るコンピュータは、画像処理装置1が行うものとして説明した上記各処理を実行することになる。
【0102】
図3は、画像処理装置1に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【0103】
CPU301は、RAM302やROM303に格納されているプログラム(コンピュータプログラム)やデータを用いてコンピュータ全体の制御を行うと共に、画像処理装置1が行うものとして説明した上記各処理を実行する。
【0104】
RAM302は、外部記憶装置306からロードされたプログラムやデータ、I/F(インターフェース)307を介して撮像部110から受信した各フレームの撮像画像のデータを一時的に記憶するためのエリアを有する。更に、RAM302は、CPU301が各種の処理を実行する際に用いるワークエリアも備える。即ち、RAM302は、各種のエリアを適宜提供することができる。
【0105】
ROM303には、ブートプログラムやコンピュータの設定データなどを格納する。
【0106】
操作部304は、上記操作部150として機能するものであり、キーボードやマウスなどにより構成されている。本コンピュータの操作者は、この操作部304を用いて各種の指示をCPU301に対して入力することができる。
【0107】
表示部305は、上記表示部170として機能するものであり、CRTや液晶画面等により構成されている。表示部305は、CPU301による処理結果を画像や文字などでもって表示することができる。
【0108】
外部記憶装置306は、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、上記データ保存部160として機能するものである。外部記憶装置306には、OS(オペレーティングシステム)や、画像処理装置1が行うものとして上述した各処理をCPU301に実行させるためのプログラムやデータなどが保存されている。また、既知の情報として上述したものについても、この外部記憶装置306に保存されている。外部記憶装置306に保存されているプログラムやデータは、CPU301による制御に従って適宜RAM302にロードされ、CPU301による処理対象となる。
【0109】
I/F307は、上記撮像部110を本コンピュータに接続するためのインターフェースとして機能するものであり、撮像部110が撮像した各フレームの撮像画像のデータは、このI/F307を介して、RAM302や外部記憶装置306に送出される。
【0110】
308は上述の各部を繋ぐバスである。
【0111】
[第3の実施形態]
本実施形態では、第1の実施形態で説明したような、指標を撮像した撮像画像から、係る指標の基準座標系(世界座標系)における位置を求めるためのツール(マーカキャリブレーションツール)について説明する。本実施形態では、指標をマーカと呼称する。
【0112】
図7は、マーカキャリブレーションツールのGUI(グラフィカルユーザインターフェース)の表示例を示す図である。図8は、本実施形態に係るシステム、及び係るシステムが設置される環境の例を示す図である。
【0113】
本実施形態で取り扱うマーカキャリブレーションツールは、コンピュータシステム800上で動作するものであり、コンピュータシステム800には、現実空間の動画像を撮像する撮像装置801が接続されている。撮像装置801が撮像した各フレームの画像(撮像画像)のデータは順次、コンピュータシステム800に入力される。本実施形態では、コンピュータシステム800として、図3に示すハードウェア構成を有するコンピュータを用いるものとして説明する。
【0114】
従って、以下の説明において、コンピュータシステム800が行うものとして説明する各処理をCPU301に実行させるためのプログラムやデータは外部記憶装置306に保存されているものとする。そして、係るプログラムやデータは、CPU301による制御に従って適宜RAM302にロードされ、CPU301による処理対象となる。
【0115】
机1200や壁1300には、マーカ1400〜1470が貼り付けられている。撮像装置801はこれらマーカ1400〜1470を含む現実空間の動画像を撮像し、撮像した各フレームの撮像画像のデータをコンピュータシステム800に送出する。なお、本実施形態では、マーカ1400の基準座標系における位置は既知であるとする。
【0116】
次に、図7に例示したGUIについて説明する。図7において700はGUIのウィンドウで、係るウィンドウ700内には以下のような表示領域、ボタン画像が設けられている。
【0117】
701はプレビュー表示領域で、撮像装置801から送出される各フレームの撮像画像を表示するための表示領域である。ここで、プレビュー表示領域701を観察しているユーザがボタン画像702を上記操作部304等を用いて指示すると、CPU301は係る指示を検知したタイミングで撮像装置801から取得した撮像画像を外部記憶装置306に登録する。そして、登録する撮像画像中にマーカが含まれている場合には、係るマーカについての同定処理を行う。更に、この登録する撮像画像のサムネイル画像を生成し、領域704内に追加表示する。
【0118】
図9は、本実施形態で用いるマーカ(マーカ1400〜1470)の一例を示す図である。図9に示す如く、本実施形態で用いるマーカは、第1の実施形態と同様に、枠領域の中に、2次元バーコードが記されている。係る2次元バーコードは、マーカに固有の識別子(指標識別情報の一例)をコード化したものである。従って、係るマーカを撮像した画像から、この2次元バーコードを読み取り、エンコードすることで、係るマーカが、マーカ1400〜1470の何れであるのかを特定することができる。
【0119】
なお、2次元バーコードが記されたマーカを撮像画像から検出するための技術については、例えば、「加藤博一, Mark Billinghurst, 浅野浩一, 橘啓八郎: マーカー追跡に基づく拡張現実感システムとそのキャリブレーション, 日本バーチャルリアリティ学会論文誌, Vol.4, No.4, pp.607-616 (1999)」に記されているように、公知の技術である。
【0120】
ここで、外部記憶装置306には、過去に撮像画像から検出し、同定したマーカの識別子毎(指標識別情報毎)に、その検出回数(頻度)が登録されている。即ち、マーカの識別子と、この識別子のマーカが過去に撮像画像から検出された検出回数と、のセットが、識別子毎に外部記憶装置306内に登録されている。
【0121】
従って、マーカの同定処理を行うと、係る同定処理で特定した識別子(注目識別子)が、外部記憶装置306に登録されているか否かをチェックする。係るチェックの結果、登録されていない場合には、このマーカは初めて撮像画像から検出されたものであるから、このマーカの識別子(注目識別子)と、検出回数=1のセットを外部記憶装置306に登録する。一方、登録されていた場合には、注目識別子とセットになって外部記憶装置306に登録されている検出回数を1つインクリメントする。
【0122】
なお、同定したマーカについて、係る同定処理で求めた他の情報(例えば、マーカを検出した撮像画像に固有の情報や、検出した画像座標など)についても、外部記憶装置306に登録するものとする。
【0123】
そして、CPU301は、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートしたものを表示領域705内に表示する。
【0124】
図12は、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートする様子を示す図である。例えば、外部記憶装置306内に図12の左側に示す如く、各セットが登録されていた場合には、図12の右側に示す如く、各セットが検出回数の少ない順にソートされる。
【0125】
図10は、表示領域705内の表示例を示す図である。図10に示す如く、各マーカのIDは、対応する回数の少ない順にソートされた状態で表示されている。更に、図10では、各マーカのIDは、対応する回数に応じた色でもって表示されている。図10では、回数が平均以下であるマーカIDは赤で表示し、回数が2/3以下であるマーカIDは黄色で表示し、残りのマーカIDは緑で表示している。なお、ソートする為の条件や、表示色についてはこれに限定するものではない。また、表示色の代わりに、表示文字サイズを変化させても良い。即ち、撮像画像から検出された回数が少ない程、マーカのマーカIDの表示文字サイズを大きくする。
【0126】
このように、撮像画像から検出された回数が比較的少ないマーカは、未だ位置姿勢を求めるためには不十分であるので、係る点をユーザに分かり易く報知するために、係るマーカのマーカIDについては、比較的目立つ色で表示する。これにより、ユーザは、更に撮像すべくマーカを知ることができる。
【0127】
図7に戻って、ボタン画像706は、指示することで、現在検出されているマーカについて、基準座標系における位置を求める処理を開始する。撮像画像中のマーカを用いてその位置を求めるための処理についてはここでの主眼ではないので、これについての説明は省略する。
【0128】
図11は、マーカキャリブレーションツールが有する機能のうち、各マーカのマーカIDを、各マーカの検出回数でソートした順に、その検出回数に応じた色でもって表示する機能を実行することで行われる処理のフローチャートである。係る処理は、コンピュータシステム800、即ち、図3に示したハードウェア構成を有するコンピュータが行うものとする。従って、以下説明する各ステップにおける処理の主体は、CPU301である。
【0129】
先ず、ステップS1101では、撮像装置801から送出される各フレームの画像をRAM302に取得し、取得した画像をプレビュー表示領域701に表示する。
【0130】
次にステップS1102では、ボタン画像702指示されたことにより、「画像取得」指示が入力されたか否かをチェックする。係るチェックの結果、入力されていない場合には処理をステップS1101に戻す。一方、入力されている場合には、処理をステップS1103に進める。
【0131】
ステップS1103では、係る指示を検知したタイミングで撮像装置801から取得した撮像画像を外部記憶装置306に登録する。
【0132】
ステップS1104では、この登録する撮像画像のサムネイル画像を生成し、領域704内に追加表示する。
【0133】
ステップS1105では、登録する撮像画像中にマーカが含まれている場合には、係るマーカについての同定処理を行う。
【0134】
ステップS1106では、ステップS1105における同定処理で特定した識別子(注目識別子)が、外部記憶装置306に登録されているか否かをチェックする。係るチェックの結果、登録されていない場合には、処理をステップS1108に進める。
【0135】
ステップS1108では、注目識別子と、検出回数=1のセットを外部記憶装置306に登録する。一方、登録されていた場合には、処理をステップS1107に進める。
【0136】
ステップS1107では、注目識別子とセットになって外部記憶装置306に登録されている検出回数を1つインクリメントする。
【0137】
そしてステップS1109では、外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートしたものを表示領域705内に表示する。その際、各セットを、検出回数に応じて予め定められた色でもって表示する。
【0138】
なお、本実施形態で説明した処理、即ち、指標の検出回数を識別子毎に管理しておき、各識別子を検出回数の少ない順に、検出回数に応じた色でもって一覧表示する処理は、第1の実施形態で説明した処理に加えても良い。
【0139】
[その他の実施形態]
また、本発明の目的は、以下のようにすることによって達成されることはいうまでもない。即ち、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給する。係る記憶媒体は言うまでもなく、コンピュータ読み取り可能な記憶媒体である。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行する。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0140】
また、コンピュータが読み出したプログラムコードを実行することにより、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行う。その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0141】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれたとする。その後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0142】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0143】
【図1】現実空間中に配されている指標の位置姿勢を求めるための、本発明の第1の実施形態に係るシステムの機能構成を示すブロック図である。
【図2】本発明の第1の実施形態で用いる指標を説明する図である。
【図3】画像処理装置1に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【図4】画像処理装置1が指標100の基準座標系における位置姿勢を計算するための処理のフローチャートである。
【図5】指標管理テーブルの構成例を示す図である。
【図6】ステップS4110による更新済みの指標管理テーブルの一例を示す図である。
【図7】マーカキャリブレーションツールのGUI(グラフィカルユーザインターフェース)の表示例を示す図である。
【図8】本発明の第3の実施形態に係るシステム、及び係るシステムが設置される環境の例を示す図である。
【図9】本発明の第3の実施形態で用いるマーカ(マーカ1400〜1470)の一例を示す図である。
【図10】表示領域705内の表示例を示す図である。
【図11】マーカキャリブレーションツールが有する機能のうち、各マーカのマーカIDを、各マーカの検出回数でソートした順に、その検出回数に応じた色でもって表示する機能を実行することで行われる処理のフローチャートである。
【図12】外部記憶装置306内に登録されている各セットを、検出回数の少ない順にソートする様子を示す図である。
【特許請求の範囲】
【請求項1】
複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得手段と、
前記取得手段が取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録手段と、
前記登録手段が同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理手段と、
前記登録手段が前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理手段が管理している回数を表示する表示手段と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記登録手段は、ユーザから登録の指示を受ける毎に登録処理を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記表示手段は更に、前記取得手段が取得した撮像画像を表示することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記表示手段は、前記撮像画像中の指標を、当該指標について前記管理手段が管理している回数に応じた表示形態でもって表示することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記表示手段は更に、
前記登録手段が前記セットを登録する毎に、前記メモリに登録されているセット群のうち当該取得したセットと同じ指標識別情報を含むセットに対応する指標の位置姿勢が既に求められているのかを示す情報を表示することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記計算手段は、ユーザからの指示に応じて前記計算を開始することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記計算手段は、前記管理手段が管理する全ての回数が閾値以上であれば、前記計算を開始することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
更に、
前記管理手段が管理しているそれぞれの回数を予め設定された条件に従ってソートした結果を一覧表示する第2の表示手段を備えることを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記第2の表示手段は、前記一覧表示するそれぞれの回数の表示を、その回数に応じた色で行うことを特徴とする請求項8に記載の画像処理装置。
【請求項10】
複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得工程と、
前記取得工程で取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録工程と、
前記登録工程で同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理工程と、
前記登録工程で前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理工程で管理している回数を表示する表示工程と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算工程と
を備えることを特徴とする画像処理方法。
【請求項11】
コンピュータに請求項10に記載の画像処理方法を実行させるためのコンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【請求項1】
複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得手段と、
前記取得手段が取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録手段と、
前記登録手段が同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理手段と、
前記登録手段が前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理手段が管理している回数を表示する表示手段と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算手段と
を備えることを特徴とする画像処理装置。
【請求項2】
前記登録手段は、ユーザから登録の指示を受ける毎に登録処理を行うことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記表示手段は更に、前記取得手段が取得した撮像画像を表示することを特徴とする請求項1に記載の画像処理装置。
【請求項4】
前記表示手段は、前記撮像画像中の指標を、当該指標について前記管理手段が管理している回数に応じた表示形態でもって表示することを特徴とする請求項1に記載の画像処理装置。
【請求項5】
前記表示手段は更に、
前記登録手段が前記セットを登録する毎に、前記メモリに登録されているセット群のうち当該取得したセットと同じ指標識別情報を含むセットに対応する指標の位置姿勢が既に求められているのかを示す情報を表示することを特徴とする請求項1に記載の画像処理装置。
【請求項6】
前記計算手段は、ユーザからの指示に応じて前記計算を開始することを特徴とする請求項1に記載の画像処理装置。
【請求項7】
前記計算手段は、前記管理手段が管理する全ての回数が閾値以上であれば、前記計算を開始することを特徴とする請求項1に記載の画像処理装置。
【請求項8】
更に、
前記管理手段が管理しているそれぞれの回数を予め設定された条件に従ってソートした結果を一覧表示する第2の表示手段を備えることを特徴とする請求項1に記載の画像処理装置。
【請求項9】
前記第2の表示手段は、前記一覧表示するそれぞれの回数の表示を、その回数に応じた色で行うことを特徴とする請求項8に記載の画像処理装置。
【請求項10】
複数の指標が配された現実空間の画像を複数枚撮像する撮像装置から、撮像画像を取得する取得工程と、
前記取得工程で取得した撮像画像中に含まれている指標について同定処理を行うことで得られる、当該指標に固有の指標識別情報、当該指標の当該撮像画像中における画像座標、及び当該撮像画像に固有の画像識別情報、のセットを、当該撮像画像中の指標毎に取得し、取得したセットをメモリに登録する登録工程と、
前記登録工程で同定処理を行った指標の指標識別情報毎に、過去に同定された回数を管理する管理工程と、
前記登録工程で前記セットを登録する毎に、当該登録するセット中の指標識別情報について前記管理工程で管理している回数を表示する表示工程と、
前記メモリに登録されているセット群を用いて、当該セット群に対応する指標の位置姿勢を計算する計算工程と
を備えることを特徴とする画像処理方法。
【請求項11】
コンピュータに請求項10に記載の画像処理方法を実行させるためのコンピュータプログラム。
【請求項12】
請求項11に記載のコンピュータプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2008−249407(P2008−249407A)
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願番号】特願2007−89047(P2007−89047)
【出願日】平成19年3月29日(2007.3.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成20年10月16日(2008.10.16)
【国際特許分類】
【出願日】平成19年3月29日(2007.3.29)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]