JP4724802B1 - 二次元コードリーダおよびプログラム - Google Patents
二次元コードリーダおよびプログラム Download PDFInfo
- Publication number
- JP4724802B1 JP4724802B1 JP2010172620A JP2010172620A JP4724802B1 JP 4724802 B1 JP4724802 B1 JP 4724802B1 JP 2010172620 A JP2010172620 A JP 2010172620A JP 2010172620 A JP2010172620 A JP 2010172620A JP 4724802 B1 JP4724802 B1 JP 4724802B1
- Authority
- JP
- Japan
- Prior art keywords
- region
- dimensional code
- area
- candidate
- image
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K5/00—Methods or arrangements for verifying the correctness of markings on a record carrier; Column detection devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V30/00—Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
- G06V30/10—Character recognition
- G06V30/22—Character recognition characterised by the type of writing
- G06V30/224—Character recognition characterised by the type of writing of printed characters having additional code marks or containing code marks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/10841—Particularities of the light-sensitive elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10544—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
- G06K7/10821—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
- G06K7/1093—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/14—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
- G06K7/1404—Methods for optical code recognition
- G06K7/1439—Methods for optical code recognition including a method step for retrieval of the optical code
- G06K7/1443—Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/10—Image acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
【解決手段】取得された画像(原画像)に基づくエッジ画像の生成(S108)、このエッジ画像中における候補領域の抽出(S110)、この抽出した候補領域が有効か否かの判定(S120,S122)、有効と判定された候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定(S128)を経て、原画像中から二次元コードの領域を検出する(S130)。また、予め設定された順番で複数種類の変換条件のうち該当する順番に対応した変換条件に基づくエッジ画像の生成、該生成したエッジ画像中における候補領域の抽出、この抽出した候補領域が有効か否かの判定、有効な候補領域に対応する原画像中の対応領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を繰り返し実施する(S108〜S290)。
【選択図】図3
Description
本発明は、このような課題を解決するためになされたものであり、その目的は、画像に含まれる複数の二次元コードそれぞれを特定するための技術を提供することである。
上記課題を解決するために、本発明に係る第1の構成の二次元コードリーダは、複数の二次元コードの領域を含む領域が撮影されてなる画像を取得する画像取得部と、該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、該成分変換部により変換されたエッジ画像から、あらかじめ定められた領域規則であって、前記二次元コードの領域における輪郭部の成す外形形状と該外形形状に対して類似する形状として設定された形状とが定められた規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、前記二次元コードの領域における輪郭部の成す外形形状である理想の外形形状のパラメータに対して所定の誤差範囲が設定された情報である形状情報に基づき、前記領域抽出部で抽出された候補領域が有効な候補領域であるか否かを判定する候補領域判定部と、前記画像取得部により取得された画像における、前記候補領域判定部により有効と判定された候補領域に対応する対応領域それぞれについて、該対応領域を形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出する領域検出部と、前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される情報を識別する情報識別部と、前記成分変換部による画像のエッジ画像への変換を、複数種類の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の抽出、前記候補領域判定部による有効な候補領域の判定、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施処理を行う繰り返し実施部と、特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出し、かつ、前記候補領域判定部が有効と判定した候補領域(以降「抽出済み候補領域」という)と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えている。
このように、原画像の領域において、エッジ画像から抽出された有効な候補領域に対応する対応領域のうち、特徴的なパターンが含まれる対応領域を、原画像中における二次元コードの領域として検出することにより、原画像に含まれる複数の二次元コードの領域それぞれを特定することができるようになる。
このとき、二次元コードの領域の理想の形状に対して、所定の誤差範囲の設定された形状情報に基づき、抽出された候補領域の形状情報が誤差範囲内のときに該当候補領域を有効な領域と判定し、誤差範囲外のときに該当候補領域を無効な領域と判定することができる。
これにより、誤差範囲の設定次第で、二次元コードの理想な外形形状に対して、かけ離れた外形形状を有する候補領域を、無効な領域として、以降の処理対象から除外することができるので、有効か否かの判定を行わなかった場合と比べて、二次元コードの領域から情報の識別を行うまでに要する処理負荷および処理時間を抑えることができる。
また、撮影環境や撮影画像の画質等によって、本来二次元コードの領域であるはずの候補領域の外形形状が理想の外形形状とは異なる形状となっている場合がある。このような場合に、有効か否かを判定する際の形状情報に、撮影環境や画質等を考慮した誤差範囲を設定することによって、二次元コードの領域を含む候補領域を処理対象から除外してしまうのを防ぐことができる。
そのため、二次元コードの理想の形状から逸脱した形状等の明らかに二次元コードの領域とは異なる形状の候補領域に対して、特徴的なパターンが含まれているか否かの判定、二次元コードの領域の検出および情報の識別を含む処理が行われるのを防ぐことができる。
また、上記構成では、複数種類の変換条件に対応するエッジ画像それぞれについて、候補領域の抽出、この抽出した候補領域が有効か否かの判定、有効と判定された候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定、および、原画像中からの二次元コードの領域の検出を繰り返し実施している。
また、この繰り返しの過程では、特定のエッジ画像について新たに抽出された候補領域が、先に参照されたエッジ画像について抽出された抽出済み候補領域と、原画像の領域において一致している場合も想定される。ところが、上記構成では、このように一致する抽出済み候補領域について、抽出した候補領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を実施しない。
この構成において、原画像から変換されるエッジ画像は、原画像に含まれるエッジ成分の分布を示すものであればよく、例えば、原画像における輝度、明度など特定の成分のみ
を分布させた画像における所定のしきい値以上の成分のみを抽出(具体的にはしきい値で二値化)した画像や、この画像に対して輪郭線の抽出をした画像などのことである。
また、原画像から二次元コードの領域を検出する際に参照される「特徴的なパターン」とは、二次元コードについて定められた特徴的なパターンを直接的または間接的に示す情報であればよく、例えば、二次元コードにおいてコード化のシンボルとなるセルの配置パターンや、二次元コードであることを識別するために配置された特定シンボルの配置パターンや、二次元コードであることを識別するために配置されたマークのパターンを直接的または間接的に示す情報などのことである。
さらに、第2の構成の二次元コードリーダは、上記第1の構成において、前記形状情報は、前記二次元コードの外形形状が多角形の場合に、各辺の長さの比の情報、および、各二辺間の角度の情報を含む。
この構成では、二次元コードが多角形の場合に、少なくとも、抽出された候補領域の各辺の長さの比および各二辺間のなす角度と、形状情報として設定された各辺の長さの比および各二辺間の角度とを比較し、これらの比較結果から、抽出した候補領域が有効な領域か否かを判定することができる。
多角形の場合は、各辺の長さの比と各二辺間の角度とから外形形状が概ね決まるので、これらを比較して、両者が明らかに異なる場合に、該当候補領域を無効な領域とすることで、二次元コードの領域を含まない候補領域をより確実に処理対象から排除することができる。
さらに、第3の構成の二次元コードリーダは、上記第1または第2の構成のいずれか1において、前記複数種類の変換条件は、前記画像取得部により取得された画像をグレースケール画像に変換し、該グレースケール画像を変換条件の種類ごとに異なるしきい値で二値化して二値化画像を生成し、該二値化画像におけるエッジ部分を線形化するといった変換条件を含む。
これにより、撮影環境等に応じて複数種類のしきい値を用意することで、対応するしきい値のある様々な条件下において、原画像から二次元コードの領域を検出することができるようになるので、二次元コードの領域の検出精度を向上することができる。
この構成において、エッジ部分の線形化とは、二値化画像中に含まれるオブジェクトの輪郭線を抽出する処理であり、輪郭線を抽出できればどのような処理方法を用いてもよい。
さらに、第4の構成の二次元コードリーダは、上記第1〜第3の構成のいずれか1において、前記複数種類の変換条件は、前記画像取得部により取得された画像から変換条件の種類ごとに異なる色成分を抽出し、該抽出した色成分よりなる色成分画像をグレースケール画像に変換し、該グレースケール画像を所定のしきい値で二値化してなる二値化画像を生成し、該二値化画像におけるエッジ部分を線形化するといった変換条件を含む。
分を線形化する処理を行ってエッジ画像を生成することができる。
これにより、例えば、しきい値の種類だけでは対応できない環境下において、特定の色成分を抽出してなる成分画像から生成したエッジ画像に対して二次元コードの領域を検出するための各処理を実施することができるので、二次元コードの領域の検出精度をより向上することができる。
さらに、第5の構成の二次元コードリーダは、上記第1〜第4の構成のいずれか1において、前記二次元コードは、複数のセルが配列され、各セルに色を付すことで該色または色の組合せに応じた1以上の情報それぞれをコード化した二次元コードであり、前記情報識別部は、前記二次元コードの領域における各セルの領域に付された色または色の組合せに基づいて情報を識別する。
この構成であれば、二次元コードに付された色に基づいて、二次元コードの領域で示される情報を識別することができる。
さらに、第6の構成の二次元コードリーダは、上記第5の構成において、前記二次元コードの領域は、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められている。
このような問題に対しては、一部のセルに対応する領域が欠けてしまったような場合であっても、これを補償して適切な情報の識別が実現できるようにしておくことが望ましい。
なお、この構成において、着色規則に従って推定されるセルの色として、複数の色が推定されるような場合には、そのうちのいずれかの色を、例えば、推定結果の確からしさなどといったパラメータに基づいて選択し、そうして選択した色が付されていると推定することとすればよい。また、複数の色が推定されるような場合、複数の色が付されているパターンそれぞれについて情報を識別し、そうして識別した情報の中から、いずれかの情報をユーザに選択させるようにしてもよい。
さらに、第7の構成の二次元コードリーダは、上記第5または第6の構成において、前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定する色判定部、を備えている。そして、前記情報識別部は、前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別する。
この構成であれば、二次元コードにおける各セルの領域に付されている色を、色空間におけるいずれの判定領域に含まれているかにより判定することができる。
さらに、第8の構成の二次元コードリーダは、上記第7の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定する。
上記第7の構成においては、画像の生成条件によっては多くのセルの領域に付された色がいずれの判定領域にも含まれないことも考えられ、この場合、情報の識別そのものができなくなってしまう。
このような問題に対しては、多くのセルの領域に付された色がいずれの判定領域にも含まれない場合であっても、これを補償して適切な情報の識別が実現できるようにしておくことが望ましい。
この構成において、判定領域を拡げる際の拡張幅は、他の判定領域と干渉しない範囲を上限として拡げることとすればよく、判定領域のいずれにも含まれていないと判定したセルが一定数未満となるまで、判定領域を徐々に拡げて再度の判定を繰り返すこととしてもよい。
さらに、第9の構成の二次元コードリーダは、上記第7の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定する。
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
なお、上記第8、第9の構成において、「判定領域のいずれにも含まれていないと判定したセルが一定数以上存在する」における「一定数」については、全てのセルに占める該当セルの割合であってもよいし、該当セルの絶対数であってもよい。また、二次元コードにおいて該当セルが特定パターンで配置されている数であってよい。
さらに、第10の構成の二次元コードリーダは、上記第1〜第9の構成のいずれか1において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、前記候補領域判定手段により有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定する。
この構成であれば、特定のエッジ画像から抽出され、かつ、有効と判定された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
さらに、第11の構成の二次元コードリーダは、上記第1〜第10の構成のいずれか1において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定する。
この構成であれば、特定のエッジ画像から抽出され、かつ、有効と判定された候補領域、および、別のエッジ画像における抽出済み候補領域のうち、一方の候補領域が他方の候補領域に包摂されていることをもって、両候補領域が一致すると判定することができる。
さらに、第12の構成の二次元コードリーダは、上記第1〜第11の構成のいずれか1において、前記二次元コードの領域が多角形である場合において、前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれについて、該候補領域として形成された多角形における1以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定する。
ここでいう「いずれかの頂点から一定範囲内」とは、特定のエッジ画像から抽出され、かつ、有効と判定された候補領域と、別のエッジ画像における抽出済み候補領域とが一致
する場合における両者の位置関係で決まる範囲内とすればよい。
さらに、第13の構成の二次元コードリーダは、上記第1〜第12の構成のいずれか1において、前記領域抽出部は、前記領域規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域を候補領域として抽出し、前記候補領域判定部は、前記形状情報としての形状規則を規定するテンプレートに基づいて、前記領域抽出部により抽出された候補領域が、そのテンプレートにて定められた規則に従って形成された領域か否かを判定することで有効か否かを判定する。
なお、上述した二次元コードリーダは、単体の装置により構成してもよいし、複数の装置が協調して動作するシステムとして構成してもよい。
また、上記課題を解決するための第14の構成としては、上記第1から第13のいずれか1の構成における全ての構成部として機能させるための各種処理手順を、コンピュータシステムに実行させるためのプログラムとしてもよい。
このようなプログラムにより制御されるコンピュータシステムは、上記各構成に係る二次元コードリーダの一部を構成することができる。
なお、上述した各プログラムは、コンピュータシステムによる処理に適した命令の順番付けられた列からなるものであって、各種記録媒体や通信回線を介して二次元コードリーダや、これを利用するユーザに提供されるものである。
(1)二次元コードリーダ1の構成
まず、図1に基づき、二次元コードリーダ1の構成を説明する。図1は、二次元コードリーダ1の構成例を示すブロック図である。
二次元コードリーダ1は、図1に示すように、CPU(Central Processing Unit)60と、RAM(Random Access Memory)62と、ROM(Read Only Memory)64と、入出力インターフェース(I/F)66と、バス68とを含んで構成されるコンピュータシステムを備えている。CPU60、RAM62、ROM64およびI/F66は、バス68に接続されており、バス68を介してこれら接続デバイス間のデータの送受信を可能としている。
CPU60は、ROM64または記憶装置70に予め記憶された各種専用のコンピュータプログラムをRAM62に読み込み、RAM62に読み込まれたプログラムに記述された命令に従って、各種リソースを駆使して、後述する二次元コードを利用した物品検出処理(以下、コード利用物品検出処理と称す)を実行する。
具体的に、記憶装置70は、二次元コードを特徴づける情報を規定したテンプレート、カメラ76によって撮影して得られる画像データを記憶する。
さらに、記憶装置70は、各二次元コードにおいて独特のセル群それぞれの色または色の組み合わせと、各二次元コードに対してユニークな情報を含む情報との対応関係が登録されたデータテーブルを記憶する。
表示装置72は、CRTディスプレイ、液晶ディスプレイなどの周知の表示装置であり、CPU60からの指令に応じて、カメラ76で撮影された画像、該画像を加工した加工
画像等の画像(動画を含む)の表示を行う。
カメラ76は、デジタルカメラ等の周知のカメラであり、所定の撮影領域を撮影して得られた画像を示す画像データを生成して順次I/F66を介してRAM62または記憶装置70に送信して、RAM62または記憶装置70に画像データを格納する。
なお、この二次元コードリーダ1は、例えば、携帯電話端末、携帯情報端末、周知のパーソナルコンピュータなどに実装されるものとして構成される。
なお、本実施形態において、上記各処理は、入力装置74を介したユーザーの操作入力(指示情報)をトリガとして行われる一連の処理となる。
次に、図2に基づき、二次元コードリーダ1により読み取る二次元コード100について説明する。図2は、二次元コード100の構成例を示す図である。
本実施形態における二次元コード100は、図2に示すように、黒色のセパレータ110上に複数のセルC11〜Cpq(2≦p,2≦q)が一定間隔で配列され、所定の情報が各セルの色および色の組み合わせによりコード化されたものである。つまり、この二次元コードは、セルそれぞれ、または、組み合わせに係るセル群それぞれが、そこに付された複数の色(多色)、または、色の組み合わせパターンにより、数字や文字など複数種類の値(多値)を表現可能となっている。例えば、複数の二次元コードについて、それぞれ、色の組み合わせや、色の配列パターンを変えることによって、各二次元コードに固有のユニークな情報を付すことが可能である。
本実施形態においては、セルCに付けられうるマークの色として、黒(k)を除く1色以上の色が、黒(k)でマークが付けられたセルCとセットで配列されている。
そして、2行目以降のセルC11〜Cpq(先頭のセルC11〜Cp1を除く)は、行毎に、それぞれ1以上のセルCからなるセル群に分けられており、そのセル群で示すべき単位情報(1以上の文字)の対応づけられた色または色の組み合わせでマークが付けられる。こうして、各セルそれぞれ、または、1以上の組み合わせに係るセル群それぞれが、複数種類の文字のいずれかや多進数の数字で示されるいずれかの値からなる情報を持つことができるようになっている。
また、成分領域の大きさは、画像の撮影環境に応じて生じうる誤差の範囲を十分に包摂できる空間として規定したものであり、本実施形態では、特定座標における色を一般的な撮影環境下の色とし、この色から撮影環境に応じて生じうる誤差の範囲を含む領域を成分領域として規定している。
また、二次元コード100における特定セルに付けられたマークの色、および、セパレータ110の色には、セルCに付すマークの色に用いられていない成分領域における中心座標の色(本実施形態では黒系統の色)が用いられている。
以下に、CPU60がROM64または記憶装置70に記憶された専用のコンピュータプログラムに従って実行する各種処理の手順について順次説明する。
(3−1)コード利用物品検出処理
まず、二次元コードリーダ1が、カメラ76からの画像データを受信中において、入力装置74を介したユーザからの指示入力に応じて開始されるコード利用物品検出処理の処理手順を、図3に基づいて説明する。
コード利用物品検出処理が開始されると、まず、カメラ76で撮影された撮影画像データからのエッジ画像データの生成、エッジ画像データからの候補領域の抽出、候補領域が有効か否かの判定、原画像における有効な候補領域に対応する領域が特徴パターンを含むか否かの判定といった手順を経て、二次元コードの領域を検出する。
次に、検出された二次元コードの領域に対して、セパレータ110の検出、セル領域を分割、各セル領域の色の判定(補正、再判定等含む)、各セル領域の色の判定結果の照合といった手順を経て、検出した二次元コードの情報を識別する。
ーキング、色の変更等)、検出モードに応じた物品に係る情報画像(例えば、文字画像)の追加等を行う処理となる。従って、原画像に対して、検出対象の物品の位置を明示する画像(または効果)および該物品に係るモードに応じた情報画像が加えられた画像が、表示装置72に表示されることになる。
コード利用物品検出処理は、CPU60によって、専用のコンピュータプログラムを実行することで起動される処理であって、プログラムが実行されると、図3に示すように、まず、ステップS100へと移行する。
ここで、物品検出モードが設定されている場合は、指示入力を行う前に、例えば、物品のシリアル番号、品名等の検出対象の物品の識別情報を設定する必要がある。この設定は、入力装置74を介して、ユーザが検出対象の商品を識別する情報を手入力してもよいし、物品リスト等を表示してユーザがその中から物品名等の識別情報を選択するようにしてもよい。
ステップS102に移行した場合(Yes)は、RAM62または記憶装置70から、指示入力のあったタイミングに表示していた画像データまたは該画像データに加えて複数フレーム分の画像データを取得して、ステップS104に移行する。
ここでいうテンプレートは、候補領域を規定する領域規則、候補領域が有効か否かを判定する形状情報、二次元コードにおける特徴的なパターン、二次元コードにマークとして付けられる色(色数,色の種類)の着色規則などを示す情報である。
状が矩形形状であれば、台形形状の領域などの矩形形状を角度を変えて見た(撮影した)場合の形状等となり、二次元コードの外形形状が真円形であれば、六角形や八角形の領域などの画質等によって真円形が崩れた場合の形状等が該当する。また、例えば、形状等は無視して、閉領域であれば何でも候補領域として抽出するといった規則でもよいし、エッジ成分の分布パターン(エッジ成分の分布状態、分布されているエッジ成分の配置など)が特定のパターンの領域を抽出するといった規則でもよい。ただ、以降の処理による候補領域が有効か否かの判定などに要する処理負担を軽減するためには、複数の項目を選択して規定したものとすることが望ましく、この場合、候補領域としての抽出数が少なくなる結果、処理負担の軽減に伴って処理時間の短縮が実現されることとなる。
例えば、図2に例示した二次元コード100であれば、上記特定セルC11〜Cp1に付けられた色と、上記ヘッダー領域C11〜C1qの各セルに付けられた複数の色との双方または一方により、二次元コードの領域を示す特徴的なパターンが形成されている。
また、「着色規則」とは、二次元コードにおける複数のセルそれぞれに付すべき色の規則であり、該当セルにてコード化すべき情報、および、該当セルと隣接するセルに付された色に応じて決められるものである。
ステップS106では、以降の処理で参照する変数X,Yを初期化(0→X,1→Y)して、ステップS108に移行する。
ステップS110では、ステップS108において生成されたエッジ画像データに基づいて、このエッジ画像から、二次元コードからなる候補領域それぞれの位置を特定して、ステップS112に移行する。ここでは、ステップS104にて読み出されたテンプレートにおける「領域規則」に基づいて、第Y番目のエッジ画像から、二次元コードからなる候補領域を規定する画像中の座標それぞれが特定される。
ステップS114に移行した場合は、ステップS110において特定された候補領域(座標情報)それぞれをリストに登録して、ステップS116に移行する。
ステップS120では、ステップS118において選択された候補領域が有効なものであるか否かを判定する有効領域判定処理を実行して、ステップS122に移行する。なお、この有効領域判定処理における具体的な処理手順については後述する。
ステップS124に移行した場合は、直前に行われた上記ステップS110において特定された候補領域(新規候補領域)が、過去に行われた上記ステップS110において特定された候補領域(抽出済み候補領域)と同じであるか否かを判定する。
具体的に、新規候補領域が抽出済み候補領域に領域として所定割合以上重複している場合、または、新規候補領域および抽出済み候補領域の一方が他方に包摂されている場合に、新規候補領域が抽出済み候補領域と同じであると判定される。
そして、ステップS124において新規候補領域が過去に行われた上記ステップS110において特定されてRAM62または記憶装置70に格納されたいずれかの抽出済み候補領域と同じであると判定した場合(Yes)は、ステップS116に移行し、以降、別の候補領域について上記同様の処理を行う。
ステップS126に移行した場合は、この時点における新規候補領域を情報の識別に適
したものとなるように補正して、ステップS128に移行する。
ここでは、新規候補領域における二次元コードの形状、角度が補正される。具体的には、例えば、処理対象の領域が斜めに配置されていた場合や、正方形になっていない歪んだ形状となっている場合に、そのようなズレを補正すべく回転や、座標軸に合わせた延長・短縮などが行われる。
さらに、このステップS126では、新規候補領域における二次元コードの色成分が、各セルにおける色の識別性を高めるべく補正される。
ステップS128では、上記ステップS102において取得された画像データで示される原画像のうち、上記ステップS126において補正された候補領域に対応する対応領域に、二次元コードとしての特徴的なパターンが含まれているか否かを判定する。
また、図2に例示した二次元コード100は、ヘッダー領域および特定セルの領域といったように、データ領域とは別に特別に設けられた領域を有しており、この領域が「特徴的なパターン」として抽出され判定が行われる構成となっているが、この構成に限らない。
この場合も、二次元コード100と同様に、データ領域における、複数種類のセルの配置パターンやマークのパターンなどが「特徴的なパターン」となり、このパターンとテンプレートにおける特徴的なパターンとを比較して、「特徴的なパターン」が含まれているか否かを判定することになる。但し、データ領域の各セルは、情報をコード化する役割も果たしており、二次元コード100のように専用のセルとはならない。
報を用いた計算処理などによって、特徴的なパターンが含まれているか否かを判定することも可能である。つまり、各セルの配置パターンや、各セルの色などが正しいパターンおよび色となっているかを計算処理によって確認できる情報(例えば、誤り検出符号など)を対応付ける。
そして、ステップS128において、二次元コードとしての特徴的なパターンが含まれていないと判定した場合(No)は、ステップS116に移行し、以降、別のコード領域について上記同様の処理を行う。
ステップS130に移行した場合は、この時点における新規候補領域を二次元コードの領域として検出して、ステップS132に移行する。
この検出処理は、新規候補領域の座標情報に基づき、原画像から新規候補領域を切り出して(複製画像を生成して)、記憶装置70に記憶する処理となる。
この色判定処理は、上記ステップS130において検出された二次元コードの領域を引数として実行され、この二次元コードにおけるセルそれぞれに付された色が戻り値となる。なお、この色判定処理における具体的な処理手順については後述する。
ステップS136では、ステップS134において識別された情報を、RAM62または記憶装置70に格納して、ステップS138に移行する。
ここまで示したように、上述したステップS116〜S136までが行われるのは、ステップS110において特定された候補領域が二次元コードの体をなしていたことを意味している。そのため、このステップS138では、この変数Xをインクリメントすることにより、二次元コードの領域として検出かつ識別された候補領域の数を積算していることになる。
そして、ステップS140において、変数Xが所定数以上になっていると判定した場合(Yes)は、ステップS140に移行し、変数Xが所定数以上になっていないと判定した場合(No)は、ステップS142に移行する。
て繰り返し行われる。
その後、全ての候補領域について上記ステップS116〜S140が行われたら、上記ステップS116において未処理の候補領域がないと判定されて、ステップS142に移行し、この時点での変数Yの値が、変数nの値より小さい値(Y<n)となっているか否かを判定する。
ステップS144に移行した場合は、変数Yをインクリメント(Y+1→Y)して、ステップS108に移行し、上記ステップS108〜S144の処理を行う。
これ以降は、次のエッジ画像に基づいて上記ステップS110〜S144の処理が行われ、その処理の中で変数Xが所定数以上になれば、上記ステップS140で「Yes」と判定されて、ステップS146に移行する。一方、その処理の中で変数Xが所定数以上にならなければ、その次のエッジ画像についての処理が繰り返し行われることとなる。
ステップS146に移行した場合は、識別された二次元コードの情報に基づき、原画像中における指定物品を検出する物品検出処理を実行して、一連の処理を終了する。なお、この物品検出処理における具体的な処理手順については後述する。
続いて、図3のステップS108であるエッジ画像生成処理の処理手順の一例を図5に基づき説明する。図5(a)は、変数Yの値と画像種類およびしきい値との対応関係の一例を示す図であり、(b)は、エッジ画像生成処理の処理手順の一例を示すフローチャートである。
本実施形態において、エッジ画像の生成は、異なる複数種類の変換条件に基づいて行う。
具体的に、第1〜第i(1≦i)の変換条件に対応する第1〜第i番目のエッジ画像までが、それぞれ異なるしきい値で原画像をグレースケール化してなるグレースケール画像を二値化した画像の輪郭部を線形化した画像となる。
特に、各色成分画像について、予め設定されたしきい値としてk種類(1≦k)のしきい値を用いて二値化を行う場合は、第(i+1)〜第(i+j×k)の変換条件に対応する第(i+1)〜第(i+j×k)番目のエッジ画像までが、j種類の色成分それぞれを原画像から抽出した色成分画像をグレースケール化し、該グレースケール画像をk種類のしきい値それぞれで二値化した二値化画像の輪郭部を線形化した画像となる。
ここでいう「i」および「k」は、予め用意されたしきい値の種類によって値が決定し、「j」は、原画像に用いられている色空間(表色系)の種類によって規定される色成分数によって値が決定する。例えば、しきい値の種類がそれぞれ3種類で、色空間がRGB色空間であれば、「i」および「k」の値は3、「j」の値は3となる。
換条件の種類を示すエッジ画像を生成する際に用いる画像の種類としきい値とが対応付けられてデータテーブルとして記憶装置70に記憶されている。なお、図5(a)の例は、「i」の値が3、「j」の値が3、「k」の値が1となる例である。ここで、変数Yの上限値は、変数nにセットされる値によって決まるが、本実施形態では、ユーザが、要求する二次元コードの検出精度に応じた値を任意にセット可能に構成されている。なお、図5(a)の例では、変数nの最大値は「6」となる。
そして、ステップS200において、変数Yの値が3以下となっていると判定した場合(Yes)は、ステップS202に移行し、変数Yの値が3よりも大きいと判定した場合(No)は、ステップS208に移行する。
ここでは、原画像のデータが、RGBの各色8ビット(0〜255)のカラー画像データであるとして、この画像データからグレースケール画像を生成する。
また、グレースケール画像の生成方法としては、例えば、中間値法、平均法等の周知の生成方法がある。
平均法は、平均の取り方によって、算術平均(相和平均)法、幾何平均(相乗平均)法、加重平均法等がある。
算術平均法は、R、G、Bの3つの色成分の値を算術平均(足して3で割る)して平均値を算出し、算出した平均値を利用してグレースケール化する方法である。
加重平均法は、R、G、Bの3つの色要素の値に対して、重み付けをして3で割り、平均を取ってグレースケール化する方法である。この重み付けの係数の内容によって、NTSC加重平均法、HDTV加重平均法等がある。NTSC加重平均法は、日本やアメリカのテレビ放送で利用されている輝度信号(明るさ)の分離方法のものと同じである。また、HDTV加重平均法は、デジタルハイビジョン放送を映す際に基準とされる、HDTV規格に基づいて重み係数が設定されたものである。
そして、上記いずれかの方法を用いた場合は、算出された1つの輝度値を、R、G、Bの3つの色成分の値(R=G=B)とする。
なお、ここでは、グレースケール画像を、R,G,Bの各色成分の値を輝度値に変換することで生成する例を説明したが、輝度以外に、明度等によってグレースケール画像を生成するようにしてもよい。
ステップS204では、ステップS202で生成したグレースケール画像データを、現時点の変数Yの値に対応したしきい値により二値化してなる二値化画像データを生成して、ステップS206に移行する。
ここでは、図5(a)に示すように、変数Yの値1、2、3に対して、120、150、200の3種類のしきい値がそれぞれ用意されている。この二値化のしきい値は、二次元コードの「領域規則」および「特徴的なパターン」に応じ、以降の処理において有効な候補領域を抽出し、適切に二次元コードを識別するのに適した値として定められたものである。
例えば、しきい値120のときに、グレースケール画像におけるあるピクセル値が(80,80,80)である場合は、二値化後の値は、黒色に対応する(0,0,0)となる。一方、しきい値120のときに、グレースケール画像におけるあるピクセル値が(160,160,160)である場合は、二値化後の値は、白色に対応する(255,255,255)となる。
ステップS206では、二値化画像データに対して、二値化画像中の物体(オブジェクト)の輪郭部を線形化してなるエッジ画像データを生成して、一連の処理を終了し、元の処理に復帰する。
ここで、ブレゼンハムの線分描画アルゴリズムは、割り算等を用いずに全てを整数演算のみで行うことができるため、高速に線分を描画することができる。
このようにして、二値化画像中の物体の輪郭部を線形化した画像のデータが、エッジ画像データとなる。
ここでは、図5(a)に示すように、変数Yの値4、5、6に対して、赤色、緑色、青色の色成分をそれぞれ抽出する。
例えば、変数Yの値が4であり、原画像データのあるピクセル値が(120,80,45)である場合は、赤色成分値(120,0,0)を抽出する。同様に、変数Yの値が5であれば、緑色成分値(0,80,0)を抽出し、変数Yの値が6であれば、青色成分値(0,0,45)を抽出する。
ステップS210では、ステップS208で生成した色成分画像データからグレースケール画像データを生成して、ステップS212に移行する。
グレースケール画像データの生成は、上記ステップS202と同様の処理となる。
ステップS212では、ステップS210で生成したグレースケール画像に対して、予め設定されたしきい値で二値化を行い、二値化画像データを生成して、ステップS206に移行する。
従って、上記ステップS210で生成したグレースケール画像データに対して、しきい値120を用いて二値化を行い、ステップS208で生成した色成分画像データに対する二値化画像データを生成する。
そして、ステップS212で二値化画像データを生成後は、ステップS206に移行して、二値化画像中の物体の輪郭部を線形化してなるエッジ画像データを生成し、一連の処理を終了して、元の処理に復帰する。
また、図5(a)に示す例では、原画像に対応するグレースケール画像に対してしきい値を小さい値から順に用いて二値化を行い、その二値化画像からエッジ画像を生成する処理を行う構成とした。さらに、原画像に対応するグレースケール画像を用いたエッジ画像の生成処理の後に、色成分画像に対応するグレースケール画像を二値化してエッジ画像を生成する処理を、赤、緑、青の色成分画像の順で行う構成としたが、この構成に限らない。
また、例えば、色成分画像を用いたエッジ画像の生成処理を原画像を用いた生成処理よりも先に行う構成、原画像と色成分画像とを用いたエッジ画像の生成処理を交互に行う構成、ランダムに行う構成など、別の順番で行う構成としてもよい。
また、図5(a)に示す例では、原画像および色成分画像の双方を用いてエッジ画像の生成を行うことが可能な構成としたが、この構成に限らず、原画像だけを用いてエッジ画像を生成する構成や、色成分画像だけを用いてエッジ画像を生成する構成など他の構成としてもよい。
の3種類のしきい値として、「120」、「150」、「200」を用いているが、これに限らず、別の値を用いる構成としてもよい。同様に、図5(a)に示す例では、色成分画像に対応するグレースケール画像を二値化する際のしきい値として、「120」を用いているが、これに限らず、別の値を用いる構成としてもよい。
続いて、図3のステップS120である有効領域判定処理の処理手順を図6および図7に基づき説明する。
ここで、図6は、有効領域判定処理の処理手順を示すフローチャートである。また、図7(a)は、理想的な候補領域の形状例を示す図であり、(b)〜(e)は、誤差範囲外の形状例を示す図であり、(f)〜(g)は、誤差範囲内の形状例を示す図である。
候補領域の縦横比は、図7(a)に示すように、理想の領域形状における短辺の長さAと長辺の長さBとの比(A:B=A/B)となっていることが望ましい。また、候補領域の各辺間(四隅)の角度は、図7(a)に示すように、理想的には、いずれも90°であることが望ましい。
有効領域判定処理が開始されると、図6に示すように、まず、ステップS300に移行し、選択された候補領域の縦横比が、テンプレートの形状情報に定められた縦横比の誤差範囲内か否かを判定する。
ステップS302に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して(判定結果を戻り値として)、一連の処理を終了し、元の処理に復帰する。
一方、縦横比が誤差範囲内であると判定されステップS304に移行した場合は、候補領域の各辺間で形成される角度が、テンプレートの形状情報に定められた角度の誤差範囲
内か否かを判定する。
ステップS306に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して(判定結果を戻り値として)、一連の処理を終了し、元の処理に復帰する。
一方、角度が誤差範囲内であると判定されステップS308に移行した場合は、誤差範囲内と判定された候補領域を有効な候補領域であると判定して(判定結果を戻り値として)、一連の処理を終了し、元の処理に復帰する。
同様に、例えば、図7(g)に示す候補領域のように、縦横比の誤差drが「−dx〜+dx」の範囲内であるが、角度β1〜β4がいずれも90°とならずに斜めに歪んでいても、角度β1〜β4の誤差dβ1〜dβ4のいずれもが「−dy〜+dy」の誤差範囲内となる場合には、この候補領域は除外されることなく、有効な候補領域と判定される。
つまり、本実施形態では、縦横比および角度の双方が誤差範囲内に納まっている候補領域のみを有効な候補領域と判定する。
続いて、図3のステップS132である色判定処理の処理手順を図8に基づき説明する。
ここで、図8は、色判定処理の処理手順の一例を示すフローチャートである。
色判定処理が開始さると、図8に示すように、まず、ステップS400に移行して、図3のステップS130で検出された二次元コードの領域におけるセパレータ110の領域を特定(座標を特定)して、ステップS402に移行する。
ステップS402では、セパレータ110の座標情報に基づき、各セルの存在する領域を分割して、ステップS404に移行する。
ステップS404では、以降の処理で参照する変数を初期化(0→ap,0→x,0→y)して、ステップS406に移行する。
ステップS406では、セパレータ110の特定された二次元コードの領域における座標(x,y)のピクセルを選択して、ステップS408に移行する。
ステップS408では、変数apの値が予め定められた一定数以上か否かを判定し、一定数以上ではないと判定した場合(No)は、ステップS410に移行し、一定数以上であると判定した場合(Yes)は、ステップS422に移行する。
そして、ステップS410において、選択したピクセルがいずれかの判定領域内に含まれていると判定した場合(Yes)は、ステップS412に移行し、選択したピクセルがいずれの判定領域にも含まれていないと判定した場合(No)は、ステップS414に移行する。
ここでは、変数apをインクリメントすることで、判定領域に含まれていると判定されたピクセルの数を計数している。この判定結果(判定領域の情報および計数結果を含む)は、各セルに対応付けてRAM62または記憶装置70に記憶される。
一方、選択したピクセルがいずれの判定領域にも含まれていないと判定された場合も、ステップS414に移行して、変数xの値が、xEであるか否かを判定する。
そして、変数xの値がxEではないと判定した場合(No)は、ステップS416に移行し、変数xの値がxEであると判定した場合(Yes)は、ステップS422に移行する。
テップS418に移行する。
つまり、変数xの値がxEではない場合に、変数xをインクリメントすることで、1つ右隣のピクセルに座標を変更する。
ステップS418では、現時点の座標(x,y)が次のセルに対応するセパレータ部分の開始座標であるか否かを判定する。そして、次のセパレータの開始座標であると判定した場合(Yes)は、ステップS420に移行し、そうでない場合(No)は、ステップS406に移行する。
つまり、色判定領域に含まれる色のピクセルが一定数以上とならないまま、x座標が、次のセルに対応するセパレータの開始x座標に到達した場合に、変数apを初期化する。
一方、ステップS414において変数xの値がxEであると判定されてステップS422に移行した場合は、変数yの値が列方向の一番下端のy座標であるyEであるか否かを判定する。
ステップS424に移行した場合は、変数apおよび変数xを初期化(0→ap,0→x)し、変数yをインクリメント(y+1→y)して、ステップS406に移行する。
つまり、変数xを初期化し、変数yをインクリメントすることで、1つ下隣の行で且つ一番左端のピクセルに座標を変更する。このとき、座標(x,y)が次のセルに対応した領域の座標となるので、変数apも初期化する。
そして、変数xの値がxEではないと判定した場合(No)は、ステップS428に移行し、変数xの値がxEであると判定した場合(Yes)は、ステップS432に移行する。
ステップS428に移行した場合は、変数xをインクリメント(x+1→x)して、ステップS430に移行する。
ステップS432に移行した場合は、変数apを初期化(0→ap)して、ステップS406に移行する。
ここで、上記ステップS408における変数apの比較対象である一定数は、色の判定精度を考慮して予め設定される値であり、各行における各セルCのピクセル数未満の値となる。従って、各行の色の判定に十分な一定数の色の判定がされたことに応じて、残りのピクセルに対する色判定処理を省略することとなる。
410の色判定処理が省略される。
そして、ステップS434において、変数yの値がyEではないと判定した場合(No)は、ステップS436に移行し、変数yの値がyEであると判定した場合(Yes)は、ステップS438に移行する。
一方、二次元コードの領域における全てのピクセルについて色判定が終了して、ステップS438に移行した場合は、RAM62または記憶装置70に記憶された各セルCの領域の各行のピクセルの色の判定結果に基づき、各セルCの色を判定して、ステップS440に移行する。
ここでは、この時点でセルCと色とが対応づけて登録されたデータテーブルの中に、判定領域外の色である旨が対応づけられたセルCが一定数(例えば全体の3割)以上存在していることをもって、着色規則に従っていない色の付されたセルCが所定割合以上存在していると判定される。
ステップS442に移行した場合は、判定領域を変更して再度の色判定が可能な状態であるか否かを判定する。
ここでは、ステップS410における色判定で参照された判定領域が、あらかじめ定められた上限まで変更されている場合に、再度の色判定が可能な状態ではないと判定される。
いく場合であれば、各判定領域を他の領域と干渉する程度まで拡張した状態となっていることをもって「あらかじめ定められた上限まで変更されている」こととすればよい。また、判定領域を変移させていく場合であれば、判定領域で規定される色が別の色成分になる直前の位置(境界)まで変移した状態となっていることをもって、「あらかじめ定められた上限まで変更されている」こととすればよい。
ステップS444に移行した場合は、上記ステップS410における色判定で参照された判定領域を変更して、ステップS404に移行する。ここでは、各判定領域を色空間上で一定領域だけ拡げる、または、各判定領域を色空間上で一定距離だけ変移させることにより判定領域それぞれが変更される。
以降、再度色が判定されたセルCそれぞれの中に、着色規則に従っていない色の付されたセルCが一定数以上存在していないと判定されるまで(ステップS440の「No」の分岐)、判定領域の変更および再度の色判定が繰り返される(ステップS404〜S444)。
このエラー処理では、いずれのセルCの色についても判定できなかったものとし、データテーブルに登録されていた全ての対応関係を消去され、こうして空のデータテーブルが戻り値として元の処理へと復帰する。この場合、図3のコード利用物品検出処理では、ステップS134,S136で何らの処理も行われることなく、S138以降の処理が行われる。
ステップS448に移行した場合は、着色規則に従っていない色の付されたセルCが存在しているか否かを判定する。
このステップS448において、該当セルCが存在していると判定した場合(Yes)は、ステップS450に移行し、該当セルCが存在していないと判定した場合(No)は、一連の処理を終了し、元の処理に復帰する。
ここでは、この時点でデータテーブルに登録されているセルCのうち、着色規則に従っていない色の付されたセルCが特定され、このセルCが二次元コードの中から特定される。
ステップS452では、上記ステップS448において特定されたセルCそれぞれにつ
いて、着色規則に従って本来付されるべき色を推定して、ステップS454に移行する。
ステップS454では、上記ステップS448において特定されたセルCそれぞれについて、該セルCの色が、上記ステップS452において推定された色であると判定し、一連の処理を終了し、元の処理に復帰する。
この場合と、ステップS448において該当のセルCが特定されなかった場合は、この時点でセルCと色との対応関係が登録されたデータテーブルを戻り値として図3のコード利用物品検出処理へと戻る。この場合、コード利用物品検出処理では、データテーブルに基づいて各セルCに付された色を認識したうえで、ステップS134による情報の識別を行うこととなる。
また、データ領域しか有さない二次元コードの構成であれば、ステップS128の処理を行う前に、上記ステップS400〜S438の色判定処理、または、上記ステップS400〜S454の色判定処理を先に行い、その判定結果に基づき、特徴的なパターンを含むか否かを判定する処理を行う構成とすることも可能である。例えば、上記図1のステップS126の処理の次に、色判定処理(S132)を行う構成とし、ステップS128では、先に行われた色判定処理の結果に基づき、特徴的なパターンを含むか否かの判定を行う。この場合は、以降の色判定処理を不要とすることができる。
続いて、図3のステップS146である物品検出処理の処理手順を図9〜図12に基づき具体例を示しながら説明する。
ここで、図9は、物品検出処理の処理手順の一例を示すフローチャートである。また、図10は、データベースに登録された識別情報および物品情報の一例を示す図である。また、図11(a)は、物品検出モードの検出対象画像例を示す図であり、(b)は、検出結果の表示例を示す図である。また、図12(a)は、期限管理モードの検出対象画像例を示す図であり、(b)は、検出結果の表示例を示す図であり、(c)は、カメラ76の配設位置の一例を示す図である。
そして、設定されている検出モードが物品検出モードであると判定した場合(Yes)は、検出対象として指定された物品(以下、指定物品と称す)の情報を取得して、ステップS502に移行し、物品検出モードではないと判定した場合(No)は、ステップS520に移行する。
ここで、物品情報としては、例えば、図10に示すように、上記図3のステップS13
4で識別された識別情報に対応付けて、品名コード、品種、個数、保管開始時期、出荷期限、消費期限が登録されている。
また、保管開始時期は、例えば、倉庫で管理される物品であれば、入庫日の情報が登録される。また、店内の商品棚に陳列される食品等の物品であれば、陳列日の情報あるいは物品の製造日の情報が登録される。また、食品や薬品等の、経過日数に応じて状態が劣化していくような物品の場合は、消費期限(賞味期限)の情報が登録される。また、倉庫に保管する物品について、出荷(保管)期限がある場合は、出荷(保管)期限の情報が登録される。
そして、ステップS502において、指定物品があると判定した場合(Yes)は、ステップS504に移行し、指定物品がないと判定した場合(No)は、ステップS518に移行する。
ステップS506では、RAM62または記憶装置70から、原画像の画像データと、指定物品の識別情報に対応する二次元コードの原画像における座標情報とを取得して、ステップS508に移行する。
ここで、上記「強調表示するための加工処理」は、例えば、原画像中の、二次元コードの画像領域の周囲を赤色等の目立つ色の線で囲んだり、二次元コードの画像領域を目立つ色で塗りつぶしたり、二次元コードの画像領域の輪郭部を強調(輪郭線を太くする、輪郭線を赤色等の目立つ色に変更する、これら双方など)したりする処理となる。他にも、点滅表示やアニメーション表示されるように加工処理を施してもよい。
ステップS510では、指定物品に対応する二次元コードが複数あるか否かを判定し、複数あると判定した場合(Yes)は、ステップS512に移行し、そうでない場合(No)は、ステップS514に移行する。
ステップS514では、原画像に、指定物品の保管開始時期、出荷期限、消費期限等の画像情報を追加する加工処理を行って、ステップS516に移行する。
また、指定物品に対応する二次元コードが複数ある場合は、各番号に対応付けて物品に係る情報を表示する。
この場合は、ステップS516において、ステップS508,S512およびS514で加工された画像を、表示装置72に表示する処理を行って、上記一連の物品検出処理を終了し、元の処理に復帰する。
さらに、図11(b)に示すように、指定物品の各二次元コードの近傍(右下)には、入庫日の古い順に、番号(1)〜(3)が付される(表示される)。これにより、ユーザは、番号画像から物品の入庫された順番を視覚的に瞬時に把握することができ、簡易に入庫日の古い順に出荷作業を行うことが可能となる。特に、物品に消費期限のある場合に、消費期限へと先に到達する物品から順に出荷を行うことができる。
つまり、撮影した画像中に指定物品が含まれていない場合に、強調表示加工や追加表示加工などの施されていない原画像を表示する。これにより、ユーザは指定物品が無いことを視覚的に瞬時に把握することができる。なお、指定物品が無い旨を示すメッセージ等の画像を原画像中に表示するようにしてもよい。
そして、設定された検出モードが期限管理モードであると判定した場合(Yes)は、ステップS522に移行し、期限管理モードではないと判定した場合(No)は、ステップS532に移行する。
ステップS524では、コンピュータシステムの有する不図示のRTC(Real Time Clock)から取得した現在(現時点)の年月日時刻の情報と、取得した出荷期限および消費期限とを比較して、期限を経過した物品があるか否かを判定する。
ここで、ステップS524において、期限が経過した物品ではなくて、例えば、期限までの日数が所定日数以下となった物品を検出するようにしてもよい。つまり、ステップS524において、取得した出荷期限および消費期限から所定期間を減じた期限と、現時点の年月日時刻の情報とを比較して判定を行ってもよい。
ここで、原画像のデータとして、例えば、図12(a)に示す、商品陳列棚に複数の物品300が載置され、各物品300の正面側に、二次元コード100が付された被写体の撮影画像を示す画像データが取得されたとする。なお、図12の例では、図12(b)に示すように、二次元コードリーダ1が、携帯型の情報端末で構成されており、この情報端末の裏面側上部には、図12(c)に示すように、カメラ76のレンズ部分が配設されている。これにより、ユーザは、図12(b)に示されている表示画面を見ながら、裏面画のカメラ76で、商品陳列棚を撮影することができる。そして、原画像のデータは、図12(b)に示すように、撮影範囲PRの撮影画像のデータとなる。つまり、ここではユーザが二次元コードリーダ1を携帯し、商品陳列棚の商品を撮影しながら経過物品の検出結果を確認できる実施態様を例示している。
ここでの加工処理は、上記ステップS508の処理と同様の処理となる。
この場合は、ステップS516において、ステップS528で加工された画像を、表示装置72に表示する処理を行って、上記一連の物品検出処理を終了し、元の処理に復帰する。
一方、ステップS524において、経過物品がないと判定してステップS530に移行した場合は、RAM62または記憶装置70から、原画像の画像データを取得し、取得した画像データに基づき、表示装置72に原画像を表示する。そして、一連の処理を終了して、元の処理に復帰する。
また、ステップS520において、期限管理モードではないと判定してステップS532に移行した場合は、モードの設定を促すメッセージを表示装置72に表示する処理を行って、上記一連の処理を終了し、元の処理に復帰する。
この処理は、物品検出モードおよび期限管理モードのいずれか一方が必ず設定されるように構成されている場合には不要の処理となる。
続いて、図3のコード利用物品検出処理を実行する前等に行われる、検出対象の物品を指定する検出モード設定処理の処理手順を図13に基づき説明する。
ここで、図13は、検出モード設定処理の処理手順の一例を示すフローチャートである。
検出モード設定処理は、上記図3のコード利用物品検出処理とは独立して行われる処理であって、入力装置74を介したユーザの指示入力に応じて起動し、図13に示すように、まず、ステップS600に移行する。
ここでは、入力装置74によって、簡易に検出モードが選択できるように、物品検出モードを選択するボタンのグラフィックスと、期限管理モードを選択するボタンのグラフィックスとを表示装置72の表示画面に表示する。
ステップS602では、物品検出モードが選択されたか否かを判定し、選択されたと判定した場合(Yes)は、ステップS604に移行し、そうでない場合(No)は、ステップS612に移行する。
ステップS606では、指定物品の入力を促す画面を表示装置72の表示画面に表示して、ステップS608に移行する。
例えば、指定物品として指定可能な物品のリストを表示して、その中から選択できるようにする。また、品名、品名コード、シリアル番号等で指定可能な物品を検索できるようにしてもよい。
なお、指定する物品が見つからなかった場合等において、設定モードを終了した場合は、判定処理から抜けて、一連の処理を終了する。
ステップS610では、ステップS608で入力された検出対象の指定物品を設定して、処理を終了する。
これにより、検出モードとして物品検出モードが設定され、さらに、指定物品が設定される。具体的に、これらの情報がRAM62の所定アドレスに格納される。
ドが選択されたと判定した場合(Yes)は、ステップS614に移行し、そうでない場合(No)は、ステップS602に移行して、判定処理を続行する。
ステップS614に移行した場合は、検出モードとして期限管理モードを設定して、一連の処理を終了する。
これにより、検出モードとして期限管理モードが設定される。物品検出モードと同様に、この情報はRAM62の所定アドレスに格納される。
上記実施形態における二次元コードリーダ1であれば、取得された画像(原画像)から、グレースケール画像の生成(図5(b)のS202,S210)、二値化画像の生成(同図S204,S212)、二値化画像中の物体の輪郭部の線形化(同図S206)を経てエッジ画像を生成することができる(図3のS108)。
さらに、生成したエッジ画像に基づき、このエッジ画像中における候補領域の抽出(同図S110)、この抽出した候補領域が有効か否かの判定(同図S120,S122)、有効と判定された候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定(同図S128)を経て、原画像中から二次元コードの領域を検出することができる(同図S130)。
そして、原画像の領域において、有効と判定された候補領域に対応する対応領域のうち、特徴的なパターンが含まれている対応領域を、原画像中における二次元コードの領域として検出することにより、原画像中に含まれる複数の二次元コードそれぞれを特定することができるようになる。
これにより、特定のエッジ画像に基づいて二次元コードの領域を検出できなかったとしても、別のエッジ画像に基づいて検出されることが期待でき、その結果、原画像における二次元コードの検出精度を高めることができる。
また、この繰り返しの過程では、理想的な領域形状に対して、各候補領域の縦横比および四隅の角度等の形状情報が、あらかじめ設定された誤差範囲内となるか否かを判定することによって(図6のS300〜S308)、抽出した候補領域が有効な候補領域であるか否かを判定することができる(図3のS122)。
また、上記実施形態では、原画像からエッジ画像を生成し、このエッジ画像から、二次元コードの領域の候補となる候補領域を抽出し(図3のS110)、該抽出した候補領域が有効か否かを判定したうえで(図3のS120,S122)、原画像における、有効と判定された候補領域に対応する領域から二次元コードの領域を検出して情報の識別を行っている(同図S116〜S134)。そのため、候補領域を抽出することなく二次元コードの領域を検出しようとする場合と比べて、抽出した候補領域という限定的な範囲から二次元コードの領域の検出を行うことができる。これにより、二次元コードの領域から情報の識別を行うまでに要する処理負荷および処理時間を抑えることができる。
また、上記実施形態においては、特定のエッジ画像から抽出され、かつ、有効と判定された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
また、上記実施形態においては、特定のエッジ画像から抽出され、かつ、有効と判定された候補領域における1以上の頂点が、抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していることをもって、両候補領域が一致すると判定することもできる。
また、上記実施形態においては、二次元コードの各セルCに付された色に基づいて、二次元コードで示される情報を識別することができる(図3のS132〜S134)。
また、この構成においては、各ピクセルの色判定を行う際に、二次元コードの領域を、ラスタスキャンによって順番に走査して色判定処理を行い(図8のS410)、各セルCの領域における各行に位置するピクセルについて、一定数以上が判定領域に含まれると判定された場合(図8のS408の「Yes」の分岐)に、該当セルCの領域におけるその行の残りのピクセルに対して色判定処理を省略することができる。
また、この構成においては、各セルCの色を判定するに際し、多くのセルCに付された色がいずれの判定領域にも含まれず、情報の識別そのものができなくなるような場合であっても、そのようなことを防止できるように構成されている。
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を拡げることで判定の感度を上げて再度色を判定する、または、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
さらに、指定物品が存在する場合に、原画像における指定物品に対応する二次元コードの領域が強調表示されるように原画像を加工し(図9のS508)、加工した画像を表示することができる(図9のS516)。
また、この構成においては、指定物品が複数あるときに、各指定物品の管理開始時期情報に基づき、管理開始時期が古い順に、順番を示す番号の画像を、指定物品に対応する二次元コードの領域上、または、その近傍に表示されるように原画像に追加する加工を行うことができるように構成されている(図9のS512)。
また、この構成においては、原画像に対して、強調表示加工に加えて、指定物品に係る表示情報を追加する加工を行うことができるように構成されている(図9のS514)。
また、この構成においては、期限管理モードを設定した場合に、出荷期限、消費期限等の期限が経過した物品、または、期限までの期間が所定期間以下の物品を指定物品とすることができる。そして、各セルCの色の判定結果に基づいて識別された情報に対応する物品のなかから、期限を経過した物品、または、期限までの期間が所定期間以下の物品が存在するか否かを判定することができる(図9のS524)。
これによって、原画像中の指定物品に対応する二次元コードの領域が強調表示された画像を表示することができるので、ユーザは、表示された画像を見ることで、原画像中における指定物品の位置を簡易かつ瞬時に把握することができる。
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
例えば、上記実施形態においては、二次元コードリーダ1が単体の装置により構成されている場合を例示したが、この二次元コードリーダ1は、複数の装置が協調して動作するシステムとして構成してもよい。
また、上記実施形態においては、二次元コードの領域としては、上述したような二次元コードに限らず、特定の画像(例えば、ロゴなど)を示す領域としてもよい。
また、候補として選出した色それぞれについて情報の識別までも行うようにし、そうして識別した情報の中からいずれかをユーザに選択させることとしてもよい。この場合、図8のS452では何らの処理も行わず、S454にて候補の色それぞれを、該当するセルCに付された色と判定する。そして、図3のS134では、セルCに付された色として判定された色が複数存在していれば、各色について、または、各色の組合せに基づいて情報を識別し、そうして識別した情報の中から、いずれかをユーザに選択させる、といった構成を考えることができる。
また、上記実施形態においては、管理開始期限の古い順に番号画像を二次元コードの領域上、または、その近傍に表示する構成としたが、この構成に限らず、消費期限が早い順など、他の条件に基づく順番の番号画像を表示する構成としてもよい。
例えば、検出対象の物品が設定(検出モードが設定)された状態であれば、トリガがなくてもコード利用物品検出処理を繰り返し実行して、常に、撮影画像に対して検出処理を実行し、検出結果の画像を表示する構成とするなど、他の構成としてもよい。
以上説明した実施形態において、図3のS102が本発明における画像取得部であり、同図S108(図5のS200〜S212)が本発明における成分変換部であり、同図S110が本発明における領域抽出部であり、同図S120が本発明における候補領域判定部であり、同図S128が本発明におけるパターン判定部である。
また、図3のS130が本発明における領域検出部であり、同図S108〜S144(特にS108,S142,S144)が本発明における繰り返し実施部であり、同図S124が本発明における一致判定部であり、同図S134が本発明における情報識別部であ
る。
また、図8におけるS452が本発明における色推定部であり、同図S410、S438およびS454が本発明における色判定部である。
Claims (14)
- 複数の二次元コードの領域を含む領域が撮影されてなる画像を取得する画像取得部と、
該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、
該成分変換部により変換されたエッジ画像から、あらかじめ定められた領域規則であって、前記二次元コードの領域における輪郭部の成す外形形状と該外形形状に対して類似する形状として設定された形状とが定められた規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、
前記二次元コードの領域における輪郭部の成す外形形状である理想の外形形状のパラメータに対して所定の誤差範囲が設定された情報である形状情報に基づき、前記領域抽出部で抽出された候補領域が有効な候補領域であるか否かを判定する候補領域判定部と、
前記画像取得部により取得された画像における、前記候補領域判定部により有効と判定された候補領域に対応する対応領域それぞれについて、該対応領域を形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、
該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出する領域検出部と、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域にて示される情報を識別する情報識別部と、
前記成分変換部による画像のエッジ画像への変換を、複数種類の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の抽出、前記候補領域判定部による有効な候補領域の判定、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施処理を行う繰り返し実施部と、
特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出し、かつ、前記候補領域判定部が有効と判定した候補領域(以降「抽出済み候補領域」という)と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えており、
前記候補領域判定部は、前記領域抽出部により抽出された候補領域の前記形状情報に対応する情報が前記誤差範囲内に含まれるときに前記抽出された候補領域を有効な領域と判定し、前記形状情報に対応する情報が前記誤差範囲外となるときに前記抽出された候補領域を無効な領域と判定し、
前記繰り返し実施部は、前記パターン判定部による特徴的なパターンを有しているか否かの判定、および、前記領域検出部による二次元コードの領域の検出、を、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域のうち、前記一致判定部により前記抽出済み候補領域と一致しないと判定された候補領域についてのみ実施させることを特徴とする二次元コードリーダ。 - 前記形状情報は、前記二次元コードの外形形状が多角形の場合に、各辺の長さの比の情報、および、各二辺間の角度の情報を含むことを特徴とする請求項1に記載の二次元コードリーダ。
- 前記複数種類の変換条件は、前記画像取得部により取得された画像をグレースケール画像に変換し、該グレースケール画像を変換条件の種類ごとに異なるしきい値で二値化して二値化画像を生成し、該二値化画像におけるエッジ部分を線形化するといった変換条件を含むことを特徴とする請求項1または請求項2に記載の二次元コードリーダ。
- 前記複数種類の変換条件は、前記画像取得部により取得された画像から変換条件の種類ごとに異なる色成分を抽出し、該抽出した色成分よりなる色成分画像をグレースケール画像に変換し、該グレースケール画像を所定のしきい値で二値化してなる二値化画像を生成し、該二値化画像におけるエッジ部分を線形化するといった変換条件を含むことを特徴とする請求項1乃至請求項3のいずれか1項に記載の二次元コードリーダ。
- 前記二次元コードは、複数のセルが配列され、前記複数のセルに色の異なる複数種類のセルが含まれるように各セルに色を付すことで該色または色の組合せに応じた1以上の情報それぞれをコード化した二次元コードであり、
前記情報識別部は、前記二次元コードの領域における各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項1乃至請求項4のいずれか1項に記載の二次元コードリーダ。 - 前記二次元コードは、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められており、
さらに、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域のうち、該セルの領域に対して前記着色規則に従って付されるべき色、および、前記二次元コードにおいて使用されるべき色、以外の色が付されているセルの領域につき、該セルの領域に本来付されるべき色を前記着色規則に従って推定する色推定部、を備えており、
前記情報識別部は、前記二次元コードの領域における各セルの領域のうち、前記色推定部により色が推定されたセルの領域に該推定された色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項5に記載の二次元コードリーダ。 - 前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定する色判定部、を備えており、
前記情報識別部は、前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項5または請求項6に記載の二次元コードリーダ。 - 前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項7に記載の二次元コードリーダ。
- 前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項7に記載の二次元コードリーダ。
- 前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定することを特徴とする請求項1乃至請求項9のいずれか1項に記載の二次元コードリーダ。
- 前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定することを特徴とする請求項1乃至請求項10のいずれか1項に記載の二次元コードリーダ。
- 前記二次元コードの領域が多角形である場合において、
前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれについて、該候補領域として形成された多角形における1以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出され、かつ、前記候補領域判定部により有効と判定された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定することを特徴とする請求項1乃至請求項11のいずれか1項に記載の二次元コードリーダ。 - 前記領域抽出部は、前記領域規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域を候補領域として抽出し、
前記候補領域判定部は、前記形状情報としての形状規則を規定するテンプレートに基づいて、前記領域抽出部により抽出された候補領域が、そのテンプレートにて定められた規則に従って形成された領域か否かを判定することで有効か否かを判定することを特徴とする請求項1乃至請求項12のいずれか1項に記載の二次元コードリーダ。 - 請求項1乃至請求項13のいずれか1項に記載の全ての構成部として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010172620A JP4724802B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
US13/813,005 US8584950B2 (en) | 2010-07-30 | 2010-08-31 | Two-dimensional code reader and program |
PCT/JP2010/005361 WO2012014265A1 (ja) | 2010-07-30 | 2010-08-31 | 二次元コードリーダおよびプログラム |
KR1020137002515A KR101266663B1 (ko) | 2010-07-30 | 2010-08-31 | 이차원 코드 리더 및 프로그램 |
EP10855276.1A EP2600279A4 (en) | 2010-07-30 | 2010-08-31 | TWO-DIMENSIONAL CODE READER AND PROGRAM THEREOF |
CN201080068361.XA CN103080950B (zh) | 2010-07-30 | 2010-08-31 | 二维码读取器及程序 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010172620A JP4724802B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4724802B1 true JP4724802B1 (ja) | 2011-07-13 |
JP2012033035A JP2012033035A (ja) | 2012-02-16 |
Family
ID=44350533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010172620A Active JP4724802B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8584950B2 (ja) |
EP (1) | EP2600279A4 (ja) |
JP (1) | JP4724802B1 (ja) |
KR (1) | KR101266663B1 (ja) |
CN (1) | CN103080950B (ja) |
WO (1) | WO2012014265A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8461546B2 (en) | 2009-04-03 | 2013-06-11 | Lawrence Livermore National Security, Llc | Compounds for neutron radiation detectors and systems thereof |
US9309456B2 (en) | 2011-04-15 | 2016-04-12 | Lawrence Livermore National Security, Llc | Plastic scintillator with effective pulse shape discrimination for neutron and gamma detection |
US9121947B2 (en) | 2012-01-23 | 2015-09-01 | Lawrence Livermore National Security, Llc | Stress reduction for pillar filled structures |
US9650564B2 (en) | 2012-05-14 | 2017-05-16 | Lawrence Livermore National Security, Llc | System and plastic scintillator for discrimination of thermal neutron, fast neutron, and gamma radiation |
US9274237B2 (en) | 2013-07-26 | 2016-03-01 | Lawrence Livermore National Security, Llc | Lithium-containing scintillators for thermal neutron, fast neutron, and gamma detection |
JP5536951B1 (ja) * | 2013-12-26 | 2014-07-02 | 進 辻 | 表示コードが付された物品、表示コード読取装置および情報伝達方法 |
CN105447426B (zh) * | 2014-07-14 | 2018-02-02 | 株式会社理光 | 判定装置、文档图像管理系统以及判定方法 |
EP3467700B1 (en) | 2014-11-18 | 2022-05-04 | Cognex Corporation | Systems and methods for decoding two-dimensional matrix symbols |
JP5997808B1 (ja) * | 2015-06-18 | 2016-09-28 | 株式会社Pfu | 画像処理装置、日付識別装置、画像処理方法、および、プログラム |
JP2017078877A (ja) * | 2015-10-19 | 2017-04-27 | セイコーエプソン株式会社 | 画像処理装置、ロボット、及びロボットシステム |
CN105897716B (zh) * | 2016-04-12 | 2018-10-19 | 广东公诚设备资产服务有限公司 | 一种网站登录验证码的生成方法 |
CN107679529B (zh) | 2016-08-01 | 2019-12-24 | 杭州海康威视数字技术股份有限公司 | 一种物流包裹图片处理方法、装置及系统 |
CN106874818B (zh) * | 2016-08-30 | 2019-11-22 | 阿里巴巴集团控股有限公司 | 一种数字对象唯一标识符doi识别方法与装置 |
EP3582642A4 (en) | 2017-02-20 | 2021-01-13 | 3M Innovative Properties Company | OPTICAL ARTICLES AND INTERACTING SYSTEMS |
CN111164605A (zh) | 2017-09-27 | 2020-05-15 | 3M创新有限公司 | 使用光学图案以用于设备和安全监控的个人防护设备管理系统 |
CN109062648B (zh) * | 2018-07-23 | 2021-10-22 | Oppo广东移动通信有限公司 | 信息处理方法、装置、移动终端及存储介质 |
CN113468905B (zh) * | 2021-07-12 | 2024-03-26 | 深圳思谋信息科技有限公司 | 图形码识别方法、装置、计算机设备和存储介质 |
CN115204341B (zh) * | 2022-09-15 | 2022-11-29 | 深圳永贵技术有限公司 | 智能化物料识别方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0950472A (ja) * | 1995-06-02 | 1997-02-18 | Asahi Optical Co Ltd | データシンボル読み取り装置 |
JPH09114913A (ja) * | 1995-10-17 | 1997-05-02 | Casio Comput Co Ltd | 読取装置及び情報端末装置 |
JP2000148797A (ja) * | 1998-08-31 | 2000-05-30 | Sony Corp | 画像処理装置、画像処理方法、および画像処理プログラム格納媒体 |
JP2006134337A (ja) * | 2004-11-05 | 2006-05-25 | Colorzip Media Inc | 混合コードのデコーディング方法及びその装置、記録媒体 |
JP2008282339A (ja) * | 2007-05-14 | 2008-11-20 | Konica Minolta Business Technologies Inc | コード検出プログラム及びコード検出方法並びに画像形成装置 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5296690A (en) * | 1991-03-28 | 1994-03-22 | Omniplanar, Inc. | System for locating and determining the orientation of bar codes in a two-dimensional image |
US5304787A (en) * | 1993-06-01 | 1994-04-19 | Metamedia Corporation | Locating 2-D bar codes |
DE19622199B4 (de) | 1995-06-02 | 2004-04-08 | Pentax Corp. | Lesegerät für ein Datensymbol |
US20010042788A1 (en) | 1998-08-31 | 2001-11-22 | Keigo Ihara | Image processing apparatus, image processing method and image processing program storage medium |
KR100341504B1 (ko) | 1999-11-13 | 2002-06-21 | 한탁돈 | 기계로 판독가능한 코드와 그 코드의 인코딩/디코딩 방법및 장치 |
US7050631B2 (en) * | 2002-10-30 | 2006-05-23 | Sick Auto Ident, Inc. | Barcode detection system |
KR100653886B1 (ko) | 2004-11-05 | 2006-12-05 | 주식회사 칼라짚미디어 | 혼합코드 및 혼합코드 인코딩 방법과 장치 |
RU2349957C1 (ru) | 2004-11-05 | 2009-03-20 | Колорзип Медиа, Инк. | Смешанный код, и способ и устройство для его генерирования, и способ и устройство для его декодирования |
JP4247190B2 (ja) | 2005-02-25 | 2009-04-02 | 日本電信電話株式会社 | 二次元コード認識装置とそのプログラム |
JP4531809B2 (ja) * | 2005-03-18 | 2010-08-25 | 富士通株式会社 | コード画像処理方法 |
JP4665710B2 (ja) * | 2005-10-21 | 2011-04-06 | 株式会社デンソーウェーブ | 情報コード担体 |
US7325737B2 (en) * | 2005-11-30 | 2008-02-05 | Symbol Technologies, Inc. | Methods and apparatus for identifying candidate barcode fields |
JP4005621B1 (ja) | 2006-07-19 | 2007-11-07 | ビーコア株式会社 | 光学式シンボル及びそれが付された物品並びに光学式シンボルを物品に付す方法及び光学式シンボルのデコード方法。 |
KR20090035529A (ko) | 2006-07-19 | 2009-04-09 | 비-코아 인코포레이티드 | 광학식 심볼 및 그것이 부착된 물품 및 광학식 심볼을 물품에 부착하는 방법, 및 광학식 인식 코드 인식 방법 |
US8172144B2 (en) | 2007-05-14 | 2012-05-08 | Konica Minolta Business Technologies, Inc. | Media storing code detecting program, code detecting method, and image forming apparatus |
JP5111055B2 (ja) * | 2007-10-26 | 2012-12-26 | キヤノン株式会社 | 画像処理装置及び画像処理方法、コンピュータプログラム |
JP2010039624A (ja) | 2008-08-01 | 2010-02-18 | B-Core Inc | 色彩認識方法及びプログラム |
US8308069B2 (en) * | 2007-12-21 | 2012-11-13 | Hand Held Products, Inc. | User configurable search methods for an area imaging indicia reader |
US8366004B2 (en) * | 2008-02-22 | 2013-02-05 | Qualcomm Incorporated | Barcode detection based on morphological operations |
WO2010122549A1 (en) * | 2009-04-20 | 2010-10-28 | Metaform Ltd. | A multiple barcode detection system and method |
JP5447235B2 (ja) * | 2009-07-31 | 2014-03-19 | セイコーエプソン株式会社 | マーカー処理方法、マーカー処理装置、およびマーカー処理プログラム |
-
2010
- 2010-07-30 JP JP2010172620A patent/JP4724802B1/ja active Active
- 2010-08-31 US US13/813,005 patent/US8584950B2/en active Active
- 2010-08-31 WO PCT/JP2010/005361 patent/WO2012014265A1/ja active Application Filing
- 2010-08-31 KR KR1020137002515A patent/KR101266663B1/ko active IP Right Grant
- 2010-08-31 CN CN201080068361.XA patent/CN103080950B/zh active Active
- 2010-08-31 EP EP10855276.1A patent/EP2600279A4/en not_active Withdrawn
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0950472A (ja) * | 1995-06-02 | 1997-02-18 | Asahi Optical Co Ltd | データシンボル読み取り装置 |
JPH09114913A (ja) * | 1995-10-17 | 1997-05-02 | Casio Comput Co Ltd | 読取装置及び情報端末装置 |
JP2000148797A (ja) * | 1998-08-31 | 2000-05-30 | Sony Corp | 画像処理装置、画像処理方法、および画像処理プログラム格納媒体 |
JP2006134337A (ja) * | 2004-11-05 | 2006-05-25 | Colorzip Media Inc | 混合コードのデコーディング方法及びその装置、記録媒体 |
JP2008282339A (ja) * | 2007-05-14 | 2008-11-20 | Konica Minolta Business Technologies Inc | コード検出プログラム及びコード検出方法並びに画像形成装置 |
Also Published As
Publication number | Publication date |
---|---|
EP2600279A4 (en) | 2014-04-09 |
CN103080950A (zh) | 2013-05-01 |
KR101266663B1 (ko) | 2013-05-28 |
US8584950B2 (en) | 2013-11-19 |
EP2600279A1 (en) | 2013-06-05 |
US20130175340A1 (en) | 2013-07-11 |
JP2012033035A (ja) | 2012-02-16 |
WO2012014265A1 (ja) | 2012-02-02 |
KR20130019021A (ko) | 2013-02-25 |
CN103080950B (zh) | 2014-11-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4724802B1 (ja) | 二次元コードリーダおよびプログラム | |
JP4724801B1 (ja) | 二次元コードリーダおよびプログラム | |
JP5298831B2 (ja) | 画像処理装置及びプログラム | |
CN105009170A (zh) | 物体识别设备、方法和存储介质 | |
JP4582204B2 (ja) | 画像処理装置、画像変換方法、およびコンピュータプログラム | |
JP4149464B2 (ja) | 画像処理装置 | |
JP7433887B2 (ja) | 画像を処理するための装置、プログラム、画像処理方法 | |
JP4724800B1 (ja) | 物品検出装置およびプログラム | |
JP5319637B2 (ja) | 二次元コード、エンコード装置、エンコードプログラムおよび二次元コードリーダ | |
JP2006235785A (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JP4208520B2 (ja) | 画像処理装置および画像処理方法、プログラムおよび記憶媒体 | |
JP5691547B2 (ja) | 画像の変更箇所抽出装置、画像の変更箇所表示装置及びプログラム | |
JP4910635B2 (ja) | 画像処理装置及び画像処理プログラム | |
JP2013178732A (ja) | 画像処理装置及び画像処理方法 | |
JP6055952B1 (ja) | 画像検査装置、画像検査方法、およびプログラム | |
JP5109548B2 (ja) | 画像処理装置及びプログラム | |
CN109117844B (zh) | 一种密码确定方法和装置 | |
CN108830362B (zh) | 一种图案编码识别方法和系统 | |
JP2015191308A (ja) | 文書画像の照合装置及び照合プログラム並びに文書画像検索装置 | |
JP2010044517A (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 | |
JP2007109121A (ja) | 画像処理装置 | |
JP2005157938A (ja) | 帳票認識装置、方法、プログラムおよび記憶媒体 | |
JP2007328467A (ja) | 画像処理装置、画像処理手法、プログラムおよび記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110201 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20110303 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110303 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110314 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4724802 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140422 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |