(57)【要約】【課題】撮像画像における特徴点から撮像装置の画角情報を適切に補正できるようにすること。【解決手段】現実空間における位置が既知の特徴点を含む現実空間の画像を撮像する撮像装置の画角を補正するために、まず撮像装置が撮像した現実空間の画像中の特徴点の位置（現実マーカの位置）を検出する。そして計測した撮像装置の位置、姿勢、画角で規定される仮想の視点から現実空間を見た場合に見える特徴点の上記画像における位置（仮想マーカの位置）を求める。そして上記画像中の現実マーカの位置と仮想マーカの位置とのずれを極小化する、撮像装置の位置、及び／又は姿勢の補正量を求める。そして極小化されたずれ、もしくは位置の補正量に従って、撮像装置の画角の補正量を求める。【選択図】  図１
2004213355.tif 000002
【特許請求の範囲】
【請求項１】
現実空間における位置が既知の特徴点を含む現実空間の撮影画像から撮像装置の画角情報を補正する情報処理方法であって、
前記撮像装置により撮像された前記現実空間の画像に含まれる前記特徴点の、当該画像における位置を検出する位置検出工程と、
前記撮像装置の位置、姿勢、画角を計測する計測工程と、
当該計測工程で得られる位置情報、姿勢情報、画角情報と、前記特徴点の位置から前記現実空間の画像における前記特徴点の位置を求める位置計算工程と、
前記位置計算工程で求められた前記特徴点の位置と前記検出工程で検出された前記特徴点の位置が合うように、前記計測工程で計測された画角情報を補正する画角情報補正工程と
を備えることを特徴とする情報処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、現実空間における位置が既知の特徴点を含む現実空間の撮影画像から撮像装置の画角情報を補正するものに関する。
【０００２】
【従来の技術】
近年、現実世界と仮想世界をリアルタイムで継ぎ目なく融合する複合現実感に関する研究が盛んに行われている。複合現実感に関する研究は従来、現実空間と切り離された状況でのみ体験可能であったバーチャルリアリティの世界と現実空間との共存を目的としており、バーチャルリアリティを増強する技術として注目されている。その応用としては、患者の体内の様子を透視しているように医師に提示する医療補助の用途や、工場において製品の組み立て手順を実物に重ねて表示する作業補助の用途など、今までのバーチャルリアリティとは質的に全く異なった新たな分野が期待されている。
【０００３】
この複合現実感を提示する方法の一つであるビデオシースルー方式のＡＲ（Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ）システムは、現実空間をカメラなどでリアルタイムに撮影した現実空間画像と、計算機により得られるこのカメラの画角と同じ画角の計算機により得られる仮想空間画像とを重ね合わせて合成した複合現実感画像を生成し、生成した復号現実感画像を画像表示装置に表示させる。
【０００４】
このシステムで用いられる現実空間撮影用のカメラに、光学的にズーム倍率を変更できるカメラを利用するものが従来からいくつか開示されている（例えば、以下の特許文献１乃至６を参照）。
【０００５】
【特許文献１】
特開平６−１０５２３２号公報
【特許文献２】
特開２００１−２８５７１５号公報
【特許文献３】
特許第３１２２０９９号
【特許文献４】
特許第３０７４９４３号
【特許文献５】
特許第３２４７３０７号
【０００６】
【発明が解決しようとする課題】
上記カメラのズーム倍率が変更できるということは、すなわちカメラの撮影画角（＝焦点距離）が変化する。ゆえに、上記従来例では、現実空間画像を撮像するカメラの画角と仮想空間画像を生成する際に用いる画角とを一致させるために、現実空間を撮影するカメラの撮影画角をリアルタイムに取得し、取得した画角を仮想空間画像を作成する際に用いている。カメラの画角の取得手段としては、ズームレンズの回転角等のレンズ状態を計測し、その計測値から一定の変換モデルに従ってカメラの画角を得るのが一般的である。
【０００７】
ここで、上記の従来例では、上記取得手段によって得られるカメラの画角が正しいという前提で、ズーム倍率を変更できるカメラを用いた複合現実感提示方法を実現している。しかしながら、レンズ状態の計測誤差やレンズ状態からカメラの撮影画角への変換モデルの誤差などが原因で、必ずしも得られるカメラの画角と、実際のカメラの画角が一致しないという問題がある。
【０００８】
また、ビデオシースルー方式のＡＲシステムにおいては、カメラで撮影した現実空間画像のサイズが、計算機への取り込みやデジタル化によって変化しうるため、カメラで撮影した画像の画角と、仮想空間画像との合成に利用する現実空間画像の画角は、多少異なる。サイズの変化は画像の縦方向と横方向で独立に起こるので、画像の縦方向と横方向で異なる画角になる場合もある。こうした画角の違いが無視できない場合には、レンズ状態からカメラの撮影画角への変換ではなく、レンズ状態から合成に利用する現実空間画像の画角への変換を行わなければならない。しかし、この変換のモデル化は困難である。
【０００９】
本発明は以上の問題に鑑みてなされたものであり、撮像画像における特徴点から撮像装置の画角情報を適切に補正できるようにすることを目的とする。
【００１０】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の情報処理方法は以下の構成を備える。
【００１１】
すなわち、現実空間における位置が既知の特徴点を含む現実空間の撮影画像から撮像装置の画角情報を補正する情報処理方法であって、
前記撮像装置により撮像された前記現実空間の画像に含まれる前記特徴点の、当該画像における位置を検出する位置検出工程と、
前記撮像装置の位置、姿勢、画角を計測する計測工程と、
当該計測工程で得られる位置情報、姿勢情報、画角情報と、前記特徴点の位置から前記現実空間の画像における前記特徴点の位置を求める位置計算工程と、
前記位置計算工程で求められた前記特徴点の位置と前記検出工程で検出された前記特徴点の位置が合うように、前記計測工程で計測された画角情報を補正する画角情報補正工程と
を備えることを特徴とする。
【００１２】
【発明の実施の形態】
以下、添付図面を参照して本発明を好適な実施形態に従って詳細に説明する。
【００１３】
［第１の実施形態］
図１は、ズーム倍率が可変のカメラを用いて撮像した現実空間の画像と、このカメラの位置、姿勢、画角に基づいて生成した仮想空間の画像との合成画像を利用者に提供するための本実施形態に係る情報処理装置の機能構成を示すブロック図である。
【００１４】
１はズーム倍率が可変である撮像部で、例えば光学式ズームレンズ付きカメラ等に代表される撮像装置である。この撮像部１は、撮像部１の視点位置における視線方向の現実空間を撮像し、現実空間画像を得るものである。また、撮像部１のズーム倍率は、利用者の操作（例えば撮像部１に取り付けられたスイッチなどの操作）によって光学的に変化させることができる。撮像部１によって得られた現実空間画像は画像取込部２へと送出される。
【００１５】
２は画像取込部で、例えばビデオキャプチャカード等に代表される装置である。画像取込部２は、撮像部１から受け取った現実空間画像を、位置姿勢画角補正部７および画像合成部１０の夫々に適した形式に変換し、変換後の現実空間画像を夫々位置姿勢画角補正部７および画像合成部１０に送出する。
【００１６】
３は位置姿勢計測部で、例えば磁気センサや慣性センサ等の位置姿勢センサである。位置姿勢計測部３は、現実空間における撮像部１の撮影視点の位置および姿勢を計測し、その計測値をそれぞれ位置データおよび姿勢データとして、位置姿勢画角補正部７へ送出する。なお、現実空間には予め原点位置、及び座標系が設定されており、位置姿勢計測部３は設定されたこの座標系における撮像部１の位置（ｘ、ｙ、ｚ）と姿勢（ロール角、ピッチ角、ヨー角）を計測する。
【００１７】
なお、この位置姿勢計測部３は、撮像部１の撮影視点の姿勢のみを計測し、姿勢データのみを位置姿勢画角補正部７へ送出するものであっても良い。その場合は、予め決められた撮像部１の撮影視点の位置データを内部に保持しておき、これを位置姿勢画角補正部７へ送出する。逆に、この位置姿勢計測部３は、撮像部１の撮影視点の位置のみを計測し、位置データのみを位置姿勢画角補正部７へ送出するものであっても良い。その場合、あらかじめ決められた撮像部１の撮影視点の姿勢データを内部に保持しておき、これを位置姿勢画角補正部７へ送出する。さらにまた、撮像部１の撮影視点の位置および姿勢の計測を行わずに、あらかじめ決められた撮像部１の撮影視点の位置データと姿勢データを内部に保持しておき、これらを位置姿勢画角補正部７へ送出しても良い。
【００１８】
４はレンズ状態取得部で、例えばエンコーダである。レンズ状態取得部４は、撮像部１のレンズ状態を計測し、その計測値をレンズ状態データとして画角算出部６へ送出する。レンズ状態とは例えばズームレンズの回転角であり、レンズ状態の計測は、レンズ状態取得部４を撮像部１のズームレンズに取り付け、ズームレンズの回転角を計測することにより実現される。
【００１９】
５はマーカデータ記憶部であり、例えばハードディスクやメモリにより構成され、マーカを特定する後述のマーカデータを記憶保持するための記憶装置として機能する。ここでマーカとは、現実空間上に配置された特徴点のことで、例えば、現実空間に設定された上記座標系における位置座標とその色によって特定される。このマーカを特定するデータがマーカデータであり、例えば、マーカが配置されている位置の上記座標系における３次元座標データとその色を示す属性データにより構成される。マーカデータ記憶部５は、実際に現実空間上に配置されているマーカに対応するマーカデータを１つ以上保持し、そのデータを位置姿勢画角補正部７へと送出する。
【００２０】
６は画角算出部であり、例えばコンピュータにおいて実行されるソフトウェアモジュールである。画角算出部６は、レンズ状態取得部４から受け取ったレンズ状態データから、一定の変換モデルに従って撮像部１の撮影画角を算出し、算出した撮影画角を画角データとして位置姿勢補正部７へと送出する。
【００２１】
７は位置姿勢画角補正部であり、例えばコンピュータにおいて実行されるソフトウェアモジュールである。位置姿勢画角補正部７は、画像取込部２から受け取る現実空間画像、画角算出部６から受け取る画角データ、マーカデータ記憶部５から受け取るマーカデータ、そして位置姿勢計測部３より得られる撮像部１の現実空間における位置、姿勢のデータを用いて、まずこの位置データ及び／又は姿勢データの補正を行う。
【００２２】
この補正処理ではまず、画像取込部２から受け取る現実空間画像に含まれるマーカの、現実空間画像における位置（以下、現実マーカの位置と呼称する）を検出する。図６（ａ）は現実空間に配置されたマーカを撮像部１によって撮像する様子を示す図で、図６（ｂ）は撮像部１により撮像された現実空間画像を示す図である。同図ではマーカは３つ配置されているが、以下の説明はこの数に限定されるものではない。
【００２３】
同図において６０１は現実空間に設定された座標系で、撮像部１の位置、姿勢やマーカの位置はこの座標系６０１に従って表現される。撮像部１が現実空間に配置されたマーカ６０２乃至６０４を撮像すると、図６（ｂ）に示すように、現実空間画像６１０にはマーカ６０２乃至６０４が含まれる。よって、この画像６１０におけるマーカ６０２乃至６０４の位置を求める。
【００２４】
また一方では、位置姿勢計測部３から得られる撮像部１の位置、姿勢、そして画角算出部６から得られる撮像部１の画角で規定される仮想の視点から見えるマーカの現実空間画像における位置（以下、仮想マーカの位置と呼称する）を求める。図７は、この仮想の視点から仮想空間を見た場合を説明する図である。なお、仮想空間における座標系は現実空間の座標系６０１と一致しており、また原点位置も一致している。よって現実空間における位置はそのまま仮想空間でも用いることができるので、マーカ６０２乃至６０４の夫々の３次元座標データを用いれば、仮想空間にマーカ６０２乃至６０４と同位置にマーカ７０２乃至７０４を配置することができる。仮想の視点７００の位置、姿勢、画角が撮像部１の位置、姿勢、画角と完全に一致していれば、この仮想の視点７００が仮想空間を撮像した場合に得られる画像中のマーカ７０２乃至７０４の位置は、画像６１０におけるマーカ６０２乃至６０４の位置と一致する。
【００２５】
しかし上述の通り、位置姿勢計測部３から得られる位置、姿勢は必ずしも実際の位置、姿勢とは一致しない、画角算出部６から得られる画角は必ずしも実際の画角とは一致しない、撮像部１により得られる現実空間画像に対しては各種の処理が施されているので画像の画角が変化する等に起因して、現実空間画像における現実マーカの位置と仮想マーカの位置とは必ずしも一致しない。
【００２６】
そこで現実マーカの位置と仮想マーカの位置とが一致するように、すなわち現実マーカの位置と仮想マーカの位置とのずれを極小化するように、位置姿勢計測部３により得られる位置、姿勢のデータを補正する。この補正処理について詳しくは後述する。なお、位置姿勢計測部３から受け取る位置データおよび姿勢データの精度が十分であると予め判明している場合には、位置姿勢画角補正部７はこの補正処理を行わなくても良い。
【００２７】
次に位置姿勢画角補正部７は、補正した位置、姿勢データ、画像取込部２から受け取る現実空間画像、画角算出部６から受け取る画角データ、マーカデータ記憶部５から受け取るマーカデータを用いて再度、現実マーカの位置と仮想マーカの位置とのずれ（上記の位置姿勢補正処理の誤差（補正を行っていない場合は「位置姿勢計測の誤差」であるが、以下ではこれを含めて「位置姿勢補正処理の誤差」と呼称する））を求める。
【００２８】
ここで位置姿勢画角補正部７は、位置姿勢補正処理の誤差がある基準よりも大きい場合に画角データの補正を行う。これは、現実マーカの位置と仮想マーカの位置とのずれは、現実空間画像を撮像するための画角と画角算出部６から得られる画角とのずれによるものと判断されるからである。また、位置データの補正量の画像面に垂直な方向の成分がある基準よりも大きい場合、すなわち視点位置を視線方向に対して前後に基準以上動かすことで位置姿勢を補正した場合にも、画角データの補正を行う。これは、現実空間画像を撮像するための画角と画角算出部６から得られる画角とにずれがあるにもかかわらず、視点位置の移動によってそのずれを極小化したと判断されるからである。
【００２９】
画角データの補正処理は具体的には、現実のマーカの位置と仮想マーカの位置とが一致するように、すなわち現実マーカの位置と仮想マーカの位置とのずれを極小化するような画角のデータの補正量を求め、この補正量を画角算出部６から得られる画角のデータに足し込むことで画角のデータを補正する。
【００３０】
また、位置姿勢補正処理の誤差の計測値がある基準よりも小さい場合、かつ、位置データの補正量の画像面に垂直な方向の成分がある基準よりも小さい場合には、位置姿勢画角補正部７はその時点での画角データの補正値を記憶し、画角データを、補正済みの位置データおよび姿勢データと共に、画像生成部９へと送出する。
【００３１】
以後、画角算出部６から受け取る画角が変化するまで、即ち位置姿勢画角補正部７が既に受け取った画角のデータと異なる値の画角のデータが新たに画角算出部６から位置姿勢画角補正部７に入力されるまでは、記憶している画角データの補正値を用いて補正した画角データ、補正後の位置、姿勢のデータを画像合成部９に出力し続ける。
【００３２】
８は空間データ記憶部で、例えばハードディスクやメモリにより構成されている。空間データ記憶部８は、仮想空間画像を生成するためのデータ（空間データ）、すなわち仮想空間におけるオブジェクトの画像を生成するためのデータ、例えば仮想空間におけるオブジェクトの形状データや位置データ等を保持し、この空間データを画像生成部９へと送出する。
【００３３】
９は画像生成部で、例えばコンピュータにおいて実行されるソフトウェアモジュールである。画像生成部９は、位置姿勢画角補正部７から受け取る補正済みの位置データおよび姿勢データおよび画角データと、空間データ記憶部８から受け取る空間データを用いて、仮想空間画像を生成する。この仮想空間画像は、空間データによって定義される仮想空間を、位置データおよび姿勢データによって決定される位置および姿勢において、画角データによって決定される画角で撮影した時に得られる仮想空間の画像である。生成された仮想空間画像は、画像合成部１０へと送出される。
【００３４】
１０は画像合成部で、例えばコンピュータにおいて実行されるソフトウェアモジュールである。画像合成部１０は、画像取込部２から受け取る現実空間画像と画像生成部９から受け取る仮想空間画像を合成し、複合現実空間画像を生成する。この複合現実空間画像は、現実空間画像上に仮想空間画像を重ね合わせた画像である。
【００３５】
１１は画像表示部で、例えば頭部装着型の液晶ディスプレイや台に取り付けられたＣＲＴディスプレイ等に代表される画像表示装置である。画像表示部１１は、画像合成部１０から複合現実空間画像を受け取り、これを表示することで、上記利用者に対して複合現実空間画像を提示し、複合現実感を与える。
【００３６】
以上の構成を有する情報処理装置の形態は図４に示すものであっても、図５に示すものであっても良い。図４は撮像部１、位置姿勢計測部３、画像表示部１１が一体化した装置を利用者４０の頭部に装着し、撮像部１が撮像する現実空間画像と、上記各ソフトウェアモジュールを実行するコンピュータ４１が生成する仮想空間画像との合成画像（複合現実空間画像）を利用者４０の眼前に位置する画像表示部１１に表示する情報処理装置の形態を示す図である。
【００３７】
図５は撮像部１、画像表示部１１が一体化した部分５１が支柱５０に、同図矢印の方向に回転可能なように取り付けられており、撮像部１が撮像する現実空間画像と、上記各ソフトウェアモジュールを実行するコンピュータ４１が生成する仮想空間画像との合成画像（複合現実空間画像）を上記部分５１に取り付けられた画像表示部１１に表示する情報処理装置の形態を示す図である。
【００３８】
図８に上記構成を備えるコンピュータの基本構成を示す。５０１はＣＰＵで、ＲＡＭ５０２やＲＯＭ５０３に記憶されたプログラムやデータを用いてコンピュータ全体の制御を行うと共に、上記各ソフトウェアモジュールを実行し、上記複合現実空間画像を生成する一連の処理や、撮像部１の位置データ、姿勢データ、画角データを補正する上記一連の処理を実行する。
【００３９】
５０２はＲＡＭで、外部記憶装置５０７や記憶媒体ドライブ５０８からロードされたプログラムやデータを記憶保持するためのエリアを備えると共に、ＣＰＵ５０１が各種の処理を実行するために必要とするエリア（ワークエリア）を備える。５０３はＲＯＭで、コンピュータ全体を制御するためのプログラムやデータ、文字コードなどを記憶する。５０４，５０５は夫々キーボード、マウスで、夫々ＣＰＵ５０１に対して各種の指示を入力するために用いられる。
【００４０】
５０６は表示部で、生成した複合現実空間画像を表示したり、上記位置、姿勢、画角の補正を行うために必要な情報などを表示することができる。５０７はハードディスクドライブに代表される大容量情報記憶装置として機能する装置であって、上記マーカデータ記憶部５，空間データ記憶部８としても機能し、ＯＳ（オペレーティングシステム）や、上記マーカデータ、空間データ、複合現実空間画像を生成するためのプログラム、撮像部１の位置、姿勢、画角を補正するためのプログラムなどを保存している。また、撮像部１の位置データや姿勢データを予め記憶しておく場合には、記憶すべきデータも保存する。外部記憶装置５０７に保存されているプログラムやデータはＣＰＵ５０１からの指示に従ってＲＡＭ５０２にロードされる。
【００４１】
５０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記憶されているプログラムやデータを読み取り、外部記憶装置５０７やＲＡＭ５０２に出力する。なお、外部記憶装置５０７に保存されているプログラムやデータはこの記憶媒体ドライブ５０８によって直接ＲＡＭ５０２に供給しても良い。
【００４２】
５０９はＩ／Ｆで、上記位置姿勢計測部３、レンズ状態取得部４、画像表示部１１等を接続することができ、Ｉ／Ｆ５０９を介して位置姿勢計測部３やレンズ状態取得部４により計測された結果を入力したり、生成した複合現実空間画像を画像表示部１１に出力したりすることができる。５１０はビデオキャプチャカードで、撮像部１により撮像された現実空間画像を受け、受けた現実空間画像を位置姿勢画角補正部７、画像合成部１０の夫々として機能するプログラムが扱う形式に変換し、ＲＡＭ５０２に出力するものである。またビデオキャプチャカード５１０は後述のバス５１１には不図示のＩ／Ｆを介して接続されている。５１１は上述の各部を繋ぐバスである。
【００４３】
次に、以上の情報処理装置を用いて、撮像部１の位置、姿勢、そして画角の補正量を求める処理について説明する。図９は、撮像部１の位置、姿勢、そして画角を補正し、補正した位置、姿勢、画角を用いて複合現実空間画像を生成して画像表示部１１に表示する処理のフローチャートである。同図のフローチャートに従った処理はＣＰＵ５０１が行うものである。すなわち、ＲＡＭ５０２には同図のフローチャートに従った処理をＣＰＵ５０１に実行させるためのプログラムがロードされており、このプログラムをＣＰＵ５０１が実行することで、撮像部１の位置、姿勢、そして画角を補正し、補正した位置、姿勢、画角を用いて複合現実空間画像を生成して画像表示部１１に表示させる処理を行う。なお、その場合、上述の各ソフトウェアモジュールのプログラムが予めＲＡＭ５０２にロードされているものとする。
【００４４】
まず、ビデオキャプチャカード５１０は撮像部１が撮像した現実空間画像（１つ以上のマーカが含まれている）を受けると、受けた現実空間画像を位置姿勢画角補正部７、画像合成部１０の夫々として機能するプログラムが扱う形式に変換し、ＲＡＭ５０２に出力する（ステップＳ９０１）。
【００４５】
言うまでもなく、ＲＡＭ５０２に出力された現実空間画像は、撮像部１が撮像した現実空間画像に対してビデオキャプチャカード５１０によって各種の処理が施されたものであるので、画像のサイズが異なっている可能性がある。これは即ち、画像の画角が異なっている可能性があるということである。また、言うまでもなく、ＲＡＭ５０２に出力された現実空間画像は、位置姿勢画角補正部７として機能するプログラム、画像合成部１０として機能するプログラムをＣＰＵ５０１が実行する際に用いるべき対象となる。
【００４６】
次に、撮像部１（視点）の位置、姿勢を位置姿勢計測部３により計測し、ＲＡＭ５０２に出力する（ステップＳ９０２）。なお上述の通り、位置姿勢計測部３は撮像部１の位置、姿勢の何れかを計測するものであっても良く、その場合には計測していない方のデータを例えば外部記憶装置５０７に保持させておき、ＲＡＭ５０２にロードすればよい。また位置姿勢計測部３が撮像部１の位置、姿勢のいずれも計測せずに、予め保持しておく場合も同様に外部記憶装置５０７に撮像部１の位置、姿勢のデータを保持させておき、ＲＡＭ５０２にロードすればよい。
【００４７】
次に、撮像部１のレンズ状態をレンズ状態取得部４により計測し、レンズ状態データとしてＲＡＭ５０２に出力する（ステップＳ９０３）。次に、ＣＰＵ５０１が画角算出部６として機能するプログラムを実行することで画角の算出処理を行う（ステップＳ９０４）。この画角算出処理では、ステップＳ９０３でＲＡＭ５０２に出力されたレンズ状態データ（ここではレンズの回転角データ）を用いて、以下の式に従って画角を求める。
【００４８】
撮像部１の画角＝Ａ×ｅｘｐ（Ｂ×θ）
ここでＡ、Ｂは夫々任意の定数で、θはレンズの回転角を示す。なお、画角を算出するための算出式はこれに限定されるものではない。
【００４９】
次に、ステップＳ９０４で求めた画角が、既に求めた画角と異なっているか否かを判断する（ステップＳ９０５）。これはすなわち、撮像部１の画角が変更されたか否かを判断する。画角が変更されておらず、且つ以下のステップＳ９０８からステップＳ９１４の処理を１回以上行ったことがある場合には処理をステップＳ９０６に移行する。
【００５０】
ステップＳ９０８からステップＳ９１４は、撮像部１の画角の補正量を求めてＲＡＭ５０２に記憶させ、更にこの補正量を用いて撮像部１の画角を補正する処理である。よってこの処理を１回でも行っており、且つ画角が変更されていない場合には、ＲＡＭ５０２に保持しておいた画角の補正量を用いることができるので、ステップＳ９０６ではステップＳ９０４で求め、ＲＡＭ５０２に保持しておいた撮像部１の画角をＲＡＭ５０２に保持しておいた画角の補正量を用いて補正する。これに続くステップＳ９０７では、撮像部１の位置、姿勢の補正量を求め、求めた補正量を用いて撮像部１の位置、姿勢を補正する。この処理は、後述するステップＳ９０８、Ｓ９０９、Ｓ９１０で行われる処理と同様である。処理の詳細についてはステップＳ９０８、Ｓ９０９、Ｓ９１０の説明部分で行うので、ここでは省略する。
【００５１】
そして次に、ＣＰＵ５０１が画像生成部９として機能するプログラムを実行することで仮想空間画像の生成を行う（ステップＳ９１５）。具体的には、補正した撮像部１の位置、姿勢、画角を用いて、仮想空間画像を生成する。視点位置、姿勢、画角を用いて仮想空間画像を生成する処理は周知の３次元画像処理技術を用いているので、ここでの説明は省略する。
【００５２】
そして、ＣＰＵ５０１が画像合成部１０として機能するプログラムを実行することで、ステップＳ９０１でＲＡＭ５０２に保持しておいた現実空間画像とステップＳ９１５で生成された仮想空間画像との合成処理、すなわち複合現実空間画像の生成を行い（ステップＳ９０４）、生成した複合現実空間画像を画像表示部１１に表示させる（ステップＳ９１７）。
【００５３】
一方、ステップＳ９０５における判定において、画角の変更があった、もしくはステップＳ９０８からステップＳ９１４までの処理を行ったことがない場合には、処理をステップＳ９０８に移行する。画角の変更があった場合（利用者が例えば撮像部１に取り付けられたスイッチなどを用いてズーム倍率を変更した場合）、もしくはステップＳ９０８からステップＳ９１４までの処理を行ったことがない場合は、既に求めた撮像部１の画角の補正量のデータが使えない、もしくは、この補正量のデータがＲＡＭ５０２には存在しない。よって以下の撮像部１の画角の補正量を求める処理が必要となる。よって以下では、撮像部１の画角の補正量を求める処理を行う。
【００５４】
最初に、画角の補正量を求める処理の前に、撮像部１の位置、姿勢の補正量を求め、求めた補正量を用いて撮像部１の位置、姿勢を補正する処理を行う。まず、ＣＰＵ５０１が位置姿勢画角補正部７として機能するプログラムを実行することで、ステップＳ９０１でＲＡＭ５０２に入力した現実空間画像中のマーカの位置を求める（ステップＳ９０８）。これは例えば、マーカには特定の色を配色しているので、現実空間画像においてマーカの色を検索し、該当する色の領域の重心位置をマーカの画像中における位置として判定する。また、ズーム倍率の変更によって、画像上のマーカの大きさは変化するが、これにおいても同様に、該当する色の領域の重心位置をマーカの画像中における位置として判定する。
【００５５】
次に、ＣＰＵ５０１が位置姿勢画角補正部７として機能するプログラムを実行することで、外部記憶装置５０７もしくは記憶媒体ドライブ５０８からＲＡＭ５０２にマーカデータをロードし、仮想空間中にマーカデータで特定されるマーカを配置する。そしてステップＳ９０２でＲＡＭ５０２に入力された位置データ、姿勢データで決定される仮想空間中の位置および姿勢において、ステップＳ９０４で求めた画角データで決定される撮影画角の仮想の視点から仮想空間を撮影した場合に得られる画像上のマーカの位置を算出する（ステップＳ９０９）。
この位置を上記仮想マーカの位置として用いる。すなわち、ステップＳ９０９で得られた位置は、ステップＳ９０２で得られた位置、姿勢、ステップＳ９０４で得られた画角の視点が現実空間を撮像した場合に現実空間画像上にマーカが位置すると計算される位置である。
視点（仮想の視点）の位置、姿勢、画角とマーカの位置とを用いることによって、この視点からマーカを撮像した場合の撮像面（撮像部１の撮像面と同じになるように予め設定されている）上における位置は公知の行列変換によって求めることができるので、この処理における詳細な説明は省略する。
【００５６】
図１０は、現実空間画像上における現実マーカの位置と仮想マーカの位置とを示す図である。１９００は現実空間画像で、１９０１から１９０３は夫々撮像部１によって撮像された現実マーカである。また１９５１から１９５３は夫々現実マーカ１９０１から１９０３に対応した仮想マーカであって、ステップＳ９０８において求めた夫々の仮想マーカの位置に位置するものである。以下では現実マーカ１９０１と仮想マーカ１９５１との位置の誤差、現実マーカ１９０２と仮想マーカ１９５２との位置の誤差、現実マーカ１９０３と仮想マーカ１９５３との位置の誤差の全てが極力小さくなるように、撮像部１の位置、姿勢のデータを補正する。
【００５７】
その補正においては、ＣＰＵ５０１が位置姿勢画角補正部７として機能するプログラムを実行することで、まず現実空間画像上の仮想マーカの位置と現実マーカの位置とを比較し、両者の位置が一致するような位置データの補正値、姿勢データの補正値を求め、求めた補正値を位置データ、姿勢データに夫々に加える（ステップＳ９１０）。
【００５８】
補正値の決定方法としては例えば、次のものが挙げられる。すなわち、現実マーカの位置（画像内に複数存在する場合には、画像内の現実マーカ全ての位置の重心位置）に対する、その現実マーカに対応する仮想マーカの位置（画像内に複数存在する場合には、画像内の仮想マーカ全ての位置の重心位置）のずれを位置データの補正値として位置データに加え、仮想空間中の視点位置を変更し、変更後の視点による仮想マーカの位置を再計算する。再計算後、現実マーカの位置と仮想マーカの位置とがまだ一致していなければ、画像の最も中心に映る現実マーカの位置に、対応する仮想マーカの位置が重なるように、仮想の視点の姿勢を、画像面に対して垂直の方向を軸に回転させ、その回転量を姿勢データの補正値とする。なお、位置、姿勢のいずれの補正を先に行っても良いし、何れか一方の補正を行って現実マーカの位置と仮想マーカの位置とが充分に一致すれば、他方の補正処理は行わなくても良い。
【００５９】
また別の例としては、各現実マーカの位置に対する、それぞれに対応した仮想マーカの位置ずれが最小になる方向へ、位置データと姿勢データを３次元的に修正し、この位置ずれが閾値以下になるまで修正を繰り返す方法も挙げられる。この例の場合には、３次元的に修正していくので、最終的に得られる位置データの補正量には、画像面に垂直な方向の成分も含まれている場合がある。
【００６０】
なお、位置データの補正値、姿勢データの補正値を求める方法は上記の方法に限定されるものではない。
【００６１】
さらに、ステップＳ９０２において得られる位置データおよび姿勢データの精度が十分であると予め判明している場合には、ステップＳ９１０の処理を省略しても良い。また、求めた位置データの補正量、姿勢データの補正量はＲＡＭ５０２に保持しておく。
【００６２】
なお、上述したステップＳ９０８、Ｓ９０９、Ｓ９１０における処理の説明は、「ステップＳ９０４で求めた画角データ」に相当する部分を「ステップＳ９０６で補正された画角データ」と読み替えることで、ステップＳ９０７における処理の説明となる。
【００６３】
以上の処理を行うことで、概ね現実マーカの位置と仮想マーカの位置は現実空間画像上で一致するが、完全に一致するわけではなく、ある量の誤差を含む。よって次ではこの誤差を求める（ステップＳ９１１）。この誤差は例えば、現実マーカと仮想マーカとで、対応するマーカ間のずれ量ベクトル（画像縦方向ずれと横方向のずれ）である。図１０に示した例では、マーカ１９０１と１９５１とのずれ量ベクトル、マーカ１９０２と１９５２とのずれ量ベクトル、マーカ１９０３と１９５３とのずれ量ベクトルを夫々求める。
【００６４】
そしてＣＰＵ５０１が位置姿勢画角補正部７として機能するプログラムを実行することで、この誤差を判定し、画角算出部６から得られた画角の補正量を求めるべきか否かを判断する（ステップＳ９１２）。判定の基準としては例えば、現実マーカと仮想マーカとで、対応するマーカ間のずれ量（ずれ量ベクトルの大きさ）の平均値を求め、この平均値がある基準値（所定の閾値）を越えているか否かを判断する。
【００６５】
この平均値がある基準値を超えている場合には処理をステップＳ９１４に移行し、画角データの補正量を求め、この補正量を画角データに加える（ステップＳ９１４）。画角データの補正量を求める方法については後述する。
【００６６】
一方、この平均値がある基準値を超えていない場合には処理をステップＳ９１３に移行し、ステップＳ９１０において求め、ＲＡＭ５０２に保持している位置データの補正量を参照し、画角データの補正量を求めるか否かの判断を行う。判断の基準としては、位置データの補正量の画像面に垂直な方向の成分が、ある基準値よりも大きいかを判断する。
【００６７】
位置データの補正量の画像面に垂直な方向の成分が、ある基準値よりも大きい場合には処理をステップＳ９１４に移行し、画角データの補正量を求め、求めた補正量を画角データに加える。この場合、ステップＳ９１３では、ステップＳ９０４において求めた画角データは現実空間画像の画角と一致していないが、位置データの補正によって現実マーカと仮想マーカの位置が一致してしまっていると判断される。画角の補正量は画像の縦方向と横方向とでは異なる量となるので、夫々の方向に対して独立に補正量は求められる。
【００６８】
なお、ステップＳ９１０で行う位置、姿勢データの補正値の決定方法によっては、位置データの補正量の画像面に垂直な方向の成分が０以外になりえない場合もある。そのような場合には、このステップＳ９１３を飛ばして、ステップＳ９１２からそのままステップＳ９１４へ移行する。
【００６９】
以下では画角データの補正量を求める処理について説明する。画角データの補正量を求める方法は、現実マーカと仮想マーカとで対応するマーカ間のずれ量の平均値がある基準値を越えている場合と、位置データの補正量の画像面に垂直な方向の成分がある基準値よりも大きい場合とでは異なる。以下では夫々の場合について説明する。
【００７０】
＜現実マーカと仮想マーカとで対応するマーカ間のずれ量の平均値がある基準値を越えている場合＞
この場合、本実施形態では、ステップＳ９１１で求めたずれ量ベクトルの方向によって補正値を決定する。
【００７１】
図２は現実空間画像上における仮想マーカの位置と現実マーカの位置とを用いて画角データの補正量を求める方法を説明する図である。同図において黒丸は現実マーカの位置を示し、三角は現実空間画像上における仮想マーカの位置を示す。例えば同図に示すように、仮想マーカの位置が現実マーカの位置に対して画像の外側に向かってずれている場合には、現実空間画像の画角は画角データよりも大きい。よってこのような場合には画角データの補正値を正の値にし、現実マーカの位置と仮想マーカの位置とを一致させるようにする。
【００７２】
一方、図３は図２に示した状態とは異なる場合に、現実空間画像上における仮想マーカの位置と現実マーカの位置とを用いて画角データの補正量を求める方法を説明する図である。同図において黒丸は現実マーカの位置を示し、白の三角は現実空間画像上における仮想マーカの位置を示す。例えば同図に示すように、仮想マーカの位置が現実マーカの位置に対して画像の内側に向かってずれている場合には、現実空間画像の画角は画角データよりも小さい。よってこのような場合には画角データの補正量を負の値にし、現実マーカの位置と仮想マーカの位置とを一致させるようにする。
【００７３】
なお補正値の絶対値は本実施形態では一定の値とするが、上記ずれ量ベクトルの大きさ（即ちずれ量）の平均値に比例した値としても良い。
【００７４】
また、現実マーカと仮想マーカの位置関係の判断は、例えば、現実マーカの位置および仮想マーカの位置の、画像中心を原点とした時の座標値の絶対値を比較すればよい。ある現実マーカＲの位置を（Ｒｘ、Ｒｙ）、それに対応する仮想マーカＶの位置を（Ｖｘ、Ｖｙ）とすると（横方向をｘ軸、縦方向をｙ軸とする）、｜Ｒｘ｜＞｜Ｖｘ｜であれば、仮想マーカＶは横方向に関しては、現実マーカＲよりも内側にあると判断でき、｜Ｒｙ｜＜｜Ｖｙ｜であれば、仮想マーカＶは縦方向に関しては、現実マーカＲよりも外側にあると判断できる。他のマーカに関しても、同じ判断がなされれば、横方向の画角データに対しては負の補正値を、縦方向の画角データに対しては正の補正値を加えることになる。ある仮想マーカは対応する現実マーカの内側にあり、別の仮想マーカは外側にある、といった状況になった場合には、ずれ量等を利用して全体としての傾向を判断する。例えば、各マーカに対して計算できる｜Ｒｘ｜−｜Ｖｘ｜の合計が正であれば、全体の傾向は｜Ｒｘ｜＞｜Ｖｘ｜であるから、仮想マーカＶは横方向に関しては、現実マーカＲよりも内側にあると判断し、同じく各マーカに対して計算できる｜Ｒｙ｜−｜Ｖｙ｜の合計が負であれば、全体の傾向は｜Ｒｙ｜＜｜Ｖｙ｜であるから、仮想マーカＶは縦方向に関しては、現実マーカＲよりも外側にあると判断する。
【００７５】
＜位置データの補正量の画像面に垂直な方向の成分がある基準値よりも大きい場合＞
この場合、位置データの補正値の方向に応じて画角データの補正値を求める。例えば、位置データの補正値が位置データを視線前方に大きく補正するものである場合には、現実空間画像の画角は画角データよりも小さい。よってこのような場合には画角データの補正量を負の値にし、現実マーカの位置と仮想マーカの位置とを一致させるようにする。逆に、位置データの補正値が位置データを視線後方に大きく補正するものである場合には、現実空間画像の画角は画角データよりも大きい。よってこのような場合には画角データの補正値を正の値にし、現実マーカの位置と仮想マーカの位置とを一致させるようにする。
【００７６】
なお補正値の絶対値は本実施形態では一定の値とするが、上記位置データの補正量の画像面に垂直な方向の成分に比例した値としても良い。
【００７７】
以上のいずれの場合においても、画角データの補正値を求めることができるので、これをＲＡＭ５０２に保持しておくと共に、画角データに加え、補正する。
【００７８】
なお、以上のステップＳ９０８からステップＳ９１４までの処理が終了すると、処理をステップＳ９０９に戻し、以降の処理を補正済みの画角データを用いて、現実マーカと仮想マーカとで対応するマーカ間のずれ量の平均値がある基準値よりも小さくなる、且つ位置データの補正量の画像面に垂直な方向の成分がある基準値よりも小さくなるまで行う。
【００７９】
そして現実マーカと仮想マーカとで対応するマーカ間のずれ量の平均値がある基準値よりも小さくなる、且つ位置データの補正量の画像面に垂直な方向の成分がある基準値よりも小さくなると、処理をステップＳ９１５に移行し、上述の説明の通り、仮想空間画像を生成し、複合現実空間画像を生成し、生成した複合現実空間画像を画像表示部１１に表示する。
【００８０】
以上の処理により求めた画角の補正量はＲＡＭ５０２に保持されているので、画角が変更されない限りは、これらの補正量を用いて撮像部１の画角を補正することができる。
【００８１】
以上の説明により、本実施形態における情報処理装置によって、ズーム倍率を変更できるカメラを利用して、現実空間と仮想空間との画角がほぼ一致した複合現実空間画像を利用者に対して提示することができる。これにより複合現実空間において任意の場所をズームアップしても現実空間と仮想空間との画角がほぼ一致した複合現実空間画像を利用者に対して提供することができる。
【００８２】
また、撮像した現実空間画像がコンピュータに取り込まれる過程でサイズが変化しても、上記補正処理はサイズが変更後の画像を用いて行っているので、この場合においても本実施形態に係る情報処理装置は、現実空間と仮想空間との画角がほぼ一致した複合現実空間画像を利用者に対して提供することができる。
【００８３】
つまり、ズーム倍率にかかわらず、現実空間の画像の位置と仮想空間の画像の位置を適切に合わせことができ、高品質の複合現実空間画像を提供することができる。
【００８４】
なお上述の画角の補正処理は言い換えれば焦点距離の補正処理であることは言うまでもない。
【００８５】
［第２の実施形態］
第１の実施形態に従った、撮像部１の位置、姿勢、画角の補正値を求める処理では、用いる特徴点としてマーカを用いたが、特徴点は人為的に配置されたものでなくても良く、例えば、撮像部１により撮像される机の角や窓枠など、現実空間における３次元座標が位置が既知であれば画像に含まれているものを用いても良い。
【００８６】
この場合、撮像部１により撮像された画像内に、特徴点として用いる対象が含まれているか否かをチェックする処理を図９に示した処理に加える必要がある。この処理は例えば、特徴点として用いるべき対象の画像（テンプレート画像）を予め外部記憶装置５０７等に記憶しておき、撮像部１から得られた現実空間画像とテンプレート画像とのマッチングを行い、特徴点として用いる対象を検出しても良い。
【００８７】
［他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８８】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００８９】
また上記記憶媒体には、インターネットやＬＡＮなどのネットワークに使用される通信ケーブルなどの通信媒体が含まれる。すなわち、前述した実施形態のプログラムコードがネットワーク上のサーバ装置に保持されている場合には、このサーバ装置から上記ネットワークを介してコンピュータにダウンロードすることで、コンピュータにプログラムを導入することができる。よって、導入されたプログラムはコンピュータ上のＣＰＵやＭＰＵなどの制御回路により実行され、その結果、コンピュータは前述した実施形態に機能が実現されるわけであるから、前述した記憶媒体に上記ネットワークに使用される通信ケーブルなどの通信媒体が含まれることはいうまでもない。
【００９０】
本発明の実施態様の例を以下に列挙する。
【００９１】
［実施態様１］  現実空間における位置が既知の特徴点を含む現実空間の撮影画像から撮像装置の画角情報を補正する情報処理装置であって、
前記撮像装置により撮像された前記現実空間の画像に含まれる前記特徴点の、当該画像における位置を検出する位置検出手段と、
前記撮像装置の位置、姿勢、画角を計測する計測手段と、
当該計測手段により得られる位置情報、姿勢情報、画角情報と、前記特徴点の位置から前記現実空間の画像における前記特徴点の位置を求める位置計算手段と、
前記位置計算手段により求められた前記特徴点の位置と前記検出手段により検出された前記特徴点の位置が合うように、前記計測手段により計測された画角情報を補正する画角情報補正手段と
を備えることを特徴とする情報処理装置。
【００９２】
［実施態様２］  前記第２の補正量計算手段は、前記第１の補正量計算手段によって極小化されたずれの方向に従って前記撮像装置の画角の補正量を求めることを特徴とする実施態様１に記載の情報処理装置。
【００９３】
［実施態様３］  前記第２の補正量計算手段は、前記第１の補正量計算手段により求めた前記撮像装置の位置の補正量の、前記撮像装置の視線方向成分に従って前記撮像装置の画角の補正量を求めることを特徴とする実施態様１に記載の情報処理装置。
【００９４】
［実施態様４］  更に、前記第１の補正量計算手段が求めた補正量によって前記撮像装置の位置、及び／又は姿勢を示すデータを補正する第１の補正手段と、
前記第２の補正量計算手段が求めた補正量によって前記撮像装置の画角を示すデータを補正する第２の補正手段と、
当該第２の補正手段が補正した前記撮像装置の画角を示すデータ又は前記計測手段が計測した前記撮像装置の画角を示すデータと、前記第１の補正手段が補正した前記撮像装置の位置、及び／又は姿勢を示すデータとを用いて、仮想空間における位置が既知のオブジェクトの画像を生成する画像生成手段と、
前記撮像装置により撮像された現実空間の画像と、当該画像生成手段により生成された画像とを合成して所定の表示装置に出力する合成手段と
を備えることを特徴とする実施態様１乃至３の何れか１項に記載の情報処理装置。
【００９５】
［実施態様５］  現実空間における位置が既知の特徴点を含む現実空間の撮影画像から撮像装置の画角情報を補正する情報処理方法であって、
前記撮像装置により撮像された前記現実空間の画像に含まれる前記特徴点の、当該画像における位置を検出する位置検出工程と、
前記撮像装置の位置、姿勢、画角を計測する計測工程と、
当該計測工程で得られる位置情報、姿勢情報、画角情報と、前記特徴点の位置から前記現実空間の画像における前記特徴点の位置を求める位置計算工程と、
前記位置計算工程で求められた前記特徴点の位置と前記検出工程で検出された前記特徴点の位置が合うように、前記計測工程で計測された画角情報を補正する画角情報補正工程と
を備えることを特徴とする情報処理方法。
【００９６】
［実施態様６］  コンピュータを実施態様１乃至４の何れか１項に記載の情報処理装置として機能させることを特徴とするプログラム。
【００９７】
［実施態様７］  コンピュータに実施態様５に記載の情報処理方法を実行させることを特徴とするプログラム。
【００９８】
［実施態様８］  実施態様６又は７に記載のプログラムを格納することを特徴とするコンピュータ読み取り可能な記憶媒体。
【００９９】
【発明の効果】
以上の説明により、本発明によって、撮像画像における特徴点から撮像装置の画角情報を適切に補正できるようにすることができる。
【図面の簡単な説明】
【図１】ズーム倍率が可変のカメラを用いて撮像した現実空間の画像と、このカメラの位置、姿勢、画角に基づいて生成した仮想空間の画像との合成画像を利用者に提供するための本発明の実施形態に係る情報処理装置の機能構成を示すブロック図である。
【図２】現実空間画像上における仮想マーカの位置と現実マーカの位置とを用いて画角データの補正量を求める方法を説明する図である。
【図３】図２に示した状態とは異なる場合に、現実空間画像上における仮想マーカの位置と現実マーカの位置とを用いて画角データの補正量を求める方法を説明する図である。
【図４】撮像部１、位置姿勢計測部３、画像表示部１１が一体化した装置を利用者４０の頭部に装着し、撮像部１が撮像する現実空間画像と、上記各ソフトウェアモジュールを実行するコンピュータ４１が生成する複合現実空間画像との合成画像（複合現実空間画像）を利用者４０の眼前に位置する画像表示部１１に表示する情報処理装置の形態を示す図である。
【図５】撮像部１、画像表示部１１が一体化した部分５１が支柱５０に、同図矢印の方向に回転可能なように取り付けられており、撮像部１が撮像する現実空間画像と、上記各ソフトウェアモジュールを実行するコンピュータ４１が生成する複合現実空間画像との合成画像（複合現実空間画像）を上記部分５１に取り付けられた画像表示部１１に表示する情報処理装置の形態を示す図である。
【図６】（ａ）は現実空間に配置されたマーカを撮像部１によって撮像する様子を示す図で、（ｂ）は撮像部１により撮像された現実空間画像を示す図である。
【図７】仮想の視点から仮想空間を見た場合を説明する図である。
【図８】本発明の実施形態に係るコンピュータの基本構成を示す図である。
【図９】撮像部１の位置、姿勢、そして画角を補正し、補正した位置、姿勢、画角を用いて複合現実空間画像を生成して画像表示部１１に表示する処理のフローチャートである。
【図１０】現実空間画像上における現実マーカの位置と仮想マーカの位置とを示す図である。
【図１】
2004213355.tif 000003
【図２】
2004213355.tif 000004
【図３】
2004213355.tif 000005
【図４】
2004213355.tif 000006
【図５】
2004213355.tif 000007
【図６】
2004213355.tif 000008
【図７】
2004213355.tif 000009
【図８】
2004213355.tif 000010
【図９】
2004213355.tif 000011
【図１０】
2004213355.tif 000012