Non-Local Video Denoising by CNN

news2024/11/21 0:30:45

摘要

Non-local patch based methods were until recently state-of-the-art for image denoising but are now outper formed by CNNs. Y et they are still the state-of-the-art for video denoising, as video redundancy is a key factor to attain high denoising performance. The problem is that CNN architectures are hardly compatible with the search for self-similarities. In this work we propose a new and efficient way to feed video self-similarities to a CNN. The non-locality is incorporated into the network via a first non-trainable layer which finds for each patch in the input image its most similar patches in a search region. The central values of these patches are then gathered in a feature vector which is assigned to each image pixel. This information is presented to a CNN which is trained to predict the clean image. We apply the proposed architecture to image and video denoising. For the latter patches are searched for in a 3D spatio-temporal volume. The proposed architecture achieves state-of-the-art results. To the best of our knowledge, this is the first successful application of a CNN to video denoising.

基于非局部补丁的方法直到最近才成为图像去噪的最先进技术,但现在被 CNN 超越。然而,它们仍然是视频去噪的最先进技术,因为视频冗余是获得高去噪性能的关键因素。问题在于 CNN 架构与搜索自相似性几乎不兼容。在这项工作中,我们提出了一种将视频自相似性提供给 CNN 的新的有效方法。非局部性通过第一个不可训练层合并到网络中,该层为输入图像中的每个补丁找到其在搜索区域中最相似的补丁。然后将这些补丁的中心值收集在分配给每个图像像素的特征向量中。该信息被呈现给经过训练以预测干净图像的 CNN。我们将所提出的架构应用于图像和视频去噪。对于后者,在 3D 时空体积中搜索补丁。所提出的架构实现了最先进的结果。据我们所知,这是 CNN 首次成功应用于视频去噪。

introduction

(1)曝光时间有限情况下低信噪比不可避免,且噪声很高

(2)通过将去噪算法迭代应用,因此,减少运行时间很重要

图像去噪相关文献

(1)CNNs are amenable to efficient parallelization on GPUs potentially enabling real-time performance.

(2) two types of CNN approaches: trainable inference networks and black box networks.(可训练推理的网络模型和无需训练的模型)

2.1 第一种通过模仿一些优化算法的迭代而执行得到结果,但是可能会导致一些不一样的架构、造成网络模型设计的限制

2.2 第二种将其视为标准的回归问题,虽然没有使用之前过多的研究,但是其技术名列前茅,比如CNN

2.3 引出Although these architectures produce very good results,
for textures formed by repetitive patterns, non-local patch-based methods still perform better

Although these architectures produce very good results, for textures formed by repetitive patterns, non-local patch-based methods still perform better

视频去噪相关文献

1、CNN应用于视频处理很多方面,但是在视频去噪中有限。

2、在输出质量方面,the state-of-the-art is achieved by patch-based methods [16、35、3、19、9、53]。他们极大地利用了自然图像和视频的自相似性,即大多数补丁周围都有几个相似的补丁(空间和时间)。每个补丁都使用这些相似的补丁进行去噪,这些补丁在其周围的区域中进行搜索。搜索区域通常是一个时空立方体,但也使用了涉及光流的更复杂的搜索策略。由于使用了如此广泛的搜索邻域,这些方法被称为non-local

优点:perform very well 缺点: computation-ally costly( Because of their complexity)

不适用于: high resolution video processing.

3、Patch-based methods usually follow three steps that can
be iterated:(1)搜索相似的补丁,(2)对相似的补丁组进行去噪,(3)聚合去噪的补丁以形成去噪帧。

VBM3D [16] 改进了图像去噪算法 BM3D [17],通过使用“预测搜索”策略在相邻帧中搜索相似的补丁,加速搜索并提供一些时间一致性。 VBM4D [35] 将这个想法推广到 3D 补丁。在 VNLB [2] 中,未进行运动补偿的时空补丁用于提高时间一致性。在 [19] 中,一种通用搜索方法通过将补丁搜索扩展到整个视频,将每个基于补丁的去噪算法扩展为全局视频去噪算法。 SPTWO [9] 和 DDVD [8] 使用光流将相邻帧扭曲到每个目标帧。然后使用类似于 [29] 的贝叶斯策略,使用该卷中的类似块对目标帧的每个块进行去噪。最近,[53] 提出使用批量帧来学习自适应最优变换

