JP6600609B2 - 空間映像再現装置、方法、及びプログラム - Google Patents

空間映像再現装置、方法、及びプログラム Download PDF

Info

Publication number
JP6600609B2
JP6600609B2 JP2016201629A JP2016201629A JP6600609B2 JP 6600609 B2 JP6600609 B2 JP 6600609B2 JP 2016201629 A JP2016201629 A JP 2016201629A JP 2016201629 A JP2016201629 A JP 2016201629A JP 6600609 B2 JP6600609 B2 JP 6600609B2
Authority
JP
Japan
Prior art keywords
pixel
illumination
camera
response
image
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
JP2016201629A
Other languages
English (en)
Other versions
JP2018063356A (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 JP2016201629A priority Critical patent/JP6600609B2/ja
Publication of JP2018063356A publication Critical patent/JP2018063356A/ja
Application granted granted Critical
Publication of JP6600609B2 publication Critical patent/JP6600609B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Transforming Electric Information Into Light Information (AREA)
  • Controls And Circuits For Display Device (AREA)

Description

本発明は、空間映像再現装置、方法、及びプログラムに係り、特に、プロジェクション・マッピングに関する行列を生成する空間映像再現装置、方法、及びプログラムに関する。
プロジェクタは極めてフレキシブルな画像出力デバイスであり、投影仕様の範囲内であれば個人スペース、会議ホール、巨大パブリックビューイング、及びビルの壁面などに合わせて自由サイズの映像表示を提供する。プロジェクタを使って平面スクリーンではない任意の構造物(以下、被写体と称する)へ投影するとき、被写体の形状を事前に計測して、その形状に合わせて所定画像が空間歪みの無いように投影する技術は、プロジェクション・マッピング(projection mapping)として知られている。任意スケールの映像投影のメリットを活かしたプロジェクション・マッピングは、エンターテインメント志向のイベントやイルミネーションによる広告表示などに利用されている。
プロジェクション・マッピングでは、所定画像を正確に投影するために、目視確認と手動操作によって1画素単位での位置合わせを行う場合がある。これに対して、プロジェクタ投影の状態をカメラによって把握し、所定画像を指定された位置に投影するために、プロジェクタ・カメラシステムが利用されている。プロジェクタ・カメラシステムは、プロジェクタとカメラが連動して、カメラからのフィードバック画像に応じて、プロジェクタから投影出力する画像を処理する。例えば、平面なスクリーンにプロジェクション・マッピングする場合には、キャリブレーション作業において平面射影変換(plane-homography)を求める。平面射影変換を使うとプロジェクタ画面上の点から幾何的対応点としてカメラ画面上の点を算出することができるため、その対応関係に基づいて所定画像をスクリーン面の決められた場所に投影することができる。一方、空間構造に凹凸があったり曲がった構造である場合には、その空間構造を事前に把握しなければならない。例えば、レーザ計測を利用して、被写体の空間構造または凹凸形状を得る。その形状に合わせて所定画像を幾何的に変形させて、あたかも平面スクリーンへの投影に見えるよう指定個所に所定画像を投影する。あるいは、構造光(structured light)と呼ばれる幾何パターンをプロジェクタから投影し、カメラで観測した歪み画像から空間構造の奥行きの凹凸形状を計測する方式も利用できる。このように、従来技術は、レーザ計測またはプロジェクタ・カメラシステムを利用して外界または被写体の空間構造を把握し、奥行きの凹凸形状に合わせて指定個所へ所定画像を投影する。
これに対して、外界の空間構造を計測せずに、ライト・トランスポート(light transport)を利用した映像生成方法が非特許文献1、非特許文献2で公開されている。ライト・トランスポートとは、全てのプロジェクタ画素と全てのカメラ画素間の幾何的・光学的対応関係を表現したデータである。最も簡易な手段として、図13に示すようにプロジェクタ画素の1点1点を順番に点灯させ、被写体からの光学的反射・屈折光などをカメラ画素において検出することにより、ライト・トランスポートを得ることができる。プロジェクタ画面の画素数がp×q画素でカメラ画面の画素数がu×v画素であるとき、各点光源のカメラ応答の画像Cを列ベクトル化して並べた行列Tはuv×pq画素の巨大、かつ、スパースな行列としてライト・トランスポート行列(light transport matrix)と呼ばれる。ライト・トランスポート行列はプロジェクタ画素と結び付くカメラ画素のRGB応答値を保有するため、リライティング(relighting)に応用することができる。
リライティングとは、実際のプロジェクタとカメラの装置を使わずに、任意の照明の下で被写体がどのようにカメラに映るかを模擬的に可視化する技術である。プロジェクション・マッピングのセットアップでは、臨場感の高い映像演出のために実空間における被写体の照明状態をリライティングによって事前に把握することに役立てられる。さらに、スタジオ撮影や番組制作などの実環境では、照明を変化させて被写体の映像をチェックする場合がある。照明は映画あるいは番組制作において重要な演出効果があるため、製作者の意図に応じて様々な照明変化が試される。このとき、逐次、被写体に照明を当てて映り具合をチェックすることは面倒な作業であるため、コンピュータグラフィックスではリライティング技術を使って模擬的に被写体に対する照明効果を確認する。
非特許文献1では、任意の照明画像を1次元の列ベクトルに再配置したデータを生成し、ライト・トランスポート行列と照明ベクトルの積により瞬時にリライティング画像を得る方法が公知となっている。ライト・トランスポートは全てのプロジェクタ画素と全てのカメラ画素間の対応付けることができるため、ライト・トランスポート行列を使えば実環境において照明を当てることなくリアルなリライティングを可能とする。また、実環境においては、できるだけ少ないプロジェクタ照明パターンとそのカメラ応答を使ってライト・トランスポート行列を獲得することが重要である、非特許文献2では、圧縮センシング(compressed sensing)を応用した獲得方法が公知であり、任意の被写体からライト・トランスポート行列を獲得する手段として最適な方式である。以降では、ライト・トランスポートをLT、ライト・トランスポート行列をLT行列と略する。
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. P. Sen and S. Darabi: "Compressive Dual Photography", Computer Graphics Forum, Vol.28,No.2, pp. 609-618, 2009. S.K.Nayar, G.Krishnan, M.D.Grossberg, and R.Rasker: "Fast Separation of Direct and Global Components of a Scene using High Frequency Illumination", ACM Transactions on Graphics,Vol.25, No.3, pp. 935-944, 2006.
LTを利用したリライティングは、LT行列の要素、すなわち、事前に照明パターンを使って計測したLTデータの精度に大きく依存する。LT行列を効率的に獲得する手段として、圧縮センシングを応用した方法が非特許文献2で公開されている。以下に、圧縮センシングの原理と圧縮センシングを応用したLT行列の獲得方法を説明する。
プロジェクタ・カメラシステムを使って未知な被写体へ映像を投影するとき、プロジェクタ照明の画像とそのカメラ観測画像の対象領域をそれぞれN×N画素、M×M画素の範囲とする。N×N画素のプロジェクタ投影画像をベクトル化したデータをN次元のプロジェクタ照明ベクトルPと与え、M×M画素のカメラ観測画像をベクトル化したデータをM次元のカメラ観測ベクトルをCとする。一般的に、未校正なプロジェクタ・カメラシステムを使って任意の被写体(その3次元形状と反射特性が不明であるとする)へ映像を投影するとき、プロジェクタ照明とカメラ観測の入出力対応は、M×NのLT行列Tを使うと、以下(1)式で表される。

・・・(1)
LT行列Tは、カメラ間の幾何的・光学的対応関係として、プロジェクタの画素から放射された光が被写体に反射したときの直接反射及び間接反射を記述する。Fは環境照明に対応するカメラ応答であるが、暗室環境でプロジェクタ・カメラシステムを使う場合には、プロジェクタからのブラックオフセット光に反応したカメラ応答が主成分となる。
上記(1)式は任意のプロジェクタ照明とカメラ観測のペアについて成り立ち、K種類のプロジェクタ照明{P、P、・・・、P}を用いて、そのカメラ応答{C、C、・・・、C}を観測するとき、以下(2)式を満たす。

・・・(2)
ただし、K≪Nである。非特許文献2では、プロジェクタ照明として、Bernoulli(ベルヌーイ)バイナリパターンが使われている。ベルヌーイバイナリパターンとは、各画素について一様乱数で決定した値が1/2未満あるいはそれ以上のとき、その画素値をOFF/ONとするバイナリパターンであり、K種類のランダムな画素値をもつ照明パターンである。
上記(2)式において、事前に黒画像を投影したカメラ応答画像(背景画像)を得て、その背景差分によりベクトルFが取り除かれているとする。(2)式の転置をとると、以下(3)式を得る。

・・・(3)
ただし、便宜上、

・・・(4)
と置換した。上記(3)式の左辺のK×Mの行列の各列をK次元ベクトルの各々からなる
で表し、上記(3)式の右辺の行列Tの各列をN次元ベクトルの各々からなる
で表すことにより、上記(3)式は、

・・・(5)
と書き直すことができる。(5)式から、第j列のK次元ベクトルvは、

・・・(6)
となる。以下では、vを応答ベクトル、uをLT ベクトルと呼ぶことにする。(6)式は、N次元のLTベクトルuを入力とし、K×Nの行列Φの線形変換によってK次元の応答ベクトルvを出力すると解釈することができる。応答ベクトルvはj番目のカメラ画素におけるK種類のプロジェクタ照明に対する時系列のカメラ応答を表し、未知のLTベクトルuをK種類のプロジェクタ照明から構成される行列Φに変換されることで得られる。一般的に、LT行列Tはスパースな性質をもつため、その行列を構成するLTベクトルuもスパースである。その未知なLTベクトルuを求めるために、(6)式に基づいて圧縮センシングを利用する。
圧縮センシングとは、lノルム最小化の原理に基づいており、(6)式において、

・・・(7)
を満たす解uを求める信号処理手法である。(7)式において、
はlノルムを表し、
はlノルムを表す。圧縮センシングには様々なアルゴリズムが公知であるが、ここでは、実装が容易であり、理論的に収束性の良い、ROMP(Regularized Orthogonal Matching Pursuit)アルゴリズムを利用して解uを求める。圧縮センシングにより、個々のu、j=1、2、・・・、Mについて、MセットのLTベクトル
が得られると、M×NのLT行列Tは、

・・・(8)
の配列により求めることができる。
圧縮センシングは、与えられたデータ、すなわち、応答ベクトルvと行列Φを使って(7)式を満たす最適な信号を推定する。ここで、被写体の表面反射の情報は与えられない。しかしながら、3次元被写体の一部の形状と表面によっては、直接反射が支配的な場合が考えられる。推定されるLTベクトルuは、j番目のカメラ画素と複数のプロジェクタ画素が結びつくLTを表し、直接反射だけでLTが得られる場合は、uは1つの要素が非零で、その他は全て零となる。このような1つだけの要素を推定するためだけに、(7)式に従って最適化計算を実行するのは非効率的であるばかりではなく、推定されるLTベクトルuに不要な要素が付加される場合がある。本来、存在しない間接反射を表すような不要なLTがLT行列に含まれると、リライティング画像生成に影響を与える。任意照明を使ったリライティングでは、スパースかつ高次元ランクのLT行列を使うことが有利であるが、精密かつリアルな映像表現を実現するためには、上記で述べたようにLT行列の要素を的確に推定する必要がある。
以上から、プロジェクタ・カメラシステムの動作を活用したリライティングにおいて、圧縮センシングあるいはスパースかつ高次元ランクのLT行列を獲得する手段に関して、精密かつリアルな映像表現を実現することを目的にLT行列の要素を正確に推定することが課題となってくる。
本発明は、上記問題点を解決するために成されたものであり、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる空間映像再現装置、方法、及びプログラムを提供することを目的とする。
上記目的を達成するために、第1の発明に係る空間映像再現装置は、フレーム番号毎に予め定められた、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成される照明パターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成する照明画像生成部と、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、前記照明パターンである照明画像を前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、前記符号化照明パターンである照明画像を前記カメラにより撮影した前記観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、前記画素において最大の輝度値となるカメラ応答を特定し、前記特定されたカメラ応答であるか否かを表す復号ビット列を生成する応答成分検出部と、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、前記カメラ応答の画素の各々について、前記グローバル反射成分を含むか否かを判定し、前記カメラ応答の画素の各々について、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素における、前記符号化照明パターンである照明画像の各々での点灯の有無と、前記応答成分検出部によって前記画素について検出された前記カメラ応答とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定し、前記画素が前記グローバル反射成分を含む場合、前記カメラ応答観測部によって前記画素について検出された前記カメラ応答と、前記照明パターンである照明画像の各々とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するLT行列推定部と、を含んで構成されている。
また、第1の発明に係る空間映像再現装置において、前記LT行列推定部は、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素の各々に対する、前記画素における、前記符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとの類似度を算出し、前記類似度が最大となる前記点灯ベクトルを特定し、前記特定された前記点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定するようにしてもよい。
第2の発明に係る空間映像再現方法は、照明画像生成部が、フレーム番号毎に予め定められた、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成される照明パターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成するステップと、同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、カメラ応答観測部が、前記照明パターンである照明画像を前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、応答成分検出部が、前記符号化照明パターンである照明画像を前記カメラにより撮影した前記観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、前記画素において最大の輝度値となるカメラ応答を特定し、前記特定されたカメラ応答であるか否かを表す復号ビット列を生成するステップと、LT行列推定部が、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、前記カメラ応答の画素の各々について、前記グローバル反射成分を含むか否かを判定するステップと、前記LT行列推定部が、前記カメラ応答の画素の各々について、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素における、前記符号化照明パターンである照明画像の各々での点灯の有無と、前記応答成分検出部によって前記画素について検出された前記カメラ応答とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定するステップと、前記LT行列推定部が、前記画素が前記グローバル反射成分を含む場合、前記カメラ応答観測部によって前記画素について検出された前記カメラ応答と、前記照明パターンである照明画像の各々とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するステップと、を含んで実行することを特徴とする。
また、第2の発明に係る空間映像再現方法において、前記LT行列推定部が推定するステップは、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素の各々に対する、前記画素における、前記符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとの類似度を算出し、前記類似度が最大となる前記点灯ベクトルを特定し、前記特定された前記点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定するようにしてもよい。
また、第3の発明に係るプログラムは、コンピュータを、第1の発明に係る空間映像再現装置の各部として機能させるためのプログラムである。
本発明の空間映像再現装置、方法、及びプログラムによれば、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成される照明パターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成し、プロジェクタから照明パターンである照明画像を出力させ、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、符号化照明パターンである照明画像をカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成し、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定し、画素がグローバル反射成分を含まない場合、復号ビット列から得られる、画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無と、応答成分検出部によって画素について検出されたカメラ応答とに基づいて、画素に関する各要素からなるライト・トランスポートベクトルを推定し、画素がグローバル反射成分を含む場合、カメラ応答と、照明パターンである照明画像の各々とに基づいて、画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定することにより、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる、という効果が得られる。
本発明の第1及び第2の実施の形態に係る空間映像再現装置の構成を示すブロック図である。 各レイヤの照明ブロックを示す図である。 ベルヌーイバイナリパターンのカメラ応答を保存するデータ形式を示す図である。 符号化照明パターンのカメラ応答を保存するデータ形式を示す図である。 本発明の実施の形態に係る空間映像再現装置における同期制御処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置における照明画像生成処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置におけるカメラ応答観測処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置における応答成分検出処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置における応答成分検出処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置におけるLT行列推定処理ルーチンを示すフローチャートである。 本発明の実施の形態に係る空間映像再現装置におけるリライティング生成処理ルーチンを示すフローチャートである。 本発明の第3及び第4の実施の形態に係る空間映像再現装置の構成を示すブロック図である。 未校正なプロジェクタ・カメラシステムを使ったLT行列の測定を示す図である。
以下、図面を参照して本発明の実施の形態を詳細に説明する。
<本発明の実施の形態に係る概要>
本発明の実施の形態に係る手法によれば、被写体の3次元構造やその表面の反射特性を必要とせずに、プロジェクタ・カメラシステムを使って得たLT に基づき、任意照明を与えたときの被写体のリライティングを可能とする。リライティングはLT行列と照明ベクトルの積から実現できるためリアルタイム処理に適しており、映画製作あるいは番組制作などのコンピュータグラフィックス、さらには実環境とのリアルな仮想現実感(virtual reality)や拡張現実感(augmented reality)を生み出すことができる。
<本発明の第1の実施の形態に係る空間映像再現装置の構成>
まず、本発明の第1の実施の形態に係る空間映像再現装置の構成について説明する。図1に示すように、空間映像再現装置100は、カメラ10と、プロジェクタ12と、演算部20と、を含んで構成されている。なお、第1の実施の形態においては、1台のプロジェクタと1台のカメラのプロジェクタ・カメラシステムを用いる。以下では、照明装置をプロジェクタ12、画像観測装置をカメラ10とした実施の形態を説明するが、その他の照明装置と画像観測装置にも適用することができる。
カメラ10は、プロジェクタ12により投影された照明画像を観測し、明るさを示す濃淡画像を取得し、カメラ応答観測部26に出力する。なお、第1の実施の形態においては、プロジェクタ12から出力する単色照明として、例えば、白色照明を用いる。
プロジェクタ12は、単色照明を用いて、照明画像生成部24による出力指示に従って被写体を投影する。
演算部20は、同期制御部22と、照明画像生成部24と、カメラ応答観測部26と、応答成分検出部28と、LT行列推定部30と、リライティング生成部32と、映像DB40とを含んで構成されている。
また、上記の空間映像再現装置100の構成において、プロジェクタ12、カメラ10は必ずしも構成要素として接続している必要はなく、処理に必要なデータを取得すればよく、照明画像生成部24、カメラ応答観測部26、応答成分検出部28、LT行列推定部30、リライティング生成部32、映像DB40からそれぞれの矢印へのデータの流れは、ハードディスク、RAID装置、CD-ROMなどの記録媒体を利用するか、または、ネットワークを介してリモートなデータ資源を利用する形態でもどちらでも構わない。
同期制御部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において投影する全ての照明画像の数の値Kとなるフレーム番号fを照明画像生成部24とカメラ応答観測部26とに送出した時点で、同期制御部22は、上述の繰り返し処理を停止する。
次に、フレーム番号fをf=1に初期化し、応答成分検出部28からの応答信号を待機し、当該応答信号を受信すると、照明画像生成部24と、応答成分検出部28とへフレーム番号fを送出する。次に、フレーム番号fをf=f+1とカウントアップし、再び、応答成分検出部28からの応答信号を待つ。以降、プロジェクタ12からの照明とカメラ10における観測とをフレーム番号fで同期をとりながら、上述の処理と同様にフレーム番号fを照明画像生成部24と、応答成分検出部28とへの送出を繰り返す。
このように、同期制御部22は、上記の繰り返し処理を、照明画像生成部24において符号化照明パターンを生成する場合と、ベルヌーイバイナリパターンを生成する場合とで2回行う。
照明画像生成部24は、以下に説明するように、フレーム番号毎に予め定められた、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びベルヌーイバイナリパターンを含む、プロジェクタ12から照射するための照明画像を、フレーム番号毎に生成する。なお、ベルヌーイバイナリパターンがランダムに生成される照明パターンの一例である。
照明画像生成部24では、照明パターンの生成において、2種類の照明パターンを生成する。1つは、応答成分検出部で使う符号化照明パターンであり、もう1つは、圧縮センシングに使うベルヌーイバイナリパターンである。以下では、符号化照明パターンを生成した後にベルヌーイバイナリパターンを生成する例を説明するが、その順序が逆になっても以降の処理に変更はない。
まず、照明画像生成部24で符号化照明パターンを生成する場合について説明する。
符号化照明パターンとは、あるルールに従ってプロジェクタ画面の各画素をON/OFFするバイナリパターンである。図2はプロジェクタ画面を8×8画素とした簡単な例である。この例において、レイヤ1ではブロックA、B、C、及びDの画素領域はそれぞれ4×4画素である。レイヤ2では区分けされた領域は2×2画素単位でラベル付けされており、レイヤ3では1画素単位でラベル付けされている。
照明画像生成部24は処理を開始すると、プロジェクタ投影の対象範囲としてN×N(=2×2)画素とレイヤ数K=4nを設定する。同期制御部22からフレーム番号fを受信すると、フレーム番号の判定において、値4で割って商を算出する。値4はレイヤがA、B、C、及びDの4つのブロックに分けされていることに起因する数字であり、ブロック種類に応じて変更可能である。図2では、最初にレイヤ1を使う。フレーム番号に応じてその剰余が0のとき、レイヤ1→レイヤ2、あるいはレイヤ2→レイヤ3にレイヤを変更する。レイヤ変更がない場合、すなわち、その剰余が0でなければ、レイヤを変更しない。
次に、画素割当の変更では、ブロックA、B、C、及びDで割り当てた画素をフレーム番号に応じて点灯させる。図2では、フレーム番号fを4で割ったときの余りが0のときはブロックAの画素領域を照明とし、フレーム番号fを4で割ったときの余りが1のときはブロックBの画素領域を照明とし、フレーム番号fを4で割ったときの余りが2のときはブロックCの画素領域を照明とし、フレーム番号fを4で割ったときの余りが3のときはブロックDの画素領域を照明とする。点灯画素による照明では、点灯させる画素が決まった後、その照明パターンの画像をプロジェクタへ出力する。プロジェクタによって、その照明パターンが被写体に投影される。
以上述べたように、時系列順ではf=1,2,3,4のとき、レイヤ1においてそれぞれブロックA、B、C、及びDの画素領域を、f=5,6,7,8のとき、レイヤ2においてそれぞれブロックA、B、C、及びDの画素領域、f=9,10,11,12のとき、レイヤ3においてそれぞれブロックA、B、C、及びDの画素領域をそれぞれ点灯させる。このように、フレーム番号に従って、レイヤのブロックA、B、C、及びDの画素領域の順番に照明として点灯させて被写体を照らす。
一般的には、プロジェクタ画面が2×2画素のとき、本処理ではフレーム番号f=1,2,...,4n,(K=4n)に従って、ブロックA、B、C、及びDの照明パターンを使う。N×N(=2×2)のプロジェクタ画面において、上左隅をプロジェクタ2次元座標系の原点(0,0)とした場合、任意のプロジェクタ画素pは、

・・・(9)
で与えられるので、その2次元座標(x,y)は、2進数表現により

・・・(10)

・・・(11)
と表すことができる。(10)式、(11)式における2進係数a、b(1≦m≦n)は符号化照明パターンの第mレイヤに相当し、その値は0と1のいずれかをとる。符号化照明パターンでは、レイヤmにおいて、

・・・(12)

・・・(13)

・・・(14)

・・・(15)
の組み合わせに応じて、照明ブロックA、B、C、及びDの割り当てを決定する。各ブロックは2n−m×2n−m画素のサイズとなり、割り当てられたブロックの順番に従ってその画素をON/OFFする。
なお、プロジェクタ画面が2×2画素(n整数)で表現できない場合、例えば、800×600画素の場合では、それを包含するできるだけ大きい2×2画素において、上記の処理を行う。
この例では、1024×1024画素が包含する最大画素サイズなので、210×210画素として上記の照明パターンを生成する。800×600画素を超える画素領域では無効画素であるため値0を常時セットしておき、210×210画素において、各レイヤのブロックを照明とした符号化照明パターンを生成する。これにより、任意サイズのプロジェクタ画面に対応して、符号化照明パターンを生成する。
同期制御部22からのフレーム番号を受信するたびに、符号化照明パターンを次々と生成し、被写体にその照明画像を照射する。照明画像を生成するたびに、フレーム番号付きで映像DB40に保存する。全ての照明画像を被写体に投影し終わるまで繰り返す。以上の処理によって、K=4n種類の符号化照明パターンの照明画像をフレーム番号に従って順番にプロジェクタ12から投影する。
次に、照明画像生成部24でベルヌーイバイナリパターンを生成する場合について説明する。
符号化照明パターンを生成した後、同期制御部22において、フレーム番号fが1に初期化される。そのフレーム番号を受信してベルヌーイバイナリパターンの生成処理を開始すると、プロジェクタ投影の対象範囲としてN×N(=2×2)画素と照明画像の枚数Kを設定する(例えば、K=1000と設定する)。nは整数であり、符号化照明パターンを生成したときの値を使う。説明の便宜上、プロジェクタ画素領域をN×N画素とするが、縦横の画素数は任意に設定できる。同期制御部22からフレーム番号fを受信すると、正規化した乱数により全ての画素にランダムな値を算出し、値が1/2未満のときは黒画素に割り当て、それ以上のときは白画素に割り当てる。これによりランダムな白黒のバイナリパターンの照明画像を生成する。照明画像が生成されると、その画像をプロジェクタ12から出力する。
同期制御部22からのフレーム番号を受信するたびに、時系列に相関性の低いベルヌーイバイナリパターンにより生成した照明画像を次々と生成し、被写体にその照明画像を照射する。照明画像を生成するたびに、フレーム番号付きで映像DB40に保存する。全ての照明画像を被写体に投影し終わるまで繰り返す。以上の処理によって、K種類のベルヌーイバイナリパターンの照明画像をフレーム番号に従って順番にプロジェクタ12から投影する。
カメラ応答観測部26は、以下に説明するように、照明画像生成部24でベルヌーイバイナリパターンから生成された照明画像をカメラ10により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出する。
カメラ応答観測部26は、具体的には、まず、観測範囲を設定する。第1の実施の形態においては、カメラ10において観測された画像全体を処理対象とせず、当該設定により指定された範囲のカメラ応答を検出する。第1の実施の形態においては、例えば、画像内でのM×M画素の範囲を指定する(縦横のサイズは任意に設定しても処理内容に変更はない)。次に、カメラ応答を検出するための閾値を設定する。当該閾値は、カメラ応答を検出する範囲の画素の各々について、当該閾値以上の輝度値である画素をカメラ応答として検出する。次に、同期制御部22からフレーム番号fを受信すると、カメラ10が画像を取得することができる状態かのチェックを行い、撮影可能状態ならばカメラ10から観測画像を取得する。次に、映像DB40に記憶されているプロジェクタ12により照明画像を投影していない状態の観測画像である背景画像(プロジェクタ照明を当てていない状態)を取得し、観測画像と背景画像との背景差分を処理する。背景画像とは、照明パターンが照明されていない状態、あるいは黒を投影したときの観測画像である。この背景差分において先の閾値として例えば10階調に設定しておき、この値より大きい画素をカメラの応答画素として検出する。続いて、M×M画素の範囲において検出した画素の2次元座標とそのカメラ応答の輝度値を所定のデータ形式で保存する。通常、画像はrgbの画素値が配列化されたデータであるが、モノクロ濃淡の照明画像に対するカメラ応答のrgb値はほぼ同じ応答であると考えて、本実施の形態ではgの画素値だけを保存する。
図3はベルヌーイバイナリパターンに対するカメラ応答データを保存するデータ形式の例であり、各カメラ画素の座標が書き込まれ、その右側にK種類のベルヌーイバイナリパターンの照明に対して閾値以上のカメラ応答値が書き込まれる。閾値以下のときは値0が書き込まれる。すなわち、横方向は各カメラ画素の時系列のカメラ応答値が並ぶ。カメラ応答データを書き込んだ後、次のカメラ観測に備えて同期制御部22へ応答信号を送信する。照明画像生成部24からK種類のベルヌーイバイナリパターンの照明がプロジェクタ12から出力されるため、カメラ応答観測部26の処理はK種類のカメラ画像からカメラ応答データを保存する。全てのカメラ応答データを保存した時点で終了する。
応答成分検出部28は、以下に説明するように、符号化照明パターンである照明画像をカメラ10により撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成する。
応答成分検出部28では、照明画像生成部24からの符号化照明パターンを使って観測した画像から、各カメラ画素の直接反射成分を発生させるプロジェクタ画素を検出する。符号化照明パターンは、各レイヤにおいてA、B、C、及びDの照明ブロックのうち一つの照明ブロックの画素値がONとなっているので、各観測画像においてその照明に応答したカメラ画素を検出する。
以下に、応答成分検出部28の処理の機能について説明しておく。照明画像生成部24から生成された符号化照明パターンは、各レイヤにおいて4つのブロックの画素を順番に照明として使っているため、応答画素はその照明に対応して検出される。このとき、ブロックAとブロックBの境界付近に位置する画素では、ブロックAとブロックBからの双方の符号化照明パターンに対して応答画素が検出される場合や、4つのブロック境界付近に位置する画素では、複数の符号化照明パターンに対して応答画素が検出される場合がある。そこで、応答成分検出部28では、照明画像生成部24において同じレイヤにおいてブロックを切り替えながら照明パターンを投影したとき、各ブロックからの照明に対して最大の輝度値となる応答画素を特定する。同じカメラ画素が1つ以上の照明パターンに応答した場合は、最大応答を得たとき値1、そうでない場合を値0とすると、各レイヤから4ビットの復号ビット列が得られる。図2の例において、その復号ビット列を説明する。レイヤ3の画素pの照明に応答したカメラ画素は、pはレイヤ1ではブロックA、レイヤ2ではブロックCに属するので、3つのレイヤに対する復号ビット列は1000 0010 0100になる。一方、レイヤ3の画素pの照明に応答したカメラ画素は、pはレイヤ1ではブロックC、レイヤ2ではブロックDに属するので、3つのレイヤに対する復号ビット列は0010 0001 0010になる。
全てのレイヤにおいて、0/1の復号ビット列を取得できることが望ましいが、実際には、あるレイヤにおいて0/1のバイナリ系列の復号が困難となる。例えば、レイヤを上げるに従って照明ブロックのサイズが細分化されるため、次第に4種類の照明ブロックに対してほぼ同じ応答を検出するようになる。どのレイヤまで許容するかは、プロジェクタ・カメラシステムの空間解像度に依存する。例えば、プロジェクタから2×2画素の微小矩形光源を投影したとき、背景画像の雑音に埋もれずにカメラ応答が検出されるときは、第1レイヤから第s(=n−x+1)レイヤまでを復号ビット列生成の対象とする。
応答成分検出部28では、第1レイヤから順番にレイヤ数を上げながら、各カメラ画素の直接反射成分を発生させるプロジェクタ画素を、粗密探索(coarse-to-fine approach)によってある程度の範囲に絞り込む(直接反射を発生させたプロジェクタ画素を決定するのは、LT行列推定部30で行う)。第1レイヤから第sレイヤに関して、0/1の復号ビット列を得たとする。この時点で、第1レイヤから第sレイヤの0/1復号ビット列から、2進係数a、b(1≦m≦s)が分かる。その2進係数を使って、カメラ画素の直接応答を引き起こしたプロジェクタ画素の座標(x,y)は、以下(16)式、(17)式の範囲と決定することができる。

・・・(16)

・・・(17)
上記を踏まえて応答成分検出部28の処理内容を説明する。応答成分検出部28は、処理を開始すると、観測範囲を設定する。応答成分検出部28では、画像全体を処理対象とせず、指定された範囲のカメラ応答を検出する。例えば、画像内でのM×M画素の範囲を指定する(縦横のサイズは任意に設定しても処理内容に変更はない)。次に、閾値を設定する。先に設定した範囲の画素において閾値以上の輝度値(画素値)が得られるとき、カメラ応答として検出する。
同期制御部22からフレーム番号fを受信すると、応答成分検出部28では、カメラが画像を取得できる状態かのチェックを行い、撮影可能状態ならばカメラから観測画像を取得する。次に、事前に保有しておいた背景画像(プロジェクタ照明を当てていない状態)との背景差分を処理する。背景画像とは、照明パターンが照明されていない状態、あるいは黒を投影したときの観測画像である。この背景差分において先の閾値として例えば10階調に設定しておき、この値より大きい画素をカメラの応答画素として検出する。通常、画像はrgbの画素値が配列化されたデータであるが、モノクロ濃淡の照明画像に対するカメラ応答のrgb値はほぼ同じ応答であると考えて、本実施の形態ではgの画素値についてカメラ応答を検出する。
符号化照明パターンでは、各レイヤにおいて4つの照明ブロックの画素を順番に照明として使っているため、各カメラ応答の画素に対して、mレイヤで観測した4枚の観測画像から、各ブロックからの照明に対して最大の輝度値となる応答画素を特定し、A、B、C、及びDのうちどれか1つの照明ブロックと対応付ける。各レイヤについて、応答有り場合を1、そうでない場合を0として復号ビット列を図4のデータ形式に従って保存する。この0/1の復号ビット列は、対象とする全てのカメラ画素について、各レイヤにおいてA、B、C、及びDのいずれかの照明ブロックに応答したかを示すデータである。第1レイヤから第sレイヤまでの0/1復号ビット列から、各画素の直接応答を引き起こしたプロジェクタ画素の座標(x,y)が、(16)式、(17)式の座標範囲に設定される。
以上の処理を、対象の全てのカメラ画素に対して、各レイヤから復号化した0/1のビット列を、図4のデータ形式で保存する。
LT行列推定部30は、映像DB40に格納されている、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定する。判定の結果、カメラ応答の画素の各々について、当該画素がグローバル反射成分を含まない場合、当該画素について生成された復号ビット列から得られる、当該画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルqと、応答成分検出部28によって当該画素について検出されたカメラ応答vとに基づいて、画素に関する各要素からなるライト・トランスポートベクトルを推定する。一方、当該画素がグローバル反射成分を含む場合、カメラ応答観測部26によって当該画素について検出されたカメラ応答と、ベルヌーイバイナリパターンから生成された照明画像の各々とに基づいて、当該画素に関する各要素からなるライト・トランスポートベクトルを推定する。これにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定する。
ここで、判定の結果、画素がグローバル反射成分を含まない場合、当該画素について生成された復号ビット列から得られる、当該画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素の各々に対する、当該画素における、符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルqと、応答成分検出部28によって当該画素について検出されたカメラ応答を表すベクトルvとの類似度Θjkを算出し、類似度が最大となる点灯ベクトルqを特定し、特定された点灯ベクトルqと、応答成分検出部28によって当該画素について検出されたカメラ応答を表すベクトルvとに基づいて、当該画素に関する各要素からなるライト・トランスポートベクトルを推定する。
LT行列推定部30における具体的な処理内容を説明する前に、直接応答だけを含むカメラ応答の場合のLTの獲得原理について補足する。上記(8)式において、LT行列の第j行のN次元ベクトルuは、全てのプロジェクタ画素とj番目のカメラ画素間の応答を表現している。その非零成分は、第j番目のカメラ画素の応答に寄与するプロジェクタ画素間のLTを表している。例えば、k番目のプロジェクタ画素からの直接反射光を、第j番目のカメラ画素が応答値ujkとして検出する場合、LTベクトルuは、

・・・(18)
で与えられ、k番目の要素ujkのみを持つ。説明の便宜上、上記(4)式で定義したセンシング行列を、照明画像の各画素に対するK次元ベクトルの各々からなる
を使って、

・・・(19)
と表す。上記(6)式に従うと、LTベクトルuは、そのセンシング行列によりK次元カメラ応答ベクトル

・・・(20)
に圧縮される。(20)式による圧縮変換は、K種類の符号化照明パターンにおける、k番目のプロジェクタ画素の点灯の有無、すなわち、K次元からなる点灯ベクトルqのバイナリ信号に同期した時系列のカメラ応答を生じる。(20)式において未知数は要素ujkだけである。カメラ応答vを発生させている、プロジェクタから照射される符号化照明パターンにおけるプロジェクタ画素の点灯ベクトルqが分かれば、LTベクトルuの要素を

・・・(21)
により得られる。つまり、あるカメラ画素において直接反射が支配的である場合は、上記(7)式を使って圧縮センシングにより最適化を計算する必要はなく、(21)式で与えられる容易な計算で求めることができる。
(21)式で応答値ujkを計算するためには、センシング行列Φの各列の中で時系列のカメラ応答vと同期した点灯ベクトルqを瞬時に見つけなければならない。そのような信号検出はベクトル間の相関性を検出することで容易に分かる。ただし、全てのプロジェクタ画素の、各符号化照明パターンにおける点灯の有無(センシング行列Φの全ての列ベクトル)と各カメラ応答ベクトル間の組み合わせにおいて全ての相関を計算することは、LT行列の推定において効率的ではない。相関を計算するための探索範囲の絞込みができれば、時系列カメラ応答に同期する照明ベクトルを迅速に見つけられる。そこで、その探索範囲の絞込みに、応答成分検出部28で得た図4の0/1復号ビット列を利用する。復号ビット列から得た探索範囲にあるプロジェクタ画素の点灯ベクトルをセンシング行列Φの列ベクトルから取り出し、それらとの相関を計算することで、効率的かつ高速に点灯ベクトルqを検出することができる。
以上を踏まえて、LT行列推定部30の内容を説明する。LT行列推定部30は、圧縮センシング(compressed sensing)を利用して、照明画像生成部24で使ったベルヌーイバイナリパターンの照明画像とカメラ応答観測部26で得たカメラ応答データからLTベクトルを推定し、LT行列を推定するのが主な処理内容であり、直接反射のみの画素に対しては、符号化照明パターンの照明画像を用いた処理によってLTベクトルを推定する処理を行う。
LT行列推定部30は、処理を開始すると、上記(4)式で定義したセンシング行列Φを設定する。センシング行列Φの行方向は時系列のベルヌーイバイナリパターンの照明画像をベクトルに再配置して並べたものである。照明画像生成部24で生成したベルヌーイバイナリパターンの照明画像(N×N画素のK種類のランダムパターンの画像)を時系列に読み出し、それをN次元の行ベクトルに配列し、上から順番にそのベクトルを並べることにより、K×Nのセンシング行列Φを得る。
圧縮センシングを動作させる前に、上記(7)式におけるパラメータεを設定する。カメラ応答には雑音が付加されているため、例えば、ε=0.01と与える。次に、カメラ応答観測部26において保存された図3のデータ形式において、j番目の行のテーブル値を読み取り、K次元の応答ベクトルvを用意する(図3の横方向の値はK次元の応答ベクトルvのベクトル成分に対応する)。
続いて、映像DB40から反射成分画像を読み出す。反射成分画像とは、被写体からの直接反射成分とグローバル反射成分に分離されたカメラ応答の画像である。グローバル反射成分とは、空間構造間の相互反射、屈折・透過等の物理的要因で発生する間接反射を表す。本実施の形態では、非特許文献3で公知となっている方法により、事前に観測した画像から反射成分画像を得ておけばよい。その反射成分画像において、各カメラ画素においてグローバル成分を抽出する(rgb値があるが、ほぼ同程度と考えてg値だけを取り出す)。当該画素においてグローバル成分が所定の閾値(例えば10階調)を越えた場合、直接反射と間接反射に関するLTを獲得するために圧縮センシングを使う。一方、その画素においてグローバル成分が閾値未満の場合、直接反射に関するLTを獲得するために上記で述べた計算方法を使う。
LT行列の構築に備えて、事前にM×Nの行列バッファTを用意しておく。グローバル成分有無のチェックにおいて、グローバル成分が有ると判定した場合、ROMPアルゴリズムを利用して、上記(7)式を満たすLTベクトルuを復元する。ROMPアルゴリズムによって求められたN次元のLTベクトルuを、上記(8)式に従い代入する。なお、通常のメモリサイズで用意するのではなく、スパース表現でメモリを確保し、LTベクトルの非零要素のみを代入する。
一方、グローバル成分有無のチェックにおいて、グローバル成分が無いと判定した場合、図4の復号ビット列から、該当するカメラ画素について上記(16)式、(17)式によりプロジェクタ画素の範囲を算出し、相関計算のための探索範囲とする。続いて、探索範囲にあるプロジェクタ画素の点灯ベクトルqをセンシング行列Φの列から逐次取り出す。取り出した点灯ベクトルqの各々において、得られた点灯ベクトルqと応答ベクトルvとの間で、以下(22)式の正規化相関係数の計算を使って類似度Θjkを算出する。

・・・(22)
探索範囲の全ての点灯ベクトルqについて、応答ベクトルvとの正規化相関係数を算出し、符号化照明パターンの中で最大値になる点灯ベクトルqを探索する。探索により得られた最大値になる点灯ベクトルqを上記(21)式に代入して、直接反射に関するLTの応答値ujkを得る。さらに、上記(18)式に従ってLTベクトルuを算出して、(8)式に従い代入する。
以上の処理を、図3のデータ形式の上から順番にK次元の応答ベクトルvを読み出し、反射成分画像から抽出した各カメラ画素の応答において、直接反射だけの成分の場合には(18)式のLTベクトルを(21)式を使って算出し、そうでない場合は圧縮センシングによってLTベクトルを復号化することで、効率的かつ高精度にLT行列を求めることができる。これらのLT行列を映像DB40に格納して、処理を終了する。
リライティング生成部32は、以下に説明するように、LT行列推定部30により得られたLT行列に基づいて、所定の照明画像に対するリライティングを行ったリライティング画像を生成して、出力部50に出力する。
リライティング生成部32では、まず処理を開始すると、所定の照明画像を設定する。動画の場合は1フレームずつ与えることとする。便宜上、照明画像の画素サイズをN×Nとする。照明画像の全ての画素のRGB値からRの画像、Gの画像、Bの画像に分離する。各画像の2次元画素の配置を1列に並べ替えてベクトル化して、Rの照明画像のベクトルP、Gの照明画像のベクトルP、Bの照明画像のベクトルPを生成する。次に、リライティングの計算において、行列演算:C=TP、Cg=TP、C=TPにより、R照明に該当するベクトルC、G照明に該当するベクトルC、B照明に該当するベクトルCをそれぞれ得る。照明画像をベクトル化したときの逆の処理で各ベクトルから2次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。これをディスプレイ等の画像出力装置に出力すれば与えた照明の下での観測画像を仮想的に得ることができる。動画の場合、次のフレームを所定の照明画像として設定し、上記の処理を繰り返す。本処理は行列とベクトルの線形演算に基づいているため、リアルタイム処理あるいは動画のフレームに適している。
以上述べたように、本実施の形態の空間映像再現装置100は、グローバル成分を有する画素に対して圧縮センシングを使って高品質なLT行列を推定し、そのLT行列を使ってリライティング画像を提供することができる。
<本発明の第1の実施の形態に係る空間映像再現装置の作用>
次に、本発明の第1の実施の形態に係る空間映像再現装置100の作用について説明する。まず、同期制御部22による同期制御処理ルーチンについて説明する。同期制御処理ルーチンの処理は、カメラ応答観測部26及び応答成分検出部28のそれぞれに対して行われる。
図5に示す、ステップS100では、フレーム番号fの値を1に初期化する。
次に、ステップS102では、カメラ応答観測部26又は応答成分検出部28から応答信号を受信したか否かを判定する。応答信号を受信した場合には、ステップS104へ移行し、応答信号を受信しない場合には、ステップS102の処理を繰り返す。
次に、ステップS104では、ステップS100又はステップS108において取得したフレーム番号fを照明画像生成部24、及びカメラ応答観測部26又は応答成分検出部28に送出する。
次に、ステップS106では、フレーム番号fの値がKの値か否かを判定する。フレーム番号fの値がKである場合には、同期制御処理ルーチンを終了し、フレーム番号fの値がKよりも小さい場合には、ステップS108へ移行する。
ステップS108では、フレーム番号fの値に1を加えた値をフレーム番号fの値として設定し、ステップS102へ移行して、ステップS102〜ステップS106の処理を繰り返す。
次に、図6に示す、照明画像生成部24による照明画像生成処理ルーチンについて説明する。以下の照明画像生成処理ルーチンは、符号化照明パターン、及びベルヌーイバイナリパターンのそれぞれについて行う。
まず、ステップS200では、照明画像を投影する照明対象領域をN×N画素と設定する。
次に、ステップS202では、f=1を設定する。
次に、ステップS204では、同期制御部22からフレーム番号fを受信したか否かを判定する。フレーム番号fを受信した場合には、ステップS206へ移行し、フレーム番号fを受信していない場合には、ステップS204の処理を繰り返す。
ステップS206では、符号化照明パターンの場合には、符号化照明パターンにより、レイヤ毎に、生成した照明を照射するための照明画像を設定すると共に、映像DB40に記憶する。ベルヌーイバイナリパターンの場合には、ベルヌーイバイナリパターンにより生成した照明を照射するための照明画像を設定すると共に、映像DB40に記憶する。
ステップS208では、ステップS206で設定した照明画像をプロジェクタ12から出力する。
次に、ステップS210では、ステップS204において取得したフレーム番号fの値がKであるか否かを判定する。フレーム番号fの値がKである場合には、照明画像生成処理ルーチンを終了し、フレーム番号fの値がKより小さい場合には、ステップS212へ移行してf=f+1とし、ステップS204〜ステップS208の処理を繰り返す。
次に、図7に示す、カメラ応答観測部26によるカメラ応答観測処理ルーチンについて説明する。
まず、ステップS300では、カメラ10において観測する範囲をM×M画素の範囲に設定する。
次に、ステップS302では、カメラ応答に対する所定の閾値を設定する。
次に、ステップS304では、映像DB40に記憶されている背景画像を読み込む。
次に、ステップ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と対応づけて映像DB40に記憶する。
次に、ステップS322では、ステップS308において取得したフレーム番号fの値がKであるか否かを判定する。フレーム番号fの値がKである場合には、カメラ応答観測処理ルーチンを終了し、フレーム番号fの値がKよりも小さい場合には、ステップS306へ移行し、ステップS306〜ステップS322の処理を繰り返す。
次に、図8及び図9に示す、応答成分検出部28による応答成分検出処理ルーチンについて説明する。
まず、ステップS400では、カメラ10において観測する範囲をM×M画素の範囲に設定する。
次に、ステップS402では、カメラ応答に対する所定の閾値を設定する。
次に、ステップS404では、映像DB40に記憶されている背景画像を読み込む。
次に、ステップS406では、同期制御部22へ応答信号を送信する。
次に、ステップS408では、同期制御部22からフレーム番号fを受信したか否かを判定する。フレーム番号fを受信した場合には、ステップS410へ移行し、フレーム番号fを受信していない場合には、ステップS408の処理を繰り返す。
次に、ステップS410では、カメラ10の状態をチェックする。
次に、ステップS412では、ステップS410において取得したカメラ10の状態が、撮影可能状態であるか否かを判定する。カメラ10が撮影可能状態である場合には、ステップS414へ移行し、カメラ10が撮影可能状態でない場合には、ステップS410へ移行する。
次に、ステップS414では、カメラ10から観測画像を取得する。
次に、ステップS416では、ステップS404において取得した背景画像と、ステップS414において取得した観測画像との背景差分を取得する。
次に、ステップS418では、ステップS402において取得した閾値と、ステップS416において取得した背景差分とから、カメラ応答の画素の各々を検出する。
次に、ステップS420では、ステップS418において取得したカメラ応答の画素の各々の輝度値を応答データとして、ステップS408において取得したフレーム番号fと対応づけて映像DB40に記憶する。
次に、ステップS422では、ステップS408において取得したフレーム番号fの値がKであるか否かを判定する。フレーム番号fの値がKである場合には、ステップS424へ移行し、フレーム番号fの値がKよりも小さい場合には、ステップS406へ移行し、ステップS406〜ステップS422の処理を繰り返す。
次に、ステップS424では、レイヤのカウンタmをm=1と設定する。
次に、ステップS426では、ステップS418でレイヤmについての4枚の観測画像から取得した応答データに基づいて、画素の各々について、レイヤmに対して最大の輝度値となるカメラ応答を特定し、当該レイヤmにおける復号ビット列を生成して、映像DB40に記憶する。
次に、ステップS428では、カウンタmがm=sであるかを判定し、sであれば応答成分検出処理ルーチンを終了し、sでなければステップS430へ移行する。
次に、ステップS430では、カウンタmをm=m+1とカウントアップして、ステップS426へ移行する。
次に、図10に示す、LT行列推定部30によるLT行列推定処理ルーチンについて説明する。
まず、ステップS500では、フレーム番号毎に生成された照明画像に基づいて、上記(4)式に従ってセンシング行列Φを算出する。
次に、ステップS502では、上記(7)式におけるパラメータεを、ε=0.01と設定する。
次に、ステップS504では、カウンタiをi=1に初期化する。
次に、ステップS506では、カウンタiの値に基づいて、カメラ応答のi番目の画素を指定する。
次に、ステップS508では、ステップS506で指定されたカメラ応答のi番目の画素について、映像DB40に格納された各カメラ応答データを読み出して、応答ベクトルvを生成する。
次に、ステップS510では、映像DB40から反射成分画像を読み出す。
ステップS512では、カメラ応答のi番目の画素に対応する反射成分画像の画素について、グローバル成分を抽出し、当該画素においてグローバル成分が所定の閾値を超えているか否かを判定し、超えている場合には、直接反射と間接反射に関するLTを獲得するためにステップS514へ移行し、閾値未満の場合には、直接反射に関するLTを獲得するためにステップS516へ移行する。
ステップS514では、カメラ応答のi番目の画素について、ステップS500で算出したセンシング行列Φと、ステップS508で生成した応答ベクトルvとに基づいて、上記(7)式を満たす、LTベクトルuを復元する。
ステップS516では、カメラ応答のi番目の画素について、上記(16)式、(17)式によりプロジェクタ画素の範囲を算出して相関計算のための探索範囲とし、探索範囲にあるプロジェクタ画素の点灯ベクトルqをセンシング行列Φの列から逐次取り出す。取り出した点灯ベクトルqの各々において、得られた点灯ベクトルqと応答ベクトルvとの間で、上記(22)式の正規化相関係数の計算を使って類似度Θjkを算出し、最大値になる点灯ベクトルqを探索する。
ステップS518では、ステップS516の探索により得られた最大値になる点灯ベクトルqとステップS508で生成した応答ベクトルvとを上記(21)式に代入して、直接反射に関するLTの応答値ujkを得る。さらに、上記(18)式に従ってLTベクトルuを算出する。
ステップS520では、カメラ応答のi番目の画素について、予め用意されたM×Nの行列バッファTに対し、上記(8)式に従って、ステップS514又はS518で得られたj番目の行にLTベクトルのuを代入し、LT行列を構築し、映像DB40に保存する。
次に、ステップS522では、iがMであるかを判定し、Mであれば処理を終了し、MでなければステップS524へ移行する。
次に、ステップS524では、カウンタiをi=i+1とカウントアップして、ステップS506へ移行する。
次に、図11に示す、リライティング生成処理ルーチンについて説明する。
ステップS600では、動画のフレームを選択し、選択したフレームに対応する所定の照明画像を設定する。
ステップS602では、ステップS600で設定した所定の照明画像の全ての画素のRGB値から所定の照明画像のベクトル(Rの照明画像のベクトルP、Gの照明画像のベクトルP、Bの照明画像のベクトルP)を生成する。
ステップS604では、リライティングに必要な行列演算:C=TP、C=TP、C=TPにより、R照明に該当するベクトルC、G照明に該当するベクトルC、B照明に該当するベクトルCをそれぞれ計算する。
ステップS606では、ステップS604で計算したC、C、Cの各ベクトルから2次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。
ステップS608では、動画の全てのフレームについて処理を終了したかを判定し、全てのフレームについて処理を終了していなければ、ステップS600に戻って動画の次のフレームを選択して処理を繰り返し、全てのフレームについて処理を終了していればリライティング生成処理ルーチンを終了する。
以上説明したように、本発明の第1の実施の形態に係る空間映像再現装置によれば、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成されるベルヌーイバイナリパターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成し、プロジェクタからベルヌーイバイナリパターンである照明画像を出力させ、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、符号化照明パターンである照明画像をカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成し、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定し、画素がグローバル反射成分を含まない場合、復号ビット列から得られる、画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無と、応答成分検出部によって画素について検出されたカメラ応答とに基づいて、画素に関する各要素からなるLTベクトルを推定し、画素がグローバル反射成分を含む場合、カメラ応答と、ベルヌーイバイナリパターンである照明画像の各々とに基づいて、画素に関する各要素からなるLTベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すLT行列を推定することにより、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる。
<本発明の第2の実施の形態に係る空間映像再現装置の構成>
次に、本発明の第2の実施の形態に係る空間映像再現装置の構成について説明する。なお、第1の実施の形態と同様となる箇所については同一符号を付して説明を省略する。
第2の実施の形態の基本構成は第1の実施の形態と同様であり、カメラ応答観測部26において、照明画像生成部24から出力されたベルヌーイバイナリパターンについて、カメラ画像においてそのRGB値を計測し、RGBに対応したLT行列を獲得して、リライティング画像を生成する点が異なる。以下、第1の実施の形態と異なる処理内容について、カメラ応答観測部26、LT行列推定部30、及びリライティング生成部32の処理内容について説明する。
上記図1に示すように、第2の実施の形態では、空間映像再現装置100は、第1の実施の形態と同様に、カメラ10と、プロジェクタ12と、演算部20とを含んで構成されている。
カメラ応答観測部26では、観測画像と背景画像との背景差分の処理において、閾値より大きい画素のRGB値をカメラの応答画素として検出する。次に、ベルヌーイバイナリパターンの照明画像に対して、カメラ応答のRGB値が多少異なるため、第2の実施の形態では、Rの画素値、Gの画素値、Bの画素値をそれぞれ図3のデータ形式に従って保存する。照明画像生成部24からK種類のベルヌーイバイナリパターンの照明がプロジェクタから出力されるため、本処理はK種類のカメラ画像からカメラ応答データをRGB成分に分けて保存する。
LT行列推定部30では、圧縮センシングを利用して、照明画像生成部で使ったベルヌーイバイナリパターンの照明画像とカメラ応答観測部26で得たrgbのカメラ応答データからLT行列を推定する。
LT行列推定部30の処理で使うセンシング行列Φは第1の実施の形態と同じであり、センシング行列Φの行方向は時系列のベルヌーイバイナリパターンの照明画像をベクトルに再配置して並べたものである。次に、カメラ応答観測部26において保存された図3のデータ形式のうちのR画素値のデータ形式において、j番目の行のテーブル値を読み取り、K次元の応答ベクトルvを読み込む。反射成分画像において、各カメラ画素においてグローバルR成分を抽出する。以降、第1の実施の形態と同様に、反射成分画像のグローバルR成分の有無をチェックして、そのグローバルR成分が有ると判定した場合、ROMPアルゴリズムを利用して、上記(7)式を満たすLTベクトルuを復元する。続いて、LT行列Trrの該当する箇所へ代入する。
一方、グローバルR成分の有無をチェックにおいて、グローバルR成分が無いと判定した場合、探索範囲の全ての符号化照明パターンとの正規化相関係数を上記(22)式により算出し、符号化照明パターンの中で最大値になる点灯ベクトルqを得る。最大値になる点灯ベクトルqを(21)式に代入して、直接反射に関するLTの応答値ujkを得る。続いて、上記(18)式に従ってLTベクトルuを求め、LT行列Trrの該当する箇所へ代入する。
以上の同様の処理を、他のカラー成分(G成分とB成分)についても繰り返す。グローバルG成分の有無によりLT行列Tggを獲得し、グローバルB成分の有無によりLT行列Tbbを獲得する。
以上により、カメラ10のカラー応答に応じて、3つのLT行列:Trr、Tgg、Tbbを獲得する。
リライティング生成部32では、照明画像の全ての画素のRGB値からRの画像、Gの画像、Bの画像に分離する。各画像の2次元画素の配置を1列に並べ替えてベクトル化して、Rの照明画像のベクトルP、Gの照明画像のベクトルP、Bの照明画像のベクトルPを生成する。次に、リライティングの計算において、行列演算:C=Trr、C=Tgg、C=Tbbにより、R照明に該当するベクトルC、G照明に該当するベクトルC、B照明に該当するベクトルCをそれぞれ得る。照明画像をベクトル化したときの逆の処理で各ベクトルから2次元行列へ再配置して、与えた照明に対するリライティング画像を生成する。これをディスプレイ等の画像出力装置に出力すれば与えた照明の下での観測画像を仮想的に得ることができる。
なお、第2の実施の形態に係る空間映像再現装置の他の構成及び作用については、第1の実施の形態と同様であるため詳細な説明を省略する。
本発明の第2の実施の形態に係る空間映像再現装置によれば、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成されるベルヌーイバイナリパターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成し、プロジェクタからベルヌーイバイナリパターンである照明画像を出力させ、RGBに対応した、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、符号化照明パターンである照明画像をカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成し、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定し、画素がグローバル反射成分を含まない場合、復号ビット列から得られる、画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無と、応答成分検出部によって画素について検出されたカメラ応答とに基づいて、画素に関する各要素からなるLTベクトルを推定し、画素がグローバル反射成分を含む場合、カメラ応答と、ベルヌーイバイナリパターンである照明画像の各々とに基づいて、画素に関する各要素からなるLTベクトルを推定することにより、RGBに対応したLT行列を推定することにより、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる。
<本発明の第3の実施の形態に係る空間映像再現装置の構成>
次に、本発明の第3の実施の形態に係る空間映像再現装置の構成について説明する。第3の実施の形態においては、N台のプロジェクタと1台のカメラのマルチプロジェクタ・システムを用いている点が第1の実施の形態と異なる。なお、第1の実施の形態に係る空間映像再現装置100と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第1の実施の形態と同様の処理を行う。
図12に示すように、本発明の第3の実施の形態に係る空間映像再現装置200は、カメラ210と、N台のプロジェクタ212A〜プロジェクタ212Nと、演算部220とを含んで構成されている。
カメラ210は、切替部242において切り替えられたプロジェクタ212A〜プロジェクタ212Nのうちの何れか1つのプロジェクタにより投影された照明画像を観測し、カメラ応答観測部26に出力する。
演算部220は、切替部242と、同期制御部222と、照明画像生成部24と、カメラ応答観測部26と、応答成分検出部28と、LT行列推定部30と、リライティング生成部32と、映像DB40とを含んで構成されている。
切替部242は、同期制御部222の切り替え指示により、処理対象となるプロジェクタをプロジェクタ212A〜プロジェクタ212Nのうちの1つに切り替える。なお、第4の実施の形態においては、1番初めの処理対象のプロジェクタとしてプロジェクタ212Aが選択されているものとする。また、第3の実施の形態においては、切替部242は、スイッチや分岐装置などを利用する。また、第3の実施の形態においては、終了条件である全てのプロジェクタについて処理が終了するまで、同期制御部222の切り替え指示により処理対象となるプロジェクタを切り替える。
同期制御部222は、照明画像生成部24においてベルヌーイバイナリパターンを生成する場合に、フレーム番号毎に、切替部242において切り替えられたプロジェクタ212A〜プロジェクタ212Nのうちの1つのプロジェクタから照明を照射させ、照射された照明をカメラ210により撮影するように制御する。また、同期制御部222は、フレーム番号fの値が、照明画像生成部24において投影する全ての照明画像の数の値Kであるフレーム番号fを照明画像生成部24とカメラ応答観測部26とに送出した時点で繰り返し処理を停止し、切替部242に処理対象となるプロジェクタを切り替える切り替え指示を出力し、切替部242において処理対象となるプロジェクタが切り替えられた後に、フレーム番号fの値を1に初期化し、上記処理を繰り返す。また、照明画像生成部24において符号化照明パターンを生成する場合には、カメラ応答観測部26を応答成分検出部28に置き換えて同様の処理を行う。
なお、他の各処理部の処理は第1の実施の形態と同様であり、照明画像生成部24、カメラ応答観測部26、応答成分検出部28、LT行列推定部30、及びリライティング生成部32の各々の処理をプロジェクタ毎に行うようにすればよい。
第3の実施の形態に係る空間映像再現装置の他の構成及び作用については、第1の実施の形態と同様であるため詳細な説明を省略する。
以上説明したように、本発明の第3の実施の形態に係る空間映像再現装置によれば、プロジェクタ毎に、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成されるベルヌーイバイナリパターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成し、プロジェクタからベルヌーイバイナリパターンである照明画像を出力させ、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、符号化照明パターンである照明画像をカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成し、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定し、画素がグローバル反射成分を含まない場合、復号ビット列から得られる、画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無と、応答成分検出部によって画素について検出されたカメラ応答とに基づいて、画素に関する各要素からなるLTベクトルを推定し、画素がグローバル反射成分を含む場合、カメラ応答と、ベルヌーイバイナリパターンである照明画像の各々とに基づいて、画素に関する各要素からなるLTベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すLT行列を推定することにより、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる。
<本発明の第4の実施の形態に係る空間映像再現装置の構成>
次に、本発明の第4の実施の形態に係る空間映像再現装置の構成について説明する。第4の実施の形態においては、カラー応答に応じて処理を行う点が第3の実施の形態と異なる。なお、第2及び第3の実施の形態に係る空間映像再現装置100と同様の構成及び作用については、同一の符号を付して説明を省略する。また、プロジェクタが切り替えられた場合、当該切り替え先のプロジェクタについて、第2の実施の形態と同様の処理を行う。
上記図12に示すように、本発明の第4の実施の形態に係る空間映像再現装置200は、カメラ210と、N台のプロジェクタ212A〜プロジェクタ212Nと、演算部220とを含んで構成されている。
演算部220は、切替部242と、同期制御部222と、照明画像生成部24と、カメラ応答観測部26と、応答成分検出部28と、LT行列推定部30と、リライティング生成部32と、映像DB40とを含んで構成されている。
切替部242、及び同期制御部222の処理は第3の実施の形態と同様である。
他の各処理部の処理は第2の実施の形態と同様であり、カメラ210のカラー応答に応じて、照明画像生成部24、カメラ応答観測部26、応答成分検出部28、LT行列推定部30、及びリライティング生成部32の各々の処理をプロジェクタ毎に行うようにすればよい。
第4の実施の形態に係る空間映像再現装置の他の構成及び作用については、第2の実施の形態と同様であるため詳細な説明を省略する。
本発明の第4の実施の形態に係る空間映像再現装置によれば、プロジェクタ毎に、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成されるベルヌーイバイナリパターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成し、プロジェクタからベルヌーイバイナリパターンである照明画像を出力させ、RGBに対応した、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、符号化照明パターンである照明画像をカメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、画素において最大の輝度値となるカメラ応答を特定し、特定されたカメラ応答であるか否かを表す復号ビット列を生成し、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、カメラ応答の画素の各々について、グローバル反射成分を含むか否かを判定し、画素がグローバル反射成分を含まない場合、復号ビット列から得られる、画素のカメラ応答を引き起こした照明画像の画素の範囲に含まれる画素における、符号化照明パターンである照明画像の各々での点灯の有無と、応答成分検出部によって画素について検出されたカメラ応答とに基づいて、画素に関する各要素からなるLTベクトルを推定し、画素がグローバル反射成分を含む場合、カメラ応答と、ベルヌーイバイナリパターンである照明画像の各々とに基づいて、画素に関する各要素からなるLTベクトルを推定することにより、RGBに対応したLT行列を推定することにより、効率よく、かつ、精度よく、リライティングを行うためのLT行列を推定できる。
また、本発明の第1〜第4の実施の形態によれば、被写体の3次元構造やその表面の反射特性を必要とせずに、プロジェクタ・カメラシステムを使って得たLTに基づき、任意照明を与えたときの被写体のリライティングを可能とする。リライティングはLT行列と照明ベクトルの積から実現できるためリアルタイム処理に適しており、映画製作あるいは番組制作などのコンピュータグラフィックス、さらには実環境とのリアルな仮想現実感(virtual reality)や拡張現実感(augmented reality)を生み出すことができる。
なお、本発明は、上述した実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読み取り可能な記録媒体に格納して提供することも可能であるし、ネットワークを介して提供することも可能である。
10、210 カメラ
12、212A〜N プロジェクタ
20、220 演算部
22、222 同期制御部
24 照明画像生成部
26 カメラ応答観測部
28 応答成分検出部
30 LT行列推定部
32 リライティング生成部
40 映像DB
50 出力部
100、200 空間映像再現装置
242 切替部

Claims (5)

  1. フレーム番号毎に予め定められた、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成される照明パターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成する照明画像生成部と、
    前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御する同期制御部と、
    前記照明パターンである照明画像を前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するカメラ応答観測部と、
    前記符号化照明パターンである照明画像を前記カメラにより撮影した前記観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、前記画素において最大の輝度値となるカメラ応答を特定し、前記特定されたカメラ応答であるか否かを表す復号ビット列を生成する応答成分検出部と、
    予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、前記カメラ応答の画素の各々について、前記グローバル反射成分を含むか否かを判定し、
    前記カメラ応答の画素の各々について、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素における、前記符号化照明パターンである照明画像の各々での点灯の有無と、前記応答成分検出部によって前記画素について検出された前記カメラ応答とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定し、
    前記画素が前記グローバル反射成分を含む場合、前記カメラ応答観測部によって前記画素について検出された前記カメラ応答と、前記照明パターンである照明画像の各々とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するLT行列推定部と、
    を含む空間映像再現装置。
  2. 前記LT行列推定部は、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素の各々に対する、前記画素における、前記符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとの類似度を算出し、前記類似度が最大となる前記点灯ベクトルを特定し、前記特定された前記点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定する請求項1に記載の空間映像再現装置。
  3. 照明画像生成部が、フレーム番号毎に予め定められた、レイヤ毎に各ブロックを順に点灯させた符号化照明パターン、及びランダムに生成される照明パターンを含む、プロジェクタから照射するための照明画像を、フレーム番号毎に生成するステップと、
    同期制御部が、前記フレーム番号毎に、前記プロジェクタから照明画像を出力させ、前記出力された照明画像をカメラにより撮影するように制御するステップと、
    カメラ応答観測部が、前記照明パターンである照明画像を前記カメラにより撮影した観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出するステップと、
    応答成分検出部が、前記符号化照明パターンである照明画像を前記カメラにより撮影した前記観測画像の各々について、予め定められた閾値よりも大きい輝度値を有する画素をカメラ応答の画素として検出し、画素の各々について、レイヤ毎に、前記画素において最大の輝度値となるカメラ応答を特定し、前記特定されたカメラ応答であるか否かを表す復号ビット列を生成するステップと、
    LT行列推定部が、予め取得された、画素毎に被写体からの直接反射成分及びグローバル反射成分を表す反射成分画像に基づいて、前記カメラ応答の画素の各々について、前記グローバル反射成分を含むか否かを判定するステップと、
    前記LT行列推定部が、前記カメラ応答の画素の各々について、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素における、前記符号化照明パターンである照明画像の各々での点灯の有無と、前記応答成分検出部によって前記画素について検出された前記カメラ応答とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定するステップと、
    前記LT行列推定部が、前記画素が前記グローバル反射成分を含む場合、前記カメラ応答観測部によって前記画素について検出された前記カメラ応答と、前記照明パターンである照明画像の各々とに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定することにより、プロジェクタ照明の各画素及びカメラ応答の各画素間の対応関係を表すライト・トランスポート行列を推定するステップと、
    を含む空間映像再現方法。
  4. 前記LT行列推定部が推定するステップは、前記画素が前記グローバル反射成分を含まない場合、前記画素について生成された復号ビット列から得られる、前記画素のカメラ応答を引き起こした前記照明画像の画素の範囲に含まれる画素の各々に対する、前記画素における、前記符号化照明パターンである照明画像の各々での点灯の有無を表す点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとの類似度を算出し、前記類似度が最大となる前記点灯ベクトルを特定し、前記特定された前記点灯ベクトルと、前記応答成分検出部によって前記画素について検出された前記カメラ応答を表すベクトルとに基づいて、前記画素に関する各要素からなるライト・トランスポートベクトルを推定する請求項3に記載の空間映像再現方法。
  5. コンピュータを、請求項1又は請求項2に記載の空間映像再現装置の各部として機能させるためのプログラム。
JP2016201629A 2016-10-13 2016-10-13 空間映像再現装置、方法、及びプログラム Active JP6600609B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016201629A JP6600609B2 (ja) 2016-10-13 2016-10-13 空間映像再現装置、方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016201629A JP6600609B2 (ja) 2016-10-13 2016-10-13 空間映像再現装置、方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2018063356A JP2018063356A (ja) 2018-04-19
JP6600609B2 true JP6600609B2 (ja) 2019-10-30

Family

ID=61966714

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016201629A Active JP6600609B2 (ja) 2016-10-13 2016-10-13 空間映像再現装置、方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6600609B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115541550A (zh) * 2022-10-21 2022-12-30 南京理工大学 基于主成分分析的结构光照明显微成像方法

Also Published As

Publication number Publication date
JP2018063356A (ja) 2018-04-19

Similar Documents

Publication Publication Date Title
JP6510213B2 (ja) 投影システム、半導体集積回路、および画像補正方法
CN101542538B (zh) 用来对光进行建模的方法与系统
WO2019031259A1 (ja) 画像処理装置および方法
US20120242795A1 (en) Digital 3d camera using periodic illumination
JP4209938B2 (ja) 画像処理装置および方法、画像処理プログラムおよび画像処理プロセッサ
WO2014069247A1 (ja) 画像処理装置および画像処理方法、並びにプログラム
US8970693B1 (en) Surface modeling with structured light
KR101817140B1 (ko) 평면 모델링을 통한 깊이 영상의 부호화 방법 및 부호화 장치
US20160255357A1 (en) Feature-based image set compression
WO2019065536A1 (ja) 再構成方法および再構成装置
WO2020075252A1 (ja) 情報処理装置、プログラム及び情報処理方法
JP7078173B2 (ja) 画像処理装置及び3次元計測システム
JP6126519B2 (ja) 空間投影装置、空間投影方法、空間投影プログラム及び記録媒体
JP6575999B2 (ja) 照明情報取得装置、照明復元装置、およびこれらのプログラム
JP6600609B2 (ja) 空間映像再現装置、方法、及びプログラム
JP5973368B2 (ja) 空間投影装置、空間投影方法及び空間投影プログラム
JP2008022421A (ja) 多視点画像圧縮符号化方法、装置及びプログラム
JP2017183903A (ja) 空間映像再現装置、方法、及びプログラム
CN108933939A (zh) 用于确定显示设备的特性的方法和设备
JP6069241B2 (ja) 空間投影装置及び空間投影プログラム
JP2014164497A (ja) 画像処理装置、画像処理方法及びプログラム
CN113706692A (zh) 三维图像重构方法、装置、电子设备以及存储介质
JP2018050252A (ja) 空間投影装置、方法、及びプログラム
JP2017215706A (ja) 映像合成方法、映像取得装置、映像合成装置、映像合成システム及びコンピュータプログラム。
JP5592834B2 (ja) 光学投影制御装置、光学投影制御方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181129

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190828

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191007

R150 Certificate of patent or registration of utility model

Ref document number: 6600609

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150