CLE Diffusion:Controllable light enhancement diffusion model

 自己训练了个控制亮度变化的扩散模型。

1.Introduction

low-light capturing conditions有很多因素,比如sub-optimal ISO setting,纠正degradation是关键。直方图均衡化来调整对比度,旨在扩展低光图像的动态范围。提出了可迭代的Controllable Light Enhancement,在统一光照嵌入下,将低光照图像增强到用户指定的目标亮度水平。

2.Related works

2.1 Traditional light enhancement methods

        全局和局部直方图均衡化;去雾;基于Retinex理论,将图像分割成光照和反射层,并在他们之上执行变换以实现所需的结果。

2.2 Learning-based light enhancement methods

        LLNet、S-LLNet、RetinexNet、EnlightenGAN、Zero-DCE、CERL、Recursive Band Network、Singal-to-Noise-Ratio Priot-aware Transformer、Multi-axis MLP、Normalizing Flow、Half Wavelet Network、ReCoRo

3.Method

组合SAM,实现区域地广增强至任何亮度,基于diffusion model。

3.1 Controllable light enhancement diffusion model

        对于低光增强,需要生成与输入的低光图像x具有相同内容的相干标准光图像y,不是学习两个域之间的一对一映射,而是通过使用数据集中可用的成对图像样本来近似条件分布P(y|x)。将原始的DDPM模型以进行调整以接受额外的条件信息来实现CLE扩散。低光图像x和扩散噪声yt的concat会导致复杂场景的不稳定训练,这部分是由于低光环境中复杂的噪声和多样化的光照引起的,为了解决这个问题,进一步使用两个额外的先验来参数化条件扩散过程。

3.1.1 低光图像的颜色失真

        低光图像中严重的颜色失真,增强低光图像时经常观察到不自然的颜色偏移,实现了一个颜色映射,通过归一化输入图像中三个颜色通道的范围来减少颜色失真,具体,输入图像x可以分解为三个通道:

对应rgb三个通道,分别提取三个通道的最大像素值:

例如Xr,max表示红色通道上的最大像素值,总体而言,颜色映射可以表示:

3.1.2 低光照条件下不可避免的噪声

        ·SNR信噪比映射被用来将空间注意力引导至低信噪比区域,SNR映射可以通过一下方法:

F是一个低通滤波器,高斯模糊,将图像中的高频称为视为噪声,直接计算原始图像与噪声之间的比率。

        在每一次训练中,随机抽取一对低光图像x和其对应的正常的图像y,然后准备颜色映射C(x)和SNR映射S(x)和一个噪声图像yt,它们与低光图像x连接在一起,作为扩散模型的输入:

3.2 Brightness Control module

        采用classifier-free guidance,在CLEdiffusion中奖图像的亮度级别视为class标签,在这种情况下,class是连续的,允许无缝插值和连续调整目标亮度水平。

        首先通过计算平均像素值来提取正常光图像的原始亮度级别lamda,使用一个随机正交矩阵将平均值编码成illumination embedding,照明embedding进一步嵌入到unet中,使用亮度控制模块,Film学习基于照明embedding的特征逐通道放射变换,然后,通过沿通道轴将特征分成两半,一个副本与特征相乘,一个副本与特征图相加。

3.3 Regional Controllability

        用户可能会将对感兴趣的特定区域的亮度增加置于整体图像的全局照明之上,特别是处理复杂光照条件时,将区域可控性引入CLEDiffusion,Mask-CLEDiffusion。

        通过将二值化mask和原始输入连接起来,将mask纳入扩散模型,通过随机采样具有羽化边界的自由形态mask来创建合成训练数据,目标是对现有低光数据集中的低光和正常图像进行alpha混合生成的。在低光条件下获取对象mask,结合mask扩散。

3.4 Auxiliary loss functions

Brightness loss:保持增强图像和真实图像之间的亮度水平相同,使用平均像素强度来监督亮度信息:

