説明

拡張現実システム、マーカ端末、撮影端末、拡張現実方法、ならびに、情報記録媒体

【課題】拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させる。
【解決手段】マーカ端末211において、符号化部212は、伝達すべき情報を、図形コードの列に符号化する。マーカ生成部213は、図形コードのそれぞれに基準画像を合成したマーカ画像を生成する。マーカ表示部214は、生成されたマーカ画像を表示する。撮影端末231において、撮影部232は、現実世界を撮影する。マーカ認識部233は、撮影画像からマーカ画像を認識する。復号部234は、順次認識されたマーカ画像から図形コードの列を得て、伝達された情報を復号する。画像生成部235は、伝達された情報にオブジェクト画像を生成して、撮影画像を背景としてオブジェクト画像を合成し、拡張現実画像を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、拡張現実(AR;Augmented Reality)画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させるのに好適な拡張現実システム、マーカ端末、撮影端末、拡張現実方法、ならびに、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体に関する。
【背景技術】
【0002】
従来から、現実世界を撮影した画像を背景にして仮想的なオブジェクトの画像を合成することにより、現実を拡張した画像を生成する拡張現実技術が提案されている。
【0003】
拡張現実技術では、マーカと呼ばれる所定の形状の図形を現実世界に配置する。撮影機器は、このマーカを含む現実世界を撮影する。したがって、マーカは、撮影された画像内において透視変換された様子で配置されることになる。
【0004】
撮影された画像に含まれるマーカが画像認識される際には、透視変換のパラメータも取得される。
【0005】
そして、マーカに対応付けられるオブジェクトに対して、この透視変換が適用される。
【0006】
そして、撮影された画像を背景にして得られたオブジェクト画像が合成されると、拡張現実画像が生成される。拡張現実画像においては、オブジェクト画像はマーカを隠す位置やマーカの近傍に描画されることになる。
【0007】
このような拡張現実技術については、以下の文献に開示されている。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2005−234757号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
ここで、マーカに対応付けられるオブジェクトの形状や模様、色彩などを変化させたい、という要望は強い。また、マーカと撮影機器との距離に応じて、オブジェクトの形状や模様、色彩などを変化させたい、という要望もある。
【0010】
本発明は、上記のような課題を解決するもので、拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させるのに好適な拡張現実システム、マーカ端末、撮影端末、拡張現実方法、ならびに、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0011】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【0012】
本発明の第1の観点に係る拡張現実システムは、1次元コードもしくは2次元コードからなる図形コードを用い、マーカ端末と撮影端末とを有し、以下のように構成する。
【0013】
ここで、1次元コードとは、複数の線分を並べる際にその間隔や太さを変化させることによって情報を符号化するものであり、いわゆるバーコードが相当する。
【0014】
また、2次元コードとは、複数のバーコードを、線が並ぶ方向とは垂直の方向に並べたものや、正方形や長方形を複数の桝目(セル;cell)に区切り、各桝目に塗る色を黒や白(あるいは無色)に変化させることによって情報を符号化するものであり、データマトリックスと呼ばれることもある。日本では、2次元コードとして、QRコード(登録商標)が普及している。
【0015】
マーカ端末は、拡張現実用のマーカ画像を画面に表示する端末であり、撮影端末は、画面に表示されたマーカ画像と、その周囲の現実世界の様子を撮影して、拡張現実画像を生成するものである。両者はいずれも、典型的には、携帯型のゲーム機やパーソナルコンピュータで所定のプログラムを動作させることによって実現される。
【0016】
ここで、マーカ端末は、符号化部、マーカ生成部、マーカ表示部、繰返制御部を有し、撮影端末は、撮影部、マーカ認識部、復号部、画像生成部を有する。
【0017】
そして、符号化部は、1つの図形コードにより表現可能な情報量が指定されると、撮影端末に伝達すべき情報を、当該指定された情報量を表現可能な図形コードの列に符号化する。
【0018】
ここで、1つの図形コードにより表現可能な情報量とは、たとえば、バーコードの場合には、表現できる数値の桁数に相当し、2次元コードの場合には、セルの個数に相当する。たとえば、4行4列の桝目からなる2次元コードが表現可能な情報量は、4×4=16ビットである。
【0019】
一方、撮影端末に伝達すべき情報は、より多いビット数(たとえば、128ビット。)で表現しなければならないこともある。
【0020】
このような場合、符号化部は、128/16=8個の2次元コードの列により、撮影端末に伝達すべき情報を符号化する。
【0021】
なお、実際には、図形コードには、当該図形コードが列中の何番目かを表すビットや、パリティビット、誤り訂正ビット等を含むこととするのが典型的である。この場合、128ビットの情報を4行4列の図形コードで符号化しようとすると、8個よりも多い図形コードが必要となる。
【0022】
また、図形コードは、表現可能な情報量にかかわらず、縦横のドット数を一定とするのが典型的である。たとえば、4行4列の桝目の2次元コードの各桝目の幅や高さは、7行7列の桝目の2次元コードの各桝目の幅や高さの7/4=1.75倍の長さとなる。
【0023】
さらに、マーカ生成部は、符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成する。
【0024】
ここで、基準画像とは、AR認識に適した形状を有する画像であり、典型的には正方形の辺を太線で描いて枠状にしたものや、これに、方向を表すための図形を付加したものが利用される。
【0025】
合成の際には、後述するように、基準画像の枠形状の中にコード画像を埋め込んだり、基準画像とコード画像を隣り合わせて配置するなどの手法が採用できる。
【0026】
上記のようにコード画像は、表現可能な情報量にかかわらず、その幅や高さは一定であるから、マーカ画像の幅や高さも一定である。
【0027】
そして、マーカ表示部は、生成された複数のマーカ画像を、当該生成された順に画面に表示する。
【0028】
上記のように、伝送すべき情報が複数の図形コードによって表現されるので、複数のマーカ画像が順に画面に表示されることになる。
【0029】
さらに、繰返制御部は、あらかじめ定めた複数の情報量のそれぞれについて、符号化部に当該情報量を指定して、マーカ表示部に複数のマーカ画像を順に表示させる処理を繰り返す。
【0030】
たとえば、符号化部に対して「4行4列」「5行5列」「6行6列」「7行7列」の4通りの情報量を指定すると、それぞれに応じた異なる桝目の大きさのマーカ画像の列が、順次表示されることになる。
【0031】
一方、撮影部は、現実世界を順次撮影する。
【0032】
一般には撮影部は、動画撮影を行い、現実世界を撮影することによって、マーカ画像を画面に表示しているマーカ端末も撮影されることになる。
【0033】
さらに、マーカ認識部は、順次撮影された画像のそれぞれから、マーカ端末の画面に表示されたマーカ画像を認識する。
【0034】
マーカ画像の認識には、通常のAR認識技術を適用することが可能であるが、後述するように、まず基準画像を認識し、その後にコード画像の認識を行うような手法を採用することも可能である。
【0035】
さらに、復号部は、マーカ画像が順次認識されると、当該マーカ画像に含まれるコード画像を取得し、当該コード画像に含まれる図形コードが表現可能な情報量ごとに分類して、当該分類された図形コードの列ごとに、マーカ端末から伝達された情報を復号する。
【0036】
すなわち、復号部は、コード画像が「4行4列」「5行5列」「6行6列」「7行7列」「8行8列」のいずれの図形コードを表すものであるか、を、列の中の順序を表すビットや、パリティビット等によって識別し、その種類ごとに分類して、元の情報を復号するのである。
【0037】
そして、画像生成部は、復号された情報に対応付けられるオブジェクト画像を生成して、撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する。
【0038】
一般的なAR技術では、1つのマーカに対応付けられるオブジェクトは1つであり、マーカが撮影された向きや大きさに応じてオブジェクトの向きや大きさを変更するのみであるが、本発明では、伝送される情報に基づいてオブジェクト画像を生成する。
【0039】
したがって、オブジェクトそのものの形状や色彩、模様等を変化させることが可能となる。たとえば、オブジェクトにゲームのキャラクターを採用した場合には、キャラクターの姿勢や表情、服装等を変化させることが可能となる。
【0040】
本発明によれば、拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させることができる。
【0041】
また、本発明の拡張現実システムにおいて、撮影端末は、距離推定部をさらに備え、以下のように構成することができる。
【0042】
ここで、距離推定部は、情報が復号できた図形コードの列のうち、当該図形コードが表現可能な情報量が最大のものを選択し、当該最大の情報量から、マーカ端末と、撮影端末と、の間の距離を推定する。
【0043】
ここで推定される距離は、座標に基づく距離ではなく、視界の良好性に基づく距離である。すなわち、観察対象がはっきり明瞭に見える場合には近く、ぼんやり不明瞭に見える場合には遠い、と判定されるような距離を採用する。
【0044】
たとえば、同じ大きさのマーカ画像が撮影されたとしても、認識できた図形コードが「4行4列」のものだけである場合と、「8行8列」のものまで認識できた場合とでは、前者は後者に比べて「遠い」ことになる。
【0045】
たとえば、撮影時の明暗や塵埃、煙、乱反射などの影響によって、認識できた図形コードの表現可能な情報量が変化し、「距離」も変化することになる。
【0046】
そして、撮影端末において、画像生成部は、オブジェクト画像を、復号された情報と、推定された距離と、に基づいて生成する。
【0047】
たとえば、推定された距離が「遠い」場合には、オブジェクト画像のシャープネスを変更してぼんやりさせると、背景の現実世界とマッチした画像が得られると考えられる。このほか、推定された距離の「遠さ」に基づいて、オブジェクトが表現するキャラクターの表情や姿勢、セリフ等を変更することとしても良い。
【0048】
本発明によれば、認識できた図形コードの情報量に基づいて、マーカ端末と撮影端末との間の視界の良好性に基づく距離により、オブジェクト画像を適切に変化させることができるようになる。
【0049】
また、本発明の拡張現実システムにおいて、撮影端末は、情報が復号できると、その旨を前記マーカ端末に通知し、マーカ端末において、繰返制御部は、マーカ端末からの通知に基づいて、複数の情報量のそれぞれを符号化部に指定する頻度を変化させるように構成することができる。
【0050】
たとえば、情報が復号できるごとに、撮影端末は、ビープ音声や無線通信で情報を送信することによって、その旨をマーカ端末に通知する。
【0051】
マーカ端末は、マイクでビープ音声を検知したり、無線通信で情報を受信することによって、どんな情報量のコード画像であれば、撮影端末が認識できるか、を知得することができる。
【0052】
そして、認識できた情報量のうち、できるだけ高い情報量、すなわち、桝目の多いコード画像によって情報を伝達するように、情報量の指定の頻度を変化させるのである。
【0053】
本発明によれば、撮影端末からマーカ端末へ認識の可否を知らせることで、できるだけ高速な情報伝送が可能となる。
【0054】
また、本発明の拡張現実システムにおいて、基準画像は、図形コードを囲むように合成されるように構成することができる。
【0055】
本発明は上記発明の好適実施形態に係るもので、基準画像が枠状の形状を有する場合に、その内部に図形コードを配置することで、コンパクトな形状のマーカ画像を生成するものである。
【0056】
また、本発明の拡張現実システムにおいて、基準画像は、図形コードに隣り合うように合成されるように構成することができる。
【0057】
本発明は上記発明の好適実施形態に係るもので、基準画像と図形コードとを近接する位置に配置することで、既存のライブラリを利用して基準図形のみをAR認識した後に、図形コードを認識することができるようになる。
【0058】
また、本発明の拡張現実システムにおいて、基準画像と、図形コードと、は、異なる色彩であり、マーカ認識部は、順次撮影された画像のそれぞれに図形コードの色彩が打ち消され、もしくは、基準画像の色彩が強調されるフィルタを適用し、当該適用結果から基準画像が透視変換された結果を抽出することにより、当該適用前の画像において当該マーカ画像が配置されている領域を認識し、復号部は、認識された領域の画像に透視変換の逆変換を施すことによりコード画像を復元して、当該復元されたコード画像から情報を復号するように構成することができる。
【0059】
たとえば、既存のARライブラリがモノクローム画像からマーカを認識するようなものである場合に、基準画像として黒色の図形を採用し、図形コードを赤色で描くような態様を考える。
【0060】
この場合に、撮影された画像から、赤色の成分を除去して、その他の色成分によってモノクローム画像を生成するフィルタ処理を行う。すると、既存のARライブラリを利用するだけで、基準画像がAR認識できる。
【0061】
基準画像がAR認識できたら、元の撮影された画像に、透視変換の逆変換を施せば、図形コードの元の姿が復元できる。そして、復元された姿から、情報を復号するのである。
【0062】
本発明によれば、たとえば、既存のARライブラリを利用しつつ、図形コードを用いた情報伝送が可能となる。
【0063】
本発明のその他の観点に係るマーカ端末は、上記拡張現実システムにおけるマーカ端末である。
【0064】
本発明のその他の観点に係る撮影端末は、上記の拡張現実システムにおける撮影端末である。
【0065】
本発明のその他の観点に係る拡張現実方法は、1次元コードもしくは2次元コードからなる図形コードを用い、マーカ端末と撮影端末とが実行する。
【0066】
ここで、マーカ端末は、符号化部、マーカ生成部、マーカ表示部、繰返制御部を備え、撮影端末は、撮影部、マーカ認識部、復号部、画像生成部を備える。
【0067】
一方、当該拡張現実方法は、符号化工程、マーカ生成工程、マーカ表示工程、繰返制御工程、撮影工程、マーカ認識工程、復号工程、画像生成工程を備える。
【0068】
ここで、マーカ端末において、符号化工程では、符号化部が、1つの図形コードにより表現可能な情報量が指定されると、撮影端末に伝達すべき情報を、当該指定された情報量を表現可能な図形コードの列に符号化する。
【0069】
一方、マーカ生成工程では、マーカ生成部が、符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成する。
【0070】
さらに、マーカ表示工程では、マーカ表示部が、生成された複数のマーカ画像を、当該生成された順に画面に表示する。
【0071】
そして、繰返制御工程では、繰返制御部が、あらかじめ定めた複数の情報量のそれぞれについて、マーカ生成工程に対して、当該情報量を指定して、マーカ表示工程において、複数のマーカ画像を順に表示させる処理を繰り返す。
【0072】
一方、撮影端末において、撮影工程では、撮影部が、現実世界を順次撮影する。
【0073】
さらに、マーカ認識工程では、マーカ認識部が、順次撮影された画像のそれぞれから、マーカ端末の画面に表示されたマーカ画像を認識する。
【0074】
そして、復号工程では、復号部が、マーカ画像が順次認識されると、当該マーカ画像に含まれるコード画像を取得し、当該コード画像に含まれる図形コードが表現可能な情報量ごとに分類して、当該分類された図形コードの列ごとに、マーカ端末から伝達された情報を復号する。
【0075】
一方、画像生成工程では、画像生成部が、復号された情報に対応付けられるオブジェクト画像を生成して、撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する。
【0076】
本発明のその他の観点に係るコンピュータ読取可能な情報記録媒体は、第1のコンピュータを、上記のマーカ端末として機能させるマーカ用プログラムと、第2のコンピュータを、当該マーカ端末に対する撮影端末として機能させる撮影用プログラムと、が記録されるように構成する。
【0077】
また、これらのプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記憶媒体に記録することができる。
【0078】
これらのプログラムは、プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記憶媒体は、コンピュータとは独立して配布・販売することができる。
【発明の効果】
【0079】
本発明によれば、拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させるのに好適な拡張現実システム、マーカ端末、撮影端末、拡張現実方法、ならびに、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体を提供することができる。
【図面の簡単な説明】
【0080】
【図1】典型的な情報処理装置の概要構成を示す模式図である。
【図2】本実施形態に係る拡張現実システムの概要構成を示す模式図である。
【図3A】2次元コードを表すコード画像の様子を示す説明図である。
【図3B】2次元コードを表すコード画像の様子を示す説明図である。
【図3C】2次元コードを表すコード画像の様子を示す説明図である。
【図3D】2次元コードを表すコード画像の様子を示す説明図である。
【図4】基準画像の様子を示す説明図である。
【図5A】マーカ画像の様子を示す説明図である。
【図5B】マーカ画像の様子を示す説明図である。
【図6】マーカ端末を実現する情報処理装置において実行されるマーカ表示処理の制御の流れを示すフローチャートである。
【図7A】あるマーカ画像を液晶ディスプレイの画面に表示しているマーカ端末を含むように、撮影された現実世界の様子を表す画像の説明図である。
【図7B】あるマーカ画像を液晶ディスプレイの画面に表示しているマーカ端末を含むように、撮影された現実世界の様子を表す画像の説明図である。
【図8】撮影画像に色彩フィルタを施した結果を表す説明図である。
【図9】元の撮影画像において描画されているコード画像を示す説明図である。
【図10】撮影されたコード画像に対して逆変換を施した結果を表す説明図である。
【図11】拡張現実画像の様子を示す説明図である。
【図12】撮影端末にて実行される撮影処理の制御の流れを示すフローチャートである。
【図13】拡張現実画像の様子を示す説明図である。
【発明を実施するための形態】
【0081】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、ゲーム用の情報処理装置を利用して本発明が実現される実施形態を説明するが、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。
【0082】
したがって、当業者であればこれらの各要素もしくは全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例1】
【0083】
(情報処理装置)
図1は、プログラムを実行することにより、本実施形態の拡張現実システムに係るマーカ端末や撮影端末として機能しうる典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【0084】
本図に示す情報処理装置101は、携帯可能なマルチメディア端末であり、CPU(Central Processing Unit)102、RAM(Random Access Memory)103、ROM(Read Only Memory)104、入力装置105、画像処理部106、液晶ディスプレイ107、音声処理部108、ヘッドホン109、カセットリーダ110、ROMカセット111、外部メモリ112、RTC(Real Time Clock)113、無線LAN(Local Area Network)インターフェース114、カメラ115を備える。
【0085】
本実施形態に係るプログラムが記録されたROMカセット111を、情報処理装置101のカセットリーダ110に装着することによって、本実施形態に係るマーカ端末や撮影端末が実現される。
【0086】
ここで、CPU 102は、情報処理装置101の各部を制御するとともに、各種の演算処理や判断処理を行う。
【0087】
情報処理装置101に電源が投入されると、CPU 102は、ROM 104に記録されたIPL(Initial Program Loader)を実行し、その処理の過程で、カセットリーダ110を介して接続されたROMカセット111に記録されたプログラムに処理を移行する。
【0088】
情報処理装置101で実行されるゲームプログラムやマルチメディア情報再生プログラムは、ROMカセット111によって提供されるのが一般的であるが、ROM 104内にあらかじめ用意しておくことも可能である。
【0089】
また、ROM 104内には、BIOS(Basic Input Output System)と呼ばれるプログラム群が用意されており、入力装置105や画像処理部106、音声処理部108の制御を行うことができる。
【0090】
RAM 103は、一時的な情報を記憶するための領域であり、外部メモリ112は、不揮発な情報を記憶するための領域である。外部メモリ112としては、ハードディスクなど、主として情報処理装置101に内蔵されるもののほか、各種のメモリカードなど、情報処理装置101に抜挿されるものを利用しても良い。
【0091】
入力装置105は、各種のボタンやキーボード、マウス、ジョイスティック等により実現されるのが一般的であるが、液晶ディスプレイ107と一体に形成されたタッチスクリーンを入力装置105として利用することも可能である。
【0092】
画像処理部106は、CPU 102の制御の下、各種の文字情報や画像情報を液晶ディスプレイ107の画面に表示させるものであり、一般には、垂直同期割込周期(典型的には、30分の1秒や60分の1秒程度である。)ごとに、RAM 103内に用意されたフレームバッファに記憶された画素情報を液晶ディスプレイ107の各画素に反映させる。
【0093】
なお、画像の表示先は、必ずしも液晶ディスプレイ107に限られるものではなく、画像処理部106に接続されるテレビジョン装置やCRT(Cathode Ray Tube)など、各種の表示用のモニターを利用することが可能である。
【0094】
ユーザからの指示入力は、液晶ディスプレイ107に表示されたカーソルを入力装置105の移動ボタン操作により移動して、所望のメニュー項目にカーソルを合わせ、決定ボタン操作によって当該メニュー項目を選択するのが一般的であるが、タッチスクリーンを利用する場合にはカーソルは不要である。また、入力装置105の各ボタンに割り当てられる機能があらかじめ決まっている場合には、液晶ディスプレイ107に対する表示は、必ずしも必要ない。
【0095】
音声処理部108は、RAM 103やROM 104、ROMカセット111、外部メモリ112に用意された音声データをヘッドホン109に出力する。音声データとしては、音声の波形データをディジタル化したPCM(Pulse Code Modulation)データや、PCMデータを圧縮してサイズを小さくしたMP3(MPeg audio layer-3)データ等を利用することが可能であるほか、MIDI(Music Instruction Data Interface)データのように、音高、音長、音量、音色の種類を定義するデータを用意し、これにしたがって、あらかじめ用意された音源波形データを適宜選択・変形して再生する手法を採用しても良い。
【0096】
RTC 113は、現在の日時を計測するもので、情報処理装置101を初めて利用する際に時刻合わせを行うのが一般的であるが、無線LANインターフェース114を介してNTP(Network Time Protocol)サーバに接続することで、自動的に時刻合わせを行うような態様を採用することも可能である。
【0097】
また、アラーム割込を発生させる機能を持つRTC 113もある。設定された時刻になるとアラーム割込が発生して、CPU 102は、現在実行中のプログラムを一時中断し、あらかじめ設定された割込ハンドラを実行してから、中断したプログラムを再開する。
【0098】
無線LANインターフェース114は、自宅や会社、街角に用意された無線LANアクセスポイントを介してインターネットに接続したり、近傍に配置された他の情報処理装置101と、アドホックに通信路を確立し、1対1で通信を行うこと等が可能である。
【0099】
カメラ115は、情報処理装置101によってディジタルカメラの機能を実現するものであり、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)撮像素子などの技術を適用することが可能である。撮影された画像は、一時的にRAM 103に展開された後、外部メモリ112等に保存される。
【0100】
このほか、ビジネス用コンピュータ、携帯電話、PDA(Personal Data Assistant)、携帯マーカ端末やエンタテインメント端末、多機能テレビジョン装置、DVD(Digital Versatile Disc)プレイヤー、携帯音楽プレイヤーなどを、本発明のマーカ端末や撮影端末が実現される情報処理装置として採用することもできる。
【0101】
(拡張現実システム)
図2は、本実施形態に係る拡張現実システムの概要構成を示す模式図である。以下、本図を参照して説明する。
【0102】
本図に示すように、拡張現実システム201は、マーカ端末211と撮影端末231とを有する。
【0103】
ここで、マーカ端末211は、情報処理装置100においてROMカセット111から読み出したマーカ端末用プログラムをCPU 102が実行して各部を制御することにより実現される。
【0104】
ここで、また撮影端末231も、情報処理装置100においてROMカセット111から読み出した撮影端末用プログラムをCPU 102が実行して各部を制御することにより実現される。
【0105】
なお、マーカ端末211と撮影端末231を実現するための情報処理装置100は、必ずしも同一の構成とする必要はない。たとえば、マーカ端末211としては、カメラの塔載されていない携帯用端末を利用し、撮影端末231として、USB(Universal Serial Bus)カメラを接続した携帯用パーソナルコンピュータを利用する等、種々の態様を採用することが可能である。
【0106】
マーカ端末211は、AR技術におけるマーカ画像を表示する端末である。従来のAR技術では、マーカは、紙などに印刷して壁や地面、テーブル等に配置するのが一般的であるが、本実施形態では、マーカ端末211を実現する情報処理装置100の液晶ディスプレイ107に、マーカ画像が表示される。また、本実施形態では、マーカ画像は時間の経過とともに変化する。
【0107】
一方、撮影端末231は、マーカ端末211が含まれる現実世界の様子を情報処理装置100のカメラ115で撮影して、画像内に撮影されたマーカ画像の位置に、仮想的なオブジェクト画像を合成することにより、拡張現実画像を生成し、これをユーザに提示できるようにする。
【0108】
本実施形態に係る拡張現実システムでは、図形コードとして、1次元コードもしくは2次元コードを用いることが可能である。
【0109】
ここで、1次元コードとは、複数の線分を並べる際にその間隔や太さを変化させることによって情報を符号化するものであり、いわゆるバーコードが相当する。
【0110】
また、2次元コードとは、複数のバーコードを、線が並ぶ方向とは垂直の方向に並べたものや、正方形や長方形を複数の桝目に区切り、各桝目に塗る色を黒や白(あるいは無色)に変化させることによって情報を符号化するものであり、データマトリックスと呼ばれることもある。日本では、2次元コードとして、QRコード(登録商標)が普及している。
【0111】
以下では、理解を容易にするため、簡単な2次元コードを例として説明する。
【0112】
(マーカ端末)
以下では、マーカ端末211の構成について概説した後、マーカ端末211にて実行される処理についてさらに詳細に説明する。
【0113】
図2に示すように、マーカ端末211は、符号化部212、マーカ生成部213、マーカ表示部214、繰返制御部215を有する。
【0114】
また、マーカ端末211は、省略可能な要素として通知受付部216を有する。なお、通知受付部216の機能については、実施例2において説明する。
【0115】
まず、符号化部212は、繰返制御部215により、「1つの図形コードにより表現可能な情報量」が指定されると、それに応じて、撮影端末231が合成するオブジェクト画像を生成する際の情報を図形コードの列に符号化する。
【0116】
したがって、符号化部212は、CPU 102がRAM 103等と共働することによって実現される。
【0117】
本実施形態では、拡張現実で合成されるオブジェクトとしてゲームのキャラクターを採用する。この場合、オブジェクト画像を生成するための情報とは、たとえば以下のようなものが含まれる。
【0118】
(1)当該オブジェクトが表すキャラクターの種類パラメータ。キャラクターの基本的な形状が種類パラメータによって決定される。
【0119】
(2)当該キャラクターの頭や腕、足、胴体などの姿勢を表す姿勢パラメータ。このパラメータに基づいて、キャラクターの基本的な形状を定めるボーンの位置や向きを変化させると、キャラクターが姿勢を変える。
【0120】
(3)当該キャラクターの感情パラメータ。このパラメータに基づいて、キャラクターの目や口の形状を表すボーンを移動させたり、頬部分のサーフェスに貼り付けるテクスチャの色彩を変化させると、キャラクターの表情が変わる。
【0121】
(4)当該キャラクターが発するセリフ。オブジェクト画像の一部として、マンガの吹き出しのようにメッセージを合成することができる。
【0122】
(5)当該キャラクターの服装パラメータ。このパラメータに基づいて、キャラクターの周縁に配置されるサーフェスや、当該サーフェスに貼り付けられるテクスチャなどが変化する。
【0123】
1つの図形コードにより表現可能な情報量とは、たとえば、バーコードの場合には、表現できる数値の桁数に相当し、2次元コードの場合には、セルの個数に相当する。たとえば、4行4列の桝目からなる2次元コードが表現可能な情報量は、4×4=16ビットである。
【0124】
本実施形態では、2次元コードとして、「4行4列」「5行5列」「6行6列」「7行7列」の4通りの情報量が表現可能なものを採用するが、用途やハードウェアの性能によっては、他の行数、列数を適宜選択したり、2次元コードの種類の数を増減させたような態様を採用することができる。
【0125】
図3A、図3B、図3C、図3Dは、それぞれ、「4行4列」「5行5列」「6行6列」「7行7列」の2次元コードを表すコード画像の様子を示す説明図である。以下、これらの図を参照して説明する。
【0126】
これらの図に示すように、コード画像301は、複数の桝目302からなり、各桝目302は、無色(図中では白)または有色(図中では黒色)に塗り分けられている。
【0127】
本図では、コード画像301全体の領域を示すため、縁に点線を描いているが、実際にはこの点線は使用しない。また、2次元コードでは、桝目302同士の境界には線を描かないのが一般的である。
【0128】
1つの桝目302を塗る色彩をいずれにするかによって、1ビットの情報が表現できる。したがって、図3Aに示すような4行4列の2次元コードは、4×4=16ビットの情報量が、図3Bに示すような5行5列の2次元コードは、5×5=25ビットの情報量が、図3Cに示すような6行6列の2次元コードは、6×6=36ビットの情報量が、図3Dに示すような7行7列の2次元コードは、7×7=49ビットの情報量が、それぞれ表現可能である。
【0129】
本実施形態では、コード画像301の高さと幅は、いずれも同じ長さを用いる。したがって、1つの桝目302の大きさは、図3Aに示す4行4列の2次元コードが最も大きく、図3Dに示す7行7列の2次元コードが最も小さい。
【0130】
一般に、コード画像301をカメラ115で撮影すると、その画像情報は劣化してしまう。カメラ115とコード画像301の距離や相対的な角度、その間の空気の透明度、塵埃や湯気などが存在しているか否か等によって、劣化の程度は異なる。
【0131】
しかしながら、桝目302が大きければ大きいほど、劣化は少ないと考えられる。したがって、カメラ115によって撮影されたコード画像301の画像から、元の情報が正しく復元できる可能性は、図3Aに示す4行4列のコード画像301が最も確率が高く、図3Dに示す7行7列のコード画像301が最も確率が低いことになる。
【0132】
一方、1枚のコード画像301で伝送できる情報量は、図3Aに示す4行4列のコード画像301が最も少なく、図3Dに示す7行7列のコード画像301が最も多い。
【0133】
そこで、情報を伝送するためにコード画像301を複数枚利用することとする。
【0134】
たとえば、4行4列のコード画像301を8枚利用する場合を考える。この場合、個々のコード画像301が何番目か(0番目〜7番目)を表すのに、3ビットを要する。また、個々のコード画像301のパリティビットとして1ビットを採用する。すると、1枚のコード画像301に埋め込める残りの情報量は、4×4−3−1=12ビットである。したがって、4行4列のコード画像301が8枚並んだ列によって撮影端末231に伝送される情報全体は、12×8=96ビットということになる。
【0135】
これと同じ情報量を伝送するには、他の2次元コードでは、以下のような枚数およびフォーマットを採用する。
(1)5行5列の場合には、5枚。0番目〜4番目を表すために3ビット、パリティに1ビットとすれば、(5×5−3−1)×5=105ビットまで表現できる。
(2)6行6列の場合には、3枚。0番目〜3番目を表すために2ビット、パリティに1ビットとすれば、(6×6−2−1)×3=99ビットまで表現できる。
(3)7行7列の場合には、3枚。0番目〜3番目を表すために2ビット、パリティに1ビットとすれば、(7×7−2−1)×3=138ビットまで表現できる。
【0136】
なお、5行5列の場合には105−96=9ビット、6行6列の場合には99−96=3ビット、7行7列の場合には138−96=42ビットの余裕がある。そこで、この余裕ビットに誤り訂正符号を埋め込む等の手法を採用することとすれば、情報伝送の信頼性を高めることができる。誤り訂正符号を埋め込む際には、パリティビットを省略して、その分を誤り訂正符号用のビットとして利用することが可能である。
【0137】
さて、マーカ生成部213は、符号化部212により符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成する。
【0138】
したがって、マーカ生成部213は、CPU 102の制御の下、画像処理部106等が動作することによって実現され、生成されたマーカ画像はRAM 103内に一時的に保存される。
【0139】
図4は、基準画像の様子を示す説明図である。以下、本図を参照して説明する。
【0140】
本実施形態では、基準画像401として、既存のライブラリを利用した際のAR認識に適した形状を有する基準図形を描画した画像を採用する。本図に示すように、基準画像401は、正方形の各辺402を一定の太さの黒(有色)で描き、さらに、3つの角の内側に小さい正方形403を黒(有色)で描いた形状をしているが、この形状は、適宜変更が可能である。
【0141】
図5A、図5Bは、マーカ画像の様子を示す説明図である。以下、本図を参照して説明する。
【0142】
図5Aに示すマーカ画像501は、基準画像401の枠内にコード画像301を埋め込んだもの、すなわち、コード画像301の周りを囲むように基準画像401を描いたものである。
【0143】
図5Aに示すマーカ画像501を採用する際には、基準画像401とコード画像301とを異なる色彩で描くことが望ましい。このように、異なる色彩で描画すると、マーカ画像501を撮影した後で、当該撮影結果に適切な色彩フィルタを適用することで、コード画像301に相当する部分を容易に除去あるいは減衰させることができるからである。
【0144】
一方、図5Bに示すマーカ画像501は、コード画像301と基準画像401とを一定の距離を持って隣り合うように配置したものである。
【0145】
本態様では、マーカ画像501の撮影結果に対して、従来のAR認識を用いるだけで、基準画像401の認識が可能である。
【0146】
したがって、当該認識結果を利用して、マーカ画像501の撮影結果から、元のコード画像301を復元することができる。
【0147】
また、マーカ画像501とコード画像301とは、同じ色彩で描いても良い。
【0148】
本実施形態では、コード画像301の高さや幅、基準画像401の高さや幅は一定であるから、マーカ画像501の高さや幅は一定となる。
【0149】
そして、マーカ表示部214は、生成された複数のマーカ画像501を、当該生成された順に画面に表示する。
【0150】
したがって、マーカ表示部214は、CPU 102の制御の下、RAM 103、画像処理部106、液晶ディスプレイ107が共働することによって実現される。
【0151】
1枚のマーカ画像501を画面に表示する時間長は、撮影端末231における認識時間に応じて実験等により適切な値を求め、適宜設定することが望ましいが、数フレーム〜十数フレームの時間長(すなわち、垂直同期周期の数倍から十数倍。)とするのが典型的である。
【0152】
さて、繰返制御部215は、あらかじめ定めた複数の情報量のそれぞれについて、符号化部212に当該情報量を指定して、マーカ表示部214に複数のマーカ画像を順に表示させる処理を繰り返す。したがって、繰返制御部215は、CPU 102によって実現される。
【0153】
本実施例では、繰返制御部215は、符号化部212に対して「4行4列」「5行5列」「6行6列」「7行7列」の4通りの情報量を指定することによって、マーカ表示部214は、マーカ画像501の列を4種類、それぞれ順次表示することになる。
【0154】
通知受付部216の機能については、後述する実施例において説明する。
【0155】
さて、図6は、マーカ端末211を実現する情報処理装置101において実行されるマーカ表示処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0156】
本処理が開始されると、CPU 102は、各種の初期化を行う(ステップS601)。この初期化には、撮影端末231に伝送すべきキャラクターのオブジェクトのパラメータを、外部メモリ112からRAM 103内に読み出す、等の設定が含まれる。
【0157】
ついで、CPU 101は、以下の処理を繰り返す(ステップS602〜)。
【0158】
まず、CPU 102は、上記4種類の情報量のうちいずれかの情報量を選択する(ステップS603)。選択の手法として最も単純なものは、4種類の情報量をラウンドロビンで順に選択する、というものである。その他の手法については、後述する実施例において説明する。
【0159】
ステップS603における情報量の選択は、繰返制御部215による符号化部212に対する情報量の指定に相当する。
【0160】
ついで、CPU 101は、ステップS603で選択された情報量の図形コードで、RAM 103内に格納されたパラメータ、すなわち、撮影端末231に伝送すべき情報を符号化して、図形コードの列を得る(ステップS604)。
【0161】
上記のように、本実施形態では、伝送すべき情報は96ビットであり、表現可能な情報量が「4行4列」に相当する場合は、8枚の図形コードからなる列が、「5行5列」の場合は5枚の列が、「6行6列」と「7行7列」の場合は3枚の列が、それぞれ生成されることになる。
【0162】
ついで、図形コードの列に含まれる図形コードのそれぞれについて、順に、以下の処理を繰り返す(ステップS605〜)。
【0163】
まず、CPU 102と画像処理部106は、当該図形コードを表すコード画像301をRAM 103内に生成する(ステップS606)。
【0164】
ついで、CPU 102と画像処理部106は、生成されたコード画像301と、基準画像401と、を合成して、マーカ画像501を生成する(ステップS607)。
【0165】
この後、垂直同期割込が発生するまで待機する(ステップS608)。この待機中には、他の処理をコルーチン的に適宜実行することが可能である。
【0166】
垂直同期割込が発生したら、生成されたマーカ画像501をRAM 103から転送して、液晶ディスプレイ107の画面に表示する(ステップS609)。
【0167】
この後、CPU 102は、所定の回数(N回)の垂直同期割込が生じるまで待機する(ステップS610)。この処理によって、垂直同期割込周期が1/60秒であるとすると、1枚のマーカ画像501は、N/60秒だけ表示されることになる。
【0168】
この表示時間は、撮影端末231において、1枚のマーカ画像501を認識してコード画像301を復元し、当該コード画像301により表現される情報を得るのに要する時間以上の長さであることが望ましい。実験によって時間長を求めることによってNを定数として定めるのが最も典型的である。その他の態様については、後述する。
【0169】
なお、ステップS610における待機中も、ステップS608の待機中と同様に、他の処理をコルーチン的に実行することが可能である。
【0170】
このようにして、1枚のマーカ画像501を液晶ディスプレイ107の所定時間(N/60秒)画面に表示したら、列に含まれる図形コードのすべてについて処理がされるまで、ステップS605以降の処理を繰り返す(ステップS611)。
【0171】
得られた図形コードの列に含まれる図形コードのすべてについて繰り返しがなされたら、CPU 102は、必要があれば、RAM 103撮影端末231に伝送すべきパラメータを更新して(ステップS612)、ステップS602以降の処理を繰り返す(ステップS613)。
【0172】
このような処理を繰り返すことによって、マーカ端末211は、画面に、最新のパラメータ情報を表現する種々の行数桁数の図形コードを、順次表示することになる。
【0173】
一方、撮影端末231は、当該マーカ端末211の液晶ディスプレイ107の画面が視界に入るようなアングルで、現実世界を動画撮影する。以下、撮影端末231の構成ならびに処理について詳細に説明する。
【0174】
(撮影端末)
図2に示すように、本実施形態に係る撮影端末231は、撮影部232、マーカ認識部233、復号部234、画像生成部235を有する。
【0175】
また、本図に示すように、撮影端末231は、省略可能な要素として、距離推定部236や通知報告部237を備える。なお、距離推定部236と通知報告部237の機能については、後述する実施例において説明する。
【0176】
まず、撮影部232は、現実世界を順次撮影する。
【0177】
一般には、撮影部232は、動画撮影を行い、現実世界を撮影する。この際に、ユーザは、マーカ端末211が撮影範囲に入るように、撮影端末231の位置や向きを調整する。したがって、撮影された画像には、マーカ端末211が液晶ディスプレイ107の画面に表示したマーカ画像501も含まれることになる。
【0178】
したがって、撮影部232は、CPU 102の制御の下でカメラ115によって実現され、撮影結果である撮影画像は、一時的にRAM 103に記憶される。
【0179】
図7A、図7Bは、撮影部によって、あるマーカ画像501を液晶ディスプレイ107の画面に表示しているマーカ端末211を含むように、撮影された現実世界の様子を表す画像の説明図である。以下、本図を参照して説明する。
【0180】
本図に示す撮影画像701には、情報処理装置101によって実現されるマーカ端末211が撮影されているほか、マーカ端末211が設置されているテーブル721、手摺り722、遠くには山723などが撮影されている。
【0181】
本図に示すように撮影画像701には、液晶ディスプレイ107に表示されたマーカ画像501が、透視投影されて配置されることになる。なお、ここでいう「透視投影」とは、カメラ115のレンズによる屈折を考慮した投影を意味するものであり、たとえばピントが合わずに画像がぼけてしまう、等の現象が生じうる。
【0182】
ただし、本実施形態のように、マーカ画像501のほかに現実世界の様子が撮影されるような状況では、「透視投影」を、一点透視による透視投影や、平行投影とみなして、AR画像認識を進めることも可能である。
【0183】
図7Aに示すマーカ画像501では、コード画像301と基準画像401が異なる色彩で描かれており、図5Aに示すマーカ画像501を、アフィン変換したような形状となっている。また、コード画像301は、基準画像401に囲まれている。
【0184】
図7Bに示すマーカ画像501では、コード画像301と基準画像401が同じ色彩で描かれており、図5Bに示すマーカ画像501を、アフィン変換したような形状となっている。コード画像301は、基準画像401に隣り合わせに配置されている。
【0185】
さて、マーカ認識部233は、このようにして撮影された画像701からマーカ端末211の画面に表示されたマーカ画像501を認識する。
【0186】
マーカ画像の認識には、通常のAR認識技術を適用することが可能であるが、まず基準画像を認識し、その後にコード画像の認識を行うような手法を採用することも可能である。
【0187】
したがって、マーカ認識部233は、画像701が一時的に記憶されるRAM 103とCPU 102が共働することによって実現される。
【0188】
図7Bに示す撮影画像701では、基準画像401がコード画像301とは独立した図形として液晶ディスプレイ107に表示されている。したがって、各種のAR認識ライブラリを利用することによって、撮影画像701から、基準画像401が投影されている領域を認識するとともに、元の基準画像401と、撮影画像701に含まれる基準画像401と、の間の透視変換ならびにその逆変換が計算できる。
【0189】
このように、基準画像401とコード画像301とを近接する位置に配置することで、既存のライブラリを利用して基準図形のみをAR認識した後に、図形コードを認識することができるようになる。
【0190】
一方、図7Aに示す撮影画像701では、基準画像401の内部にコード画像301が埋め込まれている。これは、基準画像401が枠状の形状を有する場合に、その内部にコード画像301を配置することで、コンパクトな形状のマーカ画像501を生成するためである。しかしながら、このままでは、既存のAR認識ライブラリを利用できない場合がある。
【0191】
たとえば、AR認識ライブラリがモノクロームの画像のみを認識する場合で、認識可能なマーカ画像501のパターンの数に上限がある場合等である。ちなみに、本実施形態では、96ビットの情報を伝送するので、単純に全マーカ画像501をパターンとして登録しようとすると、各行数・列数ごとに少なくとも296種類のパターンを、AR認識ライブラリに登録しなければならないが、これは事実上不可能である。
【0192】
そのような場合には、撮影画像701に対して、色彩フィルタを適用する。
【0193】
たとえば、コード画像301が赤色で描かれており、基準画像401が黒色で描かれている場合を考える。この場合の最も単純な色彩フィルタは、撮影画像701から赤色成分を除去するものである。すなわち、撮影画像701の各画素のRGB成分が(r,g,b)である場合に、当該画素を明度(g+b)/2のモノクローム画素に変換するような色彩フィルタである。このような色彩フィルタは、コード画像301を描く色彩に応じて、適宜調整が可能である。
【0194】
図8は、図7Aに示す撮影画像701に色彩フィルタを施した結果を表す説明図である。以下、本図を参照して説明する。
【0195】
本図に示すように、撮影画像701に色彩フィルタを施した結果画像702では、コード画像301が消えてしまっており、基準画像401が独立して配置されているかのように見える。
【0196】
したがって、図7Bに示す撮影画像をAR認識する場合と同様に、図7Aに示す撮影画像を認識する際にも、各種のAR認識ライブラリを利用することができる。
【0197】
なお一般には、撮影画像701に色彩フィルタを適用したとしても、コード画像301が完全に消去されるとは限らない。カメラ115による撮影が行われた条件によって、元のコード画像301がある色彩で描画されていたとしても、撮影画像701におけるコード画像301の色彩は、これとは微妙に異なるのが一般的だからである。
【0198】
しかしながら、色彩フィルタを施すことによって、コード画像301の色合いを薄くすることができる。
【0199】
したがって、既存のAR認識ライブラリを利用した場合であっても、撮影画像701から、基準画像401が投影されている領域が認識できる可能性は、色彩フィルタを施すことで飛躍的に高まることになる。
【0200】
このようにして、元の基準画像401から撮影画像701に含まれる基準画像401へ透視変換(あるいは、これを近似するアフィン変換等。)、ならびに、その逆変換が計算される。これらの変換は、変換行列によって表現され、当該変換行列の各要素の値は、RAM 103内に一時的に保存される。
【0201】
さて、復号部234は、上記のようにマーカ画像501が認識されると、マーカ画像501に含まれるコード画像301を取得して、当該コード画像301が「4行4列」「5行5列」「6行6列」「7行7列」のいずれの図形コードを表すものであるか、何枚目の図形コードであるか、を復号する。
【0202】
したがって、CPU 102が、一時的に各種の画像や変換行列が記憶されるRAM 103と共働ことによって実現される。
【0203】
具体的には、まず、元の撮影画像701において、コード画像301が描画されている領域を求める。既に基準画像401がAR認識されており、基準画像401には向きの情報が付与されている。したがって、当該基準画像401の位置や向きを基準にすれば、コード画像301が配置されている領域は容易に得られる。
【0204】
図9は、元の撮影画像701において描画されているコード画像301を示す説明図である。一般に、撮影画像701におけるコード画像301は、マーカ端末211と撮影端末231との間の塵埃や乱反射、湯煙などの影響のほか、カメラ115の画素数の影響で、その画質が劣化している。
【0205】
次に、当該領域に対して、上記のように得られた逆変換を施す。図10は、撮影されたコード画像301に対して逆変換を施した結果を表す説明図である。以下、本図を参照して説明する。
【0206】
本図のように、逆変換を施すことで、復元画像751が得られる。復元画像751は、元のコード画像301に、各種のノイズが付加されたような画像である。
【0207】
そして、得られた復元画像751の復号を試みる。2次元の画像から元の符号を復号する処理は、一般的な2次元コードの復号技術を適用することができる。すなわち、当該復元画像751が「4行4列」「5行5列」「6行6列」「7行7列」のいずれかの図形コードであると仮定してパターンマッチを行って、最も適合するものを復号結果とする。なお、撮影状況によっては、復元画像751からの復号に失敗することもありうる。
【0208】
このようにして、復元画像751から、「4行4列」「5行5列」「6行6列」「7行7列」のいずれの図形コードを表すものであるか、何枚目の図形コードであるか、含まれるビット列の具体的な値は何か、が得られたら、行数・列数ごとに、得られた図形コードの順序に基づいて、ビット列を並べることによって、伝送された情報全体を復号することができる。
【0209】
上記のように、ビット列にはパリティビットや誤り訂正符号を含めるのが典型的である。これらの情報を用いれば、情報の伝送ができるだけ正しく行われるようにすることができる。
【0210】
さて、このようにして、マーカ端末211から伝送されたオブジェクトの形状等を表すためのパラメータ情報が復号できたら、画像生成部235は、復号された情報に対応付けられるオブジェクト画像を生成し、撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する。
【0211】
したがって、CPU 102は、RAM 103や画像処理部106と共働して、画像生成部235として機能する。なお、典型的には、ここで生成された拡張現実画像は、撮影端末231を実現する情報処理装置101の液晶ディスプレイ107に表示されるが、外部メモリ112等に適宜保存するのみとしても良い。
【0212】
図11は、拡張現実画像の様子を示す説明図である。以下、本図を参照して説明する。
【0213】
本図に示すように、拡張現実画像801は、撮影画像701を背景として、その中のマーカ画像501の位置や向きに合わせてオブジェクト画像851を生成して描画したものである。
【0214】
なお、本図は、図7Aにおける撮影画像701にオブジェクト画像851を合成したものであるが、図7Bにおける撮影画像701を元にした拡張現実画像801も、同様の手法により作られる。
【0215】
一般的なAR技術では、1つのマーカに対応付けられるオブジェクトは1つであり、マーカが撮影された向きや大きさに応じてオブジェクトの向きや大きさを変更するのみであるが、本実施形態では、伝送されるパラメータ情報に基づいてオブジェクト画像851を生成する。
【0216】
したがって、拡張現実画像801に含まれるオブジェクトそのものの形状や色彩、模様等を変化させることが可能となる。たとえば、オブジェクトにゲームのキャラクターを採用した場合には、キャラクターの姿勢や表情、服装等を変化させることが可能となる。
【0217】
図12は、撮影端末231にて実行される撮影処理の制御の流れを示すフローチャートである。以下、本図を参照して説明する。
【0218】
本処理が開始されると、CPU 102は、各種の初期化を行う(ステップS901)。この初期化では、たとえば、ROMカセット111からキャラクターのオブジェクトを構成するボーンやスキン、テクスチャなどの情報をRAM 103に読み出す等の処理が行われる。
【0219】
このほか、マーカ端末211から伝送される情報は、上記の4種類の行数・列数の図形コード列内の各図形コードに分割されるため、今までに受け付けた図形コードから取得された情報を一時的に記憶する領域が、RAM 103内に確保される。
【0220】
そして、CPU 102は、以下の処理を繰り返す(ステップS902〜)。
【0221】
まず、CPU 102は、カメラ115を制御して撮影を行い、撮影結果である撮影画像701をRAM 103内に一時的に保存する(ステップS903)。
【0222】
ついで、CPU 102は、撮影画像701から、マーカ画像501を認識するため、撮影画像701に色彩フィルタを適用して、結果画像702をRAM 103内に得る(ステップS904)。なお、この処理は、基準画像401の内部にコード画像301が配置されない態様では不要である。
【0223】
そして、得られた結果に対してAR認識を試行して、元の基準画像401に対する透視変換行列の計算を試みる(ステップS905)。
【0224】
ここで、AR認識が成功すれば(ステップS905;成功)、元の基準画像401から撮影画像701内の基準画像401への透視変換行列が得られることになるから、当該行列の逆行列を計算することにより、逆変換を取得する(ステップS906)。
【0225】
そして、CPU 102は、撮影画像701内におけるコード画像301の描画領域を抽出して(ステップS907)、その結果をRAM 103内に得る。
【0226】
そして、得られた描画領域の画像に対して、ステップS905において得られた逆変換を施して、復元画像751を得る(ステップS908)。
【0227】
さらに、当該復元画像751に対して2次元コード認識を試行する(ステップS909)。2次元コード認識が成功すれば(ステップS909;成功)、以下の情報が取得され、RAM 103内に保存される。
(1)当該復元画像751による図形コードが何行何列かの情報。すなわち、当該復元画像751によって表現可能な情報量。
(2)当該復元画像751は、伝送された図形コード列のうち、何番目の図形コードか、を表す順番の情報。
(3)当該復元画像751により表現されるビット列。
【0228】
本実施形態では、2次元コード認識は、4行4列から7行7列までのそれぞれのパターンと、復元画像751との適合度に基づいて行われる。さらに、復元を試行した結果のビット列におけるビットパターンとパリティビットとの関係から、認識が失敗したか否かを判定することも可能である。
【0229】
ついで、RAM 103内に保存された情報から、現在の行数・列数の図形コードについて、列内の順序の通りにすべてのビット列が取得されたか否かを調べる(ステップS910)。
【0230】
すべてのビット列が取得された場合(ステップS910;Yes)、当該ビット列をマーカ端末211から伝送されたパラメータ情報としてRAM 103内のオブジェクトに関する設定情報を更新して(ステップS911)、ステップS912に進む。
【0231】
一方、ビット列全体がまだ得られていない場合(ステップS910;No)や、2次元コード認識に失敗した場合(ステップS909;失敗)は、パラメータ情報の更新はおこなわず、そのままステップS912に進む。
【0232】
そして、RAM 103内のオブジェクトに関する設定情報と、ステップS904におけるAR認識によって得られる透視変換行列と、から、オブジェクト画像851を生成する(ステップS912)。
【0233】
キャラクターのオブジェクトの設定情報に基づいて、キャラクターの各ボーンの向きを決め、ボーンとともに連動する制御点の座標からスキンの形状を定め、当該スキンにテクスチャを貼り込み、必要に応じてセリフなどの画像を付加することによって、オブジェクト画像851が生成される。この際に、透視変換行列により、この際のオブジェクトに対する視点の相対的な位置や視線の相対的な方向が定められる。
【0234】
そして、CPU 102は、画像処理部106を制御して、RAM 103内に保存された撮影画像701に対し、これを背景にしてオブジェクト画像851を合成して、拡張現実画像801を生成して(ステップS913)、ステップS914に進む。
【0235】
一方、AR認識に失敗した場合(ステップS905;No)、撮影画像701をそのまま拡張現実画像801として取り扱うこととして(ステップS916)、ステップS914に進む。
【0236】
この後、CPU 102は、垂直同期割込が生じるまで待機してから(ステップS914)、画像処理部106を制御して拡張現実画像801を液晶ディスプレイ107に転送させ、拡張現実画像801をモニター画面に表示し(ステップS915)、ステップS917に進む。
【0237】
なお、ステップS914においては、CPU 102は、コルーチン的に他の処理を実行することが可能である。
【0238】
このため、AR認識に成功した場合には、マーカ端末211から伝送された最新の情報に基づいて、その形状や色彩、模様、表情などを変化させるキャラクターのオブジェクトが現実世界の様子と合成されて描画された拡張現実画像801が、モニター画面に表示され、AR認識に失敗した場合には、オブジェクト画像851は合成されないので、カメラ115によって撮影された現実世界の様子を表す撮影画像701がそのまま液晶ディスプレイ107のモニター画面に表示されることになる。
【0239】
これらのステップS902からの処理を繰り返すことによって(ステップS917)、液晶ディスプレイ107のモニター画面には、マーカ画像501の認識に成功している間、撮影画像701にオブジェクト画像851を合成した画像が動画表示され、マーカ画像501の認識に失敗している間は、撮影画像701がそのまま動画表示されることになる。
【0240】
このように、本実施形態によれば、拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させることができる。
【0241】
たとえばオブジェクト画像としてゲームのキャラクターを採用した場合に、時間の経過等とともにキャラクターの表情や姿勢を変化させて、身振りや手振りをさせたり、踊らせたり等、拡張現実キャラクターを動画表示することが可能となる。
【実施例2】
【0242】
上記実施形態では、表現可能な情報量が互いに異なる複数の種類の図形コード列を用いて、マーカ端末211から撮影端末231へ情報を転送していた。
【0243】
本実施形態は、各行数・列数の図形コードのそれぞれについて、情報転送の成功の頻度を測定し、その結果に基づいて、マーカ端末211と撮影端末231との間の「距離」を推定するものである。
【0244】
すなわち、撮影端末231は、距離推定部236をさらに備える。ここで、距離推定部236は、情報が復号できた図形コードの列のうち、当該図形コードが表現可能な情報量が最大のものを選択し、当該最大の情報量から、マーカ端末211と、撮影端末231と、の間の距離を推定する。
【0245】
ここで推定される距離は、座標に基づく距離ではなく、視界の良好性に基づく距離である。すなわち、観察対象がはっきり明瞭に見える場合には近く、ぼんやり不明瞭に見える場合には遠い、と判定されるような距離を採用する。
【0246】
たとえば、同じ大きさのマーカ画像が撮影されたとしても、認識できた図形コードが「4行4列」のものだけである場合と、「7行7列」のものまで認識できた場合とでは、前者は後者に比べて「遠い」ことになる。
【0247】
たとえば、撮影時の明暗や塵埃、煙、乱反射などの影響によって、認識できた図形コードの表現可能な情報量が変化し、「距離」も変化することになる。
【0248】
具体的には、ステップS901の初期化の際に、RAM 103内に、変数vを確保し、その値を0に設定する。
【0249】
そして、上記フローチャートのステップS910において、c行・c列の図形コード列について、すべてのビット列が取得された場合(ステップS910;Yes)、v≦cであれば、vの値をcに設定し、c<vであれば、vの値に0以上1未満の定数(典型的には、0.8〜0.9程度の定数。)を乗じる、あるいは、vの値を所定の定数(典型的には0.5〜1程度の定数。)だけ減らす。
【0250】
このような処理を行うと、変数vによって、「マーカ端末211と撮影端末231との間は、v行v列の図形コードであればぎりぎり見える距離である」ことがわかる。
【0251】
本実施形態においては、このようにして得られた「距離」によっても、オブジェクト画像851に変更を加えることが望ましい。
【0252】
たとえば、「距離」が長ければ、すなわち、vが小さければ小さいほど、オブジェクト画像851を不明瞭にし、vが大きければ大きいほど、オブジェクト画像851を明瞭にするように、オブジェクト画像生成時のシャープネスを変更したり、ぼかしフィルタを適用したりすることができる。
【0253】
このような処理を行うと、撮影画像701の質感(距離感)とオブジェクト画像851の質感(距離感)とを揃えることができるので、両者を合成して拡張現実画像801を得る際にも、より「リアル」な画像が得られることになる。
【0254】
このほかの手法として、「距離」を表す画像をオブジェクト画像851に新たに付加する手法もありうる。
【0255】
図13は、拡張現実画像の様子を示す説明図である。以下、本図を参照して説明する。
【0256】
本図に示す拡張現実画像801においては、オブジェクト画像851に、半透明画像852が付加されている。この半透明画像852によって、たとえば、温泉において湯煙にキャラクターが隠れており、キャラクターがはっきりとは見えないというような状況を表す演出をオブジェクト画像851に与えることができる。
【0257】
また、本図におけるオブジェクト画像851においては、「距離」に応じてキャラクターの顔の表情や姿勢も変化させている。
【0258】
このほか、「距離」が長ければ、すなわち、vが小さければ小さいほど、オブジェクト画像851を小さくし、vが大きければ大きいほど、オブジェクト画像851を大きくする、という手法を採用しても良い。
【0259】
従来のAR技術に置いては、オブジェクト画像851の大きさは、撮影画像701内におけるマーカ画像501の大きさに連動して決まることとなっているが、この手法では、マーカ画像501の大きさだけではなく、マーカ画像501の明瞭度によって、オブジェクト画像851の大きさを変更することができるようになる。
【実施例3】
【0260】
上記実施形態では、どの図形コード列が認識でき、どの図形コード列が認識できなかったか、の情報は、撮影端末231のみで利用されていたが、本実施形態では、この情報をマーカ端末211に返送する。
【0261】
すなわち、撮影端末231の通知報告部237は、ステップS910において、c行・c列の図形コード列について、すべてのビット列が取得された場合(ステップS910;Yes)、その旨を、マーカ端末211に通知する。
【0262】
すると、マーカ端末211の通知受付部216は、この通知を受け付ける。
【0263】
通知のやりとりは、たとえば、撮影端末231として、情報処理装置101においてヘッドホン109のかわりにスピーカやブザー(図示せず。)を接続したものを利用することとし、伝送された情報が復号できたことがステップS910において判明したら、その旨を表す通知音を発するものとする。
【0264】
一方、マーカ端末211として、情報処理装置101にマイク(図示せず。)を接続したものを利用することとして、マイクにより、上記の通知音を監視する。
【0265】
マーカ端末211においては、上述のフローチャートのステップS612とステップS613の間で、一定時間の間だけ、マイクからの入力を監視すれば良い。この段階で上記の通知音が認識できた場合には、「撮影端末231に対しては、直前まで利用していた図形コード列の行数・列数であれば、情報が伝送できる」ことがわかる。
【0266】
そこで、本実施形態では、「情報が伝送できると認定された行数・列数」がステップS603で選択される確率を上げるのである。このような処理を行うことで、繰返制御部215は、マーカ端末211からの通知に基づいて、複数の情報量のそれぞれを符号化部212に指定する頻度を変化させることになる。
【0267】
たとえば、以下のような手法により、頻度を変更することが可能である。すなわち、ステップS601において、RAM 103内に配列aを用意し、それぞれの要素の値を、適当な正の定数に設定する。a[0]は、「4行4列」の頻度、a[1]は、「5行5列」の頻度、a[2]は、「6行6列」の頻度、a[3]は、「7行7列」の頻度に、それぞれ相当する。
【0268】
そして、ステップS612とステップS613の間で、c行c列の図形コード列による情報伝送が成功したことが判明したら、配列の全要素に0以上1未満の正定数(典型的には0.8〜0.95程度。)を乗じ、さらに、要素a[c-4]に1を加算する。この後、全要素に所定の定数(典型的には、0.5〜1.0程度。)を加算することとしても良い。
【0269】
一方、c行c列の図形コード列による情報伝送が失敗したことが判明したら、要素a[c-4]に0以上1未満の正定数(典型的には0.8〜0.95程度。)を乗じる。
【0270】
そして、ステップS603において、行数・列数を選択する際には、a[0]〜a[3]を確率密度分布(ヒストグラム)と考え、乱数を発生させて、「4行4列」「5行5列」「6行6列」「7行7列」のいずれかを選択するのである。
【0271】
本実施形態では、c行c列の図形コード列による情報伝送が成功すると、以降にc行c列が選択される確率が高くなる。また、それ以外の行数・列数がまったく選択されない、というわけではないので、環境が変化した場合にも、伝送に適した情報量を検索することが可能となる。このため、次第に、できるだけ多い行数・列数の図形コードが選択されるようになる。
【0272】
なお、上記の態様に限らず、c行c列の図形コード列による情報伝送が成功したことがc行c列が選択される可能性を高くするような手法であれば、選択の頻度を修正する手法として採用することができる。
【0273】
また、音声による通知ではなく、たとえば、無線LANインターフェース114を用いて、マーカ端末211と撮影端末231とをアドホック通信で接続し、無線通信を用いて通知を行うような態様を採用しても良い。
【0274】
本実施形態によれば、撮影端末231からマーカ端末211へ認識の可否を知らせることで、できるだけ高速な情報伝送が可能となる。
【産業上の利用可能性】
【0275】
以上説明したように、本発明によれば、拡張現実画像において、現実世界の様子を表す画像に合成されるオブジェクト画像を適切に変化させるのに好適な拡張現実システム、マーカ端末、撮影端末、拡張現実方法、ならびに、これらをコンピュータにて実現するプログラムを記録したコンピュータ読取可能な情報記録媒体を提供することができる。
【符号の説明】
【0276】
101 情報処理装置
102 CPU
103 RAM
104 ROM
105 入力装置
106 画像処理部
107 液晶ディスプレイ
108 音声処理部
109 ヘッドホン
110 カセットリーダ
111 ROMカセット
112 外部メモリ
113 RTC
114 無線LANインターフェース
115 カメラ
201 拡張現実システム
211 マーカ端末
212 符号化部
213 マーカ生成部
214 マーカ表示部
215 繰返制御部
216 通知受付部
231 撮影端末
232 撮影部
233 マーカ認識部
234 復号部
235 画像生成部
236 距離推定部
237 通知報告部
301 コード画像
302 桝目
401 基準画像
402 正方形の辺
403 小さい正方形
501 マーカ画像
701 撮影画像
702 結果画像
751 復元画像
801 拡張現実画像
851 オブジェクト画像
852 半透明画像

