(57)【要約】【課題】バーコードの画像上の位置に依存した濃度分布特性の劣化を考慮し、二値化精度を向上すること。【解決手段】バーコードから分割したキャラクタ領域について、画像濃淡分布検出部１１が濃度分布の検出を行なう。得られた濃度分布から、基本閾値決定部１３と補助閾値決定部１４は、それぞれ異なる閾値を求める。分布特性判別部１２は濃度分布の特性を判別し、基本閾値と補助閾値のいずれを対象のキャラクタ領域に適用するかを決定し、二値化閾値選択部１５に選択させる。二値化部１６は、二値化閾値選択部１５が選択した閾値を用いて二値化を行なう。【選択図】        図１
2010086324.tif 000002
【特許請求の範囲】
【請求項１】
バーコード画像を撮影したバーコード画像データから抽出された１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出手段と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手段と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手段と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手段と、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手段と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化手段と、
を備えることを特徴とする二値化処理装置。
【請求項２】
前記基本閾値決定手段は、前記分割領域の濃度の最大値と最小値との間が1対１となる二値化閾値を前記基本閾値として決定し、
前記補助閾値決定手段は、前記分割領域における濃度分布の比率が該バーコードの種類毎に予め定められた比率となる二値化閾値を前記補助閾値として決定することを特徴とする請求項１に記載の二値化処理装置。
【請求項３】
前記補助閾値決定手段は、前記分割領域の濃度分布が、予め定められた複数の比率となる複数の補助閾値候補を求め、該複数の補助閾値候補のうち、前記基本閾値に最も近いものを前記補助閾値として決定する請求項１または２に記載の二値化処理装置。
【請求項４】
二値化閾値選択手段は、前記濃度分布の最大値と最小値の一方が飽和している場合、最大値と最小値の少なくともいずれかかが各々に定められた適正範囲を逸脱している場合、もしくは、最大値と最小値の差が予め定めた特定値より小さい場合に前記補助閾値を採用することを特徴とする請求項１〜３のいずれか一つに記載の二値化処理装置。
【請求項５】
カメラと、
前記カメラにより撮影されたバーコード画像を走査して１ライン分の画像データを抽出する画像抽出手段と、
前記１ライン分の画像データを、キャラクタを構成するパターン毎に分割して分割領域を作成するキャラクタ領域分割手段と、
前記分割領域毎に、該領域内に含まれる画像の濃淡分布の特徴を検出する画像濃淡分布検出手段と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手段と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手段と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手段と、
前記分布特性の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手段と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化して二値化パターンを生成する二値化手段と、
を備えることを特徴とする情報処理装置。
【請求項６】
バーコード画像に対する走査によって得られた１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出ステップと、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定ステップと、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定ステップと、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別ステップと、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択ステップと、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化ステップと、
を有することを特徴とする二値化処理方法。
【請求項７】
バーコード画像に対する走査によって得られた１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出手順と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手順と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手順と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手順と、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手順と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化手順と、
をコンピュータに実行させることを特徴とする二値化処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコード画像を二値化する二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラムに関し、特に汎用のカメラで撮影した画像から二値化パターンを作成する二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラムに関する。
【背景技術】
【０００２】
従来から利用されているバーコードは、複数本数の黒バーと白バーを並べて構成されている。この複数本数のバーのうち、特定本数の黒バーと白バーの組み合わせが特定のデータを表している。バーコードが文字情報を示している場合、この特定本数が一つの文字（キャラクタ）を示す領域、すなわちキャラクタ領域であり、バーコード全体はキャラクタ領域が複数並んだ形を取る。
【０００３】
デジタルカメラやスキャナで取得したコード画像からバーコードを認識する場合、バーコードの長辺方向に沿った１ライン分のデータを切出して認識処理を行う。この認識において、デジタルカメラのような汎用の光学機器を用いると、光学歪みによってバーコード画像に歪みが発生する場合がある。また光学機器の読み取り角度がバーコードの平面に対して傾いていれば、読み取ったバーコード画像に歪みが生ずる。
【０００４】
これらの歪みによってバーコード画像上でバーの長さ（幅）が場所によって異なると、単一の幅を基準としてバーコード全体を認識する処理では正確な認識処理ができない。そこで従来から、バーコード画像をキャラクタ単位の小領域に分割し、キャラクタ毎にバー幅の基準を設定して認識処理を行うことで、撮影画像上の位置によるバー幅の歪みの影響を小さく抑え、認識精度を向上していた。
【０００５】
【特許文献１】特開２００４−１８５０５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ところで、デジタルカメラのような汎用の光学機器を用いてバーコードを読み取る場合には、上述したバー幅の変化の他に、撮影画像上の位置による解像度の劣化や輝度の低下が発生する場合がある。
【０００７】
この画像上の位置に依存する解像度や輝度の劣化は、一般に撮影画像中心部から周辺部に行くに従って影響が大きくなる。従って、特にコード全体の長さが長く撮影画像の周辺部にまでかかってしまうコード画像では，撮影画像中心部と周辺部の画像の画像特性が大きく異なったものになる。同様の現象は、光学機器の読み取り角度がバーコードの平面に対して傾いているような場合にも発生する。さらに、コードの一部に影がかかって暗くなるような現象が発生した場合にも同様に、解像度や輝度の特性劣化が発生する。
【０００８】
このような解像度や輝度の変化が生じると、二値化閾値、すなわち、画像の濃度分布のどの範囲を黒バーとし、どの範囲を白バーとするかを切り分ける閾値の適切な値も変化する。しかしながら、従来の技術では、コード画像を二値化する処理に使用する閾値をコード全体の画像特性から求めるか、もしくはキャラクタ毎の画像特性に応じて決定していた。
【０００９】
前者の場合、特性の比較的良い撮影画像中心部の特性に合わせて決定すると周辺部の劣化した特性に適合せず、二値化の精度が劣化し、結果として認識率が低下するという問題が発生していた。後者の場合でも、閾値の決定方法がコード画像上の位置によらず同一であるため、場所によっては画像特性と閾値の決定方法の整合性が悪く、認識率が低下するという問題が発生していた。
【００１０】
すなわち、従来の技術では、バーコードの画像上の位置に依存したバー幅の劣化については考慮されていたが、バーコードの画像上の位置に依存した濃度分布の変化が考慮されていないために二値化を精度よく行なうことができず、ひいてはコード認識率が低下する場合があるという問題点があった。
【００１１】
特に近年、携帯電話端末やＰＤＡ（Personal Digital Assistant）などによるバーコード認識の利用が増加しているが、携帯電話端末やＰＤＡではバーコード認識用に特化したカメラユニットを設けるのではなく、汎用のカメラでバーコードを撮影して認識を行なうことが求められているので、コード画像位置依存性の濃度分布特性の劣化が顕著であり、この問題に対応することが重要な課題であった。
【００１２】
本発明は、上述した従来技術における問題点を解消し、課題を解決するためになされたものであり、バーコードの画像上の位置に依存した濃度分布特性の劣化を考慮し、二値化精度を向上した二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するために、本装置、方法およびプログラムは、バーコード画像１ライン分の画像データを分割して作成した分割領域について、分割領域内に含まれる画像の濃度分布の特徴を検出し、分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる基本閾値と、予め規定された第２の比率となる補助閾値とを求め、分割領域の濃度分布が予め規定された分布特性に基づいて基本閾値と補助閾値とのいずれかを当該分割領域の二値化に使用する閾値として選択する。
【発明の効果】
【００１４】
本装置、方法およびプログラムによれば、バーコードの画像上の位置に依存した濃度分布特性の劣化を考慮し、二値化精度を向上した二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラムを得ることができるという効果を奏する。
【発明を実施するための最良の形態】
【００１５】
以下に、本発明にかかる二値化処理装置、情報処理装置、二値化処理方法および二値化処理プログラムの実施例を図面に基づいて詳細に説明する。
【実施例】
【００１６】
図１は、本実施例にかかる二値化処理装置を有する情報処理装置の概要構成を示す概要構成図である。図１に示した情報処理装置は、カメラユニット３０とコード画像処理装置２０を有する。そして、コード画像処理装置２０は、さらにライン画像抽出部２１、キャラクタ領域分割部２２、処理対象キャラクタ選択部２３、二値化処理装置１０、コード認識処理部２４およびメモリ２５を有する。
【００１７】
情報処理装置は、例えば携帯電話端末やＰＤＡであり、カメラユニット３０は、バーコード以外の撮影、たとえば写真撮影や動画撮影などと共用される可能性がある汎用の光学機器である。
【００１８】
コード画像処理装置２０は、カメラユニット３０が撮影したバーコードを認識する処理を行なう。図２に、コード画像処理装置２０が処理するバーコードの具体例を示す。バーコードは、異なる太さや間隔をもつ濃淡２色の並行線の組合せで情報を表現する画像である。このバーコードには、図２に示したようにＪＡＮコード、ＮＷ７コード、ｃｏｄｅ３９、ｃｏｄｅ１２８などの種類があり、コードの種類毎に白バーと黒バーの比率、コードとキャラクタの対応関係などが定められている。
【００１９】
ライン画像抽出部２１は、バーコードを撮影した画像であるバーコード画像データを走査して１ライン分の画像データを抽出する処理を行なう。
【００２０】
キャラクタ領域分割部２２は、１ラインの抽出画像からキャラクタを構成するパターン毎に領域を分割する処理を行なう。この分割処理によって、一つの文字（キャラクタ）を示す領域、すなわちキャラクタ領域を分割領域として得ることができる。
【００２１】
処理対象領域選択部２３は、分割して得られた複数のキャラクタ領域（分割領域）から認識処理の対象とする領域を選択する処理を行なう。
【００２２】
二値化処理装置１０は、処理対象領域選択部２３が選択した領域のライン画像データを二値化して二値化パターンを作成する。
【００２３】
そして、コード認識処理部２４は、二値化パターンに対してコード認識を行ない、二値化パターンを文字情報に変換する。メモリ２５は、コード認識処理部２４が使用する各種データ、具体的には、白黒−キャラクタパターン対応表２５ａ、キャラクタ−文字情報対応表２５ｂ、認識結果情報２５ｃを保持している。
【００２４】
つづいて、二値化処理装置１０の構成と動作について説明する。汎用の光学機器を用いてバーコードを読み取る場合には、撮影画像上の位置による解像度の劣化や輝度の低下という固有の問題が発生する。これらは一般に撮影画像中心部から周辺部に行くに従って影響が大きくなる。
【００２５】
図３は、カメラの特性による画像の品質劣化について説明する説明図である。バーコード画像Ｂ１０を撮影した場合、特性の良好な画像中央部での濃度の階調値Ｂ１１は、白側と黒側の双方で飽和するだけの振幅を得られる。一方、画像周辺部での濃度の階調値Ｂ１２は特性が劣化しており、振幅が小さくなる。
【００２６】
かかる特性の劣化は、特にコード全体の長さが長く撮影画像の周辺部にまでかかってしまうバーコードを撮影した際に顕著に現れる。また、同様の特性の劣化は、光学機器の読み取り角度がバーコードの平面に対して傾いているような場合にも発生する。
【００２７】
さらに、図４に示したように、バーコードの一部に影がかかって暗くなるような現象が発生した場合にも、同様の特性劣化が発生する。図４は、右側が影にかかったバーコード画像Ｂ２０を撮影した場合の具体例を示している。影になっていない位置の濃度の階調値Ｂ２１は、白側と黒側の双方で飽和するだけの振幅を得られるが、影がかかった位置の濃度の階調値Ｂ２２は全体に暗くなり、階調値は全般に低い値となる。
【００２８】
このように、バーコード画像上の位置に依存して濃度の階調値が変化することを考慮し、二値化処理装置１０は、キャラクタ領域ごと、すなわち分割領域ごとに濃度の階調分布の特性を判別し、基本閾値と補助閾値のいずれを二値化に使用するか選択する。
【００２９】
具体的な構成としては、二値化処理装置１０は、図１に示したようにその内部に画像濃淡分布検出部１１、分布特性判別部１２、基本閾値決定部１３、補助閾値決定部１４、二値化閾値選択部１５、二値化部１６を有する。
【００３０】
画像濃淡分布検出部１１は、処理対象領域選択部２３が選択した分割領域について、その中に含まれる画像の濃淡分布の特徴を検出する。そして、分布特性判別部１２は、検出された濃淡分布の特性を判別する処理を行なう。
【００３１】
基本閾値決定部１３は、濃淡分布の検出結果に基づいて二値化の基本閾値を決定する処理を行なう。また、補助閾値決定部１４は、基本閾値とはとは異なる基準及び方法で補助閾値を決定する処理を行なう。
【００３２】
二値化閾値選択部１５は、分布特性判別部１２による判別結果に基づいて、基本閾値と補助閾値とのいずれかを二値化に使用する閾値として選択的に採用する。そして、二値化部１６は、二値化閾値選択部１５が選択した閾値を用い、分割領域のうち、階調値が閾値よりも低い部分を黒、高い部分を白として二値化パターンを作成する。
【００３３】
図５は、基本閾値と補助閾値の適用例について説明する説明図である。基本閾値では、例えば、キャラクタ中の画像データの階調値の最大値（=白側）/最小値（=黒側）の中点をしきい値として使用する。これは，撮影画像の中央付近のようにバーコードを十分な解像度・明るさで撮影できている場合の階調分布Ｂ３１に対しては適切な閾値となる。
【００３４】
一方、バーコードを十分な明るさで撮影できない撮影画像の周辺部や影の部分では、画像データが暗い側に寄って撮影される。特にデジタルカメラなどの場合、元々入力データの濃淡に対する出力画像の階調値が非線形となるように特性を持たせ、例えば出力階調値の範囲が０〜２５５の場合、階調値の中央付近(＝１２７)より最大(＝２５５)／最小（＝０）付近の方が同じ濃度変化に対する出力画像の階調値は小さくなるように設計していることが多く、基本閾値では適切に二値化を行なうことが難しい。加えて、濃度分布が暗い側に飽和してしまうような場合には、特に基本閾値で正確に二値化を行なうことは困難であった。図５では、階調値が黒側に寄り、かつ黒側で飽和した階調分布Ｂ３２に、基本閾値、すなわち階調の最大値と最小値とを１対１に分割する閾値を用いており、閾値が大きすぎて黒パターンが太くなる傾向があらわれている。
【００３５】
この基本閾値に対し、例えば階調の最大値と最小値とを３対７に分割する閾値を補助閾値とし、補助閾値を用いて二値化を行なえば、階調分布Ｂ３２と同様に階調値が黒側に寄り、かつ黒側で飽和した階調分布Ｂ３３を適切に二値化することができる。
【００３６】
処理対象の分割領域に対して、基本閾値を用いるか補助閾値を用いるかは、分布特性判別部１２が分布特性に基づいて決定する。具体的には、図６の階調分布Ｂ４１に示したように、画像データの階調値の分布が、階調値の最大（＝２５５）側と最小（＝０）側のいずれか一方に飽和している場合には、補助閾値を用いる。
【００３７】
また、図７の階調分布Ｂ４２に示したように、階調値の最大値が中央値（２５６階調であれば１２７）よりも小さい場合や、最小値が中央値よりも大きい場合にも補助閾値を用いる。
【００３８】
そして、図８の階調分布Ｂ４３に示したように、階調値の最大値と最小値との差が予め定めた特定レベルａよりも小さい場合にも補助閾値を用いる。
【００３９】
補助閾値の値については、例えば固定的に階調の最大値と最小値とを３対７に分割する閾値を用いても良いが、バーコードの種別毎に定められた特徴を利用して設定しても良い。一般に用いられているバーコードの場合、キャラクタ内の黒：白バーのそれぞれの幅の合計の長さの割合は、特定の数パターンに限定されている。例えば、ＪＡＮコードの場合は黒２：白５、黒３：白４、黒４：白３、黒５：白２の４パターンのうちのいずれかである。同様に、ｃｏｄｅ１２８の場合は黒４：白７、黒６：白５、黒８：白３の３パターンのうちのいずれかになる。
【００４０】
補助閾値決定部１４は、キャラクタ領域内の階調値の分布のうち、最も小さい値から順に画素値の小さい順に画素の個数を計数してゆき、全画素数に対して計数した画素の個数がバーコード種別に規定された比率になった時、その画素の階調値を補助閾値の候補とする。
【００４１】
したがって、例えば、バーコードがｃｏｄｅ１２８であると想定した場合、補助閾値決定部１４は、図９に示したように、階調値の分布を黒４：白７の比率に分ける補助閾値候補ＴＨａ、黒６：白５の比率に分ける補助閾値候補ＴＨｂ、黒８：白３の比率に分けるＴＨｃの３つの補助閾値候補を求めることとなる。
【００４２】
そして、補助閾値決定部１４は、この３つの補助閾値候補のうち、最も基本閾値に近い値、図９では補助閾値候補ＴＨａを補助閾値とする。または基本閾値を用いた時の黒：白バーの幅の比率に最も近くなるものを選択するようにしてもよい。
【００４３】
図１０は、補助閾値よりも基本閾値が有効である場合について説明する説明図である。階調分布Ｂ６１のように、キャラクタ領域中の画像データの階調値が濃淡均等で最大値と最小値の差が十分大きい場合、補助閾値を用いると、適切な値を決定することができず、正確な白黒パターンを求められない可能性がある。すなわち、分布中において階調値の高い画素群と、階調値の低い画素群とが十分に離れている場合、適切な閾値は二つの画素群の間に存在する階調値であり、その階調値を有する画素は存在しない。このような分布に対して上述したように画素を計数し、所定個数目の画素の値を閾値として採用すると、その閾値は上下何れかの画素群に近すぎることとなり、基本閾値よりも不適切となる。
【００４４】
特にキャラクタ領域中の画像データのデータ数が少なく、離散的な分布になっている場合にこのような現象が顕著である。このため、階調値が濃淡均等で最大値と最小値の差が十分大きい場合には、基本閾値を選択して二値化に用いることで、正確な二値化パターンを求めることが可能である。
【００４５】
これに対し、階調分布Ｂ６２に示したように、階調値の最大と最小の差が小さく、中間階調の画素がある場合、基本閾値よりも補助閾値の方が適切な値となる。
【００４６】
次に図１１を参照し、コード画像処理装置２０の処理動作について説明する。図１１は、コード画像処理装置２０の処理動作を説明するフローチャートである。カメラユニット３０からバーコード画像が入力されるとまず、ライン画像抽出部２１がバーコード画像を走査し、１ライン分の画像データを取り出す（Ｓ１０１）。
【００４７】
つぎに、キャラクタ領域分割部２２が一ライン分の画像データをキャラクタ領域ごとに分割し、分割領域を出力する（Ｓ１０２）。処理対象領域選択部２３は、分割して得られた複数の分割領域を先頭から順次処理対象として選択する（Ｓ１０３）。
【００４８】
処理対象として選択したキャラクタ領域に対し、画像濃淡分布検出部１１が画像データの階調値の頻度ヒストグラムを作成する（Ｓ１０４）。そして、分布特性判別部１２が、階調値の頻度ヒストグラムの情報を元に、階調値の分布特性を確認する（Ｓ１０５）。
【００４９】
階調値の分布特性が基本しきい値の想定と一致する場合（Ｓ１０６，Ｙｅｓ）には、基本閾値決定部１３が階調値の頻度ヒストグラムから基本閾値を算出し（Ｓ１０７）、二値化閾値選択部１５は、基本閾値を選択する（Ｓ１０８）。
【００５０】
一方、階調値の分布特性が基本しきい値の想定と一致しない場合（Ｓ１０６，Ｎｏ）には、補助閾値決定部１４が階調値の頻度ヒストグラムから補助閾値を算出し（Ｓ１０９）、二値化閾値選択部１５は、補助閾値を選択する（Ｓ１１０）。
【００５１】
二値化部１６は、二値化閾値選択部１５が選択した閾値を基準にして，各キャラクタ領域中の画像データの白黒パターンを抽出し、二値化パターンとして出力する（Ｓ１１１）。
【００５２】
コード認識処理部２４は、メモリ２５内の白黒−キャラクタパターン対応表２５ａを参照して二値化パターンに対応するキャラクタパターンの有無を確認し、二値化パターンとキャラクタパターンの対応表の中に対応するキャラクタパターンが有る場合には、キャラクタ−文字情報対応表２５ｂを参照してキャラクタパターンを文字情報に変換する（Ｓ１１２）。
【００５３】
二値化パターンに対応するキャラクタパターンが存在し、文字情報に変換できた場合（Ｓ１１３，Ｙｅｓ）には、処理成功として文字情報を出力する（Ｓ１１４）。また、二値化パターンに対応するキャラクタパターンが存在せず、文字情報に変換できない場合（Ｓ１１３，Ｎｏ）には、処理失敗としてエラーを出力する（Ｓ１１５）。
【００５４】
その後、処理対象領域選択部２３は、バーコードの全キャラクタ領域について処理が終了したかを確認し（Ｓ１１６）、未処理のキャラクタ領域が残っている場合（Ｓ１１６，Ｎｏ）には、処理対象領域の選択に戻る（Ｓ１０３）。そして、バーコード画像から分割した全ての領域に対して処理が終了した場合に（Ｓ１１６，Ｙｅｓ）、処理を終了する。
【００５５】
つぎに、キャラクタ領域分割部２２による分割手法について説明する。一般に用いられているバーコードの場合，キャラクタ領域内の黒：白バーの本数は一意に決まっている。例えば、ＪＡＮコードでは黒バー２本＋白バー２本で構成されている。同様に，ＮＷ７コードでは黒バー４本＋白バー３本、ｃｏｄｅ３０では黒バー５本＋白バー４本、ｃｏｄｅ１２８では黒バー３本＋白バー３本で構成されている。
【００５６】
従来の技術では、白黒バーの境界における画像データの階調値の変化率の変曲点を元に、その数を計測してキャラクタの境界位置を求めていた。これに対してキャラクタ領域分割部２２は、画像データの階調値の黒ピーク位置を求めてその数を計測し、バーコードに規定された黒バーの本数に基づいてキャラクタ領域を決定する。
【００５７】
つぎに、バーコード画像から取得した複数のライン画像に対する処理について説明する。従来、バーコードを撮影したコード画像に対する認識を行なう場合、バーコードの長辺方向に沿った１ライン分のデータを切出し、認識処理を行っている。そして、従来は、認１ラインに含まれるすべてのキャラクタを正しく認識できた場合のみ認識成功としていた。しかし、この方法ではコード画像の一部に欠損やゴミが生じてキャラクタの1つでも認識ができなくなると認識失敗としていたため、別の場所の複数のラインを切り出して認識を繰り返す必要がある。そのため、認識処理に時間がかかることが問題となっていた。
【００５８】
例えば、図１２に示したバーコードＢ７０に対する認識処理を実行した場合、コード画像Ｂ７１のように汚れや欠損が生じると、１番目のラインは欠損によって生じた６番目のキャラクタ領域における認識失敗によってライン全体の認識が失敗となり、２番目のラインでは汚れによって生じた４番目のキャラクタ領域における認識失敗によってライン全体の認識が失敗となる。そのため、３番目のラインのように全てのキャラクタ領域において認識が成功して初めてライン全体の認識が成功となっていた。
【００５９】
また、図１３に示したようにバーコードの短辺方向を横断するように複数ラインにまたがった欠損やゴミが生じている場合には認識ができないことが問題となっていた。
【００６０】
この従来のライン処理に対し、コード認識処理部２４では、キャラクタ毎に認識成功／失敗の管理を行なう。具体的には、１つのラインで認識失敗のキャラクタが存在する場合には、別の場所から１ライン分のデータを切り出してきて認識処理を行なう。この際に、以前の処理で認識成功となっているキャラクタに対する処理は行わず、認識失敗のキャラクタに対してのみ認識を行う。以上の処理を繰り返し、図８に示したように、全キャラクタが認識成功となったら、バーコードの認識に成功したとして処理を終了する。これにより、認識処理に要する時間を短縮することが可能となる。また、欠損やゴミが生じている場合にも認識に成功するようになり、認識性能が向上する。
【００６１】
なお、従来の技術では、ライン単位での認識成功が所定回数以上得られた場合に、バーコードに対する認識が成功したとすることが一般的である。これに対応し、コード認識処理部２４における認識処理では、各キャラクタ領域単位で成功回数を蓄積し、成功が所定回数に達したキャラクタ領域について認証成功とし、全てのキャラクタ領域が認証成功となった場合にバーコード全体に対する認証が成功した、としてもよい。
【００６２】
図１５は、コード画像処理装置２０による複数ライン処理について説明するフローチャートである。まず、１ライン分の画像データを抽出し（Ｓ２０１）、コードパターン認識を行なう（Ｓ２０２）。このコードパターン認識は、図１１を参照して説明した動作である。
【００６３】
その後、コード認識処理部２０２は、コードパターン認識結果から処理対象を選択し（Ｓ２０３）、メモリ２５に過去の認識結果情報が存在すれば、これを読み出す（Ｓ２０４）。そして、認識結果情報に記録された処理対象のキャラクタ領域における認識成功回数が所定回数より大きければ（Ｓ２０５，Ｙｅｓ）、処理対象キャラクタ選択（Ｓ２０３）に戻って次のキャラクタ領域を選択する。
【００６４】
一方、認識結果情報に記録された処理対象のキャラクタ領域における認識成功回数が所定回数以下であれば（Ｓ２０５，Ｎｏ）、今回のパターン変換が成功であったか否かを判定し（Ｓ２０６）、成功していれば（Ｓ２０６，Ｙｅｓ）メモリ２５内部の認識結果情報２５ｃをアップデートして（Ｓ２０７）、失敗していれば（Ｓ２０６，Ｎｏ）そのままステップＳ２０８に移行する。
【００６５】
ステップＳ２０８では、全キャラクタ領域に対する処理が終了したか否かを判定し（Ｓ２０８）、未処理のキャラクタ領域が残っていれば（Ｓ２０８，Ｎｏ）処理対象キャラクタ選択（Ｓ２０３）に戻って次のキャラクタ領域を選択する。
【００６６】
一方、全てのキャラクタ領域に対する処理が終了したならば（Ｓ２０８，Ｙｅｓ）、コード認識処理部２４は、認識結果情報２５ｃを参照し、全てのキャラクタ領域について所定回数以上の認証成功が得られていれば（Ｓ２０９，Ｙｅｓ）、コード認識成功として（Ｓ２１２）、処理を終了する。
【００６７】
また、所定回数以上の認証成功が得られていないキャラクタ領域が残っている場合、コード認識処理部２４は、全てのラインについて処理が終了したかを判定し（Ｓ２１０）、未処理のラインが残っている場合（Ｓ２１０，Ｎｏ）には、ステップＳ２０１に戻って次のラインを取得する。一方、全てのラインの処理が終了した場合（Ｓ２１０，Ｙｅｓ）、コード認識処理部２４は、コード認識失敗（Ｓ２１１）を出力して、処理を終了する。
【００６８】
以上説明してきたように、二値化処理装置１０は、基本閾値と、画像の特性が異なっている場合に適した算出方法を用いる補助閾値の２つを用いる。そして、キャラクタ毎に画像データの階調値の分布特性に応じて２つの閾値のうち適した方を選択して用いることで、画像の特性が撮影画像の位置や影によって異なっている場合にも二値化パターンを正確に求めることが可能となり、認識成功率が向上する。
【００６９】
そのため、デジタルカメラのような汎用の光学機器を用いてバーコードを読み取る場合に生ずる撮影画像の歪や撮影画像上の位置による解像度の劣化や輝度の低下という固有の問題に対して、読み取り性能を落とさないバーコード読み取りを実現することが可能となる。
【００７０】
また、コード画像処理装置２０は、１ライン分のデータを切り出しての認識処理を繰り返す際に、それ以前の処理で認識に成功しているキャラクタの情報を保存し、以降の処理に活用することで、認識時間を短縮することが可能となり、欠損やゴミが生じている場合の認識性能が向上する。
【００７１】
なお、本実施例はあくまで一例であり、本実施例の記載に限定されること無く適宜変形して実施することができる。例えば、基本閾値と補助閾値の双方を算出した後、分布特性に合わせて閾値を選択しても良いし、まず使用する閾値を選択した後に必要な閾値のみを算出するようにしても良い。また、基本閾値は常に算出し、補助閾値は必要な場合にのみ基本閾値を利用して定めるように構成することもできる。
【００７２】
また、本実施例に示した各種構成要素は、その一部または全てをソフトウェアによって実現することもできる。従って、二値化処理装置１０の構成要素を全てソフトウェアによって実現することでコンピュータを二値化処理装置として機能させる二値化処理プログラムを得ることができ、コード画像処理装置２０の構成要素を全てソフトウェアによって実現することでコンピュータをコード画像処理装置として機能させるコード画像処理プログラムを得ることができる。
【００７３】
以上の実施例を含む実施形態に関し、更に以下の付記を開示する。
【００７４】
（付記１）バーコード画像を撮影したバーコード画像データから抽出された１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出手段と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手段と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手段と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手段と、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手段と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化手段と、
を備えることを特徴とする二値化処理装置。
【００７５】
（付記２）前記基本閾値決定手段は、前記分割領域の濃度の最大値と最小値との間が1対１となる二値化閾値を前記基本閾値として決定し、
前記補助閾値決定手段は、前記分割領域における濃度分布の比率が該バーコードの種類毎に予め定められた比率となる二値化閾値を前記補助閾値として決定することを特徴とする付記１に記載の二値化処理装置。
【００７６】
（付記３）前記補助閾値決定手段は、前記分割領域の濃度分布が、予め定められた複数の比率となる複数の補助閾値候補を求め、該複数の補助閾値候補のうち、前記基本閾値に最も近いものを前記補助閾値として決定する付記１または２に記載の二値化処理装置。
【００７７】
（付記４）二値化閾値選択手段は、前記濃度分布の最大値と最小値の一方が飽和している場合、最大値と最小値の少なくともいずれかかが各々に定められた適正範囲を逸脱している場合、もしくは、最大値と最小値の差が予め定めた特定値より小さい場合に前記補助閾値を採用することを特徴とする付記１〜３のいずれか一つに記載の二値化処理装置。
【００７８】
（付記５）カメラと、
前記カメラにより撮影されたバーコード画像を走査して１ライン分の画像データを抽出する画像抽出手段と、
前記１ライン分の画像データを、キャラクタを構成するパターン毎に分割して分割領域を作成するキャラクタ領域分割手段と、
前記分割領域毎に、該領域内に含まれる画像の濃淡分布の特徴を検出する画像濃淡分布検出手段と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手段と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手段と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手段と、
前記分布特性の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手段と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化して二値化パターンを生成する二値化手段と、
を備えることを特徴とする情報処理装置。
【００７９】
（付記６）前記キャラクタ領域分割手段は、前記１ライン分の画像データから前記バーコード画像のバーに形成する濃度値の高い側の線を検出し、各分割領域内に含まれる線の本数が予め定められた本数となるように分割することを特徴とする付記５に記載の情報処理装置。
【００８０】
（付記７）前記バーコード画像から抽出された走査位置の異なる複数ラインの画像データに対し、異なるラインで同一のキャラクタ領域に対応する分割領域について前記ニ値化パターンから文字情報への変換結果を蓄積し、前記バーコード画像が有する全てのキャラクタ領域で各々変換成功回数が予め定めた基準回数を上回った場合に、前記バーコードの認識が成功したと判断するコード認識処理部をさらに備えたことを特徴とする付記５または６に記載の情報処理装置。
【００８１】
（付記８）バーコード画像に対する走査によって得られた１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出ステップと、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定ステップと、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定ステップと、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別ステップと、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択ステップと、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化ステップと、
を有することを特徴とする二値化処理方法。
【００８２】
（付記９）バーコード画像に対する走査によって得られた１ライン分の画像データを、キャラクタを構成するパターン毎に分割して作成した分割領域について、該分割領域内に含まれる画像の濃度分布の特徴を検出する画像濃度分布検出手順と、
前記分割領域における濃度の最大値と最小値との間が、予め規定された第１の比率となる二値化閾値を基本閾値として決定する基本閾値決定手順と、
前記分割領域における濃度分布が、予め規定された第２の比率となる二値化閾値を補助閾値として決定する補助閾値決定手順と、
前記分割領域の濃度分布が予め規定された分布特性を持つか否かを判別する分布特性判別手順と、
前記分布特定の判別結果に基づき、前記基本閾値と前記補助閾値とのいずれかを、該判別対象の前記分割領域の二値化に使用する閾値として選択的に採用する二値化閾値選択手順と、
前記採用した閾値を用いて前記判別対象の分割領域を二値化する二値化手順と、
をコンピュータに実行させることを特徴とする二値化処理プログラム。
【図面の簡単な説明】
【００８３】
【図１】図１は、本実施例にかかる二値化処理装置を有する情報処理装置の概要構成を示す概要構成図である。
【図２】図２は、バーコードの具体例について説明する説明図である。
【図３】図３は、カメラの特性による画像の品質劣化について説明する説明図である。
【図４】図４は、バーコードの一部に影がかかって暗くなった場合の品質劣化について説明する説明図である。
【図５】図５は、基本閾値と補助閾値の適用例について説明する説明図である。
【図６】図６は、階調値が最小値側に飽和した場合について説明する説明図である。
【図７】図７は、階調値の最大値が中央値よりも小さい場合について説明する説明図である。
【図８】図８は、階調値の最大値と最小値との差が予め定めた範囲よりも小さい場合について説明する説明図である。
【図９】図９は、補助閾値の設定について説明する説明図である。
【図１０】図１０は、基本閾値が有効である場合について説明する説明図である。
【図１１】図１１は、コード画像処理装置２０の処理動作について説明するフローチャートである。
【図１２】図１２は、従来のライン処理について説明する説明図である。
【図１３】図１３は、従来のライン処理で認識できない場合について説明する説明図である。
【図１４】図１４は、キャラクタ単位で認識を管理するライン処理について説明する説明図である。
【図１５】図１５は、キャラクタ単位で認識を管理するライン処理について説明するフローチャートである。
【符号の説明】
【００８４】
１０    二値化処理装置
１１    画像濃淡分布検出部
１２    分布特性判別部
１３    基本閾値決定部
１４    補助閾値決定部
１５    二値化閾値選択部
１６    二値化部
２０    コード画像処理装置
２１    ライン画像抽出部
２２    キャラクタ領域分割部
２３    処理対象領域選択部
２４    コード認識処理部
２５    メモリ
２５ａ  白黒−キャラクタパターン対応表
２５ｂ  キャラクタ−文字情報対応表
２５ｃ  認識結果情報
【図１】
2010086324.tif 000003
【図２】
2010086324.tif 000004
【図３】
2010086324.tif 000005
【図４】
2010086324.tif 000006
【図５】
2010086324.tif 000007
【図６】
2010086324.tif 000008
【図７】
2010086324.tif 000009
【図８】
2010086324.tif 000010
【図９】
2010086324.tif 000011
【図１０】
2010086324.tif 000012
【図１１】
2010086324.tif 000013
【図１２】
2010086324.tif 000014
【図１３】
2010086324.tif 000015
【図１４】
2010086324.tif 000016
【図１５】
2010086324.tif 000017