這是 CVPR 2018 中「學習在黑暗中看到」的 Tensorflow 實現,作者為 Chen Chen、Qifeng Chen、Jia Xu 和 Vladlen Koltun。
專案網站
紙
此程式碼包含用於在黑暗中看到 (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 與真實情況存在一些偏差。
您可以直接從 Google 雲端硬碟下載Sony (25 GB) 和富士 (52 GB) 裝置。
Google Drive 在固定時間內有下載限制。如果您因此無法下載,請嘗試以下連結:Sony (25 GB) 和 Fuji (52 GB)。
新:我們現在在百度網盤中提供文件部分。下載所有零件後,您可以透過執行「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」。
載入原始資料並透過 Rawpy 進行處理比反向傳播花費更多的時間。預設情況下,程式碼會將 Rawpy 處理的所有 groundtruth 資料載入到記憶體中,而不會進行 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 年。
麻省理工學院許可證。
所提出的方法是針對感測器原始資料而設計的。預訓練模型可能不適用於來自另一個相機感測器的資料。我們不支援其他相機數據。它也不適用於相機 ISP 之後的影像,即 JPG 或 PNG 資料。
這是一個研究計畫和證明概念的原型。
一般情況下,您只需減去正確的黑色電平並以與索尼/富士數據相同的方式打包數據即可。如果使用 rawpy,您需要讀取黑電平,而不是在提供的程式碼中使用 512。如果不是 14 位,資料範圍也可能不同。您需要將網路輸入標準化為 [0,1]。
這通常是因為預訓練模型沒有正確下載。下載後,您應該會取得該模型的 4 個檢查點相關檔案。
如果您在閱讀常見問題解答後還有其他問題,請發送電子郵件至 [email protected]。