Angular color loss:增加亮度可以放大低光图像中的颜色失真,采用了一种颜色损失,鼓励增强图像y0的颜色和真实值y相匹配;

SSIM loss:结合结构相似性指数损失来提高增强图像的视觉质量;

Perceptual loss:        

总损失:

4.experiments

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/246705.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity:Camera讲解之ClearFlags

Clear Flags四个选项讲解: 前三个都是常用的,第四个基本不会用。 skybox(天空盒): 主要是一种用于渲染游戏场景中天空的技术。它是一个包含6个纹理图片的立方体贴图,分别代表了从不同角度观察天空时所看到的前、后、上、下、左…

【机器学习】利用线性回归预测披萨价格

目录 前言 一、绘制散点图 二、数据准备 三、一元线性回归模型训练 四、一元线性回归模型评估 总结 🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。 💡本文由Filotimo__✍️原创,首…

Github 2023-12-15 开源项目日报 Top10

根据Github Trendings的统计,今日(2023-12-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量TypeScript项目3非开发语言项目3JavaScript项目1Python项目1Rust项目1PHP项目1 基于项目的学习 创建周期&am…

Python-折线图可视化

折线图可视化 1.JSON数据格式2.pyecharts模块介绍3.pyecharts快速入门4.创建折线图 1.JSON数据格式 1.1什么是JSON JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据JSON本质上是一个带有特定格式的字符串 1.2主要功能json就是一种在各个编程语言中流…

Splashtop 与 Swif 携手通过集成的远程桌面访问简化设备管理

2023年12月14日 加利福尼亚州库比蒂诺 安全远程访问解决方案领域的开拓者 Splashtop 今日宣布与 Swif——设备管理和安全领域先驱建立全新集成合作伙伴关系。此次合作推动形成了简单而强大的解决方案,该解决方案可满足中小企业和大型企业不断变化的需求&#xff0c…

开源基础底座:IT系统中角色管理的定义与应用

在IT系统中,角色管理是指管理和控制系统用户的角色和权限的过程。角色是指用户在系统中扮演的特定身份或角色,例如管理员、操作员、审计员等。每个角色都可以被分配一组特定的权限和访问权限,以决定其在系统中可以执行和访问的功能和数据。 …

【数组Array】力扣-304 二维区域和检索 - 矩阵不可变

目录 题目描述 解题过程 labuladong题解 题目描述 给定一个二维矩阵 matrix,以下类型的多个请求: 计算其子矩形范围内元素的总和,该子矩阵的 左上角 为 (row1, col1) ,右下角 为 (row2, col2) 。 实现 NumMatrix 类&#xf…

C语言—每日选择题—Day42

第一题 1. 下面程序输出的结果是&#xff08;&#xff09; #include <stdio.h> int main () {int x;x printf("I See, Sea in C");printf("x%d" , x); } A&#xff1a;2 B&#xff1a;随机值 C&#xff1a;都不是 D&#xff1a;15 答案及解析 D p…

指针相关知识(入门)

通过前面的学习&#xff0c;我们已经对c语言有了一个初步的认识 接下来&#xff0c;我们继续学习。进入下一个阶段&#xff0c;指针。这个部分的知识较多&#xff0c;可能学习起来有些吃力&#xff0c;但是&#xff0c;从简到难&#xff0c;我们慢慢学习。 一.指针的概念 导入…

3.electron之vue3.0的桌面应用程序

如果可以实现记得点赞分享&#xff0c;谢谢老铁&#xff5e; Electron是一个使用 JavaScript、HTML 和 CSS 构建桌面应用程序的框架。 Electron 将 Chromium 和 Node.js 嵌入到了一个二进制文件中&#xff0c;因此它允许你仅需一个代码仓库&#xff0c;就可以撰写支持 Windows、…

代码随想录27期|Python|Day15|二叉树|层序遍历|对称二叉树|翻转二叉树

本文图片来源&#xff1a;代码随想录 层序遍历&#xff08;图论中的广度优先遍历&#xff09; 这一部分有10道题&#xff0c;全部可以套用相同的层序遍历方法&#xff0c;但是需要在每一层进行处理或者修改。 102. 二叉树的层序遍历 - 力扣&#xff08;LeetCode&#xff09; 层…

C++入门(浅谈类和对象)

1 命名空间 1-1命名空间的定义 定义命名空间的目的是为了不与标识符的名称进行冲突&#xff0c;命名空间中可以定义函数&#xff0c;变量&#xff0c;类型。 比如&#xff1a;这里的rand和strlens其实是函数&#xff0c;在命名空间中可以避免与全局作用域中的rand函数和strlen…

编程性能调优方案

微信公众号转载&#xff0c;关注微信公众号掌握更多技术动态 --------------------------------------------------------------- 一、字符串与集合性能优化 1.String 对象的实现 在 Java 语言中&#xff0c;Sun 公司的工程师们对 String 对象做了大量的优化&#xff0c;来节…

2024测试开发面试题完整版本(附答案)

目录 1. 什么是软件测试&#xff0c; 谈谈你对软件测试的了解 2. 我看你简历上有写了解常见的开发模型和测试模型, 那你跟我讲一下敏捷模型 3. 我看你简历上还写了挺多开发技能的, 那你给我讲讲哈希表的实现流程 4. 谈一谈什么是线程安全问题, 如何解决 5. 既然你选择走测…

Java_泛型

泛型类 认识泛型 所谓泛型指的是&#xff0c;在定义类、接口、方法时&#xff0c;同时声明了一个或者多个类型变量&#xff08;如&#xff1a;< E >&#xff09;&#xff0c;称为泛型类、泛型接口、泛型方法、它们统称为泛型。 作用:泛型提供了在编译阶段约束所能操作的…

f盘隐藏的文件夹怎么找出来?介绍几种有效方法

在计算机中&#xff0c;我们经常会遇到隐藏的文件或文件夹&#xff0c;在F盘中隐藏的文件夹也不例外。隐藏的文件夹可能是由系统生成的&#xff0c;或者是用户自行设定的隐私文件夹。无论是因为误操作还是出于其他原因&#xff0c;如果你想找出F盘中的隐藏文件夹&#xff0c;本…

壹[1],函数:ReadImage

C形式 LIntExport void ReadImage( HObject* Image, const HTuple& FileName); //参数1&#xff1a;读取的Image //参数2&#xff1a;图片地址//备注说明&#xff1a; //头文件&#xff1a;halconcpp/HOperatorSet.h //命名空间&#xff1a;namespace HalconCpp C#形式 …

perl脚本中使用eval函数执行可能有异常的操作

perl脚本中有时候执行的操作可能会引发异常&#xff0c;为了直观的说明&#xff0c;这里举一个json反序列化的例子&#xff0c;脚本如下&#xff1a; #! /usr/bin/perl use v5.14; use JSON; use Data::Dumper;# 读取json字符串数据 my $json_str join(, <DATA>); # 反…

SpringMVC的文件上传、多文件上传

概念&#xff1a;上传/下载应用 对于上传功能&#xff0c;我们在项目中是经常会用到的&#xff0c;比如用户注册的时候&#xff0c;上传用户头像&#xff0c;这个时候就会使用到上传的功能。而对于下载&#xff0c;使用场景也很常见&#xff0c;比如我们项目中有个使用说明是是…

如何提升数据结构方面的算法能力?

谈及为什么需要花时间学算法&#xff0c;我至少可以列举出三个很好的理由。 (1)性能&#xff1a;选择正确的算法可以显著提升应用程序的速度。仅就搜索来说&#xff0c;用二分查找替 换线性搜索就能为我们帶来巨大的收益。 (2)安全性&#xff1a;如果你选用了错误的算法&…