(58)【調査した分野】(Int.Cl.,DB名)
前記識別情報取得手段は、前記認識対象内の第1の領域に描かれている、あるいは印刷されている絵を識別することで前記第1の識別情報を取得し、当該第1の領域とは異なる領域である第2の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、前記第1の領域の絵よりも単調なデザインの絵のうちの少なくとも一つを識別することで前記第2の識別情報を取得する、請求項2に記載の画像表示プログラム。
前記識別情報取得手段は、前記第2の領域に描かれている、あるいは印刷されているコード化された図形、記号、パターン画および絵のうちの少なくとも一つを識別することで前記第2の識別情報を取得する、請求項3または請求項4に記載の画像表示プログラム。
前記検証手段は、前記複数の候補情報のそれぞれで示される情報内容と第2の識別情報で示される情報内容とが一致するか否かを判断することで当該複数の候補情報の検証を行い、当該第2の識別情報で示される情報内容と一致した候補情報を選択する、請求項6に記載の画像表示プログラム。
前記仮想オブジェクト決定手段は、前記第2の識別情報および第3の識別情報の組み合わせを用いて前記第1の識別情報を検証する検証手段を含む、請求項12に記載の画像表示プログラム。
前記識別情報取得手段は、前記認識対象内の第1の領域に描かれている、あるいは印刷されている絵を識別することで前記第1の識別情報を取得し、当該第1の領域とは異なる領域である第2の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、前記第1の領域の絵よりも単調なデザインの絵のうちの少なくとも一つを識別することで前記第2の識別情報を取得し、当該第1の領域および第2の領域とは異なる領域である第3の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、前記第1の領域の絵よりも単調なデザインの絵のうちの少なくとも一つを識別することで前記第3の識別情報を取得する、請求項13に記載の画像表示プログラム。
前記識別情報取得手段は、前記第2の領域に対する識別処理と第3の領域に対する識別処理とでは異なる識別手法を用いた識別処理を行う、請求項14または請求項15に記載の画像表示プログラム。
前記検証手段は、前記複数の候補情報に対して前記第2の識別情報または第3の識別情報を用いた絞り込みを行い、当該前記絞り込まれた候補情報に対して、前記第2の識別情報および第3の識別情報の組み合わせを用いて検証を行う、請求項17に記載の画像表示プログラム。
撮像手段によって撮像された撮像画像に対して所定の認識処理を行うことによって当該撮像手段とマーカとの位置関係を算出し、当該位置関係に基づいて仮想オブジェクトの画像を生成して表示する画像表示システムにおいて用いられるマーカであって、
前記マーカは、
単体のマーカであり、
前記撮像手段で撮影され前記所定の認識処理が行われることで第1の情報が得られる絵が描かれた第1領域と、
前記撮像手段で撮影され前記所定の認識処理が行われることで第2の情報が得られるパターン画、図形、記号、または第1の領域の絵よりも単調なデザインの絵のいずれかが描かれた少なくとも1つ以上の第2領域とを含み、
前記第1の情報および第2の情報は、前記表示する仮想オブジェクトを決定するために用いられる、マーカ。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上述した図柄をパターンマッチングによって識別する場合、例えば、上記閾値を高い値に設定すると、あるカードを撮像した場合に、本来であれば正常に認識されるべきものが、そのとき周囲光(環境光)の状況等によって、そのカードが認識されない場合があり得る。その一方で、当該閾値を低くすると、本来認識されるべきカードについての認識精度は高くなるが、その反面、本来は認識されるべきではないカードに対してまで正常なものとして認識されてしまうという問題があった。つまり、全く別のカードを撮像した場合であっても、本来認識されるべきカードと同等の扱いがなされてしまうという問題がある点に出願人は気付いた。
【0005】
それ故に、本発明の目的は、マーカ型ARにおけるマーカの識別精度をより高めることのできる、画像表示プログラム、画像表示装置、画像表示方法、画像表示システムを提供することである。
【0006】
また、本発明の別の目的は、識別精度をより高めることのできるマーカを提供することである。
【課題を解決するための手段】
【0007】
本発明にかかる画像表示プログラムは、画像を表示する画像表示装置のコンピュータに実行させる画像表示プログラムであって、コンピュータを、撮像画像取得手段と、認識対象検出手段と、識別情報取得手段と、仮想オブジェクト決定手段と、位置関係算出手段と、仮想カメラ設定手段と、表示手段として機能させる。撮像画像取得手段は、撮像手段により撮像された撮像画像を取得する。認識対象検出手段は、撮像画像の中から所定の認識対象を検出する。識別情報取得手段は、撮像画像のうち認識対象検出手段により検出された認識対象に対応する画像の少なくとも一部に対して当該画像の少なくとも一部の内容を識別する処理を行うことによって、少なくとも第1の識別情報および第2の識別情報を取得する。仮想オブジェクト決定手段は、取得された第1の識別情報および第2の識別情報に基づいて、所定の記憶媒体に予め記憶されている複数の仮想オブジェクトの中から少なくとも1つの仮想オブジェクトを表示対象として決定する。位置関係算出手段は、認識対象検出手段によって検出された認識対象と撮像手段との相対的な位置関係を算出する。仮想カメラ設定手段は、位置関係算出手段により算出された位置関係に基づいて、仮想空間内における仮想カメラを設定する。表示手段は、仮想オブジェクト決定手段で決定された仮想オブジェクトを仮想カメラで撮影することにより得られる画像を所定の表示部に表示する。
【0008】
上記構成により、検出した認識対象から少なくとも第1の識別情報および第2の識別情報を取得して、取得した少なくとも2つの情報により複数の仮想オブジェクトの中から少なくとも1つの仮想オブジェクトを表示対象として決定するため、例えばマーカ等の認識対象の識別精度を高め、認識対象に対応した適切な仮想オブジェクトを表示することができる。
【0009】
他の構成例として、仮想オブジェクト決定手段は、第1の識別情報および第2の識別情報のいずれか一方の情報を用いて他方の情報を検証する検証手段を含み、検証手段による検証の結果、妥当な情報であると判定されたときに、検証の対象となった他方の情報に基づいて仮想オブジェクトを決定するようにしてもよい。
【0010】
上記構成例によれば、認識対象から得られた少なくとも2つの情報のうち、一方の情報で他方の情報を検証するため、より精度の高い識別が可能となる。
【0011】
更に他の構成例として、識別情報取得手段は、認識対象内の第1の領域に描かれている、あるいは印刷されている絵を識別することで第1の識別情報を取得し、当該第1の領域とは異なる領域である第2の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、第1の領域の絵よりも単調なデザインの絵のうちの少なくとも一つを識別することで第2の識別情報を取得してもよい。
【0012】
上記構成例によれば、認識対象内の第2の領域については、識別処理において誤認識の可能性が低くなることを意識したパターン画等を描くことができると共に、第1の領域については、誤認識については特に意識せず、比較的複雑なデザインの絵を自由に描くことができる。また、上記第1の領域から第1の識別情報を取得し、上記第2の領域から第2の識別情報を取得して、第2の識別情報を用いて第1の識別情報を検証すれば、第1の識別情報のみで認識対象を認識する場合と比較して、認識対象の識別精度を高めることが可能となる。
【0013】
更に他の構成例として、検証手段は、第1の識別情報を用いて第2の識別情報を検証してもよい。
【0014】
上記構成例によれば、比較的複雑なデザインの絵が描かれる第1の領域を用いて第2の領域の識別結果の妥当性を検証できるため、第2の領域に対する改変や改竄を抑止することができ、更に、認識対象の識別精度も高めることが可能となる。
【0015】
更に他の構成例として、識別情報取得手段は、第2の領域に描かれている、あるいは印刷されているコード化された図形、記号、パターン画および絵のうちの少なくとも一つを識別することで第2の識別情報を取得するよにしてもよい。
【0016】
上記構成例によれば、第2の領域のコードを用いて第1の領域の識別結果を検証することができ、第1の領域に対する識別精度をより高めることができる。
【0017】
更に他の構成例として、識別情報取得手段は、第1の識別情報として複数の候補情報を取得し、検証手段は、第2の識別情報を用いて複数の候補情報を検証し、当該検証の結果に基づいて当該候補情報のうちの1つを選択し、仮想オブジェクト決定手段は、検証手段で選択された候補情報に基づいて仮想オブジェクトを決定するようにしてもよい。
【0018】
上記構成例によれば、複雑なデザインの絵(第1の領域)を識別した結果、その候補を複数挙げて、誤認識の可能性が低い第2の領域の識別結果でこれら候補を検証することができる。これにより、認識対象の識別精度を低下させることなく、認識対象そのもの(第1の領域)に対してのデサインの自由度を高めて、認識対象自体のデザイン性も高めることができる。
【0019】
更に他の構成例として、検証手段は、複数の候補情報のそれぞれで示される情報内容と第2の識別情報で示される情報内容とが一致するか否かを判断することで当該複数の候補情報の検証を行い、当該第2の識別情報で示される情報内容と一致した候補情報を選択してもよい。
【0020】
上記構成例によれば、比較的簡便な処理で識別結果の検証を行うことができる。
【0021】
更に他の構成例として、検証手段は、複数の候補情報に対して第2の識別情報を用いた絞り込みを行うことで当該候補情報の検証を行うようにしてもよい。
【0022】
上記構成例によれば、候補の絞り込みを行うことができるので、識別の精度をより高めることが可能となる。
【0023】
更に他の構成例として、識別情報取得手段は、記憶媒体に予め記憶されている情報のうち、第1の領域に描かれている、あるいは印刷されている絵から得られる情報との類似度が所定の閾値を超える情報を候補情報として取得し、記憶媒体に予め記憶されている情報のうち、第2の領域に描かれている、あるいは印刷されている図形、記号、パターン画および第1の領域の絵よりも単調なデザインの絵から得られる情報との類似度が最も高い情報を第2の識別情報として取得してもよい。
【0024】
上記構成例によれば、第1の領域に描かれている内容について、本来正常に識別されるべきマーカが識別されない等の取りこぼしの可能性を軽減することができる。また、誤認識の可能性が低い第2の識別情報を検証に用いることで、本来識別されるべきではないマーカが誤って識別されてしまう等の誤認識の可能性を低減することができる。
【0025】
更に他の構成例として、識別情報取得手段は、第1の識別情報として複数の候補情報を取得し、仮想オブジェクト決定手段は、複数の候補情報に対して第2の識別情報を用いた絞り込みを行う絞り込み手段を含み、絞り込みが行われた候補情報と第2の識別情報に基づいて、仮想オブジェクトを決定してもよい。
【0026】
上記構成例によれば、第1の領域に描かれている内容について、その識別結果としての複数の候補を挙げ、第2の領域から得られた情報でこの候補のフィルタリングを行うため、第1の領域についての識別精度を高めることが可能となる。
【0027】
更に他の構成例として、仮想オブジェクト決定手段は、絞り込みが行われた候補情報に対して第2の識別情報を用いて検証を行う検証手段を含み、検証手段による検証の結果、妥当な情報であると判定されたときに、絞り込みが行われた候補情報に基づいて仮想オブジェクトを決定するようにしてもよい。
【0028】
上記構成例によれば、第1の領域に描かれている内容から得られた複数の候補をフィルタリングした後、更に検証を行う為、より識別精度を高めることができる。
【0029】
更に他の構成例として、識別情報取得手段は、識別する処理を行うことによって第3の識別情報を更に取得し、仮想オブジェクト決定手段は、取得された第1の識別情報、第2の識別情報、および第3の識別情報に基づいて仮想オブジェクトを決定するようにしてもよい。
【0030】
上記構成例によれば、少なくとも3つ以上の情報を用いるため、識別精度をより高めることができる。
【0031】
更に他の構成例として、仮想オブジェクト決定手段は、第2の識別情報および第3の識別情報の組み合わせを用いて第1の識別情報を検証する検証手段を含んでいてもよい。
【0032】
上記構成例によれば、第1の識別情報の妥当性を第2の識別情報と第3の識別情報という2つの情報を組みあわせて検証できるため、マーカの識別精度を高めることが可能となる。
【0033】
更に他の構成例として、識別情報取得手段は、認識対象内の第1の領域に描かれている、あるいは印刷されている絵を識別することで第1の識別情報を取得し、当該第1の領域とは異なる領域である第2の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、第1の領域の絵よりも単調なデザインの絵のうち少なくとも一つを識別することで第2の識別情報を取得し、当該第1の領域および第2の領域とは異なる領域である第3の領域に描かれている、あるいは印刷されている図形、記号、パターン画、および、第1の領域の絵よりも単調なデザインの絵のうち少なくとも一つを識別することで第3の識別情報を取得してもよい。
【0034】
上記構成例によれば、比較的複雑なデザインの絵の識別結果である第1の識別情報の妥当性を、図形、記号、パターン画や第1の領域の絵よりも単調なデザインの絵の識別結果である第2の識別情報と第3の識別情報という2つの情報を組みあわせて検証できるため、認識対象自体のデザイン性を損なわずに、且つ、認識対象に対する改変や改竄を抑止することができ、更に、認識対象の識別精度も高めることが可能となる。
【0035】
更に他の構成例として、認識対象内の第2の領域および第3の領域の面積は、第1の領域の面積よりも小さい面積であってもよい。
【0036】
上記構成例によれば、より広い領域である第1の領域に複雑な絵を描くことができるため、認識対象のデザイン性を高くすることができ、このようなデザイン性の高い認識対象を利用したAR画像の表示が可能となる。
【0037】
更に他の構成例として、識別情報取得手段は、第2の領域に対する識別処理と第3の領域に対する識別処理とでは異なる識別手法を用いた識別処理を行うようにしてもよい。
【0038】
上記構成例によれば、第2の領域と第3の領域とで異なる識別手法を用いて識別処理を行うため、誤認識の可能性を低減することが可能となる。
【0039】
更に他の構成例として、識別情報取得手段は、第1の識別情報として複数の候補情報を取得し、仮想オブジェクト決定手段は、第2の識別情報および第3の識別情報を用いて複数の候補情報を検証する検証手段と、検証手段による検証の結果に基づいて当該候補情報のうちの1つを選択する選択手段とを含み、選択手段により選択された候補情報に基づいて仮想オブジェクトを決定してもよい。
【0040】
上記構成例によれば、第1の領域に対する識別精度をより高めることができる。
【0041】
更に他の構成例として、検証手段は、複数の候補情報に対して第2の識別情報または第3の識別情報を用いた絞り込みを行い、当該前記絞り込まれた候補情報に対して、第2の識別情報および第3の識別情報の組み合わせを用いて検証を行うようにしてもよい。
【0042】
上記構成例によれば、第1の領域に対する識別精度をより高めることができる。
【0043】
本発明にかかる画像表示装置は、画像を表示する画像表示装置であって、撮像画像取得手段と、認識対象検出手段と、識別情報取得手段と、仮想オブジェクト決定手段と、位置関係算出手段と、仮想カメラ設定手段と、表示手段とを備える。撮像画像取得手段は、撮像手段により撮像された撮像画像を取得する。認識対象検出手段は、撮像画像の中から所定の認識対象を検出する。識別情報取得手段は、撮像画像のうち認識対象検出手段により検出された認識対象に対応する画像の少なくとも一部に対して当該画像の少なくとも一部の内容を識別する処理を行うことによって、少なくとも第1の識別情報および第2の識別情報を取得する。仮想オブジェクト決定手段は、取得された第1の識別情報および第2の識別情報に基づいて、所定の記憶媒体に予め記憶されている複数の仮想オブジェクトの中から少なくとも1つの仮想オブジェクトを表示対象として決定する。位置関係算出手段は、認識対象検出手段によって検出された認識対象と撮像手段との相対的な位置関係を算出する。仮想カメラ設定手段は、位置関係算出手段により算出された位置関係に基づいて、仮想空間内における仮想カメラを設定する。表示手段は、仮想オブジェクト決定手段で決定された仮想オブジェクトを仮想カメラで撮影することにより得られる画像を所定の表示部に表示する。
【0044】
本発明にかかる画像表示方法は、画像を表示する画像表示方法であって、撮像画像取得ステップと、認識対象検出ステップと、識別情報取得ステップと、仮想オブジェクト決定ステップと、位置関係算出ステップと、仮想カメラ設定ステップと、表示ステップとを備える。撮像画像取得ステップは、撮像ステップにより撮像された撮像画像を取得する。マーカ認識対象検出ステップは、撮像画像の中から所定の認識対象を検出する。識別情報取得ステップは、撮像画像のうち認識対象検出ステップにより検出された認識対象に対応する画像の少なくとも一部に対して当該画像の少なくとも一部の内容を識別する処理を行うことによって、少なくとも第1の識別情報および第2の識別情報を取得する。仮想オブジェクト決定ステップは、取得された第1の識別情報および第2の識別情報に基づいて、所定の記憶媒体に予め記憶されている複数の仮想オブジェクトの中から少なくとも1つの仮想オブジェクトを表示対象として決定する。位置関係算出ステップは、認識対象検出ステップにおいて検出された認識対象と撮像ステップとの相対的な位置関係を算出する。仮想カメラ設定ステップは、位置関係算出ステップにおいて算出された位置関係に基づいて、仮想空間内における仮想カメラを設定する。表示ステップは、仮想オブジェクト決定ステップにおいて決定された仮想オブジェクトを仮想カメラで撮影することにより得られる画像を所定の表示部に表示する。
【0045】
本発明にかかる画像表示システムは、マーカと情報処理装置で構成されるシステムである。情報処理装置は、撮像手段と、撮像画像取得手段と、マーカ検出手段と、識別情報取得手段と、仮想オブジェクト決定手段と、位置関係算出手段と、仮想カメラ設定手段と、表示手段とを備える。撮像画像取得手段は、撮像手段により撮像された撮像画像を取得する。マーカ検出手段は、撮像画像の中からマーカを検出する。識別情報取得手段は、撮像画像のうちマーカ検出手段により検出されたマーカに対応する画像の少なくとも一部に対して当該画像の少なくとも一部の内容を識別する処理を行うことによって、少なくとも第1の識別情報および第2の識別情報を取得する。仮想オブジェクト決定手段は、取得された第1の識別情報および第2の識別情報に基づいて、所定の記憶媒体に予め記憶されている複数の仮想オブジェクトの中から少なくとも1つの仮想オブジェクトを表示対象として決定する。位置関係算出手段は、マーカ検出手段によって検出されたマーカと撮像手段との相対的な位置関係を算出する。仮想カメラ設定手段は、位置関係算出手段により算出された位置関係に基づいて、仮想空間内における仮想カメラを設定する。表示手段は、仮想オブジェクト決定手段で決定された仮想オブジェクトを仮想カメラで撮影することにより得られる画像を所定の表示部に表示する。
【0046】
本発明にかかるマーカは、撮像手段によって撮像された撮像画像に対して所定の認識処理を行うことによって撮像手段とマーカとの位置関係を算出し、当該位置関係に基づいて仮想オブジェクトの画像を生成して表示する画像表示システムにおいて用いられるマーカであって、第1領域と、少なくとも1つ以上の第2領域とを含む。第1領域には、撮像手段で撮影され所定の認識処理が行われることで第1の情報が得られる絵が描かれている。また、第2領域には、撮像手段で撮影され所定の認識処理が行われることで第2の情報が得られるパターン画、図形、記号、または第1の領域の絵よりも単調なデザインの絵のいずれかが描かれている。更に、第1の情報および第2の情報は、表示する仮想オブジェクトを決定するために用いられる。
【0047】
上記構成例によれば、複雑なイラストが描かれること等によるマーカ自体のデザイン性を高めつつ、識別精度を高めることが可能なマーカを提供することができる。
【0048】
更に他の構成例として、第2領域の面積は第1領域の面積よりも小さい面積であってもよい。
【0049】
上記構成例によれば、より大きな面積を有する第1領域にデザイン性の高い絵や複雑な絵を描くことができるため、マーカの識別精度を低下させることなく、マーカ自体のデザイン性を高めることができる。
【発明の効果】
【0050】
本発明によれば、マーカの識別精度をより高めることができ、各マーカに対応した仮想オブジェクトを適切に表示することができる。
【発明を実施するための形態】
【0052】
以下、本発明の実施の形態について、図面を参照して説明する。尚、この実施例により本発明が限定されるものではない。
【0053】
図1において、ゲーム装置10は、折り畳み型の携帯ゲーム装置であり、開いた状態(開状態)のゲーム装置1を示している。ゲーム装置10は、開いた状態においてもユーザが両手または片手で把持することができるようなサイズで構成される。
【0054】
ゲーム装置10は、下側ハウジング11および上側ハウジング21を有する。下側ハウジング11と上側ハウジング21とは、開閉可能(折り畳み可能)に連結されている。
図1の例では、下側ハウジング11および上側ハウジング21は、それぞれ横長の長方形の板状で形成され、互いの長辺部分で回転可能に連結されている。通常、ユーザは、開状態でゲーム装置10を使用する。また、ユーザは、ゲーム装置10を使用しない場合には閉状態としてゲーム装置1を保管する。
【0055】
下側ハウジング11には、下側LCD(Liquid Crystal Display:液晶表示装置)12が設けられる。下側LCD12は横長形状であり、長辺方向が下側ハウジング11の長辺方向に一致するように配置される。なお、本実施形態では、ゲーム装置10に内蔵されている表示装置としてLCDを用いているが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置等、他の任意の表示装置を利用してもよい。また、ゲーム装置10は、任意の解像度の表示装置を利用することができる
【0056】
下側ハウジング11には、入力装置として、各操作ボタン14A〜14Lおよびタッチパネル13が設けられる。各操作ボタン14A〜14Lは、所定の入力を行うための入力装置である。
図1に示されるように、下側ハウジング11の内側面(主面)には、各操作ボタン14A〜14Lのうち、十字ボタン14A(方向入力ボタン14A)、ボタン14B、ボタン14C、ボタン14D、ボタン14E、電源ボタン14F、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lが、設けられる。十字ボタン14Aは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン14B、ボタン14C、ボタン14D、ボタン14Eは、十字状に配置される。ボタン14A〜14E、セレクトボタン14J、HOMEボタン14K、およびスタートボタン14Lには、ゲーム装置10が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン14Aは選択操作等に用いられ、各操作ボタン14B〜14Eは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン14Fは、ゲーム装置10の電源をオン/オフするために用いられる。
【0057】
アナログスティック15は、方向を指示するデバイスであり、下側ハウジング11の内側面の下側LCD12より左側領域の上部領域に設けられる。なお、アナログスティック15として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【0058】
十字状に配置される、ボタン14B、ボタン14C、ボタン14D、ボタン14Eの4つのボタンは、下側ハウジング11を把持する右手の親指が自然と位置するところに配置される。また、これらの4つのボタンと、アナログスティック15とは、下側LCD12を挟んで、左右対称に配置される。これにより、ゲームプログラムによっては、例えば、左利きの人が、これらの4つのボタンを使用して方向指示入力をすることも可能である。
【0059】
また、下側ハウジング11の内側面には、マイクロフォン用孔18が設けられる。マイクロフォン用孔18の下部には後述する音声入力装置としてのマイクが設けられ、当該マイクがゲーム装置10の外部の音を検出する。
【0060】
なお、
図1においては、操作ボタン14G〜14Iの図示を省略している。例えば、Lボタン14Gは、下側ハウジング11の上側面の左端部に設けられ、Rボタン14Hは、下側ハウジング11の上側面の右端部に設けられる。Lボタン14GおよびRボタン14Hは、ゲーム装置1に対して、例えば撮影指示操作(シャッター操作)を行うために用いられる。さらに、音量ボタン14Iは、下側ハウジング11の左側面に設けられる。音量ボタン14Iは、ゲーム装置1が備えるスピーカの音量を調整するために用いられる。
【0061】
また、ゲーム装置10は、各操作ボタン14A〜14Kとは別の入力装置として、さらにタッチパネル13を備えている。タッチパネル13は、下側LCD12の画面上に装着されている。なお、本実施形態では、タッチパネル13は、例えば抵抗膜方式のタッチパネルが用いられる。ただし、タッチパネル13は、抵抗膜方式に限らず、任意の押圧式のタッチパネルを用いることができる。また、本実施形態では、タッチパネル13として、例えば下側LCD12の解像度と同解像度(検出精度)のものを利用する。ただし、必ずしもタッチパネル13の解像度と下側LCD12の解像度とが一致している必要はない。また、下側ハウジング11の上側面には挿入口17(
図1に示す点線)が設けられている。挿入口17は、タッチパネル13に対する操作を行うために用いられるタッチペン28を収納することができる。なお、タッチパネル13に対する入力は通常タッチペン28を用いて行われるが、タッチペン28に限らずユーザの指でタッチパネル13に対する入力をすることも可能である。
【0062】
また、下側ハウジング11の左側面には開閉可能なカバー部11C(図示は省略)が設けられる。このカバー部11Cの内側には、ゲーム装置10とデータ保存用外部メモリ45とを電気的に接続するためのコネクタ(図示せず)が設けられる。データ保存用外部メモリ45は、コネクタに着脱自在に装着される。データ保存用外部メモリ45は、例えば、ゲーム装置10によって撮像された画像のデータを記憶(保存)するために用いられる。なお、上記コネクタおよびそのカバー部11Cは、下側ハウジング11の右側面に設けられてもよい。
【0063】
さらに、下側ハウジング11の上側面には、ゲーム装置10とゲームプログラムを記録した外部メモリ44を挿入するための挿入口11D(図示は省略)が設けられ、その挿入口11Dの内部には、外部メモリ44と電気的に着脱自在に接続するためのコネクタ(図示せず)が設けられる。当該外部メモリ44がゲーム装置10に接続されることにより、所定のゲームプログラムが実行される。なお、上記コネクタおよびその挿入口11Dは、下側ハウジング11の他の側面(例えば、右側面等)に設けられてもよい。
【0064】
また、下側ハウジング11の下側面にはゲーム装置10の電源のON/OFF状況をユーザに通知する第1LED16A、下側ハウジング11の右側面にはゲーム装置10の無線通信の確立状況をユーザに通知する第2LED16B(図示は省略)が設けられる。ゲーム装置10は他の機器との間で無線通信を行うことが可能であり、第2LED16Bは、無線通信が確立している場合に点灯する。ゲーム装置10は、例えば、IEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。下側ハウジング11の右側面には、この無線通信の機能を有効/無効にする無線スイッチ19(図示は省略)が設けられる
【0065】
一方、上側ハウジング21には、上側LCD22が設けられる。上側LCD22は横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。なお、下側LCD12と同様、上側LCD22に代えて、他の任意の方式および任意の解像度の表示装置を利用してもよい。なお、上側LCD22上を覆うように、タッチパネルを設けてもかまわない。
【0066】
また、上側ハウジング21には、上側LCD(Liquid Crystal Display:液晶表示装置)22、外側撮像部23(外側撮像部(左)23aおよび外側撮像部(右)23b)、内側撮像部24、3D調整スイッチ25、および、3Dインジケータ26が設けられる。上側LCD22は、横長形状であり、長辺方向が上側ハウジング21の長辺方向に一致するように配置される。上側LCD22は上側ハウジング21の中央に配置される。上側LCD22の画面の面積は、下側LCD12の画面の面積よりも大きく設定される。また、上側LCD22の画面は、下側LCD12の画面よりも横長に設定される。
【0067】
上側LCD22の画面は、上側ハウジング21の内側面(主面)21Bに設けられ、上側ハウジング21に設けられた開口部から当該上側LCD22の画面が露出される。上側LCD22の画素数は、例えば、640dot×200dot(横×縦)であってもよい。なお、本実施形態では上側LCD22は液晶表示装置であるとしたが、例えばEL(Electro Luminescence:電界発光)を利用した表示装置などが利用されてもよい。また、上側LCD22として、任意の解像度の表示装置を利用することができる。
【0068】
上側LCD22は、立体視可能な画像を表示することが可能な表示装置である。本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左目用画像と右目用画像とを左目および右目のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式(視差バリア方式)のものが用いられる。本実施形態では、上側LCD22はパララックスバリア方式のものとする。また、上側LCD22は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる。このように、上側LCD22は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する(平面視画像を表示する)平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切り替えは、スライドスイッチである3D調整スイッチ25によって行われる。
【0069】
外側撮像部23は、上側ハウジング21の外側面(上側LCD22が設けられた主面と反対側の背面)21Dに設けられた2つの撮像部(23aおよび23b)の総称である。外側撮像部(左)23aおよび外側撮像部(右)23bは、上側LCD22(上側ハウジング21)の左右方向に関して中央から対称となる位置にそれぞれ配置される。
【0070】
内側撮像部24は、上側ハウジング21の内側面(主面)21Bに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部24は、所定の解像度を有する撮像素子(例えば、CCDイメージセンサやCMOSイメージセンサ等)と、レンズとを含む。レンズは、ズーム機構を有するものでもよい。
【0071】
3Dインジケータ26は、上側LCD22が立体表示モードか否かを示す。3Dインジケータ26は、LEDであり、上側LCD22の立体表示モードが有効の場合に点灯する。
【0072】
また、上側ハウジング21の内側面には、スピーカ孔21Eが設けられる。後述するスピーカ43からの音声がこのスピーカ孔21Eから出力される。
【0073】
(ゲーム装置10の内部構成)
次に、
図2を参照して、ゲーム装置10の内部の電気的構成について説明する。
図2は、ゲーム装置10の内部構成を示すブロック図である。
図2に示すように、ゲーム装置10は、上述した各部に加えて、情報処理部31、メインメモリ32、外部メモリインターフェイス(外部メモリI/F)33、データ保存用外部メモリI/F34、データ保存用内部メモリ35、無線通信モジュール36、ローカル通信モジュール37、リアルタイムクロック(RTC)38、動きセンサ39、電源回路40、およびインターフェイス回路(I/F回路)41等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング11(または上側ハウジング21でもよい)内に収納される。
【0074】
情報処理部31は、所定のプログラムを実行するためのCPU(Central Processing Unit)311、画像処理を行うGPU(Graphics Processing Unit)312等を含む情報処理手段である。情報処理部31のCPU311は、ゲーム装置10内のメモリ(例えば外部メモリI/F33に接続された外部メモリ44やデータ保存用内部メモリ35)に記憶されているプログラムを実行することによって、当該プログラムに応じた処理を実行する。なお、情報処理部31のCPU311によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部31は、VRAM(Video RAM)313を含む。情報処理部31のGPU312は、情報処理部31のCPU311からの命令に応じて画像を生成し、VRAM313に描画する。そして、情報処理部31のGPU312は、VRAM313に描画された画像を上側LCD22及び/又は下側LCD12に出力し、上側LCD22及び/又は下側LCD12に当該画像が表示される。
【0075】
情報処理部31には、メインメモリ32、外部メモリI/F33、データ保存用外部メモリI/F34、および、データ保存用内部メモリ35が接続される。外部メモリI/F33は、外部メモリ44を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリI/F34は、データ保存用外部メモリ45を着脱自在に接続するためのインターフェイスである。
【0076】
メインメモリ32は、情報処理部31(のCPU311)のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ32は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部(外部メモリ44や他の機器等)から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ32として例えばPSRAM(Pseudo−SRAM)を用いる。
【0077】
外部メモリ44は、情報処理部31によって実行されるプログラムを記憶するための不揮発性の記憶手段である。データ保存用外部メモリ45は、不揮発性の読み書き可能なメモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。
【0078】
データ保存用内部メモリ35は、読み書き可能な不揮発性メモリ(例えばNAND型フラッシュメモリ)で構成され、所定のデータを格納するために用いられる。
【0079】
無線通信モジュール36は、例えばIEEE802.11b/gの規格に準拠した方式により、無線LANに接続する機能を有する。また、ローカル通信モジュール37は、所定の通信方式(例えば独自プロトコルによる通信や、赤外線通信)により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール36およびローカル通信モジュール37は情報処理部31に接続される。情報処理部31は、無線通信モジュール36を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール37を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【0080】
また、情報処理部31には、動きセンサ39が接続される。動きセンサ39には、加速度センサおよび角速度センサが含まれている。加速度センサは、3軸(xyz軸)方向に沿った直線方向の加速度(直線加速度)の大きさを検出する。また、角速度センサは、3軸(xyz軸)の角速度を検出する。例えば、角速度センサはジャイロセンサであり、3軸のジャイロセンサ1チップで構成される。角速度センサはヨー角に関する(単位時間あたりの)角速度(Y軸周りの角速度)、ロール角に関する(単位時間あたりの)角速度(Z軸周りの角速度)、およびピッチ角に関する(単位時間あたりの)角速度(X軸周りの角速度)を検出するためのものである。動きセンサ39は、下側ハウジング11の内部に設けられる。
【0081】
また、情報処理部31には、RTC38および電源回路40が接続される。RTC38は、時間をカウントして情報処理部31に出力する。情報処理部31は、RTC38によって計時された時間に基づき現在時刻(日付)を計算する。電源回路40は、ゲーム装置10が有する電源(下側ハウジング11に収納される上記充電式電池)からの電力を制御し、ゲーム装置10の各部品に電力を供給する。
【0082】
また、情報処理部31には、I/F回路41が接続される。I/F回路41には、マイク42およびスピーカ43が接続される。具体的には、I/F回路41には、図示しないアンプを介してスピーカ43が接続される。マイク42は、ユーザの音声を検知して音声信号をI/F回路41に出力する。アンプは、I/F回路41からの音声信号を増幅し、音声をスピーカ43から出力させる。また、タッチパネル13はI/F回路41に接続される。I/F回路41は、マイク42およびスピーカ43(アンプ)の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するA/D変換およびD/A変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル13からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部31に出力する。タッチ位置データは、タッチパネル13の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル13からの信号の読み込み、および、タッチ位置データの生成を所定時間に1回の割合で行う。情報処理部31は、タッチ位置データを取得することにより、タッチパネル13に対して入力が行われた位置を知ることができる。
【0083】
操作ボタン14は、上記各操作ボタン14A〜14Lからなり、情報処理部31に接続される。操作ボタン14から情報処理部31へは、各操作ボタン14A〜14Iに対する入力状況(押下されたか否か)を示す操作データが出力される。情報処理部31は、操作ボタン14から操作データを取得することによって、操作ボタン14に対する入力に従った処理を実行する。
【0084】
下側LCD12および上側LCD22は情報処理部31に接続される。下側LCD12および上側LCD22は、情報処理部31(のGPU312)の指示に従って画像を表示する。本実施形態では、情報処理部31は、上側LCD22に立体画像(立体視可能な画像)を表示させる。
【0085】
外側撮像部23および内側撮像部24は、情報処理部31に接続される。外側撮像部23および内側撮像部24は、情報処理部31の指示に従って画像を撮像し、撮像した画像データを情報処理部31に出力する。
【0086】
3D調整スイッチ25は、情報処理部31に接続される。3D調整スイッチ25は、スライダ25aの位置に応じた電気信号を情報処理部31に送信する。
【0087】
また、3Dインジケータ26は、情報処理部31に接続される。情報処理部31は、3Dインジケータ26の点灯を制御する。例えば、情報処理部31は、上側LCD22が立体表示モードである場合、3Dインジケータ26を点灯させる。
【0088】
次に、
図3〜
図4を参照して、ゲーム装置10において実行されるカード識別処理の概要を説明する。本実施形態では、マーカ型のARにおけるマーカの役割を有するカード101(後述)を外側撮像部23で撮像することで、上側LCD22に、拡張現実画像(以下、AR画像)を表示する処理を行う。特に、本実施形態で説明する処理は、主に上記カードの識別に関する処理となる。
【0089】
図3は、本実施形態の処理において用いられるカード101を示す模式図である。
図3において、カード101には、以下のような絵や模様やパターンが描かれている(印刷されている)。すなわち、黒枠部102が描かれており、当該黒枠部102の内部に、イラスト領域103とシンボル領域104とカラーコード領域105とが描かれている。なお、本実施形態では、当該カードの種類として、200種類のカードを用いる場合を例として説明する。つまり、本実施形態の処理では、この200種類のカード101の種類を個別に識別するための処理が実行される。
【0090】
イラスト領域103は、後述のシンボル領域104およびカラーコード領域105よりもその面積が広く取られている領域である。イラスト領域103には、所定の絵(以下、単にイラストと呼ぶ)が描かれている。
図3の例では、天使のイラストが描かれている。当該イラストは、典型的には、後述のシンボルやカラーコードに比べて多くの色が用いられた絵である。また、後述のシンボルやカラーコードに比べると複雑なデザインとなっている。本実施形態では、当該イラストとして所定のキャラクタが描かれ、このキャラクタに対応する仮想オブジェクトがAR画像として表示される。本実施形態では、このキャラクタの数(すなわち、イラストの数)が、上記カードの種類の数と同じく200体(すなわち、200枚のイラスト)であるとする。
【0091】
シンボル領域104は、上記イラスト領域103よりも小さい面積が割り当てられている。また、本実施形態では、カラーコード領域105よりは少し広い面積が割り当てられている。シンボル領域104には、上記イラストに比べ、比較的単調なデザインの記号や図形、図柄や絵(以下、シンボルと呼ぶ)が描かれる。また、当該シンボルは、輝度の違いがはっきりするようにデザインされている(例えば、グラデーションのような技法を用いていないデザイン)。これは、後述するような画像認識処理において、誤認識が発生しにくいようなデザインとなるように考慮されているためである。また、本実施形態において、当該シンボルの種類の数は、上記イラストの種類よりも少ない数であり、具体的には5種類であるとする。
【0092】
カラーコード領域105は、上記イラスト領域103よりも小さな面積が割り当てられている。また、本実施形態では、上記シンボル領域104よりも小さな面積が割り当てられている。カラーコード領域105には、4つの円が横方向に並べて描かれている。各円は、所定の色で塗りつぶされており、本実施形態では、当該所定の色は、赤・青・緑の3色であるとする。すなわち、カラーコード領域105内の4つの各円はそれぞれ、赤・青・緑のいずれか一色で塗りつぶされている。換言すれば、1つの円からは、赤・青・緑の3つのパターンが判別できることになり、これら4つの円の組み合わせによるパターン画(以下、カラーコードと呼ぶ)として、3の4乗、すなわち、81のカラーコードが存在することになる。すなわち、上記イラストの種類よりは少ない数となっている。
【0093】
なお、上記シンボルやカラーコードについて、その種類の数が上記イラストよりも少ないのは、次のような理由による。イラストについては、パターンマッチング等の画像認識処理を考慮せず、そのデザイン性等が優先されて描かれるものである。そのため、種類の数については特に限定されるべきものではない。その一方で、上記シンボルについては比較的単純な模様やパターンとし、更に、その種類を少ない数とすることで、パターンマッチング等の画像認識処理を考慮し、誤認識の可能性が低くなるようにデザインすることが可能となる。また、カラーコードについても、その識別処理に際しては、赤・青・緑の3色の判定で済むため、こちらについても誤認識は低いものとなっている。
【0094】
また、その他、カード101には、黒枠部102の上部に、イラスト領域103の描かれているキャラクタ等の名前や、当該カードを用いるゲームのタイトル等が描かれている。
【0095】
上記のような、イラスト領域103、シンボル領域104、カラーコード領域105の3つの領域を有するカード101を用いて、本実施形態では、以下のような処理を行う。まず、上記カード101を外側撮像部23で撮像し(
図4A参照)、得られた画像から上記イラスト領域に描かれているイラストを認識して(
図4B参照)、当該イラストに対応する第1のIDの候補を複数算出する。詳細は後述するが、本実施形態では、パターンマッチング処理により第1のIDの候補を算出する。
【0096】
次に、同様にして上記シンボル領域104を画像認識し、上記シンボルに対応する第2のIDを算出する(これについてもパターンマッチングの処理で行われる)。更に、カラーコード領域105に対して、上記4つの円で示されるカラーコードを識別し、これに対応する第3のIDを算出する。
【0097】
そして、上記第2のIDおよび第3のIDに基づいて得られるID(以下、チェック用ID)が、上記第1のIDの候補の中に存在するか否かをチェックする。つまり、チェック用IDを用いて、第1のID候補の検証を行う。その結果、両IDが一致した場合は、そのIDに対応する仮想オブジェクトが、表示すべき仮想オブジェクトとして決定される。そして、当該仮想オブジェクトを用いたAR画像が生成されて表示される(
図4C参照)。なお、このような処理が実行されるために、本実施形態では、第1のIDは、第2および第3のIDから得られるチェック用IDのいずれかと一致するように予め設定されるものとする。
【0098】
このように、本実施形態では、イラスト領域103に基づき算出されるIDと、シンボル領域およびカラーコード領域に基づき算出されるIDの2つのIDとをマッチングする処理を行うことで、上記カードを識別する処理を行っている。これは、主に以下のような理由によるものである。まず、上記イラスト領域103に描かれているイラストのみで当該カードを識別しようとすると、次のような問題がある。まず、カードの周囲光の影響で、外側撮像部23で得られた画像に映っているカードの識別精度が変動する。例えば、画像認識において、いわゆるパターンマッチングの手法を用いる場合、その一致度について何らかの閾値が設定されることが一般的であるが、この閾値を高い値に設定しすぎると、正当なカードを撮像しているにも関わらず、周囲光の加減等で、このカードが正常に認識されず、上記のような仮想オブジェクトの存在するAR画像が表示されないという問題がある。逆に、当該閾値を低くすると、正当なカードの識別精度は高くなるが、その反面、正当なカードではない他のカードであって、ある程度イラストの配色パターンが似ているイラストが描かれているカードについても正当なカードであるとして識別されてしまうことがある。つまり、全く関係ないカードを撮像した場合に、本来であればAR画像を表示すべきではないにも関わらず、正当なカードとして識別されて上記AR画像が表示されてしまうという問題がある。
【0099】
また、カードの識別手法として、カラーコードのみを用いるという手法も考えられるが、この場合は、以下のような問題がある。すなわち、上記カラーコード領域105に描かれているカラーコードでカードの識別が行われている、ということがユーザに類推されやすく、その結果、上記円の色がユーザによって別の色に塗りつぶされることにより、そのカードで本来予定(意図)されている仮想オブジェクトとは別の仮想オブジェクトが表示されてしまうという問題がある。
【0100】
上記のような問題に鑑みて、本実施形態では、イラスト領域103から得られるIDに対して、シンボル領域104およびカラーコード領域105の双方から得られるIDを用いて検証(本実施形態では、マッチング)することで、カードの識別を行うようにしている。これにより、正当なカードとそれ以外のカードとの識別精度をより高めることができる。
【0101】
ここで、イラスト領域103から得られるIDに関し、その候補として複数算出するのは、上記イラストは上述のように比較的複雑なデザインの絵であり、当該イラストの判別だけで一意に特定しようとした場合、上記のような周囲光の影響等で、配色等が類似した別のイラストと誤認識される可能性が残るためである。そのため、第1のIDについては一旦複数の候補を出し、上記第2のIDおよび第3のIDでこの候補を検証することで、結果として、イラストの識別精度を高めているのである。
【0102】
また、その他、上記カラーコードがユーザの手により改変されることによる、本来(開発者が)意図していないAR画像が表示されてしまうことを防ぐこともできる。
【0103】
次に、ゲーム装置10において行われるカード識別処理の詳細を説明する。まず、
図5を参照して、本処理において用いられる主なデータについて説明する。なお、
図5は、ゲーム装置10のメインメモリ32に記憶される主なデータを示す図である。
図5において、メインメモリ32には、カードテーブル201、シンボルパターンテーブル202、カラーコードテーブル203、候補IDデータ204等が記憶される。このうち、カードテーブル201、シンボルパターンテーブル202、カラーコードテーブル203については、例えば、外部メモリ44に予め記憶されたものが、本実施形態にかかる処理に際してメインメモリ32にコピーされたものである。一方、候補IDデータ204は、本処理の実行過程において適宜生成される一時ファイルである。
【0104】
カードテーブル201は、上述したようなカード101と、各カード101で示される仮想オブジェクト110等の対応を示すテーブルである。
図6は、カードテーブル201のデータ構成の一例を示す図である。
図6に示されたカードテーブルは、カードID2011、オブジェクトデータ2012、第1格子点パターン2013、シンボルID2014、カラーコードID2015を有する構造となっている。
【0105】
カードID2011は、上述した第1のIDに対応するものであり、各カード101を一意に識別するためのIDである。上記のように、本実施形態では、当該カードID2011の数は200であるとする。
【0106】
オブジェクトデータ2012は、各カードに対応した上記仮想オブジェクトに関するデータである。例えば、ポリゴンモデルデータやテクスチャデータである。その他、このようなモデリングデータは別のファイルとして生成しておき、当該データには、当該別ファイルを参照して各オブジェクトを識別(指定)するための情報が格納されていても良い。
【0107】
第1格子点パターン2013は、上記イラスト領域103に描かれているイラストをパターンマッチングで識別する際に用いられるデータである。本実施形態では、パターンマッチングの手法として、イラスト領域103を縦横16分割し、縦線と横線の交点、すなわち、格子点の画素を抽出し、この画素を用いてパターンマッチングを行う。そのため、当該第1格子点パターン2013は、例えば、当該各格子点の画素の色情報を示す値を、格子点の左上から右下の順に羅列したデータである。
【0108】
シンボルID2014は、上記第2のIDに対応するものであり、当該カード101のシンボル領域104に描かれたシンボルに対応するIDである。本実施形態では、シンボルは上記のように5種類であるため、このうちの何れかがシンボルID2014として定義されている。
【0109】
カラーコードID2015は、上記第3のIDに対応するものであり、当該カード101のカラーコード領域105に描かれたカラーコードに対応するIDである。本実施形態では、カラーコードは上記のように最大で81パターンあり、このうちの40パターンのみを使用するため、この40パターンのうちの何れかがカラーコードID2015として定義されている。
【0110】
なお、
図6の例では、カードID2011で示されるIDと、シンボルID2014およびカラーコードID2015の値を組み合わせて示されるID(上記チェック用ID)とが一致するように定義された例を示している。これは、上述したように、本実施形態では、仮想オブジェクトの決定に際して、第1のIDと、第2および第3のIDから得られるチェック用IDとの一致を判定する処理を行うためである。例えば、シンボルID2014の値が1〜5、カラーコードID2015の値が1〜80とした場合、カードID2011が”102”と定義されていれば、シンボルIDは”1”、カラーコードIDは”02”と定義されていることになる。但し、このような定義の仕方に限らず、他の実施形態では、例えば、シンボルID2014およびカラーコードID2015は数字を用いるが、カードID2011には文字列を用いるようなIDの命名手法を用いても良い。つまり、当該カードテーブル201において、シンボルID2014およびカラーコードID2015からカードID2011が一意に導出されるように定義されていれば、各IDの命名手法はどのようなものでもよい。
【0111】
次に、
図7は、上記シンボルパターンテーブル202のデータ構成の一例を示す図である。シンボルパターンテーブル202は、シンボルID2021、および、第2格子点パターン2022を有する構造となっている。
【0112】
シンボルID2021は、上記第2のID(シンボルID2014)と対応するIDである。第2格子点パターン2022は、上記シンボルをパターンマッチングで識別する際に用いられるデータである。シンボルのパターンマッチングについても、上記イラストの場合と同様、シンボルの画像を格子状に分割したときのその格子点の画素の色を利用する。そのため、当該データにも、当該格子点の各画素の色を示す情報が定義される。
【0113】
次に、
図8は、上記カラーコードテーブル203のデータ構成の一例を示す図である。カラーコードテーブル203は、カラーコードID2031、および、色パターン2032を有する構造となっている。
【0114】
カラーコードID2031は、上記第3のID(カラーコードID2015)に対応するIDである。色パターン2032は、上記カラーコードを識別する際に用いられるデータである。カラーコードの識別については、カメラ画像内の4つ円の色を取得し、その色の並びを判定することでカラーコードを判別する。そのため、当該データには、例えば、”赤赤青緑”や”赤赤緑青”のような色の並びのパターンを示す情報が定義される。
【0115】
次に、
図9は、候補IDデータ204のデータ構造の一例を示す図である。候補IDデータ204には、候補ID2041が含まれている。本実施形態では、カードIDについては、上記イラスト領域103のパターンマッチングの結果、類似度(スコア)が所定の閾値以上のカードID2011が取得される。この複数のカードID2011を類似度の高い順にソートして格納したものが、当該候補ID2041である。
【0116】
次に、
図10〜
図12を参照して、ゲーム装置10によって実行されるAR画像表示処理について説明する。なお、
図10〜
図11はゲーム装置10によって実行されるAR画像表示処理の全体処理を示すフローチャートである。この処理は、所定のゲーム処理の実行中に適宜呼び出されることでその実行が開始される。例えば、あるゲームのメニュー画面から、「カード識別モード」という項目がユーザによって選択されることで、その実行が開始される。
【0117】
まず、ステップS1において、外側撮像部23を用いて撮像された画像であるカメラ画像の取得処理が実行される。この際、上側LCD22には、外側撮像部23で撮像される画像がリアルタイムで表示されている状態である。また、この際、ユーザは、ゲーム装置10を持ってこれ自体を動かす事で、カード101の撮影距離を適宜調整することになる。
【0118】
次に、ステップS2において、カメラ画像から上記黒枠部102を認識する処理が実行される。具体的には、カメラ画像内における黒枠部102の四隅の座標を取得するための処理が行われる。なお、当該黒枠部102の認識についての基本的な制御手法等については当業者には既知であるため、詳しい説明は省略する。
【0119】
次に、ステップS3において、ステップS2の処理の結果、黒枠部102が認識できたか否かが判定される。その結果、黒枠部102が認識できていなければ(ステップS3でNO)、後述するステップS13に処理が進められる。一方、黒枠部102が認識できているときは(ステップS3でYES)、このときのカメラ画像が適宜メインメモリ32に記憶され、ステップS4において、当該カメラ画像を用いたID取得処理が実行される。この処理は、黒枠部102の内部の画像に基づき、上述した3つの領域からそれぞれに対応するIDを取得するための処理である。
【0120】
図12は、上記ステップS4で示したID取得処理の詳細を示すフローチャートである。まず、ステップS31において、上記ステップS2で取得された黒枠部102の四隅座標に基づき、カメラ画像内のイラスト領域103を特定する処理が実行される。
【0121】
次に、イラスト領域103のイラストについてのパターンマッチング処理が行われる。まず、ステップS32において、当該特定されたイラスト領域103内の画像を、予め定義されている格子状に分割し(例えば縦横16分割)、各格子点における画素が抽出される。その結果、各格子点における画素の色を示す格子点パターンが得られる。
【0122】
次に、ステップS33において、上記カードテーブル201が参照され、上記第1格子点パターン2013と上記ステップS32で抽出された格子点パターンとのパターンマッチングが実行される。そして、類似度が所定の閾値以上であるカードID2011が検索される。そして、その検索結果が類似度の高い順にソートされて候補IDデータ204としてメインメモリ32に記憶される。なお、この処理において、検索結果が0の場合(例えば、他のゲーム用のカードを撮像していた場合等)は、内容が0件の候補IDデータ204(つまり、空ファイル)が生成される。また、このように、類似度が所定の閾値以上のものを複数取得する(候補IDとする)のは、上記のように、イラストは複雑なデザインの絵であり、画像の識別処理を特段考慮して描かれるようなものではないことによる。つまり、当該パターンマッチングのみで一意に特定しようとすると誤認識の可能性があるため、ここでは、類似度の高いものを複数の候補として抽出している。
【0123】
なお、当該ステップS32およびS33の処理について、他の実施形態においては、上記のようにイラスト領域103を特定せず、単純に黒枠部102の内側全体(イラスト領域103、シンボル領域104、カラーコード領域105の全てを含んだ領域)に対して、上記のような格子点を用いたパターンマッチングを行っても良い。更には、パターンマッチングの手法についても、上記のような格子点を用いた処理方法は一例であり、これらに限らず、イラストの認識ができれば、どのような処理方法を用いても良い。
【0124】
イラスト領域103に関する候補IDの抽出が終われば、次に、シンボル領域104についてのIDの取得処理が行われる。まず、ステップS34において、上記黒枠部102の四隅座標に基づいて、カメラ画像内のシンボル領域104の特定が行われる。すなわち、シンボル領域104の四隅座標が算出される。次に、ステップS35において、当該特定されたシンボル領域104から、上述したような格子点の画素が抽出され、シンボル領域104の格子点パターンが得られる。
【0125】
次に、ステップS36において、シンボルパターンテーブル202の第2格子点パターン2022が参照されることでパターンマッチングが行われ、上記シンボル領域104の格子点パターンに対応するシンボルID2021が取得される。上記のように、シンボルはイラストのような複雑な絵ではなく、その種類も少ないため、当該パターンマッチングにおける誤認識の可能性は低い。そのため、ここでは、パターンマッチングの結果、類似度が最も高いシンボルのシンボルID2021が取得される。
【0126】
シンボルID2021が取得されれば、次に、カラーコード領域105についてのIDの取得処理が実行される。まず、ステップS37において、上記黒枠部102の四隅座標に基づいて、カメラ画像内のカラーコード領域105の特定が行われる。すなわち、カラーコード領域105の四隅座標が算出される。続くステップS38において、特定されたカラーコード領域105内の4つの円それぞれについて、各円の中の所定の画素が取得される。そして、これらの画素のそれぞれにつき、その色が、赤・青・緑のいずれであるかが判別される。これにより、4つの円で示されるカラーコードが取得されることになる。
【0127】
次に、ステップS39において、上記カラーコードテーブル203が参照され、ステップS38で得られたカラーコードに対応するカラーコードID2031が取得される。本実施形態でのカラーコードの判定は、赤・青・緑の3色の識別で済むため、当該カラーコードの誤認識の可能性は低い。以上で、ID取得処理は終了する。
【0128】
図10に戻り、次に、ステップS5において、上記候補IDデータ204が参照され、カードIDの候補(つまり、候補ID2041)が1つ以上存在するか否かが判定される。その結果、1つも存在していないときは(ステップS5でNO)、後述のステップS13に処理が進められる。一方、1つ以上存在していたときは(ステップS5でYES)、次のステップS51において、上記ステップS4の処理で、シンボルID2021およびカラーコードID2031が取得できたか否かが判定される。その結果、いずれか一方が取得できていなかったときは(ステップS51でNO)、後述するステップS13に処理が進められる。一方、シンボルID2021およびカラーコードID2031共に取得されていれば(ステップS51でYES)、ステップS6において、当該シンボルID2021およびカラーコードID2031に基づいてカードテーブル201が検索され、当該シンボルID2021およびカラーコードID2031の値が一致しているカード101のカードID2011が、上記チェック用IDとして取得される。
【0129】
次に、ステップS7において、候補IDデータ204が参照され、上記チェック用IDと一致する候補ID2041を検索する処理が実行される。続くステップS8において、当該検索の結果、一致する候補ID2041が見つかったか否かが判定される。その結果、見つからなかったときは(ステップS8でNO)、後述のステップS13に処理が進められる。
【0130】
一方、見つかったときは(ステップS8でYES)、当該IDで示される仮想オブジェクト110を用いてAR画面を生成・表示するための処理が実行される。まず、ステップS9において、上記カード101と、外側撮像部23との相対的な位置関係(距離や姿勢など)が算出される。これは、例えば、カメラ画像内における上記黒枠部102の四隅座標に基づいて算出される。そして、当該位置関係に基づき、仮想空間内における仮想カメラの位置および姿勢が設定される。
【0131】
次に、ステップS10において、カードテーブル201が参照され、上記候補ID2041と同じ値のカードID2011を有するレコードが検索される。そして、当該検索されたレコードのオブジェクトデータ2012に基づき、仮想オブジェクトが決定される。
【0132】
次に、ステップS11において、上記仮想オブジェクト110が適宜仮想空間内に配置される。そして、上記仮想カメラで当該仮想オブジェクトが撮影されることで、仮想オブジェクト110の画像が生成される。
【0133】
次に、ステップS12において、上記カメラ画像と当該仮想オブジェクト110の画像が合成されることで上記AR画像が生成される。そして、当該AR画像が上側LCD22に表示される。
【0134】
一方、上記ステップS5の判定の結果、カードの候補が1つも見つからなかった場合や(ステップS5でNO)、候補IDデータ204の中にチェック用IDと一致するものが見つからなかった場合は(ステップS8でNO)、ステップS13において、カメラ画像がそのまま上側LCD22に表示される。つまり、この場合は、仮想オブジェクト110は表示されないことになる。
【0135】
以上で、本実施形態にかかるAR画像表示処理の説明を終了する。
【0136】
このように、本実施形態では、1つのカード101(マーカ)から、イラストから得られるID(の候補)、シンボルから得られるID、カラーコードのIDという3種のIDを取得する。そして、イラストのIDに対して、他のIDを用いて検証することでカードを識別し、表示すべき仮想オブジェクトを決定している。これにより、マーカとしてのカード101の識別精度を高め、その結果、あるカードを撮像した際に表示される仮想オブジェクトの表示について、表示されるべき仮想オブジェクトをより正確に決定して表示することが可能になる。
【0137】
なお、上記実施形態では、イラストを識別して得られた複数の候補IDと、シンボルおよびカラーコードから得られるチェック用IDとをマッチングする処理が行われている。この際、当該候補IDに対してフィルタリングを行ってからマッチングを行うようにしても良い。例えば、当該候補IDに対して、シンボルIDのみを用いて絞り込みを行う。そして、その結果に対して、上記チェック用IDを用いたマッチングを行うようにしても良い。また、その他、候補IDに対してシンボルIDのみを用いて絞り込みを行い、その結果の中から、最も類似度の高い候補IDを採用するようにしてもよい。
【0138】
また、上記実施形態では、3種類のIDを用いた例を示したが、これに限らず、例えば、2種類のIDを用いるように構成しても良い。例えば、上記の実施形態から、カラーコードIDを省いた構成としても良い。例えば、上記の実施形態からシンボルIDを削除したような構成にしてもよい。この場合は、イラストから得られたIDをカラーコードから得られたIDで検証するような処理となる。そのため、カラーコード領域内の円の数を、例えば6つに増やせばよい。もちろん、4種類以上のIDを用いるようにしても良い。
【0139】
また、上記実施形態では、比較的複雑なデザインであるイラストに対して、比較的単純なデザインやパターンとなるシンボルやカラーコードを用いる場合を例に挙げたが、このようなシンボルやパターンに限らず、例えば、シンボルやカラーコードの代わりに、いわゆる2次元コード画像を利用しても良い。例えば、上記イラストと2次元コード画像だけを用いるように構成してもよいし、上記イラストとシンボルおよび2次元コードという組み合わせや、上記イラストと2次元コードおよびカラーコードというように組み合わせてもよい。
【0140】
また、上記実施形態では、イラスト領域103から得られたIDの検証方法として、チェック用IDとのマッチング(一致するか否か)を例に挙げたが、検証手法はこれに限らない。例えば、上記シンボルIDやカラーコードIDに基づいて、いわゆるチェックサムとしての値が算出されるように構成しても良い。そして、当該チェックサムの値を用いて、イラスト領域103から得られたIDを検証することで、カードの識別と仮想オブジェクトの決定を行うようにしても良い。
【0141】
また、上記実施形態では、イラスト領域103から得られたIDに対して、他の領域から得られたIDを用いて検証するという処理の例を挙げたが、この関係は逆の関係でも良く、イラスト領域103から得られたIDを、他の領域から得られたID(に基づき算出されるカードID)の検証用のIDとして用いるように構成しても良い。この場合は、例えば、カラーコードがユーザによって改変されたような場合に、イラストから得られるID(イラストは複雑な絵であるため、改変しにくい)でカラーコードを検証することで、このようなカラーコードの改変を発見することも可能となる。つまり、カラーコードの改変防止を図ることができる。
【0142】
また、上記実施形態では、ビデオシースルー方式を用いて拡張現実感を実現した。すなわち、本実施形態では、外側撮像部23によって撮像された画像と、仮想カメラ(左右の仮想カメラ)によって撮像された画像とが重ね合わされて重畳画像が生成され、当該重畳画像が上側LCD22に表示された。他の実施形態では、光学シースルー方式により拡張現実感を実現してもよい。例えば、実空間に配置されたマーカを検出するためのカメラを備えたヘッドマウンドディスプレイをユーザが装着し、ユーザはメガネのレンズ部分に相当するディスプレイ部を通して実空間を視認できるようになっている。このディプレイ部は、現実空間を透過してユーザの目に直接導くことが可能な素材によって構成されている。さらに、このディスプレイ部にはコンピュータにより生成した仮想オブジェクトの画像を表示させることができるようになっている。
【0143】
また、上記実施形態では、認識対象のマーカとしてカード101を用いるようにしたが、他の実施形態では、ゲーム装置10とは別の表示装置にカード101と同様な配色の画像を表示して、表示した画像を外側撮像部23で撮像することにより得られる画像に基づいて、認識対象のIDを取得して、当該IDに対応した仮想オブジェクトを表示すべきオブジェクトとして決定するようにしてもよい。
【0144】
また、上記実施形態においては、カード101を識別し、これに対応する仮想オブジェクトを表示するための一連の処理が単一の装置(ゲーム装置10)において実行される場合を説明したが、他の実施形態においては、上記一連の処理が複数の情報処理装置からなる情報処理システムにおいて実行されてもよい。例えば、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの一部の処理がサーバ側装置によって実行されてもよい。さらには、端末側装置と、当該端末側装置とネットワークを介して通信可能なサーバ側装置とを含む情報処理システムにおいて、上記一連の処理のうちの主要な処理がサーバ側装置によって実行され、当該端末側装置では一部の処理が実行されてもよい。また、上記情報処理システムにおいて、サーバ側のシステムは、複数の情報処理装置によって構成され、サーバ側で実行するべき処理を複数の情報処理装置が分担して実行してもよい。