JP2007156879A - 情報処理装置および方法、並びにプログラム - Google Patents

情報処理装置および方法、並びにプログラム Download PDF

Info

Publication number
JP2007156879A
JP2007156879A JP2005352023A JP2005352023A JP2007156879A JP 2007156879 A JP2007156879 A JP 2007156879A JP 2005352023 A JP2005352023 A JP 2005352023A JP 2005352023 A JP2005352023 A JP 2005352023A JP 2007156879 A JP2007156879 A JP 2007156879A
Authority
JP
Japan
Prior art keywords
positioning unit
threshold
dimensional code
image
result
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.)
Withdrawn
Application number
JP2005352023A
Other languages
English (en)
Inventor
Yuji Ayatsuka
祐二 綾塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2005352023A priority Critical patent/JP2007156879A/ja
Priority to US11/633,307 priority patent/US7734090B2/en
Priority to CNB2006101640547A priority patent/CN100462997C/zh
Publication of JP2007156879A publication Critical patent/JP2007156879A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/10544Methods 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/10792Special measures in relation to the object to be scanned
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods 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/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record 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/06215Aspects not covered by other subgroups
    • G06K2019/06262Aspects not covered by other subgroups with target- or other orientation-indicating feature

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Toxicology (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

【課題】2Dコードを適切に認識する。
【解決手段】2Dコード101の画像から2Dコード101を認識する際に、はじめに2Dコード101の画像が第1の閾値に基づいて2値化され、その2値化データに基づいて、所定の情報がコード化されているコード部112の位置を検出するために用いられるガイド部111およびコーナセル121が検出される。次に、第1の閾値より大きい値の第2の閾値に基づいて2値化された、ガイド部111およびコーナセル121によって特定されるコード部112の2値化データに基づいて、コード化セル122がマッピングされる。本発明は、例えば、パーソナルコンピュータに適用される。
【選択図】図2

Description

本発明は、情報処理装置および方法、並びにプログラムに関し、特に、2次元バーコードを適切に認識することができるようにする情報処理装置および方法、並びにプログラムに関する。
図1は、例えばパーソナルコンピュータ等により認識される2次元バーコード(以下、2Dコードと称する)101の例を示している。この2Dコード101をパーソナルコンピュータに認識させることにより、パーソナルコンピュータに2Dコード101によりコード化されている所定の情報に応じた処理を実行させることができる。
2Dコード101は、X軸方向が1つの正方形(以下、ブロックと称する)7つ分の長さで、Y軸方向が9.5ブロック分の長さの長方形の範囲内に設けられたガイド部111およびコード部112から構成されている。
ガイド部111は、X軸方向が7ブロック分の長さで、Y軸方向が1.5ブロック分の長さの長方形のセルにより形成されている。

コード部112は、ガイド部111から1ブロック分離れて設けられており、方形のセルが2次元的にパターン化されて配置されている。
コード部112を構成するセルには、図2に示すように、ガイド部111の図中左端から7ブロック分上方向に位置する左上コーナセル121−1、およびガイド部111の右端から7ブロック分上方向に位置する右上コーナセル121−2、並びにガイド部111の左端から1ブロック分上方向に位置する左下コーナセル121−3、およびガイド部111の右端から1ブロック分上方向に位置する右下コーナセル121−4が存在する。なお、左上コーナセル121−1、右上コーナセル121−2、左下コーナセル121−3、および右下コーナセル121−4を特に区別する必要がない場合、これらをまとめてコーナセル121と称する。
コーナセル121の周囲の隣接する3ブロック(図中点線で示されるブロック)分の領域には、セルが存在しない。
コード部112のコーナセル121以外のセル(以下、適宜、コード化セルと称する)122は、所定の英数文字等に応じて2次元的に配列されている。
パーソナルコンピュータは、2Dコード101の画像から、ガイド部111およびコード部112のコーナセル121を検出し、それらに基づいて、コード部112が存在する範囲を特定し、そしてその範囲に存在するコード化セル122の配列パターンからコード化された情報を取得する。
次に、従来の2Dコード認識処理を、図3のフローチャートを参照して説明する(特許文献1参照)。
ステップS1において、所定の輝度値を示す閾値の設定をカウントするカウンタiの値に1が初期設定される。この例の場合、図4に示すように、閾値が5段階に設定され、各閾値の大きさは、設定番号1に示される閾値Aが最も大きく、設定番号5に示される閾値Eに向かって、段階的に小さくなっている。
図3に戻りステップS2において、カウンタiの値に対応する設定番号の閾値に基づいて、パーソナルコンピュータに取り込まれた2Dコード101の画像データに対して2値化処理が行われる。
ここで、閾値より大きい輝度値を保持する画素は、”1”に符号化され、表示上、その画素は白色とされる。以下においては、このように、”1”に符号化された画素を、白色画素と称する。
一方、閾値以下の輝度値を保持する画素は、”0”に符号化され、表示上、その画素は黒色とされる。以下においては、このように、”0”に符号化された画素を、黒色画素と称する。
次に、ステップS3において、図5に示すように、黒色画素が連結する領域(以下、黒色画素連結領域と称する)を1つの領域として、左上から右下に向かって順に番号が設定(ラベリング)される。
ステップS4において、ステップS3でラベリングされた黒色画素連結領域の総数Mが求められ、そして求められた黒色画素連結領域の総数Mが257個以上であるか否かが判定され、Mが257以上であると判定された場合、この2値化画像が、以降の処理を実行するのに適さない画像であるとして、ステップS5に進む。
ステップS5において、カウンタiの値が、閾値の設定数N(=5)と等しい(i=5)か否かが判定され、i=5ではないと判定された場合、ステップS6において、カウンタiの値が1だけ増加された後、ステップS2に戻る。ステップS2において、1つだけ増加されたカウンタiの値に対応する設定番号の閾値に基づいて、取り込まれた画像データに対して、再度、2値化処理が実行される。
上述したように、設定番号1で示される閾値Aは、最も値が大きい閾値で、それによって2値化処理された場合、画像データの多くの画素の輝度値が、閾値Aより小さい値となり、多くの画素が黒色画素とされ、これにより、黒色画素連結領域の総数Mが多くなる。そこで、ステップS4でYESの判定がなされた場合、ステップS5で、カウンタiの値が1つ増加され、1段階小さい値の閾値によって2値化処理することによって、黒色画素とされる画素、すなわち黒色画素連結領域の数を減少させることができる。
ステップS5において、i=5であると判定された場合、すなわち、閾値A乃至閾値Eのいずれの閾値によっても、適当な総数Mの黒色画素連結領域が生成されなかった場合、この1フレーム分の画素データには、2Dコード101の画像が存在しないものと判定され、処理が終了される。
ステップS4において、黒色画素連結領域の総数が257個より小さい数であると判定された場合、ステップS7に進み、ガイド部検出処理が実行される。ステップS7におけるガイド部検出処理の詳細を、図6のフローチャートを参照して説明する。
はじめに、ステップS21において、黒色画素連結領域の数をカウントするカウンタjの値が1に初期設定され、次に、ステップS22において、例えばフレームの中央点から、左回りの渦巻の軌跡に沿って、黒色画素連結領域が探索され、始めに検出された黒色画素連結領域がガイド部候補領域として選択される。
次に、ステップS23において、ステップS22で選択されたガイド部候補領域の、ガイド部111の長軸(以下、辺Aと称する)および短軸(以下、辺Bと称する)に対応する辺ATおよび辺BTが決定される。辺ATは、図7に示すように、黒色画素連結領域が画像上のX軸上に投影されて形成される線(X軸投影線)とされ、辺BTは、Y軸上に投影されて形成される線(Y軸投影線)とされる。
次に、ステップS24において、短軸に対応する辺BTが20画素より少ない画素で構成されているか否かが判定される。例えば、短軸(辺B)が20画素より少ない画素で構成されている黒色画素連結領域がガイド部111であるとすると、図1に示したように、辺Bの長さが1.5に対して1の割合で求められる1ブロックの一辺の長さが小さくなり、最小セル(1×1ブロック領域のセル)が適切に表示されなくなる。このことより、辺BTが20画素より少ない画素で構成されていると判定された場合、今回ステップS22で選択された黒色画素連結領域は、ガイド部111ではないとされ、ステップS25に進む。
ステップS25において、カウンタjの値が、黒色画素連結領域の総数Mと等しい(j=M)か否かが判定され、j=Mではないと判定された場合、ステップS26に進み、カウンタjの値が1だけ増加された後、ステップS22に戻る。そして、次に検出される黒色画素連結領域が、次のガイド部候補領域とされ、同様の処理が行われる。
ステップS24において、ステップS22で選択されたガイド部候補領域の辺BTが20画素と等しいか、それより多い画素で構成されていると判定された場合、ステップS27に進み、ガイド部候補領域の辺ATが300画素より多い画素で構成されているか否かが判定される。例えば、長軸(辺A)が300画素より多い画素で構成されている黒色画素連結領域がガイド部111であるとすると、図1に示したように、辺Aの長さが7に対して1の割合で求められる1ブロックの一辺の長さが大きくなり、図2に示したように、ガイド部111から7ブロック分離れて位置する左上コーナセル121−1および右上コーナセル121−2が、表示されなくなる。このことより、辺ATが300画素より多い画素で構成されていると判定された場合、今回ステップS22で選択された黒色画素連結領域は、ガイド部111ではないとされ、ステップS25に進む。
ステップS27において、ステップS22で選択されたガイド部候補領域の辺ATが300画素より多い画素で構成されていない(300画素以下の画素で構成されている)と判定された場合、ステップS28に進む。
ステップS28において、ガイド部候補領域の黒色画素の総数が、20画素以上かつ1500画素未満であるか否かが判定され、ガイド部候補領域の黒色画素の総数が20画素未満、または1500画素以上であると判定された場合、ステップS25に進む。黒色画素の総数が、20画素未満の場合、ステップS24で辺BTが20画素より少ない画素で構成された場合と同様の問題が発生し、また、1500画素以上である場合、ステップS27で辺ATが300画素より多い画素で構成された場合と同様の問題が発生し、いずれの場合も、ガイド部111である可能性が小さい。
ステップS28で、20画素以上かつ1500画素未満であると判定された場合、ステップS29に進み、ステップS22で選択されたガイド部候補領域の方形らしさ(fitness)が判定され、方形であると判定された場合、ステップS30に進む。
ステップS30において、ステップS29で方形とされたガイド部候補領域の長軸と短軸の比が2.0以上かつ25以下であるか否かが判定され、2.0以上かつ25以下であると判定された場合、ステップS31に進む。
ステップS31において、ステップS22で選択したガイド部候補領域がガイド部111として設定(仮定)され、例えば、ガイド部候補領域とされた黒色画素連結領域の番号が記憶される。このようにして、ガイド部111が検出されると、処理は終了される。
ステップS28で、黒色画素の総数が20画素未満、若しくは1500画素以上であると判定された場合、ステップS29で、ガイド部候補領域が方形ではないと判定された場合、またはステップS30で、辺ATと辺BTの比が2.0未満若しくは25以上であると判定された場合、今回ステップS22で選択されたガイド部候補領域は、ガイド部111ではないとされ、ステップS25に進み、次に検出された黒色画素連結領域が次のガイド部候補領域とされ、以降の処理が行われる。
ステップS25で、カウンタjの値が黒色画素連結領域の総数Mと等しい(j=M)と判定された場合、ステップS31でガイド部111が設定されず、処理は終了される。すなわち、今回2Dコード認識処理の対象とされた画像データ(1フレーム)には、ガイド部111が存在しないものとされる。
以上のようにして、ガイド部検出処理が完了したとき、次に、図3のステップS8に進む。
ステップS8において、ステップS7でガイド部111が検出されたか否かが判定され、検出されたと判定された場合、ステップS9に進み、コード部検出処理が実行される。このコード部検出処理の詳細を、図8のフローチャートを参照して説明する。
ステップS41において、図3のステップS3で検出された黒色画素連結領域の数をカウントするカウンタjの値が1に初期設定され、ステップS42において、その値に対応する番号の黒色画素連結領域が検出され、それが左上コーナセル候補領域として選択される。
次に、ステップS43において、ステップS42で選択された左上コーナセル候補領域の、図7に示したようにして決定された辺ATおよび辺BTの長さの比が3倍以下であるか否かが判定され、その比が3倍以下であると判定された場合、ステップS44に進む。
ステップS44において、ステップS42で選択された左上コーナセル候補領域が、図3のステップS7で検出されたガイド部111に対して予め設定された探索範囲内に存在するか否かが判定され、探索範囲内に存在すると判定された場合、ステップS45において、それが左上コーナセル121−1として設定(仮定)される。
ステップS43で、辺ATの長さに対する辺BTの長さの比が3倍より大きいと判定された場合、またはステップS44で、探索範囲内に存在しないと判定された場合、ステップS42で選択された黒色画素連結領域は、左上コーナセル121−1ではないとして、ステップS46に進み、カウンタjの値が黒色画素連結領域の総数Mに等しい(j=M)か否かが判定され、j=Mではないと判定された場合、ステップS47に進み、カウンタjの値が1だけ増加されて、ステップS42に戻る。そして、次の番号の黒色画素連結領域が、次の左上コーナセル候補領域とされ、同様の処理が行われる。
ステップS45において、左上コーナセル121−1が設定されると、ステップS48に進み、黒色画素連結領域の番号をカウントする他のカウンタkに2が初期設定され、次に、ステップS49において、カウンタkの値に対応する番号の黒色画素連結領域が検出され、それが右上コーナセル候補領域として選択される。
次に、ステップS50において、ステップS45で設定された左上コーナセル121−1の画素数(面積)と、ステップS49で選択された右上コーナセル候補領域の画素数(面積)の比が算出され、その比(面積比)が6倍以下であるか否かが判定され、6倍以下であると判定された場合、ステップS51に進む。
ステップS51において、ステップS45で設定された左上コーナセル121−1の面積(画素数)、ステップS49で選択された右上コーナセル候補領域の面積(画素数)、およびその左上コーナセル121−1の中心点とその右上コーナセル候補領域の中心点との距離(D)が算出され、式(1)および式(2)が成立するか否かが判定される。
(S1/D2)≦900 ・・・(1)
(S2/D2)≦900 ・・・(2)
ステップS51において、式(1)および式(2)が成立すると判定された場合、ステップS52に進み、ステップS49で選択された右上コーナセル候補領域が右上コーナセル121−2として設定(仮定)される。
右上コーナセル121−2が設定(仮定)されると、ステップS55において、ステップS45で設定された左上コーナセル121−1、ステップS52で設定された右上コーナセル121−2、および図3のステップS7で設定されたガイド部111により特定される領域が、表示上のX軸方向に7ブロック分の長さ、そしてY軸方向に9.5ブロック分の長さの領域になるようにアフィン変換される。なお、1ブロックの1辺の長さは、図3のステップS7で設定されたガイド部111の辺ATまたは辺BTに基づいて算出される。
次に、ステップS56において、ステップS55で変換された画像から、図3のステップS7で設定されたガイド部111と、ガイド部111上側の7×1ブロック(ガイド部111とコード部112との間の7×1ブロックに相当するブロック)分の領域(7×2.5ブロック領域)(図1)が削除され、その結果得られた7×7ブロック領域の範囲に、黒色画素連結領域がセルとしてマッピングされ、コードマップが生成される。
ステップS57において、ステップS56で生成されたコードマップのセルのうち、4角のセルが検出され、コーナセル121の周り3ブロック領域にセルが存在しないので(図2)、その周りの3ブロック領域が白色画素とされているか否かが判定され、白色ブロックとされていると判定された場合、ステップS58に進み、ステップS56で生成されたコードマップが2Dコード101のコード部112と設定(仮定)される。このようにして、コード部112が検出され、処理は終了される。
ステップS50で、面積比が6倍より大きいと判定された場合、ステップS51で、式(1)および式(2)が成立しないと判定された場合、またはステップS57で、4角のセルの周りの3ブロック領域が白色画素とされていないと判定された場合、ステップS53に進み、カウンタkの値が黒色画素連結領域の総数Mに等しい(k=M)か否かが判定され、k=Mではないと判定された場合、ステップS54に進み、カウンタkの値が1だけ増加され、ステップS49に戻る。そして次の番号の黒色画素連結領域が、次の右上コーナセル候補領域とされ、同様の処理が行われる。
ステップS53で、カウンタkの値が黒色画素連結領域の総数Mと等しいと判定された場合、ステップS46に戻り、ステップS46の処理で、j=Mでないと判定された場合、ステップS47において、カウンタjの値が1だけ増加され、ステップS42に戻り、次の番号の黒色画素連結領域が、次の左上コーナセル候補領域として選択され、それ以降の処理が行われる。
ステップS46で、j=Mと判定された場合、今回2Dコード認識処理の対象となっている画像には、2Dコード101が存在しないものとされ、処理は終了される。
以上のようにして、コード部検出処理が完了すると、図3のステップS10に進み、コード部112が検出されたか否かが判定され、検出されたと判定された場合、ステップS11において、検出されたコード部112のコードマップから、コードデータ、すなわち2Dコード101の値が算出され、保持される。その後、処理は終了される。
ステップS8で、ガイド部111が検出されていないと判定された場合、またはステップS10で、コード部112が検出されていないと判定された場合、今回2Dコード認識処理の対象とされた画像データには、2Dコード101が存在しないものとされ、処理は終了される。
以上のようにして2Dコード101が認識される。
特開2000−148904号公報
ところで、例えば図9に示すように2Dコード101に何かの影が落ちている場合の2Dコード101の画像データについて、上述した2Dコード認識処理が行われるものとする。この場合閾値が、図3のステップS4の処理で、黒色画素連結領域の数に応じた値に決定されても、例えば閾値が大きな値に設定されると、図10に示すように、影により輝度値が小さくなっている部分(暗くなっている部分)が黒色画素(図中、Br−1)とされ、ガイド部111とその黒色画素が連結し1つの黒色画素連結領域を形成してしまい、ガイド部111が適切に検出されない(例えば、図6のステップS29)。
なおこの場合コード部112は、ガイド部111とコーナセル121により特定されるので、それらにより特定される範囲外は、コード部112としては取り扱われない。すなわち例えばコード部112付近の影の部分が黒色画素(図10においては、例えばBr−2)とされ、コード部112のコード化セル122と連結して1つの黒色画素連結領域が形成されても、その部分は排除されてコード部112が認識されるので、特に問題はない。
一方閾値が小さな値に設定されると、コード部112の、例えば図11中点線の枠で示される、影から遠い部分で明るくなっている部分(図9)が、黒色画素とはならず、2Dコード101の値が適切に読み取れない場合がある。
なおこの場合(図11)、ガイド部111は、図10に示した影による黒色画素連結領域Br−1が存在しないので、ガイド部111は、適切に検出される。
すなわち従来においては、例えば影等で一部が暗くなった場合、2Dコード101が適切に認識されない場合があった。
本発明は、このような状況に鑑みてなされたものであり、例えば影等で一部が暗くなった場合においても、2Dコード101が適切に認識されるようにするものである。
本発明の第1の側面の情報処理装置は、複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置において、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出手段と、前記検出手段により検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得手段とを備え、前記検出手段は、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、前記取得手段は、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する。
前記2次元コードの画像を、前記第1の閾値および前記第2の閾値に基づいて、3値化する3値化手段をさらに設け、前記検出手段には、前記3値化手段による3値化の結果得られた3値化データを、前記第1の閾値に基づいて2値化させ、前記取得手段には、前記3値化手段による3値化の結果得られた3値化データを、前記第2の閾値に基づいて2値化させることができる。
前記検出手段は、前記2次元コードの画像が、前記第1の閾値に基づいて2値化された結果得られた2値化データと前記第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、前記取得手段は、前記位置決め部により特定される領域が、前記第2の閾値に基づいて2値化された結果得られた2値化データと前記第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得することができる。
本発明の第1の側面の情報処理方法、またはプログラムは、複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、または複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出ステップと、前記検出ステップの処理で検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得ステップとを含み、前記検出ステップは、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、前記取得ステップは、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する。
本発明の第1の側面の情報処理装置、情報処理方法、またはプログラムにおいては、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部が検出され、検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報が取得される。その際、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部が検出され、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則が検出され、前記所定の情報が取得される。
本発明の第2の側面の情報処理装置は、複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置において、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出手段と、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得手段とを備え、前記検出手段または前記取得手段は、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する。
本発明の第2の側面の情報処理方法、またはプログラムは、複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、または複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出ステップと、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得ステップとを含み、前記検出ステップまたは前記取得ステップは、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する。
本発明の第2の側面の情報処理装置、情報処理方法、またはプログラムにおいては、前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部が、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出され、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則が検出され、前記配列規則から、前記所定の情報が取得される。その際、前記2次元コードの画像が3値化された結果得られた3値化データが、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化される。
本発明の第1および第2の側面によれば、2Dコードを適切に認識することができる。
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
本発明の第1の側面の情報処理装置は、
複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置(例えば、図12のパーソナルコンピュータ1)において、
前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出手段(例えば、図13のコード認識部42)と、
前記検出手段により検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得手段(例えば、図13のコード認識部42)と
を備え、
前記検出手段は、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
前記取得手段は、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する。
前記2次元コードの画像を、前記第1の閾値および前記第2の閾値に基づいて、3値化する3値化手段(例えば、図14のステップS101の処理を行う図13のコード認識部42)をさらに設け、
前記検出手段には、前記3値化手段による3値化の結果得られた3値化データを、前記第1の閾値に基づいて2値化させ(例えば、図17のステップS121)、
前記取得手段は、前記3値化手段による3値化の結果得られた3値化データを、前記第2の閾値に基づいて2値化させる(例えば、図18のステップS151)ことができる。
前記検出手段は、前記2次元コードの画像が、前記第1の閾値に基づいて2値化された結果得られた2値化データ(例えば、図10の2値化画像)と前記第2の閾値に基づいて2値化された結果得られた2値化データ(例えば、図11の2値化画像)に基づいて、前記位置決め部を検出し、
前記取得手段は、前記位置決め部により特定される領域が、前記第2の閾値に基づいて2値化された結果得られた2値化データ(例えば、図11の2値化画像)と前記第1の閾値に基づいて2値化された結果得られた2値化データ(例えば、図10の2値化画像)に基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得することができる。
本発明の第1の側面の情報処理方法、またはプログラムは、
複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、または複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、
前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出ステップ(例えば、図14のステップS102)と、
前記検出ステップの処理で検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得ステップ(例えば、図14のステップS104およびステップS105)と
を含み、
前記検出ステップは、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
前記取得ステップは、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する。
本発明の第2の側面の情報処理装置は、
複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置において、
前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出手段(例えば、図13のコード認識部42)と、
前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得手段(例えば、図13のコード認識部42)と
を備え、
前記検出手段または前記取得手段は、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する(例えば、図19)。
本発明の第2の側面の情報処理方法、またはプログラムは、
複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、または複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、
前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出ステップと、
前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得ステップと
を含み、
前記検出ステップまたは前記取得ステップは、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する(例えば、図19)。
図12は、本発明を適用したパーソナルコンピュータ1の利用例を示す図である。
パーソナルコンピュータ1は、モニタ2の上部に設けられたカメラ11により撮像された2Dコード101の画像を含む画像データから、2Dコード101を認識し、2Dコード101によりコード化された所定の情報に応じた処理を実行する。
2Dコード101は、図1および図2に示したように構成されている。なおこの例の場合、2Dコード101は、カード100に印刷されている。
図13は、パーソナルコンピュータ1の構成例を示している。
処理部31は、演算部や制御部等からなり、ROM32やRAM33等を利用して、各部を制御する。つまり、処理部31は、パーソナルコンピュータ1においてCPU(Central Processing Unit)として動作する。
ROM32は、製造時に回路にデータやプログラムが書き込まれている読み出し専用のマスクROMであり、必要に応じて、そのデータやプログラムを処理部31に供給する。RAM33は、データの更新が可能な半導体メモリであり、処理部31が実行中の処理(プログラム)やその処理に必要なデータを、処理部31の制御に基づいて、一時的に保持する。
入力部34は、例えば、キーボード、マウス等の入力デバイスにより構成され、ユーザがその入力部34を操作することにより入力した指示を処理部31に供給する。
記憶部35は、例えば、ハードディスク等の不揮発性の記憶媒体により構成され、処理部31が実行するプログラムやデータ等の各種の情報を記憶し、必要に応じてそれらの情報を処理部31に供給する。
通信部36は、処理部31に制御され、図示せぬネットワークを介して接続され、図示せぬ他のパーソナルコンピュータ等と通信を行い、情報の授受を行う。
ドライブ37は、装着されたリムーバブルメディア38を駆動させ、リムーバブルメディア38に記憶されているデータを読み出し、それを処理部31に供給する。例えば、リムーバブルメディア38は、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク(MD(Mini-Disk)(登録商標)を含む)、もしくは半導体メモリやハードディスクなどで構成される。ドライブ37は、このリムーバブルメディア38に記録されているプログラムを読み出し、処理部31において実行させることもできる。
入力インタフェース41は、例えば、USB(Universal Serial Bus)やIEEE(Institute of Electrical and Electronic Engineers)1394等の所定の方式でパーソナルコンピュータ1の外部装置とパーソナルコンピュータ1を接続し、外部装置から供給される情報をパーソナルコンピュータ1に供給するためのインタフェースである。図13において入力インタフェース41は、カメラ11に接続され、カメラ11より供給される画像情報をコード認識部42または表示制御部43に供給する。
コード認識部42は、処理部31に制御され、入力インタフェース41を介して取得したカメラ11の撮影画像から2Dコード101を認識する処理を行う。コード認識部42における2Dコード認識処理の詳細については後述する。コード認識部42は、2Dコード101を認識すると、その認識結果を処理部31に供給する。処理部31は、その認識結果に基づいて処理を行う。
表示制御部43は、図示せぬ画像用のバッファメモリを有し、モニタ2に表示される表示画像の生成に関する処理を行う。例えば、表示制御部43は、処理部31に制御され、入力インタフェース41を介して取得したカメラ11の撮影画像を出力インタフェース44に供給する。
出力インタフェース44は、モニタ2に接続され、表示制御部43より供給される画像データ等をモニタ2に供給するインタフェースである。
次に、コード認識部42の2Dコード認識処理を、図14のフローチャートを参照して説明する。
ステップS101において、カメラ11による撮像の結果得られた画像データ(2Dコード101の画像を含む画像データ)の3値化処理が行われる。この処理の詳細は、図15のフローチャートに示されている。
ステップS111において、コード認識部42は、カメラ11による撮像の結果得られた画像データを構成する1個の画素を選択する。
次にステップS112において、コード認識部42は、選択した画素と、その周辺の画素(例えば、隣接する4個の画素)の輝度値の平均値を算出する。
ステップS113において、コード認識部42は、ステップS112で算出した平均値に0.1を乗算して得た値(平均値の10%の輝度値)を、第1の閾値とする。
ステップS114において、コード認識部42は、ステップS112で算出した平均値に0.6を乗算して得た値(平均値の60%の輝度値)を、第2の閾値とする。
次にステップS115において、コード認識部42は、ステップS111で選択した画素の輝度値と、第1の閾値および第2の閾値とを比較し、その比較結果に応じて、以下のように画素を3値化する。
画素の輝度値≦第1の閾値→“0”
第1の閾値<画素の輝度値≦第2の閾値→“1”
第2の閾値<画素の輝度値→“2”
すなわち、第1の閾値以下の輝度値を保持する画素は、”0”に符号化され、表示上、その画素は黒色とされる。以下においては、このように、”0”に符号化される画素を、黒色画素と称する。第1の閾値より大きく、第2の閾値以下の輝度値を保持する画素は、”1”に符号化され、表示上、その画素は灰色とされる。以下においては、このように、”1”に符号化される画素を、灰色画素と称する。そして第2の閾値より大きい輝度値を保持する画素は、”2”に符号化され、表示上、その画素は白色とされる。以下においては、このように、”0”に符号化される画素を、白色画素と称する。
図16は、図9に示した画像を上述したように3値化した場合の表示例を示している。影により暗くなっていた部分は、灰色で表示されている。
図15に戻りステップS116において、コード認識部42は、すべての画素を選択したか否かを判定し、まだ選択しないで残っている画素が存在すると判定した場合、ステップS111に戻り、次の画素を選択し、ステップS112以降の処理を同様に実行する。
ステップS116で、すべての画素が選択されたと判定された場合、すなわち各画素が、値0、値1、または値2のいずれかの値に3値化されたとき、処理は、図14のステップS102に進む。
ステップS102において、位置決め部検出処理が行われる。この処理により2Dコード101(図2)のガイド部111、左上コーナセル121−1、および右上コーナセル121−2(以下、適宜、これらをまとめて位置決め部と称する)が検出される。この処理の詳細は、図17のフローチャートに示されている。
ステップS121において、コード認識部42は、各画素を、図15のステップS113で算出した第1の閾値を利用して2値化する。すなわち3値化値“0”の画素は、“0”(黒色)に、そして3値化値“1”および“2”の画素は、“2”(白色)に2値化される。
コード認識部42はまた、黒色画素が連結する領域(以下、黒色画素連結領域と称する)を1つの領域として、左上から右下に向かって順に番号を設定(ラベリング)する(図5)。
次に、ステップS122において、コード認識部42は、黒色画素連結領域の数をカウントするカウンタiの値を1に初期設定し、ステップS123において、例えばフレームの中央点から、左回りの渦巻の軌跡に沿って、黒色画素連結領域を探索し、始めに検出した黒色画素連結領域をガイド部候補領域として選択する。
次に、ステップS124において、コード認識部42は、図6のステップS23乃至ステップS30の処理に相当する処理(ガイド部候補領域の検証処理)を実行し、ステップS125において、ステップS123で選択したガイド部候補領域がガイド部111であるか否かを判定し、ガイド部111ではないと判定した場合、ステップS126に進む。
ステップS126において、コード認識部42は、カウンタiの値が、黒色画素連結領域の総数Mと等しい(j=M)か否かを判定し、i=Mではないと判定した場合、ステップS127に進み、カウンタiの値を1だけ増加した後、ステップS123に戻る。そして、次に検出する黒色画素連結領域が、次のガイド部候補領域とされ、同様の処理が行われる。
ステップS125で、ガイド部候補領域がガイド部111であると判定した場合、ステップS128に進み、コード認識部42は、ステップS123で選択したガイド部候補領域をガイド部111として設定(仮定)し、例えば、ガイド部候補領域とされた黒色画素連結領域の番号を、RAM33に記憶させる。
次に、ステップS129において、コード認識部42は、黒色画素連結領域の数をカウントするカウンタjの値を1に初期設定し、ステップS130において、その値に対応する番号の黒色画素連結領域を検出し、それを左上コーナセル候補領域として選択する。
ステップS131において、コード認識部42は、図8のステップS43およびステップS44に相当する処理(左上コーナセル候補領域の検証処理)を実行し、ステップS132において、ステップS130で選択した左上コーナセル候補領域が左上コーナセル121−1であるか否かを判定し、左上コーナセル121−1ではないと判定した場合、ステップS133に進む。
ステップS133において、コード認識部42は、カウンタjの値が黒色画素連結領域の総数Mに等しい(j=M)か否かを判定し、j=Mではないと判定した場合、ステップS134に進み、カウンタjの値を1だけ増加して、ステップS130に戻る。そして、次の番号の黒色画素連結領域が、次の左上コーナセル候補領域とされ、同様の処理が行われる。
ステップS132で、ステップS130で選択した左上コーナセル候補領域が左上コーナセル121−1であると判定した場合、コード認識部42は、ステップS135において、ステップS130で選択した左上コーナセル候補領域を左上コーナセル121−1として設定(仮定)する。
次にステップS136において、コード認識部42は、黒色画素連結領域の番号をカウントする他のカウンタkに2を初期設定し、ステップS137において、カウンタkの値に対応する番号の黒色画素連結領域を検出し、それを右上コーナセル候補領域として選択する。
ステップS138において、コード認識部42は、図8のステップS50およびステップS51に相当する処理(右上コーナセル候補領域の検証処理)を実行し、ステップS139において、ステップS137で選択した右上コーナセル候補領域が右上コーナセル121−2であるか否かを判定し、ステップS137で選択した右上コーナセル候補領域が右上コーナセル121−2であると判定した場合、ステップS142において、それを右上コーナセル121−2として設定(仮定)する。
次にステップS143において、コード認識部42は、ステップS128で設定したガイド部111、ステップS135で設定した左上コーナセル121−1、およびステップS142で設定した右上コーナセル121−2により特定される領域を、表示上のX軸方向に7ブロック分の長さ、そしてY軸方向に9.5ブロック分の長さの領域になるようにアフィン変換する。なお、1ブロックの1辺の長さは、ステップS123で設定されたガイド部111の辺ATまたは辺BTに基づいて算出される。
コード認識部42はまた、アファイン変換した画像から、ステップS128で設定したガイド部111と、ガイド部111上側の7×1ブロック(ガイド部111とコード部112との間の7×1ブロックに相当するブロック)(図1)分の領域(7×2.5ブロック領域)を削除し、その結果得られた7×7ブロック領域の範囲に、黒色画素連結領域をセルとしてマッピングし、コードマップを生成する。
ステップS144において、コード認識部42は、ステップS143で生成されたコードマップのセルのうち、4角のセルを検出し、その周りの3ブロック領域が、白色画素とされているか否かを判定し(図2)、白色画素とされていると判定した場合、ステップS145において、ステップS128、ステップS135、およびステップS142でそれぞれ設定したガイド部111、左上コーナセル121−1、および右上コーナセル121−2の設定を確定する。
ステップS139で、ステップS137で選択した右上コーナセル候補が右上コーナセル121−2ではないと判定された場合、またはステップS144で、4角のセルの周りの3ブロック領域が白色画素とされていないと判定された場合、ステップS140に進み、コード認識部42は、カウンタkの値が黒色画素連結領域の総数Mに等しい(k=M)か否かを判定し、k=Mではないと判定した場合、ステップS141に進み、カウンタkの値を1だけ増加して、ステップS137に戻る。すなわち次の番号の黒色画素連結領域が、次の右上コーナセル候補領域とされ、同様の処理が行われる。
ステップS140で、k=Mであると判定された場合、ステップS133に戻り、それ以降の処理が行われる。すなわち左上コーナセル121−1の検出が再度行われる。
ステップS126で、i=Mと判定された場合、またはステップS133で、j=Mと判定された場合、今回2Dコード認識処理の対象となっている画像には、2Dコード101が存在しないものとされ、処理は終了される。
以上のようにして位置決め部検出処理が完了すると、図14のステップS103に進み、コード認識部42は、位置決め部が確定したか否かを判定し、確定したと判定した場合、ステップS104に進み、コード部検出処理を行う。この処理の詳細は、図18のフローチャートに示されている。
ステップS151において、コード認識部42は、図15のステップS114で算出した第2の閾値に基づいて、2値化処理を行う。すなわち3値化値“0”および“1”の画素は、“0”(黒色)に、3値化値“2”の画素は、“2”(白色)に2値化される。
コード認識部42はまた、黒色画素が連結する領域(黒色画素連結領域)を1つの領域として、左上から右下に向かって順に番号を設定(ラベリング)する(図5)。
次にステップS152において、コード認識部42は、図17のステップS128で設定したガイド部111、ステップS135で設定した左上コーナセル121−1、およびステップS142で設定した右上コーナセル121−2により特定される領域を決定し、ステップS153において、その領域を、表示上のX軸方向に7ブロック分の長さ、そしてY軸方向に9.5ブロック分の長さの領域になるようにアフィン変換する。なお、1ブロックの一辺の長さは、ステップS128で設定されたガイド部111の辺ATまたは辺BTに基づいて算出される。
次に、ステップS154において、コード認識部42は、ステップS153で変換した画像から、図17のステップS128で設定されたガイド部111と、ガイド部111上側の7×1ブロック(ガイド部111とコード部112との間の7×1ブロックに相当するブロック)(図1)分の領域(7×2.5ブロック領域)を削除し、その結果得られた7×7ブロック領域の範囲に、黒色画素連結領域をセルとしてマッピングし、コードマップを生成する。
ステップS155において、コード認識部42は、ステップS154で生成されたコードマップを2Dコード101のコード部112として設定する。その後、処理は、図14のステップS105に進む。
ステップS105において、コード認識部42は、検出したコード部112のコードマップから、コードデータ、すなわち2Dコード101の値を算出し、保持する。その後、処理は終了される。
ステップS103で、位置決め部が確定していないと判定された場合、今回2Dコード認識処理の対象とされた画像データには、2Dコード101が存在しないものとされ、処理は終了される。
以上のようにして、2Dコード101の位置決め部を検出する際には、小さな値の第1の閾値を利用して2値化するようにしたので(図17のステップS121)、2Dコード101の画像データとして、図9に示したような、2Dコード101に影が落ちて一部が暗くなっている画像データが入力されても、図11に示したようなガイド部111が適切に得られる2値化データ(第1の閾値が小さいので、影の部分の灰色画素(図16)が、白色画素に変換されている2値化データ)を利用して、ガイド部111を検出することができる。
またコード部112を検出する際に、第1の閾値より大きい第2の閾値を利用して2値化するようにしたので(図18のステップS151)、図10に示したような、コード部112が適切に得られる2値化データ(第2の閾値が大きいので、コード部112のコード化セル122の部分が適切に黒色画素になっている2値化データ)を利用して、コード部112が検出される。
なおコード部112は、ガイド部111とコーナセル121により特定されるので、それらにより特定される範囲外は、コード部112としては取り扱われないので、図10に示すように、コード部112付近の影の部分が黒色画素(例えば図中、Br−2)とされ、コード化セル122と連結して1つの黒色画素連結領域が形成されても、その部分は排除されてコード部112が認識されるので、特に問題はない。
このように本発明によれば、例えば2Dコード101に影が落ちて、2Dコード101の画像の一部が暗くなっていても、適切に2Dコード101を認識することができる。
なお以上においては、2Dコード101のコード部112を検出する際に、第2の閾値に基づいて2値化したが(3値化値“0”および“1”の画素は、“0”(黒色)に、3値化値“2”の画素は、“2”(白色)に2値化されたが)、例えば、3値化値“0”は、“0”(黒色)に、3値化値“2”は、“2”(白色)にするが、3値化値“1”については、その画素の周辺の画素の輝度値の大きさに応じて“0”または“2”にすることができる。
例えば3値化値“1”の画素の周辺の画素の平均輝度値が、第2の閾値より小さければ、“2”(白色)に、そして周辺画素の平均輝度値が、第2の閾値以上であれば、“0”(黒色)にすることができる。このようにすることで、周囲の他の画素の輝度値が小さければ(暗ければ)、白色画素に、輝度値が大きければ(明るければ)、黒色画素に2値化されるので、コード部112部分のコントラストを鮮明にすることができる。
また以上においては、位置決め部を検出する際には、第1の閾値で2値化された画像を利用し、コード部112を検出する際には、第2の閾値で2値化された画像を利用したが、位置決め部またはコード部112を検出する際に、第1の閾値で2値化された画像と第2の閾値で2値化された画像の両方を利用することもできる。例えば位置決め部検出の際、ガイド部111を検出するとき、図10の画像(第1の閾値で2値化された画像)と図11(第2の閾値の画像)との差分を取ることにより、灰色画素を排除することができるので、適切にガイド部111を検出することができる。
また以上においては、例えば各画素を、その画素値(輝度値)に基づいて2値化したが、例えば、隣接する2個の画素の画素値の傾向に応じて、それらを2値化することができる。
図19の例では、図19Aのように、上下する画素の3値化値において、上部の画素の値が下部の画素の値より小さい場合、それらの画素は、図19Bに示すように、上部の画素が“0”(黒色)に、下部の画素が“2”(白色)にそれぞれ2値化される。このように2値化することで、3値化値に図19Aに示すようにばらつきが生じても、図19Bに示すように所定の値に2値化することができる。
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
なお、本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
2Dコードの例を示す図である。 2Dコードの例を示す他の図である。 従来の2Dコード認識処理を説明するフローチャートである。 図3のステップS2の2値化処理で使用される閾値の例を示す図である。 黒色画素連結領域の例を示す図である。 図3のステップS7のガイド部検出処理を説明するフローチャートである。 セルの短軸および長軸の求め方を説明する図である。 図3のステップS9のコード部検出処理を説明するフローチャートである。 2Dコードの撮像画像の例を示す図である。 2Dコードの撮像画像の2値化画像の例を示す図である。 2Dコードの撮像画像の他の2値化画像の例を示す図である。 本発明を適用したパーソナルコンピュータ1の利用例を示す図である。 図12のパーソナルコンピュータ1の構成例を示すブロック図である。 図12のパーソナルコンピュータ1における2Dコード認識処理を説明するフローチャートである。 図14のステップS101の3値化処理を説明するフローチャートである。 3値化画像の例を示す図である。 図14のステップS102の位置決め部検出処理を説明するフローチャートである。 図14のステップS104のデータ部検出処理を説明するフローチャートである。 2値化処理の他の例を説明する図である。
符号の説明
1 パーソナルコンピュータ, 2 モニタ, 11 カメラ, 42 コード認識部, 101 2Dコード, 111 ガイド部, 112 コード部, 121 コーナセル

Claims (8)

  1. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置において、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出手段と、
    前記検出手段により検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得手段と
    を備え、
    前記検出手段は、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
    前記取得手段は、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する
    情報処理装置。
  2. 前記2次元コードの画像を、前記第1の閾値および前記第2の閾値に基づいて、3値化する3値化手段をさらに備え、
    前記検出手段は、前記3値化手段による3値化の結果得られた3値化データを、前記第1の閾値に基づいて2値化し、
    前記取得手段は、前記3値化手段による3値化の結果得られた3値化データを、前記第2の閾値に基づいて2値化する
    請求項1に記載の情報処理装置。
  3. 前記検出手段は、前記2次元コードの画像が、前記第1の閾値に基づいて2値化された結果得られた2値化データと前記第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
    前記取得手段は、前記位置決め部により特定される領域が、前記第2の閾値に基づいて2値化された結果得られた2値化データと前記第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する
    請求項1に記載の情報処理装置。
  4. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出ステップと、
    前記検出ステップの処理で検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得ステップと
    を含み、
    前記検出ステップは、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
    前記取得ステップは、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する
    情報処理方法。
  5. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を検出する検出ステップと、
    前記検出ステップの処理で検出された前記位置決め部により特定される領域に存在するセルの配置規則から、前記所定の情報を取得する取得ステップと
    を含み、
    前記検出ステップは、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部を検出し、
    前記取得ステップは、前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記所定の情報を取得する
    情報処理をコンピュータに実行させるプログラム。
  6. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理装置において、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出手段と、
    前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得手段と
    を備え、
    前記検出手段または前記取得手段は、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する
    情報処理装置。
  7. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理方法において、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出ステップと、
    前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得ステップと
    を含み、
    前記検出ステップまたは前記取得ステップは、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する
    情報処理方法。
  8. 複数のセルが所定の配列規則に従って2次元配置されて所定の情報がコード化されている2次元コードを認識する情報処理を、コンピュータに実行させるプログラムにおいて、
    前記2次元コードの画像の、前記所定の情報がコード化されているセルの領域を特定する際に利用される位置決め部を、前記2次元コードの画像が第1の閾値に基づいて2値化された結果得られた2値化データに基づいて検出する検出ステップと、
    前記位置決め部により特定される領域が前記第1の閾値と異なる第2の閾値に基づいて2値化された結果得られた2値化データに基づいて、前記位置決め部により特定される領域に存在するセルの配置規則を検出し、前記配列規則から、前記所定の情報を取得する取得ステップと
    を含み、
    前記検出ステップまたは前記取得ステップは、前記2次元コードの画像が3値化された結果得られた3値化データを、所定位置関係にある複数の3値化データ毎に、前記複数の3値化データの相対的関係に基づいて2値化する
    情報処理をコンピュータに実行させるプログラム。
JP2005352023A 2005-12-06 2005-12-06 情報処理装置および方法、並びにプログラム Withdrawn JP2007156879A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2005352023A JP2007156879A (ja) 2005-12-06 2005-12-06 情報処理装置および方法、並びにプログラム
US11/633,307 US7734090B2 (en) 2005-12-06 2006-12-04 Information processing device and method, and program
CNB2006101640547A CN100462997C (zh) 2005-12-06 2006-12-06 信息处理设备和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005352023A JP2007156879A (ja) 2005-12-06 2005-12-06 情報処理装置および方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2007156879A true JP2007156879A (ja) 2007-06-21

Family

ID=38165817

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005352023A Withdrawn JP2007156879A (ja) 2005-12-06 2005-12-06 情報処理装置および方法、並びにプログラム

Country Status (3)

Country Link
US (1) US7734090B2 (ja)
JP (1) JP2007156879A (ja)
CN (1) CN100462997C (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269121A (ja) * 2007-04-18 2008-11-06 Sony Corp 電子機器、2次元コード認識方法、プログラム及び2次元コード

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104517089B (zh) * 2013-09-29 2017-09-26 北大方正集团有限公司 一种二维码解码系统及其方法
JP6090292B2 (ja) * 2014-12-02 2017-03-08 トヨタ自動車株式会社 マーカ生成装置、マーカ認識装置、及びプログラム
JP7311310B2 (ja) * 2018-10-18 2023-07-19 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 情報処理装置、情報処理方法及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08125859A (ja) * 1994-10-25 1996-05-17 Hitachi Ltd 画像処理装置
TW434520B (en) * 1998-06-30 2001-05-16 Sony Corp Two-dimensional code recognition processing method, device therefor and medium
JP3786167B2 (ja) * 1998-08-31 2006-06-14 ソニー株式会社 2次元コード認識処理方法、2次元コード認識処理装置、および2次元コード認識処理プログラム格納媒体
JP3904840B2 (ja) * 2000-08-15 2007-04-11 富士通株式会社 多値画像から罫線を抽出する罫線抽出装置
JP2004054529A (ja) * 2002-07-18 2004-02-19 Sharp Corp 2次元コード読み取り方法,2次元コード読み取りプログラム,該2次元コード読み取りプログラムの記録媒体及び2次元コード読み取り装置
CN1184582C (zh) * 2003-03-25 2005-01-12 西安理工大学 基于通用办公设备的二维条码自动识读方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008269121A (ja) * 2007-04-18 2008-11-06 Sony Corp 電子機器、2次元コード認識方法、プログラム及び2次元コード

Also Published As

Publication number Publication date
US20070145139A1 (en) 2007-06-28
CN1983298A (zh) 2007-06-20
CN100462997C (zh) 2009-02-18
US7734090B2 (en) 2010-06-08

Similar Documents

Publication Publication Date Title
JP4911340B2 (ja) 二次元コード検出システムおよび二次元コード検出プログラム
US6816611B1 (en) Image processing method, facial region extraction method, and apparatus therefor
JP4801551B2 (ja) 画像領域検出方法、該プログラム、及び該装置
JP2012234258A (ja) 画像処理装置と画像処理方法およびプログラム
US10572762B2 (en) Image processing method for performing pattern matching for detecting a position of a detection target
US9805443B2 (en) Image processing method, image processing apparatus, program, storage medium, production apparatus, and method of producing assembly
US9177188B2 (en) Method and system for detecting detection patterns of QR code
JP2007317184A (ja) 二次元バーコード、その符号化方法及び復号化方法
WO2013044875A1 (zh) 线性条码识别方法和系统
US9082000B2 (en) Image processing device and image processing method
US20160379088A1 (en) Apparatus and method for creating an image recognizing program having high positional recognition accuracy
CN110765795B (zh) 二维码识别方法、装置及电子设备
US11272163B2 (en) Image processing apparatus and image processing method
JP2007086954A (ja) 文字認識処理装置、および文字認識処理方法、並びにコンピュータ・プログラム
JP4537143B2 (ja) 画像処理装置及びその方法、撮像装置、プログラム
JP2007156879A (ja) 情報処理装置および方法、並びにプログラム
KR100404306B1 (ko) 코드화된 패턴 및 이의 코드 추출 방법
CN107958202B (zh) 人体检测设备、人体检测设备的控制方法和存储介质
JP2015191369A (ja) 物体検出装置
JP6340227B2 (ja) 人物検出装置
JP4335229B2 (ja) Qrコード認識装置、qrコード認識装置の制御方法、qrコード認識装置制御プログラムおよびそれを記録したコンピュータ読み取り可能な記録媒体
JP4550768B2 (ja) 画像検出方法および画像検出装置
JP4873554B2 (ja) 画像配信装置および画像配信方法
CN110826382A (zh) 手势识别方法、手势识别模块及手势识别系统
JP4100273B2 (ja) 2次元コードの読取方法および2次元コード読取装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20090303