10、论文阅读:基于双阶对比损失解纠缠表示的无监督水下图像增强
Unsupervised Underwater Image Enhancement Based on Disentangled Representations via Double-Order Contrastive Loss
- 前言
- 引言
- 方法介绍
- 解耦框架
- 多尺度生成器
- 双阶对比损失
- 双阶对比损失总结
- 损失函数
- 实验
前言
在水下环境中拍摄的图像通常会受到颜色失真、低对比度和视觉质量下降的影响。大多数现有的方法通过对合成图像或伪参考进行有监督的训练来解决水下图像增强(UIE)问题。然而,由于合成的配对数据与真实世界数据之间存在固有差异,这些数据无法准确复制真实情况,同时伪参考的数量和质量也有限,这在对真实水下图像进行测试时严重降低了模型的泛化能力和性能。
相比之下,无监督的方法不受配对数据的限制,更加稳健,并在实际应用中具有更大的潜力。
然而,现有的无监督方法无法有效约束网络来训练一个可以适应各种退化情况的模型。
(即目前已有的无监督学习方法在训练网络时,没有足够的约束或指导,使得训练出来的模型无法灵活地适应不同类型的图像退化情况。换句话说,虽然这些方法不需要配对数据,但缺乏有效的约束使得模型在处理不同的图像退化(如颜色失真、对比度低等)时表现不佳,无法做到通用和稳健。这也表明,单靠现有的无监督方法,难以获得在多种环境下都能良好工作的模型。)
受人们常常从对立但互补的角度解决问题这一事实的启发,我们认为去除和生成水层之间存在隐式的合作关系,因为它们可以相互约束并同时促进彼此。
基于上述分析,本文提出了一种基于无监督的UIE新框架,该框架基于解耦表示共同学习水层的生成和去除。具体而言,我们提出了一个双向解耦网络
“双向”的核心在于网络不仅学习如何去除水层(从水下图像到地面图像的转换),还学习如何生成水层(从地面图像到伪水下图像的转换)。这两个方向的学习是相互约束和促进的,通过这种双向的解耦和生成-去除循环,网络可以在两个任务上互相监督,从而提升解耦效果和模型的稳健性。
其中每个单向网络包含一个由水层去除和生成组成的循环,并限制图像在一个循环后保持一致。同时,提出了一种新颖的双阶对比损失,通过利用一阶特征和二阶特征的联合隐式约束来提高解耦能力。大量实验结果表明,该模型在定性和定量评估中均优于现有的最先进方法,且具有较高的处理速度。消融实验的结果也证明了各个组件的有效性。
引言
在过去的几十年中,已经提出了许多方法来增强水下图像,包括传统方法(基于图像的方法和基于模型的方法)、“零样本”方法以及数据驱动的方法(基于监督和无监督的方法)。
基于图像的方法旨在通过平衡颜色、提高对比度和锐化细节来校正每个像素。然而,由于缺乏模型约束,这些方法不足以恢复原始场景,并且在退化严重时可能会失效。
相比之下,基于模型的方法利用了一些先验知识,例如雾线先验和水下暗通道先验。然而,这些方法过于依赖先验的准确性,如果先验与真实情况有较大偏差,则增强方法将失效。
最近,“零样本”方法只使用单个输入图像,并基于一些手工设计的先验来训练一个小的特定图像网络。然而,“零样本”方法在测试时需要大量迭代,这在实际应用中效率较低。
此外,数据驱动算法利用大量数据来近似数据之间的映射,因此与传统方法相比,性能得到了极大的提升。不同于其他低级任务(如图像去雾和低光图像增强),在相同场景下获得非退化的水下图像是不现实的。因此,现有的基于监督的方法通常使用合成数据或伪参考作为训练的折中方法,但这些配对数据都有一些缺陷。对于合成数据,现有的基于物理模型的合成方法忽略了成像过程中许多因素,因此它们对水下多样退化的建模能力有限。因此,在合成数据集上训练的模型在真实场景中由于域偏移而表现出较差的泛化能力。对于伪参考数据,最常用的数据集是UIEB,由50名志愿者对12种增强方法进行评分而得到的,但这并不是真正的真实值。更重要的是,由于配对水下图像数量有限,训练用于多种退化的深度增强模型非常具有挑战性。
相比之下,基于无监督的方法不受配对数据的约束,并且越来越多地应用于各种视觉任务。然而,据我们所知,目前关于无监督的水下图像增强(UIE)的研究非常少。最相似的任务是地面上的无监督图像去雾(UID)。它们主要使用无退化的图像通过一个判别器来引导退化图像的增强,但水下图像的无退化版本是不可用的。此外,与雾霾图像相比,水下图像存在严重的颜色失真,因此直接将UID方法应用于UIE会产生严重的伪影和额外的色调。受到对立但互补的方法的启发,我们认为水层生成和去除是一个内在且有效的约束,它们应该紧密结合在一起。改进水层生成将有利于水层去除,反之亦然。
基于上述分析,我们提出了一种新的基于无监督的UIE框架,该框架基于解耦表示共同训练水层的生成和去除。特别地,我们提出了一个双向解耦网络,其中每个单向网络包含一个水层去除和
相关文章:
10、论文阅读:基于双阶对比损失解纠缠表示的无监督水下图像增强
Unsupervised Underwater Image Enhancement Based on Disentangled Representations via Double-Order Contrastive Loss 前言引言方法介绍解耦框架多尺度生成器双阶对比损失双阶对比损失总结损失函数实验前言 在水下环境中拍摄的图像通常会受到颜色失真、低对比度和视觉质量…...
Git配置token免密登录
配置token免密登录 如果不用ssh免密登录,还有其他基于Token那得免密登录方法吗? 2021年开始,github就不能使用密码登录git了,需要使用token作为密码登录,需要自己在setting中创建。 那么每次都需要我手动输入token密…...
活动预告|博睿数据将受邀出席GOPS全球运维大会上海站!
第二十四届 GOPS 全球运维大会暨研运数智化技术峰会上海站将于2024年10月18日-19日在上海中庚聚龙酒店召开。大会将为期2天,侧重大模型、DevOps、SRE、AIOps、BizDevOps、云原生及安全等热门技术领域。特设了如大模型 运维/研发测试、银行/证券数字化转型、平台工程…...
Flutter技术学习
以下内容更适用于 不拘泥于教程学习,而是从简单项目入手的初学者。 在开始第一个项目之前,我们先要了解 两个概念。 Widget 和 属性 Widget 是用户界面的基本构建块,可以是任何 UI 元素。属性 是 widget 类中定义的变量,用于配…...
Kubernetes网络通讯模式深度解析
Kubernetes的网络模型建立在所有Pod能够直接相互通讯的假设之上,这构建了一个扁平且互联的网络空间。在如GCE(Google Cloud Engine)等云环境中,这一网络模型已预先配置,但在自建的Kubernetes集群中,我们需要…...
SBTI科学碳目标是什么?有什么重要意义
SBTI(Science Based Targets initiative),即科学碳目标倡议,是一个由全球环境信息研究中心(CDP)、联合国全球契约组织(UNGC)、世界资源研究所(WRI)和世界自然…...
英特尔新旗舰 CPU 将运行更凉爽、更高效,适合 PC 游戏
英特尔终于解决了台式机 CPU 发热和耗电的问题。英特尔的新旗舰 Core Ultra 200S 系列处理器将于 10 月 24 日上市,该系列专注于每瓦性能,比之前的第 14 代芯片运行更凉爽、更高效。这些代号为 Arrow Lake S 的处理器也是英特尔首款内置 NPU(…...
MySQL 启动失败 (code=exited, status=1/FAILURE) 异常解决方案
目录 前言1. 问题描述2. 查看错误日志文件2.1 确认日志文件路径2.2 查看日志文件内容 3. 定位问题3.1 问题分析 4. 解决问题4.1 注释掉错误配置4.2 重启 MySQL 服务 5. 总结结语 前言 在日常运维和开发过程中,MySQL数据库的稳定运行至关重要。然而,MySQ…...
通信工程学习:什么是RIP路由信息协议
RIP:路由信息协议 RIP(Routing Information Protocol)路由信息协议是一种基于距离矢量算法的内部网关协议(IGP),主要用于在自治系统(AS)内部进行路由信息的交换和传播。以下是关于RI…...
SQL调优指南与高级技巧:打造高效数据库查询
在当今数据驱动的世界中,SQL(结构化查询语言)作为与关系型数据库交互的主要语言,其性能直接影响着整个应用系统的响应速度和用户体验。本文将深入探讨SQL调优的方法论和高级技巧,帮助开发者和数据库管理员提升查询效率…...
实惠又好用的云手机推荐【高性价比云手机盘点】
随着云计算技术的蓬勃发展,云手机已经成为现代工作和生活中的重要工具。面对种类繁多的云手机产品,用户往往在选择时关注价格与性能的平衡。今天,我们就为大家推荐几款性价比高、实用性强的云手机,帮助你轻松选择到最适合的产品。…...
Pear Admin Flask Master开启步骤
由于我学的是数控技术,对编程是从小白自学的,在运行pearflask时一直没搞懂初始化数据库这一步是在哪里执行的,网上查了很多资料都没写,找了一天半的资料后终于查到了。 使用系统:Windows 10 Python版本:Py…...
知识图谱入门——8: KG开发常见数据格式:OWL、RDF、XML、GraphML、JSON、CSV。
在知识图谱开发中,数据格式和语义表达至关重要。本文将详细论述OWL、RDF、XML、GraphML、JSON、CSV等格式的特点、优缺点及适用场景,帮助读者全面理解这些数据结构及其在知识图谱中的应用。 专栏:知识图谱:从0到 ∞ 文章目录 0. 对…...
离线使用k8s部署项目
docker的安装与完全卸载(亲测可用) docker的安装与完全卸载 然后配置镜像加速器 vi /etc/docker/daemon.json 将找到的镜像仓库地址写入 具体内容可以参考此网站时刻更新镜像源仓库 然后保存退出 执行 systemctl daemon-reloadsystemctl restart…...
【CF2021E】Digital Village(All Version)
题目 给你一张 n n n 个点 m m m 条边的无向图,有 p p p 个关键点。你需要选择 k k k 个点染黑,使得这 p p p 个关键点到这 k k k 个黑点的代价和最小。定义代价为两点之间边权最大的边的最小值。 你需要求出 k 1,2,…,n 的所有答案 E1 n,m,p&l…...
[C++]使用纯opencv部署yolov11目标检测onnx模型
yolov11官方框架:https://github.com/ultralytics/ultralytics 【算法介绍】 在C中使用纯OpenCV部署YOLOv11进行目标检测是一项具有挑战性的任务,因为YOLOv11通常是用PyTorch等深度学习框架实现的,而OpenCV本身并不直接支持加载和运行PyTor…...
【Golang】Go 语言中的 time 包详解:全面掌握时间处理与应用
在 Go 语言中,time 包提供了强大的时间处理功能,适用于各种场景:获取当前时间、格式化和解析时间、计算时间间隔、设置定时器、处理超时等。在开发过程中,熟练掌握 time 包能够帮助我们轻松处理时间相关的操作,尤其是定…...
MySQL联合索引、索引下推Demo
1.联合索引 测试SQL语句如下:表test中共有4个字段(id, a, b, c),id为主键 drop table test;#建表 create table test(id bigint primary key auto_increment,a int,b int,c int )#表中插入数据 insert into test(a, b, c) values(1,2,3),(2,3,4),(4,5,…...
linux上复制命令cp的常见用法-ubuntu
在Ubuntu中,cp命令是用于复制文件和目录的基本命令。以下是cp命令的常见用法和选项: 基本语法 cp [选项] 源文件 目标文件常用选项 -r 或 -R:递归复制目录及其内容。-p:保留源文件的属性(如权限、所有者、时间戳&am…...
R语言绘制气泡图
气泡图是一种数据可视化图表。它通常在二维或三维空间中展示数据。两个变量决定气泡在平面或空间中的位置,第三个变量则以气泡大小呈现。能直观反映三个变量间关系,帮助用户快速理解数据特征和趋势,在数据分析和展示中广泛应用。 0x01 使用s…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
1.3 VSCode安装与环境配置
进入网址Visual Studio Code - Code Editing. Redefined下载.deb文件,然后打开终端,进入下载文件夹,键入命令 sudo dpkg -i code_1.100.3-1748872405_amd64.deb 在终端键入命令code即启动vscode 需要安装插件列表 1.Chinese简化 2.ros …...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下,文章也主…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
AD学习(3)
1 PCB封装元素组成及简单的PCB封装创建 封装的组成部分: (1)PCB焊盘:表层的铜 ,top层的铜 (2)管脚序号:用来关联原理图中的管脚的序号,原理图的序号需要和PCB封装一一…...
【51单片机】4. 模块化编程与LCD1602Debug
1. 什么是模块化编程 传统编程会将所有函数放在main.c中,如果使用的模块多,一个文件内会有很多代码,不利于组织和管理 模块化编程则是将各个模块的代码放在不同的.c文件里,在.h文件里提供外部可调用函数声明,其他.c文…...
Canal环境搭建并实现和ES数据同步
作者:田超凡 日期:2025年6月7日 Canal安装,启动端口11111、8082: 安装canal-deployer服务端: https://github.com/alibaba/canal/releases/1.1.7/canal.deployer-1.1.7.tar.gz cd /opt/homebrew/etc mkdir canal…...
