3.增强网络——Relight

4.结果展示

低照度图像增强一直是计算机视觉领域的一个热门研究方向,之前传统的基于Retinex理论的研究方法已经出现很多,比如:MSR,MSRCR,MSRCP等,这些方法在低照度图像增强方面效果有明显提升,上一篇博客主要介绍了基于Retinex理论的集中图像增强方法,并给出了python代码。博客链接如下:
[图像增强Retinex算法之python实现——MSR,MSRCR,MSRCP,autoMSRCR] (https://blog.csdn.net/weixin_38285131/article/details/88097771)
但是基于传统的图像图像处理方法处理每一张图像会比较耗时,一副4000*8000的图像需要耗时十几分钟,这样就没法批量处理低照度图像,因此本文介绍一种基于Retinex理论的卷积神经网络模型——RetinexNet,该模型是北大的童鞋在2018年发表在BMVC上的,论文名字是—— Deep Retinex Decomposition for Low-Light Enhancement
[论文PDF]
RetinexNet项目介绍,数据集,PPT等

一丶Retinex理论——图像分解

这个理论在上一篇博客中已有介绍,任何一幅图像可以分解为光照图像(illumination)和反射图像(reflectance),反射图像是物体的本身性质决定的即为不变的部分,光照图则受外界影响比较到,可以去除光照影响或者对光照图像进行校正,则可以达到增强图像的目的。如下图所示:

左边即为低照度图像,中间即为光照图,右边即为反射图像,原图S(x,y)=I(x,y)*R(x,y),将图像变换到log域则变成了相减,然后将光照图像减去即可达到增强图像的目的。

二丶RetinexNet卷积神经网络

摘抄自论文摘要:

Retinex理论是一种有效的微光图像增强工具。假设观测图像 可以分解为反射图像和照度图像 。大多数现有的基于Retinex卢纶的方法都为这种高度不适定的分解精心设计了手工约束和参数,当应用于各种场景时,这些约束和参数可能会受到模型容量的限制。Retinex包括一个用于分解的分解网络(Decom)和一个用于照明调节(Relight)的增强网络。在分解网络的训练过程中,没有分解反射和光照的地面真值。该网络的学习只有关键的约束条件,包括 低/正常光图像共享的一致反射率 ,以及光照的平滑度。在分解的基础上,利用增强网络增强网对光照进行后续的亮度增强,联合去噪对反射率进行去噪操作。视网膜网是端到端可训练的,学习分解的性质有利于亮度的调节。

理论整体路线即为下图所示:

输入:低照度图像

分解网络(Decom):对图像进行分解

增强网络(Relight):对图像进行增强和调整

输出:校正之后的图像

1.训练数据说明

数据主要是利用单反相机不同的光圈值和感光度拍摄同一个场景,作为 图像对 进行训练,也就是说同一场景拍摄一个低照度图像,然后在拍摄一个正常图像进行训练,具体数据如下图所示:

作图为正常拍摄图像,右图为低照度图像,大概拍摄了500张图像对作为训练数据

2.分解网络——Decom

文中的分解网络应该是一个 五层的卷积神经网络 ,代码中是利用relu函数进行激活,没有什么特别的处理,具体结构如下:

可以看到将图像对中的低照度图像和正常图像作为输入数据送入卷积神经网络进行分解,最后得到光照图像和反射图像,根据Retinex理论 反射图像基本接近,但是两者光照图像相差很大 ,这样把每一张训练图像进行分解,然后再送入后面的增强网络进行训练。

3.增强网络——Relight

增强网络,我看代码应该是一个九层的卷积神经网络,利用relu进行激活,中间还进行最邻近差值的resize操作,具体如下图:


对刚才分解的反射图像进行去噪音操作,他中间用了平滑,但是 我觉得用了平滑之后降低了图像本身的锐度,图像变得模糊 ,个人觉得这一步还应该做一下增强处理,回头看看能不能修改一下这个中间处理操作。应该可以用拉普拉斯进行一下图像恢复吧,我觉得这一步降低图像锐度不太好,重建图像稍显模糊。

4.结果展示

中间即为校正之后的,右边为正常光照图像,虽然和正常图像比不了,但是已经很不错了,

最后与其他算法做了一些对比工作,感觉各有千秋吧,不过都有一定的亮度提升,还是很值得研究一哈的 做一下改进。

下一步,我准备用这个神经网络训练一下自己的数据,然后测试一下增强效果。

数据集百度网盘地址

github地址

转载请注明地址: https://blog.csdn.net/weixin_38285131

转载请标注:https://blog.csdn.net/weixin_38285131目录一丶Retinex理论——图像分解二丶RetinexNet卷积神经网络1.训练数据说明2.分解网络——Decom3.增强网络——Relight4.结果展示 低照度图像增强一直是计算机视觉领域的一个热门研究方向,之前传统的基于Retinex理论的研究方法已经... 稳健曝光校正的双光照估计 [] LIME:通过照明图估计进行 图像增强 [] 这两种方法都基于 re tinex 建模,旨在通过保留图像的突出结构来估计光照图,同时去除多余的纹理细节。 为此,两篇论文都使用了相同的优化公式(参见参考资料)。 与第二篇论文(以下称为 LIME)相比,第一篇论文(以下称为 DUAL)引入的新颖性在于对原始图像及其倒置版本的该映射的估计,它允许校正曝光不足和过度曝光图像的暴露部分。 此存储库中实现的代码允许使用这两种方法,可以从脚本参数中轻松选择。 这个实现在python>=3.7上运行,使用pip安装依赖: pip3 install -r requirements.txt 使用demo.py脚本来增强您的图像。 usage: demo.py
Re tinexNet 这是Re tinexNet 的Tensorflow实现 深度Re tinex 分解,可增强弱光。 在BMVC'18(口头介绍)中 , ,,。 (*表示平均分担) Python Tensorflow> = 1.5.0 numpy,PIL 要使用我们的模型快速测试您自己的图像,您可以运行 python main.py --use_gpu=1 \ # use gpu or not --gpu_idx=0 \ --gpu_mem=0.5 \ # gpu memory usage --phase=test \ --test_dir=/path/to/your/test/dir/ \ --save_dir=/pa
针对光照不均匀、光线暗等环境导致图像采集单元采集到的图像视觉效果差、噪声大等问题,本文提出一种基于视网膜和皮层(Re tinex )理论改进的 照度 图像增强 算法去恢复图像原有的视觉特征。将 照度 图像从红、绿、蓝(RGB)空间转换到色调、饱和度、亮度(HSV)空间,在HSV空间的V通道去对 照度 图像进行处理,这样能够避免图像三基色比例关系被破坏;采用改进的多尺度Re tinex (MSR)算法估计光照分量,用非局部均值(NLM)滤波代替高斯滤波,利用滤波窗口与相邻窗口间的递归关系来简化计算,不仅能准确估计光照分量,还能够提高图像的处理速度;最后进行颜色空间逆变换,转换到人眼习惯的RGB颜色空间。实验结果表明该算法可以有效提高图像清晰度,保护图像的细节信息。
针对现有算法对图像边缘细节增强不足及无法有效控制各尺度信息增强程度的问题,提出了多级分解的Re tinex 照度 图像增强 算法。该算法在Re tinex 分解模型和双边滤波的基础上,通过设置不同的滤波参数,获取表征图像不同尺度信息的反射分量和 照度 分量;通过使用指数函数对分解得到的各级反射分量进行增强,能够有效提升图像边缘细节的表达能力;通过使用S型函数对最终的 照度 分量进行处理,能够在提升 照度 图像整体亮度的同时抑制高亮度区域;通过颜色恢复函数对增强图像进行后处理,进一步避免色彩偏差和失真的问题。实验结果表明,新算法能够改善 照度 图像的视觉质量,在清晰度、信息熵、对比度等指标方面都有所提升。
网络拆分成两个模块,Decom-Net用于对图像进行Re tinex 分解,Enhance-Net用于对图像进行光照图的调整。仅通过 光照/正常曝光图像的reflectance的反射图一致性和光照图的光滑性来进行约束。与此同时,在反射图上使用联合去噪BM3D算法。 其实这篇论文更重要的是LOL Dataset,以及制作这个数据集的方法。
【题目】:URe tinex -Net: Re tinex -based Deep Unfolding Network for Low-light Image Enhancement 提出了一种基于Re tinex 的 deep unfolding network (URe tinex -Net),它将一个优化问题展开为一个可学习的网络,以将 光图像分解为反射层和光照层。通过将分解问题公式化为隐式先验正则化模型,精心设计了三个基于学习的模块,分别负责数据相关的初始化、高效的展开优化和用户指定的光照增强。
写本文的目的是记录自己学习过或做过的一些东西,深化理解,理清思路,便于回忆。本人处于学习阶段,欢迎指出不对的地方。 本文算法参考文献:李勇.基于Re tinex 理论的 照度 图像增强 算法研究与实现[D].西安电子科技大学,2018 本文是本人按照作者发表的原文进行复现并稍加改动,在尽力的基础上由于本人水平有限,对作者一些想法的理解和结果的复现不一定正确,需要研究此算法的朋友,在看我文章的时候最好加入自己的判断,或者直接查看原文。欢迎各位指出我不对的地方,或者与我探讨交流!需要程序可评论。 图像作为信
Re tinex 是一种常用的建立在科学实验和科学分析基础上的 图像增强 方法,它是Edwin.H.Land于1963年提出的。就跟Matlab是由Matrix和Laboratory合成的一样,Re tinex 也是由两个单词合成的一个词语,他们分别是retina 和cortex,即:视网膜和皮层。Land的re tinex 模式是建立在以下三个假设之上的: (1)真实世界是无颜色的,我们所感知的颜色是光与物质
1.ExCNet: A Framework for Zero-Shot Restoration of Back-lit Images Using Deep Internal Learning 简介:如何恢复背光图像仍然是一项具有挑战性的任务。该领域最先进的方法基于监督学习,因此它们通常仅限于特定的训练数据。在本文中,我们提出了一种用于背光图像恢复的“零镜头”方案,该方案利用了深度学习的力量,但不依赖于任何先前的图像示例或先前的训练。具体来说,我们在测试时训练一个小型图像特定的 CNN,即 ExCN
很抱歉,作为一种人工智能训练的语言模型,我无法为您写一篇完整的论文。但是,我可以为您提供一些关于 照度 图像增强 的相关信息。 照度 图像增强 是图像处理领域的一个重要研究方向,旨在提高图像的可见度和质量。这种技术通常通过改善图像的对比度和亮度来实现。有许多算法可以用于 照度 图像增强 ,包括基于直方图均衡化、自适应直方图均衡化、遗传算法和深度学习算法等。 照度 图像增强 的应用广泛,如夜间摄影、医学影像、安防监控等。因此,研究 照度 图像增强 的技术对于提高图像处理的效率和质量具有重要意义。 在研究 照度 图像增强 的过程中,需要考虑多种因素,如图像噪声、图像内容、图像分辨率等。同时,还需要评估增强效果的标准,如对比度、亮度、色彩等。 总的来说, 照度 图像增强 是一个复杂且有挑战性的研究领域,需要综合考
心中有帆: 您好,请问怎么对反射图像实现拉普拉斯锐化呀。我加了: kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32) R_low = cv2.filter2D(R_low, -1, kernel=kernel) 运行后出现这种情况: R_low = cv2.filter2D(R_low, -1, kernel=kernel) TypeError: src is not a numpy array, neither a scalar 光场子孔径图像提取(C++实现) Rise_Of_Apes: 你好,我问个小白的问题,编译通过,但是Microsoft C++异常怎么办,困扰好久了 图像色彩增强之python实现——MSR,MSRCR,MSRCP,autoMSRCR qq_57095853: 你好,请问您找到了同求对文件夹批量处理的代码嘛 低照度图像增强之卷积神经网络RetinexNet S.zc: 你好,对train训练时,出现这样的问题怎么解决? File "E:\RetinexNet_PyTorch-master\train.py", line 44, in train model.train(train_low_data_names, File "E:\RetinexNet_PyTorch-master\model.py", line 263, in train start_epoch = global_step // numBatch ZeroDivisionError: integer division or modulo by zero