(57)【要約】  【課題】ポジティブコードとネガティブコードとでコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる光学読取装置を提供することを目的とする。  【解決手段】ポジティブコード及びネガティブコードをいずれも読取可能なオートモードが選択されている場合に、撮像により得られたオリジナル画像データと、そのオリジナル画像データを白黒反転させることにより生成された反転画像データとが結合された結合画像データを生成する。生成された結合画像データからコード領域抽出部１７においてコード領域を抽出し、その抽出したコード領域に対して、デコード処理部１８においてポジ認識アルゴリズム又はネガ認識アルゴリズムの一方に基づいてデコード処理を行う。【選択図】          図３
2007034546.tif 000002
【特許請求の範囲】
【請求項１】
読取対象物を撮影し、オリジナル画像データを生成する撮像手段と、
上記オリジナル画像データの明度を反転させた反転画像データを生成する明度反転手段と、
上記オリジナル画像データ及び上記反転画像データを結合し、結合画像データを生成する画像結合手段と、
上記結合画像データに対し、ポジティブ表記されたコード及びネガティブ表記されたコードのいずれか一方を対象とする読取処理を行うコード読取手段とを備えたことを特徴とする光学読取装置。
【請求項２】
上記コード読取手段は、上記結合画像データから上記コードが表記された領域をコード領域として抽出するコード領域抽出手段と、
抽出された上記コード領域に基づいて読取データを生成するデータ抽出手段とを備え、
上記コード領域抽出手段は、第１判定基準に基づいてコード領域を抽出する第１領域抽出手段と、
上記第１領域抽出手段によりコード領域が抽出されなかった場合に、上記第１判定基準とは異なる第２判定基準に基づいてコード領域を抽出する第２領域抽出手段とを備えたことを特徴とする請求項１に記載の光学読取装置。
【請求項３】
上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データをオーバーラップさせることなく配置して上記結合画像データを生成することを特徴とする請求項１に記載の光学読取装置。
【請求項４】
上記オリジナル画像データは矩形形状からなり、
上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データを隣接させて配置することを特徴とする請求項３に記載の光学読取装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、光学読取装置に係り、更に詳しくは、１次元コードや２次元コードなどのコードに対してデコード処理（読取処理）を行う方法の改良に関する。
【背景技術】
【０００２】
従来から、工場における生産ライン等では、搬送される物品（部品など）や物品を保持するパレットにバーコードが表記された被写体を付与しておいて、バーコードから識別情報を読み取ることにより、物品の種類を識別するシステムが利用されている。バーコードは、発光素子及び受光素子を備えた光学読取装置により光学的に読み取られ、光学読取装置は、読み取ったバーコードに対してデコード処理を行うことにより、そのバーコードが表す識別情報を認識する（例えば、特許文献１）。
【０００３】
光学読取装置により読み取り可能なコードとしては、バーコードのような１次元コードの他に、ＱＲコードなどの２次元コードが一般的に知られている。このような一般的なコードにおいては、白地に黒色でコード領域が表記されることにより、コード領域の明度が地色の明度よりも低くなっている。この種のコードを読み取る際には、所定の閾値よりも明度が低い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取ることができる。
【０００４】
最近では、コード領域とその周囲の領域とが白黒反転されたコードが利用される場合もある。このようなコードは、例えば、黒色のシートに対していわゆるレーザマーキング方式によりレーザ光を選択的に照射して、コード領域を白色で表記することにより作成され、コード領域の明度が地色の明度よりも高くなっている。この種のコードを読み取る際には、所定の閾値よりも明度が高い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取ることができる。
【０００５】
光学読取装置の中には、コード領域が黒色で表記されることによりポジティブに表された通常のコード（以下、「ポジティブコード」と呼ぶ。）を読み取ることもできるし、白黒反転されることによりネガティブに表されたコード（以下、「ネガティブコード」と呼ぶ。）を読み取ることもできるようになっているものがある。この種の光学読取装置は、例えば、ポジティブコードのみを読み取ることができるノーマルモードと、ネガティブコードのみを読み取ることができるネガモードと、ポジティブコード及びネガティブコードのいずれも読み取ることができるオートモードとを実行でき、いずれのモードを実行するかをユーザが選択することができる。
【０００６】
図７は、コード読取処理の第１の従来例を示すフローチャートである。この従来例の光学読取装置は、まず、被写体を撮像することによりオリジナル画像データを生成し（ステップＳ２０１）、そのオリジナル画像データをメモリに記憶した後、選択されているモードに応じて異なる処理を行う。メモリには、ポジティブコードを認識するためのアルゴリズム（ポジ認識アルゴリズム）が記憶されている。ポジ認識アルゴリズムは、所定の閾値よりも明度が低い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取るための手順を表すプログラムである。
【０００７】
デコード処理の際には、被写体からコード領域と思われる対象領域（例えば、矩形領域）を抽出する。そして、抽出した対象領域がコード領域であると判定した場合に、そのコード領域に対してデコード処理を行う。より具体的には、デコード処理部は、抽出した対象領域に対して、その対象領域がコード領域であるか否かについて２種類の判定処理を順番に行う。１回目の判定処理（第１判定処理）では、抽出したすべての対象領域に対して、対象領域がコード領域であると判定される可能性の高い判定処理を行う。被写体にコード領域が含まれていれば、通常は、第１判定処理でコード領域が抽出される。
【０００８】
しかし、コード領域に付着した汚れなどの各種要因により、被写体にコード領域が含まれている場合でも、稀に、第１判定処理でコード領域が抽出できない場合がある。このような場合を想定して、第１判定処理でコード領域が抽出できなかった場合には、その後の２回目の判定処理（第２判定処理）において、抽出したすべての対象領域に対して、対象領域がコード領域であると判定される可能性の高い判定処理、すなわち、第１判定処理よりも多くの判定基準を用いて判定を行う処理が実行されることにより、多面的なアプローチがなされる。第２判定処理では、第１判定処理よりも多くの判定基準を用いて判定を行うので、判定処理に要する時間が第１判定処理よりも長くなる。
【０００９】
ノーマルモードが選択されている場合には（ステップＳ２０２）、メモリに記憶されているポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ２０３）。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。
【００１０】
ノーマルモードでは、例えば、ステップＳ２０１の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ２０３のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からポジティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである。デコード処理では、被写体におけるコード領域の位置によって、コード領域が抽出されるまでに要する時間に誤差が生じるが、ここでのデコード処理時間Ｔｄは、コード領域の位置が異なる場合の平均時間を示している。
【００１１】
ネガモードが選択されている場合には（ステップＳ２０２）、メモリに記憶されているオリジナル画像データの明度が反転されることにより反転画像データが生成される（ステップＳ２０４）。これにより、被写体から読み取った画像の中にネガティブコードが含まれている場合には、そのネガティブコードがポジティブコードに変換される。したがって、その後にポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理を行うことにより（ステップＳ２０５）、ポジティブコードに変換されたネガティブコードを読み取ることができる。しかし、被写体から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。
【００１２】
ネガモードでは、例えば、ステップＳ２０１の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ２０４の反転処理時間Ｔｒが５ｍｓｅｃ、ステップＳ２０５のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からネガティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｒ＋Ｔｄ＝１０１ｍｓｅｃである。
【００１３】
オートモードが選択されている場合には（ステップＳ２０２）、まず、ポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ２０６）。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば（ステップＳ２０７でＹｅｓ）、そのポジティブコードが読み取られる。ポジティブコードが読み取られなかった場合には（ステップＳ２０７でＮｏ）、メモリに記憶されているオリジナル画像データの明度が反転されることにより反転画像データが生成された後（ステップＳ２０８）、ポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理が行われる（ステップＳ２０９）。
【００１４】
図８は、オートモードにおけるコード読取処理に要する時間について説明するためのタイムチャートであり、（ａ）は第１の従来例の場合、（ｂ）は本発明の場合を示している。第１の従来例におけるオートモードでは、例えば、ステップＳ２０１の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ２０６のデコード処理時間Ｔｄが２６ｍｓｅｃであり、被写体から読み取った画像の中にポジティブコードが含まれていれば、処理の開始からポジティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである（図８（ａ）参照）。この例では、第１判定処理でコード領域が抽出された場合を示しているが、稀に、第１判定処理では抽出できず、その後の第２判定処理で抽出される場合がある。このような場合には、破線で示すように、その分の遅延時間Ｔｎ（例えば、２７０ｍｓｅｃ）を要する。
【００１５】
被写体から読み取った画像の中にポジティブコードではなくネガティブコードが含まれている場合には、ステップＳ２０６のデコード処理ではコード領域が抽出されず、反転処理が行われた後（ステップＳ２０８）、生成された反転画像データに対するデコード処理が行われる（ステップＳ２０９）。この場合、ステップＳ２０６のデコード処理において、常に第１判定処理及び第２判定処理が行われることとなり、その分の遅延時間Ｔｎ（＝２７０ｍｓｅｃ）に加えて、ステップＳ２０８の反転処理時間Ｔｒ（＝５ｍｓｅｃ）、及びステップＳ２０９のデコード処理時間Ｔｄ（＝２６ｍｓｅｃ）を要する。したがって、被写体の画像の中にネガティブコードが含まれている場合、処理の開始からネガティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＋Ｔｎ＋Ｔｒ＋Ｔｄ＝３９６ｍｓｅｃとなる（図８（ａ）参照）。
【００１６】
図９は、コード読取処理の第２の従来例を示すフローチャートである。この従来例の光学読取装置は、第１の従来例と同様に、まず、被写体を撮像することによりオリジナル画像データを生成し（ステップＳ３０１）、そのオリジナル画像データをメモリに記憶した後、選択されているモードに応じて異なる処理を行う。メモリには、ポジティブコードを認識するためのアルゴリズム（ポジ認識アルゴリズム）と、ネガティブコードを認識するためのアルゴリズム（ネガ認識アルゴリズム）とが記憶されている。ネガ認識アルゴリズムは、ポジ認識アルゴリズムとは異なるアルゴリズムであり、所定の閾値よりも明度が高い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取るための手順を表すプログラムである。
【００１７】
ノーマルモードが選択されている場合には（ステップＳ３０２）、メモリに記憶されているポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ３０３）。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。ノーマルモードでは、例えば、ステップＳ３０１の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ３０３のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からポジティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである。
【００１８】
ネガモードが選択されている場合には（ステップＳ３０２）、メモリに記憶されているネガ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ３０４）。したがって、被写体から読み取った画像の中にネガティブコードが含まれていれば、そのネガティブコードが読み取られる。しかし、被写体から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。ネガモードでは、例えば、ステップＳ３０１の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ３０４のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からネガティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである。
【００１９】
オートモードが選択されている場合には（ステップＳ３０２）、ポジティブコード及びネガティブコードの両方を読み取ることができるようなデコード処理が行われる（ステップＳ３０５）。このようなデコード処理を行うためには、ポジティブコード及びネガティブコードの両方を認識するための認識アルゴリズムが必要となるが、このような認識アルゴリズムを作成するためには、既存のソフトウェアに相当の設計変更を加えなければならず、手間がかかる。また、ステップＳ３０５のデコード処理には、ポジティブコード又はネガティブコードの一方のみを読み取るためのデコード処理時間Ｔｄ（＝２６ｍｓｅｃ）を単純に２倍した時間（＝５２ｍｓｅｃ）よりも相当長い処理時間を要するため、処理の開始からポジティブコード又はネガティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ>>Ｔｉ＋２Ｔｄ＝１２２ｍｓｅｃとなる。
【特許文献１】特開２００３−６５６９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上記第１の従来例では、図８（ａ）に示すように、オートモードでポジティブコードが読み取られるまでの時間Ｔｔが９６ｍｓｅｃであり、比較的短時間であるのに対して、オートモードでネガティブコードが読み取られるまでの時間Ｔｔが３９６ｍｓｅｃと長く、それらの差が非常に大きい。したがって、被写体にポジティブコードが含まれる場合とネガティブコードが含まれる場合とで、コードが読み取られるまでの平均時間に大きな差が生じ、生産ラインに適用しにくい場合がある。
【００２１】
一方、上記第２の従来例では、上述の通り、既存のソフトウェアに相当の設計変更を加えて、ポジティブコード及びネガティブコードの両方を認識するための認識アルゴリズムを作成しなければならない。しかも、そのような認識アルゴリズムを用いてデコード処理を行っても、コードが読み取られるまでの時間を効果的に短縮することはできない。また、第２の従来例では、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がある。
【００２２】
本発明は、上記の事情に鑑みてなされたものであり、ポジティブコードとネガティブコードとでコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる光学読取装置を提供することを目的とする。さらに、本発明は、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができる光学読取装置を提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明による光学読取装置は、読取対象物を撮影し、オリジナル画像データを生成する撮像手段と、上記オリジナル画像データの明度を反転させた反転画像データを生成する明度反転手段と、上記オリジナル画像データ及び上記反転画像データを結合し、結合画像データを生成する画像結合手段と、上記結合画像データに対し、ポジティブ表記されたコード及びネガティブ表記されたコードのいずれか一方を対象とする読取処理を行うコード読取手段とを備えて構成される。
【００２４】
このような構成によれば、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、ポジティブ表記されたコード（ポジティブコード）及びネガティブ表記されたコード（ネガティブコード）のいずれか一方を対象とする読取処理を行うことにより、ポジティブコード及びネガティブコードのいずれを読み取る場合でも、コードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。
【００２５】
例えば、ポジ認識アルゴリズムを用いた場合には、読取対象にポジティブコードが含まれていれば、オリジナル画像データからポジティブコードを読み取ることができ、読取対象にネガティブコードが含まれていれば、反転画像データからポジティブコードに変換されたネガティブコードを読み取ることができる。一方、ネガ認識アルゴリズムを用いた場合には、読取対象にネガティブコードが含まれていれば、オリジナル画像データからネガティブコードを読み取ることができ、読取対象にポジティブコードが含まれていれば、反転画像データからネガティブコードに変換されたポジティブコードを読み取ることができる。したがって、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができ、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【００２６】
本発明による光学読取装置は、上記コード読取手段は、上記結合画像データから上記コードが表記された領域をコード領域として抽出するコード領域抽出手段と、抽出された上記コード領域に基づいて読取データを生成するデータ抽出手段とを備え、上記コード領域抽出手段は、第１判定基準に基づいてコード領域を抽出する第１領域抽出手段と、上記第１領域抽出手段によりコード領域が抽出されなかった場合に、上記第１判定基準とは異なる第２判定基準に基づいてコード領域を抽出する第２領域抽出手段とを備えて構成される。
【００２７】
例えば、上記第２領域抽出手段による判定処理時間は、上記第１領域抽出手段による判定処理時間よりも長い。したがって、第１領域抽出手段によりコード領域が抽出された場合と、第１領域抽出手段ではコード領域が抽出されず、第２領域抽出手段でコード領域が抽出された場合とでは、コードが読み取られるまでの時間の差が大きくなる。しかし、本発明のように、結合画像データの中からポジティブコード及びネガティブコードを同時に読み取るような構成であれば、ポジティブコード及びネガティブコードのいずれが含まれているかによってコードが読み取られるまでの平均時間に大きな差が生じるのを効果的に防止できる。
【００２８】
本発明による光学読取装置において、上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データをオーバーラップさせることなく配置して上記結合画像データを生成する。このような構成によれば、オーバーラップさせることなく配置されたオリジナル画像データ及び反転画像データに対して、読取処理を順次に行うことができる。
【００２９】
本発明による光学読取装置において、上記オリジナル画像データは矩形形状からなり、上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データを隣接させて配置する。このような構成によれば、オリジナル画像データ及び反転画像データを隣接させて配置するので、読取処理を連続的に行うことができ、オリジナル画像データ及び反転画像データの間に一定の領域が形成されている場合と比較して、コードが読み取られるまでの時間を短縮できる。
【発明の効果】
【００３０】
本発明によれば、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、ポジティブコード及びネガティブコードのいずれか一方を対象とする読取処理を行うことにより、ポジティブコード及びネガティブコードのいずれを読み取る場合でも、コードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。また、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができ、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【発明を実施するための最良の形態】
【００３１】
図１は、本発明の実施の形態による光学読取装置１の一構成例を示すブロック図である。この光学読取装置１は、例えば、工場における生産ラインに適用され、生産ラインの搬送経路上を搬送される物品（部品など）又はその物品を保持するパレットに予め取り付けられている被写体（読取対象物）２に表されたコードを光学的に読み取るものである。この光学読取装置１は、ケーブルを介して、撮影画像及び解析結果をリアルタイムに画面表示させるためのモニタや、画像データ及び解析データを取り込んで各種制御を行うパーソナルコンピュータなどの外部機器に接続される。
【００３２】
この光学読取装置１は、ＣＰＵ(Central Processing Unit：中央処理装置)を含む制御部３の他、この制御部３に対してそれぞれ電気的に接続されたＣＭＯＳ(Complementary Metal Oxide Semiconductor：相補型金属酸化膜半導体)イメージセンサ４、ポインタ用ＬＤ(Laser Diode：レーザダイオード)５、照明用ＬＥＤ(Light Emitting Diode：発光ダイオード)６、ＦＰＧＡ(Field Programming Gate Array)７、反転回路８、メモリ９、モード選択スイッチ１０及び反転処理部１４を備えている。
【００３３】
ポインタ用ＬＤ５は、ポインタ１１となる照射光を発生させる発光素子であり、読み取り可能な矩形エリア及びその中心位置を被写体２上に表示することができる。照明用ＬＥＤ６は、被写体２の読み取り対象を照明するための照射光を発生させる発光素子である。
【００３４】
ＣＭＯＳイメージセンサ（撮像手段）４は、撮像回路１２及びＡ／Ｄ(Analog/Digital)変換回路１３を備えている。撮像回路１２は、受光量に応じた画素信号を出力する矩形の半導体チップからなり、受光素子として多数のフォトダイオードがマトリックス状に配置されている。各受光素子には、受光量に応じて生成される画素信号を受光素子ごとに電力増幅する増幅素子が配置され、受光素子及び増幅素子から１つの画素が構成される。照明用ＬＥＤ６から照射された光の被写体２における反射光を各受光素子で受光することにより、撮像回路１２において画像データ（アナログデータ）が生成される。撮像回路１２において生成されたアナログデータは、所定の補正処理が施された後、Ａ／Ｄ変換回路１３に入力される。
【００３５】
Ａ／Ｄ変換回路１３は、入力されたアナログデータをＭビットのデジタルデータに変換する画像データの量子化回路である。ここでは、電圧値が１０ビット(bit)に量子化されるものとし、受光量が１０２４階調の明度により表される。
【００３６】
ＦＰＧＡ７は、量子化された画像データをビット数がより小さな画像データに変換する画像データ圧縮回路である。すなわち、ＦＰＧＡ７は、ＣＭＯＳイメージセンサ４のＡ／Ｄ変換回路１３から入力されるＭビットのデジタルデータをＮビット（Ｎ<Ｍ）のデジタルデータに変換して出力する。ここでは、１０ビットの画像データをビット数がより小さい８ビットのデジタルデータに変換するものとする。つまり、１０２４階調の明度で表された画像データは、情報量が変換前の画像データの１／４となる２５６階調の明度で表された画像データに変換される。
【００３７】
反転回路８は、ＦＰＧＡ７から入力された画像データの各画素をビット反転する処理（反転処理）を行うことにより、明度が反転された反転画像データを生成する。すなわち、８ビットの画像データにおける各ビットについて、「０」又は「１」のデータを相互に反転することにより、２５６階調における明度レベルＫで表された画像データを、明度レベル（２５５−Ｋ）の画像データに変換する。例えば、明度レベル「０」の画像データは明度レベル「２５５」の画像データに変換され、明度レベル「１０」の画像データは明度レベル「２４５」の画像データに変換される。これにより、黒色の画素は白色に変換され、白色の画素は黒色に変換されることとなる。
【００３８】
反転回路８で生成された反転画像データは、制御部３に入力される。制御部３は、反転回路８において反転処理を行うべき旨の指示信号を出力し、反転回路８は、その指示信号を受信した場合にのみ反転処理を行う。したがって、制御部３から指示信号が出力されなければ、反転回路８における反転処理は行われず、ＦＰＧＡ７から出力された画像データがそのまま制御部３に入力される。制御部３から反転回路に指示信号を出力するか否かは、後述する複数のモード（ノーマルモード、ネガモード及びオートモード）のうちいずれのモードが実行されるかに応じて決定される。複数のモードのうちいずれのモードを実行するかは、ユーザがモード選択スイッチ１０を操作することにより選択できる。
【００３９】
反転処理部（明度反転手段）１４は、反転回路８を介さずに制御部３に入力された画像データに対して、反転回路８と同様の反転処理をソフト処理により実行し、明度が反転された反転画像データを生成する。制御部３は、ユーザが選択したモードに応じて、反転処理部１４による反転処理を実行する。
【００４０】
メモリ９は、オリジナル画像データ記憶部９Ａ、反転画像データ記憶部９Ｂ及び認識アルゴリズム記憶部９Ｄを備えている。オリジナル画像データ記憶部９Ａは、ＦＰＧＡ７から反転回路８を介さずに制御部３に入力された画像データ、すなわち、反転処理が施されていない画像データ（オリジナル画像データ）を記憶する。反転画像データ記憶部９Ｂは、ＦＰＧＡ７から反転回路８を介して制御部３に入力された画像データ、すなわち、反転処理が施された画像データ（反転画像データ）を記憶する。
【００４１】
メモリ９におけるオリジナル画像データ記憶部９Ａ及び反転画像データ記憶部９Ｂは、連続する領域として予め決定されており、それぞれにオリジナル画像データ及び反転画像データが記憶されることにより、連続した結合画像データ９Ｃが生成されるようになっている。したがって、反転回路８を介さずに制御部３に入力されたオリジナル画像データをオリジナル画像データ記憶部９Ａに記憶しつつ、そのオリジナル画像データに対して反転処理部１４で反転処理を施し、反転画像データを反転画像データ記憶部９Ｂに記憶することにより、結合画像データ９Ｃを生成することができる。
【００４２】
ただし、このような構成に限らず、メモリ９に結合画像データ記憶部を設けて、オリジナル画像データ記憶部９Ａに記憶されているオリジナル画像データと、反転画像データ記憶部９Ｂに記憶されている反転画像データとを結合する処理を行うことにより結合画像データを生成し、その結合画像データを結合画像データ記憶部に記憶するような構成であってもよい。
【００４３】
この光学読取装置１は、デコード処理において、コード領域が黒色で表されることによりポジティブ表記された通常のコード（ポジティブコード）を読み取ることもできるし、白黒反転されることによりネガティブ表記されたコード（ネガティブコード）を読み取ることもできる。メモリ９の認識アルゴリズム記憶部９Ｄには、デコード処理を行う際に用いる認識アルゴリズムが記憶されている。この認識アルゴリズムは、ポジティブコードを認識するための手順を表すプログラムである。
【００４４】
図２は、光学読取装置１により読み取り可能なコードの構成例を示す図であり、（ａ）は１次元コードの一例であるバーコード２０の概略図、（ｂ）は２次元コードの一例であるＱＲコード３０の概略図を示している。
【００４５】
図２（ａ）に示すバーコード２０では、幅の異なる複数の棒状のコード領域２１が黒色で表記されている。複数のコード領域２１はそれぞれ同じ長さを有し、互いに所定間隔を隔てて平行に延びている。これにより、両端のコード領域２１で挟まれた矩形の領域（コード配置領域２２）内に複数のコード領域２１が１次元的に配置されている。コード領域２１の周囲の領域、すなわち、コード配置領域２２内におけるコード領域２１以外の領域及びコード配置領域２２の外側の領域は、白色領域とされている。コード配置領域２２の外側における左右両側の白色領域は、いわゆるクワイエットゾーン２３であり、コード配置領域２２を検知することができるように所定幅を有している。
【００４６】
図２（ｂ）に示すＱＲコード３０では、矩形のコード配置領域３１内に所定のパターンで黒色のコード領域３２が２次元的に配置されている。図２（ｂ）では、コード領域３２の詳細を省略し、コード配置領域３１内にハッチングを施しているが、コード配置領域３１には所定のパターンでコード領域３２が表記され、コード領域３２の周囲の領域、すなわち、コード配置領域３１内におけるコード領域３２以外の領域及びコード配置領域３１の外側の領域は、白色領域とされている。
【００４７】
コード配置領域３１の外側を取り囲む白色領域はクワイエットゾーン３３であり、コード配置領域３１を検知することができるように所定幅を有している。図２（ｂ）に示すように、ＱＲコード３０の４隅のうちの３隅には、ファインダーパターンと呼ばれる矩形のパターン３４が配置されており、これらのファインダーパターン３４により、そのコードがＱＲコード３０である旨を表すとともに、ＱＲコード３０の指向性を規定している。
【００４８】
このように、１次元コードや２次元コードなどの一般的なコードでは、コード領域が矩形のコード配置領域内に配置されているので、被写体２から矩形領域を検出することにより、コード領域と思われる矩形領域を抽出することができる。しかし、被写体２によっては、コード以外の矩形領域を有している場合があるので、抽出した矩形領域がコード領域であるか否かを判定する必要がある。
【００４９】
図３は、制御部３の主な動作について示した機能ブロック図である。制御部３は、ＣＰＵがプログラムを実行することにより、モード選択部１５、矩形領域抽出部１６、コード領域抽出部１７及びデコード処理部１８として機能する。コード領域抽出部１７は、第１判定処理部１７Ａ及び第２判定処理部１７Ｂからなる。矩形領域抽出部１６、コード領域抽出部１７及びデコード処理部１８は、コード読取処理を行うためのコード読取手段を構成している。
【００５０】
モード選択スイッチ１０の操作に基づくモード選択信号は、モード選択部１５に入力される。オートモードが選択されている場合には、オリジナル画像データ及び反転画像データが結合画像データとして矩形領域抽出部１６に入力される。ノーマルモードが選択されている場合には、オリジナル画像データが矩形領域抽出部１６に入力される。ネガモードが選択されている場合には、反転画像データが矩形領域抽出部１６に入力される。
【００５１】
矩形領域抽出部１６は、被写体２から矩形領域を抽出し、その抽出された矩形領域から、コード領域抽出部１７においてコード領域が抽出される。そして、コード領域抽出部１７で抽出されたコード領域に基づいて、デコード処理部（データ抽出手段）１８がデコード処理を行うことにより、読取データが生成される。コード領域抽出部（コード領域抽出手段）１７は、矩形領域抽出部１６で抽出した矩形領域に対して、その矩形領域がコード領域であるか否かについて２種類の判定処理を順番に行う。第１判定処理部（第１領域抽出手段）１７Ａが行う１回目の判定処理（第１判定処理）では、抽出したすべての矩形領域に対して、所定の第１判定基準に基づいて矩形領域がコード領域であると判定される可能性の高い判定処理を行う。被写体２にコード領域が含まれていれば、通常は、第１判定処理でコード領域が抽出される。
【００５２】
しかし、コード領域に付着した汚れなどの各種要因により、被写体２にコード領域が含まれている場合でも、稀に、第１判定処理でコード領域が抽出できない場合がある。このような場合を想定して、第１判定処理でコード領域が抽出できなかった場合には、その後に第２判定処理部（第２領域抽出手段）１７Ｂが行う２回目の判定処理（第２判定処理）において、抽出したすべての矩形領域に対して、所定の第２判定基準に基づいて矩形領域がコード領域であると判定される可能性の高い判定処理、すなわち、第１判定処理よりも多くの判定基準を用いて判定を行う処理が実行されることにより、多面的なアプローチがなされる。第２判定処理では、第１判定処理よりも多くの判定基準を用いて判定を行うので、判定処理に要する時間が第１判定処理よりも長くなる。
【００５３】
図４は、コード読取処理の態様を示すフローチャートである。本実施の形態では、図７及び図９に示したような従来例とは異なり、ノーマルモード及びオートモードの場合と、ネガモードの場合とで、異なる態様で撮像を行う。すなわち、ノーマルモードが選択されている場合、及びオートモードが選択されている場合には、図１に示すＦＰＧＡ７から出力された画像データがそのまま制御部３に入力されることにより、オリジナル画像データがメモリ９に記憶される。一方、ネガモードが選択されている場合には、制御部３から反転回路８に指示信号が入力されることにより、ＦＰＧＡ７から出力された画像データが反転回路８を介して制御部３に入力され、生成された反転画像データがメモリ９に記憶される。
【００５４】
このように、ネガモードでは、撮像と同時に（並行して）反転画像データが生成されるので、メモリ９に一旦記憶されたオリジナル画像データが白黒反転されて反転画像データが生成されるような構成と比較して、反転画像データを生成するのに要する時間を短縮できる。ただし、このような構成に限らず、被写体２を撮像することによりメモリ９にオリジナル画像データを一旦記憶し、そのオリジナル画像データを白黒反転することにより反転画像データを生成するような構成であってもよい。
【００５５】
ノーマルモードが選択されている場合には（ステップＳ１０１）、ＣＭＯＳイメージセンサ４から出力されたオリジナル画像データが反転回路８を介さずに制御部３に入力されてメモリ９に記憶されることにより撮像が行われる（ステップＳ１０２）。そして、メモリ９に記憶されたオリジナル画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ１０３）。したがって、被写体２から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体２から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。
【００５６】
ノーマルモードでは、例えば、ステップＳ１０２の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ１０３のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からポジティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである。デコード処理では、被写体２におけるコード領域の位置によって、コード領域が抽出されるまでに要する時間に誤差が生じるが、ここでのデコード処理時間Ｔｄは、コード領域の位置が異なる場合の平均時間を示している。
【００５７】
ネガモードが選択されている場合には（ステップＳ１０１）、ＣＭＯＳイメージセンサ４から出力されたオリジナル画像データが反転回路８で反転され、生成された反転画像データが制御部３に入力されてメモリ９に記憶されることにより撮像が行われる（ステップＳ１０４）。そして、メモリ９に記憶された反転画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ１０５）。被写体２から読み取った画像の中にネガティブコードが含まれている場合には、オリジナル画像データが白黒反転されて反転画像データが生成されることにより、そのネガティブコードがポジティブコードに変換される。したがって、ポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理を行うことにより、ポジティブコードに変換されたネガティブコードを読み取ることができる。しかし、被写体２から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。
【００５８】
ネガモードでは、例えば、ステップＳ１０４の撮像時間Ｔｉが７０ｍｓｅｃ、ステップＳ１０５のデコード処理時間Ｔｄが２６ｍｓｅｃであり、処理の開始からネガティブコードが読み取られるまでの時間Ｔｔは、Ｔｔ＝Ｔｉ＋Ｔｄ＝９６ｍｓｅｃである。
【００５９】
オートモードが選択されている場合には（ステップＳ１０１）、ＣＭＯＳイメージセンサ４から出力されたオリジナル画像データが反転回路８を介さずに制御部３に入力されることにより撮像が行われる（ステップＳ１０６）。そして、制御部３に入力されたオリジナル画像データ及び反転処理部１４により反転された反転画像データがメモリ９に記憶されることにより結合画像データが生成され（ステップＳ１０７）、その生成された結合画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる（ステップＳ１０８）。
【００６０】
ステップＳ１０７の処理では、反転処理部１４による反転処理を行い、生成された反転画像データをそのままオリジナル画像データに結合するだけなので、その処理に要する時間Ｔｒは反転処理に要する時間と同じであり、例えば５ｍｓｅｃである。ステップＳ１０８のデコード処理は、オリジナル画像データ及び反転画像データを結合した結合画像データに対して行われるので、その処理に要する時間ＴＤは、オリジナル画像データに対するデコード処理に要する時間又は反転画像データに対するデコード処理に要する時間を単純に２倍した時間（Ｔｄ×２）となり、例えば５２ｍｓｅｃである。
【００６１】
図５は、結合画像データに基づく画像５０の一例を示す概略図である。結合画像データに基づく画像５０は、図５に示すように、それぞれ矩形形状からなるオリジナル画像データに基づく画像５１と反転画像データに基づく画像５２とが並べて結合された画像である。図５に示す例では、オリジナル画像データに基づく画像５１と反転画像データに基づく画像５２とがオーバーラップしないように隣接して配置されている。
【００６２】
各画像５１，５２をオーバーラップさせることなく配置することにより、各画像５１，５２に対する読取処理を順次に行うことができる。また、各画像５１，５２を隣接して配置することにより、読取処理を連続的に行うことができ、各画像５１，５２の間に一定の領域が形成されている場合と比較して、コードが読み取られるまでの時間を短縮できる。ただし、このような態様に限らず、各画像５１，５２の間に一定の領域が形成されていてもよい。また、図５に示すように各画像５１，５２が上下に並べて結合されるのではなく、左右に並べて結合されてもよい。また、各画像５１，５２がコードの読み取りに影響を与えない範囲でオーバーラップしていてもよい。
【００６３】
図５に示す例において、オリジナル画像データに基づく画像５１には、ポジティブコードからなるＱＲコード３０の他に、所定の文字を含む矩形領域４１と、黒色領域からなる矩形領域４２が含まれている。工場における生産ラインで搬送される物品に付与される被写体２には、通常、コード以外に作業者が視認可能な品番等の文字情報が表記されており、これらの文字情報を矩形の枠で囲むなどして矩形領域が表記されている場合が多い。
【００６４】
この図５に示すような結合画像データに対してデコード処理を行った場合には、オリジナル画像データに対応する画像５１から、ＱＲコード３０に対応する矩形領域３１及び他の２つの矩形領域４１，４２が抽出され、反転画像データに対応する画像５２から、上記３つの矩形領域３１，４１，４２にそれぞれ対応する反転画像からなる３つの矩形領域４３，４４，４５が抽出される。そして、それらの抽出された矩形領域３１，４１，４２，４３，４４，４５の中から、ＱＲコード３０に対応する矩形領域のみがコード配置領域３１であると判定され、そのコード配置領域３１内に配置されたコード領域３２に対してデコード処理が行われる。
【００６５】
図６は、結合画像データに基づく画像５０の他の例を示す概略図である。被写体２にネガティブコードが表記されている場合には、図６に示すように、オリジナル画像データに基づく画像５１には、ネガティブコードに対応する矩形領域４３及び他の矩形領域４４，４５が含まれる。これに対して、反転画像データに基づく画像５２には、ネガティブコードを白黒反転することにより得られたポジティブコードからなるＱＲコード３０が含まれるとともに、矩形領域４４，４５にそれぞれ対応する矩形領域４１，４２が含まれる。
【００６６】
この図６に示すような結合画像データに対してデコード処理を行った場合には、反転画像データに対応する画像５２から、ＱＲコード３０に対応する矩形領域３１及び他の２つの矩形領域４１，４２が抽出され、オリジナル画像データに対応する画像５１から、上記３つの矩形領域３１，４１，４２にそれぞれ対応する３つの矩形領域４３，４４，４５が抽出される。そして、それらの抽出された矩形領域３１，４１，４２，４３，４４，４５の中から、ＱＲコード３０に対応する矩形領域のみがコード配置領域３１であると判定され、そのコード配置領域３１内に配置されたコード領域３２に対してデコード処理が行われる。
【００６７】
本実施の形態では、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、既存のポジ認識アルゴリズムに基づくデコード処理を行うことにより、ポジティブコード及びネガティブコードのいずれも読み取ることができる。すなわち、被写体２にポジティブコードが含まれていれば、オリジナル画像データからポジティブコードを読み取ることができ、被写体２にネガティブコードが含まれていれば、反転画像データからポジティブコードに変換されたネガティブコードを読み取ることができる。したがって、図９に示した第２の従来例とは異なり、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対するデコード処理を行うことができるとともに、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【００６８】
ただし、デコード処理は、ポジ認識アルゴリズムに基づいて行われるような構成に限らず、ネガ認識アルゴリズムに基づいて行われるような構成であってもよい。このような構成の場合には、被写体２にネガティブコードが含まれていれば、オリジナル画像データからネガティブコードを読み取ることができ、被写体２にポジティブコードが含まれていれば、反転画像データからネガティブコードに変換されたポジティブコードを読み取ることができる。したがって、既存のネガ認識アルゴリズムに基づくデコード処理を行うことにより、ポジティブコード及びネガティブコードのいずれも読み取ることができる。
【００６９】
また、本実施の形態では、結合画像データの中からポジティブコード及びネガティブコードを同時にデコード処理するので、ポジティブコード及びネガティブコードのいずれが含まれているかによって、図７に示した第１の従来例のようにコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。すなわち、第１の従来例では、図８（ａ）に示すように、被写体２に含まれるコードがポジティブコード及びネガティブコードのいずれであるかによって、コードが読み取られるまでの平均時間に大きな差Ｔｇが生じるが、本実施の形態では、図８（ｂ）に示すように、被写体２に含まれるコードがポジティブコード及びネガティブコードのいずれであっても、コードが読み取られるまでの平均時間は一定である。本実施の形態では、ポジティブコード又はネガティブコードが読み取られるのに要する時間Ｔｔは、被写体２にポジティブコード及びネガティブコードのいずれが含まれている場合であっても、例えば、Ｔｔ＝Ｔｉ＋Ｔｒ＋ＴＤ＝１２７ｍｓｅｃである。ただし、稀に、コード領域が第１判定処理では抽出できず、その後の第２判定処理で抽出される場合があり、このような場合には、破線で示すように、その分の遅延時間ＴＮ（例えば、５４０ｍｓｅｃ）を要する。
【００７０】
上記実施の形態では、２次元コードの一例としてＱＲコード３０について説明したが、本発明の光学読取装置１は、ＱＲコード３０以外の各種２次元コード、例えば、いわゆるコード４９、コード１６Ｋ、コーダブロック、ＰＤＦ４１７、スーパーコード、ウルトラコード、ベリコード、ＣＰコード、データマトリックス、コード１、マキシコード、アレイタグ、アズテックコードにも適用可能である。また、本発明の光学読取装置１は、１次元コードや２次元コードに限らず、他のコードにも適用可能である。
【００７１】
また、被写体２からコードを読み取る手段は、ＣＭＯＳイメージセンサ４に限らず、例えばラインセンサなどの他の手段であってもよい。また、上記実施の形態では、被写体２にコードが１つだけ含まれる場合について説明したが、被写体２に２つ以上のコードが含まれていてもよい。この場合、被写体２に種類の異なるコードが含まれていてもよい。
【００７２】
本発明は、以上の実施の形態の内容に限定されるものではなく、請求項記載の範囲内において種々の変更が可能である。
【図面の簡単な説明】
【００７３】
【図１】本発明の実施の形態による光学読取装置の一構成例を示すブロック図である。
【図２】光学読取装置により読み取り可能なコードの構成例を示す図であり、（ａ）は１次元コードの一例であるバーコードの概略図、（ｂ）は２次元コードの一例であるＱＲコードの概略図を示している。
【図３】制御部の主な動作について示した機能ブロック図である。
【図４】コード読取処理の態様を示すフローチャートである。
【図５】結合画像データに基づく画像の一例を示す概略図である。
【図６】結合画像データに基づく画像の他の例を示す概略図である。
【図７】コード読取処理の第１の従来例を示すフローチャートである。
【図８】オートモードにおけるコード読取処理に要する時間について説明するためのタイムチャートであり、（ａ）は第１の従来例の場合、（ｂ）は本発明の場合を示している。
【図９】コード読取処理の第２の従来例を示すフローチャートである。
【符号の説明】
【００７４】
１  光学読取装置
２  被写体
３  制御部
４  ＣＭＯＳイメージセンサ
５  ポインタ用ＬＤ
６  照明用ＬＥＤ
７  ＦＰＧＡ
８  反転回路
９  メモリ
１０  モード選択スイッチ
１４  反転処理部
１５  モード選択部
１６  矩形領域抽出部
１７  コード領域抽出部
１７Ａ  第１判定処理部
１７Ｂ  第２判定処理部
１８  デコード処理部
２０  バーコード
２１  コード領域
２２  コード配置領域
３０  ＱＲコード
３１  コード配置領域
３２  コード領域
４１，４２，４３，４４，４５  矩形領域
【図１】
2007034546.tif 000003
【図２】
2007034546.tif 000004
【図３】
2007034546.tif 000005
【図４】
2007034546.tif 000006
【図５】
2007034546.tif 000007
【図６】
2007034546.tif 000008
【図７】
2007034546.tif 000009
【図８】
2007034546.tif 000010
【図９】
2007034546.tif 000011