JP2012058776A - バーコード読取装置およびバーコード読取方法 - Google Patents

バーコード読取装置およびバーコード読取方法 Download PDF

Info

Publication number
JP2012058776A
JP2012058776A JP2010198208A JP2010198208A JP2012058776A JP 2012058776 A JP2012058776 A JP 2012058776A JP 2010198208 A JP2010198208 A JP 2010198208A JP 2010198208 A JP2010198208 A JP 2010198208A JP 2012058776 A JP2012058776 A JP 2012058776A
Authority
JP
Japan
Prior art keywords
barcode
reading
value
reliability
data
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.)
Granted
Application number
JP2010198208A
Other languages
English (en)
Other versions
JP5676183B2 (ja
Inventor
Hiroshi Nakamura
宏 中村
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.)
Nidec Sankyo Corp
Original Assignee
Nidec Sankyo 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 Nidec Sankyo Corp filed Critical Nidec Sankyo Corp
Priority to JP2010198208A priority Critical patent/JP5676183B2/ja
Priority to US13/223,506 priority patent/US8381983B2/en
Publication of JP2012058776A publication Critical patent/JP2012058776A/ja
Application granted granted Critical
Publication of JP5676183B2 publication Critical patent/JP5676183B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/10861Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing of data fields affixed to objects or articles, e.g. coded labels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14131D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/0036Checkout procedures
    • G07G1/0045Checkout procedures with a code reader for reading of an identifying code of the article to be registered, e.g. barcode reader or radio-frequency identity [RFID] reader

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Theoretical Computer Science (AREA)
  • Character Input (AREA)

Abstract

【課題】処理負荷や処理時間を増大させることなく、バーコードの復号結果に対する信頼性を向上させる。
【解決手段】搬送機構110で記録担体150を搬送しつつ、その記録担体150の表面を撮像部120で読み取り、画像メモリ130に記憶させる。次に、走査線設定部142が、バーコード151の画像データに複数の走査線211〜215を設定し、さらに、復号処理部143が、これら走査線211〜215に対応する画像データを用いてバーコードを復号する。続いて、走査線判定部144が、走査線211〜215に対応する画像データから読み取り信頼度を算出し、これらの読み取り信頼度を用いて最も信頼性が高い走査線を判定する。そして、この判定結果に対応する走査線の復号結果を、バーコード151の復号情報に決定する。
【選択図】図1

Description

