最近做项目看了一篇论文《Learn to See in the Dark》下面是一些论文笔记

概括:

  这篇论文主要介绍的是在低光照的环境下用两个标准的FCN网络,通过控制变量法来对比不同的去噪,增加信噪比(SNR)的方案,最终找到一个很好的解决方案。下面是详细介绍:

图片噪声影响:

  由于图片拍摄的一些参数的设置不同,图片总是会出现一些噪声,或者的模糊等现象。高ISO可以提亮,但也会放大噪声。直接缩放或者拉伸直方图来降噪,也有一定效果,但并不能弥补光子不足的缺陷,如果增加曝光时间可以补充光子不足,但是一旦出现相机抖动,或者是物体移动就会出现图像模糊等现象。在弱光条件下可以通过开发光圈、延长曝光时间、使用闪光灯等来增加SNR,但是这些方法都存在自身的缺陷。

论文中要解决的问题:

  暗光条件下的快速成像系统一直都是计算摄影界的一大挑战,目前,许多关于图像去噪,去模糊和低光图像增强等技术相继提出,但这些技术通常假设这些在昏暗环境下捕获到的图像带有中等程度的噪音。相反,论文更感兴趣的是在极端低光条件下,如光照严重受限 (例如月光) 和短时间曝光 (理想情况下是视频率) 等条件下的图像成像系统。在这种情况下,传统相机的处理方式显然已不适用,图像必须根据原始的传感器数据来重建。

论文中的数据集:

  文中提到的数据集,是他们在固定位置用三脚架拍的。采用app远程设置光圈、ISO等参数,室外光照在0.2勒克斯和5勒克斯之间,室内的更加黑暗。数据采集的原则是高曝光的只要保持视觉效果好即可,不一味追求移除全部噪声。他们称自己的数据集叫SID。数据集包含了室内和室外图像。室外图像通常是在月光或街道照明条件下拍摄。在室外场景下,相机的亮度一般在0.2 lux 和5 lux 之间。室内图像通常更暗。在室内场景中的相机亮度一般在0.03 lux 和0.3 lux 之间。输入图像的曝光时间设置为1/30和1/10秒。相应的参考图像 (真实图像) 的曝光时间通常会延长100到300倍:即10至30秒。数据集一共有5049张照片

                                                        

在每种条件下,随机选择大约20%的图像是组成测试集,另外选定10%的数据用于模型验证。

数据集下载可以参考:项目中download_dataset.py文件

数据集Sony类型有25GB,Fuji类型有52GB

相关数据处理工作: 

  去噪:全变分、小波域变换、稀疏编码、核范数最小化、BM3D(光滑、稀疏、低秩、自适应)。缺点:数据集一般都是合成的。一般认为BM3D在真实图片的表现结果比大部分其他算法好(Benchmarking denoising algorithms with real photographs)。多图效果不错,但本文想单图。

低光照图像增强:直方图均衡化、图像灰度校正(伽马校正)、暗通道反转、小波变换、Retinex model、光强映射估计。这些方法都认为退化图已经包含比较好的潜在信息,而没有考虑噪声和颜色扭曲的影响。

方法:

  提出了一种端到端的学习方法,直接使用原始传感器的数据,方法结构图:

  他们将两个标准的FCN结构作为模型的核心架构,分别是多尺度聚集网络(multi-scale context aggregation network (CAN))和U-net(U-net: Convolutional networks for biomedical image segmentation)。

FCN全卷积网络可以参考:《Fully Convolutional Networks for Semantic Segmentation

  使用了FCN结构说明,对于这个模型可以输入任意像素的图片,

  FCN结构示意图:

    

CAN上下文聚合网络可以参考:https://arxiv.org/pdf/1511.07122.pdf

U-net可以参考:https://arxiv.org/abs/1505.04597

  U-Net 架构包括一个捕获上下文信息的收缩路径和一个支持精确本地化的对称扩展路径。我们证明了这样一个网络可以使用非常少的图像进行端到端的训练,并且在 ISBI 神经元结构分割挑战赛中取得了比以前最好的方法(一个滑动窗口的卷积网络)更加优异的性能。我们使用相同的网络,在透射光显微镜图像(相位对比度和 DIC)上进行训练,以很大的优势获得了 2015 年 ISBI 细胞追踪挑战赛。此外,网络推断速度很快。一个 512x512 的图像分割在最新的 GPU 上花费了不到一秒。

  U-Nrt架构:

      

其中U-net是本文默认的网络。

模型训练:

  使用 L1 损失和 Adam 优化器,从零开始训练我们的网络。在训练期间,网络输入是原始的短曝光图像,在 sRGB 空间中的真实数据是相应的长曝光时间图像(由一个原始图像处理库 libraw 处理过得参考图像)。为每台相机训练一个网络,并将原始图像和参考图像之间曝光时间的倍数差作为的放大因子(例如,x100,x250,或x300)。在每次训练迭代中,随机裁剪一个512×512的补丁用于训练并利用翻转、旋转等操作来随机增强数据。初始学习率设定为0.0001,在2000次迭代后学习率降为0.00001,训练一共进行4000次迭代。

对比分析结果

  与传统方法的对比,提出的方法具有放大的功能。

用CAN替换U-net、用sRGB替换原始信号,SSIM或L2替换L1等等。其中不用原始信号那个掉得最快,其余的差并不太多。

总结:

  1.本文设计了数据驱动的方法,能有效提高成像表现,还贡献了SID数据集。

  2.对于低光照图片的处理方法提供了一种全新的思路,能有效的解决这类问题

  3.不足之处在于对于训练的内存要求太大。数据集也比较大

原文链接:arxiv.org/abs/1805.01934

项目地址:web.engr.illinois.edu/~cchen156/SID.html

GitHub地址:github.com/cchen156/Learning-to-See-in-the-Dark

中文翻译:https://blog.csdn.net/linchunmian/article/details/80291921

Learn to See in the Dark(论文阅读笔记)的更多相关文章

  1. Learning to See in the Dark论文阅读笔记

    这是一篇图像增强的论文,作者创建了一个数据集合,和以往的问题不同,作者的创建的see in the dark(SID)数据集合是在极其暗的光照下拍摄的,这个点可以作为一个很大的contribution ...

  2. 论文阅读笔记 - YARN : Architecture of Next Generation Apache Hadoop MapReduceFramework

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  3. 论文阅读笔记 - Mesos: A Platform for Fine-Grained ResourceSharing in the Data Center

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  4. 论文阅读笔记 Word Embeddings A Survey

    论文阅读笔记 Word Embeddings A Survey 收获 Word Embedding 的定义 dense, distributed, fixed-length word vectors, ...

  5. 论文阅读笔记 Improved Word Representation Learning with Sememes

    论文阅读笔记 Improved Word Representation Learning with Sememes 一句话概括本文工作 使用词汇资源--知网--来提升词嵌入的表征能力,并提出了三种基于 ...

  6. [置顶] 人工智能(深度学习)加速芯片论文阅读笔记 (已添加ISSCC17,FPGA17...ISCA17...)

    这是一个导读,可以快速找到我记录的关于人工智能(深度学习)加速芯片论文阅读笔记. ISSCC 2017 Session14 Deep Learning Processors: ISSCC 2017关于 ...

  7. Nature/Science 论文阅读笔记

    Nature/Science 论文阅读笔记 Unsupervised word embeddings capture latent knowledge from materials science l ...

  8. 论文阅读笔记(二十一)【CVPR2017】:Deep Spatial-Temporal Fusion Network for Video-Based Person Re-Identification

    Introduction (1)Motivation: 当前CNN无法提取图像序列的关系特征:RNN较为忽视视频序列前期的帧信息,也缺乏对于步态等具体信息的提取:Siamese损失和Triplet损失 ...

  9. 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification

    论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...

  10. [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering

    [论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...

随机推荐

  1. C和C++中的不定参数

    在初学C的时候,我们都会用到printf函数来写Hello World的程序.在我们看printf函数的声明时,会看到类似于下面代码 int printf(const char * __restric ...

  2. JavaScript事件 DOMNodeInserted DOMNodeRemoved

    JavaScript与HTML之间的交互是通过事件实现的.事件,就是文档或浏览器窗口中发生的一些特定交互的瞬间.可以使用侦听器(或处理程序)来预订事件,以便事件发生时执行相应的代码. 13.1 事件流 ...

  3. icp算法

    https://github.com/tttamaki/ICP-test https://github.com/tttamaki/SICP-test

  4. 解决 Laravel try catch 不工作的问题

    最近再用laravel框架发现,try catch用了没有效果,不能捕获异常, 然后在think框架里也试了一下,发现竟然也不可以! [php] view plain copy try{  $i = ...

  5. abp AutoMap Custom Mapping

    [DependsOn(typeof(AbpAutoMapperModule))] public class MyModule : AbpModule { public override void Pr ...

  6. Java程序设计9——泛型

    泛型是对集合的补充,JDK1.5增加泛型支持很大程度上都是为了让集合能记住其元素的数据类型.在没有泛型之前,一旦把一个对象丢进Java集合中,集合就会忘记对象的类型,把所有的对象都当成Object类型 ...

  7. 20155335俞昆《java程序设计》第6周总结

    20155335    <Java程序设计>第6周学习总结 ##  教材学习内容总结 首先,我们需要了解输入和输出的关系,我想,这不同于c语言中的输入和输出,我们首先明白,Java中以串流 ...

  8. handsontable-utilities

    搜索值 鼠标右键 讲了四个功能:1.row header是否可以右键(rowheader:true):2.删除右键列表的某些值(通过数组定义):3.自定义右键列表和功能(callback,item两个 ...

  9. 史上最详细的Hadoop环境搭建(转)

    转载的文章,请告知侵删.本人只是做个记录,以免以后找不到. 前言 Hadoop在大数据技术体系中的地位至关重要,Hadoop是大数据技术的基础,对Hadoop基础知识的掌握的扎实程度,会决定在大数据技 ...

  10. Win7/Win8/Win8.1下配置apache+php运行缓慢问题解决方法

    将以下内容复制另存为 xxx.reg,双击导入后重启机器! Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\Curren ...