(57)【要約】【課題】リライティングを行うためのＬＴ行列を洗練化できる。【解決手段】カメラ応答検出部２２が、照明画像を生成し、照明画像をカメラ１０により撮影するように制御し、観測画像の各々のカメラ応答の画素を検出する。ＬＴデータ獲得部２８が、複数の照明画像と、観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、ＬＴ行列を獲得する。ＬＴデータ洗練化部３０が、獲得したＬＴ行列と、プロジェクタから洗練化用の照明画像を出力させたときにカメラにより撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新する。【選択図】図１
2017183903.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクタから照射するための、複数の照明画像を生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答検出部と、
前記カメラ応答検出部により生成された前記複数の照明画像と、前記カメラ応答検出部により前記観測画像毎に検出された照明画像毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を獲得するＬＴデータ獲得部と、
前記ＬＴデータ獲得部により獲得した前記ライト・トランスポート行列と、前記プロジェクタから洗練化用の照明画像を出力させたときに前記カメラにより撮影した観測画像とに基づいて、前記ライト・トランスポート行列と、前記洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新するＬＴデータ洗練化部と、
を含む空間映像再現装置。
【請求項２】
前記ＬＴデータ洗練化部は、前記テスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新し、前記更新した前記ライト・トランスポート行列と、前記照明ベクトルとの積を算出してテスト画像を生成することを、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との誤差値が予め定めた許容値以下になるまで繰り返す請求項１に記載の空間映像再現装置。
【請求項３】
前記ＬＴデータ獲得部は、各画素に対し、前記観測画像毎に検出された前記照明画像毎の前記画素のカメラ応答と、前記複数の照明画像とに基づいて、前記ライト・トランスポート行列のうちの前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、前記ライト・トランスポート行列を推定する請求項１又は請求項２に記載の空間映像再現装置。
【請求項４】
前記カメラ応答検出部は、プロジェクタから照射するための、複数の照明画像をランダムに生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する請求項１〜請求項３の何れか１項に記載の空間映像再現装置。
【請求項５】
前記カメラ応答検出部は、プロジェクタから照射するための、予め定められた各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明画像を生成し、前記照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、
前記ＬＴデータ獲得部は、前記カメラ応答検出部により生成された前記縦ラインの照明画像の各々と、前記横ラインの照明画像の各々との組み合わせの各々について、前記組み合わせの一方の前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方の前記観測画像について検出されたカメラ応答の画素とにおいて重複する画素の各々の輝度値を表す応答値を行列要素として書き込み、前記書き込んだ行列要素に基づいて、前記ライト・トランスポート行列を獲得する請求項１又は請求項２に記載の空間映像再現装置。
【請求項６】
カメラ応答検出部が、プロジェクタから照射するための、複数の照明画像を生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、
ＬＴデータ獲得部が、前記カメラ応答検出部により生成された前記複数の照明画像と、前記カメラ応答検出部により前記観測画像毎に検出された照明画像毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を獲得するステップと、
ＬＴデータ洗練化部が、前記ＬＴデータ獲得部により獲得した前記ライト・トランスポート行列と、前記プロジェクタから洗練化用の照明画像を出力させたときに前記カメラにより撮影した観測画像とに基づいて、前記ライト・トランスポート行列と、前記洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新するステップと、
を含む空間映像再現方法。
【請求項７】
前記ＬＴデータ洗練化部が更新するステップは、前記テスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新し、前記更新した前記ライト・トランスポート行列と、前記照明ベクトルとの積を算出してテスト画像を生成することを、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との誤差値が予め定めた許容値以下になるまで繰り返す請求項６に記載の空間映像再現方法。
【請求項８】
コンピュータを、請求項１〜請求項５のいずれか１項に記載の空間映像再現装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空間映像再現装置、方法、及びプログラムに係り、特に、プロジェクション・マッピングに関する行列を生成する空間映像再現装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であれば個人スペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物（以下、被写体と称する）へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング（projection mapping）として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
【０００３】
プロジェクション・マッピングでは、所定画像を正確に投影するために、目視確認と手動操作によって１画素単位での位置合わせを行う場合がある。これに対して、プロジェクタ投影の状態をカメラによって把握し、所定画像を指定された位置に投影するために、プロジェクタ・カメラシステム（projector-camera system）が利用されている。プロジェクタ・カメラシステムは、プロジェクタとカメラが連動して、カメラからのフィードバック画像に応じて、プロジェクタから投影出力する画像を処理する。通常、平面なスクリーンにプロジェクション・マッピングする場合には、キャリブレーション作業において平面射影変換（plane-homography）を求める。平面射影変換を使うとプロジェクタ画面上の点から幾何的対応点としてカメラ画面上の点を算出することができるため、その対応関係に基づいて所定画像をスクリーン面の決められた場所に投影することができる。もし、空間構造に凹凸があったり曲がった構造である場合には、その空間構造を事前に把握しなければならない。例えば、非特許文献１では、レーザ計測を利用して、被写体の空間構造または凹凸形状を得る。その形状に合わせて所定画像を幾何的に変形させて、あたかも平面スクリーンへの投影に見えるよう指定個所に所定画像を投影する。あるいは、構造光（structured light）と呼ばれる幾何パターンをプロジェクタから投影し、カメラで観測した歪み画像から空間構造の奥行きの凹凸形状を計測する方式も利用できる。このように、従来技術は、レーザ計測またはプロジェクタ・カメラシステムを利用して外界または被写体の空間構造を把握し、奥行きの凹凸形状に合わせて指定個所へ所定画像を投影する。
【０００４】
これに対して、外界の空間構造を計測せずに，ライト・トランスポート（light transport）を利用した映像生成方法が非特許文献１、非特許文献２で公開されている。ライト・トランスポートとは、全てのプロジェクタ画素と全てのカメラ画素間の幾何的・光学的対応関係を表現したデータであり、図１２に示すようにプロジェクタ画素の１点１点を順番に点灯させ、その画素からの照明光が光学的反射や屈折によって結び付くカメラ画素を検出することによって得られる。プロジェクタ画面の画素数がｐ×ｑ画素でカメラ画面の画素数がｕ×ｖ画素であるとき、各点光源のカメラ応答の画像Ｃｊを列ベクトル化して並べた行列Ｔはｕｖ×ｐｑ画素の巨大、かつ、スパースな行列として、ライト・トランスポート行列（light transport matrix）と呼ばれる。ライト・トランスポート行列はプロジェクタ画素と結び付くカメラ画素のRGB 応答値を保有するため，リライティング（relighting）に応用することができる。リライティングとは、実際のプロジェクタとカメラの装置を使わずに、任意の照明の下で被写体がどのようにカメラに映るかを模擬的に可視化する技術である。プロジェクション・マッピングのセットアップでは、臨場感の高い映像演出のために実空間における被写体の照明状態を事前に把握するときにリライティングを役立てることができる。さらに、スタジオ撮影や番組制作などの実環境では、照明を変化させて被写体の映像をチェックする場合がある。照明は映画あるいは番組制作において重要な演出効果があるため、製作者の意図に応じて様々な照明変化が試される。このとき、逐次、被写体に照明を当てて映り具合をチェックすることは面倒な作業であるため、コンピュータグラフィックスではリライティング技術を使って模擬的に被写体に対する照明効果を目視することができる。非特許文献１、非特許文献２では、任意の照明画像を１次元の列ベクトルに再配置したデータを生成し、ライト・トランスポート行列と照明ベクトルの積により瞬時にリライティング画像を得ることが公知となっている。ライト・トランスポートは全てのプロジェクタ画素と全てのカメラ画素間の対応付けることができるため、ライト・トランスポート行列を使えば実環境において照明を当てることなくリアルなリライティングを可能とする。なお、以降では、ライト・トランスポートをＬＴ、ライト・トランスポート行列をＬＴ行列と略する。
【０００５】
関連する技術として、プロジェクタからの照明パターンを利用してＬＴを計測する技術は非許文献１、非特許文献２に公開されている。非特許文献１の手法はスパース（疎）かつ高次元ランクのＬＴ行列を獲得し、非特許文献２の手法はデンス（蜜）かつ低次元ランクのＬＴ行列を獲得する。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】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.
【非特許文献２】J.Wang, Y. Dong, X. Tong, Z. Lin, and B. Guo: "Kernel Nystrom Method for Light Transport",ACM Transactions on Graphics, vol. 28, no. 3, 2009.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＬＴを利用したリライティングは、ＬＴ行列の要素、すなわち、事前に照明パターンを使って計測したＬＴデータの精度に大きく依存する。ＬＴ行列を得る代表的な手段にはbrute-force scanning（ＢＦＳ）方式があり、図１２においてプロジェクタ画素の１点１点を順番に点灯させ、各点光源の照明に応答したカメラ画素を検出する。ＢＦＳ方式は、原理的に孤立した光源を使うため、３次元形状とその表面の反射特性によっては微弱なカメラ応答を検出する場合がある。さらに、ＢＦＳ方式でＬＴ行列を獲得する場合、画像雑音の影響を低減するため、ある閾値を設定してその閾値を超えるカメラ応答のみを検出する工夫が施される。このとき、カメラの性能によっては微弱なカメラ応答が画像雑音に埋もれてしまい、的確に検出できない場合もある。ＬＴ行列の要素はそのカメラ応答から構成されるため、ＬＴ行列と照明ベクトルの積においてリライティング画像生成に影響を与える。近年、圧縮センシング（compressed sensing）を使って効率的にＬＴ行列を獲得する方法も公知であるが、このアプローチもランダム確率で生成した照明パターンを使ってスパースなＬＴ行列を得るため、ＢＦＳ方式と同様に復元した微弱なカメラ応答によってはリライティング画像生成に影響を与える。
【０００８】
一方、非特許文献２は、プロジェクタの光軸とカメラの光軸を一致させたシステムを使い、プロジェクタからの照明を被写体に光学的に拡散させて得られるカメラ応答からデンスかつ低次元ランクのＬＴ行列を獲得する。このアプローチは低次元ランク近似という原理に従ってＬＴ行列を獲得するため、ＬＴ行列を瞬時に獲得するという利点がある。単純パターンの照明や低周波数成分からなる照明パターンを使ったリライティングではリアルな映像再現が期待できるが、自然風景や複雑な模様の照明パターンあるいは高周波数成分からなる照明パターンを使ったリライティングでは、低次元ランクなＬＴ行列との演算において精密かつリアルな映像表現に限界がある。
【０００９】
任意照明を使ったリライティングでは、スパースかつ高次元ランクのＬＴ行列を使うことが有利であるが、精密かつリアルな映像表現を実現するためには、上記で述べたようにＬＴ行列の要素、すなわち、カメラ応答を的確に計測あるいは推定する必要がある。
【００１０】
本発明は、上記問題点を解決するために成されたものであり、リライティングを行うためのＬＴ行列を洗練化できる空間映像再現装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明に係る空間映像再現装置は、プロジェクタから照射するための、複数の照明画像を生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答検出部と、前記カメラ応答検出部により生成された前記複数の照明画像と、前記カメラ応答検出部により前記観測画像毎に検出された照明画像毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を獲得するＬＴデータ獲得部と、前記ＬＴデータ獲得部により獲得した前記ライト・トランスポート行列と、前記プロジェクタから洗練化用の照明画像を出力させたときに前記カメラにより撮影した観測画像とに基づいて、前記ライト・トランスポート行列と、前記洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新するＬＴデータ洗練化部と、を含んで構成されている。
【００１２】
また、第１の発明に係る空間映像再現装置において、前記ＬＴデータ洗練化部は、前記テスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新し、前記更新した前記ライト・トランスポート行列と、前記照明ベクトルとの積を算出してテスト画像を生成することを、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との誤差値が予め定めた許容値以下になるまで繰り返すようにしてもよい。
【００１３】
また、第１の発明に係る空間映像再現装置において、前記ＬＴデータ獲得部は、各画素に対し、前記観測画像毎に検出された前記照明画像毎の前記画素のカメラ応答と、前記複数の照明画像とに基づいて、前記ライト・トランスポート行列のうちの前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、前記ライト・トランスポート行列を推定するようにしてもよい。
【００１４】
また、第１の発明に係る空間映像再現装置において、前記カメラ応答検出部は、プロジェクタから照射するための、複数の照明画像をランダムに生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するようにしてもよい。
【００１５】
また、第１の発明に係る空間映像再現装置において、前記カメラ応答検出部は、プロジェクタから照射するための、予め定められた各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明画像を生成し、前記照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、
【００１６】
前記ＬＴデータ獲得部は、前記カメラ応答検出部により生成された前記縦ラインの照明画像の各々と、前記横ラインの照明画像の各々との組み合わせの各々について、前記組み合わせの一方の前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方の前記観測画像について検出されたカメラ応答の画素とにおいて重複する画素の各々の輝度値を表す応答値を行列要素として書き込み、前記書き込んだ行列要素に基づいて、前記ライト・トランスポート行列を獲得するようにしてもよい。
【００１７】
第２の発明に係る空間映像再現方法は、カメラ応答検出部が、プロジェクタから照射するための、複数の照明画像を生成し、前記複数の照明画像毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御し、前記照明画像毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、ＬＴデータ獲得部が、前記カメラ応答検出部により生成された前記複数の照明画像と、前記カメラ応答検出部により前記観測画像毎に検出された照明画像毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を獲得するステップと、ＬＴデータ洗練化部が、前記ＬＴデータ獲得部により獲得した前記ライト・トランスポート行列と、前記プロジェクタから洗練化用の照明画像を出力させたときに前記カメラにより撮影した観測画像とに基づいて、前記ライト・トランスポート行列と、前記洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新するステップと、を含んで実行することを特徴とする。
【００１８】
また、第２の発明に係る空間映像再現方法において、前記ＬＴデータ洗練化部が更新するステップは、前記テスト画像を用いて、各画素について、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との画素値差分を算出し、算出した前記画素値差分に基づいて、前記ライト・トランスポート行列の前記画素に対応する行の各要素のうち、非零の要素を更新し、前記更新した前記ライト・トランスポート行列と、前記照明ベクトルとの積を算出してテスト画像を生成することを、前記洗練化用の照明画像を出力させたときの前記観測画像と前記テスト画像との誤差値が予め定めた許容値以下になるまで繰り返すようにしてもよい。
【００１９】
第３の発明に係るプログラムは、コンピュータを、上記第１の発明に係る空間映像再現装置の各部として機能させるためのプログラムである。
【発明の効果】
【００２０】
本発明の空間映像再現装置、方法、及びプログラムによれば、獲得したＬＴ行列と、プロジェクタから洗練化用の照明画像を出力させたときにカメラにより撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新することにより、リライティングを行うためのＬＴ行列を洗練化できる、という効果が得られる。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施の形態に係る空間映像再現装置の構成を示すブロック図である。
【図２】縦ラインの照明画像と横ラインの照明画像の一例を示す図である。
【図３】第１の実施の形態におけるＬＴ行列の書き込みの一例を示す図である。
【図４】本発明の第１の実施の形態に係る空間映像再現装置におけるカメラ応答検出処理ルーチンを示すフローチャートである。
【図５】本発明の第１の実施の形態に係る空間映像再現装置におけるＬＴデータ獲得処理ルーチンを示すフローチャートである。
【図６】本発明の第１の実施の形態に係る空間映像再現装置におけるＬＴデータ洗練化処理ルーチンを示すフローチャートである。
【図７】本発明の第１の実施の形態に係る空間映像再現装置におけるリライティング生成処理ルーチンを示すフローチャートである。
【図８】本発明の第２の実施の形態に係る空間映像再現装置におけるＬＴデータ獲得処理ルーチンを示すフローチャートである。
【図９】本発明の第３の実施の形態に係る空間映像再現装置におけるカメラ応答検出処理ルーチンを示すフローチャートである。
【図１０】第４の実施の形態におけるＬＴ行列への書き込みの一例を示す図である。
【図１１】本発明の第７の実施の形態に係る空間映像再現装置の構成を示すブロック図である。
【図１２】プロジェクタ・カメラシステムと被写体間のライト・トランスポートを得る一例を示す概念図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２３】
＜本発明の実施の形態に係る概要＞
【００２４】
プロジェクタ・カメラシステムの動作を活用したリライティングにおいて、圧縮センシングあるいはスパースかつ高次元ランクのＬＴ行列を獲得する手段に関して、精密かつリアルな映像表現を実現することを目的にＬＴ行列の要素を洗練化することが、本発明の実施の形態において解決しようとする課題である。
【００２５】
＜本発明の第１の実施の形態に係る空間映像再現装置の構成＞
【００２６】
本発明の第１の実施の形態に係る空間映像再現装置の構成について説明する。図１に示すように、空間映像再現装置１００は、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されている。なお、第１の実施の形態においては、１台のプロジェクタと１台のカメラのプロジェクタ・カメラシステムを用いる。
【００２７】
カメラ１０は、プロジェクタ１２により投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答検出部２２に出力する。なお、第１の実施の形態においては、プロジェクタ１２から出力する単色照明として、例えば、白色照明を用いる。
【００２８】
プロジェクタ１２は、単色照明を用いて、カメラ応答検出部２２による出力指示に従って被写体を投影する。
【００２９】
演算部２０は、プロジェクタ１２からの特定照明パターンを使って被写体からの反射した光をカメラ１０で検出するカメラ応答検出部２２と、応答データからＬＴを得るＬＴデータ獲得部２８と、カメラ１０から得た観測画像を用いてＬＴデータを更新するＬＴデータ洗練化部３０と、ＬＴデータを使って任意照明の下でのリライティング画像を生成するリライティング生成部３２と、画像ＤＢ４０とを含んで構成されている。
【００３０】
この構成において、プロジェクタ１２、カメラ１０は必ずしも構成要素として接続している必要はなく、処理に必要なデータを取得すればよい。また、カメラ応答検出部２２、ＬＴデータ獲得部２８、ＬＴデータ洗練化部３０、リライティング生成部３２、及び画像ＤＢ４０からそれぞれの矢印へのデータの流れは、ハードディスク、ＲＡＩＤ装置、ＣＤ−ＲＯＭなどの記録媒体を利用する、または、ネットワークを介してリモートなデータ資源を利用する形態でもどちらでも構わない。
【００３１】
カメラ応答検出部２２は、以下に説明するように、プロジェクタ１２から照射するための、予め定められた各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明画像を生成し、照明画像毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラにより撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。
【００３２】
カメラ応答検出部２２では、特定の照明パターンを使って、そのカメラ画素の応答データを検出する。ＢＦＳは１点ずつプロジェクタ画素を点灯させてカメラ応答を計測する方式であるため、全てのプロジェクタ画素を処理する時間がかかり、実環境では現実的な手段ではない。そこで、カメラ応答検出部２２は、効率的にできるだけ少ないカメラ観測により応答データを獲得する。
【００３３】
カメラ応答検出部２２は、具体的には、まず、照明番号に応じて各ライン照明により投影する縦横ラインの照明画像を生成する。説明の便宜上、照明パターンのプロジェクタ画素領域をＮ×Ｎ画素とするが、縦横の画素数は任意である。照明番号はカメラ応答検出部２２で自動的に付与する管理番号であり、照明番号に応じて、プロジェクタ１２が照明パターンを投影して、カメラ１０が画像を観測する動作とする。各ライン照明の動作は照明番号と同期しており、照明番号は１から始まり、照明パターンを生成するたびに１ずつ増加させる。照明番号がｆ＜＝Ｌのとき縦ライン照明を設定し、ｆ＞Ｌのとき横ライン照明を設定する。図２はプロジェクタ画素領域をＮ×Ｎ画素としたときの縦ライン照明画像と横ライン照明画像の例である。縦ライン照明は、ｎ×Ｎ画素の大きさをもち、照明番号ｆにしたがって、左端から右端へ幅ｎの等間隔で移動する。理想的にはｎ＝１画素が相応しいが、その場合は照明強度が微弱なために十分なカメラ応答が得られないことが想定される。そのような状況を考慮して、例えば、ｎ＝４画素に設定する。ただし、ｎＬ＝Ｎ（Ｌは整数）とし、対象画素領域の縦横サイズＮがｎの倍数とする。一般的には、ｎは使用するプロジェクタ、カメラ、あるいは環境に依存するため、システムパラメータとして事前テストにより十分なカメラ応答が得られる範囲でライン幅ｎを決定してもよい。一方、横ライン照明は、Ｎ×ｎ画素の大きさをもち、照明番号ｆにしたがって、下端から上端へ幅ｎの等間隔で移動する。縦ライン照明は、ｆ＝１ではプロジェクタ画素領域の左端に位置し、ｆ＝Ｌのときプロジェクタ画素領域の右端に位置する。一方、横ライン照明は、ｆ＝Ｌ＋１のときプロジェクタ画素領域の下端に位置し、ｆ＝２Ｌのときプロジェクタ画素領域の上端に位置する。
【００３４】
各ライン照明パターンが生成されるたびに、プロジェクタ１２は各ライン照明画像を出力する。続いて、その照明を出力した後に、ある一定時間を空けてカメラ１０で観測画像を取得する。システムによってはこの処理が間に合わない場合があることを想定して、プロジェクタ投影とカメラ観測の間の時間にある一定時間を設ける。また、画像内でのＭ×Ｍ画素の範囲とするが、縦横のサイズは任意に設定しても処理内容に変更はない。画像取得後、事前に保有しておいた背景画像との背景差分を処理する。背景画像とは、照明パターンが照明されていない状態、あるいは黒を投影したときの観測画像である。この背景差分において、蛍光灯などの環境光の下では画像雑音が多く混入するため、閾値として例えば１０階調に設定しておき、この値より大きい画素をカメラ１０の応答画素として検出する。各画素について、閾値以上の画素値であるとき、カメラ応答として検出する。検出した画素について、その画素の２次元座標と共に、カメラ応答の画素値を一次的に保存する（保存形式はテキストデータ形式で十分である）。
【００３５】
Ｌ種類の縦ライン照明とＬ種類の横ライン照明が照明パターンとしてプロジェクタ１２から出力されるため、本処理は２Ｌ種類のカメラ画像からカメラ応答データを画像ＤＢ４０に記憶し、全てのカメラ応答データを画像ＤＢ４０に記憶した時点で本処理を終了する。
【００３６】
画像ＤＢ４０には、照明画像に対応した応答データの各々と、縦ライン照明画像の各々又は横ライン照明画像の各々とが記憶されている。
【００３７】
ＬＴデータ獲得部２８は、以下に説明するように、カメラ応答検出部２２により生成された複数の照明画像と、カメラ応答検出部２２により観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を獲得する。
【００３８】
ＬＴデータ獲得部２８は、カメラ応答検出部２２で保存されたカメラ応答データを取り出して、ＬＴデータを抽出してＬＴ行列を構築する。以下では、プロジェクタ画面での対象画素数がＮ×Ｎ画素、カメラ画面での対象画素がＭ×Ｍ画素であるものとするが、縦横のサイズは任意に設定しても処理内容に変更はない。図３に示すように、ＬＴの赤成分（Ｒの応答値）を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｒｒ、ＬＴの緑成分（Ｇの応答値）を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｇｇ、ＬＴの青成分（Ｂの応答値）を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｂｂを確保する。一般的にＬＴ行列は疎行列となり、疎行列の場合は大半の要素が０となることが知られている。扱うプロジェクタ画素またはカメラ画素の大きさによって、ＬＴ行列Ｔが巨大な行列になる場合がある。計算機メモリの過剰な割り当てを回避するため、市販ソフトで使われているスパース行列の形式を利用する。スパース行列の形式とは、０を含む要素を全て削除した行列形式であり、行列要素が非零のときだけ、データをもつコンパクトな行列データ形式である。本発明の実施の形態でのＬＴ行列は、この行列形式に従うものとする。
【００３９】
本実施の形態では、白色照明のパターンからＬＴ行列を獲得するため、いわゆるプロジェクタ・カメラシステム間のカラー混合（color mixture）を考慮しないものとする。この場合、ＬＴ行列の行列要素はプロジェクタ画素と結び付くカメラ画素のＲＧＢ応答値になる。ＬＴデータ獲得部２８における処理フローでは、処理を開始すると、カウンタｉをｉ＝１に初期化する。縦ラインの照明に対する応答データは応答データが検出された順番に保存されており、カウンタｉはその応答データを処理する指標として使う。カウンタｉが設定されると、画像ＤＢ４０から、縦ライン照明に関する応答データＶｉを取り出す。同様に、カウンタｊをｊ＝１に初期化する。横ラインの照明に対する応答データは応答データが検出された順番に保存されており、カウンタｊはその応答データを処理する指標として使う。カウンタｊが設定されると、画像ＤＢ４０から、横ライン照明に関する応答データＨｊを取り出す。２つの応答データから、カメラ座標が重複する座標を探す。すなわち、縦ライン照明と横ライン照明の両方に応答したカメラ画素を見つける。両方の照明に応答したカメラ画素が見つかった場合、カメラ応答データ（輝度値）の平均値を計算する。例として、カメラ応答の座標（Ｘｉ，Ｙｊ）の画素からＲＧＢの応答値（Ｃｒ，Ｃｇ，Ｃｂ）を抽出したとする。図３に示すように、ＬＴ行列Ｔｒｒにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＲの応答値Ｃｒを書き込み、ＬＴ行列Ｔｇｇにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＧの応答値Ｃｇを書き込み、ＬＴ行列Ｔｂｂにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＢの応答値Ｃｂを書き込む。
【００４０】
上記のＬＴ行列への書き込み処理を、検出した全てのカメラ画素に対して行う。続いて、カウンタｊの値が横ライン照明の本数Ｌと一致しないとき、カウンタｊをｊ←ｊ＋１に増加させ、再び、縦ライン照明と横ライン照明に関するカメラ応答データＶｉとＨｊを取り出す。カウンタｊの値が横ライン照明の本数Ｌときは、ｊをｊ＝１に初期化し、カウンタｉをｉ←ｉ＋１に増加させ、再び、縦ライン照明と横ライン照明に関するカメラ応答データＶｉとＨｊを取り出す。これを全ての縦ライン照明に関する応答データと全ての横ライン照明に関する応答データについて、同様の処理を繰り返す。縦ライン照明に関する応答データはＬ個、横ライン照明に関する応答データはＬ個あるので、ＬＴ行列Ｃの行方向に各列ベクトルＣ１、Ｃ２、Ｃ３、・・・、Ｃｘ（ｘ＝Ｌ２）を配置してＬＴ行列Ｔが構築される。
【００４１】
上記の手法により、プロジェクタ１２とカメラ１０を使って、プロジェクタ画面の各座標から照明した光線とカメラ画面の各座標の応答を結び付けるＬＴを効率的に獲得でき、リライティングに使うためのＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂをそれぞれ構築することができる。
【００４２】
ＬＴデータ洗練化部３０は、以下に説明するように、ＬＴデータ獲得部２８により獲得したＬＴ行列と、プロジェクタ１２から洗練化用の照明画像を出力させたときにカメラ１０により撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、洗練化用の照明画像を出力させたときの観測画像とテスト画像との画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新する。また、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新し、更新したＬＴ行列と、照明ベクトルとの積を算出してテスト画像を生成することを、洗練化用の照明画像を出力させたときの観測画像とテスト画像との誤差値が予め定めた許容値以下になるまで繰り返す。
【００４３】
ＬＴデータ洗練化部３０では、ＬＴデータ獲得部２８で得たＬＴ行列の要素を、カメラ画像を使って更新する処理を行う。データ洗練化部３０は、処理を開始すると、Ｎ×Ｎ画素サイズの洗練化用の照明画像を生成し、プロジェクタ１２から洗練化用の照明画像を投影する。本実施の形態では、洗練化用の照明画像の一例として白色画像を用い、各ＲＧＢ値は（２５５，２５５，２５５）とする。次に、照明画像が投影された被写体を写した観測画像をカメラ１０で取得する。
【００４４】
一方、洗練化用の照明画像に相当する照明ベクトルＰｗを設定する。照明ベクトルＰｗはＮ２次元のベクトルとし、全ての要素を１と与える。
【００４５】
続いて、ＬＴデータ獲得部２８で得たＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂと照明ベクトルＰｗとの積を算出する。行列演算：Ｃｒ＝ＴｒｒＰｗ、Ｃｇ＝ＴｇｇＰｗ、Ｃｂ＝ＴｂｂＰｗにより、Ｒの応答値に該当するベクトルＣｒ、Ｇの応答値に該当するベクトルＣｇ、Ｂの応答値に該当するベクトルＣｂをそれぞれ得る。各ベクトルから２次元行列へ再配置して、洗練化用の照明（白色照明）に対する被写体のテスト画像を得る。
【００４６】
応答データとして取得した観測画像であるカメラ画像と、生成したテスト画像との誤差値を算出する。例えば、誤差値としてはＲＧＢ値それぞれの二乗誤差平均あるいは絶対誤差平均とする。誤差値が所定の値未満であれば、ＬＴデータ洗練化部３０の処理の全てを終了する。誤差値が所定の値以上であれば、次に、カメラ画像とテスト画像のそれぞれの対象画素（ｉ，ｊ），（１≦ｉ，ｊ≦Ｍ）の画素値を抽出し、その画素値差分を算出する。カメラ画像から抽出した１画素のＲＧＢ値が（Ｃｒ（ｉ，ｊ），Ｃｇ（ｉ，ｊ），Ｃｂ（ｉ，ｊ））とし、テスト画像から抽出した１画素のＲＧＢ値が（Ｃ′′ｒ（ｉ，ｊ），Ｃ′′ｇ（ｉ，ｊ），Ｃ′′ｂ（ｉ，ｊ））とするとき、画素値差分（ΔＲ（ｉ，ｊ），ΔＧ（ｉ，ｊ），ΔＢ（ｉ，ｊ））は、以下（１）〜（３）式により算出する。
【００４７】
【数１】
2017183903.tif 000003
ここで、カメラ画像の座標（ｉ，ｊ）に相当するＬＴ行列の行の要素をチェックする。図３には、ＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂが示されており、行列の各行はカメラ画像の座標（ｉ，ｊ）に相当するカメラ応答となっている。ＬＴ行列Ｔｒｒの座標（ｉ，ｊ）に相当する行において非零要素の個数がＫｒ、ＬＴ行列Ｔｇｇの座標（ｉ，ｊ）に相当する行において非零要素の個数がＫｇ、ＬＴ行列Ｔｂｂの座標（ｉ，ｊ）に相当する行において非零要素の個数がＫｂとする。すなわち、Ｒの応答値のカメラ座標（ｉ，ｊ）とＬＴの関係にあるプロジェクタ座標の個数はＫｒ、Ｇの応答値のカメラ座標（ｉ，ｊ）とＬＴの関係にあるプロジェクタ座標の個数はＫｇ、Ｂの応答値のカメラ座標（ｉ，ｊ）とＬＴの関係にあるプロジェクタ座標の個数はＫｂである。そこで、各ＬＴ行列のカメラ座標（ｉ，ｊ）に相当する行の非零要素だけをそれぞれ以下（４）〜（６）式により更新する。
【００４８】
【数２】
2017183903.tif 000004
【００４９】
ただし、γｒ、γｇ、γｂはフィードバックにおけるゲインパラメータであり、誤差値が収束するように、例えば、γｒ＝γｇ＝γｂ＝０．１と与える。
【００５０】
上記の処理を全てのカメラ画素について行い、再び、Ｔｒｒ、Ｔｇｇ、Ｔｂｂと照明ベクトルＰｗとの行列演算によりテスト画像を生成し、カメラ画像とテスト画像間の誤差値が許容値以下になるまで上記の処理を繰り返す。なお、白色照明の投影とカメラ画像の観測は１回行うだけでよい。本処理によってＬＴ行列の要素が洗練化されることにより、白色照明の実画像とテスト画像が一致し、ＬＴ行列において十分な明るさを有するＬＴデータを保有することができる。
【００５１】
リライティング生成部３２は、以下に説明するように、ＬＴデータ洗練化部３０により更新されたＬＴ行列に基づいて、所定の照明画像に対するリライティングを行ったリライティング画像を生成する。
【００５２】
リライティング生成部３２においては、ＬＴデータ洗練化部３０で更新したＬＴ行列を使って、リライティング画像を生成する。リライティング生成部３２では、処理を開始すると、まず所定の照明画像を設定する。動画の場合は１フレームずつ与えることとする。便宜上、所定の照明画像の画素サイズをＮ×Ｎとする。所定の照明画像の全ての画素のＲＧＢ値からＲの画像、Ｇの画像、Ｂの画像に分離する。各画像の２次元画素の配置を１列に並べ替えてベクトル化して、Ｒの照明画像のベクトルＰｒ、Ｇの照明画像のベクトルＰｇ、Ｂの照明画像のベクトルＰｂを生成する。次に、リライティングの計算において、行列演算：Ｃｒ＝ＴｒｒＰｒ、Ｃｇ＝ＴｇｇＰｇ、Ｃｂ＝ＴｂｂＰｂにより、Ｒ照明に該当するベクトルＣｒ、Ｇ照明に該当するベクトルＣｇ、Ｂ照明に該当するベクトルＣｂをそれぞれ得る。照明画像をベクトルにしたときの逆の処理を行い、各ベクトルから２次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。これをディスプレイ等の画像出力装置に出力すれば与えた照明の下での観測画像を仮想的に得ることができる。動画の場合、次のフレームを照明画像として設定し、上記の処理を繰り返す。本処理は行列とベクトルの線形演算に基づいているため、リアルタイム処理あるいは動画のフレームに適している。
【００５３】
＜本発明の第１の実施の形態に係る空間映像再現装置の作用＞
【００５４】
次に、本発明の第１の実施の形態に係る空間映像再現装置１００の作用について説明する。まず、図４を参照して、カメラ応答検出処理ルーチンについて説明する。なお、カメラ１０において観測する範囲はＭ×Ｍ画素の範囲に設定されている。
【００５５】
まず、ステップＳ１００では、縦横ラインの照明画像を投影する照明対象領域をＮ×Ｎ画素と設定する。
【００５６】
次に、ステップＳ１０２では、縦ライン及び横ラインの照明の幅ｎを設定する。
【００５７】
ステップＳ１０４では、照明パターンの番号ｆの初期値をｆ＝１と設定する。
【００５８】
ステップＳ１０６では、照明パターンの番号ｆの値がＬより大きいか否かを判定する。照明パターンｆがＬ以下である場合には、ステップＳ１０８へ移行し、ｆがＬより大きい場合には、ステップＳ１１０へ移行する。
【００５９】
ステップＳ１０８では、縦ライン照明を照射するための照明画像を設定すると共に、画像ＤＢ４０に記憶する。
【００６０】
ステップＳ１１０では、横ライン照明を照射するための照明画像を設定すると共に、画像ＤＢ４０に記憶する。
【００６１】
ステップＳ１１２では、ステップＳ１０８又はＳ１１０において設定した縦ライン照明画像又は横ライン照明画像をプロジェクタ１２から出力する。
【００６２】
ステップＳ１１４では、プロジェクタ１２により出力された照明画像について、カメラ１０から観測画像を取得する。
【００６３】
ステップＳ１１６では、画像ＤＢ４０から取得した背景画像と、ステップＳ１１４において取得した観測画像との背景差分を取得する。
【００６４】
ステップＳ１１８では、予め設定した閾値と、ステップＳ１１６において取得した背景差分とから、カメラ応答の画素の各々を検出する。
【００６５】
ステップＳ１２０では、ステップＳ１１８において取得したカメラ応答の画素の各々の画素、輝度値、及び当該画素の２次元座標を応答データとして、照明パターンｆと対応づけて画像ＤＢ４０に記憶する。
【００６６】
ステップＳ１２２では、照明パターンの番号の値ｆが２Ｌであるか否かを判定する。ｆの値が２Ｌである場合には、パターン応答検出処理ルーチンを終了し、ｆの値が２Ｌより小さい場合には、ステップＳ１２４へ移行してｆ＝ｆ＋１とし、ステップＳ１０６〜ステップＳ１２２の処理を繰り返す。
【００６７】
次に、図５に示す、ＬＴデータ獲得処理ルーチンについて説明する。
【００６８】
まず、ステップＳ２００では、カウンタｉの値を１に初期化する。
【００６９】
次に、ステップＳ２０２では、画像データベース４０に記憶されている、ｉ番目の縦ライン照明に対応する応答データＶｉを読み込む。
【００７０】
次に、ステップＳ２０４では、カウンタｊの値を１に初期化する。
【００７１】
次に、ステップＳ２０６では、画像データベース２８に記憶されている、ｊ番目の横ライン照明に対応する応答データＨｊを読み込む。
【００７２】
次に、ステップＳ２０８では、ステップＳ２０２において取得した応答データＶｉと、ステップＳ２０６において取得した応答データＨｊとに基づいて、カメラ応答の画素の各々が重複する座標の各々を検出する。
【００７３】
次に、ステップＳ２１０では、ステップＳ２０８において取得したカメラ応答の画素の各々が重複する座標の各々における、画素の各々について、ステップＳ２０２において取得した応答データＶｉと、ステップＳ２０６において取得した応答データＨｊとに基づいて、当該画素の輝度値の平均値を計算する。
【００７４】
次に、ステップＳ２１４では、ステップＳ２０８において取得したカメラ応答の画素の各々が重複する座標の各々と、ステップＳ２１０において取得した重複する座標の各々における画素の各々の輝度値の平均値とに基づいて、ＬＴ行列への書き込みを行う。具体的には、カメラ応答の座標（Ｘｉ，Ｙｊ）の画素からＲＧＢの応答値（Ｃｒ，Ｃｇ，Ｃｂ）を抽出したとし、ＬＴ行列Ｔｒｒにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＲの応答値Ｃｒを書き込み、ＬＴ行列Ｔｇｇにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＧの応答値Ｃｇを書き込み、ＬＴ行列Ｔｂｂにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＢの応答値Ｃｂを書き込む。
【００７５】
次に、ステップＳ２１８では、カウンタｊの値がＬか否かを判定する。カウンタｊの値がＬである場合には、ステップＳ２２２へ移行し、カウンタｊの値がＬよりも小さい場合には、ステップＳ２２０へ移行する。
【００７６】
ステップＳ２２０では、カウンタｊの値に１を加えた値をカウンタｊの値に設定する。
【００７７】
ステップＳ２２２では、カウンタｉの値がＬか否かを判定する。カウンタｉの値がＬよりも小さい場合には、ステップＳ２２４へ移行し、カウンタｉの値がＬである場合には、ＬＴデータ獲得処理ルーチンを終了する。
【００７８】
ステップＳ２２４では、カウンタｉの値に１を加えた値をカウンタｉの値に設定する。
【００７９】
次に、図６に示す、ＬＴデータ洗練化処理ルーチンについて説明する。
【００８０】
ステップＳ３００では、Ｎ×Ｎ画素サイズの洗練化用の照明画像を生成し、プロジェクタ１２から照明画像を投影する。
【００８１】
ステップＳ３０２では、洗練化用の照明画像が投影された被写体を写した観測画像をカメラ１０で取得する
【００８２】
ステップＳ３０４では、洗練化用の照明画像に相当する照明ベクトルＰｗを設定する。
【００８３】
ステップＳ３０６では、ＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂと照明ベクトルＰｗとの積を算出し、洗練化用の照明（白色照明）に対する被写体のテスト画像を生成する。
【００８４】
ステップＳ３０８では、ステップＳ３０２で応答データとして取得した観測画像であるカメラ画像と、ステップＳ３０６で生成したテスト画像とを用いて、画像間の誤差値を算出する。
【００８５】
ステップＳ３１０では、ステップＳ３０８で算出した誤差値が、δ未満であるかを判定し、δ未満であればＬＴデータ洗練化処理ルーチンを終了し、δ未満でなければステップＳ３１２へ移行する。
【００８６】
ステップＳ３１２では、カメラ画像のカメラ画素から、対象画素（ｉ，ｊ）の画素値を抽出する。
【００８７】
ステップＳ３１４では、テスト画像のテスト画素から、対象画素（ｉ，ｊ）の画素値を抽出する。
【００８８】
ステップＳ３１６では、ステップＳ３１２で抽出したカメラ画像の対象画素（ｉ，ｊ）の画素値と、ステップＳ３１４で抽出したテスト画像の対象画素（ｉ，ｊ）の画素値とに基づいて、上記（１）〜（３）式に従って、ＲＧＢのそれぞれの画素値差分（ΔＲ（ｉ，ｊ），ΔＧ（ｉ，ｊ），ΔＢ（ｉ，ｊ））を算出する。
【００８９】
ステップＳ３１８では、ＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂそれぞれについて、座標（ｉ，ｊ）に相当する行における非零要素の個数をカウントする。
【００９０】
ステップＳ３２０では、ＬＴ行列Ｔｒｒ、Ｔｇｇ、Ｔｂｂそれぞれについて、ステップＳ３１６で算出した画素値差分と、ステップＳ３１８でカウントした非零要素の個数とに基づいて、上記（４）〜（６）式に従って、カメラ座標（ｉ，ｊ）に相当する行の各要素のうち、非零要素を更新する。
【００９１】
ステップＳ３２２では、全てのカメラ画素についてステップＳ３１２〜Ｓ３２０の処理を終了したかを判定し、全てのカメラ画素について処理を終了していれば、ステップＳ３０６へ移行して、ステップＳ３２０で更新したＬＴ行列を用いて、再びテスト画像を生成して処理を繰り返す。全てのカメラ画素について処理を終了していなければステップＳ３１２へ移行して、次の対象画素を選択して処理を繰り返す。
【００９２】
次に、図７に示す、リライティング生成処理ルーチンについて説明する。
【００９３】
ステップＳ４００では、動画のフレームを選択し、選択したフレームに対応する所定の照明画像を設定する。
【００９４】
ステップＳ４０２では、ステップＳ４００で設定した所定の照明画像の全ての画素のＲＧＢ値から所定の照明画像のベクトル（Ｒの照明画像のベクトルＰｒ、Ｇの照明画像のベクトルＰｇ、Ｂの照明画像のベクトルＰｂ）を生成する。
【００９５】
ステップＳ４０４では、リライティングに必要な行列演算：Ｃｒ＝ＴｒｒＰｒ、Ｃｇ＝ＴｇｇＰｇ、Ｃｂ＝ＴｂｂＰｂにより、Ｒ照明に該当するベクトルＣｒ、Ｇ照明に該当するベクトルＣｇ、Ｂ照明に該当するベクトルＣｂをそれぞれ計算する。
【００９６】
ステップＳ４０６では、ステップＳ４０４で計算したＣｒ、Ｃｇ、Ｃｂの各ベクトルから２次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。
【００９７】
ステップＳ４０８では、動画の全てのフレームについて処理を終了したかを判定し、全てのフレームについて処理を終了していなければ、ステップＳ４００に戻って動画の次のフレームを選択して処理を繰り返し、全てのフレームについて処理を終了していればリライティング生成処理ルーチンを終了する。
【００９８】
以上説明したように、第１の実施の形態に係る空間映像再現装置によれば、縦ライン、又は横ラインの照明画像を生成し、出力された照明画像をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、生成された複数の照明画像と、観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、ＬＴ行列を獲得し、獲得したＬＴ行列と、プロジェクタ１２から洗練化用の照明画像を出力させたときにカメラ１０により撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新することにより、リライティングを行うためのＬＴ行列を洗練化できる。
【００９９】
＜本発明の第２の実施の形態に係る空間映像再現装置の構成＞
【０１００】
次に、本発明の第２の実施の形態に係る空間映像再現装置の構成について説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０１０１】
第２の実施の形態では、圧縮センシング（compressed sensing）の技術を利用して、カメラ応答検出部で得たカメラ応答データからＬＴ行列の全ての要素を推定するのが主な処理内容である。
【０１０２】
上記図１に示すように、第２の実施の形態では、空間映像再現装置１００は、第１の実施の形態と同様に、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されているが、演算部２０におけるＬＴデータ獲得部２８の処理が第１の実施の形態と異なっている。
【０１０３】
第２の実施の形態におけるＬＴデータ獲得部２８は、以下に説明するように、各画素の各々に対し、観測画像毎に検出された照明画像毎の当該画素のカメラ応答と、複数の照明画像とに基づいて、ＬＴ行列のうちの当該画素に関する各要素からなるＬＴベクトルを推定することにより、ＬＴ行列を推定する。
【０１０４】
まず、ＬＴデータ獲得部２８における圧縮センシングの原理を説明する。未知な被写体への映像投影において、Ｎ２次元のプロジェクタ照明ベクトルＰ（Ｎ×Ｎ画素のプロジェクタ１２から投影する照明画像をベクトル化したデータ）が与えられるとプロジェクタ・カメラシステムはＭ２次元のカメラ観測ベクトルをＣとする（Ｍ×Ｍ画素のカメラ観測画像をベクトル化したデータ）と仮定する。一般的に、未校正なプロジェクタ・カメラシステムを使って任意の被写体（被写体は、その３次元形状と反射特性が不明であるとする）へ映像を投影するとき、照明画像とカメラ応答の入出力対応は、Ｍ２×Ｎ２のＬＴ行列Ｔを用いると、以下（７）式で表される。
【０１０５】
【数３】
2017183903.tif 000005
【０１０６】
ＰはＮ２次元のプロジェクタ照明ベクトル、すなわちＮ×Ｎ画素の照明画像をベクトル化したデータを表し、ＣはＭ２次元のカメラ観測ベクトル、すなわちＭ×Ｍ画素の観測画像をベクトル化したデータを表す。ＬＴ行列Ｔは、カメラ間の幾何的・光学的対応関係として、プロジェクタの画素から放射された光が被写体に反射したときの直接反射、間接反射を記述する。Ｆは環境照明に対応するカメラ応答であり、カメラ応答検出部２２で用いた背景画像に相当する。なお、暗室環境でプロジェクタ・カメラシステムを用いる場合には、プロジェクタからのブラックオフセット光に反応したカメラ応答が主成分である。
【０１０７】
上記（１）式は任意のプロジェクタ照明とカメラ観測のペアについて成り立ち、Ｋ種類のプロジェクタ照明｛Ｐ１，Ｐ２，・・・，ＰＫ｝を用いて、そのカメラ応答｛Ｃ１，Ｃ２，・・・，ＣＫ｝を観測するとき、以下（８）式を満たす。
【０１０８】
【数４】
2017183903.tif 000006
【０１０９】
プロジェクタ・カメラシステムを用いてＬＴを獲得することは、ユーザによって設計されたプロジェクタ照明を用いて、そのカメラ応答に基づいて行列Ｔを推定することを意味する。ここで、事前に黒画像を投影したカメラ応答画像から背景画像を得て、各カメラ応答はその背景差分によりベクトルＦが取り除かれているとする。
【０１１０】
本実施の形態では、プロジェクタ照明に縦横ラインの照明を照射するための照明画像を用いるため、（８）式ではＫ＝２Ｌであり、各プロジェクタ照明｛Ｐ１，Ｐ２，・・・，ＰＫ｝は該当する縦横ラインの照明画像の２次元画素の並びを列に再配置したベクトルとする。一方のカメラ応答データは、カメラ応答検出部２２において上記図３のデータ形式で保存されている。上記（８）式のカメラ応答｛Ｃ１，Ｃ２，・・・，ＣＫ｝は、カメラ応答データの画素座標に基づいて２次元画素の並びを列に再配置したベクトルとする。
【０１１１】
（８）式の転置をとると、以下（９）式を得る。
【０１１２】
【数５】
2017183903.tif 000007
【０１１３】
ただし、便宜上、
【０１１４】
【数６】
2017183903.tif 000008
【０１１５】
と置換した（以降では、行列Φをセンシング行列と呼ぶ）。上記（９）式の左辺のＫ×Ｍ２の行列の各列をＫ次元ベクトルの各々からなる
【０１１６】
【数７】
2017183903.tif 000009
【０１１７】
で表し、上記（９）式の右辺の行列ＴＴの各列をＮ２次元ベクトルの各々からなる
【０１１８】
【数８】
2017183903.tif 000010
【０１１９】
で表すことにより、上記（９）式は、
【０１２０】
【数９】
2017183903.tif 000011
【０１２１】
と書き直すことができる。（１１）式から、第ｊ列のＫ次元ベクトルｖｊは、
【０１２２】
【数１０】
2017183903.tif 000012
【０１２３】
となる。ＬＴデータ獲得部２８では、ｖｊを応答ベクトル、ｕｊをＬＴベクトルと呼ぶことにする。上記（１２）式は、Ｎ２次元のＬＴベクトルｕｊを入力とし、Ｋ×Ｎ２の行列の線形変換によってＫ次元の応答ベクトルｖｊを出力すると解釈することができる。
【０１２４】
上記（１２）式では、応答ベクトルｖｊは、ｊ番目のカメラ応答の画素におけるＫ種類の照明画像に対する時系列の応答を表し、未知のＬＴベクトルｕｊをＫ種類の照明画像から構成される行列Φに変換することで得られる。一般的に、ＬＴ行列Ｔはスパースな性質をもつため、その行列を構成するＬＴベクトルｕｊもスパースである。ＬＴデータ獲得部２８は、（１２）式に基づいてＬＴベクトルｕｊを求めるために圧縮センシングを利用する。
【０１２５】
圧縮センシングとは、ｌ１ノルム最小化の原理に基づいており、（１２）式において、
【０１２６】
【数１１】
2017183903.tif 000013
【０１２７】
を満たす解ｕｊを求める信号処理手法である。（１３）式において、
【０１２８】
【数１２】
2017183903.tif 000014
【０１２９】
はｌ１ノルムを表し、
【０１３０】
【数１３】
2017183903.tif 000015
【０１３１】
はｌ２ノルムを表す。圧縮センシングには様々なアルゴリズムが公知であるが、ここでは、実装が容易であり、理論的に収束性の良い、ＲＯＭＰ（Regularized Orthogonal Matching Pursuit）アルゴリズムを利用して解ｕｊを求める。圧縮センシングにより、個々のｕｊ，ｊ＝１，２，・・・，Ｍ２について、Ｍ２セットのＬＴベクトル
【０１３２】
【数１４】
2017183903.tif 000016
【０１３３】
が得られると、Ｍ２×Ｎ２のＬＴ行列Ｔは、
【０１３４】
【数１５】
2017183903.tif 000017
【０１３５】
の配列により求めることができる。
【０１３６】
以上の原理に基づいて、ＬＴデータ獲得部２８の処理内容を説明する。ＬＴデータ獲得部２８が処理を開始すると、まず、上記（１０）式に従ってセンシング行列Φを算出する。圧縮センシングを作動させるため、上記（１３）式におけるパラメータεを設定する。カメラ応答には雑音が付加されているため、例えば、ε＝０．０１と与える。次に、画像ＤＢ４０に格納されたカメラ応答データを逐次読み出して、ｊ番目の応答ベクトルｖｊを生成する。なお、応答ベクトルｖｊはｊ番目のカメラ応答Ｃｊとは異なる。
【０１３７】
（９）式、及び（１１）式から明らかなように、応答ベクトルｖｊは、Ｋ種類の照明画像に対するカメラ応答｛Ｃ１，Ｃ２，・・・，ＣＫ｝のｊ番目の要素を取り出してベクトル化したデータである。
【０１３８】
画像ＤＢ４０に格納されたカメラ応答データはｒｇｂの輝度値をもつため、各色の応答データをαチャネルの応答データと呼ぶことにする（α∈｛ｒ，ｇ，ｂ｝）。応答ベクトルｖｊの生成では、画像ＤＢ４０からカメラ応答データを適宜読み出し、Ｋ種類の照明画像に対するカメラ応答データのうちのαチャネルのカメラ応答｛Ｃ１，Ｃ２，・・・，ＣＫ｝から、ｊ番目の要素のみを取り出して、Ｎ２次元ベクトルｖｊを生成する。
【０１３９】
次に、ＬＴデータ獲得部２８は、ＲＯＭＰアルゴリズムを利用して、上記（１３）式を満たすＬＴベクトルｕｊを復元する。ＬＴ行列の構築では、事前にＭ２×Ｎ２の行列バッファＴαβ，（α＝β）を用意しておき、上記（１４）式に従って、ｊ番目の行にＬＴベクトルの転置、すなわち、ｕｊＴを代入する。なお、通常のメモリサイズで用意するのではなく、スパース表現でメモリを確保し、ＬＴベクトルの非零要素のみを代入する。
【０１４０】
ＬＴデータ獲得部２８は、以上の処理を、ｒｇｂチャネルの応答データの全ての画素ｊ＝１，２，・・・，Ｍ２について処理すると、ｒチャネルの応答データから推定したＬＴ行列Ｔｒｒ、ｇチャネルの応答データから推定したＬＴ行列Ｔｇｇ、ｂチャネルの応答データから推定したＬＴ行列Ｔｂｂが得られる。そして、ＬＴデータ獲得部２８は、これらのＬＴ行列を画像ＤＢ４０に格納する。
【０１４１】
なお、第２の実施の形態に係る空間映像再現装置の他の構成については、第１の実施の形態と同様であるため詳細な説明を省略する。
【０１４２】
＜本発明の第２の実施の形態に係る空間映像再現装置の作用＞
【０１４３】
次に、本発明の第２の実施の形態に係る空間映像再現装置１００の作用について説明する。
【０１４４】
ここでは、第１の実施の形態と異なるＬＴデータ獲得処理ルーチンについてのみ説明する。
【０１４５】
図８に示すように、まず、ステップＳ５００では、照明パターン毎に生成された照明画像に基づいて、上記（１０）式に従ってセンシング行列Φを算出する。
【０１４６】
次に、ステップＳ５０２では、上記（１３）式におけるパラメータεを、ε＝０．０１と設定する。
【０１４７】
次に、ステップＳ５０４では、カウンタｊをｊ＝１に初期化する。
【０１４８】
次に、ステップＳ５０６では、カウンタｊの値に基づいて、カメラ画素のｊ番目の画素を指定する。
【０１４９】
次に、ステップＳ５０８では、ステップＳ５０６で指定されたｊ番目の画素について、画像ＤＢ４０に格納されたカメラ応答データを読み出して、応答ベクトルｖｊを生成する。
【０１５０】
次に、ステップＳ５１０では、ｊ番目の画素について、ステップＳ５００で算出したセンシング行列Φと、ステップＳ５０８で生成した応答ベクトルｖｊとに基づいて、上記（７）式を満たす、ＬＴベクトルｕｊを復元する。
【０１５１】
次に、ステップＳ５１２では、ｊ番目の画素について、予め用意されたＭ２×Ｎ２の行列バッファＴαβ，（α＝β）に対し、上記（１４）式に従って、ｊ番目の行にＬＴベクトルの転置ｕｊＴを代入し、ＬＴ行列を構築し、画像ＤＢ４０に保存する。
【０１５２】
次に、ステップＳ５１４では、ｊがＭ２であるかを判定し、Ｍ２であれば、ＬＴデータ獲得処理ルーチンを終了し、Ｍ２でなければステップＳ５１６へ移行する。
【０１５３】
次に、ステップＳ５１６では、カウンタｊをｊ＝ｊ＋１とカウントアップして、ステップＳ５０６へ移行する。
【０１５４】
なお、第２の実施の形態に係る空間映像再現装置の他の作用については、第１の実施の形態と同様であるため詳細な説明を省略する。
【０１５５】
＜本発明の第３の実施の形態に係る空間映像再現装置の構成＞
【０１５６】
次に、本発明の第３の実施の形態に係る空間映像再現装置の構成について説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０１５７】
第３の実施の形態では、ランダムな点光源を用いてＬＴ行列を生成することを主な処理内容とする。
【０１５８】
上記図１に示すように、第３の実施の形態では、空間映像再現装置１００は、第１の実施の形態と同様に、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されている。ここで、演算部２０におけるカメラ応答検出部２２の処理が第１の実施の形態と異なっている。また、ＬＴデータ獲得部２８の処理は第２の実施の形態と同様にすればよい。
【０１５９】
第３の実施の形態におけるカメラ応答検出部２２は、プロジェクタ１２から照射するための、複数の照明画像をランダムに生成し、複数の照明画像毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラ１０により撮影するように制御する。以降の画素検出の処理は第１の実施の形態と同様である。説明の便宜上、照明パターンのプロジェクタ画素領域をＮ×Ｎ画素とするが、縦横の画素数は任意である。カメラ応答検出部２２の処理では、各点光源の縦横サイズｎ×ｎとして、その配置をランダムに変化させた照明パターンを生成する。理想的にはｎ＝１画素が相応しいが、１×１サイズの点光源照明ではその照明強度が微弱なために十分なカメラ応答が得られないことが想定される。そのような状況を考慮して、例えば、各点光源のサイズを４×４画素（ｎ＝４）とする。ただし、ｎＬ＝Ｎ（Ｌは整数）とし、対象画素領域の縦横サイズＮがｎの倍数とする。
【０１６０】
一般的には、点光源のサイズは使用するプロジェクタ、カメラ、あるいは環境に依存するため、システムパラメータとして事前テストにより十分なカメラ応答が得られる範囲で点光源の縦横サイズｎ×ｎを決定してもよい。
【０１６１】
カメラ応答検出部２２では、まず処理を開始すると、照明番号に応じてｎ×ｎ画素の点光源をランダムに配置した照明パターンを生成する。照明番号は１から始まり、照明パターンを生成するたびに１ずつ増加させる。照明番号に応じて、Ｎ×Ｎ画素において、各ｎ×ｎサイズのサブ画素を点灯するか、点灯しないかを一様乱数などを利用して決定する。例えば、一様乱数によって得られる値は０から１の値に分布するので、各ｎ×ｎに対して一様乱数により値を割り振る。その値が１／２以下の場合は点灯させず、１／２を超える場合は点灯させる（Bernoulli Binary Patternと呼ばれている）。すなわち、点灯させない画素のＲＧＢ値は（０，０，０）と与え、点灯させる画素のＲＧＢ値は（２５５，２５５，２５５）と与える。これによりほぼ１／２の確率でｎ×ｎサイズを点光源としたランダム、かつ、それぞれ異なる照明パターンを生成する。
【０１６２】
続いて、発生させた順番に照明パターン（ランダム点照明画像）をプロジェクタ１２から出力し、カメラ１０で観測画像を取得する。画像内でのＭ×Ｍ画素の範囲とするが、縦横のサイズは任意に設定しても処理内容に変更はない。画像取得後、事前に保有しておいた背景画像との背景差分を処理する。各画素について、特定の閾値以上の画素値であるとき、カメラ応答として検出する。検出した画素について、その画素の２次元座標と共に、カメラ応答の画素値を一次的に保存する（保存形式はテキストデータ形式で十分である）。
【０１６３】
カメラ応答検出部２２における処理は、ランダム点光源照明を投影して得たカメラ画像からカメラ応答データを保存し、全てのカメラ応答データを保存した時点で、処理を終了する。このカメラ応答データを使って、第２の実施形態で説明したＬＴデータ獲得部２８の処理により、ＬＴ行列を構築することができる。
【０１６４】
なお、第３の実施の形態に係る空間映像再現装置の他の構成については、第１の実施の形態と同様であるため詳細な説明を省略する。
【０１６５】
＜本発明の第３の実施の形態に係る空間映像再現装置の作用＞
【０１６６】
次に、本発明の第３の実施の形態に係る空間映像再現装置１００の作用について説明する。
【０１６７】
ここでは、第１及び第２の実施の形態と異なるカメラ応答検出処理ルーチンについてのみ説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０１６８】
図９に示すように、ステップＳ６００では、照明の幅ｎを設定する。
【０１６９】
ステップＳ６０２では、一様乱数により値を割り振ることで、ランダム点による照明を照射するための照明画像を設定すると共に、画像ＤＢ４０に記憶する。
【０１７０】
ステップＳ６０４では、ステップＳ６０２で設定したランダム点による照明画像をプロジェクタ１２から出力する。
【０１７１】
なお、第３の実施の形態に係る空間映像再現装置の他の作用については、第１の実施の形態と同様であるため詳細な説明を省略する。
【０１７２】
以上説明したように、本発明の第３の実施の形態に係る空間映像再現装置によれば、複数の照明画像をランダムに生成し、出力された照明画像をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、生成された複数の照明画像と、観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、ＬＴ行列を獲得し、獲得したＬＴ行列と、プロジェクタ１２から洗練化用の照明画像を出力させたときにカメラ１０により撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新することにより、リライティングを行うためのＬＴ行列を洗練化できる。
【０１７３】
＜本発明の第４の実施の形態に係る空間映像再現装置の構成＞
【０１７４】
次に、本発明の第４の実施の形態に係る空間映像再現装置の構成について説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０１７５】
第４の実施の形態では、カラー照明を使って被写体を投影し、カラー混合を考慮したＬＴ行列を獲得することを主な処理内容とする。本来、赤、緑、及び青のスペクトルは、可視光の波長帯において分布しているため、プロジェクタ・カメラシステムでは、プロジェクタとカメラ間のカラー混合（color mixture あるいはcrosstalk）が発生する。そこで、本実施の形態では、βチャネルからの照明をプロジェクタから投影し、αチャネルのカメラ応答を観測して、ＬＴ行列Ｔαβを獲得する例を挙げる。ここで、βはプロジェクタのＲＧＢのいずれかの色を指し、αはカメラのＲＧＢのいずれかの色を指す。その組み合わせにより、本実施の形態では９種類のＬＴ行列：Ｔαβ、α，β∈｛ｒ、ｇ、ｂ｝を獲得する。
【０１７６】
上記図１に示すように、第４の実施の形態では、空間映像再現装置１００は、第１の実施の形態と同様に、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されている。
【０１７７】
第４の実施の形態に係るカメラ応答検出部２２は、以下に説明するように、赤照明、緑照明、青照明のライン照明を設定し、設定した赤照明、緑照明、青照明の順番に、第１の実施の形態と同様に、縦ライン、又は横ラインの照明画像を生成し、照明画像毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。
【０１７８】
カメラ応答検出部２２の処理では、照明番号は１から始まり、照明パターンを生成するたびに１ずつ増加させる。照明番号がｆ＜＝Ｌのとき、縦ラインの赤照明を設定する。あるいは、その番号がｆ＞Ｌのとき、横ラインの赤照明を設定する。照明番号に応じて縦ラインの赤照明あるいは横ラインの赤照明を設定し、全てのライン照明を投影し終わるまで繰り返す。以上の処理によって、縦横ラインの赤照明を合わせて２Ｌ本の赤照明を照明番号に従って順番にプロジェクタ１２から投影する。
【０１７９】
引き続いて、照明番号を１にリセットし、赤照明と同様に照明パターンを生成するたびに１ずつ増加させる。照明番号がｆ＜＝Ｌのとき縦ラインの緑照明を設定、ｆ＞Ｌのとき横ラインの緑照明を設定する。照明番号に応じて縦ラインの緑照明あるいは横ラインの緑照明を設定し、全てのライン照明を投影し終わるまで繰り返す。以上の処理によって、縦横ラインの緑照明を合わせて２Ｌ本の緑照明を照明番号に従って順番にプロジェクタ１２から投影する。
【０１８０】
続いて、照明番号を１にリセットし、上記と同様に照明パターンを生成するたびに１ずつ増加させる。照明番号がｆ＜＝Ｌのとき縦ラインの青照明を設定、ｆ＞Ｌのとき横ラインの青照明を設定する。照明番号に応じて縦ラインの青照明あるいは横ラインの青照明を設定し、全てのライン照明を投影し終わるまで繰り返す。以上の処理によって、縦横ラインの青照明を合わせて２Ｌ本の青照明を照明番号に従って順番にプロジェクタ１２から投影する。以上のように、赤照明、緑照明、青照明に応じて２Ｌ本ずつを使うため、合計６Ｌ本のライン照明を使う。
【０１８１】
次に、赤照明、緑照明、青照明の順番に応じて、カメラ１０で観測画像を取得する。画像内でのＭ×Ｍ画素の範囲とするが、縦横のサイズは任意に設定しても処理内容に変更はない。画像取得後、事前に保有しておいた背景画像との背景差分を処理する。背景画像とは、照明パターンが照明されていない状態、あるいは黒を投影したときの観測画像である。この背景差分において、蛍光灯などの環境光の下では画像雑音が多く混入するため、閾値として例えば１０階調に設定しておき、この値より大きい画素をカメラ１０の応答画素として検出する。各画素について、閾値以上の画素値であるとき、カメラ応答として検出する。検出した画素について、その画素の２次元座標と共に、カメラ応答の画素値を一次的に保存する（保存形式はテキストデータ形式で十分である）。
【０１８２】
カメラ応答検出部２２の処理は、縦横ラインの赤照明、緑照明、青照明を使って、観測されたカメラ画像からそれぞれのカメラ応答データを保存し、全てのカメラ応答データを保存した時点で終了する。
【０１８３】
ＬＴデータ獲得部２８では、カメラ応答検出部２２で保存された赤照明、緑照明、青照明に関するカメラ応答データを取り出して、第１の実施の形態と同様に、ＬＴデータを抽出してＬＴ行列を構築する。本実施の形態では、プロジェクタ画面での対象画素数がＮ×Ｎ画素、カメラ画面での対象画素がＭ×Ｍ画素であるとするが、縦横のサイズは任意に設定しても処理内容に変更はない。以下は、赤照明、緑照明、青照明に関する応答データの順番に処理する。
【０１８４】
まず、赤照明に関するカメラ応答データからＬＴ行列を構築する。上記図３に示すように、Ｒの応答値を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｒｒ、Ｇの応答値を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｇｒ、Ｂの応答値を記録するためのＭ２×Ｎ２サイズのＬＴ行列Ｔｂｒを確保する。一般的にＬＴ行列は疎行列となり、疎行列の場合は大半の要素が０となることが知られている。そこで、市販ソフトを使って疎行列のためのメモリ領域を確保して初期化してもよい。本実施の形態の処理は、第１の実施の形態の処理フローと同様に、赤照明、緑照明、青照明の順番に繰り返すため、同じフローに従う。処理を開始すると、カウンタｉをｉ＝１に初期化する。赤の縦ラインの照明に対する応答データは応答データが検出された順番に保存されており、カウンタｉはその応答データを処理する指標として使う。カウンタｉが設定されると、画像ＤＢ４０から、赤の縦ライン照明に関する応答データＶｉを取り出す。同様に、カウンタｊをｊ＝１に初期化する。赤の横ラインの照明に対する応答データは応答データが検出された順番に保存されており、カウンタｊはその応答データを処理する指標として使う。カウンタｊが設定されると、画像ＤＢ４０から、赤の横ライン照明に関する応答データＨｊを取り出す。２つの応答データから、カメラ座標が重複する座標を探す。すなわち、赤の縦ライン照明と赤の横ライン照明の両方に応答したカメラ画素を見つける。両方の照明に応答したカメラ画素が見つかった場合、カメラ応答データの平均値を計算する。例として、カメラ応答の座標（Ｘｉ，Ｙｊ）の画素からＲＧＢの応答値（Ｃｒ，Ｃｇ，Ｃｂ）を抽出したとする。図１０に示すように、ＬＴ行列Ｔｒｒにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＲの応答値Ｃｒを書き込み、ＬＴ行列Ｔｇｒにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＧの応答値Ｃｇを書き込み、ＬＴ行列Ｔｂｒにおいてカメラ座標（Ｘｉ，Ｙｊ）とプロジェクタ座標（Ｘｓ，Ｙｔ）が示す行列要素にＢの応答値Ｃｂを書き込む。
【０１８５】
上記のＬＴ行列への書き込み処理を、検出した全てのカメラ画素に対して行う。続いて、カウンタｊの値が横ライン照明の本数Ｌと一致しないとき、カウンタｊをｊ←ｊ＋１に増加させ、再び、赤の縦ライン照明と赤の横ライン照明に関するカメラ応答データＶｉとＨｊを取り出す。カウンタｊの値が横ライン照明の本数Ｌときは、ｊをｊ＝１に初期化し、カウンタｉをｉ←ｉ＋１に増加させ、再び、赤の縦ライン照明と赤の横ライン照明に関するカメラ応答データＶｉとＨｊを取り出す。以上の処理を全ての赤の縦ライン照明に関する応答データと全ての赤の横ライン照明に関する応答データについて、同様の処理を繰り返す。縦ライン照明に関する応答データはＬ個、横ライン照明に関する応答データはＬ個あるので、ＬＴ行列Ｃの行方向に各列ベクトルＣ１、Ｃ２、Ｃ３、・・・、Ｃｘ（ｘ＝Ｌ２）を配置して赤照明に関するＬＴ行列Ｔｒｒ、Ｔｇｒ、Ｔｂｒが構築される。
【０１８６】
緑、青についても同様に、緑照明に関するカメラ応答データから、上記の処理に従ってＬＴ行列Ｔｒｇ、Ｔｇｇ、Ｔｂｇが構築され、青照明に関するカメラ応答データから、上記の処理に従ってＬＴ行列Ｔｒｂ、Ｔｇｂ、Ｔｂｂが構築される。
【０１８７】
ＬＴデータ洗練化部３０は、以下に説明するように、洗練化用の赤色照明画像、緑色照明画像、青色照明画像を順番に使って、第１の実施の形態と同様に、ＬＴデータを洗練化する。
【０１８８】
ＬＴデータ洗練化部３０では、処理を開始すると、Ｎ×Ｎ画素サイズの洗練化用の赤色照明画像を生成し、プロジェクタ１２から洗練化用の赤色照明画像を投影する。洗練化用の赤色照明画像の各ＲＧＢ値は（２５５，０，０）とする。次に、被写体からの観測画像をカメラ１０で取得する。一方、洗練化用の赤色照明画像に相当する照明ベクトルＰを設定する。照明ベクトルＰはＮ２次元のベクトルとし、全ての要素を１と与える。
【０１８９】
続いて、ＬＴデータ獲得部２８で得たＬＴ行列Ｔｒｒ、Ｔｇｒ、Ｔｂｒと照明ベクトルＰとの積を算出する。行列演算：Ｃｒ＝ＴｒｒＰ、Ｃｇ＝ＴｇｒＰ、Ｃｂ＝ＴｂｒＰにより、赤色照明のＲの応答値に該当するベクトルＣｒ、赤色照明のＧの応答値に該当するベクトルＣｇ、赤色照明のＢの応答値に該当するベクトルＣｂをそれぞれ得る。各ベクトルから２次元行列へ再配置して、洗練化用の赤色照明に対する被写体のテスト画像を得る。
【０１９０】
カメラ画像とテスト画像間において、誤差値を算出する。例えば、誤差値としてはＲＧＢ値それぞれの二乗誤差平均あるいは絶対誤差平均とする。誤差値が所定の値未満であれば、赤色照明に関する本処理の全てを終了する。誤差値が所定の値以上であれば、次に、カメラ画像とテスト画像の対象画素（ｉ，ｊ），（１≦ｉ，ｊ≦Ｍ）の画素値を抽出し、その画素値差分を算出する。カメラ画像から抽出した１画素のＲＧＢ値が（Ｃｒ（ｉ，ｊ），Ｃｇ（ｉ，ｊ），Ｃｂ（ｉ，ｊ））とし、テスト画像から抽出した１画素のＲＧＢ値が（Ｃ′′ｒ（ｉ，ｊ），Ｃ′′ｇ（ｉ，ｊ），Ｃ′′ｂ（ｉ，ｊ））とするとき、画素値差分（ΔＲ（ｉ，ｊ），ΔＧ（ｉ，ｊ），ΔＢ（ｉ，ｊ））は、上記（１）〜（３）式により算出する。
【０１９１】
ここで、カメラ画像の座標（ｉ，ｊ）に相当するＬＴ行列の行の要素をチェックする。上記図３の行列と同様に、ＬＴ行列Ｔｒｒ、Ｔｇｒ、Ｔｂｒの各行はカメラ画像の座標（ｉ，ｊ）に相当するカメラ応答となっている。ＬＴ行列Ｔｒｒの座標（ｉ，ｊ）に相当する行において非零の個数がＫｒ、ＬＴ行列Ｔｇｒの座標（ｉ，ｊ）に相当する行において非零の個数がＫｇ、ＬＴ行列Ｔｂｒの座標（ｉ，ｊ）に相当する行において非零の個数がＫｂとする。各ＬＴ行列のカメラ座標（ｉ，ｊ）に相当する行の非零要素のみを、それぞれ上記（４）〜（６）式により更新する。
【０１９２】
ただし、γｒ、γｇ、γｂはフィードバックにおけるゲインパラメータであり、誤差値が収束するように、例えば、γｒ＝γｇ＝γｂ＝０．１と与える。
【０１９３】
上記の処理を全てのカメラ画素について行い、再び、Ｔｒｒ、Ｔｇｒ、Ｔｂｒと照明ベクトルＰとの行列演算によりテスト画像を生成し、カメラ画像とテスト画像間の誤差値が許容値以下になるまで上記の処理を繰り返す。なお、洗練化用の赤色照明の投影とカメラ画像の観測は１回行うだけでよい。
【０１９４】
上記の処理によってＬＴ行列の要素が洗練化されることにより、赤色照明の実画像とテストが一致し、ＬＴ行列Ｔｒｒ、Ｔｇｒ、Ｔｂｒにおいて十分な明るさを有するＬＴデータを保有することができる。
【０１９５】
同様に、Ｎ×Ｎ画素サイズの洗練化用の緑色照明画像を生成し、プロジェクタ１２から洗練化用の緑色照明画像を投影する。洗練化用の緑色照明画像の各ＲＧＢ値は（０，２５５，０）とする。次に、被写体からの観測画像をカメラ１０で取得する。一方、洗練化用の緑色照明画像に相当する照明ベクトルＰを設定する。照明ベクトルＰはＮ２次元のベクトルとし、全ての要素を１と与える。続いて、ＬＴデータ獲得部２８で得たＬＴ行列Ｔｒｇ、Ｔｇｇ、Ｔｂｇと照明ベクトルＰとの積を算出する。行列演算：Ｃｒ＝ＴｒｇＰ、Ｃｇ＝ＴｇｇＰ、Ｃｂ＝ＴｂｇＰにより、緑色照明のＲの応答値に該当するベクトルＣｒ、緑色照明のＧの応答値に該当するベクトルＣｇ、緑色照明のＢの応答値に該当するベクトルＣｂをそれぞれ得る。各ベクトルから２次元行列へ再配置して、洗練化用の緑色照明に対する被写体のテスト画像を得る。この処理以降は、上記赤照明と同様の処理により、カメラ画像とテスト画像から算出した誤差値が許容値未満になるまでＬＴ行列の非零更新を繰り返し、ＬＴ行列Ｔｒｇ、Ｔｇｇ、Ｔｂｇを洗練化する。
【０１９６】
さらに、Ｎ×Ｎ画素サイズの洗練化用の青色照明画像を生成し、プロジェクタ１２から洗練化用の青色照明画像を投影する。洗練化用の青色照明画像の各ＲＧＢ値は（０，０，２５５）とする。次に、被写体からの観測画像をカメラ１０で取得する。一方、洗練化用の青色照明画像に相当する照明ベクトルＰを設定する。照明ベクトルＰはＮ２次元のベクトルとし、全ての要素を１と与える。続いて、ＬＴデータ獲得部２８で得たＬＴ行列Ｔｒｂ、Ｔｇｂ、Ｔｂｂと照明ベクトルＰとの積を算出する。行列演算：Ｃｒ＝ＴｒｂＰ、Ｃｇ＝ＴｇｂＰ、Ｃｂ＝ＴｂｂＰにより、青色照明のＲの応答値に該当するベクトルＣｒ、青色照明のＧの応答値に該当するベクトルＣｇ、青色照明のＢの応答値に該当するベクトルＣｂをそれぞれ得る。各ベクトルから２次元行列へ再配置して、洗練化用の青色照明に対する被写体のテスト画像を得る。この処理以降は、上記赤照明と同様の処理により、カメラ画像とテスト画像から算出した誤差値が許容値未満になるまでＬＴ行列の非零要素の更新を繰り返し、ＬＴ行列Ｔｒｂ、Ｔｇｂ、Ｔｂｂを洗練化する。
【０１９７】
リライティング生成部３２は、ＬＴデータ洗練化部３０で更新されたＬＴ行列に基づいて、第１の実施の形態と同様に、リライティング画像を生成する。リライティング生成部３２では、処理を開始すると、まず所定の照明画像を設定する。動画の場合は１フレームずつ与えることとする。便宜上、所定の照明画像の画素サイズをＮ×Ｎとする。所定の照明画像の全ての画素のＲＧＢ値からＲだけの画像、Ｇの画像、Ｂの画像に分離する。各画像の２次元画素の配置を１列に並べ替えてベクトル化して、Ｒの照明画像のベクトルＰｒ、Ｇの照明画像のベクトルＰｇ、Ｂの照明画像のベクトルＰｂを生成する。次に、赤色照明に関するＬＴ行列Ｔｒｒ、Ｔｇｒ、Ｔｂｒと、緑色照明に関するＬＴ行列Ｔｒｇ、Ｔｇｇ、Ｔｂｇ、並びに、青色照明に関するＬＴ行列Ｔｒｂ、Ｔｇｂ、Ｔｂｂを用意する。リライティングの計算において、以下（１５）式の行列演算により、各列ベクトル（Ｃｒ，Ｃｇ，Ｃｂ）を算出する。
【０１９８】
【数１６】
2017183903.tif 000018
【０１９９】
所定の照明画像をベクトルしたときの逆の処理で各ベクトルから２次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。これをディスプレイ等の画像出力装置に出力すれば与えた照明の下での観測画像を仮想的に得ることができる。動画の場合、次のフレームを照明画像として設定し、上記の処理を繰り返す。本処理は行列とベクトルの線形演算に基づいているため、リアルタイム処理あるいは動画のフレームに適している。以上述べたように、本実施の形態ではプロジェクタ・カメラシステムのカラー混合を考慮したＬＴ行列を使って、よりリアルなリライティング画像を提供することができる。
【０２００】
上記説明した第４の実施の形態に係る空間映像再現装置の作用については、第１の実施の形態における各作用を赤色照明、青色照明、緑色照明の順番でそれぞれ実行すればよい。
【０２０１】
なお、第４の実施の形態に係る空間映像再現装置の他の構成及び作用については、第１の実施の形態と同様であるため詳細な説明を省略する。
【０２０２】
以上説明したように、本発明の第４の実施の形態に係る空間映像再現装置によれば、赤色照明、青色照明、緑色照明の各々について、縦ライン、又は横ラインの照明画像を生成し、出力された照明画像をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、生成された複数の照明画像と、観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、ＬＴ行列を獲得し、獲得したＬＴ行列と、プロジェクタ１２から洗練化用の照明画像を出力させたときにカメラ１０により撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新することにより、リライティングを行うためのＬＴ行列を洗練化できる。
【０２０３】
＜本発明の第５の実施の形態に係る空間映像再現装置の構成＞
【０２０４】
次に、本発明の第５の実施の形態に係る空間映像再現装置について説明する。なお、第４の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０２０５】
第５の実施の形態は、第４の実施の形態のＬＴ行列Ｔαβ、α，β∈｛ｒ、ｇ、ｂ｝を獲得するための各部の処理において、ＬＴデータ獲得部２８は、第２の実施の形態で説明したＬＴデータ獲得部２８の処理に従う構成としたものである。なお、第５の実施の形態の他の構成は第４の実施の形態と同様であるため説明を省略する。
【０２０６】
＜本発明の第６の実施の形態に係る空間映像再現装置の構成＞
【０２０７】
次に、本発明の第６の実施の形態に係る空間映像再現装置について説明する。なお、第４の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０２０８】
第６の実施の形態は、第４の実施の形態のＬＴ行列Ｔαβ、α，β∈｛ｒ、ｇ、ｂ｝を獲得するための各部の処理において、カメラ応答検出部２２は、第３の実施の形態で説明したカメラ応答検出部２２の処理に従う構成としたものである。なお、第６の実施の形態の他の構成は第４の実施の形態と同様であるため説明を省略する。
【０２０９】
＜本発明の第７の実施の形態に係る空間映像再現装置の構成＞
【０２１０】
次に、本発明の第７の実施の形態に係る空間映像再現装置の構成について説明する。第７の実施の形態においては、Ｎ台のプロジェクタと１台のカメラのマルチプロジェクタ・システムを用いている点が第１の実施の形態と異なる。なお、第１の実施の形態に係る空間映像再現装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第１の実施の形態と同様の処理を行う。
【０２１１】
図１１に示すように、本発明の第７の実施の形態に係る空間映像再現装置３００は、カメラ１０と、Ｎ台のプロジェクタ１２Ａ〜プロジェクタ１２Ｎと、演算部３２０と、出力部９０と、を含んで構成されている。
【０２１２】
カメラ１０は、切替部３４２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの何れか１つのプロジェクタにより投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答検出部３２２に出力する。
【０２１３】
演算部３２０は、切替部３４２と、カメラ応答検出部３２２と、ＬＴデータ獲得部３２８と、ＬＴデータ洗練化部３３０と、リライティング生成部３３２と、画像ＤＢ３４０とを含んで構成されている。
【０２１４】
切替部３４２は、カメラ応答検出部３２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つに切り替える。なお、第７の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ１２Ａが選択されているものとする。また、第７の実施の形態においては、切替部３４２は、スイッチや分岐装置などを利用する。また、第７の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、カメラ応答検出部３２２の切り替え指示により処理対象となるプロジェクタを切り替える。
【０２１５】
カメラ応答検出部３２２は、照明画像毎に、切替部３４２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから照明を照射させ、照射された照明をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。また、照明画像の数が、投影する全ての照明画像の数の値２Ｌである照明画像を送出した時点で繰り返し処理を停止し、切替部３４２に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部３４２において処理対象となるプロジェクタが切り替えられた後に、照明画像の数を１に初期化し、上記処理を繰り返す。
【０２１６】
また、カメラ応答検出部３２２は、切替部３４２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影する照明画面を生成し、カメラ１０において観測した、切替部３４２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影された照明光に対するカメラ応答を検出し、照明画像と対応づけて当該照明光についての応答データを作成し、画像ＤＢ３４０に記憶する。
【０２１７】
画像ＤＢ３４０には、プロジェクタ毎の、照明画像に対応した応答データの各々と、縦ライン照明画像の各々又は横ライン照明画像の各々とが記憶されている。
【０２１８】
ＬＴデータ獲得部３２８は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、ＬＴベクトルを推定することにより、ＬＴ行列を獲得する。
【０２１９】
ＬＴデータ洗練化部３３０は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、テスト画像を用いて、各画素について、洗練化用の照明画像を出力させたときの観測画像とテスト画像との画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新する。
【０２２０】
リライティング生成部３３２は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、リライティング画像を生成する。
【０２２１】
また、第７の実施の形態では、カメラ応答検出部３２２、ＬＴデータ獲得部３２８、ＬＴデータ洗練化部３３０、リライティング生成部３３２の各部において、第１の実施の形態と同様の処理を行う場合を例に説明したが、これに限定されるものではなく、白色照明を使ってＬＴ行列を獲得する場合には、第２、第３の実施の形態と同様に、カメラ応答検出部３２２、ＬＴデータ獲得部３２８、ＬＴデータ洗練化部３３０、リライティング生成部３３２の各部を処理すればよく、赤色照明、緑色照明、青色照明を使ってＬＴ行列を獲得する場合には、第４〜第６の実施の形態と同様に、カメラ応答検出部３２２、ＬＴデータ獲得部３２８、ＬＴデータ洗練化部３３０、リライティング生成部３３２の各部を処理するようにすればよい。
【０２２２】
なお、第７の実施の形態に係る空間映像再現装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２２３】
以上説明したように、本発明の第７の実施の形態に係る空間映像再現装置によれば、プロジェクタ毎に、縦ライン、又は横ラインの照明画像を生成し、出力された照明画像をカメラ１０により撮影するように制御し、照明画像毎にカメラ１０により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、生成された複数の照明画像と、観測画像毎に検出された照明画像毎のカメラ応答の画素の各々とに基づいて、ＬＴ行列を獲得し、獲得したＬＴ行列と、プロジェクタ１２Ａ〜１２Ｎのいずれか一つのプロジェクタから洗練化用の照明画像を出力させたときにカメラ１０により撮影した観測画像とに基づいて、ＬＴ行列と、洗練化用の照明画像から得られる照明ベクトルとの積を算出することにより生成したテスト画像を用いて、各画素について、画素値差分を算出し、算出した画素値差分に基づいて、ＬＴ行列の画素に対応する行の各要素のうち、非零の要素を更新することにより、リライティングを行うためのＬＴ行列を洗練化できる。
【０２２４】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０２２５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【０２２６】
また、本発明の実施の形態に係る手法によれば、被写体の３次元構造やその表面の反射特性を必要とせずに、プロジェクタ・カメラシステムを使って得たＬＴに基づき、任意照明を与えたときの被写体のリライティングを可能とする。リライティングはＬＴ行列と照明ベクトルの積から実現できるためリアルタイム処理に適しており、映画製作あるいは番組制作などのコンピュータグラフィックス、さらには実環境とのリアルな仮想現実感（virtual reality）や拡張現実感（augmented reality）を生み出すことができる。
【符号の説明】
【０２２７】
１０   カメラ
１２、１２Ａ〜Ｎ     プロジェクタ
２０、３２０  演算部
２２   カメラ応答検出部
２８   画像データベース
２８、３２８  ＬＴデータ獲得部
３０、３３０  データ洗練化部
３２、３３２  リライティング生成部
４０、３４０  画像データベース
９０   出力部
１００、３００       空間映像再現装置
３４２ 切替部
【図１】
2017183903.tif 000019
【図２】
2017183903.tif 000020
【図３】
2017183903.tif 000021
【図４】
2017183903.tif 000022
【図５】
2017183903.tif 000023
【図６】
2017183903.tif 000024
【図７】
2017183903.tif 000025
【図８】
2017183903.tif 000026
【図９】
2017183903.tif 000027
【図１０】
2017183903.tif 000028
【図１１】
2017183903.tif 000029
【図１２】
2017183903.tif 000030