Pytorch实现论文:基于多尺度融合生成对抗网络的水下图像增强

简介

简介:提出了一种新型的水下图像增强算法,基于多尺度融合生成对抗网络,名为UMSGAN,以解决低对比度和颜色失真的问题。首先经过亮度的处理,将处理后的图像输入设计的MFFEM模块和RM模块生成图像。该算法旨在适应各种水下场景,提供颜色校正和细节增强。

论文题目:Underwater image enhancement based on multiscale fusion generative adversarial network(基于多尺度融合生成对抗网络的水下图像增强)

论文期刊:International Journal of Machine Learning and Cybernetics

摘要:水下光学成像环境由于其复杂性带来了独特的挑战。 本文介绍了在人造光场景中捕获的水下图像中现有算法的局限性。 我们提出了一种水下人造光优化算法,以使用光线不均匀的图像进行预处理图像,从而减轻光失真的影响。 此外,我们提出了一种新型的水下图像增强算法,基于多尺度融合生成对抗网络,名为Umsgan,以解决低对比度和颜色失真的问题。 Umsgan使用生成对抗网络作为基础框架,并首先通过三个平行分支从降级图像中提取信息,并在每个分支中添加残留的密集块以学习更深的特征。 随后,从三个分支中提取的特征被融合,并由名为RM的重建模块恢复图像的详细信息。 最后,多个损失函数是线性叠加的,对对抗网络进行迭代训练以获得增强的水下图像。 该算法旨在适应各种水下场景,提供颜色校正和细节增强。 考虑到定性和定量方面,我们对所提出的算法进行了全面评估。 实验结果证明了我们方法对多样化的水下图像数据集的有效性。 提出的算法在提高水下图像质量方面表现出卓越的性能,从而在对比度,色彩准确性和细节保存方面取得了重大改进。 拟议的方法表现出有希望的结果,在水下摄影,海洋勘探和水下监视等各个领域提供了潜在的应用。

模型结构

图像预处理

为了解决水下图像中强光源引起的不均匀照明的问题,作者提出了一种照明校正算法,用于图像预处理。 

为了删除不均匀的照明背景,从原始图像I中减去背景图像IBK,以消除背景噪声。 此减法操作导致图像j具有更均匀的亮度分布:

通过滑动窗口计算每个像素的局部背景值,然后从图像中减去这个背景,保留图像中的显著部分。特别是在亮度(V通道)上进行处理,减少了图像的背景噪声,可能有助于提升图像处理任务中的特征提取或目标识别等性能。

生成器架构

生成器主要由MFFEM和RM两个架构组成。先将图像预处理之后的图像分别经过三个不同大小的卷积核进行多尺度的处理,之后传输给后续的两个模块做特征提取等操作。

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

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

相关文章

基于 DeepSeek LLM 本地知识库搭建开源方案(AnythingLLM、Cherry、Ragflow、Dify)认知

写在前面 博文内容涉及 基于 Deepseek LLM 的本地知识库搭建使用 ollama 部署 Deepseek-R1 LLM知识库能力通过 Ragflow、Dify 、AnythingLLM、Cherry 提供理解不足小伙伴帮忙指正 😃,生活加油 我站在人潮中央,思考这日日重复的生活。我突然想&#xff0c…

ShenNiusModularity项目源码学习(12:ShenNius.Common项目分析)

ShenNius.Common项目中主要定义功能性的辅助函数类及通用类,供MVC模式、前后端分离模式下的后台服务使用,以提高编程效率。   ApiResult文件内的ApiResult和ApiResult类定义了通用的数据返回格式,包括状态码、返回消息、返回数据等&#x…

【Python量化金融实战】-第1章:Python量化金融概述:1.1量化金融的定义与发展历程

本小节学习建议:掌握Python编程、统计学(时间序列分析)、金融学基础(资产定价理论)三者结合,是进入量化领域的核心路径。 👉 点击关注不迷路 👉 点击关注不迷路 文章目录 1.1 量化金…

STM32的HAL库开发---单通道ADC采集(DMA读取)实验

一、实验简介 正常单通道ADC采集顺序是先开启ADC采集,然后等待ADC转换完成,也就是判断EOC位置1,然后再读取数据寄存器的值。 如果配置了DMA功能,在EOC位被硬件置1后,自动产生DMA请求,然后DMA进行数据搬运…

eclogy后台运维笔记(写的很乱,只限个人观看)

组织权限: 矩阵管理 这个很重要,比如进行流程操作者的选择时,我们进行需要选择财务部的出纳,会计,总经理。我们不能去直接选定一个人,万一这个人离职了,那所有的流程都要手动修改,…

【网络编程】几个常用命令:ping / netstat / xargs / pidof / watch

ping:检测网络联通 1. ping 的基本功能2. ping 的工作原理3. ping 的常见用法4. ping 的输出解释5. ping 的应用场景6. 注意事项 netstat:查看网络状态 1. netstat 的基本功能2. 常见用法3. 示例4. 输出字段解释5. netstat 的替代工具6. 注意事项 xargs&…

自定义Spring Boot Starter(官网文档解读)

摘要 本文将详细介绍自定义 Spring Boot Starter 的完整过程。要构建自定义 Starter,首先需掌握 Spring Boot 中 Auto-configuration 以及相关注解的工作原理,同时了解 Spring Boot 提供的一系列条件注解。在具备这些知识基础后,再按照特定步…

C++和OpenGL实现3D游戏编程【连载23】——几何着色器和法线可视化

欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 1、本节实现的内容 上一节课,我们在Blend软件中导出经纬球模型时,遇到了经纬球法线导致我们在游戏中模型光照显示问题,我们在Blender软件中可以通过…

我的技术十年

前言 十年一瞬,2014 年毕业至今,刚好十年。《异类》一书曾提到“一万小时定律”,要成为某个领域的专家,需要 10000 小时,按比例计算就是:如果你每天工作八小时,一周工作五天,那么成…

kotlin 知识点一 变量和函数

在Kotlin中定义变量的方式和Java 区别很大,在Java 中如果想要定义一个变 量,需要在变量前面声明这个变量的类型,比如说int a表示a是一个整型变量,String b表 示b是一个字符串变量。而Kotlin中定义一个变量,只允许在变量…

链表-基础训练(二)链表 day14

两两交换链表中的节点 题目示意: 给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 原先我的思路是图像上的思路,但是我感觉还是很复杂…

智能交通系统(Intelligent Transportation Systems):智慧城市中的交通革新

智能交通系统(Intelligent Transportation Systems, ITS)是利用先进的信息技术、通信技术、传感技术、计算机技术以及自动化技术等,来提升交通系统效率和安全性的一种交通管理方式。ITS通过收集和分析交通数据,智能化地调度、控制…

数据结构:Map set - 习题(三)

一、只出现一次的数字 题目链接https://leetcode.cn/problems/single-number/description/ 描述: 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性…

【射频仿真学习笔记】Cadence的Layout EXL与ADS dynamic link联动后仿

一、EXL仿真 1. 绘制教程 当我们使用EMX仿真提取的时候,会遇到各种各样的问题,很不方便。这里我们介绍一种新的方法——EXL。可以更灵活的跑仿真。我们以带有中和电容的差分电路为例进行介绍 在使用EMX的是偶,port是连不到晶体管外围金属上…

C++——list模拟实现

目录 前言 一、list的结构 二、默认成员函数 构造函数 析构函数 clear 拷贝构造 赋值重载 swap 三、容量相关 empty size 四、数据访问 front/back 五、普通迭代器 begin/end 六、const迭代器 begin/end 七、插入数据 insert push_back push_front 八、…

文件包含-session2

[题目信息]: 题目名称题目难度文件包含-session22 [题目考点]: 由于网站功能需求,会让前端用户选择要包含的文件,而开发人员又没有对要包含的文件进行安全考虑,就导致攻击者可以通过修改文件的位置来让后台执行任意…

Hadoop初体验

一、HDFS初体验 1. shell命令操作 hadoop fs -mkdir /itcast hadoop fs -put zookeeper.out /itcast hadoop fs -ls / 2. Web UI页面操作 结论: HDFS本质就是一个文件系统有目录树结构 和Linux类似,分文件、文件夹为什么上传一个小文件也这…

机器学习基础入门——机器学习库介绍(NumPy、pandas、Matplotlib)

机器学习库介绍(NumPy、pandas、Matplotlib) 在 Python 机器学习的领域中,NumPy、pandas 和 Matplotlib 是三个不可或缺的基础库。它们分别在数值计算、数据处理与分析以及数据可视化方面发挥着关键作用,极大地提升了开发效率与数…

Redis——用户签到BitMap,UV统计

目录 BitMap 使用场景 1. 用户签到系统 2. 用户行为标记 3. 布隆过滤器(Bloom Filter) BitMap介绍 Redis中的使用 Redis功能示例 添加: 获取: 批量获取: java中实现 统计本月连续签到次数 UV统计 UV 统计…

【数据结构】(12) 反射、枚举、lambda 表达式

一、反射 1、反射机制定义及作用 反射是允许程序在运行时检查和操作类、方法、属性等的机制,能够动态地获取信息、调用方法等。换句话说,在编写程序时,不需要知道要操作的类的具体信息,而是在程序运行时获取和使用。 2、反射机制…