(57)【要約】【課題】撮像装置または物体の位置及び姿勢の算出において、追跡処理を再び行うまでに要する時間を軽減するための技術を提供すること。【解決手段】撮像装置で撮像された撮像画像を取得し、取得された撮像画像をフレーム毎に順番に記憶し、撮像画像で検出される直線と３次元空間モデルの直線とを対応させ、最も整合性の高い対応を得ることで撮像装置の位置姿勢を初期化し、複数の撮像画像の中から処理を行う撮像画像を選択し、初期化された前記撮像装置の位置姿勢を基準として、選択撮像画像の対象物体の位置姿勢の変化により撮像装置の位置姿勢の変化を計測し、計測された位置姿勢の変化の値が所定の閾値に入っていないと判定された場合、処理するフレームの撮像画像を用いて初期化を行う。【選択図】図１
2010279023.tif 000002
【特許請求の範囲】
【請求項１】
対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力手段と、
前記入力手段により取得された複数のフレーム画像を記憶する記憶手段と、
前記記憶された複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出される特徴と前記対象物体の予め登録された特徴とを対応させ、前記撮像装置の位置姿勢を導出する初期化手段と、
前記指定フレーム画像に続くフレーム画像を前記複数のフレーム画像の中から順次選択し、前記選択したフレーム画像に先行するフレーム画像における前記対象物体の特徴を現在選択しているフレーム画像の前記対象物体の特徴に対応させ、前記撮像装置の位置姿勢を計測する計測処理手段と、
前記計測処理手段が計測した前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定手段と、
前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定手段が判定した場合、現在選択しているフレーム画像を用いて初期化させるよう前記初期化手段を制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記指定フレーム画像に続くフレーム画像は、前記記憶手段が記憶した前記複数の撮像画像の中から、予め設定したフレーム数毎に選択されることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
フレーム画像のフレームレートの値に基づき、前記予め設定したフレーム数が決定されることを特徴とする請求項２に記載の情報処理装置。
【請求項４】
対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力手段と、
前記入力手段により取得された複数のフレーム画像を記憶する記憶手段と、
前記記憶された複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出される特徴と前記対象物体の予め登録された特徴とを対応させ、前記撮像装置の位置姿勢を導出する初期化手段と、
前記指定フレーム画像に続くフレーム画像を前記複数のフレーム画像の中から順次選択し、前記選択したフレーム画像に先行するフレーム画像における前記対象物体の特徴を現在選択しているフレーム画像の前記対象物体の特徴に対応させ、前記撮像装置の位置姿勢を計測する計測処理手段と、
前記計測処理手段が計測した前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定手段と、
前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定手段が判定した場合、前記計測処理手段が、前記現在選択しているフレーム画像のフレームから予め設定した数だけ跳び越えたフレーム画像を用いて前記撮像装置の位置姿勢の変化を再計測するように制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項５】
対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力手段と、
前記撮像装置の姿勢データを検出する姿勢センサから該姿勢データを前記複数のフレーム画像に対応して取得する姿勢取得手段と、
前記複数のフレーム画像に対応して取得された複数の前記姿勢データと前記取得された複数のフレーム画像とを記憶する記憶手段と、
前記複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出される特徴と前記対象物体の予め登録された特徴とを対応させ、前記撮像装置の位置姿勢を導出する初期化手段と、
前記指定フレーム画像に続くフレーム画像を前記記憶された複数のフレーム画像の中から順次選択し、前記選択したフレーム画像に先行するフレーム画像に対応する姿勢データと現在選択しているフレームに対応する姿勢データとを比較し、その姿勢変化が所定の閾値以上である場合に、前記先行するフレーム画像における前記対象物体の特徴を前記現在選択しているフレーム画像の前記対象物体の特徴に対応させ、前記撮像装置の位置姿勢を計測する計測処理手段と、
前記計測処理手段により計測された前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定手段と、
前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定手段が判定した場合、現在選択しているフレーム画像を用いて初期化させるよう前記初期化手段を制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項６】
対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力手段と、
前記入力手段により取得された複数のフレーム画像を記憶する記憶手段と、
前記記憶された複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出される特徴と前記対象物体の予め登録された特徴とを対応させ、前記撮像装置の位置姿勢を導出する初期化手段と、
前記指定フレーム画像に続くフレーム画像を前記記憶された複数のフレーム画像の中から順次選択し、前記選択したフレームに先行するフレーム画像と現在選択しているフレームを用いてオプティカルフローの変化を算出し、該オプティカルフローの算出した値が所定の閾値以上である場合に、前記先行するフレーム画像における前記対象物体の特徴を前記現在選択しているフレーム画像の前記対象物体の特徴に対応させ、前記撮像装置の位置姿勢を計測する計測処理手段と、
前記計測処理手段により計測された前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定手段と、
前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定手段が判定した場合、現在選択しているフレーム画像を用いて初期化させるよう前記初期化手段を制御する制御手段と
を備えることを特徴とする情報処理装置。
【請求項７】
対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力工程と、
前記入力工程により取得された複数のフレーム画像を記憶する記憶工程と、
前記記憶された複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出される特徴と前記対象物体の予め登録された特徴とを対応させ、前記撮像装置の位置姿勢を導出する初期化工程と、
前記指定フレーム画像に続くフレーム画像を前記記憶された複数のフレーム画像の中から順次選択し、前記選択したフレームに先行するフレーム画像における前記対象物体の特徴を現在選択しているフレーム画像の前記対象物体の特徴に対応させ、前記撮像装置の位置姿勢を計測する計測処理工程と、
前記計測処理工程が計測した前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定工程と、
前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定工程が判定した場合、現在選択しているフレーム画像を用いて初期化させるよう前記初期化工程を制御する制御工程と
を備えることを特徴とする情報処理装置の制御方法。
【請求項８】
コンピュータに、請求項７に記載の情報処理装置の制御方法を実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびその制御方法に関し、特に、画像を用いた撮像装置および物体の位置及び姿勢の計測に関する。
【背景技術】
【０００２】
近年、現実空間に仮想空間の情報を重ね合わせて表示する拡張現実感（Ａｕｇｍｅｎｔｅｄ Ｒｅａｌｉｔｙ、以下「ＡＲ」と言う）技術の研究が盛んである。ＡＲ技術の情報提示装置としては、ビデオシースルー型のヘッドマウントディスプレイ（Ｈｅａｄ Ｍｏｕｎｔｅｄ Ｄｉｓｐｌａｙ、以下「ＨＭＤ」と言う）が代表的である。ビデオシースルー型ＨＭＤには現実空間を撮影するカメラが内蔵されており、このカメラの現実空間における位置及び姿勢に応じて、仮想物体をコンピュータグラフィックスにより描画する。更に描画した仮想物体を現実空間の画像上に重畳した合成画像が、液晶パネルなどのＨＭＤの表示デバイス上に表示される。この情報提示装置によって、利用者はあたかも仮想物体が現実空間中に実在するかのように感じる。
【０００３】
ＡＲ技術を実現する上で解決しなければならない大きな問題の一つとして「位置合わせ」がある。ＡＲにおける位置合わせとは、仮想物体と現実空間との間の幾何学的な整合性を取ることである。仮想物体が現実空間に実在するように利用者が感じるためには、この幾何学的な位置合わせが正しく行われる必要がある。つまり、利用者には仮想物体が常に現実空間中の存在すべき位置に存在しているように提示されなければならない。ビデオシースルー型ＨＭＤを利用する場合、この位置合わせを行うということは、ＨＭＤに内蔵したカメラの現実空間に設定された座標系における位置及び姿勢を計測するということになる。カメラの位置及び姿勢の計測は、例えば磁気センサや超音波センサなど６自由度のカメラの位置及び姿勢を計測する物理センサによって行うことができる。
【０００４】
ところで、ビデオシースルー型ＨＭＤを利用する場合、カメラの位置及び姿勢を計測するためにＨＭＤに内蔵されたカメラからの画像情報を利用することが可能となる。このような画像情報を利用する計測方法は、物理センサを利用する方法に比べて手軽でかつ低コストで行えるので広く利用されている。
【０００５】
非特許文献１では、現実空間や現実物体を線分によって記述した３次元幾何モデルと、カメラが撮影する画像上のエッジ情報を利用してカメラの位置及び姿勢を計測する方法が開示されている。ここでエッジとは、画像上において濃度が急激に変化する点のことを表す。この方法では、画像上で検出される多数のエッジがカメラの位置及び姿勢に基づいて画像上に投影された３次元幾何モデルの線分に当てはまるようにすることで、カメラの位置及び姿勢を算出する。より具体的には、予め入力されるカメラの位置及び姿勢の予測値をもとに３次元幾何モデルの線分を画像に仮想的に投影し、投影された線分の近傍においてエッジ検出を行う。そして、検出されたエッジが投影された線分上に存在するように、カメラの位置及び姿勢の予測値を補正することを繰り返すことにより、カメラの位置及び姿勢を算出する。
【０００６】
前述のエッジを用いたカメラの位置及び姿勢の計測方法では、カメラの位置及び姿勢の予測値として、主に前フレームにおけるカメラの位置及び姿勢が利用される。そのため、あるフレームにおいて位置及び姿勢の計測に失敗した場合には、その後のフレームにおける位置及び姿勢の計測を行うことができない。計測の失敗は、例えばカメラを高速に移動させた場合に起こる。そのような場合には、画像にモーションブラーが発生してエッジが検出されなかったり、カメラの位置及び姿勢の予測値に基づいて投影される線分の近傍にエッジが存在しなかったりするため、位置及び姿勢の計測に失敗しやすい。また、最初のフレームにおいては、前フレームにおけるカメラの位置及び姿勢を得る事ができない。
【０００７】
そのため、エッジを用いたカメラの位置及び姿勢を実際に利用するためには、最初のフレームや計測に失敗した直後に、カメラの位置及び姿勢の予測値を利用しないでカメラの位置及び姿勢の計測を行う初期化処理が必要となる。
【０００８】
その方策の一つとして、予め決められた初期位置及び初期姿勢を設定しておき、カメラを初期位置及び初期姿勢になるように移動した後に、該初期位置及び初期姿勢を予測値としてエッジを用いたカメラの位置及び姿勢を初期化することが行われている。
【０００９】
別の方策として、画像上で検出される特徴から、カメラの位置及び姿勢の予測値を利用しないでカメラの位置及び姿勢の計測を行う方法がある。例えば、非特許文献２では、画像上で検出される直線と、それに対応する３次元空間における直線の対応から、カメラの位置及び姿勢の計測を行う方法が開示されている。この方法では、少なくとも８本以上の直線の対応に基づいて立式される線型方程式を解くことにより、カメラの位置及び姿勢を算出する。非特許文献２の方法では、画像上で検出される直線とそれに対応する３次元空間における直線を対応付ける方法は示されていない。そのため、画像上の直線と３次元空間中の直線の対応が未知の状態から、非特許文献２で開示される方法を用いてカメラの位置及び姿勢を計測するためには、何らかの方策により画像上で検出される直線と３次元空間中での直線との対応を求める必要がある。一般的には、画像上での直線と３次元空間での直線とをランダムに対応付けてカメラの位置及び姿勢を算出し、最も整合性の高い対応を用いたときの算出結果を最終的なカメラの位置及び姿勢として出力する。
【００１０】
また、特許文献１では、カメラに傾斜角センサを装着し、傾斜角センサの計測値と画像情報（点の情報）を併用してカメラの位置及び姿勢を計測することで、位置及び姿勢の計測を安定化している。また、特許文献２では、カメラに傾斜角センサを装着し、傾斜角センサの計測値と画像上における直線の情報を利用して、カメラの方位角を算出している。
【００１１】
前述した初期化処理は一般的に時間を要するため、例えばカメラが常に動いている場合には、初期化処理に使用した画像におけるカメラの位置及び姿勢と、初期化処理が終了した時点でのカメラの実際の位置及び姿勢に大きな差異が発生する場合がある。そのような場合には、初期化処理終了後のカメラの位置及び姿勢の値に基づいて投影される線分の近傍にエッジが存在しなくなり、位置及び姿勢の計測に失敗しやすい。特許文献３では、カメラが撮像した各フレームの画像データを保持し、初期化処理に使用した次フレームの画像から現在の画像まで逐次処理を行うことで、カメラまたは物体の位置及び姿勢情報の追跡を可能としている。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開２００６−２９２４１７号公報
【特許文献２】特開２００４−１０８８３６号公報
【特許文献３】特開２００２−３３４３３８号公報
【非特許文献】
【００１３】
【非特許文献１】T. Drummond and R.Cipolla,"Real−time visual tracking of complex structures",IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.24,no.7,pp.932−946,2002.
【非特許文献２】Y.Liu,T.S.Huang,and O.D.Faugeras,"Determination of camera location from 2−D to 3−D line and point correspondences",IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.12,no.1,pp.28−37,1990.
【非特許文献３】I. Gordon and D. G. Lowe: "Scene Modelling, Recognition and Tracking with Invariant Image Features" Proc. Int. Symp. on Mixed and Augmented Reality, pp. 110-119, 2004.
【非特許文献４】E.Rosten, T.Drummond,"Fusing points and lines for high performance tracking,"In: 10th IEEE International Conference on Computer Vision. Vol.2, pp.1508-1515, 2005.
【発明の概要】
【発明が解決しようとする課題】
【００１４】
しかし、特許文献３の方法では、初期化処理に用いた画像から現在の画像までの全ての画像において追跡処理を逐次行う。従って、初期化処理に多くの時間を要した場合、現在の画像に対して追跡処理を行うまでに多くの時間を要してしまう。また、この方法では、カメラまたは対象物体が追跡処理の失敗を招くような高速な動きをした際には、初期化処理と追跡処理に失敗するフレームまでの追跡処理を行った後、更に改めて初期化処理および追跡処理を行う必要がある。この場合、追跡処理を再び行うまでに多大な時間を要してしまうという課題があった。
【００１５】
本発明は、追跡処理を再び行うまでの処理時間が長いという従来技術の課題を解決することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、本発明の情報処理装置は、対象物体を撮像する撮像装置から複数のフレーム画像を取得する入力手段と、前記入力手段により取得された複数のフレーム画像を記憶する記憶手段と、前記記憶された複数のフレーム画像の中から予め指定された１枚の指定フレーム画像を選択し、該指定フレーム画像で検出されるエッジと前記対象物体の３次元幾何モデルの形状とを対応させ、前記撮像装置の位置姿勢の値を導出する初期化手段と、前記指定フレーム画像に続くフレーム画像を前記複数のフレーム画像の中から順次選択し、前記選択したフレーム画像に先行するフレーム画像により決定された位置姿勢の値を用いて前記対象物体の３次元幾何モデルを現在選択しているフレーム画像の前記対象物体のエッジに対応させ、前記撮像装置の位置姿勢を計測する計測処理手段と、前記計測処理手段が計測した前記撮像装置の位置姿勢の値が所定の範囲に入っているか否かを判定する判定手段と、前記撮像装置の位置姿勢の値が前記所定の範囲に入っていないと前記判定手段が判定した場合、現在選択しているフレーム画像を用いて初期化させるよう前記初期化手段を制御する制御手段とを備えることを特徴とする。
【発明の効果】
【００１７】
本発明によれば、追跡処理を再び行うまでの処理時間を短くすることが可能になる。
【図面の簡単な説明】
【００１８】
【図１】実施形態１に係る位置姿勢計測装置の構成例を示すブロック図。
【図２】実施形態１における位置姿勢計測方法の処理手順を示すフローチャート。
【図３】画像上への３次元モデルの投影を説明する図である。
【図４】実施形態２における位置姿勢計測方法の処理手順を示すフローチャート。
【図５】実施形態３における位置姿勢計測装置の構成例を示すブロック図。
【図６】実施形態３における位置姿勢計測方法の処理手順を示すフローチャート。
【図７】実施形態４における位置姿勢計測装置の構成例を示すブロック図。
【図８】実施形態４における位置姿勢計測方法の処理手順を示すフローチャート。
【図９】情報処理装置の各部をソフトウェアにより実現するコンピュータの基本構成を示すブロック図。
【図１０】実施形態５に係る位置姿勢計測装置の構成例を示すブロック図。
【図１１】実施形態５における位置姿勢計測方法の処理手順を示すフローチャート。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００２０】
［実施形態１］
（構成）
図１は、実施形態１に係る情報処理装置である位置姿勢計測装置の構成を示すブロック図である。図１に示す如く、本実施形態に係る位置姿勢計測装置１０００は、画像入力部１０１０、画像選択部１０２０、位置姿勢初期化処理部１０３０、位置姿勢算出部１０４０、データ記憶部１０５０によって構成されている。また、位置姿勢計測装置１０００は、制御部１００５を有し、これらの構成要素を統括的に制御する。
【００２１】
画像入力部１０１０は撮像装置１１０に接続されている。撮像装置１１０は観察対象物体１００を撮影する。位置姿勢計測装置１０００は、観察対象物体１００を含む３次元空間中に規定される座標系における撮像装置１１０の位置及び姿勢を計測する。なお、観察対象物体は現実空間中に固定されているものとする。以下、位置姿勢計測装置１０００を構成する各部について説明する。
【００２２】
画像入力部１０１０は、撮像装置１１０によって撮像された連続する複数のフレーム画像を取得する。そして取得したフレーム画像をデータ記憶部１０５０に順番に格納する。画像入力部１０１０は、撮像装置の出力がＮＴＳＣ信号などのアナログ出力であればアナログビデオキャプチャボードによって実現される。また撮像装置の出力がＩＥＥＥ１３９４などのデジタル出力であれば、例えばＩＥＥＥ１３９４インタフェースボードによって実現される。また、予め記憶装置に記憶してある静止画像や動画像のデジタルデータを読み出しても良い。
【００２３】
画像選択部１０２０は、データ記憶部１０５０に格納されている画像入力部１０１０によって取得された画像から、位置姿勢初期化処理部１０３０のための予め指定された１枚の指定フレーム画像や、位置姿勢算出部１０４０のための該指定画像に先行するフレーム画像を順次選択する。
【００２４】
位置姿勢初期化処理部１０３０は、画像選択部１０２０で選択された１枚の画像を用いて撮像装置の位置および姿勢の導出を行う。例えば、非特許文献２で開示される画像上で検出される直線と、それに対応する３次元空間における直線との対応から撮像装置の位置及び姿勢の算出を行い、データ記憶部１０５０に格納する。
【００２５】
位置姿勢算出部１０４０は、画像選択部１０２０で選択された画像を用いて、例えば非特許文献１で開示されるエッジを用いた撮像装置の位置及び姿勢の計測を行う。
【００２６】
データ記憶部１０５０は上述の通り、様々な情報を格納するためのものであり、ＲＡＭやハードディスクドライブ装置などにより構成されている。また、データ記憶部１０５０は、観察対象物体１００の３次元幾何モデルデータを格納する。また、データ記憶部１０５０は、位撮像装置の位置姿勢の計測状態が成功であったか失敗であったかを示すフラグＦを保持する。初期状態におけるフラグＦは、位置姿勢計測の予測値がないので、失敗として保持される。尚、データ記憶部１０５０には、上記説明においてデータ記憶部１０５０に格納するものとして説明した情報の他に、本実施形態において既知の情報として説明するものについても格納されているものと仮定する。
【００２７】
（フローチャート）
次に、実施形態１における位置姿勢計測方法の処理手順について説明する。図２は、本実施形態における位置姿勢計測方法の処理手順を示すフローチャートである。
【００２８】
まずステップＳ２０１０において、制御部１００５は、データ記憶部に格納されたフラグＦの値を見ることにより、現在の撮像装置の位置姿勢計測が成功か、または失敗であるかを判定する。失敗の場合、ステップＳ２０２０に進む。また、成功の場合にはステップＳ２０４０に進む。
【００２９】
ステップＳ２０２０において、画像選択部１０２０は、データ記憶部１０５０に記憶された画像のうちこれから処理を行う画像を選択する。これは現在選択している最新の画像を指す。
【００３０】
ステップＳ２０３０において、位置姿勢初期化処理部１０３０は、撮像装置１１０の位置及び姿勢の初期化処理を行う。初期化処理が成功した場合はフラグＦを成功に、初期化処理が失敗した場合はフラグＦを失敗にセットして、データ記憶部１０５０へ格納し、ステップＳ２０７０に進む。尚、撮像装置の位置及び姿勢の初期化処理を行うための技術については、例えば非特許文献２のように周知技術であるので、これについての詳細な説明は省略する。
【００３１】
ステップＳ２０４０において、画像選択部１０２０は、次に処理する画像を選択する。この次の画像は、位置姿勢算出部１０４０が使用する画像であり、データ記憶部１０５０に保存されている撮像装置によって撮影された画像の中から選択される。
【００３２】
ここで、画像選択部１０２０における、この画像の選択方法について説明する。特許文献３では、初期化に用いた画像から現在の画像までの全ての画像において逐次処理を行っていたため、現在の画像に対して追跡処理を行うまでに多くの時間を要していた。しかし、本実施形態に係る追跡処理では、初期化から現在までの全ての画像を逐次処理するのではなく、一定のフレームを飛ばして追跡処理をすることで、従来よりも短時間で初期化処理から追跡処理を続けられる。データ記憶部１０５０に格納されている撮像装置によって撮影されたｉ番目のフレームにおける画像をＰｉ（ｉ＝１，２，...，Ｎ）とする。ここで、ＰＮは画像処理を行っている最新の画像を示している。画像選択部１０２０は、ｋ番目のフレームの画像まで撮像装置の位置及び姿勢の算出に使用済とする。このとき、画像選択部１０２０は、処理が完了したｋ番目のフレームからαだけ離れた（時間的に進んだ）（ｋ＋α）番目のフレームの画像Ｐｋ＋αを選択する。αの値は、オペレータによる対話的な設定操作等によって与えておく。あるいは、予め設定された撮像装置の画像のフレームレートやステップＳ２０５０の処理に要する時間によって、動的に設定しても良い。
【００３３】
ステップＳ２０５０において、位置姿勢算出部１０４０は、ステップＳ２０４０において選択された画像Ｐｋ＋αを用いて、撮像装置１１０の位置及び姿勢の算出を行う。この計測は、例えば非特許文献１で開示されているエッジを用いた位置及び姿勢の算出方法で良い。図３は撮像画像上への３次元幾何モデルの投影を説明する図である。この図を用いてステップＳ２０５０での撮像装置１１０の位置及び姿勢の算出処理の説明を行う。
【００３４】
（１）撮像装置の位置及び姿勢の予測値及び予め校正済みのカメラの固有パラメータに基づいて、３次元幾何モデルの線分を画像上に投影する。ここで、図３（ａ）は、撮像装置により撮像された画像の対象物体の形状を示し、図３（ｂ）は、撮像装置により撮像された画像に３次元幾何モデルの形状を表す線分を投影した画像を示している。ここで３次元幾何モデルは、太い実線と点線で表わされ、点線は幾何モデルの見えない部分を示している。この３次元幾何モデルは、図３（ａ）のフレームの前のフレームで決定されたカメラの位置姿勢の予測値に基づいて投影される。
【００３５】
（２）投影された各線分を、画像上で一定間隔となるように分割し、分割点を設定する。そして各分割点について、該分割点を通過し向きが投影された線分の法線方向である線分（探索ライン）上でエッジ探索を行い、探索ライン上における輝度値の勾配が極大でありかつ分割点に最も近い点を対応エッジとして検出する。
【００３６】
（３）分割点毎に検出された対応エッジと、投影される線分との間の画像上での距離の総和が最小となるような撮像装置の位置及び姿勢の補正値を算出し、撮像装置の位置及び姿勢を補正する。
【００３７】
（４）（３）の処理を収束するまで繰り返し最適化計算を行う。
【００３８】
ステップＳ２０５０の処理が終了したらステップＳ２０６０に進む。
【００３９】
ステップＳ２０６０において、制御部１００５は破綻検出を行う。ここでは、位置及び姿勢の計測に失敗しているかどうかを検出する。破綻検出は、例えば算出された位置及び姿勢に基づき画像上に投影した線分と、ステップＳ２０５０で検出されたエッジの距離とに基づいて行う。具体的には、線分とそれに対応する検出エッジとの距離が予め設定された閾値以上であるエッジの割合が閾値以上であれば破綻していると判定する。ステップＳ２０６０において破綻していると検出された場合、制御部１００５はフラグＦを失敗にセットし、データ記憶部１０５０へ格納する。ステップＳ２０６０の処理が終了したら、ステップＳ２０７０に進む。
【００４０】
ステップＳ２０７０では、位置姿勢計測を終了するか否かの判定を行う。終了しない場合にはステップＳ２０１０に戻る。
【００４１】
以上のように、本実施形態では、画像処理の破綻が検出されても、初期化に用いた画像から現在の画像までの全ての画像において逐次処理を行わず、所定のフレームαまで飛ばして処理することにより、従来に比べて短時間で追跡処理を再び行うことが可能となる。
【００４２】
［実施形態２］
実施形態２では実施形態１のように再度初期化処理を行わず、その代わり、処理済のｋ番目のフレームの画像Ｐｋとｋ＋α番目のフレームの画像Ｐｋ＋αとの間の（ｋ＋ｊ）番目のフレームの画像Ｐｋ＋ｊ（ｊ＝１，２，...，α−１）を使用して、追跡処理を行う。この画像Ｐｋ＋ｊを用いた追跡処理を行うことで撮像装置の位置及び姿勢の計測処理が成功し、実施形態１で行った初期化処理に費やす時間より少なくすることが期待できる。以下、本実施形態に係る位置姿勢計測方法の処理手順について説明する。
【００４３】
（フローチャート）
図４は、実施形態２における位置姿勢計測方法の処理手順を示すフローチャートである。ステップＳ４０１０では、制御部１００５は、データ記憶部１０５０に格納されているフラグＦの値を見ることにより、現在の位置姿勢計測の状態が成功または失敗かの判定を行う。失敗の場合、ステップＳ４０２０に進む。また成功の場合にはステップＳ４０６０に進む。
【００４４】
ステップＳ４０２０において、制御部１００５は、予めデータ記憶部１０５０の格納していたαの値を見ることにより、追跡処理用の画像（ｋとｋ＋αとの間のフレーム画像）が残存しているか否かの判定を行う。α≧２である場合には、ステップＳ４０５０に進む。また、α＜２である場合にはステップＳ４０３０に進む。
【００４５】
ステップＳ４０３０において、追跡処理用の画像が１つしか残存していないので、画像選択部１０２０は、処理を行う画像として最新の画像を選択する。次にステップＳ４０４０において、位置姿勢初期化処理部１０３０は、撮像装置１１０の位置及び姿勢の初期化処理を行う。初期化処理が終了した後はαの値を０にセットする。初期化処理が成功した場合はフラグＦを成功に、初期化処理が失敗した場合はフラグＦを失敗にセットしデータ記憶部１０５０に格納して、ステップＳ４０９０に進む。
【００４６】
ステップＳ４０５０において、追跡処理用画像は残存するので、画像選択部１０２０は、画像ＰｋとＰｋ＋αとの間の画像Ｐｋ＋ｊ（ｊ＝１，２，...，α−１）を選択し、α＝ｊに設定する。すなわち、、画像選択部１０２０は、ｋ番目のフレームから数えてｊ番目のフレーム数毎に画像を選択する。ｊの値は、オペレータによる対話的な設定操作等によって与えておいても良いし、あるいは、撮像装置が撮影する画像のフレームレートによって、動的に設定しても良い。ステップＳ４０５０の処理が終了したら、ステップＳ４０７０に処理を進める。
【００４７】
ステップＳ４０６０において、画像選択部１０２０は、位置姿勢算出部１０４０が使用する画像Ｐｋ＋αを選択する。この画像は、データ記憶部１０５０に保存されている画像入力部１０１０が取得した撮像装置によって撮影された画像の中から選択するものである。ステップＳ４０６０の処理が終了したら、ステップＳ４０７０に処理を進める。
【００４８】
ステップＳ４０７０において、位置姿勢算出部１０４０は、ステップＳ４０５０又はステップＳ４０６０で選択された画像Ｐｋ＋αを用いて、周知の例えば非特許文献１で開示されているエッジを用いた位置及び姿勢の算出方法によって、撮像装置１１０の位置及び姿勢の再計測を行う。ステップＳ４０７０の処理が終了したらステップＳ４０８０に進み、破綻検出を行う。
【００４９】
ステップＳ４０８０では、制御部１００５は、位置及び姿勢の計測に失敗しているかどうかを検出する。破綻の検出は、例えば算出された位置及び姿勢に基づき画像上に投影した線分と、上記のステップＳ４０７０で検出されたエッジの距離に基づいて行う。具体的には、該線分とそれに対応する検出エッジとの距離が予め設定された閾値以上であるエッジの割合が閾値以上であれば破綻していると判定する。ステップＳ４０７０において破綻していると検出された場合には、フラグＦを失敗にセットする。ステップＳ４０７０の処理が終了したら、ステップＳ４０９０に進む。
【００５０】
ステップＳ４０９０では、制御部１００５は、データ記憶部１０５０の画像データが残っているかを確認することで、位置姿勢計測を終了するか否かの判定を行う。終了しない場合にはステップＳ４０１０に戻る。
【００５１】
以上のように、実施形態２では破綻後、画像Ｐｋ＋αよりも時間的に前のフレームの撮像画像を用いて撮像装置の位置および姿勢の計測処理を行い破綻をしなければ、実施形態１のように再度初期化処理を行うよりも早く計測処理を進めることができる。
【００５２】
［実施形態３］
本実施形態に係る位置姿勢計測装置は、実施形態１の位置姿勢計測装置に３自由度の姿勢センサを撮像装置に装着した構成となっている。実施形態３は、姿勢センサから出力される姿勢計測値を用いることを特徴とする。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
【００５３】
（構成）
図５は、実施形態３に係る位置姿勢計測装置の構成を示すブロック図である。なお、図５において図1と同じ構成部については同じ番号を付けている。従って、その説明は省略する。図に示す如く、本実施形態に係る位置姿勢計測装置５０００は、画像入力部１０１０、位置姿勢算出部１０４０、データ記憶部１０５０、センサ計測値取得部５０１０、画像選択部５０２０、位置姿勢初期化処理部１０３０、センサ計測値監視部５０４０によって構成されている。また、位置姿勢計測装置５０００は、制御部１００５を有し、これらの構成要素を統括的に制御する。
【００５４】
姿勢センサ５００は、センサ座標系における自身の姿勢を計測する。姿勢センサ５００は、地球の重力方向を計測可能な傾斜計（不図示）を内部に有しており、センサ座標系の１つの軸は重力と逆の方向に設定される。計測した３自由度の姿勢データの計測値は、センサ計測値取得部５０１０の要求に従って、センサ計測値取得部５０１０へと出力される。
【００５５】
姿勢取得手段であるセンサ計測値取得部５０１０は、姿勢センサ５００から入力された姿勢計測値をデータ記憶部１０５０へと出力する。画像選択部５０２０は、データ記憶部１０５０に格納されている画像入力部１０１０によって取得された画像から、位置姿勢初期化処理部１０３０または位置姿勢算出部１０４０が使用する画像を選択する。
【００５６】
位置姿勢初期化処理部１０３０は、画像選択部５０２０で選択された画像を用いて、撮像装置の位置及び姿勢の予測値を利用しないで撮像装置カメラの位置及び姿勢の計測（初期化処理）を行い、計測結果をデータ記憶部１０５０に格納する。初期化処理の方法は、非特許文献２で開示される方法であっても良いし、あるいは、特許文献１で開示される姿勢センサ５００の計測値を利用した方法であっても良い。センサ計測値監視部５０４０は、センサ計測値取得部５０１０で取得された姿勢センサ５００の姿勢計測値を監視し、センサ計測値の変化量を算出する。
【００５７】
（フローチャート）
次に、実施形態３における位置姿勢計測方法の処理手順について説明する。図６は、実施形態３における位置姿勢計測方法の処理手順を示すフローチャートである。
【００５８】
まずステップＳ６０１０において、制御部１００５は、データ記憶部１０５０に格納されたフラグＦの値を見ることにより、現在の位置姿勢計測の状態が成功または失敗であるかの判定を行う。失敗の場合には、ステップＳ６０２０に進む。また、成功の場合にはステップＳ６０８０に進む。
【００５９】
ステップＳ６０２０において、画像選択部５０２０は、処理を行う画像として最新の画像を選択する。次にステップＳ６０３０において、位置姿勢初期化処理部１０３０は、撮像装置１１０の位置及び姿勢の初期化処理を開始して、処理をステップＳ６０４０に進める。
【００６０】
ステップＳ６０４０において、センサ計測値取得部５０１０は、姿勢センサ５００の姿勢計測値を取得して、データ記憶部１０５０に格納する。
【００６１】
ステップＳ６０５０において、センサ計測値監視部５０４０は、姿勢センサ５００の姿勢計測値の姿勢変化を算出し、変化量の大小の姿勢変化判定を行う。具体的には、前回取得した姿勢センサ５００の姿勢計測値と現在の姿勢センサ５００の姿勢計測値とを比較し、その差を算出し、姿勢変化が閾値以上であれば変化量大、変化量が閾値以下であれば変化量小とする。変化量が小さい場合にはステップＳ６０６０に進む。また、変化量が大きい場合にはステップＳ６０７０に進む。
【００６２】
ステップＳ６０６０では、撮像装置１１０の位置及び姿勢の初期化処理が終了しているか否かの判定を行う。初期化処理が終了している場合には、初期化処理の成否を判定し、初期化処理が成功した場合にはフラグＦを成功にセットし、初期化処理が失敗した場合はフラグＦを失敗にセットして、データ記憶部１０５０に格納し、ステップＳ６１３０に進む。また、初期化処理が終了していない場合には、ステップＳ６０４０に処理を戻す。
【００６３】
ステップＳ６０７０において、位置姿勢初期化処理部１０３０は初期化処理を中止し、フラグＦを失敗にセットして、ステップＳ６１３０に進む。
【００６４】
ステップＳ６０８０において、画像選択部１０２０は、ｋ番目のフレームの画像まで撮像装置の位置及び姿勢の算出またはセンサ計測値の変化検出判定に使用済であるとき、画像Ｐｋの次フレームの画像Ｐｋ＋１を選択する。また、センサ計測値監視部５０４０は画像Ｐｋから画像Ｐｋ＋１の間に取得された姿勢センサ５００の姿勢計測値を取得する。
【００６５】
ステップＳ６０９０では、ステップＳ６０８０において選択された画像Ｐｋ＋１が最新の画像であるか否かの判定を行う。画像Ｐｋ＋１が最新の画像であればステップＳ６１１０に進む。また、画像Ｐｋ＋１が最新の画像でなければステップＳ６１００に進む。
【００６６】
ステップＳ６１００において、センサ計測値監視部５０４０は、ステップＳ６０８０において取得した姿勢センサ５００の姿勢計測値を用いてセンサ計測値の変化が検出されたか否かを判定する。具体的には、画像Ｐｋの時点における姿勢計測値から画像Ｐｋ＋１までの時点までの姿勢計測値の変化量の最大値を算出し、変化量の最大値が閾値以上であればセンサ計測値の変化が検出されたと判定する。閾値としては、姿勢センサ５００の誤差範囲の最大値を使用しても良いし、あるいは、位置姿勢算出部１０４０で使用する位置及び姿勢の算出方法で許容されている姿勢値の変化が判明していれば、その値を使用しても良い。センサ計測値の変化が検出されたと判定された場合は、ステップＳ６１１０に進む。また、センサ計測値の変化が未検出と判定された場合は、ステップＳ６０８０に戻る。
【００６７】
ステップＳ６１１０において、位置姿勢算出部１０４０は、画像Ｐｋ＋１を用いて非特許文献１で開示されているエッジを用いた位置及び姿勢の算出方法によって、撮像装置１１０の位置及び姿勢の算出を行う。
【００６８】
ステップＳ６１１０の処理が終了したらステップＳ６１２０に進み、破綻の検出を行う。ここでは、位置及び姿勢の計測に失敗しているかどうかを検出する。ステップＳ６１２０において破綻していると検出された場合には、フラグＦを失敗にセットする。ステップＳ６１２０の処理が終了したら、ステップＳ６１３０に進む。ステップＳ６１３０では、位置姿勢計測を終了するか否かの判定を行う。終了しない場合にはステップＳ６０１０に戻る。
【００６９】
以上で説明した実施形態では、姿勢センサを撮像装置に装着し、姿勢の計測を行っていた。しかしながら、撮像装置に装着するセンサは姿勢センサに限るものではなく、位置または姿勢の変分を計測できるセンサであれば適用可能である。例えば、３軸の加速度計と３軸の角加速度計を撮像装置に装着し、夫々のセンサ出力を積分して求められる位置変分と姿勢変分を用いてステップＳ６０５０の位置姿勢の変化量を計測しても良い。このとき、センサ計測値取得部５０１０が取得する計測値は、夫々のセンサが計測する位置及び姿勢の所定時間における変分値となる。また、センサ計測値監視部５０４０が監視する計測値は、夫々のセンサが計測する位置及び姿勢の変分値となる。
【００７０】
［実施形態４］
実施形態３では、撮像装置に装着した３自由度の姿勢センサから出力される姿勢計測値を用いて、撮像装置の初期化処理の中止や撮像装置の位置及び姿勢の算出を間引いていた。しかし、撮像装置にセンサを装着せず、撮像装置によって撮影された画像からオプティカルフローを算出しても良い。すなわち、視覚表現の中での物体の動きをベクトルで表わし、そのオプティカルフローの値によって初期化処理の中止や撮像装置の位置及び姿勢の算出を間引いても良い。以下、本実施形態に係る位置姿勢計測装置及び位置姿勢計測方法について説明する。
【００７１】
（構成）
図７は、本実施形態に係る位置姿勢計測装置の構成を示すブロック図である。なお、図７において、図１から図５で同じ構成部については同じ番号を付けており、その説明を省略する。図に示す如く、本実施形態に係る位置姿勢計測装置７０００は、画像入力部１０１０、位置姿勢初期化処理部１０３０、位置姿勢算出部１０４０、データ記憶部１０５０、オプティカルフロー算出部７０１０、画像選択部７０２０によって構成されている。また、位置姿勢計測装置７０００は、制御部１００５を有し、これらの構成要素を統括的に制御する。
【００７２】
オプティカルフロー算出部７０１０は、撮像装置１１０が撮像した画像を用いてオプティカルフローを算出し、変化量を算出する。
【００７３】
画像選択部７０２０は、データ記憶部１０５０に格納されている画像入力部１０１０によって取得された画像から、位置姿勢初期化処理部１０３０または位置姿勢算出部１０４０が使用する画像を選択する。
【００７４】
（フローチャート）
次に、実施形態４における位置姿勢計測方法の処理手順について説明する。図８は、本実施形態における位置姿勢計測方法の処理手順を示すフローチャートである。
【００７５】
まずステップＳ８０１０において、制御部１００５はデータ記憶部１０５０に格納されたフラグＦの値を見ることにより、現在の位置姿勢計測の状態が成功または失敗であるかの判定を行う。失敗の場合にはステップＳ８０２０に進む。また、成功の場合にはステップＳ８０８０に進む。
【００７６】
ステップＳ８０２０において、画像選択部７０２０は、処理を行う画像として最新の画像ＰＲを選択する。次にステップＳ８０３０において、位置姿勢初期化処理部１０３０は、撮像装置１１０の位置及び姿勢の初期化処理を開始する。また、ｊ＝０と定めて、処理をステップＳ８０４０に進める。
【００７７】
ステップＳ８０４０において、画像選択部７０２０は、画像ＰＲ＋ｊと画像ＰＲ＋ｊ＋１を選択する。オプティカルフロー算出部７０１０は、画像ＰＲ＋ｊと画像ＰＲ＋ｊ＋１の２つの画像からオプティカルフローを算出して、処理をステップＳ８０５０に進める。
【００７８】
ステップＳ８０５０において、制御部１００５は、ステップＳ８０４０で算出したオプティカルフローの値を見ることにより、変化量の大小の判定を行う。具体的には、オプティカルフローの値が閾値以上であれば変化量大、閾値以下であれば変化量小とする。変化量が小さい場合は、ステップＳ８０６０に進む。また、変化量が大きい場合にはステップＳ８０７０に進む。
【００７９】
ステップＳ８０６０では、撮像装置１１０の位置及び姿勢の初期化処理が終了しているか否かの判定を行う。初期化処理が終了している場合には、制御部１００５は、初期化処理の成否を判定し、初期化処理が成功した場合にはフラグＦを成功にセットし、初期化処理が失敗した場合はフラグＦを失敗にセットして、データ記憶部１０５０へ格納し、ステップＳ８１３０に進む。また、初期化処理が終了していない場合には、ｊ＝ｊ＋１と定めて、ステップＳ８０４０に処理を戻す。
【００８０】
ステップＳ８０７０において、位置姿勢初期化処理部１０３０は初期化処理を中止し、フラグＦを失敗にセットして、データ記憶部１０５０へ格納し、ステップＳ８１３０に進む。
【００８１】
ステップＳ８０８０において、画像選択部１０２０は、ステップＳ８０３０、Ｓ８１００、Ｓ８１１０で使用した画像の中で最もフレーム番号が大きいものがｋ番目であったとき、ｋ番目とｋ＋１番目のフレームの画像Ｐｋ、画像Ｐｋ＋１を選択する。
【００８２】
ステップＳ８０９０では、ステップＳ８０８０において選択された画像Ｐｋ＋１が最新の画像であるか否かの判定を行う。画像Ｐｋ＋１が最新の画像であればステップＳ８１１０に進む。また、画像Ｐｋ＋１が最新の画像でなければステップＳ８１００に進む。
【００８３】
ステップＳ８１００において、オプティカルフロー算出部７０１０は、画像Ｐｋ、画像Ｐｋ＋１からオプティカルフローの値を算出して、オプティカルフローの値に変化が検出されたか否かの判定を行う。具体的には、オプティカルフロー判定手段が、オプティカルフローの値が所定の閾値以上であれば変化検出、閾値以下であれば変化未検出と判定する。オプティカルフローの変化が検出された場合はステップＳ８１１０に進む。また、オプティカルフローの変化が未検出であった場合はステップＳ８０８０へと処理を戻す。
【００８４】
ステップＳ８１１０において、位置姿勢算出部１０４０は、画像Ｐｋ＋１を用いて非特許文献１で開示されているエッジを用いた位置及び姿勢の算出方法によって、撮像装置１１０の位置及び姿勢の算出を行う。
【００８５】
ステップＳ８１１０の処理が終了したらステップＳ８１２０に進み、破綻検出を行う。ここでは、位置及び姿勢の計測に失敗しているかどうかを検出する。ステップＳ８１２０において破綻していると検出された場合には、フラグＦを失敗にセットし、データ記憶部１０５０へ格納する。ステップＳ８１２０の処理が終了したら、ステップＳ８１３０に進む。
【００８６】
ステップＳ８１３０では、制御部１００５はデータ記憶部１０５０に格納されている画像データの処理状況をチェックし、位置姿勢計測を終了するか否かの判定を行う。終了しない場合にはステップＳ８０１０に戻る。
【００８７】
［実施形態５］
実施形態１から４では、初期化処理に非特許文献２の３次元エッジモデルと画像上で検出されたエッジとの対応を取ることで、カメラの位置姿勢を求める方法を利用していた。しかし、本発明は、初期化処理にエッジを用いることに限定するものではない。例えば、非特許文献３に示すSIFT特徴量を用いて初期位置姿勢を求めても良い。
【００８８】
本実施形態では、初期化処理に非特許文献３に示すＳＩＦＴ特徴量を用いてカメラの初期位置姿勢を求める方法について説明する。
【００８９】
（構成）
図１０は、実施形態５に係る位置姿勢計測装置の構成を示すブロック図である。なお、図１０において図1と同じ構成部については同じ番号を付けている。従って、その説明は省略する。図１０に示す如く、本実施形態に係る位置姿勢計測装置１０１５は、画像入力部１０１０、位置姿勢算出部１０４０、データ記憶部１０５０、位置姿勢初期化処理部１０３５によって構成されている。また、位置姿勢計測装置１０１５は、制御部１００５を有し、これらの構成要素を統括的に制御する。
【００９０】
ラベル１０５は、観察対象物体１００に貼り付けられるシール状の印刷物である。ラベルには、注意書き等の文字が記載されているものとする。なおラベルの内容は文字に限定されず、画像特徴として利用できる模様があればよい。ラベル１０５は、撮像装置１１０によって撮像されたラベル１０５の画像から、あらかじめ算出したＳＩＦＴ特徴量データベースとマッチングして撮像装置１１０の初期位置姿勢を算出するために用いられる。
【００９１】
位置姿勢初期化処理部１０３５は、例えば非特許文献３に記載されているＳＩＦＴ特徴量を利用して位置姿勢推定方法を利用すればよい。ＳＩＦＴ特徴量とは、撮像装置を移動させたときに、対象領域の画像上における回転・スケール変化に対して不変な特徴量である。すなわち、撮像装置を動かしたとしても、あらかじめ登録した物体の判別や位置姿勢を計測することが可能になる特徴量である。例えば、ラベル１０５をＳＩＦＴ特徴量としてあらかじめ登録し、さらにＳＩＦＴ特徴量の３次元と対応付けたデータベースを作成しておく。次に撮像装置１１０でラベル１０５を撮影して、ＳＩＦＴ特徴量を算出する。このとき、算出した特徴量をデータベースと照合し、マッチングを行う。複数のＳＩＦＴ特徴量がマッチングに成功すると、対応付けられた複数の３次元位置から撮像装置１１０の位置姿勢を推定することができる。
【００９２】
（フローチャート）
次に、本実施形態における位置姿勢計測方法の処理手順について説明する。図１１は、本実施形態における位置姿勢計測方法の処理手順を示すフローチャートである。なお、図１１において図２と同じ処理ステップについては同じステップ番号を付けている。従って、その説明は省略する。
【００９３】
ステップＳ２０３５において、位置姿勢初期化処理部１０３５は、撮像装置１１０の位置及び姿勢の初期化処理を行う。初期化処理が成功した場合はフラグＦを成功に、初期化処理が失敗した場合はフラグＦを失敗にセットして、データ記憶部１０５０へ格納し、ステップＳ２０７０に進む。尚、本実施形態では、撮像装置の初期位置及び姿勢は、前述したＳＩＦＴ特徴量を用いた画像認識により算出する。
【００９４】
前述のように、本発明は、初期化処理の方法に依存しない。撮像装置の初期位置姿勢を求められる初期化処理であれば、適用可能である。
【００９５】
［実施形態６］
実施形態１から４では、位置姿勢算出部１０４０が非特許文献１で開示される「エッジを用いた撮像装置の位置姿勢計測」を利用していた。しかし、本発明は、位置姿勢算出処理にエッジを用いることに限定するものではない。例えば、非特許文献４のＦＡＳＴ（Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ）の検出器で検出される特徴点をトラッキングして、撮像装置の位置姿勢を求めてもよい。
【００９６】
ＦＡＳＴは、ポスターや窓の角のような、シーンに配置されている物体の特徴的な点を画像特徴として検出する検出器である。
【００９７】
本実施形態では、撮像装置の位置姿勢算出処理に非特許文献４に示すＦＡＳＴ検出器を用いる場合について説明する。
【００９８】
（構成）
本実施形態に係る位置姿勢計測装置の構成は、実施形態５の構成を示す図１０の位置姿勢算出部１０４０を、ＦＡＳＴを利用して位置姿勢を算出するように変更したものとなる。
【００９９】
まず、撮像装置１１０が観察対象物体１００を撮影し、撮像画像を得る。次に、位置姿勢初期化処理部１０３０は、撮像された画像から実施形態５で例示したＳＩＦＴ特徴量を利用して初期位置姿勢推定を行う。
【０１００】
さらに、位置姿勢算出部１０４０は、撮像された画像から特徴点（画像の角の点）を抽出する。本実施形態では、例えば、非特許文献４のＦＡＳＴ（Ｆｅａｔｕｒｅｓ  ｆｒｏｍ  ａｃｃｅｌｅｒａｔｅｄ  Ｓｅｇｍｅｎｔ  Ｔｅｓｔ）の検出器を利用する。すなわち、注目画素を中心としたある固定半径を持つ円周上の画素の輝度値を、注目画素の輝度値と比較することによって特徴点を検出する。ここで位置姿勢算出部１０４０は、前のフレームで検出された特徴点と現在の撮像画像で得られた特徴点とのマッチングを行う。位置姿勢算出部１０４０は、マッチングされた特徴点については、さらに、あらかじめ同一シーンで作成した特徴点の３次元位置と画像上で検出された特徴点とを対応付ける。
【０１０１】
さらに位置姿勢算出部１０４０が、対応付けされた複数の特徴点を用いて、撮像装置の位置姿勢を求める。例えば、画像上での特徴点と３次元空間での特徴点とをランダムに対応付けてカメラの位置及び姿勢を算出し、最も整合性の高い対応付けを用いたときの算出結果を最終的なカメラの位置及び姿勢として出力すればよい。
【０１０２】
（フローチャート）
次に、実施形態６における位置姿勢計測方法の処理手順について説明する。本実施形態における位置姿勢計測方法の処理手順は、実施形態５の処理手順を示す図１１のフローチャートにおいて、ステップＳ２０５０の位置姿勢算出処理を、ＦＡＳＴを利用した位置姿勢算出処理に変更したものである。
【０１０３】
ステップＳ２０５０において、位置姿勢算出部１０４０は、ステップＳ２０４０において選択された画像Ｐｋ＋αを用いて、撮像装置１１０の位置及び姿勢の算出を行う。この処理は、前述のように、非特許文献４に示すＦＡＳＴ検出器によって検出された特徴点と、あらかじめ登録された特徴点の３次元位置とをマッチングして撮像装置１１０の位置姿勢を算出する。
【０１０４】
前述のように、本発明は、位置姿勢算出処理方法に依存しない。位置姿勢算出処理は、撮像装置の位置姿勢を求められる方法であれば、適用可能である。
【０１０５】
［実施形態７］
実施形態１から６で示した、位置姿勢計測装置の各構成要素は全てハードウェアで構成されているとして説明した。しかし、その一部をソフトウェアで構成しても良い。その場合、残りの部分をハードウェアとして実装しているコンピュータに、このソフトウェアを実行させることで、このコンピュータは、上記実施形態で説明した位置姿勢計測装置の動作を行うことになる。
【０１０６】
（構成）
図９は位置姿勢計測装置に適用可能なコンピュータのハードウェア構成例を示すブロック図である。
【０１０７】
ＣＰＵ９００１は、ＲＡＭ９００２やＲＯＭ９００３に格納されているコンピュータプログラムやデータを用いてコンピュータ全体の制御を行う。また、ＣＰＵはそれと共に上記各実施形態で位置姿勢計測装置が行うものとして説明した上述の各処理を実行する。
【０１０８】
ＲＡＭ９００２は、外部記憶装置９００７や記憶媒体ドライブ９００８からロードされたコンピュータプログラムやデータを一時的に記憶するためのエリアを有する記憶媒体である。またＲＡＭ９００２は、Ｉ／Ｆ（インターフェース）９００９を介して外部から受信したデータを一時的に記憶するためのエリアを有する。更に、ＲＡＭ９００２は、ＣＰＵ９００１が各処理を実行する際に用いるワークエリアも有する。即ち、ＲＡＭ９００２は、各種エリアを適宜提供することができる。例えば、ＲＡＭ９００２は、図１に示したデータ記憶部１０５０としても機能する。
【０１０９】
また、ＲＯＭ９００３には、コンピュータの設定データやブートプログラムなどが格納されている。
【０１１０】
キーボード９００４、マウス９００５は、操作入力装置の一例としてのものであり、コンピュータのユーザが操作することで、各種の指示をＣＰＵ９００１に対して入力することができる。
【０１１１】
表示部９００６は、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ９００１による処理結果を画像や文字などで表示することができる。例えば、表示部９００６には、撮像装置１１０の位置姿勢計測のために表示すべきメッセージなどを表示することができる。
【０１１２】
外部記憶装置９００７は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置９００７には、ＯＳ（オペレーティングシステム）や、位置姿勢計測装置が行うものとして説明した上述の各処理をＣＰＵ９００１に実行させるためのプログラムやデータが格納されている。図１の場合、これに係るコンピュータプログラムには、画像入力部１０１０、画像選択部１０２０、位置姿勢初期化処理部１０３０、位置姿勢算出部１０４０のそれぞれに対応する機能が含まれている。また、このデータには、仮想空間のデータや、上述の説明において既知の情報として説明したものが含まれている。
【０１１３】
外部記憶装置９００７に保存されているコンピュータプログラムやデータは、ＣＰＵ９００１による制御に従って適宜ＲＡＭ９００２にロードされる。ＣＰＵ９００１はこのロードされたプログラムやデータを用いて処理を実行することで、位置姿勢計測装置が行うものとして上述した各処理を実行することになる。なお、外部記憶装置９００７は、図１に示したデータ記憶部１０５０として用いても良い。
【０１１４】
記憶媒体ドライブ９００８は、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出したり、係る記憶媒体にコンピュータプログラムやデータを書込んだりする。尚、外部記憶装置９００７に保存されているものとして説明したプログラムやデータの一部若しくは全部をこの記憶媒体に記録しておいても良い。記憶媒体ドライブ９００８が記憶媒体から読み出したコンピュータプログラムやデータは、外部記憶装置９００７やＲＡＭ９００２に対して出力される。
【０１１５】
Ｉ／Ｆ９００９は、撮像装置１１０を接続するためのアナログビデオポートあるいはＩＥＥＥ１３９４等のデジタル入出力ポートにより構成される。また、算出した撮像装置の位置及び姿勢情報を外部へ出力するためのイーサネット（登録商標）ポートなどによって構成されても良い。Ｉ／Ｆ９００９を介して受信したデータは、ＲＡＭ９００２や外部記憶装置９００７に入力される。なお、図１に示した画像入力部１０１０の機能の一部は、Ｉ／Ｆ９００９によって実現される。また、センサシステムを用いる場合、このＩ／Ｆ９００９には、センサシステムを接続することになる。バス９０１０は、上述の各構成部をバス信号によって繋げるものである。
【０１１６】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2010279023.tif 000003
【図２】
2010279023.tif 000004
【図３】
2010279023.tif 000005
【図４】
2010279023.tif 000006
【図５】
2010279023.tif 000007
【図６】
2010279023.tif 000008
【図７】
2010279023.tif 000009
【図８】
2010279023.tif 000010
【図９】
2010279023.tif 000011
【図１０】
2010279023.tif 000012
【図１１】
2010279023.tif 000013