JP6291382B2 - Lt行列生成装置、方法、プログラム、及び記録媒体 - Google Patents

Lt行列生成装置、方法、プログラム、及び記録媒体 Download PDF

Info

Publication number
JP6291382B2
JP6291382B2 JP2014159857A JP2014159857A JP6291382B2 JP 6291382 B2 JP6291382 B2 JP 6291382B2 JP 2014159857 A JP2014159857 A JP 2014159857A JP 2014159857 A JP2014159857 A JP 2014159857A JP 6291382 B2 JP6291382 B2 JP 6291382B2
Authority
JP
Japan
Prior art keywords
illumination
frame number
matrix
projector
camera
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014159857A
Other languages
English (en)
Other versions
JP2016039415A (ja
Inventor
宮川 勲
勲 宮川
新井 啓之
啓之 新井
行信 谷口
行信 谷口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2014159857A priority Critical patent/JP6291382B2/ja
Publication of JP2016039415A publication Critical patent/JP2016039415A/ja
Application granted granted Critical
Publication of JP6291382B2 publication Critical patent/JP6291382B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Transforming Electric Information Into Light Information (AREA)
  • Video Image Reproduction Devices For Color Tv Systems (AREA)
  • Studio Devices (AREA)

Description

本発明は、LT行列生成装置、方法、プログラム、及び記録媒体に係り、特に、プロジェクション・マッピングに関する行列を生成するLT行列生成装置、方法、プログラム、及び記録媒体に関する。
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であればパーソナルスペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物(以下、被写体と称する)へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング(projection mapping)として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
プロジェクション・マッピングでは、所定画像を正確に投影するために、目視確認と手動操作によって、画素単位での位置合わせが行われている。これに対して、プロジェクタ投影の状態をカメラによって把握し、所定画像を指定された位置に投影するために、プロジェクタ・カメラシステムが利用されている。プロジェクタ・カメラシステムは、プロジェクタとカメラが連動して、カメラからのフィードバック画像に応じて、プロジェクタから投影出力する画像を処理する。通常、平面なスクリーンにプロジェクション・マッピングする場合には、プロジェクタ画面上の点とカメラ画面上の点を、キャリブレーション作業で得た平面射影変換(plane-homography)を使い、スクリーン面を介して対応付ける。この対応関係を利用して、所定画像をスクリーン面の決められた場所に投影する。もし、空間構造に凹凸があったり曲がった構造である場合には、その空間構造を事前に把握しなければならない。
例えば、レーザ計測を利用して、被写体の空間構造、あるいは凹凸形状を得る方法が知られている(非特許文献1)。その形状に合わせて所定画像を幾何的に変形させて、平面スクリーンと同様の状態で指定個所に所定画像を投影する。あるいは、構造光(structured light)と呼ばれる幾何パターンをプロジェクタから投影し、カメラで観測した歪み画像から空間構造の凹凸形状あるいは奥行きを計測する方式も利用できる。このように、外界または被写体の空間構造をレーザ計測またはプロジェクタ・カメラシステムを利用して空間構造を把握し、その凹凸形状または奥行きに合わせて指定個所へ所定画像を投影する。
これに対して、外界の空間構造を計測せずに、ライト・トランスポートを利用したプロジェクション・マッピングが知られている(非特許文献2)。ライト・トランスポート(light transport)とは、プロジェクタ・カメラシステムを使ったとき、プロジェクタ照明の各画素とカメラ応答の各画素間の幾何的、光学的対応関係を表現したデータである。説明の都合上、プロジェクタから投影する画像のサイズをN×N画素、カメラで観測する画像のサイズをM×M画素とするが、縦横のサイズが同じサイズである必要はない。ライト・トランスポートを獲得するには、プロジェクタから何らかの照明パターンを投影して、カメラによりその応答を観測する。通常、図12に示すように、複数の照明パターン:P(1),P(2),...,P(L)が使われ、それに応じてカメラ応答:C(1),C(2),...,C(L)を得る。この例では、L種類の照明パターンが使われているが、ライト・トランスポートを獲得するときの条件として、それぞれ異なった照明パターンでなければならない。例えば、プロジェクタ画素の1点1点を単色光で順番に点灯させる。この方式は、brute-force scanningと呼ばれており、全てのプロジェクタ画素と全てのカメラ画素間の直接反射光と間接反射光を計測することができる。各点光源の画像系列:P(1),P(2),...,P(L)と、そのカメラ応答の画像系列:C(1),C(2),...,C(L)を列ベクトル化して並べると、ライト・トランスポート行列(light transport matrix)と呼ばれるM×Nの行列T^が得られる。この行列の転置T^を利用して、プロジェクタからの視点から観測されるであろう仮想画像(dual photography)を人工的に生成する方法が知られている(非特許文献2)。なお、文字の後ろに^がついている文字は行列又はベクトル表記を表すものとする。
また、プロジェクション・マッピングでは、任意の照明を当てた場合の被写体の状態を把握する必要がある。CGの分野では、これはリライティング(relighting)と呼ばれており、ライト・トランスポート行列T^を使えば、所定の照明を設定したときのリライティング・シミュレーションが可能である(非特許文献2)。一般的に、レーザあるいは構造光を使った3次元形状計測では直接反射光のみを受光することを前提としている。このため、被写体の構造によって発生する光学的な間接反射光、並びに、それらの多重反射光を扱うことができない。これに対して、ライト・トランスポートはカメラ画素においては点光源からの光が物体表面で反射した直接反射光、物体表面からそれ以外の表面で反射した間接反射光、並びに、これらの複数の反射光を含む多重反射光を扱う。ライト・トランスポートを利用すれば、直接反射光と間接反射光を区別することなく、全てのプロジェクタ画素と全てのカメラ画素間の対応付けに基づいた高精度なリライティングまたはプロジェクション・マッピングを可能とする。なお、以降では、ライト・トランスポートをLT、ライト・トランスポート行列をLT行列と略する。
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.
従来技術のLTを利用したリライティングまたはプロジェクション・マッピングは、レーザあるいは構造光による3次元計測に頼らずに、任意形状に対して所定画像を投影することができる。ただし、brute-force scanningでは、各画素を点光源として使い、カメラ応答の画素を検出する作業を順番に繰り返すと、単純に点光源の数に応じた画像を観測する必要があるという問題がある。例えば、1,000×1,000画素の画像を点光源として使うと、1,000,000枚の画像を処理してLTMを生成することになり、計算機コストが高く、その処理に多くの時間がかかる。さらに、プロジェクタの解像度をあげたり、扱う画素数を増加させると、カメラ応答として観測する画像の枚数は著しく増大する。
本発明では、上記問題を解決するために成されたものであり、少ない画像からライト・トランスポートを効率的に獲得することができるLT行列生成装置、方法、プログラム、及び記録媒体を提供することを目的とする。
上記目的を達成するために、第1の発明に係るLT行列生成装置は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成するライン照明生成部と、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御する同期制御部と、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出するLT行列算出部と、を含んで構成されている。
第2の発明に係るLT行列生成方法は、ライン照明生成部と、同期制御部と、カメラ応答観測部と、LT行列算出部を含む、LT行列生成装置における、LT行列生成方法であって、前記ライン照明生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成し、前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御し、前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、前記LT行列算出部は、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する。
第1及び第2の発明によれば、ライン照明生成部により、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、同期制御部により、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、カメラ応答観測部により、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、LT行列算出部により、ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、組み合わせの一方のフレーム番号に対する観測画像について検出されたカメラ応答の画素と、組み合わせの他方のフレーム番号に対する観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、組み合わせの一方のフレーム番号に対応する縦ラインの照明と組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、プロジェクタから照射される照明の画素及びカメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する。
このように、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
また、第1の発明において、前記ライン照明生成部は、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、前記LT行列算出部は、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出してもよい。
また、第1の発明において、照明を照射するプロジェクタを、複数のプロジェクタのうちの何れかに切り替える切替部を更に含み、前記ライン照明生成部は、前記切替部によって切り換えられたプロジェクタから照射するための前記縦ラインの照明又は前記横ラインの照明を生成し、前記同期制御部は、前記切替部によって切り替えられたプロジェクタから照明を照射させ、前記LT行列算出部は、前記切替部によって切り換えられたプロジェクタについて、前記ライト・トランスポート行列を算出してもよい。
また、第1の発明において、前記LT行列算出部は、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複するカメラ応答の画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記カメラ応答行列を生成し、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複する画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記プロジェクタ照明行列を生成してもよい。
また、本発明のプログラムは、コンピュータを、上記のLT行列生成装置を構成する各部として機能させるためのプログラムである。
また、本発明の記録媒体は、上記のプログラムを記憶した記録媒体である。
以上説明したように、本発明のLT行列生成装置、方法、プログラム、及び記録媒体によれば、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
本発明の第1の実施の形態に係るLT行列生成装置の機能的構成を示すブロック図である。 ライン照明生成部における縦横ライン照明の例を示す図である。 カメラ応答観測部での応答データの形式を示す図である。 画像のベクトル化とカメラ応答行列を示す図である。 プロジェクタ照明画像のベクトル化とプロジェクタ照明行列を示す図である。 本発明の第1の実施の形態に係るLT行列生成装置における同期制御処理ルーチンを示すフローチャート図である。 本発明の第1の実施の形態に係るLT行列生成装置におけるライン照明生成処理ルーチンを示すフローチャート図である。 本発明の第1の実施の形態に係るLT行列生成装置におけるカメラ応答観測処理ルーチンを示すフローチャート図である。 本発明の第1の実施の形態に係るLT行列生成装置におけるLT行列算出処理ルーチンを示すフローチャート図である。 本発明の第1の実施の形態に係るLT行列生成装置におけるカメラ応答行列への書き込み処理ルーチンを示すフローチャート図である。 本発明の第1の実施の形態に係るLT行列生成装置におけるプロジェクタ照明行列への書き込み処理ルーチンを示すフローチャート図である。 未校正なプロジェクタ・カメラシステム(単色照明)を使ったLT行列の測定を示す図である。 未校正なプロジェクタ・カメラシステム(カラー照明)を使ったLT行列の測定を示す図である。 本発明の第2の実施の形態に係るLT行列生成装置の機能的構成を示すブロック図である。 本発明の第2の実施の形態に係るLT行列生成装置における同期制御処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるライン照明生成処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるカメラ応答観測処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるLT行列算出処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるLT行列算出処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるカメラ応答行列への書き込み処理ルーチンを示すフローチャート図である。 本発明の第2の実施の形態に係るLT行列生成装置におけるプロジェクタ照明行列への書き込み処理ルーチンを示すフローチャート図である。 本発明の第3の実施の形態に係るLT行列生成装置の機能的構成を示すブロック図である。 本発明の第4の実施の形態に係るLT行列生成装置の機能的構成を示すブロック図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
<本発明の第1の実施の形態に係るLT行列生成装置の構成>
次に、本発明の第1の実施の形態に係るLT行列生成装置の構成について説明する。図1に示すように、本発明の第1の実施の形態に係るLT行列生成装置100は、カメラ10と、プロジェクタ12と、演算部20と、出力部90と、を含んで構成されている。なお、第1の実施の形態においては、1台のプロジェクタと1台のカメラのプロジェクタ・カメラシステムを用いる。
カメラ10は、プロジェクタ12により投影された単色画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部26に出力する。なお、第1の実施の形態においては、例えば、単色照明に白色照明を用いる。
プロジェクタ12は、単色照明を用いて、ライン照明生成部24による出力指示に従って被写体を投影する。
演算部20は、同期制御部22と、ライン照明生成部24と、カメラ応答観測部26と、画像データベース28と、LT行列算出部30とを含んで構成されている。
同期制御部22は、フレーム番号毎に、プロジェクタ12から照明を照射させ、照射された照明をカメラ10により撮影するように制御する。具体的には、まず、プロジェクタ12から投影される特定の照明パターンを表すフレーム番号fをf=1に初期化する。次に、カメラ応答観測部26からの応答信号を待ち、当該応答信号を受信すると、ライン照明生成部24と、カメラ応答観測部26とへフレーム番号fを送出する。フレーム番号fを送出することにより、同じフレーム番号においてプロジェクタ12からの照明と、カメラ10の観測との同期をとる。次に、フレーム番号fをf=f+1とカウントアップし、再び、カメラ応答観測部26からの応答信号を待つ。以降、プロジェクタ12からの照明とカメラ10における観測とをフレーム番号fで同期をとりながら、上述の処理と同様にフレーム番号fをライン照明生成部24と、カメラ応答観測部26とへの送出を繰り返す。そして、フレーム番号fの値が、ライン照明生成部24において投影する全ての照明パターンの数の値2Lとなるフレーム番号fをライン照明生成部24とカメラ応答観測部26とに送出した時点で、同期制御部22は、上述の繰り返し処理を停止する。
ライン照明生成部24は、プロジェクタ12から投影するプロジェクタ画面における照明パターンを生成する。具体的には、まず、プロジェクタ12から、縦横ラインの照明を投影する範囲:N×N(=1,000×1,000)画素の範囲を設定する。次に、縦横ラインの照明の幅nを設定する。理想的には、n=1画素を設定してもよいが、照明が微弱なために十分なカメラ応答が得られない場合があることを考慮して、第1の実施の形態においては、縦横ラインの照明の幅nはn=4画素に設定する。ただし、nL=N(Lは整数)とし、対象画素領域の縦横サイズNがnの倍数とする。そして、同期制御部22からフレーム番号fを受信すると、当該フレーム番号fがf<=Lである場合、縦ライン照明を設定し、当該フレーム番号fに対応する当該縦ライン照明を画像データベース28に記憶すると共に、当該縦ライン照明をプロジェクタ12から投影させる。一方、当該フレーム番号fがf>Lの場合、横ライン照明を設定し、当該フレーム番号fに対応する当該横ライン照明を画像データベース28に記憶すると共に、当該横ライン照明をプロジェクタ12から投影させる。図2にプロジェクタ画素領域をN×N画素としたときの縦ライン照明画像と横ライン照明画像の例を示す。縦ラインはn×N画素の大きさをもち、フレーム番号fに従って、左端から右端へ幅nの等間隔で移動する。一方、横ライン照明は、N×n画素の大きさをもち、フレーム番号fに従って、下端から上端へ幅nの等間隔で移動する。縦ライン照明は、f=1ではプロジェクタ画素領域の左端に位置し、f=Lのときプロジェクタ画素領域の右端に位置する。一方、横ライン照明は、f=L+1のときプロジェクタ画素領域の下端に位置し、f=2Lのときプロジェクタ画素領域の上端に位置する。また、ライン照明生成部24は、同期制御部22から、フレーム番号fを受信するたびに、上記の縦ライン照明又は横ライン照明を設定し、全てのライン照明(2L本のライン照明)を順番にプロジェクタ12から投影し終えるまで上記処理を繰り返す。
カメラ応答観測部26は、カメラ10において観測した、プロジェクタ12から投影された照明光に対するカメラ応答を検出する。具体的には、まず、観測範囲を設定する。第1の実施の形態においては、カメラ10において観測された画像全体を処理対象とせず、当該設定により指定された範囲のカメラ応答を検出する。第1の実施の形態においては、例えば、画像内でのM×M(=1,000×1,000)画素の範囲を指定する。次に、カメラ応答を検出するための閾値を設定する。当該閾値は、カメラ応答を検出する範囲の画素の各々について、当該閾値以上の輝度値である画素をカメラ応答として検出する。次に、同期制御部22からフレーム番号fを受信すると、カメラ10が画像を取得することができる状態かのチェックを行い、撮影可能状態ならばカメラ10から観測画像を取得する。次に、画像データベース28に記憶されているプロジェクタ12によるプロジェクタ照明を投影していない状態の観測画像である背景画像を取得し、観測画像と背景画像との背景差分を処理する。当該背景差分において、蛍光灯などの環境光の下では画像雑音が多く混入するため、設定した閾値として例えば10階調に設定しておき、当該値よりも大きい画素の各々をカメラ応答の画素として検出する。次に、検出されたカメラ応答の画素の各々について、2次元座標と共に、カメラ応答の輝度値を所定のデータ形式で応答データとして画像データベース28に記憶する。図3左に、カメラ応答を濃淡値として応答データを保存する場合の例を示し、左端には、検出された画素の座標が書き込まれ、その右側にカメラ応答の輝度値が書き込まれる場合を例として示す。そして、カメラ10による次のカメラ観測に備えて、同期制御部22へ応答信号を送信し、フレーム番号を受信するまで待機する。なお、カメラ応答観測部26の処理は、プロジェクタ12から投影される縦ライン照明又は横ライン照明を観測したカメラ10における観測画像から取得した応答データを画像データベース28に記憶し、全ての縦ライン照明及び横ライン照明の各々についての応答データを画像データベース28に記憶した時点で終了する。なお、初回に、カメラ観測を行う場合には、カメラ応答観測部26から応答信号を同期制御部22へ送信する。
画像データベース28には、フレーム番号fの各々に対応した観測画像に対する応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
LT行列算出部30は、画像データベース28に記憶されているフレーム番号fの各々に対応した観測画像に対する応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、プロジェクタ照明の各画素及びカメラ応答の各画素間の幾何的、光学的対応関係を表すライト・トランスポート(以後、LTとする)を抽出し、ライト・トランスポート行列(以後、LT行列とする)を生成する。
具体的には、まず、カウンタiをi=1に初期化する。画像データベース28に記憶されている縦ライン照明に対する応答データは、当該応答データについての観測画像が観測された順番に記憶されており、当該カウンタiは、当該応答データを処理する指標として用いる。次に、画像データベース28からカウンタiに対応する縦ライン照明に対する応答データV(フレーム番号iに対する応答データ)を取得する。次に、カウンタjをj=1に初期化する。画像データベース28に記憶されている横ライン照明に対する応答データは、当該応答データについての観測画像が観測された順番に記憶されており、当該カウンタjは、当該応答データを処理する指標として用いる。次に、画像データベース28からカウンタjに対応する横ライン照明に対する応答データH(フレーム番号j+Lに対する応答データ)を取得する。次に、取得した応答データVと応答データHとに基づいて、カメラ応答が重複する座標を探す。すなわち、縦ライン照明と横ライン照明との両方に応答した画素を見つける。両方の照明に応答した画素が見つかった場合、当該画素の各々について、応答データ(第1の実施の形態においては輝度値)の平均値を計算し、カメラ応答行列C^への書き込みを行う。
次に、画像データベース28から、カウンタiに対応する縦ラインパターン(フレーム番号iに対応する縦ラインパターン)とカウンタjに対応する横ラインパターン(フレーム番号j+Lに対応する横ラインパターン)とを取得し、当該縦ラインパターンと、当該横ラインパターンとにおいて重複するプロジェクタ画素を算出する。縦ラインパターンはn×N画素、横ラインパターンはN×n画素により設定されているので、カウンタi=1、カウンタj=1のとき、N×N画素領域では左隅下のn×n画素が算出される。次に、プロジェクタ照明行列Pへ書き込みを行う。次に、カウンタjの値が横ライン照明の本数Lの値と一致しないとき、カウンタjの値をj=j+1と増加させ、上記、画像データベース28からカウンタjに対応する横ライン照明に対する応答データHを取得する処理から繰り返す。一方、カウンタjの値がLの値と一致するときは、jをj=1に初期化し、カウンタiの値をi=i+1と増加させ、上記、画像データベース28からカウンタiに対応する縦ライン照明に対する応答データVを取得する処理から繰り返す。当該繰り返し処理により、全ての縦ライン照明及び横ライン照明に対応したカメラ応答に対する応答データの各々について、処理が行われる。
上記処理により、縦ライン照明に対応したカメラ応答に対する応答データはL個、横ライン照明に対応したカメラ応答に対する応答データはL個あるので、カメラ応答行列C^の行方向に各列ベクトルC^x(x=1〜L)が配置される。また、同様に、プロジェクタ照明行列P^の行方向に、各プロジェクタ照明画像の列ベクトルP^x(x=1〜L)が配置される。LT行列算出部30は、作成されたカメラ応答行列C^とプロジェクタ照明行列P^とに基づいて、以下の式に従って、LT行列を算出し、出力部90から出力する。
T^=C^P^Τ
ただし、Τは転置を表す。
なお、扱うプロジェクタ画素またはカメラ画素の大きさによって、カメラ応答行列C^またはプロジェクタ照明行列P^が巨大な行列になる場合があるため、第1の実施の形態においては、計算機メモリの過剰な割り当てを回避するために、市販ソフトで使われているスパース行列の形式を利用する。スパース行列の形式とは、0を含む要素を全て削除した行列形式であり、行列要素が非零のときだけ、データをもつコンパクトな行列データ形式である。
カメラ応答行列C^への書き込みについて説明すると、カメラ応答行列C^への書き込みは、まず、M×M画素の画像メモリを確保する。次に、M×M画素領域において、検出されたカメラ応答が重複する座標の各々について、算出された当該画素の応答データの平均値をセットした画像を作成する。次に、M×M画素領域に対して、図4左のように左から右の一方方向の画素の走査を、下から上へと繰り返すことにより、ジグザグに走査(ジグザグスキャン)して、1列に再配置した列ベクトルC^xを生成する。次に、当該列ベクトルC^xを図4右に示すように、カメラ応答行列C^の左から順に代入する。
プロジェクタ照明行列P^への書き込みについて説明すると、プロジェクタ照明行列P^への書き込みは、まず、N×N画素の画像メモリを確保する。次に、N×N画素の画像領域において、算出されたn×nのプロジェクタ画素の位置に、予め設定されている照明の輝度値をセットし、N×N画素のプロジェクタ照明画像を一時的に作成する。次に、当該プロジェクタ照明画像について、図5左に示すように、N×N画素の対象領域に対して、左から右の一方方向の画素の走査を、下から上へと繰り返すことにより、ジグザグにスキャンして、1列に再配置した列ベクトルP^xを生成する。さらに、当該ベクトルのノルムを計算し、当該列ベクトルP^xをその大きさで割り、正規化する。次に、正規化した列ベクトルP^xを図5右に示すように、プロジェクタ照明行列P^の左から順に代入する。
<本発明の第1の実施の形態に係るLT行列生成装置の作用>
次に、本発明の第1の実施の形態に係るLT行列生成装置100の作用について説明する。まず、同期制御処理ルーチンについて説明する。
図6に示す、ステップS100では、フレーム番号fの値を1に初期化する。
次に、ステップS102では、カメラ応答観測部26から応答信号を受信したか否かを判定する。応答信号を受信した場合には、ステップS104へ移行し、応答信号を受信しない場合には、ステップS102の処理を繰り返す。
次に、ステップS104では、ステップS100又はステップS108において取得したフレーム番号fをライン照明生成部24及びカメラ応答観測部26に送出する。
次に、ステップS106では、フレーム番号fの値が2Lの値か否かを判定する。フレーム番号fの値が2Lである場合には、同期制御処理ルーチンを終了し、フレーム番号fの値が2Lよりも小さい場合には、ステップS108へ移行する。
ステップS108では、フレーム番号fの値に1を加えた値をフレーム番号fの値として設定し、ステップS102へ移行して、ステップS102〜ステップS106の処理を繰り返す。
次に、図7に示す、ライン照明生成処理ルーチンについて説明する。
まず、ステップS200では、縦横ラインの照明を投影する照明対象領域をN×N画素と設定する。
次に、ステップS202では、縦ライン及び横ラインの照明の幅nを設定する。
次に、ステップS204では、同期制御部22からフレーム番号fを受信したか否かを判定する。フレーム番号fを受信した場合には、ステップS206へ移行し、フレーム番号fを受信していない場合には、ステップS204の処理を繰り返す。
次に、ステップS206では、ステップS204において取得したフレーム番号fの値がLより大きいか否かを判定する。フレーム番号fがL以下である場合には、ステップS208へ移行し、フレーム番号fがLより大きい場合には、ステップS212へ移行する。
次に、ステップS208では、フレーム番号fに対応する縦ライン照明を設定する。
次に、ステップS210では、ステップS208において設定した縦ライン照明に対応する縦ラインパターンを、ステップS204において取得したフレーム番号fと対応させて画像データベース28に記憶する。
ステップS212では、フレーム番号fに対応する横ライン照明を設定する。
次に、ステップS214では、ステップS212において設定した横ライン照明に対応する横ラインパターンを、ステップS204において取得したフレーム番号fと対応させて画像データベース28に記憶する。
ステップS216では、ステップS208又はステップS212において設定した縦ライン照明又は横ライン照明をプロジェクタ12から出力する。
次に、ステップS218では、ステップS204において取得したフレーム番号fの値が2Lであるか否かを判定する。フレーム番号fの値が2Lである場合には、ライン照明生成処理ルーチンを終了し、フレーム番号fの値が2Lより小さい場合には、ステップS204へ移行し、ステップS204〜ステップS218の処理を繰り返す。
次に、図8に示す、カメラ応答観測処理ルーチンについて説明する。
まず、ステップS300では、カメラ10において観測する範囲をM×M画素の範囲に設定する。
次に、ステップS302では、カメラ応答に対する所定の閾値を設定する。
次に、ステップS304では、画像データベース28に記憶されている背景画像を読み込む。
次に、ステップS306では、同期制御部22へ応答信号を送信する。
次に、ステップS308では、同期制御部22からフレーム番号fを受信したか否かを判定する。フレーム番号fを受信した場合には、ステップS310へ移行し、フレーム番号fを受信していない場合には、ステップS308の処理を繰り返す。
次に、ステップS310では、カメラ10の状態をチェックする。
次に、ステップS312では、ステップS310において取得したカメラ10の状態が、撮影可能状態であるか否かを判定する。カメラ10が撮影可能状態である場合には、ステップS314へ移行し、カメラ10が撮影可能状態でない場合には、ステップS310へ移行する。
次に、ステップS314では、カメラ10から観測画像を取得する。
次に、ステップS316では、ステップS304において取得した背景画像と、ステップS314において取得した観測画像との背景差分を取得する。
次に、ステップS318では、ステップS302において取得した閾値と、ステップS316において取得した背景差分とから、カメラ応答の画素の各々を検出する。
次に、ステップS320では、ステップS318において取得したカメラ応答の画素の各々の輝度値を応答データとして、ステップS308において取得したフレーム番号fと対応づけて画像データベース28に記憶する。
次に、ステップS322では、ステップS308において取得したフレーム番号fの値が2Lであるか否かを判定する。フレーム番号fの値が2Lである場合には、カメラ応答観測処理ルーチンを終了し、フレーム番号fの値が2Lよりも小さい場合には、ステップS306へ移行し、ステップS306〜ステップS322の処理を繰り返す。
次に、図9に示す、LT行列算出処理ルーチンについて説明する。
まず、ステップS400では、カウンタiの値を1に初期化する。
次に、ステップS402では、画像データベース28に記憶されている、i番目の縦ライン照明に対応する応答データVを読み込む。
次に、ステップS404では、カウンタjの値を1に初期化する。
次に、ステップS406では、画像データベース28に記憶されている、j番目の横ライン照明に対応する応答データHを読み込む。
次に、ステップS408では、ステップS402において取得した応答データVと、ステップS406において取得した応答データHとに基づいて、カメラ応答の画素の各々が重複する座標の各々を検出する。
次に、ステップS410では、ステップS408において取得したカメラ応答の画素の各々が重複する座標の各々における、画素の各々について、ステップS402において取得した応答データVと、ステップS406において取得した応答データHとに基づいて、当該画素の輝度値の平均値を計算する。
次に、ステップS412では、ステップS408において取得したカメラ応答の画素の各々が重複する座標の各々と、ステップS410において取得した重複する座標の各々における画素の各々の輝度値の平均値とに基づいて、カメラ応答行列C^へ書き込みを行う。
次に、ステップS414では、カウンタiに対応する縦ラインパターンと、カウンタjに対応する横ラインパターンとを画像データベース28から読み込む。
次に、ステップS416では、ステップS414において取得したカウンタiに対応する縦ラインパターンと、カウンタjに対応する横ラインパターンとに基づいて、プロジェクタ行列P^へ書き込みを行う。
次に、ステップS418では、カウンタjの値がLか否かを判定する。カウンタjの値がLである場合には、ステップS422へ移行し、カウンタjの値がLよりも小さい場合には、ステップS420へ移行する。
ステップS420では、カウンタjの値に1を加えた値をカウンタjの値に設定する。
ステップS422では、カウンタiの値がLか否かを判定する。カウンタiの値がLである場合には、ステップS426へ移行し、カウンタiの値がLよりも小さい場合には、ステップS424へ移行する。
ステップS424では、カウンタiの値に1を加えた値をカウンタiの値に設定する。
ステップS426では、ステップS412において取得したカメラ応答行列C^と、ステップS416において取得したプロジェクタ照明行列P^とに基づいて、LT行列T^を算出し、出力部90から出力して、LT行列算出処理ルーチンを終了する。
上記ステップS412のカメラ応答行列への書き込み処理について、図10において詳細に説明する。
図10のステップS500では、M×M画素の画像メモリを確保する。
次に、ステップS502では、ステップS408において取得したカメラ応答の画素の各々が重複する座標の各々と、ステップS410において取得した重複する座標の各々における画素の輝度値の平均値とに基づいて、ステップS500において取得したM×M画素の画像メモリにおける、カメラ応答の画素の各々が重複する座標の各々に、当該座標の画素の輝度値の平均値をセットする。
次に、ステップS504では、ステップS502において取得した輝度値の平均値がセットされたM×M画素の画像メモリに基づいて、1列に再配置した列ベクトルC^x(x=1〜L)を生成する。
次に、ステップS506では、ステップS504において取得した列ベクトルC^xを図4右に示すように、カメラ応答行列C^の左から順に代入する。
上記ステップS416のプロジェクタ照明行列への書き込み処理について、図11において詳細に説明する。
図11のステップS600では、N×N画素の画像メモリを確保する。
次に、ステップS602では、ステップS414において取得したカウンタiに対応する縦ラインパターンと、カウンタjに対応する横ラインパターンとに基づいて、n×nのプロジェクタ画素の位置を算出し、当該算出された位置に予め設定されている照明の輝度値をセットし、プロジェクタ照明画像を作成する。
次に、ステップS604では、ステップS602において取得したプロジェクタ照明画像に基づいて、1列に再配置した列ベクトルP^x(x=1〜L)を生成する。
次に、ステップS606では、ステップS604において取得した列ベクトルP^xを正規化する。
次に、ステップS608では、ステップS606において正規化された列ベクトルP^xをプロジェクタ照明行列P^の左から順に代入する。
以上説明したように、本発明の第1の実施の形態に係るLT行列生成装置によれば、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
また、プロジェクタ・カメラシステムの動作を活用したリライティングまたはプロジェクション・マッピングにおいて、面倒な計測作業を回避し、できるだけ少ない画像から直接反射光と間接反射光とのLTを効率的に得ることができる。
また、獲得したLTを使えば、光学的に複雑な反射・屈折現象により発生する被写体投影像をリライティングによって仮想的に生成することができる。さらに、そのリライティング画像を使った拡張現実や映像コミュニケーションを実現することが可能となる。
また、図12に示した状況において、未校正なプロジェクタ・カメラシステムを使って、未知の任意形状の表面にプロジェクタからの縦横ラインの照明を投影したとき、それぞれの応答データから、プロジェクタ画面の各座標から照明した光線とカメラ画面の各座標の応答を結び付けるLTを効率的に獲得でき、それらを一度に扱うためのLT行列T^を計測することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、第1の実施の形態においては、カメラにおいて明るさを示す濃淡画像を取得する場合について説明したが、これに限定されるものではなく、RGBからYIQへ色変換した輝度画像を取得してもよい。
また、第1の実施の形態においては、カメラと、プロジェクタと、画像データベースとがLT行列生成装置の構成要素として接続している場合について説明したが、これに限定されるものではない。例えば、カメラと、プロジェクタと、画像データベースとにおける、当該行列生成処理に必要なデータを取得することができれば、同期制御部と、カメラ応答観測部と、LT行列算出部とへのデータのやり取りは、ハードディスク、RAID装置、及びCD−ROM等の記録媒体を利用してもよい。また、ネットワークを介してリモートなデータ資源を利用する形態でもよい。
また、第1の実施の形態においては、プロジェクタで投影する画素領域をN×N画素とする場合について説明したが、これに限定されるものではない。例えば、縦横の画素数は任意に設定してもよい。
また、第1の実施の形態においては、縦横ラインの照明の幅nをn=4とする場合について説明したが、これに限定されるものではない。例えば、一般的には、縦横ラインの照明の幅nは、使用するプロジェクタ、カメラ、あるいは環境に依存するため、システムパラメータとして事前テストにより十分なカメラ応答が得られる範囲でライン幅nを決定してもよい。
また、第1の実施の形態においては、カメラ応答を検出する範囲をM×M画素と指定する場合について説明したが、これに限定されるものではない。例えば、縦横のサイズは任意に設定してもよい。
また、第1の実施の形態においては、背景画像を、プロジェクタ照明を投影していない状態の観測画像とする場合について説明したが、これに限定されるものではない。例えば、プロジェクタ照明として黒を投影したときの観測画像を背景画像としてもよい。
また、第1の実施の形態においては、カメラ応答観測部において、応答データを画像データベースに記憶する場合について説明したが、これに限定されるものではない。例えば、検出されたカメラ応答の画素の各々の輝度値を含むM×M画素をサブ画像として画像データベース28に記憶してもよい。この場合には、サブ画像を用いてLT行列を算出するようにすればよい。
次に、第2の実施の形態に係るLT行列生成装置について説明する。
第2の実施の形態においては、カラー照明を用いて被写体を投影し、カラー画像を観測してLT行列を算出している点が第1の実施の形態と異なる。なお、第1の実施の形態に係るLT行列生成装置100と同様の構成及び作用については、同一の符号を付して説明を省略する。
<第2の実施の形態に係るLT行列生成装置の概要>
まず、第2の実施の形態に係るLT行列生成装置200の概要について説明する。第2の実施の形態においては、図13に示すように、βチャネルからの照明をプロジェクタから投影し、αチャネルのカメラ応答を観測して、LT行列T^αβを獲得する。ただし、βはプロジェクタのRGBのいずれかの色を指し、αはカメラのRGBのいずれかの色を指し、その組み合わせによりLT行列T^αβは9種類あるものとする。本来、赤、緑、青のスペクトルは、可視光の波長帯において分布しているため、プロジェクタ・カメラシステムでは、プロジェクタとカメラ間とのカラー混合(color mixtures)が発生する。第2の実施の形態においては、カラー混合を考慮したLT行列を獲得する。第2の実施の形態においては、プロジェクタがRGBのカラー照明を用い、カメラでRGBのカラー応答を観測する。
<本発明の第2の実施の形態に係るLT行列生成装置の構成>
次に、本発明の第2の実施の形態に係るLT行列生成装置の構成について説明する。図14に示すように、本発明の第2の実施の形態に係るLT行列生成装置200は、カメラ210と、プロジェクタ212と、演算部220と、出力部90と、を含んで構成されている。
カメラ210は、プロジェクタ212により投影された赤照明画像、緑照明画像、及び青照明画像を観測し、色値を表すRGB値を取得し、カメラ応答観測部226に出力する。
プロジェクタ212は、赤照明画像、緑照明画像、及び青照明画像を用いて、ライン照明生成部224による出力指示に従って被写体を投影する。
演算部220は、同期制御部222と、ライン照明生成部224と、カメラ応答観測部226と、画像データベース228と、LT行列算出部230とを含んで構成されている。
同期制御部222は、フレーム番号毎に、プロジェクタ212から照明を照射させ、照射された照明をカメラ210により撮影するように制御する。具体的には、まず、プロジェクタ212から投影される特定の照明パターンを表すフレーム番号fをf=1に初期化する。次に、カメラ応答観測部226からの応答信号を待ち、当該応答信号を受信すると、ライン照明生成部224と、カメラ応答観測部226とへフレーム番号fを送出する。フレーム番号fを送出することにより、同じフレーム番号においてプロジェクタ212からの照明と、カメラの観測との同期をとる。次に、フレーム番号fをf=f+1とカウントアップし、再び、カメラ応答観測部226からの応答信号を待つ。以降、プロジェクタ212からの照明とカメラ210における観測の同期をフレーム番号fで同期をとりながら、同様にフレーム番号fをライン照明生成部224と、カメラ応答観測部226とに送出を繰り返す。そして、フレーム番号fの値が、ライン照明生成部224において投影する赤照明、緑照明、又は青照明の何れか1つの全ての照明パターンの数の値2Lであるフレーム番号fをライン照明生成部224とカメラ応答観測部226とに送出した時点で、フレーム番号fをf=1に初期化し、以降同様に繰り返し処理を行い、さらに、フレーム番号fの値がライン照明生成部224において投影する赤照明、緑照明、又は青照明の何れか1つの全ての照明パターンの数の値2Lであるフレーム番号fをライン照明生成部224とカメラ応答観測部226とに送出した時点で、フレーム番号fをf=1に初期化し、以降同様に繰り返し処理を行い、次の、フレーム番号fの値が2Lとなるフレーム番号fを送出した時点で、同期制御部222は、繰り返し処理を停止する。
ライン照明生成部224は、プロジェクタ212から投影するプロジェクタ画面における照明パターンを、赤照明、緑照明、及び青照明の順番で生成する。具体的には、同期制御部222からフレーム番号fを受信すると、当該フレーム番号fがf<=Lのとき、赤照明の縦ライン照明を設定し、当該フレーム番号fに対応する当該赤照明の縦ライン照明を画像データベース228に記憶すると共に、当該赤照明の縦ライン照明をプロジェクタ212から投影させる。一方、当該フレーム番号fがf>Lのとき、赤照明の横ライン照明を設定し、当該フレーム番号fに対応する当該赤照明の横ライン照明を画像データベース228に記憶すると共に、当該赤照明の横ライン照明をプロジェクタ212から投影させる。ライン照明生成部224は、同期制御部222から、フレーム番号fを受信するたびに、上記の赤照明の縦ライン照明又は赤照明の横ライン照明を設定し、全ての赤照明のライン照明(2L本の縦横ライン照明)を順番にプロジェクタ212から投影し終えるまで上記処理を繰り返す。
また、ライン照明生成部224は、2回目のフレーム番号fの値が1であるフレーム番号fを受信すると、緑照明の縦ライン照明を設定し、当該フレーム番号fに対応する当該緑照明の縦ライン照明を画像データベース228に記憶すると共に、当該緑照明の縦ライン照明をプロジェクタ212から投影させる。以後、緑照明についても上記赤照明と同様に、全ての緑照明の縦横ライン照明を順番にプロジェクタ212から投影し終えるまで上記処理を繰り返す。また、ライン照明生成部224は、3回目のフレーム番号fの値が1であるフレーム番号fを受信すると、青照明の縦ライン照明を設定し、当該フレーム番号fに対応する当該青照明の縦ライン照明を画像データベース228に記憶すると共に、当該青照明の縦ライン照明をプロジェクタ212から投影させる。以後、青照明についても上記赤照明と同様に、全ての青照明の縦横ライン照明を順番にプロジェクタ212から投影し終えるまで上記処理を繰り返す。以上のように、ライン照明生成部224は、赤照明、緑照明、及び青照明の各々について、2L本ずつ縦横ライン照明をプロジェクタ212から投影することにより、合計6L本のライン照明を生成する。
カメラ応答観測部226は、カメラ210において観測した、プロジェクタ212から投影された赤照明、緑照明、及び青照明の照明光に対するカメラ応答を検出する。具体的には、同期制御部222からフレーム番号fを受信すると、カメラ210から赤照明の照明光に対する観測画像を取得する。次に、画像データベース228に記憶されているプロジェクタ212によるプロジェクタ照明を投影していない状態の観測画像である背景画像を取得し、赤照明に対する観測画像と背景画像との背景差分を処理し、観測画像の各画素のRGB値の各々に基づいて、R値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のR値を赤照明に対するカメラ応答の赤の画素のR値として検出し、G値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のG値を赤照明に対するカメラ応答の緑の画素のG値として検出し、B値の輝度値が予め定められた閾値よりも大きい場合に、当該画素のB値を赤照明に対するカメラ応答の青の画素のB値として検出する。次に、RGBの各色について、検出された赤照明に対するカメラ応答の当該色の画素の値の各々の輝度値を、赤照明に対する当該色の応答データとして画像データベース228に記憶する。なお、カメラ応答観測部226の処理は、プロジェクタ212から投影される赤照明の縦ライン照明又は横ライン照明を観測したカメラ210における赤照明に対するカメラ画像から赤照明に対するRGBの各色の応答データを画像データベース228に記憶し、全ての赤照明に対する縦ライン照明及び横ライン照明の各々についての赤照明に対するRGBの各色の応答データを画像データベース228に記憶した時点で赤照明に対する処理は、終了する。
カメラ応答観測部226は、2回目のフレーム番号fの値が1であるフレーム番号fを受信すると、緑照明に対して、上記赤照明に対する処理と同様に、緑照明に対するRGBの各色の応答データを画像データベース228に記憶し、全ての緑照明に対する縦ライン照明及び横ライン照明の各々についての緑照明に対するRGBの各色の応答データを画像データベース228に記憶した時点で緑照明に対する処理は終了する。また、カメラ応答観測部226は、3回目のフレーム番号fの値が1であるフレーム番号fを受信すると、青照明に対して、上記赤照明に対する処理と同様に、青照明に対するRGBの各色の応答データを画像データベース228に記憶し、全ての青照明に対する縦ライン照明及び横ライン照明の各々についての青照明に対するRGBの各色の応答データを画像データベース228に記憶した時点で青照明に対する処理は終了する。
画像データベース228には、フレーム番号fの各々に対応した赤照明、緑照明、及び青照明の各々に対応するRGBの各色の応答データの各々と、フレーム番号fの各々に対応した赤照明、緑照明、及び青照明の各々に対応する縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
LT行列算出部230は、画像データベース228に記憶されているフレーム番号fの各々に対応した赤照明、緑照明、及び青照明の各々に対応するRGBの各色の応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、LTを抽出し、LT行列を生成する。
第2の実施の形態においては、赤照明、緑照明、及び青照明に対応する応答データの順番に処理を行う。具体的には、まず、カウンタiをi=1に初期化する。次に、画像データベース228からカウンタiに対応する赤照明に対応する縦ライン照明に対するRGBの各色の応答データVを取得する。次に、カウンタjをj=1に初期化する。次に、画像データベース228からカウンタjに対応する赤照明に対応する横ライン照明に対するRGBの各色の応答データHを取得する。
次に、RGBの各色について、取得した当該色の応答データVと当該色の応答データHとに基づいて、カメラ応答が重複する座標を探す。両方の照明にR値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのR値の平均値を計算し、カメラ応答行列C^RRへの書き込みを行う。ここで、βはプロジェクタから照射された照明色を表し、αはカメラで検出された色を表す。同様に、両方の照明にG値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのG値の平均値を計算し、カメラ応答行列C^GRへ書き込みを行う。また、同様に、両方の照明にB値が応答したカメラ画素が見つかった場合、当該画素の各々について、応答データのB値の平均値を計算し、カメラ応答行列C^BRへ書き込みを行う。
次に、画像データベース228から、カウンタiに対応する赤照明の縦ラインパターンとカウンタjに対応する赤照明の横ラインパターンとを取得し、当該赤照明の縦ラインパターンと、当該赤照明の横ラインパターンとにおいて重複するプロジェクタ画素を算出する。次に、プロジェクタ照明行列P^へ書き込みを行う。次に、カウンタjの値が横ライン照明の本数Lの値と一致しないとき、カウンタjの値をj=j+1と増加させ、上記、画像データベース228からカウンタjに対応する赤照明の横ライン照明に対するRGBの各色の応答データHを取得する処理から繰り返す。一方、カウンタjの値がLの値と一致するときは、jをj=1に初期化し、カウンタiの値をi=i+1と増加させ、上記、画像データベース228からカウンタiに対応する赤照明の縦ライン照明に対するRGBの各色の応答データVを取得する処理から繰り返す。当該繰り返し処理により、全ての赤照明の縦ライン照明及び赤照明の横ライン照明に対応したRGBの各色の応答データの各々について、処理が行われる。当該赤照明に対応した縦ライン照明及び赤照明に対応した横ライン照明の処理が終了したら、同様に、緑照明に対応した縦ライン照明及び緑照明に対応した横ライン照明に対応したRGBの各色の応答データの各々について処理を行い、C^RG、C^GG、C^BG、及びP^を作成する。また、当該緑照明に対応した縦ライン照明及び緑照明に対応した横ライン照明の処理が終了したら、同様に、青照明に対応した縦ライン照明及び青照明に対応した横ライン照明に対応したRGBの各色の応答データの各々について処理を行い、C^RB、C^GB、C^BB、及びPを作成する。
上記処理により、RGBの各色について、縦ライン照明に対応したカメラ応答に対する当該色の応答データはL個、横ライン照明に対応したカメラ応答に対する当該色の応答データはL個あることから、作成された9種類のカメラ応答行列C^αβ(α={R,G,B}、β={R,G,B})に基づいて、下記(1)式に従って、3M×3Lの行列サイズをもつカメラ応答行列C^を算出する。

また、作成されたプロジェクタ照明行列P^、P^、及びP^に基づいて、下記(2)式に従って、3N×3Lの行列サイズを持つプロジェクタ照明行列P^を算出する。

そして、作成されたカメラ応答行列C^とプロジェクタ照明行列P^とに基づいて、以下の式に従って、カラー応答のLT行列を算出し、出力部90から出力する。
T^=C^P^Τ
ただし、Tは転置を表す。
<本発明の第2の実施の形態に係るLT行列生成装置の作用>
次に、本発明の第1の実施の形態に係るLT行列生成装置200の作用について説明する。まず、同期制御処理ルーチンについて説明する。
図15に示す、ステップS700では、ステップS100〜ステップS106までの処理を3回行ったか否かを判定する。ステップS100〜ステップS106までの処理回数が3回よりも少ない場合、ステップS100へ移行し、ステップS100〜ステップS700までの処理を繰り返す。ステップS100〜ステップS106までの処理回数が3回である場合には、同期制御処理ルーチンを終了する。
次に、図16に示す、ライン照明生成処理ルーチンについて説明する。第2の実施の形態においては、赤照明についての処理から開始されるものとする。
図16に示す、ステップS800では、フレーム番号fに対応する対象となる照明色の縦ライン照明を設定する。
次に、ステップS802では、ステップS800において設定した対象となる照明色の縦ライン照明に対応する縦ラインパターンを、ステップS204において取得したフレーム番号fと対応させて画像データベース228に記憶する。
ステップS804では、フレーム番号fに対応する対象となる照明色の横ライン照明を設定する。
次に、ステップS806では、ステップS804において設定した対象となる照明色の横ライン照明に対応する横ラインパターンを、ステップS204において取得したフレーム番号fと対応させて画像データベース228に記憶する。
ステップS808では、ステップS800又はステップS804において設定した対象となる照明色の縦ライン照明又は横ライン照明をプロジェクタ212から出力する。
ステップS810では、全ての照明色についてステップS204〜ステップS218までの処理を終了したか否かを判定する。全ての照明色についてステップS204〜ステップS218までの処理を終了している場合には、ライン照明生成処理ルーチンを終了し、全ての照明色についてステップS204〜ステップS218までの処理を終了していない場合には、対象となる照明色を変更し、ステップS204へ移行する。なお、対象となる照明色は、赤色、緑色、青色の順に変更される。
次に、図17に示す、カメラ応答観測処理ルーチンについて説明する。第2の実施の形態においては、赤照明についての処理から開始されるものとする。
図17に示す、ステップS900では、カメラ応答に対するRGB値の各々の所定の閾値を設定する。
次に、ステップS902では、ステップS304において取得した画像と、ステップS314において取得した観測画像との背景差分を取得する。
次に、ステップS904では、ステップS304において取得した背景画像と、ステップS314において取得した観測画像との背景差分から、ステップS900において取得した閾値を用いて、RGBの各色について、カメラ応答の画素の各々を検出し、当該色の輝度値の各々を取得する。
次に、ステップS906では、RGBの各色について、ステップS902において取得したカメラ応答の画素の各々の当該色の輝度値の各々を、当該色の応答データとして、ステップS308において取得したフレーム番号fと対応づけて画像データベース228に記憶する。
ステップS904では、全ての照明色についてステップS306〜ステップS322までの処理を終了したか否かを判定する。全ての照明色についてステップS306〜ステップS322までの処理を終了している場合には、カメラ応答観測処理ルーチンを終了し、全ての照明色についてステップS306〜ステップS322までの処理を終了していない場合には、対象となる照明色を変更し、ステップS306へ移行する。なお、対象となる照明色は、赤色、緑色、青色の順に変更される。
次に、図18及び図19に示す、LT行列算出処理ルーチンについて説明する。
図18に示す、ステップS1000では、処理対象となる照明色を決定する。第2の実施の形態においては、赤照明から処理を行い、緑照明、及び青照明の順に処理対象となる照明色を決定する。
次に、ステップS1002では、画像データベース228に記憶されている、i番目の、ステップS1000において取得した照明色の縦ライン照明に対応するRGBの各色の応答データVを読み込む。
次に、ステップS1004では、画像データベース228に記憶されている、j番目の、ステップS1000において取得した照明色の横ライン照明に対応するRGBの各色の応答データHを読み込む。
次に、ステップS1007では、ステップS1002において取得した対象色の応答データVと、ステップS1004において取得した対象色の応答データHとに基づいて、対象色のカメラ応答の画素の各々が重複する座標の各々を検出する。
次に、ステップS1008では、ステップS1007において取得した対象色のカメラ応答の画素が重複する座標の各々における画素の各々について、ステップS1002において取得した対象色の応答データVと、ステップS1004において取得した対象色の応答データHとに基づいて、当該重複する画素の対象色の輝度値の平均値を計算する。
次に、ステップS1010では、ステップS1007において取得した対象色のカメラ応答の画素が重複する座標の各々と、ステップS1008において取得した重複する座標の各々の画素の各々の対象色の輝度値の平均値とに基づいて、カメラ応答行列C^αβへ書き込みを行う。
次に、ステップS1011では、ステップS1000において決定した照明色について、赤、緑、青の全ての色の応答データについてステップS1007〜ステップS1010の処理を終了したか否かを判定する。全ての色の応答データについてステップS1007〜ステップS1010の処理を終了した場合には、ステップS1014へ移行し、全ての色の応答データについてステップS1007〜ステップS1010の処理を終了していない場合には、対象色を変更し、ステップS1007へ移行し、ステップS1007からステップS1011の処理を繰り返す。
次に、ステップS1014では、ステップS1000において取得した照明色のカウンタiに対応する縦ラインパターンと、カウンタjに対応する横ラインパターンとを画像データベース228から読み込む。
次に、ステップS1016では、ステップS1014において取得したステップS1000において取得した照明色のカウンタiに対応する縦ラインパターンと、カウンタjに対応する横ラインパターンとに基づいて、双方で重複する各々の画素の対象色の輝度値をプロジェクタ行列P^βへ書き込みを行う。
次に、ステップS418では、カウンタjの値がLか否かを判定する。カウンタjの値がLである場合には、図19のステップS422へ移行し、カウンタjの値がLよりも小さい場合には、ステップS420へ移行する。
ステップS420では、カウンタjの値に1を加えた値をカウンタjの値に設定する。
ステップS422では、カウンタiの値がLか否かを判定する。カウンタiの値がLである場合には、ステップS1018へ移行し、カウンタiの値がLよりも小さい場合には、ステップS424へ移行する。
ステップS424では、カウンタiの値に1を加えた値をカウンタiの値に設定する。
ステップS1018では、全ての照明色についてステップS400〜ステップS422の処理を終了したか否かを判定する。全ての照明色についてステップS400〜ステップS422の処理を終了した場合には、ステップS1020へ移行し、全ての照明色についてステップS400〜ステップS422の処理を終了していない場合には、ステップS400へ移行する。
ステップS1020では、ステップS1010において取得したカメラ応答行列C^αβの各々に基づいて、上記(1)式に従って、カメラ応答行列C^を算出する。
ステップS1022では、ステップS1016において取得したプロジェクタ照明行列P^βの各々に基づいて、上記(2)式に従って、プロジェクタ照明行列P^を算出する。
ステップS1024では、ステップS1020において取得したカメラ応答行列C^と、ステップS1022において取得したプロジェクタ照明行列P^とに基づいて、カラー照明に対応するカラー応答のLT行列T^を算出し、出力部90から出力して、LT行列算出処理ルーチンを終了する。
上記ステップS1010のカメラ応答行列C^αβへの書き込み処理について、図20において詳細に説明する。
図20に示す、ステップS1100では、ステップS1007において取得した対象色のカメラ応答の画素が重複する座標の各々と、ステップS1008において取得した重複する座標の各々の画素の対象色の輝度値の平均値とに基づいて、ステップS500において取得したM×M画素の画像メモリにおける、カメラ応答画素が重複する座標の各々に当該座標の画素の対象色の輝度値の平均値をセットする。
次に、ステップS1102では、ステップS1100において取得した対象色の輝度値の平均値がセットされたM×M画素の画像メモリに基づいて、1列に再配置した列ベクトルC^x(x=1〜L)を生成する。
次に、ステップS1104では、ステップS1102において取得した列ベクトルC^xを図4右に示すように、カメラ応答行列C^αβの左から順に代入する。
上記ステップS1016のプロジェクタ照明行列P^βへの書き込み処理について、図21において詳細に説明する。
図21に示す、ステップS1200では、ステップS606において正規化された列ベクトルP^xをプロジェクタ照明行列P^βの左から順に代入する。
以上説明したように、本発明の第2の実施の形態に係るLT行列生成装置によれば、プロジェクタから赤照明、緑照明、及び青照明を照射する場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、RGBの各色について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、RGBの各色について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
また、図13に示した状況において、未校正なプロジェクタ・カメラシステムを使って、未知の任意形状の表面にプロジェクタからの縦横ラインのカラー照明を投影したとき、それぞれのカラー応答データから、プロジェクタ画面の各座標から照明した光線とカメラ画面の各座標の応答とを結び付けるLTを効率的に獲得でき、それらを一度に扱うためのLT行列T^を計測することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、第2の実施の形態においては、カメラ応答観測部において応答データを画像データベースに記憶する場合について説明したが、これに限定されるものではなく、RGBの各色について、検出されたカメラ応答の画素の各々の当該色の輝度値を含むM×M画素をサブ画像として画像データベース28に記憶してもよい。この場合には、RGBの各色のサブ画像を用いて、LT行列を算出するようにすればよい。
次に、第3の実施の形態に係るLT行列生成装置について説明する。
第3の実施の形態においては、N台のプロジェクタと1台のカメラのマルチプロジェクタ・システムを用いている点が第1の実施の形態と異なる。なお、第1の実施の形態に係るLT行列生成装置100と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第1の実施の形態と同様の処理を行う。
<本発明の第3の実施の形態に係るLT行列生成装置の構成>
次に、本発明の第3の実施の形態に係るLT行列生成装置の構成について説明する。図22に示すように、本発明の第3の実施の形態に係るLT行列生成装置300は、カメラ10と、N台のプロジェクタ12A〜プロジェクタ12Nと、演算部320と、出力部90と、を含んで構成されている。
カメラ10は、切替部332において切り替えられたプロジェクタ12A〜プロジェクタ12Nのうちの何れか1つのプロジェクタにより投影された単色画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部326に出力する。
演算部320は、切替部332と、同期制御部322と、ライン照明生成部324と、カメラ応答観測部326と、画像データベース328と、LT行列算出部330とを含んで構成されている。
切替部332は、同期制御部322の切り替え指示により、処理対象となるプロジェクタをプロジェクタ12A〜プロジェクタ12Nのうちの1つに切り替える。なお、第3の実施の形態においては、1番初めの処理対象のプロジェクタとしてプロジェクタ12Aが選択されているものとする。また、第3の実施の形態においては、切替部332は、スイッチや分岐装置などを利用する。また、第3の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、同期制御部322の切り替え指示により処理対象となるプロジェクタを切り替える。
同期制御部322は、フレーム番号毎に、切替部332において切り替えられたプロジェクタ12A〜プロジェクタ12Nのうちの1つのプロジェクタから照明を照射させ、照射された照明をカメラ10により撮影するように制御する。また、同期制御部322は、フレーム番号fの値が、ライン照明生成部324において投影する全ての照明パターンの数の値2Lであるフレーム番号fをライン照明生成部324とカメラ応答観測部326とに送出した時点で繰り返し処理を停止し、切替部332に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部332において処理対象となるプロジェクタが切り替えられた後に、フレーム番号fの値を1に初期化し、上記処理を繰り返す。
ライン照明生成部324は、切替部332において切り替えられているプロジェクタ12A〜プロジェクタ12Nのうちの1つのプロジェクタから投影するプロジェクタ画面における照明パターンを生成する。
カメラ応答観測部326は、カメラ10において観測した、切替部332において切り替えられているプロジェクタ12A〜プロジェクタ12Nのうちの1つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号fと対応づけて当該照明光についての応答データを作成し、画像データベース328に記憶する。
画像データベース328には、プロジェクタ毎に、フレーム番号fの各々に対応した応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
LT行列算出部330は、プロジェクタ毎に、画像データベース328に記憶されているフレーム番号fの各々に対応した応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、LTを抽出し、LT行列を生成する。
なお、第3の実施の形態に係るLT行列生成装置の他の構成及び作用については、第1の実施の形態と同様であるため、説明を省略する。
以上説明したように、本発明の第3の実施の形態に係るLT行列生成装置によれば、複数のプロジェクタを用いる場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
例えば、第3の実施の形態においては、カメラと、プロジェクタと、画像データベースとがLT行列生成装置の構成要素として接続している場合について説明したが、これに限定されるものではなく、カメラと、プロジェクタと、画像データベースとにおける、当該行列生成処理に必要なデータを取得することができれば、同期制御部と、カメラ応答観測部と、LT行列算出部とへのデータのやり取りは、ハードディスク、RAID装置、及びCD−ROM等の記録媒体を利用してもよい。また、ネットワークを介してリモートなデータ資源を利用する形態でもよい。
次に、第4の実施の形態に係るLT行列生成装置について説明する。
第4の実施の形態においては、N台のプロジェクタと1台のカメラのマルチプロジェクタ・システムを用いている点が第2の実施の形態と異なる。なお、第1及び第2の実施の形態に係るLT行列生成装置100及びLT行列生成装置200と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが選択された場合、当該プロジェクタについて、第2の実施の形態と同様の処理をおこなって、カラー照明を使ってカラー応答のLT行列を算出する。
<本発明の第4の実施の形態に係るLT行列生成装置の構成>
次に、本発明の第4の実施の形態に係るLT行列生成装置の構成について説明する。図23に示すように、本発明の第4の実施の形態に係るLT行列生成装置400は、カメラ210と、N台のプロジェクタ212A〜プロジェクタ212Nと、演算部420と、出力部90と、を含んで構成されている。
カメラ210は、切替部432において切り替えられたプロジェクタ212A〜プロジェクタ212Nのうちの何れか1つのプロジェクタにより投影された赤照明画像、緑照明画像、及び青照明画像を観測し、色値を表すRGB値を取得し、カメラ応答観測部426に出力する。
演算部420は、切替部432と、同期制御部422と、ライン照明生成部424と、カメラ応答観測部426と、画像データベース428と、LT行列算出部430とを含んで構成されている。
切替部432は、同期制御部422の切り替え指示により、処理対象となるプロジェクタをプロジェクタ212A〜プロジェクタ212Nのうちの1つに切り替える。なお、第4の実施の形態においては、1番初めの処理対象のプロジェクタとしてプロジェクタ212Aが選択されているものとする。また、第4の実施の形態においては、切替部432は、スイッチや分岐装置などを利用する。また、第4の実施の形態においては、終了条件である全てのプロジェクタを選択するまで、同期制御部422の選択指示により処理対象となるプロジェクタを選択する。
同期制御部422は、フレーム番号毎に、切替部432において切り替えられたプロジェクタ212A〜プロジェクタ212Nのうちの1つのプロジェクタから照明を照射させ、照射された照明をカメラ210により撮影するように制御する。
ライン照明生成部424は、切替部432において切り替えられたプロジェクタ212A〜プロジェクタ212Nのうちの1つのプロジェクタから投影するプロジェクタ画面における照明パターンを生成する。
カメラ応答観測部426は、カメラ210において観測した、切替部432において切り替えられているプロジェクタ212A〜プロジェクタ212Nのうちの1つのプロジェクタから投影された照明光に対するカメラ応答を検出し、フレーム番号fの各々と対応づけて当該照明光についての応答データを生成し、画像データベース428に記憶する。
画像データベース428には、プロジェクタ毎に、フレーム番号fの各々に対応した応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とが記憶されている。
LT行列算出部430は、プロジェクタ毎に、画像データベース428に記憶されているフレーム番号fの各々に対応した赤照明、緑照明、及び青照明の各々に対応する応答データの各々と、フレーム番号fの各々に対応した縦ラインパターンの各々又は横ラインパターンの各々とに基づいて、LTを抽出し、LT行列を生成する。
なお、第4の実施の形態に係るLT行列生成装置の他の構成及び作用については、第1及び第2の実施の形態と同様であるため、説明を省略する。
以上説明したように、本発明の第4の実施の形態に係るLT行列生成装置によれば、複数のプロジェクタを用いて、赤照明、緑照明、及び青照明を照射する場合において、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる所定幅の横ラインの照明を生成し、フレーム番号毎に、プロジェクタから照明を照射させ、照射された照明をカメラにより撮影するように制御し、フレーム番号毎にカメラにより撮影した観測画像の各々について、RGBの各色について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、RGBの各色について、重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、組み合わせの各々について、重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、生成したカメラ応答行列及びプロジェクタ照明行列に基づいて、ライト・トランスポート行列を算出することにより、少ない画像からライト・トランスポートを効率的に獲得することができる。
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
10 カメラ
12 プロジェクタ
20 演算部
22 同期制御部
24 ライン照明生成部
26 カメラ応答観測部
28 画像データベース
30 LT行列算出部
90 出力部
100 LT行列生成装置
200 LT行列生成装置
210 カメラ
212 プロジェクタ
220 演算部
222 同期制御部
224 ライン照明生成部
226 カメラ応答観測部
228 画像データベース
230 LT行列算出部
300 LT行列生成装置
320 演算部
322 同期制御部
324 ライン照明生成部
326 カメラ応答観測部
328 画像データベース
330 LT行列算出部
332 切替部
400 LT行列生成装置
420 演算部
422 同期制御部
424 ライン照明生成部
426 カメラ応答観測部
428 画像データベース
430 LT行列算出部
432 切替部

Claims (6)

  1. プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成するライン照明生成部と、
    前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御する同期制御部と、
    前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、
    前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出するLT行列算出部と、
    を含み、
    前記ライン照明生成部は、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、
    前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、
    前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、
    前記LT行列算出部は、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出するLT行列生成装置。
  2. 照明を照射するプロジェクタを、複数のプロジェクタのうちの何れかに切り替える切替部を更に含み、
    前記ライン照明生成部は、前記切替部によって切り換えられたプロジェクタから照射するための前記縦ラインの照明又は前記横ラインの照明を生成し、
    前記同期制御部は、前記切替部によって切り替えられたプロジェクタから照明を照射させ、
    前記LT行列算出部は、前記切替部によって切り換えられたプロジェクタについて、前記ライト・トランスポート行列を算出する請求項記載のLT行列生成装置。
  3. 前記LT行列算出部は、左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複するカメラ応答の画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記カメラ応答行列を生成し、
    左から右への一方方向の画素の走査を、下から上へと繰り返すことにより、前記組み合わせについて前記重複する画素の輝度値を表す列データを生成し、前記組み合わせの各々について生成された前記列データから、前記プロジェクタ照明行列を生成する請求項1又は2記載のLT行列生成装置。
  4. ライン照明生成部と、同期制御部と、カメラ応答観測部と、LT行列算出部を含む、LT行列生成装置における、LT行列生成方法であって、
    前記ライン照明生成部は、プロジェクタから照射するための、フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの照明を生成し、
    前記同期制御部は、前記フレーム番号毎に、前記プロジェクタから照明を照射させ、前記照射された照明をカメラにより撮影するように制御し、
    前記カメラ応答観測部は、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、
    前記LT行列算出部は、前記ライン照明生成部により生成された縦ラインの照明の各々に対応するフレーム番号と、横ラインの照明の各々に対応するフレーム番号との組み合わせの各々について、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の画素とにおいて重複するカメラ応答の画素の各々の輝度値を表すカメラ応答行列を生成し、前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの照明と前記組み合わせの他方のフレーム番号に対応する横ラインの照明とにおいて重複する画素の各々の輝度値を表すプロジェクタ照明行列を生成し、前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される照明の画素及び前記カメラ応答の画素間の対応関係を表すライト・トランスポート行列を算出する
    ことを含み、
    前記ライン照明生成部が生成することでは、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの赤照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの緑照明を生成し、前記フレーム番号毎に予め定められた、各々位置が異なる所定幅の縦ライン、又は各々位置が異なる前記所定幅の横ラインの青照明を生成し、
    前記同期制御部が制御することでは、前記フレーム番号毎に、前記プロジェクタから赤照明を照射させ、前記照射された赤照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから緑照明を照射させ、前記照射された緑照明を前記カメラにより撮影するように制御し、前記フレーム番号毎に、前記プロジェクタから青照明を照射させ、前記照射された青照明を前記カメラにより撮影するように制御し、
    前記カメラ応答観測部が検出することでは、前記フレーム番号毎に前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい赤の輝度値を有する画素をカメラ応答の赤の画素として検出し、予め定められた閾値よりも大きい緑の輝度値を有する画素をカメラ応答の緑の画素として検出し、予め定められた閾値よりも大きい青の輝度値を有する画素をカメラ応答の青の画素として検出し、
    前記LT行列算出部が算出することでは、前記ライン照明生成部により生成された縦ラインの赤照明に対応するフレーム番号と、横ラインの赤照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記ライン照明生成部により生成された縦ラインの緑照明に対応するフレーム番号と、横ラインの緑照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記ライン照明生成部により生成された縦ラインの青照明に対応するフレーム番号と、横ラインの青照明に対応するフレーム番号との組み合わせの各々について、赤、緑、及び青の各色に対し、前記組み合わせの一方のフレーム番号に対する前記観測画像について検出された前記カメラ応答の前記色の画素と、前記組み合わせの他方のフレーム番号に対する前記観測画像について検出されたカメラ応答の前記色の画素とにおいて重複するカメラ応答の前記色の画素の各々の前記色の輝度値を表す前記カメラ応答行列の各々を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの赤照明と前記組み合わせの他方のフレーム番号に対応する横ラインの赤照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの緑照明と前記組み合わせの他方のフレーム番号に対応する横ラインの緑照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記組み合わせの各々について、前記組み合わせの一方のフレーム番号に対応する縦ラインの青照明と前記組み合わせの他方のフレーム番号に対応する横ラインの青照明とにおいて重複する画素の各々の輝度値を表す前記プロジェクタ照明行列を生成し、
    前記生成したカメラ応答行列及び前記プロジェクタ照明行列に基づいて、前記プロジェクタから照射される赤照明、緑照明、及び青照明の画素、並びに前記カメラ応答の赤の画素、緑の画素、及び青の画素間の対応関係を表す前記ライト・トランスポート行列を算出するLT行列生成方法。
  5. コンピュータを、請求項1〜請求項の何れか1項記載のLT行列生成装置を構成する各部として機能させるためのプログラム。
  6. コンピュータを、請求項1〜請求項の何れか1項記載のLT行列生成装置を構成する各部として機能させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2014159857A 2014-08-05 2014-08-05 Lt行列生成装置、方法、プログラム、及び記録媒体 Active JP6291382B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014159857A JP6291382B2 (ja) 2014-08-05 2014-08-05 Lt行列生成装置、方法、プログラム、及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014159857A JP6291382B2 (ja) 2014-08-05 2014-08-05 Lt行列生成装置、方法、プログラム、及び記録媒体

Publications (2)

Publication Number Publication Date
JP2016039415A JP2016039415A (ja) 2016-03-22
JP6291382B2 true JP6291382B2 (ja) 2018-03-14

Family

ID=55530195

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014159857A Active JP6291382B2 (ja) 2014-08-05 2014-08-05 Lt行列生成装置、方法、プログラム、及び記録媒体

Country Status (1)

Country Link
JP (1) JP6291382B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171431A (ja) * 2007-01-12 2008-07-24 Seiko Epson Corp 基準行列の推定逆行列を生成する方法、第2のプロジェクタからの第2の投影画像を用いて第1のプロジェクタからの第1の投影画像をシミュレートする方法、投影画像を生成する方法および投影システム
US8243144B2 (en) * 2009-07-31 2012-08-14 Seiko Epson Corporation Light transport matrix from homography

Also Published As

Publication number Publication date
JP2016039415A (ja) 2016-03-22

Similar Documents

Publication Publication Date Title
US11115633B2 (en) Method and system for projector calibration
US10750141B2 (en) Automatic calibration projection system and method
US7978928B2 (en) View projection for dynamic configurations
US8310525B2 (en) One-touch projector alignment for 3D stereo display
US8042954B2 (en) Mosaicing of view projections
US20100245684A1 (en) Resolution Scalable View Projection
US20100245591A1 (en) Small Memory Footprint Light Transport Matrix Capture
JP6126519B2 (ja) 空間投影装置、空間投影方法、空間投影プログラム及び記録媒体
JP5973368B2 (ja) 空間投影装置、空間投影方法及び空間投影プログラム
JP2008171431A (ja) 基準行列の推定逆行列を生成する方法、第2のプロジェクタからの第2の投影画像を用いて第1のプロジェクタからの第1の投影画像をシミュレートする方法、投影画像を生成する方法および投影システム
JP6679966B2 (ja) 三次元仮想空間提示システム、三次元仮想空間提示方法及びプログラム
JP6291382B2 (ja) Lt行列生成装置、方法、プログラム、及び記録媒体
JP2017183903A (ja) 空間映像再現装置、方法、及びプログラム
JP6069241B2 (ja) 空間投影装置及び空間投影プログラム
JP6383678B2 (ja) リライティング画像生成装置、方法、及びプログラム
JP6464058B2 (ja) 画像投影装置、方法、及びプログラム
JP6600609B2 (ja) 空間映像再現装置、方法、及びプログラム
JP2018050252A (ja) 空間投影装置、方法、及びプログラム
JP2017083778A (ja) 画像投影装置、方法、及びプログラム
JP6373221B2 (ja) 画像投影装置、方法、及びプログラム
Kolomenski Realization Of A Spatial Augmented Reality System-A Digital Whiteboard Using a Kinect Sensor and a PC Projector
Gaiani et al. The monuments restoration yard: a virtualization method and the case of study of Sala delle Cariatidi in Palazzo Reale, Milan
JPH11167449A (ja) 画像表示装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170515

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170704

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170830

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180206

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180209

R150 Certificate of patent or registration of utility model

Ref document number: 6291382

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150