プログラム、情報記憶媒体、端末、サーバ、及びマーカー表示体
【課題】処理負荷を軽減し、マーカーをより正確に検出することが可能なプログラム、情報記憶媒体、端末及びマーカー表示体を提供すること。
【解決手段】第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出し、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合にマーカーがあると判定する。
【解決手段】第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出し、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合にマーカーがあると判定する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、端末、サーバ、及びマーカー表示体に関する。
【背景技術】
【0002】
従来から、所定のフォーマット情報に基づいて生成された2次元コードなどをカメラで撮像し、撮像画像からコードを認識する技術が存在する。しかし、従来技術は、直線成分検出処理や交差ラインの検出処理等が必要であり、この検出処理は非常に処理負荷が高い。また、特許文献1に記載されるようなカラーマークを検出する処理では、本来マークではない色も検出してしまうことがあり、マークを誤判定してしまうことがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−269561号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、処理負荷を軽減し、マーカーをより正確に検出することが可能なプログラム、情報記憶媒体、端末、サーバ及びマーカー表示体を提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、前記マーカー判定部が、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定するプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する端末に関係する。
【0006】
本発明によれば、第1、第2の矩形領域を抽出し、第1、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定するので従来よりも処理負荷を軽減させて、マーカーを検出することができる。また、本発明によれば、第1、第2の色条件に基づいて矩形領域を抽出するので、濃淡や輝度値(白、黒、グレーなど)に基づいてマーカーを検出する場合に比べて、精度を上げてマーカーを検出することができる。さらに、本発明によれば、2つの色条件を用いてマーカーがあるか否かを判定するので、1つの色条件のみを判定する場合に比べて、精度よくマーカーを検出することができる。
【0007】
(2)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うようにしてもよい。本発明によれば、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定するので、精度を上げてマーカーがあるか否かを判定することができる。
【0008】
(3)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定するようにしてもよい。本発明によれば、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するので、より正確にマーカーがあるか否かを判定することができる。
【0009】
(4)また、本発明のプログラム、情報記憶媒体及び端末は、前記矩形領域抽出部が、画素の色値が、第1の色値を含む第1の色値域内である場合に前記第1の色条件を満たすと判断し、画素の色値が、第2の色値を含む第2の色値域内である場合に前記第2の色条件を満たすと判断するようにしてもよい。本発明によれば、第1、第2の矩形領域が抽出しやすくなる。
【0010】
(5)また、本発明のプログラム、情報記憶媒体及び端末は、当該第1の色値と、当該第2の色値とは補色の関係にあるようにしてもよい。つまり、第1の色値と、第2の色値とは補色の関係にあれば、第1、第2の矩形領域が抽出しやすくなり、精度を上げてマーカーを検出することができる。
【0011】
(6)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、複数の前記マーカーがあるか否かを判定するようにしてもよい。
【0012】
(7)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させるようにしてもよい。本発明によれば、マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行うことができる。
【0013】
(8)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、前記コード認識処理部が、前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うようにしてもよい。
【0014】
本発明によれば、マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、第1のマーカーと各第2のマーカーとの位置関係に基づいて、コード情報を認識する処理を行うので、より正しい環境下で、コード情報を認識させるようにすることができる。
【0015】
(9)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、複数のマーカーが検出された場合に、拡張現実画像を生成することができる。
【0016】
(10)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、前記描画部が、前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うようにしてもよい。本発明によれば、マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行うので、より正しい環境下で、拡張現実画像を提供することができる。
【0017】
(11)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、前記描画部が、前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。本発明によれば、コード情報に基づいて仮想画像を生成する処理を行うので、コード情報に応じた仮想画像と撮像画像とを合成した拡張現実画像を生成することができる。
【0018】
(12)本発明は、少なくとも一つのマーカーを検出する処理を行うサーバであって、ネットワークを介して端末から、撮像画像を受信する通信制御部と、第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、前記マーカー判定部が、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、前記通信制御部が、前記端末に処理結果を送信するサーバに関する。
【0019】
(13)本発明は、端末によって検出される複数のマーカーからなるマーカー表示体であって、同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーを複数所定間隔をおいて配置し、前記複数のマーカーのうち1つのマーカーの内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、残りの各マーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色しているマーカー表示体に関する。
【0020】
本発明によれば、同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーが配置され、そのマーカーは、内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色されているか、あるいは、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色されている。したがって、いずれの方向からでも第1、第2の色を考慮したマーカーを検出させることが可能なマーカー表示体を提供できる。つまり、1色のマーカーよりも精度よく検出され得るマーカーを配置したマーカー表示体を提供できる。なお、マーカー表示体は、2次元の表示体でもよいし、3次元の表示体でもよい。
【0021】
(14)また、本発明のマーカー表示体は、前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって複数のマーカーが検出された際に、コード情報を認識させるようなマーカー表示体を提供できる。
【0022】
(15)また、本発明のマーカー表示体は、前記第1の色は赤色、前記第2の色は緑色であることを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって検出しやすいマーカーが配置されたマーカー表示体を提供できる。
【図面の簡単な説明】
【0023】
【図1】図1は、本実施形態の端末の機能ブロック図の一例。
【図2】図2(A)、(B)は、本実施形態の端末の一例。
【図3】図3(A)、(B)は、本実施形態の端末の一例。
【図4】図4は、マーカー表示体の一例。
【図5】図5(A)、(B)は、マーカーの説明図。
【図6】図6(A)、(B)、(C)は、コード情報の説明図。
【図7】図7は、第1の矩形領域の説明図。
【図8】図8は、第2の矩形領域の説明図。
【図9(A)】図9(A)は、矩形領域抽出処理のフローチャート図。
【図9(B)】図9(B)は、矩形領域抽出処理のフローチャート図。
【図9(C)】図9(C)は、矩形領域抽出処理のフローチャート図。
【図9(D)】図9(D)は、矩形領域抽出処理のフローチャート図。
【図10】図10(A)〜(D)は、矩形領域抽出処理の説明図。
【図11】図11(A)(B)(C)は、第1、第2の矩形領域の位置関係の説明図。
【図12】図12(A)(B)(C)は、第1、第2の矩形領域の位置関係の説明図。
【図13】図13は、マーカー表示体を撮像する状況の説明図。
【図14(A)】図14(A)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図14(B)】図14(B)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図14(C)】図14(C)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図15】図15(A)、(B)、(C)は、マーカーの位置関係に基づいてコード情報を認識する例を説明するための説明図。
【図16(A)】図16(A)は、撮像画像の説明図。
【図16(B)】図16(B)は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図16(C)】図16(C)は、拡張現実画像の説明図。
【図17】図17は、本実施形態のフローチャート図。
【図18】図18(A)、(B)、(C)、(D)、(E)は、マーカー表示体の応用例。
【図19】図19は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図20】図20(A)(B)(C)は、隣接、重なり関係の説明図。
【図21】図21は、ネットワークシステムの説明図。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
1.構成
図1に本実施形態の端末(コンピュータ、ゲーム装置、携帯電話、スマートフォン、携帯端末、携帯型ゲーム装置、画像生成装置)の機能ブロック図の例を示す。なお本実施形態の端末は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0026】
撮像部150は、物体から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、撮像部150は、RGB、YUV、HSVなどの色空間(フォーマット)で定義された色画像(入力画像)を、撮像画像記憶部173に出力する処理を行う。撮像部150は、所定の周期で(例えば、1/60秒毎に)撮像した色画像を撮像画像記憶部173に出力する処理を行う。つまり、逐次、色画像を撮像画像記憶部173に記憶させる処理を行う。
【0027】
入力部160は、プレーヤ(操作者)からの入力情報を入力するための入力機器(コントローラ)であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0028】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部150を備えた入力機器でもよい。例えば、入力部160は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部160は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部160は、入力機器と一体化されている端末(携帯電話、携帯端末、携帯型ゲーム装置)なども含まれる。
【0029】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0030】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0031】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0032】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0033】
通信部196は外部(例えば他の端末、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0034】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0035】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0036】
この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0037】
処理部100は、矩形領域抽出部110、マーカー判定部111、コード認識処理部112、描画部120、音処理部130を含む。なお、これらの一部を省略する構成としてもよい。
【0038】
矩形領域抽出部110は、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出する処理とを行う。
【0039】
ここで、矩形領域抽出部110は、画素の色値が、第1の色値を含む第1の色値域内である場合に第1の色条件を満たすと判断し、画素の色値が、第2の色値を含む第2の色値域内である場合に第2の色条件を満たすと判断する。なお、当該第1の色値と、当該第2の色値とは補色の関係であることが望ましい。例えば、第1の色値を赤の色値とし、第2の色値を緑の色値としてもよい。
【0040】
マーカー判定部111は、第1の矩形領域と第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、マーカー判定部111は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【0041】
また、マーカー判定部111は、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定する処理を行うようにしてもよい。つまり、マーカー判定部111は、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するようにしてもよい。
【0042】
また、マーカー判定部111は、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行う。
【0043】
コード認識処理部112は、マーカー判定部111によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行う。
【0044】
また、コード認識処理部112は、マーカー判定部111によって1つの第1のマーカー及び2以上の所定数(例えば、3つ)の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、コード情報を認識する処理を行う。
【0045】
描画部120は、オブジェクトをオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト配置部は、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0046】
例えば、オブジェクト配置部は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0047】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。言い換えると、描画部120は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【0048】
例えば、描画部120は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0049】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0050】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0051】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0052】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0053】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0054】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0055】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0056】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0057】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0058】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0059】
特に、本実施形態の描画部120は、マーカー判定部111によって複数のマーカーがあると判定された場合に、撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う。例えば、本実施形態の描画部120は、マーカー判定部111によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行う。
【0060】
また、本実施形態の描画部120は、コード認識処理部112によって認識されたコード情報に基づいて仮想画像を生成する処理を行い、撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【0061】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0062】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0063】
2.概要
本実施形態では、端末10の撮像部150によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うものである。例えば、端末10は、図2(A)(B)に示すようなゲーム装置、図3(A)(B)に示すような携帯端末(スマートフォン)などである。
【0064】
そして、本実施形態の端末10は、図4に示すようなマーカー表示体20を被写体として撮像し、マーカー表示体20で表示されるマーカーMを検出する。端末10は、所定周期(例えば、1/60秒単位)で連続して撮像を続けることが可能であり、端末10は、所定周期で、マーカーMを検出することができる。
【0065】
そして、端末10は、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像部150によって撮像された撮像画像から抽出する処理を行う。
【0066】
そして、端末10は、第1の矩形領域と、第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。つまり、端末10は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する処理を行う。このようにすれば、撮像画像から直線成分、交差成分を検出することなく、マーカーがあるか否かを判定できる。つまり、従来技術よりも処理負荷を軽減させることができる。そして、2つの色条件に基づいて抽出された第1、第2の矩形領域の位置関係に基づいてマーカーがあるか否かを判断するので、従来技術よりも精度を上げてマーカーを検出(認識)することができる。以下、詳細に本実施形態のマーカー検出処理について説明する。
【0067】
3.マーカー表示体の説明
まず、撮像部150の被写体となるマーカー表示体20について説明する。図4に示すように、マーカー表示体20は、複数のマーカーMが、所定間隔をおいて配置されている。つまり、図4の例では4個のマーカーMが、四角形(正方形)の隅(コーナー)に配置して形成される。
【0068】
そして、図5(A)(B)に示すように、マーカーMは、同一の中心点Oをもち、径の長さが異なる2つの円によって構成される。つまり、マーカーMは、点Oを中心に半径r1の円と、点Oを中心に半径r2の円で構成されている(r1<r2)。例えば、半径r2は、半径r1の倍の長さとすることができる。
【0069】
そして、本実施形態のマーカー表示体20は、配色が異なる第1のマーカーM1と、第2のマーカーM2とを配置している。すなわち、図5(A)に示すように、第1のマーカーM1は、内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、図5(B)に示すように、残りの各第2のマーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色している。
【0070】
第1の色と第2の色とは補色の関係であることが望ましい。例えば、第1の色を赤色R、第2の色を緑色Gとすることができる。補色の関係とは、色相環で正反対に位置する関係のことをいう。補色の関係は赤に対する緑だけでなく、黄に対して紫、青に対して橙などがある。
【0071】
つまり、第1のマーカーM1は、半径r1の円を赤色Rに配色すると共に、半径r2の円のうち、半径r1の円を除いた部分(リング形状部分)を緑色Gに配色する。また、第2のマーカーM2は、半径r1の円を緑色Gに配色すると共に、半径r2の円のうち、半径r1の円を除いた部分(リング形状部分)を赤色Rに配色する。
【0072】
特に、本実施形態のマーカー表示体20は、4つのマーカーMのうち、1つを第1のマーカーとし、残り3つを第2のマーカーにすることによって、端末10がマーカーを検出する際に、各マーカーMの位置関係を容易に検出できるようにしている。
【0073】
さらに、マーカー表示体20には、コード情報が示されている。例えば、図4に示すように、4つの各マーカーMに取り囲まれる範囲内に白又は黒によって示されるコード情報を表示する。
【0074】
コード情報は、数値、文字、バーコードや、絵文字、図柄とすることができる。本実施形態のコード情報を8ビットの情報とする。例えば、図6(A)に示すように、3行3列の9マスで構成された9マスのうち中心のマスを除く8つの各マス0〜7を8ビットの各位に対応づけ、1を白、0を黒で表示する。なお、中心のマスはパリティビットとして用いる。このようにして、例えば、図6(B)(C)に示すようなコード情報を表示できる。
【0075】
なお、図4の例では、紙に印刷されたマーカー表示体の例(印刷媒体)を示しているが、マーカー表示体は、物であり、例えば、2次元で表示される媒体、画像、紙、掲示板、ボードでもよいし、3次元の立体的な表示物(ボール、ビー玉、積み木、光源)でもよい。例えば、表示画像である場合は、2次元画像でもよいし、見る人にとって立体的に見える立体視画像でもよい。
【0076】
4.矩形領域を抽出する処理の詳細な説明
本実施形態では、マーカーがあるか否かを判定するために、まず、第1、第2の矩形領域を抽出する。例えば、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出する処理を行う。言い換えると、第1の色条件を満たす画素を検出し、検出された画素によって形成される第1の色領域を含む第1の矩形領域と、撮像画像から第2の色条件を満たす画素を検出し、検出された画素によって形成される第2の色領域を含む第2の矩形領域とを、撮像画像から抽出する処理とを行う。
【0077】
本実施形態の端末10は、撮像画像の全画素を所定の順に、赤の色条件(第1の色条件の一例)又は緑の色条件(第2の色条件の一例)を満たすか否かを判断する。そして、端末10は、赤の色条件を満たした隣接する複数の画素群を赤色領域R(第1の色領域の一例)とし、複数の赤色領域Rが隣接している場合には、撮像画像のY軸、X軸に平行になるように隣接する複数の赤色領域Rを連結して矩形を設定し、この矩形を赤色矩形領域BR(第1の矩形領域の一例)として抽出する。
【0078】
同様に、端末10は、緑の色条件を満たした隣接する複数の画素群を緑色領域Gとし、複数の緑色領域Gが隣接している場合には、撮像画像のY軸、X軸に平行になるように隣接する複数の緑色領域Gを連結して矩形を設定し、この矩形を緑色矩形領域BG(第1の矩形領域の一例)として抽出する。
【0079】
つまり、赤色矩形領域BRは、撮像画像における赤色領域Rに外接する矩形領域(第1の外接矩形領域、第1のバウンディングボックス、第1の四角形)であり、緑色矩形領域BGは、撮像画像における緑色領域Bに外接する矩形領域(第2の外接矩形領域、第2のバウンディングボックス、第2の四角形)である。つまり、矩形領域は、複数の赤色領域を連結する際に、X軸方向、Y軸方向において最大の長さを有する赤色領域を基準に、赤色矩形領域BRを設定する。また、複数の緑色領域を連結する際に、X軸方向、Y軸方向において最大の長さを有する緑色領域を基準に、緑色矩形領域BRを設定する。
【0080】
例えば、図7に示すように、撮像部150によって第1のマークが撮像されると、撮像画像の赤色部分である赤色領域Rの赤色矩形領域BRを抽出するとともに、撮像画像の緑色部分である緑色領域Gの緑色矩形領域BGを抽出する。
【0081】
また、図8に示すように、撮像部150によって第2のマークが撮像されると、撮像画像の赤色部分である赤色領域Rの赤色矩形領域BRを抽出するとともに、撮像画像の緑色部分である緑色領域Gの緑色矩形領域BGを抽出する。
【0082】
4−1.第1、第2の色条件
本実施形態の端末10は、撮像画像の左上の画素から、左から右方向に順に画素をスキャンし、1ラインのスキャンが終わると、次のラインの左から右方向に順に画素をスキャンする。そして最終的に、撮像画像の右下の画素をスキャンして終了する。
【0083】
そして、端末10は、各画素が第1の色条件、または第2の色条件を満たすか否かを判断する。第1の色条件は、画素の色値が第1の色値を含む第1の色値域内であるという条件である。例えば、画素のUV値が赤の色値を含む赤色値域内であるという赤の色条件を第1の色条件とする。つまり、画素の色値が赤色、朱色、ワインレッドなども含む赤色値域である場合には、第1の色条件を満たす画素として検出される。
【0084】
また、第2の色条件は、画素の色値が第2の色値を含む第2の色値域内であるという条件である。例えば、画素のUV値が緑の色値を含む緑色値域内であるという緑の色条件を第2の色条件とする。つまり、画素の色値が、緑色原色、若草色、深緑色なども含む緑色領域である場合には、第2の色条件を満たす画素として検出される。
【0085】
このように、本実施形態では、第2の色値は、第1の色値と補色の関係にある色としているが、必ずしも補色の関係である必要はない。なお、補色の関係にあれば、2つの色を識別し易くなり、マーカーを検出する精度を上げることができる。要するに、第1の条件を満たす場合には第2の色条件を満たさず、第2の色条件を満たす場合には第1の色条件を満たさないという排他的な関係になるように、第1、第2の色条件を定めている。
【0086】
4−2.矩形領域の抽出
本実施形態では、撮像画像の全画素について第1、又は第2の色条件を満たすか否かを判断して、赤色矩形領域BR、緑色矩形領域BGを抽出する。
【0087】
なお、本実施形態では、ルックアップテーブルを参照して、撮像画像の各画素が、第1、第2の色条件を満たすか否かを判断してもよい。ルックアップテーブルを用いれば、効率よく処理を行うことができるからである。例えば、各色値(YUVのフォーマットで定義している場合にはU値、V値)に対応づけて、第1の色条件を満たすか否かを示す数値(0又は1)を設定し、各色値に対応づけて第2の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブルを用意する。
【0088】
なお、YUV値の色値で第1、第2の条件を満たすか否かを判断する場合には、Y値(輝度値)が所定Y値(所定輝度値)以上もしくは、所与の範囲以内の値であるものを取得し、取得された画素のUV値が、第1、第2の条件を満たすか否かを判断してもよい。このようにすれば、輝度が暗い色を排除することになるので、マーカーを検出する精度を上げることができる。
【0089】
なお、各色値がRGBで定義されている場合には、RGBの各値に対応づけて、第1の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブル、及び、第2の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブルを用意してもよい。また、各色値がHSVで定義されている場合にも、RGBと同じように各値に対応づけて、ルックアップテーブルを用意してもよい。
【0090】
4−2−1.矩形領域抽出処理
次に、本実施形態において、矩形領域を抽出する処理の流れについて、図9(A)〜(D)を用いて説明する。
【0091】
まず、図9(A)は、矩形領域抽出処理の概要を示すフローチャート図である。矩形領域抽出処理は、上から下の方向に1ライン毎に走査を行う。つまり、矩形領域設定制御(ステップS1)を行い、矩形領域削除制御(ステップS2)を行い、矩形領域結合制御(ステップS3)を行う。全てのラインのスキャンが終了したか否かを判断し(ステップS4)、全てのスキャンが終了していない場合は(ステップS4のno)、次のラインに移行し(ステップS5)、ステップS1に戻る。全てのスキャンが終了した場合には(ステップS4のyes)、処理を終了する。
【0092】
4−2−2.矩形領域設定制御
図9(B)は、矩形領域設定制御(ステップS1)を示すフローチャート図である。矩形領域設定制御は、ライン上の左から右の順に、ライン上の全ての各画素の処理が終了するまで、画素毎にステップ処理を行う。まず、画素の色値は赤色値域内か否かを判断する(ステップS11)。そして、画素の色値は赤色値域内である場合(ステップS11のyes)は、ステップS13に進む。一方、画素の色値は赤色値域内でない場合(ステップS11のno)、画素の色値は緑色値域内であるか否かを判断する(ステップS12)。そして、画素の色値は緑色値域内である場合(ステップS12のyes)は、ステップS13に進み、画素の色値は緑色値域内でない場合(ステップS12のno)、ステップS16に進む。
【0093】
そして、いずれかの矩形領域と同色かつ隣接しているか否かを判断する(ステップS13)。ここで、ステップS13において、いずれかの矩形領域と隣接しているとは、X軸方向、Y軸方向において画素が矩形領域の一部に接している場合や、X軸方向、Y軸方向において画素が矩形領域と1画素分ずれて位置する場合(微差)も含む。
【0094】
そして、いずれかの矩形領域と同色かつ隣接している場合には(ステップS13のyes)、矩形領域を拡張する(ステップS14)。つまり、Nライン目とN+1ライン目が隣接している場合には、高さ方向(Y軸方向)に1画素分矩形領域を広げる処理を行い、ライン方向(X軸方向)に隣接している場合には、画素と隣接する矩形領域とを外接するように、ライン方向に1画素分矩形領域を広げる処理を行う。
【0095】
例えば、図10(A)に示すように、Nライン目で生成された緑色領域を含む矩形領域BG1を設定し、図10(B)に示すように、N+1ライン目の各画素がスキャンされBG2が設定されると、結果的に、矩形領域BG1はX軸方向(左方向、右方向に1画素)広げるように調整されるとともに、Y軸方向(高さ方向)に1画素広げるように調整され、図10(C)に示すように矩形領域BG3に拡張される。
【0096】
一方、いずれかの矩形領域と同色かつ隣接していない場合には(ステップS13のno)、新しい矩形領域を設定する(ステップS15)。つまり、スキャン中の画素に外接する新たな矩形領域を設定する。
【0097】
そして、ライン上の全ての画素のスキャンが終了したか否かを判断し(ステップS16)、ライン上の全ての画素のスキャンが終了していない場合(ステップS16のno)、次の画素を処理対象として(ステップS17)、ステップS11に戻る。一方、画素ライン上の全ての画素のスキャンが終了した場合には(ステップS16のyes)、処理を終了する。
【0098】
4−2−3.矩形領域削除制御
図9(C)は、矩形領域削除制御の処理(ステップS2)の流れを示すフローチャート図である。矩形領域削除制御は、所定の大きさ(例えば、1画素、2画素分)の矩形領域はゴミとして扱うことにより、ノイズを削減してより精度よくマーカーを検出させるために行う。
【0099】
まず、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在するか否かを判断する(ステップS21)。そして、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在しない場合(ステップS21のno)は、矩形領域が所定の大きさよりも小さいか否かを判断する(ステップS22)。矩形領域が所定の大きさよりも小さい場合(ステップS22のyes)、当該矩形領域をゴミとして削除する処理を行う(ステップS23)。一方、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在する場合(ステップS21のyes)、矩形領域が所定の大きさよりも小さくない場合(ステップS22のno)は、ステップS24に進む。
【0100】
そして、全ての矩形領域について処理が終了したか否かを判断し(ステップS24)、全ての矩形領域について処理が終了していない場合には(ステップS24のno)、次の矩形領域を処理対象とし(ステップS25)、ステップS21に戻る。一方、全ての矩形領域について処理が終了した場合には(ステップS24のyes)、処理を終了する。
【0101】
4−2−4.矩形領域結合制御
図9(D)は、矩形領域結合制御(ステップS3)の処理の流れを示すフローチャート図である。矩形領域結合制御は、ライン上に設定された矩形領域において、ライン間で隣接する矩形領域を結合する処理を行うものである。
【0102】
まず、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係にあるか否かを判断する(ステップS31)。
【0103】
そして、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係にある場合(ステップS31のyes)、第Nの矩形領域が、第Mの矩形領域と結合する(ステップS32)。つまり、2つの矩形領域を1つの矩形領域とする。
【0104】
一方、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係ではない場合には(ステップS31のno)、ライン上の全ての矩形領域について処理が終了したか否かを判断し(ステップS33)、処理が終了していない場合には(ステップS33のno)、次の矩形領域(ステップS34)を処理対象としてステップS31に戻る。
【0105】
例えば、図10(A)に示すように、ラインNにおいて矩形領域BG1が設定され、図10(B)に示すようにラインN+1において矩形領域BG2が設定されると、ラインNの矩形領域BG1とラインN+1の矩形領域BG2は隣接又は重なりの関係にあるので、図10(C)に示すように、矩形領域BG1と矩形領域BG2を結合し新たに矩形領域BG3が設定される。
【0106】
そして、図10(D)に示すように、ラインN+2において、矩形領域BG4が設定されると、図10(E)に示すように、矩形領域BG3と矩形領域BG4とを結合した新たな矩形領域BG5が設定される。
【0107】
なお、隣接している関係とは、例えば、図20(A)の矩形領域a、矩形領域bに示すように2つの矩形領域の画素の少なくとも一部が隣接している場合のことをいう。かかる場合には、矩形領域a、矩形領域bを結合して、図20(B)に示すように新たな矩形領域BG6が設定される。また、重なりの関係とは、図20(B)の、矩形領域BG6と矩形領域cに示すように、2つの矩形領域の少なくとも一部の面(領域)が重なっている場合のことをいう。かかる場合には、矩形領域BG6と矩形領域cとが結合され、図20(C)に示すように、新たな矩形領域BG7が設定される。
【0108】
5.マーカー検出処理の詳細な説明
5−1.内包関係に基づくマーカー判定
本実施形態の端末10は、端末10は、赤色矩形領域BR、緑色矩形領域BGのうちいずれか一方が他方を内包する関係にある場合に、マーカーがあると判定する処理を行う。
【0109】
例えば、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包するか否かを判断し、緑色矩形領域BGが赤色矩形領域BRを内包する場合に、第1のマーカーM1があると判定する。
【0110】
具体的に説明すると、図11(A)に示すように、緑色矩形領域BG1の各頂点P1〜P4の座標値(X,Y)と、図11(B)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4の座標値(X,Y)とを比較することによって、緑色矩形領域BG1が赤色矩形領域BR1を内包するか否かを判断する。
【0111】
例えば、赤色矩形領域BR1の各頂点Q1〜Q4が、緑色矩形領域BG1の各頂点P1〜P4内に位置するか否かを判断する。つまり、図11(C)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4が、緑色矩形領域BG1の各頂点P1〜P4内に位置する場合には、緑色矩形領域BG1が、赤色矩形領域BR1を内包するので、第1のマーカーM1があると判定する。
【0112】
一方、赤色矩形領域BR1の各頂点Q1〜Q4のうち1以上の頂点が、緑色矩形領域BG1の各頂点P1〜P4の外に位置する場合には、緑色矩形領域BG1が、赤色矩形領域BR1を内包しないと判断する。
【0113】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包するか否かを判断し、赤色矩形領域BRが緑色矩形領域BGを内包する場合に、第2のマーカーM2があると判定する。
【0114】
具体的に説明すると、図12(A)に示すように、緑色矩形領域BG2の各頂点P5〜P8の座標値(X,Y)と、図12(B)に示すように、赤色矩形領域BR2の各頂点Q5〜Q8の座標値(X,Y)とを比較することによって、赤色矩形領域BR2が緑色矩形領域BG2を内包するか否かを判断する。
【0115】
例えば、緑色矩形領域BG2の各頂点P5〜P8が、赤色矩形領域BG2の各頂点Q5〜Q8内に位置するか否かを判断する。つまり、図12(C)に示すように、緑色矩形領域BG2の各頂点P5〜P8が、赤色矩形領域BR2の各頂点Q5〜Q8内に位置する場合には、赤色矩形領域BR2が緑色矩形領域BG2を内包するので、第2のマーカーM2があると判定する。
【0116】
5−2.中心位置に基づくマーカー判定
また、本実施形態の端末10は、より精度を上げてマーカーを検出するために、赤色矩形領域BRの中心位置と緑色矩形領域BGの中心位置との距離が所定距離以内(所定画素数以内)であるか否かを判断し、赤色矩形領域BRの中心位置と緑色矩形領域BGの中心位置との距離が所定距離以内である場合に、マーカーがあると判定する処理を行う。
【0117】
例えば、図11(A)に示すように、緑色矩形領域BG1の各頂点P1〜P4に基づいて、緑色矩形領域BG1の中心位置K1を求める。そして、図11(B)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4に基づいて、赤色矩形領域BR1の中心位置L1を求める。そして、図11(C)に示すように、緑色矩形領域BG1の中心位置K1と赤色矩形領域BR1の中心位置L1との距離が所定距離以内(所定画素数以内)である場合に、マーカーM1があると判定する。言い換えると、赤色矩形領域BR1の中心位置L1と、緑色矩形領域BG1の中心位置K1との距離が所定距離以上である場合には、第1のマークであると判定しない。
【0118】
また、図12(A)に示すように、緑色矩形領域BG2の各頂点P5〜P8に基づいて、緑色矩形領域BG2の中心位置K2を求める。そして、図12(B)に示すように、赤色矩形領域BR2の各頂点Q5〜Q8に基づいて、赤色矩形領域BR2の中心位置L2を求める。そして、図12(C)に示すように、緑色矩形領域BG2の中心位置K2と、赤色矩形領域BR2の中心位置L2との距離が所定距離以内(所定画素数以内)である場合に、マーカーM2があると判定する。言い換えると、緑色矩形領域BG2の中心位置K2と、赤色矩形領域BR2の中心位置L2との距離が所定距離以上である場合には、第2のマークであると判定しない。
【0119】
5−3.本実施形態のマーカー判定の効果
このように、端末10は、赤色矩形領域BR、緑色矩形領域BGとが一方が他方を内包する位置関係であること、及び、赤色矩形領域BR、緑色矩形領域BGの各中心位置が所定距離以内(所定画素数以内)あることを条件にマーカーがあるか否かを判定することによって、より精度を上げてマーカーを検出することができる。
【0120】
図13は、現実世界において、机上にマーカー表示体20と、赤色鉛筆、消しゴム(緑色の包装紙で一部が包装されている消しゴム)の例を示す。例えば、端末10の撮像部150が位置C1においてV1方向に撮像した場合、位置C2においてV2方向に撮像した場合、位置C3においてV3方向に撮像した場合のいずれの場合においても、マーカーM1、M2を検出することができる。
【0121】
例えば、図14(A)は、端末10の撮像部150が位置C1においてV1方向に撮像した場合の撮像画像G1上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。図14(A)では、赤色矩形領域BR、緑色矩形領域BGとが一方が他方を内包していること、及び、及び、赤色矩形領域BR、緑色矩形領域BGの各中心位置が所定距離以内(所定画素数以内)あることを条件にマーカーM1、M2を判定しているので、正確にマーカー表示体のマーカーM1、M2を検出することができる。つまり、赤色鉛筆の赤色矩形領域BRや、消しゴムの包装紙の緑色から抽出される緑色矩形領域BGは、マーカーとして検出しないようにすることができる。
【0122】
また、図14(B)は、端末10の撮像部150が位置C2においてV2方向に撮像した場合の撮像画像G2上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーM1、M2を検出することができる。
【0123】
また、図14(C)は、端末10の撮像部150が位置C3においてV3方向に撮像した場合の撮像画像G3上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーM1、M2を検出することができる。また、撮像部150の撮像方向が、マーカー表示体20を斜めに見下ろす方向で撮像した結果、撮像画像G3においてマーカーM1、M2が潰れたように見える場合であっても、赤色矩形領域BR、緑色矩形領域BGを抽出することができる。
【0124】
また、図3(A)(B)に示すように、マーカー表示体20のマーカーM1、M2は、同一の中心点をもち、径の長さが異なる2つの円によって構成され、内径の円を赤又は緑、外径の円のうち内径の円を除いた部分を緑又は赤で配色しているので、図14(A)、(B)、(C)のように、撮像する方向を変えてもマーカーM1、M2を検出することができる。
【0125】
5−4.マーカー判定の他の例
5−4−1.矩形領域の縦・横の比率に基づくマーカー判定
なお、端末10は、赤色矩形領域BR、緑色矩形領域BGとの縦・横(X軸方向の長さ、Y軸方向の長さ)の長さの比率(割合)に基づいて、マーカーがあるか否かを判定してもよい。
【0126】
例えば、緑色矩形領域BGの縦の長さと赤色矩形領域BRの縦の長さとの比率、及び、緑色矩形領域BGの横の長さと赤色矩形領域BRの横の長さとの比率の少なくとも一方が、第1の所定比率の範囲内(例えば、1.75:1〜2.25:1)である場合には、第1のマーカーM1があると判定する。
【0127】
図11(C)の例では、P4−P3の長さ(緑色矩形領域BG1の縦の長さ)と、Q4−Q3の長さ(赤色矩形領域BR1の縦の長さ)との比率が2対1であるので、第1のマーカーM1があると判定する。同様に、P4−P1の長さ(緑色矩形領域BG1の横の長さ)と、Q4−Q1の長さ(赤色矩形領域BR1の横の長さ)との比率も2対1であるので、第1のマーカーM1があると判定することができる。
【0128】
また、緑色矩形領域BGの縦の長さと赤色矩形領域BRの縦の長さとの比率、及び、緑色矩形領域BGの横の長さと赤色矩形領域BRの横の長さとの比率の少なくとも一方が、第2の所定比率の範囲内(例えば、1:1.75〜1:2.25)である場合には、第2のマーカーM2があると判定する。
【0129】
図12(C)の例では、P8−P7の長さ(緑色矩形領域BG2の縦の長さ)と、Q8−Q7の長さ(赤色矩形領域BR2の縦の長さ)との比率が1対2であるので、第2のマーカーM2があると判定する。同様に、P8−P5の長さ(緑色矩形領域BG2の横の長さ)と、Q8−Q5の長さ(赤色矩形領域BR2の横の長さ)との比率が1対2であるので、第2のマーカーM2があると判定する。
【0130】
5−4−2.矩形領域の各頂点の距離比に基づくマーカー判定
また、端末10は、赤色矩形領域BR、緑色矩形領域BGとの各頂点のX軸方向の距離比、Y軸方向の距離比に基づいて、マーカーがあるか否かを判定してもよい。
【0131】
例えば、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包する位置関係である場合には、赤色矩形領域BR、緑色矩形領域BGとの各頂点間のX軸方向及びY軸方向の距離を求め、X軸方向の距離比、及び、Y軸方向の距離比の少なくとも一方が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)である場合に、第1のマーカーM1があると判定する。
【0132】
図11(C)の例では、X軸のP3−Q3間の長さA1、X軸のQ3−Q2間の長さA2、X軸のQ2−P2間の長さA3との比率が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)であるので、第1のマーカーM1があると判定する。また、Y軸のP4−Q4間の長さB1、Y軸のQ4−Q3の長さB2、Y軸のQ3−P3の長さB3の比率が所定距離比率の範囲内であるので、第1のマーカーM1がある判定する。
【0133】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包する位置関係である場合には、赤色矩形領域BR、緑色矩形領域BGとの各頂点間のX軸方向及びY軸方向の距離を求め、X軸方向の距離比、及び、Y軸方向の距離比の少なくとも一方が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)である場合に、第2のマーカーM2があると判定する。
【0134】
図12(C)の例では、X軸のQ7−P7間の長さa1、X軸のP7−P6間の長さa2、X軸のP6−Q6間の長さa3との比率が所定距離比率の範囲内であるので、第2のマーカーM2があると判定する。また、Y軸のQ8−P8間の長さb1、Y軸のP8−P7の長さb2、Y軸のP7−Q7の長さb3の比率が所定距離比率の範囲内であるので、第2のマーカーM2があると判定する。
【0135】
5−4−3.矩形領域の面積比に基づくマーカー判定
また、端末10は、赤色矩形領域BR、緑色矩形領域BGとの面積の比率(面積比、面積の割合)、又は所定の面積比率の範囲に基づいて、マーカーがあるか否かを判定してもよい。
【0136】
例えば、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比(例えば、4対1)、又は第1の所定面積比率の範囲内(例えば、4:1〜5:1)である場合には第1のマーカーM1があると判定し、一方、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比、又は第1の所定面積比率の範囲内でない場合には、第1のマーカーM1がないと判定する。
【0137】
また、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比(例えば、1対4)、又は第2の所定面積比率の範囲内(例えば、1:4〜1:5)である場合には第2のマーカーM2があると判定し、一方、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比、又は第2の所定面積比率の範囲内でない場合には、第2のマーカーM2がないと判定する。
【0138】
5−4−4.マーカー判定についての組み合わせの応用例
つまり、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包する位置関係である場合には、(ア)緑色矩形領域の中心位置と赤色矩形領域の中心位置との距離が所定距離以内(所定画素数以内)であること、(イ)緑色矩形領域BGの縦・横の長さと赤色矩形領域BRの縦・横の長さとの比率が第1の所定比率の範囲内であること(ウ)緑色矩形領域、赤色矩形領域のX軸、Y軸の各頂点間の距離比が所定距離比率の範囲内であること(エ)緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比又は第1の所定面積比率の範囲内であることの、少なくとも1つの条件を満たす場合に、第1のマーカーM1があると判定する。なお、(ア)〜(エ)の条件を全て満足すれば、より精度よく第1のマーカーM1を検出することができる。
【0139】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包する位置関係である場合には、(カ)緑色矩形領域の中心位置と、赤色矩形領域の中心位置との距離が所定距離以内(所定画素数以内)であること(キ)緑色矩形領域BGの縦・横の長さと赤色矩形領域BRの縦・横の長さとの比率が第2の所定比率の範囲内であること(ク)緑色矩形領域、赤色矩形領域のX軸、Y軸の各頂点間の距離比が所定距離比率の範囲内であること(ケ)緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比又は第2の所定面積比率の範囲内であることの、少なくとも1つの条件を満たす場合に、第2のマーカーM2があると判定する。なお、(カ)〜(ケ)の条件を全て満足すれば、より精度よく第1のマーカーM2を検出することができる。
【0140】
6.コード認識処理の詳細な説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、コード情報を認識する処理(コード情報を取得する処理)を行う。特に、本実施形態の端末10は、予め定められた所定数の第1のマーカーM1と、所定数の第2のマーカーM2があると判定された場合に、コード情報を認識する処理を行う。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、コード情報を認識する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が2つ以下或いは4つ以上である場合には、コード情報を認識する処理を行わない。
【0141】
まず、図15(A)に示すように、1つの第1のマーカーM1、及び3つの第2のマーカーM2が検出されると、第1のマーカーM1のマーカーの位置PM1と、第2のマーカーM2の位置PM2−1、PM2−2、PM2−3それぞれに識別番号を付与する。
【0142】
例えば、図15(B)に示すように、第1のマーカーM1の位置PM1は1つしかないので、一意に定めることができる。したがって、まず、第1のマーカーM1の位置PM1に識別番号「0」を付与する。そして、3つの第2のマーカーの位置PM2−1、PM2−2、PM2−3に、位置PM1を基点に左回り(反時計回り)の順で「1」、「2」、「3」を付与する。例えば、位置PM1と、位置PM2−1、PM2−2、PM2−3とを相互に線を結び、各線が交差関係にあるか否か、各線が平行関係にあるか否かに基づいて、3つの第2のマーカーの位置PM2−1、PM2−2、PM2−3に、位置PM1を基点に左回り(反時計回り)の順で「1」、「2」、「3」を付与する。
【0143】
このように、各位置PM1、PM2−1、PM2−2、PM2−3に識別番号を付与することによって、現実の空間におけるマーカー表示体の四角形の配置方向を特定することができる。
【0144】
そして、端末10は、図15(C)に示すように、第1のマーカーM1の位置PM1と、第2のマーカーM2の各位置PM2−1、PM2−2、PM2−3とに基づいて、撮像画像上の領域A0〜A8を特定し、各領域A0〜A8の輝度値(色値でもよい)に基づいて、1(白)又は0(黒)に2値化し、各領域A0〜A8の値(0又は1)を取得する。つまり、コード情報である8ビットの各位の値を、各領域A0〜A8から取得する。なお、領域A0はパリティビットとして用い、エラー検出処理を行う。
【0145】
なお、端末10は、位置PM1と、位置PM2−1、PM2−2、PM2−3の識別番号が付されているので、コード情報の向きを決定することができ、適確に領域A0〜A8を特定し、コード情報の8ビットの各位の値を取得することができる。
【0146】
このようにして、コード情報が認識されると、例えば、コード情報に基づいて拡張現実画像を生成する処理、情報を提示する命令を実行する処理などを行うことができる。
【0147】
7.拡張現実画像を生成する処理の詳細な説明
7−1.拡張現実画像の説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、撮像画像と仮想画像とを重畳して拡張現実画像を生成する処理を行う。ここで、拡張現実とは、Augmented Reality(AR)であり、現実環境にコンピュータ(端末)を用いて情報を付加提示する技術、および情報を付加提示された環境そのものを示す。
【0148】
例えば、図16(A)に示すように、撮像部150によって、端末10の画面上に、撮像画像が表示されていたとする。すると、本実施形態では、図16(B)に示すように、この撮像画像と、キャラクタ(オブジェクトの一例)を含む仮想画像とを合成(重畳)して拡張現実画像を生成する。このようにすれば、図16(C)に示すように、現実世界にキャラクタは存在しないが、撮像部150を通して、仮想的なオブジェクトがいるかのような拡張現実画像を提供することができる。
【0149】
7−2.マーカー検出処理に基づいて表示制御を行う処理
本実施形態の端末10は、予め定められた所定数の第1のマーカーM1と、所定数の第2のマーカーM2があると判定された場合に、拡張現実画像を生成する処理を行う。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、図16(C)に示すような拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が2つ以下或いは4つ以上である場合には、拡張現実画像を生成する処理を行わずに、図16(A)に示すような撮像画像を表示する処理を行う。
【0150】
なお、本実施形態では、所定周期(例えば、描画フレームレート、1/60秒周期)で、マーカー検出処理を行うので、リアルタイムに拡張現実画像を生成することができる。
【0151】
7−3.コード認識処理に基づいて表示制御を行う処理
また、本実施形態では、少なくとも一つのマーカーが検出されてコード情報を認識した場合には、当該コード情報に基づいて、拡張現実画像を生成するか否かを決定するようにしてもよい。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、コード情報を認識する。そして、コード情報を認識した場合には、コード情報に基づいて拡張現実画像を生成して、表示部に表示させる。一方、コード情報を認識できない場合には、撮像画像を表示させる。
【0152】
また、本実施形態では、図6(B)(C)に示すように、複数種類のコード情報が予め用意されている。したがって、コード情報に基づいて、拡張現実画像を生成するようにしてもよい。
【0153】
例えば、図6(B)に基づくコード情報を取得した場合には、第1のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。一方、図6(C)に基づくコード情報を取得した場合には、第2のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。このようにすれば、コード情報の種類に応じて、様々な拡張現実画像を生成することができる。
【0154】
7−4.仮想画像の生成
なお、本実施形態において拡張現実画像に用いられる仮想画像は、2次元画像でもよいし、3次元仮想空間(ワールド座標系)に配置された仮想カメラから見える3次元画像であってもよい。
【0155】
なお、本実施形態では、複数のマーカーの各位置(位置PM1、PM2−1、PM2−2、PM2−3)に基づいて3次元仮想空間におけるオブジェクトの配置位置、仮想カメラ位置、向き、画角の少なくとも1つを決めて、当該3次元仮想空間において当該仮想カメラから見える仮想画像を生成するようにしてもよい。このようにすれば、より自然な拡張現実画像を生成することができる。
【0156】
8.本実施形態の処理の流れ
図17を用いて、本実施形態の処理の流れを説明する。まず、撮像部150によって撮像された撮像画像を撮像画像記憶部173に記憶させる処理を行う(ステップS41)。次に、撮像画像上の赤色矩形領域と、緑色矩形領域とを抽出する処理を行う(ステップS42)。次に、赤色矩形領域と、緑色矩形領域との位置関係に基づいて、第1のマークM1と第2のマークM2とを検出する処理を行う(ステップS43)。
【0157】
次に、第1のマークM1が1つ、且つ、第2のマークM2が3つ検出されたか否かを判断する(ステップS44)。第1のマークM1が1つ、且つ、第2のマークM2が3つ検出された場合には(ステップS44のY)、コード情報認識処理(ステップS45)を行う。一方、第1のマークM1が1つ、且つ、第2のマークM2が3つ検出されなかった場合には(ステップS44のN)、撮像画像を表示部に表示させる処理を行い(ステップS49)処理を終了する。
【0158】
そして、コード情報認識処理(ステップS45)の後、コード情報に基づいて、オブジェクトを決定する処理を行う(ステップS46)。そして、撮像画像と、決定されたオブジェクトを含む仮想画像とを合成して、拡張現実画像を生成する処理を行う(ステップS47)。そして、拡張現実画像を表示部に表示させる処理を行う(ステップS48)。以上で処理が終了する。
【0159】
9.応用例
9−1.マーカー表示体の応用例
図18(A)に示すように、本実施形態のマーカー表示体20は、複数のマーカーを、三角形の隅(コーナー)に配置して形成されるものであってもよい。例えば、図18(A)のように、1つは第1のマーカーM1とし、残り2つを第2のマーカーM2とし、正三角形の隅に配置してもよい。
【0160】
また、図18(B)に示すように、本実施形態のマーカー表示体20は、四角形の各隅のうち、3つの隅にマーカーを配置して形成するものであってもよい。例えば、1つは第1のマーカーM1とし、残り2つを第2のマーカーM2とし、各マーカーM1、M2を正四角形の隅に配置してもよい。
【0161】
また、図18(C)に示すように、本実施形態のマーカー表示体20は、五角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図18(C)のように、1つは第1のマーカーM1とし、残り4つを第2のマーカーM2とし、各マーカーM1、M2を正五角形の隅に配置してもよい。
【0162】
また、図18(D)に示すように、本実施形態のマーカー表示体20は、六角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図18(D)のように、1つは第1のマーカーM1とし、残り5つを第2のマーカーM2とし、各マーカーM1、M2を正六角形の隅に配置してもよい。
【0163】
また、本実施形態のマーカー表示体20は、正多角形の各隅のうち、1つの隅はマーカーM1を配置し、残りの各隅はマーカーM2を配置するようにしてもよい。多くのマーカーが配置されることにより、正確な情報を入手しやすくなるからである。
【0164】
なお、本実施形態では、マーカー表示体にあわせて、検出するマーカーの数を定義してもよい。つまり、マーカー表示体にあわせて、コード情報を認識するための条件、拡張現実画像を生成する条件となる、第1のマーカーM1の数と、第2のマーカーM2の数を決める。
【0165】
例えば、図18(A)(B)の場合には、端末10は、「1つ」の第1のマーカーM1と、「2つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が1つ或いは3つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0166】
同様に、図18(C)の場合には、端末10は、「1つ」の第1のマーカーM1と、「4つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が3つ以下或いは5つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0167】
同様に、図18(D)の場合には、端末10は、「1つ」の第1のマーカーM1と、「5つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が4つ以下或いは6つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0168】
9−2.拡張現実画像の応用例
本実施形態では、図19に示すように、端末10は、少なくとも一つのマーカーが検出されてコード情報を認識した場合(例えば、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定されて、コード情報を認識した場合)には、そのコード情報に対応する付加情報(「店名」、「URL」、「電話番号」、「店の評価情報」などの店舗情報)を含む仮想画像と、撮像画像とを合成して拡張現実画像を生成するようにしてもよい。
【0169】
なお、端末10は、コード情報を認識した場合には、コード情報をネットワークを介してサーバに送信し、サーバから当該コード情報に対応する付加情報(「店名」、「URL」、「電話番号」、「店の評価情報」などの店舗情報)を受信し、撮像画像と受信した付加情報を示す仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【0170】
9−3.コード情報の応用例
また、コード情報は、オブジェクト、付加情報の他に、仮想動画、文字(文章)、音声などに対応付けられており、端末10は、認識したコード情報に基づいて、コード情報に対応付けられている仮想動画の再生処理、文字の表示処理、音声の再生処理を行うようにしてもよい。
【0171】
また、本実施形態では、コード情報をマーカー表示体20の各マーカーMに取り囲まれる範囲内に記載する例について説明したが、コード情報をマーカー表示体20の所与の範囲に記載したものであってもよい。例えば、コード情報をマーカー表示体20の各マーカーMにより取り囲まれる範囲外に記載してもよい。
【0172】
10.サーバ
本実施形態では、図21に示すように、クライアント・サーバ方式のネットワークシステムにおけるサーバ20において、マーカー検出処理に適用してもよい。つまり、サーバ20が、端末10で行う処理(例えば、処理部100の少なくとも1つの処理)を行うようにしてもよい。
【0173】
例えば、サーバ20は、図21に示すように、ネットワーク(例えば、インターネット)を介して複数の端末10(10A〜10C)と接続され、サーバ20が、端末10から撮像画像(撮像画像データ)を受信する。
【0174】
そして、例えば、サーバ20は、受信した撮像画像に基づいてマーカーがあるか否かを判定する処理を行う。具体的に説明すると、サーバ20は、第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、受信した撮像画像から抽出する処理を行い、第1の矩形領域と第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、サーバ20は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【0175】
また、サーバ20は、処理結果を端末10に送信してもよい。処理結果とは、撮像画像に基づいて得られる情報等である。例えば、サーバ20は、撮像画像に基づきマーカーがあるか否かを判定した判定結果(マーカーの有無)、コード情報、コード情報に基づいて決定されるオブジェクトの情報、拡張現実画像の少なくとも1つを、処理結果として端末10に送信するようにしてもよい。
【0176】
例えば、サーバ20は、マーカーがあると判断された場合は1を、マーカーが無いと判断された場合には0を判定結果として端末10に送信する処理を行う。
【0177】
また、サーバ20は、検出した各マーカーの位置関係に基づいて、撮像画像からコード情報を認識するコード情報認識処理を行い、コード情報を端末10に送信する処理を行ってもよい。また、サーバ20は、コード情報に基づいてオブジェクトを決定し、決定されたオブジェクトの情報を端末10に送信するようにしてもよい。
【0178】
また、サーバ20は、撮像画像と決定されたオブジェクトを含む仮想画像とを合成した拡張現実画像を生成し、生成された拡張現実画像を端末10に送信する処理を行うようにしてもよい。
【0179】
なお、端末10は、撮像部150において撮像された画像や記憶部170(或いは情報記憶媒体180)に記憶されている撮像画像をサーバ20に送信する処理を行い、サーバ20から処理結果を受信する処理を行う。そして、端末10は、受信した処理結果に基づいて、所与の処理を行う。
【符号の説明】
【0180】
10 端末、20 マーカー表示体、
M マーカー、M1 第1のマーカー、M2 第2のマーカー、
100 処理部、110 矩形領域抽出部、111 マーカー判定部、
112 コード認識処理部、120 描画部、130 音処理部、
170 記憶部、171 主記憶部、172 画像バッファ、173 撮像画像記憶部、
150 撮像部、160 入力部、162 検出部、
180 情報記憶媒体、190 表示部、
192 音出力部、196 通信部
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体、端末、サーバ、及びマーカー表示体に関する。
【背景技術】
【0002】
従来から、所定のフォーマット情報に基づいて生成された2次元コードなどをカメラで撮像し、撮像画像からコードを認識する技術が存在する。しかし、従来技術は、直線成分検出処理や交差ラインの検出処理等が必要であり、この検出処理は非常に処理負荷が高い。また、特許文献1に記載されるようなカラーマークを検出する処理では、本来マークではない色も検出してしまうことがあり、マークを誤判定してしまうことがある。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2002−269561号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、処理負荷を軽減し、マーカーをより正確に検出することが可能なプログラム、情報記憶媒体、端末、サーバ及びマーカー表示体を提供することにある。
【課題を解決するための手段】
【0005】
(1)本発明は、撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、前記マーカー判定部が、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定するプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する端末に関係する。
【0006】
本発明によれば、第1、第2の矩形領域を抽出し、第1、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定するので従来よりも処理負荷を軽減させて、マーカーを検出することができる。また、本発明によれば、第1、第2の色条件に基づいて矩形領域を抽出するので、濃淡や輝度値(白、黒、グレーなど)に基づいてマーカーを検出する場合に比べて、精度を上げてマーカーを検出することができる。さらに、本発明によれば、2つの色条件を用いてマーカーがあるか否かを判定するので、1つの色条件のみを判定する場合に比べて、精度よくマーカーを検出することができる。
【0007】
(2)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うようにしてもよい。本発明によれば、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定するので、精度を上げてマーカーがあるか否かを判定することができる。
【0008】
(3)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定するようにしてもよい。本発明によれば、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するので、より正確にマーカーがあるか否かを判定することができる。
【0009】
(4)また、本発明のプログラム、情報記憶媒体及び端末は、前記矩形領域抽出部が、画素の色値が、第1の色値を含む第1の色値域内である場合に前記第1の色条件を満たすと判断し、画素の色値が、第2の色値を含む第2の色値域内である場合に前記第2の色条件を満たすと判断するようにしてもよい。本発明によれば、第1、第2の矩形領域が抽出しやすくなる。
【0010】
(5)また、本発明のプログラム、情報記憶媒体及び端末は、当該第1の色値と、当該第2の色値とは補色の関係にあるようにしてもよい。つまり、第1の色値と、第2の色値とは補色の関係にあれば、第1、第2の矩形領域が抽出しやすくなり、精度を上げてマーカーを検出することができる。
【0011】
(6)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、複数の前記マーカーがあるか否かを判定するようにしてもよい。
【0012】
(7)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させるようにしてもよい。本発明によれば、マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行うことができる。
【0013】
(8)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、前記コード認識処理部が、前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うようにしてもよい。
【0014】
本発明によれば、マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、第1のマーカーと各第2のマーカーとの位置関係に基づいて、コード情報を認識する処理を行うので、より正しい環境下で、コード情報を認識させるようにすることができる。
【0015】
(9)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させるようにしてもよい。本発明によれば、複数のマーカーが検出された場合に、拡張現実画像を生成することができる。
【0016】
(10)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部が、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、前記描画部が、前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うようにしてもよい。本発明によれば、マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行うので、より正しい環境下で、拡張現実画像を提供することができる。
【0017】
(11)また、本発明のプログラム、情報記憶媒体及び端末は、前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、前記描画部が、前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。本発明によれば、コード情報に基づいて仮想画像を生成する処理を行うので、コード情報に応じた仮想画像と撮像画像とを合成した拡張現実画像を生成することができる。
【0018】
(12)本発明は、少なくとも一つのマーカーを検出する処理を行うサーバであって、ネットワークを介して端末から、撮像画像を受信する通信制御部と、第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、前記マーカー判定部が、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、前記通信制御部が、前記端末に処理結果を送信するサーバに関する。
【0019】
(13)本発明は、端末によって検出される複数のマーカーからなるマーカー表示体であって、同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーを複数所定間隔をおいて配置し、前記複数のマーカーのうち1つのマーカーの内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、残りの各マーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色しているマーカー表示体に関する。
【0020】
本発明によれば、同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーが配置され、そのマーカーは、内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色されているか、あるいは、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色されている。したがって、いずれの方向からでも第1、第2の色を考慮したマーカーを検出させることが可能なマーカー表示体を提供できる。つまり、1色のマーカーよりも精度よく検出され得るマーカーを配置したマーカー表示体を提供できる。なお、マーカー表示体は、2次元の表示体でもよいし、3次元の表示体でもよい。
【0021】
(14)また、本発明のマーカー表示体は、前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって複数のマーカーが検出された際に、コード情報を認識させるようなマーカー表示体を提供できる。
【0022】
(15)また、本発明のマーカー表示体は、前記第1の色は赤色、前記第2の色は緑色であることを特徴とするマーカー表示体であってもよい。本発明によれば、端末によって検出しやすいマーカーが配置されたマーカー表示体を提供できる。
【図面の簡単な説明】
【0023】
【図1】図1は、本実施形態の端末の機能ブロック図の一例。
【図2】図2(A)、(B)は、本実施形態の端末の一例。
【図3】図3(A)、(B)は、本実施形態の端末の一例。
【図4】図4は、マーカー表示体の一例。
【図5】図5(A)、(B)は、マーカーの説明図。
【図6】図6(A)、(B)、(C)は、コード情報の説明図。
【図7】図7は、第1の矩形領域の説明図。
【図8】図8は、第2の矩形領域の説明図。
【図9(A)】図9(A)は、矩形領域抽出処理のフローチャート図。
【図9(B)】図9(B)は、矩形領域抽出処理のフローチャート図。
【図9(C)】図9(C)は、矩形領域抽出処理のフローチャート図。
【図9(D)】図9(D)は、矩形領域抽出処理のフローチャート図。
【図10】図10(A)〜(D)は、矩形領域抽出処理の説明図。
【図11】図11(A)(B)(C)は、第1、第2の矩形領域の位置関係の説明図。
【図12】図12(A)(B)(C)は、第1、第2の矩形領域の位置関係の説明図。
【図13】図13は、マーカー表示体を撮像する状況の説明図。
【図14(A)】図14(A)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図14(B)】図14(B)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図14(C)】図14(C)は、マーカー表示体を撮像した撮像画像から第1、第2の矩形領域を抽出する処理を説明するための説明図。
【図15】図15(A)、(B)、(C)は、マーカーの位置関係に基づいてコード情報を認識する例を説明するための説明図。
【図16(A)】図16(A)は、撮像画像の説明図。
【図16(B)】図16(B)は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図16(C)】図16(C)は、拡張現実画像の説明図。
【図17】図17は、本実施形態のフローチャート図。
【図18】図18(A)、(B)、(C)、(D)、(E)は、マーカー表示体の応用例。
【図19】図19は、撮像画像と仮想画像とを合成して拡張現実画像を生成する例を説明するための説明図。
【図20】図20(A)(B)(C)は、隣接、重なり関係の説明図。
【図21】図21は、ネットワークシステムの説明図。
【発明を実施するための形態】
【0024】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0025】
1.構成
図1に本実施形態の端末(コンピュータ、ゲーム装置、携帯電話、スマートフォン、携帯端末、携帯型ゲーム装置、画像生成装置)の機能ブロック図の例を示す。なお本実施形態の端末は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0026】
撮像部150は、物体から発した光をレンズなどの光学系によって撮像素子の受光平面に結像させ、その像の光による明暗を電荷の量に光電変換し、それを順次読み出して電気信号に変換する。そして、撮像部150は、RGB、YUV、HSVなどの色空間(フォーマット)で定義された色画像(入力画像)を、撮像画像記憶部173に出力する処理を行う。撮像部150は、所定の周期で(例えば、1/60秒毎に)撮像した色画像を撮像画像記憶部173に出力する処理を行う。つまり、逐次、色画像を撮像画像記憶部173に記憶させる処理を行う。
【0027】
入力部160は、プレーヤ(操作者)からの入力情報を入力するための入力機器(コントローラ)であり、プレーヤの入力情報を処理部に出力する。本実施形態の入力部160は、プレーヤの入力情報(入力信号)を検出する検出部162を備える。入力部160は、例えば、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイなどがある。また、入力部160は、振動信号に基づいて振動させる処理を行う振動部を備えていてもよい。
【0028】
また、入力部160は、3軸の加速度を検出する加速度センサや、角速度を検出するジャイロセンサ、撮像部150を備えた入力機器でもよい。例えば、入力部160は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力部160は、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られた入力機器でもよい。また入力部160は、入力機器と一体化されている端末(携帯電話、携帯端末、携帯型ゲーム装置)なども含まれる。
【0029】
記憶部170は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0030】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0031】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。
【0032】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0033】
通信部196は外部(例えば他の端末、サーバ)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0034】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部170に記憶してもよい。このようにプログラムやデータを受信して端末を機能させる場合も本発明の範囲内に含む。
【0035】
処理部100(プロセッサ)は、入力部160からの入力データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。
【0036】
この処理部100は記憶部170内の主記憶部171をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0037】
処理部100は、矩形領域抽出部110、マーカー判定部111、コード認識処理部112、描画部120、音処理部130を含む。なお、これらの一部を省略する構成としてもよい。
【0038】
矩形領域抽出部110は、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出する処理とを行う。
【0039】
ここで、矩形領域抽出部110は、画素の色値が、第1の色値を含む第1の色値域内である場合に第1の色条件を満たすと判断し、画素の色値が、第2の色値を含む第2の色値域内である場合に第2の色条件を満たすと判断する。なお、当該第1の色値と、当該第2の色値とは補色の関係であることが望ましい。例えば、第1の色値を赤の色値とし、第2の色値を緑の色値としてもよい。
【0040】
マーカー判定部111は、第1の矩形領域と第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、マーカー判定部111は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【0041】
また、マーカー判定部111は、第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、マーカーがあるか否かを判定する処理を行うようにしてもよい。つまり、マーカー判定部111は、第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、マーカーがあると判定するようにしてもよい。
【0042】
また、マーカー判定部111は、第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行う。
【0043】
コード認識処理部112は、マーカー判定部111によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、撮像画像からコード情報を認識する処理を行う。
【0044】
また、コード認識処理部112は、マーカー判定部111によって1つの第1のマーカー及び2以上の所定数(例えば、3つ)の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、コード情報を認識する処理を行う。
【0045】
描画部120は、オブジェクトをオブジェクト空間(仮想的3次元空間)に配置する処理を行う。例えば、オブジェクト配置部は、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を、オブジェクト空間に配置する処理を行う。ここでオブジェクト空間とは、仮想的なゲーム空間であり、例えば、ワールド座標系、仮想カメラ座標系のように、3次元座標(X,Y,Z)においてオブジェクトが配置される空間である。
【0046】
例えば、オブジェクト配置部は、ワールド座標系にオブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)を配置する。また、例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0047】
描画部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。言い換えると、描画部120は、オブジェクト空間において、仮想カメラから見える画像を生成する。
【0048】
例えば、描画部120は、オブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0049】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0050】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を画像バッファ172(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。すなわち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0051】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0052】
そして描画部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0053】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、記憶部170に保存される。
【0054】
テクスチャマッピングは、記憶部170に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部170からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0055】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0056】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0057】
例えば、αブレンディングでは、これから画像バッファ172に描画する描画色(上書きする色)C1と、既に画像バッファ172(レンダリングターゲット)に描画されている描画色(下地の色)C2とを、α値に基づいて線形合成処理を行う。つまり、最終的な描画色をCとすると、C=C1*α+C2*(1−α)によって求めることができる。
【0058】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0059】
特に、本実施形態の描画部120は、マーカー判定部111によって複数のマーカーがあると判定された場合に、撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う。例えば、本実施形態の描画部120は、マーカー判定部111によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、拡張現実画像を生成する処理を行う。
【0060】
また、本実施形態の描画部120は、コード認識処理部112によって認識されたコード情報に基づいて仮想画像を生成する処理を行い、撮像画像と当該仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【0061】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0062】
なお、本実施形態の端末は、1人のプレーヤのみがプレイできるシングルプレーヤモード、或いは、複数のプレーヤがプレイできるマルチプレーヤモードでゲームプレイできるように制御してもよい。例えば、マルチプレーヤモードで制御する場合には、ネットワークを介して他の端末とデータを送受信してゲーム処理を行うようにしてもよいし、1つの端末が、複数の入力部からの入力情報に基づいて処理を行うようにしてもよい。
【0063】
2.概要
本実施形態では、端末10の撮像部150によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うものである。例えば、端末10は、図2(A)(B)に示すようなゲーム装置、図3(A)(B)に示すような携帯端末(スマートフォン)などである。
【0064】
そして、本実施形態の端末10は、図4に示すようなマーカー表示体20を被写体として撮像し、マーカー表示体20で表示されるマーカーMを検出する。端末10は、所定周期(例えば、1/60秒単位)で連続して撮像を続けることが可能であり、端末10は、所定周期で、マーカーMを検出することができる。
【0065】
そして、端末10は、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像部150によって撮像された撮像画像から抽出する処理を行う。
【0066】
そして、端末10は、第1の矩形領域と、第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。つまり、端末10は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する処理を行う。このようにすれば、撮像画像から直線成分、交差成分を検出することなく、マーカーがあるか否かを判定できる。つまり、従来技術よりも処理負荷を軽減させることができる。そして、2つの色条件に基づいて抽出された第1、第2の矩形領域の位置関係に基づいてマーカーがあるか否かを判断するので、従来技術よりも精度を上げてマーカーを検出(認識)することができる。以下、詳細に本実施形態のマーカー検出処理について説明する。
【0067】
3.マーカー表示体の説明
まず、撮像部150の被写体となるマーカー表示体20について説明する。図4に示すように、マーカー表示体20は、複数のマーカーMが、所定間隔をおいて配置されている。つまり、図4の例では4個のマーカーMが、四角形(正方形)の隅(コーナー)に配置して形成される。
【0068】
そして、図5(A)(B)に示すように、マーカーMは、同一の中心点Oをもち、径の長さが異なる2つの円によって構成される。つまり、マーカーMは、点Oを中心に半径r1の円と、点Oを中心に半径r2の円で構成されている(r1<r2)。例えば、半径r2は、半径r1の倍の長さとすることができる。
【0069】
そして、本実施形態のマーカー表示体20は、配色が異なる第1のマーカーM1と、第2のマーカーM2とを配置している。すなわち、図5(A)に示すように、第1のマーカーM1は、内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、図5(B)に示すように、残りの各第2のマーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色している。
【0070】
第1の色と第2の色とは補色の関係であることが望ましい。例えば、第1の色を赤色R、第2の色を緑色Gとすることができる。補色の関係とは、色相環で正反対に位置する関係のことをいう。補色の関係は赤に対する緑だけでなく、黄に対して紫、青に対して橙などがある。
【0071】
つまり、第1のマーカーM1は、半径r1の円を赤色Rに配色すると共に、半径r2の円のうち、半径r1の円を除いた部分(リング形状部分)を緑色Gに配色する。また、第2のマーカーM2は、半径r1の円を緑色Gに配色すると共に、半径r2の円のうち、半径r1の円を除いた部分(リング形状部分)を赤色Rに配色する。
【0072】
特に、本実施形態のマーカー表示体20は、4つのマーカーMのうち、1つを第1のマーカーとし、残り3つを第2のマーカーにすることによって、端末10がマーカーを検出する際に、各マーカーMの位置関係を容易に検出できるようにしている。
【0073】
さらに、マーカー表示体20には、コード情報が示されている。例えば、図4に示すように、4つの各マーカーMに取り囲まれる範囲内に白又は黒によって示されるコード情報を表示する。
【0074】
コード情報は、数値、文字、バーコードや、絵文字、図柄とすることができる。本実施形態のコード情報を8ビットの情報とする。例えば、図6(A)に示すように、3行3列の9マスで構成された9マスのうち中心のマスを除く8つの各マス0〜7を8ビットの各位に対応づけ、1を白、0を黒で表示する。なお、中心のマスはパリティビットとして用いる。このようにして、例えば、図6(B)(C)に示すようなコード情報を表示できる。
【0075】
なお、図4の例では、紙に印刷されたマーカー表示体の例(印刷媒体)を示しているが、マーカー表示体は、物であり、例えば、2次元で表示される媒体、画像、紙、掲示板、ボードでもよいし、3次元の立体的な表示物(ボール、ビー玉、積み木、光源)でもよい。例えば、表示画像である場合は、2次元画像でもよいし、見る人にとって立体的に見える立体視画像でもよい。
【0076】
4.矩形領域を抽出する処理の詳細な説明
本実施形態では、マーカーがあるか否かを判定するために、まず、第1、第2の矩形領域を抽出する。例えば、第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、撮像画像から抽出する処理を行う。言い換えると、第1の色条件を満たす画素を検出し、検出された画素によって形成される第1の色領域を含む第1の矩形領域と、撮像画像から第2の色条件を満たす画素を検出し、検出された画素によって形成される第2の色領域を含む第2の矩形領域とを、撮像画像から抽出する処理とを行う。
【0077】
本実施形態の端末10は、撮像画像の全画素を所定の順に、赤の色条件(第1の色条件の一例)又は緑の色条件(第2の色条件の一例)を満たすか否かを判断する。そして、端末10は、赤の色条件を満たした隣接する複数の画素群を赤色領域R(第1の色領域の一例)とし、複数の赤色領域Rが隣接している場合には、撮像画像のY軸、X軸に平行になるように隣接する複数の赤色領域Rを連結して矩形を設定し、この矩形を赤色矩形領域BR(第1の矩形領域の一例)として抽出する。
【0078】
同様に、端末10は、緑の色条件を満たした隣接する複数の画素群を緑色領域Gとし、複数の緑色領域Gが隣接している場合には、撮像画像のY軸、X軸に平行になるように隣接する複数の緑色領域Gを連結して矩形を設定し、この矩形を緑色矩形領域BG(第1の矩形領域の一例)として抽出する。
【0079】
つまり、赤色矩形領域BRは、撮像画像における赤色領域Rに外接する矩形領域(第1の外接矩形領域、第1のバウンディングボックス、第1の四角形)であり、緑色矩形領域BGは、撮像画像における緑色領域Bに外接する矩形領域(第2の外接矩形領域、第2のバウンディングボックス、第2の四角形)である。つまり、矩形領域は、複数の赤色領域を連結する際に、X軸方向、Y軸方向において最大の長さを有する赤色領域を基準に、赤色矩形領域BRを設定する。また、複数の緑色領域を連結する際に、X軸方向、Y軸方向において最大の長さを有する緑色領域を基準に、緑色矩形領域BRを設定する。
【0080】
例えば、図7に示すように、撮像部150によって第1のマークが撮像されると、撮像画像の赤色部分である赤色領域Rの赤色矩形領域BRを抽出するとともに、撮像画像の緑色部分である緑色領域Gの緑色矩形領域BGを抽出する。
【0081】
また、図8に示すように、撮像部150によって第2のマークが撮像されると、撮像画像の赤色部分である赤色領域Rの赤色矩形領域BRを抽出するとともに、撮像画像の緑色部分である緑色領域Gの緑色矩形領域BGを抽出する。
【0082】
4−1.第1、第2の色条件
本実施形態の端末10は、撮像画像の左上の画素から、左から右方向に順に画素をスキャンし、1ラインのスキャンが終わると、次のラインの左から右方向に順に画素をスキャンする。そして最終的に、撮像画像の右下の画素をスキャンして終了する。
【0083】
そして、端末10は、各画素が第1の色条件、または第2の色条件を満たすか否かを判断する。第1の色条件は、画素の色値が第1の色値を含む第1の色値域内であるという条件である。例えば、画素のUV値が赤の色値を含む赤色値域内であるという赤の色条件を第1の色条件とする。つまり、画素の色値が赤色、朱色、ワインレッドなども含む赤色値域である場合には、第1の色条件を満たす画素として検出される。
【0084】
また、第2の色条件は、画素の色値が第2の色値を含む第2の色値域内であるという条件である。例えば、画素のUV値が緑の色値を含む緑色値域内であるという緑の色条件を第2の色条件とする。つまり、画素の色値が、緑色原色、若草色、深緑色なども含む緑色領域である場合には、第2の色条件を満たす画素として検出される。
【0085】
このように、本実施形態では、第2の色値は、第1の色値と補色の関係にある色としているが、必ずしも補色の関係である必要はない。なお、補色の関係にあれば、2つの色を識別し易くなり、マーカーを検出する精度を上げることができる。要するに、第1の条件を満たす場合には第2の色条件を満たさず、第2の色条件を満たす場合には第1の色条件を満たさないという排他的な関係になるように、第1、第2の色条件を定めている。
【0086】
4−2.矩形領域の抽出
本実施形態では、撮像画像の全画素について第1、又は第2の色条件を満たすか否かを判断して、赤色矩形領域BR、緑色矩形領域BGを抽出する。
【0087】
なお、本実施形態では、ルックアップテーブルを参照して、撮像画像の各画素が、第1、第2の色条件を満たすか否かを判断してもよい。ルックアップテーブルを用いれば、効率よく処理を行うことができるからである。例えば、各色値(YUVのフォーマットで定義している場合にはU値、V値)に対応づけて、第1の色条件を満たすか否かを示す数値(0又は1)を設定し、各色値に対応づけて第2の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブルを用意する。
【0088】
なお、YUV値の色値で第1、第2の条件を満たすか否かを判断する場合には、Y値(輝度値)が所定Y値(所定輝度値)以上もしくは、所与の範囲以内の値であるものを取得し、取得された画素のUV値が、第1、第2の条件を満たすか否かを判断してもよい。このようにすれば、輝度が暗い色を排除することになるので、マーカーを検出する精度を上げることができる。
【0089】
なお、各色値がRGBで定義されている場合には、RGBの各値に対応づけて、第1の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブル、及び、第2の色条件を満たすか否かを示す数値(0又は1)を設定したルックアップテーブルを用意してもよい。また、各色値がHSVで定義されている場合にも、RGBと同じように各値に対応づけて、ルックアップテーブルを用意してもよい。
【0090】
4−2−1.矩形領域抽出処理
次に、本実施形態において、矩形領域を抽出する処理の流れについて、図9(A)〜(D)を用いて説明する。
【0091】
まず、図9(A)は、矩形領域抽出処理の概要を示すフローチャート図である。矩形領域抽出処理は、上から下の方向に1ライン毎に走査を行う。つまり、矩形領域設定制御(ステップS1)を行い、矩形領域削除制御(ステップS2)を行い、矩形領域結合制御(ステップS3)を行う。全てのラインのスキャンが終了したか否かを判断し(ステップS4)、全てのスキャンが終了していない場合は(ステップS4のno)、次のラインに移行し(ステップS5)、ステップS1に戻る。全てのスキャンが終了した場合には(ステップS4のyes)、処理を終了する。
【0092】
4−2−2.矩形領域設定制御
図9(B)は、矩形領域設定制御(ステップS1)を示すフローチャート図である。矩形領域設定制御は、ライン上の左から右の順に、ライン上の全ての各画素の処理が終了するまで、画素毎にステップ処理を行う。まず、画素の色値は赤色値域内か否かを判断する(ステップS11)。そして、画素の色値は赤色値域内である場合(ステップS11のyes)は、ステップS13に進む。一方、画素の色値は赤色値域内でない場合(ステップS11のno)、画素の色値は緑色値域内であるか否かを判断する(ステップS12)。そして、画素の色値は緑色値域内である場合(ステップS12のyes)は、ステップS13に進み、画素の色値は緑色値域内でない場合(ステップS12のno)、ステップS16に進む。
【0093】
そして、いずれかの矩形領域と同色かつ隣接しているか否かを判断する(ステップS13)。ここで、ステップS13において、いずれかの矩形領域と隣接しているとは、X軸方向、Y軸方向において画素が矩形領域の一部に接している場合や、X軸方向、Y軸方向において画素が矩形領域と1画素分ずれて位置する場合(微差)も含む。
【0094】
そして、いずれかの矩形領域と同色かつ隣接している場合には(ステップS13のyes)、矩形領域を拡張する(ステップS14)。つまり、Nライン目とN+1ライン目が隣接している場合には、高さ方向(Y軸方向)に1画素分矩形領域を広げる処理を行い、ライン方向(X軸方向)に隣接している場合には、画素と隣接する矩形領域とを外接するように、ライン方向に1画素分矩形領域を広げる処理を行う。
【0095】
例えば、図10(A)に示すように、Nライン目で生成された緑色領域を含む矩形領域BG1を設定し、図10(B)に示すように、N+1ライン目の各画素がスキャンされBG2が設定されると、結果的に、矩形領域BG1はX軸方向(左方向、右方向に1画素)広げるように調整されるとともに、Y軸方向(高さ方向)に1画素広げるように調整され、図10(C)に示すように矩形領域BG3に拡張される。
【0096】
一方、いずれかの矩形領域と同色かつ隣接していない場合には(ステップS13のno)、新しい矩形領域を設定する(ステップS15)。つまり、スキャン中の画素に外接する新たな矩形領域を設定する。
【0097】
そして、ライン上の全ての画素のスキャンが終了したか否かを判断し(ステップS16)、ライン上の全ての画素のスキャンが終了していない場合(ステップS16のno)、次の画素を処理対象として(ステップS17)、ステップS11に戻る。一方、画素ライン上の全ての画素のスキャンが終了した場合には(ステップS16のyes)、処理を終了する。
【0098】
4−2−3.矩形領域削除制御
図9(C)は、矩形領域削除制御の処理(ステップS2)の流れを示すフローチャート図である。矩形領域削除制御は、所定の大きさ(例えば、1画素、2画素分)の矩形領域はゴミとして扱うことにより、ノイズを削減してより精度よくマーカーを検出させるために行う。
【0099】
まず、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在するか否かを判断する(ステップS21)。そして、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在しない場合(ステップS21のno)は、矩形領域が所定の大きさよりも小さいか否かを判断する(ステップS22)。矩形領域が所定の大きさよりも小さい場合(ステップS22のyes)、当該矩形領域をゴミとして削除する処理を行う(ステップS23)。一方、矩形領域と隣接もしくは一部が重なる可能性のある矩形領域が存在する場合(ステップS21のyes)、矩形領域が所定の大きさよりも小さくない場合(ステップS22のno)は、ステップS24に進む。
【0100】
そして、全ての矩形領域について処理が終了したか否かを判断し(ステップS24)、全ての矩形領域について処理が終了していない場合には(ステップS24のno)、次の矩形領域を処理対象とし(ステップS25)、ステップS21に戻る。一方、全ての矩形領域について処理が終了した場合には(ステップS24のyes)、処理を終了する。
【0101】
4−2−4.矩形領域結合制御
図9(D)は、矩形領域結合制御(ステップS3)の処理の流れを示すフローチャート図である。矩形領域結合制御は、ライン上に設定された矩形領域において、ライン間で隣接する矩形領域を結合する処理を行うものである。
【0102】
まず、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係にあるか否かを判断する(ステップS31)。
【0103】
そして、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係にある場合(ステップS31のyes)、第Nの矩形領域が、第Mの矩形領域と結合する(ステップS32)。つまり、2つの矩形領域を1つの矩形領域とする。
【0104】
一方、第Nの矩形領域が、同色の第Mの矩形領域と隣接又は重なりの関係ではない場合には(ステップS31のno)、ライン上の全ての矩形領域について処理が終了したか否かを判断し(ステップS33)、処理が終了していない場合には(ステップS33のno)、次の矩形領域(ステップS34)を処理対象としてステップS31に戻る。
【0105】
例えば、図10(A)に示すように、ラインNにおいて矩形領域BG1が設定され、図10(B)に示すようにラインN+1において矩形領域BG2が設定されると、ラインNの矩形領域BG1とラインN+1の矩形領域BG2は隣接又は重なりの関係にあるので、図10(C)に示すように、矩形領域BG1と矩形領域BG2を結合し新たに矩形領域BG3が設定される。
【0106】
そして、図10(D)に示すように、ラインN+2において、矩形領域BG4が設定されると、図10(E)に示すように、矩形領域BG3と矩形領域BG4とを結合した新たな矩形領域BG5が設定される。
【0107】
なお、隣接している関係とは、例えば、図20(A)の矩形領域a、矩形領域bに示すように2つの矩形領域の画素の少なくとも一部が隣接している場合のことをいう。かかる場合には、矩形領域a、矩形領域bを結合して、図20(B)に示すように新たな矩形領域BG6が設定される。また、重なりの関係とは、図20(B)の、矩形領域BG6と矩形領域cに示すように、2つの矩形領域の少なくとも一部の面(領域)が重なっている場合のことをいう。かかる場合には、矩形領域BG6と矩形領域cとが結合され、図20(C)に示すように、新たな矩形領域BG7が設定される。
【0108】
5.マーカー検出処理の詳細な説明
5−1.内包関係に基づくマーカー判定
本実施形態の端末10は、端末10は、赤色矩形領域BR、緑色矩形領域BGのうちいずれか一方が他方を内包する関係にある場合に、マーカーがあると判定する処理を行う。
【0109】
例えば、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包するか否かを判断し、緑色矩形領域BGが赤色矩形領域BRを内包する場合に、第1のマーカーM1があると判定する。
【0110】
具体的に説明すると、図11(A)に示すように、緑色矩形領域BG1の各頂点P1〜P4の座標値(X,Y)と、図11(B)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4の座標値(X,Y)とを比較することによって、緑色矩形領域BG1が赤色矩形領域BR1を内包するか否かを判断する。
【0111】
例えば、赤色矩形領域BR1の各頂点Q1〜Q4が、緑色矩形領域BG1の各頂点P1〜P4内に位置するか否かを判断する。つまり、図11(C)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4が、緑色矩形領域BG1の各頂点P1〜P4内に位置する場合には、緑色矩形領域BG1が、赤色矩形領域BR1を内包するので、第1のマーカーM1があると判定する。
【0112】
一方、赤色矩形領域BR1の各頂点Q1〜Q4のうち1以上の頂点が、緑色矩形領域BG1の各頂点P1〜P4の外に位置する場合には、緑色矩形領域BG1が、赤色矩形領域BR1を内包しないと判断する。
【0113】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包するか否かを判断し、赤色矩形領域BRが緑色矩形領域BGを内包する場合に、第2のマーカーM2があると判定する。
【0114】
具体的に説明すると、図12(A)に示すように、緑色矩形領域BG2の各頂点P5〜P8の座標値(X,Y)と、図12(B)に示すように、赤色矩形領域BR2の各頂点Q5〜Q8の座標値(X,Y)とを比較することによって、赤色矩形領域BR2が緑色矩形領域BG2を内包するか否かを判断する。
【0115】
例えば、緑色矩形領域BG2の各頂点P5〜P8が、赤色矩形領域BG2の各頂点Q5〜Q8内に位置するか否かを判断する。つまり、図12(C)に示すように、緑色矩形領域BG2の各頂点P5〜P8が、赤色矩形領域BR2の各頂点Q5〜Q8内に位置する場合には、赤色矩形領域BR2が緑色矩形領域BG2を内包するので、第2のマーカーM2があると判定する。
【0116】
5−2.中心位置に基づくマーカー判定
また、本実施形態の端末10は、より精度を上げてマーカーを検出するために、赤色矩形領域BRの中心位置と緑色矩形領域BGの中心位置との距離が所定距離以内(所定画素数以内)であるか否かを判断し、赤色矩形領域BRの中心位置と緑色矩形領域BGの中心位置との距離が所定距離以内である場合に、マーカーがあると判定する処理を行う。
【0117】
例えば、図11(A)に示すように、緑色矩形領域BG1の各頂点P1〜P4に基づいて、緑色矩形領域BG1の中心位置K1を求める。そして、図11(B)に示すように、赤色矩形領域BR1の各頂点Q1〜Q4に基づいて、赤色矩形領域BR1の中心位置L1を求める。そして、図11(C)に示すように、緑色矩形領域BG1の中心位置K1と赤色矩形領域BR1の中心位置L1との距離が所定距離以内(所定画素数以内)である場合に、マーカーM1があると判定する。言い換えると、赤色矩形領域BR1の中心位置L1と、緑色矩形領域BG1の中心位置K1との距離が所定距離以上である場合には、第1のマークであると判定しない。
【0118】
また、図12(A)に示すように、緑色矩形領域BG2の各頂点P5〜P8に基づいて、緑色矩形領域BG2の中心位置K2を求める。そして、図12(B)に示すように、赤色矩形領域BR2の各頂点Q5〜Q8に基づいて、赤色矩形領域BR2の中心位置L2を求める。そして、図12(C)に示すように、緑色矩形領域BG2の中心位置K2と、赤色矩形領域BR2の中心位置L2との距離が所定距離以内(所定画素数以内)である場合に、マーカーM2があると判定する。言い換えると、緑色矩形領域BG2の中心位置K2と、赤色矩形領域BR2の中心位置L2との距離が所定距離以上である場合には、第2のマークであると判定しない。
【0119】
5−3.本実施形態のマーカー判定の効果
このように、端末10は、赤色矩形領域BR、緑色矩形領域BGとが一方が他方を内包する位置関係であること、及び、赤色矩形領域BR、緑色矩形領域BGの各中心位置が所定距離以内(所定画素数以内)あることを条件にマーカーがあるか否かを判定することによって、より精度を上げてマーカーを検出することができる。
【0120】
図13は、現実世界において、机上にマーカー表示体20と、赤色鉛筆、消しゴム(緑色の包装紙で一部が包装されている消しゴム)の例を示す。例えば、端末10の撮像部150が位置C1においてV1方向に撮像した場合、位置C2においてV2方向に撮像した場合、位置C3においてV3方向に撮像した場合のいずれの場合においても、マーカーM1、M2を検出することができる。
【0121】
例えば、図14(A)は、端末10の撮像部150が位置C1においてV1方向に撮像した場合の撮像画像G1上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。図14(A)では、赤色矩形領域BR、緑色矩形領域BGとが一方が他方を内包していること、及び、及び、赤色矩形領域BR、緑色矩形領域BGの各中心位置が所定距離以内(所定画素数以内)あることを条件にマーカーM1、M2を判定しているので、正確にマーカー表示体のマーカーM1、M2を検出することができる。つまり、赤色鉛筆の赤色矩形領域BRや、消しゴムの包装紙の緑色から抽出される緑色矩形領域BGは、マーカーとして検出しないようにすることができる。
【0122】
また、図14(B)は、端末10の撮像部150が位置C2においてV2方向に撮像した場合の撮像画像G2上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーM1、M2を検出することができる。
【0123】
また、図14(C)は、端末10の撮像部150が位置C3においてV3方向に撮像した場合の撮像画像G3上に、赤色矩形領域BR、緑色矩形領域GRとを示した概念図である。かかる場合も、正確にマーカー表示体のマーカーM1、M2を検出することができる。また、撮像部150の撮像方向が、マーカー表示体20を斜めに見下ろす方向で撮像した結果、撮像画像G3においてマーカーM1、M2が潰れたように見える場合であっても、赤色矩形領域BR、緑色矩形領域BGを抽出することができる。
【0124】
また、図3(A)(B)に示すように、マーカー表示体20のマーカーM1、M2は、同一の中心点をもち、径の長さが異なる2つの円によって構成され、内径の円を赤又は緑、外径の円のうち内径の円を除いた部分を緑又は赤で配色しているので、図14(A)、(B)、(C)のように、撮像する方向を変えてもマーカーM1、M2を検出することができる。
【0125】
5−4.マーカー判定の他の例
5−4−1.矩形領域の縦・横の比率に基づくマーカー判定
なお、端末10は、赤色矩形領域BR、緑色矩形領域BGとの縦・横(X軸方向の長さ、Y軸方向の長さ)の長さの比率(割合)に基づいて、マーカーがあるか否かを判定してもよい。
【0126】
例えば、緑色矩形領域BGの縦の長さと赤色矩形領域BRの縦の長さとの比率、及び、緑色矩形領域BGの横の長さと赤色矩形領域BRの横の長さとの比率の少なくとも一方が、第1の所定比率の範囲内(例えば、1.75:1〜2.25:1)である場合には、第1のマーカーM1があると判定する。
【0127】
図11(C)の例では、P4−P3の長さ(緑色矩形領域BG1の縦の長さ)と、Q4−Q3の長さ(赤色矩形領域BR1の縦の長さ)との比率が2対1であるので、第1のマーカーM1があると判定する。同様に、P4−P1の長さ(緑色矩形領域BG1の横の長さ)と、Q4−Q1の長さ(赤色矩形領域BR1の横の長さ)との比率も2対1であるので、第1のマーカーM1があると判定することができる。
【0128】
また、緑色矩形領域BGの縦の長さと赤色矩形領域BRの縦の長さとの比率、及び、緑色矩形領域BGの横の長さと赤色矩形領域BRの横の長さとの比率の少なくとも一方が、第2の所定比率の範囲内(例えば、1:1.75〜1:2.25)である場合には、第2のマーカーM2があると判定する。
【0129】
図12(C)の例では、P8−P7の長さ(緑色矩形領域BG2の縦の長さ)と、Q8−Q7の長さ(赤色矩形領域BR2の縦の長さ)との比率が1対2であるので、第2のマーカーM2があると判定する。同様に、P8−P5の長さ(緑色矩形領域BG2の横の長さ)と、Q8−Q5の長さ(赤色矩形領域BR2の横の長さ)との比率が1対2であるので、第2のマーカーM2があると判定する。
【0130】
5−4−2.矩形領域の各頂点の距離比に基づくマーカー判定
また、端末10は、赤色矩形領域BR、緑色矩形領域BGとの各頂点のX軸方向の距離比、Y軸方向の距離比に基づいて、マーカーがあるか否かを判定してもよい。
【0131】
例えば、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包する位置関係である場合には、赤色矩形領域BR、緑色矩形領域BGとの各頂点間のX軸方向及びY軸方向の距離を求め、X軸方向の距離比、及び、Y軸方向の距離比の少なくとも一方が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)である場合に、第1のマーカーM1があると判定する。
【0132】
図11(C)の例では、X軸のP3−Q3間の長さA1、X軸のQ3−Q2間の長さA2、X軸のQ2−P2間の長さA3との比率が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)であるので、第1のマーカーM1があると判定する。また、Y軸のP4−Q4間の長さB1、Y軸のQ4−Q3の長さB2、Y軸のQ3−P3の長さB3の比率が所定距離比率の範囲内であるので、第1のマーカーM1がある判定する。
【0133】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包する位置関係である場合には、赤色矩形領域BR、緑色矩形領域BGとの各頂点間のX軸方向及びY軸方向の距離を求め、X軸方向の距離比、及び、Y軸方向の距離比の少なくとも一方が所定距離比率の範囲内(例えば、1:1.75:1〜1:2.25:1)である場合に、第2のマーカーM2があると判定する。
【0134】
図12(C)の例では、X軸のQ7−P7間の長さa1、X軸のP7−P6間の長さa2、X軸のP6−Q6間の長さa3との比率が所定距離比率の範囲内であるので、第2のマーカーM2があると判定する。また、Y軸のQ8−P8間の長さb1、Y軸のP8−P7の長さb2、Y軸のP7−Q7の長さb3の比率が所定距離比率の範囲内であるので、第2のマーカーM2があると判定する。
【0135】
5−4−3.矩形領域の面積比に基づくマーカー判定
また、端末10は、赤色矩形領域BR、緑色矩形領域BGとの面積の比率(面積比、面積の割合)、又は所定の面積比率の範囲に基づいて、マーカーがあるか否かを判定してもよい。
【0136】
例えば、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比(例えば、4対1)、又は第1の所定面積比率の範囲内(例えば、4:1〜5:1)である場合には第1のマーカーM1があると判定し、一方、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比、又は第1の所定面積比率の範囲内でない場合には、第1のマーカーM1がないと判定する。
【0137】
また、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比(例えば、1対4)、又は第2の所定面積比率の範囲内(例えば、1:4〜1:5)である場合には第2のマーカーM2があると判定し、一方、緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比、又は第2の所定面積比率の範囲内でない場合には、第2のマーカーM2がないと判定する。
【0138】
5−4−4.マーカー判定についての組み合わせの応用例
つまり、端末10は、緑色矩形領域BGが赤色矩形領域BRを内包する位置関係である場合には、(ア)緑色矩形領域の中心位置と赤色矩形領域の中心位置との距離が所定距離以内(所定画素数以内)であること、(イ)緑色矩形領域BGの縦・横の長さと赤色矩形領域BRの縦・横の長さとの比率が第1の所定比率の範囲内であること(ウ)緑色矩形領域、赤色矩形領域のX軸、Y軸の各頂点間の距離比が所定距離比率の範囲内であること(エ)緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第1の所定面積比又は第1の所定面積比率の範囲内であることの、少なくとも1つの条件を満たす場合に、第1のマーカーM1があると判定する。なお、(ア)〜(エ)の条件を全て満足すれば、より精度よく第1のマーカーM1を検出することができる。
【0139】
また、端末10は、赤色矩形領域BRが緑色矩形領域BGを内包する位置関係である場合には、(カ)緑色矩形領域の中心位置と、赤色矩形領域の中心位置との距離が所定距離以内(所定画素数以内)であること(キ)緑色矩形領域BGの縦・横の長さと赤色矩形領域BRの縦・横の長さとの比率が第2の所定比率の範囲内であること(ク)緑色矩形領域、赤色矩形領域のX軸、Y軸の各頂点間の距離比が所定距離比率の範囲内であること(ケ)緑色矩形領域BGの面積と赤色矩形領域BRの面積との比率が第2の所定面積比又は第2の所定面積比率の範囲内であることの、少なくとも1つの条件を満たす場合に、第2のマーカーM2があると判定する。なお、(カ)〜(ケ)の条件を全て満足すれば、より精度よく第1のマーカーM2を検出することができる。
【0140】
6.コード認識処理の詳細な説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、コード情報を認識する処理(コード情報を取得する処理)を行う。特に、本実施形態の端末10は、予め定められた所定数の第1のマーカーM1と、所定数の第2のマーカーM2があると判定された場合に、コード情報を認識する処理を行う。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、コード情報を認識する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が2つ以下或いは4つ以上である場合には、コード情報を認識する処理を行わない。
【0141】
まず、図15(A)に示すように、1つの第1のマーカーM1、及び3つの第2のマーカーM2が検出されると、第1のマーカーM1のマーカーの位置PM1と、第2のマーカーM2の位置PM2−1、PM2−2、PM2−3それぞれに識別番号を付与する。
【0142】
例えば、図15(B)に示すように、第1のマーカーM1の位置PM1は1つしかないので、一意に定めることができる。したがって、まず、第1のマーカーM1の位置PM1に識別番号「0」を付与する。そして、3つの第2のマーカーの位置PM2−1、PM2−2、PM2−3に、位置PM1を基点に左回り(反時計回り)の順で「1」、「2」、「3」を付与する。例えば、位置PM1と、位置PM2−1、PM2−2、PM2−3とを相互に線を結び、各線が交差関係にあるか否か、各線が平行関係にあるか否かに基づいて、3つの第2のマーカーの位置PM2−1、PM2−2、PM2−3に、位置PM1を基点に左回り(反時計回り)の順で「1」、「2」、「3」を付与する。
【0143】
このように、各位置PM1、PM2−1、PM2−2、PM2−3に識別番号を付与することによって、現実の空間におけるマーカー表示体の四角形の配置方向を特定することができる。
【0144】
そして、端末10は、図15(C)に示すように、第1のマーカーM1の位置PM1と、第2のマーカーM2の各位置PM2−1、PM2−2、PM2−3とに基づいて、撮像画像上の領域A0〜A8を特定し、各領域A0〜A8の輝度値(色値でもよい)に基づいて、1(白)又は0(黒)に2値化し、各領域A0〜A8の値(0又は1)を取得する。つまり、コード情報である8ビットの各位の値を、各領域A0〜A8から取得する。なお、領域A0はパリティビットとして用い、エラー検出処理を行う。
【0145】
なお、端末10は、位置PM1と、位置PM2−1、PM2−2、PM2−3の識別番号が付されているので、コード情報の向きを決定することができ、適確に領域A0〜A8を特定し、コード情報の8ビットの各位の値を取得することができる。
【0146】
このようにして、コード情報が認識されると、例えば、コード情報に基づいて拡張現実画像を生成する処理、情報を提示する命令を実行する処理などを行うことができる。
【0147】
7.拡張現実画像を生成する処理の詳細な説明
7−1.拡張現実画像の説明
本実施形態では、少なくとも一つのマーカーが検出された場合に、撮像画像と仮想画像とを重畳して拡張現実画像を生成する処理を行う。ここで、拡張現実とは、Augmented Reality(AR)であり、現実環境にコンピュータ(端末)を用いて情報を付加提示する技術、および情報を付加提示された環境そのものを示す。
【0148】
例えば、図16(A)に示すように、撮像部150によって、端末10の画面上に、撮像画像が表示されていたとする。すると、本実施形態では、図16(B)に示すように、この撮像画像と、キャラクタ(オブジェクトの一例)を含む仮想画像とを合成(重畳)して拡張現実画像を生成する。このようにすれば、図16(C)に示すように、現実世界にキャラクタは存在しないが、撮像部150を通して、仮想的なオブジェクトがいるかのような拡張現実画像を提供することができる。
【0149】
7−2.マーカー検出処理に基づいて表示制御を行う処理
本実施形態の端末10は、予め定められた所定数の第1のマーカーM1と、所定数の第2のマーカーM2があると判定された場合に、拡張現実画像を生成する処理を行う。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、図16(C)に示すような拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が2つ以下或いは4つ以上である場合には、拡張現実画像を生成する処理を行わずに、図16(A)に示すような撮像画像を表示する処理を行う。
【0150】
なお、本実施形態では、所定周期(例えば、描画フレームレート、1/60秒周期)で、マーカー検出処理を行うので、リアルタイムに拡張現実画像を生成することができる。
【0151】
7−3.コード認識処理に基づいて表示制御を行う処理
また、本実施形態では、少なくとも一つのマーカーが検出されてコード情報を認識した場合には、当該コード情報に基づいて、拡張現実画像を生成するか否かを決定するようにしてもよい。例えば、端末10は、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定された場合に、コード情報を認識する。そして、コード情報を認識した場合には、コード情報に基づいて拡張現実画像を生成して、表示部に表示させる。一方、コード情報を認識できない場合には、撮像画像を表示させる。
【0152】
また、本実施形態では、図6(B)(C)に示すように、複数種類のコード情報が予め用意されている。したがって、コード情報に基づいて、拡張現実画像を生成するようにしてもよい。
【0153】
例えば、図6(B)に基づくコード情報を取得した場合には、第1のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。一方、図6(C)に基づくコード情報を取得した場合には、第2のオブジェクトを含む仮想画像と撮像画像とを合成した拡張現実画像を生成する処理を行う。このようにすれば、コード情報の種類に応じて、様々な拡張現実画像を生成することができる。
【0154】
7−4.仮想画像の生成
なお、本実施形態において拡張現実画像に用いられる仮想画像は、2次元画像でもよいし、3次元仮想空間(ワールド座標系)に配置された仮想カメラから見える3次元画像であってもよい。
【0155】
なお、本実施形態では、複数のマーカーの各位置(位置PM1、PM2−1、PM2−2、PM2−3)に基づいて3次元仮想空間におけるオブジェクトの配置位置、仮想カメラ位置、向き、画角の少なくとも1つを決めて、当該3次元仮想空間において当該仮想カメラから見える仮想画像を生成するようにしてもよい。このようにすれば、より自然な拡張現実画像を生成することができる。
【0156】
8.本実施形態の処理の流れ
図17を用いて、本実施形態の処理の流れを説明する。まず、撮像部150によって撮像された撮像画像を撮像画像記憶部173に記憶させる処理を行う(ステップS41)。次に、撮像画像上の赤色矩形領域と、緑色矩形領域とを抽出する処理を行う(ステップS42)。次に、赤色矩形領域と、緑色矩形領域との位置関係に基づいて、第1のマークM1と第2のマークM2とを検出する処理を行う(ステップS43)。
【0157】
次に、第1のマークM1が1つ、且つ、第2のマークM2が3つ検出されたか否かを判断する(ステップS44)。第1のマークM1が1つ、且つ、第2のマークM2が3つ検出された場合には(ステップS44のY)、コード情報認識処理(ステップS45)を行う。一方、第1のマークM1が1つ、且つ、第2のマークM2が3つ検出されなかった場合には(ステップS44のN)、撮像画像を表示部に表示させる処理を行い(ステップS49)処理を終了する。
【0158】
そして、コード情報認識処理(ステップS45)の後、コード情報に基づいて、オブジェクトを決定する処理を行う(ステップS46)。そして、撮像画像と、決定されたオブジェクトを含む仮想画像とを合成して、拡張現実画像を生成する処理を行う(ステップS47)。そして、拡張現実画像を表示部に表示させる処理を行う(ステップS48)。以上で処理が終了する。
【0159】
9.応用例
9−1.マーカー表示体の応用例
図18(A)に示すように、本実施形態のマーカー表示体20は、複数のマーカーを、三角形の隅(コーナー)に配置して形成されるものであってもよい。例えば、図18(A)のように、1つは第1のマーカーM1とし、残り2つを第2のマーカーM2とし、正三角形の隅に配置してもよい。
【0160】
また、図18(B)に示すように、本実施形態のマーカー表示体20は、四角形の各隅のうち、3つの隅にマーカーを配置して形成するものであってもよい。例えば、1つは第1のマーカーM1とし、残り2つを第2のマーカーM2とし、各マーカーM1、M2を正四角形の隅に配置してもよい。
【0161】
また、図18(C)に示すように、本実施形態のマーカー表示体20は、五角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図18(C)のように、1つは第1のマーカーM1とし、残り4つを第2のマーカーM2とし、各マーカーM1、M2を正五角形の隅に配置してもよい。
【0162】
また、図18(D)に示すように、本実施形態のマーカー表示体20は、六角形の各隅にマーカーを配置して形成するものであってもよい。例えば、図18(D)のように、1つは第1のマーカーM1とし、残り5つを第2のマーカーM2とし、各マーカーM1、M2を正六角形の隅に配置してもよい。
【0163】
また、本実施形態のマーカー表示体20は、正多角形の各隅のうち、1つの隅はマーカーM1を配置し、残りの各隅はマーカーM2を配置するようにしてもよい。多くのマーカーが配置されることにより、正確な情報を入手しやすくなるからである。
【0164】
なお、本実施形態では、マーカー表示体にあわせて、検出するマーカーの数を定義してもよい。つまり、マーカー表示体にあわせて、コード情報を認識するための条件、拡張現実画像を生成する条件となる、第1のマーカーM1の数と、第2のマーカーM2の数を決める。
【0165】
例えば、図18(A)(B)の場合には、端末10は、「1つ」の第1のマーカーM1と、「2つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が1つ或いは3つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0166】
同様に、図18(C)の場合には、端末10は、「1つ」の第1のマーカーM1と、「4つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が3つ以下或いは5つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0167】
同様に、図18(D)の場合には、端末10は、「1つ」の第1のマーカーM1と、「5つ」の第2のマーカーM2があると判定された場合に、コード情報を認識する処理、拡張現実画像を生成する処理を行う。言い換えると、第1のマーカーM1が検出されない場合、第1のマーカーM1が複数存在する場合、検出された第2のマーカーの数が4つ以下或いは6つ以上である場合には、コード情報を認識する処理、拡張現実画像を生成する処理を行わない。
【0168】
9−2.拡張現実画像の応用例
本実施形態では、図19に示すように、端末10は、少なくとも一つのマーカーが検出されてコード情報を認識した場合(例えば、1つの第1のマーカーM1と、3つの第2のマーカーM2があると判定されて、コード情報を認識した場合)には、そのコード情報に対応する付加情報(「店名」、「URL」、「電話番号」、「店の評価情報」などの店舗情報)を含む仮想画像と、撮像画像とを合成して拡張現実画像を生成するようにしてもよい。
【0169】
なお、端末10は、コード情報を認識した場合には、コード情報をネットワークを介してサーバに送信し、サーバから当該コード情報に対応する付加情報(「店名」、「URL」、「電話番号」、「店の評価情報」などの店舗情報)を受信し、撮像画像と受信した付加情報を示す仮想画像とを合成して拡張現実画像を生成するようにしてもよい。
【0170】
9−3.コード情報の応用例
また、コード情報は、オブジェクト、付加情報の他に、仮想動画、文字(文章)、音声などに対応付けられており、端末10は、認識したコード情報に基づいて、コード情報に対応付けられている仮想動画の再生処理、文字の表示処理、音声の再生処理を行うようにしてもよい。
【0171】
また、本実施形態では、コード情報をマーカー表示体20の各マーカーMに取り囲まれる範囲内に記載する例について説明したが、コード情報をマーカー表示体20の所与の範囲に記載したものであってもよい。例えば、コード情報をマーカー表示体20の各マーカーMにより取り囲まれる範囲外に記載してもよい。
【0172】
10.サーバ
本実施形態では、図21に示すように、クライアント・サーバ方式のネットワークシステムにおけるサーバ20において、マーカー検出処理に適用してもよい。つまり、サーバ20が、端末10で行う処理(例えば、処理部100の少なくとも1つの処理)を行うようにしてもよい。
【0173】
例えば、サーバ20は、図21に示すように、ネットワーク(例えば、インターネット)を介して複数の端末10(10A〜10C)と接続され、サーバ20が、端末10から撮像画像(撮像画像データ)を受信する。
【0174】
そして、例えば、サーバ20は、受信した撮像画像に基づいてマーカーがあるか否かを判定する処理を行う。具体的に説明すると、サーバ20は、第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、受信した撮像画像から抽出する処理を行い、第1の矩形領域と第2の矩形領域との位置関係に基づいて、マーカーがあるか否かを判定する処理を行う。例えば、サーバ20は、第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、マーカーがあると判定する。
【0175】
また、サーバ20は、処理結果を端末10に送信してもよい。処理結果とは、撮像画像に基づいて得られる情報等である。例えば、サーバ20は、撮像画像に基づきマーカーがあるか否かを判定した判定結果(マーカーの有無)、コード情報、コード情報に基づいて決定されるオブジェクトの情報、拡張現実画像の少なくとも1つを、処理結果として端末10に送信するようにしてもよい。
【0176】
例えば、サーバ20は、マーカーがあると判断された場合は1を、マーカーが無いと判断された場合には0を判定結果として端末10に送信する処理を行う。
【0177】
また、サーバ20は、検出した各マーカーの位置関係に基づいて、撮像画像からコード情報を認識するコード情報認識処理を行い、コード情報を端末10に送信する処理を行ってもよい。また、サーバ20は、コード情報に基づいてオブジェクトを決定し、決定されたオブジェクトの情報を端末10に送信するようにしてもよい。
【0178】
また、サーバ20は、撮像画像と決定されたオブジェクトを含む仮想画像とを合成した拡張現実画像を生成し、生成された拡張現実画像を端末10に送信する処理を行うようにしてもよい。
【0179】
なお、端末10は、撮像部150において撮像された画像や記憶部170(或いは情報記憶媒体180)に記憶されている撮像画像をサーバ20に送信する処理を行い、サーバ20から処理結果を受信する処理を行う。そして、端末10は、受信した処理結果に基づいて、所与の処理を行う。
【符号の説明】
【0180】
10 端末、20 マーカー表示体、
M マーカー、M1 第1のマーカー、M2 第2のマーカー、
100 処理部、110 矩形領域抽出部、111 マーカー判定部、
112 コード認識処理部、120 描画部、130 音処理部、
170 記憶部、171 主記憶部、172 画像バッファ、173 撮像画像記憶部、
150 撮像部、160 入力部、162 検出部、
180 情報記憶媒体、190 表示部、
192 音出力部、196 通信部
【特許請求の範囲】
【請求項1】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、
第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項2】
請求項1において、
前記マーカー判定部が、
第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記マーカー判定部が、
第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記矩形領域抽出部が、
画素の色値が、第1の色値を含む第1の色値域内である場合に前記第1の色条件を満たすと判断し、
画素の色値が、第2の色値を含む第2の色値域内である場合に前記第2の色条件を満たすと判断することを特徴とするプログラム。
【請求項5】
請求項4において、
当該第1の色値と、当該第2の色値とは補色の関係にあることを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記マーカー判定部が、
複数の前記マーカーがあるか否かを判定することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させることを特徴とするプログラム。
【請求項8】
請求項7において、
前記マーカー判定部が、
第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、
第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、
前記コード認識処理部が、
前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うことを特徴とするプログラム。
【請求項9】
請求項1〜8のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項10】
請求項9において、
前記マーカー判定部が、
第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、
第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、
前記描画部が、
前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うことを特徴とするプログラム。
【請求項11】
請求項9又は10において、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、
前記描画部が、
前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成することを特徴とするプログラム。
【請求項12】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜11のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項13】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行う端末であって、
第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とする端末。
【請求項14】
少なくとも一つのマーカーを検出する処理を行うサーバであって、
ネットワークを介して端末から、撮像画像を受信する通信制御部と、
第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、
前記通信制御部が、
前記端末に処理結果を送信することを特徴とするサーバ。
【請求項15】
端末によって検出される複数のマーカーからなるマーカー表示体であって、
同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーを複数所定間隔をおいて配置し、
前記複数のマーカーのうち1つのマーカーの内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、
残りの各マーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色していることを特徴とするマーカー表示体。
【請求項16】
請求項15において、
前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体。
【請求項17】
請求項15又は16において、
前記第1の色は赤色、前記第2の色は緑色であることを特徴とするマーカー表示体。
【請求項1】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行うプログラムであって、
第1の色条件を満たす複数の画素によって形成される第1の色領域に外接する第1の矩形領域と、第2の色条件を満たす複数の画素によって形成される第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理を行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項2】
請求項1において、
前記マーカー判定部が、
第1の矩形領域の中心位置と第2の矩形領域の中心位置との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うことを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記マーカー判定部が、
第1の矩形領域の中心位置と第2の矩形領域の中心位置との距離が所定距離以内である場合に、前記マーカーがあると判定することを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記矩形領域抽出部が、
画素の色値が、第1の色値を含む第1の色値域内である場合に前記第1の色条件を満たすと判断し、
画素の色値が、第2の色値を含む第2の色値域内である場合に前記第2の色条件を満たすと判断することを特徴とするプログラム。
【請求項5】
請求項4において、
当該第1の色値と、当該第2の色値とは補色の関係にあることを特徴とするプログラム。
【請求項6】
請求項1〜5のいずれかにおいて、
前記マーカー判定部が、
複数の前記マーカーがあるか否かを判定することを特徴とするプログラム。
【請求項7】
請求項1〜6のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させることを特徴とするプログラム。
【請求項8】
請求項7において、
前記マーカー判定部が、
第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、
第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、
前記コード認識処理部が、
前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、当該第1のマーカーと各第2のマーカーとの位置関係に基づいて、前記コード情報を認識する処理を行うことを特徴とするプログラム。
【請求項9】
請求項1〜8のいずれかにおいて、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、前記撮像画像と仮想画像とを合成して拡張現実画像を生成する処理を行う描画部として、コンピュータを更に機能させることを特徴とするプログラム。
【請求項10】
請求項9において、
前記マーカー判定部が、
第2の矩形領域が第1の矩形領域を内包する位置関係である場合に、第1のマーカーがあると判定する処理を行い、
第1の矩形領域が第2の矩形領域を内包する位置関係である場合に、第2のマーカーがあると判定する処理を行い、
前記描画部が、
前記マーカー判定部によって1つの第1のマーカー及び2以上の所定数の第2のマーカーがあると判定された場合に、前記拡張現実画像を生成する処理を行うことを特徴とするプログラム。
【請求項11】
請求項9又は10において、
前記マーカー判定部によって複数のマーカーがあると判定された場合に、複数のマーカーの位置関係に基づいて、前記撮像画像からコード情報を認識する処理を行うコード認識処理部として、コンピュータを機能させ、
前記描画部が、
前記コード情報に基づいて仮想画像を生成する処理を行い、前記撮像画像と当該仮想画像とを合成して拡張現実画像を生成することを特徴とするプログラム。
【請求項12】
コンピュータ読み取り可能な情報記憶媒体であって、請求項1〜11のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項13】
撮像部によって撮像された撮像画像から、少なくとも一つのマーカーを検出する処理を行う端末であって、
第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部として、コンピュータを機能させ、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定することを特徴とする端末。
【請求項14】
少なくとも一つのマーカーを検出する処理を行うサーバであって、
ネットワークを介して端末から、撮像画像を受信する通信制御部と、
第1の色条件を満たし隣接する複数の画素からなる第1の色領域に外接する第1の矩形領域と、第2の色条件を満たし隣接する複数の画素からなる第2の色領域に外接する第2の矩形領域とを、前記撮像画像から抽出する処理とを行う矩形領域抽出部と、
第1の矩形領域と第2の矩形領域との位置関係に基づいて、前記マーカーがあるか否かを判定する処理を行うマーカー判定部とを含み、
前記マーカー判定部が、
第1の矩形領域、第2の矩形領域のうちいずれか一方が他方を内包する位置関係である場合に、前記マーカーがあると判定し、
前記通信制御部が、
前記端末に処理結果を送信することを特徴とするサーバ。
【請求項15】
端末によって検出される複数のマーカーからなるマーカー表示体であって、
同一の中心点をもち、径の長さが異なる2つの円によって構成されるマーカーを複数所定間隔をおいて配置し、
前記複数のマーカーのうち1つのマーカーの内径の円を第1の色、外径の円のうち内径の円を除いた部分を第2の色で配色し、
残りの各マーカーについては、内径の円を第2の色、外径の円のうち内径の円を除いた部分を第1の色に配色していることを特徴とするマーカー表示体。
【請求項16】
請求項15において、
前記各マーカーにより取り囲まれる範囲内に、予め定められたコード情報を示したことを特徴とするマーカー表示体。
【請求項17】
請求項15又は16において、
前記第1の色は赤色、前記第2の色は緑色であることを特徴とするマーカー表示体。
【図1】
【図2】
【図3】
【図9(A)】
【図9(B)】
【図9(C)】
【図9(D)】
【図11】
【図12】
【図15】
【図17】
【図21】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図13】
【図14(A)】
【図14(B)】
【図14(C)】
【図16(A)】
【図16(B)】
【図16(C)】
【図18】
【図19】
【図20】
【図2】
【図3】
【図9(A)】
【図9(B)】
【図9(C)】
【図9(D)】
【図11】
【図12】
【図15】
【図17】
【図21】
【図4】
【図5】
【図6】
【図7】
【図8】
【図10】
【図13】
【図14(A)】
【図14(B)】
【図14(C)】
【図16(A)】
【図16(B)】
【図16(C)】
【図18】
【図19】
【図20】
【公開番号】特開2012−216029(P2012−216029A)
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願番号】特願2011−80311(P2011−80311)
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
【公開日】平成24年11月8日(2012.11.8)
【国際特許分類】
【出願日】平成23年3月31日(2011.3.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】
[ Back to top ]