撮像直後のセンサから出てきた画像はどのような画像かご存じでしょうか?多くの方はご存じないと思いますが、撮像直後の画像はRAW画像と呼ばれ、以下に示すように何の色味もない画像です。拡大して見てみると、チェッカーパターンのような細かい模様が見えます。実はこれらの画素はR,G,B画素にそれぞれに対応しており、右図右下に示したような2x2の繰り返しパターンの画素が配置されています。この近傍のR,G,B画素情報を用いて、同一画素位置上のR,G,Bの3成分を推定・生成することで色味のついた画像が生成されるわけです。我々がシャッターを切った際には綺麗な画像を生成するため、この画像生成処理には様々なアルゴリズムが実行されています。特にスマホでは一部の処理はAI・CNNで既に置換されているものもあります。
RAW画像から”理想的な”RGB画像をCNN等を用いて高速に生成することが出来れば素晴らしいのですが、まだ現状アーティファクト等の問題があり難しいのが現状です。ECCV2020のワークショップRAW2RGBは、その理想に向かってチャレンジするコンペでした。以下がサブミットした結果の一例です。
このワークショップではHuaweiのP20で撮像されたRAW画像を入力として、CannonのDSLRのRGB画像が教師として用いられてました。画質を目的画像に近づけるにはDemosaicのみならずDenoiseやTone-Mapping等まで処理する必要があり、アーティファクトや色ずれを発生させないようにロス関数や画像情報の流れの設計に苦慮しました。完全にCNNとして一元化することの難しさを改めて感じました。ただ自分が用いたのは比較的単純な再帰CNNモデルであったこと、アテンション等の有効性を確実視できるレイヤーを組み込んでなかったこと等、もう少々やりようがあったとも感じています[1]。
チャレンジはあくまで学術的なチャレンジなので、突っ込みどころもそれなりにありますが、適切な入力情報とモデルと学習に注力すれば、画像生成パイプの多くの部分はDeepNetや機械学習を使ったアルゴに代替できるのではと期待しています。自分が考えるDeepNetによる画像生成処理の現状の課題は以下のようなものです。
人間の主観性を的確に表現できるロス関数
処理時間
コントローラビリティ
[1] ECCV2020 workshop, RAW-to-RGB challenge