(57)【要約】【課題】バーコードの誤読に起因するバーコードの解析精度の低下を抑制できる技術を提供する。【解決手段】バーコード読取装置１００は、所定の規格に基づいて配列されている複数の並列なバーを有するバーコードＢＣを解析して情報を取得する。バーコード読取装置１００は、読取部１０と、主制御部２０と、を備える。読取部１０は、バーコードＢＣを光学的に読み取る。主制御部２０は、読取制御部２１と、情報修復部２３と、を備える。読取制御部２１は、バーコードＢＣにおけるバーの配列構成を表す読取データを生成する。情報修復部２３は、読取データが表すバーの配列構成において所定の規格に適合していない不適合部位を検出し、当該不適合部位におけるバーの配列構成を所定の規格に適合するように修復する。【選択図】図１
2015141447.tif 000002
【特許請求の範囲】
【請求項１】
所定の規格に基づいて配列されている複数の並列なバーの配列構成によって情報を表すバーコードから前記情報を取得するバーコード読取装置であって、
前記バーコードにおける前記バーの配列構成を読み取った読取情報を生成する読取情報取得部と、
前記読取情報が表す前記バーの配列構成において、前記バーの配列が前記所定の規格に適合していない不適合部位を前記所定の規格に基づいて検出し、前記不適合部位における前記バーの配列構成を前記所定の規格に適合するように修復する情報修復部と、
を備える、バーコード読取装置。
【請求項２】
請求項１記載のバーコード読取装置であって、
前記バーの配列構成は、幅の細い細バーと、幅の太い太バーと、の配列順序の組み合わせを含み、
前記所定の規格は、前記細バーと前記太バーのそれぞれの幅と、前記バーコードにおいて単位本数あたりのバーに含まれる前記細バーと前記太バーのそれぞれの本数と、を規定しており、
前記情報修復部は、前記読取情報が表す前記バーの配列構成において、前記所定の規格に適合しない幅を有する前記バーがある部位、または、前記所定の規格に適合しない前記バーの並びがある部位を前記不適合部位として特定し、前記不適合部位において、前記細バーと前記太バーの少なくとも一方の本数を増加または減少させる修正を行うことによって、前記読取情報が表す前記バーの配列構成を前記所定の規格に適合させる、バーコード読取装置。
【請求項３】
請求項２記載のバーコード読取装置であって、
前記情報修復部は、
前記読取情報が表す前記バーの配列構成における前記バーの総本数が前記所定の規格から求められる前記バーコードにおける前記バーの総本数よりも１本多いバー過多の場合に、前記不適合部位において隣り合う２本のバーを合体させるバー減少修正処理を実行する、バーコード読取装置。
【請求項４】
請求項３記載のバーコード読取装置であって、
前記所定の規格は、さらに、隣り合う前記バー同士の間の間隙の幅を規定しており、
前記情報修復部は、前記バー過多の場合に、前記読取情報が表す前記バーの配列構成において前記所定の規格に規定されている前記間隙の幅よりも小さい小間隙を検出し、前記小間隙の両隣のバーが前記所定の規格に規定されている前記太バーの幅よりも小さいときに、前記間隙および前記両隣のバーのある部位を前記不適合部位として、前記小間隙の両隣のバーを合体させて１本の前記太バーとする処理を前記バー減少修正処理として実行する、バーコード読取装置。
【請求項５】
請求項２記載のバーコード読取装置であって、
前記情報修復部は、
前記読取情報が表す前記バーの配列構成における前記バーの総本数が前記所定の規格から求められる前記バーコードにおける前記バーの総本数よりも１本少ないバー過少の場合に、前記不適合部位に含まれる１本のバーを隣り合う２本のバーに修正するバー増加修正処理を実行する、バーコード読取装置。
【請求項６】
請求項５記載のバーコード読取装置であって、
前記情報修復部は、前記バー過少の場合に、前記読取情報が表す前記バーの配列構成において前記所定の規格に規定されている前記太バーの幅よりも大きい幅を有する異常太バーを検出し、前記異常太バーが、前記太バーの幅の２倍以上の幅を有するときに、前記異常太バーを２本の前記太バーとする処理を前記バー増加修正処理として実行する、バーコード読取装置。
【請求項７】
請求項６記載のバーコード読取装置であって、
前記情報修復部は、前記バー過少の場合に、前記読取情報が表す前記バーの配列構成において前記所定の規格に規定されている前記太バーの幅よりも大きい幅を有する異常太バーを検出し、前記異常太バーが、前記太バーの幅の２倍以上の幅を有していないときには、前記異常太バーを分割して隣り合う前記細バーと前記太バーの組み合わせに修正する処理を前記バー増加修正処理として実行する、バーコード読取装置。
【請求項８】
請求項５記載のバーコード読取装置であって、
前記情報修復部は、前記バー過少の場合に、前記読取情報に表されている前記バーの配列構成において、第１の配列方向に前記バーを前記単位数ごとに区分したときに前記細バーと前記太バーのそれぞれの本数が前記所定の規格に適合しない第１の不適合区分領域を検出するとともに、前記第１の配列方向とは反対の第２の配列方向に前記バーを前記単位数ごとに区分したときに前記細バーと前記太バーのそれぞれの本数が前記所定の規格に適合しない第２の不適合区分領域を検出し、前記第１と第２の不適合区分領域の両方に含まれる部位を、前記不特定部位として検出する、バーコード読取装置。
【請求項９】
請求項８記載のバーコード読取装置であって、
前記情報修復部は、前記不特定部位に含まれている前記太バーが１本である場合に、前記太バーを隣り合う２本の前記細バーに修正する処理を前記バー増加修正処理として実行する、バーコード読取装置。
【請求項１０】
請求項１記載のバーコード読取装置において、
前記読取情報取得部は、
前記バーコードを表すアナログ信号を取得するアナログ信号取得部と、
前記アナログ信号を二値化することによって位置ごとの前記バーの配列構成を二値的に表した二値データを前記読取情報として生成する二値化処理部と、
を有し、
前記情報修復部は、前記不適合部位の前記修復の代わりに、前記二値化処理部に、前記アナログ信号における前記不適合部位に相当する範囲に対して条件を変更した二値化処理を実行させて、前記読取情報を再生成させる、バーコード読取装置。
【請求項１１】
所定の規格に基づいて配列されている複数の並列なバーの配列構成によって情報を表すバーコードから前記情報を取得するバーコード読取方法であって、
前記バーコードを読み取り、前記バーコードにおける前記バーの配列構成を表す読取情報を生成する読取情報取得工程と、
前記読取情報が表す前記バーの配列構成において、前記バーの配列が前記所定の規格に適合していない不適合部位を前記所定の規格に基づいて検出し、前記不適合部位における前記バーの配列構成を前記所定の規格に適合するように修復する情報修復工程と、
を備える、バーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バーコードを読み取る技術に関する。
【背景技術】
【０００２】
バーコード（一次元バーコード）は、格子状のパターンであり、複数の帯状のシンボルであるバーが所定の規格に基づいて並列に配列されている。バーコードは光学機器などによって読み取られ、そのバーの配列構成が解析されることによって文字情報や数値情報などの所定の情報に変換される。下記特許文献１では、光学機器によってバーコードから読み取られたデータを複数のモジュールに分割して、各モジュールごとに二値化して得たデータに基づいてバーの並びを解析している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−１８５０５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、バーコードに汚れやかすれなどの劣化部位がある場合には、バーコードにおけるバーの配列構成が誤って読み取られて、バーコードの解析精度が低下してしまう可能性がある。特許文献１では、バーコードから読み取られたデータをモジュールごとに分割することによってデータの二値化の精度を高めている。しかしながら、特許文献１の技術では、バーコードにおけるバーの配列構成が誤って読み取られた場合などに生じるバーコードの解析精度の低下を抑制することはできない。
【０００５】
このように、バーコードの誤読に起因するバーコードの解析精度の低下を抑制することについては依然として改良の余地があった。そのほか、従来のバーコードの読み取り技術においては、その読み取り精度の向上や、バーコードの解析処理の簡易化あるいは高速化、読み取り装置の使い勝手の向上等が望まれていた。
【課題を解決するための手段】
【０００６】
本発明は、上述の課題の少なくとも一部を解決するためになされたものであり、以下の形態として実現することが可能である。
【０００７】
本発明の一形態によれば、所定の規格に基づいて配列されている複数の並列なバーの配列構成によって情報を表すバーコードから前記情報を取得するバーコード読取装置が提供される。このバーコード読取装置は、前記バーコードにおける前記バーの配列構成を読み取った読取情報を生成する読取情報取得部と、前記読取情報が表す前記バーの配列構成において、前記バーの配列が前記所定の規格に適合していない不適合部位を前記所定の規格に基づいて検出し、前記不適合部位における前記バーの配列構成を前記所定の規格に適合するように修復する情報修復部と、を備えて良い。
【発明の効果】
【０００８】
上記形態のバーコード読取装置によれば、バーコードの誤読が発生している場合であっても、バーコードの規格に基づいて、バーの配列が規格に適合するように正しく修復される。従って、バーコードの誤読に起因する解析結果の不具合の発生が抑制される。なお、上述した以外の課題や構成、効果等は、以下に説明する本発明の実施形態や変形例において適宜説明する。
【０００９】
本発明は、バーコード読取装置やバーコードの読取方法以外の種々の形態で実現することも可能である。例えば、バーコード読取装置の制御方法や、バーコードの解析方法、バーコードの修復方法、バーコードの誤読箇所の検出方法、それらの方法を実現するコンピュータープログラム、そのコンピュータープログラムを記録した一時的でない記録媒体等の形態で実現することができる。
【図面の簡単な説明】
【００１０】
【図１】バーコード読取装置の構成を示す概略図。
【図２】バーコードの一例を示す概略図。
【図３】バーコードの読取処理のフローを示す説明図。
【図４】読取データの生成工程を説明するための模式図。
【図５】情報修復部が実行するデータ修復処理の概略フローを示す説明図。
【図６】修復パターンの決定工程の詳細なフローを説明するための説明図。
【図７】第１の修復処理のフローを示す説明図。
【図８】第１の修復処理における不適合部位の特定方法を説明するための説明図。
【図９】再二値化処理を施す範囲を特定する処理を説明するための説明図。
【図１０】第２の修復処理のフローを示す説明図。
【図１１】異常太バーの成り立ちを説明するための説明図。
【図１２】異常太バーの修正可否の判定処理を説明するための説明図。
【図１３】第３の修復処理のフローを示す説明図。
【図１４】第３の修復処理において分割修正の対象となる太バーの成り立ちを説明するための説明図。
【図１５】偽太バーの特定方法を説明するための説明図。
【図１６】偽太バーが特定できない場合の例を示す説明図である。
【発明を実施するための形態】
【００１１】
以下、本発明の実施例を図面を用いて説明する。
【実施例】
【００１２】
Ａ．装置構成：
図１は、本発明の実施例としてのバーコード読取装置１００の構成を示す概略図である。バーコード読取装置１００は、銀行などの金融機関に設置される自動取引装置に搭載され、通帳などの記録媒体ＲＭに記録されているバーコードＢＣの読み取りおよび解析を実行する。バーコード読取装置１００は、自動取引装置の主制御部であるホストコンピューター２００に接続されており、バーコードの解析結果をホストコンピューター２００に出力する。バーコード読取装置１００は、読取部１０と、主制御部２０と、を備える。
【００１３】
読取部１０は、光学的スキャナー装置によって構成されており、フラットベッド部１１と、スキャナー部１２と、を備える。フラットベッド部１１は、平板な中空箱体であり、記録媒体ＲＭにおけるバーコードＢＣの表示面と面接触するガラス板を有する。スキャナー部１２は、フラットベッド部１１内部に収容されており、フラットベッド部１１のガラス板に向かって走査光を照射しつつ、所定の方向に移動する。
【００１４】
主制御部２０は、中央処理装置（ＣＰＵ）と、主記憶装置（ＲＡＭ）と、を備えるマイクロコンピューターによって構成されている。主制御部２０は、中央処理装置が外部記憶装置などから主記憶装置上にプログラムを読み込んで実行することによって、読取制御部２１と、解析部２２と、情報修復部２３と、通信制御部２４として機能する。
【００１５】
読取制御部１１は、読取部１０の動作を制御してバーコードＢＣを読み取らせて、バーコードＢＣの画像データを取得し、当該画像データを二値化した読取データを生成する。読取制御部１１において生成される読取データは、バーコードＢＣにおけるバーの配列パターン（配列構成）を表す読取情報に相当する。
【００１６】
解析部１２は、バーコードＢＣにおけるバーの配列構成を解析して、バーコードＢＣが表している文字情報や数値情報などの情報を再生する。また、情報修復部２３は、読取制御部１１において生成された読取データに表されているバーの配列構成が所定の規格から外れていることが検出されたときに、当該読取データにおけるバーの配列構成の修復を試みる（詳細は後述）。通信制御部２４は、ホストコンピューター２００との通信を制御する。
【００１７】
図２は、バーコード読取装置１００が読み取るバーコードＢＣの一例を示す概略図である。本実施例におけるバーコードＢＣは、スタンダード２オブ５（ＳＴＦ）と呼ばれる規格に基づいて構成されている。この規格に基づくバーコードＢＣは、黒色で表された幅の狭い細バーＮＢと、黒色で表された幅の広い太バーＷＢと、の配列によって構成される。また、細バーＮＢの幅と、太バーＷＢの幅と、各バーの間の間隙である白スペースＳＰの幅のそれぞれが所定の比率関係を有するように規定されている。
【００１８】
加えて、バーコードＢＣでは、バーの配列を連続して配列されている５本の単位本数のバーで区分けしたときに、その５本のバーの配列で構成されている各グループが３本の細バーＮＢと２本の太バーＷＢによって構成されるように規定されている。バーコードＢＣでは、当該５本のバーの配列が一文字分の情報を表し、細バーＮＢと太バーＷＢの配列順序によって文字情報が特定される。
【００１９】
ここで、本明細書においては、バーコードＢＣの先頭（紙面左側）から末尾（紙面右側）に向かう方向を「順方向」と呼び、順方向とは反対の方向を「逆方向」と呼ぶ。本実施例のバーコード読取装置１００では、読取部１０によってバーコードＢＣが走査される方向は順方向と一致する。
【００２０】
Ｂ．バーコードの読取処理：
図３は、バーコード読取装置１００が実行するバーコードＢＣの読取処理のフローを示す説明図である。ステップＳ１０では、読取制御部２１（図１）がバーコード読取部１０を制御して、バーコードＢＣを読み取らせ、その画像データを取得する。ステップＳ２０では、読取制御部２１はバーコードＢＣの画像データを二値化した読取データを生成する。
【００２１】
図４は、ステップＳ２０における読取データの生成工程を説明するための模式図である。図４の上段にはバーコードＢＣの一部位を例示してあり、その下段には、読取部１０が当該部位を走査したときに読取部１０が備える光学センサが出力する信号（電圧）を例示してある。
【００２２】
読取部１０（図１）のスキャナー部１２が備える光学センサは、バーコードＢＣの走査の際に、バーコードＢＣにおける白スペースＳＰの位置では高い電圧を示し、バー（細バーＮＢまたは太バーＷＢ）がある位置では低い電圧を示すアナログ信号を出力する。本実施例では、読取制御部２１は、当該アナログ信号によって表されているバーコードＢＣの画像データを、電圧が閾値ｔｈ以上の領域が白を表し、電圧が閾値ｔｈ未満の領域が黒を表す二値データに変換する。また、本実施例では、ステップＳ２０の二値化処理で使用される閾値ｔｈは任意の計算式から設定される。
【００２３】
ステップＳ３０（図３）では、解析部２２（図１）が、読取データが表すバーの配列構成が、上述したＳＴＦの規格に適合しているか否かを判定する。具体的には、読取データが表すバーの配列構成におけるバーの総本数が、ＳＴＦの規格から求められるバーの総本数に適合するか否かを判定する。解析部２２は、バーの総本数がＳＴＦの規格に適合していると判定した場合には、解析部２２は当該バーの配列構成を解析し、当該バーの配列構成が表す情報を取得する解析処理を実行する（ステップＳ４０）。
【００２４】
一方、読取データにおけるバーの総本数がＳＴＦの規格から求まる総本数と異なっている場合には、ステップＳ１０におけるバーコードＢＣの読み取りの際に誤読が生じた可能性がある。そこで、この場合には、情報修復部２３が読取データを修復するデータ修復処理（後述）を実行する（ステップＳ３５）。
【００２５】
情報修復部２３によって読取データが修復されると、修復後の読取データに対して解析部２２による解析処理が実行される（ステップＳ４０）。解析部２２による解析処理が完了すると、通信制御部２４が、解析処理において取得された情報をホストコンピュータ２００に出力する（ステップＳ５０）。
【００２６】
このように、本実施例のバーコード読取装置１００では、読取データにおけるバーの配列構成が規格に適合していない場合には、バーコードＢＣの誤読が発生した可能性があるものとして、データ修復処理において読取データの修復が実行される。従って、バーコードＢＣの誤読に起因するバーコードの解析精度の低下が抑制される。
【００２７】
Ｃ．データ修復処理：
以下では、図５を用いて、データ修復処理のフローを概略的に説明し、その後に、図６〜図１６を用いてデータ修復処理の詳細なフローを説明する。
【００２８】
Ｃ１．データ修復処理の概略：
図５は、情報修復部２３が実行するデータ修復処理の概略フローを示す説明図である。ステップＴ１では、情報修復部２３は、読取データにおける配列構成が規格に適合しなくなっている原因に応じた修復パターンを決定する。なお、読取データにおける不具合が、いずれの修復パターンによっても修復できない類型に属する場合には、情報修復部２３は、後述するエラー処理（ステップＴ７）を実行する。
【００２９】
ステップＴ１において修復パターンを決定した後には、情報修復部２３は、各修復パターンに応じた修復処理を実行する。各修復処理は、以下に説明するステップＴ２〜Ｔ６の概括的な流れが共通している。ステップＴ２では、読取データに表されているバーの配列構成が規格から外れたエラー原因となっている不適合部位がＳＴＦの規格に基づいて特定される。
【００３０】
ステップＴ３では、ＳＴＦの規格から推定される誤読の発生原因に基づく修正方法の適用の可否が判定される。ステップＴ３において、当該修正方法によって読取データの修復が可能であると判定された場合には、当該修正方法による読取データの修復が実行され（ステップＴ４）、データ修復処理は完了する。
【００３１】
ステップＴ２においてエラー原因のバーが特定できなかった場合や、ステップＴ３において読取データの修正が適用できないと判定された場合には、ステップＴ５，Ｔ６の処理が実行される。情報修復部２３は、読取制御部２１にバーコードＢＣの誤読が発生している可能性が高い箇所について閾値ｔｈ（図４）を変更した上で二値データを再生成させる再二値化処理を実行させる（ステップＴ５）。
【００３２】
情報修復部２３は、再二値化処理後の読取データにおいて、バーの配列構成がＳＴＦの規格に適合している場合には、読取データが修復されたものとしてデータ修復処理を完了する（ステップＴ６）。一方、情報修復部２３は、再二値化処理後の読取データにおいてもバーの配列構成の不具合が解消されなかった場合には、ステップＴ７のエラー処理を実行する。
【００３３】
ステップＴ７のエラー処理では、情報修復部２３は、通信制御部２４を介して、ホストコンピューター２００にバーコードＢＣの読み取りエラーの発生を報知する。あるいは、情報修復部２３は、読取制御部２１に、再度、バーコードＢＣの読み取りを実行させても良い。なお、この場合のバーコードＢＣの再読み取り処理は、バーコードＢＣを走査する位置や角度などの走査条件を変更させた上で実行されることが好ましい。
【００３４】
Ｃ２．修復パターンの決定：
図６は、データ修復処理における修復パターンの決定工程（図５のステップＴ１）の詳細なフローを説明するための説明図である。情報修復部２３は、読取データが表しているバーの配列構成に含まれているバーの総本数がＳＴＦの規格から求められる総本数よりも１本多いか、または、１本少ないかを判定する（ステップＳ６０）。
【００３５】
ステップＳ６０においてバーの総本数がＳＴＦの規格から求まる総本数に対して２本以上異なっている場合には、読取データがデータ修復処理では修復不能な場合として、ステップＳ９０のエラー処理を実行する。なお、ステップＳ９０のエラー処理は、図５で説明したステップＴ７のエラー処理と同じ内容である。
【００３６】
ステップＳ６０においてバーの総本数がＳＴＦの規格から求められる総本数よりも１本多いと判定された場合には、いずれか１本の太バーＷＢが２本のバーに分裂して読み取られている可能性がある。そこで、情報修復部２３は、第１の修復パターンである第１の修復処理の実行を決定する（ステップＳ８２）。
【００３７】
一方、バーの総本数が１本少ないと判定された場合には、いずれかの隣り合う２本のバーが１本のバーとして読み取られている可能性がある。特に、隣り合う２本の太バーＷＢ同士が合体して認識されている場合、または、隣り合う太バーＷＢと細バーＮＢが合体して認識されている場合であれば、規定の幅以上の太バーＷＢが存在することが想定される。そこで、情報修復部２３は、規定の幅以上の太バーＷＢが存在しているか否かを検査する（ステップＳ７０）。
【００３８】
情報修復部２３は、読取データが表しているバーの配列構成において規定の幅以上の太バーＷＢが検出された場合には、第２の修復パターンである第２の修復処理の実行を決定する（ステップＳ８４）。読取データが表しているバーの配列構成に規定の幅以上の太バーＷＢが検出されなかった場合には、隣り合う細バーＮＢ同士が合体して認識されている可能性がある。そこで、この場合には、情報修復部２３は、第３の修復パターンである第３の修復処理の実行を決定する（ステップＳ８４）。
【００３９】
Ｃ３．第１の修復処理：
図７は、情報修復部２３が実行する第１の修復処理のフローを示す説明図である。前記したように、第１の修復処理が実行されるのは、いずれか１本の太バーＷＢが２本のバーに分裂して読み取られている可能性がある場合である。そこで、第１の修復処理では、分裂している２本のバーを１本の太バーＷＢに修正する処理が実行される。ステップＳ１００，Ｓ１１０では、読取データにおけるバーの配列構成が規格から外れるエラー原因となっている不適合部位が特定される。
【００４０】
図８は、ステップＳ１００，Ｓ１１０における不適合部位の特定方法を説明するための説明図である。図８の上段にはバーコードＢＣの一例を示し、下段に上段のバーコードＢＣに含まれている太バーＷＢが２本に分裂している３種類の態様を示してある。
【００４１】
上述したように、第１の修復処理が実行される場合は１本の太バーＷＢが２本のバーに分裂して読み取られている可能性がある。また、この場合には、分裂して読み取られている２本のバーの間の間隔は、規定の白スペースＳＰの幅以下である可能性が高い。そこで、ステップＳ１００では、情報修復部２３は、まず、読取データから規格の幅以下の白スペースＳＰ（以下、便宜上、「規格外白スペースＳＰａ」とも呼ぶ）を検出する（ステップＳ１００）。
【００４２】
太バーＷＢが規格外白スペースＳＰａによって２本に分裂しているケースとして、次のような態様１〜３が考えられる。太バーＷＢが中央付近の規格外白スペースＳＰａによって分裂して２本の細バーＮＢに相当する幅のバーに分かれている（態様１）。太バーＷＢが左右のいずれかに寄った位置の規格外白スペースＳＰａによって分裂して細バーＮＢよりも幅が小さいバーと太バーＷＢよりも幅が小さいバーとに分かれている（態様２，３）。
【００４３】
いずれの態様１〜３の場合であっても、規格外白スペースＳＰａの両隣のバーは太バーＷＢの幅以下となる。そこで、情報修復部２３は、ステップＳ１１０において、当該規格外白スペースＳＰａの両隣にあるバーの幅がいずれも、ＳＴＦの規格に規定されている太バーＷＢの幅以下であるかを判定する。規格外白スペースＳＰａの両隣のバーの幅が太バーＷＢの幅以下であった場合には、その２本のバーが不適合部位であると特定される。
【００４４】
ステップＳ１００，Ｓ１１０において、規格外白スペースＳＰａの両隣のバーが不適合部位として特定された場合には、情報修復部２３はステップＳ１２０以降の処理を実行する（図７）。一方、ステップＳ１００において不適合部位を特定するための規格外白スペースＳＰａが検出されなかった場合や、ステップＳ１１０において不適合部位としての２本のバーが特定されなかった場合には、情報取得部２３はステップＳ１４０以降の処理を開始する。
【００４５】
ステップＳ１２０では、情報修復部２３は、１本の太バーＷＢが２本のバーに分裂して認識されているとの推定に基づく修正を適用することによって読取データが修復されるか否かを判定する。具体的には、情報修復部２３は、規格外白スペースＳＰａの両隣のバーを合体させて１本の太バーＷＢとした場合に、読取データにおけるバーの配列構成が、ＳＴＦの規格におけるバーの並びの規定を満たすか否かを判定する。
【００４６】
バーの並びがＳＴＦの規格を満たす場合には、情報修復部２３は、読取データにおけるバーの配列構成において規格外白スペースＳＰａの両隣のバーを合体させる修正を実行する（ステップＳ１３０）。一方、バーの並びがＳＴＦの規格を満たさない場合には、情報修復部２３は、ステップＳ１４０以降の処理を開始する。ステップＳ１４０以降では、太バーＷＢが２本のバーに分裂している可能性が高い部位のみについて、条件を変えた二値化処理が再度試みられ、読取データが修復される。
【００４７】
図９は、ステップＳ１４０における再二値化処理を適用する範囲を特定する処理を説明するための説明図である。図９の（ａ）欄にはバーコードＢＣを順方向に５本ずつのバーで区分けした状態の一例を示し、図９の（ｂ）欄にはバーコードＢＣを逆方向に５本ずつのバーで区分けした状態の一例を示してある。なお、図９では、便宜上、太バーＷＢが分裂して認識された２本のバーＥＢが、ハッチングによって、他のバーと区別して示されている。
【００４８】
ステップＳ１４０では、読取データが表すバーの配列構成において、順方向および逆方向にそれぞれ、バーを１文字分の情報を表す単位本数（５本）で区分けしたときに、細バーＮＢおよび太バーＷＢの構成本数が規格から外れるグループを特定する。図９の例では、順方向（（ａ）欄）および逆方向（（ｂ）欄）のいずれにおいても、中央の一点鎖線で囲まれたグループにおいて、太バーＷＢが１本不足している。
【００４９】
情報修復部２３は、順方向および逆方向のいずれかにおいてバーの構成本数が規格から外れているグループに属しているバーの全てを、エラー原因となっている可能性がある不適合部位として再二値化処理の対象とする。図９の例では、破線で囲まれているバーが再二値化処理の対象となる。この方法によれば、エラー原因となっている２本のバーＥＢが特定されなくとも、再二値化処理の対象となる範囲に含まれることになる。
【００５０】
ステップＳ１５０（図７）では、情報修復部２３は、ステップＳ１４０で特定されたバーの近傍における画像データについて黒が増加する（黒が強くなる）方向に閾値ｔｈ（図４）を変更して二値化をやり直す。具体的に、本実施例では、閾値ｔｈをより大きい値に変更した上で二値化をやり直す。
【００５１】
ステップＳ１６０では、情報修復部２３は、不適合部位に対して再二値化処理が施された後の読取データ（以後、「再二値化データ」とも呼ぶ）について、バーの並びやバーの幅がＳＴＦの規格に適合しているか否かを判定する。再二値化データにおいてバーの配列構成がＳＴＦの規格に適合している場合には、情報修復部２３は、読取データの修復が完了したとして、データ修復処理を終了する。
【００５２】
再二値化データにおいてバーの配列構成がＳＴＦの規格に適合していない場合には、読取データの修復が失敗したとして、ステップＳ１７０のエラー処理が実行される。ステップＳ１７０のエラー処理の内容は、図５で説明したステップＴ７のエラー処理と同じである。
【００５３】
Ｃ４．第２の修復処理：
図１０は、情報修復部２３が実行する第２の修復処理のフローを示す説明図である。図６で説明したように、第２の修復処理が実行されるのは、隣り合う２本のバーが太バーＷＢの幅以上の１本のバー（以下、「異常太バーＷＢａ」とも呼ぶ）として読み取られている可能性がある場合である。そこで、第２の修復処理では、異常太バーＷＢａを元々の２本のバーに分割修正する処理が実行される。ステップＳ２００（図１０）では、情報修復部２３は、太バーＷＢの幅以上の幅を有している異常太バーＷＢａがエラー原因となっている不適合部位であると特定して、読取データから異常太バーＷＢａの位置を検出する。
【００５４】
図１１は、第２の修復処理において分割修正の対象となる異常太バーＷＢａの成り立ちを説明するための説明図である。図１１（ａ）欄には異常太バーＷＢａが２本の太バーＷＢの合体によって構成されている例を示してあり、図１１（ｂ）欄には異常太バーＷＢａが細バーＮＢと太バーＷＢの合体によって構成されている例を示してある。図１１では、異常太バーＷＢａは、ハッチングによって、他のバーと区別して示されている。
【００５５】
隣り合う太バーＷＢ同士が合体して読み取られている異常太バーＷＢａの幅は、通常の太バーＷＢの幅の２倍以上になる（図１１（ａ）欄）。一方、隣り合う細バーＮＢと太バーＷＢとが合体して読み取られている異常太バーＷＢａの幅は、太バーＷＢの幅以上、かつ、太バーＷＢの幅の２倍未満となる。そこで、ステップＳ２１０（図１０）では、情報修復部２３は、異常太バーＷＢａを構成している２本のバーの組み合わせを特定するために、異常太バーＷＢａが太バーＷＢの２倍以上の幅を有するか否かを判定する。
【００５６】
情報修復部２３は、ステップＳ２１０において、異常太バーＷＢａが太バーＷＢの２倍以上の幅を有すると判定した場合には、隣り合う２本の太バーＷＢが合体しているとの推定に基づく修正の適用の可否を判定する（ステップＳ２２０）。具体的には、情報修復部２３は、読取データのバーの配列構成において、異常太バーＷＢａを隣り合う２本の太バーＷＢに分割する修正を実行したときに、バーの並びがＳＴＦの規格を満たすか否かを判定する。ＳＴＦの規格が満たされる場合には、その修正が適用され読取データが修復される（ステップＳ２３０）。ＳＴＦの規格が満たされない場合には、情報修復部２３は、ステップＳ２４０以降の処理を開始する。
【００５７】
情報修復部２３は、ステップＳ２１０において、異常太バーＷＢａが太バーＷＢの２倍以上の幅を有していないと判定した場合には、隣り合う細バーＮＢと太バーＷＢとが合体しているとの推定に基づく修正の適用の可否を判定する（ステップＳ２２５）。具体的には、情報修復部２３は以下のような２パターンの判定を実行する。
【００５８】
図１２は、ステップＳ２２５において情報修復部２３が実行する異常太バーの修正可否の判定処理を説明するための説明図である。図１２の上段には、異常太バーＷＢａを有するバーコードＢＣが例示され、図１２の下段には異常太バーＷＢａを細バーＮＢと太バーＷＢに分割修正する２つのパターンＡ，Ｂが例示されている。
【００５９】
ステップＳ２２５では、異常太バーＷＢａを細バーＮＢと太バーＷＢとに分割修正する場合に、細バーＮＢと太バーＷＢの配置順序を変えた２つの修正パターンＡ，Ｂのそれぞれについてその適用の可否を判定する。具体的には、先頭側を太バーＷＢ、末尾側を細バーＮＢとしたとき（パターンＡ）と、先頭側を細バーＮＢ、末尾側を太バーＷＢとしたとき（パターンＢ）のそれぞれについて、ＳＴＦの規格が満たされるバーの並びになるか否かを判定する。図１２の例では、先頭側を細バーＮＢとし、末尾側を太バーＷＢとしたパターンＢのときには、太バーＷＢが１本不足してしまうグループが発生し、ＳＴＦの規格が満たされていない。
【００６０】
ステップＳ２２５に続くステップＳ２３０（図１０）では、ステップＳ２２５においてＳＴＦの規格が満たされると判定されたパターンでの修正が適用される。なお、ステップＳ２２５において、パターンＡ，Ｂのいずれの修正によってもバーの並びがＳＴＦの規格を満たさない場合には、情報修復部２３は、ステップＳ２４０以降の処理を開始する。
【００６１】
ステップＳ２４０〜Ｓ２６０では、読取データに対する再二値化処理が実行される。ステップＳ２４０では、情報修復部２３は、ステップＳ２００において検出された異常太バーＷＢａを、再二値化処理の対象となる不適合部位として特定する。ステップＳ２５０では、情報修復部２３は、異常太バーＷＢａ近傍の画像データについて白が増加する（白が強くなる）方向に閾値ｔｈ（図４）を変更して二値化をやり直す。本実施例では、閾値ｔｈを小さい値に変更した上で二値化をやり直す。
【００６２】
ステップＳ２６０では、情報修復部２３は、再二値化処理が施された再二値化データについて、バーの並びやバーの幅がＳＴＦの規格に適合しているか否かを判定する。再二値化データがＳＴＦの規格に適合している場合には、情報修復部２３は、読取データの修復が完了したとして、データ修復処理を終了する。再二値化データがＳＴＦの規格に適合していない場合には、読取データの修復が失敗したとして、第１の修復処理のステップＳ１７０（図７）と同様なエラー処理を実行する（ステップＳ３７０）。
【００６３】
Ｃ５．第３の修復処理：
図１３は、情報修復部２３が実行する第３の修復処理のフローを示す説明図である。図６で説明したように、第３の修復処理が実行されるのは、隣り合う２本の細バーＮＢが１本の太バー（以下、「偽太バーＷＢｆ」と呼ぶ）として読み取られている可能性がある場合である。そこで、第３の修復処理では、エラー原因となっている偽太バーＷＢｆを特定し、元々の２本の細バーＮＢに分割修正する処理が実行される。
【００６４】
図１４は、第３の修復処理において分割修正の対象となる偽太バーＷＢｆを説明するための説明図である。図１４では、偽太バーＷＢｆは、ハッチングによって、他のバーと区別して示されている。第３の修復処理の分割修正の対象となる偽太バーＷＢｆは、２本の隣り合う細バーＮＢが合体したものに相当し、太バーＷＢと同等な幅を持つ可能性もある。そのため、偽太バーＷＢｆを、その幅によって特定することは容易ではない。そこで、情報修復部２３は、ステップＳ３００，Ｓ３１０において、ＳＴＦの規格に規定されているバーの並びに基づいて偽太バーＷＢｆの検出を試みる。
【００６５】
図１５は、ステップＳ３００，Ｓ３１０における偽太バーＷＢｆの特定方法を説明するための説明図である。図１５には、１本の偽太バーＷＢｆが紛れ込んでいるバーコードＢＣの一例が示されている。なお、図１５では、便宜上、偽太バーＷＢｆにハッチングを付すことによって他の太バーＷＢと区別してある。
【００６６】
ステップＳ３００では、情報修復部２３は、読取データ上において、バーコードＢＣを、順方向と逆方向とにそれぞれ一文字の情報を表す５本のバーのグループに区分けする。そして、順方向に区分けしたときのバーの構成本数がＳＴＦの規格を満たしていないグループと、逆方向に区分けしたときのバーの構成本数がＳＴＦの規格を満たしていないグループと、が重なり合っている領域ＥＡを検出する。情報修復部２３は、当該領域ＥＡに細バーＮＢよりも幅が大きいバーが１本のみ存在するときには、そのバーを偽太バーＷＢｆとして特定する（ステップＳ３１０）。
【００６７】
図１６は、ステップＳ３００，Ｓ３１０において偽太バーＷＢｆが特定できない場合の例を示す説明図である。図１６には、偽太バーＷＢｆの候補となる候補バーＣＢが３本存在しているバーコードＢＣの例が示されている。図１６では、便宜上、候補バーＣＢにハッチングを付すことによって他の太バーＷＢと区別してある。図１５で説明した領域ＥＡに細バーＮＢよりも幅が大きいバーである候補バーＣＢが複数本存在している場合には、いずれが偽太バーＷＢｆであるかを特定することは容易ではない。この場合には、情報修復部２３は不適合部位を特定できない場合として、再二値化処理を実行する（ステップＳ３４０）。
【００６８】
ステップＳ３１０において偽太バーＷＢｆが特定された場合には、情報修復部２３は、ステップＳ３２０の処理を実行する（図１３）。ステップＳ３２０では、情報修復部２３は、２本の細バーＮＢが１本の偽太バーＷＢｆとして合体して読み取られているとの推定に基づく修正を適用することによって読取データが修復されるか否かを判定する。具体的には、情報修復部２３は、読取データにおいて、偽太バーＷＢｆを２本の隣り合う細バーＮＢに置き換えた場合に、読取データにおけるバーの配列構成がＳＴＦの規格に規定されているバーの並びが満たされるか否かを判定する。
【００６９】
バーの並びがＳＴＦの規格を満たす場合には、情報修復部２３は、偽太バーＷＢｆを２本の隣り合う細バーＮＢに分割する修正を実行する（ステップＳ３３０）。一方、偽太バーＷＢｆを２本の隣り合う細バーＮＢに分割した場合にバーの並びがＳＴＦの規格を満たさない場合には、情報修復部２３は、ステップＳ３４０以降の処理を開始する。
【００７０】
ステップＳ３４０〜Ｓ３６０では、読取データに対する再二値化処理が実行される。ステップＳ３４０では、情報修復部２３は、ステップＳ３００において検出された領域ＥＡ（図１５，図１６）、または、ステップＳ３１０において特定された偽太バーＷＢｆを再二値化処理の対象となる不適合部位として特定する。ステップＳ３５０，Ｓ３６０では、情報修復部２３は、第２の修復処理（図１０）で説明したステップＳ２５０，Ｓ２６０と同様な処理を実行する。ステップＳ３５０で生成された再二値化データがＳＴＦの規格に適合していなかった場合には、第２の修復処理のステップＳ２７０（図１０）と同様なエラー処理を実行する（ステップＳ３７０）。
【００７１】
Ｄ．まとめ：
以上のように、本実施例のバーコード読取装置１００によれば、バーコードＢＣの規格に基づいてバーコードＢＣの誤読に起因する読取データ上の不具合が発生している部位が特定される。また、バーコードＢＣの規格に基づいて推定されるその不具合の発生原因に応じた読取データの修復が実行される。加えて、そうした推定に基づく修復によって読取データが修復できない場合であっても、再二値化処理によって読取データが修復される。従って、バーコードＢＣの誤読に起因するバーコードＢＣの解析精度の低下が抑制される。
【００７２】
Ｅ．変形例：
Ｅ１．変形例１：
上記実施例では、バーコードＢＣにおけるバーの配列構成がＳＴＦの規格に基づいて構成されている。これに対して、バーコードＢＣにおけるバーの配列構成は、ＳＴＦの規格に限らず種々の規格に基づいて構成されていても良い。バーコードＢＣにおけるバーの配列構成は、例えば、黒色のバーと白色のバー（白スペース）によってデータを表すインターリーブド２オブ５（ＩＴＦ）の規格に基づいて構成されていても良い。バーコードＢＣにおけるバーの配列構成は、バーの太さや配列間隔、単位本数あたりのバーの構成本数が規定されている規格によって構成されていれば良い。
【００７３】
Ｅ２．変形例２：
上記実施例では、バーコード読取装置１００は、自動取引装置に搭載されている。これに対して、バーコード読取装置１００は、自動取引装置ではなく、レジスターなどに搭載されて、商品などに貼付されたバーコードを読み取るものとしても良い。バーコード読取装置１００は、バーコードを扱う種々の情報処理装置や情報処理システムに搭載されても良い。
【００７４】
Ｅ３．変形例３：
上記実施例では、バーコード読取装置１００の読取部１０は、白と黒の縞状のパターンによって構成されたバーコードＢＣを光学的に読み取っていた。これに対して、読取部１０は、磁気インクによって縞状のパターンとして構成されたバーコードを磁気センサによって電磁気的に読み取っても良い。また、読取部１０は、凹凸が縞状に配列されたバーコードを圧力センサによる接触方式や、光学センサによる非接触方式よって読み取っても良い。
【００７５】
Ｅ４.変形例４：
上記実施例のバーコード読取装置１００では、バーコードＢＣから読み取られたバーの総本数がＳＴＦの規格から求められる総本数と１本だけ異なっているときに、第１から第３の修復処理によって読取データが修復されている。これに対して、バーコード読取装置１００は、読取データにおけるバーの総本数に拘わらず、読取データにおけるバーの配列構成がバーコードＢＣの規格から外れているときに、読取データの修復を実行しても良い。具体的には、バーコード読取装置１００は、読取データから規格外白スペースＳＰａや異常太バーＷＢａが検出されたときに、第１の修復処理（図７）のステップＳ１１０〜Ｓ１３０の処理や第２の修復処理のステップＳ２１０〜Ｓ２３０の処理を実行しても良い。あるいは、バーコード読取装置１００は、読取データにおいて規格からはずれた幅を有するバーや白スペースが検出されたときに、当該バーまたは白スペースの近傍の領域に対して再二値化処理を実行して、読取データを修復しても良い。
【００７６】
本発明は上記の実施例や実施形態に限られるものではなく、その要旨を逸脱しない範囲において種々の態様において実施することが可能である。例えば、本発明の実施例や実施形態、変形例は、上記実施例や実施形態、変形例で説明した構成の全てを備えていなくとも良く、一部の構成を省略したり、他の構成に置換したりすることも可能である。また、上記実施例や実施形態、変形例の構成に、さらに、他の構成を追加することや、必須なものとして説明されていない一部の構成部を削除することも可能である。さらに、上記実施例や実施形態、変形例の各構成部、機能、処理部、処理手段等の全部または一部は、集積回路などのハードウェアによって実現されるものとしても良いし、プロセッサ等によって実行されるコンピュータプログラム等のソフトウェアや、本発明の実施のためのデータベース、テーブル、ファイル等の情報を記録した記録媒体等の形態で実現されるものとしても良い。
【符号の説明】
【００７７】
１０…読取部
１１…フラットベッド部
１２…スキャナー部
２０…主制御部
２１…読取制御部
２２…解析部
２３…情報修復部
２４…通信制御部
１００…バーコード読取装置
２００…ホストコンピューター
ＢＣ…バーコード
ＮＢ…細バー
ＷＢ…太バー
ＷＢａ…異常太バー
ＷＢｆ…偽太バー
ＳＰ…白スペース
ＳＰａ…規格外白スペース
【図１】
2015141447.tif 000003
【図２】
2015141447.tif 000004
【図３】
2015141447.tif 000005
【図４】
2015141447.tif 000006
【図５】
2015141447.tif 000007
【図６】
2015141447.tif 000008
【図７】
2015141447.tif 000009
【図８】
2015141447.tif 000010
【図９】
2015141447.tif 000011
【図１０】
2015141447.tif 000012
【図１１】
2015141447.tif 000013
【図１２】
2015141447.tif 000014
【図１３】
2015141447.tif 000015
【図１４】
2015141447.tif 000016
【図１５】
2015141447.tif 000017
【図１６】
2015141447.tif 000018