【特許請求の範囲】
【請求項1】
1次元コードもしくは2次元コードからなる図形コードを用い、マーカ端末と撮影端末とを有する拡張現実システムであって、
(a)前記マーカ端末は、
1つの図形コードにより表現可能な情報量が指定されると、前記撮影端末に伝達すべき情報を、当該指定された情報量を表現可能な図形コードの列に符号化する符号化部、
前記符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成するマーカ生成部、
前記生成された複数のマーカ画像を、当該生成された順に画面に表示するマーカ表示部、
あらかじめ定めた複数の情報量のそれぞれについて、前記符号化部に当該情報量を指定して、前記マーカ表示部に複数のマーカ画像を順に表示させる処理を繰り返す繰返制御部
を備え、
(b)前記撮影端末は、
現実世界を順次撮影する撮影部、
前記順次撮影された画像のそれぞれから、前記マーカ端末の画面に表示されたマーカ画像を認識するマーカ認識部、
前記マーカ画像が順次認識されると、当該マーカ画像に含まれるコード画像を取得し、当該コード画像に含まれる図形コードが表現可能な情報量ごとに分類して、当該分類された図形コードの列ごとに、前記マーカ端末から伝達された情報を復号する復号部、
前記復号された情報に対応付けられるオブジェクト画像を生成して、前記撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する画像生成部
を備えることを特徴とする拡張現実システム。
【請求項2】
請求項1に記載の拡張現実システムであって、
前記撮影端末は、前記情報が復号できた図形コードの列のうち、当該図形コードが表現可能な情報量が最大のものを選択し、当該最大の情報量から、前記マーカ端末と、前記撮影端末と、の間の距離を推定する距離推定部をさらに備え、
前記撮影端末において、前記画像生成部は、前記オブジェクト画像を、前記復号された情報と、前記推定された距離と、に基づいて生成する
ことを特徴とする拡張現実システム。
【請求項3】
請求項1に記載の拡張現実システムであって、
前記撮影端末は、前記情報が復号できると、その旨を前記マーカ端末に通知し、
前記マーカ端末において、前記繰返制御部は、前記マーカ端末からの通知に基づいて、前記複数の情報量のそれぞれを前記符号化部に指定する頻度を変化させる
ことを特徴とする拡張現実システム。
【請求項4】
請求項1から3のいずれか1項に記載の拡張現実システムであって、
前記基準画像は、前記図形コードを囲むように合成される
ことを特徴とする拡張現実システム。
【請求項5】
請求項1から3のいずれか1項に記載の拡張現実システムであって、
前記基準画像は、前記図形コードに隣り合うように合成される
ことを特徴とする拡張現実システム。
【請求項6】
請求項4または5に記載の拡張現実システムであって、
前記基準画像と、前記図形コードと、は、異なる色彩であり、
前記マーカ認識部は、前記順次撮影された画像のそれぞれに前記図形コードの色彩が打ち消され、もしくは、前記基準画像の色彩が強調されるフィルタを適用し、当該適用結果から前記基準画像が透視変換された結果を抽出することにより、当該適用前の画像において当該マーカ画像が配置されている領域を認識し、
前記復号部は、前記認識された領域の画像に前記透視変換の逆変換を施すことによりコード画像を復元して、当該復元されたコード画像から情報を復号する
ことを特徴とする拡張現実システム。
【請求項7】
請求項1から5のいずれか1項に記載の拡張現実システムにおけるマーカ端末。
【請求項8】
請求項1から5のいずれか1項に記載の拡張現実システムにおける撮影端末。
【請求項9】
1次元コードもしくは2次元コードからなる図形コードを用い、マーカ端末と撮影端末とが実行する拡張現実方法であって、前記マーカ端末は、符号化部、マーカ生成部、マーカ表示部、繰返制御部を備え、前記撮影端末は、撮影部、マーカ認識部、復号部、画像生成部を備え、当該拡張現実方法は、
(a)前記マーカ端末において、
前記符号化部が、1つの図形コードにより表現可能な情報量が指定されると、前記撮影端末に伝達すべき情報を、当該指定された情報量を表現可能な図形コードの列に符号化する符号化工程、
前記マーカ生成部が、前記符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成するマーカ生成工程、
前記マーカ表示部が、前記生成された複数のマーカ画像を、当該生成された順に画面に表示するマーカ表示工程、
前記繰返制御部が、あらかじめ定めた複数の情報量のそれぞれについて、前記マーカ生成工程に対して、当該情報量を指定して、前記マーカ表示工程において、複数のマーカ画像を順に表示させる処理を繰り返す繰返制御工程
を備え、
(b)前記撮影端末において、
前記撮影部が、現実世界を順次撮影する撮影工程、
前記マーカ認識部が、前記順次撮影された画像のそれぞれから、前記マーカ端末の画面に表示されたマーカ画像を認識するマーカ認識工程、
前記復号部が、前記マーカ画像が順次認識されると、当該マーカ画像に含まれるコード画像を取得し、当該コード画像に含まれる図形コードが表現可能な情報量ごとに分類して、当該分類された図形コードの列ごとに、前記マーカ端末から伝達された情報を復号する復号工程、
前記画像生成部が、前記復号された情報に対応付けられるオブジェクト画像を生成して、前記撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する画像生成工程
を備えることを特徴とする拡張現実方法。
【請求項10】
第1のコンピュータを、1次元コードもしくは2次元コードからなる図形コードを用いるマーカ端末として機能させるマーカ用プログラムと、第2のコンピュータを、当該マーカ端末に対する撮影端末として機能させる撮影用プログラムと、が記録されたコンピュータ読取可能な情報記録媒体であって、
(a)前記マーカ用プログラムは、前記第1のコンピュータを、
1つの図形コードにより表現可能な情報量が指定されると、前記撮影端末に伝達すべき情報を、当該指定された情報量を表現可能な図形コードの列に符号化する符号化部、
前記符号化された列に含まれる図形コードのそれぞれを所定の大きさで描画したコード画像と、所定の基準画像と、を合成したマーカ画像を順に生成するマーカ生成部、
前記生成された複数のマーカ画像を、当該生成された順に画面に表示するマーカ表示部、
あらかじめ定めた複数の情報量のそれぞれについて、前記符号化部に当該情報量を指定して、前記マーカ表示部に複数のマーカ画像を順に表示させる処理を繰り返す繰返制御部
として機能させ、
(b)前記撮影用プログラムは、前記第2のコンピュータを、
現実世界を順次撮影する撮影部、
前記順次撮影された画像のそれぞれから、前記マーカ端末の画面に表示されたマーカ画像を認識するマーカ認識部、
前記マーカ画像が順次認識されると、当該マーカ画像に含まれるコード画像を取得し、当該コード画像に含まれる図形コードが表現可能な情報量ごとに分類して、当該分類された図形コードの列ごとに、前記マーカ端末から伝達された情報を復号する復号部、
前記復号された情報に対応付けられるオブジェクト画像を生成して、前記撮影された画像を背景として当該オブジェクト画像を合成した拡張現実画像を生成する画像生成部
として機能させることを特徴とする情報記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図3C】
image rotate

【図3D】
image rotate

【図4】
image rotate

【図5A】
image rotate

【図5B】
image rotate

【図6】
image rotate

【図7A】
image rotate

【図7B】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2011−204047(P2011−204047A)
【公開日】平成23年10月13日(2011.10.13)
【国際特許分類】
【出願番号】特願2010−71267(P2010−71267)
【出願日】平成22年3月26日(2010.3.26)
【出願人】(506113602)株式会社コナミデジタルエンタテインメント (1,441)
【Fターム(参考)】