JP5683891B2 - Stacked bar code reader and stack bar code reading method - Google Patents

Stacked bar code reader and stack bar code reading method Download PDF

Info

Publication number
JP5683891B2
JP5683891B2 JP2010227437A JP2010227437A JP5683891B2 JP 5683891 B2 JP5683891 B2 JP 5683891B2 JP 2010227437 A JP2010227437 A JP 2010227437A JP 2010227437 A JP2010227437 A JP 2010227437A JP 5683891 B2 JP5683891 B2 JP 5683891B2
Authority
JP
Japan
Prior art keywords
sequence
barcode
stack
value
bar
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.)
Expired - Fee Related
Application number
JP2010227437A
Other languages
Japanese (ja)
Other versions
JP2012083835A (en
Inventor
中村 宏
宏 中村
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 JP2010227437A priority Critical patent/JP5683891B2/en
Priority to US13/240,208 priority patent/US8333326B2/en
Publication of JP2012083835A publication Critical patent/JP2012083835A/en
Application granted granted Critical
Publication of JP5683891B2 publication Critical patent/JP5683891B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本発明は、スタック型バーコードを光学的に読み取るためのスタック型バーコード読取装置およびスタック型バーコード読取方法に関するものである。   The present invention relates to a stack bar code reader and a stack bar code reading method for optically reading a stack bar code.

従来より、紙やプラスチック等の媒体に固有の情報を付与し、これを自動認識するための手段として、キャラクタ情報がバーコードにコード化されてバーおよびスペースで表示されたバーコードなるものが普及している。例えば、一般消費財には、一次元バーコードが使用されている。近年、バーコードの情報量の増大に対する要求が強まり、一次元バーコードよりも格段に容量(情報密度)を高めた二次元バーコードが登場している。そして、この二次元バーコードに対応した読取装置も次第に普及してきている。   Conventionally, barcodes in which character information is encoded into barcodes and displayed as bars and spaces are widely used as a means for assigning unique information to media such as paper and plastic and automatically recognizing them. doing. For example, a one-dimensional barcode is used for general consumer goods. In recent years, demands for increasing the amount of information on barcodes have increased, and two-dimensional barcodes that have a much higher capacity (information density) than one-dimensional barcodes have appeared. And readers corresponding to this two-dimensional bar code are gradually spreading.

この二次元バーコードの中には、一次元バーコードを積み重ねることによって情報量を増加させる方式のものがあり、これは、スタック型バーコードと呼ばれる。その代表的なものに、PDF417と呼ばれる符合体系のスタック型バーコードがある。なお、この符号体系PDF417は、ISO/IEC15438として国際規格化されている。   Among these two-dimensional barcodes, there is a method of increasing the amount of information by stacking one-dimensional barcodes, which is called a stack barcode. A representative example is a code-based stack barcode called PDF417. This code system PDF417 is internationally standardized as ISO / IEC15438.

こうしたスタック型バーコードを読み取る読取装置としては、例えば、特許文献1に開示されたシンボル情報読み取り装置がある。この特許文献1に開示されたシンボル情報読み取り装置は、二次元撮像装置でスタック型バーコードを撮像し、スタック型バーコードの品質状態を数値で表し、スタック型バーコードの劣化状態を把握できるようにしたものである。   As a reading device for reading such a stack type barcode, for example, there is a symbol information reading device disclosed in Patent Document 1. The symbol information reading apparatus disclosed in Patent Document 1 captures a stack barcode with a two-dimensional imaging device, expresses the quality state of the stack barcode numerically, and can grasp the deterioration state of the stack barcode. It is a thing.

特開平8−241369号公報JP-A-8-241369

しかしながら、スタック型バーコードを撮像する撮像光学系の分解能が一定の水準に達していない場合には、スタック型バーコードの走査反射率波形が変動してしまう。このため、特許文献1に開示されたシンボル情報読み取り装置においても、走査反射率波形が変動することで、バー及びスペースとの境界を正確に検出することができないという問題がある。その結果、スタック型バーコードの読み取り精度が低下する恐れがある。   However, when the resolution of the imaging optical system that captures the stack barcode does not reach a certain level, the scanning reflectance waveform of the stack barcode varies. For this reason, the symbol information reading apparatus disclosed in Patent Document 1 also has a problem that the boundary between the bar and the space cannot be accurately detected due to fluctuations in the scanning reflectance waveform. As a result, the reading accuracy of the stack barcode may be lowered.

本発明は、このような事情に鑑み、スタック型バーコードの走査反射率波形の変動の影響を受けにくく、このスタック型バーコードを精度よく読み取ることが可能なスタック型バーコード読取装置およびスタック型バーコード読取方法を提供することを目的とする。   In view of such circumstances, the present invention is not easily affected by fluctuations in the scanning reflectance waveform of a stack barcode, and a stack barcode reader and stack type capable of accurately reading the stack barcode. An object is to provide a barcode reading method.

かかる目的を達成するため、本発明に係るスタック型バーコード読取装置は、キャラクタ情報がバーコードにコード化されてバーおよびスペースで表示されたスタック型バーコードを撮像する撮像部と、この撮像部が撮像した前記スタック型バーコードの画像データを記憶する画像メモリと、前記画像データに基づき、前記スタック型バーコードのバーコードをキャラクタ情報に復号する復号部を有するデータ処理部とを備え、前記復号部は、前記画像データを構成する複数の画素の輝度値によって前記スタック型バーコードのバーとスペースとの線幅を計測するための閾値を算出する閾値算出手段と、前記画像データを構成する複数の画素の輝度値を示す走査反射率波形を微分してn次微分値(nは1または2)を算出するn次微分算出手段と、前記閾値または前記n次微分値に基づき、前記スタック型バーコードのバーおよびスペースの線幅を計測する線幅計測手段と、この線幅計測手段によって計測された前記スタック型バーコードのバーおよびスペースの線幅からTシーケンスを計測するTシーケンス計測手段と、このTシーケンス計測手段によって計測されたTシーケンスに対応するコードワードを取得するコードワード取得手段とを有するスタック型バーコード読取装置であって、前記Tシーケンス計測手段は、前記閾値と前記n次微分値のいずれか一方に基づいて計測されたTシーケンスの有効性を判定し、このTシーケンスが有効でない場合には、前記閾値と前記n次微分値の他方に基づいて計測されたTシーケンスの有効性を判定するスタック型バーコード読取装置としたことを特徴とする。 In order to achieve such an object, a stack type barcode reader according to the present invention includes an imaging unit that captures a stack type barcode in which character information is encoded into a barcode and displayed as a bar and a space, and the imaging unit. An image memory for storing the image data of the stack type barcode imaged by the data processing unit, and a data processing unit having a decoding unit for decoding the barcode of the stack type barcode into character information based on the image data, The decoding unit constitutes the image data, threshold calculating means for calculating a threshold for measuring the line width between the bar and space of the stack barcode based on the luminance values of a plurality of pixels constituting the image data. An n-th order differential calculation method for differentiating a scanning reflectance waveform indicating the luminance values of a plurality of pixels to calculate an n-th order differential value (n is 1 or 2). A line width measuring means for measuring the line width of the bar and space of the stacked bar code based on the threshold value or the nth-order differential value, and the bar code of the stack bar code measured by the line width measuring means. And a stack type barcode reader having a T sequence measuring means for measuring a T sequence from the line width of the space, and a code word acquiring means for acquiring a code word corresponding to the T sequence measured by the T sequence measuring means. The T sequence measurement means determines the validity of the T sequence measured based on one of the threshold value and the nth-order differential value, and when the T sequence is not valid, reading stacked bar code determining the efficacy of T sequences that are measured based on the other of the n-th order differential value It characterized in that it was the location.

さらに、本発明に係るスタック型バーコード読取装置は、前記n次微分値は2次微分値であり、この2次微分値のゼロクロス点を前記バーと前記スペースとの境界とすることを特徴とする。   Furthermore, in the stack type barcode reader according to the present invention, the n-th order differential value is a second-order differential value, and a zero-cross point of the second-order differential value is used as a boundary between the bar and the space. To do.

本発明に係るスタック型バーコード読取装置は、さらに、前記閾値は、前記画像データの平均値に基づく固定閾値と、前記画像データにおいて互いに隣接する前記バーおよび前記スペースの最大ピーク値と最小ピーク値との平均値に基づく局所閾値とのいずれか一方であることを特徴とする。   In the stacked barcode reader according to the present invention, the threshold value may be a fixed threshold value based on an average value of the image data, and a maximum peak value and a minimum peak value of the bar and the space adjacent to each other in the image data. Or a local threshold value based on the average value.

また、本発明に係るスタック型バーコード読取方法は、キャラクタ情報がバーコードにコード化されてバーおよびスペースで表示されたスタック型バーコードを撮像して得られた画像データに基づき、前記スタック型バーコードのバーコードをキャラクタ情報に復号する際に、前記画像データを構成する複数の画素の輝度値によって前記スタック型バーコードのバーとスペースとの線幅を計測するための閾値を算出する閾値算出工程と、前記画像データを構成する複数の画素の輝度値を示す走査反射率波形を微分してn次微分値(nは1または2)を算出するn次微分算出工程と、前記閾値または前記n次微分値に基づき、前記スタック型バーコードのバーおよびスペースの線幅を計測する線幅計測工程と、この線幅計測工程において計測された前記スタック型バーコードのバーおよびスペースの線幅からTシーケンスを計測するTシーケンス計測工程と、このTシーケンス計測工程において計測されたTシーケンスに対応するコードワードを取得するコードワード取得工程とを含むスタック型バーコード読取方法であって、前記Tシーケンス計測工程において、前記閾値と前記n次微分値のいずれか一方に基づいて計測されたTシーケンスの有効性を判定し、このTシーケンスが有効でない場合には、前記閾値と前記n次微分値の他方に基づいて計測されたTシーケンスの有効性を判定するスタック型バーコード読取方法としたことを特徴とする。 Further, the stack type barcode reading method according to the present invention is based on image data obtained by imaging a stack type barcode in which character information is encoded into a barcode and displayed in a bar and a space. Threshold value for calculating a threshold value for measuring the line width between the bar and space of the stack barcode according to the luminance values of a plurality of pixels constituting the image data when decoding the barcode barcode into character information A calculation step, an n-order differential calculation step of calculating an n-th order differential value (n is 1 or 2) by differentiating a scanning reflectance waveform indicating luminance values of a plurality of pixels constituting the image data, the threshold value or A line width measuring step for measuring the line width of the bar and space of the stacked barcode based on the nth-order differential value, and the line width measuring step A T-sequence measurement step of measuring a T-sequence from the line width of the bar and space of the stacked barcode, and a code-word acquisition step of acquiring a code word corresponding to the T-sequence measured in the T-sequence measurement step A stack type bar code reading method including : determining the validity of a T sequence measured based on one of the threshold value and the n-th order differential value in the T sequence measurement step; If not, a stack type barcode reading method for determining the validity of the T sequence measured based on the other of the threshold value and the nth-order differential value is provided.

本発明に係るスタック型バーコード読取方法は、さらに、前記Tシーケンス計測工程において計測されたTシーケンスから計算されたクラスタ番号が理論値に等しいか否かにより、このTシーケンスの有効性を判定することを特徴とする。   The stacked barcode reading method according to the present invention further determines the validity of the T sequence based on whether or not the cluster number calculated from the T sequence measured in the T sequence measurement step is equal to the theoretical value. It is characterized by that.

本発明に係るスタック型バーコード読取装置およびスタック型バーコード読取方法によれば、閾値方式およびn次微分方式の2種類の低レベル復号方式を備え、撮像光学系の分解能の高低などに応じて、これらを使い分けることにより、スタック型バーコードの走査反射率波形の変動の影響を受けにくく、このスタック型バーコードを精度よく読み取ることが可能となる。 According to the stack type barcode reader and the stack type barcode reading method according to the present invention, two types of low level decoding methods, ie, a threshold method and an nth-order differentiation method are provided, and the resolution of the imaging optical system is varied. By properly using these, it is difficult to be affected by fluctuations in the scanning reflectance waveform of the stack barcode, and the stack barcode can be read with high accuracy.

本発明の実施の形態1に係るスタック型バーコード読取装置の電気的構成を示すブロック図である。It is a block diagram which shows the electric constitution of the stack | stuck type barcode reader which concerns on Embodiment 1 of this invention. 同実施の形態1に係るスタック型バーコード読取装置の低レベル復号部のブロック図である。It is a block diagram of the low level decoding part of the stack type barcode reader according to the first embodiment. スタック型バーコードの一例を示す図である。It is a figure which shows an example of a stack | stuck type | mold barcode. スタック型バーコードのうちスタートパターンにおけるビッグバーの部分およびその周辺を拡大した拡大図である。It is the enlarged view which expanded the part of the big bar in a start pattern among stack-type barcodes, and its periphery. 本発明の実施の形態1に係るスタック型バーコード読取方法の流れを示すフローチャートである。It is a flowchart which shows the flow of the stack | stuck type | mold barcode reading method which concerns on Embodiment 1 of this invention. 図5に示すフローチャートにおけるスタック型バーコード位置検出の流れを示すフローチャートである。It is a flowchart which shows the flow of a stack | stuck type | mold barcode position detection in the flowchart shown in FIG. 図5に示すフローチャートにおける構造解析(カラム解析およびロウ解析)の流れを示すフローチャートである。It is a flowchart which shows the flow of the structural analysis (column analysis and row analysis) in the flowchart shown in FIG. 補正画像データ(図3参照)に所定の処理を施して算出されたグラフである。It is the graph calculated by giving a predetermined process to correction | amendment image data (refer FIG. 3). 補正画像データの水平方向において各ラインの画素値を示す波形図である。It is a wave form diagram which shows the pixel value of each line in the horizontal direction of correction | amendment image data. スタック型バーコードのロウの区切りを特定する様子を説明するための説明図である。It is explanatory drawing for demonstrating a mode that the division | segmentation of the row | line | column of a stack type barcode is specified. 図5に示すフローチャートにおける低レベル復号の流れを示すフローチャートである。6 is a flowchart showing a flow of low-level decoding in the flowchart shown in FIG. 5. スタック型バーコードのロウを構成する各画素の輝度値を示す走査反射率波形の一部を示す波形図である。It is a wave form diagram which shows a part of scanning reflectance waveform which shows the luminance value of each pixel which comprises the row | line | column of a stack | stuck type | mold barcode. Xシーケンス計測処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a X sequence measurement process. スタック型バーコードのロウの輝度値を示す走査反射率波形の一部を取り出した図である。It is the figure which extracted a part of scanning reflectance waveform which shows the luminance value of the row | line | column of a stack | stuck type | mold barcode. n次微分方式を説明するための図である。It is a figure for demonstrating an nth-order differentiation system. Tシーケンス計測処理の流れを示すフローチャートである。It is a flowchart which shows the flow of T sequence measurement processing. 本発明の実施の形態1の変形例に係るスタック型バーコード読取方法において、スタック型バーコードのロウの輝度値を示す走査反射率波形の一部を取り出した図である。FIG. 7 is a diagram showing a part of a scanning reflectance waveform that indicates a luminance value of a row of a stack barcode in the stack barcode reading method according to a modification of Embodiment 1 of the present invention.

以下、本発明の実施の形態について説明する。
[発明の実施の形態1]
Embodiments of the present invention will be described below.
Embodiment 1 of the Invention

図1乃至図17には、本発明の実施の形態1を示す。
(スタック型バーコード読取装置)
1 to 17 show a first embodiment of the present invention.
(Stacked barcode reader)

図1は、本発明の実施の形態1に係るスタック型バーコード読取装置1の電気的構成を示すブロック図である。図2は、同実施の形態1に係るスタック型バーコード読取装置の低レベル復号部のブロック図である。   FIG. 1 is a block diagram showing an electrical configuration of a stack type barcode reader 1 according to Embodiment 1 of the present invention. FIG. 2 is a block diagram of the low-level decoding unit of the stacked barcode reader according to the first embodiment.

図1において、スタック型バーコード読取装置1は、密着型のイメージスキャナ11aおよびカード搬送機構11bを有する撮像装置11と、画像メモリ12と、データ処理装置13とを備えている。データ処理装置13は、位置検出部13aと、傾き補正部13bと、構造解析部13cと、復号部13dとを備えている。また、カード等の記録担体2には、二次元バーコードの一種であるスタック型バーコード21が印刷されている。また、復号部13dは、低レベル復号部13d1および高レベル復号部13d2を有している。   In FIG. 1, the stack barcode reader 1 includes an imaging device 11 having a contact image scanner 11 a and a card transport mechanism 11 b, an image memory 12, and a data processing device 13. The data processing device 13 includes a position detection unit 13a, an inclination correction unit 13b, a structure analysis unit 13c, and a decoding unit 13d. Further, a stack type barcode 21 which is a kind of two-dimensional barcode is printed on a record carrier 2 such as a card. The decoding unit 13d includes a low level decoding unit 13d1 and a high level decoding unit 13d2.

撮像装置11のイメージスキャナ11aは、記録担体2に印刷されたスタック型バーコード21を照射した光の反射光を光電変換によって電気信号に変換して画像データを得る。得られたスタック型バーコード21の画像データは画像メモリ12に記憶される。データ処理装置13は、スタック型バーコード21の画像データを画像メモリ12から取り込み、取り込んだ画像データに対して様々な処理を施す。   The image scanner 11a of the imaging device 11 obtains image data by converting the reflected light of the light irradiated on the stack barcode 21 printed on the record carrier 2 into an electrical signal by photoelectric conversion. The obtained image data of the stack barcode 21 is stored in the image memory 12. The data processing device 13 captures the image data of the stack barcode 21 from the image memory 12 and performs various processes on the captured image data.

低レベル復号部13d1は、図2に示すように、Xシーケンス計測部14と、Tシーケンス計測部15と、コードワード変換部16とを備えている。   As illustrated in FIG. 2, the low-level decoding unit 13 d 1 includes an X sequence measurement unit 14, a T sequence measurement unit 15, and a codeword conversion unit 16.

Xシーケンス計測部14は、閾値算出手段14aおよび線幅計測手段14bを有している。閾値算出手段14aは、固定閾値算出手段14a1と、局所閾値算出手段14a2と、n次微分算出手段14a3とから構成されている。   The X sequence measurement unit 14 includes a threshold value calculation unit 14a and a line width measurement unit 14b. The threshold value calculation means 14a is composed of a fixed threshold value calculation means 14a1, a local threshold value calculation means 14a2, and an n-th order differential calculation means 14a3.

Tシーケンス計測部15は、シーケンス変換手段15a、線幅正規化手段15bおよび判定手段15cを有している。シーケンス変換手段15aは、Xシーケンスで算出した線幅配列をTシーケンス用の線幅配列に変換する機能を有している。また、判定手段15cは、後述するクラスタ番号と理論値とを比較する機能を有している。   The T sequence measurement unit 15 includes a sequence conversion unit 15a, a line width normalization unit 15b, and a determination unit 15c. The sequence conversion means 15a has a function of converting the line width array calculated by the X sequence into a line width array for the T sequence. The determination unit 15c has a function of comparing a cluster number, which will be described later, with a theoretical value.

コードワード変換部16は、テーブルメモリ16aを有しており、テーブルメモリ16aには、Tシーケンスとコードワードとの対応関係を示すコードワード変換テーブルが格納されている。
(スタック型バーコード PDF417の構造)
The code word conversion unit 16 includes a table memory 16a, and a code word conversion table indicating a correspondence relationship between T sequences and code words is stored in the table memory 16a.
(Structure of stack barcode PDF417)

図3は、スタック型バーコード21の一例(PDF417のラベル構造によるスタック型バーコード)を示す図である。   FIG. 3 is a diagram showing an example of the stack barcode 21 (stack barcode with the label structure of PDF417).

図3において、スタック型バーコード21は、図中の垂直方向(Y方向)をロウ方向(複数のロウが配列されている方向)、水平方向(X方向)をカラム方向(複数のカラムが配列されている方向)とし、カラム方向において、5つに大きく分かれている。すなわち、図3に示すように、5カラムに分かれており、中央にデータカラムが配置され、また、データカラムの左右にはレフトロウインジケータ、ライトロウインジケータ、さらに、その左右にはスタートパターン、ストップパターンが配置されている。また、各カラムを構成するバーコードの構成は、黒い部分のバーと白い部分のスペースとで構成されており、スタートパターン、ストップパターンには、ビッグバーと呼ばれる幅の広いバーがそれぞれ形成されている。ビッグバーは、図3において、スタートパターンおよびストップパターンともに、左側の黒い部分で幅の一番広いバーである。   In FIG. 3, the stack type barcode 21 has a vertical direction (Y direction) in the drawing in the row direction (a direction in which a plurality of rows are arranged) and a horizontal direction (X direction) in the column direction (a plurality of columns are arranged in the direction). In the column direction, and is roughly divided into five. That is, as shown in FIG. 3, it is divided into five columns, the data column is arranged in the center, the left and right indicators on the left and right of the data column, and the start pattern and stop on the left and right, respectively. A pattern is placed. Each bar code is composed of a black bar and a white space, and the start pattern and stop pattern are each formed with a wide bar called a big bar. Yes. The big bar in FIG. 3 is the widest bar in the black part on the left side for both the start pattern and the stop pattern.

さらに、図3に示すように、データカラム、レフトロウインジケータ、ライトロウインジケータは各々、ロウ方向に、6行(ロウ1〜ロウ6)から構成されている。各行(ロウ)を構成する3つのカラム(データカラム、レフトロウインジケータ、ライトロウインジケータ)にはそれぞれコードワードが1個ずつ含まれている。例えば、スタック型バーコード21のデータカラムには、1個(データカラム1カラム分)×6行より6個のコードワードが構成されている。なお、コードワードとは、ある数字、文字またはその他のシンボルを表す値、またはこれらに関連づけられた値を符号化するための基本となる単位である。   Further, as shown in FIG. 3, each of the data column, the left row indicator, and the right row indicator is composed of six rows (row 1 to row 6) in the row direction. Each of the three columns (data column, left row indicator, right row indicator) constituting each row includes one code word. For example, in the data column of the stack barcode 21, six code words are composed of one (for one data column) × 6 rows. The code word is a basic unit for encoding a value representing a certain number, character or other symbol, or a value associated therewith.

また、ストップパターンを除く各カラムは、バー及びスペースが4個ずつ存在し、各線幅は、モジュール(単位)と称される最小幅の整数倍になっている。また、1コードワードの線幅は17モジュールであり、各々のバー、スペースの最大単位は6となっている。なお、ストップパターンは、バーが5個、スペースが4個ずつ存在し、1コードワードの線幅は18モジュールとなっている。   Each column except the stop pattern has four bars and four spaces, and each line width is an integral multiple of the minimum width called a module (unit). The line width of one code word is 17 modules, and the maximum unit of each bar and space is 6. The stop pattern has five bars and four spaces, and the line width of one code word is 18 modules.

なお、図3に示すスタック型バーコード21では、1個のデータカラムであるが、これに限定されるものではなく、複数個のデータカラムであってもよい。   Note that the stack barcode 21 shown in FIG. 3 has one data column, but the present invention is not limited to this, and a plurality of data columns may be used.

以下、本発明の実施の形態1に係るスタック型バーコード読取方法について説明する。
(スタック型バーコード読取方法)
The stack bar code reading method according to the first embodiment of the present invention will be described below.
(Stacked barcode reading method)

図5は、この実施の形態1に係るスタック型バーコード読取方法の流れを示すフローチャートである。図5に基づき、この実施の形態1に係るスタック型バーコード読取方法の流れを概説する。   FIG. 5 is a flowchart showing the flow of the stack barcode reading method according to the first embodiment. Based on FIG. 5, the flow of the stack barcode reading method according to the first embodiment will be outlined.

まず、スタック型バーコード21の位置検出が行われる(ステップS31)。具体的には、図1に示すように、スタック型バーコード読取装置1のイメージスキャナ11aは、カード搬送機構11bに沿って所定位置まで移動した記録担体2のスタック型バーコード21を照射した光の反射光を光電変換によって電気信号に変換して画像データを得る。そして、得られたスタック型バーコード21の画像データは、画像メモリ12に記憶される。画像用メモリ12は2次元的に配列された有限個の画素で構成されている。
この実施の形態1では、撮像されたスタック型バーコード21の画像データは、各画素の(画素値である)輝度値を数値で表したものである。この輝度値は、例えば0から255までの整数値として表される。なお、この画像メモリ12は、RAM、SDRAM、DDRSDRAM、RDRAMなど、画像データを記憶しうるものであれば如何なるものであってもよい。
First, the position of the stack barcode 21 is detected (step S31). Specifically, as shown in FIG. 1, the image scanner 11a of the stack barcode reader 1 irradiates the stack barcode 21 of the record carrier 2 that has moved to a predetermined position along the card transport mechanism 11b. The reflected light is converted into an electrical signal by photoelectric conversion to obtain image data. Then, the obtained image data of the stack barcode 21 is stored in the image memory 12. The image memory 12 is composed of a finite number of pixels arranged two-dimensionally.
In the first embodiment, the captured image data of the stack barcode 21 represents the luminance value (which is a pixel value) of each pixel by a numerical value. This luminance value is expressed as an integer value from 0 to 255, for example. The image memory 12 may be any memory such as RAM, SDRAM, DDRSDRAM, and RDRAM as long as it can store image data.

その後、データ処理装置13の位置検出部13aは、画像メモリ12に記憶された画像データを読み込み、その画像データ中のスタック型バーコード21の位置を検出する。   Thereafter, the position detection unit 13a of the data processing device 13 reads the image data stored in the image memory 12, and detects the position of the stack barcode 21 in the image data.

このようにして位置検出されたスタック型バーコード21は、データ処理装置13において切り出され(ステップS32)、切り出された画像データが画像メモリ12に記憶される。   The stack barcode 21 whose position has been detected in this manner is cut out by the data processing device 13 (step S32), and the cut out image data is stored in the image memory 12.

次に、データ処理装置13において、スタック型バーコード21の傾き補正が行われる(ステップS33)。より具体的には、データ処理装置13の傾き補正部13bは、ステップS32において切り出された画像データ、すなわち、図4に示すように傾いた状態で撮像されたスタック型バーコード21の画像データを読み込み、その画像データを、図3に示すような傾斜角度ゼロの補正画像データに変換する。   Next, the data processor 13 corrects the inclination of the stack barcode 21 (step S33). More specifically, the inclination correction unit 13b of the data processing device 13 receives the image data cut out in step S32, that is, the image data of the stack barcode 21 captured in an inclined state as shown in FIG. The image data is read and converted into corrected image data with a tilt angle of zero as shown in FIG.

図4は、スタック型バーコード21のうち、スタートパターンにおけるビッグバーの部分およびその周辺を拡大した拡大図である。また、この図4は、撮像装置11のイメージスキャナ11aによって、スタック型バーコード21が傾いた状態で撮像された様子を示す図である。スタック型バーコード21を撮像装置11でスキャンしたときには、スタック型バーコード21のロウ方向が必ずしもカード搬送機構11bに対して垂直の関係に位置するとは限らない。イメージスキャナ11aによって読み取られた画像データは、例えば図4に示すように、傾く場合がある。換言すれば、ロウ方向と、画像メモリ12に格納された画像データの垂直方向が一致していない。このような場合に、座標変換に伴い、画素間での画像データの変換となるために発生する量子化誤差に起因するノイズによって、復号の信頼性が損なわれていた。そこで、この実施の形態1では、座標変換後の画像に対して、平滑化を目的とした補間処理や平均処理を行い、かかるノイズの影響を低減している。   FIG. 4 is an enlarged view of the stack bar code 21 in which the portion of the big bar in the start pattern and its periphery are enlarged. FIG. 4 is a diagram illustrating a state where the stack barcode 21 is imaged in an inclined state by the image scanner 11a of the imaging device 11. When the stack type barcode 21 is scanned by the imaging device 11, the row direction of the stack type barcode 21 is not necessarily positioned perpendicular to the card transport mechanism 11b. The image data read by the image scanner 11a may be tilted as shown in FIG. 4, for example. In other words, the row direction does not match the vertical direction of the image data stored in the image memory 12. In such a case, along with the coordinate conversion, the reliability of decoding has been impaired due to noise caused by the quantization error that occurs due to the conversion of image data between pixels. Therefore, in the first embodiment, interpolation processing and averaging processing for smoothing are performed on the image after coordinate conversion to reduce the influence of such noise.

次いで、データ処理装置13において、構造解析(カラム解析およびロウ解析)が行われる(ステップS34、S35)。より具体的には、データ処理装置13の構造解析部13cは、ステップS33において変換された補正画像データに基づき、スタック型バーコード21の構造を解析する。構造解析部13cにおいては、カラム解析(ステップS34)およびロウ解析(ステップS35)が行われる。   Next, structural analysis (column analysis and row analysis) is performed in the data processing device 13 (steps S34 and S35). More specifically, the structure analysis unit 13c of the data processing device 13 analyzes the structure of the stack barcode 21 based on the corrected image data converted in step S33. In the structure analysis unit 13c, column analysis (step S34) and row analysis (step S35) are performed.

最後に、データ処理装置13の復号部13dにおいて、復号の処理が行われる(ステップS36、S37)。より具体的には、データ処理装置13の復号部13dは、ステップS34、S35において解析されたスタック型バーコード21の構造に基づき、スタック型バーコード21の復号処理を行う。このとき、スタック型バーコード21の一種であるPDF417では、低レベル復号処理および高レベル復号処理の2つの復号処理が行なわれ、復号部13dの低レベル復号部13d1においては低レベル復号処理を行い(ステップS36)、高レベル復号部13d2においては高レベル復号処理を行う(ステップS37)。低レベル復号処理は、データカラムを構成するバーの線幅とスペースの線幅とからなるコードワードが0〜928の番号が付けられた、929個のコードで示される中間情報に一度変換される処理である。次に、高レベル復号処理は、929個のコードで示される中間情報に一度変換された後、所定ルールに基づいて最終言語にデコード(復号)されるようになっている。この最終言語としては、PDF417では、ASCII文字やバイナリ表現、その他のキャラクタ等がある。   Finally, decryption processing is performed in the decryption unit 13d of the data processing device 13 (steps S36 and S37). More specifically, the decoding unit 13d of the data processing device 13 performs the decoding process of the stack barcode 21 based on the structure of the stack barcode 21 analyzed in steps S34 and S35. At this time, two types of decoding processes, a low-level decoding process and a high-level decoding process, are performed in PDF417, which is a type of stack barcode 21, and a low-level decoding process is performed in the low-level decoding unit 13d1 of the decoding unit 13d. (Step S36), the high level decoding unit 13d2 performs a high level decoding process (Step S37). In the low-level decoding process, the code word composed of the line width of the bar and the line width of the space constituting the data column is once converted into intermediate information indicated by 929 codes with numbers 0 to 928. It is processing. Next, in the high-level decoding process, the information is once converted into intermediate information represented by 929 codes and then decoded (decoded) into the final language based on a predetermined rule. As the final language, PDF417 includes ASCII characters, binary expressions, and other characters.

以下、図5に示すフローチャートの各処理(ステップS31〜ステップS37)について、それぞれ詳述する。
(スタック型バーコード位置検出)
Hereafter, each process (step S31-step S37) of the flowchart shown in FIG. 5 is each explained in full detail.
(Stacked bar code position detection)

図6は、図5に示すフローチャートにおけるスタック型バーコード位置検出(ステップS31)の流れを示すフローチャートである。また、図4は、スタック型バーコード21のうち、スタートパターンにおけるビッグバーの部分およびその周辺を拡大した拡大図である。   FIG. 6 is a flowchart showing the flow of stack bar code position detection (step S31) in the flowchart shown in FIG. FIG. 4 is an enlarged view of the stack bar code 21 in which the portion of the big bar in the start pattern and its periphery are enlarged.

図6において、まず、変数i(iは整数)に0を代入して初期化され、所定の原点に復帰する(ステップS61)。具体的には、図4は画像メモリ12に格納された画像データの中で、スタック型バーコード21の一部を囲む領域で、左上を画素Sが所定の原点位置となっている。そこで、ステップS61により、水平方向(X方向)に1画素分の行を水平ラインHL(0)とし、最初の画素Sの画像データを読み込むようになっている。   In FIG. 6, first, a variable i (i is an integer) is initialized by substituting 0, and then returns to a predetermined origin (step S61). Specifically, FIG. 4 shows an area surrounding a part of the stack barcode 21 in the image data stored in the image memory 12, and the pixel S is a predetermined origin position in the upper left. Therefore, in step S61, the row of one pixel in the horizontal direction (X direction) is set as the horizontal line HL (0), and the image data of the first pixel S is read.

次いで、水平ラインHL(0)から垂直方向(Y方向)にi番目の画素の列について、Y=iにおける水平ラインHL(i)上で、X方向に画素ごとに画像データを読み込み、最初に画像が「明」から「暗」に変化する点(点P(i)とする。)を検索する。具体的には、各画素の画像データ、すなわち、各画素の輝度値が所定の閾値により高い「明」(白い部分)を示す画素(以下、「スペース」という)と、所定の閾値より低い「暗」(黒い部分)を示す画素(以下、「バー」という)とに分けて、最初にスペースからバーに変化した画素の位置を検出する。この変化した画素の位置がスペースとバーとの境界となる。   Next, for the i-th pixel column in the vertical direction (Y direction) from the horizontal line HL (0), image data is read for each pixel in the X direction on the horizontal line HL (i) at Y = i. A point where the image changes from “bright” to “dark” (referred to as point P (i)) is searched. Specifically, image data of each pixel, that is, a pixel (hereinafter referred to as a “space”) that indicates “bright” (white portion) whose luminance value is higher than a predetermined threshold, and “ It is divided into pixels (hereinafter referred to as “bars”) indicating “dark” (black portions), and the positions of the pixels that first changed from space to bar are detected. The changed pixel position becomes the boundary between the space and the bar.

また、同じ水平ラインHL(i)上で、引き続き、画像が最初に「暗」から「明」に変化する点(点Q(i)とする。)を検索する。具体的には、バー(「暗」を示す画素)からスペース(「明」を示す画素)に変化した画素の位置を検出する(ステップS62)。   Further, on the same horizontal line HL (i), a point where the image first changes from “dark” to “bright” (referred to as point Q (i)) is continuously searched. Specifically, the position of the pixel changed from a bar (a pixel indicating “dark”) to a space (a pixel indicating “bright”) is detected (step S62).

次に、i=r−1(r:図4におけるY方向の行数(画素数))が満たされたか否かが判断され(ステップS63)、満たされていないと判定された場合には、iを1、インクリメントして(ステップS64)、再びステップS62の処理が行われる。一方、図4に示す画素Sから検索が始まり、X方向に各画素の輝度値を検索し、最終行の最後の画素まで検索が終了した場合には、i=r−1が満たされたと判定する。このように、満たされたと判定された場合には、処理を次のステップS65に移す。なお、この段階で、r個の点の組(P(i),Q(i))(i=0,1,・・・,r−2,r−1)を得る。   Next, it is determined whether or not i = r−1 (r: the number of rows (number of pixels) in the Y direction in FIG. 4) is satisfied (step S63). If it is determined that i is not satisfied, i is incremented by 1 (step S64), and the process of step S62 is performed again. On the other hand, when the search starts from the pixel S shown in FIG. 4 and the luminance value of each pixel is searched in the X direction and the search is completed up to the last pixel of the last row, it is determined that i = r−1 is satisfied. To do. Thus, when it determines with satisfy | filling, a process is moved to following step S65. At this stage, a set of r points (P (i), Q (i)) (i = 0, 1,..., R−2, r−1) is obtained.

次いで、図4中の点Aと点Cの座標を求める(ステップS65)。より具体的には、点A、点Cに該当する画素の位置を検出する。X方向において、d(i)=|P(i)−Q(i)|を計算し、d(i)のうちの最小値min(d(i))を求める。このmin(d(i))が、PQ間の距離の最も短くなるビッグバーの点Aおよび点Cの2点に対応する(図4参照)。これにより、点Aおよび点CのY座標(該当する画素のY方向の位置)は、それぞれAy=max(i)およびCy=min(i)となる。また、点Aおよび点CのX座標(該当する画素のX方向の位置)は、それぞれのiに対する点PのX座標になるので、それぞれAx=P(i=Ay)のX座標およびCx=P(i=Cy)のX座標となる。   Next, the coordinates of point A and point C in FIG. 4 are obtained (step S65). More specifically, the positions of the pixels corresponding to the points A and C are detected. In the X direction, d (i) = | P (i) −Q (i) | is calculated, and the minimum value min (d (i)) of d (i) is obtained. This min (d (i)) corresponds to two points of the big bar point A and point C where the distance between the PQs is the shortest (see FIG. 4). Thereby, the Y coordinates (positions of the corresponding pixels in the Y direction) of the points A and C are Ay = max (i) and Cy = min (i), respectively. In addition, since the X coordinates of the points A and C (the positions of the corresponding pixels in the X direction) are the X coordinates of the point P with respect to each i, the X coordinates of Ax = P (i = Ay) and Cx = This is the X coordinate of P (i = Cy).

次に、図4中の点Bと点Dの座標を求める(ステップS66)。より具体的には、d(i)が一定となるiの範囲を特定する。そして、ビッグバーの点Bおよび点DのY座標は、その範囲におけるmin(i)およびmax(i)となる。また、点Bおよび点DのX座標は、それぞれのiに対する点Pおよび点QのX座標となるので、それぞれBx=P(i=By)のX座標およびDx=Q(i=Dy)のX座標となる。   Next, the coordinates of point B and point D in FIG. 4 are obtained (step S66). More specifically, the range of i in which d (i) is constant is specified. The Y coordinates of the big bar points B and D are min (i) and max (i) in the range. Further, since the X coordinates of the points B and D are the X coordinates of the points P and Q with respect to the respective i, the X coordinates of Bx = P (i = By) and Dx = Q (i = Dy) respectively. X coordinate.

このようにして、ステップS61〜ステップS66の処理を経て、ビッグバーの4隅、すなわち、点A、点B、点C、点Dの座標(該当する画素の位置)が確定したので、傾き角度は、atan((Ay−Dy)/(Ax−Dx))で計算することができる。   In this way, through the processing of step S61 to step S66, the four corners of the big bar, that is, the coordinates of the points A, B, C, and D (the positions of the corresponding pixels) are determined. Can be calculated by atan ((Ay−Dy) / (Ax−Dx)).

なお、傾き検出の精度を上げるため、図4において、XとYの役割を交換して同様の操作を行い、ビッグバーの4隅、すなわち、点A’、点B’、点C’、点D’の座標を求め、上記点A、B、C、Dの座標値との平均をとって最終的な座標値としてもよい。   In order to increase the accuracy of inclination detection, the same operation is performed by exchanging the roles of X and Y in FIG. 4, and the four corners of the big bar, that is, point A ′, point B ′, point C ′, point The coordinates of D ′ are obtained, and the average of the coordinates of the points A, B, C, D may be taken as the final coordinate value.

また、図6では、点Aおよび点Cの座標を求めるとともに(ステップS65)、点Bおよび点Dの座標も求めることとしたが(ステップS66)、本発明はこれに限定されず、例えば、点Aおよび点Cの座標のみを求めることで、傾き検出を行うようにしてもよい。
(スタック型バーコード切出し)
In FIG. 6, the coordinates of the points A and C are obtained (step S65), and the coordinates of the points B and D are also obtained (step S66). However, the present invention is not limited to this. The inclination may be detected by obtaining only the coordinates of the points A and C.
(Cutting stack barcode)

ステップS61〜ステップS66の処理を経て、ビッグバーの4隅の座標が確定すると、スタック型バーコード21の切出しを行う(ステップS32)。なお、スタック型バーコード21全体よりも少し大きな矩形状に切出しが行われる。
(スタック型バーコード傾き補正)
When the coordinates of the four corners of the big bar are determined through the processing of steps S61 to S66, the stack barcode 21 is cut out (step S32). Note that the cutting is performed in a rectangular shape that is slightly larger than the entire stack barcode 21.
(Stacked bar code tilt correction)

次に、スタック型バーコード21の傾き補正を行う(ステップS33)。   Next, the inclination correction of the stack barcode 21 is performed (step S33).

図3は、上述した角度(=atan((Ay−Dy)/(Ax−Dx)))で傾いたスタック型バーコード21の画像データを傾斜角度ゼロの補正画像データに変換したときの様子を示す図である。換言すれば、図3に示すスタック型バーコード21の画像データは、そのカラム方向およびロウ方向が図4に示す画像メモリ12領域の水平方向(X方向)および垂直方向(Y方向)に一致するように補正される。   FIG. 3 shows a state in which the image data of the stack barcode 21 tilted at the above-described angle (= atan ((Ay−Dy) / (Ax−Dx))) is converted into corrected image data having a tilt angle of zero. FIG. In other words, the image data of the stack barcode 21 shown in FIG. 3 has the column direction and the row direction corresponding to the horizontal direction (X direction) and the vertical direction (Y direction) of the image memory 12 area shown in FIG. It is corrected as follows.

図3において、傾斜角度ゼロの補正画像データへの変換は、スタック型バーコード21の傾斜角度を用いて行う。例えば、アフィン変換などの周知の方法によって行うことができるので、ここでの詳細な説明は省略する。   In FIG. 3, conversion to corrected image data with a tilt angle of zero is performed using the tilt angle of the stack barcode 21. For example, since it can be performed by a known method such as affine transformation, a detailed description thereof is omitted here.

そして、この実施の形態1に係るスタック型バーコード読取方法では、座標変換に伴う量子化誤差の影響を緩和するため、座標変換後の画像に対して、平滑化を目的として補間処理または平均化処理を行う。具体的には、各画素の輝度値は、図9(b)や図12に示すように、スペースを示す輝度値(例えば、100)、バーを示す輝度値(例えば、0)としている。なお、補正画像データは、例えば、メディアンフィルタ、エッジ保存フィルタ、適応ウィナーフィルタ、移動平均フィルタなど各種のフィルタにかけることによって平滑化されている。
(構造解析)
In the stacked barcode reading method according to the first embodiment, in order to alleviate the influence of the quantization error caused by the coordinate transformation, the interpolation processing or averaging is performed on the image after the coordinate transformation for the purpose of smoothing. Process. Specifically, as shown in FIG. 9B and FIG. 12, the luminance value of each pixel is set to a luminance value indicating a space (for example, 100) and a luminance value indicating a bar (for example, 0). The corrected image data is smoothed by applying various filters such as a median filter, an edge preserving filter, an adaptive winner filter, and a moving average filter.
(Structural analysis)

図7は、図5に示すフローチャートにおける構造解析(ステップS34、S35)の流れを示すフローチャートである。   FIG. 7 is a flowchart showing the flow of structural analysis (steps S34 and S35) in the flowchart shown in FIG.

図7において、まず、水平射影の処理が行われる(ステップS91)。具体的には、図3に示すスタック型バーコード21の補正画像データに基づいて、水平方向に配列された画素ごとに、各垂直方向に配列された全画素の輝度値の総和を演算し、画像メモリ12に格納する処理である。   In FIG. 7, first, horizontal projection processing is performed (step S91). Specifically, based on the corrected image data of the stack barcode 21 shown in FIG. 3, for each pixel arranged in the horizontal direction, the sum of the luminance values of all the pixels arranged in each vertical direction is calculated, This is a process of storing in the image memory 12.

その後、求めた輝度値の総和について、水平方向に隣接する画素間で差分をとり、その差分値を用いてスタートパターンおよびストップパターンの解析が行われる(ステップS92)。   Thereafter, with respect to the sum of the obtained luminance values, a difference is taken between pixels adjacent in the horizontal direction, and the start pattern and the stop pattern are analyzed using the difference value (step S92).

図3等に示すように、スタートパターンとストップパターンは、他のデータカラム、レフトロウインジケータ、ライトロウインジケータのコードワードと異なり、すべてのロウ(この実施の形態1では、6行)に共通不変のパターンであることから、水平射影をとることでスタートパターンまたはストップパターンが平均化され、輝度むらや汚れ等の影響を受けにくく、安定した検出が可能となる。   As shown in FIG. 3 and the like, the start pattern and stop pattern are invariant to all rows (6 rows in the first embodiment), unlike the code words of other data columns, left row indicators, and right row indicators. Therefore, by taking a horizontal projection, the start pattern or stop pattern is averaged, and it is difficult to be affected by uneven brightness and dirt, and stable detection is possible.

図8は、補正画像データ(図3参照)に所定の処理を施して得られた図である。より具体的には、図8(a)は、補正画像データ(図3参照)について、垂直方向における画素ごとに射影を計算したものであり、図3で言えば、スタック型バーコード21のロウ方向に、全画素の輝度値の総和を示す分布である。また、図8(b)は、図8(a)のグラフについて差分を計算したものである。具体的には、画像メモリ12に格納された画像データの水平方向において隣接する画素間で、求めた輝度値の総和の差分をとり、その差分値の分布を表したものである。これにより、水平ラインL(i)上で、バー(またはスペース)からスペース(またはバー)に変化した画素の位置を検出することができる。   FIG. 8 is a diagram obtained by performing predetermined processing on the corrected image data (see FIG. 3). More specifically, FIG. 8A shows the projection of the corrected image data (see FIG. 3) calculated for each pixel in the vertical direction. In FIG. It is a distribution indicating the sum of luminance values of all pixels in the direction. FIG. 8B shows the difference calculated for the graph of FIG. Specifically, the difference of the sum of the obtained luminance values is calculated between the pixels adjacent in the horizontal direction of the image data stored in the image memory 12, and the distribution of the difference values is represented. Thereby, the position of the pixel which changed from the bar (or space) to the space (or bar) on the horizontal line L (i) can be detected.

スタートパターンの検出は、図8(a)または図8(b)に示されるグラフを用いて、バーとスペースが変化する点の間隔(ランレングス)(以下、「線幅」という)を計測する。本実施の形態では、水平方向における画素数で計数(カウント)することによって行われる。例えば、スタートパターンの各バーの線幅、各スペースの線幅を計測すると、StartWork=[47,6,5,6,7,6,6,18]に示すような線幅配列が求められる。一方で、スタートパターンのバーとスペースの長さの比は、PDF417の規格より、StartMark=[8,1,1,1,1,1,1,3]に示すような線幅配列となっている。ここで、両者の類似性を調べる指標として、例えば、正規化相関Rを用いることができる。図8(b)について、正規化相関Rを考えると、R=corrcoef(StartWork,StartMark)=0.9993となり、Rは十分1に近い。したがって、この場合には、適切にスタートパターンが検出されたと判定される。なお、ストップパターンの正規化相関Rについての説明は、スタートパターンと同様であるので、ここでの説明は省略する。   The start pattern is detected by measuring the interval (run length) between the points where the bar and the space change (hereinafter referred to as “line width”) using the graph shown in FIG. 8A or FIG. 8B. . In the present embodiment, this is done by counting (counting) the number of pixels in the horizontal direction. For example, when the line width of each bar of the start pattern and the line width of each space are measured, a line width array as shown in StartWork = [47, 6, 5, 6, 7, 6, 6, 18] is obtained. On the other hand, the ratio between the length of the bar and the space of the start pattern is a line width array as shown in StartMark = [8, 1, 1, 1, 1, 1, 1, 3] according to the PDF417 standard. Yes. Here, for example, a normalized correlation R can be used as an index for examining the similarity between the two. Considering the normalized correlation R in FIG. 8B, R = corrcoef (StartWork, StartMark) = 0.993, and R is sufficiently close to 1. Therefore, in this case, it is determined that the start pattern is appropriately detected. Note that the description of the normalized correlation R of the stop pattern is the same as that of the start pattern, and thus the description thereof is omitted here.

なお、この実施の形態1では、類似性の尺度として、正規化相関Rを用いることとしたが、本発明はこれに限られず、例えば差分絶対値和、積和などを適宜用いてもよい。   In the first embodiment, the normalized correlation R is used as a measure of similarity. However, the present invention is not limited to this, and for example, a sum of absolute differences, a sum of products, or the like may be used as appropriate.

このようにして、スタート/ストップパターンが適切に検出されたか否かが判断された後(ステップS93)、スタート/ストップパターンが適切に検出されたと判定された場合には、処理をステップS95に移す。一方で、スタート/ストップパターンが適切に検出されていないと判定された場合には、デコード不可、すなわち、復号できないとして処理を終了する(ステップS94)。   Thus, after it is determined whether or not the start / stop pattern is properly detected (step S93), if it is determined that the start / stop pattern is properly detected, the process proceeds to step S95. . On the other hand, if it is determined that the start / stop pattern is not properly detected, the process is terminated because the decoding is impossible, that is, the decoding is impossible (step S94).

次いで、図8(b)のグラフに関して、ピーク検出が行われる(ステップS95)。より具体的には、図3に示すように、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータ、ストップパターンは、各カラムの境界では、すべてのロウにおいてスペースからバーへの遷移が行われるため、水平射影の差分値の分布上、この部分で大きな差分値が現れる(図8(b)の上向き矢印)。そして、図8(b)の上向き矢印で示した差分値(ピーク値)を求めるには、適当な閾値を用意して、その閾値を超えたか超えないかでピークの有無を判定することができる。ピークと判断された場合には、ピーク値をもつ画素の位置を画像メモリ12に記憶させる。   Next, peak detection is performed on the graph of FIG. 8B (step S95). More specifically, as shown in FIG. 3, in the start pattern, the left row indicator, the data column, the right row indicator, and the stop pattern, transition from space to bar is performed in all rows at the boundary of each column. Therefore, a large difference value appears in this portion on the distribution of difference values in horizontal projection (upward arrow in FIG. 8B). Then, in order to obtain the difference value (peak value) indicated by the upward arrow in FIG. 8B, an appropriate threshold value is prepared, and the presence or absence of a peak can be determined based on whether or not the threshold value is exceeded. . If the peak is determined, the pixel memory having the peak value is stored in the image memory 12.

次いで、カラムの境界の検出が行われる(ステップS96)。より具体的には、ステップS95において記憶されたピーク値をもつ画素の位置に基づき、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータストップパターンの5つのカラムの境界を検出する。また、隣接するピーク値をもつ画素の間隔はカラムの幅を表すものであり、同様に画像メモリ12に記憶しておく。ここで、ある特定のロウにおいてこの境界近傍に汚れがあった場合、各ロウの走査中に各カラムの境界を示す変化点を正しく検出できない場合があるが、この実施の形態1のように、水平射影を用いることで、この汚れの影響が平均化作用によって小さくなり、各カラムの境界の検出への悪影響を抑えることができる。   Next, column boundary detection is performed (step S96). More specifically, the boundaries of the five columns of the start pattern, the left row indicator, the data column, and the right row indicator stop pattern are detected based on the position of the pixel having the peak value stored in step S95. The interval between pixels having adjacent peak values represents the column width, and is stored in the image memory 12 in the same manner. Here, when there is a stain in the vicinity of this boundary in a specific row, there may be a case where the change point indicating the boundary of each column cannot be correctly detected during the scanning of each row, but as in the first embodiment, By using the horizontal projection, the influence of this dirt is reduced by the averaging operation, and the adverse effect on the detection of the boundary of each column can be suppressed.

次いで、ロウの境界の検出が行われる(ステップS97)。より具体的には、図9および図10を用いて説明する。図9は、平均化された補正画像データの水平方向において、各ラインLの輝度値を示す波形図である。図10は、スタック型バーコード21の各ロウの区切りを特定する様子を説明するための説明図である。なお、この実施の形態1では、1ラインLは、1行×n列の行列である。ここで、nは評価範囲の幅である。   Next, a row boundary is detected (step S97). More specifically, a description will be given with reference to FIGS. 9 and 10. FIG. 9 is a waveform diagram showing the luminance value of each line L in the horizontal direction of the averaged corrected image data. FIG. 10 is an explanatory diagram for explaining a state in which each row separator of the stack barcode 21 is specified. In the first embodiment, one line L is a matrix of 1 row × n columns. Here, n is the width of the evaluation range.

図9(a)において、ロウの境界の検出は、まず、補正画像データ上に、連続する複数のラインLからなる組を設定する。例えば、連続する3個のラインL(1)、L(2)およびL(3)(以下、「L1、L2およびL3と略す」)からなる組(ライン組S1)を設定する(図10参照)。なお、この実施の形態1では、連続する3個のラインLを設定しているが、3個に限定されるものではない。   In FIG. 9A, the detection of a row boundary is performed by first setting a set of a plurality of continuous lines L on the corrected image data. For example, a set (line set S1) composed of three continuous lines L (1), L (2) and L (3) (hereinafter, abbreviated as “L1, L2 and L3”) is set (see FIG. 10). ). In the first embodiment, three continuous lines L are set, but the number is not limited to three.

