(58)【調査した分野】(Int.Cl.,DB名)
前記第1の比較手段は、前記観察者の位置と前記データに対応づけられた現実物体の位置とを比較することにより、前記観察者の位置と前記現実物体との間の距離を算出することを特徴とする請求項2に記載の情報処理装置。
前記第2の比較手段は、前記に対応づけられた現実物体の位置と前記仮想物体が配置される位置とを比較することにより、前記観察者の位置と前記仮想物体との間の距離を算出することを特徴とする請求項2乃至4のいずれか1項に記載の情報処理装置。
前記データは、予め設定された形状およびサイズを有する基本モデルに対する前記観察者による入力に基づいて決定されるデータであることを特徴とする請求項1乃至5のいずれか1項に記載の情報処理装置。
前記データは、前記現実空間における前記現実物体の位置に配置された指標を撮像した画像に基づいて生成されるデータであることを特徴とする請求項1乃至7のいずれか1項に記載の情報処理装置。
第1の属性および、前記第1の属性とは異なる第2の属性を有するデータを、現実空間に存在する現実物体の位置に対応づけて保持する保持手段を有する情報処理装置が実行する情報処理方法であって、
前記第1の属性が前記観察者への警告情報を出力することを示す属性の場合に、前記観察者の位置と前記データに対応づけられた現実物体の位置とに基づき前記観察者に対する警告情報を出力する警告情報出力工程と、
前記第2の属性が前記現実物体の位置と前記観察者が観察するための仮想物体が配置される位置とに応じて前記仮想物体を描画することを示す属性の場合に、前記データが対応づけられた現実物体の位置と前記仮想物体が配置される位置とに基づき、前記データが対応づけられた現実物体の位置が前記仮想物体が配置される位置よりも前記観察者の位置から見て手前である領域に対しては、前記仮想物体を描画せず、前記データが対応づけられた現実物体の位置が前記仮想物体が配置される位置よりも前記観察者の位置から見て奥である領域に対しては、前記仮想物体を描画することにより、画像を生成する画像生成工程と、
前記画像を出力する画像出力工程とを備えることを特徴とする情報処理方法。
【発明を実施するための形態】
【0011】
本発明にかかる実施形態を説明するのに先立ち、各実施形態に示す情報処理装置が実装されるハードウェア構成について、
図9を用いて説明する。
【0012】
図9は、本実施形態における情報装置のハードウェア構成図である。同図において、CPU910は、バス900を介して接続する各デバイスを統括的に制御する。CPU910は、読み出し専用メモリ(ROM)920に記憶された処理ステップやプログラムを読み出して実行する。オペレーティングシステム(OS)をはじめ、本実施形態に係る各処理プログラム、デバイスドライバ等はROM920に記憶されており、ランダムアクセスメモリ(RAM)930に一時記憶され、CPU910によって適宜実行される。また、入力I/F940は、外部の装置(表示装置や操作装置など)から情報処理装置1で処理可能な形式で入力信号として入力する。また、出力I/F950は、外部の装置(表示装置)へ表示装置が処理可能な形式で出力信号として出力する。
【0013】
これらの各機能部は、CPU710が、ROM920に格納されたプログラムをRAM930に展開し、後述する各フローチャートに従った処理を実行することで実現されている。また例えば、CPU910を用いたソフトウェア処理の代替としてハードウェアを構成する場合には、ここで説明する各機能部の処理に対応させた演算部や回路を構成すればよい。
【0014】
(第1の実施形態)
以下、添付図面を参照して本発明の好適な実施形態について説明する。
【0015】
第1の実施形態では、現実の空間に配置されている現実物体の位置に仮想物体を関連付け、この仮想物体に接近警告報知用の属性を付加する。そして、計測対象とこの接近警告報知用の属性が付加された仮想物体との距離が近くなった場合に観察者に、現実物体に近付いている旨の報知を行う実施形態について説明する。
【0016】
図1は、本実施形態に係る情報処理装置1000とHMDの構成図である。情報処理装置1000は、モデルデータ設定部1010、仮想物体生成部1020、画像取得部1030、計測対象位置取得部1040、距離算出部1050、接近警告生成部1060、観察用仮想物体生成部1070、合成画像生成部1080で構成される。また、情報処理装置1000は、HMD(HeadMountedDisplay、頭部装着型表示装置)600に有線または無線によって接続されている。HMD600は、撮像部400と表示部500を備えている。
【0017】
モデルデータ設定部1010は、仮想物体のモデルデータを設定する。
図3は、1つの仮想物体に対するモデルデータの構成例を示す図である。本実施形態で描画する仮想物体のモデルデータには、仮想物体の位置姿勢(位置(x、y、z)と姿勢(roll,pitch,yaw))を示す位置姿勢情報302、仮想物体の色や形状などの視覚的な情報であるモデル情報303が含まれる。これに加えて、この仮想物体が接近警告報知の対象となっているか否かを示すための接近警告報知属性フラグ301が、このモデルデータに含まれている。接近警告報知属性フラグ301はON/OFFを示す1ビットでもって表現されるものである。例えば接近警告報知属性フラグ301の値が「1」(ON)の場合には「接近警告報知の対象である」ことを示し、「0」(OFF)の場合には、「接近警告報知の対象ではない」ことを示す。ここで、接近警告報知属性フラグをONに設定する仮想物体を決定するのは、観察者がUI(観察者インターフェース)によって指示をしてもよい。また、壁のような物体との接近を報知するために、所定の大きさ以上の面積を持つ仮想物体に対して接近警告報知属性フラグ(設定情報)を自動的にONに設定してもよい。
【0018】
仮想物体生成部1020は、モデルデータ設定部1010によって属性が設定されたモデルデータをもつ仮想物体を生成する。属性が設定されたモデルデータをもつ仮想物体は、
図8のような観察者が持ち運び可能なボードに記された指標に対応づけられる。このボードに記された指標を含んだ画像から指標が認識されると、指標が配置された位置に仮想物体が生成される。
【0019】
画像取得部1030は、HMD600から、HMD600が備える撮像部400によって撮像された画像を取得する。画像取得部1030は、HMD600(撮像部400)の出力が、IEEE1394などのデジタル出力であれば、例えば、IEEE1394インタフェースボードによって実現される。またHMD600(撮像部400)の出力がNTSC信号などのアナログ出力であれば、アナログビデオキャプチャーボードによって実現される。また、予め不図示の記憶装置に記憶してある静止画や動画像のデジタルデータを読み出してもよい。
【0020】
計測対象位置取得部1040は、計測対象の位置を取得する。本実施形態では、計測対象を、HMD600として説明する。計測対象位置取得部100は、いずれの公知の手法でHMD600の位置を求めてもよいが、本実施形態では、HMD600に備わる撮像部400によって撮像される画像に含まれる既知の指標を撮影することによって求める。
【0021】
既知の座標を持つ指標を撮影することによって撮像装置の位置情報を求める方法については公知の方法であるので詳しい説明は省略する。指標としては、環境中に、
図4(A)に示すような四角形形状の指標(以下、四角形指標と呼ぶ)を複数配置するものとする。ここで、配置する指標をP
k(k=1,,,K
o)で表す。但し、K
oは配置する指標の数(
図4(A)の例ではK
o=3)である。
図4(B)に示すように、四角形指標は、内部に識別子を表すパターンを持ち、一意に同定可能であるとする。また、また、四角形指標P
kは頂点p
ki(i=1,,,N
k)により構成される。但し、N
kは、指標P
kを構成する頂点の総数(本実施形態の場合は四角形指標であるのでN
k=4)を表す。撮影画像に2値化処理を施した後にラベリング処理を行い、一定面積以上の領域の中から4つの直線によって形成されているものを指標候補として抽出する。さらに、候補領域の中に特定のパターンがあるか否かを判定することによって候補領域が指標領域であるかを判定し、内部のパターンを読み出すことによって指標の画像内の方向と識別子を取得することにより、取得された画像中から指標を検出する。
【0022】
なお、環境中または対象物体上に配置される指標P
kは、四角形指標に限るものではなく、撮影画像上において検出可能であって、かついずれの指標であるか識別可能である指標であれば、何れの形態であってもよい。例えば、
図4(C)に示すように、それぞれが異なる色を有する円形状の指標のような点指標であってもよい。この場合には、画像上から各々の指標の色に対応する領域を検出し、その重心位置を指標の検出座標とする。また、それぞれが異なるテクスチャ特徴を有する特徴点(自然特徴点)を点指標としてもよい。この場合には、既知の情報として予め保持している各々の指標のテンプレート画像によるテンプレートマッチングを画像上に施すことにより、画像から指標を抽出する。これに限らず、空間中に固定される指標であってそれを撮影した画像から検出可能なものであればどのような指標であってもかまわない。なお、指標の配置情報は何らかの方法により作成したもので既知とする。
【0023】
また、位置姿勢センサをHMD600に装着し、センサの出力値を撮像部の位置姿勢としてもよい。位置姿勢センサを利用する場合には、位置姿勢センサと撮像部の相対的な位置関係は予め校正されており、位置姿勢センサの出力値をHMD600の位置姿勢とできるものとする。
【0024】
距離算出部1050は、仮想物体生成部1020によって生成された仮想物体が生成された位置と、計測対象の位置との間の距離を算出する。そして、算出された距離が所定の値よりも小さいかを判定する。判定された結果を接近警告提示部に送出する。
【0025】
接近警告生成部1060は、観察者に接近の報知が必要か否かを判定し、必要があると判定された場合に、接近警告の提示情報を生成する。HMD600に搭載される表示部500に接近警告の提示情報を表示する。接近警告報知の提示情報は、例えば、
図5(A)及び
図5(B)に示すようなアイコンである。また、接近する可能性があることを文字で示し、画像の重畳させることで提示してもよい。生成した提示情報を、HMD600に送出する。
【0026】
観察用仮想物体生成部1050は、観察者が複合現実感を体験するために観察する仮想物体の情報を取得して、観察用仮想物体を生成する。本実施形態において、仮想物体生成部1020で生成される属性が設定された仮想物体と、観察用仮想物体とは使用される目的が異なり、また上記のように
図3の301の属性が設定されているか否かという点で異なる。観察用仮想物体の情報は不図示のメモリに予め保存されていても良いし、記憶媒体から読み出しても良い。取得した仮想物体の情報とHMD600の位置姿勢とに応じて、仮想物体を生成(レンダリング)する。
【0027】
合成画像生成部1060は、観察用仮想物体生成部1050で生成された仮想物体と,画像取得部で取得した画像とを合成して合成画像を生成する。接近警告生成部から接近警告の提示情報が送出されている場合には、接近警告の提示情報も合成画像に重畳する。生成された合成画像をHMD600に出力する。
【0028】
次に、HMD600の各部について説明する。
撮像部400は、指標が配置された現実空間を撮像するビデオカメラである。撮像部400は、撮像した撮像画像を情報処理装置1000に送出する。
表示部600は、情報処理装置から送出された合成画像を受信して、表示するディスプレイである。
【0029】
次に、
図2を参照して、本実施形態における情報処理装置1000の処理フローチャートを説明する。
【0030】
(ステップS2010)
ステップS2010では、モデルデータ設定部は、新規作成する仮想物体モデルデータを設定する。
本ステップは、
図3のフローチャートで詳述する。
【0031】
(ステップS7010)
ステップS7010では、モデルデータ設定部1010は、新規作成する仮想物体モデルデータとしてどのような基本形状にするかを設定する。例えば、基本形状は、平面または直方体または四角柱である。なお、基本形状は、三角柱や円柱、三角錐や円錐など、前述の形状に限るものではない。どのモデルを基本形状にするかは、例えば、
図6のGUIを観察者に提示し、観察者によって選択されたGUI上のボタン3010によって設定しても良い。また、例えば、予め決められている形状を設定しても良い。
【0032】
(ステップS7020)
ステップS7020では、モデルデータ設定部1010は、ステップS2010で設定された仮想物体モデルの基本形状の大きさを設定する。例えば、
図6のリストボックス3020の中から観察者によって選択されたものを設定する。本実施形態では、リストボックスには大、中、小のようないくつかの大きさが設定されており、観察者はこの中から所望のサイズを選択することができる。また、例えば、予め決められているサイズを設定しても良い。
【0033】
(ステップS7030)
ステップS7030では、モデルデータ設定部1010は、ステップS7010、7020で形状と大きさが設定された仮想物体モデルに、属性を設定する。属性の設定は、
図6のリストボックス3050から切り替えて付加する。ここで、本実施形態のリストボックス3050では、例えば、「接近警告報知用モデル」の他に、「マスク属性付加モデル」と、「マスク属性付加モデル及び接近警告報知用モデル」を切り替えできる。ここで、接近警告報知用モデルと、マスク属性付加モデルについてそれぞれ説明する。
【0034】
接近警告報知用モデルは、仮想物体と計測対象であるHMD600と間の距離を計算し、計算された距離が閾値より小さい場合に、観察者に報知するために用いられるモデルである。
【0035】
次に、マスク属性付加モデルについて説明する。マスク属性付加モデルは、実写画像中の壁や柱などの現実物体の上に、奥行情報を考慮せずに仮想物体を上書きしないために、現実物体をマスクするモデルである。奥行情報を考慮せずに、仮想物体を画像に上書きすると、仮想物体と現実物体との前後関係を正しく表示できないため、複合現実感システムでは、没入感や臨場感を著しく低下させてしまう。そのため、現実空間と仮想空間の座標系を一致させ、現実物体の位置に正しくマスク属性付加モデルを配置することで、例えば、仮想物体と現実物体の前後関係を正しく表現できる。したがって、「マスク属性付加モデル」または、「マスク属性付加モデル及び接近警告報知用モデル」の属性が設定されている仮想物体は、その他の仮想物体との撮像部400の視点位置からの奥行値を比較することで、前後関係を正しく表示することができる。
【0036】
(ステップS2020)
ステップS2020では、仮想物体生成部1020は、ステップS2020で設定されたモデルデータを持つ仮想物体モデルを生成する。仮想物体モデルデータ生成部5010は、例えば、
図6中の新規作成ボタン3030が観察者によって押下されたことに応じて、ステップ4010〜4030で設定された基本形状、サイズ、属性をもった仮想物体モデルを作成する。また、同じく
図6中の読み込みボタン3040が観察者によって押下されたことに応じて、過去に作成した仮想物体モデルを読み込むことによって、仮想物体モデルを生成してもよい。
【0037】
(ステップS2030)
ステップS2030では、仮想物体モデル生成部1020は、ステップS2040で設定されたモデルデータを持つ仮想物体モデルを現実空間中の現実物体に合わせて配置する。本実施形態では、
図8に示すようなモデル配置用指標5000に基づいて、所定の位置に仮想物体を配置する。
【0038】
まず、観察者が、モデル配置用指標5000を現実の物体の位置に合わせて配置する。これは、例えば、現実物体がテーブルの場合には、所定の面方向のテーブルの足の部分に合わせて、モデル配置用指標5000を配置する。モデル配置用指標5000には、
図8に示すように、接近警告報知用やマスク用の仮想物体モデルの位置を決めるための位置決め用マーク5010を備えている。本実施形態では、
図8に示すように2つの位置決め用マークと接し、かつモデル配置用指標と直交する平面に接するように、モデル配置用指標5000を配置する。配置されたモデル配置用指標5000を撮像装置によって撮像し、撮像した画像を、画像取得部1030によって取得する。取得した画像から指標を検出することによって、モデル配置用指標5000を配置された位置を取得することができる。
【0039】
観察者は、仮想物体モデルのサイズと位置を更に詳細に設定することもできる。例えば、観察者が仮想物体モデルのサイズと位置を、
図6のエディットボックス3070に直接入力した値に基づいて、仮想物体モデルのサイズと位置を反映させることができる。また、画像取得した画像に仮想物体を重畳して表示し、仮想物体の境界線をマウス等を使ってドラッグすることで、サイズを変更してもよい。また、仮想物体の内部に表示した座標軸をドラッグすることで、位置を移動してもよい。
【0040】
(ステップS2030)
ステップS2030では、計測対象位置取得部1040は、公知の方法によりHMD600の位置姿勢を計測する。計測対象位置計測部100が計測する計測対象の位置姿勢情報はいずれの公知の手段で求めてもよい。本実施形態では、撮像部400が、既知の指標を撮影することによって、位置姿勢を求める。
【0041】
計測対象位置取得部1040は、取得した計測対象の位置姿勢情報を、距離算出部1050と観察用仮想物体取得部1070に送出する。
【0042】
(ステップS2040)
ステップS2040では、距離算出部1050が、ステップS2020で生成された仮想物体の属性が接近警告報知用モデルであるかを判定する。ステップS2020で説明したように、仮想物体は、「接近警告報知用モデル」「マスク属性付加モデル」「マスク属性付加モデル及び接近警告報知用モデル」のいずれかが設定されている。本ステップでは、「接近警告報知用モデル」または「マスク属性付加モデル及び接近警告報知用モデル」のいずれかであるか否かを判定する。「接近警告報知用モデル」または「マスク属性付加モデル及び接近警告報知用モデル」のいずれかであると判定された場合には、ステップS2040へと処理を進める。「マスク属性付加モデル」であると判定された場合には、ステップS2080へと処理を進める。
【0043】
(ステップS2050)
ステップS2050では、距離算出部1050が、HMD600と仮想物体との間の距離を求める。距離算出部1050が、計測対象である撮像部400と、接近警告報知属性フラグ301がONの仮想物体との距離を計測する。なお、ここでは、現実空間に定義する座標系を前記指標によって設定することで、現実空間に定義される座標系と仮想空間に定義される座標系の原点や軸の向きを予め一致させてあるものとする。現実空間と仮想空間の座標系を一致させておくことで、計測対象である撮像部400が現実空間を移動した場合でも、撮像部の現実空間の位置と仮想物体の位置を比較することで、距離を計測することができる。したがって、距離算出部1050は、計測対象の位置と接近警告報知属性フラグ301がONの仮想物体の位置に基づいて、距離を計測する。
【0044】
(ステップS2060)
ステップS2060では、提示情報生成部1060が、ステップS2050で算出された距離が閾値以下であるかを判定する。閾値は、
図6の入力欄3090によって観察者に入力させることによって決定しても良いし、予め定められていても良い。閾値以下であると判定された場合には、ステップS2070へと処理が進み、閾値よりも大きいと判定された場合には、ステップS2080へと処理が進む。
【0045】
(ステップS2070)
ステップS2070では、提示情報生成部1060は、接近警告の提示情報を生成する。提示情報は、例えば、
図5(A)及び
図5(B)に示すようなアイコンである。そして、接近警告提示部1060は、生成した提示情報を合成画像生成部1080へと送出する。
【0046】
(ステップS2080)
ステップS2080では、合成画像生成部1080は、画像取得部1030で取得した撮像画像と観察用仮想物体取得部1070で取得した観察用仮想物体とを合成して合成画像を生成する。また、提示情報生成部1060で提示情報が生成されている場合には、提示情報を合成画像に付加して、HMD600に送出する。また、ステップS2040で、「マスク属性付加モデル」または「マスク属性付加モデル及び接近警告報知用モデル」と判定された仮想物体が配置されている領域に、観察用仮想物体を合成する場合には、両者の奥行き値を比較する。そして、観察用仮想物体がHMD600から見て手前にある場合にのみ、仮想物体を合成する。
【0047】
以上のように、複合現実空間において、観察者が接近警告報知属性を持たせた仮想物体に近づいたときに、情報処理装置は、観察者に接近警告報知を行うことができる。
【0048】
また、仮想物体ごとに、接近警告報知属性フラグを設定することにより、観察者が接近したい現実物体に対しては警告が報知されず、必要な現実物体のみ、警告が報知されるように設定することができる。
【0049】
(変形例1)
第1の実施形態では、接近警告提示部1060は、アイコンや文字を撮像部が撮影した画像に重畳することで、接近警告報知情報を提示した。しかし、接近警告報知を行うことができれば、これに限るものではない。例えば、不図示のスピーカーによって、音声によって接近警告を提示してもよい。また、不図示の振動子を振動させることで、接近警告を提示してもよい。これらに限るものではなく、いずれの公知の提示方法であっても、接近警告を報知するものであればよい。
【0050】
(変形例2)
第1の実施形態では、計測対象をHMDに装着された撮像部としていたが、計測対象はこれに限るものではない。手であってもよいし、足や腕など、体の一部であってもよい。手などを計測対象とする場合、HMDに搭載された2台の撮像部から予め肌色を登録しておくことで手の肌色領域抽出を行い、左右の撮像部の既知の相対的な位置姿勢情報に基づいてステレオ法により奥行を計測してもよい。また、観察者の体の一部を俯瞰するように設定された2台の撮像部で撮影することで、奥行を計測して位置を計測してもよい。また、デプスセンサーにより計測してもよい。計測対象の位置を計測できれば、その他の公知の方法で計測してもよい。
【0051】
ここで、仮想物体モデルが不要になった場合には、削除ボタン3100を押して、仮想物体モデルを削除する。
【0052】
なお、本実施形態においては、観察者の頭部に装着するHMDとして説明したが、顔面に装着するフェースマウントディスプレイでもよい。
【0053】
なお、本実施形態では、現実物体の例としてテーブルを用いたが、壁や、床の段差の部分など、観察者が接近を報知してほしいあらゆる箇所に適用することができる。
【0054】
以上により、GUIを用いて、接近警告を報知したい現実の物体に合わせて仮想物体モデルデータを作成することができる。実写映像に仮想物体を重畳した映像を見ながら、大きさや形や配置情報を調整することで、直観的かつ効率的に、現実物体に合わせて接近警告報知やマスクを行う仮想物体を設定することができる。
【0055】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。
【0056】
即ち、上述した各実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
【0057】
このプログラム及び当該プログラムを記憶したコンピュータ読み取り可能な記憶媒体は、本発明に含まれる。