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