(57)【要約】【課題】  仮想物体と対象物体との干渉について、干渉した部位の形状を示す干渉情報を提示する。【解決手段】  現実の空間を撮像した撮像画像を取得する画像取得手段と、複数の仮想物体のモデルデータを記憶する記憶手段と、前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得手段と、前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士の干渉を判定する干渉判定手段と、前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位の輪郭を干渉情報として記録する干渉情報記録手段と、前記撮像画像と前記複数の仮想物体の画像と前記干渉部位の輪郭を示す画像とが合成された合成画像を生成する生成手段と、前記生成された合成画像を出力する出力手段とを備える。【選択図】  図１
2020091928.tif 000002
【特許請求の範囲】
【請求項１】
現実の空間を撮像した撮像画像を取得する画像取得手段と、
複数の仮想物体のモデルデータを記憶する記憶手段と、
前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得手段と、
前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士が干渉したかを判定する干渉判定手段と、
前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位の輪郭を干渉情報として記録する干渉情報記録手段と、
前記撮像画像と前記複数の仮想物体の画像と前記干渉部位の輪郭を示す画像とが合成された合成画像を生成する生成手段と、
前記生成された合成画像を出力する出力手段とを備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記画像を撮像する撮像装置の位置姿勢を計測する撮像部位置姿勢計測手段と、
前記撮像装置の位置姿勢に基づいて、前記仮想物体の画像および前記干渉部位の輪郭を示す情報を生成する第２の生成手段とを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記干渉部位は、複数の前記仮想物体が干渉しているときのモデルデータの交線であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
更に、前記干渉部位の輪郭を示す画像を生成する干渉情報画像生成手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記干渉情報画像生成手段は、前記干渉情報記録手段を参照して前記画像よりも過去に撮像された画像における干渉の履歴を示す画像を生成することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記干渉情報画像生成手段は、前記干渉の履歴に含まれるデータの個数が閾値を超える場合は、最も古い過去データから削除する削除手段を備えることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記干渉情報画像生成手段は、前記仮想物体の前記画像における仮想物体の位置と前記画像よりも以前に撮像された過去の画像における仮想物体との距離が閾値よりも大きい場合に、前記干渉の履歴に含めることを特徴とする請求項５または６に記載の情報処理装置。
【請求項８】
前記位置は、前記仮想物体のモデルデータの全ての３次元頂点位置の平均を算出した重心位置であることを特徴とする請求項７に記載の情報処理装置。
【請求項９】
更に、前記位置姿勢取得手段が取得する位置姿勢の信頼度を導出する導出手段を備え、前記干渉情報記録手段は、前記信頼度が閾値よりも小さい場合には、前記干渉情報を記録しないことを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記干渉判定手段は、更に、前記仮想物体と人体の所定の部位が干渉したかを判定することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記干渉情報記録手段は、干渉が発生したときの画像のフレーム番号、時刻、干渉した仮想物体の識別情報、干渉部位の形状、干渉部位の３次元位置の少なくとも１つの情報を、前記干渉情報として記録することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記出力手段は、ヘッドマウンテッドディスプレイに前記合成画像を出力することを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
現実の空間を撮像した撮像画像を取得する画像取得ステップと、
前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得ステップと、
前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士の干渉を判定する干渉判定ステップと、
前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位の輪郭を干渉情報として記録する干渉情報記録ステップと、
前記撮像画像と前記複数の仮想物体の画像と前記干渉部位の輪郭を示す画像とが合成された合成画像を生成する生成ステップと、
前記生成された合成画像を出力する出力ステップとを備えることを特徴とする情報処理方法。
【請求項１４】
コンピュータを、請求項１乃至１２のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感システムに関する。
【背景技術】
【０００２】
近年、設計・製造分野においてプロトタイプを用いた評価の期間短縮、費用削減が求められている。ＣＡＤ（コンピュータ支援設計）システムで作成した設計（形状・デザイン）データを用いて、組み立てやすさやメンテナンス性の仮想評価をするための複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）システムが導入されている。代表的な評価項目として、工具を目的の部品以外に干渉させずに作業ができるかを、現実の部品が存在しなくても仮想部品のみで評価するというものがある。
このような評価を行うための複合現実感システムでは、体験者が仮想物体（例えば工具）を動かして別の仮想物体（部品）に干渉させたかどうか、または発生した場合は、どこでどのような干渉痕が残ったのかを提示する機能が求められる。
特許文献１では、干渉が発生した位置群をメモリに記録し、メモリ上の位置群を時系列ごとに線分で繋いでいくことで軌跡を表示することを開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−３０２０３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示される方法では順次線分を繋ぐだけであり、どの程度の干渉痕が部品に残ったのかを判断することは困難である。
本発明は上記課題に鑑みてなされたものであり、仮想物体と対象物体との干渉について、干渉した部位の形状を示す干渉情報を提示することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本願発明の情報処理装置は、例えば、現実の空間を撮像した撮像画像を取得する画像取得手段と、複数の仮想物体のモデルデータを記憶する記憶手段と、前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得手段と、前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士が干渉したかを判定する干渉判定手段と、前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位の輪郭を干渉情報として記録する干渉情報記録手段と、前記撮像画像と前記複数の仮想物体の画像と前記干渉部位の輪郭を示す画像とが合成された合成画像を生成する生成手段と、前記生成された合成画像を出力する出力手段とを備える。
【発明の効果】
【０００６】
本発明によれば、仮想物体と対象物体との干渉について、干渉した部位の形状を示す干渉情報を提示することが可能になる。
【図面の簡単な説明】
【０００７】
【図１】第１の実施形態における干渉表示装置の構成を示すブロック図である。
【図２】第１の実施形態における仮想物体２０１、２０２、現在の干渉部位２０３、過去の干渉部位２０６を示す模式図である。
【図３】変形例１における干渉部位の表示方法を示す模式図である。
【図４】第１の実施形態の干渉表示装置の処理の詳細を示すフローチャートである。
【図５】第１の実施形態の干渉情報保持部１１１の処理の詳細を示すフローチャートである。
【図６】変形例２にかかる情報処理装置の処理フローチャートである。
【図７】第１の実施形態における情報処理装置のハードウェア構成の例を示す図である。
【図８】第１の実施形態の干渉情報のデータセットの例を示す表である。
【図９】変形例１の干渉情報保持部１１１の処理の詳細を示すフローチャートである。
【図１０】変形例１の仮想空間の画像の描画結果を示す模式図である。
【発明を実施するための形態】
【０００８】
（第１の実施形態）
以下、添付図面を参照して、本発明を適用した好適な実施例に従って詳細に説明する。
【０００９】
図７は、本実施例を実現するためのハードウェアを示すブロック図である。
【００１０】
図７は、本実施形態における情報装置１００のハードウェア構成図である。同図において、ＣＰＵ７１０は、バス７００を介して接続する各デバイスを統括的に制御する。ＣＰＵ７１０は、読み出し専用メモリ（ＲＯＭ）７２０に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム（ＯＳ）をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はＲＯＭ７２０に記憶されており、ランダムアクセスメモリ（ＲＡＭ）７３０に一時記憶され、ＣＰＵ７１０によって適宜実行される。また、入力Ｉ／Ｆ７４０は、外部の装置（撮像装置や操作装置など）から情報処理装置１０１で処理可能な形式で入力信号として入力する。また、出力Ｉ／Ｆ７５０は、外部の装置（例えばＨＭＤなどの表示装置）へ処理可能な形式で出力信号として出力する。
【００１１】
図１は本実施形態における情報処理装置の機能構成を示すブロック図である。
【００１２】
本実施形態における情報処理装置１００は、ＨＭＤ３０１に接続されている。情報処理装置１００は、ＨＭＤ３０１内の撮像部１０７から取り込んだ現実空間の画像と仮想空間の画像とを合成し、複合現実感映像としてＨＭＤ３０１内の表示部１１０に出力する。
【００１３】
撮像部１０７は、現実空間を撮影し、撮像した画像を情報処理装置１００に取り込む。撮影された画像は、合成部１０９にて仮想物体の画像と合成して表示部１１０に合成画像として表示する。本実施形態では、撮像部１０７は、ヘッドマウンテッドディスプレイ３０１（以下、ＨＭＤと称する）に内蔵されているものとする。
【００１４】
表示部１１０は、合成部１０９で描画した合成画像を体験者に提示する。本実施形態では、ＨＭＤ３０１に内蔵されたディスプレイを用いる。
【００１５】
振動提示部１１３は、干渉情報通知部１１２から干渉しているという出力を受けて、体験者（ユーザ）の触覚に干渉したことを知らせる振動を提示する。本実施形態では、振動提示部１１３としては、偏心おもりを先端に取り付けたモーターを回転させるデバイスを用い、該デバイスを体験者の身体の一部に備えつけておく。しかしながら本発明はこれに限られるものではなく、例えば、指先に設置した電極に微弱な電流を流すなど、触覚を刺激する方法であれば適用可能である。
【００１６】
音提示部１１５は、干渉情報通知部１１２から干渉しているという出力を受けて、体験者の聴覚に干渉したことを知らせる音を提示する。本実施形態では、情報処理装置１００とは別体のスピーカを用いるものとする。例えば、ＨＭＤ３０１にヘッドホンを内蔵させて、該ヘッドホンを用いて音を提示してもよい。また、据え置き型のスピーカを利用しても良い。また、情報処理装置１００にスピーカを内蔵しても良い。音の種類は、体験者の聴覚を刺激できるものであればどのような音でもよい。たとえば、所定の波長のビープ音でもよい。
【００１７】
情報処理装置１００は、仮想物体データベース１０１、干渉判定部１０３、仮想物体描画部１０４、干渉部位算出部１０５、位置姿勢取得部１０８、合成部１０９、干渉情報保持部１１１、干渉情報通知部１１２、を備える。
【００１８】
これらの各機能部は、ＣＰＵ７１０が、ＲＯＭ７２０に格納されたプログラムをＲＡＭ７３０に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、ＣＰＵ７１０を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【００１９】
仮想物体データベース１０１は、仮想物体のモデルを保持するデータベースである。仮想物体のモデルは、例えば形状、表示色、初期位置姿勢を含んでいる。本実施形態では、図２（ａ）に示すような円柱と直方体の２つの形状の仮想物体２０１、２０２を例に説明する。
【００２０】
位置姿勢取得部１０８は、撮像部１０７から取り込んだ画像（画像取得）に基づいて、現実空間の撮像部１０７の位置姿勢（即ち、ＨＭＤ３０１の位置姿勢）と仮想物体の位置姿勢を推定する。本実施形態では、撮像部１０７の位置姿勢を体験者の視点位置姿勢とする。撮像部１０７の位置姿勢の算出は、現実空間に配置されたマーカを撮像した画像に基づいて行われる（撮像部位置姿勢計測）。また、仮想物体の位置姿勢は、例えば、仮想物体に対応する現実物を予め現実空間に配置する。そして、現実物にマーカを貼りつけておき、該マーカを撮像した画像に基づいて現実物の位置姿勢位置姿勢を推定し、該推定された現実物の位置姿勢を該現実物に対応する仮想物体の位置姿勢として推定する。そして、体験者が現実物を動かすことによって、仮想物体の位置姿勢を変更することができる。ただし、本発明では体験者の視点位置姿勢や仮想物体の位置姿勢を取得する方法はこれに限定されない。例えば、現実物に三次元センサを貼りつけまたは内蔵させても用いてもよいし、市販のモーションキャプチャシステムを利用して撮像装置１０７に対する仮想物体の位置姿勢を計測することも可能である。また、仮想物体に対応する現実物を用意しなくても、予め設定された位置に仮想物を表示し、コントローラ等を用いて仮想物体を移動させてもよい。
【００２１】
干渉判定部１０３は、仮想物体の位置姿勢および形状に基づいて、複数の仮想物体同士の干渉の有無を判定する。２つの仮想物体同士の干渉判定は、以下の手順で実現する。まず、それぞれの仮想物体から三角形ポリゴンを一つずつ取り出し、その三角形ポリゴン同士が交差しているかどうかを判定する。これを全ての三角形ポリゴンの組み合わせに対して行い、一つでも交差している場合は仮想物体同士が干渉していると判定する。さらに、この処理を全ての仮想物体の組み合わせに対して行う。ただし、本発明における干渉判定部１０３の実現方法はこれに限るものではない。
【００２２】
干渉部位算出部１０５は、干渉判定部１０３で干渉していると判定された仮想物体から、干渉部位を算出する。本実施形態では交差している三角形ポリゴンの集合と、交線の集合とを干渉部位（即ち、干渉した部位の輪郭）として算出する。すなわち、ただし、本発明における干渉部位の表現方法はこれに限るものではない。
【００２３】
干渉情報保持部１１１は、干渉部位算出部１０５で算出された干渉情報を保持する（干渉情報記録）。干渉情報の一例を図８に示す。
【００２４】
フレーム番号は、撮像装置１０７が撮像した画像が更新されるたびに１個カウントアップされる番号である。
【００２５】
干渉対象物は、干渉している仮想物体を特定するモデルの識別情報である。本実施形態では、仮想物体の名称を登録している。時刻は、実際に干渉が発生したと判定した時刻である。
【００２６】
頂点数は、干渉している仮想物体２０１と仮想物体２０２が干渉しているポリゴンの交線の端点の数である。
【００２７】
頂点位置は、交線の端点のすべての３次元位置である。この頂点位置を線分として描画すると、図２（ｂ）において仮想物体２０１と２０２の干渉部位を表わす円の線２０３となる。
【００２８】
色と線幅は、干渉情報を仮想物体の画像として描画する場合に使用する描画属性である。なお、描画属性である色と線幅は、干渉したときに生成されることに限定されるものではなく、事前にパラメータを設定しておけばよい。
【００２９】
図８で示す表はフレーム番号ごとに１つのデータセットとして履歴が保持される。なお、本発明は、干渉情報をフレーム番号でデータセットとして区分することに限定されるものではなく、時刻をキーにしてデータセットを作ってもよい。また、干渉対象物の２つの仮想物体の組み合わせごとにデータセットを作ってもよい。
【００３０】
仮想物体描画部１０４は、干渉情報と仮想物体２０１、２０２を描画した画像を生成する。より具体的には、仮想物体データベースに保存されたモデルデータや干渉情報保持部１１１に保存された干渉情報に基づいて画像を生成する。
【００３１】
まず、仮想空間の画像を生成するための仮想視点の位置姿勢を位置姿勢取得部１０８から取得する。仮想視点の位置姿勢は、例えば、基準とする世界座標系における撮像部１０７の位置姿勢情報を入力すればよい。また、仮想物体２０１と２０２および干渉情報の３次元頂点位置は、位置姿勢取得部１０８で取得された位置姿勢に基づいて更新する。更新した仮想物体と干渉情報の３次元頂点は、仮想視点に基づいて設定された投影面に投影される。投影後のポリゴン・線分の描画処理は、一般的な３次元画像生成における描画処理と同じであるため詳細な説明は省略する。本実施形態における、仮想物描画部１０４で生成された仮想空間の画像を図２（ｃ）に示している。仮想物体２０１、２０２およびこれまで蓄積された干渉情報に基づく干渉部位２０６が描画される（干渉情報画像生成）。本実施形態では、干渉部位の輪郭を描画しているが、輪郭の内部についても特定色を重畳する等して判別しやすくしてもよい。
【００３２】
合成部１０９は、撮像装置１０７から取り込んだ現実空間の画像と、仮想物体描画部１０４で描画された仮想空間の画像とを合成する。合成処理は、実写画像の上に仮想空間の画像を撮像装置１０７の現実空間の画像の上に描画することにより。すなわち、仮想物体２０１、２０２の領域以外の画素は、現実空間画像の画素が表示される合成画像となる。  
【００３３】
干渉情報通知部１１２は、干渉情報保持部１１１の情報に基づいて、現時点における干渉状態を他の通知手段に通知する。本実施形態では、仮想物体描画部１０４で仮想物体２０１、２０２と干渉情報を視覚的に表示することによって干渉しているか否かを明示的に体験者に提示している。しかし、視覚的な表示のみでは、干渉している場所が撮像装置１０７の視野外である場合は、干渉していることを体験者が知覚できない。干渉しているか否かを聴覚と触覚で提示すると、視野外で起こった干渉を体験者が知覚することができる。
【００３４】
図２は本実施形態における仮想空間の画像の例を示した模式図である。また、図４は、本実施形態の処理の詳細を示すフローチャートである。
【００３５】
図２および図４を用いて、仮想物体２０１、２０２が配置されている状況を例に本実施形態の処理の詳細を説明する。
【００３６】
ステップＳ８０１では、仮想物体描画部１０４は、仮想物体データベース１０１から仮想物体２０１、２０２のデータを読み込む。
【００３７】
ステップＳ８０２では、位置姿勢取得部１０８は、撮像部１０７で撮影された現実空間の画像を取得する。そして、位置姿勢取得部１０８は、取得した画像に基づいて撮像部１０７の位置姿勢情報を算出する。ステップＳ８０２以降の処理は、撮像部１０７から現実空間の画像が更新されるまで処理が一時停止され、更新があった場合に後段の処理を実行する。ただし、本実施形態は、撮像部１０７の画像更新ごとに処理をすることに限定されるものではなく、例えば、位置姿勢取得部１０８で新たな位置姿勢が取得されたタイミングで処理を実行する方法でも適用可能である。
【００３８】
ステップＳ８０３は、位置姿勢取得部１０２は、位置姿勢情報を干渉判定部１０３と仮想物体描画部１０４に送出する。
【００３９】
ステップＳ８０６は、干渉判定部１０３は、ＲＡＭ７０２に格納されている仮想物体２０１、２０２を参照し、仮想物体２０１、２０２を構成するポリゴンごとに交差しているかどうか判定する。
【００４０】
図２（ｂ）は、体験者が仮想物体２０２に対応するマーカを移動させ、仮想物体２０１と仮想物体２０２が干渉した状況を示している。図２（ａ）の状態のときは、ステップＳ８１１に処理を移し、図２（ｂ）の状態のときにＳ８０９に処理を移す。
【００４１】
ステップＳ８０９では、干渉部位算出部１０５が、仮想物体の干渉部位の情報を計算する。
【００４２】
例えば、本実施形態に置いては、図２（ｂ）において、円柱の仮想物体２０２を移動して直方体の仮想物体２０１に干渉させた場合、干渉部位の情報として各ポリゴンの交線の集合として干渉部位２０３が生成される。
【００４３】
ステップＳ８１０では、干渉情報保持部１１１が、仮想物体の組み合わせごとに干渉情報のデータセットを記録する。本実施形態においては、図８に示すような干渉情報を記録する。さらに、このデータセットの記録は、撮像部１０７で撮影された画像が更新されるたびに実行される。すなわち、図８に示す干渉情報は、仮想物体の組み合わせのデータセットに加えて、撮像部１０７で画像が更新される度にデータセットが蓄積されるものとする。ステップＳ８１０の処理の詳細は後述する。
【００４４】
ステップＳ８１１では、仮想物体描画部１０４が仮想物体と干渉部位を仮想空間の画像として描画する。本実施形態においては、仮想物体２０１、２０２は、三角形ポリゴンの情報に基づいて描画される。また、干渉部位は、干渉情報に基づいて２頂点が１つの線分として描画される。また、描画時の線分の色や線幅については、干渉情報を参照して描画される。
【００４５】
図２（ｃ）が仮想物体２０１、２０２と干渉部位２０６を描画した結果を示している。干渉部位２０６には、過去に蓄積した干渉部位の情報も含まれるため、円柱の仮想物体２０２をどのように動かして干渉させたかが、タスクのあとで確認できる。
【００４６】
ステップＳ８１２では、合成部１０９は、撮像部１０７が撮像した現実空間の画像と、仮想空間の画像とを合成して合成画像を生成する。
【００４７】
ステップＳ８１３では、まず表示部１１０は、合成部１０９で合成された合成画像を表示し、ＨＭＤ３０１を装着する体験者に提示する。さらに、振動提示部１１３と音提示部１１５は、干渉情報通知部１１２の情報にしたがって体験者に振動および音を提示する。  
【００４８】
ステップＳ８１５では、体験者から終了コマンドがキーボードなどの入力装置で送信されたかどうかを判定し、終了コマンドがなければステップＳ８０２に処理を移し、終了判定された場合は処理を終了する。
【００４９】
図５は、ステップＳ８１０の干渉情報を記録する処理の詳細を示すフローチャートである。
【００５０】
図２（ｃ）のように過去の干渉部位を重ねて表示すると、干渉部位の強調表示が蓄積されて描画性能が低下したり、不要に強調表示されて見難くなるという課題がある。この課題に対して、本実施形態では、あらかじめ体験者が設定した干渉部位のデータセットの個数の閾値を超えた場合は、一番古い干渉部位のデータセットから消去（削除）していく方法で対応する。図５のフローチャートで詳細を説明する。
【００５１】
ステップＳ９０１では、干渉情報保持部１１１は、過去の干渉情報を参照し、データセット数を集計する。集計したデータセット（過去データセット）数が、予め体験者が設定した閾値を超えた場合は、ステップＳ９０５に処理を移す。閾値を超えない場合はステップＳ９１０に処理を移す。
【００５２】
ステップＳ９０５では、干渉情報保持部１１１は、過去の干渉情報のうち、時刻が一番古いデータセットを検索して消去する。なお、本発明は時刻が一番古いデータセットを消去することに限定されるものではなく、所定の時刻以前のデータセットをすべて消去したり、頂点数の多いデータセットを優先して消去してもよい。
【００５３】
ステップＳ９１０では、干渉情報保持部１１１が干渉部位算出部１０５で算出した現在の干渉情報を新たなデータセットとして追加する。
【００５４】
以上の処理により、仮想物体２０１と２０２が干渉した結果を、過去の干渉部位の情報として現在の視点における仮想空間の画像上で強調表示することにより、タスクを完了したあとに干渉の状況を再確認することができる。さらに、一定のデータセット数を超えないように閾値を設けることで、表示負荷の軽減や干渉部位を見やすく表示することができるようになる。
【００５５】
上記第１の実施形態では、一定のデータセット数を超えないように閾値を設け、超える場合にはメモリから削除する例を示した。しかしながら、メモリから削除は行わずに、表示する画像は含めないようにしてもよい。
【００５６】
（変形例１）
第１の実施形態では、干渉部位として、仮想物体２０１と２０２との干渉部位の表現方法として、ポリゴンの交線を繋いで干渉部位２０６を表現していた。しかし本発明は干渉しているポリゴンの交線を繋いで表示することに限定されるものではなく、別の表現で干渉部位を表現してもよい。
【００５７】
本変形例においては、図３に示すように、干渉部位２０６の表現として仮想物体の形状そのものを干渉した場所に留めて表示する方法を示す。図３は体験者がＨＭＤ３０１を装着して仮想物体の工具３０５を仮想物体のドア３１０に対して近づけるタスクを行う作業を表わした模式図である。
【００５８】
本変形例を実現するための構成は、第１の実施形態の干渉情報保持部１１１の処理を変更すればよい。
【００５９】
第１の実施形態では干渉情報保持部１１１は、干渉情報のデータセットの頂点位置として干渉したポリゴンの交線を記録していた。しかし、本変形例では頂点位置として、体験者３０１が手で動かす仮想物体３０５の形状を表わすポリゴン情報を記録する。しかし、撮像装置１０７で撮影する画像が更新されるごとにデータセットを記録し、すべての干渉部位２０６をドア３１０上に表示すると、数が多すぎて表示が煩雑になる。本変形例では、表示が煩雑にならないように、データセットの重心位置に基づいて表示を制約する方法を図９のフローチャートを用いて示す。
【００６０】
なお、本発明は仮想物体を表わす形状として三角形ポリゴンに限定されるものではなく、例えばモデルデータをパラメトリックに表現する方法でも適用可能である。
【００６１】
図９のフローチャートは、本変形例における図４のステップＳ８１０の処理の詳細を示している。以下、第１の実施形態との差分のみを説明する。
【００６２】
ステップＳ９２５では、干渉情報保持部１１１が、干渉部位算出部１０５で算出した干渉情報のうち、頂点位置の３次元位置の平均を算出して重心位置とする。データセットに関連付けて記憶する。
【００６３】
ステップＳ９３０では、干渉情報保持部１１１が、過去の干渉情報に対応付けられた重心位置群を参照し、干渉情報保持部１１１で算出した重心位置と比較する。干渉情報保持部１１１で算出した重心位置と、過去の重心位置群とを比較して、過去の重心位置群のうち少なくとも１つの重心位置との距離が予め設定した閾値を下回る場合は、干渉情報として追加せずに処理を終了する。すなわち、現在の位置姿勢における工具３０５がドア３１０に干渉した場合、過去の干渉情報で重心位置が近いものがあると追加しないようにする。一方、距離の閾値を上回っている場合は、干渉情報としてデータセットを追加する。
【００６４】
以上のように本変形例における干渉表示方法では、干渉部位をよりわかりやすい表現に置き換えることでタスク後の干渉状況の確認を補助することができる。
【００６５】
上記変形例１では、干渉が発生した位置に近い場合は、現在の干渉部位の情報をデータセットに追加しなかったが、データセットには追加し、表示する画像には含めないようにしてもよい。
【００６６】
（変形例２）
変形例１では、干渉が発生したときの仮想物体の重心位置が、過去の干渉情報において、干渉が発生した位置に近い場合は、現在の干渉部位の情報をデータセットに追加しなかった。しかし、本発明は、干渉部位の空間中の位置に基づいて干渉情報を記録するか否かを判断することに限定されるものではない。
【００６７】
本変形例では、位置姿勢取得部１０８から出力される位置姿勢の信頼度に応じて、干渉情報を記録するか否かを判定する処理について説明する。
【００６８】
撮像画像に映るマーカで仮想物体の位置姿勢を決定する場合において、以下のような状態で位置姿勢計測結果の信頼性が低下する。
（１）マーカが画面上で小さく写っている場合
（２）撮像装置１０７とマーカの間に遮蔽物が入ってマーカが隠される場合
（３）マーカが撮像装置１０７の視野外で写らない場合
また、仮想物体の位置姿勢を位置姿勢センサーにより計測する場合であっても、環境ノイズや計測範囲外になるなど、信頼性が低下する状況が考えられる。
【００６９】
上記のように位置姿勢の計測の信頼性が低下した状態で干渉情報を追加しても、タスク後の確認で過去の干渉状況を正しく判断できないため、干渉情報を記録しないようにする方法を示す。
【００７０】
本変形例を実現するための構成は、変形例１の位置姿勢取得部１０８から干渉情報保持部１１１に位置姿勢の信頼度の情報を入力するようにし、干渉情報保持部１１１の処理で信頼度に応じて干渉情報の記録を判断すればよい。
【００７１】
位置姿勢取得部１０８は、例えば図４のステップＳ８０３の位置姿勢更新の処理において、現在の位置姿勢計測結果の信頼度を保存すればよい。信頼度は、例えば、マーカが認識されていれば１、認識されていなければ０、マーカ領域が撮像装置画像上を占める割合が１０％を下回った場合は０．５と定義する。
【００７２】
干渉情報保持部１１１の処理の詳細を図６に示す。なお、変形例１と同じ番号の処理については説明を省略する。
【００７３】
ステップＳ９１５では、干渉情報保持部１１１は、位置合わせ信頼度を取得し（導出）、信頼度が閾値以下の場合はステップＳ９２０に処理を移す。信頼度が閾値以上であれば、ステップＳ９１０に処理を移す。
【００７４】
ステップＳ９２０では、干渉情報保持部１１１は、仮想物体描画部１０４に対して、現在位置合わせ信頼度が低いために干渉情報を記録しなかったことを伝えるメッセージを表示するように指示する。
【００７５】
仮想物体描画部１０４は、ステップＳ８１１の仮想物体の描画処理に置いて、仮想物体画像よりも前に、メッセージ２５０を表示するように変更すればよい。仮想物体描画部１０４がメッセージ２５０を表示した画像の模式図を図１０に示す。
【００７６】
以上のように本変形例における干渉表示方法では、位置合わせの計測時の信頼度が低い場合は干渉部位記録しないことで正しくない干渉情報を除去し、タスク後の干渉状況の確認を補助することができる。
【００７７】
（変形例３）
第１の実施形態では、仮想物体２０１と２０２を円柱と直方体で表現し、仮想物体の位置姿勢をマーカの位置姿勢に割り当てて、体験者が意図的に手で移動させるようにしていた。
【００７８】
しかし、本発明は仮想物体を手で移動させることに限定されるものではなく、体験者の身体の部位の位置姿勢を計測し、その位置姿勢を仮想物体に割り当てる方法でも適用可能である。
【００７９】
例えば、変形例１のドア３１０に工具３０５を使って作業をするような状況で、体験者の肘や膝などを位置姿勢センサーで計測して、作業中に工具３０５だけではなく、体験者の身体の一部が干渉したこと検知して提示してもよい。
【００８０】
本変形例を実現する構成は、位置姿勢取得部１０８が体験者の膝などの身体の一部の位置姿勢を入力し、干渉判定部１０３と仮想物体描画部１０４に出力すればよい。また、仮想物体データベース１０１には、体験者の身体の部位の形状に応じたモデルデータをあらかじめ記録しておき、干渉判定部１０３や仮想物体描画部１０４に出力すればよい。
【００８１】
以上のように、本変形例では、体験者が意図的に手で動かした仮想物体の干渉状況を確認するだけではなく、作業中に意図せずに当たってしまった人体の部位の干渉状況も確認することができる。
【００８２】
（変形例４）
第１の実施形態では、過去の干渉部位を表わす線分の頂点を図８に示すような頂点位置で保持していた。しかし、本発明は、過去の干渉部位を頂点位置として保持することに限定されるものではなく、干渉が発生した時点で、過去の干渉部位を計算で求めてもよい。  
【００８３】
本変形例を実現するためには、図８の干渉情報に仮想物体２０１、２０２のポリゴン情報と位置姿勢を追加し、仮想空間の画像を生成するたびに過去の干渉情報のデータセットからポリゴンの交線の端点を算出してもよい。
【００８４】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2020091928.tif 000003
【図２】
2020091928.tif 000004
【図３】
2020091928.tif 000005
【図４】
2020091928.tif 000006
【図５】
2020091928.tif 000007
【図６】
2020091928.tif 000008
【図７】
2020091928.tif 000009
【図８】
2020091928.tif 000010
【図９】
2020091928.tif 000011
【図１０】
2020091928.tif 000012
【手続補正書】
【提出日】令和2年4月3日(2020.4.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
現実の空間を撮像した撮像画像を取得する画像取得手段と、
複数の仮想物体のモデルデータを記憶する記憶手段と、
前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得手段と、
前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士が干渉したかを判定する干渉判定手段と、
前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位を干渉情報として記録する干渉情報記録手段と、
前記干渉情報記録手段で記録された前記干渉情報を参照して、前記撮像画像と前記複数の仮想物体の画像と前記干渉部位を示す画像と過去の干渉部位を示す画像とが合成された合成画像を生成する生成手段と、
前記生成された合成画像を出力する出力手段とを備えることを特徴とする情報処理装置。
【請求項２】
更に、
前記画像を撮像する撮像装置の位置姿勢を計測する撮像部位置姿勢計測手段と、
前記撮像装置の位置姿勢に基づいて、前記仮想物体の画像および前記干渉部位を示す情報を生成する第２の生成手段とを備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記干渉部位は、複数の前記仮想物体が干渉しているときのモデルデータの交線であることを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段は、前記干渉の履歴に含まれるデータの個数が閾値を超える場合は、最も古い過去データから削除する削除手段を備えることを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記生成手段は、前記仮想物体の前記画像における仮想物体の位置と前記画像よりも以前に撮像された過去の画像における仮想物体との距離が閾値よりも大きい場合に、前記干渉の履歴に含めることを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記位置は、前記仮想物体のモデルデータの全ての３次元頂点位置の平均を算出した重心位置であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
更に、前記位置姿勢取得手段が取得する位置姿勢の信頼度を導出する導出手段を備え、
前記干渉情報記録手段は、前記信頼度が閾値よりも小さい場合には、前記干渉情報を記録しないことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記干渉判定手段は、更に、前記仮想物体と人体の所定の部位が干渉したかを判定することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
前記干渉情報記録手段は、干渉が発生したときの画像のフレーム番号、時刻、干渉した仮想物体の識別情報、干渉部位の形状、干渉部位の３次元位置の少なくとも１つの情報を、前記干渉情報として記録することを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記出力手段は、ヘッドマウンテッドディスプレイに前記合成画像を出力することを特徴とする請求項１乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
現実の空間を撮像した撮像画像を取得する画像取得ステップと、
前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得ステップと、
前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士の干渉を判定する干渉判定ステップと、
前記干渉判定ステップの結果に基づいて、前記仮想物体同士が干渉する干渉部位を干渉情報として記録する干渉情報記録ステップと、
前記干渉情報記録ステップで記録された前記干渉情報を参照して、前記撮像画像と前記複数の仮想物体の画像と前記干渉部位を示す画像と過去の干渉部位を示す画像とが合成された合成画像を生成する生成ステップと、
前記生成された合成画像を出力する出力ステップとを備えることを特徴とする情報処理方法。
【請求項１２】
コンピュータを、請求項１乃至１０のいずれか１項に記載の情報処理装置の各手段として機能させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００５
【補正方法】変更
【補正の内容】
【０００５】
上記課題を解決するために、本願発明の情報処理装置は、例えば、現実の空間を撮像した撮像画像を取得する画像取得手段と、複数の仮想物体のモデルデータを記憶する記憶手段と、前記複数の仮想物体それぞれの位置姿勢を取得する位置姿勢取得手段と、前記複数の前記仮想物体の位置姿勢と前記複数の仮想物体のモデルデータとに基づいて、前記仮想物体同士が干渉したかを判定する干渉判定手段と、前記干渉判定手段の結果に基づいて、前記仮想物体同士が干渉する干渉部位を干渉情報として記録する干渉情報記録手段と、前記干渉情報記録手段で記録された前記干渉情報を参照して、前記撮像画像と前記複数の仮想物体の画像と前記干渉部位を示す画像と過去の干渉部位を示す画像とが合成された合成画像を生成する生成手段と、前記生成された合成画像を出力する出力手段とを備える。