计算机视觉——day 92 基于跨领域协作学习的单图像去雨
基于跨领域协作学习的单图像去雨
- 1. Introduction
- 3. Proposed method
- 3.1 网络架构
- 4. Experiments and results
- 4.1 数据集和指标
- 4.3 合成图像的结果
- 4.8 建模复杂度和运行时间
- 5. Conclusion
1. Introduction
深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而,目前的大多数方法都将雨带(rain streak)的去除视为一对一的问题,往往忽略了不同合成数据集的域内偏移。因此,在一个合成数据集上训练的脱轨模型不能有效地去除其他合成数据集的雨带。
为了解决这一问题,本文提出了一个跨领域协同学习(CDCL)框架,以最小化域内移动和域间差距。
首先,提出了一种基于协同学习的双分支脱轨网络来消除图像雨纹在合成域内的分布偏移;然后,设计了一种跨域伪标签生成(CDPLG)方法,为真实雨域图像获取更准确、更鲁棒的伪标签,并利用在线生成的伪标签训练双分支脱轨网络,减小合成域与真实域的域差;在公共基准数据集(包括合成数据集和真实数据集)上进行了大量的实验,实验结果表明,我们提出的框架与目前最先进的模型相比具有良好的性能。
首先,图1(a)所示的真实雨纹与合成雨纹在分布上存在一定的差异。从图1(a)中可以看出,真实的雨屏图像与合成的雨屏图像相比具有多个方向,这导致合成的雨屏图像在真实的雨屏图像中不能包含足够大的雨屏条纹分布范围。
其次,现有的降雨去除模型只考虑了合成域与真实域之间的域间差距,忽略了不同合成数据集上的域内偏移,如图1(b)所示。从图1(b)可以看出,来自不同合成数据集的两幅雨像的密度和方向有很大的不同。
此外,我们还对三个不同的合成数据集进行了简单的实验,验证了由于合成域内的域内移动而导致的降雨去除的影响。实验结果如表1所示。
由表1可知,在一个合成数据集上训练的降雨去除模型在另一个合成数据集上测试时,由于合成数据集的域内移位,不能得到满意的结果。需要注意的是,雨水去除模型与本文的单支脱轨网络结构相同。
在公共基准数据集(包括合成数据集和真实数据集)上进行的大量实验表明,与目前最先进的全监督和半监督单图像解列模型相比,我们提出的框架是有效的。
3. Proposed method
如图2所示,来减小不同合成域之间的域内偏移和合成域与实域之间的域间间隙。该模型主要包括网络结构、标记合成域协作学习、无标记实域协作学习和综合损耗函数。
3.1 网络架构
雨图像可以建模为背景图像与雨纹信息的线性求和,表示为:
o = b + r (1)
式中,o为原始雨纹图像,b为背景图像,r为雨纹信息。
如何设计一个健壮的雨纹学习网络,更好地学习合成雨型和真实雨型,对于提高单幅图像解析模型的性能至关重要。为了解决这一问题,本文提出了雨纹学习网络(RSL)。
式(1)还可以转化为:
b = o− RSL(o) (2)
为了提高雨纹的表达能力,我们构造了多尺度注意剩余块(MSARB)。
两个单支脱轨网络包含相同的结构参数,如表3所示
4. Experiments and results
4.1 数据集和指标
我们选择了三个合成数据集,包括Rain200L (Yang et al., 2017)、Rain1200 (Zhang & Patel, 2018)和Rain1400 (Fu et al., 2017),以及一个真实的图像解列数据集来评估我们的CDCL框架用于图像解列的性能。
Rain200L数据集(Yang et al., 2017)在训练集中包含1800幅合成图像对,在测试集中包含200幅图像对。
Rain1200数据集(Zhang & Patel, 2018)包括12,000对用于训练的图像和1200对用于测试的图像。
Rain1400数据集(Fu et al., 2017)由12,600对用于训练的合成图像和1400对用于测试的合成图像组成。
真实图像解析数据集(Wang et al., 2019)包含1000幅真实的雨天图像。四个公共数据集的详细信息如表4所示。
此外,采用峰值信噪比(PSNR) (Huynh-Thu & Ghanbari, 2008)和结构相似度(SSIM) (Wang et al., 2004)来评价模型性能。
4.3 合成图像的结果
Rain200L、Rain1200和Rain1400的定性结果分别如图4和图5所示。从图4和图5可以看出,所提出的有监督和半监督的CDCL具有更高的定性性能,特别是在图4和图5中以红色线框标记的部分局部区域。因此,可以断言,我们提出的框架性能优于最先进的监督和半监督图像去雨模型。
如表5所示,我们提出的模型在Rain200L、Rain1200和Rain1400上获得了较好的性能,与其他监督图像去核模型相比。此外,与其他半监督图像解算方法相比,我们提出的模型在无标签合成数据下获得的SSIM和PSNR值也取得了更高的结果。
4.8 建模复杂度和运行时间
在本节中,我们将所提模型的参数和时间复杂度与最先进的监督和半监督图像解推理模型进行比较。各模型的实验结果见表12。
该模型在参数和时间复杂度方面都达到了可接受的性能,这表明该方法可以在可接受的计算代价下获得令人满意的解算结果。
5. Conclusion
在本文中,我们提出了一种跨领域的协作学习方法来完成单个图像的解析任务。首先,提出了一种基于MSARB的双分支脱轨网络,通过协作学习消除图像雨纹在合成域内的分布偏移;然后,利用在线生成的伪标签对双分支脱轨网络进行训练,减小合成域与实域之间的域差;在多个数据集上的大量实验表明,基于标记合成域和无标记实域的协同学习方法有效地提高了网络模型的降雨去除泛化能力。与现有的基于单个合成域雨纹信息的半监督雨纹去除方法相比,我们提出的方法充分利用了不同合成雨纹的多样性和互补性,更好地实现了从合成域到实际域的知识脱轨转移。然而,该模型对真实雨型信息的适应能力仍然不足。未来,我们将设计一个雨纹学习网络,以便更好地模拟真实雨纹信息的方向和密度。
相关文章:

