(57)【特許請求の範囲】
【請求項１】
平面状の記録面に、ビットに対応する行列状の枡目を仮想的に設定し、上記各枡目に光学的に認識可能なマークを付与することにより、記録すべきデジタル情報が、上記各枡目の位置を示すための位置決め用マークと、読取誤りを検出するための誤り検出用符号とともに２次元パターンとして記録されている記録担体から、上記デジタル情報を読み取るデジタル情報解読方法であって、
上記記録面に記録された２次元パターンを、上記枡目の密度よりも高密度のイメージビットからなる画像データに対応させて変換する工程と、
上記位置決め用マークに基づいて上記画像データ上における上記各枡目の中心位置を算出中心位置として求め、上記画像データのうちその算出中心位置に存するイメージビットの値のみを調べて、このイメージビットの値を上記各枡目の値として読み取る工程と、
上記誤り検出用符号を検査することによって、上記読み取った枡目の値に読取誤りがあるか否かを判断する工程と、
上記読み取った枡目の値に読取誤りがあった場合は、
上記各枡目毎に、その枡目の寸法の範囲内で、上記算出中心位置から一定量だけ調べるべき位置をシフトして、このシフトした位置に存するイメージビットの値をその枡目の値として読み取る第１の解析方法、
上記各枡目毎に、その枡目に含まれる複数のイメージビットの値の平均値を算出し、この平均値と所定の閾値とを比較して、この比較結果に基づいてその枡目の値を決定する第２の解析方法、および、
調べた位置の枡目の境界を認識し、この認識した枡目の境界と上記算出中心位置との距離に基づいて、上記位置の枡目に隣接する枡目の算出中心位置が真の中心位置となるように補正し、この補正後の算出中心位置に存するイメージビットの値を上記隣接する枡目の値として読み取る第３の解析方法のうち少なくとも１つの解析方法を実行して、上記各枡目の値を読み取る工程を有することを特徴とするデジタル情報解読方法。
【請求項２】
請求項１に記載のデジタル情報解読方法において、
上記記録担体には、上記情報記録領域に含まれる各領域に対応して上記誤り検出用符号が複数配置され、
上記情報記録領域の各領域の枡目を全て読み取る毎に、その領域に対応する誤り検出用符号を参照して、上記領域の枡目の値に読取誤りがあるか否かを検査し、
上記領域の枡目の値に読取誤りがあった場合は、上記領域に対して上記第１乃至第３の解析方法のうち少なくとも１つの解析方法を実行することを特徴とするデジタル情報解読方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
この発明は、紙等のシート状の記録担体に２次元パターンとして記録されたデジタル情報を解読するデジタル情報解読方法に関する。
【０００２】
【従来の技術】
紙等の記録面にデジタル情報を記録する方式として、バーコード等よりも高密度、大容量でデータを記録できるマトリックスコード（例えば、米国ＩＤマトリックス社のデータコードや米国ベリテック社のベリコード）が発表されている。マトリックスコードは、記録面内に設けられた情報記録領域に、ビットに対応する行列状の枡目を仮想的に設定し、各枡目に白黒等の光学的に認識可能なマークを付与して、記録すべきデジタル情報を２次元パターンとして表したものである。
【０００３】
このようなマトリックスコードを読み取る場合、ＣＣＤラインセンサの走査やＣＣＤカメラによって２次元パターンを画像データとして入力し、この画像データ全体を解析して読み取る方法が一般に行われている。この方法では、バーコードを読み取る場合に比べて大量の画像データを処理しなければならず、処理時間が増大する。
【０００４】
これに対して、最近、マトリックスコードに付加した位置決め用マークに基づいて各枡目の中心位置を算出し、画像データのうちその算出した中心位置（以下「算出中心位置」という。）に存するイメージビットのみをサンプリングする解読方法が提案されている（特開平５−３１４２９８号公報）。この解読方法によれば、情報記録領域に記録された情報を高速に読み取ることができる。
【０００５】
【発明が解決しようとする課題】
ところで、入力された画像データには、入力処理に起因する濃度ムラ、機械的誤差に起因する歪み、汚れに起因するノイズ等（以下「異常」と総称する。）が発生する可能性がある。しかしながら、特開平５−３１４２９８で提案された解読方法は、算出中心位置に存するイメージビットのみを単にサンプリングしているため、サンプリングした箇所に異常があった場合、読取誤りが生ずるという問題がある。
【０００６】
そこで、この発明の目的は、高速に読取を行うことができる上、画像データに異常があったとしても確実に読取を行うことができるデジタル情報解読方法を提供することにある。
【０００７】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載のデジタル情報解読方法は、平面状の記録面に、ビットに対応する行列状の枡目を仮想的に設定し、上記各枡目に光学的に認識可能なマークを付与することにより、記録すべきデジタル情報が、上記各枡目の位置を示すための位置決め用マークと、読取誤りを検出するための誤り検出用符号とともに２次元パターンとして記録されている記録担体から、上記デジタル情報を読み取るデジタル情報解読方法であって、上記記録面に記録された２次元パターンを、上記枡目の密度よりも高密度のイメージビットからなる画像データに対応させて変換する工程と、上記位置決め用マークに基づいて上記画像データ上における上記各枡目の中心位置を算出中心位置として求め、上記画像データのうちその算出中心位置に存するイメージビットの値のみを調べて、このイメージビットの値を上記各枡目の値として読み取る工程と、上記誤り検出用符号を検査することによって、上記読み取った枡目の値に読取誤りがあるか否かを判断する工程と、上記読み取った枡目の値に読取誤りがあった場合は、上記各枡目毎に、その枡目の寸法の範囲内で、上記算出中心位置から一定量だけ調べるべき位置をシフトして、このシフトした位置に存するイメージビットの値をその枡目の値として読み取る第１の解析方法、上記各枡目毎に、その枡目に含まれる複数のイメージビットの値の平均値を算出し、この平均値と所定の閾値とを比較して、この比較結果に基づいてその枡目の値を決定する第２の解析方法、および、調べた位置の枡目の境界を認識し、この認識した枡目の境界と上記算出中心位置との距離に基づいて、上記位置の枡目に隣接する枡目の算出中心位置が真の中心位置となるように補正し、この補正後の算出中心位置に存するイメージビットの値を上記隣接する枡目の値として読み取る第３の解析方法のうち少なくとも１つの解析方法を実行して、上記各枡目の値を読み取る工程を有することを特徴としている。
【０００８】
また、請求項２に記載のデジタル情報解読方法は、請求項１に記載のデジタル情報解読方法において、上記記録担体には、上記情報記録領域に含まれる各領域に対応して上記誤り検出用符号が複数配置され、上記情報記録領域の各領域の枡目を全て読み取る毎に、その領域に対応する誤り検出用符号を参照して、上記領域の枡目の値に読取誤りがあるか否かを検査し、上記領域の枡目の値に読取誤りがあった場合は、上記領域に対して上記第１乃至第３の解析方法のうち少なくとも１つの解析方法を実行することを特徴としている。
【０００９】
【作用】
請求項１のデジタル情報解読方法では、最初の読取工程で、画像データのうち各枡目の算出中心位置に存するイメージビットのみを読み取るので、画像データ全体を読み取る場合に比して高速に読取が行われる。そして、読み取った枡目の値に読取誤りがあった場合は、画像データの解析方法が変更され、第１乃至第３の解析方法のうち少なくとも１つの解析方法を実行して各枡目の読み取りが行われる。これにより、画像データに異常があったとしても確実に読み取りが行われる。すなわち、第１の解析方法では、画像データのうち枡目の算出中心位置に局所的な異常があっても正しく読取が行われる。また、第２の解析方法では、画像データの濃度が濃過ぎたり薄過ぎたりしても正しく読取が行われる。また、第３の解析方法では、画像データが歪んでいても正しく読取が行われる。ここで、第１乃至第３の解析方法により再度の読取処理を行う分だけ処理時間が増大する。しかし、上記第１乃至第３の解析方法は、画像データのうち特定の位置に存するイメージビットのみを読み取るので、最初の読取工程と同様に、画像データ全体を読み取る場合に比して高速に読取が行われる。結果として、高速に読取が行われる上、確実に読取が行われる。
【００１０】
請求項２のデジタル情報解読方法では、上記記録担体には、上記情報記録領域に含まれる各領域に対応して上記誤り検出用符号が複数配置され、上記情報記録領域の各領域の枡目を全て読み取る毎に、その領域に対応する誤り検出用符号を参照して、上記領域の枡目の値に読取誤りがあるか否かを検査し、上記領域の枡目の値に読取誤りがあった場合は、上記領域に対して上記第１乃至第３の解析方法のうち少なくとも１つの解析方法を実行するので、上記情報記録領域のうち最初の読取工程で読取誤りがあった領域のみ再度の読取が行われる一方、最初の読取工程で読取誤りがなかった領域は再度の読取が省略される。つまり、局所的な読取誤りがあった場合、再度の読取を行う領域が限定され、全体として処理時間の増大が防止される。
【００１１】
【実施例】
以下、この発明のデジタル情報解読方法を実施例により詳細に説明する。
【００１２】
図２は、読み取るべき記録担体１０の一例を示している。
【００１３】
この記録担体１０には、紙等の記録面２０内に、本来記録すべきデジタル情報を記録した矩形の情報記録領域２３と、その左辺および上辺に沿って設けられたＬ状の同期領域１３とが設けられている。
【００１４】
情報記録領域２３には、ビットに対応する行列状の枡目を仮想的に設定し、記録すべきデジタル情報に応じた明暗（白黒）を上記各枡目に付与して、上記記録すべきデジタル情報が２次元パターンとして記録されている。実際には、記録面２０は本来白色であり、その上にインク等で正方形の黒枡目のみを印刷している。記録すべきデジタル情報は２進数のビット列で表し、２進数の１の値のビットに相当する枡目は白色とし、０の値のビットに相当する枡目は黒色としている。情報記録領域２３内の、ある枡目の位置Ｐｃは、横方向の位置（列数）をｍ（ｍ＝１，２，３，…，ＭＣ）、縦方向の位置（行数）をｎ（ｎ＝１，２，３，…，ＭＬ）としたとき、この２つの位置の組によって
Ｐｃ＝（ｍ，ｎ）
と表される。なお、ｍの最大値ＭＣは情報記録領域２３の横方向の全列数から１を減じた値とする。全列数から１を減じる理由は、情報記録領域２３の右端の列に、後述する誤り検出用符号のための領域２４を確保するためである。２進数のビット列で表したデータのＮ番目（Ｎ＝１，２，３，…，ＭＣ×ＭＬ）のビットに対応する枡目ＰＮを
ＰＮ＝（ｒｅｓ（Ｎ／ＭＣ）＋１，ｉｎｔ（Ｎ／ＭＣ）＋１）
ただし、ｒｅｓ（Ｎ／ＭＣ）は割り算Ｎ／ＭＣの余り、
ｉｎｔ（Ｎ／ＭＣ）は割り算Ｎ／ＭＣの商（整数部分）
とすれば、ビットと枡目とが１対１に対応し、横方向を優先して並べた２次元パターンができる。すなわち、図２は、情報記録領域２３に２進数のビット列
０１１０１０１０００１１０１００１１０１１１０１
１００１０１０１…
を記録した例を示している。
【００１５】
なお、デジタル情報は一般的に２進数で表現可能なので、この表現形式は記録するデータの種類に依存しない。例えば、コンピュータで一般的に用いられるバイト（＝８ビット）を単位とするデータを記録する場合、バイトを構成する各桁のビットの値をｂｉ（ｉは桁を表す）とすると、１バイトのデータの値ａは
0003549936.tif 000002
と表される。各バイトの値をｂ７〜ｂ０の順のビット列に変換すれば、データ全体がビット列で表され、図２の表現形式で記録され得る。
【００１６】
情報記録領域２３の各行の右端の枡目２４は、誤り検出用符号としてのパリティビットが配置されている。パリティビットは、記録時に各行に含まれるビット１（＝白枡目）の個数が奇数になるようにその値を設定しておき、読取時に行毎にビット１の個数が奇数であるかを検査することによって読取誤りを検出できるようにしたものである。行毎にパリティビットを設ける理由は、誤りの発生した領域を行単位で検出し、後述する再読取処理を適用する範囲を限定して、高速な再読取を行うためである。なお、誤り検出能力を高めるためには、パリティビットの代わりにオーディオ用コンパクトディスクで用いられているリードソロモン符号等を用いても良い。
【００１７】
Ｌ状の同期領域１３は、記録面２０上で情報記録領域２３と１枡目分の幅だけ離間して設けられている。この同期領域１３には、記録面２０における情報記録領域２３全体の範囲を示すとともに、個々の枡目の位置を示すための位置決め用マークとしての同期セル１４，１４，…が設けられている。同期セル１４には、情報記録領域２３内の枡目と同じサイズを持つ黒枡目からなるもの（以下「黒セル」という。）と、情報記録領域２３内の枡目と同じサイズを持つ白枡目からなるもの（以下「白セル」という。）とがある。これらの黒セルと白セルとは同期領域１３に交互に配置されており、各セル１４の位置は、情報記録領域２３内の個々の枡目の横方向の位置（列数）と縦方向の位置（行数）に対応している。左上隅に設けられた黒セルは読み取り時に重要な役割を果たすものであり、ここでは左上隅の黒セルを特に基準セル１４Ａと呼ぶ。
【００１８】
図３は、一実施例の読取方法を実施するための読取装置を示している。
【００１９】
この読取装置１００は、ＣＰＵ（中央演算処理装置）１０１と、ＲＯＭ（読み出し専用メモリ）１０２、ＲＡＭ（ランダム・アクセス・メモリ）１０３と、イメージ入力装置１０４を備えている。
【００２０】
ＣＰＵ１０１は、ＲＯＭ１０２が記憶しているプログラムを参照して、この読取装置１００全体の制御を行うようになっている。ＲＯＭ１０２は、ＣＰＵ１０１の動作のためのプログラムを記憶している。ＲＡＭ１０３は、イメージ入力装置１０４が出力する画像データや、ＣＰＵ１０１によって読取されたデータを一時的に記憶することができる。
【００２１】
イメージ入力装置１０４は、記録面２０を走査して、記録されている枡目単位の２次元パターンを、イメージビット単位の２次元配列の画像データに変換する。記録面２０の各枡目の密度よりもイメージビットの密度の方が高く、一つ枡目には横方向および縦方向に複数のイメージビットが対応するものとする。この画像データの各イメージビットは、明暗に対応する２値、即ち０か１で表されていれば十分である。イメージ入力装置１０４は、具体的にはビデオカメラ等に用いられるＣＣＤ撮像装置や、ファクシミリの原稿読取装置等に用いられるラインセンサを使用したイメージスキャナ等で構成される。
【００２２】
図１は、一実施例のデジタル情報解読方法の概略フローを示している。
【００２３】
（１）図１中に示すように、このデジタル情報解読方法では、まず、記録面２０内の情報記録領域２３に記録されたデジタル情報を高速な解析方法で読み取る（Ｓ１１）。
【００２４】
このＳ１１の処理を、図４に示すフローを用いて説明する。まず、イメージ入力装置１０４によって画像データを入力して（Ｓ４１）、記録面２０内に設けられた同期領域１３の同期セル１４を検出する（Ｓ４２）。この同期セル１４の情報から情報記録領域２３の各枡目の位置を決定する（Ｓ４３）。決定した各枡目の位置の明暗値をデータとしてサンプリングする（Ｓ４４）。この読取方法の特徴は、Ｓ４４のサンプリング工程で読取誤りを検出した場合に、再読取を実施することにある。次に、Ｓ４１〜Ｓ４４の各工程を詳しく説明する。
【００２５】
▲１▼まず、図４のＳ４１では、イメージ入力装置１０４によって、図２に示した記録面２０を読み取って、イメージビット単位の２次元配列の画像データを取得する。すなわち、イメージ入力装置１０４の最小読取単位であるイメージビット毎の明暗値を、各イメージビットの位置に対応した２次元配列の画像データとしてＲＡＭ１０３に格納する。
【００２６】
この例では、２次元配列の画像データを、イメージビットの横方向の座標をｘ（ｘ＝１，２，…，ＭＸ）、イメージビットの縦方向の座標をｙ（ｙ＝１，２，…，ＭＹ）として
ＤＩ（ｘ，ｙ）
と表すものとする。ただし、ＭＸは横方向の最大イメージビット数、ＭＹは縦方向の最大イメージビット数である。また、白を表すイメージビット（以下「白イメージビット」という。）の値は１，黒に対応するイメージビット（以下「黒イメージビット」という。）の値は０とする。つまり、
ＤＩ（ｘ，ｙ）＝１    （座標（ｘ，ｙ）のイメージビットが白イメージビットであるとき）
ＤＩ（ｘ，ｙ）＝０    （座標（ｘ，ｙ）のイメージビットが黒イメージビットであるとき）
とする。
【００２７】
なお、イメージ空間で各イメージビットを白黒の枡目で表現した場合、この画像データの２次元配列は、例えば図５のように表される（黒は便宜上ハッチングを施して表している。）。この図５は、図２の記録面２０の左上隅の部分のイメージに相当している。図２と対応する要素には同一の符号を付している。
【００２８】
▲２▼次に、図４のＳ４２では、画像データから同期セル１４の位置を検出する。
【００２９】
（ｉ）図５において、同期セル１４，１４，…のうち黒セル１４に注目すると、個々の黒セル１４は情報記録領域２３や同期領域１３の他の黒セル１４とは白枡目によって分離されているため、画像データ上では一塊の連結した黒イメージビットの集合から構成されている。従って、ある黒セル１４を構成する黒イメージビットの１つを検出できれば、それに連結している黒イメージビットを調べることによって、その黒セルを構成する全ての黒イメージビットを求めることができる。
【００３０】
具体的には、同期領域１３の左上隅の角から図５中に示す矢印Ａ１〜Ａ７に示す順序で走査して、
ＤＩ（ｘ，ｙ）＝０
であるイメージビットを探す。これにより、まず基準セル１４Ａを構成する黒イメージビットの１つを検出する。
【００３１】
あるイメージビットの上下左右に隣接するイメージビットを連結しているイメージビットと規定する条件（４−隣接の条件）を採用すれば、座標（ｘ，ｙ）に存するイメージビットに連結しているイメージビットは、
ＤＩ（ｎｘ，ｎｙ）＝ＤＩ（ｘ，ｙ）
（ｎｘ，ｎｙ）＝｛（ｘ−１，ｙ），（ｘ，ｙ−１），（ｘ＋１，ｙ），（ｘ，ｙ＋１）｝
なる２式を満たす座標（ｎｘ，ｎｙ）のイメージビットとして求められる。新たに見つかった連結しているイメージビットに対して再帰的にこの条件を満たすイメージビットを探していけば、１つの黒セルを構成する全ての黒イメージビットを求めることができる。
【００３２】
なお、黒がカスれ易い条件下においては、あるイメージビットの対角方向に隣接するイメージビットをも連結していると規定する条件（８−隣接の条件）が好ましい場合がある。この場合、座標（ｘ，ｙ）に存するイメージビットに連結しているイメージビットは、
ＤＩ（ｎｘ，ｎｙ）＝ＤＩ（ｘ，ｙ）
（ｎｘ，ｎｙ）＝｛（ｘ−１，ｙ），（ｘ，ｙ−１），（ｘ＋１，ｙ），（ｘ，ｙ＋１），（ｘ−１，ｙ−１），（ｘ−１，ｙ＋１），（ｘ＋１，ｙ−１），（ｘ＋１，ｙ＋１）｝なる２式を満たす座標（ｎｘ，ｎｙ）のイメージビットとして求められる。
【００３３】
上記４−隣接の条件、８−隣接の条件のいずれかによって、基準セル１４を構成する全ての黒イメージビットを求める。
【００３４】
（ｉｉ）基準セル１４Ａを構成する全ての黒イメージビットを求めた後、基準セル１４Ａの中心位置（重心）および幅を求める。
【００３５】
ある黒セルの中心位置（ＣＸ，ＣＹ）は、その黒セルを構成するイメージビットの座標（Ｘｉ，Ｙｉ）の加重平均として求めることができる。すなわち、
ＣＸ＝ΣＸｉ
ＣＹ＝ΣＹｉ
で求められる。また、ある黒セルの幅Ｗは、その黒セルを構成する全イメージビット数ＭＤの平方根として求めることができる。すなわち、
Ｗ＝ＭＤ１／２
で求められる。
【００３６】
このようにして、基準セル１４Ａの中心位置および幅を求めることができる。
【００３７】
（ｉｉｉ）続いて、基準セル１４Ａの横方向および縦方向に並ぶ黒セル１４の位置を検出する。
【００３８】
基準セル１４の横方向右隣に存する黒セル１４については、基準セル１４Ａの中心位置を（ＣＸ，ＣＹ），その幅をＷとすると、
（ＣＸ＋２Ｗ，ＣＹ）
の位置にあることが予想される。従って、この座標近傍の画像データ
ＤＩ（ＣＸ＋２Ｗ＋ｉ，ＣＹ＋ｊ）
（ただし、ｉ，ｊは−Ｗ／２  ≦  ｉ，ｊ  ≦  Ｗ／２を満たす整数とする。）
を走査すれば、最大１セル分の幅のズレや傾きがあったとしても、右隣の黒セルを構成するイメージビットの１つを検出することができる。その黒セルの中心位置は基準セル１４Ａと同じ方法で求められる。
【００３９】
基準セル１４Ａの横方向に並ぶ黒セル１４の数が既知の場合はその数の黒セルを全て検出し終わるまで、横方向に並ぶ黒セル１４の数が既知でない場合は右隣の黒セルが見つからなくなるまで、同様の方法で黒セルを検出する処理を繰り返す。これにより、基準セル１４Ａの横方向に並ぶ黒セル１４を全て見つけることができる。
【００４０】
同様に、基準セル１４Ａの縦方向下隣に存する黒セル１４については、
（ＣＸ，ＣＹ＋２Ｗ）
の位置にあることが予想される。従って、この座標近傍の画像データ
ＤＩ（ＣＸ＋ｉ，ＣＹ＋２Ｗ＋ｊ）
（ただし、ｉ，ｊは−Ｗ／２  ≦  ｉ，ｊ  ≦  Ｗ／２を満たす整数とする。）
を走査すれば、横方向と同様の手順で下隣の黒セル１４の中心位置が求められる。このようにして、横方向と同様に、基準セル１４Ａの縦方向に並ぶ黒セル１４を全て見つけることができる。
【００４１】
（ｉｖ）一方、同期領域１３内に配置された白セル１４の中心位置は、その両側に隣接する黒セルの中間にあると仮定して、その両黒セルの中心座標の平均値として求めればよい。同期領域１３の終端に白セルが存する場合は、そこまでのセルの座標から回帰直線を求め、終端に存する白セルの位置を求めることができる。
【００４２】
簡易な方法としては、求めるべき白セルの直前の黒セル位置（ｘ１，ｙ１）とその前の白セル位置（ｘ２，ｙ２）とから、
（ｘ１×２−ｘ２，ｙ１×２−ｙ２）
で求められる。
【００４３】
以上の手順によって、情報記録領域２３を解析することなしに同期領域１３の同期セル１４の位置を検出することができる。
【００４４】
▲３▼次に、図４のＳ４３では、検出した同期セル１４の位置に基づいて情報記録領域２３の個々の枡目の位置を決定する。
【００４５】
図６に示すように、
基準セル１４Ａの画像データ上の中心座標を位置ベクトルＢ、
基準セル１４Ａの横方向に並ぶ同期セル１４の中心座標を位置ベクトルＭｉ基準セル１４Ａの縦方向に並ぶ同期セル１４の中心座標を位置ベクトルＳｊ求めるべき枡目の中心座標を位置ベクトルＤｉｊ
で表すものとする。ただし、情報記録領域２３の横方向の枡目数をＣ、縦方法の枡目数をＬとして、ｉ，ｊはそれぞれ１≦ｉ≦Ｃ，１≦ｊ≦Ｌを満たす整数とする。
【００４６】
このとき、求めるべき枡目の位置ベクトルＤｉｊは、ベクトルＢにベクトル（Ｍｉ−Ｂ）と（Ｓｊ−Ｂ）のベクトルを加えたものと考えられるので、
0003549936.tif 000003
で求められる。この方法によって、記録面の横方向および縦方向の伸び縮みや座標の線形変換で表される種類の変形によって影響を受けることなく、情報記録領域２３の各枡目の中心位置（算出中心位置）を求めることができる。
【００４７】
▲４▼個々の枡目の算出中心位置が決定できれば、図４のＳ４４に進んで、画像データ全体を走査することなしに、その位置Ｄｉｊのイメージビットの明暗値をサンプリングする。このように、同期セル１４から求めた各枡目の算出中心位置のイメージビットのみをサンプリングすることによって、情報記録領域２３の各枡目の値を高速に読み取ることができる。
【００４８】
（２）さて、以上の工程Ｓ４１〜Ｓ４４により情報記録領域２３の各枡目の値を読み取ることができるが、入力した画像データの濃度が不適当であったり歪みや汚れがあると記録されているデータを誤読してしまう可能性がある。
【００４９】
そこで、図１のＳ１２では、情報記録領域２３の１行を単位として行毎に枡目の値を取り出し、各行の右端に設けられたパリティビットを検査して、行毎に読取誤りの有無を判断する（Ｓ１３）。ここで読取誤りが無かった場合はその行の読取を終了する。一方、読取誤りがあった場合には、後述する未実施の解析方法でその行の読取をやり直す（Ｓ１４）。この後再び、誤り検出符号を検査してその行の読取誤りの有無を判断する（Ｓ１５）。ここで読取誤りが無かった場合はその行の読取を終了する。一方、読取誤りがあった場合には、さらに未実施の解析方法があるか否かを判断して（Ｓ１７）、未実施の解析方法が残っていない場合はその行の解読を終了する。一方、未実施の解析方法が残っている場合は、Ｓ１４に戻って、その未実施の解析方法によってその行の読取をやり直す。
【００５０】
上記画像データの解析方法としては、次に述べる３つの解析方法▲１▼〜▲３▼を採用することができる。
【００５１】
▲１▼第１の解析方法は、読取誤りが検出された行について、各枡目毎に、その枡目の寸法の範囲内で一定量だけサンプリング位置をずらして、前回検出した算出中心位置とは異なる位置に存するイメージビットをサンプリングする方法である。
【００５２】
例えば、図７（ａ）に示す４つの枡目に対応する画像データが、図７（ｂ）に示すようにノイズを含むものであったとする。図７（ｂ）中に示すように、左下の白枡目の内部に黒いノイズＺがある。この場合、左下の白枡目の中心位置ｃのイメージビットをサンプリングして明暗値を評価すると、その白枡目を黒枡目であると読み誤ってしまう。
【００５３】
そこで、読取誤りが検出されたとき、各枡目の範囲内でサンプリング位置をずらして異なるイメージビットの値をサンプリングする。各枡目の画像データは複数のイメージビットを含むため、異なる位置のイメージビットの値をサンプリングすれば正しい値を読み出せる可能性があるからである。図７（ｂ）に示す場合は、同期セル１４の解析により枡目サイズが縦５イメージビット×横５イメージビットであることが分かるので、読取誤りが検出されたその行全ての枡目について、上下左右のいずれかに２イメージビットずつずらした位置のイメージビットｒ１，ｒ２，ｒ３またはｒ４をサンプリングする。この例では、ｒ１およびｒ２の位置で正しい値を読み出すことができる。
【００５４】
▲２▼第２の解析方法は、読取誤りが検出された行について、各枡目毎に、その枡目に含まれるイメージビットの値の平均値ｓを算出し、この平均値ｓと予め定められた閾値ｔとを比較して、その枡目の値を決定する方法である。
【００５５】
例えば、図８（ａ）に示す４つの枡目に対応する画像データが、図８（ｂ）に示すように、濃度が濃過ぎる結果、全体にわたって白枡目が黒くなっているものであったとする。図８（ｂ）中に示すように、左下および右上の白枡目の内部に白イメージビットと黒イメージビットとがランダムに混在している。この場合、左下の白枡目の中心位置ｃのイメージビットをサンプリングして明暗値を評価すると、その白枡目を黒枡目であると読み誤ってしまう。このような場合、画像データ全体に渡って黒くなっているため、前記サンプリング点をずらす方法（第１の解析方法▲１▼）では効果を奏しないおそれがある。
【００５６】
そこで、読取誤りが検出されたとき、ある枡目の中心位置ｃのイメージビットだけでなく、図９（ａ）に示すようにその周囲イメージビットｒ１，ｒ２，…，ｒ８も加えて、その枡目に対応するイメージビットの値の平均値ｓを算出する。このとき、図９（ｂ）に示すように、９個のイメージビットｃ，ｒ１，…，ｒ８の値に対して図９（ｂ）の枠内に示した重みを付ける。この結果、平均値ｓは
ｓ＝ｒ１＋ｒ３＋ｒ６＋ｒ８＋（ｒ２＋ｒ４＋ｒ５＋ｒ７）×２＋ｃ×３
と算出される。そして、この平均値ｓが一定の閾値ｔ以上であればその枡目は白枡目（値１）であると評価する一方、それ以外であればその枡目は黒枡目（値０）であると評価する。このように、複数のイメージビットの値を平均して、画像データに実質的に階調を持たせることにより、枡目の値を正しく読み出すことができる。
【００５７】
なお、全ての白黒のイメージビットの組合せに対する平均値ｓは８であるから、画像データが濃過ぎる場合は閾値ｔを８より小さな値に設定する一方、画像データが薄過ぎる場合は閾値ｔを８より大きな値に設定すれば良い。これにより、枡目の値を正しく読み出せるようになる。
【００５８】
▲３▼第３の解析方法では、読取誤りが検出された行について、ある枡目の境界を認識し、この認識した枡目の境界と同期セル１４から求めたその枡目の中心位置（算出中心位置）との距離に基づいて、上記算出中心位置と真の中心位置との誤差を求める。この求めた誤差に基づいて、上記枡目に隣接する枡目の算出中心位置が真の中心位置になるように補正を行う。
【００５９】
例えば、図１０（ａ）に示すように、画像データＤＩ（ｘ，ｙ）の一部が上側に湾曲した状態で歪んで入力されたとする。この場合、図１０（ｂ）に示すように、算出中心位置（クロスハッチングで示す）ｅ１，ｅ２，…，ｅ５が真の中心位置から上側へずれて、極端なものｅ４は上側に隣接する行の枡目を指示することがある。この例では、ｅ４が本来指示すべき枡目は白、その上側に隣接する枡目が黒であるから、読取誤りが発生する。
【００６０】
そこで、読取誤りが検出されたとき、読取誤りが検出された行について、各枡目の境界を検出する。この検出した枡目の境界とその枡目の算出中心位置との距離に基づいて、上記算出中心位置と真の中心位置との誤差を求める。そして、この求めた誤差に基づいて、次に読み取るべき枡目の算出中心位置が真の中心位置になるように補正を行う。これにより、より精度の高い位置決めが可能となり、枡目の値を正しく読み出すことができる。
【００６１】
例えば、図１１に示す画像データで、予め同期セル１４についての解析によって、枡目の寸法Ｗが縦５イメージビット×横５イメージビットであると分かっているものとする。４つの枡目のうち右下の黒枡目に関して、算出中心位置がイメージビットｐの位置であったとする。ここで、ｐの近傍のイメージビットを調べれば、上方向および左方向に２イメージビットの隔たりで白イメージビットが検出されるので、この枡目の算出中心位置のイメージビットｐと、真の中心位置のイメージビットｃとの誤差（左へ１イメージビット、上へ１イメージビットのずれ）を知ることができる。この誤差に基づいて、次に読み取るべき枡目（この例では上記黒枡目の右隣に隣接する図示しない枡目）について、サンプリングすべきイメージビットの位置を右に１イメージビット、下に１イメージビットだけ補正する。この結果、隣接する枡目内で中心位置に存するイメージビットを正確にサンプリングすることができる。
【００６２】
図１２は、この解析方法▲３▼における、枡目の境界を検出するための処理を示している。
【００６３】
ある枡目の上側の境界を求める場合、まず、枡目の寸法（幅）をＷとし、この枡目の算出中心位置（ｘ０，ｙ０）に存するイメージビットの値ＤＩ（ｘ０，ｙ０）をｄとする（Ｓ１２１）。また、イメージビットを検索するためのシフト量としてｉを定義する。まず、隣接するイメージビットの値を調べるためにｉを１とし（Ｓ１２２）、上記算出中心位置（ｘ０，ｙ０）に存するイメージビットの値ｄと、そこからｉだけ下にシフトした位置に存するイメージビットの値ＤＩ（ｘ０，ｙ０＋ｉ）とを比較する（Ｓ１２３）。比較した２つの値が異なっていれば、枡目の境界を検出できたと判断して、エッジ発見フラグを「真」にして検出処理を終了する（Ｓ１２４）。このときｉに設定されている値が、算出中心位置（ｘ０，ｙ０）と枡目の境界との距離に相当する。
【００６４】
一方、Ｓ１２３で、比較した２つの値が同じであれば、さらに下隣のイメージビットを検索するためにｉの値を１だけ増やし（Ｓ１２５）、このｉの値を枡目の幅Ｗと比較する（Ｓ１２６）。ここで、ｉの値が枡目の幅Ｗより小さければ、その位置（ｘ０，ｙ０＋ｉ）がまだ上記枡目の範囲内にあると判断し、Ｓ１２３に戻って、２つの値ｄとＤＩ（ｘ０，ｙ０＋ｉ）とを比較する。このようにして、ｉの値が枡目の幅Ｗよりも小さく、シフトした位置（ｘ０，ｙ０＋ｉ）がまだ上記枡目の範囲内にある限り、値ｄとＤＩ（ｘ０，ｙ０＋ｉ）との比較を繰り返して境界を検出する。ｉの値が枡目の幅Ｗ以上になれば、枡目の下側の境界は無い、すなわち調べている枡目の値とその下側に隣接する枡目の値とが同じであると判断して、エッジ発見フラグを「偽」にして検出処理を終了する（Ｓ１２７）。
【００６５】
上記枡目の上側の境界を求める場合は、Ｓ１２３で、上記算出中心位置（ｘ０，ｙ０）に存するイメージビットの値ｄと、そこからｉだけ上にシフトした位置に存するイメージビットの値ＤＩ（ｘ０，ｙ０−ｉ）とを比較する。それ以外の処理は、下側の境界を求める場合と同様である。
【００６６】
また、上記枡目の左側の境界を求める場合は、Ｓ１２３で、上記算出中心位置（ｘ０，ｙ０）に存するイメージビットの値ｄと、そこからｉだけ左にシフトした位置に存するイメージビットの値ＤＩ（ｘ０−ｉ，ｙ０）とを比較する。それ以外の処理は、上側の境界を求める場合と同様である。
【００６７】
また、上記枡目の右側の境界を求める場合は、Ｓ１２３で、上記算出中心位置（ｘ０，ｙ０）に存するイメージビットの値ｄと、そこからｉだけ右にシフトした位置に存するイメージビットの値ＤＩ（ｘ０＋ｉ，ｙ０）とを比較する。それ以外の処理は、上側の境界を求める場合と同様である。
【００６８】
このようにして、枡目の上下左右の境界を検出する。
【００６９】
ある枡目の上下の境界を検出できた場合は、その枡目の算出中心位置（ｘ０，ｙ０）から上側，下側の境界までの距離をそれぞれｉ１，ｉ２とすれば、その枡目の算出中心位置（ｘ０，ｙ０）は真の中心位置に対して上側へ
（ｉ２−ｉ１）／２
イメージビット分だけずれていると認められる。したがって、次に読み取るべき枡目の算出中心位置を、その分だけ下方へ補正する。
【００７０】
また、ある枡目について上側または下側の一方のみ境界を検出した場合は、
その枡目の算出中心位置（ｘ０，ｙ０）からその境界までの距離をｉ３とすれば、その枡目の算出中心位置（ｘ０，ｙ０）は真の中心位置に対してその境界の側へ
Ｗ／２−  ｅ  ＋  ０．５
イメージビット分だけずれていると認められる。したがって、次に読み取るべき枡目の算出中心位置を、その境界とは逆の側へその分だけ補正する。
【００７１】
同様にして、左右方向についても、次に読み取るべき枡目の算出中心位置が真の中心位置となるように補正することができる。
【００７２】
ここで、境界を検出しようとする枡目の上下左右に、その枡目と同じ値を持つ枡目が存在する場合は、いずれの側の境界も検出することができず、この第３の解析方法を適用することができない。このような場合、情報記録領域にデジタル情報を記録する段階で、白枡目黒枡目が連続しないような処理を施しておく。例えば、本来記録すべき２次元パターン（第１次パターン）と、市松模様を持つ変調用パターンとを枡目毎に１対１に対応させて、対応する枡目が表す値の排他的論理和を算出し、この排他的論理和の値を表す白枡目および黒枡目からなる第２次パターンを作成し、この第２次パターンを情報記録領域２３に表現しておく。。この第２次パターンは白枡目と黒枡目とが連続しにくく、分散されたものとなっている。したがって、各枡目の境界を容易に検出することができる。
【００７３】
なお、上記第１〜第３の解析方法は、画像データの状態に応じて各行毎に適宜組み合わせて適用することができる。また、複数の行にわたって第１〜第３の解析方法のうちの一つの解析方法を適用した結果、読取誤りが無くならないときに、その複数の行に対して順次別の解析方法を適用するようにしても良い。
【００７４】
【発明の効果】
以上より明らかなように、請求項１に記載のデジタル情報解読方法は、請求項１のデジタル情報解読方法では、最初の読取工程で、画像データのうち各枡目の算出中心位置に存するイメージビットのみを読み取るので、画像データ全体を読み取る場合に比して高速に読取を行うことができる。読み取った枡目の値に読取誤りがあった場合は、第１乃至第３の解読方法のうち少なくとも１つの解析方法を実行して各枡目の読み取りを行うので、画像データに異常があったとしても確実に読み取りを行うことができる。すなわち、第１の解析方法では、画像データのうち枡目の算出中心位置に局所的な異常があっても正しく読取を行うことができる。また、第２の解析方法では、画像データの濃度が濃過ぎたり薄過ぎたりしても正しく読取を行うことができる。また、第３の解析方法では、画像データが歪んでいても正しく読取を行うことができる。ここで、第１乃至第３の解析方法により再度の読取処理を行う分だけ処理時間が増大が、上記第１乃至第３の解析方法は、画像データのうち特定の位置に存するイメージビットのみを読み取るので、最初の読取工程と同様に、画像データ全体を読み取る場合に比して高速に読取を行うことができる。結果として、高速に読取を行うことができる上、確実に読取を行うことができる。
【００７５】
請求項２のデジタル情報解読方法では、上記記録担体には、上記情報記録領域に含まれる各領域に対応して上記誤り検出用符号が複数配置され、上記情報記録領域の各領域の枡目を全て読み取る毎に、その領域に対応する誤り検出用符号を参照して、上記領域の枡目の値に読取誤りがあるか否かを検査し、上記領域の枡目の値に読取誤りがあった場合は、上記領域に対して上記第１乃至第３の解析方法のうち少なくとも１つの解析方法を実行するので、局所的な読取誤りがあった場合、再度の読取を行う領域を限定でき、全体として処理時間の増大を防止することかできる。
【図面の簡単な説明】
【図１】この発明の一実施例のデジタル情報解読方法の全体フローを示す図である。
【図２】読み取るべき記録担体を示す図である。
【図３】上記デジタル情報解読方法を実施するための読取装置の構成を示す図である。
【図４】上記デジタル情報解読方法における最初の読取工程のフローを示す図である。
【図５】入力した画像データを模式的に示す図である。
【図６】同期セルの位置に基づいて情報記録領域内の枡目の算出中心位置を求める方法を説明する図である。
【図７】画像データにノイズが含まれている例を示す図である。
【図８】画像データに濃度ムラが含まれている例を示す図である。
【図９】枡目に含まれるイメージビットに対する重み付けを説明する図である。
【図１０】画像データに歪みが含まれる例を示す図である。
【図１１】算出中心位置を補正する仕方を説明する図である。
【図１２】第３の解析方法における枡目の境界を検出するためのフローを示す図である。
【符号の説明】
１０  記録担体
１３  同期領域
１４  同期セル
１４Ａ  基準セル
２３  情報記録領域
２４  パリティビット
【図１】
0003549936.tif 000004
【図２】
0003549936.tif 000005
【図３】
0003549936.tif 000006
【図４】
0003549936.tif 000007
【図５】
0003549936.tif 000008
【図６】
0003549936.tif 000009
【図７】
0003549936.tif 000010
【図８】
0003549936.tif 000011
【図９】
0003549936.tif 000012
【図１０】
0003549936.tif 000013
【図１１】
0003549936.tif 000014
【図１２】
0003549936.tif 000015