(57)【要約】【課題】  区画領域内に含まれる情報コードがバーコードか２次元コードかを解読前に区別できるようにし、短時間で高精度に情報コードを光学的に読取るようにする。【解決手段】  制御回路は、次のような処理を行う。すなわち情報コードが存在する区画領域を推定する（Ｓ３）。そして、推定された存在区画領域の少なくとも１つを検査区画として設定する（Ｓ４）。検査区画内を当該検査区画の中心位置を中心として検査対象画素データ群を回転させて検査区画全体を検査する（Ｓ８〜Ｓ１１）。そして、評価点数が最小の画素データ群の傾き角度が誤差範囲内に揃っている検査区画の数が所定個数以上の場合バーコードとして判別する。【選択図】  図４
2006059073.tif 000002
【特許請求の範囲】
【請求項１】
明暗パターンからなる情報コードを光学的に読取る光学的情報読取方法であって、
２次元画像センサを使用して読取対象領域から輝度レベル情報を有する画素データを取込む取込過程と、
前記取込まれた画素データを複数の領域に区画する区画過程と、
前記区画領域のうち情報コードが存在する区画領域を推定する推定過程と、
前記推定された存在区画領域のうち少なくとも１つの区画領域を検査区画として設定する検査区画設定過程と、
前記設定された検査区画内の画素データについて直線状の検査対象画素データ群を設定する検査対象設定過程と、
前記検査対象画素データ群の輝度レベルに基づいて当該輝度レベルの極値，および前記検査区域内における明暗パターンの明暗変化数を算出する明暗変化数算出過程と、
前記明暗パターンの明暗変化数および前記輝度レベルの極値差に基づいて第１の評価点数を算出する評価点数算出過程と、
前回の前記直線状の検査対象画素データ群と前記検査区画内で交差するように次回の直線状の検査対象画素データ群を設定する次回検査対象設定過程と、
前記次回検査対象設定過程の検査対象画素データ群について連続する画素データの輝度レベルに基づいて当該画素データの輝度レベルの極値および前記検査区域内における明暗パターンの明暗変化数を算出する次回明暗変化数算出過程と、
前記次回明暗変化数算出過程の明暗パターンの明暗変化数および前記輝度レベルの極値差に基づいて第２の評価点数を算出する次回評価点数算出過程と、
前記設定された検査区画全体を検査するように前記次回検査対象設定過程から前記次回評価点数算出過程まで繰り返し第ｎの評価点数（ｎは２以上の整数）まで算出する繰返す過程と、
前記第１ないし第ｎの評価点数のうち極大値もしくは極小値が取得される検査対象画素データ群を特定する極大極小特定過程と、
前記特定された検査対象画素データ群および前記取得された極大値もしくは極小値に基づいて前記区画領域に含まれることが推定される前記情報コードをバーコードであると区別する区別過程とを備えたことを特徴とする光学的情報読取方法。
【請求項２】
前記第１ないし第ｎの評価点数のうちの極大値および極小値を取得し、当該極大値が取得される検査対象画素データ群および極小値が取得される検査対象画素データ群が交差する角度を特定する交差角度特定過程と、
前記区別過程では、前記交差角度特定過程において特定された角度が９０度もしくは９０度に近接する値となる場合に、前記区画領域に含まれることが推定される前記情報コードをバーコードであると区別することを特徴とする請求項１記載の光学的情報読取方法。
【請求項３】
前記極大極小特定過程において極小値が取得された直線状の検査対象画素データ群に対し垂直な角度もしくは垂直に近い角度をなす画素データ群をバーコードの読取対象画素データ群として設定する読取対象設定過程とを備えたことを特徴とする請求項１または２記載の光学的情報読取方法。
【請求項４】
前記検査対象設定過程において設定された直線状の検査対象画素データ群，および前記次回検査対象設定過程の前記次回の直線状の検査対象画素データ群のなす角度は、９０度の整数分の１に予め設定された角度であることを特徴とする請求項１ないし３の何れかに記載の光学的情報読取方法。
【請求項５】
前記次回検査対象設定過程では、前記前回の直線状の検査対象画素データと前記検査区画内の中心位置で交差するように次回の直線状の検査対象画素データ群を設定することを特徴とする請求項１ないし４の何れかに記載の光学的情報読取方法。
【請求項６】
前記検査区画設定過程では、前記区画領域を複数個結合して検査区画として設定することを特徴とする請求項１ないし５の何れかに記載の光学的情報読取方法。
【請求項７】
前記検査区画設定過程では、前記区画領域を縦横に同一個数結合して検査区画として設定することを特徴とする請求項１ないし６の何れかに記載の光学的情報読取方法。
【請求項８】
前記検査対象設定過程において設定された直線状の検査対象画素データ群，および前記次回検査対象設定過程の前記次回の直線状の検査対象画素データ群のなす角度として、複数の異なる所定の角度が予め設定され、
前記次回検査対象設定過程では、前記検査対象設定過程において設定された直線状の検査対象画素データ群と前記所定の角度のうち大きな第１角度で前記検査区画内で交差するように次回の直線状の検査対象画素データ群を設定し、
前記繰返し過程では、設定された検査区画全体を検査するように第ｎの評価点数まで算出し、
前記極大極小特定過程では、前記第１ないし第ｎの評価点数のうち極大値もしくは極小値が取得される第１の検査対象画素データ群を特定し、
前記極大極小特定過程において特定された第１の検査対象画素データ群を中心として前記第１角度より小さい第２角度だけ回転させた直線状の第２の検査対象画素データ群を前記第１の検査対象画素データ群の周辺に設定する第２の検査対象設定過程と、
前記第２の検査対象画素データ群の輝度レベルに基づいて当該輝度レベルの極値，および前記検査区域内における明暗パターンの明暗変化数を算出する第２の明暗変化数算出過程と、
前記第２の検査対象画素データ群について明暗パターンの明暗変化数および前記輝度レベルの極値差に基づいて詳細評価点数を算出する第２の評価点数算出過程と、
前記第２の評価点数算出過程で算出される詳細評価点数に基づいて前記区画領域に含まれることが推定される前記情報コードをバーコードであると区別する第２の区別過程とを備えたことを特徴とする請求項１ないし７の何れかに記載の光学的情報読取方法。
【請求項９】
前記極大極小特定過程では、前記第１ないし第ｎの評価点数のうちで極小値が取得される検査対象画素データ群を特定することを特徴とする請求項１ないし８の何れかに記載の光学的情報読取方法。
【発明の詳細な説明】
【技術分野】
【０００１】
明暗パターンからなる情報コードを光学的に読取る光学的情報読取方法に関する。
【背景技術】
【０００２】
この種の光学的情報読取方法を使用した構成の一例が、本願出願人により出願された特許文献１および２に開示されている。これらの先行技術文献に開示されているように、２次元画像センサを使用して読取対象領域から輝度レベル情報を含む画素データを取込み、取込まれた画素データを複数の領域に区画し、情報コードが存在する区画領域を推定する技術が確立されている。
【０００３】
具体的には特許文献１によれば、情報コードの概略的な存在領域（区画領域）を推定した後、情報コードの正確な位置を検出してデータ解読をしているため、データ解読終了するまでに要する時間を短縮することができるようになる。また特許文献２によれば、読取用の照明の点灯を不要として読取対象領域に情報コードが高い確率で存在することを推定できるようになる。
【特許文献１】特開２０００−３５３２１０号公報
【特許文献２】特開２０００−３０４５９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ところで、情報コードが読取対象領域に存在することを、さらに短時間で高精度に解読する試みが本出願の発明者らによりなされている。さらに短時間で高精度に検出するための１つの方法として、前記区画領域に存在する情報コードが、２次元コードかバーコードかを予め区別しその後解読する方法が考えられている。このようにして２次元コードかバーコードかを区別した後、それぞれの情報コードの解読アルゴリズムを適用して解読すれば素早く解読できるようになるためである。
【０００５】
本発明は、上記事情に鑑みてなされたもので、その目的は、区画領域内に含まれる情報コードがバーコードか２次元コードかを解読前に区別できるようにし、短時間で高精度に情報コードを光学的に読取ることを可能とした光学的情報読取方法を提供することにある。
【課題を解決するための手段】
【０００６】
請求項１記載の発明によれば、次のように作用する。すなわち、情報コードが存在する区画領域を推定する。そして、推定された存在区画領域のうち少なくとも１つの区画領域を検査区画として設定する。そして、設定された検査区画内の画素データについて直線状に検査対象画素データを設定する。そして、検査対象画素データの輝度レベルに基づいて当該輝度レベルの最大値および最小値，並びに検査区域内における明暗パターンの明暗変化数を算出する。
【０００７】
そして、明暗パターンの明暗変化数および輝度レベルの最大値および最小値の差を乗じ第１の評価点数として算出する。そして、前回の直線状の検査対象画素データ群と検査区画内で交差するように次回の直線状の検査対象画素データ群を設定する。そして、次回の直線状の検査対象画素データ群について連続する画素データの輝度レベルに基づいて当該画素データの輝度レベルの極値および検査区域内における明暗パターンの明暗変化数を算出する。そして、明暗パターンの明暗変化数および輝度レベルの極値差を乗じ第２の評価点数として算出する。
【０００８】
そして、設定された検査区画全体を検査するように第ｎ（ｎは２以上の整数）の評価点数まで算出する。そして、第１ないし第ｎの評価点数のうち極大値もしくは極小値が取得される検査対象画素データ群を特定する。そして、極大値もしくは極小値が取得される検査対象画素データ群を特定する。この特定された検査対象画素データ群および取得された極大値もしくは極小値に基づいて区画領域に含まれることが推定される情報コードをバーコードであると区別する。これにより、より高精度に情報コードを区別できるようになる。
【０００９】
請求項２記載の発明によれば、第１ないし第ｎの評価点数のうちの極大値および極小値を取得し、当該極大値が取得される検査対象画素データ群および極小値が取得される検査対象画素データ群が交差する角度を特定し、交差角度算出過程において算出された算出角度が９０度もしくは９０度に近接する値となる場合に、区画領域に含まれることが推定される情報コードをバーコードであると区別する。これにより、さらに高精度に情報コードを区別できるようになる。
【００１０】
請求項３記載の発明によれば、極大極小特定過程において極小値が取得された直線状の検査対象画素データ群に対し垂直な角度もしくは垂直に近い角度をなす画素データ群をバーコードの読取対象画素データ群として設定するため、改めて読取対象画素データ群を設定しなおす必要がなくなり、より素早く読取りすることができるようになる。
請求項４記載の発明のように、検査対象設定過程において設定された直線状の検査対象画素データ群，および次回検査対象設定過程の次回の直線状の検査対象画素データ群のなす角度は９０度の整数分の１に予め設定された角度であることが望ましい。この場合、９０度の整数分の１に設定された角度で行うことにより、直角角度をなす検査対象画素データ群についてそれぞれの評価点数を得ることができるようになる。
【００１１】
請求項５記載の発明のように、次回検査対象設定過程では、前回の直線状の検査対象画素データと検査区画内の中心位置で交差するように次回の直線状の検査対象画素データ群を設定することが望ましい。この場合、検査区画全体を検査するときに検査区画全体を網羅して検査できるようになる。
請求項６記載の発明によれば、検査区画設定過程では、前記区画領域を複数個結合して検査区画として設定することを特徴としている。このような処理を行うことによりたとえ１つの区画領域に明点もしくは暗点が埋まったとしても、複数個結合することにより検査区画として適合させることができるようになる。
【００１２】
請求項７記載の発明は、検査区画設定過程では、区画領域を縦横に同一個数結合して検査区画として設定することを特徴としている。前述発明に比較してさらに検査区画として適合しやすくなる。
また、請求項８記載の発明は、検査対象設定過程において設定された直線状の検査対象画素データ群，および前記次回検査対象設定過程の次回の直線状の検査対象画素データ群のなす角度として、複数の異なる所定の角度が予め設定され、次回検査対象設定過程では、検査対象設定過程において設定された直線状の検査対象画素データ群と異なる所定の角度のうち大きな第１角度で前記検査区画内で交差するように次回の直線状の検査対象画素データ群を設定し、繰返し過程では、設定された検査区画全体を検査するように第ｎの評価点数まで算出し、極大極小特定過程では、前記第１ないし第ｎの評価点数のうち極大値もしくは極小値が取得される第１の検査対象画素データ群を特定し、極大極小特定過程において特定された第１の検査対象画素データ群を中心として第１角度より小さい第２角度だけ回転させた直線状の第２の検査対象画素データ群を前記第１の検査対象画素データ群の周辺に設定する第２の検査対象設定過程と、第２の検査対象画素データ群の輝度レベルに基づいて当該輝度レベルの極値，および検査区域内における明暗パターンの明暗変化数を算出する第２の明暗変化数算出過程と、第２の検査対象画素データ群について明暗パターンの明暗変化数および前記輝度レベルの極値差に基づいて詳細評価点数を算出する第２の評価点数算出過程と、第２の評価点数算出過程で算出される詳細評価点数に基づいて前記区画領域に含まれることが推定される前記情報コードをバーコードであると区別する第２の区別過程とを備えたことを特徴としている。このような発明によれば、詳細評価点数に基づいてバーコードであることを区別することができるとともに、バーコードのより詳細で正確な傾き角度を算出できるようになる。
【００１３】
請求項９記載の発明によれば、極大極小特定過程では、第１ないし第ｎの評価点数のうちで極小値が取得される検査対象画素データ群を特定するため、評価点数の極大値を取得する方法に比較して検査対象画素データ群をより高精度に特定できるようになる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を、情報コードの一種であるＱＲコード（２次元コード）およびバーコード（１次元コード）を読取るための情報コード読取装置に適用した場合の一実施形態について、図１ないし図９を参照しながら説明する。尚、本実施形態においては、ハンディタイプの情報コード読取装置についてその実施形態を示すが、これは定置式のものであっても良い。
【００１５】
図１は、情報コード読取装置の構成を概略的に示している。この情報コード読取装置１は、二次電池等の電池２を駆動源としている。この情報コード読取装置１は、制御回路３、メモリ４、トリガスイッチ５、操作スイッチ６、ＬＥＤ７、ブザー８、液晶表示器９、通信インタフェイス１０、同期信号発生回路１１、アドレス発生回路１２、照射部１３、結像手段１４、２次元画像センサ１５、増幅回路１６、Ａ／Ｄ変換回路１７、特定比検出回路１８を備えている。
【００１６】
照射部１３は、例えばリング状のフレームに複数のＬＥＤが配置されて構成されるもので、制御回路３の制御に基づいて画像取込対象領域Ｘに光を照射する。結像手段１４は、例えばレンズにより構成されており、画像取込対象領域Ｘに反射した光を２次元画像センサ１５に結像する。２次元画像センサ１５は、例えばＣＣＤやＣＭＯＳイメージセンサにより構成されており、同期信号発生回路１１が発生した同期信号に基づいて２次元画像センサ１５に結像した光を光電変換し、当該変換された画素信号を増幅回路１６に与える。
【００１７】
この画素信号は、同期信号発生回路１１が発生した同期信号に基づいて増幅回路１６、Ａ／Ｄ変換回路１７を通じてメモリ４内の画像メモリ４ａにシリアルデータの画素データとして記憶されるようになっている。このとき、画像メモリ４ａに記憶される画素データは、例えば８ビット（２５６段階）の輝度データ（明度データ：輝度情報）を含む画像データである。
【００１８】
尚、アドレス発生回路１２は、同期信号発生回路１１から同期信号が与えられるようになっており、同期信号が与えられることによりメモリ４のアドレスを指定するアドレス指定信号をメモリ４に与える。このとき、制御回路３はこの画素データを取込み画像メモリ４ａの指定されたアドレスに画素データを順次記憶させるようになっている。
また、制御回路３は、画像メモリ４ａの画素データについて、記憶された輝度レベルに基づいて白黒変化数を算出するようになっている。この白黒変化数とは、連続する画素データについて「白点」から「黒点」に変化する数、および「黒点」から「白点」に変化する数を合算した数を示している。このとき、画像データの輝度レベルから白黒変化数を算出する１つの方法として、水平方向や垂直方向に連続する画素データの輝度レベルについて１次微分値および２次微分値をそれぞれ取得し、これらの微分値に基づいて白黒変化数として算出する方法がある。また、水平方向や垂直方向に連続する画素データの輝度レベルのある所定のしきい値を基準として白黒変化数を算出する方法がある。
【００１９】
上記構成の作用について図２ないし図９をも参照しながら説明する。
本実施形態においては、横（水平方向）６４０画素×縦（垂直方向）４８０画素の画素データが画像メモリ４ａに記憶されることとして以下の説明を行う。また、情報コードＰとして、バーコードＢ（図２参照）もしくは２次元コードＨ（図３参照）が読取対象領域Ｘに表示されているものとして以下の説明を行う。
【００２０】
図４および図５は、制御回路３が情報コードを読取るときに行われる動作をフローチャートにより示している。まず、画素データが画像メモリ４ａに取込まれると、制御回路３は、これらの画素データについて例えばマトリックス状に区画する（ステップＳ２）。この場合、図２（ｂ）および図３（ｂ）に示すように、例えば水平方向３２画素×垂直方向３２画素の正方矩形状に画素データを分割するように区画する（区画領域Ｋ参照）。
【００２１】
次に、制御回路３は、この区画された画素データに基づいて情報コードＰが存在する区画領域Ｋを推定する（ステップＳ３）。具体的には、次のように推定する。すなわち、水平方向および垂直方向に直線状の検査対象画素データを各区画領域Ｋ毎に設定し、この検査対象画素データについて評価点数（（白黒変化数）×（輝度レベルの最大値および最小値差））を算出する。このとき一般に、白黒点からなる情報コードＰの場合、この評価点数が大きくなり、絵画など明暗のはっきりしない画像の場合には評価点数が小さくなる。また、情報コードＰが図２（ｂ）に示すようなバーコードＢの場合であっても、例えば、バーコードＢが横向きになっており、検査対象画素データ群が黒点もしくは白点のみからなる場合には評価点数が小さくなる。
【００２２】
このため、制御回路３がそれぞれの区画領域Ｋについて水平方向および垂直方向に評価点数を算出し、この評価点数が所定のしきい値以上となった場合に検査した区画領域Ｋに情報コードＰが存在すると推定する。特に制御回路３は、水平方向および垂直方向に評価点数を算出した結果、何れかの方向の評価点数が所定のしきい値以上となった場合に、情報コードＰが検査した区画領域Ｋに存在すると推定すると良い。この場合、バーコードＢのバーＢ１もしくはスペースＢ２が水平方向もしくは垂直方向にほぼ一致するようになったとしてもバーコードＢの存在を推定できる。尚、存在領域の推定方法については、本出願人により先に出願された特開２００２−３０４５９４号公報や特開２０００−３５３２１０号公報に開示された方法であっても良い。
【００２３】
以下、例えば図２に示すバーコードＢもしくは図３に示す２次元コードＨを読取る場合、図２もしくは図３に太線枠で示した存在区画領域ＷにバーコードＢもしくは２次元コードＨが存在推定されたものと仮定して以下説明を行う。
次に、制御回路３は、全ての存在区画領域Ｗを検査区画として検査していないことを条件として、推定された存在区画領域Ｗのうちの少なくとも１つを検査区画として設定する（ステップＳ４ＡおよびＳ４）。またステップＳ４において、存在区画領域Ｗのうちの中心に近い区画領域Ｋ１を検査区画として設定すると良い。言い換えると、存在区画領域Ｗのうちの白黒変化する画素が含まれる率が一番高い区画領域Ｋ１を検査区画として設定することが望ましい。具体的には、存在区画領域Ｗを水平方向および垂直方向に２等分した部分付近の区画領域Ｋを検査区画として設定する。このとき、バーコードＢのバーＢ１やスペースＢ２、もしくは２次元コードＨの白セルＨ１および黒セルＨ２が複数個検査区画に含まれることになるため高確率および高精度に検出できるようになる。
【００２４】
また、特に区画領域Ｋ全体のそれぞれの評価点数（もしくは白黒変化数）が所定数よりも少ない場合（すなわち、バーコードＢのバーＢ１やスペースＢ２もしくは２次元コードＨの白セルＨ１および黒セルＨ２が単独で１つの区画領域Ｋに対して埋まってしまっているような場合（図６（ｂ）参照））においては、図６（ｃ）に示すように、存在区画領域Ｗのうちの複数個結合した区画領域Ｋを１つの検査区画Ｋ１として設定しても良い。
【００２５】
この場合、図６（ｃ）に示すように、特に水平方向および垂直方向に並設された同一個数（例えば２個）だけ結合した区画領域Ｋを１つの検査区画Ｋ１として設定することが望ましい。このような場合、図６（ｂ）に示すように、バーコードＢのバーＢ１やスペースＢ２もしくは２次元コードＨの白セルＨ１および黒セルＨ２が単独で１つの区画領域Ｋに対して埋まってしまっているような場合であっても検査区画Ｋ１として適用させることができるようになる。
【００２６】
制御回路３は、設定された検査区画Ｋ１に対して検査対象画素データ群Ｇ０を水平直線状に設定する（ステップＳ５）。図２（ａ）および図３（ａ）には、検査対象画素データ群Ｇ０〜Ｇ７を直線で示している。尚、初期設定された検査対象画素データ群を図２の符号Ｇ０により示している。
このとき水平方向を傾き角度０度とし垂直方向を傾き角度９０度と定義する。制御回路３は、設定された検査対象画素データ群Ｇ０の画素データについて輝度レベルの最大値および最小値（極大値および極小値：極値）と白黒変化数（明暗変化数）とを算出する（ステップＳ６）。さらに、制御回路３は、輝度レベルの最大値および最小値の差（極値差）と白黒変化数とを乗じて評価点数として算出する（ステップＳ７）。
【００２７】
この後、図２（ａ）および図３（ａ）に示すように、制御回路３は、検査区画Ｋ１の中心位置Ｃを中心として検査対象画素データ群Ｇ０を回転させ検査対象画素データ群Ｇ１〜Ｇ４を設定し、検査区画Ｋ１全体を検査し終わる（すなわち３６０度回転させて略検査区画Ｋ１を埋める）まで、輝度レベルの極値、白黒変化数、評価点数を算出する（ステップＳ８〜Ｓ１１）。
【００２８】
初期状態から検査区画Ｋ１の中心位置Ｃを中心に検査対象画素データ群Ｇ０を回転させる場合、９０度の整数分の１（例えば９０／４＝２２．５度）だけ回転させた検査対象画素データ群Ｇ１を設定し、後のステップＳ１０〜Ｓ１１において各データを算出するようにすると良い。この場合、次回の直線状の検査対象画素データ群Ｇ１と前回の直線状の検査対象画素データ群Ｇ０とを中心位置Ｃで交差させるようにすると、検査区画Ｋ１全体を検査するときに検査区画Ｋ１全体を網羅しやすくなる。図８（ａ）は、バーコードを含む画像データについて傾き角度θに対する評価点数を検査したときの結果を示している。また、図８（ｂ）は、２次元コードを含む画像データについて傾き角度θに対する評価点数を検査したときの結果を示している。この結果から明らかなように、バーコードＢを含む画像データの場合には、評価点数の極大値および極小値の差が大きく、２次元コードＨを含む画像データの場合には、評価点数の極大値および極小値の差が小さい。したがって、次のような処理を行うことにより、画像データ中に含まれる情報コードＰが２次元コードＨかバーコードＢかを区別することができるようになる。
【００２９】
制御回路３は、ステップＳ８〜Ｓ１１において検査区画Ｋ１全体を含むように検査対象画素データ群Ｇ０〜Ｇ４として検査した後、これらの検査対象画素データ群Ｇ０〜Ｇ４の中で白黒変化数が所定値（例えば０もしくは１）と同値もしくは所定値よりも少ない検査対象画素データ群が存在するか否かを判定する（ステップＳ１２）。すなわち、存在区画領域Ｗ中に情報コードＰが存在することが推定されており、且つ、白黒変化数が所定値（例えば１もしくは０）と同値もしくは所定値よりも少ない検査対象画素データ群が存在する場合には、図５に示すステップＳ１３以降のステップ（微小角度回転：詳細角度特定処理）に移る。
【００３０】
以下、微小角度回転させて詳細角度を特定する処理について説明を行う。尚、微小角度回転させて詳細角度を特定する理由は、バーコードＢのより正確な傾き角度を算出できるようにするためである。また、バーコードＢの読取対象角度をより読取りしやすい角度（「バー」や「スペース」の長手方向に対して垂直方向の角度）を把握することで読取性能を向上させるためである。
【００３１】
ステップＳ１３において、制御回路３は、白黒変化数が最小となる直線状の第１の検査対象画素データ群を中心として微小角度だけ回転させた直線状の検査対象画素データ群を設定する（ステップＳ１３）。具体的には、バーコードＢの例を図７（ｂ）に示すように、白黒変化数が最小として得られる画素データ群は、検査対象画素データ群Ｇ３である。この場合、白黒変化数が最小（＝０）として得られた第１の検査対象画素データ群Ｇ３に対して、正もしくは負方向に微小角度だけ回転させて得られる第２の検査対象画素データ群Ｇ３１〜Ｇ３４を設定する。この微小角度としては、例えば１度〜２度程度の角度で設定する。この後、制御回路３は、第２の検査対象画素データ群Ｇ３１〜Ｇ３４に対してそれぞれ輝度レベルの最大値および最小値（極値）と白黒変化数とを算出する（ステップＳ１４）。
【００３２】
次に、制御回路３は、輝度レベルの最大値および最小値の差（すなわち極値差）と白黒変化数を乗じて評価点数として算出する（ステップＳ１５）。さらに、制御回路３は、第２の検査対象画素データ群Ｇ３１〜Ｇ３４に対して垂直な角度をとる直線状の第３の検査対象画素データ群を設定する（ステップＳ１６）。次に、制御回路３は、第３の検査対象画素データ群のうちで輝度レベルの極値と白黒変化数を算出する（ステップＳ１７）。次に、制御回路３は、輝度レベルの極値差と白黒変化数を乗じて評価点数（本発明の詳細評価点数に相当）として算出する（ステップＳ１８）。
【００３３】
次に、制御回路３は、第１の検査対象画素データ群を回転させて得られる周辺の画素データ群について検査対象とした（ステップＳ１９：ＹＥＳ）ことを条件として、ステップＳ２０以降の処理を行う。逆に、第１の検査対象画素データ群を回転させて得られる周辺の画素データ群について検査対象としていなければステップＳ１３〜Ｓ１９の処理を繰り返す。このようにして、第１の検査対象画素データ群Ｇ３の周辺に位置する直線状のそれぞれの検査対象画素データ群Ｇ３１〜Ｇ３４に対して評価点数を算出する。図７に示す具体例の場合には、検査対象画素データ群Ｇ３およびＧ３２の評価点数が極小値となる。
【００３４】
次に、制御回路３は、評価点数が極小（最小）の検査対象画素データ群Ｇ３およびＧ３２に対して垂直（９０度）な角度となる検査対象画素データ群Ｇ７およびＧ７２の傾き角度θをその検査区画Ｋ１の読取対象角度として設定する（ステップＳ２０）。次に、制御回路３は、傾き角度θが誤差範囲内（例えば１５度以内）に揃っている検査区画Ｋ１の個数が所定個数（例えば４〜９個）以上であるか否かを判定する（ステップＳ２１）。制御回路３は、ステップＳ２１において条件を満たす検査区画Ｋ１の個数が所定個数以上ある場合にバーコードＢとして判別する（ステップＳ２４）。このとき、制御回路３は、バーコードＢとして判別されると、傾き角度θの平均角度を読取対象角度として設定し（ステップＳ２５）、バーコードを光学的に読取る（解読する）（ステップＳ２６）。
【００３５】
ステップＳ２１において、ＮＯと判定されると、制御回路３は、推定された存在区画領域Ｗのうち検査していない区画領域Ｋが他に存在するか否かを判定し（ステップＳ２１Ａ）、他に存在していれば、ステップＳ４Ａに戻って処理を繰り返す。次に制御回路３は、ステップＳ２１Ａにおいて、推定された存在区画領域Ｗのうち検査していない区画領域Ｋが他に存在していなければ、バーコードＢ以外の情報コード（例えば、スタックドバーコード、２次元コード）とみなし（ステップＳ２２）、バーコードＢ以外のそれぞれの情報コードＰの読取アルゴリズムを適用して解読する（ステップＳ２３）。このような処理が行われることにより、２次元コードＨとバーコードＢとを信頼性よく区別できるようになる。
【００３６】
尚、本実施形態のバーコードとは、図９（ｂ）に示すように、一般的なバーコードと称されるリニアバーコードＢ（一次元コード）を指している。具体的には、リニアバーコードＢとは、ｉＴＦ、ＣＯＤＥ３９、ＣＯＤＥ１２８、ＥＡＮ１３、ＥＡＮ８、ＵＰＣＥ、ＮＷ−７等のバーコードを称している。図９（ｃ）に示すようなスタックドバーコードＳＢ（ＰＤＦ４１７、ＭｉｃｒｏＰＤＦ４１７等）や、図９（ａ）および図９（ｄ）に示すような二次元コードＨ（ＱＲコード、ＤａｔａＭａｔｒｉｘコード、Ｖｅｒｉコード、Ｍａｘｉコード）等も情報コードＰとして適用できるが、本実施形態においてはこれらの図９（ｂ）に示すリニアバーコードＢと、図９（ａ）、図９（ｃ）および図９（ｄ）に示すスタックドバーコードＳＢおよび２次元コードＨとの区別を行うことができるようになる。
【００３７】
尚、一般に、リニアバーコードＢと称されるバーコードの場合、明パターンたる直線状の白パターン（「スペースＢ２」）や直線状の暗パターンたる黒パターン（「バーＢ１」）が縞状に組み合わされて形成される。情報コード読取装置１がこのバーコードＢを読取る場合、これらのバーＢ１、スペースＢ２のそれぞれの長手方向に対して垂直方向に解読対象画素データを設定して解読することが望ましい。これは、バーコードＢを高精度に解読できるためである。したがって、例えば、バーコードＢが２次元的に傾いた状態で２次元画像センサ１５により画像取込みされると、解読対象画素データを「バー」の長手方向に対して垂直方向に設定して解読することにより高精度に解読できるようになる。
【００３８】
このような第１の実施形態で説明した処理を制御回路３が行うことにより次のような作用効果を奏する。すなわち「バー」（暗パターン）や「スペース」（明パターン）を検出するため、情報コードＰが存在すると推定される存在区画領域Ｗ中の区画領域Ｋ１について直線状の検査対象画素データ群Ｇ０〜Ｇ７を設定し、これらの検査対象画素データ群Ｇ０〜Ｇ７の輝度レベルに基づいてその極値と明暗変化数を算出し、これらの値を乗ずることにより評価点数を算出する。例えば、検査対象画素データ群Ｇ０〜Ｇ７がバーコードＢの「バー」の長手方向に一致した場合、輝度レベルはほぼ一定で極小となるとともに明暗変化数（白黒変化数）も０となる。例えば、検査対象画素データ群の長手方向がバーコードＢのスペースＢ２の長手方向に一致した場合、輝度レベルはほぼ一定で極大となるが明暗変化数が０となる。すなわち、検査対象画素データ群Ｇ０〜Ｇ７の延びる方向がバーコードＢのバーＢ１やスペースＢ２の長手方向に略一致する方向である場合、評価点数は低くなる。
【００３９】
逆に、例えば検査対象画素データ群Ｇ０〜Ｇ７の延びる方向がバーコードＢのバーＢ１やスペースＢ２の長手方向に対して垂直な方向である場合、輝度レベルの極値差は大きくなるとともに明暗変化数も大きくなる。したがって評価点数は高くなる。すなわち、検査対象画素データ群Ｇ０〜Ｇ７がバーコードＢのバーＢ１やスペースＢ２の長手方向に対して垂直方向に近づけば評価点数が高く、バーコードＢのバーＢ１やスペースＢ２の長手方向に対して平行方向に近づけば評価点数が低くなる。
【００４０】
したがって、バーコードＢに対して、直線状に検査対象画素データ群Ｇ０を設定し、この直線状の検査対象画素データ群Ｇ０を例えば回転させて検査区画Ｋ１全体を検査対象画素データ群Ｇ０〜Ｇ７により検査し、それぞれ評価点数を算出すると、評価点数が極大値をとる直線状の検査対象画素データ群Ｇ７と、評価点数が極小値をとる直線状の検査対象画素データ群Ｇ３が現れる。
【００４１】
他方、ＱＲコード等の２次元コードＨの場合、図３（ｂ）に示すように、明パターンたる例えば矩形状の白セルＨ１と、暗パターンたる例えば矩形状の黒セルＨ２とが矩形枠内に組み合わされて構成されているのが一般的である。したがって、前述したような評価方法を用い、直線状の検査対象画素データ群Ｇ０〜Ｇ７を設定して検査区画Ｋ１全体を検査するように評価点数を算出した場合、２次元コードＨの白セルＨ１と黒セルＨ２とは一般に無秩序に組み合わされているため、たとえ検査区画Ｋ１全体を検査するように算出したとしても評価点数に差が見られない（図８参照）。
【００４２】
したがって、制御回路３が、これらの評価点数のうち極大値もしくは極小値が取得される検査対象画素データ群Ｇ３、Ｇ７を特定することに基づいて、この検査対象画素データ群に基づいて存在区画領域Ｗに含まれることが推定される情報コードＰをバーコードＢであると区別することができる。したがって、バーコードＢか２次元コードＨかを解読前に区別できるようになり、短時間で高精度に情報コードＰを光学的に読取ることができるようになる。
【００４３】
（他の実施形態）
本発明は、上記実施形態に限定されるものではなく、例えば、以下に示す変形もしくは拡張が可能である。
情報コードＰの一種であるバーコードＢの一例として黒色のバーＢ１、白色のスペースＢ２からなる白黒パターンを例として示したが、これに限定されるものではなく、例えばカラーコード等にも適用可能である。
【００４４】
ステップＳ８からＳ１１において検査対象画素データ群Ｇ０〜Ｇ７を９０度の４分の１となる角度で回転させた実施形態を示したが、これに限定されるものではなく、どのような角度で回転させても良い。検査対象画素データ群Ｇ０〜Ｇ７のうちのある画素データ群に対して９０度に近接するような角度を取得できるように回転角度を設定することが望ましいが、どのような角度で検査対象画素データ群を回転させるようにしても良い。
【００４５】
傾き角度θが誤差範囲内に揃っている傾き角度θを対象としてその平均角度を読取対象角度として設定した実施形態を示したが、これに限定されるものではなく、評価点数の極小値が取得された直線状の検査対象画素データ群Ｇ３に対し垂直な角度もしくは垂直に近い角度をなす検査対象画素データ群Ｇ７をバーコードＢの読取対象画素データ群として設定するようにしても良い。
【００４６】
上述実施形態の制御方法に代えて、次のような制御方法でも良い。すなわち、制御回路３が、検査対象画素データ群Ｇ０〜Ｇ７を設定し当該検査対象画素データ群Ｇ０〜Ｇ７を検査区画Ｋ１全体を検査するようにした後、その評価点数の極大値および極小値を取得し当該極大値および極小値が取得される検査対象画素データ群Ｇ３およびＧ７が交差する角度を特定し、この角度が９０度もしくは９０度に近接する値となることを条件として、区画領域Ｋ１に含まれることが推定される情報コードＰをバーコードＢと区別するようにしても良い。これにより上述実施形態とほぼ同様の作用効果が得られる。また、さらに詳細な角度を求めて算出するようにしても良い。
【図面の簡単な説明】
【００４７】
【図１】本発明の第１の実施形態を示す概略的なブロック構成図
【図２】（ａ）検査区画内における画像データを模式的に示す図（バーコードの場合）、（ｂ）情報コードの存在推定領域を模式的に示す図（バーコードの場合）
【図３】（ａ）検査区画内における画像データを模式的に示す図（２次元コードの場合）、（ｂ）情報コードの存在推定領域を模式的に示す図（２次元コードの場合）
【図４】動作を示すフローチャート（その１）
【図５】動作を示すフローチャート（その２）
【図６】（ａ）区画領域が細かい場合の図２（ｂ）相当図、（ｂ）区画領域に含まれる画像データを模式的に示す図、（ｃ）区画領域を縦横に同一個数結合して検査区画として設定したことを表す図
【図７】（ａ）〜（ｃ）検査対象画素データ群を細かい角度で回転させた状態を模式的に表す図
【図８】評価点数対傾き角度を示す図（（ａ）バーコードの場合、（ｂ）２次元コードの場合）
【図９】（ａ）〜（ｄ）バーコードおよび２次元コードの一例を示す図
【符号の説明】
【００４８】
図面中、１は情報コード読取装置、２は電池、３は制御回路を示す。
【図１】
2006059073.tif 000003
【図２】
2006059073.tif 000004
【図３】
2006059073.tif 000005
【図４】
2006059073.tif 000006
【図５】
2006059073.tif 000007
【図６】
2006059073.tif 000008
【図７】
2006059073.tif 000009
【図８】
2006059073.tif 000010
【図９】
2006059073.tif 000011