2023ICCV_Retinexformer: One-stage Retinex-based Transformer for Low-light Image Enhancement

发布时间 2023-10-12 10:56:33作者: helloWorldhelloWorld

一. Motivation

(1) Retinex理论没有考虑到噪声,并且基于Retinex分解的网络通常需要很多阶段训练。

(2)直接使用从CNN从低光图像到正常光图像的映射忽略了人类的颜色感知,CNN更适合捕获局部信息,对于捕获远程依赖和非局部自相似性方面存在局限。

二.Contribution

(1) 设计了一个阶段的Retinex框架用来分解光照信息

(2)Transformer在捕获非局部有很大的优势,但是直接使用Transformer计算复杂度太高,所以提出了IGA进行更一步的损坏恢复

三.Network

 训练分为两个阶段(i) 光照估计------>生成亮度图(在代码中看到依旧是特征)和亮度特征   (ii)修复-------> 使用transformer捕获全局信息进行修复

(i) illumination Estimator阶段

 输入是Input Image   和 Iiilmination Prior    concat后的一起送入网络

:是沿通道维度计算每个像素的平均值

concat后的首先进入一个1×1卷积,在进入一个5×5卷积(注:网络给的是9×9,但是代码是5×5)输出 Light-up Feature ,再经过一个1×1卷积输出亮度图 Light-up Map

(ii)Corruption Restorer – Illumination-Guided Transformer

 输入: 亮度图Lit-up Image与输入Input Image逐元素相乘后再与输入Input Image进行相加后送如Restorer阶段

input_img = img * illu_map + img
output_img = self.denoiser(input_img,illu_fea)

Restorer阶段采用的U-Net结构,其中IGAB是利用transformer设计的网络结构

 四. 损失函数

目前只看到LOL数据集用的是L1损失,其他数据集待核实

五. 实验结果

代码中好像只保存了best_psnr的结果(难道是得到最优psnr直接用最优psnr模型计算最优ssim????

(1)作者提供的代码:目前只跑了LOL-v1数据集结果 best_psnr=23.58

(2)只使用作者的Retinexformer.py 网络架构,best_psnr=23.28(218epoch) , ssim=0.8271(355epoch)