JP2014219879A - 情報処理装置、情報処理方法及びプログラム - Google Patents
情報処理装置、情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP2014219879A JP2014219879A JP2013099609A JP2013099609A JP2014219879A JP 2014219879 A JP2014219879 A JP 2014219879A JP 2013099609 A JP2013099609 A JP 2013099609A JP 2013099609 A JP2013099609 A JP 2013099609A JP 2014219879 A JP2014219879 A JP 2014219879A
- Authority
- JP
- Japan
- Prior art keywords
- user
- instruction
- information
- unit
- operation instruction
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
【課題】操作対象機器をジェスチャによって効率的に操作することを可能とし、かつ、誤操作を少なくする。【解決手段】機器を操作するユーザの動作情報に基づいて、前記機器の操作に係る動作指示を表示部を介してユーザに提示する提示手段と、前記提示手段により提示された動作指示に対応する動作をユーザが完了させたか否かを判定する判定手段と、前記判定手段により完了させたと判定された場合、前記動作の結果に基づくコマンドを実行する実行手段と、を有することによって課題を解決する。【選択図】図4
Description
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
機器をジェスチャによって操作することに対する需要がある。従来、ユーザは、メニューや、アイコンによって情報機器を操作する際、マウスをクリックすることによって自身の意図を情報機器に伝えていた。しかし、近年の情報機器の高性能化により、ジェスチャによって機器操作を行うシーンが増えてきており、どのようにしてユーザの意図を確実に情報機器に伝えるかが課題となっている。
メニューや、アイコンや、ポインタ等からなるGUIアプリケーションをジェスチャで操作する際のカーソルの制御方法については、手の移動によって制御する手法が一般的となってきている。この制御手法により、ユーザにとって直感的な操作が実現されている。
特許文献1に開示されている技術は、ディスプレイに内蔵されたカメラを用いて操作者を撮像し、操作者の手の形状や、手の動きを認識することによって、ハンドジェスチャによる操作を可能にしている。また、Microsoft(登録商標)社が発売している「Kinectアドベンチャー!」というゲームソフトでは、メニュー等の項目の選択方法として、メニュー項目の上にカーソルを合わせて一定時間静止することで項目を選択するという手法がとられている。なお、「Kinectアドベンチャー!」についての詳細は、(http://bit.ly/lFZC9a)に記載されている。更に、PrimeSense社が公開している「OpenNI」と、「OpenNI Middleware NITE」とでは、メニュー等の項目の選択方法として、手をユーザ前方に押し出すことで項目を選択するという手法がとられている。なお、「OpenNI」と、「OpenNI Middleware NITE」とについての詳細は、(http://www.openni.org/)に記載されている。
メニューや、アイコンや、ポインタ等からなるGUIアプリケーションをジェスチャで操作する際のカーソルの制御方法については、手の移動によって制御する手法が一般的となってきている。この制御手法により、ユーザにとって直感的な操作が実現されている。
特許文献1に開示されている技術は、ディスプレイに内蔵されたカメラを用いて操作者を撮像し、操作者の手の形状や、手の動きを認識することによって、ハンドジェスチャによる操作を可能にしている。また、Microsoft(登録商標)社が発売している「Kinectアドベンチャー!」というゲームソフトでは、メニュー等の項目の選択方法として、メニュー項目の上にカーソルを合わせて一定時間静止することで項目を選択するという手法がとられている。なお、「Kinectアドベンチャー!」についての詳細は、(http://bit.ly/lFZC9a)に記載されている。更に、PrimeSense社が公開している「OpenNI」と、「OpenNI Middleware NITE」とでは、メニュー等の項目の選択方法として、手をユーザ前方に押し出すことで項目を選択するという手法がとられている。なお、「OpenNI」と、「OpenNI Middleware NITE」とについての詳細は、(http://www.openni.org/)に記載されている。
しかしながら、特許文献1に開示されている手法のように、手の形状変化によってメニューを選択する方法の場合、事前にユーザが手の形状変化について学習しなければならないという課題がある。また、上述した「OpenNI」と、「OpenNI Middleware NITE」とで採用されている手法の場合、メニューの選択に時間がかかるため素早い操作が困難であるという課題がある。また、上述した「Kinectアドベンチャー!」で採用されている手法の場合、ユーザの手が前方へ押し出されたことを確実に検知するために、三次元カメラが必須となる。また、何れの手法においても、ユーザの意図しないメニュー選択が行われてしまう可能性がある。
本発明は、上記課題を鑑みてなされたものであり、操作対象機器をジェスチャによって効率的に操作することを可能とし、かつ、誤操作を少なくすることを目的とする。
本発明は、上記課題を鑑みてなされたものであり、操作対象機器をジェスチャによって効率的に操作することを可能とし、かつ、誤操作を少なくすることを目的とする。
そこで、本発明は、機器を操作するユーザの動作情報に基づいて、前記機器の操作に係る動作指示を表示部を介してユーザに提示する提示手段と、前記提示手段により提示された動作指示に対応する動作をユーザが完了させたか否かを判定する判定手段と、前記判定手段により完了させたと判定された場合、前記動作の結果に基づくコマンドを実行する実行手段と、を有する。
本発明によれば、操作対象機器をジェスチャによって効率的に操作することを可能とし、かつ、誤操作を少なくすることができる。
以下、本発明を実施するための最良の形態について図面を用いて説明する。
<実施形態1>
以下、図面を参照して実施形態1について詳細に説明する。
図1は、本実施形態の機器操作装置101のハードウェア構成の一例を示す図である。なお、機器操作装置101は、情報処理装置の一例である。
機器操作装置101は、CPU(Central Processing Unit)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、バス105とを有する。更に、機器操作装置101は、カメラI/F106と、カメラ107と、ディスプレイI/F108と、ディスプレイ109とを有する。
CPU102は、機器操作装置101全体を制御する。また、CPU102は、ROM103等に保存されているプログラムをRAM104にロードして実行することにより、後述の機器操作装置101の機能(ソフトウェア構成)及びフローチャートに係る処理を実現する。
ROM103は、各種のプログラムや、閾値に関するデータ等、各種のデータを格納している。
RAM104は、プログラムやデータを一時記憶するワークメモリとして機能する。
カメラI/F106は、バス105と、カメラ107とを接続するインターフェースである。
カメラ107は、ユーザを撮像する。
ディスプレイI/F108は、バス105と、ディスプレイ109とを接続するインターフェースである。
ディスプレイ109は、後述する動作指示情報等が表示される表示部である。
バス105は、CPU102、ROM103、RAM104、カメラI/F106及びディスプレイI/F108を互いに通信可能に接続するシステムバスである。
なお、カメラ107及びディスプレイ109は、機器操作装置101の外部に接続される構成であってもよい。
<実施形態1>
以下、図面を参照して実施形態1について詳細に説明する。
図1は、本実施形態の機器操作装置101のハードウェア構成の一例を示す図である。なお、機器操作装置101は、情報処理装置の一例である。
機器操作装置101は、CPU(Central Processing Unit)102と、ROM(Read Only Memory)103と、RAM(Random Access Memory)104と、バス105とを有する。更に、機器操作装置101は、カメラI/F106と、カメラ107と、ディスプレイI/F108と、ディスプレイ109とを有する。
CPU102は、機器操作装置101全体を制御する。また、CPU102は、ROM103等に保存されているプログラムをRAM104にロードして実行することにより、後述の機器操作装置101の機能(ソフトウェア構成)及びフローチャートに係る処理を実現する。
ROM103は、各種のプログラムや、閾値に関するデータ等、各種のデータを格納している。
RAM104は、プログラムやデータを一時記憶するワークメモリとして機能する。
カメラI/F106は、バス105と、カメラ107とを接続するインターフェースである。
カメラ107は、ユーザを撮像する。
ディスプレイI/F108は、バス105と、ディスプレイ109とを接続するインターフェースである。
ディスプレイ109は、後述する動作指示情報等が表示される表示部である。
バス105は、CPU102、ROM103、RAM104、カメラI/F106及びディスプレイI/F108を互いに通信可能に接続するシステムバスである。
なお、カメラ107及びディスプレイ109は、機器操作装置101の外部に接続される構成であってもよい。
図2は、本実施形態の機器操作装置101におけるソフトウェア構成等の一例を示す図である。
機器操作装置101は、動作データ取得部A1100、計算部A1200及び提示部A1300を有する。
動作データ取得部A1100は、カメラ等を介してユーザの動作に関するデータを取得する。より具体的には、動作データ取得部A1100は、ユーザの動作を表すデータ取得のためにユーザを撮像し、動作データである撮像データ(撮像情報)を取得する。なお、動作データ取得部A1100による撮像データの取得は、撮像情報取得処理の一例である。
計算部A1200は、様々な計算を行う。
撮像データ保持部A1201は、動作データ取得部A1100で取得されたデータを保持する。
ユーザ動作認識部A1210は、撮像データ保持部A1201に保持された撮像データからユーザの動作(以下、単にユーザ動作という)を認識する。
ユーザ動作保持部A1202は、ユーザ動作認識部A1210で認識されたユーザ動作の内容を示す動作情報(以下、単に動作情報という)を保持する記憶領域である。
動作指示生成部A1220は、ユーザ動作保持部A1202に保持された動作情報からユーザに対する動作指示の内容を示す動作指示情報(以下、単に動作指示情報という)を生成する。
機器操作装置101は、動作データ取得部A1100、計算部A1200及び提示部A1300を有する。
動作データ取得部A1100は、カメラ等を介してユーザの動作に関するデータを取得する。より具体的には、動作データ取得部A1100は、ユーザの動作を表すデータ取得のためにユーザを撮像し、動作データである撮像データ(撮像情報)を取得する。なお、動作データ取得部A1100による撮像データの取得は、撮像情報取得処理の一例である。
計算部A1200は、様々な計算を行う。
撮像データ保持部A1201は、動作データ取得部A1100で取得されたデータを保持する。
ユーザ動作認識部A1210は、撮像データ保持部A1201に保持された撮像データからユーザの動作(以下、単にユーザ動作という)を認識する。
ユーザ動作保持部A1202は、ユーザ動作認識部A1210で認識されたユーザ動作の内容を示す動作情報(以下、単に動作情報という)を保持する記憶領域である。
動作指示生成部A1220は、ユーザ動作保持部A1202に保持された動作情報からユーザに対する動作指示の内容を示す動作指示情報(以下、単に動作指示情報という)を生成する。
動作指示保持部A1203は、動作指示生成部A1220で生成された動作指示情報を保持する記憶領域である。
指示動作完了判定部A1230は、ユーザ動作保持部A1202に保持された動作情報と、動作指示保持部A1203に保持された動作指示情報とから、ユーザによる指示動作が完了したか否かを判定する。
指示動作完了時コマンド保持部A1204は、指示動作完了判定部A1230がユーザによる指示動作が完了したと判定した際に実行されるコマンドを保持する記憶領域である。
指示動作完了時コマンド実行部A1240は、指示動作完了判定部A1230がユーザによる指示動作が完了したと判定した際に、指示動作完了時コマンド保持部A1204に保持されたコマンドを実行する。
提示部A1300は、ユーザ動作保持部A1202に保持された動作情報と、動作指示保持部A1203に保持された動作指示情報とを提示する。より具体的には、提示部A1300は、前記動作情報と、前記動作指示情報とを、機器操作装置101が有するディスプレイ等の表示部を介してユーザに提示する。
なお、動作データ取得部A1100、計算部A1200及び提示部A1300は、上述の機能を有するハードウェアであってもよい。
指示動作完了判定部A1230は、ユーザ動作保持部A1202に保持された動作情報と、動作指示保持部A1203に保持された動作指示情報とから、ユーザによる指示動作が完了したか否かを判定する。
指示動作完了時コマンド保持部A1204は、指示動作完了判定部A1230がユーザによる指示動作が完了したと判定した際に実行されるコマンドを保持する記憶領域である。
指示動作完了時コマンド実行部A1240は、指示動作完了判定部A1230がユーザによる指示動作が完了したと判定した際に、指示動作完了時コマンド保持部A1204に保持されたコマンドを実行する。
提示部A1300は、ユーザ動作保持部A1202に保持された動作情報と、動作指示保持部A1203に保持された動作指示情報とを提示する。より具体的には、提示部A1300は、前記動作情報と、前記動作指示情報とを、機器操作装置101が有するディスプレイ等の表示部を介してユーザに提示する。
なお、動作データ取得部A1100、計算部A1200及び提示部A1300は、上述の機能を有するハードウェアであってもよい。
図3は、本実施形態における機器操作装置101の装置構成等の一例を示す図である。
ここでは、図2で上述した動作データ取得部A1100、計算部A1200及び提示部A1300を有する機器操作装置101の一例として操作対象機器2100を用いて説明する。
動作データ取得部A1100は、カメラ2120を介してユーザ2200の手2210を捉える。ユーザ2200は、操作対象機器2100のディスプレイ2110上に提示されるカーソル2113を、手2210を動かすことにより移動させて操作対象機器2100の操作を行う。
また、上述したように、操作対象機器2100は、ユーザ動作認識部A1210、動作指示生成部A1220、指示動作完了判定部A1230及び指示動作完了時コマンド実行部A1240の機能を含む計算部A1200を有する。また、計算部A1200は、記憶領域として、撮像データ保持部A1201、ユーザ動作保持部A1202、動作指示保持部A1203及び指示動作完了時コマンド保持部A1204を有している。
以上が、本実施形態における機器操作装置101の装置構成の一例である。
ここでは、図2で上述した動作データ取得部A1100、計算部A1200及び提示部A1300を有する機器操作装置101の一例として操作対象機器2100を用いて説明する。
動作データ取得部A1100は、カメラ2120を介してユーザ2200の手2210を捉える。ユーザ2200は、操作対象機器2100のディスプレイ2110上に提示されるカーソル2113を、手2210を動かすことにより移動させて操作対象機器2100の操作を行う。
また、上述したように、操作対象機器2100は、ユーザ動作認識部A1210、動作指示生成部A1220、指示動作完了判定部A1230及び指示動作完了時コマンド実行部A1240の機能を含む計算部A1200を有する。また、計算部A1200は、記憶領域として、撮像データ保持部A1201、ユーザ動作保持部A1202、動作指示保持部A1203及び指示動作完了時コマンド保持部A1204を有している。
以上が、本実施形態における機器操作装置101の装置構成の一例である。
図4は、本実施形態の処理の一例を示すフローチャートである。
S3100で、ユーザ動作認識部A1210は、撮像データ保持部A1201から撮像データを取得し、ユーザ2200の手2210の位置の認識を行う。そして、ユーザ動作認識部A1210は、認識したユーザ2200の手2210の位置に関する動作情報をユーザ動作保持部A1202に保持する。
S3200で、動作指示生成部A1220は、ユーザに対する動作指示に関する動作指示情報を生成する。S3200の詳細な処理について、図5を用いて説明する。なお、図5は、S3200における動作指示生成処理の一例を示すフローチャートである。
S3210で、動作指示生成部A1220は、ユーザ動作保持部A1202からユーザ2200の手2210の位置に関する動作情報を取得する。即ち、動作指示生成部A1220は、ユーザ2200の過去動作の情報を取得する。
S3220で、動作指示生成部A1220は、S3210で取得したユーザ2200の手2210の位置に関する動作情報をもとにユーザ2200の将来の動作を予測する。
S3230で、動作指示生成部A1220は、S3220で予測した結果をもとに、ユーザ2200に対する動作指示に関する動作指示情報を生成する。
S3100で、ユーザ動作認識部A1210は、撮像データ保持部A1201から撮像データを取得し、ユーザ2200の手2210の位置の認識を行う。そして、ユーザ動作認識部A1210は、認識したユーザ2200の手2210の位置に関する動作情報をユーザ動作保持部A1202に保持する。
S3200で、動作指示生成部A1220は、ユーザに対する動作指示に関する動作指示情報を生成する。S3200の詳細な処理について、図5を用いて説明する。なお、図5は、S3200における動作指示生成処理の一例を示すフローチャートである。
S3210で、動作指示生成部A1220は、ユーザ動作保持部A1202からユーザ2200の手2210の位置に関する動作情報を取得する。即ち、動作指示生成部A1220は、ユーザ2200の過去動作の情報を取得する。
S3220で、動作指示生成部A1220は、S3210で取得したユーザ2200の手2210の位置に関する動作情報をもとにユーザ2200の将来の動作を予測する。
S3230で、動作指示生成部A1220は、S3220で予測した結果をもとに、ユーザ2200に対する動作指示に関する動作指示情報を生成する。
図4の説明に戻る。
S3300で、提示部A1300は、動作指示保持部A1203から動作指示情報を取得し、ディスプレイ2110を介してユーザ2200に対する動作指示を提示する。
S3400で、指示動作完了判定部A1230は、動作指示保持部A1203から動作指示情報を取得し、更に、ユーザ動作保持部A1202からユーザ2200の手2210の位置に関する動作情報を取得する。そして、指示動作完了判定部A1230は、取得した動作指示情報と、動作情報とをもとに、ユーザ2200が指示動作を完了させたか否かを判定する。なお、判定の手法に関する詳細については、図10等を用いて後述する。指示動作完了判定部A1230は、ユーザ2200が指示動作を完了させたと判定した場合、処理をS3500に進める。一方、指示動作完了判定部A1230は、ユーザ2200が指示動作を完了させていないと判定した場合、更に、S3400の指示動作完了判定を終了するか否かを判定する。そして、指示動作完了判定部A1230は、終了すると判定した場合、処理を終了し、終了しないと判定した場合、処理をS3100に戻す。
S3500で、指示動作完了時コマンド実行部A1240は、指示動作完了時コマンド保持部A1204から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
以上が、本実施形態における機器操作装置101の処理フローである。
S3300で、提示部A1300は、動作指示保持部A1203から動作指示情報を取得し、ディスプレイ2110を介してユーザ2200に対する動作指示を提示する。
S3400で、指示動作完了判定部A1230は、動作指示保持部A1203から動作指示情報を取得し、更に、ユーザ動作保持部A1202からユーザ2200の手2210の位置に関する動作情報を取得する。そして、指示動作完了判定部A1230は、取得した動作指示情報と、動作情報とをもとに、ユーザ2200が指示動作を完了させたか否かを判定する。なお、判定の手法に関する詳細については、図10等を用いて後述する。指示動作完了判定部A1230は、ユーザ2200が指示動作を完了させたと判定した場合、処理をS3500に進める。一方、指示動作完了判定部A1230は、ユーザ2200が指示動作を完了させていないと判定した場合、更に、S3400の指示動作完了判定を終了するか否かを判定する。そして、指示動作完了判定部A1230は、終了すると判定した場合、処理を終了し、終了しないと判定した場合、処理をS3100に戻す。
S3500で、指示動作完了時コマンド実行部A1240は、指示動作完了時コマンド保持部A1204から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
以上が、本実施形態における機器操作装置101の処理フローである。
次に、図3の装置構成等と、図4及び図5の処理フローとを用いた場合における処理の一例について説明する。
本実施形態では、ユーザ2200が、操作対象機器2100のディスプレイ2110上に表示される選択可能な項目をジェスチャによって選択する。
動作データ取得部A1100は、操作対象機器2100が有するカメラ2120を介して、ユーザ2200を撮像し、ユーザ2200の動作を表す動作データである撮像データを取得する。
図6は、動作データ取得部A1100が取得した撮像データの一例を示す図である。
撮像データ4100の中にユーザ2200が映っており、ユーザ2200は、手2210によるジェスチャによって操作対象機器2100を操作している。
ここで、図7に示されるように、操作対象機器2100のディスプレイ2110に選択可能項目2111及び選択可能項目2112が表示されているものとして説明を行う。なお、図7は、ディスプレイ2110の表示画面の一例を示す図である。
ユーザ2200は、選択可能項目のひとつである選択可能項目2111を選択しようとしている。操作対象機器2100は、動作データ取得部A1100が取得した撮像データ4100を撮像データ保持部A1201にあたるバッファメモリに一時的に保持し、図4に示されるフローに従って処理する。
本実施形態では、ユーザ2200が、操作対象機器2100のディスプレイ2110上に表示される選択可能な項目をジェスチャによって選択する。
動作データ取得部A1100は、操作対象機器2100が有するカメラ2120を介して、ユーザ2200を撮像し、ユーザ2200の動作を表す動作データである撮像データを取得する。
図6は、動作データ取得部A1100が取得した撮像データの一例を示す図である。
撮像データ4100の中にユーザ2200が映っており、ユーザ2200は、手2210によるジェスチャによって操作対象機器2100を操作している。
ここで、図7に示されるように、操作対象機器2100のディスプレイ2110に選択可能項目2111及び選択可能項目2112が表示されているものとして説明を行う。なお、図7は、ディスプレイ2110の表示画面の一例を示す図である。
ユーザ2200は、選択可能項目のひとつである選択可能項目2111を選択しようとしている。操作対象機器2100は、動作データ取得部A1100が取得した撮像データ4100を撮像データ保持部A1201にあたるバッファメモリに一時的に保持し、図4に示されるフローに従って処理する。
図4のS3100で、ユーザ動作認識部A1210は、動作データ取得部A1100により取得された画像中から背景差分を用いてユーザ2200の領域を抽出する。そして、ユーザ動作認識部A1210は、人物の手の領域を学習させた認識器を用いてユーザ2200の手2210の位置をユーザ2200の領域から認識する。ユーザ動作認識部A1210は、認識した手2210の領域に関する情報を、ユーザ動作保持部A1202にあたるメモリに保持する。そして、操作対象機器2100は、ディスプレイ2110に、ユーザ2200の手2210の領域と対応した位置にカーソル2113を描画する。なお、ここでいう対応とは、ユーザ2200が手2210を上方向に10cmだけ動かせば、ディスプレイ2110上のカーソル2113も上方向に10cmだけ移動する関係のことをいう。また、これは上方向に限ることではない。即ち、ユーザ2200が手2210を右方向に10cmだけ動かせば、ディスプレイ2110上のカーソル2113も右方向に10cmだけ移動する。他の方向に関しても同様である。
なお、ユーザ動作認識部A1210が撮像データ4100からユーザ2200の領域を抽出する方法は、背景差分に限る必要はなく、撮像データ4100中からユーザ2200の領域を抽出することができれば他の方法でもよい。また、ユーザ動作認識部A1210がユーザ2200の領域から手2210の領域を抽出する方法についても、認識器を用いることは必須ではなく、ユーザ2200の手2210の領域を抽出することができれば他の方法でもよい。
また、ユーザ動作認識部A1210は、撮像データ4100からユーザ2200の領域を抽出した後にユーザ2200の手2210の領域を認識するようにしたが、撮像データ4100から直接、ユーザ2200の手2210の領域を認識するようにしてもよい。
なお、ユーザ動作認識部A1210が撮像データ4100からユーザ2200の領域を抽出する方法は、背景差分に限る必要はなく、撮像データ4100中からユーザ2200の領域を抽出することができれば他の方法でもよい。また、ユーザ動作認識部A1210がユーザ2200の領域から手2210の領域を抽出する方法についても、認識器を用いることは必須ではなく、ユーザ2200の手2210の領域を抽出することができれば他の方法でもよい。
また、ユーザ動作認識部A1210は、撮像データ4100からユーザ2200の領域を抽出した後にユーザ2200の手2210の領域を認識するようにしたが、撮像データ4100から直接、ユーザ2200の手2210の領域を認識するようにしてもよい。
また、操作対象機器2100がユーザ2200の手2210の位置と対応した位置に表示するカーソル2113についても、矢印の形状であることは必須ではなく、ユーザがポインティングしている位置がわかれば、他の表示方法であってもよい。
また、ユーザ2200の手2210の移動距離と、カーソル2113の移動距離との対応関係が1対1の関係であることは必須ではなく、ディスプレイ2110の大きさや、操作のしやすさによって対応関係を変えてもよい。
また、カーソル2113をディスプレイ2110に表示することは必須ではない。例えば操作対象機器2100は、ディスプレイ2110に映りこんだユーザ2200の手2210や、ディスプレイ2110の前面にハーフミラーを設置し、ハーフミラーに映ったユーザ2200の手2210をカーソル2113に見立てるようにしてもよい。
本実施形態におけるユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113が選択可能項目2111又は選択可能項目2112に重なると、処理をS3200に進める。本実施形態におけるユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113が選択可能項目2111又は選択可能項目2112に重なったか否かを、以下の方法により検知するようにした。ユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113の座標(X、Y)が、選択可能項目の領域(X'、Y')から(X''、Y'')までの中に含まれるか否かによって判断する。しかし、ユーザ動作認識部A1210は、これ以外の方法によって検知するようにしてもよい。また、本実施形態では選択可能項目の領域を直方体としたが、直方体に限る必要はない。また、S3200へと進む条件は、特定領域にカーソル2113が重なった場合に限らず、その他のユーザ動作、プログラム処理結果、時間又は外部入出力等を開始条件としてもよい。これによって、多種多様な状況において、本実施形態を適用することができる。
また、ユーザ2200の手2210の移動距離と、カーソル2113の移動距離との対応関係が1対1の関係であることは必須ではなく、ディスプレイ2110の大きさや、操作のしやすさによって対応関係を変えてもよい。
また、カーソル2113をディスプレイ2110に表示することは必須ではない。例えば操作対象機器2100は、ディスプレイ2110に映りこんだユーザ2200の手2210や、ディスプレイ2110の前面にハーフミラーを設置し、ハーフミラーに映ったユーザ2200の手2210をカーソル2113に見立てるようにしてもよい。
本実施形態におけるユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113が選択可能項目2111又は選択可能項目2112に重なると、処理をS3200に進める。本実施形態におけるユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113が選択可能項目2111又は選択可能項目2112に重なったか否かを、以下の方法により検知するようにした。ユーザ動作認識部A1210は、ディスプレイ2110上のカーソル2113の座標(X、Y)が、選択可能項目の領域(X'、Y')から(X''、Y'')までの中に含まれるか否かによって判断する。しかし、ユーザ動作認識部A1210は、これ以外の方法によって検知するようにしてもよい。また、本実施形態では選択可能項目の領域を直方体としたが、直方体に限る必要はない。また、S3200へと進む条件は、特定領域にカーソル2113が重なった場合に限らず、その他のユーザ動作、プログラム処理結果、時間又は外部入出力等を開始条件としてもよい。これによって、多種多様な状況において、本実施形態を適用することができる。
S3210で、動作指示生成部A1220は、ユーザ動作保持部A1202に保持されている、カーソル2113が選択可能項目2111に重なるまでのユーザ2200の手2210の動きに関する動作情報を取得する。
S3220で、動作指示生成部A1220は、S3210で取得した動作情報から、ユーザの将来動作であるカーソル2113が動く方向を推定する。本実施形態において、動作指示生成部A1220は、カーソル2113の動きの予測方法として、カーソル2113の手の位置に連動するカーソルと、選択可能項目との交差の直前の移動方向から、各方向への移動確率を求める。
本実施形態では、動作指示生成部A1220は、今後のカーソル2113の各方向への移動確率を図8のように仮定する。なお、図8は、確率分布の一例を示す図である。
図8は、縦軸が確率、横軸が現在の進行方向との角度差を示しており、縦軸と、横軸との交点が角度差ゼロ、確率ゼロを示す。このグラフでは、進行方向に変更を加えずそのまま進む確率が高く、進行方向との角度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A1220は、図8に示される各方向への移動確率をもとに移動確率の低い方向に対して、カーソル2113を移動させるような動作指示に関する動作指示情報を生成する。例えば、動作指示生成部A1220は、予め定められた確率よりも低くなる方向を求めて、求めた方向に対して移動させるような動作指示情報を生成する。なお、本実施形態において、動作指示生成部A1220は、直前の移動方向から確率を求めるようにしたが、カーソル2113の動きの予測方法はこれに限る必要はない。例えば、動作指示生成部A1220は、過去のユーザ2200の手2210の動きを学習した認識器を用いる方法等を用いてもよい。この認識器における学習方法に関して、例えば実際の表示矢印方向に対してどのような挙動を示したかに関する方向別ヒストグラム分布を用いて学習する方法等があるが、学習方法に関してもこれに限る必要なない。
また、動作指示生成部A1220は、カーソル2113が同じ動作をしていたとしても、同じ動作を指示することは必須ではなく、毎回異なる動作を指示してもよい。
また、動作指示生成部A1220によるユーザ2200への動作指示は、カーソル2113の移動に限ったものではなく、例えばユーザ2200の手2210を軸に、手のひらを回転させる等の動作指示であってもよい。
このように、動作指示生成部A1220がユーザへの多様な動作指示を可能にすることで、誤認識確率を少なくすることができる。
S3220で、動作指示生成部A1220は、S3210で取得した動作情報から、ユーザの将来動作であるカーソル2113が動く方向を推定する。本実施形態において、動作指示生成部A1220は、カーソル2113の動きの予測方法として、カーソル2113の手の位置に連動するカーソルと、選択可能項目との交差の直前の移動方向から、各方向への移動確率を求める。
本実施形態では、動作指示生成部A1220は、今後のカーソル2113の各方向への移動確率を図8のように仮定する。なお、図8は、確率分布の一例を示す図である。
図8は、縦軸が確率、横軸が現在の進行方向との角度差を示しており、縦軸と、横軸との交点が角度差ゼロ、確率ゼロを示す。このグラフでは、進行方向に変更を加えずそのまま進む確率が高く、進行方向との角度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A1220は、図8に示される各方向への移動確率をもとに移動確率の低い方向に対して、カーソル2113を移動させるような動作指示に関する動作指示情報を生成する。例えば、動作指示生成部A1220は、予め定められた確率よりも低くなる方向を求めて、求めた方向に対して移動させるような動作指示情報を生成する。なお、本実施形態において、動作指示生成部A1220は、直前の移動方向から確率を求めるようにしたが、カーソル2113の動きの予測方法はこれに限る必要はない。例えば、動作指示生成部A1220は、過去のユーザ2200の手2210の動きを学習した認識器を用いる方法等を用いてもよい。この認識器における学習方法に関して、例えば実際の表示矢印方向に対してどのような挙動を示したかに関する方向別ヒストグラム分布を用いて学習する方法等があるが、学習方法に関してもこれに限る必要なない。
また、動作指示生成部A1220は、カーソル2113が同じ動作をしていたとしても、同じ動作を指示することは必須ではなく、毎回異なる動作を指示してもよい。
また、動作指示生成部A1220によるユーザ2200への動作指示は、カーソル2113の移動に限ったものではなく、例えばユーザ2200の手2210を軸に、手のひらを回転させる等の動作指示であってもよい。
このように、動作指示生成部A1220がユーザへの多様な動作指示を可能にすることで、誤認識確率を少なくすることができる。
S3230で、動作指示生成部A1220は、将来のカーソル2113の動きの推定結果の信頼性をもとに、動作指示情報を生成する。より具体的には、動作指示生成部A1220は、動く可能性が低いと予測した方向で、かつ、他の選択可能項目2112と重ならない方向にカーソル2113を移動させる動作指示に関する動作指示情報を生成する。
動作指示としては、例えば「カーソル2113を上方向に30cm動かした後、右方向に60cm動かす」といった指示が挙げられる。しかし、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
動作指示生成部A1220は、S3200で生成した動作指示情報を、動作指示保持部A1203にあたるメモリに保持する。そして、S3300で、提示部A1300は、動作指示保持部A1203から動作指示情報を取得し、操作対象機器2100のディスプレイ2110に表示してユーザに提示する。提示部A1300は、例えば図9に示されるような表示画面を提示する。なお、図9は、ディスプレイ2110の表示画面の一例を示す図である。
図9の表示画面は、カーソル2113を移動させる方向及び距離を、矢印2114によってユーザ2200に提示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、矢印での表示に限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。これによって、操作対象機器2100は、ディスプレイ2110の表示への影響を最小限にして、ユーザによる操作対象機器2100の操作を実現することができるようになる。
動作指示としては、例えば「カーソル2113を上方向に30cm動かした後、右方向に60cm動かす」といった指示が挙げられる。しかし、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
動作指示生成部A1220は、S3200で生成した動作指示情報を、動作指示保持部A1203にあたるメモリに保持する。そして、S3300で、提示部A1300は、動作指示保持部A1203から動作指示情報を取得し、操作対象機器2100のディスプレイ2110に表示してユーザに提示する。提示部A1300は、例えば図9に示されるような表示画面を提示する。なお、図9は、ディスプレイ2110の表示画面の一例を示す図である。
図9の表示画面は、カーソル2113を移動させる方向及び距離を、矢印2114によってユーザ2200に提示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、矢印での表示に限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。これによって、操作対象機器2100は、ディスプレイ2110の表示への影響を最小限にして、ユーザによる操作対象機器2100の操作を実現することができるようになる。
S3400で、指示動作完了判定部A1230は、操作対象機器2100のディスプレイ2110上に表示されるカーソル2113が、生成された動作指示情報が示す動作指示である矢印2114の通りに動いたか否かを判定する。
図10は、S3400における指示動作完了判定処理の一例を示すフローチャートである。
S3410で、指示動作完了判定部A1230は、動作指示に関する動作をユーザが完了させたか否かを判定する。即ち、指示動作完了判定部A1230は、ディスプレイ2110上に表示されるカーソル2113が、動作指示である矢印2114の通りに動いたか否かを判定する。より具体的には、指示動作完了判定部A1230は、矢印2114が表示された後に、カーソル2113が上方向に27cmから33cmまでの間で動き、右方向に54cmから66cmまでの間で動いたことを検出した場合、指示動作が完了したと判定する。なお、本実施形態では、指示動作完了判定部A1230が判定に用いる許容誤差を、カーソル2113を上方向に30cm動かした後、右方向に60cm動かすといった動作指示が示す移動距離の10%と定めたが、これに限る必要はない。
また、指示動作完了判定部A1230は、判定にカーソル2113の移動距離を用いることは必須ではなく、例えば、予め定めた領域にカーソル2113が重なった場合に指示動作完了と判定するようにしてもよい。このように、操作対象機器2100は、多様に閾値を設定することで、例えば身体の動作が不自由なユーザへの使い勝手を確保することができるようになる。また、操作対象機器2100は、例えば身長が低いためディスプレイ2110の上部にカーソル2113を移動させることが困難な場合等、体格的に困難な動作を行わなければならないユーザへの使い勝手を確保することができるようになる。
また、本実施形態では、動作指示生成部A1220は、「カーソル2113を上に30cm動かした後、右に60cm動かす」といった動作指示を示す動作指示情報を生成した。提示部A1300は、二つの動作指示を表す矢印を一度に提示したが、ユーザ2200がカーソル2113を上方向に30cm動かしたことを判定した後に、右方向に60cm動かす動作指示を提示するようにしてもよい。
また、動作指示生成部A1220が予め全ての動作指示を生成することは必須ではない。例えば、動作指示生成部A1220は、ユーザ2200がカーソル2113を上に30cm動かした後で、更なる動作指示情報を生成し、提示部A1300が新たな動作指示を提示するようにしてもよい。これによって、操作対象機器2100は、誤認識の確率を少なくすることができる。
図10は、S3400における指示動作完了判定処理の一例を示すフローチャートである。
S3410で、指示動作完了判定部A1230は、動作指示に関する動作をユーザが完了させたか否かを判定する。即ち、指示動作完了判定部A1230は、ディスプレイ2110上に表示されるカーソル2113が、動作指示である矢印2114の通りに動いたか否かを判定する。より具体的には、指示動作完了判定部A1230は、矢印2114が表示された後に、カーソル2113が上方向に27cmから33cmまでの間で動き、右方向に54cmから66cmまでの間で動いたことを検出した場合、指示動作が完了したと判定する。なお、本実施形態では、指示動作完了判定部A1230が判定に用いる許容誤差を、カーソル2113を上方向に30cm動かした後、右方向に60cm動かすといった動作指示が示す移動距離の10%と定めたが、これに限る必要はない。
また、指示動作完了判定部A1230は、判定にカーソル2113の移動距離を用いることは必須ではなく、例えば、予め定めた領域にカーソル2113が重なった場合に指示動作完了と判定するようにしてもよい。このように、操作対象機器2100は、多様に閾値を設定することで、例えば身体の動作が不自由なユーザへの使い勝手を確保することができるようになる。また、操作対象機器2100は、例えば身長が低いためディスプレイ2110の上部にカーソル2113を移動させることが困難な場合等、体格的に困難な動作を行わなければならないユーザへの使い勝手を確保することができるようになる。
また、本実施形態では、動作指示生成部A1220は、「カーソル2113を上に30cm動かした後、右に60cm動かす」といった動作指示を示す動作指示情報を生成した。提示部A1300は、二つの動作指示を表す矢印を一度に提示したが、ユーザ2200がカーソル2113を上方向に30cm動かしたことを判定した後に、右方向に60cm動かす動作指示を提示するようにしてもよい。
また、動作指示生成部A1220が予め全ての動作指示を生成することは必須ではない。例えば、動作指示生成部A1220は、ユーザ2200がカーソル2113を上に30cm動かした後で、更なる動作指示情報を生成し、提示部A1300が新たな動作指示を提示するようにしてもよい。これによって、操作対象機器2100は、誤認識の確率を少なくすることができる。
指示動作完了判定部A1230は、S3410でユーザ2200による指示動作が完了したと判定した場合、処理を図4のS3500へと進める。そして、S3500で、指示動作完了時コマンド実行部A1240は、指示動作完了時コマンド保持部A1204に保持されている動作認識完了時コマンドを取得して実行する。即ち、指示動作完了時コマンド実行部A1240は、選択可能項目2111の選択の結果に対応するコマンドを指示動作完了時コマンド保持部A1204から取得して実行する。
指示動作完了判定部A1230は、S3410でユーザ2200による指示動作が完了していないと判定した場合、処理をS3420に進める。S3420で、指示動作完了判定部A1230は、生成された動作指示情報が示す指示動作と異なる動作をユーザ2200が行ったか否かを判定する。例えば本実施形態において、指示動作完了判定部A1230は、ユーザ2200が上方向に30cm動かさずに、右方向に30cm以上動かした場合、指示無視とみなす。指示動作完了判定部A1230は、指示無視と判定すると、認識失敗として認識動作を終了する。
指示動作完了判定部A1230は、S3420において指示無視と判定しなかった場合、処理をS3430に進める。S3430で、指示動作完了判定部A1230は、認識処理が開始されてから、予め定められた時間が経過したか否かを判定する。例えば本実施形態における指示動作完了判定部A1230は、認識処理が開始されてから10秒以上経過すると認識失敗と判定し、認識動作を終了する。一方、指示動作完了判定部A1230は、認識処理が開始されてから10秒以上経過していないと判定した場合、処理をS3410に戻し、一連の処理を繰り返す。
S3400で、指示動作完了判定部A1230は、認識失敗と判定した場合、処理をS3100に戻す。そして、動作指示生成部A1220は、異なる動作指示情報を生成する。更に、提示部A1300は、再度、動作指示情報が示す動作指示を提示する。但し、提示部A1300が異なる動作指示を5回提示しても、指示動作完了判定部A1230が動作完了と判定しない場合は、指示動作完了判定部A1230は、指示動作完了判定処理を中断する。こうすることによって、操作対象機器2100は、柔軟な認識処理と、少ない誤動作とを実現し、ユーザの使い勝手を向上させることができる。
指示動作完了判定部A1230は、S3410でユーザ2200による指示動作が完了していないと判定した場合、処理をS3420に進める。S3420で、指示動作完了判定部A1230は、生成された動作指示情報が示す指示動作と異なる動作をユーザ2200が行ったか否かを判定する。例えば本実施形態において、指示動作完了判定部A1230は、ユーザ2200が上方向に30cm動かさずに、右方向に30cm以上動かした場合、指示無視とみなす。指示動作完了判定部A1230は、指示無視と判定すると、認識失敗として認識動作を終了する。
指示動作完了判定部A1230は、S3420において指示無視と判定しなかった場合、処理をS3430に進める。S3430で、指示動作完了判定部A1230は、認識処理が開始されてから、予め定められた時間が経過したか否かを判定する。例えば本実施形態における指示動作完了判定部A1230は、認識処理が開始されてから10秒以上経過すると認識失敗と判定し、認識動作を終了する。一方、指示動作完了判定部A1230は、認識処理が開始されてから10秒以上経過していないと判定した場合、処理をS3410に戻し、一連の処理を繰り返す。
S3400で、指示動作完了判定部A1230は、認識失敗と判定した場合、処理をS3100に戻す。そして、動作指示生成部A1220は、異なる動作指示情報を生成する。更に、提示部A1300は、再度、動作指示情報が示す動作指示を提示する。但し、提示部A1300が異なる動作指示を5回提示しても、指示動作完了判定部A1230が動作完了と判定しない場合は、指示動作完了判定部A1230は、指示動作完了判定処理を中断する。こうすることによって、操作対象機器2100は、柔軟な認識処理と、少ない誤動作とを実現し、ユーザの使い勝手を向上させることができる。
上記のように、操作対象機器2100は、動的に生成した動作指示を用いて項目の選択をユーザに行わせることによって、ユーザの何気ない動作をジェスチャとして誤認識する可能性が少なくなる。これによって、操作対象機器2100は、ジェスチャによる機器操作における誤動作を少なくし、更に、ユーザによる確実な項目選択を可能にすることで、ユーザの使い勝手を向上させることができる。
以上、本実施形態では、ユーザがジェスチャによって画面に表示される項目を選択する場合において、操作対象機器2100がユーザに対する項目選択のための動作指示情報を動的に生成し、動作指示を提示する実施形態について述べた。本実施形態では、操作対象機器2100が、ユーザが項目にカーソルを重ねるまでの動作とは不連続な動作の指示を示す指示情報を生成することで、ユーザが意図せずに項目を選択することを抑止することができる。これにより、操作対象機器2100は、誤動作を少なくし、ユーザが効率的に操作対象機器を操作することを可能にする。
以上、本実施形態では、ユーザがジェスチャによって画面に表示される項目を選択する場合において、操作対象機器2100がユーザに対する項目選択のための動作指示情報を動的に生成し、動作指示を提示する実施形態について述べた。本実施形態では、操作対象機器2100が、ユーザが項目にカーソルを重ねるまでの動作とは不連続な動作の指示を示す指示情報を生成することで、ユーザが意図せずに項目を選択することを抑止することができる。これにより、操作対象機器2100は、誤動作を少なくし、ユーザが効率的に操作対象機器を操作することを可能にする。
<実施形態2>
以下、図面を参照して実施形態2について詳細に説明する。
実施形態1との主な差異は、機器操作装置101がユーザ動作を示す動作情報を取得するために、撮像データ保持や、それに基づく画像認識を行わず、操作部等を介して直接ポインティングデバイスの操作情報から得られるデータを用いる点である。
図11は、本実施形態の機器操作装置101のハードウェア構成の一例を示す図である。
機器操作装置101は、CPU102と、ROM103と、RAM104と、操作部I/F110と、操作部111と、ディスプレイI/F108と、ディスプレイ109と、バス105とを有する。
CPU102は、機器操作装置101全体を制御する。また、CPU102は、ROM103等に保存されているプログラムをRAM104にロードして実行することにより、後述の機器操作装置101の機能(ソフトウェア構成)及びフローチャートに係る処理を実現する。
ROM103は、各種のプログラムや、閾値に関するデータ等、各種のデータを格納している。
RAM104は、プログラムやデータを一時記憶するワークメモリとして機能する。
操作部I/F110は、バス105と、操作部111とを接続するインターフェースである。
操作部111は、ユーザが入力操作に用いるマウスや、キーボード等である。本実施形態では、操作部111がマウス等のポインティングデバイスであるものとして説明する。
ディスプレイI/F108は、バス105と、ディスプレイ109とを接続するインターフェースである。
ディスプレイ109は、後述する動作指示情報等を表示する表示部である。
バス105は、CPU102、ROM103、RAM104、操作部I/F1110及びディスプレイI/F108を互いに通信可能に接続するシステムバスである。
なお、操作部111及びディスプレイ109は、機器操作装置101の外部に接続される構成であってもよい。
以下、図面を参照して実施形態2について詳細に説明する。
実施形態1との主な差異は、機器操作装置101がユーザ動作を示す動作情報を取得するために、撮像データ保持や、それに基づく画像認識を行わず、操作部等を介して直接ポインティングデバイスの操作情報から得られるデータを用いる点である。
図11は、本実施形態の機器操作装置101のハードウェア構成の一例を示す図である。
機器操作装置101は、CPU102と、ROM103と、RAM104と、操作部I/F110と、操作部111と、ディスプレイI/F108と、ディスプレイ109と、バス105とを有する。
CPU102は、機器操作装置101全体を制御する。また、CPU102は、ROM103等に保存されているプログラムをRAM104にロードして実行することにより、後述の機器操作装置101の機能(ソフトウェア構成)及びフローチャートに係る処理を実現する。
ROM103は、各種のプログラムや、閾値に関するデータ等、各種のデータを格納している。
RAM104は、プログラムやデータを一時記憶するワークメモリとして機能する。
操作部I/F110は、バス105と、操作部111とを接続するインターフェースである。
操作部111は、ユーザが入力操作に用いるマウスや、キーボード等である。本実施形態では、操作部111がマウス等のポインティングデバイスであるものとして説明する。
ディスプレイI/F108は、バス105と、ディスプレイ109とを接続するインターフェースである。
ディスプレイ109は、後述する動作指示情報等を表示する表示部である。
バス105は、CPU102、ROM103、RAM104、操作部I/F1110及びディスプレイI/F108を互いに通信可能に接続するシステムバスである。
なお、操作部111及びディスプレイ109は、機器操作装置101の外部に接続される構成であってもよい。
図12は、本実施形態の機器操作装置101におけるソフトウェア構成等の一例を示す図である。
以下、図12に示される機器操作装置101ソフトウェア構成等について説明する。
動作データ取得部A9100は、カーソルを操作するためのポインティングデバイスの操作情報からカーソル操作をするユーザの動作情報を取得する。なお、動作データ取得部A9100がポインティングデバイスの操作情報を取得する処理は、操作情報取得処理の一例である。
計算部A9200は、様々な計算を行う。
ユーザ動作保持部A9201は、動作データ取得部A9100により取得された動作情報を保持する。
動作指示生成部A9210は、ユーザ動作保持部A9201に保持された動作情報から動作指示情報を生成する。
動作指示保持部A9203は、動作指示生成部A9210で生成された動作指示情報を保持する。
指示動作完了判定部A9220は、ユーザ動作保持部A9201に保持された動作情報と、動作指示保持部A9203に保持された動作指示情報とから、ユーザによる指示動作が完了したか否かを判定する。
指示動作完了時コマンド保持部A9202は、指示動作完了判定部A9220がユーザによる指示動作が完了したと判定した際に実行されるコマンドを保持する記憶領域である。
指示動作完了時コマンド実行部A9230は、指示動作完了判定部A9220がユーザによる指示動作が完了したと判定した際に、指示動作完了時コマンド保持部A9202に保持されたコマンドを実行する。
提示部A9300は、ユーザ動作保持部A9201に保持された動作情報と、動作指示保持部A9203に保持された動作指示情報とを提示する。より具体的には、提示部A9300は、前記動作情報と、前記動作指示情報とを、機器操作装置101が有するディスプレイ等の表示部を介してユーザに提示する。
なお、動作データ取得部A9100、計算部A9200及び提示部A9300は、上述の機能を有するハードウェアであってもよい。
以下、図12に示される機器操作装置101ソフトウェア構成等について説明する。
動作データ取得部A9100は、カーソルを操作するためのポインティングデバイスの操作情報からカーソル操作をするユーザの動作情報を取得する。なお、動作データ取得部A9100がポインティングデバイスの操作情報を取得する処理は、操作情報取得処理の一例である。
計算部A9200は、様々な計算を行う。
ユーザ動作保持部A9201は、動作データ取得部A9100により取得された動作情報を保持する。
動作指示生成部A9210は、ユーザ動作保持部A9201に保持された動作情報から動作指示情報を生成する。
動作指示保持部A9203は、動作指示生成部A9210で生成された動作指示情報を保持する。
指示動作完了判定部A9220は、ユーザ動作保持部A9201に保持された動作情報と、動作指示保持部A9203に保持された動作指示情報とから、ユーザによる指示動作が完了したか否かを判定する。
指示動作完了時コマンド保持部A9202は、指示動作完了判定部A9220がユーザによる指示動作が完了したと判定した際に実行されるコマンドを保持する記憶領域である。
指示動作完了時コマンド実行部A9230は、指示動作完了判定部A9220がユーザによる指示動作が完了したと判定した際に、指示動作完了時コマンド保持部A9202に保持されたコマンドを実行する。
提示部A9300は、ユーザ動作保持部A9201に保持された動作情報と、動作指示保持部A9203に保持された動作指示情報とを提示する。より具体的には、提示部A9300は、前記動作情報と、前記動作指示情報とを、機器操作装置101が有するディスプレイ等の表示部を介してユーザに提示する。
なお、動作データ取得部A9100、計算部A9200及び提示部A9300は、上述の機能を有するハードウェアであってもよい。
図13は、本実施形態における機器操作装置101の装置構成等の一例を示す図である。
ここでは、図12で上述した動作データ取得部A9100、計算部A9200及び提示部A9300を有する機器操作装置101の一例として操作対象機器10100を用いて説明する。
ユーザ2200は、マウス10120を移動させることによって操作対象機器10100のディスプレイ10110上に提示されるカーソル10113の位置を移動させ操作を行う。
また、上述したように、操作対象機器2100は、動作指示生成部A9210、指示動作完了判定部A9220及び指示動作完了時コマンド実行部A9230の機能を含む計算部A9200を有する。また、計算部A9200は、記憶領域として、ユーザ動作保持部A9201、指示動作完了時コマンド保持部A9202及び動作指示保持部A9203を有している。
以上が、本実施形態における機器操作装置の装置構成の一例である。
ここでは、図12で上述した動作データ取得部A9100、計算部A9200及び提示部A9300を有する機器操作装置101の一例として操作対象機器10100を用いて説明する。
ユーザ2200は、マウス10120を移動させることによって操作対象機器10100のディスプレイ10110上に提示されるカーソル10113の位置を移動させ操作を行う。
また、上述したように、操作対象機器2100は、動作指示生成部A9210、指示動作完了判定部A9220及び指示動作完了時コマンド実行部A9230の機能を含む計算部A9200を有する。また、計算部A9200は、記憶領域として、ユーザ動作保持部A9201、指示動作完了時コマンド保持部A9202及び動作指示保持部A9203を有している。
以上が、本実施形態における機器操作装置の装置構成の一例である。
図14は、本実施形態の処理の一例を示すフローチャートである。
S11100で、動作データ取得部A9100は、マウス等の操作によって移動されたカーソル10113の位置に関する動作情報をユーザ動作保持部A9201に保持する。
S11200で、動作指示生成部A9210は、ユーザ動作保持部A9201から取得したカーソル10113の位置に関する動作情報に基づいて、ユーザ2200に対する動作指示情報を生成する。そして、動作指示生成部A9210は、生成した動作指示情報を動作指示保持部A9203に保持する。なお、S11200において動作指示生成部A9210は、実施形態1の図4で上述したS3200と同様の方法により動作指示情報を生成する。
S11300で、提示部A9300は、動作指示保持部A9203から動作指示情報を取得し、ディスプレイ10110を介してユーザ2200に動作指示を提示する。
S11400で、指示動作完了判定部A9220は、動作指示保持部A9203から動作指示情報を取得し、更に、ユーザ動作保持部A9201からカーソル10113の位置に関する動作情報を取得する。そして、指示動作完了判定部A9220は、取得した動作指示情報と、動作情報とをもとに、ユーザ2200が指示動作を完了させたか否かを判定する。なお、指示動作完了判定部A9220による判定の手法は、実施形態1の図10等を用いて上述した手法と同様である。
S11500で、指示動作完了時コマンド実行部A9230は、指示動作完了時コマンド保持部A9202から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
以上が、本実施形態における機器操作装置の処理フローである。
S11100で、動作データ取得部A9100は、マウス等の操作によって移動されたカーソル10113の位置に関する動作情報をユーザ動作保持部A9201に保持する。
S11200で、動作指示生成部A9210は、ユーザ動作保持部A9201から取得したカーソル10113の位置に関する動作情報に基づいて、ユーザ2200に対する動作指示情報を生成する。そして、動作指示生成部A9210は、生成した動作指示情報を動作指示保持部A9203に保持する。なお、S11200において動作指示生成部A9210は、実施形態1の図4で上述したS3200と同様の方法により動作指示情報を生成する。
S11300で、提示部A9300は、動作指示保持部A9203から動作指示情報を取得し、ディスプレイ10110を介してユーザ2200に動作指示を提示する。
S11400で、指示動作完了判定部A9220は、動作指示保持部A9203から動作指示情報を取得し、更に、ユーザ動作保持部A9201からカーソル10113の位置に関する動作情報を取得する。そして、指示動作完了判定部A9220は、取得した動作指示情報と、動作情報とをもとに、ユーザ2200が指示動作を完了させたか否かを判定する。なお、指示動作完了判定部A9220による判定の手法は、実施形態1の図10等を用いて上述した手法と同様である。
S11500で、指示動作完了時コマンド実行部A9230は、指示動作完了時コマンド保持部A9202から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
以上が、本実施形態における機器操作装置の処理フローである。
次に、図13の装置構成等と、図14の処理フローとを用いた場合における処理の一例について説明する。
本実施形態では、ユーザ2200が、操作対象機器10100のディスプレイ10110上に表示される選択可能な項目を、マウス10120を用いたジェスチャによって選択する。ここで、ユーザは、操作対象機器10100に接続されているマウス10120を操作することによってディスプレイ10110上に表示されるカーソル10113を操作する。また、図15に示されるように、ディスプレイ10110に、選択可能項目10001、選択可能項目10002、選択可能項目10003及び選択可能項目10004が表示されているものとして説明を行う。なお、図15は、ディスプレイ2110の表示画面の一例を示す図である。ユーザ2200は、選択可能項目のひとつである選択可能項目10001を選択しようとしているものとする。
図14のS11100で、ユーザによるマウス10120の操作を介して入力された座標の情報がユーザ動作保持部A9201にあたるバッファメモリに一時的に保持される。
本実施形態における操作対象機器10100は、ディスプレイ10110上のカーソル10113が選択可能項目10001、選択可能項目10002、選択可能項目10003又は選択可能項目10004に重なると、処理をS11200へ進める。なお、操作対象機器10100が、ディスプレイ10110上のカーソル10113が選択可能項目10001等に重なったか否かを判定する方法は、上述したS3400の処理と同様であるため、説明を省略する。また、S11200へと進む条件は、特定領域にカーソル10113が重なった場合に限らず、その他のユーザ動作、プログラム処理結果、時間又は外部入出力等を開始条件としてもよい。これによって、多種多様な状況において、本実施形態を適用することができる。
本実施形態では、ユーザ2200が、操作対象機器10100のディスプレイ10110上に表示される選択可能な項目を、マウス10120を用いたジェスチャによって選択する。ここで、ユーザは、操作対象機器10100に接続されているマウス10120を操作することによってディスプレイ10110上に表示されるカーソル10113を操作する。また、図15に示されるように、ディスプレイ10110に、選択可能項目10001、選択可能項目10002、選択可能項目10003及び選択可能項目10004が表示されているものとして説明を行う。なお、図15は、ディスプレイ2110の表示画面の一例を示す図である。ユーザ2200は、選択可能項目のひとつである選択可能項目10001を選択しようとしているものとする。
図14のS11100で、ユーザによるマウス10120の操作を介して入力された座標の情報がユーザ動作保持部A9201にあたるバッファメモリに一時的に保持される。
本実施形態における操作対象機器10100は、ディスプレイ10110上のカーソル10113が選択可能項目10001、選択可能項目10002、選択可能項目10003又は選択可能項目10004に重なると、処理をS11200へ進める。なお、操作対象機器10100が、ディスプレイ10110上のカーソル10113が選択可能項目10001等に重なったか否かを判定する方法は、上述したS3400の処理と同様であるため、説明を省略する。また、S11200へと進む条件は、特定領域にカーソル10113が重なった場合に限らず、その他のユーザ動作、プログラム処理結果、時間又は外部入出力等を開始条件としてもよい。これによって、多種多様な状況において、本実施形態を適用することができる。
S11200で、動作指示生成部A9210は、ユーザ動作保持部A9201に保持されている動作情報が示すカーソル10113が選択可能項目10001に重なるまでの動きから、今後カーソル10113が動く方向と、速度とを推定する。本実施形態において、動作指示生成部A9210は、カーソル10113の動きの予測方法として、カーソル10113の直前の移動方向と、速度とから各方向への移動確率を求める。より具体的には、動作指示生成部A9210は、実施形態1と同様に図8を用いて各方向への移動確率を求める。また、動作指示生成部A9210は、速度の推定について、今後のカーソル10113の速度変化を図16のように仮定する。なお、図16は、確率分布の一例を示す図である。
図16は、縦軸が確率、横軸が現在の速度との速度差を示しており、縦軸と、横軸との交点が速度差ゼロ、確率ゼロを示す。このグラフでは、同じ進行速度でそのまま進む確率が高く、現在の速度との速度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A9210は、図16に示される速度変化確率をもとに確率が低くなる移動速度で、カーソル10113を移動させるような動作指示を示す動作指示情報を生成する。例えば、動作指示生成部A9210は、予め定められた確率よりも低くなる移動速度を求めて、求めた移動速度で移動させるような動作指示情報を生成する。なお、本実施形態において、動作指示生成部A9210は、直前の移動方向と、速度とから予め定められた確率を求めるようにしたが、カーソル10113の動きの予測方法はこれに限る必要はない。例えば、動作指示生成部A9210は、過去のカーソル10113の動きを学習した認識器を用いる方法等を用いてもよい。動作指示生成部A9210は、この認識器を用いることで、より精度よくカーソル10113の動きを予測することができる場合があり、その結果、誤認識を少なくすることが可能となる。
動作指示生成部A9210は、将来のカーソル10113の動きを予測し、動く可能性が低いと予測した方向、速度で、カーソル10113を移動させる動作指示を示す動作指示情報を生成する。動作指示としては、例えば「カーソル10113を秒速10cmで、上方向に30cm動かす」といった指示が挙げられる。しかし、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
図16は、縦軸が確率、横軸が現在の速度との速度差を示しており、縦軸と、横軸との交点が速度差ゼロ、確率ゼロを示す。このグラフでは、同じ進行速度でそのまま進む確率が高く、現在の速度との速度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A9210は、図16に示される速度変化確率をもとに確率が低くなる移動速度で、カーソル10113を移動させるような動作指示を示す動作指示情報を生成する。例えば、動作指示生成部A9210は、予め定められた確率よりも低くなる移動速度を求めて、求めた移動速度で移動させるような動作指示情報を生成する。なお、本実施形態において、動作指示生成部A9210は、直前の移動方向と、速度とから予め定められた確率を求めるようにしたが、カーソル10113の動きの予測方法はこれに限る必要はない。例えば、動作指示生成部A9210は、過去のカーソル10113の動きを学習した認識器を用いる方法等を用いてもよい。動作指示生成部A9210は、この認識器を用いることで、より精度よくカーソル10113の動きを予測することができる場合があり、その結果、誤認識を少なくすることが可能となる。
動作指示生成部A9210は、将来のカーソル10113の動きを予測し、動く可能性が低いと予測した方向、速度で、カーソル10113を移動させる動作指示を示す動作指示情報を生成する。動作指示としては、例えば「カーソル10113を秒速10cmで、上方向に30cm動かす」といった指示が挙げられる。しかし、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
動作指示生成部A9210は、S11200で生成した動作指示情報を、動作指示保持部A9203にあたるメモリに保持する。そして、S11300で、提示部A9300は、動作指示保持部A9203から動作指示情報を取得し、操作対象機器10100のディスプレイ10110に表示してユーザに提示する。提示部A1300は、例えば図17に示されるような表示画面を提示する。なお、図17は、ディスプレイ10110の表示画面の一例を示す図である。
図17の表示画面では、カーソル10113が選択可能項目10001と重なった状態で表示されており、選択可能項目10001は秒速10cmで上方向に30cm移動する。即ち、提示部A1300は、カーソル10113と、選択可能項目10001とを重ね合わせた状態のまま、秒速10cmで上方向に30cm移動することをユーザ2200に対して指示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、これに限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。これによって、操作対象機器10100は、ディスプレイ10110の表示における影響を最小限にして、ユーザによる操作対象機器10100の操作を実現することができるようになる。また、動きは直線に限る必要はなく、曲線であってもよい。
このように、操作対象機器10100がユーザへの多様な動作指示を可能にすることで、誤認識を抑止することが可能になる。
図17の表示画面では、カーソル10113が選択可能項目10001と重なった状態で表示されており、選択可能項目10001は秒速10cmで上方向に30cm移動する。即ち、提示部A1300は、カーソル10113と、選択可能項目10001とを重ね合わせた状態のまま、秒速10cmで上方向に30cm移動することをユーザ2200に対して指示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、これに限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。これによって、操作対象機器10100は、ディスプレイ10110の表示における影響を最小限にして、ユーザによる操作対象機器10100の操作を実現することができるようになる。また、動きは直線に限る必要はなく、曲線であってもよい。
このように、操作対象機器10100がユーザへの多様な動作指示を可能にすることで、誤認識を抑止することが可能になる。
S11400で、指示動作完了判定部A9220は、操作対象機器10100のディスプレイ10110上に表示されるカーソル10113が、生成された動作指示情報が示す動作指示10114の通りに動いたか否かを判定する。より具体的には、指示動作完了判定部A9220は、カーソル10113が移動する選択可能項目10001と重なった状態で上方向に30cm移動したかどうかで判定する。なお、カーソル10113が選択可能項目10001からはみ出した場合、動作指示生成部A9210は、新たな動作指示情報を生成する。また、動作指示生成部A9210が生成する動作指示情報が示す動作指示において、移動速度は秒速10cmに限る必要はなく、移動距離も30cmに限る必要はない。動作指示生成部A9210は、ユーザ2200の状態や、ユースケース等によって生成する動作指示情報を調節するようにしてもよい。
また、本実施形態において、動作指示生成部A9210は、「カーソル10113を秒速10cmで、上方向に30cm動かす」といった動作指示を示す動作指示情報を生成した。しかし、動作指示生成部A9210は、ユーザ2200がカーソル10113を選択可能項目10001と重なった状態で上方向に30cm動かしたことを判定した後に、更なる動作指示情報を生成するようにしてもよい。このように、操作対象機器10100は、ユーザへの多様な動作指示を可能にすることで、誤認識を抑止することが可能になる。
S11400で、指示動作完了判定部A9220は、指示動作が完了したと判定すると、処理をS11500に進める。
S11500で、指示動作完了時コマンド実行部A9230は、指示動作完了時コマンド保持部A9202に保持されている指示動作完了時コマンドを取得し、取得したコマンドを実行する。
また、本実施形態において、動作指示生成部A9210は、「カーソル10113を秒速10cmで、上方向に30cm動かす」といった動作指示を示す動作指示情報を生成した。しかし、動作指示生成部A9210は、ユーザ2200がカーソル10113を選択可能項目10001と重なった状態で上方向に30cm動かしたことを判定した後に、更なる動作指示情報を生成するようにしてもよい。このように、操作対象機器10100は、ユーザへの多様な動作指示を可能にすることで、誤認識を抑止することが可能になる。
S11400で、指示動作完了判定部A9220は、指示動作が完了したと判定すると、処理をS11500に進める。
S11500で、指示動作完了時コマンド実行部A9230は、指示動作完了時コマンド保持部A9202に保持されている指示動作完了時コマンドを取得し、取得したコマンドを実行する。
上記のように、操作対象機器10100は、動的に生成した動作指示情報を用いて項目の選択をユーザに行わせることによって、機器操作における誤動作を少なくし、確実な項目の選択を可能にすることができる。また、この場合、操作対象機器10100は、操作に伴うクリック動作の発生を必須としないため、セキュリティを確保することが可能である。更に、操作対象機器10100は、身体的にクリック操作が困難なユーザに対する利便性を向上させることができる。
以上、本実施形態では、ユーザがマウス等を用いて操作対象機器10100を操作する場合において、ユーザに対する機器操作のための動作指示情報を動的に生成し、動作指示を提示する実施形態について述べた。本実施形態では、操作対象機器10100が、ユーザが項目にカーソルを重ねるまでの動作(マウス操作)とは不連続な動作(マウス操作)の指示を示す指示情報を生成することで、ユーザが意図せずに項目を選択することを抑止することができる。
以上、本実施形態では、ユーザがマウス等を用いて操作対象機器10100を操作する場合において、ユーザに対する機器操作のための動作指示情報を動的に生成し、動作指示を提示する実施形態について述べた。本実施形態では、操作対象機器10100が、ユーザが項目にカーソルを重ねるまでの動作(マウス操作)とは不連続な動作(マウス操作)の指示を示す指示情報を生成することで、ユーザが意図せずに項目を選択することを抑止することができる。
<実施形態3>
以下、図面を参照して実施形態3について詳細に説明する。
本実施形態の機器操作装置101における機能構成等は、実施形態1で上述した図2と同様である。
図18は、本実施形態における機器操作装置101の装置構成等の一例を示す図である。
ここでは、動作データ取得部A1100、計算部A1200及び提示部A1300を有する機器操作装置101の一例として操作対象機器13100を用いて説明する。
動作データ取得部A1100は、カメラ13120を介してユーザ2200の手2210を捉える。ユーザ2200は、操作対象機器13100の三次元ディスプレイ13110上に提示されるカーソル13113を、手2210を動かすことにより移動させて操作対象機器13100の操作を行う。
以上が、本実施形態における機器操作装置の装置構成の一例である。
また、本実施形態における処理フローも、実施形態1で上述した図4と同様である。
以下、図面を参照して実施形態3について詳細に説明する。
本実施形態の機器操作装置101における機能構成等は、実施形態1で上述した図2と同様である。
図18は、本実施形態における機器操作装置101の装置構成等の一例を示す図である。
ここでは、動作データ取得部A1100、計算部A1200及び提示部A1300を有する機器操作装置101の一例として操作対象機器13100を用いて説明する。
動作データ取得部A1100は、カメラ13120を介してユーザ2200の手2210を捉える。ユーザ2200は、操作対象機器13100の三次元ディスプレイ13110上に提示されるカーソル13113を、手2210を動かすことにより移動させて操作対象機器13100の操作を行う。
以上が、本実施形態における機器操作装置の装置構成の一例である。
また、本実施形態における処理フローも、実施形態1で上述した図4と同様である。
次に、図3の装置構成と、図4の処理フローとを用いた場合における本実施形態の処理の一例について説明する。
本実施形態において、操作対象機器13100は、ユーザ2200が操作対象機器13100を操作中、ネットワーク経由で外部からのメッセージを受信する。ユーザ2200は、ハンドジェスチャによって三次元ディスプレイ13110上に表示される図19に示されるような受信メッセージ表示ボタン13111を選択する。そして、操作対象機器13100は、メッセージを表示する。なお、図19は、三次元ディスプレイ13110の表示画面の一例を示す図である。
動作データ取得部A1100は、図6に示されるようにカメラ2120を介してユーザ2200を撮像する。撮像データ4100の中にユーザ2200が映っており、ユーザ2200は、手2210によるジェスチャによって操作対象機器13100を操作している。
操作対象機器13100は、ユーザ2200が操作対象機器13100を操作している際に外部からメッセージを受信すると、メッセージを受信したことをユーザ2200に通知する。より具体的には、操作対象機器13100は、図19に示される受信メッセージ表示ボタン13111を表示する。操作対象機器13100は、ユーザ2200が受信メッセージ表示ボタン13111にカーソルを合わせると、受信したメッセージを表示する。
操作対象機器13100は、撮像データ4100を撮像データ保持部A1201にあたるバッファメモリに一時的に保持し、図4に示されるフローに従って処理する。なお、カメラ13120は、ステレオカメラTOFや、パターン投光等の測距部を有する。これにより、動作データ取得部A1100は、カメラ13120を介してユーザ動作に関する3次元的な動作情報(例えばユーザの手の3次元的位置)が抽出可能な撮像データを取得することができる。
本実施形態において、操作対象機器13100は、ユーザ2200が操作対象機器13100を操作中、ネットワーク経由で外部からのメッセージを受信する。ユーザ2200は、ハンドジェスチャによって三次元ディスプレイ13110上に表示される図19に示されるような受信メッセージ表示ボタン13111を選択する。そして、操作対象機器13100は、メッセージを表示する。なお、図19は、三次元ディスプレイ13110の表示画面の一例を示す図である。
動作データ取得部A1100は、図6に示されるようにカメラ2120を介してユーザ2200を撮像する。撮像データ4100の中にユーザ2200が映っており、ユーザ2200は、手2210によるジェスチャによって操作対象機器13100を操作している。
操作対象機器13100は、ユーザ2200が操作対象機器13100を操作している際に外部からメッセージを受信すると、メッセージを受信したことをユーザ2200に通知する。より具体的には、操作対象機器13100は、図19に示される受信メッセージ表示ボタン13111を表示する。操作対象機器13100は、ユーザ2200が受信メッセージ表示ボタン13111にカーソルを合わせると、受信したメッセージを表示する。
操作対象機器13100は、撮像データ4100を撮像データ保持部A1201にあたるバッファメモリに一時的に保持し、図4に示されるフローに従って処理する。なお、カメラ13120は、ステレオカメラTOFや、パターン投光等の測距部を有する。これにより、動作データ取得部A1100は、カメラ13120を介してユーザ動作に関する3次元的な動作情報(例えばユーザの手の3次元的位置)が抽出可能な撮像データを取得することができる。
S3100で、ユーザ動作認識部A1210は、撮像データ保持部A1201から撮像データを取得する。そして、ユーザ動作認識部A1210は、背景差分を用いて画像中からユーザ2200の領域を抽出し、人物の手の領域を学習させた認識器を用いてユーザ2200の手2210の位置をユーザ2200の領域から推定する。また、ユーザ動作認識部A1210は、画像中の手2210のサイズから、奥行き方向への移動量を推定する。ユーザ動作認識部A1210は、推定した手2210の領域に関する情報を、ユーザ動作保持部A1202にあたるメモリに保持する。
提示部A1300は、ユーザ動作保持部A1202から手2210の領域に関する情報を取得し、操作対象機器13100の三次元ディスプレイ13110に、手2210の領域と対応した位置にカーソル13113を描画する。なお、ここでいう対応とは、ユーザ2200が手2210を上方向に10cmだけ動かせば、三次元ディスプレイ13110上のカーソル13113も上方向に10cmだけ移動する関係のことをいう。また、これは上方向に限ることではない。即ち、ユーザ2200が手2210を右方向に10cmだけ動かせば、三次元ディスプレイ13110上のカーソル13113も右方向に10cmだけ移動する。他の方向に関しても同様である。
なお、ユーザ動作認識部A1210が撮像データ4100からユーザ2200の領域を抽出する方法は、背景差分に限る必要はなく、撮像データ4100中からユーザ2200の領域を抽出することができれば他の方法でもよい。また、ユーザ動作認識部A1210がユーザ2200の領域から手2210の領域を抽出する方法についても、認識器を用いることは必須ではなく、ユーザ2200の手2210の領域を抽出することができれば他の方法でもよい。
提示部A1300は、ユーザ動作保持部A1202から手2210の領域に関する情報を取得し、操作対象機器13100の三次元ディスプレイ13110に、手2210の領域と対応した位置にカーソル13113を描画する。なお、ここでいう対応とは、ユーザ2200が手2210を上方向に10cmだけ動かせば、三次元ディスプレイ13110上のカーソル13113も上方向に10cmだけ移動する関係のことをいう。また、これは上方向に限ることではない。即ち、ユーザ2200が手2210を右方向に10cmだけ動かせば、三次元ディスプレイ13110上のカーソル13113も右方向に10cmだけ移動する。他の方向に関しても同様である。
なお、ユーザ動作認識部A1210が撮像データ4100からユーザ2200の領域を抽出する方法は、背景差分に限る必要はなく、撮像データ4100中からユーザ2200の領域を抽出することができれば他の方法でもよい。また、ユーザ動作認識部A1210がユーザ2200の領域から手2210の領域を抽出する方法についても、認識器を用いることは必須ではなく、ユーザ2200の手2210の領域を抽出することができれば他の方法でもよい。
また、ユーザ動作認識部A1210は、撮像データ4100の中からユーザ2200の領域を抽出した後にユーザ2200の手2210の領域を推定するようにしたが、撮像データ4100から直接ユーザ2200の手2210の領域を推定するようにしてもよい。
また、ユーザ2200の手2210の位置と対応した位置に表示するカーソル13113についても、矢印の形状であることは必須ではなく、ユーザがポインティングしている位置がわかれば、他の表示方法であってもよい。
また、ユーザ2200の手2210の移動距離と、カーソル13113の移動距離との対応関係が1対1の関係であることは必須ではなく、三次元ディスプレイ12110の大きさや、操作のしやすさによって対応関係を変えてもよい。
また、本実施形態の操作対象機器13100がユーザ2200の手2210の奥行きを推定する方法についても、手2210のサイズから推定することは必須ではなく、三次元カメラや、測距センサ等を使う方法であってもよい。
また、ユーザ2200の手2210の位置と対応した位置に表示するカーソル13113についても、矢印の形状であることは必須ではなく、ユーザがポインティングしている位置がわかれば、他の表示方法であってもよい。
また、ユーザ2200の手2210の移動距離と、カーソル13113の移動距離との対応関係が1対1の関係であることは必須ではなく、三次元ディスプレイ12110の大きさや、操作のしやすさによって対応関係を変えてもよい。
また、本実施形態の操作対象機器13100がユーザ2200の手2210の奥行きを推定する方法についても、手2210のサイズから推定することは必須ではなく、三次元カメラや、測距センサ等を使う方法であってもよい。
本実施形態では、操作対象機器13100が外部からメッセージを受信すると、S3200の処理を実行する。なお、操作対象機器13100がS3200の処理を開始する際の開始条件は、外部からのメッセージ受信に限る必要はない。例えば、操作対象機器13100は、スイッチが押下された場合等、外部からの様々な入出力や、その他のユーザ動作、プログラム処理結果、時間等に係る予め定められた条件を開始条件としてもよい。これによって、多種多様な状況において、本実施形態を適用することができる。
S3200で、動作指示生成部A1220は、ユーザ動作保持部A1202に保持されている動作情報に基づくカーソル13113の動きから、今後カーソル13113が動く方向を推定する。なお、本実施形態において、動作指示生成部A1220は、カーソル13113の動きの予測方法として、カーソル13113の直前の移動方向から、各方向への移動確率を求める。より具体的には、動作指示生成部A1220は、各方向への移動確率について、操作者に平行する面の移動確率を実施形態1と同様に図8を用いて求める。また、動作指示生成部A1220は、奥行き方向への移動確率を、図20を用いて求める。なお、図20は、移動確率の一例を示す図である。
本実施形態では、今後のカーソル13113の速度変化を図20のように仮定する。図20は、縦軸が確率、横軸が現在のカーソルの奥行き方向への移動速度変化の確率を示しており、縦軸と、横軸との交点が速度差ゼロ、確率ゼロを示す。このグラフでは、同じ進行速度でそのまま進む確率が高く、現在の速度との速度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A1220は、図20に示される奥行き方向への速度変化確率をもとに確率の低い移動速度で、カーソル13113を移動させるような動作指示を示す動作指示情報を生成する。例えば、動作指示生成部A1220は、予め定められた確率よりも低くなる移動速度を求めて、求めた移動速度で移動させるような動作指示情報を生成する。
S3200で、動作指示生成部A1220は、ユーザ動作保持部A1202に保持されている動作情報に基づくカーソル13113の動きから、今後カーソル13113が動く方向を推定する。なお、本実施形態において、動作指示生成部A1220は、カーソル13113の動きの予測方法として、カーソル13113の直前の移動方向から、各方向への移動確率を求める。より具体的には、動作指示生成部A1220は、各方向への移動確率について、操作者に平行する面の移動確率を実施形態1と同様に図8を用いて求める。また、動作指示生成部A1220は、奥行き方向への移動確率を、図20を用いて求める。なお、図20は、移動確率の一例を示す図である。
本実施形態では、今後のカーソル13113の速度変化を図20のように仮定する。図20は、縦軸が確率、横軸が現在のカーソルの奥行き方向への移動速度変化の確率を示しており、縦軸と、横軸との交点が速度差ゼロ、確率ゼロを示す。このグラフでは、同じ進行速度でそのまま進む確率が高く、現在の速度との速度差が大きくなるにつれて、確率が低くなることがわかる。動作指示生成部A1220は、図20に示される奥行き方向への速度変化確率をもとに確率の低い移動速度で、カーソル13113を移動させるような動作指示を示す動作指示情報を生成する。例えば、動作指示生成部A1220は、予め定められた確率よりも低くなる移動速度を求めて、求めた移動速度で移動させるような動作指示情報を生成する。
なお、本実施形態において、動作指示生成部A1220は、直前の移動方向と、速度とから予め定められた確率を求めるようにしたが、カーソル13113の動きの予測方法はこれに限る必要はない。例えば、動作指示生成部A1220は、過去のカーソル13113の動きを学習した認識器を用いる方法等により確率を求めるようにしてもよい。また、動作指示生成部A1220は、速度変化を確率として求めるのではなく、カーソル13113の将来位置を確率として求めるようにしてもよい。
また、動作指示生成部A1220は、将来のカーソル13113の動きを予測し、動く可能性が低いと予測した方向で、かつ、他の選択可能項目と重ならない方向にカーソル13113を移動させるような動作指示を示す動作指示情報を生成する。動作指示としては、例えば「カーソル13113を移動させて表示された受信メッセージ表示ボタン13111に重ねる」のような指示が挙げられる。また、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
S3300で、提示部A1300は、S3200で生成され動作指示保持部A1203にあたるメモリに保持されている動作指示情報を取得し、操作対象機器13100の三次元ディスプレイ13110上に表示する。例えば、提示部A1300は、三次元ディスプレイ13110上に図19のような画面表示を表示する。図19は、カーソル13113を三次元ディスプレイ13110の左上に表示された受信メッセージ表示ボタン13111に重ねることを指示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、これに限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。
また、動作指示生成部A1220は、将来のカーソル13113の動きを予測し、動く可能性が低いと予測した方向で、かつ、他の選択可能項目と重ならない方向にカーソル13113を移動させるような動作指示を示す動作指示情報を生成する。動作指示としては、例えば「カーソル13113を移動させて表示された受信メッセージ表示ボタン13111に重ねる」のような指示が挙げられる。また、その時点でユーザ2200が将来行う確率が予め定められた閾値よりも低いものであれば、ジェスチャや、発話等の動作指示であってもよい。
S3300で、提示部A1300は、S3200で生成され動作指示保持部A1203にあたるメモリに保持されている動作指示情報を取得し、操作対象機器13100の三次元ディスプレイ13110上に表示する。例えば、提示部A1300は、三次元ディスプレイ13110上に図19のような画面表示を表示する。図19は、カーソル13113を三次元ディスプレイ13110の左上に表示された受信メッセージ表示ボタン13111に重ねることを指示している。なお、提示部A1300によるユーザ2200への動作指示に関する提示方法は、これに限る必要はない。例えば、提示部A1300は、文字や、音声等で動作指示を提示するようにしてもよい。
S3400で、指示動作完了判定部A1230は、操作対象機器13100の三次元ディスプレイ13110上に表示されるカーソル13113が、生成された動作指示情報が示す動作指示の通りに動いたか否かを判定する。より具体的には、指示動作完了判定部A1230は、カーソル13113が動作指示である受信メッセージ表示ボタン13111と重なったかどうかで判定する。動作指示生成部A1220は、受信メッセージ表示ボタン13111が表示されてから10秒間経過してもカーソル13113が受信メッセージ表示ボタン13111と重ならない場合は、新たな動作指示情報を生成する。なお、動作指示生成部A1220が新たな動作指示情報を生成するまでの時間は10秒間に限る必要はなく、ユーザ2200の状態や、ユースケース、機器操作の状態等によって調節するようにしてもよい。また、状況によっては、動作指示生成部A1220が一度生成した動作指示情報を時間経過に応じて生成しなおさなくてもよい場合もある。また、本実施形態において、動作指示生成部A1220は、「カーソル13113を受信メッセージ表示ボタン13111と重ねる」といった動作指示を示す動作指示情報を生成した。しかし、動作指示生成部A1220は、ユーザ2200がカーソル13113を受信メッセージ表示ボタン13111と重ねた後に、更なる動作指示情報を生成するようにしてもよい。このように、動作指示生成部A1220がユーザへの多様な動作指示を可能にすることで、誤認識確を抑止することが可能になる。S3400で、指示動作完了判定部A1230は、指示動作が完了したと判定すると、処理をS3500に進める。
S3500で、指示動作完了時コマンド実行部A1240は、指示動作完了時コマンド保持部A1204から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
S3500で、指示動作完了時コマンド実行部A1240は、指示動作完了時コマンド保持部A1204から指示動作が完了した際に実行するコマンドを取得し、取得したコマンドを実行する。
上記のように、操作対象機器13100は、動的に生成した動作指示を用いて項目の選択をユーザに行わせることによって、ジェスチャによる機器操作における誤動作を少なくし、確実な項目選択を可能にし、更に、ユーザの使い勝手を向上させることができる。
以上、本実施形態では、三次元ディスプレイを備えた操作対象機器13100とのインタラクションにおいて、操作対象機器13100がユーザに対する動作指示を動的に生成して、提示する実施形態について述べた。本実施形態において、操作対象機器13100は、メッセージを受信したことをユーザ2200に通知し、受信メッセージ表示ボタン13111を表示するまでの動作といった動作指示を行うまでの動作とは不連続な動作の指示を示す動作指示情報を生成する。これにより、操作対象機器13100は、ユーザが意図せずに項目を選択することを抑止している。
また、ユーザが三次元ディスプレイ上に表示される項目を備える機器を操作する場合は、二次元ディスプレイ上に表示される項目を操作する場合と異なり、画面に表示されるカーソル位置に影響を与えないジェスチャを定義するのが困難である。それは、以下の理由による。二次元ディスプレイ上に表示される項目に対するカーソル等の動きに対し、それと直交する軸(三つ目の空間軸)上でのカーソル等の動きは定義できる。しかし、三次元ディスプレイ上に表示される項目に対するカーソル等の動きに直交する軸(四つ目の空間軸)は定義できないからである。それに対して、本実施形態の操作対象機器13100は、動的に生成する動作指示情報が示す動作指示をユーザに提示する。これにより、操作対象機器13100は、誤動作を少なくし、ユーザが確実に機器を操作することを可能にする。
以上、本実施形態では、三次元ディスプレイを備えた操作対象機器13100とのインタラクションにおいて、操作対象機器13100がユーザに対する動作指示を動的に生成して、提示する実施形態について述べた。本実施形態において、操作対象機器13100は、メッセージを受信したことをユーザ2200に通知し、受信メッセージ表示ボタン13111を表示するまでの動作といった動作指示を行うまでの動作とは不連続な動作の指示を示す動作指示情報を生成する。これにより、操作対象機器13100は、ユーザが意図せずに項目を選択することを抑止している。
また、ユーザが三次元ディスプレイ上に表示される項目を備える機器を操作する場合は、二次元ディスプレイ上に表示される項目を操作する場合と異なり、画面に表示されるカーソル位置に影響を与えないジェスチャを定義するのが困難である。それは、以下の理由による。二次元ディスプレイ上に表示される項目に対するカーソル等の動きに対し、それと直交する軸(三つ目の空間軸)上でのカーソル等の動きは定義できる。しかし、三次元ディスプレイ上に表示される項目に対するカーソル等の動きに直交する軸(四つ目の空間軸)は定義できないからである。それに対して、本実施形態の操作対象機器13100は、動的に生成する動作指示情報が示す動作指示をユーザに提示する。これにより、操作対象機器13100は、誤動作を少なくし、ユーザが確実に機器を操作することを可能にする。
<その他の実施形態>
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。
以上、上述した各実施形態によれば、操作対象機器をジェスチャによって効率的に操作することを可能とし、かつ、誤操作を少なくすることができる。
以上、本発明の好ましい形態について詳述したが、本実施形態は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
Claims (12)
- 機器を操作するユーザの動作情報に基づいて、前記機器の操作に係る動作指示を表示部を介してユーザに提示する提示手段と、
前記提示手段により提示された動作指示に対応する動作をユーザが完了させたか否かを判定する判定手段と、
前記判定手段により完了させたと判定された場合、前記動作の結果に基づくコマンドを実行する実行手段と、
を有する情報処理装置。 - 機器を操作するユーザの動作を認識する認識手段と、
前記認識手段により認識された動作に係る動作情報に基づいて、前記ユーザが前記機器を操作する際の動作指示を示す動作指示情報を生成する生成手段と、
を更に有し、
前記提示手段は、前記生成手段により生成された動作指示情報が示す動作指示を表示部を介してユーザに提示する請求項1記載の情報処理装置。 - 前記機器を操作するユーザの撮像情報を取得する撮像情報取得手段を更に有し、
前記認識手段は、前記撮像情報取得手段により取得された撮像情報に基づいて前記ユーザの動作を認識する請求項2記載の情報処理装置。 - 操作部を介して受け付けた操作情報を取得する操作情報取得手段を更に有し、
前記認識手段は、前記操作情報取得手段により取得された操作情報に基づいて前記ユーザの動作を認識する請求項2記載の情報処理装置。 - 前記生成手段は、前記動作情報に基づいてユーザが行う動作を推定し、前記推定した動作に基づいて前記動作指示情報を生成する請求項2乃至4何れか1項記載の情報処理装置。
- 前記生成手段は、前記推定した動作の信頼性に関する確率を求め、前記求めた確率が予め定められた確率よりも低くなる動作の指示を示す動作指示情報を生成する請求項5記載の情報処理装置。
- 前記判定手段は、前記提示手段により提示された動作指示に係る動作指示情報と、前記動作指示が提示された後に前記認識手段により認識されたユーザの動作に係る動作情報とに基づいて、前記動作指示に対応する動作をユーザが完了させたか否かを判定する請求項2乃至6何れか1項記載の情報処理装置。
- 前記判定手段は、前記動作指示が示す動作に係る移動距離と、前記動作情報が示す動作に係る移動距離との差が予め定められた閾値よりも小さいか否かに基づいて、前記動作指示に対応する動作をユーザが完了させたか否かを判定する請求項7記載の情報処理装置。
- 前記判定手段は、前記動作指示に対応する動作をユーザが予め定められた時間が経過するまでに行ったか否かに基づいて、前記動作指示に対応する動作をユーザが完了させたか否かを判定する請求項7又は8記載の情報処理装置。
- 前記判定手段により前記動作指示に対応する動作をユーザが完了させなかったと判定された場合、
前記生成手段は、前記動作情報に基づいて、既に生成した動作指示情報とは異なる動作指示情報を生成し、
前記提示手段は、前記生成手段により生成された前記異なる動作指示情報が示す動作指示を表示部を介してユーザに提示する請求項2乃至9何れか1項記載の情報処理装置。 - 情報処理装置が実行する情報処理方法であって、
機器を操作するユーザの動作情報に基づいて、前記機器の操作に係る動作指示を表示部を介してユーザに提示する提示ステップと、
前記提示ステップにより提示された動作指示に対応する動作をユーザが完了させたか否かを判定する判定ステップと、
前記判定ステップにより完了させたと判定された場合、前記動作の結果に基づくコマンドを実行する実行ステップと、
を含む情報処理方法。 - コンピュータに、
機器を操作するユーザの動作情報に基づいて、前記機器の操作に係る動作指示を表示部を介してユーザに提示する提示ステップと、
前記提示ステップにより提示された動作指示に対応する動作をユーザが完了させたか否かを判定する判定ステップと、
前記判定ステップにより完了させたと判定された場合、前記動作の結果に基づくコマンドを実行する実行ステップと、
を実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013099609A JP2014219879A (ja) | 2013-05-09 | 2013-05-09 | 情報処理装置、情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2013099609A JP2014219879A (ja) | 2013-05-09 | 2013-05-09 | 情報処理装置、情報処理方法及びプログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2014219879A true JP2014219879A (ja) | 2014-11-20 |
Family
ID=51938254
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013099609A Pending JP2014219879A (ja) | 2013-05-09 | 2013-05-09 | 情報処理装置、情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2014219879A (ja) |
-
2013
- 2013-05-09 JP JP2013099609A patent/JP2014219879A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9069386B2 (en) | Gesture recognition device, method, program, and computer-readable medium upon which program is stored | |
US9128526B2 (en) | Operation control device, operation control method, and computer-readable recording medium for distinguishing an intended motion for gesture control | |
JP6167529B2 (ja) | 画像投影装置、画像投影システム、制御方法およびプログラム | |
JP6689559B2 (ja) | 画像投影装置、システム、画像投影方法およびプログラム | |
US9996160B2 (en) | Method and apparatus for gesture detection and display control | |
US10156938B2 (en) | Information processing apparatus, method for controlling the same, and storage medium | |
JP2016521894A (ja) | 検出されたジェスチャーに基づいてデバイス動作を実行するためのシステムおよび方法 | |
CA2909182C (en) | Virtual touch screen | |
US10346992B2 (en) | Information processing apparatus, information processing method, and program | |
US8963867B2 (en) | Display device and display method | |
CN105474164B (zh) | 间接输入的歧义消除 | |
JP6360509B2 (ja) | 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置 | |
US10712917B2 (en) | Method for selecting an element of a graphical user interface | |
JP5558899B2 (ja) | 情報処理装置、その処理方法及びプログラム | |
JP2014219879A (ja) | 情報処理装置、情報処理方法及びプログラム | |
JP6289655B2 (ja) | 画面操作装置及び画面操作方法 | |
JP2013109538A (ja) | 入力方法及び入力装置 | |
JP5675196B2 (ja) | 情報処理装置及びその制御方法 | |
JP2021177313A (ja) | 情報処理装置及びユーザの入力操作に基づく情報処理方法並びに該方法を実行するためのコンピュータプログラム | |
US10817150B2 (en) | Method for selecting an element of a graphical user interface | |
US10175825B2 (en) | Information processing apparatus, information processing method, and program for determining contact on the basis of a change in color of an image | |
JP6248723B2 (ja) | 座標検知システム、座標検知方法、情報処理装置及びプログラム | |
US20170131824A1 (en) | Information processing apparatus, information processing method, and information processing program | |
JP2019135654A (ja) | 画像投影装置、システム、画像投影方法およびプログラム | |
EP2677401B1 (en) | Image data generation using a handheld electronic device |