(57)【要約】【課題】２次元コードのデザインの自由度を向上させることが可能な電子機器、２次元コード認識方法及びプログラム、並びにデザインの自由度が高い２次元コードを提供すること。【解決手段】２次元コード５の各コードセット５３は、十字型を構成する５つのガイド領域５１と、中心のガイド領域５１の内部に配置されたデータ領域５２とで構成される。ゲーム機器１は、当該２次元コード５が撮像された撮像画像７を取得すると、５つの黒色連結領域（ガイド領域Ａ〜Ｅ）を選択し、中心のガイド領域Ａがそれぞれ左右の各ガイド領域Ｂ及びＣを結ぶ線分ＢＣと、上下の各ガイド領域Ｄ及びＥを結ぶ線分ＤＥとの各中点となっているかを判断し、また線分ＢＣと線分ＤＥのなす各θが所定角度ｔ以上であるか否かを判断することで、５つの黒色連結領域が十字型を構成しているか否かを判断する。十字型を構成している場合には、データ領域５２からデータを認識する。【選択図】  図２
2008269121.tif 000002
【特許請求の範囲】
【請求項１】
２次元コードを認識する電子機器であって、
所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、当該電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得する画像取得手段と、
前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出する検出手段と、
前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断する第１の判断手段と、
前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断する第２の判断手段と、
前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識する認識手段と
を具備することを特徴とする電子機器。
【請求項２】
請求項１に記載の電子機器であって、
前記撮像画像から、前記第１の線分と前記第２の線分とがなす角の角度を算出する算出手段と、
前記算出された角度が所定角度の範囲内であるか否かを判断する第３の判断手段と
を更に具備し、
前記認識手段は、前記角度が所定角度の範囲内であると判断された場合に前記第１のデータを認識する
ことを特徴とする電子機器。
【請求項３】
請求項１に記載の電子機器であって、
前記第１のデータは画像データであり、
前記認識手段は、前記第１のデータ領域から前記画像データを認識するとともに、前記画像データ上における前記第２乃至第５の領域の各座標データを認識し、
当該電子機器は、
前記認識された各座標データに基づく描画位置及び描画方向に、前記認識された画像データを描画する描画手段を更に具備する
ことを特徴とする電子機器。
【請求項４】
請求項３に記載の電子機器であって、
前記第１のデータ領域は、エラー検出のためのエラー検出領域を有し、
前記認識手段は、前記第２乃至第５の領域が存在する方向をそれぞれ基準方向として前記第１のデータ領域をデコードした場合に、前記エラー検出領域によりエラーが検出されなかった前記基準方向を基に前記各座標データを認識する
ことを特徴とする電子機器。
【請求項５】
請求項１に記載の電子機器であって、
前記２次元コードは、前記第１及び第２の領域を前記第１の基準領域と共有する第２の基準領域であって、前記第２の領域を第２の中点とし前記第１の領域を一端とする第３の線分の他端に配置され前記所定形状を有する第６の領域と、前記第２の中点を前記第３の線分と共有し前記第１の長さを有し前記第２の線分と平行な第４の線分の各端点にそれぞれ配置されそれぞれ前記所定形状を有する第７及び第８の領域とを有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、前記第２の領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域とを有し、
前記検出手段は、前記撮像画像から前記所定形状を基に前記第１及び第２の領域とともに前記第６乃至第８の領域を検出し、
前記第１の判断手段は、前記第２の領域が、前記第３及び第４の線分からそれぞれ前記所定距離の範囲内に存在するか否かを判断し、
前記第２の判断手段は、前記第２の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第２及び第６の領域間の第５の距離と前記第２及び第１の領域間の第６の距離との第３の比と、前記第２及び第７の領域間の第７の距離と前記第２及び第８の領域間の第８の距離との第４の比とが、それぞれ前記所定比の範囲内であるか否かを判断し、
前記認識手段は、前記第３及び第４の比が前記所定比の範囲内であると判断された場合に、前記第２の認識範囲において前記第２のデータ領域から前記第２のデータを認識する
ことを特徴とする電子機器。
【請求項６】
請求項１に記載の電子機器であって、
前記２次元コードは、前記第２の領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域を有し、
当該電子機器は、
前記第１の領域を識別する第１の識別情報を前記第１のデータと対応付けて記憶し、前記第２の領域を識別する第２の識別情報を前記第２のデータと対応付けて記憶する記憶手段を更に具備し、
前記認識手段は、前記第１及び第２のデータ領域からそれぞれ前記第１及び第２のデータを認識するとともに、前記認識された第１のデータに対応する前記第１の識別情報と、前記認識された第２のデータに対応する前記第２の識別情報とを比較することで前記認識された第１のデータの信憑性を確認する
ことを特徴とする電子機器。
【請求項７】
請求項１に記載の電子機器であって、
前記２次元コードは、前記第１の領域を前記第１の基準領域と共有する第２の基準領域であって、当該第１の領域を第２の中点として共有しそれぞれ前記第１の長さと異なる第２の長さを有し前記第１の線分及び第２の線分とそれぞれ同一直線上に存在する第３の線分及び第４の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第６、第７、第８及び第９の領域を有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、前記第２の基準領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域とを有し、
前記検出手段は、前記撮像画像から前記所定形状を基に前記第１の領域とともに前記第６乃至第９の領域を検出し、
前記第１の判断手段は、前記第２の領域が、前記第３及び第４の線分からそれぞれ前記所定距離の範囲内に存在するか否かを判断し、
前記第２の判断手段は、前記第１及び第６の領域間の第５の距離と前記第１及び第７の領域間の第６の距離との第３の比と、前記第１及び第８の領域間の第７の距離と前記第１及び第９の領域間の第８の距離との第４の比とが、それぞれ前記所定比の範囲内であるか否かを判断し、
前記認識手段は、前記第３及び第４の比が前記所定比の範囲内であると判断された場合に、前記第２の認識範囲において前記第２のデータ領域から前記第２のデータを認識する
ことを特徴とする電子機器。
【請求項８】
請求項１に記載の電子機器であって、
前記第１の線分と前記第２の線分とは直交することを特徴とする電子機器。
【請求項９】
請求項１に記載の電子機器であって、
前記第２乃至第５の領域は、前記第１の領域を中心とする正六角形の６つの頂点のうちの４つをなし、
前記第１及び第２の線分は、前記正六角形の前記中心を通る３本の対角線のうちの２本をなす
ことを特徴とする電子機器。
【請求項１０】
請求項１に記載の電子機器であって、
前記第１のデータ領域は、前記第１の領域の内部に配置されることを特徴とする電子機器。
【請求項１１】
請求項１に記載の電子機器であって、
前記所定形状は円形であることを特徴とする電子機器。
【請求項１２】
電子機器が２次元コードを認識する方法であって、
所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得し、
前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出し、
前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断し、
前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断し、
前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識する
ことを特徴とする２次元コード認識方法。
【請求項１３】
２次元コードを認識する電子機器に、
所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得するステップと、
前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出するステップと、
前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断するステップと、
前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断するステップと、
前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識するステップと
を実行させるためのプログラム。
【請求項１４】
電子機器に認識される２次元コードであって、
所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、当該２次元コードにおける第１の認識範囲を規定する第１の基準領域と、
前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域と
を具備することを特徴とする２次元コード。
【請求項１５】
請求項１４に記載の２次元コードであって、
前記第１及び第２の領域を前記第１の基準領域と共有する第２の基準領域であって、前記第２の領域を第２の中点とし前記第１の領域を一端とする第３の線分の他端に配置され、前記所定形状を有する第６の領域と、前記第２の中点を前記第３の線分と共有し前記第１の長さを有し前記第２の線分と平行な第４の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第７及び第８の領域とを有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、
前記第２の領域と前記所定の関係を有する第２の位置に配置され、前記電子機器により処理される第２のデータに対応する第２のデータ領域と
を更に具備することを特徴とする２次元コード。
【請求項１６】
請求項１４に記載の２次元コードであって、
前記第１の領域を前記第１の基準領域と共有する第２の基準領域であって、前記第１の領域を第２の中点として共有しそれぞれ前記第１の長さと異なる第２の長さを有し前記第１の線分及び第２の線分とそれぞれ同一直線上に存在する第３の線分及び第４の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第６、第７、第８及び第９の領域を有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、
前記第２の領域と前記所定の関係を有する第２の位置に配置され、前記電子機器により処理される第２のデータに対応する第２のデータ領域と
を更に具備することを特徴とする２次元コード。
【請求項１７】
請求項１４に記載の２次元コードであって、
前記第１の線分と前記第２の線分とは直交することを特徴とする２次元コード。
【請求項１８】
請求項１４に記載の２次元コードであって、
前記第２乃至第５の領域は、前記第１の領域を中心とする正六角形の６つの頂点のうちの４つをなし、
前記第１及び第２の線分は、前記正六角形の前記中心を通る３本の対角線のうちの２本をなす
ことを特徴とする２次元コード。
【請求項１９】
請求項１４に記載の２次元コードであって、
前記第１のデータ領域は、前記第１の領域の内部に配置されることを特徴とする２次元コード。
【請求項２０】
請求項１４に記載の２次元コードであって、
前記所定形状は円形であることを特徴とする２次元コード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、２次元コードを認識可能な電子機器、当該電子機器における２次元コード認識方法、プログラム、及び２次元コードに関する。
【背景技術】
【０００２】
従来から、例えばカードや紙媒体等に印刷された２次元コードをカメラで撮像し、撮像画像からそのコードパターンを認識し、あたかも２次元コード上に立体物が存在するかのように、当該コードパターンに対応するＣＧ（Computer Graphics）画像をテレビやＰＣ（Personal Computer）等の画面上に表示させる技術が存在する。
【０００３】
このような２次元コードとしては、例えば下記特許文献１に記載のように、バー状の方形領域（基準セル）と、４隅の方形領域（コーナーセル）と、基準セル及びコーナーセルに囲まれるコード部の領域とで構成される２次元コードが用いられる。この特許文献１においては、撮像された撮像画像から、まず基準セルを認識し、当該基準セルを基準にして各コーナーセルを認識し、当該コーナーセルに基づいてコード部の領域内に存在するコードデータを検出することが可能な２次元コード認識処理装置が記載されている。基準セル及びコーナーセルを用いることで、コードデータの位置及び方向を規定することが可能となっている。
【０００４】
【特許文献１】特開２０００−８２１０８号公報（図４等）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１に記載の２次元コードを用いる場合、上記バー状の基準セルが必要となり、この基準セルが２次元コード上で大きなスペースを占有している。このため、２次元コードや、それが印刷される紙やカード媒体のデザインの自由度が低くなってしまう。
【０００６】
以上のような事情に鑑み、本発明の目的は、２次元コードのデザインの自由度を向上させることが可能な電子機器、２次元コード認識方法及びプログラム、並びにデザインの自由度が高い２次元コードを提供することにある。
【０００７】
上述の課題を解決するため、本発明の主たる観点に係る電子機器は、２次元コードを認識する電子機器であって、所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、当該電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得する画像取得手段と、前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出する検出手段と、前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断する第１の判断手段と、前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断する第２の判断手段と、前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識する認識手段とを具備する。
【０００８】
この構成においては、上記第１の判断手段により、第１乃至第３の領域が略第１の線分上に存在し、かつ、第１、第４及び第５の領域が略第２の線分上に存在することを判断することができる。また上記第２の判断手段により、第１の領域が、第２及び第３の領域を両端点とする第１の線分の略中点となり、かつ、第４及び第５の領域を両端点とする第２の線分の略中点となっていることを判断することができる。したがって、上記構成によれば、１つの領域を中心に配置された５つの領域を有する基準領域と、データ領域とで構成されるような２次元コードを、上記撮像方向が２次元コードに対して垂直方向である場合はもちろん、斜め方向である場合でも高精度に認識して上記データ領域に対応する第１のデータを認識することが可能となる。これにより、従来のように例えば４隅の各方形領域とバー状の方形領域とを基準領域としてコードを認識する２次元コードに比べて、コード中の基準領域の占有面積を小さくし、コードのデザインの自由度を向上させることができる。例えば、コードとともに他の絵柄等を印刷するようなことも可能となる。
【０００９】
なお、ここで上記所定形状とは、円形や正多角形等であり、上記データ領域の形状と異なるものであっても同一であっても構わない。上記所定距離とは例えば３ピクセルであり、上記所定比の範囲とは例えば１：１．１〜１．１：１の範囲である。また電子機器とは、ゲーム機器、ＰＣ、テレビジョン受像機やその他のＡＶ（Audio / Video）機器、携帯電話機等、据置型または携帯型のあらゆる電子機器をいう。また第１のデータとは、例えばゲームのキャラクターや建物等の３次元画像データや、写真等の２次元画像データ、テキストデータ、各種アプリケーションを実行するためのコマンドデータ等である。
【００１０】
上記電子機器は、前記撮像画像から、前記第１の線分と前記第２の線分とがなす角の角度を算出する算出手段と、前記算出された角度が所定角度の範囲内であるか否かを判断する第３の判断手段とを更に具備し、前記認識手段は、前記角度が所定角度の範囲内であると判断された場合に前記第１のデータを認識するようにしてもよい。
【００１１】
ここで、上記角とは、第１の線分と第２の線分とがなす角のうち例えば鋭角をいい、所定角度の範囲とは、例えば２０度〜３０度以上９０度以下であるが、この範囲に限られるものではない。また鈍角について範囲を例えば９０度以上１５０度〜１６０度としても構わない。これにより、第１の線分と第２の線分とがなす角度が所定角度の範囲内であるか否かを判断することで、上記第１乃至第５の領域がなす形状を更に高精度に認識することができる。
【００１２】
上記電子機器において、前記第１のデータは画像データであり、前記認識手段は、前記第１のデータ領域から前記画像データを認識するとともに、前記画像データ上における前記第２乃至第５の領域の各座標データを認識し、当該電子機器は、前記認識された各座標データに基づく描画位置及び描画方向に、前記認識された画像データを描画する描画手段を更に具備していても構わない。
【００１３】
これにより、上記第２乃至第５の領域の各座標データを基に画像データを描画することができるため、電子機器に３次元画像や２次元画像を任意の方向に描画させるための２次元コードを高い自由度でデザインすることができる。
【００１４】
またこの場合、前記第１のデータ領域は、エラー検出のためのエラー検出領域を有し、
前記認識手段は、前記第２乃至第５の領域が存在する方向をそれぞれ基準方向として前記第１のデータ領域をデコードした場合に、前記エラー検出領域によりエラーが検出されなかった前記基準方向を基に前記各座標データを認識するようにしても構わない。
【００１５】
これにより、従来のようにバー状の方形領域を設けることなく画像データの描画方向を確実に認識することが可能となるため、コードを対照的なデザインとすることができ、コードのデザイン性を向上させることができる。
【００１６】
上記電子機器において、前記２次元コードは、前記第１及び第２の領域を前記第１の基準領域と共有する第２の基準領域であって、前記第２の領域を第２の中点とし前記第１の領域を一端とする第３の線分の他端に配置され前記所定形状を有する第６の領域と、前記第２の中点を前記第３の線分と共有し前記第１の長さを有し前記第２の線分と平行な第４の線分の各端点にそれぞれ配置されそれぞれ前記所定形状を有する第７及び第８の領域とを有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、前記第２の領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域とを有し、前記検出手段は、前記撮像画像から前記所定形状を基に前記第１及び第２の領域とともに前記第６乃至第８の領域を検出し、前記第１の判断手段は、前記第２の領域が、前記第３及び第４の線分からそれぞれ前記所定距離の範囲内に存在するか否かを判断し、前記第２の判断手段は、前記第２の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第２及び第６の領域間の第５の距離と前記第２及び第１の領域間の第６の距離との第３の比と、前記第２及び第７の領域間の第７の距離と前記第２及び第８の領域間の第８の距離との第４の比とが、それぞれ前記所定比の範囲内であるか否かを判断し、前記認識手段は、前記第３及び第４の比が前記所定比の範囲内であると判断された場合に、前記第２の認識範囲において前記第２のデータ領域から前記第２のデータを認識するようにしてもよい。
【００１７】
これにより、第１の領域を中心とする第１の基準領域の第１及び第２の領域を、第２の領域を中心とする第２の基準領域と共有することができるため、コードの占有面積を極力抑えながらも、１つの２次元コードでより大容量のデータを認識させることができる。
【００１８】
またこの場合、前記２次元コードは、前記第２の領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域を有し、当該電子機器は、前記第１の領域を識別する第１の識別情報を前記第１のデータと対応付けて記憶し、前記第２の領域を識別する第２の識別情報を前記第２のデータと対応付けて記憶する記憶手段を更に具備し、前記認識手段は、前記第１及び第２のデータ領域からそれぞれ前記第１及び第２のデータを認識するとともに、前記認識された第１のデータに対応する前記第１の識別情報と、前記認識された第２のデータに対応する前記第２の識別情報とを比較することで前記認識された第１のデータの信憑性を確認するようにしても構わない。
【００１９】
なお、ここで第２の領域を上記第３乃至第５の領域のうち何れかの領域に置き換えて構成することもできる。これにより、第１の領域から第１のデータを認識するのみならず、第１の領域の識別情報と、第１の領域の周囲に存在する領域の識別情報とを比較することで、第１のデータの信憑性を確認できるため、当該第１のデータの認識精度を向上させ、誤認識を防止することができる。
【００２０】
上記電子機器において、前記２次元コードは、前記第１の領域を前記第１の基準領域と共有する第２の基準領域であって、当該第１の領域を第２の中点として共有しそれぞれ前記第１の長さと異なる第２の長さを有し前記第１の線分及び第２の線分とそれぞれ同一直線上に存在する第３の線分及び第４の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第６、第７、第８及び第９の領域を有し、前記２次元コードにおける第２の認識範囲を規定する第２の基準領域と、前記第２の基準領域と前記所定の関係を有する第２の位置に配置され、当該電子機器により処理される第２のデータに対応する第２のデータ領域とを有し、前記検出手段は、前記撮像画像から前記所定形状を基に前記第１の領域とともに前記第６乃至第９の領域を検出し、前記第１の判断手段は、前記第２の領域が、前記第３及び第４の線分からそれぞれ前記所定距離の範囲内に存在するか否かを判断し、前記第２の判断手段は、前記第１及び第６の領域間の第５の距離と前記第１及び第７の領域間の第６の距離との第３の比と、前記第１及び第８の領域間の第７の距離と前記第１及び第９の領域間の第８の距離との第４の比とが、それぞれ前記所定比の範囲内であるか否かを判断し、前記認識手段は、前記第３及び第４の比が前記所定比の範囲内であると判断された場合に、前記第２の認識範囲において前記第２のデータ領域から前記第２のデータを認識するようにしてもよい。
【００２１】
これにより、上記第１の領域を共有して第１の基準領域の内側または外側に存在する第２の基準領域を基に第２のデータを認識できるため、コードの占有面積を極力抑えながらも、複数の異なる距離から認識可能なマルチスケールのコードを構成し、１つの２次元コードでより大容量のデータを認識させることができる。
【００２２】
上記電子機器において、前記第１のデータ領域は、前記第１の領域の内部に存在するものであってもよい。
【００２３】
これにより、基準領域の数よりも領域数を増やすことなくデータ領域を配置することができる。したがって、基準領域を検出しデータ領域を認識する際の検出候補及び認識候補が減ることになり、検出速度及び認識速度を向上させることができる。
【００２４】
上記電子機器において、前記第１の線分と前記第２の線分とは直交するものであってもよい。
【００２５】
これにより、第１の基準領域は、第１乃至第５の領域により十字型を構成することになる。したがって、複数の他の基準領域を、第１の基準領域とともに均一に敷き詰めるように配置することができ、デザインの自由度を損なうことなく配置スペースを効率良く利用しながら、より大容量のデータを認識させることができる。
【００２６】
上記電子機器において、前記第２乃至第５の領域は、前記第１の領域を中心とする正六角形の６つの頂点のうちの４つをなし、前記第１及び第２の線分は、前記正六角形の前記中心を通る３本の対角線のうちの２本をなすものであっても構わない。
【００２７】
これにより、第１の基準領域以外の複数の基準領域を、第１の基準領域とともに複数の六角形を形成するように敷き詰めることができ、デザインの自由度を損なうことなく配置スペースを効率良く利用しながら、より大容量のデータを認識させることができる。
【００２８】
上記電子機器において、前記所定形状は円形であってもよい。
【００２９】
これにより、２次元コードの撮像角度が斜めになった場合でも、円形が楕円として撮像されるのみで、方形等の他の形状に比べて撮像角度による形状変化が小さいため、上記第１乃至第５の領域の検出精度を向上させることができる。
【００３０】
本発明の他の観点に係る２次元コード認識方法は、電子機器が２次元コードを認識する方法であって、所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得し、前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出し、前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断し、前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断し、前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識するものである。
【００３１】
本発明のまた別の観点に係るプログラムは、２次元コードを認識する電子機器に、所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、前記２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域とを有する前記２次元コードが撮像された撮像画像を取得するステップと、前記取得された撮像画像から、前記所定形状を基に前記第１乃至第５の領域を検出するステップと、前記検出された第１の領域が、前記第１及び第２の線分からそれぞれ所定距離の範囲内に存在するか否かを判断するステップと、前記第１の領域が前記所定距離の範囲内に存在すると判断された場合に、前記第１及び第２の領域間の第１の距離と前記第１及び第３の領域間の第２の距離との第１の比と、前記第１及び第４の領域間の第３の距離と前記第１及び第５の領域間の第４の距離との第２の比とが、それぞれ所定比の範囲内であるか否かを判断するステップと、前記第１及び第２の比が前記所定比の範囲内であると判断された場合に、前記第１の認識範囲において前記第１のデータ領域から前記第１のデータを認識するステップとを実行させるためのものである。
【００３２】
本発明のまた別の観点に係る２次元コードは、電子機器に認識される２次元コードであって、所定形状を有する第１の領域と、当該第１の領域を第１の中点として共有しそれぞれ第１の長さを有する第１の線分及び第２の線分の各端点にそれぞれ配置され、それぞれ前記所定形状を有する第２、第３、第４及び第５の領域とを有し、当該２次元コードにおける第１の認識範囲を規定する第１の基準領域と、前記第１の領域と所定の関係を有する第１の位置に配置され、前記電子機器により処理される第１のデータに対応する第１のデータ領域とを具備するものである。
【発明の効果】
【００３３】
以上のように、本発明によれば、２次元コードのデザインの自由度を向上させることが可能な電子機器、２次元コード認識方法及びプログラム、並びにデザインの自由度の高い２次元コードを提供することができる。
【発明を実施するための最良の形態】
【００３４】
以下、本発明の実施の形態を図面に基づき説明する。
【００３５】
図１は、本発明の一実施形態に係るゲーム機器の使用態様を示した図である。同図に示すように、ゲーム機器１は、モニタ２及びカメラ３に例えばケーブル等で電気的に接続されている。また、モニタ２の前方の載置スペース８には、２次元コード５が印刷されたカード４が載置される。
【００３６】
ゲーム機器１は、ゲームの画像をモニタ２に表示させユーザの操作等に従ってゲームプログラムを実行する。モニタ２は例えば液晶テレビや液晶ディスプレイ装置である。カメラ３は、例えばＣＣＤ（Charge Coupled Device）やＣＭＯＳ（Complementary Metal Oxide Semiconductor）等の撮像素子により、上記載置スペース８に載置されたカード４を撮像して撮像画像として取り込み、当該撮像画像をゲーム機器１へ供給する。ゲーム機器１は、当該撮像画像に含まれるカード４に印刷された２次元コード５のパターンを認識し、当該パターンに対応する処理を実行する。例えば、ゲーム機器１は、同図に示すように、当該パターンに対応するゲームキャラクター等のＣＧオブジェクト６の３次元画像を、カメラ３から供給される撮像画像７中の２次元コード５の上に重畳させてモニタ２に表示させる。
【００３７】
なお、カード４の材質としては紙、プラスチック、金属等、印刷が可能であればいかなる材質も使用することができる。またカードの形状としては、円形、正方形、長方形、または他の多角形等、いかなる形状でも適用できる。
【００３８】
次に、上記２次元コード５について説明する。図２は、当該２次元コード５を示した図である。同図に示すように、本実施形態における２次元コード５は、円形の黒色連結領域である複数のガイド領域５１（５１ａ、５１ｂ、・・・）と、各ガイド領域５１内部に存在する方形の白色連結領域であるデータ領域５２（５２ａ、５２ｂ・・・）とで構成される。
【００３９】
ガイド領域５１は、ゲーム機器１によるコード認識処理の際の基準となる領域であり、マトリクス上に配置される。本実施形態においては、２次元コード５は、９（行）×９（列）の計８１個のガイド領域５１を有しているが、この数に限られるものではない。また各ガイド領域５１の面積は同一でなくともよい。本実施形態においては、２次元コード５は、面積の異なる３種類のガイド領域５１を有している。具体的には、２次元コード５は、最大面積を有する９個のガイド領域５１（例えばガイド領域５１ａ）と、上記最大面積の１／４の面積を有する１６個のガイド領域５１（例えばガイド領域５１ｂ）、上記最大面積の１／１６の面積を有する５６個のガイド領域５１（例えばガイド領域５１ｊ）を有している。以下の説明では、これら３種類の面積の各ガイド領域５１を、面積が大きい順にそれぞれ大ガイド領域５１１、中ガイド領域５１２、小ガイド領域５１３と称して各面積を区別する場合もあるものとする。
【００４０】
２次元コード５は、１つのガイド領域５１（例えばガイド領域５１ａ）と、当該１つのガイド領域を中心に上下左右に配置された４つのガイド領域（例えばガイド領域５１ｂ〜５１ｅ）とで十字型を構成する５つのガイド領域５１と、当該中心となるガイド領域５１の内部に配置されたデータ領域５２（例えば５２ａ−１）とを１単位のコードとして有しており、この十字型の１単位のコード（以下、コードセット５３（５３ａ、５３ｂ・・・）という。）が複数敷き詰められることで、上記マトリクスを構成している。この各コードセット５３は、ゲーム機器１によるコード認識処理の際の認識範囲と、上記ＣＧオブジェクト６の描画処理における描画方向及び描画位置（座標）とを規定している。各コードセット５３を構成する５つのガイド領域５１としては、上記大ガイド領域５１１、中ガイド領域５１２、小ガイド領域５１３が混在する場合もある。
【００４１】
データ領域５２は、上記各コードセット５３の中心に位置するガイド領域５１の内部に、例えばガイド領域５１の円周に沿って配置され、それぞれ上記ＣＧオブジェクト６を構成する画像データと対応付けられている。またデータ領域５２は、当該ＣＧオブジェクト６が描画される座標系において、１つのＣＧオブジェクト６中の異なる位置（各コードセット５３の中心となるガイド領域５１の座標）及び範囲（各コードセット５３の大きさ）と対応付けられている。更に、各データ領域５２には、当該各データ領域５２を有する各ガイド領域５１（の位置）を識別するためのＩＤが対応付けられている。具体的には、同図の１行目（最上行）の９個のガイド領域５１に例えば同図の最左列から順に連番で１、２、３・・・９とＩＤを割り当て、続く２行目の９個のガイド領域５１にも最左列から順に連番で１１、１２、１３・・・１９とＩＤを割り当てる。すなわち、ｎ行目かつｍ列目のガイド領域５１には、１０（ｎ−１）＋ｍ（１≦ｎ≦９、１≦ｍ≦９）のＩＤが割り当てられ、各ＩＤが各ガイド領域５１の各データ領域５２に対応付けられる。
【００４２】
なお、データ領域５２には、例えば３６ｂｉｔ分のデータが対応付けられているが、そのうちの例えば２４ｂｉｔ分が上記画像データや位置及び範囲のデータに割り当てられており、残りの１２ｂｉｔ分は、コード認識の際のエラーを検出するためのエラー検出ビットとして割り当てられている。また、データ領域５２を方形としているのは、当該データ領域５２がガイド領域５１に比べて小さい領域であることから、その面積を極力大きくして、カメラ３で撮像した場合につぶれてしまわないようにするためである。
【００４３】
各コードセット５３は、上下左右または斜め方向で隣接する他のコードセット５３との間で、１つまたは複数のガイド領域５１を共有する場合もある。例えば、ガイド領域５１ａ〜５１ｅで構成されるコードセット５３ａは、その左隣に位置するコードセット５３ｄとの間で、ガイド領域５１ａ及び５１ｂを共有している。すなわち、コードセット５３ｄは、コードセット５３ａにおいてはその中心に位置しているガイド領域５１ａを右側のガイド領域として有し、コードセット５３ａにおいては左側に位置するガイド領域５１ｂを中心のガイド領域として有している。
【００４４】
また、各コードセット５３は、それを構成する５つのガイド領域５１のうち、上下左右のガイド領域５１と、中心のガイド領域５１との間に他のいくつのガイド領域５１が存在するかによって、３つの大きさに分別される。具体的には、中心のガイド領域５１からそれぞれ３つの他のガイド領域５１を置いた位置に上下左右のガイド領域５１を有するコードセット５３（本実施形態においては、コードセット５３ｂのみ）と、中心のガイド領域５１からそれぞれ１つの他のガイド領域５１を置いた位置に上下左右のガイド領域５１を有するコードセット５３（例えばコードセット５３ａ、５３ｄ）と、中心のガイド領域５１から何ら他のガイド領域５１を置かずに直接隣接する位置に上下左右のガイド領域５１を有するコードセット５３（例えばコードセット５３ｃ、５３ｅ）である。すなわち、２次元コード５は、同じ十字型でも異なる大きさのコードセット５３を配置したマルチスケールのコードとなっている。各コードセット５３のデータ領域５２には、１つのＣＧオブジェクト６の異なる位置及び範囲が対応付けられている。これにより、１つの２次元コード５により１つのＣＧオブジェクト６の全体を表示したり、一部を拡大して表示したりすることが可能となる。以下の説明では、これら３種類の各コードセット５３を、大きい順にそれぞれ大コードセット５３１、中コードセット５３２、小コードセット５３３と称して各大きさを区別する場合もあるものとする。
【００４５】
なお、大コードセット５３１は、全て大ガイド領域５１１で構成され、中コードセット５３２は、全て中ガイド領域５１２で構成されるか、または中ガイド領域５１２及び大ガイド領域５１１で構成され、小コードセット５３３は、全て小ガイド領域５１３で構成されるか、または小ガイド領域５１３と、大ガイド領域５１１及び／または中ガイド領域５１２とで構成される。
【００４６】
更に、上記大コードセット５３１、中コードセット５３２及び小コードセット５３３は、１つのガイド領域５１を中心のガイド領域５１として共有する場合もある。この場合、各コードセット５３の中心となるガイド領域５１には、各コードセット５３毎に異なるデータ領域５２が設けられる。
【００４７】
例えば、ガイド領域５１ａ〜５１ｅで構成されるコードセット５３ａと、ガイド領域５１ａ及び５１ｆ〜５１ｉで構成されるコードセット５３ｂと、ガイド領域５１ａ及び５１ｊ〜５１ｍで構成されるコードセット５３ｃは、それぞれガイド領域５１ａを中心のガイド領域５１として共有している。この場合、各コードセット５３の中心となるガイド領域５１ａの内部には、コードセット５３ａに対応するデータ領域５２ａ−１と、コードセット５３ｂに対応するデータ領域５２ａ−２と、コードセット５３ｃに対応するデータ領域５２ａ−３とがそれぞれ同心円状に設けられている。この場合、各データ領域５２ａ−１〜５２ａ−３が識別すべきガイド領域５１の位置は同一位置となるため、データ領域５２ａ−１〜５２ａ−３には同一のＩＤが対応付けられている。その一方で、各データ領域５２ａ−１〜５２ａ−３は、異なる大きさのコードセット５３に対応付けられているため、１つのＣＧオブジェクト６中の、同一位置（座標）を中心とした、異なる範囲（各コードセット５３の大きさ）が対応付けられている。
【００４８】
なお、このように１つのガイド領域５１内に複数のデータ領域が存在する場合には、大きさの異なる各コードセット５３に対応する各データ領域の位置を、例えば、上下左右のガイド領域５１との位置関係を基に規定しておく。これにより、大きさの異なるコードセット５３毎に１つのガイド領域５１内に配置された各データ領域５２を適切に区別して読み取ることが可能となる。
【００４９】
次に、上記ゲーム機器１の構成について説明する。図３は、ゲーム機器１の構成を示したブロック図である。同図に示すように、ゲーム機器１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、操作入力部１４、記憶部１５、通信部１６、ドライブ１７、入力インタフェース２１、コード認識部２２、表示制御部２３及び出力インタフェース２４を有する。
【００５０】
ＣＰＵ１１は、必要に応じてＲＯＭ１２やＲＡＭ１３等に適宜アクセスして各種演算処理を行い、ゲーム機器１が実行するゲーム処理において各ブロック全体を統括的に制御する。ＲＯＭ１２は、ＣＰＵ１１に実行させるＯＳ、プログラムや各種パラメータなどのファームウェアが固定的に記憶されている不揮発性のメモリである。ＲＡＭ１３は、ＣＰＵ１１の作業用領域等として用いられ、ＯＳやプログラム、ゲーム処理に必要なデータ等を一時的に保持するメモリである。
【００５１】
操作入力部１４は、キーボード、マウス、ジョイスティック、キー等の入力デバイスにより構成され、ゲーム処理やその他の処理においてユーザの操作による各種指令や設定値を入力し、ＣＰＵ１１へ出力する。なお、この操作入力部１４は、ユーザが操作するリモートコントローラとして機能し、ゲーム機器１と有線または無線により接続されるものであっても構わない。
【００５２】
記憶部１５は、例えばＨＤＤ（Hard disk drive）やフラッシュメモリ等の記録媒体で構成され、ＣＰＵ１１が実行するプログラムやデータ等の各種情報を記憶し、必要に応じてそれらの情報をＣＰＵ１１へ供給する。また、記憶部１５は、上述した２次元コード５の各ガイド領域５１の各ＩＤと、各ガイド領域５１に対応する各データ領域５２に対応するＣＧオブジェクト６を構成する画像データと、その位置（座標）データ及び範囲データとを対応付けて記憶する。さらに、記憶部１５は、上記カメラ３から撮像画像７を取り込み、各データ領域５２から上記各ガイド領域５１のＩＤやＣＧオブジェクト６の位置データ及び範囲データを認識し、これらのデータを基にＣＧオブジェクト６描画するまでの一連の処理を担うコード認識アプリケーションを記憶している。
【００５３】
通信部１６は、ＣＰＵ１１の制御の下、他のゲーム機器等の電子機器と通信を行い、各種データやプログラム等の情報の送受信を行う。ドライブ１７は、装着されたリムーバブルメディア１８を駆動させ、リムーバブルメディア１８に記憶されているゲームプログラムを読み出し、当該プログラムデータをＣＰＵ１１へ供給して実行させる。リムーバブルメディア１８としては、例えばＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）等の光ディスク、ＭＤ（Mini-Disk）等の磁気光ディスク、もしくはメモリースティック等の半導体メモリが挙げられる。
【００５４】
入力インタフェース２１は、例えばＵＳＢ（Universal Serial Bus）やIEEE（Institute of Electrical and Electronics Engineers）1394等の所定の規格に基づき、ゲーム機器１と外部装置とを接続し、外部装置から供給される情報をゲーム機器１に供給するためのインタフェースである。同図に示すように、本実施形態において入力インタフェース２１はカメラ３と接続されており、カメラ３から供給される上記撮像画像７をコード認識部２２へ供給する。
【００５５】
コード認識部２２は、ＣＰＵ１１の制御の下、上記コード認識アプリケーションの実行下において、入力インタフェース２１を介して取得したカメラ３の撮像画像７から、上記２次元コード５を認識する処理を行う。コード認識部２２は、２次元コード５の認識を行うと、その認識結果をＣＰＵ１１へ供給する。当該コード認識処理の詳細については後述する。
【００５６】
表示制御部２３は、上記コード認識アプリケーションの実行下において、例えばＶＲＡＭ（Video RAM）等のバッファメモリ（図示せず）を有し、モニタ２に表示される画像の生成処理を行う。例えば表示制御部２３は、上述したように、カメラ３から供給される撮像画像７中の２次元コード５の上にゲームキャラクター等のＣＧオブジェクト６を重畳させ、当該重畳画像を出力インタフェース２４へ供給する。
【００５７】
出力インタフェース２４は、モニタ２等の外部装置と接続され、表示制御部２３から供給される画像データ等をその外部装置へ供給するためのインタフェースである。本実施形態においては、出力インタフェース２４は、上記表示制御部２３により供給された上記重畳画像データを所定のタイミングでモニタ３へ供給する。
【００５８】
次に、以上のように構成されたゲーム機器１の動作について説明する。
【００５９】
まず、上記ゲーム機器１が上記２次元コード５を認識する際の動作について説明する。図４は、当該２次元コード５の認識処理の流れを示したフローチャートである。
【００６０】
同図に示すように、上記コード認識アプリケーションが起動された状態で上記カメラ３によりカード４が撮像されると、まず、ゲーム機器１のコード認識部２２は、カメラ３から上記入力インタフェース２１を介して撮像画像７を取得する（ステップ４１）。続いて、コード認識部２２は、この撮像画像７について２値化処理を行い（ステップ４２）、この２値化画像から、黒色連結領域を抽出する（ステップ４３）。そして、コード認識部２２は、抽出した黒色連結領域のうち、所定の大きさを有する円形のもの（すなわち、ガイド領域５１）を５つ選択する（ステップ４４）。具体的には、コード認識部２２は、各黒色連結領域の外枠部分の大きさ及び縦横比を解析し、所定の範囲の大きさを有し、所定の閾値以上に細長くないものを選択する。なお、同図においては、この選択された５つのガイド領域をガイド領域Ａ〜Ｅとする。
【００６１】
コード認識部２２は、この５つのガイド領域Ａ〜Ｅの組み合わせが見つかった場合（ステップ４５のＹｅｓ）には、この５つのガイド領域Ａ〜Ｅが十字型を形成しているか否かを判断する。
【００６２】
具体的には、まず、コード認識部２２は、ガイド領域Ａの中心が、ガイド領域Ｂ及びＣの各中心を結ぶ線分ＢＣから所定距離ｄ以内の位置に存在しているか否かを判断する（ステップ４６）。すなわち、コード認識部２２は、ガイド領域Ａ、Ｂ及びＣの各中心がほぼ同一直線上に並んでいるか否かを判断する。この場合の所定距離ｄは、例えば３ピクセルであるが、これに限られない。
【００６３】
ガイド領域Ａが線分ＢＣから所定距離ｄ以内の位置に存在していると判断された場合には（ステップ４６のＹｅｓ）、コード認識部２２は、ガイド領域Ａがガイド領域Ｂ及びＣの間に存在し、かつ、ガイド領域Ｂとガイド領域Ａとの各中心間の距離ＢＡと、ガイド領域Ａとガイド領域Ｃとの各中心間の距離ＡＣとの比が、所定比の範囲に入るか否かを判断する（ステップ４７）。図５は、この判断の手法について概念的に説明した図である。同図（ａ）において、黒色の５つの楕円は、カメラ３で２次元コード５を斜め方向から撮像した撮像画像７中から上記ステップ４４により選択された５つのガイド領域Ａ〜Ｃ（ガイド領域５１ａ〜５１ｅ）を示している。なお、説明の便宜上、同図においてはデータ領域５２は図示していない。
【００６４】
同図に示すように、コード認識部２２は、ガイド領域Ｂ（５１ｂ）とガイド領域Ａ（５１ａ）との各中心を結ぶ線分ｂの長さと、ガイド領域Ａ（５１ａ）とガイド領域Ｃ（５１ｃ）との各中心を結ぶ線分ｃの長さとの比ｂ：ｃが、１：ｎ〜ｎ：１の範囲に収まるか否かを判断する。すなわち、コード認識部２２は、この処理により、ガイド領域Ｂ、Ａ及びＣがほぼ等間隔で並んでいるか否かを判断する。ここで、ｎは例えば１．１であるが、これに限られない。なお、線分ｂ及びｃの長さは、例えばガイド領域Ａの中心座標を原点とする撮像画像７上の座標系において、原点からガイド領域Ｂ及びＣの各中心の座標との距離を測ることで算出される。
【００６５】
このように、各ガイド領域間の距離の比率に制約を設けることで、同図（ｂ）に示すような、上記十字型のコードセット５３としてありえない見え方の黒色領域を除去することができる。
【００６６】
図４に戻り、比ｂ：ｃが１：ｎ〜ｎ：１の範囲内に収まっていると判断された場合には（ステップ４７のＹｅｓ）、コード認識部２２は、上記ステップ４６と同様に、ガイド領域Ａがガイド領域Ｄ及びＣの各中心を結ぶ線分ＤＥから上記所定距離ｄ以内の位置に存在しているか否かを判断する（ステップ４８）。すなわち、コード認識部２２は、ガイド領域Ａ、Ｄ及びＥの各中心がほぼ同一直線上に存在しているか否かを判断する。
【００６７】
ガイド領域Ａが線分ＤＥから所定距離ｄ以内の位置に存在していると判断された場合には（ステップ４８のＹｅｓ）、コード認識部２２は、上記ステップ４７と同様に、ガイド領域Ａがガイド領域Ｄ及びＥの間に存在し、かつ、ガイド領域Ｄとガイド領域Ａとの各中心間の距離ＤＡと、ガイド領域Ａとガイド領域Ｅとの各中心間の距離ＡＥとの比が、上記所定比の範囲に入るか否かを判断する（ステップ４９）。すなわち、図５（ａ）に示すように、コード認識部２２は、ガイド領域Ｄ（５１ｄ）とガイド領域Ａ（５１ａ）との各中心を結ぶ線分ｄの長さと、ガイド領域Ａ（５１ａ）とガイド領域Ｅ（５１ｅ）との各中心を結ぶ線分ｅの長さとの比ｄ：ｅが、上述した１：ｎ〜ｎ：１（ｎは例えば１．１）の範囲に収まるか否かを判断し、ガイド領域Ｄ、Ａ及びＥがほぼ等間隔で並んでいるか否かを判断する。
【００６８】
図４に戻り、比ｄ：ｅが１：ｎ〜ｎ：１の範囲内に収まっていると判断された場合には（ステップ４９のＹｅｓ）、コード認識部２２は、線分ＢＣと線分ＤＥとのなす角のうち狭い方の角θが、所定角度ｔ以上（９０°以下）であるか否かを判断する（ステップ５０）。ここで、ｔは２０°〜３０°であるが、この範囲に限られるものではない。
【００６９】
図６は、この角度θを判断する手法について説明した図である。なお、説明の便宜上、同図においてもデータ領域５２は図示していない。同図（ａ）に示すように、上記θは、例えばガイド領域Ａの中心を始点、ガイド領域Ｄ及びＣの各中心を終点とした各ベクトルＡＤ及びＡＣをそれぞれｄ、ｃとした場合に、この２つのベクトルｄ及びｃの内積を基に算出される。
【００７０】
すなわち、ベクトルｄとベクトルｃの内積を<ｄ，ｃ>とすると、ｃｏｓθは、ｃｏｓθ＝<ｄ，ｃ>／｜ｄ｜｜ｃ｜で表される。したがって、コード認識部２２は、このｃｏｓθの値が、０≦｜ｃｏｓθ｜≦０．８７（ｃｏｓ３０°）〜０．９４（ｃｏｓ２０°）を満たすか否かを判断する。なお、この内積は、上記図５において算出したガイド領域Ｄ及びＣの各中心の座標から算出することができる。なお、例えば同図（ｂ）に示すように、カード４の表面に対するカメラ３の撮像角度が極端に小さい状況（上記θが極端につぶれた状況）においては、２次元コード５を認識したとしても、（特に位置の）精度が出ないため、上記角度ｔにより制約を設けることで、認識精度を向上させることができる。
【００７１】
以上の処理により、コード認識部２２は、抽出した５つの黒色連結領域（ガイド領域Ａ〜Ｅ）が十字型を構成していることを確認することで、１つのコードセット５３を検出することができる。
【００７２】
図４に戻り、上記角度θがｔ以上であると判断された場合（ステップ５０のＹｅｓ）には、コード認識部２２は、上記検出したコードセット５３における認識方向を判断する。すなわち、コード認識部２２は、検出したコードセット５３においてガイド領域Ａを中心に周囲に存在する４つのガイド領域Ｂ〜Ｅのうちどのガイド領域が上下左右のうちの「上」側と見なすかを判断する。
【００７３】
具体的には、コード認識部２２は、各ガイド領域Ｂ〜Ｅをそれぞれ「上」と見なしてガイド領域Ａの内部のデータ領域５２をデコードした場合に、正しくデコードできたことをもって、その方向が「上」であると判断する。上述したように、各データ領域５２には、ＣＧオブジェクト６の画像データや位置及び範囲データに対応するビットのみならず、エラー検出ビットも含まれている。したがって、コード認識部２２は、データ領域５２のうち、所定位置の白色矩形領域を開始位置としてデコードしてみた場合に、このエラー検出ビットによりエラーが検出されることで、デコード方向が誤っていることを判断することができる。
【００７４】
すなわち、まず、コード認識部２２は、ガイド領域Ｂを「上」と見なして、ガイド領域Ａの内部に配置されたデータ領域５２をデコードする（ステップ５１）。なお、コード認識部２２は、認識したコードセット５３中の所定位置（中心のガイド領域５１の内部であって、上下左右の各ガイド領域５１の座標からそれぞれ中心に所定割合の距離分進んだ位置）に存在する方形の白色連結領域をデータ領域５２であると見なしてデコードを行う。これにより正しくデコードできなかった場合には（ステップ５２のＮｏ）、次に、コード認識部２２は、ガイド領域Ｃを「上」と見なしてデータ領域５２をデコードする（ステップ５３）。これにより正しくデコードできなかった場合には（ステップ５４のＮｏ）、コード認識部２２は、次に、ガイド領域Ｄを「上」と見なしてデータ領域５２をデコードする（ステップ５５）。そして、これにより正しくデコードできなかった場合には（ステップ５６のＮｏ）、コード認識部２２は、ガイド領域Ｅを「上」と見なしてデータ領域５２をデコードする（ステップ５７）。
【００７５】
コード認識部２２は、上記何れかのガイド領域を「上」と見なしてデコードし、正しくデコードできた場合には（ステップ５２、５４、５６、５８のＹｅｓ）、デコードできたデータと、正しくデコードできた方向を基準にして、上下左右の４つのガイド領域Ｂ〜Ｅの、２次元コード５上における各座標を算出して出力する。ここで、デコードできたデータの内容は、上述したように、２次元コード５上におけるガイド領域Ａの中心の座標、当該ガイド領域Ａを中心とするコードセット５３の大きさ（範囲）、及びガイド領域ＡのＩＤである。また、ガイド領域Ｂ〜Ｅの各座標は、上記図５において各線分ｂ〜ｅの長さを求める際に算出した撮像画像７上の座標系におけるガイド領域Ｂ〜Ｅの座標を、上記データ領域５２から認識したガイド領域Ａの座標と、上記正しくデコードできた方向とを基にして、２次元コード５上の座標系に変換することで算出可能である。
【００７６】
コード認識部２２は、上記何れのガイド領域を「上」と見なしてデコードしても正しくデコードできなかった（エラーが検出された）場合には（ステップ５８のＮｏ）、ステップ４４に戻り、新たな黒色連結領域の組み合わせを検出する。
【００７７】
また、上記ステップ４５において、黒色連結領域の新たな組み合わせがない（全ての組み合わせを試した）場合には、コード認識部２２は、撮像画像７上にはコードは存在しないとの結果を出力して終了する（ステップ６０）。なお、選択すべき５つの黒色連結領域の組み合わせ（すなわち、コードセット５３）が複数検出される場合には、コード認識部２２は、その直前に認識したコードセット５３を優先して認識するようにし、直前に認識したコードセット５３が存在しない場合には、撮像画像７中の中心により近いコードセット５３を優先して認識するようにする。
【００７８】
以上の処理により、十字型を構成するコードセット５３を検出し、かつ、当該コードセット５３のデータ領域５２のデータを正しい方向から認識することができる。
【００７９】
なお、本実施形態において、コード認識部２２は、上記ガイド領域Ａの内部のデータ領域５２からデータを認識する際、上下左右で隣接するガイド領域Ｂ〜Ｅの内部のデータ領域５２からも付加的な情報を認識することができる。図７は、この付加的な情報を認識する際の処理の流れを示したフローチャートである。また、図８は、この付加的な情報を認識する処理を概念的に示した図である。図８において、黒点は各ガイド領域５１を、黒点の左上の数字は各ガイド領域５１のＩＤをそれぞれ示している。
【００８０】
図７に示すように、コード認識部２２は、上記図４のステップ５８までの処理を行った上で、認識対象としたガイド領域５１（例えば図２のガイド領域５１ａ）のデータ領域５２（例えば図２のデータ領域５２ａ−１）から、当該ガイド領域５１のＩＤを認識する（ステップ７１）。続いて、コード認識部２２は、当該認識対象としたガイド領域５１を中心とするコードセット５３を構成する上下左右の４つのガイド領域５１（例えば図２のコードセット５３ａを構成するガイド領域５１ｂ〜５１ｅ）の各データ領域５２から、当該上下左右のガイド領域５１の各ＩＤを認識する（ステップ７２）。
【００８１】
なお、コード認識部２２は、図４のステップ４４〜５０の処理において当該上下左右のガイド領域５１の位置を既に把握しているため、当該上下左右のガイド領域５１の各データ領域５２の位置も把握することができる。
【００８２】
図７に戻り、コード認識部２２は、上下左右の各ガイド領域５１の各ＩＤが、３つ以上認識できた場合（ステップ７３のＮｏ）には、左右のガイド領域５１の各ＩＤが認識できたか、それとも上下のガイド領域５１の各ＩＤが認識できたかを確認する（ステップ７４）。左右のガイド領域５１（例えば図２のガイド領域５１ｂ及び５１ｃ）の各ＩＤが認識できた場合には、上記認識した中心のガイド領域５１のＩＤをｎとした場合に、左のガイド領域５１のＩＤが「ｎ−ｍ」、右のガイド領域５１のＩＤが「ｎ＋ｍ」になっているか否かを判断する（ステップ７５）。
【００８３】
また、上下のガイド領域５１（例えば図２のガイド領域５１ｄ及び５１ｅ）の各ＩＤが認識できた場合には、上のガイド領域５１のＩＤが「ｎ−１０ｍ」、下のガイド領域５１のＩＤが「ｎ＋１０ｍ」になっているか否かを判断する（ステップ７７）。
【００８４】
この処理により、コード認識部２２は、認識しているコードセット５３のうち、中心のガイド領域５１と、上下左右のガイド領域５１との間にいくつの他のガイド領域５１が存在するか、すなわち、現在認識しているコードセット５３は大コードセット５３１なのか、中コードセット５３２なのか、小コードセット５３３なのかを判断することができる。
【００８５】
すなわち、図８に示すように、例えばｎ＝４５である場合に、その上下左右の各ガイド領域５１の各ＩＤがそれぞれ３５、５５、４４、４６であれば（この場合ｍ＝１）、コード認識部２２が認識しているコードセット５３は小コードセット５３３であると判断することができる。また、上下左右の各ガイド領域５１の各ＩＤが２５、６５、４３、４６であれば（この場合ｍ＝２）、コード認識部２２が認識しているコードセット５３は中コードセット５３２であると判断することができる。
【００８６】
そして、このように上下左右のコード領域５１の各ＩＤを認識し、上記ｎ及びｍの関係式を満たしているか否かを確認することで、認識した中心のガイド領域５１のデータの信憑性を確認することができ、データの誤認識を防止することができる。
【００８７】
図７に戻り、コード認識部２２は、上記ステップ７５または７７において上下または左右のガイド領域５１の各ＩＤが上記ｎ及びｍの関係式を満たしている場合には（ステップ７５または７７のＹｅｓ）、中心のガイド領域５１のデータも正しいものと見なして、認識できたデータと、ｎ及びｍの値と、上下左右の各ガイド領域５１の座標を出力する（ステップ７６）。
【００８８】
一方、コード認識部２２は、上記ステップ７５または７７において上下または左右のガイド領域５１の各ＩＤが上記ｎ及びｍの関係式を満たしていない場合には（ステップ７５または７７のＮｏ）、認識したデータは誤ったデータであると見なして、上記図４のステップ４４に戻り、黒色連結領域（ガイド領域５１）の新たな候補を検出する。
【００８９】
次に、以上のように１つのコードセット５３から認識したデータを基に、コード認識アプリケーションがＣＧオブジェクト６を描画するまでの処理について説明する。図９は、当該描画処理の流れを示したフローチャートである。
【００９０】
同図に示すように、コード認識アプリケーションは、上記図４でも説明したように、カメラ３から撮像画像７を取得して表示制御部２３のＶＲＡＭ上に読み出し（ステップ８１）、抽出した１つのコードセット５３の中心のガイド領域５１のデータ領域５２からデータを認識し、また中心のガイド領域５１の上下左右の各ガイド領域５１の４つの座標を認識する（ステップ８２）。
【００９１】
データ及び４つの座標が認識できた場合には（ステップ８３のＹｅｓ）、コード認識アプリケーションは、上下左右のガイド領域５１の４つの座標を基に、ＣＧオブジェクト６の３次元位置を算出する（ステップ８４）。すなわち、コード認識アプリケーションは、４つの座標が存在する平面をＣＧオブジェクト６の底面とし、４つの座標を当該底面における上下左右方向の端部として、ＣＧオブジェクト６の３次元位置を算出する。
【００９２】
そして、コード認識アプリケーションは、認識したデータのうち、各コードセット５３に対応するＣＧオブジェクト６の画像データを記憶部１５からＶＲＡＭへ読み出し、上記算出された３次元位置に、当該ＣＧオブジェクト６を上記撮像画像７に重畳させるように描画し、当該重畳画像を出力インタフェース２４を介してモニタ２へ表示する（ステップ８５）。
【００９３】
なお、この場合、認識したコードセット５３が大コードセット５３１であるか、中コードセット５３２であるか、小コードセット５３３であるかによって、ＣＧオブジェクト６の描画方法は異なってくる。
【００９４】
すなわち、認識したコードセット５３が大コードセット５３１（図２のコードセット５３ｂ）である場合には、コード認識アプリケーションは、認識した４つの座標で上下左右が規定される矩形領域をそのまま描画領域としてＣＧオブジェクト６を描画する。
【００９５】
認識したコードセット５３が中コードセット５３２（例えば図２のコードセット５３ａや５３ｄ）である場合には、コード認識アプリケーションは、まず４つの座標で上下左右が規定される矩形領域を描画領域としてＣＧオブジェクト６を描画した後、当該ＣＧオブジェクト６を４倍し、さらに、当該中コードセット５３２の中心のガイド領域５１の座標が、２次元コード５の中心座標（すなわち、図２のガイド領域５１ａの中心座標）と重なるように、ＣＧオブジェクト６を平行移動する。
【００９６】
認識したコードセット５３が小コードセット５３３（例えば図２のコードセット５３ｃや５３ｅ）である場合には、コード認識アプリケーションは、まず４つの座標で上下左右が規定される矩形領域を描画領域としてＣＧオブジェクト６を描画した後、当該ＣＧオブジェクト６を１６倍し、さらに、当該小コードセット５３３の中心のガイド領域５１の座標が、２次元コード５の上記中心座標と重なるように、ＣＧオブジェクト６を平行移動する。
【００９７】
なお、上記ステップ８３において、データ及び４つの座標が認識できない場合には（Ｎｏ）、コード認識アプリケーションは、ＣＧオブジェクト６を重畳することなく、取得された撮像画像７をそのままモニタ２へ表示させる。
【００９８】
以上の処理により、コード認識アプリケーションは、どの大きさのコードセット５３が認識されるかに応じて、１つのＣＧオブジェクト６の全体を表示したり（大コードセット５３１が認識された場合）、一部を拡大して表示したり（中コードセット５３２及び小コードセット５３３が認識された場合）することが可能となる。
【００９９】
以上説明したように、本実施形態によれば、十字型に配置された５つのガイド領域５１により２次元コード５を構成し、ゲーム機器１側ではその十字型を認識可能とすることで、２次元コード５のデザインの自由度を向上させることができる。
【０１００】
本発明は上述の実施形態にのみ限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変更を加え得ることは勿論である。
【０１０１】
上述の実施形態においては、データ領域５２は複数の方形の白色連結領域としていたが、もちろん、図１０に示すように、円形の白色連結領域としても構わないし、その他の形状としても構わない。
【０１０２】
上述の実施形態においては、データ領域は、ガイド領域の内部に配置されていたが、もちろん、ガイド領域の外部に配置されていても構わない。図１１は、そのようなデータ領域の配置例を示した図である。同図（ａ）〜（ｃ）では、データ領域１５２の各構成要素の形状は円形とされている。同図（ａ）においては、データ領域１５２は中心のガイド領域１５１の周囲に円形状に配置されている。同図（ｂ）においては、データ領域１５２は中心のガイド領域１５１から放射状に配置されている。同図（ｃ）においては、データ領域１５２は中心のガイド領域１５１の周囲に正方形状に配置されている。同図（ｄ）〜（ｆ）では、データ領域１５２の各構成要素の形状は方形とされている。同図（ｄ）では、データ領域１５２は中心のガイド領域１５１の周囲に正方形状に配置されている。同図（ｅ）では、データ領域１５２は上下左右のガイド領域１５１を結ぶように配置されている。同図（ｆ）では、データ領域１５２は中心のガイド領域１５１の周囲に２重の正方形を形成するように配置されている。
【０１０３】
図１２は、図１１の各コードセットのうち、（ａ）のコードセットを敷き詰めて構成した２次元コードを示した図である。同図に示すように、２次元コード１１５においては、各コードセット１５３の中心のガイド領域１５１の周囲にデータ領域１５２が円形に配置されている。また、上記図２及び図１０に示した各２次元コード５及び１０５と同様に、隣接する２つのコードセット１５３（例えばコードセット１５３ａと１５３ｃ）は、一方のコードセット１５３における中心のガイド領域１５１（例えばガイド領域１５１ａと１５１ｂ）を他方のコードセット１５３における上下左右のガイド領域１５１として共有する場合もある。この場合、各中心のガイド領域１５１の周囲の各データ領域１５２は、両者が重ならないように配置される。また、上記２次元コード５及び１０５と同様、この２次元コード１１５も、大きさの異なるコードセット１５３（例えばコードセット１５３ａと１５３ｂ）とで構成されるマルチスケールのコードとなっている。さらに、大きさの異なるコードセット１５３が中心のガイド領域１５１を共有する場合もある（例えばコードセット１５３ａと１５３ｂ）。この場合、各コードセット１５３に対応するデータ領域１５２は、中心のガイド領域１５１を中心に同心円状に配置される（例えばデータ領域１５２ａ−１と１５２ａ−２）。
【０１０４】
上述の実施形態においては、２次元コードのデータ領域には、ＣＧオブジェクト（３次元画像）が対応付けられていたが、もちろん２次元画像等の他の画像データが対応付けられていてもよいし、また画像以外にも、例えば音声データやテキストデータ、所定のアプリケーションの起動コマンド等が対応付けられていても構わない。また、１つの２次元コード５における各コードセット５３が１つのＣＧオブジェクト６の異なる位置及び範囲に対応するのではなく、各コードセット５３が異なる複数のＣＧオブジェクト６に対応するようにしても構わない。この場合、認識されるコードセット５３に応じて異なるＣＧオブジェクト６（例えば異なるキャラクター）が描画され表示される。
【０１０５】
上述の実施形態においては、２次元コードの各コードセットは十字型を構成する５つのガイド領域で構成されていたが、その他にも、１つのガイド領域と、当該１つのガイド領域を中心とする正六角形の各頂点となるように配置された６つのガイド領域との７つのガイド領域で１つのコードセットを構成してもよい。この場合、ゲーム機器１は、中心のガイド領域を通り周囲の２つのガイド領域を結ぶ正六角形の３本の対角線のうち、少なくとも２本の対角線上の各ガイド領域について、３つのガイド領域がほぼ同一直線上に存在するか、３つのガイド領域がほぼ等間隔で並んでいるか、及び２本の対角線のなす角度が所定角度以上であるか、等を判断することで、正六角形状のコードセットを検出するようにすればよい。
【０１０６】
また、コードセットは、六角形以外にも、中心のガイド領域を中点として共有する複数の線分を対角線とする正多角形であれば何角形状にも構成することができる。
【０１０７】
上述の実施形態においては、電子機器としてゲーム機器１を適用していたが、その他にも、例えばＰＣ、テレビジョン受像機やその他のＡＶ機器、携帯電話機等、据置型または携帯型のあらゆる電子機器を適用することが可能である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の一実施形態に係るゲーム機器の使用態様を示した図である。
【図２】本発明の一実施形態に係るゲーム機器が認証する２次元コードを示した図である。
【図３】本発明の一実施形態に係るゲーム機器の構成を示したブロック図である。
【図４】本発明の一実施形態に係るゲーム機器が２次元コードを認識する際の処理の流れを示したフローチャートである。
【図５】本発明の一実施形態において、各ガイド領域間の距離の比を判断する手法について説明した図である。
【図６】本発明の一実施形態において、上下のガイド領域を結ぶ線分と左右のガイド領域を結ぶ線分とがなす角を判断する手法について説明した図である。
【図７】本発明の一実施形態において、上下左右のガイド領域から付加的な情報を得る場合の処理の流れを示したフローチャートである。
【図８】図７の処理の様子を概念的に示した図である。
【図９】本発明の一実施形態において、データ領域から認識したデータを基にＣＧオブジェクトを描画する処理の流れを示したフローチャートである。
【図１０】本発明の他の実施形態における２次元コードの例を示した図である。
【図１１】本発明の他の実施形態における２次元コード中のコードセットの例を示した図である。
【図１２】本発明の他の実施形態における２次元コードの例を示した図である。
【符号の説明】
【０１０９】
１…ゲーム機器
２…モニタ
３…カメラ
４…カード
５、１０５、１１５…２次元コード
６…ＣＧオブジェクト
７…撮像画像
８…載置スペース
１１…ＣＰＵ
１２…ＲＯＭ
１３…ＲＡＭ
１４…操作入力部
１５…記憶部
２１…入力インタフェース
２２…コード認識部
２３…表示制御部
２４…出力インタフェース
５１（５１ａ〜５１ｍ）、１５１（１５１ａ〜１５１ｉ）…ガイド領域
５２（５２ａ〜５２ｏ）、１５２（１５２ａ）…データ領域
５３（５２ａ〜５２ｅ）、１５３（１５３ａ〜１５３ｃ）…コードセット
５１１…大ガイド領域
５１２…中ガイド領域
５１３…小ガイド領域
５３１…大コードセット
５３２…中コードセット
５３３…小コードセット
【図１】
2008269121.tif 000003
【図２】
2008269121.tif 000004
【図３】
2008269121.tif 000005
【図４】
2008269121.tif 000006
【図５】
2008269121.tif 000007
【図６】
2008269121.tif 000008
【図７】
2008269121.tif 000009
【図８】
2008269121.tif 000010
【図９】
2008269121.tif 000011
【図１０】
2008269121.tif 000012
【図１１】
2008269121.tif 000013
【図１２】
2008269121.tif 000014