LED~~

この方法では、ノイズ パラメーターの調整やトレーニングの繰り返しは必要なく、ターゲット カメラに適応させるために必要なのは、少量のペア データと高速微調整だけです。非常に暗いシーンでの RAW 画像のノイズ除去のための新しいパイプライン

ホームページ: https://srameo.github.io/projects/led-iccv23

論文: https://arxiv.org/abs/2308.03448

Github: https://github.com/Srameo/LED

Googleドライブ: https://drive.google.com/drive/folders/11MYkjzbPIZ7mJbu9vrgaVC-OwGcOFKsM%3Fusp%3Dsharing

非常に暗い環境での RAW 画像のノイズ除去は、キャリブレーション ベースの方法が主流です。ただし、これらのアプローチにはいくつかの大きな欠点があります。

  1. ノイズパラメータの校正プロセスは面倒で時間がかかりますが、

  2. 異なるカメラのノイズ低減ネットワークを相互に変換するのは困難です。

  3. 合成ノイズと実際のノイズの差は、高いデジタル ゲインによって増幅されます。

上記の欠点を克服するために、デジタル ゲインやカメラ センサーの種類に 関係なく、 Lighing E Very  Darkness ( LED )を照明するためのキャリブレーション不要のパイプラインを提案します 。私たちの方法では、ノイズ パラメーターを調整したりトレーニングを繰り返したりする必要はありませんが、ターゲット カメラに適応させるために必要なのは、少量のペア データと高速微調整だけです。さらに、単純な構造変更により、追加の計算コストをかけずに、合成ノイズと実際のノイズの間の領域ギャップを狭めることができますSID[1] では合計 _6 ペアのペア データ、反復回数の 0.5%、トレーニング時間の 0.2%_ のみで、LED は SOTA パフォーマンスを示します。

実際のペアデータを使用したトレーニング

SID[1] は、RAW 画像の低照度補正またはノイズ除去のためのベンチマークとデータセットの完全なセットを最初に提案しました。ノイズ除去や低照度補正のために RAW 画像から始めるのはなぜでしょうか? 上限が高いので詳細はSID[1]の記事を参照してください。

それで、それは正確に何をするのでしょうか?これは非常に簡単で、図 1 の左側に示すように、カメラを使用してペアになった大量の実データをキャプチャし、それをトレーニングのためにネットワークに直接蓄積します。図 1: 実際のペアデータに基づくトレーニング プロセス (左) とノイズ モデルのキャリブレーションに基づくトレーニング プロセス (右)

しかし、非常に重要な問題があります。センサー、ノイズモデル、パラメーターが異なると異なります。このプロセスによれば、カメラごとに大量のデータを再収集し、再トレーニングする必要があるのでしょうか? ちょっと面倒すぎませんか?

ノイズモデルキャリブレーションに基づくアルゴリズムフロー

上記の問題に関して、最近の論文 [2] [3] [4] [5] は一律に次のように述べています。現在では、さまざまな産業シナリオ (携帯電話、エッジ デバイス) を含め、誰もが主にロールを使用し、ノイズ除去タスクでキャリブレーション ベースの方法を使用し始めています。

では、キャリブレーションとは何でしょうか? 特定のキャリブレーション プロセスについては、@Wang Hawk の記事「デジタル カメラ イメージングのノイズ モデルとキャリブレーション」(https://zhuanlan.zhihu.com/p/397873289) を参照してください。もちろん、ディープラーニング + ノイズ モデルのキャリブレーションに基づくアルゴリズムは、大きく次の 3 つのステップに分かれています (図 1 の右側を参照してください)。

  1. ノイズモデルを設計し、校正データを収集し、

  2. 1. で校正されたデータを使用してノイズ モデルのパラメーターを推定すると、ゲイン (またはアイソ) とノイズ分散は対数領域で線形関係になります。

  3. 2. で調整したノイズ モデルを使用して、ペアのデータを合成し、ニューラル ネットワークを学習します。

このようにして、カメラごとに異なるキャリブレーション データを使用するだけで (収集の難易度は大規模なペア データ セットよりもはるかに低くなります)、その後、カメラに対応する専用のノイズ除去ネットワークをトレーニングできます。

しかし、キャリブレーション アルゴリズムは本当に優れているのでしょうか?

キャリブレーションの欠陥と LED図 2: ノイズ モデルのキャリブレーションに基づくアルゴリズムの欠陥

それで、私たちは何が好きなのでしょうか?

  1. 簡素化されたキャリブレーション [6] [7]、またはキャリブレーションなしでも、

  2. 新しいカメラに迅速に導入し、

  3. 強力な「一般化」能力:実際のシーンに対する非常に優れた一般化により、合成ノイズと実際のノイズの間の領域ギャップを克服します。

そこでLEDの登場です!図 3: LED と比較したキャリブレーション アルゴリズム

  1. キャリブレーション不要:実際のカメラのノイズパラメータを使用する必要があるキャリブレーションアルゴリズムと比較して、データ合成には仮想カメラのノイズパラメータを使用します。

  2. 迅速な導入: Pretrain-Finetune トレーニング戦略を使用すると、新しいカメラのネットワークの一部のパラメーターを微調整するために必要なデータは少量だけです。

  3. ドメイン ギャップの克服: 微調整は少量の実データに対して実行され、実際のノイズを除去する機能が得られます。

LEDって何ができるの? 

 図 4: 6 ペアのデータ + 1.5K 反復 = SOTA パフォーマンス!図 5: より直感的なログの比較

方法

LED化は大きく以下の工程に分かれます。

  1. 事前定義されたノイズ モデル Φ\Phi\Phi は、パラメータ空間から「仮想カメラ」ノイズ パラメータの NNN グループをランダムに収集します。

  2. 1. の NNN グループ「仮想カメラ」ノイズ パラメーターを使用して、ニューラル ネットワークを合成および事前トレーニングします。

  3. ターゲットカメラを使用して少量のペアデータを収集し、

  4. 3. Finetune で少量のデータを使用します。 2. 事前トレーニングされたニューラル ネットワーク。

もちろん、通常の UNet では、先に述べた 3 つの「ニーズ」を満たすことはできません。したがって、構造に小さな変更が必要です。図 6: UNet 構造内の RepNR ブロック

まず、UNet のすべての Conv3 を CSACSACSA (Camera Specific Alignment) のセットと組み合わせます。CSACSACSA は、特徴空間での位置合わせのための単純なチャネルごとの重みとチャネルごとのバイアスのセットを指します。

事前トレーニング中、kkk 番目のカメラによって合成されたデータについては、kkk 番目の CSACSACSA と Conv3 のみをトレーニングします。

微調整する場合は、まず事前トレーニング中に CSACSACSA グループを平均して初期化された CSATCSA^TCSA^T (ターゲット カメラ用) を取得し、次にそれを最初に収束するようにトレーニングします。その後、追加のブランチを追加して微調整を続行し、追加のブランチが使用されます学習合成用 ノイズと実際のノイズの間のドメイン ギャップ。

もちろん、CSACSACSA と畳み込みはどちらも線形演算であるため、展開時にそれらをすべてまとめて再パラメータ化できるため、余分な計算が発生することはありません。図 7: 再パラメータ化

視覚的な結果

以下の図は、モデル外のノイズを除去する LED の能力 (合成ノイズと実際のノイズの間のドメイン ギャップを克服する能力) を示しています。

モデル外のノイズとは、図 8 のレンズによって引き起こされるノイズや、図 9 のダーク シェーディングによって引き起こされるノイズなど、ノイズ モデルで事前定義されていないノイズを指します。 図 8: モデル外のパターンの除去図 9: モデル外のノイズ除去能力 (ダーク シェーディング

「なぜ 2 組のデータが必要なのか?」についてのディスカッション図 10

以前に隠された伏線を覚えているかどうかはわかりませんが、ゲインとノイズ分散の間には対数線形の関係があります。

線形関係とはどういう意味ですか? 直線は2点で決まりますつまり、2 つのデータ ペア (各データ ペアは、特定のゲインでのノイズ分散の値を提供できます) によって、この線形関係を決定できます。ただし、エラー [2] のため、ネットワークの線形関係の学習を完了するには、ゲイン ギャップができるだけ大きい 2 組のデータが必要です。ワオソフト アイオット http://143ai.com 

また、図 10 の右側から、同じゲインで 1、2、および 4 ペアのデータを使用した場合、パフォーマンスに大きな違いがないことがわかります。ゲインに大きな差がある 2 つのデータのペアを使用すると (大きな差とは ISO<500 と ISO>5000 を指します)、パフォーマンスは大幅に向上します。これは、2 つのデータのペアが線形関係を学習できるという仮定を裏付けるものでもあります。

ELD の再現コードを含むトレーニングとテストは、Github (https://github.com/Srameo/LED) にオープンソース化されています。 

もちろん、コードだけでなく、ペアのデータ、複数のカメラの ELD、PG (ポアソンガウス) ノイズ モデル、さまざまなトレーニング戦略、およびさまざまなステージ (事前トレーニングおよび微調整ステージを指します) もオープンソース化しました。 LED の) 合計15 モデル、詳細については pretrained-model.md を参照してください。

https://github.com/Srameo/LED/blob/main/docs/pretrained-models.md%23network-for-benchmark

さらに、RepNR ブロックは現在 UNet でのみテストされているため、他のモデルでもその可能性を信じています。したがって、他のモデルで RepNR ブロックをすばやく使用するためのコードが提供されています。コード 1 行だけで、独自のネットワーク構造で RepNR ブロックを使用できます。当社の Noisy-Clean ジェネレーターを使用すると、RepNR ブロックが適切であることをすぐに確認できます。その他の構造的妥当性。関連する説明とコードは、develop.md (https://github.com/Srameo/LED/blob/main/docs/develop.md) にあります。

ギットハブ:

https://github.com/Srameo/LEDgithub.com/Srameo/LED

ホームページ:

https://srameo.github.io/projects/led-iccv23/

紙:

http://arxiv.org/abs/2308.03448

おすすめ

転載: blog.csdn.net/qq_29788741/article/details/132200001