首页 > 其他分享 >2023CVPR_Learning a Simple Low-light Image Enhancer from Paired Low-light Instances(PairLLE)无监督

2023CVPR_Learning a Simple Low-light Image Enhancer from Paired Low-light Instances(PairLLE)无监督

时间:2023-05-26 10:55:59浏览次数:52  
标签:Enhancer nn light ReflectionPad2d num Low 图像 Net Conv2d

一. motivation

以前的大多数LIE算法使用单个输入图像和几个手工制作的先验来调整照明。然而,由于单幅图像信息有限,手工先验的适应性较差,这些解决方案往往无法揭示图像细节。 二. contribution 1. 提出一个成对低光图像输入(相同内容,不同的曝光度) 2. 在输入之前进行了一个去噪操作,再进行Retinex分解 三. Network

训练阶段:

1 I1 和 I2 是两个曝光度不同的低光输入,分别输入到P-Net进行去噪,再分别输入到L-Net和R-Net得到光照分量和反射分量

2 P-Net 和 R-Net有相同的网络结构,P-Net 是进行一个去噪操作,使得 i1更加满足于Retinex分解

class R_net(nn.Module):
    def __init__(self, num=64):
        super(R_net, self).__init__()

        self.R_net = nn.Sequential(
            nn.ReflectionPad2d(1),
            nn.Conv2d(3, num, 3, 1, 0),
            nn.ReLU(), 
            nn.ReflectionPad2d(1),
            nn.Conv2d(num, num, 3, 1, 0),
            nn.ReLU(),               
            nn.ReflectionPad2d(1),
            nn.Conv2d(num, num, 3, 1, 0),
            nn.ReLU(),               
            nn.ReflectionPad2d(1),
            nn.Conv2d(num, num, 3, 1, 0),            
            nn.ReLU(),   
            nn.ReflectionPad2d(1),
            nn.Conv2d(num, 3, 3, 1, 0),
        )

    def forward(self, input):
        return torch.sigmoid(self.R_net(input))

3 L-Net和P-Net只有输出的通道数不一样,Channel-L = 1,Channel-R = 3

测试阶段:

测试阶段只用到低光输入,将低光图像I输入到P-Net中进行去噪操作,再分别经过L-Net和R-Net得到光照分量和反射分量,g(L)是对光照L的一个指数级的操作,文章中去的是0.2次方,再经过逐元素相乘得到最后增强后的效果

四. 损失Loss

1 Projection Loss 计算的去噪后的图像和原图像的一个均方误差操作,物理含义:使得噪声越来越小,如果原图像没有噪声,则Lp逼近为0

2  Reflectance Consistency Loss 计算的是两张曝光度不同的图像分离后的反射分量,按照Retinex理论,R只和物体本身的性质有关,则内容相同,曝光度不同的图像应该含有相同的反射分量R

3 Retinex第一项: 计算分离R和L与i的程度; 第二项

第三项,L0是rgb中最大的值,物理含义,我感觉要是L是正常光的话,应该rgb三个通道的值都和L0是接近的

 第四项, 光照水平和竖直的梯度应该变化不大,所以用光照梯度来约束光照变化

 五、实验结果

 在无监督中取得了一个SOTA

在g(L)中 取值的变化对与R进行逐元素相乘的时候变化

 

 

 原始图像Original Image - 去噪后的图像Projected Image = Difference Map

标签:Enhancer,nn,light,ReflectionPad2d,num,Low,图像,Net,Conv2d
From: https://www.cnblogs.com/yyhappy/p/17434152.html

相关文章

  • LightDB-A 支持oracle执行计划下推
    LightDB-A支持创建外部表,外部数据源可以是oracle,postgresql等.在LightDB-A创建oracleserver和用户映射:CREATESERVERoradbFOREIGNDATAWRAPPERoracle_fdwOPTIONS(dbserver'//x.x.x.x:1521/test');GRANTUSAGEONFOREIGNSERVERoradbTOfj;CREATEUSERMAPPING......
  • OEM报错"Compliance score 51% is below critical threshold"
     OEM报错"Compliancescore51%isbelowcriticalthreshold" 具体邮件报警如下:点击链接,打开oem网页端,点击“查看相容性标准结果”: 选中其中一个安全建议,可以看到下边一般信息中建议打上安全补丁31720783,该补丁是linux版本的OracleDB最后一个PSU补丁(11.2.0.4.201020......
  • 使用react-flow制作流程图
    1.react-flow react-flow是一个用于构建基于节点的应用程序的库。这些可以是简单的静态图或复杂的基于节点的编辑器。同时react-flow支持自定义节点类型和边线类型,并且它附带一些组件,可以查看缩略图的MiniMap和悬浮控制器Controls.2.react-flow安装npminstallreac......
  • Graph Normalizing Flows
    目录概符号说明GraphNormalizingFlowsGRevNetsLiuJ.,KumarA.,BaJ.,KirosJ.andSwerskyK.Graphnormalizingflows.NIPS,2019.概基于flows的图的生成模型.符号说明\(\mathcal{G}=(H,\Omega)\),图;\(H=(\mathbf{h}^{(1)},\cdots,\mathbf{h}^{(N)})......
  • 使用 TensorFlow 自动微分和神经网络功能估算线性回归的参数(Estimate parameters for
    大多数的深度学习框架至少都会具备以下功能:(1)张量运算(2)自动微分(3)神经网络及各种神经层TensorFlow框架亦是如此。在《深度学习全书公式+推导+代码+TensorFlow全程案例》——洪锦魁主编清华大学出版社ISBN978-7-302-61030-4这本书第3章《TensorFlow架构与主要功能》这一......
  • GitlabCI学习笔记之三:GitLabRunner pipeline语法之tags allow_faillure when retry ti
    1.tags用于从允许运行该项目的所有Runner列表中选择特定的Runner,在Runner注册期间,您可以指定Runner的标签。tags可让您使用指定了标签的runner来运行作业,此runner具有ruby和postgres标签。示例给定带有osx标签的OSXRunner和带有windows标签的WindowsRunner,以下作业将在......
  • 页面中调用swf 时allowScriptAccess 参数
    <paramname="allowScriptAccess"value="always"/>使用allowScriptAccess使Flash应用程序可与其所在的HTML页通信。此参数是必需的,因为fscommand()和getURL()操作可能导致JavaScript使用HTML页的权限,而该权限可能与Flash应用程序的权限不同。这与跨域安全性有......
  • svn: E200009: Commit failed (details follow)/both sides of the move must be comm
    今天在提交SVN的时候发生了如下错误,分析了一下原因,试了好几次才找到解决方法,失败原因如下:svn:E200009:Commitfailed(detailsfollow):svn:E200009:Cannotcommit'G:\jiaoyu\src\main\resources\templates\www\xgwy\company\company_content.html'becauseitwasmovedfr......
  • WPF 使用Background="Transparent"+AllowsTransparency="True"实现穿透效果,窗体多次渲
    如果在WPF中的窗体使用AllowsTransparency="True"实现穿透效果,那么该窗体如果移动、快速渲染、控件比较多的情况,会出现卡顿,CPU暴涨的问题。基于以上情况,可以使用另一种方式实现,由@wuty@terryK指导:usingSystem.Windows;usingAnnotation.Business;namespaceDemo{//......
  • lightdb创建oracle兼容分区表
    zjh@postgres=#createtablehash_part_tab(idnumber,deal_datedate,area_codenumber,nbrnumber,contentsvarchar2(4000))zjh@postgres-#partitionbyhash(deal_date)zjh@postgres-#PARTITIONS12;ERROR:pleasesetoraclecompatiblemodefororaclepartit......