JP5765133B2 - Input device, input control method, and input control program - Google Patents
Input device, input control method, and input control program Download PDFInfo
- Publication number
- JP5765133B2 JP5765133B2 JP2011178093A JP2011178093A JP5765133B2 JP 5765133 B2 JP5765133 B2 JP 5765133B2 JP 2011178093 A JP2011178093 A JP 2011178093A JP 2011178093 A JP2011178093 A JP 2011178093A JP 5765133 B2 JP5765133 B2 JP 5765133B2
- Authority
- JP
- Japan
- Prior art keywords
- virtual
- input
- key
- virtual object
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Input From Keyboards Or The Like (AREA)
- Processing Or Creating Images (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
Description
本発明は、画像に重畳表示された仮想物体を用いて入力を行う入力装置、入力制御方法及び入力制御プログラムに関する。 The present invention relates to an input device that performs input using a virtual object superimposed on an image, an input control method, and an input control program.
コンピュータにおける文字入力装置としては、主にキーボードが利用される。ほとんどのコンピュータでは、キーボードは入力装置として標準装備されている。キーボードは、多くのユーザにとって使い慣れた装置である。 A keyboard is mainly used as a character input device in a computer. On most computers, the keyboard is standard equipment as an input device. The keyboard is a familiar device for many users.
そのため、従来から、タブレット端末などを代表とするキーボードが装備されていないコンピュータを使用する場合などでも、仮想キーボードを用いてキーボードを模倣する入力方法が提案されている。例えば、次の以下のような技術が提案されている。 Therefore, conventionally, an input method for imitating a keyboard using a virtual keyboard has been proposed even when using a computer that is not equipped with a keyboard such as a tablet terminal. For example, the following techniques have been proposed.
仮想キーボードシステムは、ディスプレイ画面にキーボード画像を表示し、指先センサにより取得された指の位置をキーボード画像と重ねることによって、現在入力可能なキーの位置を示す。キー入力検出手段は、実際の入力が行われたのかを判断する。 The virtual keyboard system displays a keyboard image on a display screen, and indicates a position of a key that can be currently input by superimposing a finger position acquired by a fingertip sensor on the keyboard image. The key input detection means determines whether an actual input has been performed.
また、他の仮想キーボードシステムは、ディスプレイ上にキーボード画像を表示し、指先・動き検出部の結果を利用して、手の形を画面上のキーボードの上に表示することで、現在入力可能なキーの位置を示す。 Also, other virtual keyboard systems can display the keyboard image on the display and display the shape of the hand on the keyboard on the screen using the result of the fingertip / motion detection unit. Indicates the key position.
また、キー入力処理装置は、光学シースルー型のHMD(Head Mounted Display)を利用した環境での仮想キーボードである。キー入力処理装置は、HMDに投影されたキーボード画像のキーと、HMD越しに見える自分の手の指先の位置とが重なっているかを判断して、現在入力可能なキーの位置を示す。 The key input processing device is a virtual keyboard in an environment using an optical see-through HMD (Head Mounted Display). The key input processing device determines whether or not the key of the keyboard image projected on the HMD overlaps the position of the fingertip of his / her hand seen through the HMD, and indicates the position of the key that can be currently input.
また、ヘッドマウントディスプレイ装置は、HMDを利用する仮想キーボードであり、キーボード画像をHMDから机などの面に投影する。キーボード像と自分の指先はHMDの「覗き部」から直接自分の目で見ることができる。HMDにはカメラが付いており、これにより取得された画像を解析することによって、どのキーの上に自分の指先が位置しているかを判断する。 The head-mounted display device is a virtual keyboard that uses an HMD, and projects a keyboard image from the HMD onto a surface such as a desk. The keyboard image and your fingertips can be seen with your own eyes directly from the “view section” of the HMD. The HMD is equipped with a camera, and by analyzing an image acquired thereby, it is determined which key is located on which key.
従来の仮想キーボードでは、例えば、視点がキーボードの真上にあると仮定したときの指先の位置を示して入力可能なキーを示す。他の従来の仮想キーボードでは、視点と指先の位置を結ぶ視線上にあるキーボード面との交点にあるキーを入力可能なキーと判断する。視点は、例えばカメラによる撮影点である。 In a conventional virtual keyboard, for example, a key that can be input is shown by indicating the position of the fingertip when it is assumed that the viewpoint is directly above the keyboard. In another conventional virtual keyboard, the key at the intersection of the keyboard surface on the line of sight connecting the viewpoint and the position of the fingertip is determined as a key that can be input. The viewpoint is, for example, a shooting point by a camera.
一方で、HMDには、直接あるいはハーフミラー越しに実際の風景を確認できる「光学シースルー型」と、視線に近い位置から撮影したカメラからの映像を表示したディスプレイを見る「ビデオシースルー型」と呼ばれるタイプがある。拡張現実環境を提供するために、実空間の物体上の適切な位置に仮想物体を重畳表示する。拡張現実環境とは、現実環境にコンピュータを用いて情報を付加提示する技術、および情報を付加提示された環境そのものを示す。 On the other hand, HMD is called “optical see-through type” that allows you to check actual scenery directly or through a half mirror, and “video see-through type” that shows a display that displays images from a camera taken from a position close to the line of sight. There are types. In order to provide an augmented reality environment, a virtual object is superimposed and displayed at an appropriate position on an object in real space. The augmented reality environment refers to a technology for additionally presenting information to the real environment using a computer, and an environment in which information is additionally presented.
「光学シースルー型」のHMDの場合、適切な重畳表示のために仮想物体の表示位置を合わせるのは、特許文献1に記載の視線解析などが必要となるため、技術的に困難な課題が多い。そのため、開示の技術では、「ビデオシースルー型」のHMDの利用を想定する。 In the case of an “optical see-through type” HMD, it is necessary to adjust the display position of a virtual object for appropriate superimposed display because the line-of-sight analysis described in Patent Document 1 is necessary, and thus there are many technically difficult problems. . For this reason, the disclosed technique assumes the use of a “video see-through” HMD.
「ビデオシースルー型」のHMDにも、いくつかの問題点がある。この問題点は、「バーチャルリアリティ学」(ISBN:978-4769351382)などに記載されている。例えば、ユーザは、カメラ越しの画像を見ることになるために、裸眼のときと比較して、視野角、解像度、遮蔽矛盾、システム遅延、焦点深度などの問題があり、違和感を覚えることが多い。 The “video see-through type” HMD also has some problems. This problem is described in “virtual reality studies” (ISBN: 978-4769351382). For example, since the user sees the image through the camera, there are problems such as viewing angle, resolution, occlusion contradiction, system delay, depth of focus, etc., compared with the naked eye, and the user often feels uncomfortable. .
例えば、ビデオシースルー型の視野角の問題に対し、HMD装置の表示領域から主表示装置の表示領域を取り除く技術がある(特開2006-267604号公報)。 For example, there is a technique for removing the display area of the main display device from the display area of the HMD device with respect to the video see-through viewing angle problem (Japanese Patent Laid-Open No. 2006-267604).
ここで、拡張現実環境において、仮想物体として選択オブジェクト(例えば、仮想キーボード、選択ボタンなど)をカメラ越しの画像に重畳表示し、この仮想物体をユーザの指などで押下する場合を考える。この場合、視野角に関する見え方の違和感と焦点深度に関する奥行きの知覚の問題により、仮想物体をうまく押下することができない。 Here, in the augmented reality environment, a case is considered in which a selection object (for example, a virtual keyboard, a selection button, etc.) is displayed as a virtual object superimposed on an image through a camera, and the virtual object is pressed with a user's finger or the like. In this case, the virtual object cannot be pressed down well due to the problem of the discomfort of the appearance regarding the viewing angle and the perception of the depth regarding the depth of focus.
そこで、開示の技術は、上記問題に鑑みてなされたものであり、画像に重畳表示された仮想物体に対し、ユーザの意図する仮想物体を適切に押下させることができる入力装置、入力制御方法及び入力制御プログラムを提供することを目的とする。 Therefore, the disclosed technology has been made in view of the above problems, and an input device, an input control method, and an input device that can appropriately press a virtual object intended by a user against a virtual object superimposed and displayed on an image. An object is to provide an input control program.
開示の一態様における入力装置は、画像を取得する実物体検出部と、前記画像に重畳する仮想物体の表示位置を決定する位置決定部と、ユーザの視点位置を検出する視点検出部と、決定された表示位置で前記仮想物体を前記画像に重畳表示する重畳処理部と、検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する押下判定部と、を備え、前記実物体検出部は、取得した画像に含まれる実物体を検出し、前記押下判定部は、前記実物体と重畳表示された前記仮想物体との距離を算出し、前記距離が所定値以下である場合に、前記押下判定に用いる位置の変更処理を行う。 An input device according to an aspect of the disclosure includes a real object detection unit that acquires an image, a position determination unit that determines a display position of a virtual object to be superimposed on the image, a viewpoint detection unit that detects a viewpoint position of a user, and a determination A position used for determination of pressing of the virtual object based on the superposition processing unit that superimposes and displays the virtual object on the image at the displayed position and the detected position of the viewpoint and the position of the virtual object superimposed and displayed. A pressing determination unit that changes , the real object detection unit detects a real object included in the acquired image, and the pressing determination unit calculates a distance between the real object and the virtual object displayed in a superimposed manner. If the distance is less than or equal to a predetermined value, the position used for the determination of pressing is changed .
開示の技術によれば、画像に重畳表示された仮想物体に対し、ユーザの意図する仮想物体を適切に押下させることができる。 According to the disclosed technology, a virtual object intended by a user can be appropriately pressed against a virtual object superimposed and displayed on an image.
以下に説明する実施例では、仮想物体としての仮想キーボードを3次元空間中に表示して、ユーザ自身の指先で操作することを想定する。仮想キーボードは立体的な形状を持っているので、キーの上部側から正しく押すことで入力として認識される。 In the embodiment described below, it is assumed that a virtual keyboard as a virtual object is displayed in a three-dimensional space and operated by the user's own fingertip. Since the virtual keyboard has a three-dimensional shape, it is recognized as an input by pressing it correctly from the top of the key.
ユーザの視点は移動するので、ビデオシースルー型のHMD越しにキーを見た時に、キーまでの距離感が正しく認識されないことが問題となる。カメラの撮像範囲と目の視野との違いや焦点深度の問題、また、画面に表示されるまでの時間的な遅れなどが生じることなどから、実際の物体(実物体ともいう)との距離感を把握することが困難な場合がある。 Since the viewpoint of the user moves, there is a problem that when the key is viewed through the video see-through HMD, the sense of distance to the key is not correctly recognized. A sense of distance from the actual object (also referred to as an actual object) due to the difference between the camera's imaging range and the visual field of the eye, the depth of focus problem, and the time delay until it is displayed on the screen. It may be difficult to figure out.
このため、視覚から得られる情報と自身の感覚とのズレから、うまく仮想キーボードを操作できない。具体的には、入力したいキーを操作できない、あるいは目的のキーの周辺にある別のキーを操作してしまう、という問題が発生する。 For this reason, the virtual keyboard cannot be operated well due to the difference between the information obtained from the visual sense and the own sense. Specifically, there arises a problem that a key to be input cannot be operated or another key around the target key is operated.
この問題に対し、発明者らは次の実験を行った。この実験は、12名の被験者に対して、仮想キーボードを使用し、指示したキーの入力を行ってもらう実験である。また、この実験では、視点やキーの向きを変えて入力を行い、誤入力の発生率と、誤入力されたキーと、指示したキーとのズレ方向について調査する。この実験は、被験者の指先にマーカを付けてもらい、カメラ越しの画像(映像)をディスプレイ画面で見ながら、被験者はキーを押す。 In response to this problem, the inventors conducted the following experiment. This experiment is an experiment in which 12 subjects use a virtual keyboard to input an instructed key. In this experiment, input is performed while changing the viewpoint and the direction of the keys, and the occurrence rate of erroneous input and the direction of misalignment between the erroneously input key and the designated key are investigated. In this experiment, a marker is attached to the fingertip of the subject, and the subject presses a key while viewing the image (video) through the camera on the display screen.
実験は、キーの真上からの視点で入力を行う場合と、キーの斜めからの視点で入力を行う場合とで行われた。 The experiment was performed when the input was performed from the viewpoint from right above the key and when the input was performed from the viewpoint from the diagonal of the key.
(真上からの視点)
図1は、仮想テンキーを真上方向から入力する場合を示す図である。図1に示す例では、「5」のテンキー11を、マーカ12を付した指で押下する場合を示す。
(View from directly above)
FIG. 1 is a diagram illustrating a case where a virtual numeric keypad is input from directly above. In the example shown in FIG. 1, a case where the numeric keypad 11 of “5” is pressed with a finger with a marker 12 is shown.
図2は、仮想キーボードを真上方向から入力する場合を示す図である。図2に示す例では、「G」のキー21を、マーカ12を付した指で押下する場合を示す。仮想キーボードは、例えばQWERTYキーボードである。 FIG. 2 is a diagram illustrating a case where the virtual keyboard is input from directly above. In the example illustrated in FIG. 2, a case where the “G” key 21 is pressed with a finger with the marker 12 is illustrated. The virtual keyboard is, for example, a QWERTY keyboard.
(斜めからの視点)
図3は、仮想テンキーを斜め方向から入力する場合を示す図である。図3に示す例では、「6」のテンキー13を、マーカ12を付した指で押下する場合を示す。
(An oblique perspective)
FIG. 3 is a diagram illustrating a case where the virtual numeric keypad is input from an oblique direction. In the example shown in FIG. 3, a case where the “6” numeric keypad 13 is pressed with a finger with a marker 12 is shown.
図4は、仮想キーボードを斜め方向から入力する場合(その1)を示す図である。図4に示す例では、「C」のキー22を、マーカ12を付した指で押下する場合を示す。 FIG. 4 is a diagram illustrating a case where the virtual keyboard is input from an oblique direction (part 1). In the example illustrated in FIG. 4, a case where the “C” key 22 is pressed with a finger with the marker 12 is illustrated.
図5は、仮想キーボードを斜め方向から入力する場合(その2)を示す図である。図5に示す例は、図4に示す例とは仮想キーボードの角度が異なる。図5に示す例では、「X」のキー23を、マーカ12を付した指で押下する場合を示す。 FIG. 5 is a diagram illustrating a case where the virtual keyboard is input from an oblique direction (part 2). The example shown in FIG. 5 differs from the example shown in FIG. 4 in the angle of the virtual keyboard. In the example shown in FIG. 5, a case where the “X” key 23 is pressed with the finger with the marker 12 is shown.
図6は、仮想キーボードを斜め方向から入力する場合(その2)を示す図である。図6に示す例は、図4及び図5に示す例とは仮想キーボードの角度が異なる。図6に示す例では、「F」のキー24を、マーカ12を付した指で押下する場合を示す。図1〜6は、ユーザが仮想キーを押すとき、仮想キーが手に重畳して表示される例である。また、図4〜6に示すように、斜め方向からの入力については、被験者に複数の角度からの入力を行ってもらった。 FIG. 6 is a diagram illustrating a case where the virtual keyboard is input from an oblique direction (part 2). The example shown in FIG. 6 differs from the example shown in FIGS. 4 and 5 in the angle of the virtual keyboard. In the example shown in FIG. 6, a case where the “F” key 24 is pressed with the finger with the marker 12 is shown. 1 to 6 are examples in which the virtual key is displayed superimposed on the hand when the user presses the virtual key. Moreover, as shown in FIGS. 4-6, about the input from the diagonal direction, the test subject had input from several angles.
(実験結果)
真上からの視点での入力に対する実験結果は次の通りである。
入力正解率:90.6% 誤入力率:9.4%
斜めからの視点での入力に対する実験結果は次の通りである。
入力正解率:63.5% 誤入力率:36.5%
以上の実験結果から、真上からの視点では、キーを平面的に見ることができるため、指先位置と、描画されたキーとの位置関係を適切に把握できていることが分かる。
(Experimental result)
The experimental results for the input from the viewpoint from directly above are as follows.
Correct input rate: 90.6% Incorrect input rate: 9.4%
The experimental results for input from an oblique perspective are as follows.
Correct input rate: 63.5% Incorrect input rate: 36.5%
From the above experimental results, it can be seen that since the key can be seen in a plane from the viewpoint from directly above, the positional relationship between the fingertip position and the drawn key can be appropriately grasped.
一方、斜めからの視点では、3次元での指先位置と、描画されたキーとの位置関係を適切に把握できないため誤入力が多い。また、視点の違いやキーの表示方向にかかわらず、正解キーの視点側手前を間違えて押下することが多いことが分かった。 On the other hand, from an oblique viewpoint, there are many erroneous inputs because the positional relationship between the fingertip position in three dimensions and the drawn key cannot be properly grasped. It was also found that the correct key is often pressed by mistake, regardless of the viewpoint or the key display direction.
図7は、正解位置に対する誤入力時の位置分布を示す図である。図7に示すように、誤入力時には、正解位置に対して、視線方向の手前を押下してしまう傾向がある。 FIG. 7 is a diagram illustrating a position distribution at the time of erroneous input with respect to the correct position. As shown in FIG. 7, when there is an erroneous input, there is a tendency to press the near side in the line-of-sight direction with respect to the correct position.
図8は、仮想キーボードに対する誤入力を説明するための図である。図8に示すように、斜め方向からの視点で、目的のキー71を押下する場合、視線方向の手前を誤入力する場合が多い。これを平面的に表現すると、目的のキー71を押下するはずが、キー72を押下してしまうことになる。 FIG. 8 is a diagram for explaining erroneous input to the virtual keyboard. As shown in FIG. 8, when the target key 71 is pressed from a perspective from an oblique direction, there are many cases where an input in front of the line of sight is erroneously input. If this is expressed in a plane, the target key 71 should be pressed, but the key 72 will be pressed.
実際には、ユーザは仮想キーに対して斜め方向から見ることがほとんどである。これを考慮すると、カメラ越しの画像に仮想キーを重畳する場合には、斜め方向からの仮想キーを重畳することで、ユーザの操作感を向上させる。しかしながら、上述した実験のように、斜め方向からの仮想キーを画像に重畳すると、誤入力が発生する。 In practice, the user sees the virtual key from an oblique direction. Considering this, when the virtual key is superimposed on the image over the camera, the user's operational feeling is improved by superimposing the virtual key from the oblique direction. However, if a virtual key from an oblique direction is superimposed on an image as in the experiment described above, an erroneous input occurs.
以下、上記実験などに基づき、誤入力を防ぐ各実施例について、添付図面を参照しながら説明する。 Hereinafter, each embodiment for preventing erroneous input will be described with reference to the accompanying drawings based on the above-described experiment.
[実施例1]
<システム>
図9は、実施例1におけるシステムの一例を示す図である。図9に示す例では、ユーザはカメラ付きのHMD(Head Mounted Display)を装着し、HMDに重畳表示された仮想キーボードを用いて文字入力を行う。ユーザは、仮想キーを押下すると、その仮想キーに対する文字が入力され、HMDはコンピュータと無線通信することで、コンピュータのアプリケーションに文字を送信する。
[Example 1]
<System>
FIG. 9 is a diagram illustrating an example of a system according to the first embodiment. In the example shown in FIG. 9, the user wears an HMD (Head Mounted Display) with a camera and inputs characters using a virtual keyboard superimposed on the HMD. When the user presses the virtual key, a character corresponding to the virtual key is input, and the HMD wirelessly communicates with the computer to transmit the character to the computer application.
アプリケーションは、受信した文字を入力し、アプリケーションの表示画面情報をHMDに送信する。HMDは、受信したアプリケーションの表示画面情報を例えばHMDに表示する。 The application inputs the received character and transmits the display screen information of the application to the HMD. The HMD displays the display screen information of the received application on the HMD, for example.
図9に示すシステムにおいて、仮想キーボードが重畳された画像をHMDに表示するのではなく、ディスプレイやプロジェクタなどに表示してもよい。また、文字入力の判定処理などは、HMDで行うのではなく、コンピュータやスマートフォンなどの他機で行われてもよい。また、HMD近辺のカメラで撮影した画像を、ユーザからの視点にするため視点変換を行って、視点変換後の画像に仮想キーボードを重畳してHMDに表示してもよい。 In the system shown in FIG. 9, an image on which a virtual keyboard is superimposed may be displayed on a display or a projector instead of being displayed on the HMD. In addition, the character input determination process or the like may be performed not by the HMD but by another machine such as a computer or a smartphone. Further, viewpoint conversion may be performed on an image captured by a camera in the vicinity of the HMD to make the viewpoint from the user, and a virtual keyboard may be superimposed on the image after viewpoint conversion and displayed on the HMD.
開示のシステムは、拡張現実環境において、選択オブジェクト、例えば仮想的なキーボードを3次元空間中に表示し、あたかもそこに本物のキーボードが実在するかのようにユーザ自身の指で直感的に操作する。 The disclosed system displays a selected object, for example, a virtual keyboard in a three-dimensional space in an augmented reality environment, and is intuitively operated with a user's own finger as if a real keyboard existed there. .
<構成>
図10は、実施例1におけるシステムの構成の一例を示すブロック図である。図10に示す例では、システムは、入力装置101、画像入力装置110、視点・視線検出装置111、表示装置112、アプリケーション113を有する。各装置は、複数の装置が組み合わされて1つの装置を構成してもよい。
<Configuration>
FIG. 10 is a block diagram illustrating an example of a system configuration according to the first embodiment. In the example illustrated in FIG. 10, the system includes an input device 101, an image input device 110, a viewpoint / line-of-sight detection device 111, a display device 112, and an application 113. Each device may be configured by combining a plurality of devices.
画像入力装置110は、例えばカメラであり、ユーザの視点に近い位置に設置され、視線と同じ方向の画像を撮影し、取得する。取得された画像は、入力装置101に出力される。なお、画像入力装置110は、必ずしもユーザの視点に近い位置に設置される必要はなく、ユーザの視点とは別の位置にある場合は、画像に対して視点変換を行えばよい。 The image input device 110 is, for example, a camera, is installed at a position close to the user's viewpoint, and captures and acquires an image in the same direction as the line of sight. The acquired image is output to the input device 101. Note that the image input device 110 does not necessarily have to be installed at a position close to the user's viewpoint. If the image input apparatus 110 is at a position different from the user's viewpoint, viewpoint conversion may be performed on the image.
視点・視線検出装置111は、撮像部などを含み、ユーザの視点の位置と、見ている方向(視線方向)を検出する。視点・視線検出装置111は、視線を検出する方法として、角膜及び強膜の境界を検出する方法(強膜トラッカー法)、角膜表面での反射光を検出する方法(角膜反射法)、眼球の電位差を測定する方法(EOG法)、サーチコイルを内蔵したコンタクトレンズを装着する方法(サーチコイル法)などがある。詳しくは、「"視線インタフェースから視線コミュニケーションへ",大野健彦,情報処理学会研究報告、HI,ヒューマンインタフェース研究会報告,P.171-178,2001」や"マンマシンシステム工学 視覚系指標の計測と分析(1)〜眼球運動〜"(http://hydro.energy.kyoto-u.ac.jp/Lab/staff/shimoda/lecture2005/mms/ocular1.pdf)を参照されたい。 The viewpoint / line-of-sight detection device 111 includes an imaging unit and the like, and detects the position of the user's viewpoint and the viewing direction (line-of-sight direction). The viewpoint / line-of-sight detection device 111 detects the line of sight by detecting the boundary between the cornea and the sclera (sclera tracker method), detecting the reflected light on the cornea surface (corneal reflection method), There are a method of measuring a potential difference (EOG method), a method of wearing a contact lens with a built-in search coil (search coil method), and the like. For details, see "From eye-gaze interface to eye-gaze communication", Takehiko Ohno, Information Processing Society of Japan Research Report, HI, Human Interface Research Group Report, P.171-178, 2001, and "Man-Machine System Engineering. Analysis (1)-Eye movement-"(http://hydro.energy.kyoto-u.ac.jp/Lab/staff/shimoda/lecture2005/mms/ocular1.pdf).
また、瞳孔中心法と、瞳孔―角膜反射法を組み合わせて視線を検出する技術がある(特開2001−61785号公報を参照されたい)。また、近年は、Webカメラ映像を用いて視線を検出する技術があり、可視光、近赤外光などを利用し、眼球におけるその反射像を利用して視線を特定する。具体的には、瞳孔と虹彩の位置から視線方向を推定する。 In addition, there is a technique for detecting the line of sight by combining the pupil center method and the pupil-corneal reflection method (see Japanese Patent Laid-Open No. 2001-61785). In recent years, there is a technique for detecting a line of sight using a web camera image, and the line of sight is specified using a reflected image of an eyeball using visible light, near infrared light, or the like. Specifically, the gaze direction is estimated from the positions of the pupil and the iris.
また、離れた位置から視線を検出できる技術(株式会社ライフテックサポートの視線入力意思伝達装置)や、移動中でも視線を検出できる技術(竹井機器工業株式会社のTalkEyeII)がある。 In addition, there is a technology that can detect a line of sight from a distant position (Life Tech Support's line of sight input intention transmission device) and a technology that can detect a line of sight while moving (TalkEye II of Takei Kikai Kogyo Co., Ltd.).
視点・視線検出装置111は、画像入力装置110をユーザの視点に近い位置に設置した場合、視点の位置について、画像入力装置110(例えばカメラ)の位置に等しいとみなす。また、視点・視線検出装置111は、頭部の位置が分かるようなセンサを利用する場合、頭の位置から眼球の位置を推定することができる。例えば、株式会社美貴本の「Track IR」などのヘッドトラッキングシステムなどがある。 When the image input device 110 is installed at a position close to the user's viewpoint, the viewpoint / line-of-sight detection device 111 regards the position of the viewpoint as being equal to the position of the image input device 110 (for example, a camera). Further, the viewpoint / line-of-sight detection device 111 can estimate the position of the eyeball from the position of the head when using a sensor that can know the position of the head. For example, there is a head tracking system such as “Track IR” of Mikimoto Co., Ltd.
視点・視線検出装置111は、公知のいずれかの方法を用いて、ユーザの視点、視線を検出し、入力装置101に出力する。 The viewpoint / line-of-sight detection apparatus 111 detects the user's viewpoint and line of sight using any known method, and outputs the detected viewpoint to the input apparatus 101.
表示装置112は、画像入力装置110が撮影した画像、又はその画像に対して入力装置101により仮想物体が重畳された画像を表示する。以下、表示装置112は、HMDを例にして説明するが、通常のディスプレイやプロジェクタであってもよい。通常のディスプレイとは、コンピュータのモニタやテレビなどのディスプレイをいう。 The display device 112 displays an image captured by the image input device 110 or an image in which a virtual object is superimposed on the image by the input device 101. Hereinafter, the display device 112 will be described using an HMD as an example, but it may be a normal display or projector. A normal display means a display such as a computer monitor or a television.
アプリケーション113は、コンピュータにより実行されるアプリケーションであり、例えばWindows(登録商標)のWordやExcelなどのアプリケーションである。アプリケーション113は、入力装置101から入力コマンド(例えば文字や数字)などを受け取る。また、アプリケーション113は、取得した文字や数字を表示した画面の画面情報を入力装置101に出力してもよい。 The application 113 is an application executed by a computer, for example, an application such as Word (registered trademark) Word or Excel. The application 113 receives an input command (for example, characters or numbers) from the input device 101. Further, the application 113 may output screen information of a screen displaying the acquired characters and numbers to the input device 101.
入力装置101は、例えば拡張現実環境を提供する装置である。入力装置101は、制御部102、主記憶部103、補助記憶部104、通信部105を有する。各部は、バスを介して相互にデータ送受信可能に接続されている。 The input device 101 is a device that provides an augmented reality environment, for example. The input device 101 includes a control unit 102, a main storage unit 103, an auxiliary storage unit 104, and a communication unit 105. Each unit is connected via a bus so that data can be transmitted / received to / from each other.
制御部102は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部102は、主記憶部103や補助記憶部104に記憶されたプログラムを実行する演算装置であり、入力部や記憶部からデータを受け取り、演算、加工した上で、出力部や記憶部に出力する。 The control unit 102 is a CPU (Central Processing Unit) that performs control of each device, calculation of data, and processing in a computer. The control unit 102 is an arithmetic device that executes a program stored in the main storage unit 103 or the auxiliary storage unit 104. The control unit 102 receives data from the input unit or the storage unit, calculates, processes the output unit, the storage unit, and the like. To the output.
主記憶部103は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部102が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。 The main storage unit 103 is a ROM (Read Only Memory), a RAM (Random Access Memory), or the like, and a storage device that stores or temporarily stores programs and data such as an OS and application software that are basic software executed by the control unit 102 It is.
補助記憶部104は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。 The auxiliary storage unit 104 is an HDD (Hard Disk Drive) or the like, and is a storage device that stores data related to application software or the like.
通信部105は、アプリケーション113に対し、有線又は無線で通信を行う。例えば、入力コマンドや画面情報などが通信される。 The communication unit 105 communicates with the application 113 in a wired or wireless manner. For example, input commands and screen information are communicated.
<機能>
図11は、入力装置101の機能の一例を示すブロック図である。図11に示す例では、入力装置101は、実物体検出部201、仮想物体位置決定部202、視点検出部203、重畳処理部204、押下判定部205、入力コマンド生成部206を有する。なお、入力装置101の各部は、例えば制御部102及びワークメモリとして主記憶部103により実現されうる。また、入力コマンド生成部206は、入力コマンドを送信するときは、例えば通信部105により実現されうる。
<Function>
FIG. 11 is a block diagram illustrating an example of functions of the input device 101. In the example illustrated in FIG. 11, the input device 101 includes a real object detection unit 201, a virtual object position determination unit 202, a viewpoint detection unit 203, a superimposition processing unit 204, a press determination unit 205, and an input command generation unit 206. Each unit of the input device 101 can be realized by the main storage unit 103 as a control unit 102 and a work memory, for example. The input command generation unit 206 can be realized by the communication unit 105, for example, when transmitting an input command.
実物体検出部201は、画像入力装置110から取得した画像を解析し、物体の位置や距離を把握する。物体は、例えば手や指や机などである。この物体を仮想物体と比較して実物体と呼ぶ。また、実物体検出部201は、仮想物体が重畳されている場合は、その仮想物体の領域付近の実物体の面、距離などを検出する。 The real object detection unit 201 analyzes the image acquired from the image input device 110 and grasps the position and distance of the object. The object is, for example, a hand, a finger, or a desk. This object is called a real object in comparison with a virtual object. In addition, when a virtual object is superimposed, the real object detection unit 201 detects the surface, distance, and the like of the real object in the vicinity of the virtual object region.
実物体検出部201は、例えば手や指などの実物体を検出する際には、肌色検出やエッジ抽出などを行い、指を検出することができる。また、指にマーカなどを付して検出することもできる。 For example, when detecting a real object such as a hand or a finger, the real object detection unit 201 can detect a finger by performing skin color detection or edge extraction. Moreover, it can also detect by attaching a marker etc. to a finger.
実物体検出部201は、例えば、仮想キーボードを表示したい面と、指に付されたマーカとを用いて、画像(カメラ画像)からマーカと画像入力装置110との相対位置を算出する。 The real object detection unit 201 calculates the relative position between the marker and the image input device 110 from the image (camera image) using, for example, the surface on which the virtual keyboard is to be displayed and the marker attached to the finger.
マーカを利用した位置のカメラ位置の推定については「拡張現実感システム構築ツールARToolkitの開発」(加藤博一著,電子情報通信学会技術研究報告,PRMU,パターン認識、メディア理解 101(652),79-86,2002-02)や、"3Dキャラクターが現実世界に誕生!ARToolkit拡張現実空間プログラミング入門"(ISBN 978-4048673617)を参照されたい。 For estimation of camera position using markers, see “Development of augmented reality system construction tool ARTToolkit” (by Hirokazu Kato, IEICE technical report, PRMU, pattern recognition, media understanding 101 (652), 79 -86, 2002-02) and "3D characters are born in the real world! Introduction to ARToolkit Augmented Reality Space Programming" (ISBN 978-4048673617).
簡潔に説明すると、実物体検出部201は、マーカのサイズが既知であるとし、画像入力装置110の撮像パラメータと、撮像中のマーカの形状から、マーカの存在する面やマーカの位置・姿勢を推定する。 Briefly, the real object detection unit 201 assumes that the size of the marker is known, and determines the surface on which the marker exists and the position / posture of the marker from the imaging parameters of the image input device 110 and the shape of the marker being imaged. presume.
マーカ座標系のn個の特徴点の座標値を(Xi,Yi,Zi)(i=0,1,・・・,n−1)とし、マーカ座標系からカメラ座標系への変換行列をTcm、カメラの透視変換行列をCとする。このとき、画像上の座標(xi,yi)(i=0,1,・・・,n−1)は、式(1)により求められる。 The coordinate values of n feature points in the marker coordinate system are (X i , Y i , Z i ) (i = 0, 1,..., N−1), and conversion from the marker coordinate system to the camera coordinate system Let T cm be the matrix and C be the perspective transformation matrix of the camera. At this time, the coordinates (x i , y i ) (i = 0, 1,..., N−1) on the image are obtained by Expression (1).
R:回転要素
T:平行移動要素
実物体検出部201は、Cを既知とすると、n個の特徴点を用いることでTcmを求めることができる。実物体検出部201は、カメラ座標系の原点は視点位置であるため、マーカと視点の位置関係を把握することができる。
また、画像内に2つのマーカが含まれている場合を考える。実物体検出部201は、カメラ座標系の点をC、マーカ1の座標系の点をM1として、M1からCへの変換行列をT1とする。同様に、実物体検出部201は、マーカ2の座標系の点をM2としてM2からCへの変換行列をT2とする。 Consider a case where two markers are included in an image. Real object detecting unit 201, the point of the camera coordinate system C, the point of the coordinate system of the marker 1 as M 1, a transformation matrix from M 1 to C to T 1. Similarly, the real object detection unit 201 sets a point in the coordinate system of the marker 2 as M 2 and a conversion matrix from M 2 to C as T 2 .
このとき、カメラ座標系Cからマーカ1への座標系M1への変換行列は、T1の逆行列T1 −1となる。カメラ座標系を介することでマーカ1の座標系とマーカ2の座標系の相互変換を行うことができる。実物体検出部201は、マーカ1の座標系M1へのマーカ2の座標系M2上の点の変換を、式(2)を用いて行う。 In this case, the transformation matrix from the camera coordinate system C to the coordinate system M 1 to the marker 1 is opposite matrix T 1 -1 of T 1. Through the camera coordinate system, mutual conversion between the coordinate system of the marker 1 and the coordinate system of the marker 2 can be performed. The real object detection unit 201 converts the point on the coordinate system M 2 of the marker 2 to the coordinate system M 1 of the marker 1 using Expression (2).
なお、実物体検出部201は、上記例以外にも、仮想物体を表示したい面や指先にセンサを付けて、仮想物体と指との距離を求めたり、画像の奥行きを示す距離画像を用いて、指の位置を推定したりして指の位置を求めたりしてもよい。実物体検出部201は、検出した実物体の情報を、仮想物体位置決定部202、重畳処理部204、押下判定部205に出力する。 In addition to the above example, the real object detection unit 201 attaches a sensor to a surface on which a virtual object is to be displayed or a fingertip to obtain the distance between the virtual object and the finger, or uses a distance image indicating the depth of the image. The finger position may be obtained by estimating the finger position. The real object detection unit 201 outputs information on the detected real object to the virtual object position determination unit 202, the superimposition processing unit 204, and the press determination unit 205.
仮想物体位置決定部202は、画像入力装置110から取得した画像に対し、重畳表示する仮想物体の表示位置を決定する。仮想物体位置決定部202の詳細は、図12を用いて説明する。 The virtual object position determination unit 202 determines the display position of the virtual object to be superimposed and displayed on the image acquired from the image input device 110. Details of the virtual object position determination unit 202 will be described with reference to FIG.
図12は、仮想物体位置決定部202の機能の一例を示すブロック図である。図12に示す仮想物体位置決定部202は、形状決定部301、位置、姿勢決定部302を有する。 FIG. 12 is a block diagram illustrating an example of the function of the virtual object position determination unit 202. The virtual object position determination unit 202 illustrated in FIG. 12 includes a shape determination unit 301 and a position / posture determination unit 302.
形状決定部301は、重畳表示する仮想物体に関する情報を扱う。形状決定部301は、表示する仮想物体の立体形状データの作成や、既存の立体形状データの読込みなども行う。立体形状データは、例えば、仮想キーボードの形状を示すデータである。 The shape determining unit 301 handles information related to a virtual object to be superimposed and displayed. The shape determination unit 301 also creates 3D shape data of a virtual object to be displayed, reads existing 3D shape data, and the like. The three-dimensional shape data is data indicating the shape of the virtual keyboard, for example.
立体形状データには、押下判定領域(当たり判定領域)の定義を含む。押下判定領域は、仮想キーの押下判定に用いる領域であり、例えば、表示される仮想キーから所定値だけ上であり、仮想キーのサイズ分の領域を示す。押下判定領域を所定値上にする理由は、押下と判定されやすくするためである。立体形状データの各データは、個々の別ファイルとなっていてもよい。 The three-dimensional shape data includes a definition of a pressing determination area (a hit determination area). The pressing determination area is an area used for determining whether to press the virtual key. For example, the pressing determination area is a predetermined value above the displayed virtual key and indicates an area corresponding to the size of the virtual key. The reason why the pressing determination area is set to a predetermined value is to facilitate the determination of pressing. Each piece of solid shape data may be a separate file.
位置、姿勢決定部302は、実物体検出部201の検出結果に基づき、形状決定部301により決定された仮想物体を表示する位置や向きを決定する。位置、姿勢決定部302は、例えば、仮想物体の表示位置の認識、画像入力装置110の位置の推定、仮想物体の幾何学変換などが行われる。 The position / posture determination unit 302 determines the position and orientation for displaying the virtual object determined by the shape determination unit 301 based on the detection result of the real object detection unit 201. The position / posture determination unit 302 performs, for example, recognition of the display position of the virtual object, estimation of the position of the image input device 110, and geometric conversion of the virtual object.
位置、姿勢決定部302は、仮想物体の既知の形状の座標を、画像入力装置110から取得した画像の見え方に合わせて変換する。例えば、位置、姿勢決定部302は、例えば仮想物体を斜め方向から見た形状になるよう座標変換を行う。 The position / posture determination unit 302 converts the coordinates of the known shape of the virtual object in accordance with the appearance of the image acquired from the image input device 110. For example, the position / posture determination unit 302 performs coordinate conversion so that, for example, the virtual object has a shape viewed from an oblique direction.
具体的には、位置、姿勢決定部302は、仮想物を三次元空間中の所定の位置に移動させるため、回転、平行移動、拡大・縮小処理などの座標変換を行う。この座標変換は、いわゆるワールド座標系での座標の変換である。 Specifically, the position / posture determination unit 302 performs coordinate conversion such as rotation, parallel movement, and enlargement / reduction processing to move the virtual object to a predetermined position in the three-dimensional space. This coordinate transformation is a transformation of coordinates in a so-called world coordinate system.
ワールド座標系とは、主に3次元グラフィックスの分野で用いられる、空間全体を表す座標系である。ワールド座標系は、空間の中での物体の位置を示すための座標系で、物体の表示や移動を扱うために用いられる。また、ワールド座標系は、グローバル座標系とも呼ばれる。 The world coordinate system is a coordinate system representing the entire space, which is mainly used in the field of three-dimensional graphics. The world coordinate system is a coordinate system for indicating the position of an object in space, and is used for handling display and movement of the object. The world coordinate system is also called a global coordinate system.
位置、姿勢決定部302は、座標変換を行って決定された仮想物体の座標を重畳処理部204に出力する。 The position / posture determination unit 302 outputs the coordinates of the virtual object determined by performing the coordinate conversion to the superimposition processing unit 204.
図11に戻り、視点検出部203は、視点・視線検出装置111から取得したユーザの視点、視線データと、画像入力装置110から取得した画像に基づき、ワールド座標系におけるユーザの視点の位置と、画像中の注目位置(視線方向に対応する画像の位置)を検出する。視点検出部203は、検出した視点の位置と、視線方向とを重畳処理部204に出力する。 Returning to FIG. 11, the viewpoint detection unit 203, based on the user viewpoint and line-of-sight data acquired from the viewpoint / line-of-sight detection device 111, and the image acquired from the image input device 110, the position of the user viewpoint in the world coordinate system, An attention position in the image (the position of the image corresponding to the line-of-sight direction) is detected. The viewpoint detection unit 203 outputs the detected viewpoint position and line-of-sight direction to the superimposition processing unit 204.
重畳処理部204は、仮想物体位置決定部202により決定された表示位置で仮想物体を画像に重畳表示する。重畳処理部204は、仮想物体位置決定部202から取得した仮想物体の座標に対し、視点検出部203により検出されたユーザの視点位置や、画像入力装置110から取得した画像に合わせて透視変換(射影変換)を行う。前述した座標変換と、射影変換は、アフィン変換と呼ばれる。 The superimposition processing unit 204 superimposes and displays the virtual object on the image at the display position determined by the virtual object position determination unit 202. The superimposition processing unit 204 performs perspective transformation on the coordinates of the virtual object acquired from the virtual object position determination unit 202 in accordance with the viewpoint position of the user detected by the viewpoint detection unit 203 and the image acquired from the image input device 110 ( Projective transformation). The coordinate transformation and projective transformation described above are called affine transformation.
重畳処理部204は、透視変換を行った仮想物体の座標位置に、仮想物体を重畳表示する。このとき、重畳処理部204は、画像内の実物体との前後関係に矛盾が生じないように描画を行う。 The superimposition processing unit 204 superimposes and displays the virtual object at the coordinate position of the virtual object that has undergone perspective transformation. At this time, the superimposition processing unit 204 performs drawing so that no contradiction arises in the context of the actual object in the image.
例えば、重畳処理部204は、実物体(机)の面から所定値だけ上に仮想物体を描画する。これは、実物体から沈んだ位置や、浮き過ぎた位置に仮想物体が表示されることを防ぐためである。 For example, the superimposition processing unit 204 draws a virtual object above the surface of the real object (desk) by a predetermined value. This is to prevent the virtual object from being displayed at a position sinking from the real object or a position that is too floating.
押下判定部205は、実物体検出部201により検出された実物体(例えば指)と、重畳処理部204により重畳表示されている仮想物体とが空間中で交差しているか、または所定距離以内にあるかなどを判定する。 The press determination unit 205 determines whether the real object (for example, a finger) detected by the real object detection unit 201 and the virtual object superimposed and displayed by the superimposition processing unit 204 intersect in space or within a predetermined distance. Determine if there is any.
このとき、押下判定部205は、視点検出部203から取得した視点位置と重畳表示される仮想物体の位置とに基づき、仮想物体の押下判定に用いる位置を変更する。押下判定に用いる位置とは、押下判定領域の位置や、仮想物体の押下の判定をする際の実物体の座標位置を含む。 At this time, the press determination unit 205 changes the position used for the virtual object press determination based on the viewpoint position acquired from the viewpoint detection unit 203 and the position of the virtual object displayed in a superimposed manner. The position used for the pressing determination includes the position of the pressing determination region and the coordinate position of the real object when determining whether to press the virtual object.
押下判定部205は、仮想物体に対応する押下判定領域の位置を、仮想物体の位置と視点位置とに基づいて変更しておいてもよい。例えば、押下判定部205は、仮想物体に対応する押下判定領域を視点方向に所定量ずらす。視点方向とは、仮想物体の位置からユーザの目の位置を示す視点位置に向かう方向をいう。 The pressing determination unit 205 may change the position of the pressing determination area corresponding to the virtual object based on the position of the virtual object and the viewpoint position. For example, the pressing determination unit 205 shifts the pressing determination area corresponding to the virtual object by a predetermined amount in the viewpoint direction. The viewpoint direction refers to a direction from the position of the virtual object toward the viewpoint position indicating the position of the user's eyes.
この所定量は、仮想物体の位置と視点位置との距離に基づき決定されてもよい。例えば、所定量は、仮想物体の位置と視点位置との距離の数%と決めておけばよい。これにより、仮想キーの位置に応じて適切な値を用いて、押下判定領域の位置をずらすことができる。 This predetermined amount may be determined based on the distance between the position of the virtual object and the viewpoint position. For example, the predetermined amount may be determined as several percent of the distance between the position of the virtual object and the viewpoint position. Thereby, the position of the press determination area can be shifted using an appropriate value according to the position of the virtual key.
押下判定部205は、実物体の位置と、基準面との距離を算出し、この距離に基づいて仮想物体が押下されたか否かを判定する。基準面とは、実物体である机の面や、重畳表示された仮想物体の面などである。ここでは、基準面は机の面とする。なお、机の面は、実物体検出部201により、机の所定位置にある一点と法線ベクトルとで表される。押下判定部205は、算出した距離が閾値未満のとき、押下と判定する。押下判定部205は、例えば指と仮想キー、仮想キーと壁などの接触を判定できる。 The press determination unit 205 calculates the distance between the position of the real object and the reference plane, and determines whether or not the virtual object is pressed based on this distance. The reference plane is a surface of a desk that is a real object, a surface of a virtual object that is superimposed, or the like. Here, the reference plane is a desk surface. Note that the surface of the desk is represented by the real object detection unit 201 as one point at a predetermined position of the desk and a normal vector. When the calculated distance is less than the threshold value, the pressing determination unit 205 determines that the button is pressed. The press determination unit 205 can determine contact between a finger and a virtual key, a virtual key and a wall, for example.
また、押下判定部205は、押下と判定したときの実物体の位置を含む押下判定領域を特定し、その押下判定領域に対応する仮想物体が押下された物体であると判定する。押下判定部205は、視点方向にずれた押下判定領域で押下判定を行うことができるため、ユーザの押し間違いを少なくすることができる。これは、視線方向の手前のキーを押す傾向を利用している。視線方向とは、目から対象物を見る方向をいう。 Further, the press determination unit 205 specifies a press determination area including the position of the real object when it is determined to be pressed, and determines that the virtual object corresponding to the press determination area is the pressed object. Since the pressing determination unit 205 can perform the pressing determination in the pressing determination area shifted in the viewpoint direction, it is possible to reduce the user's pressing mistake. This utilizes the tendency to press a key in front of the line of sight. The line-of-sight direction refers to a direction in which an object is viewed from the eyes.
また、押下判定部205は、押下判定領域を仮想物体に対して変更しない場合は、押下判定する際の実物体の座標位置を、視点方向とは逆方向に所定量変更する。これにより、視線方向の手前のキーを押す傾向を利用して、実物体の押下判定時の座標を視点方向の先に変更することで、ユーザの押し間違いを少なくすることができる。この所定量は、押下判定領域と同じように、仮想物体の位置と視点位置との距離に基づき決定されてもよい。 If the pressing determination area 205 is not changed with respect to the virtual object, the pressing determination unit 205 changes the coordinate position of the real object at the time of pressing determination by a predetermined amount in the direction opposite to the viewpoint direction. Thus, by making use of the tendency to press the key in front of the line-of-sight direction, by changing the coordinates at the time of determination of pressing the real object to the point in the viewpoint direction, it is possible to reduce the user's mistakes in pressing. This predetermined amount may be determined based on the distance between the position of the virtual object and the viewpoint position, as in the pressing determination area.
図13は、押下判定領域の変更の一例を示す図である。図13に示す白色キーは、仮想キーの表示位置401を示し、灰色キーは、仮想キーに対応する押下判定領域の位置402を示す。仮想キーの表示位置401に対して、押下判定領域の位置402は、視点方向にずれている。これは、押下判定部205が、仮想キーの押し間違いを考慮して視点方向に押下判定領域を変更した結果である。 FIG. 13 is a diagram illustrating an example of changing the pressing determination area. The white key shown in FIG. 13 indicates the display position 401 of the virtual key, and the gray key indicates the position 402 of the pressing determination area corresponding to the virtual key. The position 402 of the press determination area is shifted in the viewpoint direction with respect to the display position 401 of the virtual key. This is a result of the pressing determination unit 205 changing the pressing determination area in the viewpoint direction in consideration of an erroneous pressing of the virtual key.
なお、図13に示す例では、押下判定領域が仮想キーの下にあるように表されているが、押下判定領域は、例えば仮想キーから所定値だけ上に位置する。また、押下判定部205は、視点方向への変更について視点方向そのものの方向ではなく、視点方向を仮想キーの平面に射影した方向(第1方向と呼ぶ)を求め、第1方向に所定量をずらすようにしてもよい。 In the example shown in FIG. 13, the press determination area is shown to be below the virtual key, but the press determination area is positioned above the virtual key by a predetermined value, for example. In addition, the pressing determination unit 205 obtains a direction (referred to as a first direction) obtained by projecting the viewpoint direction onto the virtual key plane instead of the direction of the viewpoint direction when changing to the viewpoint direction, and sets a predetermined amount in the first direction. It may be shifted.
これにより、ユーザが、仮想物体が重畳表示された画像を見ながら仮想物体を押下するとき、仮想物体の押し間違いを少なくし、ユーザが意図する仮想物体を押下させることができる。 As a result, when the user presses the virtual object while viewing the image on which the virtual object is superimposed, it is possible to reduce a mistake in pressing the virtual object and press the virtual object intended by the user.
押下判定部402は、押下と判定された仮想物体の座標を入力コマンド生成部206に出力する。 The press determination unit 402 outputs the coordinates of the virtual object determined to be pressed to the input command generation unit 206.
図11に戻り、入力コマンド生成部206は、押下判定部205から取得した仮想物体の座標に基づき、入力コマンドを生成する。仮想物体が仮想キーボードである場合、入力コマンド生成部206は、仮想物体の座標に基づき、どのキーコードであるかを特定し、そのキーコードを生成する。 Returning to FIG. 11, the input command generation unit 206 generates an input command based on the coordinates of the virtual object acquired from the pressing determination unit 205. When the virtual object is a virtual keyboard, the input command generation unit 206 specifies which key code is based on the coordinates of the virtual object, and generates the key code.
入力コマンド生成部206は、生成した入力コマンドをアプリケーション113などに送信する。 The input command generation unit 206 transmits the generated input command to the application 113 or the like.
<動作>
次に、実施例1における入力装置101の動作について説明する。図14は、実施例1における入力制御処理の一例を示すフローチャートである。
<Operation>
Next, the operation of the input device 101 in the first embodiment will be described. FIG. 14 is a flowchart illustrating an example of the input control process according to the first embodiment.
図14に示すステップS101で、入力装置101は、画像入力装置110から画像を取得する。 In step S <b> 101 illustrated in FIG. 14, the input device 101 acquires an image from the image input device 110.
ステップS102で、実物体検出部201は、取得した画像から実物体を検出する。実物体とは、例えば机の面や指などである。 In step S102, the real object detection unit 201 detects a real object from the acquired image. The real object is, for example, a desk surface or a finger.
ステップS103で、仮想物体位置決定部202は、実物体検出部201により検出された机の面などに、仮想物体を表示するための表示位置を決定する。このとき、仮想物体位置決定部202は、上述した座標変換を行う。 In step S <b> 103, the virtual object position determination unit 202 determines a display position for displaying the virtual object on a desk surface or the like detected by the real object detection unit 201. At this time, the virtual object position determination unit 202 performs the coordinate conversion described above.
ステップS104で、重畳処理部204は、画像入力装置110から取得した画像に、仮想物体に対して上述した透視変換を行って重畳表示する。 In step S <b> 104, the superimposition processing unit 204 performs superimposition display on the image acquired from the image input apparatus 110 by performing the above-described perspective transformation on the virtual object.
ステップS105で、押下判定部205は、仮想物体に対応する押下判定領域を、視点方向に変更する。 In step S105, the pressing determination unit 205 changes the pressing determination area corresponding to the virtual object to the viewpoint direction.
ステップS106で、押下判定部205は、重畳表示された仮想物体を、検出された実物体が押下したかどうかを判定する。これにより、ユーザの押し間違いを少なくすることができる。 In step S <b> 106, the pressing determination unit 205 determines whether the detected real object has pressed the virtual object displayed in a superimposed manner. Thereby, a user's pushing mistake can be decreased.
押下されたと判定された場合(ステップS106−YES)ステップS107に進み、押下されていないと判定された場合(ステップS106−NO)ステップS101に戻る。 If it is determined that the button has been pressed (step S106—YES), the process proceeds to step S107. If it is determined that the button has not been pressed (step S106—NO), the process returns to step S101.
ステップS107で、入力コマンド生成部206は、押下と判定された仮想物体の座標に基づいて、入力コマンドを生成する。生成された入力コマンドは、例えば、アプリケーション113に送信される。 In step S107, the input command generation unit 206 generates an input command based on the coordinates of the virtual object determined to be pressed. The generated input command is transmitted to the application 113, for example.
なお、押下判定部205は、ステップS105を省略し、ステップS106において、押下時の実物体の座標を視点方向から逆方向にずらしてもよい。 Note that the pressing determination unit 205 may omit step S105 and shift the coordinates of the real object at the time of pressing in the reverse direction from the viewpoint direction in step S106.
以上、実施例1によれば、画像に重畳表示された仮想物体に対し、ユーザが意図する仮想物体を適切に押下させることができる。 As described above, according to the first embodiment, the virtual object intended by the user can be appropriately pressed against the virtual object superimposed and displayed on the image.
[実施例2]
次に、実施例2における入力装置について説明する。実施例2では、入力装置は、ユーザが仮想キーを押し間違えた場合の正しいキーと誤ったキーとのデータを示す誤り傾向データを参照し、誤り傾向データに保持される誤ったキーが押下されようとする場合に押下判定に用いる位置を変更する。以下に示す実施例では、仮想物体に対して仮想キーボートを例にし、実物体に対して指を例にして説明する。
[Example 2]
Next, an input device according to the second embodiment will be described. In the second embodiment, the input device refers to the error tendency data indicating the data of the correct key and the incorrect key when the user makes a mistake in pressing the virtual key, and the incorrect key held in the error tendency data is pressed. When trying to do so, the position used for the press determination is changed. In the embodiment described below, a virtual keyboard is taken as an example for a virtual object, and a finger is taken as an example for a real object.
<システムと構成>
実施例2におけるシステム及び入力装置の構成については、実施例1と同様であるため、その説明を省略する。
<System and configuration>
Since the configuration of the system and the input device in the second embodiment is the same as that in the first embodiment, description thereof is omitted.
<構成>
図15は、実施例2における入力装置500の機能の一例を示すブロック図である。図15に示す構成で、図11に示す構成と同様のものは同じ符号を付し、その説明を省略する。
<Configuration>
FIG. 15 is a block diagram illustrating an example of functions of the input device 500 according to the second embodiment. In the configuration illustrated in FIG. 15, the same components as those illustrated in FIG. 11 are denoted by the same reference numerals, and description thereof is omitted.
図15に示す記憶部501は、誤り傾向データを記憶する。記憶部501は、例えば補助記憶部104により実現されうる。誤り傾向データは、以下のデータを保持する。
(1)正しい入力(押下)時の
キーコード、視点位置、キーの座標、指の座標
(2)正しい入力キーに対応する、誤った入力(押下)時の
キーコード、視点位置、キーの座標、指の座標
押下判定部502は、指と、押下判定位置との距離に対し、3つの閾値を設ける。閾値1は、指が仮想キーに近づいたと判断するための閾値である。閾値2は、仮想キーが押下されたと判断するための閾値である。閾値3は、仮想キーが押下された後に指が離れたと判断するための閾値である。
A storage unit 501 illustrated in FIG. 15 stores error tendency data. The storage unit 501 can be realized by the auxiliary storage unit 104, for example. The error tendency data holds the following data.
(1) Key code, viewpoint position, key coordinates, and finger coordinates for correct input (pressing) (2) Key code, viewpoint position, and key coordinates for incorrect input (pressing) corresponding to the correct input key Finger Coordinates The press determination unit 502 sets three thresholds for the distance between the finger and the press determination position. The threshold 1 is a threshold for determining that the finger has approached the virtual key. The threshold 2 is a threshold for determining that the virtual key has been pressed. The threshold 3 is a threshold for determining that the finger has been released after the virtual key is pressed.
押下判定部502は、指と基準面との距離が閾値1未満になったか否かを判定する。基準面とは、例えば机の面や、仮想キーボードが表示される面などである。この距離が閾値1未満になったとき、押下判定部502は、押下されようとしている仮想キー(以下、目的キーと呼ぶ)が、記憶部501に記憶される誤り傾向データで、誤ったキーとして記憶されているか否かを判定する。 The press determination unit 502 determines whether or not the distance between the finger and the reference surface is less than the threshold value 1. The reference plane is, for example, a desk surface or a surface on which a virtual keyboard is displayed. When this distance is less than the threshold value 1, the pressing determination unit 502 indicates that the virtual key to be pressed (hereinafter referred to as the purpose key) is error tendency data stored in the storage unit 501, and is used as an incorrect key. It is determined whether or not it is stored.
押下判定部502は、目的キーが誤ったキーとして記憶されていれば、そのキーは間違えやすいキーであるため、その目的キーに対応する押下判定領域を変更する。この変更処理は、実施例1と同様である。このとき、押下判定部502は、重畳処理部503に対し、目的キーの座標を通知するとともに、目的キーの表示位置を変更するよう要求してもよい。 If the target key is stored as an incorrect key, the press determination unit 502 changes the press determination area corresponding to the target key because the key is easily mistaken. This change process is the same as in the first embodiment. At this time, the pressing determination unit 502 may notify the superimposition processing unit 503 of the coordinates of the target key and request to change the display position of the target key.
押下判定部502は、目的キーが誤ったキーとして記憶されていなければ、目的キーの押下判定領域の位置を変更しない。そもそも間違えにくいキーだからである。 If the target key is not stored as an incorrect key, the press determination unit 502 does not change the position of the target key press determination area. This is because it is a key that is difficult to make mistakes.
押下判定部502は、この距離が閾値2未満になったとき、入力コマンド生成部206に押下された仮想キーの座標を通知する。押下判定部502は、この距離が閾値2未満になった後に、閾値3より大きくなれば仮想キーの押下が終了したことを入力コマンド生成部206に通知する。閾値2及び閾値3の判定は、実施例1でも行われる。 When the distance is less than the threshold value 2, the press determination unit 502 notifies the input command generation unit 206 of the coordinates of the pressed virtual key. When the distance becomes less than the threshold value 2 and becomes larger than the threshold value 3 after the distance becomes less than the threshold value 2, the pressing determination unit 502 notifies the input command generation unit 206 that the pressing of the virtual key is finished. The determination of the threshold 2 and the threshold 3 is also performed in the first embodiment.
重畳処理部503は、押下判定部502から変更要求を受けた場合、重畳表示している目的キーの表示位置を変更する。重畳処理部503は、目的キーを、押下判定部502により通知される座標で特定できる。 When the superimposition processing unit 503 receives a change request from the pressing determination unit 502, the superimposition processing unit 503 changes the display position of the target key displayed in a superimposed manner. The superimposition processing unit 503 can specify the target key by the coordinates notified by the pressing determination unit 502.
重畳処理部503は、押下判定領域が変更された場合、目的キーの表示位置を、押下判定領域に合わせて変更するようにしてもよい。 When the pressing determination area is changed, the superimposition processing unit 503 may change the display position of the target key according to the pressing determination area.
これにより、ユーザが仮想キーを押下しようとしたときに、その仮想キーが間違えやすいキーであれば、視点方向に押下判定領域の位置を変更することができる。 Thus, when the user tries to press the virtual key, if the virtual key is easy to make a mistake, the position of the pressing determination area can be changed in the viewpoint direction.
<変更例>
次に、実施例2における位置変更例について説明する。図16は、仮想キーの表示位置及び押下判定領域を変更する例(その1)を示す図である。図16に示す例では、ユーザが表示装置111越しに斜め方向から仮想キーボードを見て、仮想キー31を押下しようとする例である。実際は、仮想キーの視線方向手前を押すことが多い。また、この仮想キー31は、誤入力キーとして誤り傾向データに記憶されているとする。
<Example of change>
Next, an example of position change in the second embodiment will be described. FIG. 16 is a diagram illustrating an example (part 1) of changing the virtual key display position and the pressing determination area. In the example illustrated in FIG. 16, the user looks at the virtual keyboard from an oblique direction through the display device 111 and attempts to press the virtual key 31. In practice, the virtual key is often pressed in front of the line-of-sight direction. Further, it is assumed that the virtual key 31 is stored in the error tendency data as an erroneous input key.
このとき、押下判定部502は、仮想キー31の押下判定領域を視点方向に所定値ずらす。この所定値は、予め決められた値でもよいし、この仮想キー31と視点位置との距離に基づいて決められてもよい。また、押下判定部502は、仮想キー31から視点方向にある仮想キー32、33に対応する押下判定領域も、視点方向に変更しておく。仮想キー31の移動により、重複しないようにするためである。 At this time, the pressing determination unit 502 shifts the pressing determination area of the virtual key 31 by a predetermined value in the viewpoint direction. This predetermined value may be a predetermined value or may be determined based on the distance between the virtual key 31 and the viewpoint position. The pressing determination unit 502 also changes the pressing determination area corresponding to the virtual keys 32 and 33 in the viewpoint direction from the virtual key 31 to the viewpoint direction. This is to prevent duplication due to movement of the virtual key 31.
重畳処理部503は、例えば、仮想キー31を、本来の表示位置41から表示位置42に変更する。変更するのは、押下判定部502から変更要求が通知された後である。また、重畳処理部503は、仮想キー31だけを変更するのではなく、仮想キー31の変更に伴い仮想キー32,33も合わせて表示位置を変更する。これは、仮想キー31の表示位置を変更することで、仮想キー31から見て視点方向の仮想キーも、仮想キー31と重複しないように変更した方がいいからである。 For example, the superimposition processing unit 503 changes the virtual key 31 from the original display position 41 to the display position 42. The change is made after a change request is notified from the press determination unit 502. In addition, the superimposition processing unit 503 does not change only the virtual key 31 but also changes the display position of the virtual keys 32 and 33 as the virtual key 31 is changed. This is because by changing the display position of the virtual key 31, it is better to change the virtual key in the viewing direction as viewed from the virtual key 31 so that it does not overlap with the virtual key 31.
図17は、仮想キーの表示位置及び押下判定領域を変更する例(その2)を示す図である。図17に示す例では、ユーザが表示装置111越しに斜め方向から斜めに表示された仮想キーボードを見て、仮想キー31を押下しようとする例である。また、この仮想キー31は、誤入力キーとして誤り傾向データに記憶されているとする。 FIG. 17 is a diagram illustrating an example (part 2) of changing the display position of the virtual key and the pressing determination area. In the example illustrated in FIG. 17, the user looks at the virtual keyboard displayed obliquely from the oblique direction through the display device 111 and presses the virtual key 31. Further, it is assumed that the virtual key 31 is stored in the error tendency data as an erroneous input key.
このとき、押下判定部502は、仮想キー31の押下判定領域を視点方向に所定値ずらす。この所定値は、予め決められた値でもよいし、この仮想キー31と視点位置との距離に基づいて決められてもよい。また、押下判定部502は、仮想キー31から視点方向にある仮想キー34、35に対応する押下判定領域も、視点方向に変更しておく。 At this time, the pressing determination unit 502 shifts the pressing determination area of the virtual key 31 by a predetermined value in the viewpoint direction. This predetermined value may be a predetermined value or may be determined based on the distance between the virtual key 31 and the viewpoint position. The pressing determination unit 502 also changes the pressing determination area corresponding to the virtual keys 34 and 35 in the viewpoint direction from the virtual key 31 to the viewpoint direction.
重畳処理部503は、例えば、仮想キー31を、本来の表示位置41から表示位置43に変更する。変更するのは、押下判定部502から変更要求が通知された後である。また、重畳処理部503は、仮想キー31だけを変更するのではなく、仮想キー31の変更に伴い仮想キー33,34も合わせて表示位置を変更する。これは、仮想キー31の表示位置を変更することで、仮想キー31から見て視点方向の仮想キーも、仮想キー31と重複しないように変更した方がいいからである。 For example, the superimposition processing unit 503 changes the virtual key 31 from the original display position 41 to the display position 43. The change is made after a change request is notified from the press determination unit 502. Further, the superimposition processing unit 503 does not change only the virtual key 31 but also changes the display position of the virtual keys 33 and 34 in accordance with the change of the virtual key 31. This is because by changing the display position of the virtual key 31, it is better to change the virtual key in the viewing direction as viewed from the virtual key 31 so that it does not overlap with the virtual key 31.
図18は、仮想キーの押下判定領域を変更する例(その1)を示す図である。図18に示す例は、図16に示す例の押下判定領域のみを変更した例である。図18に示す例では、仮想キー31に対応する押下判定領域が視点方向の位置51に変更されている。仮想キー31の表示位置は、位置41である。押下判定領域の位置51の変更に伴い、仮想キー32,33に対応する押下判定領域の位置がそれぞれ視点方向の位置52、53に変更されている。 FIG. 18 is a diagram illustrating an example (part 1) of changing the virtual key press determination area. The example shown in FIG. 18 is an example in which only the pressing determination area in the example shown in FIG. 16 is changed. In the example shown in FIG. 18, the pressing determination area corresponding to the virtual key 31 is changed to the position 51 in the viewpoint direction. The display position of the virtual key 31 is the position 41. With the change in the position 51 of the press determination area, the positions of the press determination areas corresponding to the virtual keys 32 and 33 are changed to positions 52 and 53 in the viewpoint direction, respectively.
図19は、仮想キーの押下判定領域を変更する例(その2)を示す図である。図19に示す例は、図17に示す例の押下判定領域のみを変更した例である。図19に示す例では、仮想キー31に対応する対応する押下判定領域の位置が視点方向の位置54に変更されている。仮想キー31の表示位置は、位置41である。押下判定領域の位置51の変更に伴い、仮想キー32,33に対応する押下判定領域の位置がそれぞれ視点方向の位置55,56に変更されている。 FIG. 19 is a diagram illustrating an example (part 2) of changing the virtual key press determination area. The example shown in FIG. 19 is an example in which only the pressing determination area in the example shown in FIG. 17 is changed. In the example shown in FIG. 19, the position of the corresponding press determination area corresponding to the virtual key 31 is changed to the position 54 in the viewpoint direction. The display position of the virtual key 31 is the position 41. With the change in the position 51 of the press determination area, the positions of the press determination areas corresponding to the virtual keys 32 and 33 are changed to the positions 55 and 56 in the viewpoint direction, respectively.
よって、押下判定部502は、目的キーに対応する押下判定領域の位置の変更に伴い、目的キーから視点方向にある他の仮想キーに対応する押下判定領域の位置を変更する。これにより、目的キーに対応する押下判定領域の位置を変更することで、他の仮想キーに対応する押下判定領域と重複することを防ぐことができる。 Therefore, the press determination unit 502 changes the position of the press determination area corresponding to another virtual key in the viewpoint direction from the target key in accordance with the change of the position of the press determination area corresponding to the target key. Thus, by changing the position of the press determination area corresponding to the target key, it is possible to prevent overlap with the press determination areas corresponding to other virtual keys.
<動作>
次に、実施例2における入力装置500の動作について説明する。図20は、実施例2における入力制御処理の一例を示すフローチャートである。図20に示すステップS201で、仮想物体位置決定部202は、立体形状データを読み込み、押下判定部502は、誤り傾向データを読み込む。
<Operation>
Next, the operation of the input device 500 in the second embodiment will be described. FIG. 20 is a flowchart illustrating an example of input control processing according to the second embodiment. In step S201 shown in FIG. 20, the virtual object position determination unit 202 reads solid shape data, and the pressing determination unit 502 reads error tendency data.
ステップS202で、入力装置500は、画像入力装置110から画像を取得する。 In step S <b> 202, the input device 500 acquires an image from the image input device 110.
ステップS203で、実物体検出部201は、取得した画像を解析する。 In step S203, the real object detection unit 201 analyzes the acquired image.
ステップS204で、実物体検出部201は、仮想キーボードの表示位置が画像内にあるかないかを判定する。例えば、実物体検出部201は、所定サイズの面が画像内にあれば表示位置ありと判定する。なお、仮想キーボードは、画像内の所定領域に表示すると予め決定されていてもよい。 In step S204, the real object detection unit 201 determines whether or not the display position of the virtual keyboard is in the image. For example, the real object detection unit 201 determines that there is a display position if a surface of a predetermined size is in the image. The virtual keyboard may be determined in advance to be displayed in a predetermined area in the image.
仮想キーボードの表示位置があれば(ステップS204−YES)ステップS205に進み、仮想キーボードの表示位置がなければ(ステップS204−NO)ステップS212に進む。実物体検出部201は、表示位置ありと判定すると、k_flagを1にし、表示位置なしと判定すると、k_flagを0にする。 If there is a virtual keyboard display position (step S204-YES), the process proceeds to step S205, and if there is no virtual keyboard display position (step S204-NO), the process proceeds to step S212. If the real object detection unit 201 determines that there is a display position, it sets k_flag to 1, and if it determines that there is no display position, it sets k_flag to 0.
ステップS205で、実物体検出部201は、取得した画像を解析し、手や指を検出する。手や指の検出は、肌色検出を行ったり、マーカを付した指を検出したり、指に付したセンサで検出したりしてもよい。 In step S205, the real object detection unit 201 analyzes the acquired image and detects a hand or a finger. The detection of the hand or finger may be performed by detecting skin color, detecting a finger with a marker, or detecting with a sensor attached to the finger.
ステップS206で、実物体検出部201は、手や指が画像中に含まれるか否かを判定する。手や指が画像中に含まれれば(ステップS206−YES)ステップS207に進み、手や指が画像中に含まれなければ(ステップS206−NO)ステップS212に進む。実物体検出部201は、手や指が画像中に含まれると判定すると、h_flagを1にし、手や指が画像中に含まれないと判定すると、h_flagを0にする。 In step S206, the real object detection unit 201 determines whether a hand or a finger is included in the image. If a hand or a finger is included in the image (step S206—YES), the process proceeds to step S207. If a hand or a finger is not included in the image (step S206—NO), the process proceeds to step S212. If the real object detection unit 201 determines that the hand or finger is included in the image, the real object detection unit 201 sets h_flag to 1, and if it determines that the hand or finger is not included in the image, sets the h_flag to 0.
ステップS207で、視点検出部203は、視点・視線検出装置111から取得した視点、視線データに基づき、空間中の視点位置と、視線方向を検出する。 In step S207, the viewpoint detection unit 203 detects a viewpoint position in the space and a line-of-sight direction based on the viewpoint and line-of-sight data acquired from the viewpoint / line-of-sight detection device 111.
ステップS208で、重畳処理部503は、k_flagが1であり、かつ、h_flagが1であるか否かを判定する。この条件を満たす場合は、仮想キーボードを重畳表示すると判定され、ステップS209に進み、この条件を満たさない場合は、仮想キーボードを重畳表示しないと判定され、ステップS212に進む。 In step S208, the superimposition processing unit 503 determines whether k_flag is 1 and h_flag is 1. If this condition is satisfied, it is determined that the virtual keyboard is superimposed and the process proceeds to step S209. If this condition is not satisfied, it is determined that the virtual keyboard is not superimposed and the process proceeds to step S212.
ステップS209で、押下判定部502は、仮想キーボード(仮想物体)と手や指との距離を算出する。 In step S209, the pressing determination unit 502 calculates the distance between the virtual keyboard (virtual object) and the hand or finger.
ステップS210で、押下判定部502は、算出した距離に基づき、仮想キーの表示を変更させる必要があるか否かを判定する。変更の必要がある場合(ステップS210−YES)は、ステップS211に進み、変更の必要がない場合(ステップS210−NO)は、ステップS212に進む。 In step S210, the press determination unit 502 determines whether it is necessary to change the display of the virtual key based on the calculated distance. When the change is necessary (step S210-YES), the process proceeds to step S211. When the change is not necessary (step S210-NO), the process proceeds to step S212.
変更の必要があるとは、算出した距離が閾値1未満であること、かつ、閾値1未満である仮想キー(目的キー)が誤り傾向データの誤ったキーとして保持されていることをいう。この条件は、指や手が仮想キー(目的キー)に近づき、かつ、この目的キーの押し間違いが多いことを示す。 The necessity for change means that the calculated distance is less than the threshold value 1 and that a virtual key (target key) that is less than the threshold value 1 is held as an erroneous key of error tendency data. This condition indicates that a finger or hand approaches a virtual key (object key) and that the object key is frequently pressed incorrectly.
ステップS211で、押下判定部502は、目的キーの押下判定領域の位置を、視点方向にずらす。また、押下判定部502による表示変更命令で、重畳処理部503は、重畳表示対象の目的キーの表示位置を、押下判定領域に合わせて変更する。(図16、17参照)
ステップS212で、重畳処理部503は、画像入力装置110から取得した画像を表示する。
In step S211, the press determination unit 502 shifts the position of the target key press determination area in the viewpoint direction. Further, the superimposition processing unit 503 changes the display position of the target key to be superimposed in accordance with the press determination area by a display change command from the press determination unit 502. (See FIGS. 16 and 17)
In step S <b> 212, the superimposition processing unit 503 displays the image acquired from the image input device 110.
ステップS213で、重畳処理部503は、k_flagが1であるかを判定する。k_flagが1であれば(ステップS213−YES)ステップS214に進み、k_flagが0であれば(ステップS213−NO)ステップS202に戻る。 In step S213, the superimposition processing unit 503 determines whether k_flag is 1. If k_flag is 1 (step S213-YES), the process proceeds to step S214, and if k_flag is 0 (step S213-NO), the process returns to step S202.
ステップS214で、重畳処理部503は、座標変換、透視変換を行った仮想キーボードを画像に重畳表示する。このとき、手や指が仮想キーに閾値1よりも近づいていれば、この仮想キーの表示位置の位置が変更された状態で重畳表示される。 In step S214, the superimposition processing unit 503 superimposes and displays the virtual keyboard that has undergone coordinate transformation and perspective transformation on the image. At this time, if the hand or finger is closer to the virtual key than the threshold 1, the virtual key is displayed in a superimposed state with the position of the display position of the virtual key changed.
ステップS215で、押下判定部502は、算出した距離が閾値2未満になったか否かを判定する。距離が閾値2未満であれば(ステップS215−YES)仮想キーが押下されたと判定され、ステップS216に進み、距離が閾値2以上であれば(ステップS215−NO)仮想キーは押下されていないと判定され、ステップS202に戻る。 In step S215, the pressing determination unit 502 determines whether or not the calculated distance is less than the threshold value 2. If the distance is less than the threshold 2 (step S215-YES), it is determined that the virtual key has been pressed, and the process proceeds to step S216. If the distance is greater than or equal to the threshold 2 (step S215-NO), the virtual key has not been pressed. The determination is made, and the process returns to step S202.
ステップS216で、入力コマンド生成部206は、押下されたと判定された仮想キーに対応するキーコードを生成する。 In step S216, the input command generation unit 206 generates a key code corresponding to the virtual key determined to be pressed.
なお、ステップS211で、仮想キーの表示位置を変更するようにしたが、この変更は必ずしも必要な処理ではない。入力装置500は、仮想キーの押下判定領域の位置だけを変更するようにしてもよい(図18、19参照)。 Although the display position of the virtual key is changed in step S211, this change is not necessarily a necessary process. The input device 500 may change only the position of the virtual key press determination area (see FIGS. 18 and 19).
図21は、基準面と閾値との関係を示す図である。図21に示す例では、閾値1(TH1)は、指が仮想キーに近づいたと判断される距離を示す。閾値2(TH2)は、仮想キーが押されたと判断できる距離を示す。閾値3は仮想キーが押された後に、離れたと判断するための距離を示す。ここでは、基準面と指との距離をdとする。基準面は、例えば実物体の面や仮想キーボードの面とする。 FIG. 21 is a diagram illustrating the relationship between the reference plane and the threshold value. In the example shown in FIG. 21, the threshold value 1 (TH1) indicates the distance at which it is determined that the finger has approached the virtual key. The threshold 2 (TH2) indicates a distance at which it can be determined that the virtual key is pressed. A threshold value 3 indicates a distance for determining that the virtual key has been released after the virtual key is pressed. Here, the distance between the reference plane and the finger is d. The reference plane is, for example, a real object plane or a virtual keyboard plane.
図22は、押下判定部502による押下判定処理の一例を示すフローチャートである。図22に示すステップS301で、押下判定部502は、距離dがTH1未満であるか否かを判定する。押下判定部502は、距離dがTH1未満であれば、k_nearを1にし、距離dがTH1以上であれば、k_nearを0にする。 FIG. 22 is a flowchart illustrating an example of a press determination process performed by the press determination unit 502. In step S301 illustrated in FIG. 22, the pressing determination unit 502 determines whether the distance d is less than TH1. The pressing determination unit 502 sets k_near to 1 if the distance d is less than TH1, and sets k_near to 0 if the distance d is equal to or greater than TH1.
ステップS302で、押下判定部502は、距離dがTH2未満であるか否かを判定する。押下判定部502は、距離dがTH2未満であれば、k_downを1にし、距離dがTH2以上であれば何もしない。 In step S302, the pressing determination unit 502 determines whether the distance d is less than TH2. The pressing determination unit 502 sets k_down to 1 if the distance d is less than TH2, and does nothing if the distance d is greater than TH2.
ステップS303で、押下判定部502は、距離dがTH3より大きく、かつ、k_downが1であるかを判定する。押下判定部502は、この条件を満たせば、k_downを0にし、この条件を満たさなければ何もしない。押下判定部502は、ステップS303の処理が終わると、次の画像の処理を行う。 In step S303, the press determination unit 502 determines whether the distance d is greater than TH3 and k_down is 1. The press determination unit 502 sets k_down to 0 if this condition is satisfied, and does nothing if this condition is not satisfied. When the process of step S303 ends, the pressing determination unit 502 performs the next image process.
これにより、押下判定部502は、k_nearが1のときに、押下判定領域の位置を変更し、また、重畳処理部503に表示位置の変更を要求する。押下判定部502は、k_downが1のときに、押下がなされたと判定し、入力コマンド生成部206に押下された仮想キーの情報を通知する。 Thereby, when the k_near is 1, the press determination unit 502 changes the position of the press determination region, and requests the superimposition processing unit 503 to change the display position. When the k_down is 1, the press determination unit 502 determines that the press has been performed, and notifies the input command generation unit 206 of information on the pressed virtual key.
なお、押下判定部502は、所定時間内にk_downが0にならなければ連続入力と判定し、所定時間内にk_downが0になれば、次の押下判定を行う。 Note that the press determination unit 502 determines continuous input if k_down does not become 0 within a predetermined time, and performs the next press determination when k_down becomes 0 within a predetermined time.
以上、実施例2によれば、実物体(例えば指)が仮想キーに近づいた場合に、位置を変更する押下判定領域を必要最小限に抑えることができる。また、実施例2によれば、押下判定領域の位置の変更に合わせて、仮想キーの表示位置を変更させることもできる。また、実施例2によれば、誤り傾向データを参照するため、誤入力が発生しない仮想キーに対しては、押下判定領域の位置又は仮想キーの表示位置を変更させないこともできる。 As described above, according to the second embodiment, when a real object (for example, a finger) approaches a virtual key, it is possible to minimize the pressing determination area for changing the position. Further, according to the second embodiment, the display position of the virtual key can be changed in accordance with the change of the position of the pressing determination area. In addition, according to the second embodiment, since error tendency data is referred to, the position of the pressing determination area or the display position of the virtual key can be not changed for a virtual key in which an erroneous input does not occur.
[実施例3]
次に、実施例3における入力装置について説明する。実施例3では、入力装置は、実施例2で用いた、ユーザが仮想キーを押し間違えた場合の正しいキーと誤ったキーとのデータを示す誤り傾向データを更新する。以下に示す実施例では、仮想物体に対して仮想キーボートを例にし、実物体に対して指を例にして説明する。
[Example 3]
Next, an input device according to the third embodiment will be described. In the third embodiment, the input device updates the error tendency data used in the second embodiment and indicating the data of the correct key and the wrong key when the user makes a mistake in pressing the virtual key. In the embodiment described below, a virtual keyboard is taken as an example for a virtual object, and a finger is taken as an example for a real object.
<システムと構成>
実施例3におけるシステム及び入力装置の構成については、実施例1と同様であるため、その説明を省略する。
<System and configuration>
Since the configuration of the system and the input device in the third embodiment is the same as that in the first embodiment, description thereof is omitted.
<構成>
図23は、実施例3における入力装置600の機能の一例を示すブロック図である。図23に示す構成で、図11、15に示す構成と同様のものは同じ符号を付し、その説明を省略する。入力コマンド生成部601は、生成したキーコードを学習部602に出力する。
<Configuration>
FIG. 23 is a block diagram illustrating an example of functions of the input device 600 according to the third embodiment. In the configuration shown in FIG. 23, the same components as those shown in FIGS. 11 and 15 are denoted by the same reference numerals, and the description thereof is omitted. The input command generation unit 601 outputs the generated key code to the learning unit 602.
学習部602は、仮想キー入力時の指及び仮想キーの座標と、文字を消した情報とを利用して、誤入力の検出を行う。学習部602は、誤入力されたキー、入力し直したキー、及びそれらのキーが押下された時の座標及び視点位置を用いて、仮想キー毎の誤り傾向データの学習を行う。 The learning unit 602 detects an erroneous input by using the coordinates of the finger and the virtual key when the virtual key is input and information obtained by deleting the character. The learning unit 602 learns error tendency data for each virtual key using an erroneously input key, a re-input key, and the coordinates and viewpoint position when those keys are pressed.
例えば、学習部602は、BackSpaceキーのキーコードを取得した場合、誤入力が発生したと検出できる。学習部602は、次に入力されたキーコードが正しい入力であると判断できる。 For example, the learning unit 602 can detect that an erroneous input has occurred when the key code of the BackSpace key is acquired. The learning unit 602 can determine that the next input key code is a correct input.
なお、学習部602は、入力し直した後の入力も間違えたり、連続して削除したり、いろいろな場合を想定するとよい。実施例3では、削除後の入力も間違えていた場合も検出できる場合について後述する。 Note that the learning unit 602 may assume various cases in which the input after re-inputting is incorrect or continuously deleted. In the third embodiment, a case where it is possible to detect whether the input after deletion is wrong will be described later.
学習部602は、誤入力の場合のキーコード、視点位置、仮想キーの座標、指の座標を誤りデータとしてバッファに保存する。 The learning unit 602 stores the key code, viewpoint position, virtual key coordinates, and finger coordinates in the case of an erroneous input in the buffer as error data.
また、学習部602は、正しい入力の場合のキーコード、視点位置、仮想キーの座標、指の座標を正しいデータとしてバッファに保存する。学習部602は、誤りデータと正しいデータとを関連付けて、記憶部603に記憶される誤り傾向データを更新する。キーコードは、例えば入力コマンド生成部601から取得され、視点位置、仮想キーの座標、指の座標は、例えば押下判定部502から取得される。 In addition, the learning unit 602 stores the key code, viewpoint position, virtual key coordinates, and finger coordinates for correct input in the buffer as correct data. The learning unit 602 associates the error data with the correct data and updates the error tendency data stored in the storage unit 603. The key code is acquired from, for example, the input command generation unit 601, and the viewpoint position, virtual key coordinates, and finger coordinates are acquired from, for example, the press determination unit 502.
記憶部603は、予め初期の誤り傾向データを記憶しておく。初期の誤り傾向データは、事前の実験などにより設定されていればよい。また、誤り傾向データは、ユーザ毎に変更されるとよいため、一定時間更新がなければ誤り傾向データを初期化するようにしてもよい。 The storage unit 603 stores initial error tendency data in advance. The initial error tendency data may be set by a prior experiment or the like. Moreover, since the error tendency data is preferably changed for each user, the error tendency data may be initialized if there is no update for a certain period of time.
これにより、誤り傾向データをユーザに合わせて学習することができ、そのユーザに対して、押下判定領域の位置や仮想キーの表示位置の変更を適切に行うことができる。 Thereby, error tendency data can be learned according to the user, and the position of the press determination area and the display position of the virtual key can be appropriately changed for the user.
<動作>
次に、実施例3における入力装置600の動作について説明する。まず、図24、25を用いて実施例3における入力制御方法を説明する。図24は、実施例3における入力制御処理(その1)の一例を示すフローチャートである。
<Operation>
Next, the operation of the input device 600 according to the third embodiment will be described. First, the input control method according to the third embodiment will be described with reference to FIGS. FIG. 24 is a flowchart illustrating an example of input control processing (part 1) in the third embodiment.
図24に示すステップS401で、仮想物体位置決定部202は、立体形状データを読み込み、押下判定部502は、初期の誤り傾向データを読み込む。 In step S401 illustrated in FIG. 24, the virtual object position determination unit 202 reads solid shape data, and the pressing determination unit 502 reads initial error tendency data.
ステップS402〜S416は、図20に示すステップS202〜S216と同様であるため、説明を省略する。 Steps S402 to S416 are the same as steps S202 to S216 shown in FIG.
ステップS417で、学習部602は、現在のキーコードと、入力時の指の座標、仮想キーの座標、視点位置をバッファに保存する。以下、キーコード、入力時の指の座標、仮想キーの座標、視点位置のデータをまとめて入力データと呼ぶ。 In step S417, the learning unit 602 stores the current key code, the finger coordinates at the time of input, the virtual key coordinates, and the viewpoint position in a buffer. Hereinafter, the key code, finger coordinates at the time of input, virtual key coordinates, and viewpoint position data are collectively referred to as input data.
ステップS418で、学習部602は、現在の入力が誤入力であるかを判定する。誤入力であれば(ステップS418−YES)S419に進み、誤入力でなければ(ステップS418−NO)ステップS420に進む。誤入力であるか否かは、例えば、BackSpaceキーのキーコードであるかどうかで判断できる。 In step S418, the learning unit 602 determines whether the current input is an erroneous input. If it is incorrect input (step S418-YES), it will progress to S419, and if it is not incorrect input (step S418-NO), it will progress to step S420. Whether it is an erroneous input can be determined, for example, based on whether the key code of the BackSpace key.
ステップS419で、学習部602は、保存しておいた前の入力データを誤りデータとして保持する。ステップS419の処理後は、ステップS402に戻る。 In step S419, the learning unit 602 holds the previous input data stored as error data. After step S419, the process returns to step S402.
ステップS420で、学習部602は、誤入力後の正しい入力が行われたか否かを判定する。正しい入力が行われれば(ステップS420−YES)ステップS421に進み、通常の入力が行われれば(ステップS420−NO)ステップS402に戻る。 In step S420, the learning unit 602 determines whether correct input after erroneous input has been performed. If correct input is performed (step S420—YES), the process proceeds to step S421, and if normal input is performed (step S420—NO), the process returns to step S402.
ステップS421で、学習部602は、誤りデータと、正しい入力データとを関連付けて誤り傾向データに追加する。 In step S421, the learning unit 602 adds error data and correct input data in association with each other to the error tendency data.
ステップS422で、学習部602は、追加されたデータに基づき、誤り傾向データを更新する。 In step S422, the learning unit 602 updates the error tendency data based on the added data.
これにより、誤り傾向データがユーザの誤入力の癖に合わせて更新されるので、ユーザの誤入力の癖に合わせて、押下判定領域の位置、又は仮想キーの表示位置の変更処理を行うことができる。 As a result, the error tendency data is updated in accordance with the user's erroneous input habit, so that the pressing determination area position or the virtual key display position changing process can be performed in accordance with the user's erroneous input habit. it can.
図26は、誤入力及び正しい入力を検出する処理の一例を示すフローチャートである。図26に示す例では、誤入力後の入力も間違えていた場合も間違いとして判断できる処理を示す。 FIG. 26 is a flowchart illustrating an example of a process for detecting an erroneous input and a correct input. The example shown in FIG. 26 shows a process that can be determined as an error even when an input after an erroneous input is wrong.
ステップS501で、学習部602は、パラメータd_flag、n_flagを0に初期化する。d_flagは、正しい入力に対応する誤りの入力を見つけるためのパラメータである。n_flagは、削除されるまでのキーの連続数を表すパラメータである。 In step S501, the learning unit 602 initializes parameters d_flag and n_flag to 0. d_flag is a parameter for finding an erroneous input corresponding to a correct input. n_flag is a parameter representing the number of consecutive keys until deleted.
ステップS502で、学習部602は、入力コマンド生成部601からキーを入力する。ステップS503で、学習部602は、入力データをバッファに保存する。 In step S502, the learning unit 602 inputs a key from the input command generation unit 601. In step S503, the learning unit 602 stores input data in a buffer.
ステップS504で、学習部602は、キーコードが削除キー(例えばBackSpaceキー)を表すか否かを判定する。削除キーであれば(ステップS504−YES)ステップS505に進み、削除キーでなければ(ステップS504−NO)ステップS509に進む。 In step S504, the learning unit 602 determines whether the key code represents a deletion key (for example, a BackSpace key). If it is a delete key (step S504-YES), it will progress to step S505, and if it is not a delete key (step S504-NO), it will progress to step S509.
ステップS505で、学習部602は、前の入力が誤りであることを検出する。 In step S505, the learning unit 602 detects that the previous input is incorrect.
ステップS506で、学習部602は、d_flagが0であるか否かを判定する。d_flagが0であれば(ステップS506−YES)ステップS507に進み、d_flagが0でなければ(ステップS506−NO)ステップS508に進む。 In step S506, the learning unit 602 determines whether d_flag is 0 or not. If d_flag is 0 (step S506-YES), the process proceeds to step S507, and if d_flag is not 0 (step S506-NO), the process proceeds to step S508.
ステップS507で、学習部602は、d_flagを1にし、n_flagを0にする。ステップS507の処理後は、ステップS502に戻る。 In step S507, the learning unit 602 sets d_flag to 1 and n_flag to 0. After step S507, the process returns to step S502.
ステップS508で、学習部602は、d_flagに1を加算し、n_flagを0にする。ステップS508の処理後は、ステップS502に戻る。 In step S508, the learning unit 602 adds 1 to d_flag and sets n_flag to 0. After step S508, the process returns to step S502.
ステップS509で、学習部602は、d_flagが0ではなく、かつ、n_flagが1より大きいかを判定する。この条件を満たす場合(ステップS509−YES)ステップS511に進み、この条件を満たさない場合(ステップS509−NO)ステップS510に進む。 In step S509, the learning unit 602 determines whether d_flag is not 0 and n_flag is greater than 1. When this condition is satisfied (step S509—YES), the process proceeds to step S511, and when this condition is not satisfied (step S509—NO), the process proceeds to step S510.
ステップS509では、削除キーの後に、削除キー以外のキーが2回続いたかを判定している。これにより、削除キーの後に、文字キーを入力後、さらに削除キーが押下された場合、削除キーの間の文字キーを誤入力と判断することができる。 In step S509, it is determined whether a key other than the delete key has been followed twice after the delete key. Thereby, after inputting the character key after the delete key, when the delete key is further pressed, it is possible to determine that the character key between the delete keys is an erroneous input.
ステップS510で、学習部602は、n_flagに1を加算する。ステップS510の処理後は、ステップS502に進む。 In step S510, the learning unit 602 adds 1 to n_flag. After the process of step S510, the process proceeds to step S502.
ステップS511で、学習部602は、一つ前の入力を正解(正しい入力)と判断する。 In step S511, the learning unit 602 determines that the previous input is a correct answer (correct input).
ステップS512で、学習部602は、d_flagが0より大きいか否かを判定する。d_flagが0より大きければ(ステップS512−YES)ステップS513に進み、d_flagが0であれば(ステップS512−NO)ステップS501に戻る。 In step S512, the learning unit 602 determines whether d_flag is greater than zero. If d_flag is greater than 0 (step S512—YES), the process proceeds to step S513. If d_flag is 0 (step S512—NO), the process returns to step S501.
ステップS513で、学習部602は、2×d_flag+1の入力を、今回の正解に対応する誤入力と判断する。 In step S513, the learning unit 602 determines that 2 × d_flag + 1 is an erroneous input corresponding to the current correct answer.
ステップS514で、学習部602は、正解時と誤り時の入力データで、誤り傾向データを更新する。ステップS515で、学習部602は、d_flagを1減算する。ステップS515の処理後は、ステップS512に戻る。 In step S514, the learning unit 602 updates error tendency data with input data at the time of correct answer and error. In step S515, the learning unit 602 subtracts 1 from d_flag. After the process of step S515, the process returns to step S512.
<誤入力及び正しい入力を検出する具体例>
図26の処理に基づく具体例について説明する。図27は、誤入力及び正しい入力を検出する具体例を説明するための図である。図27に示す例では、a、b、dの順に文字が入力され、次に、削除が入力されたとする。
<Specific example of detecting erroneous input and correct input>
A specific example based on the processing of FIG. 26 will be described. FIG. 27 is a diagram for explaining a specific example of detecting an erroneous input and a correct input. In the example illustrated in FIG. 27, it is assumed that characters are input in the order of a, b, and d, and then deletion is input.
学習部602は、削除が入力された時点で、dが誤りであったと判定する。次に、eが入力され、削除が入力される。学習部602は、削除が入力された時点で、eが誤りであったと判定する。 The learning unit 602 determines that d is an error when deletion is input. Next, e is input and deletion is input. The learning unit 602 determines that e is an error when deletion is input.
次に、c、dの順で文字が2回連続で入力されたとする。学習部602は、dの一つ前のcが正解(正しい入力)だったと判定する。学習部602は、このcに対応する誤りを、eとdとであると判定する。よって、学習部602は、このcに対応する入力データの誤りデータとして、eとdとの入力データを関連付け、誤り傾向データを更新する。 Next, it is assumed that characters are input twice in the order of c and d. The learning unit 602 determines that c immediately before d is a correct answer (correct input). The learning unit 602 determines that the error corresponding to c is e and d. Therefore, the learning unit 602 associates the input data of e and d as the error data of the input data corresponding to c, and updates the error tendency data.
図26に示すアルゴリズムは、あくまでも一例であって、連続で削除が入力される場合なども考慮してアルゴリズムを適宜変更すればよい。 The algorithm shown in FIG. 26 is merely an example, and the algorithm may be appropriately changed in consideration of the case where deletion is continuously input.
以上、実施例3によれば、誤り傾向データがユーザの誤入力の癖に合わせて更新されるので、ユーザの誤入力の癖に合わせて、押下判定領域の位置、又は仮想キーの表示位置の変更処理を行うことができる。 As described above, according to the third embodiment, the error tendency data is updated in accordance with the user's erroneous input habit. Change processing can be performed.
[変形例]
次に、各実施例の変形例について説明する。上記実施例では、仮想物体として仮想キーボードを例にして説明したが、仮想物体は、選択オブジェクトであればよい。例えば、選択ボタンや、吹き出しなどでもよい。この吹き出しは、例えばテキストの単語や物などの実物体から出される吹き出しである。
[Modification]
Next, a modified example of each embodiment will be described. In the above embodiment, the virtual keyboard is described as an example of the virtual object. However, the virtual object may be a selection object. For example, a selection button or a balloon may be used. This speech balloon is a speech balloon issued from a real object such as a word or an object of a text.
この吹き出しが選択された場合に、アプリケーション113は、吹き出し元の単語や物の詳細情報を調べる。重畳処理部は、この詳細情報を画像に重畳表示することも可能である。 When this balloon is selected, the application 113 checks the detailed information of the word or object that is the balloon. The superimposition processing unit can also superimpose and display this detailed information on the image.
また、実物体は、指や手に限られるものではない。例えば、3次元位置を特定可能な指示棒などでもよい。 In addition, real objects are not limited to fingers and hands. For example, an indicator bar that can specify a three-dimensional position may be used.
なお、前述した各実施例で説明した入力制御処理を実現するためのプログラムを記録媒体に記録することで、各実施例での入力制御処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータや携帯装置に読み取らせて、前述した入力制御処理を実現させることも可能である。 In addition, by recording a program for realizing the input control processing described in each of the above-described embodiments on a recording medium, the input control processing in each of the embodiments can be performed by a computer. For example, it is possible to record the program on a recording medium, and cause the computer or portable device to read the recording medium on which the program is recorded, thereby realizing the above-described input control processing.
なお、記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的,電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。 The recording medium is a recording medium for recording information optically, electrically or magnetically, such as a CD-ROM, flexible disk, magneto-optical disk, etc., and information is electrically recorded such as ROM, flash memory, etc. Various types of recording media such as a semiconductor memory can be used.
以上、実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した各実施例の構成要素を全部又は複数を組み合わせることも可能である。 Although the embodiments have been described in detail above, the invention is not limited to the specific embodiments, and various modifications and changes can be made within the scope described in the claims. It is also possible to combine all or a plurality of the constituent elements of the above-described embodiments.
なお、以上の各実施例に関し、さらに以下の付記を開示する。
(付記1)
画像を取得する実物体検出部と、
前記画像に重畳する仮想物体の表示位置を決定する位置決定部と、
ユーザの視点位置を検出する視点検出部と、
決定された表示位置で前記仮想物体を前記画像に重畳表示する重畳処理部と、
検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する押下判定部と、
を備える入力装置。
(付記2)
前記実物体検出部は、
前記画像に含まれる実物体を検出し、
前記押下判定部は、
前記実物体と重畳表示された前記仮想物体との距離を算出し、前記距離が所定値以下である場合に、前記押下判定に用いる位置の変更処理を行う付記1記載の入力装置。
(付記3)
前記押下判定部は、
前記仮想物体の押下判定に用いる領域を示す前記仮想物体の押下判定領域の位置を、前記仮想物体から前記視点位置方向に所定量変更する付記1又は2記載の入力装置。
(付記4)
前記押下判定部は、
前記仮想物体に対して押下の判定をする際に前記実物体の座標の位置を、前記仮想物体から前記視点位置とは逆方向に所定量変更する付記1又は2記載の入力装置。
(付記5)
前記所定量は、前記視点位置と前記仮想物体との距離に基づいて決定される付記3又は4記載の入力装置。
(付記6)
前記重畳処理部は、
前記押下判定領域の位置が変更された場合、前記押下判定領域に対応する仮想物体の表示位置を前記押下判定領域の位置に合わせて変更する付記3記載の入力装置。
(付記7)
前記仮想物体は仮想キーボードであり、
正しい入力である場合の仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標を含む第1データと、誤った入力である場合の仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標とを含む第2データとを関連付けた第3データを記憶する記憶部をさらに備え、
前記押下判定部は、
前記実物体との距離が前記所定値以内にある仮想キーが、前記記憶部に記憶されている仮想キーである場合に、前記押下判定に用いる位置の変更処理を行う付記2乃至6いずれか一項に記載の入力装置。
(付記8)
前記仮想キーボードの仮想キーに対する誤入力を検出し、誤入力されたときの仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標と、入力され直したときの仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標とを用いて前記第3データを更新する学習部をさらに備える付記7記載の入力装置。
(付記9)
画像を取得し、
前記画像に重畳する仮想物体の表示位置を決定し、
ユーザの視点位置を検出し、
決定された表示位置で前記仮想物体を前記画像に重畳表示し、
検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する処理をコンピュータが実行する入力制御方法。
(付記10)
画像を取得し、
前記画像に重畳する仮想物体の表示位置を決定し、
ユーザの視点位置を検出し、
決定された表示位置で前記仮想物体を前記画像に重畳表示し、
検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する処理をコンピュータに実行させる入力制御プログラム。
In addition, the following additional notes are disclosed regarding each of the above embodiments.
(Appendix 1)
A real object detection unit for acquiring an image;
A position determining unit that determines a display position of a virtual object to be superimposed on the image;
A viewpoint detection unit for detecting a user's viewpoint position;
A superimposition processing unit that superimposes and displays the virtual object on the image at the determined display position;
A pressing determination unit that changes a position used for pressing determination of the virtual object based on the detected viewpoint position and the position of the virtual object superimposed and displayed;
An input device comprising:
(Appendix 2)
The real object detection unit is
Detecting a real object contained in the image;
The pressing determination unit
The input device according to appendix 1, wherein a distance between the real object and the virtual object superimposed and displayed is calculated, and when the distance is equal to or less than a predetermined value, a position changing process used for the pressing determination is performed.
(Appendix 3)
The pressing determination unit
The input device according to claim 1 or 2, wherein a position of the virtual object press determination area indicating an area used for the virtual object press determination is changed by a predetermined amount from the virtual object in the viewpoint position direction.
(Appendix 4)
The pressing determination unit
The input device according to claim 1 or 2, wherein when determining to press the virtual object, the position of the coordinates of the real object is changed by a predetermined amount from the virtual object in a direction opposite to the viewpoint position.
(Appendix 5)
The input device according to appendix 3 or 4, wherein the predetermined amount is determined based on a distance between the viewpoint position and the virtual object.
(Appendix 6)
The superimposition processing unit
The input device according to supplementary note 3, wherein when the position of the pressing determination area is changed, the display position of the virtual object corresponding to the pressing determination area is changed according to the position of the pressing determination area.
(Appendix 7)
The virtual object is a virtual keyboard;
First data including the coordinates of the virtual key when the input is correct and the coordinates of the real object when the virtual key is pressed, the coordinates of the virtual key when the input is incorrect, and when the virtual key is pressed A storage unit that stores third data associated with second data including the coordinates of the real object in
The pressing determination unit
Additional notes 2 to 6 for performing a process of changing the position used for the pressing determination when a virtual key whose distance from the real object is within the predetermined value is a virtual key stored in the storage unit. The input device according to item.
(Appendix 8)
Detecting an erroneous input to the virtual key of the virtual keyboard, the coordinates of the virtual key when erroneously input, the coordinates of the real object when the virtual key is pressed, and the coordinates of the virtual key when re-input, The input device according to appendix 7, further comprising: a learning unit that updates the third data using the coordinates of the real object when the virtual key is pressed.
(Appendix 9)
Get an image,
Determining the display position of the virtual object to be superimposed on the image;
Detect the user's viewpoint position,
Displaying the virtual object superimposed on the image at the determined display position;
An input control method in which a computer executes a process of changing a position used for determination of pressing of the virtual object based on the detected viewpoint position and the position of the virtual object superimposed and displayed.
(Appendix 10)
Get an image,
Determining the display position of the virtual object to be superimposed on the image;
Detect the user's viewpoint position,
Displaying the virtual object superimposed on the image at the determined display position;
An input control program for causing a computer to execute a process of changing a position used for determination of pressing of the virtual object based on the detected viewpoint position and the position of the virtual object superimposed and displayed.
101、500、600 入力装置
102 制御部
103 主記憶部
104 補助記憶部
105 通信部
110 画像入力装置
111 視点・視線検出装置
112 表示装置
112 アプリケーション
201 実物体検出部
202 仮想物体位置決定部
203 視点検出部
204、503 重畳処理部
205、502 押下判定部
206、601 入力コマンド生成部
301 形状決定部
302 位置、姿勢決定部
501、603 記憶部
602 学習部
101, 500, 600 Input device 102 Control unit 103 Main storage unit 104 Auxiliary storage unit 105 Communication unit 110 Image input device 111 Viewpoint / line-of-sight detection device 112 Display device 112 Application 201 Real object detection unit 202 Virtual object position determination unit 203 Viewpoint detection Units 204 and 503 Superimposition processing units 205 and 502 Press determination unit 206 and 601 Input command generation unit 301 Shape determination unit 302 Position and orientation determination units 501 and 603 Storage unit 602 Learning unit
Claims (8)
前記画像に重畳する仮想物体の表示位置を決定する位置決定部と、
ユーザの視点位置を検出する視点検出部と、
決定された表示位置で前記仮想物体を前記画像に重畳表示する重畳処理部と、
検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する押下判定部と、
を備え、
前記実物体検出部は、
取得した画像に含まれる実物体を検出し、
前記押下判定部は、
前記実物体と重畳表示された前記仮想物体との距離を算出し、前記距離が所定値以下である場合に、前記押下判定に用いる位置の変更処理を行う入力装置。 A real object detection unit for acquiring an image;
A position determining unit that determines a display position of a virtual object to be superimposed on the image;
A viewpoint detection unit for detecting a user's viewpoint position;
A superimposition processing unit that superimposes and displays the virtual object on the image at the determined display position;
A pressing determination unit that changes a position used for pressing determination of the virtual object based on the detected viewpoint position and the position of the virtual object superimposed and displayed;
Equipped with a,
The real object detection unit is
Detect real objects contained in the acquired image,
The pressing determination unit
An input device that calculates a distance between the real object and the virtual object displayed in a superimposed manner, and performs a process of changing a position used for the pressing determination when the distance is equal to or less than a predetermined value .
前記仮想物体の押下判定に用いる領域を示す前記仮想物体の押下判定領域の位置を、前記仮想物体から前記視点位置方向に所定量変更する請求項1記載の入力装置。 The pressing determination unit
Wherein the position of pressing determining region of the virtual object that indicates the area used for pressing determining the virtual object, an input apparatus according to claim 1, wherein changing a predetermined amount in the viewpoint position direction from the virtual object.
前記仮想物体に対して押下の判定をする際に前記実物体の座標の位置を、前記仮想物体から前記視点位置とは逆方向に所定量変更する請求項1記載の入力装置。 The pressing determination unit
Wherein the position of coordinates of the actual object when the judgment of pressing against the virtual object, an input apparatus according to claim 1, wherein changing a predetermined amount in a direction opposite to the said viewpoint position from the virtual object.
前記押下判定領域の位置が変更された場合、前記押下判定領域に対応する仮想物体の表示位置を前記押下判定領域の位置に合わせて変更する請求項2記載の入力装置。 The superimposition processing unit
The input device according to claim 2 , wherein when the position of the press determination area is changed, the display position of the virtual object corresponding to the press determination area is changed according to the position of the press determination area.
正しい入力である場合の仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標を含む第1データと、誤った入力である場合の仮想キーの座標、及び該仮想キーの押下時における前記実物体の座標とを含む第2データとを関連付けた第3データを記憶する記憶部をさらに備え、
前記押下判定部は、
前記実物体との距離が前記所定値以内にある仮想キーが、前記記憶部に記憶されている仮想キーである場合に、前記押下判定に用いる位置の変更処理を行う請求項1乃至4いずれか一項に記載の入力装置。 The virtual object is a virtual keyboard;
First data including the coordinates of the virtual key when the input is correct and the coordinates of the real object when the virtual key is pressed, the coordinates of the virtual key when the input is incorrect, and when the virtual key is pressed A storage unit that stores third data associated with second data including the coordinates of the real object in
The pressing determination unit
Virtual key distance from the actual object is within the predetermined value, when a virtual key that is stored in the storage unit, according to claim 1 to 4 or performs a process of changing the location to be used for the pressing determining The input device according to one item.
取得した画像に含まれる実物体を検出し、
前記画像に重畳する仮想物体の表示位置を決定し、
ユーザの視点位置を検出し、
決定された表示位置で前記仮想物体を前記画像に重畳表示し、
前記実物体と重畳表示された前記仮想物体との距離を算出し、前記距離が所定値以下である場合に、検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する処理をコンピュータが実行する入力制御方法。 Get an image,
Detect real objects contained in the acquired image,
Determining the display position of the virtual object to be superimposed on the image;
Detect the user's viewpoint position,
Displaying the virtual object superimposed on the image at the determined display position;
A distance between the real object and the virtual object displayed in a superimposed manner is calculated, and when the distance is equal to or less than a predetermined value, based on the detected viewpoint position and the position of the virtual object displayed in a superimposed manner, An input control method in which a computer executes a process of changing a position used for determining whether or not a virtual object is pressed.
取得した画像に含まれる実物体を検出し、
前記画像に重畳する仮想物体の表示位置を決定し、
ユーザの視点位置を検出し、
決定された表示位置で前記仮想物体を前記画像に重畳表示し、
前記実物体と重畳表示された前記仮想物体との距離を算出し、前記距離が所定値以下である場合に、検出された前記視点位置と重畳表示された前記仮想物体の位置とに基づき、前記仮想物体の押下判定に用いる位置を変更する処理をコンピュータに実行させる入力制御プログラム。 Get an image,
Detect real objects contained in the acquired image,
Determining the display position of the virtual object to be superimposed on the image;
Detect the user's viewpoint position,
Displaying the virtual object superimposed on the image at the determined display position;
A distance between the real object and the virtual object displayed in a superimposed manner is calculated, and when the distance is equal to or less than a predetermined value, based on the detected viewpoint position and the position of the virtual object displayed in a superimposed manner, An input control program for causing a computer to execute a process of changing a position used for determining whether or not a virtual object is pressed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011178093A JP5765133B2 (en) | 2011-08-16 | 2011-08-16 | Input device, input control method, and input control program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011178093A JP5765133B2 (en) | 2011-08-16 | 2011-08-16 | Input device, input control method, and input control program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2013041431A JP2013041431A (en) | 2013-02-28 |
JP5765133B2 true JP5765133B2 (en) | 2015-08-19 |
Family
ID=47889765
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2011178093A Active JP5765133B2 (en) | 2011-08-16 | 2011-08-16 | Input device, input control method, and input control program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5765133B2 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6165485B2 (en) * | 2013-03-28 | 2017-07-19 | 国立大学法人埼玉大学 | AR gesture user interface system for mobile terminals |
JP2015119373A (en) * | 2013-12-19 | 2015-06-25 | ソニー株式会社 | Image processor and method, and program |
KR101550805B1 (en) | 2014-04-23 | 2015-09-07 | 상명대학교서울산학협력단 | Alternative Human-Computer interfacing method |
WO2016135908A1 (en) * | 2015-02-26 | 2016-09-01 | 日立マクセル株式会社 | Sensation presentation device, operation processing device, image display device, and sensation presentation method |
CN106484085B (en) * | 2015-08-31 | 2019-07-23 | 北京三星通信技术研究有限公司 | The method and its head-mounted display of real-world object are shown in head-mounted display |
US10168769B2 (en) | 2015-09-28 | 2019-01-01 | Nec Corporation | Input apparatus, input method, and program |
JP6350772B2 (en) * | 2016-02-25 | 2018-07-04 | 日本電気株式会社 | Information processing system, information processing apparatus, control method, and program |
US10665019B2 (en) * | 2016-03-24 | 2020-05-26 | Qualcomm Incorporated | Spatial relationships for integration of visual images of physical environment into virtual reality |
CA3045664A1 (en) | 2016-12-05 | 2018-06-14 | Magic Leap, Inc. | Virtual user input controls in a mixed reality environment |
AU2018308418A1 (en) | 2017-07-26 | 2020-01-16 | Magic Leap, Inc. | Training a neural network with representations of user interface devices |
JP2022115022A (en) * | 2021-01-27 | 2022-08-08 | 藤沼 伊代子 | air input system |
US12158982B2 (en) * | 2022-09-07 | 2024-12-03 | Snap Inc. | Selecting AR buttons on a hand |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040095311A1 (en) * | 2002-11-19 | 2004-05-20 | Motorola, Inc. | Body-centric virtual interactive apparatus and method |
JP2005267424A (en) * | 2004-03-19 | 2005-09-29 | Fujitsu Ltd | Data input device, information processing device, data input method, and data input program |
JP2006127488A (en) * | 2004-09-29 | 2006-05-18 | Toshiba Corp | Input device, computer device, information processing method, and information processing program |
JP4649933B2 (en) * | 2004-09-30 | 2011-03-16 | マツダ株式会社 | Vehicle information display device |
JP2006195665A (en) * | 2005-01-12 | 2006-07-27 | Sharp Corp | Information processing apparatus |
-
2011
- 2011-08-16 JP JP2011178093A patent/JP5765133B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013041431A (en) | 2013-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5765133B2 (en) | Input device, input control method, and input control program | |
TWI486629B (en) | Optical-see-through head mounted display system and interactive operation | |
US10712901B2 (en) | Gesture-based content sharing in artificial reality environments | |
JP6597235B2 (en) | Image processing apparatus, image processing method, and image processing program | |
JP5205187B2 (en) | Input system and input method | |
KR102517425B1 (en) | Systems and methods of direct pointing detection for interaction with a digital device | |
WO2019142560A1 (en) | Information processing device for guiding gaze | |
TWI525477B (en) | System and method for receiving user input and program storage medium thereof | |
US20150145762A1 (en) | Position-of-interest detection device, position-of-interest detection method, and position-of-interest detection program | |
KR101892735B1 (en) | Apparatus and Method for Intuitive Interaction | |
CN104508600A (en) | Three-dimensional user-interface device, and three-dimensional operation method | |
JP6524589B2 (en) | Click operation detection device, method and program | |
JP5766957B2 (en) | Gesture input device | |
JP6739847B2 (en) | Image display control device and image display control program | |
KR101396488B1 (en) | Apparatus for signal input and method thereof | |
JP2017102598A (en) | Recognition device, recognition method, and recognition program | |
KR100692526B1 (en) | Gesture Recognition Device and System for Automatic System Control | |
US20240118751A1 (en) | Information processing device and information processing method | |
JP7392512B2 (en) | Information processing device, information processing method, program, and information processing system | |
CN117784926A (en) | Control device, control method, and computer-readable storage medium | |
JP7616216B2 (en) | Information processing device, information processing method, and program | |
Ki et al. | 3D gaze estimation and interaction | |
JP5068711B2 (en) | Object shape recognition system and object shape recognition method | |
CN104679270B (en) | System and method for receiving user input, program storage medium and program therefor | |
JP2024032409A (en) | Information processing apparatus and hmd |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20140404 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20150303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150422 |
|
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: 20150519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150601 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5765133 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |