(57)【要約】【課題】簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる。【解決手段】ＬＴ行列推定部２８が、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を推定する。逆ＬＴ行列推定部３０が、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたＬＴ行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列の逆行列である、逆ＬＴ行列を推定する。輝度補償処理部３２が、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ＬＴ行列に基づいて投影画像の各画素を補償する。【選択図】図１
2018050252.tif 000002
【特許請求の範囲】
【請求項１】
プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成する照明画像生成部と、
前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、
前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、
前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するＬＴ行列推定部と、
前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々と、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列の逆行列である、逆ライト・トランスポート行列を推定する逆ＬＴ行列推定部と、
入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列に基づいて前記投影画像の各画素を補償する輝度補償処理部と、
を含む空間投影装置。
【請求項２】
前記逆ＬＴ行列推定部は、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列を抽出し、前記カメラ応答観測部により観測された前記カメラ応答に前記相互反射行列を使った反復計算を作用させてセンシング行列を生成し、前記照明画像生成部により生成されたフレーム番号毎の照明画像を表す照明ベクトルｖ’ｊを各々生成し、前記照明ベクトルｖ’ｊの各々と前記センシング行列とに基づいて、前記逆ライト・トランスポート行列の各列を表す逆ライト・トランスポートベクトルｕ’jを推定する請求項１に記載の空間投影装置。
【請求項３】
前記逆ＬＴ行列推定部は、更に、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から、グローバル反射に対応するカメラ応答を再現するための変換行列を算出し、
前記センシング行列を生成する際に、前記カメラ応答観測部により観測された前記カメラ応答に前記変換行列を使った反復計算を作用させて前記センシング行列を生成し、
前記輝度補償処理部は、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列と、前記変換行列とに基づいて前記投影画像の各画素を補償する請求項２に記載の空間投影装置。
【請求項４】
照明画像生成部が、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成するステップと、
同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、
カメラ応答観測部が、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、
ＬＴ行列推定部が、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するステップと、
逆ＬＴ行列推定部が、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々と、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列の逆行列である、逆ライト・トランスポート行列を推定するステップと、
輝度補償処理部が、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列に基づいて前記投影画像の各画素を補償するステップと、
を含む空間投影方法。
【請求項５】
前記逆ＬＴ行列推定部が推定するステップは、前記ＬＴ行列推定部が推定するステップにより得た前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列を抽出し、前記カメラ応答観測部により観測された前記カメラ応答に前記相互反射行列を使った反復計算を作用させてセンシング行列を生成し、前記照明画像生成部により生成されたフレーム番号毎の照明画像を表す照明ベクトルｖ’ｊを各々生成し、前記照明ベクトルｖ’ｊの各々と前記センシング行列とに基づいて、前記逆ライト・トランスポート行列の各列を表す逆ライト・トランスポートベクトルｕ’jを推定する請求項４に記載の空間投影方法。
【請求項６】
前記逆ＬＴ行列推定部が推定するステップは、更に、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から、グローバル反射に対応するカメラ応答を再現するための変換行列を算出し、
前記センシング行列を生成する際に、前記カメラ応答観測部により観測された前記カメラ応答に前記変換行列を使った反復計算を作用させて前記センシング行列を生成し、
前記輝度補償処理部が補償するステップは、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列と、前記変換行列とに基づいて前記投影画像の各画素を補償する請求項５に記載の空間投影方法。
【請求項７】
コンピュータを、請求項１〜請求項３のいずれか１項に記載の空間投影装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、空間投影装置、方法、及びプログラムに係り、特に、投影画像の輝度を補償するための空間投影装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であれば個人スペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物（以下、被写体と称する）へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング（projection mapping）として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
【０００３】
プロジェクション・マッピングでは、所定画像を正確に投影するために、目視確認と手動操作によって１画素単位での位置合わせを行う場合がある。これに対して、プロジェクタ投影の状態をカメラによって把握し、所定画像を指定された位置に投影するために、プロジェクタ・カメラシステム（projector-camera system）が利用されている。プロジェクタ・カメラシステムは、プロジェクタとカメラが連動して、カメラからのフィードバック画像に応じて、プロジェクタから投影出力する画像を処理する。通常、平面なスクリーンにプロジェクション・マッピングする場合には、キャリブレーション作業において平面射影変換（plane-homography）を求める。平面射影変換を使うとプロジェクタ画面上の点から幾何的対応点としてカメラ画面上の点を算出することができるため、その対応関係に基づいて所定画像をスクリーン面の決められた場所に投影することができる。もし、空間構造に凹凸があったり曲がった構造である場合には、その空間構造を事前に把握しなければならない。例えば、非特許文献１では、レーザ計測を利用して、被写体の空間構造または凹凸形状を得る。その形状に合わせて所定画像を幾何的に変形させて、あたかも平面スクリーンへの投影に見えるよう指定個所に所定画像を投影する。あるいは、構造光（structured light）と呼ばれる幾何パターンをプロジェクタから投影し、カメラで観測した歪み画像から空間構造の奥行きの凹凸形状を計測する方式も利用できる。このように、従来技術は、レーザ計測またはプロジェクタ・カメラシステムを利用して外界または被写体の空間構造を把握し、奥行きの凹凸形状に合わせて指定個所へ所定画像を投影する。
【０００４】
これに対して、外界の空間構造を計測せずに，ライト・トランスポート（light transport）を利用した映像生成方法が非特許文献２、非特許文献３で公開されている。ライト・トランスポートとは、全てのプロジェクタ画素と全てのカメラ画素間の幾何的・光学的対応関係を表現したデータであり、図１３に示すようにプロジェクタ画素の１点１点を順番に点灯させ、その画素からの照明光が光学的反射や屈折によって結び付くカメラ画素を検出することによって得られる。プロジェクタ画面の画素数がｐ×ｑ画素でカメラ画面の画素数がｕ×ｖ画素であるとき、各点光源のカメラ応答の画像Ｃｊを列ベクトル化して並べた行列Ｔは、ライト・トランスポート行列（light transport matrix）と呼ばれ、ｕｖ×ｐｑ画素の巨大、かつ、スパースな行列となる（行列要素の大半が値０であり、僅かな要素のみが非零となる）。非特許文献２では、ライト・トランスポート行列の転置ＴＴを利用して、プロジェクタからの視点から観測されるであろう仮想画像（dual photography）を人工的に生成する方法が公知である。さらに、非特許文献３では、ＬＴ行列の逆行列Ｔ−１を使ったプロジェクタ・カメラシステムの輝度補償技術が公知である。
【０００５】
一般的に、レーザあるいは構造光を使った３次元形状計測では一次反射光のみを受光することを前提としている。このため、被写体の構造によって発生する光学的な多重反射や屈折を扱うことができない。これに対して、ライト・トランスポートは一次反射光と多重反射や屈折光を区別することなく扱うことできるため、全ての照明画像の画素と全てのカメラ応答の画素間の対応付けに基づいた高精度なプロジェクション・マッピングを可能とする。なお、以降では、ライト・トランスポートをＬＴ、ライト・トランスポート行列をＬＴ行列と略する。
【０００６】
本発明に関連するレーザ計測を伴うプロジェクション・マッピング技術は非特許文献１に公開されており、プロジェクタからの照明パターンを利用してＬＴを計測する技術は非特許文献２に公開されており、ＬＴ行列の逆行列Ｔ−１（以降、逆ＬＴ行列と称する）を使ったプロジェクタ・カメラシステムの輝度補償技術は非特許文献３に公開されている。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】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.
【非特許文献３】M. Chandraker, J. Bai, T-T. Ng, and R. Ramamoorthi: "On the Duality of Forward and Inverse Light Transport", IEEE Transactions on Pattern Analysis and Machine Intelligence,vol.33, no.10, pp.2122-2128, 2011.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
事前にレーザ計測あるいは構造光を使って、プロジェクション・マッピングの対象となる被写体の形状を計測しないとき、その被写体は“未知な被写体”と呼ばれる。所定画像をその未知な被写体の表面に歪みがなく平面投影と同様に投影するには、カメラで観測したときの各画素の画素値が所定画像の画素値となるように、ＬＴに従ってプロジェクタ画素の画素値を補償する必要がある。ＬＴは被写体を経由したプロジェクタ画素とカメラ画素間の直接反射、間接反射、環境全体から放射されるグローバル反射を記述するため、これらを考慮することにより高精度で高画質な輝度補償が期待できる。
【０００９】
一般的に、ＬＴのデータを効率的に扱うにはＬＴ行列の処理が必要であり、図１３に示すように、プロジェクタ画素あるいはカメラ画素が増加するとき、ＬＴ行列はｕｖ×ｐｑ画素の巨大かつスパースな行列となる。ＬＴ行列の逆行列は輝度補償に応用することが考えられるが、そのような巨大でスパースな行列の逆行列を計算することは、膨大なメモリが必要となるだけではなく計算コストも非常に高く、市販の計算機では実効的な計算が困難である。非特許文献３によれば、被写体からの直接反射に関するＬＴから間接反射を含めたグローバル反射への変換行列を表す相互反射行列（ｉｎｔｅｒ−ｒｅｆｒｅｃｔｉｏｎ  ｍａｔｒｉｘ）Ｓを使い、その逆行列Ｓ−１を級数展開することで逆ＬＴ行列Ｔ−１を効率的に計算する方法が公開されている。ただし、非特許文献３では、直接反射に関するＬＴはプロジェクタ画素とカメラ画素間において１対１の対応関係を前提とするため、ビームスプリッタとハーフミラー等の装置を使ってプロジェクタ・カメラシステムにおいてプロジェクタの光軸とカメラの光軸を精度良く一致するように事前に校正しなければならない。
【００１０】
本発明は、上記問題点を解決するために成されたものであり、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる空間投影装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明に係る空間投影装置は、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成する照明画像生成部と、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するＬＴ行列推定部と、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々と、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列の逆行列である、逆ライト・トランスポート行列を推定する逆ＬＴ行列推定部と、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列に基づいて前記投影画像の各画素を補償する輝度補償処理部と、を含んで構成されている。
【００１２】
また、第１の発明に係る空間投影装置において、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列を抽出し、前記カメラ応答観測部により観測された前記カメラ応答に前記相互反射行列を使った反復計算を作用させてセンシング行列を生成し、前記照明画像生成部により生成されたフレーム番号毎の照明画像を表す照明ベクトルｖ’ｊを各々生成し、前記照明ベクトルｖ’ｊの各々と前記センシング行列とに基づいて、前記逆ライト・トランスポート行列の各列を表す逆ライト・トランスポートベクトルｕ’jを推定するようにしてもよい。
【００１３】
また、第１の発明に係る空間投影装置において、前記逆ＬＴ行列推定部は、更に、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から、グローバル反射に対応するカメラ応答を再現するための変換行列を算出し、前記センシング行列を生成する際に、前記カメラ応答観測部により観測された前記カメラ応答に前記変換行列を使った反復計算を作用させて前記センシング行列を生成し、前記輝度補償処理部は、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列と、前記変換行列とに基づいて前記投影画像の各画素を補償するようにしてもよい。
【００１４】
第２の発明に係る空間投影方法は、照明画像生成部が、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成するステップと、同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、カメラ応答観測部が、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、ＬＴ行列推定部が、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するステップと、逆ＬＴ行列推定部が、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により観測されたフレーム番号毎の前記カメラ応答の画素の各々と、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列の逆行列である、逆ライト・トランスポート行列を推定するステップと、輝度補償処理部が、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列に基づいて前記投影画像の各画素を補償するステップと、を含んで実行することを特徴とする。
【００１５】
また、第２の発明に係る空間投影方法において、前記逆ＬＴ行列推定部が推定するステップは、前記ＬＴ行列推定部が推定するステップにより得た前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列を抽出し、前記カメラ応答観測部により観測された前記カメラ応答に前記相互反射行列を使った反復計算を作用させてセンシング行列を生成し、前記照明画像生成部により生成されたフレーム番号毎の照明画像を表す照明ベクトルｖ’ｊを各々生成し、前記照明ベクトルｖ’ｊの各々と前記センシング行列とに基づいて、前記逆ライト・トランスポート行列の各列を表す逆ライト・トランスポートベクトルｕ’jを推定するようにしてもよい。
【００１６】
また、第２の発明に係る空間投影方法において、前記逆ＬＴ行列推定部が推定するステップは、更に、前記ＬＴ行列推定部によって推定された前記ライト・トランスポート行列に基づいて、直接反射に対応するカメラ応答から、グローバル反射に対応するカメラ応答を再現するための変換行列を算出し、前記センシング行列を生成する際に、前記カメラ応答観測部により観測された前記カメラ応答に前記変換行列を使った反復計算を作用させて前記センシング行列を生成し、前記輝度補償処理部が補償するステップは、前記逆ＬＴ行列推定部によって推定された前記逆ライト・トランスポート行列と、前記変換行列とに基づいて前記投影画像の各画素を補償するようにしてもよい。
【００１７】
また、第３の発明に係るプログラムは、コンピュータを、第１の発明に係る空間投影装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明の空間投影装置、方法、及びプログラムによれば、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定し、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたライト・トランスポート行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列の逆行列である、逆ライト・トランスポート行列を推定し、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ライト・トランスポート行列に基づいて投影画像の各画素を補償することにより、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる、という効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１〜第３の実施の形態に係る空間投影装置の構成を示すブロック図である。
【図２】カメラ応答データを保存するデータ形式の一例を示す図である。
【図３】本発明の実施の形態に係る空間投影装置における同期制御処理ルーチンを示すフローチャートである。
【図４】本発明の実施の形態に係る空間投影装置における照明画像生成処理ルーチンを示すフローチャートである。
【図５】本発明の実施の形態に係る空間投影装置におけるカメラ応答観測処理ルーチンを示すフローチャートである。
【図６】本発明の実施の形態に係る空間投影装置におけるＬＴ行列推定処理ルーチンを示すフローチャートである。
【図７】本発明の第１、第２、及び第４の実施の形態に係る空間投影装置における逆ＬＴ行列推定処理ルーチンを示すフローチャートである。
【図８】本発明の実施の形態に係る空間投影装置におけるセンシング行列Ψの生成処理ルーチンを示すフローチャートである。
【図９】本発明の第１、第２、及び第４の実施の形態に係る空間投影装置における輝度補償処理ルーチンを示すフローチャートである。
【図１０】本発明の第３の実施の形態に係る空間投影装置における逆ＬＴ行列推定処理ルーチンを示すフローチャートである。
【図１１】本発明の第３の実施の形態に係る空間投影装置における輝度補償処理ルーチンを示すフローチャートである。
【図１２】本発明の第４の実施の形態に係る空間投影装置の構成を示すブロック図である。
【図１３】プロジェクタ・カメラシステムと被写体間のライト・トランスポートを得る一例を示す概念図である。
【発明を実施するための形態】
【００２０】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２１】
＜本発明の実施の形態に係る概要＞
【００２２】
プロジェクタとカメラが被写体の前に配置されたとき事前の校正を必要とせず、プロジェクタ画素とカメラ画素間のＬＴ行列からその逆ＬＴ行列を推定し、その逆ＬＴ行列を使ってプロジェクタ画像の輝度を自動的に補償して、幾何的かつ光学的に補正された映像を被写体上に正確に投影することが、本発明の実施の形態が解決しようとする課題である。
【００２３】
＜本発明の第１の実施の形態に係る空間投影装置の構成＞
【００２４】
まず、本発明の第１の実施の形態に係る空間投影装置の構成について説明する。図１に示すように、空間投影装置１００は、カメラ１０と、プロジェクタ１２と、演算部２０と、を含んで構成されている。なお、第１の実施の形態においては、１台のプロジェクタと１台のカメラのプロジェクタ・カメラシステムを用いる。
【００２５】
カメラ１０は、プロジェクタ１２により投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部２６に出力する。なお、第１の実施の形態においては、プロジェクタ１２から出力する単色照明として、例えば、白色照明を用いる。
【００２６】
プロジェクタ１２は、単色照明を用いて、照明画像生成部２４による出力指示に従って被写体を投影する。
【００２７】
演算部２０は、同期制御部２２と、照明画像生成部２４と、カメラ応答観測部２６と、ＬＴ行列推定部２８と、逆ＬＴ行列推定部３０と、輝度補償処理部３２と、映像ＤＢ４０とを含んで構成されている。
【００２８】
同期制御部２２は、フレーム番号毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラ１０により撮影するように制御する。具体的には、まず、プロジェクタ１２から投影される特定の照明画像を表すフレーム番号ｆをｆ＝１に初期化する。次に、カメラ応答観測部２６からの応答信号を待ち、当該応答信号を受信すると、照明画像生成部２４と、カメラ応答観測部２６とへフレーム番号ｆを送出する。フレーム番号ｆを送出することにより、同じフレーム番号においてプロジェクタ１２からの照明と、カメラ１０の観測との同期をとる。次に、フレーム番号ｆをｆ＝ｆ＋１とカウントアップし、再び、カメラ応答観測部２６からの応答信号を待つ。以降、プロジェクタ１２からの照明とカメラ１０における観測とをフレーム番号ｆで同期をとりながら、上述の処理と同様にフレーム番号ｆを照明画像生成部２４と、カメラ応答観測部２６とへの送出を繰り返す。そして、フレーム番号ｆの値が、照明画像生成部２４において投影する全ての照明画像の数の値Ｋとなるフレーム番号ｆを照明画像生成部２４とカメラ応答観測部２６とに送出した時点で、同期制御部２２は、上述の繰り返し処理を停止する。
【００２９】
照明画像生成部２４は、以下に説明するように、プロジェクタ１２から投影するプロジェクタ画面における照明画像を生成する。
【００３０】
まず、照明画像生成部２４において生成する照明画像の概要を説明する。照明画像として、圧縮センシング（compressed sensing）で使われているベルヌーイバイナリパターン（Bernoulli binary patterns）を使う。ベルヌーイバイナリパターンとは、プロジェクタから投影する画像サイズを設定したとき、各画素について正規化された乱数によってランダムな数値を算出し、その値が１／２未満のときは黒画素をそれ以上のときは白画素を与える。生成される照明画像は、大まかに半分の確率で白画素と黒画素がランダムに配置するモノクロ濃淡画像である．
【００３１】
照明画像生成部２４は、具体的には、まず、プロジェクタ投影の対象範囲としてＮ×Ｎ（＝1,000×1,000）画素と照明画像の枚数Ｋ（＝1000)を設定する。説明の便宜上、プロジェクタ画素領域をＮ×Ｎ画素とするが、縦横の画素数は任意に設定できる。同期制御部２２からフレーム番号ｆを受信すると、正規化した乱数により全ての画素にランダムな値を算出し、値が１／２未満のときは黒画素に割り当て、それ以上のときは白画素に割り当てる。これによりランダムな白黒のバイナリパターンの照明画像を生成する。照明画像が生成されると、その画像をプロジェクタから出力する。同期制御部２２からのフレーム番号を受信するたびに、時系列に相関性の低いベルヌーイバイナリパターン画像を次々と生成し、被写体にその照明画像を照射する。照明画像を生成するたびに、フレーム番号付きで映像ＤＢ４０に保存する。全ての照明画像を被写体に投影し終わるまで繰り返す。以上の処理によって、Ｋ種類のベルヌーイバイナリパターンの照明画像を生成してフレーム番号に従って順番にプロジェクタ１２から投影する。
【００３２】
カメラ応答観測部２６は、以下に説明するように、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。
【００３３】
カメラ応答観測部２６は、具体的には、まず、観測範囲を設定する。第１の実施の形態においては、カメラ１０において観測された画像全体を処理対象とせず、当該設定により指定された範囲のカメラ応答を検出する。第１の実施の形態においては、例えば、画像内でのＭ×Ｍ（＝１，０００×１，０００）画素の範囲を指定する。次に、カメラ応答を検出するための閾値を設定する。当該閾値は、カメラ応答を検出する範囲の画素の各々について、当該閾値以上の輝度値である画素をカメラ応答として検出する。次に、同期制御部２２からフレーム番号ｆを受信すると、カメラ１０が画像を取得することができる状態かのチェックを行い、撮影可能状態ならばカメラ１０から観測画像を取得する。次に、映像ＤＢ４０に記憶されているプロジェクタ１２により照明画像を投影していない状態の観測画像である背景画像を取得し、観測画像と背景画像との背景差分を処理する。背景画像とは、照明パターンが照明されていない状態、あるいは黒を投影したときの観測画像である。この背景差分において先の閾値として例えば１０階調に設定しておき、この値より大きい画素をカメラの応答画素として検出する。続いて、Ｍ×Ｍ画素の範囲において検出した画素の２次元座標とそのカメラ応答の輝度値を所定のデータ形式で保存する。通常、画像はｒｇｂの画素値が配列化されたデータであるが、モノクロ濃淡の照明画像に対するカメラ応答のｒｇｂ値はほぼ同じ応答であると考えて、本実施の形態ではｇの画素値だけを保存する。
【００３４】
図２はカメラ応答データを保存するデータ形式の例であり、各カメラ画素の座標が書き込まれ、その右側にＫ種類のベルヌーイバイナリパターンの照明に対して閾値以上のカメラ応答値が書き込まれる。閾値以下のときは値０が書き込まれる。すなわち、横方向は各カメラ画素の時系列のカメラ応答値が並ぶ。カメラ応答データを書き込んだ後、次のカメラ観測に備えて同期制御部２２へ応答信号を送信する。照明画像生成部２４からＫ種類のベルヌーイバイナリパターンの照明がプロジェクタ１２から出力されるため、カメラ応答観測部２６の処理はＫ種類のカメラ画像からカメラ応答データを保存する。全てのカメラ応答データを保存した時点で終了する。
【００３５】
ＬＴ行列推定部２８は、照明画像生成部２４により生成されたフレーム番号毎の照明画像と、カメラ応答観測部２６により観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、カメラ応答の画素の各々について、カメラ応答の画素に対する照明画像の画素の対応関係を表すＬＴベクトルの各々を求めることにより、照明画像の画素及びカメラ応答の画素間の対応関係を表すＬＴ行列を推定する。
【００３６】
本実施の形態では、ＬＴ行列推定部２８は、圧縮センシング（compressed sensing）を利用して、照明画像生成部２４で使ったベルヌーイバイナリパターンの照明画像と、カメラ応答観測部２６で得たカメラ応答データからＬＴ行列の全ての要素を推定する。
【００３７】
ＬＴ行列推定部２８の具体的な処理内容の前に、ＬＴ行列によるプロジェクタ照明とカメラ観測の入出力対応と，そのＬＴ行列を推定するための圧縮センシングの原理を説明する。未知な被写体への映像投影において、Ｎ２次元のプロジェクタ照明ベクトルＰ（Ｎ×Ｎ画素のプロジェクタ１２から投影する照明画像をベクトル化したデータ）が与えられるとプロジェクタ・カメラシステムはＭ２次元のカメラ観測ベクトルをＣとする（Ｍ×Ｍ画素のカメラ観測画像をベクトル化したデータ）と仮定する。一般的に、未校正なプロジェクタ・カメラシステムを使って任意の被写体（被写体は、その３次元形状と反射特性が不明であるとする）へ映像を投影するとき、照明画像とカメラ応答の入出力対応は、Ｍ２×Ｎ２のＬＴ行列Ｔを用いると、以下（１）式で表される。
【００３８】
【数１】
2018050252.tif 000003
・・・（１）
【００３９】
ＬＴ行列Ｔは、カメラ間の幾何的・光学的対応関係として、プロジェクタの画素から放射された光が被写体に反射したときの直接反射及び間接反射を記述する。Ｆは環境照明に対応するカメラ応答であり、カメラ応答観測部２６で用いた背景画像に相当する。なお、暗室環境でプロジェクタ・カメラシステムを用いる場合には、プロジェクタからのブラックオフセット光に反応したカメラ応答が主成分である。
【００４０】
上記（１）式は任意のプロジェクタ照明とカメラ観測のペアについて成り立ち、Ｋ種類のプロジェクタ照明｛Ｐ１，Ｐ２，・・・，ＰＫ｝を用いて、そのカメラ応答｛Ｃ１，Ｃ２，・・・，ＣＫ｝を観測するとき、以下（２）式を満たす。
【００４１】
【数２】
2018050252.tif 000004
・・・（２）
【００４２】
プロジェクタ・カメラシステムを用いてＬＴを獲得することは、ユーザによって設計されたプロジェクタ照明を用いて、そのカメラ応答に基づいて行列Ｔを推定することを意味する。ここで、事前に黒画像を投影したカメラ応答画像から背景画像を得て、各カメラ応答はその背景差分によりベクトルＦが取り除かれているとする。
【００４３】
本実施の形態では、右辺左側の行列における｛Ｐ１，Ｐ２，・・・，ＰＫ｝はＫ種類のベルヌーイバイナリパターン画像の２次元画素の並びを列に再配置したベクトルである。番号１から番号Ｋはフレーム番号に同期して付けられている。一方、（２）式の左辺の行列｛Ｃ１，Ｃ２，・・・，ＣＫ｝はカメラ応答画像の２次元画素の並びを列に再配置したベクトルである。番号１から番号Ｋはフレーム番号に同期して付けられている。
【００４４】
（２）式の転置をとると、以下（３）式を得る。
【００４５】
【数３】
2018050252.tif 000005
・・・（３）
【００４６】
ただし、便宜上、
【００４７】
【数４】
2018050252.tif 000006
・・・（４）
【００４８】
と置換した（以降では、行列Φをセンシング行列と呼ぶ）。上記（３）式の左辺のＫ×Ｍ２の行列の各列をＫ次元ベクトルの各々からなる
【００４９】
【数５】
2018050252.tif 000007
【００５０】
で表し、上記（３）式の右辺の行列ＴＴの各列をＮ２次元ベクトルの各々からなる
【００５１】
【数６】
2018050252.tif 000008
【００５２】
で表すことにより、上記（３）式は、
【００５３】
【数７】
2018050252.tif 000009
・・・（５）
【００５４】
と書き直すことができる。（５）式から、第ｊ列のＫ次元ベクトルｖｊは、
【００５５】
【数８】
2018050252.tif 000010
・・・（６）
【００５６】
となる。ＬＴ行列推定部２８では、ｖｊを応答ベクトル、ｕｊをＬＴベクトルと呼ぶことにする。上記（６）式は、Ｎ２次元のＬＴベクトルｕｊを入力とし、Ｋ×Ｎ２の行列の線形変換ΦによってＫ次元の応答ベクトルｖｊを出力すると解釈することができる。
【００５７】
上記（６）式では、応答ベクトルｖｊは、ｊ番目のカメラ応答の画素におけるＫ種類の照明画像に対する時系列の応答を表し、未知のＬＴベクトルｕｊをＫ種類の照明画像から構成される行列Φに変換することで得られる。一般的に、ＬＴ行列Ｔはスパースな性質をもつため、その行列を構成するＬＴベクトルｕｊもスパースである。ＬＴデータ獲得部２８は、（６）式に基づいてＬＴベクトルｕｊを求めるために圧縮センシングを利用する。
【００５８】
圧縮センシングとは、ｌ１ノルム最小化の原理に基づいており、（６）式において、
【００５９】
【数９】
2018050252.tif 000011
・・・（７）
【００６０】
を満たす解ｕｊを求める信号処理手法である。（７）式において、
【００６１】
【数１０】
2018050252.tif 000012
【００６２】
はｌ１ノルムを表し、
【００６３】
【数１１】
2018050252.tif 000013
【００６４】
はｌ２ノルムを表す。圧縮センシングには様々なアルゴリズムが公知であるが、ここでは、実装が容易であり、理論的に収束性の良い、ＲＯＭＰ（Regularized Orthogonal Matching Pursuit）アルゴリズムを利用して解ｕｊを求める。圧縮センシングにより、個々のｕｊ，ｊ＝１，２，・・・，Ｍ２について、Ｍ２セットのＬＴベクトル
【００６５】
【数１２】
2018050252.tif 000014
【００６６】
が得られると、Ｍ２×Ｎ２のＬＴ行列Ｔは、
【００６７】
【数１３】
2018050252.tif 000015
・・・（８）
【００６８】
の配列により求めることができる。
【００６９】
以上の原理を踏まえて、ＬＴ行列推定部２８の処理内容を説明する。ＬＴ行列推定部２８が処理を開始すると、まず、照明画像生成部２４で生成したベルヌーイバイナリパターンの照明画像に基づいて、（４）式で定義したセンシング行列Φを設定する。センシング行列Φの行方向は時系列のベルヌーイバイナリパターンの照明画像をベクトルに再配置して並べたものである。照明画像生成部２４で用意したベルヌーイバイナリパターンの照明画像（Ｎ×Ｎ画素のＫ種類のランダムパターンの画像）を時系列に読み出し、それをＮ２次元の行ベクトルに配列し、上から順番にそのベクトルを並べることにより、Ｋ×Ｎ２のセンシング行列Φを得る。
【００７０】
圧縮センシングを動作させる前に、（７）式におけるパラメータεを設定する。カメラ応答には雑音が付加されているため、例えば、ε＝０．０１と与える。次に、カメラ応答観測部２６において保存された図２に示すデータ形式において、ｊ番目の行のテーブル値を読み取り、Ｋ次元の応答ベクトルｖｊを読み込む。
【００７１】
続いて、ＬＴ行列推定部２８は、Ｋ次元の応答ベクトルｖｊに基づいて、ＲＯＭＰアルゴリズムを利用して、（７）式を満たすＬＴベクトルｕｊを復元する。ＬＴ行列の構築では、事前にＭ２×Ｎ２の行列バッファＴを用意しておく。ＲＯＭＰアルゴリズムによって求められたＮ２次元のＬＴベクトルｕｊを、（８）式に従い代入する。なお、通常のメモリサイズで用意するのではなく、スパース表現でメモリを確保し、ＬＴベクトルの非零要素のみを代入する。以上の処理を、図２のデータ形式の上から順番にＫ次元の応答ベクトルｖｊを読み出して、ＲＯＭＰアルゴリズムによりＬＴベクトルｕｊを求め、ＬＴ行列へ順番に代入する。ＬＴ行列推定部２８は、これらのＬＴ行列を映像ＤＢ４０に格納する。
【００７２】
逆ＬＴ行列推定部３０は、以下に説明するように、照明画像生成部２４により生成されたフレーム番号毎の照明画像Ｐと、カメラ応答観測部２６により観測されたフレーム番号毎のカメラ応答Ｃの画素の各々と、ＬＴ行列推定部２８によって推定されたＬＴ行列Ｔとに基づいて、被写体からの光学反射に対応するＬＴ行列の逆行列である、逆ＬＴ行列Ｔ−１を推定する。
【００７３】
逆ＬＴ行列推定部３０の処理を説明する前に、非特許文献３で記述されている逆ＬＴ理論と輝度補償について原理と応用例を説明する。便宜上、プロジェクタ画面の画素数とカメラ画面の画素数はＭ×Ｍ画素とする。一般のカメラ応答Ｃにおいて、被写体からの直接反射に対応するカメラ応答をＭ２次元のベクトルＣｄと表し、間接反射を含むグローバル反射に対応するカメラ応答をＭ２次元ベクトルＣｇと表す。コンピュータグラフィックスで使われているレンダリング方程式に従えば、ＣｄとＣｇの関係は、
【００７４】
【数１４】
2018050252.tif 000016
・・・（９）
2018050252.tif 000017
・・・（１０）
【００７５】
になり、ＩはＭ２×Ｍ２の単位行列とする。（１０）式で定義した行列Ｓは相互反射行列（ｉｎｔｅｒ−ｒｅｆｌｅｃｔｉｏｎ  ｍａｔｒｉｘ）と呼ばれる。変換行列ＲはＭ２×Ｍ２の正方行列になり、Ｃｇ＝ＲＣｄを満たす線形オペレータである。
【００７６】
直接反射に対応するカメラ応答は直接反射に関するプロジェクタ画素とカメラ画素のＬＴを表すので、そのＬＴ行列をＤとすると、Ｃｄ＝ＤＰになる。これにより、
【００７７】
【数１５】
2018050252.tif 000018
・・・（１１）
【００７８】
の関係が得られるため、（１１）式を使って逆ＬＴ行列Ｔ−１は、
【００７９】
【数１６】
2018050252.tif 000019
・・・（１２）
【００８０】
で与えられる。ここで、相互反射行列の逆行列Ｓ−１は、変換行列Ｒを使ったノイマン逆級数展開（Ｎｅｕｍａｎｎ  ｉｎｖｅｒｓｅ  ｓｅｒｉｅｓ）で表される。逆ＬＴ行列を使って輝度補償されたプロジェクタ画像をＭ２次元ベクトルＰとすると、以下（１３）式により算出することができる。
【００８１】
【数１７】
2018050252.tif 000020
・・・（１３）
【００８２】
ただし、逆行列Ｓ−１をｎ次の級数展開で近似する。（１３）式には、直接反射に関するＬＴ行列の逆行列Ｄ−１が含まれるが、非特許文献３などの従来技術ではプロジェクタ・カメラシステムにおいてプロジェクタの光軸とカメラの光軸を精度良く一致させるため、原理的にＬＴ行列Ｄは対角行列となる。よって、その逆行列Ｄ−１は対角要素の逆数を計算するだけで求められる。
【００８３】
以上が、逆ＬＴ理論と輝度補償の応用例である。逆ＬＴ行列を直接的に計算することは計算コストとメモリの制限により実効が困難であるが、（１３）式に従えば逆行列Ｄ−１と変換行列Ｒを使った級数展開によって算出できる。
【００８４】
以上の原理に基づいて、逆ＬＴ行列推定部３０は、ユーザが被写体に対してプロジェクタとカメラを任意に配置した場合（プロジェクタの光軸とカメラの光軸が一致させない場合）、その未校正なプロジェクタ・カメラシステムにおいて上記の原理に基づき、逆ＬＴ行列Ｄ−１を算出するものである。以下では、プロジェクタ画面の画素数をＮ×Ｎ画素、カメラ画面の画素数をＭ×Ｍ画素とする。ＬＴ行列推定部２８で得たＭ２×Ｎ２のＬＴ行列Ｔから、その逆行列Ｔ−１は、
【００８５】
【数１８】
2018050252.tif 000021
・・・（１４）
【００８６】
となり、行列Ｄ−１は直接反射に関するＬＴ行列Ｄの逆行列を表し、その行列サイズはＮ２×Ｍ２である。逆行列Ｓ−１は（１３）式で与えられているように、逆行列Ｓ−１がｎ次の級数展開近似を使って以下（１５）式により算出される。
【００８７】
【数１９】
2018050252.tif 000022
・・・（１５）
【００８８】
従来技術と異なり、プロジェクタ・カメラシステムが校正されていないために、逆行列Ｄ−１を直接的に計算できない。これは、行列Ｄは対角行列ではなく、スパースかつ巨大な行列であるためである。
【００８９】
以上の原理と応用例を踏まえて、逆ＬＴ行列推定部２８の処理内容を説明する。
【００９０】
逆ＬＴ行列推定部３０は、ＬＴ行列推定部２８によって推定されたＬＴ行列Ｔに基づいて、直接反射に対応するカメラ応答から、グローバル反射に対応するカメラ応答を再現するための変換行列Ｒを算出し、センシング行列Ψを生成する際に、カメラ応答観測部２６により観測されたカメラ応答Ｃに変換行列Ｒを使った反復計算を作用させてセンシング行列Ψを生成する。
【００９１】
また、逆ＬＴ行列推定部３０は、ＬＴ行列推定部２８によって推定されたＬＴ行列Ｔに基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列Ｓを抽出し、カメラ応答観測部２６により観測されたカメラ応答Ｃに相互反射行列Ｓを使った反復計算を作用させてセンシング行列Ψを生成し、照明画像生成部２４により生成されたフレーム番号毎の照明画像Ｐを表す照明ベクトルｖ’ｊを各々生成し、照明ベクトルｖ’ｊの各々とセンシング行列Ψとに基づいて、逆ＬＴ行列の各列を表すＬＴベクトルｕ’jを推定する。
【００９２】
具体的には、以下のように、ＬＴ行列推定部２８で得たＬＴ行列Ｔに基づいて、プロジェクタ輝度を補償するための逆ＬＴ行列Ｄ−１を算出する処理を行う。逆ＬＴ行列推定部２８は処理を開始すると、ＬＴ行列Ｔの各列について最大応答の行列要素を抽出する。例えば、第ｊ列においてｉ番目の行に最大値ｇｉｊを検出したとする。このとき、Ｍ２次元ベクトルｄｊを用意して、その第ｉ番目の要素だけをｇｉｊとし、その他の要素を全て０と与える。もし、最大値が検出できないときは、Ｍ２次元の零ベクトルを与える。これをＬＴ行列Ｔの全ての列から最大値を検出し、生成した列ベクトルｄｊを、以下（１６）式に従って画素順に並べることにより、Ｍ２×Ｎ２の行列Ｄを求める。
【００９３】
【数２０】
2018050252.tif 000023
・・・（１６）
【００９４】
ここで、次の処理に備えて、得られた行列Ｄの行ベクトル
【００９５】
【数２１】
2018050252.tif 000024
【００９６】
を順番に取り出し、行列Ｄを
【００９７】
【数２２】
2018050252.tif 000025
・・・（１７）
【００９８】
と確保しておく。
【００９９】
次に、行列Ｄと変換行列Ｒの関係を使って、ＬＴ行列Ｔから変換行列Ｒを、以下（１８）式により算出する。
【０１００】
【数２３】
2018050252.tif 000026
・・・（１８）
【０１０１】
ただし、λｊ,ｊ∈｛１,２,・・・,Ｍ２｝は、ｅｊ≠０のとき、
【０１０２】
【数２４】
2018050252.tif 000027
・・・（１９）
【０１０３】
であり、ｅｊ＝０のときはλｊ＝０により与える係数である。変換行列Ｒは輝度補償処理部３２で使うため、映像ＤＢ４０に保存する。
【０１０４】
続いて、ＬＴ行列推定部２８で使ったＫ種類のプロジェクタ照明｛Ｐ１,Ｐ２,・・・,ＰＫ｝と、そのカメラ応答｛Ｃ１,Ｃ２,・・・,ＣＫ｝を取り出す。これらのデータの間には、（１４）式の逆ＬＴ行列により、
【０１０５】
【数２５】
2018050252.tif 000028
・・・（２０）
【０１０６】
の関係が成り立つので、圧縮センシングを使って逆ＬＴ行列Ｄ−１を推定する。以降の説明で必要な式として、（２０）式の両辺の転置をとると、以下（２１）式となる。
【０１０７】
【数２６】
2018050252.tif 000029
・・・（２１）
【０１０８】
ただし、行列Ψはセンシング行列であり、
【０１０９】
【数２７】
2018050252.tif 000030
・・・（２２）
【０１１０】
である。
【０１１１】
ここで、逆ＬＴ行列推定部３０において、センシング行列Ψを求める処理について説明する。逆ＬＴ行列推定部３０が、センシング行列Ψを求める処理を開始すると、カメラ応答データＣｉ,ｉ＝１,２,・・・,Ｋを順番に映像ＤＢ４０から読み出す。初期値としてｑ０＝Ｃｉと与えて、
【０１１２】
【数２８】
2018050252.tif 000031
・・・（２３）
【０１１３】
の行列計算をｔ＝ｎになるまで反復する。この行列計算の反復は、
【０１１４】
【数２９】
2018050252.tif 000032
・・・（２４）
【０１１５】
を計算することに等価であり、Ｓ−１Ｃｉ,ｉ＝１,２,・・・,Ｋを順番に計算することができる。（２４）式を使って（２２）式の行列の中身を計算する場合、行列のべき乗を計算するためメモリの負担になる。これに対して、（２３）式を使うと、行列とベクトルの積を反復するだけであるためメモリの負担にならない。これを全てのカメラ応答データＣｉについて処理をして、センシング行列Ψを得る。
【０１１６】
以上が、逆ＬＴ行列推定部３０が、センシング行列Ψを求める処理である。
【０１１７】
次に、逆ＬＴ行列推定部３０が、逆ＬＴ行列Ｄ−１を算出する処理を説明する。
【０１１８】
まず、（２１）式の左辺のＫ×Ｎ２の行列の各列をＫ次元ベクトル
【０１１９】
【数３０】
2018050252.tif 000033
【０１２０】
で表し、（２１）式の右辺の行列（Ｄ−１）Ｔの各列をＭ２次元ベクトル
【０１２１】
【数３１】
2018050252.tif 000034
【０１２２】
で表すことにより、（２１）式は、
【０１２３】
【数３２】
2018050252.tif 000035
・・・（２５）
【０１２４】
と書き直すことができる。（２５）式から、第ｊ列のＫ次元ベクトルｖ′ｊは、
【０１２５】
【数３３】
2018050252.tif 000036
・・・（２６）
【０１２６】
となる。ベクトルｖ′ｊはＫ種類のプロジェクタ照明画像の第ｊ番目の時系列照明パターンを表すので、それらの照明画像を映像ＤＢ４０から読み出し、第ｊ番目の画素の照明パターンを取り出してベクトルｖ′ｊを生成する。（２６）式を解くため、
【０１２７】
【数３４】
2018050252.tif 000037
・・・（２７）
【０１２８】
を満たす逆ＬＴベクトルｕ′ｊをＲＯＭＰアルゴリズムにより求める。（２７）式を使って逆ＬＴベクトルｕ′ｊの復元をｊ＝１,２,・・・,Ｎ２の順番で処理する。その順番で得た逆ＬＴベクトルｕ′ｊを
【０１２９】
【数３５】
2018050252.tif 000038
・・・（２８）
【０１３０】
のように配置して、Ｎ２×Ｍ２サイズの直接反射に対応する逆ＬＴ行列Ｄ−１を算出する。その逆ＬＴ行列Ｄ−１を映像ＤＢ４０に保存して、逆ＬＴ行列推定部３０の処理を終了する。
【０１３１】
輝度補償処理部３２は、以下に説明するように、入力された所定のカラー画像を得るためにプロジェクタ１２から出力する照明画像である投影画像（カラー画像）に対して、逆ＬＴ行列推定部３０によって推定された逆ＬＴ行列Ｄ−１と、変換行列Ｒとに基づいて投影画像の各画素を補償する。
【０１３２】
輝度補償処理部３２の処理内容は、逆ＬＴ行列推定部３０で得た変換行列Ｒと、逆行列Ｄ−１とを使ってプロジェクタ画像の輝度を補償するものである。投影するカラー画像をＭ×Ｍ画素とし、そのｒｇｂ成分をそれぞれＭ２次元ベクトルＣｒ、Ｃｇ、Ｃｂで与える。これにより画素の並びベクトル化する。次に、各成分について、
【０１３３】
【数３６】
2018050252.tif 000039
・・・（２９）
【０１３４】
の計算により、輝度補償したプロジェクタの輝度ベクトルＰαを得る。ここで、Ｆαはブラックオフセット光（黒の画像をプロジェクタから投影したときに放出される微弱な投影光）を含む環境光の成分を表す。各画素のＦαは、カメラ応答観測部２６で使った背景画像の各画素値が相当する。
【０１３５】
輝度補償処理部３２は、まず、処理を開始すると、変換行列Ｒと逆ＬＴ行列Ｄ−１を読み出す。続いて、所定のカラー画像を読み出し、その画像をＭ２次元ベクトルＣｒ、Ｃｇ、Ｃｂに変換する。
【０１３６】
次に、初期値をＰ０＝Ｃ,｛ｒ,ｇ,ｂ｝と与え、
【０１３７】
【数３７】
2018050252.tif 000040
・・・（３０）
【０１３８】
の行列計算をｔ＝ｎになるまで反復する。続いて、
【０１３９】
【数３８】
2018050252.tif 000041
・・・（３１）
【０１４０】
の計算によりプロジェクタ輝度ベクトルＰαを算出する。ｒｇｂ成分のプロジェクタ輝度ベクトルが算出された後、Ｎ×Ｎ画素の画像へ変換する。これをプロジェクタ１２から出力すれば、３次元構造の形状に応じて輝度が補償された画像が投影される。所定のカラー画像が複数枚のときは各画像を映像ＤＢ４０から読み出して、その輝度を補償する。また、所定映像のときはフレームレートに従ったフレーム画像に変換してから１枚ずつ輝度を補償する。
【０１４１】
以上により、本発明の実施の形態では、被写体から計測したＬＴ行列からその逆行列を計算して、その逆行列を使って輝度補償画像を生成することにより、平面スクリーンへの画像投影と同様に被写体に幾何歪みが無い高品質な画像を投影できる。
【０１４２】
＜本発明の第１の実施の形態に係る空間投影装置の作用＞
【０１４３】
次に、本発明の第１の実施の形態に係る空間投影装置１００の作用について説明する。まず、同期制御部２２による同期制御処理ルーチンについて説明する。
【０１４４】
図３に示す、ステップＳ１００では、フレーム番号ｆの値を１に初期化する。
【０１４５】
次に、ステップＳ１０２では、カメラ応答観測部２６から応答信号を受信したか否かを判定する。応答信号を受信した場合には、ステップＳ１０４へ移行し、応答信号を受信しない場合には、ステップＳ１０２の処理を繰り返す。
【０１４６】
次に、ステップＳ１０４では、ステップＳ１００又はステップＳ１０８において取得したフレーム番号ｆを照明画像生成部２４及びカメラ応答観測部２６に送出する。
【０１４７】
次に、ステップＳ１０６では、フレーム番号ｆの値がＫの値か否かを判定する。フレーム番号ｆの値がＫである場合には、同期制御処理ルーチンを終了し、フレーム番号ｆの値がＫよりも小さい場合には、ステップＳ１０８へ移行する。
【０１４８】
ステップＳ１０８では、フレーム番号ｆの値に１を加えた値をフレーム番号ｆの値として設定し、ステップＳ１０２へ移行して、ステップＳ１０２〜ステップＳ１０６の処理を繰り返す。
【０１４９】
次に、図４に示す、照明画像生成部２４による照明画像生成処理ルーチンについて説明する。
【０１５０】
まず、ステップＳ２００では、照明画像を投影する照明対象領域をＮ×Ｎ画素と設定する。
【０１５１】
次に、ステップＳ２０２では、ｆ＝１を設定する。
【０１５２】
次に、ステップＳ２０４では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ２０６へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ２０４の処理を繰り返す。
【０１５３】
ステップＳ２０６では、ベルヌーイバイナリパターンにより生成した照明を照射するための照明画像を設定すると共に、映像ＤＢ４０に記憶する。
【０１５４】
ステップＳ２０８では、ステップＳ２０６で設定した照明画像をプロジェクタ１２から出力する。
【０１５５】
次に、ステップＳ２１０では、ステップＳ２０４において取得したフレーム番号ｆの値がＫであるか否かを判定する。フレーム番号ｆの値がＫである場合には、照明画像生成処理ルーチンを終了し、フレーム番号ｆの値がＫより小さい場合には、ステップＳ２１２へ移行してｆ＝ｆ＋１とし、ステップＳ２０４〜ステップＳ２０８の処理を繰り返す。
【０１５６】
次に、図５に示す、カメラ応答観測部２６によるカメラ応答観測処理ルーチンについて説明する。
【０１５７】
まず、ステップＳ３００では、カメラ１０において観測する範囲をＭ×Ｍ画素の範囲に設定する。
【０１５８】
次に、ステップＳ３０２では、カメラ応答に対する所定の閾値を設定する。
【０１５９】
次に、ステップＳ３０４では、映像ＤＢ４０に記憶されている背景画像を読み込む。
【０１６０】
次に、ステップＳ３０６では、同期制御部２２へ応答信号を送信する。
【０１６１】
次に、ステップＳ３０８では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ３１０へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ３０８の処理を繰り返す。
【０１６２】
次に、ステップＳ３１０では、カメラ１０の状態をチェックする。
【０１６３】
次に、ステップＳ３１２では、ステップＳ３１０において取得したカメラ１０の状態が、撮影可能状態であるか否かを判定する。カメラ１０が撮影可能状態である場合には、ステップＳ３１４へ移行し、カメラ１０が撮影可能状態でない場合には、ステップＳ３１０へ移行する。
【０１６４】
次に、ステップＳ３１４では、カメラ１０から観測画像を取得する。
【０１６５】
次に、ステップＳ３１６では、ステップＳ３０４において取得した背景画像と、ステップＳ３１４において取得した観測画像との背景差分を取得する。
【０１６６】
次に、ステップＳ３１８では、ステップＳ３０２において取得した閾値と、ステップＳ３１６において取得した背景差分とから、カメラ応答の画素の各々を検出する。
【０１６７】
次に、ステップＳ３２０では、ステップＳ３１８において取得したカメラ応答の画素の各々の輝度値を応答データとして、ステップＳ３０８において取得したフレーム番号ｆと対応づけて映像ＤＢ４０に記憶する。
【０１６８】
次に、ステップＳ３２２では、ステップＳ３０８において取得したフレーム番号ｆの値がＫであるか否かを判定する。フレーム番号ｆの値がＫである場合には、カメラ応答観測処理ルーチンを終了し、フレーム番号ｆの値がＫよりも小さい場合には、ステップＳ３０６へ移行し、ステップＳ３０６〜ステップＳ３２２の処理を繰り返す。
【０１６９】
次に、図６に示す、ＬＴ行列推定部２８によるＬＴ行列推定処理ルーチンについて説明する。
【０１７０】
まず、ステップＳ４００では、フレーム番号毎に生成された照明画像に基づいて、上記（４）式に従ってセンシング行列Φを算出する。
【０１７１】
次に、ステップＳ４０２では、上記（７）式におけるパラメータεを、ε＝０．０１と設定する。
【０１７２】
次に、ステップＳ４０４では、カウンタｉをｉ＝１に初期化する。
【０１７３】
次に、ステップＳ４０６では、カウンタｉの値に基づいて、カメラ応答のｉ番目の画素を指定する。
【０１７４】
次に、ステップＳ４０８では、ステップＳ４０６で指定されたカメラ応答のｉ番目の画素について、映像ＤＢ４０に格納された各カメラ応答データを読み出して、応答ベクトルｖｉを生成する。
【０１７５】
次に、ステップＳ４１０では、カメラ応答のｉ番目の画素について、ステップＳ４００で算出したセンシング行列Φと、ステップＳ４０８で生成した応答ベクトルｖｉとに基づいて、上記（７）式を満たす、ＬＴベクトルｕｉを復元する。
【０１７６】
次に、ステップＳ４１２では、カメラ応答のｉ番目の画素について、予め用意されたＭ２×Ｎ２の行列バッファＴに対し、上記（８）式に従って、ｊ番目の行にＬＴベクトルのｕｊを代入し、ＬＴ行列を構築し、映像ＤＢ４０に保存する。
【０１７７】
次に、ステップＳ４１４では、ｉがＭ２であるかを判定し、Ｍ２であれば処理を終了し、Ｍ２でなければステップＳ４１６へ移行する。
【０１７８】
次に、ステップＳ４１６では、カウンタｉをｉ＝ｉ＋１とカウントアップして、ステップＳ４０６へ移行する。
【０１７９】
次に、図７に示す、逆ＬＴ行列推定部３０による逆ＬＴ行列推定処理ルーチンについて説明する。
【０１８０】
ステップＳ５００では、映像ＤＢ４０からＬＴ行列Ｔを読み出す。
【０１８１】
ステップＳ５０２では、ステップＳ５００で読み出したＬＴ行列Ｔの全ての列から最大値を検出し、生成した列ベクトルｄｊを、上記（１６）式に従って、画素順に並べることにより、Ｍ２×Ｎ２の行列Ｄを抽出し、上記（１７）式のように行ベクトルごとに確保しておく。
【０１８２】
ステップＳ５０４では、ステップＳ５０２で求めた行列Ｄと、ＬＴ行列Ｔとに基づいて、変換行列Ｒを、上記（１８）式により算出し、映像ＤＢ４０に保存する。
【０１８３】
ステップＳ５０６では、映像ＤＢ４０から、ＬＴ行列Ｔの推定で用いたＫ種類のプロジェクタ照明｛Ｐ１,Ｐ２,・・・,ＰＫ｝と、そのカメラ応答｛Ｃ１,Ｃ２,・・・,ＣＫ｝とを取り出す。
【０１８４】
ステップＳ５０８では、ＬＴ行列推定処理ルーチンで推定されたＬＴ行列Ｔに基づいて、直接反射に対応するカメラ応答から間接反射を含むグローバル反射に対応するカメラ応答へ変換するための相互反射行列Ｓを抽出し、カメラ応答観測部２６により観測されたカメラ応答Ｃに相互反射行列Ｓを使った反復計算を作用させてセンシング行列Ψを生成する。処理の詳細は後述する。
【０１８５】
ステップＳ５１０では、カウンタｊ＝１に初期化する。
【０１８６】
ステップＳ５１２では、カウンタｊについて、ベクトルｖ′ｊはＫ種類のプロジェクタ照明画像の第ｊ番目の時系列照明パターンを表すので、それらの照明画像を映像ＤＢ４０から読み出し、第ｊ番目の画素の照明パターンを取り出してベクトルｖ′ｊを生成する。
【０１８７】
ステップＳ５１４では、ステップＳ５０８で生成したセンシング行列Ψと、ステップＳ５１２で生成したベクトルｖ′ｊとに基づいて、上記（２７）式を満たす逆ＬＴベクトルｕ′ｊをＲＯＭＰアルゴリズムにより求める。
【０１８８】
ステップＳ５１６では、ステップＳ５１４でカウンタｊについて得た逆ＬＴベクトルｕ′ｊを、上記（２８）式に従って逆ＬＴ行列Ｄ−１に配置する。
【０１８９】
ステップＳ５１８では、カウンタｊ＝Ｎ２か否かを判定し、カウンタｊ＝Ｎ２であれば、ステップＳ５２０へ移行し、カウンタｊがＮ２未満であればステップＳ５２０へ移行する。
【０１９０】
ステップＳ５２０では、カウンタｊをｊ＝ｊ＋１とカウントアップして、ステップＳ５１２へ移行する。
【０１９１】
ステップＳ５２２では、ステップＳ５１６により求められた、直接反射に対応する逆ＬＴ行列Ｄ−１を映像ＤＢ４０に保存して処理を終了する。
【０１９２】
次に、上記ステップＳ５０８におけるセンシング行列Ψの生成処理ルーチンについて図８を用いて説明する。カメラ応答データＣｉ,ｉ＝１,２,・・・,Ｋの各々について図８の生成処理ルーチンが実行される。
【０１９３】
ステップＳ６００では、カメラ応答データＣｉを映像ＤＢ４０から読み出し、初期値としてｑ０＝Ｃｉと与える。
【０１９４】
ステップＳ６０２では、変換行列Ｒを用いて、上記（２３）式に従って、ｑｔについて、行列計算を行う。
【０１９５】
ステップＳ６０４では、ｔ＝ｎか否かを判定し、ｔ＝ｎであれば処理を終了し、ｔがｎ未満であれば、ステップＳ６０２に戻り、ｔ＝ｔ＋１として反復を繰り返す。
【０１９６】
カメラ応答データＣｉ,ｉ＝１,２,・・・,Ｋの各々について上記の処理が行われることにより得られた行列計算の結果を用いて、センシング行列Ψが生成される。
【０１９７】
次に、図９に示す、輝度補償処理部３２による輝度補償処理ルーチンについて説明する。
【０１９８】
ステップＳ７００では、映像ＤＢ４０から、変換行列Ｒと、逆行列Ｄ−１とを読み出す。
【０１９９】
ステップＳ７０２では、映像ＤＢ４０から、所定のカラー画像を読み出し、初期値をＰ０＝Ｃα,α∈｛ｒ,ｇ,ｂ｝と与える。
【０２００】
ステップＳ７０４では、変換行列Ｒを用いて、Ｐ´ｔについて、上記（３０）式に従って行列計算をｔ＝ｎになるまで反復する。
【０２０１】
ステップＳ７０６では、上記（３１）式の計算によりプロジェクタ輝度ベクトルＰα,α∈｛ｒ,ｇ,ｂ｝を算出する。
【０２０２】
ステップＳ７０８では、全ての所定のカラー画像について処理を終了したかを判定し、全ての所定のカラー画像について処理を終了していれば輝度補償処理ルーチンを終了し、処理が終了していなければ、ステップＳ７０２に戻って次の所定のカラー画像を読み出して処理を繰り返す。
【０２０３】
以上説明したように、本発明の第１の実施の形態に係る空間投影装置によれば、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を推定し、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたＬＴ行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列の逆行列である、逆ＬＴ行列を推定し、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ＬＴ行列と、変換行列とに基づいて投影画像の各画素を補償することにより、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる。
【０２０４】
＜本発明の第２の実施の形態に係る空間投影装置の構成＞
【０２０５】
次に、本発明の第２の実施の形態に係る空間投影装置の構成について説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０２０６】
第２の実施の形態では、ｒｇｂカラーの照明パターンを使ってLT行列を算出し、その逆行列を使って輝度補償画像を生成する。第２の実施の形態の基本構成は第１の実施の形態と同様であり、各処理部においてｒｇｂカラー別に処理する点が異なる。
【０２０７】
上記図１に示すように、第２の実施の形態では、空間投影装置１００は、第１の実施の形態と同様に、カメラ１０と、プロジェクタ１２と、演算部２０とを含んで構成されている。
【０２０８】
第２の実施の形態の同期制御部２２は、ｒｇｂの各成分の各々について、フレーム番号毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラ１０により撮影するように制御する。
【０２０９】
照明画像生成部２４は、ｒｇｂの各成分の各々について、赤、緑、青の順番に、プロジェクタ１２から投影するプロジェクタ画面における照明画像を生成する。赤照明の場合には、第１の実施の形態と同様に、各画素について正規化された乱数によってランダムな数値を算出し、その値が１／２未満のときは黒画素に割り当て、それ以上のときは赤画素に割り当てる。緑照明の場合についても同様に、各画素について正規化された乱数によってランダムな数値を算出し、その値が１／２未満のときは黒画素に割り当て、それ以上のときは緑画素に割り当てる。青照明の場合についても同様に、各画素について正規化された乱数によってランダムな数値を算出し、その値が１／２未満のときは黒画素に割り当て、それ以上のときは青画素に割り当てる。以上の処理によって、３Ｋ種類のベルヌーイバイナリパターンの照明画像をフレーム番号に従ってプロジェクタ１２から投影する。
【０２１０】
カメラ応答観測部２６は、ｒｇｂの各成分の各々について、赤、緑、青の順番に、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。赤照明に対するカメラ応答画像を観測してそのｒ値をカメラ応答データとして保存する。同様に、緑照明に対するカメラ応答画像を観測してそのｇ値をカメラ応答データとして保存し、青照明に対するカメラ応答画像を観測してそのｂ値をカメラ応答データとして保存する。照明画像生成部２４から３Ｋ種類のベルヌーイバイナリパターンの照明がプロジェクタから出力されるため，カメラ応答観測部２６では３Ｋ種類のカメラ画像からカメラ応答データを保存する。全てのカメラ応答データを保存した時点で、カメラ応答観測部２６の処理を終了する。
【０２１１】
ＬＴ行列推定部２８は、ｒｇｂの各成分の各々について、赤、緑、青の順番に、照明画像生成部２４により生成されたフレーム番号毎の照明画像と、カメラ応答観測部２６により観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、カメラ応答の画素の各々について、カメラ応答の画素に対する照明画像の画素の対応関係を表すＬＴベクトルの各々を求めることにより、照明画像の画素及びカメラ応答の画素間の対応関係を表すＬＴ行列を推定する。ＬＴ行列推定部２８では、ＬＴ行列ＴをＴαとした、第１の実施の形態と同様の処理により、３つのＬＴ行列Ｔｒ、Ｔｇ、及びＴｂを推定する。
【０２１２】
逆ＬＴ行列推定部３０は、ｒｇｂの各成分の各々について、赤、緑、青の順番に、照明画像生成部２４により生成されたフレーム番号毎の照明画像と、カメラ応答観測部２６により観測されたフレーム番号毎のカメラ応答の画素の各々と、ＬＴ行列推定部２８によって推定されたＬＴ行列Ｔとに基づいて、被写体からの光学反射に対応するＬＴ行列の逆行列である、逆ＬＴ行列Ｔ−１を推定する。逆ＬＴ行列推定部３０では、照明画像ＰをＰα、カメラ応答ＣをＣα、ＬＴ行列ＴをＴα、行列ＤをＤα、変換行列ＲをＲα、逆ＬＴ行列Ｄ−１をＤ−１α,α∈｛ｒ,ｇ,ｂ｝とした、第１の実施の形態と同様の処理により、３つの逆ＬＴ行列Ｄ−１ｒ，Ｄ−１ｇ，Ｄ−１ｂを算出する。
【０２１３】
輝度補償処理部３２は、ｒｇｂの各成分の各々について、赤、緑、青の順番に、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像（カラー画像）に対して、逆ＬＴ行列推定部３０によって推定された逆ＬＴ行列Ｄ−１αと、変換行列Ｒαとに基づいて投影画像の各画素を補償する。輝度補償処理部３２では、変換行列ＲをＲα、逆ＬＴ行列Ｄ−１をＤ−１α,α∈｛ｒ,ｇ,ｂ｝とした、第１の実施の形態と同様の処理により、投影画像の各画素を補償する。
【０２１４】
なお、第２の実施の形態の作用は、第１の実施の形態と同様の各処理をｒｇｂ毎に行えばよいため、詳細な説明を省略する。
【０２１５】
以上説明したように、本発明の第２の実施の形態に係る空間投影装置によれば、色成分毎に、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を推定し、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたＬＴ行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列の逆行列である、逆ＬＴ行列を推定し、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ＬＴ行列と、変換行列とに基づいて投影画像の各画素を補償することにより、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる。
【０２１６】
＜本発明の第３の実施の形態に係る空間投影装置の構成＞
【０２１７】
次に、本発明の第３の実施の形態に係る空間投影装置の構成について説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０２１８】
第３の実施の形態では、被写体の凹凸面が緩やかでほぼ平面に近い表面である場合、間接反射がほとんど観測されず、直接反射が支配的である場合を考慮した処理を行う。このような事例では、逆ＬＴ行列推定部３０と輝度補償処理部３２における変換行列Ｒを使った反復計算を省略しても映像投影に影響を与えない。第３の実施の形態の基本構成は第１の実施の形態と同様であり、逆ＬＴ行列推定部３０と輝度補償処理部３２において、変換行列Ｒを使った反復計算を省略する点が異なる。
【０２１９】
第３の実施の形態の逆ＬＴ行列推定部３０において生成するセンシング行列Ψは、
【０２２０】
【数３９】
2018050252.tif 000042
・・・（３２）
【０２２１】
である。逆ＬＴ行列推定部３０が、センシング行列Ψを求める処理を開始すると、カメラ応答データＣｉ,ｉ＝１,２,・・・,Ｋを順番に映像ＤＢ４０から読み出し、（３２）式に従って代入してセンシング行列Ψを得る。そして第１の実施の形態と同様に、直接反射に対応する逆ＬＴ行列Ｄ−１を算出する。
【０２２２】
輝度補償処理部３２は、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像（カラー画像）に対して、逆ＬＴ行列推定部３０によって推定された逆ＬＴ行列Ｄ−１に基づいて投影画像の各画素を補償する。
【０２２３】
＜本発明の第３の実施の形態に係る空間投影装置の作用＞
【０２２４】
次に、本発明の第３の実施の形態に係る空間投影装置１００の作用について説明する。
【０２２５】
ここでは、第１の実施の形態と異なる逆ＬＴ行列推定処理ルーチン及び輝度補償処理ルーチンについて説明する。なお、第１の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
【０２２６】
逆ＬＴ行列推定処理ルーチンでは、図１０に示すように、変換行列Ｒを算出しない点が第１の実施の形態と異なっている。また、センシング行列Ψを生成する際に用いる変換行列Ｒは全ての値を０として計算すればよい。
【０２２７】
輝度補償処理ルーチンでは、図１１に示すように、変換行列Ｒを用いた反復計算を行わない。また、ステップＳ７０６では、上記（３０）式の計算によりプロジェクタ輝度ベクトルＰαを算出するが、ここで用いる変換行列Ｒは全ての値を０として計算すればよい。
【０２２８】
以上説明したように、本発明の第３の実施の形態に係る空間投影装置によれば、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を推定し、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたＬＴ行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列の逆行列である、逆ＬＴ行列を推定し、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ＬＴ行列に基づいて投影画像の各画素を補償することにより、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる。
【０２２９】
＜本発明の第４の実施の形態に係る空間投影装置の構成＞
【０２３０】
次に、本発明の第４の実施の形態に係る空間投影装置の構成について説明する。第４の実施の形態においては、Ｎ台のプロジェクタと１台のカメラのマルチプロジェクタ・システムを用いている点が第１及び第２の実施の形態と異なる。なお、第１及び第２の実施の形態に係る空間投影装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第１又は第２の実施の形態と同様の処理を行う。
【０２３１】
図１２に示すように、本発明の第４の実施の形態に係る空間投影装置４００は、カメラ２１０と、Ｎ台のプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎと、演算部４２０とを含んで構成されている。
【０２３２】
カメラ２１０は、切替部３４２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの何れか１つのプロジェクタにより投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部４２６に出力する。
【０２３３】
演算部４２０は、切替部４４２と、同期制御部４２２と、照明画像生成部４２４と、カメラ応答観測部４２６と、ＬＴ行列推定部４２８と、逆ＬＴ行列推定部４３０と、輝度補償処理部４３２と、映像ＤＢ４４０とを含んで構成されている。
【０２３４】
切替部４４２は、同期制御部４２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つに切り替える。なお、第４の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ１２Ａが選択されているものとする。また、第４の実施の形態においては、切替部４４２は、スイッチや分岐装置などを利用する。また、第４の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、同期制御部４２２の切り替え指示により処理対象となるプロジェクタを切り替える。
【０２３５】
同期制御部４２２は、フレーム番号毎に、切替部４４２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから照明を照射させ、照射された照明をカメラ２１０により撮影するように制御する。また、同期制御部４２２は、フレーム番号ｆの値が、照明画像生成部４２４において投影する全ての照明画像の数の値Ｋであるフレーム番号ｆを照明画像生成部４２４とカメラ応答観測部４２６とに送出した時点で繰り返し処理を停止し、切替部４４２に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部４４２において処理対象となるプロジェクタが切り替えられた後に、フレーム番号ｆの値を１に初期化し、上記処理を繰り返す。
【０２３６】
照明画像生成部４２４は、切替部４４２において切り替えられているプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影する照明画面を生成する。
【０２３７】
カメラ応答観測部４２６は、カメラ２１０において観測した、切替部４４２において切り替えられているプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号ｆと対応づけて当該照明光についての応答データを作成し、映像ＤＢ４４０に記憶する。
【０２３８】
映像ＤＢ４４０には、プロジェクタ毎の、フレーム番号ｆの各々に対応した応答データの各々と、フレーム番号ｆの各々に対応したベルヌーイバイナリパターンにより生成した照明を照射するための照明画像の各々とが記憶されている。
【０２３９】
ＬＴ行列推定部４２８は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、ＬＴベクトルを推定することにより、ＬＴ行列を推定する。
【０２４０】
逆ＬＴ行列推定部４３０は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、照明画像生成部４２４により生成されたフレーム番号毎の照明画像Ｐと、カメラ応答観測部４２６により観測されたフレーム番号毎のカメラ応答Ｃの画素の各々と、ＬＴ行列推定部４２８によって推定されたＬＴ行列Ｔとに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列Ｔの逆行列である、逆ＬＴ行列Ｔ−１を推定する。
【０２４１】
輝度補償処理部４３２は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、入力された所定のカラー画像を得るために当該プロジェクタから出力する照明画像である投影画像（カラー画像）に対して、逆ＬＴ行列推定部４３０によって推定された逆ＬＴ行列Ｄ−１と、変換行列Ｒとに基づいて投影画像の各画素を補償する。
【０２４２】
なお、第４の実施の形態に係る空間投影装置４００の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２４３】
以上説明したように、本発明の第４の実施の形態に係る空間投影装置によれば、複数のプロジェクタを用いる場合において、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列を推定し、生成されたフレーム番号毎の照明画像と、観測されたフレーム番号毎のカメラ応答の画素の各々と、推定されたＬＴ行列とに基づいて、被写体からの光学反射に対応する、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すＬＴ行列の逆行列である、逆ＬＴ行列を推定し、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、推定された逆ＬＴ行列に基づいて投影画像の各画素を補償することにより、簡易な装置構成で、計算コストを抑えて、投影画像の輝度を補償できる。
【０２４４】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０２４５】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０２４６】
１０、２１０  カメラ
１２、２１２Ａ〜Ｎ   プロジェクタ
２０、４２０  演算部
２２、４２２  同期制御部
２４、４２４  照明画像生成部
２６、４２６  カメラ応答観測部
２８、４２８  ＬＴ行列推定部
３０、４３０  逆ＬＴ行列推定部
３２、４３２  輝度補償処理部
４０、４４０  映像ＤＢ
１００、４００       画像投影装置
４４２ 切替部
【図１】
2018050252.tif 000043
【図２】
2018050252.tif 000044
【図３】
2018050252.tif 000045
【図４】
2018050252.tif 000046
【図５】
2018050252.tif 000047
【図６】
2018050252.tif 000048
【図７】
2018050252.tif 000049
【図８】
2018050252.tif 000050
【図９】
2018050252.tif 000051
【図１０】
2018050252.tif 000052
【図１１】
2018050252.tif 000053
【図１２】
2018050252.tif 000054
【図１３】
2018050252.tif 000055