JP2017041002A - 表示制御装置、表示制御方法及び表示制御用プログラム - Google Patents
表示制御装置、表示制御方法及び表示制御用プログラム Download PDFInfo
- Publication number
- JP2017041002A JP2017041002A JP2015160975A JP2015160975A JP2017041002A JP 2017041002 A JP2017041002 A JP 2017041002A JP 2015160975 A JP2015160975 A JP 2015160975A JP 2015160975 A JP2015160975 A JP 2015160975A JP 2017041002 A JP2017041002 A JP 2017041002A
- Authority
- JP
- Japan
- Prior art keywords
- hand
- display control
- screen
- display
- operator
- 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
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- 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
- G06F3/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/0304—Detection arrangements using opto-electronic means
-
- 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
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- 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
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- 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
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Position Input By Displaying (AREA)
- Multimedia (AREA)
Abstract
【課題】操作者の手の形状が変化した場合の操作性の低下を抑制する表示装置、表示制御方法及び表示制御プログラムを提供する。【解決手段】表示制御装置200は、操作者の操作に基づくカーソルを表示装置300の画面に表示させる。操作者の手の形状及び位置に基づく操作の種別を特定する操作特定部210と、操作者の第1形状の手による第1操作に基づいて、第1形状の手が示す第1位置に対応する画面内位置にカーソルを表示させた後に、第1位置と異なる第2位置を示す第2形状の手による、第1操作と所定の関係を有する第2操作が検出された場合に、第1位置と第2位置との差分に基づいて、第1位置に対応する画面内位置にカーソルを継続して表示させる表示制御部203と、を有する。【選択図】図3
Description
本発明は、操作者の操作に基づく指示用画像の表示位置を制御する表示制御装置、表示制御方法及び表示制御用プログラムに関するものである。
機器を操作する操作者が、ディスプレイに表示された操作画面を見ながら、ディスプレイの近くで特定の動作(以下、「ジェスチャ」という)をすることにより、操作者が機器を操作できるようにする方法が提案されている。特許文献1には、操作者の手の動きを検出し、検出した手の動きに応じてディスプレイに表示されたカーソルを動かす表示制御装置が開示されている。また、特許文献2には、操作者の手の形状及び動きを検出し、操作者の手の形状及び動きに対応する処理を実行するコンピュータが開示されている。
しかしながら、従来は、手の中心位置が手の位置として特定されていたので、手の形状を変化させることにより、手の位置が変化したと認識される場合があった。その結果、操作者が手の形状を変化させたことに伴ってカーソルの表示位置が変化してしまうことにより、操作性が低下してしまうという問題があった。例えば、手を握った状態で操作する第1操作から、人差し指だけを伸ばした状態で人差し指の先端で操作する第2操作に切り替えた場合に、操作者の意図に反してカーソルの表示位置が変化してしまうと、ユーザが操作をしづらくなるという問題が生じてしまう。
そこで、本発明は上述した点に鑑みてなされたものであり、操作者の手の形状が変化した場合の操作性の低下を抑制できる表示制御装置、表示制御方法及び表示制御用プログラムを提供することを目的とする。
上記の課題を解決するために、本発明の表示制御装置は、操作者の操作に基づく指示用画像を表示装置の画面に表示させる表示制御装置であって、前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定手段と、前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させた後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させる表示制御手段と、を有することを特徴とする。
本発明の表示制御方法は、操作者の操作に基づく指示用画像を表示装置の画面に表示させる表示制御方法であって、前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定ステップと、前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させる第1表示ステップと、前記第1表示ステップの後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させる第2表示ステップと、を有することを特徴とする。
本発明の表示制御用プログラムは、コンピュータに、操作者の操作に基づく指示用画像を表示装置の画面に表示させるための表示制御用プログラムであって、前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定ステップと、前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させる第1表示ステップと、前記第1表示ステップの後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させる第2表示ステップと、を実行させることを特徴とする。
本発明によれば、操作者の手の形状が変化した場合の操作性の低下を抑制できるという効果を奏する。
<第1の実施形態>
[表示システムSの概要]
図1は、第1の実施形態に係る表示システムSの構成の概要を示す第1の図である。表示システムSは、撮像装置100、表示制御装置200及び表示装置300を備える。
撮像装置100は、例えばカメラであり、撮像範囲101の撮像データを表示制御装置200に出力する。
[表示システムSの概要]
図1は、第1の実施形態に係る表示システムSの構成の概要を示す第1の図である。表示システムSは、撮像装置100、表示制御装置200及び表示装置300を備える。
撮像装置100は、例えばカメラであり、撮像範囲101の撮像データを表示制御装置200に出力する。
表示制御装置200は、撮像装置100から取得した撮像データに基づいて、表示装置300から離れた位置における操作者102のジェスチャを検出し、表示装置300の表示画面301におけるジェスチャに対応する位置に、指示用画像を表示させる。指示用画像は、操作者102の操作に基づいて表示画面301に表示されるグラフィック画像であり、例えばカーソル302である。
表示制御装置200は、撮像データに操作者102が含まれるか否かを判定し、操作者102が含まれると判定した場合、操作者102の身体の輪郭を示す人物情報に基づいて、操作範囲103を決定する。表示制御装置200は、例えばパターンマッチングにより、操作者102の肩、腕及び手の位置を特定し、特定した位置に基づいて、操作者102が手を動かせる範囲以下の大きさの操作範囲103を決定する。この際、表示制御装置200は、操作範囲103の形状を、表示画面301の形状と相似する長方形であり、かつ各辺が表示画面301の各辺と平行になるように決定する。
表示制御装置200は、身体の所定の部位(例えば、図1(a)における手104及び図1(b)における手105)の動き及び形状を検出し、検出した動き及び形状の変化に基づいて、ジェスチャの種別を判定することで、操作者102の操作内容を特定する。そして、表示制御装置200は、操作内容に応じて、表示装置300の表示画面301の表示内容を制御する。
具体的には、表示制御装置200は、図1(a)に示すように、操作者102が握った状態の手104を操作範囲103の外から操作範囲103内に移動させると、操作範囲103における手104の位置に対応する表示画面301内の位置に、カーソル302を表示させる。この状態で、表示画面301の範囲とカーソル302の位置との関係は、操作範囲103と手104の位置との関係に等しい。操作者102が、操作範囲103内で手104を左から右に動かした場合、表示制御装置200は、表示画面301上に表示されるカーソル302が左から右に動くようにカーソル302の表示状態を制御する。
また、図1(b)に示すように、表示制御装置200は、操作者102が指106を伸ばしたポイント状態の手105を操作範囲103の外から操作範囲103内に移動させると、操作範囲103における指106の位置に対応する表示画面301の位置に、カーソル302を表示させる。操作者102が、操作範囲103内で指106を左から右に動かした場合、表示制御装置200は、表示画面301上に表示されるカーソル302が左から右に動くようにカーソル302の表示状態を制御する。
図2は、第1の実施形態に係る表示システムSの構成の概要を示す第2の図である。図2(a)は、図1(a)と同一の状態を示している。すなわち、操作者102が、握った状態の手104を操作範囲103の外から操作範囲103内に移動させた状態を示している。
図2(b)は、操作者102が、図2(a)に示した状態で、指106を伸ばして指差し状態の手105に手の形状を変化させた場合のカーソル302の表示状態を示している。この場合、操作範囲103における指106の位置は、図1(b)に示した位置と同一であるにもかかわらず、表示画面301におけるカーソル302の位置は、図1(b)に示した位置ではなく、図2(a)に示した位置と同一になっている。このように、本実施形態に係る表示制御装置200は、操作者102が、握った状態の手104によりカーソル302の位置を決定した状態で指106を伸ばした場合のように、手104の形状を変化させる所定の操作をした場合に、カーソル302の位置を移動させないようにすることで、操作性を向上させることができる。
[表示制御装置200の構成]
以下、表示制御装置200の構成について詳細に説明する。
図3は、第1の実施形態に係る表示制御装置200の構成を示すブロック図である。表示制御装置200は、データ保存部201、表示画像取得部202、表示制御部203、撮像画像取得部204、操作範囲特定部205、手・指特定部206、手・指情報決定部207、ジェスチャ特定部208、カーソル位置補正部209及び操作特定部210を有する。
以下、表示制御装置200の構成について詳細に説明する。
図3は、第1の実施形態に係る表示制御装置200の構成を示すブロック図である。表示制御装置200は、データ保存部201、表示画像取得部202、表示制御部203、撮像画像取得部204、操作範囲特定部205、手・指特定部206、手・指情報決定部207、ジェスチャ特定部208、カーソル位置補正部209及び操作特定部210を有する。
また、表示制御装置200は、不図示のCPU、ROM、及びRAMを有する。ROMには、CPUが実行する表示制御用プログラムが記憶されている。CPUは、ROMに格納された表示制御用プログラムを実行することにより、RAMをワークメモリとして用いて、表示制御装置200の動作を制御する。また、ROMには、CPUが表示制御装置200の制御に用いる各種のテーブルが記憶されている。
データ保存部201は、表示画面301上に表示する静止画像を保存する。データ保存部201は、例えばハードディスクである。
表示画像取得部202は、データ保存部201から複数の静止画像を取得し、画像の順番等を示すインデックス情報を静止画像に付加した静止画像データを生成し、表示制御部203に静止画像データを出力する。
表示画像取得部202は、データ保存部201から複数の静止画像を取得し、画像の順番等を示すインデックス情報を静止画像に付加した静止画像データを生成し、表示制御部203に静止画像データを出力する。
表示制御部203は、表示画像取得部202から入力された静止画像データに基づいて、表示装置300に画像を表示させる。表示制御部203は、画像を切替えるための操作に用いられるボタン及びカーソル302を静止画像と合成して描画した上で、表示画像データを生成し、表示画像データを表示装置300に出力することにより画像を表示させる。表示制御部203の詳細については、後述する。
撮像画像取得部204は、撮像装置100から、操作者102の手104が撮像された撮像画像を含む撮像データを取得し、取得した撮像データを操作範囲特定部205に出力する。
操作範囲特定部205は、撮像画像取得部204から入力された撮像データに基づいて操作範囲103を特定し、撮像データから操作範囲103を切り出した画像データを含む操作範囲情報oprを生成する。そして、操作範囲特定部205は、操作範囲情報oprを手・指特定部206に出力する。
操作範囲特定部205は、撮像画像取得部204から入力された撮像データに基づいて操作範囲103を特定し、撮像データから操作範囲103を切り出した画像データを含む操作範囲情報oprを生成する。そして、操作範囲特定部205は、操作範囲情報oprを手・指特定部206に出力する。
例えば、操作範囲特定部205は、例えば、予めROMに記憶した多数の人の身体形状情報、輪郭情報、又はシルエット情報等に基づいて、撮像画像取得部204から入力された撮像データに含まれている操作者102の肩の位置sp(xs、ys)及び腕の長さlaを特定し、肩の位置及び腕の位置を示す情報である人物情報を生成する。
次に、操作範囲特定部205は、人物情報に含まれる肩の位置sp(xs、ys)及び腕の長さlaに基づいて操作範囲103を決定する。具体的には、操作範囲特定部205は、操作範囲103の四隅の座標(左上op_lu、左下op_ld、右上op_ru、右下op_rd)を、以下の式により算出する。
op_lu(x、y)=(xs−la、ys+la×0.5)
op_ld(x、y)=(xs−la、ys−la×0.5)
op_ru(x、y)=(xs+la、ys+la×0.5)
op_rd(x、y)=(xs+la、ys−la×0.5)
op_lu(x、y)=(xs−la、ys+la×0.5)
op_ld(x、y)=(xs−la、ys−la×0.5)
op_ru(x、y)=(xs+la、ys+la×0.5)
op_rd(x、y)=(xs+la、ys−la×0.5)
操作範囲特定部205は、算出した座標に基づいて、撮像データから操作範囲103の画像データを切り出すことにより、操作範囲情報oprを生成する。操作範囲特定部205は、生成した操作範囲情報oprを手・指特定部206に出力する。なお、本実施形態においては、操作範囲特定部205が生成した操作範囲情報oprに含まれる画像データが、横160画素×縦90画素の長方形の画像に対応するものとする。
手・指特定部206は、操作者102の複数の指それぞれの開閉状態に基づいて、手の形状を特定する。具体的には、手・指特定部206は、例えば、操作範囲情報oprと、予めROMに記憶した多数の手の形状情報、輪郭情報、又はシルエット等とを比較することにより、手及び指の輪郭を特定する。手・指特定部206は、特定した手及び指の輪郭に基づいて、それぞれの指が伸びているかどうかを判定することにより、手情報handを生成する。
手情報handは、例えば、手、親指、人差し指、中指、薬指、小指の有無を示す情報からなる構造体である。手の状態が、図4(a)に示した手104のように指が伸びていない「クローズ状態」である場合、手情報handは、手1、親指0、人差し指0、中指0、薬指0、小指0となる。手の状態が、図4(b)に示した手104及び指106のように人差し指が伸びた「ポイント状態」である場合、手情報handは、手1、親指0、人差し指1、中指0、薬指0、小指0となる。このように、手情報handにおいては、伸びている指に対応する情報が1となり、伸びていない指に対応する情報が0となっている。手・指特定部206は、生成した手情報handを操作範囲情報oprとともに手・指情報決定部207に出力する。
手・指情報決定部207は、操作者102が特定の指を伸ばしていない第1形状の手104のいずれかの位置を第1位置として特定し、操作者102が特定の指(例えば、指106)を伸ばしている第2形状の手105における指106の位置を第2位置として特定する。手・指情報決定部207は、例えば、操作範囲情報opr及び手情報handに基づいて、操作範囲情報opr内の手の位置情報、及び指の位置情報を決定する。図5は、手・指情報決定部207が決定する手の位置情報及び指の位置情報について説明するための図である。
手・指情報決定部207は、手情報handが、指が伸びていないことを示している場合、図5(a)に示すように、手の位置情報hp(xp、yp)のみを決定する。手の位置情報hp(xp、yp)は、手104のいずれかの部位の位置であり、例えば手104の中心位置である。
手・指情報決定部207は、手情報handが、いずれかの指が伸びていることを示している場合、図5(b)に示すように、手の位置情報hp(xp、yp)、及び指の位置情報fp(xi、yi)を決定する。図5(b)に示す例においては、人差し指が伸びているので、手・指情報決定部207は、人差し指の先端の位置に基づいて、指の位置情報fp(xi、yi)を決定する。手・指情報決定部207は、手の位置情報hp及び指の位置情報fpを表示制御部203に出力する。また、手・指情報決定部207は、手情報hand、手の位置情報hp及び指の位置情報fpをジェスチャ特定部208に出力する。
ジェスチャ特定部208は、撮像画像における操作者102の手の形状及び手の位置に基づくジェスチャの種別を特定する。ジェスチャ特定部208は、手・指情報決定部207から入力された手情報hand、及びROMに記憶された手形状ジェスチャ対応テーブルに基づいて、手の形状に対応するジェスチャの種別を特定する。図6は、手形状ジェスチャ対応テーブルの一例である。
図6に示す手形状ジェスチャ対応テーブルにおいては、操作者102の手が操作範囲103に含まれているか否かを示す情報及びそれぞれの指が伸びているか否かを示す情報と、ジェスチャの内容とが関連付けられている。手形状ジェスチャ対応テーブルにおけるジェスチャ「none」は、操作範囲103内に手がない状態を示している。ジェスチャ「close」は、手が握られた状態であることを示している。ジェスチャ「open」は、全ての指が伸びて手が開いた状態であることを示している。ジェスチャ「point」は、人差し指だけが伸びており、人差し指の指先で処理を実行する状態であることを示している。
ジェスチャ特定部208は、所定の時間ごとに、手の形状に対応するジェスチャを示すジェスチャ情報ges(n)を特定し、特定したジェスチャ情報ges(n)と、その時点での手の形状を示す手情報hand(n)とを関連付けてRAMに記憶させる。そして、ジェスチャ特定部208は、表示制御部203にジェスチャ情報ges(n)を出力する。なお、ジェスチャ情報ges(n)及びhand(n)は、配列データとしてRAMに記憶され、nは、配列データにおける位置を示す整数である。
ジェスチャ特定部208は、直前のジェスチャ情報ges(t−1)と最新のジェスチャ情報ges(t)とが所定の関係にある場合、ジェスチャが変化したと判定し、ジェスチャ判定結果「detect」を、手の位置情報hp及び指の位置情報fpとともに、カーソル位置補正部209に出力する。ここで、tは整数であり、ジェスチャ特定部208がジェスチャ情報gesを特定する時間を示す。
ジェスチャ特定部208は、例えば、直前のジェスチャ情報ges(t−1)が、「close」であり、最新のジェスチャ情報ges(t)が「point」である場合、ジェスチャが「close」から「point」に変化したことを示すジェスチャ変化結果「detect」をカーソル位置補正部209に通知する。ジェスチャ特定部208は、ジェスチャが変化していないと判定した場合、ジェスチャ判定結果「none」を出力する。ジェスチャ特定部208は、直前のジェスチャ情報ges(t−1)が、「close」であり、最新のジェスチャ情報ges(t)が「open」である場合、中心位置が変化しないので、ジェスチャ判定結果「none」を出力してもよい。
カーソル位置補正部209は、ジェスチャ特定部208から入力されたジェスチャ変化結果、手の位置情報hp及び指の位置情報fpに基づいて、カーソル位置補正情報を算出する。図7は、カーソル位置補正情報の算出方法について説明するための図である。
図7(a)に示すように、ジェスチャ「close」に対応する手104の操作範囲103における位置が(xp、yp)であるとする。この状態において、表示画面301におけるカーソル302の位置は(xc、yc)となっている。ここで、xc及びycは、以下の式により算出される。
xc=xp×表示画面301の横画素数÷oprの横画素数
yc=yp×表示画面301の縦画素数÷oprの縦画素数
xc=xp×表示画面301の横画素数÷oprの横画素数
yc=yp×表示画面301の縦画素数÷oprの縦画素数
手の位置情報hp(xp、yp)=(40、15)であり、表示画面301の横画素数が1920、表示画面301の縦画素数が1080、oprの横画素数が160、oprの縦画素数が90である場合、xc=40×1920÷160=480、yc=15×1080÷90=180となる。
操作者が図7(a)の状態から人差し指を伸ばして図7(b)の状態になったとする。人差し指の先端位置情報(xi、yi)=(60、50)であるとすると、人差し指の先端位置に対応する表示画面301における位置(xc’、yc’)=(720、600)となり、カーソル302の位置が7(a)の位置から移動することになる。
ここで、カーソル位置補正部209は、ジェスチャ特定部208から入力したジェスチャ変化結果が「detect」である場合、手の位置情報hpおよび指の位置情報fpに基づいて、カーソル位置補正情報cpc(offset_x、offset_y)を以下の式により算出する。
offset_x=(xi−xp)×表示画面301の横画素数÷oprの横画素数
offset_y=(yi−yp)×表示画面301の縦画素数÷oprの縦画素数
offset_x=(xi−xp)×表示画面301の横画素数÷oprの横画素数
offset_y=(yi−yp)×表示画面301の縦画素数÷oprの縦画素数
上記のとおり、(xp、yp)=(40、15)、(xi、yi)=(60、50)である場合、カーソル位置補正部209は、offset_x=240、offset_y=420と算出する。カーソル位置補正部209は、このようにして算出したカーソル位置補正情報cpcをカーソル制御部211に出力する。
操作特定部210は、操作者102の手の形状及び位置に基づく操作の種別を特定する。具体的には、操作特定部210は、ジェスチャ特定部208から入力された、操作者102の手の形状に基づいて特定されたジェスチャ情報ges、手の位置情報hp、及びジェスチャ操作変換テーブルに基づいて、ジェスチャに対応する操作内容を特定する。操作特定部210は、特定した操作内容を示す操作情報opeを表示制御部203に通知する。
図8は、ジェスチャ操作変換テーブルの一例である。ジェスチャ操作変換テーブルにおいては、ジェスチャ情報gesと操作内容とが関連付けられている。図8においては、ジェスチャ「close」が、カーソルを移動する操作であり、ジェスチャ「point」が、手の位置に対応する位置のボタンを押下する操作であり、ジェスチャ「open」が、画像表示位置を移動する操作であることを示している。
表示制御部203は、カーソル制御部211、描画部212及び画像出力部213を有する。表示制御部203は、操作特定部210が特定した第1形状の手104による第1操作に基づいて、撮像画像における第1形状の手104が示す第1位置(xp、yp)に対応する画面内位置(xc、yc)にカーソル302を表示させる。その後、表示制御部203は、第1位置と異なる第2位置(xi、yi)を示す第2形状の手105による、第1操作と所定の関係を有する第2操作が検出された場合に、第1位置と第2位置との差分に基づいて、第1位置に対応する画面内位置(xc、yc)にカーソル302を継続して表示させる。第1位置(xp、yp)は、例えば、手104の中心位置であり、第2位置(xi、yi)は、例えば、手105における指106の先端の位置である。
他方で、表示制御部203は、操作特定部210が特定した第1形状の手104による第1操作に基づいて、第1位置(xp、yp)に対応する画面内位置(xc、yc)にカーソル302を表示させた後に、第1操作と所定の関係を有しない操作が検出された場合に、当該操作を示す手の位置に対応する画面内位置にカーソル302を表示させる。例えば、表示制御部203は、握った状態の手104による操作が行われた後に、操作者102が手を開いた場合、開いた手の位置に対応する画面内位置にカーソル302を移動させる。
以下、表示制御部203の各部の動作について説明する。
カーソル制御部211は、操作範囲103の画素数と表示画面301の画素数との比に基づいて決定される、操作範囲103における手104の位置(xp、yp)と指106の位置(xi、yi)との差分に対応する画面内差分を用いて、第2位置に対応する画面内位置を補正することにより、補正した位置を示すカーソル位置情報cpを生成する。そして、カーソル制御部211は、カーソル位置情報cpを表示制御部203に通知することにより、手104の位置に対応する表示画面301内の位置(xc、yc)にカーソル302を継続して表示させる。
カーソル制御部211は、操作範囲103の画素数と表示画面301の画素数との比に基づいて決定される、操作範囲103における手104の位置(xp、yp)と指106の位置(xi、yi)との差分に対応する画面内差分を用いて、第2位置に対応する画面内位置を補正することにより、補正した位置を示すカーソル位置情報cpを生成する。そして、カーソル制御部211は、カーソル位置情報cpを表示制御部203に通知することにより、手104の位置に対応する表示画面301内の位置(xc、yc)にカーソル302を継続して表示させる。
カーソル制御部211は、手・指情報決定部207から入力された手の位置情報hp及び指の位置情報fp、並びにカーソル位置補正部209から入力されたカーソル位置補正情報cpcに基づいて、カーソル位置情報cpを算出する。カーソル制御部211は、まず、手の位置情報hp(xp、yp)、指の位置情報fp(xi、yi)に基づいて、以下の式により補正前の指の位置(xc’、yc’)を算出する。
xc’=xi×表示画面301の横画素数÷oprの横画素数
yc’=yi×表示画面301の縦画素数÷oprの縦画素数
xc’=xi×表示画面301の横画素数÷oprの横画素数
yc’=yi×表示画面301の縦画素数÷oprの縦画素数
次に、カーソル制御部211は、カーソル位置補正情報cpc(offset_x、offset_y)により、指の位置(xc’、yc’)を補正することにより、カーソル位置情報cp(xc、yc)を算出する。
xc=xc’−offset_x
yc=yc’−offset_y
xc=xc’−offset_x
yc=yc’−offset_y
ここで、図7(b)に示すように、(xp、yp)=(40、15)、(xi、yi)=(60、50)、(offset_x、offset_y)=(240、420)である場合、(xc’、yc’)=(720、600)となり、カーソル位置情報cp(xc、yc)=(480、180)となる。すなわち、カーソル302の位置は、図7(a)に示したカーソル302の位置と同じ位置になる。
描画部212は、静止画像データ、操作情報ope及びカーソル位置情報cpに基づいて、表示画像データを生成する。具体的には、描画部212は、静止画像データに基づく画像と、操作情報opeが示す操作内容に対応する操作画像と、カーソル位置情報cpが示す位置にカーソル302に対応する指示用画像とを合成する。また、描画部212は、操作情報opeとカーソル位置情報cpとに基づいて、操作者102が意図している操作内容を特定する。描画部212は、特定した操作内容に応じて、画像を切り替える。描画部212は、このように合成して生成した表示画像データを、画像出力部213に出力する。
画像出力部213は、例えば、HDMI(登録商標)インターフェイスを含んでいる。画像出力部213は、描画部212から入力された表示画像データを表示装置300に出力する。
以上の通り、表示制御部203は、操作者102が指106を伸ばしたことによる第2操作「ボタン押下」が検出された場合に、指106の位置に対応する画面内位置(xc’、yc’)を、第1位置(手104の位置)と第2位置との差分(offset_x、offset_y)に基づいて補正した画面内位置(xc、yc)にカーソル302を表示させる。その結果、操作者102が指106を伸ばした状態においても、第1位置(xp、yp)に対応する画面内位置(xc、yc)にカーソル302を継続して表示させることができる。
以上の通り、表示制御部203は、操作者102が指106を伸ばしたことによる第2操作「ボタン押下」が検出された場合に、指106の位置に対応する画面内位置(xc’、yc’)を、第1位置(手104の位置)と第2位置との差分(offset_x、offset_y)に基づいて補正した画面内位置(xc、yc)にカーソル302を表示させる。その結果、操作者102が指106を伸ばした状態においても、第1位置(xp、yp)に対応する画面内位置(xc、yc)にカーソル302を継続して表示させることができる。
[表示システムSの動作フローチャート]
図9は、表示システムSの動作手順を示すフローチャートである。図9は、撮像装置100、表示制御装置200及び表示装置300の電源がオンされてから、撮像装置100が撮像を開始するまでの動作手順を示している。
図9は、表示システムSの動作手順を示すフローチャートである。図9は、撮像装置100、表示制御装置200及び表示装置300の電源がオンされてから、撮像装置100が撮像を開始するまでの動作手順を示している。
表示制御装置200は、電源がオンになったかどうかを監視し(S11)、電源がオンになったことをトリガとして、表示画像取得部202が、データ保存部201に保存された静止画像データを取得する(S12)。図10(a)〜図10(c)は、表示画像取得部202が取得した3枚の静止画像データに対応する静止画像を示す図である。表示画像取得部202は、取得した順にインデックス情報を付して、描画部212へ静止画像データを出力する。
続いて、描画部212は、インデックス情報が0の静止画像を描画し、図10(d)に示すように、静止画像に操作画像を合成する(S13)。描画部212は、合成した画像に基づいて縦1920×横1080画素からなる表示画像データを生成し、画像出力部213に出力する。画像出力部213は、入力された表示画像データを表示装置300に表示させる(S14)。図10(d)においては、次の画像に切り替えるための操作を受け付けるための「次の画像」という操作画像、及び前の画像に切り替えるための操作を受け付けるための「前の画像」という操作画像が合成されている。
続いて、撮像装置100は、ステップS13において表示画像データの表示が完了したことをトリガとして、撮像を開始する(S15)。撮像装置100が撮像を開始した後に、操作者102は、操作範囲103内で手104を動かすことで操作をすることができる。
次に、図11及び図12を参照しながら、撮像装置100が撮像を開始してから表示制御装置200がカーソル302の表示位置を制御する動作について説明する。図11は、撮像装置100が撮像を開始してからの動作手順を示すフローチャートである。図12は、描画部212が表示装置300に表示される画像を描画する動作手順を示すフローチャートである。
以下、表示画面301に表示される画像が遷移する動作について説明するための図13及び図14も参照しながら、表示制御装置200の動作について説明する。図13(a)に示すように、操作者102が握った手を操作範囲103に移動した状態(以下、「第1状態」という)、図13(b)に示すように、第1状態の後で、操作者102が人差し指を伸ばした状態(以下、「第2状態」という)、及び、第2状態の後で、操作者102が人差し指を伸ばした状態で移動させた状態(以下、「第3状態」という)における動作について、順次説明する。
[第1状態の動作]
撮像画像取得部204は、撮像画像データを取得すると(S21)、操作範囲特定部205に撮像画像データを出力する。ここで、操作者102は、図13(a)に示すように、手を閉じた状態にしているものとする。
撮像画像取得部204は、撮像画像データを取得すると(S21)、操作範囲特定部205に撮像画像データを出力する。ここで、操作者102は、図13(a)に示すように、手を閉じた状態にしているものとする。
続いて、操作範囲特定部205は、入力された撮像データにおける人物の位置を特定することにより、操作範囲103を決定し、撮像データから操作範囲103の画像を切り出した操作範囲情報oprを生成し、手・指特定部206に出力する(S22)。手・指特定部206は、入力された操作範囲情報に基づいて手及び指の輪郭を特定し、手情報handを生成する(S23)。図13(a)に示すように手が閉じた状態である場合、手・指特定部206は、手1、親指0、人差し指0、中指0、薬指0、小指0の手情報handを生成する。
続いて、手・指情報決定部207は、手情報handに基づいて、操作範囲情報opr内の手の位置情報hp(xp、yp)及び指の位置情報fpを生成する(S24)。ここで、図13(a)に示すように、手が閉じた状態である場合、指の位置情報fpは値を持たない。
続いて、ジェスチャ特定部208は、手・指特定部206から入力された手情報handと手形状ジェスチャ対応テーブルとに基づいて、ジェスチャの種別を特定する(S25)。ここで、手が閉じた状態では、入力された手情報handが、手1、親指0、人差し指0、中指0、薬指0、小指0であるため、ジェスチャ情報gesはcloseとなる。また、ジェスチャ特定部208は、ジェスチャの種別をジェスチャ情報ges(n1)に設定し、手情報handを手情報hand(n1)に設定し、RAMに記憶させる。そして、ジェスチャ特定部208は、ジェスチャ情報gesを操作特定部210に出力する。
操作特定部210は、ジェスチャ特定部208から入力されたジェスチャ情報gesとジェスチャ操作変換テーブルとに基づいて、操作情報opeを特定することにより、操作内容を決定する(S26)。ここでは、ジェスチャ情報gesがcloseであるため、操作特定部210は、操作情報opeが「カーソル移動」であると特定する。
続いて、ジェスチャ特定部208は、直前に入力されたジェスチャ情報ges(t−1)と、最新のジェスチャ情報ges(t)との関係が、所定のジェスチャ変化を示しているかどうかを判定する(S27)。ここで、所定のジェスチャ変化を示す情報はROMに保存されている。所定のジェスチャ変化の例として、ジェスチャ情報ges(t−1)がcloseであり、ジェスチャ情報ges(t)がpointとなる場合が挙げられる。
ジェスチャ特定部208は、ジェスチャ情報gesがcloseからpointに変化した場合に、ジェスチャ変化結果をdetectとして、補正情報を生成するステップS28に進む。また、ジェスチャ情報ges(t−1)及びジェスチャ情報(t)がpointである場合、ジェスチャ変化結果がcontinueとなり、補正情報を生成するステップS28に進む。他方で、ジェスチャ情報(t)がnoneである場合は、所定のジェスチャ変化に含まれず、補正情報を生成しないでステップS29に進む。
ここで、第1状態の動作においては、ジェスチャ情報gesの初期値であるジェスチャ情報ges(n0)は値を持たず、初期値としてnoneが設定されている。ジェスチャ情報gesがnoneからcloseに変化した場合は、カーソル位置の補正が不要なので、図13(a)の状態におけるジェスチャ変化結果はnoneとなり、ジェスチャ特定部208は、所定のジェスチャ変化が発生していないと判定する(S27におけるNo)。
続いて、カーソル制御部211は、手・指情報決定部207から入力された手の位置情報hpに基づいて、カーソル位置情報cp(xc、yc)を算出して、カーソル位置を決定する(S29)。
次に、図12のフローチャートを参照しながら、描画部212の動作について説明する。
描画部212は、操作特定部210から入力された操作情報ope及びカーソル制御部211から入力されたカーソル位置情報cpに基づいて、操作者102の操作内容を示すコマンドを特定する(S31)。続いて、描画部212は、コマンドが、画像切替コマンドであるか否かを判定する(S32)。
描画部212は、操作特定部210から入力された操作情報ope及びカーソル制御部211から入力されたカーソル位置情報cpに基づいて、操作者102の操作内容を示すコマンドを特定する(S31)。続いて、描画部212は、コマンドが、画像切替コマンドであるか否かを判定する(S32)。
操作情報opeが「カーソル移動」を示している場合、描画部212は、画像切替コマンドが発生していないと判定し(S32におけるNo)、S34に進み、静止画像を表示する(S34)。描画部212は、例えば、図13(a)に示すように、図10(a)に示した第1の静止画像における、手104の位置に対応する画面内位置に、カーソル移動の操作時に表示する、画像を切り替えるための操作画像を合成して表示画面301に描画する(S35)。また、描画部212は、第1の静止画像にカーソル302を合成して表示画面301に描画する(S36)。続いて、描画部212が、静止画像、操作画像及びカーソル302を合成した画像を画像出力部213に出力する(S37)。表示制御装置200は、表示制御装置200の電源がオフされるまで、S11からS37までの処理を繰り返す。
[第2状態の動作]
続いて、図13(b)に示すように、操作者102が人差し指を伸ばした場合の処理について説明する。図12のステップS38において、電源がオフでないと判定されると、図11のS21に処理が戻る。ステップS21及びステップS22の処理は、操作者102が手を握っている第1状態の場合の処理と同様である。
続いて、図13(b)に示すように、操作者102が人差し指を伸ばした場合の処理について説明する。図12のステップS38において、電源がオフでないと判定されると、図11のS21に処理が戻る。ステップS21及びステップS22の処理は、操作者102が手を握っている第1状態の場合の処理と同様である。
ステップS22の後に、手・指特定部206は、手1、親指0、人差し指1、中指0、薬指0、小指0の手情報handを生成する(S23)。続いて、手・指情報決定部207は、手情報handに基づいて、操作範囲情報opr内の手104の位置情報hp(xp、yp)及び指の位置情報fpを生成する(S24)。
続いて、ジェスチャ特定部208は、手・指特定部206から入力された手情報handと手形状ジェスチャ対応テーブルとに基づいて、ジェスチャ情報gesがpointであると判定する(S25)。操作特定部210は、ジェスチャ特定部208から入力されたジェスチャ情報gesとジェスチャ操作変換テーブルとに基づいて、操作情報opeが「ボタン押下」であると特定する。
続いて、ジェスチャ特定部208は、直前に入力されたジェスチャ情報ges(n1)がcloseであり、最新のジェスチャ情報ges(n2)がpointであるので、所定のジェスチャ変化が発生したと判定して、ジェスチャ変化結果detectを出力する(S27におけるYes)。ジェスチャ特定部208は、ジェスチャ変化結果、手の位置情報hp及び指の位置情報fpを、カーソル位置補正部209に出力する。
カーソル位置補正部209は、ジェスチャ特定部208から入力されたジェスチャ変化結果がdetectである場合、手の位置情報hp及び指の位置情報fpに基づいて、カーソル位置補正情報cpcを算出する(S28)。カーソル位置補正部209は、算出したカーソル位置補正情報cpcをカーソル制御部211に通知する。カーソル制御部211は、人差し指の位置情報fpとカーソル位置補正情報cpcとに基づいて、カーソル位置情報cp(xc、yc)を算出することにより、カーソル位置を決定する(S29)。
続いて、図12に処理が移る。描画部212は、画像を切り替えるための操作画像が表示された状態で、指106を伸ばすことによるボタン押下操作が検出された場合に、カーソル302の位置及びボタン押下操作に対応して、表示画面301に表示する表示画像を描画する。この際、描画部212は、表示画面301に表示されている操作画像(例えば、「次の画像」ボタン)が選択された場合に遷移する表示画像を表示画面301に表示させるように描画する。
具体的には、描画部212は、操作情報opeに基づいて、「ボタン押下」の操作が行われたことを特定する(S31)。また、描画部212は、カーソル位置情報cpに基づいて、カーソル302が、「次の画像」ボタンにあることを特定する。これらの結果から、描画部212は、画像切替コマンドが発生したと判定し(S32におけるYes)、表示している画像のインデックスを変更することにより、表示する対象となる静止画像を切り替える(S33)。
続いて、描画部212は、切り替えた後の静止画像、操作画像及びカーソルを描画し(S34〜S36)、描画した画像を画像出力部213に出力する(S37)。このようにして、図13(b)の画像が表示される。このように、カーソル移動操作から画像切替操作まで、カーソル302の表示位置が変化しないので、操作者102が違和感なく操作をすることができる。
[第3状態の動作]
続いて、図13(b)に示した状態から、操作者102が指106を伸ばしたままで手105を右に移動して、図14に示す状態に遷移する場合の処理について説明する。図12のステップS38において、電源がオフでないと判定されると、図11のS21に処理が戻る。ステップS21からステップS25までの処理は、第2状態の場合の処理と同様である。
続いて、図13(b)に示した状態から、操作者102が指106を伸ばしたままで手105を右に移動して、図14に示す状態に遷移する場合の処理について説明する。図12のステップS38において、電源がオフでないと判定されると、図11のS21に処理が戻る。ステップS21からステップS25までの処理は、第2状態の場合の処理と同様である。
ステップS25の後に、ジェスチャ特定部208は、直前に入力されたジェスチャ情報ges(n2)がpointであり、最新のジェスチャ情報ges(n3)がpointであるので、ジェスチャ変化が発生しておらず、ジェスチャが継続していると判定する(S27におけるNo)。
カーソル位置補正部209は、ジェスチャ特定部208から入力されたジェスチャ変化結果が、ジェスチャが継続していることを示すcontinueである場合、ステップS28において、第2状態のカーソル位置補正情報cpcを流用する。カーソル位置補正部209は、このカーソル位置補正情報cpcをカーソル制御部211に通知する。カーソル制御部211は、人差し指の位置情報fpとカーソル位置補正情報cpcとに基づいて、カーソル位置情報cp(xc、yc)を算出することにより、カーソル位置を決定する(S29)。
続いて、図12に処理が移り、描画部212は、第2状態において指106を伸ばしたことによるボタン押下の第2操作が検出された後に、指106を伸ばした状態の手105が移動した場合に、操作範囲103における手104の位置と指106の位置との差分に基づいて手105の位置を補正した位置に対応する画面内位置に、カーソル302を描画する。また、描画部212は、操作情報opeに基づいて、「ボタン押下」の操作が行われたことを特定する(S31)。さらに、描画部212は、カーソル位置情報cpに基づいて、カーソル302が、図14に示すように「前の画像」ボタンにあることを特定する。これらの結果から、描画部212は、画像切替コマンドが発生したと判定し(S32におけるYes)、表示している画像のインデックスを変更することにより、表示する対象となる静止画像を切り替える(S33)。
続いて、描画部212は、切り替えた後の静止画像、操作画像及びカーソル302を描画し(S34〜S36)、描画した画像を画像出力部213に出力する(S37)。このようにして、図14に示す画像が表示される。このように、本実施形態における表示制御装置200によれば、操作者102が、人差し指を伸ばした状態で手104を移動させた場合に、操作者102の手105の向き又は指106の角度が変化しても、操作者102にとって違和感がない位置にカーソル302が継続して表示される。
なお、表示制御部203は、図14に示した状態で、操作者102が手104を開いたり、手104を操作範囲103の外に出したりすると、カーソル位置の補正を終了する。例えば、表示制御部203は、指106を伸ばした手105による操作に基づいて、第1位置にカーソル302を表示させた後に、第1位置と異なる第3位置における、握った手104による操作が検出された場合、第3位置に対応する画面内位置に指示用画像を表示させる。
(変形例)
以上の説明において、操作範囲特定部205が、操作者102の肩の位置と腕の長さから、操作範囲103を決定するものとしたが、操作範囲103を特定の空間座標位置に固定してもよい。また、操作範囲特定部205は、操作範囲103を決定した後に、操作者102の動きに伴って、操作範囲103を移動させてもよい。
以上の説明において、操作範囲特定部205が、操作者102の肩の位置と腕の長さから、操作範囲103を決定するものとしたが、操作範囲103を特定の空間座標位置に固定してもよい。また、操作範囲特定部205は、操作範囲103を決定した後に、操作者102の動きに伴って、操作範囲103を移動させてもよい。
また、以上の説明において、操作範囲特定部205は、操作者102が含まれる撮像データにおいて操作者102を検出したことをトリガとして操作範囲103を特定したが、誤動作を防ぐために、操作者102による特定のジェスチャを検出したことをトリガとして、操作範囲103を特定してもよい。
また、以上の説明においては、操作者が1人の場合について説明したが、表示制御装置200は、複数の操作者102を特定した場合、最初に特定した操作者102の手104に操作権を与えて、最初に特定した操作者102の手104の形状に基づいてジェスチャを特定してもよい。
また、表示制御装置200は、複数の操作者102の複数の手、又は一人の操作者102の複数の手に対応する複数のカーソル302を表示させ、複数の手を用いた操作を可能にしてもよい。例えば、表示制御部203は、操作範囲103に第2の手が含まれている場合に、第2の手の位置を、手104と指106との差分に基づいて補正した位置に対応する画面内位置に、第2の手に対応する第2のカーソル302を表示させる。その際、表示制御装置200は、例えば、最初に操作範囲103内において特定された手に操作権を与え、他方の手を補助操作のためのものとしてもよい。
この場合、ジェスチャ特定部208が、右手がpoint状態のジェスチャから、両手がpoint状態のジェスチャに変化する特定のジェスチャ変化を検出したときには、カーソル位置補正部209は、左手の指の位置情報と、右手の指の位置情報との差分値をオフセットとして、左手に対応するカーソル302の位置を補正してもよい。このようにすることで、複数の手を用いたジェスチャにおいても、カーソル302を適切な位置に表示できる。
また、以上の説明においては、カーソル302の形状を矢印としたが、例えばカーソル302を5本の指の開閉具合がわかる手形状にしてもよい。その際、手形状のカーソル302における人差し指の先端位置が、操作者102の手105に対応する画面内位置になり、操作者102が更に直観的に操作できるよう、カーソル制御部211は、カーソル302の人差し指の先端位置と手の平の位置の差分値に基づいて、更にカーソル位置を補正してもよい。
また、以上の説明においては、撮像装置100がX−Y平面で操作者102を撮像できるものとしたが、例えば、撮像装置100が操作者102の下方に設けられており、X−Z平面で操作者102の手104を撮像できるようにしてもよい。その際、Z座標を測定するため、撮像装置100としてステレオカメラを用いて、操作範囲特定部205は、三角測定により得られた距離画像に基づいて、三次元空間上において操作範囲103を特定してもよい。また、操作範囲特定部205は、距離センサーを用いてZ座標を測定した結果を用いてもよい。
また、以上の説明においては、操作特定部210が、図8に示したジェスチャ操作変換テーブルに基づいて操作内容を特定したが、ジェスチャと操作内容との対応は任意である。例えば、open状態でカーソル移動、open状態からclose状態への遷移で画像のドラッグ、close状態で画像移動と画像拡大縮小、point状態で画像へのお絵かきとなるようにしてもよい。また、表示制御装置200は、対応付けを動的に変更してもよい。
また、以上の説明において、カーソル位置を補正したカーソル位置補正情報cpc分だけ、カーソルが移動できない領域が発生する場合がある。その際、操作範囲特定部205は、例えばカーソル位置補正情報cpcに相当する大きさだけ操作者の手及び指の位置を特定する範囲を操作範囲103よりも広げることで、カーソル302が移動できない領域が生じないようにしてもよい。
また、以上の説明においては、表示制御装置200が静止画像を表示装置300に表示させる場合について説明したが、表示制御装置200が動画像を表示装置300に表示させてもよい。また、以上の説明においては、カーソル302の表示をジェスチャでのみ制御したが、マウス及びキーボードを併用してカーソル302を制御できるものとしてもよい。
また、以上の説明においては、表示制御装置200がデータ保存部201を有する場合について説明したが、データ保存部201は、表示制御装置200の外に配置されていてもよい。例えば、表示画像取得部202は、USBメモリから画像を取得したり、ネットワークを介して接続されたサーバーから画像を取得したりしてもよい。
[第1の実施形態における効果]
以上説明したように、第1の実施形態における表示制御装置200においては、ジェスチャ特定部208が、撮像画像における前記操作者の手の形状及び手の位置に基づくジェスチャの種別を特定し、操作特定部210が、ジェスチャの種別に対応する操作の内容を特定する。そして、表示制御部203が、手104の位置に対応する画面内位置にカーソル302を表示させた後に、指106を伸ばすことによる所定の操作が検出された場合に、手104の位置に対応して表示されたカーソル302の位置を移動させることなく、カーソル302を継続して表示させる。このようにすることで、操作者102が、カーソル302の位置を移動させる意思を持たないで操作した場合に、カーソル302の位置が移動しない。その結果、操作者102が違和感なく操作することができ、操作者の手の形状が変化した場合の操作性の低下が抑制される。
以上説明したように、第1の実施形態における表示制御装置200においては、ジェスチャ特定部208が、撮像画像における前記操作者の手の形状及び手の位置に基づくジェスチャの種別を特定し、操作特定部210が、ジェスチャの種別に対応する操作の内容を特定する。そして、表示制御部203が、手104の位置に対応する画面内位置にカーソル302を表示させた後に、指106を伸ばすことによる所定の操作が検出された場合に、手104の位置に対応して表示されたカーソル302の位置を移動させることなく、カーソル302を継続して表示させる。このようにすることで、操作者102が、カーソル302の位置を移動させる意思を持たないで操作した場合に、カーソル302の位置が移動しない。その結果、操作者102が違和感なく操作することができ、操作者の手の形状が変化した場合の操作性の低下が抑制される。
<第2の実施形態>
第1の実施形態においては、カーソル位置補正部209が、カーソル位置補正情報cpc(offset_x、offset_y)を算出し、カーソル制御部211が、表示画面301の座標系におけるカーソル位置補正情報cpcに基づいてカーソル302の位置を補正した。これに対して、第2の実施形態においては、カーソル制御部211が、操作範囲103の座標系における補正位置を算出するマッピング式mjを用いてカーソル位置を補正する点で、第1の実施形態と異なる。以下、第1の実施形態と相違する点について説明する。
第1の実施形態においては、カーソル位置補正部209が、カーソル位置補正情報cpc(offset_x、offset_y)を算出し、カーソル制御部211が、表示画面301の座標系におけるカーソル位置補正情報cpcに基づいてカーソル302の位置を補正した。これに対して、第2の実施形態においては、カーソル制御部211が、操作範囲103の座標系における補正位置を算出するマッピング式mjを用いてカーソル位置を補正する点で、第1の実施形態と異なる。以下、第1の実施形態と相違する点について説明する。
図15は、第2の実施形態のカーソル位置補正部209が用いるジェスチャオフセット対応テーブルである。図16は、第2の実施形態のカーソル位置補正部209が用いるマッピング式テーブルである。カーソル位置補正部209は、手の位置情報hp及び指の位置情報fpに基づいて、操作範囲103の座標系における指106の位置の補正量を示すカーソル位置補正情報cpcを算出する。そして、カーソル位置補正部209は、マッピング式テーブルに含まれる、ジェスチャ情報gesに対応するマッピング式mjに基づいて、操作範囲103の座標系における補正後の指106の位置を算出して、算出した位置をカーソル制御部211に通知する。
カーソル制御部211は、カーソル位置補正部209から通知された、操作範囲103の座標系における補正後の指106の位置と、操作範囲103の画素数と表示画面301の画素数との比とに基づいて、カーソル位置情報cpを算出する。そして、カーソル制御部211は、カーソル位置情報cpを描画部212に出力する。
図17は、第2の実施形態における図11に対応する動作手順を示すフローチャートである。図17において、ステップS21からS26までは、図11に示したフローチャートと同一である。
ステップS26において、操作特定部210が操作内容を決定した後に、カーソル位置補正部209は、手の位置情報hp、指の位置情報fp、及びジェスチャオフセット対応テーブルに基づいて、以下の式により、操作範囲103の座標系におけるカーソル位置補正情報cpc(offset_x、offset_y)を生成する(S41)。
offset_x=xi−xp
offset_y=yi−yp
例えば、手の位置情報hpが(40、15)、人差し指の先端位置情報が(60、50)である場合、offset_x=20、offset_y=35となる。
offset_x=xi−xp
offset_y=yi−yp
例えば、手の位置情報hpが(40、15)、人差し指の先端位置情報が(60、50)である場合、offset_x=20、offset_y=35となる。
次に、カーソル位置補正部209は、マッピング式テーブルにおける、ジェスチャ特定部208が特定したジェスチャ情報gesに対応するマッピング式を用いて、操作範囲103の座標系における補正位置mpointを算出する(S42)。
mpoint_x=xi×(1−offset_x÷xi)
mpoint_y=yi×(1−offset_y÷yi)
ここで、xi=60、offset_x=20である場合、mpoint_x=40となり、yi=50、offset_y=35である場合、mpoint_y=15となる。
mpoint_x=xi×(1−offset_x÷xi)
mpoint_y=yi×(1−offset_y÷yi)
ここで、xi=60、offset_x=20である場合、mpoint_x=40となり、yi=50、offset_y=35である場合、mpoint_y=15となる。
カーソル位置補正部209は、算出したmpointの値をカーソル制御部211に通知する。カーソル制御部211は、通知されたmpointの値に基づいて、以下の式により、カーソル位置情報cp(xc、yc)を算出することにより、カーソル位置を決定する(S43)。
xc=mpoint_x×表示画面301の横画素数÷oprの横画素数
yc=mpoint_y×表示画面301の縦画素数÷oprの縦画素数
xc=mpoint_x×表示画面301の横画素数÷oprの横画素数
yc=mpoint_y×表示画面301の縦画素数÷oprの縦画素数
mpoint_x=40、mpoint_y=15であり、表示画面301の横画素数が1920、表示画面301の縦画素数が1080、oprの横画素数が160、oprの縦画素数が90である場合、xc=480、yc=180となり、カーソル位置情報cpは、(480、180)となる。したがって、この場合も、第1の実施形態と同様に、操作者102が指106を伸ばした後のカーソル302の位置が、操作者102が指106を伸ばす前のカーソル302の位置から変化しない。
なお、カーソル制御部211は、カーソル位置情報cp(xc、yc)を算出する際に、表示画面301の画素数と操作領域103の画素数との比ではなく、他の係数を乗算することにより、操作範囲103における位置を表示画面301における位置にマッピングしてもよい。例えば、カーソル制御部211は、補正位置mpointが操作範囲103における外側に近づけば近づくほど値が小さくなる係数をmpointに乗算してカーソル位置情報cp(xc、yc)を算出することにより、操作者102の手が操作範囲103の境界に近づいた場合であっても、カーソル302を表示画面301内で移動させることが可能になる。
[第2の実施形態における効果]
以上説明したように、第2の実施形態においても、第1の実施形態と同様に、所定の手の形状の変化による操作が行われた場合にカーソル302の位置が移動しないので、表示制御装置200は、操作者102が違和感なく操作することができ、操作者の手の形状が変化した場合の操作性の低下が抑制される。そして、第2の実施形態のように、操作範囲103の座標系における補正位置mpointを所定の式を用いて表示画面301内の位置にマッピングすることにより、表示制御装置200は、操作者102の手の位置とカーソル302の位置との関係を柔軟に制御することができる。
以上説明したように、第2の実施形態においても、第1の実施形態と同様に、所定の手の形状の変化による操作が行われた場合にカーソル302の位置が移動しないので、表示制御装置200は、操作者102が違和感なく操作することができ、操作者の手の形状が変化した場合の操作性の低下が抑制される。そして、第2の実施形態のように、操作範囲103の座標系における補正位置mpointを所定の式を用いて表示画面301内の位置にマッピングすることにより、表示制御装置200は、操作者102の手の位置とカーソル302の位置との関係を柔軟に制御することができる。
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
例えば、上記の説明においては、CPUが表示制御用プログラムを実行することにより、撮像画像に基づいて手の形状及び位置を特定するものとして説明したが、これに限らない。CPUが表示制御用プログラムを実行することにより、他のプログラムを実行することにより特定された手の形状及び位置を示す情報を取得することにより、手の形状及び位置を特定してもよい。また、表示制御装置200が、撮像画像取得部204及び手・指特定部206を有さず、外部の装置から手の形状及び位置を示す情報を取得してもよい。
例えば、上記の説明においては、CPUが表示制御用プログラムを実行することにより、撮像画像に基づいて手の形状及び位置を特定するものとして説明したが、これに限らない。CPUが表示制御用プログラムを実行することにより、他のプログラムを実行することにより特定された手の形状及び位置を示す情報を取得することにより、手の形状及び位置を特定してもよい。また、表示制御装置200が、撮像画像取得部204及び手・指特定部206を有さず、外部の装置から手の形状及び位置を示す情報を取得してもよい。
200 表示制御装置
203 表示制御部
210 操作特定部
300 表示装置
203 表示制御部
210 操作特定部
300 表示装置
Claims (20)
- 操作者の操作に基づく指示用画像を表示装置の画面に表示させる表示制御装置であって、
前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定手段と、
前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させた後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する前記表示装置の画面内位置に前記指示用画像を継続して表示させる表示制御手段と、
を有することを特徴とする表示制御装置。 - 前記表示制御手段は、前記操作特定手段が特定した第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させた後に、前記第1操作と前記所定の関係を有しない操作が検出された場合に、当該操作を示す手の位置に対応する画面内位置に前記指示用画像を表示させることを特徴とする、
請求項1に記載の表示制御装置。 - 前記表示制御手段は、前記操作者が特定の指を伸ばしていない前記第1形状の手のいずれかの位置である前記第1位置と、前記操作者が前記特定の指を伸ばしている前記第2形状の手における前記指の位置である前記第2位置との差分に基づいて、前記指示用画像を表示させることを特徴とする、
請求項1又は2に記載の表示制御装置。 - 前記表示制御手段は、前記第2操作が検出された場合に、前記第2位置に対応する画面内位置を前記第1位置と前記第2位置との差分に基づいて補正した画面内位置に前記指示用画像を表示させることにより、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させることを特徴とする、
請求項1から3のいずれか1項に記載の表示制御装置。 - 前記表示制御手段は、前記操作者の手が撮像された撮像画像における前記操作者が手を操作する範囲として設定された操作範囲の画素数と前記画面の画素数との比に基づいて決定される、前記差分に対応する画面内差分により、前記第2位置に対応する画面内位置を補正することにより、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させることを特徴とする、
請求項1から4のいずれか1項に記載の表示制御装置。 - 前記表示制御手段は、前記操作範囲に第2の手が含まれている場合に、前記第2の手の位置を前記差分に基づいて補正した位置に対応する画面内位置に、前記第2の手に対応する第2の指示用画像を表示させることを特徴とする、
請求項5に記載の表示制御装置。 - 前記表示制御手段は、前記第2操作が検出された後に、前記第2形状の手が移動した場合に、前記第2形状の手の位置を前記差分に基づいて補正した位置に対応する画面内位置に前記指示用画像を表示させることを特徴とする、
請求項1から6のいずれか1項に記載の表示制御装置。 - 前記表示制御手段は、前記第2操作に基づいて前記指示用画像を表示させた後に、前記第1位置と異なる第3位置における前記第1操作が検出された場合、前記第3位置に対応する画面内位置に前記指示用画像を表示させることを特徴とする、
請求項1から7のいずれか1項に記載の表示制御装置。 - 前記操作特定手段は、前記操作者の複数の指それぞれの開閉状態に基づいて、前記手の形状を特定することを特徴とする、
請求項1から8のいずれか1項に記載の表示制御装置。 - 前記表示制御手段は、前記第2操作が検出された場合に、前記指示用画像が表示された位置及び前記第2操作の内容に対応する表示画像を前記画面に表示させることを特徴とする、
請求項1から9のいずれか1項に記載の表示制御装置。 - 操作者の操作に基づく指示用画像を表示装置の画面に表示させる表示制御方法であって、
前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定ステップと、
前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させる第1表示ステップと、
前記第1表示ステップの後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する前記表示装置の画面内位置に前記指示用画像を継続して表示させる第2表示ステップと、
を有することを特徴とする表示制御方法。 - 前記第2表示ステップにおいて、前記第1操作と前記所定の関係を有しない操作が検出された場合に、当該操作を示す手の位置に対応する画面内位置に前記指示用画像を表示させることを特徴とする、
請求項11に記載の表示制御方法。 - 前記操作者が特定の指を伸ばしていない前記第1形状の手のいずれかの位置を前記第1位置として特定するステップと、
前記操作者が前記特定の指を伸ばしている前記第2形状の手における前記指の位置を前記第2位置として特定するステップと、
をさらに有することを特徴とする、
請求項11又は12に記載の表示制御方法。 - 前記第2表示ステップにおいて、前記第2操作が検出された場合に、前記第2位置に対応する画面内位置を、前記第1位置と前記第2位置との差分に基づいて補正した画面内位置に前記指示用画像を表示させることにより、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させることを特徴とする、
請求項11から13のいずれか1項に記載の表示制御方法。 - 前記第2表示ステップにおいて、前記操作者の手が撮像された撮像画像における前記操作者が手を操作する範囲として設定された操作範囲の画素数と前記画面の画素数との比に基づいて決定される、前記差分に対応する画面内差分により、前記第2位置に対応する画面内位置を補正することにより、前記第1位置に対応する画面内位置に前記指示用画像を継続して表示させることを特徴とする、
請求項11から14のいずれか1項に記載の表示制御方法。 - 前記操作範囲に第2の手が含まれている場合に、前記第2の手の位置を前記差分に基づいて補正した位置に対応する画面内位置に、前記第2の手に対応する第2の指示用画像を表示させるステップをさらに有することを特徴とする、
請求項15に記載の表示制御方法。 - 前記第2表示ステップの後に、前記第2形状の手が移動した場合に、前記第2形状の手の位置を前記差分に基づいて補正した位置に対応する画面内位置に前記指示用画像を表示させるステップをさらに有することを特徴とする、
請求項11から16のいずれか1項に記載の表示制御方法。 - 前記第2表示ステップの後に、前記第1位置と異なる第3位置における前記第1操作が検出された場合、前記第3位置に対応する画面内位置に前記指示用画像を表示させるステップをさらに有することを特徴とする、
請求項11から17のいずれか1項に記載の表示制御方法。 - 前記第2表示ステップの後に、前記指示用画像が表示された位置及び前記第2操作の内容に対応する処理を実行する表示画像を前記画面に表示させることを特徴とする、
請求項11から18のいずれか1項に記載の表示制御方法。 - コンピュータに、操作者の操作に基づく指示用画像を表示装置の画面に表示させるための表示制御用プログラムであって、
前記操作者の手の形状及び位置に基づく操作の種別を特定する操作特定ステップと、
前記操作者の第1形状の手による第1操作に基づいて、前記第1形状の手が示す第1位置に対応する画面内位置に指示用画像を表示させる第1表示ステップと、
前記第1表示ステップの後に、前記第1位置と異なる第2位置を示す第2形状の手による、前記第1操作と所定の関係を有する第2操作が検出された場合に、前記第1位置と前記第2位置との差分に基づいて、前記第1位置に対応する前記表示装置の画面内位置に前記指示用画像を継続して表示させる第2表示ステップと、
を実行させることを特徴とする表示制御用プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015160975A JP2017041002A (ja) | 2015-08-18 | 2015-08-18 | 表示制御装置、表示制御方法及び表示制御用プログラム |
US15/237,376 US10185407B2 (en) | 2015-08-18 | 2016-08-15 | Display control apparatus, display control method and recording medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015160975A JP2017041002A (ja) | 2015-08-18 | 2015-08-18 | 表示制御装置、表示制御方法及び表示制御用プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017041002A true JP2017041002A (ja) | 2017-02-23 |
Family
ID=58158680
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015160975A Pending JP2017041002A (ja) | 2015-08-18 | 2015-08-18 | 表示制御装置、表示制御方法及び表示制御用プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US10185407B2 (ja) |
JP (1) | JP2017041002A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019164440A (ja) * | 2018-03-19 | 2019-09-26 | 株式会社リコー | 情報処理装置及び情報処理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20060070280A (ko) * | 2004-12-20 | 2006-06-23 | 한국전자통신연구원 | 손 제스처 인식을 이용한 사용자 인터페이스 장치 및 그방법 |
KR100783552B1 (ko) * | 2006-10-11 | 2007-12-07 | 삼성전자주식회사 | 휴대 단말기의 입력 제어 방법 및 장치 |
US9772689B2 (en) | 2008-03-04 | 2017-09-26 | Qualcomm Incorporated | Enhanced gesture-based image manipulation |
US20110117526A1 (en) * | 2009-11-16 | 2011-05-19 | Microsoft Corporation | Teaching gesture initiation with registration posture guides |
US8622742B2 (en) * | 2009-11-16 | 2014-01-07 | Microsoft Corporation | Teaching gestures with offset contact silhouettes |
US8843857B2 (en) * | 2009-11-19 | 2014-09-23 | Microsoft Corporation | Distance scalable no touch computing |
JP5456817B2 (ja) | 2012-03-23 | 2014-04-02 | ヤフー株式会社 | 表示制御装置、表示制御方法、情報表示システム及びプログラム |
TWI475496B (zh) * | 2012-10-16 | 2015-03-01 | Wistron Corp | 手勢控制裝置及於手勢控制裝置中設定及取消手勢操作區域之方法 |
US10133342B2 (en) * | 2013-02-14 | 2018-11-20 | Qualcomm Incorporated | Human-body-gesture-based region and volume selection for HMD |
-
2015
- 2015-08-18 JP JP2015160975A patent/JP2017041002A/ja active Pending
-
2016
- 2016-08-15 US US15/237,376 patent/US10185407B2/en not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019164440A (ja) * | 2018-03-19 | 2019-09-26 | 株式会社リコー | 情報処理装置及び情報処理方法 |
Also Published As
Publication number | Publication date |
---|---|
US20170052603A1 (en) | 2017-02-23 |
US10185407B2 (en) | 2019-01-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6159323B2 (ja) | 情報処理方法及び情報処理装置 | |
US8872762B2 (en) | Three dimensional user interface cursor control | |
JP2023169411A (ja) | 情報処理装置、情報処理装置の制御方法、及びプログラム | |
JP5946216B2 (ja) | タッチパネルを有するコンピュータ、その作動方法、及びプログラム | |
JP6165485B2 (ja) | 携帯端末向けarジェスチャユーザインタフェースシステム | |
WO2012039140A1 (ja) | 操作入力装置および方法ならびにプログラム | |
US8416189B2 (en) | Manual human machine interface operation system and method thereof | |
JP2016224686A (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
JP6360509B2 (ja) | 情報処理プログラム、情報処理システム、情報処理方法、および情報処理装置 | |
US20120313968A1 (en) | Image display system, information processing apparatus, display device, and image display method | |
JP4608326B2 (ja) | 指示動作認識装置及び指示動作認識プログラム | |
CN106293442B (zh) | 一种信息处理方法及电子设备 | |
JP2012022458A (ja) | 情報処理装置およびその制御方法 | |
JP5401675B1 (ja) | 情報入力装置および情報入力方法 | |
JP5665396B2 (ja) | 情報処理装置およびその制御方法 | |
JP2017041002A (ja) | 表示制御装置、表示制御方法及び表示制御用プログラム | |
JP2013218423A (ja) | 指向性映像コントロール装置及びその方法 | |
JP7513262B2 (ja) | 端末装置、仮想オブジェクト操作方法、及び仮想オブジェクト操作プログラム | |
JP2015122124A (ja) | 仮想マウスによるデータ入力機能を有する情報装置 | |
JP2013109538A (ja) | 入力方法及び入力装置 | |
CN113703577A (zh) | 一种绘图方法、装置、计算机设备及存储介质 | |
JP5676959B2 (ja) | 情報処理装置及びその制御方法 | |
US8126211B2 (en) | Pointing device and motion value calculating method thereof | |
JP2013257830A (ja) | 情報処理装置 | |
JP4602199B2 (ja) | 入力装置、入力方法、コンピュータプログラム、半導体デバイス |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20180227 |