そして、これらの3本のラインLについて任意の2本を選び、それらの正規化相関を求めると、全部で3個(L1とL2、L1とL3、L2とL3)の相関値が得られる。これら3個の相関値のうちの最も小さい値が、予め決められた閾値r0よりも大きければ、L1、L2、L3の(ラインLの各画素の輝度値を示す)波形はお互いに相関していると判断し、このライン組S1に1が与えられる(図10参照)。これに対し、予め決められた閾値r0よりも小さければ、最も小さい値が得られた2つのラインLの波形は、少なくとも相関していないと判断し、このライン組S1に0が与えられる。   When two arbitrary lines are selected for these three lines L and their normalized correlations are obtained, a total of three correlation values (L1 and L2, L1 and L3, L2 and L3) are obtained. If the smallest value of these three correlation values is larger than a predetermined threshold value r0, the waveforms of L1, L2, and L3 (indicating the luminance value of each pixel in line L) are correlated with each other. 1 is given to this line set S1 (see FIG. 10). On the other hand, if it is smaller than the predetermined threshold value r0, it is determined that the waveforms of the two lines L from which the smallest value is obtained are at least uncorrelated, and 0 is given to this line set S1.

例えば、水平方向に形成されたラインL1、L2およびL3からなる組については、図9(b)に示すように、ラインL1、L2およびL3がすべて同じロウ1(最も上のロウ)に含まれていることから、3個の相関値のうちの最も小さい値は閾値r0よりも大きくなり、1が与えられることになる(図10において、ライン組S1の判定値は1となっている)。   For example, for a set of lines L1, L2 and L3 formed in the horizontal direction, as shown in FIG. 9B, the lines L1, L2 and L3 are all included in the same row 1 (the uppermost row). Therefore, the smallest value among the three correlation values is larger than the threshold value r0 and 1 is given (in FIG. 10, the determination value of the line set S1 is 1).

次に、補正画像データに対して、上述した組を相対的にロウ方向(垂直方向)に移動させて(例えばL2、L3およびL4からなるライン組S2を考えて)、相関値列を算出し、算出された相関値列の最小値が閾値r0よりも大きいか否かを判断することによって、そのライン組に0または1の判定値が与えられる。   Next, the above-mentioned set is moved relative to the corrected image data in the row direction (vertical direction) (for example, considering the line set S2 including L2, L3, and L4), and a correlation value sequence is calculated. By determining whether or not the calculated minimum value of the correlation value sequence is larger than the threshold value r0, a determination value of 0 or 1 is given to the line set.

以下同様に、ラインLn−2、Ln−1、Ln(ライン組Sn−2)まで上述した処理(判定値を与える処理)を繰り返し行うと、全部でn−2個の1と0とからなる系列が得られる(図10の右欄)。   Similarly, when the above-described processing (processing for giving a judgment value) is repeated up to lines Ln-2, Ln-1, and Ln (line set Sn-2), n-2 1s and 0s are formed in total. A series is obtained (right column in FIG. 10).

ここで、3個のラインLが同一のロウから選ばれている場合は、それら3個のラインLよりなるライン組は1に近い値となり、3個のラインLが隣接するロウをまたいで選ばれている場合は、それら3個のラインLよりなるライン組は比較的小さい値となる。より具体的には、図9(b)において、ラインL18より上のラインLはロウ1に属し、ラインL18より下のラインLはロウ2に属し、このラインL18は、ロウ1とロウ2の境界に位置するラインLとなっている。   Here, when three lines L are selected from the same row, the line set consisting of these three lines L has a value close to 1, and the three lines L are selected across adjacent rows. In this case, the line set including these three lines L has a relatively small value. More specifically, in FIG. 9B, the line L above the line L18 belongs to the row 1, the line L below the line L18 belongs to the row 2, and the line L18 includes the row 1 and the row 2 The line L is located at the boundary.

