图像降噪:Zero-shot Blind Image Denoising via Implicit Neural Representations

本文主要是介绍图像降噪:Zero-shot Blind Image Denoising via Implicit Neural Representations,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • Zero-shot Blind Image Denoising via Implicit Neural Representations
    • 1.作者首先指出 blind-spot denoising 策略的缺点
    • 2.Implicit Neural Representations
      • 2.1 策略一:early stopping 标准
      • 2.2 策略二:Selective Weight Decay

Zero-shot Blind Image Denoising via Implicit Neural Representations

1.作者首先指出 blind-spot denoising 策略的缺点

在遇到噪声比较小的图像或者真实场景的图像容易失效,比如变模糊。

在这里插入图片描述

2.Implicit Neural Representations

INR(隐式神经表示)可以建立坐标到像素值的映射关系。之前的文章有介绍过。
INR也是一个深度学习网络,卷积或者全连接。输入是图像的坐标,输出是像素值,然后这个网络就是这个图像的一个表示。说白了就是拟合。

然后作者发现,拟合一个有噪声的图像,在前期会有一个阶段拟合的结果与 无噪声图像接近,然后最后训练完成与噪声图像接近。如下图a, 下图a还可以看出 在INR output与 clean最接近的时候,与 noisy的psnr 变化也更加平台。
在这里插入图片描述

图b说明 拟合clean image 速度更快。

那么既然INR拟合一个有噪声的图像,在前期会有一个阶段拟合的结果与 无噪声图像接近,那么是不是在这个时候让网络停止训练就可以了。如何确定这个停止训练的时机呢?

2.1 策略一:early stopping 标准

作者指定的策略是这样的:
在这里插入图片描述

当 output 和 noisy 的mse小于等于 估计的noise level,则停止。

noise level 估计,作者利用的是Chen, G., Zhu, F., and Heng, P. A. An efficient statistical method for image noise level estimation.(ICCV), 2015.

2.2 策略二:Selective Weight Decay

作者发现INR的前几层网络 主要学习 图像基础和低频信息,后面的layer主要学习更多细节和高频信息。并通过实验证实了这一点。
而且实验还表明 early stopping和 训练直到收敛 这2种方法得到的feature主要在后面的layer表现处更大差异。
在这里插入图片描述

因此作者提出的策略是:
we propose to apply weight decay selectively on the last two layers of INR. The main motivation comes from our observation that the atter INR layers contribute more to fitting the noise signal than earlier layers.

就是对后面2层 的weight 的更新不那么快。和前面的做一些平均。

额外话:
比如下面的类,可以对model的所有层的layer 进行 weight decay. 类似加权平滑操作。

class EMA():def __init__(self, model, decay):self.model = modelself.decay = decayself.shadow = {}self.backup = {}def register(self):for name, param in self.model.named_parameters():if param.requires_grad:self.shadow[name] = param.data.clone()def update(self):for name, param in self.model.named_parameters():if param.requires_grad:assert name in self.shadownew_average = (1.0 - self.decay) * param.data + self.decay * self.shadow[name]self.shadow[name] = new_average.clone()def apply_shadow(self):for name, param in self.model.named_parameters():if param.requires_grad:assert name in self.shadowself.backup[name] = param.dataparam.data = self.shadow[name]def restore(self):for name, param in self.model.named_parameters():if param.requires_grad:assert name in self.backupparam.data = self.backup[name]self.backup = {}

这篇关于图像降噪:Zero-shot Blind Image Denoising via Implicit Neural Representations的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/647038

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

lvgl8.3.6 控件垂直布局 label控件在image控件的下方显示

在使用 LVGL 8.3.6 创建一个垂直布局,其中 label 控件位于 image 控件下方,你可以使用 lv_obj_set_flex_flow 来设置布局为垂直,并确保 label 控件在 image 控件后添加。这里是如何步骤性地实现它的一个基本示例: 创建父容器:首先创建一个容器对象,该对象将作为布局的基础。设置容器为垂直布局:使用 lv_obj_set_flex_flow 设置容器

SAM2POINT:以zero-shot且快速的方式将任何 3D 视频分割为视频

摘要 我们介绍 SAM2POINT,这是一种采用 Segment Anything Model 2 (SAM 2) 进行零样本和快速 3D 分割的初步探索。 SAM2POINT 将任何 3D 数据解释为一系列多向视频,并利用 SAM 2 进行 3D 空间分割,无需进一步训练或 2D-3D 投影。 我们的框架支持各种提示类型,包括 3D 点、框和掩模,并且可以泛化到不同的场景,例如 3D 对象、室

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

速通GPT-3:Language Models are Few-Shot Learners全文解读

文章目录 论文实验总览1. 任务设置与测试策略2. 任务类别3. 关键实验结果4. 数据污染与实验局限性5. 总结与贡献 Abstract1. 概括2. 具体分析3. 摘要全文翻译4. 为什么不需要梯度更新或微调⭐ Introduction1. 概括2. 具体分析3. 进一步分析 Approach1. 概括2. 具体分析3. 进一步分析 Results1. 概括2. 具体分析2.1 语言模型

【python计算机视觉编程——7.图像搜索】

python计算机视觉编程——7.图像搜索 7.图像搜索7.1 基于内容的图像检索(CBIR)从文本挖掘中获取灵感——矢量空间模型(BOW表示模型)7.2 视觉单词**思想****特征提取**: 创建词汇7.3 图像索引7.3.1 建立数据库7.3.2 添加图像 7.4 在数据库中搜索图像7.4.1 利用索引获取获选图像7.4.2 用一幅图像进行查询7.4.3 确定对比基准并绘制结果 7.

【python计算机视觉编程——8.图像内容分类】

python计算机视觉编程——8.图像内容分类 8.图像内容分类8.1 K邻近分类法(KNN)8.1.1 一个简单的二维示例8.1.2 用稠密SIFT作为图像特征8.1.3 图像分类:手势识别 8.2贝叶斯分类器用PCA降维 8.3 支持向量机8.3.2 再论手势识别 8.4 光学字符识别8.4.2 选取特征8.4.3 多类支持向量机8.4.4 提取单元格并识别字符8.4.5 图像校正

MonoHuman: Animatable Human Neural Field from Monocular Video 翻译

MonoHuman:来自单目视频的可动画人类神经场 摘要。利用自由视图控制来动画化虚拟化身对于诸如虚拟现实和数字娱乐之类的各种应用来说是至关重要的。已有的研究试图利用神经辐射场(NeRF)的表征能力从单目视频中重建人体。最近的工作提出将变形网络移植到NeRF中,以进一步模拟人类神经场的动力学,从而动画化逼真的人类运动。然而,这种流水线要么依赖于姿态相关的表示,要么由于帧无关的优化而缺乏运动一致性

HalconDotNet中的图像特征与提取详解

文章目录 简介一、边缘特征提取二、角点特征提取三、区域特征提取四、纹理特征提取五、形状特征提取 简介   图像特征提取是图像处理中的一个重要步骤,用于从图像中提取有意义的特征,以便进行进一步的分析和处理。HalconDotNet提供了多种图像特征提取方法,每种方法都有其特定的应用场景和优缺点。 一、边缘特征提取   边缘特征提取是图像处理中最基本的特征提取方法之一,通过检