説明

バーコード読取装置およびバーコード読取方法

【課題】低解像度のバーコード画像から,高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供する。
【解決手段】バーコード読取装置は,バーコードの複数の走査データを生成する走査データ生成部と,前記複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と,前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と,を具備する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,帳票や物体からバーコードを読み取るバーコード読取装置および方法に係り,特に低解像度の画像からバーコードを読み取るバーコード読取装置およびバーコード読取方法に関する。
【背景技術】
【0002】
昨今のIT化の伸展により,情報量が大きなバーコードへの需要が増加し,バーコードの高密度化が進んでいる。従来,バーコード読取装置で高密度のバーコードを読み取る場合,読取対象のバーコードの細かさ(モジュール幅など)に応じた高い解像度(高分解能)のスキャナを必要としていた。たとえば最小モジュール幅が0.167mmと定義されているEAN128仕様のバーコードを読み取るためには,少なくともその約2倍の分解能(解像度が300dpi以上)のスキャナが必要となっていた。
なお,標本化位置の異なる複数組のデジタルデータから,ナイキスト周波数以上の原信号の高周波数成分を復元し,ぼけの少ない高解像度データを得る技術が公開されている(特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平8−336046号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
ここで,高解像度のスキャナは高価であり,また高解像度の画像を得るためにはスキャンに要する時間がかかるとか,得られた画像のデータ容量が大きくなるなどの問題があった。
上記に鑑み,本発明は,低解像度のバーコード画像から,高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の一態様に係るバーコード読取装置は,バーコードの複数の走査データを生成する走査データ生成部と,前記複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と,前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と,を具備する。
【0006】
本発明の一態様に係るバーコード読取方法は,バーコードの複数の走査データを生成するステップと,前記複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成するステップと,前記生成されたデータ系列から前記バーコードの情報をデコードするステップと,を具備する。
【発明の効果】
【0007】
本発明によれば,低解像度のバーコード画像から,高精度でのバーコードのデコードを可能とするバーコード読取装置およびバーコード読取方法を提供できる。
【図面の簡単な説明】
【0008】
【図1】本発明の第1の実施形態に係るバーコード読取装置10を示すブロック図である。
【図2】光電変換部11によって取得された帳票の画像データを表す図である。
【図3】バーコード走査部14による走査の結果を表す模式図である。
【図4】本発明の第2の実施形態に係るバーコード読取装置20を示すブロック図である。
【発明を実施するための形態】
【0009】
以下,図面を参照して,本発明の実施の形態を詳細に説明する。
(第1の実施の形態)
図1は,本発明の第1の実施形態に係るバーコード読取装置10を示すブロック図である。バーコード読取装置10は,帳票に印刷されたバーコードを読み取る装置である。
【0010】
バーコード読取装置10は,光電変換部11,画像記憶部12,バーコード検出部13,バーコード走査部14,画像再構成部15,デコード部16,出力部17を有する。以下,光電変換部11等を順に説明する。
【0011】
この例では,光電変換部11,画像記憶部12,バーコード検出部13,バーコード走査部14の全体が「バーコードの複数の走査データを生成する走査データ生成部」として機能する。
【0012】
光電変換部11は,例えば,バーコードが印刷された帳票をスキャンして,帳票の画像データを生成する。即ち,帳票全体がスキャンされ,バーコード以外の情報も含む画像データが生成される。但し,バーコードは,必ずしも帳票(紙)上に表されたものに限定することを要しない。
【0013】
光電変換部11は,帳票を2次元的に読み取るものであり,「バーコードを含む2次元の画像データを生成する画像データ生成部」として機能する。光電変換部11は,例えば,一次元または2次元的に配列された光電変換素子を有する。2次元的に配列された光電変換素子,例えば,撮像カメラによって,帳票を平面的に読み取ることができる。また,1次元的に配列された光電変換素子,例えば,リニアセンサを帳票に相対的に移動させることで(帳票,光電変換素子の一方または双方を移動させる),帳票を平面的に読み取ることができる。
【0014】
光電変換部11で読み取られた画像データは,画素が平面的に配置された2次元の画像データであり,各画素の明暗(濃淡,輝度)が複数ビット(例えば,nビット)で表されるものとする。図2は,光電変換部11によって取得された帳票の画像データを表す図である。領域A0,A1はそれぞれ,帳票全体,バーコードに対応する領域(後述のバーコード領域)である。
【0015】
画像記憶部12は,光電変換部11で読み取られた画像データを記憶する。画像記憶部12は,例えば,半導体メモリから構成され,画像データを記憶する。
【0016】
バーコード検出部13は,例えば,次の(1)〜(4)のようにして,画像記憶部12に記憶された画像データからバーコード領域(バーコードが存在する領域)を検出する。
(1)画像の二値化
所定の値を越えるか否かに応じて,各画素の輝度を暗状態,明状態の2つに区分する(各画素の輝度の二値化)。
(2)線状領域の検出
暗状態の画素が線状に連続して配置する領域(線状領域)を検出する。バーコード内に存在する黒色の線(バー)を抽出するためである。この結果,複数の線状領域が検出される。
(3)バーコードの検出
複数の線状領域それぞれの傾きを算出し,傾きが略一致する線状領域をバーとして検出する。即ち,他の線状領域と傾きが一致しない線状領域は,バーに対応しないと判定される。
(4)バーコード領域の検出
検出されたバーを囲む領域をバーコード領域として検出する。
【0017】
バーコード走査部14は,位置を変えながらバーコード領域を複数回走査するものであり,「生成された画像データから前記複数の走査データを抽出する走査データ抽出部」として機能する。図3は,バーコード走査部14による走査の結果を表す模式図である。ここでは,位置(起点P0〜P4)を変えて,互いに略平行に5回走査し,画像記憶部12に記憶された画像データから走査データLi(L0〜L4)が抽出される。即ち,1回の走査ごとにバーコードの濃淡を表す数値の系列がデータ化される。
【0018】
図3において,走査の方向は,バーコードのバーに斜めな方向であるが,バーに垂直な方向としても良い。なお、バーコードのバーに斜めな方向とすることで,走査データL0〜L4によって得られるデータに多様性を付与し,画像再構成部15によって再構成(生成)される高解像度の1次元画像の精度が向上する。
【0019】
走査データL0〜L4は,式(1)に示すように,画素が線状に配置された1次元のデータであり(所定の標本化周波数での標本化(例えば,帳票上所定の間隔でデジタル化されたデータ)),各画素の明暗(濃淡,輝度)Bが複数ビット(例えば,nビット)で表されるものとする。
B=Li(k) ……(1)
【0020】
図3では,光電変換部11で読み取られた画像の高さ方向に起点P0〜P4が配置されていることから,起点P0〜P4のズレ(位置差Δi)が生じる。
これに対して,バーコードの高さ方向(バーに垂直な方向)に沿って位置(起点P0〜P4)を変えることで,「位置差Δi=0」とすることができる。走査において,バーコードの高さ方向に位置(起点P0〜P4)を変えるには,例えば,バーコード検出部13での処理(3)で求められる線状領域の傾きの情報を利用する。即ち,走査データL0〜L4それぞれの起点P0〜P4がこの傾きに沿って並ぶように,起点P0〜P4を設定する。
【0021】
画像再構成部15は,複数個の走査データ(例えば,走査データL0〜L4)から1個の高解像度の走査データを再構成する。画像再構成部15は,「複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部」として機能する。
【0022】
撮影位置がわずかに異なる複数枚の低解像度画像から1枚の高解像度画像を再構成する「超解像(SuperResolution)」と呼ばれる技術がある。これは,例えば,人工衛星から地表を撮影した連続画像や,動画の連続する複数コマの画像から,1枚の高解像度の画像を得る手法である。この手法を用いることで,ナイキスト周波数を超える周波数領域を含む画像を再構成できる。一方,再構成のためには少しずつ位置をずらして撮影した複数枚の画像を必要とする。
【0023】
複数枚の低解像度のバーコード画像から超解像技術により1枚の高解像度のバーコード画像を再構成し,高密度のバーコードを読み取ることは原理的に可能である。しかし,1枚の帳票から複数枚の画像を得るためには,複数回スキャンする必要があり,かえって時間を要してしまう。
【0024】
ここでは,対象を1次元バーコードに限定し,1枚の低解像度画像から,バーコードの高さ方向に位置を変えながら複数回走査した複数の1次元画像から,超解像技術により1つの高解像度の1次元画像を再構成する。このとき,画像再構成部15は,走査データLiに対して,次の(1)〜(3)の処理を行う。
【0025】
(1)位置差の推定
画像再構成部15は,走査データL0〜L4の起点P0〜P4のズレ(位置差Δi)を推定する。但し,走査データL0〜L4の起点P0〜P4がバーコードの高さ方向に配置されているとして,この位置差Δiの算出を省略することも可能である。この場合,「位置差Δi=0」とする。また,起点P0〜P4を結ぶ線分と,バーの高さ方向との角度差θに基づいて,位置差Δiを推定することも可能である(Δi=Hi*tan(θ),Hi:基点P0から基点P1〜P4の距離,i=1〜4)。
【0026】
画像再構成部15は,例えば,走査データL0を基準として,走査データLi(L1〜L4)の位置差Δiを推定する。具体的には,次の式(10)を最小とするΔiを求める。これは線形最小2乗法により解くことができる。
【0027】
Σ{−Δi*(L0(k+1)−L0(k−1))/2
+(Li(k)−L0(k))} ……式(10)
【0028】
この式(10)は,次のようにして求められる。
一般に,対象f(x)が速度vで移動していると考え,この対象を微少な時間間隔Δtをおいて撮影した2枚の画像f1(x),f2(x)は次の関係を持つ。
f2(x)=f1(x−v*Δt) ……式(11)
【0029】
f(x)を一次近似し,x,tで偏微分すると,次の式(12)が成立する。
v*(∂f(x)/∂x)+(∂f(x)/∂t)〜0 ……式(12)
【0030】
ここで,雑音の影響の低減のため,式(12)の左辺の2乗を積分した値を評価関数とし,この評価関数が最小となるv,Δtを求めることとする。
∫[v*(∂f(x)/∂x)+(∂f(x)/∂t)]dx
……式(13)
【0031】
式(13)で次のような置き換えをすることで(微分,積分をデジタルデータの差分,加算に置き換える),式(10)が導出される。
∂f/∂x → (L0(k+1)−L0(k−1))/2
∂f/∂t → Li(k)−L0(k)
∫dx → Σ
v*Δt → −Δi
【0032】
(2)広帯域補間
画像再構成部15は,走査データLi(L0〜L4)に広帯域補間処理を施す。具体的には,例えば,次の式(20)により走査データLiを処理する。この広帯域補間処理は,「複数の走査データに対して,前記所定の標本化周波数の半分の周波数以上の高周波成分を通過させるフィルタ処理を施すフィルタ処理部」での処理に対応する。
【0033】
ei(l)=Σ[Li(k)*sin(2(l/n−k))
/2(l/n−k)] ……式(20)
ここで,n:解像度の倍率(例えば,10倍)
【0034】
以下,式(20)の導出につき説明する。
広帯域補間は,原信号を全て透過する広帯域LPF(ローパスフィルタ)による処理を意味する。走査データLi等の信号は,標本化周波数の影響により,周波数空間上で,例えば,ナイキスト周波数(標本化周波数の1/2)の2倍(即ち,[−2π,2π])に帯域が制限される。
この場合,周波数空間では,隣接する信号分布の裾が重なり,折り返し成分の重なりは2重である。つまり,ある周波数に存在する成分は,基本波,高調波の内,たかだか2つを足したものとなる。
【0035】
入力デジタルデータは,Li(k)というデータ列であるが,これを,位置(x)に対する連続関数(デルタパルス列)と考えたものが標本化信号d(x)にあたる。原信号fiとδパルス列s(x)との積によって,標本化されたデジタル信号di(x)が定義される。
di(x)=Li(x)s(x)
=Σδ(x−k)Li(k) ……式(21)
s(x)=Σδ(x−k)
【0036】
標本化されたデジタル信号di(x)のフーリエ変換Di(ω)は次の式で表される。
Di(ω)=Fi(ω)*S(ω)
=(1/2π)∫Fi(ω)S(ω−Ω)dΩ
=ΣFi(ω−2πk) ……式(22)
【0037】
まず,標本化信号di(x)にローパスフィルタLPFをかけ,〔−2π,2π〕の帯域だけを取り出す。di(x)をLPF処理した信号をei(x)とすると,そのフーリエ変換(Ei(ω))は次のようになる。
【0038】
E0(ω)=LPF(ω)Di(ω)
=F(ω)+LPF(ω)exp(2πiΔi)F(ω+2π)
+LPF(ω)exp(−2πiΔi)F(ω−2π)
……式(23)
但し,
LPF(ω)=1 (−2π≦ω≦2π)
=0 (ω<−2π,2π>ω)
【0039】
これは,基本波と±1次高調波の半分を加算した信号である。
走査データLiの標本化信号di(x)は次のように表される。
di(x)=Σδ(x−k)Li(k)
【0040】
この標本化信号di(x)に式の広帯域LPFを掛ける。LPF(ω)は実空間ではsinc関数(sin(2x)/(2x))とのコンボリューションであるから,信号ei(x)が得られる。
ei(x)=lpf[di(x)]
=di(x)*sin(2x)/(2x)
=∫[di(x−ξ)*sin(2ξ)/(2ξ)]dξ
……式(24)
【0041】
このLPF処理によって得られる信号(ei(x))は連続信号であり,欲しい(標本化される)位置(x)についてだけ式(24)の計算をすればよい。この式(24)に式(21)および「x=l/n」を代入して,式(20)が得られる。
【0042】
(3)加重和の算出
画像再構成部15は,次の式(31),(32)を満たし,式(33)を最小とする加重Wiを求め,信号eiの荷重和O(k)を算出する。この荷重和の算出は,「フィルタ処理された複数の走査データを重みづけ加算することで,前記1のデータ系列を生成する加算部」での処理に対応する。
【0043】
ΣWm=1 ……式(31)
Σexp(2πiΔm)Wk=0 ……式(32)
ΣWm ……式(33)
O(k)=ΣWi*ei(k) ……式(34)
【0044】
この荷重和O(k)は,走査データL0〜L4より高解像度のデータ系列である。即ち,荷重和O(k)は,「複数の走査データそれぞれの解像度より高い解像度の1のデータ系列」に対応する。
【0045】
デコード部16は,再構成された高解像度の走査データからバーコードの仕様にしたがってデコードを行う。
【0046】
出力部17は,デコード結果を出力する出力装置,例えば,表示装置(液晶表示装置),印刷装置である。
【0047】
従来のバーコード読取装置では,1回ずつの走査データについて,デコード部で解析してコード化を行っており,バーコードに多少のノイズ等があった場合に備えて,複数回の走査を行い,いずれかの走査データが正しくデコードされればそれを出力するようになっている。このため,1つ1つの走査データがデコードに必要な解像度を備えている必要があり,そのために画像全体が,たとえばモジュール幅が0.167mmのバーコードを読み取るためには,たとえばその2倍の周波数である300dpi(≒0.084ドット/mm)の解像度を持っている必要があった。
【0048】
画像再構成部15では,走査データL0〜L4から,超解像技術により,1つの高解像度の走査データを再構成する。たとえば,200dpi(≒0.127ドット/mm)の画像から検出したバーコードを,走査位置を変えながら複数回走査した走査データから,200dpiを超える情報を持つ高解像度の走査データを再構成する。
【0049】
これにより,1つ1つの走査データはデコードに必要な解像度を備えていなくても,複数回の走査データから高解像度の走査データを得ることができ,低解像度の画像から高密度のバーコードを読み取ることができる。
【0050】
(第2の実施の形態)
図4は,本発明の第2の実施形態に係るバーコード読取装置20を示すブロック図である。バーコード読取装置20は,物体に印刷されたバーコードをレーザでスキャンする装置である。
【0051】
バーコード読取装置20は,光電変換部21,バーコード走査部24,画像再構成部15,デコード部16,出力部17を有する。
【0052】
光電変換部21は,例えば,レーザ光を物体に照射して,反射光の輝度を電気信号に変換する。
バーコード走査部24は,物体に対して,光電変換部21からのレーザ光を複数回スキャンする。バーコードが配置される物体上の位置(領域)が特定され,バーコード走査部24は,この特定の領域に対してレーザ光をスキャンする。
【0053】
即ち,光電変換部21,バーコード走査部24は,物体上に表されるバーコードにレーザ光を複数回スキャンして,走査データLi(L0〜L4)を生成するものであり,バーコードの複数の走査データを生成する走査データ生成部として機能する。
【0054】
バーコード読取装置20は,バーコード読取装置10に対して,画像記憶部12とバーコード検出部13が省略されている。バーコードが配置される物体上の位置が特定されていることで,画像記憶部12とバーコード検出部13の省略が可能となる。その他の構成は,バーコード読取装置10と実質的に相違する訳では無いので説明を省略する。
【0055】
(その他の実施形態)
本発明の実施形態は上記の実施形態に限られず拡張,変更可能であり,拡張,変更した実施形態も本発明の技術的範囲に含まれる。
【符号の説明】
【0056】
10 バーコード読取装置
11 光電変換部
12 画像記憶部
13 バーコード検出部
14 バーコード走査部
15 画像再構成部
16 デコード部
17 出力部

【特許請求の範囲】
【請求項1】
バーコードの複数の走査データを生成する走査データ生成部と,
前記複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成する高解像処理部と,
前記生成されたデータ系列から前記バーコードの情報をデコードするデコード部と,
を具備することを特徴とするバーコード読取装置。
【請求項2】
前記走査データ生成部が,
前記バーコードを含む2次元の画像データを生成する画像データ生成部と,
前記生成された画像データから前記複数の走査データを抽出する走査データ抽出部と,を有する,
ことを特徴とする請求項1記載のバーコード読取装置。
【請求項3】
前記複数の走査データの起点が前記バーコードの高さ方向に並んで配置される
ことを特徴とする請求項1または2に記載のバーコード読取装置。
【請求項4】
前記複数の走査データが所定の標本化周波数で標本化されたデータであり,
前記高解像処理部が,
前記複数の走査データに対して,前記所定の標本化周波数の半分の周波数以上の高周波成分を通過させるフィルタ処理を施すフィルタ処理部と,
前記フィルタ処理された複数の走査データを重みづけ加算することで,前記1のデータ系列を生成する加算部と,を有する,
ことを特徴とする請求項1乃至3のいずれか1項に記載のバーコード読取装置。
【請求項5】
バーコードの複数の走査データを生成するステップと,
前記複数の走査データに基づいて,これら複数の走査データそれぞれの解像度より高い解像度の1のデータ系列を生成するステップと,
前記生成されたデータ系列から前記バーコードの情報をデコードするステップと,
を具備することを特徴とするバーコード読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate