(论文调研) Multi-task的网络结构 在图像去噪问题中的应用

news/2024/11/8 18:50:59/

1.SNIDER: Single Noisy Image Denoising and Rectification for Improving License Plate Recognition

这是一篇用于实现端到端的车牌恢复 (LPR: License Plate Recognition) 网络, 其中使用去噪和校正网络来生成清晰的恢复图像, 以实现稳健的 LPR 性能.
在这里插入图片描述
这个网络的名称为SNIDER, 将输入图像输入 SNIDER 进行图像恢复.

  • (b,c) SNIDER由主任务 (即DSN、RSN) 和辅助任务组成, 它们将低质量数据转换为高质量数据, 用于训练DSN、RSN和辅助任务网络.
  • (d,e) LPR网络用于测试并输出LPR结果, 即识别矫正后的车牌图像中的数字.
  • DSN通过编解码网络进行降噪处理, DSN生成的图像输入到RSN中进行矫正, 输出矫正后的车牌图像. 这里采用了两步的流程.
  • 辅助任务以提取主任务两个阶段的编码器末端的Feature map作为输入, 通过两个不同的解码器分别解码获得车牌字数与二值化结果.
  • 训练数据是将真实车牌进行缩放后差值复原 (加噪), 并且调整倾斜 (15°~30°) 后获取的.

>> 多任务与降噪结合的评价

将复杂的任务分解为多个网络组合的流程进行, 综上思路中降噪->矫正->LPR预测被分为明晰的多个步骤来进行, 属于串行的多任务.
而车牌数字数量预测和二值预测都属于并行的多任务组件, 可以理解为正则化的效果. 它们不直接预测的, 而是用于辅助网络认知.
而这个过程中将降噪任务作为必不可少的串行多任务组件部分来进行, 将降噪作为复杂任务的前导学习进行.

2.Test-time Adaptation for Real Image Denoising via Meta-transfer Learning

这篇文章的目的是提高真实图像去噪性能, 在多任务网络上实现测试时适应.
学习策略分为两个阶段, 第一阶段使用元辅助学习 (meta-auxiliary learning) 对网络进行预训练, 以获得更好的元初始化 (meta initialization).
同时,我们使用元学习 (meta-learning) 对网络进行微调 (元迁移学习) 作为训练的第二阶段,以实现对真实噪声图像的测试时间适应.

主体网络的架构如下:
在这里插入图片描述
给定一个噪声图像 I n I_n In作为输入, 多任务分支网络 f θ 1 f_{\theta_1} fθ1输出预测的干净图像 I ^ c \hat{I}_c I^c和预测的噪声图像 I ^ n \hat{I}_n I^n.
通过多个跳跃连接后首先生成的图像是一个残差图像 (3通道的).
残差图像与噪声图像 I n I_n In相加, 产生预测的图像为干净图像 I ^ c \hat{I}_c I^c.
可以发现, 这个多任务的输出并非是将两个图像并列输出 (即单纯多解码器结构), 而是先输出干净图像, 并且将干净图像与残差串联构成Auxiliary Head, 再度依靠生成Auxiliary Head特定噪声图像 I ^ n \hat{I}_n I^n. 即旧输出串联构造新输出.
此外, 网络的掩模生成分支 g θ 2 g_{\theta_2} gθ2还产生掩模 M M M (存噪点图像) 来调节重建损失 L Rec L_{\text{Rec}} LRec. 重建损失 L Rec L_{\text{Rec}} LRec将会作为辅助损失 L Auc L_{\text{Auc}} LAuc的一部分来调节多任务网络 f θ 1 f_{\theta_1} fθ1.
在这里插入图片描述
网络训练的过程可以用上图概述.

  • 首先, 网络使用元辅助训练, 将网络参数 θ 1 0 \theta^0_1 θ10, θ 2 0 \theta^0_2 θ20更新为 θ 1 T \theta^T_1 θ1T, θ 2 T \theta^T_2 θ2T. 这个过程会更新多任务网络 f θ 1 f_{\theta_1} fθ1和掩模生成网络 g θ 2 g_{\theta_2} gθ2. 采用的输入是合成的 {干净-噪声} 数据对. 这个过程提供了较好的元初始化, 实现更好的泛化性, 提高网络对各种合成噪声的鲁棒性.
  • 然后, 我们使用这个预训练网络作为元迁移学习的元初始化, 这个过程通过输入真实噪声数据集将参数从 θ 1 T \theta^T_1 θ1T, θ 2 T \theta^T_2 θ2T.更新为 θ 1 M \theta^M_1 θ1M, θ 2 M \theta^M_2 θ2M. 迁移学习只会训练Primary Head 和 Auxiliary Head.
  • 利用这两个阶段的学习, 我们希望使掩模生成网络产生更好的掩模, 这将有助于多任务网络在使用掩模重建损失进行训练时能够适应各种类型的噪声 (合成的和真实的).
  • 对于未见过的数据的测试数据集, 通过使用掩蔽重建损失来调整每个图像示例上的多任务网络的参数 (即零样本元学习), 该损失可以以自监督的方式进行训练, 而无需任何真实图像.

>> 多任务与降噪结合的评价

本文从两个地方利用的多任务的思路:
首先是网络会输出两个内容以作为不同的任务对象: 即干净图像噪声图像. 并值得一提的是, 作者通过设计了Primary Head 和 Auxiliary Head将两个任务又关联起来. 通过Primary Head输出干净图像, 这个过程类似去噪学习. 之后通过Auxiliary Head进一步利用基础网络 (Network body) 的残差干净图像的拼接输入到附属网络块来学习, 得到网络认知的预测噪声图像.
其次是通过一个掩模生成网络来作为"记录员"的身份记录噪声的特点, 它本身也可以作为一个正则化的附属子任务. 只不过它并非完全无用 (指的是并不是只为了辅助主任务训练来用) , 它还可以作为自监督的重要组件之一.

3. Multitask Learning for Super-Resolution of Seismic Velocity Model

这个网络是一种基于深度学习的超分辨率 (SR) 方法来增强地震速度模型的分辨率.
虽然这篇文章并没有明确为去噪任务, 但是分辨率提升的任务实际上转变为去噪的任务.
在这里插入图片描述

  • 网络左端的"Img"是附带低频信号的速度模型, 而X-grad与Y-grad分别表示通过Sobel算子获得的图像边缘信息.
  • 编解码的中间高维部分采用了DenseNet的Dense模块, 这种模块可以避免梯度消失问题并快速获得真实的SR结果.
  • 这个结构是通过硬参数共享实现的, 即并没有通过分离的组件 (多解码器或多编码器) 或 不同的网络结构软共享连接来实现不同的任务目标, 而是将任务一并拼接到通道中进行参数共享.
  • 边界恢复是当前SR处理的难点, 这在地震速度模型的SR中尤为突出, 这就是通过sobel算子引入边缘信息的目的. 实际工作中, 这部分可以引入不同噪声参数, 从而实现特定噪声去除.

>> 多任务与降噪结合的评价

这个模型着重讨论了硬参数共享的多任务在超分辨中的可行性, 虽然并没有融合去噪任务, 但是两个任务存在相似性, 有着相互联系的基础.
可以将不同的干扰情况下的图像与低分辨率图像一并作为同通道内的数据输入到网络中, 直接让网络内部的卷积学习通道彼此之间的关联.
实际上, 硬参数共享也可以作为软参数共享多任务的一个混合的子任务, 实现混合共享.

4. Joint Image Compression and Denoising via Latent-Space Scalability

这篇文章的模型内部组件结构略有复杂, 我还没深入去解析. 但是主体思想比较清晰.
这篇文章提出了一种基于学习的图像压缩框架, 其中联合执行图像去噪压缩 (任务为两个)
图像编解码器的潜在空间以可扩展的方式组织, 使得干净的图像可以从潜在空间的子集 (基础层) 解码, 而噪声图像以更高的比率从完整的潜在空间解码.
简单来说, 如果要构建一个既可以生成去噪图像又可以重建噪声图像的基于学习的系统时, 考虑首先压缩噪声图像, 然后解码, 然后应用去噪以获得去噪后的图像, 当然, 这种思路也可以乔迁到其他主任务中, 即在解码时考虑降噪问题.
在这里插入图片描述
其中, 首先压缩噪声图像, 然后解码, 之后应用去噪以获得去噪后的图像.
模型结构如图所示, 其中细节组件暂且不论, 但是就直观来是一个双解码的网络.
各解码器专注于在前导的编码高维信息中采用服务于特定任务的组件做特定的目标.

>> 多任务与降噪结合的评价

这个模型采用了宏观意义上的双解码器多任务结构, 但是又不同于单纯的端到端双解码器网络, 在每个编解码内部又有各异的组件.
这证明了多任务的编解码思想是灵活的, 同时, 这些灵活的构造依旧可以服务于去噪任务.
间接地, 这也证明多任务的设计也是灵活的.


http://www.ppmy.cn/news/1140141.html

相关文章

安装配置deep learning开发环境

1. 下载安装anacondahttps://www.anaconda.com/download-success vim ~/.condarcchannels: - bioconda - https://mirrors.ustc.edu.cn/anaconda/pkgs/main/ - https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/ - https://mirrors.tuna.tsinghua.edu.cn/anaco…

高级 I/O【Linux】

阅读前导: “高级 I/O”处于知识树中网络和操作系统的最后,因此本文默认读者有计算机网络和操作系统的基础。 1. 什么是 I/O 下面以“流”(stream)和冯诺依曼体系架构的视角来简单回顾一下什么是 I/O: I/O可以理解…

最新AI创作程序源码ChatGPT系统网站源码/Ai绘画系统/支持OpenAI GPT全模型+国内AI全模型/详细搭建部署教程

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Chat…

电机控制、运动控制、过程控制三者关系

1. 电机控制 { 单电机参数:位置/角位移(方向)环、速度环(加减速、最大速度、启停速)、扭/转矩环三个控制环 } Motor Control 主要关注的是,控制单个电机的转距(torque control mode)、速度(speed control mode)、位置(position control mode)中的一个或…

使用Docker安装Redis

一、如果虚拟机有redis运行则,关闭本地redis 1、查看redis是否运行 ps -ef | grep redis 2、 关闭本地redis redis-cli -a 123456 shutdown 3、如果需要启动本地redis #切换到redis目录 cd /opt/redis/bin redis-server redis.conf #关闭进程 kill [进程号] 二、…

QChart使用说明

一.使用说明 Qt官网例程:https://doc.qt.io/qt-5/qtcharts-examples.html QChart:用于管理图表中的线、图例和轴的图形表示。可以简单理解为是一个画布。QChartView:视图组件,无法单独进行显示,需要依附其他组件进行…

mysql面试题22:SQL优化的一般步骤是什么,怎么看执行计划(explain),如何理解其中各个字段的含义

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:SQL优化的一般步骤是什么,怎么看执行计划(explain),如何理解其中各个字段的含义 SQL优化的一般步骤如下: 分析和理解问题:首先,要确保对问…

using 语句 - 确保正确使用可释放对象

using语句块的几种用法。 1、using 语句可确保正确使用 IDisposable 实例&#xff1a; var numbers new List<int>(); using (StreamReader reader File.OpenText("numbers.txt")) {string line;while ((line reader.ReadLine()) is not null){if (int.Try…