本発明は、バーコードを光学的に読み取って復号するバーコード読取装置およびバーコード読取方法に関する。
一般に、一次元のバーコードは、複数のバーおよびスペース(または黒バーおよび白バー)をエレメントとして交互に配置してなるもので、各バーおよび各スペースの幅方向の情報(例えば、幅の大小やその配列など)に基づいて数字,アルファベット,記号等からなるキャラクタ情報を表すことができる。バーコードを読取装置で読み取ることによって、POSシステム等の端末への所要情報の入力を、簡単に行うことができる。
例えば、商品管理や物流管理等では、各商品の識別情報が、バーコード化されて、その商品或いは包装等に付加される。そして、このバーコードを、レーザスキャナやCCD(Charge Coupled Device) センサ、CMOS(Complementary Metal Oxide Semiconductor) センサ等の光学読取装置で光学的に読み取り、さらに復号することで、識別情報が自動認識される。
近年、例えば個人情報をカードに記録する手段としても、バーコードを利用する場合がある。このような場合に、カードの同一面に、文字情報等およびバーコードの両方を付加することがある。このため、光学読取装置として、カードの全面をスキャンして画像データに変換した後で、この画像データからバーコードが表示された領域を判定するタイプのものも、登場している。
バーコードは光学的に読み取られるため、表示面の汚れやかすれ等が、読み取り誤りの原因になるおそれがある。このような読み取り誤りを低減する技術として、例えば、下記特許文献1、2の技術が知られている。
特許文献1には、バーコードに複数の走査線を設定し、正誤判定で正しいと判定されるまで走査線を変えながら読み取りを繰り返し、さらに、すべての走査線について読み取りが誤りであった場合はバーコードの下に印字された文字を文字認識部で認識する技術が開示されている(特許文献1の例えば段落[0033]〜[0037]参照)。
特許文献2には、バーコードに複数の走査線を設定してそれぞれを複数のブロックに分割し、正誤判定で正しいと判定されたブロックを組み合わせることによって、汚れやかすれ等の影響が無い走査線を得る技術が開示されている(特許文献2の例えば段落[0016]参照)。
特開平9−237312号公報 特開2001−43300号公報
上述の特許文献1、2に記載されているように、バーコードの読み取りの正誤判定は、各バー、各スペースの幅やこれらの配列がバーコード規格に適合しているか否かによって行われる(特許文献1の段落[0022]、特許文献2の段落[0014]参照)。しかし、このような判定方法で、読み取り結果が正しいとの判定結果を得た場合でも、実際には読み取り誤りが発生している可能性がある。正誤判定結果の信頼性は、例えば、バーコードの表示面に汚れやかすれ等がある場合に低くなる。そして、正誤判定の信頼性が低いほど、読み取り結果に対する信頼性も低くなる。このため、特許文献1、2の技術では、バーコードの復号結果に対して十分な信頼性を確保することが難しいという問題がある。
また、特許文献1の技術では、正しい読み取り結果が得られなかったときにバーコードの下に印字された文字を認識するが、一般に、文字認識はバーコードの復号に比べて処理負荷が大きい。このため、特許文献1の技術には、処理時間が長くなったり、高性能のプロセッサ等が必要になって高価格化を招いたりするという欠点がある。
さらに、特許文献2の技術にも、正誤判定で正しいと判定されたブロックを組み合わせる処理が必要となるため、処理負荷が増大して、処理時間の増大や装置の高価格化を招くという欠点がある。
本発明の課題は、処理負荷や処理時間を増大させることなく、バーコードの復号結果に対する信頼性を向上させることができる、バーコード読取装置およびバーコード読取方法を提供することにある。
請求項1に係るバーコード読取装置は、媒体の表面を光学的に読み取ってバーコードのデータを生成する読取部と、前記データを記憶するメモリと、該メモリに記憶された前記データに対して、複数の走査線を設定する走査線設定部と、前記走査線に対応する前記データから、それぞれ前記バーコードを復号する復号処理部と、前記走査線に対応する前記データから、前記バーコードの復号誤りの発生し難さを示す読み取り信頼度を演算し、該読み取り信頼度を用いて最も信頼性が高い前記走査線を判定する判定部とを備えることを特徴とする。
請求項2に係るバーコード読取装置は、請求項1の構成に加え、前記判定部は、前記走査線設定部で設定された複数の走査線のそれぞれについて、前記読み取り信頼度を算出する読み取り信頼度算出部と、該読み取り信頼度算出部で算出した読み取り信頼度の中で最も良い値を判定する読み取り信頼度判定部と、前記最も良い値の読み取り信頼度に対応する走査線を判定する走査線判定部と備えることを特徴とする。
請求項3に係るバーコード読取装置は、請求項2の構成に加え、前記読み取り信頼度算出部は、前記複数の走査線のそれぞれについて、前記バーコードのエレメントの幅に基づき算出されるエレメントデータごとに、読み取り誤りの発生し難さを示す余裕幅を算出する余裕幅算出部と、それぞれの前記走査線ごとに、対応する前記余裕幅のうち最も小さいものを選択して、該走査線の前記読み取り信頼度に決定する読み取り信頼度決定部とを備えることを特徴とする。
請求項4に係るバーコード読取装置は、請求項3の構成に加え、前記前記復号処理部は、前記走査線の各々に対応する前記データから少なくとも1キャラクタを抽出する手段と、それぞれの前記走査線ごとに、前記1キャラクタのエレメントデータの計測値e(i)を算出するとともに、前記1キャラクタの全長の計測値Sを算出する手段と、それぞれの前記走査線ごとに、抽出した前記1キャラクタの全長の単位モジュール数mと前記全長の計測値Sとの比m/Sを算出する手段と、t(i)=e(i)×m/Sを算出して、該t(i)の小数点第1位を四捨五入することにより、エレメントデータの正規値E(i)を算出する手段と、該エレメントデータの正規化値E(i)に基づいてキャラクタ復号を実行する手段とを備え、前記余裕幅算出部は、前記エレメントデータの正規化値E(i)を得ることができるt(i)の下限境界値を‘E(i)−0.5’、上限境界値を‘E(i)+0.5’として、t(i)と下限境界値との乖離の絶対値およびt(i)と上限境界値との乖離の絶対値のうちいずれか小さい方を余裕幅として算出する手段とを備えることを特徴とする。
請求項5に係るバーコード読取装置は、請求項3または4の構成に加え、前記エレメントデータは前記バーコードのエッジ対類似エッジ間距離であることを特徴とする。
請求項6に係るバーコード読取方法は、媒体の表面を光学的に読み取ってバーおよび/またはスペースよりなる複数のエレメントにより構成されるバーコードのデータを生成する第1ステップと、前記データをメモリに記憶させる第2ステップと、前記メモリに記憶された前記データに対して、複数の走査線を設定する第3ステップと、前記走査線に対応する前記データから、それぞれ前記バーコードを復号する第4ステップと、前記走査線に対応する前記データから前記バーコードの復号誤りの発生し難さを示す読み取り信頼度を演算し、該読み取り信頼度を用いて最も信頼性が高い前記走査線を判定する第5ステップとを備えることを特徴とする。
請求項7に係るバーコード読取方法は、請求項6の構成に加え、前記第5ステップは、前記第3ステップで設定された複数の走査線のそれぞれについて、前記読み取り信頼度を算出する読み取り信頼度算出ステップと、該読み取り信頼度算出ステップで算出した読み取り信頼度の中で最も良い値を判定する読み取り信頼度判定ステップと、前記最も良い値の読み取り信頼度に対応する走査線を判定する走査線判定ステップとを備えることを特徴とする。
請求項8に係るバーコード読取方法は、請求項7の構成に加え、前記読み取り信頼度算出ステップは、前記複数の走査線のそれぞれについて、前記バーコードのエレメントの幅に基づき算出されるエレメントデータごとに、読み取り誤りの発生し難さを示す余裕幅を算出する余裕幅算出ステップと、それぞれの前記走査線ごとに、対応する前記余裕幅のうち最も小さいものを選択して、該走査線の前記読み取り信頼度に決定する読み取り信頼度決定ステップとを備えることを特徴とする。
請求項9に係るバーコード読取方法は、請求項8の構成に加え、前記第4ステップは、前記走査線に対応する前記データから少なくとも1キャラクタを抽出するステップと、それぞれの前記走査線ごとに、前記1キャラクタのエレメントデータの計測値e(i)を算出するとともに、前記1キャラクタの全長の計測値Sを算出するステップと、それぞれの前記走査線ごとに、抽出した前記1キャラクタの全長の単位モジュール数mと前記全長の計測値Sとの比m/Sを算出するステップと、t(i)=e(i)×m/Sを算出して、該t(i)の小数点第1位を四捨五入することにより、エレメントデータの正規化値E(i)を算出するステップと、該エレメントデータの正規化値E(i)に基づいてキャラクタ復号を実行するステップとを備え、前記余裕幅算出ステップは、前記エレメントデータの正規化値E(i)を得ることができるt(i)の下限境界値を‘E(i)−0.5’、上限境界値を‘E(i)+0.5’として、t(i)と下限境界値との乖離の絶対値およびt(i)と上限境界値との乖離の絶対値のうちいずれか小さい方を、t(i)の余裕幅として算出することを特徴とする。
請求項10に係るバーコード読取方法は、請求項9または8の構成に加え、前記エレメントデータは前記バーコードのエッジ対類似エッジ間距離であることを特徴とする。
本発明によれば、処理負荷や処理時間を増大させることなく、バーコードの復号結果に対する信頼性を向上させることができる。
実施の形態に係るバーコード読取装置の構成を示す概念図である。 実施の形態でバーコードに複数の走査線を設定する処理を説明するための概念図である。 実施の形態に係る読取処理部の動作を説明するための概略フローチャートである。 実施の形態に係る復号処理部の動作を説明するための概略フローチャートである。 (A)、(B)ともに実施の形態に係る復号処理部の動作を説明するための概念的波形図である。 実施の形態に係る復号処理部の動作を説明するための概略フローチャートである。 実施の形態に係る復号処理部がデータコードワードを取得する方法を説明するための概念図である。
本発明の一実施形態について、図面を用いて説明する。
[バーコードおよびバーコード読取装置の構成]
図1は、本実施形態に係るバーコード読取装置の構成を示す概念図である。図2は、バーコードの一種であるCODE128と呼ばれるバーコードの一例を示す概念図である。
(バーコード)
まず、本実施形態で使用するバーコードを、図1および図2を用いて説明する。
図1および2において、符号151はバーコードであり、本実施形態では、バーコード規格CODE128に基づくバーコード(以下、バーコード151という)である。バーコード151は、記録媒体150の表面の所定位置に印刷などにより形成されている。
バーコード151は、図2に示すように、エレメントである各バー201および各スペース202の幅方向の配列によって情報が記録され、各エレメントの幅方向の情報(例えば、エレメントの幅の大小やその配列など)に基づいて、数字,アルファベット,記号等のキャラクタ情報を表すもので、一次元バーコードである。換言すれば、一次元バーコードは、連続する複数のバー201およびスペース202の幅方向にバーコードを付与しており、各バー201およびスペース202の高さ方向には情報を付与していない。
さらに、図2に示すように、バーコード151は、スタートマーク(スタートキャラクタ)と、データ(‘86'、データキャラクタ)と、チェックデジット(‘CHK'、チェックキャラクタ)と、ストップマーク(ストップキャラクタ)と、で構成されている。これらは、それぞれがバーコードの最小の情報単位である1キャラクタを構成している。具体的には、スタートマーク、データキャラクタおよびチェックデジットは、3本のバー201と3本のスペース202とを交互に配置することで1キャラクタとして構成されている。また、ストップマークは4本のバー201と3本のスペース202とを交互に配置することで1キャラクタとして構成されている。
また、各バーおよび各スペース(すなわち、各エレメント)の幅は、「単位モジュール」と呼ばれる基本幅を最小単位として、その整数倍となっている。本実施形態では、バーコード151の各バーおよび各スペースの幅は、基本幅の1、2、3、4倍(すなわち、1乃至4モジュール)のいずれかである。そして、最小の情報単位である1キャラクタの全長(1キャラクタにおける各バーおよび各スペースの幅の和)は、基本幅(単位モジュール)の整数倍で構成されている。
具体的には、ストップマーク以外のストップマーク、データキャラクタ、チェックデジット(3本のバーと3本のスペース)の全長は基本幅(単位モジュール)の11倍(11モジュール)で構成され、ストップマーク(4本のバーと3本のスペース)の全長は基本幅(単位モジュール)の13倍(13モジュール)で構成されている。
なお、図2に示すバーコード151(CODE128)では、データキャラクタ(‘12')は1キャラクタ(1情報単位)のみとなっているが、説明を簡単にするためであり、バーコード151の情報データとしてデータキャラクタが格納される領域は可変長であり、スタートマークの後には複数のデータキャラクタを格納することができる。
(バーコード読取装置)
次にこのバーコード151を読み取るバーコード読取装置100について説明する。
図1に示したように、本実施形態のバーコード読取装置100は、媒体搬送機構110と、読取部としての撮像部120と、メモリとしての画像メモリ130と、読取処理部140とを備えている。媒体搬送機構110は、搬送路111と、搬送ガイド112、113とを備えている。記録媒体150の画像データを読み取る際には、記録媒体150が、図示しない搬送ローラ等の搬送手段により、矢印114で示す搬送方向に、所定速度で移動する。その際同時に、記録媒体150の表面に形成されているバーコード151が撮像部120によって読み取られるようになっている。
撮像部120は、記録媒体150の表面を光学的に読み取って、バーコード151のデータを生成する読取部である。撮像部120は、媒体搬送機構110に固定されており、搬送方向114と直角な方向に配列された光電変換素子列121を有している。この撮像部120は、記録媒体150の表面反射光を受光してアナログ電気信号に変換し、さらに、このアナログ電気信号の値(輝度を示す値)をデジタル多値情報の画像データに変換する。例えば、アナログ電気信号を8ビットのデジタル多値情報の画像データに変換する場合、かかるアナログ電気信号が示す輝度は、256階調のデジタル輝度値(すなわち、0〜255の整数値で表される輝度値)に変換される。記録媒体150を一定速度で搬送しながら、このような動作を各光電変換素子が一定周期で繰り返すことにより、2次元配列の画素からなるデジタル多値情報の画像データ(以下、多値画像データという)を得ることができる。この多値画像データには、バーコード151の多値画像データが含まれる。なお、撮像部120としては、例えば一次元の密着型イメージセンサ等を採用することができる。
画像メモリ130は、バーコード151を含む多値画像データを一時的に記憶するメモリである。本実施形態では、画像データを有限個の画素の行列とみなし、撮像部120により生成された多値画像データを画素ごとに記憶する。なお、画像メモリ130としては、例えばRAM(Random Access Memory)、SDRAM(Synchronous Dynamic Random Access Memory)、DDR SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)、RDRAM(Rambus Dynamic Random Access Memory)等、画像データを記憶できるものなら何でも使用することができる。
読取処理部140は、多値画像データのバーコード151を構成する複数のエレメントの配列および各エレメントの幅寸法等のエレメントの幅方向の情報を算出し、このエレメントの幅方向の情報に基づいて、数字,アルファベット,記号等からなるキャラクタ情報に復号する機能を有している。読取処理部140は、位置決定部141と、走査線設定部142と、復号処理部143と、判定部144とを備えている。
位置決定部141は、画像メモリ130の多値画像データから、バーコード151の多値画像データを特定し、バーコード151が表示された領域を決定する。
走査線設定部142は、バーコード151が表示された領域に対して、複数の走査線を設定する。図2に、この走査線を概念的に示す。図2に示したバーコード151においては、5本の走査線211,212,・・・,215が、バー201およびスペース202の高さ方向に沿ってほぼ等間隔に設定されている。なお、走査線の本数や間隔は、特に限定されないが、バーコード151の全範囲に亘って均等に設定することが望ましい。
復号処理部143は、画像メモリ130に格納された多値画像データのうち、各走査線211〜215が設定された位置に対応する多値画像データを用いて、エレメントの幅方向の情報として、エレメントデータおよびエレメントデータの配列を求め、そのエレメントデータおよびエレメントデータの配列を用いて、バーコード151を復号する。そして、復号処理部143は、判定部144が選択した走査線に対応する復号結果を、最終的な復号結果として出力する。
ここで、エレメントデータとは、エレメントの幅方向の情報のうち、エレメントの幅寸法に基づき算出される値をいう。エレメントデータは、各バーや各スペースの幅の値で示す場合や、隣接するバーとスペースの幅の和を表すエッジ対類似エッジ間距離で示す場合などがある。本実施形態では、バーコード151はCODE128であり、エレメントデータとしてエッジ対類似エッジ間距離を用いている。
本実施形態の復号処理部143は、エレメント幅算出部143a、正規化値算出部143bおよびキャラク復号部143cを有している。
エレメント幅算出部143aは、上述したようなエレメントデータを画素数として算出する。具体的には、各走査線211〜215が設定された位置に対応する多値画像データを計測し、各エレメント幅の画素数を求める。この計測により求めた画素数に基づきエレメントデータの画素数を算出する。さらに、1キャラクタの全長の画素数を算出する。
正規化値算出部143bは、単位モジュールに基づき正規化されたエレメントデータを算出する。ここで、本願における「正規化」とは、各バーおよび各スペースの幅、エレメントデータや1キャラクタの全長を画素数単位からモジュールの整数比(単位モジュール)に変換することを言う。
キャラクタ復号部143cは、エレメントの幅方向の情報をキャラクタ情報に変換するための復号参照テーブル(図示せず)を備えている。そして、キャラクタ復号部143cは、正規化値算出部143bで正規化されたエレメントデータに基づくエレメントデータの配列を求め、復号参照テーブルと比較することにより、該当するキャラクタを復号する。なお、キャラクタ復号部143cによる復号処理結果の最終的な出力は、後述する判定部144の走査線判定部144bにより決定される走査線に対する復号結果として実行される。
判定部144は、走査線211〜215に対応する多値画像データから読み取り信頼度をそれぞれ算出し、算出された読み取り信頼度が最も良い走査線を判定する。本実施形態では、判定部144は、読み取り信頼度算出部144aと、読み取り信頼度判定部144bと、走査線判定部144cとを有している。
読み取り信頼度算出部144aは、走査線設定部142によって設定された走査線211〜215のそれぞれについて、読み取り信頼度を算出する。なお、読み取り信頼度は、バーコードを構成するキャラクタ全てについて算出しても良いが、1つのデータキャラクタのみについて算出しても良い。
また、本実施形態では、読み取り信頼度として余裕幅を算出する。ここで、余裕幅とは、正規化されたエレメントデータが正しい値となるために許容される読み取り誤差であり、バーコードの復号誤りの発生し難さ(誤りの発生する可能性の低さ)の度合いを表す指標である。
読み取り信頼度判定部144bは、読み取り信頼度算出部144aが走査線211〜215毎に算出した読み取り信頼度から、最も大きい読み取り信頼度を判定する。
走査線判定部144cは、読み取り信頼度判定部144bで判定された読み取り信頼度、すなわち最も大きな読み取り信頼度に対応する走査線を決定する。決定した走査線の情報は、復号処理部143のキャラクタ複号部143cに出力される。
[バーコード読み取り処理の概要]
このように構成されたバーコード151の動作を説明すると、まず、媒体搬送機構110が記録媒体150の搬送を開始するとともに、撮像部120が記録媒体150の撮像を開始する。撮像部120は、上述のようにして多値画像データ(256階調のデジタル輝度値)を生成し、画像メモリ130を構成する各記憶素子に記憶させる。続いて、読取処理部140が、画像メモリ130に記憶された多値画像データを用いて、バーコード151を復号する。
以下、読取処理部140によるバーコード読取処理について、図3を用いて説明する。図3は、読取処理部140の動作を説明するためのフローチャートである。
読取処理部140は、画像メモリ130から多値画像データを読み出し、処理を開始する。この多値画像データは、位置決定部141に入力される。
位置決定部141は、この多値画像データから、バーコード151が表示された領域の位置を検出する(ステップS301)。バーコード151の位置の検出には、公知の技術を使用することができる。例えば、垂直射影と水平射影とを演算することによって、バーコードの位置を検出することが可能である。また、例えば特開2009−266190号に記載された方法を用いても良い。位置決定部141は、図1、2において、バーコード151の左側の境界位置、右側の境界位置、上側の境界位置および下側の境界位置の位置情報等を、それぞれ生成する。
次に、走査線設定部142が、このバーコード151に対する走査線の設定を行う(ステップS302)。上述したように、本実施形態では、5本の走査線211〜215を、望ましくは均等に設定する(図2参照)。
その後、復号処理部143が、多値画像データのうちこれら走査線211〜215に対応する位置の画素列を用い、各走査線についてバーコード151の復号を行う(ステップS303)。この復号処理については、後述する。
続いて、判定部144が、復号処理部143の演算結果を用いて、走査線の判定処理を行う(ステップS304)。本実施形態では、同一のバーコード151に対して5本の走査線211〜215を設定しているので、読み取り誤りが発生しなかった場合は、これら走査線211〜215の復号結果は全て一致する。しかしながら、例えばバーコード151の汚れやかすれ等のために読み取り誤りが発生して、走査線211〜215の復号結果が一致しない場合がある。また、これら復号結果が一致したとしても、復号結果の信頼性が低い場合もある。信頼性が低い場合には、復号結果を受け取るアプリケーションに対して、信頼性の度合いを通知することが有用な場合がある。そこで、本実施形態では、各走査線211〜215の読み取り信頼度を計算し、この計算結果を用いて、走査線211〜215の復号結果に対する信頼性を判定し、最も信頼性の高い走査線に対する復号結果を最終的に採用している。
(復号処理)
図4は、ステップS303の復号処理部143における復号処理の具体的動作の一例を説明するためのフローチャートである。
復号処理部143では、各走査線ごとに、エレメント幅算出部143aがバーコード151を構成する各エレメント(バー201およびスペース202)の幅を画素数で計測(カウント)し、この計測により求めた画素数に基づきエレメントデータの画素数および1キャラクタの全長の画素数を算出する。(ステップS401)。
具体的には、エレメント幅算出部143aは、まず、図2に示す最初の走査線211に対応する画素列、すなわち走査線211に沿って並ぶ一連の画素配列について、各画素のデジタル輝度値を読み出す。そして、これら画素の輝度値から、各エレメント201,202のエッジ(始点と終点)を計測し、各エレメント201,202の幅寸法を画素数で計測(カウント)する。
次に、このようにして得られたバー幅およびスペース幅(エレメントの幅寸法)に基づいて、エレメントデータおよびその配列(以下「エレメントデータ列」という)を求め、バーコード151の復号処理(すなわち、コード変換)が行われる(ステップS402)。本実施形態では、エレメントデータは、隣接するバーおよびスペースの幅の和を示すエッジ対類似エッジ間距離であるので、1キャラクタを構成する3本(または4本)のバーおよび3本のスペースから4個のエッジ対類似エッジ間距離を求め、エレメントデータ列を算出し、これを正規化してコードワードを求め復号処理すなわちコード変換する。コード変換の詳細は後述する。
次に、復号処理部143は、ステップS401、S402の処理が、ステップS302で設定された全ての走査線211,212,・・・,215について実行されたか否かを、チェックする(ステップS403)。ここでは、走査線211に対する処理しか実行されていないので、復号処理部143は、残りの走査線212〜215に対してステップS401、S402の処理を行う。走査線215に対するステップS401、S402の処理が終了したと判断されると、復号処理部143は、ステップS303(図3参照)の処理を終了する。そして、S304の走査線判定に進む。
以下では、エレメント幅の計測(S401)から復号処理すなわちコード変換(S402)について、詳しく説明する。
(エレメント幅の計測方法)S401
まず、図5により、本実施形態におけるバーコードのエレメントのエッジを決定し、エレメントの幅を計測する方法を説明する。図5(A)は、本実施形態に係るデジタル輝度波形の一例を示す概念図であり、図5(B)は、(A)のデジタル輝度波形から得られるバーコードのエレメント配列を示す矩形波形である。
具体的には、まず、解析対象の走査線に対応する画素列の輝度値を計測して図5(A)のデジタル輝度波形を得る。この波形において、横軸は位置(バーコード151の始点からの距離)を、縦軸は計測した位置における画素のデジタル輝度値(値は0〜255)を示している。バー201は黒色であり反射率が低くデジタル輝度値が小さくなる、一方、スペース202は白色であり反射率が高いため、スペース202ではデジタル輝度値が大きくなる。したがって、図5(A)で示す輝度値波形は、バー201に対応する位置に極小値Min1,Min2,・・・を有し、且つ、スペース202に対応する位置に極大値Max1,Max2,・・・を有する。
なお、計測に使用する画素列は、走査線(ここでは走査線211)に対応する1本の画素列のみを使用してもよいが、当該走査線近傍の複数画素列を使用することも可能である。複数の画素列を使用する場合、縦軸は、当該位置に対応する複数画素のデジタル輝度値の平均値或いは総和等とすることができる。また、エッジ計測方法としては、本実施形態では、上述したような各画素のデジタル輝度値を使用したが、これに代えて、例えば走査反射率波形を用いる方法でもよい。走査反射率波形とは、バーコード151のバー201およびスペース202を幅方向に沿って反射率を打点することにより得られる波形であり、例えばJISのX0520等に定義されている。
次に、本実施形態では、極小値が現れる位置と極大値が現れる位置との中央位置を閾値、すなわちバー201とスペース202とのエッジであると判断する局所閾値方式によって、図5(B)に示す矩形波形を得る。図5(B)において、横軸は図5(A)と同様に、バーコードにおける位置を示す一方、縦軸はバー201およびスペース202の区別を示し、縦軸の値が‘0’の区間はバー201に対応し、縦軸の値が‘1’の区間はスペース202に対応する。
なお、局所閾値方式に代えて、例えば、走査線に対応する全画素のデジタル輝度値の平均値を求め、縦軸の値がこの平均値となる位置を閾値、すなわちバー201とスペース202とのエッジであると判定する固定閾値方式方法)を使用してもよい。
その後、エレメント幅の計測は、図5(B)の縦軸値が0の区間T1,T3,・・・をバー201の区間として、および縦軸値が1の区間T2,T4,・・・をスペース202の区間として、各エレメントの幅に対応する画素の個数(横軸方向の画素数)を数えることによって行う。
(コード変換):S402
図6は、上述のS402におけるコード変換(復号処理)の具体的動作の一例を説明するためのフローチャートである。
コード変換に際しては、最初に、バーコード151の判別が行われ、バーコード規格の種類が特定される(ステップS601)。バーコード151は、バーコード規格の種類によって、スタートマークの開始部分およびストップマークの終了部分を構成するバーおよびスペースの幅およびその配列が異なる。例えば、本実施形態のCODE128では、スタートマーク開始部分はバー、スペース、バーの幅の比が2:1:1であり、ストップマーク終了部分は、バー、スペース、バーの幅の比が1:1:2である。したがって、開始部分および終了部分のバーおよびスペースの幅およびその配列を解析することで、バーコード151の種別を判別することができる。なお、本実施形態はCODE128の規格に基づくものであるので、ここでは他のバーコード規格の種類が特定される方法についての詳細な説明は省略する。
(スタートマークおよびストップマークの検出)
次に、バーコード規格の種類がCODE128の規格に基づくものであると特定された場合は、スタートマークおよびストップマークの検出が行われる(ステップS602)。
バーコード151は、スタートマークとストップマークとの間に可変長のデータキャラクタを格納している。このため、本実施形態のバーコード読取装置100は、まず、これらのスタートマークおよびストップマークを検出することで、バーコード151のデータ記録方向、データキャラクタの開始位置およびチェックデジットの終了位置を確定するとともに、バーコードがCODE128であることを確定する。特に、スタートマークの検出では、CODE128の規格におけるキャラクタセットがコードA、コードBまたはコードCのいずれかであるかを特定する。
具体的には、スタートマークの検出では、スタートマークを構成する(バーコードの最初の)3本のバーおよび3本のスペースの幅をデジタル多値情報の画像データの画素数(計測値)を上述のエレメント幅計測(ステップS401)の結果として得て、エレメントデータの計測値を算出する。本実施形態では、エッジ類似エッジ間の幅をエレメントデータとして取得する。しかし、バーコードの規格は、エレメントの基本幅である単位モジュールを基準としており、また、計測したエレメントデータ画素数(計測値)には計測の誤差が含まれている。そこで、復号処理部143は、画素による計測値を単位モジュールに基づき正規化されたエレメントデータおよびその配列(エレメントデータ列)を求める。以下では、正規化したエレメントデータ列をコードワードという。
復号処理部143は、スタートマークを示すコードワードと一致するキャラクタ情報を復号参照テーブルから求め、かかるキャラクタ情報を出力した後、ストップマークの検出に移る。一方、一致するコードワードが復号参照テーブルにない場合には、復号処理にエラーが発生した旨を出力する。
ストップマークは、4本のバー201と3本のスペース202とを交互に配置することで1キャラクタとして構成されているが、スタートマーク同様に、復号処理部143は、ストップマークを示すコードワードを求め、これと一致するキャラクタ情報を,復号参照テーブルから求めて、かかるキャラクタ情報を出力した後、データキャラクタのコードワードを得るための解析処理(S603)に移る。一方、一致するコードワードが復号参照テーブルにない場合には,復号処理にエラーが発生した旨を出力する。
(データキャラクタの解析)
以降では、データキャラクタのエレメントデータ列を単位モジュールで正規化しデータコードワードを取得するための処理(ステップS603。データコードワードの取得という。)について説明する。ここで、データコードワードとは、キャラクタ情報を表す一連の数列であり、データキャラクタに対応するエレメントデータ列を単位モジュールによって正規化した数列である。1個のキャラクタ情報を表すデータキャラクタは、上述したスタートマークと同様、3本のバー201と3本のスペース202との合計6本のエレメントの一連配列であって、全長11モジュール(基本幅の11倍)で構成されている。また、データキャラクタ、データコードワードおよびキャラクタ情報は、各々が一対一の対応関係であり、復号参照テーブルは、データコードワードとキャラクタ情報の対応表である。
図7によって、データキャラクタのエレメントデータ列を単位モジュールで正規化したデータコードワードを取得するための処理(ステップS603)を具体的に説明する。図7は、データコードワードの取得方法を説明するための概念図である。
図7において、コードワード取得の対象となるデータキャラクタは、3本のバーB31、B32、B33と3本のスペースS31、S32、S33との合計6本のエレメントにより構成されている。復号処理部143は、かかるデータキャラクタから、エレメントデータとして4個のエッジ対類似エッジ間距離e(1),e(2),e(3),e(4)を画素数で算出する。上述のように、エッジ対類似エッジ間距離とは、隣接するバーおよびスペースの幅の和を示しており、あるバー(またはスペース)の先端から次のスペース(またはバー)の末端までの距離である。したがって、エッジ対類似エッジ間距離は、隣接する2本のバーB31,32,33とスペースS31,32,33の幅の計測値を加えた値である。このように、エッジ対類似エッジ間距離を用いることによって、バーコード151の印刷誤差等の影響を受けにくくしている。
先頭から、バーB31の幅の画素数の計測値(すなわち、「計測幅」)は‘20画素’、スペースS31の計測幅は‘4画素’、バーB32の計測幅は‘6画素’、スペースS32の計測幅は‘10画素’、バーB33の計測幅は‘6画素’、スペースS33の計測幅は‘10画素’である。一方、上述のように、本実施形態のCODE128では、バーコード151のデータキャラクタ(1キャラクタ)の全長(3本のバーB31,32,33と3本のスペースS31,32,33の幅の和)は、11モジュールと規定されている。そこで、次のように基本幅(単位モジュール)あたりの画素数を求める。
ここで、データキャラクタの全長の計測値をS、データキャラクタの全長の単位モジュール値(規格値)をm、単位モジュール(基本幅)あたりの画素数をwとすると;
Sは、3本のバー計測幅と3本のスペース計測幅の和(画素数の合計)であるので、
S=20+4+6+10+6+10=56(すなわち、56画素)
m=11モジュール
w=S/m=56/11である。
一方、エレメントデータの計測値をe(i)(ただし、i=1,2,3,4)とすると;e(1)はバーB31および隣接するスペースS31の幅の和、e(2)はスペースS31および隣接するバーS32の幅の和、e(3)はバーB32および隣接するスペースS32の幅の和、e(4)はスペースS32および隣接するバーB33の幅の和であるので、
e(1)=20+4=24
e(2)=4+6=10
e(3)=6+10=16
e(4)=10+6=16である。
次に、復号処理部143は、エレメントデータとしてのエッジ対類似エッジ間距離の計測値e(i)にm/Sを掛け合わせて、正規化前のエレメントデータの単位モジュールの計算値t(i)を算出する。すなわち;
t(i)=e(i)/w=e(i)×(m/S)
具体的に、図7の例では、
t(1)=e(1)/w=24×(11/56)=4.714
t(2)=e(2)/w=10×(11/56)=1.964
t(3)=e(3)/w=16×(11/56)=3.143
t(4)=e(4)/w=16×(11/56)=3.143となる。
そして、t(i)を正規化する。すなわち、t(i)の値の小数点第1を四捨五入する。本実施形態では、t(i)に0.5を加えた後で小数点以下を切り捨てることにより、この四捨五入を実現する。すなわち、正規化されたエレメントデータE(i)は;
E(i)=INT(t(i)+0.5)
=INT(e(i)×m/S+0.5)
ただし,i=1,2,3,4 ・・・式(3)
(なお、INT(x)は、パラメータxを超えない最大の整数を返す関数。)
したがって、 E(1)=INT(24×(11/56)+0.5)=5
E(2)=INT(10×(11/56)+0.5)=2
E(3)=INT(16×(11/56)+0.5)=3
E(4)=INT(16×(11/56)+0.5)=3である。
これにより、正規化されたエレメントデータ列[E(1),E(2),E(3),E(4)]に対応するデータコードワード[5233]が得られる。
このように、エレメントデータの正規化は、エレメント幅算出部143aから入力した1キャラクタの全長の画素数(S)を、1キャラクタの全長に相当するモジュール数(m)で除算することによって、バーコード151を構成する単位モジュールあたりの画素数(基本幅値)を算出して、各エレメント(バーおよびスペース)の幅の画素数をこの基本幅値で除して、単位モジュール数に変換し、エレメントデータおよび1キャラクタの全長のモジュール数を算出し、各エレメントの幅が基本幅の1倍、2倍、3倍、4倍のいずれかとなるように、読み取り(計測)の誤差を調整して変換して、コードワードを取得するようにしている。
なお、CODE128のバーコードパターンの規格では、バーの幅およびスペースの幅は基本幅の1倍、2倍、3倍、4倍のいずれかになるが、隣接するバーおよびスペースの幅が両方同時に4倍となることは無いので、正規化されたエレメントデータ(エッジ対類似エッジ間距離)の各モジュール数であるE(i)は、2から7までの整数値となる。
以上のようにコードワードを取得した後、復号処理部143は、このコードワードに対応するキャラクタ値を復号参照テーブル(図示せず)から取得して、コードワードをキャラクタに変換することにより、データ復号を行う(ステップS604)。復号参照テーブルは、例えばJISX0504等の、CODE128規約にしたがって作成する。
図7の例では、データコードワードは、正規化されたエレメントデータE(i)の配列[5233]なので、キャラクタ値として‘86’が復号参照テーブルより取得される。
なお、本実施形態では、データは‘86’と1キャラクタとなっているが、バーコード151ではデータとして格納される領域は可変長であるので、複数のキャラクタが格納されている場合がある。このようなデータコードワード取得は、バーコード151に含まれる全てのデータキャラクタについて行われる。
このようなデータ復号取得処理は、上述のステップS603で取得された全てのデータキャラクタについて行われる。
その後、バーコード151に含まれる誤り訂正符号を用いて、データ復号結果の誤り訂正を行う。誤り訂正の方法は、CODE128に規定された通りでよいので、ここでの説明を省略する。これにより、ステップS604のデータ復号処理が終了する。
以上により、ステップS402(図4参照)の復号処理が終了する。
(読み取り信頼性判定)
上述のとおり、本実施形態では、各走査線211〜215の読み取り信頼度を計算し、この計算結果を用いて、走査線211〜215の復号結果に対する信頼性を判定する。また、この「読み取り信頼度」は、バーコードを読み取る際の余裕幅を用いて算出される。以下、読み取り信頼度の計算方法について説明する。
上述のとおり、余裕幅とは、正規化されたエレメントデータが正しい値となるために許容される読み取り誤差の幅(範囲)であり、バーコードの復号誤りの発生し難さ(誤りの発生する可能性の低さ)の度合いを表す指標である。具体的には、実際の計測に基づくエレメントデータの値(画像メモリ130に格納された多値画像のバーコード151データから実際に計測し求めた値)と正しい正規化値を得ることができる計測値の範囲を示す境界値との乖離が大きいほど許容される読み取り誤差が大きく、その乖離が小さいほど許容される読み取り誤差は小さい。そこで、次のように余裕幅を定義する。
まず、バーコード151の復号処理では、データコードワードを取得するに際して、エレメントデータE(i)を得るため、上式(3)のとおり、画素数の計数により求めたエッジ対類似エッジ間距離の実際の計測値e(i)について、単位モジュールにより変換計算した計算値t(i)を四捨五入し正規化している。したがって、t(i)の取り得る値の範囲は;E(i)−0.5≦t(i)<E(i)+0.5である。すなわち、正規化値E(i)を得ることができる計算値t(i)の下限は‘E(i)−0.5’であり、計算値t(i)の上限は‘E(i)+0.5’を超えない値である。
ここで、‘E(i)−0.5’を下限境界値、‘E(i)+0.5’を上限境界値とすると計算値t(i)が実際の計測に基づくエレメントデータの値に相当する。そこで、t(i)と下限境界値との乖離およびt(i)と上限境界値との乖離のうちいずれか小さい方の乖離を、t(i)の余裕幅と定義する。換言すると、t(i)と(E(i)−0.5)との差の絶対値およびt(i)と(E(i)+0.5)との差の絶対値の小さい方をt(i)の余裕幅として算出することができる。つまり、読み取り誤差が、t(i)を中心にして正負方向に小さい方の乖離範囲のであれば、E(i)は必ず誤りのない正規化値となる。
例えば、エレメントデータとしてエッジ対類似エッジ間距離e(i)の正規化値E(i)が4の場合、境界値は3.5および4.5である。したがって、例えば、実際の計測に基づく計算値t(i)が4.0の場合、余裕幅は0.5である。また、計算値t(i)が3.6の場合や4.4の場合、余裕幅は0.1である。余裕幅が小さい場合ほど、境界値に近い値となり読み取り誤りが発生し易いので、正規化演算結果E(i)の信頼性が低いことになる。
上述のように、バーコード151では、1個のデータコードワードについて、4個のエレメントデータE(i)が使用される。本実施形態では、これら4個のE(i)全てについて、余裕幅を演算し、これらのうちで最も小さい余裕幅を、そのデータコードワードの余裕幅とする。さらに、1本の走査線に対応するデータコードワードの余裕幅のうちで最も小さいものを、その走査線の読み取り信頼度と定義する。すなわち、各走査線121〜125の読み取り信頼度は、その走査線に対応する全ての余裕幅の中で最小の余裕幅となる。したがって、最小の余裕幅が、最も良い読み取り信頼度を表している。
図7の実施例では、E(1)=5(その取り得る計算値の範囲は4.5以上5.5未満)に対して、計算値t(1)=24×11/56=4.7・・・であるため、余裕幅は計算値t(1)と4.5との差であり、約0.2となる。E(2)=2(同上1.5以上2.5未満)に対して、計算値t(2)=10×11/56=1.9・・・であるため、余裕幅は、計算値t(2)と1.5との差であり、約0.4となる。また、E(3)=3(同上2.5以上3.5未満)に対して、計算値t(3)=16×11/56=3.1・・・であるため、余裕幅は、計算値t(3)と3.5との差であり、約0.4となる。同様に、E(4)はE(3)と同一の結果となる。したがって、この正規化したエレメントデータ列すなわちデータコードワード[5233]の余裕幅は、E(1)の余裕幅すなわち約0.2である。
全ての走査線211〜215に対する読み取り信頼度が演算されると、走査線判定部144cは、読み取り信頼度が最も大きい走査線を選択する。そして、走査線判定部144sは、選択した走査線に対応する復号結果(図3のステップS303参照)を、そのバーコード151の復号結果として出力する。
加えて、走査線判定部144は、その復号結果に対応する読み取り信頼度を、復号結果の信頼性を示すデータとして出力してもよい。また、読み取り信頼度が所定値よりも低い(悪い)場合に、信頼性が不十分であることを示す参考情報を出力することとしてもよい。
(本実施形態の主な効果)
以上説明したように、本実施形態によれば、バーコードに対し複数の走査線を設定し、各走査線に対応するバーコードのデータからバーコードの復号誤りの発生し難さを示す読み取り信頼度を演算し、この読み取り信頼度用いて、走査線ごとに読み取り信頼性を評価することができる。さらに、この走査線ごとの読み取り信頼性の評価に基づき、最も信頼性が高い走査線に対応する復号結果をバーコードの復号結果として採用するので、バーコードの復号結果に対する信頼性を、向上させることができる。
特に、読み取り信頼度算出部を用いて各走査線の読み取り信頼度を算出し、読み取り信頼度判定部を用いて該算出結果から最も良い読み取り信頼度を判定し、さらに、走査線判定部を用いて該判定結果に対応する走査線を判定することにより、最も信頼性が高い走査線およびその信頼性の評価値を得ることができる。
また、読み取り信頼度として、バーコードに含まれるエレメントデータごとに算出する余裕幅を用いるので、簡単な演算処理で信頼性の評価を行うことができる。
加えて、本実施形態によれば、読み取り信頼度を、エレメントデータすなわちエッジ対類似エッジ間距離についての計測値と正規化値とを用いて演算するので、簡単な演算処理で信頼性の評価を行うことができる。
さらに、本実施形態によれば、エレメントデータすなわちエッジ対類似エッジ間距離を正規化する演算の途中結果を用いて余裕幅を算出することができるので、この点でも演算処理がさらに簡単になる。
また、本実施形態によれば、エレメントデータとしてエッジ対類似エッジ間距離を用いているので、バーコード151の印刷誤差等の影響を受けにく、バーコードの復号結果に対する信頼性を、一層向上させることができる。
[他の実施形態]
本実施形態では、全ての走査線211〜215に対する復号処理を行った後で、これら走査線211〜215に対する読み取り信頼度演算を行うこととしたが(図3のステップS303、S304参照)、最初の走査線211に対して復号処理および読み取り信頼度演算を行った後で二番目の走査線212に対する復号処理および判定処理を行うというような順序で処理を行うこととしてもよい。
また、本実施形態では、データキャラクタ1個の例で説明したが、バーコードが複数のデータキャラクタを持つ場合には、1つの走査線にある全てのデータキャラクタについて計測値および正規化値を求め、余裕幅を演算し、これらのうちで最も小さい余裕幅を、そのデータコードワードの余裕幅とすることができる。さらには、1本の走査線に対応するデータコードワードの余裕幅のうちで最も小さいものを、その走査線の読み取り信頼度とすることができる。
本実施形態では、エレメントデータとしてエッジ対類似エッジ間距離を用いたが、これに限定するものではない。たとえば、エレメントデータとして、各バーや各スペースの幅をそのまま使用してもよい。
また、本実施形態は、搬送機構と一次元イメージセンサとを用いたバーコード読取装置に本発明を適用した場合を例に採って説明したが、搬送機構を持たないハンディタイプの読取装置や、エリアセンサ(例えば二次元CCDやCMOSイメージャ等)を用いた読取装置等にも本発明を適用することが可能である。
また、CCD等のカメラによってバーコードを撮影し、その映像データに画像処理を施すことで、バーコード部分を抽出するとともに当該バーコードを検出し解読してもよい。さらに、バーコード上をレーザ光線で走査し、その反射光を光学式1次元センサで検出することで、バーコードのキャラクタを取得するレーザスキャン方式であってもよい。
100 バーコード読取装置
110 媒体搬送機構
111 底板
112,113 搬送ガイド
120 撮像部
121 光電変換素子列
130 画像メモリ
140 読取処理部
141 位置決定部
142 走査線設定部
143 復号処理部
143a エレメント幅算出部
143b 正規化値算出部
143c キャラクタ復号部
144 走査線判定部
144a 読み取り信頼度算出部
144b 読み取り信頼度判定部
144c 走査線判定部
150 記録担体
151 バーコード
201 バー
202 スペース
211,212,213,214,215 走査線

