JP2009151504A - Code recognition device and program - Google Patents
Code recognition device and program Download PDFInfo
- Publication number
- JP2009151504A JP2009151504A JP2007328054A JP2007328054A JP2009151504A JP 2009151504 A JP2009151504 A JP 2009151504A JP 2007328054 A JP2007328054 A JP 2007328054A JP 2007328054 A JP2007328054 A JP 2007328054A JP 2009151504 A JP2009151504 A JP 2009151504A
- Authority
- JP
- Japan
- Prior art keywords
- code
- decoding
- likelihood
- barcode
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、コード認識装置及びプログラムに関し、特に、適切なコード体系によるデコード処理に関する。 The present invention relates to a code recognition device and a program, and more particularly to a decoding process using an appropriate code system.
バーコード認識装置には、例えば、郵便物等のバーコードのように複数種類のバーコードが付されている場合等に、バーコードのコード体系を峻別してデコードする処理が必要とされている。 For example, when a barcode recognition apparatus has a plurality of types of barcodes such as a barcode of a postal matter, a barcode code system is required to perform processing by distinguishing the barcode code system. .
特許文献1は、かかる必要性に鑑みてなされた発明であって、所定のバーコードの一部に他種類のバーコードが含まれる場合であっても、バーコードを適切に認識する方法が開示されている。図1は、かかる場合のバーコードを示すひとつの例である。読取対象となったバーコードは、その上下を判断することができないため、まずは左右両側から様々なコード体系でデコードされる。同図は、当該バーコードが、左側からデコードする場合にはCODE39として、右側からデコードする場合にはその一部がNW7としてデコードできたことを示している。
しかし、図2に示すように、本来はCODE128でデコードされるべきバーコードの全体が、NW7で表現される値の理論値とも近似するようなことがある。この場合には、読取対象のバーコード(a)が、NW7で記載されたバーコードの理論値(b)を示すのか、CODE128で記載されたバーコードの理論値(c)を示すのかについて、従来の技術では判別できず、誤ったコード体系でバーコードが認識される可能性がある。 However, as shown in FIG. 2, the entire barcode that should be decoded by CODE 128 may approximate the theoretical value represented by NW7. In this case, whether the barcode (a) to be read indicates the theoretical value (b) of the barcode described in NW7 or the theoretical value (c) of the barcode described in CODE128. There is a possibility that the barcode cannot be recognized by the conventional technology and the barcode is recognized with an incorrect code system.
本発明は、上記課題に鑑みてなされたものであって、その目的は、読取対象のバーコード全体が複数種類のバーコードとしてデコードできる場合に、いずれのコード体系で記載されたバーコードであるかを判別することにより、適切なコード体系でバーコードを認識する装置及びプログラムを提供することにある。 The present invention has been made in view of the above problems, and the object thereof is a barcode described in any code system when the entire barcode to be read can be decoded as a plurality of types of barcodes. It is an object of the present invention to provide an apparatus and a program for recognizing a bar code with an appropriate code system.
請求項1の発明は、複数種類の図形要素の配列からなり、媒体に表されたコードに対し、それぞれ所定種類の図形要素を用いる複数コード体系でデコード処理を施すデコード手段と、前記各コード体系について、デコード中にデコード処理の内容の少なくとも一部を示す処理内容データを記憶させる記憶手段と、前記処理内容データに従って、前記各コード体系で記述されたことの尤度を算出する尤度算出手段と、前記尤度に従って、いずれかのコード体系でのデコード結果を出力する出力手段と、を含むことを特徴とするコード認識装置である。
The invention according to
請求項2の発明は、請求項1のコード認識装置において、前記処理内容データは、前記各コード体系が用いる少なくとも1つの種類の図形要素であると認識された図形要素の前記媒体における表示態様に従って決定される値であって、前記尤度算出手段は、前記値のばらつきが小さくなるほど前記尤度が高くなるように前記尤度を算出する、ことを特徴とする。 According to a second aspect of the present invention, in the code recognition apparatus according to the first aspect, the processing content data is in accordance with a display mode of the graphic element recognized as at least one type of graphic element used by each code system on the medium. It is a value to be determined, and the likelihood calculating means calculates the likelihood such that the likelihood increases as the variation of the value decreases.
請求項3の発明は、請求項2のコード認識装置において、前記媒体に表されたコードが、複数種類の幅のバー又はスペースの配列からなるバーコードであって、前記処理内容データは、前記各コード体系が用いる少なくとも1つの種類のバー又はスペースであると認識されたバー又はスペースの前記媒体に表された前記バーコードにおける幅に従って決定される値である、ことを特徴とする。 According to a third aspect of the present invention, in the code recognition device according to the second aspect, the code represented on the medium is a bar code composed of a plurality of types of bars or spaces, and the processing content data includes It is a value determined according to the width of the bar or space recognized as at least one type of bar or space used by each code system in the bar code represented on the medium.
請求項4の発明は、請求項3のコード認識装置において、前記値が、前記バー又はスペースの前記媒体に表された前記バーコードにおける幅に従って、前記バーコードの所定領域毎に決定される、前記バーコードのバー又はスペースの幅の種類を判定するための閾値を示す、ことを特徴とする。 According to a fourth aspect of the present invention, in the code recognition device according to the third aspect, the value is determined for each predetermined area of the bar code according to a width of the bar or space in the bar code represented on the medium. A threshold value for determining the type of width of the bar or space of the barcode is indicated.
請求項5の発明は、請求項1のコード認識装置において、前記処理内容データは、前記コードをデコードするために要した演算の量を示し、前記尤度算出手段は、前記演算の量が少なくなるほど前記尤度が高くなるように前記尤度を算出する、ことを特徴とする。 According to a fifth aspect of the present invention, in the code recognition device according to the first aspect, the processing content data indicates an amount of calculation required to decode the code, and the likelihood calculating means has a small amount of the calculation. The likelihood is calculated so that the likelihood becomes higher.
請求項6の発明は、請求項5のコード認識装置において、前記媒体に表されたコードが、複数種類の幅のバー又はスペースの配列からなるバーコードであって、前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコード処理を施し、前記演算の量は、前記バーコードをデコードするまでに要した前記読取線の本数に従って導出される、ことを特徴とする。 According to a sixth aspect of the present invention, in the code recognition device according to the fifth aspect, the code represented on the medium is a bar code including a plurality of types of bars or spaces, and the decoding means includes the bar Decoding processing is performed based on the arrangement of bars and spaces read from a plurality of reading lines in the code, and the amount of calculation is derived according to the number of reading lines required until the bar code is decoded. Features.
請求項7の発明は、複数種類の図形要素の配列からなり、媒体に表されたコードに対し、それぞれ所定種類の図形要素を用いる複数コード体系でデコード処理を施すデコードステップと、前記各コード体系について、デコード中にデコード処理の内容の少なくとも一部を示すデータを記憶手段に記憶させる記憶ステップと、前記データに従って、前記各コード体系で記述されたことの尤度を算出する尤度算出ステップと、前記尤度に従って、いずれかのコード体系でのデコード結果を出力する出力ステップと、をコンピュータに実行させるためのプログラムである。
The invention according to
請求項1及び請求項7の発明によれば、各コード体系によるデコード処理の内容の少なくとも一部を示す処理内容データに従って、コード体系で記載されたことの尤度を算出することにより、コードが記載されたコード体系を判断するので、適切なコード体系でコードを認識することができる。 According to the first and seventh aspects of the invention, by calculating the likelihood of being described in the code system according to the processing content data indicating at least part of the content of the decoding process by each code system, the code is Since the described code system is judged, the code can be recognized with an appropriate code system.
請求項2の発明によれば、各コード体系で用いられる少なくとも1つの種類の図形要素が、媒体上で表示されている態様に従って決定される値のばらつきを処理内容データとするため、コード体系ごとのデコード処理中に、コード体系で記載されたことの尤度を算出できる。
According to the invention of
請求項3の発明によれば、媒体上に表示されているバーコードのバー又はスペースのうちの少なくとも1つの種類の幅に従って決定される値のばらつきから、コード体系で記載されたことの尤度を算出するので、バーコードの場合に、精度よく尤度を算出することができる。
According to the invention of
請求項4の発明によれば、媒体上に表示されているバーコードのバー又はスペースのうちの少なくとも1つの種類の幅に従って、所定領域毎に決定される閾値のばらつきから、コード体系で記載されたことの尤度を算出するので、バーコードのデコード処理過程で生じる値を活用して尤度を算出することができる。
According to the invention of
請求項5の発明によれば、デコードできたコード体系で要した演算量に従って、コード体系で記載されたことの尤度を算出するので、デコードできたコード体系から適切なコード体系を効率的に判断することができる。
According to the invention of
請求項6の発明によれば、バーコードを複数の読取線から読み取られるバー及びスペースの配置に基づいてデコード処理を施す場合に、デコードできた各コード体系で要した読取線の本数に従って、コード体系で記載されたことの尤度を算出するので、適切なコード体系を効率的に判断することができる。
According to the invention of
以下、本発明の好適な実施の形態について図面に基づき詳細に説明する。 DESCRIPTION OF EXEMPLARY EMBODIMENTS Hereinafter, preferred embodiments of the invention will be described in detail with reference to the drawings.
図3は、本発明の実施形態にかかるバーコード認識装置3におけるハードウェア構成と機能的構成を示すブロック図である。ここで、コードとは、複数の図形要素の配列により数値や文字等を表す符号のことをいう。複数種類の幅のバー及びスペースの配列からなるバーコードを認識するバーコード認識装置3は、コード認識装置の一態様である。また、コード体系とは、複数の図形要素の配列と、数値や文字等とを対応付ける規則のことをいう。
FIG. 3 is a block diagram showing a hardware configuration and a functional configuration of the
バーコード認識装置3は、制御部31、記憶部32、バーコード取得部33、通信部34を含んで構成される。本実施形態におけるバーコード認識装置3は、手持ち型、あるいは据え置き型のいずれのバーコードリーダであってもよい。
The
制御部31は、CPU(Central Processing Unit)等のプログラム制御デバイスである。制御部31は、デコード部31A、デコード内容記憶処理部31Bと、尤度算出部31C、出力部31Dの各機能ブロックを含んでおり、本発明の実施形態にかかるプログラムを実行することによって各機能が実現される。このプログラムは、例えばCD−ROMやDVD−ROM等のコンピュータ読取可能な各種の情報記憶媒体に格納されて提供されてもよいし、インターネット等の通信手段を介して提供されてもよい。各機能の詳細については後述する。
The
記憶部32は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ素子、ならびにハードディスク等によって構成される。この記憶部32は、制御部31が実行する上記プログラム(ソフトウェア)を格納している。また、この記憶部32は、制御部31の処理の過程で利用される種々のデータを保持するワークメモリとしても動作する。また本実施形態における記憶部32は、デコード内容記憶部32Aとして用いられる。
The
バーコード取得部33は、認識する対象のバーコードが表された媒体に光を照射するLED等の光源、及び、当該バーコードからの反射光を取り込むCCD等の受光素子からなる。バーコード取得部33は、バーコードが表された媒体に光を照射し、その反射光がCCD等の受光素子に受光させてバーコードが取得される。また、バーコード取得部33は、紙媒体等に表されたバーコードを全体的に捉えた画像形式のデータ(以下、バーコード画像)により、バーコードを取得する。バーコード取得部33に取得されたバーコードは、デコード処理等の対象として制御部31に提供される。
The
通信部34は、ネットワークボード等によって構成される。この通信部34は、例えば、記憶部32に蓄積されるデコード処理の結果を、ネットワークを介して他のサーバ等に送信する等の各種データのやり取りをする等の機能を担う。
The
ここで、バーコード認識装置3の制御部31に含まれる、デコード部31A、デコード内容記憶処理部31B、尤度算出部31C、出力部31Dが実現する各機能を、図4および図5を用いて説明する。図4は、認識対象のバーコードの画質が悪く、各バー又は各スペースが各位置によって異なる幅を有しているバーコード画像を示している。さらに同図では、バー又はスペースの配置を示すラインデータを7本の読取線から読み取る様子が示されている。次に図5は、図4のバーコード画像を、NW7のコード体系によってデコード処理する過程とその結果(図5(a))、と、CODE128のコード体系によってデコード処理する過程とその結果(図5(b))とを示す図である。
Here, the functions realized by the decoding unit 31A, the decoded content storage processing unit 31B, the
デコード部31Aは、バーコード取得部33で読み取られたバーコードを、予めデコード処理を行うように設定されている複数のコード体系に従ってデコードする。ここでデコード処理とは、媒体から読み取られた複数の図形要素の配列からなるコードを所定のコード体系に従って復号する処理をいう。具体的には、このデコード部31Aは、バーコード画像に対して、図4に示すようにバー及びスペースの配置を読み取るための読取線を複数箇所に設定し、読取線から取得されるバー及びスペースの配置を示す複数箇所のラインデータに従って、バーコードをデコードする。この読取線は、少なくとも1画素の幅で、バーコードの開始位置からバーコードが終了する位置まで、バーコードの長さ方向(バーコードの長手方向)に仮想的に引かれる線のことをいう。デコード部31Aは、バーコード画像の各読取線から読み取られるラインデータを、各コード体系に従って文字や数字を表すバー及びスペースの配列に対応付けることにより、各読取線のデコード結果を得て、バーコードをデコードする。
The decoding unit 31A decodes the barcode read by the
図5(a)は、各読取線に従って読み取られたラインデータが示すバー又はスペースの配置を、NW7のコード体系に従ってデコードし(読取線のデコード結果)、バーコードをデコードした結果(読取線1〜7から判断されたデコード結果)を示している。また図5(b)は、同様にCODE128のコード体系に従ってデコードしている場合である。図5(a)及び図5(b)で示される各読取線に対応づけられている文字列は、デコード部31Aのデコード処理により、各キャラクタ毎に、ラインデータにおけるバー又はスペースの配置と、文字列を示すバー又はスペースの配列とが対応付けられて得られたものである。また、図5における「×」印は、そのキャラクタにおけるバー又はスペースの配置に、対応付けられる文字列を示すバー又はスペースの配列がなかったことを示している。 FIG. 5A shows the result of decoding the bar code or the space arrangement indicated by the line data read in accordance with each read line in accordance with the NW7 code system (read line decode result) and decoding the bar code (read line 1). (Decoding result determined from ˜7). FIG. 5B similarly shows a case where decoding is performed according to the CODE128 code system. The character string associated with each reading line shown in FIG. 5A and FIG. 5B is subjected to the decoding process of the decoding unit 31A, for each character, the arrangement of bars or spaces in the line data, This is obtained by associating with an array of bars or spaces indicating character strings. In addition, the “x” mark in FIG. 5 indicates that there is no bar or space arrangement indicating the associated character string in the arrangement of the bars or spaces in the character.
同図で示されるように、各ラインデータで異なる文字列として識別されたり、ラインデータによっては識別できないキャラクタを含む場合がある。そこで、デコード部31Aは、複数の読取線によるデコード結果に従って、キャラクタ毎に文字を判断している。この判断は、図5で示すように、バーコードにおける全てのキャラクタにおいて、複数の各読取線のデコード結果のうちで最多となる文字に決定することにより行われる。また、最多となる文字を決定できない場合に、デコード部31Aは、新たに読取線を設定してそのデコード結果を取得し、再びキャラクタ毎に最多となる文字を決定する処理を繰り返す。デコードがきた場合には、デコード部31Aは、デコードできたコード体系とバーコードのデコード結果とを関連付けて記憶部32に記憶する。
As shown in the figure, there are cases where each line data is identified as a different character string or includes characters that cannot be identified depending on the line data. Therefore, the decoding unit 31A determines a character for each character in accordance with the decoding results obtained by a plurality of reading lines. As shown in FIG. 5, this determination is made by determining the character having the largest number among the decoding results of each of the plurality of reading lines in all characters in the barcode. In addition, when the character having the maximum number cannot be determined, the decoding unit 31A newly sets a reading line, acquires the decoding result, and repeats the process of determining the character having the maximum number for each character again. When decoding has been performed, the decoding unit 31A stores the decoded code system and the barcode decoding result in the
なお、デコード部31Aは、所定本数の読取線のデコード結果を取得してもバーコードをデコードできない場合には、他のコード体系によるデコード処理を行うこととする。なお、キャラクタ毎に文字を判断する際に、上記では複数の読取線によるデコード結果において最多となる文字か否かにより判断しているが、例えば3本以上の複数の読取線によるデコード結果において過半数を占める文字があるか否かにより判断する等、その他の方法で判断してもよい。 Note that the decoding unit 31A performs decoding processing using another code system when the barcode cannot be decoded even if the decoding results of the predetermined number of reading lines are acquired. In determining the character for each character, in the above description, the determination is made based on whether or not the character is the largest in the decoding result by the plurality of reading lines. For example, the majority in the decoding result by three or more reading lines. It may be determined by other methods such as determining whether or not there is a character occupying.
デコード内容記憶処理部31Bは、デコード部31Aによる各コード体系のデコード処理の際に、デコード処理の内容の少なくとも一部を処理内容データとしてデコード内容記憶部32Aに記憶させる。この処理内容データは、バーコードのデコード処理で用いられたり処理の過程で発生する情報、及び、デコード処理自体を示す情報である。具体的には、処理内容データは、バーコードにおけるバーの幅等の、媒体における図形要素の表示態様に従って決定されるデータ、デコード処理に要した演算の量を示すデータである。ここで、デコード内容記憶処理部31Bは、NW7によるデコード処理(図5(a))の場合には、読取線の本数である「7」を、デコード処理に要した演算の量を示すデータとしてデコード内容記憶部32Aに記憶させる。また、同様に、CODE128によるデコード処理(図5(b))の場合には、読取線の本数である「4」を、デコード内容記憶部32Aに記憶させる。
The decoded content storage processing unit 31B causes the decoded
尤度算出部31Cは、デコード内容記憶部32Aに記憶された処理内容データから、バーコードがいずれのコード体系で記載されているかを判断するために、各コード体系で記述されたことの尤度を算出する。ここで、尤度とは、尤もらしさの尺度のことをいう。各コード体系で記述されたことの尤度とは、具体的には、図5(a)で示されるNW7のコード体系でデコードした場合のデコード結果である「D2+/$./+:B」の、バーコード本来のバー又はスペースを示す配列から復号できる文字列としての尤もらしさを判断するための尺度である。バーコードが本来記述されているコード体系でデコードする場合と、そのコード体系と異なるコード体系でデコードする場合とでは、一般的に、デコード処理に要した読取線の本数は後者のほうが多くなる。従って、尤度算出部31Cは、例えば、デコードに要した読取線の本数の逆数をとることにより、NW7で記述されたことの尤度とCODE128で記述されたことの尤度とでは、CODE128の尤度を高くなるように算出する。
The
出力部31Dは、尤度算出部31Cにおいて算出された尤度が最も高いコード体系によるバーコードのデコード結果を、記憶部32に出力する。具体的には、出力部31Dは、CODE128によるバーコードのデコード結果を、尤度が最も高いコード体系によるバーコードのデコード結果として「B0123456789n」を出力する。
The
図6は、上記のデコード処理のフローの一例を示す図である。まず、バーコードをデコードするコード体系とデコードする方向とを決定する(S601)。次に、デコード部31Aは、読取線を設定してラインデータを取得する(S602)。さらにデコード部31Aは、取得されたラインデータをデコードする(S603)。S604では、S603のラインデータのデコード結果を用いて、バーコードをデコードできたか否かを判断する。S604で、バーコードをデコードできた場合(YES)には、読取線を設定してラインデータを取得した回数とバーコードのデコード結果とを記憶部32に記憶し(S605)、S607の処理を実行する。一方、S604でバーコードをデコードできなかった場合(NO)には、当該コード体系によるデコード処理に費やされているラインデータの取得回数が所定回数を超えているか否かを判断し(S606)、所定回数を超えない場合(NO)には再びラインデータを取得して(S602)、当該コード体系によるデコード処理を継続する。S606で所定回数を超える場合(YES)には、当該コード体系ではバーコードがデコードできないと判断し、次のS607における処理を実行する。 FIG. 6 is a diagram showing an example of the flow of the decoding process. First, a code system for decoding a barcode and a decoding direction are determined (S601). Next, the decoding unit 31A sets a reading line and acquires line data (S602). Further, the decoding unit 31A decodes the acquired line data (S603). In step S604, it is determined whether the barcode has been decoded using the line data decoding result in step S603. If the barcode can be decoded in S604 (YES), the number of times the line data is acquired by setting the reading line and the barcode decoding result are stored in the storage unit 32 (S605), and the process of S607 is performed. Execute. On the other hand, if the barcode could not be decoded in S604 (NO), it is determined whether or not the number of acquisition times of line data spent for the decoding process by the code system exceeds a predetermined number (S606). If the predetermined number of times is not exceeded (NO), line data is acquired again (S602), and the decoding process using the code system is continued. If the predetermined number of times is exceeded in S606 (YES), it is determined that the barcode cannot be decoded by the code system, and the processing in the next S607 is executed.
そして、S607では、予めデコードするように設定されている全てのコード体系を左右両側から、バーコードのデコード処理を実行したか否かを判断し、まだ実行されていないデコード処理が残っている場合(NO)にはS601に戻る。全てのコード体系で左右からデコード処理を実行している場合(YES)には、S605で記憶されたラインデータの取得回数から尤度を判断して、最も尤度の高いデコード結果を出力する(S608)。 In S607, it is determined whether or not the barcode decoding process has been executed from both the left and right sides of all the code systems that are set to be decoded in advance, and there is a decoding process that has not been executed yet. In (NO), the process returns to S601. When decoding processing is executed from the left and right in all code systems (YES), the likelihood is determined from the number of line data acquisitions stored in S605, and the decoding result with the highest likelihood is output ( S608).
なお、上記では、各コード体系のデコード処理に要した読取線の本数を処理内容データとして、尤度算出部31Cがコード体系で記載されたことの尤度を判断しているが、下記では処理内容データを、図形要素の媒体における表示態様に従って決定されるデータとする場合について説明する。
In the above, the likelihood that the
デコード部31Aは、読取線からバー又はスペースの配置を読み取り、バー又はスペースの配置と、文字列を示すバー又はスペースの配列とを、各キャラクタ毎に対応付ける。この対応付けの際には、デコード部31Aは、まず、読取線から読み取られた各バー及び各スペースの種類を判断するための閾値を設定する。これにより、読取線から読み取られたバーのうち、閾値の幅を超えるバーと、閾値の幅を超えないバーとで、異なる種類の図形要素として認識されることとなる。この閾値は、各コード体系において所定の方法で決定されるものであるが、本実施形態におけるNW7のコード体系であれば、バーの種類が2種類であることから、各キャラクタにおける最も太いバーと最も細いバーとの幅の平均値を閾値として、各キャラクタごとに決定している。 The decoding unit 31A reads the arrangement of the bar or space from the reading line, and associates the arrangement of the bar or space with the arrangement of the bar or space indicating the character string for each character. In this association, the decoding unit 31A first sets a threshold value for determining the type of each bar and each space read from the reading line. As a result, among the bars read from the reading line, the bars exceeding the threshold width and the bars not exceeding the threshold width are recognized as different types of graphic elements. This threshold value is determined by a predetermined method in each code system. However, in the case of the NW7 code system in the present embodiment, since there are two types of bars, The average value of the width with the thinnest bar is set as a threshold value and determined for each character.
図7は、NW7のコード体系で右側から左側にデコードする場合の各キャラクタ毎に決定される閾値と(図7(a))、CODE128のコード体系で左側から右側にデコードする場合の各キャラクタ毎に決定される閾値とを示している(図7(b))。同図(a)に示されているNW7の閾値は、2種類のバーを判断するための閾値である。また、同図(b)に示されているCODE128の閾値は、4種類のバーのうちの一番細いバーと二番目に細いバーとを判断するための閾値である。 FIG. 7 shows threshold values determined for each character when decoding from the right side to the left side using the NW7 code system (FIG. 7A), and for each character when decoding from the left side to the right side using the CODE 128 code system. The thresholds determined are shown in FIG. 7 (b). The threshold value of NW7 shown in FIG. 5A is a threshold value for judging two types of bars. The threshold value of CODE 128 shown in FIG. 4B is a threshold value for determining the thinnest bar and the second thinnest bar among the four types of bars.
デコード内容記憶処理部31Bは、各コード体系でデコードする場合の各キャラクタ毎の閾値を、デコード部31Aによるデコード処理の過程で発生した処理内容データとして、デコード内容記憶部32Aに記憶させる。
The decode content storage processing unit 31B causes the decode
次に、尤度算出部31Cは、デコード内容記憶部32Aに記憶されている各キャラクタ毎の閾値から、当該閾値の標準偏差をばらつき量として求める。ここで、バーコードが本来記述されているコード体系でデコードする場合と、そのコード体系と異なるコード体系でデコードする場合とでは、各々のコード体系で用いられる一種類のバーとして認識されるバーの幅等のばらつき量は、一般的に後者のほうが大きくなる傾向にある。従って、尤度算出部31Cは、標準偏差の逆数を、各コート体系で記述されたことの尤度として算出する。なお、この閾値のばらつき量は、分散のような他の統計量であってもよいし、閾値のレンジのような値等のばらつきを表現する値であれば何でもよい。
Next, the
そして、出力部31Dは、NW7と比べて各キャラクタ毎の閾値の標準偏差が小さいために尤度が高いコード体系となるCODE128によるデコード結果を、記憶部32に出力する。
Then, the
なお、以上説明した実施形態では、各キャラクタごとに閾値を求めることとしているが、バーコード内の複数キャラクタをひとつの領域とした所定領域毎に閾値を求めることとしてもよい。また、上記では、ラインデータから求められるバー又スペースの幅に従って決定された閾値としているが、例えば少なくとも1種類の図形要素である各バーの幅の大きさ自体を、媒体に表示されたバーコードの表示態様に従って決定される値として、尤度算出部31Cがその値のばらつき量から尤度を求めることとしてもよい。
In the embodiment described above, the threshold value is obtained for each character. However, the threshold value may be obtained for each predetermined area where a plurality of characters in the barcode are one area. In the above description, the threshold is determined according to the width of the bar or space obtained from the line data. For example, the bar width displayed on the medium is the width of each bar, which is at least one type of graphic element. As a value determined according to the display mode, the
なお、デコード部31Aのデコード処理において複数の読取線からバー及びスペースの配置を読み取る場合には、いずれかひとつの読取線において各キャラクタ毎に求めた閾値をデコード内容記憶処理部31Bに記憶させることとしてもよいし、すべての読取線における閾値を記憶させてもよい。また、すべての読取線から求められる閾値の平均値を、閾値として記憶させることとしてもよい。 When reading the arrangement of bars and spaces from a plurality of reading lines in the decoding process of the decoding unit 31A, the decoding content storage processing unit 31B stores the threshold value obtained for each character on any one reading line. Alternatively, the threshold values for all the reading lines may be stored. Further, an average value of threshold values obtained from all the reading lines may be stored as the threshold value.
また図8は、本実施形態における制御部31の処理のフローの一例を示す図である。まず、初期設定として記憶部32に記憶されている複数のコード体系の中から、バーコード取得部33に取得されたバーコードをデコードするコード体系を設定する(S801)。次に、デコード部31AはS801で設定されたコード体系に従ってバーコードをデコードする(S802)。S803では、バーコードをデコードできたか否かを判断する。デコードできた場合(YES)には、バーコードの左右に所定幅のマージンが存在するか否かをさらに判断する(S804)。ここで、このようなバーコードの左右のマージンチェックを行うのは、バーコードの一部のみを誤ってデコードしている場合を、デコードができたものとして扱われるのを防ぐためである。左右のマージンが確認される場合(YES)には、制御部31はデコード結果を一時的に記憶部32に保存する(S805)。ここで、デコードに使用されたバーの種類を識別するためにキャラクタ毎に導出された閾値を、処理内容データとしてデコード内容記憶部32Aに保存する(S806)。さらに、デコード処理が終了するまでに設定した読取線の本数を、処理内容データとしてデコード内容記憶部32Aに保存する(S807)。
FIG. 8 is a diagram illustrating an example of a processing flow of the
S803でデコードできなかった場合(NO)、S804のマージンチェックで所定幅のマージンが存在しなかった場合(NO)、そしてS805等のステップでデコード結果等が記憶された場合には、S808で、初期設定されている全てのコード体系によるデコード処理を終了しているか否かを判断する。デコード処理が終了していないコード体系が存在する場合(NO)には、再びS801に戻り、その他のコード体系によるデコード処理等を行う。 If decoding is not possible in S803 (NO), if a margin of a predetermined width does not exist in the margin check in S804 (NO), and if a decoding result or the like is stored in step S805 or the like, in S808, It is determined whether or not the decoding process for all the initially set code systems has been completed. If there is a code system for which the decoding process has not been completed (NO), the process returns to S801 again to perform a decoding process using another code system.
S808で全てのコード体系によるデコード処理が終了していると判断される場合(YES)には、まず、複数のコード体系によってデコードされているか否かを判断する(S809)。ひとつのコード体系のみでデコードされている場合(NO)には、出力部31Dが、当該コード体系によるデコード結果を記憶部32に出力する(S815)。しかし、複数のコード体系でデコードできた場合(YES)には、いずれのコード体系によるデコード結果を、バーコードが本来示している内容であるかを判断する必要がある。そこで、S806やS807で記憶されたデコード処理内容データから、デコード結果を得るべきコード体系を判断する(S810等)。
If it is determined in S808 that the decoding process for all the code systems has been completed (YES), it is first determined whether or not the decoding is performed using a plurality of code systems (S809). When the decoding is performed with only one code system (NO), the
まずS810で、デコードされた複数のコード体系において、各キャラクタ毎に求められたバーの種類を識別するための閾値の分散を求める。そして、求められた分散値のうち最も小さい値が、他の分散値に対して一定以上の差がある場合(YES)に、分散の小さいコード体系に決定して(S811)、そのコード体系によるデコード結果を記憶部32に出力する(S815)。 First, in S810, dispersion of threshold values for identifying the type of bar obtained for each character in a plurality of decoded code systems is obtained. If the smallest value among the obtained variance values is more than a certain difference from other variance values (YES), a code system with a small variance is determined (S811), and the code system depends on the code system. The decoding result is output to the storage unit 32 (S815).
また、分散値の比較が困難である場合(NO)には、デコード完了までに要した読取線の本数を比較する(S812)。そして、求められた読取線の本数のうち最も少ない本数が、他に対して一定以上の差がある場合(YES)に、読取線の本数が最も少ないコード体系に決定して(S813)、そのコード体系によるデコード結果を記憶部32に出力する(S815)。さらに、読取線の本数を比較したにも関わらずコード体系を決定できない場合(NO)には、デコードできた複数のコード体系のうち、コード体系の特性上、誤認識が最も発生しづらいものに決定することとして(S814)、デコード結果を記憶部32に出力する(S815)。 If it is difficult to compare the variance values (NO), the number of read lines required until the decoding is completed is compared (S812). Then, when the smallest number of the read lines is more than a certain difference from others (YES), the code system having the smallest number of read lines is determined (S813). The decoding result based on the code system is output to the storage unit 32 (S815). Furthermore, if the code system cannot be determined despite the comparison of the number of read lines (NO), among the multiple code systems that can be decoded, the one with the least error recognition due to the characteristics of the code system. As a determination (S814), the decoding result is output to the storage unit 32 (S815).
なお、上記の実施例では、デコード部31Aがバーコード画像において読取線を設定し、ラインデータを取得して、デコード処理を行うこととしているが、バーコード画像を取得せずに、デコード部31Aが、媒体に表示されているバーコードに読取線を設定して直接ラインデータを取得してデコード処理を行うこととしてもよい。 In the above embodiment, the decoding unit 31A sets the reading line in the barcode image, acquires the line data, and performs the decoding process. However, the decoding unit 31A does not acquire the barcode image. However, it is also possible to set the reading line to the barcode displayed on the medium and directly acquire the line data to perform the decoding process.
なお、本発明における技術的思想は、バーコードのみに限定されることはなく、複数種類の図形要素の配列からなるコードであればよく、所謂QR(Quick Response)コードのような2次元コードであってもよいし、カラーコードであってもよい。 The technical idea of the present invention is not limited to a bar code, but may be a code composed of an array of a plurality of types of graphic elements. It is a two-dimensional code such as a so-called QR (Quick Response) code. There may be a color code.
3 バーコード認識装置、31 制御部、31A デコード部、31B デコード内容記憶処理部、31C 尤度算出部、31D 出力部、32 記憶部、32A デコード内容記憶部、33 バーコード取得部、34 通信部。 3 Bar code recognition device, 31 control unit, 31A decoding unit, 31B decoded content storage processing unit, 31C likelihood calculation unit, 31D output unit, 32 storage unit, 32A decoded content storage unit, 33 barcode acquisition unit, 34 communication unit .
Claims (7)
前記各コード体系について、デコード中にデコード処理の内容の少なくとも一部を示す処理内容データを記憶させる記憶手段と、
前記処理内容データに従って、前記各コード体系で記述されたことの尤度を算出する尤度算出手段と、
前記尤度に従って、いずれかのコード体系でのデコード結果を出力する出力手段と、
を含むことを特徴とするコード認識装置。 A decoding means comprising an array of a plurality of types of graphic elements, and performing a decoding process on a code represented on the medium by a plurality of code systems each using a predetermined type of graphic elements;
For each code system, storage means for storing processing content data indicating at least part of the content of decoding processing during decoding;
Likelihood calculating means for calculating the likelihood of being described in each of the code systems according to the processing content data;
Output means for outputting a decoding result in any of the code systems according to the likelihood;
A code recognition device comprising:
前記処理内容データは、前記各コード体系が用いる少なくとも1つの種類の図形要素であると認識された図形要素の前記媒体における表示態様に従って決定される値であって、
前記尤度算出手段は、前記値のばらつきが小さくなるほど前記尤度が高くなるように前記尤度を算出する、
ことを特徴とするコード認識装置。 The code recognition device according to claim 1.
The processing content data is a value determined according to a display mode in the medium of a graphic element recognized as at least one type of graphic element used by each code system,
The likelihood calculating means calculates the likelihood so that the likelihood increases as the variation of the value decreases.
A code recognition apparatus characterized by the above.
前記媒体に表されたコードが、複数種類の幅のバー又はスペースの配列からなるバーコードであって、
前記処理内容データは、前記各コード体系が用いる少なくとも1つの種類のバー又はスペースであると認識されたバー又はスペースの前記媒体に表された前記バーコードにおける幅に従って決定される値である、
ことを特徴とするコード認識装置。 The code recognition device according to claim 2,
The code represented on the medium is a bar code composed of an array of multiple types of width bars or spaces,
The processing content data is a value determined according to a width of the bar or space represented on the medium of the bar or space recognized as at least one type of bar or space used by each code system,
A code recognition apparatus characterized by the above.
前記値が、前記バー又はスペースの前記媒体に表された前記バーコードにおける幅に従って、前記バーコードの所定領域毎に決定される、前記バーコードのバー又はスペースの幅の種類を判定するための閾値を示す、
ことを特徴とするコード認識装置。 The code recognition device according to claim 3,
The value is determined for each predetermined region of the barcode according to the width of the barcode represented on the medium of the bar or space, for determining the type of width of the bar or space of the barcode Indicating the threshold,
A code recognition apparatus characterized by the above.
前記処理内容データは、前記コードをデコードするために要した演算の量を示し、
前記尤度算出手段は、前記演算の量が少なくなるほど前記尤度が高くなるように前記尤度を算出する、
ことを特徴とするコード認識装置。 The code recognition device according to claim 1.
The processing content data indicates the amount of calculation required to decode the code,
The likelihood calculating means calculates the likelihood so that the likelihood increases as the amount of the operation decreases.
A code recognition apparatus characterized by the above.
前記媒体に表されたコードが、複数種類の幅のバー又はスペースの配列からなるバーコードであって、
前記デコード手段は、前記バーコードにおける複数の読取線から読み取られるバー及びスペースの配置に基づいてデコード処理を施し、
前記演算の量は、前記バーコードをデコードするまでに要した前記読取線の本数に従って導出される、
ことを特徴とするコード認識装置。 The code recognition apparatus according to claim 5.
The code represented on the medium is a bar code composed of an array of multiple types of width bars or spaces,
The decoding means performs a decoding process based on the arrangement of bars and spaces read from a plurality of reading lines in the barcode,
The amount of computation is derived according to the number of read lines required to decode the barcode.
A code recognition apparatus characterized by the above.
前記各コード体系について、デコード中にデコード処理の内容の少なくとも一部を示すデータを記憶手段に記憶させる記憶ステップと、
前記データに従って、前記各コード体系で記述されたことの尤度を算出する尤度算出ステップと、
前記尤度に従って、いずれかのコード体系でのデコード結果を出力する出力ステップと、
をコンピュータに実行させるためのプログラム。 A decoding step consisting of an array of a plurality of types of graphic elements, and performing a decoding process on a code represented on the medium with a plurality of code systems each using a predetermined type of graphic elements;
For each code system, a storage step of storing in the storage means data indicating at least part of the content of the decoding process during decoding;
A likelihood calculating step for calculating the likelihood of being described in each of the code systems according to the data;
An output step of outputting a decoding result in any of the code systems according to the likelihood;
A program that causes a computer to execute.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007328054A JP5092732B2 (en) | 2007-12-19 | 2007-12-19 | Code recognition apparatus and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007328054A JP5092732B2 (en) | 2007-12-19 | 2007-12-19 | Code recognition apparatus and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009151504A true JP2009151504A (en) | 2009-07-09 |
JP5092732B2 JP5092732B2 (en) | 2012-12-05 |
Family
ID=40920609
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007328054A Active JP5092732B2 (en) | 2007-12-19 | 2007-12-19 | Code recognition apparatus and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5092732B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190071780A (en) * | 2016-10-24 | 2019-06-24 | 알리바바 그룹 홀딩 리미티드 | Method and apparatus for barcode identification |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232371A (en) * | 1998-02-13 | 1999-08-27 | Matsushita Electric Ind Co Ltd | Bar code reader, bar code reading method and recording medium |
JP2000251011A (en) * | 1999-03-01 | 2000-09-14 | Toshiba Corp | Bar code recognizing device and slip recognizing device |
JP2001043308A (en) * | 1999-07-27 | 2001-02-16 | Hitachi Ltd | Bar code reading method and bar code reading system |
-
2007
- 2007-12-19 JP JP2007328054A patent/JP5092732B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11232371A (en) * | 1998-02-13 | 1999-08-27 | Matsushita Electric Ind Co Ltd | Bar code reader, bar code reading method and recording medium |
JP2000251011A (en) * | 1999-03-01 | 2000-09-14 | Toshiba Corp | Bar code recognizing device and slip recognizing device |
JP2001043308A (en) * | 1999-07-27 | 2001-02-16 | Hitachi Ltd | Bar code reading method and bar code reading system |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190071780A (en) * | 2016-10-24 | 2019-06-24 | 알리바바 그룹 홀딩 리미티드 | Method and apparatus for barcode identification |
EP3531335A4 (en) * | 2016-10-24 | 2019-08-28 | Alibaba Group Holding Limited | Barcode identification method and apparatus |
US10726223B2 (en) | 2016-10-24 | 2020-07-28 | Alibaba Group Holding Limited | Method and apparatus for barcode identifcation |
KR102194567B1 (en) | 2016-10-24 | 2020-12-28 | 어드밴스드 뉴 테크놀로지스 씨오., 엘티디. | Method and apparatus for barcode identification |
Also Published As
Publication number | Publication date |
---|---|
JP5092732B2 (en) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6786412B2 (en) | Two-dimensional code reading method, two-dimensional code reading program, recording medium with two-dimensional code reading program, two-dimensional code reading device, digital camera and portable terminal with digital camera | |
US9177238B2 (en) | Techniques for generating customized two-dimensional barcodes | |
US8196836B2 (en) | Image processing apparatus, image processing method and computer-readable medium | |
EP3486839B1 (en) | Two-dimensional-code analysis system | |
KR20150024946A (en) | Information obtaining method and apparatus | |
CN116739022B (en) | Decoding method and device for bar code image and electronic equipment | |
JP5092732B2 (en) | Code recognition apparatus and program | |
US9704006B2 (en) | Image processing apparatus | |
US10176174B2 (en) | Generating a regressive information object | |
JP2020160961A (en) | Two-dimensional code reading device, computer program, and two-dimensional code | |
JP2008021009A (en) | Bar code recognition device, method and program | |
JP5341951B2 (en) | Code reader and program | |
JP5169052B2 (en) | Information reading system and program | |
JP4905767B2 (en) | Two-dimensional code detection system and two-dimensional code detection program | |
JP2010182219A (en) | Image processing apparatus | |
JP5592234B2 (en) | Two-dimensional code generation device, two-dimensional code reading device, two-dimensional code, two-dimensional code generation method, two-dimensional code reading method, and program | |
JP5534053B2 (en) | Code reader and program | |
JP5115124B2 (en) | Bar code reader and program | |
US10621481B2 (en) | Generating a regressive information object | |
JP2011076359A (en) | Printer driver, print control method, and printer system | |
JP2005165949A (en) | Bar code reading method and bar code reading device | |
JP6802107B2 (en) | Information processing equipment, methods and programs | |
JP2015232873A (en) | Two-dimensional code, analysis system of two-dimensional code, and production system of two-dimensional code | |
US9451123B2 (en) | Image processing apparatus | |
JP5176940B2 (en) | Image processing apparatus and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090825 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120224 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120321 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120518 |
|
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: 20120821 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120903 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5092732 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150928 Year of fee payment: 3 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |