(57)【特許請求の範囲】
【請求項１】
バーコードを含む２値画像を入力する画像入力手段と、入力された２値画像を記憶する画像記憶手段と、前記画像入力手段からの２値画像をＭ×Ｍ窓で走査し、バーコードの交番パターンを検出するマスク判定手段と、前記マスク判定手段からの２値画像に対しパターンを太らせる膨張手段と、前記膨張手段からの２値画像に対しパターンを細らせる収縮手段と、前記収縮手段からの２値画像に対し個々のパターンを分離し、各パターン毎の特徴量からバーコード候補領域の位置を検出する領域検出手段と、前記画像記憶手段からバーコード候補領域を読み取り、各バーの面積と重心位置からバーの種類を識別しバーコードを復号化する復号化手段と、を具備するバーコード読み取り装置。
【請求項２】
マスク判定手段は、Ｍ×Ｍ窓内の中央画素を中心として全方向をｍ等分した各方向について、いずれかの方向が交番パターンを検知したとき、バーコードの検出信号を出力することを特徴とする請求項１記載のバーコード読み取り装置。
【請求項３】
マスク判定手段は、Ｍ×Ｍ窓内の所定の画素をアドレスとするテーブル・ルック・アップにより出力値を決定するものとし、予め対象とする標準のバーコードを１画素ずつ走査し、前記所定の画素位置に出現し得るビットパターンを全てルック・アップ・テーブルに学習登録することを特徴とする請求項１記載のバーコード読み取り装置。
【請求項４】
膨張手段は、前記マスク判定手段からの２値画像に対し微小パターンを除去した２値画像に対しパターンを太らせることを特徴とする請求項１乃至３のいずれかに記載のバーコード読み取り装置。
【請求項５】
領域検出手段は、特徴量として面積、周囲長、または外接矩形からバーコード候補領域を検出することを特徴とする請求項１乃至４のいずれかに記載のバーコード読み取り装置。
【請求項６】
バーコードは、ロングバー、セミロングバー、及びタイミングバーからなる郵便カスタマーバーコードであることを特徴とする請求項１記載のバーコード読み取り装置。
【請求項７】
復号化手段は、パターンにラベル付けし、各パターン毎の面積からロングバー、セミロングバー、またはタイミングバーのいずれかであることを識別することを特徴とする請求項６記載のバーコード読み取り装置。
【請求項８】
復号化手段は、各バーの重心位置を通る直線を求め、求めた直線に基づき復号化することを特徴とする請求項６または７に記載のバーコード読み取り装置。
【請求項９】
各バー重心位置を通る直線は、各バーの重心位置を通る回帰直線を求めること特徴とする請求項６記載のバーコード読み取り装置。
【請求項１０】
各バー重心位置を通る直線は、ロングバーまたはタイミングバーの重心位置から求めることを特徴とする請求項８または９記載のバーコード読み取り装置。
【請求項１１】
バーコードの復号化は、各バーの重心位置を通る直線からセミロングバーの重心位置が、前記直線が分割する平面のいずれの領域に含まれるかを検出することにより、セミロングバーの位相関係を識別しバーコードを復号化する請求項８乃至１０のいずれかに記載のバーコード読み取り装置。
【請求項１２】
バーコードを含む２値画像を入力するステップと、入力された２値画像を記憶するステップと、前記２値画像をＭ×Ｍ窓で走査し、バーコードの交番パターンを検出するステップと、前記マスク判定手段からの２値画像に対しパターンを太らせるステップと、前記太らせた２値画像に対しパターンを細らせるステップと、前記細らせた２値画像に対し個々のパターンを分離し、各パターン毎の特徴量からバーコード候補領域の位置を検出するステップと、前記バーコード候補領域を読み取り、各バーの面積と重心位置からバーの種類を識別しバーコードを復号化するステップと、を具備するバーコード読み取り方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、郵便物のような文字、図形、模様を含む文書画像においてバーコードの位置、方向を特定し、バーコードを読み取り復号化するためのバーコード読み取り装置に関する。
【０００２】
【従来の技術】
バーコードは商品販売、物流、生産工程等における物品の管理情報を表記する手段として、幅広い分野で活用されている。このようなバーコードを読み取る方法として、ハンドスキャナーやペン入力スキャナーのように作業者がバーコード面を直接指示しバーコードを読み取る場合や、定置型スキャナーにおいて複数方向にビームを走査させ、少なくとも１本のビームはバーコード面を正しく走査しバーコードを読み取れるように構成される。また一方、対象物を２次元の画像データとして入力し、画像に含まれるバーコード領域を画像処理により抽出し、読取り復号化する方式があり、この方式の場合バーコードの位置、方向に限定を受けることなく、また対象物に複数のバーコードが存在しても全てのバーコードを復号化できる利点がある。このような２次元画像におけるバーコード読み取り技術として、例えば特開平０２−１２５３８６号公報があり、その実施例を図１７を用いて説明する。
【０００３】
図１７は、バーコード読み取りのための画像処理の構成を示しており、入力９０１からの画像データを２値化手段９０３で２値化し、２値レベル変化検出手段９０４により輪郭画像に変換した後、黒膨張手段９０５によりバーコードの一定周期で並ぶ輪郭線を融合しバーコード領域を塗り潰す。続いて黒収縮手段９０６により背景を消滅させバーコード領域を抽出し、この領域の回帰直線に沿って画像データを読み取り復号化するもので、流通用等で用いられている一般的な一次元バーコードに対して、位置、方向の限定を受けることなく読み取ることが可能である。
【０００４】
【発明が解決しようとする課題】
しかしながら上記の従来の構成では、図２に示すバーコードのように、バーのピッチに対しバーの長さが短い場合、バーコード領域を背景から正確に分離することは困難である。図２は郵便処理用バーコード（４−ｓｔａｔｅコード）の例を示しており、２１はロングバー、２２はセミロングバー、２３はタイミングバーである。郵便処理においては、これら３種類のバーの組み合わせにより宛名情報が符号化されている。バーコード各部の標準寸法は、ロングバー長さＨ１が３．６ｍｍ、セミロングバー長さＨ２が２．４ｍｍ、タイミングバー長さＨ３が１．２ｍｍ、バー幅Ｗ１及びバースペースＷ２が０．６ｍｍ、バーピッチＰが１．２ｍｍとなっており、バー長さが印刷文字と同程度であるため、文字等の背景に対しバーコードを正確に分離抽出することは困難である。
【０００５】
本発明は、前記従来技術の課題を解決するもので、４−ｓｔａｔｅコードのようにピッチや大きさが背景と類似している場合でも、任意位置・任意方向のバーコード領域を正確に検出し復号化することのできる信頼性の高いバーコード読み取り装置を提供することを目的とする。
【０００６】
【課題を解決するための手段】
上記課題を解決するために本発明は、バーコードを含む文書画像に対し、Ｍ×Ｍ窓で走査し交番パターンを検出するマスク判定手段と、２値画像中のパターンを所定量太らせる膨張手段と、２値画像中のパターンを所定量細らせる収縮手段と、２値画像中の個々のパターン毎に特徴量を求めバーコード候補領域の位置を検出する領域検出手段と、バーコード候補領域の画像領域を読み取り、各バーの面積と重心位置からバーの種類を識別しバーコードを復号化する復号化手段とを設けたものである。
【０００７】
これにより文書中にバーコードと文字、図形が混在しても、任意位置、任意方向のバーコード領域を高速かつ高精度に検出することができ、信頼性の高いバーコード読み取り装置を実現できる。
【０００８】
【発明の実施の形態】
本発明の請求項１記載の発明は、バーコードを含む文書画像を読み取り２値画像を出力する画像入力手段と、２値画像を記憶する画像記憶手段と、２値画像をＭ×Ｍ窓で走査し交番パターンを検出するマスク判定手段と、前記マスク判定手段からの２値画像に対しパターンを所定量太らせる膨張手段と、２値画像中のパターンを所定量細らせる収縮手段と、２値画像中の個々のパターンを分離し各パターン毎に特徴量を検出することによりバーコード候補領域を検出する領域検出手段と、前記画像記憶手段からバーコード候補領域に相当する画像領域を読み取り、各バーの面積と重心位置からバーの種類を識別しバーコードを復号化する復号化手段と、を具備するバーコード読み取り装置としたものであり、文字や図形の混在する文書画像中任意位置のバーコードを高速かつ高精度に検出し復号化できるという作用を有する。
【０００９】
本発明の請求項２記載の発明は、マスク判定手段は、Ｍ×Ｍ窓内の中央画素を中心として全方向をｍ等分した各方向について、いずれかの方向が交番パターンを検知したとき、バーコードの検出信号を出力するもので、バーコードが任意方向に傾斜していても検出できるという作用を有する。
【００１０】
本発明の請求項３記載の発明は、マスク判定手段は、Ｍ×Ｍ窓内の所定の画素をアドレスとするテーブル・ルック・アップにより出力値を決定するものとし、予め対象とする標準のバーコードを１画素ずつ走査し、前記所定の画素位置に出現し得るビットパターンを全てルック・アップ・テーブルに学習登録するもので、バーコードの種類によらず検出できるという作用を有する。
【００１１】
本発明の請求項４記載の発明は、膨張手段は、前記マスク判定手段からの２値画像に対し微小パターンを除去した２値画像に対しパターンを太らせるもので、微小パターンを除去することで、より正確にバーコード領域を検出することができるという作用を有する。
本発明の請求項５に記載の発明は、バーコード候補領域を検出するための図形的特徴量として、面積、周囲長、または外接矩形を検出するもので、パターンの大きさと形状を正確に判定できるという作用を有する。
【００１２】
本発明の請求項５記載の発明は、復号化の際に各バーの面積と重心位置からバーの組み合わせを検出し復号化するもので、JANコードや4-stateコードなどの多様なコード形式のバーコードを復号化できるという作用を有する。
【００１３】
本発明の請求項６記載の発明は、バーコードは、ロングバー、セミロングバー、及びタイミングバーの３種類からなる4-stateコードを対象とするもので、前記面積、周囲長または外接矩形の特徴量に基づき、正確にバーを識別できるという作用を有する。
【００１４】
本発明の請求項７記載の発明は、パターンの特徴として面積に基づきロングバー、セミロングバー、及びタイミングバーのいずれに該当するかを識別し、さらにロングバーまたはタイミングバーの重心を通る直線を求め、セミロングバーの重心が前記直線の分割する平面のいずれに含まれるかを検出するもので、4-stateバーコードを正確に復号化できるという作用を有する。
本発明の請求項８記載の発明は、復号化手段は、各バーの重心位置を通る直線を求め、求めた直線に基づき復号化することを特徴とするもので、求めた各バーの重心位置を通る直線から各バーを特定することができるので容易に復号化できるという作用を有している。
本発明の請求項９記載の発明は、各バー重心位置を通る直線は、各バーの重心位置を通る回帰直線を求めること特徴とするもので、求めた各バーの重心位置を通る直線から各バーを特定することができるので容易に復号化できるという作用を有している。
本発明の請求項１０記載の発明は、各バー重心位置を通る直線は、ロングバーまたはタイミングバーの重心位置から求めることを特徴とするもので、求めた各バーの重心位置を通る直線から各バーを特定することができるので容易に復号化できるという作用を有している。
本発明の請求項１１記載の発明は、バーコードの復号化は、各バーの重心位置を通る直線からセミロングバーの重心位置が、前記直線が分割する平面のいずれの領域に含まれるかを検出することにより、セミロングバーの位相関係を識別しバーコードを復号化するもので、求めた各バーの重心位置を通る直線から各バーを特定することができるので容易に復号化できるという作用を有している。
本発明の請求項１２記載の発明は、バーコードを含む２値画像を入力するステップと、入力された２値画像を記憶するステップと、前記２値画像をＭ×Ｍ窓で走査し、バーコードの交番パターンを検出するステップと、前記マスク判定手段からの２値画像に対しパターンを太らせるステップと、前記太らせた２値画像に対しパターンを細らせるステップと、前記細らせた２値画像に対し個々のパターンを分離し、各パターン毎の特徴量からバーコード候補領域の位置を検出するステップと、前記バーコード候補領域を読み取り、各バーの面積と重心位置からバーの種類を識別しバーコードを復号化するステップと、を具備するバーコード読み取り方法であり、文字や図形の混在する文書画像中任意位置のバーコードを高速かつ高精度に検出し復号化できるという作用を有する。
【００１５】
以下、本発明の実施の形態について、図１から図１６を用いて説明する。
（実施の形態１）
図１は、本発明の実施の形態１のバーコード読み取り装置のブロック構成図を示し、図１において１はバーコードを含む文書を読み取り２値画像を生成する画像入力手段、２は２値画像を記憶する画像記憶手段、３は２値画像をＭ×Ｍ窓で走査し交番パターンを検出するマスク判定手段、４はマスク判定手段３からの２値画像中の微小パターンを除去する微小図形除去手段、５は微小図形除去手段４からの２値画像中のパターンをｋ１画素太らせる膨張手段、６は膨張手段５からの２値画像中のパターンをｋ２画素細らせる収縮手段、７は収縮手段６からの２値画像中の個々のパターンを分離し各パターン毎に特徴量を検出することによりバーコード候補領域を検出する領域検出手段、８は画像記憶手段２から領域検出手段７で検出したバーコード候補領域に相当する画像領域を読み取りバーコードを復号化する復号化手段、９は復号化手段８から復号化されたコードを用いて仕分けなどを行う出力端子である。
【００１６】
以上のように構成されたバーコード読み取り装置について、その動作を以下に具体的に説明する。画像入力手段１によりバーコードを含む文書を読み取り、バー部が値１、背景が値０をもつ２値画像を生成する。本発明の実施の形態１では画像入力にＣＣＤラインセンサによるイメージスキャナを用い、走査線密度８本／ｍｍ程度で文書を読み取るものとする。したがって入力画像でのバーコード各部のサイズは、ロングバー長さｈ１＝２９画素、セミロングバー長さｈ２＝１９画素タイミングバー長さｈ３＝１０画素、バー幅ｗ１＝５画素、バースペースｗ２＝５画素、ピッチｐ＝１０画素程度となる。
【００１７】
２値化は、固定閾値で行いプリスキャンにより文書の濃度ヒストグラムを求め、パターンと背景による双峰の谷部の閾値を選択し、入力画像を２値化する。このようにして得られた２値画像は画像記憶手段２に記憶するとともに、マスク判定手段３に入力される。
【００１８】
次にマスク判定手段３について図３を用いて説明する。図３は、マスク判定手段３におけるＭ×Ｍ画素の走査窓を示すもので、本実施の形態１ではＭ＝２１画素として説明する。同図において、注目画素Ａを中心に全方角を８等分し、各方向についてＰ１〜Ｐ４、Ｑ１〜Ｑ４、Ｒ１〜Ｒ２、Ｓ１〜Ｓ４、Ｔ１〜Ｔ４、Ｕ１〜Ｕ４、Ｖ１〜Ｖ４の検出器を配置する。このＭ×Ｍ走査窓で入力の２値画像をラスタ走査し、各画素位置において前記検出器における画素の値が（数１）または（数２）の条件をみたすとき１を出力し、それ以外の場合は０を出力する。
【００１９】
【数１】
0003591184.tif 000002
【００２０】
【数２】
0003591184.tif 000003
【００２１】
以上の判定により全方向に関してバーコードにおける交番パターンを検出することができ、（数１）の条件によりバーの中心線付近が、（数２）によりスペースの中心線付近がそれぞれ検出されるため、出力画像ではバーコード部にピッチＰ／２でバー・パターンが配列する。背景の文字図形も上記判定で一部検出されるが、バーコード領域のように密集した状態で検出されることはなく、本処理によりバーコード領域以外の文字や図形が大部分除去される。
【００２２】
次に微小図形除去手段４について図４を用いて説明する。図４は、微小パターンの除去に用いる３×３画素の判定マスクの一例を示すもので、同図（ａ）は各画素位置の定義を示しており、以下具体例として（ｂ）は孤立点、（ｃ）はパターン周辺のノッチ、（ｄ）はパターン中のホールをそれぞれ示している。具体的な処理としては、例えば同図（ｂ）及び（ｃ）については中央画素の位置に値０を出力し、同図（ｄ）については値１を出力する。すなわち２値画像を３×３窓でラスタ走査し、注目画素とその８近傍のビットパターンから注目画素の変換値を求め出力する。これらの処理はラインバッファとシフトレジスタによる窓走査と、ＬＵＴ（ルック・アップ・テーブル）によるパターン判定で実現できるが、これらは一般的な技術であり説明は省略する。
【００２３】
本発明の実施の形態１では、窓走査を４回反復して画像を変換し、奇数回目の処理は注目画素の値を１から０に変換し、偶数回目の処理では注目画素の値を０から１に変換する。図４では、変換するパターンの代表例を示したが、実際は（数３）及び（数４）で決定されるパターンに対し、注目画素の値を変換する。（数３）は奇数回目の走査において、（数４）は偶数回目の走査において変換するパターンの条件式をそれぞれ示している。
【００２４】
【数３】
0003591184.tif 000004
【００２５】
【数４】
0003591184.tif 000005
【００２６】
以上の微小図形の除去により、２ないし３画素以内の孤立パターンが除去され、バーコード領域以外のパターンを除去する効果がある。
【００２７】
次に膨張手段５について説明する。微小図形除去手段４からの２値画像に対し膨張処理を行うことにより、バー及びスペース部のバー・パターンで構成される周期性領域を塗り潰すことを目的とする。本発明の実施の形態１では前記バー及びスペース部のバー・パターンの間には２ないし３画素の隙間があるので、この隙間を埋めるために５×５画素の膨張を行う。すなわち、微小図形除去手段４からの２値画像を５×５窓で走査し、注目画素（窓の中央位置）を含む窓内の全ての画素値の論理和をとり、バーコード領域を塗り潰す。
【００２８】
次に収縮手段６について説明する。膨張手段５からの２値画像に対し収縮処理を行い、バーコード領域のスケルトンを抽出するとともに背景パターンを消滅させる。本実施の形態１では、前記マスク判定手段３、微小図形除去手段４、膨張手段５の一連の処理により抽出されたバーコード領域の最も細い箇所の長さは１０画素程度に変換されているので、連結したスケルトンを抽出するために９×９画素の収縮処理を行うことになる。すなわち膨張手段５からの２値画像を９×９窓で走査し、注目画素（窓の中央位置）を含む窓内の全ての画素値の論理積をとり、パターン全体を細らせる。
【００２９】
次に領域検出手段７について説明する。図５は、領域検出手段のブロック構成図を示し、図５において３０は上記収縮手段６からの２値画像をラベリングし、各ラベル領域の特徴量を通知するラベリング手段、３１はラベリング手段３０からの特徴量によってバーコード候補領域を判定する候補領域判定手段である。
【００３０】
まず、ラベリング手段３について図６から図８を用いて説明する。図６はラベリング手段３０における仮ラベルを付ける手順を示すフロー図、図７は仮ラベルを付けかえる手順を示すフロー図、図８は各ラベル領域の特徴量を登録する特徴量テーブルを示す。
【００３１】
まず、図６を参照しながら仮ラベルを付ける手順について説明する。ステップ４０においてラベルｎの初期値に１を設定し、次にステップ４２において入力画像の最初の走査位置につく。ステップ４２は、注目位置近傍の既走査領域、すなわち図４（ａ）における画素位置ｄ２、ｄ３、ｄ４、ｄ５の位置を参照し、ラベルが付与されている画素があるかどうかを判定するステップで、Ｎｏの場合はステップ４３へ進み、現在の注目位置にラベルｎを付与し、さらにステップ４４においてラベルｎを１更新し、ステップ４１に戻る。前記ステップ４２の判定に関しＹｅｓの場合は、ステップ４５の判定へ進み、注目位置近傍のラベルは全て同一かどうかを判定し、同一ラベルである場合はステップ４６へ進み、それと同一のラベルを注目位置に付え、ステップ４１へ戻る。ステップ４５の判定に関しＮｏの場合はステップ４７へ進み、既走査領域における最も古い（番号の小さい）ラベルを注目位置に与え、更にステップ４８へ進む。
【００３２】
ステップ４８は、ラベルの同一性を記録するステップで、例えば分岐があるパターンに対し、走査が進むことにより枝が合流した場合に、本来は同一のラベルである所を異なるラベルが付与されているため、各々のラベルは同一であることを変換テーブルに記録する。変換テーブルは、［仮ラベル，変換フラグ，変換ラ番号，領域番号］の項目を記録するルックアップテーブルで、既走査領域の全てのラベルを同じラベル番号に統一するために、注目画素ｄ０、ｄ２、ｄ３、ｄ４、ｄ５の画素位置のラベル番号に対し変換フラグをｏｎにし、変換後のラベル番号を登録する。ステップ４９の判定において走査終了ならば次の図５のフローへ進み、そうでない場合はステップ４１へ戻る。
以上の手順により、画像中の全てのパターンに対し仮ラベルが与えられる。
【００３３】
次に図７及び図８を用いて、変換テーブルの書き換え、及びパターンの特徴量を求める処理について説明する。図７において、ステップ５１から６１までは、変換テーブルの書き換え手順を示しており、ステップ６２から６７まではパターンの特徴量を求める手順を示している。
【００３４】
まずステップ５１において、領域番号ｉに１を設定し、ステップ５２で前記変換テーブルを１行ずつ読み込む。ステップ５３の判定において、その仮ラベルと変換ラベルが等しいときはステップ５４へ進み、等しくないときはステップ５２へ戻り変換テーブルの次の行を読む。ステップ５４で領域番号として番号ｉを与えた後、ステップ５５でその変換フラグをｏｆｆにする。続くステップ５６で領域番号を１増大し、変換テーブルを処理終了のときはステップ５８へ進み、終了でない場合は再びステップ５２へ戻り同様の手順を繰り返す。
【００３５】
ステップ５８からは変換フラグに基づいてラベルの同一化を行うもので、変換テーブルを１行ずつ読み込み、ステップ５９の判定で、変換フラグがｏｎの場合はステップ６０へ進み、ｏｆｆの場合はステップ５８へ戻り変換テーブルにおいて次の行を読み込む。ステップ６０においては、現在注目しているラベルの領域番号として、その変換ラベルの示す先の番号位置の領域番号と同じ番号を設定する。以上の手順を変換テーブルの最後まで繰り返す事により、連続した領域番号をもつテーブルに変換される。
【００３６】
ステップ６２以降は、各領域の特徴量を求める手順で、まず図８に示す特徴量テーブルの各項を初期化（値０）し、以下仮ラベルのつけられた画像情報に基づき、各パターンの特徴量を求める。
【００３７】
ステップ６３で１画素読み込んだ後、ステップ６４で現在の仮ラベルの番号をもとに前記変換テーブルを参照し、その領域番号をチェックする。ステップ６５は特徴量テーブルの該当位置に現在注目している画素の座標を加算するもので、領域番号ｉのＸ（ｉ）及びＹ（ｉ）に現在の画素のｘ座標及びｙ座標をそれぞれ加算し、個数ｓ（ｉ）を１インクリメントする。ステップ６６の判定において、画像を最後まで処理した場合はステップ６７へ進み、そうでない場合は再びステップ６３に戻り同様の処理を繰り返す。
【００３８】
ステップ６７においては、図８に示す特徴量テーブルの全ての領域に対し重心位置として、Ｘ（ｉ）／ｓ（ｉ）及びＹ（ｉ）／ｓ（ｉ）を計算し、特徴量テーブルのｘｇ（ｉ）及びｙｇ（ｉ）に書き込む。以上の手順により、入力画像中の連結したパターンの特徴量、すなわち面積、重心位置が求められる。
【００３９】
なお、本発明の実施の形態１では、特徴量として面積を求めたが、かわりにパターンの周囲長あるいはパターンの外接矩形を求め、以降の候補領域判定手段３１においてこれらの特徴を用いて判定を行ってもよい。
【００４０】
また、バーコードのバーは分岐の存在しない凸図形であることを利用し、上記ステップ５１から６１までを省略し、ステップ６２以下は変換テーブルにおいて変換フラグがｏｆｆである番号の領域のみについて処理を行うことも可能である。
【００４１】
次に、候補領域判定手段３１について図９を用いて説明する。図９は、領域判定手段における処理手順を示すフロー図である。
【００４２】
図９において、まずステップ７１で前期特徴量テーブルから島領域の重心座標ｘｇ、ｙｇ、及び面積ｓを１組ずつ読み込む。続いてステップ７２で、面積が（数５）を満足するかどうかを判定する。すなわちバーコード候補領域を判定するもので、バーコード領域の長さｌｂ、ロングバーの高さｈ１、許容度ｄｓ１として（数５）の条件を満たすかどうかを判定する。
【００４３】
【数５】
0003591184.tif 000006
【００４４】
上記の条件を満たさないときは、再びステップ７１へ戻り、条件をみたす場合はステップ７３へ進む。
【００４５】
ステップ７３では、予め用意しておいた候補特徴量テーブルに前記特徴量を書き込む。候補特徴量テーブルは、図８の特徴量テーブルと同じ形式であるので図は省略する。
【００４６】
ステップ７４では、特徴量テーブルのデータを全て処理したかどうか判定し、処理していない場合は再びステップ７１へ戻り、特徴量テーブルのデータがなければ処理を終了する。
以上の処理により、バーコード候補領域が検出される。
【００４７】
次に復号化手段８について説明する。図１０は、復号化手段８においてバーコード候補領域内のバーをグループ化するグルーピング処理手順を示すフロー図、図１１は画像記憶手段２からの２値画像の島領域の特徴量を記述した原画特徴量テーブル、図１２はグルーピング処理時に参照するグループテーブルを示しており、グループテーブルは構造体ｇｒとして定義する。
【００４８】
図１０において、まずステップ８１で画像記憶手段２からの原画像の島領域の特徴量（ｘｇ、ｙｇ、ｓ）をラベリング処理によって検出し、図１１の原画特徴量テーブルに書き込む。ここでのラベリング処理は、前記ラベリング手段３０の処理と同じであるので説明は省略する。また、ここで原画特徴量テーブルの有効フラグは全て“１”にしておく。
【００４９】
ステップ８１で前記領域検出手段７から求められた候補特徴量テーブルの特徴量の重心位置を読み込み、（数６）によって重心位置を中心にした矩形状のバーコードの候補領域の最小座標（ｘｂｍｉｎ，ｙｂｍｉｎ）と最大座標（ｘｂｍａｘ，ｙｂｍｉｎａｘ）を設定する。また、この時に候補特徴量テーブルの領域番号と対応したグループテーブルｇｒの通し番号ｊの島領域の総数ｍｅｍｂｅｒを０にしておく。
【００５０】
【数６】
0003591184.tif 000007
【００５１】
ステップ８２で前記原画特徴量テーブルから、有効フラグが“１”となっている島領域の重心の座標ｘｇ、ｙｇ、及び面積ｓを１組ずつ読み込み、続いてステップ８３で面積ｓが（数７）を満足するかどうかを判定する。すなわちロングバー、セミロングバー、タイミングバーのいずれであるかを判定するもので、許容度ｔ１として（数７）のいずれの条件を満たすかを判定する。
【００５２】
【数７】
0003591184.tif 000008
【００５３】
上記いずれの条件も満たさないときは、８４に戻り原画特徴量テーブルの該当する島領域の有効フラグを“０”にして再びステップ８２へ戻り、いずれかの条件をみたす場合はステップ８５の判定へ進む。
【００５４】
ステップ８５では、ステップ８１で設定した候補領域内に島領域が存在するかどうかを（数８）によって判定する。
【００５５】
【数８】
0003591184.tif 000009
【００５６】
上記の条件を満たす場合には、その島領域の特徴量をグループテーブルへ登録する。ｘ［ｍｅｍｂｅｒ］、ｙ［ｍｅｍｂｅｒ］、ｓ［ｍｅｍｂｅｒ］、及びｂａｒ［ｍｅｍｂｅｒ］に重心のｘ座標、ｙ座標、面積、及びバーの種別を登録する。バーの種別はロングバーが１、セミロングバーが２、タイミングバーが３とする。そして、メンバーの総数ｍｅｍｂｅｒに１を増加する。
【００５７】
条件を満たさない場合には、ステップ８７へ行き、原画特徴量テーブルのデータを全て処理したかどうか判定し、終了していない場合は再びステップ８２へ戻り、終了した場合はステップ８８へ進む。ステップ８８においては、候補特徴量テーブルのデータを全て処理したかどうか判定し、終了していない場合はステップ８１へ戻り、終了した場合はステップ８９へ進む。以上の処理で生成されたグループ全てに対しメンバーの総数のチェックを行い、そのグループがバーコード候補領域かどうかを判定する。バーコードのバーの総数をＮとすると各グループのメンバーの総数ｍｅｍｂｅｒがＮ以上の場合、そのグループの候補フラグｂａｒ＿ｆｌａｇを１にセットし、そうでないグループは０にする。以上の処理により、バーコード候補領域内に含まれるバーの重心座標と種別が検出される。
【００５８】
次に、復号化手段８のデコード手順ついて、図１３及び図１４を用いて説明する。図１３は、バーコードのデコード手順を示すフロー図、図１４はセミロングバーのバーコードの中心線に対する位相関係を示す図である。
【００５９】
図１３において、まずステップ９０で前記グループテーブルから候補フラグが立っているバーコード候補領域のデータを読み込み、ステップ９１で全メンバーの重心座標に基づき、全メンバーを包含する最小の外接矩形を求める。外接矩形とは、全メンバーのｘ座標の最小値ｘｍｉｎ、最大値ｘｍａｘ、及びｙ座標の最小値ｙｍｉｎ、最大値ｙｍａｘとすると、４つの座標（ｘｍｉｎ，ｙｍｉｎ）、（ｘｍａｘ，ｙｍｉｎ）、（ｘｍｉｎ，ｙｍａｘ）、（ｘｍａｘ，ｙｍａｘ）を頂点とする長方形である。この外接矩形のｘ方向の辺がｙ方向の辺以上の長さを有するとき、バーコードの中心軸とｘ軸のなす角が±４５°以内であり、逆にｘ方向の辺の長さがｙ方向の辺の長さ未満であれば、バーコードの中心軸とｙ軸のなす角が±４５°未満である。
【００６０】
ステップ９２では、グループのメンバーのうちグルーピング手順でロングバーあるいはタイミングバーと判定されたメンバーの点を通る回帰直線を求める。回帰直線の式は、バーコードの中心軸とｘ軸のなす角が±４５°以内である場合、ｙ＝ａ＋ｂｘとしてａ及びｂを（数９）に従って求める。ロングバー、タイミングバーの総本数をｎとすると
【００６１】
【数９】
0003591184.tif 000010
【００６２】
またバーコードの中心軸とｙ軸のなす角が、±４５°未満である場合、ｘ＝ｃ＋ｄｙとしてｃ及びｄを（数１０）に従って求める。
【００６３】
【数１０】
0003591184.tif 000011
【００６４】
次にステップ９３において、各メンバーの座標と前記回帰直線との距離を算出し、所定の値δとの比較判定を行い、δを越える場合はステップ９４へ進み、δ以内の場合はステップ９５へ進む。このとき点（ｘ，ｙ）と直線間の距離は次の計算により算出する。直線とｘ軸とのなす角が±４５°以内の場合は（数９）に対応して（数１１）により算出し、直線とｙ軸とのなす角が±４５°以内の場合は（数１０）に対応して（数１２）により算出する。
【００６５】
【数１１】
0003591184.tif 000012
【００６６】
【数１２】
0003591184.tif 000013
【００６７】
ステップ９４においては、該当するメンバーは、直線から離れておりバーとはみなさないため、グループテーブルの該当するｘ、ｙ、ｓ、ｂａｒの項目の値を−１にして無効とし、メンバー総数ｍｅｍｂｅｒの値を１減らす。ステップ９５では全てのメンバーに対して前記直線との距離のチェッを行ったかどうかを判定し、終了した場合はステップ９６へ進み、そうでない場合は再びステップ９３の判定に戻る。ステップ９６ではメンバーの総数がバーコードのバーの総本数と一致するかどうかを判定し、一致する場合はステップ９７へ進み、一致しない場合はこのグループはバーコードではないと判断し、ステップ１００へ進む。
【００６８】
ステップ９７においては、後のステップ９９でバーコードを復号化するために、メンバーを回帰直線に沿って端から整列化する。この時前記直線がｘ軸となす角が±４５°以内の場合は、各メンバーの点のｘ座標に関してソートし、ｙ軸となす角が±４５°未満の場合は、各メンバーの点のｙ座標に関してソートする。続くステップ９８は、３種類のバーのうちのセミロングバーのバーコードの中心軸に対する位相関係を検出するステップであり、図１４にその具体例を示す。
【００６９】
図１４は、バーコードの中心軸とｙ軸とのなす角が±４５°未満である例を示すもので、セミロングバーの重心位置１０１（ｘ１，ｙ１）、１０２（ｘ２，ｙ２）、及び１０３（ｘ３，ｙ３）が中心軸のどちら側に存在するか（直線との位相関係）を検出する。この場合、ｘ１＜ｃ＋ｄ・ｙ１、ｘ２＜ｃ＋ｄ・ｙ２、及びｘ３＞ｃ＋ｄ・ｙ３であるので、点１０１と１０２は直線１０７に対し負側、１０３は直線１０７に対し正側に存在することが検出できる。
【００７０】
ステップ９９では、そのグループメンバーを端から検索し、バーの種別とセミロングバーの位相関係から、図示しないコード変換テーブルを参照し、バーコードを復号化する。続いてステップ１００で候補グループを全てチェックしたかどうかを判定し、チェックを終了していない場合はステップ９０に戻り次の候補グループに関して同様の処理を行い、そうでない場合は処理を終了する。
【００７１】
なお、本発明の実施の形態１では、バーコードとして４−ｓｔａｔｅコードを対象に復号化したが、一般に広く使用されているＪＡＮコードを対象としても実現可能である。この場合、グルーピング手順におけるステップ７２の面積判定により太バーか細バーかの種別を判定し、デコード手順のステップ９９における位相検出にかわり、各メンバー間の距離を求めスペースの大小を判定することにより、バーとスペースの大小を検出すればよい。
【００７２】
また、復号化手段８で復号化されたバーコードは、出力端子９により郵便物等の区分機、荷物の仕分けシステムあるいはスーパーマッケット等のレジスタ等に用いられる。
【００７３】
以上のように本発明の請求項１によれば、文書画像をＭ×Ｍのマスクでラスタ走査し所定ピッチの交番パターンを検出し、膨張および収縮処理でバーコード領域を連結したスケルトンとして抽出しバーコードの候補候補を絞り込み、各候補領域の特徴量からバーコードの位置を特定し復号化することにより、文字や図形の混在する文書画像中のバーコードを高速かつ高精度に検出し復号化できるという効果が得られる。
【００７４】
また、本発明の請求項２により、第２にＭ×Ｍマスク処理は、検出器を放射状に配置し、いずれかの方向が交番パターンを検知したときバーコードの検出信号を出力することにより、バーコードが任意方向に傾斜していても検出できるという効果が得られる。
【００７５】
また、本発明の請求項４により、各ラベル領域の図形的特徴量として、面積、周囲長、または外接矩形を検出する事により、領域判定手段におけるパターンの大きさと形状の判定が正確に行えるという効果が得られる。
【００７６】
また、本発明の請求項５により、復号化の際に各バーの面積と重心位置からバーの組み合わせを検出する事により、ＪＡＮコードや４−ｓｔａｔｅコードなどの多様なコード形式のバーコードを復号化できるという効果が得られる。
【００７７】
また、本発明の請求項６により、バーコードは、ロングバー、セミロングバー、及びタイミングバーの３種類からなる４−ｓｔａｔｅコードを対象とし、面積、周囲長、または外接矩形のいずれかの特徴量に基づきバーの種類を正確に識別できるという効果が得られる。
【００７８】
また、本発明の請求項７により、パターンの特徴として面積に基づきバーが前記３種類のバーのいずれであるかを識別し、さらにセミロングバーの位相関係を識別する際、ロングバーまたはタイミングバーの重心を通る直線を求め、セミロングバーの重心と前記直線の位置関係を検出する事により、簡易な方法で正確にバーコードを復号化できるという効果が得られる。
（実施の形態２）
以下、本発明の実施の形態２について図１５及び図１６を参照しながら説明する。図１５は、本発明の実施の形態２のバーコード読み取り装置におけるＭＸＭマスク判定手段の構成図である。
【００７９】
図１５において、２０１は入力される２値画像を走査するＭ×Ｍ窓走査回路、２０２は入力される２値画像を記憶するイメージメモリ、２０３はｍビットのアドレスに基づき１または０の１ビットのデータを出力するＬＵＴ、２０４は画像入力手段１からの２値画像の入力端子、２０５は微小図形除去手段４への２値画像の出力端子、２０６は入力画像の切替回路、２０７はＬＵＴへのアドレス入力の選択回路、２０８はＣＰＵ、２０９はＲＡＭである。
【００８０】
以上のように構成されたＭ×Ｍマスク判定手段について、その動作を説明する。まずＬＵＴに対象とするパターンを登録する学習モードについて説明する。学習モードは、Ｍ×Ｍ窓により前記サンプル画像を様々な角度で１画素ずつ走査するときにＭ×Ｍ領域に出現するパターンをＬＵＴに対し登録するものである。
具体的には、Ｍ×Ｍ領域からｍ個の画素を選択し、このｍビットをアドレスもつ位置に出力値１を登録する。本発明の実施の形態２ではＭ＝２０、ｍ＝１６とし、入力アドレスとして１６ビットのＬＵＴを構成する。図１６にＭ×Ｍ窓の構成を示す。注目画素Ａを中心とする２０×２０の領域を縦横４等分し１６分割し、各５×５のブロックにおいて中央位置の画素をそのブロックの代表値とし、０〜１５の位置の値をそれぞれＬＳＢ〜ＭＳＢに配し１６ビットアドレスを生成する。
【００８１】
以下、ＬＵＴへのパターン登録の手順について説明する。選択回路２０７において、ＬＵＴ２０３のアドレス入力をＣＰＵ側に設定し、ＬＵＴのデータをすべて０に初期化する。次に切替回路２０６において、入力信号をイメージメモリ２０２側へ入力するように設定し、検出対象とするバーコードのみのサンプル画像を端子２０４より入力する。ＣＰＵ２０８からイメージメモリ２０２上のバーコード画像に対し１画素ずつラスタ走査し、注目位置Ａを中心とする２４×２４画素の領域を切り出しＲＡＭ２０９上に展開する。このとき、０〜１５の位置のビットパターンをアドレスとしてＬＵＴ２０３の該当アドレスにデータとして値１を書き込む。
【００８２】
続いて、ＲＡＭ２０９上の切り出し領域を注目位置Ａを中心として５°回転し、そのときの０〜１５の位置のビットパターンをアドレスとしてＬＵＴ２０３の該当アドレスにデータとして値１を書き込む。以下、５°ずつ３６０°まで切り出し領域を回転させ同様の手順で出現するパターンをＬＵＴ２０３に登録する。次に再びイメージメモリ２０２にアクセスし、次の走査位置を中心に２４×２４の領域を切り出し、同様の登録処理をイメージメモリ２０２上のバーコードの走査が終了するまで繰り返す。
【００８３】
以上の手順により全方向のバーコードをＭ×Ｍの局所領域で見た時に、画素位置０〜１５に出現するビットパターンがＬＵＴ２０３に登録される。
【００８４】
以下、ＬＵＴ２０３を用いた文書画像中のバーコード領域検出の動作について説明する。選択回路２０７において、ＬＵＴのアドレス入力をＭ×Ｍ窓走査回路２０１側へ設定し、さらに切替回路２０６において端子２０４からの入力信号をＭ×Ｍ窓走査回路２０１側へ入力するように設定し、画像入力手段１からの２値画像を入力する。Ｍ×Ｍ窓走査回路は、前記学習モードと同様図１６に示す構造を有し、０〜１５の画素位置の値をそれぞれＬＳＢ〜ＭＳＢに配し１６ビットアドレスを生成しＬＵＴ２０３へ入力する。この時ＬＵＴ２０３から読み出されるデータを注目位置Ａに対応する出力データとして端子２０５から出力する。
【００８５】
よって、本発明の実施の形態２のように、予め検出対象のバーコードを任意の角度で走査した時にＭ×Ｍ領域に出現するパターンをＬＵＴに登録しておくことにより、入力された文書画像において任意の傾斜角のバーコードが任意の位置に存在しても、正確にその領域を検出することができる。
【００８６】
以上のように本発明の請求項３により、Ｍ×Ｍマスク処理は、マスク内の所定の画素をアドレスとするテーブル・ルック・アップで出力値を決めるものとし、予め対象とするバーコードにおいて出現し得るビットパターンを全てルック・アップ・テーブルに学習登録することにより、多様な形式のバーコードを検出できるという効果が得られる。
【００８７】
【発明の効果】
以上のように本発明の効果は、Ｍ×Ｍ走査窓に出現するパターンに対し所定ピッチを有する交番パターンを検出し、膨張及び収縮処理を行い交番パターン領域のスケルトンを抽出し、スケルトンの特徴量からバーコード候補領域を検出し、バーコード候補領域に含まれる各バーの特徴量から各バーの種類の識別、および位相関係の検出を行うことにより、文字、図形を背景に含む文書画像の任意位置かつ任意方向にバーコードが存在しても、高速かつ正確に復号化できる信頼性の高いバーコード読み取り装置が実現できる。
【図面の簡単な説明】
【図１】本発明の実施の形態１におけるバーコード読み取り装置のブロック結線図
【図２】同実施の形態１のバーコード読み取り装置における読み取り対象のバーコードを示す図
【図３】同実施の形態１のバーコード読み取り装置におけるマスク判定手段のＭ×Ｍ走査窓を示す図
【図４】同実施の形態１のバーコード読み取り装置における微小図形除去手段の判定マスクを示す図
【図５】同実施の形態１のバーコード読み取り装置における領域検出手段のブロック結線図
【図６】同実施の形態１のバーコード読み取り装置における領域検出手段のラベリング手段により仮ラベルを付ける手順を示すフロー図
【図７】同実施の形態１のバーコード読み取り装置における領域検出手段のラベリング手段により仮ラベルを付けかえる手順を示すフロー図
【図８】同実施の形態１のバーコード読み取り装置における領域検出手段のラベリング手段によりラベルが付けられた領域の特徴量を登録する特徴量テーブルを示す図
【図９】同実施の形態１のバーコード読み取り装置における領域検出手段の候補領域判定手段の処理手順を示すフロー図
【図１０】同実施の形態１のバーコード読み取り装置における復号化手段のグルーピング手順を示すフロー図
【図１１】同実施の形態１のバーコード読み取り装置における復号化手段においてラベリングされた原画像の特徴量を登録する特徴量テーブルを示す図
【図１２】同実施の形態１のバーコード読み取り装置における復号化手段によりグループ化された領域のメンバーの特徴量を登録するグループテーブルを示す図
【図１３】同実施の形態１のバーコード読み取り装置における復号化手段の復号化手順を示すフロー図
【図１４】同実施の形態１のバーコード読み取り装置における復号化手段によるバーの位相関係の検出を説明する図
【図１５】同実施の形態２のバーコード読み取り装置におけるＭ×Ｍマスク判定手段のブロック構成図
【図１６】同実施の形態２のバーコード読み取り装置におけるＭ×Ｍ走査窓の構成図
【図１７】従来例のブロック結線図
【符号の説明】
１  画像入力手段
２  画像記憶手段
３  マスク判定手段
４  微小図形除去手段
５  膨張手段
６  収縮手段
７  領域検出手段
８  復号化手段
９  出力端子
２１  ロングバー
２２  セミロングバー
２３  タイミングバー
３０  ラベリング手段
３１  候補領域判定手段
１０１  セミロングバーの重心位置
１０２  タイミングバーの重心位置
１０３  セミロングバーの重心位置
２０１  Ｍ×Ｍ窓走査回路
２０２  イメージメモリ
２０３  ＬＵＴ
２０４  画像入力端子
２０５  画像出力端子
２０６  切替回路
２０７  選択回路
２０８  ＣＰＵ
２０９  ＲＡＭ
９０１  画像入力端子
９０２  画信号記憶手段
９０３  ２値化手段
９０４  ２値レベル変化検出手段
９０５  黒膨張手段
９０６  黒収縮手段
９０７  回帰直線演算手段
９０８  読み出し座標演算手段
９０９  バーコード復号化手段
【図１】
0003591184.tif 000014
【図２】
0003591184.tif 000015
【図３】
0003591184.tif 000016
【図４】
0003591184.tif 000017
【図５】
0003591184.tif 000018
【図６】
0003591184.tif 000019
【図７】
0003591184.tif 000020
【図８】
0003591184.tif 000021
【図９】
0003591184.tif 000022
【図１０】
0003591184.tif 000023
【図１１】
0003591184.tif 000024
【図１２】
0003591184.tif 000025
【図１３】
0003591184.tif 000026
【図１４】
0003591184.tif 000027
【図１５】
0003591184.tif 000028
【図１６】
0003591184.tif 000029
【図１７】
0003591184.tif 000030