Claims (10)

  1. 媒体の表面を光学的に読み取ってバーコードのデータを生成する読取部と、
    前記データを記憶するメモリと、
    該メモリに記憶された前記データに対して、複数の走査線を設定する走査線設定部と、
    前記走査線に対応する前記データから、それぞれ前記バーコードを復号する復号処理部と、
    前記走査線に対応する前記データから、前記バーコードの復号誤りの発生し難さを示す読み取り信頼度を演算し、該読み取り信頼度を用いて最も信頼性が高い前記走査線を判定する判定部と、
    を備えることを特徴とするバーコード読取装置。
  2. 前記判定部は、
    前記走査線設定部で設定された複数の走査線のそれぞれについて、前記読み取り信頼度を算出する読み取り信頼度算出部と、
    該読み取り信頼度算出部で算出した読み取り信頼度の中で最も良い値を判定する読み取り信頼度判定部と、
    前記最も良い値の読み取り信頼度に対応する走査線を判定する走査線判定部と、
    を備えることを特徴とする請求項1に記載のバーコード読取装置。
  3. 前記読み取り信頼度算出部は、
    前記複数の走査線のそれぞれについて、前記バーコードのエレメントの幅に基づき算出されるエレメントデータごとに、読み取り誤りの発生し難さを示す余裕幅を算出する余裕幅算出部と、
    それぞれの前記走査線ごとに、対応する前記余裕幅のうち最も小さいものを選択して、該走査線の前記読み取り信頼度に決定する読み取り信頼度決定部と、
    を備えることを特徴とする請求項2記載のバーコード読取装置。
  4. 前記復号処理部は、
    前記走査線の各々に対応する前記データから少なくとも1キャラクタを抽出する手段と、
    それぞれの前記走査線ごとに、前記1キャラクタのエレメントデータの計測値e(i)を算出するともに、前記1キャラクタの全長の計測値Sを算出する手段と、
    それぞれの前記走査線ごとに、抽出した前記1キャラクタの全長の単位モジュール数mと前記全長の計測値Sとの比m/Sを算出する手段と、
    t(i)=e(i)×m/Sを算出して、該t(i)の小数点第1位を四捨五入することにより、エレメントデータの正規化値E(i)を算出する手段と
    該エレメントデータの正規化値E(i)に基づいてキャラクタ復号を実行する手段とを備え、
    前記余裕幅算出部は、
    前記エレメントデータの正規化値E(i)を得ることができるt(i)の下限境界値を‘E(i)−0.5’、上限境界値を‘E(i)+0.5’として、t(i)と下限境界値との乖離の絶対値およびt(i)と上限境界値との乖離の絶対値のうちいずれか小さい方を、t(i)の余裕幅として算出する手段と、
    を備えることを特徴とする請求項3に記載のバーコード読取装置。
  5. 前記エレメントデータは前記バーコードのエッジ対類似エッジ間距離であることを特徴とする請求項3または4に記載のバーコード読取装置。
  6. 媒体の表面を光学的に読み取ってバーコードのデータを生成する第1ステップと、
    前記データをメモリに記憶させる第2ステップと、
    前記メモリに記憶された前記データに対して、複数の走査線を設定する第3ステップと、
    前記走査線に対応する前記データから、それぞれ前記バーコードを復号する第4ステップと、
    前記走査線に対応する前記データから、前記バーコードの復号誤りの発生し難さを示す読み取り信頼度を演算し、該読み取り信頼度を用いて最も信頼性が高い前記走査線を判定する第5ステップと、
    を備えることを特徴とするバーコード読取方法。
  7. 前記第5ステップは、
    前記第3ステップで設定された複数の走査線のそれぞれについて、前記読み取り信頼度を算出する読み取り信頼度算出ステップと、
    該読み取り信頼度ステップで算出した読み取り信頼度の中で最も良い値を判定する読み取り信頼度判定ステップと、
    前記最も良い値の読み取り信頼度に対応する走査線を判定する走査線判定ステップと、
    を備えることを特徴とする請求項6に記載のバーコード読取方法。
  8. 前記読み取り信頼度算出ステップは、
    前記複数の走査線のそれぞれについて、前記バーコードのエレメントの幅に基づき算出されるエレメントデータごとに、読み取り誤りの発生し難さを示す余裕幅を算出する余裕幅算出ステップと、
    それぞれの前記走査線ごとに、対応する前記余裕幅のうち最も小さいものを選択して、該走査線の前記読み取り信頼度に決定する読み取り信頼度決定ステップと、
    を備えることを特徴とする請求項7記載のバーコード読取方法。
  9. 前記第4ステップは、
    前記走査線に対応する前記データから少なくとも1キャラクタを抽出するステップと、
    それぞれの前記走査線ごとに、前記1キャラクタのエレメントデータの計測値e(i)を算出するとともに、前記1キャラクタの全長の計測値Sを算出するステップと、
    それぞれの前記走査線ごとに、抽出した前記1キャラクタの全長の単位モジュール数mと前記全長の計測値Sとの比m/Sを算出するステップと、
    t(i)=e(i)×m/Sを算出して、該t(i)の小数点第1位を四捨五入することにより、エレメントデータの正規化値E(i)を算出するステップと、
    該エレメントデータの正規化値E(i)に基づいてキャラクタ復号を実行するステップとを備え、
    前記余裕幅算出ステップは、
    前記エレメントデータの正規化値E(i)を得ることができるt(i)の下限境界値を‘E(i)−0.5’、上限境界値を‘E(i)+0.5’として、t(i)と下限境界値との乖離の絶対値およびt(i)と上限境界値との乖離の絶対値のうちいずれか小さい方を、t(i)の余裕幅として算出することを特徴とする請求項8に記載のバーコード読取方法。
  10. 前記エレメントデータは前記バーコードのエッジ対類似エッジ間距離であることを特徴とする請求項8または9に記載のバーコード読取方法。