计算机视觉——day 92 基于跨领域协作学习的单图像去雨
基于跨领域协作学习的单图像去雨 1. Introduction3. Proposed method3.1 网络架构 4. Experiments and results4.1 数据集和指标4.3 合成图像的结果4.8 建模复杂度和运行时间 5. Conclusion 1. Introduction 深度卷积神经网络(DCNN)在图像解析任务中取得了优异的性能。然而&am…...
Java 正则表达式
Java 正则表达式 正则表达式定义了字符串的模式。 正则表达式可以用来搜索、编辑或处理文本。 正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。 示例 boolean b String.matches(String regex) ;regex 有2种形式: 字符串 直接就是一…...
Oracle索引知识看这一篇就足够
🏆 文章目标:本篇介绍Oracle索引知识以及案例场景 🍀 Oracle索引知识看这一篇就足够 ✅ 创作者:Jay… 🎉 个人主页:Jay的个人主页 🍁 展望:若本篇讲解内容帮助到您,请帮忙…...
kafka命令行操作
新老版本kafka命令行操作 啓動Kafka: kafka-server-start.sh -daemon $KAFKA_HOME/config/server.properties Kafka命令行操作 查看当前集群中已存在的主题topic 旧的方式 kafka-topics.sh --zookeeper bdphdp01:2181 --list kafka-topics.sh --zookeeper bdphd…...

Pinia 上手使用(store、state、getters、actions)
参考链接:https://juejin.cn/post/7121209657678364685 Pinia官方:https://pinia.vuejs.org/zh/introduction.html 一、安装 npm i pinia -S二、main.js 引入 import { createApp } from "vue" import App from "./App.vue" impor…...

C++小项目之文本编辑器mynote(1.0.0版本)
2023年5月19日,周五晚上: 今天晚上突然想写一个运行在命令行上的文本编辑器,因为平时写文本时老是要创建新的文本文件,觉得太麻烦了。捣鼓了一个晚上,才选出一个我觉得比较满意的。我把这个程序添加到了系统环境变量中…...

人工智能的界面革命,消费者与企业互动的方式即将发生变化。
本文来源于 digitalnative.substack.com/p/ais-interface-revolution 描述了一种社会现象: 随着真实友谊的减少和虚拟友谊的增加,越来越多的人开始将AI聊天机器人视为自己的朋友,甚至建立了深厚的情感纽带。这可能与当前人们越来越孤独的现实…...

深度学习课程:手写体识别示例代码和详细注释
Pytorch 的快速入门,参见 通过两个神经元的极简模型,清晰透视 Pytorch 工作原理。本文结合手写体识别项目,给出一个具体示例和直接关联代码的解释。 1. 代码 下面代码展示了完整的手写体识别的 Python 程序代码。代码中有少量注释。在本文后…...

10-03 单元化架构设计
设计原则 透明 对开发者透明 在做实现时,不依赖于单元划分和部署对组件透明 在组件运行时,不感知其承载单元对数据透明 数据库并不知道为哪个单元提供服务 业务可分片 系统业务复杂度足够高系统可以按照某一维度进行切分系统数据必须可以被区分 业务…...

JAVA—实验3 继承与多态
一、实验目的 1.掌握类的继承机制 2.掌握抽象类的定义方法 2.熟悉类中成员变量和方法的访问控制 3.熟悉成员方法或构造方法的多态性 二、实验内容 1. Circle类及其子类 【问题描述】 实现类Circle,半径为整型私有数据成员 1)构造方法:参数为…...

TCP协议和相关特性
1.TCP协议的报文结构 TCP的全称为:Transmission Control Protocol。 特点: 有连接可靠传输面向字节流全双工 下面是TCP的报文结构: 源端口和目的端口: 源端口表示数据从哪个端口传输出来,目的端口表示数据传输到哪个端口去。…...

【SpringCloud组件——Eureka】
前置准备: 分别提供订单系统(OrderService)和用户系统(UserService)。订单系统主要负责订单相关信息的处理,用户系统主要负责用户相关信息的处理。 一、微服务当中的提供者和消费者 1.1、概念 服务提供…...

JVM面试题(一)
JVM内存分哪几个区,每个区的作用是什么? java虚拟机主要分为以下几个区: JVM中方法区和堆空间是线程共享的,而虚拟机栈、本地方法栈、程序计数器是线程独享的。 (1)方法区: a. 有时候也成为永久代,在该区内…...
c# 无损压缩照片大小,并且设计了界面,添加了外部Ookii.Dialogs.dll,不一样的选择文件夹界面,并且可以把外部dll打包进exe中
c# 无损压缩照片大小,并且设计了界面,添加了外部Ookii.Dialogs.dll,不一样的选择文件夹界面,并且可以把外部dll打包进exe中 using System; using System.Collections; using System.Collections.Generic; using System.ComponentM…...

《统计学习方法》——隐马尔可夫模型(上)
引言 这是《统计学习方法》第二版的读书笔记,由于包含书上所有公式的推导和大量的图示,因此文章较长,正文分成三篇,以及课后习题解答,在习题解答中用Numpy实现了维特比算法和前向后向算法。 《统计学习方法》——隐马…...
ElasticSearch删除索引【真实案例】
文章目录 背景分析解决遇到的问题 - 删除超时报错信息解决办法1:调大超时时间解决办法2:调大ES堆内存参考背景 项目中使用了ELK技术栈实现了日志管理,但是日志管理功能目前并没有在生产上实际使用。 但ELK程序依然在运行,导致系统磁盘发生告警,剩余可用磁盘不足10%。 所以…...

基于FPGA+JESD204B 时钟双通道 6.4GSPS 高速数据采集设计(三)连续多段触发存储及传输逻辑设计
本章将完成数据速率为 80MHz 、位宽为 12bits 的 80 路并行采样数据的连续多 段触发存储。首先,给出数据触发存储的整体框架及功能模块划分。然后,简介 MIG 用户接口、设置及读写时序。最后,进行数据跨时钟域模块设计,内存…...
对 Iterator, Generator 的理解?
Iterator Iterator是最简单最好理解的。 简单的说,我们常用的 for of 循环,都是通过调用被循环对象的一个特殊函数 Iterator 来实现的,但是以前这个函数是隐藏的我们无法访问, 从 Symbol 引入之后,我们就可以通过 Sy…...

C++基础
文章目录 C命名空间定义命名空间using指令不连续的命名空间嵌套的命名空间 面向对象类类成员的访问权限及类的封装对象类成员函数类访问修饰符构造函数和析构函数类的构造函数带参数的构造函数使用初始化列表来初始化字段类的析构函数拷贝构造函数 友元函数内联函数this指针指向…...
软件测试全流程
软件测试全流程 一、制定测试策略二、制定测试方案三、编辑测试用例四、执行测试用例五、输出问题单六、回归测试七、测试文件归档 一、制定测试策略 1、测试目的测试范围 2、用什么测试方法工具(例如功能测试用黑盒测试) 3、测试优先级(功能…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
vscode里如何用git
打开vs终端执行如下: 1 初始化 Git 仓库(如果尚未初始化) git init 2 添加文件到 Git 仓库 git add . 3 使用 git commit 命令来提交你的更改。确保在提交时加上一个有用的消息。 git commit -m "备注信息" 4 …...

React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
可靠性+灵活性:电力载波技术在楼宇自控中的核心价值
可靠性灵活性:电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中,电力载波技术(PLC)凭借其独特的优势,正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据,无需额外布…...

ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
comfyui 工作流中 图生视频 如何增加视频的长度到5秒
comfyUI 工作流怎么可以生成更长的视频。除了硬件显存要求之外还有别的方法吗? 在ComfyUI中实现图生视频并延长到5秒,需要结合多个扩展和技巧。以下是完整解决方案: 核心工作流配置(24fps下5秒120帧) #mermaid-svg-yP…...

如何在Windows本机安装Python并确保与Python.NET兼容
✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…...