(57)【要約】【課題】  ユーザが自身の部位で物体を把持している状態において、該部位に重畳するモデルや該部位の位置姿勢、該物体の位置姿勢、の何れか一方が取得できなくても代わりとなる情報を生成可能な技術を提供すること。【解決手段】  ユーザの部位に対する測定結果に基づいて該部位の第１の形状モデルを生成し、部位による把持対象となる対象物の位置姿勢を取得し、対象物の第２の形状モデルを生成する。第１の形状モデル、上記取得した位置姿勢を有する第２の形状モデル、を含む仮想空間の画像を生成する。対象物の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に部位が対象物を把持したときの部位の位置姿勢及び対象物の位置姿勢、に基づいて対象物の位置姿勢を推定し、該推定された結果に基づいて第２の形状モデルを生成する。【選択図】  図１
2018077732.tif 000002
【特許請求の範囲】
【請求項１】
ユーザの部位に対する測定結果に基づいて該部位の第１の形状モデルを生成する第１の生成手段と、
前記部位による把持対象となる対象物の位置姿勢を取得する取得手段と、
前記対象物の第２の形状モデルを生成する第２の生成手段と、
前記第１の形状モデル、前記取得手段が取得した位置姿勢を有する前記第２の形状モデル、を含む仮想空間の画像を生成する第３の生成手段とを備え、
前記第２の生成手段は、
前記取得手段による前記対象物の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成する
ことを特徴とする画像処理装置。
【請求項２】
前記第２の生成手段は、前記所定の条件として、前記取得手段による前記対象物の位置姿勢の取得が失敗した場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第２の生成手段は、前記所定の条件として、前記対象物の位置姿勢を認識するために該対象物に設けられている指標が検出できなかった場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記第２の生成手段は、前記所定の条件として、前記対象物の認識した位置及び／又は姿勢が過去に認識した位置及び／又は姿勢から閾値以上、変化した場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成することを特徴とする請求項１乃至３の何れか１項に記載の画像処理装置。
【請求項５】
前記第２の生成手段は、前記所定の条件として、前記取得手段による前記対象物の位置姿勢の取得が失敗した場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢と前記対象物の位置姿勢との間の相対的な位置姿勢関係を求め、該求めた相対的な位置姿勢関係と、現在の前記第１の形状モデルの位置姿勢と、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成することを特徴とする請求項１乃至４の何れか１項に記載の画像処理装置。
【請求項６】
ユーザの部位の位置姿勢の測定結果に基づいて該部位の第１の形状モデルを生成する第１の生成手段と、
前記部位による把持対象となる対象物の第２の形状モデルを生成する第２の生成手段と、
前記第１の形状モデル、前記第２の形状モデル、を含む仮想空間の画像を生成する第３の生成手段とを備え、
前記第１の生成手段は、
前記部位の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記部位の位置姿勢を推定し、該推定された位置姿勢に基づいて前記第１の形状モデルを生成する
ことを特徴とする画像処理装置。
【請求項７】
前記第１の生成手段は、前記所定の条件として、前記部位の位置姿勢の取得が失敗した場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記部位の位置姿勢を推定し、該推定された位置姿勢に基づいて前記第１の形状モデルを生成することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記第１の生成手段は、前記所定の条件として、前記第１の形状モデルの生成に失敗した場合には、過去に前記部位が前記対象物を把持したときの前記第１の形状モデルを、現在の前記第１の形状モデルとすることを特徴とする請求項６に記載の画像処理装置。
【請求項９】
更に、現実空間の撮像画像を取得する手段を備え、
前記第３の生成手段は、前記仮想空間の画像と前記撮像画像との合成画像を生成することを特徴とする請求項１乃至８の何れか１項に記載の画像処理装置。
【請求項１０】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１の生成手段が、ユーザの部位に対する測定結果に基づいて該部位の第１の形状モデルを生成する第１の生成工程と、
前記画像処理装置の取得手段が、前記部位による把持対象となる対象物の位置姿勢を取得する取得工程と、
前記画像処理装置の第２の生成手段が、前記対象物の第２の形状モデルを生成する第２の生成工程と、
前記画像処理装置の第３の生成手段が、前記第１の形状モデル、前記取得工程で取得した位置姿勢を有する前記第２の形状モデル、を含む仮想空間の画像を生成する第３の生成工程とを備え、
前記第２の生成工程では、
前記取得工程による前記対象物の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成する
ことを特徴とする画像処理方法。
【請求項１１】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の第１の生成手段が、ユーザの部位の位置姿勢の測定結果に基づいて該部位の第１の形状モデルを生成する第１の生成工程と、
前記画像処理装置の第２の生成手段が、前記部位による把持対象となる対象物の第２の形状モデルを生成する第２の生成工程と、
前記画像処理装置の第３の生成手段が、前記第１の形状モデル、前記第２の形状モデル、を含む仮想空間の画像を生成する第３の生成工程とを備え、
前記第１の生成工程では、
前記部位の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記部位の位置姿勢を推定し、該推定された位置姿勢に基づいて前記第１の形状モデルを生成する
ことを特徴とする画像処理方法。
【請求項１２】
コンピュータを、請求項１乃至９の何れか１項に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複合現実感の提示技術に関するものである。
【背景技術】
【０００２】
近年、設計・製造分野においてプロトタイプを用いた評価の期間短縮、費用削減が求められている。ＣＡＤ（コンピュータ支援設計）システムで作成した設計（形状・デザイン）データを用いて、組み立てやすさやメンテナンス性の仮想評価をするための複合現実感（ＭＲ：Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）システムが導入されている。例えば、組み立てやすさを評価する場合は、手で仮想物体（以後操作CGモデルと呼ぶ）を把持して動かし、別の仮想物体（以後非操作CGモデルと呼ぶ）との接触を仮想空間上でシミュレーションすることが想定される。このとき手と操作CGモデルとの接触をシミュレーションするためには、手をモデル化して手に重畳させる必要があり、同様に操作CGモデルと非操作CGモデルとの接触をシミュレーションするためには操作CGモデルの位置姿勢を取得する必要がある。
【０００３】
手をモデル化するためには、例えば、Leap Motion社のLeap Motionを利用することが考えられる。Leap Motionは、手の指も含めた位置姿勢を計測することができる。Leap Motionでは、内蔵されているステレオカメラから手の領域を検出し、手の形状を模した３次元ポリゴンモデル（以後ハンドモデルと呼ぶ）をリアルタイムで出力することができる。Leap Motion以外にもMicrosoft（登録商標）社のKinect等のデプスセンサから手と指の位置姿勢を推定することができる（非特許文献１）。非特許文献１に記載の技術では、デプスセンサで得られた手の形状の奥行画像に基づいて、初期位置から繰り返し計算し、コストを最適化することによって手と指の姿勢を推定した３次元ポリゴンモデルを生成している。以後、ハンドモデルを出力できるLeap Motionおよびデプスセンサのことをセンサと総称する。
【０００４】
物体の位置姿勢を求めるためは、物体に既知の幾何学パターン（以後、マーカと呼ぶ）を貼り、カメラでマーカの画像を取得し、マーカの幾何変化を算出し、マーカとカメラとの相対位置姿勢を算出すればよい。ここでカメラとは、複合現実感を提示するための表示デバイスであるビデオシースルー型のヘッドマウントディスプレイ（以後HMDと略す）に搭載されているステレオカメラを想定している。CGモデルを描画するときの仮想カメラ位置姿勢を、HMDに搭載されているステレオカメラの位置姿勢と同期させることにより、あたかも現実空間の中にハンドモデルやCGモデルが存在するように表示することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−４０９１３号公報
【非特許文献】
【０００６】
【非特許文献１】Qian, C., Sun, X., Wei, Y., Tang, X., Sun, J. : Realtime and Robust Hand Tracking from Depth. In CVPR 2014. Pp. 1106-1113. Colum¬bus, USA (2014)
【非特許文献２】D. Holz, S. Ullrich, M. Wolter, and T. Kuhlen.: Multi-contact grasp interaction for virtual environments. Journal of Virtual Reality and Broadcasting, 5(7), 2008.
【非特許文献３】Moehring, M. , Froehlich, B.: Pseudo-Physical Interaction with a Virtual Car Interior in Immersive Environments. In Proceedings of IPT/EGVG-Workshop. 2005. Aalborg
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし手で物体を把持していると、手が邪魔で物体に貼りつけられたマーカが見えず、物体の位置姿勢が正しく算出できない場合がある。同様に物体が邪魔で手が見えず、手の位置姿勢形状が正しく算出できない場合がある。
【０００８】
特許文献１では、マーカが貼られた物体の位置姿勢を検出する際に、物体の形状が既知のものとして、マーカから算出した位置姿勢を補正する手法を提案しているが、物体の形状が既知であることを前提にしなくてはならない。また、特許文献１には、マーカを用いて算出した位置姿勢を補正する手法であって、マーカを用いて位置姿勢が算出できなかった場合の対処方法は記載されていない。
【０００９】
本発明はこのような問題に鑑みてなされたものであり、ユーザが自身の部位で物体を把持している状態において、該部位に重畳するモデルや該部位の位置姿勢、該物体の位置姿勢、の何れか一方が取得できなくても代わりとなる情報を生成可能な技術を提供する。
【課題を解決するための手段】
【００１０】
本発明の一様態は、ユーザの部位に対する測定結果に基づいて該部位の第１の形状モデルを生成する第１の生成手段と、前記部位による把持対象となる対象物の位置姿勢を取得する取得手段と、前記対象物の第２の形状モデルを生成する第２の生成手段と、前記第１の形状モデル、前記取得手段が取得した位置姿勢を有する前記第２の形状モデル、を含む仮想空間の画像を生成する第３の生成手段とを備え、前記第２の生成手段は、前記取得手段による前記対象物の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に前記部位が前記対象物を把持したときの前記部位の位置姿勢及び前記対象物の位置姿勢、に基づいて前記対象物の位置姿勢を推定し、該推定された結果に基づいて前記第２の形状モデルを生成することを特徴とする。
【発明の効果】
【００１１】
本発明の構成によれば、ユーザが自身の部位で物体を把持している状態において、該部位に重畳するモデルや該部位の位置姿勢、該物体の位置姿勢、の何れか一方が取得できなくても代わりとなる情報を生成することができる。
【図面の簡単な説明】
【００１２】
【図１】複合現実空間提示システムの機能構成例を示すブロック図。
【図２】ハンドモデル及び操作ＣＧモデルを説明する図。
【図３】画像処理装置１９０が行う処理のフローチャート。
【図４】画像処理装置１９０が行う処理のフローチャート。
【図５】コンピュータ装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【００１３】
以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１４】
［第１の実施形態］
本実施形態では次のような構成を有する画像処理装置の一例について説明する。この画像処理装置は、ユーザの部位に対する測定結果に基づいて該部位の第１の形状モデルを生成（第１の生成）し、該部位による把持対象となる対象物の位置姿勢を取得し、該対象物の第２の形状モデルを生成（第２の生成）する。そして画像処理装置は、第１の形状モデル、上記取得した位置姿勢を有する第２の形状モデル、を含む仮想空間の画像を生成（第３の生成）する。ここで、上記の第２の生成では、対象物の位置姿勢を取得する処理の結果が所定の条件を満たす場合には、過去に上記部位が対象物を把持したときの上記部位の位置姿勢及び対象物の位置姿勢、に基づいて対象物の位置姿勢を推定する。そして上記の第２の生成では更に、該推定された結果に基づいて第２の形状モデルを生成する。
【００１５】
本実施形態に係る複合現実空間提示システムでは、図２に示す如く、ＨＭＤ等の頭部装着型表示装置を自身の頭部に装着しているユーザの手２０１の位置姿勢でもって、手２０１の形状を模した３次元仮想物体であるハンドモデル２１１を生成して配置する。更に複合現実空間提示システムは、現実物体としてのドライバ２０２の位置姿勢でもって、ドライバ２０２の形状を模した３次元仮想物体である操作ＣＧモデル２１２を配置する。このとき、操作ＣＧモデル２１２はドライバ２０２の位置姿勢でもって配置されるものであるから、ドライバ２０２にはその位置姿勢を複合現実空間提示システムに認識させるためにマーカ２０３が取り付けられている。図２ではマーカ２０３は２次元バーコードとして示しているが、マーカ２０３として利用可能なものはこれに限らず、如何なる指標であっても良い。また、マーカ２０３はドライバ２０２の何れの箇所に設けても構わない。複合現実空間提示システムはこのマーカ２０３を認識してドライバ２０２の位置姿勢を求め、該求めた位置姿勢でもって操作ＣＧモデル２１２を配置するのであるが、例えば手２０１でマーカ２０３の一部若しくは全部を隠蔽するようなケースが発生しうる。このようなケースが発生すると、複合現実空間提示システムはマーカ２０３を正しく認識することができず、その結果、ドライバ２０２の位置姿勢を正しく認識できない。後述するように、ドライバ２０２の位置姿勢が正しく認識できなくなるようなケースは他にもある。ドライバ２０２の位置姿勢が正しく認識できないと、操作ＣＧモデル２１２を正しくドライバ２０２の位置姿勢でもって配置することができない。
【００１６】
本実施形態ではドライバ２０２の位置姿勢が正しく認識できなくなるようなケースが発生した場合、過去に手２０１がドライバ２０２を把持していた状態における手２０１とドライバ２０２との位置姿勢関係を参酌して現在のドライバ２０２の位置姿勢を求める。
【００１７】
先ず、本実施形態に係る複合現実空間提示システムの機能構成例について、図１のブロック図を用いて説明する。なお、図１に示した構成は一例であり、上記のケースに対処可能な構成であれば、如何なる構成を採用しても良い。図１に示す如く、本実施形態に係る複合現実空間提示システムは、センサ１０１、頭部装着型表示装置の一例であるＨＭＤ１５１、画像処理装置１９０、表示装置１４２、を有する。
【００１８】
先ず、センサ１０１について説明する。センサ１０１は、ＨＭＤ１５１を自身の頭部に装着したユーザの手（指を含む）の位置姿勢や形状を計測するために設けられたものである。センサ１０１としては、例えば、上記の非特許文献１に記載のKinectを使用しても良い。センサ１０１はＨＭＤ１５１に取り付けても良いし、ＨＭＤ１５１には取り付けずに現実空間中の所定の位置に取り付けても良い。
【００１９】
次に、ＨＭＤ１５１について説明する。表示部１１１は、ＨＭＤ１５１を自身の頭部に装着したユーザの眼（右眼及び左眼）前に位置するようにＨＭＤ１５１に取り付けられたものであり、画像処理装置１９０から出力された画像を表示する。撮像部１４１は、ＨＭＤ１５１を自身の頭部に装着したユーザの眼（右眼及び左眼）の近傍位置から該ユーザの視線方向を撮像するようにＨＭＤ１５１に取り付けられたものであり、現実空間の動画像を撮像する。撮像部１４１が撮像した各フレームの画像（現実空間の撮像画像）は順次、画像処理装置１９０に対して出力される。
【００２０】
次に、画像処理装置１９０について説明する。ハンドモデル生成部１０２は、センサ１０１によるユーザの手の測定結果に基づいて、該手の形状を模した３次元仮想物体である形状モデル、すなわちハンドモデル（図２のハンドモデル２１１）を生成する。ハンドモデル生成部１０２によるハンドモデルの生成には、例えば、Microsoft（登録商標）社製のKinect SDKを用いればよい。すなわち、センサ１０１から手の３次元領域を抽出し、参照データとマッチングすることにより、リアルタイムに変化する手の形状が反映されたハンドモデルを出力する。
【００２１】
生成成功判断部１０３は、ハンドモデル生成部１０２によるハンドモデルの生成が成功したか否かを判断する。ハンドモデルの生成が成功したか否かの判断基準には様々なものが考えられる。
【００２２】
例えば、現フレームにおける手の位置姿勢と、過去のフレーム（例えば現フレームの１フレーム過去のフレーム）における手の位置姿勢と、の差分が閾値以上であれば、ハンドモデルの生成は失敗したと判断する。なお、該差分は、位置成分のみの差分でも良いし姿勢成分のみの差分でも良いし、位置及び姿勢の両方の差分でも良い。また、手の位置姿勢の代わりに、各指や関節の位置姿勢を用いてもよい。
【００２３】
また、他の判断基準として、センサ１０１から手への直線上に別の現実物体が存在したが故に、センサ１０１から十分な測定情報（ハンドモデルを生成するのに十分な情報）が得られなかった場合に、ハンドモデルの生成は失敗したと判断しても良い。
【００２４】
何れにせよ、生成成功判断部１０３が、ハンドモデルの生成は失敗したと判断しない限りは、ハンドモデルの生成は成功したものとして取り扱われる。
【００２５】
位置姿勢認識部１１２は、撮像部１４１から出力される撮像画像中に写っているマーカ（図２のマーカ２０３）を認識し、該マーカの（撮像部１４１に対する）位置姿勢をドライバ（図２のドライバ２０２）の位置姿勢として求める（認識する）。なお、ドライバの位置姿勢を取得することができるのであれば、その取得方法は撮像部１４１による撮像画像を利用した方法に限らず、例えば、ドライバに磁気センサや光学式センサを取り付けて、該センサによる測定結果からドライバの位置姿勢を求めても良い。
【００２６】
認識成功判断部１１３は、位置姿勢認識部１１２によるドライバの位置姿勢の認識に成功したか否かを判断する。ドライバの位置姿勢の認識に成功したか否かの判断基準には様々な判断基準が考えられる。
【００２７】
例えば、撮像部１４１から出力される撮像画像からマーカが検出できなかった場合には、ドライバの位置姿勢の認識には失敗したと判断する。また、現フレームにおけるドライバの位置姿勢と、過去のフレーム（例えば現フレームの１フレーム過去のフレーム）におけるドライバの位置姿勢と、の差分が閾値以上であれば、ドライバの位置姿勢の認識には失敗したと判断する。なお、該差分は、位置成分のみの差分でも良いし姿勢成分のみの差分でも良いし、位置及び姿勢の両方の差分でも良い。
【００２８】
把持判定部１２１は、ユーザの手がドライバを把持しているか否かを判断する。ユーザの手がドライバを把持しているか否かを判断する方法は周知の技術で実装可能であり、例えば、非特許文献２や非特許文献３に記載されている方法を用いて、ユーザの手がドライバを把持しているか否かを判断するようにしても良い。例えば、ユーザの手とドライバとの位置姿勢関係が規定の位置姿勢関係（ユーザの手がドライバを把持している状態における手とドライバとの位置姿勢関係）であれば、ユーザの手がドライバを把持していると判断する。
【００２９】
情報保存部１２２は、後述する推定部１２３が現フレームにおけるドライバの位置姿勢を推定するために使用する様々な情報を登録するためのメモリとして機能する。
【００３０】
推定部１２３は、ハンドモデルの生成には成功したものの、ドライバの位置姿勢の認識には失敗した場合に、情報保存部１２２に登録されている情報を用いてドライバの位置姿勢を推定する。推定部１２３の動作について詳しくは後述する。
【００３１】
仮想空間生成部１３２は先ず、センサ１０１による測定結果に応じた手の位置姿勢で配置されたハンドモデル、位置姿勢認識部１１２が認識した若しくは推定部１２３が推定したドライバの位置姿勢で配置された操作ＣＧモデル、を含む仮想空間を構築する。そして仮想空間生成部１３２は、この構築した仮想空間を撮像部１４１の位置姿勢を有する視点から見た画像を仮想空間画像として生成する。撮像部１４１の位置姿勢は、例えば、撮像部１４１による撮像画像中の自然特徴を用いて求めても良いし、撮像部１４１に磁気センサや光学式センサを取り付けて該センサによる測定結果に応じて求めても良い。
【００３２】
画像生成部１３３は、撮像部１４１から出力された撮像画像と、仮想空間生成部１３２によって生成された仮想空間画像と、を合成した合成画像を生成する。画像出力部１３４は、画像生成部１３３が生成した合成画像を、ＨＭＤ１５１（表示部１１１）及び表示装置１４２に対して出力する。なお、画像出力部１３４による合成画像の出力先は、ＨＭＤ１５１、表示装置１４２に限らない。
【００３３】
次に、画像処理装置１９０が１フレーム分の合成画像を生成して出力するために行う処理について、同処理のフローチャートを示す図３を用いて説明する。つまり、画像処理装置１９０は、撮像部１４１から出力される各フレームの撮像画像について、図３のフローチャートに従った処理を行うことになる。
【００３４】
ステップＳ３０１では、ハンドモデル生成部１０２は、センサ１０１によるユーザの手の測定結果に基づいてハンドモデルを生成する。ステップＳ３０２では、生成成功判断部１０３は、ハンドモデル生成部１０２によるハンドモデルの生成が成功したか否かを判断する。この判断の結果、ハンドモデルの生成が成功したと判断した場合には、処理はステップＳ３０３に進み、ハンドモデルの生成が失敗したと判断した場合には、処理はステップＳ３１１に進む。
【００３５】
ステップＳ３０３では、生成成功判断部１０３は、センサ１０１による測定結果が示す手の位置姿勢（ハンドモデルの位置姿勢）と、現フレームを特定するフレーム情報（フレーム番号、撮像日時など）と、を関連づけて情報保存部１２２に登録する。
【００３６】
ステップＳ３１１では、位置姿勢認識部１１２は、撮像部１４１から出力される撮像画像中に写っているマーカを認識し、該認識の結果に基づいて該マーカの位置姿勢をドライバの位置姿勢（操作ＣＧモデルの位置姿勢）として求める（認識する）。
【００３７】
ステップＳ３１２では、認識成功判断部１１３は、位置姿勢認識部１１２によるドライバの位置姿勢の認識に成功したか否かを判断する。この判断の結果、ドライバの位置姿勢の認識に成功したと判断した場合には、処理はステップＳ３１３に進む。一方、ドライバの位置姿勢の認識に失敗したと判断した場合には、処理はステップＳ３２１に進む。
【００３８】
ステップＳ３１３では、認識成功判断部１１３は、ステップＳ３１１で認識したドライバの位置姿勢（操作ＣＧモデルの位置姿勢）と、現フレームを特定するフレーム情報（フレーム番号、撮像日時など）と、を関連づけて情報保存部１２２に登録する。
【００３９】
そして、この時点で「ハンドモデルの生成が成功したと判断され且つドライバの位置姿勢の認識が成功したと判断された」という成功条件が満たされている場合には、処理はステップＳ３２１を介してステップＳ３２２に進む。一方、この成功条件が満たされていない場合には、処理はステップＳ３２１を介してステップＳ３２３に進む。
【００４０】
ステップＳ３２２では、把持判定部１２１は、ユーザの手がドライバを把持しているか否かを判断し、その判断結果を示す値（判断値）を、現フレームを特定するフレーム情報（フレーム番号、撮像日時など）と関連づけて情報保存部１２２に登録する。判断値は、例えば、ユーザの手がドライバを把持している場合には値「１」を有し、ユーザの手がドライバを把持していない場合には値「０」を有する。
【００４１】
そして処理がステップＳ３２３に進むと、ハンドモデル生成部１０２によるハンドモデルの生成が成功している場合には、処理はステップＳ３２４に進み、ハンドモデルの生成が失敗した場合には、処理はステップＳ３３０に進む。
【００４２】
ステップＳ３２４では、推定部１２３は先ず、情報保存部１２２に登録されている情報を参照して、「ユーザの手がドライバを把持している」ことを示す判断値と関連づけて登録されているフレーム情報のうち最近のフレームを表すフレーム情報を特定する。そして推定部１２３は、該特定したフレーム情報と関連づけて情報保存部１２２に登録されている手の位置姿勢、ドライバの位置姿勢、を検索する。この検索が成功した場合には、処理はステップＳ３２５に進み、この検索が失敗した場合には、処理はステップＳ３３０に進む。つまり、検索に成功した場合、推定部１２３は、最近に手がドライバを把持していたときの、手の位置姿勢及びドライバの位置姿勢を取得したことになる。
【００４３】
ステップＳ３２５では、推定部１２３は、上記の検索により取得した手の位置姿勢及びドライバの位置姿勢を用いて、手に対するドライバの相対的な位置姿勢Δを算出する。そして推定部１２３は、現フレームにおけるハンドモデルの位置姿勢に対する相対的な位置姿勢が、この求めた相対的な位置姿勢Δとなる位置姿勢を、現フレームにおける操作ＣＧモデルの位置姿勢として算出する。
【００４４】
ステップＳ３３０では、仮想空間生成部１３２は、ハンドモデル及び操作ＣＧモデルを上記の如く配置した仮想空間を、撮像部１４１の位置姿勢を有する視点から見た画像を仮想空間画像として生成する。なお、ハンドモデルの生成に失敗した場合や、操作ＣＧモデルの位置姿勢の認識に失敗した場合には、ハンドモデル及び操作ＣＧモデルは配置できない。このような場合における仮想空間画像としては、例えば、直前のフレームにおける仮想空間画像を現フレームの仮想空間画像として使用しても良い。
【００４５】
ステップＳ３４０では、画像生成部１３３は、撮像部１４１から出力された撮像画像と、仮想空間生成部１３２によって生成された仮想空間画像と、を合成した合成画像を生成する。画像出力部１３４は、画像生成部１３３が生成した合成画像を、ＨＭＤ１５１（表示部１１１）及び表示装置１４２に対して出力する。
【００４６】
＜変形例１＞
第１の実施形態では、ハンドモデルの生成に成功するたびに手の位置姿勢を情報保存部１２２に登録し、ドライバの位置姿勢の認識に成功するたびにドライバの位置姿勢を情報保存部１２２に登録していた。しかし、情報保存部１２２に登録した位置姿勢のうち実際に使用されるものは、最近に手がドライバを把持したときの手の位置姿勢及びドライバの位置姿勢である。然るに、ユーザの手がドライバを把持していると判断された場合にのみ、手の位置姿勢及びドライバの位置姿勢を登録するようにしても良い。また、登録する位置姿勢は最新のフレームにおけるもののみとしても良い。
【００４７】
また、このほかにも、手の位置姿勢やドライバの位置姿勢を登録する条件としては様々なものが考えられる。例えば、手とドライバとの間の相対位置の変化量が閾値以上となった場合や、ハンドモデルの形状の変化量が閾値以上となった場合に登録するようにしても良い。ハンドモデルの形状変化は、ハンドモデルの指や関節の位置姿勢変化から求めることができる。
【００４８】
［第２の実施形態］
第１の実施形態は、ハンドモデルの生成には成功したものの、ドライバの位置姿勢の認識に失敗したケースに対処するものであった。本実施形態は、ドライバの位置姿勢の認識には成功したものの、ハンドモデルの生成に失敗したケースに対処するものである。本実施形態を含め、以下の各実施形態では、第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは第１の実施形態と同様であるものとする。
【００４９】
本実施形態では、画像処理装置１９０は図３のフローチャートに従った処理を行う代わりに、図４のフローチャートに従った処理を行う。図４において図３に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
【００５０】
ステップＳ４００では、生成成功判断部１０３は、ステップＳ３０１で生成したハンドモデルと、該ハンドモデル（手）の位置姿勢と、現フレームを特定するフレーム情報（フレーム番号、撮像日時など）と、を関連づけて情報保存部１２２に登録する。
【００５１】
そして、「ハンドモデルの生成が成功したと判断され且つドライバの位置姿勢の認識が成功したと判断された」という成功条件が満たされていない場合には、処理はステップＳ３２１を介してステップＳ４０１に進む。
【００５２】
そして処理がステップＳ４０１に進むと、位置姿勢認識部１１２によるドライバの位置姿勢の認識が成功している場合には、処理はステップＳ３２４に進み、ドライバの位置姿勢の認識が失敗した場合には、処理はステップＳ３３０に進む。そしてステップＳ３２４における検索が成功した場合には、処理はステップＳ４０３に進み、この検索が失敗した場合には、処理はステップＳ３３０に進む。
【００５３】
ステップＳ４０３では、推定部１２３は、上記の検索により取得した手の位置姿勢及びドライバの位置姿勢を用いて、ドライバに対する手の相対的な位置姿勢Δを算出する。そして推定部１２３は、現フレームにおける操作ＣＧモデルの位置姿勢に対する相対的な位置姿勢が、この求めた相対的な位置姿勢Δとなる位置姿勢を、現フレームにおけるハンドモデルの位置姿勢として算出する。また、ハンドモデルそのものが生成できなかった場合には、ステップＳ３２４で特定したフレーム情報と関連づけて情報保存部１２２に登録されているハンドモデルを読み出し、該読み出したハンドモデルを現フレームにおけるハンドモデルとして使用してもよい。なお、ステップＳ４００ではハンドモデルの代わりに、情報保存部１２２におけるメモリ効率の観点から、該ハンドモデルのボーンを登録しても良いし、ハンドモデルを視点から見た２次元画像を登録しても良い。
【００５４】
［第３の実施形態］
第１の実施形態では、ハンドモデルの生成に失敗した場合や、ドライバの位置姿勢の認識に失敗した場合に、現フレームのハンドモデルやその位置姿勢、現フレームの操作ＣＧモデルの位置姿勢、を求めるようにした。しかし、ハンドモデルの生成やドライバの位置姿勢の認識に成功したと判断したとしても、生成したハンドモデルの精度やその位置姿勢の精度、操作ＣＧモデルの位置姿勢の精度を考慮すると、その信頼度が低い場合がある。然るに、単にハンドモデルの生成に成功した／失敗した、ドライバの位置姿勢の認識に成功した／失敗した、に応じて情報保存部１２２への情報登録を制御するのではなく、その信頼度を考慮して制御するようにしても良い。
【００５５】
例えば、センサ１０１から得られる手のデータ量が、規定のデータ量（本来センサ１０１から得られるデータ量）未満であれば信頼度＝０として、ステップＳ３０２からステップＳ３１１に処理を進める。一方、センサ１０１から得られる手のデータ量が規定のデータ量以上であれば信頼度＝１として、ステップＳ３０２からステップＳ３０３に処理を進める。
【００５６】
また例えば、撮像部１４１による撮像画像中のマーカの数が多いほど、ドライバの位置姿勢の認識の信頼度が高いと判断しても良い。そして信頼度が閾値以上であれば、処理はステップＳ３１２からステップＳ３１３に処理を進め、信頼度が閾値未満であれば、処理はステップＳ３１２からステップＳ３２１に処理を進める。
【００５７】
［第４の実施形態］
図１に示した画像処理装置１９０に含まれている各機能部の全てをハードウェアで構成しても良いが、情報保存部１２２をメモリで実装し、それ以外の各機能部をソフトウェア（コンピュータプログラム）で実装するようにしても良い。このような場合、情報保存部１２２をメモリとして有し、且つ該コンピュータプログラムを実行可能なコンピュータ装置は、上記の画像処理装置１９０に適用可能である。画像処理装置１９０に適用可能なコンピュータ装置のハードウェア構成例について、図５のブロック図を用いて説明する。
【００５８】
ＣＰＵ５１０は、ＲＯＭ５２０やＲＡＭ５３０に格納されているコンピュータプログラムやデータを用いて処理を実行する。これによりＣＰＵ５１０は、コンピュータ装置全体の動作制御を行うと共に、画像処理装置１９０が行うものとして上述した各処理を実行若しくは制御する。
【００５９】
ＲＯＭ５２０には、書き換え不要の本コンピュータ装置の設定データやブートプログラムなどが格納されている。ＲＡＭ５３０は、Ｉ／Ｆ（インターフェース）５４０を介して外部から受信したデータ、外部記憶装置５６０からロードされたコンピュータプログラムやデータを格納するためのエリアを有する。更にＲＡＭ５３０は、ＣＰＵ５１０が各種の処理を実行する際に用いるワークエリアを有する。このようにＲＡＭ５３０は、各種のエリアを適宜提供することができる。
【００６０】
Ｉ／Ｆ５４０は、上記のセンサ１０１、ＨＭＤ１５１、表示装置１４２を接続するためのものである。センサ１０１から出力される手の測定結果やＨＭＤ１５１から出力される各フレームの撮像画像は、Ｉ／Ｆ５４０を介してＲＡＭ５３０や外部記憶装置５６０に入力される。また、本コンピュータ装置が生成した合成画像などの情報は、Ｉ／Ｆ５４０を介してＨＭＤ１５１（表示部１１１）や表示装置１４２に対して出力される。
【００６１】
外部記憶装置５６０は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置５６０には、ＯＳ（オペレーティングシステム）や、画像処理装置１９０が行うものとして上述した各処理をＣＰＵ５１０に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、図１において画像処理装置１９０が有するものとして示した各機能部のうち情報保存部１２２を除く各機能部の機能をＣＰＵ５１０に実現させるためのコンピュータプログラムが含まれている。また、外部記憶装置５６０に保存されているデータには、ハンドモデルや操作ＣＧモデルのデータ、上記の説明において既知の情報として説明した情報、が含まれている。
【００６２】
外部記憶装置５６０に保存されているコンピュータプログラムやデータは、ＣＰＵ５１０による制御に従って適宜ＲＡＭ５３０にロードされ、ＣＰＵ５１０による処理対象となる。ＣＰＵ５１０、ＲＯＭ５２０、ＲＡＭ５３０、Ｉ／Ｆ５４０、外部記憶装置５６０は何れも、バス５００に接続されている。
【００６３】
［第５の実施形態］
上記の各実施形態では、ＨＭＤ１５１はビデオシースルー方式のものを用いるものとして説明したが、光学シースルー方式のものを採用しても良い。その場合、撮像部１４１による撮像画像は、マーカの撮像やＨＭＤ１５１の位置姿勢を算出するために使用され、表示用には使用されない。また、画像処理装置１９０も、仮想空間画像を生成すると、これを表示装置１４２及びＨＭＤ１５１に対して出力する。また、ＨＭＤ１５１の代わりに、スマートフォンやカメラ付タブレット端末装置を使用しても構わない。
【００６４】
なお、以上の各実施形態や変形例では、物体を把持するユーザの部位を手、把持対象となる対象物をドライバとして説明を行ったが、物体を把持するユーザの部位、把持対象となる対象物、のそれぞれは手、ドライバに限るものではない。
【００６５】
また、操作ＣＧモデルと、ハンドモデル及び操作ＣＧモデル以外の仮想物体である非操作ＣＧモデルとの接触があった場合には、その旨を表示部１１１や表示装置１４２に通知するようにしても良い。例えば、操作ＣＧモデルと非操作ＣＧモデルとで接触のあった箇所（ポリゴンなど）を明示的に表示しても良い。また、以上説明した各実施形態や変形例の一部若しくは全部を適宜組み合わせても構わない。
【００６６】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６７】
１０２：ハンドモデル生成部  １０３：生成成功判断部  １１２：位置姿勢認識部  １１３：認識成功判断部  １２１：把持判定部  １２３：推定部  １３２：仮想空間生成部  １３３：画像生成部
【図１】
2018077732.tif 000003
【図２】
2018077732.tif 000004
【図３】
2018077732.tif 000005
【図４】
2018077732.tif 000006
【図５】
2018077732.tif 000007