(57)【要約】【課題】処理負荷を軽減し、マーカーをより正確に検出することが可能なプログラム、情報記憶媒体、端末及びマーカー表示体を提供すること。【解決手段】第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、撮像画像から抽出し、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合にマーカーがあると判定する。【選択図】図１７
2012216029.tif 000002
【特許請求の範囲】
【請求項１】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、
第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、
第１の矩形領域と第２の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記マーカー判定部が、
第１の矩形領域の中心位置と第２の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うことを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記マーカー判定部が、
第１の矩形領域の中心位置と第２の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記矩形領域抽出部が、
画素の色値が、第１の色値を含む第１の色値域内である場合に前記第１の色条件を満たすと判断し、
画素の色値が、第２の色値を含む第２の色値域内である場合に前記第２の色条件を満たすと判断することを特徴とするプログラム。
【請求項５】
請求項４において、
当該第１の色値と、当該第２の色値とは補色の関係にあることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記マーカー判定部が、
複数の前記マーカーがあるか否かを判定することを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させることを特徴とするプログラム。
【請求項８】
請求項７において、
前記マーカー判定部が、
第２の矩形領域が第１の矩形領域を内包する位置関係である場合に、第１のマーカーがあると判定する処理を行い、
第１の矩形領域が第２の矩形領域を内包する位置関係である場合に、第２のマーカーがあると判定する処理を行い、
前記コード認識処理部が、
前記マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、当該第１のマーカーと各第２のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うことを特徴とするプログラム。
【請求項９】
請求項１〜８のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項１０】
請求項９において、
前記マーカー判定部が、
第２の矩形領域が第１の矩形領域を内包する位置関係である場合に、第１のマーカーがあると判定する処理を行い、
第１の矩形領域が第２の矩形領域を内包する位置関係である場合に、第２のマーカーがあると判定する処理を行い、
前記描画部が、
前記マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うことを特徴とするプログラム。
【請求項１１】
請求項９又は１０において、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、
前記描画部が、
前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成することを特徴とするプログラム。
【請求項１２】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜１１のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１３】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行う端末であって、
第１の色条件を満たし隣接する複数の画素からなる第１の色領域に外接する第１の矩形領域と、第２の色条件を満たし隣接する複数の画素からなる第２の色領域に外接する第２の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第１の矩形領域と第２の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とする端末。
【請求項１４】
少なくとも一つのマーカーを検出する処理を行うサーバであって、
ネットワークを介して端末から、撮像画像を受信する通信制御部と、
第１の色条件を満たし隣接する複数の画素からなる第１の色領域に外接する第１の矩形領域と、第２の色条件を満たし隣接する複数の画素からなる第２の色領域に外接する第２の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第１の矩形領域と第２の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、
前記マーカー判定部が、
第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、
前記通信制御部が、
前記端末に処理結果を送信することを特徴とするサーバ。
【請求項１５】
端末によって検出される複数のマーカーからなるマーカー表示体であって、
同一の中心点をもち、径の長さが異なる２つの円によって構成されるマーカーを複数所定間隔をおいて配置し、
前記複数のマーカーのうち１つのマーカーの内径の円を第１の色、外径の円のうち内径の円を除いた部分を第２の色で配色し、
残りの各マーカーについては、内径の円を第２の色、外径の円のうち内径の円を除いた部分を第１の色に配色していることを特徴とするマーカー表示体。
【請求項１６】
請求項１５において、
前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体。
【請求項１７】
請求項１５又は１６において、
前記第１の色は赤色、前記第２の色は緑色であることを特徴とするマーカー表示体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、端末、サーバ、及びマーカー表示体に関する。
【背景技術】
【０００２】
従来から、所定のフォーマット情報に基づいて生成された２次元コードなどをカメラで撮像し、撮像画像からコードを認識する技術が存在する。しかし、従来技術は、直線成分検出処理や交差ラインの検出処理等が必要であり、この検出処理は非常に処理負荷が高い。また、特許文献１に記載されるようなカラーマークを検出する処理では、本来マークではない色も検出してしまうことがあり、マークを誤判定してしまうことがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−２６９５６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、処理負荷を軽減し、マーカーをより正確に検出することが可能なプログラム、情報記憶媒体、端末、サーバ及びマーカー表示体を提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、第１の矩形領域と第２の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、前記マーカー判定部が、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定するプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する端末に関係する。
【０００６】
本発明によれば、第１、第２の矩形領域を抽出し、第１、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定するので従来よりも処理負荷を軽減させて、マーカーを検出することができる。また、本発明によれば、第１、第２の色条件に基づいて矩形領域を抽出するので、濃淡や輝度値（白、黒、グレーなど）に基づいてマーカーを検出する場合に比べて、精度を上げてマーカーを検出することができる。さらに、本発明によれば、２つの色条件を用いてマーカーがあるか否かを判定するので、１つの色条件のみを判定する場合に比べて、精度よくマーカーを検出することができる。
【０００７】
（２）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第１の矩形領域の中心位置と第２の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うようにしてもよい。本発明によれば、第１の矩形領域の中心位置と第２の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定するので、精度を上げてマーカーがあるか否かを判定することができる。
【０００８】
（３）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第１の矩形領域の中心位置と第２の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定するようにしてもよい。本発明によれば、第１の矩形領域の中心位置と第２の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するので、より正確にマーカーがあるか否かを判定することができる。
【０００９】
（４）また、本発明のプログラム、情報記憶媒体及び端末は、前記矩形領域抽出部が、画素の色値が、第１の色値を含む第１の色値域内である場合に前記第１の色条件を満たすと判断し、画素の色値が、第２の色値を含む第２の色値域内である場合に前記第２の色条件を満たすと判断するようにしてもよい。本発明によれば、第１、第２の矩形領域が抽出しやすくなる。
【００１０】
（５）また、本発明のプログラム、情報記憶媒体及び端末は、当該第１の色値と、当該第２の色値とは補色の関係にあるようにしてもよい。つまり、第１の色値と、第２の色値とは補色の関係にあれば、第１、第２の矩形領域が抽出しやすくなり、精度を上げてマーカーを検出することができる。
【００１１】
（６）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、複数の前記マーカーがあるか否かを判定するようにしてもよい。
【００１２】
（７）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させるようにしてもよい。本発明によれば、マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行うことができる。
【００１３】
（８）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第２の矩形領域が第１の矩形領域を内包する位置関係である場合に、第１のマーカーがあると判定する処理を行い、第１の矩形領域が第２の矩形領域を内包する位置関係である場合に、第２のマーカーがあると判定する処理を行い、前記コード認識処理部が、前記マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、当該第１のマーカーと各第２のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うようにしてもよい。
【００１４】
本発明によれば、マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、第１のマーカーと各第２のマーカーとの位置関係に基づいて、コード情報を認識する処理を行うので、より正しい環境下で、コード情報を認識させるようにすることができる。
【００１５】
（９）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、複数のマーカーが検出された場合に、拡張現実画像を生成することができる。
【００１６】
（１０）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第２の矩形領域が第１の矩形領域を内包する位置関係である場合に、第１のマーカーがあると判定する処理を行い、第１の矩形領域が第２の矩形領域を内包する位置関係である場合に、第２のマーカーがあると判定する処理を行い、前記描画部が、前記マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うようにしてもよい。本発明によれば、マーカー判定部によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行うので、より正しい環境下で、拡張現実画像を提供することができる。
【００１７】
（１１）また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、前記描画部が、前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。本発明によれば、コード情報に基づいて仮想画像を生成する処理を行うので、コード情報に応じた仮想画像と撮像画像とを合成した拡張現実画像を生成することができる。
【００１８】
（１２）本発明は、少なくとも一つのマーカーを検出する処理を行うサーバであって、ネットワークを介して端末から、撮像画像を受信する通信制御部と、第１の色条件を満たし隣接する複数の画素からなる第１の色領域に外接する第１の矩形領域と、第２の色条件を満たし隣接する複数の画素からなる第２の色領域に外接する第２の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、第１の矩形領域と第２の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、前記マーカー判定部が、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、前記通信制御部が、前記端末に処理結果を送信するサーバに関する。
【００１９】
（１３）本発明は、端末によって検出される複数のマーカーからなるマーカー表示体であって、同一の中心点をもち、径の長さが異なる２つの円によって構成されるマーカーを複数所定間隔をおいて配置し、前記複数のマーカーのうち１つのマーカーの内径の円を第１の色、外径の円のうち内径の円を除いた部分を第２の色で配色し、残りの各マーカーについては、内径の円を第２の色、外径の円のうち内径の円を除いた部分を第１の色に配色しているマーカー表示体に関する。
【００２０】
本発明によれば、同一の中心点をもち、径の長さが異なる２つの円によって構成されるマーカーが配置され、そのマーカーは、内径の円を第１の色、外径の円のうち内径の円を除いた部分を第２の色で配色されているか、あるいは、内径の円を第２の色、外径の円のうち内径の円を除いた部分を第１の色に配色されている。したがって、いずれの方向からでも第１、第２の色を考慮したマーカーを検出させることが可能なマーカー表示体を提供できる。つまり、１色のマーカーよりも精度よく検出され得るマーカーを配置したマーカー表示体を提供できる。なお、マーカー表示体は、２次元の表示体でもよいし、３次元の表示体でもよい。
【００２１】
（１４）また、本発明のマーカー表示体は、前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって複数のマーカーが検出された際に、コード情報を認識させるようなマーカー表示体を提供できる。
【００２２】
（１５）また、本発明のマーカー表示体は、前記第１の色は赤色、前記第２の色は緑色であることを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって検出しやすいマーカーが配置されたマーカー表示体を提供できる。
【図面の簡単な説明】
【００２３】
【図１】図１は、本実施形態の端末の機能ブロック図の一例。
【図２】図２（Ａ）、（Ｂ）は、本実施形態の端末の一例。
【図３】図３（Ａ）、（Ｂ）は、本実施形態の端末の一例。
【図４】図４は、マーカー表示体の一例。
【図５】図５（Ａ）、（Ｂ）は、マーカーの説明図。
【図６】図６（Ａ）、（Ｂ）、（Ｃ）は、コード情報の説明図。
【図７】図７は、第１の矩形領域の説明図。
【図８】図８は、第２の矩形領域の説明図。
【図９（Ａ）】図９（Ａ）は、矩形領域抽出処理のフローチャート図。
【図９（Ｂ）】図９（Ｂ）は、矩形領域抽出処理のフローチャート図。
【図９（Ｃ）】図９（Ｃ）は、矩形領域抽出処理のフローチャート図。
【図９（Ｄ）】図９（Ｄ）は、矩形領域抽出処理のフローチャート図。
【図１０】図１０（Ａ）〜（Ｄ）は、矩形領域抽出処理の説明図。
【図１１】図１１（Ａ）（Ｂ）（Ｃ）は、第１、第２の矩形領域の位置関係の説明図。
【図１２】図１２（Ａ）（Ｂ）（Ｃ）は、第１、第２の矩形領域の位置関係の説明図。
【図１３】図１３は、マーカー表示体を撮像する状況の説明図。
【図１４（Ａ）】図１４（Ａ）は、マーカー表示体を撮像した撮像画像から第１、第２の矩形領域を抽出する処理を説明するための説明図。
【図１４（Ｂ）】図１４（Ｂ）は、マーカー表示体を撮像した撮像画像から第１、第２の矩形領域を抽出する処理を説明するための説明図。
【図１４（Ｃ）】図１４（Ｃ）は、マーカー表示体を撮像した撮像画像から第１、第２の矩形領域を抽出する処理を説明するための説明図。
【図１５】図１５（Ａ）、（Ｂ）、（Ｃ）は、マーカーの位置関係に基づいてコード情報を認識する例を説明するための説明図。
【図１６（Ａ）】図１６（Ａ）は、撮像画像の説明図。
【図１６（Ｂ）】図１６（Ｂ）は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図１６（Ｃ）】図１６（Ｃ）は、拡張現実画像の説明図。
【図１７】図１７は、本実施形態のフローチャート図。
【図１８】図１８（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）、（Ｅ）は、マーカー表示体の応用例。
【図１９】図１９は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図２０】図２０（Ａ）（Ｂ）（Ｃ）は、隣接、重なり関係の説明図。
【図２１】図２１は、ネットワークシステムの説明図。
【発明を実施するための形態】
【００２４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２５】
１．構成
図１に本実施形態の端末（コンピュータ、ゲーム装置、携帯電話、スマートフォン、携帯端末、携帯型ゲーム装置、画像生成装置）の機能ブロック図の例を示す。なお本実施形態の端末は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２６】
撮像部１５０は、物体から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、撮像部１５０は、ＲＧＢ、ＹＵＶ、ＨＳＶなどの色空間（フォーマット）で定義された色画像（入力画像）を、撮像画像記憶部１７３に出力する処理を行う。撮像部１５０は、所定の周期で（例えば、１／６０秒毎に）撮像した色画像を撮像画像記憶部１７３に出力する処理を行う。つまり、逐次、色画像を撮像画像記憶部１７３に記憶させる処理を行う。
【００２７】
入力部１６０は、プレーヤ（操作者）からの入力情報を入力するための入力機器（コントローラ）であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部１６０は、プレーヤの入力情報（入力信号）を検出する検出部１６２を備える。入力部１６０は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部１６０は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【００２８】
また、入力部１６０は、３軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部１５０を備えた入力機器でもよい。例えば、入力部１６０は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部１６０は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部１６０は、入力機器と一体化されている端末（携帯電話、携帯端末、携帯型ゲーム装置）なども含まれる。
【００２９】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３０】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００３１】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。
【００３２】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３３】
通信部１９６は外部（例えば他の端末、サーバ）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３４】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部１７０に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【００３５】
処理部１００（プロセッサ）は、入力部１６０からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【００３６】
この処理部１００は記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３７】
処理部１００は、矩形領域抽出部１１０、マーカー判定部１１１、コード認識処理部１１２、描画部１２０、音処理部１３０を含む。なお、これらの一部を省略する構成としてもよい。
【００３８】
矩形領域抽出部１１０は、第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、撮像画像から抽出する処理とを行う。
【００３９】
ここで、矩形領域抽出部１１０は、画素の色値が、第１の色値を含む第１の色値域内である場合に第１の色条件を満たすと判断し、画素の色値が、第２の色値を含む第２の色値域内である場合に第２の色条件を満たすと判断する。なお、当該第１の色値と、当該第２の色値とは補色の関係であることが望ましい。例えば、第１の色値を赤の色値とし、第２の色値を緑の色値としてもよい。
【００４０】
マーカー判定部１１１は、第１の矩形領域と第２の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、マーカー判定部１１１は、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【００４１】
また、マーカー判定部１１１は、第１の矩形領域の中心位置と第２の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定する処理を行うようにしてもよい。つまり、マーカー判定部１１１は、第１の矩形領域の中心位置と第２の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するようにしてもよい。
【００４２】
また、マーカー判定部１１１は、第２の矩形領域が第１の矩形領域を内包する位置関係である場合に、第１のマーカーがあると判定する処理を行い、第１の矩形領域が第２の矩形領域を内包する位置関係である場合に、第２のマーカーがあると判定する処理を行う。
【００４３】
コード認識処理部１１２は、マーカー判定部１１１によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行う。
【００４４】
また、コード認識処理部１１２は、マーカー判定部１１１によって１つの第１のマーカー及び２以上の所定数（例えば、３つ）の第２のマーカーがあると判定された場合に、当該第１のマーカーと各第２のマーカーとの位置関係に基づいて、コード情報を認識する処理を行う。
【００４５】
描画部１２０は、オブジェクトをオブジェクト空間（仮想的３次元空間）に配置する処理を行う。例えば、オブジェクト配置部は、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、３次元座標（Ｘ，Ｙ，Ｚ）においてオブジェクトが配置される空間である。
【００４６】
例えば、オブジェクト配置部は、ワールド座標系にオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００４７】
描画部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。言い換えると、描画部１２０は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【００４８】
例えば、描画部１２０は、オブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００４９】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００５０】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ１７２（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット、フレームバッファ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５１】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５２】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００５３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００５４】
テクスチャマッピングは、記憶部１７０に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００５５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００５６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００５７】
例えば、αブレンディングでは、これから画像バッファ１７２に描画する描画色（上書きする色）Ｃ１と、既に画像バッファ１７２（レンダリングターゲット）に描画されている描画色（下地の色）Ｃ２とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をＣとすると、Ｃ＝Ｃ１＊α＋Ｃ２＊（１−α）によって求めることができる。
【００５８】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５９】
特に、本実施形態の描画部１２０は、マーカー判定部１１１によって複数のマーカーがあると判定された場合に、撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う。例えば、本実施形態の描画部１２０は、マーカー判定部１１１によって１つの第１のマーカー及び２以上の所定数の第２のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行う。
【００６０】
また、本実施形態の描画部１２０は、コード認識処理部１１２によって認識されたコード情報に基づいて仮想画像を生成する処理を行い、撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【００６１】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６２】
なお、本実施形態の端末は、１人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、１つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【００６３】
２．概要
本実施形態では、端末１０の撮像部１５０によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うものである。例えば、端末１０は、図２（Ａ）（Ｂ）に示すようなゲーム装置、図３（Ａ）（Ｂ）に示すような携帯端末（スマートフォン）などである。
【００６４】
そして、本実施形態の端末１０は、図４に示すようなマーカー表示体２０を被写体として撮像し、マーカー表示体２０で表示されるマーカーＭを検出する。端末１０は、所定周期（例えば、１／６０秒単位）で連続して撮像を続けることが可能であり、端末１０は、所定周期で、マーカーＭを検出することができる。
【００６５】
そして、端末１０は、第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、撮像部１５０によって撮像された撮像画像から抽出する処理を行う。
【００６６】
そして、端末１０は、第１の矩形領域と、第２の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。つまり、端末１０は、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する処理を行う。このようにすれば、撮像画像から直線成分、交差成分を検出することなく、マーカーがあるか否かを判定できる。つまり、従来技術よりも処理負荷を軽減させることができる。そして、２つの色条件に基づいて抽出された第１、第２の矩形領域の位置関係に基づいてマーカーがあるか否かを判断するので、従来技術よりも精度を上げてマーカーを検出（認識）することができる。以下、詳細に本実施形態のマーカー検出処理について説明する。
【００６７】
３．マーカー表示体の説明
まず、撮像部１５０の被写体となるマーカー表示体２０について説明する。図４に示すように、マーカー表示体２０は、複数のマーカーＭが、所定間隔をおいて配置されている。つまり、図４の例では４個のマーカーＭが、四角形（正方形）の隅（コーナー）に配置して形成される。
【００６８】
そして、図５（Ａ）（Ｂ）に示すように、マーカーＭは、同一の中心点Ｏをもち、径の長さが異なる２つの円によって構成される。つまり、マーカーＭは、点Ｏを中心に半径ｒ１の円と、点Ｏを中心に半径ｒ２の円で構成されている（ｒ１＜ｒ２）。例えば、半径ｒ２は、半径ｒ１の倍の長さとすることができる。
【００６９】
そして、本実施形態のマーカー表示体２０は、配色が異なる第１のマーカーＭ１と、第２のマーカーＭ２とを配置している。すなわち、図５（Ａ）に示すように、第１のマーカーＭ１は、内径の円を第１の色、外径の円のうち内径の円を除いた部分を第２の色で配色し、図５（Ｂ）に示すように、残りの各第２のマーカーについては、内径の円を第２の色、外径の円のうち内径の円を除いた部分を第１の色に配色している。
【００７０】
第１の色と第２の色とは補色の関係であることが望ましい。例えば、第１の色を赤色Ｒ、第２の色を緑色Ｇとすることができる。補色の関係とは、色相環で正反対に位置する関係のことをいう。補色の関係は赤に対する緑だけでなく、黄に対して紫、青に対して橙などがある。
【００７１】
つまり、第１のマーカーＭ１は、半径ｒ１の円を赤色Ｒに配色すると共に、半径ｒ２の円のうち、半径ｒ１の円を除いた部分（リング形状部分）を緑色Ｇに配色する。また、第２のマーカーＭ２は、半径ｒ１の円を緑色Ｇに配色すると共に、半径ｒ２の円のうち、半径ｒ１の円を除いた部分（リング形状部分）を赤色Ｒに配色する。
【００７２】
特に、本実施形態のマーカー表示体２０は、４つのマーカーＭのうち、１つを第１のマーカーとし、残り３つを第２のマーカーにすることによって、端末１０がマーカーを検出する際に、各マーカーＭの位置関係を容易に検出できるようにしている。
【００７３】
さらに、マーカー表示体２０には、コード情報が示されている。例えば、図４に示すように、４つの各マーカーＭに取り囲まれる範囲内に白又は黒によって示されるコード情報を表示する。
【００７４】
コード情報は、数値、文字、バーコードや、絵文字、図柄とすることができる。本実施形態のコード情報を８ビットの情報とする。例えば、図６（Ａ）に示すように、３行３列の９マスで構成された９マスのうち中心のマスを除く８つの各マス０〜７を８ビットの各位に対応づけ、１を白、０を黒で表示する。なお、中心のマスはパリティビットとして用いる。このようにして、例えば、図６（Ｂ）（Ｃ）に示すようなコード情報を表示できる。
【００７５】
なお、図４の例では、紙に印刷されたマーカー表示体の例（印刷媒体）を示しているが、マーカー表示体は、物であり、例えば、２次元で表示される媒体、画像、紙、掲示板、ボードでもよいし、３次元の立体的な表示物（ボール、ビー玉、積み木、光源）でもよい。例えば、表示画像である場合は、２次元画像でもよいし、見る人にとって立体的に見える立体視画像でもよい。
【００７６】
４．矩形領域を抽出する処理の詳細な説明
本実施形態では、マーカーがあるか否かを判定するために、まず、第１、第２の矩形領域を抽出する。例えば、第１の色条件を満たす複数の画素によって形成される第１の色領域に外接する第１の矩形領域と、第２の色条件を満たす複数の画素によって形成される第２の色領域に外接する第２の矩形領域とを、撮像画像から抽出する処理を行う。言い換えると、第１の色条件を満たす画素を検出し、検出された画素によって形成される第１の色領域を含む第１の矩形領域と、撮像画像から第２の色条件を満たす画素を検出し、検出された画素によって形成される第２の色領域を含む第２の矩形領域とを、撮像画像から抽出する処理とを行う。
【００７７】
本実施形態の端末１０は、撮像画像の全画素を所定の順に、赤の色条件（第１の色条件の一例）又は緑の色条件（第２の色条件の一例）を満たすか否かを判断する。そして、端末１０は、赤の色条件を満たした隣接する複数の画素群を赤色領域Ｒ（第１の色領域の一例）とし、複数の赤色領域Ｒが隣接している場合には、撮像画像のＹ軸、Ｘ軸に平行になるように隣接する複数の赤色領域Ｒを連結して矩形を設定し、この矩形を赤色矩形領域ＢＲ（第１の矩形領域の一例）として抽出する。
【００７８】
同様に、端末１０は、緑の色条件を満たした隣接する複数の画素群を緑色領域Ｇとし、複数の緑色領域Ｇが隣接している場合には、撮像画像のＹ軸、Ｘ軸に平行になるように隣接する複数の緑色領域Ｇを連結して矩形を設定し、この矩形を緑色矩形領域ＢＧ（第１の矩形領域の一例）として抽出する。
【００７９】
つまり、赤色矩形領域ＢＲは、撮像画像における赤色領域Ｒに外接する矩形領域（第１の外接矩形領域、第１のバウンディングボックス、第１の四角形）であり、緑色矩形領域ＢＧは、撮像画像における緑色領域Ｂに外接する矩形領域（第２の外接矩形領域、第２のバウンディングボックス、第２の四角形）である。つまり、矩形領域は、複数の赤色領域を連結する際に、Ｘ軸方向、Ｙ軸方向において最大の長さを有する赤色領域を基準に、赤色矩形領域ＢＲを設定する。また、複数の緑色領域を連結する際に、Ｘ軸方向、Ｙ軸方向において最大の長さを有する緑色領域を基準に、緑色矩形領域ＢＲを設定する。
【００８０】
例えば、図７に示すように、撮像部１５０によって第１のマークが撮像されると、撮像画像の赤色部分である赤色領域Ｒの赤色矩形領域ＢＲを抽出するとともに、撮像画像の緑色部分である緑色領域Ｇの緑色矩形領域ＢＧを抽出する。
【００８１】
また、図８に示すように、撮像部１５０によって第２のマークが撮像されると、撮像画像の赤色部分である赤色領域Ｒの赤色矩形領域ＢＲを抽出するとともに、撮像画像の緑色部分である緑色領域Ｇの緑色矩形領域ＢＧを抽出する。
【００８２】
４−１．第１、第２の色条件
本実施形態の端末１０は、撮像画像の左上の画素から、左から右方向に順に画素をスキャンし、１ラインのスキャンが終わると、次のラインの左から右方向に順に画素をスキャンする。そして最終的に、撮像画像の右下の画素をスキャンして終了する。
【００８３】
そして、端末１０は、各画素が第１の色条件、または第２の色条件を満たすか否かを判断する。第１の色条件は、画素の色値が第１の色値を含む第１の色値域内であるという条件である。例えば、画素のＵＶ値が赤の色値を含む赤色値域内であるという赤の色条件を第１の色条件とする。つまり、画素の色値が赤色、朱色、ワインレッドなども含む赤色値域である場合には、第１の色条件を満たす画素として検出される。
【００８４】
また、第２の色条件は、画素の色値が第２の色値を含む第２の色値域内であるという条件である。例えば、画素のＵＶ値が緑の色値を含む緑色値域内であるという緑の色条件を第２の色条件とする。つまり、画素の色値が、緑色原色、若草色、深緑色なども含む緑色領域である場合には、第２の色条件を満たす画素として検出される。
【００８５】
このように、本実施形態では、第２の色値は、第１の色値と補色の関係にある色としているが、必ずしも補色の関係である必要はない。なお、補色の関係にあれば、２つの色を識別し易くなり、マーカーを検出する精度を上げることができる。要するに、第１の条件を満たす場合には第２の色条件を満たさず、第２の色条件を満たす場合には第１の色条件を満たさないという排他的な関係になるように、第１、第２の色条件を定めている。
【００８６】
４−２．矩形領域の抽出
本実施形態では、撮像画像の全画素について第１、又は第２の色条件を満たすか否かを判断して、赤色矩形領域ＢＲ、緑色矩形領域ＢＧを抽出する。
【００８７】
なお、本実施形態では、ルックアップテーブルを参照して、撮像画像の各画素が、第１、第２の色条件を満たすか否かを判断してもよい。ルックアップテーブルを用いれば、効率よく処理を行うことができるからである。例えば、各色値（ＹＵＶのフォーマットで定義している場合にはＵ値、Ｖ値）に対応づけて、第１の色条件を満たすか否かを示す数値（０又は１）を設定し、各色値に対応づけて第２の色条件を満たすか否かを示す数値（０又は１）を設定したルックアップテーブルを用意する。
【００８８】
なお、ＹＵＶ値の色値で第１、第２の条件を満たすか否かを判断する場合には、Ｙ値（輝度値）が所定Ｙ値（所定輝度値）以上もしくは、所与の範囲以内の値であるものを取得し、取得された画素のＵＶ値が、第１、第２の条件を満たすか否かを判断してもよい。このようにすれば、輝度が暗い色を排除することになるので、マーカーを検出する精度を上げることができる。
【００８９】
なお、各色値がＲＧＢで定義されている場合には、ＲＧＢの各値に対応づけて、第１の色条件を満たすか否かを示す数値（０又は１）を設定したルックアップテーブル、及び、第２の色条件を満たすか否かを示す数値（０又は１）を設定したルックアップテーブルを用意してもよい。また、各色値がＨＳＶで定義されている場合にも、ＲＧＢと同じように各値に対応づけて、ルックアップテーブルを用意してもよい。
【００９０】
４−２−１．矩形領域抽出処理
次に、本実施形態において、矩形領域を抽出する処理の流れについて、図９（Ａ）〜（Ｄ）を用いて説明する。
【００９１】
まず、図９（Ａ）は、矩形領域抽出処理の概要を示すフローチャート図である。矩形領域抽出処理は、上から下の方向に１ライン毎に走査を行う。つまり、矩形領域設定制御（ステップＳ１）を行い、矩形領域削除制御（ステップＳ２）を行い、矩形領域結合制御（ステップＳ３）を行う。全てのラインのスキャンが終了したか否かを判断し（ステップＳ４）、全てのスキャンが終了していない場合は（ステップＳ４のｎｏ）、次のラインに移行し（ステップＳ５）、ステップＳ１に戻る。全てのスキャンが終了した場合には（ステップＳ４のｙｅｓ）、処理を終了する。
【００９２】
４−２−２．矩形領域設定制御
図９（Ｂ）は、矩形領域設定制御（ステップＳ１）を示すフローチャート図である。矩形領域設定制御は、ライン上の左から右の順に、ライン上の全ての各画素の処理が終了するまで、画素毎にステップ処理を行う。まず、画素の色値は赤色値域内か否かを判断する（ステップＳ１１）。そして、画素の色値は赤色値域内である場合（ステップＳ１１のｙｅｓ）は、ステップＳ１３に進む。一方、画素の色値は赤色値域内でない場合（ステップＳ１１のｎｏ）、画素の色値は緑色値域内であるか否かを判断する（ステップＳ１２）。そして、画素の色値は緑色値域内である場合（ステップＳ１２のｙｅｓ）は、ステップＳ１３に進み、画素の色値は緑色値域内でない場合（ステップＳ１２のｎｏ）、ステップＳ１６に進む。
【００９３】
そして、いずれかの矩形領域と同色かつ隣接しているか否かを判断する（ステップＳ１３）。ここで、ステップＳ１３において、いずれかの矩形領域と隣接しているとは、Ｘ軸方向、Ｙ軸方向において画素が矩形領域の一部に接している場合や、Ｘ軸方向、Ｙ軸方向において画素が矩形領域と１画素分ずれて位置する場合（微差）も含む。
【００９４】
そして、いずれかの矩形領域と同色かつ隣接している場合には（ステップＳ１３のｙｅｓ）、矩形領域を拡張する（ステップＳ１４）。つまり、Ｎライン目とＮ＋１ライン目が隣接している場合には、高さ方向（Ｙ軸方向）に１画素分矩形領域を広げる処理を行い、ライン方向（Ｘ軸方向）に隣接している場合には、画素と隣接する矩形領域とを外接するように、ライン方向に１画素分矩形領域を広げる処理を行う。
【００９５】
例えば、図１０（Ａ）に示すように、Ｎライン目で生成された緑色領域を含む矩形領域ＢＧ１を設定し、図１０（Ｂ）に示すように、Ｎ＋１ライン目の各画素がスキャンされＢＧ２が設定されると、結果的に、矩形領域ＢＧ１はＸ軸方向（左方向、右方向に１画素）広げるように調整されるとともに、Ｙ軸方向（高さ方向）に１画素広げるように調整され、図１０（Ｃ）に示すように矩形領域ＢＧ３に拡張される。
【００９６】
一方、いずれかの矩形領域と同色かつ隣接していない場合には（ステップＳ１３のｎｏ）、新しい矩形領域を設定する（ステップＳ１５）。つまり、スキャン中の画素に外接する新たな矩形領域を設定する。
【００９７】
そして、ライン上の全ての画素のスキャンが終了したか否かを判断し（ステップＳ１６）、ライン上の全ての画素のスキャンが終了していない場合（ステップＳ１６のｎｏ）、次の画素を処理対象として（ステップＳ１７）、ステップＳ１１に戻る。一方、画素ライン上の全ての画素のスキャンが終了した場合には（ステップＳ１６のｙｅｓ）、処理を終了する。
【００９８】
４−２−３．矩形領域削除制御
図９（Ｃ）は、矩形領域削除制御の処理（ステップＳ２）の流れを示すフローチャート図である。矩形領域削除制御は、所定の大きさ（例えば、１画素、２画素分）の矩形領域はゴミとして扱うことにより、ノイズを削減してより精度よくマーカーを検出させるために行う。
【００９９】
まず、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在するか否かを判断する（ステップＳ２１）。そして、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在しない場合（ステップＳ２１のｎｏ）は、矩形領域が所定の大きさよりも小さいか否かを判断する（ステップＳ２２）。矩形領域が所定の大きさよりも小さい場合（ステップＳ２２のｙｅｓ）、当該矩形領域をゴミとして削除する処理を行う（ステップＳ２３）。一方、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在する場合（ステップＳ２１のｙｅｓ）、矩形領域が所定の大きさよりも小さくない場合（ステップＳ２２のｎｏ）は、ステップＳ２４に進む。
【０１００】
そして、全ての矩形領域について処理が終了したか否かを判断し（ステップＳ２４）、全ての矩形領域について処理が終了していない場合には（ステップＳ２４のｎｏ）、次の矩形領域を処理対象とし（ステップＳ２５）、ステップＳ２１に戻る。一方、全ての矩形領域について処理が終了した場合には（ステップＳ２４のｙｅｓ）、処理を終了する。
【０１０１】
４−２−４．矩形領域結合制御
図９（Ｄ）は、矩形領域結合制御（ステップＳ３）の処理の流れを示すフローチャート図である。矩形領域結合制御は、ライン上に設定された矩形領域において、ライン間で隣接する矩形領域を結合する処理を行うものである。
【０１０２】
まず、第Ｎの矩形領域が、同色の第Ｍの矩形領域と隣接又は重なりの関係にあるか否かを判断する（ステップＳ３１）。
【０１０３】
そして、第Ｎの矩形領域が、同色の第Ｍの矩形領域と隣接又は重なりの関係にある場合（ステップＳ３１のｙｅｓ）、第Ｎの矩形領域が、第Ｍの矩形領域と結合する（ステップＳ３２）。つまり、２つの矩形領域を１つの矩形領域とする。
【０１０４】
一方、第Ｎの矩形領域が、同色の第Ｍの矩形領域と隣接又は重なりの関係ではない場合には（ステップＳ３１のｎｏ）、ライン上の全ての矩形領域について処理が終了したか否かを判断し（ステップＳ３３）、処理が終了していない場合には（ステップＳ３３のｎｏ）、次の矩形領域（ステップＳ３４）を処理対象としてステップＳ３１に戻る。
【０１０５】
例えば、図１０（Ａ）に示すように、ラインＮにおいて矩形領域ＢＧ１が設定され、図１０（Ｂ）に示すようにラインＮ＋１において矩形領域ＢＧ２が設定されると、ラインＮの矩形領域ＢＧ１とラインＮ＋１の矩形領域ＢＧ２は隣接又は重なりの関係にあるので、図１０（Ｃ）に示すように、矩形領域ＢＧ１と矩形領域ＢＧ２を結合し新たに矩形領域ＢＧ３が設定される。
【０１０６】
そして、図１０（Ｄ）に示すように、ラインＮ＋２において、矩形領域ＢＧ４が設定されると、図１０（Ｅ）に示すように、矩形領域ＢＧ３と矩形領域ＢＧ４とを結合した新たな矩形領域ＢＧ５が設定される。
【０１０７】
なお、隣接している関係とは、例えば、図２０（Ａ）の矩形領域ａ、矩形領域ｂに示すように２つの矩形領域の画素の少なくとも一部が隣接している場合のことをいう。かかる場合には、矩形領域ａ、矩形領域ｂを結合して、図２０（Ｂ）に示すように新たな矩形領域ＢＧ６が設定される。また、重なりの関係とは、図２０（Ｂ）の、矩形領域ＢＧ６と矩形領域ｃに示すように、２つの矩形領域の少なくとも一部の面（領域）が重なっている場合のことをいう。かかる場合には、矩形領域ＢＧ６と矩形領域ｃとが結合され、図２０（Ｃ）に示すように、新たな矩形領域ＢＧ７が設定される。
【０１０８】
５．マーカー検出処理の詳細な説明
５−１．内包関係に基づくマーカー判定
本実施形態の端末１０は、端末１０は、赤色矩形領域ＢＲ、緑色矩形領域ＢＧのうちいずれか一方が他方を内包する関係にある場合に、マーカーがあると判定する処理を行う。
【０１０９】
例えば、端末１０は、緑色矩形領域ＢＧが赤色矩形領域ＢＲを内包するか否かを判断し、緑色矩形領域ＢＧが赤色矩形領域ＢＲを内包する場合に、第１のマーカーＭ１があると判定する。
【０１１０】
具体的に説明すると、図１１（Ａ）に示すように、緑色矩形領域ＢＧ１の各頂点Ｐ１〜Ｐ４の座標値（Ｘ，Ｙ）と、図１１（Ｂ）に示すように、赤色矩形領域ＢＲ１の各頂点Ｑ１〜Ｑ４の座標値（Ｘ，Ｙ）とを比較することによって、緑色矩形領域ＢＧ１が赤色矩形領域ＢＲ１を内包するか否かを判断する。
【０１１１】
例えば、赤色矩形領域ＢＲ１の各頂点Ｑ１〜Ｑ４が、緑色矩形領域ＢＧ１の各頂点Ｐ１〜Ｐ４内に位置するか否かを判断する。つまり、図１１（Ｃ）に示すように、赤色矩形領域ＢＲ１の各頂点Ｑ１〜Ｑ４が、緑色矩形領域ＢＧ１の各頂点Ｐ１〜Ｐ４内に位置する場合には、緑色矩形領域ＢＧ１が、赤色矩形領域ＢＲ１を内包するので、第１のマーカーＭ１があると判定する。
【０１１２】
一方、赤色矩形領域ＢＲ１の各頂点Ｑ１〜Ｑ４のうち１以上の頂点が、緑色矩形領域ＢＧ１の各頂点Ｐ１〜Ｐ４の外に位置する場合には、緑色矩形領域ＢＧ１が、赤色矩形領域ＢＲ１を内包しないと判断する。
【０１１３】
また、端末１０は、赤色矩形領域ＢＲが緑色矩形領域ＢＧを内包するか否かを判断し、赤色矩形領域ＢＲが緑色矩形領域ＢＧを内包する場合に、第２のマーカーＭ２があると判定する。
【０１１４】
具体的に説明すると、図１２（Ａ）に示すように、緑色矩形領域ＢＧ２の各頂点Ｐ５〜Ｐ８の座標値（Ｘ，Ｙ）と、図１２（Ｂ）に示すように、赤色矩形領域ＢＲ２の各頂点Ｑ５〜Ｑ８の座標値（Ｘ，Ｙ）とを比較することによって、赤色矩形領域ＢＲ２が緑色矩形領域ＢＧ２を内包するか否かを判断する。
【０１１５】
例えば、緑色矩形領域ＢＧ２の各頂点Ｐ５〜Ｐ８が、赤色矩形領域ＢＧ２の各頂点Ｑ５〜Ｑ８内に位置するか否かを判断する。つまり、図１２（Ｃ）に示すように、緑色矩形領域ＢＧ２の各頂点Ｐ５〜Ｐ８が、赤色矩形領域ＢＲ２の各頂点Ｑ５〜Ｑ８内に位置する場合には、赤色矩形領域ＢＲ２が緑色矩形領域ＢＧ２を内包するので、第２のマーカーＭ２があると判定する。
【０１１６】
５−２．中心位置に基づくマーカー判定
また、本実施形態の端末１０は、より精度を上げてマーカーを検出するために、赤色矩形領域ＢＲの中心位置と緑色矩形領域ＢＧの中心位置との距離が所定距離以内（所定画素数以内）であるか否かを判断し、赤色矩形領域ＢＲの中心位置と緑色矩形領域ＢＧの中心位置との距離が所定距離以内である場合に、マーカーがあると判定する処理を行う。
【０１１７】
例えば、図１１（Ａ）に示すように、緑色矩形領域ＢＧ１の各頂点Ｐ１〜Ｐ４に基づいて、緑色矩形領域ＢＧ１の中心位置Ｋ１を求める。そして、図１１（Ｂ）に示すように、赤色矩形領域ＢＲ１の各頂点Ｑ１〜Ｑ４に基づいて、赤色矩形領域ＢＲ１の中心位置Ｌ１を求める。そして、図１１（Ｃ）に示すように、緑色矩形領域ＢＧ１の中心位置Ｋ１と赤色矩形領域ＢＲ１の中心位置Ｌ１との距離が所定距離以内（所定画素数以内）である場合に、マーカーＭ１があると判定する。言い換えると、赤色矩形領域ＢＲ１の中心位置Ｌ１と、緑色矩形領域ＢＧ１の中心位置Ｋ１との距離が所定距離以上である場合には、第１のマークであると判定しない。
【０１１８】
また、図１２（Ａ）に示すように、緑色矩形領域ＢＧ２の各頂点Ｐ５〜Ｐ８に基づいて、緑色矩形領域ＢＧ２の中心位置Ｋ２を求める。そして、図１２（Ｂ）に示すように、赤色矩形領域ＢＲ２の各頂点Ｑ５〜Ｑ８に基づいて、赤色矩形領域ＢＲ２の中心位置Ｌ２を求める。そして、図１２（Ｃ）に示すように、緑色矩形領域ＢＧ２の中心位置Ｋ２と、赤色矩形領域ＢＲ２の中心位置Ｌ２との距離が所定距離以内（所定画素数以内）である場合に、マーカーＭ２があると判定する。言い換えると、緑色矩形領域ＢＧ２の中心位置Ｋ２と、赤色矩形領域ＢＲ２の中心位置Ｌ２との距離が所定距離以上である場合には、第２のマークであると判定しない。
【０１１９】
５−３．本実施形態のマーカー判定の効果
このように、端末１０は、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとが一方が他方を内包する位置関係であること、及び、赤色矩形領域ＢＲ、緑色矩形領域ＢＧの各中心位置が所定距離以内（所定画素数以内）あることを条件にマーカーがあるか否かを判定することによって、より精度を上げてマーカーを検出することができる。
【０１２０】
図１３は、現実世界において、机上にマーカー表示体２０と、赤色鉛筆、消しゴム（緑色の包装紙で一部が包装されている消しゴム）の例を示す。例えば、端末１０の撮像部１５０が位置Ｃ１においてＶ１方向に撮像した場合、位置Ｃ２においてＶ２方向に撮像した場合、位置Ｃ３においてＶ３方向に撮像した場合のいずれの場合においても、マーカーＭ１、Ｍ２を検出することができる。
【０１２１】
例えば、図１４（Ａ）は、端末１０の撮像部１５０が位置Ｃ１においてＶ１方向に撮像した場合の撮像画像Ｇ１上に、赤色矩形領域ＢＲ、緑色矩形領域ＧＲとを示した概念図である。図１４（Ａ）では、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとが一方が他方を内包していること、及び、及び、赤色矩形領域ＢＲ、緑色矩形領域ＢＧの各中心位置が所定距離以内（所定画素数以内）あることを条件にマーカーＭ１、Ｍ２を判定しているので、正確にマーカー表示体のマーカーＭ１、Ｍ２を検出することができる。つまり、赤色鉛筆の赤色矩形領域ＢＲや、消しゴムの包装紙の緑色から抽出される緑色矩形領域ＢＧは、マーカーとして検出しないようにすることができる。
【０１２２】
また、図１４（Ｂ）は、端末１０の撮像部１５０が位置Ｃ２においてＶ２方向に撮像した場合の撮像画像Ｇ２上に、赤色矩形領域ＢＲ、緑色矩形領域ＧＲとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーＭ１、Ｍ２を検出することができる。
【０１２３】
また、図１４（Ｃ）は、端末１０の撮像部１５０が位置Ｃ３においてＶ３方向に撮像した場合の撮像画像Ｇ３上に、赤色矩形領域ＢＲ、緑色矩形領域ＧＲとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーＭ１、Ｍ２を検出することができる。また、撮像部１５０の撮像方向が、マーカー表示体２０を斜めに見下ろす方向で撮像した結果、撮像画像Ｇ３においてマーカーＭ１、Ｍ２が潰れたように見える場合であっても、赤色矩形領域ＢＲ、緑色矩形領域ＢＧを抽出することができる。
【０１２４】
また、図３（Ａ）（Ｂ）に示すように、マーカー表示体２０のマーカーＭ１、Ｍ２は、同一の中心点をもち、径の長さが異なる２つの円によって構成され、内径の円を赤又は緑、外径の円のうち内径の円を除いた部分を緑又は赤で配色しているので、図１４（Ａ）、（Ｂ）、（Ｃ）のように、撮像する方向を変えてもマーカーＭ１、Ｍ２を検出することができる。
【０１２５】
５−４．マーカー判定の他の例
５−４−１．矩形領域の縦・横の比率に基づくマーカー判定
なお、端末１０は、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとの縦・横（Ｘ軸方向の長さ、Ｙ軸方向の長さ）の長さの比率（割合）に基づいて、マーカーがあるか否かを判定してもよい。
【０１２６】
例えば、緑色矩形領域ＢＧの縦の長さと赤色矩形領域ＢＲの縦の長さとの比率、及び、緑色矩形領域ＢＧの横の長さと赤色矩形領域ＢＲの横の長さとの比率の少なくとも一方が、第１の所定比率の範囲内（例えば、１．７５：１〜２．２５：１）である場合には、第１のマーカーＭ１があると判定する。
【０１２７】
図１１（Ｃ）の例では、Ｐ４−Ｐ３の長さ（緑色矩形領域ＢＧ１の縦の長さ）と、Ｑ４−Ｑ３の長さ（赤色矩形領域ＢＲ１の縦の長さ）との比率が２対１であるので、第１のマーカーＭ１があると判定する。同様に、Ｐ４−Ｐ１の長さ（緑色矩形領域ＢＧ１の横の長さ）と、Ｑ４−Ｑ１の長さ（赤色矩形領域ＢＲ１の横の長さ）との比率も２対１であるので、第１のマーカーＭ１があると判定することができる。
【０１２８】
また、緑色矩形領域ＢＧの縦の長さと赤色矩形領域ＢＲの縦の長さとの比率、及び、緑色矩形領域ＢＧの横の長さと赤色矩形領域ＢＲの横の長さとの比率の少なくとも一方が、第２の所定比率の範囲内（例えば、１：１．７５〜１：２．２５）である場合には、第２のマーカーＭ２があると判定する。
【０１２９】
図１２（Ｃ）の例では、Ｐ８−Ｐ７の長さ（緑色矩形領域ＢＧ２の縦の長さ）と、Ｑ８−Ｑ７の長さ（赤色矩形領域ＢＲ２の縦の長さ）との比率が１対２であるので、第２のマーカーＭ２があると判定する。同様に、Ｐ８−Ｐ５の長さ（緑色矩形領域ＢＧ２の横の長さ）と、Ｑ８−Ｑ５の長さ（赤色矩形領域ＢＲ２の横の長さ）との比率が１対２であるので、第２のマーカーＭ２があると判定する。
【０１３０】
５−４−２．矩形領域の各頂点の距離比に基づくマーカー判定
また、端末１０は、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとの各頂点のＸ軸方向の距離比、Ｙ軸方向の距離比に基づいて、マーカーがあるか否かを判定してもよい。
【０１３１】
例えば、端末１０は、緑色矩形領域ＢＧが赤色矩形領域ＢＲを内包する位置関係である場合には、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとの各頂点間のＸ軸方向及びＹ軸方向の距離を求め、Ｘ軸方向の距離比、及び、Ｙ軸方向の距離比の少なくとも一方が所定距離比率の範囲内（例えば、１：１．７５：１〜１：２．２５：１）である場合に、第１のマーカーＭ１があると判定する。
【０１３２】
図１１（Ｃ）の例では、Ｘ軸のＰ３−Ｑ３間の長さＡ１、Ｘ軸のＱ３−Ｑ２間の長さＡ２、Ｘ軸のＱ２−Ｐ２間の長さＡ３との比率が所定距離比率の範囲内（例えば、１：１．７５：１〜１：２．２５：１）であるので、第１のマーカーＭ１があると判定する。また、Ｙ軸のＰ４−Ｑ４間の長さＢ１、Ｙ軸のＱ４−Ｑ３の長さＢ２、Ｙ軸のＱ３−Ｐ３の長さＢ３の比率が所定距離比率の範囲内であるので、第１のマーカーＭ１がある判定する。
【０１３３】
また、端末１０は、赤色矩形領域ＢＲが緑色矩形領域ＢＧを内包する位置関係である場合には、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとの各頂点間のＸ軸方向及びＹ軸方向の距離を求め、Ｘ軸方向の距離比、及び、Ｙ軸方向の距離比の少なくとも一方が所定距離比率の範囲内（例えば、１：１．７５：１〜１：２．２５：１）である場合に、第２のマーカーＭ２があると判定する。
【０１３４】
図１２（Ｃ）の例では、Ｘ軸のＱ７−Ｐ７間の長さａ１、Ｘ軸のＰ７−Ｐ６間の長さａ２、Ｘ軸のＰ６−Ｑ６間の長さａ３との比率が所定距離比率の範囲内であるので、第２のマーカーＭ２があると判定する。また、Ｙ軸のＱ８−Ｐ８間の長さｂ１、Ｙ軸のＰ８−Ｐ７の長さｂ２、Ｙ軸のＰ７−Ｑ７の長さｂ３の比率が所定距離比率の範囲内であるので、第２のマーカーＭ２があると判定する。
【０１３５】
５−４−３．矩形領域の面積比に基づくマーカー判定
また、端末１０は、赤色矩形領域ＢＲ、緑色矩形領域ＢＧとの面積の比率（面積比、面積の割合）、又は所定の面積比率の範囲に基づいて、マーカーがあるか否かを判定してもよい。
【０１３６】
例えば、緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第１の所定面積比（例えば、４対１）、又は第１の所定面積比率の範囲内（例えば、４：１〜５：１）である場合には第１のマーカーＭ１があると判定し、一方、緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第１の所定面積比、又は第１の所定面積比率の範囲内でない場合には、第１のマーカーＭ１がないと判定する。
【０１３７】
また、緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第２の所定面積比（例えば、１対４）、又は第２の所定面積比率の範囲内（例えば、１：４〜１：５）である場合には第２のマーカーＭ２があると判定し、一方、緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第２の所定面積比、又は第２の所定面積比率の範囲内でない場合には、第２のマーカーＭ２がないと判定する。
【０１３８】
５−４−４．マーカー判定についての組み合わせの応用例
つまり、端末１０は、緑色矩形領域ＢＧが赤色矩形領域ＢＲを内包する位置関係である場合には、（ア）緑色矩形領域の中心位置と赤色矩形領域の中心位置との距離が所定距離以内（所定画素数以内）であること、（イ）緑色矩形領域ＢＧの縦・横の長さと赤色矩形領域ＢＲの縦・横の長さとの比率が第１の所定比率の範囲内であること（ウ）緑色矩形領域、赤色矩形領域のＸ軸、Ｙ軸の各頂点間の距離比が所定距離比率の範囲内であること（エ）緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第１の所定面積比又は第１の所定面積比率の範囲内であることの、少なくとも１つの条件を満たす場合に、第１のマーカーＭ１があると判定する。なお、（ア）〜（エ）の条件を全て満足すれば、より精度よく第１のマーカーＭ１を検出することができる。
【０１３９】
また、端末１０は、赤色矩形領域ＢＲが緑色矩形領域ＢＧを内包する位置関係である場合には、（カ）緑色矩形領域の中心位置と、赤色矩形領域の中心位置との距離が所定距離以内（所定画素数以内）であること（キ）緑色矩形領域ＢＧの縦・横の長さと赤色矩形領域ＢＲの縦・横の長さとの比率が第２の所定比率の範囲内であること（ク）緑色矩形領域、赤色矩形領域のＸ軸、Ｙ軸の各頂点間の距離比が所定距離比率の範囲内であること（ケ）緑色矩形領域ＢＧの面積と赤色矩形領域ＢＲの面積との比率が第２の所定面積比又は第２の所定面積比率の範囲内であることの、少なくとも１つの条件を満たす場合に、第２のマーカーＭ２があると判定する。なお、（カ）〜（ケ）の条件を全て満足すれば、より精度よく第１のマーカーＭ２を検出することができる。
【０１４０】
６．コード認識処理の詳細な説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、コード情報を認識する処理（コード情報を取得する処理）を行う。特に、本実施形態の端末１０は、予め定められた所定数の第１のマーカーＭ１と、所定数の第２のマーカーＭ２があると判定された場合に、コード情報を認識する処理を行う。例えば、端末１０は、１つの第１のマーカーＭ１と、３つの第２のマーカーＭ２があると判定された場合に、コード情報を認識する処理を行う。言い換えると、第１のマーカーＭ１が検出されない場合、第１のマーカーＭ１が複数存在する場合、検出された第２のマーカーの数が２つ以下或いは４つ以上である場合には、コード情報を認識する処理を行わない。
【０１４１】
まず、図１５（Ａ）に示すように、１つの第１のマーカーＭ１、及び３つの第２のマーカーＭ２が検出されると、第１のマーカーＭ１のマーカーの位置ＰＭ１と、第２のマーカーＭ２の位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３それぞれに識別番号を付与する。
【０１４２】
例えば、図１５（Ｂ）に示すように、第１のマーカーＭ１の位置ＰＭ１は１つしかないので、一意に定めることができる。したがって、まず、第１のマーカーＭ１の位置ＰＭ１に識別番号「０」を付与する。そして、３つの第２のマーカーの位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３に、位置ＰＭ１を基点に左回り（反時計回り）の順で「１」、「２」、「３」を付与する。例えば、位置ＰＭ１と、位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３とを相互に線を結び、各線が交差関係にあるか否か、各線が平行関係にあるか否かに基づいて、３つの第２のマーカーの位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３に、位置ＰＭ１を基点に左回り（反時計回り）の順で「１」、「２」、「３」を付与する。
【０１４３】
このように、各位置ＰＭ１、ＰＭ２−１、ＰＭ２−２、ＰＭ２−３に識別番号を付与することによって、現実の空間におけるマーカー表示体の四角形の配置方向を特定することができる。
【０１４４】
そして、端末１０は、図１５（Ｃ）に示すように、第１のマーカーＭ１の位置ＰＭ１と、第２のマーカーＭ２の各位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３とに基づいて、撮像画像上の領域Ａ０〜Ａ８を特定し、各領域Ａ０〜Ａ８の輝度値（色値でもよい）に基づいて、１（白）又は０（黒）に２値化し、各領域Ａ０〜Ａ８の値（０又は１）を取得する。つまり、コード情報である８ビットの各位の値を、各領域Ａ０〜Ａ８から取得する。なお、領域Ａ０はパリティビットとして用い、エラー検出処理を行う。
【０１４５】
なお、端末１０は、位置ＰＭ１と、位置ＰＭ２−１、ＰＭ２−２、ＰＭ２−３の識別番号が付されているので、コード情報の向きを決定することができ、適確に領域Ａ０〜Ａ８を特定し、コード情報の８ビットの各位の値を取得することができる。
【０１４６】
このようにして、コード情報が認識されると、例えば、コード情報に基づいて拡張現実画像を生成する処理、情報を提示する命令を実行する処理などを行うことができる。
【０１４７】
７．拡張現実画像を生成する処理の詳細な説明
７−１．拡張現実画像の説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、撮像画像と仮想画像とを重畳して拡張現実画像を生成する処理を行う。ここで、拡張現実とは、Ａｕｇｍｅｎｔｅｄ  Ｒｅａｌｉｔｙ（ＡＲ）であり、現実環境にコンピュータ（端末）を用いて情報を付加提示する技術、および情報を付加提示された環境そのものを示す。
【０１４８】
例えば、図１６（Ａ）に示すように、撮像部１５０によって、端末１０の画面上に、撮像画像が表示されていたとする。すると、本実施形態では、図１６（Ｂ）に示すように、この撮像画像と、キャラクタ（オブジェクトの一例）を含む仮想画像とを合成（重畳）して拡張現実画像を生成する。このようにすれば、図１６（Ｃ）に示すように、現実世界にキャラクタは存在しないが、撮像部１５０を通して、仮想的なオブジェクトがいるかのような拡張現実画像を提供することができる。
【０１４９】
７−２．マーカー検出処理に基づいて表示制御を行う処理
本実施形態の端末１０は、予め定められた所定数の第１のマーカーＭ１と、所定数の第２のマーカーＭ２があると判定された場合に、拡張現実画像を生成する処理を行う。例えば、端末１０は、１つの第１のマーカーＭ１と、３つの第２のマーカーＭ２があると判定された場合に、図１６（Ｃ）に示すような拡張現実画像を生成する処理を行う。言い換えると、第１のマーカーＭ１が検出されない場合、第１のマーカーＭ１が複数存在する場合、検出された第２のマーカーの数が２つ以下或いは４つ以上である場合には、拡張現実画像を生成する処理を行わずに、図１６（Ａ）に示すような撮像画像を表示する処理を行う。
【０１５０】
なお、本実施形態では、所定周期（例えば、描画フレームレート、１／６０秒周期）で、マーカー検出処理を行うので、リアルタイムに拡張現実画像を生成することができる。
【０１５１】
７−３．コード認識処理に基づいて表示制御を行う処理
また、本実施形態では、少なくとも一つのマーカーが検出されてコード情報を認識した場合には、当該コード情報に基づいて、拡張現実画像を生成するか否かを決定するようにしてもよい。例えば、端末１０は、１つの第１のマーカーＭ１と、３つの第２のマーカーＭ２があると判定された場合に、コード情報を認識する。そして、コード情報を認識した場合には、コード情報に基づいて拡張現実画像を生成して、表示部に表示させる。一方、コード情報を認識できない場合には、撮像画像を表示させる。
【０１５２】
また、本実施形態では、図６（Ｂ）（Ｃ）に示すように、複数種類のコード情報が予め用意されている。したがって、コード情報に基づいて、拡張現実画像を生成するようにしてもよい。
【０１５３】
例えば、図６（Ｂ）に基づくコード情報を取得した場合には、第１のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。一方、図６（Ｃ）に基づくコード情報を取得した場合には、第２のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。このようにすれば、コード情報の種類に応じて、様々な拡張現実画像を生成することができる。
【０１５４】
７−４．仮想画像の生成
なお、本実施形態において拡張現実画像に用いられる仮想画像は、２次元画像でもよいし、３次元仮想空間（ワールド座標系）に配置された仮想カメラから見える３次元画像であってもよい。
【０１５５】
なお、本実施形態では、複数のマーカーの各位置（位置ＰＭ１、ＰＭ２−１、ＰＭ２−２、ＰＭ２−３）に基づいて３次元仮想空間におけるオブジェクトの配置位置、仮想カメラ位置、向き、画角の少なくとも１つを決めて、当該３次元仮想空間において当該仮想カメラから見える仮想画像を生成するようにしてもよい。このようにすれば、より自然な拡張現実画像を生成することができる。
【０１５６】
８．本実施形態の処理の流れ
図１７を用いて、本実施形態の処理の流れを説明する。まず、撮像部１５０によって撮像された撮像画像を撮像画像記憶部１７３に記憶させる処理を行う（ステップＳ４１）。次に、撮像画像上の赤色矩形領域と、緑色矩形領域とを抽出する処理を行う（ステップＳ４２）。次に、赤色矩形領域と、緑色矩形領域との位置関係に基づいて、第１のマークＭ１と第２のマークＭ２とを検出する処理を行う（ステップＳ４３）。
【０１５７】
次に、第１のマークＭ１が１つ、且つ、第２のマークＭ２が３つ検出されたか否かを判断する（ステップＳ４４）。第１のマークＭ１が１つ、且つ、第２のマークＭ２が３つ検出された場合には（ステップＳ４４のＹ）、コード情報認識処理（ステップＳ４５）を行う。一方、第１のマークＭ１が１つ、且つ、第２のマークＭ２が３つ検出されなかった場合には（ステップＳ４４のＮ）、撮像画像を表示部に表示させる処理を行い（ステップＳ４９）処理を終了する。
【０１５８】
そして、コード情報認識処理（ステップＳ４５）の後、コード情報に基づいて、オブジェクトを決定する処理を行う（ステップＳ４６）。そして、撮像画像と、決定されたオブジェクトを含む仮想画像とを合成して、拡張現実画像を生成する処理を行う（ステップＳ４７）。そして、拡張現実画像を表示部に表示させる処理を行う（ステップＳ４８）。以上で処理が終了する。
【０１５９】
９．応用例
９−１．マーカー表示体の応用例
図１８（Ａ）に示すように、本実施形態のマーカー表示体２０は、複数のマーカーを、三角形の隅（コーナー）に配置して形成されるものであってもよい。例えば、図１８（Ａ）のように、１つは第１のマーカーＭ１とし、残り２つを第２のマーカーＭ２とし、正三角形の隅に配置してもよい。
【０１６０】
また、図１８（Ｂ）に示すように、本実施形態のマーカー表示体２０は、四角形の各隅のうち、３つの隅にマーカーを配置して形成するものであってもよい。例えば、１つは第１のマーカーＭ１とし、残り２つを第２のマーカーＭ２とし、各マーカーＭ１、Ｍ２を正四角形の隅に配置してもよい。
【０１６１】
また、図１８（Ｃ）に示すように、本実施形態のマーカー表示体２０は、五角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図１８（Ｃ）のように、１つは第１のマーカーＭ１とし、残り４つを第２のマーカーＭ２とし、各マーカーＭ１、Ｍ２を正五角形の隅に配置してもよい。
【０１６２】
また、図１８（Ｄ）に示すように、本実施形態のマーカー表示体２０は、六角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図１８（Ｄ）のように、１つは第１のマーカーＭ１とし、残り５つを第２のマーカーＭ２とし、各マーカーＭ１、Ｍ２を正六角形の隅に配置してもよい。
【０１６３】
また、本実施形態のマーカー表示体２０は、正多角形の各隅のうち、１つの隅はマーカーＭ１を配置し、残りの各隅はマーカーＭ２を配置するようにしてもよい。多くのマーカーが配置されることにより、正確な情報を入手しやすくなるからである。
【０１６４】
なお、本実施形態では、マーカー表示体にあわせて、検出するマーカーの数を定義してもよい。つまり、マーカー表示体にあわせて、コード情報を認識するための条件、拡張現実画像を生成する条件となる、第１のマーカーＭ１の数と、第２のマーカーＭ２の数を決める。
【０１６５】
例えば、図１８（Ａ）（Ｂ）の場合には、端末１０は、「１つ」の第１のマーカーＭ１と、「２つ」の第２のマーカーＭ２があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第１のマーカーＭ１が検出されない場合、第１のマーカーＭ１が複数存在する場合、検出された第２のマーカーの数が１つ或いは３つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【０１６６】
同様に、図１８（Ｃ）の場合には、端末１０は、「１つ」の第１のマーカーＭ１と、「４つ」の第２のマーカーＭ２があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第１のマーカーＭ１が検出されない場合、第１のマーカーＭ１が複数存在する場合、検出された第２のマーカーの数が３つ以下或いは５つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【０１６７】
同様に、図１８（Ｄ）の場合には、端末１０は、「１つ」の第１のマーカーＭ１と、「５つ」の第２のマーカーＭ２があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第１のマーカーＭ１が検出されない場合、第１のマーカーＭ１が複数存在する場合、検出された第２のマーカーの数が４つ以下或いは６つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【０１６８】
９−２．拡張現実画像の応用例
本実施形態では、図１９に示すように、端末１０は、少なくとも一つのマーカーが検出されてコード情報を認識した場合（例えば、１つの第１のマーカーＭ１と、３つの第２のマーカーＭ２があると判定されて、コード情報を認識した場合）には、そのコード情報に対応する付加情報（「店名」、「ＵＲＬ」、「電話番号」、「店の評価情報」などの店舗情報）を含む仮想画像と、撮像画像とを合成して拡張現実画像を生成するようにしてもよい。
【０１６９】
なお、端末１０は、コード情報を認識した場合には、コード情報をネットワークを介してサーバに送信し、サーバから当該コード情報に対応する付加情報（「店名」、「ＵＲＬ」、「電話番号」、「店の評価情報」などの店舗情報）を受信し、撮像画像と受信した付加情報を示す仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【０１７０】
９−３．コード情報の応用例
また、コード情報は、オブジェクト、付加情報の他に、仮想動画、文字（文章）、音声などに対応付けられており、端末１０は、認識したコード情報に基づいて、コード情報に対応付けられている仮想動画の再生処理、文字の表示処理、音声の再生処理を行うようにしてもよい。
【０１７１】
また、本実施形態では、コード情報をマーカー表示体２０の各マーカーＭに取り囲まれる範囲内に記載する例について説明したが、コード情報をマーカー表示体２０の所与の範囲に記載したものであってもよい。例えば、コード情報をマーカー表示体２０の各マーカーＭにより取り囲まれる範囲外に記載してもよい。
【０１７２】
１０．サーバ
本実施形態では、図２１に示すように、クライアント・サーバ方式のネットワークシステムにおけるサーバ２０において、マーカー検出処理に適用してもよい。つまり、サーバ２０が、端末１０で行う処理（例えば、処理部１００の少なくとも１つの処理）を行うようにしてもよい。
【０１７３】
例えば、サーバ２０は、図２１に示すように、ネットワーク（例えば、インターネット）を介して複数の端末１０（１０Ａ〜１０Ｃ）と接続され、サーバ２０が、端末１０から撮像画像（撮像画像データ）を受信する。
【０１７４】
そして、例えば、サーバ２０は、受信した撮像画像に基づいてマーカーがあるか否かを判定する処理を行う。具体的に説明すると、サーバ２０は、第１の色条件を満たし隣接する複数の画素からなる第１の色領域に外接する第１の矩形領域と、第２の色条件を満たし隣接する複数の画素からなる第２の色領域に外接する第２の矩形領域とを、受信した撮像画像から抽出する処理を行い、第１の矩形領域と第２の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、サーバ２０は、第１の矩形領域、第２の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【０１７５】
また、サーバ２０は、処理結果を端末１０に送信してもよい。処理結果とは、撮像画像に基づいて得られる情報等である。例えば、サーバ２０は、撮像画像に基づきマーカーがあるか否かを判定した判定結果（マーカーの有無）、コード情報、コード情報に基づいて決定されるオブジェクトの情報、拡張現実画像の少なくとも１つを、処理結果として端末１０に送信するようにしてもよい。
【０１７６】
例えば、サーバ２０は、マーカーがあると判断された場合は１を、マーカーが無いと判断された場合には０を判定結果として端末１０に送信する処理を行う。
【０１７７】
また、サーバ２０は、検出した各マーカーの位置関係に基づいて、撮像画像からコード情報を認識するコード情報認識処理を行い、コード情報を端末１０に送信する処理を行ってもよい。また、サーバ２０は、コード情報に基づいてオブジェクトを決定し、決定されたオブジェクトの情報を端末１０に送信するようにしてもよい。
【０１７８】
また、サーバ２０は、撮像画像と決定されたオブジェクトを含む仮想画像とを合成した拡張現実画像を生成し、生成された拡張現実画像を端末１０に送信する処理を行うようにしてもよい。
【０１７９】
なお、端末１０は、撮像部１５０において撮像された画像や記憶部１７０（或いは情報記憶媒体１８０）に記憶されている撮像画像をサーバ２０に送信する処理を行い、サーバ２０から処理結果を受信する処理を行う。そして、端末１０は、受信した処理結果に基づいて、所与の処理を行う。
【符号の説明】
【０１８０】
１０  端末、２０  マーカー表示体、
Ｍ  マーカー、Ｍ１  第１のマーカー、Ｍ２  第２のマーカー、
１００  処理部、１１０  矩形領域抽出部、１１１  マーカー判定部、
１１２  コード認識処理部、１２０  描画部、１３０  音処理部、
１７０  記憶部、１７１  主記憶部、１７２  画像バッファ、１７３  撮像画像記憶部、
１５０  撮像部、１６０  入力部、１６２  検出部、
１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９６  通信部
【図１】
2012216029.tif 000003
【図２】
2012216029.tif 000004
【図３】
2012216029.tif 000005
【図９（Ａ）】
2012216029.tif 000006
【図９（Ｂ）】
2012216029.tif 000007
【図９（Ｃ）】
2012216029.tif 000008
【図９（Ｄ）】
2012216029.tif 000009
【図１１】
2012216029.tif 000010
【図１２】
2012216029.tif 000011
【図１５】
2012216029.tif 000012
【図１７】
2012216029.tif 000013
【図２１】
2012216029.tif 000014
【図４】
2012216029.tif 000015
【図５】
2012216029.tif 000016
【図６】
2012216029.tif 000017
【図７】
2012216029.tif 000018
【図８】
2012216029.tif 000019
【図１０】
2012216029.tif 000020
【図１３】
2012216029.tif 000021
【図１４（Ａ）】
2012216029.tif 000022
【図１４（Ｂ）】
2012216029.tif 000023
【図１４（Ｃ）】
2012216029.tif 000024
【図１６（Ａ）】
2012216029.tif 000025
【図１６（Ｂ）】
2012216029.tif 000026
【図１６（Ｃ）】
2012216029.tif 000027
【図１８】
2012216029.tif 000028
【図１９】
2012216029.tif 000029
【図２０】
2012216029.tif 000030