(57)【要約】【課題】低解像度のバーコード画像から，高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供する。【解決手段】バーコード読取装置は，バーコードの複数の走査データを生成する走査データ生成部と，前記複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と，前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と，を具備する。【選択図】図１
2011186777.tif 000002
【特許請求の範囲】
【請求項１】
バーコードの複数の走査データを生成する走査データ生成部と，
前記複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と，
前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と，
を具備することを特徴とするバーコード読取装置。
【請求項２】
前記走査データ生成部が，
前記バーコードを含む２次元の画像データを生成する画像データ生成部と，
前記生成された画像データから前記複数の走査データを抽出する走査データ抽出部と，を有する，
ことを特徴とする請求項１記載のバーコード読取装置。
【請求項３】
前記複数の走査データの起点が前記バーコードの高さ方向に並んで配置される
ことを特徴とする請求項１または２に記載のバーコード読取装置。
【請求項４】
前記複数の走査データが所定の標本化周波数で標本化されたデータであり，
前記高解像処理部が，
前記複数の走査データに対して，前記所定の標本化周波数の半分の周波数以上の高周波成分を通過させるフィルタ処理を施すフィルタ処理部と，
前記フィルタ処理された複数の走査データを重みづけ加算することで，前記１のデータ系列を生成する加算部と，を有する，
ことを特徴とする請求項１乃至３のいずれか１項に記載のバーコード読取装置。
【請求項５】
バーコードの複数の走査データを生成するステップと，
前記複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成するステップと，
前記生成されたデータ系列から前記バーコードの情報をデコードするステップと，
を具備することを特徴とするバーコード読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，帳票や物体からバーコードを読み取るバーコード読取装置および方法に係り，特に低解像度の画像からバーコードを読み取るバーコード読取装置およびバーコード読取方法に関する。
【背景技術】
【０００２】
昨今のＩＴ化の伸展により，情報量が大きなバーコードへの需要が増加し，バーコードの高密度化が進んでいる。従来，バーコード読取装置で高密度のバーコードを読み取る場合，読取対象のバーコードの細かさ（モジュール幅など）に応じた高い解像度（高分解能）のスキャナを必要としていた。たとえば最小モジュール幅が０．１６７ｍｍと定義されているＥＡＮ１２８仕様のバーコードを読み取るためには，少なくともその約２倍の分解能（解像度が３００ｄｐｉ以上）のスキャナが必要となっていた。
なお，標本化位置の異なる複数組のデジタルデータから，ナイキスト周波数以上の原信号の高周波数成分を復元し，ぼけの少ない高解像度データを得る技術が公開されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平８−３３６０４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ここで，高解像度のスキャナは高価であり，また高解像度の画像を得るためにはスキャンに要する時間がかかるとか，得られた画像のデータ容量が大きくなるなどの問題があった。
上記に鑑み，本発明は，低解像度のバーコード画像から，高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明の一態様に係るバーコード読取装置は，バーコードの複数の走査データを生成する走査データ生成部と，前記複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と，前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と，を具備する。
【０００６】
本発明の一態様に係るバーコード読取方法は，バーコードの複数の走査データを生成するステップと，前記複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成するステップと，前記生成されたデータ系列から前記バーコードの情報をデコードするステップと，を具備する。
【発明の効果】
【０００７】
本発明によれば，低解像度のバーコード画像から，高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供できる。
【図面の簡単な説明】
【０００８】
【図１】本発明の第１の実施形態に係るバーコード読取装置１０を示すブロック図である。
【図２】光電変換部１１によって取得された帳票の画像データを表す図である。
【図３】バーコード走査部１４による走査の結果を表す模式図である。
【図４】本発明の第２の実施形態に係るバーコード読取装置２０を示すブロック図である。
【発明を実施するための形態】
【０００９】
以下，図面を参照して，本発明の実施の形態を詳細に説明する。
（第１の実施の形態）
図１は，本発明の第１の実施形態に係るバーコード読取装置１０を示すブロック図である。バーコード読取装置１０は，帳票に印刷されたバーコードを読み取る装置である。
【００１０】
バーコード読取装置１０は，光電変換部１１，画像記憶部１２，バーコード検出部１３，バーコード走査部１４，画像再構成部１５，デコード部１６，出力部１７を有する。以下，光電変換部１１等を順に説明する。
【００１１】
この例では，光電変換部１１，画像記憶部１２，バーコード検出部１３，バーコード走査部１４の全体が「バーコードの複数の走査データを生成する走査データ生成部」として機能する。
【００１２】
光電変換部１１は，例えば，バーコードが印刷された帳票をスキャンして，帳票の画像データを生成する。即ち，帳票全体がスキャンされ，バーコード以外の情報も含む画像データが生成される。但し，バーコードは，必ずしも帳票（紙）上に表されたものに限定することを要しない。
【００１３】
光電変換部１１は，帳票を２次元的に読み取るものであり，「バーコードを含む２次元の画像データを生成する画像データ生成部」として機能する。光電変換部１１は，例えば，一次元または２次元的に配列された光電変換素子を有する。２次元的に配列された光電変換素子，例えば，撮像カメラによって，帳票を平面的に読み取ることができる。また，１次元的に配列された光電変換素子，例えば，リニアセンサを帳票に相対的に移動させることで（帳票，光電変換素子の一方または双方を移動させる），帳票を平面的に読み取ることができる。
【００１４】
光電変換部１１で読み取られた画像データは，画素が平面的に配置された２次元の画像データであり，各画素の明暗（濃淡，輝度）が複数ビット（例えば，ｎビット）で表されるものとする。図２は，光電変換部１１によって取得された帳票の画像データを表す図である。領域Ａ０，Ａ１はそれぞれ，帳票全体，バーコードに対応する領域（後述のバーコード領域）である。
【００１５】
画像記憶部１２は，光電変換部１１で読み取られた画像データを記憶する。画像記憶部１２は，例えば，半導体メモリから構成され，画像データを記憶する。
【００１６】
バーコード検出部１３は，例えば，次の（１）〜（４）のようにして，画像記憶部１２に記憶された画像データからバーコード領域（バーコードが存在する領域）を検出する。
（１）画像の二値化
所定の値を越えるか否かに応じて，各画素の輝度を暗状態，明状態の２つに区分する（各画素の輝度の二値化）。
（２）線状領域の検出
暗状態の画素が線状に連続して配置する領域（線状領域）を検出する。バーコード内に存在する黒色の線（バー）を抽出するためである。この結果，複数の線状領域が検出される。
（３）バーコードの検出
複数の線状領域それぞれの傾きを算出し，傾きが略一致する線状領域をバーとして検出する。即ち，他の線状領域と傾きが一致しない線状領域は，バーに対応しないと判定される。
（４）バーコード領域の検出
検出されたバーを囲む領域をバーコード領域として検出する。
【００１７】
バーコード走査部１４は，位置を変えながらバーコード領域を複数回走査するものであり，「生成された画像データから前記複数の走査データを抽出する走査データ抽出部」として機能する。図３は，バーコード走査部１４による走査の結果を表す模式図である。ここでは，位置（起点Ｐ０〜Ｐ４）を変えて，互いに略平行に５回走査し，画像記憶部１２に記憶された画像データから走査データＬｉ（Ｌ０〜Ｌ４）が抽出される。即ち，1回の走査ごとにバーコードの濃淡を表す数値の系列がデータ化される。
【００１８】
図３において，走査の方向は，バーコードのバーに斜めな方向であるが，バーに垂直な方向としても良い。なお、バーコードのバーに斜めな方向とすることで，走査データＬ０〜Ｌ４によって得られるデータに多様性を付与し，画像再構成部１５によって再構成（生成）される高解像度の1次元画像の精度が向上する。
【００１９】
走査データＬ０〜Ｌ４は，式（１）に示すように，画素が線状に配置された１次元のデータであり（所定の標本化周波数での標本化（例えば，帳票上所定の間隔でデジタル化されたデータ）），各画素の明暗（濃淡，輝度）Ｂが複数ビット（例えば，ｎビット）で表されるものとする。
Ｂ＝Ｌｉ（ｋ）                                ……（１）
【００２０】
図３では，光電変換部１１で読み取られた画像の高さ方向に起点Ｐ０〜Ｐ４が配置されていることから，起点Ｐ０〜Ｐ４のズレ（位置差Δｉ）が生じる。
これに対して，バーコードの高さ方向（バーに垂直な方向）に沿って位置（起点Ｐ０〜Ｐ４）を変えることで，「位置差Δｉ＝０」とすることができる。走査において，バーコードの高さ方向に位置（起点Ｐ０〜Ｐ４）を変えるには，例えば，バーコード検出部１３での処理（３）で求められる線状領域の傾きの情報を利用する。即ち，走査データＬ０〜Ｌ４それぞれの起点Ｐ０〜Ｐ４がこの傾きに沿って並ぶように，起点Ｐ０〜Ｐ４を設定する。
【００２１】
画像再構成部１５は，複数個の走査データ（例えば，走査データＬ０〜Ｌ４）から1個の高解像度の走査データを再構成する。画像再構成部１５は，「複数の走査データに基づいて，これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部」として機能する。
【００２２】
撮影位置がわずかに異なる複数枚の低解像度画像から1枚の高解像度画像を再構成する「超解像(SuperResolution)」と呼ばれる技術がある。これは，例えば，人工衛星から地表を撮影した連続画像や，動画の連続する複数コマの画像から，1枚の高解像度の画像を得る手法である。この手法を用いることで，ナイキスト周波数を超える周波数領域を含む画像を再構成できる。一方，再構成のためには少しずつ位置をずらして撮影した複数枚の画像を必要とする。
【００２３】
複数枚の低解像度のバーコード画像から超解像技術により1枚の高解像度のバーコード画像を再構成し，高密度のバーコードを読み取ることは原理的に可能である。しかし，1枚の帳票から複数枚の画像を得るためには，複数回スキャンする必要があり，かえって時間を要してしまう。
【００２４】
ここでは，対象を1次元バーコードに限定し，1枚の低解像度画像から，バーコードの高さ方向に位置を変えながら複数回走査した複数の1次元画像から，超解像技術により1つの高解像度の1次元画像を再構成する。このとき，画像再構成部１５は，走査データＬｉに対して，次の（１）〜（３）の処理を行う。
【００２５】
（１）位置差の推定
画像再構成部１５は，走査データＬ０〜Ｌ４の起点Ｐ０〜Ｐ４のズレ（位置差Δｉ）を推定する。但し，走査データＬ０〜Ｌ４の起点Ｐ０〜Ｐ４がバーコードの高さ方向に配置されているとして，この位置差Δｉの算出を省略することも可能である。この場合，「位置差Δｉ＝０」とする。また，起点Ｐ０〜Ｐ４を結ぶ線分と，バーの高さ方向との角度差θに基づいて，位置差Δｉを推定することも可能である（Δｉ＝Ｈｉ＊ｔａｎ（θ），Ｈｉ：基点Ｐ０から基点Ｐ１〜Ｐ４の距離，ｉ＝１〜４）。
【００２６】
画像再構成部１５は，例えば，走査データＬ０を基準として，走査データＬｉ（Ｌ１〜Ｌ４）の位置差Δｉを推定する。具体的には，次の式（１０）を最小とするΔｉを求める。これは線形最小２乗法により解くことができる。
【００２７】
Σｋ｛−Δｉ＊（Ｌ０（ｋ＋１）−Ｌ０（ｋ−１））／２
＋（Ｌｉ（ｋ）−Ｌ０（ｋ））｝２                    ……式（１０）
【００２８】
この式（１０）は，次のようにして求められる。
一般に，対象ｆ（ｘ）が速度ｖで移動していると考え，この対象を微少な時間間隔Δｔをおいて撮影した２枚の画像ｆ１（ｘ），ｆ２（ｘ）は次の関係を持つ。
ｆ２（ｘ）＝ｆ１（ｘ−ｖ＊Δｔ）                      ……式（１１）
【００２９】
ｆ（ｘ）を一次近似し，ｘ，ｔで偏微分すると，次の式（１２）が成立する。
ｖ＊（∂ｆ（ｘ）／∂ｘ）＋（∂ｆ（ｘ）／∂ｔ）〜０  ……式（１２）
【００３０】
ここで，雑音の影響の低減のため，式（１２）の左辺の２乗を積分した値を評価関数とし，この評価関数が最小となるｖ，Δｔを求めることとする。
∫［ｖ＊（∂ｆ（ｘ）／∂ｘ）＋（∂ｆ（ｘ）／∂ｔ）］２ｄｘ
……式（１３）
【００３１】
式（１３）で次のような置き換えをすることで（微分，積分をデジタルデータの差分，加算に置き換える），式（１０）が導出される。
∂ｆ／∂ｘ  →  （Ｌ０（ｋ＋１）−Ｌ０（ｋ−１））／２
∂ｆ／∂ｔ  →    Ｌｉ（ｋ）−Ｌ０（ｋ）
∫ｄｘ      →    Σｋ
ｖ＊Δｔ    →    −Δｉ
【００３２】
（２）広帯域補間
画像再構成部１５は，走査データＬｉ（Ｌ０〜Ｌ４）に広帯域補間処理を施す。具体的には，例えば，次の式（２０）により走査データＬｉを処理する。この広帯域補間処理は，「複数の走査データに対して，前記所定の標本化周波数の半分の周波数以上の高周波成分を通過させるフィルタ処理を施すフィルタ処理部」での処理に対応する。
【００３３】
ｅｉ（ｌ）＝Σｋ［Ｌｉ（ｋ）＊ｓｉｎ（２（ｌ／ｎ−ｋ））
／２（ｌ／ｎ−ｋ）］          ……式（２０）
ここで，ｎ：解像度の倍率（例えば，１０倍）
【００３４】
以下，式（２０）の導出につき説明する。
広帯域補間は，原信号を全て透過する広帯域ＬＰＦ（ローパスフィルタ）による処理を意味する。走査データＬｉ等の信号は，標本化周波数の影響により，周波数空間上で，例えば，ナイキスト周波数（標本化周波数の１／２）の２倍（即ち，［−２π，２π］）に帯域が制限される。
この場合，周波数空間では，隣接する信号分布の裾が重なり，折り返し成分の重なりは２重である。つまり，ある周波数に存在する成分は，基本波，高調波の内，たかだか２つを足したものとなる。
【００３５】
入力デジタルデータは，Ｌｉ（ｋ）というデータ列であるが，これを，位置（ｘ）に対する連続関数（デルタパルス列）と考えたものが標本化信号ｄ（ｘ）にあたる。原信号ｆｉとδパルス列ｓ（ｘ）との積によって，標本化されたデジタル信号ｄｉ（ｘ）が定義される。
ｄｉ（ｘ）＝Ｌｉ（ｘ）ｓ（ｘ）
＝Σｋδ（ｘ−ｋ）Ｌｉ（ｋ）              ……式（２１）
ｓ（ｘ）＝Σｋδ（ｘ−ｋ）            
【００３６】
標本化されたデジタル信号ｄｉ（ｘ）のフーリエ変換Ｄｉ（ω）は次の式で表される。
Ｄｉ（ω）＝Ｆｉ（ω）＊Ｓ（ω）
＝（１／２π）∫Ｆｉ（ω）Ｓ（ω−Ω）ｄΩ
＝ΣｋＦｉ（ω−２πｋ）                  ……式（２２）
【００３７】
まず，標本化信号ｄｉ（ｘ）にローパスフィルタＬＰＦをかけ，〔−２π，２π〕の帯域だけを取り出す。ｄｉ（ｘ）をＬＰＦ処理した信号をｅｉ（ｘ）とすると，そのフーリエ変換（Ｅｉ（ω））は次のようになる。
【００３８】
Ｅ０（ω）＝ＬＰＦ（ω）Ｄｉ（ω）
＝Ｆ（ω）＋ＬＰＦ（ω）ｅｘｐ（２πｉΔｉ）Ｆ（ω＋２π）
＋ＬＰＦ（ω）ｅｘｐ（−２πｉΔｉ）Ｆ（ω−２π）
……式（２３）
但し，
ＬＰＦ（ω）＝１  （−２π≦ω≦２π）
＝０  （ω＜−２π，２π＞ω）
【００３９】
これは，基本波と±１次高調波の半分を加算した信号である。
走査データＬｉの標本化信号ｄｉ（ｘ）は次のように表される。
ｄｉ（ｘ）＝Σｋδ（ｘ−ｋ）Ｌｉ（ｋ）
【００４０】
この標本化信号ｄｉ（ｘ）に式の広帯域ＬＰＦを掛ける。ＬＰＦ（ω）は実空間ではｓｉｎｃ関数（ｓｉｎ（２ｘ）／（２ｘ））とのコンボリューションであるから，信号ｅｉ（ｘ）が得られる。
ｅｉ（ｘ）＝ｌｐｆ［ｄｉ（ｘ）］
＝ｄｉ（ｘ）＊ｓｉｎ（２ｘ）／（２ｘ）
＝∫［ｄｉ（ｘ−ξ）＊ｓｉｎ（２ξ）／（２ξ）］ｄξ
……式（２４）
【００４１】
このＬＰＦ処理によって得られる信号（ｅｉ（ｘ））は連続信号であり，欲しい（標本化される）位置（ｘ）についてだけ式（２４）の計算をすればよい。この式（２４）に式（２１）および「ｘ＝ｌ／ｎ」を代入して，式（２０）が得られる。
【００４２】
（３）加重和の算出
画像再構成部１５は，次の式（３１），（３２）を満たし，式（３３）を最小とする加重Ｗｉを求め，信号ｅｉの荷重和Ｏ（ｋ）を算出する。この荷重和の算出は，「フィルタ処理された複数の走査データを重みづけ加算することで，前記１のデータ系列を生成する加算部」での処理に対応する。
【００４３】
ΣｍＷｍ＝１                              ……式（３１）
Σｍｅｘｐ（２πｉΔｍ）Ｗｋ＝０          ……式（３２）
ΣｍＷｍ２                                ……式（３３）
Ｏ（ｋ）＝ΣｉＷｉ＊ｅｉ（ｋ）            ……式（３４）
【００４４】
この荷重和Ｏ（ｋ）は，走査データＬ０〜Ｌ４より高解像度のデータ系列である。即ち，荷重和Ｏ（ｋ）は，「複数の走査データそれぞれの解像度より高い解像度の1のデータ系列」に対応する。
【００４５】
デコード部１６は，再構成された高解像度の走査データからバーコードの仕様にしたがってデコードを行う。
【００４６】
出力部１７は，デコード結果を出力する出力装置，例えば，表示装置（液晶表示装置），印刷装置である。
【００４７】
従来のバーコード読取装置では，１回ずつの走査データについて，デコード部で解析してコード化を行っており，バーコードに多少のノイズ等があった場合に備えて，複数回の走査を行い，いずれかの走査データが正しくデコードされればそれを出力するようになっている。このため，１つ１つの走査データがデコードに必要な解像度を備えている必要があり，そのために画像全体が，たとえばモジュール幅が０．１６７ｍｍのバーコードを読み取るためには，たとえばその２倍の周波数である３００ｄｐｉ（≒０．０８４ドット／ｍｍ）の解像度を持っている必要があった。
【００４８】
画像再構成部１５では，走査データＬ０〜Ｌ４から，超解像技術により，１つの高解像度の走査データを再構成する。たとえば，２００ｄｐｉ（≒０．１２７ドット／ｍｍ）の画像から検出したバーコードを，走査位置を変えながら複数回走査した走査データから，２００ｄｐｉを超える情報を持つ高解像度の走査データを再構成する。
【００４９】
これにより，１つ１つの走査データはデコードに必要な解像度を備えていなくても，複数回の走査データから高解像度の走査データを得ることができ，低解像度の画像から高密度のバーコードを読み取ることができる。
【００５０】
（第２の実施の形態）
図４は，本発明の第２の実施形態に係るバーコード読取装置２０を示すブロック図である。バーコード読取装置２０は，物体に印刷されたバーコードをレーザでスキャンする装置である。
【００５１】
バーコード読取装置２０は，光電変換部２１，バーコード走査部２４，画像再構成部１５，デコード部１６，出力部１７を有する。
【００５２】
光電変換部２１は，例えば，レーザ光を物体に照射して，反射光の輝度を電気信号に変換する。
バーコード走査部２４は，物体に対して，光電変換部２１からのレーザ光を複数回スキャンする。バーコードが配置される物体上の位置（領域）が特定され，バーコード走査部２４は，この特定の領域に対してレーザ光をスキャンする。
【００５３】
即ち，光電変換部２１，バーコード走査部２４は，物体上に表されるバーコードにレーザ光を複数回スキャンして，走査データＬｉ（Ｌ０〜Ｌ４）を生成するものであり，バーコードの複数の走査データを生成する走査データ生成部として機能する。
【００５４】
バーコード読取装置２０は，バーコード読取装置１０に対して，画像記憶部１２とバーコード検出部１３が省略されている。バーコードが配置される物体上の位置が特定されていることで，画像記憶部１２とバーコード検出部１３の省略が可能となる。その他の構成は，バーコード読取装置１０と実質的に相違する訳では無いので説明を省略する。
【００５５】
（その他の実施形態）
本発明の実施形態は上記の実施形態に限られず拡張，変更可能であり，拡張，変更した実施形態も本発明の技術的範囲に含まれる。
【符号の説明】
【００５６】
１０  バーコード読取装置
１１  光電変換部
１２  画像記憶部
１３  バーコード検出部
１４  バーコード走査部
１５  画像再構成部
１６  デコード部
１７  出力部
【図１】
2011186777.tif 000003
【図２】
2011186777.tif 000004
【図３】
2011186777.tif 000005
【図４】
2011186777.tif 000006