JP4724801B1 - 二次元コードリーダおよびプログラム - Google Patents
二次元コードリーダおよびプログラム Download PDFInfo
- Publication number
- JP4724801B1 JP4724801B1 JP2010172619A JP2010172619A JP4724801B1 JP 4724801 B1 JP4724801 B1 JP 4724801B1 JP 2010172619 A JP2010172619 A JP 2010172619A JP 2010172619 A JP2010172619 A JP 2010172619A JP 4724801 B1 JP4724801 B1 JP 4724801B1
- Authority
- JP
- Japan
- Prior art keywords
- region
- color
- dimensional code
- area
- cell
- 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
- 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/10712—Fixed beam scanning
- G06K7/10722—Photodetector array or CCD scanning
-
- 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/12—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using a selected wavelength, e.g. to sense red marks and ignore blue 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/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
- 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/146—Methods for optical code recognition the method including quality enhancement steps
-
- 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/146—Methods for optical code recognition the method including quality enhancement steps
- G06K7/1491—Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K2019/06215—Aspects not covered by other subgroups
- G06K2019/06225—Aspects not covered by other subgroups using wavelength selection, e.g. colour code
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Electromagnetism (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Artificial Intelligence (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
【解決手段】取得された画像(原画像)から生成されたエッジ画像に基づき、このエッジ画像中における候補領域の抽出、この抽出した候補領域に対応する原画像中の対応領域それぞれに特徴的なパターンが含まれているか否かの判定を経て、原画像中から二次元コードの領域を検出する。また、検出した二次元コードの領域について各ピクセルの色の判定処理を行う際に、その領域の各行を構成するピクセル群ごとに判定処理を行うと共に、各ピクセルに対してその配列順に色の判定処理を順次行い、各セルの領域に対応する各行において一定数以上のピクセルが色の判定領域内に含まれると判定された場合に、その行の残りのピクセルについては色の判定処理を省略する。
【選択図】図8
Description
二次元コードが、複数のセルが配列され、各セルに色を付すことで該色または色の組合せに応じた1以上の情報それぞれをコード化した構成である場合に、情報の識別を行うためには各セルの色の判定を行う必要がある。色の判定は、二次元コードで用いられる色について、各セルの領域の全てのピクセルの色を判定しその判定結果に基づき行う。
また、二次元コードの面積が大きい場合、各セルの面積が大きい場合、セルの面積が大きくかつ数が多い場合などに、各セルを構成する全てのピクセルに対して色の判定処理を行うと、色の判定処理に要する時間が極めて長く必要となる。
本発明は、このような課題を解決するためになされたものであり、その目的は、画像に含まれる複数の二次元コードそれぞれを特定すると共に、特定された二次元コードそれぞれの各セルの領域の色の判定処理にかかる時間を低減するための技術を提供することである。
上記課題を解決するために、本発明に係る第1の構成の二次元コードリーダは、複数のセルが配列され、前記複数のセルは、あらかじめ定められた色が付されたセパレータによって分けられており、前記複数のセルに色の異なる複数種類のセルが含まれるように各セルに色を付すことで該色または色の組合せに応じた1以上の情報それぞれをコード化した構成の複数の二次元コードの領域を含む領域が撮影されてなる画像を取得する画像取得部と、
該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、
該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、
前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域を形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、
該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能な領域検出部と、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を判定する色判定部と、
前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて前記コード化された情報を識別する情報識別部と、
前記あらかじめ定められた色に基づき前記二次元コードの領域における各ピクセルの色の判定処理を行うことで、前記二次元コードの領域における前記セパレータの領域の位置を特定するセパレータ領域特定部と、
前記セパレータ領域特定部で特定されたセパレータの領域の位置に基づき、前記二次元コードの領域における各セルの領域の位置を特定するセル領域特定部と、を備えている。
また、上記構成では、エッジ画像に基づいて検出された各二次元コードの領域について、この二次元コードの領域における各セルの領域に付された色に基づいて、コード化された情報を識別することができる。
これにより、セパレータの領域の位置から各セルの領域の位置を把握することができるので、各セルの領域において所定数の有効な色の判定結果を得た後に、簡易に、各セルの領域における残りのピクセルについて色の判定処理を省略して、次のセルの領域の色の判定処理へと移行することができる。
また、上記構成では、二次元コードの領域における各セルの領域についてピクセル毎に順次色を判定し、所定数の有効な色の判定結果を得たときに、色判定が未処理の残りのピクセルについては色判定処理を省略し、所定数の有効な色の判定結果に基づき各セルの領域に付された色を判定することができる。
これにより、各セルの領域を構成する複数のピクセルにおいて所定数の有効な色の判定結果を得た場合に、残りの未処理のピクセルについては色の判定処理が行われないため、その分だけ各セルの領域の色の判定にかかる処理時間を短縮することができる。
また、エッジ画像から候補領域を抽出する際の「あらかじめ定められた規則」とは、二次元コードの領域からなる候補領域を規定するものであればよく、例えば、二次元コードの領域の外形形状、外形形状が多角形である場合における各辺の長さや各辺で形成される角度、外形形状が多角形である場合における各辺の長さの比率、エッジ画像に二次元コードの領域が含まれている場合におけるエッジ成分の分布パターン(エッジ成分の分布状態、分布されているエッジ成分の配置など)、などを規定しておけばよい。
また、「あらかじめ定められた色」は、セルに付される色以外の色であることが望ましいが、例えば、二次元コードの領域の位置や方向を特定するセルなどの、特別なセルを含む場合には、その色と同じ色にする場合もある。
また、「有効な色」とは、例えば、色の判定対象が複数ある場合には判定結果が最も多数となる色や、予め各セルの領域に付す色が解っている場合、または、色の並びなどから推定できる場合は、各セルの領域に対応する色などが該当する。
さらに、第2の構成の二次元コードリーダは、上記第1の構成において、前記色判定部は、前記二次元コードの領域において、行または列を形成するピクセル群ごとに各ピクセルの色の判定を順次行い、各行または各列の各セルの領域に対応する部分において所定数の有効な色の判定結果を得たときに、次のセルの領域を示すピクセルの手前のピクセルまで、その行または列における色の判定処理が未処理の残りのピクセルについて色の判定処理を省略し、各セルの領域に対する各行または各列の前記色の判定結果に基づき各セルの領域に付された色を判定する。
これにより、各セルの領域の各行または各列において、所定数の有効な色の判定結果が得られた場合に、残りの未処理のピクセルについては色の判定処理が行われないため、その分だけ各セルの領域の色の判定処理にかかる処理時間を短縮することができる。
さらに、第3の構成の二次元コードリーダは、上記第1の構成において、前記色判定部は、前記二次元コードの領域における各セルの領域において、行または列を形成するピクセル群ごとに各ピクセルの色の判定を順次行い、各セルの領域に対応する各行または各列において所定数の有効な色の判定結果を得たときに、次のセルの領域を示すピクセルの手前のピクセルまで、その行または列における色の判定処理が未処理の残りのピクセルについて色の判定処理を省略し、各行または各列の前記色の判定結果に基づき各セルの領域に付された色を判定する。
セルの領域に付された色を判定する。
また、セルごとに各ピクセルの色の判定処理を行うため、次のセルの領域について各ピクセルの色の判定処理を行う前に、判定処理の終わったセルの領域に付された色の判定を行うことが可能となる。従って、次のセルの色判定処理を行う前に、セルの色の並び順等を知りたい場合に有効である。
さらに、第4の構成の二次元コードリーダは、上記第1〜第3の構成のいずれか1において、前記成分変換部による画像のエッジ画像への変換を、異なる2種類以上の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の抽出、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施部と、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出した候補領域(以降「抽出済み候補領域」という)と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えている。
この構成では、原画像に基づいて生成される複数種類のエッジ画像それぞれについて、候補領域の抽出、この抽出した位置情報に対応する対応領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を繰り返し実施している。
これにより、特定のエッジ画像に基づいて二次元コードの領域を検出できなかったとしても、別のエッジ画像に基づいて検出されることが期待でき、その結果、原画像における二次元コードの領域の検出精度を高めることができる。
そのため、複数のエッジ画像それぞれに基づいて検出された各二次元コードの領域について、この二次元コードの領域にて示される情報を識別するに際し、本来同じものであるはずの二次元コードの領域を繰り返し識別してしまうといった無用な処理負担をなくすことができる。
〔第5の構成〕
さらに、第5の構成の二次元コードリーダは、上記第4の構成において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定する。
この構成において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
〔第6の構成〕
さらに、第6の構成の二次元コードリーダは、上記第4〜第5の構成のいずれか1において、前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域、および、別のエッジ画像における抽出済み候補領域のうち、一方の候補領域が他方の候補領域に包摂されていることをもって、両候補領域が一致すると判定することができる。
〔第7の構成〕
さらに、第7の構成の二次元コードリーダは、上記第4〜第6の構成のいずれか1において、前記二次元コードの領域が多角形である場合において、
前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出された候補領域それぞれについて、該候補領域として形成された多角形における1以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定する。
この構成であれば、特定のエッジ画像から抽出された候補領域における1以上の頂点が、抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していることをもって、両候補領域が一致すると判定することができる。
ここでいう「いずれかの頂点から一定範囲内」とは、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域とが一致する場合における両者の位置関係で決まる範囲内とすればよい。
また、両候補領域が一致すると判定する条件としては、特定のエッジ画像から抽出された候補領域における少なくとも1の頂点が、別のエッジ画像における抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していればよい。また、両候補領域が一致すると判定するに際しては、いくつの頂点が一定範囲内に位置していることを条件としてもよく、二次元コードの領域を検出するまでの処理負担や処理速度などに応じて適宜変更することが考えられる。
さらに、第8の構成の二次元コードリーダは、上記第1〜第7の構成のいずれか1において、前記二次元コードは、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められており、さらに、前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域のうち、該セルの領域に対して前記着色規則に従って付されるべき色、および、前記二次元コードにおいて使用されるべき色、以外の色が付されているセルの領域につき、該セルの領域に本来付されるべき色を前記着色規則に従って推定する色推定部、を備えており、前記情報識別部は、前記二次元コードの領域における各セルの領域のうち、前記色推定部により色が推定されたセルの領域に該推定された色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別する。
このような問題に対しては、一部のセルに対応する領域が欠けてしまったような場合であっても、これを補償して適切な情報の識別が実現できるようにしておくことが望ましい。
なお、この構成において、着色規則に従って推定されるセルの色として、複数の色が推定されるような場合には、そのうちのいずれかの色を、例えば、推定結果の確からしさなどといったパラメータに基づいて選択し、そうして選択した色が付されていると推定することとすればよい。また、複数の色が推定されるような場合、複数の色が付されているパターンそれぞれについて情報を識別し、そうして識別した情報の中から、いずれかの情報をユーザに選択させるようにしてもよい。
さらに、第9の構成の二次元コードリーダは、上記第1〜第8の構成のいずれか1において、前記色判定部は、前記二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定する。
この構成であれば、二次元コードにおける各セルの領域に付されている色を、色空間におけるいずれの判定領域に含まれているかにより判定することができる。
さらに、第10の構成の二次元コードリーダは、上記第9の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定する。
上記第9の構成においては、画像の生成条件によっては多くのセルの領域に付された色がいずれの判定領域にも含まれないことも考えられ、この場合、情報の識別そのものができなくなってしまう。
上記第10の構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を拡げることで判定の感度を上げて再度色を判定することにより、色の判定確率を高めることができる。
この構成において、判定領域を拡げる際の拡張幅は、他の判定領域と干渉しない範囲を上限として拡げることとすればよく、判定領域のいずれにも含まれていないと判定したセルが一定数未満となるまで、判定領域を徐々に拡げて再度の判定を繰り返すこととしてもよい。
さらに、第11の構成の二次元コードリーダは、上記第9の構成において、前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定する。
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
なお、上記第10、第11の構成において、「判定領域のいずれにも含まれていないと判定したセルが一定数以上存在する」における「一定数」については、全てのセルに占める該当セルの割合であってもよいし、該当セルの絶対数であってもよい。また、二次元コードにおいて該当セルが特定パターンで配置されている数であってよい。
さらに、第12の構成の二次元コードリーダは、上記第1〜第11の構成のいずれか1において、前記領域抽出部は、前記二次元コードの領域の形成に係る規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域の位置情報を候補領域の位置情報として抽出する。
なお、上述した二次元コードリーダは、単体の装置により構成してもよいし、複数の装置が協調して動作するシステムとして構成してもよい。
また、上記課題を解決するための第13の構成としては、上記第1から第12のいずれか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とセットで配列されている。
また、各行のセルCのうち、先頭(図2における左端の列))に位置するセルC11〜Cp1(本実施形態では、黒(k)が付されたセル)は、二次元コードの位置を特定するための特定セルとして配置されたものである。
ここでいう「成分領域同士が互いに干渉しない」とは、各成分領域が重複しないように、各成分領域同士の間隔を空けて配置したり、各成分領域の境界を隣接させて配置したり、することである。
また、二次元コード100における特定セルに付けられたマークの色、および、セパレータ110の色には、セルCに付すマークの色に用いられていない成分領域における中心座標の色(本実施形態では黒系統の色)が用いられている。
以下に、CPU60がROM64または記憶装置70に記憶された専用のコンピュータプログラムに従って実行する各種処理の手順について順次説明する。
(3−1)コード利用物品検出処理
まず、二次元コードリーダ1が、カメラ76からの画像データを受信中において、入力装置74を介したユーザからの指示入力に応じて開始されるコード利用物品検出処理の処理手順を、図3に基づいて説明する。
コード利用物品検出処理が開始されると、まず、カメラ76で撮影された撮影画像データからのエッジ画像データの生成、エッジ画像データからの候補領域の抽出、候補領域が有効か否かの判定、原画像における有効な候補領域に対応する領域が特徴パターンを含むか否かの判定といった手順を経て、二次元コードの領域を検出する。
さらに、予め設定された検出モードに応じて、検出対象の物品に対応する二次元コードの特定、原画像の加工、および加工した画像の表示といった手順を経て、原画像中の検出物品の位置が明示された画像を表示する。具体的に、画像の加工は、原画像(複写画像でも可)に対して、原画像中における特定した二次元コードの画像部分の強調(例えば、マーキング、色の変更等)、検出モードに応じた物品に係る情報画像(例えば、文字画像)の追加等を行う処理となる。従って、原画像に対して、検出対象の物品の位置を明示する画像(または効果)および該物品に係るモードに応じた情報画像が加えられた画像が、表示装置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において特定された候補領域(抽出済み候補領域)と同じであるか否かを判定する。
具体的に、新規候補領域が抽出済み候補領域に領域として所定割合以上重複している場合、または、新規候補領域および抽出済み候補領域の一方が他方に包摂されている場合に、新規候補領域が抽出済み候補領域と同じであると判定される。
なお、ここでいう「いずれかの頂点から一定範囲内」とは、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域とが一致する場合に、両方の候補領域が位置しうる位置関係で決まる範囲内とすればよく、上記一定の半径r距離内に限られない。
一方、ステップS124において新規候補領域が抽出済み候補領域と同じではないと判定された場合(No)は、ステップS126に移行する。
ここでは、新規候補領域における二次元コードの形状、角度が補正される。具体的には、例えば、処理対象の領域が斜めに配置されていた場合や、正方形になっていない歪んだ形状となっている場合に、そのようなズレを補正すべく回転や、座標軸に合わせた延長・短縮などが行われる。
さらに、このステップS126では、新規候補領域における二次元コードの色成分が、各セルにおける色の識別性を高めるべく補正される。
ステップS128では、上記ステップS102において取得された画像データで示される原画像のうち、上記ステップS126において補正された候補領域に対応する対応領域に、二次元コードとしての特徴的なパターンが含まれているか否かを判定する。
なお、この判定処理において、セルのパターンを特定する際の各セルの色の判定を行う際に、後述する色判定処理のアルゴリズムを適用することが可能である。
例えば、図2に示す二次元コードにおいて、ヘッダー領域および特定セルの領域を除外した、データ領域のみで構成された二次元コードなど他の構成としてもよい。
この場合は、例えば、計算結果の数値等が正しいパターンを示す数値となっているか否か等で判定を行うことになる。そのため、テンプレートにおける特徴的なパターンは、直接的なパターンだけではなく、間接的に正しいパターンを示す数値などの情報として設定される場合もある。
一方、ステップS128において、二次元コードとしての特徴的なパターンが含まれていると判定した場合(Yes)は、ステップS130に移行する。
この検出処理は、新規候補領域の座標情報に基づき、原画像から新規候補領域を切り出して(複製画像を生成して)、記憶装置70に記憶する処理となる。
ステップS132では、上記ステップS130において検出された二次元コードの領域につき、その二次元コードにおけるセルそれぞれに付された色を特定するための色判定処理を行って、ステップS134に移行する。
この色判定処理は、上記ステップS130において検出された二次元コードの領域を引数として実行され、この二次元コードにおけるセルそれぞれに付された色が戻り値となる。なお、この色判定処理における具体的な処理手順については後述する。
ステップS136では、ステップS134において識別された情報を、RAM62または記憶装置70に格納して、ステップS138に移行する。
ここまで示したように、上述したステップS116〜S136までが行われるのは、ステップS110において特定された候補領域が二次元コードの体をなしていたことを意味している。そのため、このステップS138では、この変数Xをインクリメントすることにより、二次元コードの領域として検出かつ識別された候補領域の数を積算していることになる。
ステップS140では、この時点で変数Xが所定数以上になっているか否かを判定する。つまり、所定数以上の候補領域が二次元コードの体をなしていたか否かを判定する。
つまり、上記ステップS116〜S140は、二次元コードとして検出かつ識別された候補領域の数が所定数以上とならない限り、リストに登録された全てのコード領域について繰り返し行われる。
その後、全ての候補領域について上記ステップ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となる。
エッジ画像生成処理が開始されると、図5(b)に示すように、まず、ステップS200に移行し、変数Yの値が3以下となっているか否かを判定する。
ステップS202に移行した場合は、上記図3のステップS102で取得した原画像のデータを複製し、該複製した原画像データに基づき、グレースケール画像を生成して、ステップS204に移行する。
なお、必須ではないが、原画像データのピクセル数が膨大(例えば、1200万画素等)な場合は、処理負荷および処理時間を考慮して、検出精度を損なわない程度に、解像度をこれよりも低解像度へと変換する処理を行うようにしてもよい。
中間値法は、R、G、Bの3つの色成分の値のうち、最大値と最小値の2つを足して2で割ったものを利用してグレースケール化する方法である。
平均法は、平均の取り方によって、算術平均(相和平均)法、幾何平均(相乗平均)法、加重平均法等がある。
算術平均法は、R、G、Bの3つの色成分の値を算術平均(足して3で割る)して平均値を算出し、算出した平均値を利用してグレースケール化する方法である。
加重平均法は、R、G、Bの3つの色成分の値に対して、重み付けをして3で割り、平均を取ってグレースケール化する方法である。この重み付けの係数の内容によって、NTSC加重平均法、HDTV加重平均法等がある。NTSC加重平均法は、日本やアメリカのテレビ放送で利用されている輝度信号(明るさ)の分離方法のものと同じである。また、HDTV加重平均法は、デジタルハイビジョン放送を映す際に基準とされる、HDTV規格に基づいて重み係数が設定されたものである。
グレースケール画像の生成方法は、処理速度(処理時間)や検出精度等を考慮して適切なものを用いることが望ましい。
なお、ここでは、グレースケール画像を、R,G,Bの各要素の値を輝度値に変換することで生成する例を説明したが、輝度以外に、明度等によってグレースケール画像を生成するようにしてもよい。
このようにして、原画像データの各ピクセル値をグレースケール値に変換することで、グレースケール画像データが生成される。
具体的に、グレースケール画像データの各色のピクセル値が8ビットの階調値で表現されているときに、しきい値と、グレースケール画像の各ピクセル値とを比較し、ピクセル値がしきい値以下のときに、ピクセル値を「0」に変換し、ピクセル値がしきい値より大きいときに、ピクセル値を「255」に変換することで二値化を行う。
従って、変数Yの値が1のときは、しきい値120を用いて上記ステップS202で生成したグレースケール画像を二値化し、変数Yの値が2、3のときは、しきい値150、200をそれぞれ用いて上記ステップS202で生成したグレースケール画像を二値化する。
このようにして、上記ステップS202で生成したグレースケール画像データの各ピクセル値を二値化したものが、原画像データに対する二値化画像データとなる。
本実施形態では、公知のブレゼンハムの線分描画アルゴリズムによって、二値化画像中に存在する物体の輪郭部を線形化する。なお、本実施形態では、線形化後の輪郭線を形成していない不要なピクセルは除去(例えば、ピクセル値を(0,0,0)に変換)する。
ここで、ブレゼンハムの線分描画アルゴリズムは、割り算等を用いずに全てを整数演算のみで行うことができるため、高速に線分を描画することができる。
このようにして、二値化画像中の輪郭部を線形化した画像のデータが、エッジ画像データとなる。
ここでは、図5(a)に示すように、変数Yの値4、5、6に対して、赤色、緑色、青色の色成分をそれぞれ抽出する。
このようにして、各色成分の値を抽出してなる画像データが、赤色成分画像データ、緑色成分画像データ、青色成分画像データとなる。
グレースケール画像データの生成は、上記ステップS202と同様の処理となる。
ステップS212では、ステップS210で生成したグレースケール画像に対して、予め設定されたしきい値で二値化を行い、二値化画像データを生成して、ステップS206に移行する。
従って、上記ステップS210で生成したグレースケール画像データに対して、しきい値120を用いて二値化を行い、ステップS208で生成した色成分画像データに対する二値化画像データを生成する。
なお、図5(a)に示す例では、色成分画像に対応するグレースケール画像の二値化に用いるしきい値の種類を1種類としたが、この構成に限らず、第7以降の変換条件を設定して、複数種類のしきい値を用いて二値化を行う構成としてもよい。
例えば、原画像に対応するグレースケール画像の二値化に用いるしきい値を別の順番で用いる構成、色成分画像に対応するグレースケール画像の二値化を別の色の順番で行う構成としてもよい。
また、色成分画像に対応するグレースケール画像の二値化を複数種類のしきい値を用いて行う場合は、そのしきい値を用いる順番も小さい方から順に行う構成だけに限らず、別の順番とする構成としてもよい。また、色成分画像に対応するグレースケール画像の二値化に用いるしきい値の値は、原画像に対応するグレースケール画像の二値化に用いるしきい値と同じ値であってもよいし、異なる値であってもよい。
また、図5(a)に示す例では、原画像および色成分画像の双方を用いてエッジ画像の生成を行うことが可能な構成としたが、この構成に限らず、原画像だけを用いてエッジ画像を生成する構成や、色成分画像だけを用いてエッジ画像を生成する構成など他の構成としてもよい。
続いて、図3のステップS120である有効領域判定処理の処理手順を図6および図7に基づき説明する。
ここで、図6は、有効領域判定処理の処理手順を示すフローチャートである。また、図7(a)は、理想的な候補領域の形状例を示す図であり、(b)〜(e)は、誤差範囲外の形状例を示す図であり、(f)〜(g)は、誤差範囲内の形状例を示す図である。
候補領域の縦横比は、図7(a)に示すように、理想の領域形状における短辺の長さAと長辺の長さBとの比(A:B=A/B)となっていることが望ましい。また、候補領域の各辺間(四隅)の角度は、図7(a)に示すように、理想的には、いずれも90°であることが望ましい。
ここでは、二次元コードの領域が、図2に示すように、矩形形状であることと、処理負荷とを考慮して、縦横比と各辺間の角度とから有効領域か否かを判定する例を説明する。
例えば、図7(b)、(c)および(f)に示す候補領域のように、短辺の長さをC、長辺の長さをDとした場合に、縦横比は「C:D=C/D」となり、理想形との誤差drは、「dr=A/B−C/D」となる。そして、誤差範囲を「−dx〜+dx」とし、本実施形態では、drが「−dx〜+dx」の範囲内であれば、誤差範囲内であると判定し、「−dx〜+dx」の範囲外であれば、誤差範囲外であると判定する。
ステップS302に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して(判定結果を戻り値として)、一連の処理を終了し、元の処理に復帰する。
これにより、例えば、図7(b)および(c)に示すように、理想の縦横比A:Bに対して極端に縦横比の異なる形状を排除することができ、これらの領域に対して以降の処理(図3のステップS124以降の処理)が行われるのを防ぐことができる。
例えば、図7(d)〜(f)に示すように、各辺間(四隅)の角度をβ1〜β4とした場合に、理想形の角度との誤差dβ1〜dβ4は、理想形の角度90°から角度β1〜β4をそれぞれ減じたもの「dβ1〜dβ4=90°−β1〜90°−β4」となる。そして、誤差範囲を「−dy〜+dy」とし、本実施形態では、dβ1〜dβ4がいずれも「−dy〜+dy」の範囲内であれば誤差範囲内であると判定し、いずれか1つでも「−dy〜+dy」の範囲外であれば誤差範囲外であると判定する。
ステップS306に移行した場合は、誤差範囲外と判定された候補領域を無効な候補領域であると判定して(判定結果を戻り値として)、一連の処理を終了し、元の処理に復帰する。
これにより、例えば、図7(d)および(e)に示すように、理想の角度に対して角度β1〜β4の少なくとも1つが誤差範囲外の角度となっている形状を排除することができ、これらの領域に対して以降の処理(図3のステップS124以降の処理)が行われるのを防ぐことができる。
例えば、図7(f)に示す候補領域のように、角度β1〜β4の誤差dβ1〜dβ4がいずれも誤差範囲内(この例では、いずれも90°)で、縦横比の誤差drが「−dx〜+dx」の範囲内となる程度で縦横比のみが異なる場合に、この候補領域は除外されることなく、有効な候補領域と判定される。
つまり、本実施形態では、縦横比および角度の双方が誤差範囲内に納まっている候補領域のみを有効な候補領域と判定する。
続いて、図3のステップS132である色判定処理の処理手順を図8に基づき説明する。
ここで、図8は、色判定処理の処理手順の一例を示すフローチャートである。
色判定処理が開始さると、図8に示すように、まず、ステップS400に移行して、図3のステップS130で検出された二次元コードの領域におけるセパレータ110の領域を特定(座標を特定)して、ステップS402に移行する。
なお、図2に例示した構成の二次元コード100については、上記図3のステップS128において、既に、候補領域から、特徴的なパターンを識別済みであるので、識別済みの領域(例えば、ヘッダー領域および特定セルを含む領域)を切り離した残りの部分だけについて色判定処理を行うようにしてもよい。
具体的に、黒色(k)のピクセルが所定数以上連続する領域や、セパレータ110に周囲(四辺)を囲まれた領域の座標を各セルの座標として、その座標情報をRAM62または記憶装置70に記憶する。
ステップS406では、セパレータ110の特定された二次元コードの領域における座標(x,y)のピクセルを選択して、ステップS408に移行する。
ステップS408では、変数apの値が予め定められた一定数以上か否かを判定し、一定数以上ではないと判定した場合(No)は、ステップS410に移行し、一定数以上であると判定した場合(Yes)は、ステップS422に移行する。
ステップS410に移行した場合は、選択したピクセルの値(色)が、二次元コードにおいて使用される複数の色それぞれを中心座標として広がる色空間上の判定領域のうち、いずれかの判定領域に含まれている(いずれの判定領域内に位置する)か否かを判定する。
ステップS412に移行した場合は、変数apをインクリメント(ap+1→ap)して、ステップS414に移行する。
ここでは、変数apをインクリメントすることで、判定領域に含まれていると判定されたピクセルの数を計数している。この判定結果(判定領域の情報および計数結果を含む)は、各セルに対応付けてRAM62または記憶装置70に記憶される。
その後、ステップS414に移行して、変数xの値が、その行の一番右端のx座標であるxEであるか否かを判定する。
そして、変数xの値がxEではないと判定した場合(No)は、ステップS416に移行し、変数xの値がxEであると判定した場合(Yes)は、ステップS422に移行する。
ステップS416に移行した場合は、変数xをインクリメント(x+1→x)して、ステップS418に移行する。
つまり、変数xの値がxEではない場合に、変数xをインクリメントすることで、1つ右隣のピクセルに座標を変更する。
ステップS420に移行した場合は、変数apを初期化(0→ap)して、ステップS406に移行する。
つまり、色判定領域に含まれる色のピクセルが一定数以上とならないまま、x座標が、次のセルに対応するセパレータの開始x座標に到達した場合に、変数apを初期化する。
そして、変数yの値がyEではないと判定した場合(No)は、ステップS424に移行し、変数yの値がyEであると判定した場合(Yes)は、ステップS438に移行する。
つまり、変数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に移行する。
つまり、変数apが一定数以上のときに、上記ステップS426〜S430の処理を繰り返し行うことで、各セルCに対応する領域においてその行の残りのピクセルに対して上記ステップS410の色判定処理を省略している。
具体的に、例えば、一定数を10としたときに、あるセルの領域におけるいずれかの行においてイエローを中心座標とした判定領域に含まれると判定されたピクセルが10ピクセル(ap=10)になったときに、ステップS408において、変数apの値が一定数以上であると判定され、該当セルCの同じ行の残りのピクセルに対しては上記ステップS410の色判定処理が省略される。
そして、ステップ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による情報の識別を行うこととなる。
なお、上記図1のステップS128における、特徴的なパターンを含むか否かを判定する処理を行う際に、上記ステップS400〜S454に示すアルゴリズム、または、上記ステップS400〜S438に示すアルゴリズムを適用することが可能である。
続いて、図3のステップS146である物品検出処理の処理手順を図9〜図12に基づき具体例を示しながら説明する。
ここで、図9は、物品検出処理の処理手順の一例を示すフローチャートである。また、図10は、データベースに登録された識別情報および物品情報の一例を示す図である。また、図11(a)は、物品検出モードの検出対象画像例を示す図であり、(b)は、検出結果の表示例を示す図である。また、図12(a)は、期限管理モードの検出対象画像例を示す図であり、(b)は、検出結果の表示例を示す図であり、(c)は、カメラ76の配設位置の一例を示す図である。
物品検出処理が開始さると、図9に示すように、まず、ステップS500に移行して、設定されている検出モードが、物品検出モードか否かを判定する。
ステップS502に移行した場合は、記憶装置70に記憶された物品情報に基づき、RAM62または記憶装置70に格納された各二次元コードの識別情報に対応する物品情報に対応する物品のなかに、指定物品があるか否かを判定する。
本実施形態では、ダンボール等の梱包材に梱包された物品に対して、各梱包材に1つの二次元コードを付しており、品名コードは、各梱包材に梱包された1以上の物品に対して付与されるものである。従って、個数情報は、1つの梱包材に梱包された物品の個数の情報となる。
従って、指定物品の有無の判定は、指定された品名コードに対応する識別情報が、上記図3のステップS134で識別された識別情報の中にあるか否かを判定することによって行われる。
指定物品があると判定してステップS504に移行した場合は、記憶装置70の物品情報から、指定物品の情報を取得して、ステップS506に移行する。
ステップS506では、RAM62または記憶装置70から、原画像の画像データと、指定物品の識別情報に対応する二次元コードの原画像における座標情報とを取得して、ステップS508に移行する。
ここで、上記「強調表示するための加工処理」は、例えば、原画像中の、二次元コードの画像領域の周囲を赤色等の目立つ色の線で囲んだり、二次元コードの画像領域を目立つ色で塗りつぶしたり、二次元コードの画像領域の輪郭部を強調(輪郭線を太くする、輪郭線を赤色等の目立つ色に変更する、これら双方など)したりする処理となる。他にも、点滅表示やアニメーション表示されるように加工処理を施してもよい。
ステップS510では、指定物品に対応する二次元コードが複数あるか否かを判定し、複数あると判定した場合(Yes)は、ステップS512に移行し、そうでない場合(No)は、ステップS514に移行する。
ステップS514では、原画像に、指定物品の保管開始時期、出荷期限、消費期限等の画像情報を追加する加工処理を行って、ステップS516に移行する。
これら物品に係る情報は、画像中の物品200の表示されていない部分等に表示されるように加工処理が行われる。なお、表示領域が確保できない場合は、これら情報の表示領域を生成する加工処理を行ってもよい。
なお、ステップS514の物品200に係る情報の表示処理は、行わないようにする、または行わない設定にできるようにしてもよく、行わない場合は、ステップS512の処理からステップ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に表示する処理を行って、上記一連の物品検出処理を終了し、元の処理に復帰する。
図12(b)の画像例は、3つの経過物品が検出された例であり、各経過物品に対応する二次元コードを、丸い枠で囲むマーキングが施されている。これにより、ユーザは、経過物品が原画像中のいずれの物品300なのかを視覚的に瞬時に把握することができる。
つまり、撮影した画像中に経過物品が含まれていない場合に、強調表示加工や追加加工などの施されていない原画像を表示する。これにより、ユーザは経過物品が無いことを視覚的に瞬時に把握することができる。なお、経過物品が無い旨を示すメッセージ等の画像を原画像中に表示するようにしてもよい。
この処理は、物品検出モードおよび期限管理モードのいずれか一方が必ず設定されるように構成されている場合には不要の処理となる。
続いて、図3のコード利用物品検出処理を実行する前等に行われる、検出対象の物品を指定する検出モード設定処理の処理手順を図13に基づき説明する。
ここで、図13は、検出モード設定処理の処理手順の一例を示すフローチャートである。
検出モード設定処理は、上記図3のコード利用物品検出処理とは独立して行われる処理であって、入力装置74を介したユーザの指示入力に応じて起動し、図13に示すように、まず、ステップS600に移行する。
ここでは、入力装置74によって、簡易に検出モードが選択できるように、物品検出モードを選択するボタンのグラフィックスと、期限管理モードを選択するボタンのグラフィックスとを表示装置72の表示画面に表示する。
ステップS604に移行した場合は、検出モードとして物品検出モードを設定して、ステップS606に移行する。
ステップS606では、指定物品の入力を促す画面を表示装置72の表示画面に表示して、ステップS608に移行する。
ステップS608では、指定物品の情報が入力されたか否かを判定し、入力されたと判定した場合(Yes)は、ステップS610に移行し、そうでない場合(No)は、入力されるまで判定処理を続行する。
なお、指定する物品が見つからなかった場合等において、設定モードを終了した場合は、判定処理から抜けて、一連の処理を終了する。
これにより、検出モードとして物品検出モードが設定され、さらに、指定物品が設定される。具体的に、これらの情報がRAM62の所定アドレスに格納される。
ステップS614に移行した場合は、検出モードとして期限管理モードを設定して、一連の処理を終了する。
これにより、検出モードとして期限管理モードが設定される。物品検出モードと同様に、この情報はRAM62の所定アドレスに格納される。
上記実施形態における二次元コードリーダ1であれば、取得された画像(原画像)から、グレースケール画像の生成(図5(b)のS202,S210)、二値化画像の生成(同図S204,S212)、二値化画像中の物体の輪郭部の線形化(同図S206)を経てエッジ画像を生成することができる(図3のS108)。
このように、二値化画像中の物体の輪郭部が線形化されたエッジ画像から、候補領域を抽出することができるので、線形化しない場合と比較して高速に候補領域を抽出することができる。
また、上記実施形態では、原画像に基づいて生成される複数種類のエッジ画像それぞれについて、候補領域の抽出、この抽出した候補領域に特徴的なパターンが含まれているか否かの判定、および、二次元コードの領域の検出を繰り返し実施している(図3のS108〜S144)。
これにより、特定のエッジ画像に基づいて二次元コードの領域を検出できなかったとしても、別のエッジ画像に基づいて検出されることが期待でき、その結果、原画像における二次元コードの検出精度を高めることができる。
そのため、複数のエッジ画像それぞれに基づいて検出された各二次元コードの領域について、この二次元コードにてコード化された情報を識別するに際し、本来同じものであるはずの二次元コードを繰り返し識別してしまうといった無用な処理負担をなくすことができる。
これにより、理想的な形状に対して、誤差範囲外の形状を有する候補領域を、以降の処理対象から除外することができ、二次元コードの領域とは明らかに異なる領域等に対して、無用な処理が行われるのを防ぐことができる。
また、上記実施形態においては、特定のエッジ画像から抽出された候補領域と、別のエッジ画像における抽出済み候補領域との重複度合に応じ、その重複度合が一定以上であることをもって、両候補領域が一致すると判定することができる。
また、上記実施形態においては、特定のエッジ画像から抽出された候補領域における1以上の頂点が、抽出済み候補領域におけるいずれかの頂点から一定範囲内に位置していることをもって、両候補領域が一致すると判定することもできる。
また、上記実施形態においては、二次元コードの各セルCに付された色に基づいて、二次元コードで示される情報を識別することができる(図3のS132〜S134)。
また、上記実施形態では、二次元コードにおける各セルCに付されている色を、色空間におけるいずれの判定領域に含まれているかにより判定することができる(図8のS410)。
これによって、各セルCの領域における各行のピクセルの全てに対して色判定処理を行う場合と比較して、各ピクセルの色判定処理を高速に行うことができる。
具体的には、複数の色それぞれに対応する判定領域のいずれにも含まれていないと判定したセルが一定数以上存在する場合に(図8のS440「Yes」の分岐)、判定領域を一定領域だけ拡げる、または、変移させたうえで、再度、各セルに付されている色を判定している(同図S444〜S438)。
この構成であれば、画像の生成条件が悪く、適切に色の判定ができない場合であっても、判定領域を拡げることで判定の感度を上げて再度色を判定する、または、判定領域を色の分布に応じた適切な位置まで変移させて再度色を判定することにより、色の判定確率を高めることができる。
さらに、指定物品が存在する場合に、原画像における指定物品に対応する二次元コードの領域が強調表示されるように原画像を加工し(図9のS508)、加工した画像を表示することができる(図9のS516)。
これによって、原画像中の指定物品に対応する二次元コードの領域が強調表示された画像を表示することができるので、ユーザは、表示された画像を見ることで、原画像中における指定物品の位置を簡易かつ瞬時に把握することができる。
これによって、ユーザは、表示された画像を見ることで、各指定物品の管理開始時期の順番を視覚的に簡易かつ瞬時に把握することができる。例えば、倉庫内における物品を、その管理開始時期の古い順に出荷するなどの作業を容易に行うことができる。
これによって、ユーザは、表示された画像を見ることで、品名、品名コード、管理開始期限、出荷期限等の指定物品に係る情報を確認することができる。
また、この構成においては、期限管理モードを設定した場合に、出荷期限、消費期限等の期限が経過した物品、または、期限までの期間が所定期間以下の物品を指定物品とすることができる。そして、各セルCの色の判定結果に基づいて識別された情報に対応する物品のなかから、期限を経過した物品、または、期限までの期間が所定期間以下の物品が存在するか否かを判定することができる(図9のS524)。
これによって、原画像中の指定物品に対応する二次元コードの領域が強調表示された画像を表示することができるので、ユーザは、表示された画像を見ることで、原画像中における指定物品の位置を簡易かつ瞬時に把握することができる。
以上、本発明の実施形態について説明したが、本発明は、上記実施形態に何ら限定されることはなく、本発明の技術的範囲に属する限り種々の形態をとり得ることはいうまでもない。
例えば、上記実施形態においては、二次元コードリーダ1が単体の装置により構成されている場合を例示したが、この二次元コードリーダ1は、複数の装置が協調して動作するシステムとして構成してもよい。
また、上記実施形態では、着色規則に従って付されるべき色の候補を選出し、その中から最も確からしい単一の色を、着色規則に従って本来付されるべき色と推定しているが、こうして色の候補を選出した段階で、これら候補のいずれかをユーザに選択させることとしてもよい。
また、上記実施形態においては、管理開始期限の古い順に番号画像を二次元コードの領域上、または、その近傍に表示する構成としたが、この構成に限らず、消費期限が早い順など、他の条件に基づく順番の番号画像を表示する構成としてもよい。
例えば、検出対象の物品が設定(検出モードが設定)された状態であれば、トリガがなくてもコード利用物品検出処理を繰り返し実行して、常に、撮影画像に対して検出処理を実行し、検出結果の画像を表示する構成とするなど、他の構成としてもよい。
以上説明した実施形態において、図3のS102が本発明における画像取得部であり、同図S108(図5のS200〜S212)が本発明における成分変換部であり、同図S110が本発明における領域抽出部であり、同図S128が本発明におけるパターン判定部である。
また、図8におけるS400が本発明におけるセパレータ領域特定部であり、図8におけるS402が本発明におけるセル領域特定部であり、図8におけるS452が本発明における色推定部であり、同図S410,S438およびS454が本発明における色判定部である。
また、検出モードが本発明における指定情報であり、図13のS600〜S614が本発明における指定情報設定部である。
Claims (13)
- 複数のセルが配列され、前記複数のセルは、あらかじめ定められた色が付されたセパレータによって分けられており、前記複数のセルに色の異なる複数種類のセルが含まれるように各セルに色を付すことで該色または色の組合せに応じた1以上の情報それぞれをコード化した構成の複数の二次元コードの領域を含む領域が撮影されてなる画像を取得する画像取得部と、
該画像取得部により取得された画像を、該画像に含まれるエッジ成分の分布を示すエッジ画像に変換する成分変換部と、
該成分変換部により変換されたエッジ画像から、あらかじめ定められた規則であって、前記二次元コードの領域の候補領域となるべきか否かを前記二次元コードの外形形状のパラメータに基づいて判定するための規則に従って形成されている領域を前記二次元コードの領域からなる候補領域として抽出する領域抽出部と、
前記画像取得部により取得された画像における、前記領域抽出部により抽出された候補領域に対応する対応領域それぞれについて、該対応領域を形成する要素に、該対応領域内に形成されているパターンが前記二次元コードの領域であるか否かを決定するためのパターンである特徴的なパターンが含まれているか否かを判定するパターン判定部と、
該パターン判定部により特徴的なパターンが含まれていると判定された対応領域を、前記二次元コードの領域として検出することにより、前記画像に含まれる複数の二次元コードの領域を検出可能な領域検出部と、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域に付されている色を判定する色判定部と、
前記二次元コードの領域における各セルの領域に、該セルの領域について前記色判定部が判定した色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて前記コード化された情報を識別する情報識別部と、
前記あらかじめ定められた色に基づき前記二次元コードの領域における各ピクセルの色の判定処理を行うことで、前記二次元コードの領域における前記セパレータの領域の位置を特定するセパレータ領域特定部と、
前記セパレータ領域特定部で特定されたセパレータの領域の位置に基づき、前記二次元コードの領域における各セルの領域の位置を特定するセル領域特定部と、を備え、
前記色判定部は、前記二次元コードの領域における各セルの領域についてピクセル毎に前記二次元コードにおいて使用される複数の色のいずれかに該当しているか否かの判定を行うことによって順次色を判定し、前記複数の色のいずれかに該当している色を有効な色として、所定数の有効な色の判定結果を得たときに、色の判定処理が未処理の残りのピクセルについて色の判定処理を省略し、前記所定数の有効な色の判定結果に基づき各セルの領域に付された色を判定することを特徴とする二次元コードリーダ。 - 前記色判定部は、前記二次元コードの領域において、行または列を形成するピクセル群ごとに各ピクセルの色の判定を順次行い、各行または各列の各セルの領域に対応する部分において所定数の有効な色の判定結果を得たときに、次のセルの領域を示すピクセルの手前のピクセルまで、その行または列における色の判定処理が未処理の残りのピクセルについて色の判定処理を省略し、各セルの領域に対する各行または各列の前記色の判定結果に基づき各セルの領域に付された色を判定することを特徴とする請求項1に記載の二次元コードリーダ。
- 前記色判定部は、前記二次元コードの領域における各セルの領域において、行または列を形成するピクセル群ごとに各ピクセルの色の判定を順次行い、各セルの領域に対応する各行または各列において所定数の有効な色の判定結果を得たときに、次のセルの領域を示すピクセルの手前のピクセルまで、その行または列における色の判定処理が未処理の残りのピクセルについて色の判定処理を省略し、各行または各列の前記色の判定結果に基づき各セルの領域に付された色を判定することを特徴とする請求項1に記載の二次元コードリーダ。
- 前記成分変換部による画像のエッジ画像への変換を、異なる2種類以上の変換条件のそれぞれについて順に実施させると共に、各変換条件について変換されたエッジ画像それぞれに対し、前記領域抽出部による候補領域の抽出、前記パターン判定部による特徴的なパターンの判定、および、前記領域検出部による二次元コードの領域の検出、を繰り返し実施させる繰り返し実施部と、
特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像について前記領域抽出部が抽出した候補領域(以降「抽出済み候補領域」という)と一致するか否かを、両方の候補領域に基づいて判定する一致判定部と、を備えており、
前記繰り返し実施部は、前記パターン判定部による特徴的なパターンを有しているか否かの判定、および、前記領域検出部による二次元コードの領域の検出、を、前記領域抽出部により抽出された候補領域のうち、前記一致判定部により前記抽出済み候補領域と一致しないと判定された候補領域についてのみ実施させることを特徴とする請求項1乃至請求項3のいずれか1項に記載の二次元コードリーダ。 - 前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域における重複度合に応じて判定することを特徴とする請求項4に記載の二次元コードリーダ。
- 前記一致判定部は、特定の前記エッジ画像に対して、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを、両方の候補領域のうちの一方の候補領域が他方の候補領域に包摂されているか否かに応じて判定することを特徴とする請求項4又は請求項5に記載の二次元コードリーダ。
- 前記二次元コードの領域が多角形である場合において、
前記一致判定部は、特定の前記エッジ画像において前記領域抽出部により抽出された候補領域それぞれについて、該候補領域として形成された多角形における1以上の頂点が、前記抽出済み候補領域として形成された多角形におけるいずれかの頂点から一定範囲内に位置しているか否かに応じて、前記領域抽出部により抽出された候補領域それぞれが、別のエッジ画像における前記抽出済み候補領域と一致するか否かを判定することを特徴とする請求項4乃至請求項6のいずれか1項に記載の二次元コードリーダ。 - 前記二次元コードは、前記複数のセルそれぞれに付される色が、複数種類の色のうち、該セルにてコード化すべき情報、および、該セルと隣接するセルに付された色に応じた着色規則に従って定められており、
さらに、
前記領域検出部により検出された二次元コードの領域それぞれについて、該二次元コードの領域における各セルの領域のうち、該セルの領域に対して前記着色規則に従って付されるべき色、および、前記二次元コードにおいて使用されるべき色、以外の色が付されているセルの領域につき、該セルの領域に本来付されるべき色を前記着色規則に従って推定する色推定部、を備えており、
前記情報識別部は、前記二次元コードの領域における各セルの領域のうち、前記色推定部により色が推定されたセルの領域に該推定された色が付されているものとして、各セルの領域に付された色または色の組合せに基づいて情報を識別することを特徴とする請求項1乃至請求項7のいずれか1項に記載の二次元コードリーダ。 - 前記色判定部は、前記二次元コードの領域における各セルの領域に付されている色を、該二次元コードにおいて使用される複数の色それぞれを中心に拡がる色空間上の判定領域のいずれに含まれているかにより判定することを特徴とする請求項1乃至請求項8のいずれか1項に記載の二次元コードリーダ。
- 前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、前記判定領域を一定領域だけ拡げたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項9に記載の二次元コードリーダ。
- 前記色判定部は、複数の色それぞれに対応する前記判定領域のいずれにも含まれていないと判定したセルの領域が一定数以上存在する二次元コードの領域に対し、該二次元コードの領域における色の分布に応じて前記判定領域を色空間上で変移させたうえで、再度、各セルの領域に付されている色を判定することを特徴とする請求項9に記載の二次元コードリーダ。
- 前記領域抽出部は、前記二次元コードの領域の形成に係る規則を規定するテンプレートに基づいて、前記成分変換部により変換されたエッジ画像から、そのテンプレートにて定められた規則に従って形成されている領域の位置情報を候補領域の位置情報として抽出することを特徴とする請求項1乃至請求項11のいずれか1項に記載の二次元コードリーダ。
- 請求項1乃至請求項12のいずれか1項に記載の全ての構成部として機能させるための各種処理手順をコンピュータシステムに実行させるためのプログラム。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010172619A JP4724801B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
PCT/JP2010/005360 WO2012014264A1 (ja) | 2010-07-30 | 2010-08-31 | 二次元コードリーダおよびプログラム |
CN201080068357.3A CN103069430B (zh) | 2010-07-30 | 2010-08-31 | 二维码读取器及程序 |
KR1020137002514A KR101267216B1 (ko) | 2010-07-30 | 2010-08-31 | 이차원 코드 리더 및 프로그램 |
EP10855275.3A EP2600278A4 (en) | 2010-07-30 | 2010-08-31 | TWO-DIMENSIONAL CODE READER AND PROGRAM THEREOF |
US13/813,054 US8534560B2 (en) | 2010-07-30 | 2010-08-31 | Two-dimensional code reader and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010172619A JP4724801B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP4724801B1 true JP4724801B1 (ja) | 2011-07-13 |
JP2012033034A JP2012033034A (ja) | 2012-02-16 |
Family
ID=44350532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010172619A Active JP4724801B1 (ja) | 2010-07-30 | 2010-07-30 | 二次元コードリーダおよびプログラム |
Country Status (6)
Country | Link |
---|---|
US (1) | US8534560B2 (ja) |
EP (1) | EP2600278A4 (ja) |
JP (1) | JP4724801B1 (ja) |
KR (1) | KR101267216B1 (ja) |
CN (1) | CN103069430B (ja) |
WO (1) | WO2012014264A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021117194A (ja) * | 2020-01-29 | 2021-08-10 | ビーコア株式会社 | 画像処理装置、画像処理システム、方法及びプログラム |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6020124B2 (ja) * | 2012-12-18 | 2016-11-02 | 富士通株式会社 | 画像処理装置、画像処理方法および画像処理プログラム |
CN103310258B (zh) * | 2013-06-09 | 2016-02-17 | 江苏科技大学 | 一种自适应扩展黑白码编码方法 |
JP6299148B2 (ja) * | 2013-10-31 | 2018-03-28 | ブラザー工業株式会社 | 読み取り装置及びプログラム |
CN103680413B (zh) * | 2013-12-31 | 2015-07-01 | 京东方科技集团股份有限公司 | 一种图像处理装置及方法 |
US9367782B2 (en) * | 2014-05-29 | 2016-06-14 | Konica Minolta Laboratory U.S.A., Inc. | High capacity 2D color barcode and method for decoding the same |
US10192022B2 (en) * | 2014-06-04 | 2019-01-29 | IronCAD, LLC | Geometric modeling system with intelligent behaviors of design components |
US20160379031A1 (en) * | 2015-06-23 | 2016-12-29 | Konica Minolta Laboratory U.S.A., Inc. | High capacity 2d color barcode design and processing method for camera based applications |
US9454688B1 (en) | 2015-07-20 | 2016-09-27 | Konica Minolta Laboratory U.S.A., Inc. | High capacity 2D color barcode design and decoding method |
CN106250009B (zh) * | 2015-08-31 | 2019-11-29 | 北京智谷睿拓技术服务有限公司 | 交互方法、交互装置、显示设备及图像获取设备 |
CN109583548A (zh) * | 2017-07-23 | 2019-04-05 | 宁波亿诺维信息技术有限公司 | 一种防伪二维码打印生成*** |
US10740666B2 (en) * | 2018-09-27 | 2020-08-11 | Caleb J. Webster | Two-dimensional cryptographic poly-chromatic poly-digital code |
CN111428530B (zh) * | 2020-02-29 | 2022-07-15 | 厦门华联电子股份有限公司 | 一种二维码图像检测识别设备、装置及方法 |
CN111523341B (zh) * | 2020-04-03 | 2023-07-11 | 青岛进化者小胖机器人科技有限公司 | 二维码图像的二值化方法及设备 |
CN112733567B (zh) * | 2021-01-15 | 2023-12-12 | 深圳市豪恩汽车电子装备股份有限公司 | 机动车二维码识别方法、装置及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148797A (ja) * | 1998-08-31 | 2000-05-30 | Sony Corp | 画像処理装置、画像処理方法、および画像処理プログラム格納媒体 |
JP2006134337A (ja) * | 2004-11-05 | 2006-05-25 | Colorzip Media Inc | 混合コードのデコーディング方法及びその装置、記録媒体 |
JP2008004101A (ja) * | 2006-06-23 | 2008-01-10 | Colorzip Media Inc | カラーベースのイメージコードの色判別方法 |
JP2008282339A (ja) * | 2007-05-14 | 2008-11-20 | Konica Minolta Business Technologies Inc | コード検出プログラム及びコード検出方法並びに画像形成装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 한탁돈 | 기계로 판독가능한 코드와 그 코드의 인코딩/디코딩 방법및 장치 |
KR100339691B1 (ko) | 2001-11-03 | 2002-06-07 | 한탁돈 | 코드인식을 위한 장치 및 그 방법 |
JP2003248792A (ja) * | 2002-02-22 | 2003-09-05 | Seiko Epson Corp | 2次元コードのデコード方法、2次元コードのデコード装置、コンピュータに2次元コードのデコード方法を実行させるためのプログラム、このプログラムを記録した記録媒体 |
RU2349957C1 (ru) * | 2004-11-05 | 2009-03-20 | Колорзип Медиа, Инк. | Смешанный код, и способ и устройство для его генерирования, и способ и устройство для его декодирования |
KR100653886B1 (ko) | 2004-11-05 | 2006-12-05 | 주식회사 칼라짚미디어 | 혼합코드 및 혼합코드 인코딩 방법과 장치 |
WO2006100720A1 (ja) * | 2005-03-18 | 2006-09-28 | Fujitsu Limited | コード画像処理方法 |
KR100914515B1 (ko) | 2006-06-23 | 2009-09-02 | 주식회사 칼라짚미디어 | 색상 기반 이미지 코드의 색상 판별 방법 |
JP4005621B1 (ja) * | 2006-07-19 | 2007-11-07 | ビーコア株式会社 | 光学式シンボル及びそれが付された物品並びに光学式シンボルを物品に付す方法及び光学式シンボルのデコード方法。 |
US20090194596A1 (en) | 2006-07-19 | 2009-08-06 | B-Core Inc. | Optical Symbol, Item to Which Optical Symbol is Attached, Method of Attaching Optical Symbol to Item, and Optical Recognition Code Recognizing Method |
JP5111055B2 (ja) * | 2007-10-26 | 2012-12-26 | キヤノン株式会社 | 画像処理装置及び画像処理方法、コンピュータプログラム |
JP2010039624A (ja) * | 2008-08-01 | 2010-02-18 | B-Core Inc | 色彩認識方法及びプログラム |
US8366004B2 (en) * | 2008-02-22 | 2013-02-05 | Qualcomm Incorporated | Barcode detection based on morphological operations |
-
2010
- 2010-07-30 JP JP2010172619A patent/JP4724801B1/ja active Active
- 2010-08-31 CN CN201080068357.3A patent/CN103069430B/zh active Active
- 2010-08-31 WO PCT/JP2010/005360 patent/WO2012014264A1/ja active Application Filing
- 2010-08-31 US US13/813,054 patent/US8534560B2/en active Active
- 2010-08-31 EP EP10855275.3A patent/EP2600278A4/en not_active Withdrawn
- 2010-08-31 KR KR1020137002514A patent/KR101267216B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000148797A (ja) * | 1998-08-31 | 2000-05-30 | Sony Corp | 画像処理装置、画像処理方法、および画像処理プログラム格納媒体 |
JP2006134337A (ja) * | 2004-11-05 | 2006-05-25 | Colorzip Media Inc | 混合コードのデコーディング方法及びその装置、記録媒体 |
JP2008004101A (ja) * | 2006-06-23 | 2008-01-10 | Colorzip Media Inc | カラーベースのイメージコードの色判別方法 |
JP2008282339A (ja) * | 2007-05-14 | 2008-11-20 | Konica Minolta Business Technologies Inc | コード検出プログラム及びコード検出方法並びに画像形成装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2021117194A (ja) * | 2020-01-29 | 2021-08-10 | ビーコア株式会社 | 画像処理装置、画像処理システム、方法及びプログラム |
JP7176771B2 (ja) | 2020-01-29 | 2022-11-22 | ビーコア株式会社 | 画像処理装置、画像処理システム、方法、プログラム、移動体及び工場または倉庫 |
Also Published As
Publication number | Publication date |
---|---|
CN103069430A (zh) | 2013-04-24 |
KR101267216B1 (ko) | 2013-05-24 |
CN103069430B (zh) | 2014-11-26 |
EP2600278A4 (en) | 2014-04-09 |
US8534560B2 (en) | 2013-09-17 |
WO2012014264A1 (ja) | 2012-02-02 |
EP2600278A1 (en) | 2013-06-05 |
JP2012033034A (ja) | 2012-02-16 |
KR20130019020A (ko) | 2013-02-25 |
US20130186957A1 (en) | 2013-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4724802B1 (ja) | 二次元コードリーダおよびプログラム | |
JP4724801B1 (ja) | 二次元コードリーダおよびプログラム | |
JP5298831B2 (ja) | 画像処理装置及びプログラム | |
CN105009170A (zh) | 物体识别设备、方法和存储介质 | |
JP4582204B2 (ja) | 画像処理装置、画像変換方法、およびコンピュータプログラム | |
JP4149464B2 (ja) | 画像処理装置 | |
JP5319637B2 (ja) | 二次元コード、エンコード装置、エンコードプログラムおよび二次元コードリーダ | |
JP4724800B1 (ja) | 物品検出装置およびプログラム | |
JP2008310817A (ja) | テキストマップの中からライン構造を検出する方法および画像処理装置 | |
JP2008134791A (ja) | 画像処理装置及び画像処理プログラム | |
JP2006235785A (ja) | 画像処理装置、および画像処理方法、並びにコンピュータ・プログラム | |
JP6546385B2 (ja) | 画像処理装置及びその制御方法、プログラム | |
JP4208520B2 (ja) | 画像処理装置および画像処理方法、プログラムおよび記憶媒体 | |
JP2010011450A (ja) | 画像形成装置及び画像処理方法 | |
JP5691547B2 (ja) | 画像の変更箇所抽出装置、画像の変更箇所表示装置及びプログラム | |
JP2013178732A (ja) | 画像処理装置及び画像処理方法 | |
JP2008113145A (ja) | 画像処理装置及び画像処理プログラム | |
JP6055952B1 (ja) | 画像検査装置、画像検査方法、およびプログラム | |
JP5109548B2 (ja) | 画像処理装置及びプログラム | |
CN109117844B (zh) | 一种密码确定方法和装置 | |
JP4973603B2 (ja) | 画像処理装置および画像処理プログラム | |
JP2010044517A (ja) | 画像処理装置、画像処理方法、画像処理プログラム及び記録媒体 | |
JP2007109121A (ja) | 画像処理装置 | |
JP2006092050A (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: 4724801 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 |