【低光增强】Zero-DCE

news/2024/12/29 12:50:36/

文章目录

  • 一、前言
  • 二、算法理解
    • 2.1 低光增强曲线
    • 2.2 整体框架
    • 2.3 网络结构
    • 2.4 损失函数
      • 2.4.1 空间一致性
      • 2.4.2 曝光控制
      • 2.4.3 色彩恒常
      • 2.4.4 光照平滑
    • 2.5 Zero-DCE++
  • 三、效果测试

一、前言

Paper:Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation
Code:https://github.com/Li-Chongyi/Zero-DCE_extension

论文贡献:

  • 首次提出不需要成对训练数据的低光增强网络,避免过拟合风险,在不同光照条件下泛化良好;
  • 设计了一种逐像素高阶曲线,通过多次反复迭代可以有效地在宽动态范围中执行亮度映射;
  • 展现了在缺少参考图像的情况下通过无参考损失函数训练图像增强网络的潜力;
  • 所提出的Zero-DCE网络可以在减小计算量的同时保持增强能力,提供了多种选择以平衡增强能力和计算开销。

二、算法理解

2.1 低光增强曲线

受PS中亮度调整曲线的启发,作者尝试设计一种自动将低光图像映射到增强版本的曲线,并且自适应曲线的参数仅与输入的图像有关。既然是拟合曲线,自然而然就能想到使用拟合能力强大的神经网络来解决。作者认为这种曲线应该具备以下特性:

  • 增强图像的每个像素值应落在[0,1]的归一化范围,以避免由溢出截断所导致的信息丢失;
  • 曲线应该是单调的,以保持相邻像素的差异;
  • 形式尽可能简单,在梯度反向传播的过程中可微;

基于以上三个特性,作者设计了如下的二次曲线:
在这里插入图片描述
其中 x x x表示像素坐标, α ∈ [ − 1 , 1 ] \alpha \in[-1,1] α[1,1]是可学习参数,同时控制曲线的级数和曝光水平。每个输入像素需要归一化到[0,1],然后分别将曲线应用于RGB三个通道而不是只应用于亮度通道,这样做能保留固有的颜色并且能减小过饱和的风险。

对(1)式进行多次迭代能获取式(2)所示的高阶曲线,能够应对更具挑战性的低光场景, n n n为迭代次数,文中设为8.
在这里插入图片描述
如果单张图像中所有像素都采用一条曲线,相当于全局映射,很容易造成局部过曝或欠曝。如果输入图像的每个像素都对应一条高阶曲线就能解决该问题,并且操作起来也比较简单,如式(3)所示,将系数 α \alpha α更改为与输入图像尺寸相同的系数矩阵 A \mathcal{A} A即可,因此每个像素都有一个对应的系数。
在这里插入图片描述

2.2 整体框架

整体框架比较简洁,输入一张RGB图像,经过DCE-Net输出 3 ∗ n = 3 ∗ 8 3*n=3*8 3n=38共24张系数图(RGB共3个通道),然后将每个系数矩阵代入公式中迭代求解最终的增强图像。
在这里插入图片描述
系数图 A \mathcal{A} A的一个示例,可以看到对于RGB任意通道,亮区的值都比较小,暗区的值较大。
在这里插入图片描述

2.3 网络结构

网络结构也很简洁,一共只有7个卷积层,加入了跳跃连接,注意最后一个卷积后面跟的是Tanh激活函数,保证输出的系数落入[-1,1]范围。因为迭代8次,RGB三个通道分别应用单独的曲线,所以输出通道为24。
在这里插入图片描述

2.4 损失函数

由于没有参考图像,因此作者从空间一致、曝光控制、色彩恒常、空间连续这四个角度出发,设计了由4个无参考损失函数所组成的总损失函数。
在这里插入图片描述

2.4.1 空间一致性

保持原始图像与增强图像相邻区域之间的差异尽可能接近,以确保增强后的图像与增强前在空间上是一致的。
在这里插入图片描述
下图能够很清晰地解释空间一致性损失,将原始图像和增强后的图像划分为若干个大小为4x4的局部区域,对于每一个区域,计算其与上下左右4个邻域的差异,分别为 I i − I j I_i-I_j IiIj Y i − Y j Y_i-Y_j YiYj,再计算两者绝对值之差。(作者开源的代码中也写的很清晰,使用的是平均池化和卷积)

在这里插入图片描述

2.4.2 曝光控制

为了避免局部区域过曝或欠曝,将增强图像划分为 M M M个大小为16x16的局部区域,将每个局部区域的平均亮度 Y Y Y限制在 E E E附近,文中设置 E = 0.6 E=0.6 E=0.6
在这里插入图片描述

2.4.3 色彩恒常

根据灰度世界假设,对于一幅有着大量色彩变化的图像,其R,G,B 三个色彩分量的平均值趋于同一灰度值 K。对于增强图像,R、G、B三个通道的均值应该接近,基于此假设,作者设置了颜色恒常损失以保证增强图像的颜色正常。形式比较简单,3个通道两两之间分别求均值的MSE,再求和。
在这里插入图片描述

2.4.4 光照平滑

为了保持相邻像素间的单调性关系,在每个曲线参数图 A \mathcal{A} A上添加一个光照平滑损失,也就是常见的总变差损失,通过限制水平和垂直梯度来促使增强后的图像具有空间连续性。
在这里插入图片描述

2.5 Zero-DCE++

虽然Zero-DCE的速度已经吊打各种暗光增强算法,但是作者通过调整网络结构提出了一个更轻量的版本Zero-DCE++,仅有10k参数,对于大小为1200×900×3图像,在单个GPU/CPU上的实时推理FPS能够达到1000/11。改进点如下:

  • 将普通卷积替换为深度可分离卷积;
  • 作者发现每个迭代阶段的曲线参数图 A \mathcal{A} A在大多数情况下是相似的,因此将参数图的数量由24减少到3,每次迭代复用3张参数图即可应对大多数场景( A n \mathcal{A}_n An变为 A \mathcal{A} A,每次迭代都使用 A \mathcal{A} A);
    在这里插入图片描述
  • 所提出的方法对输入图像的尺寸不敏感,因此可以将降采样后的图像作为网络输入,然后将输出的曲线参数图上采样回原始分辨率进行图像增强。

三、效果测试


http://www.ppmy.cn/news/153267.html

相关文章

蓝天准系统P750的介绍与开箱

准系统笔记本:准系统笔记本是指使用由工厂(即ODM厂商)采购的标准化笔记本模具,再通过商家或懂技术的玩家安装相兼容的配件(如CPU,显卡,内存,硬盘,光驱,无线网…

Nvidia Jetson AGX Orin 初体验

一、开箱 Nvidia Jetson AGX Orin是今年Nvidia推出的唯一的开发套件,相比Jetson Nano 472GFLOP算力、Jetson Xaiver 32TOPS(INT8)算力,它的算力达到了200 TOPS左右。也就是说,几乎相当于目前主流设备的8-10倍的算力。这就让张小白有点动心了…

NVIDIA GeForce RTX 2070显卡参数

以下是通过CUDA例程deviceQuery得到的结果: CUDA Device Query (Runtime API) version (CUDART static linking) Detected 1 CUDA Capable device(s) Device 0: "NVIDIA GeForce RTX 2070" CUDA Driver Version / Runtime Version 11.6 / 11…

DMA+PWM驱动彩色RGB灯

前言 现在带IC的彩灯虽然有 SK6812 、WS2812 等不同信号,但是其控制逻辑基本是完全兼容的,本文所描述相关控制参数来源于 SK6812 ,原于带 IC 芯片的 RGB 可以通过串联来实现数据的传输,使得其在PCB布线时变得更为简单。 SK6812 时序 驱动方…

英伟达RTX 4070最新测评来了!光追效果更棒,但仅限于2k游戏

萧箫 发自 凹非寺量子位 | 公众号 QbitAI 英伟达RTX 4070开卖,4799元的价格也是让不少人心动。 由于之前矿难一波,英伟达30系显卡失去了不少人的信任,大伙儿的目光也都放在了40系显卡上。 现在4070性价比卡终于姗姗来迟,它实际性能…

一行代码让英特尔显卡光追性能“改进100 倍”,网友们笑了

Pine 发自 凹非寺量子位 | 公众号 QbitAI 将光线追踪性能大幅提升“100倍”,英特尔做到了! 英特尔近日合并了一个光线追踪的修复程序到开源的Mesa Vulkan驱动程序中,这个合并请求目前已经登陆Mesa 22.2。 同时,修改这个程序的英特…

全球首款车规级彩色激光大灯,这家中国供应商引领下一代显示交互

随着汽车智能化进程进入深水区,基于显示、照明的新技术正在成为新的聚焦点。无论是AR HUD,还是舱内多模态人机交互都在成为新的增量。而汽车独有的智能移动终端以及第三生活空间的未来属性,也在创造新的市场机会。 4月18日,全球领…

超过4g文件怎么放进u盘

开始——运行——CMD——回车——打开命令提示符,在出来的窗口里输入convert g: /fs:ntfs回车,等待提示完成,就转换完成了。需要注意的是这里的g为当前电脑中u盘盘符,你U盘在电脑里显示是什么盘符改成对应的就好了