JP6425416B2 - ユーザインタフェース装置およびユーザインタフェース制御プログラム - Google Patents

ユーザインタフェース装置およびユーザインタフェース制御プログラム Download PDF

Info

Publication number
JP6425416B2
JP6425416B2 JP2014097872A JP2014097872A JP6425416B2 JP 6425416 B2 JP6425416 B2 JP 6425416B2 JP 2014097872 A JP2014097872 A JP 2014097872A JP 2014097872 A JP2014097872 A JP 2014097872A JP 6425416 B2 JP6425416 B2 JP 6425416B2
Authority
JP
Japan
Prior art keywords
liquid
hand
plane
information
gesture
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014097872A
Other languages
English (en)
Other versions
JP2014238828A (ja
Inventor
小池 英樹
英樹 小池
陽一 高橋
陽一 高橋
やすし 的場
やすし 的場
真吾 山野
真吾 山野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
THE UNIVERSITY OF ELECTRO-COMUNICATINS
Original Assignee
THE UNIVERSITY OF ELECTRO-COMUNICATINS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by THE UNIVERSITY OF ELECTRO-COMUNICATINS filed Critical THE UNIVERSITY OF ELECTRO-COMUNICATINS
Priority to JP2014097872A priority Critical patent/JP6425416B2/ja
Publication of JP2014238828A publication Critical patent/JP2014238828A/ja
Application granted granted Critical
Publication of JP6425416B2 publication Critical patent/JP6425416B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Position Input By Displaying (AREA)
  • User Interface Of Digital Computer (AREA)

Description

本発明は、コンピュータのユーザインタフェース技術に関するものである。
情報端末の小型化と無線ネットワークの普及は、人々がいつでもどこでも情報にアクセスすることを可能とした。こうした中、ユビキタス・コンピューティングの一環として、家具やキッチンなどに情報機器を組み込み、日常生活を便利かつ豊かにする研究が行われてきている。
そのような中、浴室での情報閲覧の需要が高まっている。特に携帯電話に慣れ親しんだ世代においては、携帯電話を浴室に持ち込むなどして、入浴時という特殊な環境でも情報閲覧が行われている。
浴室内での情報閲覧の需要に応えるものとして、使用者がディスプレイを見やすい角度に保持した状態で、水面に浮遊させることが可能な携帯端末が提案されている(例えば特許文献1参照)。特許文献1に記載された携帯端末は、防水構造を有するとともに比重が水よりも小さく構成され、端末の重心の位置を変更可能な移動部材を備え、移動部材の位置を適宜調整することにより、端末のディスプレイが見やすい角度で浮遊できるようになっている。
また、浴槽等の水面に気泡によるスクリーンを形成し、映像を表示する技術も提案されている(例えば特許文献2,3参照)。
さらに、水面へのタッチをセンシングし、水槽底面に投影表示された映像とのインタラクションを可能にする技術も提案されている(例えば非特許文献1参照)。非特許文献1に記載のシステムでは、水槽の横から赤外線LED光源を照射し、透明な水槽下部に設置した赤外線カメラによりタッチ位置を検出している。
特開2013−030964号公報 特開2011−237497号公報 特開2005−300561号公報
Paul H. Dietz, Jonathan Westhues, John Barnwell, Jefferson Y. Han, and William Yerazunis. Submerging technologies. In ACM SIGGRAPH 2006 Emerging technologies, SIGGRAPH ’06, New York, NY, USA, 2006. ACM.
浴室のような水の多い環境は、潜在的に携帯電話等の情報機器との相性が悪い。例えば特許文献1に記載の携帯端末は防水構造を有しているものの、防水機能自体の耐久性や信頼性の不安から、浴室への携帯端末の持ち込みには心理的に抵抗を感じるユーザや、浴室内に余計なものを持ち込むことに煩わしさを感じるユーザも多いと考えられる。
また、特許文献2,3には、気泡スクリーンへの情報の投影については言及されているが、ユーザからの入力によるインタラクションについては言及されていない。
さらに、非特許文献1に記載のシステムは、水面をタッチスクリーンのように見立てたものであり、従来のタッチパネルの概念から抜け出せているとは言い難い。また、操作面となる水面と表示面となる水槽底面との間に水を挟んでいるので、操作面と表示面が離れてしまっている。その結果、ユーザにとっては直接的なインタラクションとならないので、操作を知覚しづらくなってしまう。
本発明は、上記の事情に鑑みてなされたものであり、防水構造を有する情報機器を持ち込むことなく、液面への情報表示と入力とを実現する、情報閲覧とインタラクションに好適なユーザインタフェースを提供することを目的とする。
本発明のユーザインタフェース装置は、不透明状態の液体が蓄えられた液体槽と、液体槽の液面に対して情報を投影表示させる投影表示手段と、液体槽の液面付近において行われる、ユーザによる液体への接触を伴うジェスチャの入力を認識するジェスチャ認識手段と、ジェスチャ認識手段によって認識されたジェスチャに応じて、投影表示手段に投影表示させる情報を制御する表示制御手段とを設けたことを特徴とする。
ここで、ジェスチャ認識手段は、ユーザが液面下から指を突き出す動作、ユーザが液面付近において液体を流す動作、ユーザが液体をすくう動作、ユーザが水面を叩く動作のうちの少なくとも1つの動作を認識するものとすることが好ましい。
また、ジェスチャ認識手段は、液面からの距離が表された深度画像を取得可能な深度カメラと、深度カメラで取得された液面を表す背景画像とジェスチャの動作中を表す1以上のジェスチャ画像との差分を求めることによって、ジェスチャの動作領域を表す前景画像を取得し、ジェスチャの動作領域の面積と経時的変化とに基づいて、ジェスチャの動作内容を特定するジェスチャ解析部とを備えたものとしてもよい。
表示制御手段は、流体シミュレーションにより、投影表示される情報を液面上で移動させる制御を含むことが好ましい。
その際、ジェスチャ認識手段が、ユーザが液面付近において液体を流す動作を認識するようにし、表示制御手段は、認識された液体を流す動作に応じて、液体シミュレーションによって投影表示される情報を移動させる向きや速さを決定するようにしてもよい。
また、液体槽はユーザが内部に入ることができるものとし、ユーザが液体に浸かることができるものとしてもよい。具体例としては、浴槽やプール等が挙げられる。
なお、「液体」は、不透明な溶液等のような恒久的に不透明状態のものであってもよいが、恒久的である必要はない。例えば、液体をかき混ぜたり、液体中に気泡を発生させたりすることによって、一時的に不透明状態が形成されるようなものであってもよい。
また、「情報」は、文字、静止画、動画のいずれであってもよく、アイコンや操作ボタン、スライドレバー等のGUI部品であってもよい。
本発明によれば、防水構造を有する情報機器を持ち込むことなく、情報表示と入力とが実現される。このようなユーザインタフェースは、情報閲覧とインタラクションにきわめて適したものである。
本発明の実施形態となるインタラクティブシステムの使用イメージを模式的に示した図 本実施形態のインタラクティブシステムの基本的な構成を模式的に示した図 手指認識処理の概要を示したフローチャート キャリブレーション処理を模式的に示した図 水面の深度を表す深度画像(背景画像)の一例を示した図 深度カメラの画角内に手が存在する場合の深度画像(ジェスチャ画像)の一例を示した図 ジェスチャ画像と背景画像の差分を2値化した2値画像の一例を示した図 2値画像に対する領域抽出処理の流れを模式的に示した図 認識対象の手と指の実際の状態の一例を示した図 2値画像における認識対象の手と指の領域を示した図 腕の向きを検出する処理を説明するための模式図 手領域を抽出する処理を説明するための模式図 水を流すジェスチャの認識処理の概要を示したフローチャート 水をすくうジェスチャの認識処理の概要を示したフローチャート 水をたたくジェスチャの認識処理の概要を示したフローチャート 流体シミュレーションによる視覚的効果の一例を示した図 ウォータートップのトップメニュー(メインモード)とフルスクリーンモード(アプリケーションモード)の表示の一例と画面遷移の一例を示した図 突出しジェスチャによる画像選択と移動の一例を示した図 突出しジェスチャを用いた2本の指のピンチングによる画像の拡大・縮小の一例を示した図 流すジェスチャに応じた流体シミュレーションによる画像の全体的な移動の一例を示した図 流すジェスチャによる動画の早送り・巻戻しの一例を示した図 すくうジェスチャによる動画ファイルの移動と再生の一例を示した図 本実施形態のインタラクティブシステムを用いたシューティングゲームの一例を示した図 シューティングゲームにおける突出しジェスチャを用いた弾の発射の一例を示した図 本実施形態のインタラクティブシステムを用いた金魚すくいゲームの一例を示した図 本実施形態のインタラクティブシステムを用いたホッケーゲームの一例を示した図 本実施形態のインタラクティブシステムを用いた火の玉シューティングゲームにおいて、火の玉を飛ばす動作を説明した図である。(a)は、両手の準備動作を示しており、(b)は、火の玉を飛ばしている様子を示している。 本実施形態のインタラクティブシステムを用いた水しぶきをあげるように構成した浴槽の平面図である。 本実施形態のインタラクティブシステムを用いた水しぶきをあげる状態を説明した図である。 本発明の実施形態の変形例2の構成を示した図である。 本発明の実施形態の変形例2の構成を示した図である。 本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームのゲーム開始準備処理の処理手順を示したフローチャートである。 本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームのゲーム処理の処理手順を示したフローチャートである。 本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームのゲーム処理において、図32のフローチャートに示したS621により遷移する処理手順を示したフローチャートである。
以下、本発明の実施形態となるインタラクティブシステム(ユーザインタフェース装置)について説明する。図1は、本システムの使用イメージである。
1.システムの設計思想
1.1 浴室環境での使用
本実施形態のインタラクティブシステムは、浴室環境で使用されることを想定している。この使用環境の観点から以下の要求事項がある。
・映像閲覧可能なシステム
・入浴時における身体動作を活かした入力
・デバイス装着・把持が不要
・システム導入が容易
(1) 映像閲覧可能なシステム
入浴時におけるコンテンツとして、TV やインターネットの閲覧、ゲームなどの映像閲覧に対する需要があることが分かっている。このことから映像を表示し、表示された情報とインタラクション可能なシステムが必要となってくると考えられる。
(2) 入浴時における身体動作を活かした入力
浴室内で映像閲覧でき一般的に普及しているものとして浴室用TV があるが操作を行うために本体の操作ボタンに直接さわらならければならない。そのため湯船に浸かっている状態では体を動かし、本体まで手を伸ばさなければならないので、リラックスして入浴している状況においては操作性として問題がある。入浴中にスマートフォンなどの携帯端末で情報閲覧ということもされているが、端末を操作中に常時把持しなければならないという点で問題がある。浴槽に浸かっている状況を想定すると、入浴者の体は水の中に入っている状態が一般的であるため、入浴時の自然な体の動きを入力として用いる必要性があると考えられる。
(3) デバイス装着・把持が不要
インタラクティブシステムにおいて人間の動きを認識するためにセンサやマーカを身に着けるシステムがいくつかあるが、入浴行為を考えた際に入浴者がデバイスを装着したり、持ったりするのは水の中に入ることによって破損してしまうというハードウェア面の問題や、装着により生じる束縛感という点で浴室環境には適していない。よって認識のためのデバイスを装着・把持しないシステム構築が重要である。
(4) システム導入が容易
インタラクティブなディスプレイシステムにおいて、手指による入力の検出のためにディスプレイ面に特別なセンサやディスプレイ周囲にIR レーザを設置しなければならないものがあるが、浴槽に埋め込まなければならなかったり、そもそも実現不可能であったりといった問題がある。よって、できるだけシンプルで、設置が容易なシステムが望まれる。
1.2 実世界指向ユーザインタフェース
また、本実施形態のインタラクティブシステムでは、実世界指向ユーザインタフェースの実現を目指すこととし、どういった要求があるのかを考える。実世界指向ユーザインタフェースにとって最も重要な要素は、実物体と同じように対話可能なことである。入力に関しては、実物体に対して行う動作をそのままバーチャルなオブジェクトの操作に割り当てられれば、より自然で直観性のある入力手法になると考えられる。また、情報表示に関しては、表示される情報が実世界と同じような挙動を示すことで、実世界と同様の操作で情報を扱うことが可能になる。
1.3 設計指針と実現手段の検討
以上の要求分析に基づき、普段PC やスマートフォン等で行なっている情報閲覧を、情報機器を持ち込まずに浴槽で実現するために、以下の2つを設計指針として、実現手段を検討した。
(a) 浴槽の水面を情報表示領域とし、ここで文字、画像、動画情報を閲覧する。
(b) 表示された情報を手指ジェスチャで操作する。その際、水の特徴を活用したインタラクションを設計する。
(a) としては、電子書籍やweb ブラウジングで使用されるような文字情報、写真閲覧で使用される画像情報、動画情報などの視覚的情報が適度な品質で閲覧できることを目標とする。このために本実施形態では、入浴剤によって水を白濁させ、上方に設置したプロジェクタからこの白濁した水面に映像を投影することとした。この入浴剤は日本の浴室においてはよく使用されており、非現実的な仮定ではないと考える。
(b) としては、壁等に設置されたコントローラを操作したり、携帯機器を手に持ったりせず、普段入浴する自然な状態で対話操作ができることを目標とする。このために、本実施形態では、後述する深度カメラを用いた手指ジェスチャ認識を利用した。深度カメラはRGBカメラに比べ手指認識の誤認識が少ない点が特徴だが、水が透明だと水面の高さ判定が難しい。これに対し、(a) の白濁剤の使用により深度カメラが水面を正しく認識できるようになるという効果がある。
また、水面に浮いた物体は水の流れに沿って移動する。よって、表示される情報も水の流れに沿って移動することで、情報を実物体のように扱うことができると考えられる。本実施形態では流体シミュレーションを適応することによって、流れに沿って情報が移動する水面ならではの自然な情報提示を目指す。
さらに、非特許文献1に記載のシステムのような赤外線を用いた接触認識は、実際の浴槽への設置を考えた場合、比較的複雑なハードウェアを必要とし、かつ水面の上下に対応しづらい。これに対し本実施形態では、プロジェクタと深度カメラとで構成されているため、設置も容易かつコストも比較的低い。
2.入浴時の身体動作を活かした対話手法の検討
テーブルトップのような従来の2次元かつ硬いサーフェスではタッチ操作が主流である。しかし、本研究で対象とする浴槽ディスプレイは表示媒体が液体であり、また利用者が中に浸かることに起因する特徴的かつ自然な操作が考えられる。本発明者は入浴中のさまざまな身体動作を検討した結果、特に以下の操作に着目した。
2.1 水面下から指を突き出す(poking)
入浴時、手指は水中にあることが多い。この状態で水面に表示される情報を選択する場合、上からのタッチよりも水面下から指を突き出して選択することが自然かつ容易である。また、指を突き出すということは水面を貫くと言い換えられる。したがって、水面に表示されている情報を裏側から突き刺す動作は、情報のポインティング(選択)操作に直感的に結びつくと思われる。この動作は、空中に腕を上げる必要があるタッチ動作に比べ、水の浮力のため身体的負担が少ないのも利点の1つである。また、複数本の指を認識することで従来のサーフェスシステムにおけるマルチタッチ同様の操作も行える。さらに水中に指を引き込むなど水特有の他の操作への拡張も考えられる。
なお、本実施形態では従来のサーフェスシステムと同じ上からのタッチ動作によるポインティング(選択)操作も実装した。これは必ずしも水の特徴を活かした動作ではないが、水面に物体が浮いていたら、それを触る行為は一般的に行われる動作であると考えられることから直感的な操作ともいえる。また、利用者がタッチパネルへのタッチ操作に慣れていること、入浴時に手が水面の上に出ている状況もあることなども考慮した。
2.2 水を流す(かく)(stroking)
水を手で流す(かく)動作も入浴中には一般的に行われる。実世界では水面に浮いているものを集めたり拡散させたりするのにこの動作を行う。本実施形態ではこの実世界での動作と直感的に結びつくように、水面に浮かぶ情報を集めたり拡散させたりする操作にこの動作を使用することとした。具体的には、水を流す動作をスクロールや動画の早送りや巻き戻しの制御といった情報が流れるような状況における情報操作に利用可能である。従来のサーフェスシステムにおいても、例えばサーフェス上に表示された仮想のカードを集める操作や動画の早送り・巻き戻し操作に似たようなジェスチャを使用したものがあったが、水中でのstrokingジェスチャにおいては水の抵抗による触覚フィードバックがあるため、より現実感のある操作が可能である。また、これも水面付近で手を動かすだけでいいので身体的負担も少ない。
2.3 水をすくう(scooping)
水の上に浮かぶものをすくいあげて移動するという行為も一般的である。この「選択して移動する」という動作はGUI のドラッグ・アンド・ドロップに直感的に対応する。よって本実施形態では、この動作を、水面の情報を選択して移動する操作に対応させることとした。また、水は物理的なオブジェクトであるため、実物体を持つ触覚的な感覚に加え、映像投影による視覚的な効果で情報を手のひら上で持っている感覚が得られる。よって水面に投影された情報をすくい上げて選択する操作は、従来のGUIよりも直感的な入力操作になると考えられる。
2.4 水面を叩く(dumping)
子供の水遊び時など、水面を叩く動作がよく見られる。一般的なサーフェスシステムの場合、ディスプレイ破損の危険性や利用者の痛みから叩く動作は行われない。しかし、水面ディスプレイにおいてはこれが可能である。例えば、子供が水遊びをする時に水面を全力で叩くという動作を浴室やプールの中で行っていることがある。これも水ならではの身体動作であると考えられる。叩く動作によって水面にどのような変化が起こるのかを考えると、水面が大きく波打つということがあげられる。水面が波打つことによって水面へ投影した映像が乱れるので、直感的には情報を壊すような表現になる。したがって、叩く動作は、終了や削除という操作やアプリケーションモードからトップメニューへの復帰操作に対応させることが考えられる。
3.システム構成
図2は、本実施形態のインタラクティブシステム1の基本的な構成を模式的に示したものである。図に示したように、本システム1は、白濁した水2が蓄えられた浴槽3、白濁した水面上に映像を投影するためのプロジェクタ4、水面での手指操作を撮影する深度カメラ5、プロジェクタ4と深度カメラ5に接続されたPC6からなる。本システム1では、浴槽3を白濁剤を溶かした水2で満たし、浴槽3上方に設置したプロジェクタ4により映像を投影する。また、手指認識処理に用いる深度画像を取得するために同じく浴槽3の上部に深度カメラ5を設置する。PC6では、深度カメラ5から得た深度画像から手指の認識を行い、その認識結果に基づいて、ユーザによるジェスチャ操作内容を特定し、その操作に応じた情報をプロジェクタ4に描画させる。また、このインタラクティブシステム1を利用したアプリケーション特有の処理も行う。
なお、本実施形態の白濁した水2は本発明の「不透明状態の液体」、浴槽3は「液体槽」、プロジェクタ4は「投影表示手段」に各々対応する。また、深度カメラ5とPC6で行われる手指認識とジェスチャ操作内容の特定の処理は「ジェスチャ認識手段」に対応し、PC6で行われるこれらの処理は「ジェスチャ解析部」に対応する。また、PC6で行われるジェスチャ操作に応じた情報をプロジェクタ4に描画させる処理は「表示制御手段」に対応する。
ここで、浴槽3の水面をスクリーンとして用いるために、浴槽3の中にためた水2に対して白濁剤を利用し白濁させる。白濁剤としては、例えば、大日精化工業株式会社のWMP 478 ホワイトという粉末を利用することができる。この粉末は酸化チタンに対して入浴剤用の処理を施しているため、浴用化粧品への配合が認められている。酸化チタンは白色顔料や化粧品などの原料にも広く使われ、食品添加物としても認められている材料であるため、安全性の面で優れている。
なお、白濁剤の量については、視認性が良好となる程度の量を予め実験的・経験的に求めておけばよい。本発明者による実験では、表示対象が静止画や動画の場合、水50リットルに対して13〜15グラム程度で良好な視認性が得られた。一方、表示対象が文字(11ポイント程度)の場合、水50リットルに対して55グラム程度で良好な視認性が得られた。
ここで、浴槽3の中の水2は、白濁させて完全な不透明な状態であることが好ましいが、これに限らない。例えば、完全な不透明ではなく、やや透明であるような半透明の状態でもよいし、また、白濁に限らず、灰色や生成色や泥水のような褐色を有する半透明の状態であってもよい。即ち、静止画や動画等の表示内容が視認可能に投影できる状態であればよい。
プロジェクタ4には、例えばEPSON 社製のEB-1775W を用いることができる。このプロジェクタ4の輝度は3000 ルーメンで解像度は1280 ×800 である。
深度カメラ5には、例えばMicrosoft 社製のMicrosoft Kinect を用いることができる。MicrosoftKinect はMicrosoft 社製のゲーム機であるXbox 360 向けのゲームデバイスである。RGBカメラ、深度センサ、マルチアレイマイクロフォン、および専用ソフトウェアを動作させるプロセッサを内蔵したセンサがあり、プレイヤーの位置、動き、声、顔を認識することができる。これによりプレイヤーは自分自身の体を使って、直観的にビデオゲームをプレイすることができる。本システム1では深度センサのみを用いる。深度センサは赤外線光源によりドットパターンを照射し、赤外線カメラがドットパターンを読み取る。距離によってパターンの幾何学的な形状が変化するのでその変化を演算することにより、深度情報を取得することができる。赤外線を用いていることから照明変化に対する影響に強く、照明変化のある浴室環境でも使用可能である。Kinect で取得できる深度画像の解像度は640 × 480、画像取得のフレームレートは30fps である。30fps の速度の画像取得でもリアルタイム性は保持できると考えられる。
PC 6には、例えばApple 社製のMacBookPro(Intel Core i7 2。4Ghz、 Ram: 8GB) を1台用いることができ、後述するユーザインタフェース制御プログラムなどのソフトウェアプログラムにより、画像処理とアプリケーションの両方を同時に実行している。
本実施形態では、PC 6で実行されるソフトウェアのプログラミング言語としてC ++を用いた。深度画像の取得処理のためには、例えばPrimeSense 社より公開されているOpenNI ライブラリを用いることができる。また、深度画像から手指認識を行う処理のためには、例えばOpenCV ライブラリを利用することができる。OpenCV はIntel 社により公開されているComputer Vision のための画像処理ライブラリである。アプリケーションの処理のためには、例えばOpenFrameworks を用いることができる。OpenFrameworksはOpenGL を用いたグラフィクスの描画、BGMを流すなどの音声の処理、動画の再生処理、通信などの機能が用意されており、様々な処理を容易に実装することができる。
さらに、流体シミュレーションの処理には、例えばOpenFrameworksの追加機能であるofxMSAFluid ライブラリを利用することができる。
4.手指認識処理
本システムでは水面付近での手指の動作を入力として用いる。手指を認識する手法としては、RGB カメラを用いて、肌色に近い領域を抽出し、手指を検出する手法が知られているが、照明変化の影響もあり非常に不安定である。深度カメラを用いた手法では、照明変化による影響に強いことに加えて、手指の3 次元の動きも計測できるため3 次元的なジェスチャの認識も可能となる。よって本システムでは浴槽上方の深度カメラから得られた深度画像により、手指を認識する手法を用いている。本システムでは、手と指先を区別して認識すること可能である。また、指に関しては水面下から突き出される指と水面上から水面に触る指をそれぞれ分けて認識することができるようになっている。
図3は、本実施形態における手指認識処理の概要を示したフローチャートである。まず、図3には示されていないが、事前処理としてキャリブレーションを行い、プロジェクタで投影された画像の4頂点と、深度カメラ で取得された画像の4頂点を対応させておく。次に、深度カメラから取得された深度画像(S101)に対して、あらかじめ取得された背景の深度画像と背景差分を行い(S103)、2 値化を行う(S105)ことにより、前景画像を取得する。前景画像に対してラべリングによる領域抽出を行い、面積を算出する(S107)。面積から手指を区別し、それぞれに対してトラッキングを行う(S109)。得られた手指のデータからジェスチャの認識を行い(S111)、それに基づいて結果の表示、すなわち、その操作に応じた情報のプロジェクタへの描画指示を行う(S113)。この一連の処理をシステムが終了するまで繰り返し行う(S115)。
4.1 キャリブレーション
事前の処理としてカメラ座標とディスプレイ座標との変換を行うため、射影変換を用いたカメラキャリブレーションを行う必要がある。この処理は、図4に示したように、深度カメラで取得した画像中にあるプロジェクタによる表示領域の4頂点(図4右)を、取得画像自体の4 頂点(図4左)に対応させる変換行列を用いて射影変換を行う。原画像の座標(x、 y)と変換後の座標(x′、 y′)における射影変換の一般式は次のようになる。
この式中のa0 からa8 までの9 個の独立した未知係数が得られる。射影変換を行う際には変換元と変換後の4 頂点の対応付けが行えれば、連立方程式からこれらの未知係数を求めることが可能である。検出された手指の中心の座標に対して変換行列によって変換を行うことで、水面ディスプレイでの座標と手指の中心の座標が一致する。
4.2 距離画像の背景差分と2値化
背景差分を行うためにあらかじめ深度カメラ画像の画角内に手が入っていない状態での深度画像を取得する(図5)。この時取得される深度は水面の深度である。この水面の深度画像を背景画像として用い、ジェスチャ動作中の各フレームでの入力深度画像(ジェスチャ画像;図6)と背景画像の差分を取ることで前景画像が取得できる。この前景画像では水面との差がある、つまり水面上に存在する物体が検出される。なお、図6の入力深度画像の例では、点線で丸印を付した部分に水面上の物体(手)が表されており、前景画像では、この水面上の物体が表されている。次に、ユーザの体の動きによって水面が波立ち水面の深度値が細かく変わりノイズになることに対処するために、例えば差分値が2cm以上と閾値を決めて2 値化を行う。この処理により、水面上に存在する物体の2値画像が得られる(図7)。
4.3 領域抽出と面積計算
前の処理で得られた2 値画像は複数の領域が検出されるため領域を分割する必要がある。得られた2 値画像に対し、輪郭線抽出処理を行うことで、2 値画像中の連結領域の境界をチェーンコード化し、領域の輪郭情報を検出する。図8を参照して、領域抽出するための具体的なアルゴリズムを以下に示す。
(1) 入力画像を端から順に走査し、最初に現れた物体領域を最初の輪郭画素とする。
(2) 見つけた輪郭画素と隣接する領域を左回りに調べ、先と同様に最初の物体領域を輪郭画素とする。
(3) 中心を新たに見つけた輪郭画素に移動し、再び隣接する領域を調べる。
(4) 上記の操作を開始点に戻るまで繰り返すことで得られた閉曲線を輪郭とする。
得られた輪郭領域内の画素数を取得することによって領域の面積を取得することができる。
(出典:奈良先端科学技術大学院大学OpenCVプログラミングブック制作チーム著、「OpenCV プログラミングブック」、株式会社毎日コミュニケーションズ出版、2007年9月26日、p146-147)
4.4 手と指の区別
手と水面下から出る指の区別は、抽出された領域の面積で行う。手の領域は指の領域と比較して面積が大きくなることから、単純な閾値処理によって手と指の領域を区別している。ここで用いる閾値は経験的に決めた値である。図9Aは認識対象の手(左側)と指(右側)の実際の状態を表しており、図9Bは、2値画像における手(左側)、指(右側)の領域を表したものである。
4.5 領域の重心と慣性主軸の算出方法
次に領域の中心点の算出方法について述べる。本実施形態では領域の中心座標に領域の重心を用いる。以下に領域の重心位置と慣性主軸の算出方法を述べる。これらは、画像のモーメントを用いており、座標(x, y) での画素値をf (x, y) と表すと、座標(x, y) におけるf (x, y) の(p + q) 次のモーメントは次のような式で求められる。
ちなみに、0 次のモーメントm0,0 は
となり、領域の面積を示す。重心座標を(xG, yG)とすると、領域の重心座標は以下のような式で求められる。
また、
とすると、慣性主軸の角度は、
と表すことができる。慣性主軸は図形が伸びている方向を表す特徴量であり、腕の傾きを算出できる。
4.6 手領域の切り出しの中心座標の検出
得られた腕領域画像において領域の重心座標は手首付近になってしまい、手の中心として用いることができない。そこで2 値画像の腕領域の中から手の領域だけを切り出す必要がある。そこで腕の出ている向きを利用して手の領域を検出する。腕の向き識別は、手領域が認識に利用しているエリアの各辺に接している点から10pixel 分中心に近い点までの点の中で、どの点と交差しているかにより行う。図10に方向検出のイメージ図を示す。
手が伸びている方向の末端が指先となることから、その点を基準にあらかじめ決めた手の縦幅の閾値で領域を切り取ることにより手領域を抽出できる(図11)。カメラから見える手の縦幅は手の高さによって変動するので深度値によって動的に変化させる。切り取られた手領域の重心を計算することによって手の中心座標を求める。
4.7 手指の対応づけ(トラッキング)
検出されたものを対応づける前フレームで検出された手と、現在のフレームで検出された手の対応関係を調べる。直前のフレームから今のフレームで検出された手の位置に近い手を探すことで、手の対応づけが行うことができる。まず前フレームで検出されたすべての手の位置と、現在のフレームで検出された全ての手の位置の距離をそれぞれ調べ、5cm以内のもっとも位置の近い手を同じ手として判断する。また、現在のフレームで検出された腕について、前フレームにおいて位置の近い手が発見できなかった場合には、これを新しく検出された手であるとみなす。逆に、前フレームで検出された腕で、現在のフレームで位置の近い腕が見つからなかった場合は、この腕は無くなったものとみなす。これを行うことで、手が複数本検出された場合にもそれぞれ個別に手の追跡が可能である。
突出した指や水面上から接触した指についても同様の処理で前フレームとの関係性から対応付けを行う。指の場合は2 本指を突き出すような動作を考えると検出される2 本の指間の距離が近くなることが予想されるので、前フレームと比較し2cm 以内で最も位置の近い指を同じ指として判断する。
4.8 水面変化によるノイズへの対応
ユーザが浴槽内にいる場合、ユーザの体の動きによって水面の深度値は細かく変化してしまうので、背景差分によって得られた2 値画像にノイズが発生してしまう。このような細かいノイズは水面下から突き出した指として誤認識してしまう可能性があり問題である。水によるノイズは現フレームで検出されていたとしても、数フレーム後には検出されなくなる一方で、指は随時検出され続けるので、0.2 秒以上検出され続けた領域を指領域として認識することにしている。
4.9 背景画像の更新
入浴者の体の動きによって背景差分の基準面である水面の深度値が変化するので、背景差分ができなくなってしまう。例えば、肩まで浸かっている状態から上半身を水面上に出した場合は、水位が急激に下がるので深度値が変化してしまう。この問題に対処するために、認識に使用している領域の8 割以上が背景の深度値と比較して3cm 以上変化している場合深度画像を取得し、背景画像を更新する。これにより、お湯につかる、体を出すなどの水面の全体的な深度が急激に変わる場合に対処可能となる。
5.ジェスチャの種類とその認識アルゴリズム
本システムでは、第2項で検討した水面付近における身体動作をインターフェースとして用いるためにどのように実装するのかを述べる。具体的には、手指認識で得られる、手の中心座標、手の深度情報、手の面積の大きさ、水面から突き出した指の中心座標、水面下から突き出した指の深度情報を利用し、以下のジェスチャの認識を行う。
5.1 水面下から指を突き出すジェスチャ
指を使った動作は操作点が小さいので水を流す動作やすくう動作と比較して細かい操作が行える。例えばアイコンを突き刺すことによるGUI を用いた操作ということも可能である。突き出した指は複数本検出できることからジェスチャとして考えられるのは、マルチタッチスクリーンにおけるマルチタッチジェスチャと似た操作である。指を1本突き出すことによるポインティングや指を2 本突き出すことによるピンチのジェスチャを本システムでは用いることにする。検出アルゴリズムとしては、指認識で得られた結果から指それぞれにID を割り振り、対応付けられた指のデータからアイコン上で指が何本突き出されているかを認識する。対応付けられた指の前フレームと今のフレームの座標差から移動量を算出することでジェスチャの認識を行っている。
5.2 水を流すジェスチャ
水面付近の身体動作において、水を流す動作は非常に自然な動作でありスクロールや情報の全体的な移動、動画の制御などに利用することにする。水を流す動作において、手の下部は水の中に入っていて、上部は水面上に出ており、手は傾いている状態である。よって認識において手の深度が水面付近であること、傾いていることの判定と手の中心座標の動きの推移が重要な要素になってくる。本システムでは実装として、手の座標、深度、面積を用いて認識を行う。
図12 に認識処理のフローチャートを示す。以下に認識処理の流れを説明する。まず、認識された手のデータから水面からの深度が6cm 以下の手領域を探す。手を傾けていない場合と比べて傾いている際には手の領域面積が小さくなるため傾けているかどうかが判断できるため、この領域の中で面積の大きさが一定の閾値以下のものを探す。この状態になった時に手の中心位置の前フレームと現フレームの差を比較してどちらの方向に手が動いたのかを算出し、水を流している方向として用いる。
さらに、水を流すジェスチャの認識処理について、図12のフローチャートを用いて詳細に説明する。
まず、PC6は、手指認識を行うことにより、手の中心座標、手の深度情報、手の面積の大きさを取得する(S201)。
そして、取得した手の深度情報に基づいて、手が水面近くにあるか否かを判定する(S203)。具体的には、取得した手における水面からの深度が6cm以下の画像あれば手が水面近くにあると判定する。
S203において、手が水面近くにあると判定された場合(YES)、手が傾いているか否かを判定する(S205)。例えば、手の領域を囲む矩形のアスペクト比(ここでは、短辺の長さに対する長辺の長さの比)が所定の閾値Th1以上であれば、手が傾いていると判定し、短辺の長さに対する長辺の長さの比が所定の閾値Th1未満であれば、手は傾いていないと判定する。
S205において、手が傾いていると判定された場合(YES)、前フレームにおける手の中心座標と現在のフレームにおける手の中心座標とを比較することにより、前フレームとの距離差を算出すると共に、手が移動した方向を特定する(S207)。前フレームとの距離差があれば、前フレームにおける手の位置から現在のフレームにおける手の位置まで手が移動していると判定できる。
そこで、PC6は、流すジェスチャを使用する(S209)。これにより、後述するように、流体シミュレーションを用いることで、流すジェスチャに応じて水面に表示された情報が流れるように移動させることができる。
このように、S201〜S211の処理を繰り返し実行することにより、水を流すジェスチャを認識することができる。
5.3 水をすくうジェスチャ
水面付近での身体動作において、水をすくう動作は非常に自然な動作であり、水面に浮かんでいる物体を移動するというドラッグの操作に用いることとする。人間が水をすくう動作を行う際には、初めに水面付近で両手を合わせることで手の中に水をため、その後手を水面上に動かすことですくいあげる。両手を合わせた状態のまま手の位置を動かすことで移動を行い、両手を離すことで水を望んだ位置に流し落とすという一連の流れですくい流すという動作を行っている。この動作を画像処理によって認識する手法を以下に説明する。
図13に認識処理のフローチャートを示す。まず、すくい動作の認識手法を述べる。すくい動作を認識する上で利用する情報は手の深度値と領域面積である。すくい上げを開始の際には、手の深度値が水面付近になることに加えて、手を合わせた状態において認識される手の面積は片手の場合と比較して非常に大きくなる。よって、水面からの深度が6cm以下かつ、領域面積が閾値以上になった時にすくい上げている状態として認識し始める。ここで用いる閾値は両手を合わせた時の領域面積から経験的に決定した値である。すくい上げている状態の間はすくい上げた情報の中心座標を手のひらの中心座標に更新することで手の上に情報が表示される。次に、流し落としの認識手法について述べる。水を流し落した時には、片手の手領域が2 つ検出される。よって検出される領域面積が手を合わせた時と比べて小さくなるので、領域面積が両手領域での閾値以下になった時に流し落としたと認識し、すくい上げ状態を終了する。
さらに、水をすくうジェスチャの認識処理について、図13のフローチャートを用いて詳細に説明する。
まず、PC6は、手指認識を行うことにより、手の深度情報、および手の面積の大きさを取得する(S301)。
そして、すくい上げている状態か否かを判断するフラグScoopFlgが“True”になっているか“False”になっているかを判定する(S303)。初期値としてはScoopFlgは、“False”に設定されている。
ScoopFlgが、“False”に設定されている場合、PC6は、取得した手の深度情報に基づいて、水面近くに手があるか否かを判定する(S305)。具体的には、取得した手における水面からの深度が6cm以下の画像あれば手が水面近くにあると判定する。
S305において、水面近くに手があると判定された場合(YES)、取得した手の面積の大きさに基づいて、両手を近づけた状態か否かを判定する(S307)。具体的には、手の領域面積が所定の閾値Th2以上の場合、両手を近づけた状態であると判定し、手の領域面積が所定の閾値Th2未満の場合、左右の手が離れた状態であると判定する。
S307において、両手を近づけた状態であると判定された場合(YES)、水をすくい上げている状態に入ったと判断できるので、PC6は、ScoopFlgを“True”に設定する(S309)。
そして、システムが終了していない場合(S320;NO)、処理をS301に移行した後、再度、ScoopFlgが“True”になっているか“False”になっているかを判定する(S303)。このとき、S309において、ScoopFlgが“True”に設定されているので、処理をS311へ移行する。
S311において、PC6は、S307の処理と同様に、取得した手の面積の大きさに基づいて両手を近づけた状態か否かを判定する。
S311において、両手を近づけた状態であると判定された場合(YES)、水をすくい上げている状態が継続していると判断できるので、PC6は、すくい上げ状態での処理を実行する(S313)。
一方、S311において、両手を近づけた状態ではない判定された場合(NO)、両手が離れた状態と判断できるので、PC6は、両手から水が流れ落ちる状態、すなわち流し落としとして認識し(S315)、ScoopFlgを“False”に設定する(S317)。
5.4 水面をたたくジェスチャ
水面を叩くジェスチャは終了や削除といった操作に利用する。人間が叩く動作を行う際はまず予備動作として叩く面の上方で手を静止させる。その後、勢いよく水面に向かって手を動かす。この一連の流れで叩く動作は行われる。この流れを画像処理により認識する。
図14に認識処理のフローチャートを示す。まず、叩く動作の待機状態の検出手法について述べる。叩く動作を行う前の手の状態は水面の上方で手のひらが水平になっている。このことから、手の深度が水面の深度より15cm 以上高い状態で、面積が閾値以上になった時に叩く動作の待機状態であるとして検出する。ここで用いる閾値は、手を水平にした時の領域面積から経験的に設定した。また、手の高さによってカメラから見える手の領域面積は変動するので高さによって閾値を変動させている。
叩き動作の検出については、予備状態になってから高速で水面に手を近づけるので、予備状態が検出されてから1 秒以内の動作を用いて検出を行う。この時間内において、手の深度が水面から5cm 以内かつ10 フレーム前と現在の手の深度の差が5cm 以上になった時に叩くジェスチャと判定する。
さらに、水面をたたくジェスチャの認識処理について、図14のフローチャートを用いて詳細に説明する。
まず、PC6は、手指認識を行うことにより、手の深度情報、および手の面積の大きさを取得する(S401)。
そして、たたくジェスチャが待機状態であるか判断するフラグBangReadyが“True”になっているか“False”になっているかを判定する(S403)。初期値としてはBangReadyは、“False”に設定されている。
BangReadyが、“False”に設定されている場合、PC6は、取得した手の深度情報に基づいて、手の深度が水面から15cm以上離れているか否かを判定する(S405)。
S405において、手の深度が水面から15cm以上離れていると判定された場合(YES)、取得した手の面積の大きさに基づいて、手が水面に対して水平になっているか否かを判定する(S407)。具体的には、手の領域面積が所定の閾値Th3以上の場合、手が水面に対して水平になっていると判定する。
S407において、手が水面に対して水平になっていると判定された場合(YES)、水面を叩くために待機している状態、即ち、水面をたたくジェスチャに入ったと判断できるので、PC6は、BangReadyを“True”に設定する(S409)。
そして、システムが終了していない場合(S430;NO)、処理をS401に移行した後、再度、BangReadyが“True”になっているか“False”になっているかを判定する(S403)。このとき、S409において、BangReadyが“True”に設定されているので、ここでは処理をS411へ移行する。
そして、S411において、待機状態になってから1秒以内であれば(S411;YES)、PC6は、取得した手の深度情報に基づいて、水面近くに手があるか否かを判定する(S413)。具体的には、取得した手における水面からの深度が6cm以下の画像あれば手が水面近くにあると判定する。
S413において、水面近くに手があると判定された場合(YES)、手が待機状態にあった位置から水面まで降下したことになる。
そこで、PC6は、数フレーム前における手の深度と、現在のフレームにおける手の深度との差が大きいか否かを判定する(S415)。
S415において、数フレーム前における手の深度と、現在のフレームにおける手の深度との差が大きいと判定された場合(YES)、手が勢いよく水面に向かって降下されていると判断できるので、PC6は、叩くジェスチャを使用する(S417)。これにより、後述するように、流体シミュレーションを用いることで、叩くジェスチャに応じて水面に表示された情報が乱れる様子を表現することができる。
そして、PC6は、BangReadyを“False”に設定する(S419)。
一方、S411において、待機状態になってから1秒を越えると(S411;NO)、叩くジェスチャではなく、単に手が待機しているだけであると判断できるので、PC6は、BangReadyを“False”に設定する(S421)。
5.5 水面上からのタッチの検出
本システムでは、水面下からの指の突出しと水面上からのタッチを区別して認識可能である。水面上からのタッチの検出方法を以下に述べる。
水面上からのタッチにおける指の領域は抽出された手の領域中に含まれていることに加え、深度値は水面に近い値になっている。よって手領域中にある領域の中で水面からの深度が2cm から4cm 以内で、面積が指認識のための閾値以下であれば上部から接触した指であるとして認識を行う。タッチ位置は指領域の中心座標を用いることにする。
6.流体シミュレーション
本システムでは水面をディスプレイとして用いていることから、投影される個々の情報を実物体が浮遊するように表示することで、実物体(水や浮かんでいるもの)と仮想物体(投影される情報)を一体化した拡張現実感を得られるのではないかと考えられる。既存のテーブルトップディスプレイにおいては物理シミュレーションを適応することにより実世界に近いインタラクションを行うことが提案されている。そこで、水環境においては流体シミュレーションを適用することでリアルな情報提示を試みる。流体シミュレーションの様子を図15に示す。
本システムでは水面に情報が表示されるので、情報が水面に浮かんでいるとユーザに知覚させることができる。浮かんでいる情報に対して流体シミュレーションを適応することによって、シミュレーションの結果に伴い情報が流れるように移動するので、水を流すことによって移動させるといった水面に浮いている実物体に対する操作と同等なことをデジタルな情報に対しても行える。インタラクションとして、左から右に大きく流す動作をすると情報全体が右に流れたり、水をかき集めるように手を動かすことで情報を一気に集めたりすることが可能になる。本システムでは流体シミュレーションのためにOpenFrameworks の追加機能であるofxMSAFluid ライブラリを利用するが、他の公知の手法を用いてもよい。このライブラリでは仮想的な流体を用い、粘性や拡散のスピードを指定して、2次平面上での流体シミュレーションを行うことができる。処理としても十分にリアルタイムで動作するので、本システムに導入するのに好適である。
流体シミュレーションによる処理の流れを以下に示す。
(1) 流す動作による流体の追加
(2) 流体の更新
(3) シミュレーション結果の適応上の処理を毎フレーム繰り返し行うことにより、表示された情報へ流体シミュレーションを適応している。入浴時において水の流れは手で流す動作により生成されているので、流すジェスチャを流体の追加に用いる。流すジェスチャが検出されたら、手領域の各ピクセルの座標に流体を追加する。この時の流体の初期スピードは前フレームと現フレームの差を用いている。その後、粘性や拡散のパラメータに応じて流体の座標と進行方向のベクトルが変化する。流体シミュレーションでは各座標での流れのベクトルが取得できるので、流体シミュレーションを適応するオブジェクトの座標での流れのベクトルを用いて、オブジェクトの座標を更新する。これらの処理により、水面上に浮いている情報が水の流れに沿って移動するような表現が可能となる。
7.アプリケーション
以下では、本システムを用いた応用例について説明する。
7.1 ウォータートップ
現在のPC の一般的ユーザインタフェースであるデスクトップシステムでは情報がアイコンとして表示されており、各アイコンをマウスや指によって操作する。このデスクトップにおけるメタファーを水面に拡張したウォータートップシステムを実現する。従来のデスクトップでは一定の位置に情報が表示され続けるが、ウォータートップでは、流体シミュレーション機能を利用し、水の流れに応じて情報が水面を浮遊しているように表示される。また、浮遊している情報を手指のジェスチャ入力によって選択や消去、フルスクリーンでの閲覧が可能になっている。なお、表示に利用した情報は静止画像と動画を用いた。ウォータートップの外観を図16 に示す。図16の左側はメインモードのトップメニューを示している。トップメニューに表示されている情報をすくい、再生用のアイコンに流し落とすことによって、トップメニューから、図16の右側のフルスクリーンモード(アプリケーションモード)へ遷移し、叩くジェスチャによってフルスクリーンモードからトップメニューへ遷移する。トップメニューとフルスクリーンモードではそれぞれ手指の動作によってインタラクションが可能となっている。例えば、トップメニューに表示されているアイコンをすくい、フォルダアイコン、ゴミ箱アイコン等に落とす操作ができる。
なお、本発明者は、実験により、水面に表示されるアイコン等のオブジェクトの大きさは直径3cm程度あれば十分に選択操作が可能であるとの知見を得ている。
以下、各モードでのインタラクションについての詳細に述べていく。
7.1.1 指の突出しを利用したインタラクション
指の突出しはポインティングの操作に用いている。流すやすくうなどは動きが大きい動作であるので細かい操作を行うのには適していない。よって指の突出しはポインティングによるファイルへの細かい操作に用いることにする。また、複数本の指を用いたマルチフィンガーでのジェスチャが可能である。
表示された画像や動画の下から指を一本突き出すことによって、そのファイルを選択し移動することができる。水面上に浮いている情報を水面下から指で突き刺し、突き刺したまま移動するような操作方法になっている(図17)。また、動画像の下から指を2 本突き出し、各指間の距離を変える動作は画像のズームに用いることにする。この動作はマルチタッチディスプレイにおけるピンチングジェスチャに近い動作である。操作イメージとしては、画像や動画を2 本指で突き刺し、指間の距離を広げることで拡大(図18;左から右へ)、縮めることで縮小(図18;右から左へ)といった操作に用いる。また、写真や動画の下から突き出されている指の本数に応じて画像周りの枠の色を変えることで(例えば1本なら赤、2本以上なら青)、ユーザに指の本数を認識させることにした。
また、停止、音量の調整や再生位置の細かい操作についてはアイコンやスライダを指の突出しによるポインティングで操作する。
7.1.2 流す動作を利用したインタラクション
流すジェスチャによって流れを追加し、流体シミュレーションを画像や動画に適応することで、一度に情報全体を移動させることが可能である。例えば、水をかき集める動作を行うことで情報が自身の手元に集まったり、左から右に流すことによって右側に情報をすべて集めたりといった操作が可能である(図19)。また、流体シミュレーションによって自動的に情報が動くので、情報が水面に浮かんでいるような表現が可能となっている。これにより、実世界に近い自然な情報表示が行えるので、ユーザに実世界とバーチャルがシームレスにつながった情報提示が実現できていると考えられる。
また、アプリケーションモード、特に動画のフルスクリーン再生時には、この動作によって動画の早送り、逆送りが行える。具体的には、右方向に流すと動画が先に進み(図20;左から右へ)、左方向に流すと動画が戻る(図20;右から左へ)。動画が再生していく過程は情報が流れているようなものであるため、水を流す動作により、早送りや巻き戻しを行うというのは直感的で分かりやすい操作であると考えられる。なお、このジェスチャは直感的な操作ではあるが、細かな動画のフレーム制御には向かない。そこで下方にスライダをも表示し、前述の突出し動作によるポインティング操作でスライダを操作し、動画のフレーム移動ができるようにもなっている。
さらに、トップメニューで表示されていた画像を流すジェスチャでスクロールしながらフルスクリーンで閲覧することができる。
7.1.3 すくう動作を利用したインタラクション
すくうジェスチャは情報を特定の場所へ移動する操作に用いる。情報をすくって再生アイコンに流し落とすことで動画の再生、フォルダに流し落としフォルダ内に移動、浴槽外に流し落とすことで削除といった操作を実装した。図21にすくう動作によって動画の閲覧を開始するまでの流れを示す。すくい上げの判定に関しては、すくうジェスチャが認識された時に、オブジェクトが手領域の中に存在すればそのオブジェクトをすくい上げたと判定した。流した落した際の情報の座標はジェスチャの検出が終了する1フレーム前の手の座標を用いた。
7.1.4 叩く動作を利用したインタラクション
アプリケーションモードにおいて叩く動作を行うと、水面の表示が乱れるので、その映像がもういらないものであるという直感的イメージに基づき、そのアプリケーションが終了し、ウォータートップのメインモードに戻る。
7.2 ゲーム
スマートフォン等の情報機器で人気のあるアプリケーションの1つはゲームであろう。
本システムの目的は、浴室にスマートフォン等を持ち込まなくても同等なことができる環境の実現であるから、複数のゲームの実装も行った。その際、今までのコントローラを利用したゲームとは違う水特有のインタラクションを利用するようなコンテンツを開発した。
7.2.1シューティングゲーム
水面下から指の突出しと指を倒す動作により自身の指から弾を発射し、敵に当てるシューティングゲームを作成した(図22)。指を水面上に突き出すと指の周りをまとうようにエフェクトが表示され、この状態のまま指を倒すと倒した方向に弾を撃つことができる。弾を撃つことによって画面上に現れる敵を倒して遊ぶことができる。また、実物体(例えば、お風呂で使用される子ども用のアヒルのおもちゃ)を敵(攻撃対象)として利用することにより、よりリアリティのあふれるゲームが実現できる。このとき、実物体はカメラで位置をトラッキングしており、攻撃操作に対して、その位置に応じた反応をする。指の認識は何本でも可能で、多人数で同時に遊ぶことも可能である。
弾の発射については検出された指が倒れたことを認識して行っている(図23)。指を突き出すと指にエフェクトが表示される。この時に弾が発射可能な状態になっている。指を倒す動作を行うと指が水面下に消えるので、指の検出が終了する。この挙動を利用し、指の検出が終了する直前の指の座標と消える10 フレーム前の指の座標の差を取ることにより、弾が発射される方向と速度を決定している。
7.2.2 金魚すくいゲーム
水面上に表示される金魚を時間内に何匹すくえるかを競うゲームを作成した。金魚すくいは水の中の金魚をすくいあげるゲームなので、実際に手ですくって、落とすことができるという点で実世界のゲームをデジタル技術で再現できている。また、すくうという水の特性を活かした入力を有効活用できている。さらに、CG の仮想的な金魚を、実際の水とともに手ですくうという操作が、実世界と仮想世界を融合したゲームとして実現されている。図24にゲームを行っている様子を示す。
すくいジェスチャの認識時に手のひらの領域内に金魚がいるかどうかですくったかどうかを判定している。すくった状態のまま表示された桶の上で、手を広げて流し落とすことで捕まえた金魚の数をカウントする。
7.2.3 流す動作を利用したホッケーゲーム
流すジェスチャによって流体シミュレーションの流れを作り、水面に浮かんでいるボールを敵のゴールにいれるという対戦型のホッケーゲームを作成した。流体シミュレーションの結果に基づいて、流れに乗ってボールが動くので本当に水面に浮いている物体を流しあっているような感覚が得られる。流体シミュレーションによる流れの表現と水を流すという水特有の入力を利用することにより、水環境特有の新しいゲームが作成できた。図25にゲームを行っている様子を示す。
このゲームでは、流す動作により、流体シミュレーションに流れを追加する。ユーザは手を動かし、流れを作るという非常にシンプルな入力でゲームを遊ぶことができる。
7.2.3 火の玉シューティングゲーム
両手を用いて火の玉を飛ばすことで敵を倒すゲームである、火の玉シューティングゲームを実現することができる。
図26は、浴槽3の水面上にある手を上方から見た図であり、火の玉シューティングゲームにおいて、火の玉を飛ばす動作を説明した図である。(a)は、両手の準備動作を示しており、(b)は、火の玉を飛ばしている様子を示している。
図26(a)に示すように、水面上で右手11aと左手11bとを水面に対して傾けた状態で、右手11aをA1方向に移動すると共に左手11bをA2方向に移動し、図26(b)に示すように、手の付け根である両手の手根部を合わせた状態で数秒間維持する。このとき、PC6は、右手11aおよび左手11bそれぞれに対して、手の領域を囲む矩形のアスペクト比(ここでは、短辺の長さに対する長辺の長さの比)が所定の閾値Th1以上であれば、手が傾いていると判定し、この傾いている2つの手が接触して数秒間維持することで、火の玉発射の準備が整ったと判定する。
そこで、PC6は、右手11aおよび左手11bの手の平の近傍の位置に、火の玉12aを投影させる。このとき、初めは小さい円形状の火の玉とし、除々に直径を大きくして投影させてもよい。
そして、右手11aおよび左手11bが、押し出すようにB1方向に移動されると、PC6は、流体シミュレーションを用いて、火の玉12aをB3方向に移動させ、火の玉12bに示すように、右手11aおよび左手11bから離れさせる。これにより、右手11aおよび左手11bから火の玉12aが発射される。
このように、右手11aおよび左手11bの動きに応じて、火の玉12aを水面上に投影し、発射させることにより、火の玉シューティングゲームを実現することができる。
また、図示しないが、火の玉が発射された先に、敵キャラクターを投影させ、火の玉が敵キャラクターに命中すると、敵キャラクターが爆発した映像を投影した後、敵キャラクター消去するようにしてもよい。
さらに、火の玉が敵キャラクターに命中した際、敵キャラクターの爆発を模擬して、水面から水しぶきをあげるようにしてもよい。
図27は、水しぶきをあげるように構成した浴槽3の平面図である。
図27に示すように、浴槽3の底面には、複数の爆発エフェクト用スピーカ3aと、複数の触覚フィードバック用スピーカ3bとが設置されている。図示しないが、これらのスピーカは、PC6と電気的に接続され、PC6からの指示にしたがって、振動を発生する。
爆発エフェクト用スピーカ3aは、PC6からの指示にしたがって、火の玉が敵キャラクターに命中した際、オンする。
触覚フィードバック用スピーカ3bは、PC6からの指示にしたがって、火の玉が発射されたときに、オンする。
図28は、水しぶきをあげる状態を説明した図である。
図28に示すように、具体的には、爆発エフェクト用スピーカ3aのそれぞれには、水面と平行な平面(x−y平面)において、所定の命中領域3aaが設定されている。そして、PC6は、敵キャラクターを水面上に表示しているときに、火の玉12aの位置座標が、敵キャラクターが表示されている命中領域3aa内に入ったと判定した場合、火の玉12aの位置座標が入った命中領域3aaに対応する爆発エフェクト用スピーカ3aをオンにする。これにより、爆発エフェクト用スピーカ3aから振動が発生し、この振動により爆発エフェクト用スピーカ3aの上方の水面から水しぶき2aが発生するので、まるで、火の玉が敵キャラクターに命中したときに、爆発して水しぶき2aがあがったような演出を行うことができる。
さらに、触覚フィードバック用スピーカ3bのそれぞれには、水面と平行な平面(x−y平面)上において、所定の触覚領域3baが設定されている。そして、PC6は、火の玉12aを発射したときの手の位置座標が触覚領域3ba内に入ったと判定した場合、火の玉12aを発射した位置座標を含む触覚領域3baに対応する触覚フィードバック用スピーカ3bをオンにする。これにより、触覚フィードバック用スピーカ3bから振動が発生し、この振動が火の玉12aを発射した手に伝わるので、ゲームのユーザは、発射したときの衝撃を体感することができる。
なお、触覚フィードバック用スピーカ3bは、指向性スピーカを用いてもよく、この場合、火の玉12aを発射したときの手の位置座標が触覚領域3ba内に入ったと判定した場合、触覚領域3baの近傍に設けられた触覚フィードバック用スピーカ3bをオンにすることにより、火の玉12aを発射した位置座標を含む触覚領域3baに向かって発振する。これにより、複数の触覚フィードバック用スピーカ3bを用いて、ゲームのユーザに振動を伝えることができるので、ユーザに対してより効率的に火の玉を発射したときの衝撃を感じさせることができる。
8.まとめ
以上のように、本実施形態のインタラクティブシステムは、浴槽内の水面を大型ディスプレイとして用い、入浴時の身体動作を入力として利用した対話的な水面ディスプレイシステムであり、浴室環境における新たな情報との対話手法が実現される。特に、単に従来のインタラクティブサーフェスにおけるマルチタッチ技術をそのまま適用するのではなく、水中での手指の動作に着目し、これを情報入力に適用した結果、自然で直感的な対話が実現できる。また、流体シミュレーションの導入は、手指の動きに応じて表示される仮想物体が浮遊する感覚を与えることができる。さらに、水を流すジェスチャで情報を移動させるという自然な対話機能を実現できる。さらにまた、ジェスチャの認識のために深度カメラによる画像を用いていることから、特殊なセンサやマーカをユーザが装着する必要がなく、入浴時に拘束感を与えないシステムとなっている。また、システムの構築に際して、赤外線光源や特殊なセンサを浴槽に組み込む必要がなく、プロジェクタと深度カメラを設置すればよいだけなので、比較的容易にシステムを導入することができる。
9.変形例1
本実施形態において、白濁剤は前述のものに限定されず、表示の視認性が確保される程度の不透明状態を生じさせ得るものであれば他の白濁剤でもよい。また、特許文献2、3のように気泡を用いてもよい。
本実施形態では、ジェスチャ認識のために、赤外線を用いた深度カメラを用いたが、ステレオカメラを用いて水面の位置(浴槽の深さ方向)やユーザの手指の位置を測定するようにしてもよい。
本実施形態において、ジェスチャ認識の際に機械学習や手領域の深度分布を利用することにより、認識精度の向上を図ってもよい。
本実施形態では、キャリブレーション時にある一定の水位の時に射影変換によるカメラとプロジェクタの座標系を一致させている。しかし、入浴時には入浴者の体の動きによって水位が変化するため、キャリブレーションがずれてしまい正確な入力ができなくなる問題がある。この問題は深度カメラとプロジェクタの画角と得られる水面の深度値から変換行列を算出し、動的にキャリブレーションを行うことで解決できると考える。
本実施形態で前提とした浴室において、子供が湯船に浸かりながらおもちゃで遊ぶことは非常に自然な行動である。よって入浴時においておもちゃなどの利用は十分に現実的であり、実物体をタンジブルインタフェースとして利用することで、より実世界と情報の垣根を感じさせないシステムの構築が可能であると考えられる。例えば、スポンジで水を吸う動作で情報を吸い取り、絞ることで移動することでより直感的な操作が可能になりうる。また、シューティングゲームにおいておもちゃ自体を自機として操作することで、ゲーム内に実物体が入り込んでいる感覚をユーザに与え、没入感の向上も期待できる。本システムではシューティングアプリケーションで実物体を敵の代わりとして用いていたが、入力としては利用していなかった。利用しなかった理由としては、実物体を手で持つと手の領域と実物体の領域が混合してしまい、手との切り分けができなくなってしまったためである。対処法として、RGB カメラを導入し物体の色情報を組み合わせて検出を行う手法、深度値から得られた形状データからマッチングをして検出する手法などが考えられる。
本実施形態では、ウォータートップとゲームへの応用例を挙げたが、教育への応用も考えられる。具体例としては、水面上に表示されているアルファベットを並び替え、単語を作るとその単語が意味する内容の絵に変化するといったインタラクティブ性を活かした教育用アプリケーションが考えられる。
本実施形態では浴室環境を前提としていたが、プールやアミューズメントパークでの利用ということも考えられる。本システムを導入することで、プールに入っている人同士でゲームをしあえるなどプールに新しいエンタテインメント性を付け加えることが可能であると考えられる。認識も本システムの認識手法を改良することで、人物のトラッキングと手の認識を利用した簡単なジェスチャによる操作が可能であると考えられる。また、アミューズメントパークへの設置を考えると、水を利用したアトラクションがいくつかあるが、これにインタラクティブ性を付加させると人の興味をより惹きつけられるアトラクションを作成できるのではないかと考えられる。
上記実施形態およびその変形例はあくまでも例示であり、上記のすべての説明が本発明の技術的範囲を限定的に解釈するために利用されるべきものではない。また、上記の実施形態におけるハードウェア構成や制御や処理内容等に対して、本発明の趣旨から逸脱しない範囲で様々な改変を行ったものも、本発明の技術的範囲に含まれる。
10.変形例2
本実施形態では、
(a) 浴槽の水面を情報表示領域とし、ここで文字、画像、動画情報を閲覧する。
(b) 表示された情報を手指ジェスチャで操作する。その際、水の特徴を活用したインタラクションを設計する。
ことを前提としたインタラクティブシステム(ユーザインタフェース装置)について説明したが、これに限らない。
浴槽3の水面を情報表示領域とする替わりに、液体を落下させることにより平行な平面を形成するとともに、平行な平面の間に不透明状態の気体を充満させた液体平面形成手段を備えるようにしてもよい。なお、ここでは、落下させる液体は不透明状態の液体として説明するが、不透明であっても透明であってもどちらでもよい。
本発明の実施形態の変形例2では、不透明状態の液体を落下させることにより平行な平面を形成するとともに、平行な平面の間に不透明状態の気体を充満させた液体平面形成手段を備え、シューティングゲームを提供するゲーム装置に適用したインタラクティブシステム(ユーザインタフェース装置)を例に挙げて説明する。
図29および図30は、本発明の実施形態の変形例2の構成を示した図である。なお、本発明の実施形態の変形例2の構成のうち、本発明の実施形態として説明したユーザインタフェース装置が備える構成と同一符号を附した構成については、それぞれ同一であるので、説明を省略する。
図29に示すように、本発明の実施形態の変形例2のユーザインタフェース装置は、浴槽3に、ポンプ51が備えられており、ポンプ51の駆動により浴槽3内に貯留された白濁剤により白濁した水2がくみ上げられ、配管52を経由して液体平面形成手段53に供給される。
液体平面形成手段53は、ポンプ51の駆動により浴槽3内からくみ上げられた白濁した水2を落下させることにより平行な平面61,62を形成する水落下部53aと、水落下部53aにより形成された平行な平面61,62の間に、不透明状態の気体を充満させる加湿器53bとを備えている。ここで、不透明状態の気体は、例えば、白色のミストを含む気体などであり、不透明であればよい。
このように、不透明状態の液体を落下させることにより平行な平面を形成するとともに、平行な平面の間に不透明状態の気体を充満させた液体平面形成手段53を備えているので、ユーザAの正面に、平面61が矩形の情報表示領域として出現することになる。
そして、プロジェクタ4は、PC6の指示に基づいて、矩形の情報表示領域として出現した平面61に、様々な映像を投影する。
また、図30に示すように、本発明の実施形態の変形例2のユーザインタフェース装置は、エアコンプレッサ55と、空気放出筒81,82と、電磁弁71〜74と、エアシリンダ91と、ひよこキャラクター92と、空気砲93と、制御装置7と、PC6と、プロジェクタ4と、スピーカ41とを備えている。
エアコンプレッサ55は、空気を圧縮することにより高圧エアを生成し、チューブなどにより接続された電磁弁71〜74に高圧エアを供給する。電磁弁71〜73は、制御装置7からの指示により開閉され、電磁弁74は、三方弁であり制御装置7からの指示によりオン/オフされる。
エアシリンダ91と、ひよこキャラクター92とは、ユーザAから見て平面61,62の背面に設けられている。ひよこキャラクター92は、エアシリンダ91のシリンダ軸の先端に取り付けられ、エアシリンダ91に対して前後にスライド移動するように設けられている。
制御装置7の指示により、電磁弁74がオンされると、エアコンプレッサ55からの高圧エアがチューブ74aにより供給され、高圧エアの押圧力によりエアシリンダ91のシリンダ軸が前方へスライド移動する。これにより、ひよこキャラクター92が平面61,62を突き抜け、ユーザA側に出現する。また、電磁弁74がオフされると、エアコンプレッサ55からの高圧エアがチューブ74bにより供給され、高圧エアの押圧力によりエアシリンダ91のシリンダ軸が後方へスライド移動する。これにより、ひよこキャラクター92が平面61,62の背面位置に戻される。
また、空気砲93も、ユーザAから見て平面61,62の背面に設けられおり、制御装置7の指示により、電磁弁73が開されると、エアコンプレッサ55からの高圧エアを平面61,62に向かって放出する。これにより、高圧エアが平面61,62を突き抜け、水しぶきがユーザAまで到達することになる。
空気放出筒81は、空気砲83と、カメラ85と、スイッチ87とを備えており、ユーザAの手に装着可能に構成されている。なお、空気放出筒81と空気放出筒82とは同一構成を有するので、ここでは、空気放出筒81について説明する。
空気砲83は、空気砲93と同一構成を有しており、制御装置7の指示により、電磁弁71が開されると、エアコンプレッサ55からの高圧エアを平面61,62に向かって放出する。これにより、高圧エアが平面61,62を突き抜けることになる。
カメラ85は、矩形の情報表示領域である平面61の四隅に設けられたLEDランプ63a〜63dが発光したLED光を撮像し、撮像した画像データをPC6へ送信する。PC6は、受信した画像データに基づいて、LEDランプ63a〜63dの位置を算出し、この算出したLEDランプ63a〜63dの位置に基づいて、空気放出筒81の向きを算出する。
スイッチ87は、ユーザAの操作により、オン/オフ信号を制御装置7に供給する。
制御装置7は、スイッチ87,88からのオン/オフ信号や、PC6からの指示に基づいて、電磁弁71〜74の動作を制御する。
プロジェクタ4は、液体平面形成手段53により形成された矩形の情報表示領域である平面61に、例えば、ゲーム画像のなどの映像を投影する。投影される平面61,62は、上述したように、不透明状態の液体を落下させることにより形成され、この平行な平面の間に不透明状態の気体が充満されている。そのため、プロジェクタ4からの投影画像は、平面61,62を透過することなく、平面61上に反射されて投影される。
スピーカ41は、PC6からの指示により、例えば、ゲーム音楽や、あひるの会話などの音声を出力する。
次に、本発明の実施形態の変形例2のユーザインタフェース装置におけるシューティングゲームのゲーム開始準備処理の処理手順を説明する。
図31は、本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームのゲーム開始準備処理の処理手順を示したフローチャートである。
図31に示すように、まず、PC6は、プロジェクタ4から、例えば、「Sキーを押してください。ゲームを開始します。」などのメッセージを投影させ、平面61上に表示させる(S501)。
PC6は、ユーザ操作により、接続されたキーボードなどの入力デバイスからSキーの入力操作が行われると(S503;YES)、プロジェクタ4から、ゲームスタートを伝えるスタート画面を表示させる(S505)。
次に、PC6は、制御装置7を介して、電磁弁74をオンする(S507)。電磁弁74がオンされると、エアコンプレッサ55からの高圧エアにより、エアシリンダ91のシリンダ軸が前方へスライド移動する。これにより、ひよこキャラクター92が平面61,62を突き抜け、ユーザA側に出現する。
ひよこキャラクター92が平面61,62を突き抜け、ユーザA側に出現すると、PC6は、プロジェクタ4から、例えば、「助けて!」などのメッセージを表示させる(S509)と共に、スピーカ41から、「助けて!」とあひるが叫ぶような音声を出力する(S511)。
その後、PC6は、制御装置7を介して、電磁弁74をオフする(S513)。電磁弁74がオフされると、エアコンプレッサ55からの高圧エアの供給が停止し、エアシリンダ91のシリンダ軸が後方へスライド移動する。これにより、ひよこキャラクター92が平面61,62の裏側の位置に戻り、ユーザAからは見えなくなる。
次に、本発明の実施形態の変形例2のユーザインタフェース装置におけるシューティングゲームのゲームの処理手順を説明する。
図32は、本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームのゲーム処理の処理手順を示したフローチャートである。
図32に示すように、まず、PC6は、プロジェクタ4から、平面61上に小型の敵キャラクター5匹を投影させる(S601)。この敵キャラクター5匹は、一カ所に留まることなく、矩形の情報表示領域である平面61上でランダムに動き回るように表示する。
そして、制御装置7は、空気砲83または空気砲84のトリガーがオンになったか否かを判定する(S603)。具体的には、制御装置7は、ユーザによりスイッチ87がオン操作されると、空気砲83のトリガーがオンになったと判定し、ユーザによりスイッチ88がオン操作されると、空気砲84のトリガーがオンになったと判定する。
S603において、空気砲83および空気砲84のトリガーがオンになっていないと判定された場合(NO)、PC6は、予め定められたゲーム時間に達したか否か、即ち、タイムアップしたかを判定する(S605)。
S605において、タイムアップしたと判定された場合(YES)、ゲームオーバーとして処理を終了する。
一方、S603において、空気砲83または空気砲84のトリガーがオンになっていると判定された場合(YES)、PC6は、オンされた空気砲の照準が情報表示領域内に入っているか否かを判定する(S607)。例えば、空気砲83がオンされたとすると、PC6は、カメラ85から受信した画像データに基づいて、LEDランプ63a〜63dの位置を算出し、この算出したLEDランプ63a〜63dの位置に基づいて、空気砲83の向きを算出し、算出した向きから空気砲83の照準が情報表示領域内に入っているか否かを判定する。
S607において、オンされた空気砲の照準が情報表示領域内に入っていると判定された場合(YES)、オンされたトリガーに対応する電磁弁を0.1(秒)間だけ“開”とする(S609)。例えば、スイッチ87がオン操作されたとすると、制御装置7は、PC6の指示に従って、電磁弁71を0.1(秒)間だけ“開”とする。これにより、空気砲83から高圧エアが噴射し、噴射した高圧エアが平面61,62を突き抜ける。
そして、PC6は、オンされた空気砲の照準が敵キャラクターに当たっているか、即ち、敵キャラクターの表示領域内に入っているか否かを判定する(S611)。
S611において、オンされた空気砲の照準が敵キャラクターに当たっていないと判定された場合(NO)、PC6は、空気砲の照準の付近に波紋の映像を表示する(S613)。
一方、S611において、オンされた空気砲の照準が敵キャラクターに当たったと判定された場合(YES)、PC6は、プロジェクタ4から、当たった敵キャラクターの爆発を表示し(S615)、敵キャラクター数を“1”だけ減算する(S617)。
次に、PC6は、敵キャラクター数が“1”未満になった場合(S619;YES)、敵キャラクターが全滅したと判定し、次ステージにゲームを遷移させる(S621)。
図33は、本発明の実施形態の変形例2のユーザインタフェース装置において、シューティングゲームにおいて、図32のフローチャートに示したS621により遷移したゲーム処理の処理手順を示したフローチャートである。
図33に示すように、まず、PC6は、プロジェクタ4から、平面61上に大型の敵キャラクター1匹を投影させる(S701)。この敵キャラクター1匹は、一カ所に留まることなく、矩形の情報表示領域である平面61上でランダムに動き回るように表示する。
そして、制御装置7は、空気砲83または空気砲84のトリガーがオンになったか否かを判定する(S703)。具体的には、制御装置7は、ユーザによりスイッチ87がオン操作されると、空気砲83のトリガーがオンになったと判定し、ユーザによりスイッチ88がオン操作されると、空気砲84のトリガーがオンになったと判定する。
S703において、空気砲83および空気砲84のトリガーがオンになっていないと判定された場合(NO)、PC6は、予め定められたゲーム時間に達したか否か、即ち、タイムアップしたかを判定する(S705)。このゲーム時間は、図32に示したゲームのゲーム時間との積算時間がゲーム時間に達したか否かを判定するようにしてもよいし、図33のゲーム処理に遷移してからの時間がゲーム時間に達したか否かを判定するようにしてもよい。
S705において、タイムアップしたと判定された場合(YES)、ゲームオーバーとして処理を終了する。
一方、S703において、空気砲83または空気砲84のトリガーがオンになっていると判定された場合(YES)、PC6は、オンされた空気砲の照準が情報表示領域内に入っているか否かを判定する(S707)。例えば、空気砲83がオンされたとすると、PC6は、カメラ85から受信した画像データに基づいて、LEDランプ63a〜63dの位置を算出し、この算出したLEDランプ63a〜63dの位置に基づいて、空気砲83の向きを算出し、算出した向きから空気砲83の照準が情報表示領域内に入っているか否かを判定する。
S707において、オンされた空気砲の照準が情報表示領域内に入っていると判定された場合(YES)、オンされたトリガーに対応する電磁弁を0.1(秒)間だけ“開”とする(S709)。例えば、スイッチ87がオン操作されたとすると、制御装置7は、PC6の指示に従って、電磁弁71を0.1(秒)間だけ“開”とする。これにより、空気砲83から高圧エアが噴射し、噴射した高圧エアが平面61,62を突き抜ける。
そして、PC6は、オンされた空気砲の照準が敵キャラクターに当たっているか、即ち、大型の敵キャラクターの表示領域内に入っているか否かを判定する(S711)。
S711において、オンされた空気砲の照準が敵キャラクターに当たっていないと判定された場合(NO)、PC6は、空気砲の照準の付近に波紋の映像を表示する(S713)。
一方、S711において、オンされた空気砲の照準が敵キャラクターに当たったと判定された場合(YES)、PC6は、プロジェクタ4から、当たった敵キャラクターの爆発を表示する(S715)。このとき、爆発の大きさは、図32に示したフローチャートのS615における爆発の大きさと同等としてもよいし、敵キャラクターの大きさに応じて、大きい爆発としてもよい。
そして、PC6は、電磁弁73を0.1(秒)間だけ“開”とする(S717)。これにより、空気砲93から高圧エアが噴射し、噴射した高圧エアが平面61,62を突き抜け、水しぶきがユーザAまで到達するので、ユーザはよりゲームの迫力を感じることができる。
次に、PC6は、制御装置7を介して、電磁弁74をオンする(S719)。電磁弁74がオンされると、エアコンプレッサ55からの高圧エアにより、エアシリンダ91のシリンダ軸が前方へスライド移動する。これにより、ひよこキャラクター92が平面61,62を突き抜け、ユーザA側に出現する。
ひよこキャラクター92が平面61,62を突き抜け、ユーザA側に出現すると、PC6は、プロジェクタ4から、例えば、「ありがとう!」などのメッセージを表示させる(S721)と共に、スピーカ41から、「ありがとう!」とあひるが叫ぶような音声を出力する(S723)。
その後、PC6は、制御装置7を介して、電磁弁74をオフする(S74)。電磁弁74がオフされると、エアコンプレッサ55からの高圧エアの供給が停止し、エアシリンダ91のシリンダ軸が後方へスライド移動する。これにより、ひよこキャラクター92が平面61,62の裏側の位置に戻り、ユーザAからは見えなくなる。
以上のように、本発明の実施形態の変形例2のユーザインタフェース装置によれば、浴槽3の水面を情報表示領域とする替わりに、不透明状態の液体を落下させることにより平行な平面を形成するとともに、平行な平面の間に不透明状態の気体を充満させた液体平面形成手段53を備え、液体平面形成手段53により形成された平面61を情報表示領域とするので、直立したユーザインタフェース装置として利用できる。これにより、防水構造を有する情報機器を持ち込むことなく、情報表示と入力とが実現される。このようなユーザインタフェースは、情報閲覧とインタラクションにきわめて適したものである。
なお、液体平面形成手段により形成される平面は、水の落下により形成されるので、完全な平面には限らず、多少の凹凸があってもよい。
また、本発明の実施形態の変形例2のユーザインタフェース装置では、液体平面形成手段53は、ポンプ51の駆動により浴槽3内からくみ上げられた白濁した水2を落下させることにより互いに平行な平面61,62をプロジェクタ4からの投影方向に垂直になるように形成した。
ここで、平行な平面61,62と垂直になるように、すなわち、プロジェクタ4からの投影方向に平行な平面を形成する2枚の平板を、上方から見て平面61,62とで矩形を形成するように配置するようにしてもよい。そして、平面61,62と2枚の平板とにより四面を形成し、この四面で囲まれた内部に不透明状態の気体を充満させるようにしてもよい。
さらに、2枚の平板の代わりに落下する水2により平面を形成するようにしてもよい。具体的には、液体平面形成手段53が、平行な平面61,62に加えて、互いに平行な平面をプロジェクタ4からの投影方向に平行になるように、ポンプ51の駆動により浴槽3内からくみ上げられた白濁した水2を落下させる。これにより、平面61,62と、プロジェクタ4からの投影方向に平行になるように形成された互いに平行な平面とにより四面を囲み、この四面で囲まれた内部に不透明状態の気体を充満させるようにしてもよい。
1 インタラクティブシステム
2 白濁した水
3 浴槽
4 プロジェクタ
5 深度カメラ
6 PC
3a 爆発エフェクト用スピーカ
3b 触覚フィードバック用スピーカ
7 制御装置
41 スピーカ
51 ポンプ
52 配管
53 液体平面形成手段
53a 水落下部
53b 加湿器
55 エアコンプレッサ
63a〜63d LEDランプ
71〜74 電磁弁
81,82 空気放出筒
83,84,93 空気砲
85,86 カメラ
87,88…スイッチ
91…エアシリンダ
92…キャラクター

Claims (11)

  1. 液体と不透明状態の気体との組み合わせ、または不透明状態の液体で平面を形成した液体平面形成手段と、
    前記液体平面形成手段により形成された平面に対して情報を投影表示させる投影表示手段と、
    前記液体平面形成手段により形成された平面に対する入力操作を検出する入力検出手段と、
    前記入力検出手段によって検出された入力操作に応じて、前記投影表示手段に投影表示させる情報を制御する表示制御手段とを備え、
    前記入力検出手段は、背景である前記平面までの距離を背景画像として取得すると共に、各フレームにおける前記平面又は対象物までの距離を入力深度画像として取得する深度カメラを有し、前記取得した背景画像と入力深度画像との差分を示す背景差分の経時的変化に基づいて前記入力操作を検出し、該検出は、前記平面に対する対象物の接触の検出を含むことを特徴とするユーザインタフェース装置。
  2. 前記深度カメラは、前記平面に対して赤外光を照射し、前記照射した赤外光の反射光を読み取ることにより前記背景差分を取得することを特徴とする請求項1に記載のユーザインタフェース装置。
  3. 前記深度カメラは、前記平面に対して光を所定のパターンとして照射し、前記照射した光の反射光の所定パターンの幾何学的な形状の変化を読み取ることにより、前記背景差分を取得することを特徴とする請求項1または2に記載のユーザインタフェース装置。
  4. 前記入力検出手段は、前記対象物であるユーザによる前記平面への接触を含むジェスチャの入力を認識するジェスチャ認識手段であり、
    前記背景画像と、前記入力深度画像のうち前記ジェスチャの動作中を表す1以上のジェスチャ画像との差分を求めることによって、前記ジェスチャの動作領域を表す前景画像を取得し、前記ジェスチャの動作領域の面積の経時的変化に基づいて、前記ジェスチャの動作内容を特定するジェスチャ解析部を有することを特徴とする請求項1から3のいずれか1項に記載のユーザインタフェース装置。
  5. 前記液体平面形成手段は、不透明状態の液体が蓄えられた液体槽であり、
    前記投影表示手段は、該液体槽の液面に対して情報を投影表示させ、
    前記表示制御手段は、前記ジェスチャ認識手段によって認識されたジェスチャに応じて、前記投影表示手段に投影表示させる情報を制御する
    ことを特徴とする請求項1から4のいずれか1項に記載のユーザインタフェース装置。
  6. 前記ジェスチャ認識手段は、前記ユーザが前記液面下から指を突き出す動作、前記ユーザが前記液面付近において前記液体を流す動作、前記ユーザが前記液体をすくう動作、前記ユーザが前記液面を叩く動作のうちの少なくとも1つの動作を認識するものであることを特徴とする請求項5に記載のユーザインタフェース装置。
  7. 前記表示制御手段は、流体シミュレーションにより、前記投影表示される情報を前記液面上で移動させるものであることを特徴とする請求項5または6のいずれか1項に記載のユーザインタフェース装置。
  8. 前記ジェスチャ認識手段は、前記ユーザが前記液面付近において前記液体を流す動作を認識するものであり、
    前記表示制御手段は、前記認識された液体を流す動作に応じて、前記流体シミュレーションにより、前記投影表示される情報の移動の向きや速さを決定するものであることを特徴とする請求項7に記載のユーザインタフェース装置。
  9. 前記液体槽は前記ユーザが内部に入ることができるものであり、
    前記ユーザは、前記液体に浸かることができるものであることを特徴とする請求項5から8のいずれか1項に記載のユーザインタフェース装置。
  10. 前記液体平面形成手段は、液体を落下させることにより平行な平面を形成するとともに、前記平行な平面の間に不透明状態の気体を充満させ、
    空気を放出する空気放出筒を備え、
    前記入力検出手段は、前記空気を放出した際の前記空気放出筒の向きを検出し、
    前記表示制御手段は、前記入力検出手段によって認識された前記空気放出筒の向きに応じて、前記投影表示手段に投影表示させる情報を制御する
    ことを特徴とする請求項1から4のいずれか1項に記載のユーザインタフェース装置。
  11. 液体と不透明状態の気体との組み合わせ、または不透明状態の液体で平面を形成した液体平面形成手段と、
    前記液体平面形成手段により形成された平面に対して情報を投影表示させる投影表示手段と、
    背景である前記平面までの距離を背景画像として取得すると共に、各フレームにおける前記平面又は対象物までの距離を入力深度画像として取得する深度カメラを有し、取得した背景画像と入力深度画像との差分を示す背景差分の経時的変化に基づいて、前記液体平面形成手段により形成された平面に対する入力操作を検出し、該検出は、前記平面に対する対象物の接触の検出を含む入力検出手段と、を備えた装置と接続されたコンピュータに、
    前記入力検出手段によって検出された入力操作に応じて、前記投影表示手段に投影表示させる情報を制御する制御ステップを、
    実行させるためのユーザインタフェース制御プログラム。
JP2014097872A 2013-05-10 2014-05-09 ユーザインタフェース装置およびユーザインタフェース制御プログラム Active JP6425416B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014097872A JP6425416B2 (ja) 2013-05-10 2014-05-09 ユーザインタフェース装置およびユーザインタフェース制御プログラム

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013100744 2013-05-10
JP2013100744 2013-05-10
JP2014097872A JP6425416B2 (ja) 2013-05-10 2014-05-09 ユーザインタフェース装置およびユーザインタフェース制御プログラム

Publications (2)

Publication Number Publication Date
JP2014238828A JP2014238828A (ja) 2014-12-18
JP6425416B2 true JP6425416B2 (ja) 2018-11-21

Family

ID=52135899

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014097872A Active JP6425416B2 (ja) 2013-05-10 2014-05-09 ユーザインタフェース装置およびユーザインタフェース制御プログラム

Country Status (1)

Country Link
JP (1) JP6425416B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6547366B2 (ja) * 2015-03-27 2019-07-24 セイコーエプソン株式会社 インタラクティブプロジェクター
JP6559788B2 (ja) * 2015-09-09 2019-08-14 チームラボ株式会社 情報提供装置
JP6651814B2 (ja) 2015-11-30 2020-02-19 富士通株式会社 領域抽出装置、領域抽出プログラム、及び領域抽出方法
JP6699479B2 (ja) * 2016-09-15 2020-05-27 オムロン株式会社 操作装置、遊技機、および制御方法
US11107287B2 (en) 2017-10-05 2021-08-31 Sony Corporation Information processing apparatus and information processing method
JP7135444B2 (ja) * 2018-05-29 2022-09-13 富士フイルムビジネスイノベーション株式会社 情報処理装置及びプログラム
JP7236193B2 (ja) * 2018-09-27 2023-03-09 メイコーエンベデッドプロダクツ株式会社 異常検知装置、異常検知方法、プログラム
JP7012944B2 (ja) * 2018-10-11 2022-01-31 オムロン株式会社 シミュレーション装置、シミュレーション方法及びシミュレーションプログラム
CN109669362B (zh) * 2019-01-29 2024-01-30 柳州工学院 一种与家用浴缸配套的物联网智能控制装置
JP2020144413A (ja) 2019-03-04 2020-09-10 セイコーエプソン株式会社 表示方法および表示装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118725A (ja) * 2009-12-04 2011-06-16 Sharp Corp 情報処理機器、情報処理方法および情報処理プログラム
US8702507B2 (en) * 2011-04-28 2014-04-22 Microsoft Corporation Manual and camera-based avatar control
CN102841733B (zh) * 2011-06-24 2015-02-18 株式会社理光 虚拟触摸屏系统以及自动切换交互模式的方法

Also Published As

Publication number Publication date
JP2014238828A (ja) 2014-12-18

Similar Documents

Publication Publication Date Title
JP6425416B2 (ja) ユーザインタフェース装置およびユーザインタフェース制御プログラム
JP7537016B2 (ja) 三次元環境と相互作用するためのデバイス、方法、及びグラフィカルユーザインタフェース
RU2554548C2 (ru) Воплощение визуального представления с помощью изученного ввода от пользователя
JP6776400B1 (ja) プログラム、方法、および情報端末装置
CN104740869A (zh) 一种融合真实环境的虚实结合的交互方法及系统
KR20230159481A (ko) 프로그램, 방법, 및 정보 처리 장치
CN103501869A (zh) 手动和基于相机的游戏控制
KR101794233B1 (ko) 모션 인식 및 특수 효과 제어기술을 이용한 체감형 게임 콘텐츠 제공 시스템
JP7369674B2 (ja) プログラム、方法、および視聴端末
JP2011258158A (ja) プログラム、情報記憶媒体及び画像生成システム
US20220323862A1 (en) Program, method, and information processing terminal
JP2021053179A (ja) プログラム、方法、および視聴端末
WO2020262332A1 (ja) ゲームプログラム、ゲーム方法、および情報端末装置
CN109416614A (zh) 应用程序控制程序、应用程序控制方法以及应用程序控制系统
KR20220024602A (ko) 게임 프로그램, 게임 방법, 및 정보 단말 장치
KR101326869B1 (ko) 가상환경 제작을 지원하는 가상 골프 시뮬레이션 장치 및 그 방법
US20220241692A1 (en) Program, method, and terminal device
JP6826645B1 (ja) プログラム、方法、および端末装置
JP2022000218A (ja) プログラム、方法、情報処理装置、およびシステム
JP2021010756A (ja) プログラム、方法、および情報端末装置
JP2011239936A (ja) ゲーム装置、ゲーム処理方法、ならびに、プログラム
JP5213913B2 (ja) プログラム及び画像生成システム
Joyce III et al. Implementation and capabilities of a virtual interaction system
Clifton et al. Don't open that door: designing gestural interactions for interactive narratives
JP7377790B2 (ja) ゲームプログラム、ゲーム方法、および情報端末装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170124

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20170124

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170418

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170619

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20170711

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171010

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20171016

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20171102

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20181023

R150 Certificate of patent or registration of utility model

Ref document number: 6425416

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250