JP3786167B2 - Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium - Google Patents

Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium Download PDF

Info

Publication number
JP3786167B2
JP3786167B2 JP24519499A JP24519499A JP3786167B2 JP 3786167 B2 JP3786167 B2 JP 3786167B2 JP 24519499 A JP24519499 A JP 24519499A JP 24519499 A JP24519499 A JP 24519499A JP 3786167 B2 JP3786167 B2 JP 3786167B2
Authority
JP
Japan
Prior art keywords
dimensional code
code
cell
recognition processing
data
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.)
Expired - Fee Related
Application number
JP24519499A
Other languages
Japanese (ja)
Other versions
JP2000148904A (en
Inventor
信二 中嶋
圭吾 井原
純一 暦本
隆彦 末吉
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 JP24519499A priority Critical patent/JP3786167B2/en
Publication of JP2000148904A publication Critical patent/JP2000148904A/en
Application granted granted Critical
Publication of JP3786167B2 publication Critical patent/JP3786167B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、2次元コード認識処理方法、2次元コード認識処理装置、および2次元コード認識処理プログラム格納媒体に関し、特に、撮像された複数の2次元コードの組み合わせからなる拡張されたコードデータを効率よくかつ正確に認識することができるようにした2次元コード認識処理方法、2次元コード認識処理装置、および2次元コード認識処理プログラム格納媒体に関する。
【0002】
【従来の技術】
従来から、物品の種類や状態などを示す英数文字をバーコード化し、例えば、物品に貼付しておき、その貼付されたバーコードを読み取って、物品の種類や状態などの情報を取得するバーコードシステムが、多くの産業分野に普及している。
【0003】
この種のバーコードにおいて、特に1次元バーコードと呼ばれるものの一例を示せば、図23の通りである。この図において、1次元バーコード500は、太さの異なるバー(黒色の棒状部分)と、スペース(空白部分)の組み合わせからなるコード部501と、このコード部501にコード化されているコードを示すID(識別番号)部502とから構成されている。そして、ID部502には、コード部501にコード化されている英数文字が可読情報として表示されている。このような1次元バーコード500が、バーコードスキャナと呼ばれる光学的認識装置によって読み取られるようになっている。
【0004】
【発明が解決しようとする課題】
ところで、上述した1次元バーコード500を読み取る1つの方法として、CCDビデオカメラにより読み取る方法が挙げられるが、例えば、コード化される情報量の増大に伴って、バーの配列が長くなると、CCDビデオカメラによる1次元バーコード500の読み取りが困難になる。
【0005】
そこで、コード化される情報が多くなった場合においても、ビデオカメラによる読み取りを可能にするために、1次元バーコード500のバーに代えて、図24に示すような複数の黒色の方形セルが所定の配列規則に従って2次元配置されたコード部601と、コード部601にコード化されているコードを示すID部602とから構成される2次元コード600が種々提案されている。
【0006】
これによれば、情報が2次元的にコード化されることより、より多くの情報量をコード化することができ、1次元バーコード500に比べ、より多くの情報がコード化されていても、ビデオカメラによる読み取りが可能となる。
【0007】
しかしながら、2次元コード600は、ビデオカメラによって撮像された画像データから2次元コード600を認識する際に、ゴミ、汚れ、その他の2次元コード600以外の画像との識別が困難となり、正確にコードデータを認識することができないという課題があった。
【0008】
また、従来は、単一の2次元コード600に割り当てられたコードデータのみが利用可能であり、利用可能な情報量に制限があったため、応用範囲も限られていた。
【0009】
本発明はこのような状況に鑑みてなされたものであり、複数の2次元コードの組み合わせからなる拡張されたコードデータを効率よくかつ正確に認識することができるようにするものである。
【0010】
【発明を解決するための手段】
請求項1に記載の2次元コード認識処理方法は、2次元コードを撮像した結果得られる画像情報から、2次元コードに割り当てられたコードデータを認識する認識処理ステップと、認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理ステップとを含み、認識処理ステップは、画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、2次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、セル検出処理ステップの処理で検出された2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、基本となるセルによって一意に定まる範囲を、2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、変換ステップの処理で変換された範囲に存在する2次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップとを含むことを特徴とする。
【0011】
請求項に記載の2次元コード認識処理装置は、前記2次元コードを撮像した結果得られる画像情報から、前記2次元コードに割り当てられたコードデータを認識する認識処理ステップと、前記認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理ステップとを含み、前記認識処理手段は、前記画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理手段と、前記2値化処理手段により生成された前記2値化データに基づいて、前記2次元コードを認識する上で基準となるセルを検出するセル検出処理手段と、前記2値化処理手段により生成された前記2値化データに基づいて、前記セル検出処理手段により検出された前記2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定手段と、前記基本となるセルによって一意に定まる範囲を、前記2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換手段と、前記2値化処理手段により生成された前記2値化データに基づいて、前記変換手段により変換された範囲に存在する前記2次元コードに割り当てられたコードデータを検出するコードデータ検出処理手段とを含むことを特徴とする。
【0012】
請求項に記載の2次元コード認識処理プログラム格納媒体のプログラムは、2次元コードを撮像した結果得られる画像情報から、2次元コードに割り当てられたコードデータを認識する認識処理ステップと、認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理ステップとを含み、認識処理ステップは、画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、2次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、セル検出処理ステップの処理で検出された2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、基本となるセルによって一意に定まる範囲を、2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、変換ステップの処理で変換された範囲に存在する2次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップとを含むことを特徴とする。
【0013】
請求項1に記載の2次元コード認識方法、請求項に記載の2次元コード認識装置、および請求項に記載の2次元コード認識処理プログラム格納媒体のプログラムにおいては、2次元コードを撮像した結果得られる画像情報から、2次元コードに割り当てられたコードデータが認識され、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータが生成され、2次元コードを撮像した結果得られる画像情報から、2次元コードに割り当てられたコードデータが認識される際、画像情報から、所定の閾値に基づいて2値化データが生成され、生成された2値化データに基づいて、2次元コードを認識する上で基準となるセルが検出され、2値化データに基づいて、2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、2次元コードの領域を特定するのに基本となるセルが決定され、基本となるセルによって一意に定まる範囲が、2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換され、生成された2値化データに基づいて、変換された範囲に存在する2次元コードに割り当てられたコードデータが検出される。
【0014】
【発明の実施の形態】
以下に本発明の実施の形態を説明する。
【0015】
図1乃至図6は、本発明を適用した携帯型パーソナルコンピュータの構成例を表している。このパーソナルコンピュータ1は、ミニノート型のパーソナルコンピュータとされ、基本的に、本体2と、本体2に対して開閉自在とされている表示部3により構成されている。図1は、表示部3を本体2に対して開いた状態を示す外観斜視図、図2は、図1の平面図、図3は、表示部3を本体2に対して閉塞した状態を示す左側側面図、図4は、表示部3を本体2に対して180度開いた状態を示す右側側面図、図5は、図3の正面図、図6は、図4の底面図である。
【0016】
本体2には、各種の文字や記号などを入力するとき操作されるキーボード4、マウスカーソルを移動させるときなどに操作されるスティック式ポインティングデバイス5が、その上面に設けられている。また、本体2の上面には、音を出力するスピーカ8と、表示部3に設けられているCCDビデオカメラ23で撮像するとき操作されるシャッタボタン10がさらに設けられている。
【0017】
表示部3の上端部には、ツメ13が設けられており、図3に示すように、表示部3を本体2に対して閉塞した状態において、ツメ13に対向する位置における本体2には、ツメ13が嵌合する孔部6が設けられている。本体2の前面には、スライドレバー7が前面に平行に移動可能に設けられており、スライドレバー7は孔部6に嵌合したツメ13と係合してロックし、またロック解除することができるようになっている。ロックを解除することにより、表示部3を本体2に対して回動することができる。ツメ13の隣りには、マイクロホン24が取り付けられている。このマイクロホン24は、図6にも示すように、背面からの音も収音できるようになされている。
【0018】
本体2の正面にはまた、プログラマブルパワーキー(PPK)9が設けられている。本体2の右側面には、図4に示すように、排気孔11が設けられており、本体2の前面下部には、図5に示すように、吸気孔14が設けられている。さらに、排気孔11の右側には、PCMCIA(Personal Computer Memory Card International Association)カード(PCカード)を挿入するためのスロット12が設けられている。
【0019】
表示部3の正面には、画像を表示するLCD(Liquid Crystal Display)21が設けられており、その上端部には、撮像部22が、表示部3に対して回動自在に設けられている。すなわち、この撮像部22は、LCD21と同一の方向と、その逆の方向(背面の方向)との間の180度の範囲の任意の位置に回動することができるようになされている。撮像部22には、CCDビデオカメラ23が取り付けられている。
【0020】
表示部3の下側の本体側には、電源ランプPL、電池ランプBL、メッセージランプML、その他のLEDよりなるランプが設けられている。なお、図3に示す符号40は、本体2の左側面に設けられた電源スイッチであり、図5に示す符号25は、CCDビデオカメラ23のフォーカスを調整する調整リングである。さらに、図6に示す符号26は、本体2内に増設メモリを取り付けるための開口部を被覆する蓋であり、符号41は、蓋26のロックツメを外すためのピンを挿入する小孔である。
【0021】
図7は、パーソナルコンピュータ1の内部の構成例を表している。内部バス51には、CPU(Central Processing Unit)52、必要に応じて挿入されるPCカード53、RAM(Random Access Memory)54、およびグラフィックチップ81が接続されている。この内部バス51は、外部バス55に接続されており、外部バス55には、ハードディスクドライブ(HDD)56、I/O(入出力)コントローラ57、キーボードコントローラ58、スティック式ポインティングデバイスコントローラ59、サウンドチップ60、LCDコントローラ83、モデム50等が接続されている。
【0022】
CPU52は、各機能を統括するコントローラであり、PCカード53は、オプションの機能を付加するとき適宜装着される。
【0023】
グラフィックチップ81には、CCDビデオカメラ23で取り込んだ画像データが、処理部82で処理された後、入力されるようになされている。グラフィックチップ81は、処理部82を介してCCDビデオカメラ23より入力されたビデオデータを、内蔵するVRAM81Aに記憶し、適宜、これを読み出して、LCDコントローラ83に出力する。LCDコントローラ83は、グラフィックチップ81より供給された画像データをLCD21に出力し、表示させる。バックライト84は、LCD21を後方から照明するようになされている。
【0024】
RAM54の中には、起動が完了した時点において、電子メールプログラム(アプリケーションプログラム)54A、オートパイロットプログラム(アプリケーションプログラム)54B、そしてOS(オペレーティングシステム)54CがHDD56から転送され、記憶される。
【0025】
電子メールプログラム54Aは、電話回線のような通信回線等からネットワーク経由で通信文を授受するプログラムである。電子メールプログラム54Aは、特定機能としての着信メール取得機能を有している。この着信メール取得機能は、メールサーバ93に対してそのメールボックス93A内に自分(利用者)宛のメールが着信しているかどうかを確認して、自分宛のメールがあれば取得する処理を実行する。
【0026】
オートパイロットプログラム54Bは、予め設定された複数の処理(またはプログラム)等を、予め設定された順序で順次起動して、処理するプログラムである。
【0027】
OS(オペレーティングシステム)54Cは、Windows95やWindows98(商標)に代表される、コンピュータの基本的な動作を制御するものである。
【0028】
一方、外部バス55側のハードディスクドライブ(HDD)56には、電子メールプログラム56A、オートパイロットプログラム56B、OS(基本プログラムソフトウェア)56C、および2次元コード認識プログラム56Dが記憶されている。
【0029】
2次元コード認識プログラムは、グラフィックチップ81のVRAM81Aに記憶される画像データから、2次元コードのロゴマーク部201のロゴマークセル部301およびコード部202を検出し、そしてコード部202のコードデータを認識することで、コード化された所定の情報を読み取るプログラムである。
【0030】
I/Oコントローラ57は、マイクロコントローラ61を有し、このマイクロコントローラ61にはI/Oインタフェース62が設けられている。このマイクロコントローラ61はI/Oインタフェース62、CPU63、RAM64、ROM69が相互に接続されて構成されている。このRAM64は、キー入力ステイタスレジスタ65、LED(発光ダイオード)制御レジスタ66、設定時刻レジスタ67、レジスタ68を有している。設定時刻レジスタ67は、ユーザが予め設定した時刻(起動条件)になると起動シーケンス制御部76の動作を開始させる際に利用される。レジスタ68は、予め設定された操作キーの組み合わせ(起動条件)と、起動すべきアプリケーションプログラムの対応を記憶するもので、その記憶された操作キーの組み合わせがユーザにより入力されると、その記憶されたアプリケーションプログラム(例えば電子メール)が起動されることになる。
【0031】
キー入力ステイタスレジスタ65は、ワンタッチ操作用のプログラマブルパワーキー(PPK)9が押されると、操作キーフラグが格納されるようになっている。LED制御レジスタ66は、レジスタ68に記憶されたアプリケーションプログラム(電子メール)の立上げ状態を表示するメッセージランプMLの点灯を制御するものである。設定時刻レジスタ67は、所定の時刻を任意に設定することができるものである。
【0032】
なお、このマイクロコントローラ61にはバックアップ用のバッテリ74が接続されており、各レジスタ65,66,67の値は、本体2の電源がオフとされている状態においても保持されるようになっている。
【0033】
マイクロコントローラ61内のROM69の中には、ウェイクアッププログラム70、キー入力監視プログラム71、LED制御プログラム72が予め格納されている。このROM69は、例えばEEPROM(electrically erasable and programmable read only memory)で構成されている。このEEPROMはフラッシュメモリとも呼ばれている。さらにマイクロコントローラ61には、常時現在時刻をカウントするRTC(Real-Time Clock)75が接続されている。
【0034】
ROM69の中のウェイクアッププログラム70は、RTC75から供給される現在時刻データに基づいて、設定時刻レジスタ67に予め設定された時刻になったかどうかをチェックして、設定された時刻になると、所定の処理(またはプログラム)等の起動をするプログラムである。キー入力監視プログラム71は、PPK9が利用者により押されたかどうかを常時監視するプログラムである。LED制御プログラム72は、メッセージランプMLの点灯を制御するプログラムである。
【0035】
ROM69には、さらにBIOS(Basic Input/Output System)73が書き込まれている。このBIOSとは、基本入出力システムのことをいい、OSやアプリケーションソフトウェアと周辺機器(ディスプレイ、キーボード、ハードディスクドライブ等)の間でのデータの受け渡し(入出力)を制御するソフトウェアプログラムである。
【0036】
外部バス55に接続されているキーボードコントローラ58は、キーボード4からの入力をコントロールする。スティック式ポインティングデバイスコントローラ59はスティック式ポインティングデバイス5の入力を制御する。
【0037】
サウンドチップ60は、マイクロホン24からの入力を取り込み、あるいは内蔵スピーカ8に対して音声信号を供給する。
【0038】
モデム50は、公衆電話回線90、インターネットサービスプロバイダ91を介して、インターネット等の通信ネットワーク92やメールサーバ93等に接続することができる。
【0039】
電源スイッチ40は、電源をオンまたはオフするとき操作される。半押しスイッチ85は、シャッタボタン10が半押し状態にされたときオンされ、全押しスイッチ86は、シャッタボタン10が全押し状態にされたときオンされる。反転スイッチ87は、撮像部22が180度回転されたとき(CCDビデオカメラ23がLCD21の反対側を撮像する方向に回転されたとき)、オンされるようになされている。
【0040】
図8は、本発明を適用したパーソナルコンピュータ1の使用例を表している。オブジェクト100は、例えば、名刺状のカードで、2次元コード101が貼付(印刷を含む)されている。
【0041】
2次元コード101は、図9に示すように、複数の正方形状のセル(黒色の部分)が所定の配列規則に従って2次元的に配置されており、このセルの配列パターンにより、所定の英数文字、例えば、この例の場合、数字200がコード化されている。
【0042】
以下に、2次元コード101の詳細を説明する。2次元コード101は、ロゴマーク部201とコード部202から構成されており、これらロゴマーク部201とコード部202の全体は、1個の正方形状のセルの矩形領域を1ブロックと表現すると、7ブロック分の長さのX軸方向の辺と、9.5ブロック分の長さのY軸方向の辺で形成される領域(以下、このような領域を7×9.5ブロック領域と記述する。他の場合においても同様である)内に配置されている。
【0043】
ロゴマーク部201は、図10に示すように、ロゴマークセル部301およびノンセル部302から構成されている。そして、7×1.5ブロック領域の長方形状のセルであるロゴマークセル部301には、ロゴマーク、文字、または数字など、2次元コードに関連する白抜きの可読文字情報が印刷により表示されている。ここで、例えば、ロゴマークとしては、2次元コード101のコード体系に付された「CyberCode」など、2次元コード101が何を意味するコードなのかを、人間が判読可能なマークとして、白抜き文字で表示される。
【0044】
また、ロゴマークに限らず、2次元コード101のコード体系を開発した本出願人の会社名を表示したり、2次元コード101のコード体系に関連する情報資源の格納場所を示すURL(Uniform Resource Locator)などを表示するようにしても構わない。なお、URLとは、インターネット上に分散しているファイルなどの情報資源の格納場所を一意に指定するための表記方法である。
【0045】
以上のように、長方形状のロゴマークセル部301に、その2次元コード101が何を示すコードなのかをロゴマーク等で表示することにより、そのロゴマーク等に関する情報が掲載されているインターネット上のホームページなどを参照することで、その2次元コード101に関する情報を取得し、理解することができる。例えば、本願出願時点において、本出願人が提供している下記のURLでアクセス可能なホームページには、以下のような説明文が掲載されている。
http://www.sony.co.jp/sd/ProductsPark/Consumer/PCOM/PCG-C1CAT/cybercode.html
「「サイバーコード」は、ソニー独自の2次元コードで、約1,677万通り(24ビット)のパターンが存在します。このうち約100万通り(20ビット)を、任意のプログラム起動用として自由に登録することが可能。残りのコード分は、将来のサービス拡張用として予約されています。「サイバーコード」は、それが貼られたものから、対応するコンピューター上の情報を引き出すためのインデックスの役割をし、CyberCode Finderのファインダーを通して、プログラムが起動されることにより、あたかも「サイバーコード」が貼られたものから、対応する情報がコンピューター上に飛び出してくるという新しいインターフェースを提供します。」
次に、図10に示すように、ロゴマークセル部301の、コード部202側の7×1ブロック領域には、セルが存在しないノンセル部302が存在する。なお、ロゴマークセル部301の長軸(図9のX軸方向の軸)を辺A、および短軸(図9のY軸方向の軸)を辺Bとする。
【0046】
コード部202には、図11に示すように、ロゴマークセル部301を下方向に位置させたとき、ロゴマークセル部301の左端から7ブロック分上方向に位置する左上コーナーセル、およびロゴマークセル部301の右端から7ブロック分上方向に位置する右上コーナーセルが存在する。また、ロゴマークセル部301の左端から1ブロック分上方向に位置する左下コーナーセル、およびロゴマークセル部301の右端から1ブロック分上方向に位置する右下コーナーセルが存在する。なお、左上コーナーセル、右上コーナーセル、左下コーナーセル、および右下コーナーセルを特に区別する必要がない場合、これらをまとめてコーナーセルと称する。
【0047】
コーナーセルの周囲の隣接する3ブロック分の領域には、セルが存在しない。つまり、ロゴマークセル部301に対して、上述したような位置に存在し、周り3ブロック領域にセルが存在しないようなセルはコーナーセルとされる。
【0048】
コード部202は、実際は、1ブロックを1ビットとすると、49ビット(7ブロック×7ブロック=49ブロック)分の情報をコード化することができるが、上述したように、コーナーセル(1ブロック)およびコーナーセルの周り3ブロックは、データを構成しない。すなわち、合計16ブロックは、データを構成しない。また、残り33ブロック(33ビット)中、9ブロック(9ビット)は、コードデータが、正しいコードデータであることを確かめるためのチェックデータを構成する。従って、コード部202には、24ビット分の情報がコード化されている。
【0049】
図12は、上述した2次元コード101の具体例を表している。図12(A)の2次元コード101のコード部202には、識別番号200、201、202、203、1500、1501、1502、そして1503がコード化されたコードパターンが印刷されている。また、ロゴマークセル部301の下方の、ID部203には、コード化された識別番号に対応する数字が印刷されている。
【0050】
また、図12(B)に示す具体例では、2次元コード101のロゴマークセル部301に、ロゴマークが白抜き文字で印刷されている。また、図12(C)に示す具体例では、2次元コード101のID部203の識別番号に対応する数字が省略されている。さらに、図12(D)に示す具体例では、ロゴマークセル部301に識別番号に対応する数字が白抜き文字で印刷されており、ID部203にロゴマークが黒文字で印刷されている。これら図12(A)乃至図12(D)に表されている2次元コード101のコード部202は、全て同一の仕様により作成されている。
【0051】
ここで、上述したロゴマークセル部301は、所定の縦横比の矩形状の領域によって構成され、後述するように、複数の黒色画素が連結してなる黒色画素連結領域を含んで構成されている。さらに、ロゴマークセル部301内には、2次元コード101に関連する白抜きの可読情報を含んで構成されている。そして、2次元コード1101の認識処理を開始する初期段階で、予め規定された所定の縦横比の矩形状のロゴマークセル部301を検出することで、このロゴマークセル部301を基準として、所定の探索範囲内に存在するその他のセルの検出処理へと認識処理を進めることが可能となる。したがって、上述したロゴマークセル部301は、単に、2次元コード101の意味合いを可読なロゴマークという形態で表示するという目的のためだけに設けているのではなく、2次元コード101の認識処理を進める上での基準を示す機能も兼ね備えている。
【0052】
このように、ロゴマークセル部301には、基準を示す機能に加えて、図12(B)乃至図12(D)に示すように、ロゴマークや文字などを表示する機能を付与しているので、最小限の占有面積で、認識処理の基準に必要な情報と、可読情報とを同時に提示することが可能となっている。
【0053】
図8に戻り、パーソナルコンピュータ1は、例えば、オブジェクト100と2次元コード101を、CCDビデオカメラ23により撮像することができ、また、その結果得られた2次元コード101のコードデータを認識するようになされている。
【0054】
次に、2次元コード認識処理の処理手順を、図13のフローチャートを参照して説明する。
【0055】
2次元コード101がCCDビデオカメラ23により撮像され、その結果得られた1フレーム分の画像データが、処理部82により処理され、グラフィックチップ81のVRAM81Aに記憶されている状態において、HDD56に記憶されている2次元コード認識プログラム56Dが起動されると、ステップS1において、CPU52は、所定の輝度値を示す閾値の設定をカウントするカウンタiの値に1を初期設定する。この例の場合、図14に示すように、閾値が、5段階に設定されている。設定番号1に示される閾値Aの値が、最も大きい値に設定され、設定番号5に示される閾値Eに向かって、段階的に値が小さくなるように設定されている。
【0056】
ステップS2において、CPU52は、カウンタiの値に対応する設定番号の閾値に基づいて、VRAM81Aに記憶されている画像データに対して2値化処理を行う。ここで、閾値より大きい輝度を保持する画素の画素値は、”0”に符号化され、表示上、その画素は白色とされる。以下においては、このように、画素値が”0”に符号化された画素を、白色画素と称する。
【0057】
一方、閾値以下の輝度値を保持する画素の画素値は、”1”に符号化され、表示上、その画素は黒色とされる。以下においては、このように、画素値が”1”に符号化された画素を、黒色画素と称する。
【0058】
次に、ステップS3において、CPU52は、図15に示すように、黒色画素が連結する領域を1つの領域として、左上から右下に向かって番号を設定(ラベリング)する。
【0059】
ステップS4において、CPU52は、ステップS3でラベリングした黒色画素連結領域の総数Mを求め、求めた黒色画素連結領域の総数Mが257個以上であるか否かを判定し、総数Mが257個以上であると判定した場合、すなわち、現在、VRAM81Aに記憶されている画像フレームが、以降の処理を実行するのに適さない画像であると判定した場合、ステップS5に進む。ここで、以降の処理を実行するのに適さない画像とは、いわゆるディザ状の画像と呼ばれる砂粒のような点を多量に含む画像であり、このようなディザ状の画像に対して無理に認識処理を進めようとすると、演算処理に要するCPUの負荷が大となってしまう。そこで、このようなディザ状の画像の場合は、そのまま認識処理を進めずに、ステップS5へ進むようにしてある。
【0060】
ステップS5において、CPU52は、カウンタiの値が、閾値の設定数N(=5)と等しい(i=5)か否かを判定し、i=5ではないと判定した場合、ステップS6において、カウンタiの値を1だけ増加した後、ステップS2に戻る。ステップS2において、CPU52は、1つだけ増加されたカウンタiの値に対応する設定番号の閾値に基づいて、VRAM81Aに記憶されている画像データに対して、再度、2値化処理を実行する。
【0061】
上述したように、設定番号1で示される閾値Aは、最も値が大きい閾値であり、すなわち、この最も大きい値が2値化処理の閾値とされると、画像データの多くの画素の輝度が、閾値Aよりも相対的に小さい値となり、その結果多くの画素が黒色画素と認識され、これにより、黒色画素連結領域の総数Mも多くなる。そこで、ステップS5で、カウンタiの値が1つ増加され、1段階小さい値の閾値が、次の2値化処理の閾値とされると、黒色画素として認識される画素が少なくなる。
【0062】
このように、最初に、より大きい閾値で、大きい輝度値を基準として2値化処理を行うことより、フレーム全体が比較的明るい画像に適する2値化処理を実行することができ、さらに、閾値を段階的に小さくし、より小さい輝度値を基準として2値化処理を行うことにより、フレーム全体が比較的暗い画像に適する2値化処理を実行することができる。このように、閾値を5段階に分け、この閾値を段階的に変更することによって、画像フレーム全体に明るさの変動があった場合であっても、常に精度の高い2値化データを生成することができるようになっている。
【0063】
ステップS5において、CPU52は、i=5であると判定した場合、すなわち、閾値A乃至Eのいずれの閾値によっても、適当な総数Mの黒色画素連結領域が生成されない場合、この1フレーム分の画素データには、2次元コード101が存在しないものと判定した場合、処理が終了される。
【0064】
ステップS4において、CPU52は、黒色画素連結領域の総数Mが257個より少ないと判定した場合、ステップS7に進む。
【0065】
ステップS7において、CPU52は、以前に実行された2次元コード認識処理により認識された2次元コード101のLCD21の表示上の位置、例えば、ロゴマークセル部301の中央点が、RAM54などに記憶されているか否かを判定し、それが記憶されている場合、ステップS8に進み、記憶されている点をロゴマークセル部検出処理の開始点に設定する。ステップS7で、2次元コード101の位置が記憶されていないと判定した場合、ステップS9に進み、CPU52は、320×240画素のLCD21の表示上の中心点(例えば、X軸方向に160番目であり、Y軸方向に120番目の画素)を開始点に設定する。このようにすることより、ロゴマークセル部301を効率的に検出することができる。
【0066】
次に、ステップS10において、ロゴマークセル部検出処理が実行される。ステップS10におけるロゴマークセル部検出処理の詳細を、図16のフローチャートを参照して説明する。
【0067】
はじめに、ステップS21において、CPU52は、黒色画素連結領域の総数Mをカウントするカウンタjの値を1に初期設定し、次に、ステップS22において、図13のステップS8およびステップS9で設定された開始点から、LCD21の画面上を左回りの渦巻の軌跡に沿って、黒色画素連結領域を探索し、始めに検出した黒色画素連結領域をロゴマークセル部候補領域として選択する。
【0068】
次に、ステップS23において、CPU52は、ステップS22で選択したロゴマークセル部候補領域の、図10に示したようなロゴマークセル部301の辺Aおよび辺Bに対応する辺ATおよび辺BTを決定する。辺ATは、図17に示すように、黒色画素連結領域がLCD21の画像上のX軸上に投影されて形成される線(X軸投影線)と、Y軸上に投影されて形成される線(Y軸投影線)のうち、長い方の線とする。辺BTは、他方の短い方の線とする。
【0069】
次に、ステップS24において、CPU52は、短軸に対応する辺BTが20画素より少ない画素で構成されているか否かを判定する。例えば、短軸(辺B)が20画素より少ない画素で構成されている黒色画素連結領域がロゴマークセル部301であるとすると、図9に示したように、1ブロックの一辺の長さは、辺Bの長さとの比が1対1.5であるため、さらに少ない数の画素から構成されるようになり、この場合、最小セル(1×1ブロック領域のセル)が小さくなり、LCD21に適切に表示されなくなる。このことより、ステップS24において、辺BTが20画素より少ない画素で構成されていると判定された場合、今回ステップS22で選択された黒色画素連結領域は、ロゴマークセル部301ではないとされ、ステップS25に進み、CPU52は、カウンタjの値が、黒色画素連結領域の総数Mと等しい(j=M)か否かを判定し、j=Mではないと判定した場合、ステップS26に進み、カウンタjの値を1だけ増加した後、ステップS22に戻る。そして、CPU52は、次の黒色画素連結領域を、次のロゴマークセル部候補領域として、同様の処理を行う。
【0070】
ステップS24において、ステップS22で選択されたロゴマークセル部候補領域の辺BTが20画素と等しいか、またはそれより多い画素で構成されていると判定された場合、ステップS27に進み、CPU52は、ロゴマークセル部候補領域の辺ATが300画素より多い画素で構成されているか否かを判定する。例えば、長軸(辺A)が300画素より多い画素で構成されている黒色画素連結領域がロゴマークセル部301であるとすると、図9に示したように、辺Aの長さが7に対して1の割合で求められる1ブロックの一辺の長さが大きくなり、図11に示したように、ロゴマークセル部301から、7ブロック分離れて位置する左上コーナーセルおよび右上コーナーセルが、LCD21上に表示されなくなる。このことより、ステップS27において、辺ATが300画素より多い画素で構成されていると判定された場合、今回ステップS22で選択された黒色画素連結領域は、ロゴマークセル部301ではないとされ、ステップS25に進み、それ以降の処理が行われる。
【0071】
ステップS27において、ステップS22で選択されたロゴマークセル部候補領域の辺ATが300画素より多い画素で構成されていない(300画素以下の画素で構成されている)と判定された場合、ステップS28に進み、CPU52は、ロゴマークセル部候補領域の黒色画素の総数が、20画素以上かつ1500画素未満であるか否かを判定し、20画素以上かつ1500画素未満であると判断した場合、ステップS29に進む。
【0072】
一方、ステップS28において、ロゴマークセル部候補領域の黒色画素の総数が20画素未満、または1500画素以上であると判定された場合、ステップS25に進む。なお、黒色画素の総数が、20画素未満の場合、ステップS24において辺BTが20画素より少ない画素で構成された場合と同様の問題が発生し、また、1500画素以上である場合、ステップS27において辺ATが300画素より多い画素で構成された場合と同様の問題が発生し、いずれの場合も、ロゴマークセル部301である可能性が小さくなる。
【0073】
次に、ステップS29において、CPU52は、ステップS22で選択したロゴマークセル部候補領域の方形らしさ(fitness)を判定し、方形であると判定した場合、ステップS30に進む。この例の場合、式(1)に基づいて算出されるfitnessが、0.2以上である場合、ロゴマークセル部候補領域は方形であると判定される。
【0074】
【数1】

Figure 0003786167
【0075】
式(1)の定数aは、式(2)に基づいて、定数cは、式(3)に基づいて、そして定数b/2は、式(4)に基づいて求められる、いわゆる、モーメント特徴のうちの2次元モーメントである。
【0076】
【数2】
Figure 0003786167
【0077】
【数3】
Figure 0003786167
【0078】
【数4】
Figure 0003786167
【0079】
式(2)乃至式(4)のf(i,j)は、LCD21の表示上の画素のX座標iと、Y座標jにより特定される画素が黒色の場合、1となり、また、特定される画素が白色の場合、0となる関数である。
【0080】
ステップS30において、CPU52は、ステップS29で方形とされたロゴマークセル部候補領域の長軸と短軸の比を、式(5)に基づいて算出し、算出結果が2.0以上かつ25以下であるか否かを判定する。
【0081】
【数5】
Figure 0003786167
【0082】
算出結果が2.0以上かつ25以下であると判定された場合、ステップS31に進み、CPU52は、ステップS22で選択したロゴマークセル部候補領域をロゴマークセル部301として設定(仮定)し、例えば、ロゴマークセル部候補領域とされた黒色画素連結領域の番号を、RAM54に記憶させる。このようにして、ロゴマークセル部301は検出され、処理は終了される。
【0083】
ステップS28において、黒色画素の総数が20画素未満、または1500画素以上であると判定された場合、ステップS29において、ロゴマークセル部候補領域が方形ではないと判定された場合、またはステップS30において、辺ATと辺BTの比が2.0未満または25より大きいと判定された場合、今回ステップS22で選択されたロゴマークセル部候補領域は、ロゴマークセル部301ではないとされ、ステップS25に進み、次に検出された黒色画素連結領域が次のロゴマークセル部候補領域とされ、以降の処理が行われる。
【0084】
ステップS25において、カウンタjの値が黒色画素連結領域の総数Mと等しい(j=M)と判定された場合、ステップS31でロゴマークセル部301が設定されず、処理は終了される。すなわち、今回2次元コード認識処理の対象とされた画像データ(1フレーム)には、ロゴマークセル部301が存在しないものとされる。
【0085】
以上のようにして、ロゴマークセル部検出処理が完了したとき、次に、図13のステップS11に進む。
【0086】
ステップS11において、ステップS10でロゴマークセル部301が検出されたか否かが判定され、検出されたと判定された場合、ステップS12に進み、コード部検出処理が実行される。ステップS12におけるコード部検出処理の詳細を、図18のフローチャートを参照して説明する。
【0087】
はじめに、ステップS41において、CPU52は、図13のステップS3で検出した黒色画素連結領域の総数Mをカウントするカウンタjの値を1に初期設定し、ステップS42において、その値に対応する番号の黒色画素連結領域を検出し、それを左上コーナーセル候補領域として選択する。
【0088】
次に、ステップS43において、CPU52は、ステップS42で選択した左上コーナーセル候補領域の、図17に示したようにして決定した辺ATおよび辺BTの長さの比が3倍以下であるか否かを判定し、その比が3倍以下であると判定した場合、ステップS44に進む。
【0089】
ステップS44において、CPU52は、ステップS42で選択した左上コーナーセル候補領域が、図13のステップS10で検出したロゴマークセル部301に対して予め設定された探索範囲内に存在するか否かを判定し、探索範囲内に存在すると判定した場合、ステップS45に進み、それを左上コーナーセルとして設定(仮定)する。
【0090】
ステップS43において、辺ATの長さに対する辺BTの長さの比が3倍より大きいと判定された場合、または、ステップS44において、探索範囲内に存在しないと判定された場合、ステップS42で選択された黒色画素連結領域は、左上コーナーセルではないと判定され、ステップS46に進み、カウンタjの値が黒色画素連結領域の総数Mに等しい(j=M)か否かが判定され、j=Mではないと判定された場合、ステップS47に進み、カウンタjの値が1だけ増加され、ステップS42に戻る。そして、次の番号の黒色画素連結領域が、次の左上コーナーセル候補領域とされ、同様の処理が行われる。
【0091】
ステップS45において、左上コーナーセルが設定されると、ステップS48に進み、CPU52は、黒色画素連結領域の番号をカウントする他のカウンタkに2を初期設定し、次に、ステップS49において、カウンタkの値に対応する番号の黒色画素連結領域を検出し、それを右上コーナーセル候補領域として選択する。
【0092】
次に、ステップS50において、CPU52は、ステップS45で設定した左上コーナーセルの画素数(面積)と、ステップS49で選択した右上コーナーセル候補領域の画素数(面積)の比を算出し、その比(面積比)が6倍以下であるか否かを判定し、6倍以下であると判定した場合、ステップS51に進む。
【0093】
ステップS51において、CPU52は、ステップS45で設定した左上コーナーセルの面積(画素数)(S1)、ステップS49で選択した右上コーナーセル候補領域の面積(画素数)(S2)、およびその左上コーナーセルの中心点とその右上コーナーセル候補領域の中心点との距離(D)を算出し、式(6)および式(7)が成立するか否かを判定する。
【0094】
(S1/D2)<=900 ・・・(6)
(S2/D2)<=900 ・・・(7)
ステップS51において、式(6)および式(7)が成立すると判定された場合、ステップS52に進み、CPU52は、ステップS49で選択した右上コーナーセル候補領域を右上コーナーセルとして設定(仮定)する。
【0095】
ステップS52において、右上コーナーセルが設定(仮定)されると、ステップS55において、CPU52は、ステップS45で設定した左上コーナーセル、ステップS52で設定した右上コーナーセル、および図13のステップS10で設定されたロゴマークセル部301により形成される領域を、LCD21の画面上のX軸方向に7ブロック分の長さ、そしてY軸方向に9.5ブロック分の領域になるようにアフィン変換する。なお、1ブロックの一辺の長さは、ステップS10で設定されたロゴマークセル部301の辺ATまたは辺BTに基づいて算出される。
【0096】
次に、ステップS56において、CPU52は、ステップS55で変換した画像から、図13のステップS10で設定したロゴマークセル部分301とそれに対応して存在するノンセル部302に相当する領域(7×2.5ブロック領域)を削除し、その結果得られた7×7ブロック領域の範囲に、黒色画素連結領域をセルとしてマッピングし、コードマップを生成する。
【0097】
ステップS57において、CPU52は、ステップS56で生成したコードマップのセルのうち、4角のセルを検出し、その周りの3ブロック領域が、白色画素とされているか否かを判定し、白色画素とされていると判定した場合、ステップS58に進み、ステップS56で生成したコードマップを2次元コード101のコード部202と設定(仮定)する。このようにして、コード部202が検出されると、処理は終了される。
【0098】
ステップS50において、面積比が6倍より大きいと判定された場合、ステップS51において、式(6)および式(7)が成立しないと判定された場合、またはステップS57において、4角のセルの周りの3ブロック領域が白色画素ではないと判定された場合、ステップS53に進み、カウンタkの値が黒色画素連結領域の総数Mに等しい(k=M)か否かが判定され、k=Mではないと判定された場合、ステップS54に進み、カウンタkの値が1だけ増加され、ステップS49に戻る。そして次の番号の黒色画素連結領域が、次の右上コーナーセル候補領域とされ、同様の処理が行われる。
【0099】
ステップS53において、カウンタkの値が黒色画素連結領域の総数Mと等しいと判定された場合、ステップS46に戻り、ステップS46の処理において、j=Mでないと判定された場合、ステップS47に進み、カウンタjの値が1だけ増加され、ステップS42に戻り、次の番号の黒色画素連結領域が、次の左上コーナーセル候補領域として選択され、それ以降の処理が行われる。
【0100】
ステップS46において、j=Mと判定された場合、今回2次元コード認識処理の対象となっている画像には、2次元コード101が存在しないものとされ、処理は終了される。
【0101】
以上のようにして、コード部検出処理が完了すると、図13のステップS13に進む。ステップS13において、ステップS12でコード部202が検出されたか否かが判定され、検出されたと判定された場合、ステップS14に進み、コードデータ検証処理が実行される。ステップS14のコードデータ検証処理の詳細を、図19のフローチャートを参照して説明する。
【0102】
はじめに、ステップS61において、CPU52は、後述するステップS63およびステップS65で算出される基準値を、1ビット右方向にシフトする回数をカウントするカウンタpの値を1に初期設定する。
【0103】
次に、ステップS62において、CPU52は、図13のステップS12で検出されたコード部202のコードマップから、コードデータおよびチェックデータの値を算出する。
【0104】
ステップS63において、CPU52は、ステップS62で算出したコードデータの値(ビットストリーム)と、0xFFFFFFとの排他的論理和演算を行い、その結果得られた値(ビットストリーム)を基準値(基準ビットストリーム)とする。ステップS64において、CPU52は、基準ビットストリームのLSB(Least Significant Bit)に”1”が立っているか否かを判定し、”1”が立っていないと判定した場合、ステップS65に進む。
【0105】
ステップS65において、CPU52は、ステップS63で算出した基準値(基準ビットストリーム)と、0x8408との排他的論理和演算を行い、その結果得られた値(ビットストリーム)を新たな基準値(基準ビットストリーム)とし、ステップS66に進む。
【0106】
ステップS64において、CPU52は、ステップS63で算出した基準値(基準ビットストリーム)のLSBに”1”が立っていると判定した場合、ステップS65の処理をスキップし、ステップS66に進む。
【0107】
ステップS66において、CPU52は、ステップS63またはステップS65において算出した基準値(基準ビットストリーム)を1ビットだけ右にシフトさせ、ステップS67に進み、カウンタpの値が、24(予め決められたシフトの回数)に等しい(p=24)か否かを判定し、p=24ではないと判定した場合、ステップS68に進み、カウンタpの値を1だけ増加した後、ステップS64に戻る。以下、同様の処理が、ステップS67においてp=24であると判定されるまで、繰り返し実行させる。
【0108】
ステップS67において、CPU52は、p=24であると判定した場合、ステップS69に進み、ステップS64乃至S68の処理により算出されたビットストリームと、0x1FFFとの論理積演算を行う。次に、ステップ70において、CPU52は、ステップS69における論理積演算より得られ値が、ステップS62で算出したチェックデータの値と等しいか否かを判定し、等しいと判定した場合、図13のステップS13で検出されたコード部202は、2次元コード101として適正なパターンであるとし、ステップS71において、2次元コード101のコード部202を確定する。その後、処理は終了される。
【0109】
ステップS70において、ステップS69で算出された値と、ステップS62で算出されたチェックデータの値とが等しくないと判定された場合、ステップS71の処理がスキップされ、処理は終了される。
【0110】
以上のようにして、コードデータ検証処理が完了されると、図13のステップS15に進み、図19のステップS71でコード部202が確定されたか否かが判定され、確定されていると判定された場合、ステップS16に進み、CPU52は、図19のステップS62で算出したコードデータの値、すなわち、2次元コード101の値を、例えば、RAM54に記憶させ、保持する。その後、処理は終了される。
【0111】
ステップS11において、ロゴマークセル部301が検出されていないと判定された場合、ステップS13において、コード部202が検出されていないと判定された場合、またはステップS15において、コード部202が確定されていないと判定された場合、今回2次元コード認識処理の対象とされた画像データには、2次元コード101が存在しないものとされ、処理は終了される。
【0112】
このように、例えば、ロゴマークなどの2次元コード101の属性等を表示するロゴマークセル部301を認識処理の基準として利用し、コード部202を検出するようにしたので、2次元コード101の占有面積を最小限に抑えることができる。すなわち、ロゴマークセル部301には、基準を示す機能に加えて、ロゴマークや文字などを表示する機能を付与しているので、最小限の占有面積で、認識処理の基準に必要な情報と、可読情報とを同時に提示することが可能である。
【0113】
図20は、複数の2次元コードを読み込ませ、それぞれ読み込まれた2次元コードに対応する処理を連続して行わせる場合を説明するフローチャートである。この実施の形態では、ユーザが複数の2次元コードを、1個づつ、時間を隔てて、パーソナルコンピュータ1に認識させることにより行われる。まず、ステップS81において、CPU52は、上述した処理により、2次元コードが認識されたか否かを判定する。2次元コードが認識されたと判定されるまで、ステップS81の処理が繰り返され、2次元コードが認識されたと判定された場合、ステップS82に進む。
【0114】
ステップS82において、連続フラグビットが“1”であるか否かが判定される。この連続フラグビットは、2次元コードのコード部202の24ビットのうち、任意の1ビットが割り当てられており、このフラグが立っている(“1”にされている)と、その2次元コードは、既に認識された2次元コード、またはこれから認識される2次元コードと連続したデータを構成することを示し、逆に、このフラグが立っていない(“0”にされている)と、その2次元コードは、1個だけの単一の2次元コード(そのデータだけで、処理を行うコード)である、または連続する2次元コードの最後の2次元コードであることを示している。
【0115】
ステップS82において、認識された2次元コードの連続フラグが“1”になっていると判定された場合、ステップS83に進み、前回までに認識されている2次元コードのコードデータに、今回、新たに認識された2次元コードの23ビットのコードデータを連結する。連結が終了されたら、ステップS81に戻り、次の2次元コードに対して同様の処理が繰り返される。
【0116】
一方、ステップS82において、認識された2次元コードの連続フラグが“1”ではないと判定された場合、換言すれば、“0”であると判定された場合、ステップS84に進む。ステップS84において、認識された2次元コードの連続ビットを含む24ビットの値が、全て“0”であるか否かが判定される。24ビットの値、全てが“0”ではないと判定された場合、ステップS85に進み、ステップS83での処理と同様の処理が行われる。ステップS83またはステップS85の処理が繰り返されることにより、23ビット、46ビット、69ビット、...というふうに、所望のビット数を用意することが可能なので、複雑な処理をさせるために、コードデータが多く必要な場合にも、この2次元コードを用いることができる。
【0117】
ステップS85による処理が終了されたら、ステップS86に進み、連結されたコードデータが現在のビット値として確定され、RAM54に記憶される。このように、連続フラグが0であるが、残り23ビットの値が0だけではない場合、連続する(連結される)2次元コードの最後の2次元コードであることを示し、ステップS86において、その連結されたデータがRAM54に記憶され、ステップS87において、その記憶されたデータに対応する処理が行われる。
【0118】
一方、ステップS84において、認識された2次元コードの24ビットの値、全てが“0”であると判定された場合、ステップS88に進む。ステップS88において、いま認識された2次元コードの前に認識され、RAM54に連結されるコードデータとして記憶されているコードデータが存在するか否かが判定される。連結されるコードデータとして記憶されているコードデータは存在しないと判定された場合、ステップS89に進み、認識された2次元コードのコードデータそのもの、すなわち、23ビット全てが0であるデータが、RAM54に記憶され、ステップS87に進み、このコードデータに対応する処理が実行される。
【0119】
ステップS88において、連結されるコードデータとして記憶されているコードデータが存在すると判定された場合、ステップS90に進み、その記憶されているコードデータ全てがクリアされる。すなわち、24ビット全てが0に設定されている2次元コードは、それ自体単独で用いられた場合は、割り当てられている処理を行い、連続して認識される2次元コードの内の一つとしてとして用いられた場合は、この2次元コードが認識される以前において記憶されたコードデータを全てクリア(破棄)する処理を行う為に用いられる。
【0120】
このようにしておくことで、誤った2次元コードを認識させてしまった場合に、それまでのコードデータをキャンセルさせ、始めからやり直すことを可能としている。
【0121】
図21は、上述した処理と同様に、複数の2次元コードを読み込み、読み込んだ2次元コード、それぞれに対応する処理を連続して行わせる場合を説明するフローチャートである。この実施の形態においては、図22に示すように、オブジェクト100上に、4個の2次元コードラベル101−1乃至101−4が貼り付けられたものが用いられる。このように、複数の2次元コード101−1乃至101−4が貼り付けられたオブジェクト100が、CCDビデオカメラ23により撮像された場合、パーソナルコンピュータ1は、図21のフローチャートの処理を行うことにより、同一画像情報から順次2次元コードラベル101−1乃至101−4を認識していく。
【0122】
すなわち、ステップS101乃至S116の処理により、2次元コードラベル101−1が認識される。このステップS101乃至S116の処理は、図13のステップS1乃至S16の処理と同様の処理なので、その説明は省略する。2次元コードラベル101−1がステップS101乃至S106の処理により、認識されたら、ステップS117において、ロゴマーク(2次元コードラベル101)かどうか検出していない領域があるか否かが判定される。
【0123】
この場合、2次元コードラベル101−2乃至101−4が、まだ検出されていないので、ステップS101に戻り、それ以降の処理が繰り返される。ステップS101乃至S117の処理が繰り返されることにより、ロゴマークかどうか検出していない領域が存在しなくなった場合、ステップS118に進み、認識された2次元コードラベル101の個数、それぞれの2次元コードラベル101に割り当てられたコードデータ、および配置情報がRAM54に記憶される。
【0124】
この場合、2次元コードラベル101の個数は4個であり、それぞれのコードデータと配置情報は、例えば、2次元コードラベル101−1が“0x111111”で左上、2次元コードラベル101−2が“0x222222”で右上、2次元コードラベル101−3が“0x333333”で左下、2次元コードラベル101−4が“0x444444”で右下として記憶される。
【0125】
このように4個の2次元コードラベル101−1乃至101−4が認識された場合、左上から右下の順に、それらの配置情報に基づいて、優先順位が第1位乃至第4位と決定され、優先順位の高い方(第4位)が上位ビットとして設定される。すなわち、図22で示した例では、2次元コードラベル101−1が第1位、2次元コードラベル101−2が第2位、2次元コードラベル101−3が第3位、2次元コードラベル101−4が第4位となるので、新たに拡張されたコードデータとしてのビット配列は、“0x444444333333222222111111”となる。そして、同一画像情報上の4個の2次元コードラベル101−1乃至101−4の画像から、これら複数の2次元コードコードラベル101−1乃至101−4に各々対応したコードデータが順次認識され、これら複数のコードデータが連結されて、新たに拡張されたコードデータ(ビット配列)が生成され、このようにして得られたコードデータに対応する処理が、パーソナルコンピュータ1によって実行される。
【0126】
このように、図20のフローチャートで示したように時間的に、または図21のフローチャートで示したように空間的に、複数の2次元コードを認識させることにより、例えば、1つめの2次元コードでアプリケーションを起動させ、2つめの2次元コードで引用ファイルやオプション等を設定させ、3つめ以降の2次元コードでその他の処理を引き続いて処理させるなどができるようになる。
【0127】
なお、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられるプログラム格納媒体としては、例えば、フロッピーディスク、CD-ROM、DVDなどのパッケージメディアのみならず、プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスクなどで実現してもよい。さらには、上述したプログラムをインストールする手段としては、ローカルエリアネットワークやインターネット、デジタル衛星放送などの有線および無線通信媒体、およびこれらの通信媒体を介して提供されるプログラムを転送もしくは受信するルーターやモデム等の各種通信インターフェイス等を利用することができる。
【0128】
【発明の効果】
本発明によれば、複数の2次元コードを用いて、複雑な処理を行わせることが可能となる。
【図面の簡単な説明】
【図1】本発明を適用した携帯型パーソナルコンピュータの構成例の表示部を本体に対して開いた状態を示す外観斜視図である。
【図2】図1の平面図である。
【図3】図1の表示部を本体に対して閉塞した状態を示す左側側面図である。
【図4】図1の表示部を本体に対して180度開いた状態を示す右側側面図である。
【図5】図3の正面図である。
【図6】図4の底面図である。
【図7】図1の電気回路の構成例を示すブロック図である。
【図8】パーソナルコンピュータ1の使用例を表している。
【図9】2次元コードの仕様について説明する図である。
【図10】2次元コードの仕様について説明する他の図である。
【図11】2次元コードの仕様について説明する他の図である。
【図12】2次元コードの例を示す図である。
【図13】2次元コード認識処理を説明するフローチャートである。
【図14】閾値の設定を説明する図である。
【図15】黒色画素連結領域のラベリングを説明する図である。
【図16】ロゴマークセル部検出処理を説明するフローチャートである。
【図17】辺ATおよび辺BTの求め方を説明する図である。
【図18】コード部検出処理を説明する図である。
【図19】コードパターン検証処理を説明するフローチャートである。
【図20】複数の2次元コードを認識するときの処理を説明するフローチャートである。
【図21】複数の2次元コードを認識するときの他の処理を説明するフローチャートである。
【図22】複数の2次元コードが配置されたオブジェクトを説明する図である。
【図23】従来の1次元バーコードの例を示す図である。
【図24】従来の2次元コードの例を示す図である。
【符号の説明】
1 パーソナルコンピュータ, 3 表示部, 21 LCD, 23 CCDビデオカメラ, 52 CPU, 56 HDD, 81 グラフィックチップ, 83 LCDコントローラ, 100 オブジェクト, 101 2次元コード[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a two-dimensional code recognition processing method, a two-dimensional code recognition processing apparatus, and a two-dimensional code recognition processing program storage medium, and in particular, efficiently uses expanded code data composed of a combination of a plurality of captured two-dimensional codes. The present invention relates to a two-dimensional code recognition processing method, a two-dimensional code recognition processing apparatus, and a two-dimensional code recognition processing program storage medium that can be recognized well and accurately.
[0002]
[Prior art]
Conventionally, an alphanumeric character indicating the type or state of an article is converted into a bar code, for example, pasted on the article, and the attached bar code is read to obtain information such as the type or state of the article Code systems are prevalent in many industrial fields.
[0003]
FIG. 23 shows an example of this type of bar code, particularly what is called a one-dimensional bar code. In this figure, a one-dimensional barcode 500 includes a code part 501 composed of a combination of a bar having a different thickness (black bar-like part) and a space (blank part), and a code encoded in the code part 501. An ID (identification number) portion 502 is shown. In the ID section 502, alphanumeric characters encoded in the code section 501 are displayed as readable information. Such a one-dimensional barcode 500 is read by an optical recognition device called a barcode scanner.
[0004]
[Problems to be solved by the invention]
By the way, as one method for reading the above-described one-dimensional barcode 500, there is a method of reading with a CCD video camera. For example, when the bar arrangement becomes longer as the amount of information to be encoded increases, It becomes difficult to read the one-dimensional barcode 500 by the camera.
[0005]
Therefore, in order to enable reading by a video camera even when a large amount of information is encoded, a plurality of black square cells as shown in FIG. Various two-dimensional codes 600 composed of a code part 601 arranged two-dimensionally according to a predetermined arrangement rule and an ID part 602 indicating a code encoded in the code part 601 have been proposed.
[0006]
According to this, since information is two-dimensionally encoded, a larger amount of information can be encoded, and even if more information is encoded as compared to the one-dimensional barcode 500. Reading by a video camera becomes possible.
[0007]
However, when the two-dimensional code 600 is recognized from the image data captured by the video camera, it becomes difficult to distinguish the image from dust, dirt, and other images other than the two-dimensional code 600. There was a problem that data could not be recognized.
[0008]
Conventionally, only code data assigned to a single two-dimensional code 600 can be used, and the amount of information that can be used is limited, so the application range is limited.
[0009]
The present invention has been made in view of such a situation, and makes it possible to efficiently and accurately recognize expanded code data composed of a combination of a plurality of two-dimensional codes.
[0010]
[Means for Solving the Invention]
  The two-dimensional code recognition processing method according to claim 1 comprises:Obtained as a result of imaging a two-dimensional codeA recognition processing step for recognizing code data assigned to a two-dimensional code from image information, and a case where a plurality of code data are sequentially recognized at intervals by the recognition processing step, or a plurality of codes from the same image information A concatenation processing step of concatenating the plurality of code data to generate expanded code data when the data is recognized;And the recognition processing step is based on the binarization processing step for generating binarization data based on a predetermined threshold from the image information, and the binarization data generated by the processing of the binarization processing step. Based on the cell detection processing step for detecting a cell serving as a reference for recognizing the two-dimensional code and the binarized data generated by the binarization processing step, the cell detection processing step detects the cell. A basic cell determining step for determining a basic cell for specifying a region of a two-dimensional code existing within a predetermined search range corresponding to a reference cell for recognizing a two-dimensional code; 2 generated by the conversion step of converting the range uniquely determined by the cell to the range obtained when the region of the two-dimensional code is imaged facing the imaging surface and the binarization processing step Based on the data, the code data detecting process step for detecting code data assigned to the two-dimensional code exists in the conversion range in the process of conversion stepsIt is characterized by including.
[0011]
  Claim6The two-dimensional code recognition processing device according to claim 1 recognizes code data assigned to the two-dimensional code from image information obtained as a result of imaging the two-dimensional code, and the recognition processing step performs time processing. When a plurality of code data are recognized sequentially with a gap between them, or when a plurality of code data are recognized from the same image information, a concatenation process for generating the expanded code data by concatenating the plurality of code data Step andThe recognition processing means includes binarization processing means for generating binarized data based on a predetermined threshold value from the image information, and binarization data generated by the binarization processing means. Based on the cell detection processing means for detecting a reference cell for recognizing the two-dimensional code and the binarized data generated by the binarization processing means, the cell detection processing means Basic cell determination means for determining a basic cell for specifying a region of the two-dimensional code that exists within a predetermined search range corresponding to a reference cell for recognizing the detected two-dimensional code. And a conversion unit that converts a range uniquely determined by the basic cell into a range obtained when the region of the two-dimensional code is imaged facing the imaging surface, and the binarization processing unit generates the range. The on the basis of the binarized data, the code data detecting process for detecting the code data assigned to the two-dimensional code exists in the conversion range by said converting meansIt is characterized by including.
[0012]
  Claim7The program of the two-dimensional code recognition processing program storage medium described inObtained as a result of imaging a two-dimensional codeA recognition processing step for recognizing code data assigned to a two-dimensional code from image information, and a case where a plurality of code data are sequentially recognized at intervals by the recognition processing step, or a plurality of codes from the same image information A concatenation processing step of concatenating the plurality of code data to generate expanded code data when the data is recognized;And the recognition processing step is based on the binarization processing step for generating binarization data based on a predetermined threshold from the image information, and the binarization data generated by the processing of the binarization processing step. Based on the cell detection processing step for detecting a cell serving as a reference for recognizing the two-dimensional code and the binarized data generated by the binarization processing step, the cell detection processing step detects the cell. A basic cell determining step for determining a basic cell for specifying a region of a two-dimensional code existing within a predetermined search range corresponding to a reference cell for recognizing a two-dimensional code; 2 generated by the conversion step of converting the range uniquely determined by the cell to the range obtained when the region of the two-dimensional code is imaged facing the imaging surface and the binarization processing step Based on the data, the code data detecting process step for detecting code data assigned to the two-dimensional code exists in the conversion range in the process of conversion stepsIt is characterized by including.
[0013]
  The two-dimensional code recognition method according to claim 1,62D code recognition device according to claim 1 and claim7In the program of the two-dimensional code recognition processing program storage medium described inObtained as a result of imaging a two-dimensional codeWhen the code data assigned to the two-dimensional code is recognized from the image information and a plurality of code data is sequentially recognized at intervals of time, or when a plurality of code data is recognized from the same image information, the plurality of Are combined to generate expanded code data.Obtained as a result of imaging a two-dimensional codeWhen the code data assigned to the two-dimensional code is recognized from the image information,Binarized data is generated from the image information based on a predetermined threshold, a cell serving as a reference for recognizing the two-dimensional code is detected based on the generated binarized data, and binarized data is generated. Based on this, the basic cell for specifying the region of the two-dimensional code existing in the predetermined search range corresponding to the reference cell for recognizing the two-dimensional code is determined. A range that is uniquely determined is converted into a range that is obtained when a region of a two-dimensional code is imaged facing the imaging surface, and two-dimensional data that exists in the converted range based on the generated binarized data Code data assigned to the code is detected.
[0014]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below.
[0015]
1 to 6 show a configuration example of a portable personal computer to which the present invention is applied. The personal computer 1 is a mini-notebook type personal computer, and basically includes a main body 2 and a display unit 3 that can be opened and closed with respect to the main body 2. 1 is an external perspective view showing a state in which the display unit 3 is opened with respect to the main body 2, FIG. 2 is a plan view of FIG. 1, and FIG. 3 shows a state in which the display unit 3 is closed with respect to the main body 2. 4 is a right side view showing a state in which the display unit 3 is opened 180 degrees with respect to the main body 2, FIG. 5 is a front view of FIG. 3, and FIG. 6 is a bottom view of FIG.
[0016]
The main body 2 is provided with a keyboard 4 that is operated when inputting various characters and symbols, and a stick-type pointing device 5 that is operated when moving a mouse cursor. Further, on the upper surface of the main body 2, there are further provided a speaker 8 that outputs sound and a shutter button 10 that is operated when taking an image with the CCD video camera 23 provided in the display unit 3.
[0017]
A claw 13 is provided at the upper end of the display unit 3, and the main body 2 at a position facing the claw 13 in a state where the display unit 3 is closed with respect to the main body 2, as shown in FIG. 3, A hole 6 into which the claw 13 is fitted is provided. A slide lever 7 is provided on the front surface of the main body 2 so as to be movable in parallel with the front surface. The slide lever 7 can be engaged with a claw 13 fitted in the hole 6 to be locked and unlocked. It can be done. The display unit 3 can be rotated with respect to the main body 2 by releasing the lock. Next to the claw 13, a microphone 24 is attached. As shown in FIG. 6, the microphone 24 can collect sound from the back side.
[0018]
A programmable power key (PPK) 9 is also provided on the front surface of the main body 2. As shown in FIG. 4, an exhaust hole 11 is provided on the right side surface of the main body 2, and an intake hole 14 is provided at the lower front surface of the main body 2 as shown in FIG. 5. Furthermore, a slot 12 for inserting a PCMCIA (Personal Computer Memory Card International Association) card (PC card) is provided on the right side of the exhaust hole 11.
[0019]
An LCD (Liquid Crystal Display) 21 for displaying an image is provided on the front surface of the display unit 3, and an imaging unit 22 is provided at an upper end portion thereof so as to be rotatable with respect to the display unit 3. . That is, the imaging unit 22 can be rotated to an arbitrary position within a range of 180 degrees between the same direction as the LCD 21 and the opposite direction (rear direction). A CCD video camera 23 is attached to the imaging unit 22.
[0020]
On the lower main body side of the display unit 3, a power lamp PL, a battery lamp BL, a message lamp ML, and other lamps including LEDs are provided. 3 is a power switch provided on the left side surface of the main body 2, and reference numeral 25 shown in FIG. 5 is an adjustment ring for adjusting the focus of the CCD video camera 23. Further, reference numeral 26 shown in FIG. 6 is a lid that covers an opening for attaching the additional memory in the main body 2, and reference numeral 41 is a small hole for inserting a pin for removing the lock claw of the lid 26.
[0021]
FIG. 7 shows an internal configuration example of the personal computer 1. Connected to the internal bus 51 are a CPU (Central Processing Unit) 52, a PC card 53 inserted as necessary, a RAM (Random Access Memory) 54, and a graphic chip 81. The internal bus 51 is connected to an external bus 55. The external bus 55 includes a hard disk drive (HDD) 56, an I / O (input / output) controller 57, a keyboard controller 58, a stick-type pointing device controller 59, a sound. The chip 60, the LCD controller 83, the modem 50, etc. are connected.
[0022]
The CPU 52 is a controller that controls each function, and the PC card 53 is appropriately mounted when adding an optional function.
[0023]
Image data captured by the CCD video camera 23 is input to the graphic chip 81 after being processed by the processing unit 82. The graphic chip 81 stores the video data input from the CCD video camera 23 via the processing unit 82 in the built-in VRAM 81 </ b> A, reads it out as appropriate, and outputs it to the LCD controller 83. The LCD controller 83 outputs the image data supplied from the graphic chip 81 to the LCD 21 for display. The backlight 84 illuminates the LCD 21 from behind.
[0024]
In the RAM 54, when the activation is completed, an e-mail program (application program) 54A, an autopilot program (application program) 54B, and an OS (operating system) 54C are transferred from the HDD 56 and stored.
[0025]
The e-mail program 54A is a program for sending and receiving communication text via a network from a communication line such as a telephone line. The electronic mail program 54A has an incoming mail acquisition function as a specific function. This incoming mail acquisition function checks whether a mail addressed to itself (user) is received in the mail box 93A to the mail server 93, and executes processing to acquire if there is a mail addressed to itself. To do.
[0026]
The autopilot program 54B is a program that sequentially starts and processes a plurality of preset processes (or programs) and the like in a preset order.
[0027]
The OS (Operating System) 54C controls basic operations of the computer, typified by Windows 95 and Windows 98 (trademark).
[0028]
On the other hand, the hard disk drive (HDD) 56 on the external bus 55 side stores an e-mail program 56A, an autopilot program 56B, an OS (basic program software) 56C, and a two-dimensional code recognition program 56D.
[0029]
The two-dimensional code recognition program detects the logo mark cell portion 301 and the code portion 202 of the logo mark portion 201 of the two-dimensional code from the image data stored in the VRAM 81A of the graphic chip 81, and the code data of the code portion 202 is detected. It is a program that reads predetermined information encoded by recognizing it.
[0030]
The I / O controller 57 includes a microcontroller 61, and the microcontroller 61 is provided with an I / O interface 62. The microcontroller 61 is configured by connecting an I / O interface 62, a CPU 63, a RAM 64, and a ROM 69 to each other. The RAM 64 includes a key input status register 65, an LED (light emitting diode) control register 66, a set time register 67, and a register 68. The set time register 67 is used when starting the operation of the activation sequence control unit 76 at a time (activation condition) preset by the user. The register 68 stores correspondences between preset operation key combinations (startup conditions) and application programs to be started. When the stored operation key combinations are input by the user, the register 68 is stored. The application program (for example, electronic mail) is started.
[0031]
The key input status register 65 stores an operation key flag when a programmable power key (PPK) 9 for one-touch operation is pressed. The LED control register 66 controls lighting of the message lamp ML that displays the start-up state of the application program (e-mail) stored in the register 68. The set time register 67 can arbitrarily set a predetermined time.
[0032]
Note that a backup battery 74 is connected to the microcontroller 61, and the values of the registers 65, 66, and 67 are held even when the power of the main body 2 is turned off. Yes.
[0033]
In the ROM 69 in the microcontroller 61, a wake-up program 70, a key input monitoring program 71, and an LED control program 72 are stored in advance. The ROM 69 is composed of, for example, an EEPROM (electrically erasable and programmable read only memory). This EEPROM is also called flash memory. Furthermore, an RTC (Real-Time Clock) 75 that always counts the current time is connected to the microcontroller 61.
[0034]
The wake-up program 70 in the ROM 69 checks whether or not the time preset in the set time register 67 has been reached based on the current time data supplied from the RTC 75. It is a program for starting processing (or program) or the like. The key input monitoring program 71 is a program that constantly monitors whether the PPK 9 has been pressed by the user. The LED control program 72 is a program for controlling lighting of the message lamp ML.
[0035]
In the ROM 69, a BIOS (Basic Input / Output System) 73 is further written. The BIOS refers to a basic input / output system, which is a software program that controls data transfer (input / output) between the OS and application software and peripheral devices (display, keyboard, hard disk drive, etc.).
[0036]
A keyboard controller 58 connected to the external bus 55 controls input from the keyboard 4. The stick type pointing device controller 59 controls the input of the stick type pointing device 5.
[0037]
The sound chip 60 takes in an input from the microphone 24 or supplies an audio signal to the built-in speaker 8.
[0038]
The modem 50 can be connected to a communication network 92 such as the Internet, a mail server 93, and the like via a public telephone line 90 and an Internet service provider 91.
[0039]
The power switch 40 is operated when the power is turned on or off. The half-press switch 85 is turned on when the shutter button 10 is half-pressed, and the full-press switch 86 is turned on when the shutter button 10 is fully pressed. The reversing switch 87 is turned on when the imaging unit 22 is rotated 180 degrees (when the CCD video camera 23 is rotated in the direction of imaging the opposite side of the LCD 21).
[0040]
FIG. 8 shows a usage example of the personal computer 1 to which the present invention is applied. The object 100 is, for example, a business card card to which a two-dimensional code 101 is attached (including printing).
[0041]
As shown in FIG. 9, in the two-dimensional code 101, a plurality of square cells (black portions) are two-dimensionally arranged according to a predetermined arrangement rule. A character, for example, in this example, the number 200 is encoded.
[0042]
Details of the two-dimensional code 101 will be described below. The two-dimensional code 101 includes a logo mark part 201 and a code part 202. The logo mark part 201 and the code part 202 as a whole represent a rectangular area of one square cell as one block. An area formed by a side in the X-axis direction having a length of 7 blocks and a side in the Y-axis direction having a length of 9.5 blocks (hereinafter, such an area is described as a 7 × 9.5 block area). The same applies to other cases).
[0043]
The logo mark part 201 is comprised from the logo mark cell part 301 and the non-cell part 302, as shown in FIG. In the logo mark cell portion 301, which is a rectangular cell of a 7 × 1.5 block area, white readable character information related to a two-dimensional code such as a logo mark, a character, or a number is displayed by printing. ing. Here, for example, as a logo mark, what is meant by the two-dimensional code 101, such as “CyberCode” attached to the code system of the two-dimensional code 101, is a white mark as a human-readable mark. Displayed in characters.
[0044]
In addition to the logo mark, the name of the applicant who developed the code system of the two-dimensional code 101 is displayed, or a URL (Uniform Resource) indicating the storage location of the information resource related to the code system of the two-dimensional code 101 (Locator) etc. may be displayed. The URL is a notation method for uniquely specifying the storage location of information resources such as files distributed on the Internet.
[0045]
As described above, by displaying what the two-dimensional code 101 indicates in the rectangular logo mark cell portion 301 with a logo mark or the like, information on the logo mark or the like is posted on the Internet. By referring to the homepage or the like, information on the two-dimensional code 101 can be acquired and understood. For example, at the time of filing this application, the following explanation is posted on the homepage accessible by the applicant at the following URL.
http://www.sony.co.jp/sd/ProductsPark/Consumer/PCOM/PCG-C1CAT/cybercode.html
““ Cybercode ”is Sony's original two-dimensional code, and there are about 16.77 million patterns (24 bits). About 1 million of them (20 bits) can be freely registered for starting any program. The remaining code is reserved for future service expansion. “Cybercode” acts as an index to extract information on the corresponding computer from the affixed, and the program is launched through the finder of CyberCode Finder, as if “Cybercode” It provides a new interface in which the corresponding information pops up on the computer from what is pasted. "
Next, as shown in FIG. 10, a non-cell portion 302 in which no cell exists is present in the 7 × 1 block region on the code portion 202 side of the logo mark cell portion 301. The major axis (axis in the X-axis direction in FIG. 9) of the logo mark cell portion 301 is side A and the short axis (axis in the Y-axis direction in FIG. 9) is side B.
[0046]
As shown in FIG. 11, when the logo mark cell unit 301 is positioned downward, the code unit 202 includes an upper left corner cell positioned 7 blocks upward from the left end of the logo mark cell unit 301, and a logo mark. There is an upper right corner cell located seven blocks upward from the right end of the cell portion 301. Further, there is a lower left corner cell positioned one block upward from the left end of the logo mark cell portion 301, and a lower right corner cell positioned one block upward from the right end of the logo mark cell portion 301. In addition, when it is not necessary to particularly distinguish the upper left corner cell, the upper right corner cell, the lower left corner cell, and the lower right corner cell, these are collectively referred to as a corner cell.
[0047]
There are no cells in the area of three adjacent blocks around the corner cell. That is, a cell that exists at the position as described above with respect to the logo mark cell portion 301 and does not exist in the surrounding three block areas is a corner cell.
[0048]
The code unit 202 can actually encode information for 49 bits (7 blocks × 7 blocks = 49 blocks) if 1 block is 1 bit, but as described above, the corner cell (1 block) And 3 blocks around the corner cell do not constitute data. That is, a total of 16 blocks do not constitute data. Of the remaining 33 blocks (33 bits), 9 blocks (9 bits) constitute check data for confirming that the code data is correct code data. Therefore, 24 bits of information is coded in the code part 202.
[0049]
FIG. 12 shows a specific example of the two-dimensional code 101 described above. A code pattern in which identification numbers 200, 201, 202, 203, 1500, 1501, 1502, and 1503 are encoded is printed in the code portion 202 of the two-dimensional code 101 in FIG. A number corresponding to the encoded identification number is printed on the ID portion 203 below the logo mark cell portion 301.
[0050]
In the specific example shown in FIG. 12B, the logo mark is printed with white characters in the logo mark cell portion 301 of the two-dimensional code 101. Also, in the specific example shown in FIG. 12C, the numbers corresponding to the identification numbers of the ID part 203 of the two-dimensional code 101 are omitted. Further, in the specific example shown in FIG. 12D, the number corresponding to the identification number is printed in white letters in the logo mark cell portion 301, and the logo mark is printed in black letters in the ID portion 203. The code portions 202 of the two-dimensional code 101 shown in FIGS. 12A to 12D are all created according to the same specifications.
[0051]
Here, the logo mark cell portion 301 described above is configured by a rectangular region having a predetermined aspect ratio, and includes a black pixel connection region formed by connecting a plurality of black pixels, as will be described later. . Further, the logo mark cell unit 301 includes white readable information related to the two-dimensional code 101. Then, at the initial stage of starting the recognition process of the two-dimensional code 1101, a rectangular logo mark cell portion 301 having a predetermined aspect ratio defined in advance is detected. The recognition process can be advanced to the detection process of other cells existing in the search range. Therefore, the above-described logo mark cell unit 301 is not provided only for the purpose of displaying the meaning of the two-dimensional code 101 in the form of a readable logo mark, but the recognition process of the two-dimensional code 101 is performed. It also has a function to show the standard for proceeding.
[0052]
As described above, in addition to the function of indicating the reference, the logo mark cell unit 301 is provided with a function of displaying a logo mark, characters, and the like as illustrated in FIGS. 12B to 12D. Therefore, it is possible to present information necessary for the recognition processing standard and readable information simultaneously with a minimum occupied area.
[0053]
Returning to FIG. 8, for example, the personal computer 1 can capture the object 100 and the two-dimensional code 101 with the CCD video camera 23 and recognize the code data of the two-dimensional code 101 obtained as a result. Has been made.
[0054]
Next, the processing procedure of the two-dimensional code recognition process will be described with reference to the flowchart of FIG.
[0055]
The two-dimensional code 101 is imaged by the CCD video camera 23, and the image data for one frame obtained as a result is processed by the processing unit 82 and stored in the VRAM 81A of the graphic chip 81 and stored in the HDD 56. When the two-dimensional code recognition program 56D is started, in step S1, the CPU 52 initially sets 1 to the value of the counter i that counts the setting of a threshold value indicating a predetermined luminance value. In the case of this example, as shown in FIG. 14, the threshold value is set in five stages. The value of the threshold A indicated by the setting number 1 is set to the largest value, and is set so that the value gradually decreases toward the threshold E indicated by the setting number 5.
[0056]
In step S2, the CPU 52 performs binarization processing on the image data stored in the VRAM 81A based on the threshold value of the setting number corresponding to the value of the counter i. Here, the pixel value of the pixel holding the luminance larger than the threshold is encoded as “0”, and the pixel is white on display. In the following, a pixel in which the pixel value is encoded as “0” in this way is referred to as a white pixel.
[0057]
On the other hand, the pixel value of the pixel holding the luminance value below the threshold is encoded as “1”, and the pixel is black on display. Hereinafter, a pixel whose pixel value is encoded as “1” in this way is referred to as a black pixel.
[0058]
Next, in step S3, the CPU 52 sets (labels) numbers from the upper left to the lower right, with the area where the black pixels are connected as one area, as shown in FIG.
[0059]
In step S4, the CPU 52 obtains the total number M of the black pixel connected regions labeled in step S3, determines whether or not the obtained total number M of black pixel connected regions is 257 or more, and the total number M is 257 or more. In other words, if it is determined that the image frame currently stored in the VRAM 81A is an image that is not suitable for executing the subsequent processing, the process proceeds to step S5. Here, an image that is not suitable for executing the subsequent processing is an image that includes a large number of points such as sand grains called so-called dithered images, and forcibly recognizes such dithered images. If processing is to proceed, the load on the CPU required for arithmetic processing increases. Therefore, in the case of such a dithered image, the process proceeds to step S5 without proceeding with the recognition process.
[0060]
In step S5, the CPU 52 determines whether or not the value of the counter i is equal to the threshold setting number N (= 5) (i = 5). If it is determined that i = 5 is not satisfied, in step S6, After increasing the value of the counter i by 1, the process returns to step S2. In step S2, the CPU 52 executes the binarization process again on the image data stored in the VRAM 81A based on the threshold value of the setting number corresponding to the value of the counter i increased by one.
[0061]
As described above, the threshold value A indicated by the setting number 1 is the threshold value having the largest value, that is, when the largest value is set as the threshold value for the binarization process, the luminance of many pixels of the image data is increased. As a result, many pixels are recognized as black pixels, and as a result, the total number M of black pixel connected regions also increases. Therefore, when the value of the counter i is incremented by 1 in step S5 and the threshold value that is one step smaller is set as the threshold value for the next binarization process, the number of pixels that are recognized as black pixels decreases.
[0062]
In this way, by first performing binarization processing with a larger threshold and using a large luminance value as a reference, it is possible to execute binarization processing suitable for an image in which the entire frame is relatively bright. By performing the binarization process on the basis of a smaller luminance value, the binarization process suitable for an image having a relatively dark frame as a whole can be executed. As described above, the threshold value is divided into five stages, and the threshold value is changed in stages, so that even when there is a variation in brightness in the entire image frame, highly accurate binarized data is always generated. Be able to.
[0063]
In step S5, if the CPU 52 determines that i = 5, that is, if an appropriate total number M of black pixel connected regions is not generated by any of the thresholds A to E, the pixels for this one frame. If it is determined that the two-dimensional code 101 does not exist in the data, the process is terminated.
[0064]
In step S4, when the CPU 52 determines that the total number M of black pixel connection regions is less than 257, the process proceeds to step S7.
[0065]
In step S7, the CPU 52 stores the position on the LCD 21 of the two-dimensional code 101 recognized by the previously executed two-dimensional code recognition process, for example, the center point of the logo mark cell unit 301 in the RAM 54 or the like. If it is stored, the process proceeds to step S8, and the stored point is set as the start point of the logo mark cell part detection process. If it is determined in step S7 that the position of the two-dimensional code 101 is not stored, the process proceeds to step S9, where the CPU 52 is the center point on the display of the LCD 21 having 320 × 240 pixels (for example, the 160th position in the X-axis direction). Yes, the 120th pixel in the Y-axis direction) is set as the start point. By doing in this way, the logo mark cell part 301 can be detected efficiently.
[0066]
Next, in step S10, a logo mark cell part detection process is executed. Details of the logo mark cell part detection processing in step S10 will be described with reference to the flowchart of FIG.
[0067]
First, in step S21, the CPU 52 initially sets the value of the counter j that counts the total number M of black pixel connected regions to 1, and then in step S22, the start set in steps S8 and S9 of FIG. From the point, the black pixel connection area is searched along the trace of the counterclockwise spiral on the screen of the LCD 21, and the black pixel connection area detected first is selected as a logo mark cell part candidate area.
[0068]
Next, in step S23, the CPU 52 determines the sides AT and BT corresponding to the sides A and B of the logo mark cell part 301 as shown in FIG. 10 in the logo mark cell part candidate area selected in step S22. decide. As shown in FIG. 17, the side AT is formed by projecting the black pixel connection region onto the X axis on the image of the LCD 21 (X axis projection line) and the Y axis. Of the lines (Y-axis projection lines), the longer one is used. The side BT is the other shorter line.
[0069]
Next, in step S24, the CPU 52 determines whether or not the side BT corresponding to the short axis is composed of less than 20 pixels. For example, assuming that a black pixel connection region composed of pixels having a minor axis (side B) of less than 20 pixels is the logo mark cell portion 301, the length of one side of one block is as shown in FIG. Since the ratio of the length of the side B is 1 to 1.5, it is composed of a smaller number of pixels. In this case, the minimum cell (cell of 1 × 1 block area) is reduced, and the LCD 21 Will not be displayed properly. From this, when it is determined in step S24 that the side BT is composed of less than 20 pixels, the black pixel connection region selected in step S22 is not the logo mark cell portion 301, Proceeding to step S25, the CPU 52 determines whether or not the value of the counter j is equal to the total number M of black pixel connection regions (j = M). If it is determined that j = M is not satisfied, the CPU 52 proceeds to step S26. After incrementing the value of the counter j by 1, the process returns to step S22. Then, the CPU 52 performs the same processing using the next black pixel connection region as the next logo mark cell portion candidate region.
[0070]
In step S24, when it is determined that the side BT of the logo mark cell part candidate region selected in step S22 is equal to or more than 20 pixels, the process proceeds to step S27, and the CPU 52 It is determined whether or not the side AT of the logo mark cell candidate area is composed of more than 300 pixels. For example, assuming that the black pixel connection region having a major axis (side A) of more than 300 pixels is the logo cell 301, the length of the side A is 7 as shown in FIG. On the other hand, the length of one side of one block obtained at a ratio of 1 is increased. As shown in FIG. 11, the upper left corner cell and the upper right corner cell located 7 blocks apart from the logo cell part 301 are No longer displayed on the LCD 21. From this, when it is determined in step S27 that the side AT is composed of more than 300 pixels, the black pixel connection region selected in step S22 this time is not the logo mark cell portion 301. Proceeding to step S25, the subsequent processing is performed.
[0071]
If it is determined in step S27 that the side AT of the logo mark cell part candidate area selected in step S22 is not composed of more than 300 pixels (consists of 300 pixels or less), step S28 is performed. The CPU 52 determines whether or not the total number of black pixels in the logo mark cell part candidate area is 20 pixels or more and less than 1500 pixels. If the CPU 52 determines that the number is 20 pixels or more and less than 1500 pixels, Proceed to S29.
[0072]
On the other hand, if it is determined in step S28 that the total number of black pixels in the logo mark cell part candidate area is less than 20 pixels or 1500 pixels or more, the process proceeds to step S25. If the total number of black pixels is less than 20 pixels, the same problem as in the case where the side BT is composed of less than 20 pixels occurs in step S24, and if it is 1500 pixels or more, in step S27. The same problem occurs when the side AT is composed of more than 300 pixels, and in any case, the possibility of being the logo mark cell portion 301 is reduced.
[0073]
Next, in step S29, the CPU 52 determines the squareness (fitness) of the logo mark cell part candidate area selected in step S22, and if it is determined to be a square, the process proceeds to step S30. In the case of this example, when the fitness calculated based on the formula (1) is 0.2 or more, it is determined that the logo mark cell part candidate region is a square.
[0074]
[Expression 1]
Figure 0003786167
[0075]
The constant a in equation (1) is based on equation (2), the constant c is based on equation (3), and the constant b / 2 is determined on the basis of equation (4). Is a two-dimensional moment.
[0076]
[Expression 2]
Figure 0003786167
[0077]
[Equation 3]
Figure 0003786167
[0078]
[Expression 4]
Figure 0003786167
[0079]
F (i, j) in the expressions (2) to (4) is 1 when the pixel specified by the X coordinate i and the Y coordinate j of the display on the LCD 21 is black, and is also specified. This function is 0 when the pixel to be white is white.
[0080]
In step S30, the CPU 52 calculates the ratio of the major axis to the minor axis of the logo mark cell part candidate area that is rectangular in step S29 based on the formula (5), and the calculation result is 2.0 or more and 25 or less. It is determined whether or not.
[0081]
[Equation 5]
Figure 0003786167
[0082]
When it is determined that the calculation result is 2.0 or more and 25 or less, the process proceeds to step S31, and the CPU 52 sets (assumes) the logo mark cell part candidate area selected in step S22 as the logo mark cell part 301, For example, the number of the black pixel connection area that is the logo mark cell part candidate area is stored in the RAM 54. In this way, the logo mark cell portion 301 is detected, and the process ends.
[0083]
If it is determined in step S28 that the total number of black pixels is less than 20 pixels or 1500 pixels or more, if it is determined in step S29 that the logo mark cell part candidate area is not a square, or in step S30, If it is determined that the ratio of the side AT and the side BT is less than 2.0 or greater than 25, the logo mark cell part candidate area selected in step S22 this time is not the logo mark cell part 301, and the process proceeds to step S25. Next, the black pixel connection area detected next is set as the next logo mark cell part candidate area, and the subsequent processing is performed.
[0084]
If it is determined in step S25 that the value of the counter j is equal to the total number M of black pixel connected regions (j = M), the logo mark cell portion 301 is not set in step S31, and the process is terminated. That is, the logo mark cell portion 301 does not exist in the image data (one frame) that is the target of the two-dimensional code recognition process this time.
[0085]
When the logo mark cell part detection process is completed as described above, the process proceeds to step S11 in FIG.
[0086]
In step S11, it is determined whether or not the logo mark cell portion 301 has been detected in step S10. If it is determined that the logo mark cell portion 301 has been detected, the process proceeds to step S12 to execute a code portion detection process. Details of the code part detection processing in step S12 will be described with reference to the flowchart of FIG.
[0087]
First, in step S41, the CPU 52 initially sets the value of the counter j that counts the total number M of black pixel connected regions detected in step S3 of FIG. 13 to 1, and in step S42, the black number corresponding to the value is set. A pixel connection region is detected and selected as an upper left corner cell candidate region.
[0088]
Next, in step S43, the CPU 52 determines whether the ratio of the lengths of the sides AT and BT determined as shown in FIG. 17 in the upper left corner cell candidate region selected in step S42 is three times or less. If it is determined that the ratio is three times or less, the process proceeds to step S44.
[0089]
In step S44, the CPU 52 determines whether or not the upper left corner cell candidate region selected in step S42 is within the search range set in advance for the logo mark cell portion 301 detected in step S10 of FIG. If it is determined that it exists within the search range, the process proceeds to step S45, where it is set (assumed) as the upper left corner cell.
[0090]
If it is determined in step S43 that the ratio of the length of the side BT to the length of the side AT is greater than three times, or if it is determined in step S44 that it does not exist within the search range, the selection is made in step S42. The determined black pixel connection area is determined not to be an upper left corner cell, and the process proceeds to step S46, where it is determined whether or not the value of the counter j is equal to the total number M of black pixel connection areas (j = M). When it is determined that it is not M, the process proceeds to step S47, the value of the counter j is incremented by 1, and the process returns to step S42. Then, the black pixel connection region of the next number is set as the next upper left corner cell candidate region, and the same processing is performed.
[0091]
When the upper left corner cell is set in step S45, the process proceeds to step S48, in which the CPU 52 initializes 2 to another counter k that counts the number of the black pixel connection region, and then in step S49, the counter k The black pixel connected region having the number corresponding to the value of is detected and selected as the upper right corner cell candidate region.
[0092]
Next, in step S50, the CPU 52 calculates a ratio between the number of pixels (area) of the upper left corner cell set in step S45 and the number of pixels (area) of the upper right corner cell candidate region selected in step S49, and the ratio It is determined whether (area ratio) is 6 times or less, and if it is determined that the area ratio is 6 times or less, the process proceeds to step S51.
[0093]
In step S51, the CPU 52 determines the area (number of pixels) (S1) of the upper left corner cell set in step S45, the area (number of pixels) of the upper right corner cell candidate region selected in step S49 (S2), and the upper left corner cell. The distance (D) between the center point of and the center point of the upper right corner cell candidate region is calculated, and it is determined whether or not the equations (6) and (7) are satisfied.
[0094]
(S1 / D2) <= 900 (6)
(S2 / D2) <= 900 (7)
If it is determined in Step S51 that Expression (6) and Expression (7) are established, the process proceeds to Step S52, and the CPU 52 sets (assumes) the upper right corner cell candidate region selected in Step S49 as the upper right corner cell.
[0095]
When the upper right corner cell is set (assumed) in step S52, in step S55, the CPU 52 is set in the upper left corner cell set in step S45, the upper right corner cell set in step S52, and in step S10 of FIG. The area formed by the logo mark cell portion 301 is affine transformed so that the area on the LCD 21 is 7 blocks long in the X-axis direction and 9.5 blocks in the Y-axis direction. Note that the length of one side of one block is calculated based on the side AT or the side BT of the logo mark cell portion 301 set in step S10.
[0096]
Next, in step S56, the CPU 52 determines, from the image converted in step S55, an area corresponding to the logo cell part 301 set in step S10 in FIG. 13 and the corresponding non-cell part 302 (7 × 2. 5 block area) is deleted, and the black pixel connection area is mapped as a cell in the range of the 7 × 7 block area obtained as a result, thereby generating a code map.
[0097]
In step S57, the CPU 52 detects a square cell from the code map cells generated in step S56, determines whether or not the surrounding three block areas are white pixels, If it is determined that the code map is generated, the process proceeds to step S58, and the code map generated in step S56 is set (assumed) as the code part 202 of the two-dimensional code 101. In this way, when the code part 202 is detected, the process is terminated.
[0098]
If it is determined in step S50 that the area ratio is greater than 6 times, if it is determined in step S51 that Expressions (6) and (7) do not hold, or if in step S57, the surroundings of the four corner cells When it is determined that the three block areas are not white pixels, the process proceeds to step S53, where it is determined whether or not the value of the counter k is equal to the total number M of black pixel connected areas (k = M). If it is determined that there is not, the process proceeds to step S54, the value of the counter k is incremented by 1, and the process returns to step S49. Then, the next black pixel connection region of the next number is set as the next upper right corner cell candidate region, and the same processing is performed.
[0099]
If it is determined in step S53 that the value of the counter k is equal to the total number M of black pixel connected regions, the process returns to step S46. If it is determined in step S46 that j = M is not satisfied, the process proceeds to step S47. The value of the counter j is incremented by 1, and the process returns to step S42, the next black pixel connected area is selected as the next upper left corner cell candidate area, and the subsequent processing is performed.
[0100]
If it is determined in step S46 that j = M, it is determined that the two-dimensional code 101 does not exist in the image that is the target of the current two-dimensional code recognition process, and the process ends.
[0101]
When the code part detection process is completed as described above, the process proceeds to step S13 in FIG. In step S13, it is determined whether or not the code portion 202 has been detected in step S12. If it is determined that the code portion 202 has been detected, the process proceeds to step S14 to execute a code data verification process. Details of the code data verification processing in step S14 will be described with reference to the flowchart of FIG.
[0102]
First, in step S61, the CPU 52 initially sets the value of the counter p that counts the number of times of shifting the reference value calculated in steps S63 and S65 described later to the right by 1 bit to 1.
[0103]
Next, in step S62, the CPU 52 calculates code data and check data values from the code map of the code section 202 detected in step S12 of FIG.
[0104]
In step S63, the CPU 52 performs an exclusive OR operation between the value (bit stream) of the code data calculated in step S62 and 0xFFFFFF, and uses the resulting value (bit stream) as a reference value (reference bit stream). ). In step S64, the CPU 52 determines whether or not “1” is set in the LSB (Least Significant Bit) of the reference bitstream. If it is determined that “1” is not set, the process proceeds to step S65.
[0105]
In step S65, the CPU 52 performs an exclusive OR operation between the reference value (reference bitstream) calculated in step S63 and 0x8408, and the resulting value (bitstream) is used as a new reference value (reference bit). Stream), and the process proceeds to step S66.
[0106]
In step S64, when the CPU 52 determines that “1” is set in the LSB of the reference value (reference bitstream) calculated in step S63, the process of step S65 is skipped and the process proceeds to step S66.
[0107]
In step S66, the CPU 52 shifts the reference value (reference bitstream) calculated in step S63 or step S65 to the right by 1 bit, and proceeds to step S67, where the value of the counter p is 24 (predetermined shift value). (P = 24). If it is determined that p = 24 is not satisfied, the process proceeds to step S68, the value of the counter p is increased by 1, and the process returns to step S64. Thereafter, the same processing is repeatedly executed until it is determined in step S67 that p = 24.
[0108]
If it is determined in step S67 that p = 24, the CPU 52 proceeds to step S69, and performs a logical product operation of the bit stream calculated by the processing in steps S64 to S68 and 0x1FFF. Next, in step 70, the CPU 52 determines whether or not the value obtained by the logical product operation in step S69 is equal to the value of the check data calculated in step S62. The code part 202 detected in S13 is an appropriate pattern as the two-dimensional code 101, and the code part 202 of the two-dimensional code 101 is determined in step S71. Thereafter, the process is terminated.
[0109]
If it is determined in step S70 that the value calculated in step S69 is not equal to the check data value calculated in step S62, the process in step S71 is skipped, and the process ends.
[0110]
When the code data verification process is completed as described above, the process proceeds to step S15 in FIG. 13, and it is determined in step S71 in FIG. 19 whether or not the code part 202 has been fixed. In step S16, the CPU 52 stores the value of the code data calculated in step S62 of FIG. 19, that is, the value of the two-dimensional code 101, for example, in the RAM 54 and holds it. Thereafter, the process is terminated.
[0111]
If it is determined in step S11 that the logo mark cell portion 301 has not been detected, if it is determined in step S13 that the code portion 202 has not been detected, or if the code portion 202 has been confirmed in step S15. If it is determined that the two-dimensional code 101 is not present, it is determined that the two-dimensional code 101 does not exist in the image data that is the target of the two-dimensional code recognition process this time, and the process ends.
[0112]
Thus, for example, the logo mark cell part 301 that displays the attributes of the two-dimensional code 101 such as a logo mark is used as a reference for recognition processing, and the code part 202 is detected. Occupied area can be minimized. That is, since the logo mark cell unit 301 is provided with a function of displaying a logo mark, characters, etc. in addition to the function of indicating the reference, information necessary for the reference of the recognition process can be obtained with a minimum occupied area. It is possible to present readable information at the same time.
[0113]
FIG. 20 is a flowchart for explaining a case in which a plurality of two-dimensional codes are read and processing corresponding to each read two-dimensional code is continuously performed. In this embodiment, the user performs recognition by causing the personal computer 1 to recognize a plurality of two-dimensional codes one by one at intervals. First, in step S81, the CPU 52 determines whether or not a two-dimensional code is recognized by the above-described processing. Until it is determined that the two-dimensional code is recognized, the process of step S81 is repeated. When it is determined that the two-dimensional code is recognized, the process proceeds to step S82.
[0114]
In step S82, it is determined whether or not the continuous flag bit is “1”. Any one of 24 bits of the code part 202 of the two-dimensional code is assigned to the continuous flag bit, and when this flag is set (set to “1”), the two-dimensional code Indicates that the data consists of two-dimensional code that has already been recognized or two-dimensional code that will be recognized in the future, and conversely, if this flag is not set (set to “0”), The two-dimensional code indicates that it is only one single two-dimensional code (a code that performs processing using only the data) or the last two-dimensional code of a continuous two-dimensional code.
[0115]
In step S82, when it is determined that the continuous flag of the recognized two-dimensional code is “1”, the process proceeds to step S83, and the code data of the two-dimensional code recognized up to the previous time is newly added. The 23-bit code data of the recognized two-dimensional code is concatenated. When the connection is completed, the process returns to step S81, and the same processing is repeated for the next two-dimensional code.
[0116]
On the other hand, if it is determined in step S82 that the recognized continuous flag of the two-dimensional code is not “1”, in other words, if it is determined that it is “0”, the process proceeds to step S84. In step S84, it is determined whether all 24-bit values including consecutive bits of the recognized two-dimensional code are “0”. If it is determined that all of the 24-bit values are not “0”, the process proceeds to step S85, and the same process as the process in step S83 is performed. By repeating the process of step S83 or step S85, 23 bits, 46 bits, 69 bits,. . . In this way, since it is possible to prepare a desired number of bits, this two-dimensional code can be used even when a large amount of code data is required to perform complicated processing.
[0117]
When the process in step S85 is completed, the process proceeds to step S86, where the concatenated code data is determined as the current bit value and stored in the RAM 54. As described above, when the continuation flag is 0 but the remaining 23 bits are not only 0, this indicates the last two-dimensional code of the continuous (concatenated) two-dimensional code. In step S86, The concatenated data is stored in the RAM 54, and in step S87, processing corresponding to the stored data is performed.
[0118]
On the other hand, if it is determined in step S84 that all the recognized 24-bit values of the two-dimensional code are “0”, the process proceeds to step S88. In step S88, it is determined whether or not there is code data that is recognized before the currently recognized two-dimensional code and stored as code data that is linked to the RAM 54. If it is determined that there is no code data stored as the concatenated code data, the process proceeds to step S89, and the recognized two-dimensional code data itself, that is, data in which all 23 bits are 0 is stored in the RAM 54. In step S87, processing corresponding to the code data is executed.
[0119]
If it is determined in step S88 that there is code data stored as linked code data, the process proceeds to step S90, and all of the stored code data is cleared. That is, when a two-dimensional code in which all 24 bits are set to 0 is used by itself, the assigned process is performed and one of the continuously recognized two-dimensional codes is used. Is used to perform a process of clearing (discarding) all code data stored before the two-dimensional code is recognized.
[0120]
In this way, when an erroneous two-dimensional code is recognized, the code data up to that point can be canceled and redone from the beginning.
[0121]
FIG. 21 is a flowchart for explaining a case in which a plurality of two-dimensional codes are read and processing corresponding to each of the read two-dimensional codes is continuously performed in the same manner as the above-described processing. In this embodiment, as shown in FIG. 22, one in which four two-dimensional code labels 101-1 to 101-4 are pasted on an object 100 is used. As described above, when the object 100 to which the plurality of two-dimensional codes 101-1 to 101-4 is pasted is captured by the CCD video camera 23, the personal computer 1 performs the processing of the flowchart of FIG. The two-dimensional code labels 101-1 to 101-4 are sequentially recognized from the same image information.
[0122]
That is, the two-dimensional code label 101-1 is recognized by the processing of steps S101 to S116. Since the processing in steps S101 to S116 is the same as the processing in steps S1 to S16 in FIG. 13, the description thereof is omitted. When the two-dimensional code label 101-1 is recognized by the processing in steps S101 to S106, it is determined in step S117 whether there is an area where it is not detected whether it is a logo mark (two-dimensional code label 101).
[0123]
In this case, since the two-dimensional code labels 101-2 to 101-4 have not been detected yet, the process returns to step S101 and the subsequent processing is repeated. When the processing of steps S101 to S117 is repeated and there is no area where it is not detected whether it is a logo mark, the process proceeds to step S118, the number of recognized two-dimensional code labels 101, and the respective two-dimensional code labels. Code data assigned to 101 and arrangement information are stored in the RAM 54.
[0124]
In this case, the number of the two-dimensional code labels 101 is four, and the code data and arrangement information thereof are, for example, “0x111111” for the two-dimensional code label 101-1 and “2” for the two-dimensional code label 101-2 “ The upper right 2D code label 101-3 is “0x333333” and the lower left 2D code label 101-4 is stored as “0x444444” and the lower right.
[0125]
When the four two-dimensional code labels 101-1 to 101-4 are recognized in this way, the priority is determined from the first to the fourth based on the arrangement information from the upper left to the lower right. The higher priority (fourth) is set as the upper bit. That is, in the example shown in FIG. 22, the two-dimensional code label 101-1 is first, the two-dimensional code label 101-2 is second, the two-dimensional code label 101-3 is third, and the two-dimensional code label Since 101-4 is the fourth place, the bit arrangement as the newly expanded code data is “0x444444333333222222111111”. Then, from the images of the four two-dimensional code labels 101-1 to 101-4 on the same image information, code data respectively corresponding to the plurality of two-dimensional code code labels 101-1 to 101-4 are sequentially recognized. The plurality of code data are concatenated to generate newly expanded code data (bit array), and processing corresponding to the code data obtained in this way is executed by the personal computer 1.
[0126]
In this way, by recognizing a plurality of two-dimensional codes temporally as shown in the flowchart of FIG. 20 or spatially as shown in the flowchart of FIG. 21, for example, the first two-dimensional code With this, the application can be started, a citation file, an option, etc. can be set with the second two-dimensional code, and other processing can be continued with the third and subsequent two-dimensional codes.
[0127]
As a program storage medium used for installing the program for executing the above-described series of processes into a computer and making it executable by the computer, for example, only package media such as a floppy disk, CD-ROM, and DVD Instead, it may be realized by a semiconductor memory or a magnetic disk in which the program is stored temporarily or permanently. Furthermore, as means for installing the above-described program, a local area network, the Internet, wired and wireless communication media such as digital satellite broadcasting, and a router or modem for transferring or receiving a program provided via these communication media Various communication interfaces such as can be used.
[0128]
【The invention's effect】
  According to the present invention,Complex processing can be performed using a plurality of two-dimensional codes.
[Brief description of the drawings]
FIG. 1 is an external perspective view showing a state in which a display unit of a configuration example of a portable personal computer to which the present invention is applied is opened with respect to a main body.
2 is a plan view of FIG. 1. FIG.
3 is a left side view illustrating a state in which the display unit of FIG. 1 is closed with respect to the main body.
4 is a right side view showing a state where the display unit of FIG. 1 is opened 180 degrees with respect to the main body. FIG.
FIG. 5 is a front view of FIG. 3;
6 is a bottom view of FIG. 4. FIG.
7 is a block diagram illustrating a configuration example of the electric circuit of FIG. 1. FIG.
FIG. 8 shows an example of use of the personal computer 1.
FIG. 9 is a diagram illustrating the specification of a two-dimensional code.
FIG. 10 is another diagram for explaining the specification of the two-dimensional code.
FIG. 11 is another diagram illustrating the specification of a two-dimensional code.
FIG. 12 is a diagram illustrating an example of a two-dimensional code.
FIG. 13 is a flowchart illustrating a two-dimensional code recognition process.
FIG. 14 is a diagram illustrating threshold setting.
FIG. 15 is a diagram illustrating labeling of a black pixel connection region.
FIG. 16 is a flowchart illustrating a logo mark cell part detection process.
FIG. 17 is a diagram for explaining how to obtain side AT and side BT.
FIG. 18 is a diagram illustrating a code part detection process.
FIG. 19 is a flowchart illustrating a code pattern verification process.
FIG. 20 is a flowchart illustrating a process for recognizing a plurality of two-dimensional codes.
FIG. 21 is a flowchart illustrating another process when recognizing a plurality of two-dimensional codes.
FIG. 22 is a diagram illustrating an object in which a plurality of two-dimensional codes are arranged.
FIG. 23 is a diagram illustrating an example of a conventional one-dimensional barcode.
FIG. 24 is a diagram illustrating an example of a conventional two-dimensional code.
[Explanation of symbols]
1 personal computer, 3 display unit, 21 LCD, 23 CCD video camera, 52 CPU, 56 HDD, 81 graphic chip, 83 LCD controller, 100 object, 101 two-dimensional code

Claims (7)

複数のセルが所定の配列規則に従って2次元配置された2次元コードを認識する2次元コード認識処理方法において、
前記2次元コードを撮像した結果得られる画像情報から、前記2次元コードに割り当てられたコードデータを認識する認識処理ステップと、
前記認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理ステップと
を含み、
前記認識処理ステップは、
前記画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記2次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記セル検出処理ステップの処理で検出された前記2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、
前記基本となるセルによって一意に定まる範囲を、前記2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記変換ステップの処理で変換された範囲に存在する前記2次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップと
を含むことを特徴とする2次元コード認識処理方法。
In a two-dimensional code recognition processing method for recognizing a two-dimensional code in which a plurality of cells are two-dimensionally arranged according to a predetermined arrangement rule,
A recognition processing step for recognizing code data assigned to the two-dimensional code from image information obtained as a result of imaging the two-dimensional code;
When a plurality of pieces of code data are sequentially recognized by the recognition processing step at intervals, or when a plurality of pieces of code data are recognized from the same image information, the plurality of pieces of code data are connected and expanded. Concatenation processing step to generate code data
Including
The recognition processing step includes
A binarization processing step for generating binarized data from the image information based on a predetermined threshold;
A cell detection processing step for detecting a reference cell for recognizing the two-dimensional code based on the binarized data generated in the binarization processing step;
Based on the binarized data generated in the binarization processing step, a predetermined cell corresponding to a reference cell for recognizing the two-dimensional code detected in the cell detection processing step A basic cell determination step for determining a cell that is a base for specifying a region of the two-dimensional code existing in a search range;
A conversion step of converting a range uniquely determined by the basic cell into a range obtained when the area of the two-dimensional code is imaged facing the imaging surface;
Code data detection for detecting code data allocated to the two-dimensional code existing in the range converted by the conversion step based on the binarized data generated by the binarization step A two-dimensional code recognition processing method comprising: processing steps .
前記連結処理ステップは、
前記認識処理ステップの処理で認識された複数のコードデータが、互いに関連するコードデータであるか否かを判断する第1のステップと、
前記第1のステップの処理で、複数のコードデータが互いに関連するコードデータであると判断された場合、これら複数のコードデータを連結する第2のステップと
を含むことを特徴とする請求項1に記載の2次元コード認識処理方法。
The connection processing step includes:
A first step of determining whether or not the plurality of code data recognized in the processing of the recognition processing step is code data related to each other;
2. The method according to claim 1, further comprising: a second step of concatenating the plurality of code data when the plurality of code data is determined to be associated with each other in the processing of the first step. The two-dimensional code recognition processing method described in 1.
前記認識処理ステップは、前記画像情報から、前記2次元コードに割り当てられたコードデータと、前記2次元コードの配置情報を認識し、
前記連結処理ステップは、前記認識処理ステップの処理で認識された配置情報に基づいて、複数のコードデータの優先順位を決定し、決定した優先順位に基づいて複数のコードデータを連結する
ことを特徴とする請求項1に記載の2次元コード認識処理方法。
The recognition processing step, from the image information, recognizes the code data assigned to the two-dimensional code, the arrangement information of the two-dimensional code,
The concatenation processing step determines priority of a plurality of code data based on the arrangement information recognized in the processing of the recognition processing step , and concatenates the plurality of code data based on the determined priority. The two-dimensional code recognition processing method according to claim 1.
前記2次元コードを認識する上で基準となるセルは、所定の縦横比の矩形状の黒色画素連結領域内に前記2次元コードに関連する白抜きの可読情報を含んで構成され、
前記セル検出処理ステップは、前記可読情報を含む所定の縦横比の矩形状の前記2次元コードを認識する上で基準となるセルを検出する
ことを特徴とする請求項に記載の2次元コード認識処理方法。
The reference cell for recognizing the two-dimensional code is configured to include white readable information related to the two-dimensional code in a rectangular black pixel connection region having a predetermined aspect ratio,
2. The two-dimensional code according to claim 1 , wherein the cell detection processing step detects a reference cell for recognizing the rectangular two-dimensional code having a predetermined aspect ratio including the readable information. Recognition processing method.
前記可読情報は、前記2次元コードのコード体系に付されたロゴマークである
ことを特徴とする請求項に記載の2次元コード認識処理方法。
The two-dimensional code recognition processing method according to claim 4 , wherein the readable information is a logo mark attached to a code system of the two-dimensional code.
複数のセルが所定の配列規則に従って2次元配置された2次元コードを認識する2次元コード認識処理装置において、
前記2次元コードを撮像した結果得られる画像情報から、前記2次元コードに割り当てられたコードデータを認識する認識処理手段と、
前記認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場 合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理手段と
を備え、
前記認識処理手段は、
前記画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記2次元コードを認識する上で基準となるセルを検出するセル検出処理手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記セル検出処理手段により検出された前記2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定手段と、
前記基本となるセルによって一意に定まる範囲を、前記2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記変換手段により変換された範囲に存在する前記2次元コードに割り当てられたコードデータを検出するコードデータ検出処理手段と
を含むことを特徴とする2次元コード認識処理装置。
In a two-dimensional code recognition processing device for recognizing a two-dimensional code in which a plurality of cells are two-dimensionally arranged according to a predetermined arrangement rule,
Recognition processing means for recognizing code data assigned to the two-dimensional code from image information obtained as a result of imaging the two-dimensional code;
By said recognition processing step, sequential plurality of code data recognized if at a time, or, if a plurality of code data are recognized from the same image information, by connecting a plurality of code data, is extended A link processing means for generating code data
With
The recognition processing means includes
Binarization processing means for generating binarized data from the image information based on a predetermined threshold;
Cell detection processing means for detecting a reference cell for recognizing the two-dimensional code based on the binarized data generated by the binarization processing means;
Based on the binarized data generated by the binarization processing means, within a predetermined search range corresponding to a reference cell for recognizing the two-dimensional code detected by the cell detection processing means. A basic cell determination means for determining a basic cell for specifying an area of the two-dimensional code that exists;
Conversion means for converting a range uniquely determined by the basic cell into a range obtained when the region of the two-dimensional code is imaged facing the imaging surface;
Code data detection processing means for detecting code data assigned to the two-dimensional code existing in the range converted by the conversion means based on the binarized data generated by the binarization processing means ; A two-dimensional code recognition processing device comprising:
複数のセルが所定の配列規則に従って2次元配置された2次元コードを認識するプログラムを格納する次元コード認識処理装置を制御するコンピュータに実行させるプログラムを格納する2次元コード認識処理プログラム格納媒体において、
前記2次元コードを撮像した結果得られる画像情報から、前記2次元コードに割り当てられたコードデータを認識する認識処理ステップと、
前記認識処理ステップによって、時間を隔てて順次複数のコードデータが認識された場合、もしくは、同一画像情報から複数のコードデータが認識された場合、これら複数のコードデータを連結して、拡張されたコードデータを生成する連結処理ステップと
を含み、
前記認識処理ステップは、
前記画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記2次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記セル検出処理ステップの処理で検出された前記2次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記2次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、
前記基本となるセルによって一意に定まる範囲を、前記2次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記変換ステップの処理で変換された範囲に存在する前記2次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップと
を含むことを特徴とする2次元コード認識処理プログラムをコンピュータに実行させる2次元コード認識処理プログラム格納媒体。
In a two-dimensional code recognition processing program storage medium for storing a program to be executed by a computer that controls a dimensional code recognition processing device that stores a program for recognizing a two-dimensional code in which a plurality of cells are two-dimensionally arranged according to a predetermined arrangement rule.
A recognition processing step for recognizing code data assigned to the two-dimensional code from image information obtained as a result of imaging the two-dimensional code;
When a plurality of pieces of code data are sequentially recognized by the recognition processing step at intervals, or when a plurality of pieces of code data are recognized from the same image information, the plurality of pieces of code data are connected and expanded. Concatenation processing step to generate code data
Including
The recognition processing step includes
A binarization processing step for generating binarized data from the image information based on a predetermined threshold;
A cell detection processing step for detecting a reference cell for recognizing the two-dimensional code based on the binarized data generated in the binarization processing step;
Based on the binarized data generated in the binarization processing step, a predetermined cell corresponding to a reference cell for recognizing the two-dimensional code detected in the cell detection processing step A basic cell determination step for determining a cell that is a base for specifying a region of the two-dimensional code existing in a search range;
A conversion step of converting a range uniquely determined by the basic cell into a range obtained when the area of the two-dimensional code is imaged facing the imaging surface;
Code data detection for detecting code data allocated to the two-dimensional code existing in the range converted by the conversion step based on the binarized data generated by the binarization step A two-dimensional code recognition processing program storage medium for causing a computer to execute a two-dimensional code recognition processing program characterized by comprising processing steps .
JP24519499A 1998-08-31 1999-08-31 Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium Expired - Fee Related JP3786167B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP24519499A JP3786167B2 (en) 1998-08-31 1999-08-31 Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP24585798 1998-08-31
JP10-245857 1998-08-31
JP24519499A JP3786167B2 (en) 1998-08-31 1999-08-31 Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium

Publications (2)

Publication Number Publication Date
JP2000148904A JP2000148904A (en) 2000-05-30
JP3786167B2 true JP3786167B2 (en) 2006-06-14

Family

ID=26537097

Family Applications (1)

Application Number Title Priority Date Filing Date
JP24519499A Expired - Fee Related JP3786167B2 (en) 1998-08-31 1999-08-31 Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium

Country Status (1)

Country Link
JP (1) JP3786167B2 (en)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004090801A1 (en) 2003-04-08 2004-10-21 Nippon Telegraph And Telephone Corporation Information coding device, information decoding device, and method thereof, and program
EP1868137B1 (en) 2005-03-18 2011-06-29 Fujitsu Ltd. Code image processing method
JP2007156879A (en) * 2005-12-06 2007-06-21 Sony Corp Information processor and information processing method, and program
EP1818849A3 (en) 2006-02-07 2008-01-02 Murata Kikai Kabushiki Kaisha Image forming device
JP5898842B2 (en) 2010-01-14 2016-04-06 任天堂株式会社 Portable information processing device, portable game device
EP2355526A3 (en) 2010-01-14 2012-10-31 Nintendo Co., Ltd. Computer-readable storage medium having stored therein display control program, display control apparatus, display control system, and display control method
JP5800501B2 (en) 2010-03-12 2015-10-28 任天堂株式会社 Display control program, display control apparatus, display control system, and display control method
US8384770B2 (en) 2010-06-02 2013-02-26 Nintendo Co., Ltd. Image display system, image display apparatus, and image display method
US8633947B2 (en) 2010-06-02 2014-01-21 Nintendo Co., Ltd. Computer-readable storage medium having stored therein information processing program, information processing apparatus, information processing system, and information processing method
EP2395769B1 (en) 2010-06-11 2015-03-04 Nintendo Co., Ltd. Image display program, image display system, and image display method
JP5647819B2 (en) 2010-06-11 2015-01-07 任天堂株式会社 Portable electronic devices
JP5739674B2 (en) 2010-09-27 2015-06-24 任天堂株式会社 Information processing program, information processing apparatus, information processing system, and information processing method
US8854356B2 (en) 2010-09-28 2014-10-07 Nintendo Co., Ltd. Storage medium having stored therein image processing program, image processing apparatus, image processing system, and image processing method
JP5825110B2 (en) * 2012-01-17 2015-12-02 株式会社デンソーウェーブ Two-dimensional code reader
JP6075180B2 (en) 2013-04-18 2017-02-08 オムロン株式会社 Work management system and work management method
JP6156441B2 (en) * 2015-05-14 2017-07-05 オムロン株式会社 Work management system and work management method
CN111178109A (en) * 2019-11-28 2020-05-19 北京爱创科技股份有限公司 Device and method for detecting packaging association relation and packaging box

Also Published As

Publication number Publication date
JP2000148904A (en) 2000-05-30

Similar Documents

Publication Publication Date Title
JP3794463B2 (en) Multidimensional code recognition processing method, multidimensional code recognition processing apparatus, and multidimensional code recognition processing program
JP3786167B2 (en) Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium
EP0969403B1 (en) Two-dimensional code recognition processing method and apparatus, and storage medium
EP0984385B1 (en) Two-dimensional code recognition processing
JP4674644B2 (en) Image processing apparatus, image processing method, and image processing program medium
US7447362B2 (en) System and method of enabling a cellular/wireless device with imaging capabilities to decode printed alphanumeric characters
JP4095243B2 (en) A storage medium storing a URL acquisition and processing system and method and a program for executing the method.
KR101860569B1 (en) Recognition device for text and barcode reconizing text and barcode simultaneously
US8308069B2 (en) User configurable search methods for an area imaging indicia reader
US20090017765A1 (en) System and Method of Enabling a Cellular/Wireless Device with Imaging Capabilities to Decode Printed Alphanumeric Characters
EP1496455A1 (en) An information processing apparatus and method
JPH1093817A (en) Document picture matching method, medium capable of computer reading and document picture matching device
JP2004094353A (en) Identity discrimination system based on reading of pda/portable telephone picture multiple one-dimensional bar code
JP2007034625A (en) Information display device
US7552863B2 (en) Method for updating indicia readers
EP2608104A1 (en) Image processing device, image processing method, and image processing program
JP2003169187A (en) Information processing terminal
JP4352287B2 (en) Image processing apparatus, image processing method, and image processing program medium
JP2000148797A (en) Image processor and method for image processing and image processing program storage medium
JP2000207487A (en) Device and method for information processing and providing medium
US20140239072A1 (en) Automatically Converting a Sign and Method for Automatically Reading a Sign
JP3723948B2 (en) Mobile phone with camera, barcode reading method, and program
JP4566297B2 (en) Information processing apparatus, image processing method, and recording medium
JP2012238097A (en) Two-dimensional code, image reader, image reading method, program, and storage medium
JP4019510B2 (en) Information processing apparatus and method, information processing system, and recording medium

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050812

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: 20060301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060314

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100331

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110331

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120331

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130331

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees