(57)【要約】【課題】  仮想物体同士の衝突が生じた場合には、この衝突を後に再現可能とすべく、この衝突に係る情報を記録する為の技術を提供すること。【解決手段】  カメラ位置姿勢取得部１９０は観察者の視点の位置姿勢を取得し、仮想物体生成部１０６は複数の仮想物体を配置した仮想空間を、取得した位置姿勢を有する視点から見た場合に見える画像を生成し、仮想物体干渉検出部１０７が仮想物体同士の衝突を検知すると、仮想物体位置姿勢記録部１０８は、この衝突に係る情報を記録する。【選択図】  図１
2007004713.tif 000002
【特許請求の範囲】
【請求項１】
観察者の視点の位置姿勢を取得する取得工程と、
複数の仮想物体を仮想空間中に配置する配置工程と、
前記複数の仮想物体を配置した仮想空間を、前記取得工程で取得した位置姿勢を有する視点から見た場合に見える画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程と、
仮想物体同士の衝突を検知すると、当該衝突に係る情報をメモリに記録する記録工程と
を備えることを特徴とする画像処理方法。
【請求項２】
更に、前記視点から見える現実空間の画像を取得する第２の取得工程を備え、
前記出力工程では、前記生成工程で生成した画像上を、前記第２の取得工程で取得した画像上に重畳させて出力することを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記記録工程では、前記衝突を検知した時刻、前記取得工程で取得した前記視点の位置姿勢、衝突した仮想物体のそれぞれの位置姿勢、衝突した仮想物体を識別する情報、衝突した部位を示す情報、前記第２の取得工程で取得した画像上に前記生成工程で生成した画像上を重畳させた画像を前記メモリに記録することを特徴とする請求項２に記載の画像処理方法。
【請求項４】
観察者の視点の位置姿勢を取得する取得手段と、
複数の仮想物体を仮想空間中に配置する配置手段と、
前記複数の仮想物体を配置した仮想空間を、前記取得手段が取得した位置姿勢を有する視点から見た場合に見える画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段と、
仮想物体同士の衝突を検知すると、当該衝突に係る情報を記録する記録手段と
を備えることを特徴とする画像処理装置。
【請求項５】
コンピュータに請求項１乃至３の何れか１項に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項６】
請求項５に記載のプログラムを格納したことを特徴とする、コンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、仮想物体に対する処理技術に関するものである。
【背景技術】
【０００２】
バーチャルリアリティ（ＶＲ）システムは、コンピュータの作り出す三次元コンピュータグラフィックス（ＣＧ）をユーザに提示することで、仮想の空間をあたかも現実であるかのように感じさせるシステムである。また近年、現実世界の映像に三次元ＣＧを合成することで、現実世界にはない情報をユーザに提示する技術の開発もなされており、それらはAR（Augumented Reality, 拡張現実感）システムやMR（Mixed Reality, 複合現実感）システムと呼ばれている。
【０００３】
ＭＲシステムでは、現実の物体に三次元ＣＧを重ねることが可能であり、例えば、特許文献１に示されるシステムでは、現実物体に仮想物体を重畳することで、ユーザが自由に仮想物体を操ることができるようになっている。
【特許文献１】特開２００５−１０８１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、今までのシステムは、仮想物体の移動時に他の仮想物体との干渉（衝突）を検出し、干渉状況を記録するシステムではなかった。そのため仮想物体同士で干渉が起きても起きたタイミングや正確な位置姿勢を把握することが困難であった。
【０００５】
本発明は以上の問題に鑑みて成されたものであり、仮想物体同士の衝突が生じた場合には、この衝突を後に再現可能とすべく、この衝突に係る情報を記録する為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の目的を達成するために、例えば、本発明の画像処理方法は以下の構成を備える。
【０００７】
即ち、観察者の視点の位置姿勢を取得する取得工程と、
複数の仮想物体を仮想空間中に配置する配置工程と、
前記複数の仮想物体を配置した仮想空間を、前記取得工程で取得した位置姿勢を有する視点から見た場合に見える画像を生成する生成工程と、
前記生成工程で生成した画像を外部に出力する出力工程と、
仮想物体同士の衝突を検知すると、当該衝突に係る情報をメモリに記録する記録工程と
を備えることを特徴とする。
【０００８】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。
【０００９】
即ち、観察者の視点の位置姿勢を取得する取得手段と、
複数の仮想物体を仮想空間中に配置する配置手段と、
前記複数の仮想物体を配置した仮想空間を、前記取得手段が取得した位置姿勢を有する視点から見た場合に見える画像を生成する生成手段と、
前記生成手段が生成した画像を外部に出力する出力手段と、
仮想物体同士の衝突を検知すると、当該衝突に係る情報を記録する記録手段と
を備えることを特徴とする。
【発明の効果】
【００１０】
本発明の構成により、仮想物体同士の衝突が生じた場合には、この衝突を後に再現可能とすべく、この衝突に係る情報を記録することができる。
【発明を実施するための最良の形態】
【００１１】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１２】
［第１の実施形態］
図１は、現実空間に仮想空間を重畳させた複合現実空間を観察者に体感させるためのシステムの機能構成を示すブロック図である。同図に示す如く、本実施形態に係るシステムはシステム制御部１０１、仮想物体移動インターフェース１４０、ビデオシースルー型ＨＭＤ１３２で構成されている。
【００１３】
先ず、ビデオシースルー型ＨＭＤ１３２について説明する。ビデオシースルー型ＨＭＤ１３２は、同図に示す如く、画像入力部１３５、画像表示部１３６、カメラ１３３，画像出力部１３４により構成されている。
【００１４】
カメラ１３３は、現実空間の動画像を撮像するものであり、撮像した各フレームの画像は画像出力部１３４によりシステム制御部１０１に送出される。なお、カメラ１３３を以下では「観察者の視点」と呼称する場合がある。
【００１５】
画像入力部１３５は、システム制御部１０１から送出される画像信号を受け、受けた画像信号に従った画像を画像表示部１３６に表示する。画像表示部１３６は、ビデオシースルー型ＨＭＤ１３２を頭部に装着している観察者の眼前に位置するようにビデオシースルー型ＨＭＤ１３２に取り付けられているので、この観察者はシステム制御部１０１から送出される画像信号に基づいた画像を観察することになる。
【００１６】
なお、このビデオシースルー型ＨＭＤ１３２の位置姿勢は後述する処理でもってシステム制御部１０１が取得する。
【００１７】
次に、仮想物体移動インターフェース１４０について説明する。仮想物体移動インターフェース１４０は、観察者が手に保持してその位置や姿勢を自在に変化させることができるものであり、その位置や姿勢は後述する処理でもってシステム制御部１０１が取得する。本実施形態ではこの仮想物体移動インターフェース１４０の位置姿勢に１つ以上の仮想物体を配置する。
【００１８】
次に、システム制御部１０１について説明する。同図に示す如く、システム制御部１０１は画像入力部１０２、画像合成部１０３、画像出力部１０４、仮想物体位置姿勢制御部１０５、仮想物体生成部１０６、仮想物体干渉検出部１０７、仮想物体位置姿勢記録部１０８、カメラ位置姿勢取得部１０９、画像保存部１１０により構成されてる。
【００１９】
画像入力部１０２は、ビデオシースルー型ＨＭＤ１３２の画像出力部１３４から出力された現実空間の画像を受け、これを画像合成部１０３に出力する。
【００２０】
カメラ位置姿勢取得部１０９は、視点の位置姿勢を取得する処理を行う。視点の位置姿勢を取得するための処理については様々なものが考えられ、特に限定するものではないが、例えば以下のような方法を用いることができる。
【００２１】
先ず、磁気センサをカメラ１３３との位置姿勢関係（バイアス）が既知の位置姿勢でもってビデオシースルー型ＨＭＤ１３２に取り付け、この磁気センサでもって、磁界の発信源の位置を原点とし、この原点で互いに直交する３軸をそれぞれｘ軸、ｙ軸、ｚ軸とする座標系（センサ座標系）における自身の位置姿勢を計測する。この場合、カメラ位置姿勢取得部１９０は、この磁気センサから出力される「磁気センサのセンサ座標系における位置姿勢を示す信号」を受け、これをデータとして取得する。そして、このデータに、上記バイアスのデータを加算することで、センサ座標系における視点の位置姿勢を求めることができる。
【００２２】
一方、仮想物体位置姿勢制御部１０５は、仮想物体移動インターフェース１４０の位置姿勢を取得する。仮想物体移動インターフェース１４０の位置姿勢の取得方法については様々な方法があり、例えば、以下のような方法を用いることができる。
【００２３】
先ず、仮想物体移動インターフェース１４０に磁気センサを取り付けておき、この磁気センサでもって、センサ座標系における自身の位置姿勢を計測する。この場合、仮想物体位置姿勢制御部１０５は、仮想物体移動インターフェース１４０から出力される「仮想物体移動インターフェース１４０のセンサ座標系における位置姿勢を示す信号」を受け、これをデータとして取得する。
【００２４】
また、画像入力部１０２が画像出力部１３４から受けた画像を用いて仮想物体移動インターフェース１４０の位置姿勢を求めることで、この位置姿勢を取得する方法もあるが、何れにせよ、仮想物体位置姿勢制御部１０５は、仮想物体移動インターフェース１４０の位置姿勢を取得する。
【００２５】
また、仮想物体位置姿勢制御部１０５は、仮想空間中に配置する複数の仮想物体のそれぞれの位置や姿勢のデータを保持しており、仮想物体移動インターフェース１４０の位置姿勢を取得すると、この仮想物体移動インターフェース１４０に関連付けられた仮想物体の位置姿勢を、取得した位置姿勢でもって更新する処理を行う。
【００２６】
仮想物体移動インターフェース１４０に関連付けられていない仮想物体についてはその位置姿勢を固定させておいても良いし、予め定められた運動規則に従って位置姿勢を更新するようにしても良い。何れにせよ、仮想物体移動インターフェース１４０に関連付けられている仮想物体、関連付けられていない仮想物体のそれぞれの位置姿勢はこの仮想物体位置姿勢制御部１０５によって管理されている。
【００２７】
仮想物体位置姿勢記録部１０８には、カメラ位置姿勢取得部１９０が取得した視点の位置姿勢、仮想物体位置姿勢制御部１０５が管理する各仮想物体の位置姿勢が順次入力されるので、入力された視点の位置姿勢、各仮想物体の位置姿勢を、現在時刻と共にセットにして記録する処理を行う。
【００２８】
仮想物体干渉検出部１０７は、仮想物体位置姿勢制御部１０５が管理している「各仮想物体の位置姿勢」を参照し、仮想物体同士の衝突を検知する処理を行う。例えば、仮想物体移動インターフェース１４０に関連付けられた仮想物体が、関連付けられていない仮想物体と衝突しているのかをチェックする。仮想物体同士が衝突しているのか否かをチェックする処理については周知のものであるので、詳細な説明は省略するが、例えば、仮想物体同士の位置間の距離が所定距離以内であれば衝突していると判定するようにしても良いし、仮想物体がポリゴンでもって構成されている場合には、ポリゴン毎に交差判定を行い、交差しているポリゴンが存在する場合には衝突していると判定するようにしても良い。
【００２９】
そして仮想物体干渉検出部１０７が、衝突している仮想物体が存在していると判断した場合には、その旨を仮想物体位置姿勢記録部１０８、及び画像合成部１０３に通知する。
【００３０】
仮想物体位置姿勢記録部１０８は、衝突している仮想物体を検知した旨の通知を仮想物体干渉検出部１０７から受けると、更に以下の各情報の記録処理を行う。
【００３１】
・  衝突したそれぞれの仮想物体を識別する為の情報（例えば、識別番号などのＩＤ）
・  衝突したそれぞれの仮想物体の衝突部分を示す情報（例えば、衝突しているポリゴンを識別する番号、衝突しているパーツを示す情報）
即ち、仮想物体位置姿勢記録部１０８は常に上記セットデータを記録する処理を行っているのであるが、衝突を検知した旨の通知を仮想物体干渉検出部１０７から受けた場合には、このセットデータに加え、上記２つの情報（「衝突したそれぞれの仮想物体を識別する為の情報」、「衝突したそれぞれの仮想物体の衝突部分を示す情報」）を記録する。
【００３２】
従って、衝突を検知した旨の通知を仮想物体干渉検出部１０７から受けた場合には、仮想物体位置姿勢記録部１０８は、視点の位置姿勢、各仮想物体の位置姿勢、現在時刻、衝突したそれぞれの仮想物体を識別する為の情報、衝突したそれぞれの仮想物体の衝突部分を示す情報、のセットデータを記録する処理を行う。
【００３３】
なお、記録する情報はこれに限定するものではなく、この衝突時における仮想空間の画像を再現するのに必要な情報であればよい。
【００３４】
仮想物体生成部１０６は、先ず、仮想物体位置姿勢制御部１０５が管理するそれぞれの仮想物体の位置姿勢でもって、それぞれの仮想物体を配置する。そして、各仮想物体を配置した仮想空間を、カメラ位置姿勢取得部１９０が取得した位置姿勢を有する視点から見た場合に見える画像を生成する処理を行う。なお、所定の位置姿勢を有する視点から見える仮想空間の画像を生成するための処理については周知のものであるので、これに関する説明は省略する。
【００３５】
仮想物体生成部１０６が生成した仮想空間の画像は画像合成部１０３に出力する。画像合成部１０３は、画像入力部１０２から受けた現実空間の画像上に、仮想物体生成部１０６が生成した仮想空間の画像を重畳させることで、複合現実空間の画像を生成し、画像出力部１０４によってビデオシースルー型ＨＭＤ１３２の画像入力部１３５に出力する。画像入力部１３５は受けた複合現実空間の画像を表示部１３６に表示するので、ビデオシースルー型ＨＭＤ１３２を頭部に装着した観察者の眼前には複合現実空間の画像が表示されることになる。
【００３６】
一方、画像合成部１０３は、衝突している仮想物体を検知した旨の通知を仮想物体干渉検出部１０７から受けると、生成した複合現実空間の画像を画像保存部１１０に記録する処理を行う。
【００３７】
即ち、システム制御部１０１は、視点から見える仮想空間の画像を生成し、これを視点から見える現実空間の画像上に重畳させてビデオシースルー型ＨＭＤ１３２に出力する処理を行う一方で、仮想物体同士で衝突が生じた場合には、この衝突の様子を示す画像を再現する為に必要な情報を記録する。
【００３８】
ここで、仮想物体同士の衝突について説明する。図２は、仮想物体同士の衝突を説明するために例として用いる２つの仮想物体を示す図である。同図において２０２，２０３は共に仮想物体であり、仮想物体位置姿勢制御部１０５が管理する位置姿勢でもって配置される。以下の説明では、仮想物体２０３は、仮想物体移動インターフェース１４０に関連付けられているとする。即ち、仮想物体２０３は仮想物体移動インターフェース１４０の位置姿勢でもって配置されるものであり、観察者がこの仮想物体移動インターフェース１４０を手に持ってその位置姿勢を変化させると、それに追従して仮想物体２０３の位置姿勢も変化する。また、仮想物体２０２の位置姿勢は固定されているものとする。
【００３９】
図３は、図２に示した２つの仮想物体の衝突について説明する図である。ここでは、仮想物体２０３が、図３（ａ）→図３（ｂ）→図３（ｃ）→図３（ｄ）に示す順に、その位置を移動させたとする。そして、図３（ｂ）に示す時点、図３（ｃ）に示す時点で、仮想物体２０３は仮想物体２０２と衝突したとする。
【００４０】
この場合、仮想物体位置姿勢記録部１０８は先ず、図３（ｂ）に示した状態における仮想物体２０２，２０３のそれぞれの位置姿勢、衝突部分を示す情報、視点の位置姿勢、現在時刻、仮想物体２０２，２０３を識別する為の情報、を記録すると共に、画像合成部１０３は、図３（ｂ）に示した画像を画像保存部１１０に記録する処理を行う。
【００４１】
その後、仮想物体位置姿勢記録部１０８は、図３（ｃ）に示した状態における仮想物体２０２，２０３のそれぞれの位置姿勢、衝突部分を示す情報、視点の位置姿勢、現在時刻、仮想物体２０２，２０３を識別する為の情報、を記録すると共に、画像合成部１０３は、図３（ｃ）に示した画像を画像保存部１１０に記録する処理を行う。
【００４２】
図４は、以上説明した一連の処理、即ち、仮想物体同士の衝突を検知した場合に、この衝突に係る情報を記録するための処理のフローチャートである。
【００４３】
カメラ位置姿勢取得部１９０は順次視点の位置姿勢を取得しているので、仮想物体位置姿勢記録部１０８は、カメラ位置姿勢取得部１９０が取得した位置姿勢を記録する処理を行う（ステップＳ４０１）。続いて、仮想物体位置姿勢記録部１０８は、仮想物体位置姿勢制御部１０５が管理している各仮想物体の位置姿勢を、ステップＳ４０１で記録したデータとセットにして記録する処理を行う（ステップＳ４０２）。なお、ステップＳ４０１，ステップＳ４０２の何れかでは現在時刻もセットにして記録する。
【００４４】
次に、仮想物体干渉検出部１０７は、仮想物体同士の衝突をチェックし（ステップＳ４０３）、仮想物体同士の衝突を検知していない場合には処理をステップＳ４０１に戻すのであるが、検知した場合には処理をステップＳ４０４に進め、検知した旨を仮想物体位置姿勢記録部１０８に通知するので、仮想物体位置姿勢記録部１０８は、干渉に係る情報、即ち本実施形態の場合には、衝突したそれぞれの仮想物体を識別するための情報、それぞれの仮想物体で衝突した部分を示す情報をステップＳ４０１，Ｓ４０２で記録したデータとセットにして記録する処理を行う（ステップＳ４０４）。
【００４５】
次に、仮想物体生成部１０６、画像合成部１０３によって上述のようにして複合現実空間の画像を生成するのであるが、仮想物体干渉検出部１０７から、衝突を検知した旨の通知を受けた場合には、この生成した複合現実空間の画像を画像保存部１１０に記録する処理を行う（ステップＳ４０５）。
【００４６】
そして本処理を終了する指示が入力されない限りは処理をステップＳ４０５を介してステップＳ４０１に戻し、以降の処理を繰り返す。
【００４７】
なお、以上の処理において、ビデオシースルー型ＨＭＤ１３２の代わりに光学シースルー型のＨＭＤを用いても良く、その場合には、システム制御部１０１において画像入力部１０２、画像合成部１０３は省略することができ、仮想物体生成部１０６が生成した仮想空間の画像は画像出力部１０４を介して光学シースルー型ＨＭＤに対して出力されると共に、仮想物体の衝突を検知した旨の通知を受けた場合には、この仮想空間の画像を画像保存部１１０に記録することになる。
【００４８】
［第２の実施形態］
図５は、システム制御部１０１に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【００４９】
５０１はＣＰＵで、ＲＡＭ５０２やＲＯＭ５０３に格納されているプログラムやデータを用いて本コンピュータ全体の制御を行うと共に、システム制御部１０１が行う上記各処理を実行する。
【００５０】
５０２はＲＡＭで、外部記憶装置５０６からロードされたプログラムやデータを一時的に記憶するためのエリア、Ｉ／Ｆ（インターフェース）５０７を介して外部から受信したデータを一時的に記録するためのエリア、ＣＰＵ５０１が各種の処理を実行するために用いるワークエリアなど、各種のエリアを適宜提供することができる。
【００５１】
５０３はＲＯＭで、ブートプログラムや本コンピュータの設定データなどを格納する。
【００５２】
５０４は操作部で、キーボードやマウスなどにより構成されており、本コンピュータの操作者が操作することで、各種の指示をＣＰＵ５０１に対して入力することができる。
【００５３】
５０５は表示部で、ＣＲＴや液晶画面などにより構成されており、ＣＰＵ５０１による処理結果を画像や文字などでもって表示することができる。
【００５４】
５０６は外部記憶装置であって、ハードディスクドライブ装置に代表される大容量情報記憶装置であって、ここにＯＳ（オペレーティングシステム）や、ＣＰＵ５０１に、上記システム制御部１０１が行う上記各処理を実行させるためのプログラムやデータが保存されており、これらはＣＰＵ５０１による制御に従って適宜ＲＡＭ５０２にロードされる。
【００５５】
５０７はＩ／Ｆであって、ここに上記ビデオシースルー型ＨＭＤ１３２や仮想物体移動インターフェース１４０が接続されることになる。なお、ビデオシースルー型ＨＭＤ１３２や仮想物体移動インターフェース１４０の位置姿勢の取得方法によっては、このＩ／Ｆ５０７には更にデバイス（例えば磁気センサの制御装置、磁気センサ本体）を接続する必要がある。
【００５６】
５０８は上述の各部を繋ぐバスである。
【００５７】
即ち、図５に示した構成を備えるコンピュータを上記システム制御部１０１に適用する場合、図１に示したシステム制御部１０１を構成する各部において、情報を記録するためのメモリとしてはＲＡＭ５０２や外部記憶装置５０６が用いられ、それ以外の部分（画像入力部１０２、画像合成部１０３、画像出力部１０４、仮想物体位置姿勢制御部１０５、仮想物体生成部１０６、仮想物体干渉検出部１０７、仮想物体位置姿勢記録部１０８、カメラ位置姿勢取得部１０９）については、プログラムでもって構成し、これを外部記憶装置５０６からＲＡＭ５０２に適宜ロードし、ロードしたプログラムをＣＰＵ５０１が実行することで、ＣＰＵ５０１は、画像入力部１０２、画像合成部１０３、画像出力部１０４、仮想物体位置姿勢制御部１０５、仮想物体生成部１０６、仮想物体干渉検出部１０７、仮想物体位置姿勢記録部１０８、カメラ位置姿勢取得部１０９の各部の上記動作を実行することになる。
【００５８】
［その他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体（または記憶媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【００５９】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム（ＯＳ）などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６０】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６１】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【００６２】
【図１】現実空間に仮想空間を重畳させた複合現実空間を観察者に体感させるためのシステムの機能構成を示すブロック図である。
【図２】仮想物体同士の衝突を説明するために例として用いる２つの仮想物体を示す図である。
【図３】図２に示した２つの仮想物体の衝突について説明する図である。
【図４】仮想物体同士の衝突を検知した場合に、この衝突に係る情報を記録するための処理のフローチャートである。
【図５】システム制御部１０１に適用可能なコンピュータのハードウェア構成を示すブロック図である。
【図１】
2007004713.tif 000003
【図２】
2007004713.tif 000004
【図３】
2007004713.tif 000005
【図４】
2007004713.tif 000006
【図５】
2007004713.tif 000007