説明

ドットパターンを用いた情報入出力方法

仮想的な格子線上において隣接する情報ドット毎にx方向、y方向へのずれを交互に生じるように配置したドットパターンとするこことにより、ドット毎にx方向、y方向へのずれが交互に生じているため、1個おきの情報ドットは必ず同一の格子線上に配置されることになる。そのため、光学読取装置で読み取った場合に、画像メモリ上で仮想格子線の探索アルゴリズムが簡便となり、この結果画像メモリ上での格子点の探索も容易となる。その結果、複雑なプログラムを用いることなくドットパターンの読取速度を高速化できる。

【発明の詳細な説明】
【技術分野】
本発明はドットパターンを用いた情報入出力方法に関する。
【背景技術】
従来より、印刷物等に印刷されたバーコードを読み取り、音声等の情報を出力させる情報出力方法が提案されている。たとえば、予め記憶手段に与えられたキー情報(複数桁のコード)に一致する情報を記憶させておき、バーコードリーダで読み込まれたキーから検索して情報等を出力する方法が提案されている。
また、多くの情報やプログラムを出力できるように、微細なドットを所定の法則で並べたドットパターンを生成し、印刷物等に印刷したドットパターンをカメラにより画像データとして取り込み、デジタル化して音声情報を出力させる技術も提案されている。
しかし、上記従来のバーコードにより音声等を出力させる方法は、印刷物等に印刷されたバーコードが目障りであるという問題を有していた。また、バーコードが大きく、紙面の一部を占有するため、書籍等にこれを利用した場合、バーコードが大きいために、印刷紙面の美観を損ねてしまうばかりか、一部分の文章やセンテンスまたは、写真、絵、グラフィックの画像の中に登場する意味を有するキャラクターや対象物毎に分かり易く数多くのバーコードを割り当てたいような場合にはバーコードを表示するスペースがなくなってしまったり、紙面レイアウト上不可能であるという問題を有していた。
このような点から、日本国特表2003−511761号公報(特許文献1)や日本国特開平10−187907号公報(特許文献2)に示されるように、紙面に一定の法則にしたがってドットパターンを形成し、このドットパターンを光学的に読み取ることにより、キー情報(コード)や紙面上での座標値を取得する技術が提案されている。
しかし、前記特許文献1または2等に示されたドットパターンにキー情報等の意味を持たせた場合、このようなドットパターンの配置密度分布は偏在することが多く、そのために紙面に模様となって表れてしまったり、重畳して印刷される絵や写真の印刷紙面の美観に影響を与えてしまう懸念があった。
また、このようなドットパターンが汎用的に用いられるようになると、日常の印刷物、商品の表面にドットパターンが形成され、その光学的読取手段も汎用的かつ安価になっていくと考えられるが、従来のドットパターン方式では、日常生活における温度、湿度等の影響でドットパターンの紙面等の媒体表面が伸縮したり弯曲してしまったり、印刷技術そのものの理由でドットパターンに歪みが生じているような場合、さらに加工精度の低いレンズを用いた読取装置を用いた場合、さらに読取手段の読取り方向(たとえば紙面に対して光軸を鉛直よりもずらした斜め方向から読み取った場合)等に起因して撮像されたドットパターンに歪みが生じ、これを補正するために高度な技術力が必要となるという問題を有していた。
【発明の開示】
本発明はドットパターンを用いた情報入出力方法にかかるものである。
本発明の請求項1は、媒体上に形成されたドットパターンであって、xy方向に所定間隔毎に設けられた仮想的な格子線上でかつ格子点からx方向またはy方向に所定間隔だけずらした情報ドットを配置したドットパターンを、
光学読取装置で読み取り、
光学的に読み取った当該ドットパターンを画像メモリ上に展開し、
画像メモリ上のビットマップ計算により、各情報ドットについて前記格子点からのx方向またはy方向へのずれ方を認識し、
前記ずれ方に対応させて各情報ドットに値を付与し、
隣接する情報ドット間の値の差分を算出してビット情報とし、
所定領域内のビット情報群を座標情報またはコード情報として出力するドットパターンを用いた情報入出力方法である。
本発明によれば、情報ドットが全て格子点近傍に配置されるため、ドットパターンの配置密度分布が偏在することなく、紙面に模様となって表れてしまうことがなく、ドットパターンと重畳して印刷される絵や写真の印刷紙面の美観に影響を与えてしまうことがない。
本発明の請求項2は、前記仮想的な格子線上での各格子点からのx方向またはy方向の所定間隔のずれは、隣接する情報ドット毎にx方向、y方向へのずれが交互に生じていることを特徴とする請求項1記載のドットパターンを用いた情報入出力方法である。
このように、格子線上において隣接する情報ドット毎にx方向、y方向へのずれが交互に生じているため、1個おきの情報ドットは必ず同一の格子線上に配置されることになる。そのため、光学読取装置で読み取った場合に、画像メモリ上で仮想格子線の探索アルゴリズムが簡便となり、この結果画像メモリ上での格子点の探索も容易となる。その結果、複雑なプログラムを用いることなくドットパターンの読取速度を高速化できる。
さらに、日常生活における温度、湿度等の影響でドットパターンの紙面が伸縮したり弯曲してしまったり、印刷技術そのものの理由でドットパターンに歪みが生じているような場合、さらに加工精度の低いレンズを用いた読取装置を用いた場合、さらに読取手段の読取り方向(たとえば紙面に対して光軸を鉛直よりもずらした斜め方向から読み取った場合)等に起因して撮像されたドットパターンに歪みが生じていたとしても前記仮想格子線は直線とはならなくても緩やかな曲線であるため、複雑な補正アルゴリズムを用いる必要はなく、探索は容易である。
本発明の請求項3は、所定数の格子領域毎に格子点上に配置されたコーナードットを有し、該コーナードットで囲まれた領域を前記所定領域として座標情報またはコード情報を登録した請求項1記載のドットパターンを用いた情報入出力方法である。
前記コーナードットを用いることにより、情報の格納単位を明確にすることができる。この領域単位としては、一例として4格子ブロック×4格子ブロック=16ブロックとすることができる。この16ブロック内の格子点近傍を情報ドットの配置位置とすることができる。
本発明の請求項4は、前記コーナードットで囲まれた領域外または領域内の格子点上に前記所定領域の向きを意味するベクトルドットが配置された請求項3記載のドットパターンを用いた情報入出力方法である。
このベクトルドットを配置することにより、±90度方向や180度方向に回転された状態でドットパターンが読み込まれるため、上下左右どちらの方向でもドットパターンが示すコードの読み取りが可能となる。
なお、ベクトルドットを利用して方向情報を加味することにより、同一のドットパターンであっても読み取る方向によって出力を変化させることが可能である。
本発明の請求項5は、前記で出力されたビット情報群に対して、各ビットに対応して鍵パラメータを格納したセキュリティテーブルを記憶装置内に備えており、各ビット情報を鍵パラメータで演算処理することで真値を算出することを特徴とする請求項1乃至4記載のドットパターンを用いた情報入出力方法である。
このようなセキュリティテーブルを用いることにより、ドットパターンの読取結果(ビット情報)だけから第三者によりそれが意味するコード情報や座標情報を解析されることを防止できる。
本発明の請求項6は、媒体上に形成されたドットパターンであって、xy方向に所定間隔毎に設けられた仮想的な格子線上で、かつ隣接する格子点毎にx方向またはy方向に交互に所定間隔だけずらした情報ドットを配置したドットパターンを、
光学読取装置で読み取り、
光学的に読み取った当該ドットパターンを画像メモリ上に展開し、
前記1個おきに配置された情報ドットを探索してビットマップ上でx方向とy方向の格子線を認識し、
ビットマップ上での各格子点の座標を認識し、
ビットマップ計算により、各情報ドットについて前記格子点からのx方向またはy方向へのずれ方を認識し、
前記ずれ方に対応させて予め定義されている値を各情報ドットに付与し、
隣接する情報ドット間の値の差分を算出してビット情報とし、
所定領域内のビット情報群を出力し、
前記ビット情報群に対して、各ビットに対応して鍵パラメータを格納したセキュリティテーブルから鍵パラメータを読み出して、演算処理することで真値群を算出し、
前記真値群に対応したコード情報または媒体面上の座標情報群を出力するドットパターンを用いた情報入出力方法である。
本発明の請求項7は、媒体上にxy方向に所定間隔毎に設けられた仮想的な格子線上で、かつ隣接する格子点毎にx方向またはy方向に交互に所定間隔だけずらした情報ドットを配置するドットパターン生成方法であって、
真値群に対してセキュリティテーブルから読み出した鍵パラメータを演算処理してビット情報群を算出し、
x方向またはy方向の初期格子線上に配置される初期ドットを任意の乱数を用いて決定し、
前記初期ドットを予め設定された格子点からのずれ規則に基づいて配置し、
前記初期ドットが意味する値にビット情報値を加算して第2の格子線上に配置されるドットの値を計算し、
前記第2の格子線上で各ドットを予め設定された格子点からのずれ規則に基づいて配置し、
前記ドットの配置を、格子線n上のドットの配置を格子線n−1上のドットに基づいて順次繰り返すドットパターン生成方法である。
本発明の請求項1〜7記載のドットパターンを用いた情報入出力方法によれば、ドットパターンの配置密度分布を偏在させることがなく、そのためにドットパターンが紙面上で醜い模様となって表れてしまったり、重畳して印刷される絵や写真の印刷紙面の美観に影響を与えてしまう恐れがない。
また、ドットパターンの紙面等の媒体表面が伸縮したり弯曲してしまったり、印刷技術そのものの理由でドットパターンに歪みが生じているような場合、さらに加工精度の低いレンズを用いた読取装置を用いた場合、さらに読取手段の読取り方向(たとえば紙面に対して光軸を鉛直よりもずらした斜め方向から読み取った場合)等に起因して撮像されたドットパターンに歪みが生じている場合にも複雑な補正アルゴリズムを用いることなく仮想格子線を容易に探索できるため、媒体表面や読取の条件に左右されずに高速かつ正確なドットパターンの認識が可能となる。
本発明のドットパターンを用いて、パーソナルコンピュータや情報処理装置等の入力手段に適用することにより、従来のマウス、タブレット、デジタイザ等の入力の代替が可能となり、入力システムに変革をもたらすことができる。
その際、ドットパターンは特定のコード情報を意味させるようにしてもよいし、xy座標を意味させた数値としてもよい。
【図面の簡単な説明】
図1は、本実施形態のドットパターンの配置方法を説明する図である。
図2は、実施形態のドットと格子線との関係を示す図である。
図3は、情報ドットの格子点からのずれ方の態様を示す図である。
図4は、差分による情報取得を説明するためのドットパターン図である。
図5は、情報ビットとセキュリティテーブルと真値との関係を説明するための図である。
図6は、ドットパターンの読取アルゴリズムを説明するための図(1)である。
図7は、ドットパターンの読取アルゴリズムを説明するための図(2)である。
図8は、光学読取装置を用いたドットパターンの読取り方法を示す説明図である。
図9は、ドットパターンの読取アルゴリズムを説明するための図(3)である。
図10は、ドットパターンの読取アルゴリズムを説明するための図(4)である。
図11は、ドットパターンの読取アルゴリズムを説明するための図(5)である。
図12は、ドットパターンの読取アルゴリズムを説明するための図(6)である。
図13は、ドットパターンの読取アルゴリズムを説明するための図(7)である。
図14は、ドットパターンの読取アルゴリズムを説明するための図(8)である。
図15は、ドットパターンの読取アルゴリズムを説明するための図(9)である。
図16は、ドットパターンの読取アルゴリズムを説明するための図(10)である。
【発明を実施するための最良の形態】
以下、本発明の実施の形態を添付図面を参照して説明する。
(ドットパターンの基本原理)
本実施形態のドットパターンの基本原理について図1を用いて説明する。
まず、図1に示すように、xy方向に所定間隔毎に格子線(y1〜y7、x1〜x5)を仮定する。この格子線の交点を格子点と呼ぶことにする。そして、本実施形態ではこの4つの格子点で囲まれた最小ブロック(1グリッド)としてxy方向に4ブロック(4グリッド)ずつ、すなわち4×4=16ブロック(16グリッド)を1つの情報ブロックとする。なお、この情報ブロックの単位を16ブロックとしたのはあくまでも一例であり、任意のブロック数で情報ブロックを構成することが可能であることはいうまでもない。
そしてこの情報ブロックの矩形領域を構成する4つの角点をコーナードット(x1y1,x1y5,x5y1,x5y5)とする(図中、円形で囲んだドット)。この4つのコーナードットは格子点と一致させる。
このように、格子点と一致する4個のコーナードットを発見することにより、情報ブロックを認識することができるようになっている。ただし、このコーナードットだけだと情報ブロックは認識できても、その向きがわからない。たとえば情報ブロックの方向が認識できないと同じ情報ブロックであっても±90度または180度回転させたものをスキャンしてしまうと全く別の情報となってしまうためである。
そこで、情報ブロックの矩形領域の内部または隣接した矩形領域内の格子点にベクトルドット(キードット)を配置している。同図では、三角形で囲まれたドット(x0y3)がそれであり、情報ブロックの上辺を構成する格子線の中点の鉛直上方の1つ目の格子点にキードット(ベクトルドット)が配置されている。これと同様に、当該情報ブロック内において下辺を構成する格子線の中点の鉛直上の1つ目の格子点(x4y3)に下の情報ブロックのキードットが配置されている。
なお、本実施形態では、格子間(グリッド間)距離を0.25mmとした。したがって、情報ブロックの一辺は0.25mm×4グリッド=1mmとなる。そしてこの面積は1mm×1mm=1mmとなる。この範囲内に14ビットの情報が格納可能であり、この内2ビットをコントロールデータとして使った場合、12ビット分の情報が格納できることになる。なお、格子間(グリッド間)距離を0.25mmとしたのはあくまでも一例であり、たとえば0.25〜0.5mm超の範囲で自由に変更してもよい。
(情報ドットの配置原則)
情報ドットは1つおきに格子点からx方向、y方向にずらした位置に配置されている。情報ドットの直径は好ましくは0.03〜0.05mm超であり、格子点からのずれ量は格子間距離の15〜25%程度とすることが好ましい。このずれ量も一例であるため必ずしもこの範囲でなくてもよいが、一般に25%よりも大きなずれ量とした場合には目視したときにドットパターンが模様となって表れやすい傾向がある。
つまり格子点からのずれ方が、上下(y方向)のずれと左右(x方向)へのずれとが交互となっているため、ドットの配置分布の偏在がなくなり、紙面上にモアレや模様となって見えることがなくなり、印刷紙面の美観が保てる。
このような配置原則を採用することにより、情報ドットは1つおきに必ずy方向(図2参照)の格子線上に配置されることになる。このことは、ドットパターンを読み取る際には、1つおきにy方向またはx方向に直線上に配置された格子線を発見すればよいこととなり、認識の際の情報処理装置における計算アルゴリズムを単純かつ高速化できる利点がある。
また、たとえドットパターンが紙面の弯曲等により変形していた場合、格子線は正確な直線とならない場合があるが、直線に近似した緩やかな曲線であるため、格子線の発見は比較的容易であるため、紙面の変形や読取光学系のずれや歪みに強いアルゴリズムであるということがいえる。
情報ドットの意味について説明したものが図3である。同図中において+は格子点、●はドット(情報ドット)を示している。格子点に対して−y方向に情報ドットを配置した場合を0、+y方向に情報ドットを配置した場合を1、同じく格子点に対して−x方向に情報ドットを配置した場合を0、+x方向に情報ドットを配置した場合を1とする。
次に図4を用いて具体的な情報ドットの配置状態と読み取りりアルゴリズムについて説明する。
同図中、丸付き数字の1の情報ドット(以下、情報ドット(1)とする)は格子点(x2y1)よりも+x方向にずれているため”1”を意味している。また、情報ドット(2)(図では丸付き数値)は格子点(x3y1)よりも+y方向にずれているため”1”を意味している、さらに情報ドット(3)(図では丸付き数字)は格子点(x4y1)よりも−x方向にずれているため”0”、情報ドット(4)(図では丸付き数字)は”0”、情報ドット(5)は”0”を意味している。
図4に示したドットパターンの場合、情報ドット(1)〜(17)は以下の値となる。
(1)=1
(2)=1
(3)=0
(4)=0
(5)=0
(6)=1
(7)=0
(8)=1
(9)=0
(10)=1
(11)=1
(12)=0
(13)=0
(14)=0
(15)=0
(16)=1
(17)=1
なお、本実施形態では上記情報ビットに対して、さらに以下に説明する差分法による情報取得アルゴリズムを用いて値を算出するようにしたが、この情報ドットをそのまま情報ビットとして出力してもよい。また、この情報ビットに対して後述するセキュリティテーブルの値を演算処理して真値を算出するようにしてもよい。
(差分法による情報取得アルゴリズム)
次に、図4を用いて本実施形態のドットパターンに基づいて差分法を適用した情報取得方法を説明する。
なお、本実施形態の説明において、()で囲まれた数字は図における円形で囲まれた数字(丸付き数字)、[]で囲まれた数字は図で四角形状で囲まれた数字を意味している。
本実施形態において、情報ブロック内の14ビットそれぞれの値は隣接した情報ドットの差分によって表現されている。たとえば、第1ビットは情報ドット(1)に対してx方向に+1格子分の位置にある情報ドット(5)との差分によって求められる。すなわち、[1]=(5)−(1)となる。ここで情報ドット(5)は”1”を、情報ドット(1)は”0”を意味しているので第1ビット[1]は1−0、すなわち”1”を意味している。同様に第2ビット[2]は[2]=(6)−(2)、第3ビット[3]=(7)−(3)で表される。第1ビット〜第3ビットは以下のようになる。
なお、下記の差分式において、値は絶対値をとることにする。
[1]=(5)−(1)=0−1=1
[2]=(6)−(2)=1−1=0
[3]=(7)−(3)=0−0=0
次に、第4ビット[4]については、ベクトルドットの直下位置にある情報ドット(8)と情報ドット(5)との差分で求める。したがって、第4ビット[4]〜第6ビット[6]は+x方向に1格子、+y方向に1格子の位置にある情報ドットの値との差分をとる。
このようにすると、第4ビット[4]〜第6ビット[6]は以下の式で求めることができる。
[4]=(8)−(5)=1−0=1
[5]=(9)−(6)=0−1=1
[6]=(10)−(7)=1−0=1
次に、第7ビット[7]〜第9ビット[9]については、+x方向に1格子、−y方向に1格子の位置にある情報ビットとの値の差分をとる。
このようにすると、第7ビット[7]〜第9ビット[9]は以下の式で求めることができる。
[7]=(12)−(8)=0−1=1
[8]=(13)−(9)=0−0=0
[9]=(14)−(10)=0−1=1
次に、第10ビット[10]〜第12ビット[12]については、+x方向に1格子の位置にある情報ドットの差分をとり、以下のようになる。
[10]=(15)−(12)=0−0=0
[11]=(16)−(13)=1−0=1
[12]=(17)−(14)=1−0=1
最後に、第13ビット[13]と第14ビット[14]は、情報ドット(8)に対してx方向にそれぞれ+1、−1格子の位置にある情報ドットとの差分をとり、以下のように求める。
[13]=(8)−(4)=1−0=1
[14]=(11)−(8)=1−1=0
なお、第1ビット[1]〜第14ビット[14]をそのまま真値として読み取りデータとして採用してもよいが、セキュリティを確保するために、当該14ビットに対応するセキュリティテーブルを設けて、各ビットに対応する鍵パラメータを定義しておき、読取データに対して鍵パラメータを加算、乗算等することにより真値を得るようにしてもよい。
この場合、真値TはTn=[n]+Kn(n:1〜14、Tn:真値、[n]:読取値、Kn:鍵パラメータ)で求めることができる。このような鍵パラメータを格納したセキュリティテーブルは、光学読取装置内のROM内に登録しておくことができる。
たとえば、セキュリティテーブルとして、以下のような鍵パラメータを設定した場合、
=0
=0
=1
=0
=1
=1
=0
=1
=1
10=0
11=0
12=0
13=1
14=1
真値T1〜T14は、それぞれ以下のように求めることができる。
=[1]+K=1+0=1
=[2]+K=0+0=0
=[3]+K=0+1=1
=[4]+K=1+0=1
=[5]+K=1+1=0
=[6]+K=1+1=0
=[7]+K=1+0=1
=[8]+K=0+1=1
=[9]+K=1+1=0
10=[10]+K10=0+0=0
11=[11]+K11=1+0=1
12=[12]+K12=1+0=1
13=[13]+K13=1+1=0
14=[14]+K14=0+1=1
以上に説明した情報ビットと、セキュリティテーブルと真値との対応を図5に示す。
なお、上記では情報ドットから情報ビットを得て、セキュリティテーブルを参照して真値を求める場合を説明したが、これとは逆に、真値からドットパターンを生成する場合には、第nビットの値[n]は、[n]=Tn−Knで求めることができる。
ここで一例として、T1=1、T2=0、T3=1とした場合、第1ビット[1]〜第3ビット[3]は、以下の式で求められる。
[1]=1−0=1
[2]=0−0=0
[3]=1−1=0
そして、第1ビット[1]〜第3ビット[3]は、以下の差分式により表される。
[1]=(5)−(1)
[2]=(6)−(2)
[3]=(7)−(3)
ここで、(1)=1、(2)=1、(3)=0という初期値を与えると、以下のようにドット(5)〜(7)を求めることができる。
(5)=(1)+[1]=1+1=0
(6)=(2)+[2]=1+0=1
(7)=(3)+[3]=0+0=0
以下の説明は省略するが、同様にドット(8)〜(14)の値も求めることができ、この値に基づいてドットを配置すればよい。
なお、ドット(1)〜(3)の初期値は任意の乱数(0か1)である。
つまり、割り当てられた初期ドット(1)〜(3)に対して情報ビット[1]〜[3]の値を加算してやることで、次のy方向格子線に配置されるドット(5)〜(7)の値を求めることができる。同様に、ドット(5)〜(7)の値に情報ビット[4]〜[6]の値を加算してやることにより、ドット(8)〜(10)の値を求めることができる。さらに、これらに情報ビット[7]〜[9]の値を加算してやることでドット(12)〜(14)の値を求めることができる。さらに、これに情報ビット[10]〜[12]の値を加算すればドット(15)〜(17)の値を求めることができる。
なお、ドット(4)及び(11)については前記で算出されたドット(8)に基づいて情報ビット[13]を減算、情報ビット[14]を加算することでそれぞれ求められる。
このように、本実施形態では、格子線yn上のドットの配置を格子線y(n−1)上のドット配置に基づいて決定し、それを順次繰り返すことにより全体の情報ドットの配置が決定される。
(光学読取装置でのドットパターン読取手順)
(ステップ1)
図6に示すように、光学読取装置801(図8参照)で読み取ったデータをVRAM(画像メモリ)上にビットマップ展開し、撮影中心からスパイラル状に画像メモリ上の二値化したドットを探す。最初に見つかったドットを基準ドットPとする。
(ステップ2)
次に、基準ドットPから右回りスパイラル状にドットの有無を検索する。ここで見つかったドットについて下記の判定を行い、条件を満足しなかった場合は(ステップ2)に戻り、これまでに探したドットから前記スパイラル方向の次に検討対象とするドットを探す。
(ステップ3)
撮影中心鉛直方向に対して、基準ドットPoから検討対象ドットの方向がなす角度θと基準ドットPoからの距離Lを測り、メモリ上に設けられたテーブルに前記距離Lの短い順に登録する。なお、新しいドットが見つかる度に、その順序をソーティングする。なぜなら、スパイラル状に探す場合、基準ドットPoを中心とする正方形状にドットを探すことになり、後に探したドットの方が、距離が短くなる場合があるためである。図6は、光学読取装置801を傾けて、読取面に対する鉛直線に対して斜め方向からドットパターンを読み取り、ドットパターンが長方形に変形した例である。
(ステップ4)
新しい検討対象ドットPlとテーブルに既に登録されているドットPsとの角度の差▲θを計算する(図7参照)。
(ステップ5)
前記ステップ4において、▲θ>tan−10.4であれば、(ステップ1)に戻る。
なお、tan−10.4(=21.8°)は、50°の角度で光学読取装置801を傾けてドットパターンを撮影した場合に、基準ドットを中心に格子ライン方向の隣にあるドットとさらにその隣にあるドットがなす角度である。(図8)
(ステップ6)
前記ステップ4において、▲θ≦tan−10.4であれば、既登録(短い)ドットPsまでの距離をLs、検討対象(長い)ドットPlまでの距離をLlとし、2.4>Ll/Ls、7.0<Ll/Ls、であれば、ドットPlに対して前記テーブル上で検討対象外のフラグを立てて、(ステップ2)に戻る。
なお、2.4≦Ll/Ls≦7.0は、50°の角度でドットパターンを撮影した場合に、基準ドットが乗る格子ライン方向において、基準ドットから隣にあるドットとさらにその隣にあるドットまでの距離の2乗の比である。
(ステップ7)
前記ステップ6において、2.4≦Ll/Ls≦7.0であれば、基準ドットPからPlの正反対方向に対して、その角度θ’が▲θ’≦tan−10.4となる範囲で基準ドットPoから最も距離の短いドットPs’を探す。
(ステップ8)
前記ステップ7でドットが見つからなければ、テーブル上のPlに検討対象外のフラグを立てて、(ステップ2)に戻る。
(ステップ9)
ステップ7でドットが見つかった場合、基準ドットPoからPlの正反対方向で、Ps’よりさらに遠くにあるドットPl’を探し、(ステップ6)、(ステップ7)の条件を満足すれば、Pl−P−Pl’を基準第1方向格子ラインの候補とする。見つからなければ、Plに検討対象外のフラグを立てて、ステップ2に戻る。
(ステップ10)
基準第1方向格子ライン候補Pl−P−Pl’を見つけた後、基準ドットから最も距離の短い10個のドットを選ぶため、基準ドットPoを中心にドットPlの次のドットから続けてスパイラル状に計15個までドットを探し、基準ドットPからの距離を測りテーブルに距離の短い順に登録する。なお、余分にドットを探すのは(ステップ3)と同一の理由による。
(ステップ11)
基準第1方向格子ライン候補Pl−P−Pl’に対して、基準ドットPを中心にPlからPl’に右回り方向及びPlからPl’に左回り方向で、それぞれPs、Ps’を除いて両方向で最も基準ドットPoからの距離の短い5個のドットをそれぞれ選ぶ。
(ステップ12)
5個のドットの内、基準ドットPoから最も距離の短いドットを省き、残りの4個のドットから基準ドットPoからPl−P−Pl’までの距離を測り、距離の等しい2個のドットを結んだラインが準第1方向格子ラインの候補となり、その距離(ライン間距離)が第2方向格子間距離Dとなる。ただし、Pl−P−Pl’までの距離が等しい2個のドットが2組ある場合、その距離が短い2個のドットを選ぶ。(図9参照)
(ステップ13)
前記ステップ12において、4個のドットの内、Pl−P−Pl’までの距離が等しい2個のドットが見つからなかった場合は、Pl及びPl’に検討対象外のフラグを立ててその次の検討対象ドットについてステップ4〜ステップ15の作業を行う。ただし、検討対象外のフラグが立っているドットは、基準第1方向格子ラインを形成しないから検討対象のドットにしない。
(ステップ14)
前記ステップ12において、右回り及び左回りの両側で準第1方向格子ラインの候補が見つかり、さらに右回り側及び左回り側のステップ12で省いた、距離の最も短いドット同士を結び基準第2方向格子ラインの候補とする。ここで右回り側及び左回り側の準第1方向格子ライン候補から、基準第1方向格子ライン候補までの距離が等しく(D=D’)、かつ、Ps及びPs’から基準第2方向格子ライン候補までの距離が等しい場合(D=D’)、基準第1方向格子ライン及び2つの準第1方向格子ラインと基準第2方向格子ラインが確定される。基準第2方向格子ラインと、基準第1方向格子ライン及び2つの準第1方向ラインとの交点を求め、格子点とする。なお、Ps及びPs’から基準第2方向格子ラインまでの距離が第1方向格子間距離Dとなる(図10参照)。
(ステップ15)
ステップ14において、それぞれの準格子ライン候補から基準格子ライン候補までの距離が等しくなかった場合もしくは、Ps及びPs’から基準第2方向の格子ラインまでの距離が等しくなかった場合は、Pl及びPl’に対象外のフラグを立て次の検討対象ドットについて、ステップ4〜ステップ15の作業を行う。ただし、対象外のフラグが立っているドットは、基準第1方向格子ラインを形成しないから検討対象のドットにしない。
(ステップ16)
第1方向格子ラインを形成するに至ったPs及びPs’から、基準第2方向格子ラインと同一の角度で準第2方向格子ライン候補を引き、第1方向格子ラインと2つの準第1方向格子ラインとの交点を求め、仮格子点G’G’G’及びG’G’G’とする。(図11)
(ステップ17)
ステップ14及びステップ16により、基準ドットP近傍の格子点を囲む計9個の格子点及び仮格子点が求まる。上記、計9個の格子点及び仮格子点の周囲にある14個の格子点について、第1及び第2方向格子ライン間距離(D、D)を基に、それぞれの格子ライン方向でその位置を推測し仮格子点とする。その仮格子点を中心にスパイラル状に仮格子点から最も近い位置のドットを探し仮格子点近傍の14個のドットが見つかり、9個の格子点及び仮格子点近傍のドットと併せてmPnとする(図12参照)。
(ステップ18)
まず、及びをそれぞれ結んで準第2方向格子ラインとする。
(ステップ19)
次に、及びをそれぞれ結んで準々第1方向格子ラインとする。
(ステップ20)
次に、及びをそれぞれ結んで準々第2方向格子ラインとする。
(ステップ21)
5本の第1方向格子ラインと5本の第2方向格子ラインにより、仮格子点22個が格子点に替わり全ての格子点25個の位置が求まる。
(ステップ22)
基準ドットPoは基準第1方向ラインを形成し格子点から第1方向にオフセットすることから、他の全てのドットは、第1方向か、第2方向のいずれかに格子点からオフセットするかが定まり、そのオフセットする方向により1ビットの情報を有する。なお、コーナードット及びベクトルドットは格子点上にドットが重なる格子ドットとなる。
(ステップ23)
25個のドットの内、コーナードットとベクトルドットがそれぞれ1個以上あり、コーナードット、ベクトルドット含めて最小で2個以上、最大で5個の格子ドットが見つかる。
(ステップ24)
格子ドットの内、基準ドットPoから最も近い格子ドットと、その格子ドットから最も近い格子ドットの2個を選ぶ。この場合、必ずコーナードットとベクトルドットとなる。まず基準ドットPoから最も近い1個目の格子ドットと、その格子方向両隣の2個の情報ドットと結ぶラインが格子ラインと重なる方向を探す。この方向と上記両隣の2個の情報ドット近傍の格子点の内、2個目の格子ドットに近い格子点と2個目の格子ドットを結ぶ方向がもう1つの格子ライン方向であり、その間が2格子離れた位置にあるかどうか判定する。この条件を満足すれば、1個目の格子ドットがベクトルドットとなり、2個目のドットがコーナードットである。条件を満足しなければ、2個目の格子ドットについて同じ判定をする。もし2個のドットとも条件を満足しなければ、エラーとなる。なお、上記ベクトルドットとコーナードットが乗る2つの格子ラインが交わる格子点からベクトルドットへの向きがドットパターンの向きとなる(図13参照)
(ステップ25)
上記ベクトルドットとコーナードットにより、他のベクトルドットとコーナードットの位置を推測し、その位置にステップ23で見つかった格子ドット全てが重なるかどうか確認する。もし重ならない格子ドットがある場合、エラーとなる。
(ステップ26)
以上から、ドットパターンの向きと全ての情報ドットが格子点からオフセットする方向がわかり、ドットパターンの向きとその向きの90°右方向を1、それらの逆方向を0とし、1ブロック分の情報が算定される。なお、撮影中心鉛直方向とドットパターンの向きがなす角度を求めることにより、この角度を情報パラメータとすることができる。なお、図14では、角度情報パラメータはφ=0°となっている。
(ステップ27)
図1〜9は、光学読取装置801を傾けて斜め方向からドットパターンを読み取り、ドットパターンが長方形に変形した例であるが、光学読取装置の撮影中心鉛直方向とドットパターンの向きに角度を持ち、ひし形状に変形した場合も上記ステップ1〜26が適正に実施できる(図15参照)。
(ステップ28)
1ブロック分のデータ算定は、コード形式のデータの場合、任意のエリアのどのブロックのデータも、全て同一のコードが記録されているため、必ずしも4個のコーナードットに囲まれているドットのビット情報を得る必要はなく、ブロックをまたいでも、1ブロック分の該当する各ドットのビット情報(1 or 0)が得られれば、1ブロック分のデータが算定できる。
なお、xy座標形式の場合は、隣のブロックのxy座標の増分値と撮影中心位置により、補正及び補間し、撮影中心の正確な座標値が算定される。すなわち、ブロック内のデータがxy座標を意味している場合、まず格子ドットとベクトルドットとの位置関係から、撮影中心がブロックのどの位置にあるのかが判定される。次に、撮影範囲に含まれる隣のブロックから参照した部分のデータに補正をかけて当該撮影中心ブロックの撮影範囲に含まれない部分のデータを補間する。これによって当該ブロックのxy座標(具体的には撮影中心が含まれるブロックのxy座標)が求められる。
このxy座標はブロック中心のxy座標を意味するものであり、ブロック中心の位置と撮影中心の位置のずれの量と、ブロック間のxy座標の増減量を線形補間して、当該ブロックの真のxy座標を求めることができる。
なお、本発明のドットパターンを用いた情報入出力方法は、上記した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
たとえば、印刷上の背景とする場合、格子点そのものにドットを配置してもよい(ダミードットパターン)。このようなダミードットパターンは、線画の認識できる境界領域(マスク画像とマスク画像との境界部分)に用いることができる。また、このダミードットパターンは、印刷上の背景とすることもできる。この場合、光学読取装置で読み取ったときに、情報ドットが存在しないことからエラー出力を行う。このエラー出力により背景であることを認識することができ、背景に合わせたバックグラウンドミュージック(BGM)等の音楽や小鳥の囀り等を出力させることができる。
また、実施形態において、ベクトルドットは4×4格子ブロック(グリッド)の情報ブロックの方向を示すものであるが、このベクトルドットを用いることによって光学読取装置の読取方向を認識することができるため、同じ情報ブロックのドットパターンであっても、読取方向によって異なった意味を持たせることも可能である。すなわち、同一のドットパターンに対して、読取光軸を中心に光学読取装置を90度、180度または270度回転させて読み取ることにより、ベクトルドットの位置も画像メモリ上で情報ブロックに対して左右、または下方向となるため、情報ブロック内のドットパターンを読み取った後に、ベクトルドットの位置から得られた向き情報に応じて出力(音声等)を変化させてもよい。たとえばクロスワードパズルの各マスに本発明のドットパターンを印刷しておき、光学読取装置の読取面を光学軸を中心に90度回転させることにより縦方向のワードのヒント、横方向のワードのヒントをそれぞれわけて表示出力(音声出力)させるようにしてもよい。さらに、ベクトルドットを用いて光学読取装置の読み取りの際の回転角度を認識する技術について、上記では90度単位で回転させた場合で説明したが、最小回転角度として5度程度でもその角度認識が可能である。
また、実施形態では格子ブロックの数は4×4で1つの情報単位としたが、このブロック数は自由に変更可能である。
【産業上の利用可能性】
本発明のドットパターンを用いた情報入出力方法は絵本やシール等の印刷媒体に用いることにより、紙媒体の印刷情報に対してさらに他の文字情報、画像情報、音声情報等を付加することができる。
また、本発明によれば、印刷媒体のドットパターンを利用することによりタブレット入力の代替とすることができる。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】


【特許請求の範囲】
【請求項1】
媒体上に形成されたドットパターンであって、xy方向に所定間隔毎に設けられた仮想的な格子線上でかつ格子点からx方向またはy方向に所定間隔だけずらした情報ドットを配置したドットパターンを、
光学読取装置で読み取り、
光学的に読み取った当該ドットパターンを画像メモリ上に展開し、
画像メモリ上のビットマップ計算により、各情報ドットについて前記格子点からのx方向またはy方向へのずれ方を認識し、
前記ずれ方に対応させて各情報ドットに値を付与し、
隣接する情報ドット間の値の差分を算出してビット情報とし、
所定領域内のビット情報群を座標情報またはコード情報として出力するドットパターンを用いた情報入出力方法。
【請求項2】
前記仮想的な格子線上での各格子点からのx方向またはy方向の所定間隔のずれは、隣接する情報ドット毎にx方向、y方向へのずれが交互に生じていることを特徴とする請求項1記載のドットパターンを用いた情報入出力方法。
【請求項3】
所定数の格子領域毎に格子点上に配置されたコーナードットを有し、該コーナードットで囲まれた領域を前記所定領域として座標情報またはコード情報を登録した請求項1記載のドットパターンを用いた情報入出力方法。
【請求項4】
前記コーナードットで囲まれた領域外または領域内の格子点上に前記所定領域の向きを意味するベクトルドットが配置された請求項3記載のドットパターンを用いた情報入出力方法。
【請求項5】
前記で出力されたビット情報群に対して、各ビットに対応して鍵パラメータを格納したセキュリティテーブルを記憶装置内に備えており、各ビット情報を鍵パラメータで演算処理することで真値を算出することを特徴とする請求項1乃至4記載のドットパターンを用いた情報入出力方法。
【請求項6】
媒体上に形成されたドットパターンであって、xy方向に所定間隔毎に設けられた仮想的な格子線上で、かつ隣接する格子点毎にx方向またはy方向に交互に所定間隔だけずらした情報ドットを配置したドットパターンを、
光学読取装置で読み取り、
光学的に読み取った当該ドットパターンを画像メモリ上に展開し、
前記1個おきに配置された情報ドットを探索してビットマップ上でx方向とy方向の格子線を認識し、
ビットマップ上での各格子点の座標を認識し、
ビットマップ計算により、各情報ドットについて前記格子点からのx方向またはy方向へのずれ方を認識し、
前記ずれ方に対応させて予め定義されている値を各情報ドットに付与し、
隣接する情報ドット間の値の差分を算出してビット情報とし、
所定領域内のビット情報群を出力し、
前記ビット情報群に対して、各ビットに対応して鍵パラメータを格納したセキュリティテーブルから鍵パラメータを読み出して、演算処理することで真値群を算出し、
前記真値群に対応したコード情報または媒体面上の座標情報群を出力するドットパターンを用いた情報入出力方法。
【請求項7】
媒体上にxy方向に所定間隔毎に設けられた仮想的な格子線上で、かつ隣接する格子点毎にx方向またはy方向に交互に所定間隔だけずらした情報ドットを配置するドットパターン生成方法であって、
真値群に対してセキュリティテーブルから読み出した鍵パラメータを演算処理してビット情報群を算出し、
x方向またはy方向の初期格子線上に配置される初期ドットを任意の乱数を用いて決定し、
前記初期ドットを予め設定された格子点からのずれ規則に基づいて配置し、
前記初期ドットが意味する値にビット情報値を加算して第2の格子線上に配置されるドットの値を計算し、
前記第2の格子線上で各ドットを予め設定された格子点からのずれ規則に基づいて配置し、
前記ドットの配置を、格子線n上のドットの配置を格子線n−1上のドットに基づいて順次繰り返すドットパターン生成方法。

【国際公開番号】WO2005/064530
【国際公開日】平成17年7月14日(2005.7.14)
【発行日】平成19年7月19日(2007.7.19)
【国際特許分類】
【出願番号】特願2004−564079(P2004−564079)
【国際出願番号】PCT/JP2003/016763
【国際出願日】平成15年12月25日(2003.12.25)
【特許番号】特許第3766678号(P3766678)
【特許公報発行日】平成18年4月12日(2006.4.12)
【出願人】(503349741)
【Fターム(参考)】