JP2020135358A - 情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム - Google Patents
情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム Download PDFInfo
- Publication number
- JP2020135358A JP2020135358A JP2019027376A JP2019027376A JP2020135358A JP 2020135358 A JP2020135358 A JP 2020135358A JP 2019027376 A JP2019027376 A JP 2019027376A JP 2019027376 A JP2019027376 A JP 2019027376A JP 2020135358 A JP2020135358 A JP 2020135358A
- Authority
- JP
- Japan
- Prior art keywords
- reading
- information code
- analysis processing
- reading target
- processing unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Sorting Of Articles (AREA)
Abstract
【課題】情報コードがないにも拘らず読取処理を行うといった無駄な時間を生じさせない技術を提供する。【解決手段】情報コード読取装置は、光学センサと、解析処理部と、出力部と、を備える。光学センサは、読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する。解析処理部は、光学センサが出力する信号に基づいて、読取対象内における情報コードの有無を判定する。出力部は、解析処理部での判定結果を出力する。情報コード読取方法は、取得制御ステップと、解析処理ステップと、出力処理ステップと、を備える。取得制御ステップでは、読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する。解析処理ステップでは、取得制御ステップで出力される信号に基づいて、読取対象内における情報コードの有無を判定する。出力処理ステップでは、解析処理ステップでの判定結果を出力する。【選択図】図2
Description
本発明は、バーコードなどの情報コードを読み取る技術に関する。
情報コード読取装置には、バーコードなどの1次元コードを読み取る1次元コードリーダや、QRコード(登録商標)などの2次元コードを読み取る2次元コードリーダが存在する。これらのコードリーダは、1次元コードや2次元コードなどの情報コードから光学情報を取得する光学センサ(撮像素子など)を備え、当該光学センサから出力される電気信号(アナログ信号)をデジタル信号に変換し、そのデジタル信号をデコードすることにより、情報コードを読み取る(例えば、特許文献1参照)。
このような情報コード読取装置は、例えば、製造工場において商品の出荷チェックを行うラインなどで、当該ラインを流れてくる商品に付された情報コードの読取りに用いられる。そして、このような製造工場のラインなどでは、近年、情報コードの読取りが自動化されつつある。
しかし、従来の情報コード読取装置は、デジタル信号をデコードできなかった場合には、所定時間が経過するまで読取りのリトライを繰り返し、それでもデコードできなかった場合に読取りを停止していた。このため、自動化されたラインでは、情報コードの貼忘れや印刷漏れなどが原因で商品に情報コードが付されておらず、作業者から見れば、情報コードがなくて読取りできないことが明らかな場合であっても、その商品に対する読取りが実行されてしまい、所定時間が経過するまで読取りのリトライが繰り返されていた。そして、このように情報コードがないにも拘らず読取りのリトライを繰り返すといった無駄な時間は、作業効率の低下を招く。
そこで本発明の目的は、情報コードがないにも拘らず読取処理を行うといった無駄な時間を生じさせない技術を提供することである。
本発明に係る情報コード読取装置は、光学センサと、解析処理部と、出力部と、を備える。光学センサは、読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する。解析処理部は、光学センサが出力する信号に基づいて、読取対象内における情報コードの有無を判定する。出力部は、解析処理部での判定結果を出力する。
上記情報コード読取装置によれば、光学センサが出力する信号に基づいて情報コードの有無が判定されるために、読取処理の開始後の早い段階で、情報コードを読み取るための処理(デコードなど)を実行すべきか否かを決定することが可能になる。
上記情報コード読取装置において、解析処理部は、光学センサが出力する信号を用いて、読取対象内に含まれるエッジを抽出し、抽出したエッジの総数が第1閾値以下又は第2閾値以上であった場合に、読取対象内に情報コードがないと判定してもよい。この構成によれば、光学センサが出力する信号を用いた簡単なデータ解析で、読取対象内における情報コードの有無を判別できる。
上記情報コード読取装置において、解析処理部は、光学センサが出力する信号に含まれる波を、その高低差及び幅に基づいて抽出し、抽出した波の総数を用いて、読取対象内に含まれるエッジの総数を算出し、算出したエッジの総数が第1閾値以下又は第2閾値以上であった場合に、読取対象内に情報コードがないと判定してもよい。この構成においても、光学センサが出力する信号を用いた簡単なデータ解析で、読取対象内における情報コードの有無を判別できる。
上記情報コード読取装置は、複数の読取対象に対して情報コードの読取りを順に行うものであってもよい。この場合、情報コード読取装置は、読取対象内に情報コードがないと解析処理部が判定した場合、その判定結果を出力部から出力し、且つ、その読取対象に対する読取りを停止してもよい。この構成によれば、解析処理部において、読取対象内に情報コードがあると判定された場合にのみ、当該情報コードを読み取るための処理(デコードなど)が更に実行される。
上記情報コード読取装置において、解析処理部は、読取対象内に情報コードがあると判定した場合、更に、その判定に用いた信号に対するデコードを行い、そのデコードに成功したのか否かを判断してもよい。この構成によれば、情報コードを読み取ることができない原因を、読取対象内に情報コードがない場合と、読取対象内に情報コードはあるが、何らかの理由でそれを読み取ることができない場合と、に判別できる。
本発明に係る情報コード読取方法は、取得制御ステップと、解析処理ステップと、出力処理ステップと、を備える。取得制御ステップでは、読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する。解析処理ステップでは、取得制御ステップで出力される信号に基づいて、読取対象内における情報コードの有無を判定する。出力処理ステップでは、解析処理ステップでの判定結果を出力する。
本発明に係る情報コード読取プログラムは、取得制御ステップと、解析処理ステップと、出力処理ステップと、を情報コード読取装置に実行させる。取得制御ステップでは、読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する。解析処理ステップでは、取得制御ステップで出力される信号に基づいて、読取対象内における情報コードの有無を判定する。出力処理ステップでは、解析処理ステップでの判定結果を出力する。
本発明によれば、情報コードがないにも拘らず読取処理を行うといった無駄な時間がなくなる。
[1]第1実施形態
1次元コードであるバーコードを読み取るバーコードリーダに本発明を適用した実施形態について、具体的に説明する。
1次元コードであるバーコードを読み取るバーコードリーダに本発明を適用した実施形態について、具体的に説明する。
[1−1]概要
図1は、本実施形態のバーコードリーダ1を備えた読取システムを例示した概念図である。図1に示されるように、読取システムは、バーコードリーダ1に接続されるホスト機器2(パーソナルコンピュータなど)を備え、当該ホスト機器2によって読取システム全体が管理及び制御される。
図1は、本実施形態のバーコードリーダ1を備えた読取システムを例示した概念図である。図1に示されるように、読取システムは、バーコードリーダ1に接続されるホスト機器2(パーソナルコンピュータなど)を備え、当該ホスト機器2によって読取システム全体が管理及び制御される。
このような読取システムは、例えば、製造工場において商品の出荷チェックを行うラインなどにおいて、当該ラインを流れてくる商品に付されたバーコードC1の読取りに用いられる。この場合、商品の外周面のうちのバーコードC1が付されているべき部分が、バーコードリーダ1の読取対象Tとなる。一方、ラインを流れくる商品には、バーコードリーダ1の読取対象Tとなる部分にバーコードC1が付されていないものが存在し得る。バーコードリーダ1は、そのような商品に対しても、読取対象T内にバーコードC1があるものとして、当該バーコードC1を読み取るための読取処理を開始する。しかし、この場合に従来のように読取りのリトライを繰り返したのでは、時間が無駄となって作業効率が低下してしまう。
そこで、本実施形態のバーコードリーダ1は、読取対象T内におけるバーコードC1の有無を判別することで、バーコードC1がない場合の読取りのリトライを回避する。以下、バーコードリーダ1の詳細について、具体的に説明する。
[1−2]バーコードリーダの構成
図2は、バーコードリーダ1の構成を概念的に示したブロック図である。バーコードリーダ1は、投光LED11と、レンズ12と、CMOSセンサ13と、A/Dコンバータ14と、CPU15と、メモリ16と、入出力I/F17と、を備える。ここで、LEDはLight Emitting Deviceの略、CMOSはComplementary Metal Oxide Semiconductorの略、A/DはAnalog to Digitalの略、CPUはCentral Processing Unitの略、I/FはInterfaceの略である。
図2は、バーコードリーダ1の構成を概念的に示したブロック図である。バーコードリーダ1は、投光LED11と、レンズ12と、CMOSセンサ13と、A/Dコンバータ14と、CPU15と、メモリ16と、入出力I/F17と、を備える。ここで、LEDはLight Emitting Deviceの略、CMOSはComplementary Metal Oxide Semiconductorの略、A/DはAnalog to Digitalの略、CPUはCentral Processing Unitの略、I/FはInterfaceの略である。
<投光LED>
投光LED11は、読取処理の実行時に、読取対象Tとなる部分に光を照射する。読取対象Tに照射された光は、当該読取対象Tの表面において、バーコードC1を構成するバー(黒色系の部分)で吸収される一方で、バーコードC1以外の下地の部分(バー間のスペースを含む。白色系の部分)で反射される。そして、読取対象Tの表面で反射された光(読取対象Tからの反射光)は、当該読取対象Tの像を構成する光としてレンズ12に入射する。
投光LED11は、読取処理の実行時に、読取対象Tとなる部分に光を照射する。読取対象Tに照射された光は、当該読取対象Tの表面において、バーコードC1を構成するバー(黒色系の部分)で吸収される一方で、バーコードC1以外の下地の部分(バー間のスペースを含む。白色系の部分)で反射される。そして、読取対象Tの表面で反射された光(読取対象Tからの反射光)は、当該読取対象Tの像を構成する光としてレンズ12に入射する。
<レンズ>
レンズ12は、読取対象Tからの反射光を、CMOSセンサ13の検出面上に集光させることで、当該検出面上に読取対象Tの像を形成する。これにより、CMOSセンサ13は、読取対象Tの像を鮮明に捉えることができる。
レンズ12は、読取対象Tからの反射光を、CMOSセンサ13の検出面上に集光させることで、当該検出面上に読取対象Tの像を形成する。これにより、CMOSセンサ13は、読取対象Tの像を鮮明に捉えることができる。
<CMOSセンサ>
CMOSセンサ13は、読取対象Tを撮像する光学センサであり、レンズ12で集光させた光を検出して読取対象Tの像を捉えることにより、その像を構成する光が持つ光学情報(明暗など)を取得する。そして、CMOSセンサ13は、取得した光学情報に応じた信号を出力する。
CMOSセンサ13は、読取対象Tを撮像する光学センサであり、レンズ12で集光させた光を検出して読取対象Tの像を捉えることにより、その像を構成する光が持つ光学情報(明暗など)を取得する。そして、CMOSセンサ13は、取得した光学情報に応じた信号を出力する。
本実施形態では、CMOSセンサ13は、フォトダイオードが横一列に並んだラインセンサであり、読取対象Tを横切るラインL1(図2参照)上で反射された光を検出することで読取対象Tの像を1次元的に捉える。ここで、ラインL1は、読取対象T内の正しい位置にバーコードC1があった場合に当該バーコードC1を横切るラインである。従って、読取対象T内の正しい位置にバーコードC1がある場合には、バーコードC1の像が1次元的に捉えられ、読取対象T内にバーコードC1がない場合には、バーコードC1がない下地の像が1次元的に捉えられる。
そして、CMOSセンサ13のフォトダイオードは、読取対象Tの像を1次元的に捉えて得た光学情報(明暗など)に応じた電気信号(アナログ信号)を出力する。そして、この電気信号は、バーコードC1を構成するバーに対応した部分(暗い部分)で強度が弱くなり、下地に対応した部分(バー間のスペースを含む。明るい部分)で強度が強くなる。
<A/Dコンバータ>
A/Dコンバータ14は、CMOSセンサ13のフォトダイオードから出力される電気信号(アナログ信号)をデジタル信号に変換する。これにより、CMOSセンサ13で1次元的に捉えられた読取対象Tの像に対応するデジタル波形が得られ、読取対象Tの像に対するCPU15でのデータ解析が可能になる。
A/Dコンバータ14は、CMOSセンサ13のフォトダイオードから出力される電気信号(アナログ信号)をデジタル信号に変換する。これにより、CMOSセンサ13で1次元的に捉えられた読取対象Tの像に対応するデジタル波形が得られ、読取対象Tの像に対するCPU15でのデータ解析が可能になる。
図3(A)は、読取対象T内にバーコードC1がある場合に得られるデジタル波形を示した図である。一方、図3(B)は、読取対象T内にバーコードC1がない場合に得られるデジタル波形を示した図である。読取対象T内にバーコードC1がある場合には、デジタル波形は、バーコードC1を構成するバーに対応した部分で信号の強度が弱くなり、バー間のスペースに対応した部分で信号の強度が強くなる。このため、デジタル波形には、バーの数や位置、太さなどに応じた波が含まれることになる。一方、読取対象T内にバーコードC1がない場合には、バーコードC1がない下地の像が検出されるため、殆どの部分で信号の強度が強くなる。このため、デジタル波形には、バーに対応した波が含まれず、何らかの波が含まれていたとしても、その波は、下地の表面の凹凸や汚れなどによって生じたノイズなどである。
<CPU>
CPU15は、バーコードリーダ1の制御部であり、メモリ16に記憶されているプログラムを読み出して実行することにより、読取処理を実現するための処理部として機能する。尚、バーコードリーダ1の制御部は、CPU15に限らず、読取処理を実現できる他の処理装置(マイクロコンピュータなど)に適宜変更されてもよい。
CPU15は、バーコードリーダ1の制御部であり、メモリ16に記憶されているプログラムを読み出して実行することにより、読取処理を実現するための処理部として機能する。尚、バーコードリーダ1の制御部は、CPU15に限らず、読取処理を実現できる他の処理装置(マイクロコンピュータなど)に適宜変更されてもよい。
本実施形態において、読取処理を実現するための処理部には、取得制御部151と、解析処理部152と、出力処理部153と、が含まれる(図2参照)。ここで、取得制御部151は、読取対象Tとなる部分への光の照射を投光LED11に実行させると共に、光が照射された部分の撮像をCMOSセンサ13に実行させることにより、読取対象Tの像(本実施形態では、1次元的な像)についての光学情報(明暗など)を取得する。解析処理部152は、A/Dコンバータ14から出力されるデジタル波形(デジタル信号)を用いて、読取対象Tの像に対するデータ解析を行う。出力処理部153は、解析処理部152での解析結果や判定結果を入出力I/F17から出力する。尚、読取処理の詳細については後述する。
<メモリ>
メモリ16は、各種情報(上述したプログラムを含む)を記憶する記憶部であり、揮発性メモリや不揮発性メモリを含む。
メモリ16は、各種情報(上述したプログラムを含む)を記憶する記憶部であり、揮発性メモリや不揮発性メモリを含む。
<入出力I/F>
入出力I/F17は、各種信号の入出力に用いられるインタフェースであり、入出力端子や通信インタフェースなどを含む。本実施形態では、ホスト機器2が入出力I/F17に接続されている。そして、ホスト機器2からの読取りの実行指令が、入出力I/F17からバーコードリーダ1に入力され、解析処理部152での解析結果や判定結果が、入出力I/F17からホスト機器2へ出力される。
入出力I/F17は、各種信号の入出力に用いられるインタフェースであり、入出力端子や通信インタフェースなどを含む。本実施形態では、ホスト機器2が入出力I/F17に接続されている。そして、ホスト機器2からの読取りの実行指令が、入出力I/F17からバーコードリーダ1に入力され、解析処理部152での解析結果や判定結果が、入出力I/F17からホスト機器2へ出力される。
[1−3]読取処理
図4は、第1実施形態で実行される読取処理を示したフローチャートである。読取処理は、ホスト機器2からの読取りの実行指令をバーコードリーダ1が受け取ったときに開始される。読取処理が開始されると、先ず、取得制御部151が、読取対象Tとなる部分への光の照射を投光LED11に実行させると共に、光が照射された部分の撮像をCMOSセンサ13に実行させることにより、読取対象Tの像(本実施形態では、1次元的な像)についての光学情報(明暗など)をCMOSセンサ13で取得する(図4のステップS11)。また、CMOSセンサ13は、光学情報を取得した場合、当該光学情報に応じた電気信号(アナログ信号)を出力する。CMOSセンサ13から出力された電気信号は、A/Dコンバータ14でデジタル波形(デジタル信号)に変換される。そして、そのデジタル波形がCPU15に入力される。
図4は、第1実施形態で実行される読取処理を示したフローチャートである。読取処理は、ホスト機器2からの読取りの実行指令をバーコードリーダ1が受け取ったときに開始される。読取処理が開始されると、先ず、取得制御部151が、読取対象Tとなる部分への光の照射を投光LED11に実行させると共に、光が照射された部分の撮像をCMOSセンサ13に実行させることにより、読取対象Tの像(本実施形態では、1次元的な像)についての光学情報(明暗など)をCMOSセンサ13で取得する(図4のステップS11)。また、CMOSセンサ13は、光学情報を取得した場合、当該光学情報に応じた電気信号(アナログ信号)を出力する。CMOSセンサ13から出力された電気信号は、A/Dコンバータ14でデジタル波形(デジタル信号)に変換される。そして、そのデジタル波形がCPU15に入力される。
CPU15にデジタル波形が入力されると、解析処理部152が、そのデジタル波形に基づいて、読取対象T内におけるバーコードC1の有無を判定する(図4のステップS12)。
具体的には、解析処理部152は、デジタル波形を用いて、読取対象Tの像内に含まれるエッジを抽出する(図4のステップS121A)。尚、エッジの抽出には、画像処理技術の1つであるエッジ処理の手法を用いることができる。
次に、解析処理部152は、抽出したエッジの数をカウントすることにより、読取対象Tの像内に含まれるエッジの総数Neを算出する(図4のステップS121B)。
その後、解析処理部152は、算出したエッジの総数Neを第1閾値Nt1及び第2閾値Nt2と比較することにより、エッジの総数Neが第1閾値Nt1以上又は第2閾値Nt2以下であるか否かを判断する(図4のステップS121C)。即ち、解析処理部152は、エッジの総数Neが所定範囲(上限値=Nt1、下限値=Nt2)外であるのか否かを判断する。
ここで、バーコードC1は複数のバー(黒色系の部分)で構成されている。このため、読取対象T内にバーコードC1がある場合には、各バーの両端がエッジとして抽出され、バーの数の約2倍の数がエッジの総数Neとして得られることになる。従って、読み取ろうとしている1種又は複数種のバーコードC1のそれぞれに含まれるバーの数から、読取対象T内にバーコードC1があった場合に抽出されるべきエッジの総数Neの上限値及び下限値(所定範囲)を決定することができ、当該上限値及び下限値をそれぞれ第1閾値Nt1及び第2閾値Nt2とすることができる。そして、解析処理部152で算出されたエッジの総数Neが所定範囲内であった場合には、抽出したエッジはバーコードC1に対応したものであると判断できる。一方、解析処理部152で算出されたエッジの総数Neが所定範囲外であった場合には、抽出したエッジはバーコードC1に対応したものでないと判断できる。
そこで、解析処理部152は、ステップS121Cにて「エッジの総数Neが第1閾値Nt1以上又は第2閾値Nt2以下である(Yes)」と判断した場合(即ち、エッジの総数Neが所定範囲外であると判断した場合)、その判断を以て、読取対象T内にバーコードC1がないと判定する。この場合、読取対象T内にバーコードC1がないとの判定結果が、出力処理部153により、入出力I/F17からホスト機器2へ出力される(図4のステップS21)。その後、読取処理が終了する。即ち、解析処理部152は、後述するステップS14〜S16の処理(バーコードC1を読み取るための処理(二値化、デコードなど))を実行することなく、途中で読取対象Tに対する読取りを停止する。
一方、解析処理部152は、ステップS121Cにて「エッジの総数Neが第1閾値Nt1以上又は第2閾値Nt2以下でない(No)」と判断した場合(即ち、エッジの総数Neが所定範囲内であると判断した場合)、その判断を以て、読取対象T内にバーコードC1があると判定する。この場合、解析処理部152は、読取対象T内にあるバーコードC1を読み取るための処理を更に実行する。具体的には、以下のとおりである。
解析処理部152は、デジタル波形を二値化する(図4のステップS13)。具体的には、解析処理部152は、デジタル波形について、信号の強度が閾値より大きい部分(明るい部分)を「1」とし、信号の強度が閾値より小さい部分(暗い部分)を「0」とする。これにより、解析処理部152は、デジタル波形を、「0」と「1」の数字の並びに変換することで、バーに対応して「0」が連続して現れる部分(バー部分)と、バー間のスペースに対応して「1」が連続して現れる部分(スペース部分)とを判別することが可能になる。
そして、解析処理部152は、二値化後のデータを用いて、バー部分の幅(太さ)とスペース部分の幅(太さ)とを算出する。この処理は、二値化後のデータにランレングス化処理を施すことで実行されてもよい。
その後、解析処理部152は、二値化後のデータを用いてデコードを行う(図4のステップS14)。具体的には、解析処理部152は、二値化後のデータから得られるバー部分の幅(太さ)とスペース部分の幅(太さ)との組合せを、バーコード規則に従ってコード化する。そして、デコードに成功した場合には、数字やアルファベットなどが並んだ文字列が得られる。一方、印刷不良でバーコードC1の一部が不鮮明であったり、バーコードC1のシールに皺が生じていたりした場合には、解析処理部152は、不鮮明な部分や皺の部分でコード化できずに、デコードに失敗することになる。
そこで、解析処理部152は、デコードの実行後に、そのデコード(バーコード規則に従ったコード化)に成功したのか否かを判断する(図4のステップS15)。そして、解析処理部152は、ステップS15で「デコードに成功した(Yes)」と判断した場合、その判断を以て、バーコードC1の読取りに成功したと判断する。この場合、バーコードC1の読取りに成功したとの解析結果が、出力処理部153により、入出力I/F17からホスト機器2へ出力される(図4のステップS22A)。このとき、出力処理部153は、ステップS12での判定結果(即ち、読取対象T内にバーコードC1があるとの判定結果)もホスト機器2へ出力してもよい。その後、読取処理が終了する。
一方、解析処理部152は、ステップS15で「デコードに成功しなかった(No)」と判断した場合、その判断を以て、バーコードC1の読取りに失敗したと判断する。この場合、解析処理部152は、読取処理の開始時からの経過時間tが、所定時間tcに達したか否かを判断する(図4のステップS16)。ここで、所定時間tcは、デコードに成功しなかった場合に、読取りのリトライをどの程度の時間が経過するまで繰り返すかを規定したものである。
そして、解析処理部152は、ステップS16にて「所定時間tcに達していない(No)」と判断した場合、ステップS11からの処理を再び実行する。一方、ステップS16にて解析処理部152が「所定時間tcに達した(Yes)」と判断した場合には、バーコードC1の読取りに失敗したとの解析結果が、出力処理部153により、入出力I/F17からホスト機器2へ出力される(図4のステップS22B)。このとき、出力処理部153は、ステップS12での判定結果(即ち、読取対象T内にバーコードC1があるとの判定結果)もホスト機器2へ出力してもよい。その後、読取処理が終了する。
上記読取処理によれば、A/Dコンバータ14から出力されるデジタル波形を用いた簡単なデータ解析で、読取対象T内におけるバーコードC1の有無を判別できる。また、デジタル波形の二値化(図4のステップS13)の前に、バーコードC1の有無が判定されるため、読取処理の開始後の早い段階で、バーコードC1を読み取るための処理(二値化、デコードなど)を実行すべきか否かを決定できる。本実施形態では、読取対象T内にバーコードC1がないと判定された場合、途中で読取対象Tに対する読取りが停止される。そして、読取対象T内にバーコードC1があると判定された場合にのみ、当該バーコードC1を読み取るための処理(二値化、デコードなど)が更に実行される。よって、読取対象T内にバーコードC1がないにも拘らず読取りのリトライが繰り返されるといった無駄な時間がなくなり、その結果として、バーコードC1に対する読取処理が効率良く実行される。
また、読取対象T内におけるバーコードC1の有無を判別に加えて、デジタル波形(デジタル信号)に対するデコードに成功したのか否かの判断が実行されることにより、バーコードC1を読み取ることができない原因を、読取対象T内にバーコードC1がない場合と、読取対象T内にバーコードC1はあるが、何らかの理由でそれを読み取ることができない場合(例えば、印刷不良でバーコードC1の一部が不鮮明であったり、バーコードC1のシールに皺が生じていたりして、デコードできない場合)と、に判別できる。
更に、商品の出荷チェックを行うラインなどを流れる複数の商品に対してバーコードC1の読取りを順に行うシステム(図1参照)では、ある商品において読取対象T内にバーコードC1がないと判定された場合、その商品に対する読取りを停止し、次の商品に対する読取りに即座に移行できる。具体的には、ホスト機器2が、読取対象T内にバーコードC1がないとの判定結果をバーコードリーダ1から受信した場合、次の商品に対する読取りを実行するための実行指令をバーコードリーダ1に送信する。このようなシステムによれば、無駄な時間を生じずに、次の商品に対するバーコードC1の読取りに移行できる。
[2]第2実施形態
図5は、第2実施形態で実行される読取処理を示したフローチャートである。解析処理部152は、上述した読取処理のステップS12において、読取対象T内におけるバーコードC1の有無を別の方法で判定してもよい。以下、本実施形態でのステップS12の処理内容について、具体的に説明する。
図5は、第2実施形態で実行される読取処理を示したフローチャートである。解析処理部152は、上述した読取処理のステップS12において、読取対象T内におけるバーコードC1の有無を別の方法で判定してもよい。以下、本実施形態でのステップS12の処理内容について、具体的に説明する。
先ず、解析処理部152は、A/Dコンバータ14から出力されるデジタル波形(デジタル信号)に含まれる波を、その高低差及び幅に基づいて抽出する(図5のステップS122A)。具体的には、解析処理部152は、デジタル波形に含まれる波のうち、波の高低差が所定範囲内にあり、且つ波の幅が所定範囲内にあるものを抽出する。ここで、これらの所定範囲は、波の高低差及び幅がそれぞれ所定範囲内であった場合に、その波を、バーコードC1を構成するバーの数や位置、太さなどに応じてデジタル波形に現れる波と同程度の高低差及び幅を持ったものであると認定できるように設定される。
また、読取対象T内にバーコードC1がある場合には、デジタル波形は、バーコードC1を構成するバーに対応した部分で信号の強度が弱くなり、バー間のスペースに対応した部分で信号の強度が強くなる。従って、デジタル波形においては、バーに対応した部分が下向きに凸状の波として現れ、スペースに対応した部分が上向きに凸状の波として現れる。このため、解析処理部152は、高低差及び幅がそれぞれ所定範囲内である波を全て抽出しなくても、バーに対応した波だけを選択するべく下向きに凸状の波だけを抽出してもよいし、スペースに対応した波だけを選択するべく上向きに凸状の波だけを抽出してもよい。
次に、解析処理部152は、抽出した波の数をカウントすることにより、デジタル波形に含まれる波の総数Nwを算出する(図4のステップS122B)。そして、解析処理部152は、算出した波の総数Nwを用いて、読取対象T内に含まれるエッジの総数Neを算出する(図5のステップS122C)。一例として、解析処理部152は、上述したように上向きに凸状又は下向きに凸状の何れか一方の波をだけを抽出した場合には、波の総数Nwを2倍にすることでエッジの総数Ne(=2×Nw)を算出できる。
その後、解析処理部152は、算出したエッジの総数Neを第1閾値Nt1及び第2閾値Nt2と比較することにより、エッジの総数Neが第1閾値Nt1以上又は第2閾値Nt2以下であるか否かを判断する(図5のステップS122D)。尚、このステップS122Dでは、第1実施形態で説明したステップS121(図4)と同様の処理が実行されるため、詳細については説明を省略する。
このような方法でも、第1実施形態と同様、A/Dコンバータ14から出力されるデジタル波形を用いた簡単なデータ解析で、読取対象T内におけるバーコードC1の有無を判別できる。また、デジタル波形の二値化(図4のステップS13)の前に、バーコードC1の有無が判定されるため、読取処理の開始後の早い段階で、バーコードC1を読み取るための処理(二値化、デコードなど)を実行すべきか否かを決定できる。
[3]変形例
上述した第1実施形態及び第2実施形態のバーコードリーダ1は、以下のように変形されてもよい。
上述した第1実施形態及び第2実施形態のバーコードリーダ1は、以下のように変形されてもよい。
[3−1]第1変形例
図6は、第1変形例で実行される読取処理を示したフローチャートである。このフローチャートのように、解析処理部152は、ステップ12にて読取対象T内にバーコードC1があると判定した場合でも、ステップS13で得た二値化後のデータに基づいて、再度、読取対象T内におけるバーコードC1の有無を判定してもよい(図6のステップS31)。尚、図6は、第1実施形態(図4)の変形例として第1変形例を示したものであるが、本変形例は、第2実施形態(図5)にも適用できる。
図6は、第1変形例で実行される読取処理を示したフローチャートである。このフローチャートのように、解析処理部152は、ステップ12にて読取対象T内にバーコードC1があると判定した場合でも、ステップS13で得た二値化後のデータに基づいて、再度、読取対象T内におけるバーコードC1の有無を判定してもよい(図6のステップS31)。尚、図6は、第1実施形態(図4)の変形例として第1変形例を示したものであるが、本変形例は、第2実施形態(図5)にも適用できる。
ステップS31では、解析処理部152は、二値化後のデータを用いて、読取対象Tの像内に含まれるエッジを抽出し、抽出したエッジの数をカウントすることでエッジの総数Neを算出する。その後、解析処理部152は、算出したエッジの総数Neを第1閾値Nt1及び第2閾値Nt2と比較することにより、エッジの総数Neが第1閾値Nt1以上又は第2閾値Nt2以下であるか否かを判断する。尚、ステップS31では、この方法に限らず、二値化後のデータを用いた他の方法でバーコードC1の有無が判定されてもよい。
そして、解析処理部152は、ステップS31にて「読取対象T内にバーコードC1がある」と判定した場合には、ステップS14(デコード)からの処理を実行する。一方、解析処理部152は、ステップS31にて「読取対象T内にバーコードC1がない」と判定した場合には、ステップS21(判定結果の出力)の処理を実行する。
このように、読取対象T内におけるバーコードC1の有無を、デジタル波形に基づく判定と、二値化後のデータに基づく判定といった2種類の方法で判定することにより、バーコードC1の有無についての判定精度を高めることができる。
[3−2]第2変形例
上述したバーコードリーダ1は、読取対象Tを撮像する光学センサとして、CMOSセンサ13に限らず、CCD(Charge Coupled Device)センサなどの撮像素子を備えたものであってもよい。また、バーコードリーダ1は、読取対象Tを横切るラインL1(図2参照)に沿って、ポリゴンミラーで走査しながらレーザ光を照射し、そのときの反射光を受光素子(フォトダイオードなど)で検出することで読取対象Tの像を捉えるものであってもよい。
上述したバーコードリーダ1は、読取対象Tを撮像する光学センサとして、CMOSセンサ13に限らず、CCD(Charge Coupled Device)センサなどの撮像素子を備えたものであってもよい。また、バーコードリーダ1は、読取対象Tを横切るラインL1(図2参照)に沿って、ポリゴンミラーで走査しながらレーザ光を照射し、そのときの反射光を受光素子(フォトダイオードなど)で検出することで読取対象Tの像を捉えるものであってもよい。
また、上述したバーコードリーダ1は、バーコードC1に限らず、EAN(European Article Number)やCode39などの他の1次元コードの読取りにも適用できる。
[3−3]第3変形例
上述したバーコードリーダ1において、CMOSセンサ13は、フォトダイオードがマトリクス状に並んだエリアセンサであってもよい。この場合、読取対象Tの像が2次元的に捉えられるため、A/Dコンバータ14からも、2次元的なデジタル波形(デジタル信号)が出力される。このような構成であっても、解析処理部152は、2次元的なデジタル波形のうち、上述した読取対象Tを横切るラインL1上で反射された光に対応する部分(1次元的な情報)だけを取り出して用いることにより、上述した第1実施形態や第2実施形態と同様のデータ解析(図4、図5)を実行することが可能になる。
上述したバーコードリーダ1において、CMOSセンサ13は、フォトダイオードがマトリクス状に並んだエリアセンサであってもよい。この場合、読取対象Tの像が2次元的に捉えられるため、A/Dコンバータ14からも、2次元的なデジタル波形(デジタル信号)が出力される。このような構成であっても、解析処理部152は、2次元的なデジタル波形のうち、上述した読取対象Tを横切るラインL1上で反射された光に対応する部分(1次元的な情報)だけを取り出して用いることにより、上述した第1実施形態や第2実施形態と同様のデータ解析(図4、図5)を実行することが可能になる。
また、このように2次元的なデジタル波形から1次元的な情報を取り出す技術は、バーコードC1などの1次元コードに限らず、QRコード(登録商標)などの2次元コードの読取り時において、読取対象T内における2次元コードの有無の判定にも適用できる。
[3−4]第4変形例
上述した読取処理のステップS12において、解析処理部152は、読取対象T内におけるバーコードC1の有無の判定を、以下のような方法で行ってもよい。
上述した読取処理のステップS12において、解析処理部152は、読取対象T内におけるバーコードC1の有無の判定を、以下のような方法で行ってもよい。
先ず、解析処理部152は、A/Dコンバータ14から出力されるデジタル波形(デジタル信号)から信号の強度に関する情報を取得する。ここで、この情報には、強度の平均値や、強度の分布などが含まれる。そして、解析処理部152は、取得した信号の強度に関する情報に基づいて、読取対象T内におけるバーコードC1の有無を判定する。例えば、読取対象T内にバーコードC1がない場合には、バーコードC1がない下地の像が1次元的に捉えられるため、デジタル波形全体で信号の強度が強くなり、それが、強度の平均値の大きさや分布の偏りとして現れることになる。よって、解析処理部152は、信号の強度に関する情報を用いることで、読取対象T内におけるバーコードC1の有無を判定できる。
上述の実施形態の説明は、すべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上述の実施形態ではなく、特許請求の範囲によって示される。更に、本発明の範囲には、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれることが意図される。
1 バーコードリーダ
2 ホスト機器
T 読取対象
t 経過時間
11 投光LED
12 レンズ
13 CMOSセンサ
14 A/Dコンバータ
15 CPU
16 メモリ
17 入出力I/F
C1 バーコード
L1 ライン
Ne エッジの総数
Nw 波の総数
tc 所定時間
151 取得制御部
152 解析処理部
153 出力処理部
Nt1 第1閾値
Nt2 第2閾値
2 ホスト機器
T 読取対象
t 経過時間
11 投光LED
12 レンズ
13 CMOSセンサ
14 A/Dコンバータ
15 CPU
16 メモリ
17 入出力I/F
C1 バーコード
L1 ライン
Ne エッジの総数
Nw 波の総数
tc 所定時間
151 取得制御部
152 解析処理部
153 出力処理部
Nt1 第1閾値
Nt2 第2閾値
Claims (7)
- 読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する光学センサと、
前記光学センサが出力する前記信号に基づいて、前記読取対象内における情報コードの有無を判定する解析処理部と、
前記解析処理部での判定結果を出力する出力部と、
を備える、情報コード読取装置。 - 前記解析処理部は、
前記光学センサが出力する前記信号を用いて、前記読取対象内に含まれるエッジを抽出し、
抽出した前記エッジの総数が第1閾値以下又は第2閾値以上であった場合に、前記読取対象内に前記情報コードがないと判定する、請求項1に記載の情報コード読取装置。 - 前記解析処理部は、
前記光学センサが出力する前記信号に含まれる波を、その高低差及び幅に基づいて抽出し、
抽出した前記波の総数を用いて、前記読取対象内に含まれるエッジの総数を算出し、
算出した前記エッジの総数が第1閾値以下又は第2閾値以上であった場合に、前記読取対象内に前記情報コードがないと判定する、請求項1に記載の情報コード読取装置。 - 複数の読取対象に対して前記情報コードの読取りを順に行う請求項1〜3の何れかに記載の情報コード読取装置であって、
前記読取対象内に前記情報コードがないと前記解析処理部が判定した場合、その判定結果を前記出力部から出力し、且つ、その読取対象に対する読取りを停止する、情報コード読取装置。 - 前記解析処理部は、前記読取対象内に前記情報コードがあると判定した場合、更に、その判定に用いた前記信号に対するデコードを行い、そのデコードに成功したのか否かを判断する、請求項1〜4の何れかに記載の情報コード読取装置。
- 読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する取得制御ステップと、
前記取得制御ステップで出力される前記信号に基づいて、前記読取対象内における情報コードの有無を判定する解析処理ステップと、
前記解析処理ステップでの判定結果を出力する出力処理ステップと、
を備える、情報コード読取方法。 - 読取対象から光学情報を取得し、当該光学情報に応じた信号を出力する取得制御ステップと、
前記取得制御ステップで出力される前記信号に基づいて、前記読取対象内における情報コードの有無を判定する解析処理ステップと、
前記解析処理ステップでの判定結果を出力する出力処理ステップと、
を情報コード読取装置に実行させる、情報コード読取プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019027376A JP2020135358A (ja) | 2019-02-19 | 2019-02-19 | 情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2019027376A JP2020135358A (ja) | 2019-02-19 | 2019-02-19 | 情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2020135358A true JP2020135358A (ja) | 2020-08-31 |
Family
ID=72278667
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019027376A Pending JP2020135358A (ja) | 2019-02-19 | 2019-02-19 | 情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2020135358A (ja) |
-
2019
- 2019-02-19 JP JP2019027376A patent/JP2020135358A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107092850B (zh) | 具有边缘检测增强的条码读取器 | |
US7246747B2 (en) | Multi-format bar code reader | |
EP1861810B1 (en) | Apparatus and process for two-stage decoding of high-density optical symbols | |
US20020044689A1 (en) | Apparatus and method for global and local feature extraction from digital images | |
US20120033894A1 (en) | Optical Information-Reading Apparatus and Optical Information-Reading Method | |
JP5017988B2 (ja) | コード読取装置及びプログラム | |
US9262665B2 (en) | Decoding method and decoding processing device | |
JP2020135358A (ja) | 情報コード読取装置、情報コード読取方法、及び情報コード読取プログラム | |
JP4652201B2 (ja) | バーコードシンボル情報読取方法及びバーコードシンボル情報読取装置 | |
US8403221B2 (en) | Method and apparatus for reading barcode information | |
JP2020154908A (ja) | 情報コード読取装置、情報コード読取システム、情報コード読取方法、及び情報コード読取プログラム | |
JP2020154909A (ja) | 2次元画像読取装置、2次元画像読取方法、及び2次元画像読取プログラム | |
JP3711725B2 (ja) | 画像認識装置 | |
JP2011233099A (ja) | 光学的情報読取装置及び光学的情報読取方法 | |
JP4107237B2 (ja) | 光学的情報読取装置の境界位置特定方法 | |
JP2020135359A (ja) | 2次元情報コード読取装置、2次元情報コード読取方法、及び2次元情報コード読取プログラム | |
JP2011159178A (ja) | 光学的情報読取装置、光学的情報読取方法及びデジタルフィルタの作成方法 | |
JPH0431436B2 (ja) | ||
JP5453594B2 (ja) | シンボル情報読取装置及びシンボル情報読取方法 | |
JP5441200B1 (ja) | バーコード読取装置及びバーコード読取方法 | |
JP3891072B2 (ja) | バーコード読取方法およびバーコード読取装置 | |
JP2006178641A (ja) | シンボル情報読取方法及びシンボル情報読取装置 | |
JPH02228785A (ja) | バーコード読取装置 | |
JPH0997302A (ja) | 光学式情報読取装置 |