(57)【特許請求の範囲】
【請求項１】
情報処理装置のコンピュータを、
画像を逐次取得する画像取得手段、
前記画像取得手段により取得された画像から特定対象を検出する特定対象検出手段、
前記特定対象検出手段により検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する第１領域情報検出手段、
前記第１領域情報検出手段による検出結果が所定の条件を満たすか否かを判定する第１判定手段、
前記特定対象のうち前記中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する第２領域情報検出手段、
前記第１判定手段による判定結果が肯定である場合に、前記第１領域情報検出手段により検出された前記第１領域情報および前記第２領域情報検出手段により検出された前記第２領域情報を出力する出力手段、および
前記出力手段により出力された前記第１領域情報と前記第２領域情報とに基づいて、所定の情報処理を行う処理手段として機能させるための情報処理プログラム。
【請求項２】
前記第２領域情報検出手段は、
前記第１判定手段による判定結果が肯定である場合に、前記周辺領域から得られた画素値に基づいて、前記第２領域情報を検出する、請求項１に記載の情報処理プログラム。
【請求項３】
前記コンピュータを、
前記周辺領域から得られた画素値に基づいて前記第２領域情報の誤りを検出するための誤り検出情報を検出する誤り検出情報検出手段、および
前記第２領域情報と前記誤り検出情報とを比較することにより前記第２領域情報が所定の条件を満たすか否かを判定する第２判定手段としてさらに機能させ、
前記出力手段は、
前記第２判定手段による判定結果が肯定であるときの第２領域情報を出力する、請求項１または請求項２に記載の情報処理プログラム。
【請求項４】
前記処理手段は、
前記第１領域情報と前記第２領域情報から構成される識別情報に基づいて、複数の画像データから１つの画像データを選択し、選択した画像データにより示される画像を表示装置に表示させる、請求項１から請求項３までのいずれか１項に記載の情報処理プログラム。
【請求項５】
前記第１領域情報は、前記特定対象の向きを示す向き情報を含み、
前記コンピュータを、
前記画像取得手段により取得された画像を撮像した撮像手段と前記特定対象検出手段により検出された特定対象との相対的な位置関係を算出する位置関係算出手段としてさらに機能させ、
前記処理手段は、
前記位置関係算出手段により算出された位置関係と前記向き情報とに基づいて、前記画像データにより示される画像を前記表示装置に表示させる、請求項４に記載の情報処理プログラム。
【請求項６】
前記情報処理装置には、前記画像を示す被写体を撮像する撮像手段が接続され、
前記第１判定手段は、
前記第１領域情報検出手段により検出された第１領域情報が示すパターンが、前記画像取得手段により取得された画像に含まれる特定対象の前記撮像手段に対する向きがどのような向きであっても互いに区別可能な複数のパターンのうちのいずれかと一致するか否かを判定する、請求項１から請求項５までのいずれか１項に記載の情報処理プログラム。
【請求項７】
画像を逐次取得する画像取得ステップ、
前記画像取得ステップにより取得された画像から特定対象を検出する特定対象検出ステップ、
前記特定対象検出ステップにより検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する第１領域情報検出ステップ、
前記第１領域情報検出ステップによる検出結果が所定の条件を満たすか否かを判定する第１判定ステップ、
前記特定対象のうち前記中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する第２領域情報検出ステップ、
前記第１判定ステップによる判定結果が肯定である場合に、前記第１領域情報検出ステップにより検出された前記第１領域情報および前記第２領域情報検出ステップにより検出された前記第２領域情報を出力する出力ステップ、および
前記出力ステップにより出力された前記第１領域情報と前記第２領域情報とに基づいて、所定の情報処理を行う処理ステップを含む、情報処理方法。
【請求項８】
画像を逐次取得する画像取得手段、
前記画像取得手段により取得された画像から特定対象を検出する特定対象検出手段、
前記特定対象検出手段により検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する第１領域情報検出手段、
前記第１領域情報検出手段による検出結果が所定の条件を満たすか否かを判定する第１判定手段、
前記特定対象のうち前記中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する第２領域情報検出手段、
前記第１判定手段による判定結果が肯定である場合に、前記第１領域情報検出手段により検出された前記第１領域情報および前記第２領域情報検出手段により検出された前記第２領域情報を出力する出力手段、および
前記出力手段により出力された前記第１領域情報と前記第２領域情報とに基づいて、所定の情報処理を行う処理手段を備える、情報処理装置。
【請求項９】
画像を逐次取得する画像取得手段、
前記画像取得手段により取得された画像から特定対象を検出する特定対象検出手段、
前記特定対象検出手段により検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する第１領域情報検出手段、
前記第１領域情報検出手段による検出結果が所定の条件を満たすか否かを判定する第１判定手段、
前記特定対象のうち前記中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する第２領域情報検出手段、
前記第１判定手段による判定結果が肯定である場合に、前記第１領域情報検出手段により検出された前記第１領域情報および前記第２領域情報検出手段により検出された前記第２領域情報を出力する出力手段、および
前記出力手段により出力された前記第１領域情報と前記第２領域情報とに基づいて、所定の情報処理を行う処理手段を備える、情報処理システム。
【請求項１０】
特定対象として機能し得る特徴を有するマーカ、
画像を逐次取得する画像取得手段、
前記画像取得手段により取得された画像から特定対象を検出する特定対象検出手段、
前記特定対象検出手段により検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する第１領域情報検出手段、
前記第１領域情報検出手段による検出結果が所定の条件を満たすか否かを判定する第１判定手段、
前記特定対象のうち前記中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する第２領域情報検出手段、
前記第１判定手段による判定結果が肯定である場合に、前記第１領域情報検出手段により検出された前記第１領域情報および前記第２領域情報検出手段により検出された前記第２領域情報を出力する出力手段、および
前記出力手段により出力された前記第１領域情報と前記第２領域情報とに基づいて、所定の情報処理を行う処理手段を備える、情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理プログラム、情報処理方法、情報処理装置および情報処理システムに関する。具体的には、本発明は、拡張現実感技術における情報処理プログラム、情報処理方法、情報処理装置および情報処理システムに関する。
【背景技術】
【０００２】
従来技術では、実世界をカメラで撮像して得られた画像からマーカを検出し、検出したマーカの３次元位置情報を計算し、計算した結果として得られた３次元位置情報に基づいて、その撮像された画像中のマーカに対応する位置に仮想オブジェクトを表示する技術が存在する（例えば、非特許文献１）。
【０００３】
しかし、非特許文献１に記載されるような情報処理装置においては、周囲環境によって撮像画像中の画素値が変化する可能性があり、その場合にはマーカのパターンを正確に認識できない場合があった。すなわち、マーカを精度良く認識する点については改善の余地があった。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】加藤博一，Ｍａｒｋ  Ｂｉｌｌｉｎｇｈｕｒｓｔ，浅野浩一，橘啓八郎、「マーカー追跡に基づく拡張現実感システムとそのキャリブレーション」，日本バーチャルリアリティ学会論文誌  Ｖｏｌ．４  Ｎｏ．４、１９９９年
【発明の概要】
【発明が解決しようとする課題】
【０００５】
よって、本発明の目的の１つは、マーカを精度良く認識する点について改善された情報処理プログラム等を提供することである。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明は、その一例として、以下のような態様で提供され得る。以下で示した具体的な記載のいずれもが、本発明の外延を理解するために示した例示的な記載であって、本発明がこの例に限定されることを意図するものではない。すなわち、当業者は、その具体的な記載から、本発明に関する記載および技術常識に基づいて均等な範囲を実施することができることが理解される。
【０００７】
一態様において、本発明は、情報処理プログラムを提供する。この情報処理プログラムは、情報処理装置のコンピュータを、画像取得手段、特定対象検出手段、第１領域情報検出手段、第１判定手段、第２領域情報検出手段、出力手段、および処理手段として機能させる。
【０００８】
ここで、画像取得手段は、画像を逐次取得する。特定対象検出手段は、画像取得手段により取得された画像から特定対象を検出する。第１領域情報検出手段は、特定対象検出手段により検出された特定対象の中央領域から得られた画素値に基づいて、当該中央領域に関連する第１領域情報を検出する。第１判定手段は、第１領域情報検出手段による検出結果が所定の条件を満たすか否かを判定する。第２領域情報検出手段は、上記特定対象のうち中央領域の周辺に存在する周辺領域から得られた画素値に基づいて、当該周辺領域に関連する第２領域情報を検出する。出力手段は、第１判定手段による判定結果が肯定である場合に、第１領域情報検出手段により検出された第１領域情報および第２領域情報検出手段により検出された第２領域情報を出力する。処理手段は、上記出力手段により出力された第１領域情報と第２領域情報とに基づいて、所定の情報処理を行う。
【０００９】
１つの実施形態において、上記第２領域情報検出手段は、上記第１判定手段による判定結果が肯定である場合に、上記周辺領域から得られた画素値に基づいて、上記第２領域情報を検出してもよい。
【００１０】
上述の実施形態において、上述の情報処理プログラムは、上記コンピュータを、誤り検出情報検出手段と、第２判定手段としてさらに機能させてもよい。誤り検出情報検出手段は、上記周辺領域から得られた画素値に基づいて上記第２領域情報の誤りを検出するための誤り検出情報を検出する。そして、第２判定手段は、上記第２領域情報と上記誤り検出情報とを比較することにより上記第２領域情報が所定の条件を満たすか否かを判定する。さらに、上記出力手段は、第２判定手段による判定結果が肯定であるときの第２領域情報を出力する。
【００１３】
上述の実施形態において、上記処理手段は、第１領域情報と第２領域情報から構成される識別情報に基づいて、複数の画像データから１つの画像データを選択し、選択した画像データにより示される画像を表示装置に表示させてもよい。
【００１４】
上述の実施形態において、上記第１領域情報は、上記特定対象の向きを示す向き情報を含んでもよい。このとき、その情報処理プログラムは、上記コンピュータを、上記画像取得手段により取得された画像を撮像した撮像手段と特定対象検出手段により検出された特定対象との相対的な位置関係を算出する位置関係算出手段としてさらに機能さてもよい。そして、上記処理手段は、位置関係算出手段により算出された位置関係と上記向き情報とに基づいて、上記画像データにより示される画像を表示装置に表示させる。
【００１５】
種々の実施形態において、上記情報処理装置には、上記画像を示す被写体を撮像する撮像手段が接続されてもよい。このとき、上記第１判定手段は、第１領域情報検出手段により検出された第１領域情報が示すパターンが、画像取得手段により取得された画像に含まれる特定対象の上記撮像手段に対する向きがどのような向きであっても互いに区別可能な複数のパターンのうちのいずれかと一致するか否かを判定し得る。
【００１６】
また、別の態様において、上述の情報処理プログラムは、それを実行する装置として使用されたとしても、１または複数の装置が通信可能に構成されるシステムとして使用されてもよい。また、本発明は、上述のようなプログラム、装置、システムとして実装され得る、方法も含む。
【００１７】
なお、本明細書で使用される場合、「コンピュータ読み取り可能な記憶媒体」との用語は、プログラム、コードおよび／またはデータをコンピュータシステムによって使用するために記憶することが可能な、任意の装置または媒体をいう。コンピュータ読み取り可能な記憶媒体は、コンピュータシステムによって読み取りが可能である限りにおいて、揮発性であっても、不揮発性であってもよい。コンピュータ読み取り可能な記憶媒体としては、例えば、磁気テープ、ハードディスクドライブ（ＨＤＤ）、コンパクトディスク（ＣＤ）、デジタルバーサタイルディスク（ＤＶＤ）、ブルーレイディスク（ＢＤ）、半導体メモリなどが挙げられるが、これらに限られない。
【００１８】
また、本明細書において使用される場合、「システム」（例えば、ゲームシステム、情報処理システム）との用語は、１つの装置で構成されてもよく、また、複数の装置であって、その各々の装置が他の装置のいずれかと通信可能であるものであってもよい。
【発明の効果】
【００１９】
本発明によって、マーカを精度良く認識する点について改善された情報処理プログラム等が提供された。
【図面の簡単な説明】
【００２０】
【図１】開状態におけるゲーム装置１０の正面図
【図２】閉状態におけるゲーム装置１０の左側面図、正面図、右側面図および背面図
【図３】ゲーム装置１０の内部構成を示すブロック図
【図４Ａ】外側撮像部２３によってマーカ６０が撮像されているときに上側ＬＣＤ２２の画面に表示される画像の一例
【図４Ｂ】マーカ６０の一例およびそのマーカ６０において定義づけられるマーカ座標系の一例を示す模式図
【図４Ｃ】ゲーム装置１０の情報処理に関わる座標系を示した模式図
【図４Ｄ】マーカ６０のパターンにおいて定義づけられる領域の一例を示す模式図
【図４Ｅ】図４Ｄで示されたマーカ６０の例を認識する過程を説明するための模式図
【図５】ゲーム装置１０のメインメモリ３２のメモリマップを示す図
【図６】例示的実施形態に係る情報処理プログラムにおける、入力画像の読み込みから、マーカ６０の検出・認識の過程を経て、仮想オブジェクトと入力画像と重畳的に表示するまでの一連の処理（メインループ処理）の例を示したフローチャート
【発明を実施するための形態】
【００２１】
（ゲーム装置の構成例）
以下、本発明の一例示的な実施形態に係るゲーム装置について説明する。図１および図２は、ゲーム装置１０の外観を示す平面図である。ゲーム装置１０は携帯型のゲーム装置であり、図１および図２に示すように折り畳み可能に構成されている。図１は、開いた状態（開状態）におけるゲーム装置１０を示し、図２は、閉じた状態（閉状態）におけるゲーム装置１０を示している。
【００２２】
図１は、開状態におけるゲーム装置１０の正面図である。ゲーム装置１０は、撮像部によって画像を撮像し、撮像した画像を画面に表示したり、撮像した画像のデータを保存したりすることが可能である。また、ゲーム装置１０は、着脱可能な記憶媒体（例えば、後述の外部メモリ４４）に記憶された、または、サーバや他のゲーム装置から受信した、あるいは内蔵する記憶領域（例えば、後述のデータ保存用内部メモリ３５）に記憶された、ゲームプログラムを実行可能であり、仮想空間に設定された仮想カメラで撮像した画像などのコンピュータグラフィックス処理により生成された画像を画面に表示したりすることができる。
【００２３】
まず、図１および図２を参照して、ゲーム装置１０の外観構成について説明する。図１および図２に示されるように、ゲーム装置１０は、下側ハウジング１１および上側ハウジング２１を有する。下側ハウジング１１と上側ハウジング２１とは、開閉可能（折り畳み可能）に接続されている。
【００２４】
（下側ハウジングの説明）
まず、下側ハウジング１１の構成について説明する。図１および図２に示すように、下側ハウジング１１には、下側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）１２、タッチパネル１３、各操作ボタン１４Ａ〜１４Ｌ、アナログスティック１５、ＬＥＤ１６Ａ〜１６Ｂ、挿入口１７、および、マイクロフォン用孔１８が設けられる。以下、これらの詳細について説明する。
【００２５】
図１に示すように、下側ＬＣＤ１２は下側ハウジング１１に収納される。下側ＬＣＤ１２の画素数は、例えば、３２０ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。下側ＬＣＤ１２は、後述する上側ＬＣＤ２２とは異なり、画像を（立体視可能ではなく）平面的に表示する表示装置である。なお、本実施形態では表示装置としてＬＣＤを用いているが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置など、他の任意の表示装置を利用してもよい。また、下側ＬＣＤ１２として、任意の解像度の表示装置を利用することができる。
【００２６】
図１に示されるように、ゲーム装置１０は、入力装置として、タッチパネル１３を備えている。タッチパネル１３は、下側ＬＣＤ１２の画面上に装着されている。なお、本実施形態では、タッチパネル１３は抵抗膜方式のタッチパネルである。ただし、タッチパネルは抵抗膜方式に限らず、例えば静電容量方式等、任意の方式のタッチパネルを用いることができる。本実施形態では、タッチパネル１３として、下側ＬＣＤ１２の解像度と同解像度（検出精度）のものを利用する。ただし、必ずしもタッチパネル１３の解像度と下側ＬＣＤ１２の解像度が一致している必要はない。また、下側ハウジング１１の上側面には挿入口１７（図１および図２（ｄ）に示す点線）が設けられている。挿入口１７は、タッチパネル１３に対する操作を行うために用いられるタッチペン２８を収納することができる。なお、タッチパネル１３に対する入力は通常タッチペン２８を用いて行われるが、タッチペン２８に限らずユーザの指でタッチパネル１３に対する入力をすることも可能である。
【００２７】
各操作ボタン１４Ａ〜１４Ｌは、所定の入力を行うための入力装置である。図１に示されるように、下側ハウジング１１の内側面（主面）には、各操作ボタン１４Ａ〜１４Ｌのうち、十字ボタン１４Ａ（方向入力ボタン１４Ａ）、ボタン１４Ｂ、ボタン１４Ｃ、ボタン１４Ｄ、ボタン１４Ｅ、電源ボタン１４Ｆ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌが、設けられる。十字ボタン１４Ａは、十字の形状を有しており、上下左右の方向を指示するボタンを有している。ボタン１４Ａ〜１４Ｅ、セレクトボタン１４Ｊ、ＨＯＭＥボタン１４Ｋ、およびスタートボタン１４Ｌには、ゲーム装置１０が実行するプログラムに応じた機能が適宜割り当てられる。例えば、十字ボタン１４Ａは選択操作等に用いられ、各操作ボタン１４Ｂ〜１４Ｅは例えば決定操作やキャンセル操作等に用いられる。また、電源ボタン１４Ｆは、ゲーム装置１０の電源をオン／オフするために用いられる。
【００２８】
アナログスティック１５は、方向を指示するデバイスである。アナログスティック１５は、そのキートップが、下側ハウジング１１の内側面に平行にスライドするように構成されている。アナログスティック１５は、ゲーム装置１０が実行するプログラムに応じて機能する。例えば、３次元仮想空間に所定のオブジェクトが登場するゲームがゲーム装置１０によって実行される場合、アナログスティック１５は、当該所定のオブジェクトを３次元仮想空間内で移動させるための入力装置として機能する。この場合において、所定のオブジェクトはアナログスティック１５のキートップがスライドした方向に移動される。なお、アナログスティック１５として、上下左右および斜め方向の任意の方向に所定量だけ傾倒することでアナログ入力を可能としたものを用いても良い。
【００２９】
また、下側ハウジング１１の内側面には、マイクロフォン用孔１８が設けられる。マイクロフォン用孔１８の下部には後述する音声入力装置としてのマイク４２（図３参照）が設けられ、当該マイク４２がゲーム装置１０の外部の音を検出する。
【００３０】
図２（ａ）は閉状態におけるゲーム装置１０の左側面図であり、図２（ｂ）は閉状態におけるゲーム装置１０の正面図であり、図２（ｃ）は閉状態におけるゲーム装置１０の右側面図であり、図２（ｄ）は閉状態におけるゲーム装置１０の背面図である。図２（ｂ）および（ｄ）に示されるように、下側ハウジング１１の上側面には、Ｌボタン１４ＧおよびＲボタン１４Ｈが設けられている。Ｌボタン１４ＧおよびＲボタン１４Ｈは、例えば、撮像部のシャッターボタン（撮影指示ボタン）として機能することができる。また、図２（ａ）に示されるように、下側ハウジング１１の左側面には、音量ボタン１４Ｉが設けられる。音量ボタン１４Ｉは、ゲーム装置１０が備えるスピーカの音量を調整するために用いられる。
【００３１】
図２（ａ）に示されるように、下側ハウジング１１の左側面には開閉可能なカバー部１１Ｃが設けられる。このカバー部１１Ｃの内側には、ゲーム装置１０とデータ保存用外部メモリ４５とを電気的に接続するためのコネクタ（図示せず）が設けられる。データ保存用外部メモリ４５は、コネクタに着脱自在に装着される。データ保存用外部メモリ４５は、例えば、ゲーム装置１０によって撮像された画像のデータを記憶（保存）するために用いられる。
【００３２】
また、図２（ｄ）に示されるように、下側ハウジング１１の上側面には、ゲーム装置１０とゲームプログラムを記録した外部メモリ４４を挿入するための挿入口１１Ｄが設けられ、その挿入口１１Ｄの内部には、外部メモリ４４と電気的に着脱自在に接続するためのコネクタ（図示せず）が設けられる。当該外部メモリ４４がゲーム装置１０に接続されることにより、所定のゲームプログラムが実行される。
【００３３】
また、図１および図２（ｃ）に示されるように、下側ハウジング１１の下側面にはゲーム装置１０の電源のＯＮ／ＯＦＦ状況をユーザに通知する第１ＬＥＤ１６Ａ、下側ハウジング１１の右側面にはゲーム装置１０の無線通信の確立状況をユーザに通知する第２ＬＥＤ１６Ｂが設けられる。ゲーム装置１０は他の機器との間で無線通信を行うことが可能であり、第１ＬＥＤ１６Ｂは、無線通信が確立している場合に点灯する。ゲーム装置１０は、例えば、ＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。下側ハウジング１１の右側面には、この無線通信の機能を有効／無効にする無線スイッチ１９が設けられる（図２（ｃ）参照）。
【００３４】
なお、図示は省略するが、下側ハウジング１１には、ゲーム装置１０の電源となる充電式電池が収納され、下側ハウジング１１の側面（例えば、上側面）に設けられた端子を介して当該電池を充電することができる。
【００３５】
（上側ハウジングの説明）
次に、上側ハウジング２１の構成について説明する。図１および図２に示すように、上側ハウジング２１には、上側ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ：液晶表示装置）２２、外側撮像部２３（外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂ）、内側撮像部２４、３Ｄ調整スイッチ２５、および、３Ｄインジケータ２６が設けられる。以下、これらの詳細について説明する。
【００３６】
図１に示すように、上側ＬＣＤ２２は上側ハウジング２１に収納される。上側ＬＣＤ２２の画素数は、例えば、８００ｄｏｔ×２４０ｄｏｔ（横×縦）であってもよい。なお、本実施形態では上側ＬＣＤ２２は液晶表示装置であるとしたが、例えばＥＬ（Ｅｌｅｃｔｒｏ  Ｌｕｍｉｎｅｓｃｅｎｃｅ：電界発光）を利用した表示装置などが利用されてもよい。また、上側ＬＣＤ２２として、任意の解像度の表示装置を利用することができる。
【００３７】
上側ＬＣＤ２２は、立体視可能な画像を表示することが可能な表示装置である。また、本実施例では、実質的に同一の表示領域を用いて左眼用画像と右眼用画像が表示される。具体的には、左眼用画像と右眼用画像が所定単位で（例えば、１列ずつ）横方向に交互に表示される方式の表示装置である。また、本実施例では、裸眼立体視可能な表示装置である。そして、横方向に交互に表示される左眼用画像と右眼用画像とを左眼および右眼のそれぞれに分解して見えるようにレンチキュラー方式やパララックスバリア方式（視差バリア方式）のものが用いられる。本実施形態では、上側ＬＣＤ２２はパララックスバリア方式のものとする。上側ＬＣＤ２２は、右眼用画像と左眼用画像とを用いて、裸眼で立体視可能な画像（立体画像）を表示する。すなわち、上側ＬＣＤ２２は、視差バリアを用いてユーザの左眼に左眼用画像をユーザの右眼に右眼用画像を視認させることにより、ユーザにとって立体感のある立体画像（立体視可能な画像）を表示することができる。また、上側ＬＣＤ２２は、上記視差バリアを無効にすることが可能であり、視差バリアを無効にした場合は、画像を平面的に表示することができる（上述した立体視とは反対の意味で平面視の画像を表示することができる。すなわち、表示された同一の画像が右眼にも左眼にも見えるような表示モードである）。このように、上側ＬＣＤ２２は、立体視可能な画像を表示する立体表示モードと、画像を平面的に表示する（平面視画像を表示する）平面表示モードとを切り替えることが可能な表示装置である。この表示モードの切替えは、後述する３Ｄ調整スイッチ２５によって行われる。
【００３８】
外側撮像部２３は、上側ハウジング２１の外側面（上側ＬＣＤ２２が設けられた主面と反対側の背面）２１Ｄに設けられた２つの撮像部（２３ａおよび２３ｂ）の総称である。外側撮像部（左）２３ａと外側撮像部（右）２３ｂの撮像方向は、いずれも当該外側面２１Ｄの外向きの法線方向である。
【００３９】
外側撮像部（左）２３ａと外側撮像部（右）２３ｂとは、ゲーム装置１０が実行するプログラムによって、ステレオカメラとして使用することが可能である。外側撮像部（左）２３ａおよび外側撮像部（右）２３ｂは、それぞれ所定の共通の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。
【００４０】
内側撮像部２４は、上側ハウジング２１の内側面（主面）２１Ｂに設けられ、当該内側面の内向きの法線方向を撮像方向とする撮像部である。内側撮像部２４は、所定の解像度を有する撮像素子（例えば、ＣＣＤイメージセンサやＣＭＯＳイメージセンサ等）と、レンズとを含む。
【００４１】
３Ｄ調整スイッチ２５は、スライドスイッチであり、上述のように上側ＬＣＤ２２の表示モードを切り替えるために用いられるスイッチである。また、３Ｄ調整スイッチ２５は、上側ＬＣＤ２２に表示された立体視可能な画像（立体画像）の立体感を調整するために用いられる。
【００４２】
３Ｄ調整スイッチ２５のスライダ２５ａは、所定方向（上下方向）の任意の位置にスライド可能であり、当該スライダ２５ａの位置に応じて上側ＬＣＤ２２の表示モードが設定される。また、スライダ２５ａの位置に応じて、立体画像の見え方が調整される。具体的には、スライダ２５ａの位置に応じて、右眼用画像および左眼用画像における横方向の位置のずれ量が調整される。
【００４３】
３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードか否かを示す。３Ｄインジケータ２６は、ＬＥＤであり、上側ＬＣＤ２２の立体表示モードが有効の場合に点灯する。なお、３Ｄインジケータ２６は、上側ＬＣＤ２２が立体表示モードになっており、かつ、立体視画像を表示するプログラム処理が実行されているときに限り、点灯するようにしてもよい。
【００４４】
また、上側ハウジング２１の内側面には、スピーカ孔２１Ｅが設けられる。後述するスピーカ４３からの音声がこのスピーカ孔２１Ｅから出力される。
【００４５】
（ゲーム装置１０の内部構成）
次に、図３を参照して、ゲーム装置１０の内部の電気的構成について説明する。図３は、ゲーム装置１０の内部構成を示すブロック図である。図３に示すように、ゲーム装置１０は、上述した各部に加えて、情報処理部３１、メインメモリ３２、外部メモリインターフェイス（外部メモリＩ／Ｆ）３３、データ保存用外部メモリＩ／Ｆ３４、データ保存用内部メモリ３５、無線通信モジュール３６、ローカル通信モジュール３７、リアルタイムクロック（ＲＴＣ）３８、加速度センサ３９、電源回路４０、およびインターフェイス回路（Ｉ／Ｆ回路）４１等の電子部品を備えている。これらの電子部品は、電子回路基板上に実装されて下側ハウジング１１（または上側ハウジング２１でもよい）内に収納される。
【００４６】
情報処理部３１は、所定のプログラムを実行するためのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１、画像処理を行うＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１２等を含む情報処理手段である。情報処理部３１のＣＰＵ３１１は、ゲーム装置１０内のメモリ（例えば外部メモリＩ／Ｆ３３に接続された外部メモリ４４やデータ保存用内部メモリ３５）に記憶されているプログラムを実行することによって、当該プログラムに応じた処理（例えば、撮影処理や、後述するゲーム処理）を実行する。なお、情報処理部３１のＣＰＵ３１１によって実行されるプログラムは、他の機器との通信によって他の機器から取得されてもよい。また、情報処理部３１は、ＶＲＡＭ（Ｖｉｄｅｏ  ＲＡＭ）３１３を含む。情報処理部３１のＧＰＵ３１２は、ＣＰＵ３１１からの命令に応じて画像を生成し、ＶＲＡＭ３１３に描画する。そして、ＧＰＵ３１２は、ＶＲＡＭ３１３に描画された画像を上側ＬＣＤ２２および／または下側ＬＣＤ１２に出力し、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像が表示される。
【００４７】
情報処理部３１には、メインメモリ３２、外部メモリＩ／Ｆ３３、データ保存用外部メモリＩ／Ｆ３４、および、データ保存用内部メモリ３５が接続される。外部メモリＩ／Ｆ３３は、外部メモリ４４を着脱自在に接続するためのインターフェイスである。また、データ保存用外部メモリＩ／Ｆ３４は、データ保存用外部メモリ４５を着脱自在に接続するためのインターフェイスである。
【００４８】
メインメモリ３２は、情報処理部３１（のＣＰＵ３１１）のワーク領域やバッファ領域として用いられる揮発性の記憶手段である。すなわち、メインメモリ３２は、上記プログラムに基づく処理に用いられる各種データを一時的に記憶したり、外部（外部メモリ４４や他の機器等）から取得されるプログラムを一時的に記憶したりする。本実施形態では、メインメモリ３２として例えばＰＳＲＡＭ（Ｐｓｅｕｄｏ−ＳＲＡＭ）を用いる。
【００４９】
外部メモリ４４は、情報処理部３１によって実行されるプログラムを記憶するための不揮発性の記憶手段である。外部メモリ４４は、例えば読み取り専用の半導体メモリで構成される。外部メモリ４４が外部メモリＩ／Ｆ３３に接続されると、情報処理部３１は外部メモリ４４に記憶されたプログラムを読み込むことができる。情報処理部３１が読み込んだプログラムを実行することにより、所定の処理が行われる。データ保存用外部メモリ４５は、不揮発性の読み書き可能なメモリ（例えば、ＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用外部メモリ４５には、外側撮像部２３で撮像された画像や他の機器で撮像された画像が記憶される。データ保存用外部メモリ４５がデータ保存用外部メモリＩ／Ｆ３４に接続されると、情報処理部３１はデータ保存用外部メモリ４５に記憶された画像を読み込み、上側ＬＣＤ２２および／または下側ＬＣＤ１２に当該画像を表示することができる。
【００５０】
データ保存用内部メモリ３５は、読み書き可能な不揮発性メモリ（例えば、ＮＡＮＤ型フラッシュメモリ）で構成され、所定のデータを格納するために用いられる。例えば、データ保存用内部メモリ３５には、無線通信モジュール３６を介した無線通信によってダウンロードされたデータやプログラムが格納される。
【００５１】
無線通信モジュール３６は、例えばＩＥＥＥ８０２．１１．ｂ／ｇの規格に準拠した方式により、無線ＬＡＮに接続する機能を有する。また、ローカル通信モジュール３７は、所定の通信方式（例えば、赤外線通信）により同種のゲーム装置との間で無線通信を行う機能を有する。無線通信モジュール３６およびローカル通信モジュール３７は情報処理部３１に接続される。情報処理部３１は、無線通信モジュール３６を用いてインターネットを介して他の機器との間でデータを送受信したり、ローカル通信モジュール３７を用いて同種の他のゲーム装置との間でデータを送受信したりすることができる。
【００５２】
また、情報処理部３１には、加速度センサ３９が接続される。加速度センサ３９は、３軸（ｘｙｚ軸）方向に沿った直線方向の加速度（直線加速度）の大きさを検出する。加速度センサ３９は、下側ハウジング１１の内部に設けられる。加速度センサ３９は、図１に示すように、下側ハウジング１１の長辺方向をｘ軸、下側ハウジング１１の短辺方向をｙ軸、下側ハウジング１１の内側面（主面）に対して垂直な方向をｚ軸として、各軸の直線加速度の大きさを検出する。なお、加速度センサ３９は、例えば静電容量式の加速度センサであるとするが、他の方式の加速度センサを用いるようにしてもよい。また、加速度センサ３９は１軸または２軸方向を検出する加速度センサであってもよい。情報処理部３１は、加速度センサ３９が検出した加速度を示すデータ（加速度データ）を受信して、ゲーム装置１０の姿勢や動きを検出することができる。
【００５３】
また、情報処理部３１には、ＲＴＣ３８および電源回路４０が接続される。ＲＴＣ３８は、時間をカウントして情報処理部３１に出力する。情報処理部３１は、ＲＴＣ３８によって計時された時間に基づき現在時刻（日付）を計算する。電源回路４０は、ゲーム装置１０が有する電源（下側ハウジング１１に収納される上記充電式電池）からの電力を制御し、ゲーム装置１０の各部品に電力を供給する。
【００５４】
また、情報処理部３１には、Ｉ／Ｆ回路４１が接続される。Ｉ／Ｆ回路４１には、マイク４２およびスピーカ４３が接続される。具体的には、Ｉ／Ｆ回路４１には、図示しないアンプを介してスピーカ４３が接続される。マイク４２は、ユーザの音声を検知して音声信号をＩ／Ｆ回路４１に出力する。アンプは、Ｉ／Ｆ回路４１からの音声信号を増幅し、音声をスピーカ４３から出力させる。また、タッチパネル１３はＩ／Ｆ回路４１に接続される。Ｉ／Ｆ回路４１は、マイク４２およびスピーカ４３（アンプ）の制御を行う音声制御回路と、タッチパネルの制御を行うタッチパネル制御回路とを含む。音声制御回路は、音声信号に対するＡ／Ｄ変換およびＤ／Ａ変換を行ったり、音声信号を所定の形式の音声データに変換したりする。タッチパネル制御回路は、タッチパネル１３からの信号に基づいて所定の形式のタッチ位置データを生成して情報処理部３１に出力する。タッチ位置データは、タッチパネル１３の入力面において入力が行われた位置の座標を示す。なお、タッチパネル制御回路は、タッチパネル１３からの信号の読み込み、および、タッチ位置データの生成を所定時間に１回の割合で行う。情報処理部３１は、タッチ位置データを取得することにより、タッチパネル１３に対して入力が行われた位置を知ることができる。
【００５５】
操作ボタン１４は、上記各操作ボタン１４Ａ〜１４Ｌからなり、情報処理部３１に接続される。操作ボタン１４から情報処理部３１へは、各操作ボタン１４Ａ〜１４Ｉに対する入力状況（押下されたか否か）を示す操作データが出力される。情報処理部３１は、操作ボタン１４から操作データを取得することによって、操作ボタン１４に対する入力に従った処理を実行する。
【００５６】
下側ＬＣＤ１２および上側ＬＣＤ２２は情報処理部３１に接続される。下側ＬＣＤ１２および上側ＬＣＤ２２は、情報処理部３１（のＧＰＵ３１２）の指示に従って画像を表示する。本実施形態では、情報処理部３１は、上側ＬＣＤ２２に立体画像（立体視可能な画像）を表示させる。
【００５７】
具体的には、情報処理部３１は、上側ＬＣＤ２２のＬＣＤコントローラ（図示せず）と接続され、当該ＬＣＤコントローラに対して視差バリアのＯＮ／ＯＦＦを制御する。上側ＬＣＤ２２の視差バリアがＯＮになっている場合、情報処理部３１のＶＲＡＭ３１３に格納された右眼用画像と左眼用画像とが、上側ＬＣＤ２２に出力される。より具体的には、ＬＣＤコントローラは、右眼用画像について縦方向に１ライン分の画素データを読み出す処理と、左眼用画像について縦方向に１ライン分の画素データを読み出す処理とを交互に繰り返すことによって、ＶＲＡＭ３１３から右眼用画像と左眼用画像とを読み出す。これにより、右眼用画像および左眼用画像が、画素を縦に１ライン毎に並んだ短冊状画像に分割され、分割された右眼用画像の短冊状画像と左眼用画像の短冊状画像とが交互に配置された画像が、上側ＬＣＤ２２の画面に表示される。そして、上側ＬＣＤ２２の視差バリアを介して当該画像がユーザに視認されることによって、ユーザの右眼に右眼用画像が、ユーザの左眼に左眼用画像が視認される。以上により、上側ＬＣＤ２２の画面には立体視可能な画像が表示される。
【００５８】
外側撮像部２３および内側撮像部２４は、情報処理部３１に接続される。外側撮像部２３および内側撮像部２４は、情報処理部３１の指示に従って実世界を撮像し、撮像した実世界の画像データを情報処理部３１に出力する。なお、撮像画像をリアルタイムで上側ＬＣＤ２２または下側ＬＣＤに表示したり、撮像画像に対してリアルタイムに色認識や顔認識等の画像処理を行ったりする場合、外側撮像部２３や内側撮像部２４は、所定の時間間隔で実世界を撮像して、画像データを情報処理部３１に出力するようになっている。
【００５９】
３Ｄ調整スイッチ２５は、情報処理部３１に接続される。３Ｄ調整スイッチ２５は、スライダ２５ａの位置に応じた電気信号を情報処理部３１に送信する。
【００６０】
また、３Ｄインジケータ２６は、情報処理部３１に接続される。情報処理部３１は、３Ｄインジケータ２６の点灯を制御する。例えば、情報処理部３１は、上側ＬＣＤ２２が立体表示モードである場合、３Ｄインジケータ２６を点灯させる。以上がゲーム装置１０の内部構成の説明である。
【００６１】
（ゲーム装置１０における情報処理の概要）
以下、例示的な実施形態に係るゲーム装置１０における情報処理の概要について説明する。
【００６２】
本実施形態において、情報処理部３１は、実世界の絶対座標（例えば、マーカ座標系における座標）に対して、ビジュアルマーカ６０（以下、マーカ６０）を基準に仮想空間における座標の対応を取る。情報処理部３１は、マーカ６０を含む画像に対して特徴抽出処理を行なうことでマーカ６０の像を含む画像の少なくとも一部を認識する。次いで、情報処理部３１は、認識されたマーカ６０における所定位置をマーカ座標系の原点として設定する。次に、情報処理部３１は、実世界を撮影した外側撮像部２３と、仮想空間における仮想カメラとが、基準であるマーカ６０に対して同じ位置・姿勢をとるように設定する。そして、情報処理部３１は、仮想カメラの特性（例えば、レンズ歪み、焦点距離、画角などのパラメータ）を、外側撮像部２３に必要に応じて合致させる。このようにして、マーカ６０を含む実世界画像に対応する実世界と、仮想世界画像に対応する仮想空間との適切な重ね合わせが行われる。
【００６３】
なお、上述の特徴抽出処理は、入力した画像の認識を可能にするための特徴を抽出する処理である。画像の特徴としては、点、線、領域が挙げられる。点、線、領域は、固有の特徴量を有している。点の特徴量としては、例えば、座標、明るさ、色が挙げられる。線の特徴量としては、例えば、長さ、方向が挙げられる。また、領域の特徴量としては、例えば、面積、テクスチャ（明るさ、色などの規則的に変化するパターン）が挙げられる。
【００６４】
情報処理部３１は、入力画像に対して特徴抽出を行い、得られた特徴量を用いて当該画像を認識し、マーカ６０に関連づけられた情報を取得する。より具体的には、情報処理部３１は、モノクロまたはカラーで描かれたパターンを有するマーカの像を含む入力画像に対する画像認識処理により、その描かれたパターンに対応する識別情報を取得し得る。また、情報処理部３１は、入力画像と予め登録された画像との類似度を求めるテンプレートマッチングにより、マーカ６０に対応づけられる識別情報を取得し得る。もしくは、情報処理部３１は、入力画像に描かれたデータセルのマトリックス（例えば、白黒の１ビット（（０，１）の２通り）を表す点としての微細な正方形を上下左右に配列させたマトリックスコード）を認識することにより、マーカ６０に対応づけられる識別情報を取得し得る。
【００６５】
本実施形態に係る情報処理プログラムは、当該ゲームプログラム７０の一部として機能するように提供される。なお、この情報処理プログラムは、モジュール化されて当該ゲームプログラムから分離可能なプログラムとして存在していてもよく、また、一体不可分なプログラムとして存在していてもよい。
【００６６】
ゲームプログラム７０の基本的な処理は、次のような流れである。
（１）情報処理部３１は、外側撮像部２３により撮像された実世界の画像を取得する。
（２）情報処理部３１は、取得された画像に対する画像処理によってマーカ６０を検出し、マーカ６０に描かれているパターンを認識する。
（３）情報処理部３１は、撮像された画像中のマーカ６０の位置情報から射影幾何学的な計算により３次元空間でのマーカ６０の位置・姿勢を計測する。
（４）情報処理部３１は、計測した位置情報をもとに３次元仮想オブジェクトを合成した画像を生成する。情報処理部３１は、立体視が行なわれる場合には、当該画像を立体糸可能な態様に加工した画像を生成する。
（５）情報処理部３１は、生成された画像をゲーム装置１０の所定の表示面に表示する。例示的実施形態における新規の特徴は、上述の（１）から（５）までの処理の中のうち、特に、処理（２）に関連する。
【００６７】
以下、図４Ａ以降の図を中心にさらに参照して、ゲーム装置１０においてゲームプログラム７０に基づいて実行される情報処理のさらなる詳細について説明する。
【００６８】
図４Ａは、外側撮像部２３によってマーカ６０が撮像されているときに上側ＬＣＤ２２の画面に表示される画像の一例である。情報処理部３１は、外側撮像部２３から取得される画像（実世界画像）に対して画像処理を行う。情報処理部３１は、その画像処理の結果に基づき、その実世界画像にマーカ６０が含まれているか否かを判定できる。ここで、情報処理部３１は、認識されたマーカ６０を基準とするマーカ座標系（実世界におけるマーカ６０の位置に対応する仮想空間内の所定点を原点とした座標系）を規定する。
【００６９】
情報処理部３１は、マーカ６０の位置・姿勢またはその位置等から算出された情報を基準にして、複数の仮想オブジェクト（例えば、オブジェクトＯＢＪ１）が、上側ＬＣＤ２２において、立体視可能に表示する。ここで、情報処理部３１は、実世界画像と情報処理の過程で生成される仮想空間の画像（仮想世界画像）とを適切に融合する。実環境から受ける知覚情報を拡張・強化するために、情報処理部３１は、マーカ６０を含む実世界画像に対応する実空間と、仮想世界画像に対応する仮想空間とを適切に重ね合わせる。
【００７０】
図４Ｂは、マーカ６０の一例およびそのマーカにおいて定義づけられるマーカ座標系の一例を示す模式図である。この例示的な実施形態において、マーカ６０は、正方形（Ｌ1［ｍｍ］×Ｌ1［ｍｍ］）の主面を有する。そして、このマーカ６０は、その主面に描かれた黒色の太枠（以下、外枠部Ｑ１）の中に、描かれた識別用のパターン（白黒またはフルカラーの図柄）を有している。この外枠部Ｑ１の形状は、正方形（Ｌ2［ｍｍ］×Ｌ2［ｍｍ］）である。また、外枠部Ｑ１は、白色の太枠（以下、最外枠部Ｑ２）に囲まれている。なお、最外枠部Ｑ２は、マーカ６０を精度良く検出するために設けている領域であるが、本領域がなくともよい。これは、本発明の実施形態において用いられ得るマーカ６０の一例であるが、当業者は本明細書の具体的な記載に基づき本発明の思想を逸脱せずに種々の改変を達成し得る。
【００７１】
本例では、マーカ座標系の原点Ｏは、マーカ６０の中心の位置におかれている。また、このマーカ座標系の点は、（Ｘm，Ｙm，Ｚm）で表現される。図４Ｂに示されるように、マーカの主面は、マーカ座標系における平面Ｘm−Ｙmに相当する。Ｚm軸は、当該平面に直交する座標軸である。仮想オブジェクト（例えば、仮想オブジェクトＯＢＪ１）は、マーカ座標系に表現される。情報処理部３１は、仮想オブジェクトと実世界を撮像した画像とを重畳的に表示するために、撮像する視点を原点とした座標系をその処理において使用する。
【００７２】
ゲーム装置１０は、ユーザに立体視を提供する機能を備えている。立体視可能な画像を提供するために、ゲーム装置１０は、視点としての右眼および左眼の両方に対して別々に座標系を設定する場合がある。しかし、以下の説明では、マーカ６０とそれを含む実世界を撮像する際の視点との相対的位置に関係する説明の簡素化のため、「カメラ座標系」に基づき説明を行なう。この「カメラ座標系」は、代表点としての視点を原点とする座標系である。立体視のための右眼用画像および左眼用画像を提供するために導入すべき座標系およびそれに基づく座標変換行列は、上述のカメラ座標系における以下の説明に基づいて、右眼用画像と左眼用画像との間に成立すべき両眼像差を考慮することで得られることが当業者によって理解される。
【００７３】
また、実際に、外側撮像部２３から取り込まれた生の画像データは、その光学系の特性（例えば、レンズの特性）により歪みを含む場合がある（例えば、撮像部において広角レンズが用いられる場合は、樽型歪みが発生し得る）。情報処理部３１は、このような光学系の特性に依存した歪みなどを、適宜、歪み関数などを利用した座標変換処理を行なうことで、必要に応じて除去し得る。
【００７４】
よって、以下では、マーカ座標系と、カメラ座標系との関係性に基づき、本発明の例示的な実施形態について説明する。
【００７５】
図４Ｃは、ゲーム装置１０の情報処理に関わる座標系を示した模式図である。
【００７６】
カメラ座標系は、視点を原点、画像平面に垂直な方向をＺc軸、透視変換モデルによって投影される画像平面のｘc，ｙc軸に平行な方向を各Ｘｃ，Ｙｃ軸とする。マーカ座標系で表現された点（Ｘm，Ｙm，Ｚm）は、回転・平行移動でカメラ座標系に変換可能である。カメラ座標系の点は、（Ｘc，Ｙc，Ｚc）と表記される。本明細書において、透視変換モデルによって投影される画像平面をスクリーン座標系と呼ぶ。カメラ座標系の点（Ｘc，Ｙc，Ｚc）は、スクリーン座標系における点（ｘc，ｙc）に写るものとする。
【００７７】
図４Ｄは、マーカ６０のパターンにおいて定義づけられる領域の一例を示す模式図である。なお、図４Ｅは、図４Ｄで示されたマーカ６０の例を認識する過程を説明するための模式図であるが、その詳細については後述する。なお、図４Ｄおよび図４Ｅにおいては、最外枠部Ｑ２の記載を省略している。
【００７８】
図４Ｄは、その紙面に向かって左側上に、マーカ６０の主面に描かれるパターンの一例を示している。このマーカ６０は、外枠部Ｑ１の内側に識別用パターンを有している。この例では、外枠部Ｑ１を除いたマーカ６０の領域（識別パターン領域）は、格子状に１６分割された区域毎に扱われる（図４Ｄの右側上を参照）。すなわち、当該区域は、白または黒に塗られている。
【００７９】
情報処理部３１は、外側撮像部２３から実世界の画像を取得する。次いで、情報処理部３１は、この取得された画像（以下、「カメラ画像」）を２値画像に変換する。そして、情報処理部３１は、この２値画像からマーカ６０を検出しそのパターンの認識を行なう。
【００８０】
情報処理部３１は、２値化したカメラ画像からマーカ６０を検出して認識するとき、認識対象となっているマーカ６０のパターンを含む面の領域を複数の領域に分けて段階的に取り扱う。
【００８１】
具体的には、情報処理部３１は、マーカ６０を認識するとき、まず、その中央領域Ａ１のパターンを認識する。図４Ｄの右側上に記載されるように、識別パターン領域は、例えば、格子状に１６分割されて領域を単位として取り扱われる。なお、図中の点線は、説明の便宜のためであり、実際のマーカ６０に含まれるわけではない。さらに、情報処理部３１は、その識別パターン領域に含まれる単位領域群を、中央の４個（２×２個）の単位領域からなる単位領域群（以下、中央領域Ａ１）とその周囲に位置づけられる１２個の単位領域からなる単位領域群（以下、外側領域Ａ２）に分けて取り扱う。
【００８２】
識別パターン領域のパターンを認識する過程で、情報処理部３１は、まず、中央領域Ａ１の認識処理を行なう。そして、情報処理部３１は、中央領域Ａ１の認識結果に依存して、マーカ６０の外側領域を認識する。情報処理部３１が、中央領域Ａ１を認識して、その認識結果をその他の領域に認識に利用することで、認識精度の向上を達成する。
【００８３】
より具体的な認識の方法について説明する。情報処理部３１は、例えば、カメラ画像全体の画素値（例えば、輝度値）に基づいてマーカ検出における２値化処理のための閾値を設定する。そして、情報処理部３１は、マーカの中央領域Ａ１に属するパターン（白黒パターン）の認識にこの閾値を利用する。情報処理部３１は、この認識結果に対応する情報を、所定長（例えば、４ビット長）のビット列として取得する。ここで、白または黒は、それぞれ、「０」または「１」と対応づけて表現される。
【００８４】
次いで、情報処理部３１は、この取得したビット列が、所定の組合せ（例えば、｛１，０，０，０｝、｛０，１，１，１｝）であるか否かを判定する。そして、情報処理部３１は、ビット列がこの所定の組合せを構成すると判定したときに、残りの領域（外側領域Ａ２）のパターンを判定する処理に進む。情報処理部３１が、中央領域Ａ１のみを取り出して、先に認識させることによって、認識の効率を向上させ得る。これは任意の方向からみて画素がつぶれにくい中央領域Ａ１が認識される。その認識がうまくいかない場合、外側の領域についても画質が認識のための要件を満たしていない状態である場合が多い。したがって、中央領域Ａ１が先に認識されて、その領域の認識結果に依存してその外側領域の認定の要否が決定されるため、無駄な処理を行なわずに処理を進めることもできる。
【００８５】
さらに、情報処理部３１は、中央領域Ａ１の画素値に基づいて残りの外側領域の認識のための閾値を設定する。そして、情報処理部３１は、この新たな閾値を利用することで、外側領域に属する画素の白黒判定を実行する。中央領域Ａ１の画素値に基づいて残りの外側領域を認識するための閾値を設定することで、周囲環境の変化にも対応することができる認識処理が達成される。
【００８６】
そして、情報処理部３１は、この閾値を利用してマーカの外側領域に属するパターン（白黒パターン）の判定結果のみから所定長のビット列からなる情報（例えば、９ビット長の情報）を取得する。なお、外側の領域のパターンには、あらかじめ、誤り検出のための情報（パリティ・ビット）として機能する情報に対応する領域（例えば、総計３ビット分）が存在する。この外側の領域に誤り検出を導入することで、画素がつぶれやすい外側の領域についても精度良い認識結果が得られる。
【００８７】
（処理の詳細）
（処理に使用される主要なデータの一例）
まず、ゲームプログラム７０の実行中にメインメモリ３２に記憶される主なデータについて説明する。
【００８８】
図５は、ゲーム装置１０のメインメモリ３２のメモリマップを示す図である。図５に示されるように、メインメモリ３２には、ゲームプログラム７０、実世界画像７１、座標変換行列７２、仮想オブジェクト情報７３、各種変数７４等が記憶される。この各種変数には、上述の情報処理プログラムの処理過程において現れる画像における画像処理に用いられるパラメータあるいは一時的な処理対象データが含まれる。本明細書において特に明示しなければ、いずれのパラメータも、ゲーム装置１０の当該メインメモリ３２において記憶され、また再利用されることが可能である。代替的に、これらのパラメータ等を示すデータは、ゲーム装置１０の別の記憶領域に保存され、さらにそこから読み出されることで再利用されてもよい。
【００８９】
ゲームプログラム７０は、情報処理部３１に情報処理を実行させるためのプログラムである。
【００９０】
実世界画像７１は、外側撮像部２３によって撮像された実世界の画像である。実世界画像７１は、外側撮像部（左）２３ａによって撮像された実世界の画像（左実世界画像）および／または外側撮像部（右）２３ｂによって撮像された実世界の画像（左実世界画像）であり得る。
【００９１】
座標変換行列７２は、仮想カメラからみた仮想オブジェクトを描画する際に用いられる行列であり、マーカ座標系で表された座標を仮想カメラ座標系で表された座標へと変換するための座標変換行列である。立体視を提供する場合にあっては、左眼用画像と右眼用画像との間に生じる両眼像差を考慮した設定のもと、情報処理部３１は、その処理過程において、左眼用の仮想カメラ座標系と右眼用の仮想カメラ座標系、ならびに座標変換行列を設ける。
【００９２】
仮想オブジェクト情報７３は、仮想オブジェクトに関連する情報であって、仮想オブジェクトの形状や模様を表すモデル情報や、仮想空間における仮想オブジェクトの現在位置などを含む。
【００９３】
各種変数７４は、ゲームプログラム７０の実行の際に用いられる各種変数である。
【００９４】
ゲーム装置１０の電源が投入されると、ゲーム装置１０の情報処理部３１（ＣＰＵ３１１）は、図示しないＲＯＭに記憶されている起動プログラムを実行し、これによってメインメモリ３２等の各ユニットが初期化される。次に、データ保存用内部メモリ３５に記憶されたゲームプログラムがメインメモリ３２に読み込まれ、情報処理部３１によって当該ゲームプログラムの実行が開始される。
【００９５】
以下、図６のフローチャートを参照して、例示的な実施形態に係る情報処理プログラムに基づいて実行される処理の流れを説明する。本図では、「ステップ」を、「Ｓ」と略記する。なお、図６のフローチャートは、単なる一例にすぎない。したがって、同様の結果が得られるのであれば、各ステップの処理順序を入れ替えてもよい。また、導入した座標系、変数の値や、判断ステップで利用される閾値も、単なる一例に過ぎず、必要に応じて他の値を採用してもよい。また、本実施形態では、図６に示すフローチャートの全ステップの処理を情報処理部３１（例えば、ＣＰＵ３１１）が実行するものとして説明するが、図６に示すフローチャートの一部のステップの処理を、情報処理部３１以外のプロセッサや専用回路が実行するようにしてもよい。
【００９６】
（具体的な処理の一例）
図６は、本発明の例示的実施形態における情報処理プログラムにおける、入力画像の読み込みから、マーカ６０の検出・認識の過程を経て、仮想オブジェクトと入力画像とを重畳的に表示するまでの一連の処理（メインループ処理）の例を示したフローチャートである。
【００９７】
このメインループ処理は、入力画像の取得からそれに施される画像処理、その処理結果に基づいた画像表示までを含む処理である。情報処理部３１が、付属のハードウェアの起動時の処理、ゲームプログラム７０をゲーム装置１０の記憶領域から読み出す処理などについては、説明を簡素化のために一部を省略している。本アプリケーションのフレームレートは、カメラ画像の取得間隔を含む諸設定によって決定され得る。また、外側撮像部２３は、所定の取得間隔で連続的に実世界を撮像する。ゲームプログラム７０は、所定の取得間隔で連続的に実世界を撮像した画像を取得して、その画像を入力画像としてメインループ処理を繰り返し実行し得る。
【００９８】
以下、メインループ処理のステップごとに説明する。
【００９９】
ステップ１０１において、情報処理部３１は、カメラ画像を取得する処理を実行する。
上述のように、情報処理部３１は、実世界を撮像した画像を入力画像として取得し、次の処理に進む。
【０１００】
具体的には、情報処理部３１は、例えば、実世界画像７１としてゲーム装置１０の記憶領域に読み込まれた画像を、本ステップ以降の処理対象（入力画像）として得る。
【０１０１】
ステップ１０２において、情報処理部３１は、取得したカメラ画像に基づき当該カメラ画像を２値化処理するための閾値（以下、第１の閾値）を決定する処理を実行する。
【０１０２】
具体的には、情報処理部３１は、取得されたカメラ画像の全てに対して予め設定された値、または取得したカメラ画像の特性に基づき、取得した画像を２値化処理のための閾値を決定する処理を実行する。ここで、２値化処理とは、「多値画像（階調が２ビット以上の画像）」から「２値画像（階調が１ビットである画像）」を得るための処理である。２値化処理は、多値画像の各画素が濃度のある基準値（閾値）より明るいか暗いかによって白または黒に変換される。多値画像は、グレイスケール、カラーいずれの画像であってもよい。また、第１の閾値は、予め定められた固定値でもよく、また、取得したカメラ画像を入力として算出した閾値であってもよい。
【０１０３】
第１の閾値が、予め与えられた値に基づき設定される場合、次のような値が利用され得る。例えば、画素の輝度が０から２５５までの値の範囲であるとき、情報処理部３１が閾値として取り扱う値を、例えば、１００から１３０までの範囲のある値（例えば、１２８）などに予め設定してもよい。
【０１０４】
他方、情報処理部３１は、取得したカメラ画像の特性に基づき、その入力画像を読み込んだ時点で第１の閾値を決定してもよい。情報処理部３１が入力画像に基づき第１の閾値を決定する方法としては、例えば、モード法、Ｐ−タイル法、微分ヒストグラム法などが挙げられるが、これに限定されない。モード法は、入力画像の濃度ヒストグラムにおいて谷間がある場合、その谷間の点の濃度を閾値にする方法である。微分ヒストグラム法は、入力画像における対象の画素の微分ヒストグラムが最大となる点を閾値とする方法である。
【０１０５】
なお、情報処理部３１は、入力画像全体を２値化する方法として動的閾値法に基づき処理を行なう処理を前提にその処理のための閾値を第１の閾値として決定してもよい。すなわち、情報処理部３１は、処理対象とする画素の濃淡レベルと、その近傍（４近傍または８近傍）での局所平均値との比較によって２値化し得る。この場合、この局所平均値が、第１の閾値としての役割を果たす。
【０１０６】
また、情報処理部３１は、第１の閾値を予め設定された固定値として有し、フローチャートのステップ１０３以降のマーカ検出が失敗した場合にのみ、第１の閾値を新たに更新するような構成をとってもよい。この場合、具体的には、情報処理部３１は、エッジ検出を行い、エッジ部分の輝度の変化から閾値を決定することもできる。エッジとは輝度の変化が一定以上の画素を指す。実際には、情報処理部３１は、そのような画素を複数サンプリングして、サンプリングした画素の（重み付きの）平均値を求めることで第１の閾値を求めることが可能である。
【０１０７】
ステップ１０３において、情報処理部３１は、第１の閾値を利用して、マーカ６０を検出する処理を実行する。情報処理部３１が本ステップで行うマーカ６０の検出処理の一例を説明する。
【０１０８】
具体的には、まず、情報処理部３１は、ステップ１０２において得た第１の閾値に基づいて入力画像を２値化する。次に、情報処理部３１は、２値化した画像（白黒画像）において、黒色画素の連結成分ごとにラベリング（識別情報づけ）を実行する。この処理により、マーカ６０の外枠部Ｑ１は、ラベルづけされた連結成分のいずれかに含まれることになる。情報処理部３１は、連結成分の外接四角形の大きさと縦横比を考慮して、マーカ６０が含まれている可能性の低い領域は除去する。
【０１０９】
より具体的に説明すると、情報処理部３１は、例えば、連結成分の面積値（例えば、画素数）を評価することによって巨大領域および微少領域を除外することができる。また、情報処理部３１は、外接四角形情報から画像境界に接する連結成分も除外することができる。
【０１１０】
次に、情報処理部３１は、残された連結成分に対して輪郭線追跡を行い、輪郭線上の画素位置をすべて記憶する。さらに、情報処理部３１は、輪郭線データに対して折れ線近似を行い、４本の線分によって十分な精度で近似できた連結成分をマーカの候補とする。また、情報処理部３１は、このときの４つの折れ点に係る座標値を記憶しておく。
【０１１１】
なお、マーカ６０の識別用パターン領域には、所定のパターン（図柄）が描かれている。情報処理部３１は、この所定のパターンの少なくとも一部と対応づけられる特徴を、マーカ６０の像を含む画像から抽出する処理を行なうことによって、マーカ６０の像を含む画像の少なくとも一部を認識する。このマーカ６０の識別処理の過程では、情報処理部３１は、画像の正規化処理を行う。マーカ６０は、透視変換モデルによってスクリーン座標系に投影されるので、情報処理部３１は、マーカ座標系Ｘm−Ｙm平面内の点（Ｘm，Ｙm，０）を、以下の式でスクリーン座標系上の点（ｘc，ｙc）に変換する。
【数１】
0005778967.tif 000002
【０１１２】
情報処理部３１は、マーカ６０のサイズが既知であるため、マーカ６０の大きさの情報と折れ線近似を行なった際の近似検出された４頂点の座標値を用いることで、この式におけるすべてのＣij（ｉ＝１〜３，ｊ＝１〜３）の値を算出し得る。ここで、ｈはスカラーである。情報処理部３１は、マーカ６０の内部パターンを上述の式によって正規化し得る。
【０１１３】
次いで、情報処理部３１は、マーカ６０の各辺に対応する輪郭線データに最小２乗法で
直線当てはめを行い、それら直線の交点を頂点座標値とする。なお、情報処理部３１は、これまでの処理において、必要に応じて、この直線当てはめの際、必要に応じて、歪み関数による変換を行い、スクリーン座標系における頂点座標値を算出する。
【０１１４】
以上のように得られた４頂点座標値は、情報処理部３１が、マーカ６０の３次元位置情報を計算するのに利用される。具体的には、マーカ６０の３次元位置情報の計算は、マーカ座標系からカメラ座標系への座標変換行列（Ｔcm）を求める処理である。
【０１１５】
以下、マーカ６０の３次元位置情報の計算についてもあわせて説明する。
【０１１６】
この座標変換行列は、回転移動成分Ｒ3x3と平行移動成分Ｔ3x1からなる。一般に、スクリーン座標系とカメラ座標系の間は透視変換モデルで変換できる。これらの座標系の関係は、例えば、次の式のように表現できる。
【数２】
0005778967.tif 000003
【０１１７】
ここで、行列Ｐは、スクリーン座標系を［ｘc，ｙc，１］Tで定義したときの、カメラ座標系からスクリーン座標系への射影変換を表す行列である。ｈは、スカラーである。また、行列Ｐは、画像を取得するための撮像部（例えば、外側撮像部２３）の特性を反映するためのキャリブレーション処理によって事前に求められている。
【０１１８】
上述のように、マーカ座標系におけるマーカ６０の４頂点の座標値は、原点の位置およびマーカ６０の各辺の長さの情報（Ｌ1［ｍｍ］、Ｌ2［ｍｍ］）を利用して設定される。このマーカ座標系とスクリーン座標系との対応関係も、上述したように把握し得る。したがって、これらの情報に基づき、情報処理部３１は、上述の変換行例Ｔcmを算出する。
【０１１９】
具体的には、情報処理部３１は、（１）回転移動成分Ｒ3×3の推定、（２）平行移動成分Ｔ3x1の推定を行うことで変換行列Ｔcmを取得する。このように、情報処理部３１は、この変換行例Ｔcmを用いてマーカ６０の３次元位置情報を取得し得る。
【０１２０】
ステップ１０４において、情報処理部３１は、マーカ６０の検出の成否を判定する処理を実行する。すなわち、情報処理部３１は、ステップ１０３において実施される一連のマーカ検出処理の結果として、マーカ６０を検知できたか否かを判定する。情報処理部３１は、マーカ６０の検知ができた場合（ステップ１０４、Ｙｅｓ）は、ステップ１０５の処理に進む。
【０１２１】
ステップ１０５において、情報処理部３１は、第１の閾値を利用することで中央領域Ａ１に属する４つ単位領域より得られた画素値（輝度値）から、その単位領域の各々の属性として黒色（１）・白色（０）を判定する。そして、情報処理部３１は、この判定結果として得られる４ビットのビット列を取得する。なお、ここで便宜上、黒色と判定した結果に、値１を対応づけ、他方、白色と判定した結果に、値０とを対応づけているが、この割り当りあての仕方は一例であって、逆の割り当てでもよい。黒色と判定した結果に、値０を対応づけ、他方、白色と判定した結果に、値１とを対応づけてもよい。
【０１２２】
具体的には、情報処理部３１は、マーカ６０の４頂点の位置から中央領域Ａ１に相当する範囲にあるサンプリングすべき画素群（以下、サンプリング点と呼ぶ）の位置を特定する。そして、情報処理部３１は、特定されたサンプリング点にある画素各々の輝度を、第１の閾値と比較することで、サンプリング点の属性（白色・黒色）を判定する。具体的には、情報処理部３１は、第１の閾値未満の輝度値を有する点を、黒色（１）と判別する。他方で、情報処理部３１は、第１の閾値以上の輝度値を有する点を、白色（０）と判別する。さらに、情報処理部３１は、中央領域Ａ１に属する単位領域の各々の属性（白色・黒色）の判定を、サンプリング点の属性の判定結果に基づき行なう。ここで、情報処理部３１は、サンプリング点の属性の判別結果を、そのサンプリング点が位置づけられる単位領域内での相対位置に依存的に重み付けして評価してもよい。例えば、情報処理部３１は、そのサンプリング点の属性に基づく評価にあたっては、単位領域の中心に位置するサンプリング点の属性を重視するように重み付けをして評価する。そのサンプリング点の数は、単位領域あたり所定の個数（例えば、９点、４点など）であればよい。
【０１２３】
このようにして、情報処理部３１は、中央領域Ａ１に属する単位領域の各々黒（１）または白（０）を判別し、その中央領域Ａ１に存在する単位領域の黒（１）・白（０）判別結果の組合せを得る。すなわち、情報処理部３１は、中央領域Ａ１の４つの単位領域から、４ビット分の情報を得る。
【０１２４】
ステップ１０６において、情報処理部３１は、判定した結果として得られたビット列（４ビット）における組合せが｛１，０，０，０｝または｛０，１，１，１｝である否かを判定する。なお、｛１，０，０，０｝または｛０，１，１，１｝は、その要素の組合せを表す。すなわち、その要素の出現順序を考慮しなくてよい。情報処理部３１は、ステップ１０５で得た４ビットの組合せが｛１，０，０，０｝または｛０，１，１，１｝である場合（ステップ１０６、Ｙｅｓ）、その処理をステップ１０７に進める。他方、ステップ１０５で得た４ビットの組合せが｛１，０，０，０｝または｛０，１，１，１｝でない場合（ステップ１０６、Ｎｏ）、情報処理部３１は、このメインループ処理を終了する。
【０１２５】
ステップ１０７において、情報処理部３１は、４ビットの組合せに基づいてマーカ６０の向きと、中央領域Ａ１の判別結果から割り当てられる代表ビット（以下、「内部１ビット」）を検出する処理を実行する。
【０１２６】
情報処理部３１は、マーカ６０の向きを、例えば、次のように決定し得る。４ビットの組合せが｛１，０，０，０｝である場合、中央領域Ａ１における黒（１）の単位領域の位置でマーカ６０の方向を決定することができる。
【０１２７】
具体的な例を、図４Ｅを参照しながら説明する。図４Ｅは、マーカ６０の識別パターン領域に描かれたパターンの一例を示す模式図である。図４Ｅの最左欄には、４つのマーカ６０が記載されている。この４つのマーカ６０（（１−１）から（４−１）まで）は、最上段から最下段に向かって、同一のマーカを順に時計回りに９０°ずつ回転した態様で記載されているものである。左から２番目の欄には、最左欄のマーカ６０の識別パターン領域のみが記載されている（（１−２）から（４−２）まで）。左から３番目の欄には、最左欄のマーカ６０の中央領域Ａ１のみが記載されている（（１−３）から（４−３）まで）。ここでは、白または黒に対応して、０または１を便宜上記載している。なお、参考までに、最右欄には、最左欄のマーカ６０の外側領域Ａ２のみを記載した（（１−４）から（４−４）まで）。
【０１２８】
左から３番目の欄から理解されるように、４ビットの組合せが｛１，０，０，０｝である場合、例えば、中央領域Ａ１の白黒判別結果の読み取り起点（例えば、図４Ｅの紙面に向かって右上）と、その順番（例えば、その起点から時計回り）とを予め設定しておけば、情報処理部３１は、マーカ６０の方向が、上述の（１−１）から（４−１）までのいずれの方向であるかを、簡便に判別できる。
【０１２９】
同様にして、判定結果の４ビットの組合せが｛０，１，１，１｝である場合、中央領域Ａ１（２×２領域）における白（０）の位置でマーカ６０の方向を決定することができる。すなわち、４ビットの組合せが｛１，０，０，０｝であるときと同様の方法が、この場合にも適用され得る。
【０１３０】
なお、例えば、マーカ６０の回転に対処するために、９０度おきに回転したマーカ６０のテンプレートを４枚作成しておき、それらと入力画像に対して類似度を計算し、最大値をとるものをマーカ６０の方向と見なすことも可能である。
【０１３１】
内部１ビットの決定は、例えば、次のように行なわれ得る。情報処理部３１は、４ビットの組合せが｛１，０，０，０｝である場合に、内部１ビットの属性として、１を割り当てることができる。また、他方で、情報処理部３１は、４ビットの組合せが｛０，１，１，１｝である場合に、内部１ビットの属性として、ゼロ（０）を割り当てることができる。
【０１３２】
このようにして、情報処理部３１は、中央領域Ａ１の４ビットの組合せ情報に基づいてマーカ６０の方向と内部１ビットの情報を取得し得る。
【０１３３】
ステップ１０８において、情報処理部３１は、４ビットの画素値に基づいて第２の閾値を設定する処理を実行する。
【０１３４】
具体的には、情報処理部３１は、中央領域Ａ１に属する画素の画素値（輝度値）によって「外部の１２ビット」の白（０）または黒（１）の判定に用いられる第２の閾値を決定する。第２の閾値の具体的な算出方法としては、中央領域Ａ１において、例えば、白と判定された画素の輝度値と黒と判定された画素の輝度値との平均値を、第２の閾値とすることができる。この際、単位領域の中心付近の重みを大きくするように単位領域の白黒を判定することが可能である。
【０１３５】
より具体的には、ステップ１０８において、情報処理部３１は、例えば、第２の閾値を次のように算出する。ここでは、例示目的で、入力画像の画素の輝度値が、０〜２５５の範囲をとり、第１の閾値が１２８である場合について説明する。
【０１３６】
上述のように、情報処理部３１は、中央領域Ａ１に存在する４つの単位領域の各々において、画素の輝度値を複数点サンプリングして得られた輝度値の重み付き平均値を算出している（ステップ１０５）。この処理によって、単位領域ごとの重み付き平均値がその単位領域の代表値として得られる。すなわち、情報処理部３１は、中央領域Ａ１の４つの単位領域に対応して、例えば、｛２２，２０４，１９８，２１０｝との輝度値の組合せを取得する。
【０１３７】
そして、情報処理部３１は、この輝度値の組合せの各要素（すなわち、２２、２０４、１９８および２１０）を、第１の閾値（１２８）と比較する判別処理を行なう。ここで、その要素（単位領域の輝度値）が第１の閾値（１２８）以上であれば、情報処理部３１は、その要素に対する判別結果として値１を与える。他方、その要素の輝度値が、第１の閾値未満であれば、情報処理部３１は、その要素に対する判別結果として値０を与える。
【０１３８】
この判別処理の結果、情報処理部３１は、４つの単位領域に対応する４ビット分の情報（４要素の組合せ）を得る。上述の例の場合では、情報処理部３１は、｛０，１，１，１｝を得る。上述の判別処理において０と判別された要素に対応する輝度値の平均値は、２２である（２２÷１＝２２）。他方、上述の判別処理において１と判別された要素に対応する輝度値の平均値は、２０４である（（２０４＋１９８＋２１０）÷３＝２０４）。そして、この２者の平均値は、１１３である（（２２＋２０４）÷２＝１１３）。情報処理部３１は、例えば、この平均値（１１３）を第２の閾値と設定することができる。
【０１３９】
次に、別の例として、入力画像の画面全体がより暗い状態である場合についても説明する。入力画像の画面全体がより暗い状態である場合としては、例えば、中央領域Ａ１の４つの単位領域についての輝度値の組合せが｛１０、１５１、１４２、１４５｝である場合が挙げられる。この場合であって、第１の閾値が１２８であるとき、情報処理部３１は、中央領域Ａ１の４つの単位領域に対応する４ビット分の情報として、｛０，１，１，１｝を得る。そして、情報処理部３１は、このときの第２の閾値として、７８を設定し得る。
【０１４０】
さらに、別の例として、入力画像の画面全体がより明るい状態である場合についても説明する。入力画像の画面全体がより明るい状態である場合としては、例えば、中央領域Ａ１の４つの単位領域についての輝度値の組合せが｛８２、２３２、２２４、２２８｝である場合が挙げられる。この場合であって、第１の閾値が１２８であるとき、情報処理部３１は、中央領域Ａ１の４つの単位領域に対応する４ビット分の情報として、｛０，１，１，１｝を得る。そして、情報処理部３１は、このときの第２の閾値として、１５５を設定し得る。
【０１４１】
このように、第２の閾値は、入力画像おける中央領域Ａ１の状態に依存して変化する。
【０１４２】
ステップ１０９において、情報処理部３１は、第２の閾値を利用して？外側部の１２ビットを判定する処理を実行する。情報処理部３１は、ステップ１０５と同様に、外側部に存在する１２の単位領域における黒（１）・白（０）の判定を行なう。
【０１４３】
ステップ１１０において、情報処理部３１は、エラービットを検出する処理を実行する。
【０１４４】
具体的には、情報処理部３１は、例えば、外側部に属する１２の単位領域を３分割し、４つの単位領域を１組（以下、これを「ブロック」と称する）として取り扱う。この１つのブロックのうち、１つの単位領域は、誤り検出用の領域として機能する。情報処理部３１は、上述のブロックの白黒判定結果に基づき、４ビット長のビット列を取得する。そして、誤り検出用の領域に対応するビットは、パリティ・ビットとしての役割を果たす。すなわち、この４ビット長のビット列は、認識対象である３ビット長のビット列、および１ビットのパリティ・ビットからなる。
【０１４５】
マーカ６０の誤り検出用の単位領域は、そのブロックにおける他の単位領域群に対応するビットにおける「１」の個数が奇数であるときに「０」に対応する状態（上述の例では、白色）となるように予め作られている。また、このマーカ６０の誤り検出用の領域は、他の領域に対応するビットにおける「１」の個数が偶数であるとき、「１」に対応する状態（上述の例では、黒色）となるように予め作られている。
【０１４６】
そして、このステップ１１０において、情報処理部３１は、この認識対象である３ビット長のビット列に含まれる「１」の個数と、誤り検出用の領域に対応するパリティ・ビットとの整合性に基づき、外側部のパターンの読み取りにエラーを含むか否かを判定する。
【０１４７】
具体的には、このステップ１１０では、情報処理部３１が、各ブロック毎の「１」の個数の和が奇数であれば、エラービットなしと判定し（ステップ１１０、ＮＯ）、ステップ１１１の処理に進む。他方、情報処理部３１が、各ブロック毎の「１」の個数の和が偶数であれば、エラービットありと判定し（ステップ１１０、ＹＥＳ）、メインループ処理を終了する。
【０１４８】
ステップ１１１において、情報処理部３１は、中央領域Ａ１の判定結果による内部１ビットと、外部の１２ビットのうち（パリティビットを除いた）９ビットの組合せ（以下、「外部９ビット」）に基づき識別用ビット列を決定する処理を実行する。
【０１４９】
具体的には、情報処理部３１は、例えば、「内部１ビット」として取得された１ビットと、「外部９ビット」として取得された９ビットを合わせた、１０ビット長のビット列（以下、識別用ビット列）に基づき、その識別用ビット列と予め対応づけられたオブジェクト（例えば、仮想オブジェクトＯＢＪ１に対応する画像）を表示対象として選択する。そして、情報処理部３１は、その処理をステップ１１２に進める。内部１ビットによってマーカ６０の方向についての情報も利用できるので、オブジェクトの方向と当該内部ビットとの対応づけを行なってもよい。なお、本実施形態では、内部ビット１ビットと外部９ビットとを組み合わせた１０ビットのビット列を、識別用ビット列として機能させて、オブジェクトと対応づけた。しかし、必要に応じて、例えば、外部ビットのみを、オブジェクトと対応づける識別用ビットとして機能させてもよい。
【０１５０】
ステップ１１２において、情報処理部３１は、識別用ビット列に応じたオブジェクトの画像を表示し、このメインループ処理を終了する。なお、このメインループ処理の終了後、情報処理部３１は、その他の設定（例えば、入力画像に係るフレーレート）などに基づき、必要に応じて、新たな入力画像に対してメインループ処理を実行する。外側撮像部２３が、逐次的、連続的に入力画像を読み込みメインループ処理を実行することで、連続的かつ／またはリアルタイムの態様で、仮想オブジェクトと実世界画像との重畳的な表示を提供し得る。
【０１５１】
（例示的な実施形態によって奏される効果の一例）
（１）まず、マーカ６０の２段階読み取りが達成されることで、マーカ６０の認識処理に伴う負荷が軽減されつつも、マーカ６０の認識精度の良さは担保されるシステムが提供された。処理の負荷という点では、撮像部で撮像された図柄領域の一部について認識ができない場合、または誤りを含んで認識された場合であっても、はじめから図柄領域全体に対して画像認識を行う必要がないため、処理負荷が軽減される。このマーカ６０の２段階読みにおいて、任意の方向からみて画素が不鮮明になりにくい中央領域Ａ１が先に認識されることは、外側領域Ａ２ほど厳しい認識条件が要求されることなく、より信頼性の高い認識を提供し得る。
（２）この中央領域Ａ１を認識するための第１の閾値が、画像全体の画素値から算出されることで、周囲環境の変化に対応できる。したがって、従来より安定した認識結果を達成し得る。
（３）マーカ６０の検出も第１の閾値を用いることで、第１の領域における識別情報を検出するときに用いるものを流用できる。
（４）認識を２段階に分け、中央領域の周辺に位置する外側領域にのみの認識に誤り検出の処理を追加することで、処理負荷を増やさずにつぶれやすい周辺の外側領域についても精度良く認識することが可能となる。
【０１５２】
（変形例等）
他の実施形態において、情報処理部３１は、中央領域Ａ１と外側領域Ａ２の両方の情報を検出（取得）して、中央領域Ａ１から得られた情報が所定の条件を満たす場合にのみ、中央領域Ａ１と外側領域Ａ２から得られた情報を用いて所定の情報処理を行ってもよい。このような構成において、別の実施形態では、情報処理部３１は、外側領域Ａ２から得られた情報のみを用いて所定の情報処理を行うようにしてもよい。さらに、情報処理部３１は、外側領域Ａ２から得られた情報のみを用いて所定の情報処理を行う場合には、中央領域Ａ１から得られる識別情報が予め定める識別情報と一致するかを判定してもよく、中央領域Ａ１から得られる画像のパターンが予め定める画像のパターンと一致するか否かを判定してもよい。
【０１５３】
また、上記実施形態では、外側撮像部２３によってリアルタイムに撮像される実世界画像に基づいて上側ＬＣＤ２２に立体画像を表示しているが、他の実施形態では、外側撮像部２３や外部のステレオカメラ等によって過去に撮像された動画像データに基づいて上側ＬＣＤ２２に立体画像を表示するようにしてもよい。
【０１５４】
また、上記実施形態では、外側撮像部２３がゲーム装置１０に予め搭載されているが、他の実施形態では、ゲーム装置１０に着脱可能な外付け型のカメラを利用してもよい。
【０１５５】
また、上記実施形態では、上側ＬＣＤ２２がゲーム装置１０にあらかじめ搭載されているが、他の実施形態では、ゲーム装置１０に着脱可能な外付け型の立体視ディスプレイを利用してもよい。
【０１５６】
また、上記実施形態では、ゲーム装置１０を用いて実世界画像に仮想オブジェクトを合成表示しているが、他の実施形態では、任意の情報処理装置または情報処理システム（例えば、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、携帯電話、パーソナルコンピュータ、カメラ等）を用いて実世界画像に仮想オブジェクトを合成表示してもよい。
【０１５７】
また、上記実施形態では、一台の装置（ゲーム装置１０）のみによって情報処理を実行しているが、他の実施形態では、互いに通信可能な複数の情報処理装置を有する画像表示システムにおいて、当該複数の情報処理装置が情報処理を分担して実行するようにしてもよい。
【０１５８】
なお、汎用的なプラットフォームにおいて本発明の情報処理プログラム等が使用される場合には、当該情報処理プログラムが、当該プラットフォームにおいて標準的に提供されるプログラムモジュールを用いることを前提として提供されてもよい。上述のようなモジュールによって機能が補完されることを前提に、上記情報処理プログラムから上述のようなモジュールに対応する機能を除いたものは、実質的にこの情報処理プログラムに相当すると理解されるべきである。
【０１５９】
また、本実施形態においては、外側撮像部２３により撮像したカメラ画像と仮想オブジェクト（例えば、オブジェクトＯＢＪ１など）とを重ね合わせて上側ＬＣＤ２２に表示させるビデオシースルー方式を説明したが、本発明はこれに限定されない。例えば、光学シースルー方式を実現する構成であってもよい。
【０１６０】
光学シースルー方式は、少なくとも撮像部を備えたユーザの頭部に装着する表示装置（以下、ヘッドマウンドディスプレイ）を用いる。ヘッドマウンドディスプレイを装着したユーザは、メガネのレンズ部分に相当する位置を有する表示部（画面）を通して実世界を視認できる。この表示部は、実世界を光学的に透過してユーザの眼に直接導くことが可能な素材によって構成されている。他方で、この表示部は、コンピュータにより生成した仮想オブジェクトの画像を表示させることができる。さらに、この表示部は液晶表示装置等を備え、この液晶表示装置等にコンピュータにより生成した仮想オブジェクトの画像を表示させ、この液晶表示装置からの光を（例えば、ハーフミラー等で反射させて）ユーザの網膜に導くことができるようになっている。これにより、ユーザは、実世界と仮想オブジェクトの画像とが光学的に重ね合わせられた像を視認することができる。なお、ヘッドマウンドディスプレイに備えられたカメラは実世界に配置されたマーカ６０を検出するために用いられる。また、他の光学シースルー方式として、ハーフミラーを使用せずに表示部に重ね合わせて透過型液晶表示装置を備える方式があるが、本発明はこの方式を採用してもよい。この場合には、透過型液晶表示装置に仮想オブジェクトの画像を表示することで、表示部に透過された実世界と透過型液晶表示装置に表示された仮想オブジェクトの画像とが重ね合わされてユーザに視認される。
【０１６１】
以上、本発明を詳細に説明してきたが、前述の説明はあらゆる点において本発明の例示にすぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。本発明は、特許請求の範囲によってのみその範囲が解釈されるべきであることが理解される。ここで、当業者は、本発明の具体的な実施形態の記載から、本発明の記載および技術常識に基づいて均等な範囲を実施することができることが理解される。また、本明細書において使用される用語は、特に言及しない限り、当該分野で通常用いられる意味で用いられることが理解されるべきである。したがって、他に定義されない限り、本明細書中で使用されるすべての専門用語および技術用語は、本発明の属する分野の当業者によって一般的に理解されるのと同じ意味を有する。矛盾する場合、本明細書（定義を含めて）が優先する。
【符号の説明】
【０１６２】
１０    ゲーム装置
１１    下側ハウジング
１２    下側ＬＣＤ
１３    タッチパネル
１４    操作ボタン
１５    アナログスティック
１６    ＬＥＤ
２１    上側ハウジング
２２    上側ＬＣＤ
２３    外側撮像部
２３ａ  外側撮像部（左）
２３ｂ  外側撮像部（右）
２４    内側撮像部
２５    ３Ｄ調整スイッチ
２６    ３Ｄインジケータ
２８    タッチペン
３１    情報処理部
３１１  ＣＰＵ
３１２  ＧＰＵ
３２    メインメモリ
６０    マーカ
【図１】
0005778967.tif 000004
【図２】
0005778967.tif 000005
【図３】
0005778967.tif 000006
【図４Ａ】
0005778967.tif 000007
【図４Ｂ】
0005778967.tif 000008
【図４Ｃ】
0005778967.tif 000009
【図４Ｄ】
0005778967.tif 000010
【図４Ｅ】
0005778967.tif 000011
【図５】
0005778967.tif 000012
【図６】
0005778967.tif 000013