这是 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 驱动器下载索尼 (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]。