JP4328282B2 - Numerical input method and apparatus, and numerical input program - Google Patents

Numerical input method and apparatus, and numerical input program Download PDF

Info

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
Application number
JP2004297060A
Other languages
Japanese (ja)
Other versions
JP2006114943A (en
Inventor
悠一 吉田
健人 宮奥
豪 東野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2004297060A priority Critical patent/JP4328282B2/en
Publication of JP2006114943A publication Critical patent/JP2006114943A/en
Application granted granted Critical
Publication of JP4328282B2 publication Critical patent/JP4328282B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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、携帯電話等の小型携帯情報端末には、ハードウェアの制限がある。特に今日普及している携帯電話は、表示のための液晶ディスプレイは小さく、多くの情報を同時に表示することは難しい。また、携帯電話には数字キーや各機能を持つ小さなボタンが最小限に配置され、ユーザはこれらの小さなボタンを利用しなければならない。
特開平08−129557号公報
Conventionally, small portable information terminals such as PDAs and mobile phones have hardware limitations. In particular, mobile phones that are widely used today have a small liquid crystal display for display, and it is difficult to display a large amount of information simultaneously. In addition, the mobile phone has a minimum number of numeric keys and small buttons having various functions, and the user must use these small buttons.
Japanese Patent Application Laid-Open No. 08-129557

上記特許文献1などでは、PDAでは片手でボタン操作が行い難い問題の解決や、ユーザが端末を持った方向に書類の向きを合わせた自動提示システム構築を目的とし、端末に姿勢検出手段を付加し、端末を動かすことで、情報を入力あるいは提示する技術が開示されている。   In the above-mentioned Patent Document 1 and the like, a posture detection means is added to the terminal for the purpose of solving the problem that it is difficult to operate a button with one hand with a PDA and the construction of an automatic presentation system in which the user aligns the document with the direction in which the terminal is held. However, a technique for inputting or presenting information by moving a terminal is disclosed.

しかし、通常、小型携帯情報端末上で複数の数値を設定する場合、数値設定の対象を画面で切り替えながら、煩雑なボタン操作でそれぞれの数値を入力する情報端末がほとんどであり、小型携帯情報端末の操作が複雑になりやすい。このため、小型携帯情報端末では、複数のコンテンツが連携したアプリケーションを実現することが難しい。   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 mobile phone terminal 1 which is a portable information terminal and a visual code 20 (FIG. 2) printed on a paper surface. In this system, the user inputs a numerical value to the mobile phone terminal 1 by imaging the visual code 20 with a camera which is an imaging means of the mobile phone terminal 1 and moving the mobile phone terminal 1 with a predetermined movement. is there.
[Configuration of information terminal]
Next, the cellular phone terminal 1 used in the present embodiment will be described. In FIG. 1, a mobile phone terminal 1 includes an internal memory 2 for storing data, a wireless communication means 3 using the Internet, an infrared communication means 4 for communicating with other electronic devices, a digital camera 5 as an imaging means, an input An operation button 6 as means, a CPU 7 for performing information processing such as image processing, and a liquid crystal monitor 8 as display means are provided.

CPU7は、画像処理等の情報処理を行なうために、識別番号取得手段7a、ビジュアルマーカ検出手段7b、ビジュアルコード情報取得手段7c及び位置関係算出手段7dの機能を備えている。   The CPU 7 includes functions of an identification number acquisition unit 7a, a visual marker detection unit 7b, a visual code information acquisition unit 7c, and a positional relationship calculation unit 7d in order to perform information processing such as image processing.

なお、図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 visual code information 10 and the like.

[ビジュアルコード20の構成]
本実施の形態で使用するビジュアルコード20について図2、図3により説明する。ビジュアルコード20は、大きさと色(図では濃淡で表示)の異なる2重の同心円から構成されるビジュアルマーカー21と、カラーバーコード22から構成される。
[Configuration of Visual Code 20]
The visual code 20 used in this embodiment will be described with reference to FIGS. The visual code 20 is composed of a visual marker 21 composed of double concentric circles having different sizes and colors (indicated by shading in the figure), and a color barcode 22.

ビジュアルコード20は、紙面に印刷され、ユーザに提供される。ビジュアルコード20は、正方形であり、各頂点にビジュアルマーカー21が配置され、所定の頂点の間に1つ以上のカラーバーコード22が配置される。   The visual code 20 is printed on paper and provided to the user. The visual code 20 is a square, a visual marker 21 is disposed at each vertex, and one or more color barcodes 22 are disposed between predetermined vertices.

該ビジュアルコード20は、内部にアイコンなどのユーザの手助けとなる文字や図形を配置することができる。以下の実施の形態で用いるビジュアルコード20のX,Y,Z軸(51,52,53)の構成は、図6a,bに示すように設定される。以下の3次元の座標系はすべて左手系とする。   The visual code 20 can arrange characters and figures that assist the user such as icons. The configurations of the X, Y, and Z axes (51, 52, 53) of the visual code 20 used in the following embodiments are set as shown in FIGS. The following three-dimensional coordinate systems are all left-handed systems.

ビジュアルマーカー21は2つの円から構成されている。大小の円の半径の比は、1:2となっている。2つの円は、同心円であり、それらの中心が一致するように配置されている。該2つの円は、それぞれ異なる色相を持つ色で塗りつぶされている。   The visual marker 21 is composed of two circles. The ratio of the radius of the large and small circles is 1: 2. The two circles are concentric circles and are arranged so that their centers coincide. The two circles are filled with colors having different hues.

本実施の形態では、塗りつぶしに青色、赤色および黄色の固定の3色を用いている。このマーカーに用いる色の組み合わせを用いて、ビジュアルマーカー21を識別することができる。本実施の形態では、ビジュアルマーカー21の頂点番号として、これを利用する。   In the present embodiment, three colors of blue, red and yellow are used for filling. The visual marker 21 can be identified using the combination of colors used for the marker. In the present embodiment, this is used as the vertex number of the visual marker 21.

本実施の形態における色の組み合わせと頂点番号の対応は、図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 visual code 20 used in the present embodiment, as shown in FIG. 3, the vertex numbers: 1 to: 4 is allocated.

ビジュアルマーカー21に配置されるカラーバーコード22は、塗りつぶしに青色、赤色および黄色の固定の3色を用いる。バーコードの成分は、図5に示すように、すべて隣合うブロック40が異なる色(図5では濃淡で示している)になるように設定される。   The color barcode 22 arranged on the visual marker 21 uses three colors of blue, red and yellow for filling. As shown in FIG. 5, the barcode components are set such that all adjacent blocks 40 have different colors (shown in shades in FIG. 5).

以下にビジュアルコード20の検出、位置関係の算出、数値への変換の各処理について具体的に説明する。
[ビジュアルコード20の検出]
次に本実施の形態で使用するビジュアルコード20のカメラ映像からの検出方法、識別番号の抽出方法について説明するに当たり、まず、ビジュアルマーカー21のカメラ映像から該マーカー21を検出する処理について説明する。
Below, each process of the detection of the visual code 20, calculation of a positional relationship, and conversion to a numerical value is demonstrated concretely.
[Detection of visual code 20]
Next, in describing the detection method of the visual code 20 from the camera image and the method of extracting the identification number used in the present embodiment, a process of detecting the marker 21 from the camera image of the visual marker 21 will be described first.

CPU7は、はじめに、図7に示すカメラ映像60から前記固定の3色以外の色相値を持つ画素の値を黒色に置き換える。次にカメラ映像を左上隅の点から右方向に調査する。   First, the CPU 7 replaces the values of pixels having hue values other than the fixed three colors with black from the camera image 60 shown in FIG. Next, the camera image is examined from the upper left corner point to the right.

このとき、図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 visual marker 21 configured by a circle with red on the outside and blue on the inside. 4 to “6” can be detected.

CPU7は、ビジュアルマーカー21の一部である領域が検出されると、該領域に検出した頂点番号を書き込む。カメラ映像の1行の調査が終了すると下の行へ移動し、同様の調査を行う。   When the area that is a part of the visual marker 21 is detected, the CPU 7 writes the detected vertex number in the area. When the investigation of one line of the camera image is completed, the line moves to the lower line and the same investigation is performed.

また同様の処理を左上の隅の点から下方向へも行う。右方向と下方向の調査のいずれにも検出され、さらに上書きされた頂点番号が両方向の調査で一致する画素を、ビジュアルマーカー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 visual marker 21, and the center of gravity of the area is detected, and the visual The position and vertex number of the marker 21 in the camera image are detected (70 in FIG. 7).

最後にCPU7は、頂点番号順にビジュアルコード20の重心を直線で結び、該直線で囲まれた領域をカメラ映像中のビジュアルコード領域81(図7)として抽出することができる。   Finally, the CPU 7 can connect the centroids of the visual codes 20 with straight lines in the order of vertex numbers, and extract the area surrounded by the straight lines as the visual code area 81 (FIG. 7) in the camera video.

CPU7は、前記処理で得られたカメラ映像中の頂点番号:1と頂点番号:2のマーカーの頂点座標を取得し、頂点番号:1の頂点から頂点番号:2の頂点への直線上に見られるブロック毎の色の変化を検出する。   The CPU 7 acquires the vertex coordinates of the vertex number: 1 and vertex number: 2 markers in the camera image obtained by the above process, and sees them on a straight line from the vertex of vertex number: 1 to the vertex of vertex number: 2. Detects color change for each block.

図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 visual code area 81 shown in FIG. 7 in the camera image obtained by the above processing and the vertex coordinates will be described with reference to FIG.
[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 visual code 20 on one plane.

この幾何的関係を利用し、カメラ映像中のビジュアルコード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 visual code 20 in the image are associated with the four corner points of the real-world visual code, and a camera parameter matrix is calculated by the following equation (1).

Figure 0004328282
Figure 0004328282

このカメラパラメータ行列を用いることで、カメラ映像中の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 visual code 20 in the camera coordinate system, the vector of two orthogonal diagonal lines of the visual code 20, and the following equation (2) The position vector of the center of gravity of the visual code 20 in the camera coordinate system can be detected. Using these four vectors, the posture and position of the camera with respect to the visual code 20 can be calculated, and the matrix C can be obtained.

Figure 0004328282
Figure 0004328282

[Z軸周りの傾き]
カメラの撮影方向に対するビジュアルコード20のZ軸周りの傾きの算出方法について説明する。
[行列Cを用いた回転角度の算出]
ビジュアルコード20の中心を通り、Z軸周りのみの回転である場合、行列Cは、次式(3)に示すものとなる。この行列Cから傾きを示す、回転角度φを算出することができる。
[Inclination around the Z axis]
A method for calculating the inclination of the visual code 20 around the Z-axis with respect to the shooting direction of the camera will be described.
[Calculation of rotation angle using matrix C]
When passing through the center of the visual code 20 and rotating only around the Z axis, the matrix C is represented by the following equation (3). From this matrix C, the rotation angle φ indicating the inclination can be calculated.

Figure 0004328282
Figure 0004328282

[重心から頂点へのベクトルを用いた回転角度の算出]
上述のカメラパラメータ行列を用いた手法は、複雑なため計算コストが高くなる。そこで、より計算コストが低い手法について以下に説明する。
[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 vertex number 1 obtained from the camera image and the coordinates of the center of gravity of the visual code 20. When the visual code 20 faces the camera, the angle formed by the vector A with the Y axis in the image is 45 ° (110).

カメラ映像から得られたベクトル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 visual code 20 around the X axis with respect to the shooting direction of the camera will be described with reference to FIGS.
[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 visual code 20. Although this method cannot detect a precise rotation angle, it can easily detect the rotation direction and the rough size of the rotation angle.

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.

Figure 0004328282
Figure 0004328282

[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 visual code 20 around the Y axis with respect to the shooting direction of the camera will be described with reference to FIG.
[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 visual code 20. When calculating the rotation angle around the Y axis, the vector length L2 from the vertex of vertex number: 2 to the vertex of vertex number: 3 and the vector length from the vertex of vertex number: 4 to the vertex of vertex number: 1 The ratio of the length L4 is calculated (121 in FIG. 11b).

カメラ映像中では、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.

Figure 0004328282
Figure 0004328282

[カメラの位置からビジュアルコードの位置へのベクトル]
カメラの位置からビジュアルコード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 visual code 20 will be described.
[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 visual code 20 will be described.
[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 visual code 20 when the terminal is facing the visual code 20. The maximum value of the area 134 of the visual code area in a state where the visual code 20 can be detected, the distance at that time, the minimum value of the area, and the distance at that time are calculated in advance. Assuming that the distance changes in proportion to the area between the maximum value and the minimum value, a function for obtaining the distance from the area is created. The distance can be calculated from the area based on this function.
[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 visual code 20.

ビジュアルコード20が検出できる状態でのビジュアルコード領域の周の長さの最大値とそのときの前記距離、該周の長さの最小値とそのときの距離を事前に算出する。この最大値と最小値の間で距離が線形的に変化するものとして、周の長さから距離を求める関数を作成する。この関数を元に周の長さから距離を算出することができる。
[対角線による距離の算出]
図12において、対角線の長さ131も、前記ビジュアルコード領域の周の長さ134と同様に端末とビジュアルコード20の距離に比例する。対角線の長さ131を利用して、端末とビジュアルコード20の距離を算出することもできる。
The maximum value of the circumference length of the visual code area in a state where the visual code 20 can be detected and the distance at that time, the minimum value of the circumference length and the distance at that time are calculated in advance. Assuming that the distance linearly changes between the maximum value and the minimum value, a function for obtaining the distance from the circumference is created. Based on this function, the distance can be calculated from the circumference.
[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 visual code 20, similar to the circumferential length 134 of the visual code area. The distance between the terminal and the visual code 20 can also be calculated using the length 131 of the diagonal line.

ビジュアルコード20が検出できる状態でのビジュアルコード領域の対角線の長さの最大値とそのときの前記距離、該対角線の長さの最小値とそのときの距離を事前に算出する。この最大値と最小値の間で距離が線形的に変化するものとして、対角線の長さから距離を求める関数を作成する。この関数を元に対角線の長さから距離を算出することができる。
[外接長方形による距離の算出]
図12において、外接長方形132の面積は前記領域の面積、外接長方形の辺の長さは前記領域の対角線や周の長さと同様に端末とビジュアルコード20の距離の2乗、あるいは距離に比例する。これら辺の長さ、面積を利用して、端末とビジュアルコード20の距離を算出することもできる。
The maximum value of the diagonal length of the visual code area in a state where the visual code 20 can be detected and the distance at that time, the minimum value of the diagonal length and the distance at that time are calculated in advance. Assuming that the distance linearly changes between the maximum value and the minimum value, a function for determining the distance from the length of the diagonal line is created. Based on this function, the distance can be calculated from the length of the diagonal line.
[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 visual code 20, or the distance as well as the diagonal and circumference of the region. . The distance between the terminal and the visual code 20 can be calculated using the length and area of these sides.

外接長方形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 visual code 20 facing the digital camera is within the angle of view and the visual code 20 can be detected, the maximum side length or area of the visual code area and the distance, side length, or The minimum value of the area and the distance at that time are calculated in advance.

この最大値と最小値の間で距離が線形的に変化するものとして、外接長方形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 visual code 20 will be described.
[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 visual code 20 is calculated. Can be calculated.
[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 visual code 20 can be detected are calculated, the range of the values is calculated in advance, and the linear function is used for the f (x). When the maximum value of the calculated distance is 100, the minimum value is 20, and the range of values to be numerically input is 0 to 127, f (x) = 127 * (x / 80-1 / 4). .

この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 visual code 20 as a measure, or to use an actual distance or the like in an application, the calculated positional relationship can be used as a numerical value as it is. At this time, f (x) = x.
[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 visual code 20 is printed with a digital camera (151). The captured camera video is sent to the CPU 7 and displayed on the monitor 8 (152). The visual code 20 is detected by the method (153). The CPU 7 acquires the coordinates and identification numbers of the four vertices of the visual code in the camera video (154).

次にCPU7は、識別番号を元にビジュアルコード情報を外部データベース手段(156)から取得し、ビジュアルコード情報から、カメラ映像から算出する位置関係の要素、数値入力の対象情報等を取得する(155)。   Next, the CPU 7 acquires visual code information from the external database unit (156) based on the identification number, and acquires, from the visual code information, positional relationship elements calculated from the camera video, numerical input target information, and the like (155). ).

CPU7は、カメラ映像から位置関係を算出し(157)、数値へ変換する(158)。数値は端末の入力対象へ入力され(159)、モニタ8上でカメラ映像に数値が入力された結果を示す画像が重畳表示される(160)。   The CPU 7 calculates the positional relationship from the camera video (157) and converts it into a numerical value (158). The numerical value is input to the input target of the terminal (159), and an image indicating the result of the numerical value input to the camera image is superimposed and displayed on the monitor 8 (160).

これらのプロセスは、リアルタイムで行われるため、ユーザは、ビジュアルコード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 visual code 20 through the monitor 8. Finally, when the end of numerical value input is determined by the button (161), the numerical value is stored in the terminal memory and reflected. The above processing flow will be described in detail below.
[Image code display and camera image display]
When the user takes an image so that the visual code 20 falls within the angle of view of the digital camera, the coordinates of the four vertices of the visual code 20 on the image are detected from the camera image sent to the CPU 7 by the method described above. Next, the identification number of the visual code 20 is detected by the method of reading the color barcode 22 described above.
[Visual code information]
Next, the CPU 7 acquires the visual code information 170 shown in FIG. 14 from the external visual code database means 9 using the identification number. The visual code information 170 includes positional relationship information 171 for identifying elements of positional relationship calculated from the camera video, numerical input target information 172, and numerical input auxiliary information 173.
[Positional information]
The positional relationship information 171 is information for identifying elements of the positional relationship between the camera and the visual code 20 calculated from the visual code area in the camera video. Elements include the position, posture, and tilt of the visual code with respect to the camera. The positional relationship information holds an identifier, and an element is identified by the identifier. In the present embodiment, there are the following four identifiers shown in FIG.

1.「spinner」は、ビジュアルコード20のZ軸周りの回転角度、傾きを位置関係要素とすることを示す識別子である。「spinner」では、ユーザは前記Z軸周りに端末を回転させ、数値を入力する。   1. “Spinner” is an identifier indicating that the rotation angle and inclination around the Z-axis of the visual code 20 are used as positional relationship elements. In “spinner”, the user rotates the terminal around the Z axis and inputs a numerical value.

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 visual code 20 and the terminal is a positional relationship element. In “sink”, the user moves the terminal closer to or away from the visual code 20 and inputs a numerical value.

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 visual code 20 viewed from the terminal is a positional relationship element. In “slider”, the user moves the terminal parallel to the XY plane and inputs a numerical value.
[Numeric input target information]
The numerical input target information 172 is information for identifying a numerical input target. Numeric input targets such as the volume of the terminal, the scroll amount when browsing the text, and the time are identified by the information. Also, the method of numerical conversion from the positional relationship is determined depending on the object.
[Numeric input target auxiliary information]
The numerical input auxiliary information 173 is information for identifying information on the network of the content information when the visual code 20 needs to acquire the content information from an external network unit or the like.
[Read visual code information]
The CPU 7 reads the visual code information 170 received from the external database means 9 and identifies the positional relationship to be calculated, the method of converting the numerical value from the positional relationship, and the input target. Hereinafter, a specific configuration example of the visual code information will be given and processing contents will be described.
[Volume adjustment with spinner]
A case where the positional relationship information 171 is “spinner” and the input target is the volume of the terminal will be described. First, by any one of the positional relationship calculation methods, the visual code first enters the angle of view, and the inclination around the Z axis of the visual code 20 with respect to the shooting direction of the camera at the moment of detection is stored as an initial value. .

ユーザが端末を動かし、ビジュアルコード20が検出され続ける間、算出される回転角度と初期値との差分値が算出される。回転であるため該差分値の最大値と最小値は、0°〜360°となる。前記一次関数による変換方法に基づき、端末の音量の最大及び最小値と該差分値の最大および最小値を対応付け、音量を算出する。   While the user moves the terminal and the visual code 20 continues to be detected, a difference value between the calculated rotation angle and the initial value is calculated. Since it is rotation, the maximum value and the minimum value of the difference value are 0 ° to 360 °. Based on the conversion method using the linear function, the maximum and minimum values of the volume of the terminal are associated with the maximum and minimum values of the difference value, and the volume is calculated.

図15において、ユーザがビジュアルコード20をカメラで撮影している間、モニタ180には図のような実際にボリュームを回しているような図形181が重畳表示される。ユーザが数値入力終了ボタンを押すことで、設定した音量が端末側に保存される。ユーザは、端末を実際の音響機器の音量ボリュームを回す感覚で操作することができる。
[tiltによるテキスト閲覧]
位置関係情報171の識別子が「tilt」であり、入力対象がスクロール量であり、入力対象補助情報からテキストを取得し、ビジュアルコード20に関連づけられたテキストページを上下方向にスクロールさせながら閲覧するという例について説明する。
In FIG. 15, while the user is photographing the visual code 20 with the camera, a graphic 181 that is actually turning the volume as shown in FIG. When the user presses the numerical input end button, the set volume is stored on the terminal side. The user can operate the terminal as if turning the volume volume of the actual audio device.
[Text browsing with tilt]
The identifier of the positional relationship information 171 is “tilt”, the input target is the scroll amount, the text is acquired from the input target auxiliary information, and the text page associated with the visual code 20 is viewed while scrolling up and down. An example will be described.

図16において、CPU7は数値入力補助情報172からテキストページの外部ネットワーク上でのアドレスを取得し、モニタ190のカメラ映像上に該テキストページを重畳表示する。次に前記カメラの撮影方向に対するビジュアルコードのX軸周りの傾きの算出方法によって、大まかな角度を算出する。   In FIG. 16, the CPU 7 acquires the address of the text page on the external network from the numerical input auxiliary information 172, and displays the text page superimposed on the camera image of the monitor 190. Next, a rough angle is calculated by a method of calculating the inclination of the visual code around the X axis with respect to the shooting direction of the camera.

次に前記ガウス関数を用いた変換方法によって、角度の数値を整数値で、算出する。この整数値の大きさによって一度にスクロールする量を決定し、整数値の符号によって、正ならば上方向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 CPU 7 scrolls and displays the superimposed text according to the scroll amount and direction. By using a Gaussian function as the conversion method, the user can adjust the scroll amount step by step.
[Browsing timetable with sink]
The identifier of the positional relationship information 171 is “sink”, the numerical input target is scrolling, an airplane timetable is acquired from the input target auxiliary information, and the timetable associated with the visual code 20 is scrolled up and down. An example of browsing will be described.

図17において、ユーザは、ビジュアルコード20に端末を近づけたり201、遠ざけたり200してビジュアルコード20に関連づけられた飛行機の時刻表をスクロールさせながら閲覧し、所望の出発時刻の飛行機を選択する。   In FIG. 17, the user moves the terminal closer to the visual code 20, 201, away from the terminal 200, and browses the airplane timetable associated with the visual code 20 while scrolling to select an airplane having a desired departure time.

初めにCPU7は数値入力補助情報173から飛行機の時刻表の外部ネットワーク上でのアドレスを取得し、モニタのカメラ映像上に該飛行機の時刻表を重畳表示する。   First, the CPU 7 obtains the address of the airplane timetable on the external network from the numerical input auxiliary information 173 and superimposes and displays the airplane timetable on the camera image of the monitor.

次に前記方法によって、ビジュアルコード20とカメラの間の距離を算出する。距離は、前記指数関数による手法によって、スクロール量に変換される。指数関数の性質から距離が大きくなるほど、スクロール量の変化量は大きくなる。ビジュアルコード20からカメラが離れた状態で画角に常にコードを収めながら大きく端末を動かすことは困難であるが、指数関数による数値変換方法を用いることでこの困難性を軽減することができる。ユーザが端末を動かしながら、所望のフライトスケジュールを見つけたときボタンで予約を決定することで、そのフライトを予約することができる。
[sliderによる時刻設定]
位置関係情報171の識別子が「slider」であって、数値入力の対象が、時刻である例について説明する。ユーザは、ビジュアルコード20のX−Y平面に平行に端末を動かし、紙面上のスライダーを動かし、時刻を指定する例について説明する。
Next, the distance between the visual code 20 and the camera is calculated by the above method. The distance is converted into a scroll amount by the exponential function. Due to the nature of the exponential function, the amount of change in scroll amount increases as the distance increases. Although it is difficult to move the terminal greatly while always keeping the code at the angle of view with the camera away from the visual code 20, this difficulty can be reduced by using a numerical conversion method using an exponential function. When the user finds a desired flight schedule while moving the terminal, the flight can be reserved by determining the reservation with a button.
[Time setting by slider]
An example in which the identifier of the positional relationship information 171 is “slider” and the target of numerical input is time will be described. An example will be described in which the user moves the terminal parallel to the XY plane of the visual code 20, moves the slider on the paper, and designates the time.

前記方法によって、カメラの位置からビジュアルコード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 visual code 20 is calculated. This X component is used. When the center of the camera image approaches the left end of the visual code, the difference in the X coordinate of the two-dimensional vector from the center of the camera image to the center of the visual code becomes a positive value. When the visual code approaches the right end, the difference between the X coordinates becomes a negative value. By mapping the approaching to a positive value to approaching an early time, and similarly mapping the approaching to a negative value to approaching a later time, the movement amount in the X-axis direction is converted into time.

図18において、ユーザは、端末をビジュアルコード20に近付けて、太陽および月の図形、スライダーバーのような図形および時刻を得(210)、その太陽の図形の方向、つまり左端へビジュアルコード20を撮像しながら端末を動かすと、スライダーバーのように指定する時刻は早朝の時刻に近づいていき(211)、月の図形の方向、つまり右端へビジュアルコード20を撮像しながら端末を動かすと、時刻は深夜に近づいていくというように時刻を指定することができる(212)。ユーザは所望の時刻を指定しているときにボタンを押すことで、端末に時刻を設定することができる。
[変形例・sink&slider・多入力多出力]
前記位置関係要素を組み合わせて構成することも可能である。「sliderとsink」を組み合わせ、ビジュアルコード20と端末の距離で明るさを調整し、端末のビジュアルコード20に対する位置に色相と彩度を割り当てることで、色を調整する例について説明する。
In FIG. 18, the user brings the terminal close to the visual code 20 to obtain a sun and moon figure, a figure such as a slider bar, and a time (210), and puts the visual code 20 in the direction of the sun figure, that is, the left end. When the terminal is moved while taking an image, the designated time as in the slider bar approaches the early morning time (211), and when the terminal is moved while taking the visual code 20 in the direction of the shape of the moon, that is, the right end, Can specify the time to approach midnight (212). The user can set the time on the terminal by pressing a button when the desired time is specified.
[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 visual code 20 and the terminal, and assigning the hue and saturation to the position of the terminal with respect to the visual code 20 will be described.

図19において、ビジュアルコード20が検出されると、前記距離に応じた明るさを持つ色相を角度に、彩度を色相環の中心からの距離に割り当てた色相環221が、モニタに重畳表示される。カメラ映像の中心にはカーソル223が表示され、カーソルが指し示す選択色がモニタの左上に表示される(222)。   In FIG. 19, when a visual code 20 is detected, a hue ring 221 in which a hue having brightness corresponding to the distance is assigned to an angle and saturation is assigned to a distance from the center of the hue ring is superimposed and displayed on the monitor. The A cursor 223 is displayed at the center of the camera image, and the selected color indicated by the cursor is displayed at the upper left of the monitor (222).

端末がビジュアルコード20のX−Y平面上で移動すると、カーソルはカメラ映像に対して相対的に動き、色相と彩度が変更された色が選択色として表示される。また、ユーザが端末をビジュアルコード20のZ軸方向に動かすと前記距離に応じて明るさが変化し、色相環221の明るさ、選択している色ともに変化する。   When the terminal moves on the XY plane of the visual code 20, the cursor moves relative to the camera image, and the color whose hue and saturation are changed is displayed as the selected color. Further, when the user moves the terminal in the Z-axis direction of the visual code 20, the brightness changes according to the distance, and the brightness of the hue ring 221 and the selected color also change.

このとき各パラメータは、次式(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 hue ring 221 and operating the button with a button.

Figure 0004328282
Figure 0004328282

[変形例・情報端末以外の機器の操作も可能]
端末が備える赤外線通信手段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 visual code 20 and a terminal will be described. When the visual code 20 is “spinner” and the volume is adjusted, the volume is calculated in the same manner as in the above embodiment. This volume can be transmitted to the television using the infrared communication means 4 to adjust the volume of the television.
[Also possible with modifications and cyber codes]
Like the visual code 20 of the present embodiment, it is not possible to freely arrange characters and figures such as icons, which assist the user, but it is possible to detect the position and orientation relative to the camera such as cyber code and ARToolKit 2 It is also possible to configure using a dimension code. [References 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. ]
[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 visual code 20 in the camera image and the actual visual code 20, the camera parameter matrix can be calculated. It is also possible to configure the visual code 20 used in the form of an arbitrary polygon.
[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 visual code 20 is a regular hexagon (230, 235) will be described as an example.

「spinner」の場合のビジュアルコード20のZ軸周りの回転角度は、正方形である場合と同様に重心から所定の頂点へのベクトルがY軸と成す角度を計算して得ることができる(240)。   The rotation angle around the Z-axis of the visual code 20 in the case of “spinner” can be obtained by calculating the angle formed by the vector from the center of gravity to a predetermined vertex with the Y-axis as in the case of a square (240). .

「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 vertex number 3 and the side L3 of the vertex of vertex number 4 to the vertex L of vertex number 6 and the side L6 of the vertex of vertex number 1 A rotation angle about the Y axis can be obtained (250).
[Variation / Visual code presentation method]
In the present embodiment, the visual code 20 is printed on paper, but it may be configured to be displayed on a display screen such as a liquid crystal monitor or CRT.
[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 visual code 20 within a predetermined time and immediately returning it, and assign this operation to an operation of determining by pressing a button.
[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 visual code 20 and the mobile terminal described in the above embodiment is stored in a memory, and hardware resources are utilized.

また、図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.

本発明の実施の形態を示す構成説明図。The structure explanatory view showing the embodiment of the invention. 携帯電話端末と紙面に印刷されたビジュアルコードの説明図。Explanatory drawing of the visual code printed on the paper surface with the mobile phone terminal. ビジュアルコードの詳細な構成説明図。Detailed configuration diagram of the visual code. ビジュアルコードに印刷されたビジュアルマーカの説明図。Explanatory drawing of the visual marker printed on the visual code. ビジュアルコードに印刷されたカラーバーの説明図。Illustration of the color bar printed on the visual code. ビジュアルコードのX,Y,Z軸の構成説明図。Illustration of the X, Y, and Z axes of the visual code. カメラ映像中のビジュアルコード領域抽出過程を示す説明図。Explanatory drawing which shows the visual code area | region extraction process in a camera image | video. ビジュアルコード領域の形状、及び頂点座標を用いた位置関係の算出方法説明図。Explanatory drawing of the calculation method of the positional relationship using the shape of a visual code area | region, and a vertex coordinate. カメラ座標系における法線ベクトル、対角線のベクトル及び位置ベクトルの検出方法説明図。Explanatory drawing of the detection method of the normal vector in a camera coordinate system, the vector of a diagonal, and a position vector. 重心から頂点へのベクトルを用いた回転角度の算出方法説明図。Explanatory drawing of the calculation method of the rotation angle using the vector from a gravity center to a vertex. ビジュアルコードのX、Y軸周りの傾きの算出方法説明図。Explanatory drawing of the calculation method of the inclination of the visual code around the X and Y axes. 面積、周の長さ、対角線などによる距離の算出方法説明図。Explanatory drawing of the calculation method of distance by an area, the circumference length, a diagonal line, etc. FIG. システムの処理の流れの概要を述べるフローチャート。The flowchart which gives the outline | summary of the flow of a process of a system. ビジュアルコード情報説明図。Visual code information explanatory diagram. 端末を音響機器の音量ボリュームを回す感覚で操作するときの説明図。Explanatory drawing when operating a terminal with the feeling which turns the volume volume of an audio equipment. テキストペーパを上下方向にスクロールさせながら閲覧するときの説明図。Explanatory drawing when browsing text paper scrolling up and down. 飛行機の時刻表をスクロールさせながら閲覧するときの説明図。Explanatory drawing when browsing while scrolling the timetable of an airplane. 端末を動かし時刻を指定するときの説明図。Explanatory drawing when moving a terminal and specifying time. 端末のビジュアルコードに対する位置に色相と彩度を割り当てて色を調整する例の説明図。Explanatory drawing of the example which assigns a hue and saturation to the position with respect to the visual code | cord | chord of a terminal, and adjusts a color. ビジュアルコードが正六角形である場合のスピンナ、チルトにおける位置関係要素の算出方法説明図。Explanatory drawing of the calculation method of the positional relationship element in a spinner and a tilt in case a visual code is a regular hexagon.

符号の説明Explanation of symbols

1…携帯電話端末
2…内蔵メモリ
3…無線通信手段
4…赤外線通信手段
5…デジタルカメラ(撮像手段)
6…操作ボタン(入力手段)
7…CPU
8…液晶モニタ(表示手段)
9…外部データベース手段
11…ビジュアルコードデータベース
DESCRIPTION OF SYMBOLS 1 ... Cell-phone terminal 2 ... Built-in memory 3 ... Wireless communication means 4 ... Infrared communication means 5 ... Digital camera (imaging means)
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.
請求項1に記載の数値入力方法において、
前記位置関係ベクトルは、
撮像手段の撮影方向に対するビジュアルコードの傾きを示すパラメータと、
撮像手段とビジュアルコードの間の距離を示すパラメータと、
撮像手段の位置からビジュアルコードの位置への方向を示すパラメータのうちひとつ、あるいはいずれかを組み合わせたステップである
ことを特徴とする数値入力方法。
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.
請求項1に記載の数値入力方法において、
前記数値へ変換するステップが、前記位置関係ベクトルと一定時間前に算出された位置関係ベクトルとを、所定の関数に代入し、数値へ変換する
ことを特徴とする数値入力方法。
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.
請求項1または3に記載の数値入力方法において、
前記算出された数値あるいは位置関係ベクトルを、表示ステップにより文字や図形で表示する
ことを特徴とする数値入力方法。
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.
請求項5または7に記載の数値入力装置において、
前記算出された数値あるいは位置関係ベクトルを、表示手段により文字や図形で表示する
ことを特徴とする数値入力装置。
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.
請求項1〜のいずれかに記載の数値入力方法におけるステップを、コンピュータに実行させるためのプログラムとした
こと特徴とする数値入力プログラム。
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.
JP2004297060A 2004-10-12 2004-10-12 Numerical input method and apparatus, and numerical input program Expired - Fee Related JP4328282B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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