JP2011076208A - スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 - Google Patents

スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 Download PDF

Info

Publication number
JP2011076208A
JP2011076208A JP2009224577A JP2009224577A JP2011076208A JP 2011076208 A JP2011076208 A JP 2011076208A JP 2009224577 A JP2009224577 A JP 2009224577A JP 2009224577 A JP2009224577 A JP 2009224577A JP 2011076208 A JP2011076208 A JP 2011076208A
Authority
JP
Japan
Prior art keywords
line width
image data
column
stack
value
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
JP2009224577A
Other languages
English (en)
Other versions
JP5379626B2 (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 Instruments 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 JP2009224577A priority Critical patent/JP5379626B2/ja
Priority to US12/892,536 priority patent/US8393542B2/en
Publication of JP2011076208A publication Critical patent/JP2011076208A/ja
Application granted granted Critical
Publication of JP5379626B2 publication Critical patent/JP5379626B2/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/10712Fixed beam scanning
    • G06K7/10762Relative movement
    • 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/10712Fixed beam scanning
    • G06K7/10722Photodetector array or CCD scanning

Landscapes

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

Abstract

【課題】スタック型バーコード情報を読み取る処理時間の短縮が可能なスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置を提供する。
【解決手段】画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成する変換工程を複数もち、複数の変換工程のうち一の変換工程で求めた線幅配列に基づくクラスタ番号と各ロウごとのクラスタ番号の理論値とを比較する。
【選択図】図15

Description

本発明は、スタック型バーコード情報を光学的に読み取るスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置に関するものである。
従来より、紙やプラスチック等の媒体に固有の情報を付与し、これを自動認識するための手段として、バーコードなるものが普及している。例えば、一般消費財には、一次元バーコードが使用されている。近年、バーコードの情報量に対する要求が強まり、一次元バーコードよりも格段に容量を増加させた二次元バーコードが登場してきている。そして、この二次元バーコードに対応した読み取り装置も次第に普及してきている。
この二次元バーコードの中には、一次元バーコードを積み重ねることによって情報量を増加させる方式のものがあり、これは、スタック型バーコードと呼ばれる。代表的なものにPDF417と呼ばれる符合体系のスタック型バーコードがある。なお、この符号体系PDF417は、ISO/IEC15438として国際規格化されている。
スタック型バーコードを読み取る読取装置としては、例えば、特許文献1又は特許文献2記載の読取装置がある。特許文献1に開示されたバーコード情報読取装置は、二次元撮像装置でバーコードを撮像し、可能な限りコードワードの読み取りを行ってから誤り訂正することで、処理時間の短縮を図ることができるものである。また、特許文献2に開示されたスタック型バーコード情報読み取り装置は、二次元撮像装置でバーコードを撮像し、バーコードの劣化状態を把握できるようにしたものである。
特開平09−022438号公報 特開平08−241369号公報
しかしながら、特許文献1に開示されたバーコード情報読取装置では、読取るべきバーコードを構成する全コードワード数と読取りに成功したコードワード数を比較して、予め設定した比率以上のコードワード数を読取った時には誤り訂正を施し、上記読取に成功したコードワード数が上記比率以下の時には、撮像部から新たな画像を撮像し読取り、上記比率以上のコードワードを読取れるまで繰り返し行うようにしている。そのため、媒体の状態によっては誤り訂正移行条件が満たされないか、満たされるまでに相当のリトライ回数を要するため、撮像に時間を要するような構成においては処理時間が長くなってしまうという問題がある。
また、特許文献2に開示されたスタック型バーコード情報読み取り装置では、バーコードが正しくエラー訂正されたか否かを判断し、良好にエラー訂正が終了した場合はデータ変換ステップに処理を移行するが、エラー訂正不能の場合は、再度バーコードの撮影を行う構成をとっているため、媒体の汚れやひずみなどによってエラー訂正条件が満たされにくい条件下では、再撮影回数が増えることにより、処理時間が長くなってしまうという問題がある。
本発明は、このような点に鑑みてなされたものであり、その目的は、スタック型バーコード情報を読み取る処理時間の短縮が可能なスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置を提供することにある。
以上のような課題を解決するために、本発明は、撮像して得られた画像データから1カラム分の各ロウのバー及びスペースの線幅を計測して線幅配列を生成する変換工程を複数もち、複数の変換工程のうち一の変換工程で求めた線幅配列に基づくクラスタ番号と各ロウごとのクラスタの理論値とを比較することを特徴とする。
より具体的には、本発明は、以下のものを提供する。
(1) 媒体上に記録されたスタック型バーコード情報を撮像して得られた画像データを処理することによって、当該スタック型バーコード情報を読み取るスタック型バーコード情報読取方法において、撮像して得られた画像データに基づいてスタック型バーコード情報のカラムの区切りを特定するカラム特定工程と、前記カラム特定工程により特定したカラムの区切りに基づいて、各ロウのカラムの境界を決定する境界決定工程と、前記境界決定工程の結果に基づいて、カラムごとにその範囲内の前記画像データからコードワード変換を行うコードワード取得工程と、を有し、前記コードワード取得工程は、前記画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成する変換工程を複数もち、複数の変換工程のうち一の変換工程で求めた線幅配列に基づくクラスタ番号と各ロウごとのクラスタ番号の理論値とを比較することを特徴とするスタック型バーコード情報読取方法。
本発明によれば、紙やプラスチック等の媒体上に記録されたスタック型バーコード情報を撮像して得られた画像データをソフトウエア的に処理することによって、そのスタック型バーコード情報を読み取るスタック型バーコード情報読取方法において、撮像して得られた画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成する変換工程を複数もち、複数の変換工程のうち一の変換工程で求めた線幅配列に基づくクラスタ番号と各ロウごとのクラスタ番号の理論値とを比較することから、生成された複数の線幅配列に基づくそれぞれのクラスタ番号に基づいて、いずれの線幅配列が適正であるかを判断することができる。
従って、スタック型バーコード画像の輝度ムラや汚れなどがあっても、生成された複数の線幅配列のいずれかによってコードワードを取得するので、従来のように、スタック型バーコード情報を再撮像することなく、スタック型バーコード情報を読み取る処理時間の短縮が可能となる。なお、コードワードとは、ある数字、文字またはその他のシンボルを表わす値、またはこれらに関連づけられた値を符号化するための基本となる単位である。
(2) 前記変換工程は、前記1カラム分のバー及びスペースの線幅からなる全画像データの平均値を第1の固定閾値として、前記バー及びスペースの線幅を計測して線幅配列を生成する工程と、前記第1の固定閾値を変更して第nの固定閾値(nは2以上の整数)を求め、この第nの固定閾値を用いて線幅配列を生成する工程と、を含むことを特徴とする(1)記載のスタック型バーコード情報読取方法。
本発明によれば、第1の固定閾値及び第nの固定閾値は、一定の値となっている。このように、固定閾値は、一度の処理で求めることができるので、処理時間を短縮することが可能となる。
(3) 前記変換工程は、前記1カラム分の各ロウのバー及びスペースの線幅からなる画像データにおいて隣接する前記バーの最大ピーク値と前記スペースの最小ピーク値の平均値を第1の局所閾値前記バー及びスペースの線幅を計測して線幅配列を生成する工程と、前記第1の局所閾値を変更して第mの局所閾値(mは2以上の整数)を求め、この第mの局所閾値を用いて線幅配列を生成する工程と、を含むことを特徴とする(1)または(2)のスタック型バーコード情報読取方法。
本発明によれば、第1の局所閾値及び第mの局所閾値は、隣接するバーの最大ピーク値とスペースの最小ピーク値を用いて検出しているので、ロウを形成する複数のバーとスペースにおいて異なった値となっている。このため、画像データの輝度ムラや汚れなどで、ピーク値のばらつきが生じた場合でも、精度良くバーとスペースとの幅を検出することが可能となる。
(4) 媒体上に記録されたスタック型バーコード情報を撮像する撮像装置と、撮像装置から得られた前記スタック型バーコードの画像データを記憶する画像メモリと、前記画像データに基づき前記スタック型バーコードの構造解析をおこなう構造解析部を有するデータ処理装置と、を備え、前記スタック型バーコード情報を読み取るスタック型バーコード情報読取装置において、前記構造解析部は、前記画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成することを特徴とするスタック型バーコード情報読取装置。
本発明によれば、スタック型バーコード画像の輝度ムラや汚れなどがあっても、生成された複数の線幅配列のいずれかによってコードワードを取得するので、従来のように、スタック型バーコード情報を再撮像することなく、スタック型バーコード情報を読み取る処理時間の短縮が可能となる。
本発明に係るスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置は、画像データの輝度ムラや汚れなどがあっても、スタック型バーコード情報を再撮像することなく、スタック型バーコード情報を読み取ることが可能となり、スタック型バーコード情報を読み取る処理時間の短縮が可能となる。
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
[スタック型バーコード情報読取装置]
図1は、本発明の実施の形態に係るスタック型バーコード情報読取装置1の電気的構成を示すブロック図である。
図1において、スタック型バーコード情報読取装置1は、密着型の撮像素子11aとカード搬送機構11bとを有する撮像装置11と、画像メモリ12と、データ処理装置13と、を備えている。データ処理装置13は、位置検出部13aと、傾き補正部13bと、構造解析部13cと、復号部13dと、を備えている。また、スタック型バーコード情報が付与されたカード等の記録担体2には、二次元バーコードのスタック型バーコード21が印刷されている。また、復号部13dは、低レベル信号復号部13d及び高レベル信号復号部13dが設けられている。
撮像装置11の撮像素子11aは、記録担体2に印刷されたスタック型バーコード21を、光電変換によって撮像する。画像メモリ12は、撮像素子11aによって撮像されたスタック型バーコード21の画像データを記憶する。データ処理装置13は、スタック型バーコード21の画像データを画像メモリ12から取り込み、取り込んだ画像データに対して様々な処理を施す。
このような電気的構成からなるスタック型バーコード情報読取装置1において、本発明の実施の形態に係るスタック型バーコード情報読取方法について説明する。
[スタック型バーコード情報読取方法]
図2は、本発明の実施の形態に係るスタック型バーコード情報読取方法の流れを示すフローチャートである。図2を用いて、本発明の実施の形態に係るスタック型バーコード情報読取方法の流れを概説する。
まず、スタック型バーコードの位置検出が行われる(ステップS21)。具体的には、スタック型バーコード情報読取装置1の撮像素子11aは、カード搬送機構11bに沿って所定位置まで移動した記録担体2のスタック型バーコード21を、光電変換によって撮像する。そして、撮像されたスタック型バーコード21の画像データは、画像メモリ12において記憶される。本実施の形態では、撮像されたスタック型バーコード21の画像データは、画像を有限個の画素の行列とみなし、各画素の(画素値である)輝度値を数値で表わされるものである。この輝度値は例えば、0から255までの整数値として表わされる。なお、この画像メモリ12は、RAM,SDRAM,DDRSDRAM,RDRAMなど、画像データを記憶しうるものであれば如何なるものであってもよい。
その後、データ処理装置13の位置検出部13aは、画像メモリ12で記憶された画像データを読み込み、その画像データ中のスタック型バーコード21の位置を検出する。
このようにして位置検出されたスタック型バーコード21はデータ処理装置13において切り出されて(ステップS22)、切り出された画像データが画像メモリ12に記憶される。
次いで、データ処理装置13において、スタック型バーコード21の傾き補正が行われる(ステップS23)。より具体的には、データ処理装置13の傾き補正部13bは、ステップS22において切り出された画像データを読み込み、その画像データを傾斜角度ゼロの補正画像データに変換する。
次いで、データ処理装置13において、構造解析が行われる(ステップS24,S25)。より具体的には、データ処理装置13の構造解析部13cは、ステップS23において変換された補正画像データに基づき、スタック型バーコード21の構造を解析する。構造解析部13cにおいては、カラム解析(ステップS24)及びロウ解析(ステップS25)が行われる。
最後に、データ処理装置13の復号部13dにおいて、復号の処理が行われる(ステップS26,S27)。より具体的には、データ処理装置13の復号部13dは、ステップS24、S25において解析されたスタック型バーコード21の構造に基づき、スタック型バーコード21の復号処理を行う。復号部13dの低レベル復号部13dにおいては低レベル復号処理を(ステップS26)、高レベル復号部13dにおいては高レベル復号処理を行う(ステップS27)。
図3は、上述したステップS21において撮像されたスタック型バーコード21の画像データの一例を示す図である。図3に示すスタック型バーコード21は、スタック型バーコードの一種であるPDF417のラベル構造によるスタック型バーコードを表している。
図3において、スタック型バーコード21は、図中の垂直方向(縦方向)をロウ方向、水平方向(横方向)をカラム方向とし、カラム方向において、5つに大きく分かれている。すなわち、図3に示すように、5カラムに分かれており、中央にデータカラムが配置され、また、データカラムの左右にはレフトロウインジケータ,ライトロウインジケータ、更にその左右にはスタートパターン,ストップパターンが配置されている。また、各カラムを構成するバーコードの構成は、黒い部分のバーと白い部分のスペースで構成されており、スタートパターン、ストップパターンには、ビッグバーと呼ばれる幅の広いバーがそれぞれ形成されている。ビッグバーは、図3において、スタートパターン及びストップパターンともに、右側の黒い部分で幅の一番広いバーである。
さらに、図3に示すスタック型バーコード21は、ロウ方向において、3つのカラム(データカラム、レフトロウインジケータ、ライトロウインジケータ)は6行から構成されている。各行を構成する3つのカラムにはそれぞれコードワードが1個ずつ含まれている。たとえば、スタック型バーコード21のデータカラムには、1個(データカラム1カラム分)×6行より6個のコードワードが構成されている。なお、コードワードとは、ある数字、文字またはその他のシンボルを表わす値、またはこれらに関連づけられた値を符号化するための基本となる単位である。
図4は、撮像装置11の撮像素子11aによって、スタック型バーコード21が傾いた状態で撮像された様子を示す図である。スタック型バーコード21を撮像装置11でスキャンしたときには、スタック型バーコード21のロウ方向が必ずしもカード搬送機構11bに対して垂直の関係に位置するとは限らない。撮像素子11aによって読み取られた画像データは、例えば図4に示すように傾く場合がある。換言すれば、ロウ方向と、画像メモリ12に格納された画像データの垂直方向が一致していない。このような場合に、従来のスタック型バーコード情報読取装置では、量子化誤差に起因したノイズによって、復号の信頼性が損なわれていたが、本実施形態によれば、かかるノイズの影響を低減することができる。以下、図2に示すフローチャートの各処理(ステップS21〜ステップS27)について詳述する。
[位置検出]
図5は、図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。また、図6は、スタック型バーコード21のうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。
図5において、まず、変数iに0を代入して初期化する(ステップS51)。
具体的には、図6は画像メモリ12に格納された画像データの中で、スタック型バーコードの一部を囲む領域で、左上を画素Sとし、その水平(X)方向に1画素分の行を水平ラインHL(0)としている。
次いで、水平ラインHL(0)から垂直方向(Y方向)にi番目の画素の列を、Y=iにおける水平ラインHL(i)上で、X方向に画素ごとに画像データを読み込み、画像が「明」から「暗」に変化する点(点P(i)とする)を検索する。具体的には、各画素の画像データ、すなわち、各画素の輝度値が所定の閾値により高い「明」(白い部分)を示す画素(以下、「スペース」という)と、所定の閾値より低い「暗」(黒い部分)を示す画素(以下、「バー」という)とに分けて、スペースからバーに変化した画素の位置を検出する。
また、同じ水平ラインHL(i)上で、今度は、画像が「暗」から「明」に変化する点(点Q(i)とする)を検索する。具体的には、バー(「暗」を示す画素)からスペース(「明」を示す画素)に変化した画素の位置を検出する。(ステップS52)。
次いで、i=r−1(r:図6におけるY方向の行数(画素数))が満たされたか否かが判断され(ステップS53)、満たされていないと判定された場合には、iを1だけインクリメントして(ステップS54)、再びステップS52の処理が行われる。一方、図6に示す画素Sから検索が始まり、X方向に各画素の輝度値を検索し、最終行の画素Eまで検索が終了した場合には、i=r−1が満たされたと判定する。このように、満たされたと判定された場合には、処理を次のステップS55に移す。なお、この段階で、n個の点の組(P(i),Q(i))(i=0,1,・・・,r−2,r−1)を得る。
次いで、図6中の点Aと点Cの座標を求める(ステップS55)。より具体的には、点A、点Cに該当する画素の位置を検出する。X方向において、d(i)=|P(i)−Q(i)|を計算し、d(i)のうちの最小値min(d(i))を求める。このmin(d(i))が、PQ間の距離の最も短くなるビッグバーの点A及び点Cの2点に対応する(図6参照)。これにより、点A及び点CのY座標(該当する画素のY方向の位置)は、それぞれAy=min(i)及びCy=max(i)となる。また、点A及び点CのX座標(該当する画素のX方向の位置)は、それぞれのiに対する点PのX座標になるので、それぞれAx=P(i=Ay)のX座標及びCx=P(i=Cy)のX座標となる。
次いで、図6中の点Bと点Cの座標を求める(ステップS56)。より具体的には、d(i)が一定となるiの範囲を特定する。そして、ビッグバーの点B及び点DのY座標は、その範囲におけるmax(i)及びmin(i)となる。また、点B及び点DのX座標は、それぞれのiに対する点P及び点QのX座標となるので、それぞれBx=P(i=By)のX座標及びDx=Q(i=Dy)のX座標となる。
このようにして、ステップS51〜ステップS56の処理を経て、ビッグバーの4隅、すなわち、点A、点B、点C、点Dの座標(該当する画素の位置)が確定したので、傾き角度は、atan((Ay−Dy)/(Ax−Dx))で計算することができる。
なお、傾き検出の精度を上げるため、図6において、XとYの役割を交換して同様の操作を行い、ビッグバーの4隅、すなわち、点A',点B',点C',点D'の座標を求め、上記点A,B,C,Dの座標値との平均をとって最終的な座標値としてもよい。
また、図5では、点A及び点Cの座標を求めるとともに(ステップS55)、点B及び点Dの座標も求めることとしたが(ステップS56)、本発明はこれに限定されず、例えば点A及び点Cの座標を求めることで、傾き検出を行うようにしてもよい。
[切出し処理]
ステップS51〜ステップS56の処理を経て、ビッグバーの4隅の座標が確定すると、スタック型バーコード21の切出しを行う。
[傾き補正]
図7は、上述した角度(=atan((Ay−Dy)/(Ax−Dx)))で傾いたスタック型バーコード21の画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。換言すれば、図7に示すスタック型バーコード21は、そのカラム方向とロウ方向とが図6に示す画像メモリ12領域の水平方向(X方向)と垂直方向(Y方向)と一致するように補正される。
図7において、傾斜角度ゼロの補正画像データへの変換は、スタック型バーコード21の傾斜角度を用いて行う。例えば、アフィン変換などの方法によって行うことができる。そして、本発明の実施の形態に係るスタック型バーコード情報読取方法では、座標変換に伴う量子化誤差の影響を緩和するため、座標変換後の画像に対して、平滑化を目的として補間処理又は平均化処理を行う。具体的には、各画素の輝度値は、図10(b)や図13に示すように、スペースを示す輝度値(例えば、100)、バーを示す輝度値(例えば、0)としている。なお、補正画像データは、例えば、メディアンフィルタ,エッジ保存フィルタ,適応ウィナーフィルタ,移動平均フィルタなどの各種フィルタにかけることによって平滑化されている。
[構造解析]
図8は、図2に示すフローチャートにおける構造解析(カラム解析、ロウ解析)の流れを示すフローチャートである。
図8において、まず、水平射影の処理が行われる(ステップS81)。具体的には、図7に示すスタック型バーコード21の補正画像データに基づいて、水平方向に配列された画素毎に、各垂直方向に配列された全画素の輝度値の総和を演算し、画像メモリ12に格納する処理である。
その後、求めた輝度値の総和を、水平方向に隣接する画素間で差分をとり、その差分値を用いてスタートパターン及びストップパターンの解析が行われる(ステップS82)。図3等に示すように、スタートパターンとストップパターンは、他のデータカラム、レフトロウインジケータ、ライトロウインジケータのコードワードと異なり、全てのロウ(本実施の形態では6行)に共通不変のパターンであることから、水平射影をとることでスタートパターンまたはストップパターンが平均化され、輝度ムラや汚れ等の影響を受けにくく、安定した検出が可能である。
図9は、補正画像データ(図7参照)に所定の処理を施して得られた図である。より具体的には、図9(a)は、補正画像データ(図7参照)について、垂直方向における画素毎に射影を計算したものであり、図3でいえば、スタック型バーコード12のロウ方向に、全画素の輝度値の総和を示す分布である。また、図9(b)は、図9(a)のグラフについて差分を計算したものである。具体的には、画像メモリ12に格納された画像データの水平方向において隣接する画素間で、求めた輝度値の総和の差分をとり、その差分値の分布である。これにより、水平ラインL(i)上で、バー(またはスペース)からスペース(またはバー)に変化した画素の位置を検出することができる。
スタートパターンの検出は、図9(a)又は図9(b)に示されるグラフを用いて、バーとスペースが変化する点の間隔(ランレングス)を水平方向における画素数(以下、「線幅」という)でカウントすることによって行われる。例えば、スタートパターンの各バーの線幅、各スペースの線幅を計測すると、StartWork=[47,6,5,6,7,6,6,18]に示すような線幅配列が求められる。一方で、スタートパターンのバーとスペースの長さの比は、PDF417の規格より、StartMark=[8,1,1,1,1,1,1,3]に示すような線幅配列となっている。ここで、両者の類似性を調べる指標として、例えば正規化相関Rを用いることができる。図9(b)について、正規化相関Rを考えると、R=corrcoef(StartWork,StartMark)=0.9993となり、Rは十分1に近い。従って、この場合には、適切にスタートパターンが検出されたと判定される。なお、ストップパターンの正規化相関Rについての説明は、スタートパターンと同様であるので、ここでの説明は省略する。
このようにして、スタート/ストップパターンが適切に検出されたか否かが判断された後(ステップS83)、スタート/ストップパターンが適切に検出されたと判定された場合には、処理をステップS85に移す。一方で、スタート/ストップパターンが適切に検出されていないと判定された場合には、デコード不可、すなわち、復号できないとして処理を終了する(ステップS84)。
なお、本実施形態では、類似性の尺度として、正規化相関Rを用いることとしたが、本発明はこれに限られず、例えば差分絶対値和,積和などを適宜用いてもよい。
次いで、図9(b)のグラフに関してピーク検出が行われる(ステップS85)。より具体的には、図3に示すように、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータ、ストップパターンは、各カラムの境界では全てのロウにおいてスペースからバーへの遷移が行われるため、水平射影の差分値の分布上、この部分で大きな差分値が現れる(図9(b)の上向き矢印)。そして、図9(b)の上向き矢印で示した差分値(ピーク値)を求めるには、適当な閾値を用意して、その閾値を超えたか超えないかでピークの有無を判定することができる。ピークと判断された場合には、ピーク値をもつ画素の位置を画像メモリ12に記憶させる。
次いで、カラム境界の検出が行われる(ステップS86)。より具体的には、ステップS85において記憶されたピーク値をもつ画素の位置に基づき、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータストップパターンの5つのカラムの境界を検出する。また、隣接するピーク値をもつ画素の間隔はカラムの幅を表すものであり、同様に画像メモリ12に記憶しておく。ここで、ある特定のロウにおいてこの境界近傍に汚れがあった場合、各ロウのスキャン中に各カラムの境界を示す変化点を正しく検出できない場合があるが、本実施形態のように水平方向における射影を用いることで、この汚れの影響が平均化作用によって小さくなり、各カラムの境界の検出への悪影響を抑えることができる。
次いで、ロウ境界の検出が行われる(ステップS87)。より具体的には、図10及び図11を用いて説明する。図10は、平均化された補正画像データの水平方向において、各ラインLの輝度値を示す波形図である。図11は、スタック型バーコード21の各ロウの区切りを特定する様子を説明するための説明図である。なお、本実施の形態では、1ラインLは、1行×n列の行列である。ここで、nは評価範囲の幅である。
図10(a)において、ロウ境界の検出は、まず、補正画像データ上に、連続する複数のラインLからなる組を設定する。例えば、連続する3個のラインL(1),L(2)及びL(3)(以下、「L1,L2及びL3と略す」)からなる組(ライン組S1)を設定する。なお、本実施の形態では、連続する3個のラインLを設定しているが、個数に限定されるものではない。
そして、これらの3本のラインLについて任意の2本を選びそれらの正規化相関を求めると、全部で3個(L1とL2,L1とL3,L2とL3)の相関値が得られる。これら3個の相関値のうちの最も小さい値が、予め決められた閾値r0よりも大きければ、L1、L2、L3の(ラインLの各画素の輝度値を示す)波形はお互いに相関していると判断し、このライン組S1に1が与えられる。これに対し、予め決められた閾値r0よりも小さければ、最も小さい値が得られた2つのラインLの波形は、少なくとも相関していないと判断し、このライン組S1に0が与えられる。
例えば、水平方向に形成されたラインL1,L2及びL3からなる組については、図10(b)に示すように、ラインL1,L2及びL3が全て同じロウ1(最も上のロウ)に含まれていることから、9個の相関値のうちの最も小さい値は閾値r0よりも大きくなり、1が与えられることになる(図11において、ライン組S1の判定値は1となっている)。
次に、補正画像データに対して上述した組を相対的にロウ方向(垂直方向)に移動させて(例えばL2,L3及びL4からなるライン組S2を考えて)、相関値列を算出し、算出された相関値列の最小値が閾値r0よりも大きいか否かを判断することによって、そのライン組に0又は1の判定値が与えられる。
以下同様に、ラインLn−2,Ln−1,Ln(ライン組Sn−2)まで上述した処理(判定値を与える処理)を繰り返し行うと、全部でn−2個の1と0とからなる系列が得られる(図11の右欄)。
ここで、3個のラインLが同一ロウから選ばれている場合は、それら3個のラインLよりなるライン組は1に近い値となり、3個のラインLが隣接するロウをまたいで選ばれている場合は、それら3個のラインLよりなるライン組は比較的小さい値となる。より具体的には、図10(b)において、ラインL18より上のラインLはロウ1に属し、ラインL18より下のラインLはロウ2に属し、このラインL18は、ロウ1とロウ2の境界に位置するラインLとなっている。
従って、このラインL18を含むライン組では、判定値がほぼ0となり、それ以外では、判定値は1となる(図11参照)。判定値が0に近いライン組は、ロウの切り替わり位置を表しているので、判定値の系列をスキャンして、その判定値が0に近い場所を特定することにより、ロウの切り替わり位置を知ることができる。なお、本実施形態では、相関関数によってラインL相互の類似性を評価しているので、図10(a)に図示するように、スタートパターンやストップパターンのような各ロウにおいて共通パターン(バー及びスペースの線幅が同じ)を除いた範囲を評価範囲とすることで、無駄な演算(計算コスト)を省くことができる。
以上説明したように、ライン組の設定→相関値列の算出→相関値列の最小値と閾値との比較→0又は1の判定値付与→判定値の系列のスキャン、という流れによって、ステップS87のロウ境界の検出が行われる。本実施の形態では、ロウ1からロウ6の最終ラインLまで行なわれる。
ロウ境界の検出によって、補正画像データの各ラインLがどのロウに属するかを判定し、デコード(復号)可能として処理を終了する(ステップS88)。
また、本実施の形態では、ロウごとに、それに含まれる複数のラインLの各点の輝度値の平均を計算することによって、ラインLの局所ノイズを低減することができる。さらに、平均した画素の輝度値を用いて、そのロウの特性を代表するものとして後述する復号処理に用いることができる。これにより、デコード(復号)精度を向上させることができる。
[低レベル復号処理]
図12は、図2に示すフローチャートにおける低レベル復号(ステップS26)の流れを示すフローチャートである。
なお、スタック型バーコードの一種であるPDF417では、低レベル復号処理と高レベル復号処理と2つの復号処理が行なわれ、低レベル復号処理は、1つのカラムを構成するバーの線幅とスペースの線幅でなるワードコードは「0」〜「928」で示される中間情報に一度変換される処理である。次に、高レベル復号処理は、「0」〜「928」で示される中間情報に一度変換された後、所定ルールに基づいて最終言語にデコード(復号)されるようになっている。この最終言語としては、PDF417では、ASCII文字やバイナリ表現、その他のキャラクタ等がある。
図12において、まず、Xシーケンス計測処理が行われる(ステップS121)。一般的なXシーケンス計測処理は、各ロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形をスキャンして、バーと、スペースの線幅を求める線幅計測が行われた後に、画素数によって表現されている線幅データをモジュール数表現に変換して、Xシーケンスを得る。なお、走査線は、例えば、各ロウにおいて、ロウ方向のほぼ真中に形成された複数のラインLであり、すなわち、複数行で構成された画素の行例である。さらに、複数のラインLを構成する画素の輝度値の平均を計算し、平均した画素の輝度値を用いて、そのロウにおける画素の輝度値を示す波形として復号処理に用いる。
図13は、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形をスキャンして得られた、画素の輝度値を示す波形の一部を示す波形図である。なお、バーの線幅及びスペースの線幅は、画素の輝度値を示す波形の変化点と変化点の間の画素数をカウントしたものである。ここで、変化点は、画素の輝度値を示す波形上で、図示しない所定の閾値と交差する点を示している。スタック型バーコードの一種であるPDF417において、図3等に示すように、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータ、ストップパターンの5つのカラムから構成されている。さらに、ストップパターンを除く各カラムは、4個のバーと4個のスペースで構成されるため、画素の輝度値を示す波形に損傷のない場合には、図13(a)に示すように、合計8個の線幅データが得られる。
一方で、画素の輝度値を示す波形に異常がある場合には、図13(b)に示すように、合計8個以上(9個)の線幅データが得られる。かかる場合には、カラムに損傷があることが分かり、このカラムの信頼性が低いことを示すフラグをセットする。かかる操作をあるロウに含まれるカラム全てについて実行したら、次のロウにおいても同様の処理を実行する。全てのロウについて、線幅データが得られたら、ステップS121(図12参照)の処理を終了する。
次いで、線幅正規化処理が行われる。線幅正規化処理は、計測されたバーの線幅とスペースの線幅とを表す画素数によって表現されている線幅データをモジュール数表現に変換する処理をいう。1モジュールは、バー又はスペースの最小幅に対応する。具体的には、スタック型バーコードの一種であるPDF417において、1カラムは17モジュールによって構成されている。1カラム内の線幅データをW1,W2,W3,W4,W5,W6,W7,W8とし、Wc=W1+W2+W3+W4+W5+W6+W7+W8とすれば、正規化線幅データは、Xi=Wi*17/Wc(i=1,2,…,7,8)で表されるXシーケンスとなる。例えば、図13(a)に示す左側のカラムのXシーケンスは、[5,1,1,1,1,1,5,2](これらの総和は17、すなわち、上記した17モジュールを示す)に示すような線幅配列である。
次に、Tシーケンス計測処理が行われる(ステップS122)。具体的には、Xシーケンスは、Tシーケンスに変換される。これは、隣接する2個のXiとXi+1を加算したものであり、図13(a)に示す左側のカラムのXシーケンスをTシーケンスに変換すると、[6(5+1),2(1+1),2(1+1),2(1+1),2(1+1),6(1+5),7(5+2)]に示すような線幅配列となる。
最後に、コードワード変換が行われる(ステップS123)。より具体的には、ステップS122において求められたTシーケンスに対応するコードワードを所定の参照テーブルから取得する。すなわち、低レベル復号処理が行なわれ、1つのカラムを構成する4個のバーの線幅と4個のスペースの線幅でなるコードワードは「0」〜「928」で示される中間情報に一度変換される。
ここで、本実施形態においては、Xシーケンス計測処理(ステップS121)において、Xシーケンスの誤判定を抑制するために、固定閾値及び局所閾値から得られる複数のXシーケンスから最適なものを選択できるようにしている。
図14は、本実施形態におけるXシーケンス計測処理(ステップS121)の流れを示すフローチャートである。このXシーケンス計測処理においては、上述したように、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形をスキャンして、計測された各画素の輝度値が、所定の閾値Hlより高い値であれば、スペースと判定し、各画素の輝度値が、閾値Hlより低い値であれば、バーと判定し、バーかスペースかの判定を行う。さらに、このような判定に基づいて、バーの線幅と、スペースの線幅とを計測し、線幅データを作成する。スタック型バーコードにおける各カラムは4個のバーと4個のスペースで構成され、ひとつのカラムに含まれるエレメント数は8個であるから、エレメント数が8個になるまで処理を繰り返し、閾値Hlを変動させていく。
本実施形態では、まず、n=1(またはm=1)のときに閾値H1として第1の固定閾値AV(または第1の局所閾値AV')を設定する(ステップS141)。なお、固定閾値AV、局所閾値AV'の説明は後述する。
次いで、第1の固定閾値H1=AV(または第1の局所閾値AV')のときのXシーケンスを計測し(ステップS142)、そのときのエレメント数が8個か否かを判断する(ステップS143)。ステップS143においてエレメント数が8個と判断した場合は、Xシーケンス計測は成功したものとして、このときのXシーケンスを有効化して(ステップS144)、本サブルーチンを終了する。一方、ステップS143において、エレメント数が8個でない判断した場合は、閾値H1を変更し規定回数n(またはm)(n、mは2以上の整数)の処理を繰り返したか否か、例えば、n=3(またはm=3)に到達したか否かを判断する(ステップS145)。
ステップS145においてn=3(またはm=3)でないと判断した場合は、規定回数n(またはm)に1をインクリメントし、本実施の形態では、第1の固定閾値H1からAV(またはAV')/4を減じた第2の固定閾値H2を設定して(ステップS146)、ステップS142及びステップS143の処理を繰り返す。なお、AV(またはAV')/4は経験則から決めた値であり、これに限定されるものではない。
新たに求めた第2の固定閾値H2に基づいて、Xシーケンスを再度計測し(ステップS142)、エレメント数が8個と判断されればXシーケンスは有効とし(ステップS144)、エレメント数が8個と判断されなければ、規定回数n=3(またはm=3)でないので(ステップS145)、n(またはm)に1をインクリメントし、第2の固定閾値H2から、さらにAV(またはAV')/4を減じた新たな第3の固定閾値H3を設定して(ステップS146)、第3の固定閾値H3に基づいてXシーケンスの再度計測を行う(ステップS142)。本実施の形態では、規定回数n=3(またはm=3)の処理を繰り返してもエレメント数が8個と判断されなければ、Xシーケンスは無効として(ステップS147)、本サブルーチンを終了する。
(固定閾値AV方式について)
図15は、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形をスキャンして得られた、各画素の輝度値を示す波形の一部を取り出した図であり、スタック型バーコードのあるロウとあるカラムに対応している。各画素の輝度値が第1の固定閾値AVより高い値か低い値かでバーかスペースかを判定し、具体的には、あるカラムの始点XSから終点XEまでの間に、バーとスペースのエレメント個数が8個になればXシーケンスは有効である。図15の例では、第1の固定閾値AVに基づいてXシーケンス(バーの線幅とスペースの線幅)を計測し、Xシーケンス[12,6,3,18,3,4,12,11]に示すような線幅配列が得られた。ここで、第1の固定閾値AVは、あるロウにおけるあるカラムにおいて、平均化したライン波形をスキャンして得られたバー及びスペースの線幅からなる全画像データの平均値である。具体的には、図15に示すロウとカラムにおいて、計測された全画素の輝度値を加算し、その加算値を全画素数で除算した値、すなわち、1画素あたりの平均輝度値を固定閾値AVとしている。そのため、第1の固定閾値AVは、図15に示すように、一定の値となっている。このように、第1の固定閾値AVは、一度の処理で求めることができるので、処理時間を短縮することが可能となる。
(局所閾値AV'方式について)
一方、図16はあるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形をスキャンして得られた、各画素の輝度値を示す波形の一部を取り出した図であり、この波形は図15に示すものと同じ波形である。局所閾値AV'は、ピーク値間の平均値、すなわち、隣接する最大ピーク値と最小ピーク値の平均値であり、図16の点線で示すように局所的に閾値を設定している。図16の例では、局所閾値AV'に基づいてXシーケンスを計測し、Xシーケンス[12,5,5,16,4,4,12,10]に示すような線幅配列が得られた。局所閾値AVは、図16に示すように、隣接するバーとスペースを用いて検出しているので、ロウを形成する複数のバーとスペースにおいて異なった値となっている。このため、補正画像データの輝度ムラや汚れなどで、ピーク値のばらつきが生じた場合でも、精度良くバーとスペースとの幅を検出することが可能となる。
図17は、本実施形態におけるTシーケンス計測処理(ステップS122)の流れを示すフローチャートである。このTシーケンス計測処理においては、固定閾値方式と局所閾値方式の2種類の閾値設定方式から得られたXシーケンスをTシーケンスに変換し、それぞれのTシーケンスより計算したクラスタ番号がクラスタの理論値に等しければそのTシーケンスを有効とし、理論値に等しくなければそのTシーケンスを無効とする。なお、図17においては、局所閾値方式から得られたXシーケンスを第1に、固定閾値方式から得られたXシーケンスを第2にして、処理ステップを構成しているが、必要に応じて処理順序を逆にしてもよい。
ここで、クラスタ番号とは、図3に示すスタック型バーコード21において、誤り発生の確率を最小にするために用意されているもので、スタートパターン及びストップパターン以外の全てのコードワードに存在している。具体的には、PDF417の規格により、クラスタ番号は3行目毎に順次繰り返し現れ、ロウ1(行0)にはクラスタ番号0、ロウ2(行1)にはクラスタ番号3、ロウ3(行2)にはクラスタ番号6が使われている。換言すれば、このクラスタ番号0、3、6は、クラスタ番号の理論値となっている。
つぎに、具体的な数値で説明する。
まず、局所閾値方式によって得たXシーケンスを取り出し(ステップS171)、Tシーケンスに変換する(ステップS172)。これは、X=[Xi,Xi+1,Xi+2,・・・]において、隣接する2個のXiとXi+1を加算したものであり、局所閾値方式によって得たXシーケンス、X=[12,5,5,16,4,4,12,10]をTシーケンスに変換すると、T=[17,10,21,20,8,16,22]に示すような線幅配列となる。
次いで、Tシーケンスよりクラスタ番号を計算する(ステップS173)。クラスタの計算は、まず、TシーケンスをTN(i)=T(i)*17/Wc(i=0,1,・・・,7)で正規化する。上の例では、TN=[4,3,5,5,2、4]に示すような線幅配列となる。次に、クラスタ番号K=(TN(0)−TN(1)+TN(4)−TN(5)+9)mod9(ただし、"mod9"は9で除した後の剰余である)で表される式によりクラスタ番号Kを計算する。上の例では、K=(4−3+2−4+9)mod9=8となる。
次いで、ステップS173において計算されたクラスタ番号は処理中のロウに対応するクラスタ番号の理論値と等しいか否かを判断する(ステップS174)。処理中のロウがスタック型バーコード21の第1行目であるとすると、クラスタの理論値は0である。従って、クラスタ番号8は、クラスタ番号の理論値0と一致しないため、Tシーケンスを無効として処理をステップS176に進める。一方、クラスタ番号が理論値と一致していれば、Tシーケンスを有効とする(ステップS175)。
ステップS174においてクラスタ番号が理論値と一致しないときは、固定閾値方式によって得たXシーケンスを取り出し(ステップS176)、Tシーケンスに変換する(ステップS177)。固定閾値方式によって得たXシーケンスをTシーケンスに変換すると、T=[18,9,21,21,7,16,23]となる。
次いで、Tシーケンスよりクラスタ番号を計算する(ステップS178)。上の例では、TN=[4,2,5,5,2,4]と正規化され、K=(4−2+2−4+9)mod9=0となる。
次いで、ステップS173において計算されたクラスタは処理中のロウに対応するクラスタの理論値と等しいか否かを判断する(ステップS179)。上の例では、クラスタ番号0とクラスタ番号の理論値0が一致しているため、Tシーケンスを有効とする(ステップS175)。一方、クラスタ番号と理論値が一致していない場合は、Tシーケンスを無効とする(ステップS180)。
このように、本実施形態においては、固定閾値方式と局所閾値方式の2種類の閾値設定方式を備え、画像データの輝度ムラや汚れなどの影響があっても、処理中のロウから得られるクラスタ番号を理論値と比較することにより、Xシーケンスが正しいか否かを判断し、最適なXシーケンスを得ることができる。
最適なXシーケンスが得られると、低レベル復号処理が行なわれ、コードワード変換処理が行われる。具体的には、有効とされたTシーケンスに対応するコードワードを所定の参照テーブルから取得する。すなわち、低レベル復号処理が行なわれ、1つのカラムを構成する4個のバーの線幅と4個のスペースの線幅でなるコードワードは「0」〜「928」で示される中間情報に一度変換される。
[高レベル復号処理]
コードワード変換が完了すると、一般的な高レベル復号が行われ、復号処理が完了する。また、復号処理が完了したデータについては、スタック型バーコード情報などとともに上位制御装置に出力されることになる。具体的には、高レベル復号処理は、「0」〜「928」で示される中間情報に一度変換された後、所定ルールに基づいて最終言語にデコード(復号)されるようになっている。この最終言語としては、PDF417では、ASCII文字やバイナリ表現、その他のキャラクタ等がある。
(本実施の形態の主な効果)
以上説明したように、本実施形態においては、スタック型バーコード情報を精度よく読み取ることができるので、処理時間を増やすことなく、精度よいスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置を構成することができる。すなわち、撮像して得られた補正画像データから1カラム分のバー及びスペースの線幅を複数の固定閾値または局所閾値それぞれに基づいて計測して線幅配列を生成し、これら複数の線幅配列について、クラスタ番号と各ロウごとのクラスタの理論値とを比較することから、生成された複数の線幅配列に基づくそれぞれのクラスタ番号に基づいて、いずれの線幅配列が適正であるかを判断することができる。
従って、撮像して得られた画像データの輝度ムラや汚れなどがあっても、生成された複数の線幅配列のいずれかによってコードワードを取得するので、従来のように、スタック型バーコード情報を再撮像することなく、スタック型バーコード情報を読み取ることができる。そのため、スタック型バーコード情報を読み取る処理時間の短縮が可能となる。
(他の実施の形態)
本実施形態では、一次元撮像素子やリニア搬送機構の組合せに対して本発明を適用することとしたが、本発明はこれに限られることなく、例えば、二次元CCDやCMOSイメージャなどのエリアセンサと被写体支持機構との組合せに対して本発明を適用することとしてもよい。
また、上述した角度変換工程は、スタック型バーコード情報を撮像して得られた画像データ自体の傾きを変えて、傾斜角度ゼロの補正画像データに変換するようにしているが、これに限定されるものではない。例えば、光学座標系を回転させて、実質的に傾斜角度ゼロの補正画像データに変換するなど、結果的に、傾斜角度ゼロの補正画像データを生成できるものであれば、如何なる手法であっても構わない。
本発明に係るスタック型バーコード情報読取方法及びスタック型バーコード情報読取装置は、スタック型バーコード画像の輝度ムラや汚れなどがあっても、スタック型バーコード情報を精度よく読み取ることができるものとして有用である。
本発明の実施の形態に係るスタック型バーコード情報読取装置の電気的構成を示すブロック図である。 本発明の実施の形態に係るスタック型バーコード情報読取方法の流れを示すフローチャートである。 スタック型バーコードの画像データの一例を示す図である。 撮像装置の撮像素子によって、スタック型バーコードが傾いた状態で撮像された様子を示す図である。 図2に示すフローチャートにおける位置検出の流れを示すフローチャートである。 スタック型バーコードのうち、スタートパターンにおけるビッグバーの部分及びその周辺を拡大した拡大図である。 所定の角度で傾いたスタック型バーコードの画像データを、傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。 図2に示すフローチャートにおける構造解析の流れを示すフローチャートである。 補正画像データ(図7参照)に所定の処理を施して算出された図である。 補正画像データの水平方向において、各ラインの画素値を示す波形図である。 スタック型バーコードの行の区切りを特定する様子を説明するための説明図である。 図2に示すフローチャートにおける低レベル復号の流れを示すフローチャートである。 ロウの各画素の輝度値を示す波形の一部を示す波形図である。 Xシーケンス計測処理の流れを示すフローチャートである ロウの輝度値を示す波形の一部を取り出した図である。 ロウの輝度値を示す波形の一部を取り出した図である。 Tシーケンス計測処理の流れを示すフローチャートである。
1 スタック型バーコード情報読取装置
2 記録担体
11 撮像装置
11a 撮像素子
12 画像メモリ
13 データ処理装置
13a 位置検出部
13b 傾き補正部
13c 構造解析部
13d 復号部

Claims (4)

  1. 媒体上に記録されたスタック型バーコード情報を撮像して得られた画像データを処理することによって、当該スタック型バーコード情報を読み取るスタック型バーコード情報読取方法において、
    撮像して得られた画像データに基づいてスタック型バーコード情報のカラムの区切りを特定するカラム特定工程と、
    前記カラム特定工程により特定したカラムの区切りに基づいて、各ロウのカラムの境界を決定する境界決定工程と、
    前記境界決定工程の結果に基づいて、カラムごとにその範囲内の前記画像データからコードワード変換を行うコードワード取得工程と、を有し、
    前記コードワード取得工程は、前記画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成する変換工程を複数もち、複数の変換工程のうち一の変換工程で求めた線幅配列に基づくクラスタ番号と各ロウごとのクラスタ番号の理論値とを比較することを特徴とするスタック型バーコード情報読取方法。
  2. 前記変換工程は、前記1カラム分のバー及びスペースの線幅からなる全画像データの平均値を第1の固定閾値として、前記バー及びスペースの線幅を計測して線幅配列を生成する工程と、前記第1の固定閾値を変更して第nの固定閾値(nは2以上の整数)を求め、この第nの固定閾値を用いて線幅配列を生成する工程と、を含むことを特徴とする請求項1記載のスタック型バーコード情報読取方法。
  3. 前記変換工程は、前記1カラム分のバー及びスペースの線幅からなる画像データにおいて隣接する前記バーの最大ピーク値と前記スペースの最小ピーク値の平均値を第1の局所閾値前記バー及びスペースの線幅を計測して線幅配列を生成する工程と、前記第1の局所閾値を変更して第mの局所閾値(mは2以上の整数)を求め、この第mの局所閾値を用いて線幅配列を生成する工程と、を含むことを特徴とする請求項1または2記載のスタック型バーコード情報読取方法。
  4. 媒体上に記録されたスタック型バーコード情報を撮像する撮像装置と、
    該撮像装置から得られた前記スタック型バーコードの画像データを記憶する画像メモリと、
    前記画像データに基づき前記スタック型バーコードの構造解析をおこなう構造解析部を有するデータ処理装置と、を備え、前記スタック型バーコード情報を読み取るスタック型バーコード情報読取装置において、
    前記構造解析部は、前記画像データから1カラム分のバー及びスペースの線幅を複数の閾値それぞれに基づき計測して線幅配列を生成することを特徴とするスタック型バーコード情報読取装置。
JP2009224577A 2009-09-29 2009-09-29 スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置 Expired - Fee Related JP5379626B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009224577A JP5379626B2 (ja) 2009-09-29 2009-09-29 スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置
US12/892,536 US8393542B2 (en) 2009-09-29 2010-09-28 Method and apparatus for reading stacked bar code information

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009224577A JP5379626B2 (ja) 2009-09-29 2009-09-29 スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置

Publications (2)

Publication Number Publication Date
JP2011076208A true JP2011076208A (ja) 2011-04-14
JP5379626B2 JP5379626B2 (ja) 2013-12-25

Family

ID=44020160

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009224577A Expired - Fee Related JP5379626B2 (ja) 2009-09-29 2009-09-29 スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置

Country Status (2)

Country Link
US (1) US8393542B2 (ja)
JP (1) JP5379626B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013068980A (ja) * 2011-09-20 2013-04-18 Denso Wave Inc 光学的情報読取装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8333326B2 (en) * 2010-10-07 2012-12-18 Nidec Sankyo Corporation Stacked barcode reader and stacked barcode reading method
TWI560620B (en) * 2016-01-20 2016-12-01 Qisda Corp Barcode decoding method
CN107633192B (zh) * 2017-08-22 2020-05-26 电子科技大学 一种基于机器视觉的复杂背景下条形码分割与识读方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6261176A (ja) * 1985-09-11 1987-03-17 Usac Electronics Ind Co Ltd バ−コ−ド読取装置の浮動スライス方式
JPH0950473A (ja) * 1995-02-10 1997-02-18 Intermec Corp 未定の複雑な多幅バーコード符号プロフィールをデコードする方法及び装置
JP2005165949A (ja) * 2003-12-05 2005-06-23 Toshiba Social Automation Systems Co Ltd バーコード読み取り方法及びバーコード読み取り装置
JP2007102386A (ja) * 2005-09-30 2007-04-19 Nidec Sankyo Corp シンボル情報読取方法及びシンボル情報読取装置
JP2008009907A (ja) * 2006-06-30 2008-01-17 Fuji Xerox Co Ltd バーコード認識装置、方法及びプログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5319181A (en) * 1992-03-16 1994-06-07 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
US5304786A (en) * 1990-01-05 1994-04-19 Symbol Technologies, Inc. High density two-dimensional bar code symbol
US5337361C1 (en) * 1990-01-05 2001-05-15 Symbol Technologies Inc Record with encoded data
JP3504366B2 (ja) 1995-03-03 2004-03-08 オリンパス株式会社 シンボル情報読み取り装置
US5631457A (en) * 1994-08-17 1997-05-20 Olympus Optical Co., Ltd. Two-dimensional symbol data read apparatus
JP3618405B2 (ja) 1995-07-07 2005-02-09 オリンパス株式会社 バーコード情報読取り装置
US7380718B2 (en) * 2004-12-21 2008-06-03 Nidec Sankyo Corporation Method for reading out symbol information and device for reading out symbol information
US8313029B2 (en) * 2008-01-31 2012-11-20 Seiko Epson Corporation Apparatus and methods for decoding images
US8333326B2 (en) * 2010-10-07 2012-12-18 Nidec Sankyo Corporation Stacked barcode reader and stacked barcode reading method

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6261176A (ja) * 1985-09-11 1987-03-17 Usac Electronics Ind Co Ltd バ−コ−ド読取装置の浮動スライス方式
JPH0950473A (ja) * 1995-02-10 1997-02-18 Intermec Corp 未定の複雑な多幅バーコード符号プロフィールをデコードする方法及び装置
JP2005165949A (ja) * 2003-12-05 2005-06-23 Toshiba Social Automation Systems Co Ltd バーコード読み取り方法及びバーコード読み取り装置
JP2007102386A (ja) * 2005-09-30 2007-04-19 Nidec Sankyo Corp シンボル情報読取方法及びシンボル情報読取装置
JP2008009907A (ja) * 2006-06-30 2008-01-17 Fuji Xerox Co Ltd バーコード認識装置、方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013068980A (ja) * 2011-09-20 2013-04-18 Denso Wave Inc 光学的情報読取装置

Also Published As

Publication number Publication date
US8393542B2 (en) 2013-03-12
JP5379626B2 (ja) 2013-12-25
US20110233279A1 (en) 2011-09-29

Similar Documents

Publication Publication Date Title
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
US7949187B2 (en) Character string recognition method and device
US8333326B2 (en) Stacked barcode reader and stacked barcode reading method
JP5334042B2 (ja) 文字列認識方法及び文字列認識装置
JP6095194B2 (ja) スタック型バーコード読取装置及びスタック型バーコード読取方法
JP2011227636A (ja) 文字列認識装置および文字列認識方法
JP5140820B2 (ja) シンボル情報読取装置及びシンボル情報読取方法
US8718370B2 (en) Optical information-reading apparatus and optical information-reading method
JP5676183B2 (ja) バーコード読取装置およびバーコード読取方法
JP5379626B2 (ja) スタック型バーコード情報読取方法及びスタック型バーコード情報読取装置
JP4652201B2 (ja) バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置
US10460142B2 (en) Barcode identification method for improving decoding reliability by correcting image distortion
JP5657987B2 (ja) スタック型バーコード読取装置およびスタック型バーコード読取方法
JP5683891B2 (ja) スタック型バーコード読取装置およびスタック型バーコード読取方法
US8403221B2 (en) Method and apparatus for reading barcode information
JP4403063B2 (ja) シンボル情報読取方法及びシンボル情報読取装置
JP6393226B2 (ja) スタック型バーコード読取装置およびスタック型バーコード読取方法
JP5470734B2 (ja) 画像処理装置及び画像処理プログラム
JP4905767B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
JP5453594B2 (ja) シンボル情報読取装置及びシンボル情報読取方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130521

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130719

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130927

R150 Certificate of patent or registration of utility model

Ref document number: 5379626

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees