(57)【要約】【課題】  精度よく認識することのできる２次元コードを提供することを目的とする。【解決手段】  本発明のゲームカード４は、第１の方向において所定の画像を視認可能な状態とする第１画像部と、第２の方向において２次元コードを視認可能な状態とする第２画像部とを備える。第１画像部は、物体の表面にキャラクタ画像などを表示することで形成され、第２画像部は、第１の方向における光の反射を許容し、且つ第２の方向における光の反射を制限することで第２の方向において２次元コードを視認可能な状態とする光反射制限部材により形成される。【選択図】  図５
2006110888.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも第１の方向において所定の画像を視認可能な状態とする第１画像部と、
第１の方向とは異なる第２の方向において２次元コードを視認可能な状態とする第２画像部と、
を備えることを特徴とする物体。
【請求項２】
前記第１画像部は、物体の表面に所定の画像を表示することで形成され、
前記第２画像部は、物体の表面に、第１の方向における光の反射を許容し、且つ第２の方向における光の反射を制限することで、第２の方向において２次元コードを視認可能な状態とする光反射制限部材を配置することにより形成されることを特徴とする請求項１に記載の物体。
【請求項３】
前記光反射制限部材は偏光部材であることを特徴とする請求項２に記載の物体。
【請求項４】
前記偏光部材は、樹脂材料で形成されることを特徴とする請求項３に記載の物体。
【請求項５】
前記第１画像部および前記第２画像部は、物体上にホログラムを異なる角度から多重記録して生成されることを特徴とする請求項１に記載の物体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードを保持した物体に関する。
【背景技術】
【０００２】
近年、２次元コードをカメラで撮像してコードデータを認識し、そのコードデータに対応付けられた所定の処理を実行させる技術が普及している。１次元バーコードと比較すると、２次元コードの方がコード化できる情報量が多く、現在では様々な種類の２次元コードが登場するようになっている。２次元コードのコードデータは、画像データから効率よく且つ正確に読み取られる必要がある。このような状況をふまえて、従来、２次元コードの画像認識に関する技術を提案するものがある（例えば、特許文献１参照）。
【特許文献１】特開２０００−８２１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
２次元コードの読取精度を向上させるためには、コードデータ自体を大きく表現すればよいが、一方で、２次元コードを印刷する対象物の大きさに制限がある場合、必然的にコードの大きさも制限されることになる。そのため、例えばカードのような必ずしも大きくはない物体に２次元コードを印刷すると、カード全面に２次元コードを配置する必要が生じ、他の画像などを印刷するスペースがなくなって、デザイン性が優れているとは言い難い。また、２次元コードは印刷することでカードに記録されるため、複写機により簡単にコピーすることができ、偽造物が出回ることでカードの価値が下がるという問題もある。
【０００４】
本発明は、デザイン性の向上および／または偽造防止に配慮した２次元コードを保持する物体を提供することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明のある態様は、少なくとも第１の方向において所定の画像を視認可能な状態とする第１画像部と、第１の方向とは異なる第２の方向において２次元コードを視認可能な状態とする第２画像部とを備える物体を提供する。この物体はカードなどの２次元的なオブジェクトであってもよく、また３次元オブジェクトであってもよい。第１画像部はユーザから視認可能であればよく、第２画像は撮像装置から視認可能であればよい。第１画像部は、第１の方向においてユーザから視認可能であればよいが、第２の方向においてもユーザから視認可能であってよい。また、第２画像部は、第１の方向において僅かに視認可能とされてもよいが、第２の方向における視認性の方が高いことが必要である。
【発明の効果】
【０００６】
本発明によると、デザイン性の向上および／または偽造防止に配慮した２次元コードを提供することができる。
【発明を実施するための最良の形態】
【０００７】
図１は、本発明の実施例にかかるゲームシステム１の構成を示す。ゲームシステム１は、撮像装置２、画像処理装置１０および出力装置６を備える。画像処理装置１０は、画像解析装置２０およびゲーム装置３０を備える。画像解析装置２０およびゲーム装置３０は別装置として構成されてもよいが、一体として構成されてもよい。撮像装置２は、ＣＣＤ撮像素子またはＭＯＳ撮像素子などから構成されるビデオカメラであり、例えば３２０画素×２４０画素の解像度を有する。撮像装置２は実空間を所定の周期で撮像して、周期ごとのフレーム画像を生成する。撮像領域５は撮像装置２により撮像される範囲であり、撮像装置２の高さや向きを調整することで、撮像領域５の位置や大きさが調整される。ゲームプレイヤは、撮像領域５において、実オブジェクトであるゲームカード４を指で動かす。ゲームカード４は、自身を一意に識別するための２次元コードを有して構成される。本実施例において、ゲームカード４は、見る角度によって少なくとも２種類の異なる見え方を提供する。本実施例では、ゲームカード４が、第１の方向において所定の画像を視認可能な状態とする第１画像部と、第２の方向において２次元コードを視認可能な状態とする第２画像部とを有して構成される。
【０００８】
図２は、ゲームプレイヤおよび撮像装置がゲームカードを異なる方向から見ている状態を示す。ユーザがゲームカード４を第１の方向、例えば正面から見た場合、ゲームカード４は、所定の画像を視認可能な状態とする。なお正面から見ることは、ゲームカード４を台３に載置した状態で、ユーザが上方からゲームカード４を見る状態に相当し、すなわちゲーム中にゲームカード４を操作する通常の状況である。この画像は、例えばキャラクタ画像であってよく、これによりゲームプレイヤにとってのゲームカード４の価値を高めることができ、また複数のゲームカード４が存在する場合に、ユーザが容易にゲームカード４を区別することが可能となる。
【０００９】
図３は、ゲームカードにおける第１画像部を示す。第１画像部２２は、ユーザがゲームカード４を正面から見た場合に、キャラクタ画像を視認可能な状態とする。具体的に、第１画像部２２は、ゲームカード４の表面にキャラクタ画像を表示（描画）することで形成される。このキャラクタは、ゲームアプリケーションに登場するキャラクタであってもよく、また一般に人気のあるキャラクタであってもよい。このようなキャラクタをゲームカード４に描くことで、ユーザのゲームカード４に対する愛着を高め、ゲームカード４の価値を高くする。これにより、ゲームカード４自体に商品価値を持たせることができ、単にゲームアプリケーションと抱き合わせた販売形態だけでなく、ゲームカード単独の販売流通も可能となる。
【００１０】
図２に戻って、撮像装置２がゲームカード４を第２の方向、例えばゲームカード４に対して約３０度の角度から見た場合、ゲームカード４は２次元コードを撮像装置２に対して視認可能な状態とする。撮像装置２をゲームカード４の正面に配置すると、撮像装置２は図３に示すキャラクタ画像を撮像することになるが、本実施例では、ゲームカード４に対して撮像方向が正面（９０度）以外の角度となるように撮像装置２を配置する。
【００１１】
図４は、ゲームカードにおける第２画像部を示す。第２画像部２４は、撮像装置２がゲームカード４を斜め方向から見た場合に、２次元コードを視認可能な状態とする。２次元コードは撮像装置２から視認可能であればよく、必ずしもユーザにより視認可能な状態で存在していなくてもよい。なお、図４に示す第２画像部２４は、実際には斜め方向から撮像装置２により撮像されるものであるため、ゲームカード４の縦横の比率は正面から見た図３のゲームカード４とは異なってくるが、ここでは便宜上、縦横比率を同一のものとして示している。
【００１２】
本実施例において、第２画像部２４は、ゲームカード４の表面に、正面からの光の反射を許容し、且つ斜め方向における光の反射を制限することで、斜め方向において２次元コードを視認可能な状態とする光反射制限部材を配置することにより形成される。２次元コードは、図中に示す黒色部分と白色部分の位置関係により表現される。この光反射制限部材は偏光部材であってよく、斜め方向における光の反射を遮断することで、２次元コードの黒色部分を見せる役割を果たす。偏光部材は、例えば樹脂材料により形成されてもよい。また、光反射制限部材は、テレビ石（鉱物名：ウレックサイト(ulexite)）のような光学特性を有する材料で形成することも可能であり、テレビ石の代わりに、極細の細線を縦方向に束ねて、縦方向からの透明性を実現し、縦方向以外からの非透明性を実現するものを利用してもよい。図４のゲームカード４において、黒色で示す部分に偏光部材が配置され、白色で示す部分には偏光部材が配置されていない。この偏光部材は、例えば、その平行面（０度）から所定の角度までの間の角度から見られたときに、ゲームカード４の表面を不可視状態にし、所定の角度から垂直（９０度）までの間の角度から見られたときに、ゲームカード４の表面を可視状態にする。すなわち、光反射制限部材は、ゲームカード４の表面の視野角を制限し、不可視となる角度において撮像装置２から撮像されることで、光を反射しない黒色部分が２次元コードのエレメントとして処理される。
【００１３】
光反射制限部材が配置されたゲームカード４の表面は、ユーザからは視認可能とされ、一方で撮像装置２からは視認不可とされる必要があるため、可視および不可視の境界となる角度は、ユーザが通常ゲームカード４を見る角度、および撮像装置２が通常ゲームカード４を撮像する角度を基準として定められることが好ましい。本実施例では、光反射制限部材として、可視および不可視の境界となる角度が例えば３０度から４５度の間にある偏光特性を有する偏光部材を利用する。なお、この角度は、ゲームカード４の向きにかかわらず一定であることが好ましく、すなわち、撮像装置２に対してゲームカード４を台３上で回転させた場合であっても、偏光部材が存在する領域は、撮像装置２により常に黒色と認識されることが好ましい。
【００１４】
図５は、図４に示す２次元コードの黒色部分を偏光部材で形成して、ゲームカード４を正面から見た状態を示す。現在、市販されている偏光部材には、第２の方向への光反射をほぼ１００％遮断するものはあるが、第１の方向への光反射をほぼ１００％許容するものはあまりない。そのため、そのような偏光部材を使用すると、正面からゲームカード４を見た場合に、図示のように表面からの反射光の一部が遮断され、偏光部材を配置した部分が少し灰色がかって見えることになる。しかしながら、これは、キャラクタ画像の視認性に影響を与えるものではない。すなわち、正面からゲームカード４を見た場合に、偏光部材は薄い半透明部材として視認され、斜め方向から見た場合に偏光部材が黒い非透明部材として視認されることとは一線を画する。第２画像部２４の生成方法として、例えば、偏光部材を所定の位置に配した一枚のシートをゲームカード４の表面に貼り付けてもよく、また、所定の形状に作成した偏光部材のそれぞれを、ゲームカード４の表面に貼り付けてもよい。
【００１５】
図６は、図４に示した２次元コードにおける各セルの位置関係を説明するための図である。既述したように、これらのセルは偏光部材により構成されており、ここでは、複数の所定形状をもつ多角形セルが所定の配列規則にしたがって２次元的に配置されている状態を示している。
【００１６】
具体的に、ゲームカード４の２次元コードは、撮像装置２により撮像された画像データからゲームカード４の認識処理を行うための基準となる基準セル１００、複数の方形セル１０６を２次元配置することでコードデータを構成するコードデータ部分１０２、コードデータ部分１０２を取り囲むように配置される複数のコーナーセル１０４ａ、１０４ｂ、１０４ｃ、１０４ｄ（以下、総称する場合は、「コーナーセル１０４」と呼ぶ）を備えている。コードデータ部分１０２およびコーナーセル１０４は、２次元コードにおけるコード部１１０に存在している。
【００１７】
基準セル１００、方形セル１０６およびコーナーセル１０４は、それぞれ所定の形状を有して構成される。領域１０８は、複数の方形セル１０６が連結して構成されたものであり、他の方形セル１０６とともにコードデータを構成している。実施例のゲームカード４が複数存在する場合に、基準セル１００およびコーナーセル１０４の配置および大きさは共通とされ、コードデータ部分１０２における方形セル１０６の配列により、ゲームカード４を一意に特定することができる。
【００１８】
以下に、本実施例における２次元コードの詳細を説明する。正方形状の方形セル１０６の１辺を１ブロックとすると、基準セル１００は、７ブロック分の横方向の長辺と１．５ブロック分の縦方向の短辺で形成される長方形状のセル（エレメント）として構成される。実施例において、縦１ブロックと横１ブロックで形成される正方形状の領域をブロック領域と呼ぶ。
【００１９】
コードデータ部分１０２は、７ブロック×７ブロックで囲まれる領域に形成される。この領域の一辺は、基準セル１００の長辺に平行であり且つ長辺から１ブロック離れた位置に配置される。図示のように、コード部１１０は、８ブロック×８ブロックで囲まれる領域であり、コードデータ部分１０２は、コード部１１０が形成される領域に含まれる。実際に方形セル１０６が配置される領域は、７ブロック×７ブロックで囲まれる領域の４隅における２ブロック×２ブロックの領域を除いた部分とする。すなわち、４隅の２ブロック×２ブロックの領域には方形セル１０６を配置させないこととし、したがって、（７×７−２×２×４）＝３３のブロック領域に方形セル１０６が配置されて、コードデータを構成する。
【００２０】
コーナーセル１０４ａは、コード部１１０の左上隅の領域に配置される。この左上隅の領域は、コードデータ部分１０２として７ブロック×７ブロックで囲まれる領域の左上隅の２ブロック×２ブロックの領域の範囲内であってよく、またその範囲内からはみ出してもよい。図示の例では、コーナーセル１０４ａが、コードデータ部分１０２における左上隅の２ブロック×２ブロックの領域から縦に０．５ブロック分、横に０．５ブロック分だけはみ出して配置されている。すなわち、コーナーセル１０４ａは、コード部１１０において２．５ブロック×２．５ブロックで囲まれる左上隅の領域に存在している。同様に、コーナーセル１０４ｂはコード部１１０の右上隅の領域に配置され、コーナーセル１０４ｃはコード部１１０の右下隅の領域に配置され、コーナーセル１０４ｄはコード部１１０の左下隅の領域に配置される。図示の例では、各コーナーセル１０４は方形に形成され、具体的には１辺を１．５ブロック分の長さとする正方形のセルとして形成されている。
【００２１】
コードデータ部分１０２は、１ブロック領域を１ビットとすると、合計で３３ビット分の情報をコード化することができる。この３３ビット中、９ビット分は、コードデータが、正しいコードデータであることを確かめるためのチェックデータを構成する。従って、コードデータ部分１０２には、２４ビット分の情報がコード化されている。
【００２２】
方形セル１０６は、コードデータを表現する重要なエレメントであり、画像解析装置２０において正確に画像認識される必要がある。そのためには、全ての方形セル１０６を大きく形成することが理想的であるが、当然のことながらゲームカード４の大きさには制約があり、方形セル１０６を大きくすることは、それだけコードデータ部分１０２を構成する方形セル１０６の数を減じる結果となる。これは情報のビット数を減らすことに相当し、好ましくない。
【００２３】
以上のことから、本実施例において、コーナーセル１０４は、方形セル１０６よりも大きな面積を有して構成される。後述するが、本実施例の画像解析装置２０において、４隅のコーナーセル１０４は、コードデータ部分１０２を検出するために利用される。逆に言えば、４隅のコーナーセル１０４を検出できなければ、方形セル１０６を検出することもできないため、この２次元コードでは、方形セル１０６よりもコーナーセル１０４をまず確実に認識する必要がある。４隅のコーナーセル１０４を方形セル１０６よりも大きく形成することで、４隅のコーナーセル１０４の認識率を高めることができる。
【００２４】
図１に戻って、出力装置６は、表示装置であるディスプレイ７を有する。出力装置６は、さらにスピーカ（図示せず）を有して構成されてもよい。基本的に画像処理装置１０は、撮像装置２により撮像されたフレーム画像をディスプレイ７に表示させ、その際に、ゲームカード４上に仮想オブジェクトであるキャラクタを重畳するように表示制御する。プレイヤは、ディスプレイ７を見ることで、ゲームカード４が撮像領域５に入っているか容易に確認でき、入っていない場合には、ゲームカード４の位置をずらしたり、また撮像装置２の向きを調整して、撮像装置２にゲームカード４を撮像させるようにする。
【００２５】
実施例のゲームアプリケーションでは、プレイヤがゲームカード４に対して所定の操作を施すことにより、キャラクタを動作させる。このゲームアプリケーションの性質上、プレイヤにゲームカード４とキャラクタとの一体性を認識させることが好ましく、そのため、キャラクタの画像を、ゲームカード４に重ね合わせて表示させている。撮像領域５内でゲームカード４をゆっくりと移動させると、キャラクタは、ゲームカード４の上に乗った状態を維持しながら、ゲームカード４の動きに追従して一緒に移動する。
【００２６】
以上のキャラクタの動きは、画像処理装置１０により制御される。まず、画像解析装置２０は、撮像装置２において取得されたフレーム画像から、ゲームカード４の画像情報を抽出する。さらに、画像解析装置２０は、ゲームカード４の画像情報から、ゲームカード４に配置された２次元コードを抽出する。このとき、画像解析装置２０は、ゲームカード４の２次元コードから、ゲームカード４の空間における位置情報、方向情報、距離情報などを決定する。
【００２７】
後述するが、画像解析装置２０は、フレーム画像中のゲームカード４の画像における基準セル１００および４隅のコーナーセル１０４を用いて、撮像装置２とゲームカード４との距離やゲームカード４の向きなどを計算して求める。これにより、キャラクタは、ゲームカード４上にて前方を向くように表示制御される。また、２次元コードにおける複数の方形セルの配列から、ゲームカード４のコードデータを取得する。
【００２８】
画像解析装置２０において画像解析された結果は、ゲーム装置３０に送られる。なお、撮像装置２において撮像されたフレーム画像が、ゲーム装置３０に送られて、ゲーム装置３０側で画像解析を行ってもよい。この場合、画像処理装置１０は、ゲーム装置３０のみで構成されることになる。
【００２９】
ゲーム装置３０は、画像解析装置２０における画像解析結果をもとに、ディスプレイ７の表示画面上で、キャラクタをゲームカード４の上に位置するように表示制御する。キャラクタは、ゲームカード４から抽出したコードデータに対応付けられて、ゲームシーンごとに適宜割り当てられてもよい。この場合、ゲームシーンが切り替わると、表示されるキャラクタも切り替わることになる。なお、ゲームカード４の表面に印刷されているキャラクタとコードデータにより割り当てられるキャラクタとを同一のものとしてもよく、この場合には、プレイヤがゲームカード４とゲーム中のキャラクタとの関係を容易に認識することができる。
【００３０】
画像解析装置２０は、フレーム画像中の基準セル１００の候補を抽出して所定の基準を満たすものを基準セル１００として仮定し、その仮定した基準セル１００の近傍に４つのコーナーセル１０４が存在しているか否かを判定する。４つのコーナーセル１０４を認識すると、画像解析装置２０は、４つのコーナーセル１０４により囲まれた領域、すなわちコードデータ部分１０２における方形セル１０６の配置を読み取り、コードデータを取得する。これにより、仮定した基準セル１００が真の基準セル１００であったことが判断され、ゲームカード４を認識することができる。画像解析装置２０は、撮像装置２を基準（原点）とするゲームカード４の仮想３次元座標系における位置と方向を計算して求める。
【００３１】
図７は、画像解析装置の構成を示す。画像解析装置２０は、フレーム画像取得部４０、実オブジェクト抽出部４２および状態決定部４４を備える。実オブジェクト抽出部４２は、２値化処理部５０、基準セル検出部５２、コード部検出部５４、検証処理部５６を備える。本実施例における画像解析装置２０の処理機能は、ＣＰＵ、メモリ、メモリにロードされたプログラムなどによって実現され、ここではそれらの連携によって実現される構成を描いている。プログラムは、画像解析装置２０に内蔵されていてもよく、また記録媒体に格納された形態で外部から供給されるものであってもよい。したがってこれらの機能ブロックがハードウエアのみ、ソフトウエアのみ、またはそれらの組合せによっていろいろな形で実現できることは、当業者に理解されるところである。図示の例では、画像解析装置２０のＣＰＵが、フレーム画像取得部４０、実オブジェクト抽出部４２、状態決定部４４としての機能をもつ。
【００３２】
フレーム画像取得部４０が、撮像装置２にて撮像された実空間のフレーム画像を取得する。撮像装置２は、周期的にフレーム画像を取得し、好適には１／６０秒間隔でフレーム画像を生成する。
【００３３】
実オブジェクト抽出部４２は、フレーム画像から実オブジェクト画像、すなわちゲームカード４の画像を抽出する。具体的に、２値化処理部５０がフレーム画像を２進数のビット表現に変換して、フレーム画像の情報をビットのオンとオフで表現する。基準セル検出部５２は、フレーム画像の２値化データから、基準セル１００を検出する。基準セル１００を検出すると、コード部検出部５４が、基準セル１００の位置をもとにコード部１１０を検出し、検証処理部５６が、コード部１１０に含まれるコードデータの検証処理を行う。
【００３４】
状態決定部４４は、設定した座標系における実オブジェクトの状態を決定し、具体的には、ゲームカード４の位置、方向および撮像装置２からの距離を決定する。状態決定部４４において決定された位置情報、方向情報、距離情報は、２次元コードから取得されたコードデータにそれぞれ関連付けされて、ゲーム装置３０に送られる。なお、複数のゲームカード４が撮像領域５に存在する場合には、それぞれのゲームカード４ごとに、位置情報、方向情報、距離情報、コードデータが関連付けされてゲーム装置３０に送られる。また、ゲームシステム１では、撮像装置２により撮像されたフレーム画像をディスプレイ７に表示させるため、フレーム画像自体もゲーム装置３０に送られる。ゲーム装置３０は、コードデータに対応付けられたキャラクタを読み出し、３次元の仮想空間においてゲームカード４とキャラクタとを重畳させて表示させる。
【００３５】
図８は、２次元コードの認識処理の処理手順を示すフローチャートである。２次元コードが撮像装置２により撮像され、その結果得られた１フレーム分の画像データが、フレーム画像取得部４０により取得される。２値化処理部５０は、画像データに対して２値化処理を行う（Ｓ１０）。２値化処理では、所定の閾値より大きい輝度を保持する画素の画素値が"０"に符号化され、表示上、その画素は白色とされる。以下においては、このように、画素値が"０"に符号化された画素を、白色画素と称する。一方、閾値以下の輝度値を保持する画素の画素値は、"１"に符号化され、表示上、その画素は黒色とされる。以下においては、このように、画素値が"１"に符号化された画素を、黒色画素と称する。２値化処理部５０は、黒色画素が連続して存在する領域を１つの連結領域としてまとめ、抽出された複数の黒色画素連結領域に対して、番号を１から順に昇順で設定（ラベリング）する（Ｓ１２）。例えば、ラベリングの番号は、連結領域として抽出した順すなわち特定した順に設定されてもよい。番号は、その座標データとともにＲＡＭ（図示せず）に記憶させる。図２に示す２次元コードを利用すると、コーナーセル１０４が方形セル１０６よりも大きく表示されているため、コーナーセル１０４を黒色画素連結領域として検出できる確率および座標位置の精度を高くすることができる。
【００３６】
本実施例において、２次元コードにおける各セルは、フレーム画像において黒色として取得されるため、２値化処理部５０により、黒色画素連結領域として認識される。一方、図３および図５に示したように、ゲームカード４の表面にはキャラクタ画像が表示されている。２値化処理した結果、キャラクタ画像が黒色画素連結領域に含められることは、２次元コードのノイズ成分となって、コード認識に悪影響を与えるため、好ましくない。したがってキャラクタ画像は、２値化処理により白色画素と認識されることが好ましい。
【００３７】
撮像装置２の受光面の前面にはＲＧＢのカラーフィルタが配置されており、フレーム画像ごとに、ＲＧＢのそれぞれの画素値が２５６階調で表現されたデータとして記録される。２値化処理に際して、例えば赤色（Ｒ）の画素値が０〜１００、緑色（Ｇ）の画素値が０〜１００、青色（Ｂ）の画素値が０〜１００となる複合画素の画素値が"１"に符号化され、２値画像としての色が黒色に設定されるようにする。一方、ＲＧＢの少なくとも１つの画素値がこれらの範囲内にない複合画素の画素値は"０"に符号化され、２値画像としての色が白色に設定される。この場合、ＲＧＢの画素値の少なくとも１つが閾値である１００を上回るようにキャラクタ画像に色づけすることで、キャラクタ画像を白色画素として２値化処理することができる。
【００３８】
基準セル検出部５２は、今回対象とする画像データより前に実行された２次元コード認識処理において、認識された２次元コードの表示上の位置、例えば、基準セル１００の中央点が、ＲＡＭに記憶されているか否かを判定する（Ｓ１４）。前フレームにおける基準セル１００の中央点がＲＡＭに記憶されている場合（Ｓ１４のＹ）、記憶されている位置を基準セル検出処理の開始点として設定する（Ｓ１６）。前の画像フレームにおいて基準セル１００が検出されている場合、今回の画像フレームにおいてもゲームカード４の位置は大きく変化していないことが多いため、前フレームの基準セル１００の中央点を利用することで、今回のフレームにおいて効率的に基準セル１００を検出することが可能となる。一方、２次元コードの位置がＲＡＭに記憶されていない場合（Ｓ１４のＮ）、基準セル検出部５２は、ディスプレイ７の表示上の中心点を基準セル検出処理の開始点に設定する（Ｓ１８）。開始点を設定した後、基準セル検出部５２は、基準セル１００の検出処理を実行する（Ｓ２０）。
【００３９】
図９は、基準セルの検出処理を示すフローチャートである。なお、本フローにて示す画素数は撮像装置２の解像度などに依存し、ここでは理解を容易にするため、一例としての画素数を示すこととする。まず、基準セル検出部５２は、図８のＳ１２においてラベリングした黒色画素連結領域の総数Ｍを読み出し、カウンタの値ｊを１に初期設定する（Ｓ１００）。次に、図８のＳ１６またはＳ１８において設定した開始点から、ディスプレイ７の画面上を左回りの渦巻の軌跡に沿って、黒色画素連結領域を探索し、始めに検出した黒色画素連結領域を基準セル候補領域として選択する（Ｓ１０２）。基準セル検出部５２は、選択した基準セル候補領域の縁部分を抽出して、短辺および長辺を決定する（Ｓ１０４）。
【００４０】
基準セル検出部５２は、短辺が所定画素数、例えば２０画素以上の画素で構成されているか否かを判定する（Ｓ１０６）。短辺は１．５ブロック分の長さで構成されているが、短辺が２０画素より少ない画素で構成されている基準セル１００である場合、１ブロックの長さは、さらに少ない数の画素から構成されることとなる。そのため、２次元コードにおける最小の構成要素である方形セル１０６の一辺は約１３画素以下となり、撮像装置２で適切に撮像することはできない。このことより、短辺が２０画素より少ない画素で構成されていると判定された場合（Ｓ１０６のＮ）、Ｓ１０２で選択された黒色画素連結領域は、基準セル１００ではないと判断することとし、Ｓ１１６に進む。
【００４１】
短辺が２０画素以上の画素で構成されていると判定された場合（Ｓ１０６のＹ）、基準セル検出部５２は、基準セル候補領域の長辺が所定画素数、例えば３００画素以下の画素で構成されているか否かを判定する（Ｓ１０８）。例えば、長辺が３００画素より多い画素で構成されている基準セル１００であるとすると、長辺の長さが７に対して１の割合で求められる１ブロックの長さが大きくなり、基準セル１００から、８．５ブロック分離れて位置する右下コーナーセル１０４ｃおよび左下コーナーセル１０４ｄが、撮像装置２にて撮像されなくなる。このことより、長辺が３００画素より多い画素で構成されていると判定された場合（Ｓ１０８のＮ）、Ｓ１０２で選択された黒色画素連結領域は、基準セル１００ではないと判断することとし、Ｓ１１６に進む。
【００４２】
長辺が３００画素以下の画素で構成されていると判定された場合（Ｓ１０８のＹ）、基準セル検出部５２は、基準セル候補領域の黒色画素の総数が、２０画素以上かつ１５００画素未満であるか否かを判定する（Ｓ１１０）。黒色画素の総数が２０画素未満の場合（Ｓ１１０のＮ）、短辺が２０画素より少ない画素で構成された場合と同様の問題が発生し、また、１５００画素以上である場合（Ｓ１１０のＮ）、長辺が３００画素より多い画素で構成された場合と同様の問題が発生する。したがって、これらの場合には、基準セル候補領域が基準セル１００である可能性が小さいと判断することとし、Ｓ１１６に進む。
【００４３】
基準セル候補領域の黒色画素の総数が２０画素以上かつ１５００画素未満である場合（Ｓ１１０のＹ）、基準セル検出部５２が、基準セル候補領域の方形らしさを判定する（Ｓ１１２）。方形らしさは、既述した特許文献１に記載されるように、基準セル候補領域のモーメントをもとに求められる。方形でないと判定する場合（Ｓ１１２のＮ）、基準セル候補領域が基準セル１００でないと判断することとし、Ｓ１１６に進む。方形であると判定される場合（Ｓ１１２のＹ）、基準セル検出部５２は、基準セル候補領域を基準セル１００として設定し（Ｓ１１４）、基準セル候補領域とされた黒色画素連結領域のラベリング番号を、ＲＡＭに記憶させる。このようにして、基準セル１００を検出することができる。画像データ中に１枚のゲームカード４しか含まれていない場合、基準セル１００を検出した時点で、基準セルの検出処理を終了する。一方、ゲームカード４が複数含まれている可能性がある場合には、Ｓ１１６に進む。
【００４４】
基準セル検出部５２は、カウント値ｊが基準セル候補領域の総数Ｍに等しいか否かを判定する（Ｓ１１６）。カウント値ｊが総数Ｍに達していない場合（Ｓ１１６のＮ）、カウント値ｊを１インクリメントして（Ｓ１１８）、Ｓ１０２のステップに戻る。一方、カウント値ｊが総数Ｍに達すると（Ｓ１１６のＹ）、この基準セル検出処理を終了する。
【００４５】
図８に戻って、Ｓ２０の基準セル検出処理において基準セル１００が検出されない場合（Ｓ２２のＮ）、ゲームカード４の存在を確認できないため、２次元コードの認識処理を終了する。一方、基準セル１００が検出されると（Ｓ２２のＹ）、コード部検出処理が実行される（Ｓ２４）。
【００４６】
図１０は、コード部の検出処理を示すフローチャートである。まず、コード部検出部５４は、図９のＳ１１４において設定された基準セル１００の総数Ｎを読み出し、カウンタの値ｋを１に初期設定する（Ｓ２００）。なお、Ｓ１１４において設定した基準セル１００には、設定した順に番号をふっているものとする。続いて、図８のＳ１２においてラベリングした黒色画素連結領域の総数Ｍを読み出し、カウンタの値ｊを１に初期設定する（Ｓ２０２）。コード部検出部５４は、カウント値ｊに対応する番号の黒色画素連結領域を検出し、それを左下隅のコーナーセル候補領域として選択する（Ｓ２０４）。
【００４７】
次に、コード部検出部５４は、選択した左下隅コーナーセル候補領域が、図８のＳ２０において検出してカウント値ｋに対応する番号の基準セル１００に対して予め設定された探索範囲内に存在するか否かを判定する（Ｓ２０６）。基準セル１００と左下隅のコーナーセル１０４ｄとの位置関係は図６に示すように予め定められているため、基準セル１００の座標データから、左下隅コーナーセルを探索する範囲を絞ることが可能である。なお、基準セル１００は横長の矩形状を有するため、長辺側を挟んで対向する２つの位置に探索範囲を設定することが可能となる。探索範囲内に存在しない場合（Ｓ２０６のＮ）、その黒色画素連結領域は左下コーナーセル１０４ｄではないと判断され、Ｓ２３２に進む。探索範囲内に存在する場合（Ｓ２０６のＹ）、その黒色画素連結領域を左下コーナーセル１０４ｄとして設定する（Ｓ２０８）。
【００４８】
左下コーナーセル１０４を設定した後、コード部検出部５４は、黒色画素連結領域の番号をカウントする他のカウンタの値ｌを１に初期設定する（Ｓ２１０）。コード部検出部５４は、カウント値ｌに対応する番号の黒色画素連結領域を検出し、それを右下隅のコーナーセル候補領域として選択する（Ｓ２１２）。
【００４９】
次に、コード部検出部５４は、Ｓ２０８で設定した左下コーナーセル１０４ｄの画素数（面積）と、Ｓ２１２で選択した右下コーナーセル候補領域の画素数（面積）の比を算出し、その比（面積比）が例えば１／６以上または６倍以下であるか否かを判定する（Ｓ２１４）。コーナーセル１０４は撮像装置２からの距離に応じて取得される画素数が変化する。具体的に、撮像装置２に近ければ大きい面積を有し、離れれば面積は小さくなる。そのため、コーナーセル同士であっても画像データ中の面積は異なるケースが想定される。しかしながら、例えば左下コーナーセルと右下コーナーセルの比が１／６より小さく、または６倍よりも大きくなるようなケース（Ｓ２１４のＮ）は通常想定しえないため、これらは一つの２次元コードにおけるコーナーセルであるとみなすことはできず、Ｓ２２６に進む。
【００５０】
面積比が例えば１／６以上、６倍以下である場合（Ｓ２１４のＹ）、コード部検出部５４は、左下コーナーセル１０４ｄの中心点と、Ｓ２１２で選択した右下コーナーセル候補領域の中心点の距離が所定の条件を満たすか否かを判定する（Ｓ２１６）。ここで所定の条件とは、中心点同士の距離が例えば基準セル１００の長辺の長さに近似していることであってもよい。所定の条件が成立しなければ（Ｓ２１６のＮ）、Ｓ２２６にすすみ、所定の条件が成立すると（Ｓ２１６のＹ）、コード部検出部５４は、その黒色画素連結領域を右下コーナーセル１０４ｃとして設定する（Ｓ２１８）。
【００５１】
以上のように左下コーナーセル１０４ｄ、右下コーナーセル１０４ｃを設定すると、コード部検出部５４が、設定した基準セル１００、左下コーナーセル１０４ｄ、右下コーナーセル１０４ｃを、ディスプレイ７の画面上のＸ軸方向およびＹ軸方向にアフィン変換する（Ｓ２２０）。なお、１ブロックの長さは、Ｓ２０で設定した基準セル１００の長辺または短辺の長さに基づいて算出される。コード部検出部５４は、アフィン変換して得られた画像から、コード部１１０の領域に含まれる黒色画素連結領域をセルとしてマッピングし、コードマップを生成する（Ｓ２２２）。
【００５２】
コード部検出部５４は、生成したコードマップのセルのうち、４隅のコーナーセル１０４を検出し、その周りの３ブロック領域が、白色画素とされているか否かを判定する（Ｓ２２４）。コーナーセル１０４の周囲の３ブロック領域が白色画素で構成されている場合（Ｓ２２４のＹ）、そのコードマップを２次元コードのコード部１１０と設定して（Ｓ２３０）、Ｓ２３６に進む。コーナーセル１０４の周囲の３ブロック領域が白色画素でない場合、Ｓ２２６に進む。
【００５３】
Ｓ２２６では、カウント値ｌが黒色画素連結領域の総数Ｍに等しいか否かを判定し、カウント値ｌがＭに等しければ（Ｓ２２６のＹ）、Ｓ２３２に進み、等しくなければ（Ｓ２２６のＮ）、カウント値ｌを１インクリメントして（Ｓ２２８）、Ｓ２１２に戻る。
【００５４】
Ｓ２３２では、カウント値ｊが黒色画素連結領域の総数Ｍに等しいか否かを判定し、カウント値ｊがＭに等しければ（Ｓ２３２のＹ）、Ｓ２３６に進み、等しくなければ（Ｓ２３２のＮ）、カウント値ｊを１インクリメントして（Ｓ２３４）、Ｓ２０４に戻る。
【００５５】
Ｓ２３６では、カウント値ｋが設定した基準セル１００の総数Ｎに等しいか否かを判定し、カウント値ｋがＮに等しくなければ（Ｓ２３６のＮ）、カウント値ｋを１インクリメントして（Ｓ２３８）、Ｓ２０２に戻る。これにより、画像データにおいて複数の２次元コードを探索することが可能となる。カウント値ｋがＮに等しくなると（Ｓ２３６のＹ）、以上により、コード部１１０の検出処理が終了する。
【００５６】
図８に戻って、Ｓ２４のコード部検出処理においてコード部１１０が検出されない場合（Ｓ２６のＮ）、２次元コードの存在を確認できないため、２次元コードの認識処理を終了する。一方、コード部１１０が検出されると（Ｓ２６のＹ）、コードデータの検証処理が実行される（Ｓ２８）。
【００５７】
図１１は、コードデータの検証処理を示すフローチャートである。既述したように、３３ビットのコードデータ中、所定のアルゴリズムで生成された９ビットのチェックデータと、２４ビットの情報データとが存在し、この処理ではチェックデータを用いて、コードデータを検証する。以下では、所定のアルゴリズムで生成したチェックデータを、そのアルゴリズムに基づいてコードデータからチェックデータを生成して照合することで、コードデータを検証する処理を行う。
【００５８】
まず、検証処理部５６は、後のステップであるＳ３０４、Ｓ３０８で算出される基準値を、１ビット右方向にシフトする回数をカウントするカウンタの値ｐを１に初期設定する（Ｓ３００）。次に、検証処理部５６は、コード部１１０のコードマップから、コードデータおよびチェックデータの値を算出する（Ｓ３０２）。
【００５９】
検証処理部５６は、算出したコードデータの値（ビットストリーム）と、０ｘＦＦＦＦＦＦとの排他的論理和演算を行い（Ｓ３０４）、その結果得られた値（ビットストリーム）を基準値（基準ビットストリーム）とする。基準ビットストリームのLSB(Least Significant Bit)に"１"が立っているか否かを判定し（Ｓ３０６）、"１"が立っていないと判定した場合（Ｓ３０６のＮ）、検証処理部５６は、基準値（基準ビットストリーム）と、０ｘ８４０８との排他的論理和演算を行い（Ｓ３０８）、その結果得られた値（ビットストリーム）を新たな基準値（基準ビットストリーム）とし、Ｓ３１０に進む。LSBに"１"がたっている場合（Ｓ３０６のＹ）、同様にＳ３１０に進む。
【００６０】
検証処理部５６は、Ｓ３０４またはＳ３０８において算出した基準値（基準ビットストリーム）を１ビットだけ右にシフトさせ（Ｓ３１０）、カウント値ｐが、予め定めたシフト回数である２４に等しいか否かを判定する（Ｓ３１２）。ｐ＝２４ではないと判定した場合（Ｓ３１２のＮ）、カウント値ｐを１だけインクリメントした後（Ｓ３１４）、Ｓ３０６に戻る。
【００６１】
ｐ＝２４であると判定した場合（Ｓ３１２のＹ）、算出されたビットストリームと、０ｘ１ＦＦとの論理積演算を行う（Ｓ３１６）。検証処理部５６は、論理積演算より得られ値が、算出したチェックデータの値と等しいか否かを判定し（Ｓ３１８）、等しいと判定した場合（Ｓ３１８のＹ）、図８のＳ２４で検出されたコード部１１０が、２次元コードとして適正なパターンであるとし、２次元コードのコード部１１０を確定する（Ｓ３２０）。チェックコードと等しくなければ（Ｓ３１８のＮ）、コード部１１０の読み取りに誤りがあったことを判定して、コードデータの検証処理を終了する。なお、図１１では１つのコード部１１０の検証処理のみを示しているが、複数のコード部１１０が検出されている場合は、それぞれについてこの検証処理を実行する。
【００６２】
図８に戻って、Ｓ２８のコードデータ検出処理においてコード部１１０が確定されない場合（Ｓ３０のＮ）、２次元コードの存在を確認できないため、２次元コードの認識処理を終了する。一方、コード部１１０が確定されると（Ｓ３０のＹ）、コードデータの値、すなわち、２次元コードの値を、例えばＲＡＭに記憶させ、保持し（Ｓ３２）、２次元コードの認識処理を終了する。
【００６３】
以上のように、図２〜図４に関連して説明したゲームカード４を利用することで、撮像装置２が２次元コードを認識できるだけでなく、ユーザにキャラクタ画像を提示できるため、ゲームカード４のデザイン性を高めることができる。また、偏光部材により２次元コードを構成することで、単純にコピーするだけではゲームカード４を偽造することができず、ゲームカード４の稀少価値を高めることができる。
【００６４】
また、２次元コードのコーナーセル１０４を大きく構成することで、コード部１１０におけるコーナーセル１０４の認識率を高めることができるとともに、２次元座標系におけるコーナーセル１０４の座標位置を正確に求めることが可能となる。具体的には、コーナーセル１０４の中心位置を正確に求めることができるため、ゲームカード４の位置を正確に特定できる。また、複数のコーナーセル１０４の中心位置を正確に求めることで、基準セル１００とコーナーセル１０４との位置関係を正確に把握して、アフィン変換の精度を高めることができ、ゲームカード４の位置やゲームカード４が向いている方向などを正確に特定できる。
【００６５】
以下に、３次元座標系におけるゲームカード４の位置および方向の求め方について説明する。ゲームカード４の仮想３次元座標系の位置および方向を求めるために、本実施例では、撮像装置２の画角、スクリーン解像度、４つのコーナーセル１０４のスクリーン座標位置、実際のコーナーセル１０４間の距離を利用する。なお、スクリーンとは、撮像装置２により撮像された画像を表示するディスプレイ７の画面である。
【００６６】
（ステップ１）
まず、視点からスクリーン投影面までの距離を求める。ここでは、カメラの画角とスクリーン解像度により、視点からスクリーン投影面までの距離を求める。
カメラの水平方向の画角：θ
スクリーンの水平方向の解像度：Ｗ
視点からスクリーン投影面までの距離：Ｐ
とすると、以下の計算式が成り立つ。
Ｐ＝（Ｗ×０．５）／ｔａｎ（θ×０．５）
【００６７】
（ステップ２）
次に、視点から各コーナーセル１０４に伸びる３次元ベクトルを求める。
コーナーセルのスクリーン座標位置：ＳＸ、ＳＹ
視点からスクリーン投影面までの距離：Ｐ
コーナーセルへ伸びる３次元ベクトル：Ｖ
とすると、以下の計算式が成り立つ。
Ｖ＝（ＳＸ，ＳＹ，Ｐ）
なお、スクリーン座標位置は、スクリーンの中央を原点としている。
【００６８】
（ステップ３）
視点と、隣り合う２つのコーナーセルの３点が形成する平面の法線ベクトルを求める。この法線ベクトルは、合計で４つ生成される。
視点からコーナーセル１０４ａへ伸びる３次元ベクトル：Ｖ１
視点からコーナーセル１０４ｂへ伸びる３次元ベクトル：Ｖ２
視点からコーナーセル１０４ｃへ伸びる３次元ベクトル：Ｖ３
視点からコーナーセル１０４ｄへ伸びる３次元ベクトル：Ｖ４
視点とコーナーセル１０４ａ、１０４ｂが形成する平面の法線ベクトル：Ｓ１２
視点とコーナーセル１０４ｂ、１０４ｃが形成する平面の法線ベクトル：Ｓ２３
視点とコーナーセル１０４ｃ、１０４ｄが形成する平面の法線ベクトル：Ｓ３４
視点とコーナーセル１０４ｄ、１０４ａが形成する平面の法線ベクトル：Ｓ４１
とすると、以下の計算式が成り立つ。
Ｓ１２＝Ｖ１×Ｖ２
Ｓ２３＝Ｖ２×Ｖ３
Ｓ３４＝Ｖ３×Ｖ４
Ｓ４１＝Ｖ４×Ｖ１
なお、「×」は、外積を指す。
【００６９】
（ステップ４）
続いて、ゲームカード４の３次元上での方向（座標軸）を求める。ステップ３で求めた４つの法線ベクトルをもとに、カードの座標軸が求まる。
カードのローカル座標Ｘ軸（カード表面に対して左右方向）：ＶＸ
カードのローカル座標Ｙ軸（カード表面に対して貫く方向）：ＶＹ
カードのローカル座標Ｚ軸（カード表面に対して上下方向）：ＶＺ
とすると、以下の計算式が成り立つ。
ＶＸ＝Ｓ１２×Ｓ３４
ＶＺ＝Ｓ２３×Ｓ４１
ＶＹ＝ＶＺ×ＶＸ
【００７０】
（ステップ５）
最後に、ゲームカード４の３次元上での位置を求める。ステップ４では、ゲームカード４のローカル座標変換マトリクスを求めたが、現実のコーナーセル間の距離が分かれば、カードの位置は容易に求められる。コーナーセル１０４ａの３次元座標位置を変数として表現すると、その変数を使ってコーナーセル１０４ｂ、１０４ｃ、１０４ｄの３次元座標位置を表すことができる。４つのコーナーセルのスクリーン座標位置は判明しているため、これらの計算式の連立方程式を解くことで、ゲームカード４の３次元座標位置を特定できる。
【００７１】
以上、本発明を実施例をもとに説明した。この実施例は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００７２】
実施例では、偏光部材を用いて２次元コードを視認可能な状態として設定することとしたが、例えば、ホログラムを利用して２次元コードを生成することも可能である。ホログラムの種類には、例えばレインボーホログラムやリップマンホログラムなどが存在する。ホログラムの記録材料に、物体の情報をもつ物体光と、参照光とを導き、物体光と参照光とが干渉してできる干渉縞を記録することで、ホログラムは生成される。したがって、ホログラムの記録材料上に参照光の入射角を変えながら複数のホログラムを多重記録することで、第１の方向においてキャラクタ画像を視認可能な状態とし、第２の方向において２次元コードを視認可能な状態とすることが可能となる。
【図面の簡単な説明】
【００７３】
【図１】実施例にかかるゲームシステムの構成を示す図である。
【図２】ゲームカードを異なる方向からユーザおよび撮像装置が見ている状態を示す図である。
【図３】ゲームカードにおける第１画像部を示す図である。
【図４】ゲームカードにおける第２画像部を示す図である。
【図５】図４に示す２次元コードを偏光部材で形成して、ゲームカードを正面から見た状態を示す図である。
【図６】２次元コードを示す図である。
【図７】画像解析装置の構成を示す図である。
【図８】２次元コードの認識処理の処理手順を示すフローチャートである。
【図９】基準セルの検出処理を示すフローチャートである。
【図１０】コード部の検出処理を示すフローチャートである。
【図１１】コードデータの検証処理を示すフローチャートである。
【符号の説明】
【００７４】
１・・・ゲームシステム、４・・・ゲームカード、６・・・出力装置、７・・・ディスプレイ、１０・・・画像処理装置、２０・・・画像解析装置、２２・・・第１画像部、２４・・・第２画像部、３０・・・ゲーム装置、４０・・・フレーム画像取得部、４２・・・実オブジェクト抽出部、４４・・・状態決定部、５０・・・２値化処理部、５２・・・基準セル検出部、５４・・・コード部検出部、５６・・・検証処理部。
【図１】
2006110888.tif 000003
【図２】
2006110888.tif 000004
【図３】
2006110888.tif 000005
【図４】
2006110888.tif 000006
【図５】
2006110888.tif 000007
【図６】
2006110888.tif 000008
【図７】
2006110888.tif 000009
【図８】
2006110888.tif 000010
【図９】
2006110888.tif 000011
【図１０】
2006110888.tif 000012
【図１１】
2006110888.tif 000013