(57)【特許請求の範囲】
【請求項１】
利用者側から利用者の視線方向に位置する物体までの距離情報を取得する距離センサと、
前記距離センサから利用者の視線方向に存在する物体までの距離情報を距離画像として取得し、取得した前記距離画像が表す物体が前記利用者の手の形状か認識すると共に、認識結果が手の形状である場合に、更に手の形状が所定の形状に該当するか認識し、前記利用者の手の傾きを認識する認識部と、
前記認識部で認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記手の傾きに応じて、前記視点位置を移動させつつ、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる表示制御部と
を有することを特徴とする画像処理装置。
【請求項２】
前記表示制御部は、前記利用者の手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記表示制御部は、前記利用者の手の傾きに応じて、前記視点位置を移動させる移動量を調整することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記表示制御部は、前記距離センサから前記物体までの距離が閾値未満である場合には、前記利用者の手の形状が所定の形状であると仮定し、予め設定された移動情報に基づいて、前記視点位置を移動させることを特徴とする請求項１に記載の画像処理装置。
【請求項５】
前記表示制御部は、前記手の形状の一部が認識された場合に、直前に認識された手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする請求項２、３または４に記載の画像処理装置。
【請求項６】
コンピュータが実行する画像処理方法であって、
利用者側から利用者の視線方向に位置する物体までの距離情報を距離画像として取得し、
取得した前記距離画像を基にして、取得された物体が前記利用者の手の形状か、また、手の形状である場合に、更に手の形状が所定の形状に該当するかを認識し、
前記利用者の手の傾きを認識し、
認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記手の傾きに応じて、前記視点位置を移動させつつ、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる
処理を実行することを特徴とする画像処理方法。
【請求項７】
コンピュータに、
利用者側から利用者の視線方向に位置する物体までの距離情報を距離画像として取得し、
取得した前記距離画像を基にして、取得された物体が前記利用者の手の形状か、また、手の形状である場合に、更に手の形状が所定の形状に該当するかを認識し、
前記利用者の手の傾きを認識し、
認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記手の傾きに応じて、前記視点位置を移動させつつ、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる
処理を実行させることを特徴とする画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置等に関する。
【背景技術】
【０００２】
近年、ＨＭＤ（Head  Mounted  Display）が普及している。ＨＭＤは、利用者の頭部に装着するディスプレイ装置であり、利用者にＣＧ（Computer  Graphics）映像や遠隔映像を見せることで、利用者は、バーチャルリアリティを体験することができる。
【０００３】
ここで、全画面型のＨＭＤを装着した利用者は目がディスプレイによって覆われるため、利用者は、ＨＭＤを装着したまま、キーボード等の入力装置を操作することが難しく、映像内の視点を変更することが難しかった。このため、ＨＭＤを装着した利用者が所定のジェスチャ等を行うことで、映像内の視点を変更できる技術が求められている。
【０００４】
従来技術１について説明する。従来技術１は、Kinect（登録商標）等の固定センサを用いて、利用者の腕の移動に基づくジェスチャを認識し、６方向のナビゲーションを可能とするものである。図１５は、従来技術１を説明するための図である。例えば、１Ａに示すように、利用者が手の位置を固定すると、移動停止を装置に指示する。１Ｂに示すように、利用者が腕の位置を左に移動させると、左方向への移動を装置に指示し、腕の位置を右に移動させると、右方向への移動を装置に指示する。１Ｃに示すように、利用者が腕の位置を前方へ移動させると、前方への移動を装置に指示し、腕の位置を後方へ移動させると、後方への移動を装置に指示する。１Ｄに示すように、利用者が腕の位置を上方に移動させると、上方への移動を装置に指示し、腕の位置を下方へ移動させると、下方への移動を装置に指示する。
【０００５】
従来技術１は、ＨＭＤに適用されるものではないため、仮に、従来技術１をＨＭＤに適用し、映像内の視点位置を変更する場合について検討する。ＨＭＤに搭載されるカメラは、利用者の頭部から視線方向を撮影するように取り付けられるため、撮影範囲に手のひらが含まれるものの、腕が含まれないため、腕の移動を検出できず、視点の移動方向を指示することが難しい。例えば、図１５で説明した１Ｂ，１Ｄのジェスチャを認識することが難しい。
【０００６】
なお、従来技術１の１Ｃのように、腕を前方・後方に移動させる場合には、カメラの撮影範囲に腕を含めることが可能である。しかし、利用者毎に身体的な特徴が異なるため、利用者毎に手の長さが異なり、例えば、手のひらとカメラとの間の距離によって、腕の曲げ伸ばしを推定することが難しい。
【０００７】
従来技術２について説明する。従来技術２は、ＨＭＤのカメラの撮影範囲に、利用者の両手のひらが存在するか否かを判定し、両手のひらが存在する場合には、視点位置を前方に移動させる技術である。図１６は、従来技術２を説明するための図である。図２に示すように、従来技術２では、利用者が両手のひらを前方に出すと、両手のひらが表示画面に表示され、視点位置を前方に移動させる。従来技術２は、従来技術１と比較して、両手のひらが存在するか否かを判定するだけでよいので、利用者はＨＭＤを装着した状態で、視点位置を前方に移動させることができる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１２−７９１７７号公報
【特許文献２】特開平１０−１７７４４９号公報
【特許文献３】特開２０１４−７２５７５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述した従来技術では、複数種類のジェスチャを認識することができず、また、利用者の手によって視認可能な領域が隠れてしまうと言う問題があった。
【００１０】
例えば、従来技術２では、両手のひらが存在するか否かを判定するのみであるため、操作可能な視点位置の移動方向が限られてしまう。また、図１６で説明したように、利用者が両手のひらを前方に出すと、利用者の両手のひらが表示画面に表示されるため、両手のひらと重複する領域が隠れてしまう。
【００１１】
１つの側面では、本発明は、ジェスチャ判定と共に手によって隠れた領域の視認ができ、直感的な操作ができる画像処理装置、画像処理方法および画像処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
第１の案では、画像処理装置は、距離センサと、認識部と、表示制御部とを有する。距離センサは、利用者側から利用者の視線方向に位置する物体までの距離情報を取得する。認識部は、距離センサから利用者の視線方向に存在する物体までの距離情報を距離画像として取得し、取得した前記距離画像が表す物体が前記利用者の手の形状か認識すると共に、認識結果が手の形状である場合に、更に手の形状が所定の形状に該当するか認識する。表示制御部は、認識部で認識した物体が利用者の手であり、かつ所定の形状であった場合に、利用者の視点位置に応じた画像表示に加え、画像を透過させる利用者の手の画像を重畳させた重畳画像を表示装置に表示させる。
【発明の効果】
【００１３】
ジェスチャ判定と共に手によって隠れた領域の視認ができ、直感的な操作ができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。
【図２】図２は、手領域候補を切り出す処理を説明するための図である。
【図３】図３は、平滑化する処理を説明するための図である。
【図４】図４は、指先候補点と指根本候補点とを特定する処理を説明するための図（１）である。
【図５】図５は、指先候補点と指根本候補点とを特定する処理を説明するための図（２）である。
【図６】図６は、指根本候補点を検出するその他の処理を説明するための図である。
【図７】図７は、指領域を特定する処理を説明するための図である。
【図８】図８は、手領域を特定する処理を説明するための図である。
【図９】図９は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。
【図１０】図１０は、視点移動ベクトルを決定する処理手順を示すフローチャートである。
【図１１】図１１は、手領域の透明度を決定する処理手順を示すフローチャートである。
【図１２】図１２は、画像処理装置のその他の処理（１）を示すフローチャートである。
【図１３】図１３は、画像処理装置のその他の処理（２）を示すフローチャートである。
【図１４】図１４は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【図１５】図１５は、従来技術１を説明するための図である。
【図１６】図１６は、従来技術２を説明するための図である。
【発明を実施するための形態】
【００１５】
以下に、本願の開示する画像処理装置、画像処理方法および画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【実施例】
【００１６】
図１は、本実施例に係る画像処理装置の構成を示す機能ブロック図である。画像処理装置１００は、例えば、図示しないＨＭＤ（Head  Mounted  Display）に組み込まれる。画像処理装置１００は、ＨＭＤに搭載された距離画像センサ５０および表示装置６０に接続される。利用者は、画像処理装置１００が組み込まれたＨＭＤを頭部に装着する。
【００１７】
距離画像センサ５０は、距離画像センサ５０から、距離画像センサ５０の撮影範囲に含まれる物体までの距離情報を計測するセンサである。また、距離画像センサ５０は、カメラを備え、撮影範囲の画像を撮影する。距離画像センサ５０の撮影方向は、利用者の視線方向とする。
【００１８】
距離画像センサ５０は、ＴＯＦ（Time  Of  Flight）方式に基づいて、距離画像センサ５０から物体までの距離情報を計測する。距離情報は、距離画像センサ５０から物体上の各点までの距離をそれぞれ含む。
【００１９】
距離画像センサ５０は、カメラによる撮影範囲の画像情報と距離情報とを組み合わせた距離画像情報を、画像処理装置１００に出力する。例えば、距離画像情報は、画像上の点と、距離画像センサ５０から画像上の点に対応する実空間上の点までの距離とを対応付けた情報である。また、距離画像情報としては、対象物体と距離センサ間の距離を画素値で表した距離画像であってもよい。
【００２０】
表示装置６０は、画像処理装置１００から出力される映像情報を表示する表示装置である。
【００２１】
画像処理装置１００は、取得部１１０と、特定部１２０と、ジェスチャ認識部１３０と、表示制御部１４０とを有する。取得部１１０と、特定部１２０と、ジェスチャ認識部１３０とは、認識部に対応する。
【００２２】
取得部１１０は、距離画像センサ５０から距離画像情報を取得する取得部である。取得部１１０は、取得した距離画像情報を、特定部１２０に出力する。
【００２３】
特定部１２０は、距離画像情報に含まれる物体上の点と基準点との距離を基にして、利用者の指先および指の根本を識別することで、指領域を特定し、特定した指領域を基にして手領域を特定する処理部である。特定部１２０は、手領域の情報を、ジェスチャ認識部１３０に出力する。
【００２４】
以下において、特定部１２０の処理を具体的に説明する。特定部１２０は、手領域候補を切り出す処理、手領域候補の輪郭を平滑化する処理、指先候補点と指根本候補点とを特定する処理、指領域を特定する処理、手領域候補が手領域か否かを判定する処理を実行する。
【００２５】
特定部１２０が、手領域候補を切り出す処理について説明する。特定部１２０は、距離画像情報に基づいて、距離画像センサ５０からの距離が閾値未満となる領域に存在する物体を、手領域候補として切り出す。
【００２６】
図２は、手領域候補を切り出す処理を説明するための図である。図２において、例えば、距離画像情報１０ａには、物体１１，１２，１３，１４が含まれる。物体１１〜１４のうち、物体１４が、距離画像センサ５０からの距離が閾値未満となる領域に存在するものとする。この場合には、特定部１２０は、距離画像情報１０ａから物体１４を切り出すことで、距離画像情報１０ｂを生成する。
【００２７】
特定部１２０が、手領域候補の輪郭を平滑化する処理について説明する。特定部１２０は、手領域候補を切り出した距離画像情報の距離について、隣り合う輪郭との重み付き平均などを実行することで、平滑化を行う。
【００２８】
図３は、平滑化する処理を説明するための図である。特定部１２０は、距離画像情報全体の各点に対応する距離について、平滑化フィルタ２０をかけることで、距離画像情報を平滑化する。平滑化フィルタ２０は、中心画素２１ｉの距離の値を、式（１）に基づき算出するフィルタである。
【００２９】
中心画素２１ｉの距離の値＝１／９（画素２１ａの距離の値＋画素２１ｂの距離の値＋画素２１ｃの距離の値＋画素２１ｄの距離の値＋画素２１ｅの距離の値＋画素２１ｆの距離の値＋画素２１ｇの距離の値＋画素２１ｈの距離の値）・・・（１）
【００３０】
特定部１２０が、指先候補点と指根本候補点とを特定する処理について説明する。図４および図５は、指先候補点と指根本候補点とを特定する処理を説明するための図である。特定部１２０は、平滑化が行われた距離画像情報に含まれる手領域候補１４について、基準点１５を設定する。図４に示すように、例えば、特定部１２０は、手領域候補１４の重心位置を、基準点１５として設定する。
【００３１】
特定部１２０は、手領域候補１４の輪郭上の全点について、下記の第１条件および第２条件を満たす点を算出し、指先候補点と指根本候補点とを特定する。ここでは、図５に示すように、隣り合う輪郭上の点１６Ａ，点１６Ｂ，点１６Ｃを用いて説明する。基準点１５と、点１６Ａとの距離をＤａとする。基準点１５と、点１６Ｂとの距離をＤｂとする。基準点１５と、点１６Ｃとの距離をＤｃとする。
【００３２】
特定部１２０は、下記の第１条件を満たす場合に、点１６Ｂを、指先候補点として特定する。
【００３３】
第１条件：Ｄａ＜Ｄｂ、Ｄｂ＞Ｄｃ
【００３４】
特定部１２０は、第２条件を満たす場合に、点１６Ｂを、指根本候補点として特定する。
【００３５】
第２条件：Ｄａ＞Ｄｂ、Ｄｂ＜Ｄｃ
【００３６】
特定部１２０は、例えば、図４の手領域候補１４の輪郭上の全点について、上記処理を繰り返し実行することで、指先候補点１７ａ，１７ｂ，１７ｃ，１７ｄ，１７ｅ，１７ｆ，１７ｇを特定する。また、特定部１２０は、指根本候補点１８ａ，１８ｂ，１８ｃ，１８ｄ，１８ｅを特定する。
【００３７】
特定部１２０は、各指先候補点１７ａ〜１７ｇの位置を比較し、各指先候補点間の距離が閾値未満となる指先候補点同士をマージする。また、特定部１２０は、各指根本候補点１８ａ〜１８ｅの位置を比較し、各指根本候補点間の距離が閾値未満となる指根本候補点同士をマージする。
【００３８】
例えば、図４に示す例では、指先候補点１７ｅと指先候補点１７ｆとの距離が閾値未満であるため、特定部１２０は、指先候補点１７ｅと指先候補点１７ｆとマージする。例えば、特定部１２０は、指先候補点１７ｅを残し、指先候補点１７ｆを削除することでマージする。なお、特定部１２０は、指先候補点１７ｅの距離と、指先候補点１７ｆの距離との平均距離を求め、求めた平均距離を、新たな指先候補点の距離とし、指先候補点１７ｅ，１７ｆを削除することで、マージしても良い。
【００３９】
ここで、上記処理では、端の指における指根本候補点の検出が不安定となり、適切に指根本候補点を検出できない場合がある。このため、特定部１２０は、下記に示す処理を更に実行することで、上記処理では検出していない指根本候補点を検出してもよい。
【００４０】
図６は、指根本候補点を検出するその他の処理を説明するための図である。特定部１２０は、複数の指先候補点を通る直線と、手領域候補１４の輪郭の交点とを求め、求めた交点を、指根本候補点として検出する。例えば、図６に示すように、特定部１２０は、指根本候補点１８ｄ，１８ｅを通る直線１９と、手領域候補１４の輪郭の交点１８ｆを、指根本候補点として検出する。
【００４１】
なお、特定部１２０は、後述する処理により手領域を特定した後に、手領域に含まれる指根本点を通る直線と、手領域候補１４の輪郭の交点を、指根本点として検出しても良い。以下の説明では、指根本点を通る直線と、手領域候補１４の輪郭の交点により特定した指根本点を、仮想指根本点と表記する。
【００４２】
特定部１２０が指領域を特定する処理について説明する。図７は、指領域を特定する処理を説明するための図である。特定部１２０は、下記の第３条件および第４条件を満たす指先候補点と２つの指根本候補点とからなる領域を指領域として特定する。
【００４３】
一例として、図７に示すように、指先候補点１７Ａと、二つの指根本候補点１８Ｂ，１８Ｃとを用いて説明する。ここでは、指先候補点１７Ａと、二つの指根本候補点１８Ｂ，１８Ｃとからなる三角形を三角形ＡＢＣと表記する。特定部１２０は、三角形ＡＢＣの形状を判定し、第３条件を満たし、かつ、第４条件を満たす場合に、三角形ＡＢＣの領域を指領域として判定する。
【００４４】
第３条件：三角形ＡＢＣの点１７Ａの角度が鋭角である。
第４条件：点１７Ａおよび点１８Ｂを結ぶ辺ＡＢの長さと、点１７Ａおよび点１８Ｃを結ぶ辺ＡＣとの長さの差分が閾値未満である。
【００４５】
図７に示す三角形ＡＢＣが、第３条件および第４条件を満たす場合には、特定部１２０は、指先候補点１７Ａと、二つの指根本候補点１８Ｂ，１８Ｃとに囲まれる領域を、指領域として特定する。特定部１２０は、他の指先候補点、他の二つの指根本候補点についても、上記処理を繰り返し実行することで、他の指領域を特定する。以下の説明では、指領域に含まれる指先候補点を指先点と表記し、指領域に含まれる指根本候補点を指根本点と表記する。
【００４６】
また、特定部１２０は、指先候補点と、１つの指根本候補点と、１つの仮想指根本点とから構成される三角形を特定し、特定した三角形が、第３条件および第４条件を満たす場合には、該当する三角形を指領域として特定する。
【００４７】
特定部１２０が、手領域候補が手領域か否かを判定する処理について説明する。特定部１２０は、手領域候補から検出した指領域の数を基にして、手領域候補が手領域であるか否かを判定する。例えば、特定部１２０は、手領域候補に含まれる指領域の数が、５である場合に、手領域候補が手領域であると判定する。
【００４８】
図８は、手領域を特定する処理を説明するための図である。例えば、図８に示す例では、手領域候補１４から、指領域２０ａ，２０ｂ，２０ｃ，２０ｄ，２０ｅが特定されたものとする。特定部１２０は、指領域２０ａ〜２０ｅの数が「５」であるため、手領域候補１４が、手領域であると判定する。
【００４９】
特定部１２０は、手領域の情報を、ジェスチャ認識部１３０に出力する。手領域の情報には、手領域に含まれる各指領域の指先点の距離および指根本点の距離が含まれる。指先点の距離は、距離画像センサ５０から指先点までの距離を示す。指根本点の距離は、距離画像センサ５０から指根本点までの距離を示す。なお、特定部１２０は、指先点の距離および指根本点の距離を、３次元座標に変換してもよい。
【００５０】
また、特定部１２０は、５本の指領域を検出したタイミングで、利用者が手の指を開いたと判定する。特定部１２０は、利用者が手の指を開いた旨の情報を、表示制御部１４０に通知する。
【００５１】
ジェスチャ認識部１３０は、手領域に含まれる指先点の距離と、指根本点の距離との差分値を基にして、ジェスチャの種別を認識する処理部である。例えば、ジェスチャ認識部１３０は、指先点の距離から指根本点の距離を引いた値が「正の値」である場合には、手領域が前方に傾いていると認識する。これに対して、ジェスチャ認識部１３０は、指先点の距離から指根本点の距離を引いた値が「負の値」である場合には、手領域が後方に傾いていると認識する。
【００５２】
なお、ジェスチャ認識部１３０は、指領域に含まれる指先点および指根本点の差分値を、各指領域からそれぞれ算出し、算出した複数の差分値の平均値を、上記の差分値としても良い。または、ジェスチャ認識部１３０は、複数の指領域のうち、いずれか一つの指領域を選択し、選択した指領域に含まれる指先点および指根本点に基づき、上記差分値を算出しても良い。
【００５３】
ジェスチャ認識部１３０は、ジェスチャの認識結果の情報を、表示制御部１４０に出力する。例えば、ジェスチャの認識結果の情報には、手領域が前方に傾いているか、手領域が後方に傾いているかの情報と、手領域に含まれる指先点の距離と、指根本点の距離との差分値の絶対値の情報が含まれる。
【００５４】
表示制御部１４０は、利用者の視点位置に応じたバーチャル空間の画像データを、表示装置６０に表示させる処理部である。例えば、表示制御部１４０は、視点位置とバーチャル空間上の画像データとを対応付けたバーチャル空間情報を基にして、バーチャル空間の画像データを、表示装置６０に表示させる。表示制御部１４０は、ジェスチャの認識結果の情報を基にして、表示装置６０に表示させるバーチャル空間上の利用者の視点位置を移動させる。例えば、手領域が前方に傾いている場合には、視点位置を前方に移動させ、手領域が後方に傾いている場合には、視点位置を後方に移動させる。
【００５５】
また、表示制御部１４０は、利用者の手の形状が所定の形状となった場合に、利用者の視点位置に応じたバーチャル空間の画像データと、利用者の手の画像とを重畳させた重畳画像を表示装置６０に表示させる。表示制御部１４０は、利用者の手の画像として、距離画像情報に含まれる利用者の手の画像を用いる。表示制御部１４０は、距離画像情報に含まれる利用者の手の画像を、特定部１２０が特定した手領域を基にして特定する。
【００５６】
ここで、所定の形状は、利用者が手の指を開いた状態の形状に対応する。表示制御部１４０は、特定部１２０から、利用者が手の指を開いた旨の情報を取得した場合に、利用者の手の形状が所定の形状となったと判定する。
【００５７】
更に、表示制御部１４０は、重畳画像を表示装置６０に表示させる場合に、バーチャル空間の画像データを透過させるように、利用者の手の画像に対して透過処理を行い、透明度を調整する。表示制御部１４０が実行する透過処理は、例えば、透過ＰＮＧ（Portable  Network  Graphics）等と同様の処理である。
【００５８】
表示制御部１４０は、利用者の手の指が開いている場合には、利用者の手の画像の透明度を透明度Ｔ１に調整する。一方、表示制御部１４０は、利用者の手の指が開いていない場合には、利用者の手の画像の透明度を透明度Ｔ２に設定する。ここで、透明度Ｔ１と透明度Ｔ２との透明度の大小関係を透明度Ｔ１＞透明度Ｔ２とする。透明度が大きいほど、手の画像は、より多くのバーチャル空間の画像データを透過させることを意味する。なお、上記のように、利用者の手が開いていない場合には、利用者の手の画像は、バーチャル空間に重畳されない。
【００５９】
表示制御部１４０は、利用者の手の傾きに応じて、透明度を透明度Ｔ１から透明度Ｔ３の間で調整しても良い。ここで、透明度Ｔ１と透明度Ｔ３との透明度の大小関係を透明度Ｔ３＞透明度Ｔ１とする。表示制御部１４０は、利用者の手の傾きが大きくなるにつれて、透明度を透明度Ｔ３に近づけ、手の傾きが小さくなるにつれて、透明度を透明度Ｔ１に近づける。例えば、表示制御部１４０は、手領域に含まれる指先点の距離と、指根本点の距離との差分値の絶対値を、手の傾きとして利用する。すなわち、利用者が手の傾きを大きくするにつれて、重畳される手の画像はより透明となる。
【００６０】
ところで、表示制御部１４０は、利用者の手の形状が所定の形状の場合に、視点移動ベクトルを算出し、視点移動ベクトルに従ってバーチャル空間上の利用者の視点位置を移動させる。以下において、視点移動ベクトルを算出する処理の一例について説明する。視点移動ベクトルを算出する処理は、視点移動ベクトルの向きを決定する処理、視点移動ベクトルの移動量を決定する処理が含まれる。
【００６１】
表示制御部１４０が視点移動ベクトルの向きを決定する処理について説明する。表示制御部１４０は、ジェスチャの認識結果の情報に、手領域が前方に傾いている旨の情報が含まれている場合には、視点移動ベクトルの方向が正方向であると判定する。既に説明したように、指先点の距離から指根本点の距離を引いた値が「正の値」である場合には、手領域が前方に傾いていることになる。
【００６２】
表示制御部１４０は、ジェスチャの認識結果の情報に、手領域が後方に傾いている旨の情報が含まれている場合には、視点移動ベクトルの方向が負方向であると判定する。既に説明したように、指先点の距離から指根本点の距離を引いた値が「負の値」である場合には、手領域が後方に傾いていることになる。
【００６３】
表示制御部１４０が視点移動ベクトルの移動量を決定する処理の一例について説明する。表示制御部１４０は、手領域に含まれる指先点の距離と、指根本点の距離との差分値の絶対値Ｋを基にして、視点移動ベクトルの移動量を決定する。例えば、表示制御部１４０は、移動量Ｘを、式（２）に基づき算出する。式（２）に含まれるαは、利用者に予め設定される係数である。
【００６４】
移動量Ｘ＝α×Ｋ・・・（２）
【００６５】
表示制御部１４０は、上記処理を行うことで、視点移動ベクトルを算出する。表示制御部１４０は、視点移動ベクトルに従って視点位置を移動し、移動後の視点位置に応じたバーチャル空間上の画像データを特定する。表示制御部１４０は、バーチャル空間上の画像データと、透過処理を行った手の画像とを重畳した重畳画像を生成し、重畳画像を表示装置６０に表示させる。
【００６６】
次に、本実施例に係る画像処理装置１００の処理手順の一例について説明する。図９は、本実施例に係る画像処理装置の処理手順を示すフローチャートである。図９に示す処理は、画像処理装置１００が、距離画像センサ５０から距離画像情報を取得する度に実行される。図９に示すように、画像処理装置１００の特定部１２０は、手領域を検出する（ステップＳ１０１）。
【００６７】
特定部１２０は、手形状を検出する（ステップＳ１０２）。画像処理装置１００のジェスチャ認識部１３０は、手の傾きを検出する（ステップＳ１０３）。画像処理装置１００の表示制御部１４０は、視点移動ベクトルを決定する（ステップＳ１０４）。
【００６８】
表示制御部１４０は、視点移動ベクトルに基づいて、視点移動後の画像データを生成する（ステップＳ１０５）。表示制御部１４０は、手領域の透明度を決定する（ステップＳ１０６）。表示制御部１４０は、画像データに手領域の画像データを重畳し、重畳画像を生成する（ステップＳ１０７）。表示制御部１４０は、重畳画像を、表示装置６０に表示させる（ステップＳ１０８）。
【００６９】
次に、図９のステップＳ１０４に示した視点移動ベクトルを決定する処理の一例について説明する。図１０は、視点移動ベクトルを決定する処理手順を示すフローチャートである。図１０に示すように、画像処理装置１００の表示制御部１４０は、手形状が所定の形状であるか否かを判定する（ステップＳ２０１）。表示制御部１４０は、手形状が所定の形状でない場合には（ステップＳ２０１，Ｎｏ）、視点移動ベクトルを０に設定し（ステップＳ２０２）、視点移動ベクトルを決定する処理を終了する。
【００７０】
一方、表示制御部１４０は、手形状が所定の形状である場合には（ステップＳ２０１，Ｙｅｓ）、視点移動ベクトルの向きを決定する（ステップＳ２０３）。表示制御部１４０は、視点移動ベクトルの移動量を決定する（ステップＳ２０４）。表示制御部１４０は、視点位置を移動させ（ステップＳ２０５）、視点移動ベクトルを決定する処理を終了する。
【００７１】
次に、図９のステップＳ１０６に示した手領域の透明度を決定する処理の一例について説明する。図１１は、手領域の透明度を決定する処理手順を示すフローチャートである。図１１に示すように、画像処理装置１００の表示制御部１４０は、手形状が所定の形状であるか否かを判定する（ステップＳ３０１）。表示制御部１４０は、手形状が所定の形状でない場合には（ステップＳ３０１，Ｎｏ）、透明度をＴ２に設定し（ステップＳ３０３）、透明度を決定する処理を終了する。
【００７２】
一方、表示制御部１４０は、手形状が所定の形状である場合には（ステップＳ３０１，Ｙｅｓ）、透明度をＴ１に設定し（ステップＳ３０２）、透明度を決定する処理を終了する。
【００７３】
なお、図９では説明を省略したが、表示制御部１４０は、利用者の手の傾きに応じて、透明度を透明度Ｔ１から透明度Ｔ３の間で調整しても良い。
【００７４】
次に、本実施例に係る画像処理装置１００の効果について説明する。画像処理装置１００は、利用者の手の形状が所定の形状となった場合に、利用者の視点位置に応じたバーチャル空間上の画像と、透過処理した手領域の画像とを重畳させた重畳画像を、表示装置６０に表示させる。このため、利用者は、視認可能な領域を邪魔されず、ジェスチャによる直感的な操作を行うことができる。
【００７５】
画像処理装置１００は、利用者の手の傾きを更に特定し、手の傾きに応じて、視点位置を移動させつつ、利用者の手の画像の透明度を調整する。例えば、利用者の手の傾きが大きくなるほど、透明度を大きくする調整を行うことで、視点位置の移動量が大きい場合に、視認可能な領域をより邪魔しないで、視点移動を行うことができる。
【００７６】
画像処理装置１００は、利用者の手の傾きに応じて、視点位置を移動させる移動量を調整する。このため、利用者は、手の傾き具合を調整する操作を行うだけで、移動量を調整することができる。
【００７７】
ところで、上述した画像処理装置１００の処理は一例であり、画像処理装置１００は、その他の処理を行ってもよい。以下では、画像処理装置１００のその他の処理（１）、（２）について説明する。
【００７８】
画像処理装置１００のその他の処理（１）について説明する。発明者の実験の結果、利用者は、視点位置を手前に戻そうとする場合に、手を距離画像センサ５０に近づけすぎてしまい、画像処理装置１００は、利用者の手の形状を認識できない場合がある。このような状況でも、利用者の意図通りに、視点位置を移動させるべく、画像処理装置１００の表示制御部１４０は、距離画像センサ５０から所定距離以内に物体が存在する場合には、予め設定した視点移動ベクトルに基づいて、視点位置を移動させる。例えば、予め設定した視点移動ベクトルの移動方向を「後方」とし、移動量を「移動量Ｘａ」とする。移動量Ｘａは、利用者に予め設定される。
【００７９】
図１２は、画像処理装置のその他の処理（１）を示すフローチャートである。図１２に示す処理は、画像処理装置１００が、距離画像センサ５０から距離画像情報を取得する度に実行される。図１２に示すように、画像処理装置１００の特定部１２０は、手領域を検出する（ステップＳ４０１）。
【００８０】
特定部１２０は、手形状を検出する（ステップＳ４０２）。特定部１２０は、手形状の検出に成功したか否かを判定する（ステップＳ４０３）。特定部１２０が手形状の検出に成功した場合には（ステップＳ４０３，Ｙｅｓ）、画像処理装置１００の表示制御部１４０は、視点移動ベクトルを決定し（ステップＳ４０４）、ステップＳ４０８に移行する。
【００８１】
特定部１２０が手形状の検出に成功しなかった場合には（ステップＳ４０３，Ｎｏ）、物体と距離画像センサ５０との距離が閾値未満であるか否かを判定する（ステップＳ４０５）。特定部１２０により物体と距離画像センサ５０との距離が閾値未満でないと判定された場合には（ステップＳ４０５，Ｎｏ）、表示制御部１４０は、視点位置の移動を停止する（ステップＳ４０６）。
【００８２】
一方、特定部１２０により物体と距離画像センサ５０との距離が閾値未満であると判定された場合には（ステップＳ４０５，Ｙｅｓ）、ステップＳ４０７に移行する。表示制御部１４０は、手形状が所定の形状であると仮定し、予め設定された視点移動ベクトルを読み出す（ステップＳ４０７）。
【００８３】
表示制御部１４０は、視点移動ベクトルに基づいて、視点移動後の画像データを生成する（ステップＳ４０８）。表示制御部１４０は、手領域の透明度を決定する（ステップＳ４０９）。表示制御部１４０は、画像データに手領域の画像データを重畳し、重畳画像を生成する（ステップＳ４１０）。表示制御部１４０は、重畳画像を、表示装置６０に表示させる（ステップＳ４１１）。
【００８４】
上記のように、画像処理装置１００の表示制御部１４０は、距離画像センサ５０から物体までの距離が閾値未満である場合には、利用者の手の形状が所定の形状であると仮定し、予め設定された視点移動ベクトルに基づいて、視点位置を移動させる。このため、利用者の手が距離画像センサ５０に近づきすぎても、利用者の意図通りに、視点位置を後方に移動させることができる。
【００８５】
画像処理装置１００のその他の処理（２）について説明する。発明者の実験の結果、利用者は、ジェスチャ操作を行っている途中で、利用者の手が距離画像センサ５０の画角から外れることがあり、利用者の意図に反して、視点位置の移動が停止する場合がある。利用者の手が一時的に画角から外れた場合でも、スムーズな視点移動を継続させるべく、画像処理装置１００の表示制御部１４０は、下記に示す処理を実行する。
【００８６】
表示制御部１４０は、手の一部が距離画像センサ５０の画角からはみ出ている場合には、直前に決定した視点移動ベクトルを再度用いて、視点位置を移動させる。ここで、表示制御部１４０は、手の一部が距離画像センサ５０の画角からはみ出ているか否かをどのように判定してもよい。例えば、表示制御部１４０は、特定部１２０から手領域候補に含まれる指領域の数を取得し、指領域の数が所定数以上である場合に、手の一部が距離画像センサ５０の画角からはみ出ていると判定する。
【００８７】
なお、表示制御部１４０は、手形状の検出に成功し、視点移動ベクトルを決定する度に、決定した視点移動ベクトルの情報を、図示しない記憶部に格納する。
【００８８】
図１３は、画像処理装置のその他の処理（２）を示すフローチャートである。図１３に示す処理は、画像処理装置１００が、距離画像センサ５０から距離画像情報を取得する度に実行される。図１３に示すように、画像処理装置１００の特定部１２０は、手領域を検出する（ステップＳ５０１）。
【００８９】
特定部１２０は、手形状を検出する（ステップＳ５０２）。特定部１２０は、手形状の検出に成功したか否かを判定する（ステップＳ５０３）。特定部１２０が手形状の検出に成功した場合には（ステップＳ５０３，Ｙｅｓ）、画像処理装置１００の表示制御部１４０は、視点移動ベクトルを決定し、視点移動ベクトルを記憶部に格納し（ステップＳ５０４）、ステップＳ５０８に移行する。
【００９０】
一方、特定部１２０による手形状の検出に成功しなかった場合には（ステップＳ５０３，Ｎｏ）、手の一部が距離画像センサ５０の画角からはみ出ているか否かを判定する（ステップＳ５０５）。表示制御部１４０は、手の一部が距離画像センサ５０の画角からはみ出ていない場合には（ステップＳ５０５，Ｎｏ）、視点位置の移動を停止する（ステップＳ５０６）。
【００９１】
一方、表示制御部１４０は、手の一部が距離画像センサ５０の画角からはみ出ている場合には（ステップＳ５０５，Ｙｅｓ）、直前の視点移動ベクトルを記憶部から読み出す（ステップＳ５０７）。
【００９２】
表示制御部１４０は、視点移動ベクトルに基づいて、視点移動後の画像データを生成する（ステップＳ５０８）。表示制御部１４０は、手領域の透明度を決定する（ステップＳ５０９）。表示制御部１４０は、画像データに手領域の画像データを重畳し、重畳画像を生成する（ステップＳ５１０）。表示制御部１４０は、重畳画像を、表示装置６０に表示させる（ステップＳ５１１）。
【００９３】
上記のように、画像処理装置１００の表示制御部１４０は、手の一部が距離画像センサ５０の画角からはみ出ている場合には、直前に決定した視点移動ベクトルを再度用いて、視点位置を移動させる。これによって、利用者の手が一時的に画角から外れた場合でも、スムーズな視点移動を継続することができる。
【００９４】
次に、上記実施例に示した画像処理装置１００と同様の機能を実現する画像処理プログラムを実行するコンピュータの一例について説明する。図１４は、画像処理プログラムを実行するコンピュータの一例を示す図である。
【００９５】
図１４に示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータの入力を受け付ける入力装置３０２と、ディスプレイ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る読み取り装置３０４と、ネットワークを介して他のコンピュータとの間でデータの授受を行うインターフェース装置３０５と、距離画像センサ３０６とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０７と、ハードディスク装置３０８とを有する。そして、各装置３０１〜３０８は、バス３０９に接続される。
【００９６】
ハードディスク装置３０８は、認識プログラム３０８ａ、表示制御プログラム３０８ｂを有する。ＣＰＵ３０１は、認識プログラム３０８ａ、表示制御プログラム３０８ｂを読み出してＲＡＭ３０７に展開する。
【００９７】
認識プログラム３０８ａは、認識プロセス３０７ａとして機能する。表示制御プログラム３０８ｂは、表示制御プロセス３０７ｂとして機能する。
【００９８】
認識プロセス３０７ａの処理は、取得部１１０、特定部１２０、ジェスチャ認識部１３０の処理に対応する。表示制御プロセス３０７ｂの処理は、表示制御部１４０の処理に対応する。
【００９９】
なお、認識プログラム３０８ａ、表示制御プログラム３０８ｂについては、必ずしも最初からハードディスク装置３０８に記憶させておかなくても良い。例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させておく。そして、コンピュータ３００が各プログラム３０８ａ，３０８ｂを読み出して実行するようにしてもよい。
【０１００】
以上の各実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１０１】
（付記１）利用者側から利用者の視線方向に位置する物体までの距離情報を取得する距離センサと、
前記距離センサから利用者の視線方向に存在する物体までの距離情報を距離画像として取得し、取得した前記距離画像が表す物体が前記利用者の手の形状か認識すると共に、認識結果が手の形状である場合に、更に手の形状が所定の形状に該当するか認識する認識部と、
前記認識部で認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる表示制御部と
を有することを特徴とする画像処理装置。
【０１０２】
（付記２）前記認識部は、前記利用者の手の傾きを更に特定し、前記表示制御部は、前記手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする付記１に記載の画像処理装置。
【０１０３】
（付記３）前記表示制御部は、前記利用者の手の傾きに応じて、前記視点位置を移動させる移動量を調整することを特徴とする付記２に記載の画像処理装置。
【０１０４】
（付記４）前記表示制御部は、前記距離センサから前記物体までの距離が閾値未満である場合には、前記利用者の手の形状が所定の形状であると仮定し、予め設定された移動情報に基づいて、前記視点位置を移動させることを特徴とする付記１に記載の画像処理装置。
【０１０５】
（付記５）前記表示制御部は、前記手の形状の一部が認識された場合に、直前に認識された手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする付記２、３または４に記載の画像処理装置。
【０１０６】
（付記６）コンピュータが実行する画像処理方法であって、
利用者側から利用者の視線方向に位置する物体までの距離情報を距離画像として取得し、
取得した前記距離画像を基にして、取得された物体が前記利用者の手の形状か、また、手の形状である場合に、更に手の形状が所定の形状に該当するかを認識し、
認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる
処理を実行することを特徴とする画像処理方法。
【０１０７】
（付記７）前記コンピュータは、前記利用者の手の傾きを更に特定し、前記手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする付記６に記載の画像処理方法。
【０１０８】
（付記８）前記コンピュータは、前記利用者の手の傾きに応じて、前記視点位置を移動させる移動量を調整する処理を実行することを特徴とする付記７に記載の画像処理方法。
【０１０９】
（付記９）前記コンピュータは、前記距離センサから前記物体までの距離が閾値未満である場合には、前記利用者の手の形状が所定の形状であると仮定し、予め設定された移動情報に基づいて、前記視点位置を移動させることを特徴とする付記６に記載の画像処理方法。
【０１１０】
（付記１０）前記コンピュータは、前記手の形状の一部が認識された場合に、直前に認識された手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整することを特徴とする付記７、８または９に記載の画像処理方法。
【０１１１】
（付記１１）コンピュータに、
利用者側から利用者の視線方向に位置する物体までの距離情報を距離画像として取得し、
取得した前記距離画像を基にして、取得された物体が前記利用者の手の形状か、また、手の形状である場合に、更に手の形状が所定の形状に該当するかを認識し、
認識した物体が利用者の手であり、かつ所定の形状であった場合に、前記利用者の視点位置に応じた画像表示に加え、前記画像を透過させる前記利用者の手の画像を重畳させた重畳画像を表示装置に表示させる
処理を実行させることを特徴とする画像処理プログラム。
【０１１２】
（付記１２）前記コンピュータに、前記利用者の手の傾きを更に特定し、前記手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整する処理を実行させることを特徴とする付記１１に記載の画像処理プログラム。
【０１１３】
（付記１３）前記コンピュータに、前記利用者の手の傾きに応じて、前記視点位置を移動させる移動量を調整する処理を実行させることを特徴とする付記１２に記載の画像処理プログラム。
【０１１４】
（付記１４）前記コンピュータに、前記距離センサから前記物体までの距離が閾値未満である場合には、前記利用者の手の形状が所定の形状であると仮定し、予め設定された移動情報に基づいて、前記視点位置を移動させる処理を実行させることを特徴とする付記１１に記載の画像処理プログラム。
【０１１５】
（付記１５）前記コンピュータに、前記手の形状の一部が認識された場合に、直前に認識された手の傾きに応じて、前記視点位置を移動させつつ、前記利用者の手の画像の透明度を調整する処理を実行させることを特徴とする付記１２、１３または１４に記載の画像処理プログラム。
【符号の説明】
【０１１６】
５０  距離画像センサ
６０  表示装置
１００  画像処理装置
１１０  取得部
１２０  特定部
１３０  ジェスチャ認識部
１４０  表示制御部
【図１】
0006597235.tif 000002
【図２】
0006597235.tif 000003
【図３】
0006597235.tif 000004
【図４】
0006597235.tif 000005
【図５】
0006597235.tif 000006
【図６】
0006597235.tif 000007
【図７】
0006597235.tif 000008
【図８】
0006597235.tif 000009
【図９】
0006597235.tif 000010
【図１０】
0006597235.tif 000011
【図１１】
0006597235.tif 000012
【図１２】
0006597235.tif 000013
【図１３】
0006597235.tif 000014
【図１４】
0006597235.tif 000015
【図１５】
0006597235.tif 000016
【図１６】
0006597235.tif 000017