28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强
A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement
- 摘要
- 介绍
- 相关工作
- 基于模型的水下图像增强方法:
- 无模型水下图像增强方法:
- 基于深度学习的水下图像增强方法:
- 论文方法
- 概述
- 像素分布重映射(PDR)模块
- 1、像素预补偿
- 2、通道拉伸
- 3、像素分布重映射
- 多先验亮度补偿(MPLC)模块
Retinex Variational Model for Underwater Image Enhancement)
摘要
高质量的水下成像对水下探索至关重要。然而,由于海水的颗粒散射和光吸收,图像清晰度显著降低。为了解决这些问题,我们提出了一种结合像素分布重映射(PDR)和多优先级Retinex变分模型的新型水下图像增强(UIE)方法。我们设计了一种针对严重衰减通道的预补偿方法,有效防止了颜色校正过程中产生新的颜色伪影。通过结合通道间的耦合关系,我们计算了一个限制因子,用于重映射像素分布曲线以提高图像对比度。此外,考虑到显著的噪声干扰,我们在构建变分模型时引入了先验知识,包括水下噪声和纹理先验,并设计了符合水下特征的惩罚项,以去除反射分量中的过多噪声。我们的方法通过快速求解器高效地解耦了光照和反射分量。随后,利用伽马校正调整光照分量,并融合校正后的光照和反射分量,重建出最终自然的输出图像。通过对各种数据集的全面评估,我们的方法显著超越了当前的最新技术(SOTA)方法。结果表明,我们的方法在纠正颜色偏差和补偿水下图像的亮度损失方面具有良好的效果。
介绍
【强衰减通道补偿对颜色校正的结果。(a)-(f)中的顶行示出了没有补偿强衰减的颜色校正结果,导致显著的伪像。底行展示了在我们的方法对强衰减通道进行补偿之后的增强结果。】
清晰的水下图像是探索海底资源、水体污染监测和广泛科学研究的基本前提。因此,获得清晰的水下图像已成为一个重大挑战 [1], [2], [3]。然而,由于水下环境的复杂性和光照条件的变化,水下图像可能由于光衰减和悬浮颗粒散射而面临颜色失真、亮度损失和对比度低的问题 [4], [5], [6]。因此,各种方法已被探索以应对分析水下图像的挑战。
图1(b) 表明,不同光波长在水中衰减率不同。较长的波长,如红光,衰减得更快,而较短的波长,如蓝光,衰减较慢。这种衰减差异通常给水下图像带来蓝绿偏色,正如以往研究 [7] 所讨论的。传统的颜色偏差校正方法通常在强衰减通道上进行处理,而没有预补偿,从而导致增强后的明显伪影(见图2)。此外,也有基于物理模型的方法试图逆转水下环境中图像退化过程,通过建立先验条件 [8], [9], [10]。然而,这些方法在复杂的水下环境中通常表现不佳,正如我们早期的研究 [11] 所强调的。
水下图像传播的亮度退化,主要是由于颗粒散射和光吸收,提出了显著挑战 [12], [13], [14], [15]。一种常见的解决方案是应用Retinex理论,这涉及分解光照分量以增强图像亮度,如图1(a)所示。Retinex理论旨在去除或减少入射图像对原始图像的影响,保留物体的反射特性。基于Retinex的图像增强解耦了亮度分量和反射分量,然后调整亮度分量以消除不均匀照明的影响,从而提高图像的视觉效果。然而,传统的基于Retinex的方法忽略了水下特定先验知识在分解过程中的作用。这种忽视导致照明和反射分量之间的高度耦合,导致增强后的图像曝光过度和细节丢失。
在本文中,我们提出了一种新颖的水下图像增强方法来解决颜色偏移和亮度损失。我们的方法的关键贡献总结如下:
-
我们提出了一种新的颜色校正方法,与传统的颜色恒常性方法不同,通过对强衰减通道的像素值进行预补偿来防止颜色伪影。此外,该方法采用了一种创新的直方图均衡化来重新分配像素值,增强图像对比度并减少过度或欠增强区域的差异,从而获得均匀的最终增强图像。
-
我们采用Retinex理论进行水下成像,通过将水下噪声、纹理和梯度的先验知识集成到带有噪声项的变分模型中。我们设计了针对水下场景的具体惩罚项,成功解耦了照明和反射分量,同时减少了噪声的放大。
-
我们将UIE复杂过程分解为三个子任务,通过块坐标下降 [16]、最小二乘法 [17] 和预条件共轭梯度 (PCG) [18] 方法来解决每个子问题。我们通过高效的像素级处理来解决这些子问题。
本文的组织结构如下:第 II 节回顾了水下图像增强的相关工作。第 III 节详细描述了我们的方法。第 IV 节展示了我们方法的广泛实验验证结果。最后,第 V 节讨论了结论与未来的建议。
相关工作
近年来,许多努力集中在改善退化水下图像的可见性上,现有技术大致分为三类:基于模型的水下图像增强(UIE)方法、无模型水下图像增强方法和基于深度学习的水下图像增强方法。
基于模型的水下图像增强方法:
这些方法通常依赖于基于先验假设建立物理成像模型。关键参数被估计以逆转水下成像的退化过程。例如,文献 [19] 使用偏斜梯度运算符生成准确的透射图,并通过四叉树细分法估计背景光,关注平滑度和颜色变化。Ke 等人 [20] 通过景深和边缘图初步估计透射,并基于波长与散射系数的关系调整通道特定的透射图。为了处理复杂的水下散射,他们引入了具有可变平滑参数的加权最小二乘滤波器进行局部背景光估计。Zhou 等人 [21] 开发了一种色线模型来处理光散射和吸收问题,通过交替迭代算法解决水下环境中的传输问题。此外,另一项研究 [22] 采用通道强度先验(CIP)和自适应暗像素(ADP)来减弱回散现象,精确处理不同水下场景中的不均匀照明问题。尽管这些物理模型方法在增强效果上表现良好,但它们忽略了人的视觉感知,同时需要复杂的参数设置,这可能限制其适应性并影响增强图像的视觉吸引力。
无模型水下图像增强方法:
这些方法通常避免构建显式的物理成像模型,而是专注于图像像素的空间域调整。例如,Fu 等人 [23] 通过变分方法利用Retinex模型来分离照明分量,并通过交替方向优化进一步增强图像。文献 [24] 提出了一个BayesianRetinex算法,该算法在多尺度梯度先验的基础上进行反射率和亮度的修复。文献 [25] 研发了一种在变分框架内利用照明通道稀疏先验的方法。此外,另一种创新的方法 [26] 采用加权小波视觉感知融合(WWPF),通过衰减地图引导的颜色校正和基于小波的视觉感知融合,实现有效的水下图像增强。然而,这些方法仍然面临噪声放大、伪影出现和过度颜色校正等挑战。
基于深度学习的水下图像增强方法:
深度学习在各种视觉任务中取得了显著突破 [27], [28]。在这一领域,通常采用两种主要策略。一种是构建端到端架构或使用深度模型直接估计物理参数,以恢复退化图像。Wu 等人 [29] 提出了一个多尺度融合生成网络,能够矫正颜色失衡并增强图像对比度。此外,另一种创新发展 [30] 是一种反射率引导的水下图像增强网络,通过整合原始编码器和反射率编码器的输入来减弱不同场景对修复任务的影响,从而提升了严重退化图像的处理能力。Jiang 等人 [31] 通过多尺度密集增强模块、深度美学渲染模块和双通道注意模块,旨在通过处理浑浊和色差来改善水下图像的对比度和颜色偏移。然而,基于深度学习的方法通常需要大量的训练数据,通常需要真实的水下图像。训练阶段不仅耗费资源,而且耗时,这可能限制其在实际水下图像增强场景中的适用性。
论文方法
【概述了所提出的结合变分模型的UIE方法,包括像素分布重映射子方法(PDR)和多优先级亮度补偿子方法(MPLC)。**在PDR中,首先对输入图像的强衰减通道像素进行预补偿以避免引入色彩伪影,然后通过调整通道像素分布曲线来校正图像的色彩偏差,使其更符合人眼的视觉效果。**该算法结合PDR方法的结果图像和多种先验知识构建优化模型,通过快速求解器求解得到强解耦后的亮度分量,调整亮度曲线以补偿图像的亮度损失。最后,融合反射率和调整后的光照分量重建水下图像。】
概述
我们的方法由两个主要模块组成:像素分布重映射(Pixel Distribution Remapping, PDR)模块和多先验亮度补偿(Multi-Prior Luminance Compensation, MPLC)模块。其中,PDR模块旨在校正水下图像的颜色偏移并增强对比度,而MPLC模块旨在对抗亮度衰减,从而提升图像的清晰度。图3展示了我们方法的详细工作流程。
像素分布重映射(PDR)模块
水下环境和光照条件是导致水下图像质量失真的重要因素,如图 1(b) 所示。这种现象是由水中不同波长的光衰减速率差异引起的。较长波长(如红光)衰减迅速,而较短波长(如蓝光和绿光)在更大深度下更占主导地位。因此,退化的水下图像通常表现为绿色或蓝色调,显著影响视觉质量。
1、像素预补偿
2、通道拉伸
3、像素分布重映射
多先验亮度补偿(MPLC)模块
相关文章:

28、论文阅读:基于像素分布重映射和多先验Retinex变分模型的水下图像增强
A Pixel Distribution Remapping and Multi-Prior Retinex Variational Model for Underwater Image Enhancement 摘要介绍相关工作基于模型的水下图像增强方法:无模型水下图像增强方法:基于深度学习的水下图像增强方法: 论文方法概述像素分布…...

5.interview-self-introduction
1.保证电话面试来的时候,可以接听,保持电话通常 interviews will be arranged recently.please keep your phone line open and make sure you can answer th call when the phone interview comes. speak loudly and slow down your speaking voice &a…...

高性能MySQL-查询性能优化
查询性能优化 1、为什么查询这么慢2、慢查询基础:优化数据访问2.1 是否向数据库请求了不需要的数据2.2 MySQL是否存在扫描额外的记录 3、重构查询方式3.1 一个复杂查询还是多个简单查询3.2 切分查询3.3 分解联接查询 4、查询执行的基础4.1 MySQL的客户端/服务器通信…...

如何有效修复ffmpeg.dll错误:一站式解决方案指南
当您遇到提示“ffmpeg.dll文件丢失”的错误时,这可能导致相关的应用程序无法启动或运行异常。本文将详细介绍如何有效地解决ffmpeg.dll文件丢失的问题,确保您的应用程序能够恢复正常运行。 ffmpeg.dll是什么?有哪些功能? ffmpeg.…...

8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全
8086汇编(16位汇编)学习笔记00.DEBUG命令使用解析及范例大全-C/C基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net[md]启动 Debug,它是可用于测试和调试 MS-DOS 可执行文件的程序。 Debug [[drive:][path] filename [parameters]] 参数 [drive:…...

查看mysql的冷数据配置比例
查看mysql的冷数据配置比例 -- 真正的LRU链表,会被拆分为两个部分,一部分是热数据,一部分是冷数据,这个冷热数据的比例是由innodb_old_blocks_pct参数控制的,它默认是37,也就是说冷数据占比37%。 show GLO…...

【Java基础面试题028】Java中的hashCode和equals方法,与==操作符有什么区别?
回答重点 hashcode、equals 和 都是Java中用于比较对象的三种方式,但是它们的用途和实现还是有挺大区别的。 hashcode用于散列存储结构中确定对象的存储位置。可用于快速比较两个对象是否不同,因为如果它们的哈希码不同,那么它们肯定不相等…...

在C#中测试比较目录的不同方法以查看它们有哪些共同的文件
C# 中的示例“比较目录以查看它们有哪些共同的文件”使用Directory.GetFiles获取两个目录中的文件。它对文件进行排序,并比较两个排序后的列表以查看哪些文件位于第一个目录中、第二个目录中或两个目录中。有关其工作原理的详细信息,请参阅该示例。 Kur…...

harbor离线安装 配置https 全程记录
1. 下载harbor最新版本 下载网址: 找最新的版本: https://github.com/goharbor/harbor/releases/download/v2.11.2/harbor-offline-installer-v2.11.2.tgz 这里我直接使用迅雷下载, 然后上传 1.1解压 sudo tar -xf harbor-offline-installer-v2.11.2.tgz -C /opt/ 2. 配置Harb…...

C++简明教程(文章要求学过一点C语言)(5)
在开始之前必须阅读这个文章 https://blog.csdn.net/weixin_45100742/article/details/135152562 这篇文章完全是对C语言的补课,如果C语言学的好,可跳过。 变量、数据类型与运算符 在 C 编程中,理解变量、数据类型和运算符是构建程序的基石…...

Halcon单相机+机器人=眼在手上#标定心得
首先,这个标定板肯定是放在我们要作业的工作台上的 目的 **1,得到标定物(工作台)与机器人底座之间的pose转换关系。2,得到相机与机器人末端tool的的转换关系。 两个不确定的定量 1,标定板与机器人底座b…...

【hackmyvm】Diophante 靶场
1. 基本信息^toc 这里写目录标题 1. 基本信息^toc2. 信息收集2.1. 端口扫描2.2. 目录扫描2.3. knock 3. WordPress利用3.1. wpscan扫描3.2. smtp上传后门 4. 提权4.1. 提权leonard用户4.2. LD劫持提权root 靶机链接 https://hackmyvm.eu/machines/machine.php?vmDiophante 作者…...

C++类的继承关系中什么时候要用到上行转换和下行转换
一、C类继承关系中的上行转换 1. 多态性实现 在C中,上行转换(将派生类转换为基类)是实现多态性的关键。例如,当有一个基类Animal,以及派生类Dog和Cat。如果有一个函数接受Animal类型的参数,我们可以将Dog或…...

Ubuntu 22.04永久保存路由
在 Ubuntu 22.04 上,可以按照以下方式配置让流量访问 172.19.201.207 走指定的路由。 1. 临时添加路由 临时路由规则只在当前系统会话中有效,重启后会丢失。 添加路由规则 运行以下命令: sudo ip route add 172.19.201.207 via 192.168.2…...

数据结构十大排序之(冒泡,快排,并归)
接上期: 数据结十大排序之(选排,希尔,插排,堆排)-CSDN博客 前言: 在计算机科学中,排序算法是最基础且最重要的算法之一。无论是大规模数据处理还是日常的小型程序开发,…...

OpenFeign源码
openfeign是通过FeignClientFactoryBean生成动态代理对象的方式实现http客户端无感调用,可以做到像定义接口一样写http客户端调用代码。 配置Feign接口后,我们通常会在SpringBoot项目启动类上标记EnableFeignClients,这个是生成动态代理对象的…...

sql server索引优化语句
第一步 建一个测试表 --create table TestUsers --( -- Id int primary key identity(1,1), -- Username varchar(30) not null, -- Password varchar(10) not null, -- CreateDateTime datetime not null --)第二步 插入100w数据 大概1分钟执行时间 ----插入数据…...

深度学习之超分辨率算法——SRGAN
更新版本 实现了生成对抗网络在超分辨率上的使用 更新了损失函数,增加先验函数 SRresnet实现 import torch import torchvision from torch import nnclass ConvBlock(nn.Module):def __init__(self, kernel_size3, stride1, n_inchannels64):super(ConvBlock…...

16.2、网络安全风险评估技术与攻击
目录 网络安全风险评估技术方法与工具 网络安全风险评估技术方法与工具 资产信息收集,可以通过调查表的形式把我们各类的资产信息进行一个统计和收集,掌握被评估对象的重要资产分布,进而分析这些资产关联的业务面临的安全威胁以及存在的安全…...

【项目管理】GDB调试
gdb(GNU Debugger) 是 Linux 和嵌入式开发中最常用的调试工具之一,可以用来调试 C/C 程序、排查崩溃、分析程序流程等。在嵌入式开发中,gdb 还可以通过远程调试(gdbserver)调试目标设备上的程序。 这篇文章…...

ChatGPT生成接口测试用例(一)
用ChatGPT做软件测试 接口测试在软件开发生命周期中扮演着至关重要的角色,有助于验证不同模块之间的交互是否正确。若协议消息被恶意修改,系统是否能够恰当处理,以确保系统的功能正常运行,不会出现宕机或者安全问题。 5.1 ChatGP…...

2024 年 IA 技术大爆发深度解析
摘要: 本文旨在深入剖析 2024 年 IA 技术大爆发所引发的多方面反响。通过对产业变革、经济影响、就业市场、社会影响、政策与监管以及未来展望等维度的探讨,揭示 IA 技术在这一关键时期对全球各个层面带来的深刻变革与挑战,并提出相应的思考与…...

如何进行js后台框架搭建(树形菜单,面包屑,全屏功能,刷新功能,监听页面刷新功能)
框架功能是后台高亮不可缺少的功能,基本上所有的后台都需要框架功能,下面是我制作好的一个效果图 下面是我的框架里面功能的具体讲解,还有完整的代码示例 1.声明的变量 // 声明一个用于判断个人信息显示变量 let myes 0; // 声明一个用于切…...

多目标优化常用方法:pareto最优解
生产实际中的许多优化问题大都是多目标问题,举个例子:我们想换一份工资高、压力小、离家近的新工作,这里工资高、压力小、离家近就是我们的目标,显然这是一个多目标问题,那我们肯定想找到这三个目标同时最优的工作&…...

Vue.js实例开发-如何通过Props传递数据
props 是父组件用来传递数据给子组件的一种机制。通过 props,你可以将数据从父组件“传递”到子组件,并在子组件的模板和逻辑中使用这些数据。 1. 定义子组件并接收 props 首先,定义一个子组件,并在该组件中声明它期望接收的 pr…...

由popover框一起的操作demo问题
场景: 当popover框弹出的时候,又有MessageBox 提示,此时关闭MessageBox 提示,popover就关闭了。将popover改为手动激活,可以解决这个问题,但是会引起另外一个问题,之前(click触发的时…...

人工智能ACA(四)--机器学习基础
零、参考资料 一篇文章完全搞懂正则化(Regularization)-CSDN博客 一、 机器学习概述 0. 机器学习的层次结构 学习范式(最高层) 怎么学 监督学习 无监督学习 半监督学习 强化学习 学习任务(中间层࿰…...

uniapp图片数据流���� JFIF ��C 转化base64
1,后端返回的是图片数据流,格式如下 ���� JFIF ��C 如何把这样的文件流转化为base64, btoa 是浏览器提供的函数,但在 小程序 环境中(如微信小程序…...

django中cookie与session的使用
一、cookie cookie由服务器生成 ,存储在浏览器中的键值对数据,具有不安全性,对应敏感数据应该加密储存在服务端每个域名的cookie相互独立浏览器访问域名为A的url地址,会把A域名下的cookie一起传递到服务器cookie可以设置过期时间 django中设…...

<项目代码>YOLO Visdrone航拍目标识别<目标检测>
项目代码下载链接 <项目代码>YOLO Visdrone航拍目标识别<目标检测>https://download.csdn.net/download/qq_53332949/90163918YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一…...