連載「プロジェクションマッピング技術の変遷」、今回は、色補償についてご紹介します。プロジェクションマッピングでは、身の回りの多様な実物を投影の対象とします。前回は、平面に限らず様々な形状をした投影対象上に、所望の映像を歪みなく表示する幾何補正技術をご紹介しました。一方、投影対象の多様性は形状だけにとどまりません。私達を取り囲む現実空間は、様々な模様のある面で埋め尽くされており、プレゼンテーション等で利用される通常のプロジェクションスクリーンのような単一白色な面はむしろまれです。このような面へのプロジェクションマッピングでは、その模様が投影映像に混ざってしまうため、画質の劣化は避けられません(図1)。今回ご紹介する色補償は、投影対象面の模様を視覚的にキャンセルすることでこのような問題を解決する技術です。実装の容易な簡易手法から、より精度高く補償可能な最新の手法までを解説します。
なお、前回の最後に「次回は、対象が動く場合の幾何補正技術についてご紹介する予定です」と書いていましたが、予告と異なる内容となってしまい申し訳ありません。動的対象に対する幾何補正については、次回以降に機会を見つけてご紹介したいと思います。
目次
1 準備
2 簡易手法
3 色変換行列手法
4 非線形補間手法
5 ダイナミックレンジ制約の解消法
6 まとめ
参考文献
1 準備
ここではまず、色補償手法全てに共通する前提および技術的背景について述べます。最初に、面の模様について考えます。模様があるというのは、面上の反射特性が空間的に一様ではないことを意味します。例えば、面上で反射率の高い箇所と低い箇所が交互に繰り返されると、一様な照明下では明暗の縞模様になります(図2)。反射率の高いところと低いところに同じ照度の光を投影すると、前者よりも後者の方の反射光の輝度は低くなるため、投影映像に縞模様が混ざってしまいます。そこで、反射率の高い箇所への投影照度を低くする/反射率の低い箇所への投影照度を高くすることが、模様を視覚的にキャンセルする色補償の基本戦略となります(図2)。
このように、対象面の各箇所で適切な投影照度を計算する必要がありますので、プロジェクタの画素毎に独立に色補償処理を行うことになります。このため、プロジェクタの各画素が対象面のどこに照射しているのか、その対応を知る必要があります。そこで、対象面を撮影するカメラを用意してプロカム系を構成し、前回(第3回目)にご紹介した空間コード投影法を用いて対応を求めます。今回ご紹介する色補償では、このカメラで撮影される画像を、人が観察する見えと仮定します。また、対象面は拡散反射するものとし、プロジェクタ・カメラと対象面の位置姿勢関係は固定であり、環境照明も変動しないものと仮定します。以降では、これらの背景を踏まえ、代表的な色補償手法についてご説明していきます。
2 簡易手法
これまでに提案されてきた色補償手法の中で、最も簡易なモデルを採用した手法[1]をご紹介します。このモデルは、以降で説明する、より複雑なモデルの基礎にもなります。一つのプロジェクタ画素に着目し、その画素が投影している対象面上の点の明るさを記述するモデルを図3に示します。プロジェクタに入力する画素値(一般的に0〜255ですが、正規化して0〜1とします)を\(p%0\)、プロジェクタから対象面までの距離や入射角による減衰を考慮した減衰項を\(f%0\)、対象点での環境光の照度を\(e%0\)、対象点の反射率を\(r%0\)とします。このとき、カメラで観察される明るさ\(c%0\)は、対象点に照射される照度にその反射率をかけたものになりますので、
\(c=frp+er%0\)… (1)
と表すことができます。先に述べたように、プロジェクタと環境は変化しないという前提においては、プロジェクタと対象面との位置姿勢関係によって決まる\(f%0\)、反射率\(r%0\)および環境光の明るさ\(e%0\)は、定数とみなすことができます。これら定数の値は、以下のようにして較正できます。まず、プロジェクタに0(つまり黒色)を入力して観測した明るさの値が、\(er%0\)となります。\(er%0\)には、環境光だけでなく、プロジェクタに0を入力したときでもレンズから漏れ出てしまうブラックオフセットも含まれます。次に、プロジェクタに1(白色)を入力し、その観測値から先ほど求めた\(er%0\)を引くことで\(fr%0\)を求めることができます。今、表示したい明るさを\(c_t%0\)とすると、プロジェクタに入力すべき画素値\(p_t%0\)は、式(1)を変形した以下の式で求めることができます。
\(p_t=\frac{c_t-er}{fr}%00\)…(2)
この式をプロジェクタ画素毎に計算することで、空間的に一様ではない模様を視覚的にキャンセルするような投影画像を生成することができます。なお、RGBの3チャンネルで独立にこの式を解くことで、このモデルをカラーに拡張することができます。
このモデルは、カメラとプロジェクタそれぞれの入出力特性が線形(リニア)であることが前提となっています。例えば、実空間中の2点をカメラで観測することを考えます。1点の輝度がもう1点の輝度の2倍である場合、対応するカメラ画素値も\(c%0\)と\(2c%0\)のように2倍となるような特性をもつカメラを用いる必要があります。また同様に、プロジェクタから環境中の2点を、\(p%0\)と\(2p%0\)の画素値で照射するとき、それらの照度が2倍となるようなプロジェクタを用いる必要があります。一般的に、映像を扱うデバイスの入出力特性は、ガンマ特性と呼ばれる非線形性を有しています。カメラについては、一眼レフカメラのような上位機種や産業用カメラには、ガンマ特性をオフにして入力特性を線形化できるものが存在します。一方、プロジェクタの既製品には、ガンマ特性をオフにできるものはほぼありません。このため、プロジェクタの出力特性については線形化を行う必要があります。具体的には、白色の対象面に、様々な画素値をプロジェクタに入力して投影し、その反射光の輝度を、入力特性が線形なカメラを用いて撮影します。これをRGB各チャンネルについて行います。入力画素値を横軸にしたグラフに撮影輝度値をプロットすると、そのプロジェクタのガンマ特性を確認することができます(図4)。このようにして取得した関係の逆テーブルを参照することで、プロジェクタの出力特性を線形化します。
図5の3行目に、この簡易手法を用いて色補償を行った結果を示します。色補償無しで目標画像をそのまま投影した場合(同図2行目)と比べて、投影対象の模様の影響が軽減されていることが確認できます。一方で、模様は完全にキャンセルできておらず、視認できてしまいます。このように、色補償の精度はそこまで高くありませんが、実装は容易ですので、まずはこちらの手法を試してみて、画質に満足しない場合はより複雑で高度な手法を用いることを検討する、という方略が良いのではないかと考えます。次章では、そのような、より複雑だが精度良く色補償できる技術を紹介します。
3 色変換行列手法
上で述べた簡易手法の色補償精度を低下させている要因の一つに、プロジェクタのRGB各チャンネルとカメラの各チャンネルとが一対一に対応していない、ということが挙げられます。例えば、赤のみの光を投影すべく、プロジェクタに(R,G,B)=(1,0,0)を入力して、その投影光の反射をカメラで撮影することを考えます。このとき、その反射光はカメラのRチャンネルでのみ観測できるはずですが、実際はGBの2チャンネルでも観測できてしまいます。これは、図6に示すように、プロジェクタとカメラそれぞれの分光特性がブロードである(幅広い)ことによるものです。つまり、プロジェクタに(R,G,B)=(1,0,0)を入力しても、その投影光には緑そして青の帯域の成分を含んでいます。同様に、カメラのGチャンネル・Bチャンネルも、赤の帯域の光にも感度を持っています。2章で述べた簡易手法では、このような色のクロストークが生じてしまうにもかかわらず、RGB各チャンネル独立に色補償処理をしてしまっていたことが、色補償精度を低下させた原因でした。近年では、プロジェクタの光源としてLEDやレーザーといった狭帯域の光源が利用されつつありますが、カメラ、ひいては人の目の分光特性がブロードである以上、同じ問題が生じます。
この、色のクロストーク問題に対して、カラーマネジメント等における色空間の変換技術を利用した手法が提案されています[2]。この手法では、カメラ画素のRGB値、プロジェクタ画素のRGB値、そして環境光下での投影面のRGB値をそれぞれ、\(C=[c_r\ c_g\ c_b]^t,\ P=[p_r\ p_g\ p_b]^t,\ E=[e_r\ e_g\ e_b]^t%0\)とベクトルで表し、それらの関係を以下の式でモデル化しました。
\(C=FP+E%0\)… (3)
ここで\(F%0\)は3×3の行列で、色変換行列と呼びます。式(1)と比べつつ式(3)について理解を深めたいと思います。まず、式(3)のベクトル\(E%0\)は、式(1)の\(er%0\)に該当します。次に、式(3)の行列\(F%0\)の対角成分は、式(1)の\(fr%0\)に該当します。そして、式(1)にはない、\(F%0\)の非対角成分が、色のクロストークをモデル化しています。行列\(F%0\)とベクトル\(E%0\)の各パラメータ(合計12個)は、簡易手法と同様、プロジェクタから白色や黒色を投影したときの撮影された輝度情報から較正します。一度の色パターン投影・撮影で式(3)から3つの方程式が得られますので、色パターンを4つ投影することで、解析的にパラメータを求めることができます。過去の研究では、精度良く色補償するため、投影する色数を増やし、最小二乗法を用いてパラメータを求める例が多いです。多くの場合、RGB色空間の頂点(計8点)を使います。パラメータが求まれば、目標色を\(C_t%0\)としたときに、それを再現するプロジェクタ色\(P_t%0\)は、式(3)を変形して以下の式で求めることができます。
\(P_t=F^{-1}(C_t-E)%0\)
図5の4行目に、この色変換手法を用いて色補償を行った結果を示します。簡易手法の結果(同図3行目)と比べて、投影対象の模様の影響がより軽減されていることが確認できます。一方、この手法を用いた場合でも模様は完全にキャンセルできていません。より精度良い色補償を実現するためには、実は、ここまでに述べてきた線形モデルでは限界があります。
4 非線形補間手法
2章と3章では、プロジェクタとカメラそれぞれの入出力特性が線形である場合を仮定して、反射色の計算モデルを構築し、その逆問題を解く色補償手法をご紹介してきました。そして図5に示すように、これらの手法が、対象面の模様を視覚的にある程度キャンセルする色補償効果を有することを確認しました。一方で、その補償結果は十分とは言えない場合があることも分かりました。そこでまず、線形モデルの補償精度を低下させた原因について考察します。2章で紹介した線形化手法は、プロジェクタのRGB各チャンネル毎に独立にその出力特性を計測するシンプルなものでした。しかしながら、プロジェクタ製造においては、各プロジェクタ固有の色味を決定する色設計を施すことが欠かせませんが、それによって、それぞれの色チャンネルの独立性が失われてしまいます。このため、ほとんどの既製品プロジェクタでは、このシンプルな線形化手法では正しい結果を得られません。つまり、線形化された機器を想定した2章、3章のモデルは、精度良く色補償できないことになります。そこで近年では、プロジェクタの出力特性が非線形であることを前提として、反射色の色空間を非線形補間することで、上記の問題を解決する手法が提案されています。以降では、その中の一つをご紹介します。
プロジェクタへの入力画素値とその反射を撮影したカメラ画素値との対応が全てわかっていれば、その逆テーブルを参照することで、所望の色(カメラ画素値)を表示するために投影すべきプロジェクタ入力画素値を得ることができます。これまでのモデルは、この対応関係を、線形の式として表現していましたが、その精度に限界があることは、これまでに議論してきた通りです。計算モデルを用いず、プロジェクタから表現可能な色を全て投影して計測すれば理論的には完璧な色補償が実現できますが、8bitフルカラーの場合1,670万色以上の投影・計測が必要となり、1色0.1秒で計測したとしても単純計算で460時間以上の時間がかかってしまい、現実的ではありません。そこで、より少数の色を投影して計測し、計測値にフィッティングした非線形関数によってプロジェクタ入力画素値からカメラ観測画素値への対応を取得する手法[3]が提案されています。この手法では、非線形関数として、Thin Plateスプライン関数を用いています。
図5の5行目に、63色を投影・計測してフィッティングした非線形関数を用いて色補償を行った結果を示します。これまでの線形モデルを用いた手法の結果(同図3行目・4行目)と比べて、投影対象の模様の影響がかなり軽減されていることが確認できます。一方で、まだ完全に目標色を再現できていない箇所も残っています。これはもちろん、関数近似が正確でなかったことが原因の一つと考えられますが、そもそも目標色自体が、使用しているプロジェクタで表示可能な色・明るさの幅(ダイナミックレンジ)を超えたものであったことも主要な原因と考えられます。
5 ダイナミックレンジ制約の解消法
投影対象の反射率が低いと、プロジェクションマッピングで表示できる明るさの上限が低下してしまうため、目標色としてそれを超える明るさが設定された場合、再現することができず、色補償が正しく働きません。また、環境光が明るい場合、表示できる明るさの下限を押し上げるため、同様に色補償精度の低下を招きます。簡易な解決策として、目標画像の輝度レンジを一律に圧縮する手法が考えられます。具体的には、投影面で反射率の最も低い点に最大照度で投影したときの反射光の輝度を上限とし、投影面で反射率の最も高い点の環境光下での輝度を下限とする輝度レンジに、目標画像の輝度を一律のパラメータで線形に圧縮します(図7)。これによって、目標画像の再現性は向上しますが、一方で、表現できる最大輝度やコントラストが低下してしまいます。以降、この問題を「ダイナミックレンジ制約」と呼び、上記の方法で圧縮したダイナミックレンジを「保守的なダイナミックレンジ」と呼びます。この最後の章では、ダイナミックレンジ制約を乗り越える輝度圧縮手法をご紹介します。
先にご紹介した手法は、目標画像に一律の圧縮処理を適用して保守的なダイナミックレンジに収めるものでした。一方、投影対象の反射率は空間的に一様ではないことに着目し、目標画像の高輝度領域が反射率の高い投影面領域と一致する場合は、その輝度の減衰を抑えるなど、適応的に目標画像の輝度圧縮を行うことも考えられます。このとき、元の画像コンテンツを無視して、投影面の反射率のみに従って目標画像を変更すると、画像の印象が大きく変わってしまう可能性があります。そこで、反射率に適応的に目標画像を圧縮しつつも、その変化に観察者が知覚しないように圧縮する技術が提案されています[4, 5]。この技術では、明るいところや細かな模様のあるところの輝度変化に気づきにくいという人の視覚特性に着目し、目標画像の画像コンテンツを解析して、画素毎に人の知覚できない最大の輝度変化量を求めます。そして、圧縮による輝度変化がその最大値を超えない範囲で、投影面の反射率に適応的に、目標画像を圧縮します。
図8に、[5]の手法で目標画像を圧縮して色補償を適用した投影結果を示します。目標画像圧縮を適用する前は、投影面のテクスチャが視認できる状態となっていましたが、適用後は補償が成功していることが確認できます。目標画像の変化についても、輝度圧縮の前後で印象が大きく変わることはなく、ダイナミックレンジ制約を解決していることが確認できます。
6 まとめ
今回は、投影対象面に模様がある場合でも、それを視覚的にキャンセルしてプロジェクションマッピングの画質低下を抑える色補償技術についてご紹介しました。最近では、モデル関数をあらかじめ設定するのではなく、Deep Neural Networkを用いて非線形補間する手法も提案され、より精度の良い色補償が可能となりつつあります[6]。一方、これらの手法を用いても色補償できない場合も存在します。今回、拡散反射する対象面のみ考慮していましたが、鏡面反射成分を多く含むような対象面では、ここでご紹介した手法が正しく動作しないケースが多くあります。また、対象もしくはプロジェクタが動く場合や、環境照明が変化していくような場合では、これらの変化に適応して補償していく必要があります。このような、今回想定していなかったようなケースでも色補償する手法も提案されていますので、また機会がありましたらご紹介したいと思います。
参考文献
[1] O. Bimber, A. Emmerling, and T. Klemmer, “Embedded entertainment with smart projectors,” IEEE Computer, Vol. 38, No. 1, pp. 48-55, 2005.[2] T. Yoshida, C. Horii, and K. Sato, “A Virtual Color Reconstruction System for Real Heritage with Light Projection,” In Proceedings of International Conference on Visual System and MultiMedia, pp.161-168, 2003.
[3] A. Grundhöfer and D. Iwai, “Robust, Error-Tolerant Photometric Projector Compensation,” IEEE Transactions on Image Processing, Vol. 24, No. 12, pp. 5086-5099, 2015.
[4] D. Wang, I. Sato, T. Okabe, and Y. Sato, “Radiometric Compensation in a Projector-Camera System Based Properties of Human Vision System,” In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition Workshops, 2005.
[5] A. Grundhöfer and O. Bimber, “Real-Time Adaptive Radiometric Compensation,” IEEE Transactions on Visualization and Computer Graphics, Vol. 14, No. 1, pp. 97-108, 2008.
[6] B. Huang and H. Ling, “End-to-end Projector Photometric Compensation,” In Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, pp. 6810-6819, 2019.
#1「プロジェクションマッピング作品を通して見る技術課題」
1 建築物へのプロジェクションマッピング
2 インタラクティブなプロジェクションマッピング
3 動的プロジェクションマッピング
4 まとめ
#2「プロジェクションマッピングの多様なアプリケーション」
1 照明の知能化
1.1 リビング照明の知能化
1.2 作業空間の照明の知能化
2 表面質感の編集
3 まとめ
#3 「幾何補正 (位置合わせ)」
1 平面を対象とする場合の幾何補正
2 立体面を対象とする場合の幾何補正
2.1 対象面形状が既知の場合の較正
2.2 対象面形状が未知の場合の較正
2.2.1 事前プロカム較正アプローチ
2.2.2 事前カメラ較正アプローチ
2.2.3 自動較正アプローチ
3 まとめ
#4「色補償」
1 準備
2 簡易手法
3 色変換行列手法
4 非線形補間手法
5 ダイナミックレンジ制約の解消法
6 まとめ
#5「複雑な光学現象への対応(1)」
1 相互反射補償
2 焦点ボケ補償
2.1 複数台投影アプローチ
2.2 1台投影アプローチ
2.3 投影光学系の工夫による1台投影における技術的限界の解消
3.まとめ
#6「 複雑な光学現象への対応(2)」
1 表面化散乱補償
2 ライトトランスポート行列を用いた大域照明効果の一括補償
3 おわりに
#7「影の除去」
1 複数台のプロジェクタを用いた影除去
2 光学系の工夫による影除去
3 まとめ
#8「ハイダイナミックレンジ投影」
1 プロジェクタのダイナミックレンジ拡張
1.1 単純に最大照度を上げてもダイナミックレンジは改善しない
1.2 最小照度を下げてダイナミックレンジを拡げる技術
1.3 最大照度向上と最小照度抑制によるダイナミックレンジ拡張技術
2 プロジェクションシステムのダイナミックレンジ拡張