JP2016139396A - User interface device, method and program - Google Patents
User interface device, method and program Download PDFInfo
- Publication number
- JP2016139396A JP2016139396A JP2015147083A JP2015147083A JP2016139396A JP 2016139396 A JP2016139396 A JP 2016139396A JP 2015147083 A JP2015147083 A JP 2015147083A JP 2015147083 A JP2015147083 A JP 2015147083A JP 2016139396 A JP2016139396 A JP 2016139396A
- Authority
- JP
- Japan
- Prior art keywords
- fingertip
- operation surface
- user interface
- interface device
- region
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、例えば手や指先等の位置を遠隔から検出し、特定の面上に表示された表示部品の操作を行うユーザーインターフェイス装置、方法およびプログラムに関する。 The present invention relates to a user interface device, a method, and a program for detecting the position of a hand or a fingertip from a remote location and operating a display component displayed on a specific surface.
プロジェクタとカメラや距離センサを用いたユーザーインターフェイスでは、プロジェクタによりユーザーインターフェイスを投影することで、紙等の現実の物体上に重畳して表示を行うことができる。このため、ユーザーは現実の物体を電子的データとのインターフェイスとして扱うことが可能となる。特許文献1で開示されているユーザーインターフェイスシステムでは、プロジェクタでコンピュータ画面を机上に投射し、指先でそのコンピュータ画面を操作する。指先による平面へのタッチの検出には赤外線カメラを用いている。特許文献1では、テーブルや紙といった物体をユーザーインターフェイスとして、指やペンによるタッチ指示を行う。このとき、指を用いて5mm四方程度の大きさの文字を選択したり、文字の下に線を引いたりする操作を行う場合、正確なタッチ位置を決定することが必要になる。
In a user interface using a projector, a camera, and a distance sensor, the user interface is projected by the projector, so that it can be displayed superimposed on an actual object such as paper. Therefore, the user can handle a real object as an interface with electronic data. In the user interface system disclosed in
しかしながら、特許文献1では、指と平面のタッチ検出を行う際に、指と平面がなす角度を考慮していなかった。指先の角度を考慮しないと、正しく平面や指先の位置が取得できず、指と操作面との接触位置が正確に認識されないという問題がある。この場合、前述したような細かい文字を選択したり、文字の下に線を引いたりする操作は困難となる。
However,
本発明は上記課題を鑑みてなされたものであり、画像解析によりタッチ検出を行う技術において、接触位置の検出精度を向上させ、ひいてはユーザーの操作性を向上させることができるユーザーインターフェイス装置および方法を提供することを目的としている。 The present invention has been made in view of the above problems, and in a technique for performing touch detection by image analysis, a user interface device and method capable of improving the detection accuracy of a contact position and thus improving user operability. It is intended to provide.
上記目的を達成するため本発明は、その一側面によれば以下の構成を有する。 In order to achieve the above object, according to one aspect, the present invention has the following configuration.
操作面で行われた操作を特定するユーザーインターフェイス装置であって、
前記操作面および該操作面を底面とする3次元空間の領域の3次元画像を取得する取得手段と、
前記3次元画像から手領域を抽出する抽出手段と、
前記手領域から指先の位置を特定する第1の特定手段と、
前記3次元画像に含まれた前記操作面および前記指先の位置に基づいて、前記操作面へのタッチを検出する検出手段と、
前記操作面へのタッチが検出された場合に、前記手領域から前記指先の向きを特定する第2の特定手段と、
前記操作面において、前記指先の位置を前記指先の向きと逆方向に所定量シフトした位置をタッチ位置として決定する決定手段とを有する。
A user interface device that identifies operations performed on the operation surface,
Acquisition means for acquiring a three-dimensional image of a region of a three-dimensional space having the operation surface and the operation surface as a bottom surface;
Extracting means for extracting a hand region from the three-dimensional image;
First specifying means for specifying the position of a fingertip from the hand region;
Detecting means for detecting a touch on the operation surface based on the position of the operation surface and the fingertip included in the three-dimensional image;
A second specifying means for specifying an orientation of the fingertip from the hand region when a touch on the operation surface is detected;
And determining means for determining, as a touch position, a position obtained by shifting the position of the fingertip by a predetermined amount in a direction opposite to the direction of the fingertip on the operation surface.
また他の側面によれば以下の構成を有する。 According to another aspect, it has the following configuration.
操作面で行われた操作を特定するユーザーインターフェイス装置であって、
前記操作面を底面とする3次元空間の領域の3次元画像を取得する取得手段と、
前記3次元画像から指の腹の位置を推定する推定手段とを有する。
A user interface device that identifies operations performed on the operation surface,
Obtaining means for obtaining a three-dimensional image of a region in a three-dimensional space having the operation surface as a bottom surface;
Estimating means for estimating the position of the belly of the finger from the three-dimensional image.
本発明によれば、画像に基づいて操作面へのタッチ検出を行う際に、触位置の検出精度を向上させ、ユーザーの操作性を向上させることができる。 According to the present invention, when performing touch detection on the operation surface based on an image, it is possible to improve the detection accuracy of the touch position and improve user operability.
以下、本発明を実施するための形態について図面を参照して説明する。
[実施形態1]
図1は、一実施形態に係るカメラスキャナ101が含まれるネットワーク構成を示す図である。図1に示すように、カメラスキャナ101はイーサネット(登録商標)等のネットワーク104にてホストコンピュータ102およびプリンタ103に接続されている。図1のネットワーク構成において、ホストコンピュータ102からの指示により、カメラスキャナ101から画像を読み取るスキャン機能や、スキャンデータをプリンタ103により出力するプリント機能の実行が可能である。また、ホストコンピュータ102を介さず、カメラスキャナ101への直接の指示により、スキャン機能、プリント機能の実行も可能である。
Hereinafter, embodiments for carrying out the present invention will be described with reference to the drawings.
[Embodiment 1]
FIG. 1 is a diagram illustrating a network configuration including a
<カメラスキャナの構成>
図2は、一実施形態に係るカメラスキャナ101の構成例を示す図である。図2(a)に示すように、カメラスキャナ101は、コントローラ部201、カメラ部202、腕部203、プロジェクタ207、距離画像センサ部208を含む。カメラスキャナの本体であるコントローラ部201と、撮像を行うためのカメラ部202、プロジェクタ207および距離画像センサ部208は、腕部203により連結されている。腕部203は関節を用いて曲げ伸ばしが可能である。図2(a)には、カメラスキャナ101が設置されている書画台204も示している。カメラ部202および距離画像センサ部208のレンズは書画台204方向に向けられており、破線で囲まれた読み取り領域205内の画像を読み取り可能である。図2(a)の例では、原稿206は読み取り領域205内に置かれているので、カメラスキャナ101に読み取り可能となっている。カメラ部202は単一解像度で画像を撮像するものとしてもよいが、高解像度画像撮像と低解像度画像撮像が可能なものとすることが好ましい。書画台204内にはターンテーブル209を設けてもよい。ターンテーブル209はコントローラ部201からの指示によって回転することが可能であり、ターンテーブル209上に置かれた物体とカメラ部202との角度を変えることができる。また、図2に示されていないが、カメラスキャナ101は、LCDタッチパネル330およびスピーカ340をさらに含むこともできる。さらに、周囲の環境情報を収集するための人感センサ、照度センサ、加速度センサなどの各種センサデバイスを含むこともできる。距離画像とは、画像データの各画素に、距離画像センサ部208からの距離を関連付けた画像データである。
<Configuration of camera scanner>
FIG. 2 is a diagram illustrating a configuration example of the
図2(b)は、カメラスキャナ101における座標系について表している。カメラスキャナ101では各ハードウェアデバイスに対して、カメラ座標系、距離画像座標系、プロジェクタ座標系という座標系が定義される。これらはカメラ部202および距離画像センサ部208が撮像する画像平面、あるいはプロジェクタ207が投影する画像平面をそれぞれXY平面とし、各画像平面に直交した方向をZ方向として定義したものである。さらに、これらの独立した座標系の3次元画像のデータ(3次元データ)を統一的に扱えるようにするために、書画台204を含む平面をXY平面とし、このXY平面から上方に垂直な向きをZ軸とする直交座標系を定義する。すなわちXY平面は底面ということもできる。
FIG. 2B shows a coordinate system in the
座標系を変換する場合の例として、図2(c)に直交座標系と、カメラ部202を中心としたカメラ座標系を用いて表現された空間と、カメラ部202が撮像する画像平面との関係を示す。直交座標系における3次元点P[X,Y,Z]は、(1)式によって、カメラ座標系における3次元点Pc[Xc,Yc,Zc]へ変換できる。
[Xc,Yc,Zc]T = [Rc|tc][X,Y,Z,1]T ... (1)
ここで、Rcおよびtcは、直交座標系に対するカメラの姿勢(回転)と位置(並進)によって求まる外部パラメータによって構成され、Rcを3×3の回転行列、tcを並進ベクトルと呼ぶ。逆に、カメラ座標系で定義された3次元点は(2)式によって、直交座標系への変換することができる。
[X,Y,Z]T = [Rc -1|-Rc -1tc] [Xc,Yc,Zc,1]T ... (2)
さらに、カメラ部202で撮影される2次元のカメラ画像平面は、カメラ部202によって3次元空間中の3次元情報が2次元情報に変換されたものである。すなわち、カメラ座標系上での3次元点Pc[Xc,Yc,Zc]を、(3)式によってカメラ画像平面での2次元座標pc[xp,yp]に透視投影変換することによって変換することが出来る。
λ[xp,yp,1]T =A [Xc,Yc,Zc]T ... (3)
ここで、Aは、カメラの内部パラメータと呼ばれ、焦点距離と画像中心などで表現される3×3の行列である。
As an example of transforming the coordinate system, FIG. 2C illustrates a rectangular coordinate system, a space expressed using a camera coordinate system centered on the
[X c , Y c , Z c ] T = [R c | t c ] [X, Y, Z, 1] T ... (1)
Here, Rc and tc are constituted by external parameters obtained by the posture (rotation) and position (translation) of the camera with respect to the orthogonal coordinate system, and Rc is called a 3 × 3 rotation matrix and tc is called a translation vector. Conversely, a three-dimensional point defined in the camera coordinate system can be converted to an orthogonal coordinate system using equation (2).
[X, Y, Z] T = [R c -1 | -R c -1 t c ] [X c , Y c , Z c , 1] T ... (2)
Further, the two-dimensional camera image plane photographed by the
λ [x p , y p , 1] T = A [X c , Y c , Z c ] T ... (3)
Here, A is a 3 × 3 matrix called an internal parameter of the camera and expressed by a focal length and an image center.
以上のように、(1)式と(3)式を用いることで、直交座標系で表された3次元点群を、カメラ座標系での3次元点群座標やカメラ画像平面に変換することが出来る。なお、各ハードウェアデバイスの内部パラメータおよび直交座標系に対する位置姿勢(外部パラメータ)は、公知のキャリブレーション手法によりあらかじめキャリブレーションされているものとする。以後、特に断りがなく3次元点群と表記した場合は、直交座標系における3次元データを表しているものとする。 As described above, by using the equations (1) and (3), the three-dimensional point group represented by the orthogonal coordinate system is converted into the three-dimensional point group coordinates or the camera image plane in the camera coordinate system. I can do it. It is assumed that the internal parameters of each hardware device and the position / orientation (external parameters) with respect to the orthogonal coordinate system are calibrated in advance by a known calibration method. Hereinafter, when there is no particular notice and it is expressed as a three-dimensional point group, it represents three-dimensional data in an orthogonal coordinate system.
<カメラスキャナのコントローラのハードウェア構成>
図3は、カメラスキャナ101の本体であるコントローラ部201のハードウェア構成例を示す図である。図3に示すように、コントローラ部201は、システムバス301に接続されたCPU302、RAM303、ROM304、HDD305、ネットワークI/F306、画像処理プロセッサ307、カメラI/F308、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312を含む。
<Hardware configuration of camera scanner controller>
FIG. 3 is a diagram illustrating a hardware configuration example of the
CPU302はコントローラ部201全体の動作を制御する中央演算装置である。RAM303は揮発性メモリである。ROM304は不揮発性メモリであり、CPU302の起動用プログラムが格納されている。HDD305はRAM303と比較して大容量なハードディスクドライブ(HDD)である。HDD305にはコントローラ部201の実行する、カメラスキャナ101の制御用プログラムが格納されている。
The
CPU302は電源ON等の起動時、ROM304に格納されている起動用プログラムを実行する。この起動用プログラムは、HDD305に格納されている制御用プログラムを読み出し、RAM303上に展開するためのものである。CPU302は起動用プログラムを実行すると、続けてRAM303上に展開した制御用プログラムを実行し、制御を行う。また、CPU302は制御用プログラムによる動作に用いるデータもRAM303上に格納して読み書きを行う。HDD305上にはさらに、制御用プログラムによる動作に必要な各種設定や、また、カメラ入力によって生成した画像データを格納することができ、CPU302によって読み書きされる。CPU302はネットワークI/F306を介してネットワーク104上の他の機器との通信を行う。
The
画像処理プロセッサ307はRAM303に格納された画像データを読み出して処理し、またRAM303へ書き戻す。なお、画像処理プロセッサ307が実行する画像処理は、回転、変倍、色変換等である。
The
カメラI/F308はカメラ部202および距離画像センサ208と接続され、CPU302からの指示に応じてカメラ部202から画像データを、距離画像センサ部208から距離画像データを取得してRAM303へ書き込む。また、CPU302からの制御コマンドをカメラ部202および距離画像センサ208へ送信し、カメラ部202および距離画像センサ208の設定を行う。距離画像センサ208には赤外線パターン投射部361、赤外線カメラ362、RGBカメラ363が含まれる。これについては後述する。
The camera I /
また、コントローラ部202は、ディスプレイコントローラ309、シリアルI/F310、オーディオコントローラ311およびUSBコントローラ312のうち少なくとも1つをさらに含むことができる。
The
ディスプレイコントローラ309はCPU302の指示に応じてディスプレイへの画像データの表示を制御する。ここでは、ディスプレイコントローラ309は短焦点プロジェクタ207およびLCDタッチパネル330に接続されている。
A
シリアルI/F310はシリアル信号の入出力を行う。ここでは、シリアルI/F310はターンテーブル210に接続され、CPU302の回転開始・終了および回転角度の指示をターンテーブル209へ送信する。また、シリアルI/F310はLCDタッチパネル330に接続され、CPU302はLCDタッチパネル330が押下されたときに、シリアルI/F310を介して押下された座標を取得する。
The serial I /
オーディオコントローラ311はスピーカ340に接続され、CPU302の指示に応じて音声データをアナログ音声信号に変換し、スピーカ340を通じて音声を出力する。
The
USBコントローラ312はCPU302の指示に応じて外付けのUSBデバイスの制御を行う。ここでは、USBコントローラ312はUSBメモリやSDカードなどの外部メモリ350に接続され、外部メモリ350へのデータの読み書きを行う。
The
<カメラスキャナの制御用プログラムの機能構成>
図4は、CPU302が実行するカメラスキャナ101の制御用プログラムの機能構成401を示す図である。カメラスキャナ101の制御用プログラムは前述のようにHDD305に格納され、CPU302が起動時にRAM303上に展開して実行する。メイン制御部402は制御の中心であり、機能構成401内の他の各モジュールを制御する。画像取得部416は画像入力処理を行うモジュールであり、カメラ画像取得部407、距離画像取得部408から構成される。カメラ画像取得部407はカメラI/F308を介してカメラ部202が出力する画像データを取得し、RAM303へ格納する。距離画像取得部408はカメラI/F308を介して距離画像センサ部208が出力する距離画像データを取得し、RAM303へ格納する。距離画像取得部408の処理の詳細は図5を用いて後述する。
<Functional structure of camera scanner control program>
FIG. 4 is a diagram illustrating a
ジェスチャー認識部409は、画像取得部416から書画台204上の画像を取得し続け、タッチなどのジェスチャーを検知するとメイン制御部402へ通知する。処理の詳細は図6Aのフローチャートを用いて後述する。画像処理部411は、カメラ部202および距離画像センサ部208から取得した画像を画像処理プロセッサ307で解析するために用いられる。前述のジェスチャー認識部409も画像処理部411の機能を利用して実行される。
The
ユーザーインターフェイス部403は、メイン制御部402からの要求を受け、メッセージやボタン等のGUI部品を生成する。そして、表示部406へ生成したGUI部品の表示を要求する。表示部406はディスプレイコントローラ309を介して、プロジェクタ207もしくはLCDタッチパネル330へ要求されたGUI部品の表示を行う。プロジェクタ207は書画台204に向けて設置されているため、書画台204上にGUI部品を投射することが可能となっている。また、ユーザーインターフェイス部403は、ジェスチャー認識部409が認識したタッチ等のジェスチャー操作、あるいはシリアルI/F310を介したLCDタッチパネル330からの入力操作、そしてさらにそれらの座標を受信する。そして、ユーザーインターフェイス部403は描画中の操作画面の内容と操作座標を対応させて操作内容(押下されたボタン等)を判定する。この操作内容をメイン制御部402へ通知することにより、操作者の操作を受け付ける。
The
ネットワーク通信部404は、ネットワークI/F306を介して、ネットワーク104上の他の機器とTCP/IPによる通信を行う。データ管理部405は、制御用プログラム401の実行において生成した作業データなど様々なデータをHDD305上の所定の領域へ保存し、管理する。例えば平面原稿画像撮影部411、書籍画像撮影部412、立体形状測定部413が生成したスキャンデータなどである。
The
<距離画像センサおよび距離画像取得部の説明>
図5に距離画像センサ208の構成を示している。距離画像センサ208は赤外線によるパターン投射方式の距離画像センサである。赤外線パターン投射部361は対象物に、人の目には不可視である赤外線によって3次元測定パターンを投射する。赤外線カメラ362は対象物に投射した3次元測定パターンを読み取るカメラである。RGBカメラ363は人の目に見える可視光をRGB信号で撮影するカメラである。
<Description of Distance Image Sensor and Distance Image Acquisition Unit>
FIG. 5 shows the configuration of the
距離画像取得部408の処理を図5(a)のフローチャートを用いて説明する。また、図5(b)〜(d)はパターン投射方式による距離画像の計測原理を説明するための図面である。距離画像取得部408が処理を開始すると、ステップS501では、図5(b)に示すように赤外線パターン投射部361を用いて赤外線による3次元形状測定パターン522を対象物521に投射する。ステップS502では、RGBカメラ363を用いて対象物を撮影したRGB画像523および、赤外線カメラ362を用いてステップS501で投射した3次元測定パターン522を撮影した赤外線カメラ画像524を取得する。なお、赤外線カメラ362とRGBカメラ363とでは設置位置が異なるため、図5(c)に示すようにそれぞれで撮影される2つのRGBカメラ画像523および赤外線カメラ画像524の撮影領域が異なる。そこでステップS503では、赤外線カメラ362の座標系からRGBカメラ363の座標系への座標系変換を用いて赤外線カメラ画像524をRGBカメラ画像523の座標系に合わせる。なお、赤外線カメラ362とRGBカメラ363の相対位置や、それぞれの内部パラメータは事前のキャリブレーション処理により既知であるとする。
The processing of the distance
ステップS504では、図5(d)に示すように、3次元測定パターン522とステップS503で座標変換を行った赤外線カメラ画像524間での対応点を抽出する。例えば、赤外線カメラ画像524上の1点を3次元形状測定パターン522上から探索して、同一の点が検出された場合に対応付けを行う。あるいは、赤外線カメラ画像524の画素の周辺のパターンを3次元形状測定パターン522上から探索し、一番類似度が高い部分と対応付けてもよい。ステップS505では、赤外線パターン投射部361と赤外線カメラ362を結ぶ直線を基線525として三角測量の原理を用いて計算を行うことにより、赤外線カメラ362からの距離を算出する。ステップS504で対応付けが出来た画素については、赤外線カメラ362からの距離を算出して画素値として保存し、対応付けが出来なかった画素については、距離の計測が出来なかった部分として無効値を保存する。これをステップS503で座標変換を行った赤外線カメラ画像524の全画素に対して行うことで、各画素に距離値が入った距離画像を生成する。ステップS506では、距離画像の各画素にRGBカメラ画像525のRGB値すなわち色情報を保存することにより、1画素につきR、G、B、距離の4つの値を持つ距離画像を生成する。ここで取得した距離画像は距離画像センサ208のRGBカメラ363で定義された距離画像センサ座標系が基準となっている。そこでステップS507では、図2(b)を用いて上述したように、距離画像センサ座標系として得られた距離データを直交座標系における3次元点群に変換する。(前述したように、特に指定がなく3次元点群と表記した場合は、直交座標系における3次元点群を示すものとする。)このようにして、測定した物体の形状を示す3次元点群を取得できる。
In step S504, as shown in FIG. 5D, corresponding points between the three-
なお、本実施例では上述したように、距離画像センサ208として赤外線パターン投射方式を採用しているが、他の方式の距離画像センサを用いることも可能である。例えば、2つのRGBカメラでステレオ立体視を行うステレオ方式や、レーザー光の飛行時間を検出することで距離を測定するTOF(Time of Flight)方式など、他の計測手段を用いても構わない。
In this embodiment, as described above, the infrared pattern projection method is adopted as the
<ジェスチャー認識部の説明>
ジェスチャー認識部409の処理の詳細を、図6Aのフローチャートを用いて説明する。図6Aにおいて、ジェスチャー認識部409が処理を開始すると、ステップS601で初期化処理を行う。初期化処理では、ジェスチャー認識部409は距離画像取得部408から距離画像を1フレーム取得する。ここで、ジェスチャー認識部の開始時は書画台204上に対象物が置かれていない状態であるため、初期状態として書画台204の平面の認識を行う。つまり、取得した距離画像から最も広い平面を抽出し、その位置と法線ベクトル(以降、書画台204の平面パラメータと呼ぶ)を算出し、RAM303に保存する。
<Description of gesture recognition unit>
Details of the processing of the
続いてステップS602では、ステップS621〜622に示す、書画台204上に存在する物体の3次元点群を取得する。その際、ステップS621では距離画像取得部408から距離画像と3次元点群を1フレーム取得する。ステップS622では書画台204の平面パラメータを用いて、取得した3次元点群から書画台204を含む平面にある点群を除去する。
In step S602, a three-dimensional point group of the object existing on the document table 204 shown in steps S621 to 622 is acquired. At that time, in step S621, the distance
ステップS603では、ステップS631〜S634に示す、取得した3次元点群からユーザーの手の形状および指先を検出する処理を行う。ここで、図6B(b)〜(e)に示す、指先検出処理の方法を模式的に表した図を用いて説明する。ステップS631では、ステップS602で取得した3次元点群から、書画台204を含む平面から所定の高さ(距離)以上にある、肌色(手の色)の3次元点群を抽出することで、手の3次元点群を得る。図6B(b)の3次元点群661は抽出した手の3次元点群すなわち手領域を表している。なおここでいう肌色とは特定の色を指すものではなく、様々な肌の色をカバーした総称である。肌色は予め定めておいてもよいし、操作者に応じて選択できるようにしてもよい。
In step S603, the process of detecting the shape and fingertip of the user's hand from the acquired three-dimensional point group shown in steps S631 to S634 is performed. Here, it demonstrates using the figure which represented typically the method of the fingertip detection process shown to FIG. 6B (b)-(e). In step S631, by extracting from the 3D point group acquired in step S602 a 3D point group of skin color (hand color) that is at a predetermined height (distance) or more from the plane including the document table 204, Obtain a 3D point cloud of the hand. A three-
また、肌色を使わず、距離画像の背景差分をとることで手の領域を発見してもよい。発見した手の領域は上述した方法で3次元点群に変換することが可能である。 Alternatively, the hand region may be found by taking the background difference of the distance image without using the skin color. The discovered hand region can be converted into a three-dimensional point group by the method described above.
ステップS632では、抽出した手の3次元点群を、書画台204の平面に射影した2次元画像を生成して、その手の外形を検出する。図6B(b)の2次元点群662は、書画台204の平面に投影した3次元点群を表している。投影は、点群の各座標を、書画台204の平面パラメータを用いて投影すればよい。また、図6B(c)に示すように、投影した3次元点群から、xy座標の値だけを取り出せば、z軸方向から見た2次元画像663として扱うことができる。このとき、手の3次元点群の各点が、書画台204の平面に投影した2次元画像の各座標のどれに対応するかを、記憶しておくものとする。
In step S632, a two-dimensional image obtained by projecting the extracted three-dimensional point group of the hand onto the plane of the document table 204 is generated, and the outline of the hand is detected. A two-
ステップS633では、指先の検出を行う。以下に指先を発見する方法についていくつか方法を述べる。まず、手の外形(すなわち輪郭)の曲率を用いる方法を説明する。 In step S633, the fingertip is detected. Here are some ways to find your fingertips. First, a method of using the curvature of the hand outline (that is, outline) will be described.
検出した手の外形上の各点について、その点での外形の曲率を算出し、算出した曲率が所定値より大きい点を指先として検出する。曲率の計算の仕方を次に説明する。図6B(e)の輪郭点664は、書画台204の平面に投影された2次元画像663の外形を表す点の一部を表している。ここで、輪郭点664のような外形を表す点のうち、隣り合う有限個の輪郭点に関して、最小二乗法を用いた円フィッティングを行うことで、手の外形の曲率を計算する。これを、全ての外形の輪郭点に対して行い、曲率が所定の値よりも大きく、かつフィットした円の中心が手の外形の内側にある場合に、隣り合う有限個の輪郭点の真ん中の点を指先として決定する。前に述べたように、RAM303が、手の外形の輪郭点に関する3次元点群との対応関係を記憶しているので、ジェスチャー認識部409は指先点の3次元情報を利用することができる。円の中心が手の外形の内側にあるか外側にあるかは、たとえば円の中心を通り座標軸と平行なライン上にある輪郭点を見出し、その輪郭点と円の中心との位置関係により判定できる。輪郭点と円の中心との中で、円の中心がそのラインの端から奇数番目にあれば円の中心は手の外形の外側にあり、偶数番目にあれば内側に在ると判定できる。
For each point on the detected outer shape of the hand, the curvature of the outer shape at that point is calculated, and a point where the calculated curvature is greater than a predetermined value is detected as a fingertip. Next, how to calculate the curvature will be described. An
図6B(e)の円669、670は、フィットした円の例を表している。円669は曲率が所定値より小さく、かつ円の中心が外形の外にあるので指先としては検出されず、円670は曲率が所定値より大きく、かつ円の中心が外形の内側にあるので指先として検出される。
また、ここでは最小二乗法を用いた円フィッティングを用いて曲率を計算し、指先を発見する方法を用いたが、隣り合う有限個の輪郭点を囲む円の半径が最小になるようにして指先を発見してもよい。次にその例を説明する。 Here, the method of finding the fingertip by calculating the curvature using circle fitting using the least square method is used, but the fingertip is set so that the radius of the circle surrounding the finite number of adjacent contour points is minimized. You may discover. Next, an example will be described.
図6B(d)は、有限個の輪郭点を囲む円から指先を検出する方法を模式的に表したものである。例として、隣り合う5個の輪郭点を含むように円を描くことを考える。円665、667が、その例である。この円を、全ての外形の輪郭点に対して順に描き、その直径(例えば666、668)が所定の値より小さいことを以て、隣り合う5個の輪郭点の真ん中(中央)の点を指先とする。この例では隣り合う5個の点としたが、その数は限定されるものではない。また、上記は円をフィッティングして指先を発見する方法について述べたが、楕円フィッティングにより指先を発見するようにしてもよい。楕円フィッティングによる指先発見の方法は、非特許文献1に書かれているので、その方法を用いればよい。
FIG. 6B (d) schematically shows a method for detecting a fingertip from a circle surrounding a finite number of contour points. As an example, consider drawing a circle so as to include five adjacent contour points.
上記のような、円フィッティングや楕円フィッティングは、OpenCVなどのオープンソースのコンピュータライブラリを用いることで簡単に実現可能である。 The circle fitting and the ellipse fitting as described above can be easily realized by using an open source computer library such as OpenCV.
その他、腕から最も遠くにある点を指先として発見してもよい。図7(b)は、読み取り領域205中に腕704がある状態を表している。これは、前述した、手の領域の3次元点群を書画台204の平面に投影したものと考えることができる。この投影画像の画素数は、距離センサ208で得る距離画像と同じである。領域703は、投影画像の外枠から、所定の数画素内側の領域である。領域705は、読み取り領域205と領域703の間にある薄い領域と腕704の領域のアンドをとった領域である。領域705により、腕703が読み取り領域205に侵入している点709と710とが発見できる。これらの処理のために、距離センサ208で取得した距離画像を直接処理してもよい。その際、腕704の領域は、RAM303に保存された距離画像の背景画像と、現在の距離画像の差分をとり、所定の閾値で二値化することで求められる。
In addition, a point farthest from the arm may be found as a fingertip. FIG. 7B shows a state where the
図7(e)の線分706は、点709と点710を結んだ線分である。線分706の中点を711とし、この点を腕の付け根の点とする。この腕の付け根の点711から、腕の外形の画素で一番遠くにある画素を指先点712とすれば指先を決定することができる。また、ここでは腕の付け根の点を求めるために、腕の侵入位置の中点をとったが、腕704自体を細線化することで、付根と指先を求めてもよい。細線化に関しては、一般的な画像処理の細線化アルゴリズムを用いれば可能である。細線化された腕のうち、領域705と交わっている方を腕の付け根とし、反対の端を指先として検出すればよい。
ステップS633では以上の方法で指先を検出することが可能となる。
A
In step S633, the fingertip can be detected by the above method.
ステップS634では、検出した指先の個数および各指先の座標を算出する。このとき、前述したように、書画台204に投影した2次元画像の各点と、手の3次元点群の各点の対応関係を記憶しているため、各指先の3次元座標を得ることができる。今回は、3次元点群から2次元画像に投影した画像から指先を検出する方法を説明したが、指先検出の対象とする画像は、これに限定されるものではない。例えば、距離画像の背景差分や、RGB画像の肌色領域から手の領域を抽出し、上に述べたのと同様の方法(外形の曲率計算等)で、手領域のうちの指先を検出してもよい。この場合、検出した指先の座標はRGB画像や距離画像といった、2次元画像上の座標であるため、その座標における距離画像の距離情報を用いて、直交座標系の3次元座標に変換する必要がある。 In step S634, the number of detected fingertips and the coordinates of each fingertip are calculated. At this time, as described above, since the correspondence between each point of the two-dimensional image projected on the document table 204 and each point of the three-dimensional point group of the hand is stored, the three-dimensional coordinates of each fingertip can be obtained. Can do. This time, a method of detecting a fingertip from an image projected from a three-dimensional point group onto a two-dimensional image has been described, but the image to be detected by the fingertip is not limited to this. For example, the hand region is extracted from the background difference of the distance image or the skin color region of the RGB image, and the fingertip in the hand region is detected by the same method (external curvature calculation, etc.) as described above. Also good. In this case, since the coordinates of the detected fingertip are coordinates on a two-dimensional image such as an RGB image or a distance image, it is necessary to convert the coordinate information into the three-dimensional coordinates of the orthogonal coordinate system using the distance information of the distance image at that coordinate. is there.
ステップS606では、タッチジェスチャー判定処理を行う。このとき、ジェスチャー認識部409は、直前のステップで検出した指先と書画台204を含む平面との距離を計算する。この計算には、検出した指先の3次元座標と、前述した書画台204の平面パラメータを用いる。距離が、所定の微小な値以下の場合は「タッチジェスチャーあり」であり、所定の微小な値より大きい場合は「タッチジェスチャーなし」である。
In step S606, touch gesture determination processing is performed. At this time, the
また、直行座標系の所定の高さ(Z方向)に仮想的な閾値平面(不図示)を設け、指先座標のZの値が閾値平面のZの値より小さくなることでタッチ検出を行ってもよい。 Further, a virtual threshold plane (not shown) is provided at a predetermined height (Z direction) of the orthogonal coordinate system, and touch detection is performed by making the value of Z of the fingertip coordinates smaller than the value of Z of the threshold plane. Also good.
次にステップS607では、直前のステップで「タッチジェスチャーあり」だった場合にステップS608へ移行し、「タッチジェスチャーなし」だった場合はステップS602へ戻る。 In step S607, if “touch gesture is present” in the previous step, the process proceeds to step S608, and if “touch gesture is not present”, the process returns to step S602.
ステップS608では、指先方向の特定処理を行う。指先方向とは、図7(a)でいえば、矢印702の方向である。つまり、手701の指が、書画台204の平面の中で指し示す方向と同じである。指先方向を特定するには、指部分の特定を行う。そのためにまず、腕が読み取り領域205に侵入している部分を特定する。前述したように、図7(b)の点709と点710とを、腕704が読み取り領域205に侵入している点として発見することができる。
In step S608, fingertip direction identification processing is performed. The fingertip direction is the direction of an
次に指部分を特定する。図7(c)の線分706は、点709と点710を結んだ線分である。線分706と平行に、線分群707を、所定の微小な間隔で、腕704の領域(これを腕領域704とも呼ぶ)に引いていく。この長さが、所定の閾値よりも短くなっている部分を指先として特定する。図7(c)では、線分708の位置から、所定の閾値以下となる。
Next, the finger part is specified. A
次に指先方向を特定する。線分708の中点の座標から、ステップS633で発見した、xy平面上の指先座標に向けてベクトル709を定義する。ベクトル709の向きが指先の方向であり、長さが指の長さを表す。ベクトル709はたとえば、線分708の中点を始点とし、ステップS634で特定した指先位置を終点とするベクトルとして特定することができる。また、図7(e)を用いて説明した方法で指先座標を求めた場合は、腕の付け根の点711から指先点712までを結んだベクトル713を指の方向ベクトルとして決めてもよい。この場合は、指の長さは上述の方法で求める必要がある。ただし、この場合にはベクトル709を求めるには及ばない。そこでたとえば長さが上述した所定の閾値(すなわち指の幅の上限)よりも短い線分群707のうち、腕の付け根の点711に最も近い線分またはその延長線がベクトル713と交差する点を求め、その点を指の付け根の位置とする。その点から指先点712までの距離を指の長さとして決めることができる。もちろん上述した方法でベクトル709を求め、それに基づいて指の長さを決めることもできる。
Next, the fingertip direction is specified. A
また、図7(f)に示したように、掌(手の甲)の中心点714から指先点715までを結んだベクトルを指の方向ベクトル716として定めてもよい。このとき掌(手の甲)の中心点714は、手領域のうち、手領域の輪郭717を構成するそれぞれの画素からの距離が最大となる点として求めることができる。
Further, as shown in FIG. 7F, a vector connecting the
更に、指先に対して楕円フィッティングを行った場合は、楕円の二つの焦点を結ぶ方向を指の方向ベクトルとしてもよい。このとき、ベクトルの方向は、上述の方法で求めた、腕が読み取り領域に侵入している点の中点を起点に決めればよい。この場合も、指の長さは上述の方法を用いて求める必要がある。 Furthermore, when ellipse fitting is performed on the fingertip, the direction connecting the two focal points of the ellipse may be used as the finger direction vector. At this time, the vector direction may be determined from the midpoint of the point where the arm has entered the reading area, which is obtained by the above method. Also in this case, the length of the finger needs to be obtained using the above-described method.
上記処理は、指さし姿勢に限定した例を書いたが、五指が開かれた状態でも、各指について得られるであろう複数の線分708それぞれについて上記処理を施すことで、全ての指についてその方向と長さを求めることができる。
Although the above processing has been described as an example limited to the pointing posture, even if five fingers are opened, the above processing is performed for each of the plurality of
ステップS608が終了すると、ステップS609へと進む。ステップS609では、タッチ位置の決定処理を行う。これは、ユーザーが実際にタッチしていると感じている、指の腹の位置を推定する処理である。図8(a)の二次元点群801は、書画台204に投影されたxy平面上の手の領域の画像を表している。このうち、部分802の拡大図が拡大部分803である。指804に対して、ベクトル805は、ステップS608で求めた、指先方向のベクトル709である。ここで、xy平面上の指先点806をベクトル805と反対向きに所定量シフト(すなわち所定距離807だけシフト)させた点のxy座標を、タッチ点808として決定し、RAM303の所定の領域に保存する。シフトさせる所定距離は、設定可能なものとする。この場合のタッチ点のz座標は、0としてもよいし、3次元点群の対応する点からz座標を定めてもよい。なお、指先806の位置は、ステップS634で特定した指先位置であってよい。
When step S608 ends, the process proceeds to step S609. In step S609, touch position determination processing is performed. This is a process for estimating the position of the belly of the finger that the user actually feels touching. A two-
また、タッチ位置(指の腹)を決める方法は、上述のように所定距離だけシフトする方法に限られるものではない。たとえば、図8(b)に示すように、指先発見の際に、円フィッティングに用いた円809の中心810をタッチ位置として決定してもよい。
Further, the method of determining the touch position (finger's belly) is not limited to the method of shifting by a predetermined distance as described above. For example, as shown in FIG. 8B, the
また、図8(c)に示すように、指先に楕円フィッティングした楕円811の焦点(812、813)のうち指先側の点812をタッチ位置として決定してもよい。このとき、焦点が指先側かどうかを決定するためには、前述した腕の付け根から遠い方を採用するようにすればよい。
Further, as shown in FIG. 8C, a
更に、指先の外形を構成する画素の重心点をタッチ位置として決定するようにしてもよい。図8(d)は、指先の外形を構成する画素と重心点との関係を模式的にあらわしたものである。指先の外形を構成する画素群814は、前述した指先の発見の際に用いた、腕の外形を構成する輪郭点の画素のうち、隣り合う複数の画素を表している。画素群814は、そのうちで指先として発見された際の9個の画素であり、真ん中の画素806が指先として発見されたと仮定する。指先点806を含めた画素群814の重心点を815としこの重心点815をタッチ位置として決定すればよい。
Furthermore, the barycentric point of the pixels constituting the outer shape of the fingertip may be determined as the touch position. FIG. 8D schematically shows the relationship between the pixels constituting the outer shape of the fingertip and the barycentric point. A
また、図8(i)に示すように、指先点806の所定の周辺領域825に含まれる指の画素の重心826をタッチ位置として決定してもよい。このとき、所定の周辺領域は、図8(i)のように円に限定されるものではない。また、重心826から指先点806までを結んだベクトルを、指先の方向ベクトルとしてもよい。
Further, as shown in FIG. 8I, the center of
また、指先の外形を構成する画素に対して、多角形近似を行って、その多角形の重心をタッチ位置として決定してもよい。図8(e)は、指先の外形に対して多角形近似を行う様子を模式的に表したものである。五角形816が指先の外形に対して近似された多角形を表している。その重心が点817で表現されているので、点817をタッチ位置として決定すればよい。多角形近似は、OpenCVなどのオープンソースで公開されているAPIを用いれば簡単に実行することが可能である。
Further, polygon approximation may be performed on the pixels constituting the outer shape of the fingertip, and the center of gravity of the polygon may be determined as the touch position. FIG. 8 (e) schematically shows how the polygonal approximation is performed on the outer shape of the fingertip. A
更に、指先発見時にフィッティングに用いた円と指先方向ベクトルを用いて、タッチ位置を決定するようにしてもよい。図8(f)は、指先発見時にフィッティングに用いた円と指先方向ベクトルを用いて、タッチ位置を決定する方法を模式的にあらわした図である。ベクトル818は指先方向ベクトルを延長したベクトルを表している。このベクトル818と指先にフィッティングさせた円809の交点のうち、ベクトルの先端に近い方の点819を仮想的な指先として求める。この仮想的な指先点は、タッチを検出する際に用いた指先点とは異なる。仮想的な指先点819を、所定距離807だけ、指先方向ベクトルと反対向きにシフトさせた点をタッチ位置820として決めてもよい。
Furthermore, the touch position may be determined using the circle used for fitting at the time of fingertip discovery and the fingertip direction vector. FIG. 8F schematically shows a method for determining the touch position using the circle used for fitting at the time of fingertip discovery and the fingertip direction vector. A
同様にして、指先にフィッティングした楕円と指先方向ベクトルを用いて、タッチ位置を決定するようにしてもよい。図8(g)は、指先にフィッティングした楕円と指先方向ベクトルを用いて、タッチ位置を決定する方法を模式的に表している。指先方向ベクトルを延長したベクトル818と楕円811の交点のうち、指先側の点821を仮想的な指先として設定する。仮想的な指先821を、指先方向ベクトルと反対向きに所定距離だけシフトさせた点822を指先点として決定すればよい。
Similarly, the touch position may be determined using the ellipse fitted to the fingertip and the fingertip direction vector. FIG. 8G schematically shows a method for determining a touch position using an ellipse fitted to the fingertip and a fingertip direction vector. Of the intersections of the
上記の処理は、手の3次元点群を書画台204の平面に射影した2次元画像、もしくは、距離画像センサ208から取得した距離画像を用いれば可能である。
The above processing can be performed using a two-dimensional image obtained by projecting a three-dimensional point group of a hand onto the plane of the document table 204 or a distance image acquired from the
加えて、RGB画像を用いてタッチ位置を決定するようにしてもよい。更に、RGB画像を用いる場合、爪を発見することにより、タッチ位置を決定するようにしてもよい。図8(h)は、指先805の拡大図であり、RGB画像で爪の領域からタッチ位置を決定する様子を模式的に表したものである。爪823が、RGB画像から発見した爪の領域を表している。爪の領域は、周辺の指の領域との輝度値の違いを見れば発見出来る。発見した爪の領域の重心点を求めて、それをタッチ位置として決定すればよい。この時、前述したようにRGB画像と距離画像との位置合わせがなされているので、爪領域の重心点を、距離画像もしくは手の3次元点群を書画台204の平面に射影した2次元画像の相当する位置に変換することは、容易に可能である。
In addition, the touch position may be determined using an RGB image. Further, when an RGB image is used, the touch position may be determined by finding a nail. FIG. 8H is an enlarged view of the
以上のような方法を用いれば、平面にタッチしているタッチ位置(指の腹の位置)を推定することが可能である。 If the method as described above is used, it is possible to estimate the touch position (the position of the belly of the finger) touching the plane.
ステップS609が終了すると、ステップS605に移行する。ステップS605では判定したタッチジェスチャーとタッチ位置の3次元座標をメイン制御部402へ通知し、ステップS602へ戻ってジェスチャー認識処理を繰り返す。
When step S609 ends, the process proceeds to step S605. In step S605, the determined touch gesture and the three-dimensional coordinates of the touch position are notified to the
なお、本実施形態では一本指でのジェスチャー認識について説明を行ったが、複数の指あるいは複数の手でのジェスチャー認識に応用することも可能である。たとえば、図6Aの手順を繰り返してタッチ位置を定期的に取得すれば、タッチの有無やタッチ位置の変化などから様々なジェスチャーを特定することができる。メイン制御部402は、アプリケーションを実行する部分である。メイン制御部402はタッチジェスチャーを受信すると、アプリケーションで定義された対応する処理を実行する。
In the present embodiment, the gesture recognition with one finger has been described, but the present invention can also be applied to gesture recognition with a plurality of fingers or a plurality of hands. For example, if the touch position is periodically acquired by repeating the procedure of FIG. 6A, various gestures can be specified based on the presence or absence of a touch or a change in the touch position. The
本実施例により、上面から距離画像センサにより指先と平面とを撮影し、距離画像を用いて、正確な平面へのタッチ位置を特定することが可能となる。 According to the present embodiment, it is possible to photograph the fingertip and the plane from the upper surface by the distance image sensor, and specify the exact touch position on the plane using the distance image.
[実施形態2]
実施形態1では、上面のセンサから指先と平面を撮影する場合の、タッチ位置の決定方法の基本的な部分を説明した。タッチ位置を決定する為に、距離画像センサで取得した距離画像から指先を発見し、指先方向と逆方向に指先位置の座標を所定距離シフトさせることで、タッチ位置の座標を決定する方法をとった。本実施形態では、ユーザーがもう少し細かいタッチ指示を行いたい場合に、タッチ位置の補正を行い、補正後の位置をタッチ位置として特定あるいは推定することで操作性を向上させる方法を、図9のジェスチャー認識部409が実行するフローチャートに沿って説明する。図10(a)は、タッチ位置の補正が必要な場合を模式的に表している。図10(a)の上の図は、書画台204の一部である平面1003に指1001がタッチしている様子を横から見た図である。この場合、実施形態1で説明した方法と同じやり方で発見した指先の3次元点が、指先位置1005で表される。実施形態1で説明した方法で、ユーザー定義の所定の値1007だけ指先の位置を示す指先座標をシフトさせて決めたタッチ位置の点は、タッチ位置1006で表される。図10(a)の下の図は、上の図よりも指1002の、平面1004に対する角度が大きい場合を表している。この場合、実施形態1と同じ方法で求めたタッチ位置の点は、位置1008となるが、実際に平面に接触している点は位置1009である。このように、タッチ点を求めるために、所定の固定値だけシフトさせただけでは、指先の平面に対する角度に応じて、実際にタッチしている、もしくはタッチしているとユーザーが感じる点と、タッチ位置の点として求めた点がずれてしまうことがあり得る。そこで本実施形態では、タッチ位置の点を求めるために指先位置をシフトさせる量を求めるのに、指先の角度を用いる。
[Embodiment 2]
In the first embodiment, the basic part of the method for determining the touch position when photographing the fingertip and the plane from the sensor on the upper surface has been described. In order to determine the touch position, a fingertip is found from the distance image acquired by the distance image sensor, and the coordinate of the fingertip position is shifted by a predetermined distance in the direction opposite to the fingertip direction to determine the touch position coordinates. It was. In this embodiment, when the user wants to give a slightly more detailed touch instruction, the touch position is corrected, and the method for improving the operability by specifying or estimating the corrected position as the touch position is shown in FIG. A description will be given along a flowchart executed by the
図9のフローチャートのステップS6xxと記載されたステップは、実施形態1において、図6A,図6Bの説明時に説明済みである。ここでは、差分であるステップS9xxと記載されたステップを中心に説明する。 Steps described as step S6xx in the flowchart of FIG. 9 have been described in the description of FIGS. 6A and 6B in the first embodiment. Here, the description will focus on the step described as step S9xx, which is the difference.
ステップS608で指先方向ベクトル709を特定した後、ジェスチャー認識部409は、ステップS901において、手指と書画台204の平面がなす角度を求める。この時、ステップS608で求めた、指先方向のベクトル709を用いる。指先方向のベクトル709は、書画台204の平面、つまりxy平面上の2次元ベクトルである。このベクトルは、横から見た図では、図10(b)のベクトル1010、1012のように表される。これらのベクトル1010、1012の始点と終点を、前述した手の3次元点群内の点と対応づける。この対応づけは、前述したステップS603において3次元点群を平面に投影した際に既になされている。図10(b)上の例では、ベクトル1010の始点は、3次元点1018に、終点は3次元点1005に対応づけることができる。たとえば、ベクトルのそれぞれの端点を通りz軸に平行な直線と、手の3次元点群で構成される面との交点を、求める三次元ベクトルのそれぞれの端点とする。手の3次元点群は手の表面を形成しているので交点は直線ごとに2つずつ存在する可能性があるが、それぞれの端点で同じ側(すなわちz成分がより小さい方か、又はより大きい方のいずれか)の交点を採用すれば、いずれを用いてもよい。図10の例では、z成分がより大きい方の交点を用いている。もちろんこれは一例に過ぎない。このようにして3次元点1018、1005をそれぞれ、始点、終点とするベクトル1011を得れば、これが指の3次元ベクトルとなる。同様にして、指の3次元ベクトル1013を得ることができる。ベクトル1010とベクトル1011のなす角1020、および、ベクトル1012とベクトル1013のなす角1022が、指と平面のなす角として求められる。
After identifying the
次に、ステップS902では、タッチ位置を求めるために指先位置をシフトさせる量を求める。図10(c)は、ステップS901で求めた平面に対する指の角度を利用してシフトする量を決めている様子を模式的に表した図である。まず、図10(c)の上の図で説明する。ベクトル1014は、指先の3次元点1005を始点とし、指の3次元ベクトル1018と逆方向の単位ベクトルを持ち、ユーザー指定の所定の長さを持っているものとする。このベクトル1014の終点をxy平面1003にz軸に沿って投影した点が点1016であり、この点を求めたいタッチ位置とする。同じ方法で図10(c)の下の図でもタッチ位置1017を求めることができる。このように指の先端から三次元の指先方向ベクトルの逆方向に所定距離ずらした位置をxy平面(すなわち操作面)に投影すれば、平面に対する指の角度に応じてタッチ位置を前後させることができるため、ユーザーのタッチ感覚を損なわないタッチ位置を提供することができる。
Next, in step S902, an amount by which the fingertip position is shifted to obtain the touch position is obtained. FIG. 10C is a diagram schematically illustrating how the shift amount is determined using the angle of the finger with respect to the plane obtained in step S901. First, a description will be given with reference to the upper part of FIG. The
このタッチ位置1016、1017を求める作業は、書画台204のxy平面上にあり、指先点を始点とするベクトル1021、1023を求める作業に他ならない。図10(d)に示したように、ベクトル1010、ベクトル1012と逆向きのベクトルをそれぞれ、ベクトル1024、ベクトル1025とする。ベクトル1014、1015をベクトルv、ベクトル1024、1025をベクトルw、求めたいベクトル1021、1023をベクトルxと定義すれば、ベクトルxはベクトルvをベクトルwに正射影したものである。ベクトルvをベクトルwに正射影したベクトルv'は、角度1020、1022をθと定義すると、角度θを用いて次式で表される。
v'=(|v||w|cosθ/|w|)×w/|w| ・・・(4)
この(4)式のうちw/|w|はベクトルwと同方向の単位べクトルであるから、定数"|v||w|cosθ/|w|"=|v|cosθが、求めたいベクトルv'の大きさ、すなわち指先の位置をタッチ位置までxy平面内でシフトさせるシフト量である。なお、ベクトルwがxy平面上にあるのなら、ベクトルvのベクトルwに対する正射影v'は、ベクトルvの始点及び終点のz成分をいずれも0に置換することで求めることができる。
The operation for obtaining the
v ′ = (| v || w | cos θ / | w |) × w / | w | (4)
Since w / | w | in the equation (4) is a unit vector in the same direction as the vector w, the constant “| v || w | cosθ / | w |” = | v | cosθ is a vector to be obtained. The magnitude of v ′, that is, a shift amount for shifting the position of the fingertip to the touch position in the xy plane. If the vector w is on the xy plane, the orthogonal projection v ′ of the vector v with respect to the vector w can be obtained by substituting the z component of the starting point and the ending point of the vector v with 0.
ジェスチャー認識部409は、ステップS903では、指先位置を始点とするステップS902で求めたベクトルv'の終点をタッチ位置として決定する。すなわち、xy平面内の指先方向の2次元ベクトルに沿ってステップS902で求めたシフト量だけ指先位置をシフトさせ、その座標をタッチ位置として決定し、RAM303に保存する。
In step S903, the
上記処理を行うことにより、指先方向と操作平面との角度に応じてタッチ位置を変化させ、より正確にタッチ位置を特定することができる。 By performing the above processing, the touch position can be changed according to the angle between the fingertip direction and the operation plane, and the touch position can be specified more accurately.
また、図10(c)を見てもわかるように、指1002が平面に対して立っている場合(図10(c)の下の図)の補正量1023は、指1001が平面に対して寝ている場合(図10(c)の上の図)の補正量1021よりも補正量が小さい。この前提のもと、ユーザーがタッチした位置を用いて補正量を決定するようにしてもよい。ユーザーは、自分から見て遠い位置をタッチする時の方が、近い位置をタッチする時よりも指先が寝る傾向がある。したがって、遠い位置では大きい補正量、近い位置では少ない補正量を指先からシフトすることによって、タッチ位置を決定するようにすればよい。ユーザーからタッチ位置までの距離は、実施形態1で述べた腕の付け根の点から指先点までの距離により計測できる。
As can also be seen from FIG. 10C, the
図10(e)は、ユーザーからタッチ位置までの距離と補正量との関係の一例を模式的にグラフで表したものである。横軸はユーザーからの距離を、縦軸は補正量を表している。図10(e)では線形のグラフを描いたが、線形に限定されるものではない。上記処理を用いても、指先と平面の角度に応じたタッチ位置の補正を、簡易的に行うことが可能となる。 FIG. 10E schematically shows an example of the relationship between the distance from the user to the touch position and the correction amount in a graph. The horizontal axis represents the distance from the user, and the vertical axis represents the correction amount. Although a linear graph is drawn in FIG. 10 (e), it is not limited to linear. Even if the above process is used, the correction of the touch position according to the angle between the fingertip and the plane can be easily performed.
[実施形態3]
実施形態1および2では、上面のセンサから指先と平面を撮影する場合の、タッチ位置の決定方法の基本的な部分と、平面に対する指の角度に応じてタッチ位置を決定する方法を説明した。これらの方法は距離画像センサ208のノイズが少ない場合に成立する。
[Embodiment 3]
In the first and second embodiments, the basic part of the method for determining the touch position when photographing the fingertip and the plane from the sensor on the upper surface and the method for determining the touch position according to the angle of the finger relative to the plane have been described. These methods are established when the
ここで距離画像センサ208のノイズが、平面へのタッチ位置の検出に及ぼす影響について説明する。図12(a)の上側の図は、平面1202に、指1201がタッチしている様子と、実際に距離画像センサにより取得した平面の距離情報1203を横から見た状態を、模式的に表している。距離画像センサ208と書画台204の位置関係は固定であるため、理想的には、距離画像センサ208で取得した平面の距離情報は一定である。しかし、実際にはある程度のノイズが乗るため、書画台204の平面の距離情報には時間軸方向での揺らぎがある。距離画像センサから得られる平面の距離情報は、距離情報として取得した段階では、図12(a)の距離情報1203のように、ノイズを含み、凹凸をもった状態で取得される。前述の平面パラメータを求める際は、これらの凹凸の平均をとるようにして求める。この凹凸が時間軸方向の揺らぎによって、距離画像センサ208で取得する距離画像のフレーム毎に変化する。書画台204の平面、乃至前述の平面パラメータの平面は、図12(a)の平面1202で表されている。これに対し、現在一般的な距離画像センサでは、取得した距離画像の距離情報1203は、±3mm程度上下する凹凸を示す。そのため、前述の図6AのステップS631で、所定の高さ以上の3次元点群を指先として抽出する際は、上記のような平面に乗ったノイズの時間方向の揺らぎを誤って検出してしまわないようにしなければならない。そのために、距離画像に表れた、本来は平面であるはずの面の凹凸を吸収するマージンとして、所定の高さ1205が、5mm程度必要となる。図12(a)では、平面1202から、所定の高さ1205(5mm程度)に設定された平面を1204で表している。前述したように、手の領域を検出する際、平面1204より下にある部分は、平面と共に除去する必要があるため、指先の3次元点1206が、平面1204より下にある場合は、除去されてしまう。この時、除去されずに残った点の中で、指先として検出できる、仮想的な指先点が、平面1204上の点1207である。図12(a)の下側の図は、上側の図を上から見た様子(xy平面上の状態)を模式的に表している。指先点1206は点1212に、仮想的な指先点1207は点1211に対応している。指1209のうち、点線1210より左側の領域は、検出できない。図12(b)でいえば、点線1213で囲まれた部分が、手の領域から除去されてしまう。実線で囲まれた部分のみが、手の領域として抽出される。この場合、真の指先の3次元点1206と、仮想的な指先点1207(1211)との差分の距離1208は、5mm〜10mmになる。
Here, the influence of the noise of the
実施形態1や実施形態2で行った方法では、指先位置を正確に取得することを前提として、タッチ位置を決定する。そのため、上記のように距離画像にノイズがある場合は、正確なタッチ位置の決定が難しい。仮想的な指先点1207を用いてタッチ位置を検出した場合、上述したように、5mm〜10mm程度実際のタッチ位置とずれが生じる。そこで本実施形態では、同時に取得している、距離画像よりノイズの少ないRGB画像を用いて、正確なタッチ位置を決定する。この方法を、図11の、ジェスチャー認識部409が実行するフローチャートを用いて説明する。図11のステップS6xx、ステップS9xxと書かれた部分は、図6A、図9でそれぞれ説明した部分なので、説明を割愛する。
In the method performed in the first embodiment or the second embodiment, the touch position is determined on the assumption that the fingertip position is accurately acquired. Therefore, when there is noise in the distance image as described above, it is difficult to determine an accurate touch position. When the touch position is detected using the
ステップS608で指先方向ベクトル709を特定した後、ジェスチャー認識部409は、ステップS1101において、画像取得部416より、距離画像センサ208がRGBカメラ363で取得したカラー画像、すなわちRGB画像を取得する。
After identifying the
ステップS1102において、ジェスチャー認識部409は、取得したRGB画像から指先検出を行う。これにはまず、距離画像で行ったのと同様に、RGB画像中の手の領域を検出する必要がある。そのため、起動時に予めRAM303に保存しておいた背景画像(何も置かれていない書画台204の画像)と、ステップS1101で取得したRGB画像の差分画像を求める。もしくは、ステップS1101で取得したRGB画像から肌色の領域を検出する。その後、図6AのステップS633、S634と同様の処理を施せば、xy平面上の2次元の指先位置を発見することができる。図12(c)は、xy平面の画像上で、距離画像で得られた指1209にRGB画像の指が重ねて表示されている様子を表している。この時、距離画像を用いて求めた指先が1211で表されている。また、点線で囲まれ部分1214は、指のうち、RGB画像と距離画像の差分の領域である。点1215は、RGB画像を用いて発見した指先を表している。
In step S1102, the
ステップS1103において、ジェスチャー認識部409は、手指と平面のなす角度を取得する。この処理は、図9のステップS901の処理と同様の処理である。このとき、ステップS1103で、指先の座標として、距離画像を用いて取得した指先点1211を用いる。
In step S1103, the
ステップS1104において、ジェスチャー認識部409は、真の3次元の指先位置を推定する。真の3次元の指先位置とは、前述したように、ノイズと共に除去された指先の3次元座標である。図12(d)のベクトル1216は、直前のステップS1103で求めた指先方向を示す3次元ベクトル(指のベクトルとも呼べる)である。この指の3次元ベクトルは、仮想的な3次元の指先位置1207を先端として求められている。点線1219は、RGB画像から求めた2次元の指先位置1212を通り、かつ、平面1202への指ベクトル1216の正射影に直交する平面1219を横から見たものである。ベクトル1216を終点側に延長し、平面1219と交わった点1220を真の3次元の指先位置として推定する。点1210のx、y成分は点1212のx、y成分とそれぞれ一致するので、点1207のz成分およびベクトル1216の傾きに応じて点1210のz成分を求めれば、点1220を特定できる。ベクトル1218は、延長した分のベクトルを表現している。ベクトル1216とベクトル1218を足したベクトルを、真の指の3次元ベクトルとして、以後の処理で利用する。ステップS1104が終了すると、ステップS902へ移行する。ここからの処理は、図9で説明した処理と同様の処理である。すなわち、指先位置1220から指ベクトルの逆方向へ所定距離戻した点をxy平面へと投影し、その点をタッチ位置として推定する。その際、指の3次元ベクトルとしては、上記真の指の3次元ベクトルを用いて処理を行う。
In step S1104, the
上記処理により、距離画像センサの精度がよくない場合でも、3次元の指先位置を推定し、タッチ位置を決定することが可能となる。 By the above processing, even when the accuracy of the distance image sensor is not good, it is possible to estimate the three-dimensional fingertip position and determine the touch position.
[実施形態4]
実施形態3では、距離画像にノイズがある場合に、RGB画像を用いて3次元の指先位置を発見し、タッチ位置を決定する方法を説明した。本実施形態では、RGB画像を用いず、距離画像のみで真の3次元の指先位置を発見し、タッチ位置の決定に用いる方法を説明する。
[Embodiment 4]
In the third embodiment, the method of finding a three-dimensional fingertip position using an RGB image and determining the touch position when there is noise in the distance image has been described. In the present embodiment, a method will be described in which a true three-dimensional fingertip position is found using only a distance image without using an RGB image and is used for determining a touch position.
図14(a)は、平面1408にタッチする寸前の指1401が、矢印1404の方向に降下して、タッチしている状態の指1402に変化する様子を模式的に表している。実施形態3でも述べたように、距離画像にノイズがある場合、所定の高さ1406の位置に平面の閾値(あるいは平面度の閾値)を設定しなければならなくなる。そのため、タッチしている状態の指1402は、先端部分1405が、平面と共に除去され、指先が欠けた状態になるので、真の3次元の指先位置を直接発見することが難しい。しかし、タッチする寸前の指1401は所定の高さ1406より高い位置にあるため、指先が欠けることはない。この状態の指の長さを保存しておき、タッチ後の指先位置の推定に用いる。
FIG. 14A schematically shows a state where the
この方法を図13の、ジェスチャー認識部409が実行するフローチャートを用いて詳細に説明する。図13のステップのうち、ステップS6xx、S9xx、S11xxと記載されているものは、図6A、図9、図11のフローチャートで説明したステップと同様であるため、詳しい説明を割愛する。
This method will be described in detail with reference to the flowchart executed by the
ステップS603で指先検出を行った後、ステップS1301において、ジェスチャー認識部409は、後述するタッチカウントが所定値以下かどうかを確かめる。ここでタッチカウントとは、ジェスチャー認識部409の処理が開始された後、何回平面へのタッチが行われたかを表す数値である。ステップS607でタッチジェスチャーありと判定された場合に、インクリメントされ、RAM303に保存されているものとする。所定値以下であった場合は、ステップS1302へ進み、所定値以上であった場合は、ステップS606へ進む。
After performing fingertip detection in step S603, in step S1301, the
ステップS1302において、ジェスチャー認識部409は、指先位置が所定の高さ以下かどうかを確認する。ここでいう所定の高さとは、図14(a)の1412の高さである。これは、ノイズを回避するための高さ1406より大きく設定される必要がある。高さ1412は平面1407よりも十分離れた位置に指があることを保証するためのものなので、高さ1412は高さ1406よりも大きく、かつ、通常の操作における指の高さよりも低い範囲で、たとえば高さ1406の倍程度に設定される。高さ1406が5mm程度に設定されている場合、高さ1412は10〜20mmに設定しておけばよい。ここで所定の高さ以下だった場合はステップS1303へ移行し、所定の高さより高かった場合はステップS606へ移行する。
In step S1302, the
ステップS1303において、ジェスチャー認識部409は、指の長さを保存する処理を実行する。この時、ジェスチャー認識部409は、実施形態2で説明したステップS901と同じ方法で、指の3次元ベクトル1411を得る。この指の3次元ベクトル1411の長さを、RAM303の所定領域に保存しておく。
In step S1303, the
上記ステップS1301〜S1303の処理は、タッチカウントが所定の回数を超えるまで実行されるが、その回数分、指の3次元ベクトルを取得し、長さの平均値をとるようにしてもよい。 The processes in steps S1301 to S1303 are executed until the touch count exceeds a predetermined number. However, the three-dimensional vector of the finger may be acquired for the number of times, and the average length may be taken.
さてステップS608で操作面にタッチした指先方向の特定が済むと、ステップS1305において、ジェスチャー認識部409は、手指と平面のなす角度から、3次元指先位置を推定する処理を行う。この時、ステップS1103で求めた、仮想的な指の3次元ベクトル1414を、その始点位置を維持したままステップS1301〜S1303で求めた指の長さまで延長する。延長された指の3次元ベクトルが、ベクトル1416である。この先端1417を真の3次元の指先点とする。この真の3次元の指先点を用いれば、以降のステップにおいて、実施形態1,2と同様にしてタッチ位置を決定することができる。
When the direction of the fingertip touching the operation surface is identified in step S608, the
本実施形態は前述の平面の閾値が平面に対して一定で、所定以上の場合を対象にしている。しかし、環境によっては、平面の場所ごとにセンサの感度が変わるため、場所ごとに平面の閾値(図14の高さ1406)を変えられる場合がある。その場合、場所ごとに真の3次元の指先位置を推定する必要がある場合とそうでない場合がある。そのようなときは、予め平面の場所ごとの閾値を保存しておく。場所とは、操作平面上における領域区分等で特定する。そして図15のフローチャートのステップS1501に示すように、タッチされた位置の平面の閾値が所定値以下かどうかを判定して、所定値を超えていればステップS1103、S1305、S902を行うものと決めるようにしてもよい。同様にして、RGB画像から真の指先の3次元位置を推定する場合も、平面の場所ごとの閾値に応じて処理を切り替えるようにしてもよい。
The present embodiment is intended for the case where the above-described plane threshold is constant with respect to the plane and is greater than or equal to a predetermined value. However, depending on the environment, the sensitivity of the sensor changes for each plane location, so that the plane threshold (
尚、上記処理では、所定の高さ1412より指先が低くなったら指の長さを保存するようにしたが、初回起動時に指先を距離画像センサにかざす等して、指の長さを保存するようにしてもよい。
In the above processing, the finger length is stored when the fingertip becomes lower than the
また、フローチャートでは、ステップS1305で真の3次元の指先位置を推定した後、ステップS902、S609でタッチ位置を決定したが、この順序を逆にしてもよい。まず指先がタッチされていないうちに、ステップS902、S609と同様の処理を用いて補正量、つまりは指の腹の位置を算出しておく。ステップS1303では、求めた指の長さに加えて、指の付け根から指の腹までの長さを保存する。タッチジェスチャーが検出されたのちに、先に保存した指の腹までの長さを用いて、ステップS1305と同様の処理を行い、正確なタッチ位置を推定するようにしてもよい。 In the flowchart, the true three-dimensional fingertip position is estimated in step S1305 and then the touch position is determined in steps S902 and S609. However, this order may be reversed. First, while the fingertip is not touched, the correction amount, that is, the position of the belly of the finger is calculated using the same processing as in steps S902 and S609. In step S1303, in addition to the obtained finger length, the length from the base of the finger to the belly of the finger is stored. After the touch gesture is detected, the same processing as in step S1305 may be performed using the length of the finger stored in advance to estimate the accurate touch position.
また、上記処理では、指の角度と長さを用いて、正確なタッチ位置を推定する方法を説明したが、指先の軌跡を保存することにより、正確なタッチ位置を推定するようにしてもよい。図14(c)は指先の位置の軌跡を用いてタッチ時の指先位置を推定する様子を模式的に表した図である。位置1421、1422、1423は、タッチする直前の、時系列に連続した指の位置を表している。
In the above processing, the method for estimating the accurate touch position using the angle and length of the finger has been described. However, the accurate touch position may be estimated by storing the trajectory of the fingertip. . FIG. 14C is a diagram schematically showing how the fingertip position at the time of touching is estimated using the locus of the fingertip position.
位置1424は予測されるタッチ位置での指の位置を表しており、この時の指先はノイズを回避するための高さ1406より下になっているため、そのままでは正しい指先位置が発見出来ない。軌跡1425は、指先の軌跡を表している。軌跡1426は予測される指先の軌跡を表している。ここで、ノイズを回避するための高さ1406より高い所定の位置1420に、閾値を設けて置く。図14(c)の高さ方向の座標値がこの閾値1420以下となるまで、指先の軌跡をRAM303に保存し、その後の指先の軌跡を予測するのに用いる。軌跡の保存は、現在の指先位置と直前の指先位置を用いて、2点間を結ぶ3次元的な直線を保存していくようにすればよい。この場合、直線の方向に軌跡の方向ベクトルをとれば、その方向ベクトルと、書画台の平面1408(もしくは書画台の平面から所定の高さに設けた仮想的な平面)が交わる点が予測される指先点となる。
The
また、現在と直前の2点だけではなく、直近の指先位置を所定個数だけRAM303に保存しておき、所定個数の指先位置を通る近似曲線を3次元的に求めるようにしてもよい。この場合、3次元的な曲線と書画台の平面1408(もしくは書画台の平面から所定の高さに設けた仮想的な平面)が交わる点が予測される指先点となる。上記の書画台の平面1408から所定の高さに設けた仮想的な平面は不図示である。この仮想的な平面は、指の厚みを考慮して、指の厚み分実際の書画台の平面1408より上に設定された平面である。指先位置が推定されれば、これまでに述べてきた方法を用いて、タッチ位置(指の腹の位置)を求めることができる。
Alternatively, not only the current and previous two points but also a predetermined number of the latest fingertip positions may be stored in the
また、上記の方法は、まず指先の軌跡を用いて、タッチ時の指先位置を推定してから、指の腹の位置を求める順序で説明したが、これを逆にしてもよい。つまり、毎フレーム、指の腹の位置の推定処理を、これまで述べてきた方法を使って行っておき、指の腹の位置の軌跡を求めることで、タッチ位置を推定するようにしてもよい。 In the above-described method, first, the fingertip position at the time of touching is estimated using the trajectory of the fingertip and then the order of obtaining the position of the belly of the finger is described. However, this may be reversed. That is, the estimation process of the position of the finger belly may be performed every frame using the method described so far, and the touch position may be estimated by obtaining the locus of the finger belly position. .
また、上記は、常に指の軌跡を保存しておく方法を述べたが、CPUパフォーマンスを低下させない観点から、指が所定の高さ以下になった時点で軌跡を保存し始めるようにしてもよい。図14(c)でいえば、高さ1412に閾値を設け、指先がその閾値以下になった時点で指の軌跡をとり始めればよい。
Further, the above has described the method of always storing the trajectory of the finger. However, from the viewpoint of not reducing the CPU performance, the trajectory may be started to be stored when the finger falls below a predetermined height. . In FIG. 14C, a threshold value may be provided at the
更に、指の軌跡を簡易的に求める方法として、所定の高さの2点間を結ぶ直線を求めることで指先位置を予測するようにしてもよい。たとえば、図14(c)の閾値1403、1420を、指が上から順番に横切った時の指先の座標を保存しておき、それぞれの座標を3次元的に結んだ直線を求める。
この直線と書画台の平面1408が交わる点を予測される指先点としてもよい。
上記処理により、正確なタッチ位置を推定することが可能となる。
Furthermore, as a method for easily obtaining the trajectory of the finger, the fingertip position may be predicted by obtaining a straight line connecting two points having a predetermined height. For example, the coordinates of the fingertip when the finger crosses in order from the top are stored as the
The point where the straight line and the
With the above processing, it is possible to estimate an accurate touch position.
[その他の実施例]
なお本発明は以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
[Other Examples]
The present invention can also be realized by executing the following processing. That is, software (program) that realizes the functions of the above-described embodiments is supplied to a system or apparatus via a network or various storage media, and a computer (or CPU, MPU, or the like) of the system or apparatus reads the program. It is a process to be executed.
101 カメラスキャナ、201 コントローラ部、202 カメラ部、204 書画台、207 プロジェクタ、208 距離画像センサ部
DESCRIPTION OF
Claims (24)
前記操作面および該操作面を底面とする3次元空間の領域の3次元画像を取得する取得手段と、
前記3次元画像から手領域を抽出する抽出手段と、
前記手領域から指先の位置を特定する第1の特定手段と、
前記3次元画像に含まれた前記操作面および前記指先の位置に基づいて、前記操作面へのタッチを検出する検出手段と、
前記操作面へのタッチが検出された場合に、前記手領域から前記指先の向きを特定する第2の特定手段と、
前記操作面において、前記指先の位置を前記指先の向きと逆方向に所定量シフトした位置をタッチ位置として決定する決定手段と
を有することを特徴とするユーザーインターフェイス装置。 A user interface device that identifies operations performed on the operation surface,
Acquisition means for acquiring a three-dimensional image of a region of a three-dimensional space having the operation surface and the operation surface as a bottom surface;
Extracting means for extracting a hand region from the three-dimensional image;
First specifying means for specifying the position of a fingertip from the hand region;
Detecting means for detecting a touch on the operation surface based on the position of the operation surface and the fingertip included in the three-dimensional image;
A second specifying means for specifying an orientation of the fingertip from the hand region when a touch on the operation surface is detected;
A user interface device, comprising: a determining unit configured to determine, as a touch position, a position obtained by shifting the position of the fingertip by a predetermined amount in a direction opposite to the direction of the fingertip on the operation surface.
前記決定手段は、前記操作面において、前記操作面に投影した前記手領域の前記指先の位置を前記指先の向きと逆方向に所定量シフトした位置をタッチ位置として決定することを特徴する請求項1に記載のユーザーインターフェイス装置。 The second specifying means specifies the direction of the fingertip from the hand region projected on the operation surface,
The determination means determines, as a touch position, a position obtained by shifting the position of the fingertip of the hand region projected onto the operation surface by a predetermined amount in a direction opposite to the direction of the fingertip on the operation surface. The user interface device according to 1.
前記決定手段は、前記指先の位置を、前記指先の向きと逆方向に所定量シフトした位置を前記操作面に投影し、該位置をタッチ位置として決定することを特徴する請求項1に記載のユーザーインターフェイス装置。 The second specifying means specifies the orientation of the fingertip in the three-dimensional image;
The said determination means projects the position which shifted the position of the said fingertip predetermined amount in the direction opposite to the direction of the said fingertip on the said operation surface, and determines this position as a touch position. User interface device.
前記カラー画像における手領域の色に基づいて前記操作面上の前記指先の位置を特定する第3の特定手段とをさらに有し、
前記決定手段は、前記第2の特定手段により特定された前記3次元画像の指先の向きに、前記第3の特定手段により特定された前記操作面上の指先位置まで延長した位置を補正後の指先の位置とし、該指先の位置を前記指先の向きと逆方向に所定量シフトした位置を前記操作面に投影し、該位置をタッチ位置として決定することを特徴する請求項3に記載のユーザーインターフェイス装置。 Means for acquiring a color image of a region of a three-dimensional space having the operation surface and the operation surface as a bottom surface;
A third specifying means for specifying a position of the fingertip on the operation surface based on a color of a hand area in the color image;
The determining means corrects the position extended to the fingertip position on the operation surface specified by the third specifying means in the direction of the fingertip of the three-dimensional image specified by the second specifying means. 4. The user according to claim 3, wherein the position is a fingertip position, a position obtained by shifting the position of the fingertip by a predetermined amount in a direction opposite to the direction of the fingertip is projected on the operation surface, and the position is determined as a touch position. Interface device.
前記指先が前記所定の距離以下にある場合に、前記手領域から指の長さを計測する計測手段とをさらに有し、
前記決定手段は、前記第2の特定手段により特定された前記3次元画像の指先の向きに、前記計測手段により計測した指の長さまで前記指先の位置をずらした位置を補正後の指先の位置とし、該指先の位置を前記指先の向きと逆方向に所定量シフトした位置を前記操作面に投影し、該位置をタッチ位置として決定することを特徴する請求項3に記載のユーザーインターフェイス装置。 A determination unit that determines that the fingertip is within a predetermined distance from the operation surface when a touch on the operation surface is not detected by the detection unit;
Measuring means for measuring the length of the finger from the hand region when the fingertip is below the predetermined distance;
The determining means corrects the position of the fingertip after correcting the position of the fingertip shifted to the finger length measured by the measuring means in the direction of the fingertip of the three-dimensional image specified by the second specifying means. 4. The user interface device according to claim 3, wherein a position obtained by shifting the position of the fingertip by a predetermined amount in a direction opposite to the direction of the fingertip is projected onto the operation surface, and the position is determined as a touch position.
前記3次元画像を前記操作面に投影した画像から、前記手領域が前記操作面に侵入している場所を特定し、該場所から前記手領域の幅が所定の閾値よりも小さくなる位置を指の元の位置として特定し、前記指の元の位置から前記指先の位置までの長さを前記指の長さとして計測することを特徴とする請求項7に記載のユーザーインターフェイス装置。 The measuring means calculates a curvature of the outer shape from the outer shape of the hand region, specifies a point where the curvature is smaller than a predetermined value as a fingertip position,
From the image obtained by projecting the three-dimensional image onto the operation surface, a location where the hand region has entered the operation surface is specified, and a position where the width of the hand region is smaller than a predetermined threshold is designated from the location. The user interface device according to claim 7, wherein the user interface device is specified as an original position of the finger, and a length from the original position of the finger to the position of the fingertip is measured as the length of the finger.
前記操作面を底面とする3次元空間の領域の3次元画像を取得する取得手段と、
前記3次元画像から指の腹の位置を推定する推定手段と、
を有することを特徴とするユーザーインターフェイス装置。 A user interface device that identifies operations performed on the operation surface,
Obtaining means for obtaining a three-dimensional image of a region in a three-dimensional space having the operation surface as a bottom surface;
Estimating means for estimating the position of the belly of the finger from the three-dimensional image;
A user interface device comprising:
前記操作面を底面とする3次元空間の領域の3次元画像を取得する取得工程と、
前記3次元画像から指の腹の位置を推定する推定工程と
を有することを特徴とするユーザーインターフェイス装置の制御方法。 A method of controlling a user interface device that identifies an operation performed on an operation surface,
An acquisition step of acquiring a three-dimensional image of a region in a three-dimensional space having the operation surface as a bottom surface;
And a estimating step of estimating a position of a finger belly from the three-dimensional image.
操作面を底面とする3次元空間の領域の3次元画像を取得する取得手段と、
前記3次元画像から指の腹の位置を推定する推定手段と
して機能させるためのプログラム。 Computer
Obtaining means for obtaining a three-dimensional image of a region in a three-dimensional space having the operation surface as a bottom surface;
A program for functioning as an estimation means for estimating the position of the belly of a finger from the three-dimensional image.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/818,770 US10310675B2 (en) | 2014-08-25 | 2015-08-05 | User interface apparatus and control method |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014170886 | 2014-08-25 | ||
JP2014170886 | 2014-08-25 | ||
JP2015010680 | 2015-01-22 | ||
JP2015010680 | 2015-01-22 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2016139396A true JP2016139396A (en) | 2016-08-04 |
JP2016139396A5 JP2016139396A5 (en) | 2018-09-06 |
JP6643825B2 JP6643825B2 (en) | 2020-02-12 |
Family
ID=56560408
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015147083A Expired - Fee Related JP6643825B2 (en) | 2014-08-25 | 2015-07-24 | Apparatus and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6643825B2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017170027A1 (en) * | 2016-03-30 | 2017-10-05 | セイコーエプソン株式会社 | Image recognition apparatus, image recognition method, and image recognition unit |
JP2018055257A (en) * | 2016-09-27 | 2018-04-05 | キヤノン株式会社 | Information processing device, control method thereof, and program |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991079A (en) * | 1995-09-28 | 1997-04-04 | Toshiba Corp | Information input device and image processing method |
US20080273755A1 (en) * | 2007-05-04 | 2008-11-06 | Gesturetek, Inc. | Camera-based user input for compact devices |
JP2009042796A (en) * | 2005-11-25 | 2009-02-26 | Panasonic Corp | Gesture input device and method |
JP2009259117A (en) * | 2008-04-18 | 2009-11-05 | Panasonic Electric Works Co Ltd | Mirror system |
JP2010176565A (en) * | 2009-01-30 | 2010-08-12 | Denso Corp | Operation device |
US20130063336A1 (en) * | 2011-09-08 | 2013-03-14 | Honda Motor Co., Ltd. | Vehicle user interface system |
WO2014080829A1 (en) * | 2012-11-22 | 2014-05-30 | シャープ株式会社 | Data input device |
US20140204120A1 (en) * | 2013-01-23 | 2014-07-24 | Fujitsu Limited | Image processing device and image processing method |
-
2015
- 2015-07-24 JP JP2015147083A patent/JP6643825B2/en not_active Expired - Fee Related
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0991079A (en) * | 1995-09-28 | 1997-04-04 | Toshiba Corp | Information input device and image processing method |
JP2009042796A (en) * | 2005-11-25 | 2009-02-26 | Panasonic Corp | Gesture input device and method |
US20080273755A1 (en) * | 2007-05-04 | 2008-11-06 | Gesturetek, Inc. | Camera-based user input for compact devices |
JP2010526391A (en) * | 2007-05-04 | 2010-07-29 | ジェスチャー テック,インコーポレイテッド | Camera-based user input for compact devices |
JP2009259117A (en) * | 2008-04-18 | 2009-11-05 | Panasonic Electric Works Co Ltd | Mirror system |
JP2010176565A (en) * | 2009-01-30 | 2010-08-12 | Denso Corp | Operation device |
US20130063336A1 (en) * | 2011-09-08 | 2013-03-14 | Honda Motor Co., Ltd. | Vehicle user interface system |
WO2014080829A1 (en) * | 2012-11-22 | 2014-05-30 | シャープ株式会社 | Data input device |
US20140204120A1 (en) * | 2013-01-23 | 2014-07-24 | Fujitsu Limited | Image processing device and image processing method |
JP2014143548A (en) * | 2013-01-23 | 2014-08-07 | Fujitsu Ltd | Image processing apparatus, image processing method, and image processing program |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017170027A1 (en) * | 2016-03-30 | 2017-10-05 | セイコーエプソン株式会社 | Image recognition apparatus, image recognition method, and image recognition unit |
JP2018055257A (en) * | 2016-09-27 | 2018-04-05 | キヤノン株式会社 | Information processing device, control method thereof, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6643825B2 (en) | 2020-02-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10310675B2 (en) | User interface apparatus and control method | |
US9600078B2 (en) | Method and system enabling natural user interface gestures with an electronic system | |
TWI531929B (en) | Identifying a target touch region of a touch-sensitive surface based on an image | |
TWI559174B (en) | Gesture based manipulation of three-dimensional images | |
JP6723814B2 (en) | Information processing apparatus, control method thereof, program, and storage medium | |
US10664090B2 (en) | Touch region projection onto touch-sensitive surface | |
US10254893B2 (en) | Operating apparatus, control method therefor, and storage medium storing program | |
JP2016162162A (en) | Contact detection device, projector device, electronic blackboard device, digital signage device, projector system, and contact detection method | |
JP6381361B2 (en) | DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, DATA PROCESSING DEVICE CONTROL METHOD, AND PROGRAM | |
JP2016103137A (en) | User interface system, image processor and control program | |
JP6746419B2 (en) | Information processing apparatus, control method thereof, and computer program | |
JP2017219942A (en) | Contact detection device, projector device, electronic blackboard system, digital signage device, projector device, contact detection method, program and recording medium | |
JP2018112894A (en) | System and control method | |
JP6643825B2 (en) | Apparatus and method | |
JP2017162126A (en) | Input system, input method, control program and storage medium | |
JP6618301B2 (en) | Information processing apparatus, control method therefor, program, and storage medium | |
JP6632298B2 (en) | Information processing apparatus, information processing method and program | |
JP2018063555A (en) | Information processing device, information processing method, and program | |
JP2017117372A (en) | Operation device and control method of the same, and program | |
JP2018173907A (en) | Information processing apparatus, method for controlling information processing apparatus, and program | |
JP2019101753A (en) | Object shape measurement device and method for controlling the same, and program | |
JP2018181169A (en) | Information processor, and information processor control method, computer program, and storage medium | |
JP2017167810A (en) | Input support device, input support method, control program and storage medium | |
JP2017060007A (en) | Image processing apparatus, control method, and program | |
JP2018116360A (en) | Hand input device and control method of hand input device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180724 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180724 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190318 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190322 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190521 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190802 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191101 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20191111 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20191209 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200107 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 6643825 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |