White Balance/jp

ホワイトバランス

1 イントロダクション

 一般的に、デジタル画像は3原色、レッド、グリーン、ブルーの混合で構成されています。様々な情報源からその理由を詳しく知ることも出来ますが、如何なる現像プログラムにおいても、撮影した画像を再現する前に、色々な方法でこれら3原色の値を補正することが最初のステップです。その補正方法の一つがホワイトバランスを基本にするもので、撮影された画像の中のニュートラルな色(ホワイト)が引き続きニュートラルに映るようにすることです。本来ニュートラルな色(ホワイト、グレー)であるべき部分の映りで、ホワイトバランスが正しいかどうか簡単に判別出来ますが、ホワイトバランスの補正は全ての色に影響します。

 ホワイトバランスの補正は、適切な色を得るまで、3原色の値に異なる数を掛け合わせることで行います。この調整を簡単に行うために、直接的に3つの乗数を操作するのではなく、ブルー-イエローの軸に沿って色を補正する色温度スライダーとマゼンタ‐グリーンの軸に沿って色を補正する色偏差スライダーを使います。

 ニュートラルカラーとは、3原色、レッド、グリーン、ブルーの値が同じである色のことです。例えば、R=G=B=65%とR=G=B=90%の色はどちらもニュートラルカラーです。但し、前者は後者より暗くなります。画像の中のニュートラルカラーであるべきスポットが正しいかどうかは、各RGB値が同じである、L*a*b*色空間のa*値とb*値が同じである、或いはヒストグラムのRGBインディケーターバーがお互いに重なりあっていることで、確認出来ます。たとえ貴方のモニターのキャリブレーションが誤っていても同じように確認できます。色の変化に対する人間の目の知覚機能は、周りの色やそれを見る部屋の明るさにも影響されます。見た目の色は信用しないことです。前述した方法で確かめることが肝要です。

 ホワイトバランスが誤っていると、画像に色被りが生じます、典型的には画像の印象が暖か味が強過ぎたり(オレンジ)、冷た過ぎたり(ブルー)します。ユーザーの中には、それを独創的な効果として使う人もいますが、RawTherapeeに備わった機能や作用には、ホワイトバランスが適正であることを前提にしたものが数多くあります、例えば露光補正の中のハイライト復元機能や、詳細レベルによるコントラスト調整の肌色の目標/保護、ウェーブレット の青空の色相-トーン、 CIE色の見えモデル02/16などです。従って、独自の色味を作り出すためにホワイトバランス機能を使うことは奨められません。この機能あくまでニュートラルな色をニュートラルに見せるための調整に使うもので、独創的な色味を加える場合は、カラートーン調整、或いは他の機能を使うべきでしょう。

 ホワイトバランス機能はオン・オフすることが出来ます。オフにすると、raw画像の編集時に3原色に対する乗数が、それぞれR=1、G=1、B=1、となります。色の診断やUniWBイメージを扱う時に役立つでしょう。

2 インターフェイスの説明

2.1 方法

  • Wb-camera.png カメラ
    カメラにプログラムされているホワイトバランスを使う方法です。raw画像だけ(JPEG画像は同時に撮らない)撮影する場合は、カメラのホワイトバランスを自動に設定する方が、一般的に良い結果が得られるようです。
  • Wb-auto.png 自動
    • RGBグレーを使った自動調整
      自動的にホワイトバランスを設定する選択で、撮影シーンの平均色がニュートラルグレーであることを前提にしています。幅広い撮影シーンに対応しており、その後の手動による画像調整を行う起点としては良いかもしれません。
    • 色温度の相関関係を使った自動調整
       通常、“RGBグレーを使った自動調整”よりカラーバランスがいいでしょう。このアルゴリズムは、画像の色と200個の参照スペクトルカラー配列の間の最適な相関関係(スチューデントのt検定)をベースにしています。
      •  但し、このアルゴリズムは誤った結果になることがあります:
        •  演色評価数(CRI)が100から離れている光源、例えば“水中”や“蛍光灯”、“Led”などの下で撮影した画像には適しません。
        •  DNGコンバーターや他のコンバーターを使ってDNG形式に変換したファイルの一部では悪い結果になることがあります。
        •  撮影条件が極端な場合(輝度が非常に低い、など)に結果が悪くなります。
      •  インターフェイスに相関関係の値(t検定の結果)を表示します:
        •  1000が表示された場合は、反復計算が行われず、前の結果が使われていることを意味します。5002が表示された場合は、アルゴリズムによる計算が失敗したことを意味します。
        •  0.01より低い値が表示されれば、調整結果が良いことを意味します。
  • Wb-custom.png カスタム
    2つのスライダーで色温度と色偏差を設定するか、スポットホワイトバランス機能を使うか、或いはその両方を使って貴方ご自身で設定する方法です。
  • 光源によってプリセットされたホワイトバランス
    • Wb-sun.png 昼光(晴天)
    • Wb-cloudy.png 曇天
    • Wb-shade.png 日陰
    • Wb-water.png 水中
    • Wb-tungsten.png タングステンライト
    • Wb-fluorescent.png 蛍光灯
    • Wb-lamp.png ランプ
    • Wb-led.png LED
    • Wb-flash.png フラッシュ

2.2 色温度の相関関係アルゴリズムの原理(Itcwb:Iterative temperature correlation white balance)

 ホワイトバランスのアルゴリズムの多くはグレートーンをベースにしていますが、このアルゴリズムはカラーをベースにしています。簡単に言うと、画像の中の見本となる多くの色と、一連の基準色とそれらに関連するスペクトルデータで比較します。

2.2.1 アルゴリズムの端緒

 非公開の研究の概要を読んで、このアルゴリズムの開発を思いつきました。アルゴリズムの行程は3段階あります:

  •  a) xyY値の比較
  •  b) スペクトルデータの分析
  •  c) カラーヒストグラムの分析

 これら3段階が以下に説明するアルゴリズムのベースになっています。ゼロから開発したアルゴリズムなので、既存のアルゴリズムも、そのコードもありません。

2.2.2 アルゴリズムの成果を左右する要因

  •  画像の主な色(肌、空、建物など)と、そのサンプルリングの選択
  •  計算の基本となる一定のパラメータの決定、例えば:レッドとブルーの要素に作用するカメラのホワイトバランスの色温度、マジェンタとグリーンの要素に作用する色偏差など
  •  RGBカラーチャンネル乗数の選択と、光源の色温度をベースにしたそれらの計算
  •  “正確な”公式(行列式)と5ナノメータのスペクトルデータサンプルを使った、基準色(スペクトルデータ)のXY値を計算:[観測された色]=[光源]*[物体色]/[標準観測者2°]
  •  グリーンとマジェンタ、レッドとブルーのバランスを均等に考慮した複数回の反復計算
  •  光源の演色評価数(CRI)が100に近い、つまり、昼光光源(4100K~12000K)や黒体放射光源(2000K~4100K)の場合の厳密な計算
  •  スチューデントのt検定 を使った統計的な相関関係の結果

2.2.3 200個の参照スペクトル色の出所と特徴

  •  ウェブサイトで見つけた花や葉の色のデータ
  •  カラーチェッカー24やその他の色見本から得られたデータ
  •  筆者が数年前にキャリブレーションのために作成した468色の色見本から得たデータ
  •  Colorlab©のユティリティ
  •  これらの色(レッド、オレンジ、イエロー、グリーン、シアン、ブルー、マジェンタ。。。)をほぼ均等に配列。
  •  また、これらの色をニュートラル、グレーに近い、彩度が低い、パステルカラー、純色の間で均等に配列。
  •  色度の構成で比較を行うので輝度はあまり重要ではありません。

2.2.4 全般的な原理

  •  水平、垂直の2方向で、ピクセル10個ごとに1個のピクセルを選んで、レッド、グリーン、ブルーの表を作成します。精度を上げるためにこの設定を変えることも出来ます。これらピクセル値を0~65535の範囲に収まるように調整します。
  •  次に、処理を2つの自動ホワイトバランス調整に共通するアルゴリズム、〈自動〉、に切り替えます。RGBチャンネル乗数を計算し、それらを“Itcwb”或いは“RGBグレー”に送ります。
  •  〈自動〉処理がItcwbに送るパラメータは、基準となる重要な色温度値(カメラのExifデータ)と、0.77~1.30の範囲の色偏差値(カメラのExifデータ)です。色偏差に関しては、この範囲を超える昼光光源と黒体放射光源は存在しないので、範囲外の数値が使われれば、その結果は架空または誤りとなります。

2.2.5 単純化したItcwbのアルゴリズム

2.2.5.1 ステップ1
  •  2000K~12000Kの範囲にある各温度と色偏差に対してRGB乗数を計算します。
  •  各色温度に対して200個のスペクトルデータからXY値を計算します。
  •  基準色と比較する色温度のデータ範囲を選択します。
  •  ヒストグラム形式でxy値を計算し、各色温度で最も一般的に使われる可能性のある色(肌色、空の色など)を158色の中から選択します。
  •  これらデータを数値の昇順に並べます。
  •  最も頻繁に表れるデータで、画像の色度を計算します。
  •  200個のカラー配列から基準色を選択するために、色度のΔEを使います。
  •  基準となる色温度に応じて基準色のRGB値を計算します。
2.2.5.2 ステップ2
  •  色温度と色偏差に応じて、選択した各基準色のXY値を計算します。
  •  RGB乗数を使ったxy値から画像のRGB値を計算します。
  •  t検定の最初の計算を行います。
  •  各色温度と色偏差の範囲で、一致するスペクトルデータからカラーチャンネルの乗数とXY値を計算します。
  •  グリーン(色偏差)に応じて、相関係数を計算します。
  •  計算結果を並べ替えます。
  •  正しい色温度と色偏差を決定するための最適化を図ります。
  •  これらパラメータを〈自動〉に戻します。
  •  結果を表示し、Improccoordinator.ccを更新します。

2.3 ピック

タンクの色は画像の中で最も白色に近い。しかし、その部分のヒストグラムを見ると、各RGB値が離れているのでホワイトバランスが正しくないことが分かる。
タンクの横の部分の色が画像の中で最も白に近いので、そこでピックを使うと画像全体の色映りが変化し、ピックを使った部分のRGB値が同じになる。

 ピックのボタン Color-picker.pngをクリックすると、画面上を動くカーソルがスポイトのアイコンに変わります。このスポイトを画面のニュートラルカラーの部分でクリックして、画像全体の正しいホワイトバランスを決めます。

 グレー或いはホワイトのニュートラルトーンのスポットをピックしますが、そのRGBいずれかの色チャンネルがクリップしているスポットは補正に適しません。クリッピングしている色チャンネルからは、色情報が得られないからです。ホワイトバランスで言うところの、この“ホワイト”は、R=100%、G=100%、B=100%ではありません、これではクリップしているからです。代わりにグレーな影、たとえそれが非常に明るくとも、クリップしていないのであれば、そこを選びます。また、黒い所も避けます。黒い部分では色情報が不足しているのでホワイトバランスの算出が正確に出来ません。

 的確なホワイトバランスを見つけるため、画像の異なる部分で何回でもピックすることが出来ます。スポイトのサイズを変えるのは、ドロップダウンボックスで行います。

 この機能は拡大画面でも使えます。右クリックで機能をキャンセルすると、スポイトが通常のカーソルに戻ります。

2.4 色温度と色偏差

 色温度スライダーはブルー-イエローの軸に沿って色を変えるスライダーです。左に動かすと画像の印象が冷たく(ブルーが増す)、右に動かすと暖かく (イエローが増す)なります。

 色偏差のスライダーはマゼンターグリーンの軸に沿って色を変えるスライダーです。左に動かすと、画像にマゼンタの色味が増 し、右に動かすとグリーンの色味が増します。

2.5 ブルー/レッドイコライザ

 レッドとブルーの比率を増やしたり減らしたりすることで、通常の“ホワイトバランス”の性質を変えます。通常の光環境と大きく異なる条件で撮影した場合、例えば水中、或いは入力プロファイルのカラーマトリクスが不適切なため、通常のキャリブレーションでは十分に補正が出来ない場合に使えます。

2.6 自動ホワイトバランスの色温度バイアス

 自動ホワイトバランスの色温度バイアスのスライダーで自動的に算出された色温度を任意にずらします。自動的に算出される色温度の印象を変える(ウォーム、或いはクール)ことが出来ます。

3 ホワイトバランスと露出の関係

 ホワイトバランスは色温度と色偏差で表現されますが、raw画像の編集が行われる際には、重みを付けたレッド、グリーン、ブルーチャンネル置き換えられます。これらの重みは、rawチャンネルが作業色空間で(通常、ProPhoto RGB)飽和に達した時に、最も重みの少ない色チャンネルが飽和するように調整されています。言い換えると、露光量補正0.0、ハイライト復元オプションが無効の時、可視範囲全体がrawの裏付けにより完全に定義出来ると言うことです。ホワイトバランスの調整によりこれら重みが変わるので、大幅な調整を行うと露出が若干変わるかもしれません。