したがって、このラインL18を含むライン組S16〜S18では、判定値がほぼ0となり、それ以外のライン組では、判定値は1となる(図10参照)。判定値が0に近いライン組は、ロウの切り替わり位置を表しているので、判定値の系列を走査して、その判定値が0に近い場所を特定することにより、ロウの切り替わり位置を知ることができる。なお、この実施の形態1では、相関関数によってラインL相互の類似性を評価しているので、図9(a)に示すように、スタートパターンやストップパターンのような各ロウにおいて共通パターン(バーおよびスペースの線幅が同じ)を除いた範囲を評価範囲とすることで、無駄な演算(計算コスト)を省くことができる。   Therefore, in the line sets S16 to S18 including the line L18, the determination value is almost 0, and in the other line sets, the determination value is 1 (see FIG. 10). A line set whose judgment value is close to 0 represents a row switching position. By scanning a series of judgment values and identifying a place where the judgment value is close to 0, the row switching position is known. Can do. In the first embodiment, since the similarity between the lines L is evaluated by a correlation function, as shown in FIG. 9A, a common pattern (bar In addition, by making the range excluding the same line width of the space as the evaluation range, useless computation (calculation cost) can be omitted.

以上説明したように、ライン組の設定→相関値列の算出→相関値列の最小値と閾値との比較→0または1の判定値付与→判定値の系列の走査、という流れによって、ステップS97のロウの境界の検出が行われる。この実施の形態1では、ロウ1からロウ6の最終ラインLまで行なわれる。   As described above, step S97 is performed by the flow of setting a line group → calculating a correlation value sequence → comparing the minimum value of the correlation value sequence with a threshold value → giving a determination value of 0 or 1 → scanning a sequence of determination values. The row boundary is detected. In the first embodiment, the process is performed from row 1 to the last line L of row 6.

ロウの境界の検出によって、補正画像データの各ラインLがどのロウに属するかを判定し、デコード(復号)可能として処理を終了する(ステップS98)。   By detecting the boundary of the row, it is determined to which row each line L of the corrected image data belongs, and the processing is ended (decoding is possible) (step S98).

また、この実施の形態1では、ロウごとに、それに含まれる複数のラインLの各点の輝度値の平均を計算することによって、ラインLの局所ノイズを低減することができる。さらに、平均した画素の輝度値を用いて、そのロウの特性を代表するものとして、後述する復号処理に用いることができる。これにより、デコード(復号)精度を向上させることができる。
(低レベル復号)
In the first embodiment, the local noise of the line L can be reduced by calculating the average of the luminance values of the points of the plurality of lines L included in each row. Further, the average luminance value of the pixel is used as a representative of the characteristics of the row, and can be used for a decoding process described later. Thereby, decoding (decoding) accuracy can be improved.
(Low level decoding)

図11は、図5に示すフローチャートにおける低レベル復号(ステップS36)の流れを示すフローチャートである。   FIG. 11 is a flowchart showing the flow of low-level decoding (step S36) in the flowchart shown in FIG.

この低レベル復号は、図11に示すように、スタック型バーコード21の各ロウの走査反射特性について、カラム解析で決定されたカラムの境界を両端とするセグメント(すなわち、走査反射率波形)を取り出し、1つのカラムを構成するバーの線幅とスペースの線幅との配列によって形成されるXシーケンスと呼ばれる数値列を求めるXシーケンス計測と、Xシーケンスの隣接する2つのバー及びスペースを1つずつシフトさせながら足し合わせてTシーケンスと呼ばれる数値列を求めるTシーケンス計測と、予め用意しておいたコードワード変換テーブルを参照して各Tシーケンスに対応するコードワードを決定するコードワード変換とからなる。
(低レベル復号におけるXシーケンス計測)
In this low level decoding, as shown in FIG. 11, with respect to the scanning reflection characteristics of each row of the stack barcode 21, segments having the column boundaries determined by the column analysis at both ends (that is, scanning reflectance waveforms) are obtained. Take out an X sequence measurement to obtain a numerical sequence called an X sequence formed by the arrangement of the line width of the bars and the space width of one column, and two adjacent bars and spaces in the X sequence T sequence measurement for obtaining a numerical sequence called a T sequence by adding them while shifting, and code word conversion for determining a code word corresponding to each T sequence with reference to a code word conversion table prepared in advance Become.
(X sequence measurement in low-level decoding)

スタック型バーコード21の一種であるPDF417では、低レベル復号処理および高レベル復号処理の2つの復号処理が行なわれ、低レベル復号処理は、1つのカラムを構成するバーの線幅とスペースの線幅とからなるデータカラムを構成するバーの線幅とスペースの線幅とからなるコードワードが0〜928の番号が付けられた、929個のコードで示される中間情報に一度変換される処理である。次に、高レベル復号処理は、929個のコードで示される中間情報に一度変換された後、所定ルールに基づいて最終言語にデコード(復号)されるようになっている。この最終言語としては、PDF417では、ASCII文字やバイナリ表現、その他のキャラクタ等がある。   In PDF417, which is a kind of the stack barcode 21, two decoding processes, a low-level decoding process and a high-level decoding process, are performed. The code word consisting of the line width of the bar and the line width of the space constituting the data column consisting of the width is converted once into intermediate information indicated by 929 codes, numbered from 0 to 928. is there. Next, in the high-level decoding process, the information is once converted into intermediate information represented by 929 codes and then decoded (decoded) into the final language based on a predetermined rule. As the final language, PDF417 includes ASCII characters, binary expressions, and other characters.

図11において、まず、低レベル復号部13d1のXシーケンス計測部14は、Xシーケンス計測処理を行う(ステップS131)。一般的なXシーケンス計測処理においては、Xシーケンス計測部14の線幅計測手段14bは、各ロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形を走査して、バーの線幅およびスペースの線幅を求める線幅計測を行った後に、画素数によって表現されている線幅をモジュール数表現に変換して、Xシーケンスを得る。なお、走査線は、例えば、各ロウにおいて、ロウ方向のほぼ真中に形成された複数のラインLであり、すなわち、複数行で構成された画素の行例である。さらに、複数のラインLを構成する画素の輝度値の平均を計算し、平均した画素の輝度値を用いて、そのロウにおける画素の輝度値を示す走査反射率波形として復号処理に用いる。   In FIG. 11, first, the X sequence measurement unit 14 of the low level decoding unit 13d1 performs an X sequence measurement process (step S131). In a general X sequence measurement process, the line width measurement unit 14b of the X sequence measurement unit 14 scans a line waveform obtained by averaging a plurality of lines L included in a row in each row, thereby obtaining the line width of the bar. After the line width measurement for obtaining the line width of the space is performed, the line width expressed by the number of pixels is converted into the module number expression to obtain an X sequence. Note that the scanning line is, for example, a plurality of lines L formed in the middle of each row in each row, that is, a row example of pixels formed of a plurality of rows. Furthermore, the average of the luminance values of the pixels constituting the plurality of lines L is calculated, and the averaged luminance value of the pixels is used in the decoding process as a scanning reflectance waveform indicating the luminance value of the pixels in the row.

図12は、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形を走査して得られた、画素の輝度値を示す走査反射率波形の一部を示す波形図である。なお、バーの線幅およびスペースの線幅は、画素の輝度値を示す走査反射率波形の変化点と変化点の間の画素数をカウントしたものである。ここで、変化点は、画素の輝度値を示す走査反射率波形上で、図示しない所定の閾値と交差する点を示している。スタック型バーコード21の符合体系の一種であるPDF417において、図3等に示すように、スタートパターン、レフトロウインジケータ、データカラム、ライトロウインジケータ、ストップパターンの5つのカラムから構成されている。さらに、ストップパターンを除く各カラムは、4個のバーと4個のスペースで構成されるため、画素の輝度値を示す走査反射率波形に損傷がない場合には、合計8個の線幅が得られる。   FIG. 12 is a waveform diagram showing a part of a scanning reflectance waveform indicating a luminance value of a pixel obtained by scanning a line waveform obtained by averaging a plurality of lines L included in a row in a certain row. The line width of the bar and the line width of the space are obtained by counting the number of pixels between the changing points of the scanning reflectance waveform indicating the luminance value of the pixels. Here, the change point indicates a point that intersects a predetermined threshold (not shown) on the scanning reflectance waveform indicating the luminance value of the pixel. As shown in FIG. 3 and the like, the PDF 417, which is a kind of code system of the stack barcode 21, is composed of five columns: a start pattern, a left row indicator, a data column, a right row indicator, and a stop pattern. Further, since each column except the stop pattern is composed of four bars and four spaces, if there is no damage to the scanning reflectance waveform indicating the luminance value of the pixel, a total of eight line widths are obtained. can get.

一方で、画素の輝度値を示す走査反射率波形に異常がある場合には、合計8個以上(9個)の線幅が得られる。かかる場合には、カラムに損傷があることが分かり、このカラムの信頼性が低いことを示すフラグをセットする。かかる操作をあるロウに含まれるカラムすべてについて実行したら、次のロウにおいても同様の処理を実行する。すべてのロウについて、線幅が得られたら、ステップS131(図11参照)のXシーケンス計測処理を終了する。
(低レベル復号におけるTシーケンス計測)
On the other hand, when there is an abnormality in the scanning reflectance waveform indicating the luminance value of the pixel, a total of 8 or more (9) line widths are obtained. In such a case, it is found that the column is damaged, and a flag indicating that the reliability of this column is low is set. When this operation is executed for all the columns included in a certain row, the same processing is executed for the next row. When the line widths are obtained for all the rows, the X sequence measurement process in step S131 (see FIG. 11) is terminated.
(T-sequence measurement in low-level decoding)

次に、低レベル復号部13d1のTシーケンス計測部15は、Tシーケンス計測処理を行う(ステップS132)。   Next, the T sequence measurement unit 15 of the low level decoding unit 13d1 performs T sequence measurement processing (step S132).

具体的には、Tシーケンス計測部15のシーケンス変換手段15aは、XシーケンスをTシーケンスに変換する。これは、隣接する2個のXiとXi+1を加算したものであり、図12に示す左側のカラム(データカラム)のXシーケンスをTシーケンスに変換すると、[6(5+1),2(1+1),2(1+1),2(1+1),2(1+1),6(1+5),7(5+2)]に示すような線幅配列となる。   Specifically, the sequence conversion means 15a of the T sequence measurement unit 15 converts the X sequence into a T sequence. This is a sum of two adjacent Xi and Xi + 1. When the X sequence of the left column (data column) shown in FIG. 12 is converted into a T sequence, [6 (5 + 1), 2 (1 + 1), 2 (1 + 1), 2 (1 + 1), 2 (1 + 1), 6 (1 + 5), 7 (5 + 2)].

次いで、Tシーケンス計測部15の線幅正規化手段15bは、線幅正規化処理を行う。この線幅正規化処理は、計測されたバーの線幅とスペースの線幅とを表す画素数によって表現されている線幅をモジュール数表現に変換する処理をいう。1モジュールは、バーまたはスペースの最小幅に対応する。具体的には、スタック型バーコード21の一種である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シーケンスとなる。例えば、図12に示す左側のカラム(データカラム)のXシーケンスは、[5,1,1,1,1,1,5,2](これらの総和は17、すなわち、上記した17モジュールを示す)に示すような線幅配列である。   Next, the line width normalization unit 15b of the T sequence measurement unit 15 performs line width normalization processing. This line width normalization process refers to a process of converting the line width expressed by the number of pixels representing the measured line width of the bar and the line width of the space into the module number expression. One module corresponds to the minimum width of the bar or space. Specifically, in PDF417, which is a kind of stack barcode 21, one column including a data column is composed of 17 modules. If the line width in one column is W1, W2, W3, W4, W5, W6, W7, W8, and Wc = W1 + W2 + W3 + W4 + W5 + W6 + W7 + W8, the normalized line width is Xi = Wi * 17 / Wc (i = 1, 2 ,..., 7, 8). For example, the X sequence of the left column (data column) shown in FIG. 12 is [5,1,1,1,1,1,5,2] (the sum of these is 17, that is, the 17 modules described above) The line width array as shown in FIG.

次に、Tシーケンス計測部15の判定手段15cは、線幅正規化されたTシーケンスより計算したクラスタ番号が理論値に一致するか否かを判定する。
(低レベル復号におけるコードワード変換)
Next, the determination means 15c of the T sequence measurement unit 15 determines whether or not the cluster number calculated from the line width normalized T sequence matches the theoretical value.
(Code word conversion in low-level decoding)

最後に、低レベル復号部13d1のコードワード変換部16は、コードワード変換を行う(ステップS133)。より具体的には、コードワード変換テーブルが格納されているテーブルメモリ16aから読み出し、このテーブルメモリ16aを参照することにより、ステップS132において求められたTシーケンスに対応するコードワードを取得する。すなわち、低レベル復号処理が行なわれ、1つのカラムを構成する4個のバーの線幅と4個のスペースの線幅でなるコードワードが0〜928の番号が付けられた、929個のコードで示される中間情報に一度変換される。   Finally, the codeword conversion unit 16 of the low level decoding unit 13d1 performs codeword conversion (step S133). More specifically, the code word corresponding to the T sequence obtained in step S132 is obtained by reading from the table memory 16a storing the code word conversion table and referring to the table memory 16a. That is, 929 codes in which low-level decoding processing is performed and code words each having a line width of four bars and a line width of four spaces constituting one column are numbered from 0 to 928. Once converted to the intermediate information indicated by.

ここで、この実施の形態1においては、Xシーケンス計測処理(ステップS131)において、閾値方式および2次微分方式から得られる複数のXシーケンスから最適なものを選択できるようにしている。
(閾値方式について)
Here, in the first embodiment, in the X sequence measurement process (step S131), an optimum one can be selected from a plurality of X sequences obtained from the threshold method and the second derivative method.
(About the threshold method)

図14は、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形を走査して得られた、各画素の輝度値を示す走査反射率波形の一部を取り出した図であり、スタック型バーコード21のあるロウとあるカラムに対応している。各画素の輝度値が第1の(固定)閾値AVより高い値か低い値かでバーかスペースかを判定し、具体的には、あるカラムの始点XSから終点XEまでの間に、バーとスペースの合計個数が8個になればXシーケンスは有効である。図14の例では、第1の(固定)閾値AVに基づいてXシーケンス(バーの線幅とスペースの線幅)を計測し、Xシーケンス[12,6,3,18,3,4,12,11]に示すような線幅配列が得られた。ここで、第1の(固定)閾値AVは、あるロウにおけるあるカラムにおいて、平均化したライン波形を走査して得られたバーおよびスペースの線幅からなる全画像データの平均値である。具体的には、図14に示すロウとカラムにおいて、計測された全画素の輝度値を加算し、その加算値を全画素数で除算した値、すなわち、1画素あたりの平均輝度値を(固定)閾値AVとしている。そのため、第1の(固定)閾値AVは、図14に示すように、一定の値となっている。このように、第1の(固定)閾値AVは、一度の処理で求めることができるので、処理時間を短縮することが可能となる。
(n次微分方式について)
FIG. 14 is a diagram in which a part of a scanning reflectance waveform indicating the luminance value of each pixel obtained by scanning a line waveform obtained by averaging a plurality of lines L included in a row in a certain row is extracted. This corresponds to a row and a column with a stack barcode 21. Whether a bar or a space is determined based on whether the luminance value of each pixel is higher or lower than a first (fixed) threshold AV, specifically, between a start point XS and an end point XE of a certain column, The X sequence is valid if the total number of spaces is eight. In the example of FIG. 14, the X sequence (bar line width and space line width) is measured based on the first (fixed) threshold AV, and the X sequence [12, 6, 3, 18, 3, 4, 12 is measured. , 11] was obtained. Here, the first (fixed) threshold value AV is an average value of all image data including the line widths of bars and spaces obtained by scanning an averaged line waveform in a certain column in a certain row. Specifically, in the row and the column shown in FIG. 14, the luminance values of all the measured pixels are added, and the value obtained by dividing the added value by the total number of pixels, that is, the average luminance value per pixel (fixed). ) The threshold value AV is set. Therefore, the first (fixed) threshold value AV is a constant value as shown in FIG. Thus, since the first (fixed) threshold value AV can be obtained by a single process, the processing time can be shortened.
(About nth-order differentiation method)

