説明

画像処理方法、画像処理装置

【課題】 仮想物体同士で干渉する場合に、この干渉している領域の大きさや形状などをユーザに通知するための技術を提供すること。
【解決手段】 所定の視点から見える仮想物体201の画像、仮想物体202の画像を生成する際、仮想物体201が仮想物体202と干渉している場合には、仮想物体201における干渉部分が可視可能なように仮想物体201の画像、仮想物体202の画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、仮想物体の画像を生成して表示する為の技術に関するものであり、特に仮想物体同士で干渉する場合に、この干渉領域を処理する為の技術に関するものである。
【背景技術】
【0002】
近年、三次元CADを用いて製品設計や、組立性のシミュレーションを行う事例が増えているが、部品点数が多い、あるいは複雑な部品で構成されている場合、製品を組み立てる際の組立操作や部品点数が膨大になってしまい、設計段階で他の部品との干渉を見落としてしまい、組み立てられない、あるいは部品の移動において干渉が発生してしまい所望の動作を得ることが出来なくなってしまうという問題点を有している。
【0003】
通常、三次元CADを用いた設計では、設計された部品情報を基に、組み立てた状態で干渉チェックを行い、干渉の発生の有無を確認することで干渉しないように部品の移動、形状変更等を行い、部品が干渉しないようにする。部品の移動による干渉を確認する際は、移動物体をあるステップごとに移動させ、その都度干渉チェックを行い、部品の干渉が発生していないかを確認する。
【0004】
このようなステップごとに離散的な状態を定義し、干渉チェックを行う方法とは別に、特許文献1に開示されているような物体移動シミュレーション装置もある。この物体移動シミュレーション装置は、移動する物体の移動経路を定義し、移動する物体の移動経路中で移動する物体以外の被観察物体との最短距離を表示し、また干渉が発生したときには干渉点を中心とした半透明な球を表示することで干渉点を観察しやすくする例を開示している。
【特許文献1】特開平11-184898号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら従来例にて開示されている方法では、干渉点を中心とする双方の物体の最大外形を内包する球を表示するという構成になっているので、干渉領域の大きさ、形状等を把握することができないという問題点を有している。
【0006】
本発明は以上の問題に鑑みて成されたものであり、仮想物体同士で干渉する場合に、この干渉している領域の大きさや形状などをユーザに通知するための技術を提供することを目的とする。
【課題を解決するための手段】
【0007】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【0008】
即ち、仮想空間内に配置された第1の仮想物体が、当該仮想空間内に配置された前記第2の仮想物体と干渉しているのか否かを判断する判断工程と、
所定の視点から見える前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する際、前記判断工程で干渉していると判断した場合には、前記第1の仮想物体における干渉部分が可視可能なように前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する生成工程と、
前記生成工程で生成した画像を出力する出力工程と
を備えることを特徴とする。
【0009】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【0010】
即ち、仮想空間内に配置された第1の仮想物体が、当該仮想空間内に配置された前記第2の仮想物体と干渉しているのか否かを判断する判断手段と、
所定の視点から見える前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する際、前記判断手段が干渉していると判断した場合には、前記第1の仮想物体における干渉部分が可視可能なように前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する生成手段と、
前記生成手段が生成した画像を出力する出力手段と
を備えることを特徴とする。
【発明の効果】
【0011】
本発明の構成により、仮想物体同士で干渉する場合に、この干渉している領域の大きさや形状などをユーザに通知することができる。
【発明を実施するための最良の形態】
【0012】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【0013】
[第1の実施形態]
先ず、本実施形態に係るシステムの基本構成について説明する。図1は、本実施形態に係るシステムの基本構成を示すブロック図である。図1に示す如く、本実施形態に係るシステムは、コンピュータ100とHMD101(ヘッドマウントディスプレイ)とで構成されている。
【0014】
先ず、HMD101について説明する。HMD101は姿勢センサ113、画像表示装置111、撮像装置112により構成されている。
【0015】
姿勢センサ113は、HMD101の位置姿勢を計測するものであり、例えば姿勢センサ113が磁気センサである場合には、磁気の発生源から発せられる磁気の変化を検知し、自身の位置姿勢に応じた信号に変換する。そして変換した信号をコンピュータ100に出力する。HMD101の位置姿勢の計測技術については周知のものであるので、ここでの説明は省略する。また、HMD101の位置姿勢の計測方法については特に限定するものではない。
【0016】
画像表示装置111は、HMD101を頭部に装着したユーザの眼前に位置するようにHMD101に取り付けられたものであり、コンピュータ100から出力された画像信号を受け、これに従った画像を表示する。従って、ユーザの眼前にはコンピュータ100から出力された画像信号に従った画像が表示されることになる。この画像信号は、例えばNTSC、あるいはVGA信号等である。
【0017】
撮像装置112は現実空間の動画像を撮像し、撮像した各フレームの画像を順次コンピュータ100に出力する。なお、この撮像装置112は、HMD101を頭部に装着する観察者の観察光軸に略一致させることが好ましい。
【0018】
次に、コンピュータ100について説明する。コンピュータ100は同図に示す如く、入力部105、画像生成モジュール103、画像入力モジュール102、画像合成モジュール104により構成されている。
【0019】
入力部105は、各種の指示を本コンピュータ100に入力するためのものである。画像生成モジュール103は、姿勢センサ113から得られる位置姿勢情報を用いて、HMD101の位置姿勢(以下、視点の位置姿勢と呼称する場合がある)から見える仮想空間の画像を生成する処理を行う。また、この仮想空間内には1以上の仮想物体が存在し、この仮想物体の位置や姿勢を移動させるなど、仮想空間に対する操作は入力部105を介して入力される。この入力はコンピュータ100の操作者が行うようにしても良いし、仮想空間内の変化を予め記述したデータを予めコンピュータ100内に記憶させておき、これを入力するようにしても良い。また、所定の位置姿勢を有する視点から見える仮想空間の画像を生成する処理については周知のものであるので、ここでの説明は省略する。
【0020】
画像入力モジュール102は、撮像装置112から順次出力される現実空間の画像を受け、画像合成モジュール104に出力する。
【0021】
画像合成モジュール104は、画像入力モジュール102から受けた現実空間の画像上に、画像生成モジュール103が生成した仮想空間の画像を重畳させた合成画像を生成する。
【0022】
なお、画像入力モジュール102に、撮像装置112から受けた現実空間の画像に含まれている各オブジェクトの奥行き値を算出する機能を持たせ、画像合成モジュール104が合成画像を生成する際に、仮想物体の奥行き値と現実物体の奥行き値とを比べてそれらの前後判定を行い、後方にある物体の隠れる部分に相当するマスクを生成して、これらの映像を重畳するようにしても良い。
【0023】
図3は、上記コンピュータ100の基本構成を示すブロック図である。
【0024】
501はCPUで、RAM502やROM503に格納されているプログラムやデータを用いて本コンピュータ100全体の制御を行うと共に、コンピュータ100が行う後述の各処理を実行する。
【0025】
502はRAMで、外部記憶装置506からロードされたプログラムやデータを一時的に記憶するためのエリア、I/F507を介して受信したデータを一時的に記憶するためのエリア等を備えると共に、CPU501が各種の処理を実行する際に使用するワークエリアを備える。
【0026】
503はROMで、本コンピュータ100の設定データやブートプログラムなどを格納する。
【0027】
504は操作装置で、キーボードやマウスなどにより構成されており、各種の指示をCPU501に対して入力することができる。
【0028】
505は表示装置で、CRTや液晶画面などにより構成されており、CPU501による処理結果を画像や文字などもでって表示することができる。
【0029】
506は外部記憶装置で、ハードディスクドライブ装置などの大容量情報記憶装置として機能するものであり、ここにOS(オペレーティングシステム)や、コンピュータ100が行う後述の各処理をCPU501に実行させるためのプログラムやデータが保存されており、これらの一部若しくは全部はCPU501の制御に従ってRAM502にロードされ、CPU501による処理対象となる。なお、このデータには、仮想空間を構成する各仮想物体を描画するために必要なデータ(例えば仮想物体がポリゴンにより構成されているのであれば、各ポリゴンの頂点の位置データ、各ポリゴンの法線データ、テクスチャデータなど)が含まれている。
【0030】
507はI/Fで、ここに上記HMD101が接続され、このI/F507を介してコンピュータ100はHDD130とデータ通信を行うことができる。
【0031】
508は上述の各部を繋ぐバスである。
【0032】
次に、上記構成を備えるコンピュータ100が行う処理、即ち、仮想物体同士が干渉した(一方の仮想物体の一部が他方の仮想物体内にめり込む)場合に、この干渉部分を通知する処理について説明する。
【0033】
図2は、仮想物体同士の干渉について説明する図である。図2(a)に示す如く、仮想空間内には2つの仮想物体201,202が存在し、且つ仮想物体201は同図矢印で示す方向に移動しているものとする。この移動はコンピュータ100の操作者が操作装置504を用いて操作するようにしても良いし、プログラムの実行に従って行うようにしても良い。
【0034】
そして仮想物体201はこのような移動を続けると、図2(b)に示す如く、仮想物体202と衝突(干渉)する事になる。このとき、仮想物体201において仮想物体202と干渉している部分は仮想物体202の描画により見えなくなってしまっており、当然干渉部分の形状やサイズは推測でしか把握し得ない。そこで本実施形態では、仮想物体201の干渉部分以外、即ち、仮想物体201における非干渉部分、及び仮想物体202を半透明状態にする。
【0035】
その結果、仮想物体201における非干渉部分、及び仮想物体202を半透明状態にした仮想物体201、仮想物体202を視点から見た場合に見える画像を生成すると、図2(c)に示す如く、この干渉部分203が可視可能となり、HMD101を頭部に装着しているユーザは、この干渉部分のサイズや形状などを把握することができる。なお同図では半透明状態にある部分は点線でもって示している。
【0036】
図4は、以上説明した、仮想物体同士で干渉した場合に、干渉部分以外を半透明にした画像を生成し、これを現実空間の画像上に合成してHMD101の表示装置111に出力する一連の処理のフローチャートである。なお、同図のフローチャートに従った処理をCPU501に実行させるためのプログラムやデータは、外部記憶装置506に保存されており、これをCPU501の制御に従ってRAM502にロードし、これを用いてCPU501が処理を実行することで、コンピュータ100は以下説明する各処理を実行することになる。ここでは干渉の判定に用いる仮想物体として図2に示した仮想物体201、202を用いる。
【0037】
先ず、撮像装置112から現実空間の各フレームの画像が順次入力されるので、CPU501はこれを順次RAM502に取得する(ステップS401)。次に、姿勢センサ113が計測した計測値(視点の位置姿勢情報)がI/F507を介して本コンピュータ100に入力されるので、CPU501はこれをRAM502に取得する(ステップS401)。なお、ステップS401,S402における処理はこの順に実行されることに限定するものではなく、例えば、それぞれ平行して行うようにしても良い。
【0038】
次に、CPU501は、仮想物体201において仮想物体202と干渉部分があるのか否かをチェックする(ステップS403)。このチェック処理については周知のものであるが、例えば、仮想物体201,202が共にポリゴンにより構成されている場合には、仮想物体201を構成する各ポリゴンについて、仮想物体202の外部に位置するのか外部に位置するのかをチェックする。ポリゴンが所定の領域の内部にあるのか外部にあるのかをチェックする為の処理については周知のものであるので、これに関する説明は省略する。
【0039】
このようにして、仮想物体201が仮想物体202と干渉しているのかを判定することができると共に、干渉していればその干渉部分の特定を行うことができる。
【0040】
そして仮想物体201が仮想物体202と干渉している場合には処理をステップS404に進め、仮想物体201において非干渉部分、及び仮想物体202を半透明状態にする(ステップS404)。即ち、仮想物体201を構成する各ポリゴンのうち、仮想物体202の外部に位置するものについてはそのポリゴンに設定されたα値を制御して、透明度を上げる。また、仮想物体202を構成する各ポリゴンについても同様に、α値を制御してポリゴンの透明度を上げる。これにより、仮想物体201において干渉部分以外を半透明状態にすることができる。
【0041】
そして、ステップS402で取得した位置姿勢情報を用いて、この位置姿勢を有する視点から見える仮想物体201、仮想物体202の画像(仮想空間の画像)を生成する(ステップS405)。そして生成した仮想空間の画像を先にステップS401で取得した現実空間の画像上に重畳させて合成画像を生成し(ステップS406)、生成した合成画像をI/F507を介してHMD101の表示装置111に出力する(ステップS407)。
【0042】
以上の説明により、本実施形態によって、干渉部分が可視可能となり、HMD101を頭部に装着しているユーザは、この干渉部分のサイズや形状などを把握することができる。
【0043】
なお、本実施形態では、干渉部分をポリゴン単位で特定する場合について説明したが、これに限定されるものではなく、仮想物体201が複数のパーツにより構成されている場合にはパーツ単位でもって特定するようにしても良い。例えばあるパーツを構成するポリゴンのうち、過半数以上が仮想物体202内に位置する場合にはこのパーツを干渉部分とする。
【0044】
また、本実施形態では干渉部分以外を半透明にすることで干渉部分を可視可能としていたが、更に干渉部分の表示色を異ならせるようにしても良いし、点滅させるようにしても良い。
【0045】
また、仮想空間の画像を生成する際には、仮想物体同士が干渉している/していないに関わらず、全ての仮想物体を不透明状態でもって描画することで、視点から見た仮想空間の画像を生成し、これを現実空間の画像上に合成した画像を生成する(即ち、図4のフローチャートにおいてステップS403,S404を省いた処理を行う)。そして、本実施形態で生成した「干渉していない部分以外を半透明状態にすることで生成される仮想空間の画像」を所定サイズに縮小してこの合成画像上に配置するようにしても良い。その結果、仮想物体同士で干渉が生じた場合にのみ、本実施形態で生成した「干渉していない部分以外を半透明状態にすることで生成される仮想空間の画像」の縮小画像が合成画像上に配置されることになる。
【0046】
[第2の実施形態]
本実施形態では、干渉部分の近傍に視点の視線に略垂直な仮想平面を設け(干渉部分から視点の視線に沿って視点の位置側に所定距離だけ移動した位置に、視線と略垂直に仮想平面を設け)、この仮想平面よりも視点側は、仮想物体の描画は行わないようにする。これにより、この仮想平面よりも向こう側(仮想平面を挟んで視点とは逆の側)しか仮想空間の画像は描画しないので、より高速に仮想空間の画像生成が行えると共に、HMD101を頭部に装着するユーザに干渉部分をより明瞭に提示することができる。
【0047】
また、以上の各実施形態では生成した仮想空間の画像を現実空間の画像に合成して出力するとしたが、これに限定されるものではなく、生成した仮想空間の画像のみを出力するようにしても良い。即ち、VR(バーチャルリアリティー)の技術分野で用いるようにしても良い。
【0048】
[その他の実施形態]
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体(または記憶媒体)を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記録媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記録媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記録した記録媒体は本発明を構成することになる。
【0049】
また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0050】
さらに、記録媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【0051】
本発明を上記記録媒体に適用する場合、その記録媒体には、先に説明したフローチャートに対応するプログラムコードが格納されることになる。
【図面の簡単な説明】
【0052】
【図1】本発明の第1の実施形態に係るシステムの基本構成を示すブロック図である。
【図2】仮想物体同士の干渉について説明する図である。
【図3】コンピュータ100の基本構成を示すブロック図である。
【図4】仮想物体同士で干渉した場合に、干渉部分以外を半透明にした画像を生成し、これを現実空間の画像上に合成してHMD101の表示装置111に出力する一連の処理のフローチャートである。

【特許請求の範囲】
【請求項1】
仮想空間内に配置された第1の仮想物体が、当該仮想空間内に配置された前記第2の仮想物体と干渉しているのか否かを判断する判断工程と、
所定の視点から見える前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する際、前記判断工程で干渉していると判断した場合には、前記第1の仮想物体における干渉部分が可視可能なように前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する生成工程と、
前記生成工程で生成した画像を出力する出力工程と
を備えることを特徴とする画像処理方法。
【請求項2】
前記干渉部分は、仮想物体を構成するポリゴン単位で特定されることを特徴とする請求項1に記載の画像処理方法。
【請求項3】
前記干渉部分は、仮想物体を構成するパーツ毎に特定されることを特徴とする請求項1に記載の画像処理方法。
【請求項4】
前記生成工程では、所定の視点から見える前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する際、前記判断工程で干渉していると判断した場合には、前記第1の仮想物体における非干渉部分、及び前記第2の仮想物体を半透明にして前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成することを特徴とする請求項1乃至3の何れか1項に記載の画像処理方法。
【請求項5】
更に、前記干渉部分から前記視点の視線に沿って前記視点の位置側に所定距離だけ移動した位置に、当該視線と略垂直に仮想平面を設定する設定工程と、
前記仮想平面よりも前記視点の位置側の画像生成は行わないように、前記生成工程による処理を制御する制御工程と
を備えることを特徴とする請求項1乃至4の何れか1項に記載の画像処理方法。
【請求項6】
仮想空間内に配置された第1の仮想物体が、当該仮想空間内に配置された前記第2の仮想物体と干渉しているのか否かを判断する判断手段と、
所定の視点から見える前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する際、前記判断手段が干渉していると判断した場合には、前記第1の仮想物体における干渉部分が可視可能なように前記第1の仮想物体の画像、前記第2の仮想物体の画像を生成する生成手段と、
前記生成手段が生成した画像を出力する出力手段と
を備えることを特徴とする画像処理装置。
【請求項7】
コンピュータに請求項1乃至5に記載の画像処理方法を実行させることを特徴とするプログラム。
【請求項8】
請求項7に記載のプログラムを格納することを特徴とする、コンピュータ読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2006−215750(P2006−215750A)
【公開日】平成18年8月17日(2006.8.17)
【国際特許分類】
【出願番号】特願2005−26880(P2005−26880)
【出願日】平成17年2月2日(2005.2.2)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】