説明

2次元コード読取装置及びその方法

【課題】周囲環境の影響を受けずにバーコード等の2次元コードに含まれる情報を読み取ること。
【解決手段】バーコードを撮像装置により撮像して取得した多階調の画像データに含まれるバーコードの各輪郭を抽出した輪郭抽出画像データを輪郭抽出部により取得し、この輪郭抽出画像データと多階調の画像データとに基づいて多階調の画像データ中のバーコードの部分とその背景部分とに分離された階調値の度数分布を示すヒストグラムをヒストグラム作成部により作成し、このヒストグラムにおけるバーコードを示す度数と背景を示す度数との間の階調値をしきい値決定部によりしきい値として決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、商品等に付けられている例えばバーコード等の2次元コードに含まれる情報を読み取る2次元コード読取装置及びその方法に関する。
【背景技術】
【0002】
画像データ中に含まれる例えばバーコードの領域を抽出する技術としては、例えば特許文献1等がある。この特許文献1は、長方形バーコード領域を含む原画像データを2値化して記憶手段に記憶すると共に、この2値化データの輪郭データを出力し、この輪郭データを所定サイズ分拡大してバーコード領域を塗り潰し、この後、縮小と収縮処理を行い、バーコードの中心領域を残し背景画像を消去し、残ったバーコードの中心領域からバーコードの中心と傾きを求め、バーコードの傾き方向に記憶手段からデータを読み出すことにより、バーコードラベルが入力原稿の任意方向に貼られていてもバーコードの復号化を可能とすることを開示する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開平2−125381号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、最初に長方形バーコード領域を含む原画像データを2値化するが、この原画像データ中にバーコードが再現できていることが重要である。すなわち、特にカメラ等の2次元画像入力装置を用いてバーコード等の対象物を撮像する場合、外光や照明、対象物の表面の鏡面反射等の周囲環境の影響を受け、常時、安定した入力画像データを取得できるとは限らない。このため、入力画像データを予め設定されたしきい値で2値化すると、周囲環境の変化に対応できず、バーコードを構成するバーを原画像データ中に再現できない場合がある。このようにバーが再現できなければ、バーコード領域を抽出することが不可能である。
【0005】
本発明の目的は、周囲環境の影響を受けずにバーコード等の2次元コードに含まれる情報を読み取ることができる2次元コード読取装置及びその方法を提供することにある。
【課題を解決するための手段】
【0006】
本発明の主要な局面に係る2次元コード読取装置は、複数の黒色部から成る2次元コードを撮像装置により撮像して多階調の画像データを取得し、この多階調の画像データに対してしきい値を用いて2値化し、この2値化画像データから2次元コードに含まれる情報を読み取る2次元コード読取装置において、撮像装置の撮像により取得された画像データに対して互いに直交する2方向からそれぞれ微分処理を行い、これら微分処理の結果の和を求め、この和の結果に対して2値化処理を行って画像データに含まれる2次元コードの各黒色部の各輪郭縁を中心としてそれぞれデータ幅を有するハイレベルとなり、かつこれらハイレベルの他の部分でローレベルとなり、2次元コードのエッジ部分を強調した輪郭抽出画像データを取得する輪郭抽出部と、輪郭抽出部により取得された輪郭抽出画像データと撮像装置により取得された画像データとの論理積を行い、この論理積によって輪郭抽出画像データのハイレベルの部分を各黒色部と重なる各黒色部の領域部分と各黒色部と重ならない各黒色部の背景部分とに2分し、画像データ中における2次元コードの各黒色部の領域部分を示す階調値が低い画素数を累積した度数と各黒色部の背景部分を示す階調値が高い画素数を累積した度数とからなる階調値の度数分布を示すヒストグラムを作成するヒストグラム作成部と、ヒストグラム作成部により作成されたヒストグラムの度数分布における各黒色部を示す度数のピークと各黒色部の背景部分を示す度数とのピークの間の階調値をしきい値として決定するしきい値決定部とを具備する。
【0007】
本発明の主要な局面に係る2次元コード読取方法は、複数の黒色部から成る2次元コードを撮像して多階調の画像データを取得し、この多階調の画像データに対してしきい値を用いて2値化し、この2値化画像データから2次元コードに含まれる情報を読み取る2次元コード読取方法において、画像データに対して互いに直交する2方向からそれぞれ微分処理を行い、これら微分処理の結果の和を求め、この和の結果に対して2値化処理を行って画像データに含まれる2次元コードの各黒色部の各輪郭縁を中心としてそれぞれデータ幅を有するハイレベルとなり、かつこれらハイレベルの他の部分でローレベルとなり、2次元コードのエッジ部分を強調した輪郭抽出画像データを取得し、輪郭抽出画像データと画像データとの論理積を行い、この論理積によって輪郭抽出画像データのハイレベルの部分を各黒色部と重なる各黒色部の領域部分と各黒色部と重ならない各黒色部の背景部分とに2分し、画像データ中における2次元コードの各黒色部の領域部分を示す階調値が低い画素数を累積した度数と各黒色部の背景部分を示す階調値が高い画素数を累積した度数とからなる階調値の度数分布を示すヒストグラムを作成し、ヒストグラムの度数分布における各黒色部を示す度数のピークと各黒色部の背景部分を示す度数のピークとの間の階調値を前記しきい値として決定する。
【発明の効果】
【0008】
本発明によれば、周囲環境の影響を受けずにバーコード等の2次元コードに含まれる情報を読み取ることができる2次元コード読取装置及びその方法を提供できる。
【図面の簡単な説明】
【0009】
【図1】本発明に係る2次元コード読取装置の一実施の形態を示す構成図。
【図2】同装置における輪郭抽出部の輪郭抽出作用を示す図。
【図3】同装置におけるヒストグラム作成部により作成されたヒストグラムの一例を示す図。
【図4】同装置におけるバーコード読取動作の順序を示す図。
【図5】同装置におけるバーコード読取動作の作用を示す摸式図。
【図6】同装置における輪郭抽出部により取得された2次元の輪郭抽出画像データの摸式図。
【発明を実施するための形態】
【0010】
以下、本発明の一実施の形態について図面を参照して説明する。
図1は2次元コード読取装置の構成図を示す。この2次元コード読取装置は、例えば電子キャッシュレジスタに用いられる。この2次元コード読取装置は、制御部本体としてCPU(Central Processing Unit)1を搭載している。このCPU1には、ROM(Read Only Memory)2と、RAM(Random Access Memory)3と、通信インタフェース(通信I/F)4と、撮像部5とが接続されると共に、CPU1からの指令を受けて2値化処理部6と、デコード部7と、輪郭抽出部8と、ヒストグラム作成部9と、しきい値決定部10とが動作するものとなっている。
【0011】
ROM2には、例えば電子キャッシュレジスタの業務を実行させるための業務プログラムや2次元コード読取プログラムが予め格納されている。2次元コード読取プログラムは、撮像部5により2次元コードとして例えば商品11に貼られたバーコード12を含む領域を撮像させて多階調の画像信号を取得させ、この多階調の画像信号に対してしきい値を用いて2値化させ、この2値化画像データから前記2次元コードに含まれる情報を読み取らせる場合に、輪郭抽出部8を動作させて多階調の画像信号に含まれる2次元コードの輪郭を抽出した輪郭抽出画像データを取得させ、この輪郭抽出画像データと多階調の画像データとに基づいてバーコード12の輪郭を含めた部分の多階調の画像データのヒストグラムを作成させ、このヒストグラムに基づいて多階調の画像データを2値化させるしきい値を決定させる。
【0012】
RAM3は、各種データを一時記憶するためのエリアが形成され、例えば撮像部5の撮像により取得された多階調の画像データDaを当該エリアに一時記憶したり、デコード部7によりデコードされたバーコード12に含む情報等をエリアに一時記憶する。
通信I/F4には、図示しない伝送路を通して外部機器が接続されている。この通信I/F4は、伝送路を通して外部機器の間でデータ通信を行う。
撮像部5は、商品11に貼られたバーコード12を含む領域を撮像し、その多階調、例えば0〜255階調の画像信号を出力するもので、例えばCCD等により成るイメージセンサが用いられる。
【0013】
2値化処理部6は、撮像部5の撮像により取得された多階調の画像データに対してしきい値を用いて2値化し、2値化画像データを取得する。この2値化処理部6での2値化処理に用いるしきい値は、後述するしきい値決定部10により決定される。
デコード部7は、2値化処理部6により取得された2値化画像データからバーコード12に含まれる情報を読み取る。
【0014】
輪郭抽出部8は、撮像部5から出力される画像信号を順次取り込み、バーコード12の輪郭を抽出した輪郭抽出画像データを取得する。この輪郭抽出部8は、多階調の画像データに対して微分フィルタを用いて微分処理を行い、この微分処理の結果に対して2値化処理を行ってバーコード12のエッジ部分を強調した輪郭抽出画像データを取得する。具体的に輪郭抽出部8は、図2に示すように入力画像すなわち撮像部5から出力される画像信号に対して互いに直交する2方向の各微分フィルタ13a、13bを用いてそれぞれ微分処理を行い、次に、各微分処理の結果の絶対値の和を求め、次に、この和の結果に対して2値化処理を行って輪郭抽出画像データDbを取得する。なお、図2に示す多階調の画像データDaは、説明を簡単化するために3×3画素(a〜a)のマトリックスにより示す。各微分フィルタ13a、13bは、それぞれ3×3画素のマトリックスに形成されている。
【0015】
ヒストグラム作成部9は、輪郭抽出部8により取得された輪郭抽出画像データDbと撮像部5の撮像により取得された多階調の画像データDaとに基づいてバーコード12の輪郭を含めた部分の多階調の画像データDaのヒストグラムを作成する。具体的にヒストグラム作成部9は、輪郭抽出画像データDbと多階調の画像データDaとの論理積を行って例えば図3に示すような多階調の画像データDa中のバーコード12の部分すなわち黒バーの部分とその背景部分とに分離された階調値の度数分布を示すヒストグラムを作成する。
【0016】
しきい値決定部10は、ヒストグラム作成部9により作成されたヒストグラムに基づいて2値化処理部6で用いるしきい値を決定する。このしきい値決定部10は、図3に示すようにヒストグラムにおけるバーコード12である黒バーの部分とその背景部分との間の階調値をしきい値Hとして決定する。具体的にしきい値決定部10は、ヒストグラムの度数を例えば階調値の高い方すなわち階調値「255」側から累積し、全体の累積値に対して予め設定された割合、例えばN%の累積値に対応する階調値をしきい値Hとして決定する。
【0017】
次に、上記の如く構成された装置によるバーコードの読取動作について図4に示すバーコード読取動作の順序を示す図に従って説明する。
例えば商品11がオペレータによって撮像部5の撮像領域内に配置される。このとき、オペレータは、商品11に付けられているバーコード12を撮像部5に向けて配置すると共に、撮像部5のフォーカス位置にバーコード12が配置されるように商品11を撮像部5に対して近付けたり遠ざけたりする。撮像部5は、例えばオペレータによって把持されている商品11に付けられたバーコード12を含む領域を撮像し、その多階調の画像信号Saを出力する。例えば図5に示すようにバーコード12が複数本の黒色の各バーb、b、bから成れば、撮像部5から出力される画像信号Saは、各黒色バーb、b、bのラインL−L’上において、各黒色バーb、b、bに対応する部分で例えば階調「0」になり、各黒色バーb、b、bの背景部分で例えば階調「255」の濃淡レベルに成る。なお、撮像部5から出力された画像信号Saは、CPU1の指令により順次RAM3に送られ、最終的にバーコード12の全体を含む多階調の画像データDaとして記憶される。
【0018】
次に、輪郭抽出部8は、ステップ#1において、撮像部5から出力された画像信号Saを順次取り込み、バーコード12の輪郭を抽出した輪郭抽出画像データDbを取得する。具体的に輪郭抽出部8は、図2に示すように撮像部5から順次取り込まれる画像信号Saに対して一方の微分フィルタ13aを用いて微分処理を行い、この微分処理の結果の絶対値を求める。これと共に、輪郭抽出部8は、撮像部5から順次取り込まれる画像信号Saに対して一方の微分フィルタ13aの微分方向に対して直交する微分方向を有する他方の微分フィルタ13bを用いて微分処理を行い、この微分処理の結果の絶対値を求める。
【0019】
次に、輪郭抽出部8は、一方の微分フィルタ13aによる微分結果の絶対値と他方の微分フィルタ13bによる微分結果の絶対値との和を求め、図5に示すように各黒色バーb、b、bの輪郭を強調した画像信号Sbを得る。この輪郭を強調した画像信号Sbは、撮像部5から出力された画像信号Saにおける階調値が急峻に変化するところ、すなわち各黒色バーb、b、bの輪郭部分において階調値が「0」から「255」に急峻に変化したり、「255」から「0」に急峻に変化するところにおいて濃淡レベルが高くなる。すなわち、輪郭を強調した画像信号Sbは、各黒色バーb、b、bの輪郭縁e〜eに対応する部分で階調値のピークを有し、このピークを中心として対称的に階調値が低下する。そして、画像信号Saにおける階調値が変化しないところでは、画像信号Sbの濃淡レベルが低い。
【0020】
次に、輪郭抽出部8は、ステップ#2において、各黒色バーb、b、bの輪郭を強調した画像信号Sbに対して予め設定されている2値化しきい値Hsを用いて2値化処理を行い、図5に示すような輪郭抽出画像データDbを取得する。なお、図6は2次元により表す輪郭抽出画像データDbの摸式図を示す。この輪郭抽出画像データDbは、各黒色バーb、b、bの輪郭部分に対応する部分おいてハイレベル「1」になり、その他の部分でローレベル「0」になる。すなわち、上記したように輪郭を強調した画像信号Sbは、各黒色バーb、b、bの輪郭縁e〜eに対応する部分で階調値のピークを有し、このピークを中心として対称的に階調値が低下するので、輪郭抽出画像データDbにおける各ハイレベル「1」は、各黒色バーb、b、bの輪郭縁e〜eを中心とする予め設定されたデータ幅Kを有する。従って、輪郭抽出画像データDbにおける各ハイレベル「1」のデータ幅Kは、図6に示すように輪郭を強調した画像信号Sbを2値化しきい値Hsにより2値化したときのハイレベル「1」になる幅であり、この幅の略中心に各黒色バーb、b、bの輪郭縁e〜eが位置する。すなわち、輪郭抽出画像データDbは、各黒色バーb、b、bの各輪郭縁e〜eの外側と内側とを1対1の割合で占める。
【0021】
次に、ヒストグラム作成部9は、ステップ#3において、輪郭抽出部8により取得された輪郭抽出画像データDbと撮像部5の撮像により取得された多階調の画像データDaとの論理積を行い、ステップ#4において、例えば図3に示すような多階調の画像データDa中のバーコード12の部分すなわち黒バーの部分と黒バーの背景部分とに分離された階調値の度数分布を示すヒストグラムを作成する。輪郭抽出画像データDbと多階調の画像データDaとの論理積によって、各黒色バーb、b、bの各輪郭縁e1〜e6は、各黒色バーb、b、bとは重ならない外側部分すなわち各黒色バーb、b、bの背景部分と、各黒色バーb、b、bと重なる内側部分すなわち各黒色バーb、b、bを示す領域部分に2分される。従って、ヒストグラムは、各黒色バーb、b、bを示す階調値が低い画素数を累積した度数と各黒色バーb、b、bの背景を示す階調値が高い画素数を累積した度数が高くなる。
【0022】
次に、しきい値決定部10は、ステップ#5において、図3に示すようにヒストグラム作成部9により作成されたヒストグラムにおけるバーコード12である黒バーの部分とその背景部分との間の階調値をしきい値Hとして決定する。すなわち、ヒストグラムは、上記したように各黒色バーb、b、bを示す度数と各黒色バーb、b、bの背景を示す度数とで1対1の割合で2分されているので、各黒色バーb、b、bを示す度数と各黒色バーb、b、bの背景を示す度数との間の階調値にしきい値Hを決定すれば、各黒色バーb、b、bを抽出可能になる。従って、しきい値決定部10は、ヒストグラムの度数を例えば階調値の高い方すなわち階調値「255」側から累積し、全体の累積値に対して予め設定された割合、すなわち各黒色バーb、b、bを示す度数と各黒色バーb、b、bの背景を示す度数との間の階調値、例えば50%等のN%の累積値に対応する階調値をしきい値Hとして決定する。
【0023】
次に、2値化処理部6は、ステップ#6において、撮像部5の撮像により取得された多階調の画像データDaを受け取ると共に、しきい値決定部10により決定されたしきい値Hを受け取り、多階調の画像データDaに対してしきい値Hを用いて2値化し、2値化画像データを取得する。
次に、デコード部7は、ステップ#7において、2値化処理部6により取得された2値化画像データからバーコード12に含まれる情報を読み取る。すなわち、デコード部7は、2値化画像データに対して例えば多方向に走査することによりバーコード12の領域を走査し、この走査により得られる2値データの連側幅を検証してバーコード12のデコードを行う。このバーコード12のデコード結果は、CPU1の指令により通信I/F4を通して外部機器に送られる。
【0024】
このように上記一実施の形態によれば、バーコード12を撮像して取得した多階調の画像データDaに対してしきい値Hを用いて2値化し、この2値化画像データからバーコード12に含まれる情報を読み取る場合、多階調の画像データDaに含まれるバーコード12の各輪郭を抽出した輪郭抽出画像データDbを取得し、この輪郭抽出画像データDbと多階調の画像データDaとに基づいて多階調の画像データDa中のバーコード12の部分すなわち各黒バーb、b、bの部分とその背景部分とに分離された階調値の度数分布を示すヒストグラムを作成し、このヒストグラムにおける各黒色バーb、b、bを示す度数と各黒色バーb、b、bの背景を示す度数との間の階調値、例えば50%等のN%の累積値に対応する階調値をしきい値Hとして決定する。
【0025】
これにより、各黒バーb、b、bの部分とその背景部分とに分離された階調値の度数分布を示すヒストグラムから各黒バーb、b、bの部分とその背景部分とを確実に二分割できるしきい値Hを決定することができ、特にカメラ等の2次元画像入力装置を用いてバーコード等の対象物を撮像する場合、外光や照明、対象物の表面の鏡面反射等の周囲環境の影響を受け、図5に示すような多階調の画像信号Saにおけるバーコード12の各黒色バーb、b、bを示すレベルとその背景を示すレベルとの間のレベル差Rが安定せず、このレベル差Rが広くなったり狭くなったりすることがあるが、このようなレベル差Rの変化が生じても各黒バーb、b、bを確実に抽出してバーコード12に含まれる情報を安定して読み取ることが出来る。
【0026】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
例えば、しきい値Hの決定は、ヒストグラムにおける各黒バーb、b、bの部分とその背景部分とを二分割できればよいので、各黒バーb、b、bの部分の度数のピークとその背景部分の度数のピークと間の階調値をしきい値Hとして決定してもよい。
【0027】
上記一実施の形態では、バーコード12に適用した場合について説明したが、これに限らず、2次元コードとして例えばQRコードを読み取るときのしきい値Hの決定にも適用可能である。
【符号の説明】
【0028】
1:CPU、2:ROM、3:RAM、4:通信インタフェース(通信I/F)、5:撮像部、6:2値化処理部、7:デコード部、8:輪郭抽出部、9:ヒストグラム作成部、10:しきい値決定部、11:商品、12:バーコード、13a,13b:微分フィルタ。

【特許請求の範囲】
【請求項1】
複数の黒色部から成る2次元コードを撮像装置により撮像して多階調の画像データを取得し、この多階調の画像データに対してしきい値を用いて2値化し、この2値化画像データから前記2次元コードに含まれる情報を読み取る2次元コード読取装置において、
前記撮像装置の撮像により取得された前記画像データに対して互いに直交する2方向からそれぞれ微分処理を行い、これら微分処理の結果の和を求め、この和の結果に対して2値化処理を行って前記画像データに含まれる前記2次元コードの前記各黒色部の各輪郭縁を中心としてそれぞれデータ幅を有するハイレベルとなり、かつこれらハイレベルの他の部分でローレベルとなり、前記2次元コードのエッジ部分を強調した輪郭抽出画像データを取得する輪郭抽出部と、
前記輪郭抽出部により取得された前記輪郭抽出画像データと前記撮像装置により取得された前記画像データとの論理積を行い、この論理積によって前記輪郭抽出画像データの前記ハイレベルの部分を前記各黒色部と重なる前記各黒色部の領域部分と、前記各黒色部と重ならない前記各黒色部の背景部分とに2分し、前記画像データ中における前記2次元コードの前記各黒色部の前記領域部分を示す階調値が低い画素数を累積した度数と、前記各黒色部の前記背景部分を示す階調値が高い画素数を累積した度数とからなる階調値の度数分布を示すヒストグラムを作成するヒストグラム作成部と、
前記ヒストグラム作成部により作成された前記ヒストグラムの前記度数分布における前記各黒色部を示す前記度数のピークと前記各黒色部の前記背景部分を示す前記度数のピークとの間の前記階調値を前記しきい値として決定するしきい値決定部と、
を具備することを特徴とする2次元コード読取装置。
【請求項2】
前記輪郭抽出画像データは、前記各黒色部の前記各輪郭縁が前記ハイレベルの中心に位置し、前記各黒色部の前記各輪郭縁の外側と内側とを1対1の割合で占めることを特徴とする請求項1記載の2次元コード読取装置。
【請求項3】
前記2次元コードは、少なくともバーコード又はQRコードを含むことを特徴とする請求項1記載の2次元コード読取装置。
【請求項4】
複数の黒色部から成る2次元コードを撮像して多階調の画像データを取得し、この多階調の画像データに対してしきい値を用いて2値化し、この2値化画像データから前記2次元コードに含まれる情報を読み取る2次元コード読取方法において、
前記画像データに対して互いに直交する2方向からそれぞれ前記微分処理を行い、これら微分処理の結果の和を求め、この和の結果に対して前記2値化処理を行って前記画像データに含まれる前記2次元コードの前記各黒色部の各輪郭縁を中心としてそれぞれデータ幅を有するハイレベルとなり、かつこれらハイレベルの他の部分でローレベルとなり、前記2次元コードのエッジ部分を強調した輪郭抽出画像データを取得し、
前記輪郭抽出画像データと前記画像データとの論理積を行い、この論理積によって前記輪郭抽出画像データの前記ハイレベルの部分を前記各黒色部と重なる前記各黒色部の領域部分と前記各黒色部と重ならない前記各黒色部の背景部分とに2分し、前記画像データ中における前記2次元コードの前記各黒色部の前記領域部分を示す階調値が低い画素数を累積した度数と前記各黒色部の前記背景部分を示す階調値が高い画素数を累積した度数とからなる階調値の度数分布を示すヒストグラムを作成し、
前記ヒストグラムの前記度数分布における前記各黒色部を示す前記度数のピークと前記各黒色部の前記背景部分を示す前記度数のピークとの間の前記階調値を前記しきい値として決定する、
ことを特徴とする2次元コード読取方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−170882(P2011−170882A)
【公開日】平成23年9月1日(2011.9.1)
【国際特許分類】
【出願番号】特願2011−101994(P2011−101994)
【出願日】平成23年4月28日(2011.4.28)
【分割の表示】特願2007−127214(P2007−127214)の分割
【原出願日】平成19年5月11日(2007.5.11)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.QRコード
【出願人】(000003562)東芝テック株式会社 (5,631)
【Fターム(参考)】