省型旧形国電の残影を求めて

戦前型旧形国電および鉄道と変褪色フィルム写真を中心とした写真補正編集の話題を扱います。他のサイトでは得られない、筆者独自開発の写真補正ツールや補正技法についても情報提供しています。写真補正技法への質問はコメント欄へどうぞ

darktable 機能解説: カラーキャリブレーション (Ver. 4.2.1 準拠)

f:id:yasuo_ssi:20211128195339p:plain

 darktable のカラーキャリブレーションは、画像の色被りの修正やホワイトバランスを調整する中核的なモジュールとされています。基本的には本モジュールを使い、ホワイトバランスの取れた「正常な」画像になるよう色を調整することが想定されており、その上で、カラーグレーディング (演出的調色) をカラーバランス rgb を使って行うことが想定されているようです。

 大雑把に言うとホワイトバランス調整ツールと、チャンネルミキサー、色の彩度と明るさ調整ツール、およびグレースケール出力ツールの4つの機能が複合したモジュールと言えます。

1. 色順応変換 (CAT: Chromatic adaptation transformation)

 色順応変換とは、光源の色に合わせて、色調を変換させる機能ですが、非常に大雑把かつ簡単に言うと、ホワイトバランス調整機能だと考えてよいです。このモジュールにおける CAT 機能は基本的にはホワイトバランスモジュールを補佐する形でホワイトバランスを調整しますが、ホワイトバランスモジュールは、無彩色点がとにかく 物理的に R = G = B になるよう調整するのに対し、CAT は光源の色温度などを考慮してもう少し細かく、無彩色であるべき点が、見た目がしっかり無彩色になるようホワイトバランスを調整する機能、といったところのようです。

 なお、CAT をマニュアルで調整する場合は、ホワイトバランス・モジュールで、ホワイトバランスをカメラのレファレンス値 (D65) に設定しておいてください。そうしないと「ホワイトバランスが2度適用されています」というエラーメッセージが出ます。

CAT タブ

 darktable では、基本的にデフォルトで Exif データを読み取ってカメラの設定したホワイトバランスをホワイトバランスモジュールで設定するとともに、今使われている入力カラープロファイルと Exif データに基づいて、このモジュールでさらにホワイトバランス (CAT) を調整する、というのがデフォルトの動作のようです。

 このCAT (ホワイトバランス) をマニュアルで調整するには、画面上でカラーピッカーを使って無彩色点を指定するか (上のスポイトマークをクリックして指定)、もしくは、イルミナント (光源) から、[AI 画像表面から判断]、もしくは[AI 画像エッジ (輪郭) から判断]のいずれかを指定します。[AI 画像表面から判断] は自然な風景により適し、[AI 画像エッジ (輪郭) から判断] は人工物が多く写った画像により適します*1。但し、後者はノイズが多い画像や高いISO 画像では判断に失敗する可能性が高くなります。

イルミナント (光源) 指定のオプション

[順応] は CAT を実行する色空間を指定します。4つ選択肢がありますが、多くの場合デフォルトの CAT16 が最良の結果を生みます。

[色域圧縮] は、色空間をはみ出す値がある場合に、なるべく色相を維持し、かつすべての輝度情報が作業色空間に収まるように圧縮します。特にブルーLED光源の画像などに有効です。

[色域から負のRGB値をクリップ] は、例えば、ブルーLED光源の画像で発生しがちな B チャンネルのクリップ問題の解決に助けになります。これは色を損ね色相が変わることがありますが、しかし有効なRGB出力を保証します。

 

1-1. スポットカラーマッピング

 この機能は、CATに特有の項目です。2022年夏のリリース(Ver. 4.0.0)から正式に取り入れられた機能です。色の調整をバッチ処理のように簡単に連続して複数間の画像間でコピーして行うのをサポートする機能です。早い話が、参照点が無彩色 (ホワイト点) でなくても、ホワイトバランス調整のようなことができる機能、と考えてよいと思います。

 この機能を使う基本的な手順は、まず、色編集の基準となる画像でカラーキャリブレーションモジュールを使って色の調整編集を行います。次にその画像上で色領域を登録します。すると、次回からボタン一発で、別の画像に対する同じ色領域に対し、同様の色編集 (ホワイトバランスのような調整) が行える、というしくみです。

1) 編集したい色領域の登録

色領域の登録

1. カラーキャリブレーションを使って、1枚目の画像上で、色の編集を行ってしっかりホワイトバランスを取っておきます。なお、この編集にはチャンネルミキシングを含めることもできますが、その場合は、スポットカラーマッピング上で、[チャンネルミックスの効果を計算に含める] にチェックしてください。

2. 次に、色領域の登録を行いますが、スポットカラーマッピングをクリックし、ダイアログを表示します

3. スポットモードを[計測]にします (矢印1)

4. カラーピッカーをクリックしてオンにします (矢印2)

5. 画面上で登録したい色の範囲を指定して、色を登録します (矢印3)

・または、登録したい色の Lhc 値が分かっているなら、上の 3. ~ 5. の過程の代わりに直接 Lhc の値をスライダーで指定して登録します。

2)  別の画像への色編集の適用

1. 新しい画像を開きます

2. スポットカラーマッピングのダイアログを開きます。新しい画像を開くとスポットモードは自動的に [補正] になります

3. カラーピッカーをオンにします

4. カラーピッカーで、前の画像で登録した色領域と同じ色領域を探して指定します。すると前の画像で行っていた編集がこちらの画像にも適用されます。

※注意

・複数の画像間で、同じ (または極めて近似した) 色領域が共通に存在しないと、色編集のコピーはうまくいかず、おかしくなります。登録する色領域はなるべく安定したもの(どの画像でもよく見られる色領域)を登録することが望ましいです。

※注釈

 色の登録を行った際、入力 (Rawの元色彩) とターゲット (カラーキャリブレーションでの編集後の色彩)が入力されます。

入力とターゲット

 色の登録をすると、このターゲット値を覚えていて、次の画像で登録時点での入力値に近い色をカラーピッカーで指定すると、それをターゲット値に似せるように、画像全体の色彩を再計算するというのが、この機能の原理です。ところが次の画像で、色の登録をした色領域と全く異なる色の部分をカラーピッカーで範囲指定 (=入力) すると、その全く異なる色を登録されているターゲット色に合わせようとしますので、完全にカラーバランスが崩れて、色編集は失敗します。

[参考] スポットカラーマッピングの説明ビデオ (英語)

 この機能の開発者の Aurélien Pierre 氏による解説です。

www.youtube.com[参考]

Aurelien Pierre氏による新しいカラーバランス調整の試み

 

2. チャンネルミキサー (R, G, B)

Rチャンネルのミキシングダイアログ

 R, G, B のそれぞれに対し、他チャンネルの情報をミキシングしていく機能です。この機能は他の画像編集ソフトでも一般的ですので、説明を省略します。なお、[チャンネルの正規化] はなるべくチャンネルの明るさを変えないように調整するオプションです。以下でも同様です。

 なお、チャンネルミキサーの操作方法自体は難しくありませんし、多くの画像編集ソフトに備えられた機能ですが、どのような色を狙ってどうチャンネルミキサーのパラメータを動かせばいいのか判断するのはちょっと難しいです。ART ですと、チャンネルミキサーに [原色補正] というモードがあるので簡単なのですが...

3. 色鮮やかさ、明るさ調整

色鮮やかさ調整ダイアログ

 これは、R, G, B チャンネルごとに色鮮やかさと明るさを調整するダイアログです。ここでの色鮮やかさ (colorfulness) は、結局 Saturation のことです。基本的にフィルミック RGB モジュールで使われているものと同じアルゴリズムを使っています。

 

4. グレー調整

グレー調整ダイアログ

 これはグレースケール画像を作る際に、各チャンネルをどの程度の割合でミックスしてグレースケール画像を作成するかを調整する機能です。

 

5. カラーチェッカーでキャリブレート

 これは、通常使われない特殊な光源を使う場合、キャリブレートの方法をカスタマイズする方法で、市販のカラーチャートを使って調整します。Xrite と Datacolor のカラーチャートに対応しています。

 特殊な光源下で、カメラで所定のカラーチャートを撮影し、その画像と、darktable 内蔵のカラーパッチとを比較してキャリブレートの方法をカスタマイズします。

 対応している市販のカラーチャートは下記の通りです。

対応しているカラーチャート

 通常は使う必要がない機能ですし、カラーチャートも別途買わないと使えないので、詳しい説明は省略します。

 

 なお、カラーキャリブレーションのタイトル右側のハンバーガーメニュー (三本線のメニュー) をクリックすると以下のプリセットにアクセスできます。

プリセット

-------------

 なお、色順応変換の AI による調整を、Nikon の D5500 で撮った画像に対し行ってみましたが、カメラ設定をそのまま使う方が良好な結果が得られました。他のカメラでは良好な結果が得られるかもしれませんが... 今後の進化に期待です。

 

参考例:

カメラ内現像プレビュー画像

darktable 読み込みデフォルト
CAT 有効 イルミナント: ブランキアン

 darktable で読み込んだデフォルトでは、CAT が有効となりイルミナントはブランキアンになりました。これは Raw ファイルのメタデータを読んだ結果そうなったのかどうかよく分かりません。ただ、 D5500 の他のファイルも読込んだデフォルトは、ブランキアンになります。一方他メーカーのカメラの Raw ファイルを読み込んだ結果は 太陽光になるものがありますので、メーカーによって、あるいはカメラ機種によってこのデフォルト値が決まっているのかもしれません。

 またホワイトバランスはカメラ設定の標準 D65 になります。

 それ以外に、フィルミック rgb と露出が自動的に on になりデフォルト設定が適用されています。カメラ内ㇷ゚レビューとの差はこちらの影響が大きいように思われます。全般的にカメラ内ㇷ゚レビューより彩度・明るさが上がっています。

darktable ホワイトバランス: カメラ設定
CAT: OFF

 こちらはCATをオフ (バイパス) にして、ホワイトバランスをカメラ内設定に変えました。基本的に Raw 現像ファイルのメタデータから設定を読み込んで適用しているはずです。なお フィルミック rgb と露出は引き続きオンになっています。

 結果はほぼ上と同一ですが、若干こちらの方がやや彩度が落ちているようです。

darktable 
CAT 有効 イルミナント: AI 画像表面から判断

 CAT を [AI 画像表面から判断] に変更しました。おそらく人工的な赤い塗料の影響で、色温度が冷たいほうへ動いてしまいました。ただ、ベクトルスコープモードのグラフを見ると (上では表示していません)、より物理的には「正しく」ホワイトバランスが取れています。

darktable
CAT 有効 イルミナント: AI 画像エッジから判断 > その結果 太陽光に

 CAT を [AI 画像エッジから判断] に変更したところ、結果が[D 太陽光]に変更されました。見た目的なホワイトバランスは、AI 画像表面から判断よりは、よりベターな結果になっているのは間違いありませんが、物理的には、ベクトルスコープで確認すると、ずれています。ただこれでも、カメラ内設定や、読み込み時のデフォルトより、ホワイトバランスがより温かいほうに寄っているようで、全般的には、カメラ内設定を踏襲するのが一番ベストだったように思われます。

 

-------------

通常のホワイトバランスとCATでの調整との違いに関しては、下記のオンラインディスカッションをご覧下さい。

discuss.pixls.us

discuss.pixls.us

----------------------

 なお、darktable は大半のモジュールでマスクを掛けたり、モジュールの複数のインスタンスを作成することができます。

yasuo-ssi.hatenablog.com

yasuo-ssi.hatenablog.com----------------------

[2024.7 追記]

 darktable 4.8.0 から、CAT における AI 判断のオプションが削除されました。あまりうまく機能しないためのようです。上のサンプル事例でも、カメラ設定より良い結果が得られませんでした。

 

 

*1:通常ホワイトバランスは、写真のすべての色を混合すると灰色になるとの仮定の下に設定されます。この前提のもと機械学習データに基づいて判断されるのが、[AI 画像表面から判断]です。しかし人工物を写した写真などでは、すべての色を混合すると灰色になるとの前提が成立しないことが多いです。これに対し、すべての輪郭線の色情報を混合すると灰色になるとの前提を立てるのが灰色エッジ仮説で、この前提のもと機械学習データに基づいて判断されるのが、[AI 画像エッジ (輪郭) から判断] です。後者は、人工物を写した写真ではより良い結果を生む可能性がありますが、そうでない場合は不適切な結果になる場合があります。