説明

光学読取装置

【課題】ポジティブコードとネガティブコードとでコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる光学読取装置を提供することを目的とする。
【解決手段】ポジティブコード及びネガティブコードをいずれも読取可能なオートモードが選択されている場合に、撮像により得られたオリジナル画像データと、そのオリジナル画像データを白黒反転させることにより生成された反転画像データとが結合された結合画像データを生成する。生成された結合画像データからコード領域抽出部17においてコード領域を抽出し、その抽出したコード領域に対して、デコード処理部18においてポジ認識アルゴリズム又はネガ認識アルゴリズムの一方に基づいてデコード処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、光学読取装置に係り、更に詳しくは、1次元コードや2次元コードなどのコードに対してデコード処理(読取処理)を行う方法の改良に関する。
【背景技術】
【0002】
従来から、工場における生産ライン等では、搬送される物品(部品など)や物品を保持するパレットにバーコードが表記された被写体を付与しておいて、バーコードから識別情報を読み取ることにより、物品の種類を識別するシステムが利用されている。バーコードは、発光素子及び受光素子を備えた光学読取装置により光学的に読み取られ、光学読取装置は、読み取ったバーコードに対してデコード処理を行うことにより、そのバーコードが表す識別情報を認識する(例えば、特許文献1)。
【0003】
光学読取装置により読み取り可能なコードとしては、バーコードのような1次元コードの他に、QRコードなどの2次元コードが一般的に知られている。このような一般的なコードにおいては、白地に黒色でコード領域が表記されることにより、コード領域の明度が地色の明度よりも低くなっている。この種のコードを読み取る際には、所定の閾値よりも明度が低い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取ることができる。
【0004】
最近では、コード領域とその周囲の領域とが白黒反転されたコードが利用される場合もある。このようなコードは、例えば、黒色のシートに対していわゆるレーザマーキング方式によりレーザ光を選択的に照射して、コード領域を白色で表記することにより作成され、コード領域の明度が地色の明度よりも高くなっている。この種のコードを読み取る際には、所定の閾値よりも明度が高い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取ることができる。
【0005】
光学読取装置の中には、コード領域が黒色で表記されることによりポジティブに表された通常のコード(以下、「ポジティブコード」と呼ぶ。)を読み取ることもできるし、白黒反転されることによりネガティブに表されたコード(以下、「ネガティブコード」と呼ぶ。)を読み取ることもできるようになっているものがある。この種の光学読取装置は、例えば、ポジティブコードのみを読み取ることができるノーマルモードと、ネガティブコードのみを読み取ることができるネガモードと、ポジティブコード及びネガティブコードのいずれも読み取ることができるオートモードとを実行でき、いずれのモードを実行するかをユーザが選択することができる。
【0006】
図7は、コード読取処理の第1の従来例を示すフローチャートである。この従来例の光学読取装置は、まず、被写体を撮像することによりオリジナル画像データを生成し(ステップS201)、そのオリジナル画像データをメモリに記憶した後、選択されているモードに応じて異なる処理を行う。メモリには、ポジティブコードを認識するためのアルゴリズム(ポジ認識アルゴリズム)が記憶されている。ポジ認識アルゴリズムは、所定の閾値よりも明度が低い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取るための手順を表すプログラムである。
【0007】
デコード処理の際には、被写体からコード領域と思われる対象領域(例えば、矩形領域)を抽出する。そして、抽出した対象領域がコード領域であると判定した場合に、そのコード領域に対してデコード処理を行う。より具体的には、デコード処理部は、抽出した対象領域に対して、その対象領域がコード領域であるか否かについて2種類の判定処理を順番に行う。1回目の判定処理(第1判定処理)では、抽出したすべての対象領域に対して、対象領域がコード領域であると判定される可能性の高い判定処理を行う。被写体にコード領域が含まれていれば、通常は、第1判定処理でコード領域が抽出される。
【0008】
しかし、コード領域に付着した汚れなどの各種要因により、被写体にコード領域が含まれている場合でも、稀に、第1判定処理でコード領域が抽出できない場合がある。このような場合を想定して、第1判定処理でコード領域が抽出できなかった場合には、その後の2回目の判定処理(第2判定処理)において、抽出したすべての対象領域に対して、対象領域がコード領域であると判定される可能性の高い判定処理、すなわち、第1判定処理よりも多くの判定基準を用いて判定を行う処理が実行されることにより、多面的なアプローチがなされる。第2判定処理では、第1判定処理よりも多くの判定基準を用いて判定を行うので、判定処理に要する時間が第1判定処理よりも長くなる。
【0009】
ノーマルモードが選択されている場合には(ステップS202)、メモリに記憶されているポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS203)。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。
【0010】
ノーマルモードでは、例えば、ステップS201の撮像時間Tiが70msec、ステップS203のデコード処理時間Tdが26msecであり、処理の開始からポジティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである。デコード処理では、被写体におけるコード領域の位置によって、コード領域が抽出されるまでに要する時間に誤差が生じるが、ここでのデコード処理時間Tdは、コード領域の位置が異なる場合の平均時間を示している。
【0011】
ネガモードが選択されている場合には(ステップS202)、メモリに記憶されているオリジナル画像データの明度が反転されることにより反転画像データが生成される(ステップS204)。これにより、被写体から読み取った画像の中にネガティブコードが含まれている場合には、そのネガティブコードがポジティブコードに変換される。したがって、その後にポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理を行うことにより(ステップS205)、ポジティブコードに変換されたネガティブコードを読み取ることができる。しかし、被写体から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。
【0012】
ネガモードでは、例えば、ステップS201の撮像時間Tiが70msec、ステップS204の反転処理時間Trが5msec、ステップS205のデコード処理時間Tdが26msecであり、処理の開始からネガティブコードが読み取られるまでの時間Ttは、Tt=Ti+Tr+Td=101msecである。
【0013】
オートモードが選択されている場合には(ステップS202)、まず、ポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS206)。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば(ステップS207でYes)、そのポジティブコードが読み取られる。ポジティブコードが読み取られなかった場合には(ステップS207でNo)、メモリに記憶されているオリジナル画像データの明度が反転されることにより反転画像データが生成された後(ステップS208)、ポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理が行われる(ステップS209)。
【0014】
図8は、オートモードにおけるコード読取処理に要する時間について説明するためのタイムチャートであり、(a)は第1の従来例の場合、(b)は本発明の場合を示している。第1の従来例におけるオートモードでは、例えば、ステップS201の撮像時間Tiが70msec、ステップS206のデコード処理時間Tdが26msecであり、被写体から読み取った画像の中にポジティブコードが含まれていれば、処理の開始からポジティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである(図8(a)参照)。この例では、第1判定処理でコード領域が抽出された場合を示しているが、稀に、第1判定処理では抽出できず、その後の第2判定処理で抽出される場合がある。このような場合には、破線で示すように、その分の遅延時間Tn(例えば、270msec)を要する。
【0015】
被写体から読み取った画像の中にポジティブコードではなくネガティブコードが含まれている場合には、ステップS206のデコード処理ではコード領域が抽出されず、反転処理が行われた後(ステップS208)、生成された反転画像データに対するデコード処理が行われる(ステップS209)。この場合、ステップS206のデコード処理において、常に第1判定処理及び第2判定処理が行われることとなり、その分の遅延時間Tn(=270msec)に加えて、ステップS208の反転処理時間Tr(=5msec)、及びステップS209のデコード処理時間Td(=26msec)を要する。したがって、被写体の画像の中にネガティブコードが含まれている場合、処理の開始からネガティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td+Tn+Tr+Td=396msecとなる(図8(a)参照)。
【0016】
図9は、コード読取処理の第2の従来例を示すフローチャートである。この従来例の光学読取装置は、第1の従来例と同様に、まず、被写体を撮像することによりオリジナル画像データを生成し(ステップS301)、そのオリジナル画像データをメモリに記憶した後、選択されているモードに応じて異なる処理を行う。メモリには、ポジティブコードを認識するためのアルゴリズム(ポジ認識アルゴリズム)と、ネガティブコードを認識するためのアルゴリズム(ネガ認識アルゴリズム)とが記憶されている。ネガ認識アルゴリズムは、ポジ認識アルゴリズムとは異なるアルゴリズムであり、所定の閾値よりも明度が高い領域をコード領域と判定し、そのコード領域のパターンに基づいてコードを読み取るための手順を表すプログラムである。
【0017】
ノーマルモードが選択されている場合には(ステップS302)、メモリに記憶されているポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS303)。したがって、被写体から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。ノーマルモードでは、例えば、ステップS301の撮像時間Tiが70msec、ステップS303のデコード処理時間Tdが26msecであり、処理の開始からポジティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである。
【0018】
ネガモードが選択されている場合には(ステップS302)、メモリに記憶されているネガ認識アルゴリズムに基づいてデコード処理が行われる(ステップS304)。したがって、被写体から読み取った画像の中にネガティブコードが含まれていれば、そのネガティブコードが読み取られる。しかし、被写体から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。ネガモードでは、例えば、ステップS301の撮像時間Tiが70msec、ステップS304のデコード処理時間Tdが26msecであり、処理の開始からネガティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである。
【0019】
オートモードが選択されている場合には(ステップS302)、ポジティブコード及びネガティブコードの両方を読み取ることができるようなデコード処理が行われる(ステップS305)。このようなデコード処理を行うためには、ポジティブコード及びネガティブコードの両方を認識するための認識アルゴリズムが必要となるが、このような認識アルゴリズムを作成するためには、既存のソフトウェアに相当の設計変更を加えなければならず、手間がかかる。また、ステップS305のデコード処理には、ポジティブコード又はネガティブコードの一方のみを読み取るためのデコード処理時間Td(=26msec)を単純に2倍した時間(=52msec)よりも相当長い処理時間を要するため、処理の開始からポジティブコード又はネガティブコードが読み取られるまでの時間Ttは、Tt>>Ti+2Td=122msecとなる。
【特許文献1】特開2003−6569号公報
【発明の開示】
【発明が解決しようとする課題】
【0020】
上記第1の従来例では、図8(a)に示すように、オートモードでポジティブコードが読み取られるまでの時間Ttが96msecであり、比較的短時間であるのに対して、オートモードでネガティブコードが読み取られるまでの時間Ttが396msecと長く、それらの差が非常に大きい。したがって、被写体にポジティブコードが含まれる場合とネガティブコードが含まれる場合とで、コードが読み取られるまでの平均時間に大きな差が生じ、生産ラインに適用しにくい場合がある。
【0021】
一方、上記第2の従来例では、上述の通り、既存のソフトウェアに相当の設計変更を加えて、ポジティブコード及びネガティブコードの両方を認識するための認識アルゴリズムを作成しなければならない。しかも、そのような認識アルゴリズムを用いてデコード処理を行っても、コードが読み取られるまでの時間を効果的に短縮することはできない。また、第2の従来例では、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がある。
【0022】
本発明は、上記の事情に鑑みてなされたものであり、ポジティブコードとネガティブコードとでコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる光学読取装置を提供することを目的とする。さらに、本発明は、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができる光学読取装置を提供することを目的とする。
【課題を解決するための手段】
【0023】
本発明による光学読取装置は、読取対象物を撮影し、オリジナル画像データを生成する撮像手段と、上記オリジナル画像データの明度を反転させた反転画像データを生成する明度反転手段と、上記オリジナル画像データ及び上記反転画像データを結合し、結合画像データを生成する画像結合手段と、上記結合画像データに対し、ポジティブ表記されたコード及びネガティブ表記されたコードのいずれか一方を対象とする読取処理を行うコード読取手段とを備えて構成される。
【0024】
このような構成によれば、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、ポジティブ表記されたコード(ポジティブコード)及びネガティブ表記されたコード(ネガティブコード)のいずれか一方を対象とする読取処理を行うことにより、ポジティブコード及びネガティブコードのいずれを読み取る場合でも、コードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。
【0025】
例えば、ポジ認識アルゴリズムを用いた場合には、読取対象にポジティブコードが含まれていれば、オリジナル画像データからポジティブコードを読み取ることができ、読取対象にネガティブコードが含まれていれば、反転画像データからポジティブコードに変換されたネガティブコードを読み取ることができる。一方、ネガ認識アルゴリズムを用いた場合には、読取対象にネガティブコードが含まれていれば、オリジナル画像データからネガティブコードを読み取ることができ、読取対象にポジティブコードが含まれていれば、反転画像データからネガティブコードに変換されたポジティブコードを読み取ることができる。したがって、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができ、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【0026】
本発明による光学読取装置は、上記コード読取手段は、上記結合画像データから上記コードが表記された領域をコード領域として抽出するコード領域抽出手段と、抽出された上記コード領域に基づいて読取データを生成するデータ抽出手段とを備え、上記コード領域抽出手段は、第1判定基準に基づいてコード領域を抽出する第1領域抽出手段と、上記第1領域抽出手段によりコード領域が抽出されなかった場合に、上記第1判定基準とは異なる第2判定基準に基づいてコード領域を抽出する第2領域抽出手段とを備えて構成される。
【0027】
例えば、上記第2領域抽出手段による判定処理時間は、上記第1領域抽出手段による判定処理時間よりも長い。したがって、第1領域抽出手段によりコード領域が抽出された場合と、第1領域抽出手段ではコード領域が抽出されず、第2領域抽出手段でコード領域が抽出された場合とでは、コードが読み取られるまでの時間の差が大きくなる。しかし、本発明のように、結合画像データの中からポジティブコード及びネガティブコードを同時に読み取るような構成であれば、ポジティブコード及びネガティブコードのいずれが含まれているかによってコードが読み取られるまでの平均時間に大きな差が生じるのを効果的に防止できる。
【0028】
本発明による光学読取装置において、上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データをオーバーラップさせることなく配置して上記結合画像データを生成する。このような構成によれば、オーバーラップさせることなく配置されたオリジナル画像データ及び反転画像データに対して、読取処理を順次に行うことができる。
【0029】
本発明による光学読取装置において、上記オリジナル画像データは矩形形状からなり、上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データを隣接させて配置する。このような構成によれば、オリジナル画像データ及び反転画像データを隣接させて配置するので、読取処理を連続的に行うことができ、オリジナル画像データ及び反転画像データの間に一定の領域が形成されている場合と比較して、コードが読み取られるまでの時間を短縮できる。
【発明の効果】
【0030】
本発明によれば、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、ポジティブコード及びネガティブコードのいずれか一方を対象とする読取処理を行うことにより、ポジティブコード及びネガティブコードのいずれを読み取る場合でも、コードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。また、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対する読取処理を行うことができ、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【発明を実施するための最良の形態】
【0031】
図1は、本発明の実施の形態による光学読取装置1の一構成例を示すブロック図である。この光学読取装置1は、例えば、工場における生産ラインに適用され、生産ラインの搬送経路上を搬送される物品(部品など)又はその物品を保持するパレットに予め取り付けられている被写体(読取対象物)2に表されたコードを光学的に読み取るものである。この光学読取装置1は、ケーブルを介して、撮影画像及び解析結果をリアルタイムに画面表示させるためのモニタや、画像データ及び解析データを取り込んで各種制御を行うパーソナルコンピュータなどの外部機器に接続される。
【0032】
この光学読取装置1は、CPU(Central Processing Unit:中央処理装置)を含む制御部3の他、この制御部3に対してそれぞれ電気的に接続されたCMOS(Complementary Metal Oxide Semiconductor:相補型金属酸化膜半導体)イメージセンサ4、ポインタ用LD(Laser Diode:レーザダイオード)5、照明用LED(Light Emitting Diode:発光ダイオード)6、FPGA(Field Programming Gate Array)7、反転回路8、メモリ9、モード選択スイッチ10及び反転処理部14を備えている。
【0033】
ポインタ用LD5は、ポインタ11となる照射光を発生させる発光素子であり、読み取り可能な矩形エリア及びその中心位置を被写体2上に表示することができる。照明用LED6は、被写体2の読み取り対象を照明するための照射光を発生させる発光素子である。
【0034】
CMOSイメージセンサ(撮像手段)4は、撮像回路12及びA/D(Analog/Digital)変換回路13を備えている。撮像回路12は、受光量に応じた画素信号を出力する矩形の半導体チップからなり、受光素子として多数のフォトダイオードがマトリックス状に配置されている。各受光素子には、受光量に応じて生成される画素信号を受光素子ごとに電力増幅する増幅素子が配置され、受光素子及び増幅素子から1つの画素が構成される。照明用LED6から照射された光の被写体2における反射光を各受光素子で受光することにより、撮像回路12において画像データ(アナログデータ)が生成される。撮像回路12において生成されたアナログデータは、所定の補正処理が施された後、A/D変換回路13に入力される。
【0035】
A/D変換回路13は、入力されたアナログデータをMビットのデジタルデータに変換する画像データの量子化回路である。ここでは、電圧値が10ビット(bit)に量子化されるものとし、受光量が1024階調の明度により表される。
【0036】
FPGA7は、量子化された画像データをビット数がより小さな画像データに変換する画像データ圧縮回路である。すなわち、FPGA7は、CMOSイメージセンサ4のA/D変換回路13から入力されるMビットのデジタルデータをNビット(N<M)のデジタルデータに変換して出力する。ここでは、10ビットの画像データをビット数がより小さい8ビットのデジタルデータに変換するものとする。つまり、1024階調の明度で表された画像データは、情報量が変換前の画像データの1/4となる256階調の明度で表された画像データに変換される。
【0037】
反転回路8は、FPGA7から入力された画像データの各画素をビット反転する処理(反転処理)を行うことにより、明度が反転された反転画像データを生成する。すなわち、8ビットの画像データにおける各ビットについて、「0」又は「1」のデータを相互に反転することにより、256階調における明度レベルKで表された画像データを、明度レベル(255−K)の画像データに変換する。例えば、明度レベル「0」の画像データは明度レベル「255」の画像データに変換され、明度レベル「10」の画像データは明度レベル「245」の画像データに変換される。これにより、黒色の画素は白色に変換され、白色の画素は黒色に変換されることとなる。
【0038】
反転回路8で生成された反転画像データは、制御部3に入力される。制御部3は、反転回路8において反転処理を行うべき旨の指示信号を出力し、反転回路8は、その指示信号を受信した場合にのみ反転処理を行う。したがって、制御部3から指示信号が出力されなければ、反転回路8における反転処理は行われず、FPGA7から出力された画像データがそのまま制御部3に入力される。制御部3から反転回路に指示信号を出力するか否かは、後述する複数のモード(ノーマルモード、ネガモード及びオートモード)のうちいずれのモードが実行されるかに応じて決定される。複数のモードのうちいずれのモードを実行するかは、ユーザがモード選択スイッチ10を操作することにより選択できる。
【0039】
反転処理部(明度反転手段)14は、反転回路8を介さずに制御部3に入力された画像データに対して、反転回路8と同様の反転処理をソフト処理により実行し、明度が反転された反転画像データを生成する。制御部3は、ユーザが選択したモードに応じて、反転処理部14による反転処理を実行する。
【0040】
メモリ9は、オリジナル画像データ記憶部9A、反転画像データ記憶部9B及び認識アルゴリズム記憶部9Dを備えている。オリジナル画像データ記憶部9Aは、FPGA7から反転回路8を介さずに制御部3に入力された画像データ、すなわち、反転処理が施されていない画像データ(オリジナル画像データ)を記憶する。反転画像データ記憶部9Bは、FPGA7から反転回路8を介して制御部3に入力された画像データ、すなわち、反転処理が施された画像データ(反転画像データ)を記憶する。
【0041】
メモリ9におけるオリジナル画像データ記憶部9A及び反転画像データ記憶部9Bは、連続する領域として予め決定されており、それぞれにオリジナル画像データ及び反転画像データが記憶されることにより、連続した結合画像データ9Cが生成されるようになっている。したがって、反転回路8を介さずに制御部3に入力されたオリジナル画像データをオリジナル画像データ記憶部9Aに記憶しつつ、そのオリジナル画像データに対して反転処理部14で反転処理を施し、反転画像データを反転画像データ記憶部9Bに記憶することにより、結合画像データ9Cを生成することができる。
【0042】
ただし、このような構成に限らず、メモリ9に結合画像データ記憶部を設けて、オリジナル画像データ記憶部9Aに記憶されているオリジナル画像データと、反転画像データ記憶部9Bに記憶されている反転画像データとを結合する処理を行うことにより結合画像データを生成し、その結合画像データを結合画像データ記憶部に記憶するような構成であってもよい。
【0043】
この光学読取装置1は、デコード処理において、コード領域が黒色で表されることによりポジティブ表記された通常のコード(ポジティブコード)を読み取ることもできるし、白黒反転されることによりネガティブ表記されたコード(ネガティブコード)を読み取ることもできる。メモリ9の認識アルゴリズム記憶部9Dには、デコード処理を行う際に用いる認識アルゴリズムが記憶されている。この認識アルゴリズムは、ポジティブコードを認識するための手順を表すプログラムである。
【0044】
図2は、光学読取装置1により読み取り可能なコードの構成例を示す図であり、(a)は1次元コードの一例であるバーコード20の概略図、(b)は2次元コードの一例であるQRコード30の概略図を示している。
【0045】
図2(a)に示すバーコード20では、幅の異なる複数の棒状のコード領域21が黒色で表記されている。複数のコード領域21はそれぞれ同じ長さを有し、互いに所定間隔を隔てて平行に延びている。これにより、両端のコード領域21で挟まれた矩形の領域(コード配置領域22)内に複数のコード領域21が1次元的に配置されている。コード領域21の周囲の領域、すなわち、コード配置領域22内におけるコード領域21以外の領域及びコード配置領域22の外側の領域は、白色領域とされている。コード配置領域22の外側における左右両側の白色領域は、いわゆるクワイエットゾーン23であり、コード配置領域22を検知することができるように所定幅を有している。
【0046】
図2(b)に示すQRコード30では、矩形のコード配置領域31内に所定のパターンで黒色のコード領域32が2次元的に配置されている。図2(b)では、コード領域32の詳細を省略し、コード配置領域31内にハッチングを施しているが、コード配置領域31には所定のパターンでコード領域32が表記され、コード領域32の周囲の領域、すなわち、コード配置領域31内におけるコード領域32以外の領域及びコード配置領域31の外側の領域は、白色領域とされている。
【0047】
コード配置領域31の外側を取り囲む白色領域はクワイエットゾーン33であり、コード配置領域31を検知することができるように所定幅を有している。図2(b)に示すように、QRコード30の4隅のうちの3隅には、ファインダーパターンと呼ばれる矩形のパターン34が配置されており、これらのファインダーパターン34により、そのコードがQRコード30である旨を表すとともに、QRコード30の指向性を規定している。
【0048】
このように、1次元コードや2次元コードなどの一般的なコードでは、コード領域が矩形のコード配置領域内に配置されているので、被写体2から矩形領域を検出することにより、コード領域と思われる矩形領域を抽出することができる。しかし、被写体2によっては、コード以外の矩形領域を有している場合があるので、抽出した矩形領域がコード領域であるか否かを判定する必要がある。
【0049】
図3は、制御部3の主な動作について示した機能ブロック図である。制御部3は、CPUがプログラムを実行することにより、モード選択部15、矩形領域抽出部16、コード領域抽出部17及びデコード処理部18として機能する。コード領域抽出部17は、第1判定処理部17A及び第2判定処理部17Bからなる。矩形領域抽出部16、コード領域抽出部17及びデコード処理部18は、コード読取処理を行うためのコード読取手段を構成している。
【0050】
モード選択スイッチ10の操作に基づくモード選択信号は、モード選択部15に入力される。オートモードが選択されている場合には、オリジナル画像データ及び反転画像データが結合画像データとして矩形領域抽出部16に入力される。ノーマルモードが選択されている場合には、オリジナル画像データが矩形領域抽出部16に入力される。ネガモードが選択されている場合には、反転画像データが矩形領域抽出部16に入力される。
【0051】
矩形領域抽出部16は、被写体2から矩形領域を抽出し、その抽出された矩形領域から、コード領域抽出部17においてコード領域が抽出される。そして、コード領域抽出部17で抽出されたコード領域に基づいて、デコード処理部(データ抽出手段)18がデコード処理を行うことにより、読取データが生成される。コード領域抽出部(コード領域抽出手段)17は、矩形領域抽出部16で抽出した矩形領域に対して、その矩形領域がコード領域であるか否かについて2種類の判定処理を順番に行う。第1判定処理部(第1領域抽出手段)17Aが行う1回目の判定処理(第1判定処理)では、抽出したすべての矩形領域に対して、所定の第1判定基準に基づいて矩形領域がコード領域であると判定される可能性の高い判定処理を行う。被写体2にコード領域が含まれていれば、通常は、第1判定処理でコード領域が抽出される。
【0052】
しかし、コード領域に付着した汚れなどの各種要因により、被写体2にコード領域が含まれている場合でも、稀に、第1判定処理でコード領域が抽出できない場合がある。このような場合を想定して、第1判定処理でコード領域が抽出できなかった場合には、その後に第2判定処理部(第2領域抽出手段)17Bが行う2回目の判定処理(第2判定処理)において、抽出したすべての矩形領域に対して、所定の第2判定基準に基づいて矩形領域がコード領域であると判定される可能性の高い判定処理、すなわち、第1判定処理よりも多くの判定基準を用いて判定を行う処理が実行されることにより、多面的なアプローチがなされる。第2判定処理では、第1判定処理よりも多くの判定基準を用いて判定を行うので、判定処理に要する時間が第1判定処理よりも長くなる。
【0053】
図4は、コード読取処理の態様を示すフローチャートである。本実施の形態では、図7及び図9に示したような従来例とは異なり、ノーマルモード及びオートモードの場合と、ネガモードの場合とで、異なる態様で撮像を行う。すなわち、ノーマルモードが選択されている場合、及びオートモードが選択されている場合には、図1に示すFPGA7から出力された画像データがそのまま制御部3に入力されることにより、オリジナル画像データがメモリ9に記憶される。一方、ネガモードが選択されている場合には、制御部3から反転回路8に指示信号が入力されることにより、FPGA7から出力された画像データが反転回路8を介して制御部3に入力され、生成された反転画像データがメモリ9に記憶される。
【0054】
このように、ネガモードでは、撮像と同時に(並行して)反転画像データが生成されるので、メモリ9に一旦記憶されたオリジナル画像データが白黒反転されて反転画像データが生成されるような構成と比較して、反転画像データを生成するのに要する時間を短縮できる。ただし、このような構成に限らず、被写体2を撮像することによりメモリ9にオリジナル画像データを一旦記憶し、そのオリジナル画像データを白黒反転することにより反転画像データを生成するような構成であってもよい。
【0055】
ノーマルモードが選択されている場合には(ステップS101)、CMOSイメージセンサ4から出力されたオリジナル画像データが反転回路8を介さずに制御部3に入力されてメモリ9に記憶されることにより撮像が行われる(ステップS102)。そして、メモリ9に記憶されたオリジナル画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS103)。したがって、被写体2から読み取った画像の中にポジティブコードが含まれていれば、そのポジティブコードが読み取られる。しかし、被写体2から読み取った画像の中にポジティブコードが含まれていなければ、いかなるコードも読み取られない。
【0056】
ノーマルモードでは、例えば、ステップS102の撮像時間Tiが70msec、ステップS103のデコード処理時間Tdが26msecであり、処理の開始からポジティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである。デコード処理では、被写体2におけるコード領域の位置によって、コード領域が抽出されるまでに要する時間に誤差が生じるが、ここでのデコード処理時間Tdは、コード領域の位置が異なる場合の平均時間を示している。
【0057】
ネガモードが選択されている場合には(ステップS101)、CMOSイメージセンサ4から出力されたオリジナル画像データが反転回路8で反転され、生成された反転画像データが制御部3に入力されてメモリ9に記憶されることにより撮像が行われる(ステップS104)。そして、メモリ9に記憶された反転画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS105)。被写体2から読み取った画像の中にネガティブコードが含まれている場合には、オリジナル画像データが白黒反転されて反転画像データが生成されることにより、そのネガティブコードがポジティブコードに変換される。したがって、ポジ認識アルゴリズムに基づいて反転画像データに対するデコード処理を行うことにより、ポジティブコードに変換されたネガティブコードを読み取ることができる。しかし、被写体2から読み取った画像の中にネガティブコードが含まれていなければ、いかなるコードも読み取られない。
【0058】
ネガモードでは、例えば、ステップS104の撮像時間Tiが70msec、ステップS105のデコード処理時間Tdが26msecであり、処理の開始からネガティブコードが読み取られるまでの時間Ttは、Tt=Ti+Td=96msecである。
【0059】
オートモードが選択されている場合には(ステップS101)、CMOSイメージセンサ4から出力されたオリジナル画像データが反転回路8を介さずに制御部3に入力されることにより撮像が行われる(ステップS106)。そして、制御部3に入力されたオリジナル画像データ及び反転処理部14により反転された反転画像データがメモリ9に記憶されることにより結合画像データが生成され(ステップS107)、その生成された結合画像データに対して、ポジ認識アルゴリズムに基づいてデコード処理が行われる(ステップS108)。
【0060】
ステップS107の処理では、反転処理部14による反転処理を行い、生成された反転画像データをそのままオリジナル画像データに結合するだけなので、その処理に要する時間Trは反転処理に要する時間と同じであり、例えば5msecである。ステップS108のデコード処理は、オリジナル画像データ及び反転画像データを結合した結合画像データに対して行われるので、その処理に要する時間TDは、オリジナル画像データに対するデコード処理に要する時間又は反転画像データに対するデコード処理に要する時間を単純に2倍した時間(Td×2)となり、例えば52msecである。
【0061】
図5は、結合画像データに基づく画像50の一例を示す概略図である。結合画像データに基づく画像50は、図5に示すように、それぞれ矩形形状からなるオリジナル画像データに基づく画像51と反転画像データに基づく画像52とが並べて結合された画像である。図5に示す例では、オリジナル画像データに基づく画像51と反転画像データに基づく画像52とがオーバーラップしないように隣接して配置されている。
【0062】
各画像51,52をオーバーラップさせることなく配置することにより、各画像51,52に対する読取処理を順次に行うことができる。また、各画像51,52を隣接して配置することにより、読取処理を連続的に行うことができ、各画像51,52の間に一定の領域が形成されている場合と比較して、コードが読み取られるまでの時間を短縮できる。ただし、このような態様に限らず、各画像51,52の間に一定の領域が形成されていてもよい。また、図5に示すように各画像51,52が上下に並べて結合されるのではなく、左右に並べて結合されてもよい。また、各画像51,52がコードの読み取りに影響を与えない範囲でオーバーラップしていてもよい。
【0063】
図5に示す例において、オリジナル画像データに基づく画像51には、ポジティブコードからなるQRコード30の他に、所定の文字を含む矩形領域41と、黒色領域からなる矩形領域42が含まれている。工場における生産ラインで搬送される物品に付与される被写体2には、通常、コード以外に作業者が視認可能な品番等の文字情報が表記されており、これらの文字情報を矩形の枠で囲むなどして矩形領域が表記されている場合が多い。
【0064】
この図5に示すような結合画像データに対してデコード処理を行った場合には、オリジナル画像データに対応する画像51から、QRコード30に対応する矩形領域31及び他の2つの矩形領域41,42が抽出され、反転画像データに対応する画像52から、上記3つの矩形領域31,41,42にそれぞれ対応する反転画像からなる3つの矩形領域43,44,45が抽出される。そして、それらの抽出された矩形領域31,41,42,43,44,45の中から、QRコード30に対応する矩形領域のみがコード配置領域31であると判定され、そのコード配置領域31内に配置されたコード領域32に対してデコード処理が行われる。
【0065】
図6は、結合画像データに基づく画像50の他の例を示す概略図である。被写体2にネガティブコードが表記されている場合には、図6に示すように、オリジナル画像データに基づく画像51には、ネガティブコードに対応する矩形領域43及び他の矩形領域44,45が含まれる。これに対して、反転画像データに基づく画像52には、ネガティブコードを白黒反転することにより得られたポジティブコードからなるQRコード30が含まれるとともに、矩形領域44,45にそれぞれ対応する矩形領域41,42が含まれる。
【0066】
この図6に示すような結合画像データに対してデコード処理を行った場合には、反転画像データに対応する画像52から、QRコード30に対応する矩形領域31及び他の2つの矩形領域41,42が抽出され、オリジナル画像データに対応する画像51から、上記3つの矩形領域31,41,42にそれぞれ対応する3つの矩形領域43,44,45が抽出される。そして、それらの抽出された矩形領域31,41,42,43,44,45の中から、QRコード30に対応する矩形領域のみがコード配置領域31であると判定され、そのコード配置領域31内に配置されたコード領域32に対してデコード処理が行われる。
【0067】
本実施の形態では、オリジナル画像データ及び反転画像データを結合することにより生成された結合画像データに対して、既存のポジ認識アルゴリズムに基づくデコード処理を行うことにより、ポジティブコード及びネガティブコードのいずれも読み取ることができる。すなわち、被写体2にポジティブコードが含まれていれば、オリジナル画像データからポジティブコードを読み取ることができ、被写体2にネガティブコードが含まれていれば、反転画像データからポジティブコードに変換されたネガティブコードを読み取ることができる。したがって、図9に示した第2の従来例とは異なり、既存のソフトウェアを用いて、ポジティブコード及びネガティブコードに対するデコード処理を行うことができるとともに、ポジ認識アルゴリズム及びネガ認識アルゴリズムの両方を用意する必要がない。
【0068】
ただし、デコード処理は、ポジ認識アルゴリズムに基づいて行われるような構成に限らず、ネガ認識アルゴリズムに基づいて行われるような構成であってもよい。このような構成の場合には、被写体2にネガティブコードが含まれていれば、オリジナル画像データからネガティブコードを読み取ることができ、被写体2にポジティブコードが含まれていれば、反転画像データからネガティブコードに変換されたポジティブコードを読み取ることができる。したがって、既存のネガ認識アルゴリズムに基づくデコード処理を行うことにより、ポジティブコード及びネガティブコードのいずれも読み取ることができる。
【0069】
また、本実施の形態では、結合画像データの中からポジティブコード及びネガティブコードを同時にデコード処理するので、ポジティブコード及びネガティブコードのいずれが含まれているかによって、図7に示した第1の従来例のようにコードが読み取られるまでの平均時間に大きな差が生じるのを防止できる。すなわち、第1の従来例では、図8(a)に示すように、被写体2に含まれるコードがポジティブコード及びネガティブコードのいずれであるかによって、コードが読み取られるまでの平均時間に大きな差Tgが生じるが、本実施の形態では、図8(b)に示すように、被写体2に含まれるコードがポジティブコード及びネガティブコードのいずれであっても、コードが読み取られるまでの平均時間は一定である。本実施の形態では、ポジティブコード又はネガティブコードが読み取られるのに要する時間Ttは、被写体2にポジティブコード及びネガティブコードのいずれが含まれている場合であっても、例えば、Tt=Ti+Tr+TD=127msecである。ただし、稀に、コード領域が第1判定処理では抽出できず、その後の第2判定処理で抽出される場合があり、このような場合には、破線で示すように、その分の遅延時間TN(例えば、540msec)を要する。
【0070】
上記実施の形態では、2次元コードの一例としてQRコード30について説明したが、本発明の光学読取装置1は、QRコード30以外の各種2次元コード、例えば、いわゆるコード49、コード16K、コーダブロック、PDF417、スーパーコード、ウルトラコード、ベリコード、CPコード、データマトリックス、コード1、マキシコード、アレイタグ、アズテックコードにも適用可能である。また、本発明の光学読取装置1は、1次元コードや2次元コードに限らず、他のコードにも適用可能である。
【0071】
また、被写体2からコードを読み取る手段は、CMOSイメージセンサ4に限らず、例えばラインセンサなどの他の手段であってもよい。また、上記実施の形態では、被写体2にコードが1つだけ含まれる場合について説明したが、被写体2に2つ以上のコードが含まれていてもよい。この場合、被写体2に種類の異なるコードが含まれていてもよい。
【0072】
本発明は、以上の実施の形態の内容に限定されるものではなく、請求項記載の範囲内において種々の変更が可能である。
【図面の簡単な説明】
【0073】
【図1】本発明の実施の形態による光学読取装置の一構成例を示すブロック図である。
【図2】光学読取装置により読み取り可能なコードの構成例を示す図であり、(a)は1次元コードの一例であるバーコードの概略図、(b)は2次元コードの一例であるQRコードの概略図を示している。
【図3】制御部の主な動作について示した機能ブロック図である。
【図4】コード読取処理の態様を示すフローチャートである。
【図5】結合画像データに基づく画像の一例を示す概略図である。
【図6】結合画像データに基づく画像の他の例を示す概略図である。
【図7】コード読取処理の第1の従来例を示すフローチャートである。
【図8】オートモードにおけるコード読取処理に要する時間について説明するためのタイムチャートであり、(a)は第1の従来例の場合、(b)は本発明の場合を示している。
【図9】コード読取処理の第2の従来例を示すフローチャートである。
【符号の説明】
【0074】
1 光学読取装置
2 被写体
3 制御部
4 CMOSイメージセンサ
5 ポインタ用LD
6 照明用LED
7 FPGA
8 反転回路
9 メモリ
10 モード選択スイッチ
14 反転処理部
15 モード選択部
16 矩形領域抽出部
17 コード領域抽出部
17A 第1判定処理部
17B 第2判定処理部
18 デコード処理部
20 バーコード
21 コード領域
22 コード配置領域
30 QRコード
31 コード配置領域
32 コード領域
41,42,43,44,45 矩形領域

【特許請求の範囲】
【請求項1】
読取対象物を撮影し、オリジナル画像データを生成する撮像手段と、
上記オリジナル画像データの明度を反転させた反転画像データを生成する明度反転手段と、
上記オリジナル画像データ及び上記反転画像データを結合し、結合画像データを生成する画像結合手段と、
上記結合画像データに対し、ポジティブ表記されたコード及びネガティブ表記されたコードのいずれか一方を対象とする読取処理を行うコード読取手段とを備えたことを特徴とする光学読取装置。
【請求項2】
上記コード読取手段は、上記結合画像データから上記コードが表記された領域をコード領域として抽出するコード領域抽出手段と、
抽出された上記コード領域に基づいて読取データを生成するデータ抽出手段とを備え、
上記コード領域抽出手段は、第1判定基準に基づいてコード領域を抽出する第1領域抽出手段と、
上記第1領域抽出手段によりコード領域が抽出されなかった場合に、上記第1判定基準とは異なる第2判定基準に基づいてコード領域を抽出する第2領域抽出手段とを備えたことを特徴とする請求項1に記載の光学読取装置。
【請求項3】
上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データをオーバーラップさせることなく配置して上記結合画像データを生成することを特徴とする請求項1に記載の光学読取装置。
【請求項4】
上記オリジナル画像データは矩形形状からなり、
上記画像結合手段は、上記オリジナル画像データ及び上記反転画像データを隣接させて配置することを特徴とする請求項3に記載の光学読取装置。

【図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


【公開番号】特開2007−34546(P2007−34546A)
【公開日】平成19年2月8日(2007.2.8)
【国際特許分類】
【出願番号】特願2005−215263(P2005−215263)
【出願日】平成17年7月26日(2005.7.26)
【出願人】(000129253)株式会社キーエンス (681)
【Fターム(参考)】