本明細書における用語「外景センサー」は、以下で説明するRGBカメラ、距離センサーの少なくとも一つを包含する用語である。よって、RGBカメラ、距離センサー、またはこれらの組み合わせ、のいずれもが「外景センサー」の一例である。もちろん、「外景センサー」は、実施形態において説明されるRGBカメラ、距離センサー、またはこれらの組み合わせに限定されず、外景または外景に含まれる対象(これらを実環境や実物体と呼ぶこともある)の2次元座標または3次元座標を推定するための情報を獲得し出力する装置をいう。
本明細書における用語「対象選択部」は、仮想の画像(AR画像)として表されることになる実物体を選択する機能、または選択するための基礎となる情報を提供する機能を有する構成をいう。実施形態では、物体トラッキング部12a、12b、12cのそれぞれが、「対象選択部」の一例である。
A.第1実施形態:
A−1.画像処理装置の構成:
図1は、本発明の第1実施形態における画像処理装置100の構成を機能的に示すブロック図である。画像処理装置100は、連続的に撮像した被写体の三次元モデルを生成して、生成した被写体の三次元モデルと受け付けた各種操作とに基づいて、AR(augmented reality)画像を生成する。なお、本実施形態でいうAR画像は、画像認識などによって認識された現実の対象物と関連付けて表示させる画像のことをいう。
画像処理装置100は、CPU10と、データ記憶部50と、電源60と、RGBカメラ31と、距離センサー32と、マイク33と、操作部34と、表示部35と、ROM41と、RAM42と、を備えている。データ記憶部50は、各種データを記憶し、ハードディスクドライブなどによって構成されている。電源60は、画像処理装置100の各部に電力を供給する。電源60としては、例えば二次電池を用いることができる。
RGBカメラ31は、被写体を含む所定の範囲の外景を撮像するカメラである。本実施形態では、RGBカメラ31は、異なる位置に配置された3台の第1カメラ311と第2カメラ312と第3カメラ313とによって構成されている。RGBカメラ31は、撮像した外景のRGBデータを後述するCPU10のセンサー制御部15に送信する。距離センサー32は、照射した無数の点を赤外線カメラによって撮影することにより、照射した対象までの距離を測定するデプスセンサーである。本実施形態では、距離センサー32は、第1カメラ311と第2カメラ312と第3カメラ313とそれぞれに1対1で対応するように、それぞれのカメラの隣に配置されている。すなわち、距離センサー32は、RGBカメラ31と同じように、異なる位置に配置された3台のデプスセンサー(第1距離センサー321、第2距離センサー322、第3距離センサー323)によって構成されている。距離センサー32は、赤外線カメラによって撮像し、物体の表面で反射した赤外線反射光の無数の点のデータをCPU10のセンサー制御部15に送信する。なお、他の実施形態では、距離センサー32は、TOF(Time-of-Flight)法を用いて、対象までの距離を測定してもよい。また、本実施形態では、RGBカメラ31と距離センサー32とのそれぞれは、3台のカメラ311,312,313とセンサー321,322,323とによって構成されたが、他の実施形態では、3台よりも少ない数のカメラやセンサーであってもよいし、3台よりも多い数のカメラやセンサーであってもよい。また、RGBカメラ31の数と距離センサー32の数とは、同じである必要はなく、1対1で対応させる必要はない。RGBカメラ31、カメラ311,312,313は、請求項における外景センサーに相当する。ただし、RGBカメラ31と距離センサー32とが1対1で対応する場合には、距離センサー32から実物体までの距離Dの計測も含めて、RGBカメラ31および距離センサー32によって外景または実物体を捕捉することを「撮像する」と表記することもある。このとき、撮像された画像はRGBDデータで表されることになる。RGBDデータとは、例えば、画素ごとに、R,G,B、距離Dの値があるデータである。
図2は、RGBカメラ31および距離センサー32によって被写体OBを含む外景SCを撮像する場合の説明図である。図2に示すように、異なる位置に配置された3台のカメラ331,332,333は、被写体OBを含む外景を撮像している。カメラ331の撮像画像は、第1カメラ311および第1距離センサー321の撮像画像に対応し、カメラ332の撮像画像は、第2カメラ312および第2距離センサー322の撮像画像に対応し、カメラ333の撮像画像は、第3カメラ313および第3距離センサー323の撮像画像に対応する。図2に示すように、被写体OBとしての料理人の右手がうろこ取りTLを持って、被写体OBの左手が魚FSの頭を押さえ、料理人がうろこ取りTLによって魚FSのうろこを取っている状態が撮像されている。異なる位置に配置されたカメラ331,332,333によって取得されたRGBデータおよび距離データに基づいて、被写体OB、うろこ取りTL、魚FSなどといった外景SCに含まれる対象の位置や色が特定される。
カメラやセンサーの位置を特定する方法としては、その他の態様も取り得る。また、実物体の外景SCにおける三次元位置の求め方は、例えば、カメラ331,332,333の位置関係およびカメラパラメーターが既知であり、距離センサー32の水平軸が地面と平行である場合に、カメラ331,332,333の共通の撮像範囲内に、光(たとえば赤外光)を間欠発光する光源を設置する。カメラ331,332,333のそれぞれが当該光源を撮像(画像は画素ごとにRGBDデータで表される。距離Dは距離センサー32からの距離である)することで、カメラ331,332,333のそれぞれから見た光源の三次元位置(Xi,Yi,Zi)(i=0,1,2)が推定される。そして、例えば、カメラ332,333(i=1,2)のそれぞれから見た共通の光源の2つの座標を、カメラ331(i=0)から見た座標に変換する。その際に、カメラ332、333から見た座標を変換した座標をカメラ331から見た座標に一致させる変換行列を、カメラ332、333のそれぞれについて導出する。具体的には、カメラ331の座標と変換後の座標との差分が最も小さくなる変換行列を反復計算により算出する。このような設定をすることにより、カメラ331,332,333のそれぞれの視点から生成されたそれぞれの三次元モデルを融合し、カメラの視点に依存しない1つの三次元モデルを生成することができる。なお、設置された光源の位置を変更させて、カメラ331,332,333が撮像することで、精度を向上させてもよい。また、RGBカメラ31と距離センサー32のセットの数は、4セット以上でもよい。
マイク33(図1)は、RGBカメラ31および距離センサー32が所定の範囲を撮像している間や、使用者からの操作を受け付ける場合に、外部の音声を取得する。マイク33は、取得した音声に基づく音声信号を後述するCPU10のUI制御部16に送信する。操作部34は、使用者からの入力を受け付けるユーザーインターフェース(UI)である。操作部34は、キーボードやマウスによって構成されている。操作部34は、押下されたキーボードのキーに対応する制御信号や、マウスのポインターの位置の変化に基づく制御信号を、CPU10のUI制御部16に送信する。表示部35は、UI制御部16から送信された画像信号に基づいて、画像を表示する液晶パネルである。使用者は、表示部35に表示される画像を見ながら、操作部34やマイク33を操作することで、画像処理装置100を操作できる。操作部34およびマイク33は、請求項における操作受付部に相当し、また、マイク33は、音声取得部に相当する。
CPU10は、ROM41に格納されたコンピュータープログラムを読み出し、RAM42に展開して実行することにより、画像処理装置100を制御する。CPU10は、ARシナリオ制御部11と、物体トラッキング部12と、物体認識部13と、三次元モデル生成部14(3Dモデル生成部14)と、センサー制御部15と、ユーザーインターフェース制御部16(UI制御部16)と、ARシナリオ操作設定部17と、付加情報取得部18と、不要画像消去部19と、AR画像抽出部21と、を有している。
センサー制御部15は、RGBカメラ31から送信された外景のRGBデータと、距離センサー32から送信された赤外線カメラによって撮像された無数の点のデータと、を取得する。センサー制御部15は、RGBカメラ31および距離センサー32から取得したデータを、物体トラッキング部12と3Dモデル生成部14とのそれぞれに送信する。また、UI制御部16から送信された制御信号に基づいて、RGBカメラ31および距離センサー32を制御する。
3Dモデル生成部14は、ARシナリオ制御部11から送信される制御信号に基づいて、センサー制御部15から送信されたRGBカメラ31のRGBデータと距離センサー32の距離データと用いて、撮像した所定の範囲の中に存在する対象について、三次元モデル(3Dモデル)を作成する。三次元モデルの具体的な作成としては、3Dモデル生成部14は、距離センサー32によって取得された距離データに基づいて、撮像範囲の物体の形状を取得し、取得した距離のデータに基づいて、取得した物体の形状における同一の境界を検出して、三次元モデルを生成する。また、3Dモデル生成部14は、RGBカメラ31から送信されたRGBデータに基づいて、生成した三次元モデルに対して着色する。3Dモデル生成部14は、生成した着色済みの三次元モデルと、検出した同一の境界のデータと、を物体認識部13へと送信する。
物体認識部13は、ARシナリオ制御部11から送信される制御信号に基づいて、生成された三次元モデルと、検出された同一の境界のデータと、を用いて、連続している境界のデータを有する三次元モデルを1つの物体として認識する。換言すれば、物体認識部13は、連続していない境界のデータに基づいて、三次元モデルを切り離して、1つ1つの物体として認識する。また、物体認識部13は、ARシナリオ制御部11を介して、後述するデータ記憶部50に記憶された人体のパーツ(例えば、手や足)とパターンマッチングや統計的識別法によって比較することにより、三次元モデルの中から人体を抽出する。なお、距離センサー32およびセンサー321,322,323は、距離測定部に相当する。
物体トラッキング部12は、ARシナリオ制御部11から送信される制御信号に基づいて、認識された物体の1つ1つの内、撮像している間に動いている物体の動きを特定する。物体トラッキング部12は、動いている物体(移動物体)と動いていない物体(静止物体)とを特定する情報をUI制御部16およびARシナリオ制御部11へと送信する。
UI制御部16は、マイク33や操作部34が受け付けた操作に基づいて、表示部35やCPU10に含まれる各部へと制御信号を送信する。例えば、UI制御部16は、操作部34が受け付けた操作に基づいて、RGBカメラ31および距離センサー32を制御する信号をセンサー制御部15へと送信する。また、物体トラッキング部12から送信された特定した物体について、物体のそれぞれを使用者が選択して操作できるように、物体のそれぞれを表示部35に表示するための画像信号を送信する。また、UI制御部16は、後述するARシナリオ作成時において、マイク33によって取得された音声を自動的に文字画像へと変換するテキスト変換部161を有している。テキスト変換部161は、取得された音声を音声認識して、対応する文字画像へと変換する。
ARシナリオ操作設定部17は、画像処理装置100によって作成されたARシナリオが操作する状況について設定する。なお、本実施形態では、ARシナリオとは、少なくとも1つの移動物体に対応するAR画像を含む動画のことをいい、ARシナリオには、使用者によって挿入された音声や文字画像などが含まれる。ARシナリオ操作設定部17は、例えば、生成されたAR画像に対応付けられた対象物が、画像認識などによって現実の対象として検出された場合などに、ARシナリオが実行するように設定する。また、ARシナリオ操作設定部17は、現実において、予め設定された特定の物体が検出されることにより、複数のARシナリオの分岐などを設定する。
付加情報取得部18は、UI制御部16から送信されるUIが受け付けた操作信号やARシナリオ制御部11から送信される制御信号に基づいて、ARシナリオに付加する情報を取得する。ARシナリオに付加される情報としては、例えば、操作部34が受け付けた操作によって設定されるAR画像の拡大または縮小して表示する表示方法の設定や、マイク33が取得した音声が変換されたテキストの挿入などがある。
ARシナリオ制御部11は、ARシナリオを作成するために、CPU10の各部を制御する。ARシナリオ制御部11は、物体トラッキング部12によって特定された移動物体および静止物体と、UIが受け付けた操作と、に基づいて、AR画像として生成される物体とAR画像を生成されない物体と区別し、区別した結果を不要画像消去部19およびAR画像抽出部21へと送信する。また、ARシナリオ制御部11は、データ記憶部50との各種データを送受信することにより、以前に作成したARシナリオを読み込んで編集したり、新規で作成したARシナリオをデータ記憶部50に記憶させたりする。
不要画像消去部19は、ARシナリオ制御部11およびARシナリオ操作設定部17から送信された制御信号に基づいて、特定された物体の内、AR画像として生成されない物体の画像を消去する。換言すれば、不要画像消去部19は、撮像画像の中から、AR画像として生成する物体を選択するともいえる。不要画像消去部19は、不要な物体として消去した画像の画像信号をARシナリオ制御部11へと送信する。
AR画像抽出部21は、ARシナリオ制御部11から送信された制御信号に基づいて、AR画像としてARシナリオに表示させる物体を抽出して、画像を生成する。AR画像抽出部21は、距離センサー32によって取得された距離データに基づいて、AR画像を三次元の画像として生成する。また、AR画像抽出部21は、RGBカメラ31によって取得されたRGBデータに基づいて、生成したAR画像に着色を行なう。AR画像抽出部21は、抽出したAR画像として生成する物体を特定する信号をARシナリオ制御部11へと送信する。また、AR画像抽出部21は、操作部34を介して所定の操作を受け付けることにより、データ記憶部50に記憶された特定の物体を、自動的にAR画像として生成する物体として抽出できる。抽出される物体としては、例えば、CAD(computer aided design)によって作成された図面によって特定される物体などがある。なお、AR画像抽出部21は、請求項における画像生成部に相当する。
A−2.ARシナリオ作成処理:
図3および図4は、ARシナリオ作成処理のフローチャートである。ARシナリオ作成処理では、画像処理装置100がRGBカメラ31および距離センサー32によって撮像された外景画像に含まれる移動物体等のAR画像を作成する処理である。
ARシナリオ作成処理では、初めに、マイク33または操作部34がARシナリオの作成を開始する操作の受付を待機する(ステップS12)。マイク33は、予め設定された所定の音声を受け付けることで、画像処理装置100がARシナリオ作成処理を開始する。また、操作部34は、予め設定された所定のキーボードのボタン操作を受け付けることで、画像処理装置100がARシナリオ作成処理を開始する。ステップS12の処理において、マイク33または操作部34は、ARシナリオ作成処理を開始する操作を受け付けない場合には(ステップS12:NO)、引き続き、AR作成処理を開始する操作の受付を待機する(ステップS12)。
ARシナリオ作成処理を開始する操作を受け付けた場合には(ステップS12:YES)、ARシナリオ制御部11は、RGBカメラ31および距離センサー32が撮像する撮像範囲を設定する(ステップS14)。ARシナリオ制御部11は、操作部34が所定の操作を受け付けることで、撮像範囲の範囲や位置を設定する。なお、本実施形態では、RGBカメラ31の撮像範囲と距離センサー32の撮像範囲とは、同じ範囲として設定されるが、他の実施形態では、RGBカメラ31の撮像範囲と距離センサー32の撮像範囲とが別々に設定されてもよい。
RGBカメラ31および距離センサー32の撮像範囲が設定されると、RGBカメラ31は、撮像範囲のRGBデータを取得し、距離センサー32は、距離センサー32から撮像範囲内に存在する物体までの距離を測定する(ステップS16)。RGBカメラ31は、取得した撮像範囲のRGBデータを、センサー制御部15を介して、3Dモデル生成部14および物体トラッキング部12へと送信する。距離センサー32は、測定した撮像範囲に存在する物体までの距離データを、センサー制御部15を介して、3Dモデル生成部14および物体トラッキング部12へと送信する。
3Dモデル生成部14は、RGBカメラ31から送信されたRGBデータと、距離センサー32から送信された距離データと、に基づいて、三次元モデル(3Dモデル)を生成する(ステップS18)。3Dモデル生成部14は、距離データに基づいて、撮像範囲に含まれる物体の形状の三次元モデルを生成する。また、3Dモデル生成部14は、RGBデータに基づいて、生成した三次元モデルを着色する。なお、本実施形態では、3Dモデル生成部14が生成する三次元モデルは、カメラ331、332,333からのそれぞれの視点から生成されたそれぞれの三次元モデルが、1つに融合されたものである。物体認識部13は、生成された三次元モデルに対して、検出された同一の境界データを用いることで、三次元モデルの中に含まれる個々の物体を認識する(ステップS20)。
図5は、被写体OBがいない作業開始前に撮像された撮像画像を示す説明図である。撮像範囲が設定されると、RGBカメラ31および距離センサー32は、外景SCの撮像を開始する。撮像が開始された直後では、被写体OBが撮像範囲にいないため、図5に示すように、撮像画像には、料理人である被写体OBが含まれていない。本実施形態では、撮像が開始された直後では、被写体OBがいない状態で、魚FSとうろこ取りTLとのそれぞれの三次元モデルが作成される。詳細については後述するが、生成されたうろこ取りTLの三次元モデルは、物体トラッキング部12によって特定されたうろこ取りTLの動きに関連付けられることで、ARシナリオを構成する一部の画像として用いられる。
図3のステップS20の処理が行なわれると、マイク33または操作部34が動画の撮像を始める前の初期設定が済んだことを示す操作の受付を待機する(ステップS21)。初期操作が済んだことを示す操作が受け付けられない場合には、CPU10は、再度、ステップS14以降の処理を実行する。ステップS21の処理において、マイク33または操作部34が、初期操作が済んだことを示す操作を受け付けた場合には(ステップS21:YES)、次に、移動物体の撮像を開始する操作の受付を待機する(ステップS22)。マイク33または操作部34が、撮像を開始する操作を受け付けない場合には(ステップS22:NO)、撮像を開始する操作の受付を待機する(ステップS22)。ステップS22の処理において、撮像を開始する操作を受け付けた場合には(ステップS22:YES)、RGBカメラ31および距離センサー32は、設定された撮像範囲を、時間の経過に伴って動画として撮像する(ステップS22)。物体トラッキング部12は、撮像範囲に含まれると共に三次元モデルとして生成された物体の内、移動物体と静止物体とを区別して、移動物体をトラッキングする(ステップS24)。物体トラッキング部12は、区別した移動物体のRGBデータの変化量と測定された距離の変化量とを計測し、移動物体の軌跡や姿勢などの位置の変化を特定する。
図6は、トラッキングされた移動物体を含む外景SCの撮像画像を示す説明図である。図6では、図2の撮像範囲と同じ範囲を設定された場合に、RGBカメラ31および距離センサー32が撮像する外景SCが示されている。図6の外景SCでは、図2の外景SCと比較して、料理人である被写体OBが持っているうろこ取りTLの位置が、被写体OBの左手が押さえている魚FSの頭に近づいている点が異なる。そのため、物体トラッキング部12は、うろこ取りTLとうろこ取りTLを持っている被写体OBの右手とを移動物体としてトラッキングし、その他の被写体OBの左手や魚FSなどを静止物体として区別する。なお、図6では、カメラ331,332,333によって撮像される撮像画像を示しているため、カメラ331,332,333は、撮像画像の中には含まれない。本実施形態では、被写体OBの右手とうろこ取りTLとが移動物体としてトラッキングされたが、他の実施形態では、うろこ取りTLの移動によって、魚FSから剥ぎ取られたうろこが移動物体としてトラッキングされてもよい。
ARシナリオ制御部11は、トラッキングされた移動物体またはトラッキングされた移動物体が接触している静止物体の内の少なくとも1つを、作成されたARシナリオが実行される場合に、ARシナリオの実行を開始するためのトリガーとしてARシナリオデータ内に設定する。ARシナリオが実行されるためのトリガーが設定され、AR表示を実行できる頭部装着型表示装置(ヘッドマウントディスプレイ(Head Mounted Display)、HMD)に備え付けられたカメラの撮像画像の中にトリガーが検出されると、自動的にトリガーが設定されているARシナリオが実行される。なお、ARシナリオ制御部11は、ARシナリオに対して、トリガーを設定してもよいし、設定しなくてもよい。
次に、付加情報取得部18は、マイク33または操作部34が受け付けた操作に基づいて、作成するARシナリオに付加する付加情報を取得する(ステップS26)。付加情報としては、例えば、RGBカメラ31および距離センサー32が移動物体を含む撮像範囲を撮像している最中に、マイク33によって取得された音声がテキスト変換部161によって変換された文字画像などがある。また、付加情報の他の例として、他の情報処理装置において作成したARシナリオが使用されている場合に、検出されることが望ましい物体(推奨物体)であるうろこ取りTLに対して、検出されることが望ましくない物体(非推奨物体)として包丁が設定されてもよい。この場合、ARシナリオが実行されているときに、非推奨物体である包丁が検出されると、ARシナリオが停止されたり、別のARシナリオに切り替わったりしてもよい。なお、ARシナリオの実行の詳細については、後述する「A−4.複合シナリオの実行」において説明する。
図7は、ARシナリオに含まれる特定の時点での撮像画像に付加情報が付加された画像を示す説明図である。図7には、RGBカメラ31および距離センサー32によって撮像された図6の撮像画像に対して、マイク33が取得した音声を付加情報のテキスト画像TX1として付加した画像が示されている。なお、操作部34が使用者の操作を受け付けることで、テキスト画像TX1のフォントの大きさや色の変更や、撮像画像にテキスト画像TX1を付加する位置などが変更されてもよい。
付加情報が取得されると(図3のステップS26)、ARシナリオ制御部11がいずれの物体のAR画像を作成するかを決定するために、操作部34は、AR画像を作成する対象とはならない物体の不要な画像を自動で消去するか否かを選択させる操作を受け付ける(ステップS28)。ARシナリオ制御部11は、不要画像の消去を自動で行なうか、自動ではない手動で行うかを選択させる選択画面を表示部35に表示させ、操作部34が受け付けた操作によって、不要画像の消去の処理を決定する。ステップS28の処理において、不要画像を自動で消去する選択の操作が受け付けられた場合には(ステップS28:YES)、不要画像消去部19は、静止物体と移動物体の内の人体とを、AR画像を生成する対象ではない不要な物体として消去する(ステップS38)。換言すれば、不要画像消去部19は、移動物体の内の人体を除いた物体を、AR画像を生成する対象として消去しない。また、不要画像消去部19は、撮像画像の中から、物体認識部13によって抽出された人体のパーツを消去する。撮像画像の中から消去された物体は、作成されるARシナリオにおいて、AR画像として表示されない。なお、本実施形態では、同じ物体であっても、動いている間は移動物体と呼び、動いていない間は静止物体と呼ぶ。他の実施形態では、物体ごとに移動物体と静止物体とを定義付けてもよい。
図8は、撮像画像の中から不要な物体が消去された後の画像を示す説明図である。不要な物体として消去されない移動物体は、うろこ取りTLのみであるが、図8では、説明のために、不要な物体として消去された魚FS(破線)と被写体OB(一点鎖線)とについても示している。不要画像消去部19は、撮像画像の中から、外景SCに含まれる静止物体の魚FSなどを消去し、かつ、静止しているか移動しているかに関わらず、人体と判断する料理人である被写体OBについても消去する。なお、本実施形態では、魚FSを静止している物体として説明したが、静止しているか移動しているかの判定は、移動量の大小で判定されてもよい。例えば、被写体OBによって魚FSの尾が持ち上げられるなどの場合があり、この場合には、移動量の大小や移動の速度などによって、魚FSなどが移動している場合であっても、静止している物体として判定されてもよい。
不要な物体が映像から消去されると(図4のステップS38)、AR画像抽出部21は、不要画像消去部19によってAR画像を生成する対象として選択された不要な物体以外の物体を抽出して、抽出した物体(以下、「抽出物体」とも呼ぶ)と抽出した物体が接触している物体(以下、「接触物体」と呼ぶ)とを対応付けたAR画像を生成する(ステップS34)。抽出物体と接触物体との対応付けとしては、接触物体の大きさや向きおよび接触物体の移動領域に対して、抽出物体の移動領域や抽出物体の大きさを対応付ける例が挙げられる。AR画像を生成する対象の物体の移動領域や大きさなどと、当該対象の物体から所定の距離内に存在する物体の移動領域や大きさなどと、が対応付けられることで、作成されたARシナリオが実行された場合に、AR画像に対応付けられた接触物体が検出されて、検出された接触物体の位置・形状・大きさに対応付けられて、抽出物体に基づいて生成されたAR画像が表示される。また、AR画像抽出部21は、AR画像が生成される移動物体が撮像中に移動している間に、マイク33によって取得された音声を付加情報として、AR画像に対応付けてもよい。付加情報としての音声をAR画像に対応付ける方法としては、例えば、移動物体のAR画像が表示されている間のみ、移動物体に対応付けられた音声をテキスト画像として表示させるなどがある。なお、AR画像が生成される対象は、請求項における画像生成対象に相当する。
図9は、生成されたAR画像とAR画像に対応付けられた物体とを示す説明図である。図9には、AR画像として生成されたうろこ取りTLの画像AR1(実線)と、画像AR1に対応付けられている魚FS(破線)と、が示されている。画像AR1を含むARシナリオが実行されている場合に、ARシナリオを実行している装置が魚FSを検出すると、検出された魚FSの位置に対応付けてうろこ取りTLの画像AR1が表示される。なお、装置によってARシナリオが実行されている場合における魚FSの検出や画像AR1の表示の詳細については、「A−4.複合シナリオの実行」で説明する。
AR画像が生成されると(図4のステップS34)、ARシナリオ制御部11は、AR画像と付加情報とに基づいて、ARシナリオとしての動画を作成し、作成したARシナリオデータをデータ記憶部50に保存し(ステップS36)、画像処理装置100は、ARシナリオ作成処理を終了する。
ステップS28の処理において、不要な画像を自動ではなく、手動で選択する操作が受け付けられた場合には(ステップS28:NO)、ARシナリオ制御部11は、表示部35に、撮像範囲に含まれる移動物体と静止物体のそれぞれを選択させるための選択画像を表示させる(ステップS30)。不要画像消去部19は、操作部34が受け付けた操作に基づいて、RGBカメラ31および距離センサー32によって撮像画像の中から、消去すべき不要な物体として選択された移動物体や静止物体を消去する。撮像画像の中から手動で消去すべき物体が選択される場合には、撮像画像から自動で静止物体や人体のパーツが消去された場合と比較して、使用者は、任意にAR画像を生成する対象を選択できる。例えば、うろこ取りTLのAR画像に加えて、うろこ取りTLを持っている被写体OBの右手のAR画像や魚FSのAR画像などが生成されてもよい。なお、他の実施形態では、消去すべき物体ではなく、AR画像を生成する対象を選択する態様であってもよい。使用者の操作によって、不要な物体が消去されると(ステップS32)、AR画像抽出部21およびARシナリオ制御部11は、ステップS34以降の処理を実行する。
A−3.複合シナリオ作成処理:
図10は、複合シナリオ作成処理のフローチャートである。複合シナリオ作成処理では、CPU10が複数のARシナリオを組み合わせた複合シナリオを作成する処理である。CPU10のARシナリオ操作設定部17は、作成する複合シナリオとして、例えば、あるARシナリオでトリガーを検出した場合には、別のARシナリオへと分岐する複合シナリオを作成する。トリガーとしては、例えば、撮像範囲内における特定の物体の検出や、マイク33や操作部34が受け付けた操作などがある。
複合シナリオ作成処理では、初めに、マイク33または操作部34が複合シナリオの作成を開始する操作の受付を待機する(ステップS42)。複合シナリオ作成処理を開始する操作が受け付けられない場合には(ステップS42:NO)、ARシナリオ操作設定部17は、複合シナリオ作成処理を終了する(ステップS42)。
ステップS42の処理において、複合シナリオ作成処理を開始する操作を受け付けた場合には(ステップS42:YES)、ARシナリオ操作設定部17は、複合シナリオの基となる1つのARシナリオ(以下、「基本シナリオ」とも呼ぶ)を選択させる画面を選択する(ステップS44)。ARシナリオ操作設定部17は、基本シナリオを使用者に選択させるために、データ記憶部50に保存された複数のARシナリオを表示部35に表示させ、使用者に操作部34を操作させることで、複数のARシナリオから1つの基本シナリオを選択させる。なお、基本シナリオの選択の方法については、これに限られず、種々変形可能である。
次に、ARシナリオ操作設定部17は、基本シナリオに複合させた別のシナリオ(以下、「分岐シナリオ」とも呼ぶ)に分岐するためのトリガーを設定する(ステップS46)。ARシナリオ操作設定部17は、マイク33および操作部34が受け付けた操作に基づいて、基本シナリオに対してトリガーを設定する。AR画像抽出部21は、トリガーを設定するときに、トリガーを設定している基本シナリオの編集を行なっていることを使用者に視認させるために、予め設定された画像を表示部35に表示させる。換言すれば、AR画像抽出部21は、複合シナリオを編集する場合に、ARシナリオの中に予め設定された画像を挿入する。なお、本実施形態における分岐シナリオは、基本シナリオが全て終了した後に実行される新しいARシナリオも含む。
図11は、トリガーが設定されているときに表示される編集画像KCを示す説明図である。図11には、基本シナリオが魚FSのうろこを剥ぎ取ることを促すARシナリオである場合に、分岐シナリオへと分岐する編集時に表示される編集画像KCが示されている。基本シナリオにトリガーが設定されている場合には、基本シナリオが実行されているときと同じように検出された実物の魚FSの位置に対応付けられて、うろこ取りTLのAR画像である画像AR1と編集画像KCとが表示される。編集画像KCには、基本シナリオが「うろこ取り」のARシナリオであることと、基本シナリオが開始してから「8分37秒」が経過していることと、現時点で「分岐編集」状態であることと、を示す画像である。編集画像KCは、操作部34が受け付けた操作により、移動させたり、消去させたりすることができる。なお、編集時は、請求項における特定の時点に相当し、編集画像KCは、請求項における特定の画像に相当する。
ARシナリオ操作設定部17は、トリガーを設定すると(図10のステップS46)、基本シナリオが実行されているときに設定したトリガーが検出された場合に、分岐する分岐シナリオを設定する(ステップS48)。ARシナリオ操作設定部17は、分岐シナリオを設定するために、データ記憶部50に保存された複数のARシナリオを表示部35に表示させ、使用者に操作部34を操作させることで、複数のARシナリオから1つの分岐シナリオを設定する。なお、分岐シナリオの選択の方法については、これに限られず、種々変形可能である。
図12は、トリガーが検出された場合に分岐シナリオへ分岐したときに表示する画像を示す説明図である。図12には、撮像画像の中からトリガーとして設定された包丁KNが検出されて、分岐シナリオへ分岐したときに表示するテキスト画像TX2とAR画像である画像AR2が示されている。テキスト画像TX2は、うろこ取りTLを用いて魚FSのうろこを剥ぎ取ることを促すための文字画像であり、分岐シナリオに分岐された場合に表示するための付加された付加情報である。テキスト画像TX2は、ARシナリオを実行している装置が画像を表示できる表示範囲と対応付けられて表示されるように設定されている。画像AR2は、トリガーとして検出されて包丁KNが魚FSのうろこを剥ぎ取ることとは関係がないことを示すための「×」を表すAR画像である。画像AR2は、トリガーである包丁KNが検出された場合に、分岐シナリオにおいて、表示するように設定された付加情報である。画像AR2は、検出された包丁KNの位置に対応付けて表示されるように設定されている。
分岐シナリオが設定されると(図10のステップS48)、マイク33または操作部34は、選択された基本シナリオに対して、さらに、別の分岐シナリオを追加するか否かの操作を受け付ける(ステップS50)。別の分岐シナリオを追加する操作を受け付けた場合には(ステップS50:YES)、ARシナリオ操作設定部17は、ステップS46以降の処理を実行する。
ステップS50の処理において、別の分岐シナリオを追加する操作が受け付けられなかった場合には(ステップS50:NO)、ARシナリオ操作設定部17は、選択された基本シナリオに設定した分岐シナリオを合わせて複合シナリオとして作成し、作成した複合シナリオをデータ記憶部50に保存し、複合シナリオ作成処理を終了する。
A−4.複合シナリオの実行:
画像処理装置100によって作成された複合シナリオが実行される複合シナリオ実行処理について説明する。複合シナリオ実行処理では、外景の物体を検出でき、かつ、画像表示部にAR画像を表示できる装置が、外景の中から検出された特定の物体に基づいて、特定の複合シナリオを実行する処理である。なお、複合シナリオを実行できる装置としては、例えば、外景の物体を検出するための撮像カメラが搭載されたHMDなどがある。
図13は、頭部装着型表示装置200(HMD200)の外観構成を示す説明図である。HMD200は、使用者が虚像を視認すると同時に外景も直接視認可能な光学透過型の頭部装着型表示装置である。HMD200は、使用者の頭部に装着された状態において使用者に虚像を視認させる画像表示部80と、画像表示部80を制御する制御部70(コントローラー70)と、を備えている。
画像表示部80は、使用者の頭部に装着される装着体であり、眼鏡形状を有している。画像表示部80は、右表示駆動部82と、左表示駆動部84と、右光学像表示部86と、左光学像表示部88と、カメラ89と、デプスセンサー91と、9軸センサー87と、を含んでいる。右光学像表示部86および左光学像表示部88は、それぞれ、使用者が画像表示部80を装着した際に使用者の右および左の眼前に位置するように配置されている。右表示駆動部82と左表示駆動部84とは、使用者が画像表示部80を装着した際の使用者の頭部に対向する側に配置されている。
表示駆動部82,84は、液晶ディスプレイで形成されている。光学部材としての光学像表示部86,88は、導光板と調光板とを含んでいる。導光板は、光透過性の樹脂材料等によって形成され、表示駆動部82,84から出力された画像光を使用者の眼に導く。調光板は、薄板状の光学素子であり、使用者の眼の側とは反対の側である画像表示部80の表側を覆うように配置されている。
カメラ89は、使用者が画像表示部80を装着した際の使用者の眉間に対応する位置に配置されている。そのため、カメラ89は、使用者が画像表示部20を頭部に装着した状態において、使用者の視線方向の外部の景色である外景を撮像し、撮像した画像である撮像画像を取得する。デプスセンサー91は、撮像範囲に含まれる対象物までの距離を測定する距離センサーである。
9軸センサー87は、利用者の右側のこめかみに対応する位置に配置されている。9軸センサー87は、加速度(3軸)、角速度(3軸)、地磁気(3軸)を検出するモーションセンサーである。9軸センサー87は、画像表示部80に設けられているため、画像表示部80が利用者の頭部に装着されているときには、HMD200の利用者の頭部の動きを検出する動き検出部として機能する。ここで、頭部の動きとは、頭部の速度・加速度・角速度・向き・向きの変化を含む。
画像表示部80は、さらに、画像表示部80を制御部70に接続するための接続部85を有している。接続部85の一部は、右イヤホン81および左イヤホン83に延伸している。接続部を構成するコードとしては、例えば、金属ケーブルや光ファイバーを採用できる。画像表示部80と制御部70とは、接続部85を介して各種信号の伝送を行なう。
制御部70は、HMD200を制御するための装置である。制御部70は、複数のキーやトラックパッドなどによって構成される操作部である。制御部70の複数のキーは、押下操作を検出して、画像表示部80へと押下されたキーに対応する制御信号を送信する。制御部70のトラックパッドは、トラックパッドの操作面上での使用者の指の操作を検出して、検出内容に応じた信号を出力する。
制御部70は、画像表示部80を制御するCPU75(図示しない)を有している。CPU75は、無線通信などを介して受信したデータ記憶部50に保存された複合シナリオを実行する。制御部70が所定のキー操作受け付けると、CPU75は、カメラ89が撮像した撮像画像の中から、複合シナリオの中の基本シナリオに含まれるAR画像に対応付けられた物体(以下、「対応物体」とも呼ぶ)を検出する。CPU75は、検出した対応物体の位置に対応付けて、基本シナリオに含まれるAR画像を画像表示部80の光学像表示部86,88に表示させる。また、CPU75は、カメラ89が撮像した撮像画像の中から、基本シナリオから分岐シナリオへと分岐するためのトリガーとしての対象(以下、「トリガー対象」とも呼ぶ)の画像を検出する。CPU75は、カメラ89の撮像画像の中からトリガー対象の画像を検出すると、基本シナリオから分岐シナリオへと分岐し、分岐シナリオに基づくAR画像を光学像表示部86,88に表示させる。
図14は、複合シナリオ実行処理のフローチャートである。複合シナリオ実行処理では、初めに、使用者の頭部に装着されたHMD200の制御部70が複合シナリオ処理を実行する操作を受け付けたか否かを判定する(ステップS61)。制御部70が複合シナリオを実行する操作を受け付けなかった場合には(ステップS61:NO)、HMD200は、複合シナリオ実行処理を終了する。
ステップS61の処理において、制御部70は、複合シナリオを実行する操作を受け付けた場合には(ステップS61:YES)、実行する複合シナリオを使用者に選択させるための画像を画像表示部80の光学像表示部86,88に表示させる(ステップS63)。使用者は、光学像表示部86,88に表示された画像を視認し、制御部70のキーを操作することで、実行する1つの複合シナリオを選択できる。複合シナリオが選択されると、制御部70のCPU75は、カメラ89が撮像した撮像画像の中から、選択された複合シナリオの中の基本シナリオに含まれるAR画像に対応付けられた対応物体を検出する(ステップS65)。CPU75は、撮像画像の中から、パターンマッチングや統計的識別法を用いて、AR画像の対応物体を検出する。また、CPU75は、デプスセンサー91が測定した対応物体までの距離を測定する。なお、本実施形態では、1つの複合シナリオが選択されたが、他の実施形態では、複数の複合シナリオが選択されて、検出された対応物体によって実行される複合シナリオが決定されてもよい。実行される複合シナリオの数や複合シナリオの選択の方法については、種々変形可能である。
CPU75は、撮像画像の中から対応物体を検出すると、撮像画像の中における対応物体の位置を特定し、特定した対応物体の位置に対応付けて、複合シナリオに含まれるAR画像や付加情報を表示する(ステップS67)。HMD200では、カメラ89の撮像範囲と使用者が視認する光学像表示部86,88に表示される画素の位置とが整合するように予め設定されているため、CPU75が対応物体に対応付けてAR画像を光学像表示部86,88に表示すると、使用者は、現実の対応物体の位置に対応付けられたAR画像を視認できる。また、CPU75は、デプスセンサー91によって測定された対応物体までの距離に対応させてAR画像を立体視表示することもできる(ここでいう立体視表示とは、左右眼用の2つのAR画像間に視差を付けて表示することである)。なお、CPU75は、対応物体を検出しない場合には、複合シナリオに含まれるAR画像を表示しない。また、付加情報には、例えば、テキスト画像などの光学像表示部86,88に表示される画像だけでなく、イヤホン81,83を介して、出力される音声等も含まれる。
図15は、実行される複合シナリオに設定された対応物体が検出された場合に使用者が視認する視野VRを示す説明図である。図15に示すように、使用者が視認する視野VRには、頭部に装着した画像表示部80の光学像表示部86,88を透過した外景SCと、光学像表示部86,88に表示されたうろこ取りTLの画像AR1およびテキスト画像TX1と、が含まれている。外景SCには、まな板の上に置かれている魚FSが含まれる。うろこ取りTLの画像AR1およびテキスト画像TX1は、CPU75によって撮像画像の中から検出された魚FSの位置に対応付けられて光学像表示部86,88に表示される。画像AR1は、静止画ではなく、魚FSの頭から尻尾までを往復する動画である。
CPU75は、複合シナリオに含まれるAR画像を光学像表示部86,88に表示すると(図14のステップS67)、カメラ89の撮像画像の中から、分岐シナリオに分岐するためのトリガー対象の画像の検出を監視する(ステップS69)。CPU75は、撮像画像の中からトリガー対象の画像を検出した場合には(ステップS69:YES)、検出したトリガー対象に対応付けられた分岐シナリオに分岐して実行する(ステップS73)。CPU75は、実行するARシナリオを分岐シナリオに分岐させると、分岐シナリオに含まれるAR画像に対応付けられた対応物体を検出する(ステップS65)。CPU75は、検出した対応物体の位置を特定し、特定した対応物体の位置に対応付けて、分岐シナリオに含まれるAR画像を表示させる(ステップS67)。なお、分岐シナリオに含まれるAR画像に対応付けられた対応物体とトリガー対象とは、同じ物体であってもよいし、異なる物体であってもよい。
図16は、実行される分岐シナリオに設定されたトリガー対象が検出された場合に使用者が視認する視野VRを示す説明図である。図16に示すように、使用者が視認する視野VRには、頭部に装着した画像表示部80の光学像表示部86,88を透過した外景SCと、光学像表示部86,88に表示された「×」を表す画像AR2およびテキスト画像TX2と、が含まれている。外景SCには、まな板の上に置かれている魚FSと、使用者が右手に持っている包丁KNと、が含まれている。テキスト画像TX2は、CPU75によって撮像画像の中から検出された魚FSの位置に対応付けられて光学像表示部86,88に表示される。画像AR2は、撮像画像の中から検出された包丁KNの位置に対応付けられて光学像表示部86,88に表示される。
図14のステップS69の処理において、CPU75は、撮像画像の中からトリガー対象の画像を検出しなかった場合には(ステップS69:NO)、複合シナリオの中の実行しているARシナリオ(以下、「実行シナリオ」とも呼ぶ)を終了させるか否かを判定する(ステップS71)。CPU75は、実行シナリオを終了させる操作を制御部70が受け付けた場合や実行シナリオを表示する必要がないと判定した場合に、実行シナリオを終了させる。CPU75が実行シナリオを表示する必要がないと判断する例としては、魚FSのうろこ取りを促すARシナリオが実行されている場合に、カメラ89の撮像範囲において、魚FSの表面に魚FSのうろこが存在しないと判定された場合などがある。
ステップS71の処理において、CPU75は、実行シナリオの終了を終了させないと判定した場合には(ステップS71:NO)、引き続き、実行シナリオに含まれるAR画像および付加情報を光学像表示部86,88に表示させる。ステップS71の処理において、実行シナリオを終了させると判定された場合には(ステップS71:YES)、HMD200は、複合シナリオ実行処理を終了する。
以上説明したように、本実施形態の画像処理装置100では、AR画像抽出部21は、物体認識部13および3Dモデル生成部14によって認識された1つ1つの物体の内の移動物体のAR画像を生成する。そのため、本実施形態の画像処理装置100では、動いている物体を特定するだけで、特定した物体に対応するAR画像が生成されるため、使用者は、例えば、作業支援等のARシナリオを簡単に作成でき、使用者の使い勝手が向上する。
また、本実施形態の画像処理装置100では、AR画像抽出部21は、AR画像を生成する対象の移動領域を、不要画像消去部19によって消去された物体に対応付けてAR画像を生成する。そのため、本実施形態の画像処理装置100では、生成されたAR画像を含むARシナリオが実行された場合に、AR画像は、AR画像に対応付けられた現実に存在する物体の位置や大きさ等に対応付けられて表示される。例えば、ARシナリオが作業等の支援動画であった場合には、作業を行なう対象にAR画像を重畳させることで、使用者の作業性がより向上し、使用者の使い勝手が向上する。
また、本実施形態の画像処理装置100では、AR画像抽出部21は、生成するAR画像に対応付ける対象の大きさに、AR画像を生成する対象の大きさや移動領域を対応付けて、AR画像を生成する。そのため、本実施形態の画像処理装置100では、生成されたAR画像を含むARシナリオが実行された場合に、AR画像は、AR画像に対応付けられた現実に存在する物体の位置や大きさ等により対応付けられて表示され、使用者の使い勝手がより向上する。
以上説明したように、本実施形態の画像処理装置100では、距離センサー32が撮像した対象の表面までの距離を測定し、物体認識部13が3Dモデル生成部14によって生成された三次元モデルを用いて、撮像画像の中に含まれる1つ1つの物体を認識する。AR画像抽出部21は、不要画像消去部19によって消去された静止物体以外の移動している移動物体のAR画像を生成する。そのため、本実施形態の画像処理装置100では、所定の範囲が撮像されるだけで、距離が測定された移動物体のAR画像を含むARシナリオを作成できるため、使用者が簡単にARシナリオを作成でき、使用者の利便性が向上する。
また、本実施形態の画像処理装置100では、不要画像消去部19は、操作部34が受け付けた操作に基づいて、撮像画像の中から選択された移動物体や静止物体を、AR画像を生成しない対象として消去する。すなわち、不要画像消去部19は、生成されるAR画像の対象を選択している。そのため、本実施形態の画像処理装置100では、AR画像として、生成される必要がない移動物体や生成される必要がある静止物体が選択され、使用者がより使いやすいARシナリオや複合シナリオを作成でき、使用者の使い勝手が向上する。
また、本実施形態の画像処理装置100では、不要画像消去部19は、撮像画像に含まれる移動物体以外の静止物体をAR画像として生成されない対象として消去し、AR画像抽出部21は、不要画像消去部19によって消去されなかった撮像画像に含まれる移動物体のAR画像を生成する。そのため、本実施形態の画像処理装置100では、AR画像を生成する対象を選択する操作が行なわれなくても、自動的に移動物体のAR画像を生成する。よって、例えば、ARシナリオが作業等の支援動画であり、作業では何らかの対象を移動させる必要がある場合に、移動させるべき物体である移動物体のAR画像が自動的に生成され、使用者の使い勝手が向上する。
また、本実施形態の画像処理装置100では、不要画像消去部19は、撮像画像の中から、物体認識部13によって抽出された人体のパーツを消去し、AR画像抽出部21は、撮像画像の中から消去された人体のパーツをAR画像として生成しない。そのため、本実施形態の画像処理装置100では、ARシナリオが実行されている場合に、移動させるべき物体を動かすための手段である人の手などが表示されないため、使用者は、手などの不要なAR画像を視認せずに済み、使用者の利便性が向上する。
また、本実施形態の画像処理装置100では、AR画像抽出部21は、撮像中の移動物体が移動している間に、マイク33によって取得された音声を対応付けて、移動物体を対象とするAR画像を生成する。そのため、本実施形態の画像処理装置100では、作成されるARシナリオには、撮像画像を基に生成されたAR画像のような視覚的な情報に加えて、音声といった聴覚的な情報にも対応付けられたAR画像が含まれるので、使用者の利便性が向上する。
また、本実施形態の画像処理装置100では、マイク33によって取得された音声をテキスト画像として、移動物体と対応付けてAR画像を生成するため、音声を視覚的な情報としてAR画像と並列して生成でき、使用者が情報を認識しやすく、使用者の利便性がより向上する。
また、本実施形態の画像処理装置100では、AR画像抽出部21は、RGBカメラ31によって取得された撮像範囲のRGBデータを用いて、生成したAR画像に対して着色を行なう。そのため、本実施形態の画像処理装置100では、生成されたAR画像が、着色が行なわれていないAR画像と比較して、撮像画像に含まれる対象により似ているため、使用者がAR画像をより認識しやすく、使用者の利便性がより向上する。
また、本実施形態の画像処理装置100では、分岐シナリオに分岐するためのトリガー設定などの複合シナリオの編集時において、AR画像抽出部21は、編集状態であることを示す編集画像KCをARシナリオに挿入する。そのため、本実施形態の画像処理装置100では、ARシナリオに編集などがされている場合に、編集がされていることを視覚的な情報として使用者に認識させるための画像が編集されているARシナリオに挿入されるため、使用者の使い勝手が向上する。
また、本実施形態の画像処理装置100では、AR画像として、三次元モデルが360度のどの向きから見てもよいように生成されているため、ARシナリオが実行された場合に、使用者は、どの向きからも三次元モデルを確認でき、使用者の利便性が向上する。
B.第2実施形態:
図17は、第2実施形態における画像処理装置100aの構成を機能的に示すブロック図である。第2実施形態では、センサー制御部15aから送信されたRGBDデータがストリーミングデータとして出力されることで、3Dモデル生成部14aと物体認識部13aと物体トラッキング部12aとが撮像範囲に含まれる対象等の全ての三次元モデルを生成し、生成した三次元モデルをストリーミングデータとしてARシナリオ制御部11aに送信する点が第1実施形態と異なる。
図18は、第2実施形態におけるARシナリオ作成処理の一部のフローチャートである。第2実施形態のARシナリオ作成処理では、センサー制御部15aが外景を撮像して画素ごとのRGBDデータをストリーミングデータとして出力している間、所望の三次元モデルがストリーミングデータとして出力されるため、図18のステップS24aの処理が第1実施形態のAR作成シナリオ処理(図3)のステップS24の処理と異なる。そのため、第2実施形態では、図18のステップS24aについて説明し、その他の処理の説明を省略する。図18のステップS24aの処理において、センサー制御部15aからの画素ごとのRGBDデータのストリーミングデータに基づいて、3Dモデル生成部14aが、撮像範囲内に存在する実物体・実環境の対象をすべて含んだ三次元モデル(以下、単に「全体三次元モデル」と呼ぶ)を生成する。本実施形態では、具体的には、3Dモデル生成部14aは、カメラ331、332,332からのそれぞれの視点からのそれぞれの三次元モデルを生成し、これらの三次元モデルを1つに融合し、カメラ331、332,333からの視点に依存しない全体三次元モデルを得る。本実施形態では、全体三次元モデルは、ポリゴンメッシュ(たとえばレンダリングされたテクスチャー・トライアングル・メッシュ)のデータで表されている。そして、3Dモデル生成部14aは、その全体三次元モデルのデータをストリーミングデータとして出力する。なお、以降では、ストリーミングデータとして出力することを、単にストリーミング出力するともいう。
次に、物体認識部13aは、センサー制御部15aから送信された画素ごとのRGBDデータのうち、RGBデータのストリーミングデータに基づいて、全ての三次元モデルに含まれる個々の要素である三次元モデル(以下、単に「要素三次元モデル」とも呼ぶ)を区別して認識する。第2実施形態では、三次元モデルを区別する方法として、例えば、物体認識部13aは、RGBデータ内でエッジ検出などにより、実物体を区別し、区別した実物体がRGBデータで表される画像空間に占める領域を、全体三次元モデルの空間における領域に対応付ける。そうすると、全体三次元モデルのうち当該領域に含まれる部分(要素三次元モデル)が他の部分から区別される。物体認識部13aは、三次元モデルの区別の結果に応じて、全体三次元モデルに含まれる要素三次元モデルを修正する。
物体トラッキング部12aは、センサー制御部15aから送信されたRGBデータのストリーミングデータに対して画像処理を行なうことで、移動している実物体(移動物体)と静止している実物体とを特定する。物体トラッキング部12aは、特定した移動物体をRGBデータで表される画像空間内で追跡する。
ARシナリオ制御部11aは、物体認識部13aが特定した全体三次元モデルの中の要素三次元モデルの内、物体トラッキング部12aが追跡する移動物体に対応する要素三次元モデルをストリーミング出力する。物体トラッキング部12がストリーミング出力する要素三次元モデルには、三次元モデルの移動だけでなく、向きを含む姿勢の変化(例えば、回転など)も含まれる。なお、ストリーミング出力される要素三次元モデルは、本実施形態では、ポリゴンメッシュのデータで表されている。
AR画像抽出部21は、ARシナリオ制御部11aがストリーミング出力した要素三次元モデルに不要な部分が含まれる場合に、当該要素三次元モデルから不要な部分を消去する。AR画像抽出部21によって判断される不要な部分は、複数の要素三次元モデルの内の1つの要素三次元モデルや、要素三次元モデルの一部、例えば、対象である実物体を覆っている人間の体の一部分(例えば、手)を表す要素三次元モデルの部分などがある。AR画像抽出部21は、要素三次元モデルから不要な部分を削除した後に残った要素三次元モデルをストリーミング出力する。
データ記憶部50は、AR画像抽出部21によってストリーミング出力された要素三次元モデルを抽出三次元モデルとして記録する。その後、ARシナリオ制御部11aは、記録された抽出三次元モデルを用いて、ARシナリオを作成する。ARシナリオに含まれるAR画像は、抽出三次元モデルを表す画像であってもよいし、抽出三次元モデルの外観を修正した画像であってもよい。また、抽出三次元モデルは、ARシナリオ作成処理の撮像開始時に撮像された三次元モデル(例えば、図5で示すようなうろこ取りTLの三次元モデル)であってもよいし、または、CADデータによるものなどその他の三次元モデルに置き換えてもよい。この場合、要素三次元モデルから不要な部分を削除した後でも、例えば、手などで隠された部分が欠如しないないAR画像が実現する。また、本実施形態のAR画像は、三次元モデルのストリームデータ(例えば、ポリゴンメッシュのストリームデータ)によって表されている。このため、ストリームデータの始点と終点との間で規定される時間期間内の任意の時点で、AR画像に対して任意に視点を変え、表示されるAR画像の向きを変えることができる。なお、カメラ331〜333のいずれか一つからの視点が、ARシナリオ制御部11aによって、デフォルト視点情報としてARシナリオに包含されてもよい。
作成されたARシナリオは、ストリーミング出力された移動物体が実際に移動している間に撮像された連続的な動きを備えるAR画像を含んでもよい。なお、AR画像が連続的に動く時間の長さは、AR画像の基となる撮像された移動物体が実際に移動している時間と同じであってもよいし、異なっていてもよい。また、ARシナリオは、連続的な動きのAR画像ではなく、離散的な動きのAR画像によって構成されていてもよい。離散的な動きのAR画像として、例えば、ARシナリオにおいて、撮像された移動物体の動き出した時点の状態から移動を終了した時点の状態までの少なくとも一時点の状態がAR画像として生成されてもよいし、動き出した時点と、終了した時点と、動き出した時点から終了した時点までの間の一時点と、を生成したAR画像であってもよい。
C.第3実施形態:
図19は、第3実施形態における画像処理装置100bの構成を機能的に示すブロック図である。図20は、第3実施形態におけるARシナリオ作成処理の一部のフローチャートである。第3実施形態では、第2実施形態の構成と比較して、画像処理装置100aのCPU10aが物体認識部13aを有しない点が異なり、その他の構成については同じである。図19に示すように、第3実施形態では、物体認識部13aがないため、AR作成処理のステップS24bの処理が第2実施形態のAR作成処理(図18)のステップS24aの処理と異なる。第3実施形態では、第2実施形態と異なる点について説明し、同じである点についての説明を省略する。
図19のステップS24bの処理において、物体トラッキング部12bは、3Dモデル生成部14bがストリーミング出力した全体三次元モデルを受け取る。そして、物体トラッキング部12bは、全体三次元モデルの中で、動いている三次元モデル(要素三次元モデル)と、動いていない三次元モデルと、を特定(区別)する。そして、物体トラッキング12bは、特定(区別)した要素三次元モデルを、ストリーミング出力する。
D.第4実施形態:
第4実施形態では、撮像した撮像データから、移動物体のAR画像と、移動物体に関連すると判定されると共に静止している関連静止物体のAR画像と、を組み合わせた複数のARシナリオが自動的に作成されることが、第1実施形態および第2実施形態と比較して主に異なる。第4実施形態では、ARシナリオ制御部11aは、ARシナリオが実行されるためのトリガー対象として、移動物体と関連静止物体とのそれぞれを設定する。ARシナリオ制御部11aは、ARシナリオが実行された場合に検出されるトリガー対象しての移動物体と関連静止物体との所定の組み合わせとして、下記(1)−(4)の場合についてのそれぞれのARシナリオを作成する。
(1)トリガー対象としての移動物体のみを検出した場合
(2)トリガー対象としての関連静止物体のみを検出した場合
(3)トリガー対象としての移動物体と関連静止物体とのいずれも検出した場合
(4)トリガー対象としての移動物体と関連静止とのいずれも検出しない場合
なお、第4実施形態では、上記(1)−(4)の条件の検出のそれぞれに対応したARシナリオが作成されたが、他の実施形態では、上記(1)−(4)の4つの場合の内の3つ以下の場合に対応するARシナリオが作成されてもよい。
図21および図22は、第4実施形態におけるARシナリオ作成処理のフローチャートである。第4実施形態のARシナリオ作成処理では、第2実施形態のARシナリオ作成処理と比較して、以下の2点が異なる。1つは、既に撮像された撮像データを元にしてARシナリオを作成できることであり、もう1つは、自動的に上記(1)−(4)の場合の複数のARシナリオを作成することとである。なお、第4実施形態における他の処理については、第2実施形態のARシナリオ作成処理と同じである。そのため、第4実施形態のARシナリオ作成処理では、第2実施形態および第3実施形態と同じステップS14からステップS22までの処理の説明を省略する。
第4実施形態のARシナリオ作成処理では、初めに、マイク33または操作部34がARシナリオの作成を開始する所定の操作を受け付ける(ステップS81)。マイク33または操作部34は、ARシナリオの作成を開始する所定の操作を受け付けると(ステップS81:YES)、作成するARシナリオが撮像データを元に作成するか否かの所定の操作を受け付ける(ステップS83)。撮像データを元にARシナリオを作成しない所定の操作を受け付けると(ステップS83:NO)、ARシナリオ制御部11aは、第2実施形態と同じステップS14からステップS22までの処理を行なう。ステップS83の処理において、撮像データを元にARシナリオを作成する所定の操作を受け付けると(ステップS83:YES)、第2実施形態と同じように、3Dモデル生成部14aは、全体三次元モデルを生成する(図22のステップS24a)。具体的には、3Dモデル生成部14aは、センサー制御部15aからの画素ごとのRGDBデータのストリーミングデータに基づいて、全体三次元モデルを生成する。
図23ないし図27は、第4実施形態におけるRGBカメラ31および距離センサー32によって複数の被写体を含む外景SCを撮像する場合の説明図である。図23には、筐体BXと、カバーCVと、工具のドライバーDVと、4つのボルトBTと、を含む外景SCが示されている。図23から図26では、ドライバーDVとボルトBTとによって、別部品としてばらばらの筐体BXとカバーCVとが、一体の部品として取り付けられるまでの変化が表されている。筐体BXには、ボルトBTのおねじ部が嵌合するための4箇所のめねじ部Bhが形成されている。また、筐体BXに対してカバーCVを固定するために、カバーCVには、筐体BXとカバーCVとが組み合わされたときに、筐体BXのめねじ部Bhに対応する位置に正円状の穴Chが形成されている。
図24には、図23に示す外景SCと比較して、作業者の左手LHが、カバーCVを移動していない筐体BXに対して固定される位置に保持している外景SCが示されている。図24に示す状態では、筐体BXとカバーCVとは、ボルトBTによって固定されておらず、カバーCVの位置は、左手LHによって一時的に固定されている。なお、図23に示す外景SCから図24に示す外景SCへと変化した状態では、カバーCVは、移動しているため、移動物体である。また、筐体BXは、移動物体のカバーCVに接触している静止物体であるため、関連静止物体である。
図25には、図24に示す外景SCと比較して、作業者の右手RHがドライバーDVを把持し、ドライバーDVの先端に1つのボルトBTが装着している外景SCが示されている。なお、図25では、筐体BXとカバーCVと左手LHとの位置は変化していない。図24に示す外景SCから図25に示す外景SCへと変化した状態では、ドライバーDVとドライバーDVの先端に装着されたボルトBTとが移動物体である。なお、ドライバーDVとボルトBTとは、一体になって移動しているときは、1つの移動物体としてみなすこともできる。ドライバーDVに装着されていない3つのボルトBTは、移動物体とは関連のない静止物体である。また、図示されていないが、ドライバーDVとボルトBTとが一体化する前の状態では、ドライバーDVまたはボルトBTが移動物体であり、もう一方が関連静止物体の状態がある。
図26には、図25に示す外景SCと比較して、右手RHに把持されたドライバーDVの先端に装着された1つのボルトBTが筐体BXの1つのめねじ部Bhに挿入されて回転している外景SCが示されている。なお、図25に示す外景SCから図26に示す外景SCへと変化した状態では、筐体BXおよびカバーCVは、移動していない。そのため、ドライバーDVおよびボルトBTは、移動物体であり、筐体BXおよびカバーCVは、関連静止物体である。
図27には、図26に示す外景SCと比較して、1つのボルトBTが筐体BXの1つのめねじ部Bhと嵌合することによって、筐体BXとカバーCVとが固定され、ドライバーDVの先端がボルトBTから離れた状態の外景SCが示されている。図26に示す外景SCから図27に示す外景SCまで変化した状態では、ドライバーDVは、移動物体であり、筐体BXとカバーCVとボルトBTとは、関連静止物体である。なお、他の実施形態では、ドライバーDVが移動物体であり、筐体BXとカバーCVとボルトBTとは、ドライバーDVと無関係で、関連静止物体でないとして扱われてもよい。
図22のステップS24aでは、図23から図27までに示された外景SCの変化の撮像画像から、移動物体と関連静止物体とを含む全ての対象のそれぞれの3Dモデルが作成される。その後、ARシナリオ制御部11aは、生成された全体三次元モデルの中から、物体トラッキング部12aによって特定された1つ以上の移動物体の内から1つの移動物体を選択する(ステップS85)。ARシナリオ制御部11aは、図23から図27までの外景SCの変化において、例えば、図23から図24までの外景SCの変化における移動物体としてのカバーCVを選択する。
AR画像抽出部21は、選択された移動物体としてのカバーCVのAR画像として、後述するカバー画像IMCを生成する(ステップS87)。その後、ARシナリオ制御部11aは、物体認識部13aによって測定距離に基づいて、選択した移動物体としてのカバーCVと接触していると特定する関連静止物体があるか否かを判定する(ステップS89)。ARシナリオ制御部11aは、移動物体に対して所定の距離以内に存在する静止物体を、移動物体と接触している関連静止物体として特定する。図23から図24までの外景SCの変化において、ARシナリオ制御部11aは、移動物体としてのカバーCVの関連静止物体として筐体BXを特定する。そのため、カバーCVに対する関連静止物体があると判定され(ステップS89:YES)、AR画像抽出部21は、全ての関連静止物体のAR画像を生成する(ステップS91)。AR画像抽出部21は、関連静止物体である筐体BXのAR画像として、後述する筐体画像IMXを生成する。
その後、不要画像消去部19は、選択された移動物体と関連静止物体とを除くその他の移動物体および静止物体を不要な物体として消去する(ステップS93)。図23から図24までの外景SCの変化では、不要画像消去部19は、カバーCVとボルトBTと左手LHとを不要な物体として消去する。その後、ARシナリオ制御部11aは、AR画像が生成された移動物体のカバーCVと関連静止物体の筐体BXとのそれぞれを、ARシナリオが実行されるためのトリガー対象として設定する。ARシナリオ制御部11aは、設定したトリガー対象としての移動物体の有無と関連静止物体の有無との組み合わせに対応するARシナリオを作成する(ステップS95)。トリガー対象の組み合わせに対応して作成されるARシナリオの詳細については、後述する。
ARシナリオ制御部11aは、所定の組み合わせに対応するそれぞれのARシナリオを作成すると、撮像データに含まれる全ての移動物体を選択してARシナリオを作成したか否かを判定する(ステップS97)。ARシナリオ制御部11aは、移動物体としてカバーCVのみしか選択しておらず、全ての移動物体を選択していないため(ステップS97:NO)、ステップS85以降の処理を行なう。ステップS97の処理において、ARシナリオ制御部11aは、カバーCV以外の撮像データにおける全ての移動物体を選択したと判定した場合には(ステップS97:YES)、作成した全てのARシナリオをデータ記憶部50に保存して、ARシナリオ作成処理を終了する。
図28は、第4実施形態のARシナリオ作成処理のステップS95の処理において作成されるトリガー対象の組み合わせとARシナリオとの組み合わせの一例を示す一覧表である。図28には、作成されたARシナリオが実行された場合に、検出されるトリガー対象の所定の組み合わせ(1)−(4)に対応して表示される表示画像が示されている。図28には、移動物体がカバーCVであり、関連静止物体が筐体BXである場合について、(1)−(4)の組み合わせ対応する表示画像が示されている。以降では、ARシナリオが実行されている場合に、検出されるトリガー対象に対応させて表示される表示画像について説明する。
図29は、ARシナリオが実行されている場合の表示画像決定処理のフローチャートである。表示画像決定処理は、ARシナリオが実行されている場合に、検出されたトリガー対象の組み合わせに応じて、ARシナリオを実行している機器としてのHMD200が光学像表示部86,88に表示する表示画像を決定する処理である。
表示画像決定処理では、初めに、HMD200のカメラ89は、外景を撮像する(ステップS101)。HMD200のCPU75は、カメラ89の撮像画像の中に図28に示す組み合わせ(1)のトリガー対象を検出したか否かを判定する(ステップS103)。CPU75は、組み合わせ(1)のトリガー対象を検出したと判定した場合には(ステップS103:YES)、組み合わせ(1)に対応付けられた表示画像を光学像表示部86,88に表示させる画像として決定する(ステップS111)。その後、CPU75は、表示画像決定処理を終了する。
図30は、組み合わせ(1)に対応付けられた表示画像が光学像表示部86,88に表示されたときに使用者が視認する視野VRの一例を示す説明図である。図30には、トリガー対象としての移動物体であるカバーCVが検出された場合に、HMD200の画像表示部80を頭部に装着した使用者が視認する視野VRの一例が示されている。図30に示すように、使用者は、外景SCに含まれる実物のカバーCVとドライバーDVとボルトBTとに加えて、画像として表示されている筐体画像IMXを視認する。言い換えれば、図28に示す組み合わせ(1)のように、ARシナリオ制御部11aは、ARシナリオが実行されて、トリガー対象としての移動物体であるカバーCVのみが検出された場合に、関連静止物体の筐体画像IMXのみを表示画像として設定したARシナリオを作成する。なお、図30には、実物のドライバーDVおよび複数のボルトBTが検出されているが、図28に示す組み合わせにおいて、実物のドライバーDVおよびボルトBTは、表示画像の有無とは無関係である。なお、後述する図31ないし図33においても、実物のドライバーDVおよびボルトBTは、表示画像の有無とは無関係である。
図29のステップS103の処理において、CPU75は、組み合わせ(1)のトリガー対象を検出していないと判定した場合には(ステップS103:NO)、図28に示す組み合わせ(2)のトリガー対象を検出しているか否かを判定する(ステップS105)。CPU75は、組み合わせ(2)のトリガー対象を検出したと判定した場合には(ステップS105:YES)、組み合わせ(2)に対応付けられた表示画像を光学像表示部86,88に表示させる画像として決定する(ステップS113)。その後、CPU75は、表示画像決定処理を終了する。
図31は、組み合わせ(2)に対応付けられた表示画像が光学像表示部86,88に表示されたときに使用者が視認する視野VRの一例を示す説明図である。図31には、トリガー対象としての関連静止物体である筐体BXが検出された場合に、HMD200の使用者が視認するVRの一例が示されている。図31に示すように、CPU75は、ARシナリオを実行して、トリガー対象としての関連性物体である筐体BXのみが検出された場合に、図28の組み合わせ(2)に示す画像を光学像表示部86,88に表示させる。CPU75は、表示画像として、移動物体であるカバーCVのカバー画像IMCを、ARシナリオ作成時の撮像データにおいて最後に静止した位置、すなわち、カバーCVが筐体BXに装着された位置にカバー画像IMCに表示させる。言い換えれば、ARシナリオ制御部11aは、関連静止物体である筐体BXに一体化された位置にカバーCVのAR画像であるカバー画像IMCを表示させるARシナリオを作成する。
図29のステップS105の処理において、CPU75は、組み合わせ(2)のトリガー対象を検出していないと判定した場合には(ステップS105:NO)、図28に示す組み合わせ(3)のトリガー対象を検出しているか否かを判定する(ステップS107)。CPU75は、組み合わせ(3)のトリガー対象を検出したと判定した場合には(ステップS107:YES)、組み合わせ(3)に対応付けられた表示画像を光学像表示部86,88に表示させる画像として決定する(ステップS115)。その後、CPU75は、表示画像決定処理を終了する。
図32は、組み合わせ(3)に対応付けられた表示画像が光学像表示部86,88に表示されたときに使用者が視認する視野VRの一例を示す説明図である。図32には、トリガー対象としての移動物体であるカバーCVおよび関連静止物体である筐体BXが検出された場合に、HMD200の使用者が視認する視野VRの一例が示されている。図32に示すように、CPU75は、ARシナリオを実行して、トリガー対象としての筐体BXおよびカバーCVとが検出された場合に、図28の組み合わせ(3)に示す画像を光学像表示部86,88に表示させる。CPU75は、表示画像として、図31に示すカバー画像IMCと同様に、関連静止物体である筐体BXに一体化された位置にカバーCVのカバー画像IMCを光学像表示部86,88に表示させる。言い換えれば、ARシナリオ制御部11aは、関連静止物体である筐体BXに一体化された位置にカバーCVのAR画像であるカバー画像IMCを表示させるARシナリオを作成する。
図29のステップS107の処理において、CPU75は、組み合わせ(3)のトリガー対象を検出していないと判定した場合には(ステップS107:NO)、図28に示す組み合わせ(4)のトリガー対象を検出しているか否かを判定する(ステップS109)。CPU75は、組み合わせ(4)のトリガー対象を検出したと判定した場合には(ステップS109:YES)、組み合わせ(4)に対応付けられた表示画像を光学像表示部86,88に表示させる画像として決定する(ステップS117)。その後、CPU75は、表示画像決定処理を終了する。
図33は、組み合わせ(4)に対応付けられた表示画像が光学像表示部86,88に表示されたときに使用者が視認する視野VRの一例を示す説明図である。図33には、トリガー対象としての移動物体であるカバーCVおよび関連静止物体である筐体BXが検出されなかった場合に、HMD200の使用者が視認する視野VRが示されている。図33に示すように、CPU75は、ARシナリオを実行して、いずれのトリガー対象も検出しなかった場合に、図28の組み合わせ(4)に示す画像を光学像表示部86,88に表示させる。CPU75は、表示画像として、移動物体であるカバーCVと関連静止物体である筐体BXとが一体化した状態を表すカバー画像IMCと、筐体画像IMXと、を光学像表示部86,88に表示させる。言い換えれば、ARシナリオ制御部11aは、いずれのトリガー対象も検出されなかった場合に、筐体BXとカバーCVとが一体化したAR画像としての筐体画像IMXとカバー画像IMCとを表示させるARシナリオを作成する。
図29のステップS109の処理において、CPU75は、組み合わせ(4)のトリガー対象を検出していないと判定した場合には(ステップS109:NO)、いずれのAR画像も光学像表示部86,88に表示させずに、表示画像決定処理を終了する。なお、他の実施形態では、第4実施形態の表示関連処理の後に、異なる移動物体と関連静止物体とをトリガー対象とする表示関連処理が行なわれてもよい。このように、第4実施形態のARシナリオ制御部11aは、図28に示すように、トリガー対象の組み合わせのそれぞれに対応するAR画像を含むARシナリオを自動で作成する。なお、移動物体であるカバーCVは、請求項における移動対象に相当し、関連静止物体である筐体BXは、請求項における関連静止対象に相当する。また、カバーCVのカバー画像IMCは、請求項における移動対象対応画像に相当し、静止関連物体である筐体BXの筐体画像IMXは、請求項における関連静止対象画像に相当する。
以上説明したように、第4実施形態の画像処理装置100aでは、ARシナリオ制御部11aは、ARシナリオが実行されるためのトリガー対象としてカバーCVと筐体BXとを設定する。そのため、第4実施形態の画像処理装置100aでは、予め設定された特定の条件の検出によってARシナリオが実行されるように作成されるため、ARシナリオの用途に応じた実行のタイミングを設定できる。
また、第4実施形態の画像処理装置100aでは、ARシナリオ制御部11aは、ARシナリオが実行されたときに検出される移動物体のカバーCVの有無と関連静止物体の筐体BX有無との組み合わせに対応するカバー画像IMCと筐体画像IMXとのAR画像の表示有無を含むARシナリオを作成する。そのため、第4実施形態の画像処理装置100aでは、特に何の操作をしなくても、撮像データに基づいて、移動物体に関連するAR画像を含む複数のARシナリオが作成され、画像処理装置100aの使い勝手が向上する。
E.変形例:
なお、この発明は上記実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能であり、例えば、次のような変形も可能である。
E−1.変形例1:
上記第1実施形態では、魚FSのうろこを取ることを促す基本シナリオと、基本シナリオから包丁KNが検出された場合に分岐する分岐シナリオと、によって構成される複合シナリオについて説明したが、複合シナリオについては、これに限られず、種々変形可能である。例えば、2つのARシナリオから構成された複合シナリオである必要はなく、1つのARシナリオであってもよいし、3つ以上のARシナリオが複合された複合シナリオであってもよい。また、基本シナリオと分岐シナリオとのように、ARシナリオが上と下とで区別されておらず、並列に扱われた複数のARシナリオによって複合シナリオが作成されてもよい。
上記実施形態では、RGBカメラ31やマイク33によって取得されたデータに基づいて、AR画像等の生成が行なわれたが、必ずしもこれらの装置は必須の構成ではなく、これらの装置については、種々変形可能である。例えば、画像処理装置100は、RGBカメラ31、マイク33、操作部34、表示部35を備える必要はなく、自動的に撮像した撮像範囲の中の移動物体のAR画像のみを作成して、ARシナリオを作成してもよい。また、CPU10は、付加情報取得部18を有する必要はなく、単に、撮像画像のみの画像データに基づいて、ARシナリオを作成してもよい。
上記第1実施形態では、ARシナリオ操作設定部17は、基本シナリオと分岐シナリオとによって構成される複合シナリオを作成するときに、基本シナリオから分岐シナリオへと分岐する際のトリガーを設定する場合に、編集画像KCのような画像を表示させたが、必ずしもこのような画像を表示させる必要はない。ARシナリオ操作設定部17は、編集時に、編集画像KCの画像を表示させる代わりに、AR画像等の色を変更させて表示させることで、トリガーを設定していること使用者に認識させてもよい。また、ARシナリオ操作設定部17は、編集画像KCの画像を表示させる代わりに、音声を出力させることで、使用者にトリガーを設定していることを使用者に認識させてもよい。この変形例では、音声で使用者に編集等の状態を認識させることができるため、編集画像KCなどの画像を表示する場合と比較して、編集画像KCがAR画像に重複することがなく、編集時等の使用者の使い勝手がより向上する。
また、上記実施形態では、3台のカメラ311,312,313と、3台の距離センサー321、322、323によって撮像されたが、1台のカメラによって撮像されてもよいし、1対のカメラと距離センサーによって撮像されてもよい。例えば、HMDに搭載された1対のカメラ311および距離センサー321によって、外景SCが撮像され、HMDの装着者が被写体OB(実演者)となって、被写体OBの行動または作業がトラッキングされることで、ARシナリオが作成されてもよい。この場合、被写体OBの頭部の動きによって撮像範囲が変化しても、HMDに搭載された9軸センサー87などによって、実空間と三次元モデルの空間との対応関係を補正できる。また、1台のカメラであっても、容易に二次元モデルまたは三次元モデルのAR画像を含むARシナリオを作成できる。この場合、AR画像またはARシナリオを生成する画像処理装置100は、HMD上のプロセッサーおよび記憶装置によって実現されてもよいし、HMDとネットワーク(例えば、無線LAN)経由で双方向に通信可能な外部のコンピューターに包含されたプロセッサーおよび記憶装置によって実現されてもよい。
そして、この場合において、手などに隠されることよってAR画像に遮蔽部分が生じることを防ぐ方法の一つは、上記の方法に加えて、以下の方法がある。それはたとえば、ARシナリオ作成時に、HMDを装着した実演者に対して、当該HMDが「あなたが持っている物を違う角度や向きで見せて」など視覚または聴覚に訴えるメッセージを提示し、当該物の異なる角度又は向きの画像をカメラ311・距離センサー321が取得した場合に、異なる角度又は向きからの画像を合成して1つの三次元モデルとすることも可能である。
また、上記実施形態では、不要画像消去部19が不要な物体をAR画像として生成しないように削除したが、不要な物体の処理については、種々変形可能である。例えば、不要な物体を、移動物体と同様にAR画像として生成してもよいし、RGBデータを変化させることで、半透明のAR画像や二次元の画像として生成してもよい。この変形例では、例えば、作成されたARシナリオを実行している使用者がうろこ取りTLの持ち方などがわからない場合に、被写体OBの手の部分の画像をうろこ取りTLのAR画像と対応付けて表示させることで、使用者の利便性が向上する。
E−2.変形例2:
また、CPU10は、自動学習部を有していてもよい。自動学習部は、撮像画像に含まれる物体の画像についての姿勢や位置を学習することで、移動物体や規格が決まっていない不定形物も認識できる。また、自動学習部は、複数認識アルゴリズムによって、形状、色、模様といった最適な組み合わせを自動選択することで、環境変化(例えば、工程の変化や照明の変化)に対する順応性が高い学習型の認識を実現できる。
上記実施形態では、AR画像が生成される対象と、当該対象から所定の範囲内の検出される対応物体との位置関係が対応付けられたが、必ずしも、AR画像が生成される対象から近い距離の対応物体との位置関係に対応付けられてAR画像が生成されなくてもよい。例えば、撮像画像の中から検出された対応物体の位置関わらず、対応物体が検出されると、予め設定された位置にAR画像が表示されてもよい。また、対応物体とAR画像との位置関係は、操作部34が受け付けた操作によって、適宜、設定されてもよい。
また、上記実施形態では、不要画像消去部19は、検出された対応物体の位置に対応付けてAR画像を生成したが、必ずしも、検出された対応物体の位置に対応付けて、AR画像を生成する必要はない。例えば、AR画像は、マイク33によって取得された使用者の音声に対応付けられて生成されてもよい。
第1実施形態および第2実施形態では、被写体OBが行う行動または作業として、料理を作る作業を例示して実施形態を説明した。しかし、本発明の他の態様は、工場における機械部品の取付け、機械の点検、その他、機械的な実物体に対して行う作業の際に表示されるAR画像を作成する実施形態に適用できる。また、本発明のさらに他の態様は、レゴ社のレゴ(登録商標)ブロックの組み立て方など、玩具を使った作業(レジャーやゲーム)の際に表示されるAR画像を作成する実施形態にも適用できる。
E−3.変形例3:
このように、第4実施形態の画像処理装置100aでは、ARシナリオ制御部11aは、ARが実行されたときに検出されるトリガー対象の組み合わせのそれぞれに対応するARシナリオを自動的に作成した。それに加えて、ARシナリオ制御部11aは、所定の操作を受け付けることにより、第1実施形態のように、付加情報取得部18が音声等の付加情報を作成されたARシナリオに追加してもよい。
また、第4実施形態の画像処理装置100aでは、ARシナリオ制御部11aは、移動物体の有無と静止関連物体の有無との全ての組み合わせに対応するARシナリオを作成したが、一部の組み合わせに対応するARシナリオのみを作成してもよい。また、ARシナリオ制御部11aは、図22のステップS97の処理において、撮像データの中の全ての移動物体を選択した組み合わせに対応するARシナリオを作成したが、選択された一部の移動物体のみに対応するARシナリオのみを作成してもよい。
また、図29に示す第4実施形態の表示画像決定処理では、図28に示す組み合わせのトリガー対象と一致するかの判定により、表示画像が決定したが、1つ1つのトリガー対象が検出されるか否かの判定によって、表示画像が決定されてもよい。例えば、ARシナリオに含まれる全てのトリガー対象として、4つの部品としてのカバーCV、筐体BX、ドライバーDV、ボルトBTがある場合に、それぞれの部品の検出の有無によって、フローチャートが分岐して、表示画像が決定されてもよい。具体的には、最初に、カバーCVの検出が判定され、次に、筐体BXの検出が判定され、次に、ドライバーDVの検出が判定され、次に、ボルトBTの検出が判定されて、全ての判定結果に基づいて、表示画像が決定されてもよい。この変形例の表示画像決定処理では、複数のトリガー対象がARシナリオに設定されている場合でも、対応したARシナリオに含まれるAR画像を表示できる。
本発明は、上記実施形態や変形例に限られるものではなく、その趣旨を逸脱しない範囲において種々の構成で実現することができる。例えば、発明の概要の欄に記載した各形態中の技術的特徴に対応する実施形態、変形例中の技術的特徴は、上述の課題の一部または全部を解決するために、あるいは、上述の効果の一部または全部を達成するために、適宜、差し替えや、組み合わせを行なうことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。