(57)【特許請求の範囲】
【請求項１】
プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成する照明画像生成部と、
前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、
前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素Ｃαｉとして検出するカメラ応答観測部と、
前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、圧縮センシングを用いて、前記複数の色成分α毎に、前記照明画像のｊ番目の画素及び前記カメラ応答の画素Ｃαｉ間の対応関係を表すライト・トランスポート行列を推定するＬＴ行列推定部と、
前記ＬＴ行列推定部により推定された前記複数の色成分α毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素の各々についての、前記複数の色成分α毎の前記ライト・トランスポート行列の要素を含む、前記複数の色成分α及び照明画像の複数の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、前記カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、前記カメラ応答のｉ番目の画素の各々に対し、対応関係を有する前記照明画像の画素の個数Ｎｉをカウントし、前記照明画像のｊ番目の画素の各々に対し、対応関係を有する前記カメラ応答の画素の個数Ｍｊをカウントするカラー混合行列生成部と、
入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記カメラ応答のｉ番目の画素の各々について、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記入力された画像のｉ番目の画素と、前記カメラ応答のｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記カメラ応答のｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を補償する輝度補償処理部と、
を含む画像投影装置。
【請求項２】
前記照明画像生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ラインの照明を照射するための照明画像、又は各々位置が異なる前記所定幅の横ラインの照明を照射するための照明画像を生成し、
前記ＬＴ行列推定部は、前記複数の色成分α毎に、前記カメラ応答の画素Ｃαｉの各々に対し、前記フレーム番号毎の観測画像から検出された前記カメラ応答の画素Ｃαｉと、前記フレーム番号毎に生成された前記照明画像とに基づいて、圧縮センシングを用いて、前記ライト・トランスポート行列のうちの前記カメラ応答の画素Ｃαｉに関する各要素からなるライト・トランスポートベクトルｕ’ｉを推定することにより、前記色成分αの前記ライト・トランスポート行列を推定する請求項１記載の画像投影装置。
【請求項３】
前記輝度補償処理部は、更に、前記補償された投影画像、又は前回更新された投影画像を前記プロジェクタから出力させて前記カメラにより撮影することにより得られた観測画像のｉ番目の画素の各々についての、前記入力された画像のｉ番目の画素との誤差が、予め定められた条件を満たすまで、前記観測画像のｉ番目の画素の各々について、前記ｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記ｉ番目の画素についての誤差と、前記ｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記ｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を繰り返し更新する請求項１又は２記載の画像投影装置。
【請求項４】
前記照明画像生成部は、複数の色成分βの各々に対し、プロジェクタから照射するための、フレーム番号毎に予め定められた前記色成分βの照明画像を生成し、
前記カメラ応答観測部は、前記複数の色成分βの各々に対し、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、前記カメラ応答の画素Ｃαｉを検出し、
前記ＬＴ行列推定部は、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分βの各々に対し前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、圧縮センシングを用いて、前記複数の色成分α及び前記複数の色成分β毎に、前記ライト・トランスポート行列を推定し、
前記カラー混合行列生成部は、前記ＬＴ行列推定部により推定された前記複数の色成分α及び前記複数の色成分β毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊを生成する請求項１〜請求項３のいずれか１項に記載の画像投影装置。
【請求項５】
照明画像生成部が、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成するステップと、
同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、
カメラ応答観測部が、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素Ｃαｉとして検出するステップと、
ＬＴ行列推定部が、前記照明画像生成部が生成するステップにより生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、圧縮センシングを用いて、前記複数の色成分α毎に、前記照明画像のｊ番目の画素及び前記カメラ応答の画素Ｃαｉ間の対応関係を表すライト・トランスポート行列を推定するステップと、
カラー混合行列生成部が、前記ＬＴ行列推定部が推定するステップにより推定された前記複数の色成分α毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素の各々についての、前記複数の色成分α毎の前記ライト・トランスポート行列の要素を含む、前記複数の色成分α及び照明画像の複数の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、前記カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、前記カメラ応答のｉ番目の画素の各々に対し、対応関係を有する前記照明画像の画素の個数Ｎｉをカウントし、前記照明画像のｊ番目の画素の各々に対し、対応関係を有する前記カメラ応答の画素の個数Ｍｊをカウントするステップと、
輝度補償処理部が、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記カメラ応答のｉ番目の画素の各々について、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記入力された画像のｉ番目の画素と、前記カメラ応答のｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記カメラ応答のｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を補償するステップと、
を含む画像投影方法。
【請求項６】
前記照明画像生成部が生成するステップは、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ラインの照明を照射するための照明画像、又は各々位置が異なる前記所定幅の横ラインの照明を照射するための照明画像を生成し、
前記ＬＴ行列推定部が推定するステップは、前記複数の色成分α毎に、前記カメラ応答の画素Ｃαｉの各々に対し、前記フレーム番号毎の観測画像から検出された前記カメラ応答の画素Ｃαｉと、前記フレーム番号毎に生成された前記照明画像とに基づいて、圧縮センシングを用いて、前記ライト・トランスポート行列のうちの前記カメラ応答の画素Ｃαｉに関する各要素からなるライト・トランスポートベクトルｕ’ｉを推定することにより、前記色成分αの前記ライト・トランスポート行列を推定する請求項５記載の画像投影方法。
【請求項７】
前記輝度補償処理部が更新するステップを更に含み、前記更新するステップは、前記補償された投影画像、又は前回更新された投影画像を前記プロジェクタから出力させて前記カメラにより撮影することにより得られた観測画像のｉ番目の画素の各々についての、前記入力された画像のｉ番目の画素との誤差が、予め定められた条件を満たすまで、前記観測画像のｉ番目の画素の各々について、前記ｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記ｉ番目の画素についての誤差と、前記ｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記ｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を繰り返し更新する請求項５又は６記載の画像投影方法。
【請求項８】
コンピュータを、請求項１〜請求項４のいずれか１項に記載の画像投影装置の各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像投影装置、方法、及びプログラムに係り、特に、投影画像の輝度を補償するための画像投影装置、方法、及びプログラムに関する。
【背景技術】
【０００２】
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であれば個人スペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物（以下、被写体と称する）へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング（projection mapping）として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
【０００３】
所定画像を正確に投影するために、プロジェクション・マッピングでは、プロジェクタ・カメラシステム（projector-camera system）が利用される。プロジェクタ・カメラシステムにおいて、カメラで観測される画像に応じてプロジェクタへ入力する画像を幾何変換すれば、所定画像を指定された位置に正確に投影することができる。通常、平面なスクリーンにプロジェクション・マッピングする場合には、事前のキャリブレーション作業で得た平面射影変換（plane-homography）を使い、プロジェクタ画面上の点とカメラ画面上の点をスクリーン面を介して対応付ける。この対応関係を利用して、プロジェクタから出力する所定画像を幾何変換して、所定画像をスクリーン面の決められた場所に投影する。
【０００４】
これに対して、空間構造に凹凸があったり曲がった構造である場合には、非特許文献1 では、レーザ計測を利用して、被写体の空間構造あるいは凹凸形状を得る。その形状に合わせてプロジェクタへ入力する画像を幾何的に変形することにより、平面スクリーンと同様に指定個所に所定画像を投影することができる。あるいは、レーザ計測に頼らずに、構造光（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.
【非特許文献３】K. Fujii, M.D. Grossberg, and S.K. Nayar: “A Projector-Camera System with Real-Time Photometric Adaptation for Dynamic Environments”, Proc. of IEEE Computer Vision and Pattern Recognition (CVPR), vol.1, pp.814-821, 2005.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
事前にレーザ計測あるいは構造光を使って、プロジェクション・マッピングの対象となる被写体の形状を計測しないとき、その被写体は“未知な被写体”と呼ばれる。未校正のプロジェクタ・カメラシステムを使って、未知な被写体に対して所定画像をプロジェクション・マッピングするには、プロジェクタから出力した画素（照明画像の画素）とカメラで観測した画素（カメラ応答の画素）の全てを対応付ける必要がある。ところが、そのＬＴを計測するための作業に膨大な時間がかかるという問題がある。図１５に示したように、プロジェクタ画面においてｐ×ｑ画素の各画素を点光源に使い、カメラ応答の画素を検出する作業を順番に繰り返すと、ｐ×ｑ枚の画像をカメラで観測する必要がある。例えば、１，０００×１，０００画素の各点を光源として使うと、1，０００，０００枚の画像からＬＴを獲得することになり、計算機コストが高くその処理に多くの時間がかかる。
【０００９】
さらに、所定画像を被写体に正確に投影するには、カメラで観測したときの各画素の画素値も所定画像の画素値にする必要がある。非特許文献３の方法によれば、所定の輝度をカメラで観測するようにプロジェクタからの出力輝度を光学的に補償することができる。非特許文献３の方法は平面物体以外の物体表面の輝度補償を扱っているが、プロジェクタ座標とカメラ座標が１対１の幾何的に対応付けられている場合に限定される。しかしながら、任意形状に対するＬＴでは直接反射光の他に二次以上の反射光や屈折光が含まれる。このため、被写体に所定画像を幾何的かつ光学的にプロジェクション・マッピングするには、ＬＴにおける照明画像の画素とカメラ応答の画素間のＭ対Ｎの空間的対応関係を考慮して、プロジェクタから出力するカラー輝度を適切に調整する必要がある。ＬＴ行列はその関係を全て記述するため、その逆行列を利用すれば、輝度補償された画像を任意の未知な被写体へ投影することが考えられる。しかしながら、扱う画素が高解像度になるとＬＴ行列は、益々、スパース、かつ、巨大なサイズとなり、ＬＴ行列の逆行列の計算は一般の計算機において処理コストが非常に高く、実効的な計算が不可能となる。
【００１０】
本発明は、上記問題点を解決するために成されたものであり、効率よく、投影画像の輝度を補償できる画像投影装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、第１の発明に係る画像投影装置は、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成する照明画像生成部と、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素Ｃαｉとして検出するカメラ応答観測部と、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、前記複数の色成分α毎に、前記照明画像のｊ番目の画素及び前記カメラ応答の画素Ｃαｉ間の対応関係を表すライト・トランスポート行列を推定するＬＴ行列推定部と、前記ＬＴ行列推定部により推定された前記複数の色成分α毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素の各々についての、前記複数の色成分α毎の前記ライト・トランスポート行列の要素を含む、前記複数の色成分α及び照明画像の複数の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、前記カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、前記カメラ応答のｉ番目の画素の各々に対し、対応関係を有する前記照明画像の画素の個数Ｎｉをカウントし、前記照明画像のｊ番目の画素の各々に対し、対応関係を有する前記カメラ応答の画素の個数Ｍｊをカウントするカラー混合行列生成部と、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記カメラ応答のｉ番目の画素の各々について、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記入力された画像のｉ番目の画素と、前記カメラ応答のｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記カメラ応答のｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を補償する輝度補償処理部と、を含んで構成されている。
【００１２】
また、第１の発明に係る画像投影装置において、前記照明画像生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ラインの照明を照射するための照明画像、又は各々位置が異なる前記所定幅の横ラインの照明を照射するための照明画像を生成し、前記ＬＴ行列推定部は、前記複数の色成分α毎に、前記カメラ応答の画素Ｃαｉの各々に対し、前記フレーム番号毎の観測画像から検出された前記カメラ応答の画素Ｃαｉと、前記フレーム番号毎に生成された前記照明画像とに基づいて、前記ライト・トランスポート行列のうちの前記カメラ応答の画素Ｃαｉに関する各要素からなるライト・トランスポートベクトルｕ’ｉを推定することにより、前記色成分αの前記ライト・トランスポート行列を推定するようにしてもよい。
【００１３】
また、第１の発明に係る画像投影装置において、前記輝度補償処理部は、更に、前記補償された投影画像、又は前回更新された投影画像を前記プロジェクタから出力させて前記カメラにより撮影することにより得られた観測画像のｉ番目の画素の各々についての、前記入力された画像のｉ番目の画素との誤差が、予め定められた条件を満たすまで、前記観測画像のｉ番目の画素の各々について、前記ｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記ｉ番目の画素についての誤差と、前記ｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記ｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を繰り返し更新するようにしてもよい。
【００１４】
また、第１の発明に係る画像投影装置において、前記照明画像生成部は、複数の色成分βの各々に対し、プロジェクタから照射するための、フレーム番号毎に予め定められた前記色成分βの照明画像を生成し、前記カメラ応答観測部は、前記複数の色成分βの各々に対し、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、前記カメラ応答の画素Ｃαｉを検出し、前記ＬＴ行列推定部は、前記照明画像生成部により生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分βの各々に対し前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、前記複数の色成分α及び前記複数の色成分β毎に、前記ライト・トランスポート行列を推定し、前記カラー混合行列生成部は、前記ＬＴ行列推定部により推定された前記複数の色成分α及び前記複数の色成分β毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊを生成するようにしてもよい。
【００１５】
第２の発明に係る画像投影方法は、照明画像生成部が、プロジェクタから照射するための、フレーム番号毎に予め定められた照明画像を生成するステップと、同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、カメラ応答観測部が、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、複数の色成分α毎に、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素Ｃαｉとして検出するステップと、ＬＴ行列推定部が、前記照明画像生成部が生成するステップにより生成されたフレーム番号毎の照明画像と、前記カメラ応答観測部により前記複数の色成分α毎に観測されたフレーム番号毎の前記カメラ応答の画素Ｃαｉの各々とに基づいて、前記複数の色成分α毎に、前記照明画像のｊ番目の画素及び前記カメラ応答の画素Ｃαｉ間の対応関係を表すライト・トランスポート行列を推定するステップと、カラー混合行列生成部が、前記ＬＴ行列推定部が推定するステップにより推定された前記複数の色成分α毎のライト・トランスポート行列に基づいて、前記カメラ応答のｉ番目の画素の各々に対し、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素の各々についての、前記複数の色成分α毎の前記ライト・トランスポート行列の要素を含む、前記複数の色成分α及び照明画像の複数の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、前記カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、前記カメラ応答のｉ番目の画素の各々に対し、対応関係を有する前記照明画像の画素の個数Ｎｉをカウントし、前記照明画像のｊ番目の画素の各々に対し、対応関係を有する前記カメラ応答の画素の個数Ｍｊをカウントするステップと、輝度補償処理部が、入力された画像を得るために前記プロジェクタから出力する照明画像である投影画像に対して、前記カメラ応答のｉ番目の画素の各々について、前記カメラ応答のｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記入力された画像のｉ番目の画素と、前記カメラ応答のｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記カメラ応答のｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を補償するステップと、を含んで実行することを特徴とする。
【００１６】
また、第２の発明に係る画像投影方法において、前記照明画像生成部が生成するステップは、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ラインの照明を照射するための照明画像、又は各々位置が異なる前記所定幅の横ラインの照明を照射するための照明画像を生成し、前記ＬＴ行列推定部が推定するステップは、前記複数の色成分α毎に、前記カメラ応答の画素Ｃαｉの各々に対し、前記フレーム番号毎の観測画像から検出された前記カメラ応答の画素Ｃαｉと、前記フレーム番号毎に生成された前記照明画像とに基づいて、前記ライト・トランスポート行列のうちの前記カメラ応答の画素Ｃαｉに関する各要素からなるＬＴベクトルｕ’ｉを推定することにより、前記色成分αの前記ライト・トランスポート行列を推定するようにしてもよい。
【００１７】
また、第２の発明に係る画像投影方法において、前記輝度補償処理部が更新するステップを更に含み、前記更新するステップは、前記補償された投影画像、又は前回更新された投影画像を前記プロジェクタから出力させて前記カメラにより撮影することにより得られた観測画像のｉ番目の画素の各々についての、前記入力された画像のｉ番目の画素との誤差が、予め定められた条件を満たすまで、前記観測画像のｉ番目の画素の各々について、前記ｉ番目の画素と対応関係を有する前記照明画像のｊ番目の画素に対してカウントされた前記照明画像の画素の個数Ｍｊと、前記ｉ番目の画素についての誤差と、前記ｉ番目の画素に対してカウントされた前記カメラ応答の画素の個数Ｎｉと、前記カラー混合行列生成部により求められた、前記ｉ番目の画素に対する、前記照明画像のｊ番目の画素についての前記カラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、前記投影画像のｊ番目の画素を繰り返し更新するようにしてもよい。
【００１８】
第３の発明に係るプログラムは、コンピュータを、上記第１の発明に係る画像投影装置の各部として機能させるためのプログラムである。
【発明の効果】
【００１９】
本発明の画像投影装置、方法、及びプログラムによれば、フレーム番号毎に、プロジェクタから照明画像を出力させ、カメラにより撮影した観測画像の各々について、複数の色成分α毎に、カメラ応答の画素Ｃαｉを検出し、複数の色成分α毎に、ライト・トランスポート行列を推定し、ライト・トランスポート行列に基づいて、複数の色成分α及び照明画像の複数の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントし、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、カウントされた照明画像の画素の個数Ｍｊと、入力された画像のｉ番目の画素と、カウントされたカメラ応答の画素の個数Ｎｉと、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償することにより、効率よく、投影画像の輝度を補償できる、という効果が得られる。
【図面の簡単な説明】
【００２０】
【図１】本発明の実施の形態に係る画像投影装置の構成を示すブロック図である。
【図２】縦ラインの照明画像と横ラインの照明画像の一例を示す概念図である。
【図３】カメラ応答を濃淡値として応答データを保存する場合の一例を示す概念である。
【図４】カメラ応答のＣ’と、照明画像のＰ’と、ＬＴ行列Ｔ’との関係の一例を表す概念図である。
【図５】本発明の第１の実施の形態に係る画像投影装置における同期制御処理ルーチンを示すフローチャートである。
【図６】本発明の第１の実施の形態に係る画像投影装置における照明画像生成処理ルーチンを示すフローチャートである。
【図７】本発明の第１の実施の形態に係る画像投影装置におけるカメラ応答観測処理ルーチンを示すフローチャートである。
【図８】本発明の第１の実施の形態に係る画像投影装置におけるＬＴ行列推定処理ルーチンを示すフローチャートである。
【図９】本発明の第１の実施の形態に係る画像投影装置におけるカラー混合行列生成処理ルーチンを示すフローチャートである。
【図１０】本発明の第１の実施の形態に係る画像投影装置における輝度補償処理ルーチンを示すフローチャートである。
【図１１】本発明の第１の実施の形態に係る画像投影装置における輝度補償処理ルーチンを示すフローチャートである。
【図１２】本発明の第２の実施の形態に係る画像投影装置の構成を示すブロック図である。
【図１３】本発明の第３の実施の形態に係る画像投影装置の構成を示すブロック図である。
【図１４】本発明の第４の実施の形態に係る画像投影装置の構成を示すブロック図である。
【図１５】プロジェクタ・カメラシステムと被写体間のライト・トランスポートを得る一例を示す概念図である。
【発明を実施するための形態】
【００２１】
以下、図面を参照して本発明の実施の形態を詳細に説明する。
【００２２】
＜本発明の実施の形態の概要＞
【００２３】
プロジェクタ・カメラシステムの動作を活用したプロジェクション・マッピングにおいて、プロジェクタ画面の１画素がカメラ画面の１画素と対応付けるとは限らない一般的な状況において、できるだけ効率的にＬＴを計測するとともに、ＬＴ行列の逆行列計算に頼らず所定画像を幾何的かつ光学的に補正して、被写体上に正確に投影することが、本発明の実施の形態が解決しようとする課題である。
【００２４】
＜本発明の第１の実施の形態に係る画像投影装置の構成＞
【００２５】
まず、本発明の第１の実施の形態に係る画像投影装置の構成について説明する。図１に示すように、画像投影装置１００は、カメラ１０と、プロジェクタ１２と、演算部２０と、出力部９０と、を含んで構成されている。なお、第１の実施の形態においては、１台のプロジェクタと１台のカメラのプロジェクタ・カメラシステムを用いる。
【００２６】
カメラ１０は、プロジェクタ１２により投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部２６に出力する。なお、第１の実施の形態においては、プロジェクタ１２から出力する単色照明として、例えば、白色照明を用いる。
【００２７】
プロジェクタ１２は、単色照明を用いて、照明画像生成部２４による出力指示に従って被写体を投影する。
【００２８】
演算部２０は、同期制御部２２と、照明画像生成部２４と、カメラ応答観測部２６と、ＬＴ行列推定部２８と、カラー混合行列生成部３０と、輝度補償処理部３２と、映像ＤＢ４０とを含んで構成されている。
【００２９】
同期制御部２２は、フレーム番号毎に、プロジェクタ１２から照明画像を出力させ、出力された照明画像をカメラ１０により撮影するように制御する。具体的には、まず、プロジェクタ１２から投影される特定の照明画像を表すフレーム番号ｆをｆ＝１に初期化する。次に、カメラ応答観測部２６からの応答信号を待ち、当該応答信号を受信すると、照明画像生成部２４と、カメラ応答観測部２６とへフレーム番号ｆを送出する。フレーム番号ｆを送出することにより、同じフレーム番号においてプロジェクタ１２からの照明と、カメラ１０の観測との同期をとる。次に、フレーム番号ｆをｆ＝ｆ＋１とカウントアップし、再び、カメラ応答観測部２６からの応答信号を待つ。以降、プロジェクタ１２からの照明とカメラ１０における観測とをフレーム番号ｆで同期をとりながら、上述の処理と同様にフレーム番号ｆを照明画像生成部２４と、カメラ応答観測部２６とへの送出を繰り返す。そして、フレーム番号ｆの値が、照明画像生成部２４において投影する全ての照明画像の数の値２Ｌとなるフレーム番号ｆを照明画像生成部２４とカメラ応答観測部２６とに送出した時点で、同期制御部２２は、上述の繰り返し処理を停止する。
【００３０】
照明画像生成部２４は、以下に説明するように、プロジェクタ１２から投影するプロジェクタ画面における照明画像を生成する。
【００３１】
まず、照明画像生成部２４において生成する照明画像の概要を説明する。後述するＬＴ行列推定部２８では、圧縮センシング（compressive sensing）と呼ばれるスパース信号復元技術により、できるだけ少ないカメラ応答から全体のＬＴを推定するため、その入力データとしては、できるだけ直交するような照明画像が最適である。直交するとは、照明画像の画素をスキャンして列ベクトルデータに再配置したとき、あるベクトルともう一つベクトルの内積が０になることを指す。完全に直交するのが理想的であるが、ここでは直交に近いものであれば圧縮センシングのための照明画像に利用することできる。本実施の形態では、照明画像として縦ラインあるいは横ラインから構成される照明を照射するための照明画像を生成する。異なる縦ラインの照明画像をベクトル化したときの内積は０であり、異なる横ラインの照明画像をベクトル化したときの内積も０である。縦ラインの照明画像と横ラインの照明画像をベクトル化したときの内積の値は互いに交差した画素数に比例するが、扱うプロジェクタ画面（全体の画素）においてそのライン幅が十分に狭ければほぼ０と見なすことができる。
【００３２】
照明画像生成部２４は、具体的には、まず、プロジェクタ１２から、縦横ラインの照明画像を投影する範囲：Ｎ×Ｎ（＝１，０００×１，０００）画素の範囲を設定する。次に、縦横ラインの照明の幅ｎを設定する。理想的には、ｎ＝１画素を設定してもよいが、照明が微弱なために十分なカメラ応答が得られない場合があることを考慮して、第１の実施の形態においては、縦横ラインの照明の幅ｎはｎ＝４画素に設定する。ただし、ｎＬ＝Ｎ（Ｌは整数）とし、対象画素領域の縦横サイズＮがｎの倍数とする。そして、同期制御部２２からフレーム番号ｆを受信すると、当該フレーム番号ｆがｆ＜＝Ｌである場合、縦ラインの照明画像を設定し、当該フレーム番号ｆに対応する当該縦ラインの照明画像を映像ＤＢ４０に記憶すると共に、当該縦ラインの照明画像をプロジェクタ１２から投影させる。一方、当該フレーム番号ｆがｆ＞Ｌの場合、横ラインの照明画像を設定し、当該フレーム番号ｆに対応する当該横ラインの照明画像を映像ＤＢ４０に記憶すると共に、当該横ラインの照明画像をプロジェクタ１２から投影させる。図２に照明画像の画素領域をＮ×Ｎ画素としたときの縦ラインの照明画像と横ラインの照明画像の例を示す。縦ラインはｎ×Ｎ画素の大きさをもち、フレーム番号ｆに従って、左端から右端へ幅ｎの等間隔で移動する。一方、横ラインの照明画像は、Ｎ×ｎ画素の大きさをもち、フレーム番号ｆに従って、下端から上端へ幅ｎの等間隔で移動する。縦ライン照明は、ｆ＝１では照明画像の画素領域の左端に位置し、ｆ＝Ｌのとき照明画像の画素領域の右端に位置する。一方、横ラインの照明画像は、ｆ＝Ｌ＋１のとき照明画像の画素領域の下端に位置し、ｆ＝２Ｌのとき照明画像の画素領域の上端に位置する。また、照明画像生成部２４は、同期制御部２２から、フレーム番号ｆを受信するたびに、上記の縦ラインの照明画像又は横ラインの照明画像を設定し、全ての照明画像（２Ｌ本の照明画像）を順番にプロジェクタ１２から投影し終えるまで上記処理を繰り返す。
【００３３】
カメラ応答観測部２６は、カメラ１０において観測した、プロジェクタ１２から投影された照明光に対する観測画像の各々について、赤色、青色、及び緑色（以下、ｒｇｂと称する）の色成分α毎に、予め定めた閾値よりも大きい輝度値を有する画素をカメラ応答の画素Ｃ’αｉとして検出する。具体的には、まず、観測範囲を設定する。第１の実施の形態においては、カメラ１０において観測された画像全体を処理対象とせず、当該設定により指定された範囲のカメラ応答を検出する。第１の実施の形態においては、例えば、画像内でのＭ×Ｍ（＝１，０００×１，０００）画素の範囲を指定する。次に、カメラ応答を検出するための閾値を設定する。当該閾値は、カメラ応答を検出する範囲の画素の各々について、当該閾値以上の輝度値である画素をカメラ応答として検出する。次に、同期制御部２２からフレーム番号ｆを受信すると、カメラ１０が画像を取得することができる状態かのチェックを行い、撮影可能状態ならばカメラ１０から観測画像を取得する。次に、映像ＤＢ４０に記憶されているプロジェクタ１２により照明画像を投影していない状態の観測画像である背景画像を取得し、観測画像と背景画像との背景差分を処理する。当該背景差分において、蛍光灯などの環境光の下では画像雑音が多く混入するため、設定した閾値として例えば１０階調に設定しておき、当該値よりも大きい画素の各々をカメラ応答の画素Ｃ’αｉとして検出する。次に、検出されたカメラ応答の画素の各々について、２次元座標と共に、カメラ応答の輝度値を所定のデータ形式で応答データとして映像ＤＢ４０に記憶する。図３に、カメラ応答を濃淡値として応答データを保存する場合の例を示し、左端には、検出された画素の座標が書き込まれ、その右側にカメラ応答の輝度値が書き込まれる場合を例として示す。そして、カメラ１０による次のカメラ観測に備えて、同期制御部２２へ応答信号を送信し、フレーム番号を受信するまで待機する。なお、カメラ応答観測部２６の処理は、プロジェクタ１２から投影される縦ラインの照明画像又は横ラインの照明画像を観測したカメラ１０における観測画像から取得した応答データを映像ＤＢ４０に記憶し、全ての縦ラインの照明画像及び横ラインの照明画像の各々についての応答データを映像ＤＢ４０に記憶した時点で終了する。なお、初回に、カメラ観測を行う場合には、カメラ応答観測部２６から応答信号を同期制御部２２へ送信する。なお、行列及びベクトルを表す場合には、記号の後ろに「’」を付して表現する。
【００３４】
ＬＴ行列推定部２８は、照明画像生成部２４により生成されたフレーム番号毎の照明画像と、カメラ応答観測部２６によりｒｇｂの色成分α毎に観測されたフレーム番号毎のカメラ応答の画素Ｃαｉの各々とに基づいて、ｒｇｂの色成分α毎に、カメラ応答の画素Ｃαｉの各々について、カメラ応答の画素Ｃαｉに対する照明画像の画素Ｐｊの対応関係を表すＬＴベクトルの各々を求めることにより、照明画像の画素Ｐｊ及びカメラ応答の画素Ｃαｉ間の対応関係を表すＬＴ行列を推定する。
【００３５】
本実施の形態では、ＬＴ行列推定部２８は、圧縮センシング（compressive sensing）を利用して、ＬＴ行列の全ての要素を推定する。
【００３６】
まず、ＬＴ行列推定部２８における圧縮センシングの原理を説明する。未知な被写体への映像投影において、Ｎ２次元のプロジェクタ照明ベクトルＰ’（Ｎ×Ｎ画素のプロジェクタ１２から投影する照明画像をベクトル化したデータ）が与えられるとプロジェクタ・カメラシステムはＭ２次元のカメラ観測ベクトルをＣ’とする（Ｍ×Ｍ画素のカメラ観測画像をベクトル化したデータ）と仮定する。一般的に、未校正なプロジェクタ・カメラシステムを使って任意の被写体（被写体は、その３次元形状と反射特性が不明であるとする）へ映像を投影するとき、照明画像とカメラ応答の入出力対応は、Ｍ２×Ｎ２のＬＴ行列Ｔ’を用いると、以下（１）式で表される。
【００３７】
【数１】
0006373221.tif 000002
【００３８】
ＬＴ行列Ｔ’は、カメラ間の幾何的・光学的対応関係として、プロジェクタの画素から放射された光が被写体に反射したときの直接反射、間接反射を記述する。Ｆ’は環境照明に対応するカメラ応答であり、カメラ応答観測部２６で用いた背景画像に相当する。なお、暗室環境でプロジェクタ・カメラシステムを用いる場合には、プロジェクタからのブラックオフセット光に反応したカメラ応答が主成分である。
【００３９】
上記（１）式は任意のプロジェクタ照明とカメラ観測のペアについて成り立ち、Ｋ種類のプロジェクタ照明｛Ｐ’１，Ｐ’２，・・・，Ｐ’Ｋ｝を用いて、そのカメラ応答｛Ｃ’１，Ｃ’２，・・・，Ｃ’Ｋ｝を観測するとき、以下（２）式を満たす。
【００４０】
【数２】
0006373221.tif 000003
【００４１】
プロジェクタ・カメラシステムを用いてＬＴを獲得することは、ユーザによって設計されたプロジェクタ照明を用いて、そのカメラ応答に基づいて行列Ｔ’を推定することを意味する。ここで、事前に黒画像を投影したカメラ応答画像から背景画像を得て、各カメラ応答はその背景差分によりベクトルＦ’が取り除かれているとする。
【００４２】
本実施の形態では、プロジェクタ照明に縦横ラインの照明を照射するための照明画像を用いるため、（２）式ではＫ＝２Ｌであり、各プロジェクタ照明｛Ｐ’１，Ｐ’２，・・・，Ｐ’Ｋ｝は該当する縦横ラインの照明画像の２次元画素の並びを列に再配置したベクトルとする。一方のカメラ応答データは、カメラ応答観測部２６において図３のデータ形式で保存されている。上記（２）式のカメラ応答｛Ｃ’１，Ｃ’２，・・・，Ｃ’Ｋ｝は、カメラ応答データの画素座標に基づいて２次元画素の並びを列に再配置したベクトルとする。
【００４３】
（２）式の転置をとると、以下（３）式を得る。
【００４４】
【数３】
0006373221.tif 000004
【００４５】
ただし、便宜上、
【００４６】
【数４】
0006373221.tif 000005
【００４７】
と置換した（以降では、行列Φ’をセンシング行列と呼ぶ）。上記（３）式の左辺のＫ×Ｍ２の行列の各列をＫ次元ベクトルの各々からなる
【００４８】
【数５】
0006373221.tif 000006
【００４９】
で表し、上記（３）式の右辺の行列Ｔ’Ｔの各列をＮ２次元ベクトルの各々からなる
【００５０】
【数６】
0006373221.tif 000007
【００５１】
で表すことにより、上記（３）式は、
【００５２】
【数７】
0006373221.tif 000008
【００５３】
と書き直すことができる。（５）式から、第ｉ列のＫ次元ベクトルｖ’ｉは、
【００５４】
【数８】
0006373221.tif 000009
【００５５】
となる。ＬＴ行列推定部２８では、ｖ’ｉを応答ベクトル、ｕ’ｉをＬＴベクトルと呼ぶことにする。上記（６）式は、Ｎ２次元のＬＴベクトルｕ’ｉを入力とし、Ｋ×Ｎ２の行列の線形変換によってＫ次元の応答ベクトルｖ’ｉを出力すると解釈することができる。
【００５６】
上記（６）式では、応答ベクトルｖ’ｉは、ｉ番目のカメラ応答の画素におけるＫ種類の照明画像に対する時系列の応答を表し、未知のＬＴベクトルｕ’ｉをＫ種類の照明画像から構成される行列Φ’に変換することで得られる。一般的に、ＬＴ行列Ｔ’はスパースな性質をもつため、その行列を構成するＬＴベクトルｕ’ｉもスパースである。ＬＴ行列推定部２８は、（６）式に基づいてＬＴベクトルｕ’ｉを求めるために圧縮センシングを利用する。
【００５７】
圧縮センシングとは、ｌ１ノルム最小化の原理に基づいており、（６）式において、
【００５８】
【数９】
0006373221.tif 000010
【００５９】
を満たす解ｕ’ｉを求める信号処理手法である。（７）式において、
【００６０】
【数１０】
0006373221.tif 000011
【００６１】
はｌ１ノルムを表し、
【００６２】
【数１１】
0006373221.tif 000012
【００６３】
はｌ２ノルムを表す。圧縮センシングには様々なアルゴリズムが公知であるが、ここでは、実装が容易であり、理論的に収束性の良い、ＲＯＭＰ（Regularized Orthogonal Matching Pursuit）アルゴリズムを利用して解ｕ’ｉを求める。圧縮センシングにより、個々のｕ’ｉ，ｉ＝１，２，・・・，Ｍ２を求めると、Ｍ２×Ｎ２のＬＴ行列Ｔ’は、Ｍ２セットのＬＴベクトル
【００６４】
【数１２】
0006373221.tif 000013
【００６５】
により、
【００６６】
【数１３】
0006373221.tif 000014
【００６７】
と得られる。
【００６８】
以上の原理に基づいて、ＬＴ行列推定部２８の処理内容を説明する。ＬＴ行列推定部２８が処理を開始すると、まず、上記（４）式に従ってセンシング行列Φ’を算出する。圧縮センシングを作動させるため、上記（７）式におけるパラメータεを設定する。カメラ応答には雑音が付加されているため、例えば、ε＝０．０１と与える。次に、映像ＤＢ４０に格納されたカメラ応答データを逐次読み出して、ｉ番目の応答ベクトルｖ’ｉを生成する。なお、応答ベクトルｖ’ｉはｉ番目のカメラ応答Ｃ’ｉとは異なる。
【００６９】
（３）式、及び（５）式から明らかなように、応答ベクトルｖ’ｉは、Ｋ種類のカメラ応答｛Ｃ’１，Ｃ’２，・・・，Ｃ’Ｋ｝のｉ番目の要素を取り出してベクトル化したデータである。
【００７０】
映像ＤＢ４０に格納されたカメラ応答データはｒｇｂの輝度値をもつため、各色の応答データをαチャネルの応答データと呼ぶことにする（α∈｛ｒ，ｇ，ｂ｝）。応答ベクトルｖ’ｊの生成では、映像ＤＢ４０からカメラ応答データを適宜読み出し、Ｋ種類のカメラ応答データのうちのαチャネルのカメラ応答｛Ｃ’１，Ｃ’２，・・・，Ｃ’Ｋ｝から、ｉ番目の要素のみを取り出して、Ｎ２次元ベクトルｖ’ｉを生成する。
【００７１】
次に、ＬＴ行列推定部２８は、ＲＯＭＰアルゴリズムを利用して、上記（７）式を満たすＬＴベクトルｕ’ｉを復元する。ＬＴ行列の構築では、事前にＭ２×Ｎ２の行列バッファＴ’αβ，（α＝β）を用意しておき、上記（８）式に従って、ｊ番目の行にＬＴベクトルの転置、すなわち、ｕ’Ｔｊを代入する。なお、通常のメモリサイズで用意するのではなく、スパース表現でメモリを確保し、ＬＴベクトルの非零要素のみを代入する。
【００７２】
ＬＴ行列推定部２８は、以上の処理を、ｒｇｂチャネルの応答データの全ての画素ｉ＝１，２，・・・，Ｍ２について処理すると、ｒチャネルの応答データから推定したＬＴ行列Ｔ’ｒｒ、ｇチャネルの応答データから推定したＬＴ行列Ｔ’ｇｇ、ｂチャネルの応答データから推定したＬＴ行列Ｔ’ｂｂが得られる。そして、ＬＴ行列推定部２８は、これらのＬＴ行列を映像ＤＢ４０に格納する。
【００７３】
カラー混合行列生成部３０は、ＬＴ行列推定部２８により推定されたｒｇｂの色成分α毎のＬＴ行列に基づいて、カメラ応答のｉ番目の画素の各々に対し、カメラ応答のｉ番目の画素と対応関係を有する照明画像のｊ番目の画素の各々についての、ｒｇｂの色成分α毎のＬＴ行列の要素を含む、ｒｇｂの色成分α及び照明画像のｒｇｂの色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントする。
【００７４】
カラー混合行列生成部３０の具体的な処理について以下に説明する。カラー混合行列生成部３０が処理を開始すると、まずＬＴ行列推定部２８で指定したＭ×Ｍのカメラ応答の各画素に関する輝度分配テーブルを初期化する（全てのテーブル値を０にセットする）。次に、Ｎ×Ｎの照明画像の各画素に関する輝度調整テーブルも初期化する（全てのテーブル値を０にセットする）。輝度分配テーブルとは１つのカメラ応答の画素が１つ又は２つ以上の照明画像の画素とＬＴの関係で結びつく回数を表し、輝度調整テーブルとは、１つの照明画像の画素が１つ又は２つ以上のカメラ応答の画素とＬＴの関係で結びつく回数を表す。テーブルの例としては、特定の形式である必要はなく、輝度分配テーブルでは、カメラ応答の画素を指標にして、照明画像の画素と結びつく回数を記録するだけのデータ形式を用意すればよく、輝度調整テーブルでは、照明画像の画素を指標にして、カメラ応答の画素と結びつく回数を記録するだけのデータ形式を用意すればよい。なお、ＬＴ行列は、縦方向がカメラ応答の画素の配置を表し、横方向が照明画像の画素の配置を表す行列形式である。
【００７５】
次に、カラー混合行列生成部３０は、カラー混合行列Ｖ’ｉｊを生成する。ここで、カラー混合行列Ｖ’ｉｊの生成の原理について説明する。一般的に、任意の照明画像Ｐ’を構成する照明画像の画素のｒｇｂの輝度値Ｐｒｊ，Ｐｇｊ，Ｐｂｊから、その観測画像Ｃ’を構成するカメラ応答の画素のｒｇｂ輝度値Ｃｒｉ，Ｃｇｉ，Ｃｂｉは、行列Ｔ’を用いて図４の行列演算で表現することができる。図４の行列Ｔ’は、９つのＬＴ行列、すなわち、Ｔ’αβ，α＝｛ｒ，ｇ，ｂ｝，β=｛ｒ，ｇ，ｂ｝から構成される。本実施の形態では、白色照明を使ってＬＴ行列Ｔ’ｒｒ、Ｔ’ｇｇ、Ｔ’ｂｂだけを求めるため、Ｔ’＝０、α≠βを用意しておく。
【００７６】
例として、ＬＴ行列によりカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）が複数の照明画像の画素Ｐ’ｊ＝（Ｐｒｊ，Ｐｇｊ，Ｐｂｊ)，Ｐ’ｊ∈Ωｉとが結びつくとする。Ωｉは、カメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）とＬＴの関係にある複数の照明画像の画素Ｐ’ｊ＝（Ｐｒｊ，Ｐｇｊ，Ｐｂｊ）の集合を意味する。図４では、縦の破線は照明画像の画素Ｐ’ｊ＝（Ｐｒｊ，Ｐｇｊ，Ｐｂｊ)と結びつくＬＴ行列の要素を示しており、横の破線はカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）と結びつくＬＴ行列の要素を示している。縦の破線と横の破線が交差する網掛けのＬＴ行列の要素が、照明画像の画素Ｐ’ｊ＝（Ｐｒｊ，Ｐｇｊ，Ｐｂｊ)とカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）を直接に結びつける行列要素になる。そこで、ＬＴ行列Ｔ’αβ，α＝｛ｒ，ｇ，ｂ｝，β=｛ｒ，ｇ，ｂ｝において、色成分α及び色成分βの組み合わせの各々に対する、カメラ応答のｉ番目の画素と照明画像のｊ番目の画素とに関わる要素だけを取り出して、以下（９）式により３×３のカラー混合行列Ｖ’ｉｊを再形成することができる。
【００７７】
【数１４】
0006373221.tif 000015
【００７８】
そして、上記（９）式の行列Ｖ’ｉｊを用いて、カメラ応答の画素Ｃ’ｉを以下（１０）式によりの線形結合で表現することができる。
【００７９】
【数１５】
0006373221.tif 000016
【００８０】
以上の原理に基づいて、カラー混合行列生成部３０は、カラー混合行列Ｖ’ｉｊを生成する。まず、カラー混合行列生成部３０は、ＬＴ行列Ｔ’ｒｒ、Ｔ’ｇｇ、及びＴ’ｂｂを映像ＤＢ４０から読み出す。そして、それぞれのＬＴ行列においてカメラ座標Ｃ’ｉを指定して、指定したカメラ応答の画素Ｃ’ｉについて、その横方向に記録された全てのプロジェクタ座標において非零の要素を検出する。図４のＬＴの関係であるとして、ｉ番目のカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）を指定したときに、ｊ番目の画素Ｐ’ｊ＝（Ｐ’ｒｊ，Ｐ’ｇｊ，Ｐ’ｂｊ）に対応する要素から非零の要素が検出されると、ＬＴ行列Ｔ’αβ、α＝｛ｒ、ｇ、ｂ｝、β＝｛ｒ、ｇ、ｂ｝から、対応する９つの行列要素を抽出し、上記（９）式のカラー混合行列Ｖ’ｉｊを生成する。次に、カラー混合行列Ｖ’ｉｊの行列式ｄｅｔ（Ｖ’ｉｊ）を計算し、ｄｅｔ(Ｖ’ｉｊ)≠０であるときカラー混合行列Ｖ’ｉｊの逆行列が存在するとして、以下（１１）式のカラー混合行列の逆行列Ｖ’ｉｊ−１を求める。
【００８１】
【数１６】
0006373221.tif 000017
【００８２】
このとき、輝度分配テーブルのｉ番目のカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）を示す欄に１票を投じ、同時に、輝度調整テーブルの照明画像のｊ番目の画素Ｐ’ｊ＝（Ｐ’ｒｊ，Ｐ’ｇｊ，Ｐ’ｂｊ）を示す欄に１票を投じる。輝度分配テーブルの投票値は、（１０）式の線形結合において、カメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）に対し、ＬＴの関係にある複数の照明画像の画素Ｐ’ｊ＝（Ｐ’ｒｊ，Ｐ’ｇｊ，Ｐ’ｂｊ）の個数をカウントして得た値である。一方、輝度調整テーブルの投票値は、照明画像の画素Ｐ’ｊ＝（Ｐ’ｒｊ，Ｐ’ｇｊ，Ｐ’ｂｊ）がカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）とＬＴの関係で結びつく個数をカウントして得た値である。また、行列Ｖ’ｉｊの行列式ｄｅｔ(Ｖ’ｉｊ) ＝０である場合は、その逆行列は計算できないとして、データを破棄して、ｉ番目のカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）を指定したときに非零の要素が検出される、次の照明画像の画素に対する処理へ移行する。以上述べたように、ＬＴ行列における全てのカメラ座標におけるカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）について、カラー混合行列の関係で結び付く全てのプロジェクタ座標における照明画像の画素Ｐ’ｊに関して、カラー混合行列の逆行列Ｖ’ｉｊ−１、輝度分配テーブルの投票結果、並びに、輝度調整テーブルの投票結果を映像ＤＢ４０に保存する。
【００８３】
輝度補償処理部３２は、第１の処理として、入力された画像（以下、所定画像と称する）を得るためにプロジェクタ１２から出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、映像ＤＢ４０の輝度分配テーブルに格納されているカメラ応答のｉ番目の画素と対応関係を有する照明画像のｊ番目の画素に対してカウントされた照明画像の画素の個数Ｍ’ｊと、所定画像のｉ番目の画素と、映像ＤＢ４０の輝度調整テーブルに格納されているカメラ応答のｉ番目の画素に対してカウントされたカメラ応答の画素の個数Ｎｉと、カラー混合行列生成部３０により求められた、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償する。なお、所定画像は、予め被写体を撮影した未補償の画像であり、映像ＤＢ４０に格納しておくものとする。また、以下の説明では１枚の所定画像に対して処理を行う場合を例に説明するが、複数の所定画像に対して処理を行ってもよい。
【００８４】
また、輝度補償処理部３２は、第２の処理として、補償された投影画像、又は前回更新された投影画像をプロジェクタ１２から出力させてカメラにより撮影することにより得られた観測画像のｉ番目の画素の各々についての、所定画像のｉ番目の画素との誤差が、予め定められた条件を満たすまで、観測画像のｉ番目の画素の各々について、輝度分配テーブルに格納されている、ｉ番目の画素と対応関係を有する照明画像のｊ番目の画素に対する個数Ｍｊと、所定画像のｉ番目の画素についての誤差と、輝度調整テーブルに格納されたカメラ応答のｉ番目の画素に対する個数Ｎｉと、カラー混合行列生成部３０により求められた、ｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を繰り返し更新する。
【００８５】
輝度補償処理部３２は、具体的には、以下に説明する第１の処理及び第２の処理を行う。
【００８６】
まず、輝度補償処理部３２における第１の処理における輝度の補償の原理について説明する。ここでは、カラー混合行列生成部３０で得たカラー混合行列の逆行列Ｖ’ｉｊ−１を用いて、映像ＤＢ４０から取り出した所定画像の各画素の輝度を補償して被写体へ投影するのが、主な処理内容である。本処理では、説明の便宜上、カラー混合行列の逆行列Ｖ’ｉｊ−１、輝度分配テーブルの投票結果Ｎｉ、及び輝度調整テーブルの投票結果Ｍｊを総称して補償パラメータとする。
【００８７】
本実施の形態では、カメラで観測したときの各画素の画素値を所定画像の画素値にするように補償する処理において、上記非特許文献３で公開されているカラー混合行列（color-mixing matrix）を使った輝度補償の方法を利用する。プロジェクタ１２から出力される照明以外の照明が被写体に照射されている一般的な状況では、上記（１０）式の関係は、カメラ応答の輝度Ｃ’ｉと投影画像の輝度Ｐ’ｊにおいて、以下（１２）式のように表すことができる。
【００８８】
【数１７】
0006373221.tif 000018
【００８９】
ここで、Ｆ’ｉはブラックオフセット光（黒の画像をプロジェクタから投影したときに放出される微弱な投影光）を含む環境光の成分を表す。各画素のＦ’ｉは、任意の環境照明の下で、黒の画像をプロジェクタから投影してカメラで観測すれば容易に得ることができる。
【００９０】
輝度補償の処理とは、上記（１２）式に基づいて、カメラ応答のｉ番目の画素Ｃ’ｉの各々について、ＬＴの関係で結びつく投影画像の画素の輝度Ｐ’ｊを等分配則により決定する。具体的には、所定画像の画素Ｃ’ｉが与えられると、その輝度から環境光の成分を差し引いた後、ＬＴの関係で結びつく補償パラメータ、すなわち、カラー混合行列の逆行列Ｖ’ｉｊ−１を用いて、以下（１３）により投影画像の画素の輝度Ｐ’ｊ(i)を算出する。
【００９１】
【数１８】
0006373221.tif 000019
【００９２】
上記（１３）式において、Ｎｉは、映像ＤＢ４０の輝度分配テーブルにおけるカメラ応答のｉ番目の画素を示す欄の投票結果である。ここで、投票数がＮｉ＝０のときは上記（１３）式において、Ｐ’ｊ(i)＝０と設定する。一方、映像ＤＢ４０の輝度調整テーブルにおいて照明画像のｊ番目の画素を示す欄の投票数がＭｊ＞１であるとき、当該照明画像の画素は複数のカメラ応答の画素とＬＴの関係にある。この場合、上記（１３）式により、複数のカメラ応答の画素の輝度Ｃ’ｉからそれぞれの投影画像の画素の輝度補償値が算出されることになる。例えば、上記（１３）式により、Ｍｊ個のカメラ応答の画素から照明画像の輝度
【００９３】
【数１９】
0006373221.tif 000020
【００９４】
が算出されるとする。複数のプロジェクタ輝度の不整合を解消するため、以下（１４）式に示す平均化により、照明画像の輝度を統一することにより補償する。
【００９５】
【数２０】
0006373221.tif 000021
【００９６】
上記の輝度補償の原理に基づいて、輝度補償処理部３２は第１の処理を行う。第１の処理において、まず、全ての補償パラメータを読み出す。次に、映像ＤＢ４０から所定画像を読み出して、全ての投影画像の画素を初期化する（Ｐ’ｊ＝０）。
【００９７】
そして、カメラ応答の各画素を処理対象として、以下の処理を繰り返す。
【００９８】
処理対象のｉ番目の画素について、映像ＤＢ４０の輝度分配テーブルを参照して投影画像の画素への分配数である個数Ｎｉを得る。次に、カメラ応答の画素に対してＬＴの関係で結びつく照明画像のｊ番目の画素の各々について、映像ＤＢ４０の輝度調整テーブルを参照して、カメラ応答の画素との結合数である個数Ｍｊを得る。次に以下（１５）式の計算に従って、所定画像のｉ番目の画素Ｃ’ｉを用いて、投影画像の画素Ｐ’ｊの輝度を調整する。なお、環境光ベクトルＦ’ｉは、カメラ応答観測部２６の処理において、背景差分に用いた背景画像を利用すればよい。
【００９９】
【数２１】
0006373221.tif 000022
【０１００】
上記（１５）式によれば、複数の照明画像の画素と複数のカメラ応答の画素がＬＴの関係で幾何的に対応付けられることを前提にして投影画像の各画素の輝度を補償することができる。このように、第１の処理により、全てのカメラ応答の画素に対して、照明画像の画素Ｐ’ｊの輝度を補償する処理を行う。
【０１０１】
次に輝度補償処理部３２の第２の処理について説明する。第２の処理では、まず、第１の処理で補償された照明画像の画素Ｐ’ｊから構成される補償画像をプロジェクタ１２から被写体へ投影する。続いて、カメラ１０によりその投影画像を観測して、所定画像のｉ番目の画素Ｃ’ｉとその観測画像のｉ番目の画素Ｃ’ｉ（ｔ）との間の輝度の誤差ΔＣ’ｉ（ｔ）を以下（１６）式により検出する。
【０１０２】
【数２２】
0006373221.tif 000023
【０１０３】
上記（１６）式では回数ｔを状態の変化を表す指標として用いており、Ｃ’ｉ（ｔ）はプロジェクタ１２から補償画像が投影された回数ｔに対するカメラ１０による観測画像のｉ番目の画素である。この表記に伴い、上記（１５）式により算出した投影画像の各画素Ｐ’ｊの輝度を時刻ｔ＝０の初期状態Ｐ’ｊ（０）とする。このとき、観測画像の画素Ｃ’ｉの全ての輝度誤差が、以下（１７）式を満たして所定の許容値δ以内である場合、本処理を停止する。
【０１０４】
【数２３】
0006373221.tif 000024
【０１０５】
ここで、δはシステムの環境に応じてユーザの要望に応じて自由に設定してよいパラメータである。ここで、輝度誤差ΔＣ’ｉ（ｔ） が所定の許容値δ以上である場合は、フィードバックとなる投影画像の輝度ΔＰ’ｊ(t) を初期化（ΔＰ’ｊ(t) ＝０）しておき、上記（１５）式と同様に、回数ｔにおける観測画像に関する投影画像の画素Ｐ’ｊに対してフィードバックする輝度を、以下（１８）式により算出する。
【０１０６】
【数２４】
0006373221.tif 000025
【０１０７】
続いて、現在の回数ｔにおいてプロジェクタ１２から出力する投影画像の各画素値がＰ’ｊ（ｔ） のとき、次の回数ｔ＋１においてプロジェクタ１２から出力する投影画像の各画素Ｐ’ｊ（ｔ ＋ １）の輝度を以下（１９）式により更新する。
【０１０８】
【数２５】
0006373221.tif 000026
【０１０９】
上記（１９）式では、以下（２０）式のゲイン行列Ｇ’を用いられる。
【０１１０】
【数２６】
0006373221.tif 000027
【０１１１】
ここで、パラメータκは０＜κ＜１の任意の値であり、本実施の形態ではκ＝０．２と設定する。
【０１１２】
以上のように、輝度補償処理部３２の第２の処理においては、反復的な輝度補償を、観測画像の画素Ｃ’ｉの全ての輝度誤差が（１７）式を満たすまで繰り返す。
【０１１３】
＜本発明の第１の実施の形態に係る画像投影装置の作用＞
【０１１４】
次に、本発明の第１の実施の形態に係る画像投影装置１００の作用について説明する。まず、同期制御処理ルーチンについて説明する。
【０１１５】
図５に示す、ステップＳ１００では、フレーム番号ｆの値を１に初期化する。
【０１１６】
次に、ステップＳ１０２では、カメラ応答観測部２６から応答信号を受信したか否かを判定する。応答信号を受信した場合には、ステップＳ１０４へ移行し、応答信号を受信しない場合には、ステップＳ１０２の処理を繰り返す。
【０１１７】
次に、ステップＳ１０４では、ステップＳ１００又はステップＳ１０８において取得したフレーム番号ｆを照明画像生成部２４及びカメラ応答観測部２６に送出する。
【０１１８】
次に、ステップＳ１０６では、フレーム番号ｆの値が２Ｌの値か否かを判定する。フレーム番号ｆの値が２Ｌである場合には、同期制御処理ルーチンを終了し、フレーム番号ｆの値が２Ｌよりも小さい場合には、ステップＳ１０８へ移行する。
【０１１９】
ステップＳ１０８では、フレーム番号ｆの値に１を加えた値をフレーム番号ｆの値として設定し、ステップＳ１０２へ移行して、ステップＳ１０２〜ステップＳ１０６の処理を繰り返す。
【０１２０】
次に、図６に示す、照明画像生成処理ルーチンについて説明する。
【０１２１】
まず、ステップＳ２００では、縦横ラインの照明画像を投影する照明対象領域をＮ×Ｎ画素と設定する。
【０１２２】
次に、ステップＳ２０２では、縦ライン及び横ラインの照明の幅ｎを設定する。
【０１２３】
次に、ステップＳ２０４では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ２０６へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ２０４の処理を繰り返す。
【０１２４】
次に、ステップＳ２０６では、ステップＳ２０４において取得したフレーム番号ｆの値がＬより大きいか否かを判定する。フレーム番号ｆがＬ以下である場合には、ステップＳ２０８へ移行し、フレーム番号ｆがＬより大きい場合には、ステップＳ２１２へ移行する。
【０１２５】
次に、ステップＳ２０８では、フレーム番号ｆに対応する縦ライン照明を照射するための照明画像を設定する。
【０１２６】
次に、ステップＳ２１０では、ステップＳ２０８において設定した縦ライン照明画像を、ステップＳ２０４において取得したフレーム番号ｆと対応させて映像ＤＢ４０に記憶する。
【０１２７】
ステップＳ２１２では、フレーム番号ｆに対応する横ライン照明を照射するための照明画像を設定する。
【０１２８】
次に、ステップＳ２１４では、ステップＳ２１２において設定した横ライン照明画像を、ステップＳ２０４において取得したフレーム番号ｆと対応させて映像ＤＢ４０に記憶する。
【０１２９】
ステップＳ２１６では、ステップＳ２０８又はステップＳ２１２において設定した縦ライン照明画像又は横ライン照明画像をプロジェクタ１２から出力する。
【０１３０】
次に、ステップＳ２１８では、ステップＳ２０４において取得したフレーム番号ｆの値が２Ｌであるか否かを判定する。フレーム番号ｆの値が２Ｌである場合には、照明画像生成処理ルーチンを終了し、フレーム番号ｆの値が２Ｌより小さい場合には、ステップＳ２０４へ移行し、ステップＳ２０４〜ステップＳ２１８の処理を繰り返す。
【０１３１】
次に、図７に示す、カメラ応答観測処理ルーチンについて説明する。
【０１３２】
まず、ステップＳ３００では、カメラ１０において観測する範囲をＭ×Ｍ画素の範囲に設定する。
【０１３３】
次に、ステップＳ３０２では、カメラ応答に対する所定の閾値を設定する。
【０１３４】
次に、ステップＳ３０４では、映像ＤＢ４０に記憶されている背景画像を読み込む。
【０１３５】
次に、ステップＳ３０６では、同期制御部２２へ応答信号を送信する。
【０１３６】
次に、ステップＳ３０８では、同期制御部２２からフレーム番号ｆを受信したか否かを判定する。フレーム番号ｆを受信した場合には、ステップＳ３１０へ移行し、フレーム番号ｆを受信していない場合には、ステップＳ３０８の処理を繰り返す。
【０１３７】
次に、ステップＳ３１０では、カメラ１０の状態をチェックする。
【０１３８】
次に、ステップＳ３１２では、ステップＳ３１０において取得したカメラ１０の状態が、撮影可能状態であるか否かを判定する。カメラ１０が撮影可能状態である場合には、ステップＳ３１４へ移行し、カメラ１０が撮影可能状態でない場合には、ステップＳ３１０へ移行する。
【０１３９】
次に、ステップＳ３１４では、カメラ１０から観測画像を取得する。
【０１４０】
次に、ステップＳ３１６では、色成分α毎に、ステップＳ３０４において取得した背景画像と、ステップＳ３１４において取得した観測画像との背景差分を取得する。
【０１４１】
次に、ステップＳ３１８では、色成分α毎に、ステップＳ３０２において取得した閾値と、ステップＳ３１６において取得した背景差分とから、カメラ応答の画素の各々を検出する。
【０１４２】
次に、ステップＳ３２０では、ステップＳ３１８において色成分α毎に取得したカメラ応答の画素の各々の輝度値を応答データとして、ステップＳ３０８において取得したフレーム番号ｆと対応づけて映像ＤＢ４０に記憶する。
【０１４３】
次に、ステップＳ３２２では、ステップＳ３０８において取得したフレーム番号ｆの値が２Ｌであるか否かを判定する。フレーム番号ｆの値が２Ｌである場合には、カメラ応答観測処理ルーチンを終了し、フレーム番号ｆの値が２Ｌよりも小さい場合には、ステップＳ３０６へ移行し、ステップＳ３０６〜ステップＳ３２２の処理を繰り返す。
【０１４４】
次に、図８に示す、ＬＴ行列推定処理ルーチンについて説明する。
【０１４５】
まず、ステップＳ４００では、フレーム番号毎に生成された照明画像に基づいて、上記（４）式に従ってセンシング行列Φ’を算出する。
【０１４６】
次に、ステップＳ４０２では、上記（７）式におけるパラメータεを、ε＝０．０１と設定する。
【０１４７】
次に、ステップＳ４０４では、カウンタｉをｉ＝１に初期化する。
【０１４８】
次に、ステップＳ４０６では、カウンタｉの値に基づいて、カメラ応答のｉ番目の画素を指定する。
【０１４９】
次に、ステップＳ４０８では、ステップＳ４０６で指定されたカメラ応答のｉ番目の画素について、映像ＤＢ４０に格納されたカメラ応答データを読み出して、色成分αに対する応答ベクトルｖ’ｉを生成する。
【０１５０】
次に、ステップＳ４１０では、カメラ応答のｉ番目の画素について、ステップＳ４００で算出したセンシング行列Φ’と、ステップＳ４０８で生成した応答ベクトルｖ’ｉとに基づいて、上記（７）式を満たす、色成分αに対するＬＴベクトルｕ’ｉを復元する。
【０１５１】
次に、ステップＳ４１２では、カメラ応答のｉ番目の画素について、予め用意されたＭ２×Ｎ２の行列バッファＴ’αβ，（α＝β）に対し、上記（８）式に従って、ｊ番目の行にＬＴベクトルの転置ｕ’Ｔｊを代入し、ＬＴ行列を構築し、映像ＤＢ４０に保存する。
【０１５２】
次に、ステップＳ４１４では、ｉがＭ２であるかを判定し、Ｍ２であればステップＳ４１８へ移行し、Ｍ２でなければステップＳ４１６へ移行する。
【０１５３】
次に、ステップＳ４１６では、カウンタｉをｉ＝ｉ＋１とカウントアップして、ステップＳ４０６へ移行する。
【０１５４】
次に、ステップＳ４１８では、全ての色成分αについてステップＳ４０４〜ステップＳ４１４までの処理を終了したか否かを判定する。全ての色成分αについてステップＳ４０４〜ステップＳ４１４までの処理を終了している場合には、ＬＴ行列推定処理ルーチンを終了し、全ての色成分αについてステップＳ４０４〜ステップＳ４１４までの処理を終了していない場合には、対象となる色成分αを変更し、ステップＳ４０４へ移行する。なお、対象となる色成分αは、赤色、緑色、青色の順に変更される。
【０１５５】
次に、図９に示す、カラー混合行列生成処理ルーチンについて説明する。
【０１５６】
まず、ステップＳ５００では、輝度分配テーブルの全てのテーブル値を０にセットし、初期化する。
【０１５７】
次に、ステップＳ５０２では、輝度調整テーブルの全てのテーブル値を０にセットし、初期化する。
【０１５８】
次に、ステップＳ５０４では、映像ＤＢ４０からＬＴ行列Ｔ’ｒｒ、Ｔ’ｇｇ、及びＴ’ｂｂを読み込む。
【０１５９】
次に、ステップＳ５０６では、カウンタｉをｉ＝１に初期化する。
【０１６０】
次に、ステップＳ５０８では、カウンタｉの値に基づいて、カメラ応答のｉ番目の画素を指定する。
【０１６１】
次に、ステップＳ５１０では、ステップＳ４０６で指定されたカメラ応答のｉ番目の画素について、その横方向に記録された全ての照明画像の画素に対するプロジェクタ座標において非零の要素を検出する。
【０１６２】
ステップＳ５１１では、ステップＳ５１０で非零の要素が検出された照明画像の画素から、カメラ応答のｉ番目の画素と結びつく照明画像のｊ番目の画素を１つ選択する。
【０１６３】
次に、ステップＳ５１２では、カメラ応答のｉ番目の画素と、ステップＳ５１１で選択された照明画像のｊ番目の画素との組み合わせについて、ＬＴ行列Ｔ’αβ、α＝｛ｒ、ｇ、ｂ｝、β＝｛ｒ、ｇ、ｂ｝から、対応する９つの行列要素を抽出し、上記（９）式のカラー混合行列Ｖ’ｉｊを生成する。
【０１６４】
次に、ステップＳ５１４では、ステップＳ５１２で計算されたカラー混合行列Ｖ’ｉｊの行列式ｄｅｔ（Ｖ’ｉｊ）を計算し、ｄｅｔ(Ｖ’ｉｊ)≠０であるかを判定する。ｄｅｔ(Ｖ’ｉｊ)≠０であれば、ステップＳ５１８へ移行し、ｄｅｔ(Ｖ’ｉｊ)≠０でなければステップＳ５１６へ移行する。
【０１６５】
次に、ステップＳ５１６では、ステップＳ５１２で抽出された行列要素を破棄し、ステップＳ５１１へ移行して、次の非零の要素が検出された照明画像の画素を選択する。
【０１６６】
次に、ステップＳ５１８では、輝度分配テーブルのｉ番目のカメラ応答の画素Ｃ’ｉ＝（Ｃｒｉ，Ｃｇｉ，Ｃｂｉ）を示す欄に投票する。
【０１６７】
次に、ステップＳ５２０では、輝度調整テーブルの照明画像のｊ番目の画素Ｐ’ｊ＝（Ｐ’ｒｊ，Ｐ’ｇｊ，Ｐ’ｂｊ）を示す欄に投票する。
【０１６８】
ステップＳ５２２では、ステップＳ５１２で計算されたステップＳ５１２で計算されたカラー混合行列Ｖ’ｉｊの逆行列を計算し、補償パラメータとして映像ＤＢ４０に保存する。
【０１６９】
ステップＳ５２３では、ステップＳ５１０で非零の要素が検出された照明画像の全ての画素について、ステップＳ５１１〜ステップＳ５２２の処理を実行したか否かを判定する。ステップＳ５１１〜ステップＳ５２２の処理を実行していない、非零の要素が検出された照明画像の画素が存在する場合には、ステップＳ５１１へ戻る。一方、ステップＳ５１０で非零の要素が検出された照明画像の全ての画素について、ステップＳ５１１〜ステップＳ５２２の処理を実行した場合には、ステップＳ５２４へ進む。
【０１７０】
次に、ステップＳ５２４では、ｉがＭ２であるかを判定し、Ｍ２であれば処理を終了し、Ｍ２でなければステップＳ５２６へ移行する。
【０１７１】
次に、ステップＳ５２６では、カウンタｉをｉ＝ｉ＋１とカウントアップして、ステップＳ５０８へ移行する。
【０１７２】
次に、図１０及び図１１に示す、輝度補償処理ルーチンについて説明する。
【０１７３】
まず、ステップＳ６００では、映像ＤＢ４０から補償パラメータを読み込む。
【０１７４】
次に、ステップＳ６０２では、映像ＤＢ４０から所定画像を読み込む。
【０１７５】
次に、ステップＳ６０４では、ステップＳ６０２で読み込んだ所定画像に対する、全ての投影画像の画素をＰ’ｊ＝０と初期化する。
【０１７６】
次に、ステップＳ６０６では、カウンタｉをｉ＝１に初期化する。
【０１７７】
次に、ステップＳ６０８では、カウンタｉの値に基づいて、処理対象となるカメラ応答のｉ番目の画素を指定する。
【０１７８】
次に、ステップＳ６１０では、カメラ応答の処理対象のｉ番目の画素について、ステップＳ６００で読み込んだ補償パラメータのうちの輝度分配テーブルを参照して投影画像の画素への分配数である個数Ｎｉを取得する。
【０１７９】
次に、ステップＳ６１２では、カメラ応答のｉ番目の画素に対してＬＴの関係で結びつく照明画像の各画素Ｐ’ｉについて、ステップＳ６００で読み込んだ補償パラメータのうちの輝度調整テーブルを参照して、カメラ応答の画素との結合数である個数Ｍｊを取得する。
【０１８０】
次に、ステップＳ６１４では、カメラ応答のｉ番目の画素に対してＬＴの関係で結びつく照明画像の各画素Ｐ’ｉについて、ステップＳ６１０で取得した個数Ｎｉ及びステップＳ６１２で取得した個数Ｍｊを用いて、上記（１５）式に従って、投影画像の画素Ｐ’ｊの輝度を調整する。
【０１８１】
次に、ステップＳ６１６では、ｉがＭ２であるかを判定し、Ｍ２であればステップＳ６２０へ移行し、Ｍ２でなければステップＳ６１８へ移行する。
【０１８２】
次に、ステップＳ６１８では、カウンタｉをｉ＝ｉ＋１とカウントアップして、ステップＳ６０８へ移行する。
【０１８３】
次に、ステップＳ６２０では、回数ｔをｔ＝１に初期化する。
【０１８４】
次に、ステップＳ６２４では、ステップＳ６１２で調整され、又はステップＳ６３４で更新された投影画像をプロジェクタ１２から被写体へ投影する。
【０１８５】
次に、ステップＳ６２６では、ステップＳ６２４で投影されたｔ回目の投影画像の観測画像を取得する。
【０１８６】
次に、ステップＳ６２８では、ｉ番目の画素の各々について、所定画像のｉ番目の画素Ｃ’ｉと、ステップＳ６２６で取得した観測画像のｉ番目の画素Ｃ’ｉ（ｔ）との間の輝度の誤差ΔＣ’ｉ（ｔ）を以下（１６）式により検出する。
【０１８７】
次に、ステップＳ６３０では、ステップＳ６２８で検出された全ての画素についての誤差ΔＣ’ｉ（ｔ）が、上記（１７）式を満たして所定の許容値δ以内であるかを判定し、許容値δ以内であれば、輝度補償処理ルーチンを終了し、少なくとも１つの画素についての誤差ΔＣ’ｉ（ｔ）が許容値δ以内でなければステップＳ６３１へ移行する。
【０１８８】
次に、ステップＳ６３１では、カウンタｉをｉ＝１に初期化する。
【０１８９】
次に、ステップＳ６３２では、カウンタｉの値に基づいて、カメラ応答のｉ番目の画素を指定する。
【０１９０】
次に、ステップＳ６３３では、カメラ応答のｉ番目の画素に対してＬＴの関係で結びつく投影画像の各画素Ｐ’ｉに対してフィードバックする輝度を、上記（１８）式により算出する。
【０１９１】
次に、ステップＳ６３４では、ステップＳ６３３により算出した輝度を反映して、次の回数ｔ＋１においてプロジェクタ１２から出力する投影画像の各画素Ｐ’ｊ（ｔ ＋ １）の輝度を上記（１９）式により更新する。
【０１９２】
次に、ステップＳ６３８では、ｉがＭ２であるかを判定し、Ｍ２であればステップＳ６４２へ移行し、Ｍ２でなければステップＳ６４０へ移行する。
【０１９３】
次に、ステップＳ６４０では、カウンタｉをｉ＝ｉ＋１とカウントアップして、ステップＳ６３２へ移行する。
【０１９４】
次に、ステップＳ６４２では、回数ｔをｔ＝ｔ＋１とカウントアップして、ステップＳ６２４へ移行する。
【０１９５】
以上説明したように、本発明の第１の実施の形態に係る画像投影装置によれば、フレーム番号毎に、プロジェクタから照明画像を出力させ、カメラにより撮影した観測画像の各々について、カメラ応答の色成分α毎に、カメラ応答の画素Ｃαｉを検出し、フレーム番号毎の照明画像と、カメラ応答の画素Ｃαｉの各々とに基づいて、ＬＴ行列を推定し、ＬＴ行列に基づいて、色成分α及び照明画像の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントし、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、カウントされた照明画像の画素の個数Ｍｊと、入力された画像のｉ番目の画素と、カウントされたカメラ応答の画素の個数Ｎｉと、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償することにより、効率よく、投影画像の輝度を補償できる。
【０１９６】
また、本発明の第１の実施の形態に係る画像投影装置によれば、輝度補償により処理することにより、任意被写体表面に投影された各プロジェクタ画素に応じてその輝度を柔軟に調整することができる。
【０１９７】
また、本発明の第１の実施の形態に係る画像投影装置によれば、プロジェクタ照明とそのカメラ応答から効率的にＬＴを計測し、スパースかつ巨大サイズのＬＴ行列の逆行列を計算することを回避して、平面スクリーンへの画像投影と同様に、被写体投影の幾何歪みが無く、投影輝度が補償された高品質な画像を投影できる。
【０１９８】
＜第２の実施の形態に係る画像投影装置の概要＞
【０１９９】
次に、第２の実施の形態に係る画像投影装置２００の概要について説明する。本来、赤、緑、及び青のスペクトルは、可視光の波長帯において分布しているため、プロジェクタ・カメラシステムでは、プロジェクタとカメラ間のカラー混合（color mixing あるいはcrosstalk）が発生する場合がある。この現象は、プロジェクタ装置とカメラ装置の組み合わせに依存する。第２の実施の形態では、カラー混合を無視できないプロジェクタ・カメラシステムを用いたとき、図１２の処理構成においてｒｇｂ原色のカラー照明を用いて被写体を投影し、そのカメラ応答画像を観測してＬＴ行列を推定する。第２の実施形態では、説明の便宜上、ｒｇｂ原色のカラー照明のいずれかを色成分β，β∈｛ｒ，ｇ，ｂ｝のプロジェクタ照明と呼び、観測したカメラ画像のｒｇｂのカラー応答のいずれかを色成分α，α∈｛ｒ，ｇ，ｂ｝のカメラ応答と呼ぶ。第２の実施の形態ではカラー照明を用いて、そのカメラ応答画像から圧縮センシング手法によりＴ’αβ，（α＝β）を推定するだけではなく、カラー混合に相当するＴ’αβ，（α≠β）も推定する。
【０２００】
＜本発明の第２の実施の形態に係る画像投影装置の構成＞
【０２０１】
次に、本発明の第２の実施の形態に係るリライティング画像生成装置の構成について説明する。図１２に示すように、画像投影装置２００は、カメラ２１０と、プロジェクタ２１２と、演算部２２０と、出力部９０と、を含んで構成されている。
【０２０２】
カメラ２１０は、プロジェクタ２１２により投影された、各色成分βの照明画像を観測し、色値を表すｒｇｂ値を取得し、カメラ応答観測部２２６に出力する。
【０２０３】
プロジェクタ２１２は、各色成分βの照明画像の各々を用いて、照明画像生成部２２４による出力指示に従って被写体を投影する。
【０２０４】
演算部２２０は、同期制御部２２２と、照明画像生成部２２４と、カメラ応答観測部２２６と、ＬＴ行列推定部２２８と、カラー混合行列生成部２３０と、輝度補償処理部３２と、映像ＤＢ２４０とを含んで構成されている。
【０２０５】
同期制御部２２２は、フレーム番号毎に、プロジェクタ２１２から照明を照射させ、照射された照明をカメラ２１０により撮影するように制御する。具体的には、まず、プロジェクタ２１２から投影される特定の照明画像を表すフレーム番号ｆをｆ＝１に初期化する。次に、カメラ応答観測部２２６からの応答信号を待ち、当該応答信号を受信すると、照明画像生成部２２４と、カメラ応答観測部２２６とへフレーム番号ｆを送出する。フレーム番号ｆを送出することにより、同じフレーム番号においてプロジェクタ２１２からの照明と、カメラの観測との同期をとる。次に、フレーム番号ｆをｆ＝ｆ＋１とカウントアップし、再び、カメラ応答観測部２２６からの応答信号を待つ。以降、プロジェクタ２１２からの照明とカメラ２１０における観測の同期をフレーム番号ｆで同期をとりながら、同様にフレーム番号ｆを照明画像生成部２２４と、カメラ応答観測部２２６とに送出を繰り返す。そして、フレーム番号ｆの値が、照明画像生成部２２４において投影する赤照明、緑照明、又は青照明の何れか１つの全ての照明画像の数の値２Ｌであるフレーム番号ｆを照明画像生成部２２４とカメラ応答観測部２２６とに送出した時点で、フレーム番号ｆをｆ＝１に初期化し、以降同様に繰り返し処理を行い、さらに、フレーム番号ｆの値が照明画像生成部２２４において投影する赤照明、緑照明、又は青照明の何れか１つの全ての照明画像の数の値２Ｌであるフレーム番号ｆを照明画像生成部２２４とカメラ応答観測部２２６とに送出した時点で、フレーム番号ｆをｆ＝１に初期化し、以降同様に繰り返し処理を行い、次の、フレーム番号ｆの値が２Ｌとなるフレーム番号ｆを送出した時点で、同期制御部２２２は、繰り返し処理を停止する。
【０２０６】
照明画像生成部２２４は、プロジェクタ２１２から投影するｒｇｂの色成分βの照明画像の照明画像を、赤照明画像、緑照明画像、及び青照明画像の順番で生成する。具体的には、同期制御部２２２からフレーム番号ｆを受信すると、当該フレーム番号ｆがｆ＜＝Ｌのとき、赤照明の縦ライン照明画像を設定し、当該フレーム番号ｆに対応する当該赤照明の縦ライン照明画像を映像ＤＢ２４０に記憶すると共に、当該赤照明の縦ライン照明画像をプロジェクタ２１２から投影させる。一方、当該フレーム番号ｆがｆ＞Ｌのとき、赤照明の横ライン照明画像を設定し、当該フレーム番号ｆに対応する当該赤照明の横ライン照明画像を映像ＤＢ２４０に記憶すると共に、当該赤照明の横ライン照明画像をプロジェクタ２１２から投影させる。照明画像生成部２２４は、同期制御部２２２から、フレーム番号ｆを受信するたびに、上記の赤照明の縦ライン照明画像又は赤照明の横ライン照明画像を設定し、全ての赤照明のライン照明画像（２Ｌ本の縦横ライン照明画像）を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。
【０２０７】
また、照明画像生成部２２４は、２回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、緑照明の縦ライン照明画像を設定し、当該フレーム番号ｆに対応する当該緑照明の縦ライン照明画像を映像ＤＢ２４０に記憶すると共に、当該緑照明の縦ライン照明画像をプロジェクタ２１２から投影させる。以後、緑照明についても上記赤照明と同様に、全ての緑照明の縦横ライン照明画像を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。また、照明画像生成部２２４は、３回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、青照明の縦ライン照明画像を設定し、当該フレーム番号ｆに対応する当該青照明の縦ライン照明画像を映像ＤＢ２４０に記憶すると共に、当該青照明の縦ライン照明画像をプロジェクタ２１２から投影させる。以後、青照明についても上記赤照明と同様に、全ての青照明の縦横ライン照明画像を順番にプロジェクタ２１２から投影し終えるまで上記処理を繰り返す。以上のように、照明画像生成部２２４は、赤照明、緑照明、及び青照明の各々について、２Ｌ本ずつ縦横ライン照明画像をプロジェクタ２１２から投影することにより、合計６Ｌ本のライン照明画像を生成する。
【０２０８】
カメラ応答観測部２２６は、カメラ２１０において観測した、プロジェクタ２１２から投影された赤照明画像、緑照明画像、及び青照明画像の照明光に対するカメラ応答を検出する。具体的には、同期制御部２２２からフレーム番号ｆを受信すると、カメラ２１０から赤照明画像の照明光に対する観測画像を取得する。次に、映像ＤＢ２４０に記憶されているプロジェクタ２１２によるプロジェクタ照明を投影していない状態の観測画像である背景画像を取得し、赤照明画像に対する観測画像と背景画像との背景差分を処理し、観測画像の各画素のｒｇｂ値の各々に基づいて、Ｒ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＲ値を赤照明に対するカメラ応答の赤の画素のＲ値として検出し、Ｇ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＧ値を赤照明に対するカメラ応答の緑の画素のＧ値として検出し、Ｂ値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のＢ値を赤照明画像に対するカメラ応答の青の画素のＢ値として検出する。次に、ｒｇｂの各色について、検出された赤照明画像に対するカメラ応答の当該色の画素の値の各々の輝度値を、赤照明画像に対する当該色の応答データとして映像ＤＢ２４０に記憶する。なお、カメラ応答観測部２２６の処理は、プロジェクタ２１２から投影される赤照明の縦ライン照明画像又は横ライン照明画像を観測したカメラ２１０における赤照明画像に対するカメラ画像から赤照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶し、全ての赤照明に対する縦ライン照明画像及び横ライン照明画像の各々についての赤照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶した時点で赤照明画像に対する処理は、終了する。
【０２０９】
カメラ応答観測部２２６は、２回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、緑照明画像に対して、上記赤照明画像に対する処理と同様に、緑照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶し、全ての緑照明に対する縦ライン照明画像及び横ライン照明画像の各々についての緑照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶した時点で緑照明に対する処理は終了する。また、カメラ応答観測部２２６は、３回目のフレーム番号ｆの値が１であるフレーム番号ｆを受信すると、青照明画像に対して、上記赤照明画像に対する処理と同様に、青照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶し、全ての青照明に対する縦ライン照明画像及び横ライン照明画像の各々についての青照明画像に対するｒｇｂの各色の応答データを映像ＤＢ２４０に記憶した時点で青照明画像に対する処理は終了する。
【０２１０】
映像ＤＢ２４０には、フレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応するｒｇｂの各色の応答データの各々と、フレーム番号ｆの各々に対応した赤照明、緑照明、及び青照明の各々に対応する縦ライン照明画像の各々又は横ライン照明画像の各々とが記憶されている。
【０２１１】
ＬＴ行列推定部２２８は、照明画像生成部に２２４より生成されたフレーム番号毎の照明画像と、カメラ応答観測部２２６により照明画像の色成分β及びカメラ応答の色成分α毎に観測されたフレーム番号毎のカメラ応答の画素Ｃαｉの各々とに基づいて、カメラ画像の色成分α及び照明画像の色成分β毎に、ＬＴ行列を推定する。
【０２１２】
ＬＴ行列推定部２２８は、具体的には、まず、上記（４）式に従ってセンシング行列Φ’を算出する。本実施形態では、赤照明画像、緑照明画像、青照明画像を用いるが、同じライン照明画像を用いるためセンシング行列Φ’は赤照明画像、緑照明画像、青照明画像で共通に使うことができる。圧縮センシングを作動させるため、上記（７）式におけるパラメータεを設定する。次に、映像ＤＢ２４０に格納された色成分βの照明に対するカメラ応答データを逐次読み出して、Ｋ（＝２Ｌ）種類のカメラ応答f｛Ｃ’１，Ｃ’２，・・・，Ｃ’Ｋ｝からｉ 番目の色成分αの要素のみを取り出して、Ｎ２次元のカメラ応答ベクトルｖ’ｉを生成する。続いて、ＲＯＭＰアルゴリズムを利用して、上記（７）式を満たすＬＴベクトルｕ’ｉを復元する。ＬＴ行列の構築では、事前にＭ２×Ｎ２の行列バッファＴ’αβを用意しておき、上記（８）式に従って、ｊ番目の行にＬＴベクトルの転置、すなわち、ｕ’Ｔｊを代入する。なお、通常のメモリサイズで用意するのではなく、スパース表現でメモリを確保し、ＬＴベクトルの非零要素のみを代入する。以上の処理を、照明画像の色成分β毎に、色成分αの全てのカメラ応答の画素ｉ＝１，２，・・・，Ｍ２について処理する。そして、Ｔ’ｒｒ、Ｔ’ｒｇ、Ｔ’ ｒｂ、Ｔ’ ｇｒ、Ｔ’ｇｇ、Ｔ’ ｇｂ、Ｔ’ｂｒ、Ｔ’ｂｇ、及びＴ’ｂｂの９つ全てのＬＴ行列Ｔ’αβ，α,β｛ｒ,ｇ,ｂ｝を映像ＤＢ２４０に格納する。
【０２１３】
カラー混合行列生成部２３０は、ＬＴ行列推定部２２８により推定されたカメラ応答の色成分α及び照明画像の色成分β毎のＬＴ行列に基づいて、カメラ応答のｉ番目の画素の各々に対し、カメラ応答のｉ番目の画素と対応関係を有する照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊを生成する。具体的な処理は、上記第１の実施の形態の画像投影装置１００のカラー混合行列生成部３０と同様である。
【０２１４】
なお、第２の実施の形態に係る画像投影装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２１５】
以上説明したように、本発明の第２の実施の形態に係る画像投影装置によれば、フレーム番号毎に、プロジェクタから各色成分βの照明画像を出力させ、カメラにより撮影した観測画像の各々について、カメラ画像の色成分α及び照明画像の色成分β毎に、カメラ応答の画素Ｃαｉを検出し、カメラ画像の色成分α及び照明画像の色成分β毎に、ＬＴ行列を推定し、ＬＴ行列に基づいて、カメラ応答のｉ番目の画素の各々に対し、カメラ応答のｉ番目の画素と対応関係を有する照明画像のｊ番目の画素についての、ｒｇｂの色成分α毎のＬＴ行列の要素を含む、色成分α及び照明画像の色成分βの組み合わせの各々に対する要素からなるカラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントし、入力された画像を得るためにプロジェクタから出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、カウントされた照明画像の画素の個数Ｍｊと、入力された画像のｉ番目の画素と、カウントされたカメラ応答の画素の個数Ｎｉと、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償することにより、効率よく、投影画像の輝度を補償できる。
【０２１６】
＜第３の実施の形態に係る画像投影装置の概要＞
【０２１７】
次に、第３の実施の形態に係る画像投影装置について説明する。
【０２１８】
第３の実施の形態においては、Ｎ台のプロジェクタと１台のカメラのマルチプロジェクタ・システムを用いている点が第１の実施の形態と異なる。なお、第１の実施の形態に係る画像投影装置１００と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第１の実施の形態と同様の処理を行う。
【０２１９】
＜本発明の第３の実施の形態に係る画像投影装置の構成＞
【０２２０】
次に、本発明の第３の実施の形態に係る画像投影装置の構成について説明する。図１３に示すように、本発明の第３の実施の形態に係る画像投影装置３００は、カメラ１０と、Ｎ台のプロジェクタ１２Ａ〜プロジェクタ１２Ｎと、演算部３２０と、出力部９０と、を含んで構成されている。
【０２２１】
カメラ１０は、切替部３４２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの何れか１つのプロジェクタにより投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部３２６に出力する。
【０２２２】
演算部３２０は、切替部３４２と、同期制御部３２２と、照明画像生成部３２４と、カメラ応答観測部３２６と、ＬＴ行列推定部３２８と、カラー混合行列生成部３３０と、輝度補償処理部３３２と、映像ＤＢ３４０とを含んで構成されている。
【０２２３】
切替部３４２は、同期制御部３２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つに切り替える。なお、第３の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ１２Ａが選択されているものとする。また、第３の実施の形態においては、切替部３４２は、スイッチや分岐装置などを利用する。また、第３の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、同期制御部３２２の切り替え指示により処理対象となるプロジェクタを切り替える。
【０２２４】
同期制御部３２２は、フレーム番号毎に、切替部３４２において切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから照明を照射させ、照射された照明をカメラ１０により撮影するように制御する。また、同期制御部３２２は、フレーム番号ｆの値が、照明画像生成部３２４において投影する全ての照明画像の数の値２Ｌであるフレーム番号ｆを照明画像生成部３２４とカメラ応答観測部３２６とに送出した時点で繰り返し処理を停止し、切替部３４２に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部３４２において処理対象となるプロジェクタが切り替えられた後に、フレーム番号ｆの値を１に初期化し、上記処理を繰り返す。
【０２２５】
照明画像生成部３２４は、切替部３４２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影する照明画面を生成する。
【０２２６】
カメラ応答観測部３２６は、カメラ１０において観測した、切替部３４２において切り替えられているプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号ｆと対応づけて当該照明光についての応答データを作成し、映像ＤＢ３４０に記憶する。
【０２２７】
映像ＤＢ３４０には、プロジェクタ毎の、フレーム番号ｆの各々に対応した応答データの各々と、フレーム番号ｆの各々に対応した縦ライン照明画像の各々又は横ライン照明画像の各々とが記憶されている。
【０２２８】
ＬＴ行列推定部３２８は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、ＬＴベクトルを推定することにより、ＬＴ行列を推定する。
【０２２９】
カラー混合行列生成部３３０は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、カラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントする。
【０２３０】
輝度補償処理部３３２は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、カメラ応答のｉ番目の画素の各々について、ＬＴの関係で結びつく投影画像のｊ番目の画素の輝度値を補償する。また、当該プロジェクタにより投影画像を投影して、カメラ応答のｉ番目の画素の各々について、ＬＴの関係で結びつく投影画像のｊ番目の画素の輝度値を繰り返し更新する。
【０２３１】
なお、第３の実施の形態に係る画像投影装置の他の構成及び作用については、第１の実施の形態と同様であるため、説明を省略する。
【０２３２】
以上説明したように、本発明の第３の実施の形態に係る画像投影装置によれば、複数のプロジェクタを用いる場合において、フレーム番号毎に、切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから照明画像を出力させ、カメラにより撮影した観測画像の各々について、カメラ応答の色成分α毎に、カメラ応答の画素Ｃαｉを検出し、フレーム番号毎の照明画像と、カメラ応答の画素Ｃαｉの各々とに基づいて、色成分α毎に、ＬＴ行列を推定し、ＬＴ行列に基づいて、カラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントし、入力された画像を得るためにプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、カウントされた照明画像の画素の個数Ｍｊと、入力された画像のｉ番目の画素と、カウントされたカメラ応答の画素の個数Ｎｉと、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償することにより、効率よく、投影画像の輝度を補償できる。
【０２３３】
＜本発明の第４の実施の形態に係る画像投影装置の構成＞
【０２３４】
次に、本発明の第４の実施の形態に係る画像投影装置の構成について説明する。図１４に示すように、本発明の第４の実施の形態に係る画像投影装置４００は、カメラ２１０と、Ｎ台のプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎと、演算部４２０と、出力部９０と、を含んで構成されている。
【０２３５】
カメラ２１０は、切替部４４２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの何れか１つのプロジェクタにより投影された各色成分αの照明画像を観測し、色値を表すｒｇｂ値を取得し、カメラ応答観測部４２６に出力する。
【０２３６】
演算部４２０は、切替部４４２と、同期制御部４２２と、照明画像生成部４２４と、カメラ応答観測部４２６と、ＬＴ行列推定部４２８と、カラー混合行列生成部４３０と、輝度補償処理部４３２と、を含んで構成されている。
【０２３７】
切替部４４２は、同期制御部４２２の切り替え指示により、処理対象となるプロジェクタをプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つに切り替える。なお、第４の実施の形態においては、１番初めの処理対象のプロジェクタとしてプロジェクタ２１２Ａが選択されているものとする。また、第４の実施の形態においては、切替部４４２は、スイッチや分岐装置などを利用する。また、第４の実施の形態においては、終了条件である全てのプロジェクタを選択するまで、同期制御部４２２の選択指示により処理対象となるプロジェクタを選択する。
【０２３８】
同期制御部４２２は、フレーム番号毎に、切替部４４２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから色成分βの照明画像を出力させ、出力された色成分βの照明画像をカメラ２１０により撮影するように制御する。
【０２３９】
照明画像生成部４２４は、切替部４４２において切り替えられたプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影する照明画像を生成する。
【０２４０】
カメラ応答観測部４２６は、カメラ２１０において観測した、切替部４４２において切り替えられているプロジェクタ２１２Ａ〜プロジェクタ２１２Ｎのうちの１つのプロジェクタから投影された照明画像に対するカメラ応答を検出し、フレーム番号ｆの各々と対応づけて照明画像に対する応答データを生成し、映像ＤＢ４４０に記憶する。
【０２４１】
映像ＤＢ４４０には、プロジェクタ毎の、フレーム番号ｆの各々に対応した色成分βの照明画像に対応する各色成分αの応答データの各々と、フレーム番号ｆの各々に対応した色成分βの縦ライン照明画像の各々又は横ライン照明画像の各々とが記憶されている。
【０２４２】
ＬＴ行列推定部４２８は、プロジェクタ毎に、第２の実施の形態と同様の処理を行って、ＬＴベクトルを推定することにより、ＬＴ行列を推定する。
【０２４３】
カラー混合行列生成部４３０は、プロジェクタ毎に、第２の実施の形態と同様の処理を行って、カラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントする。
【０２４４】
輝度補償処理部４３２は、プロジェクタ毎に、第１の実施の形態と同様の処理を行って、カメラ応答のｉ番目の画素の各々について、ＬＴの関係で結びつく投影画像のｊ番目の画素の輝度値を補償する。また、当該プロジェクタにより投影画像を投影して、カメラ応答のｉ番目の画素の各々について、ＬＴの関係で結びつく投影画像のｊ番目の画素の輝度値を繰り返し更新する。
【０２４５】
なお、第４の実施の形態に係る画像投影生成装置の他の構成及び作用については、第２の実施の形態と同様であるため、説明を省略する。
【０２４６】
以上説明したように、本発明の第４の実施の形態に係る画像投影装置によれば、複数のプロジェクタを用いる場合において、フレーム番号毎に、切り替えられたプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから各色成分βの照明画像を出力させ、カメラにより撮影した観測画像の各々について、カメラ画像の色成分α及び照明画像の色成分β毎に、カメラ応答の画素Ｃαｉを検出し、カメラ画像の色成分α及び照明画像の色成分β毎に、ＬＴ行列を推定し、ＬＴ行列に基づいて、カラー混合行列Ｖ’ｉｊを生成し、カラー混合行列Ｖ’ｉｊの逆行列を求めると共に、カメラ応答のｉ番目の画素の各々に対し、対応関係を有する照明画像の画素の個数Ｎｉをカウントし、照明画像のｊ番目の画素の各々に対し、対応関係を有するカメラ応答の画素の個数Ｍｊをカウントし、入力された画像を得るためにプロジェクタ１２Ａ〜プロジェクタ１２Ｎのうちの１つのプロジェクタから出力する照明画像である投影画像に対して、カメラ応答のｉ番目の画素の各々について、カウントされた照明画像の画素の個数Ｍｊと、入力された画像のｉ番目の画素と、カウントされたカメラ応答の画素の個数Ｎｉと、カメラ応答のｉ番目の画素に対する、照明画像のｊ番目の画素についてのカラー混合行列Ｖ’ｉｊの逆行列と、に基づいて、投影画像のｊ番目の画素を補償することにより、効率よく、投影画像の輝度を補償できる。
【０２４７】
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【０２４８】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
【符号の説明】
【０２４９】
１０、２１０  カメラ
１２、２１２、２１２Ａ〜Ｎ  プロジェクタ
２０、２２０、３２０、４２０       演算部
２２、２２２、３２２、４２２       同期制御部
２４、２２４、３２４、４２４       照明画像生成部
２６、２２６、３２６、４２６       カメラ応答観測部
２８、２２８、３２８、４２８       ＬＴ行列推定部
３０、２３０、３３０、４３０       カラー混合行列生成部
３２、２３２、３３２、４３２       輝度補償処理部
４０、２４０、３４０、４４０       映像ＤＢ
９０   出力部
１００、２００、３００、４００     画像投影装置
３４２、４４２       切替部
【図１】
0006373221.tif 000028
【図２】
0006373221.tif 000029
【図３】
0006373221.tif 000030
【図４】
0006373221.tif 000031
【図５】
0006373221.tif 000032
【図６】
0006373221.tif 000033
【図７】
0006373221.tif 000034
【図８】
0006373221.tif 000035
【図９】
0006373221.tif 000036
【図１０】
0006373221.tif 000037
【図１１】
0006373221.tif 000038
【図１２】
0006373221.tif 000039
【図１３】
0006373221.tif 000040
【図１４】
0006373221.tif 000041
【図１５】
0006373221.tif 000042