JP3115003B2 - モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置 - Google Patents

モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置

Info

Publication number
JP3115003B2
JP3115003B2 JP10525558A JP52555898A JP3115003B2 JP 3115003 B2 JP3115003 B2 JP 3115003B2 JP 10525558 A JP10525558 A JP 10525558A JP 52555898 A JP52555898 A JP 52555898A JP 3115003 B2 JP3115003 B2 JP 3115003B2
Authority
JP
Japan
Prior art keywords
character
bar
width
space
module width
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
JP10525558A
Other languages
English (en)
Other versions
JP2000509537A (ja
Inventor
レイ,ミン
Original Assignee
ユナイテッド パーセル サービス オブ アメリカ,インコーポレイテッド
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 ユナイテッド パーセル サービス オブ アメリカ,インコーポレイテッド filed Critical ユナイテッド パーセル サービス オブ アメリカ,インコーポレイテッド
Publication of JP2000509537A publication Critical patent/JP2000509537A/ja
Application granted granted Critical
Publication of JP3115003B2 publication Critical patent/JP3115003B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1486Setting the threshold-width for bar codes to be decoded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Character Input (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Error Detection And Correction (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Image Processing (AREA)

Description

【発明の詳細な説明】 技術分野 本発明は、バーコード記号を解読し、特にバーとスペ
ースが、公称上、基本モジュール幅に対して、少なくと
も1つの特定の一定比率をなしているバーコード記号を
解読する改良された方法および装置である。
背景技術 バーコードの解読は、レーザ・スキャナ、すなわち一
次元イメージセンサから直接に収集されたか、あるいは
撮像素子の二次元イメージからサンプリングされた一次
元信号を取って、その信号を解読して、バーコード記号
の情報を取り出す。一般に、バーコードの情報は、一連
の英数字または特殊文字である。バーコードは、一連の
文字から成り、それぞれの文字を、バーコードに現れる
順に解読することで、解読される。解読がうまくいくか
どうかは、もっぱら個々の文字の解読が正しいかどうか
による。コード128などの一部のバーコード記号表示法
は、ここに参考のために取り入れられた米国特許第5,32
9,105号に記載されているものであって、バーコード記
号の中にコード化されたチェックサム文字を持ち、この
文字を用いて、バーコード記号の解読ミスの出現を検出
する。このような検査は、すべての文字が解読された後
で行われる。
現在は、信号が適度に良質である時に、ほとんどの解
読法はうまくゆく。とはいえ、信号が、小さい信号対雑
音比または低い分解能を持つか、あるいはノイズで汚損
され、走査角度のためにひずむ場合、現在の方法では、
ひずんだ信号区分の中の文字(1つ、または複数)を解
読できなくなる。このような障害に対する改善は、既存
の信号に対処するのではなく、バーコード用に新規の信
号を収集(またはサンプリング)することで、行われ
る。これらの従来技術は、ハンドヘルド・スキャナを使
用する場合には、重大な問題は起こさなかった。なぜな
ら、第2の走査を要求し、受理することが簡単であるか
らである。しかしながら、例えばオーバ・ザ・ベルト形
バーコードスキャナを用いる連続処理では、たとえ何度
も、バーコード記号をサンプリングすることが可能であ
っても、この技術を、異なる信号に何度も適用したり、
またはこれらの信号をいっしょに組み合わせると、バー
コード記号の解読の成功は保証されない。
バーコードは、一般に一連の濃い要素と薄い要素であ
って、これらの要素を、以下「バー」と「スペース」と
呼ぶ。さらに、ほとんどの種類のバーコードの各要素の
幅は、ここでは「単位モジュール」と呼ばれる基本(通
常、最小限の)幅に対して、公称上、いくつかの一定比
率になっている。いくつかの種類のバーコードの仕様で
は、単位モジュールの幅は、要素のタイプで異なる場合
がある。すなわち、バー用の単位モジュールの幅は、ス
ペース用の単位モジュールの幅とは異なる。しばしば、
所定の種類のバーコードでは、バーコード仕様は、文字
のすべてが、同じ数の単位モジュールを持つように求め
る。
現在の多くの解読法は、2つの要素幅、すなわち「広
い」要素と「狭い」要素だけから成るバーコード用に設
計されている。この場合には、「狭い」要素は、通常、
その要素の単位モジュールに一致し、また「広い」要素
の幅は、単位モジュールの幅の或る倍数である。これら
の種類のバーコードに加えて、要素幅が3つ以上あるさ
らに複雑な種類のバーコードがある。例えば、コード12
8は、4つの異なる要素幅を有する。特にバーコード信
号が、ノイズをともなう、または他のやり方で劣化する
か、あるいは、バーコードが汚れ、光沢紙上に印刷さ
れ、引き裂けられ、または刷り重ねられるか、バーコー
ドに対して、ある角度に傾いて読み取られる時には、ど
んなバー解読技術を用いても、複数の幅は、正確に識別
することがさらに困難になる。
従来技術では、異なるタイプの問題を、異なるやり方
で処理する。デジタル信号にいくらかノイズをともなう
データがある場合には、文字は、解読の結果と、定義済
みコード化パターンがまったく一致しないという意味で
解読できない場合がある(ここでは、「解読不能文字」
と呼ばれる)。このような事態が起こる場合には、従来
技術は、直ちにエラーを認識するが、その後、この信号
を廃棄し、新規信号を収集しようとする。さらに重大な
問題は、最初にコード化されたものに一致しないパター
ンに、文字が解読される場合があることである(ここで
は、「解読ミスの文字」と呼ばれる)。このエラーは、
すべての文字の終了時に、チェックサム(もしあれば)
を計算するまで、従来技術では検出できない。チェック
サムがなければ、未検出の解読ミスが発生する。チェッ
クサムがある場合には、解読ミスを検出するまで、文字
の全部を処理する時間が無駄になる。上述のように、通
常の解決法は、別の走査信号を試すことである。この問
題が、新規信号でも続く場合、(オーバ・ザ・ベルト形
の走査などの多数の用途では、これが通常であるが)バ
ーコード自体、複数の走査に関係なく、解読できない。
エラーが検出される場合にチェックサム解析と再走査
に費やされる時間は、自動手段によるパッケージ上のラ
ベルの読取りなどの高速連続作業に対しては、重大な問
題である。このタイプの用途では、パッケージが、コン
ベヤ・ベルトに載って500フィート/分までの速度で移
動していることもあり、パッケージ上のバーコードをリ
アルタイムで読み取って(通常、コンベヤ・ベルトの真
上に搭載された固定リーダにより)、コンベヤシステム
上で自動経路指定ができるようにしなければならない場
合には、新規の方法は、前述のコード128を用いて、効
果的な高速自動コンベヤ振り分けに関して、総読取り速
度だけでなく、1パス読取り速度も著しく向上させるこ
とが判明した。この方法は、ほとんどのバーコード信号
表示法に等しく適用できるが、PDF417などだけでなく、
UPC/EANのコード49、コード93、コード16Kなどの複数の
幅を有するバードードにも、特に有用である。
バーコード解析において、平均値と幅の比率を使用す
るいくつかの試みが前述の文献に記載されている。例え
ば、1994年7月19日にカネコに交付された「バーコード
リーダと、バーコードリーダを用いるゲーム装置」と題
する米国特許第5,331,141号は、バーコードが読取りヘ
ッドを滑るように通過する時に、黒反射度または白反射
度の時間間隔を測定することにより、カードからバーコ
ードを読み取る装置を開示している。この特許は、第10
欄の59行〜第11欄の19行、および図10に、「ガードバー
において白バーの幅に対する黒バーの幅」(第10欄の60
〜61行)の比率αを計算する方法を開示している。比率
αは、一回計算し、次に、すべての白バーに比率αを掛
けて、これらの幅を正規化し、バーコード・データ中の
バーのそれぞれの広がりまたは縮み(幅のひずみ)につ
いて補正する。とはいえ、この特許は、この明細書に開
示された適応技術はどれも開示してなく、またチェック
サムの前に比率解析で解読ミスの文字を認識すること
で、時間節約に関して教示していない。
1995年2月28日にワタナベ等に交付された「バーコー
ドを読み取る方法および装置」と題する米国特許第5,39
3,968号は、あるタイプの比率解析を用いて、解読時に
ありそうなエラーを検出するバーコード・リーダを開示
している。この特許の第12欄の54行〜第13欄の32行に述
べられているように、バーコード中の連続する文字に関
する文字長さ比率を計算して、バーコードのひずみ量を
測定する。この文字長さ比率の差が、所定の許容量(こ
の特許では±15%が提案される)を超える場合には、バ
ーコードを再び読み取る。この明細書で教示される通り
には、平均化技術が使用されず、また、この明細書に開
示される通りの適応技術もまったくない。さらに、この
バーコードを再び読み取らずに既存のバーコード・デー
タを補正しようともしない。
従って、3つ以上のモジュール幅を用いる複雑なバー
コードをうまく解読することができ、またラベル情報に
よりパッケージを振り分けるような最新の連続プロセス
に対して、記号を解読する速度で作動することのできる
方法および装置が必要である。
発明の概要 本発明は、3つ以上のモジュール幅を用いる複雑なバ
ーコードをうまく解読するため、また解読ミスの文字を
検出して、これらの文字を再度解読するため、さらにバ
ーコードを再走査する必要もなく従来の解読法を用いて
解読不能なさらに多くの文字をうまく解読するための改
良されたシステムおよび方法を提供しようとする。
本発明により、この目的は、スタート文字またはスト
ップ文字に基づく平均モジュール幅を、解読文字の平均
モジュール幅と比較して、この文字が受入可能に解読さ
れたかどうか判定し、さらに、要素幅を適切な平均モジ
ュール幅で割って得られた一連の整数に解読法を適用し
て解読ミスの文字を再度解読することにより達成され
る。
一般に説明すると、本発明は、スタートコードとスト
ップコードを含むタイプのバーコードで、前記バーコー
ドの各文字がバーとスペースを有する一連の要素で表さ
れ、このような各要素の幅が単位バー・モジュール幅ま
たは単位スペース・モジュール幅の倍数であるバーコー
ドの文字を解読するシステムおよび方法であって、 (a)バーコードを走査して、走査で遭遇する各要素の
幅に、ある値を割り当てるステップと、 (b)バーコードのスタート文字またはストップ文字を
解読するステップと、 (c)スタート文字またはストップ文字のバー幅の合計
を、スタート文字またはストップ文字の中のバー単位モ
ジュールの既知数で割って、第1の平均単位バー・モジ
ュール幅を計算するステップと、 (d)スタート文字またはストップ文字のスペース幅の
合計を、スタート文字またはストップ文字の中のスペー
ス単位モジュールの既知数で割って、第1の平均単位ス
ペース・モジュール幅を計算するステップと (e)バーコードの第2の文字を解読するために試行す
るステップと、 (f)前記第2の文字を解読するための試行が失敗の場
合は、解読不能として、前記第2の文字にマークを付け
るステップと、 (g)前記第2の文字を解読するための試行が成功の場
合は、前記第2の文字の前記バー幅の合計を、前記第2
の文字の中のバー単位モジュールの既知数で割って、第
2の平均単位バー・モジュール幅を計算し、ステップ
(h)〜(j)を続行するステップと、 (h)前記第2の文字の前記スペース幅の合計を、前記
第2の文字の中のスペース単位モジュールの既知数で割
って、第2の平均単位スペース・モジュール幅を計算す
るステップと、 (i)前記第1の平均単位バー・モジュール幅に対する
前記第2の平均単位バー・モジュール幅の比率が1:1の
所定の許容差内にあり、前記第1の平均単位スペース・
モジュール幅に対する前記第2の平均単位スペース・モ
ジュール幅の比率が1:1の所定の許容差内にある場合
は、前記第2の文字の解読を受理するステップと、 (j)前記比率が、前記所定の許容差外にある場合は、
解読ミスとして前記第2の文字にマークを付けるステッ
プと、 を有するシステムおよび方法を提供する。
次に、バーコード中の他の文字を解読し、受理された
文字に基づいて単位モジュール幅の移動平均を計算する
ことができる。さらに、解読不能または解読ミスとして
マークを付けた文字は、各バー要素の幅を最終移動平均
の単位バー・モジュール幅で割って、また各スペース要
素の幅を最終移動平均の単位スペース・モジュール幅で
割って一連の商を得ることにより;得られた商を、もっ
とも近い整数に丸めることにより;この一連の整数を解
読して1つの新規文字を得ることにより;この1文字の
バー幅の合計を、この新規文字中のバー単位モジュール
の既知数で割って新規文字の平均単位バー・モジュール
幅を計算することにより;この1文字のスペース幅の合
計を、この新規文字中のスペース単位モジュールの既知
数で割って新規文字の平均単位スペース・モジュール幅
を計算することにより;最終移動平均の単位バー・モジ
ュール幅に対する新規文字の平均単位バー・モジュール
幅の比率が1:1の所定の許容差内にあり、また最終平均
の単位スペース・モジュール幅に対する新規文字の平均
単位スペース・モジュール幅の比率が1:1の所定の許容
差内にある場合には、新規文字として、この1文字の解
読を受理することにより、バーコードを再走査しないで
処理することができる。
バーコードのエッジ間に不良部位または損傷部位があ
る場合には、本発明は、不良部位に向かってバーコード
の各端から始めて解読する方法を提供する。
本発明によるシステムの一実施例の主な構成装置は、
信号収集装置、一般にCCDカメラまたはレーザスキャ
ナ、信号処理モジュール(A/Dコンバータ、およびCPUと
メモリから成る)、端末や、他の装置との通信リンクな
どの出力装置である。この信号処理モジュールは、信号
収集装置からのアナログ信号をデジタル形式に変換し、
バーおよびスペースの幅が、CPUで測定される。これら
の幅を表す出力(一般に数字)は、本発明の方法に用い
られ、この方法は、解読用に当該プロセッサにプログラ
ムされている。この解読結果は、個々の用途に応じて、
端末、またはコントローラに出力される。
本発明のシステムは、周知の種類のバーコードを解読
する一方法を実行するための作動であり、ここでは、バ
ーコードが、ある順序のいくつかの文字から成り、それ
らの各文字は、一連の交互するバー要素とスペース要素
で表される。この一連の要素中の各要素の幅は、この要
素タイプに対応する単位モジュール幅に対して、複数の
一定比率のうちの1つをなしており、この複数の一定比
率は、特定の種類のバーコードを解読することにより決
定される。これらの方法のステップは、さらに詳細に述
べると、(a)バーコードを走査して、走査で遭遇する
各要素の幅に、ある値を割り当てるステップと、(b)
スタート/ストップ文字を解読することにより、特定の
種類のバーコードを決定するステップと、(c)走査方
向に応じてスタート文字またはストップ文字から、各要
素タイプに対して平均バーコード・モジュール幅を決定
するステップと、(d)これらの幅値を、バーコード中
の文字の順序に対応する順序セットに分類するステップ
と、(e)順番が次の順序セット中の幅値を、特定の種
類のバーコード用の標準文字値のテーブルと比較するス
テップと、(f)(i)一致が認められない場合には、
解読不能として、この順序セットにマークを付けるステ
ップと、または(f)(ii)一致が認められる場合に
は、その一致文字の幅値に比率解析を受けさせ、またこ
の比率解析がうまくいかない場合には、解読ミスとし
て、その順序セットにマークを付け、さらにこの比率解
析がうまくいく場合には、各要素タイプに対応する平均
単位モジュール幅を更新するステップと、(g)最後の
文字を処理するまで、上記のステップ(f)を繰り返す
ステップと、(h)マーク付き順序セットを、平均単位
モジュール幅を用いて解読しようとするステップ、とし
て説明できる。
本発明は、適応技術を用いて、バーコードの文字解読
の精度、速度、効率を向上させる。
本発明は、チェックサム解析によらずに、文字の解読
ミスを補正することができる。
本発明は、文字の解読ミスをすばやく識別して、バー
コードを再走査する必要もなく、そのコードミスを正し
く解読することができる。
本発明は、読み取られるバーコードのタイプの仕様を
用いて、文字セット中の要素の種類を監視し、解読文字
が、適正な数の要素、適正な数の各タイプの要素、適正
な数の単位モジュール幅を確実に持てるようにしてい
る。
本発明の技術は、バーコード走査信号を徹底的に処理
し、しかし、その仕様と、解読時の信号処理の知識を利
用している。正規の信号では、本発明の技術は、基準解
読技術と同じになる場合がある。しかしながら、信号の
品質が低い場合には、本発明は、余分の処理を最小量に
抑えて、解読処理を大幅に向上させる。
本発明は、解読ミスした文字を識別し、適応技術を用
いて、以前に標準方法で解読不能であった、または解読
ミスした文字を解読し、それにより、従来技術と比較し
て解読率を向上させる。この解読率は、新規信号に対し
てバーコードを再走査する必要なく向上し、それによっ
て、本発明は、高速解読作業、または1パス解読作業に
特に有用となる。
図面の簡単な説明 図1は、スタート文字から始まって、チェックサムで
終わる、バーコードを解読する全方法を示した本発明の
一実施例の流れ図である。
図2は、本発明の再解読概念を示した本発明の一実施
例の流れ図である。
図3は、バーコードの2つの断片をまとめることので
きるように、本発明の利用法を図解した本発明の一実施
例の流れ図である。
図4は、本発明の一実施例の主な構成装置のブロック
図である。
図5は、コード128のバーコード(従来技術)用のバ
ーコードのコード化パターンのテーブルの一部である。
詳細な説明 図1を参照して、本発明の方法の一実施例が、その全
体の流れに関して説明される。最初に、この方法は、処
理しようとするバーコードの個々のタイプに利用できる
周知の解読アルゴリズムを用いて、文字を解読する。ブ
ロック1でスタート文字が検出されると、解読が開始す
る。基準解読アルゴリズムを用いてスタート文字が解読
される場合には、その成功が、ブロック2の中で宣言さ
れ、この処理はブロック3に進む。スタート文字が見つ
けられない場合には、この処理は、ブロック14に進み、
ここで、本発明は、新規走査、すなわちバーコード記号
を表す新規信号を得る。本質的には、ブロック14は、こ
の方法が、この情報を有するバーコードを解読できない
という宣言となる。
ブロック3に戻ると、バーコードの中に、1モジュー
ルのバーと1モジュールのスペースの移動平均幅の初期
推定値がある。(1モジュールのバーは、時々ここでは
「1Xバー」と略記され、また1モジュールのスペース
は、時々ここでは「1Xスペース」と略記される)。次
に、ブロック4から文字単位のループが始まり、このル
ープは次の文字を解読することになっている。当初、次
の文字は、スタート文字に続く文字である。この解読技
術も、処理しようとするバーコードの個々のタイプに利
用できる基準解読アルゴリズムを使用している。この文
字が、ブロック5において、利用できる技術を用いてう
まく解読されたかどうか判定が行われる。この文字がう
まく解読された場合には、本発明はブロック6に続く。
利用できる技術が、この文字を解読できない場合には、
ブロック9において解読不能として、この文字にマーク
を付けて、処理がブロック4に戻って、次の文字を解読
する。
ここで、ブロック6に戻って、うまく解読された文字
のバーとスペースの平均幅を計算する。ブロック7で
は、バーの平均幅は、前述の移動1Xバー幅で割って、バ
ーの比率を得る。同様に、スペースの比率を計算する。
この文字の2つの比率が、将来の使用のために保存され
る。1X幅は、文字間でずれてはならないから、この比率
は、通常では、1に近い。ブロック8では、この比率を
チェックして、これが、ある百分率しきい値(例えば、
1からの偏差の30%)内にあるかどうか確かめる。すな
わち、適切な比率は、0.7と1.3の間の値を取ること。こ
の比率が適切でなければ、解読ミスの文字として、この
文字にマークを付けて、処理をブロック9を経てブロッ
ク4に戻して、次の文字を解読する。しかしながら、ブ
ロック8において、この比率が適切である場合には、こ
の文字の1X幅を用いて、バーコード中の1Xバーと1Xスペ
ースに対して当該プログラムで保たれている移動平均幅
を更新する。次に、テストを行って、最後の文字が処理
されているかどうか確かめ、もし処理されていなけれ
ば、ブロック4に戻して、次の文字を解読する。
バーコードのすべての文字が処理されると、この移動
平均幅は総平均幅となり、これは解読文字に基づく推定
値である。次に、解読不能または解読ミスとしてマーク
の付けられた文字のすべてが、ブロック12において再解
読される。この処理は、図2でさらに説明される。次
に、処理がもとに戻って、再解読処理後も引き続き解読
不能な文字がいくつかあるかどうか確かめる。もし解読
不能な文字があれば、処理がブロック14に移り、そこで
は、全面的にうまくいかなかったことを宣言し、この方
法がスタート文字を検出できなかった場合に実行された
ように、新規信号を得る。一方、解読不能は文字が残っ
ていない場合には、そのチェックサムを検証して、その
結果を出力する。
ここで、図2に移ると、本発明の一実施例について、
マーク付き文字を再解読するための全体の流れが図示さ
れる。すべての文字の解読を行って、解読不能か、解読
ミスのいずれかとして、それらの文字のいくつかにマー
クを付けた後で、この処理に入る。マークの付けられた
前記文字のそれぞれに対して、図2の処理を実行する。
図2のブロック1での第1のステップは、マーク付き文
字のデータを得ることであり、このデータは、バーとス
ペースの幅である。次に、ブロック2では、モジュール
の数と、モジュールの数の信頼度を計算する。ブロック
3では、解読しようとするバーコードの特定タイプの仕
様に対して、正確な数のモジュールが計算されたかどう
かに関してテストを行う。もしその通りであれば、処理
はブロック9に進む。もしそうでなければ、処理はブロ
ック4に進み、チェックを行って、正確な数のモジュー
ルを得るために、どのバーまたはスペースを調整する必
要があるのか確かめる。これは、ブロック5で処理する
ことにより行われ、ここでは、信頼度が調整され、また
ブロック6では、最後にバー幅またはスペース幅の少な
くとも1つのモジュール数を調整する。
バーコード記号データ上の要素の少なくとも1つのモ
ジュール数を調整した後で、このような調整により、バ
ーコードの文字に対して、正確な数のモジュールがうま
く提供されたかどうかついて、ブロック7でテストを行
う。もしその通りであれば、処理ブロック9に進む。も
しそうでなければ、処理はブロック8に進み、そこで
は、再解読できないことを知らせ、以前に使えた文字の
最適推定値を保存する。正確な数のモジュールを有する
ブロック9では、テーブル検索処理を行って、モジュー
ルのコード化パターンに対応する文字があるかどうかテ
ストする。ブロック10では、テストが失敗した場合に、
処理はブロック8に進み、そこで失敗を宣言する。成功
した場合で、かつ、ブロック11でテストされる通り、以
前に解読不能として、この文字にマークが付けられてい
る場合には、処理はブロック14に進み、そこで、新たに
解読された文字が受理される。ブロック11でテストされ
る通り、解読ミスとして、この文字にマークが付けられ
る場合には、処理はブロック12に進み、そこで、総平均
幅に対する当該文字の幅の比率を計算する。次に、この
比率を、当該文字の第1の解読の試みで保存された比率
と比較し、これらの比率が、1により近いという意味
で、より適切であるかどうか確かめる。これらの比率
が、より適切でなければ、失敗を宣言し、処理はブロッ
ク8に進む。より適切な比率であると宣言された場合に
は、処理ブロック14に進み、そこで、成功したことを宣
言する。解読された新規の文字を受理する。このような
受理の際、正確に解読された文字が、第1の解読の試み
において解読ミスのものとして、誤って分類された場合
でも、再解読された文字が、より適切な比率係数を有す
る場合を除き、この解読ミスの文字は、この再解読され
た文字には代えられない。このことはまた、比率解析用
の前述の百分率しきい値が、悪影響を起こすことなく、
様々な値に設定できることを示唆している。解読ミスが
起こりやすい信号では、百分率しきい値は、これを、1
から大きくずれないように、選ぶことができる。
双方向解読可能なバーコードでは、図1の処理はま
た、ストップ文字から始めて、次の文字に進むことがで
きる。
本発明の方法は、すべての文字がコード128の記号表
示法に基づいている一連の例で、さらに説明できる。コ
ード128の文字は、1文字当り6つの要素(交互するバ
ーとスペース、それぞれ3つ)を持ち、これらのモジュ
ール幅の合計が、それぞれの文字について、11に指定さ
れる。コード128の記号表示法についての標準解読法
は、米国特許第5,329,105号(「105特許」)に開示され
ている。
例1 この例のバーコード信号を走査した後、1文字を形成
するバーとスペースの幅は、一連の順序文字セットで表
され、以下の通り、各順序文字セットは6つの数字を有
し、また各数字は、対応する要素幅の大きさである。
「105特許」は、「エッジ・ツー・エッジ」技術を教
示するもので、この技術を用いれば、6つの数字から成
る各組を解読できる。
第1の文字。第1の文字セットは、 420 104 147 217 220 259である。
この方法は、最初のチェックで、これがスタート文字
かどうか確かめる(ストップ文字、または他の初期設定
文字も使用される場合がある)。標準のエッジ・ツー・
エッジ技術は、t1t2t3t4で示される4整数のシーケンス
を生成する。この技術を用いて、記号「→」が「もっと
も近い整数に丸める」を意味する場合に、以下の式を得
る: x=1/11(420+104+147+217+220+529)=148.
82 t1=1/x(420+104)=3.52 → 4 t2=1/x(104+147)=1.69 → 2 t3=1/x(147+217)=2.45 → 2 t4=1/x(217+220)=2.94 → 3 t1t2t3t4=4223. 従来技術とは異なり、本発明は、解読結果「4223」
が、3つのスタートパターンのうちの1つに一致するこ
とを得るのではなく、適合度検定において、近いことだ
けを求めている。それゆえ、以下の通り、「4223」と3
つのスタートコードとの間隔がテストされる(スタート
パターンについては図5を参照のこと)。
スタートコードAとの間隔 =d1 2=(4−3)+(2−2)+(2−5)+(3−5)=14 スタートコードBとの間隔 =d2 2=(4−3)+(2−2)+(2−3)+(3−3)=2 スタートコードCとの間隔 =d3 2=(4−3)+(2−2)+(2−3)+(3−5)=6 コード「4223」は、値が「104」であるスタートコー
ドBにもっとも近い。コード128では、誤ったスタート
コードを選択しないようにするために、d2<3の場合に
のみ、スタートコードとして「104」が受理される。
上記の特別処理は、スタートコードやストップコード
などの文字にのみ適用される。スタートコードとストッ
プコードの間にある他のいかなる文字についても、その
候補セット(通常、コード化テーブルに格納されてい
る)は大きすぎ、またこの最小間隔から決定される結果
は、必ずしも正確であるとは限らない。従って、さらに
厳密な解析が行われる。
スタートコードが解読された後、スタートコードは、
コード化テーブルから以下のパターンを有することがわ
かった。
バー スペース バー スペース バー スペース 2 1 1 2 1 4 合計、4つのバー・モジュールと7つのスペース・モ
ジュールがある。もとの幅データを調べると、以下の通
りである。
420 104 147 217 220 529 バー幅の総和は、420+147+220=787である。
スペース幅の総和は、104+217+529=850である。
従って、1Xバー・モジュールは、以下のように概算さ
れる。
787/4=196.75 (1Xバーの平均幅) 850/7=121.43 (1Xスペースの平均幅) それゆえ、以下のように、1Xのバーとスペースの初期
推定値が得られる。
(XB,XS)=(196.75,121.43)。
第2の文字。ここで、上記のエッジ・ツー・エッジ技
術を用いて、以下の通り、第2のコード・ワードも解読
する: 216 233 552 217 326 93 t1t2t3t4=3554 コード化テーブルから、3554と値「17」が一致する。
これは、以下のパターンを持つ。
バー スペース バー スペース バー スペース 1 2 3 2 2 1 バー・モジュールの数=6 スペース・モジュールの数=5 1Xバー・モジュール =(216+552+326)/6=1094/6=182.33 1Xスペース・モジュール =(233+217+93)/5=543/5=108.60 この解読が正しいかどうか確かめるために、比率解析
を行う。理想的には、1Xのバーとスペースは、以下のよ
うに、以前に概算されたものに近くなければならない。
バー幅の比率=182.33/196.75=0.93 スペース幅の比率=108.60/121.43=0.89 これらの比率は1.0に近いから、正確な値として、値
「17」が受理される。この時点で、以下のものとして、
移動平均1Xのバーとスペースが更新される。
ここまでは、2つの文字をうまく解読したにすぎない
から、ここではN=2である。
第3の文字。ここで、エッジ・ツー・エッジ技術を用い
て、以下のように、第3の文字を解読する。
566 76 294 388 200 128 t1t2t3t4=4254 「4254」は、コード化テーブルのどのパターンにも一
致しない。解読不能として、この文字にマークが付けら
れる。すべての文字のエッジ・ツー・エッジ解読を試み
た後に、当該文字を再解読する。
引き続き、標準エッジ・ツー・エッジ技術を用いて、
他の文字を解読する。文字がうまく解読される時(これ
らの比率は1.0に近い)には、移動平均1Xのバーとスペ
ースが更新される。
すべての文字の解読が完了すると、最終的な移動平均
の単位バー幅と単位スペース幅が得られる。
例2 この例は17文字を有する。この幅データは、以
下の通りである。
欄1は、エッジ・ツー・エッジ法を用いて解読された
コード・ワード値である。この数「−1」は解読不能を
表し、すなわち、コード化テーブルからは、一致する項
目は見つけられない。欄11は、コード化テーブルのコー
ドワード値に対応するバー・モジュールの数である。ス
ペース・モジュールの数は推定でき(すなわち、すべて
のモジュールの合計は11に等しい)、それゆえ、リスト
されていない。最後のカラムは、N(解読不能)または
M(解読ミス)としてコードワードを標示する。
最終移動平均幅は、XB=173とXS=120であって、これ
らは、「N」または「M」のマークの付いてない14の解
読文字から概算されたものである。この例では、3つの
文字数セットが第1のパスから拒否されている。
これらのものは拒否される。なぜなら、これらのもの
は、解読できなかった(−1で表される)か、あるい
は、その比率が1.0から離れすぎているからである。
(上記の表では、バー「比率」とスペース「比率」は、
整数演算の速度効果(speed advantage)のために、整
数形式で表される)。数「3」は、実際に、1.0からの
0.3の偏差を意味している。従って、この比率は、0.7ま
たは1.3である。同様に、比率「7」は、0.3か、1.7の
いずれかを意味しており、これらは、1.0から遠く離れ
ている)。
3つの再解読処理は、以下の通りに例示されている。
(a)第1の文字再解読の幅データは、次の通りであ
る。
566 76 294 388 200 128 これから、「4252」のエッジ・ツー・エッジ解読が得
られ、これは、前回の試みにおける無効コードである。
本発明の解読技術は、バーとスペースの幅データを、そ
れぞれ1モジュールのバー幅(173)と1モジュールの
スペース幅(120)で割ることである。この結果、以下
の数が得られる。
3.27 0.63 1.70 3.23 1.16 1.09 これは、以下の数に丸められる。
3 1 2 3 1 1 すなわちt1t2t3t4値が「4354」であって、これは、コー
ド128値の表において、「58」に対応する。以下に説明
される方法に従って、この再解読がうまくいったかどう
かチェックできる。
(b)第2の文字再解読の幅データは、次の通りであ
る。
171 157 522 214 334 261 これから、「2554」のエッジ・ツー・エッジ解読が得
られ、すなわち、表の値が「100」である。しかしなが
ら、コードワード「100」は、8つのバー・モジュール
と3つのスペース・モジュールを有し、従って、以下の
値となる。
これらの値をテストして、以下の値を求める。
解読ミスを宣言する。この解読ミスは、標準のエッジ・
ツー・エッジ技術を使っても見つけられなかったであろ
う。再解読するには、幅を、バーとスペース用の標準の
1Xモジュールで割ることである。
これは、次の値に等しい。
0.99 1.31 3.02 1.78 1.93 2.17 これは、次の値に丸める。
1 1 3 2 2 2 すなわちt1t2t3t4値が「2454」であって、コードワード
が「15」である。コードワード「15」は、6つのバー・
モジュールと5つのスペース・モジュールを有し、従っ
て、以下の値となる。
これらの比率をテストすると、 この解読は成功である。
(c)第3の文字再解読の幅データは、次の通りであ
る。
211 101 564 76 702 77 これから、「2445」のエッジ・ツー・エッジ解読が得
られ、これは、コードワード「99」である。
バーとスペースの比率をテストして、 再解読は、以下の通りに進行する。これらの比率は次の
ものである。
これは、次の値に等しい。
1.22 0.84 3.26 0.63 4.06 0.64 これは、次の値に丸める。
1 1 3 1 4 1 これにより、エッジ・ツー・エッジ技術でもたらされる
ものと同じ「2445」結果が得られる。新規解読文字は、
より適切な比率をもたらさないから、従って、コードワ
ード「99」を、有効なものとして受理する。
再解読文字では、丸められた整数の総和はちょうど11
であり、これが正しい。
(例(a)):3 1 2 3 1 1(合計
=11) (例(b)):1 1 3 2 2 2(合計
=11) (例(c)):1 1 3 1 4 1(合計
=11) しかしながら、バーコード信号が、ひどくひずむ場合
には、その合計は、正確に11にならない場合がある。11
ではなくて、9、10、12、13などになることがある。次
の例は、この問題を例示する。
例3。 この方法を用いて、XB=96とXS=87、および
以下の幅データを有する文字を再解読する。
76 80 339 57 385 75 1Xバー(スペース)で割る。
もっとも近い整数に丸められる。
1 1 4 1 4 1(合計=12、合計≠11!) コード128に対して、モジュールの適正な合計は11で
あるから、1つのバーまたはスペースは、1モジュール
だけ減らさなければならない。不良な要素(1つ、また
は複数)を突き止めるために、検索スペースを狭くし
て、誤り的中の可能性を少なくする必要がある。ある要
素の信頼度が、該当する平均1X幅に対する当該要素幅の
比率として定義されることに注意すること。比率が整数
に近ければ近いほど、それだけ当該要素の信頼度が高く
なる。われわれは、この検索スペースを以下のように狭
くしている。
(1)コード128では、バー・モジュールの合計は、つ
ねに偶数であり、またスペース・モジュールの合計は、
つねに奇数である。従って、バー・モジュールの合計=
1+4+4=9であって、偶数ではない。このことか
ら、バーのいくつかを減らすように指示されている。
このステップは、2つのバー(スペース)が欠けてい
るか、または2つの余分のバー(スペース)がある場合
には、確実な結果をもたらさない。
(2)もっとも広い要素が4つのモジュールを有するこ
とを考慮に入れて、以下のルールに従って、各要素の信
頼度を調整することができる。
(1)モジュールが0である場合には、モジュールを1
に設定し、また信頼度を1.00に設定する。
(2)モジュールが1であって、信頼度が1.00よりも小
さい場合には、信頼度を1.00に設定する。それ以外の場
合には、調整しない。
(3)モジュールが4であって、信頼度が4.00よりも大
きい場合には、信頼度を4.00に設定する。それ以外の場
合には、調整しない。
(4)モジュールが4よりも大きい場合には、モジュー
ルを4に設定し、また信頼度を4.00に設定する。
上記のルールは、以下の通り、容易に理解できる。
(1)信頼度 モジュール 0.4 → 0 あるバーを見る場合、このバーは少なくとも1Xでなけ
ればならず、他のものではありえない。この信頼度を1.
00(最高の信頼度)に設定して、後で要素を調整できな
いようにしている。
(2) 0.8 → 1 2ではあり得ない。最高の信頼度1.00に設定して、後
で要素を調整できないようにしている。
1.45 → 1 後で2に調整でき、従って、信頼度を変更しない。
(3) 3.55 → 4 後で3に調整でき、従って、信頼度を変更しない。
4.2 → 4 3でも5でもあり得ない。最高の信頼度を4.00に設定
して、後で要素を調整できないようにしている。
(4) 4.9 → 5 モジュールが4つしかない。4.00に設定して、後で要
素を調整できないようにしている。
ステップ(1)が確実な結果をもたらす場合には、さ
らに検索スペースを減らすために、ステップ(2)の信
頼度調整を広げることができる。例えば、スペース・モ
ジュールについては、まったく問題がないが、ただし、
バー・モジュールについて何らかの問題があることがわ
かっている場合には、スペース・モジュールのあらゆる
信頼度値を最高レベルに設定して、後で、スペース・モ
ジュールを調整しないようにしている。
最低信頼度値(3.53。この小数部0.53は、この隣りの
整数0からも1からも離れている)に対応する要素を探
すことで、第3の要素を減らすべきと結論を下してい
る。
(3)実行可能な調整方向を検証する。
3.53 小数部 0.53>0.5 これは、その対応するモジュールが4まで丸められた
ことと、余分の1つのモジュールを取り入れた可能性が
あることを意味している。それゆえ、このモジュール
は、1だけ減らすことができる。とはいえ、その小数部
が0.5よりも小さかった場合には、当該モジュールは、
切り捨てられたが、ここでは、さらに減らすことはでき
ない。
ステップ(1)、(2)、(3)を組み合わせれば、
調整後の要素は以下のようである。
1 1 3 1 4 1(合計=11) t1t2t3t4=2445 値:「99」 ここで、比率をチェックして、解読が正しいかどうか
確かめる。
解読不能として、以前にこの文字にマークが付けられ
ているから、解読結果は受理される。
最低の信頼度を有する要素を探すことにより、複数の
要素を調整できることは明らかである。
まとめる。文字比率の有用性は、バーコード走査信号
が正しく区分されているかどうかによって決まる。バー
またはスペースが走査信号から検出されない場合、ある
いは、バーコード信号がノイズ(例えば、バーコード上
のマークといっしょに現れる可能性のあるもの)で汚損
されている場合には、不良な部位に遭遇した後に解読さ
れた文字は、不良比率を持ち(解読される場合)、一般
に無用である。有用な戦略は、チェックして、走査信号
に正しい数の要素が入っているかどうか確かめることで
ある。例えば、コード128では、正しく区分された走査
パス・モジュロ6の要素の数が1に等しくなければなら
ない。走査パスが正しく区分される場合には、これは、
通常のやり方で(開始から終了まで)解読される。そう
でなければ、これは、ストップポイントが検出されるま
で解読され、次に、同一ストップポイントにさかのぼっ
て解読される。このストップポイントは、2つの連続す
る文字が不良文字(すなわち、解読不能か、解読ミスの
いずれかのもの)としてマークの付けられている文字と
して定義される。不良文字の少なくとも1つは、要素
(1つ、または複数)が欠けており(または、余分にあ
り)、再解読処理後でも解読できない。新規走査信号が
得られ、すべての文字が再び解読される。解読された文
字は、その前の結果が、より適切な比率を持つ場合に限
り、その結果に取って代わる。新規信号が、別のストッ
プポイントを持つ場合には、そのバーコードは解読され
得る。この処理は図3に例示されている。
われわれは、この実施例を、以下のステップから成る
新規技術として要約できる。
1.初期設定(すなわち、スタートまたはストップ)文字
を解読し、1Xのバーとスペースの初期推定値を設定す
る。
2.標準解読技術を用いて、他のものを解読する。ある文
字が解読されて、その比率が1.0に近い場合には、1Xの
バーとスペースのモジュールを用いて、1Xのバーとスペ
ースの移動平均値を更新する。そうでなければ、後で再
解読されるように、この文字にマークが付けられる。
3.あらゆる文字を解読した後で、1Xバーと1Xスペースの
値の最終移動平均を得る。
4.マークの付けられた、以前に解読不能または解読ミス
があった文字が、再解読される。再解読された値は、そ
れが、以前に解読された値よりも適切な比率(1に近
い)をもたらす場合に限り、受理される。
本発明は、バーコードの走査を表す信号を得、処理す
るいくつかの装置をどれでも使って実施できる。図4に
示される通り、本発明の主な構成装置は、CCDカメラま
たはレーザスキャナ11、PC31に接続できる信号処理モジ
ュール21、記憶装置41である。このコントローラは、キ
ーボード51または他の制御装置(図には示されていな
い)を備えて、本発明の操作を楽に行えるようにしてい
る。信号処理モジュール21は、バーとスペースの幅を測
定し、これらの幅を表す数を、当業者によく知られてい
る方法により、モジュール21に常駐のプロセッサ、また
はPC31のプロセッサに提供する。この方法は、これらの
プロセッサにプログラムされ、中間結果や最終結果が、
この特定の用途に対して必要か、または望ましいもので
あれば、それらの結果を、記憶装置41を用いて記憶させ
る。通常当業者であるプログラマであれば、ここに記さ
れた方法の説明に基づいて、開示方法を実行するプログ
ラムを作成できる。
この明細書の名称を参照して、この詳細な説明が、中
央処理装置(CPU)、CPU向けの記憶装置、接続された画
素向きディスプレイ装置を含め、従来のコンピュータ構
成装置で実行される操作のプロセスと記号表現の言葉
で、主として表現されている。これらの操作はは、CPU
によるデータビットの処理と、メモリ記憶装置の少なく
とも1つに常駐のデータ構造内でのこれらビットの保持
を含む。このようなデータ構造は、コンピュータのメモ
リに格納したデータビットの収集に対して物理構造を課
して、特定の電気的または磁気的な要素を表わす。これ
らの記号表現は、教示および発見を他の当業者にもっと
も効果的に伝えるために、コンピュータ・プログラミン
グとコンピュータ構造の当業者によって用いられる手段
である。
この論述の目的では、プロセスは、一般に、所望の結
果を得る一連のコンピュータ実行ステップであると考え
られる。これらのステップは、一般に、物理量の物理的
処理を必要とする。通常、必ずしも必要であるとは限ら
ないが、このような物理量は、記憶させ、転送し、組み
合わせ、比較し、または他の方法で処理することのでき
る電気信号、磁気信号、または光信号の形式を取ってい
る。当業者にとって、ビット、値、要素、記号、文字、
言葉、オブジェクト、数、レコード、ファイルなどとし
て上記信号を示すことは普通である。しかしながら、こ
れらの言葉、および同様な言葉を、コンピュータ操作に
ふさわしい物理量と対応付けなければならないことと、
これらの言葉が、単に、コンピュータの操作範囲内で、
また操作中に現れる物理量に付けられた通常の標識にす
ぎないことに留意されたい。
さらに、コンピュータ内での処理は、しばしば、加
算、比較、移動などのような言葉で示され、また、これ
らの言葉は、しばしば、人的オペレータで実行される手
動操作と対応付けられるものである。本発明では、この
ように人的オペレータがかかわることは、必要でない
し、また望ましくないとさえ言えるものである。ここに
説明されている操作は、コンピュータと対話する人的オ
ペレータまたはユーザとともに実行されるマシン操作で
ある。本発明の操作を実行するのに用いられるマシンに
は、汎用デジタル・コンピュータ、または他の同様な計
算装置がある。
さらに、ここに説明されるプログラム、プロセス、方
法などは、特定のコンピュータまたは装置には関係がな
く、しかもそれらに限定されないものである。もっと適
切に言えば、ここに説明される教示に従って作成された
プログラムに対しては、様々なタイプの汎用マシンが使
用できる。同様に、読み出し専用メモリなどの不揮発性
メモリにハードウェアに組み込まれたロジックまたはプ
ログラムを格納した専用コンピュータシステムとして、
特化した装置を製作して、ここに説明されている方法の
ステップを実行することは好都合となる。
本発明は、特にその好適な実施例を参照して、詳細に
説明されてきたが、これらの実施例に対する変形や変更
は、ここに説明される通りに、また添付の請求の範囲に
定められる通りに、本発明の精神および範囲から逸脱せ
ずに行われるものである。
───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G06K 7/10

Claims (14)

    (57)【特許請求の範囲】
  1. 【請求項1】初期設定文字を含むタイプのバーコード
    で、前記バーコードの各文字がバーとスペースを有する
    一連の要素で表され、このような各要素の幅が単位バー
    ・モジュール幅または単位スペース・モジュール幅の倍
    数であるバーコードの文字を解読する方法であって、 (a)バーコードを走査して、走査で遭遇する各要素の
    幅に、ある値を割り当てるステップと、 (b)前記バーコードの初期設定文字を解読するステッ
    プと、 (c)前記初期設定文字のバー幅の合計を、前記初期設
    定文字の中のバー単位モジュールの既知数で割って、第
    1の平均単位バー・モジュール幅を計算するステップ
    と、 (d)前記初期設定文字のスペース幅の合計を、前記初
    期設定文字の中のスペース単位モジュールの既知数で割
    って、第1の平均単位スペース・モジュール幅を計算す
    るステップと (e)バーコードの第2の文字を解読するために試行す
    るステップと、 (f)前記第2の文字を解読するための試行が失敗の場
    合は、解読不能として、前記第2の文字にマークを付け
    るステップと、 (g)前記第2の文字を解読するための試行が成功の場
    合は、前記第2の文字の前記バー幅の合計を、前記第2
    の文字の中のバー単位モジュールの既知数で割って、第
    2の平均単位バー・モジュール幅を計算し、ステップ
    (h)〜(j)を続行するステップと、 (h)前記第2の文字の前記スペース幅の合計を、前記
    第2の文字の中のスペース単位モジュールの既知数で割
    って、第2の平均単位スペース・モジュール幅を計算す
    るステップと、 (i)前記第1の平均単位バー・モジュール幅に対する
    前記第2の平均単位バー・モジュール幅の比率が1:1の
    所定の許容差内にあり、前記第1の平均単位スペース・
    モジュール幅に対する前記第2の平均単位スペース・モ
    ジュール幅の比率が1:1の所定の許容差内にある場合
    は、前記第2の文字の解読を受理するステップと、 (j)前記比率が、前記所定の許容差外にある場合は、
    解読ミスとして前記第2の文字にマークを付けるステッ
    プと、 を有するバーコード文字解読方法。
  2. 【請求項2】ステップ(e)における、前記バーコード
    前記第2の文字を解読しようとする試行が、前記第2の
    文字の要素の前記幅の値を標準文字値のテープルと比較
    するステップを含む、請求の範囲第1項記載のバーコー
    ド文字解読方法。
  3. 【請求項3】(k)前記第2の文字の解読が受理される
    場合は、前記第1および第2の平均単位バー・モジュー
    ル幅の移動平均と、前記第1および第2の平均単位スペ
    ース・モジュール幅の移動平均とを計算するステップ
    と、 (l)前記バーコードの第3の文字を解読するために試
    行するステップと、 (m)前記第3の文字を解読する試行が失敗である場合
    は、解読不能として、前記第3の文字にマークを付ける
    ステップと、 (n)前記第3の文字を解読する試行が成功である場合
    は、前記第3の文字のバー幅の合計を、前記第3の文字
    の中のバー単位モジュールの既知数で割って、第3の平
    均単位バー・モジュール幅を計算し、ステップ(o)〜
    (r)を続行するステップと、 (o)前記第3の文字のスペース幅の合計を、前記第3
    の文字の中のスペース単位モジュールの既知数で割っ
    て、第3の平均単位スペース・モジュール幅を計算する
    ステップと、 (p)前記移動平均単位バー・モジュール幅に対する前
    記第3の平均単位バー・モジュール幅の比率が1:1の所
    定の許容差内にあり、前記移動平均単位スペース・モジ
    ュール幅に対する前記第3の平均単位スペース・モジュ
    ール幅の比率が1:1の所定の許容差内にある場合は、前
    記第3の文字の解読を受理するステップと、 (q)前記第3の平均と移動平均の比率が、前記所定の
    許容差外にある場合は、解読ミスとして前記第3の文字
    にマークを付けるステップと、 (r)前記第3の文字の解読が受理される場合は、前記
    第3および移動平均の単位バー・モジュール幅の更新移
    動平均と、前記第3および移動平均の単位スペース・モ
    ジュール幅の更新移動平均とを計算するステップと、 をさらに含む請求の範囲第1記載のバーコード文字解読
    方法。
  4. 【請求項4】前記バーコード内の、第4および全ての後
    続文字に対して、ステップ(l)〜(r)を繰り返し、
    受理された文字、解読ミスの文字、解読不能な文字と、
    最終移動平均単位バー・モジュール幅および最終移動平
    均単位スペース・モジュール幅とを結果として得るステ
    ップをさらに含む請求の範囲第3記載のバーコード文字
    解読方法。
  5. 【請求項5】(s)各バー要素の幅を前記最終移動平均
    単位バー・モジュール幅で割るとともに、各スペース要
    素の幅を前記最終移動平均単位スペース・モジュール幅
    で割ることにより、一連の商を得るステップと、 (t)ステップ(s)で得られた商を、もっとも近い整
    数に丸めるステップと、 (u)ステップ(t)の一連の整数を解読して、1つの
    新規文字を得るステップと、 (v)前記1文字のバー幅の合計を、前記新規文字中の
    バー単位モジュールの既知数で割って新規文字の平均単
    位バー・モジュール幅を計算するステップと、 (w)前記1文字のスペース幅の合計を、前記新規文字
    中のスペース単位モジュールの既知数で割って新規文字
    の平均単位スペース・モジュール幅を計算するステップ
    と、 (x)最終移動平均単位バー・モジュール幅に対する前
    記新規文字の平均単位バー・モジュール幅の比率が1:1
    の所定の許容差内にあり、最終平均単位スペース・モジ
    ュール幅に対する前記新規文字の平均単位スペース・モ
    ジュール幅の比率が1:1の所定の許容差内にある場合
    は、前記新規文字として、前記1文字の解読を受理する
    ステップと、 により、前記マークの付けられた解読不能または解読ミ
    スの文字の1つを再解読することをさらに含む請求の範
    囲第4項記載のバーコード文字解読方法。
  6. 【請求項6】マークが付された前記文字の前記要素の幅
    を、適切な前記更新平均単位モジュール幅で割って得ら
    れた一連の整数に、標準解読法を適用して、マークが付
    された前記文字を再解読することをさらにを含む請求の
    範囲第4項記載のバーコード文字解読方法。
  7. 【請求項7】少なくとも1つの文字が解読不能または解
    読ミスとしてマークが付されるものであって、 (a)マーク付き文字中の前記要素のそれぞれの前記幅
    の値を、前記要素タイプに対応する前記平均単位モジュ
    ール幅で割るステップと、 (b)ステップ(a)で得られた商を、もっとも近い整
    数値に丸めるステップと、 (c)前記整数値の合計を、前記マーク付き文字中のモ
    ジュールの前記既知数に等しくするために前記整数値を
    調整するステップと、 (d)前記マーク付き文字に対して、前記ステップ
    (b)で決定された前記整数を合計するステップと、 (e)前記ステップ(d)で得られた前記合計が、この
    種のバーコードに適正な合計であるかどうか判定するス
    テップと、 (f)もしそうでなければ、信頼度解析により1要素を
    選択して、前記信頼度解析の結果に従って、選択要素中
    の単位モジュールの数を調整するステップと、 を含む請求の範囲第6項記載のバーコード文字解読方
    法。
  8. 【請求項8】前記信頼度解析が、 (g)バー用の固有パリティが、ステップ(c)で決定
    された前記整数値で満たされるかどうか判定し、もし満
    たされれば、バー要素の数の調整を回避するための高信
    頼度値を設定するステップと、 (h)スペース用の固有パリティが、ステップ(c)で
    決定された前記整数値で満たされるかどうか判定し、も
    し満たされれば、スペース要素の数の調整を回避するた
    めの高信頼度値を設定するステップと、 (i)前記バーコードが複数幅のバーコードである場合
    は、前記バーコードの最大幅および最小幅の要素の双方
    に対して高信頼度を設定するステップと、 (j)最低信頼度値を有する要素に対して、モジュール
    数が以前に切り捨てられた場合はモジュール数を増や
    し、モジュール数が以前に切り上げられた場合はモジュ
    ール数を減らすステップと、 (k)ステップ(j)で前記モジュール数が調整されな
    い場合は、前記ステップ(e)が満たされるまで、また
    はすべての前記要素の前記モジュール数が調整されるま
    で、ステップ(j)の方法をさらに高い信頼度を有する
    次の要素に適用するステップと、 を含む請求の範囲第7項記載のバーコード文字解読方
    法。
  9. 【請求項9】ステップ(u)における前記一連の整数か
    ら解読された前記新規文字が、以前に解読され受理され
    なかった文字と同一である場合は、前記文字を受理する
    ことをさらに含む請求の範囲第5項記載のバーコード文
    字解読方法。
  10. 【請求項10】ステップ(u)における前記新規文字を
    解読する前に、前記一連の整数の合計が、前記新規文字
    におけるモジュールの既知総数に等しいかどうか判定す
    ることをさらに含む請求の範囲第5項記載のバーコード
    文字解読方法。
  11. 【請求項11】前記初期設定文字がスタート文字または
    ストップ文字を含んでおり、 前記初期設定文字ではない前記スタート文字または前記
    ストップ文字の他方に遭遇する前に、所定の基準を満た
    す不良部位に遭遇するまで、前記バーコードの後続文字
    に対してステップ(l)〜(r)を繰り返し、 前記バーコードの反対の端の前記スタート文字または前
    記ストップ文字の他方を解読し、 前記スタート文字または前記ストップ文字の他方から前
    記不良部位に向けて、ステップ(l)〜(r)を繰り返
    す、 ことを含む請求の範囲第3項記載のバーコード文字解読
    方法。
  12. 【請求項12】初期設定文字を含むタイプのバーコード
    で、前記バーコードの各文字が、バーとスペースを有す
    る一連の要素で表され、このような各要素の幅が単位バ
    ー・モジュール幅または単位スペース・モジュール幅の
    倍数であるバーコードの文字を解読するための実行命令
    を有する計算装置(31)であって、 (a)バーコードを走査して、走査で遭遇する各要素の
    幅に、ある値を割り当てるステップと、 (b)前記バーコードの初期設定文字を解読するステッ
    プと、 (c)前記初期設定文字のバー幅の合計を、前記初期設
    定文字の中のバー単位モジュールの既知数で割って、第
    1の平均単位バー・モジュール幅を計算するステップ
    と、 (d)前記初期設定文字のスペース幅の合計を、前記初
    期設定文字の中のスペース単位モジュールの既知数で割
    って、第1の平均単位スペース・モジュール幅を計算す
    るステップと (e)バーコードの第2の文字を解読するために試行す
    るステップと、 (f)前記第2の文字を解読する試行が失敗する場合
    は、解読不能として前記第2の文字にマークを付けるス
    テップと、 (g)前記第2の文字を解読する試行が成功する場合
    は、前記第2の文字の前記バー幅の合計を、前記第2の
    文字の中のバー単位モジュールの既知数で割って、第2
    の平均単位バー・モジュール幅を計算し、ステップ
    (h)〜(j)を続行するステップと、 (h)前記第2の文字の前記スペース幅の合計を、前記
    第2の文字の中のスペース単位モジュールの既知数で割
    って、第2の平均単位スペース・モジュール幅を計算す
    るステップと、 (i)前記第1の平均単位バー・モジュール幅に対する
    前記第2の平均単位バー・モジュール幅の比率が1:1の
    所定の許容差内にあり、前記第1の平均単位スペース・
    モジュール幅に対する前記第2の平均単位スペース・モ
    ジュール幅の比率が1:1の所定の許容差内にある場合
    は、前記第2の文字の解読を受理するステップと、 (j)前記比率が、前記所定の許容差外にある場合は、
    解読ミスとして前記第2の文字にマークを付けるステッ
    プと、 に従う計算装置。
  13. 【請求項13】(k)前記第2の文字の解読が受理され
    る場合は、前記第1と第2の平均単位バー・モジュール
    幅の移動平均と、前記第1と第2の平均単位スペース・
    モジュール幅の移動平均とを計算するステップと、 (l)前記バーコードの第3の文字を解読するために試
    行するステップと、 (m)前記第3の文字を解読する試行が失敗する場合
    は、解読不能として前記第3の文字にマークを付けるス
    テップと、 (n)前記第3の文字を解読する試行が成功する場合
    は、前記第3の文字のバー幅の合計を、前記第3の文字
    の中のバー単位モジュールの既知数で割って、第3の平
    均単位バー・モジュール幅を計算し、ステップ(o)〜
    (r)を続行するステップと、 (o)前記第3の文字のスペース幅の合計を、前記第3
    の文字の中のスペース単位モジュールの既知数で割っ
    て、前記第3の平均単位スペース・モジュール幅を計算
    するステップと、 (p)前記移動平均単位バー・モジュール幅に対する前
    記第3の平均単位バー・モジュール幅の比率が1:1の所
    定の許容差内にあり、前記移動平均単位スペース・モジ
    ュール幅に対する前記第3の平均単位スペース・モジュ
    ール幅の比率が1:1の所定の許容差内にある場合は、前
    記第3の文字の解読を受理するステップと、 (q)前記第3の平均と前記移動平均との比率が、前記
    所定の許容差外にある場合は、解読ミスとして前記第3
    の文字にマークを付けるステップと、 (r)前記第3の文字の解読が受理される場合は、前記
    第3および前記移動平均の単位バー・モジュール幅の更
    新移動平均と、前記第3および前記移動平均の単位スペ
    ース・モジュール幅の更新移動平均とを計算するステッ
    プと、 に従って文字を解読する実行命令をさらに有する請求の
    範囲第12項記載の計算装置(31)。
  14. 【請求項14】前記バーコードにおける第4および後続
    する全ての文字に対してステップ(l)〜(r)を繰り
    返し、受理された文字、解読ミスの文字、解読不能な文
    字、および最終移動平均の単位バー・モジュール幅と最
    終移動平均の単位スペース・モジュール幅とを得るステ
    ップに従って文字を解読する実行命令をさらに有する請
    求の範囲第13項記載の計算装置。
JP10525558A 1996-12-04 1997-10-01 モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置 Expired - Fee Related JP3115003B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US759,402 1996-12-04
US08/759,402 US5767497A (en) 1996-12-04 1996-12-04 Method and apparatus for decoding bar code symbols using ratio analysis of module size
US08/759,402 1996-12-04
PCT/US1997/017845 WO1998025225A1 (en) 1996-12-04 1997-10-01 Method and apparatus for decoding bar code symbols using ratio analysis of module size

Publications (2)

Publication Number Publication Date
JP2000509537A JP2000509537A (ja) 2000-07-25
JP3115003B2 true JP3115003B2 (ja) 2000-12-04

Family

ID=25055511

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10525558A Expired - Fee Related JP3115003B2 (ja) 1996-12-04 1997-10-01 モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置

Country Status (9)

Country Link
US (1) US5767497A (ja)
EP (1) EP0943132B1 (ja)
JP (1) JP3115003B2 (ja)
AT (1) ATE210861T1 (ja)
CA (1) CA2267892C (ja)
DE (1) DE69709165T2 (ja)
DK (1) DK0943132T3 (ja)
ES (1) ES2169875T3 (ja)
WO (1) WO1998025225A1 (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6454168B1 (en) * 1998-09-14 2002-09-24 Psc Scanning, Inc. Correlation and stitching techniques in a bar code scanning system
US6561427B2 (en) * 1998-09-14 2003-05-13 Psc Scanning, Inc. Decoding system and methods in a bar code scanning system
US6513714B1 (en) 1998-09-14 2003-02-04 Psc Scanning, Inc. Character reconstruction and element level processing in bar code scanning system
US6585157B2 (en) 1998-09-14 2003-07-01 Psc Scanning, Inc. Symbology determination to aid decoding in a bar code scanning system
JP3510496B2 (ja) * 1998-09-28 2004-03-29 富士通株式会社 バー幅補正装置,バー幅補正方法,バーコード読取装置及びそのバーコード復調方法
US6164542A (en) * 1998-11-03 2000-12-26 Intermec Ip Corp. Method and apparatus for decoding unresolved symbol profiles produced from a reduced data set
US6666377B1 (en) 2000-07-18 2003-12-23 Scott C. Harris Bar code data entry device
CN1267848C (zh) * 2001-05-25 2006-08-02 欧光股份有限公司 光学信息读取装置
US6616044B1 (en) * 2002-10-04 2003-09-09 Ncr Corporation Methods and apparatus for obtaining imaging information in bar code scanners
JP4202101B2 (ja) * 2002-10-10 2008-12-24 富士通株式会社 バーコード認識方法、および認識用デコード処理装置
JP4213490B2 (ja) * 2003-02-21 2009-01-21 富士通株式会社 バーコード読取装置
JP4070631B2 (ja) * 2003-02-21 2008-04-02 富士通株式会社 バーコード読取装置およびバーコード読取方法
US7963448B2 (en) 2004-12-22 2011-06-21 Cognex Technology And Investment Corporation Hand held machine vision method and apparatus
US9552506B1 (en) * 2004-12-23 2017-01-24 Cognex Technology And Investment Llc Method and apparatus for industrial identification mark verification
JP4254724B2 (ja) * 2005-02-16 2009-04-15 株式会社デンソーウェーブ バーコード読取り方法及びコンピュータプログラム
US8108176B2 (en) * 2006-06-29 2012-01-31 Cognex Corporation Method and apparatus for verifying two dimensional mark quality
US8169478B2 (en) * 2006-12-14 2012-05-01 Cognex Corporation Method and apparatus for calibrating a mark verifier
US8196836B2 (en) * 2007-06-28 2012-06-12 Fuji Xerox Co., Ltd. Image processing apparatus, image processing method and computer-readable medium
JP4871841B2 (ja) * 2007-11-08 2012-02-08 キヤノン株式会社 印刷制御装置および印刷制御方法ならびにそのプログラムおよび記憶媒体
US9734376B2 (en) 2007-11-13 2017-08-15 Cognex Corporation System and method for reading patterns using multiple image frames
KR20110040108A (ko) * 2009-10-13 2011-04-20 삼성전자주식회사 화상형성장치 및 화상형성장치의 문서 관리방법
US8792748B2 (en) 2010-10-12 2014-07-29 International Business Machines Corporation Deconvolution of digital images
CN114091495B (zh) * 2021-11-29 2022-08-05 深圳市智百威科技发展有限公司 一种条形码识别扫描系统及方法

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5520585A (en) * 1978-07-31 1980-02-14 Sharp Corp Demodulating system for bar-code signal
US4608489A (en) * 1984-06-04 1986-08-26 International Business Machines Corporation Method and apparatus for dynamically segmenting a bar code
US4578570A (en) * 1984-08-14 1986-03-25 Ncr Canada Ltd.-Ncr Canada Ltee Bar code processing apparatus
US5675137A (en) * 1986-04-18 1997-10-07 Cias, Inc. Bar code decoding using moving averages to break the (n,k) code barrier for UPC, EAN Code 128 and others
US4873426A (en) * 1988-08-03 1989-10-10 Image Business Systems Corporation Technique for reading bar codes
US5319181A (en) * 1992-03-16 1994-06-07 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
US5635697A (en) * 1989-03-01 1997-06-03 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code
US5337361C1 (en) * 1990-01-05 2001-05-15 Symbol Technologies Inc Record with encoded data
JP2738098B2 (ja) * 1990-01-08 1998-04-08 株式会社デンソー 光走査装置
JP2957726B2 (ja) * 1990-03-28 1999-10-06 オムニプラナー,インコーポレーテッド 高速・全方向型バーコードリーダのための改良された方法及び装置
JPH0448392A (ja) * 1990-06-18 1992-02-18 Fujitsu Ltd バーコード読み取り装置
US5608200A (en) * 1990-09-28 1997-03-04 Symbol Technologies, Inc. Method of collecting and adjusting bar code data from a laser bar code reader
EP0538488A4 (en) * 1991-05-10 1993-07-28 Ape Inc. Bar code reader and game device using the same
JPH0612516A (ja) * 1992-04-24 1994-01-21 Nippondenso Co Ltd バーコード読取り装置
US5343028A (en) * 1992-08-10 1994-08-30 United Parcel Service Of America, Inc. Method and apparatus for detecting and decoding bar code symbols using two-dimensional digital pixel images
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
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
JPH06274674A (ja) * 1993-03-19 1994-09-30 Fujitsu Ltd バーコード読取方法およびバーコード読取装置
US5412196A (en) * 1994-04-01 1995-05-02 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code images using multi-order feature vectors
US5468946A (en) * 1994-04-29 1995-11-21 Eastman Kodak Company Method and apparatus for decoding multi-level bar codes or bi-level bar codes
US5553084A (en) * 1995-01-06 1996-09-03 Intermec Corporation Error correction enhancement for code one and other machine-readable symbologies
US5539191A (en) * 1995-06-22 1996-07-23 Intermec Corporation Method and apparatus for decoding unresolved bar code profiles using edge finding circuitry

Also Published As

Publication number Publication date
DE69709165D1 (de) 2002-01-24
ATE210861T1 (de) 2001-12-15
DE69709165T2 (de) 2002-07-18
JP2000509537A (ja) 2000-07-25
EP0943132B1 (en) 2001-12-12
WO1998025225A1 (en) 1998-06-11
CA2267892C (en) 2002-09-10
EP0943132A1 (en) 1999-09-22
DK0943132T3 (da) 2002-04-15
CA2267892A1 (en) 1998-06-11
ES2169875T3 (es) 2002-07-16
US5767497A (en) 1998-06-16

Similar Documents

Publication Publication Date Title
JP3115003B2 (ja) モジュール・サイズの比率解析を用いてバーコード記号を解読する方法および装置
EP1086439B1 (en) Techniques for reading postal codes
EP0795836B1 (en) Method and apparatus for decoding bar code symbols using independent bar and space analysis
EP0431264B1 (en) Method and apparatus for decoding bar codes from multiple scans
US6585157B2 (en) Symbology determination to aid decoding in a bar code scanning system
EP0880103B1 (en) Method and apparatus for detecting and decoding bar code symbols
US6386454B2 (en) Detecting bar code candidates
US6513714B1 (en) Character reconstruction and element level processing in bar code scanning system
EP0887760B1 (en) Method and apparatus for decoding bar code symbols
EP0754327B1 (en) Method and apparatus for decoding bar code images using multi-order feature vectors
US6454168B1 (en) Correlation and stitching techniques in a bar code scanning system
JPH0612515A (ja) Ccd/cmdカメラを使用して二次元バーコードを復号する方法及び装置
EP0647916A1 (en) Bar code scan stitching
US5553084A (en) Error correction enhancement for code one and other machine-readable symbologies
EP0582858A1 (en) Method and apparatus for detecting artifact corners in two-dimensional images
JPH07200712A (ja) バーコード読み取りの方法および装置
JPH1063772A (ja) データマトリックスシンボルを有する機械読取り可能なシンボルを探し、デコードするための方法及び装置
US5537431A (en) Method and apparatus for bar code reading and decoding
US6561427B2 (en) Decoding system and methods in a bar code scanning system
US10460142B2 (en) Barcode identification method for improving decoding reliability by correcting image distortion
US6330972B1 (en) Error correction enhancement for code 93i and other machine-readable symbologies
US8267322B2 (en) Method and apparatus for correcting decoding errors in machine-readable symbols
US6494376B1 (en) Compensation for scan line variations in a bar code scanner system
EP2275966B1 (en) Method for enhancing the decodability of label information from scans of label data
JP5115124B2 (ja) バーコード読取装置及びプログラム

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080929

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080929

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090929

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees