(57)【特許請求の範囲】
【請求項１】
複数のバーコードを有する帳票を２値化イメージとして入力する画像入力装置と、前記２値化イメージから連結成分を抽出する手段と、前記連結成分の高さと幅の比率が所定の値以上、かつ、幅が所定の値以下であるか判定する手段と、複数の前記連結成分の間の距離が所定の値以下であるか否かを判定し、高さと幅の比率が所定の値以上、幅が所定の値以下である複数の前記連結成分の間の距離が所定の値以下である前記複数の連結成分の領域をバーコード領域として抽出する手段を有するバーコード領域抽出装置であり、該抽出する手段は横長あるいは縦長の連結成分を抽出し、抽出された横長連結成分あるいは縦長連結成分の間の距離が所定の値以下のものを同じグループの連結成分として分類し、分類された各グループの連結成分の領域を前記複数のバーコードのそれぞれのバーコード領域として抽出する手段を含むバーコード領域抽出装置と、前記複数のバーコード領域のバーコードの規格を判定するバーコード度判定装置と、判定結果に基づいて前記バーコード領域のバーコードを認識してコードデータに変換するバーコード認識装置と、前記バーコード認識装置による認識の結果、コードデータへ正常にデコードできたコードを認識結果として判定する認識結果判定装置とを有するバーコード読取りシステムであって、前記バーコード度判定装置は、前記バーコード領域内のラインでバー成分の幅を検出して、検出されるバー幅の頻度をバー幅状態として求める手段と、前記頻度が所定の値を超えたときに前記頻度の極大値があると判断する手段と、前記極大値から所定の範囲にある前記頻度の合計が全頻度に対して所定の割合以上になる場合は、前記バーコード領域内の２値化イメージがバーコードであると判定する手段と、前記極大値の数によりバーコードの規格を判定する手段とを有するバーコード読み取りシステム。
【請求項２】
複数のバーコードを有する帳票を２値化イメージとして入力する画像入力装置と、前記２値化イメージから連結成分を抽出する手段と、前記連結成分の高さと幅の比率が所定の値以上、かつ、幅が所定の値以下であるか判定する手段と、複数の前記連結成分の間の距離が所定の値以下であるか否かを判定し、高さと幅の比率が所定の値以上、幅が所定の値以下である複数の前記連結成分の間の距離が所定の値以下である前記複数の連結成分の領域をバーコード領域として抽出する手段を有するバーコード領域抽出装置であり、該抽出する手段は横長あるいは縦長の連結成分を抽出し、抽出された横長連結成分あるいは縦長連結成分の間の距離が所定の値以下のものを同じグループの連結成分として分類し、分類された各グループの連結成分の領域を前記複数のバーコードのそれぞれのバーコード領域として抽出する手段を含むバーコード領域抽出装置と、前記複数のバーコード領域のバーコードの規格を判定するバーコード度判定装置と、判定結果に基づいて前記バーコード領域のバーコードを認識してコードデータに変換するバーコード認識装置と、前記バーコード認識装置による認識の結果、コードデータへ正常にデコードできたコードを認識結果として判定する認識結果判定装置とを有するバーコード読取りシステムであって、前記バーコード度判定装置は、前記バーコード領域内のバーの上辺のｙ座標の位置の頻度と、下辺のｙ座標の位置の頻度を示すバーベースライン状態を求める手段と、前記頻度の極大値から所定の範囲にある前記頻度の合計が全頻度に対して所定の割合以上になる壊合は前記バーコード領域内の２値化イメージがバーコードであると判定する手段と、前記上辺の位置の頻度の極大値の数および下辺の位置の頻度の極大値の数よりバーコードの規格を判定する手段とを有するバーコード読取りシステム。
【請求項３】
複数のバーコードを有する帳票を２値化イメージとして入力する画像入力装置と、前記２値化イメージから連結成分を抽出する手段と、前記連結成分の高さと幅の比率が所定の値以上、かつ、幅が所定の値以下であるか判定する手段と、複数の前記連結成分の間の距離が所定の値以下であるか否かを判定し、高さと幅の比率が所定の値以上、幅が所定の値以下である複数の前記連結成分の間の距離が所定の値以下である前記複数の連結成分の領域をバーコード領域として抽出する手段を有するバーコード領域抽出装置であり、該抽出する手段は横長あるいは縦長の連結成分を抽出し、抽出された横長連結成分あるいは縦長連結成分の間の距離が所定の値以下のものを同じグループの連結成分として分類し、分類された各グループの連結成分の領域を前記複数のバーコードのそれぞれのバーコード領域として抽出する手段を含むバーコード領域抽出装置と、前記複数のバーコード領域のバーコードの規格を判定するバーコード度判定装置と、判定結果に基づいて前記バーコード領域のバーコードを認識してコードデータに変換するバーコード認識装置と、前記バーコード認識装置による認識の結果、コードデータへ正常にデコードできたコードを認識結果として判定する認識結果判定装置とを有するバーコード読取りシステムであって、前記バーコード度判定装置は、前記バーコード領域内の可読文字を抽出する手段と、前記可読文字を認識して文字の種類によりバーコードの規格を判定する手段とを有するバーコード読取りシステム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は，文書や帳票のバーコードイメージデータを文字コードに変換する読取システムに係り，特に複数規格のバーコード領域を自動抽出し，読取るシステムに関する。
【０００２】
【従来の技術】
一般に，バーコードをＯＣＲ装置で読取る場合は，予めバーコード読取り位置（バーコード領域）とバーコードタイプ（バーコード規格）を指定しておく。そして，読取り時に指定された領域を指定された規格で読取る。また，読取りは横書きのバーコードしか対応していない。この場合，読取る帳票のバーコード位置や，バーコード規格が一定の帳票でないと読取りできない。また，バーコードが横方向だけでなく，縦方向（９０度回転），１８０度回転の読取りもできない。
【０００３】
特開平９−２２４３７号公報には，バーコード領域を自動抽出して読取るバーコード認識装置が記載されている。このバーコード認識装置では，１ライン毎に画素の０１（画素のデータ。例えば，０が白パターン，１が黒パターン）を見ていき，０１の変わる間隔が予め設定された閾値以下の場所で，ＪＡＮのセンターバーの０１０１０パターンに合う所を見つける。見つからない場合は，次のラインで行う。センターバーが見つかった場合は，同間隔の１０１パターンであるスタートバーとエンドバーを見つける。スタートバー，センターバー，エンドバーが見つかった場合はキャラクタコードをを認識（デコード）する。この公報には，ＪＡＮの標準と短縮のコードを識別することは記載されているが，ＪＡＮ以外のバーコード規格には対応できない。また，１ライン上で画素の０１をみて位置決めするため，偶然１ラインのノイズがスタートバー，センターバー，エンドバーに合うパターンが存在した場合は誤抽出する。また，バーコードが横方向に配置されている場合にしか対応できない。
【０００４】
また，特開平１０−１９８７５５号公報には，Ｍ×Ｍマスク判定手段により２値画像を窓走査し所定ピッチを有する交番パターンを検出するバーコード読み取り装置が記載されている。交番パターンは予め学習しておき，パターンが合う所をグループ化していき，その領域の大きさを判定する。その領域を集めたものがバーコード領域になる。このバーコード領域内の各領域の重心と回帰直線と距離で，本当にバーコードの部品か判定して，バーコード以外のものは除外する。そして，バーコード領域をデコードする。この公報は，郵便処理用バーコードを分離抽出するものである。従って，複数規格のバーコードの位置を抽出し認識することは述べてない。そのため，複数規格，複数のバーコード，異なる方向のバーコードに対応できない。
【０００５】
バーコードの規格には，ＩＴＦ（インターリーブド２ｏｆ５），ＮＷ７，Ｃｏｄｅ３９，Ｃｏｄｅ１２８，ＪＡＮ，ＵＰＣなど様々な規格がある。そして，ＩＴＦはＪＩＳ−Ｘ−０５０２，ＮＷ７はＪＩＳ−Ｘ−０５０３，ＪＡＮはＪＩＳ−Ｘ−０５０１として規格化されている。これらの規格は，表現できるキャラクタの種類，バーのサイズ（幅及び長さ，細太エレメント比），バーコードの桁数等が相互に異なっている。また，規格によってはバーコードの桁数を自由に決定することができる。
【０００６】
【発明が解決しようとする課題】
上述した従来のバーコード読み取り装置は，特定のバーコード規格のバーコードの特徴点を検出して，バーコード領域を特定するものである。したがって，指定された規格以外のバーコードは読み取ることが不可能なので，帳票のバーコード規格が不明の場合はバーコード領域の抽出ができなかった。また，帳票毎に異なる規格のバーコードが異なる位置あるいは方向に印刷されている場合にも対応できなかった。
【０００７】
本発明の目的は，帳票に複数の規格の複数のバーコードが異なる位置または異なる方向に印刷されている場合でもバーコード領域を抽出し，バーコードを認識することを可能にし，帳票毎に異なる規格のバーコードが異なる位置あるいは方向に印刷されている場合でもバーコード領域の抽出及びバーコードの認識を可能にすることである。
【０００８】
【課題を解決するための手段】
上記の目的を達成するために，本発明によるバーコード認識装置は，２次元的な画素の分布によってバーコードに類似するイメージを判別することによってバーコード領域を抽出するバーコード領域抽出手段，２次元的な画素の分布によって抽出したバーコード領域内のイメージがバーコードであることを確認し，バーコードの規格を推定するバーコード度判定手段と，バーコード規格を推定できない，または，推定したバーコード規格が複数になるバーコード領域については複数のパーコード規格で認識を行うバーコード認識手段と，複数のバーコード規格による認識結果に基づいてバーコード領域のバーコード規格をしぼりこむ認識結果判定手段とを有することにより，帳票に複数の規格の複数のバーコードが異なる位置または異なる方向に印刷されている場合でもバーコード領域を抽出し，バーコードを認識すること，または，帳票毎に異なる規格のバーコードが異なる位置あるいは方向に印刷されている場合でもバーコード領域の抽出し，バーコードを認識することが可能になる。
【０００９】
【発明の実施の形態】
まず，本発明の実施の形態の原理と動作を説明する。
【００１０】
図１に本発明の第１の実施例のバーコードを読取る処理のブロック図を示す。帳票１０は本発明で読み取るバーコード帳票である。まずイメージスキャナ１１により入力された帳票１０をバーコード領域抽出１２を行う。バーコード領域抽出１２では，帳票毎に印刷位置の異なる複数規格，複数のバーコード，異なる方向に印刷されたバーコードの帳票より自動的にバーコード領域を抽出する。バーコード度判定１３では，抽出されたバーコードが本当にバーコードの領域かのバーコード度の判定，及び，どのバーコード規格かの絞り込みを行うことによりバーコード規格の推定を行う。バーコード認識１４では，バーコード度とバーコード推定の値を基に，バーコード領域のバーコード認識を行う。このバーコード認識は，バーコード度判定の結果でも不定（バーコードであるがバーコードがどの規格か絞り切れない）の場合は，バーコード認識がサポートしてるすべてのデコード規格で認識する。バーコード度判定の結果が複数の規格までしか絞り切れない場合は，バーコード認識では複数の規格でデコードする。認識結果判定１５では，バーコード認識で複数規格分の認識結果中より正読結果を選択する。そして，その選択結果を出力データ１６に出力する。
【００１１】
図２は，バーコード領域抽出１２において，連結成分判定によりバーコード領域を抽出する処理を示す図である。連結成分とは，連続する黒ドットで構成される一つのパターンである。イメージデータ１０上の（１）にある横方向に印刷されたバーコード抽出の例を説明する。この場合は説明例として，（１）のバーコード付近のみを記載している。まず，連結成分抽出で帳票の連結成分２１を抽出する。次に連結成分サイズ判定で，縦長連結成分２２を求める。連結成分サイズ判定では，縦長の連結成分を抽出する。縦長連結成分は，高さ幅の比がＡ：１以上で，幅はＢｍｍ以下の連結成分とする。この場合，横方向に印刷されたバーコードのため，高さは縦方向のサイズで，幅は横方向のサイズになる。そして，縦長連結成分２２より連結成分間距離を判定して，横方向のバーコード領域２３を求める。連結成分間距離判定では，縦長の連結成分どうしの距離がＣｍｍ以下のものを抽出する。
【００１２】
次に縦方向に印刷されたバーコード領域を抽出する例を説明する。この場合は説明例として，（４）のバーコード付近のみを記載している。まず，連結成分抽出で帳票の連結成分２４を抽出する。次に連結成分サイズ判定で，横長連結成分２５を求める。連結成分サイズ判定では，横長の連結成分を抽出する。横長連結成分は，高さ幅の比がＤ：１以上で，幅はＥｍｍ以下の連結成分とする。この場合，縦方向に印刷されたバーコードのため，高さは横方向のサイズで，幅は縦方向のサイズになる。そして，横長連結成分２５より連結成分間距離を判定して，縦方向のバーコード領域２６を求める。連結成分間距離判定では，横長の連結成分どうしの距離がＦｍｍ以下のものを抽出する。なお，この実施例では，高さ幅の比のＡとＤは５，ＢとＥは１．５，ＣとＦは１．５である。
【００１３】
図３は，バーコード領域抽出１２において，太め細め結果により横方向のバーコードのバーコード領域を抽出する処理を示す図である。イメージデータ１０上の（１）にある横方向に印刷されたバーコード抽出の例を説明する。この場合は説明の例として，（１）のバーコード付近のみを記載している。まず，帳票のパターンを横方向に太らせた後で細めた太め細め結果３１を抽出する。次に，太め細め結果３１から連結成分抽出で帳票の連結成分３２を抽出する。さらに，横長連結成分抽出で，横長連結成分３３を求める。一方，イメージデータ１０から連結成分抽出により帳票の連結成分３４を抽出する。次に，縦長連結成分抽出で縦長の連結成分３５を抽出する。縦長連結成分抽出では，縦長の連結成分を抽出する。縦長の連結成分は，高さ幅の比がＧ：１以上で幅はＨｍｍ以下の連結成分とする。この実施例では，高さ幅の比のＧは５，Ｈは１．５である。そして，連結成分だぶり判定で，横長連結成分３３と縦長連結成分３５を基に，両方で存在する領域を見つける。その結果，横方向のバーコード領域３６が抽出される。
【００１４】
図４は，バーコード領域抽出１２において，太め細め結果により縦方向のバーコードのバーコード領域を抽出する処理を示す図である。イメージデータ１０上の（４）にある縦方向に印刷されたバーコード抽出の例を説明する。この場合は説明の例として，（４）のバーコード付近のみを記載している。まず，帳票のパターンを縦方向に太らせた後で細めた太め細め結果４１を抽出する。次に，太め細め結果４１から連結成分抽出で帳票の連結成分４２を抽出する。さらに，縦長連結成分抽出で，縦長連結成分４３を求める。一方，イメージデータ１０から連結成分抽出により帳票の連結成分４４を抽出する。次に，横長連結成分抽出で横長の連結成分４５を抽出する。横長連結成分抽出では，横長の連結成分を抽出する。横長の連結成分は高さ幅の比がＩ：１以上で幅はＪｍｍ以下の連結成分とする。この実施例では，縦方向に印刷されたバーコードのため，高さは横方向のサイズで，幅は縦方向のサイズになる。例えば高さ幅の比のＩは５，Ｊは１．５である。そして，連結成分だぶり判定で，縦長連結成分４３と横長連結成分４５を基に，両方で存在する領域を見つける。その結果，縦方向のバーコード領域４６が抽出される。
【００１５】
図５は，バー幅でバーコード度を判定するバーコード度判定処理を説明する図である。バーコード領域として抽出されたバーコードイメージよりバーコード度を判定する方法を説明する。ここでは，バーコード領域抽出処理によって抽出された（１）のバーコード領域５０を例に説明する。まず，バーコード５１よりバー幅状態５２を求める。このバー幅状態５２は，バーコード領域内の全てのラインでバー成分の幅を検出して，検出されるバーの幅の頻度を求める。このバー幅状態５２より，バーコード度を判定する。頻度がバーコード領域の高さ（ライン数）×Ｋ以上ある場合，頻度の極大値があると判定する。例えば，頻度がライン数の２倍以上ある時に頻度の極大値があると判定する場合は，Ｋ＝２とする。そして，バー幅状態の頻度の極大値があるバー幅の値を中心として±Ｎ１ドットの範囲にあるバー幅状態の頻度の合計が全頻度のＮ２％以上の場合は，バーコード度ＢＣＤ１Ｎ５３＝２５％×係数を出力する。係数は，他のバーコード度判定処理との間の重要度に基づいて決定される重み付け係数である。バーコード規格推定では，バー幅状態の頻度の極大値が，２つの場合はＣｏｄｅ３９，ＮＷ７，Interleaved2of5，ＩＴＦ，Ｃｏｄｅ１２８等の太バーと細バーのみ存在する規格になる。３つ以上の場合はＪＡＮ，ＵＰＣ等の１，２，３，４倍のバーがあるコードの規格になる。この結果により，バーコード推定ＢＣＳ１Ｎ５４を出力する。各記号の値は，以下のようになる。
【００１６】
Ｎ１＝２×（入力イメージdpi÷２００）
但し，入力イメージが２００dpi以下の場合は，入力イメージdpi÷２００＝１とする。
Ｎ２＝８０
極大値と判定する値＝バーコード領域高さ（ライン数）×Ｋ
ＢＣＤ１Ｎ＝２５％×係数
ＢＣＳ１Ｎ＝コード規格フラグ
「ビット：上位より1ビット毎に，ＪＡＮ(標準)，ＪＡＮ(短縮)，Ｃｏｄｅ３９，ＮＷ７，Interleaved2of5，ＩＴＦ，Ｃｏｄｅ１２８，ＵＰＣ」
以上の値はディフォルト値であり，読み取る帳票を評価して最適値を設定可能である。
【００１７】
図６は，バーのベースラインでバーコード度を判定するバーコード度判定処理を説明する図である。ここでは，バーコード領域抽出処理によって抽出された（１）のバーコード領域６０を例に説明する。まず，バーコード領域内の各バーについて，バー上辺の位置を示す上辺ベースライン成分６１とバー下辺の位置を示す下辺ベースライン成分６２とを求める。この上辺ベースライン成分６１からバーの上辺位置（スタートｙ座標）を，下辺ベースライン成分６２から下辺位置（エンドｙ座標）を検出して，バーベースライン状態６３，６４を求める。このバーベースライン状態は，バー上辺についてはバー上辺があるｙ座標の頻度，バー下辺についてはバー下辺があるｙ座標の頻度として求められる。このバーベースライン状態６３，６４より，バーコード度を判定する。バーコード度は，バーベースライン状態６３，６４において頻度の極大値が出た座標から±Ｎ１１ドットの範囲にある頻度の合計が全頻度のＮ２１％以上の場合は，バーコード度ＢＣＤ２Ｎ６５＝２５％×係数を出力する。バーコード度ＢＣＤ１Ｎ５３＝２５％×係数を出力する。係数は，他のバーコード度判定処理との間の重要度に基づいて決定される重み付け係数である。バーコード規格推定では，バーベースライン状態の頻度の極大値が，上辺が１つで下辺が２つの場合は，ＪＡＮ，ＵＰＣ等長さが異なるバーを有する規格になる。この結果により，バーコード推定ＢＣＳ２Ｎ６６を出力する。各記号の値は，以下のようになる。
【００１８】
Ｎ１１＝２×（入力イメージdpi÷２００）
但し，入力イメージdpi以下の場合は，入力イメージdpi÷２００＝１
Ｎ２１＝８０
ＢＣＤ２Ｎ＝２５％×係数
ＢＣＳ２Ｎ＝コード規格フラグ
「ビット：上位より1ビット毎に，ＪＡＮ(標準)，ＪＡＮ(短縮)，Ｃｏｄｅ３９，ＮＷ７，Interleaved2of5，ＩＴＦ，Ｃｏｄｅ１２８，ＵＰＣ」
以上の値はディフォルト値であり，読み取る帳票を評価して最適値にを設定可能である。
【００１９】
図７は，バーの可読文字でバーコード度を判定するバーコード度判定処理を説明する図である。ここでは，バーコード領域抽出処理によって抽出された（１）のバーコード領域７０を例に説明する。まず，バーコード領域内の上辺または下辺のエリアを見て，文字サイズ比（幅：高さ）がＨ１：１〜Ｈ２：１に入る可読文字領域７１を求める。この可読文字領域内の成分を文字認識して，認識結果７２求める。この認識結果７２よりバーコード度を判定する。バーコード度は，バーコード領域の上辺または下辺に可読文字が存在する場合は，バーコード度ＢＣＤ２Ｎ７３＝２５％×係数を出力する。バーコード度ＢＣＤ１Ｎ５３＝２５％×係数を出力する。係数は，他のバーコード度判定処理との間の重要度に基づいて決定される重み付け係数である。バーコード規格推定では，可読文字認識結果が，最初と最後の文字が英字，その間が数字の場合は，ＮＷ７になる。最初と最後の文字が記号の＊で，その間が数字，英字，記号，または，数字・英字・記号の２種若しくは３種の混在の場合は，Ｃｏｄｅ３９になる。数字のみ場合は，ＪＡＮ，ＵＰＣ，Interleaved2of5，ＩＴＦのいずれかになる。最初と最後の文字が英字で，その間が英数記号の場合は，Ｃｏｄｅ１２８になる。この結果としてバーコード推定ＢＣＳ３Ｎ７４を出力する。各記号の値は，以下のようになる。
【００２０】
Ｈ１＝０．３
Ｈ２＝１．２
ＢＣＤ３Ｎ＝２５％×係数
ＢＣＳ３Ｎ＝コード規格フラグ
「ビット：上位より1ビット毎に，ＪＡＮ(標準)，ＪＡＮ(短縮)，Ｃｏｄｅ３９，ＮＷ７，Interleaved2of5，ＩＴＦ，Ｃｏｄｅ１２８，ＵＰＣ」
以上の値はディフォルト値であり，読み取る帳票を評価して最適値に設定可能である。
【００２１】
図８は，バーの本数でバーコード度を判定するバーコード度判定処理を説明する図である。ここでは，バーコード領域抽出処理によって抽出された（１）のバーコード領域８０を例に説明する。まず，バーコード領域内の黒バーの本数探索方向８１で探索し，バー本数抽出する。この結果，バー本数ＮＮ本８２が求まる。この本数が３０本の場合，ＪＡＮ（標準），ＵＰＣのいずれかになる。２２本の場合は，ＪＡＮ（短縮）になる。５で割れる本数の場合，Ｃｏｄｅ３９，Interleaved2of5，ＩＴＦのいずれかになる。４で割れる本数の場合は，ＮＷ７になる。３で割れる本数の場合は，Ｃｏｄｅ３９になる。この結果，バーコード推定ＢＣＳ４Ｎ８３を出力する。
【００２２】
図５，図６，図７，図８では横方向のバーコード度判定であったが，縦方向のバーコード度判定も９０度回転させた内容で可能である。
【００２３】
図９は，バーコードを認識する処理を説明する図である。まず，９０では認識の対象となるバーコードについて，図５〜図８のバーコード度及びバーコード推定の判定結果により認識する方法を切り替える。
【００２４】
具体的には，図５〜図８のバーコード度判定処理によるバーコード度の合計が５０％以上で，バーコード推定結果が不定（絞れない）の場合は不定９１で処理する。この場合は，不定のためすべての規格でデコードして，各デコード結果を認識結果判定９３へ委ねる。
【００２５】
図５〜図８のバーコード度判定処理によるバーコード度の合計が５０％以上で，バーコード推定結果が複数であるが絞れた（コード規格フラグが立つ規格が全てではないが複数あった）場合は複数規格候補９４で処理する。この場合は，規格候補が複数あるため，推定された複数の規格でデコードして，各デコード結果を認識結果判定９３へ委ねる。
【００２６】
また，絞り込んだ複数の規格でデコードする場合，複数の規格に優先順位を付けることができる。この優先順位は，バーコード度判定処理のバーコード推定の結果を利用して決定される。すなわち，図５〜図８のバーコード度判定処理で出力されるコード規格フラグに基づいて，各バーコード度判定処理毎にＸ点をつける。Ｘ点は，各バーコード度判定で予め指定された係数ＸＫにその規格のフラグが立っている場合は１，立っていない場合は０を乗じた値である。そして，バーコード度判定後との点数を合計した値が，各バーコード規格毎の点数になる。さらに，同点になった場合は，ユーザ情報に設定された内容に基づいて，図５〜図８の処理のうち指定した処理でフラグが立った規格を優先したり，ＪＩＳになっている規格を優先するように設定することができる。
【００２７】
例えば，図５のバーコード判定では極大値が３つ，図６では上辺の極大値が１つで下辺の極大値が２つ，図７では数字，図８ではバーの本数が５の倍数であるバーコードの場合，ＸＫ＝１とすると，ＪＡＮ（標準）＝４点，ＪＡＮ（短縮）＝３点，ＵＰＣ＝３点，ＩＴＦ＝２点，Interleaved2of5＝２点，Ｃｏｄｅ３９＝１点になる。この場合，ＩＴＦとInterleaved2of5との優先順位は同じ（２点）であるが，ユーザ情報よってＪＩＳ規格になっている規格を優先するように設定されていれば，ＩＴＦが優先される。そのため，このバーコードのバーコード推定によるバーコード規格の優先順位は，ＪＡＮ（標準），ＪＡＮ（短縮），ＵＰＣ，ＩＴＦ，Interleaved2of5，Ｃｏｄｅ３９の順となる。
また，図５のバーコード判定では極大値が２つ，図６では上辺の極大値が１つで下辺の極大値が２つ，図７では数字，図８ではバーの本数が５の倍数であるバーコードの場合，ＸＫ＝１とすると，ＪＡＮ（標準）＝２点，ＪＡＮ（短縮）＝１点，ＵＰＣ＝２点，ＩＴＦ＝４点，Interleaved2of5＝４点，Ｃｏｄｅ３９＝３点，ＮＷ７＝２点になる。この場合，ＪＡＮ（標準），ＵＰＣ及びＮＷは優先順位が同じ（２点）であるが，ユーザ情報よって図６の処理による判定を優先するように設定されていれば，ＮＷ７が優先される。また，ＪＩＳになっている規格を優先するように設定されていれば，ＪＡＮ（標準）とＵＰＣとでは，ＪＡＮ（標準）が優先される。この結果，このバーコードのバーコード推定によるバーコード規格の優先順位は，ＩＴＦ，Interleaved2of5，Ｃｏｄｅ３９，ＮＷ７，ＪＡＮ（標準），ＵＰＣ，ＪＡＮ（短縮）の順となる。
【００２８】
図５〜図８のバーコード度判定処理によるバーコード度の合計が５０％以上で，バーコード推定結果が絞り切れた（全ての処理でコード規格フラグが１つの規格にしか立たなかった）場合は，１規格候補９６で処理する。この場合は，推定された規格でデコードして，各デコード結果を認識結果として出力する。
【００２９】
全ての規格でデコード９２，抽出複数規格でデコード９５，抽出規格でデコード９７は，バーコードをデコードする処理である。全ての規格でデコード９２ではバーコード認識処理がサポートする全ての規格で，抽出複数規格でデコード９５ではバーコード判定で抽出した複数の規格で，抽出規格でデコード９７はバーコード判定で特定した１つの規格でデコードする。デコードする場合は，まずその規格のスタート・エンド規格を確認する。確認できない場合は，１８０度回転してる可能があるので，１８０度回転してスタート・エンドを確認する。その結果でも確認できない場合は，不読で出力する。スタート・エンドの確認は，バーコード規格で決められたスタート・エンドのパターンかどうかで判定する。また，バーコード領域抽出で横方向印刷のバーコードか縦方向印刷のバーコードかわかっているため，縦方向の場合は90度回転させた方向でデコードする。複数の規格でデコードする場合は，それぞれの規格についてデコードの処理を繰り返す。
【００３０】
図１０は，認識結果を判定する処理を説明する図である。バーコード認識処理で複数の規格でデコードした場合は，そのデコード結果から認識結果を抽出する。
【００３１】
例えば，１００に示す様なデコード結果に基づいて，１０１でデコード結果より不読以外のデコード結果を選択する。デコード結果に正読がある場合は，デコード結果を認識結果として出力（１０４）する。
【００３２】
デコード結果に不読しかない場合は，スタート／エンドの想定１０２の処理を行う。この処理では，まず，バーのスタート部分とエンド部分のコード規格を確認する。確認はデコードを行った複数の規格の全ての規格で行う。その結果，スタート部分とエンド部分とで規格が異なる場合は，スタート部分のバーコード規格のエンド部分をスタート部分の次のバーより探索していく。また，エンド部分については，エンド部分のバーコード規格のスタート部分をエンドの前のバーより探索していく。そして，スタート部分に対応するエンド部分，または，エンド部分に対応するスタート部分を検出できた場合は，探索結果に基づいてスタートエンドの規格が合う位置でバーコードイメージを分割する（バーコード分割１０３）。そして，抽出規格でデコード１０４で，検出したバーコード規格で分割したバーコード毎にデコードする。
【００３３】
デコード結果選択１０１で，正読が複数ある場合は，正読の絞り込みを行う。バーコード度判定で複数規格に絞られていた場合は，一番優先順位が高いバーコード規格の結果にする。また，一番優先順位が高いバーコード規格が不読の場合は次に順位が高い規格にする。もしくは，一番優先順位の高いコード規格の結果が不読の場合はそのまま不読，もしくはスペースの出力することもできる。上述した出力の切換はユーザの指示情報で切り替える。不読を出力する場合は指定した不読を示す文字コード（例えば”？”），スペースはスペースの文字コードとなる。また，バーコード度判定で不定の場合は，不読もしくはスペースで出力する（１０５）。
【００３４】
図１１は，バーコード領域内にマークのあるバーコードを読取る処理を示す図である。ここでは，帳票１１０上の（６）のマークがあるバーコードの読取りについて説明する。この実施例では，マークは赤または青でドロップアウトできる色になっているものとする。マークがあるバーコードを読取る場合は，イメージ入力する時に，帳票１１０を赤ドロップアウトで入力した画像１１１及び青ドロップアウトで入力した画像１１２を入力する。入力した画像について，通常のバーコードと同じようにバーコード領域抽出処理，バーコード度判定処理，バーコード認識処理を行う（１１３）。これらの処理は，上述した本発明による処理である。そして，赤ドロップアウト画像のバーコードのデコード結果１１４及び青ドロップアウト画像のバーコードのデコード結果１１５について，デコード結果から不読以外の結果を選択する処理を行う（１１６）。そして，デコード結果が不読ではない１１４を認識結果として選択して出力する。
【００３５】
以下，本発明の実施例によるバーコード読み取りシステムの構成を詳細に説明する。
図１２，図１３は，本発明によるシステムの構成を示す図である。本システムは，システムと読取システムより構成される。
【００３６】
図１２は，システムの構成を示す図である。文書や帳票をイメージデータとして入力するイメージスキャナ装置２０１，入力されたイメージを記憶するイメージ記憶装２０２，読取システムをコールするための読取システムインタフェース３００，認識結果を記憶する認識結果記憶装置２０３，ユーザからの指示を入力する外部指示入力装置２０４，入力イメージの処理を行うイメージ処理装置２０５ユーザからの指示を入力する際の操作画面を表示する表示装置２０６，これらの各装置を制御する制御装置２０７ より構成される。
【００３７】
図１３は，読取システムの構成を示す図である。上位システム（ユーザシステム）よりの制御情報及びデータ転送を行うシステムインタフェース装置３０１，転送されたイメージを記憶するイメージ記憶装置３０２，イメージデータよりランデータを抽出するラン抽出装置３０３，連結成分を抽出する連結成分抽出装置３０４，バーコード領域を抽出するバーコード領域抽出装置３０５，ランの太め細めを行うラン太め細め装置３０６，バーコードが縦方向か横方向かを判定するバーコード領域縦横判定装置３０７，バーコード領域情報を記憶するバーコード領域記憶装置３０８，バー幅でバーコード度を判定するバー幅判定装置３０９，バーベースラインでバーコード度を判定するバーベースライン判定装置３１０，可読文字でバーコード度を判定する可読文字判定装置３１１，バー本数でバーコード度を判定するバー本数判定装置３１２，バーコード度の情報を記憶するバーコード度記憶装置３１３，デコードするバーコード規格かどうかを判定するバーコード規格判定装置，バーコードをデコード（認識＝文字コード）するバーコードデコード装置３１５，デコード結果より読取りバーコードの正解認識結果を判定する認識結果判定装置３１６，バーコードスタートエンド部分を確認してバーコード領域を切断するバーコード領域スタートエンド確認切断装置３１７，認識結果を記憶する認識結果記憶装置３１８，文字認識装置３１９より構成される。
【００３８】
次に，図１４のバーコード読取りのフローチャートを，図１，図２，図３，図４，図５，図６，図７，図８，図１０，図１１，図１２，図１３を用いて説明する。
【００３９】
まず，図１４のイメージ入力１２０では，イメージ入力装置２０１より帳票１０のイメージデータを入力し，そのイメージデータがイメージ記憶装置２０２に記憶される。次に読取システムインタフェース３００とシステムインタフェース３０１を経由して，イメージデータがイメージ記憶装置３０２へ記憶される。
【００４０】
バーコード領域抽出１２１では，イメージ記憶装置３０２にあるイメージデータよりバーコード領域を抽出する。このバーコード領域抽出では，連結成分で抽出する方法と，ランの太め細めで抽出する方法がある。連結成分とは黒画素の集まりまとめたエリアで，ランとは黒画素が1ライン毎に連続しているスタートとエンド座標情報の全画素分である。
【００４１】
まず，連結成分で抽出する方法を説明する。連結成分によるバーコード領域抽出１２２では，イメージ記憶装置３０２にあるイメージデータについて，ランをラン抽出装置３０３で求め，連結成分抽出装置３０４で，このランより連結成分を求める。この連結成分について，バーコード領域抽出装置３０５で図２の処理を行い，バーコード領域を抽出する。
【００４２】
次に，ランの太め細めで抽出する方法を説明する。太め細め結果によるバーコード領域抽出１２３では，イメージ記憶装置３０２にあるイメージデータについて，ランをラン抽出装置３０３で求め，ラン太め細め装置３０６を行い，このランより連結成分抽出装置３０４で連結成分を求める。この結果をバーコード領域抽出装置３０５で図３，図４の処理を行い，バーコード領域を抽出する。
【００４３】
次に，バーコード領域縦横判定１２４では，バーコード領域抽出装置３０５した結果を，バーコード領域縦横判定装置３０７で判定する。判定方法は，図２では２１から２３までの処理結果が横方向のバーコード領域になる。また，２４から２６までの処理結果が縦方向のバーコード領域になる。図３での処理結果は，横方向のバーコード領域になる。図４での処理結果は，縦方向のバーコード領域になる。そして，バーコード領域記憶装置３０８に記憶する。連結成分で抽出する方法と，ランの太め細めで抽出する方法とのどちらを使用するか，両方使用するかについては，ユーザの指示で切り替える。
【００４４】
バーコード度判定１２５は，バーコード領域記憶装置３０８のバーコード領域のバーコード度を判定する。図５の処理をバー幅判定装置３０９，図６の処理をバーベースライン判定装置３１０，図７の処理は，可読文字判定装置３１１で可読文字を抽出し，可読文字の文字認識を文字認識装置３１９を使用して認識結果をもとめる。図８の処理をバー本数判定装置３１２で行う。その結果のバーコード度とバーコード推定をバーコード度記憶装置３１３に記憶する。この処理はユーザの指示によりスキップする事も可能である。その場合のバーコード度情報は，バーコード度を５０％に，バーコード推定は不定（絞り切れない）にする。
【００４５】
バーコード認識１２６はイメージ記憶装置３０２よりバーコード領域記憶装置３０８にあるバーコード領域内のイメージを入力する。また，バーコード度記憶装置３１３よりバーコード度とバーコード推定を基に，バーコード規格判定装置３１４でデコード前スタートエンド確認する。図９の９２，９３，９５，９７処理を，バーコードデコード装置３１５で行う。そして，図９の９８の処理は，デコード結果を認識結果記憶装置３１８に記憶する。また，複数の規格で正読がある場合は，認識判定装置３１６において図１０で説明Ｓた正読絞り込みが行われる。
【００４６】
認識結果判定１２７は，バーコードデコード装置３１５のデコード結果を，認識装置判定装置３１６とバーコード領域スタートエンド確認切断装置３１７で図１０の処理がおこなわれる。バーコード領域スタートエンド確認切断装置３１７で切断したバーコードをデコードするのは，バーコードデコード装置３１５行う。そして，図１０の１０４の処理は，デコード結果を認識結果記憶装置３１８に記憶する。
【００４７】
読取結果出力１２８では，認識結果記憶装置３１８に記憶するバーコード認識情報をシステムフェース装置３０１を経由して読取システムインタフェース３００より，読取結果記憶装置２０３に記憶される。
【００４８】
図１１の処理は，ユーザの指示によりイメージ入力装置２０１より，赤ドロップアウトで入力した画像１１１，青ドロップアウトで入力した画像１１２を入力して，イメージ記憶装置３０２に記憶する。そして，両方の画像でバーコード領域抽出，バーコード度判定を行いデコードする。その結果，どちらの画像結果を出力するかの判定処理１１６を，認識結果判定装置３１６で行い，認識結果記憶装置３１８に記憶する。そして，認識結果記憶装置３１８に記憶するバーコード認識情報をシステムフェース装置３０１を経由して読取システムインタフェース３００より，読取結果記憶装置２０３に記憶される。
【００４９】
入力イメージを多値で行う場合，ユーザで指示で，多値画像を複数のスライスレベルの２値イメージを，イメージ記憶装置３０２に記憶する。数のスライスレベルの２値イメージ化はイメージ記憶処理装置２０６で行われる。後の認識までの処理は，図１１の処理の２イメージを複数イメージと置き換えることで可能である。複数のスライスレベルの２値イメージとは，例えば薄いスライスレベル，標準スライスレベル，濃いスライスレベルの３種類の場合がある。多値のスライスレベルが２５６の場合，薄いスライスレベルは１４０，標準スライスレベルは１２８，濃いスライスレベル１１０である。
【００５０】
入力イメージをカラーで行う場合，ユーザで指示で，カラー画像を複数のカラー種類のスライスレベルの２値イメージを，イメージ記憶装置３０２に記憶する。数のスライスレベルの２値イメージ化はイメージ記憶処理装置２０６で行われる。後の認識までの処理は，図１１の処理の２イメージを複数イメージと置き換えることで可能である。複数カラー種類のスライスレベルの２値イメージとは，例えば青色での標準スライスレベル，赤色での標準スライスレベル，緑色での標準スライスレベルの３種類の場合がある。
【００５１】
図１５に本発明の第２の実施例のバーコードを読取るブロック図を示す。第２の実施例では，バーコード度判定を行わず，バーコード領域抽出で抽出したバーコードの認識を，バーコード認識でサポートする全ての規格で行う。帳票５１０は本発明で読み取るバーコード帳票である。
【００５２】
まず，イメージスキャナ５１１により入力された帳票１０をバーコード領域抽出５１２を行う。バーコード領域抽出５１２では，帳票毎に印刷位置の異なる複数規格，複数のバーコード，異なる方向に印刷されたバーコードの帳票より自動的にバーコード領域を抽出するために，図２の連結成分判定によるバーコード領域抽出処理，図３及び図４による太め細め結果によるバーコード領域抽出処理を行う。これらの処理は，第１の実施例の場合と同様であり，横方向あるいは縦方向に印刷されたバーコード領域が抽出される。
【００５３】
バーコード認識５１３では，抽出したバーコード領域のバーコード認識を行う。認識結果判定５１４では，バーコードが認識できたかどうか判定し，そのデコード結果を出力データ５１５に出力する。
【００５４】
図１６は，バーコード認識及び認識結果判定の処理を説明する図である。５５０では，バーコード領域選択５１２で抽出したバーコード領域５１０を選択し，バーコード認識処理がサポートしてるすべてのデコード規格で認識する（ステップ５５０）。そして，デコード結果５５２から，不読以外の結果を選択する（ステップ５５３）。デコード結果に正読があれば，デコード結果を認識結果として出力する（ステップ５５４）。
【００５５】
この実施例によれば，バーコード領域を抽出した後，バーコード度判定を行わずにバーコードの認識を行うので，バーコード認識でサポートする規格が少ない場合は，簡易なシステムで複数の規格のバーコードが記載された帳票について，バーコード認識を行うことができる。
【００５６】
【発明の効果】
以上説明したように本発明によれば，バーコード領域抽出，バーコード度判定，バーコード認識，認識結果判定の処理を行う。これにより帳票に複数の規格の複数のバーコードが異なる位置または異なる方向に印刷されている場合でもバーコード領域を抽出し，バーコードを認識すること，または，帳票毎に異なる規格のバーコードが異なる位置あるいは方向に印刷されている場合でもバーコード領域の抽出し，バーコードを認識することが可能になる。
【図面の簡単な説明】
【図１】本発明による第１の実施例のバーコードを読取る処理のブロック図である。
【図２】本発明の連結成分判定によるバーコード領域抽出処理を示す図である。
【図３】本発明の太め細め結果による横方向のバーコード領域抽出処理を示す図である。
【図４】本発明の太め細め結果による縦方向のバーコード領域抽出処理を示す図である。
【図５】本発明のバー幅によるバーコード度判定処理を示す図である。
【図６】本発明のバーベースライン状態によるバーコード度判定処理を示す図である。
【図７】本発明の可読文字によるバーコード度判定処理を示す図である。
【図８】本発明のバー本数によるバーコード度判定処理を示す図である。
【図９】本発明のバーコード認識処理を示す図である。
【図１０】本発明の認識結果判定処理を示す図である。
【図１１】本発明のバーコード領域内にマークがあるバーコードを読取る処理を示す図である。
【図１２】本発明の実施例のシステム構成を示す図である。
【図１３】本発明の一実施例の読取システム構成を示す図である。
【図１４】本発明の一実施例の読取りフローを示す図である。
【図１５】本発明による第２の実施例のバーコードを読取る処理のブロック図である。
【図１６】本発明による第２の実施例のバーコード認識及び認識結果判定の処理のブロック図である。
【符号の説明】
１０…帳票，１１…イメージスキャナ，１２…バーコード領域抽出，
１３…バーコード度判定，１４…バーコード認識，１５…認識結果判定，
１６…出力データ。
【図１】
0003640573.tif 000002
【図２】
0003640573.tif 000003
【図３】
0003640573.tif 000004
【図４】
0003640573.tif 000005
【図５】
0003640573.tif 000006
【図６】
0003640573.tif 000007
【図７】
0003640573.tif 000008
【図８】
0003640573.tif 000009
【図９】
0003640573.tif 000010
【図１０】
0003640573.tif 000011
【図１１】
0003640573.tif 000012
【図１２】
0003640573.tif 000013
【図１３】
0003640573.tif 000014
【図１４】
0003640573.tif 000015
【図１５】
0003640573.tif 000016
【図１６】
0003640573.tif 000017