JP4328282B2 - Numerical input method and apparatus, and numerical input program - Google Patents
Numerical input method and apparatus, and numerical input program Download PDFInfo
- Publication number
- JP4328282B2 JP4328282B2 JP2004297060A JP2004297060A JP4328282B2 JP 4328282 B2 JP4328282 B2 JP 4328282B2 JP 2004297060 A JP2004297060 A JP 2004297060A JP 2004297060 A JP2004297060 A JP 2004297060A JP 4328282 B2 JP4328282 B2 JP 4328282B2
- Authority
- JP
- Japan
- Prior art keywords
- visual code
- positional relationship
- numerical value
- numerical
- imaging means
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Telephone Function (AREA)
Description
本発明は、所定の形状を持つビジュアルコードとカメラの位置関係を算出し、該位置関係を数値に変換し、入力する数値入力方法及び装置並びに数値入力プログラム関するものである。 The present invention relates to a numerical value input method and apparatus and a numerical value input program for calculating a positional relationship between a visual code having a predetermined shape and a camera, converting the positional relationship into a numerical value, and inputting the numerical value.
従来よりPDA、携帯電話等の小型携帯情報端末には、ハードウェアの制限がある。特に今日普及している携帯電話は、表示のための液晶ディスプレイは小さく、多くの情報を同時に表示することは難しい。また、携帯電話には数字キーや各機能を持つ小さなボタンが最小限に配置され、ユーザはこれらの小さなボタンを利用しなければならない。
上記特許文献1などでは、PDAでは片手でボタン操作が行い難い問題の解決や、ユーザが端末を持った方向に書類の向きを合わせた自動提示システム構築を目的とし、端末に姿勢検出手段を付加し、端末を動かすことで、情報を入力あるいは提示する技術が開示されている。
In the above-mentioned
しかし、通常、小型携帯情報端末上で複数の数値を設定する場合、数値設定の対象を画面で切り替えながら、煩雑なボタン操作でそれぞれの数値を入力する情報端末がほとんどであり、小型携帯情報端末の操作が複雑になりやすい。このため、小型携帯情報端末では、複数のコンテンツが連携したアプリケーションを実現することが難しい。 However, usually, when setting a plurality of numerical values on a small portable information terminal, most information terminals input respective numerical values by complicated button operations while switching the numerical setting target on the screen. The operation tends to be complicated. For this reason, it is difficult for a small portable information terminal to realize an application in which a plurality of contents are linked.
例えば、小型携帯情報端末を用いて、地図を表示させながら、その地図上の施設を指定し、さらに時刻を指定して該施設を予約するといったアプリケーションは、画面の切り替えや、煩雑な数値入力を何回も行わねばならないため、特に操作が煩雑になりやすいという問題点がある。 For example, an application in which a small mobile information terminal is used to designate a facility on the map while displaying a map, and further designates a time and reserves the facility is used for screen switching and complicated numerical input. Since the operation must be performed many times, there is a problem that the operation is particularly complicated.
本発明は、上記の事情に鑑みてなされたもので、紙面に付与したビジュアルコードを画像処理によって検出し、端末とビジュアルコードの位置関係を算出し、さらに数値へ変換し、端末へ該数値を入力したり、既存の多くの端末が備えているデジタルカメラを使用するため、姿勢検出のためのデバイスの追加が不要であるという利点があり、上記従来技術とは目的も姿勢や位置の検出手法も異なる数値入力方法及び装置並びに数値入力プログラムを提供することを目的とする。 The present invention has been made in view of the above circumstances. The visual code assigned to the paper surface is detected by image processing, the positional relationship between the terminal and the visual code is calculated, further converted into a numerical value, and the numerical value is transmitted to the terminal. There is an advantage that there is no need to add a device for posture detection because it uses a digital camera that is input or used by many existing terminals, and the purpose of the above conventional technology is to detect posture and position. It is another object of the present invention to provide a different numerical input method and apparatus and a numerical input program.
上記目的を達成するために、本発明は、所定の形状を持つビジュアルコードと携帯機器に具備された撮像手段を用いた数値入力方法であって、ビジュアルコードの隅にあるマーカに基づき、撮像手段による映像中のビジュアルコードの領域を検出するステップと、ビジュアルコードの領域内にあるカラーバーコードに基づき、撮像手段による映像中のビジュアルコードの識別番号を検出するステップと、撮像手段による映像中のビジュアルコードを画像処理し、前記識別番号で規定される位置関係により、ビジュアルコードと撮像手段の位置関係を算出するステップと、前記位置関係を示す位置関係ベクトルを所定の関数に代入して数値に変換するステップと、前記数値を前記識別番号で規定される入力対象の入力値とするステップと、を持つことを特徴とする。
In order to achieve the above object, the present invention provides a numerical input method using a visual code having a predetermined shape and an imaging means provided in a portable device , the imaging means based on a marker at a corner of the visual code. A step of detecting a visual code area in the video by the step of detecting an identification number of the visual code in the video by the imaging means based on the color barcode in the visual code area; The visual code is image-processed, and the positional relationship between the visual code and the imaging means is calculated based on the positional relationship defined by the identification number, and the positional relationship vector indicating the positional relationship is substituted into a predetermined function to obtain a numerical value. and converting the steps of the input values of the input object which is defined the number in the identification number, the lifting It is characterized in.
あるいは、前記位置関係ベクトルは、撮像手段の撮影方向に対するビジュアルコードの傾きを示すパラメータ、または、撮像手段とビジュアルコードの間の距離を示すパラメータ、または、撮像手段の位置からビジュアルコードの位置への方向を示すパラメータのひとつ、あるいはいずれかを組み合わせたステップであることを特徴とする。 Alternatively, the positional relationship vector is a parameter indicating the inclination of the visual code with respect to the shooting direction of the imaging unit, a parameter indicating the distance between the imaging unit and the visual code, or the position of the imaging unit to the position of the visual code. It is a step in which one or a combination of parameters indicating the direction is combined.
あるいは、前記数値へ変換するステップが、前記位置関係ベクトルと一定時間前に算出された位置関係ベクトルとを、所定の関数に代入し、数値へ変換することを特徴とする。 Alternatively, the step of converting into a numerical value may substitute the positional relationship vector and the positional relationship vector calculated a predetermined time into a predetermined function and convert it into a numerical value.
あるいは、前記算出された数値あるいは位置関係ベクトルを、表示ステップにより文字や図形で表示することを特徴とする。 Alternatively, the calculated numerical value or positional relationship vector is displayed as a character or a figure in a display step.
また、所定の形状を持つビジュアルコードと携帯機器に具備された撮像手段を用いた数値入力装置であって、ビジュアルコードの隅にあるマーカに基づき、撮像手段による映像中のビジュアルコードの領域を検出する手段と、ビジュアルコードの領域内にあるカラーバーコードに基づき、撮像手段による映像中のビジュアルコードの識別番号を検出する手段と、撮像手段による映像中のビジュアルコードを画像処理し、前記識別番号で規定される位置関係により、ビジュアルコードと撮像手段の位置関係を算出する手段と、前記位置関係を示す位置関係ベクトルを所定の関数に代入して数値に変換する手段と、前記数値を前記識別番号で規定される入力対象の入力値とする手段と、を持つことを特徴とする。
Also, a numerical input device using a visual code having a predetermined shape and an imaging means provided in a portable device, and detecting a region of the visual code in the video by the imaging means based on a marker at a corner of the visual code Means for detecting an identification number of the visual code in the video by the imaging means based on the color barcode in the area of the visual code, image processing the visual code in the video by the imaging means, and the identification number the positional relationship in defined, means for calculating a positional relationship between the visual code image pickup means, and means for converting numbers into a positional relation vector indicating the positional relationship between a predetermined function, said identifying said numerical And means for setting an input value of an input target specified by a number .
あるいは、前記位置関係ベクトルは、撮像手段の撮影方向に対するビジュアルコードの傾きを示すパラメータ、または、撮像手段とビジュアルコードの間の距離を示すパラメータ、または、撮像手段の位置からビジュアルコードの位置への方向を示すパラメータのひとつ、あるいはいずれかを組み合わせた手段であることを特徴とする。 Alternatively, the positional relationship vector is a parameter indicating the inclination of the visual code with respect to the shooting direction of the imaging unit, a parameter indicating the distance between the imaging unit and the visual code, or the position of the imaging unit to the position of the visual code. One of the parameters indicating the direction or a combination of any of the parameters is characterized.
あるいは、前記数値へ変換する手段が、前記位置関係ベクトルと一定時間前に算出された位置関係ベクトルとを、所定の関数に代入し、数値へ変換することを特徴とする。 Alternatively, the means for converting to a numerical value substitutes the positional relationship vector and the positional relationship vector calculated before a predetermined time into a predetermined function, and converts it into a numerical value.
あるいは、前記算出された数値あるいは位置関係ベクトルを、表示手段により文字や図形で表示することを特徴とする。 Alternatively, the calculated numerical value or positional relationship vector is displayed as a character or a figure by a display means.
さらに、数値入力方法におけるステップを、コンピュータに実行させるためのプログラムとしたこと特徴とする。 Further, the step in the numerical value input method is a program for causing a computer to execute.
以上述べたように、本発明によれば、ビジュアルコードとの位置関係を利用して、数値の入力を行い、さらにビジュアルコードを付与した紙面等に印刷された情報を閲覧しながら操作することで、従来の携帯電話端末では、困難であったコンテンツを連携させたアプリケーションの実装を簡易に行うことができる。 As described above, according to the present invention, a numerical value is input using the positional relationship with the visual code, and further, the operation is performed while browsing the information printed on the paper or the like to which the visual code is added. In the conventional mobile phone terminal, it is possible to easily implement an application in which difficult contents are linked.
また、本発明によれば、音量を実際に携帯電話端末を回すことで調整でき、ユーザは、従来のボタンによる操作よりも連続量を直感的に入力することができ、また地図上で施設を指定し、さらに予約をするといった前記システムを容易に構築することができる。 In addition, according to the present invention, the volume can be adjusted by actually turning the mobile phone terminal, and the user can intuitively input a continuous amount rather than the operation using a conventional button, and the facility can be displayed on the map. It is possible to easily construct the system for specifying and making a reservation.
以下本発明の実施の形態を図面に基づいて説明する。本実施の形態で以下に説明する図1のシステムは、携帯情報端末である携帯電話端末1と紙面に印刷されたビジュアルコード20(図2)から構成される。本システムでは、ユーザが、携帯電話端末1の撮像手段であるカメラで、ビジュアルコード20を撮像し、携帯電話端末1を所定の動きで動かすことで、携帯電話端末1に数値を入力するものである。
[情報端末の構成]
次に本実施の形態で使用する携帯電話端末1について説明する。図1において、携帯電話端末1は、データを保存する内蔵メモリ2、インターネットを利用する無線通信手段3、他の電子機器と通信するための赤外線通信手段4、撮像手段であるデジタルカメラ5、入力手段である操作ボタン6、画像処理等の情報処理を行うCPU7、表示手段である液晶モニタ8を備える。
Embodiments of the present invention will be described below with reference to the drawings. The system of FIG. 1 described below in the present embodiment includes a
[Configuration of information terminal]
Next, the
CPU7は、画像処理等の情報処理を行なうために、識別番号取得手段7a、ビジュアルマーカ検出手段7b、ビジュアルコード情報取得手段7c及び位置関係算出手段7dの機能を備えている。
The
なお、図1において、上記の構成の他に、外部データベース手段9を有し、この外部データベース手段9には、ビジュアルコード情報10から構成されるビジュアルコード情報データベース11などが蓄積されている。
In FIG. 1, in addition to the above-described configuration, an external database unit 9 is provided, and the external database unit 9 stores a visual code information database 11 including
[ビジュアルコード20の構成]
本実施の形態で使用するビジュアルコード20について図2、図3により説明する。ビジュアルコード20は、大きさと色(図では濃淡で表示)の異なる2重の同心円から構成されるビジュアルマーカー21と、カラーバーコード22から構成される。
[Configuration of Visual Code 20]
The
ビジュアルコード20は、紙面に印刷され、ユーザに提供される。ビジュアルコード20は、正方形であり、各頂点にビジュアルマーカー21が配置され、所定の頂点の間に1つ以上のカラーバーコード22が配置される。
The
該ビジュアルコード20は、内部にアイコンなどのユーザの手助けとなる文字や図形を配置することができる。以下の実施の形態で用いるビジュアルコード20のX,Y,Z軸(51,52,53)の構成は、図6a,bに示すように設定される。以下の3次元の座標系はすべて左手系とする。
The
ビジュアルマーカー21は2つの円から構成されている。大小の円の半径の比は、1:2となっている。2つの円は、同心円であり、それらの中心が一致するように配置されている。該2つの円は、それぞれ異なる色相を持つ色で塗りつぶされている。
The
本実施の形態では、塗りつぶしに青色、赤色および黄色の固定の3色を用いている。このマーカーに用いる色の組み合わせを用いて、ビジュアルマーカー21を識別することができる。本実施の形態では、ビジュアルマーカー21の頂点番号として、これを利用する。
In the present embodiment, three colors of blue, red and yellow are used for filling. The
本実施の形態における色の組み合わせと頂点番号の対応は、図4に示すようになっている。例えば、本実施の形態で用いる正方形のビジュアルコード20の場合、正対したビジュアルマーカー21の各頂点に、図3に示すように、左上、右上、右下、左下の順に頂点番号:1〜:4が割り振られる。
The correspondence between color combinations and vertex numbers in the present embodiment is as shown in FIG. For example, in the case of the square
ビジュアルマーカー21に配置されるカラーバーコード22は、塗りつぶしに青色、赤色および黄色の固定の3色を用いる。バーコードの成分は、図5に示すように、すべて隣合うブロック40が異なる色(図5では濃淡で示している)になるように設定される。
The
以下にビジュアルコード20の検出、位置関係の算出、数値への変換の各処理について具体的に説明する。
[ビジュアルコード20の検出]
次に本実施の形態で使用するビジュアルコード20のカメラ映像からの検出方法、識別番号の抽出方法について説明するに当たり、まず、ビジュアルマーカー21のカメラ映像から該マーカー21を検出する処理について説明する。
Below, each process of the detection of the
[Detection of visual code 20]
Next, in describing the detection method of the
CPU7は、はじめに、図7に示すカメラ映像60から前記固定の3色以外の色相値を持つ画素の値を黒色に置き換える。次にカメラ映像を左上隅の点から右方向に調査する。
First, the
このとき、図4に従って、検出した領域の頂点番号も同時に検出できる。例えば、赤色、青色、黄色と色が変化している領域が検出された場合、該領域は外側が赤色、内側が青色の円で構成されたビジュアルマーカー21の一部であり、頂点番号は図4から「6」と検出できる。
At this time, according to FIG. 4, the vertex number of the detected area can also be detected at the same time. For example, when an area in which the color is changed to red, blue, and yellow is detected, the area is a part of the
CPU7は、ビジュアルマーカー21の一部である領域が検出されると、該領域に検出した頂点番号を書き込む。カメラ映像の1行の調査が終了すると下の行へ移動し、同様の調査を行う。
When the area that is a part of the
また同様の処理を左上の隅の点から下方向へも行う。右方向と下方向の調査のいずれにも検出され、さらに上書きされた頂点番号が両方向の調査で一致する画素を、ビジュアルマーカー21を構成する領域であるとし、該領域の重心を検出し、ビジュアルマーカー21のカメラ映像中の位置と頂点番号を検出する(図7の70)。
The same processing is performed downward from the upper left corner point. A pixel that is detected in both the right direction and the downward direction and the vertex number that has been overwritten and coincides in both directions is assumed to be an area constituting the
最後にCPU7は、頂点番号順にビジュアルコード20の重心を直線で結び、該直線で囲まれた領域をカメラ映像中のビジュアルコード領域81(図7)として抽出することができる。
Finally, the
CPU7は、前記処理で得られたカメラ映像中の頂点番号:1と頂点番号:2のマーカーの頂点座標を取得し、頂点番号:1の頂点から頂点番号:2の頂点への直線上に見られるブロック毎の色の変化を検出する。
The
図5に示すように、隣のブロック40との色相差が120゜であれば、ビットが「1」であり、色相差が−120゜であれば、ビットが「0」であるという手法でブロックの色の変化の様子からビット情報を取り出す。 As shown in FIG. 5, when the hue difference with the adjacent block 40 is 120 °, the bit is “1”, and when the hue difference is −120 °, the bit is “0”. Bit information is extracted from the color change of the block.
隣り合うブロック40に同色を許し、バーコードの所定の位置から情報を読み取るようにバーコードを構成した場合、射影変換によってバーコードがカメラ映像中で歪んでしまった場合、その位置も歪みの影響を受け、読み取ることが困難である。 When the same color is allowed to the adjacent block 40 and the barcode is configured to read information from a predetermined position of the barcode, when the barcode is distorted in the camera image by projective transformation, the position is also affected by the distortion. It is difficult to read and read.
しかし、色が常に異なるようにブロックを配置し、その色の変化を読み取るように構成すれば、射影変換で歪んで投影されたバーコードでも的確に読み取ることができる。
[位置関係の算出]
次に上記の処理によって得られたカメラ映像中の図7に示したビジュアルコード領域81の形状、及び頂点座標を用いた位置関係の算出方法について図8により説明する。
[カメラパラメータ行列]
初めにすべての位置関係の算出に用いることができるカメラパラメータ行列について説明する。図8aに示すように、ビジュアルコード20が1つの平面上にあることを利用して、カメラ映像上の点と実世界の紙面の座標の幾何的関係を算出することができる。
However, if the blocks are arranged so that the colors are always different and the change in the color is read, it is possible to accurately read even a barcode that is distorted and projected by projective transformation.
[Calculation of positional relationship]
Next, a method of calculating the positional relationship using the shape of the
[Camera parameter matrix]
First, a camera parameter matrix that can be used for calculation of all positional relationships will be described. As shown in FIG. 8a, it is possible to calculate the geometric relationship between the points on the camera image and the coordinates of the real world page by using the
この幾何的関係を利用し、カメラ映像中のビジュアルコード20(図8b)を正対から見た元の実世界の平面に正規化(図8a)することができる。具体的には、画像中のビジュアルコード20の4隅の点と実世界のビジュアルコードの4隅の点とを対応付け、カメラパラメータ行列を次式(1)により算出する。
Using this geometric relationship, the visual code 20 (FIG. 8b) in the camera image can be normalized (FIG. 8a) to the original real world plane viewed from the front. Specifically, the four corner points of the
このカメラパラメータ行列を用いることで、カメラ映像中の2次元の座標から実世界の3次元の座標を算出することが可能である。[参考文献、暦本純一、2次元マトリックスコードを利用した拡張現実感の構成手法、WISS’96]
該参考文献に記述の手法を用いて、図9に示すようにカメラ座標系におけるビジュアルコード20の法線ベクトル、およびビジュアルコード20の2つの直交する対角線のベクトル、また、次式(2)によりカメラ座標系におけるビジュアルコード20の重心の位置ベクトルを検出することができる。この4つのベクトルを用いて、ビジュアルコード20に対するカメラの姿勢および位置を算出することができ、行列Cを得ることができる。
By using this camera parameter matrix, it is possible to calculate three-dimensional coordinates in the real world from two-dimensional coordinates in the camera video. [Reference, Junichi Kyokumoto, Augmented Reality Construction Method Using Two-Dimensional Matrix Code, WISS '96]
Using the method described in the reference, as shown in FIG. 9, the normal vector of the
[Z軸周りの傾き]
カメラの撮影方向に対するビジュアルコード20のZ軸周りの傾きの算出方法について説明する。
[行列Cを用いた回転角度の算出]
ビジュアルコード20の中心を通り、Z軸周りのみの回転である場合、行列Cは、次式(3)に示すものとなる。この行列Cから傾きを示す、回転角度φを算出することができる。
[Inclination around the Z axis]
A method for calculating the inclination of the
[Calculation of rotation angle using matrix C]
When passing through the center of the
[重心から頂点へのベクトルを用いた回転角度の算出]
上述のカメラパラメータ行列を用いた手法は、複雑なため計算コストが高くなる。そこで、より計算コストが低い手法について以下に説明する。
[Calculation of rotation angle using vector from center of gravity to vertex]
Since the method using the camera parameter matrix described above is complicated, the calculation cost is high. Therefore, a method with a lower calculation cost will be described below.
図10aに示すように、カメラ映像から得られた頂点番号:1の頂点の座標、ビジュアルコード20の重心の座標から、この2点を結ぶベクトルAを算出する。ビジュアルコード20がカメラに正対している場合、ベクトルAが画像中のY軸と成す角は、45゜である(110)。
As shown in FIG. 10 a, a vector A connecting these two points is calculated from the coordinates of the vertex of
カメラ映像から得られたベクトルAが、Y軸と成す角度を算出し、そこから45゜引くことによって、図10bに示すように、ビジュアルコードのZ軸周りの回転角度を得ることができる(111)。
[X軸周りの傾き]
カメラの撮影方向に対するビジュアルコード20のX軸周りの傾きの算出方法について図11a,bにより説明する。
[辺の比で傾きを算出]
まず、図11aにより、ビジュアルコード20の1組の対辺の比を用いて、傾きを算出する。この手法は、厳密な回転角度を検出することはできないが、回転方向と回転角度の大まかな大きさを容易に検出することができる。
The angle formed by the vector A obtained from the camera image with respect to the Y axis is calculated, and by subtracting 45 ° therefrom, the rotation angle around the Z axis of the visual code can be obtained as shown in FIG. ).
[Tilt around X axis]
A method for calculating the inclination of the
[Calculate slope by side ratio]
First, according to FIG. 11 a, the inclination is calculated using the ratio of the pair of opposite sides of the
X軸周りの傾きを算出する場合について説明する。頂点番号:1の頂点から頂点番号:2の頂点へのベクトルの長さL1と、頂点番号:3の頂点から頂点番号:4の頂点へのベクトルの長さL3の比を算出する(図11aの120)。 A case where the inclination around the X axis is calculated will be described. The ratio of the vector length L1 from the vertex of vertex number: 1 to the vertex of vertex number: 2 and the length of vector L3 from the vertex of vertex number: 3 to the vertex of vertex number: 4 is calculated (FIG. 11a). 120).
カメラ映像中では、X軸の周りにψ(:−180<ψ<180)だけ回転している。ψ>0のとき、L1>L3となり、ψ<0のときL1<L3となる。このことから、L1とL3の比を算出することで、X軸周りにどの程度回転しているかを算出することができる。L1/L3の値が大きくなれば、ψの値が大きくなり,L1/L3の値が小さくなれば、ψの値は小さくなる。
[行列Cを用いた回転角度の算出]
Z軸周りの傾きと同様に行列Cを用いて、厳密にX軸周りの回転角度を算出することができる。X軸周りのみの回転である場合、行列Cは、次式(4)に示すものとなり、ψがその回転角度として算出される。
In the camera image, it is rotated around the X axis by ψ (: −180 <ψ <180). L1> L3 when ψ> 0, and L1 <L3 when ψ <0. From this, by calculating the ratio of L1 and L3, it is possible to calculate the degree of rotation around the X axis. The value of ψ increases as the value of L1 / L3 increases, and the value of ψ decreases as the value of L1 / L3 decreases.
[Calculation of rotation angle using matrix C]
Similar to the inclination around the Z axis, the rotation angle around the X axis can be strictly calculated using the matrix C. When the rotation is only about the X axis, the matrix C is as shown in the following equation (4), and ψ is calculated as the rotation angle.
[Y軸周りの傾き]
次に、図11bによりカメラの撮影方向に対するビジュアルコード20のY軸周りの傾きの算出方法について説明する。
[辺の比で傾きを算出]
前記X軸周りの回転角度算出手法と同様に、ビジュアルコード20の1組の対辺の比を用いて、傾きを算出する。Y軸周りの回転角度を算出する場合、頂点番号:2の頂点から頂点番号:3の頂点へのベクトルの長さL2と、頂点番号:4の頂点から頂点番号:1の頂点へのベクトルの長さL4の比を算出する(図11bの121)。
[Tilt around Y axis]
Next, a method for calculating the inclination of the
[Calculate slope by side ratio]
Similar to the rotation angle calculation method around the X axis, the inclination is calculated using the ratio of a pair of opposite sides of the
カメラ映像中では、Y軸の周りにθ(:−180<θ<180)だけ回転している。θ>0のとき、L2>L4となり、θ<0のときL2<L4となる。このことから、L2とL4の比を算出することで、Y軸周りにどの程度回転しているかを算出することができる。L2/L4の値が大きくなれば、θの値が大きくなり、L2/L4の値が小さくなれば、θの値は小さくなる。
[行列Cを用いた回転角度の算出]
また、行列Cを用いて、厳密にY軸周りの回転角度を算出することができる。このとき、Y軸周りにのみ回転している場合の行列Cは、次式(5)に示すものとなり、θがその回転角度として算出される。
In the camera image, it is rotated about the Y axis by θ (: −180 <θ <180). When θ> 0, L2> L4, and when θ <0, L2 <L4. From this, by calculating the ratio of L2 and L4, it is possible to calculate the degree of rotation about the Y axis. The value of θ increases as the value of L2 / L4 increases, and the value of θ decreases as the value of L2 / L4 decreases.
[Calculation of rotation angle using matrix C]
In addition, the rotation angle around the Y axis can be strictly calculated using the matrix C. At this time, the matrix C in the case of rotating only around the Y axis is represented by the following equation (5), and θ is calculated as the rotation angle.
[カメラの位置からビジュアルコードの位置へのベクトル]
カメラの位置からビジュアルコード20の位置へのベクトルの算出方法について説明する。
[行列Cを用いた手法]
行列Cのetがカメラの位置からビジュアルコード20の位置へのベクトルとなる(図9と数2)。
[距離]
カメラの位置からビジュアルコード20の位置の間の距離の算出方法について説明する。
[行列Cを用いた手法]
前記ベクトルetの絶対値を求めることで、端末とビジュアルコード20の距離を算出することができる(図9と数2)。
[面積による距離の算出]
図12において、カメラ映像中のビジュアルコード領域の面積134は、端末がビジュアルコード20に正対しているとき、端末とビジュアルコード20の距離の2乗に比例する。ビジュアルコード20が検出できる状態でのビジュアルコード領域の面積134の最大値とそのときの前記距離、面積の最小値とそのときの距離を事前に算出する。この最大値と最小値の間で面積に比例して距離が変化するものとして、面積から距離を求める関数を作成する。この関数を元に面積から距離を算出することができる。
[周の長さを用いた距離の算出]
前記ビジュアルコード領域の面積134の算出は、ラスタスキャンを行う必要があるため、計算コストが大きくなりやすい。そこで、隣り合う頂点間の距離の和から算出できる周の長さ130を距離の検出に用いる。周の長さ130は、端末とビジュアルコード20の距離に比例する。
[Vector from camera position to visual code position]
A method for calculating a vector from the camera position to the position of the
[Method using matrix C]
E t of matrix C is the vector from the position of the camera to the position of the visual code 20 (FIG. 9 to the number 2).
[distance]
A method for calculating the distance between the position of the camera and the position of the
[Method using matrix C]
By obtaining the absolute value of the vector e t, it is possible to calculate the distance of the terminal and the visual code 20 (FIG. 9 to the number 2).
[Calculation of distance by area]
In FIG. 12, the area 134 of the visual code area in the camera video is proportional to the square of the distance between the terminal and the
[Calculation of distance using circumference length]
The calculation of the area 134 of the visual code area requires a raster scan, and thus the calculation cost tends to increase. Therefore, the circumference length 130 that can be calculated from the sum of the distances between adjacent vertices is used for distance detection. The circumference 130 is proportional to the distance between the terminal and the
ビジュアルコード20が検出できる状態でのビジュアルコード領域の周の長さの最大値とそのときの前記距離、該周の長さの最小値とそのときの距離を事前に算出する。この最大値と最小値の間で距離が線形的に変化するものとして、周の長さから距離を求める関数を作成する。この関数を元に周の長さから距離を算出することができる。
[対角線による距離の算出]
図12において、対角線の長さ131も、前記ビジュアルコード領域の周の長さ134と同様に端末とビジュアルコード20の距離に比例する。対角線の長さ131を利用して、端末とビジュアルコード20の距離を算出することもできる。
The maximum value of the circumference length of the visual code area in a state where the
[Distance calculation using diagonal lines]
In FIG. 12, the length 131 of the diagonal line is also proportional to the distance between the terminal and the
ビジュアルコード20が検出できる状態でのビジュアルコード領域の対角線の長さの最大値とそのときの前記距離、該対角線の長さの最小値とそのときの距離を事前に算出する。この最大値と最小値の間で距離が線形的に変化するものとして、対角線の長さから距離を求める関数を作成する。この関数を元に対角線の長さから距離を算出することができる。
[外接長方形による距離の算出]
図12において、外接長方形132の面積は前記領域の面積、外接長方形の辺の長さは前記領域の対角線や周の長さと同様に端末とビジュアルコード20の距離の2乗、あるいは距離に比例する。これら辺の長さ、面積を利用して、端末とビジュアルコード20の距離を算出することもできる。
The maximum value of the diagonal length of the visual code area in a state where the
[Calculation of distance by circumscribed rectangle]
In FIG. 12, the area of the circumscribed rectangle 132 is the area of the region, and the length of the side of the circumscribed rectangle is proportional to the square of the distance between the terminal and the
外接長方形132は、カメラ映像中のビジュアルコード領域の中で、もっともXおよびY座標が小さい値から構成される点と、もっともXおよびY座標が大きい値から構成される点の2点を対角点とする長方形である。 The circumscribing rectangle 132 is a diagonal of two points: a point composed of the smallest X and Y coordinates and a point composed of the largest X and Y coordinates in the visual code area in the camera video. A rectangle with dots.
デジタルカメラに正対したビジュアルコード20がその画角に収まり、ビジュアルコード20が検出できる状態でのビジュアルコード領域の辺の長さあるいは面積の最大値とそのときの前記距離、辺の長さあるいは面積の最小値とそのときの距離を事前に算出する。
When the
この最大値と最小値の間で距離が線形的に変化するものとして、外接長方形132の辺の長さあるいは面積から距離を求める関数を作成する。この関数を元に外接長方形132の辺の長さあるいは面積から距離を算出することができる。
[X−Y平面上でのビジュアルコードの位置とカメラの位置のズレ]
カメラの位置からビジュアルコード20の位置へのベクトルのX−Y平面上での成分の算出方法について説明する。
[行列Cを用いた手法]
前記ベクトルetの(x,y)成分を算出する(図9、数2)。
[領域の重心とカメラ画角の中心のズレ]
図12において、カメラ映像の中心と該映像中のビジュアルコード領域の重心133の差分ベクトルを算出することで、前記カメラの位置からビジュアルコード20の位置へのベクトルのX−Y平面上での成分を算出することができる。
[数値への変換]
次に、位置関係を数値に変換する方法について説明する。
[1次元の位置関係ベクトルから1次元の数値]
位置関係ベクトルがひとつのパラメータからなる場合、変換は、yを数値、xを位置関係と定義すると、y=f(x)で表すことができる。以下にこの関数f(x)で行う変換手法について具体的に説明する。
[最大最小の対応付け・1次関数・反対バージョン]
数値入力の対象が値域を持つ場合、位置関係の最大値と最小値を、入力対象の最大値と最小値に対応づけ、位置関係から数値を算出できる1次関数を作成することができる。ビジュアルコード20を検出できる状態での前記位置関係の最大・最小値を算出し、その値域を事前に算出し、該1次関数を前記f(x)に用いる。算出した距離の最大値が100で、最小値が20であり、数値入力の対象の値域が0〜127であった場合、f(x)=127*(x/80−1/4)となる。
Assuming that the distance linearly changes between the maximum value and the minimum value, a function for obtaining the distance from the length or area of the side of the circumscribed rectangle 132 is created. Based on this function, the distance can be calculated from the length or area of the side of the circumscribed rectangle 132.
[Deviation between the position of the visual code on the XY plane and the position of the camera]
A method for calculating the component on the XY plane of the vector from the camera position to the position of the
[Method using matrix C]
Of the vector e t (x, y) to calculate the components (FIG. 9, the number 2).
[Displacement between the center of gravity of the area and the center of the camera angle of view]
In FIG. 12, by calculating the difference vector between the center of the camera image and the center of gravity 133 of the visual code area in the image, the component on the XY plane of the vector from the camera position to the position of the
[Conversion to numbers]
Next, a method for converting the positional relationship into a numerical value will be described.
[One-dimensional numerical value from one-dimensional positional relation vector]
When the positional relationship vector consists of one parameter, the transformation can be expressed as y = f (x), where y is defined as a numerical value and x is defined as a positional relationship. Hereinafter, the conversion method performed by the function f (x) will be specifically described.
[Maximum / minimum mapping / linear function / opposite version]
When the numerical input target has a range, it is possible to create a linear function capable of calculating a numerical value from the positional relationship by associating the maximum value and the minimum value of the positional relationship with the maximum value and the minimum value of the input target. The maximum and minimum values of the positional relationship in a state where the
この1次関数を用いて、位置関係を数値に変換することができる。また位置関係の最大値を数値入力対象の最小値に、位置関係の最小値を数値入力対象の最大値に対応づけた1次関数を同様に作成して、変換することも可能である。
[最大最小の対応付け・n次関数・反対バージョン]
前記f(x)をn次多項式に拡張し、位置関係を数値に変換することも可能である。
[対数・指数関数]
前記f(x)に対数関数、指数関数を用いることも可能である。例えば、距離を位置関係として使用する場合に、近いほど微妙な位置関係の変化を変換しやすく、遠いほど大まかに位置関係を数値に変換するといった変換を行うことができる。
[ガウス関数による離散的操作]
前記f(x)にガウス関数を用いることも可能である。ガウス関数はy=[x]で表され、それを超えない整数の値を返す。例えば、[1.45]=1となり、[−2.1]=−3となる。これを位置関係からの数値への変換に用いることで、連続量の位置関係を離散的なメニューの選択などに容易に変換することができる。
Using this linear function, the positional relationship can be converted into a numerical value. It is also possible to create and convert a linear function in which the maximum value of the positional relationship is associated with the minimum value of the numerical input target and the minimum value of the positional relationship is associated with the maximum value of the numerical input target.
[Maximum and minimum correspondence, n-order function, opposite version]
It is also possible to extend the f (x) to an nth order polynomial and convert the positional relationship into a numerical value.
[Logarithm / exponential function]
It is also possible to use a logarithmic function or an exponential function for the f (x). For example, when the distance is used as the positional relationship, a subtle change in the positional relationship can be easily converted as it is closer, and the positional relationship can be roughly converted into a numerical value as it is farther away.
[Discrete operation by Gaussian function]
It is also possible to use a Gaussian function for f (x). The Gaussian function is represented by y = [x] and returns an integer value not exceeding it. For example, [1.45] = 1 and [−2.1] = − 3. By using this for the conversion from the positional relationship to the numerical value, the continuous amount of the positional relationship can be easily converted to discrete menu selection or the like.
y=n*[x](nは任意の実数)。この式のようにガウス関数に実数を乗算することで、1つのメニュー項目を移動するときに必要な位置関係の量を調節することができる。
[閾値を用いた離散的操作]
前記f(x)を閾値によって処理するように構成することも可能である。具体的にはf(x)=0:0<x<10,f(x)=1:x≧10と構成することで、位置関係を「0」、「1」の数値に変換することができる。
y = n * [x] (n is an arbitrary real number). By multiplying a Gaussian function by a real number as in this equation, the amount of positional relationship required when moving one menu item can be adjusted.
[Discrete operations using thresholds]
It is also possible to configure so that f (x) is processed according to a threshold value. Specifically, by configuring f (x) = 0: 0 <x <10 and f (x) = 1: x ≧ 10, the positional relationship can be converted into numerical values of “0” and “1”. it can.
また、複数の閾値を使用し、f(x)=0:0<x<10,f(x)=1:10≦x<20,f(x)=2:20≦xと構成することで、何段階かの戻り値を持つ関数としてf(x)を構成することができる。ガウス関数と同様にメニューや2択からの項目の選択等に用いることができる。
[周期関数による周期的入力]
前記f(x)にsin,cosといった周期関数を用いて、位置関係を周期的に数値変換することができる。
[実数そのまま入力]
メジャーとして端末とビジュアルコード20を使用したり、実際の距離等をアプリケーションで使用するために、算出された位置関係をそのまま数値として使用することもできる。このときf(x)=xとなる。
[位置関係の変化量を変換]
端末が具備するメモリ手段に、算出したxを位置履歴情報として保存し、算出したxと位置履歴情報に保存されている一定時間前の位置関係xpの差分を関数fを用いて、f(x−xp)として、位置関係の変化量に応じた数値へ変換することも可能である。
[位置関係の比を変換]
端末が具備するメモリ手段に、算出したxを位置履歴情報として保存し、算出したxと位置履歴情報に保存されている一定時間前の位置関係xpの比を関数fを用いて、f(x/xp)として、位置関係の比に応じた数値へ変換することも可能である。
[関数を変化させる]
f(x)を位置関係の値や時間に応じて変化させて、構成することもできる。例えば、xが前記距離であった場合に、f(x)=127*(x/80−1/4):20<x<60,f(x)=64*(x/80+3/4):60≦x<100とすると、距離が60である点を境界に数値の変化量が小さくなるように構成することができる。
[多入力]
位置関係がZ軸周りの回転、距離などのいくつかのパラメータから構成される場合、Yを数値、Xを位置関係ベクトルと定義すると、Y=F(X)で表すことができ、複数の入力から数値を検出するように構成することもできる。
[多入力の差分]
端末が具備するメモリ手段に、算出したXを位置履歴情報として保存し、算出したXと位置履歴情報に保存されている一定時間前の位置関係X’の差分を関数Fを用いて、F(X−X’)として、位置関係の比に応じた数値へ変換することも可能である。
[多入力の比]
端末が具備するメモリ手段に、算出したXを位置履歴情報として保存し、算出したXと位置履歴情報に保存されている一定時間前の位置関係X’の各成分の比を関数Fを用いて、位置関係ベクトルの各成分の比に応じた数値へ変換することも可能である。例えば、X=(a,b,c),X’=(a’,b’,c’)である場合、Y=F((a/a’,b/b’,c/c’))とすることができる。
Further, by using a plurality of threshold values, f (x) = 0: 0 <x <10, f (x) = 1: 10 ≦ x <20, and f (x) = 2: 20 ≦ x. , F (x) can be configured as a function having several stages of return values. Similar to the Gaussian function, it can be used to select an item from a menu or two choices.
[Periodic input by periodic function]
By using a periodic function such as sin and cos for the f (x), the positional relationship can be numerically converted periodically.
[Enter real number as is]
In order to use the terminal and the
[Convert positional change]
The calculated x is stored as the position history information in the memory means provided in the terminal, and the difference between the calculated x and the positional relationship xp stored in the position history information for a certain period of time is expressed as f (x -Xp) can be converted into a numerical value corresponding to the amount of change in the positional relationship.
[Convert position ratio]
The calculated x is stored as position history information in the memory means provided in the terminal, and the ratio of the calculated x and the positional relationship xp before a certain time stored in the position history information is expressed as f (x / Xp) can also be converted into a numerical value corresponding to the positional relationship ratio.
[Change function]
It is also possible to configure by changing f (x) according to the positional relationship value and time. For example, when x is the distance, f (x) = 127 * (x / 80-1 / 4): 20 <x <60, f (x) = 64 * (x / 80 + 3/4): Assuming 60 ≦ x <100, it is possible to configure so that the amount of change in the numerical value is small at the point where the distance is 60.
[Multiple input]
When the positional relationship is composed of several parameters such as rotation and distance around the Z axis, if Y is defined as a numerical value and X is defined as a positional relationship vector, it can be expressed as Y = F (X), and a plurality of inputs It can also be configured to detect numerical values from
[Difference of multiple inputs]
The calculated X is stored as position history information in the memory means included in the terminal, and the difference between the calculated X and the positional relationship X ′ stored in the position history information for a predetermined time is calculated using the function F. XX ′) can be converted into a numerical value corresponding to the positional relationship ratio.
[Multi-input ratio]
The calculated X is stored as position history information in the memory means provided in the terminal, and the ratio of each component of the calculated X and the positional relationship X ′ stored in the position history information for a predetermined time is stored using the function F. It is also possible to convert to a numerical value corresponding to the ratio of each component of the positional relationship vector. For example, when X = (a, b, c) and X ′ = (a ′, b ′, c ′), Y = F ((a / a ′, b / b ′, c / c ′)) It can be.
また各成分ではなく位置関係ベクトルの絶対値の比を代入し、数値へ変換することも可能である。この場合、前記位置関係ベクトルがひとつのパラメータからなる場合の関数を用い、y=f(|x|/|x’|)で数値へ変換することも可能である。
[システム例]
以下に本実施の形態におけるシステムについて説明する。
[操作の流れの概要]
処理の流れの概要を図13のフローチャートに示す。ユーザは、ビジュアルコード20が印刷された紙面をデジタルカメラで撮像する(151)。撮像されたカメラ映像は、CPU7へ送られ、モニタ8に表示される(152)。前記方法によって、ビジュアルコード20の検出が行われる(153)。CPU7は、カメラ映像中のビジュアルコードの4つの頂点の座標と識別番号を取得する(154)。
It is also possible to substitute the absolute value ratio of the positional relationship vector instead of each component and convert it to a numerical value. In this case, it is also possible to convert to a numerical value by y = f (| x | / | x ′ |) using a function in the case where the positional relationship vector consists of one parameter.
[System example]
The system in this embodiment will be described below.
[Overview of operation flow]
An outline of the flow of processing is shown in the flowchart of FIG. The user images the paper on which the
次にCPU7は、識別番号を元にビジュアルコード情報を外部データベース手段(156)から取得し、ビジュアルコード情報から、カメラ映像から算出する位置関係の要素、数値入力の対象情報等を取得する(155)。
Next, the
CPU7は、カメラ映像から位置関係を算出し(157)、数値へ変換する(158)。数値は端末の入力対象へ入力され(159)、モニタ8上でカメラ映像に数値が入力された結果を示す画像が重畳表示される(160)。
The
これらのプロセスは、リアルタイムで行われるため、ユーザは、ビジュアルコード20を、モニタ8を通して見ながら、端末を直接動かして、数値入力を行うことができる。最後にボタンで、数値入力の終了を決定すると(161)、その数値は端末のメモリに保存され、反映される。以上の処理の流れを以下に詳細に説明していく。
[ビジュアルコードの撮像とカメラ映像の表示]
ビジュアルコード20がデジタルカメラの画角に収まるようにユーザが撮影すると、CPU7に送られたカメラ映像から前記手法によってビジュアルコード20の4つの頂点の画像上の座標が検出される。次に上述のカラーバーコード22の読み取り手法によって、ビジュアルコード20の識別番号が検出される。
[ビジュアルコード情報]
次にCPU7は、識別番号を用いて、外部ビジュアルコードデータベース手段9から図14に示すビジュアルコード情報170を取得する。ビジュアルコード情報170は、カメラ映像から算出する位置関係の要素を識別する位置関係情報171、数値入力対象情報172、数値入力補助情報173を含む。
[位置関係情報]
位置関係情報171は、カメラ映像中のビジュアルコード領域から算出するカメラとビジュアルコード20の位置関係の要素を識別する情報である。要素には、カメラに対するビジュアルコードの位置、姿勢、傾き等がある。位置関係情報は識別子を保持し、該識別子によって要素を識別する。本実施の形態では、図14に示す以下の4つの識別子がある。
Since these processes are performed in real time, the user can directly input the numerical value by moving the terminal while viewing the
[Image code display and camera image display]
When the user takes an image so that the
[Visual code information]
Next, the
[Positional information]
The
1.「spinner」は、ビジュアルコード20のZ軸周りの回転角度、傾きを位置関係要素とすることを示す識別子である。「spinner」では、ユーザは前記Z軸周りに端末を回転させ、数値を入力する。
1. “Spinner” is an identifier indicating that the rotation angle and inclination around the Z-axis of the
2.「tilt」は、YあるいはX軸周りの端末の回転角度あるいは傾きを位置関係要素とすることを示す識別子である。「tilt」では、ユーザは、前記YあるいはX軸周りに端末を傾け、数値を入力する。 2. “Tilt” is an identifier indicating that the rotation angle or inclination of the terminal around the Y or X axis is used as a positional relation element. In “tilt”, the user tilts the terminal around the Y or X axis and inputs a numerical value.
3.「sink」は、ビジュアルコード20と端末間の距離を位置関係要素とすることを示す識別子である。「sink」では、ユーザはビジュアルコード20に端末を近づけたり、遠ざけたりして、数値を入力する。
3. “Sink” is an identifier indicating that the distance between the
4.「slider」は、端末から見たビジュアルコード20の位置を位置関係要素とすることを示す識別子である。「slider」では、ユーザは前記X−Y平面に平行に端末を動かし、数値を入力する。
[数値入力対象情報]
数値入力対象情報172は、数値入力の対象を識別する情報である。端末の音量、テキスト閲覧時のスクロール量、時刻などの数値入力の対象が該情報によって識別される。また対象によって、位置関係からの数値変換の方法も決定される。
[数値入力対象補助情報]
数値入力補助情報173は、ビジュアルコード20が外部のネットワーク手段等からコンテンツ情報を取得する必要がある際に、該コンテンツ情報のネットワーク上の情報を識別する情報である。
[ビジュアルコード情報の読み取り]
CPU7は、外部データベース手段9から受け取ったビジュアルコード情報170を読み取り、算出する位置関係、位置関係からの数値の変換方法、入力対象を識別する。以下にビジュアルコード情報の具体的な構成例を挙げ、処理内容について説明する。
[spinnerによる音量調整]
位置関係情報171が「spinner」で、入力対象が端末の音量であった場合について説明する。まず、前記いずれかの位置関係の算出方法によって、ビジュアルコードが最初に画角に入り、検出された瞬間のカメラの撮影方向に対するビジュアルコード20のZ軸周りの傾きが、初期値として保存される。
4). “Slider” is an identifier indicating that the position of the
[Numeric input target information]
The numerical
[Numeric input target auxiliary information]
The numerical input
[Read visual code information]
The
[Volume adjustment with spinner]
A case where the
ユーザが端末を動かし、ビジュアルコード20が検出され続ける間、算出される回転角度と初期値との差分値が算出される。回転であるため該差分値の最大値と最小値は、0°〜360°となる。前記一次関数による変換方法に基づき、端末の音量の最大及び最小値と該差分値の最大および最小値を対応付け、音量を算出する。
While the user moves the terminal and the
図15において、ユーザがビジュアルコード20をカメラで撮影している間、モニタ180には図のような実際にボリュームを回しているような図形181が重畳表示される。ユーザが数値入力終了ボタンを押すことで、設定した音量が端末側に保存される。ユーザは、端末を実際の音響機器の音量ボリュームを回す感覚で操作することができる。
[tiltによるテキスト閲覧]
位置関係情報171の識別子が「tilt」であり、入力対象がスクロール量であり、入力対象補助情報からテキストを取得し、ビジュアルコード20に関連づけられたテキストページを上下方向にスクロールさせながら閲覧するという例について説明する。
In FIG. 15, while the user is photographing the
[Text browsing with tilt]
The identifier of the
図16において、CPU7は数値入力補助情報172からテキストページの外部ネットワーク上でのアドレスを取得し、モニタ190のカメラ映像上に該テキストページを重畳表示する。次に前記カメラの撮影方向に対するビジュアルコードのX軸周りの傾きの算出方法によって、大まかな角度を算出する。
In FIG. 16, the
次に前記ガウス関数を用いた変換方法によって、角度の数値を整数値で、算出する。この整数値の大きさによって一度にスクロールする量を決定し、整数値の符号によって、正ならば上方向191、負ならば下方向192という風にスクロールの方向を決定する。 Next, the numerical value of the angle is calculated as an integer value by the conversion method using the Gaussian function. The amount of scrolling at a time is determined according to the size of the integer value, and the scroll direction is determined in the manner of upward 191 if positive and downward 192 if negative.
CPU7は、前記スクロール量及び方向に従って重畳されたテキストをスクロール表示する。変換方法にガウス関数を用いることで、ユーザは、段階的にスクロール量を調整することができる。
[sinkによる時刻表閲覧]
位置関係情報171の識別子が「sink」であり、数値入力対象がスクロールであり、入力対象補助情報から飛行機の時刻表を取得し、ビジュアルコード20に関連づけられた時刻表を上下方向にスクロールさせながら閲覧するという例について説明する。
The
[Browsing timetable with sink]
The identifier of the
図17において、ユーザは、ビジュアルコード20に端末を近づけたり201、遠ざけたり200してビジュアルコード20に関連づけられた飛行機の時刻表をスクロールさせながら閲覧し、所望の出発時刻の飛行機を選択する。
In FIG. 17, the user moves the terminal closer to the
初めにCPU7は数値入力補助情報173から飛行機の時刻表の外部ネットワーク上でのアドレスを取得し、モニタのカメラ映像上に該飛行機の時刻表を重畳表示する。
First, the
次に前記方法によって、ビジュアルコード20とカメラの間の距離を算出する。距離は、前記指数関数による手法によって、スクロール量に変換される。指数関数の性質から距離が大きくなるほど、スクロール量の変化量は大きくなる。ビジュアルコード20からカメラが離れた状態で画角に常にコードを収めながら大きく端末を動かすことは困難であるが、指数関数による数値変換方法を用いることでこの困難性を軽減することができる。ユーザが端末を動かしながら、所望のフライトスケジュールを見つけたときボタンで予約を決定することで、そのフライトを予約することができる。
[sliderによる時刻設定]
位置関係情報171の識別子が「slider」であって、数値入力の対象が、時刻である例について説明する。ユーザは、ビジュアルコード20のX−Y平面に平行に端末を動かし、紙面上のスライダーを動かし、時刻を指定する例について説明する。
Next, the distance between the
[Time setting by slider]
An example in which the identifier of the
前記方法によって、カメラの位置からビジュアルコード20の位置へのベクトルのX−Y平面上での成分を算出する。このX成分を利用する。カメラ映像の中心がビジュアルコードの左端に近づくと、カメラ映像の中心からのビジュアルコードの中心までの2次元ベクトルのX座標の差分は正の値となる。またビジュアルコードが右端に近づくと前記X座標の差分は、負の値となる。正の値に近づくことを早い時刻に近づくことにマッピングし、同様に負の値に近づくことを遅い時刻に近づくことにマッピングすることで、X軸方向の移動量を時刻に変換する。
By the above method, the component on the XY plane of the vector from the position of the camera to the position of the
図18において、ユーザは、端末をビジュアルコード20に近付けて、太陽および月の図形、スライダーバーのような図形および時刻を得(210)、その太陽の図形の方向、つまり左端へビジュアルコード20を撮像しながら端末を動かすと、スライダーバーのように指定する時刻は早朝の時刻に近づいていき(211)、月の図形の方向、つまり右端へビジュアルコード20を撮像しながら端末を動かすと、時刻は深夜に近づいていくというように時刻を指定することができる(212)。ユーザは所望の時刻を指定しているときにボタンを押すことで、端末に時刻を設定することができる。
[変形例・sink&slider・多入力多出力]
前記位置関係要素を組み合わせて構成することも可能である。「sliderとsink」を組み合わせ、ビジュアルコード20と端末の距離で明るさを調整し、端末のビジュアルコード20に対する位置に色相と彩度を割り当てることで、色を調整する例について説明する。
In FIG. 18, the user brings the terminal close to the
[Variations / sinks / sliders / multiple inputs / multiple outputs]
A combination of the positional relationship elements is also possible. An example of adjusting the color by combining “slider and sink”, adjusting the brightness by the distance between the
図19において、ビジュアルコード20が検出されると、前記距離に応じた明るさを持つ色相を角度に、彩度を色相環の中心からの距離に割り当てた色相環221が、モニタに重畳表示される。カメラ映像の中心にはカーソル223が表示され、カーソルが指し示す選択色がモニタの左上に表示される(222)。
In FIG. 19, when a
端末がビジュアルコード20のX−Y平面上で移動すると、カーソルはカメラ映像に対して相対的に動き、色相と彩度が変更された色が選択色として表示される。また、ユーザが端末をビジュアルコード20のZ軸方向に動かすと前記距離に応じて明るさが変化し、色相環221の明るさ、選択している色ともに変化する。
When the terminal moves on the XY plane of the
このとき各パラメータは、次式(6)に示すような式に割り当てられ、変化する。ユーザは、所望の色を色相環221から選び、ボタンで操作することで所望の色を取得することができる。
At this time, each parameter is assigned to an equation as shown in the following equation (6) and changes. The user can acquire a desired color by selecting a desired color from the
[変形例・情報端末以外の機器の操作も可能]
端末が備える赤外線通信手段4や無線通信手段3を用いて、端末を介して、外部の電子機器に数値を入力するように構成することも可能である。ビジュアルコード20と端末を用いて、テレビを操作する例を説明する。ビジュアルコード20が「spinner」で音量を調整する場合、前記実施の形態と同様に音量を算出する。この音量を、赤外線通信手段4を用いて、テレビに送信し、テレビの音量を調整することができる。
[変形例・サイバーコード等でも可能]
本実施の形態のビジュアルコード20のように内部にアイコンなどのユーザの手助けとなる文字や図形を自由に配置することはできないが、サイバーコード、ARToolKitのようなカメラに対する位置と姿勢が検出できる2次元コードを用いて構成することも可能である。[参考文献H.Kato,M.Billinghurst,I.Poupyrev,K.Imamoto,K.Tachibana:“Virtual Object Manipulation on a Table−Top AR Environment”,In Proceedings of ISAR 2000,Oct 5th−6th,2000.]
[変形例・ビジュアルコードは、自由な形状]
面積、周の長さ、重心のみを用いて、位置関係を算出する場合、ビジュアルコードは、画像中から検出できる形状であれば、円や楕円といった自由な形状にして構成することも可能である。
[変形例・ビジュアルコードは、多角形]
対角線、辺の比を用いない場合、さらにカメラ映像中のビジュアルコード20と実物のビジュアルコード20の間で対応点が4点以上とれる場合は、カメラパラメータ行列を算出することができるため、本実施の形態で用いるビジュアルコード20を任意の多角形にして構成することも可能である。
[変形例・特殊な多角形]
図20に示すように、正六角形などの互いに平行な1組以上の対辺を持つ形状の場合、正方形と同様に位置関係要素を求めることも可能である。ビジュアルコード20が正六角形(230,235)である場合の「spinner,tilt」における位置関係要素の算出方法を例として説明する。
[Variation / Operation of devices other than information terminals is also possible]
It is also possible to configure to input numerical values to an external electronic device via the terminal using the infrared communication means 4 or the wireless communication means 3 provided in the terminal. An example of operating a television using the
[Also possible with modifications and cyber codes]
Like the
[Modifications / Visual code is free shape]
When calculating the positional relationship using only the area, the circumference length, and the center of gravity, the visual code can be configured as a free shape such as a circle or an ellipse as long as it can be detected from the image. .
[Modification / Visual code is polygon]
When the diagonal and side ratio is not used, and when four or more corresponding points are obtained between the
[Modifications / Special polygons]
As shown in FIG. 20, in the case of a shape having one or more sets of opposite sides parallel to each other, such as a regular hexagon, it is also possible to obtain a positional relationship element in the same manner as a square. A method of calculating the positional relationship element in “spinner, tilt” when the
「spinner」の場合のビジュアルコード20のZ軸周りの回転角度は、正方形である場合と同様に重心から所定の頂点へのベクトルがY軸と成す角度を計算して得ることができる(240)。
The rotation angle around the Z-axis of the
「tilt」の場合、頂点番号:3である頂点と頂点番号:4である頂点の辺L3と、頂点番号6である頂点と頂点番号:1である頂点の辺L6との長さの比でY軸周りの回転角度を得ることができる(250)。
[変形例・ビジュアルコードの提示方法]
本実施の形態では、ビジュアルコード20を紙面に印刷したが、液晶モニタやCRTといった表示画面に表示させたりして構成することも可能である。
[マッチング・ジェスチャ入力]
前記位置履歴情報を用いて、ジェスチャ入力を行うことも可能である。前記位置履歴情報に保存されている過去に算出された位置関係の一定時間内の変化を算出し、これを事前に設定されたパターンと適合するかを検査することで実現する。
In the case of “tilt”, the ratio of the length of the vertex L of
[Variation / Visual code presentation method]
In the present embodiment, the
[Matching gesture input]
It is also possible to perform gesture input using the position history information. This is realized by calculating a change in the positional relationship calculated in the past stored in the position history information within a certain period of time and checking whether or not this matches a preset pattern.
ジェスチャデータベース手段には、前記パターンつまり一定時間内の位置関係の動きと、前記パターンに応じた数値が保存されている。ジェスチャデータベース手段に一定時間内の位置関係の変化を入力し、マッチングするジェスチャパターンがあれば、ジェスチャデータベース手段が保持する数値を入力するように構成することが可能である。 The gesture database means stores the pattern, that is, the movement of the positional relationship within a predetermined time, and a numerical value corresponding to the pattern. A change in the positional relationship within a certain time can be input to the gesture database means, and if there is a matching gesture pattern, a numerical value held by the gesture database means can be input.
例えば、一定時間内に端末をビジュアルコード20に遠ざけ、すぐに戻すという動作を検出し、この動作を、ボタンを押して決定するといった操作に割り当てたりすることが可能である。
[変形例・所定のタイミングで変換方法を切り替え]
所定のタイミングで位置関係の変換方法を切り替えて、数値へ変換することもできる。例えば、ユーザが飛行機の時刻表をスクロールで閲覧するとき、情報が密に表示されていることをCPUがテキストの文字数などで判断し、その情報が密である箇所をスクロールしている間は、距離を数値に変換する一次関数の1次の係数を小さくし、距離の変化量に比例するスクロール量を小さくして、細部まで情報を閲覧できるように構成することができる。
For example, it is possible to detect an operation of moving the terminal away from the
[Modifications / Switching the conversion method at a predetermined timing]
It is also possible to switch to a numerical value by switching the positional relationship conversion method at a predetermined timing. For example, when a user browses an airplane timetable by scrolling, the CPU determines that the information is displayed densely by the number of characters in the text and the like, while scrolling the portion where the information is dense, It is possible to reduce the first order coefficient of the linear function for converting the distance into a numerical value and to reduce the scroll amount proportional to the change amount of the distance so that the information can be viewed in detail.
上記実施の形態で述べたビジュアルコード20と携帯端末の位置関係の算出結果は、メモリに格納されるなど、ハードウェア資源が活用されている。
The calculation result of the positional relationship between the
また、図1に示した各手段などをコンピュータのプログラムで構成したり、あるいは図13に示したフローチャートの処理ステップをコンピュータのプログラムで構成したりして、そのプログラムをコンピュータに実行させることができることは言うまでもなく、コンピュータでその機能を実現するためのプログラム、あるいは、コンピュータでその処理ステップを実行させるためのプログラムを、そのコンピュータが読み取りできる記録媒体、例えば、フレキシブルディスクや、CD,DVD,MO,ROM、メモリカード、リムーバブルディスクなどに記録して、保存したり、配布したりすることが可能である。 1 can be configured by a computer program, or the processing steps of the flowchart shown in FIG. 13 can be configured by a computer program to cause the computer to execute the program. Needless to say, a recording medium such as a flexible disk, a CD, a DVD, an MO, a program for realizing the functions of the computer or a program for causing the computer to execute the processing steps, such as a flexible disk, CD, DVD, MO, etc. It can be recorded on a ROM, a memory card, a removable disk, etc., and stored or distributed.
さらに、上記のプログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。これらの記録媒体からコンピュータに前記のプログラムをインストールすることにより、あるいはネットワークからダウンロードしてコンピュータに前記のプログラムをインストールすることにより、本発明を実施することが可能となる。 Further, the above program can be provided through a network such as the Internet or electronic mail. The present invention can be implemented by installing the program from these recording media into a computer or by downloading the program from a network and installing the program into the computer.
1…携帯電話端末
2…内蔵メモリ
3…無線通信手段
4…赤外線通信手段
5…デジタルカメラ(撮像手段)
6…操作ボタン(入力手段)
7…CPU
8…液晶モニタ(表示手段)
9…外部データベース手段
11…ビジュアルコードデータベース
DESCRIPTION OF
6. Operation buttons (input means)
7 ... CPU
8 ... Liquid crystal monitor (display means)
9 ... External database means 11 ... Visual code database
Claims (9)
ビジュアルコードの隅にあるマーカに基づき、撮像手段による映像中のビジュアルコードの領域を検出するステップと、
ビジュアルコードの領域内にあるカラーバーコードに基づき、撮像手段による映像中のビジュアルコードの識別番号を検出するステップと、
撮像手段による映像中のビジュアルコードを画像処理し、前記識別番号で規定される位置関係により、ビジュアルコードと撮像手段の位置関係を算出するステップと、
前記位置関係を示す位置関係ベクトルを所定の関数に代入して数値に変換するステップと、
前記数値を前記識別番号で規定される入力対象の入力値とするステップと、
を持つことを特徴とする数値入力方法。 A numerical input method using a visual code having a predetermined shape and an imaging means provided in a portable device ,
Detecting a region of the visual code in the video by the imaging means based on the marker at the corner of the visual code;
Detecting an identification number of the visual code in the video by the imaging means based on the color barcode in the area of the visual code;
Image processing the visual code in the video by the imaging means, and calculating the positional relationship between the visual code and the imaging means according to the positional relationship defined by the identification number ;
Substituting a positional relationship vector indicating the positional relationship into a predetermined function and converting it into a numerical value;
Setting the numerical value as an input value of an input target defined by the identification number;
Numeric input method characterized by having.
前記位置関係ベクトルは、
撮像手段の撮影方向に対するビジュアルコードの傾きを示すパラメータと、
撮像手段とビジュアルコードの間の距離を示すパラメータと、
撮像手段の位置からビジュアルコードの位置への方向を示すパラメータのうちひとつ、あるいはいずれかを組み合わせたステップである
ことを特徴とする数値入力方法。 The numerical value input method according to claim 1,
The positional relationship vector is
A parameter indicating the inclination of the visual code with respect to the shooting direction of the imaging means;
A parameter indicating the distance between the imaging means and the visual code;
A numerical input method characterized in that it is a step in which one or any of parameters indicating the direction from the position of the imaging means to the position of the visual code is combined.
前記数値へ変換するステップが、前記位置関係ベクトルと一定時間前に算出された位置関係ベクトルとを、所定の関数に代入し、数値へ変換する
ことを特徴とする数値入力方法。 The numerical value input method according to claim 1,
The numerical value input method characterized in that the step of converting into a numerical value substitutes the positional relationship vector and the positional relationship vector calculated a predetermined time ago into a predetermined function, and converts it into a numerical value.
前記算出された数値あるいは位置関係ベクトルを、表示ステップにより文字や図形で表示する
ことを特徴とする数値入力方法。 In the numerical input method according to claim 1 or 3,
A numerical value input method, characterized in that the calculated numerical value or positional relationship vector is displayed as a character or a figure in a display step.
ビジュアルコードの隅にあるマーカに基づき、撮像手段による映像中のビジュアルコードの領域を検出する手段と、
ビジュアルコードの領域内にあるカラーバーコードに基づき、撮像手段による映像中のビジュアルコードの識別番号を検出する手段と、
撮像手段による映像中のビジュアルコードを画像処理し、前記識別番号で規定される位置関係により、ビジュアルコードと撮像手段の位置関係を算出する手段と、
前記位置関係を示す位置関係ベクトルを所定の関数に代入して数値に変換する手段と、
前記数値を前記識別番号で規定される入力対象の入力値とする手段と、
を持つことを特徴とする数値入力装置。 A numerical input device using a visual code having a predetermined shape and an imaging means provided in a portable device ,
Means for detecting an area of the visual code in the video by the imaging means based on the marker at the corner of the visual code;
Means for detecting the identification number of the visual code in the video by the imaging means based on the color barcode in the area of the visual code;
Means for image-processing a visual code in the video by the imaging means, and calculating a positional relationship between the visual code and the imaging means according to the positional relationship defined by the identification number ;
Means for substituting a positional relationship vector indicating the positional relationship into a predetermined function and converting it into a numerical value;
Means for setting the numerical value as an input value of an input target defined by the identification number;
Numeric input device characterized by having.
前記位置関係ベクトルは、
撮像手段の撮影方向に対するビジュアルコードの傾きを示すパラメータと、
撮像手段とビジュアルコードの間の距離を示すパラメータと、
撮像手段の位置からビジュアルコードの位置への方向を示すパラメータのうちひとつ、あるいはいずれかを組み合わせた手段である
ことを特徴とする数値入力装置。 The numerical input device according to claim 5 ,
The positional relationship vector is
A parameter indicating the inclination of the visual code with respect to the shooting direction of the imaging means;
A parameter indicating the distance between the imaging means and the visual code;
A numerical input device characterized in that it is a means combining one or any of the parameters indicating the direction from the position of the imaging means to the position of the visual code.
前記数値へ変換する手段が、前記位置関係ベクトルと一定時間前に算出された位置関係ベクトルとを、所定の関数に代入し、数値へ変換する
ことを特徴とする数値入力装置。 The numerical input device according to claim 5 ,
The numerical value input device characterized in that the means for converting to a numerical value substitutes the positional relationship vector and the positional relationship vector calculated for a predetermined time into a predetermined function and converts it into a numerical value.
前記算出された数値あるいは位置関係ベクトルを、表示手段により文字や図形で表示する
ことを特徴とする数値入力装置。 In the numerical input device according to claim 5 or 7 ,
A numerical value input apparatus, wherein the calculated numerical value or positional relationship vector is displayed as a character or a figure by a display means.
こと特徴とする数値入力プログラム。 A numerical input program, characterized in that the step in the numerical input method according to any one of claims 1 to 4 is a program for causing a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004297060A JP4328282B2 (en) | 2004-10-12 | 2004-10-12 | Numerical input method and apparatus, and numerical input program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004297060A JP4328282B2 (en) | 2004-10-12 | 2004-10-12 | Numerical input method and apparatus, and numerical input program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006114943A JP2006114943A (en) | 2006-04-27 |
JP4328282B2 true JP4328282B2 (en) | 2009-09-09 |
Family
ID=36383132
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004297060A Expired - Fee Related JP4328282B2 (en) | 2004-10-12 | 2004-10-12 | Numerical input method and apparatus, and numerical input program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4328282B2 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200003559A1 (en) * | 2017-02-10 | 2020-01-02 | Enplas Corporation | Marker |
WO2022003930A1 (en) * | 2020-07-03 | 2022-01-06 | 株式会社ASIAN Frontier | Terminal |
-
2004
- 2004-10-12 JP JP2004297060A patent/JP4328282B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006114943A (en) | 2006-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2020202551B2 (en) | Method for representing points of interest in a view of a real environment on a mobile device and mobile device therefor | |
US10360696B2 (en) | Image processing apparatus, image processing method, and program | |
US6774889B1 (en) | System and method for transforming an ordinary computer monitor screen into a touch screen | |
US6678425B1 (en) | Method and apparatus for decoding angular orientation of lattice codes | |
JP5075182B2 (en) | Image processing apparatus, image processing method, and image processing program | |
EP2458486A1 (en) | Information processing device, information processing method, and program | |
US20170118374A1 (en) | Information processing system, terminal device and method of processing data | |
WO2005069170A1 (en) | Image file list display device | |
CN104081307A (en) | Image processing apparatus, image processing method, and program | |
CN103377487A (en) | Information processing apparatus, display control method, and program | |
JP6096634B2 (en) | 3D map display system using virtual reality | |
CN108564082A (en) | Image processing method, device, server and medium | |
US20240071016A1 (en) | Mixed reality system, program, mobile terminal device, and method | |
CN112232315B (en) | Text box detection method and device, electronic equipment and computer storage medium | |
JP6686547B2 (en) | Image processing system, program, image processing method | |
CN109816628B (en) | Face evaluation method and related product | |
KR100834905B1 (en) | Marker recognition apparatus using marker pattern recognition and attitude estimation and method thereof | |
JP4328282B2 (en) | Numerical input method and apparatus, and numerical input program | |
CN111913564B (en) | Virtual content control method, device, system, terminal equipment and storage medium | |
CN107102794B (en) | Operation processing method and device | |
JP2018106671A (en) | Image information processing apparatus and image information processing method | |
JP2009259254A (en) | Content expression control device, content expression control system, reference object for content expression control and content expression control program | |
JP4330637B2 (en) | Portable device | |
JP2005284882A (en) | Content expression control device, content expression control system, reference object for content expression control, content expression control method, content expression control program, and recording medium with the program recorded thereon | |
JP7411534B2 (en) | Instrument reading system, instrument reading program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070214 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080821 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080909 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20081010 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20090526 |
|
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: 20090609 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090612 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120619 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130619 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140619 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |