説明

コード読取装置、コード読取方法およびコード読取プログラム

【課題】コードの誤検出を低減し、コードをより正確に認識できるコード読取装置を提供する。
【解決手段】コード読取装置1000は、画像取得部10と、位置検出用パターン検出部20と、位置検出用パターン差し替え部30とを含む。画像取得部10は、バーコード500を撮像して得られる画像データを取得する。位置検出用パターン検出部20は、画像取得部10により取得された画像データvdに基づいて、位置検出用パターンの位置および大きさを検出する。そして、位置検出用パターン差し替え部30は、位置検出用パターン検出部20により検出される位置検出用パターンの位置および大きさに基づいて、画像データvd中の位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、位置検出用パターンを含むコードを読み取るコード読取装置、コード読取方法およびコード読取プログラムに関する。
【背景技術】
【0002】
近年、バーコードは広く世の中で活用されている。その中でも2次元バーコードは、特に情報量が多いため、幅広く利用されている。
【0003】
2次元バーコードの活用例として、例えば、基板などの製品情報(例えば、製品の種類、シリアルナンバー)を2次元バーコードに変換して、当該2次元バーコードを基板などの製品に取り付けられることが行われている。そして、製品の撮像画像の中から2次元バーコードを認識できれば、当該製品の各種情報を取得できる。
【0004】
なお、参考技術として、例えば、特許文献1〜3には、QRコード(登録商標)などの2次元バーコードを読み取るための技術が開示されている。また、特許文献4には、画像データ中の領域内の画素の濃度を2値化する技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−54529号公報
【特許文献2】特開2004−70900号公報
【特許文献3】特開2007−213359号公報
【特許文献4】特開平10−285399号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、2次元バーコードなどのコードを撮像する環境によっては、コードが撮像画像の中で必ずしも鮮明に写っているとは限らない。また、例えば、コードが基板などの製品にレーザにより刻印されている場合、コードを照射する照明によっては、製品とバーコードとの間のコントラストが小さく、コードを認識できないことがある。
【0007】
本発明は、このような事情を鑑みてなされたものであり、コードの誤検出を低減し、コードを正確に認識することができる技術を提供する。
【課題を解決するための手段】
【0008】
本発明のコード読取装置は、位置検出用パターンを含むコードを読み取るコード読取装置であって、前記コードを撮像して得られる画像データを取得する画像取得部と、前記画像取得部により取得された前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出する位置検出用パターン検出部と、前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える位置検出用パターン差し替え部とを備えている。
【0009】
また、本発明のコード読取方法は、位置検出用パターンを含むコードを読み取るコード読取方法であって、前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップを含んでいる。
【発明の効果】
【0010】
本発明にかかる技術によれば、コードの誤検出を低減し、コードを正確に認識することができる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施の形態にかかるコード読取装置および周辺装置の構成を示す図である。
【図2】QRコードの具体例を示す図である。
【図3】位置検出用パターンの構成を示す図である。
【図4】位置検出用パターンのテンプレート画像を示す図である。
【図5】画像データ中のバーコードの領域を検出する方法を説明するための図である。
【図6】バーコードの復号処理を説明するための図である。
【図7】本発明の第1の実施の形態にかかるコード読取装置の動作フローを示す図である。
【図8】画像データのバーコードの領域に含まれる画素の濃度分布を示すヒストグラムの一例を示す図である。
【図9】2値化を実行する前後のバーコードの画像の一例を示す図である。
【図10】位置検出用パターンを基準パターンに差し替える前後のバーコードの画像の一例を示す図である。
【図11】本発明の第1の実施の形態にかかるコード読取装置の動作フローの変形例のフローを示す図である。
【図12】本発明の第2の実施の形態にかかるコード読取装置および周辺装置を示す図である。
【図13】本発明の第2の実施の形態にかかるコード読取装置の動作フローを示す図である。
【発明を実施するための形態】
【0012】
<第1の実施の形態>
図1は、本発明の第1の実施の形態にかかるコード読取装置および周辺装置の構成を示す。図1に示されるように、コード読取装置1000には、カメラ200および表示装置300が接続されている。図1では、コード読取装置1000が基板600の上に取り付けられたバーコード500を読み取る場合を例示している。また、バーコード500には、照明装置400により光が照射されている。
【0013】
コード読取装置1000は、位置検出用パターンを含むコード(例えば、QRコードなどの2次元バーコード)を読み取る。カメラ200は、コードを撮像して画像データvdを生成し、当該画像データvdをコード読取装置1000へ出力する。なお、コード読取装置1000の各構成の説明は、表示装置300、照明装置400および基板600
表示装置300は、コード読取装置1000から出力されるデータを表示する。表示装置300の例として、例えば液晶表示装置や、有機EL表示装置などが挙げられる。照明装置400には、例えばLED(Light Emitting Diode)やハロゲンランプなどが用いられる。
【0014】
バーコード500は、少なくとも位置検出用パターンを含むコードである。本実施の形態では、2次元バーコードの一例であるQRコードとする。ただし、バーコード500は、少なくとも位置検出用パターンを含むコードであればよく、QRコードに限定されない。また、バーコード500は、1次元バーコードであっても、2次元バーコードであってもよい。
【0015】
また、バーコード500は、基板600上にレーザなどにより刻印されているものとする。ただし、バーコード500は刻印により形成されることに限定されない。すなわち、例えば、バーコード500を紙に印刷して、この紙を基板600上に貼り付けてもよい。また、バーコード500の取り付けの対象は、基板600以外であってもよい。
【0016】
ここで、バーコード500の具体例としてQRコードについて説明する。図2は、QRコードの具体例を示す。図2(a)はQRコードの一例を示す。図2(b)はQRコードの一部のパターンを抜き出した図である。
【0017】
図2(a)に示されるように、バーコード500は、例えばQRコードである。QRコードは、縦横に複数の情報を有する2次元バーコードである。QRコードは、1次元バーコードと比較して、記録できる情報量は多く、数字だけでなく、英字や漢字などの多言語の情報も格納できる。QRコードは、日本工業規格(JIS X 0510)やISO規格(ISO/IEC 18004)に登録されている。
【0018】
図2(b)に示されるように、バーコード500は、位置検出用パターン510、タイミングパターン520およびデータセル530を含んで構成されている。
【0019】
位置検出用パターン510は、パターン500の3つの隅(図2(b)では、左上、左下および右上)に配置されている。3つの位置検出用パターン510の位置や大きさを検出することにより、基板600に対するパターン500の位置および回転などを知ることができる。
【0020】
図3は、位置検出用パターン510の構成を示す。図3(a)は位置検出用パターン510の拡大図である。図3(b)は位置検出用パターン510のA線、B線およびC線に沿って走査して得られたバイナリパターンを示す。
【0021】
図3(a)に示されるように、位置検出用パターン510は、中心に設けられた黒色の四角形511と、この黒色の四角形を囲む白色の正方形の枠512と、この白色の四角形の枠をさらに囲む黒色の四角形の枠513により構成されている。図3(a)に示される中央の黒色の四角形511のうち、互いに対向する辺を交差する線のすべては、四角形および四角形の枠により5つのセクションに切り分けられる。そして、これら5つのセクションの各比率は、1:1:3:1:1となる。図3(a)に、中央の黒色の四角形511のうち、互いに対向する辺に交差する典型的なA線、B線およびC線を示す。これらA線、B線およびC線に沿って位置決めシンボルを走査することにより、図3(b)に示される波形が得られる。図3(b)に示されるように、A線、B線およびC線のいずれにおいても、前記5つのセクションの各比率は、1:1:3:1:1となる。
【0022】
図2(b)に戻って、タイミングパターン520は、3つの位置検出用パターン510の間をそれぞれ結ぶ直線状のパターンである。タイミングパターン520では、明モジュールと暗モジュールとが1モジュールごとに交互に配列されている。このタイミングパターン520を読み取ることにより、QRコードの大きさ(具体的にはQRコードの型番)を識別することができる。
【0023】
データセル530は、データを書き込むための領域である。このデータセル530には、基板500などの製品情報(例えば、製品の種類、シリアルナンバー)など、文字、記号の組合せで構成された具体的な情報が書き込まれる。データセル530は、位置検出用パターン510やタイミングパターン520などの機能的なパターン以外の領域に形成される。
【0024】
図1に戻って、コード読取装置1000は、画像取得部10と、位置検出用パターン検出20と、位置検出用パターン差し替え部30と、基準パターン格納部40と、2値化閾値設定部50と、2値化実行部60と、コード領域検出部70と、復号部80と、出力部90と、制御部110とを含んで構成されている。
【0025】
画像取得部10は、カメラ200により入力される画像データvdを取得する。位置検出用パターン検出部30は、画像取得部10により取得された画像データvdに基づいて、バーコード500の位置検出用パターン510の位置および大きさを検出する。
【0026】
位置検出用パターン510の検出方法としては、例えば、図4に示されるような位置検出用パターンのテンプレート画像510aを用いる方法などがある。この方法では、まず、テンプレート画像510aを準備して、画像データに対してテンプレートマッチングなどを行い、位置検出用パターンを検出する。そして、バーコード500内の位置検出用パターン510とテンプレート画像510aとの間の相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン510を検出する。
【0027】
また、画像データvd中のバーコード500内の位置検出用パターン510の大きさがテンプレート画像510aの大きさに対して変化する場合を考慮して、テンプレート画像510aを一定の倍率の範囲内で変更させながら、前記相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン510を検出することもできる。逆に、画像データvdを一定の倍率の範囲内で変更させながら、前記相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン510を検出することもできる。
【0028】
位置検出用パターン510の検出方法のその他の方法として、位置検出用パターン510がバーコード500中の3箇所の隅に配置されていることを利用して、位置検出用パターンが3つの隅に配置された四角形の画像をパターンマッチングのテンプレート画像に利用することができる。なお、バーコード500内における位置検出用パターン510の座標情報は、位置検出用パターン510の中心座標を利用してもよいし、位置検出用パターン510の4つの角のいずれかの座標を利用してもよい。また、画像データvdの中から、例えば、図2(a)に示したX方向およびY方向に走査した結果、X方向およびY方向の双方において、高い濃度と低い濃度の比率が1:1:3:1:1に近くなる座標を検出して、この座標を位置検出用パターン510の中心座標に設定してもよい。さらに、位置検出用パターン510は、その中央に黒色の四角形511が配置されているので(図3(a)を参照)、この黒色の四角形511を検出して、当該黒色の四角形511の中央を位置検出用パターン510の中心座標に設定してもよい。
【0029】
位置検出用パターン差し替え部30は、位置検出用パターン検出部20により検出される位置検出用パターン510の位置および大きさに基づいて、画像データvd中の位置検出用パターン510を、基準パターンに差し替える。ここで、前記基準パターンとは、一定のコントラスト比(例えば、位置検出用パターン510のうち、最も明るい部分<白モジュール>と、最も暗い部分<黒モジュール>の輝度の比)以上の位置検出用パターンである。基準パターンはコントラスト比が高いので、当該パターン中の白モジュールと黒モジュールとの間の明暗がはっきりする。したがって、コード読取装置1000は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準に復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。なお、この基準パターンは、基準パターン格納部40に予め格納されている。
【0030】
2値化閾値設定部50は、後述の2値化実行部60が実行する2値化に用いる閾値を設定する。この閾値は、画像データ中の各画素を黒画素または白画素に変換するための濃度基準値である。
【0031】
2値化実行部60は、画像データvdのうち、少なくともバーコード500の領域に対して、2値化閾値設定部50により設定される閾値に基づいて、当該画像データvd中の各画素の濃度の2値化を実行する。
【0032】
コード領域検出部70は、位置検出用パターン検出部10により検出される位置検出用パターン510の位置および大きさに基づいて、画像データvd中のバーコード500の領域を検出する。図5は、画像データ中のバーコードの領域を検出する方法を説明するための図である。図5に示されるように、コード領域検出部70は、位置検出用パターン510の中心座標と、位置検出用パターン510の対角線の長さとの関係から、画像データ中のバーコード500の領域を検出する。すなわち、まず、コード領域検出部70は、位置検出用パターン検出部10の検出結果に基づいて、画像データvd中のバーコード500に含まれる3つの位置検出用パターン510のうち、左下と右下の位置検出用パターン510の各中心座標P1、P2を特定する。次に、コード領域検出部70は、位置検出用パターン検出部10の検出結果に基づいて、各位置検出用パターン510の対角線の長さQ1、Q2を算出する。次に、コード領域検出部70は、位置検出用パターン検出部10の検出結果に基づいて、座標P1、P2から、バーコード500の中心から離れる方向であるR1、R2の方向に、Q1、Q2の半分の長さ分だけ移動した座標S1、S2を算出する。なお、座標S1は、左下の位置検出用パターン510の左下隅の点であり、かつ、バーコード500の左下隅の点である。座標S2は、右上の位置検出用パターン510の右上隅の点であり、かつ、バーコード500の右上隅の点である。最後に、コード領域検出部70は、S1、S2を対角線の両端とする正方形の領域をバーコード500の領域として検出する。
【0033】
復号部80は、画像データvd中のバーコード500を復号する。具体的には、復号部80は、画像データvd中のバーコード500のうち、データセル530の白画素および黒画素を「1」、「0」のバイナリ変換を行い、バイナリ変換後の文字列を復号する。このとき、復号部80は、位置検出用パターン差し替え部30により差し替えられた基準パターンの位置および大きさを検出し、この検出結果に基づいてバーコード500の領域を認識した後に、バーコード500を復号する。
【0034】
図6は、バーコードの復号処理を説明するための図である。図6(a)は、バーコード500中の冗長コード書き込み領域Vと情報コード書き込み領域Wの一例を示す。図6(b)は、図6(a)の冗長コード書き込み領域Vおよび情報コード書き込み領域Wに対してバイナリ変換を行った結果を示す。
【0035】
図6(a)に示されるように、バーコード500のデータセル530内には、冗長コードが書き込まれた領域である冗長コード書き込み領域Vと、情報コードが書き込まれた領域である情報コード書き込み領域Wが存在する。復号部80が、領域V、W内の各画素に対してバイナリ変換を行うと、図6(b)に示されるように、冗長コードV1および情報コードW1からなるバイナリ変換データが生成される。そして、復号部80がバイナリ変換データを復号すると、例えば、基板600などの製品情報(例えば、製品の種類、シリアルナンバー)を文字列で得ることができる。このように、バイナリ変換データに冗長コードを含ませたことにより、バイナリ変換データ中にビット(bit)誤りがあったとしても、復号部80はバーコード500を正しく復号することができる。
【0036】
出力部90は、復号部80により復号されたバーコード500の情報を出力する。制御部110は、コード読取装置1000全体を制御する。制御部110は、コード読取装置1000内の各部10〜90との間で信号のやりとりを行い、各部10〜90に対して処理の実行などの指示を行う。
【0037】
次に、本発明の第1の実施の形態にかかるコード読取装置1000の動作について説明する。図7は、コード読取装置1000の動作フローを示す。
【0038】
図7に示されるように、まず、画像取得部10が画像データvdを取得する(S701)。ここでは、画像データvdは、カメラ200により撮像して得られたデータとする。カメラ200による撮像時には、例えば、図1に示されるように、照明装置400の光を斜め方向からバーコード500に照射する。特に、バーコード500が基板600上に刻印されている場合、真上からでなく、斜め方向からバーコード500に光を照らすことにより、基板600からの反射光が散乱するので、画像データvdのコントラスト比を効果的に高めることができる。
【0039】
次に、位置検出用パターン検出部20が、画像データvdに基づいて、バーコード500の位置検出用パターン510の位置および大きさを検出する(S702)。そして、コード領域検出部70が、位置検出用パターン検出部10により検出される位置検出用パターン510の位置および大きさに基づいて、画像データvd中のバーコード500の領域を検出する(S703)。
【0040】
次に、2値化閾値設定部50が、2値化実行部60が実行する2値化に用いる閾値を設定する(S704)。具体的には、2値化閾値設定部50は、まず、画像データvdのバーコード500の領域に含まれる画素の濃度分布を示すヒストグラムを生成する。
【0041】
図8は、画像データvdのバーコード500の領域に含まれる画素の濃度分布を示すヒストグラムの一例を示す。図8では、画素の濃淡値(諧調)を0〜255の1バイトの数値で表現している。図8に示される例では、バーコード500の領域内には、レベル約100およびレベル約200の濃淡値の画素がもっとも多い。なお、画像データvdがカラーの場合には、R(Red)、G(Green)およびB(Blue)の各画素値の平均値を濃淡値に用いてもよい。2値化閾値設定部50は、生成したヒストグラムに基づいて、2値化閾値を設定する。なお、2値化閾値は、前述の通り、バーコード500の領域内の各画素を、黒画素または白画素に変換するための濃度基準値である。例えば、2値化閾値設定部50は、生成したヒストグラムに基づいて、バーコード500の領域における白画素および黒画素の比率がおよそ50:50になるように、2値化閾値を設定する。このように、2値化閾値を設定する際に、バーコード500の領域における白画素および黒画素の比率がおよそ50:50となるようにするのは、一般的なバーコード500内の白領域と黒領域の比率は50±10%になるように設定されていることによる(日本工業規格JIS X0510を参照)。図8で例示した場合には、2値化閾値は濃淡値約150となる。
【0042】
ここで、S703の処理で、複数のバーコード500が画像データvd中に含まれる場合を想定する。また、ここでは、各バーコード500は3つの位置検出用パターン510を含むものとする。この場合、コード領域検出部70は、図8で例示したヒストグラムを用いて、画像データvd中のバーコード500の領域を検出することができる。
【0043】
すなわち、コード領域検出部70は、まず、S702で検出した複数の位置検出用パターン510の座標情報から各座標間の距離を算出する。そして、コード領域検出部70は、任意の3つの座標間の距離の和が最小になるとともに、これらの座標の配置が直角を形成する場合がないかを検出する。この条件を満たす場合に、さらに、コード領域検出部70は、当該3つの座標に囲まれた領域内の濃淡値のヒストグラムを作成し、ヒストグラム中に2つのピークが存在するか否かを判断する。そして、コード領域検出部70は、ヒストグラム中に2つのピークが存在する場合に、当該3つの座標が1つの特定のバーコード500の位置検出パターンの位置に対応すると検出する。以降の処理では、コード領域検出部70は、図5を用いて説明した通り、バーコード500の領域を検出する。このように、複数のバーコード500が画像データvd中に含まれる場合であっても、コード領域検出部70は、図8で例示したヒストグラムを用いることで、画像データvd中のバーコード500の領域を検出することができる。
【0044】
ここで、バーコード500の領域検出において、ヒストグラム中に2つのピークが存在するか否かを判断基準の1つとしている。この判断基準の設定では、一般的なバーコード500では前述したように白領域と黒領域の比率は50±10%になるように設定されている点を利用している。すなわち、任意の3つの座標を囲う領域がバーコード500の内部であれば、ヒストグラム内に2つのピークが必ず存在する。一方、任意の3つの座標を囲う領域がバーコード500の外部であれば、ヒストグラム内にこのような2つのピークは表れない。このような特性を活かせば、複数のバーコード500が画像データvd中に含まれる場合であっても、コード領域検出部70はバーコード500の領域を決定できる。
【0045】
図7に戻って、次に2値化実行部60が、2値化実行部60は、画像データvdのうち、少なくともバーコード500の領域に対して、2値化閾値設定部50により設定される2値化閾値に基づいて、当該画像データvd中の各画素の濃度の2値化を実行する(S705)。すなわち、図8の例では、2値化実行部60は、2値化閾値である濃淡値150に基づいて、2値化を実行する。より具体的には、2値化実行部60は、濃淡値150未満の画素の全てを濃淡値0に変換し、濃淡値150以上の画素の全てを濃淡値255に変換する。この結果、バーコード500の領域内の各画素の濃淡値が、濃淡値0か濃淡値255のみとなり、2値化前の画像と比較して、黒モジュールと白モジュールの間のコントラスト比を高くすることができる。
【0046】
図9は、2値化を実行する前後のバーコード500の画像の一例を示す。図9(a)は、2値化前のバーコード500の画像である。図9(b)は、2値化後のバーコード500の画像である。図9(a)および図9(b)に示されるように、明らかに、2値化後の画像の方が、2値化前の画像よりも、黒モジュールと白モジュールの間のコントラスト比が高くなっている。
【0047】
次に、位置検出用パターン差し替え部30が、画像データvd中の位置検出用パターン510を、基準パターンに差し替える(S706)。具体的には、位置検出用パターン差し替え部30は、位置検出用パターン検出部により検出された位置検出パターン510の位置および大きさに基づいて、位置検出パターン510を、基準パターン格納部40に格納されている基準パターンに差し替える。このとき、位置検出用パターン差し替え部30は、前記位置検出用パターン検出部により検出される前記位置検出用パターンの大きさと、前記基準パターンの大きさとが、ほぼ同一になるように、位置検出用パターンまたは基準パターンを変形してから、前述の差し替え処理を行う。
【0048】
図10は、位置検出用パターンを基準パターンに差し替える前後のバーコード500の画像の一例を示す。図10(a)は、基準パターンに差し替える前のバーコード500の画像である。図9(b)は、基準パターンに差し替えた後のバーコード500の画像である。図10(a)および図10(b)に示されるように、明らかに、差し替え後の画像の方が、差し替え前の画像よりも、特に位置検出パターンの領域において、黒モジュールと白モジュールの間のコントラスト比が高くなっている。
【0049】
図7に戻って、復号部80は、画像データvd中のバーコード500を復号する(S707)。そして、出力部90が、復号部80により復号されたバーコード500の情報を表示装置300へ出力する(S708)。表示装置300は、出力部90により出力されたバーコード500の復号情報を表示する。
【0050】
以上の通り、本発明の第1の実施の形態にかかるコード読取装置およびコード読取方法について説明した。
【0051】
本発明の第1の実施の形態にかかるコード読取装置1000は、位置検出用パターン510を含むコードを読み取るコード読取装置である。また、コード読取装置1000は、画像取得部10と、位置検出用パターン検出部20と、位置検出用パターン差し替え部30とを含んで構成されている。画像取得部10は、バーコード500を撮像して得られる画像データを取得する。位置検出用パターン検出部20は、画像取得部10により取得された画像データvdに基づいて、位置検出用パターン510の位置および大きさを検出する。そして、位置検出用パターン差し替え部30は、位置検出用パターン検出部20により検出される位置検出用パターン510の位置および大きさに基づいて、画像データvd中の位置検出用パターン510を、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える。
【0052】
以上のように、位置検出用パターン差し替え部30が、位置検出用パターン510の位置および大きさに基づいて、画像データvd中の位置検出用パターン510を、基準パターンに差し替える。基準パターンは一定のコントラスト比以上の位置検出用パターンであるので、白モジュールと黒モジュールとの間の明暗がはっきりする。このように、コード読取装置1000は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準にバーコード500を復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。
【0053】
また、本発明の第1の実施の形態にかかるコード読取装置1000は、さらに2値化実行部60を備えている。この2値化実行部60は、画像取得部10により取得された前記画像データのうち、少なくともバーコード500の領域に対して、当該画像データ中の各画素の濃度の2値化を実行する。
【0054】
これにより、2値化前の画像と比較して、バーコード500の領域内の各画素の濃淡をはっきりさせることができ、黒モジュールと白モジュールの間のコントラスト比を高くすることができる。この結果、コード読取装置1000が、黒モジュールと白モジュールの間のコントラスト比が高い画像データを用いて、バーコード500の復号をすることができる。
【0055】
また、本発明の第1の実施の形態にかかるコード読取装置1000は、さらに2値化閾値設定部50を備えてもよい。この場合、2値化閾値設定部50は、画像取得部10により取得された画像データのバーコード500の領域に含まれる画素の濃度分布を示すヒストグラムに基づいて、黒画素または白画素に変換するための濃度基準値である2値化閾値を設定する。また、2値化実行部60は、2値化閾値設定部50により設定される2値化閾値に基づいて、画像データ中の各画素の濃度の2値化を実行する。
【0056】
このように、バーコード500の領域に含まれる画素の濃度分布についてヒストグラムを生成し、このヒストグラムを用いて2値化閾値を設定するので、読み取り対象であるバーコード500毎に適正な閾値を設定することができる。また、このような閾値を用いて、2値化実行部60が前記2値化を実行するので、画像データ中のバーコード500の間のコントラスト比をより適正に高くすることができる。この結果、コード読取装置1000が、コントラスト比が高い画像データを用いて、バーコード500の復号をすることができる。
【0057】
また、本発明の第1の実施の形態にかかるデータ読取装置1000において、2値化閾値設定部50は、バーコード500の領域における白画素および黒画素の比率が所定の範囲に含まれるように、2値化閾値を設定する。
【0058】
これにより、読み取り対象であるバーコード500毎に、より適正な閾値を所定の範囲内で設定することができる。特に、一般的なバーコード内の白領域と黒領域の比率は50±10%になるように設定されている(日本工業規格JIS X0510を参照)。したがって、この場合には、例えば、バーコード500内の白領域と黒領域の比率が50±10%になるように、2値化閾値を設定すれば、より適正な閾値を設定することができる。
【0059】
また、本発明の第1の実施の形態にかかるデータ読取装置1000において、位置検出用パターン差替部30は、位置検出用パターン検出部20により検出される位置検出用パターン510の大きさと、基準パターンの大きさとが、ほぼ同一になるように、画像データvd中の位置検出用パターン510を基準パターンに差し替える。
【0060】
これにより、差し替え前の位置検出用パターン510と、差し替え後の基準パターンの大きさとが、ほぼ同一になる。また、位置検出用パターン510の大きさとほぼ同じ大きさで、基準パターンを配置することができる。そして、このように配置された基準パターンを基準にバーコード500を復号することができるので、コードの誤検出をさらに低減し、コードをより正確に認識することができる。
【0061】
また、本発明の実施の形態にかかるコード読取装置1000は、コード領域検出部70をさらに備えてもよい。このコード領域検出部70は、位置検出用パターン検出部20により検出される位置検出用パターン510の位置および大きさに基づいて、バーコード500の領域を検出する。
【0062】
これにより、バーコード500の領域内と領域外とを切り分けて、2値化処理などを実行できる。
【0063】
次に、本発明の第1の実施の形態にかかるコード読取装置の動作フローの変形例について、説明する。図11は、本発明の第1の実施の形態にかかるコード読取装置の動作フローの変形例のフローを示す。
【0064】
図7と図11とを対比すると、S704〜S706とS1104〜S1106とで相違する。すなわち、本発明の第1の実施の形態にかかるコード読取装置の動作フローでは、図7に示されるように、バーコード500の領域を決定した後(S703)、2値化閾値を設定し(S704)、画像データ中の各画素の濃度を2値化していた後に(S705)、位置検出用パターを基準パターンに差し替えていた(S706)。これに対して、本発明の第1の実施の形態にかかるコード読取装置の動作フローの変形例では、図11に示されるように、バーコード500の領域を決定した後(S1103)、まず、位置検出用パターンを基準パターンに差し替えてから(S1104)、2値化閾値を設定し(S1105)、画像データ中の各画素の濃度を2値化する(S1106)。
【0065】
また、図11のS1101〜S1103、S1107およびS1108の各処理は、図7のS701〜S703、S707およびS708の各処理に対応する。また、図11のS1104、S1105およびS1106の各処理は、図7のS706、S704およびS705にそれぞれ対応する。図11に示すS1101〜S1108の具体的な処理内容は、図7中で対応する各ステップの処理内容と同一である。このため、S1101〜S1108の各処理についての詳細な説明は省略する。
【0066】
このように、位置検出用パターンを基準パターンに差し替えてから、2値化閾値を設定し、画像データ中の各画素の濃度を2値化しても、前述した内容と同様の効果を奏する。
【0067】
<第2の実施の形態>
図12は、本発明の第2の実施の形態にかかるコード読取装置および周辺装置の構成を示す。図12に示されるように、コード読取装置1000aには、カメラ200および表示装置300が接続されている。図11は、図1と同様に、コード読取装置1000aが、基板600の上に取り付けられたバーコード500を読み取る場合を例示している。また、バーコード500には、照明装置400により光が照射されている。
【0068】
コード読取装置1000aは、画像取得部10と、位置検出用パターン検出20と、位置検出用パターン差し替え部30と、基準パターン格納部40と、コード領域検出部70と、復号部80と、出力部90と、制御部110とを含んで構成されている。図11では、図1に示される構成と同一の機能を有するものに対しては、図1と同一の符号を付している。
【0069】
次に、図1と図12とを対比する。第1の実施の形態にかかるコード読取装置1000は、図1に示されるように、2値化閾値設定部50と、2値化実行部60とを含んでいる。これに対して、第2の実施の形態にかかるコード読取装置1000aは、図12に示されるように、これらを含んでいない点で、両者は相違する。
【0070】
図12に示す各構成の機能の説明については、図1に示す同一符号を付す各構成の説明と同様となるので、ここでの具体的な説明は省略する。
【0071】
次に、本発明の第2の実施の形態にかかるコード読取装置1000aの動作フローについて説明する。図13は、コード読取装置1000aの動作フローを示す。
【0072】
図13に示されるように、まず、画像取得部10が画像データvdを取得する(S1301)。次に、位置検出用パターン検出部20が、画像データvdに基づいて、バーコード500の位置検出用パターン510の位置および大きさを検出する(S1302)。そして、コード領域検出部70が、位置検出用パターン検出部10により検出される位置検出用パターン510の位置および大きさに基づいて、画像データvd中のバーコード500の領域を検出する(S1303)。
【0073】
次に、位置検出用パターン差し替え部30が、画像データvd中の位置検出用パターン510を、基準パターンに差し替える(S1304)。また、復号部80は、画像データvd中のバーコード500を復号する(S1305)。そして、出力部90が、復号部80により復号されたバーコード500の情報を表示装置300へ出力する(S1306)。表示装置300は、出力部90により出力されたバーコード500の復号情報を表示する。
【0074】
なお、図13のS1301〜S1303、S1304〜S1306の各処理は、図7のS701〜S703、S706〜S708の各処理に対応する。図13に示すS1301〜S1306の具体的な処理内容は、図7中で対応する各ステップの処理内容と同一である。このため、S1301〜S1306の各処理について、詳細な説明は省略する。
【0075】
以上の通り、本発明の第2の実施の形態にかかるコード読取装置およびコード読取方法について説明した。
【0076】
このように、本発明の第2の実施の形態にかかるコード読取装置1000aでは、位置検出用パターン差し替え部30が、位置検出用パターン510の位置および大きさに基づいて、画像データvd中の位置検出用パターン510を、基準パターンに差し替える。基準パターンは一定のコントラスト比以上の位置検出用パターンであるので、白モジュールと黒モジュールとの間の明暗がはっきりする。このように、コード読取装置1000は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準にバーコード500を復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。
【0077】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述各実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【0078】
前記実施の形態の説明では、位置検出用パターン検出部20は、テンプレート画像510aを用いて、位置検出用パターン510を検出すると説明した。しかしながら、位置検出用パターン検出部20は、テンプレート画像510aに代えて、基準パターンを用いて、位置検出用パターン510を検出してもよい。
【0079】
また、前記実施の形態の説明では、基本的には、画像データvd中にはバーコード500が1つ存在することを前提に説明した。しかしながら、本発明では、複数のバーコード500が画像データvd中に存在してもよい。特に、複数のバーコード500が基板600以上に刻印されており、これら複数のバーコード500が画像データvdに含まれる場合に、本発明はより効果的に活用できる。複数のバーコード500が画像データに含まれる場合、これまでは、画像データ中の全てのバーコード500のコントラストを高く維持するために、照明装置400を基板600から離して設置し、各バーコード500への照明角度の近似値を最適な照明角度と同一になるように設定して、カメラ200によりバーコード500を撮像していた。ところが、この方法を採用するには、照明装置400を設置するためのスペースを十分に確保する必要があった。したがって、生産ライン上にコード読取装置を設置しようとする場合、照明装置400のスペースが確保できず、画像データ中の全てのバーコード500のコントラストを高くすることができなかった。これに対して、本発明では、画像データvdの中のバーコード500(位置検出パターン510を含む)に対して、黒モジュールと白モジュールの間のコントラスト比を高める画像処理を行っているので、照明装置400の設置環境に関係なく、コントラスト比が高いバーコード500の画像データを得ることができる。本発明によれば、コントラスト比が高いバーコード500の画像データを用いてバーコード500を復号するので、バーコード500の誤検出を低減し、バーコード500を正確に認識することができる。
【符号の説明】
【0080】
10 画像取得部
20 位置検出用パターン検出部
30 位置検出用パターン差し替え部
40 基準パターン格納部
50 2値化閾値設定部
60 2値化実行部
70 コード領域検出部
80 復号部
90 出力部
110 制御部
200 カメラ
300 表示装置
400 照明装置
500 バーコード
510 位置検出用パターン
520 タイミングパターン
530 データセル
600 基板

【特許請求の範囲】
【請求項1】
位置検出用パターンを含むコードを読み取るコード読取装置であって、
前記コードを撮像して得られる画像データを取得する画像取得部と、
前記画像取得部により取得された前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出する位置検出用パターン検出部と、
前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える位置検出用パターン差し替え部とを備えたコード読取装置。
【請求項2】
前記画像取得部により取得された前記画像データのうち、少なくとも前記コードの領域に対して、当該画像データ中の各画素の濃度の2値化を実行する2値化実行部を備えた請求項1に記載のコード読取装置。
【請求項3】
前記画像取得部により取得された前記画像データの前記コードの領域に含まれる画素の濃度分布を示すヒストグラムに基づいて、黒画素または白画素に変換するための濃度基準値である2値化閾値を設定する2値化閾値設定部を備え、
前記2値化実行部は、前記2値化閾値設定部により設定される前記2値化閾値に基づいて、前記画像データ中の各画素の濃度の2値化を実行する請求項2に記載のコード読取装置。
【請求項4】
前記2値化閾値設定部は、前記コードの領域における前記白画素および前記黒画素の比率が所定の範囲に含まれるように、前記2値化閾値を設定する請求項3に記載のコード読取装置。
【請求項5】
前記位置検出用パターン差替部は、前記位置検出用パターン検出部により検出される前記位置検出用パターンの大きさと、前記基準パターンの大きさとが、ほぼ同一になるように、前記画像データ中の前記位置検出用パターンを、前記基準パターンに差し替える請求項1〜4のいずれかに記載のコード読取装置。
【請求項6】
前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記コードの領域を検出するコード領域検出部を備えた請求項2〜5のいずれかに記載のコード読取装置。
【請求項7】
位置検出用パターンを含むコードを読み取るコード読取方法であって、
前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、
前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップを含むコード読取方法。
【請求項8】
位置検出用パターンを含むコードを読み取る処理をコンピュータに実行させるためのコード読取プログラムであって、
前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、
前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップとをコンピュータに実行させるコード読取プログラム。
【請求項9】
請求項8に記載されたコード読取プログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−194831(P2012−194831A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−58917(P2011−58917)
【出願日】平成23年3月17日(2011.3.17)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】