4、基于补丁的方法也实现了帧递归方法中的最新技术[20, 4]。这些方法仅使用当前噪声帧和前一个去噪帧来计算当前帧。与非递归方法相比,它们获得的结果更低,但内存占用更少,并且(可能)计算成本更低。

Contributions

在这项工作中,我们提出了一种不受可训练推理网络限制的a non-local architecture for image and video denoising的非本地架构。

The method

first: computes for each image patch the most similar neighbors in a rectangular spatio-temporal search window and gathers the center pixel of each similar patch forming a feature vector which is assigned to each image location.

This results in an image with n channels, which is fed to a CNN trained to predict the clean image from this high dimensional vector.

首先,在矩形时空搜索窗口中 为每个图像块计算n个最相似的邻居,并收集每个相似块的中心像素,形成分配给每个图像位置的特征向量。

这会产生具有 n 个通道的图像,该图像被馈送到经过训练的 CNN,以从这个高维向量中预测干净的图像。

We trained our network
for gray scale and color video denoising.

我们训练我们的网络进行灰度和彩色视频去噪。实际训练这种架构是通过 GPU 实现的补丁搜索实现的,它允许有效地计算最近的邻居。视频中暂时存在的自相似性可以通过我们的建议实现强大的去噪效果。

image-20220313194720495

所提出方法的架构。第一个模块在相邻帧上执行逐块最近邻搜索。然后,将当前帧和每个像素(最近邻的中心像素)的特征向量 fnl 输入到网络中。网络的前四层使用 32 个特征图执行 1×1 卷积。生成的特征图是具有 15 层的简化 DnCNN [55] 网络的输入。

Proposed method

image-20220313194917240

u代表视频,u(x,t)表示帧t中位置x处的值,假设观察的v是一个加入高斯白噪声u的版本。r(x, t) ∼ N (0, σ2).

Non-local features

​ 设 Px,t 是在帧 t 中以像素 x 为中心的补丁。搜索模块计算块 Px,t 与以 (x,t)为中心、大小为 ws*ws*w t的 3D 矩形搜索区域 R 中的块之间的距离,其中 ws 和 wt 是空间和时间大小。这 n 个相似块的位置是 (xi, ti)(根据后面指定的标准排序)。注意 (x1, t1) = (x, t)。

​ 这些位置的像素值被收集为 n 维非局部特征向量

image-20220313195612983

​ f具有 n 个通道的 3D 张量。这是网络的输入。请注意,特征图像的第一个通道对应于噪声图像 v。

Network

我们的网络可以分为两个阶段: a non-local stage and a local stage:

The non-local stage 由四个 1×1 卷积层和 32 个内核组成。这些层的基本原理是允许网络从输入的原始非局部特征 f nl 中计算像素级特征。

The second stage接收第一阶段计算的特征。它由 14 层和 64 个 3 × 3 卷积核组成,然后是批量归一化和 ReLU 激活。输出层是一个 3×3 的卷积。它的架构类似于 [55] 中介绍的 DnCNN 网络,尽管有 15 层而不是 17 层(如 [56] 中)。对于 DnCNN,网络输出残差图像,必须将其减去噪声图像才能得到去噪图像。训练损失是残差和噪声之间的平均均方误差。对于 RGB 视频,我们使用相同数量的层,但每层的特征数量增加三倍。

Training and dataset

省略

Experimental results

我们将首先展示一些实验来突出所提出方法的相关方面。

然后我们与最先进的进行比较

The untapped potential of non-locality.

非本地未被开发法的潜力

​ 尽管这项工作的重点是视频去噪,但研究提出的非局部 CNN 在图像上的性能仍然很有趣。

image-20220314160147862

​ 图 2 显示了基线 CNN(DnCNN [55] 的 15 层版本,如在我们的网络中)和我们为静态图像去噪训练的方法版本(它通过比较 9 × 9 块收集 9 个邻居)的比较。有和没有非本地信息的结果非常相似,这在表 1 中得到证实。唯一的区别是在非常自相似的部分上可见,例如图 2 中详细显示的百叶窗。

image-20220314160319048

非局部性在改善 CNN 的结果方面具有很大的潜力。 oracle 方法获得的平均 PSNR 为 31.85dB,比基线高 0.6dB。然而,这种改进受到在存在噪声的情况下难以找到准确匹配的阻碍。减少匹配错误的一种方法是使用更大的补丁。但在图像上,较大的补丁具有较少的相似补丁。相反,正如我们将在下面看到的视频的时间冗余允许使用非常大的补丁

Parameter tuning参数调优

Non-local search has three main parameters: The patch size,`` the number of retained matches and the number of frames in the search region

三个参数:补丁大小、保留匹配的数量和搜索区域中的帧数。

我们通过增加补丁的大小获得了越来越好的结果。主要原因是匹配精度提高了,因为噪声对补丁距离的影响缩小了

image-20220314160842700

​ 我们可以看到,前者使用大块显然更好地去噪,而后者在运动区域周围保持不受影响。这表明网络能够确定何时提供的非局部信息不准确,并在这种情况下回退到类似于 DnCNN 的结果(单图像去噪),[图6可以查看] 进一步增加补丁大小将导致更多区域被处理为单个图像。结果,我们看到从 31×31 到 41×41 的性能增益相当小。对于如此大的块,只有来自不同帧的相同对象的匹配才可能被视为邻居。因此,我们更进一步,强制匹配来自不同的帧,这略微提高了性能。这显示在图 5 和表 4 中。请注意,由于补丁分布受到影响,网络会被重新训练。事实上,当没有施加限制时,邻居是按增加距离排序的。而在此变体中,邻居按帧索引排序。


image-20220314160518506 image-20220314161029965
image-20220314161116988

总结:在接下来的实验中,我们将使用 41 × 41 块和 15 帧。非局部搜索的另一个参数是搜索窗口的空间宽度,我们将其设置为 41 像素(测试块的中心像素必须位于该区域内)。我们为 σ 10、20 和 40 的 AGWN 训练了灰度和彩色网络。为了强调 CNN 方法可以适应多种噪声类型这一事实,与传统方法不同,我们还为通过 3 × 3 相关的高斯噪声训练了灰度网络盒核使得最终的标准偏差为 σ = 20,以及 25% 的均匀椒盐噪声(移除的像素被随机均匀噪声替换)。

image-20220314160722160

训练结果

image-20220314161352947

image-20220314161403579

A note on running times:还比较CPU 的运行时间

image-20220314161634328

image-20220314161651908

表 11 的 GPU 运行时指出,在 CPU 上,我们的方法应该比 DnCNN 慢 10 倍。非局部搜索的成本特别高,因为我们在 15 帧上搜索以图像的每个像素为中心的补丁。通过使用其他论文中探索的技巧来减小 3D 窗口的大小,可以显着加快补丁搜索的速度。例如,VBM3D 将搜索集中在围绕在前一帧中找到的最佳匹配的小窗口上的每一帧上。一个相关的加速是使用基于 PatchMatch [6] 的搜索策略。

Implementation details

补丁搜索需要计算图像中每个补丁与搜索区域中的补丁之间的距离。成本很大

为了降低计算成本:一种常见的方法是只在图像的子网格中搜索最近的邻居。例如,BM3D 使用默认参数处理 1/9 的补丁。由于处理后的补丁重叠,去噪补丁的聚合覆盖了整个图像。

我们提出的方法没有任何聚合。我们计算所有图像块的邻居,这是昂贵的。在视频的情况下,使用大块和大搜索区域(时间和空间)获得最佳结果。因此,我们需要一种高效的补丁搜索算法

我们的实现使用了一个优化的 GPU 内核,它并行搜索位置。对于每个补丁,相对于搜索量中所有其他补丁的最佳距离都保存在一个表中。我们将距离的计算分为两个步骤:首先计算跨列的平方和

为了优化算法的速度,我们使用 GPU 共享内存作为内存访问的缓存,从而减少了带宽限制。此外,为了对距离进行排序,有序表存储到 GPU 寄存器中,并且仅在计算结束时写入内存。 L2 距离的计算和有序表的维护具有大约相同数量级的计算成本。有关实施的更多详细信息,请参见附录 A

结论

We described a simple yet effective way of incorporating non-local information into a CNN for video denoising. The
proposed method computes for each image patch the n most similar neighbors on a spatio-temporal window and gathers
the value of the central pixel of each similar patch to form a non-local feature vector which is given to a CNN. Our
method yields a significant gain compared to using the single frame baseline CNN on each video frame.

我们描述了一种将非本地信息合并到 CNN 中进行视频去噪的简单而有效的方法。所提出的方法为每个图像块计算时空窗口上的 n 个最相似的邻居,并收集每个相似块的中心像素的值,以形成一个非局部特征向量,该向量被提供给 CNN。与在每个视频帧上使用单帧基线 CNN 相比,我们的方法产生了显着的收益。

We have seen the importance of having reliable matches: On the validation set, the best performing method used
patches of size 41 × 41 for the patch search. We have alsonoticed that on regions with non-reliable matches (complex
motion), the network reverts to a result similar to single image denoising. Thus we believe future works should fo-
cus on improving this area, by possibly adapting the size of the patch and passing information about the quality of the matches to the network.

我们已经看到了可靠匹配的重要性:在验证集上,性能最佳的方法使用大小为 41 × 41 的补丁进行补丁搜索。我们还注意到,在具有不可靠匹配(复杂运动)的区域上,网络恢复到类似于单图像去噪的结果。因此,我们认为未来的工作应该集中在改善这一领域,可能会调整补丁的大小并将有关匹配质量的信息传递给网络。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaWeb——Cookie和Session的工作流程

目录 一、定义 1、Cookie定义 2、Session 二、Cookie和Session的联系和区别 1、联系 2、区别 一、定义 1、Cookie定义 Cookie是浏览器在本地存储数据的一种机制,来自于服务器。 服务器在响应中会带有Set-Cookie字段,通过这个字段就可以把要保存在浏…

及早识别面肌痉挛症状,科学治疗是关键!

随着现代社会的快节奏生活和各种压力的增加,面肌痉挛这一神经肌肉紊乱性疾病的发病率也逐渐上升。面肌痉挛是指由于面肌肌肉群异常收缩而导致的面部肌肉抽搐和不自主运动的症状。如果不及早识别和治疗,将对患者的生活质量产生严重影响。因此,…

C语言,封装自定义函数

1、封装自定义函数&#xff0c;计算数组的最大和&#xff0c;最大差 //第一数组 #include <stdio.h> #include <string.h> int MaxSum(int len,int arr[]); int MaxDel(int len,int arr[]); int main(int argc, const char *argv[]) {int arr[]{5,6,8,51,31,51,88…

2023 7.10~7.16 周报 (RTM研究与正演的Python复现)

0 上周回顾 上周简单阅读了论文《Deep-Learning Full-Waveform Inversion Using Seismic Migration Images》, 但是并没读完…因为这篇论文中提到一个技术吸引了注意力: RTM (Reverse-time migration) 于是计划下周去专门熟悉熟悉RTM的机制, 并且试着用Python复现这个操作. 另…

数据处理 | Matlab实现Lichtenberg算法的机器学习数据选择

文章目录 效果一览基本介绍源码设计参考资料效果一览 基本介绍 Matlab实现Lichtenberg算法的机器学习数据选择 Lichtenberg算法适用于回归和分类数据集,并根据数量和最大覆盖范围选择最佳算法。Lichtenberg算法(Lichtenberg algorithm,LA)是由Pereira等人于2021年提出的一种…

Python爬虫——urllib_下载

urlretrieve(url&#xff0c; filename)函数 url 代表的是下载的路径 filename文件的名字 下载网页: url_page "http://www.baidu.com" urllib.request.urlretrieve(url_page, baidu.html)下载图片: url_img "https://img0.baidu.com/it/u2751401762,34216…

VUE研究

1.v2与v3的区别 vue3对源码的管理根据模块进行拆分&#xff0c;在不同目录中对不同的模块进行分别维护&#xff1b; vue3是基于typescript语言进行开发的&#xff0c;这样可以进行更好的类型检查&#xff1b; vue3体积减小&#xff0c;去除了不常使用的API&#xff0c;Tree sha…

DevOps B站学习版(二)

学习地址&#xff1a; 01.DevOps的诞生_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1Pt4y1H7Zq/?p1&vd_source1f09c23f556b3d6a9b7706f8db12fa54%E3%80%81 正文开始 找到这个地方&#xff0c;修改 可以写成基于标签拉取和构建工程&#xff0c;下面也选择Tag即可…

Python 自学 day03 容器tuple(元组)的定义与使用,序列,字典,集合,多返回值传递,不定长参数函数

1. tuple 元组 1.1 元组的定义 定义&#xff1a;元组同列表一样&#xff0c;都是可以封装多个、不同类型的元素在内。但最大的不同点在于: 元组一旦定义完成﹐就不可修改。 1.2 元组的创建方法 t1 (1,111,1111,11,1111,222) #元组的定义方法 t2 (22,) …

Postman+Newman+Git+Jenkins+Slack 接口自动化和监控

目录 前言&#xff1a; 一、Newman 介绍&#xff1a; 1、简介 2、安装 3、检查 4、运行 二、Newman 命令行介绍&#xff1a; newman run [options] 测试结果配置 ------------------------------------分 割 线----------------------------------------------------…

2023年最新水果编曲软件FL Studio Producer Edition 21.0.3 Build 3517中文完美至尊解锁免费下载安装激活详细教程

fl studio21.0.3.3517中文解锁特别版是一款功能强大的编曲软件&#xff0c;也就是众所熟知的水果软件。它可以编曲、剪辑、录音、混音&#xff0c;让您的计算机成为全功能录音室。除此之外&#xff0c;这款软件功能非常强大&#xff0c;为用户提供了许多音频处理工具&#xff0…

《红蓝攻防构建实战化网络安全防御体系》读书笔记

作者&#xff1a;奇安信安服团队 ◆ 1.3 红队 各个团队在演练中的角色与分工情况如下。目标系统运营单位&#xff1a;负责红队整体的指挥、组织和协调。安全运营团队&#xff1a;负责整体防护和攻击监控工作。攻防专家&#xff1a;负责对安全监控中发现的可疑攻击进行分析和研…

LiveNVR监控流媒体Onvif/RTSP功能-安全控制HTTP接口鉴权开启禁止游客访问开启后401 Unauthorized如何播放调用接口

LiveNVR安全控制HTTP接口鉴权开启禁止游客访问开启后401 Unauthorized如何播放调用接口&#xff1f; 1、安全控制1.1、接口鉴权1.2、禁止游客访问 2、401 Unauthorized2.1、携带token调用接口2.1.1、获取鉴权token2.1.2、调用其它接口2.1.2.1、携带 CookieToken2.1.2.2、携带 U…

VUE- quill-editor 编辑器使用及自定义toobar详解

vue使用编辑器&#xff0c;这里讲解编辑器quil-editor 官网&#xff1a;https://quilljs.com/docs/modules/toolbar 1&#xff1a;安装quill-eidtor npm i quill1.3.6 --save 2&#xff1a;创建一个页面&#xff0c;再template里写入 <template><div class"…

@ConditionalOnMissingBean 不生效

还要一点需要注意的是 有顶级接口类型写接口类型,像下面这个也控制不住加载多个相同类型的Bean,因为父类最先加载,子类之间不能算作同一种类型Bean

Git详细安装教程

对于Git这块&#xff0c;我也算是个小白&#xff0c;最近在学习Git&#xff0c;所以趁此机会详细讲解一下Git的安装教程以及安装过程中遇到的问题&#xff0c;也欢迎大家对其补充&#xff0c;共同进步&#xff01; 1、下载Git Git的下载地址&#xff08;windows系统&#xff…

【STM32CubeIDE】 stm32f103的内部Flash读写,double数值读写

单片机stm32f103c8t6&#xff0c;程序存储器64Kb&#xff1a; 对其最后一页&#xff0c;第63页进行读写操作&#xff0c;空间1Kb。 写入一个32位的数据0x12345678到Flash首地址为0x0800FC00.则在Flash中存储情况如下&#xff1a; 即&#xff0c;低位地址存储数据的低位&#xf…

Python实现简易计算器

文章目录 一、需求分析1.1 功能分析1.2 性能分析 二、技术原理三、详细设计3.1 导入tkinter库3.2 定义全局变量3.3 定义添加函数3.4 定义结果函数3.5 定义清空函数3.6 创建主窗口并指定其大小和位置3.7 创建输入框3.8 创建数字和运算符按钮3.9 创建等于号和清除按钮 四、功能实…

解决打开excel时报错 “不能使用对象链接和嵌入”

问题截图 打开excel文件或者插入对象时&#xff0c;直接弹出不能使用对象链接和嵌入报错信息。 解决方法 按 winr 组合快捷键&#xff0c;打开运行&#xff0c;输入 dcomcnfg.exe 按回车确定 此时进入到组件服务管理界面&#xff0c;依次选择 组件服务-计算机-我的电脑-DOCM…

Vue+Node(Egg框架)实现文件上传保存至本地和下载文件

文章目录 1、前端代码2、后端代码 本文Node搭建的服务器是基于egg框架搭建&#xff0c;如果使用其他服务器端框架&#xff0c;可参考部分代码&#xff0c;不保证所有框架都能实现 实现效果&#xff1a; 1、前端代码 前端部分vue利用的element-ui文件上传组件&#xff0c;相关…