(57)【特許請求の範囲】
【請求項１】
位置検出用パターンを含むコードを読み取るコード読取装置であって、
前記コードを撮像して得られる画像データを取得する画像取得部と、
前記画像取得部により取得された前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出する位置検出用パターン検出部と、
前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える位置検出用パターン差し替え部とを備えたコード読取装置。
【請求項２】
前記画像取得部により取得された前記画像データのうち、少なくとも前記コードの領域に対して、当該画像データ中の各画素の濃度の２値化を実行する２値化実行部を備えた請求項１に記載のコード読取装置。
【請求項３】
前記画像取得部により取得された前記画像データの前記コードの領域に含まれる画素の濃度分布を示すヒストグラムに基づいて、黒画素または白画素に変換するための濃度基準値である２値化閾値を設定する２値化閾値設定部を備え、
前記２値化実行部は、前記２値化閾値設定部により設定される前記２値化閾値に基づいて、前記画像データ中の各画素の濃度の２値化を実行する請求項２に記載のコード読取装置。
【請求項４】
前記２値化閾値設定部は、前記コードの領域における前記白画素および前記黒画素の比率が所定の範囲に含まれるように、前記２値化閾値を設定する請求項３に記載のコード読取装置。
【請求項５】
前記位置検出用パターン差し替え部は、前記位置検出用パターン検出部により検出される前記位置検出用パターンの大きさと、前記基準パターンの大きさとが、ほぼ同一になるように、前記画像データ中の前記位置検出用パターンを、前記基準パターンに差し替える請求項１〜４のいずれかに記載のコード読取装置。
【請求項６】
前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記コードの領域を検出するコード領域検出部を備えた請求項２〜５のいずれかに記載のコード読取装置。
【請求項７】
位置検出用パターンを含むコードを読み取るコード読取方法であって、
前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、
前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップを含むコード読取方法。
【請求項８】
位置検出用パターンを含むコードを読み取る処理をコンピュータに実行させるためのコード読取プログラムであって、
前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、
前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップとをコンピュータに実行させるコード読取プログラム。
【請求項９】
請求項８に記載されたコード読取プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、位置検出用パターンを含むコードを読み取るコード読取装置、コード読取方法およびコード読取プログラムに関する。
【背景技術】
【０００２】
近年、バーコードは広く世の中で活用されている。その中でも２次元バーコードは、特に情報量が多いため、幅広く利用されている。
【０００３】
２次元バーコードの活用例として、例えば、基板などの製品情報（例えば、製品の種類、シリアルナンバー）を２次元バーコードに変換して、当該２次元バーコードを基板などの製品に取り付けられることが行われている。そして、製品の撮像画像の中から２次元バーコードを認識できれば、当該製品の各種情報を取得できる。
【０００４】
なお、参考技術として、例えば、特許文献１〜３には、ＱＲコード（登録商標）などの２次元バーコードを読み取るための技術が開示されている。また、特許文献４には、画像データ中の領域内の画素の濃度を２値化する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００4−５４５２９号公報
【特許文献２】特開２００４−７０９００号公報
【特許文献３】特開２００７−２１３３５９号公報
【特許文献４】特開平１０−２８５３９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、２次元バーコードなどのコードを撮像する環境によっては、コードが撮像画像の中で必ずしも鮮明に写っているとは限らない。また、例えば、コードが基板などの製品にレーザにより刻印されている場合、コードを照射する照明によっては、製品とバーコードとの間のコントラストが小さく、コードを認識できないことがある。
【０００７】
本発明は、このような事情を鑑みてなされたものであり、コードの誤検出を低減し、コードを正確に認識することができる技術を提供する。
【課題を解決するための手段】
【０００８】
本発明のコード読取装置は、位置検出用パターンを含むコードを読み取るコード読取装置であって、前記コードを撮像して得られる画像データを取得する画像取得部と、前記画像取得部により取得された前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出する位置検出用パターン検出部と、前記位置検出用パターン検出部により検出される前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える位置検出用パターン差し替え部とを備えている。
【０００９】
また、本発明のコード読取方法は、位置検出用パターンを含むコードを読み取るコード読取方法であって、前記コードを撮像して得られる画像データを生成するステップと、
前記画像データに基づいて、前記位置検出用パターンの位置および大きさを検出するステップと、前記位置検出用パターンの位置および大きさに基づいて、前記画像データ中の前記位置検出用パターンを、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替えるステップを含んでいる。
【発明の効果】
【００１０】
本発明にかかる技術によれば、コードの誤検出を低減し、コードを正確に認識することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態にかかるコード読取装置および周辺装置の構成を示す図である。
【図２】ＱＲコードの具体例を示す図である。
【図３】位置検出用パターンの構成を示す図である。
【図４】位置検出用パターンのテンプレート画像を示す図である。
【図５】画像データ中のバーコードの領域を検出する方法を説明するための図である。
【図６】バーコードの復号処理を説明するための図である。
【図７】本発明の第１の実施の形態にかかるコード読取装置の動作フローを示す図である。
【図８】画像データのバーコードの領域に含まれる画素の濃度分布を示すヒストグラムの一例を示す図である。
【図９】２値化を実行する前後のバーコードの画像の一例を示す図である。
【図１０】位置検出用パターンを基準パターンに差し替える前後のバーコードの画像の一例を示す図である。
【図１１】本発明の第１の実施の形態にかかるコード読取装置の動作フローの変形例のフローを示す図である。
【図１２】本発明の第２の実施の形態にかかるコード読取装置および周辺装置を示す図である。
【図１３】本発明の第２の実施の形態にかかるコード読取装置の動作フローを示す図である。
【発明を実施するための形態】
【００１２】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態にかかるコード読取装置および周辺装置の構成を示す。図１に示されるように、コード読取装置１０００には、カメラ２００および表示装置３００が接続されている。図１では、コード読取装置１０００が基板６００の上に取り付けられたバーコード５００を読み取る場合を例示している。また、バーコード５００には、照明装置４００により光が照射されている。
【００１３】
コード読取装置１０００は、位置検出用パターンを含むコード（例えば、ＱＲコードなどの２次元バーコード）を読み取る。カメラ２００は、コードを撮像して画像データｖｄを生成し、当該画像データｖｄをコード読取装置１０００へ出力する。なお、コード読取装置１０００の各構成の説明は、表示装置３００、照明装置４００および基板６００
表示装置３００は、コード読取装置１０００から出力されるデータを表示する。表示装置３００の例として、例えば液晶表示装置や、有機ＥＬ表示装置などが挙げられる。照明装置４００には、例えばＬＥＤ（Light Emitting Diode）やハロゲンランプなどが用いられる。
【００１４】
バーコード５００は、少なくとも位置検出用パターンを含むコードである。本実施の形態では、２次元バーコードの一例であるＱＲコードとする。ただし、バーコード５００は、少なくとも位置検出用パターンを含むコードであればよく、ＱＲコードに限定されない。また、バーコード５００は、１次元バーコードであっても、２次元バーコードであってもよい。
【００１５】
また、バーコード５００は、基板６００上にレーザなどにより刻印されているものとする。ただし、バーコード５００は刻印により形成されることに限定されない。すなわち、例えば、バーコード５００を紙に印刷して、この紙を基板６００上に貼り付けてもよい。また、バーコード５００の取り付けの対象は、基板６００以外であってもよい。
【００１６】
ここで、バーコード５００の具体例としてＱＲコードについて説明する。図２は、ＱＲコードの具体例を示す。図２（ａ）はＱＲコードの一例を示す。図２（ｂ）はＱＲコードの一部のパターンを抜き出した図である。
【００１７】
図２（ａ）に示されるように、バーコード５００は、例えばＱＲコードである。ＱＲコードは、縦横に複数の情報を有する２次元バーコードである。ＱＲコードは、１次元バーコードと比較して、記録できる情報量は多く、数字だけでなく、英字や漢字などの多言語の情報も格納できる。ＱＲコードは、日本工業規格（ＪＩＳ  Ｘ  ０５１０）やＩＳＯ規格（ＩＳＯ／ＩＥＣ  １８００４）に登録されている。
【００１８】
図２（ｂ）に示されるように、バーコード５００は、位置検出用パターン５１０、タイミングパターン５２０およびデータセル５３０を含んで構成されている。
【００１９】
位置検出用パターン５１０は、パターン５００の３つの隅（図２（ｂ）では、左上、左下および右上）に配置されている。３つの位置検出用パターン５１０の位置や大きさを検出することにより、基板６００に対するパターン５００の位置および回転などを知ることができる。
【００２０】
図３は、位置検出用パターン５１０の構成を示す。図３（ａ）は位置検出用パターン５１０の拡大図である。図３（ｂ）は位置検出用パターン５１０のＡ線、Ｂ線およびＣ線に沿って走査して得られたバイナリパターンを示す。
【００２１】
図３（ａ）に示されるように、位置検出用パターン５１０は、中心に設けられた黒色の四角形５１１と、この黒色の四角形を囲む白色の正方形の枠５１２と、この白色の四角形の枠をさらに囲む黒色の四角形の枠５１３により構成されている。図３（ａ）に示される中央の黒色の四角形５１１のうち、互いに対向する辺を交差する線のすべては、四角形および四角形の枠により５つのセクションに切り分けられる。そして、これら５つのセクションの各比率は、１：１：３：１：１となる。図３（ａ）に、中央の黒色の四角形５１１のうち、互いに対向する辺に交差する典型的なＡ線、Ｂ線およびＣ線を示す。これらＡ線、Ｂ線およびＣ線に沿って位置決めシンボルを走査することにより、図３（ｂ）に示される波形が得られる。図３（ｂ）に示されるように、Ａ線、Ｂ線およびＣ線のいずれにおいても、前記５つのセクションの各比率は、１：１：３：１：１となる。
【００２２】
図２（ｂ）に戻って、タイミングパターン５２０は、３つの位置検出用パターン５１０の間をそれぞれ結ぶ直線状のパターンである。タイミングパターン５２０では、明モジュールと暗モジュールとが１モジュールごとに交互に配列されている。このタイミングパターン５２０を読み取ることにより、ＱＲコードの大きさ（具体的にはＱＲコードの型番）を識別することができる。
【００２３】
データセル５３０は、データを書き込むための領域である。このデータセル５３０には、基板５００などの製品情報（例えば、製品の種類、シリアルナンバー）など、文字、記号の組合せで構成された具体的な情報が書き込まれる。データセル５３０は、位置検出用パターン５１０やタイミングパターン５２０などの機能的なパターン以外の領域に形成される。
【００２４】
図１に戻って、コード読取装置１０００は、画像取得部１０と、位置検出用パターン検出２０と、位置検出用パターン差し替え部３０と、基準パターン格納部４０と、２値化閾値設定部５０と、２値化実行部６０と、コード領域検出部７０と、復号部８０と、出力部９０と、制御部１１０とを含んで構成されている。
【００２５】
画像取得部１０は、カメラ２００により入力される画像データｖｄを取得する。位置検出用パターン検出部３０は、画像取得部１０により取得された画像データｖｄに基づいて、バーコード５００の位置検出用パターン５１０の位置および大きさを検出する。
【００２６】
位置検出用パターン５１０の検出方法としては、例えば、図４に示されるような位置検出用パターンのテンプレート画像５１０ａを用いる方法などがある。この方法では、まず、テンプレート画像５１０ａを準備して、画像データに対してテンプレートマッチングなどを行い、位置検出用パターンを検出する。そして、バーコード５００内の位置検出用パターン５１０とテンプレート画像５１０ａとの間の相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン５１０を検出する。
【００２７】
また、画像データｖｄ中のバーコード５００内の位置検出用パターン５１０の大きさがテンプレート画像５１０ａの大きさに対して変化する場合を考慮して、テンプレート画像５１０ａを一定の倍率の範囲内で変更させながら、前記相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン５１０を検出することもできる。逆に、画像データｖｄを一定の倍率の範囲内で変更させながら、前記相関値が閾値以上になる座標情報の集合を求めて、位置検出用パターン５１０を検出することもできる。
【００２８】
位置検出用パターン５１０の検出方法のその他の方法として、位置検出用パターン５１０がバーコード５００中の３箇所の隅に配置されていることを利用して、位置検出用パターンが３つの隅に配置された四角形の画像をパターンマッチングのテンプレート画像に利用することができる。なお、バーコード５００内における位置検出用パターン５１０の座標情報は、位置検出用パターン５１０の中心座標を利用してもよいし、位置検出用パターン５１０の４つの角のいずれかの座標を利用してもよい。また、画像データｖｄの中から、例えば、図２（ａ）に示したＸ方向およびＹ方向に走査した結果、Ｘ方向およびＹ方向の双方において、高い濃度と低い濃度の比率が１：１：３：１：１に近くなる座標を検出して、この座標を位置検出用パターン５１０の中心座標に設定してもよい。さらに、位置検出用パターン５１０は、その中央に黒色の四角形５１１が配置されているので（図３（ａ）を参照）、この黒色の四角形５１１を検出して、当該黒色の四角形５１１の中央を位置検出用パターン５１０の中心座標に設定してもよい。
【００２９】
位置検出用パターン差し替え部３０は、位置検出用パターン検出部２０により検出される位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中の位置検出用パターン５１０を、基準パターンに差し替える。ここで、前記基準パターンとは、一定のコントラスト比（例えば、位置検出用パターン５１０のうち、最も明るい部分＜白モジュール＞と、最も暗い部分＜黒モジュール＞の輝度の比）以上の位置検出用パターンである。基準パターンはコントラスト比が高いので、当該パターン中の白モジュールと黒モジュールとの間の明暗がはっきりする。したがって、コード読取装置１０００は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準に復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。なお、この基準パターンは、基準パターン格納部４０に予め格納されている。
【００３０】
２値化閾値設定部５０は、後述の２値化実行部６０が実行する２値化に用いる閾値を設定する。この閾値は、画像データ中の各画素を黒画素または白画素に変換するための濃度基準値である。
【００３１】
２値化実行部６０は、画像データｖｄのうち、少なくともバーコード５００の領域に対して、２値化閾値設定部５０により設定される閾値に基づいて、当該画像データｖｄ中の各画素の濃度の２値化を実行する。
【００３２】
コード領域検出部７０は、位置検出用パターン検出部１０により検出される位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中のバーコード５００の領域を検出する。図５は、画像データ中のバーコードの領域を検出する方法を説明するための図である。図５に示されるように、コード領域検出部７０は、位置検出用パターン５１０の中心座標と、位置検出用パターン５１０の対角線の長さとの関係から、画像データ中のバーコード５００の領域を検出する。すなわち、まず、コード領域検出部７０は、位置検出用パターン検出部１０の検出結果に基づいて、画像データｖｄ中のバーコード５００に含まれる３つの位置検出用パターン５１０のうち、左下と右下の位置検出用パターン５１０の各中心座標Ｐ１、Ｐ２を特定する。次に、コード領域検出部７０は、位置検出用パターン検出部１０の検出結果に基づいて、各位置検出用パターン５１０の対角線の長さＱ１、Ｑ２を算出する。次に、コード領域検出部７０は、位置検出用パターン検出部１０の検出結果に基づいて、座標Ｐ１、Ｐ２から、バーコード５００の中心から離れる方向であるＲ１、Ｒ２の方向に、Ｑ１、Ｑ２の半分の長さ分だけ移動した座標Ｓ１、Ｓ２を算出する。なお、座標Ｓ１は、左下の位置検出用パターン５１０の左下隅の点であり、かつ、バーコード５００の左下隅の点である。座標Ｓ２は、右上の位置検出用パターン５１０の右上隅の点であり、かつ、バーコード５００の右上隅の点である。最後に、コード領域検出部７０は、Ｓ１、Ｓ２を対角線の両端とする正方形の領域をバーコード５００の領域として検出する。
【００３３】
復号部８０は、画像データｖｄ中のバーコード５００を復号する。具体的には、復号部８０は、画像データｖｄ中のバーコード５００のうち、データセル５３０の白画素および黒画素を「１」、「０」のバイナリ変換を行い、バイナリ変換後の文字列を復号する。このとき、復号部８０は、位置検出用パターン差し替え部３０により差し替えられた基準パターンの位置および大きさを検出し、この検出結果に基づいてバーコード５００の領域を認識した後に、バーコード５００を復号する。
【００３４】
図６は、バーコードの復号処理を説明するための図である。図６（ａ）は、バーコード５００中の冗長コード書き込み領域Ｖと情報コード書き込み領域Ｗの一例を示す。図６（ｂ）は、図６（ａ）の冗長コード書き込み領域Ｖおよび情報コード書き込み領域Ｗに対してバイナリ変換を行った結果を示す。
【００３５】
図６（ａ）に示されるように、バーコード５００のデータセル５３０内には、冗長コードが書き込まれた領域である冗長コード書き込み領域Ｖと、情報コードが書き込まれた領域である情報コード書き込み領域Ｗが存在する。復号部８０が、領域Ｖ、Ｗ内の各画素に対してバイナリ変換を行うと、図６（ｂ）に示されるように、冗長コードＶ１および情報コードＷ１からなるバイナリ変換データが生成される。そして、復号部８０がバイナリ変換データを復号すると、例えば、基板６００などの製品情報（例えば、製品の種類、シリアルナンバー）を文字列で得ることができる。このように、バイナリ変換データに冗長コードを含ませたことにより、バイナリ変換データ中にビット（bit）誤りがあったとしても、復号部８０はバーコード５００を正しく復号することができる。
【００３６】
出力部９０は、復号部８０により復号されたバーコード５００の情報を出力する。制御部１１０は、コード読取装置１０００全体を制御する。制御部１１０は、コード読取装置１０００内の各部１０〜９０との間で信号のやりとりを行い、各部１０〜９０に対して処理の実行などの指示を行う。
【００３７】
次に、本発明の第１の実施の形態にかかるコード読取装置１０００の動作について説明する。図７は、コード読取装置１０００の動作フローを示す。
【００３８】
図７に示されるように、まず、画像取得部１０が画像データｖｄを取得する（Ｓ７０１）。ここでは、画像データｖｄは、カメラ２００により撮像して得られたデータとする。カメラ２００による撮像時には、例えば、図１に示されるように、照明装置４００の光を斜め方向からバーコード５００に照射する。特に、バーコード５００が基板６００上に刻印されている場合、真上からでなく、斜め方向からバーコード５００に光を照らすことにより、基板６００からの反射光が散乱するので、画像データｖｄのコントラスト比を効果的に高めることができる。
【００３９】
次に、位置検出用パターン検出部２０が、画像データｖｄに基づいて、バーコード５００の位置検出用パターン５１０の位置および大きさを検出する（Ｓ７０２）。そして、コード領域検出部７０が、位置検出用パターン検出部１０により検出される位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中のバーコード５００の領域を検出する（Ｓ７０３）。
【００４０】
次に、２値化閾値設定部５０が、２値化実行部６０が実行する２値化に用いる閾値を設定する（Ｓ７０４）。具体的には、２値化閾値設定部５０は、まず、画像データｖｄのバーコード５００の領域に含まれる画素の濃度分布を示すヒストグラムを生成する。
【００４１】
図８は、画像データｖｄのバーコード５００の領域に含まれる画素の濃度分布を示すヒストグラムの一例を示す。図８では、画素の濃淡値（諧調）を０〜２５５の１バイトの数値で表現している。図８に示される例では、バーコード５００の領域内には、レベル約１００およびレベル約２００の濃淡値の画素がもっとも多い。なお、画像データｖｄがカラーの場合には、Ｒ（Ｒｅｄ）、Ｇ（Ｇｒｅｅｎ）およびＢ（Ｂｌｕｅ）の各画素値の平均値を濃淡値に用いてもよい。２値化閾値設定部５０は、生成したヒストグラムに基づいて、２値化閾値を設定する。なお、２値化閾値は、前述の通り、バーコード５００の領域内の各画素を、黒画素または白画素に変換するための濃度基準値である。例えば、２値化閾値設定部５０は、生成したヒストグラムに基づいて、バーコード５００の領域における白画素および黒画素の比率がおよそ５０：５０になるように、２値化閾値を設定する。このように、２値化閾値を設定する際に、バーコード５００の領域における白画素および黒画素の比率がおよそ５０：５０となるようにするのは、一般的なバーコード５００内の白領域と黒領域の比率は５０±１０％になるように設定されていることによる（日本工業規格ＪＩＳ  Ｘ０５１０を参照）。図８で例示した場合には、２値化閾値は濃淡値約１５０となる。
【００４２】
ここで、Ｓ７０３の処理で、複数のバーコード５００が画像データｖｄ中に含まれる場合を想定する。また、ここでは、各バーコード５００は３つの位置検出用パターン５１０を含むものとする。この場合、コード領域検出部７０は、図８で例示したヒストグラムを用いて、画像データｖｄ中のバーコード５００の領域を検出することができる。
【００４３】
すなわち、コード領域検出部７０は、まず、Ｓ７０２で検出した複数の位置検出用パターン５１０の座標情報から各座標間の距離を算出する。そして、コード領域検出部７０は、任意の３つの座標間の距離の和が最小になるとともに、これらの座標の配置が直角を形成する場合がないかを検出する。この条件を満たす場合に、さらに、コード領域検出部７０は、当該３つの座標に囲まれた領域内の濃淡値のヒストグラムを作成し、ヒストグラム中に２つのピークが存在するか否かを判断する。そして、コード領域検出部７０は、ヒストグラム中に２つのピークが存在する場合に、当該３つの座標が１つの特定のバーコード５００の位置検出パターンの位置に対応すると検出する。以降の処理では、コード領域検出部７０は、図５を用いて説明した通り、バーコード５００の領域を検出する。このように、複数のバーコード５００が画像データｖｄ中に含まれる場合であっても、コード領域検出部７０は、図８で例示したヒストグラムを用いることで、画像データｖｄ中のバーコード５００の領域を検出することができる。
【００４４】
ここで、バーコード５００の領域検出において、ヒストグラム中に２つのピークが存在するか否かを判断基準の１つとしている。この判断基準の設定では、一般的なバーコード５００では前述したように白領域と黒領域の比率は５０±１０％になるように設定されている点を利用している。すなわち、任意の３つの座標を囲う領域がバーコード５００の内部であれば、ヒストグラム内に２つのピークが必ず存在する。一方、任意の３つの座標を囲う領域がバーコード５００の外部であれば、ヒストグラム内にこのような２つのピークは表れない。このような特性を活かせば、複数のバーコード５００が画像データｖｄ中に含まれる場合であっても、コード領域検出部７０はバーコード５００の領域を決定できる。
【００４５】
図７に戻って、次に２値化実行部６０が、２値化実行部６０は、画像データｖｄのうち、少なくともバーコード５００の領域に対して、２値化閾値設定部５０により設定される２値化閾値に基づいて、当該画像データｖｄ中の各画素の濃度の２値化を実行する（Ｓ７０５）。すなわち、図８の例では、２値化実行部６０は、２値化閾値である濃淡値１５０に基づいて、２値化を実行する。より具体的には、２値化実行部６０は、濃淡値１５０未満の画素の全てを濃淡値０に変換し、濃淡値１５０以上の画素の全てを濃淡値２５５に変換する。この結果、バーコード５００の領域内の各画素の濃淡値が、濃淡値０か濃淡値２５５のみとなり、２値化前の画像と比較して、黒モジュールと白モジュールの間のコントラスト比を高くすることができる。
【００４６】
図９は、２値化を実行する前後のバーコード５００の画像の一例を示す。図９（ａ）は、２値化前のバーコード５００の画像である。図９（ｂ）は、２値化後のバーコード５００の画像である。図９（ａ）および図９（ｂ）に示されるように、明らかに、２値化後の画像の方が、２値化前の画像よりも、黒モジュールと白モジュールの間のコントラスト比が高くなっている。
【００４７】
次に、位置検出用パターン差し替え部３０が、画像データｖｄ中の位置検出用パターン５１０を、基準パターンに差し替える（Ｓ７０６）。具体的には、位置検出用パターン差し替え部３０は、位置検出用パターン検出部により検出された位置検出パターン５１０の位置および大きさに基づいて、位置検出パターン５１０を、基準パターン格納部４０に格納されている基準パターンに差し替える。このとき、位置検出用パターン差し替え部３０は、前記位置検出用パターン検出部により検出される前記位置検出用パターンの大きさと、前記基準パターンの大きさとが、ほぼ同一になるように、位置検出用パターンまたは基準パターンを変形してから、前述の差し替え処理を行う。
【００４８】
図１０は、位置検出用パターンを基準パターンに差し替える前後のバーコード５００の画像の一例を示す。図１０（ａ）は、基準パターンに差し替える前のバーコード５００の画像である。図９（ｂ）は、基準パターンに差し替えた後のバーコード５００の画像である。図１０（ａ）および図１０（ｂ）に示されるように、明らかに、差し替え後の画像の方が、差し替え前の画像よりも、特に位置検出パターンの領域において、黒モジュールと白モジュールの間のコントラスト比が高くなっている。
【００４９】
図７に戻って、復号部８０は、画像データｖｄ中のバーコード５００を復号する（Ｓ７０７）。そして、出力部９０が、復号部８０により復号されたバーコード５００の情報を表示装置３００へ出力する（Ｓ７０８）。表示装置３００は、出力部９０により出力されたバーコード５００の復号情報を表示する。
【００５０】
以上の通り、本発明の第１の実施の形態にかかるコード読取装置およびコード読取方法について説明した。
【００５１】
本発明の第１の実施の形態にかかるコード読取装置１０００は、位置検出用パターン５１０を含むコードを読み取るコード読取装置である。また、コード読取装置１０００は、画像取得部１０と、位置検出用パターン検出部２０と、位置検出用パターン差し替え部３０とを含んで構成されている。画像取得部１０は、バーコード５００を撮像して得られる画像データを取得する。位置検出用パターン検出部２０は、画像取得部１０により取得された画像データｖｄに基づいて、位置検出用パターン５１０の位置および大きさを検出する。そして、位置検出用パターン差し替え部３０は、位置検出用パターン検出部２０により検出される位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中の位置検出用パターン５１０を、所定のコントラスト比以上の位置検出用パターンである基準パターンに差し替える。
【００５２】
以上のように、位置検出用パターン差し替え部３０が、位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中の位置検出用パターン５１０を、基準パターンに差し替える。基準パターンは一定のコントラスト比以上の位置検出用パターンであるので、白モジュールと黒モジュールとの間の明暗がはっきりする。このように、コード読取装置１０００は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準にバーコード５００を復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。
【００５３】
また、本発明の第１の実施の形態にかかるコード読取装置１０００は、さらに２値化実行部６０を備えている。この２値化実行部６０は、画像取得部１０により取得された前記画像データのうち、少なくともバーコード５００の領域に対して、当該画像データ中の各画素の濃度の２値化を実行する。
【００５４】
これにより、２値化前の画像と比較して、バーコード５００の領域内の各画素の濃淡をはっきりさせることができ、黒モジュールと白モジュールの間のコントラスト比を高くすることができる。この結果、コード読取装置１０００が、黒モジュールと白モジュールの間のコントラスト比が高い画像データを用いて、バーコード５００の復号をすることができる。
【００５５】
また、本発明の第１の実施の形態にかかるコード読取装置１０００は、さらに２値化閾値設定部５０を備えてもよい。この場合、２値化閾値設定部５０は、画像取得部１０により取得された画像データのバーコード５００の領域に含まれる画素の濃度分布を示すヒストグラムに基づいて、黒画素または白画素に変換するための濃度基準値である２値化閾値を設定する。また、２値化実行部６０は、２値化閾値設定部５０により設定される２値化閾値に基づいて、画像データ中の各画素の濃度の２値化を実行する。
【００５６】
このように、バーコード５００の領域に含まれる画素の濃度分布についてヒストグラムを生成し、このヒストグラムを用いて２値化閾値を設定するので、読み取り対象であるバーコード５００毎に適正な閾値を設定することができる。また、このような閾値を用いて、２値化実行部６０が前記２値化を実行するので、画像データ中のバーコード５００の間のコントラスト比をより適正に高くすることができる。この結果、コード読取装置１０００が、コントラスト比が高い画像データを用いて、バーコード５００の復号をすることができる。
【００５７】
また、本発明の第１の実施の形態にかかるデータ読取装置１０００において、２値化閾値設定部５０は、バーコード５００の領域における白画素および黒画素の比率が所定の範囲に含まれるように、２値化閾値を設定する。
【００５８】
これにより、読み取り対象であるバーコード５００毎に、より適正な閾値を所定の範囲内で設定することができる。特に、一般的なバーコード内の白領域と黒領域の比率は５０±１０％になるように設定されている（日本工業規格ＪＩＳ  Ｘ０５１０を参照）。したがって、この場合には、例えば、バーコード５００内の白領域と黒領域の比率が５０±１０％になるように、２値化閾値を設定すれば、より適正な閾値を設定することができる。
【００５９】
また、本発明の第１の実施の形態にかかるデータ読取装置１０００において、位置検出用パターン差替部３０は、位置検出用パターン検出部２０により検出される位置検出用パターン５１０の大きさと、基準パターンの大きさとが、ほぼ同一になるように、画像データｖｄ中の位置検出用パターン５１０を基準パターンに差し替える。
【００６０】
これにより、差し替え前の位置検出用パターン５１０と、差し替え後の基準パターンの大きさとが、ほぼ同一になる。また、位置検出用パターン５１０の大きさとほぼ同じ大きさで、基準パターンを配置することができる。そして、このように配置された基準パターンを基準にバーコード５００を復号することができるので、コードの誤検出をさらに低減し、コードをより正確に認識することができる。
【００６１】
また、本発明の実施の形態にかかるコード読取装置１０００は、コード領域検出部７０をさらに備えてもよい。このコード領域検出部７０は、位置検出用パターン検出部２０により検出される位置検出用パターン５１０の位置および大きさに基づいて、バーコード５００の領域を検出する。
【００６２】
これにより、バーコード５００の領域内と領域外とを切り分けて、２値化処理などを実行できる。
【００６３】
次に、本発明の第１の実施の形態にかかるコード読取装置の動作フローの変形例について、説明する。図１１は、本発明の第１の実施の形態にかかるコード読取装置の動作フローの変形例のフローを示す。
【００６４】
図７と図１１とを対比すると、Ｓ７０４〜Ｓ７０６とＳ１１０４〜Ｓ１１０６とで相違する。すなわち、本発明の第１の実施の形態にかかるコード読取装置の動作フローでは、図７に示されるように、バーコード５００の領域を決定した後（Ｓ７０３）、２値化閾値を設定し（Ｓ７０４）、画像データ中の各画素の濃度を２値化していた後に（Ｓ７０５）、位置検出用パターを基準パターンに差し替えていた（Ｓ７０６）。これに対して、本発明の第１の実施の形態にかかるコード読取装置の動作フローの変形例では、図１１に示されるように、バーコード５００の領域を決定した後（Ｓ１１０３）、まず、位置検出用パターンを基準パターンに差し替えてから（Ｓ１１０４）、２値化閾値を設定し（Ｓ１１０５）、画像データ中の各画素の濃度を２値化する（Ｓ１１０６）。
【００６５】
また、図１１のＳ１１０１〜Ｓ１１０３、Ｓ１１０７およびＳ１１０８の各処理は、図７のＳ７０１〜Ｓ７０３、Ｓ７０７およびＳ７０８の各処理に対応する。また、図１１のＳ１１０４、Ｓ１１０５およびＳ１１０６の各処理は、図７のＳ７０６、Ｓ７０４およびＳ７０５にそれぞれ対応する。図１１に示すS１１０１〜S１１０８の具体的な処理内容は、図７中で対応する各ステップの処理内容と同一である。このため、S１１０１〜S１１０８の各処理についての詳細な説明は省略する。
【００６６】
このように、位置検出用パターンを基準パターンに差し替えてから、２値化閾値を設定し、画像データ中の各画素の濃度を２値化しても、前述した内容と同様の効果を奏する。
【００６７】
＜第２の実施の形態＞
図１２は、本発明の第２の実施の形態にかかるコード読取装置および周辺装置の構成を示す。図１２に示されるように、コード読取装置１０００ａには、カメラ２００および表示装置３００が接続されている。図１１は、図１と同様に、コード読取装置１０００ａが、基板６００の上に取り付けられたバーコード５００を読み取る場合を例示している。また、バーコード５００には、照明装置４００により光が照射されている。
【００６８】
コード読取装置１０００ａは、画像取得部１０と、位置検出用パターン検出２０と、位置検出用パターン差し替え部３０と、基準パターン格納部４０と、コード領域検出部７０と、復号部８０と、出力部９０と、制御部１１０とを含んで構成されている。図１１では、図１に示される構成と同一の機能を有するものに対しては、図１と同一の符号を付している。
【００６９】
次に、図１と図１２とを対比する。第１の実施の形態にかかるコード読取装置１０００は、図１に示されるように、２値化閾値設定部５０と、２値化実行部６０とを含んでいる。これに対して、第２の実施の形態にかかるコード読取装置１０００ａは、図１２に示されるように、これらを含んでいない点で、両者は相違する。
【００７０】
図１２に示す各構成の機能の説明については、図１に示す同一符号を付す各構成の説明と同様となるので、ここでの具体的な説明は省略する。
【００７１】
次に、本発明の第２の実施の形態にかかるコード読取装置１０００ａの動作フローについて説明する。図１３は、コード読取装置１０００ａの動作フローを示す。
【００７２】
図１３に示されるように、まず、画像取得部１０が画像データｖｄを取得する（Ｓ１３０１）。次に、位置検出用パターン検出部２０が、画像データｖｄに基づいて、バーコード５００の位置検出用パターン５１０の位置および大きさを検出する（Ｓ１３０２）。そして、コード領域検出部７０が、位置検出用パターン検出部１０により検出される位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中のバーコード５００の領域を検出する（Ｓ１３０３）。
【００７３】
次に、位置検出用パターン差し替え部３０が、画像データｖｄ中の位置検出用パターン５１０を、基準パターンに差し替える（Ｓ１３０４）。また、復号部８０は、画像データｖｄ中のバーコード５００を復号する（Ｓ１３０５）。そして、出力部９０が、復号部８０により復号されたバーコード５００の情報を表示装置３００へ出力する（Ｓ１３０６）。表示装置３００は、出力部９０により出力されたバーコード５００の復号情報を表示する。
【００７４】
なお、図１３のＳ１３０１〜Ｓ１３０３、Ｓ１３０４〜Ｓ１３０６の各処理は、図７のＳ７０１〜Ｓ７０３、Ｓ７０６〜Ｓ７０８の各処理に対応する。図１３に示すS１３０１〜S１３０６の具体的な処理内容は、図７中で対応する各ステップの処理内容と同一である。このため、S１３０１〜S１３０６の各処理について、詳細な説明は省略する。
【００７５】
以上の通り、本発明の第２の実施の形態にかかるコード読取装置およびコード読取方法について説明した。
【００７６】
このように、本発明の第２の実施の形態にかかるコード読取装置１０００ａでは、位置検出用パターン差し替え部３０が、位置検出用パターン５１０の位置および大きさに基づいて、画像データｖｄ中の位置検出用パターン５１０を、基準パターンに差し替える。基準パターンは一定のコントラスト比以上の位置検出用パターンであるので、白モジュールと黒モジュールとの間の明暗がはっきりする。このように、コード読取装置１０００は、差し替え後の基準パターンを用いることにより、コントラスト比が一定以上のパターンを基準にバーコード５００を復号することができる。この結果、コードの誤検出を低減し、コードを正確に認識することができる。
【００７７】
以上、実施の形態をもとに本発明を説明した。実施の形態は例示であり、本発明の主旨から逸脱しない限り、上述各実施の形態に対して、さまざまな変更、増減、組合せを加えてもよい。これらの変更、増減、組合せが加えられた変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７８】
前記実施の形態の説明では、位置検出用パターン検出部２０は、テンプレート画像５１０ａを用いて、位置検出用パターン５１０を検出すると説明した。しかしながら、位置検出用パターン検出部２０は、テンプレート画像５１０ａに代えて、基準パターンを用いて、位置検出用パターン５１０を検出してもよい。
【００７９】
また、前記実施の形態の説明では、基本的には、画像データｖｄ中にはバーコード５００が１つ存在することを前提に説明した。しかしながら、本発明では、複数のバーコード５００が画像データｖｄ中に存在してもよい。特に、複数のバーコード５００が基板６００以上に刻印されており、これら複数のバーコード５００が画像データｖｄに含まれる場合に、本発明はより効果的に活用できる。複数のバーコード５００が画像データに含まれる場合、これまでは、画像データ中の全てのバーコード５００のコントラストを高く維持するために、照明装置４００を基板６００から離して設置し、各バーコード５００への照明角度の近似値を最適な照明角度と同一になるように設定して、カメラ２００によりバーコード５００を撮像していた。ところが、この方法を採用するには、照明装置４００を設置するためのスペースを十分に確保する必要があった。したがって、生産ライン上にコード読取装置を設置しようとする場合、照明装置４００のスペースが確保できず、画像データ中の全てのバーコード５００のコントラストを高くすることができなかった。これに対して、本発明では、画像データｖｄの中のバーコード５００（位置検出パターン５１０を含む）に対して、黒モジュールと白モジュールの間のコントラスト比を高める画像処理を行っているので、照明装置４００の設置環境に関係なく、コントラスト比が高いバーコード５００の画像データを得ることができる。本発明によれば、コントラスト比が高いバーコード５００の画像データを用いてバーコード５００を復号するので、バーコード５００の誤検出を低減し、バーコード５００を正確に認識することができる。
【符号の説明】
【００８０】
１０  画像取得部
２０  位置検出用パターン検出部
３０  位置検出用パターン差し替え部
４０  基準パターン格納部
５０  ２値化閾値設定部
６０  ２値化実行部
７０  コード領域検出部
８０  復号部
９０  出力部
１１０  制御部
２００  カメラ
３００  表示装置
４００  照明装置
５００  バーコード
５１０  位置検出用パターン
５２０  タイミングパターン
５３０  データセル
６００  基板
【図１】
0005673257.tif 000002
【図２】
0005673257.tif 000003
【図３】
0005673257.tif 000004
【図４】
0005673257.tif 000005
【図５】
0005673257.tif 000006
【図６】
0005673257.tif 000007
【図７】
0005673257.tif 000008
【図８】
0005673257.tif 000009
【図９】
0005673257.tif 000010
【図１０】
0005673257.tif 000011
【図１１】
0005673257.tif 000012
【図１２】
0005673257.tif 000013
【図１３】
0005673257.tif 000014