JP3794463B2 - 多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラム - Google Patents
多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラムInfo
- Publication number
- JP3794463B2 JP3794463B2 JP18627699A JP18627699A JP3794463B2 JP 3794463 B2 JP3794463 B2 JP 3794463B2 JP 18627699 A JP18627699 A JP 18627699A JP 18627699 A JP18627699 A JP 18627699A JP 3794463 B2 JP3794463 B2 JP 3794463B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- multidimensional code
- cell
- multidimensional
- processing step
- 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 - Lifetime
Links
Images
Description
【発明の属する技術分野】
本発明は、多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラムに関し、特に、撮像された2次元コードの画像データから、効率よくかつ正確にコードデータを認識することができるようにした多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラムに関する。
【0002】
【従来の技術】
従来から、物品の種類や状態などを示す英数文字をバーコード化し、例えば、物品に貼付しておき、その貼付されたバーコードを読み取って、物品の種類や状態などの情報を取得するバーコードシステムが、多くの産業分野に普及している。
【0003】
この種のバーコードにおいて、特に1次元バーコードと呼ばれるものの一例を示せば、図20の通りである。この図において、1次元バーコード500は、太さの異なるバー(黒色の棒状部分)と、スペース(空白部分)の組み合わせからなるコード部501と、このコード部501にコード化されているコードを示すID(識別番号)部502とから構成されている。そして、ID部502には、コード部501にコード化されている英数文字が可読情報として表示されている。このような1次元バーコード500が、バーコードスキャナと呼ばれる光学的認識装置によって読み取られるようになっている。
【0004】
【発明が解決しようとする課題】
ところで、上述した1次元バーコード500を読み取る1つの方法として、CCDビデオカメラにより読み取る方法が挙げられるが、例えば、コード化される情報量の増大に伴って、バーの配列が長くなると、CCDビデオカメラによる1次元バーコード500の読み取りが困難になる。
【0005】
そこで、コード化される情報が多くなった場合においても、ビデオカメラによる読み取りを可能にするために、1次元バーコード500のバーに代えて、図21に示すような複数の黒色の方形セルが所定の配列規則に従って2次元配置されたコード部601と、コード部601にコード化されているコードを示すID部602とから構成される2次元コード600が種々提案されている。
【0006】
これによれば、情報が2次元的にコード化されることより、より多くの情報量をコード化することができ、1次元バーコード500に比べ、より多くの情報がコード化されていても、ビデオカメラによる読み取りが可能となる。
【0007】
しかしながら、2次元コード600は、ビデオカメラによって撮像された画像データから2次元コード600を認識する際に、ゴミ、汚れ、その他の2次元コード600以外の画像との識別が困難となり、正確にコードデータを認識することができないという課題があった。
【0008】
また、上述した2次元コード600においては、1次元バーコード500と同様に、そのID部602に、コード化されたコードが人間によって判読可能な英数字等によって表示されてはいるものの、その2次元コード600が、一体何を示すコードなのか、さらには、一体どのようなコード体系で、どのような配列規則に従って方形セルが2次元配置されているのかについて、識別することができなかった。
【0009】
本発明はこのような状況に鑑みてなされたものであり、2次元コードの画像データから、コードデータを効率よくかつ正確に認識することができるようにするものである。
【0010】
【発明を解決するための手段】
請求項1の多次元コード認識処理方法は、多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、多次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、セル検出処理ステップの処理で検出された多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、基本となるセルによって一意に定まる範囲を、多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、変換ステップの処理で変換された範囲に存在する多次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップとを含むことを特徴とする。
【0011】
請求項10に記載の多次元コード認識処理装置は、多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理手段と、2値化処理手段により生成された2値化データに基づいて、多次元コードを認識する上で基準となるセルを検出するセル検出処理手段と、2値化処理手段により生成された2値化データに基づいて、セル検出処理手段により検出された多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定手段と、基本となるセルによって一意に定まる範囲を、多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換手段と、2値化処理手段により生成された2値化データに基づいて、変換手段により変換された範囲に存在する多次元コードに割り当てられたコードデータを検出するコードデータ検出処理手段とを備えることを特徴とする。
【0012】
請求項11に記載の多次元コード認識処理プログラムは、多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、多次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、セル検出処理ステップの処理で検出された多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、基本となるセルによって一意に定まる範囲を、多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、2値化処理ステップの処理で生成された2値化データに基づいて、変換ステップの処理で変換された範囲に存在する多次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップとを含むことを特徴とする。
【0013】
請求項1の記載の多次元コード認識処理方法、請求項10に記載の多次元コード認識装置、および請求項11に記載の多次元コード認識処理プログラムにおいては、多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データが生成され、生成された2値化データに基づいて、多次元コードを認識する上で基準となるセルが検出され、生成された2値化データに基づいて、検出された多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、多次元コードの領域を特定するのに基本となるセルが決定され、基本となるセルによって一意に定まる範囲が、多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換され、生成された2値化データに基づいて、変換された範囲内に存在する多次元コードに割り当てられたコードデータが検出される。
【0014】
【発明の実施の形態】
以下に本発明の実施の形態を説明する。
【0015】
図1は、本発明を適用したパーソナルコンピュータ1の使用例を表している。オブジェクト100は、例えば、名刺状のカードで、2次元コード101が貼付(印刷を含む)されている。
【0016】
2次元コード101は、図2に示すように、複数の正方形状のセル(黒色の部分)が所定の配列規則に従って2次元的に配置されており、このセルの配列パターンにより、所定の英数文字、例えば、この例の場合、数字200がコード化されている。
【0017】
以下に、2次元コード101の詳細を説明する。2次元コード101は、ロゴマーク部201とコード部202から構成されており、これらロゴマーク部201とコード部202の全体は、1個の正方形状のセルの矩形領域を1ブロックと表現すると、7ブロック分の長さのX軸方向の辺と、9.5ブロック分の長さのY軸方向の辺で形成される領域(以下、このような領域を7×9.5ブロック領域と記述する。他の場合においても同様である)内に配置されている。
【0018】
ロゴマーク部201は、図3に示すように、ロゴマークセル部301およびノンセル部302から構成されている。そして、7×1.5ブロック領域の長方形状のセルであるロゴマークセル部301には、ロゴマーク、文字、または数字など、2次元コードに関連する白抜きの可読文字情報が印刷により表示されている。ここで、例えば、ロゴマークとしては、2次元コード101のコード体系に付された「CyberCode」など、2次元コード101が何を意味するコードなのかを、人間が判読可能なマークとして、白抜き文字で表示される。
【0019】
また、ロゴマークに限らず、2次元コード101のコード体系を開発した本出願人の会社名を表示したり、2次元コード101のコード体系に関連する情報資源の格納場所を示すURL(Uniform Resource Locator)などを表示するようにしても構わない。なお、URLとは、インターネット上に分散しているファイルなどの情報資源の格納場所を一意に指定するための表記方法である。
【0020】
以上のように、長方形状のロゴマークセル部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のファインダーを通して、プログラムが起動されることにより、あたかも「サイバーコード」が貼られたものから、対応する情報がコンピューター上に飛び出してくるという新しいインターフェースを提供します。」
【0021】
次に、図3に示すように、ロゴマークセル部301の、コード部202側の7×1ブロック領域には、セルが存在しないノンセル部302が存在する。なお、ロゴマークセル部301の長軸(図2のX軸方向の軸)を辺A、および短軸(図2のY軸方向の軸)を辺Bとする。
【0022】
コード部202には、図4に示すように、ロゴマークセル部301を下方向に位置させたとき、ロゴマークセル部301の左端から7ブロック分上方向に位置する左上コーナーセル、およびロゴマークセル部301の右端から7ブロック分上方向に位置する右上コーナーセルが存在する。また、ロゴマークセル部301の左端から1ブロック分上方向に位置する左下コーナーセル、およびロゴマークセル部301の右端から1ブロック分上方向に位置する右下コーナーセルが存在する。なお、左上コーナーセル、右上コーナーセル、左下コーナーセル、および右下コーナーセルを特に区別する必要がない場合、これらをまとめてコーナーセルと称する。
【0023】
コーナーセルの周囲の隣接する3ブロック分の領域には、セルが存在しない。つまり、ロゴマークセル部301に対して、上述したような位置に存在し、周り3ブロック領域にセルが存在しないようなセルはコーナーセルとされる。
【0024】
コード部202は、実際は、1ブロックを1ビットとすると、49ビット(7ブロック×7ブロック=49ブロック)分の情報をコード化することができるが、上述したように、コーナーセル(1ブロック)およびコーナーセルの周り3ブロックは、データを構成しない。すなわち、合計16ブロックは、データを構成しない。また、残り33ブロック(33ビット)中、9ブロック(9ビット)は、コードデータが、正しいコードデータであることを確かめるためのチェックデータを構成する。従って、コード部202には、24ビット分の情報がコード化されている。
【0025】
図5は、上述した2次元コード101の具体例を表している。図5(A)の2次元コード101のコード部202には、識別番号200、201、202、203、1500、1501、1502、そして1503がコード化されたコードパターンが印刷されている。また、ロゴマークセル部301の下方の、ID部203には、コード化された識別番号に対応する数字が印刷されている。
【0026】
また、図5(B)に示す具体例では、2次元コード101のロゴマークセル部301に、ロゴマークが白抜き文字で印刷されている。また、図5(C)に示す具体例では、2次元コード101のID部203の識別番号に対応する数字が省略されている。さらに、図5(D)に示す具体例では、ロゴマークセル部301に識別番号に対応する数字が白抜き文字で印刷されており、ID部203にロゴマークが黒文字で印刷されている。これら図5(A)乃至図5(D)に表されている2次元コード101のコード部202は、全て同一の仕様により作成されている。
【0027】
ここで、上述したロゴマークセル部301は、所定の縦横比の矩形状の領域によって構成され、後述するように、複数の黒色画素が連結してなる黒色画素連結領域を含んで構成されている。さらに、ロゴマークセル部301内には、2次元コード101に関連する白抜きの可読情報を含んで構成されている。そして、2次元コード1101の認識処理を開始する初期段階で、予め規定された所定の縦横比の矩形状のロゴマークセル部301を検出することで、このロゴマークセル部301を基準として、所定の探索範囲内に存在するその他のセルの検出処理へと認識処理を進めることが可能となる。したがって、上述したロゴマークセル部301は、単に、2次元コード101の意味合いを可読なロゴマークという形態で表示するという目的のためだけに設けているのではなく、2次元コード101の認識処理を進める上での基準を示す機能も兼ね備えている。
【0028】
このように、ロゴマークセル部301には、基準を示す機能に加えて、図5(B)乃至図5(D)に示すように、ロゴマークや文字などを表示する機能を付与しているので、最小限の占有面積で、認識処理の基準に必要な情報と、可読情報とを同時に提示することが可能となっている。
【0029】
図1に戻り、パーソナルコンピュータ1は、例えば、オブジェクト100と2次元コード101を、CCDビデオカメラ23により撮像することができ、また、その結果得られた2次元コード101のコードデータを認識するようになされている。
【0030】
図6乃至図11は、本発明を適用した携帯型パーソナルコンピュータの構成例を表している。このパーソナルコンピュータ1は、ミニノート型のパーソナルコンピュータとされ、基本的に、本体2と、本体2に対して開閉自在とされている表示部3により構成されている。図6は、表示部3を本体2に対して開いた状態を示す外観斜視図、図7は、図6の平面図、図8は、表示部3を本体2に対して閉塞した状態を示す左側側面図、図9は、表示部3を本体2に対して180度開いた状態を示す右側側面図、図10は、図8の正面図、図11は、図9の底面図である。
【0031】
本体2には、各種の文字や記号などを入力するとき操作されるキーボード4、マウスカーソルを移動させるときなどに操作されるスティック式ポインティングデバイス5が、その上面に設けられている。また、本体2の上面には、音を出力するスピーカ8と、表示部3に設けられているCCDビデオカメラ23で撮像するとき操作されるシャッタボタン10がさらに設けられている。
【0032】
表示部3の上端部には、ツメ13が設けられており、図8に示すように、表示部3を本体2に対して閉塞した状態において、ツメ13に対向する位置における本体2には、ツメ13が嵌合する孔部6が設けられている。本体2の前面には、スライドレバー7が前面に平行に移動可能に設けられており、スライドレバー7は孔部6に嵌合したツメ13と係合してロックし、またロック解除することができるようになっている。ロックを解除することにより、表示部3を本体2に対して回動することができる。ツメ13の隣りには、マイクロホン24が取り付けられている。このマイクロホン24は、図11にも示すように、背面からの音も収音できるようになされている。
【0033】
本体2の正面にはまた、プログラマブルパワーキー(PPK)9が設けられている。本体2の右側面には、図9に示すように、排気孔11が設けられており、本体2の前面下部には、図10に示すように、吸気孔14が設けられている。さらに、排気孔11の右側には、PCMCIA(Personal Computer Memory Card International Association)カード(PCカード)を挿入するためのスロット12が設けられている。
【0034】
表示部3の正面には、画像を表示するLCD(Liquid Crystal Display)21が設けられており、その上端部には、撮像部22が、表示部3に対して回動自在に設けられている。すなわち、この撮像部22は、LCD21と同一の方向と、その逆の方向(背面の方向)との間の180度の範囲の任意の位置に回動することができるようになされている。撮像部22には、CCDビデオカメラ23が取り付けられている。
【0035】
表示部3の下側の本体側には、電源ランプPL、電池ランプBL、メッセージランプML、その他のLEDよりなるランプが設けられている。なお、図8に示す符号40は、本体2の左側面に設けられた電源スイッチであり、図10に示す符号25は、CCDビデオカメラ23のフォーカスを調整する調整リングである。さらに、図11に示す符号26は、本体2内に増設メモリを取り付けるための開口部を被覆する蓋であり、符号41は、蓋26のロックツメを外すためのピンを挿入する小孔である。
【0036】
図12は、パーソナルコンピュータ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等が接続されている。
【0037】
CPU52は、各機能を統括するコントローラであり、PCカード53は、オプションの機能を付加するとき適宜装着される。
【0038】
グラフィックチップ81には、CCDビデオカメラ23で取り込んだ画像データが、処理部82で処理された後、入力されるようになされている。グラフィックチップ81は、処理部82を介してCCDビデオカメラ23より入力されたビデオデータを、内蔵するVRAM81Aに記憶し、適宜、これを読み出して、LCDコントローラ83に出力する。LCDコントローラ83は、グラフィックチップ81より供給された画像データをLCD21に出力し、表示させる。バックライト84は、LCD21を後方から照明するようになされている。
【0039】
RAM54の中には、起動が完了した時点において、電子メールプログラム(アプリケーションプログラム)54A、オートパイロットプログラム(アプリケーションプログラム)54B、そしてOS(基本プログラム)54CがHDD56から転送され、記憶される。
【0040】
電子メールプログラム54Aは、電話回線のような通信回線等からネットワーク経由で通信文を授受するプログラムである。電子メールプログラム54Aは、特定機能としての着信メール取得機能を有している。この着信メール取得機能は、メールサーバ93に対してそのメールボックス93A内に自分(利用者)宛のメールが着信しているかどうかを確認して、自分宛のメールがあれば取得する処理を実行する。
【0041】
オートパイロットプログラム54Bは、予め設定された複数の処理(またはプログラム)等を、予め設定された順序で順次起動して、処理するプログラムである。
【0042】
OS(基本プログラムソフトウェア)54Cは、Windows95やWindows98(商標)に代表される、コンピュータの基本的な動作を制御するものである。
【0043】
一方、外部バス55側のハードディスクドライブ(HDD)56には、電子メールプログラム56A、オートパイロットプログラム56B、OS(基本プログラムソフトウェア)56C、および2次元コード認識プログラム56Dが記憶されている。
【0044】
2次元コード認識プログラムは、グラフィックチップ81のVRAM81Aに記憶される画像データから、2次元コードのロゴマーク部201のロゴマークセル部301およびコード部202を検出し、そしてコード部202のコードデータを認識することで、コード化された所定の情報を読み取るプログラムである。
【0045】
I/Oコントローラ57は、マイクロコントローラ61を有し、このマイクロコントローラ61にはI/Oインタフェース62が設けられている。このマイクロコントローラ61はI/Oインタフェース62、CPU63、RAM64、ROM69が相互に接続されて構成されている。このRAM64は、キー入力ステイタスレジスタ65、LED(発光ダイオード)制御レジスタ66、設定時刻レジスタ67、レジスタ68を有している。設定時刻レジスタ67は、ユーザが予め設定した時刻(起動条件)になると起動シーケンス制御部76の動作を開始させる際に利用される。レジスタ68は、予め設定された操作キーの組み合わせ(起動条件)と、起動すべきアプリケーションプログラムの対応を記憶するもので、その記憶された操作キーの組み合わせがユーザにより入力されると、その記憶されたアプリケーションプログラム(例えば電子メール)が起動されることになる。
【0046】
キー入力ステイタスレジスタ65は、ワンタッチ操作用のプログラマブルパワーキー(PPK)9が押されると、操作キーフラグが格納されるようになっている。LED制御レジスタ66は、レジスタ68に記憶されたアプリケーションプログラム(電子メール)の立上げ状態を表示するメッセージランプMLの点灯を制御するものである。設定時刻レジスタ67は、所定の時刻を任意に設定することができるものである。
【0047】
なお、このマイクロコントローラ61にはバックアップ用のバッテリ74が接続されており、各レジスタ65,66,67の値は、本体2の電源がオフとされている状態においても保持されるようになっている。
【0048】
マイクロコントローラ61内のROM69の中には、ウェイクアッププログラム70、キー入力監視プログラム71、LED制御プログラム72が予め格納されている。このROM69は、例えばEEPROM(electrically erasable and programmable read only memory)で構成されている。このEEPROMはフラッシュメモリとも呼ばれている。さらにマイクロコントローラ61には、常時現在時刻をカウントするRTC(Real-Time Clock)75が接続されている。
【0049】
ROM69の中のウェイクアッププログラム70は、RTC75から供給される現在時刻データに基づいて、設定時刻レジスタ67に予め設定された時刻になったかどうかをチェックして、設定された時刻になると、所定の処理(またはプログラム)等の起動をするプログラムである。キー入力監視プログラム71は、PPK9が利用者により押されたかどうかを常時監視するプログラムである。LED制御プログラム72は、メッセージランプMLの点灯を制御するプログラムである。
【0050】
ROM69には、さらにBIOS(Basic Input/Output System)73が書き込まれている。このBIOSとは、基本入出力システムのことをいい、OSやアプリケーションソフトウェアと周辺機器(ディスプレイ、キーボード、ハードディスクドライブ等)の間でのデータの受け渡し(入出力)を制御するソフトウェアプログラムである。
【0051】
外部バス55に接続されているキーボードコントローラ58は、キーボード4からの入力をコントロールする。スティック式ポインティングデバイスコントローラ59はスティック式ポインティングデバイス5の入力を制御する。
【0052】
サウンドチップ60は、マイクロホン24からの入力を取り込み、あるいは内蔵スピーカ8に対して音声信号を供給する。
【0053】
モデム50は、公衆電話回線90、インターネットサービスプロバイダ91を介して、インターネット等の通信ネットワーク92やメールサーバ93等に接続することができる。
【0054】
電源スイッチ40は、電源をオンまたはオフするとき操作される。半押しスイッチ85は、シャッタボタン10が半押し状態にされたときオンされ、全押しスイッチ86は、シャッタボタン10が全押し状態にされたときオンされる。反転スイッチ87は、撮像部22が180度回転されたとき(CCDビデオカメラ23がLCD21の反対側を撮像する方向に回転されたとき)、オンされるようになされている。
【0055】
次に、2次元コード認識処理の処理手順を、図13のフローチャートを参照して説明する。
【0056】
2次元コード101がCCDビデオカメラ23により撮像され、その結果得られた1フレーム分の画像データが、処理部82により処理され、グラフィックチップ81のVRAM81Aに記憶されている状態において、HDD56に記憶されている2次元コード認識プログラム56Dが起動されると、ステップS1において、CPU52は、所定の輝度値を示す閾値の設定をカウントするカウンタiの値に1を初期設定する。この例の場合、図14に示すように、閾値が、5段階に設定されている。設定番号1に示される閾値Aの値が、最も大きい値に設定され、設定番号5に示される閾値Eに向かって、段階的に値が小さくなるように設定されている。
【0057】
ステップS2において、CPU52は、カウンタiの値に対応する設定番号の閾値に基づいて、VRAM81Aに記憶されている画像データに対して2値化処理を行う。ここで、閾値より大きい輝度を保持する画素の画素値は、”0”に符号化され、表示上、その画素は白色とされる。以下においては、このように、画素値が”0”に符号化された画素を、白色画素と称する。
【0058】
一方、閾値以下の輝度値を保持する画素の画素値は、”1”に符号化され、表示上、その画素は黒色とされる。以下においては、このように、画素値が”1”に符号化された画素を、黒色画素と称する。
【0059】
次に、ステップS3において、CPU52は、図15に示すように、黒色画素が連結する領域を1つの領域として、左上から右下に向かって番号を設定(ラベリング)する。
【0060】
ステップS4において、CPU52は、ステップS3でラベリングした黒色画素連結領域の総数Mを求め、求めた黒色画素連結領域の総数Mが257個以上であるか否かを判定し、総数Mが257個以上であると判定した場合、すなわち、現在、VRAM81Aに記憶されている画像フレームが、以降の処理を実行するのに適さない画像であると判定した場合、ステップS5に進む。ここで、以降の処理を実行するのに適さない画像とは、いわゆるディザ状の画像と呼ばれる砂粒のような点を多量に含む画像であり、このようなディザ状の画像に対して無理に認識処理を進めようとすると、演算処理に要するCPUの負荷が大となってしまう。そこで、このようなディザ状の画像の場合は、そのまま認識処理を進めずに、ステップS5へ進むようにしてある。
【0061】
ステップS5において、CPU52は、カウンタiの値が、閾値の設定数N(=5)と等しい(i=5)か否かを判定し、i=5ではないと判定した場合、ステップS6において、カウンタiの値を1だけ増加した後、ステップS2に戻る。ステップS2において、CPU52は、1つだけ増加されたカウンタiの値に対応する設定番号の閾値に基づいて、VRAM81Aに記憶されている画像データに対して、再度、2値化処理を実行する。
【0062】
上述したように、設定番号1で示される閾値Aは、最も値が大きい閾値であり、すなわち、この最も大きい値が2値化処理の閾値とされると、画像データの多くの画素の輝度が、閾値Aよりも相対的に小さい値となり、その結果多くの画素が黒色画素と認識され、これにより、黒色画素連結領域の総数Mも多くなる。そこで、ステップS5で、カウンタiの値が1つ増加され、1段階小さい値の閾値が、次の2値化処理の閾値とされると、黒色画素として認識される画素が少なくなる。
【0063】
このように、最初に、より大きい閾値で、大きい輝度値を基準として2値化処理を行うことより、フレーム全体が比較的明るい画像に適する2値化処理を実行することができ、さらに、閾値を段階的に小さくし、より小さい輝度値を基準として2値化処理を行うことにより、フレーム全体が比較的暗い画像に適する2値化処理を実行することができる。このように、閾値を5段階に分け、この閾値を段階的に変更することによって、画像フレーム全体に明るさの変動があった場合であっても、常に精度の高い2値化データを生成することができるようになっている。
【0064】
ステップS5において、CPU52は、i=5であると判定した場合、すなわち、閾値A乃至Eのいずれの閾値によっても、適当な総数Mの黒色画素連結領域が生成されない場合、この1フレーム分の画素データには、2次元コード101が存在しないものと判定した場合、処理が終了される。
【0065】
ステップS4において、CPU52は、黒色画素連結領域の総数Mが257個より少ないと判定した場合、ステップS7に進む。
【0066】
ステップS7において、CPU52は、以前に実行された2次元コード認識処理により認識された2次元コード101のLCD21の表示上の位置、例えば、ロゴマークセル部301の中央点が、RAM54などに記憶されているか否かを判定し、それが記憶されている場合、ステップS8に進み、記憶されている点をロゴマークセル部検出処理の開始点に設定する。ステップS7で、2次元コード101の位置が記憶されていないと判定した場合、ステップS9に進み、CPU52は、320×240画素のLCD21の表示上の中心点(例えば、X軸方向に160番目であり、Y軸方向に120番目の画素)を開始点に設定する。このようにすることより、ロゴマークセル部301を効率的に検出することができる。
【0067】
次に、ステップS10において、ロゴマークセル部検出処理が実行される。ステップS10におけるロゴマークセル部検出処理の詳細を、図16のフローチャートを参照して説明する。
【0068】
はじめに、ステップS21において、CPU52は、黒色画素連結領域の総数Mをカウントするカウンタjの値を1に初期設定し、次に、ステップS22において、図13のステップS8およびステップS9で設定された開始点から、LCD21の画面上を左回りの渦巻の軌跡に沿って、黒色画素連結領域を探索し、始めに検出した黒色画素連結領域をロゴマークセル部候補領域として選択する。
【0069】
次に、ステップS23において、CPU52は、ステップS22で選択したロゴマークセル部候補領域の、図3に示したようなロゴマークセル部301の辺Aおよび辺Bに対応する辺ATおよび辺BTを決定する。辺ATは、図17に示すように、黒色画素連結領域がLCD21の画像上のX軸上に投影されて形成される線(X軸投影線)と、Y軸上に投影されて形成される線(Y軸投影線)のうち、長い方の線とする。辺BTは、他方の短い方の線とする。
【0070】
次に、ステップS24において、CPU52は、短軸に対応する辺BTが20画素より少ない画素で構成されているか否かを判定する。例えば、短軸(辺B)が20画素より少ない画素で構成されている黒色画素連結領域がロゴマークセル部301であるとすると、図2に示したように、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は、次の黒色画素連結領域を、次のロゴマークセル部候補領域として、同様の処理を行う。
【0071】
ステップS24において、ステップS22で選択されたロゴマークセル部候補領域の辺BTが20画素と等しいか、またはそれより多い画素で構成されていると判定された場合、ステップS27に進み、CPU52は、ロゴマークセル部候補領域の辺ATが300画素より多い画素で構成されているか否かを判定する。例えば、長軸(辺A)が300画素より多い画素で構成されている黒色画素連結領域がロゴマークセル部301であるとすると、図2に示したように、辺Aの長さが7に対して1の割合で求められる1ブロックの一辺の長さが大きくなり、図4に示したように、ロゴマークセル部301から、7ブロック分離れて位置する左上コーナーセルおよび右上コーナーセルが、LCD21上に表示されなくなる。このことより、ステップS27において、辺ATが300画素より多い画素で構成されていると判定された場合、今回ステップS22で選択された黒色画素連結領域は、ロゴマークセル部301ではないとされ、ステップS25に進み、それ以降の処理が行われる。
【0072】
ステップS27において、ステップS22で選択されたロゴマークセル部候補領域の辺ATが300画素より多い画素で構成されていない(300画素以下の画素で構成されている)と判定された場合、ステップS28に進み、CPU52は、ロゴマークセル部候補領域の黒色画素の総数が、20画素以上かつ1500画素未満であるか否かを判定し、20画素以上かつ1500画素未満であると判断した場合、ステップS29に進む。
【0073】
一方、ステップS28において、ロゴマークセル部候補領域の黒色画素の総数が20画素未満、または1500画素以上であると判定された場合、ステップS25に進む。なお、黒色画素の総数が、20画素未満の場合、ステップS24において辺BTが20画素より少ない画素で構成された場合と同様の問題が発生し、また、1500画素以上である場合、ステップS27において辺ATが300画素より多い画素で構成された場合と同様の問題が発生し、いずれの場合も、ロゴマークセル部301である可能性が小さくなる。
【0074】
次に、ステップS29において、CPU52は、ステップS22で選択したロゴマークセル部候補領域の方形らしさ(fitness)を判定し、方形であると判定した場合、ステップS30に進む。この例の場合、式(1)に基づいて算出されるfitnessが、0.2以上である場合、ロゴマークセル部候補領域は方形であると判定される。
【0075】
【数1】
【0076】
式(1)の定数aは、式(2)に基づいて、定数cは、式(3)に基づいて、そして定数b/2は、式(4)に基づいて求められる、いわゆる、モーメント特徴のうちの2次元モーメントである。
【0077】
【数2】
【0078】
【数3】
【0079】
【数4】
【0080】
式(2)乃至式(4)のf(i,j)は、LCD21の表示上の画素のX座標iと、Y座標jにより特定される画素が黒色の場合、1となり、また、特定される画素が白色の場合、0となる関数である。
【0081】
ステップS30において、CPU52は、ステップS29で方形とされたロゴマークセル部候補領域の長軸と短軸の比を、式(5)に基づいて算出し、算出結果が2.0以上かつ25以下であるか否かを判定する。
【0082】
【数5】
【0083】
算出結果が2.0以上かつ25以下であると判定された場合、ステップS31に進み、CPU52は、ステップS22で選択したロゴマークセル部候補領域をロゴマークセル部301として設定(仮定)し、例えば、ロゴマークセル部候補領域とされた黒色画素連結領域の番号を、RAM54に記憶させる。このようにして、ロゴマークセル部301は検出され、処理は終了される。
【0084】
ステップS28において、黒色画素の総数が20画素未満、または1500画素以上であると判定された場合、ステップS29において、ロゴマークセル部候補領域が方形ではないと判定された場合、またはステップS30において、辺ATと辺BTの比が2.0未満または25より大きいと判定された場合、今回ステップS22で選択されたロゴマークセル部候補領域は、ロゴマークセル部301ではないとされ、ステップS25に進み、次に検出された黒色画素連結領域が次のロゴマークセル部候補領域とされ、以降の処理が行われる。
【0085】
ステップS25において、カウンタjの値が黒色画素連結領域の総数Mと等しい(j=M)と判定された場合、ステップS31でロゴマークセル部301が設定されず、処理は終了される。すなわち、今回2次元コード認識処理の対象とされた画像データ(1フレーム)には、ロゴマークセル部301が存在しないものとされる。
【0086】
以上のようにして、ロゴマークセル部検出処理が完了したとき、次に、図13のステップS11に進む。
【0087】
ステップS11において、ステップS10でロゴマークセル部301が検出されたか否かが判定され、検出されたと判定された場合、ステップS12に進み、コード部検出処理が実行される。ステップS12におけるコード部検出処理の詳細を、図18のフローチャートを参照して説明する。
【0088】
はじめに、ステップS41において、CPU52は、図13のステップS3で検出した黒色画素連結領域の総数Mをカウントするカウンタjの値を1に初期設定し、ステップS42において、その値に対応する番号の黒色画素連結領域を検出し、それを左上コーナーセル候補領域として選択する。
【0089】
次に、ステップS43において、CPU52は、ステップS42で選択した左上コーナーセル候補領域の、図17に示したようにして決定した辺ATおよび辺BTの長さの比が3倍以下であるか否かを判定し、その比が3倍以下であると判定した場合、ステップS44に進む。
【0090】
ステップS44において、CPU52は、ステップS42で選択した左上コーナーセル候補領域が、図13のステップS10で検出したロゴマークセル部301に対して予め設定された探索範囲内に存在するか否かを判定し、探索範囲内に存在すると判定した場合、ステップS45に進み、それを左上コーナーセルとして設定(仮定)する。
【0091】
ステップS43において、辺ATの長さに対する辺BTの長さの比が3倍より大きいと判定された場合、または、ステップS44において、探索範囲内に存在しないと判定された場合、ステップS42で選択された黒色画素連結領域は、左上コーナーセルではないと判定され、ステップS46に進み、カウンタjの値が黒色画素連結領域の総数Mに等しい(j=M)か否かが判定され、j=Mではないと判定された場合、ステップS47に進み、カウンタjの値が1だけ増加され、ステップS42に戻る。そして、次の番号の黒色画素連結領域が、次の左上コーナーセル候補領域とされ、同様の処理が行われる。
【0092】
ステップS45において、左上コーナーセルが設定されると、ステップS48に進み、CPU52は、黒色画素連結領域の番号をカウントする他のカウンタkに2を初期設定し、次に、ステップS49において、カウンタkの値に対応する番号の黒色画素連結領域を検出し、それを右上コーナーセル候補領域として選択する。
【0093】
次に、ステップS50において、CPU52は、ステップS45で設定した左上コーナーセルの画素数(面積)と、ステップS49で選択した右上コーナーセル候補領域の画素数(面積)の比を算出し、その比(面積比)が6倍以下であるか否かを判定し、6倍以下であると判定した場合、ステップS51に進む。
【0094】
ステップS51において、CPU52は、ステップS45で設定した左上コーナーセルの面積(画素数)(S1)、ステップS49で選択した右上コーナーセル候補領域の面積(画素数)(S2)、およびその左上コーナーセルの中心点とその右上コーナーセル候補領域の中心点との距離(D)を算出し、式(6)および式(7)が成立するか否かを判定する。
【0095】
(S1/D 2 )<=900 ・・・(6)
(S2/D 2 )<=900 ・・・(7)
ステップS51において、式(6)および式(7)が成立すると判定された場合、ステップS52に進み、CPU52は、ステップS49で選択した右上コーナーセル候補領域を右上コーナーセルとして設定(仮定)する。
【0096】
ステップS52において、右上コーナーセルが設定(仮定)されると、ステップS55において、CPU52は、ステップS45で設定した左上コーナーセル、ステップS52で設定した右上コーナーセル、および図13のステップS10で設定されたロゴマークセル部301により形成される領域を、LCD21の画面上のX軸方向に7ブロック分の長さ、そしてY軸方向に9.5ブロック分の領域になるようにアフィン変換する。なお、1ブロックの一辺の長さは、ステップS10で設定されたロゴマークセル部301の辺ATまたは辺BTに基づいて算出される。
【0097】
次に、ステップS56において、CPU52は、ステップS55で変換した画像から、図13のステップS10で設定したロゴマークセル部分301とそれに対応して存在するノンセル部302に相当する領域(7×2.5ブロック領域)を削除し、その結果得られた7×7ブロック領域の範囲に、黒色画素連結領域をセルとしてマッピングし、コードマップを生成する。
【0098】
ステップS57において、CPU52は、ステップS56で生成したコードマップのセルのうち、4角のセルを検出し、その周りの3ブロック領域が、白色画素とされているか否かを判定し、白色画素とされていると判定した場合、ステップS58に進み、ステップS56で生成したコードマップを2次元コード101のコード部202と設定(仮定)する。このようにして、コード部202が検出されると、処理は終了される。
【0099】
ステップS50において、面積比が6倍より大きいと判定された場合、ステップS51において、式(6)および式(7)が成立しないと判定された場合、またはステップS57において、4角のセルの周りの3ブロック領域が白色画素ではないと判定された場合、ステップS53に進み、カウンタkの値が黒色画素連結領域の総数Mに等しい(k=M)か否かが判定され、k=Mではないと判定された場合、ステップS54に進み、カウンタkの値が1だけ増加され、ステップS49に戻る。そして次の番号の黒色画素連結領域が、次の右上コーナーセル候補領域とされ、同様の処理が行われる。
【0100】
ステップS53において、カウンタkの値が黒色画素連結領域の総数Mと等しいと判定された場合、ステップS46に戻り、ステップS46の処理において、j=Mでないと判定された場合、ステップS47に進み、カウンタjの値が1だけ増加され、ステップS42に戻り、次の番号の黒色画素連結領域が、次の左上コーナーセル候補領域として選択され、それ以降の処理が行われる。
【0101】
ステップS46において、j=Mと判定された場合、今回2次元コード認識処理の対象となっている画像には、2次元コード101が存在しないものとされ、処理は終了される。
【0102】
以上のようにして、コード部検出処理が完了すると、図13のステップS13に進む。ステップS13において、ステップS12でコード部202が検出されたか否かが判定され、検出されたと判定された場合、ステップS14に進み、コードデータ検証処理が実行される。ステップS14のコードデータ検証処理の詳細を、図19のフローチャートを参照して説明する。
【0103】
はじめに、ステップS61において、CPU52は、後述するステップS63およびステップS65で算出される基準値を、1ビット右方向にシフトする回数をカウントするカウンタpの値を1に初期設定する。
【0104】
次に、ステップS62において、CPU52は、図13のステップS12で検出されたコード部202のコードマップから、コードデータおよびチェックデータの値を算出する。
【0105】
ステップS63において、CPU52は、ステップS62で算出したコードデータの値(ビットストリーム)と、0xFFFFFFとの排他的論理和演算を行い、その結果得られた値(ビットストリーム)を基準値(基準ビットストリーム)とする。ステップS64において、CPU52は、基準ビットストリームのLSB(Least Significant Bit)に”1”が立っているか否かを判定し、”1”が立っていないと判定した場合、ステップS65に進む。
【0106】
ステップS65において、CPU52は、ステップS63で算出した基準値(基準ビットストリーム)と、0x8408との排他的論理和演算を行い、その結果得られた値(ビットストリーム)を新たな基準値(基準ビットストリーム)とし、ステップS66に進む。
【0107】
ステップS64において、CPU52は、ステップS63で算出した基準値(基準ビットストリーム)のLSBに”1”が立っていると判定した場合、ステップS65の処理をスキップし、ステップS66に進む。
【0108】
ステップS66において、CPU52は、ステップS63またはステップS65において算出した基準値(基準ビットストリーム)を1ビットだけ右にシフトさせ、ステップS67に進み、カウンタpの値が、24(予め決められたシフトの回数)に等しい(p=24)か否かを判定し、p=24ではないと判定した場合、ステップS68に進み、カウンタpの値を1だけ増加した後、ステップS64に戻る。以下、同様の処理が、ステップS67においてp=24であると判定されるまで、繰り返し実行させる。
【0109】
ステップS67において、CPU52は、p=24であると判定した場合、ステップS69に進み、ステップS64乃至S68の処理により算出されたビットストリームと、0x1FFとの論理積演算を行う。次に、ステップ70において、CPU52は、ステップS69における論理積演算より得られ値が、ステップS62で算出したチェックデータの値と等しいか否かを判定し、等しいと判定した場合、図13のステップS13で検出されたコード部202は、2次元コード101として適正なパターンであるとし、ステップS71において、2次元コード101のコード部202を確定する。その後、処理は終了される。
【0110】
ステップS70において、ステップS69で算出された値と、ステップS62で算出されたチェックデータの値とが等しくないと判定された場合、ステップS71の処理がスキップされ、処理は終了される。
【0111】
以上のようにして、コードデータ検証処理が完了されると、図13のステップS15に進み、図19のステップS71でコード部202が確定されたか否かが判定され、確定されていると判定された場合、ステップS16に進み、CPU52は、図19のステップS62で算出したコードデータの値、すなわち、2次元コード101の値を、例えば、RAM54に記憶させ、保持する。その後、処理は終了される。
【0112】
ステップS11において、ロゴマークセル部301が検出されていないと判定された場合、ステップS13において、コード部202が検出されていないと判定された場合、またはステップS15において、コード部202が確定されていないと判定された場合、今回2次元コード認識処理の対象とされた画像データには、2次元コード101が存在しないものとされ、処理は終了される。
【0113】
このように、例えば、ロゴマークなどの2次元コード101の属性等を表示するロゴマークセル部301を認識処理の基準として利用し、コード部202を検出するようにしたので、2次元コード101の占有面積を最小限に抑えることができる。すなわち、ロゴマークセル部301には、基準を示す機能に加えて、ロゴマークや文字などを表示する機能を付与しているので、最小限の占有面積で、認識処理の基準に必要な情報と、可読情報とを同時に提示することが可能である。
【0114】
なお、上述した一連の処理を実行するプログラムをコンピュータにインストールし、コンピュータによって実行可能な状態とするために用いられる媒体としては、例えば、フロッピーディスク、CD-ROM、DVDなどのパッケージメディアのみならず、プログラムが一時的もしくは永続的に格納される半導体メモリや磁気ディスクなどで実現してもよく、さらには、ローカルエリアネットワークやインターネット、デジタル衛星放送などの有線および無線通信媒体、およびこれらの通信媒体を介して提供されるプログラムを転送もしくは受信するルーターやモデム等の各種通信インターフェイスで実現してもよく、本願明細書における媒体とは、これら全ての媒体を含む広義の概念を意味するものである。
【0115】
【発明の効果】
本発明によれば、多次元コードの画像データからコードデータを、効率よくかつ正確に認識することができ、さらに、最小限の占有面積で、認識処理の基準に必要な情報と、可読情報とを同時に提示することが可能となる。
【図面の簡単な説明】
【図1】本発明を適用したパーソナルコンピュータ1の使用例を表している。
【図2】2次元コードの仕様について説明する図である。
【図3】2次元コードの仕様について説明する他の図である。
【図4】2次元コードの仕様について説明する他の図である。
【図5】2次元コードの例を示す図である。
【図6】本発明を適用した携帯型パーソナルコンピュータの構成例の表示部を本体に対して開いた状態を示す外観斜視図である。
【図7】図6の平面図である。
【図8】図6の表示部を本体に対して閉塞した状態を示す左側側面図である。
【図9】図6の表示部を本体に対して180度開いた状態を示す右側側面図である。
【図10】図8の正面図である。
【図11】 図9の底面図である。
【図12】 図6の電気回路の構成例を示すブロック図である。
【図13】2次元コード認識処理を説明するフローチャートである。
【図14】閾値の設定を説明する図である。
【図15】黒色画素連結領域のラベリングを説明する図である。
【図16】 ロゴマークセル部検出処理を説明するフローチャートである。
【図17】辺ATおよび辺BTの求め方を説明する図である。
【図18】 コード部検出処理を説明する図である。
【図19】コードデータ検証処理を説明するフローチャートである。
【図20】 従来の1次元バーコードの例を示す図である。
【図21】 従来の2次元コードの例を示す図である。
【符号の説明】
1 パーソナルコンピュータ, 3 表示部, 21 LCD, 23 CCDビデオカメラ, 52 CPU, 56 HDD, 81 グラフィックチップ, 83 LCDコントローラ, 100 オブジェクト, 101 2次元コード, 202 コード部, 301 ロゴマークセル部
Claims (11)
- 複数のセルが所定の配列規則に従って多次元配置された多次元コードを認識する多次元コード認識処理方法において、
前記多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記多次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記セル検出処理ステップの処理で検出された前記多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、
前記基本となるセルによって一意に定まる範囲を、前記多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記変換ステップの処理で変換された範囲に存在する前記多次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップと
を含むことを特徴とする多次元コード認識処理方法。 - 前記多次元コードを認識する上で基準となるセルは、所定の縦横比の矩形状の黒色画素連結領域内に前記多次元コードに関連する白抜きの可読情報を含んで構成され、
前記基本セル検出処理ステップは、前記可読情報を含む所定の縦横比の矩形状の前記多次元コードを認識する上で基準となるセルを検出する
ことを特徴とする請求項1に記載の多次元コード認識処理方法。 - 前記可読情報は、
前記多次元コードのコード体系に付されたロゴマーク、
前記多次元コードのコード体系に関連する会社名、
または、前記多次元コードのコード体系に関連するURLである
ことを特徴とする請求項2に記載の多次元コード認識処理方法。 - 前記基本セル検出処理ステップは、任意に設定可能な検出開始点から、前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記多次元コードを認識する上で基準となる所定の縦横比の矩形状のセルを検出する
ことを特徴とする請求項1に記載の多次元コード認識処理方法。 - 前記基本セル検出処理ステップは、
前記検出開始点として、直前に検出した前記多次元コードを認識する上で基準となるセルの開始点を設定する、および/または
前記基本セル検出処理ステップは、直前に検出した前記多次元コードを認識する上で基準となるセルの前記開始点が存在しない場合、前記検出開始点として、外部から取り込んだ画像情報の中心点を設定する
ことを特徴とする請求項4に記載の多次元コード認識処理方法。 - 前記2値化処理ステップの処理で生成された前記2値化データに基づいて、黒色画素が連結された黒色画素連結領域の総数を計数し、前記総数が所定個数未満となるまで、前記2値化処理ステップの処理での所定の閾値を段階的に設定変更する閾値変更処理ステップ
をさらに備えることを特徴とする請求項1に記載の多次元コード認識処理方法。 - 前記閾値変更処理ステップの処理で、前記閾値が段階的に設定変更され、全ての前記閾値が設定変更された段階において、前記黒色画素連結領域の総数が前記所定個数以上であった場合、一連の認識処理を一旦終了し、外部から取り込んだ新たな画像情報に基づく一連の認識処理を開始する
ことを特徴とする請求項6に記載の多次元コード認識処理方法。 - 前記コードデータ検出処理ステップは、前記2値化処理ステップの処 理で生成された前記2値化データに基づいて、前記変換ステップの処理で変換された範囲に存在する前記多次元コードからコードデータを算出するコードデータ算出処理ステップと、
前記変換ステップの処理で変換された範囲に存在する前記多次元コードに存在する前記多次元コードからチェックデータを算出するチェックデータ算出処理ステップと、
前記チェックデータ算出処理ステップの処理で算出された前記チェックデータに基づいて、前記コードデータ算出処理ステップの処理で算出された前記コードデータを検証する検証処理ステップと
からなることを特徴とする請求項1に記載の多次元コード認識処理方法。 - 前記2値化処理ステップは、外部の撮像手段によって撮像された前記画像情報を取り込み、取り込んだ前記画像情報から、前記所定の閾値に基づいて前記2値化データを生成する
ことを特徴とする請求項1に記載の多次元コード認識処理方法。 - 複数のセルが所定の配列規則に従って多次元配置された多次元コードを認識する多次元コード認識処理装置において、
前記多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記多次元コードを認識する上で基準となるセルを検出するセル検出処理手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記セル検出処理手段により検出された前記多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定手段と、
前記基本となるセルによって一意に定まる範囲を、前記多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換手段と、
前記2値化処理手段により生成された前記2値化データに基づいて、前記変換手段により変換された範囲に存在する前記多次元コードに割り当てられたコードデータを検出するコードデータ検出処理手段と
を備えることを特徴とする多次元コード認識処理装置。 - 複数のセルが所定の配列規則に従って多次元配置された多次元コードを認識する多次元コード認識処理プログラムにおいて、
前記多次元コードを撮像した結果得られる画像情報から、所定の閾値に基づいて2値化データを生成する2値化処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記多次元コードを認識する上で基準となるセルを検出するセル検出処理ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記セル検出処理ステップの処理で検出された前記多次元コードを認識する上で基準となるセルに対応する所定の探索範囲内に存在する、前記多次元コードの領域を特定するのに基本となるセルを決定する基本セル決定ステップと、
前記基本となるセルによって一意に定まる範囲を、前記多次元コードの領域が撮像面に対向して撮像された場合に得られる範囲に変換する変換ステップと、
前記2値化処理ステップの処理で生成された前記2値化データに基づいて、前記変換ステップの処理で変換された範囲に存在する前記多次元コードに割り当てられたコードデータを検出するコードデータ検出処理ステップと
を含むことを特徴とするコンピュータが読みとり可能な多次元コード認識処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP18627699A JP3794463B2 (ja) | 1998-06-30 | 1999-06-30 | 多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラム |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP10-184350 | 1998-06-30 | ||
JP18435098 | 1998-06-30 | ||
JP18627699A JP3794463B2 (ja) | 1998-06-30 | 1999-06-30 | 多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000082108A JP2000082108A (ja) | 2000-03-21 |
JP3794463B2 true JP3794463B2 (ja) | 2006-07-05 |
Family
ID=26502449
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP18627699A Expired - Lifetime JP3794463B2 (ja) | 1998-06-30 | 1999-06-30 | 多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3794463B2 (ja) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4729808B2 (ja) | 2001-05-15 | 2011-07-20 | ソニー株式会社 | コンピュータ本体とワイヤレス周辺機器間の接続方式、並びにコンピュータ |
WO2003015451A1 (fr) | 2001-08-02 | 2003-02-20 | Sony Corporation | Systeme de fonctionnement a distance, procede de fonctionnement a distance, appareil de mise en fonctionnement a distance et son procede de commande, appareil de mise en route par commande a distance et son procede de commande et support d'enregistrement |
JP4598373B2 (ja) * | 2003-06-05 | 2010-12-15 | 株式会社エヌ・ティ・ティ・ドコモ | 画像出力装置、プログラム及び印刷物 |
JP3851907B2 (ja) * | 2004-02-18 | 2006-11-29 | 株式会社ソニー・コンピュータエンタテインメント | 画像表示システム及びビデオゲームシステム |
JP3904562B2 (ja) | 2004-02-18 | 2007-04-11 | 株式会社ソニー・コンピュータエンタテインメント | 画像表示システム、記録媒体及びプログラム |
KR100858399B1 (ko) | 2004-10-15 | 2008-09-11 | 가부시키가이샤 소니 컴퓨터 엔터테인먼트 | 물체, 화상 데이터, 화상 데이터 전송방법, 카드, 게임용매트, 카드 게임 시스템, 화상해석장치, 화상해석방법 |
JP4244919B2 (ja) | 2004-12-14 | 2009-03-25 | ソニー株式会社 | 情報処理装置および方法、プログラム、並びに情報処理システム |
JP4916167B2 (ja) | 2005-12-15 | 2012-04-11 | キヤノン株式会社 | 指標識別方法及び指標識別装置 |
EP1818849A3 (en) | 2006-02-07 | 2008-01-02 | Murata Kikai Kabushiki Kaisha | Image forming device |
JP5089060B2 (ja) * | 2006-03-14 | 2012-12-05 | 株式会社ソニー・コンピュータエンタテインメント | エンタテインメントシステムおよびゲームコントローラ |
JP4443531B2 (ja) | 2006-04-11 | 2010-03-31 | 株式会社ソニー・コンピュータエンタテインメント | エンタテインメントシステムおよび処理装置 |
JP4876056B2 (ja) | 2007-11-16 | 2012-02-15 | キヤノン株式会社 | 画像処理装置、画像処理方法 |
JP4729604B2 (ja) * | 2008-07-11 | 2011-07-20 | 株式会社ソニー・コンピュータエンタテインメント | 画像表示システム、画像処理システム、記録媒体及びプログラム |
JP4746074B2 (ja) * | 2008-07-11 | 2011-08-10 | 株式会社ソニー・コンピュータエンタテインメント | 画像処理システム |
JP4687773B2 (ja) * | 2008-11-17 | 2011-05-25 | セイコーエプソン株式会社 | プロジェクションシステム |
EP2738738A4 (en) | 2011-07-29 | 2016-03-09 | Nec Corp | COMPARISON / SEARCH SYSTEM, / COMPARISON / SEARCH SERVER, DEVICE FOR EXTRACTION OF PICTURE PROPERTIES, COMPARISON / SEARCH PROCESSES AND PROGRAM |
US20140195382A1 (en) * | 2011-07-29 | 2014-07-10 | Nec Corporation | Collation/retrieval system, collation/retrieval server, image feature extraction apparatus, collation/retrieval method, and program |
JP2015032934A (ja) | 2013-08-01 | 2015-02-16 | ソニー株式会社 | 制御装置、制御方法、送信端末、送信方法、受信端末、受信方法および制御システム |
CN105138946A (zh) * | 2015-10-09 | 2015-12-09 | 巴罗克(济南)生物技术有限公司 | 一种借助智能手机识别Datamatrix二维码的方法 |
JP2017078877A (ja) * | 2015-10-19 | 2017-04-27 | セイコーエプソン株式会社 | 画像処理装置、ロボット、及びロボットシステム |
JP2017229093A (ja) * | 2017-09-01 | 2017-12-28 | 日本電気株式会社 | 携帯端末、撮影方法及びプログラム |
-
1999
- 1999-06-30 JP JP18627699A patent/JP3794463B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2000082108A (ja) | 2000-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3794463B2 (ja) | 多次元コード認識処理方法、多次元コード認識処理装置、および多次元コード認識処理プログラム | |
KR100769836B1 (ko) | 2차원 코드 인식 처리 방법, 2차원 코드 인식 처리 장치, 및 저장 매체 | |
JP3786167B2 (ja) | 2次元コード認識処理方法、2次元コード認識処理装置、および2次元コード認識処理プログラム格納媒体 | |
US6325287B1 (en) | Two-dimensional code recognition processing method, two-dimensional code recognition processing apparatus, and two-dimensional code recognition processing program storage medium | |
US7447362B2 (en) | System and method of enabling a cellular/wireless device with imaging capabilities to decode printed alphanumeric characters | |
JP4095243B2 (ja) | Url取得および処理システムおよびその方法およびその処理を実行するプログラムを記憶した記憶媒体。 | |
TWI492166B (zh) | 行動影像擷取和處理的系統和方法 | |
US9805225B2 (en) | Apparatus for recognizing character and barcode simultaneously and method for controlling the same | |
US20090017765A1 (en) | System and Method of Enabling a Cellular/Wireless Device with Imaging Capabilities to Decode Printed Alphanumeric Characters | |
CN102034073B (zh) | 条形码辨识方法及条形码辨识装置 | |
JP2009217834A (ja) | 画像処理装置、画像処理方法、および画像処理プログラム媒体 | |
KR20090087384A (ko) | 휴대 단말에서 자동반주 악보를 인식하는 방법 | |
WO2011124956A1 (en) | Methods and devices that use an image-captured pointer for selecting a portion of a captured image | |
JP2007034625A (ja) | 情報表示装置 | |
JP4352287B2 (ja) | 画像処理装置、画像処理方法、および画像処理プログラム媒体 | |
KR100716710B1 (ko) | 다양한 형식의 코드를 이용한 정보 제공 방법 및 장치 | |
JP2000148797A (ja) | 画像処理装置、画像処理方法、および画像処理プログラム格納媒体 | |
JP2000207487A (ja) | 情報処理装置および方法、並びに提供媒体 | |
JP5314521B2 (ja) | 画像処理システム及び画像処理方法 | |
JP2000047967A (ja) | 情報処理装置および方法、情報処理システム、並びに提供媒体 | |
JP4566297B2 (ja) | 情報処理装置および画像処理方法、並びに記録媒体 | |
JP4019510B2 (ja) | 情報処理装置および方法、情報処理システム、並びに記録媒体 | |
JP2007279813A (ja) | 画像処理装置及びプログラム | |
CN116205250A (zh) | 一种二维码的唯一化标记的验证方法及其验证系统 | |
JP2000207401A (ja) | 情報処理装置および方法、並びに提供媒体 |
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: 20050608 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050808 |
|
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: 20060323 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060405 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 3794463 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090421 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100421 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110421 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120421 Year of fee payment: 6 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120421 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130421 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130421 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140421 Year of fee payment: 8 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |