説明

コマンド発行装置、方法及びプログラム

【課題】ユーザ操作を片手で完結する。
【解決手段】実施形態のコマンド発行装置は、取得部と、投影領域認識部と、投影部と、操作領域認識部と、選択判定部と、発行部と、を備える。取得部は、操作者の手を撮像した動画像を取得する。投影領域認識部は、前記動画像から、投影に用いられる投影指の投影領域を認識する。投影部は、前記投影領域にGUI(Graphical User Interface)の映像を投影する。操作領域認識部は、前記動画像から、操作に用いられる操作指の操作領域を認識する。選択判定部は、前記投影領域と前記操作領域との重なり度合いを評価して、前記GUIを選択したか否かを判定する。発行部は、前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明の実施形態は、コマンド発行装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来から、映像投影技術、撮像技術、及び物体認識技術などを組み合わせてユーザ操作を実現するユーザインタフェースが知られている。このようなユーザインタフェースとして、例えば、操作者の一方の手の掌にGUI(Graphical User Interface)の映像を投影するとともに当該掌の動画像を撮像し、撮像された動画像から、掌に投影されたGUIを操作者が他方の手の指でタッチしていることを認識することでユーザ操作を実現するものがある。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】山本豪志朗,佐藤宏介,「PALMbit:掌への光投影を利用した身体インタフェース」,映像情報メディア学会誌,Vol.61,No.6,pp.797−804,2007.
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述したような技術では、操作者の両手を用いた操作が前提となっている。
【課題を解決するための手段】
【0005】
実施形態のコマンド発行装置は、取得部と、投影領域認識部と、投影部と、操作領域認識部と、選択判定部と、発行部と、を備える。取得部は、操作者の手を撮像した動画像を取得する。投影領域認識部は、前記動画像から、投影に用いられる投影指の投影領域を認識する。投影部は、前記投影領域にGUI(Graphical User Interface)の映像を投影する。操作領域認識部は、前記動画像から、操作に用いられる操作指の操作領域を認識する。選択判定部は、前記投影領域と前記操作領域との重なり度合いを評価して、前記GUIを選択したか否かを判定する。発行部は、前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する。
【図面の簡単な説明】
【0006】
【図1】第1実施形態のコマンド発行装置の利用形態例を示す外観図。
【図2】第1実施形態のコマンド発行装置例を示す構成図。
【図3】第1実施形態の取得部により取得された動画像の例を示す図。
【図4】第1実施形態の動画像から投影指を抽出した画像例を示す図。
【図5】第1実施形態の動画像から操作指を抽出した画像例を示す図。
【図6A】第1実施形態のGUIの情報例を示す図。
【図6B】第1実施形態のGUIの情報例を示す図。
【図7A】第1実施形態のGUIの情報例を示す図。
【図7B】第1実施形態のGUIの情報例を示す図。
【図7C】第1実施形態のGUIの情報例を示す図。
【図8A】第1実施形態のGUIの情報例を示す図。
【図8B】第1実施形態のGUIの情報例を示す図。
【図9】第1実施形態の投影部の投影手法例を示す説明図。
【図10】第1実施形態の操作領域の認識手法例の説明図。
【図11】第1実施形態の処理例を示すフローチャート。
【図12】第1実施形態の取得部により取得された動画像の例を示す図。
【図13】第1実施形態の投影指の事前特徴量の抽出手法例を示す説明図。
【図14】第1実施形態の投影領域認識処理例を示すフローチャート。
【図15】第1実施形態の投影領域認識手法例の説明図。
【図16】第1実施形態の投影領域認識手法例の説明図。
【図17】第1実施形態の投影領域認識手法例の説明図。
【図18】第1実施形態の投影領域認識手法例の説明図。
【図19】第1実施形態の投影処理例を示すフローチャート。
【図20】第1実施形態の選択判定処理例を示すフローチャート。
【図21】変形例1のコマンド発行装置例を示す構成図。
【図22】変形例2のコマンド発行装置例を示す構成図。
【図23】変形例2の分割部の分割手法例を示す説明図。
【図24】第2実施形態のコマンド発行装置例を示す構成図。
【図25】第2実施形態の掌領域認識部の掌領域認識手法例を示す説明図。
【図26A】第2実施形態のGUIの情報例を示す図。
【図26B】第2実施形態のGUIの情報例を示す図。
【図26C】第2実施形態のGUIの情報例を示す図。
【図26D】第2実施形態のGUIの情報例を示す図。
【図27A】第2実施形態のGUIの切替例を示す図。
【図27B】第2実施形態のGUIの切替例を示す図。
【図28】変形例5のコマンド発行装置例を示す構成図。
【図29A】変形例5のGUIの切替例を示す図。
【図29B】変形例5のGUIの切替例を示す図。
【図30】変形例6のコマンド発行装置例を示す構成図。
【図31A】変形例6のGUIの切替例を示す図。
【図31B】変形例6のGUIの切替例を示す図。
【図32】変形例7のコマンド発行装置例を示す構成図。
【図33A】変形例7のGUIの切替例を示す図。
【図33B】変形例7のGUIの切替例を示す図。
【図34】第3実施形態のコマンド発行装置例を示す構成図。
【図35】第3実施形態のフィードバック映像の投影例を示す図。
【図36】第3実施形態のフィードバック映像の投影例を示す図。
【図37】第3実施形態のフィードバック映像の投影例を示す図。
【図38】第3実施形態のフィードバック映像の投影手法の説明図。
【図39】第4実施形態のコマンド発行装置例を示す構成図。
【図40】第5実施形態のコマンド発行装置の利用形態例を示す外観図。
【図41】第5実施形態の取得部により取得された動画像と提示手法の例を示す図。
【図42】第5実施形態のコマンド発行装置例を示す構成図。
【図43】第5実施形態の提示手法の説明図。
【発明を実施するための形態】
【0007】
(第1実施形態)
図1は、第1実施形態のコマンド発行装置1の利用形態の一例を示す外観図である。本実施形態では、図1に示すように、コマンド発行装置1が取り付けられたストラップなどを操作者21が首にかけることにより、コマンド発行装置1を操作者21の胸の前に位置させるペンダント型での利用形態を想定している。コマンド発行装置1が備える取得部101は、操作者21の手22の動画像を撮像可能に配置されているととともに、コマンド発行装置1が備える投影部108は、手22にGUI(Graphical User Interface)の映像を投影可能に配置されている。そして、取得部101により手22の動画像が撮像されるとともに、投影部108により手22にGUIの映像が投影される。
【0008】
ここで、本実施形態では、手22の親指23が操作に用いられる操作指であり、手22の人差指24−1、中指24−2、薬指24−3、及び小指24−4がGUIの映像の投影に用いられる投影指であるものとするが、これに限定されるものではない。なお、図1に示す例では、人差指24−1にGUIの映像が投影されている。そして、操作者21が、人差指24−1に投影されているGUIの映像を視認し、親指23を人差指24−1のGUIの映像上に重ねることで、コマンド発行装置1は、GUIに応じたコマンドを発行する。これにより、GUIが示すユーザ操作が実行される。なお、以下では、人差指24−1、中指24−2、薬指24−3、及び小指24−4を各々区別する必要がない場合は、親指以外の指24と称する場合がある。
【0009】
図2は、第1実施形態のコマンド発行装置1の一例を示す構成図である。図2に示すように、コマンド発行装置1は、取得部101と、抽出部102と、投影領域認識部103と、GUI情報記憶部104と、管理部105と、位置対応テーブル記憶部106と、投影映像生成部107と、投影部108と、操作領域認識部109と、選択判定部110と、通信部111とを、備える。
【0010】
取得部101は、操作者の手を撮像した動画像を取得する。取得部101は、動画像を撮像できるデバイスであればよく、本実施形態ではビデオカメラにより実現されるものとするが、これに限定されるものではない。本実施形態では、取得部101は、毎秒60フレームの動画像をカラー撮影でき、手22を十分撮影可能な撮影画角を有し、焦点距離を自動的に合わせられる機構を有し、レンズが原因で撮影像に発生したひずみを補正するひずみ補正機能を有するものとする。
【0011】
ここで、本実施形態では、操作者21の親指23の先端部分、及び操作者21の親指以外の指24の全体部分(根本から先端までの部分)に、カラーマーカが装着されているものとする。カラーマーカは、単色であり、手の表面と区別可能な色であり、鏡面反射をしない拡散反射素材でできているものとする。また、各指のカラーマーカの色は、それぞれ異なるものとする。
【0012】
図3は、取得部101により取得された動画像の一例を示す図である。図3は、親指23の先端部分にカラーマーカ30が装着され、人差指24−1、中指24−2、薬指24−3、小指24−4に、それぞれカラーマーカ31−1、カラーマーカ31−2、カラーマーカ31−3、カラーマーカ31−4が装着された操作者21の手22を、撮像した動画像となっている。
【0013】
抽出部102は、取得部101により取得された動画像に画像処理を施し、投影指と操作指とを抽出する。具体的には、抽出部102は、取得部101により取得された動画像にカラーフィルタを施し、特定の色相の範囲内の色の画素のみを非ゼロとし、それ以外の色の画素を0とすることで、投影指と操作指とを抽出する。なお、操作者21の各指に装着されたカラーマーカの色は既知であり、抽出部102は、取得部101により取得された動画像におけるカラーマーカの輝度の分布を予め保持しているものとする。
【0014】
図4は、取得部101により取得された動画像から投影指である親指以外の指24(カラーマーカ31−1〜31−4)を抽出した画像(ビットマップ画像)の一例を示す図である。図5は、取得部101により取得された動画像から操作指である親指23(カラーマーカ30)を抽出した画像(ビットマップ画像)の一例を示す図である。
【0015】
このように本実施形態では、操作者21の各指にカラーマーカを装着することで、操作指と投影指とを抽出する手法について説明しているが、操作指と投影指との抽出手法は、これに限定されるものではない。例えば、レーザー測距方式を用いるレンジファインダーなどによりコマンド発行装置1から操作者21の手22までの距離分布を測定し、指の長さや太さなど既知の手の形状情報の当てはめを行うことで、操作指と投影指とを抽出するようにしてもよい。コマンド発行装置1から操作者21の手22までの距離分布を測定する場合には、複数のカメラを用いたステレオマッチングなどの手法を利用できる。また例えば、Haar−Like特徴にもとづく画像認識の検出器を用いて指の領域を検出し、操作指と投影指とを抽出するようにすれば、操作者21の各指にカラーマーカを装着する必要はない。
【0016】
投影領域認識部103は、取得部101により取得された動画像から、投影指の投影領域を認識する。具体的には、投影領域認識部103は、抽出部102により抽出された投影指の画像から、投影指の付け根から指先までの形状特徴量を抽出し、抽出した形状特徴量で示される領域を投影領域として認識する。なお、投影領域の認識手法の詳細については、後述する。
【0017】
GUI情報記憶部104は、投影指の投影領域に投影されるGUIの情報を記憶する。 図6A及び図6Bは、コマンド発行装置1が家庭内の機器を制御するコマンドを発行するユーザインタフェースである場合のGUIの情報の一例を示す図である。図7A〜図7Cは、コマンド発行装置1が音楽プレーヤーを制御するコマンドを発行するユーザインタフェースである場合のGUIの情報の一例を示す図である。
【0018】
GUIの情報は、指IDと、表示形式と、表示内容と、表示属性と、コマンドIDとを、対応付けたテーブルとなっている。“指ID”は、投影指を識別するインデックスであり、例えば、指IDが1の場合は人差指24−1を示し、指IDが2の場合は中指24−2を示し、指IDが3の場合は薬指24−3を示し、指IDが4の場合は小指24−4を示す。但し、図6B及び図7Cに示す例では、指IDが2〜4の場合の情報の記載を省略している。“表示形式”は、指IDが示す投影指へのGUIの表示形式を示し、図6A及び図6Bに示す例ではテキストとなっており、図7A及び図7Cに示す例ではビットマップ画像となっている。“表示内容”は、指IDが示す投影指へのGUIの表示内容を示し、図6A及び図6Bに示す例では表示されるテキストが設定されており、図7A及び図7Cに示す例では表示される画像ファイルが設定されている。なお、表示される画像ファイルは、図7Bに示すとおりである。“表示属性”は、指IDが示す投影指へのGUIの表示色を示す。但し、図7A及び図7Cに示す例では、GUIが画像であるため、表示属性は、設定されていない。“コマンドID”は、指IDが示す投影指へ投影されたGUIが選択された場合に発行されるコマンドを示す。
【0019】
本実施形態では、GUIの情報が、投影指とGUI要素とを一意に結びつけている例について説明したが、これに限定されるものではない。例えば、コマンド発行装置1が投影する内容や、コマンド発行装置1の制御対象機器によっては、GUI要素の数が投影指の数よりも少ない場合がある。また、GUI要素の数が投影指の数と同じであったとしても、指同士の隠蔽により、一部の投影指しか認識されない場合もある。このため、GUIの情報は、投影指とGUI要素とを一意に結びつけないようにしてもよい。
【0020】
図8A及び図8Bは、投影指とGUI要素とを一意に結びつけないGUIの情報の一例を示す図である。図8A及び図8Bに示すGUIの情報では、指IDに代えて優先順位が設定されている。ここでは、優先順位の数値が小さいほど優先順位が高いものとする。
【0021】
管理部105は、投影領域に投影されるGUIの管理や、GUIが選択されることにより発行するコマンドを管理する。管理部105は、発行部105Aを備える。なお、発行部105Aの詳細については、後述する。
【0022】
管理部105は、例えば、図6Aに示すGUIの情報である場合、人差指24−1の投影領域に「照明“ON”」というテキストを割り当てるとともに、テキストの表示色を水色、背景色を白色に設定する。なお、「照明“ON”」は、照明をONすることを示している。
【0023】
また管理部105は、例えば、図6Bに示すGUIの情報である場合、人差指24−1の投影領域に「照明“OFF”」というテキストを割り当てるとともに、テキストの表示色を黄色、背景色を白色に設定する。なお、「照明“OFF”」は、照明をOFFすることを示している。
【0024】
また管理部105は、例えば、図7Aに示すGUIの情報である場合、中指24−2の投影領域に「Play.jpg」が示すアイコン画像を割り当てる。なお、「Play.jpg」は、音声を再生することを示している。
【0025】
また管理部105は、例えば、図7Cに示すGUIの情報である場合、人差指24−2の投影領域に「Pause.jpg」が示すアイコン画像を割り当てる。なお、「Pause.jpg」は、音声を一時停止することを示している。
【0026】
また管理部105は、例えば、図8Aや図8Bに示すGUIの情報である場合、投影指についても別途優先順位を定める。例えば本実施形態のように、操作指を親指23、投影指を親指以外の指24としている場合には、親指以外の指24が親指23に近いほど、GUIを選択する際の親指23の曲げ量が小さく、選択操作を行いやすいという身体的特性がある。この場合、管理部105は、人差指24−1、中指24−2、薬指24−3、小指24−4の順番で優先順位を高くする。具体的には、管理部105は、事前に操作指のカラーマーカ30の中心位置と投影指それぞれの根元位置との距離を算出し、算出した距離が短いほど優先順位を高くする。なお、投影指それぞれの根元位置は、投影領域認識部103により算出され、操作指のカラーマーカ30の中心位置は、操作領域認識部109により算出される。そして、管理部105は、優先順位の高い投影指から順番に図8Aや図8Bに示す未割り当てのGUIのうち最も優先順位の高いGUIを割り当てていく。このようにすることで、選択操作が行いやすい投影指に、優先順位が高いGUIを割り当てることができる。
【0027】
位置対応テーブル記憶部106は、取得部101により取得される動画像の撮像面上の座標位置と投影部108の投影面上の座標位置とを対応付ける位置対応テーブルを記憶する。取得部101の撮像画角及び光軸と投影部108の投影画角及び光軸とが一致していない場合、取得部101の撮像範囲と投影部108の投影範囲とは一致しない。このため、位置対応テーブル記憶部106は、上記のように取得部101の撮像面と投影部108の投影面との位置の対応関係を保持する。
【0028】
本実施形態では、投影部108が投影面の2次元座標で表現される予め定めた位置にパターンを投影するととともに取得部101が当該パターンを撮像して、投影面上の位置と撮像面上の位置とを対応付けることにより、位置対応テーブルが得られる。
【0029】
本実施形態では、位置対応テーブルは、投影映像生成部107による投影映像の形状変換処理に用いられる。なお、投影映像生成部107が投影映像の形状変換処理に透視投影変換を用いる場合には、位置対応テーブルは、最低4つの対応関係を用意すればよく、各点についての撮像面上の位置と投影面上の位置とを保持する。これらの処理の具体的内容は、コンピュータビジョンの分野で公知の手法を用いることができ、例えば一般に入手可能なソフトウェアライブラリOpenCVに含まれるcvGetPerspectiveTransformやcvWarpPerspectiveという命令を用いて行うことができるため、詳細な説明は省略する。
【0030】
投影映像生成部107は、管理部105のGUIの情報の設定に従って、投影領域認識部103により認識された投影領域に投影される投影映像を生成する。具体的には、投影映像生成部107は、投影指毎に、管理部105のGUIの情報の設定に従って映像を生成し、生成した映像を位置対応テーブルに従って変換することにより、投影領域認識部103により認識された投影領域に一致する投影映像を生成する。これにより、投影部108は、投影領域に一致する投影映像を投影することができる。なお、投影映像生成部107は、グラフィックス処理プロセッサにより実現できる。
【0031】
投影部108は、投影領域認識部103により認識された投影領域にGUIの映像を投影する。具体的には、投影部108は、図9に示すように、投影映像生成部107により生成されたGUIの投影映像51−1〜51−4を、それぞれ、投影領域認識部103により認識された投影指の投影領域41−1〜41−4に投影する。なお、人差指24−1の投影領域41−1は、矩形F10F11F12F13となっている。本実施形態では、投影部108は、プロジェクタにより実現されるものとするが、これに限定されるものではない。なお、操作者21が手22上の映像を視認するためには、プロジェクタの焦点が手22への投影に合わせられている必要があるが、これは常に焦点が合うレーザ投影方式のプロジェクタを用いるか、プロジェクタに備えられている自動的に焦点距離を合わせる機構を利用すればよい。また、投影映像は、投影輝度が十分明るく、カラーマーカや掌表面の色に隠れない色である必要があるが、これらは事前に合わせておけばよい。また、プロジェクタによる投影面のゆがみ補正などは予め行われているものとする。なお投影部108は、プロジェクタの光源を常に投光するのではなく、投影領域認識部103により投影領域が認識された場合に投光を開始し、投影領域認識部103により投影領域が認識されなくなった場合に投光を停止するようにしてもよい。
【0032】
操作領域認識部109は、取得部101により取得された動画像から、操作指の操作領域を認識する。具体的には、操作領域認識部109は、抽出部102により抽出された操作指の画像から、操作指の先端の形状特徴量を抽出し、抽出した形状特徴量で示される領域を操作領域として認識する。
【0033】
図10は、操作領域の認識手法の一例の説明図である。操作領域認識部109は、抽出部102により抽出されたカラーマーカ30の領域を円40に近似し、円40の中心位置と半径を算出することで操作領域を認識する。具体的には、操作領域認識部109は、カラーマーカ30の領域の重心を求め、円40の中心位置とし、カラーマーカ30の領域の面積である画素数をπで割り平方根を求めることで円40の半径とする。
【0034】
なお、操作領域認識部109が認識する操作領域の指標としては、このように親指23の先端領域を円で近似する方法のほか、中心位置、長径方向と長さ、及び長径と垂直に交わる矩形の長さからなる楕円形状で近似する方法、長方形で近似する方法、又は複数の連結した線分の輪郭内の領域として近似する方法などを用いてもよい。
【0035】
選択判定部110は、投影領域認識部103により認識された投影領域と操作領域認識部109により認識された操作領域との重なり度合いを評価して、投影領域に投影されているGUIを選択したか否かを判定する。
【0036】
ここで、発行部105Aについて説明する。発行部105Aは、選択判定部110によりGUIを選択したと判定された場合、当該GUIに応じたコマンドを発行する。
【0037】
例えば、図6Aに示すGUIの情報であり、人差指24−1の投影領域に「照明“ON”」というGUIの映像が投影され、人差指24−1の投影領域に投影されているGUIが選択されたと判定されたとする。この場合、発行部105Aは、コマンド「LIGHT_ON」を発行する。
【0038】
また例えば、図6Bに示すGUIの情報であり、人差指24−1の投影領域に「照明“OFF”」というGUIの映像が投影され、人差指24−1の投影領域に投影されているGUIが選択されたと判定されたとする。この場合、発行部105Aは、コマンド「LIGHT_OFF」を発行する。
【0039】
通信部111は、発行部105Aにより発行されたコマンドを外部の制御対象機器に送信する。また、通信部111は、コマンドを送信した外部の制御対象機器から、コマンド送信の結果としてGUIの情報の変更通知を受信すると、管理部105へ通知する。これにより、管理部105は、GUI情報記憶部104に記憶されているGUIの情報のうち使用するGUIの情報を切り替える。例えば、管理部105は、図6Aに示すGUIの情報を使用しており、発行部105Aがコマンド「LIGHT_ON」を発行した場合には、外部の制御対象機器からの変更通知を受け、図6Bに示すGUIの情報に切り替える。
【0040】
図11は、第1実施形態のコマンド発行装置1で実行される処理の一例を示すフローチャートである。なお、図11に示す処理フローは、例えば、毎秒30回又は60回実行される。このため、操作者21によるGUIの選択操作の判定は、即時実行されるとともに、操作者21の投影指が動いたとしても投影指に投影されている投影映像は投影指に即時追従する。
【0041】
まず、取得部101は、操作者の手を撮像した動画像を取得する取得処理を行う(ステップS101)。
【0042】
続いて、抽出部102は、取得部101により取得された動画像に画像処理を施し、投影指と操作指とを抽出する抽出処理を行う(ステップS102)。
【0043】
続いて、投影領域認識部103は、抽出部102により抽出された投影指の画像から、投影指の投影領域を認識する投影領域認識処理を行う(ステップS103)。
【0044】
ここで、投影領域認識処理の詳細について説明する。
【0045】
まず本実施形態では、投影指の投影領域に投影されているGUIの映像上に操作指の操作領域を重ねることによりGUIの選択を行うため、図12に示すように、抽出部102により抽出された投影指の画像では、投影指に装着されているカラーマーカが操作指により隠蔽される場合がある。図12に示す例では、人差指24−1に装着されているカラーマーカ31−1が親指23により隠蔽されている。このように、投影指に装着されているカラーマーカが隠蔽されている場合には、投影領域認識部103は、隠蔽されているカラーマーカの領域を推定する必要がある。このため、投影領域認識部103は、事前処理として、投影指に装着されているカラーマーカが隠蔽されていない状態での投影指の特徴量である事前特徴量を抽出しておく必要がある。
【0046】
図13は、第1実施形態の投影指の事前特徴量の抽出手法の一例を示す説明図である。投影領域認識部103は、図13に示すように、抽出部102により抽出された投影指に装着されているカラーマーカが隠蔽されていない画像に対して、画像の左上の点を原点とし、水平方向をx軸、鉛直方向をy軸とする座標系を設定する。
【0047】
ここで、投影領域認識処理の詳細について説明する。
投影領域認識部103は、投影指の事前特徴量を、当該投影指に装着されたカラーマーカの先端側の点と根本側の点の位置とにより特定する。ここで、投影領域認識部103は、投影指のIDをn(n=1〜4)とし、本実施形態では、人差指24−1のIDをn=1、中指24−2のIDをn=2、薬指24−3のIDをn=3、小指24−4のIDをn=4とする。また、投影領域認識部103は、投影指の根本側の点をPn、投影指の先端側の点をP’nとする。具体的には、投影領域認識部103は、投影指のID毎に、x座標の値が一番大きい画素の座標をP’n、x座要の値が一番小さい画素の座標をPnとする。
【0048】
そして、投影領域認識部103は、P1〜P4の重心点Gを求め、方向ベクトルP1P’1〜P4P’4の平均の方向ベクトルVを求める。更に、投影領域認識部103は、投影指のID毎に、方向ベクトルPnP’nと垂直に交わる直線方向で当該線分PnP’nと最も離れる画素を探索し、当該画素と線分PnP’nとの距離を、線分PnP’nから反時計回りの方向については特徴量en、線分PnP’nから時計回りの方向については特徴量fnに格納する。
【0049】
図14は、第1実施形態の投影領域認識処理の一例を示すフローチャートである。
【0050】
まず、投影領域認識部103は、投影指の特徴点Rn、R’nを抽出する(ステップS201)。具体的には、投影領域認識部103は、図15に示すように、投影指に装着されたカラーマーカの領域32−nの根本側の点Rnと先端側の点R’nを抽出する。この処理の内容は、事前特徴量の抽出の内容と同様であるため、詳細な説明は省略する。
【0051】
続いて、投影領域認識部103は、事前特徴点Pn、P’nに基づいて、隠蔽を考慮した根本側の推定点R’’nを算出する(ステップS202)。具体的には、投影領域認識部103は、図15に示すように、R’nを基点としてR’nからRn方向に線分PnP’nの長さだけ伸ばした点をR’’nとする。
【0052】
続いて、投影領域認識部103は、根本側の推定点R’’nの補正点Snを算出する(ステップS203)。具体的には、まず、投影領域認識部103は、図16に示すように、R’’1〜R’’4の重心点G’’を求める。次に、投影領域認識部103は、方向ベクトルR’’1R’1〜R’’4R’4の平均の方向ベクトルV’’を求める。次に、投影領域認識部103は、方向ベクトルG’’Rnそれぞれと方向ベクトルV’’との内積dnを求め、dnが最も小さいIDをmとする。ここでは、m=4となる。また、このmについて、Sm=R’’mとする。次に、投影領域認識部103は、m以外の投影指については、直線PmPn(n≠m)それぞれと、当該直線PmPnとVの交わる角度an(n≠m)を求める。そして、投影領域認識部103は、図17に示すように、Smをとおり、方向ベクトルV’’と角度anで交わる直線Ln(n≠m)、線分R’’nRn(n≠m)との交点Sn(n=m以外のn)を求める。図17では、n=3の場合を示している。なお投影領域認識部103は、あるnについて、線分R’’nRnがLnと交わらない場合には、Sn=R’’nとする。
【0053】
続いて、投影領域認識部103は、図18に示すように、投影指のID毎に、線分SnR’nの端点Sn及びR’nから直交する方向に、あらかじめ算出した指の太さを示す特徴量en、fnの分だけ離れた点Fni(i=0〜3)を求める。そして、投影領域認識部103は、投影指のID毎に、矩形Fn0Fn1Fn2Fn3を投影領域として認識する(ステップS204)。
【0054】
なお、投影領域の指標としては、このように投影領域を矩形で近似する方法のほか、中心位置、長径方向と長さ、及び長径と垂直に交わる矩形の長さからなる楕円形状で近似する方法、複数の連結した線分の輪郭内の領域として近似する方法などを用いることもできる。
【0055】
図11に戻り、続いて、投影映像生成部107は、投影指毎に、管理部105のGUIの情報の設定に従って映像を生成し、生成した映像を位置対応テーブルに従って変換することにより、投影領域認識部103により認識された投影領域に一致する投影映像を生成する投影映像生成処理を行う(ステップS104)。
【0056】
続いて、投影部108は、投影映像生成部107により生成されたGUIの投影映像を、投影領域認識部103により認識された投影領域に投影する投影処理を行う(ステップS105)。
【0057】
ここで、投影処理の詳細について説明する。
【0058】
図19は、第1実施形態の投影処理の一例を示すフローチャートである。
【0059】
まず、投影部108は、自身によって投影される投影映像を格納する領域をフレームメモリ上に確保し初期化する(ステップS301)。例えば、投影部108は、プロジェクタにおいて、黒色を表示する領域は映像が投影されないため、全体を黒色で初期化する。
【0060】
続いて、投影映像生成部107は、投影領域認識部103から入力された各投影指の投影領域の情報を得、ID=nの投影指の投影領域である矩形Fn0Fn1Fn2Fn3の各頂点の座標を用いたポリゴンを定義し、ポリゴンの各頂点にテクスチャ座標(u,v)を割り当てる(図9参照、ステップS302)。
【0061】
続いて、投影映像生成部107は、位置対応テーブル記憶部106の情報を用いて、透視投影変換処理を行い、ポリゴンの各頂点Fn0Fn1Fn2Fn3を、F’n0Fn’1F’n2F’n3に変換する(ステップS303)。この処理はグラフィックス処理プロセッサの頂点シェーダ機能により実現できる。
【0062】
続いて、投影映像生成部107は、各投影指の投影領域に対するテクスチャ画像(GUIの画像)を生成する(ステップS304)。例えば、投影指の先端に比べ、投影指の根本のほうが操作指によって隠れやすいという身体的特徴を利用して、投影指の先端側に文字列や画像を寄せて描画してもよい。例えば、左手を操作に利用する場合には右側に寄せればよい。
【0063】
続いて、投影映像生成部107は、テクスチャ画像をポリゴン領域にマッピングする(ステップS305)。この処理は、グラフィックス処理プロセッサのテクスチャマッピング機能により実現できる。
【0064】
これにより、図9に示すような投影画像がグラフィックス処理プロセッサのフレームメモリ上に生成されるので、投影部108は、この投影画像を投影する(ステップS306)。
【0065】
図11に戻り、続いて、操作領域認識部109は、抽出部102により抽出された操作指の画像から操作領域を認識する操作領域認識処理を行う(ステップS106)。
【0066】
続いて、選択判定部110は、投影領域認識部103により認識された投影領域と操作領域認識部109により認識された操作領域との重なり度合いを評価して、投影領域に投影されているGUIを選択したか否かを判定する選択判定処理を行う(ステップS107)。
【0067】
ここで、選択判定処理の詳細について説明する。
【0068】
図20は、第1実施形態の選択判定処理の一例を示すフローチャートである。図20に示す例では、選択判定部110は、操作指と重なった投影指のIDを格納する変数SIDと、重なりが開始されてからの経過時間を格納する変数STimeという内部変数を有する。SIDが取り得る値は、1〜4、又はいずれの投影指にも操作指が重なっていないことを示す無効の値−1である。STimeが取り得る値は、0以上の実数である。なお、コマンド発行装置1の起動時に、選択判定部110は、SIDを−1、STimeを0に初期化する。
【0069】
まず、選択判定部110は、各投影指のID毎に、操作指の操作領域と投影指の投影領域とが撮像面上で重なっている領域の面積R(ID)を求める(ステップS401)。
【0070】
続いて、選択判定部110は、最も重なり面積が多い投影指のIDを求め、この値をCIDとし、このIDの投影指の重なり面積をRとする(ステップS402)。
【0071】
続いて、選択判定部110は、Rと閾値RTを比較する(ステップS403)。
【0072】
R>=RTであれば(ステップS403でYes)、選択判定部110は、CIDとSIDが等しいか否か判定する(ステップS404)。
【0073】
CID=SIDであれば(ステップS404でYes)、選択判定部110は、STimeに、前回判定時刻から現在時刻までの経過時間を加算する(ステップS405)。
【0074】
続いて、選択判定部110は、STimeと選択時間の閾値STimeTとを比較する(ステップS406)。
【0075】
STime>=STimeTであれば(ステップS406でYes)、選択判定部110は、操作者21がSIDのGUIを選択したと判定し、SIDを発行部105Aへ出力し(ステップS407)、処理を終了する。
【0076】
一方、R>=RTでない(ステップS403でNo)、または、CID=SIDでないなら(ステップS404でNo)、選択判定部110は、操作者21がGUIを選択していないと判定し、SIDを−1、STimeを0に初期化し(ステップS408)、処理を終了する。また、STime>=STimeTでないなら(ステップS406でNo)、選択判定部110は、処理を終了する。
【0077】
以上のように第1実施形態によれば、外部の制御対象機器の操作を、投影指に投影されたGUI映像を視認し、操作指により当該GUI映像をタッチするという片手操作で完結できる。また、外部の制御対象機器の状態をGUI映像として表示することも可能であるため、外部の制御対象機器を投影指に投影された映像から確認することもできる。なお第1実施形態では、片手に操作指と投影指がある場合について説明したが、両手を利用し、投影指がある指と反対の手の指を操作指とする場合でも、投影指がある指と反対側の手の操作指にカラーマーカを付加することによって、操作領域の位置を検出可能であり、上述の手法により実施可能である。また、操作指と投影指を片手の指に配置しながら、その手と逆の手にさらに操作指を割り当ててもよいし、投影指を割り当ててもよいし、操作指と投影指の双方を割り当てることも同様に可能である。
【0078】
(変形例1)
上記第1実施形態では、操作者21が操作指を投影指のGUIの映像上に重ねることで、GUIを選択する例について説明したが、変形例1では、操作者21が操作指を用いるのではなく、操作者21が選択対象のGUIの映像が投影されている投影指を折り曲げることで、GUIを選択する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0079】
図21は、変形例1のコマンド発行装置2の一例を示す構成図である。変形例1では、選択判定部112の処理内容が第1実施形態と相違する。
【0080】
選択判定部112は、投影指の曲げ具合を評価して、GUIを選択したか否かを判定する。具体的には、選択判定部112は、各投影指それぞれについて、矩形Fn0Fn1Fn2Fn3(投影領域)の各点うち、最もx軸の座標が大きいものをbnに代入する。なお、n=1〜4である。次に、選択判定部112は、bnの平均値bAvgを求め、bn−bAvgを折り曲げ量とみなす。そして、選択判定部112は、折り曲げ量bn−bAvgを予め定めた閾値bTと比較し、bn−bAvg<=bTであれば、IDがnの投影指が折り曲げられている、即ち、IDがnの投影指の投影領域に投影されているGUIを選択したと判定し、判定結果を管理部105へ出力する。一方、選択判定部112は、すべての指についてbn−bAvg>bTであれば、いずれの投影指も折り曲げられていない、即ち、いずれのGUIも選択されていないと判定し、判定結果を管理部105へ出力する。
【0081】
これにより、操作者21は、選択対象のGUIの映像が投影されている投影指を折り曲げることで、GUIを選択することができる。
【0082】
なお、選択可能なGUIは複数であってもよく、選択判定部112は、折り曲げ量が大きい順に投影指を順位付けし、例えば、順位が高い順に2つ以上の投影指の投影領域に投影されているGUIを同時に選択するとしてもよい。
【0083】
また上記第1実施形態と変形例1とを組み合わせ、操作指を投影指のGUIの映像上に重ねることによるGUIの選択と、操作者21が選択対象のGUIの映像が投影されている投影指を折り曲げることによるGUIの選択とを、併用するようにしてもよい。
【0084】
(変形例2)
上記第1実施形態では、1本の投影指に1つのGUIを投影する例について説明したが、変形例2では、1本の投影指に複数のGUIを投影する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0085】
図22は、変形例2のコマンド発行装置3の一例を示す構成図である。変形例2では、コマンド発行装置3が分割部113を更に備える点が第1実施形態と相違する。
【0086】
分割部113は、投影領域認識部103により認識された投影領域を複数の分割投影領域に分割する。図23は、変形例2の分割部113の分割手法の一例を示す説明図である。図23に示す例では、分割部113は、投影領域認識部103により認識された投影領域41−1である矩形F10F11F12F13を、1つ目の分割投影領域である矩形F10F11F1cF1aと、2つ目の分割投影領域である矩形F1aF1cF1dF1bと、3つ目の分割投影領域である矩形F1bF1dF12F13とに、3分割している。なお、分割部113は、投影領域を投影指の関節位置に基づいて分割してもよいし、投影領域を単純に等分してもよい。
【0087】
なお図23に示す例では、GUI情報記憶部104には、GUIの情報としてテンキーの情報が記憶されており、1つ目の分割投影領域である矩形F10F11F1cF1aには、ボタン1が割り当てられ、2つ目の分割投影領域である矩形F1aF1cF1dF1bには、ボタン2が割り当てられ、3つ目の分割投影領域である矩形F1bF1dF12F13には、ボタン3が割り当てられている。このため、投影部108は、1つ目の分割投影領である矩形F10F11F1cF1aにボタン1のGUIの映像52−1を投影し、2つ目の分割投影領である矩形F1aF1cF1dF1bにボタン2のGUIの映像52−2を投影し、3つ目の分割投影領である矩形F1bF1dF12F13にボタン3のGUIの映像52−3を投影している。
【0088】
なお、選択判定部110は、操作領域と分割投影領域との重なり具合を評価することで、GUIが選択されたか否かを判定する。
【0089】
これにより、テンキーなどを投影指上に投影することや、より多様なメニューなどを投影することが可能となる。
【0090】
(変形例3)
変形例1のように、操作者21が選択対象のGUIの映像が投影されている投影指を折り曲げることで、GUIを選択する場合には、赤外線センサで取得したシルエット画像を特徴量として用いることもできる。
【0091】
この場合、取得部101は、可視光カメラの代わりに赤外線光源により手22に赤外光を照射し、赤外線のみを透過するフィルタを取り付けた赤外線カメラによって手22の表面で拡散反射した赤外光を撮像する。
【0092】
また、抽出部102は、手22以外の背景領域では赤外線の反射光が減衰するため、赤外線がある閾値以上の強さで反射した領域のみを抽出することで、手22の領域を手22以外の背景領域から分離することができる。これにより、抽出部102は、手22のシルエット画像を抽出する。
【0093】
また、投影領域認識部103は、手22のシルエットの輪郭線をたどりながら輪郭線の変曲点を抽出することで、手22のシルエット画像から投影指の投影領域を認識することができる。
【0094】
これにより、操作者21は、投影指にカラーマーカを装着しなくても、投影指を折り曲げることによりGUIを選択することができる。
【0095】
(変形例4)
上記第1実施形態では、可視光カメラを用いて操作者21が各指に装着したカラーマーカの色を認識することで操作指と投影指との撮像面上の位置を認識したが、変形例4では可視光カメラの代わりに距離センサを用いて操作指と投影指との撮像面上の位置を認識する例について説明する。
【0096】
ここで、距離センサとは、カメラから物体までの距離を画像として取得するセンサである。例えば、赤外線カメラ付近に取り付けた赤外線光源により手22を照射し、距離が遠くなるにつれて反射光が減衰することを利用して反射光の強さを距離として求める方法がある。また、レーザ光源などにより特定のパターンを投影して、距離に応じて物体表面の反射パターンが変化することを利用して距離を求める方法もある。また、距離を離して設置した2台の可視光カメラで撮像した画像における視差が、距離が近い物体ほど大きくなることを利用して画像処理で距離を求める方法もある。変形例4では、取得部101はいずれの方法で距離を取得してもよい。
【0097】
このように、変形例4では、取得部101は、コマンド発行装置1から手22又は背景までの距離を輝度として表現した画像(以下、距離画像と称する)を取得するものとする。
【0098】
ここで、距離画像の各画素には、コマンド発行装置1から手22又は背景までの距離dが数値として格納されている。なお、距離が近いほどdの値は小さく、距離が離れているほどdの値は大きい。
【0099】
抽出部102は、距離dの分布を元に、閾値dTs及びdTpを用いて、距離画像を、折り曲げられた操作指の領域と投影指及び掌の領域と背景領域とに分離する。そして、抽出部102は、d<dTsの領域を、折り曲げられた操作指の領域として抽出し、当該領域のシルエットの輪郭線の変曲点を判定することにより、操作指の先端領域を操作領域認識部109に出力する。また、抽出部102は、dTs<=d<dTpの領域を、投影指及び掌の領域として抽出し、当該領域のシルエットの輪郭線の変曲点を判定することにより、投影指の根本から先端までの領域を投影領域認識部103に出力する。
【0100】
このようにすれば、カラーマーカを使用せずに操作指と投影指との撮像面上の位置を認識することができる。
【0101】
(第2実施形態)
第2実施形態では、手の姿勢に応じて投影指に投影されているGUIの映像を切り替える例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0102】
図24は、第2実施形態のコマンド発行装置4の一例を示す構成図である。第2実施形態では、コマンド発行装置4が掌領域認識部114、切替判定部115、及び切替部116を更に備える点が第1実施形態と相違する。
【0103】
掌領域認識部114は、投影領域認識部103により認識された投影領域を用いて、掌領域を認識する。具体的には、掌領域認識部114は、投影領域認識部103により認識された投影領域を用いて、掌の形状特徴量を抽出し、抽出した形状特徴量で示される領域を掌領域として認識する。
【0104】
図25は、第2実施形態の掌領域認識部114の掌領域認識手法の一例を示す説明図である。図25に示す例では、掌領域認識部114は、掌を示す掌領域36を正方形H0H1H2H3として認識している。ここで、H3は、投影領域認識部103により設定されたP1(人差し指24−1の根本)であり、H2は、投影領域認識部103により設定されたP4(小指24−4の根本)である。つまり、掌領域認識部114は、線分H2H3を求め、線分H2H3を1辺とする正方形H0H1H2H3を認識する。なお、線分H0H1は、線分H2H3と長さが等しく直交する線分である。なお、掌領域36の認識手法はこれに限定されるものではなく、掌表面の色情報などの情報を用いて認識してもよい。
【0105】
切替判定部115は、掌領域認識部114により認識された掌領域と操作領域認識部109により認識された操作領域との重なり度合いを評価して、投影領域への投影対象のGUIを切り替えるか否かを判定する。切替判定部115は、選択判定部110同様の判定手法で判定し、一定時間HTimeT以上、掌領域と操作領域との重なり面積がHT以上であれば、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部115は、一定時間HTimeT以上、掌領域と操作領域との重なり面積がHT以上でなければ、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0106】
切替部116は、切替判定部115によりGUIの映像を第1状態のGUIに切り替えると判定された場合に、投影領域への投影対象のGUIを第1状態のGUIに切り替え、切替判定部115によりGUIの映像を第2状態のGUIに切り替えると判定された場合に、投影領域への投影対象のGUIを第2状態のGUIに切り替える。
【0107】
例えば、GUI情報記憶部104は、図26A〜図26Dに示すGUIの情報を記憶しており、図26A〜図26Bに示すGUIの情報が第1状態のGUIであり、図26C〜図26Dに示すGUIの情報が第2状態のGUIであるとする。
【0108】
この場合、操作者21が親指23を掌領域36に重ね、切替判定部115により第1状態のGUIに切り替えると判定されれば、切替部116は、図26A〜図26Bに示すGUIの情報を設定し、図27Aに示すように、GUI53〜1〜53〜4がそれぞれ投影領域41〜1〜41〜4に投影される。
【0109】
一方、操作者21が親指23を掌領域36に重ねておらず、切替判定部115により第2状態のGUIに切り替えると判定されれば、切替部116は、図26C〜図26Dに示すGUIの情報を設定し、図27Bに示すように、GUI53〜5〜53〜8がそれぞれ投影領域41〜1〜41〜4に投影される。
【0110】
なお、切替判定部115は、操作者21が、操作指を掌上に重ねてから投影指上に移動させた場合には、操作指が掌上に重なっていなくても掌に操作指を重ねたという前状態を保持するなどとして切替判定を行ってもよい。
【0111】
これにより、操作者21が操作指を掌上に重ねる手の姿勢をとるか否かに応じてGUIの表示内容を切り替えることができる。なお、操作者21が操作指を掌上に重ねていない場合には、投影指にGUIを投影せず、操作者21が操作指を掌上に重ねている場合に、投影指にGUIを投影するようにしてもよい。
【0112】
第2実施形態によれば、投影するGUIの要素が多数存在し、かつGUI要素の個数が固定でない場合でも、表示内容を切り替えながら複数のGUI要素を表示することができる。
【0113】
(変形例5)
上記第2実施形態では、操作者21が操作指を掌に重ねることで、GUIを切り替える例について説明したが、変形例5では、操作者21が投影指を開閉することで、GUIを切り替える例について説明する。なお以下では、第2実施形態との相違点の説明を主に行い、第2実施形態と同様の機能を有する構成要素については、第2実施形態と同様の名称・符号を付し、その説明を省略する。
【0114】
図28は、変形例5のコマンド発行装置5の一例を示す構成図である。変形例5では、切替判定部117の処理内容が第2実施形態と相違する。
【0115】
切替判定部117は、投影指の開き具合を評価して、投影領域への投影対象のGUIを切り替えるか否かを判定する。切替判定部117は、投影指が開かれていれば、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部117は、投影指が開かれていなければ、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0116】
具体的には、切替判定部117は、推定した投影指の根本位置Snに関する方向ベクトルSnR’nの和の方向ベクトルVsと各投影指の方向ベクトルSnR’nとの内積dnの絶対値の和dSumを閾値dTと比較する。そして、切替判定部117は、dSum<=dTの場合には指が開いていると判定し、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部117は、dSum>dTの場合には指が閉じていると判定し、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0117】
例えば、操作者21が投影指を開き、切替判定部117により第1状態のGUIに切り替えると判定されれば、切替部116は、図26A〜図26Bに示すGUIの情報を設定し、図29Aに示すように、GUI53〜1〜53〜4がそれぞれ投影領域41〜1〜41〜4に投影される。
【0118】
一方、操作者21が投影指を閉じ、切替判定部117により第2状態のGUIに切り替えると判定されれば、切替部116は、図26C〜図26Dに示すGUIの情報を設定し、図29Bに示すように、GUI53〜5〜53〜8がそれぞれ投影領域41〜1〜41〜4に投影される。
【0119】
これにより、操作者21が投影指を開く手の姿勢をとるか否かに応じてGUIの表示内容を切り替えることができる。なお、操作者21が投影指を閉じた場合には、投影指にGUIを投影せず、操作者21が投影指を開いている場合に、投影指にGUIを投影するようにしてもよい。
【0120】
(変形例6)
上記第2実施形態では、操作者21が操作指を掌に重ねることで、GUIを切り替える例について説明したが、変形例6では、操作者21が投影指の方向を変更することで、GUIを切り替える例について説明する。なお以下では、第2実施形態との相違点の説明を主に行い、第2実施形態と同様の機能を有する構成要素については、第2実施形態と同様の名称・符号を付し、その説明を省略する。
【0121】
図30は、変形例6のコマンド発行装置6の一例を示す構成図である。変形例6では、切替判定部118の処理内容が第2実施形態と相違する。
【0122】
切替判定部118は、投影指の方向を評価して、投影領域への投影対象のGUIを切り替えるか否かを判定する。切替判定部118は、投影指が鉛直方向に向けられていれば、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部118は、投影指が水平方向に向けられていれば、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0123】
具体的には、切替判定部118は、推定した指の根本位置Snに関する方向ベクトルSnR’nの和の方向ベクトルVsの撮像面の水平方向に対するなす角度aSを求め、aSと閾値aSTとを比較する。そして、切替判定部118は、aS>=aSTであれば投影指を鉛直方向に向けていると判定し、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部118は、aS<aSTであれば手を水平方向に向けていると判定し、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0124】
例えば、操作者21が投影指をを鉛直方向に向け、切替判定部118により第1状態のGUIに切り替えると判定されれば、切替部116は、図26A〜図26Bに示すGUIの情報を設定し、図31Aに示すように、GUI53〜1〜53〜4がそれぞれ投影領域41〜1〜41〜4に投影される。
【0125】
一方、操作者21が投影指を水平方向に向け、切替判定部118により第2状態のGUIに切り替えると判定されれば、切替部116は、図26C〜図26Dに示すGUIの情報を設定し、図31Bに示すように、GUI53〜5〜53〜8がそれぞれ投影領域41〜1〜41〜4に投影される。
【0126】
これにより、操作者21が投影指を向ける方向(手の姿勢)に応じてGUIの表示内容を切り替えることができる。なお、操作者21が投影指を水平方向に向けた場合には、投影指にGUIを投影せず、操作者21が投影指を鉛直方向に向けている場合に、投影指にGUIを投影するようにしてもよい。
【0127】
(変形例7)
上記第2実施形態では、操作者21が操作指を掌に重ねることで、GUIを切り替える例について説明したが、変形例7では、操作者21が操作指の投影指に対する相対位置を変更することで、GUIを切り替える例について説明する。なお以下では、第2実施形態との相違点の説明を主に行い、第2実施形態と同様の機能を有する構成要素については、第2実施形態と同様の名称・符号を付し、その説明を省略する。
【0128】
図32は、変形例7のコマンド発行装置7の一例を示す構成図である。変形例7では、切替判定部119の処理内容が第2実施形態と相違する。
【0129】
切替判定部119は、操作領域と投影領域との相対位置を評価して、投影領域への投影対象のGUIを切り替えるか否かを判定する。切替判定部119は、操作領域と投影領域との距離が閾値以上離れていれば操作指と投影指とが離れていると判定し、投影領域への投影対象のGUIを第1状態のGUIに切り替えると判定する。一方、切替判定部119は、操作領域と投領域との距離が閾値以上離れていなければ操作指と投影指とが離れていないと判定し、投影領域への投影対象のGUIを第2状態のGUIに切り替えると判定する。
【0130】
例えば、操作者21が操作指と投影指とを離し、切替判定部119により第1状態のGUIに切り替えると判定されれば、切替部116は、図26A〜図26Bに示すGUIの情報を設定し、図33Aに示すように、GUI53〜1〜53〜4がそれぞれ投影領域41〜1〜41〜4に投影される。
【0131】
一方、操作者21が操作指と投影指とをくっ付け、切替判定部119により第2状態のGUIに切り替えると判定されれば、切替部116は、図26C〜図26Dに示すGUIの情報を設定し、図33Bに示すように、GUI53〜5〜53〜8がそれぞれ投影領域41〜1〜41〜4に投影される。
【0132】
これにより、操作指と投影指との相対位置(手の姿勢)に応じてGUIの表示内容を切り替えることができる。なお、操作者21が操作指と投影指とをくっ付けた場合には、投影指にGUIを投影せず、操作者21が投影指を操作指と投影指とを離している場合に、投影指にGUIを投影するようにしてもよい。
【0133】
また、操作者21が操作指で投影指をなぞる操作を行った場合に、操作指の移動方向を検出し、投影指の付け根から指先の方向へなぞった場合と、投影指の指先から付け根の方向へなぞった場合で、GUIを切り替えるようにしてもよい。
【0134】
(第3実施形態)
第3実施形態では、操作者に現在の操作内容を視認させるフィードバック映像を投影する例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0135】
図34は、第3実施形態のコマンド発行装置8の一例を示す構成図である。第3実施形態では、コマンド発行装置8がフィードバック映像生成部120、及び重畳部121を更に備える点が第1実施形態と相違する。
【0136】
フィードバック映像生成部120は、選択判定部110により操作領域が重なっていると判定されている投影領域に投影されているGUIの映像のフィードバック映像を、生成する。ここで、フィードバック映像とは、操作者21に現在の操作内容を視認させるための投影映像である。
【0137】
操作者21が投影指上のGUIの映像に操作指を重ねた場合、操作指と投影指に投影映像が横断的に投影されてしまい、投影指上のGUIの映像の視認性が低下してしまう。このため、フィードバック映像生成部120は、操作者21が現在選択しようとしている投影指上のGUIの映像を、当該投影指以外の場所に投影するか、当該投影指の投影領域のうち操作指が重なっていない領域に短縮して投影する。
【0138】
ここで、選択判定部110では、操作領域と投影領域とが一定時間以上重なっている場合にGUIを選択したと判定したが、フィードバック映像生成部120は、操作領域と投影領域とが重なっていれば、フィードバック映像を生成する。
【0139】
つまり、フィードバック映像生成部120は、図20に示すフローチャートのステップS403及びS404の条件判定のみを行い、経過時間については判定を行わない。そして、閾値を上回ったIDの投影指に投影されているGUIの映像のフィードバック映像を生成する。
【0140】
例えば、投影部108は、図35に示すように、操作者21が選択使用としているGUI51−1のフィードバック映像51−5を、操作指の根本に投影する。フィードバック映像生成部120は、フィードバック映像51−5の投影位置を、操作指により投影指の根本側を選択した場合と、投影指の先端側を選択した場合とに分類して決定する。この分類は、投影領域を先端側と根本側の2領域に等分し、どちらの領域に操作指の中心位置が重なっているかを判定すればよい。操作者21が投影指の根本側を選択した場合には、人差し指24−1の根本位置から人差し指24−1の長さの分だけ掌方向へ移動した点(図18において、S1を起点として、線分R’1S1の長さの分だけ、方向ベクトルR’1S1の方向へ延長した点)とする。一方、操作者21が投影指の先端側を選択した場合には、操作指によって選択した投影指の根元位置の点と、人差し指24−1の根本位置の点の中点から、人差し指24−1の長さの分だけ掌方向へ移動した点(操作指によって選択した投影指の根元位置の点と、人差し指24−1の根本位置の点の中点を起点として、図18に示した線分R’1S1の長さの分だけ、方向ベクトル線分R’1S1の方向へ延長した点)とする。
【0141】
また例えば、投影部108は、図36に示すように、操作者21が選択しようとしているGUI51−1のフィードバック映像51−6を、掌に投影してもよい。
【0142】
また例えば、投影部108は、図37に示すように、操作者21が選択しようとしているGUI51−1を短縮又は縮小したものを投影するようにしてもよい。
【0143】
この場合、GUI情報記憶部104には、各GUI情報に対応する短縮テキスト又は縮小映像が記憶されている。例えば、GUI情報記憶部104は、「照明“ON”」の短縮テキストが「照ON」を記憶しており、操作者21がGUI51−1を選択使用としている場合には、投影部108は、「照明“ON”」の短縮テキスト「照ON」を投影する。操作指が乗っていない投影指の領域61−1は、図38に示すように、選択されようとしている投影指のID=j(j=1〜4)の方向ベクトルR’jSjと、操作指の近似した円との交点Qを求め、線分R’jQの端点QからR’jQと直交する方向に、予め算出した指の太さを示す特徴量ej、fjの分だけ離れた点Qa、Qbを求めることで、矩形QaQbFj2Fj3として求められる。操作指が乗っていない投影指の領域61−1に投影するテキストは、投影領域を定義する線分QR’jの長さに応じて、動的に文字数を変更される。例えば、閾値La、Lb(|P1P’1|>La>Lb>0)を予め定め、投影部108は、|QR’j|>=Laでは「照明“ON”」を投影し、La>|QR’j|>=Lbでは「照ON」を投影する。なお、Lb>|QR’j|では、投影領域が狭すぎるため文字列の代わりに投影領域に収まるサイズのアイコン画像を表示するようにしてもよい。
【0144】
重畳部121は、投影映像生成部107により生成された投影映像とフィードバック映像生成部120により生成されたフィードバック映像とを重畳し、合成映像を生成する。
【0145】
第3実施形態によれば、本実施例により、操作者21は、選択を行ったGUI要素の内容を視認しやすくなり、誤った操作を行う可能性を低減することができる。
【0146】
(第4実施形態)
第4実施形態では、投影指に応じたGUIの情報を割り付ける例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0147】
図39は、第4実施形態のコマンド発行装置9の一例を示す構成図である。第4実施形態では、コマンド発行装置9が割付決定部123を更に備える点が第1実施形態と相違する。
【0148】
割付決定部123は、GUI情報記憶部104に記憶されているGUIの情報に基づいて、投影指の投影領域それぞれに対するGUIの割付を決定する。これにより、各投影指の大きさの違いに基づく表示可能面積の違いや、投影指の位置関係による選択操作の容易さの違いにもとづき、投影指に割り当てるGUI情報を変更することができる。
【0149】
例えば、親指23を操作指とし、親指以外の指24を投影指とする場合に、指ごとに選択操作容易度を表現した値を予めGUI映像の投影指への割付決定部123に保持させておくとともに、GUIごとの操作履歴を記録した情報からGUIごとの操作頻度を求め、同様に割付決定部123に保持させておく。これにより、割付決定部123は、GUIを投影指に割り付け時には、操作頻度が高いGUIから順に選択操作容易度が高い投影指に割り当ててゆくので、頻繁に選択操作を行うGUIを容易に操作できるようになり、操作ミスを軽減できる。
【0150】
また例えば、GUIの映像としてテキスト文字列を表示する場合には、GUIごとのテキスト文字列の文字数を予め割付決定部123で計測しておく。そして、割付決定部123は、投影領域認識部103から得られた投影指に対して、投影指ごとの投影領域の水平方向の画素数の大きいものから、GUIのテキスト文字列の文字数の多い順に割り当てる。即ち、割付決定部123は、文字数の多いGUI要素を人差指24−1や中指24−2などの長い指から割り当て、文字数の少ないGUI要素を小指24−4などの短い指から割り当てられるようになるので、GUI文字列の視認性を向上させることができ、操作ミスを軽減できる。
【0151】
また例えば、テキストなどの複数行からなる文書を投影指に投影する場合には、割付決定部123は、テキストの1行が指の1行になるように割り当てを行う。この場合、割付決定部123は、投影領域認識部103から得られた各投影指の投影領域を用いて、投影指の長さに応じてテキスト途中に改行を挿入し、テキストを複数行に分割したのち、各行を各投影指に割り当てる。これにより、長文の文章なども投影指上に投影し、視認することができるようになる。
【0152】
このように第4実施形態によれば、投影指の本数に限定されない多様なGUIを指上に割り当てることが可能となる。
【0153】
(第5実施形態)
第5実施形態では、HMD(ヘッドマウントディスプレイ)を用いる例について説明する。なお以下では、第1実施形態との相違点の説明を主に行い、第1実施形態と同様の機能を有する構成要素については、第1実施形態と同様の名称・符号を付し、その説明を省略する。
【0154】
図40は、第5実施形態のコマンド発行装置10の利用形態の一例を示す外観図である。本実施形態では、図40に示すように、コマンド発行装置10は、操作者21の頭部に装着可能なメガネ型の形態をとる。取得部124は、操作者21が手22の方向へ頭を向けることにより手22の方向を向き、手22の動画像を撮像する。提示部125は、操作者21が頭部に装着できるメガネ型ディスプレイであり、操作者21が見ている風景に重畳する形で映像を提示する。従って、第5実施形態では、図41に示すように、操作者21が手22を見ている状態で手22の位置に合うように提示部125が映像127を提示することで、操作者21には手22の上に映像127が重畳されているように視認される。
【0155】
図42は、第5実施形態のコマンド発行装置10の一例を示す構成図である。第5実施形態では、コマンド発行装置10が取得部124、提示部125、及び位置決定部126を更に備える点が第1実施形態と相違する。
【0156】
取得部124は、操作者21の頭部に装着され、操作者21の手22を動画像として撮像する。
【0157】
提示部125は、投影映像生成部107により生成された映像を、操作者21が頭部に装着しているメガネ型ディスプレイ装置に提示する。
【0158】
位置決定部126は、投影領域認識部103で認識された提示指に提示される提示映像の提示位置を決定する。
【0159】
第5実施形態では、提示部125は、操作者21が頭部に装着するメガネ型ディスプレイであるため、映像の提示領域は手22上など実際に存在する物体表面上に制限されない。従って、提示部125は、図43に示すように、操作指との重なり判定を行う提示指の領域とGUIの映像を提示する領域とを、分離し、提示指の先側にGUI映像を提示することもできる。このような、GUIの映像の投影を行うため、位置決定部126は、投影映像生成部107での処理を行う前処理として、投影領域認識部103で算出された提示領域の位置を提示指の先端側に外挿し出力する。
【0160】
第5実施形態では、操作者21が頭部に装着するコマンド発行装置10について説明を行ったが、取得部124で撮像した動画像を提示部125であるディスプレイに表示するとともに、動画像上に取得部124で撮像した手の映像位置に合わせてGUIを重畳表示すれば、携帯型情報端末でも実現できる。
【0161】
上記各実施形態及び上記各変形例のコマンド発行装置は、CPU(Central Processing Unit)などの制御装置と、ROMやRAMなどの記憶装置と、HDDやSSDなどの外部記憶装置と、ディスプレイなどの表示装置と、マウスやキーボードなどの入力装置と、通信I/Fなどの通信装置とを備えており、通常のコンピュータを利用したハードウェア構成となっている。
【0162】
上記各実施形態及び上記各変形例のコマンド発行装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM、CD−R、メモリカード、DVD、フレキシブルディスク(FD)等のコンピュータで読み取り可能な記憶媒体に記憶されて提供される。
【0163】
また、上記各実施形態及び上記各変形例のコマンド発行装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するようにしてもよい。また、上記各実施形態及び上記各変形例のコマンド発行装置で実行されるプログラムを、インターネット等のネットワーク経由で提供または配布するようにしてもよい。また、上記各実施形態及び上記各変形例のコマンド発行装置で実行されるプログラムを、ROM等に予め組み込んで提供するようにしてもよい。
【0164】
上記各実施形態及び上記各変形例のコマンド発行装置で実行されるプログラムは、上述した各部をコンピュータ上で実現させるためのモジュール構成となっている。実際のハードウェアとしては、例えば、CPUがHDDからプログラムをRAM上に読み出して実行することにより、上記各部がコンピュータ上で実現されるようになっている。
【0165】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【0166】
以上説明したとおり、上記各実施形態及び上記各変形例によれば、ユーザ操作を片手で完結することができる。
【符号の説明】
【0167】
1、2、3、4、5、6、7、8、9、10 コマンド発行装置
101、124 取得部
102 抽出部
103 投影領域認識部
104 GUI情報記憶部
105 管理部
105A 発行部
106 位置対応テーブル記憶部
107 投影映像生成部
108 投影部
109 操作領域認識部
110、112 選択判定部
111 通信部
113 分割部
114 掌影領域認識部
115、117、118、119 切替判定部
116 切替部
120 フィードバック映像生成部
121 重畳部
123 割付決定部
125 提示部
126 位置決定部
127 提示映像

【特許請求の範囲】
【請求項1】
操作者の手を撮像した動画像を取得する取得部と、
前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識部と、
前記投影領域にGUI(Graphical User Interface)の映像を投影する投影部と、
前記動画像から、操作に用いられる操作指の操作領域を認識する操作領域認識部と、
前記投影領域と前記操作領域との重なり度合いを評価して、前記GUIを選択したか否かを判定する選択判定部と、
前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行部と、
を備えることを特徴とするコマンド発行装置。
【請求項2】
前記投影領域を複数の分割投影領域に分割する分割部を更に備え、
前記投影部は、前記複数の分割投影領域それぞれに異なるGUIの映像を投影することを特徴とする請求項1に記載のコマンド発行装置。
【請求項3】
操作者の手を撮像した動画像を取得する取得部と、
前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識部と、
前記投影領域にGUI(Graphical User Interface)の映像を投影する投影部と、
前記投影指の曲げ具合を評価して、前記GUIを選択したか否かを判定する選択判定部と、
前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行部と、
を備えることを特徴とするコマンド発行装置。
【請求項4】
前記投影領域は、前記投影指の形状特徴量で示される領域であることを特徴とする請求項1〜3のいずれか1つに記載のコマンド発行装置。
【請求項5】
前記手の姿勢から、前記投影領域に投影されている前記GUIの映像を切り替えるか否かを判定する切替判定部と、
前記GUIの映像を切り替えると判定された場合に、前記投影領域への投影対象の前記GUIを切り替える切替部と、を備え、
前記投影部は、前記投影領域に切替後のGUIの映像を投影することを特徴とする請求項1〜4のいずれか1つに記載のコマンド発行装置。
【請求項6】
前記投影部は、前記操作領域が重なっている前記投影領域に投影されている前記GUIの映像のフィードバック映像を、前記手のいずれかの領域に投影することを特徴とする請求項1〜5のいずれか1つに記載のコマンド発行装置。
【請求項7】
前記投影領域に対してGUIの割付を決定する割付決定部を更に備え、
前記投影部は、決定された割付に従って、前記投影領域に前記GUIの映像を投影することを特徴とする請求項1〜6のいずれか1つに記載のコマンド発行装置。
【請求項8】
取得部が、操作者の手を撮像した動画像を取得する取得ステップと、
投影領域認識部が、前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識ステップと、
投影部が、前記投影領域にGUI(Graphical User Interface)の映像を投影する投影ステップと、
操作領域認識部が、前記動画像から、操作に用いられる操作指の操作領域を認識する操作領域認識ステップと、
選択判定部が、前記投影領域と前記操作領域との重なり度合いを評価して、前記GUIを選択したか否かを判定する選択判定ステップと、
発行部が、前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行ステップと、
を含むことを特徴とするコマンド発行方法。
【請求項9】
取得部が、操作者の手を撮像した動画像を取得する取得ステップと、
投影領域認識部が、前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識ステップと、
投影部が、前記投影領域にGUI(Graphical User Interface)の映像を投影する投影ステップと、
選択判定部が、前記投影指の曲げ具合を評価して、前記GUIを選択したか否かを判定する選択判定ステップと、
発行部が、前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行ステップと、
を含むことを特徴とするコマンド発行方法。
【請求項10】
操作者の手を撮像した動画像を取得する取得ステップと、
前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識ステップと、
前記投影領域にGUI(Graphical User Interface)の映像を投影する投影ステップと、
前記動画像から、操作に用いられる操作指の操作領域を認識する操作領域認識ステップと、
前記投影領域と前記操作領域との重なり度合いを評価して、前記GUIを選択したか否かを判定する選択判定ステップと、
前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行ステップと、
をコンピュータに実行させるためのコマンド発行プログラム。
【請求項11】
操作者の手を撮像した動画像を取得する取得ステップと、
前記動画像から、投影に用いられる投影指の投影領域を認識する投影領域認識ステップと、
前記投影領域にGUI(Graphical User Interface)の映像を投影する投影ステップと、
前記投影指の曲げ具合を評価して、前記GUIを選択したか否かを判定する選択判定ステップと、
前記GUIを選択したと判定された場合、前記GUIに応じたコマンドを発行する発行ステップと、
をコンピュータに実行させるためのコマンド発行プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6A】
image rotate

【図6B】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図7C】
image rotate

【図8A】
image rotate

【図8B】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26A】
image rotate

【図26B】
image rotate

【図26C】
image rotate

【図26D】
image rotate

【図27A】
image rotate

【図27B】
image rotate

【図28】
image rotate

【図29A】
image rotate

【図29B】
image rotate

【図30】
image rotate

【図31A】
image rotate

【図31B】
image rotate

【図32】
image rotate

【図33A】
image rotate

【図33B】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate


【公開番号】特開2013−73556(P2013−73556A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−213998(P2011−213998)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】