(57)【要約】【課題】  複合現実感システムの実現や、システムの変更への対応をより容易にするための複合現実感情報生成方法を提供すること。【解決手段】  複合現実感に特有の位置姿勢計測に係る構成とアプリケーション７０を分離して共に独立に動作するように構成し、その間のデータの受け渡しは共有メモリ６０やプロセス間通信を利用する。これにより、アプリケーション７０を変更したり再コンパイルすることなく、センサの種類や位置合わせ方法の変更といった、位置姿勢計測に関連する構成の変更に対応することができる。【選択図】  図１
2006285788.tif 000002
【特許請求の範囲】
【請求項１】
現実空間を撮影する撮像手段から映像を取得する画像情報取得工程と、
前記現実空間中の計測対象物の位置及び姿勢の少なくとも一方を測定するためのセンサ出力を取得するセンサ情報取得工程と、
前記現実空間の映像及び前記センサ出力の少なくとも一方を用いて前記計測対象物の前記位置及び姿勢の少なくとも一方を算出する算出工程と、
前記現実空間の映像及び前記算出した前記計測対象物の前記位置及び姿勢の少なくとも一方を、前記現実空間画像に位置合わせして重畳表示するための仮想物体画像を前記位置及び姿勢の少なくとも一方を用いて生成する外部アプリケーションに供給する出力工程、
とを備えることを特徴とする複合現実感情報生成方法。
【請求項２】
前記出力工程は、前記外部アプリケーションとのプロセス間通信を用いて、或いは前記外部アプリケーションとの共有メモリに書き込むことにより、前記供給を行うことを特徴とする請求項１記載の複合現実感情報生成方法。
【請求項３】
前記算出工程が、
前記現実空間の映像に含まれる指標を検出し、当該検出した指標の座標情報から前記前記センサ出力を補正することにより前記計測対象物の前記位置及び姿勢の少なくとも一方を算出することを特徴とする請求項１又は請求項２記載の複合現実感情報生成方法。
【請求項４】
さらに、前記現実空間の映像に含まれる、予め定めた特徴を有する領域を検出し、前記領域とそれ以外の領域とを区別するためのマスク情報を生成するマスク情報生成工程を有し、
前記出力工程が、さらに前記マスク情報を前記外部アプリケーションに供給することを特徴とする請求項１乃至請求項３のいずれか１項に記載の複合現実感情報生成方法。
【請求項５】
前記予め定めた特徴を有する領域が、肌色を有する領域であることを特徴とする請求項４記載の複合現実感情報生成方法。
【請求項６】
前記算出工程で用いるパラメータの設定をユーザに行わせるためのユーザインタフェースを提示する提示工程をさらに有し、
前記提示工程が、
他のパラメータとの依存関係や他のパラメータとの可能な組合わせに関して予め記憶したパラメータ情報に基づいて、ユーザが設定可能なパラメータの選択肢を決定し、
前記決定に従ったユーザインタフェースを提示することを特徴とする請求項１乃至請求項５のいずれか１項に記載の複合現実感情報生成方法。
【請求項７】
前記パラメータ情報には、前記センサの種類と使用可能な位置合わせ方法の組合わせ、前記センサの種類に応じた設定パラメータの種類、前記撮像手段が有するカメラの数に応じた設定パラメータの種類の少なくとも１つが含まれることを特徴とする請求項６記載の複合現実感情報生成方法。
【請求項８】
前記外部アプリケーションが生成した前記仮想物体の画像を取得する仮想物体画像取得工程と、
前記算出工程で算出した前記計測対象物の前記位置及び姿勢の少なくとも一方を用いて前記現実空間の映像に前記仮想物体の画像を合成した合成画像を生成する合成画像生成工程と、
表示装置に前記合成画像を表示する表示工程とを更に有することを特徴とする請求項１乃至請求項７のいずれか１項に記載の複合現実感情報生成方法。
【請求項９】
現実空間を撮影する撮像手段から映像を取得する画像情報取得手段と、
前記現実空間中の計測対象物の位置及び姿勢の少なくとも一方を測定するためのセンサ出力を取得するセンサ情報取得手段と、
前記現実空間の映像及び前記センサ出力の少なくとも一方を用いて前記計測対象物の前記位置及び姿勢の少なくとも一方を算出する算出手段と、
前記現実空間の映像及び前記算出した前記計測対象物の前記位置及び姿勢の少なくとも一方を、前記現実空間画像に位置合わせして重畳表示するための仮想物体画像を前記位置及び姿勢の少なくとも一方を用いて生成する外部アプリケーションに供給する出力手段、
とを備えることを特徴とする複合現実感情報生成装置。
【請求項１０】
コンピュータに、請求項１乃至請求項８のいずれか１項に記載の複合現実感情報生成方法の各工程を実行させるプログラム。
【請求項１１】
請求項１０記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感を実現するために必要な位置姿勢や画像等の情報を取得生成する装置および方法に関する。
【背景技術】
【０００２】
従来から、複合現実感(Mixed Reality:MR)を観察者に与えるシステム（複合現実感システム）を実現するためのソフトウェアとして、ＡＲツールキット（非特許文献１参照）やＭＲプラットフォーム（非特許文献２参照）等が提案されている。これらは複合現実感システムを構築する上で必要な、観察者やオブジェクトの位置・姿勢情報等の獲得のためのプログラムをソフトウェアライブラリとして提供する。従って、複合現実感システムの開発者は、必要なハードウェア構成を有するシステムにこれらのソフトウェアをライブラリとして組み込み、それを利用したアプリケーションを開発することで、所望の複合現実感アプリケーションを容易に構築することが可能となる。
【０００３】
【非特許文献１】H.Kato, M. Billinghurst, I. Poupyrev, K. Imamoto, K. Tachibana.Virtual Object Manipulation on a Table-Top AR Environment. In Proceedings of ISAR 2000, Oct 5th-6th, 2000.
【非特許文献２】内山，武本，山本，田村："MRシステム構築基盤「MRプラットフォーム」の開発"，日本バーチャルリアリティ学会第6回大会論文集, pp.457-460, September 2001
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１及び２に開示されるようなソフトウェアライブラリを利用するには、これらを組み込むアプリケーションとともにコンパイルする必要があった。そのため、提供されるライブラリに含まれる位置あわせ機能の種類や使用するセンサ等が変更された場合、変更された機能を利用するためにはアプリケーションプログラムのソースコードを書き換えて再コンパイルを行う必要があった。
【０００５】
また、複合現実感システムを稼動させるためには、位置姿勢センサの種類と位置あわせ方式の組み合わせを決定したり、事前にカメラやセンサのキャリブレーションを行ったり、利用するデータを編集したりするなどの処理が必要となる。従来は、センサと位置あわせ方式の組み合わせをユーザが管理するようになっていたため、正しく動作する組み合わせをユーザが把握しなければならず、手間がかかっていた。さらにカメラやセンサ類のキャリブレーションを、それぞれ専用のツールを利用して１つ１つ処理していたが、ツールを使用する順番が決まっていたり、それぞれのツールで作成したキャリブレーションデータに相互依存関係があったりするため、ユーザはそれぞれのツールやデータの関係や状況を把握しながらキャリブレーションを行う必要があった。
【０００６】
本発明はこのような従来技術の課題を鑑みてなされたものであり、複合現実感システムの実現や、システムの変更への対応をより容易にするための複合現実感情報生成方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述の目的は、現実空間を撮影する撮像手段から映像を取得する画像情報取得工程と、現実空間中の計測対象物の位置及び姿勢の少なくとも一方を測定するためのセンサ出力を取得するセンサ情報取得工程と、現実空間の映像及びセンサ出力の少なくとも一方を用いて計測対象物の位置及び姿勢の少なくとも一方を算出する算出工程と、現実空間の映像及び算出した計測対象物の位置及び姿勢の少なくとも一方を、現実空間画像に位置合わせして重畳表示するための仮想物体画像を位置及び姿勢の少なくとも一方を用いて生成する外部アプリケーションに供給する出力工程、とを備えることを特徴とする複合現実感情報生成方法によって達成される。
【０００８】
また、上述の目的は、現実空間を撮影する撮像手段から映像を取得する画像情報取得手段と、現実空間中の計測対象物の位置及び姿勢の少なくとも一方を測定するためのセンサ出力を取得するセンサ情報取得手段と、現実空間の映像及びセンサ出力の少なくとも一方を用いて計測対象物の位置及び姿勢の少なくとも一方を算出する算出手段と、現実空間の映像及び算出した計測対象物の位置及び姿勢の少なくとも一方を、現実空間画像に位置合わせして重畳表示するための仮想物体画像を位置及び姿勢の少なくとも一方を用いて生成する外部アプリケーションに供給する出力手段、とを備えることを特徴とする複合現実感情報生成装置によっても達成される。
【０００９】
さらに、上述の目的は、コンピュータに、本発明の複合現実感情報生成方法の各工程を実行させるプログラム、及びこのプログラムを格納したコンピュータ読み取り可能な記録媒体によっても達成される。
【発明の効果】
【００１０】
このような構成により、本発明によれば、複合現実感システムの実現や、システムの変更への対応をより容易にすることが可能となる。
【発明を実施するための最良の形態】
【００１１】
以下、図面を参照して本発明の好適な実施形態について説明する。
以下に説明する実施形態は、複合現実感（ＭＲ）システムに特有な位置姿勢計測部分と、計測した位置姿勢を利用するアプリケーションとを分離して共に実行形式のモジュールで構成し、その間のデータの受け渡しは共有メモリやプロセス間通信を利用することを特徴とする。このような構成により、位置姿勢計測部分に変更があってもアプリケーションプログラムを変更する必要がなくなり、従来必要だったソースコードの修正、再コンパイルの手間及び時間を省くことができる。なお、本明細書中で”ＭＲ”と記述した場合は、拡張現実感(Augumented Reality:AR)を含むものとする。
【００１２】
＜第１の実施形態＞
以下、本願発明の第１の実施形態に係る複合現実感情報生成装置の図を参照しながら詳細に説明する。なお、「複合現実感情報」とは、複合現実感システムの実現に必要な計測情報を意味し、少なくとも計測対象物の位置及び／又は姿勢に関する情報を含み、必要に応じて実写映像、マスク情報を含む。
【００１３】
図１は本実施形態に係る複合現実感情報生成装置の構成例を示すブロック図である。
図において、撮像部１０は、アナログ方式のカメラあるいはＩＥＥＥ１３９４・ＵＳＢ等のインタフェースを備えたデジタルカメラ等で構成され、撮像した画像情報１０５を出力する。通常撮像部１０はＨＭＤなどユーザが頭部に装着する装置に装着された２つのカメラから構成され、右目用、左目用の現実空間画像を撮像する。なお、図面及び以下の説明では特に明示しないが、右目用、左目用の２系統で処理が行われるものとする。
【００１４】
センシング部２０は１個以上の計測対象物の位置または姿勢あるいはその両方を計測する磁気センサ、ジャイロセンサ、加速度センサ、傾斜計等であり、計測情報１０６を出力する。
【００１５】
マスク情報生成部３０は、撮像部１０から入力された画像情報１０５から特定の情報を取り出すためのマスク情報を生成する。位置・姿勢情報算出部４０は、センシング部２０からの計測情報１０６と撮像部１０からの画像情報１０５のどちらか一方あるいは両方を用い、計測対象物の位置または姿勢あるいはその両方を算出し、位置姿勢情報１０８として出力する。
【００１６】
設定部５０は、複合現実感情報生成装置を構成する機器の動作や初期情報等の設定（以下、MRP Configurationと呼ぶ場合がある）を行う。メモリ６０は、撮像部１０からの画像情報１０５とマスク情報生成部３０からのマスク情報１０７と位置・姿勢情報算出部４０からの位置姿勢情報１０８を保持する。アプリケーション７０は複合現実感情報生成装置が出力する複合現実感情報を用いるアプリケーションプログラムであり、複合現実感情報生成装置には含まれないが、説明の都合上明記してある。
【００１７】
なお、以下の説明においては、マスク情報生成部３０と位置・姿勢情報算出部４０とをまとめて複合現実感情報生成部（あるいはエンジン又はMRP Engine）８０として取り扱う。
【００１８】
撮像部１０は、設定部５０によって設定された設定情報１０１（例えば、絞りやシャッタースピード、色味など）に従って撮像し、撮像結果を画像情報１０５としてマスク情報生成部３０、位置・姿勢情報算出部４０及びメモリ６０に出力する。センシング部２０は設定部５０によって設定された設定情報１０２（センシング部２０が用いるセンサの種類やセンサが動作するために必要な情報など）に従って動作し、計測結果を計測情報１０６として位置・姿勢情報算出部４０に出力する。
【００１９】
マスク情報生成部３０は、撮像部１０からの画像情報１０５を受け取り、設定部５０によって設定される設定情報１０３に従って動作する。一例としては、画像中から肌色と推定される領域を抽出し、マスク情報１０７（肌色領域を「１」その他を「０」とするビットマップ）として出力する。このようなマスク情報は、撮像部１０の撮影範囲にユーザの手が含まれる場合、手の領域を抽出したマスクとなる。
【００２０】
但し、これに限らずエッジ情報や撮像部１０が撮影する視差画像から得られる奥行き情報を利用してマスク情報を生成しても良いし、画像情報１０５に含まれるユーザの手に限らず、任意のものを抽出してマスク情報を生成することができる。
【００２１】
位置・姿勢情報算出部４０は、設定部５０で設定される設定情報１０４に従い、撮像部１０からの画像情報１０５とセンシング部２０からの計測情報１０６とから計測対象物の位置・姿勢情報１０８を算出しメモリ６０に記録する。したがって、メモリ６０には、画像情報１０５と、それに対応するマスク情報１０７と位置・姿勢情報１０８とが格納されることになる。アプリケーション７０は、共有メモリとしてのメモリ６０にアクセスし、仮想環境（ＣＧによる仮想物体）を生成するために必要な位置・姿勢情報１０８と、仮想環境と合成するための画像情報１０５と、例えば合成の際に体験者の手が仮想物に隠されるのを防止するためのマスク情報１０７とを取得し、動作する。
【００２２】
図２０は本実施形態における複合現実感情報生成装置として利用可能な汎用コンピュータ装置の構成例を示すブロック図である。
【００２３】
図において、ディスプレイ２０１はアプリケーションプログラムによって処理中のデータの情報、各種メッセージメニューなどを表示し、ＣＲＴ（Cathode Ray Tube）、ＬＣＤ(Liquid Crystal Display)等から構成される。ビデオＲＡＭ（ＶＲＡＭ）ディスプレイコントローラとしてのＣＲＴＣ２０２は、ディスプレイ２０１への画面表示制御を行う。キーボード２０３及びポインティングデバイス２０４は、文字などを入力したり、ＧＵＩ（Graphical User Interface）におけるアイコンやボタンなどを指し示すためなどに用いられる。ＣＰＵ２０５はコンピュータ装置全体の制御を司る。
【００２４】
ＲＯＭ２０６（Read Only Memory）はＣＰＵ２０５が実行するプログラムやパラメータ等を記憶している。ＲＡＭ（Random Access Memory）２０７は各種プログラムをＣＰＵ２０５が実行する時のワークエリア、エラー処理時の一時退避エリア等として用いられる。
【００２５】
ハードディスクドライプ（ＨＤＤ）２０８、リムーバブルメディアドライプ（ＲＭＤ）２０９は、外部記憶装置として機能する。リムーバブルメディアドライブは、着脱可能な記録媒体の読み書き又は読み出しを行う装置であり、フレキシブルディスクドライブ、光ディスクドライブ、光磁気ディスクドライブ、メモリカードリーダはもとより、着脱式ＨＤＤなどであってもよい。
【００２６】
なお、以下に説明する、汎用コンピュータを本実施形態における複合現実感情報生成装置として機能させるプログラムやエラー処理プログラムをはじめ、ＯＳや、ブラウザ等のアプリケーションプログラム、データ、ライプラリなどは、その用途に応じてＲＯＭ２０６、ＨＤＤ２０８、ＲＭＤ２０９（の記録媒体）の１つ以上に記憶されている。また、アプリケーション７０をもこのコンピュータ装置で実行することもできる。この場合、共有メモリ６０をＲＡＭ２０７の一部領域として実現することができる。
【００２７】
拡張スロット２１０は、例えばＰＣＩ(Periferal Component Interconnect)バス規格に準拠した拡張カード装着用スロットであり、撮像部１０を接続して画像情報を取り込むビデオキャプチャボードや、サウンドボード、ＨＭＤを接続するためのグラフィックボード、ＧＰＩＢボードなど、様々な拡張ボードを装着することが可能である。
【００２８】
ネットワークインタフェース２１１はコンピュータ装置をコンピュータネットワークに接続するためのインタフェースである。バス２１２はアドレスバス、データバスおよび制御バスからなり、上述した各ユニット間を接続する。また、ネットワークインタフェース２１１の他に、ＲＳ−２３２Ｃ、ＲＳ−４２２、ＵＳＢ(Universal Serial Bus)、ＩＥＥＥ１３９４等のシリアルインタフェースや、ＩＥＥＥ１２８４等のパラレルインタフェースを有し、センシング部２０に含まれるセンサを初め、モデムやプリンタ等の外部機器との接続を可能にしている。
【００２９】
このような汎用コンピュータ装置は、ＯＳや必要なドライバソフトウェア等を用いることによって、ネットワークインタフェース２１１を介して必要に応じて接続されるルータ（ダイアルアップルータを含む）や、シリアルインタフェースを介して接続されるモデムやＴＡ等を用いて、コンピュータネットワークや公衆電話網上の他の機器と通信可能である。
【００３０】
図１における複合現実感情報生成部８０は、例えばＣＰＵ２０５が制御プログラムを実行することによってソフトウェア的に実現することも可能であるし、専用のハードウェアを用いても実現できる。また、設定部５０は、キーボード２０３及びポインティングデバイス２０４の操作に応じてＣＰＵ２０５がディスプレイ２０１にＧＵＩを表示し、ＧＵＩを介して入力、設定された内容をＲＡＭ２０７の一部領域に記憶することにより実現できる。そして、ＣＰＵ２０５は、この記憶された設定値を用いて各部の制御を行う。
【００３１】
図２に、本実施形態の複合現実感情報生成装置と、アプリケーション７０とにより実現される複合現実感システムの一例を示す。
このシステムは、車の簡易モックアップ（運転席に座った際に見える範囲のモックアップ）を利用して、観察者が装着したＨＭＤ（センシング部２０としての磁気センサ及び撮像部１０としてのカメラを内蔵）に、ＨＭＤ内蔵カメラで撮影した実写映像とＣＧで作成したインパネの映像とを合成・表示することにより、あたかも本物の車に乗っている・触っているような感覚で車両内部のデザイン評価を行うことを可能にするものである。
【００３２】
このようなシステムにおける計測対象物は、観察者が装着するＨＭＤであり、より正確にはＨＭＤに内蔵されたカメラである。このカメラの位置姿勢を求め、その情報を使って仮想物体の画像をＣＧで生成し、合成することにより、実写画像と仮想物体の画像がきちんと位置合わせされた合成画像を観察者に提示することが可能となる。
【００３３】
図２（ａ）は観察者が上述したアプリケーションを体験している様子を示している。観察者はカメラが内蔵され、かつ磁気センサが装備されたＨＭＤ（ビデオシースルー型ＨＭＤ）を装着している。図中のハンドルや椅子は実物（モックアップ）である。図２（ｂ）は図２（ａ）の状態で観察者の装着するＨＭＤに表示されている映像（合成画像）を示している。２１０は無地のモックアップに合成されたインパネ部分のＣＧ画像、２１１と２１２は観察者の手の実写映像である。ハンドルを含めた車のインパネ部はすべてＣＧによる画像であるが、手の部分はマスク情報を利用することによりＣＧが合成されないようになっており、体験者の手が見えるため、体験時の現実感を一層高めることが可能である。
【００３４】
なお、図２において、フロントガラスに相当する位置に見える路上の実写画像は、撮像部１０とは別に予め録画したビデオ画像などを背後に置いたスクリーンなどに投影したものである。
【００３５】
図３は、図１の位置・姿勢情報算出部４０の内部構成例を示すブロック図である。
画像認識部３１０は画像情報１０５から位置の指標（例えば予め定めた色や形を有する領域）を検出する。位置姿勢計測部３２０は、センシング部２０からの計測情報１０６を基準座標系における位置姿勢を表す４ｘ４の行列に変換する。位置姿勢補正部３３０は、画像認識部３１０が出力する指標情報１１０に応じて計測情報１０６を補正し、位置・姿勢情報１０８として出力する。
【００３６】
ここで、センシング部２０として磁気センサ（例えばPolhemus社の3SPCACE FASTRAKやAscension Technology社のFlock of Birdsなど）を利用した場合の動作を記述する。このような６自由度センサの計測値を、そのまま計測対象物（ここではＨＭＤに内蔵されたカメラ）の位置姿勢として仮想物体を描画、合成すると、センサの誤差が原因となって、実写映像と、計測値を元に計算した仮想物体の位置とが大きくずれて、合成画像の現実感が失われてしまう場合がある。例えば、位置姿勢計測用のセンサとして磁気センサを用いた場合、計測値は周囲の磁場に影響されるので、計測部（ＨＭＤ）近辺に金属があると誤差が大きくなり、位置ずれ量も増える。
【００３７】
このようなセンサ計測値の誤差を補正し、位置合わせ精度を向上させるため、現実空間中に存在する、或いは現実空間中に配置した指標を画像認識部３１０で認識し、その情報を用いて位置姿勢補正部３３０が補正された位置姿勢計測情報を求める。
【００３８】
ここでは、既知の座標に配置された特定色（赤とする）の領域を指標として用いる場合の画像認識部３１０の動作について説明する。
画像認識部３１０は、撮像部１０により撮像された画像中、画素色の赤の比率を表す
Ｒ／｛（Ｇ＋Ｂ）／２｝    （式１）
を用いて、特徴量ＩSを算出し、特徴量ＩSがあらかじめ指定した閾値を超えた場合は、注目画素が指標領域内であると判定する。これを、撮像画像の全ての画素に対して適応し、検出された特徴領域は、個々にラベル付けされる。ラベル付けされた領域の重心位置を指標の２次元位置とし、観測画像座標系における指標位置（ｘj、ｙj）が算出される。ただし、撮像画像の中に指標以外の赤い物体が存在していたり、カメラノイズが生じたりすることで、指標だと誤判断する場合もある。ゆえに、ここで算出する指標位置（ｘj、ｙj）は指標候補位置とし、指標の判別は位置姿勢補正部３３０で行う。
【００３９】
図４は、図３における位置姿勢補正部３３０の処理を説明するフローチャートである。
まず、ステップＳ１０００では、位置姿勢計測部３２０から撮像部１０の位置姿勢を取得し、基準座標系上の原点との相対関係からカメラのビューイング変換行列Msを求める。次に、ステップＳ１０１０において、画像認識部３１０によって得られた各指標の基準座標系上での３次元位置と、既知であるカメラの理想的透視変換行列と、ステップＳ１０００で求めたビューイング変換行列Msを用いて各指標の観測座標における２次元位置（ｘi’、ｙi’）を求める。この２次元位置（ｘi’、ｙi’）はセンシング部２０の出力である指示部の位置姿勢から求めた各指標の３次元位置を観測画像座標系に変換した予測値である。
【００４０】
次に、ステップＳ１０２０では、画像認識部３１０で検出された指標候補位置（ｘj、ｙj）とセンシング部２０による観測画像座標系での予測値（ｘi’、ｙi’）との２次元平面上での距離を計算し、個々の予測値に一番近い指標候補位置を予測値に対応する２次元指標位置だと判断し、指標検出により得た指標の２次元位置（ｘi、ｙi）とする。
【００４１】
ステップＳ１０３０ではこの予測値と検出値とのずれを解消するための補正行列ΔMaを算出する。このΔMaは各指標予測位置（ｘi’、ｙi’）が撮像画像上での各指標位置に一致するようにセンシング部２０の出力値を３次元空間上で補正する補正行列である。
【００４２】
例えば、この補正行列ΔMaは以下のように算出する。まず、撮像面上での指標１を特定しｐ１とし、センシング部２０の出力値から算出した撮像面上での指標１’の位置ｐ１’とする。ここで、観測座標系の原点Ｃからｐ１、ｐ１’を終点とするベクトルをそれぞれｖ１、ｖ１’とする。このとき、２次元の撮像画像上でｐ１’がｐ１に重なるような３次元空間である観測座標系上での変換は、ｖ１とｖ１’とをそれぞれ単位ベクトルに変換したあと、２つの単位ベクトルの外積によって求められるベクトルｘ１(ｕｘ,ｕｙ,ｕｚ)を回転軸とし、ｖ１とｖ１’の内積によって求められる、２つのベクトルがなす角θ１によってセンシング部２０の出力を回転補正する変換となる。すなわちこの回転変換が補正行列ΔMaとなる。補正行列ΔMaは以下の（式２）で表される。
【００４３】
【数１】
2006285788.tif 000003
【００４４】
最後に、ステップＳ１０４０で、ステップＳ１０３０で求めた補正行列ΔMaとステップＳ１０００で求めたカメラのビューイング変換行列Msとを積算することにより、基準座標系上における補正後の位置姿勢Ma（位置姿勢情報１０８）を求める。関係式を以下に示す。
Ｍａ＝ΔＭａ・Ｍｓ（式３）
【００４５】
ここで、撮像画像上に指標１が検出できない場合は、補正処理を終了し、センシング部２０の出力から得られた位置姿勢を最終的な位置姿勢情報１０８とする。この位置姿勢Maを用いて仮想物体を描画することで、意図する位置に仮想物体を表示することができ、センシング部２０の計測のみを用いる場合よりも高精度に計測対象物（ここではＨＭＤ）の位置姿勢を求めることができる。
【００４６】
なお、ここでは、センシング部２０（本実施形態では磁気センサ）の出力を、指標を検出することによって補正した。しかし、常時指標が見えている場合は、このようなセンサと指標の両方を用いる手法（ハイブリッド手法）を用いなくてもよい。すなわち、指標のみに基づいて計測対象物の位置姿勢を求めてもよいし、センサの出力精度が十分高ければ、指標を用いた補正処理は行わずにセンサの出力をそのまま計測対象物の位置姿勢として利用してもよい。
【００４７】
上述したように、位置姿勢情報１０８は、画像情報１０５及びマスク情報１０７とともに、複合現実感情報をアプリケーションに伝達する手段の一例としての共有メモリ６０
【００４８】
図５は、図１の構成を実現するソフトウェアモジュールとその相互関係について示す図である。
図において、アプリケーション７０を除く部分が複合現実感情報生成装置を実現するためのソフトウェアモジュール群及び設定ファイルである。図５に示すように、アプリケーション７０は複合現実感情報生成部(MRP Engine)８０が提供するＡＰＩ(Appication Programming Interface)を介して複合現実感情報生成装置との通信を行う。
【００４９】
複合現実感情報生成装置を実現するためのソフトウェアモジュール群及び設定ファイルには、設定部(MRP Configuration)５０、設定ファイル（システム構成ファイル１３０、カメラ内部パラメータファイル１３２、カメラ外部パラメータファイル１３４、マーカファイル１３６）、カメラやセンサのキャリブレーションを行うためのツール（HMD Parameter Tool １２２, Camera Parameter Tool １２４, ６自由度センサツール(6DOF Sensor Tool) １２６, Fixed Camera Tool１２８）、指標（マーカ）編集ツール（Marker Tools）１２０などが含まれる。
【００５０】
設定部５０により入力された各種パラメータの設定値は、システム構成ファイル１３０に格納され、HMD Parameter Tool，6DOF Sensor Tool，HMD Parameter Toolはシステム構成ファイル１３０に格納された設定値を参照して動作する。また、マーカファイル１３６には現実空間中に配置されたマーカの情報（絶対位置（重心位置や頂点座標など）、画像処理により認識するための特徴情報（色、形状など））がマーカ編集ツール１２０により設定されている。このマーカ情報は、MRP Engine８０内の位置姿勢情報算出部４０、さらに具体的には画像認識部３１０においてマーカ識別のために用いられる。
【００５１】
また、カメラ内部パラメータ（焦点距離、レンズ歪み係数、画像中心、画面の縦横比など）１３２はHMD Parameter Toll１２２によって、カメラ外部パラメータ（空間中のカメラの位置と方向を決定する回転行列、平行移動ベクトル）１３４は６自由度センサツール１２６によってそれぞれ登録、編集される。これらのカメラパラメータはMRP Engine８０において上述した各種行列（位置姿勢）の算出などに用いられる。
【００５２】
図６は設定部５０が提示する、パラメータ設定用グラフィカル・ユーザ・インタフェース（GUI）の一例である。
このGUIから、MRP Engine８０を起動したり、他のモジュール（図５中の１２０、１２２、１２４、１２６、１２８など）を起動したりすることができる。具体的には、左のウィンドウ６０５から起動を希望するプロセス（モジュール）を選択し、起動ボタン６１０をマウスでクリックすることにより起動を指示できる。
【００５３】
また、撮像部１０やセンシング部２０の構成によっては複数のプロセスが同時にアクセスできない場合もあるため、ここで撮像部１０やセンシング部２０に対するアクセスの排他制御を行っている。また、MRP Engine８０を動作させるための様々な設定を環境毎にプロファイルという形で保存しておくこと、撮像部１０からの画像をキャプチャする際に使用するデバイスの設定・管理、撮像部１０に使用されるカメラの内部・外部パラメータの計測・設定・管理、計測対象物（この場合はＨＭＤに内蔵されたカメラ）の位置・姿勢を算出するためのアルゴリズムの選択や必要なパラメータの入力・管理、カメラ以外の計測対象物がある場合の設定・管理、指標検出時に利用される検出アルゴリズムやパラメータの設定・管理、センシング部で利用されるセンサの種類の選択・設定・管理を設定部５０から行うことができる。設定ファイルの記述はどのような方法・形式を用いても良いが、ここでは汎用性のあるXML形式で記述している。
【００５４】
従来のＭＲプラットフォームでは、全体の設定と各モジュールが出力するデータ（相互依存関係あり）をユーザが管理していたため、しばしば対応するファイルが不正である等の人為的なミスによりシステムが不正な動作をするということが起こっていた。本実施形態の複合現実感情報生成装置では、他のパラメータとの依存関係や他のパラメータとの可能な組合わせに関して予め記憶したパラメータ情報を例えば設定ファイル１３０に予め記憶しておき、設定部５０がパラメータ情報に基づいてユーザが設定可能なパラメータの選択肢を決定する。そして、決定されたパラメータを設定するためのユーザインタフェースのみを表示することにより、全体の設定作業を効率化し、不正な設定データの組み合わせ等の人為的なミスを軽減することができる。
【００５５】
本実施形態においては、パラメータ情報として、センサの種類と使用可能な位置合わせ方法の組合わせ、センサの種類に応じた設定パラメータの種類、撮像手段が有するカメラの数に応じた設定パラメータの種類の少なくとも１つが含まれるものとするが、これらに限定されるものではない。
【００５６】
図７は撮像部１０の映像をキャプチャするためのキャプチャデバイスに関する設定画面の例を示す図であり、図６のウィンドウ６０５において「キャプチャデバイス」が選択された状態に相当する。
【００５７】
この設定画面から、入力ポートの設定やデバイスの選択、取得画像サイズ、レンズ歪補正処理のタイミングの指定等を行うことが可能である。レンズ歪設定に関しては、アプリケーション７０に渡す（即ち図１において共有メモリ６０に書き込む）画像情報１０５に補正をかけるか、描画する際に補正するかを指定することができる。なお、歪補正を行う場合には、アプリケーション７０が画像情報を自由に加工することが可能であるが、歪み補正を行わない場合には、アプリケーション７０が歪み補正を行い、描画に使用するフレームバッファに直接書き込むため、アプリケーション７０は画像情報１０５を任意に加工することが難しくなる。
【００５８】
図８はカメラパラメータに関する設定画面の例を示す図であり、図６のウィンドウ６０５において「カメラパラメータ」が選択された状態に相当する。
ここでは、ＨＭＤの、装着時にユーザ視点近傍となる位置に設けられた左右一対のカメラの内部カメラパラメータの設定と、左右のカメラの相対位置関係の設定を行うことができる。設定を開始するには、計測ボタン４１０を押し、カメラパラメータを計測するツール（図５のCamera Parameter Tool１２４又はHMD Parameter Tool１２２）を立ち上げる。この際に、設定部５０は撮像部１０が有するカメラの情報（１台であるか、ステレオペアであるか）を例えばシステム構成ファイル１３０から取得し、適切なツールを立ち上げる。この場合、ステレオカメラの設定になっているので、ステレオカメラ用のツール(HMD Parameter Tool)１２２が自動的に起動される。もし、カメラが１台の場合は、Camera Parameter Tool１２４が起動される。
【００５９】
このように、設定部５０を介してシステムの状況に応じて適切なツールを起動するとともに、計測されたデータを自動的にシステム設定ファイル１３０に反映されるように構成しているため、ツールや設定ファイルの管理にまつわるユーザの人為的なミスが軽減される。前回使用したカメラと全く同じあるいは同じ条件ですでに計測されたデータが存在する場合は、そのデータを利用することもできる。また、計測したデータに名称を付加して保存したり、過去に保存したデータを呼び出して再利用したり、保存したデータを整理したりする機能も周知の周知のファイル保存、読み出しＧＵＩを通じて提供する。また、初期設定として典型的なデータを設定ファイル１３０にプリセットしておくことにより、計測を１度も行わなくてもアプリケーション７０をとりあえず動作させることができる。これは初めてこのシステムを利用する際にセットアップのリードタイムを短縮できるという点で有利である。
【００６０】
図９はカメラの位置合わせ方法に関する設定画面の例を示す図であり、図６のウィンドウ６０５において「カメラ位置合わせ」が選択された状態に相当する。
ここでは、MRP Engine８０に接続されたセンシング部２０の状態を検知して、センシング部２０が用いているセンサと組み合わせて、あるいは単独で動作可能な位置合わせ方式の一覧を表示する。表示内容はセンサ種別と対応付けて予めシステム設定ファイル１３０に登録しておく。
【００６１】
表示される候補の中から位置合わせ方法を選択させることにより、ユーザの関与する範囲を限定し、不正な位置合わせ方法が選択されることを防止できる。なお、ここではシステムが自動的に接続されているセンサの種類などを判断する構成にしているが、ユーザがセンサ類を識別してセンサの種類を入力するようにしても良い。センサの種類からではなく、使いたい位置合わせ方法がある場合は、位置合わせ方法優先モードに設定することにより、位置合わせ方法の一覧から所望のものを選択可能に構成することもできる。そして、位置合わせ方法が選択されると、その位置合わせ方法に応じてシステムに接続すべきセンサあるいはその候補と、システムへの接続およびその設定を促す画面を表示する。位置合わせ方法の種類と対応するセンサの種類などの情報も、予め登録しておくことができる。ユーザはこれらの情報に従って作業を行うことにより、簡単に所望のシステム構成や設定等を実現することができる。
【００６２】
図１０に、位置合わせ優先モード時の例として、位置合わせ方法として６自由度センサとマーカとを利用する方法が選択された場合の例を示している。この場合、ウィンドウ６０５の「センサシステム」を選択すると、指定された位置合わせ方法に対応したセンサの候補が表示される。この画面からセンサを指定することにより、利用するセンサが確定される。
【００６３】
図１１に、図１０において磁気センサが選択された場合に表示する設定画面の例を示す。この画面から、磁気センサに関する様々な設定が可能である。特に、図に例示している磁気センサ（Polhemus社の3SPCACE FASTRAK）の場合は、計測する範囲（半球）の設定を行う必要があるが、入力の手間を軽減するために、すべてに対して同一の設定を指示するためのチェックボックス４２０を用意している。また、スタイラスと呼ばれるペン型タイプのセンサの接続チェックも行えるようにしている。
【００６４】
図９の設定画面から、位置合わせ方法として６自由度センサとマーカの組み合わせが選択されたことに対応して、ウィンドウ６０５の「カメラ位置合わせ」内の設定項目として「６自由度センサ」と「マーカによる誤差補正」が表示される。図１２は、そのうち「６自由度センサ」の項目を選択した際に表示する初期キャリブレーションデータの設定画面の例を示している。ここでも６自由度センサとして磁気センサを用いるものとする。
【００６５】
図９の設定画面では、カメラ座標系と磁気センサ座標系の変換行列（Local Transform）と磁気センサ座標系と基準座標系の変換行列（World Transform）の設定画面が表示されている。
これら行列の値は、計測ボタン４３０がマウスでクリックされると起動する計測ツールによって計測された値である。他の設定値と同様にあらかじめデフォルトの値が設定されている。また、計測した値を保存して再利用したり、削除や名前の変更などの編集が可能である。
【００６６】
図１３は、「マーカによる誤差補正」の項目が選択された際に表示する、位置合わせに利用するマーカに関する設定画面の例を示している。ここでマーカから得られた情報をどのようにセンサ出力値の補正に使用するかといった設定を行うことができる。
【００６７】
図１４は、ＨＭＤ（内蔵カメラ）以外に位置姿勢を常時把握しておく必要のある計測対象物を設定する画面を示している。例えば、第３者視点の固定カメラ（固定カメラを利用することによって、ＨＭＤを装着した観察者の様子を撮像することができる）や、可動物体にＣＧを重ねて表示するような場合の可動物体がこのような計測対象物として考えられる。この画面からは、測定対象物の詳細設定をはじめ、追加、削除などの管理を行うことができる。
【００６８】
図１５は画像認識部３１０が画像情報１０５からマーカを認識する際に用いる設定を行うマーカ認識条件設定画面の一例を示す図である。
ここでは、撮影画像に含まれる特徴領域をマーカとして認識する閾値（画像上での最小面積）を設定したり、所定形状（ここでは三角とする）のマーカを認識するための二値化の閾値や、最終的にマーカとして認識するために必要な面積を設定したりすることができる。マーカの色や形状に関する設定は、編集ボタン４４０により起動されるマーカツールで編集することができる。
【００６９】
図１６はマーカツールの画面の一例である。図中の４５０は設定されたマーカをツリー表示したもので、名称の左に表示されるアイコンによって、点（小円形）マーカであるか三角マーカであるかが区別できるようになっている。ここでは、点マーカはすべて同じアイコンにしているが、それぞれの点マーカの色を反映したアイコンするなども可能である。点マーカの色を反映したアイコンを表示すると、そのマーカがどのようなマーカであるかが直感的に把握できるというメリットがある。
【００７０】
４６０は色差空間（例えば、ＹＣｂＣｒ表色系のＣｂＣｒなどであるが、これに限るものではない）の表示領域である。領域４６０中の楕円はそれぞれ対応するマーカの色の範囲を示している。図１６において楕円が５つ設定されているのは５色の点マーカが設定されている状況を示しているからであり、マーカとして用いる色の種類を増やせばそれにともなって楕円の数も増加する。この楕円は通常ドローイングアプリケーションで採用されているようなユーザインタフェースによりユーザが大きさや位置を変更することができるようになっており、マーカとして認識する色の領域と他のマーカとの関係を直感的に設定及び認識することが可能となっている。
【００７１】
領域４６０の楕円の１つを選択すると、それに対応したマーカがツリー４５０で他のマーカとは異なるように表示される。また、ツリー４５０中のマーカを選択するとそれに対応する楕円が他の楕円とは異なるように表示される、あるいは対応する楕円のみが表示される。このように表示することにより、ユーザに認識範囲とマーカ色との関係を直感的に提示することができ、わかりやすいという効果がある。
【００７２】
スルー表示ウィンドウ４７０はカメラでマーカを撮影した画像を表示している様子を示したものである。認識結果ウィンドウ４８０はマーカツールで設定した情報に従い、画像認識部３１０がスルー表示ウィンドウ４７０に表示されている画像情報からマーカを抽出した様子を示している。スルー表示ウィンドウ４７０中の矩形領域と認識結果ウィンドウ４８０の矩形領域とは同一の領域である。この矩形領域内の色情報のみを領域４６０に表示してそれを囲むようにマーカの色認識範囲（楕円）を設定することもできる。これにより、色領域をより正確に設定することが可能となる。
【００７３】
また、ある特定マーカの認識結果のみを認識結果ウィンドウ４８０上に表示したり、スルー表示ウィンドウ４７０で撮影されたマーカを認識結果ウィンドウ４８０に表示する際にマーカの色を彩度の高い色等（例えば、対応する楕円中のもっとも彩度の高い色）に変更して表示したりすることも可能である。こうすることで認識結果をユーザにわかりやすく提示することが可能となる。これらの表示は、動画で行うことも、また、動画中のあるシーン（静止）のみに対して行うことも可能である。静止画の状態でマーカの色認識範囲を調整することにより、より詳細に範囲を設定することが可能となる。
【００７４】
図１７は、新規なマーカとして三角マーカを登録するための設定画面の例を示している。マーカの３次元空間中の位置姿勢を、三角形の重心位置と回転軸に対する回転角で表現するように構成されている。三角マーカの実際の位置姿勢は三角形の３頂点の３次元座標を入力することにより行う。ボタン５１０を押すことにより、図１８の頂点座標設定画面が表示され、ここで頂点の座標値を入力する。頂点の入力順（頂点１→頂点２→頂点３）で面の向きを規定するため、入力順を示すガイドとしてパネルの左側（図１８の５２０）にイラストを表示している。こうすることにより、ユーザが頂点の入力順を間違えなくて済むようになり、また、３頂点の座標を直接入力することにより、三角マーカの位置姿勢を直感的に入力することが可能となる。
【００７５】
また、３頂点の座標のうち、いずれかの座標を一定値とし、三角マーカが存在している平面内の２次元座標を指定する様にしても良い。このようにすることで、座標入力を容易にすることができる。この場合、三角マーカの頂点で定義される平面の世界座標系での定義を用いることで、世界座標系での３次元座標に変換して設定を行う。
【００７６】
以上説明したように、本実施形態によれば、複合現実感システムを構成するために必要な複合現実感情報を取得する構成を、複合現実感情報を利用する構成と分離し、両者の間で共有メモリやプロセス間通信などを利用して情報をやりとりするようにしたため、センサの変更や位置合わせ方法の変更など、複合現実感情報の取得にのみ関係する変更が生じた場合には、複合現実感情報を取得する構成のみを変更すれば良く、様々な態様に柔軟に対応することが可能になる。
【００７７】
また、複合現実感情報を取得するために必要な設定項目を管理する設定部を設けたことにより、ハードウェア構成やユーザの希望する設定に応じて必要かつ適切な設定項目をユーザに提示することが可能となり、センサの種類と位置合わせの方法との不適切な組合わせなどが設定されることを回避することができる。
【００７８】
＜第２の実施形態＞
第１の実施形態では、実写映像を画像情報１０５としてアプリケーション７０に渡し、アプリケーション側で実写映像とＣＧとを合成してＨＭＤに表示させる構成を想定しているが、本実施形態ではアプリケーションはＣＧ生成のみを行い、そのデータを複合現実感情報生成装置に渡して、複合現実感情報生成装置で実写映像とＣＧとを合成するようにしたものである。このような構成においても本発明の目的を達成できることは言うまでも無い。
【００７９】
図１９は、本実施形態に係る複合現実感提示システムの構成例を示す図である。において、６１０は磁気式センサや光学式センサ等のセンシング部、６２０はカメラ等の撮像部、６３０はアプリケーションが動作するパソコンやＰＤＡ等のＣＧ生成装置、６４０は複合現実情報生成装置、６５０は複合現実感情報生成装置の出力を表示するためのモニタ（ＨＭＤ）である。本実施形態においても撮像部６２０はＨＭＤに内蔵されている。かかる構成により、センシング部６１０は撮像部６２０の位置姿勢を計測し、撮像部６２０は現実空間の映像を獲得して複合現実感情報生成装置６４０に出力する。複合現実感情報生成装置６４０は実写画像とセンサ情報とから計測対象物（カメラ）の位置姿勢を高精度に算出してＣＧ生成装置に出力するともに、ＣＧ生成装置６３０に搭載されたアプリケーションがその位置姿勢情報に応じたＣＧ映像を生成し、複合現実感情報生成装置６４０に出力する。さらに複合現実感情報生成装置６４０では撮像部６２０の映像中、ＣＧ映像を表示したくない領域（観察者の手が写った領域など）を示すマスク情報を生成し、そのマスク情報と撮像部６２０の映像とＣＧ生成装置６３０のＣＧ映像とを合成し、モニタ６５０に出力する。
【００８０】
ここで、撮像部６２０とモニタ６５０を右目用と左目用の２組用意すれば、ステレオ映像として観察者に提示可能であり、ステレオＨＭＤを構成することができる。また、撮像部とモニタの組は３組以上あってもよい。また、ＣＧ生成装置６３０が生成するデータはＣＧデータのみでなく、テキスト情報でもよい。
【００８１】
＜他の実施形態＞
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。
【００８２】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態に係る複合現実感情報生成装置の構成例を示すブロック図である。
【図２】本実施形態の複合現実感情報生成装置と、アプリケーション７０とにより実現される複合現実感システムの一例を示す図である。
【図３】図１の位置・姿勢情報算出部４０の内部構成例を示すブロック図である。
【図４】図３における位置姿勢補正部３３０の処理を説明するフローチャートである。
【図５】図１の構成を実現するソフトウェアモジュールとその相互関係について示す図である。
【図６】設定部５０が提示するグラフィカル・ユーザ・インタフェース（GUI）の一例である。
【図７】撮像部１０の映像をキャプチャするためのキャプチャデバイスに関する設定画面の例を示す図である。
【図８】カメラパラメータに関する設定画面の例を示す図である。
【図９】カメラの位置合わせ方法に関する設定画面の例を示す図である。
【図１０】位置合わせ優先モード時の設定画面の例を示す図である。
【図１１】図１０において磁気センサが選択された場合に表示する設定画面の例を示す図である。
【図１２】６自由度センサの初期キャリブレーションデータの設定画面の一例を示す図である。
【図１３】マーカによる誤差補正方法の設定画面の一例を示す図である。
【図１４】ＨＭＤ（内蔵カメラ）以外に位置姿勢を常時把握しておく必要のある計測対象物を設定する画面の例を示す図である。
【図１５】画像認識部３１０が画像情報１０５からマーカを認識する際に用いる設定を行うマーカ認識条件設定画面の一例を示す図である。
【図１６】マーカツールの画面の一例を示す図である。
【図１７】新規なマーカとして三角マーカを登録するための設定画面の例を示す図である。
【図１８】三角マーカの頂点座標を設定画面の例を示す図である。である。
【図１９】第２の実施形態に係る複合現実感提示システムの構成例を示す図である。
【図２０】本実施形態における複合現実感情報生成装置として利用可能な汎用コンピュータ装置の構成例を示すブロック図である。
【図１】
2006285788.tif 000004
【図３】
2006285788.tif 000005
【図４】
2006285788.tif 000006
【図５】
2006285788.tif 000007
【図６】
2006285788.tif 000008
【図７】
2006285788.tif 000009
【図８】
2006285788.tif 000010
【図９】
2006285788.tif 000011
【図１０】
2006285788.tif 000012
【図１１】
2006285788.tif 000013
【図１２】
2006285788.tif 000014
【図１３】
2006285788.tif 000015
【図１４】
2006285788.tif 000016
【図１５】
2006285788.tif 000017
【図１７】
2006285788.tif 000018
【図１８】
2006285788.tif 000019
【図１９】
2006285788.tif 000020
【図２０】
2006285788.tif 000021
【図２】
2006285788.tif 000022
【図１６】
2006285788.tif 000023