论文笔记:Learning to See in the Dark

标题

Introduction

在极低照度环境下,使用短曝光拍照会存在大量噪声和偏色问题,而使用长曝光拍照会造成图像模糊。文章提出了一种低光照图像质量提升的方法。其利用端到端的全卷积网络代替传统图像后处理链路,可直接将传感器RAW数据处理得到可视化的彩色图像。文章主要贡献在于:

  • 提出了一种端到端的方法提升极低光照图像的图像质量,主要解决噪声和偏色问题;
  • 建立低光照图像库,以短曝光图像与其对应的长曝光参考图像作为训练集,训练全卷积神经网络;
  • 分析并比较了多种因素对图像质量的影响。

文章声称其可以做到将低光照图像亮度提升300倍,且保持好的噪声抑制和颜色校正效果。

SID Dataset

See-in-the-Dark(SID)数据集包含了 5094张短曝光RAW图像,及其对应的长曝光参考图像。
1. 数据集包含了室内和室外的图像,其中室外场景照度在0.2lux~5lux,室内场景照度在0.03lux~0.3lux。
2. 短曝图曝光时间设定为1/30到1/10s,对应长曝图曝光时间设定为其100到300倍,即10到30s。
3. 短曝图与其对应的长曝图之间没有位移。
4. 随机挑选70%作为训练集,20%作为测试集,10%作为验证集。
5. 图像获取使用两款相机:Sony α 7S II 和 Fujifilm X-T2,其相关参数如下
这里写图片描述

Method

流程

流程
对于Bayer结构数据,将RAW数据分成四个通道,空间分辨率下降四倍;对于X-Trans结构数据,将RAW数据分成9个通道。然后减去黑电平值并将输入数据亮度放大相应的倍数,使其与参考图像的曝光相同,输入到网络中。输出是12通道的图像,其分辨率只有原始分辨率的一半,然后将其通过亚像素层上采样得到SRGB空间的输出图像。
文章主要聚焦于两种全卷积神经网络:multi-scae context aggregation network(CAN)和U-net,其默认使用U-net。
U-net

训练

文章使用L1 损失函数和Adam优化方法对网络进行训练。以短曝光RAW数据作为输入,以sRGB空间的长曝光图像作为ground truth。且对每个相机单独训练一个网络。在每次迭代中,随机截取512×512 大小的patch做训练,并对其做随机翻转和旋转以增广数据。

Experiment

结果比较

这里写图片描述
这里写图片描述
文章将网络得到的结果与BM3D去噪结果以及多张图像去噪结果进行了比较,其中多张图像去噪是对8张序列图像取中值得到的。
这里写图片描述
对于相似传感器可以使用同一个网络,如将Sony网络应用于iPhone 6s拍摄的图片
.这里写图片描述

控制变量实验

使用PSNR和SSIM作为指标评价结果去噪性能。下表展示了各个变量控制实验结果,第一列参数为PSNR,第二列参数为SSIM。
这里写图片描述
1. 网络结构:U-net比CAN有更高的PSNR,而CAN有更高的SSIM,但其有时会出现颜色丢失现象。
这里写图片描述
2. 输入颜色空间:直接输入RAW数据对于极低照度条件会更有效。
3. 损失函数:L1,L2 ,SSIM损失函数结果差不多,但增加GAN损失会显著降低精度。
4. 后处理:将参考图像做直方图均衡化后再作为ground truth的效果没有直接用参考图像的效果好,因为网络不得不学习直方图均衡化,这会使得输出结果虽然更亮但是不够清晰,因此文章直接对输出图像直方图均衡化。

代码测试

作者也给出了代码地址:github地址
使用作者提供的代码,用作者训练好的网络做了简单的测试,测试结果如下:
输入图像亮度放大100倍
这里写图片描述
输入图像亮度放大250倍
这里写图片描述
这里写图片描述
这里写图片描述
从上面比较的结果可以看出,在暗光区域噪声抑制的比较好,但部分区域出现过平滑和细节丢失,特别是对于亮度提升比较高时,图像质量会下降。
去噪结果
使用正常曝光的RAW数据作为输入,亮度提升倍数设为1,测试结果如下:
这里写图片描述
这里写图片描述
与BM3D去噪结果相比,可见网络结果更加平滑。

不足之处

  1. 部分区域出现过平滑和细节丢失;
  2. 图像偏色校正不准确;
  3. 没有进行HDR tone mapping,结果可能存在过曝光区域;
  4. SID数据集没有包含运动物体;
  5. 对不同的图像传感器可能需要训练不同的网络;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章