以下に、本発明の実施の形態にかかるスクリーン、位置特定装置、映像処理装置、パターン生成装置、スクリーンの製造方法を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
図1は、本発明にかかるスクリーンシステムの構成例を示す図である。図1に示すように、本実施の形態のスクリーンシステムは、スクリーン1(部材)、映像処理装置2、投影装置3および撮影装置4を備える。
図2は、本実施の形態のスクリーンシステムの適用例を示す図である。なお図2では、スクリーン1を1つ図示しているが、スクリーン1は複数であってもよい。また、後述するように複数のスクリーン1を有するスクリーン装置を用いてもよい。映像処理装置2は、パーソナルコンピュータ等の計算機システムである。投影装置3は、プロジェクタ等と呼ばれ、映像を拡大して投影する装置である。撮影装置4は、例えばデジタルカメラ等であり、撮影した映像を映像データとして出力可能な装置である。投影装置3、撮影装置4の方式等に制約はなく、どのようなものを用いてもよい。また、撮影装置4と並置して図示しない光源をスクリーン1に向けて別途配置してもよい。
図3は、本実施の形態の映像処理装置2として機能する計算機システムの構成例を示す図である。この計算機システムは、たとえば、制御部101と入力部102と記憶部103と表示部104と通信部105とを備え、これらはシステムバス106を介して接続されている。
制御部101は、本発明にかかる位置特定プログラムおよび映像投影プログラムを実行する。入力部102は、たとえばキーボードやマウスなどで構成され、計算機システムのユーザが、各種情報の入力を行うために使用する。記憶部103は、RAM(Random Access Memory),ROM(Read Only Memory)などの各種メモリおよびハードディスクなどのストレージデバイスを含み、上記制御部101が実行すべきプログラム,処理の過程で得られた必要なデータ,などを記憶する。また、記憶部103は、プログラムが一時的に利用する一時的な記憶領域としても使用される。表示部104は、CRT,LCD(液晶表示パネル)などで構成され、計算機システムのユーザに対して各種画面を表示する。
ここで、本発明にかかる位置特定プログラムおよび映像投影プログラムが実行可能な状態になるまでの計算機システムの動作例について説明する。上述した構成をとる計算機システムには、たとえば、CD−ROMドライブ(図示せず)にセットされたCD−ROMから、位置特定プログラムおよび映像投影プログラムが記憶部103にインストールされる。そして、位置特定プログラムおよび映像投影プログラムの実行時に、記憶部103から読み出された位置特定プログラムおよび映像投影プログラムが記憶部103の所定の場所に格納される。この状態で、制御部101は、記憶部103に格納されたプログラムに従って、位置特定処理および映像投影処理を実行する。
なお、ここでは、CD−ROMを記録媒体として、上記プログラムを提供しているが、これに限らず、計算機システムの構成、提供するプログラムの容量などに応じて、たとえば、フロッピー(登録商標)ディスクなどの磁気ディスク,光磁気ディスク,磁気テープなどの記録媒体を用いることも可能である。また、電子メール,インターネットなどの伝送媒体により提供されたプログラムを用いることとしてもよい。
図4は、本実施の形態の映像処理装置2の機能構成例を示す図である。映像処理装置2は、座標算出部21、格子パターン推定部22、アドレス決定部23、座標変換行列決定部24および映像データ変換部25を備える。座標算出部21、格子パターン推定部22、アドレス決定部23は、位置特定プログラムにより制御部101内に生成される処理部である。座標変換行列決定部24および映像データ変換部25は、映像投影プログラムにより制御部101内に生成される処理部である。また、映像処理装置2は、アドレスコード対応データ26および映像データ27を、図3の記憶部103内に保持している。
なお、本実施の形態では、映像処理装置2が、位置特定プログラムを実行する位置特定装置としての機能と映像投影プログラムを実行する映像投影プログラム実行装置としての機能とを備えるようにしたが、位置特定プログラムと映像投影プログラムをそれぞれ異なる装置により実行してもよい。位置特定プログラムと映像投影プログラムをそれぞれ異なる装置で実行する場合、位置特定プログラムを実行する位置特定装置は、座標算出部21、格子パターン推定部22、アドレス決定部23を備え、アドレスコード対応データ26を保持する。映像投影プログラム実行装置は、座標変換行列決定部24および映像データ変換部25を備え、映像データ27を保持する。
図5は、本実施の形態のパターン生成装置6の構成例を示す図である。本実施の形態のパターン生成装置6は、格子パターン生成プログラムを実行する装置であり、スクリーン1に形成される後述の格子パターンのデータを生成する装置である。パターン生成装置6は、本実施の形態のスクリーンシステムとは独立した別の装置であってもよいし、スクリーンシステムの構成要素であってもよい。パターン生成装置6は、映像処理装置2が実装される図3に示した計算機システムと同様の計算機システムに実装される。例えば、1つの計算機システムが映像処理装置2としての機能とパターン生成装置6としての機能を有していてもよい。格子パターン生成プログラムが実行可能な状態になるまでの計算機システムの動作例は、上述の位置特定プログラムと同様である。
本実施の形態のパターン生成装置6は、アドレスコード配置部61および形成データ生成部62を備える。アドレスコード配置部61および形成データ生成部62は、格子パターン生成プログラムにより制御部101内に生成される処理部である。また、パターン生成装置6は、アドレスコード対応データ63を、記憶部103内に保持する。アドレスコード対応データ63は、アドレスコードと該アドレスコードに対応する情報とで構成される。アドレスコード対応データ63は、スクリーン1の用途により異なるが、例えば、アドレスコードと該アドレスコードが埋め込まれるスクリーン1に投影する映像データを示す情報との対応を示すデータである。
次に、本実施の形態の動作について説明する。本実施の形態では、スクリーン1に、アドレスコードを埋め込んだ格子パターンが形成される。アドレスコードとは、後述するように格子パターンの基準座標系における位置を示す情報(数列)である。本実施の形態では、1つのスクリーン1につき1つの格子パターンが形成されている。各格子パターンのアドレスコード(数列)により、スクリーン1を識別する。なお、スクリーン1における格子パターンの形成方法は、どのような方法であってもよいが、例えば、格子パターンの点となる物質をスクリーン1にスプレー等で塗布する方法、印刷、格子パターンの点以外をマスクすることにより格子パターンの点を露出させる方法等を用いることができる。スクリーン1における格子パターンの形成方法の詳細については後述する。
まず、パターン生成装置6のアドレスコード配置部61は、スクリーン1ごとすなわち該スクリーン1に投影する映像データごとに該スクリーン1に形成する格子パターンに埋め込むアドレスコードを決定する。本実施の形態では、1つのスクリーン1に、1つの映像データを対応させる。アドレスコード配置部61は、映像データを示す情報(ファイル名等)と該映像データに対応するアドレスコードとの対応をアドレスコード対応データ63として保持する。スクリーン1ごとにアドレスコードを決定することにより、映像データごとにアドレスコードを埋め込んだ格子パターンとは、格子パターンの位置自体にアドレス情報が含まれている格子パターンのことを示す。ここで、本実施の形態のアドレスコードを埋め込んだ格子パターンについて説明する。基準座標系とは、スクリーン1が移動や歪み等のない初期状態に置かれた場合のスクリーン1上の座標系である。
図6は、基準となる格子パターン(基準パターン)の一例を示す図である。ここでは、アドレスコードを埋め込んだ格子パターンとして3×3点の正方格子パターンを用いる例を説明する。図6の3×3の9点について、インデックスkを図6に示すように設定する(図6の各点の右上方に記載した数字が各点のkの値)。
各インデックスkに対応する点の座標を[u(k),v(k)]Tとする。アドレスコードは、3×3の9点にそれぞれ設定されたコードを示す数列である。各点に対応するコード(点コード)p(k)は、0から3の整数とする。このとき、コードに応じて位置をずらした点の座標[u´(k),v´(k)]Tを、次の式(1)で与える。
ここで、Dは、位置をずらす幅であり定数である。ここでは、Dを格子点間隔の1/10の幅とする。1/10は一例であり、Dは1/10に限定されず、格子点間隔の半分より小さい数値であればよい。例えば、アドレスコードpとして[0,1,2,3,0,1,2,3,0]を与えた場合、格子パターンは図7のようになる。図7は、アドレスコードを与えた格子パターンの一例を示す図である。図7の、黒丸は図6で示した基準パターンの各点の座標([u(k),v(k)]T)を示し、×は各点をアドレスコードに従って、それぞれ位置をずらした格子点の座標([u´(k),v´(k)]T)である。この×がアドレスコードを埋め込んだ格子パターンとなる。
本実施の形態では、アドレスコードをスクリーン1内ごとに生成しておくことで、格子パターンのアドレスコードを解読できれば、当該スクリーン1の位置、すなわち初期状態からの変化を知ることができる。なお、スクリーン1の形状の一例としては、図6、7に形状200として示したような矩形の形状を用いることができるが、スクリーン1の形状は図6、7の例に限定されず、どのような形状であってもよい。
形成データ生成部62は、スクリーン1ごとに、アドレスコード配置部61が決定したアドレスコードに基づいて、上述した式(1)により、格子パターンを生成する。形成データ生成部62は、生成した格子パターンを形成データとして出力する。形成データの出力形式は、どのような形式でもよく格子パターンのスクリーン1上の配置を示す電子データであってもよいし、格子パターンのスクリーン1上の配置が紙等に印刷されたものであってもよい。なお、形成データ生成部62が、スクリーン1へ格子パターンを形成する機能を有している場合は、形成データ生成部62は、形成データを出力するのではなく、形成データをスクリーン1へ形成してもよい。例えば、印刷により格子パターンを形成する場合に、形成データ生成部62が、印刷機能を有し、スクリーン1へ印刷により格子パターンを形成してもよい。
形成データ生成部62が、形成データを出力する場合、スクリーン1へ格子パターンを形成する形成装置へ通信路によりまたは媒体等を経由して形成データが入力される。そして、形成装置は、形成データに基づいてスクリーン1へ格子パターンを形成する。なお、形成データ生成部62から紙により形成データが出力され、この紙に基づいて、手動または自動の機械加工によりスクリーン1へ格子パターンが形成されてもよい。
スクリーン1は、例えば、平板上の基材と、格子パターンが形成されたパターン形成部材である生地とで構成される。基材としては、例えば布や樹脂シート、樹脂板等を用いることができるが、これらに限らずどのようなものを用いてもよい。パターン形成部は、例えば、コーディング等が施された生地であり、この生地に格子パターンを構成する各点が形成される。スクリーン1への格子パターンの形成方法としてはどのような方法を用いてもよいが、例えば、特定の方向の光のみを反射する材質や可視光以外の光(例えば赤外光)を放出または反射する材質等を格子パターンとして生地に印刷する、すなわち生地に格子パターンを塗布する方法が考えられる。例えば、特定の方向の光のみを反射する材質を用いる場合、撮影装置4の視線方向と一致する方向に光を放出する光源を用い、撮影装置4からは格子パターンが撮影できるように配置する。特定の方向の光のみを反射する材質としては、例えば、再帰性反射材を用いることができる。また、可視光以外の光(例えば赤外光)を放出または反射する材質を格子パターンとして用いる場合、どのような材質を用いてもよいが、格子パターンを構成する材質、それ以外の領域(生地に相当する部分)との間で、撮影装置4において十分な感度の差が得られる波長を適用する。
上記のように、格子パターンを塗布する方法として、例えば、次のような方法がある。まず、マスク用のシートを、カッティングプロッタ等により格子パターンの各点すなわちマーカー部分を切り抜きマーカー部分に対応する穴を形成し、穴開きシートを生成する。そして、この穴開きシートをパターン形成部材の上に貼合する。そして、穴開きシートの上からインクを塗布する。これにより、マーカー部分にインクが塗布される。マーカー部分以外のパターン形成部材は、穴開きシートにより覆われているため、インクが塗布されない。インクの塗布後、穴開きシートを剥離する。その後、インクを塗布したパターン形成部材を基材に貼合し、スクリーン1とする。
また、再帰性反射材が全面に形成されたものを生地として、格子パターンを構成する各点すなわちマーカー部分以外の領域を別の印刷塗料で塗布し、マーカー部分以外の再帰性反射材を隠す(例:酸化チタンによる塗料で例えば白色に塗布する等)といった方法も考えられる。このように、マーカー部分以外を隠す場合、具体的には、例えば、次のような方法が考えられる。再帰性反射材が全面に形成された生地に、インクジェットプリンター等によりマーカー部分以外の領域に白色インクを塗布する。すなわち、再帰性反射材が全面に形成された生地に、マーカー部分を塗り残すように、白色インクを印刷する。そして、白色インクが塗布された生地を基材に貼合し、スクリーン1とする。
以上述べたように、スクリーン1の形成方法には、様々な方法が考えられるが、本実施の形態では、格子パターンを構成する点すなわちマーカーとそれ以外の領域との反射による輝度の差を大きくすることが可能な形成方法の一例として以下に示す形成方法を説明する。以下に示す方法では、格子パターンを構成する点とそれ以外の領域とで輝度の差を大きくすることができるため、上述した他の方法と比べ、点のサイズを縮小しても撮影装置4での点の視認性も高めることができる。上述した穴開きシートを用いるインク塗布の方法では、現状では再帰性反射材のインク自体の反射特性が低く、格子パターンを構成する点とそれ以外の領域とで輝度の差を大きくすることが難しい。また、上述した再帰性反射材が全面に形成されたものを生地としてマーカー部分以外の領域を白色塗料等で塗布する方法では、白色塗料等自体も反射するため、使用する再帰反射材の反射特性によっては格子パターンを構成する点とそれ以外の領域とで反射輝度の差を大きくすることが困難となることもある。
図8は、本実施の形態のスクリーン1の構成例を示す図である。図8に示すように、本実施の形態のスクリーン1は、格子パターンを構成するマーカー部分を切り抜いて形成された貫通穴12すなわち切抜き部を設けた遮光材であるカットシート11と反射材である再帰性反射シート13とを貼合したものをパターン形成部材とし、パターン形成部材と基材14とを貼合している。すなわち、カットシート11は、再帰性反射シート13を覆い、格子パターンの形成される位置を示すアドレスコードに基づいて生成され格子パターンを構成する複数の点にそれぞれ対応する複数の貫通穴が形成されている。本実施の形態では、1つのスクリーン1に1つの格子パターンが形成されることから、アドレスコードはスクリーン1の位置を示している。再帰性反射シート13は、再帰反射材が表面に形成されたシートである。カットシート11は、カッティングプロッタで加工可能であればどのような材質を用いてもよく、カットシート11の表面を例えばマット調とすることでカットシート11の表面における反射が拡散反射となり、結果として撮影装置4側への反射成分は少なくなることが想定される。したがって、撮影装置4から、撮影する際の、再帰性反射シート13からの反射による輝度とカットシート11からの反射輝度との差は、マーカー部分以外の領域を白色塗料等で塗布する方法に比べて大きくすることができ撮影装置4でのパターン認識の容易性が増すことが考えられる。なお、基材14はスクリーン1表面の平面性を維持するために用いるものであるが、必須ではなく、格子パターンを構成するマーカー部分を切り抜いて形成された貫通穴12を設けた遮光材であるカットシート11と再帰性反射シート13とでスクリーン1を構成してもよい。この方法によれば、反射材として用いる再帰反射シートはインクジェットプリンター対応のものにとらわれないため、シート選択の自由度がひろがるという利点もある。また、遮光材であるカットシート表面との反射輝度差がとれるのであれば、反射材として再帰反射シートの代わりに拡散シート(拡散反射材が表面に形成されたシート)の使用も可能である。
図9は、本実施の形態のスクリーン1の製造方法の一例を示す図である。図9では、各部材の断面を示している。図9(a)に示すように、カッティングプロッタにより貫通穴12が形成される前のカットシート11を用意する。次に、図9(b)に示すように、上述した形成データに基づくマーカーの位置にカッティングプロッタにより貫通穴12を形成し、貫通穴12が形成されたカットシート11を基材14のサイズに合わせてカットする。次に、図9(c)に示すように、基材14のサイズに合わせてカットされた再帰性反射シート13と貫通穴12が形成されたカットシート11とを貼合する。次に、図9(d)に示すように、再帰性反射シート13のカットシート11の貼合されていない側の面に基材14を貼合する。
なお、図9の手順は、一例であり、図9(c)、図9(d)の貼合は、再帰性反射シート13と基材14とを貼合した後に、再帰性反射シート13と貫通穴12が形成されたカットシート11とを貼合してもよい。また、貫通穴12が形成される前のカットシート11および再帰性反射シート13を基材14のサイズに合わせてカットする工程は、どの段階で行われてもよい。例えば、再帰性反射シート13を基材14のサイズに合わせてカットした後に、図9(a)を行ってもよいし、図9(a)を行った後に、再帰性反射シート13を基材14のサイズに合わせてカットしてもよいし、図9(a)と再帰性反射シート13を基材14のサイズに合わせてカットすることとを同時に行ってもよい。また、図9(d)の貼合の後に、再帰性反射シート13およびカットシート11を基材14のサイズに合わせてカットしてもよい。
なお、上記の例では、1つのスクリーン1に1つの格子パターンが形成される例を説明したが、1つのスクリーン1に複数の格子パターンが形成されてもよい。この場合にも、図8、図9を用いて説明したように、基材14と再帰性反射シート13と貫通穴12が形成されたカットシート11とでスクリーン1を構成することができる。
以上述べた手順で、アドレスコードが埋め込まれた格子パターンが形成されたスクリーン1が生成される。このスクリーン1を、撮影装置4により撮影して画像を取得し、取得した画像を解析することで、スクリーン1に対応するアドレスコードを求めることができる。このようにして得られるスクリーン1とアドレスコードとの対応を用いて、スクリーン1の位置および回転角度等の情報を得ることができる。これらの情報は、様々な用途に用いることができる。例えば、第1の用途として、スクリーン1ごとにスクリーン1に追従した映像を投影する用途である。スクリーン1ごとに、該スクリーン1に投影する映像を定めておき、該スクリーン1のアドレスコードを用いて算出される上記の位置および回転角度を用いて映像を該スクリーン1に投影すれば、スクリーン1の位置および回転角度に追従した映像が投影されることになる。
図10は、スクリーンごとにスクリーンに追従した映像を投影した例を示す図である。図10では、第1の用途の一例として、例えば、トランプの映像を投影する例を示している。トランプの映像を投影する場合、トランプのカードの表面の映像データとしてジョーカー2種類を含む54種類の映像データを生成しておき、トランプのカードの裏面の1種類の映像データを生成しておく。これらの映像データは、映像処理装置2の記憶部(例えば、図3の構成例の記憶部103)に予め格納される。第1の用途の場合、図4に示した映像処理装置2の映像データ27は、これらのカードごとの映像データの集合である。また、スクリーン1を54個生成しておく。54個のスクリーン1には、スクリーン1ごとに異なるアドレスコードが埋め込んだ格子パターンを形成する。そして、アドレスコードと映像データとの対応をアドレスコード対応データ63として保持しておく。図11は、アドレスコード対応データ63の一例を示す図である。図11に示すように、アドレスコード対応データ63は、アドレスコードと映像データを示す情報とで構成される。第1の用途では、図11のA,B,Cは、例えば映像データのファイル名(データ名)を示し、トランプの例では、Aは、スペードのエースのカードの映像データであり、Bは、スペードの2のカードの映像データであり、というように、トランプのカードの54種類のいずれかの映像データを示す。図12は、スクリーン1ごとに異なるアドレスコードが埋め込まれた格子パターンが形成された例を示す図である。図12では、図10に示したトランプのカードの映像をそれぞれ投影するために、スクリーン301〜308に埋め込まれた格子パターンの一例を示している。図12は、スクリーン301〜308の図10の状態に対応しており、スクリーン301,303,304は、裏面が撮影装置4側を向いており、スクリーン302,305〜308は、表面が撮影装置4側を向いている。表面には、各スクリーンに異なるアドレスコードが埋め込まれた格子パターンが形成され、裏面には同じアドレスコードが埋め込まれた格子パターンが形成されている。
例えば、図8に示したスクリーン1の基材14の裏面、すなわち再帰性反射シート13と貼合されない面にも、再帰性反射シート13および貫通穴12の形成されたカットシート11を貼合することにより裏面にも格子パターンを形成しておいてもよい。そして、アドレスコード対応データ63において、この格子パターンに埋め込むアドレスコードには、トランプのカードの裏面の映像データを対応させておく。このように、裏面にも格子パターンが形成されたスクリーンを両面形成スクリーンと呼ぶ。または、両面形成スクリーンの替わりに、2つのスクリーン1を格子パターンが外側を向くように貼合させて両面形成スクリーンとしてもよい。
その後、54個のスクリーン1のうち1つ以上を図2に示したように、投影装置3と視野方向が略同一となる撮影装置4により撮影し、画像を取得する。映像処理装置2は、投影装置3により取得された画像を解析することにより、後述するように、スクリーン1ごとに、該スクリーン1に対応するアドレスコードと射影変換行列とを算出する。映像処理装置2は、スクリーン1ごとに、すなわち算出されたアドレスコードごとに、アドレスコード対応データ63を参照して、該アドレスコードに対応する映像データを示す情報(ファイル名等)を読み出す。また、映像処理装置2は、算出されたアドレスコードに対応するスクリーン1の位置を算出する。スクリーン1の位置は、例えば、あらかじめ定めた点を原点とした3次元座標系における座標値として算出される。この座標値は、各スクリーン1に固定された座標系において定められた基準点の座標値である。基準点は、例えば、幾何中心の座標値であってもよいし、4隅のうちのあらかじめ定めた1点の座標値でもよく、基準点の位置に制約はない。次に、映像処理装置2は、該情報に対応する映像データを読み出し、読み出した映像データに対して射影変換行列を用いた変換を行い、変換した映像データを上記の算出した位置に投影する。
例えば、図10の例では、スクリーン301〜308の8つのスクリーンを撮影装置4により撮影する。スクリーン301〜308は、上述の本実施の形態の両面形成スクリーンである。スクリーン301〜308のうち、スクリーン301,303,304は、撮影装置4により裏面が撮影され、302,305〜308は、撮影装置4により表面が撮影されたとする。図13は、スクリーン301の移動、回転および傾斜を示す図である。図13では、スクリーン301の断面を示している。スクリーン302〜308も、スクリーン301と同様に、それぞれが個別に移動、回転および傾斜可能である。
撮影装置4により撮影された画像に基づいて、映像処理装置2は、スクリーン301〜308に対応するアドレスコードをそれぞれ算出し、また、スクリーン301〜308の位置をそれぞれ算出する。スクリーン302,305〜308については、スクリーン302,305〜308に対応するアドレスコードはトランプのカードの表面の映像データに対応するものであるから、映像処理装置2は、スクリーン302,305〜308ごとに、トランプのカードの表面のそれぞれのアドレスコードに対応する映像データに対して射影変換行列を用いた変換を行い、変換した映像データを投影装置3によりスクリーン302,305〜308のそれぞれ算出した位置に投影する。これにより、図10に示すように、スクリーン302,305〜308には、トランプのカードの表面の映像データが投影される。また、スクリーン302,305〜308に対応する映像データに対してスクリーン302,305〜308にそれぞれ対応する射影変換行列を用いた変換が実施されることにより、スクリーン302,305〜308の回転および傾斜に応じた映像データが投影される。
スクリーン301,303,304については、スクリーン301,303,304に対応するアドレスコードはトランプのカードの裏面の映像データに対応するものであるから、映像処理装置2は、トランプのカードの裏面の映像データに対して射影変換行列を用いた変換を行い、変換した映像データを投影装置3によりスクリーン301,303,304のそれぞれ算出した位置に投影する。これにより、図10に示すように、スクリーン301,303,304には、トランプのカードの裏面の映像データが投影される。また、スクリーン301,303,304に対応する映像データに対してスクリーン301,303,304にそれぞれ対応する射影変換行列を用いた変換が実施されることにより、スクリーン301,303,304の回転および傾斜に応じた映像データが投影される。なお、この例では、両面形成スクリーンを例に説明したが、図8に示した片面に格子パターンが形成された場合も、同様にスクリーンの回転および傾斜に応じた映像データを投影することができる。この場合、図10に示した例において、トランプのカードの表面の映像データの投影を行い、トランプのカードの裏面の映像データを行わない場合と同様となる。
次に、本実施の形態のスクリーン1の第2の用途を説明する。第2の用途では、例えば、本実施の形態のスクリーン1を複数備えるスクリーン装置を用いる。図14は、スクリーン装置の構成例を示す図である。図14の右図と左図は、同一のスクリーン装置の異なる状態をそれぞれ示している。図14に示すように、スクリーン装置は、本実施の形態のスクリーン1であるスクリーン402を複数備え、複数のスクリーン402の外側に、枠401が形成されている。また、複数のスクリーン402は、接続部材403で接続されている。接続部材403は、スクリーン402が3次元すなわちX,Y,Zのそれぞれの方向に回転可能なようにスクリーン402を枠に接続する。接続部材403は、例えば、弾性体である。このようなスクリーン装置を、例えば、立体に沿って配置すると、立体の表面にそって、スクリーン402がそれぞれ回転する。各スクリーン402には、それぞれ異なるアドレスコードが埋め込まれた格子パターンが形成されているとする。撮影装置4が、スクリーン装置を撮影して画像を取得し、映像処理装置2が、この画像を用いて、第1の用途と同様にアドレスコードを算出して、各スクリーン402の位置と射影変換行列を算出し、算出した位置と射影変換行列を用いて映像データを各スクリーン402に投影することにより、立体の移動および変形に応じた映像データを投影することができる。
なお、第2の用途においても、第1の用途と同様に、アドレスコードごとに投影する映像データを生成して、映像処理装置2が保持しておく。この映像データを、スクリーン装置を構成する複数のスクリーン402全体に投影する全体の映像データをスクリーン402ごとに分割したものとしておけば、各スクリーン402に対応する映像データを投影することで、スクリーン装置に、全体の映像データを投影することができる。
図15は、スクリーン装置における各スクリーンに形成する格子パターンの一例を示す図である。図15では、図14に示したスクリーン装置が48個のスクリーン402で構成される例を示している。図15は、48個のスクリーンに1から48までの48種類のアドレスコードをそれぞれ割当てて、各アドレスコードに対応する格子パターンを形成した例を示している。
また、立体の移動および変形に応じた映像データを投影する別の例として、立体の複数個所に本実施の形態のスクリーン1をそれぞれ貼り付ける例も考えられる。この例では、スクリーン1ごとに異なるアドレスコードが埋め込まれた格子パターンを形成しておき、上記のスクリーン装置を用いる例と同様に、撮影装置4が、複数のスクリーン1を含む画像を取得し、映像処理装置2が、この画像を用いて、第1の用途と同様にアドレスコードを算出して、各スクリーン1の位置と射影変換行列を算出し、算出した位置と射影変換行列を用いて映像データを各スクリーン1に投影することにより、立体の移動および変形に応じた映像データを投影することができる。
次に、本実施の形態のスクリーン1を用いた位置特定処理および映像投影処理について説明する。図16は、本実施の形態の位置特定処理および映像投影処理の一例を示すフローチャートである。位置特定処理は、位置特定プログラムにより実現される処理であり、映像投影処理は、映像投影プログラムにより実現される処理であり、上述の第1の用途、第2の用途に共通の処理である。映像処理装置2は、スクリーンごと、すなわちアドレスコードごとに以下に示す処理を実施する。
図16に示すように、まず、座標算出部21が撮影装置4からスクリーン1(アドレスコードを埋め込んだ格子パターンが形成されたスクリーン1)を撮影した画像データを取得する(ステップS1)。本実施の形態では、上述したようにスクリーン1ごとに異なるアドレスコードを埋め込んだ格子パターンを各スクリーン1に形成しておく。そして、撮影装置4は、1つ以上のスクリーン1を含む領域を撮影することにより、これらの格子パターンを含む画像データを取得する。上記のステップS1では、座標算出部21は、この画像データを撮影装置4から取得する。
次に、格子パターン推定部22が、画像データを用いて格子点の画像データ中の座標を算出する(ステップS2)。具体的には、画像データ中の形成されている3×3の9点の格子点の座標を求める。
次に、格子パターン推定部22が、画像データ中の複数の(ここでは9点の)格子点の座標に基づいて、この9点の格子パターンのアドレスコードを推定する(ステップS3)。具体的には、次のようにアドレスコードを推定する。
画像データ中の格子点の座標を[ucam(k),vcam(k)]Tとすると、[ucam(k),vcam(k)]Tは、以下の式(2)に示すように、[u´(k),v´(k)]Tに射影変換行列H(太字)を適用したものとして観測される。なお、sは、スケールを決定するための変数である。
このとき、[ucam(k),vcam(k)]Tと[u´(k),v´(k)]Tの組が4組以上あれば、射影変換行列H(太字)を推定することができる。しかしながら、[u´(k),v´(k)]Tは、アドレスコードが既知の場合にしか計算することができない。そこで、[u´(k),v´(k)]Tの代わりに[u(k),v(k)]Tを用いても大きな誤差が生じないと仮定し、[ucam(k),vcam(k)]Tと[u(k),v(k)]Tの組を用いて最小二乗法により射影変換行列H(太字)´を推定する。
具体的には、例えば、次のようにして射影変換行列H(太字)´を推定する。まず、H(太字)´を以下の式(3)で表すとする。H(太字)´の9番目の要素が1であるのは、スケールが任意のためである。式(3)に示すように、射影変換行列H(太字)´は8パラメータで表すことができる。
N(N≧4)組の[ucam(k),vcam(k)]Tと[u´(k),v´(k)]Tとの組み合わせ(k=1,2,…,N、かつN≧4)を用いるとすると、k=1,2,…,N(N≧4)について、上記式(2)、(3)から2N個の方程式が得られる。これらの方程式を行列の掛け算で表現すると以下の式(4)のようになる。
このとき、射影変換行列H(太字)´の8パラメータ(8個の要素)を要素とするh(太字)は以下の式(5)で最小二乗法により求めることができる。なお、B(太字)+は、B(太字)の擬似逆行列を示す。
上記の式(5)により求めたh(太字)の要素を上記の式(3)のように成形することで射影変換行列H(太字)´を推定することができる。なお、以上述べた射影変換行列H(太字)´の推定方法は一例であり、具体的な処理手順は上記の例に限定されない。
この推定された射影変換行列H(太字)´を用いて以下の式(6)に示すように、[u(k),v(k)]Tからもとの格子パターンの座標[u´´(k),v´´(k)]Tを推定する。
最後に、[u´´(k),v´´(k)]Tが[u(k),v(k)]Tからどの方向にずれているかを格子点ごとに求めることによりアドレスコードを推定する。すなわち、推定されるアドレスコードpest(k)は、次の式(7)で与えられる。
ただし、θ=tan-1((v´´(k)−v(k))/(u´´(k)−u(k)))は、[u(k),v(k)]Tからみた[u´´(k),v´´(k)]Tの角度を表す。
以上に述べたアドレスコードの推定方法では、アドレスコードによって射影変換の推定誤差の傾向が異なるため、推定されるアドレスコードpest(k)の推定において、誤りが生じやすいコード列と誤りにくいコード列が存在する。また、射影変換行列H(太字)´の推定には、図6の基準パターンを用いる場合、格子パターンを構成する9点の全てを使用する場合に比べ、インデックスkが5となる格子点(図6の中央の点)を除いた点を用いた方がアドレスコードの推定精度が高くなることをシミュレーションにより確認している。このように、格子パターンにより、推定時に用いる格子点の点数を適切に選択することにより、アドレスコードの推定精度を向上させることができる。
図16の説明に戻り、ステップS3の処理の後、アドレス決定部23は、推定したアドレスコードと保持しているアドレスコード対応データ26とに基づいて投影する映像データを選択する(ステップS4)。アドレスコード対応データ26は、アドレスコード対応データ63と同様のデータであり、映像処理装置2に予め記憶されているとする。
そして、座標変換行列決定部24は、選択した映像データを、上記のアドレスコードの推定の際に推定された座標変換行列を用いて変換して、変換後の映像データを投影データとして生成して投影装置3へ出力する(ステップS5)。その後、投影装置3は、投影データをスクリーン1に投影する。
また、図15に示した格子パターンの番号は、アドレスコードの推定精度を示すスコアに応じて定めている。上述したように、アドレスコードの推定精度は、アドレスコードを設定した際のアドレスコードの値(基準パターンからのずらし方)に依存する。
以下では、アドレスコードの推定精度が高い、すなわち射影変換にロバストなアドレスコードの選択方法について説明する。射影変換にロバストなアドレスコードは、全てのアドレスコード(49通り)について、それぞれ射影変換に対するロバスト性の指標となるスコアを求める。ここでは、シミュレーションにより、正対する平面を±80の範囲で5°ずつX軸およびY軸回りに(ロールおよびピッチ)回転させた平面に変化するための射影変換を与え、上述した方法によりアドレスコードを推定する。そして、9点のアドレスコードの全てが正解した場合にスコアを1加算する。したがって、スコアの上限は、X軸およびY軸回りの全ての角度で、アドレスコードが全て正解した場合に対応する、33×33=1089である。
このようにしてアドレスコードごとにスコアを求め、スコアの高い順に3×3の格子パターンを走査線上に並べて格子パターンを生成する。図15では、格子パターンの番号が、当該格子パターンに対応するスコアを示している。このように、図15では、スコアの高い順に格子パターンを並べている。図9では、スコアの高い順に格子パターンを並べる例を示したが、スクリーン1上の配置はこれに限定されない。ただし、スクリーン1の端等の歪みが大きくなることが予想される場所には、スコアの高い格子パターンを配置すること望ましい。
以上の処理により、高速にスクリーン1の位置および回転状態(スクリーン上の基準座標系に対する射影変換)を推定することができる。
なお、ここでは、アドレスコードを埋め込むパターンの一例として3×3の正方格子パターンを用いる例を説明したが、n×m(n≠m)の点の長方形のパターンであってもよい。また、ここでは、基準パターンとして、縦方向、および横方向の各点の間隔が等間隔となる例を説明したが、縦方向、横方向の一方または両方が等間隔でなくてもよい。さらに、基準パターンが正方形や長方形の矩形ではなく、円であったり、多角形であったりしてもよく、5点以上で構成されるパターンであれば形状に制約はない。ただし、位置算出時の誤差を低減するには、基準パターン内の各点は基準パターン内でなるべく偏らないよう配置されることが望ましい。また、格子パターン同士が重なるようにしても、本実施の形態の位置特定方法により位置の特定を実施することができる。
上述したアドレスコードを埋め込んだ格子パターンを用いることで、撮影されたカメラ画像上の位置・2次元座標の回転角度・3次元平面の位置・3次元平面の傾きを推定することができる。これらの情報は、プロジェクタ・カメラシステムにおいて、投影画像の幾何補正のために利用される情報である。一方で、これらの情報を用いることで、アドレスコードを埋め込んだ格子パターンをAR(Augmented Reality,拡張現実)マーカーとして利用することも可能である。ARは、カメラで撮影した画像をディスプレイに表示する際に、カメラ画像に情報を付加して表示する技術である。例えば、画像上に文字情報を付加したり、現実には存在しない物体をCG(Computer Graphics)モデルで付加したりする。このARでは、しばしば、ARマーカーを補助的に使用する。例えば、Hiroマーカーが有名である。ARマーカーを、紙や布,平板などに印刷しておき、それをカメラで撮影し、ARマーカーの位置や傾きに合わせてCGモデルの位置や傾きを決定することで、現実には存在しない仮想情報(CGモデルなど)を違和感なくカメラ画像に合成することができる。
アドレスコードを埋め込んだ格子パターンは、カメラ画像から、カメラ画像上の位置・2次元座標の回転角度・3次元平面の位置・3次元平面の傾きを推定することができるため、CGモデルなどの付加情報を合成する位置・姿勢の決定に利用できる。また、格子パターンが形成された面(平面やゆるやかな曲面)の形状をカメラから推定することができるため、現実には形成されていない仮想情報(画像や模様,文字など)があたかもその平面に形成されているかのように画像に合成するための情報を付加することも可能である。すなわち、仮想情報(CGモデルや平面の画像や模様,文字など)をカメラ画像に合成するための情報に基づいてアドレスコードを生成することにより、格子パターンをARマーカーとして用いることができる。格子パターンを実装する方法としては形成に限定されず、例えば、格子パターンの点となる物質をスクリーン1にスプレー等で塗布する方法であってもよく、どのような方法であってもよい。
アドレスコードを埋め込んだ格子パターンでは、アドレスコードによって形成面上の絶対座標を定義することができるため、アドレスコードごとに異なる情報を付加することが可能である。このとき、カメラの移動に伴い、あるアドレスコードが一時的に見えなくなったことで、そのアドレスコードに対応する情報が画像上に付加できなくなったとしても、再度そのアドレスコードがカメラから見えた際には、そのアドレスコードに対応する情報を再び表示することができる。
一般に、これまでに使用されているARマーカーを用いてマーカーごとに異なる情報を付加したい場合、多くの種類のARマーカーが必要になる。これに対し、アドレスコードを埋め込んだ格子パターンをARマーカーとして用いると、アドレスコードを変えることで、容易に多様な情報を付加することが可能である。
これまでに使用されているARマーカーは、ロバストに位置・姿勢を求めるために、Hiroマーカーのように、四角形の枠内に固有のコードや模様をもつものが使用されていた。これに対して、アドレスコードを埋め込んだ格子パターンは、点の座標で情報を表現できるため、形成されるARマーカーを目立たなくすることができる。また、形成の際に、特定の方向の光のみを反射する材質や可視光以外の光(例えば赤外光)を放出または反射する材質等を格子パターンとしてスクリーンに形成することが考えられる。このような材質を用いることにより、観測者からは格子パターンは見えないARマーカーを実現することができる。