(57)【特許請求の範囲】
【請求項１】
プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成するライン照明生成部と、
前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御する同期制御部と、
前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、
前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出するＬＴ行列算出部と、
を含み、
前記ライン照明生成部は、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、
前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、
前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、
前記ＬＴ行列算出部は、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出するＬＴ行列生成装置。
【請求項２】
照明を照射するプロジェクタを、複数のプロジェクタのうちの何れかに切り替える切替部を更に含み、
前記ライン照明生成部は、前記切替部によって切り換えられたプロジェクタから照射するための前記縦ラインの照明又は前記横ラインの照明を生成し、
前記同期制御部は、前記切替部によって切り替えられたプロジェクタから照明を照射させ、
前記ＬＴ行列算出部は、前記切替部によって切り換えられたプロジェクタについて、前記ライト・トランスポート行列を算出する請求項１記載のＬＴ行列生成装置。
【請求項３】
前記ＬＴ行列算出部は、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複するカメラ応答の画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記カメラ応答行列を生成し、
左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複する画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記プロジェクタ照明行列を生成する請求項１又は２記載のＬＴ行列生成装置。
【請求項４】
ライン照明生成部と、同期制御部と、カメラ応答観測部と、ＬＴ行列算出部を含む、ＬＴ行列生成装置における、ＬＴ行列生成方法であって、
前記ライン照明生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成し、
前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御し、
前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、
前記ＬＴ行列算出部は、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する
ことを含み、
前記ライン照明生成部が生成することでは、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、
前記同期制御部が制御することでは、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、
前記カメラ応答観測部が検出することでは、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、
前記ＬＴ行列算出部が算出することでは、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出するＬＴ行列生成方法。
【請求項５】
コンピュータを、請求項１〜請求項３の何れか１項記載のＬＴ行列生成装置を構成する各部として機能させるためのプログラム。
【請求項６】
コンピュータを、請求項１〜請求項３の何れか１項記載のＬＴ行列生成装置を構成する各部として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＬＴ行列生成装置、方法、プログラム、及び記録媒体に係り、特に、プロジェクション・マッピングに関する行列を生成するＬＴ行列生成装置、方法、プログラム、及び記録媒体に関する。
【背景技術】
【０００２】
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であればパーソナルスペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物（以下、被写体と称する）へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング（projection mapping）として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
【０００３】
プロジェクション・マッピングでは、所定画像を正確に投影するために、目視確認と手動操作によって、画素単位での位置合わせが行われている。これに対して、プロジェクタ投影の状態をカメラによって把握し、所定画像を指定された位置に投影するために、プロジェクタ・カメラシステムが利用されている。プロジェクタ・カメラシステムは、プロジェクタとカメラが連動して、カメラからのフィードバック画像に応じて、プロジェクタから投影出力する画像を処理する。通常、平面なスクリーンにプロジェクション・マッピングする場合には、プロジェクタ画面上の点とカメラ画面上の点を、キャリブレーション作業で得た平面射影変換（plane-homography）を使い、スクリーン面を介して対応付ける。この対応関係を利用して、所定画像をスクリーン面の決められた場所に投影する。もし、空間構造に凹凸があったり曲がった構造である場合には、その空間構造を事前に把握しなければならない。
【０００４】
例えば、レーザ計測を利用して、被写体の空間構造、あるいは凹凸形状を得る方法が知られている（非特許文献１）。その形状に合わせて所定画像を幾何的に変形させて、平面スクリーンと同様の状態で指定個所に所定画像を投影する。あるいは、構造光（structured light）と呼ばれる幾何パターンをプロジェクタから投影し、カメラで観測した歪み画像から空間構造の凹凸形状あるいは奥行きを計測する方式も利用できる。このように、外界または被写体の空間構造をレーザ計測またはプロジェクタ・カメラシステムを利用して空間構造を把握し、その凹凸形状または奥行きに合わせて指定個所へ所定画像を投影する。
【０００５】
これに対して、外界の空間構造を計測せずに、ライト・トランスポートを利用したプロジェクション・マッピングが知られている（非特許文献２）。ライト・トランスポート（light transport）とは、プロジェクタ・カメラシステムを使ったとき、プロジェクタ照明の各画素とカメラ応答の各画素間の幾何的、光学的対応関係を表現したデータである。説明の都合上、プロジェクタから投影する画像のサイズをＮ×Ｎ画素、カメラで観測する画像のサイズをＭ×Ｍ画素とするが、縦横のサイズが同じサイズである必要はない。ライト・トランスポートを獲得するには、プロジェクタから何らかの照明パターンを投影して、カメラによりその応答を観測する。通常、図１２に示すように、複数の照明パターン：Ｐ（１），Ｐ（２），．．．，Ｐ（Ｌ）が使われ、それに応じてカメラ応答：Ｃ（１），Ｃ（２），．．．，Ｃ（Ｌ）を得る。この例では、Ｌ種類の照明パターンが使われているが、ライト・トランスポートを獲得するときの条件として、それぞれ異なった照明パターンでなければならない。例えば、プロジェクタ画素の１点１点を単色光で順番に点灯させる。この方式は、brute-force scanningと呼ばれており、全てのプロジェクタ画素と全てのカメラ画素間の直接反射光と間接反射光を計測することができる。各点光源の画像系列：Ｐ（１），Ｐ（２），．．．，Ｐ（Ｌ）と、そのカメラ応答の画像系列：Ｃ（１），Ｃ（２），．．．，Ｃ（Ｌ）を列ベクトル化して並べると、ライト・トランスポート行列（light transport matrix）と呼ばれるＭ２×Ｎ２の行列Ｔ＾が得られる。この行列の転置Ｔ＾Ｔを利用して、プロジェクタからの視点から観測されるであろう仮想画像（dual photography）を人工的に生成する方法が知られている（非特許文献２）。なお、文字の後ろに＾がついている文字は行列又はベクトル表記を表すものとする。
【０００６】
また、プロジェクション・マッピングでは、任意の照明を当てた場合の被写体の状態を把握する必要がある。ＣＧの分野では、これはリライティング（relighting）と呼ばれており、ライト・トランスポート行列Ｔ＾を使えば、所定の照明を設定したときのリライティング・シミュレーションが可能である（非特許文献２）。一般的に、レーザあるいは構造光を使った３次元形状計測では直接反射光のみを受光することを前提としている。このため、被写体の構造によって発生する光学的な間接反射光、並びに、それらの多重反射光を扱うことができない。これに対して、ライト・トランスポートはカメラ画素においては点光源からの光が物体表面で反射した直接反射光、物体表面からそれ以外の表面で反射した間接反射光、並びに、これらの複数の反射光を含む多重反射光を扱う。ライト・トランスポートを利用すれば、直接反射光と間接反射光を区別することなく、全てのプロジェクタ画素と全てのカメラ画素間の対応付けに基づいた高精度なリライティングまたはプロジェクション・マッピングを可能とする。なお、以降では、ライト・トランスポートをＬＴ、ライト・トランスポート行列をＬＴ行列と略する。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】J. Shimamura and K. Arakawa:“Location-Aware Projection with Robust 3-D Viewing Point Detection and Fast Image Deformation”, Proc. ACM International Conference on Multimedia,pp.296-299, 2004.
【非特許文献２】P. Sen, B. Chen, G. Garg, S.R. Marschner, M. Horowitz, M. Levoy, and H.P.A. Lensch: “Dual Photography”,ACM Transactions on Graphics, vol.23, no.3, pp.745-755, 2005.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従来技術のＬＴを利用したリライティングまたはプロジェクション・マッピングは、レーザあるいは構造光による３次元計測に頼らずに、任意形状に対して所定画像を投影することができる。ただし、brute-force scanningでは、各画素を点光源として使い、カメラ応答の画素を検出する作業を順番に繰り返すと、単純に点光源の数に応じた画像を観測する必要があるという問題がある。例えば、１，０００×１，０００画素の画像を点光源として使うと、１，０００，０００枚の画像を処理してＬＴＭを生成することになり、計算機コストが高く、その処理に多くの時間がかかる。さらに、プロジェクタの解像度をあげたり、扱う画素数を増加させると、カメラ応答として観測する画像の枚数は著しく増大する。
【０００９】
本発明では、上記問題を解決するために成されたものであり、少ない画像からライト・トランスポートを効率的に獲得することができるＬＴ行列生成装置、方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、第１の発明に係るＬＴ行列生成装置は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成するライン照明生成部と、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御する同期制御部と、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出するＬＴ行列算出部と、を含んで構成されている。
【００１１】
第２の発明に係るＬＴ行列生成方法は、ライン照明生成部と、同期制御部と、カメラ応答観測部と、ＬＴ行列算出部を含む、ＬＴ行列生成装置における、ＬＴ行列生成方法であって、前記ライン照明生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成し、前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御し、前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、前記ＬＴ行列算出部は、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する。
【００１２】
第１及び第２の発明によれば、ライン照明生成部により、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、同期制御部により、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、カメラ応答観測部により、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、ＬＴ行列算出部により、ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、組み合わせの一方のフレーム番号に対する観測画像について検出されたカメラ応答の画素と、組み合わせの他方のフレーム番号に対する観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、組み合わせの一方のフレーム番号に対応する縦ラインの照明と組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、プロジェクタから照射される照明の画素及びカメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する。
【００１３】
このように、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【００１４】
また、第１の発明において、前記ライン照明生成部は、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、前記ＬＴ行列算出部は、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出してもよい。
【００１５】
また、第１の発明において、照明を照射するプロジェクタを、複数のプロジェクタのうちの何れかに切り替える切替部を更に含み、前記ライン照明生成部は、前記切替部によって切り換えられたプロジェクタから照射するための前記縦ラインの照明又は前記横ラインの照明を生成し、前記同期制御部は、前記切替部によって切り替えられたプロジェクタから照明を照射させ、前記ＬＴ行列算出部は、前記切替部によって切り換えられたプロジェクタについて、前記ライト・トランスポート行列を算出してもよい。
【００１６】
また、第１の発明において、前記ＬＴ行列算出部は、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複するカメラ応答の画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記カメラ応答行列を生成し、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複する画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記プロジェクタ照明行列を生成してもよい。
【００１７】
また、本発明のプログラムは、コンピュータを、上記のＬＴ行列生成装置を構成する各部として機能させるためのプログラムである。
【００１８】
また、本発明の記録媒体は、上記のプログラムを記憶した記録媒体である。
【発明の効果】
【００１９】
以上説明したように、本発明のＬＴ行列生成装置、方法、プログラム、及び記録媒体によれば、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の第１の実施の形態に係るＬＴ行列生成装置の機能的構成を示すブロック図である。
【図２】ライン照明生成部における縦横ライン照明の例を示す図である。
【図３】カメラ応答観測部での応答データの形式を示す図である。
【図４】画像のベクトル化とカメラ応答行列を示す図である。
【図５】プロジェクタ照明画像のベクトル化とプロジェクタ照明行列を示す図である。
【図６】本発明の第１の実施の形態に係るＬＴ行列生成装置における同期制御処理ルーチンを示すフローチャート図である。
【図７】本発明の第１の実施の形態に係るＬＴ行列生成装置におけるライン照明生成処理ルーチンを示すフローチャート図である。
【図８】本発明の第１の実施の形態に係るＬＴ行列生成装置におけるカメラ応答観測処理ルーチンを示すフローチャート図である。
【図９】本発明の第１の実施の形態に係るＬＴ行列生成装置におけるＬＴ行列算出処理ルーチンを示すフローチャート図である。
【図１０】本発明の第１の実施の形態に係るＬＴ行列生成装置におけるカメラ応答行列への書き込み処理ルーチンを示すフローチャート図である。
【図１１】本発明の第１の実施の形態に係るＬＴ行列生成装置におけるプロジェクタ照明行列への書き込み処理ルーチンを示すフローチャート図である。
【図１２】未校正なプロジェクタ・カメラシステム（単色照明）を使ったＬＴ行列の測定を示す図である。
【図１３】未校正なプロジェクタ・カメラシステム（カラー照明）を使ったＬＴ行列の測定を示す図である。
【図１４】本発明の第２の実施の形態に係るＬＴ行列生成装置の機能的構成を示すブロック図である。
【図１５】本発明の第２の実施の形態に係るＬＴ行列生成装置における同期制御処理ルーチンを示すフローチャート図である。
【図１６】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるライン照明生成処理ルーチンを示すフローチャート図である。
【図１７】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるカメラ応答観測処理ルーチンを示すフローチャート図である。
【図１８】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるＬＴ行列算出処理ルーチンを示すフローチャート図である。
【図１９】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるＬＴ行列算出処理ルーチンを示すフローチャート図である。
【図２０】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるカメラ応答行列への書き込み処理ルーチンを示すフローチャート図である。
【図２１】本発明の第２の実施の形態に係るＬＴ行列生成装置におけるプロジェクタ照明行列への書き込み処理ルーチンを示すフローチャート図である。
【図２２】本発明の第３の実施の形態に係るＬＴ行列生成装置の機能的構成を示すブロック図である。
【図２３】本発明の第４の実施の形態に係るＬＴ行列生成装置の機能的構成を示すブロック図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
＜本発明の第１の実施の形態に係るＬＴ行列生成装置の構成＞
次に、本発明の第１の実施の形態に係るＬＴ行列生成装置の構成について説明する。図１に示すように、本発明の第１の実施の形態に係るＬＴ行列生成装置１００は、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されている。なお、第１の実施の形態においては、１台のプロジェクタと１台のカメラのプロジェクタ・カメラシステムを用いる。
【００２３】
カメラ１０は、プロジェクタ１２により投影された単色画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部２６に出力する。なお、第１の実施の形態においては、例えば、単色照明に白色照明を用いる。
【００２４】
プロジェクタ１２は、単色照明を用いて、ライン照明生成部２４による出力指示に従って被写体を投影する。
【００２５】
演算部２０は、同期制御部２２と、ライン照明生成部２４と、カメラ応答観測部２６と、画像データベース２８と、ＬＴ行列算出部３０とを含んで構成されている。
【００２６】
同期制御部２２は、フレーム番号毎に、プロジェクタ１２から照明を照射させ、照射された照明をカメラ１０により撮影するように制御する。具体的には、まず、プロジェクタ１２から投影される特定の照明パターンを表すフレーム番号ｆをｆ＝１に初期化する。次に、カメラ応答観測部２６からの応答信号を待ち、当該応答信号を受信すると、ライン照明生成部２４と、カメラ応答観測部２６とへフレーム番号ｆを送出する。フレーム番号ｆを送出することにより、同じフレーム番号においてプロジェクタ１２からの照明と、カメラ１０の観測との同期をとる。次に、フレーム番号ｆをｆ＝ｆ＋１とカウントアップし、再び、カメラ応答観測部２６からの応答信号を待つ。以降、プロジェクタ１２からの照明とカメラ１０における観測とをフレーム番号ｆで同期をとりながら、上述の処理と同様にフレーム番号ｆをライン照明生成部２４と、カメラ応答観測部２６とへの送出を繰り返す。そして、フレーム番号ｆの値が、ライン照明生成部２４において投影する全ての照明パターンの数の値２Ｌとなるフレーム番号ｆをライン照明生成部２４とカメラ応答観測部２６とに送出した時点で、同期制御部２２は、上述の繰り返し処理を停止する。
【００２７】
ライン照明生成部２４は、プロジェクタ１２から投影するプロジェクタ画面における照明パターンを生成する。具体的には、まず、プロジェクタ１２から、縦横ラインの照明を投影する範囲：Ｎ×Ｎ（＝１，０００×１，０００）画素の範囲を設定する。次に、縦横ラインの照明の幅ｎを設定する。理想的には、ｎ＝１画素を設定してもよいが、照明が微弱なために十分なカメラ応答が得られない場合があることを考慮して、第１の実施の形態においては、縦横ラインの照明の幅ｎはｎ＝４画素に設定する。ただし、ｎＬ＝Ｎ（Ｌは整数）とし、対象画素領域の縦横サイズＮがｎの倍数とする。そして、同期制御部２２からフレーム番号ｆを受信すると、当該フレーム番号ｆがｆ＜＝Ｌである場合、縦ライン照明を設定し、当該フレーム番号ｆに対応する当該縦ライン照明を画像データベース２８に記憶すると共に、当該縦ライン照明をプロジェクタ１２から投影させる。一方、当該フレーム番号ｆがｆ＞Ｌの場合、横ライン照明を設定し、当該フレーム番号ｆに対応する当該横ライン照明を画像データベース２８に記憶すると共に、当該横ライン照明をプロジェクタ１２から投影させる。図２にプロジェクタ画素領域をＮ×Ｎ画素としたときの縦ライン照明画像と横ライン照明画像の例を示す。縦ラインはｎ×Ｎ画素の大きさをもち、フレーム番号ｆに従って、左端から右端へ幅ｎの等間隔で移動する。一方、横ライン照明は、Ｎ×ｎ画素の大きさをもち、フレーム番号ｆに従って、下端から上端へ幅ｎの等間隔で移動する。縦ライン照明は、ｆ＝１ではプロジェクタ画素領域の左端に位置し、ｆ＝Ｌのときプロジェクタ画素領域の右端に位置する。一方、横ライン照明は、ｆ＝Ｌ＋１のときプロジェクタ画素領域の下端に位置し、ｆ＝２Ｌのときプロジェクタ画素領域の上端に位置する。また、ライン照明生成部２４は、同期制御部２２から、フレーム番号ｆを受信するたびに、上記の縦ライン照明又は横ライン照明を設定し、全てのライン照明（２Ｌ本のライン照明）を順番にプロジェクタ１２から投影し終えるまで上記処理を繰り返す。
【００２８】
カメラ応答観測部２６は、カメラ１０において観測した、プロジェクタ１２から投影された照明光に対するカメラ応答を検出する。具体的には、まず、観測範囲を設定する。第１の実施の形態においては、カメラ１０において観測された画像全体を処理対象とせず、当該設定により指定された範囲のカメラ応答を検出する。第１の実施の形態においては、例えば、画像内でのＭ×Ｍ（＝１，０００×１，０００）画素の範囲を指定する。次に、カメラ応答を検出するための閾値を設定する。当該閾値は、カメラ応答を検出する範囲の画素の各々について、当該閾値以上の輝度値である画素をカメラ応答として検出する。次に、同期制御部２２からフレーム番号ｆを受信すると、カメラ１０が画像を取得することができる状態かのチェックを行い、撮影可能状態ならばカメラ１０から観測画像を取得する。次に、画像データベース２８に記憶されているプロジェクタ１２によるプロジェクタ照明を投影していない状態の観測画像である背景画像を取得し、観測画像と背景画像との背景差分を処理する。当該背景差分において、蛍光灯などの環境光の下では画像雑音が多く混入するため、設定した閾値として例えば１０階調に設定しておき、当該値よりも大きい画素の各々をカメラ応答の画素として検出する。次に、検出されたカメラ応答の画素の各々について、２次元座標と共に、カメラ応答の輝度値を所定のデータ形式で応答データとして画像データベース２８に記憶する。図３左に、カメラ応答を濃淡値として応答データを保存する場合の例を示し、左端には、検出された画素の座標が書き込まれ、その右側にカメラ応答の輝度値が書き込まれる場合を例として示す。そして、カメラ１０による次のカメラ観測に備えて、同期制御部２２へ応答信号を送信し、フレーム番号を受信するまで待機する。なお、カメラ応答観測部２６の処理は、プロジェクタ１２から投影される縦ライン照明又は横ライン照明を観測したカメラ１０における観測画像から取得した応答データを画像データベース２８に記憶し、全ての縦ライン照明及び横ライン照明の各々についての応答データを画像データベース２８に記憶した時点で終了する。なお、初回に、カメラ観測を行う場合には、カメラ応答観測部２６から応答信号を同期制御部２２へ送信する。
【００２９】
画像データベース２８には、フレーム番号ｆの各々に対応した観測画像に対する応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
【００３０】
ＬＴ行列算出部３０は、画像データベース２８に記憶されているフレーム番号ｆの各々に対応した観測画像に対する応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の幾何的、光学的対応関係を表すライト・トランスポート（以後、ＬＴとする）を抽出し、ライト・トランスポート行列（以後、ＬＴ行列とする）を生成する。
【００３１】
具体的には、まず、カウンタｉをｉ＝１に初期化する。画像データベース２８に記憶されている縦ライン照明に対する応答データは、当該応答データについての観測画像が観測された順番に記憶されており、当該カウンタｉは、当該応答データを処理する指標として用いる。次に、画像データベース２８からカウンタｉに対応する縦ライン照明に対する応答データＶｉ（フレーム番号ｉに対する応答データ）を取得する。次に、カウンタｊをｊ＝１に初期化する。画像データベース２８に記憶されている横ライン照明に対する応答データは、当該応答データについての観測画像が観測された順番に記憶されており、当該カウンタｊは、当該応答データを処理する指標として用いる。次に、画像データベース２８からカウンタｊに対応する横ライン照明に対する応答データＨｊ（フレーム番号ｊ＋Ｌに対する応答データ）を取得する。次に、取得した応答データＶｉと応答データＨｊとに基づいて、カメラ応答が重複する座標を探す。すなわち、縦ライン照明と横ライン照明との両方に応答した画素を見つける。両方の照明に応答した画素が見つかった場合、当該画素の各々について、応答データ（第１の実施の形態においては輝度値）の平均値を計算し、カメラ応答行列Ｃ＾への書き込みを行う。
【００３２】
次に、画像データベース２８から、カウンタｉに対応する縦ラインパターン（フレーム番号ｉに対応する縦ラインパターン）とカウンタｊに対応する横ラインパターン（フレーム番号ｊ＋Ｌに対応する横ラインパターン）とを取得し、当該縦ラインパターンと、当該横ラインパターンとにおいて重複するプロジェクタ画素を算出する。縦ラインパターンはｎ×Ｎ画素、横ラインパターンはＮ×ｎ画素により設定されているので、カウンタｉ＝１、カウンタｊ＝１のとき、Ｎ×Ｎ画素領域では左隅下のｎ×ｎ画素が算出される。次に、プロジェクタ照明行列Ｐへ書き込みを行う。次に、カウンタｊの値が横ライン照明の本数Ｌの値と一致しないとき、カウンタｊの値をｊ＝ｊ＋１と増加させ、上記、画像データベース２８からカウンタｊに対応する横ライン照明に対する応答データＨｊを取得する処理から繰り返す。一方、カウンタｊの値がＬの値と一致するときは、ｊをｊ＝１に初期化し、カウンタｉの値をｉ＝ｉ＋１と増加させ、上記、画像データベース２８からカウンタｉに対応する縦ライン照明に対する応答データＶｉを取得する処理から繰り返す。当該繰り返し処理により、全ての縦ライン照明及び横ライン照明に対応したカメラ応答に対する応答データの各々について、処理が行われる。
【００３３】
上記処理により、縦ライン照明に対応したカメラ応答に対する応答データはＬ個、横ライン照明に対応したカメラ応答に対する応答データはＬ個あるので、カメラ応答行列Ｃ＾の行方向に各列ベクトルＣ＾ｘ（ｘ＝１〜Ｌ２）が配置される。また、同様に、プロジェクタ照明行列Ｐ＾の行方向に、各プロジェクタ照明画像の列ベクトルＰ＾ｘ（ｘ＝１〜Ｌ２）が配置される。ＬＴ行列算出部３０は、作成されたカメラ応答行列Ｃ＾とプロジェクタ照明行列Ｐ＾とに基づいて、以下の式に従って、ＬＴ行列を算出し、出力部９０から出力する。
Ｔ＾＝Ｃ＾Ｐ＾Τ
ただし、Τは転置を表す。
【００３４】
なお、扱うプロジェクタ画素またはカメラ画素の大きさによって、カメラ応答行列Ｃ＾またはプロジェクタ照明行列Ｐ＾が巨大な行列になる場合があるため、第１の実施の形態においては、計算機メモリの過剰な割り当てを回避するために、市販ソフトで使われているスパース行列の形式を利用する。スパース行列の形式とは、０を含む要素を全て削除した行列形式であり、行列要素が非零のときだけ、データをもつコンパクトな行列データ形式である。
【００３５】
カメラ応答行列Ｃ＾への書き込みについて説明すると、カメラ応答行列Ｃ＾への書き込みは、まず、Ｍ×Ｍ画素の画像メモリを確保する。次に、Ｍ×Ｍ画素領域において、検出されたカメラ応答が重複する座標の各々について、算出された当該画素の応答データの平均値をセットした画像を作成する。次に、Ｍ×Ｍ画素領域に対して、図４左のように左から右の一方方向の画素の走査を、下から上へと繰り返すことにより、ジグザグに走査（ジグザグスキャン）して、１列に再配置した列ベクトルＣ＾ｘを生成する。次に、当該列ベクトルＣ＾ｘを図４右に示すように、カメラ応答行列Ｃ＾の左から順に代入する。
【００３６】
プロジェクタ照明行列Ｐ＾への書き込みについて説明すると、プロジェクタ照明行列Ｐ＾への書き込みは、まず、Ｎ×Ｎ画素の画像メモリを確保する。次に、Ｎ×Ｎ画素の画像領域において、算出されたｎ×ｎのプロジェクタ画素の位置に、予め設定されている照明の輝度値をセットし、Ｎ×Ｎ画素のプロジェクタ照明画像を一時的に作成する。次に、当該プロジェクタ照明画像について、図５左に示すように、Ｎ×Ｎ画素の対象領域に対して、左から右の一方方向の画素の走査を、下から上へと繰り返すことにより、ジグザグにスキャンして、１列に再配置した列ベクトルＰ＾ｘを生成する。さらに、当該ベクトルのノルムを計算し、当該列ベクトルＰ＾ｘをその大きさで割り、正規化する。次に、正規化した列ベクトルＰ＾ｘを図５右に示すように、プロジェクタ照明行列Ｐ＾の左から順に代入する。
【００３７】
＜本発明の第１の実施の形態に係るＬＴ行列生成装置の作用＞
次に、本発明の第１の実施の形態に係るＬＴ行列生成装置１００の作用について説明する。まず、同期制御処理ルーチンについて説明する。
【００３８】
図６に示す、ステップＳ１００では、フレーム番号ｆの値を１に初期化する。
【００３９】
次に、ステップＳ１０２では、カメラ応答観測部２６から応答信号を受信したか否かを判定する。応答信号を受信した場合には、ステップＳ１０４へ移行し、応答信号を受信しない場合には、ステップＳ１０２の処理を繰り返す。
【００４０】
次に、ステップＳ１０４では、ステップＳ１００又はステップＳ１０８において取得したフレーム番号ｆをライン照明生成部２４及びカメラ応答観測部２６に送出する。
【００４１】
次に、ステップＳ１０６では、フレーム番号ｆの値が２Ｌの値か否かを判定する。フレーム番号ｆの値が２Ｌである場合には、同期制御処理ルーチンを終了し、フレーム番号ｆの値が２Ｌよりも小さい場合には、ステップＳ１０８へ移行する。
【００４２】
ステップＳ１０８では、フレーム番号ｆの値に１を加えた値をフレーム番号ｆの値として設定し、ステップＳ１０２へ移行して、ステップＳ１０２〜ステップＳ１０６の処理を繰り返す。
【００４３】
次に、図７に示す、ライン照明生成処理ルーチンについて説明する。
【００４４】
まず、ステップＳ２００では、縦横ラインの照明を投影する照明対象領域をＮ×Ｎ画素と設定する。
【００４５】
次に、ステップＳ２０２では、縦ライン及び横ラインの照明の幅ｎを設定する。
【００４６】
次に、ステップＳ２０４では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ２０６へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ２０４の処理を繰り返す。
【００４７】
次に、ステップＳ２０６では、ステップＳ２０４において取得したフレーム番号ｆの値がＬより大きいか否かを判定する。フレーム番号ｆがＬ以下である場合には、ステップＳ２０８へ移行し、フレーム番号ｆがＬより大きい場合には、ステップＳ２１２へ移行する。
【００４８】
次に、ステップＳ２０８では、フレーム番号ｆに対応する縦ライン照明を設定する。
【００４９】
次に、ステップＳ２１０では、ステップＳ２０８において設定した縦ライン照明に対応する縦ラインパターンを、ステップＳ２０４において取得したフレーム番号ｆと対応させて画像データベース２８に記憶する。
【００５０】
ステップＳ２１２では、フレーム番号ｆに対応する横ライン照明を設定する。
【００５１】
次に、ステップＳ２１４では、ステップＳ２１２において設定した横ライン照明に対応する横ラインパターンを、ステップＳ２０４において取得したフレーム番号ｆと対応させて画像データベース２８に記憶する。
【００５２】
ステップＳ２１６では、ステップＳ２０８又はステップＳ２１２において設定した縦ライン照明又は横ライン照明をプロジェクタ１２から出力する。
【００５３】
次に、ステップＳ２１８では、ステップＳ２０４において取得したフレーム番号ｆの値が２Ｌであるか否かを判定する。フレーム番号ｆの値が２Ｌである場合には、ライン照明生成処理ルーチンを終了し、フレーム番号ｆの値が２Ｌより小さい場合には、ステップＳ２０４へ移行し、ステップＳ２０４〜ステップＳ２１８の処理を繰り返す。
【００５４】
次に、図８に示す、カメラ応答観測処理ルーチンについて説明する。
【００５５】
まず、ステップＳ３００では、カメラ１０において観測する範囲をＭ×Ｍ画素の範囲に設定する。
【００５６】
次に、ステップＳ３０２では、カメラ応答に対する所定の閾値を設定する。
【００５７】
次に、ステップＳ３０４では、画像データベース２８に記憶されている背景画像を読み込む。
【００５８】
次に、ステップＳ３０６では、同期制御部２２へ応答信号を送信する。
【００５９】
次に、ステップＳ３０８では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ３１０へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ３０８の処理を繰り返す。
【００６０】
次に、ステップＳ３１０では、カメラ１０の状態をチェックする。
【００６１】
次に、ステップＳ３１２では、ステップＳ３１０において取得したカメラ１０の状態が、撮影可能状態であるか否かを判定する。カメラ１０が撮影可能状態である場合には、ステップＳ３１４へ移行し、カメラ１０が撮影可能状態でない場合には、ステップＳ３１０へ移行する。
【００６２】
次に、ステップＳ３１４では、カメラ１０から観測画像を取得する。
【００６３】
次に、ステップＳ３１６では、ステップＳ３０４において取得した背景画像と、ステップＳ３１４において取得した観測画像との背景差分を取得する。
【００６４】
次に、ステップＳ３１８では、ステップＳ３０２において取得した閾値と、ステップＳ３１６において取得した背景差分とから、カメラ応答の画素の各々を検出する。
【００６５】
次に、ステップＳ３２０では、ステップＳ３１８において取得したカメラ応答の画素の各々の輝度値を応答データとして、ステップＳ３０８において取得したフレーム番号ｆと対応づけて画像データベース２８に記憶する。
【００６６】
次に、ステップＳ３２２では、ステップＳ３０８において取得したフレーム番号ｆの値が２Ｌであるか否かを判定する。フレーム番号ｆの値が２Ｌである場合には、カメラ応答観測処理ルーチンを終了し、フレーム番号ｆの値が２Ｌよりも小さい場合には、ステップＳ３０６へ移行し、ステップＳ３０６〜ステップＳ３２２の処理を繰り返す。
【００６７】
次に、図９に示す、ＬＴ行列算出処理ルーチンについて説明する。
【００６８】
まず、ステップＳ４００では、カウンタｉの値を１に初期化する。
【００６９】
次に、ステップＳ４０２では、画像データベース２８に記憶されている、ｉ番目の縦ライン照明に対応する応答データＶｉを読み込む。
【００７０】
次に、ステップＳ４０４では、カウンタｊの値を１に初期化する。
【００７１】
次に、ステップＳ４０６では、画像データベース２８に記憶されている、ｊ番目の横ライン照明に対応する応答データＨｊを読み込む。
【００７２】
次に、ステップＳ４０８では、ステップＳ４０２において取得した応答データＶｉと、ステップＳ４０６において取得した応答データＨｊとに基づいて、カメラ応答の画素の各々が重複する座標の各々を検出する。
【００７３】
次に、ステップＳ４１０では、ステップＳ４０８において取得したカメラ応答の画素の各々が重複する座標の各々における、画素の各々について、ステップＳ４０２において取得した応答データＶｉと、ステップＳ４０６において取得した応答データＨｊとに基づいて、当該画素の輝度値の平均値を計算する。
【００７４】
次に、ステップＳ４１２では、ステップＳ４０８において取得したカメラ応答の画素の各々が重複する座標の各々と、ステップＳ４１０において取得した重複する座標の各々における画素の各々の輝度値の平均値とに基づいて、カメラ応答行列Ｃ＾へ書き込みを行う。
【００７５】
次に、ステップＳ４１４では、カウンタｉに対応する縦ラインパターンと、カウンタｊに対応する横ラインパターンとを画像データベース２８から読み込む。
【００７６】
次に、ステップＳ４１６では、ステップＳ４１４において取得したカウンタｉに対応する縦ラインパターンと、カウンタｊに対応する横ラインパターンとに基づいて、プロジェクタ行列Ｐ＾へ書き込みを行う。
【００７７】
次に、ステップＳ４１８では、カウンタｊの値がＬか否かを判定する。カウンタｊの値がＬである場合には、ステップＳ４２２へ移行し、カウンタｊの値がＬよりも小さい場合には、ステップＳ４２０へ移行する。
【００７８】
ステップＳ４２０では、カウンタｊの値に１を加えた値をカウンタｊの値に設定する。
【００７９】
ステップＳ４２２では、カウンタｉの値がＬか否かを判定する。カウンタｉの値がＬである場合には、ステップＳ４２６へ移行し、カウンタｉの値がＬよりも小さい場合には、ステップＳ４２４へ移行する。
【００８０】
ステップＳ４２４では、カウンタｉの値に１を加えた値をカウンタｉの値に設定する。
【００８１】
ステップＳ４２６では、ステップＳ４１２において取得したカメラ応答行列Ｃ＾と、ステップＳ４１６において取得したプロジェクタ照明行列Ｐ＾とに基づいて、ＬＴ行列Ｔ＾を算出し、出力部９０から出力して、ＬＴ行列算出処理ルーチンを終了する。
【００８２】
上記ステップＳ４１２のカメラ応答行列への書き込み処理について、図１０において詳細に説明する。
【００８３】
図１０のステップＳ５００では、Ｍ×Ｍ画素の画像メモリを確保する。
【００８４】
次に、ステップＳ５０２では、ステップＳ４０８において取得したカメラ応答の画素の各々が重複する座標の各々と、ステップＳ４１０において取得した重複する座標の各々における画素の輝度値の平均値とに基づいて、ステップＳ５００において取得したＭ×Ｍ画素の画像メモリにおける、カメラ応答の画素の各々が重複する座標の各々に、当該座標の画素の輝度値の平均値をセットする。
【００８５】
次に、ステップＳ５０４では、ステップＳ５０２において取得した輝度値の平均値がセットされたＭ×Ｍ画素の画像メモリに基づいて、１列に再配置した列ベクトルＣ＾ｘ（ｘ＝１〜Ｌ２）を生成する。
【００８６】
次に、ステップＳ５０６では、ステップＳ５０４において取得した列ベクトルＣ＾ｘを図４右に示すように、カメラ応答行列Ｃ＾の左から順に代入する。
【００８７】
上記ステップＳ４１６のプロジェクタ照明行列への書き込み処理について、図１１において詳細に説明する。
【００８８】
図１１のステップＳ６００では、Ｎ×Ｎ画素の画像メモリを確保する。
【００８９】
次に、ステップＳ６０２では、ステップＳ４１４において取得したカウンタｉに対応する縦ラインパターンと、カウンタｊに対応する横ラインパターンとに基づいて、ｎ×ｎのプロジェクタ画素の位置を算出し、当該算出された位置に予め設定されている照明の輝度値をセットし、プロジェクタ照明画像を作成する。
【００９０】
次に、ステップＳ６０４では、ステップＳ６０２において取得したプロジェクタ照明画像に基づいて、１列に再配置した列ベクトルＰ＾ｘ（ｘ＝１〜Ｌ２）を生成する。
【００９１】
次に、ステップＳ６０６では、ステップＳ６０４において取得した列ベクトルＰ＾ｘを正規化する。
【００９２】
次に、ステップＳ６０８では、ステップＳ６０６において正規化された列ベクトルＰ＾ｘをプロジェクタ照明行列Ｐ＾の左から順に代入する。
【００９３】
以上説明したように、本発明の第１の実施の形態に係るＬＴ行列生成装置によれば、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【００９４】
また、プロジェクタ・カメラシステムの動作を活用したリライティングまたはプロジェクション・マッピングにおいて、面倒な計測作業を回避し、できるだけ少ない画像から直接反射光と間接反射光とのＬＴを効率的に得ることができる。
【００９５】
また、獲得したＬＴを使えば、光学的に複雑な反射・屈折現象により発生する被写体投影像をリライティングによって仮想的に生成することができる。さらに、そのリライティング画像を使った拡張現実や映像コミュニケーションを実現することが可能となる。
【００９６】
また、図１２に示した状況において、未校正なプロジェクタ・カメラシステムを使って、未知の任意形状の表面にプロジェクタからの縦横ラインの照明を投影したとき、それぞれの応答データから、プロジェクタ画面の各座標から照明した光線とカメラ画面の各座標の応答を結び付けるＬＴを効率的に獲得でき、それらを一度に扱うためのＬＴ行列Ｔ＾を計測することができる。
【００９７】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００９８】
例えば、第１の実施の形態においては、カメラにおいて明るさを示す濃淡画像を取得する場合について説明したが、これに限定されるものではなく、ＲＧＢからＹＩＱへ色変換した輝度画像を取得してもよい。
【００９９】
また、第１の実施の形態においては、カメラと、プロジェクタと、画像データベースとがＬＴ行列生成装置の構成要素として接続している場合について説明したが、これに限定されるものではない。例えば、カメラと、プロジェクタと、画像データベースとにおける、当該行列生成処理に必要なデータを取得することができれば、同期制御部と、カメラ応答観測部と、ＬＴ行列算出部とへのデータのやり取りは、ハードディスク、ＲＡＩＤ装置、及びＣＤ−ＲＯＭ等の記録媒体を利用してもよい。また、ネットワークを介してリモートなデータ資源を利用する形態でもよい。
【０１００】
また、第１の実施の形態においては、プロジェクタで投影する画素領域をＮ×Ｎ画素とする場合について説明したが、これに限定されるものではない。例えば、縦横の画素数は任意に設定してもよい。
【０１０１】
また、第１の実施の形態においては、縦横ラインの照明の幅ｎをｎ＝４とする場合について説明したが、これに限定されるものではない。例えば、一般的には、縦横ラインの照明の幅ｎは、使用するプロジェクタ、カメラ、あるいは環境に依存するため、システムパラメータとして事前テストにより十分なカメラ応答が得られる範囲でライン幅ｎを決定してもよい。
【０１０２】
また、第１の実施の形態においては、カメラ応答を検出する範囲をＭ×Ｍ画素と指定する場合について説明したが、これに限定されるものではない。例えば、縦横のサイズは任意に設定してもよい。
【０１０３】
また、第１の実施の形態においては、背景画像を、プロジェクタ照明を投影していない状態の観測画像とする場合について説明したが、これに限定されるものではない。例えば、プロジェクタ照明として黒を投影したときの観測画像を背景画像としてもよい。
【０１０４】
また、第１の実施の形態においては、カメラ応答観測部において、応答データを画像データベースに記憶する場合について説明したが、これに限定されるものではない。例えば、検出されたカメラ応答の画素の各々の輝度値を含むＭ×Ｍ画素をサブ画像として画像データベース２８に記憶してもよい。この場合には、サブ画像を用いてＬＴ行列を算出するようにすればよい。
【０１０５】
次に、第２の実施の形態に係るＬＴ行列生成装置について説明する。
【０１０６】
第２の実施の形態においては、カラー照明を用いて被写体を投影し、カラー画像を観測してＬＴ行列を算出している点が第１の実施の形態と異なる。なお、第１の実施の形態に係るＬＴ行列生成装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。
【０１０７】
＜第２の実施の形態に係るＬＴ行列生成装置の概要＞
まず、第２の実施の形態に係るＬＴ行列生成装置２００の概要について説明する。第２の実施の形態においては、図１３に示すように、βチャネルからの照明をプロジェクタから投影し、αチャネルのカメラ応答を観測して、ＬＴ行列Ｔ＾αβを獲得する。ただし、βはプロジェクタのＲＧＢのいずれかの色を指し、αはカメラのＲＧＢのいずれかの色を指し、その組み合わせによりＬＴ行列Ｔ＾αβは９種類あるものとする。本来、赤、緑、青のスペクトルは、可視光の波長帯において分布しているため、プロジェクタ・カメラシステムでは、プロジェクタとカメラ間とのカラー混合（color mixtures）が発生する。第２の実施の形態においては、カラー混合を考慮したＬＴ行列を獲得する。第２の実施の形態においては、プロジェクタがＲＧＢのカラー照明を用い、カメラでＲＧＢのカラー応答を観測する。
【０１０８】
＜本発明の第２の実施の形態に係るＬＴ行列生成装置の構成＞
次に、本発明の第２の実施の形態に係るＬＴ行列生成装置の構成について説明する。図１４に示すように、本発明の第２の実施の形態に係るＬＴ行列生成装置２００は、カメラ２１０と、プロジェクタ２１２と、演算部２２０と、出力部９０と、を含んで構成されている。
【０１０９】
カメラ２１０は、プロジェクタ２１２により投影された赤照明画像、緑照明画像、及び青照明画像を観測し、色値を表すＲＧＢ値を取得し、カメラ応答観測部２２６に出力する。
【０１１０】
プロジェクタ２１２は、赤照明画像、緑照明画像、及び青照明画像を用いて、ライン照明生成部２２４による出力指示に従って被写体を投影する。
【０１１１】
演算部２２０は、同期制御部２２２と、ライン照明生成部２２４と、カメラ応答観測部２２６と、画像データベース２２８と、ＬＴ行列算出部２３０とを含んで構成されている。
【０１１２】
同期制御部２２２は、フレーム番号毎に、プロジェクタ２１２から照明を照射させ、照射された照明をカメラ２１０により撮影するように制御する。具体的には、まず、プロジェクタ２１２から投影される特定の照明パターンを表すフレーム番号ｆをｆ＝１に初期化する。次に、カメラ応答観測部２２６からの応答信号を待ち、当該応答信号を受信すると、ライン照明生成部２２４と、カメラ応答観測部２２６とへフレーム番号ｆを送出する。フレーム番号ｆを送出することにより、同じフレーム番号においてプロジェクタ２１２からの照明と、カメラの観測との同期をとる。次に、フレーム番号ｆをｆ＝ｆ＋１とカウントアップし、再び、カメラ応答観測部２２６からの応答信号を待つ。以降、プロジェクタ２１２からの照明とカメラ２１０における観測の同期をフレーム番号ｆで同期をとりながら、同様にフレーム番号ｆをライン照明生成部２２４と、カメラ応答観測部２２６とに送出を繰り返す。そして、フレーム番号ｆの値が、ライン照明生成部２２４において投影する赤照明、緑照明、又は青照明の何れか１つの全ての照明パターンの数の値２Ｌであるフレーム番号ｆをライン照明生成部２２４とカメラ応答観測部２２６とに送出した時点で、フレーム番号ｆをｆ＝１に初期化し、以降同様に繰り返し処理を行い、さらに、フレーム番号ｆの値がライン照明生成部２２４において投影する赤照明、緑照明、又は青照明の何れか１つの全ての照明パターンの数の値２Ｌであるフレーム番号ｆをライン照明生成部２２４とカメラ応答観測部２２６とに送出した時点で、フレーム番号ｆをｆ＝１に初期化し、以降同様に繰り返し処理を行い、次の、フレーム番号ｆの値が２Ｌとなるフレーム番号ｆを送出した時点で、同期制御部２２２は、繰り返し処理を停止する。
【０１１３】
ライン照明生成部２２４は、プロジェクタ２１２から投影するプロジェクタ画面における照明パターンを、赤照明、緑照明、及び青照明の順番で生成する。具体的には、同期制御部２２２からフレーム番号ｆを受信すると、当該フレーム番号ｆがｆ＜＝Ｌのとき、赤照明の縦ライン照明を設定し、当該フレーム番号ｆに対応する当該赤照明の縦ライン照明を画像データベース２２８に記憶すると共に、当該赤照明の縦ライン照明をプロジェクタ２１２から投影させる。一方、当該フレーム番号ｆがｆ＞Ｌのとき、赤照明の横ライン照明を設定し、当該フレーム番号ｆに対応する当該赤照明の横ライン照明を画像データベース２２８に記憶すると共に、当該赤照明の横ライン照明をプロジェクタ２１２から投影させる。ライン照明生成部２２４は、同期制御部２２２から、フレーム番号ｆを受信するたびに、上記の赤照明の縦ライン照明又は赤照明の横ライン照明を設定し、全ての赤照明のライン照明（２Ｌ本の縦横ライン照明）を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。
【０１１４】
また、ライン照明生成部２２４は、２回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、緑照明の縦ライン照明を設定し、当該フレーム番号ｆに対応する当該緑照明の縦ライン照明を画像データベース２２８に記憶すると共に、当該緑照明の縦ライン照明をプロジェクタ２１２から投影させる。以後、緑照明についても上記赤照明と同様に、全ての緑照明の縦横ライン照明を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。また、ライン照明生成部２２４は、３回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、青照明の縦ライン照明を設定し、当該フレーム番号ｆに対応する当該青照明の縦ライン照明を画像データベース２２８に記憶すると共に、当該青照明の縦ライン照明をプロジェクタ２１２から投影させる。以後、青照明についても上記赤照明と同様に、全ての青照明の縦横ライン照明を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。以上のように、ライン照明生成部２２４は、赤照明、緑照明、及び青照明の各々について、２Ｌ本ずつ縦横ライン照明をプロジェクタ２１２から投影することにより、合計６Ｌ本のライン照明を生成する。
【０１１５】
カメラ応答観測部２２６は、カメラ２１０において観測した、プロジェクタ２１２から投影された赤照明、緑照明、及び青照明の照明光に対するカメラ応答を検出する。具体的には、同期制御部２２２からフレーム番号ｆを受信すると、カメラ２１０から赤照明の照明光に対する観測画像を取得する。次に、画像データベース２２８に記憶されているプロジェクタ２１２によるプロジェクタ照明を投影していない状態の観測画像である背景画像を取得し、赤照明に対する観測画像と背景画像との背景差分を処理し、観測画像の各画素のＲＧＢ値の各々に基づいて、Ｒ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＲ値を赤照明に対するカメラ応答の赤の画素のＲ値として検出し、Ｇ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＧ値を赤照明に対するカメラ応答の緑の画素のＧ値として検出し、Ｂ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＢ値を赤照明に対するカメラ応答の青の画素のＢ値として検出する。次に、ＲＧＢの各色について、検出された赤照明に対するカメラ応答の当該色の画素の値の各々の輝度値を、赤照明に対する当該色の応答データとして画像データベース２２８に記憶する。なお、カメラ応答観測部２２６の処理は、プロジェクタ２１２から投影される赤照明の縦ライン照明又は横ライン照明を観測したカメラ２１０における赤照明に対するカメラ画像から赤照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶し、全ての赤照明に対する縦ライン照明及び横ライン照明の各々についての赤照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶した時点で赤照明に対する処理は、終了する。
【０１１６】
カメラ応答観測部２２６は、２回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、緑照明に対して、上記赤照明に対する処理と同様に、緑照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶し、全ての緑照明に対する縦ライン照明及び横ライン照明の各々についての緑照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶した時点で緑照明に対する処理は終了する。また、カメラ応答観測部２２６は、３回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、青照明に対して、上記赤照明に対する処理と同様に、青照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶し、全ての青照明に対する縦ライン照明及び横ライン照明の各々についての青照明に対するＲＧＢの各色の応答データを画像データベース２２８に記憶した時点で青照明に対する処理は終了する。
【０１１７】
画像データベース２２８には、フレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応するＲＧＢの各色の応答データの各々と、フレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応する縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
【０１１８】
ＬＴ行列算出部２３０は、画像データベース２２８に記憶されているフレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応するＲＧＢの各色の応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、ＬＴを抽出し、ＬＴ行列を生成する。
【０１１９】
第２の実施の形態においては、赤照明、緑照明、及び青照明に対応する応答データの順番に処理を行う。具体的には、まず、カウンタｉをｉ＝１に初期化する。次に、画像データベース２２８からカウンタｉに対応する赤照明に対応する縦ライン照明に対するＲＧＢの各色の応答データＶｉを取得する。次に、カウンタｊをｊ＝１に初期化する。次に、画像データベース２２８からカウンタｊに対応する赤照明に対応する横ライン照明に対するＲＧＢの各色の応答データＨｊを取得する。
【０１２０】
次に、ＲＧＢの各色について、取得した当該色の応答データＶｉと当該色の応答データＨｊとに基づいて、カメラ応答が重複する座標を探す。両方の照明にＲ値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのＲ値の平均値を計算し、カメラ応答行列Ｃ＾ＲＲへの書き込みを行う。ここで、βはプロジェクタから照射された照明色を表し、αはカメラで検出された色を表す。同様に、両方の照明にＧ値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのＧ値の平均値を計算し、カメラ応答行列Ｃ＾ＧＲへ書き込みを行う。また、同様に、両方の照明にＢ値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのＢ値の平均値を計算し、カメラ応答行列Ｃ＾ＢＲへ書き込みを行う。
【０１２１】
次に、画像データベース２２８から、カウンタｉに対応する赤照明の縦ラインパターンとカウンタｊに対応する赤照明の横ラインパターンとを取得し、当該赤照明の縦ラインパターンと、当該赤照明の横ラインパターンとにおいて重複するプロジェクタ画素を算出する。次に、プロジェクタ照明行列Ｐ＾Ｒへ書き込みを行う。次に、カウンタｊの値が横ライン照明の本数Ｌの値と一致しないとき、カウンタｊの値をｊ＝ｊ＋１と増加させ、上記、画像データベース２２８からカウンタｊに対応する赤照明の横ライン照明に対するＲＧＢの各色の応答データＨｊを取得する処理から繰り返す。一方、カウンタｊの値がＬの値と一致するときは、ｊをｊ＝１に初期化し、カウンタｉの値をｉ＝ｉ＋１と増加させ、上記、画像データベース２２８からカウンタｉに対応する赤照明の縦ライン照明に対するＲＧＢの各色の応答データＶｉを取得する処理から繰り返す。当該繰り返し処理により、全ての赤照明の縦ライン照明及び赤照明の横ライン照明に対応したＲＧＢの各色の応答データの各々について、処理が行われる。当該赤照明に対応した縦ライン照明及び赤照明に対応した横ライン照明の処理が終了したら、同様に、緑照明に対応した縦ライン照明及び緑照明に対応した横ライン照明に対応したＲＧＢの各色の応答データの各々について処理を行い、Ｃ＾ＲＧ、Ｃ＾ＧＧ、Ｃ＾ＢＧ、及びＰ＾Ｇを作成する。また、当該緑照明に対応した縦ライン照明及び緑照明に対応した横ライン照明の処理が終了したら、同様に、青照明に対応した縦ライン照明及び青照明に対応した横ライン照明に対応したＲＧＢの各色の応答データの各々について処理を行い、Ｃ＾ＲＢ、Ｃ＾ＧＢ、Ｃ＾ＢＢ、及びＰＢを作成する。
【０１２２】
上記処理により、ＲＧＢの各色について、縦ライン照明に対応したカメラ応答に対する当該色の応答データはＬ個、横ライン照明に対応したカメラ応答に対する当該色の応答データはＬ個あることから、作成された９種類のカメラ応答行列Ｃ＾αβ（α＝｛Ｒ，Ｇ，Ｂ｝、β＝｛Ｒ，Ｇ，Ｂ｝）に基づいて、下記（１）式に従って、３Ｍ２×３Ｌ２の行列サイズをもつカメラ応答行列Ｃ＾を算出する。
【０１２３】
【数１】
0006291382.tif 000002
【０１２４】
また、作成されたプロジェクタ照明行列Ｐ＾Ｒ、Ｐ＾Ｇ、及びＰ＾Ｂに基づいて、下記（２）式に従って、３Ｎ２×３Ｌ２の行列サイズを持つプロジェクタ照明行列Ｐ＾を算出する。
【０１２５】
【数２】
0006291382.tif 000003
【０１２６】
そして、作成されたカメラ応答行列Ｃ＾とプロジェクタ照明行列Ｐ＾とに基づいて、以下の式に従って、カラー応答のＬＴ行列を算出し、出力部９０から出力する。
Ｔ＾＝Ｃ＾Ｐ＾Τ
ただし、Ｔは転置を表す。
【０１２７】
＜本発明の第２の実施の形態に係るＬＴ行列生成装置の作用＞
次に、本発明の第１の実施の形態に係るＬＴ行列生成装置２００の作用について説明する。まず、同期制御処理ルーチンについて説明する。
【０１２８】
図１５に示す、ステップＳ７００では、ステップＳ１００〜ステップＳ１０６までの処理を３回行ったか否かを判定する。ステップＳ１００〜ステップＳ１０６までの処理回数が３回よりも少ない場合、ステップＳ１００へ移行し、ステップＳ１００〜ステップＳ７００までの処理を繰り返す。ステップＳ１００〜ステップＳ１０６までの処理回数が３回である場合には、同期制御処理ルーチンを終了する。
【０１２９】
次に、図１６に示す、ライン照明生成処理ルーチンについて説明する。第２の実施の形態においては、赤照明についての処理から開始されるものとする。
【０１３０】
図１６に示す、ステップＳ８００では、フレーム番号ｆに対応する対象となる照明色の縦ライン照明を設定する。
【０１３１】
次に、ステップＳ８０２では、ステップＳ８００において設定した対象となる照明色の縦ライン照明に対応する縦ラインパターンを、ステップＳ２０４において取得したフレーム番号ｆと対応させて画像データベース２２８に記憶する。
【０１３２】
ステップＳ８０４では、フレーム番号ｆに対応する対象となる照明色の横ライン照明を設定する。
【０１３３】
次に、ステップＳ８０６では、ステップＳ８０４において設定した対象となる照明色の横ライン照明に対応する横ラインパターンを、ステップＳ２０４において取得したフレーム番号ｆと対応させて画像データベース２２８に記憶する。
【０１３４】
ステップＳ８０８では、ステップＳ８００又はステップＳ８０４において設定した対象となる照明色の縦ライン照明又は横ライン照明をプロジェクタ２１２から出力する。
【０１３５】
ステップＳ８１０では、全ての照明色についてステップＳ２０４〜ステップＳ２１８までの処理を終了したか否かを判定する。全ての照明色についてステップＳ２０４〜ステップＳ２１８までの処理を終了している場合には、ライン照明生成処理ルーチンを終了し、全ての照明色についてステップＳ２０４〜ステップＳ２１８までの処理を終了していない場合には、対象となる照明色を変更し、ステップＳ２０４へ移行する。なお、対象となる照明色は、赤色、緑色、青色の順に変更される。
【０１３６】
次に、図１７に示す、カメラ応答観測処理ルーチンについて説明する。第２の実施の形態においては、赤照明についての処理から開始されるものとする。
【０１３７】
図１７に示す、ステップＳ９００では、カメラ応答に対するＲＧＢ値の各々の所定の閾値を設定する。
【０１３８】
次に、ステップＳ９０２では、ステップＳ３０４において取得した画像と、ステップＳ３１４において取得した観測画像との背景差分を取得する。
【０１３９】
次に、ステップＳ９０４では、ステップＳ３０４において取得した背景画像と、ステップＳ３１４において取得した観測画像との背景差分から、ステップＳ９００において取得した閾値を用いて、ＲＧＢの各色について、カメラ応答の画素の各々を検出し、当該色の輝度値の各々を取得する。
【０１４０】
次に、ステップＳ９０６では、ＲＧＢの各色について、ステップＳ９０２において取得したカメラ応答の画素の各々の当該色の輝度値の各々を、当該色の応答データとして、ステップＳ３０８において取得したフレーム番号ｆと対応づけて画像データベース２２８に記憶する。
【０１４１】
ステップＳ９０４では、全ての照明色についてステップＳ３０６〜ステップＳ３２２までの処理を終了したか否かを判定する。全ての照明色についてステップＳ３０６〜ステップＳ３２２までの処理を終了している場合には、カメラ応答観測処理ルーチンを終了し、全ての照明色についてステップＳ３０６〜ステップＳ３２２までの処理を終了していない場合には、対象となる照明色を変更し、ステップＳ３０６へ移行する。なお、対象となる照明色は、赤色、緑色、青色の順に変更される。
【０１４２】
次に、図１８及び図１９に示す、ＬＴ行列算出処理ルーチンについて説明する。
【０１４３】
図１８に示す、ステップＳ１０００では、処理対象となる照明色を決定する。第２の実施の形態においては、赤照明から処理を行い、緑照明、及び青照明の順に処理対象となる照明色を決定する。
【０１４４】
次に、ステップＳ１００２では、画像データベース２２８に記憶されている、ｉ番目の、ステップＳ１０００において取得した照明色の縦ライン照明に対応するＲＧＢの各色の応答データＶｉを読み込む。
【０１４５】
次に、ステップＳ１００４では、画像データベース２２８に記憶されている、ｊ番目の、ステップＳ１０００において取得した照明色の横ライン照明に対応するＲＧＢの各色の応答データＨｊを読み込む。
【０１４６】
次に、ステップＳ１００７では、ステップＳ１００２において取得した対象色の応答データＶｉと、ステップＳ１００４において取得した対象色の応答データＨｊとに基づいて、対象色のカメラ応答の画素の各々が重複する座標の各々を検出する。
【０１４７】
次に、ステップＳ１００８では、ステップＳ１００７において取得した対象色のカメラ応答の画素が重複する座標の各々における画素の各々について、ステップＳ１００２において取得した対象色の応答データＶｉと、ステップＳ１００４において取得した対象色の応答データＨｊとに基づいて、当該重複する画素の対象色の輝度値の平均値を計算する。
【０１４８】
次に、ステップＳ１０１０では、ステップＳ１００７において取得した対象色のカメラ応答の画素が重複する座標の各々と、ステップＳ１００８において取得した重複する座標の各々の画素の各々の対象色の輝度値の平均値とに基づいて、カメラ応答行列Ｃ＾αβへ書き込みを行う。
【０１４９】
次に、ステップＳ１０１１では、ステップＳ１０００において決定した照明色について、赤、緑、青の全ての色の応答データについてステップＳ１００７〜ステップＳ１０１０の処理を終了したか否かを判定する。全ての色の応答データについてステップＳ１００７〜ステップＳ１０１０の処理を終了した場合には、ステップＳ１０１４へ移行し、全ての色の応答データについてステップＳ１００７〜ステップＳ１０１０の処理を終了していない場合には、対象色を変更し、ステップＳ１００７へ移行し、ステップＳ１００７からステップＳ１０１１の処理を繰り返す。
【０１５０】
次に、ステップＳ１０１４では、ステップＳ１０００において取得した照明色のカウンタｉに対応する縦ラインパターンと、カウンタｊに対応する横ラインパターンとを画像データベース２２８から読み込む。
【０１５１】
次に、ステップＳ１０１６では、ステップＳ１０１４において取得したステップＳ１０００において取得した照明色のカウンタｉに対応する縦ラインパターンと、カウンタｊに対応する横ラインパターンとに基づいて、双方で重複する各々の画素の対象色の輝度値をプロジェクタ行列Ｐ＾βへ書き込みを行う。
【０１５２】
次に、ステップＳ４１８では、カウンタｊの値がＬか否かを判定する。カウンタｊの値がＬである場合には、図１９のステップＳ４２２へ移行し、カウンタｊの値がＬよりも小さい場合には、ステップＳ４２０へ移行する。
【０１５３】
ステップＳ４２０では、カウンタｊの値に１を加えた値をカウンタｊの値に設定する。
【０１５４】
ステップＳ４２２では、カウンタｉの値がＬか否かを判定する。カウンタｉの値がＬである場合には、ステップＳ１０１８へ移行し、カウンタｉの値がＬよりも小さい場合には、ステップＳ４２４へ移行する。
【０１５５】
ステップＳ４２４では、カウンタｉの値に１を加えた値をカウンタｉの値に設定する。
【０１５６】
ステップＳ１０１８では、全ての照明色についてステップＳ４００〜ステップＳ４２２の処理を終了したか否かを判定する。全ての照明色についてステップＳ４００〜ステップＳ４２２の処理を終了した場合には、ステップＳ１０２０へ移行し、全ての照明色についてステップＳ４００〜ステップＳ４２２の処理を終了していない場合には、ステップＳ４００へ移行する。
【０１５７】
ステップＳ１０２０では、ステップＳ１０１０において取得したカメラ応答行列Ｃ＾αβの各々に基づいて、上記（１）式に従って、カメラ応答行列Ｃ＾を算出する。
【０１５８】
ステップＳ１０２２では、ステップＳ１０１６において取得したプロジェクタ照明行列Ｐ＾βの各々に基づいて、上記（２）式に従って、プロジェクタ照明行列Ｐ＾を算出する。
【０１５９】
ステップＳ１０２４では、ステップＳ１０２０において取得したカメラ応答行列Ｃ＾と、ステップＳ１０２２において取得したプロジェクタ照明行列Ｐ＾とに基づいて、カラー照明に対応するカラー応答のＬＴ行列Ｔ＾を算出し、出力部９０から出力して、ＬＴ行列算出処理ルーチンを終了する。
【０１６０】
上記ステップＳ１０１０のカメラ応答行列Ｃ＾αβへの書き込み処理について、図２０において詳細に説明する。
【０１６１】
図２０に示す、ステップＳ１１００では、ステップＳ１００７において取得した対象色のカメラ応答の画素が重複する座標の各々と、ステップＳ１００８において取得した重複する座標の各々の画素の対象色の輝度値の平均値とに基づいて、ステップＳ５００において取得したＭ×Ｍ画素の画像メモリにおける、カメラ応答画素が重複する座標の各々に当該座標の画素の対象色の輝度値の平均値をセットする。
【０１６２】
次に、ステップＳ１１０２では、ステップＳ１１００において取得した対象色の輝度値の平均値がセットされたＭ×Ｍ画素の画像メモリに基づいて、１列に再配置した列ベクトルＣ＾ｘ（ｘ＝１〜Ｌ２）を生成する。
【０１６３】
次に、ステップＳ１１０４では、ステップＳ１１０２において取得した列ベクトルＣ＾ｘを図４右に示すように、カメラ応答行列Ｃ＾αβの左から順に代入する。
【０１６４】
上記ステップＳ１０１６のプロジェクタ照明行列Ｐ＾βへの書き込み処理について、図２１において詳細に説明する。
【０１６５】
図２１に示す、ステップＳ１２００では、ステップＳ６０６において正規化された列ベクトルＰ＾ｘをプロジェクタ照明行列Ｐ＾βの左から順に代入する。
【０１６６】
以上説明したように、本発明の第２の実施の形態に係るＬＴ行列生成装置によれば、プロジェクタから赤照明、緑照明、及び青照明を照射する場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、ＲＧＢの各色について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、ＲＧＢの各色について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【０１６７】
また、図１３に示した状況において、未校正なプロジェクタ・カメラシステムを使って、未知の任意形状の表面にプロジェクタからの縦横ラインのカラー照明を投影したとき、それぞれのカラー応答データから、プロジェクタ画面の各座標から照明した光線とカメラ画面の各座標の応答とを結び付けるＬＴを効率的に獲得でき、それらを一度に扱うためのＬＴ行列Ｔ＾を計測することができる。
【０１６８】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１６９】
例えば、第２の実施の形態においては、カメラ応答観測部において応答データを画像データベースに記憶する場合について説明したが、これに限定されるものではなく、ＲＧＢの各色について、検出されたカメラ応答の画素の各々の当該色の輝度値を含むＭ×Ｍ画素をサブ画像として画像データベース２８に記憶してもよい。この場合には、ＲＧＢの各色のサブ画像を用いて、ＬＴ行列を算出するようにすればよい。
【０１７０】
次に、第３の実施の形態に係るＬＴ行列生成装置について説明する。
【０１７１】
第３の実施の形態においては、Ｎ台のプロジェクタと１台のカメラのマルチプロジェクタ・システムを用いている点が第１の実施の形態と異なる。なお、第１の実施の形態に係るＬＴ行列生成装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第１の実施の形態と同様の処理を行う。
【０１７２】
＜本発明の第３の実施の形態に係るＬＴ行列生成装置の構成＞
次に、本発明の第３の実施の形態に係るＬＴ行列生成装置の構成について説明する。図２２に示すように、本発明の第３の実施の形態に係るＬＴ行列生成装置３００は、カメラ１０と、Ｎ台のプロジェクタ１２Ａ〜プロジェクタ１２Ｎと、演算部３２０と、出力部９０と、を含んで構成されている。
【０１７３】
カメラ１０は、切替部３３２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの何れか１つのプロジェクタにより投影された単色画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部３２６に出力する。
【０１７４】
演算部３２０は、切替部３３２と、同期制御部３２２と、ライン照明生成部３２４と、カメラ応答観測部３２６と、画像データベース３２８と、ＬＴ行列算出部３３０とを含んで構成されている。
【０１７５】
切替部３３２は、同期制御部３２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つに切り替える。なお、第３の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ１２Ａが選択されているものとする。また、第３の実施の形態においては、切替部３３２は、スイッチや分岐装置などを利用する。また、第３の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、同期制御部３２２の切り替え指示により処理対象となるプロジェクタを切り替える。
【０１７６】
同期制御部３２２は、フレーム番号毎に、切替部３３２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから照明を照射させ、照射された照明をカメラ１０により撮影するように制御する。また、同期制御部３２２は、フレーム番号ｆの値が、ライン照明生成部３２４において投影する全ての照明パターンの数の値２Ｌであるフレーム番号ｆをライン照明生成部３２４とカメラ応答観測部３２６とに送出した時点で繰り返し処理を停止し、切替部３３２に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部３３２において処理対象となるプロジェクタが切り替えられた後に、フレーム番号ｆの値を１に初期化し、上記処理を繰り返す。
【０１７７】
ライン照明生成部３２４は、切替部３３２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影するプロジェクタ画面における照明パターンを生成する。
【０１７８】
カメラ応答観測部３２６は、カメラ１０において観測した、切替部３３２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号ｆと対応づけて当該照明光についての応答データを作成し、画像データベース３２８に記憶する。
【０１７９】
画像データベース３２８には、プロジェクタ毎に、フレーム番号ｆの各々に対応した応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
【０１８０】
ＬＴ行列算出部３３０は、プロジェクタ毎に、画像データベース３２８に記憶されているフレーム番号ｆの各々に対応した応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、ＬＴを抽出し、ＬＴ行列を生成する。
【０１８１】
なお、第３の実施の形態に係るＬＴ行列生成装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０１８２】
以上説明したように、本発明の第３の実施の形態に係るＬＴ行列生成装置によれば、複数のプロジェクタを用いる場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【０１８３】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１８４】
例えば、第３の実施の形態においては、カメラと、プロジェクタと、画像データベースとがＬＴ行列生成装置の構成要素として接続している場合について説明したが、これに限定されるものではなく、カメラと、プロジェクタと、画像データベースとにおける、当該行列生成処理に必要なデータを取得することができれば、同期制御部と、カメラ応答観測部と、ＬＴ行列算出部とへのデータのやり取りは、ハードディスク、ＲＡＩＤ装置、及びＣＤ−ＲＯＭ等の記録媒体を利用してもよい。また、ネットワークを介してリモートなデータ資源を利用する形態でもよい。
【０１８５】
次に、第４の実施の形態に係るＬＴ行列生成装置について説明する。
【０１８６】
第４の実施の形態においては、Ｎ台のプロジェクタと１台のカメラのマルチプロジェクタ・システムを用いている点が第２の実施の形態と異なる。なお、第１及び第２の実施の形態に係るＬＴ行列生成装置１００及びＬＴ行列生成装置２００と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが選択された場合、当該プロジェクタについて、第２の実施の形態と同様の処理をおこなって、カラー照明を使ってカラー応答のＬＴ行列を算出する。
【０１８７】
＜本発明の第４の実施の形態に係るＬＴ行列生成装置の構成＞
次に、本発明の第４の実施の形態に係るＬＴ行列生成装置の構成について説明する。図２３に示すように、本発明の第４の実施の形態に係るＬＴ行列生成装置４００は、カメラ２１０と、Ｎ台のプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎと、演算部４２０と、出力部９０と、を含んで構成されている。
【０１８８】
カメラ２１０は、切替部４３２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの何れか１つのプロジェクタにより投影された赤照明画像、緑照明画像、及び青照明画像を観測し、色値を表すＲＧＢ値を取得し、カメラ応答観測部４２６に出力する。
【０１８９】
演算部４２０は、切替部４３２と、同期制御部４２２と、ライン照明生成部４２４と、カメラ応答観測部４２６と、画像データベース４２８と、ＬＴ行列算出部４３０とを含んで構成されている。
【０１９０】
切替部４３２は、同期制御部４２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つに切り替える。なお、第４の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ２１２Ａが選択されているものとする。また、第４の実施の形態においては、切替部４３２は、スイッチや分岐装置などを利用する。また、第４の実施の形態においては、終了条件である全てのプロジェクタを選択するまで、同期制御部４２２の選択指示により処理対象となるプロジェクタを選択する。
【０１９１】
同期制御部４２２は、フレーム番号毎に、切替部４３２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから照明を照射させ、照射された照明をカメラ２１０により撮影するように制御する。
【０１９２】
ライン照明生成部４２４は、切替部４３２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影するプロジェクタ画面における照明パターンを生成する。
【０１９３】
カメラ応答観測部４２６は、カメラ２１０において観測した、切替部４３２において切り替えられているプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号ｆの各々と対応づけて当該照明光についての応答データを生成し、画像データベース４２８に記憶する。
【０１９４】
画像データベース４２８には、プロジェクタ毎に、フレーム番号ｆの各々に対応した応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
【０１９５】
ＬＴ行列算出部４３０は、プロジェクタ毎に、画像データベース４２８に記憶されているフレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応する応答データの各々と、フレーム番号ｆの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、ＬＴを抽出し、ＬＴ行列を生成する。
【０１９６】
なお、第４の実施の形態に係るＬＴ行列生成装置の他の構成及び作用については、第１及び第２の実施の形態と同様であるため、説明を省略する。
【０１９７】
以上説明したように、本発明の第４の実施の形態に係るＬＴ行列生成装置によれば、複数のプロジェクタを用いて、赤照明、緑照明、及び青照明を照射する場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、ＲＧＢの各色について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、ＲＧＢの各色について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
【０１９８】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０１９９】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０２００】
１０   カメラ
１２   プロジェクタ
２０   演算部
２２   同期制御部
２４   ライン照明生成部
２６   カメラ応答観測部
２８   画像データベース
３０   ＬＴ行列算出部
９０   出力部
１００ ＬＴ行列生成装置
２００ ＬＴ行列生成装置
２１０ カメラ
２１２ プロジェクタ
２２０ 演算部
２２２ 同期制御部
２２４ ライン照明生成部
２２６ カメラ応答観測部
２２８ 画像データベース
２３０ ＬＴ行列算出部
３００ ＬＴ行列生成装置
３２０ 演算部
３２２ 同期制御部
３２４ ライン照明生成部
３２６ カメラ応答観測部
３２８ 画像データベース
３３０ ＬＴ行列算出部
３３２ 切替部
４００ ＬＴ行列生成装置
４２０ 演算部
４２２ 同期制御部
４２４ ライン照明生成部
４２６ カメラ応答観測部
４２８ 画像データベース
４３０ ＬＴ行列算出部
４３２ 切替部
【図１】
0006291382.tif 000004
【図２】
0006291382.tif 000005
【図３】
0006291382.tif 000006
【図４】
0006291382.tif 000007
【図５】
0006291382.tif 000008
【図６】
0006291382.tif 000009
【図７】
0006291382.tif 000010
【図８】
0006291382.tif 000011
【図９】
0006291382.tif 000012
【図１０】
0006291382.tif 000013
【図１１】
0006291382.tif 000014
【図１２】
0006291382.tif 000015
【図１３】
0006291382.tif 000016
【図１４】
0006291382.tif 000017
【図１５】
0006291382.tif 000018
【図１６】
0006291382.tif 000019
【図１７】
0006291382.tif 000020
【図１８】
0006291382.tif 000021
【図１９】
0006291382.tif 000022
【図２０】
0006291382.tif 000023
【図２１】
0006291382.tif 000024
【図２２】
0006291382.tif 000025
【図２３】
0006291382.tif 000026