(57)【要約】【課題】  一次元のセンサーをもつハンディスキャナで、大容量のメモリを必要とせずに、二次元バーコードを高速に、しかもリアルタイムに解読する。【解決手段】  主走査方向にデータが存在することを示すタイミングマークを付加した複数のモジュールから構成されるバーコードを副走査方向に配列した二次元バーコードにおいて、ハンディスキャナに対応して主走査方向および副走査方向の解像度のピッチに対して、それぞれ奇数倍のピッチサイズで最小モジュールを構成するようにし、読取方法において、タイミングマークの副走査方向の中心を検出する手段と、前記検出手段が中心を検出した時点で、主走査方向に並んだ各モジュールの中心のデータを読み取る手段とを備える。【選択図】  図１
2006202031.tif 000002
【特許請求の範囲】
【請求項１】
主走査方向にデータが存在することを示すタイミングマークを付加した複数のモジュールから構成されるバーコードを副走査方向に配列した二次元バーコードにおいて、ハンディスキャナに対応して主走査方向および副走査方向の解像度のピッチに対して、それぞれ奇数倍のピッチサイズで最小モジュールを構成するようにし、読取方法において、タイミングマークの副走査方向の中心を検出する手段と、前記検出手段が中心を検出した時点で、主走査方向に並んだ各モジュールの中心のデータを読み取る手段とを備えることを特徴とする二次元バーコードとその解読方法。
【発明の詳細な説明】
【技術分野】
【０００１】
バーコードの構造に関し、特にラインイメージセンサにて主走査を行い、手動で原稿上を移動させることによって副走査を行なうようなハンディスキャナを使用した場合に最適となるバーコードの構造およびその解読方法に関する。
【背景技術】
【０００２】
従来、この種の二次元バーコードを解読するには、二次元または一次元のイメージデバイスで非常に微細な間隔で読み取った後に、タイミングマークや実データを検出するのに周辺の画素データを絡めて画像処理をしている。
【０００３】
又、別の従来例としては、特許文献１をあげることが出来る。
【特許文献１】特開平０８−０５１５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、二次元バーコードは大量のデータが高密度で記録されているため、それを読み取るには６００ｄｐｉ程度の微細な間隔で読取を行なわなければならず、読み取るデータ量が非常に多くて、従来の画像処理をする方法は、大容量のメモリを必要とし、読み取りおよびコードの解読に時間がかかるものであった。
【０００５】
本発明の目的は、一次元のセンサーをもつハンディスキャナで、大容量のメモリを必要とせずに、二次元バーコードを高速に、しかもリアルタイムに解読することにある。
【課題を解決するための手段】
【０００６】
本発明は、上記のような課題を解決するために、二次元バーコードにおいて、ハンディスキャナに対応して主走査方向および副走査方向の解像度のピッチに対して、それぞれ奇数倍のピッチサイズで最小モジュールを構成するようにし、また、主走査方向にデータが存在することを示すタイミングマークの副走査方向の中心を検出した時点で、主走査方向に並んだ各モジュールの中心のデータを読み取るようにしたことを特徴とする。
【発明の効果】
【０００７】
以上説明したように、二次元バーコードにおいて、ハンディスキャナに対応して主走査方向および副走査方向の解像度のピッチに対して、それぞれ奇数倍のピッチサイズで最小モジュールを構成するようにしたことで、主走査方向および副走査方向においてモジュールの中心の検出が容易であり、また、主走査方向にデータが存在することを示すタイミングマークの副走査方向の中心を検出した時点で、主走査方向に並んだ各モジュールの中心のデータを読み取るようにしたことで、複雑な画像処理を必要としないため、１ライン相当のメモリしか必要とせず、リアルタイムでデコードが可能であり、高速に解読が可能となる効果がある。
【発明を実施するための最良の形態】
【０００８】
以下に、本発明の実施の形態について図面を参照しながら説明を行なう。
【０００９】
図１に示したシステム構成例は、ハンディスキャナを使用したシステムの一例を示した図である。
【００１０】
１０１は、ハンディスキャナであり、原稿（１０２）に描かれた二次元画像（１０３）を読み取る機能と、該読取によって取得した画像データをデータベース装置（１０４）に送信する機能も有している。また、少なくとも１つ以上のキー入力手段を有し、読み取り開始のタイミングを前記キー入力で行なう。さらに、可聴もしくは可視にて表示を行なう表示手段を有し、読取時にエラーが発生した時など、オペレータに通知が必要な場合に前記表示手段にて各種表示を行なうようになっている。
【００１１】
１０２は、二次元画像（１０３）が描かれた原稿を示している。該ハンディスキャナで読み取り可能な二次元画像が印刷されている雑誌や書籍、その他の印刷物などを示している。
【００１２】
１０３は、実際に該ハンディスキャナで読み取りを行なう二次元画像である。該原稿の一部分に、該ハンディスキャナにて読み取り可能なサイズや形状、或いは解像度にて描かれている。主に任意の情報をコード化したバーコードや、雑誌や書籍に記載されている記事や画像などとなっている。
【００１３】
１０４は、該ハンディスキャナとの通信機能を有したデータベース装置であり、例えばＰＣであっても良い。読み取られた二次元画像を該ハンディスキャナから画像データとして受信し、各種のアプリケーションに応じて付属のモニター装置（１０５）に表示を行なう。例えば、該ハンディスキャナで読み取った二次元画像がコード化された情報であって、該情報がデータベース装置内部に保存しているファイルやデータのロケーション情報であった場合は、所望のファイルやデータを検索して付属のモニターに表示するなどがある。
【００１４】
１０５は、モニター装置であり、例えばテレビであっても良い。該データベース装置の画面表示装置としての機能を有し、該データベース装置のアプリケーションに応じた表示を行なうものとなっている。
【００１５】
図２に示したブロック図は、図１に示したハンディスキャナ（１０１）の簡単な機能ブロックを示した図である。図中の太線の矢印は該ハンディスキャナで取り扱う画像情報（データ）の流れを、細線の矢印（２１０〜２１５）は制御信号（検出信号など）の流れを示し、各ブロック（２０１〜２０８）は各機能ブロックとして現している。
【００１６】
２０１は、制御部であり、該ハンディスキャナの動作をコントロールしている。図中の全ブロック（２０２〜２０８）を監視し、必要に応じて制御するものであり、メモリ部（２０７）のバーコードをデコードすることが最も重要な機能である。また、内部には時計機能を内蔵しており、各ブロックに対して時間を通知したり、タイマーを構成して各処理の制御に使用したりしている。
【００１７】
２０２は、画像読取部であり、二次元画像の読取を行なう機能を有している。内部は、画像を１画素単位で画像走査を行なうセンサーが１次元的に複数並べたラインイメージセンサで構成され、該制御部からのタイミング（該ハンディスキャナが副走査方向に１画素単位移動したことを示す）に応じて該ラインイメージセンサが該主走査を繰り返すことによって二次元画像の読取を行なう仕組みになっている。該制御部の指示に従って、該主走査を行って得られた画像データは１画素単位毎に順次メモリ部（２０７）に送られる。
【００１８】
２０３は、移動検出部であり、該ハンディスキャナが副走査方向への移動に対して一定量移動する毎に通知を行なう機能を有している。内部は、回転部材によって形成されたエンコーダで構成される。該エンコーダは、該ハンディスキャナが原稿上を移動するのに伴って、原稿との摩擦によって回転するローラと機械的に接続されている。オペレータの手動操作によって該ハンディスキャナが原稿上を移動すると、該ローラが回転し、その回転量を該エンコーダに伝達する。そして、該エンコーダが一定量回転したとき、該ハンディスキャナが副走査方向へ１画素単位移動したと判定し、そのタイミングを該制御部に通知する仕組みとなっている。
【００１９】
２０４は、キーＩ／Ｆ部であり、該ハンディスキャナに装備している操作キーに入力（押下）があるかどうかを検出する機能を有している。操作キーには、該ハンディスキャナで二次元画像の読取開始のタイミングを示すキーや読取終了のタイミングを示すキーなどがある。該操作キーの入力（押下）を検出するとその旨を該制御部に通知する仕組みとなっている。
【００２０】
２０７は、メモリ部であり、該ハンディスキャナにて読取られた画像データを一時的に記憶する機能を有している。一回の読取りによって得られる画像データ毎に記憶され、該制御部からの指示により必要に応じてデータ送信部（２０８）に送信する仕組みとなっている。
【００２１】
２０８は、データ送信部であり、図１に示したデータベース装置（１０４）へデータを送信する機能を有している。該ハンディスキャナにて文字や絵柄として二次元画像を読み取ったときはその画像データを、バーコードを読み取ったときはそのバーコードを解読して得られた情報をそれぞれ送信する仕組みとなっている。
【００２２】
図３は本発明の一実施例を示す二次元バーコードの構成図である。
【００２３】
１０１はハンディスキャナのセンサー部を示したものであり、主走査方向に６００ｄｐｉの解像度を持ち、副走査方向には、ローラと連動するエンコーダがあり（図示していない）６００ｄｐｉの解像度を持っており、副走査方向に向かって進みながら主走査方向のバーコードデータを読み取るようになっている。
【００２４】
３０２はバーコードの開始を示すスタートコードであり、本実施例では１バイトのデータで構成されていて、このスタートコードを認識することによって実データの読み取りが開始できる。
【００２５】
３０３と３０４はタイミングマークであり、主走査方向にバーコードデータが存在することを示すものである。また、上タイミングマーク３０３と下タイミングマーク３０４は副走査方向に対して交互に出現するようになっており、副走査方向にバーコードが接近してもタイミングマークが確実に検出できるようになっている。
【００２６】
３０５はバーコードの実データ部であり、１個のタイミングマークあたりに１バイト（最小モジュールが１ビットで８ビット）のデータが上がＭＳＢ下がＬＳＢの構成で配置されている。
【００２７】
３０６はバーコードのデータ部およびタイミングマークを示す最小モジュールの構成であり、ハンディスキャナの主走査方向、副走査方向の解像度に対応してそれぞれ６００ｄｐｉのプリンタードット５個で構成されている。
【００２８】
次に図４は本発明における二次元バーコード読み取り時の制御部（２０１）の動作を示すフローチャートであり、以下に図に従って動作を説明する。
【００２９】
（ステップ４０１：１ライン読取）
移動検出部（２０３）からの副走査方向への移動通知により、画像読取部（２０２）を起動して、主走査方向の１ラインの画素データを読み取り、メモリ部（２０７）に記憶する。
【００３０】
（ステップ４０２：スタートコード検索）
メモリ部（２０７）に記憶された画素データからスタートコードのパターンがあるかどうかを検索して、該当するパターンが無かった場合は１ライン読取（ステップ４０１）に戻る。
【００３１】
（ステップ４０３：上マークのサーチ位置計算）
現在デコード処理をしたバーコード１バイトのＭＳＢをデコードしたセンサー位置から（初回はスタートコードのＭＳＢをデコードしたセンサー位置から）次のタイミングマークの位置を予測してサーチ位置を計算する。
【００３２】
具体的には図５に示すように、副走査方向は次の走査から、主走査方向はＭＳＢをデコードしたセンサー位置から１７個分アップしたセンサー位置から始まる点線で示した範囲ということになる。
【００３３】
（ステップ４０４：１ライン読取）
移動検出部（２０３）からの副走査方向への移動通知により、画像読取部（２０２）を起動して、主走査方向の１ラインの画素データを読み取り、メモリ部（２０７）に記憶する。
【００３４】
（ステップ４０５：上マーク検索）
メモリ部（２０７）に記憶された画素データからステップ４０３で計算したサーチ位置にタイミングマークがあるか（黒画素があるか）を判定し、無ければサーチ終了判定（ステップ４１３）に遷移する。
【００３５】
（ステップ４０６：上マーク中心判定）
現在の副走査位置がタイミングマークの中心であるかを判定して、中心でなければ１ライン読取（ステップ４０４）から繰り返す。具体的には、副走査方向に３ライン連続で黒画素があったかで判定する。
【００３６】
（ステップ４０７：データデコード処理（上））
タイミングマークの中心を走査していることを検出すると、図７に示すように、マーク検出センサー位置（Ｎ）を基準として、最小モジュールの中心であるセンサー位置Ｎ−１２、Ｎ−１７、Ｎ−２２、Ｎ−２７、Ｎ−３２、Ｎ−３７、Ｎ−４２、Ｎ−４７の画素により、１バイトデータを読み取る。
【００３７】
（ステップ４０８：下マークのサーチ位置計算）
現在デコード処理をしたバーコード１バイトのＬＳＢをデコードしたセンサー位置から次のタイミングマークの位置を予測してサーチ位置を計算する。
【００３８】
具体的には図６に示すように、副走査方向は次の走査から、主走査方向はＬＳＢをデコードしたセンサー位置から１７個分ダウンしたセンサー位置から始まる点線で示した範囲ということになる。
【００３９】
（ステップ４０９：１ライン読取）
移動検出部（２０３）からの副走査方向への移動通知により、画像読取部（２０２）を起動して、主走査方向の１ラインの画素データを読み取り、メモリ部（２０７）に記憶する。
【００４０】
（ステップ４１０：下マーク検索）
メモリ部（２０７）に記憶された画素データからステップ４０８で計算したサーチ位置にタイミングマークがあるか（黒画素があるか）を判定し、無ければサーチ終了判定（ステップ４１４）に遷移する。
【００４１】
（ステップ４１１：下マーク中心判定）
現在の副走査位置がタイミングマークの中心であるかを判定して、中心でなければ１ライン読取（ステップ４０９）から繰り返す。具体的には、副走査方向に３ライン連続で黒画素があったかで判定する。
【００４２】
（ステップ４１２：データデコード処理（下））
タイミングマークの中心を走査していることを検出すると、図８に示すように、マーク検出センサー位置（Ｎ）を基準として、最小モジュールの中心であるセンサー位置Ｎ＋１２、Ｎ＋１７、Ｎ＋２２、Ｎ＋２７、Ｎ＋３２、Ｎ＋３７、Ｎ＋４２、Ｎ＋４７の画素により、１バイトデータを読み取る。
【００４３】
さらに、上マークのサーチ位置計算（ステップ４０３）に戻って次のタイミングマークのサーチに備える。
【００４４】
（ステップ４１３：サーチ終了判定）
ステップ４０３で計算した範囲内にタイミングマークが検出できなかったかどうかを判定し、できなかった場合は終了し、サーチ範囲がまだある場合は１ライン読取（ステップ４０４）に戻る。
【００４５】
（ステップ４１４：サーチ終了判定）
ステップ４０８で計算した範囲内にタイミングマークが検出できなかったかどうかを判定し、できなかった場合は終了し、サーチ範囲がまだある場合は１ライン読取（ステップ４０９）に戻る。
【００４６】
（その他の実施例）
上記の実施例の他に、バーコードの構成として図９に示すように、最小モジュール間に空白を設けるようにしてもよい。これにより、バーコードを印刷するプリンターの品質によっては黒画素が広がってしまい、スキャナで読んだときに白画素が潰れてしまうという現象を防止することができる効果がある。
【図面の簡単な説明】
【００４７】
【図１】図１はハンディスキャナを使用したシステム構成例。
【図２】図２はハンディスキャナの内部構成例。
【図３】図３は二次元バーコードの構成。
【図４】図４はバーコード読取動作フローチャート。
【図５】図５は上マークサーチ位置。
【図６】図６は下マークサーチ位置。
【図７】図７はデータデコード処理（上）。
【図８】図８はデータデコード処理（下）。
【図９】図９はその他のバーコードの構成。
【符号の説明】
【００４８】
１０１  ハンディスキャナ装置
１０２  原稿
１０３  二次元画像（バーコード）
１０４  データベース装置
１０５  モニター装置
２０１  制御部
２０２  画像読取部
２０３  移動検出部
２０４  キーＩ／Ｆ部
２０７  メモリ部
２０８  データ送信部
３０３  上タイミングマーク
３０４  下タイミングマーク
３０５  データ部
３０６  最小モジュール構成
【図１】
2006202031.tif 000003
【図２】
2006202031.tif 000004
【図３】
2006202031.tif 000005
【図４】
2006202031.tif 000006
【図５】
2006202031.tif 000007
【図６】
2006202031.tif 000008
【図７】
2006202031.tif 000009
【図８】
2006202031.tif 000010
【図９】
2006202031.tif 000011