これは、Chen Chen、Qifeng Chen、Jia Xu、Vladlen Koltun による CVPR 2018 の Learning to See in the Dark の Tensorflow 実装です。
プロジェクトのウェブサイト
紙
このコードには、See-in-the-Dark (SID) データセットでのトレーニングとテスト用のデフォルト モデルが含まれています。
https://youtu.be/qWKUFK7MWvg
必要な Python (バージョン 2.7) ライブラリ: Tensorflow (>=1.1) + Scipy + Numpy + Rawpy。
Ubuntu + Intel i7 CPU + Nvidia Titan X (Pascal) および Cuda (>=8.0) および CuDNN (>=5.0) でテスト済み。 CPU モードも若干の変更を加えれば動作するはずですが、テストはされていません。
2018 年 8 月更新:画像 10034、10045、10172 のグラウンドトゥルースとのずれが見つかりました。定量的な結果を得るにはこれらの画像を削除してください。ただし、定性的な評価には引き続き使用できます。
Sony (25 GB) および Fuji (52 GB) セットの場合は、Google ドライブから直接ダウンロードできます。
Googleドライブには一定期間内のダウンロード制限があります。この問題が原因でダウンロードできない場合は、Sony (25 GB) および Fuji (52 GB) のリンクを試してください。
新規: Baidu Drive でファイル パーツを提供するようになりました。すべてのパーツをダウンロードしたら、「cat SonyPart* > Sony.zip」および「cat FujiPart* > Fuji.zip」を実行して、それらを結合できます。
ファイルリストが提供されます。各行には、短時間露光の画像パス、対応する長時間露光の画像パス、カメラの ISO および F 番号があります。複数の短時間露光画像が同じ長時間露光画像に対応する場合があることに注意してください。
ファイル名には画像情報が含まれます。たとえば、「10019_00_0.033s.RAF」では、最初の数字「1」はテスト セットからのものであることを意味します(「0」はトレーニング セット、「2」は検証セット)。 「0019」は画像IDです。次の「00」はシーケンス/バースト内の番号です。 「0.033s」は露光時間1/30秒です。
python download_models.py
デフォルトでは、コードは「./dataset/Sony/」フォルダーと「./dataset/Fuji/」フォルダー内のデータを取得します。データセットを他のフォルダーに保存する場合は、コードの先頭の「input_dir」と「gt_dir」を変更してください。
デフォルトでは、コードは「./dataset/Sony/」フォルダーと「./dataset/Fuji/」フォルダー内のデータを取得します。データセットを他のフォルダーに保存する場合は、コードの先頭の「input_dir」と「gt_dir」を変更してください。
Raw データのロードと Rawpy による処理には、バックプロパゲーションよりも大幅に時間がかかります。デフォルトでは、コードは、Rawpy によって処理されたすべてのグラウンドトゥルース データを 8 ビットまたは 16 ビット量子化せずにメモリにロードします。これには、Sony モデルのトレーニングには少なくとも 64 GB の RAM、Fuji モデルの場合には 128 GB の RAM が必要です。 RAM の少ないマシンでトレーニングする必要がある場合は、コードを修正して、ディスク上のグラウンドトゥルース データを使用する必要がある場合があります。 Rawpy で処理された 16 ビットのグラウンドトゥルース画像 (Sony (12 GB) および Fuji (22 GB)) を提供します。
研究に当社のコードとデータセットを使用する場合は、論文を引用してください。
Chen Chen、Qifeng Chen、Jia Xu、Vladlen Koltun、「Learning to See in the Dark」、CVPR、2018 年。
MITライセンス。
提案された方法は、センサーの生データ用に設計されています。事前トレーニングされたモデルは、別のカメラ センサーからのデータに対しては機能しない可能性があります。その他のカメラデータについてはサポートしておりません。また、カメラ ISP 後の画像、つまり JPG または PNG データに対しても機能しません。
これは研究プロジェクトであり、コンセプトを証明するためのプロトタイプです。
一般に、正しい黒レベルを差し引いて、Sony/Fuji のデータと同じ方法でデータをパックするだけです。 rawpy を使用する場合は、提供されたコードで 512 を使用する代わりに黒レベルを読み取る必要があります。 14ビット以外の場合はデータ範囲も異なる場合があります。ネットワーク入力用に [0,1] に正規化する必要があります。
多くの場合、事前トレーニングされたモデルが正しくダウンロードされていないことが原因です。ダウンロード後、モデルの 4 つのチェックポイント関連ファイルを取得する必要があります。
FAQ を読んだ後にさらに質問がある場合は、[email protected] に電子メールでお問い合わせください。