(57)【要約】【課題】表示装置の位置姿勢の変化によらず、物体の三次元モデルを正確に表示装置に表示する画像処理装置を提供する。【解決手段】画像処理装置は、カメラから取得した可視画像中の物体の領域である第１物体領域を検出する第１領域検出部１０３と、物体の形状を表す複数の三次元点を取得する三次元点取得部１０５と、ＨＭＤの位置姿勢を表す位置姿勢情報を取得する位置姿勢取得部１０７と、位置姿勢情報に応じた座標系に物体に対応する三次元モデルを投影した投影モデル領域を取得する投影モデル領域取得部１０８と、投影モデル領域と第１物体領域との領域差が所定の収束条件を満たすような三次元モデルのモデルパラメータを推定するモデル推定部１０６と、モデルパラメータが収束条件を満たす三次元モデルを可視画像に重畳した表示画像を、ＨＭＤに表示させる表示制御部１１０と、を備える。【選択図】図４
2018128739.tif 000002
【特許請求の範囲】
【請求項１】
撮像手段が撮像する撮像画像に基づいた表示画像を表示手段に表示させる画像処理装置であって、
前記撮像手段から部位毎に位置もしくは角度が可変な物体を含む撮像画像を取得する画像取得手段と、
前記撮像画像から前記物体の領域である第１物体領域を検出する第１領域検出手段と、
前記物体の形状を表す複数の三次元点を取得する三次元点取得手段と、
前記表示手段の位置姿勢を表す位置姿勢情報を取得する位置姿勢取得手段と、
前記位置姿勢情報に応じた前記表示画像の座標系に、前記物体に対応する三次元モデルを投影した投影モデル領域を取得する投影モデル領域取得手段と、
前記投影モデル領域と前記第１物体領域との領域差を算出する領域差算出手段と、
前記複数の三次元点及び前記領域差に基づいて、前記領域差が所定の収束条件を満たすような前記三次元モデルの各部位の位置もしくは角度を設定するためのモデルパラメータを推定するモデル推定手段と、
前記撮像画像に、各部位のモデルパラメータが前記収束条件を満たす前記三次元モデルを重畳した前記表示画像を、前記表示手段に表示させる表示制御手段と、を備えることを特徴とする、
画像処理装置。
【請求項２】
前記撮像手段とは視点が異なる位置に設けられた距離画像センサから距離画像を取得する距離画像取得手段と、
前記距離画像から前記物体の領域である第２物体領域を検出する第２領域検出手段と、をさらに備え、
前記三次元点取得手段は、前記第２物体領域に基づいて前記複数の三次元点を取得することを特徴とする、
請求項１に記載の画像処理装置。
【請求項３】
前記モデル推定手段は、前記三次元モデルの各部位のモデルパラメータを前記三次元点と前記三次元モデルとの距離に応じて推定し、このモデルパラメータを前記領域差に基づいて更新することを特徴とする、
請求項１または２に記載の画像処理装置。
【請求項４】
前記投影モデル領域取得手段は、前記三次元モデルを前記表示画像の座標系に投影して、前記表示画像において隠れる前記三次元モデルの部位を判定し、
前記モデル推定手段は、隠れていると判定された前記部位のモデルパラメータを固定し、隠れていないと判定された部位のモデルパラメータを前記領域差に応じて更新することを特徴とする、
請求項１〜３のいずれか１項に記載の画像処理装置。
【請求項５】
前記モデル推定手段は、前記三次元点に応じて前記三次元モデルの各部位のモデルパラメータを推定し、さらに前記領域差に応じて当該モデルパラメータを更新することを特徴とする、
請求項１〜４のいずれか１項に記載の画像処理装置。
【請求項６】
前記モデル推定手段は、前記三次元点と前記三次元モデルとの距離と、前記領域差とを統合した評価関数に基づいて、前記三次元モデルのモデルパラメータを推定することを特徴とする、
請求項１〜５のいずれか１項に記載の画像処理装置。
【請求項７】
前記画像取得手段は、前記撮像画像を取得する第１取得時刻を保持し、
前記距離画像取得手段は、前記距離画像を取得する第２取得時刻を保持し、
前記モデル推定手段は、前記第１取得時刻と前記第２取得時刻との時刻差に基づいて、前記三次元点と前記三次元モデルとの距離と、前記領域差との重みを変更して、前記三次元モデルのモデルパラメータを推定することを特徴とする、
請求項２に記載の画像処理装置。
【請求項８】
前記物体は手であることを特徴とする、
請求項１〜７のいずれか１項に記載の画像処理装置。
【請求項９】
前記表示手段はヘッドマウントディスプレイであり、カメラである前記撮像手段と一体に構成されることを特徴とする、
請求項１〜８のいずれか１項に記載の画像処理装置。
【請求項１０】
撮像手段が撮像する撮像画像に基づいた表示画像を表示手段に表示させる画像処理装置により実行される方法であって、
前記撮像手段から部位毎に位置もしくは角度が可変な物体を含む撮像画像を取得する工程と、
前記撮像画像から前記物体の領域である第１物体領域を検出する工程と、
前記物体の形状を表す複数の三次元点を取得する工程と、
前記表示手段の位置姿勢を表す位置姿勢情報を取得する工程と、
前記位置姿勢情報に応じた前記表示画像の座標系に、前記物体に対応する三次元モデルを投影した投影モデル領域を取得する工程と、
前記投影モデル領域と前記第１物体領域との領域差を算出する工程と、
前記複数の三次元点及び前記領域差に基づいて、前記領域差が所定の収束条件を満たすような前記三次元モデルの各部位の位置もしくは角度を設定するためのモデルパラメータを推定する工程と、
前記撮像画像に、各部位のモデルパラメータが前記収束条件を満たす前記三次元モデルを重畳した前記表示画像を、前記表示手段に表示させる工程と、を含むことを特徴とする、
画像処理方法。
【請求項１１】
撮像手段が撮像する撮像画像に基づいた表示画像を表示手段に表示させるコンピュータを、
前記撮像手段から部位毎に位置もしくは角度が可変な物体を含む撮像画像を取得する画像取得手段、
前記撮像画像から前記物体の領域である第１物体領域を検出する第１領域検出手段、
前記物体の形状を表す複数の三次元点を取得する三次元点取得手段、
前記表示手段の位置姿勢を表す位置姿勢情報を取得する位置姿勢取得手段、
前記位置姿勢情報に応じた前記表示画像の座標系に、前記物体に対応する三次元モデルを投影した投影モデル領域を取得する投影モデル領域取得手段、
前記投影モデル領域と前記第１物体領域との領域差を算出する領域差算出手段、
前記複数の三次元点及び前記領域差に基づいて、前記領域差が所定の収束条件を満たすような前記三次元モデルの各部位の位置もしくは角度を設定するためのモデルパラメータを推定するモデル推定手段、
前記撮像画像に、各部位のモデルパラメータが前記収束条件を満たす前記三次元モデルを重畳した前記表示画像を、前記表示手段に表示させる表示制御手段、
として機能させるためのコンピュータプログラム。
【請求項１２】
請求項１１記載のコンピュータプログラムを記憶するコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの手等の物体を、仮想物体を操作するためのユーザインタフェースとして用いるための画像処理技術に関する。
【背景技術】
【０００２】
可視光カメラ、赤外線カメラ、距離画像センサ等により得られる画像からユーザの手を検出し、その位置姿勢を推定してＵＩ（ユーザインターフェース）部品等の仮想物体を操作する、ジェスチャ認識技術を用いたユーザインタフェースの利用が広まりつつある。近年、ＨＭＤ（ヘッドマウントディスプレイ）にＣＧ（Computer Graphics）を表示して用いるＶＲ（Virtual Reality）や、現実世界の画像とＣＧを重ねて表示するＭＲ（Mixed
Reality）が広まっている。この分野では、ＣＧで表示される仮想物体を手で直接操作するために、ユーザの手指の各部位をモデル化し、その位置姿勢を推定する手指姿勢推定技術が期待されている。例えば、手指姿勢推定技術で姿勢を推定されたユーザの手指のモデルのＣＧが、ＶＲやＭＲの仮想空間や現実空間に合成して表示される。
【０００３】
特許文献１は、三次元モデリングされたＣＧ画像による仮想空間の中に、モーションキャプチャ技術を用いて検出した現実空間の手の位置に基づいて、三次元モデリングされた手のＣＧ画像を表示する技術を開示する。特許文献２は、現実空間の画像中における注目現実物体の領域を決定し、この領域を包含する包含領域に対して暈かし処理を行い、暈かし処理後の現実空間の画像上に仮想空間の画像を重畳させた合成画像を生成する技術を開示する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−２１８５３５号公報
【特許文献２】特開２００８−７０３１９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＭＲのように現実世界の画像に手指の三次元形状のモデル（三次元モデル）のＣＧを合成してＨＭＤに表示させる場合、現実世界の画像に見えている現実の手指の上に、手指の三次元モデルが重畳されることがある。この場合、現実の手指と手指の三次元モデルとの位置ずれにより違和感が生じ、ユーザビリティが低下することがある。特に、手指の推定のためのセンサをＨＭＤとは別途設置する場合、ＨＭＤの位置姿勢に応じて、センサの検出結果から推定した手指の三次元モデルを表示する必要がある。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、ＨＭＤのような表示装置の位置姿勢の変化によらず、手指のような物体の三次元モデルを正確に表示装置に表示する画像処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の画像処理装置は、撮像手段が撮像する撮像画像に基づいた表示画像を表示手段に表示させる画像処理装置であって、前記撮像手段から部位毎に位置もしくは角度が可変な物体を含む撮像画像を取得する画像取得手段と、前記撮像画像から前記物体の領域である第１物体領域を検出する第１領域検出手段と、前記物体の形状を表す複数の三次元点を取得する三次元点取得手段と、前記表示手段の位置姿勢を表す位置姿勢情報を取得する位置姿勢取得手段と、前記位置姿勢情報に応じた前記表示画像の座標系に、前記物体に対応する三次元モデルを投影した投影モデル領域を取得する投影モデル領域取得手段と、前記投影モデル領域と前記第１物体領域との領域差を算出する領域差算出手段と、前記複数の三次元点及び前記領域差に基づいて、前記領域差が所定の収束条件を満たすような前記三次元モデルの各部位の位置もしくは角度を設定するためのモデルパラメータを推定するモデル推定手段と、前記撮像画像に、各部位のモデルパラメータが前記収束条件を満たす前記三次元モデルを重畳した前記表示画像を、前記表示手段に表示させる表示制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、表示手段の位置姿勢の変化によらず、物体の三次元モデルを正確に表示手段に表示することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】ＭＲシステムの構成例示図。
【図２】（ａ）〜（ｃ）は、座標系の関係を表す図。
【図３】画像処理装置のハードウェア構成図。
【図４】画像処理装置の機能ブロック図。
【図５】画像処理を表すフローチャート。
【図６】（ａ）〜（ｃ）は、物体領域の検出及び三次元点取得の説明図。
【図７】手の三次元モデルの説明図。
【図８】手の三次元モデルの画像座標系への投影する処理の説明図。
【図９】（ａ）、（ｂ）は、領域差の説明図。
【図１０】指先がカメラから隠れる場合の説明図。
【図１１】カメラから隠れる部位がある場合のＳ５０８の処理を表すフローチャート。
【発明を実施するための形態】
【００１０】
図１は、本実施形態の画像処理装置を用いたＭＲシステムの構成例示図である。ＭＲシステムは、画像処理装置１００、表示装置であるヘッドマウントディスプレイ（ＨＭＤ）２０５、カメラ２０６、及び距離画像センサ２０７を備える。ＨＭＤ２０５とカメラ２０６とは、一体に構成される。画像処理装置１００は、ＨＭＤ２０５、カメラ２０６、及び距離画像センサ２０７との間で通信可能に接続される。通信は、有線、無線のいずれで行われてもよい。なお、表示装置は、表示機能を備えた装置であればＨＭＤ２０５である必要はない。例えば、表示装置は、タブレット端末、携帯端末、モバイルプロジェクタ等の位置姿勢が可変な装置を適用可能である。本実施形態では画像処理装置１００を独立した装置として説明するが、画像処理装置１００は、距離画像センサ２０７及びＨＭＤ２０５（カメラ２０６）のいずれかと一体に構成されていてもよい。
【００１１】
ＨＭＤ２０５は、ユーザの頭部に装着される。カメラ２０６は、ユーザの視線と同じ視線で周囲を撮像して、撮像画像（可視画像）を取得する撮像装置である。カメラ２０６は、ＨＭＤ２０５の左右の眼に対応するディスプレイ用にそれぞれの可視画像を取得するため二眼のカメラとするが、これに限るものではない。カメラ２０６によって取得された可視画像は、ＨＭＤ２０５で表示される。これによりユーザは、ＨＭＤ２０５を装着したまま周囲を視認することができる。なお、ＨＭＤ２０５は、カメラ２０６で取得した可視画像に仮想物体３０１や現実の物体に対応する三次元形状のモデル（三次元モデル）を重畳した表示画像を表示することができる。カメラ２０６が撮像した周囲の可視画像に仮想物体３０１等が重畳されて表示されるために、ユーザは、ＨＭＤ２０５越しに、あたかも現実空間に仮想物体３０１が存在するように認識することができる。画像処理装置１００は、カメラ２０６から取得した可視画像に仮想物体３０１等の画像を重畳した表示画像をＨＭＤ２０５に表示させる。
【００１２】
距離画像センサ２０７は、カメラ２０６とは別に設けられた装置であり、ユーザを正面、横、天井等から撮像できる位置に配置される。距離画像センサ２０７は、画角に含まれる各画素までの距離を含む距離画像を取得する。距離画像センサ２０７は、例えば、赤外光等の光を投射してその反射時間によって距離を測定するものや、パターン光を照射してその形状から距離を計測するもの、あるいはステレオカメラ等で実現される。ユーザが仮想物体３０１を操作するように手を向けると、カメラ２０６の視点からユーザの手の一部、特に指先が隠れることが多い。このカメラ２０６から隠れる指先の動きを捉えるために、カメラ２０６とは視点が異なる位置に距離画像センサ２０７が配置される。距離画像センサ２０７の実世界座標上の位置姿勢は、予めキャリブレーションされる。
【００１３】
図２は、距離画像センサ２０７で取得される距離画像の座標系、現実世界の実世界座標系、及びＨＭＤ２０５に表示される表示画像の座標系の関係を表す図である。図２（ａ）は、距離画像センサ２０７が取得する距離画像の座標系を表す。距離画像は、各座標（ｘ＿ｄ，ｙ＿ｄ）に対して画素値Ｄを有する。距離画像において画素値Ｄは距離画像センサ２０７からの距離値を表す。図２（ｂ）は実世界座標系を表しており、現実世界の位置を所定の基準点からの三次元位置（Ｘ＿ｗ，Ｙ＿ｗ，Ｚ＿ｗ）で表す。図２（ｃ）はＨＭＤ２０５のディスプレイに表示される表示画像の座標系であり、右目の表示画像の座標を（ｘ＿ｈｒ，ｙ＿ｈｒ）で表す。左目のディスプレイに表示する表示画像の座標も、同様に（ｘ＿ｈｌ，ｙ＿ｈｌ）で表される。カメラ２０６で取得された可視画像がＨＭＤ２０５に表示されるために、表示画像の座標系と可視画像の座標系は同じである。
【００１４】
各座標系の正確な変換のために、距離画像センサ２０７の位置姿勢及び内部パラメータと、ＨＭＤ２０５の位置姿勢及びカメラ２０６の左右それぞれの内部パラメータとは、予めキャリブレーションされる。これにより、距離画像センサ２０７から取得される距離画像中の点（ｘ＿ｄ，ｙ＿ｄ，Ｄ）は、実世界座標系（Ｘ＿ｗ，Ｙ＿ｗ，Ｚ＿ｗ）に変換される。距離画像の座標系から実世界座標系への変換式は、例えば（式１）で表される。
【００１５】
【数１】
2018128739.tif 000003
ｒ００〜ｒ２２、ｔ０〜ｔ２、ｆｘ、ｆｙ、ｃｘ、ｃｙは、距離画像センサ２０７の設置時にキャリブレーションによって予め求められるパラメータである。キャリブレーションによって予め求められるパラメータは、実世界座標系の位置座標(Ｘ，Ｙ、Ｚ)と距離画像の座標（ｘ，ｙ）との対応関係が取れた既知の点がパラメータ数以上あれば、最小二乗法などで値を予め算出される。
【００１６】
座標変換時のＨＭＤ２０５の位置姿勢に応じて、実世界座標系（Ｘ＿ｗ，Ｙ＿ｗ，Ｚ＿ｗ）の点は、表示画像の座標系（ｘ＿ｈｒ，ｙ＿ｈｒ）、（ｘ＿ｈｌ，ｙ＿ｈｌ）に、同様に変換される。
【００１７】
図３は、画像処理装置１００のハードウェア構成図である。画像処理装置１００は、ＣＰＵ（Central Processing Unit）２０１、ＲＯＭ（Read Only Memory）２０２、及びＲＡＭ（Random Access Memory）２０３を備えるコンピュータである。ＣＰＵ２０１、ＲＯＭ２０２、及びＲＡＭ２０３はバスを介して接続される。バスには、さらに、通信Ｉ／Ｆ（インタフェース）２０８及び入出力Ｉ／Ｆ２０９が接続される。入出力Ｉ／Ｆ２０９には、外部装置である記憶装置２０４が接続される。なお、画像処理装置１００が距離画像センサ２０７及びＨＭＤ２０５（カメラ２０６）のいずれか一方と一体に構成される場合、一体に構成される装置は、通信Ｉ／Ｆ２０８を介さずにバスに接続される。
【００１８】
ＲＯＭ２０２は、オペレーティングシステム（ＯＳ）、各種処理プログラム、デバイスドライバ等を記憶する。ＣＰＵ２０１は、ＲＯＭ２０２から各種プログラムを読み込み、ＲＡＭ２０３を作業領域に用いて実行することで、ＭＲシステム全体の動作の制御を行う。なお、ＲＯＭ２０２に記憶される各種のコンピュータプログラムは、記憶装置２０４に記憶されていてもよい。
【００１９】
通信Ｉ／Ｆ２０８は、画像処理装置１００で生成した画像をＨＭＤ２０５で処理可能な信号に変換して、ＨＭＤ２０５に送信する。通信Ｉ／Ｆ２０８は、距離画像センサ２０７から距離画像を取得するとともに、カメラ２０６から可視画像を取得して、画像処理装置１００が処理可能なデータに変換する。入出力Ｉ／Ｆ２０９は、記憶装置２０４との間でデータの送受信を行う。記憶装置２０４は、例えばＨＭＤ２０５に表示させる仮想物体３０１等を表すデジタルデータを格納する。記憶装置２０４は、例えばディスクデバイスやフラッシュメモリ、ネットワークやＵＳＢ等の各種の大容量記憶装置が用いられる。
【００２０】
図４は、画像処理装置１００の機能ブロック図である。画像処理装置１００は、画像取得部１０１、距離画像取得部１０２、第１領域検出部１０３、第２領域検出部１０４、三次元点取得部１０５、モデル推定部１０６、位置姿勢取得部１０７、投影モデル領域取得部１０８、及び領域差算出部１０９として機能する。また画像処理装置１００は、ＨＭＤ２０５に画像を表示させる表示制御部１１０として機能する。本実施形態では、各機能は、ＣＰＵ２０１がコンピュータプログラムを実行することで実現される。なお、このようなソフトウェアによる機能実現の他に、各機能を演算装置等のハードウェアにより実現してもよい。
【００２１】
画像取得部１０１は、カメラ２０６から可視画像を取得する。距離画像取得部１０２は、距離画像センサ２０７から距離画像を取得する。第１領域検出部１０３は、画像取得部１０１で取得した可視画像中から現実の物体の画像領域である物体領域を検出する。可視画像はそのままＨＭＤ２０５に表示される画像であるために、この物体領域は、表示画像から現実の物体の領域を検出したときと同じ領域である。第２領域検出部１０４は、距離画像取得部１０２で取得した距離画像中から現実の物体の画像領域である物体領域を検出する。三次元点取得部１０５は、第２領域検出部１０４で検出した距離画像中の物体領域から、複数の三次元点を取得する。複数の三次元点は、現実の物体の表面形状を表す。
【００２２】
モデル推定部１０６は、三次元点取得部１０５で取得した複数の三次元点に応じて、物体の三次元モデルの各部位の位置もしくは角度を設定するためのモデルパラメータを推定する。位置姿勢取得部１０７は、ＨＭＤ２０５の位置や姿勢を表す位置姿勢情報を取得する。位置姿勢取得部１０７は、ＨＭＤ２０５の位置姿勢を推定することで、位置姿勢情報を取得する。位置姿勢の推定方法は、例えば既存の方法として、カメラ２０６で取得される可視画像中の既知のマーカや、可視画像中のエッジ等から得られる特徴点から算出する方法がある。また、位置姿勢の推定方法は、ＨＭＤ２０５に複数のマーカや光源等の指標を設け、該指標の位置を外部センサで取得して算出する方法がある。
【００２３】
投影モデル領域取得部１０８は、位置姿勢取得部１０７で取得した位置姿勢情報に基づいて、画像取得部１０１で取得した可視画像へモデル推定部１０６で推定した物体の三次元モデルを投影し、可視画像中の三次元モデルが投影された投影モデル領域を取得する。可視画像はそのままＨＭＤ２０５に表示される画像であるために、投影モデル領域は、表示画像に三次元モデルを投影したときと同じ領域である。領域差算出部１０９は、投影モデル領域取得部１０８で取得した投影モデル領域と、第１領域検出部１０３で検出した可視画像（表示画像）中の現実の物体の物体領域と、の領域差を算出する。表示制御部１１０は、可視画像に投影モデル領域を重畳した表示画像をＨＭＤ２０５に表示させる。
【００２４】
図５は、このようなＭＲシステムの画像処理装置１００により、可視画像に現実の物体の三次元モデルを重畳してＨＭＤ２０５に表示させるための画像処理を表すフローチャートである。
【００２５】
画像処理装置１００は、まず、画像取得部１０１によりカメラ２０６から可視画像を取得する（Ｓ５０１）。画像取得部１０１は、ＨＭＤ２０５に表示するための画像として、カメラ２０６の二眼から二枚の可視画像を取得する。以降の処理は、二眼に対応する二枚の可視画像の両方に行ってもよく、また、いずれか一方の可視画像のみに行ってもよい。位置姿勢取得部１０７は、ＨＭＤ２０５の位置姿勢情報を取得する（Ｓ５０２）。ＨＭＤ２０５は、ユーザのと頭部に装着されるために、位置姿勢がユーザの動きにより変化する。常に最新のＨＭＤ２０５の位置姿勢情報を取得するために、位置姿勢取得部１０７は、画像取得部１０１が可視画像を取得するタイミングに同期して位置姿勢情報を取得する。
【００２６】
第１領域検出部１０３は、可視画像に含まれる現実の物体の物体領域を検出する（Ｓ５０３）。本実施形態では、代表的な例として、物体をユーザの手として説明する。なお、物体は、手の他に、ユーザの人体やマジックハンド等の複数の可変な部位から構成されるものであればよい。可視画像中の物体領域の検出方法は、既存のどのような方法でもよい。例えば、第１領域検出部１０３は、可視画像中の濃淡からＳＨＩＦＴ特徴やＬＢＰ特徴等を抽出し、ＳＶＭやカスケード識別器のような機械学習による識別器で手の部位を検出することができる。また、第１領域検出部１０３は、可視画像中の肌色領域に基づいて物体領域を検出してもよい。
【００２７】
距離画像取得部１０２は、距離画像センサ２０７から距離画像を取得する（Ｓ５０４）。好ましくは、距離画像取得部１０２は、画像取得部１０１が可視画像を取得するタイミングに同期して距離画像を取得する。第２領域検出部１０４は、距離画像に含まれる現実の物体の物体領域を検出する（Ｓ５０５）。物体領域の検出は、Ｓ５０２の処理と同様な手法を距離画像に適用して行われる。また、第２領域検出部１０４は、Ｓ５０２の処理で検出した可視画像中の物体領域を距離画像の座標系に変換することで、距離画像に含まれる物体領域を推定することも可能である。
【００２８】
三次元点取得部１０５は、第２領域検出部１０４で検出した距離画像に含まれる物体領域に応じて、複数の三次元点を取得する（Ｓ５０６）。三次元点取得部１０５は、例えば距離画像に含まれる物体領域の中からランダムに画素をサンプリングし、サンプリングした各画素（ｘ＿ｄ，  ｙ＿ｄ，Ｄ）を上記の（式１）に基づいて、実世界座標の三次元点に変換する。図６は、距離画像に基づく物体領域の検出及び三次元点取得の説明図である。図６（ａ）は、距離画像取得部１０２が取得する距離画像を例示する。図６（ｂ）は、第２領域検出部１０４が検出する距離画像中の手の物体領域を例示する。図６（ｃ）は、三次元点取得部１０５が取得する物体領域中の複数の画素を例示する。三次元点取得部１０５は、図６（ｃ）の各点を（式１）に基づいて実世界座標の三次元点に変換する。そのために複数の三次元点は、実世界の物体（手）の形状を表す。
【００２９】
モデル推定部１０６は、手の三次元モデルと複数の三次元点との距離に基づいて、三次元モデルの各部位の位置姿勢等のモデルパラメータを推定する（Ｓ５０７）。モデルパラメータにより、手の三次元モデルが現実の手の位置、姿勢、形状にモデリング可能となる。図７は、手の三次元モデルの説明図である。手の三次元モデルは、指の第一関節７０１、第二関節７０２、第三関節７０３、手首関節７０４、及び手指の各部位を構成する球７０５の組み合わせで構成される。
【００３０】
手の三次元モデルのモデルパラメータは、指の第一関節７０１、第二関節７０２、第三関節７０３、及び手首関節７０４の各部位に設けられる。手首関節７０４は、実世界座標である三次元座標（Ｘ，Ｙ，Ｚ）及び三次元軸の回転（ｐ，ｑ，ｒ）をモデルパラメータとして保有する。第三関節７０３は、指を手の平に向けて倒す回転角ｐ及び指を他の指の方向へ倒す回転角ｑをモデルパラメータとして保有する。第一関節７０１及び第二関節７０２は、指を他の指の方向へ倒す回転角ｑをパラメータとして有する。球７０５は、部位毎に、半径Ｒを有し、手首位置及び各関節の角度パラメータに基づいて球７０５の中心位置の三次元座標（Ｘ，Ｙ，Ｚ）が決まる。球７０５の半径Ｒ、角度パラメータ、中心位置の三次元座標も、手の三次元モデルのモデルパラメータである。なお、手の三次元モデルは、図７に例示する球７０５を組み合わせたモデルに限らず、例えば、楕円体や円筒の組み合わせや、高精細なポリゴンによって構成されてもよい。
【００３１】
モデル推定部１０６は、三次元点取得部１０５で取得した実世界座標で表される複数の三次元点に基づいて、物体（手）の関節位置、角度、球の半径等の最適なモデルパラメータを探索する。例えば、モデル推定部１０６は、各三次元点に対して最も近い三次元モデルの表面点を探索し、当該点と三次元点との距離を算出する。モデル推定部１０６は、モデルパラメータを最適化するために、複数の三次元点と三次元モデルの表面点との距離の総和をペナルティとして評価関数として三次元モデルのパラメータを変更し、その度に評価関数の出力値が収束するように最適化を行う。三次元モデルのパラメータの最適化はどのような方法でもよい。例えば既存のパラメータ最適化方法として、ＩＣＰ（Iterative Closest Point）法や、ＰＳＯ（Particle Swarm Optimization）法等がある。また、三次元モデルのパラメータを距離画像から直接求める方法として、ＣＮＮ（Convolutional
Neural Network）等の方法もある。このようにしてモデル推定部１０６は、複数の三次元点に基づいて、手の三次元モデルの各部位の最適なモデルパラメータを推定する。
【００３２】
投影モデル領域取得部１０８は、位置姿勢取得部１０７で取得されたＨＭＤ２０５の位置姿勢情報に応じて、手の三次元モデルを表示画像（可視画像）の座標系へ投影することで、投影モデル領域を取得する（Ｓ５０８）。ＨＭＤ２０５の位置姿勢が変動すると、該変動を表す位置姿勢情報に応じて表示画像の座標系が変動する。
【００３３】
図８は手の三次元モデルを表示画像の座標系へ投影する処理の説明図である。実世界座標における手の三次元モデル８０１は、画像取得部１０１で取得した可視画像の座標系へ投影される。手の三次元モデル８０１の投影された領域が、投影モデル領域８０２である。三次元モデル８０１は、モデルパラメータに応じて実世界座標における三次元位置が決定される。投影モデル領域取得部１０８は、ＨＭＤ２０５の位置姿勢情報に応じて表示画像の座標系を設定し、実世界座標から表示画像の座標系へ手の三次元モデルを投影する。表示画像の座標系と可視画像の座標系とが同じであるために、これにより手の三次元モデルの可視画像へのレンダリングが可能となる。この処理は、二眼のカメラ２０６から取得するそれぞれの可視画像に対して行われる。
【００３４】
領域差算出部１０９は、投影モデル領域８０２と、第１領域検出部１０３が検出した可視画像（表示画像）中の物体領域との領域差を算出する（Ｓ５０９）。図９は、領域差の説明図である。図９（ａ）は、物体領域９０１と投影モデル領域８０２とを表す。領域差算出部１０９は、第１領域検出部１０３が検出した物体領域９０１と投影モデル領域８０２との領域差を算出することになる。三次元モデルは、距離画像センサ２０７のキャリブレーション誤差、位置姿勢情報のＨＭＤ２０５の実際の位置姿勢との誤差、距離画像センサ２０７とカメラ２０６とのフレームレート等によって、投影モデル領域の位置姿勢にずれが生じる。特に、距離画像センサ２０７から見えない部位の誤差が相対的に大きくなり、この部位がカメラ２０６から見えるときは、そのずれが目立ってしまう。領域差算出部１０９は、投影モデル領域８０２とカメラ２０６から取得した可視画像中の物体領域９０１との領域差Ａｄｉｆｆを、例えば投影モデル領域を「Ａｍ」、物体領域を「Ａｉ」として、（式２）により算出する。
Ａｄｉｆｆ  ＝  （Ａｍ ｘｏｒ Ａｉ）／（Ａｍ ｏｒ Ａｉ）    …（式２）
【００３５】
モデル推定部１０６は、（式２）の領域差Ａｄｉｆｆが収束条件となる所定値よりも小さいか否かを判定する（Ｓ５１０）。モデル推定部１０６は、収束条件が満たされるか否かにより、モデルパラメータの収束の判定を行う。収束条件を満たさない（領域差が所定値より大きい）場合（Ｓ５１０：N）、モデル推定部１０６は、領域差に応じて三次元モデルの各部位のモデルパラメータを再度推定して更新する（Ｓ５１１）。
【００３６】
Ｓ５０７の処理では手の三次元モデルの表面点と三次元点との距離を評価関数として、モデルパラメータが最適化されている。一方、Ｓ５１１の処理のモデルパラメータの更新は、（式２）の領域差を評価関数として、前述のＩＣＰやＰＳＯ等の手法により行われる。モデルパラメータを更新するとＳ５０８の処理へ戻り、投影モデル領域取得部１０８が、再度、三次元モデルを表示画像（可視画像）の座標系へ投影する。画像処理装置１００は、Ｓ５０８〜Ｓ５１１の処理を、収束条件が満たされるまで繰り返し行う。収束条件を満たす（領域差が所定値より小さい）場合（Ｓ５１０：Y）、モデル推定部１０６は、モデルパラメータを確定する。図９（ｂ）は、収束条件を満たした状態の物体領域９０１と投影モデル領域８０２とを表す。図９（ａ）において位置姿勢がずれてしまっていた投影モデル領域８０２が、図９（ｂ）では物体領域９０１にほぼ一致している。
【００３７】
なお、領域差の算出及び収束条件はこれに限るものではない。例えば、領域差ではなく、投影モデル領域と物体領域との重なる領域の割合を算出した((式２)の「ｘｏｒ」を「ａｎｄ」にした)場合、モデル推定部１０６は、重なる領域の割合が所定値より大きくなると、収束条件が満たされたと判定する。
【００３８】
また、Ｓ５１１の処理では、モデル推定部１０６は、単に可視画像上の投影モデル領域を表示画像の座標系で移動、回転させてもよい。この場合、Ｓ５０８の処理において、投影モデル領域取得部１０８が、再度、表示画像の座標系へ三次元モデルを投影する必要がなくなる。あるいは、モデル推定部１０６は、すべてのモデルパラメータではなく、手首関節の位置姿勢のみを変更してもよい。これは手の形状が変化せず、位置姿勢だけが変化することに相当する。しかし、できる限り表示画像の座標系による見え方と一致するためには、各モデルパラメータを動かす方が自由度が高い。そのために、三次元モデルの手首関節位置（Ｘ，Ｙ，Ｚ）、各関節角度パラメータ（ｐ，ｑ，ｒ）（ｑ，ｒは一部の関節のみ）を最適化し、Ｓ５０８の処理で再度投影する方が、投影モデル領域と物体領域との形状の異なりに対しても柔軟に対応することができる。
【００３９】
収束条件が満たされると、表示制御部１１０は、収束条件を満たすモデルパラメータに応じた三次元モデルを可視画像に重畳した表示画像を、ＨＭＤ２０５に表示させる（Ｓ５１２）。これにより、現実の手の位置に、手の三次元モデルが正確に重畳されて表示される。
【００４０】
以上のような画像処理装置１００は、複数の部位で構成される手の三次元モデルのモデルパラメータを推定する際に、三次元点の位置に加え、可視画像（表示画像）に投影した際の表示領域（投影モデル領域）との差異に基づいてモデルパラメータを推定する。これにより、表示画像に手の三次元モデルと現実の手とが重畳されたときに違和感が少なく表示されるように、モデルパラメータを推定することができる。
【００４１】
（変形例１）
モデル推定部１０６は、距離画像から得られる三次元点の距離に基づいて、初期のモデルパラメータを推定してもよい。モデル推定部１０６は、推定したモデルパラメータを、投影モデル領域と表示画像中の物体領域との領域差に応じて更新する。この実施例では、モデル推定部１０６は、Ｓ５１１の処理において、（式２）で算出される領域差のみに基づいてモデルパラメータを推定するとは限らない。モデル推定部１０６は、Ｓ５１１の処理において、（式２）で算出される領域差と、Ｓ５０７の処理で用いた三次元モデルと複数の三次元点との距離と、を統合した評価関数に基づいてモデルパラメータを推定する。
【００４２】
モデル推定部１０６は、（式３）に示す評価関数Ｆ（ｐ）を用いる。なお（式３）において、ｄ（ｐ）は、三次元点取得部１０５が取得する複数の三次元点と三次元モデルの表面点との距離の総和、Ａｄｉｆｆ（ｐ）は、Ｓ５０９の処理で（式２）により算出された領域差である（ｐはモデルパラメータ）。α、βは重み係数であり、αが大きい場合は三次元点との距離を重視し、βが大きい場合は領域差を重視して、モデルパラメータが算出される。
Ｆ（ｐ）  ＝  αｄ（ｐ）  ＋  βＡｄｉｆｆ（ｐ）    …（式３）
【００４３】
モデル推定部１０６は、（式３）の評価関数を最小化するように、Ｓ５０８〜Ｓ５１１で処理を繰り返し実行することで、収束条件を満たすモデルパラメータを決定する。表示制御部１１０は、収束条件を満たすモデルパラメータによる三次元モデルを含む表示画像をＨＭＤ２０５に表示させる。これにより、現実の手の位置に、手の三次元モデルが正確に重畳されて表示される。以上のように、画像処理装置１００は、表示画像に手の三次元モデルと現実の手とが重畳されて違和感が少なく表示されるように、モデルパラメータを推定することができる。
【００４４】
（変形例２）
図１のようなＭＲシステムの構成では、物体である手の指先がカメラ２０６から隠れやすい。指先がカメラ２０６から隠れる場合、該指先のモデルパラメータをカメラ２０６で取得した可視画像による領域差に応じて更新することは適切ではない可能性がある。図１０は、指先がカメラ２０６から隠れる場合の説明図である。モデル推定部１０６がモデルパラメータを推定する三次元モデル１００１は、表示画像１００２（可視画像）の座標系に投影されて投影モデル領域１００３中の画像となる。三次元モデル１００１のうち、表示画像の座標系に投影することで手の他の部分により部位１００４が隠される。このように隠れる部位１００４のモデルパラメータは、表示画像１００２中の投影モデル領域１００３と物体領域との領域差から推定することが困難である。そこでモデル推定部１０６は、Ｓ５１１の処理で各部位の位置姿勢のモデルパラメータを固定し、手の全体の位置姿勢（手首関節の位置姿勢に相当）のモデルパラメータのみを推定するようにしてもよい。
【００４５】
また、モデル推定部１０６は、推定した三次元モデル１００１を部位毎に表示画像１００２の座標系に投影して隠れるか否か判定し、隠れない部位のみのモデルパラメータを変更してもよい。
【００４６】
図１１は、カメラ２０６から隠れる部位がある場合に手の三次元モデルを表示画像１００２の座標系へ投影するＳ５０８の処理を表すフローチャートである。
【００４７】
投影モデル領域取得部１０８は、モデルパラメータに基づいて、三次元モデルの部位（球状のモデル）毎に、三次元モデルを表示画像１００２（可視画像）の座標系へ投影して、部位毎の投影モデル領域１００３を生成する（Ｓ１１０１）。投影モデル領域取得部１０８は、各部位の位置もしくは形状に基づいて、部位毎に、表示画像１００２（可視画像）の座標系に投影したときの隠れ判定を行う（Ｓ１１０２）。具体的には、投影モデル領域取得部１０８は、三次元モデルの各部位の三次元位置と形状（球の場合、半径）に応じて、表示画像１００２（可視画像）の座標系において重なりあう複数の部位を特定する。投影モデル領域取得部１０８は、特定した部位のカメラ２０６から見た前後関係を算出して、隠れた部位を特定する。
【００４８】
モデル推定部１０６は、隠れていると判定された部位に対応する関節のモデルパラメータを固定し、隠れていないと判定された部位に対応する関節のモデルパラメータを可変として設定する（Ｓ１１０３）。これによりモデル推定部１０６は、Ｓ５１１の処理において、画像上で隠れていない部位の関節のモデルパラメータのみを更新して、投影モデル領域と物体領域の領域差によりモデルパラメータを推定する。
【００４９】
以上のように画像処理装置１００は、カメラ２０６から隠れない部位を判定し、判定結果に応じてモデルパラメータを更新することで、精度よくモデルパラメータを推定することができる。
【００５０】
（変形例３）
変形例１で示した（式３）は、複数の三次元点と三次元モデルの表面点との距離の総和、及び投影モデル領域と物体領域との領域差を統合した評価関数である。変形例３では、（式３）の重み係数α、βを可視画像の取得時刻と距離画像の取得時刻との差によって決定する。
【００５１】
画像処理装置１００は、ＨＭＤ２０５に表示する表示画像となる可視画像をカメラ２０６から取得し、モデル推定用の距離画像を距離画像センサ２０７から取得する。ここで、カメラ２０６と距離画像センサ２０７とのフレームレートが異なっていたり、画像取得の同期がずれている場合、フレームによって、距離画像から推定した三次元モデルを表示画像に投影したときのずれ量が大きく変化することがある。可視画像の取得時刻と距離画像の取得時刻との時刻差が大きければ投影時のずれ量は大きくなり、時刻差が小さければずれ量は小さくなる。そこで画像処理装置１００は、可視画像の取得時刻と距離画像の取得時刻との時刻差によるずれを抑制するために、可視画像の取得時刻と距離画像の取得時刻との差に応じて、（式３）の重み係数を変更する。
【００５２】
図５のフローチャートでは、画像取得部１０１は、Ｓ５０１の処理でＨＭＤ２０５に表示するための表示画像となる可視画像を取得して、可視画像の取得時刻をＲＡＭ２０３に保持する。距離画像取得部１０２は、Ｓ５０４の処理で距離画像を取得して、距離画像の取得時刻をＲＡＭ２０３に保持する。モデル推定部１０６は、Ｓ５１１の処理でこれら二つの取得時刻の差に応じて重み係数α、βを設定する。モデル推定部１０６は、二つの取得時刻の差が所定値よりも小さい場合はβを小さくして領域差による補正を相対的に小さくし、取得時刻の差が所定値よりも大きい場合はβを大きくして領域差による補正を相対的に大きくする。あるいはモデル推定部１０６は、単純に、取得時刻の差が閾値よりも小さい場合にＳ５０８〜Ｓ５１１の処理を行わなくともよい。
【００５３】
以上のように画像処理装置１００は、フレームによって可視画像及び距離画像の取得時刻が異なる場合に、その時刻差に応じて、表示画像に投影した三次元モデルのずれ量を適切に軽減させることができる。
【００５４】
（変形例４）
画像処理装置１００は、距離画像から手等の物体の複数の三次元点を取得する他に、例えば、手にカラーマーカーをつけたモーションキャプチャや手指の相対角度を得るデータグローブにより、物体の複数の三次元点を取得してもよい。このような場合においても画像処理装置１００は、三次元点から推定した三次元モデルを表示画像の座標系に投影したときのずれを、物体領域と投影モデル領域との領域差に基づいて補正することができる。そのために画像処理装置１００は、ＨＭＤ２０５に違和感の少ない画像を表示することが可能となる。
【００５５】
本実施形態の画像処理装置１００は、手等の複数の部位で構成される物体の三次元モデルの位置姿勢を推定する際に、距離画像の三次元点の距離に加え、モデルを表示画像に投影した際の表示領域の差異に基づいて、モデルパラメータを推定する。これにより画像処理装置１００は、表示画像に手等の物体の三次元モデルと現実の手等の物体の画像とが重畳されたときの違和感を抑制することができる。なお、カメラ２０６は可視画像を撮像する撮像装置として説明したが、赤外線を用いて撮像する赤外線撮像装置であっても同様の処理が可能である。
【００５６】
（別の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018128739.tif 000004
【図２】
2018128739.tif 000005
【図３】
2018128739.tif 000006
【図４】
2018128739.tif 000007
【図５】
2018128739.tif 000008
【図６】
2018128739.tif 000009
【図７】
2018128739.tif 000010
【図８】
2018128739.tif 000011
【図９】
2018128739.tif 000012
【図１０】
2018128739.tif 000013
【図１１】
2018128739.tif 000014