図15は、n次微分方式を説明するための図である。図15(a)は、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形を走査して得られた、各画素の輝度値を示す走査反射波形の一部を取り出した図である。図15(b)は、(a)に示す走査反射波形を1次微分した輝度値の差分を示す波形図であり、図15(c)は、(b)の波形をさらに微分(2次微分)した輝度値の差分を示す波形図である。   FIG. 15 is a diagram for explaining the nth-order differentiation method. FIG. 15A is a diagram in which a part of a scanning reflection waveform indicating a luminance value of each pixel obtained by scanning a line waveform obtained by averaging a plurality of lines L included in a row in a certain row is extracted. It is. FIG. 15B is a waveform diagram showing a difference in luminance value obtained by first-order differentiation of the scanning reflection waveform shown in FIG. 15A. FIG. 15C is a diagram showing further differentiation (second-order differentiation) of the waveform in FIG. It is a wave form diagram which shows the difference of the brightness value which carried out.

2次微分方式とは、各画素の輝度値を示す走査反射率波形を2次微分して2次微分値を求め、この2次微分値のゼロクロス点(つまり、元の波形の変曲点)をバーとスペースとの境界とする方式である。この2次微分方式は、閾値方式のように、分解能の影響を受けやすい波形のピークを検出する方法に比べて、波形の変化点を求めることでバーとスペースとの境界を求めるようにしているので、処理が簡単になるという利点がある。なお、図15(a)に示す走査反射率波形の分解能が、図14に示す走査反射率波形の分解能に比べて低い場合となっている。
(Xシーケンス計測処理について)
The second-order differential method is to secondarily differentiate the scanning reflectance waveform indicating the luminance value of each pixel to obtain a second-order derivative value, and the zero-cross point of this second-order derivative value (that is, the inflection point of the original waveform). Is a boundary between a bar and a space. Compared with the method of detecting the peak of a waveform that is easily affected by the resolution, such as the threshold method, this secondary differentiation method obtains the boundary between the bar and the space by obtaining the waveform change point. Therefore, there is an advantage that the processing becomes simple. Note that the resolution of the scanning reflectance waveform shown in FIG. 15A is lower than the resolution of the scanning reflectance waveform shown in FIG.
(About X sequence measurement processing)

図13は、Xシーケンス計測処理(ステップS131)の流れを示すフローチャートである。このXシーケンス計測処理においては、上述したように、あるロウにおいて、ロウに含まれる複数のラインLを平均化したライン波形を走査して、計測された各画素の輝度値が、所定の閾値Thより高い値であれば、スペースと判定するとともに、各画素の輝度値が、閾値Thより低い値であれば、バーと判定することにより、バーかスペースかの判定を行う。さらに、このような判定に基づいて、バーの線幅と、スペースの線幅とを計測し、線幅を作成する。スタック型バーコード21におけるデータカラムは4個のバーと4個のスペースと、バー及びスペースの合計個数は8個であるから、走査反射率波形と固定閾値AVとの隣接する交点間で形成される線幅の合計個数が8個になるまで処理を繰り返し、閾値Thを変動させていく。   FIG. 13 is a flowchart showing the flow of the X sequence measurement process (step S131). In this X sequence measurement process, as described above, in a certain row, a line waveform obtained by averaging a plurality of lines L included in the row is scanned, and the measured luminance value of each pixel is set to a predetermined threshold Th. If the value is higher, it is determined as a space, and if the luminance value of each pixel is lower than the threshold Th, it is determined as a bar by determining as a bar. Furthermore, based on such determination, the line width of the bar and the line width of the space are measured, and the line width is created. Since the data column in the stacked barcode 21 has four bars, four spaces, and the total number of bars and spaces is 8, it is formed between adjacent intersections of the scanning reflectance waveform and the fixed threshold AV. The process is repeated until the total number of line widths reaches 8, and the threshold value Th is varied.

この実施の形態1では、図13に示すように、まず、固定閾値算出手段14a1が、(固定)閾値方式によってXシーケンスを求める(ステップS151〜ステップS158)。   In the first embodiment, as shown in FIG. 13, first, the fixed threshold value calculation means 14a1 obtains an X sequence by the (fixed) threshold value method (steps S151 to S158).

すなわち、I=1のときに、閾値Thとして第1の固定閾値AVを設定する(ステップS151)。なお、固定閾値AVの説明は後述する。   That is, when I = 1, the first fixed threshold value AV is set as the threshold value Th (step S151). The fixed threshold AV will be described later.

次いで、第1の(固定)閾値Th=AVのときのXシーケンスを計測し(ステップS152)、そのときのバー及びスペースの合計個数が8個か否かを判断する(ステップS153)。ステップS153において、合計個数が8個と判断した場合は、Xシーケンス計測は成功したものとして、このときのXシーケンスを有効化し(ステップS154)、これをXシーケンス1として保存する(ステップS158)。一方、ステップS153において、合計個数が8個でないと判断した場合は、規定回数I(Iは2以上の整数)の処理を繰り返したか否か、例えば、I=3に到達したか否かを判断する(ステップS155)。   Next, the X sequence when the first (fixed) threshold Th = AV is measured (step S152), and it is determined whether or not the total number of bars and spaces at that time is eight (step S153). If it is determined in step S153 that the total number is 8, the X sequence measurement is assumed to be successful, the X sequence at this time is validated (step S154), and this is stored as the X sequence 1 (step S158). On the other hand, if it is determined in step S153 that the total number is not eight, it is determined whether or not the process of the specified number of times I (I is an integer of 2 or more) has been repeated, for example, whether I = 3 has been reached (Step S155).

ステップS155においてI=3でないと判断した場合は、規定回数Iに1をインクリメントし、この実施の形態1では、第1の(固定)閾値ThからAV/4を減じた第2の(固定)閾値Thを設定して(ステップS156)、ステップS152およびステップS153の処理を繰り返す。なお、図14において、符号L1は第n−1の(固定)閾値ThからAV/4を引いた第nの(固定)閾値Thを示している。また、AV/4は経験則から決めた値であり、これに限定されるものではない。   If it is determined in step S155 that I = 3 is not satisfied, the specified number of times I is incremented by 1, and in the first embodiment, the second (fixed) obtained by subtracting AV / 4 from the first (fixed) threshold Th. A threshold value Th is set (step S156), and the processes of steps S152 and S153 are repeated. In FIG. 14, the symbol L <b> 1 indicates the nth (fixed) threshold Th obtained by subtracting AV / 4 from the (n−1) th (fixed) threshold Th. AV / 4 is a value determined from an empirical rule, and is not limited to this.

新たに求めた第2の(固定)閾値Thに基づいて、Xシーケンスを再度計測し(ステップS152)、合計個数が8個と判断されればXシーケンスは有効とし(ステップS154)、合計個数が8個と判断されなければ、規定回数I=3でないので(ステップS155)、Iに1をインクリメントし、第2の(固定)閾値Thから、さらにAV/4を減じた新たな第3の(固定)閾値Thを設定して(ステップS156)、第3の(固定)閾値Thに基づいてXシーケンスの再度計測を行う(ステップS152)。この実施の形態1では、規定回数I=3の処理を繰り返しても合計個数が8個と判断されなければ、Xシーケンスは無効とし(ステップS157)、これをXシーケンス1として保存する(ステップS158)。   Based on the newly obtained second (fixed) threshold Th, the X sequence is measured again (step S152). If the total number is determined to be 8, the X sequence is validated (step S154), and the total number is If it is not determined that the number is 8, the specified number of times I is not 3 (step S155), so that I is incremented by 1 and a new third (subtracting AV / 4 from the second (fixed) threshold Th is obtained. The (fixed) threshold value Th is set (step S156), and the X sequence is measured again based on the third (fixed) threshold value Th (step S152). In the first embodiment, if the total number is not determined to be 8 even after the process of the specified number of times I = 3 is repeated, the X sequence is invalidated (step S157) and stored as the X sequence 1 (step S158). ).

こうして(固定)閾値方式によるXシーケンス計測処理が終わったところで、今度は、n次微分算出手段14a3が、2次微分方式によってXシーケンスを求める(ステップS159〜ステップS166)。   When the X sequence measurement processing by the (fixed) threshold method is completed in this way, the n-th order differential calculation means 14a3 obtains the X sequence by the second order differential method (steps S159 to S166).

すなわち、I=1のときに、ゼロクロス点SLを設定する(ステップS159)。   That is, when I = 1, the zero cross point SL is set (step S159).

次いで、このときのXシーケンスを計測し(ステップS160)、そのときの合計個数が8個か否かを判断する(ステップS161)。ステップS161において、合計個数が8個と判断した場合は、Xシーケンス計測は成功したものとして、このときのXシーケンスを有効化し(ステップS162)、これをXシーケンス2として保存する(ステップS166)。一方、ステップS161において、合計個数が8個でないと判断した場合は、規定回数I(Iは2以上の整数)の処理を繰り返したか否か、例えば、I=3に到達したか否かを判断する(ステップS163)。   Next, the X sequence at this time is measured (step S160), and it is determined whether or not the total number at that time is eight (step S161). If it is determined in step S161 that the total number is 8, the X sequence measurement is considered successful, the X sequence at this time is validated (step S162), and this is stored as the X sequence 2 (step S166). On the other hand, if it is determined in step S161 that the total number is not 8, it is determined whether or not the process of the specified number of times I (I is an integer of 2 or more) has been repeated, for example, whether or not I = 3 has been reached. (Step S163).

ステップS163においてI=3でないと判断した場合は、規定回数Iに1をインクリメントするとともに、ゼロクロス点SLに1をインクリメントして(ステップS164)、ステップS160およびステップS161の処理を繰り返す。   If it is determined in step S163 that I = 3, 1 is incremented to the specified number of times I, 1 is incremented to the zero cross point SL (step S164), and the processes of steps S160 and S161 are repeated.

新たに求めたゼロクロス点SLに基づいて、Xシーケンスを再度計測し(ステップS160)、合計個数が8個と判断されればXシーケンスは有効とし(ステップS162)、合計個数が8個と判断されなければ、規定回数I=3でないので(ステップS163)、Iに1をインクリメントするとともに、ゼロクロス点(を示すライン)SLに1をインクリメントして(ステップS164)第2のゼロクロス(を示すライン)SL2を算出し、この第2のゼロクロス点(を示すライン)SL2に基づいてXシーケンスの再度計測を行う(ステップS160)。この実施の形態1では、規定回数I=3の処理を繰り返しても合計個数が8個と判断されなければ、Xシーケンスは無効とし(ステップS165)、これをXシーケンス2として保存する(ステップS166)。なお、インクリメントする数は、1としているがこれに限定されるものではない。   Based on the newly obtained zero cross point SL, the X sequence is measured again (step S160). If the total number is determined to be 8, the X sequence is validated (step S162), and the total number is determined to be 8. If not, the specified number of times I is not 3 (step S163), and 1 is incremented to I and 1 is incremented to the zero-cross point (showing line) SL (step S164) second zero-cross (showing line) SL2 is calculated, and the X sequence is measured again based on the second zero-cross point (a line indicating) SL2 (step S160). In the first embodiment, if the total number is not determined to be 8 even if the processing of the specified number of times I = 3 is repeated, the X sequence is invalidated (step S165) and stored as the X sequence 2 (step S166). ). The increment number is 1, but is not limited to this.

図16は、この実施の形態1におけるTシーケンス計測処理(ステップS132)の流れを示すフローチャートである。このTシーケンス計測処理においては、Tシーケンス計測部15のシーケンス変換手段15aが、Xシーケンス1(固定閾値方式から得られたXシーケンス)およびXシーケンス2(2次微分方式から得られたXシーケンス)をそれぞれTシーケンスに変換し、Tシーケンス計測部15の線幅正規化手段15bが、これらのTシーケンスの線幅を正規化し、Tシーケンス計測部15の判定手段15cが、それぞれのTシーケンスより計算したクラスタ番号とクラスタの理論値とを比較する。そして、両者が等しければ、そのTシーケンスを有効とし、両者が等しくなければ、そのTシーケンスを無効とする。   FIG. 16 is a flowchart showing the flow of the T sequence measurement process (step S132) in the first embodiment. In this T-sequence measurement process, the sequence conversion means 15a of the T-sequence measurement unit 15 performs X sequence 1 (X sequence obtained from the fixed threshold method) and X sequence 2 (X sequence obtained from the second derivative method). Are converted into T sequences, the line width normalizing means 15b of the T sequence measuring section 15 normalizes the line widths of these T sequences, and the determining means 15c of the T sequence measuring section 15 calculates from the respective T sequences. The obtained cluster number is compared with the theoretical value of the cluster. If they are equal, the T sequence is validated, and if they are not equal, the T sequence is invalidated.

ここで、クラスタ番号とは、図3に示すスタック型バーコード21において、誤り発生の確率を最小にするために用意されているもので、スタートパターンおよびストップパターン以外のすべてのコードワードに存在している。具体的には、PDF417の規格により、クラスタ番号は3行目ごとに順次繰り返し現れ、ロウ1にはクラスタ番号「0」、ロウ2にはクラスタ番号「3」、ロウ3にはクラスタ番号「6」が使われている。換言すれば、このクラスタ番号「0」、「3」、「6」は、クラスタ番号の理論値となっている。   Here, the cluster number is prepared to minimize the probability of error occurrence in the stack barcode 21 shown in FIG. 3, and is present in all code words other than the start pattern and stop pattern. ing. Specifically, according to the PDF417 standard, the cluster number repeatedly appears every third row, the cluster number “0” in row 1, the cluster number “3” in row 2, and the cluster number “6” in row 3. Is used. In other words, the cluster numbers “0”, “3”, and “6” are the theoretical values of the cluster numbers.

次に、具体的な数値で説明する。   Next, specific numerical values will be described.

まず、2次微分方式によって得たXシーケンス2を取り出し(ステップS171)、Tシーケンスに変換する(ステップS172)。これは、X=[Xi,Xi+1,Xi+2,・・・]において、隣接する2個のXiとXi+1を加算したものであり、2次微分方式によって得たXシーケンス2、例えば、図15(c)に示す走査反射率波形より、X=[12,5,5,16,4,4,12,10]を計測し、このXをTシーケンスに変換すると、T=[17,10,21,20,8,16,22]に示すような線幅配列となる。   First, the X sequence 2 obtained by the secondary differentiation method is taken out (step S171) and converted into a T sequence (step S172). This is obtained by adding two adjacent Xi and Xi + 1 in X = [Xi, Xi + 1, Xi + 2,...], And is an X sequence 2 obtained by the second-order differential method, for example, FIG. ), X = [12,5,5,16,4,4,12,10] is measured, and when this X is converted into a T sequence, 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となる。   Next, a cluster number is calculated from the T sequence (step S173). In the calculation of clusters, first, the T sequence is normalized by TN (i) = T (i) * 17 / Wc (i = 0, 1,..., 7). In the above example, the line width array is as shown in TN = [4, 3, 5, 5, 2, 4]. Next, the cluster number K = (TN (0) −TN (1) + TN (4) −TN (5) +9) mod 9 (where “mod 9” means the remainder after dividing by 9). The cluster number K is calculated by the following formula. In the above example, K = (4−3 + 2−4 + 9) mod 9 = 8.

次いで、ステップS173において計算されたクラスタ番号は処理中のロウに対応するクラスタ番号の理論値に等しいか否かを判断する(ステップS174)。処理中のロウがスタック型バーコード21の第1行目であるとすると、クラスタの理論値は「0」である。したがって、クラスタ番号「8」は、クラスタ番号の理論値「0」と一致しないため、Tシーケンスを無効として処理をステップS176に進める。一方、クラスタ番号が理論値と一致していれば、Tシーケンスを有効とする(ステップS175)。   Next, it is determined whether or not the cluster number calculated in step S173 is equal to the theoretical value of the cluster number corresponding to the row being processed (step S174). If the row being processed is the first row of the stack barcode 21, the theoretical value of the cluster is “0”. Accordingly, since the cluster number “8” does not match the theoretical value “0” of the cluster number, the T sequence is invalidated and the process proceeds to step S176. On the other hand, if the cluster number matches the theoretical value, the T sequence is validated (step S175).

ステップS174においてクラスタ番号が理論値と一致しないときは、固定閾値方式によって得たXシーケンス1を取り出し(ステップS176)、Tシーケンスに変換する(ステップS177)。(固定)閾値方式によって得たXシーケンス1、例えば、図14に示す走査反射率波形より、X=[12,6,3,18,3,4,12,11]を計測し、そのXを、Tシーケンスに変換すると、T=[18,9,21,21,7,16,23]となる。   If the cluster number does not match the theoretical value in step S174, the X sequence 1 obtained by the fixed threshold method is extracted (step S176) and converted into a T sequence (step S177). X sequence 1 obtained by the (fixed) threshold method, for example, X = [12, 6, 3, 18, 3, 4, 12, 11] is measured from the scanning reflectance waveform shown in FIG. , 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となる。   Next, a cluster number is calculated from the T sequence (step S178). In the above example, it is normalized as TN = [4, 2, 5, 5, 2, 4], and K = (4-2 + 2-4 + 9) mod 9 = 0.

次いで、ステップS173において計算されたクラスタは処理中のロウに対応するクラスタの理論値に等しいか否かを判断する(ステップS179)。上の例では、クラスタ番号「0」とクラスタ番号の理論値「0」が一致しているため、Tシーケンスを有効とする(ステップS175)。一方、クラスタ番号と理論値が一致していない場合は、Tシーケンスを無効とする(ステップS180)。   Next, it is determined whether or not the cluster calculated in step S173 is equal to the theoretical value of the cluster corresponding to the row being processed (step S179). In the above example, since the cluster number “0” matches the theoretical value “0” of the cluster number, the T sequence is validated (step S175). On the other hand, if the cluster number does not match the theoretical value, the T sequence is invalidated (step S180).

このように、この実施の形態1においては、固定閾値方式および2次微分方式の2種類の低レベル復号方式を備え、撮像光学系の分解能の高低に応じて、これらを使い分けることにより、たとえスタック型バーコード21の走査反射率波形が変動しても、最適なXシーケンス(Xシーケンス1またはXシーケンス2)を得ることができる。   As described above, in the first embodiment, two types of low-level decoding schemes, ie, the fixed threshold scheme and the second-order differential scheme, are provided, and by using them properly according to the level of the resolution of the imaging optical system, stacking is possible. Even if the scanning reflectance waveform of the mold barcode 21 fluctuates, an optimum X sequence (X sequence 1 or X sequence 2) can be obtained.

最適なXシーケンスが得られると、低レベル復号処理が行なわれ、コードワード変換処理(ステップS133)が行われる。具体的には、有効とされたTシーケンスに対応するコードワードを所定の変換テーブルから取得する。すなわち、低レベル復号処理が行なわれ、1つのカラムを構成する4個のバーの線幅と4個のスペースの線幅でなるコードワードは0〜928の番号が付けられた、929個のコードで示される中間情報に一度変換される。
(高レベル復号)
When the optimum X sequence is obtained, low-level decoding processing is performed, and codeword conversion processing (step S133) is performed. Specifically, a code word corresponding to the validated T sequence is acquired from a predetermined conversion table. That is, a low-level decoding process is performed, and a code word consisting of the line width of four bars and the line width of four spaces constituting one column is assigned 929 codes numbered from 0 to 928. Once converted to the intermediate information indicated by.
(High-level decoding)

コードワード変換が完了すると、一般的な高レベル復号が行われ(ステップS37)、復号処理が完了する。また、復号処理が完了したデータについては、スタック型バーコード情報などとともに上位制御装置に出力されることになる。具体的には、高レベル復号処理は、0〜928の番号が付けられた、929個のコードで示される中間情報に一度変換された後、所定ルールに基づいて最終言語にデコード(復号)されるようになっている。この最終言語としては、PDF417では、ASCII文字やバイナリ表現、その他のキャラクタ等がある。
(実施の形態の主な効果)
When the codeword conversion is completed, general high-level decoding is performed (step S37), and the decoding process is completed. Further, the data for which the decoding process has been completed is output to the upper control apparatus together with the stack barcode information and the like. Specifically, the high-level decoding process is once converted into intermediate information indicated by 929 codes numbered from 0 to 928, and then decoded (decoded) into the final language based on a predetermined rule. It has become so. As the final language, PDF417 includes ASCII characters, binary expressions, and other characters.
(Main effects of the embodiment)

以上説明したように、この実施の形態においては、スタック型バーコード21の走査反射率波形が変動する場合であっても、このスタック型バーコード21を精度よく読み取ることが可能となる。具体的には、撮像光学系の分解能が一定の水準に達している場合には、スタック型バーコード21の走査反射率波形のピーク値を検出することで閾値を決定する(固定)閾値方式による低レベル復号を採択することができる。一方、撮像光学系の分解能が一定の水準に達していない場合には、スタック型バーコード21の走査反射率波形が変動してしまうため、または、正確なピーク値を検出することが難しくなるが、輝度値の差分をとることで、バーとスペースとのエッジ(境界)部分の出力変化を高精度に抽出可能な2次微分方式による低レベル復号を採択することができる。   As described above, in this embodiment, even when the scanning reflectance waveform of the stack barcode 21 fluctuates, the stack barcode 21 can be read with high accuracy. Specifically, when the resolution of the imaging optical system has reached a certain level, the threshold is determined by detecting the peak value of the scanning reflectance waveform of the stack barcode 21 (fixed). Low level decoding can be adopted. On the other hand, if the resolution of the imaging optical system does not reach a certain level, the scanning reflectance waveform of the stack barcode 21 will fluctuate, or it will be difficult to detect an accurate peak value. By taking the difference between the luminance values, it is possible to adopt low-level decoding by the second-order differential method that can extract the output change of the edge (boundary) portion between the bar and the space with high accuracy.

その結果、スタック型バーコード21の走査反射率波形の変動の影響を受けにくく、スタック型バーコード21を精度よく読み取ることが可能となる。   As a result, it is difficult to be affected by fluctuations in the scanning reflectance waveform of the stack barcode 21, and the stack barcode 21 can be read with high accuracy.

また、媒体搬送速度が撮像中に増減する場合でも、両方式((固定)閾値方式および2次微分方式)の低レベル復号を併用することにより、速度変動に対処しやすくなる利点がある。
[発明のその他の実施の形態]
In addition, even when the medium conveyance speed increases or decreases during imaging, there is an advantage that it is easy to deal with speed fluctuation by using both types ((fixed) threshold method and second-order differential method) of low-level decoding.
[Other Embodiments of the Invention]

なお、上述した実施の形態1では、スタック型バーコード読取方法の低レベル復号に際して、図16に示すように、2次微分方式によるXシーケンス計測処理に基づく低レベル復号(ステップS171〜ステップS174)を実施した後、(固定)閾値方式によるXシーケンス計測処理に基づく低レベル復号(ステップS176〜ステップS179)を実施する場合について説明した。しかし、必要に応じて、これらの順序を入れ替えて、(固定)閾値方式によるXシーケンス計測処理に基づく低レベル復号を実施した後、2次微分方式によるXシーケンス計測処理に基づく低レベル復号を実施するようにしてもよい。   In the first embodiment described above, at the time of low-level decoding in the stack type barcode reading method, as shown in FIG. 16, low-level decoding based on X-sequence measurement processing by the second-order differential method (steps S171 to S174). In the above description, the low-level decoding (steps S176 to S179) based on the (fixed) threshold method X sequence measurement process is performed. However, if necessary, the order is changed, and low-level decoding based on the (fixed) threshold method X-sequence measurement processing is performed, and then low-level decoding is performed based on the second-order differential method X-sequence measurement processing. You may make it do.

また、上述した実施の形態1では、スタック型バーコード読取方法のXシーケンス計測処理を実行する際に、閾値方式として、走査反射波形を構成する各画素の輝度値の平均を求める固定閾値方式を採用する場合について説明したが、固定閾値方式以外の閾値方式(例えば、局所閾値方式など)を代用または併用することもできる。局所閾値方式を採用する場合は、Xシーケンス計測部14の局所閾値算出手段14a2が局所閾値を算出する。この局所閾値方式は、図17に示すように、画像データにおいて互いに隣接するバーおよびスペースの最大ピーク値と最小ピーク値との平均値に基づく局所閾値をバーとスペースとの境界とする方式である。この局所閾値方式は、補正画像データの輝度むらや汚れなどで、ピーク値のばらつきが生じた場合でも、固定閾値方式に比べて、バーとスペースとの線幅を精度よく検出することができるという利点がある。   In the first embodiment described above, when executing the X-sequence measurement process of the stack barcode reading method, the fixed threshold method for obtaining the average of the luminance values of the pixels constituting the scanning reflection waveform is used as the threshold method. Although the case where it is adopted has been described, a threshold method other than the fixed threshold method (for example, a local threshold method) can be used instead or in combination. When the local threshold method is adopted, the local threshold value calculation unit 14a2 of the X sequence measurement unit 14 calculates the local threshold value. As shown in FIG. 17, this local threshold method is a method in which a local threshold based on the average value of the maximum peak value and the minimum peak value of bars and spaces adjacent to each other in image data is used as the boundary between the bar and the space. . This local threshold method can detect the line width between the bar and the space more accurately than the fixed threshold method even when the fluctuation of the peak value occurs due to uneven brightness or dirt of the corrected image data. There are advantages.

また、上述した実施の形態1では、スタック型バーコード読取方法のXシーケンス計測処理を実行する際に、n次微分方式として2次微分方式(つまり、n=2)を採用する場合について説明したが、2次微分方式に代えて1次微分方式(つまり、n=1)を代用または併用することもできる。   In the first embodiment described above, the case where the second-order differentiation method (that is, n = 2) is adopted as the n-th order differentiation method when executing the X-sequence measurement process of the stack barcode reading method is described. However, instead of the secondary differential system, the primary differential system (that is, n = 1) can be substituted or used in combination.

また、上述した実施の形態1では、スタック型バーコード読取方法のスタック型バーコード傾き補正(ステップS33)において、スタック型バーコード21の画像データを傾斜角度ゼロの補正画像データに変換する場合について説明した。しかし、スタック型バーコード21の画像データが傾いていないことが保証されている場合や、スタック型バーコード21の画像データが傾いていても別の角度補正手段によって対処できる場合には、このスタック型バーコード傾き補正を省くことも可能である。   In the first embodiment described above, the stack bar code tilt correction (step S33) of the stack bar code reading method converts the image data of the stack bar code 21 into corrected image data with a tilt angle of zero. explained. However, when it is guaranteed that the image data of the stack barcode 21 is not tilted, or when the image data of the stack barcode 21 is tilted, this stack can be dealt with by another angle correction means. It is also possible to omit the type bar code tilt correction.

また、上述した実施の形態1では、スタック型バーコード21、つまり二次元バーコードの一種について説明したが、一次元バーコードに本発明を同様に適用することもできる。   In the first embodiment described above, the stack type barcode 21, that is, a kind of two-dimensional barcode, has been described. However, the present invention can be similarly applied to a one-dimensional barcode.

さらに、上述した実施の形態1では、一次元撮像素子やリニア搬送機構との組み合わせに対して本発明を適用することとしたが、本発明はこれに限られることなく、例えば、二次元CCDやCMOSイメージャなどのエリアセンサと被写体支持機構との組み合わせに対して本発明を適用することとしても構わない。   Furthermore, in Embodiment 1 described above, the present invention is applied to a combination with a one-dimensional imaging device and a linear transport mechanism. However, the present invention is not limited to this, and for example, a two-dimensional CCD, The present invention may be applied to a combination of an area sensor such as a CMOS imager and a subject support mechanism.

本発明は、撮像光学系の分解能の高低に起因してスタック型バーコードの走査反射率波形が変動する恐れがあるスタック型バーコード読取装置に好適に適用することができる。   The present invention can be suitably applied to a stack type barcode reader in which the scanning reflectance waveform of the stack type barcode may fluctuate due to the resolution of the imaging optical system.

1……スタック型バーコード読取装置
2……記録担体
11……撮像装置(撮像部)
11a……イメージスキャナ
11b……カード搬送機構
12……画像メモリ
13……データ処理装置(データ処理部)
13a……位置検出部
13b……傾き補正部
13c……構造解析部
13d……復号部
13d1……低レベル復号部
13d2……高レベル復号部
14……Xシーケンス計測部
14a……閾値算出手段
14a1……固定閾値算出手段
14a2……局所閾値算出手段
14a3……n次微分算出手段
14b……線幅計測手段
15……Tシーケンス計測部(Tシーケンス計測手段)
15a……シーケンス変換手段
15b……線幅正規化手段
15c……判定手段
16……コードワード変換部(コードワード取得手段)
16a……テーブルメモリ
21……スタック型バーコード
DESCRIPTION OF SYMBOLS 1 ... Stack type barcode reader 2 ... Record carrier 11 ... Imaging device (imaging part)
11a: Image scanner 11b: Card transport mechanism 12: Image memory 13: Data processing device (data processing unit)
13a: Position detection unit 13b: Inclination correction unit 13c: Structural analysis unit 13d: Decoding unit 13d1: Low level decoding unit 13d2: High level decoding unit 14: X sequence measurement unit 14a: Threshold calculation means 14a1... Fixed threshold calculation means 14a2... Local threshold calculation means 14a3... Nth-order differential calculation means 14b... Line width measurement means 15 ... T sequence measurement unit (T sequence measurement means)
15a: Sequence conversion means 15b: Line width normalization means 15c: Determination means 16: Code word conversion unit (code word acquisition means)
16a …… Table memory 21 …… Stacked barcode

Claims (5)

キャラクタ情報がバーコードにコード化されてバーおよびスペースで表示されたスタック型バーコードを撮像する撮像部と、
この撮像部が撮像した前記スタック型バーコードの画像データを記憶する画像メモリと、
前記画像データに基づき、前記スタック型バーコードのバーコードをキャラクタ情報に復号する復号部を有するデータ処理部と
を備え、
前記復号部は、
前記画像データを構成する複数の画素の輝度値によって前記スタック型バーコードのバーとスペースとの線幅を計測するための閾値を算出する閾値算出手段と、
前記画像データを構成する複数の画素の輝度値を示す走査反射率波形を微分してn次微分値(nは1または2)を算出するn次微分算出手段と、
前記閾値または前記n次微分値に基づき、前記スタック型バーコードのバーおよびスペースの線幅を計測する線幅計測手段と、
この線幅計測手段によって計測された前記スタック型バーコードのバーおよびスペースの線幅からTシーケンスを計測するTシーケンス計測手段と、
このTシーケンス計測手段によって計測されたTシーケンスに対応するコードワードを取得するコードワード取得手段と
を有するスタック型バーコード読取装置であって、
前記Tシーケンス計測手段は、前記閾値と前記n次微分値のいずれか一方に基づいて計測されたTシーケンスの有効性を判定し、このTシーケンスが有効でない場合には、前記閾値と前記n次微分値の他方に基づいて計測されたTシーケンスの有効性を判定することを特徴とするスタック型バーコード読取装置。
An imaging unit that captures a stack barcode in which character information is encoded into a barcode and displayed in a bar and a space;
An image memory for storing the image data of the stack barcode captured by the imaging unit;
A data processing unit having a decoding unit that decodes the barcode of the stack barcode into character information based on the image data;
The decoding unit
Threshold calculating means for calculating a threshold for measuring the line width of the bar and space of the stack barcode according to the luminance values of a plurality of pixels constituting the image data;
N-order differential calculation means for differentiating a scanning reflectance waveform indicating luminance values of a plurality of pixels constituting the image data to calculate an n-order differential value (n is 1 or 2);
Line width measuring means for measuring the line width of the bar and space of the stack barcode based on the threshold value or the nth-order differential value;
T-sequence measurement means for measuring a T-sequence from the line width of the bar and space of the stacked barcode measured by the line width measurement means;
A stack type barcode reader having code word acquisition means for acquiring a code word corresponding to the T sequence measured by the T sequence measurement means ,
The T sequence measuring means determines the validity of the T sequence measured based on one of the threshold and the n-th order differential value, and when the T sequence is not valid, the threshold and the n-th order are measured. A stack type barcode reader characterized by determining the validity of a T-sequence measured based on the other of the differential values .
前記n次微分値は2次微分値であり、この2次微分値のゼロクロス点を前記バーと前記スペースとの境界とすることを特徴とする請求項1に記載のスタック型バーコード読取装置。   2. The stacked bar code reader according to claim 1, wherein the n-th order differential value is a second-order differential value, and a zero cross point of the second-order differential value is used as a boundary between the bar and the space. 前記閾値は、前記画像データの平均値に基づく固定閾値と、前記画像データにおいて互いに隣接する前記バーおよび前記スペースの最大ピーク値と最小ピーク値との平均値に基づく局所閾値とのいずれか一方であることを特徴とする請求項1または2に記載のスタック型バーコード読取装置。   The threshold is one of a fixed threshold based on an average value of the image data and a local threshold based on an average value of the maximum peak value and the minimum peak value of the bar and the space adjacent to each other in the image data. The stacked bar code reader according to claim 1, wherein the stack bar code reader is provided. キャラクタ情報がバーコードにコード化されてバーおよびスペースで表示されたスタック型バーコードを撮像して得られた画像データに基づき、前記スタック型バーコードのバーコードをキャラクタ情報に復号する際に、
前記画像データを構成する複数の画素の輝度値によって前記スタック型バーコードのバーとスペースとの線幅を計測するための閾値を算出する閾値算出工程と、
前記画像データを構成する複数の画素の輝度値を示す走査反射率波形を微分してn次微分値(nは1または2)を算出するn次微分算出工程と、
前記閾値または前記n次微分値に基づき、前記スタック型バーコードのバーおよびスペースの線幅を計測する線幅計測工程と、
この線幅計測工程において計測された前記スタック型バーコードのバーおよびスペースの線幅からTシーケンスを計測するTシーケンス計測工程と、
このTシーケンス計測工程において計測されたTシーケンスに対応するコードワードを取得するコードワード取得工程と
を含むスタック型バーコード読取方法であって、
前記Tシーケンス計測工程において、前記閾値と前記n次微分値のいずれか一方に基づいて計測されたTシーケンスの有効性を判定し、このTシーケンスが有効でない場合には、前記閾値と前記n次微分値の他方に基づいて計測されたTシーケンスの有効性を判定することを特徴とするスタック型バーコード読取方法。
When decoding the barcode of the stack barcode into the character information based on the image data obtained by imaging the stack barcode displayed in the bar and space in which the character information is encoded into the barcode,
A threshold value calculating step for calculating a threshold value for measuring the line width of the bar and space of the stack barcode according to the luminance values of a plurality of pixels constituting the image data;
An n-th order differential calculation step of differentiating a scanning reflectance waveform indicating luminance values of a plurality of pixels constituting the image data to calculate an n-th order differential value (n is 1 or 2);
A line width measuring step of measuring the line width of the bar and space of the stack barcode based on the threshold value or the nth-order differential value;
A T-sequence measurement step of measuring a T-sequence from the line width of the bar and space of the stacked barcode measured in the line width measurement step;
A code word acquisition step of acquiring a code word corresponding to the T sequence measured in the T sequence measurement step ,
In the T sequence measurement step, the effectiveness of the T sequence measured based on one of the threshold value and the n-th order differential value is determined. If the T sequence is not valid, the threshold value and the n-th order value are determined. A stack type barcode reading method, wherein the validity of a T sequence measured based on the other of the differential values is determined .
前記Tシーケンス計測工程において計測されたTシーケンスから計算されたクラスタ番号が理論値に等しいか否かにより、このTシーケンスの有効性を判定することを特徴とする請求項4に記載のスタック型バーコード読取方法。   5. The stack type bar according to claim 4, wherein the validity of the T-sequence is determined based on whether or not the cluster number calculated from the T-sequence measured in the T-sequence measurement step is equal to a theoretical value. Code reading method.
JP2010227437A 2010-10-07 2010-10-07 Stacked bar code reader and stack bar code reading method Expired - Fee Related JP5683891B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010227437A JP5683891B2 (en) 2010-10-07 2010-10-07 Stacked bar code reader and stack bar code reading method
US13/240,208 US8333326B2 (en) 2010-10-07 2011-09-22 Stacked barcode reader and stacked barcode reading method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010227437A JP5683891B2 (en) 2010-10-07 2010-10-07 Stacked bar code reader and stack bar code reading method

Publications (2)

Publication Number Publication Date
JP2012083835A JP2012083835A (en) 2012-04-26
JP5683891B2 true JP5683891B2 (en) 2015-03-11

Family

ID=46242658

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010227437A Expired - Fee Related JP5683891B2 (en) 2010-10-07 2010-10-07 Stacked bar code reader and stack bar code reading method

Country Status (1)

Country Link
JP (1) JP5683891B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184211A (en) * 2015-09-28 2015-12-23 西安中颖电子有限公司 One-dimensional barcode decoding method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6095194B2 (en) * 2013-03-28 2017-03-15 日本電産サンキョー株式会社 Stack bar code reading apparatus and stack bar code reading method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5352878A (en) * 1993-01-29 1994-10-04 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using independent bar and space analysis
US5514858A (en) * 1995-02-10 1996-05-07 Intermec Corporation Method and apparatus for decoding unresolved complex multi-width bar code symbology profiles
JP4652201B2 (en) * 2005-09-30 2011-03-16 日本電産サンキョー株式会社 Bar code symbol information reading method and bar code symbol information reading device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105184211A (en) * 2015-09-28 2015-12-23 西安中颖电子有限公司 One-dimensional barcode decoding method
CN105184211B (en) * 2015-09-28 2018-08-24 西安中颖电子有限公司 A kind of bar code coding/decoding method

Also Published As

Publication number Publication date
JP2012083835A (en) 2012-04-26

Similar Documents

Publication Publication Date Title
JP6095194B2 (en) Stack bar code reading apparatus and stack bar code reading method
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
US8333326B2 (en) Stacked barcode reader and stacked barcode reading method
US5616905A (en) Two-dimensional code recognition method
CN105512594B (en) Decode bar code
EP0999519B1 (en) Distortion correction method in optical code reading
JP5591578B2 (en) Character string recognition apparatus and character string recognition method
US8326037B1 (en) Methods and apparatus for locating an object in an image
US7949187B2 (en) Character string recognition method and device
JP5140820B2 (en) Symbol information reading apparatus and symbol information reading method
US7050631B2 (en) Barcode detection system
JP6078399B2 (en) Symbol information reading apparatus, symbol information reading method, and program
CN109740403B (en) Method and device for reading one-dimensional bar code
US8718370B2 (en) Optical information-reading apparatus and optical information-reading method
JP5379626B2 (en) Stack bar code information reading method and stack bar code information reading device
US20120055991A1 (en) Apparatus and method for reading barcode
JP4652201B2 (en) Bar code symbol information reading method and bar code symbol information reading device
JP5683891B2 (en) Stacked bar code reader and stack bar code reading method
JP5657987B2 (en) Stacked bar code reader and stack bar code reading method
US8403221B2 (en) Method and apparatus for reading barcode information
JP7427427B2 (en) Method and apparatus for decoding symbols with insufficient resolution
US9495574B2 (en) Stack barcode reader and stack barcode reading method
JP4403063B2 (en) Symbol information reading method and symbol information reading apparatus
JP2023082341A (en) Image inspection device, image inspection method, and image inspection program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130906

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140416

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140805

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150114

R150 Certificate of patent or registration of utility model

Ref document number: 5683891

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees