標準のカラーチャートの写真から光源の色温度を推定する方法は?


7

私はデジタルスチルカメラに取り組んでいます。アドビなどのサードパーティツールを使用せずに、アルゴリズムを使用して光源の色温度をプログラムで計算する必要があります。

私の場合、画像は実験用/開発中のカメラを使用してキャプチャされており、光源は色温度が既知の標準光源ではありません。色補正/ホワイトバランスに必要です。RGBデータの統計情報またはこの光源の下での標準カラーチャート(24色パッチ)のキャプチャ画像のRaw Bayerデータの統計に基づいて、光源光源の色温度(ケルビン度)を推定しようとしています。

このカラーチャートデータから色温度を推定するにはどうすればよいですか?

それについて話すポインタや資料やアルゴリズムを読むことは役に立ちます。


お答えしたいのですが、その前に気になることが一つあります。自動ホワイトバランスアルゴリズムを作成しようとしていますか、それとも別のことをしようとしていますか?ホワイトバランスは、必ずしも任意の光源の色温度を知る必要はありません(または知ることさえできる)が、画像を自動的にホワイトバランスすることは可能です。
jrista

jrista:RGB値をスケーリングしてAWBを実行するために使用されるスケーリング係数を取得するだけで、光源の色温度を知らなくても、自動ホワイトバランシングを実行できることがわかります。他のことをしようとしています。
ゴールデンミーン

1
@gloldenmean:あなたがやろうとしていることをより詳しく説明できますか?私は一般的な考えを持っていると思います、そしてそれはおそらく実現可能ですが、それを達成するにはおそらくいくつかの手の込んだアルゴリズムの作業が必要になるでしょう。
jrista

回答:


4

シンプルにするために、カラーチェッカーの代わりにニュートラルグレーのカードを使用します。または、カラーチェッカーのニュートラルパッチのみを使用します。画像で関連するパッチ/グレーカードに対応する領域を特定し、この領域のR、G、Bの未加工ピクセルを個別に平均化する必要があります。これらのピクセルが飽和していないことを確認してください。飽和していない場合は、露光量を減らしてやり直してください。

最終的に(R、G、B)トリプレットになります。これは、カメラのネイティブカラースペースでの光源の色です。次に、次のような式を使用してCIE標準色空間に変換します

⎛X⎞   ⎛            ⎞ ⎛R⎞
⎜Y⎟ = ⎜ 3×3 matrix ⎟ ⎜G⎟
⎝Z⎠   ⎝            ⎠ ⎝B⎠

ここで、マトリックスはバイエルセンサーのカラーマトリックスです。ここから、 標準の式を使用して相関色温度を計算できます 。


2

あなたが何をしようとしているのかは、非常に複雑な問題空間になり得ます。色理論、色補正/ホワイトバランスなどは非常に複雑な分野です。私が理解していることを確認するために、あなたはシーンの照明光源に基づいてシーンのホワイトバランスを適切に設定できるアルゴリズムを作成しようとしています。あなたがする必要があることをすることは可能かもしれません、そしてあなたが使用する必要があるであろうアルゴリズムの多くは最近利用可能であるはずです。

考慮すべきいくつかのポイント、および処理の要因:

  • シーン内の光源なし
    • 例:写真家の後ろからシーンを照らす太陽
    • 別の例:オフシーンフラッシュまたはその他の照明
    • これはおそらく最大の問題であり、光源ベースの色補正を行うことはほとんど不可能になります
  • 複数の光源
    • 同じ色温度の光源が複数存在する可能性があります
    • 色温度が異なる複数の光源がより重要です
    • 重要な質問:シーンが異なる色の複数の光源で照らされている場合はどうしますか?
  • 周囲光源と点光源
    • 例:窓から部屋を照らす太陽、および陰影のある部分を照らす追加の照明
    • 重要な質問:ホワイトバランスをどのソースに適用しますか?
  • 過激な色の光源
    • 時には、過激な色の主要な光源によって照らされたシーンがある
    • たとえば、赤、緑、青、紫、黄色などです。
    • 青/黄/赤の平面は、通常の色温度の極値と見なすことができます
    • 緑/紫/マゼンタの平面は、色合いの極端と考えることができます
    • 原色または二次の飽和色がないため、画像に顕著な色かぶりが発生する可能性が高いため、シーンの色のバランスをとるのに適しています。
    • 重要な質問:シーンに共通のアンビエントまたはプライマリライティングがなく、全体的または主に過激な色で照らされている場合はどうしますか?

問題の空間からシーン内のライティングと過激な色を除外しない場合、シーン内の光源の色温度を識別して測定することはおそらく可能です。適切なベースまたは既知の光源形状があれば、シーン内のすべての光源を識別できるようにする、かなり高度な形状検出アルゴリズムが最近利用できます。各光源を特定したら、何らかの三刺激計算を使用して光源の色温度を決定し、適切な重みで緑、赤、青のサブピクセル値またはRAWベイヤーピクセル値を取得して、3つの輝度を生成できます。ピーク。

非標準または過激なシーンイルミネーションが含まれる場合、アルゴリズムは特に複雑になります。極端に飽和した光源は、色域の「白」の範囲から離れているため、適切なホワイトバランスターゲットにはなりません。それは基本的にどのようにあるとして、あなたはあなたにホワイトバランスをベースに、適切な「グレーや白」を選ぶことができるように、ほとんどの「中立」である、あなたのシーンのどの部分を知ることは非常に重要であるホワイトバランス作品。赤などの別のベースカラーに基づいてシーンのカラーバランスをとることは可能かもしれませんが、そのようなアプローチに対応するために既存の数式をどのように変更する必要があるかは正確にはわかりません(かなりの量の複雑な計算があります)色理論に関与しています。)

最も難しいのは、シーン内の光源がない場合です。シーンがシーン外の光源で照らされている場合、色温度を計算することはほとんど不可能です。カメラの設計にかなり根本的なアプローチを取りたい場合は、カメラ本体のすべての側面に基本的な測光センサーを配置することができます。これにより、すべての方向から光を測定できるようになりますが、完全に正確であるわけではなく、余分な複雑さの増加はわずかなものになる可能性があります。別のアプローチとしては、複数のスポットメーターに接続できるホットシューデバイスを作成し、メーターに向けた光源の正確な照明測定値をカメラに提供する方法があります。複数の光源や過激な色の光源があるシーンでも、非常に複雑なアルゴリズムになります。

たとえば、色補正カードの簡単な写真からシーンの光源の色温度を特定しようとするのは、不可能ではないとしても非常に困難です。どのような光がシーンを照らしていたかについて、あまりにも多くの仮定を行わなければならないか、事前に知っておく必要があります。このため、通常、シーン内の既知のニュートラルカラーに基づいてシーンのホワイトバランスを設定することで、ホワイトバランス/カラー補正が行われます。同じ照明下で風景を2回撮影します。1回目は色補正カードありとなしで、後処理中に有効なニュートラルまたは真っ白を選択して、適切なカラーバランスを設定できます。私自身、X-Rite ColorChecker Passportを持っています。これには、2列の色補正スウォッチが含まれています。1行は風景用で、もう1行はポートレート用です。そして、彼らはわずかに涼しいからわずかに暖かい色パッチに進みます。風景写真には暖かく、野生生物やマクロなどにはニュートラルなホワイトトーン(5500k〜6500k)になりがちな自分のシーンに必要な種類のカラーバランスを設定できます。

かなり専門的なことをしている場合、必要なことを行うアルゴリズムを作成できる小さな問題空間を定義できる場合があります。問題の空間はかなり狭く、かなり明確なパラメーターと制限があるため、シーンをホワイトバランスするときにアルゴリズムが正しい決定を行うのに役立つ十分な既知のデータを生成できます。フレーム内に主要な光源がないシーンでは、自動ホワイトバランスや色補正を行うのが非常に難しくなります。


ありがとう。あなたが許せば、いくつかの質問。1] 3つの輝度ピークを生成する方法-デモザイク後に取得したR、G、Bデータの平均を計算することによってですか?2]「サンプルの平均がかなり正確な色温度の読み取り値を生成する」とはどういう意味ですか?ここでの計算手順は何ですか?
ゴールデンミーン

1

この目的は、新しいデジタルカメラを構築することであることを正しく理解していますか?つまり、ファームウェアの開発に取り組んでいるということですか。

もしそうなら、ウィキペディアの色温度の記事、特に計算セクションにいくつかの良い情報があるようです。

これは私が実際にやったことのないことなので、私の知識は限られています。しかし、私はこれの重要な部分はイメージが何であるかを知ることだと考えるべきです。したがって、照明が均一な白またはニュートラルグレーのカードを撮影することは明らかな選択です。また、計算を行うピクセルセットがカードのどの部分に基づいているかをソフトウェアが知っている限り、標準のカラーチャートの選択も適切です。したがって、さまざまな照明状況でそのカードのショットを何枚も撮るつもりなら、各ショットでカメラに対してカードを同じ場所に保つことができるリグを作成するか、またはカードの位置を決定します(おそらくエッジ検出や同様の方法で)。

もちろん、結果を既知の値と照らし合わせて確認することもできます。これを正しく行うには、測色計などのデバイスを購入する必要があります。そして、異なる種類のカメラマン(またはビデオ撮影や映画カメラマン)のためのもの、それらがで上げているようだ...ある1件のGoogle検索より研究室の方に向いていてもよいものは一方で、また存在します。たとえば、棒の先端に小さな(直径1cm程度)の球があり、コンピューターのUSBポートに接続して、さまざまな周波数で光の強度を測定するメーターを持つ人を知っています。光源の真のスペクトル分析を提供します。そのデバイスが何と呼ばれているのか正確にはわかりませんが、それが役立つかどうかはおそらくわかります。

もちろん、それらのデバイスも何らかの形でそれを実行する必要があります。そのため、理論と数学を学ぶだけでうまくいくのではないでしょうか。:)さまざまな有用な(そして私は確かにいくつかのそれほど有用ではない)アイテムをグーグル検索で見つけることができます。ここで難しい答えを得ることができる範囲を超えて、あなたはあなたの前に深刻な研究をしていると思います。うまくいけば、これはあなたにいくつかの出発点を与えるでしょう。


@はい:カードをテーブルに固定された万力に固定し、カメラデバイスもクランプに固定され、光源を変更する予定です。
ゴールデンミーン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.