首页 > 其他分享 >2020CVPR_Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement

2020CVPR_Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement

时间:2023-04-19 22:23:50浏览次数:36  
标签:dim 迭代 Reference 16 卷积 Light Image 像素 通道

1. motivation

收到图像编辑软件的启发

2.  Contribution

(1)无监督

(2)设计图像高阶曲线适应适合像素级映射,通过迭代自身

(3)设计了四个无参考损失函数

3. Network

 

3.1 DCE-Net

  DCE-Net: 是由6个Conv2D(3x3)+ relu,分别输出为x1,x2,  x3, x4, x5, x6,最后的卷积由Conv2d(3x3)+tan激活函数组成,因为要分为8个调整参数,所以最后的输出channel=24

之后进高阶曲线调整

3.2 LE(Light-Enhancement Curve)

  设计的高阶曲线必须满足的条件:(1)每个像素归一化(0,1)    (2)像素应该单调,这样可以保持和附近像素的差异(对比度)  (3)简单、可微(以为需要反向传播)

   需要n次迭代(代码中迭代了8次):

   α设置为像素级参数调整

 4.  Loss

 4.1 L-spa :空间一致性损失

   i 代表像素, Ω代表区域(上下左右),K代表区域总数(4)

   代码对于Yi - Yj  左是用二维卷积操作中卷积核实现:

kernel_left = torch.FloatTensor([[0, 0, 0], [-1, 1, 0], [0, 0, 0]]).cuda().unsqueeze(0).unsqueeze(0)

代码实现:

  (1) 首先计算low和enhanced后图片按照dim=1,计算通道均值并保持维度一致

  (2) 采用了一个二维平均池化nn.AvgPool2d(4),得到org_pool,enhance_pool

  (3) 利用二维卷积操作F.conv2d分别计算Yi - Yj (=a) 、Ii - Ij(=b) 的上下左右

  (4) 按照上下左右计算a - b 再平方

  (5)对(4)累加

4.2 L-exp: 曝光控制损失

  E:代表平均曝光水平,作者在代码中E=0.6,但是论文中提到其实E取【0.4,0.7】没有区别

  M:表示大小为16×16的非重叠局部区域的数量

代码实现:

  (1) 对于enhanced, 首先按照dim=1 取得每个通道的均值x

  (2) 对于(1)进行了一个二维平均池化nn.AvgPool2d(16)得到mean,卷积核设置的是16(我猜测因为图片大小256,这样得到一个四维的值[[[[x]]]])

  (3) mean - E 平方后取平均

4.3 L-col: 颜色一致性损失

 Jp表示增强图像中p通道的平均强度值,(p,q)表示一对通道

 代码实现:

  (1) 先按照dim[2,3] 得到每个通道的均值mean_rgb

  (2) 按照dim=1采用torch.split,分离三个通道得到mr, mg, mb

  (3) 分别计算两个通道之间的差值进行平方,得到Drg,Drb, Dgb

  (4)计算一个彩色差 k,通过组合Drg、Drb 和 Dgb 各自的平方和,再求开根号即可

4.4 L-tv: 光照平滑损失 :  是对进行高阶曲线像素映射系数进行计算Loss

 N为迭代次数,∇x和∇y分别表示水平和垂直梯度操作。

 

标签:dim,迭代,Reference,16,卷积,Light,Image,像素,通道
From: https://www.cnblogs.com/yyhappy/p/17334856.html

相关文章

  • 19 Cameras, Lenses and Light Fields
    1.FieldofView(FOV)视场视场与传感器大小和焦距有关。为了统一,固定传感器大小,使用焦距衡量。2.Exposure曝光曝光是irradiance的时间累计。时间由快门控制,irrandiance由光圈控制,此外可以使用iso感光度后期处理。ISO是对结果进行处理,比如乘以一个数,因此会使得Nois......
  • 构建私有仓库 flink image 镜像
    准备flink-*.tar.gz可以自己编译,或者下载编译cd${flink-root}mvninstall-DskipTests#编译成功后,压缩成tar.gzcd./flink-dist/target/tar-cvfflink-1.18-SNAPSHOT-bin.tar.gz./flink-1.18-SNAPSHOT-bin下载准备gosudocker-entrypoint.sh需要使用到gosu......
  • <image>不显示
    https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/image换成:文档中显示图片的正确方式:文档中显示图片更强大的方式:图像元素已弃用:不再推荐使用该特性。虽然一些浏览器仍然支持它,但也许已从相关的web标准中移除,也许正准备移除或出于兼容性而保留。请尽量不要......
  • imagesLoaded插件
    imagesLoaded插件是一个在图片加载成功后才做一系列操作官方网站:https://github.com/desandro/imagesloaded/使用语法:$(selector).imagesLoaded([callback]); ImagesLoaded可以呼吁一个元素中的图像,图像直接,或两者的结合。selector选择器支持:1.直接为图片2.内嵌图片3.两......
  • OSError: cannot open resource ImageFont.py 解决方法
    Traceback(mostrecentcalllast):File"C:/python37/pla.py",line7,in<module>newfont=ImageFont.truetype('./songti.ttc',60)#Songti.ttc代表字体,60代表字号File"C:\python37\lib\site-packages\PIL\ImageFont.py",......
  • arm gcc undefined reference编译问题
    armgcc编译的时候,出现下面的错误。经检查,是因为添加了stdio.h,且调用了printf()函数,去掉了stdio.h和printf函数之后,编译通过。 ......
  • openstack导出image镜像的方法
    1、查询环境中的镜像[root@controllerhttpd]#glanceimage-list环境中一个有两个镜像本次导出instance。2、执行导出命令命令解释:/root/wuyeliang.img为导出后的镜像存放路径及名称,789eb102-031b-4559-a00e-eeeb3272c37c为需要导出镜像的ID......
  • Image vs Container
    image代表每个应用程序的整体构筑环境container是根据image启用的不同沙盒image   Dockerimage是一个不可变(不可更改)的文件,其中包含应用程序运行所需的源代码、库、依赖项、工具和其他文件。由于它们的只读质量,这些图像有时被称为快照。它们表示应用程序及其在特定......
  • LightOJ 1348 Aladdin and the Return Journey (树链剖分)
    树链剖分模板题。最近一直有比赛。。好长时间没写了。明显生疏了。。找个模板题熟悉一下。代码如下:#include<iostream>#include<string.h>#include<math.h>#include<queue>#include<algorithm>#include<stdlib.h>#include<map>#include<set>#include......
  • light oj 1007 Mathematically Hard (欧拉函数)
    题目地址:lightoj1007第一发欧拉函数。欧拉函数重要性质:设a为N的质因数,若(N%a==0&&(N/a)%a==0)则有E(N)=E(N/a)*a;若(N%a==0&&(N/a)%a!=0)则有:E(N)=E(N/a)*(a-1)对于这题来说,首先卡MLE。。只能开一个数组。。所以把前缀和也存到......