1.Turbo:視覚化のために改良した虹色のカラーマップ(2/2)まとめ
・Turboは高コントラストでスムーズな視覚化が必要な日常的な動作を対象とした新しいカラーマップ
・連続的な値とプラスマイナスに分かれる値の両方に使用できるため広範囲なデータに対応できる
・視覚異常を持つ人にもかなりの割合に対応できGoogle内でも様々な用途で使われるようになっている
2.Turboカラーマップの有用性
以下、ai.googleblog.comより「Turbo, An Improved Rainbow Colormap for Visualization」の意訳です。元記事の投稿は2019年8月20日、Anton Mikhailovさんによる投稿です。
色合いに意味を持たせる事が容易
視差マップなどの奥行情報を持つ画像を調べるとき、多くの場合、一目で画像の両端の奥行を比較出来る事が望ましいです。これは、値を赤や青などの明確な意味合いを持つ色でを使って表現できると非常に簡単になります。従って、より多くの色を使用すると、推定が容易になり正確性も向上します。
Turbo
Jet
Viridis
Inferno
JetやTurboを使用すると、画像の左端にあるオブジェクトと画像の右端にあるオブジェクトを比較して同じ奥行に位置するオブジェクトを簡単に把握できます。間に他のオブジェクトが存在し、視覚的なギャップが存在していても直感的に理解できるのです。
例えば、左側のどの球体が右側のリングと同じ奥行き位置ににあるかを簡単に見つけることができます。これは、鮮明な色がはるかに少ないViridisやInfernoを使用していると判断するのがとても困難になります。TurboはJetと比較してはるかに滑らかで、縦じまによる偽の断層がありません。
入力値を量子化すると、この改善をより明確に見ることができます。
左:量子化したターボカラーマップ。最大33個に量子化された色は、明度と色相の変化の両方で識別可能で滑らかなままです。
右:量子化されたJetカラーマップ。 多くの隣接する色は同じように見えてしまいます。黄色とシアンの色は、他の色よりも明るく見えます。
迅速な識別
2つの画像を素早く比較するためには、明るさよりも色の違いを判断する方がはるかに簡単です。(人間の脳のAttentionの仕組みが色相を優先するためです)例えば、「本当の奥行情報を表現した画像」と「奥行情報推定アルゴリズムが奥行を表現した画像」があるとします。Turboを使用すれば、2つの画像でどの領域の奥行情報が一致しているかや、どの領域が一致していないかを簡単に識別できます。
奥行情報推定アルゴリズムが奥行を表現した画像(Viridis)
本当の奥行情報を表現した画像(Viridis)
奥行情報推定アルゴリズムが奥行を表現した画像(Turbo)
本当の奥行情報を表現した画像(Turbo)
さらに、識別可能で覚えやすい色が使われるため、色合いから定量的な値を簡単に推定できます。
プラスの値とマイナスの値を表現する使用例
Turboカラーマップは連続する値(例えば、0以上1以下の数など)向けに設計されていますが、例えば、差分画像で必要なプラスとマイナスを表現するカラーマップとしても使用できます。この方法で使用すると、0は緑、マイナスの値は青の陰影、プラスの値は赤の陰影となります。ただし、負の最小値は正の最大値よりも暗いため、実際にはバランスが取れていません。
本当の視差情報
推定された視差情報
差分画像(本当の視差情報 – 推定された視差情報)をTurboで視覚化
色覚異常を持つ人が利用しやすくする
色覚異常シミュレーターを使用してTurboをテストしたところ、全色盲(Achromatopsia:完全な色覚異常)を除く全ての条件で、Turboマップは識別可能で滑らかなままであることがわかりました。全色盲の場合、ローエンドの色とハイエンドの色の境界があいまいになります。この状態は30,000人に1人(または0.00003%)に影響するため、Turboは人口の99.997%が使用できるはずです。
基本イメージ
1型3色覚(protanomaly)
1型2色覚(Protanomaly)
2型3色覚(Deuteranomaly)
2型2色覚(Deuteranopia)
3型3色覚(Tritanomaly)
3型2色覚(Tritanopia)
青錐体1色覚(Blue cone monochromacy)
1色覚(Achromatopsia)
まとめ
TurboはJetを補う代替品であり、知覚的な均一性は重要ではないけれども、基礎的なデータとして高コントラストでスムーズな視覚化が必要な日常的な動作を対象としています。Turboは、連続的な値とプラスマイナスに分かれる値の両方に使用できるため、ツールボックスに格納しておける万能なカラーマップです。
PythonとC/C++用のカラーマップデータと使用方法については、githubをご覧ください。 ルックアップテーブルが望ましくない場合のために、多項式近似もあります。私達のチームは、視差マップ、エラーマップ、およびその他のさまざまなスカラー量を視覚化するためにTurboを使用しています。
私達はTurboがあなたにも役立つことを願っています。
謝辞
Ambrus Csaszarは、均一性とディテールの強調の間の適切なトレードオフを選択するために、私と一緒に多くのカラーランプを見つめました。Christian Haeneはマップをチームのツールに統合しました。これにより、幅広い使用が可能になり、さらなる改善が促進されました。 Matthias KrammとRuofei Duは、閉形式近似を考え出しました。
3.Turbo:視覚化のために改良した虹色のカラーマップ(2/2)関連リンク
1)ai.googleblog.com
Turbo, An Improved Rainbow Colormap for Visualization
2)gist.github.com
mikhailov-work/turbo_colormap.py
mikhailov-work/turbo_colormap.c
mikhailov-work/turbo_colormap.glsl