JP2010198208A 2010-09-03 2010-09-03 バーコード読取装置およびバーコード読取方法 Expired - Fee Related JP5676183B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010198208A JP5676183B2 (ja) 2010-09-03 2010-09-03 バーコード読取装置およびバーコード読取方法
US13/223,506 US8381983B2 (en) 2010-09-03 2011-09-01 Apparatus and method for reading barcode

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010198208A JP5676183B2 (ja) 2010-09-03 2010-09-03 バーコード読取装置およびバーコード読取方法

Publications (2)

Publication Number Publication Date
JP2012058776A true JP2012058776A (ja) 2012-03-22
JP5676183B2 JP5676183B2 (ja) 2015-02-25

Family

ID=45769944

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010198208A Expired - Fee Related JP5676183B2 (ja) 2010-09-03 2010-09-03 バーコード読取装置およびバーコード読取方法

Country Status (2)

Country Link
US (1) US8381983B2 (ja)
JP (1) JP5676183B2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9702707B2 (en) * 2011-12-22 2017-07-11 AppLabz, LLC Systems, methods, and apparatus for providing indoor navigation using optical floor sensors
US11341384B2 (en) * 2014-08-28 2022-05-24 Banctec, Incorporated Document processing system and method for associating metadata with a physical document while maintaining the integrity of its content
KR102638707B1 (ko) * 2018-10-31 2024-02-21 삼성전자주식회사 바코드를 판독하는 방법 및 전자 장치
EP3980881A4 (en) 2019-06-06 2023-07-12 Bluebeam, Inc. METHODS AND SYSTEMS FOR PROCESSING IMAGES TO PERFORM AUTOMATIC ALIGNMENT OF ELECTRONIC IMAGES
WO2021173562A1 (en) * 2020-02-24 2021-09-02 Walmart Apollo, Llc Systems and methods for visual identifiers
CN112329495B (zh) * 2020-11-02 2022-08-05 杭州海康威视数字技术股份有限公司 一种条形码识别方法、装置及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165994A (ja) * 1991-12-17 1993-07-02 Olympus Optical Co Ltd バーコードシンボル読取装置
JPH09161001A (ja) * 1995-12-05 1997-06-20 Fujitsu Ltd バーコード読取装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09237312A (ja) 1996-02-29 1997-09-09 Toshiba Corp 光学的文字読取装置
JP2001043300A (ja) 1999-07-29 2001-02-16 Nec Data Terminal Ltd バーコード読み取り装置及びその方法
US20060060654A1 (en) * 2004-09-23 2006-03-23 Kazukuni Hosoi Method of decoding barcode symbols and the like using multiple scanning lines
US7422153B2 (en) * 2005-11-30 2008-09-09 Symbol Technologies, Inc. Decoding with data from multiple scans
US8172145B2 (en) * 2007-11-20 2012-05-08 Datalogic ADC, Inc. Enhanced virtual scan line processing
US8025234B2 (en) * 2008-10-16 2011-09-27 Symbol Technologies, Inc. Arrangement for and method of enhancing performance of an imaging reader

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05165994A (ja) * 1991-12-17 1993-07-02 Olympus Optical Co Ltd バーコードシンボル読取装置
JPH09161001A (ja) * 1995-12-05 1997-06-20 Fujitsu Ltd バーコード読取装置

Also Published As

Publication number Publication date
US8381983B2 (en) 2013-02-26
JP5676183B2 (ja) 2015-02-25
US20120055991A1 (en) 2012-03-08

Similar Documents

Publication Publication Date Title
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
JP5591578B2 (ja) 文字列認識装置および文字列認識方法
JP5676183B2 (ja) バーコード読取装置およびバーコード読取方法
JP4752413B2 (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
US8333326B2 (en) Stacked barcode reader and stacked barcode reading method
US7949187B2 (en) Character string recognition method and device
JP2007213359A (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP4202101B2 (ja) バーコード認識方法、および認識用デコード処理装置
US9070033B2 (en) Stack barcode reader and stack barcode reading method
EP3933662B1 (en) Enhanced matrix symbol error correction method
JP5187383B2 (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
US10460142B2 (en) Barcode identification method for improving decoding reliability by correcting image distortion
JP5379626B2 (ja) スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置
JP4652201B2 (ja) バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置
JP5187382B2 (ja) 2次元コード分割表示方法、2次元コード読取方法および2次元コード読取装置
JP2003346105A (ja) 2dバーコードカードとその解読法
JP5515012B2 (ja) バーコード情報読取方法及びバーコード情報読取装置
US9495574B2 (en) Stack barcode reader and stack barcode reading method
JP5657987B2 (ja) スタック型バーコード読取装置およびスタック型バーコード読取方法
JP5683891B2 (ja) スタック型バーコード読取装置およびスタック型バーコード読取方法
JPH10111904A (ja) バーコード読み取り装置および記録媒体
JP5453594B2 (ja) シンボル情報読取装置及びシンボル情報読取方法
JP7427427B2 (ja) 解像度不足のシンボルをデコードするための方法と装置
JP4403063B2 (ja) シンボル情報読取方法及びシンボル情報読取装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140324

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140408

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140605

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140805

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141106

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20141201

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: 20141216

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141225

R150 Certificate of patent or registration of utility model

Ref document number: 5676183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees