【文献阅读】Joint Demosaicing and Denoising with Self Guidance

1. 摘要

近年来,一些神经网络在联合去马赛克和去噪(JDD)方面表现出了良好的效果。大多数算法首先将Bayer原始图像分解为四通道RGGB图像,然后将其输入神经网络。这种做法忽略了一个事实,即绿色通道的采样率是红色和蓝色通道的两倍。在本文中,我们提出了一种自引导网络(SGNet),其中绿色通道首先被估计,然后作为一个引导来恢复输入图像中的所有缺失值。此外,不同频率的区域在图像恢复中遭受不同程度的退化。我们提出了一个密度图(density map)指导,以帮助模型处理宽范围的频率。我们的模型在四个公共数据集(包括两个真实数据集和两个合成数据集)上优于最先进的联合去马赛克和去噪方法。最后,我们还验证了该方法在联合去马赛克、去噪和超分辨率方面取得了最好的效果。

2. 引言

恢复这些丢失的信息是一个ill-posed问题。此外,现有的三分之一RGGB观测常常受到各种噪声的污染,这进一步增加了任务的难度。这两个任务很重要,因为它们出现在相机成像管道的最开始,它们的性能对最终结果有至关重要的影响。传统管道中,这两个操作通常是顺序进行的, 但是最近的研究显示了联合实现去马赛克和去噪的优点。

传统插值方法会导致边缘区域容易产生拉链伪影,为了解决这一问题,过去一些方法采用边缘自适应的插值方法。有些方法进一步利用图像中的有用信息,例如自相似性,来弥补缺失的像素,增强图像去马赛克的性能。然而,仍然有一些视觉伪影,如出现在一些具有挑战性的高频区域是莫尔图案。

最近,深度学习方法在图像识别任务上非常成功[20,30,10],在图像去马赛克等低层次视觉任务上也越来越受欢迎[33,34,2,26]。这些方法能够有效地利用RAW图像中的通道内和通道间依赖关系来完成缺失的信息。这些方法大多[33,34,2]将Bayer原始图像分解为四通道RGGB图像并将其馈送到神经网络中。他们利用卷积神经网络本身来发现RGGB通道之间的关系,使它们能够相互补充以恢复缺失的像素值。然而,在Bayer原始图像中,红色、绿色和蓝色通道以不同的比例采样,绿色通道的采样率是红色和蓝色通道的两倍。现有深度方法并没有充分利用先验。因此,充分利用绿色通道的信息有利于缺失像素值的恢复。在深度学习普及之前,已经提出了几种方法[12,47,25],首先利用绿色通道与红色通道之间以及绿色通道与蓝色通道之间的通道间相关性来恢复绿色通道,然后利用绿色通道与红色通道之间的通道间相关性来恢复RGB通道。

此外,我们发现不同频率的区域在图像重建中有不同的困难程度。知道模型最难处理的区域在去马赛克和去噪过程中是有帮助的。这与图像去噪中的噪声图有一些相似之处,因为不同区域和不同图像的挑战是不同的。不考虑频率差的模型将复杂图案区域与光滑区域等同对待以处理所有可能的情况,这使得模型性能不是最优的。估计图像的密度图并将其输入到模型中,使模型能够处理大范围的频率。

文章贡献:

· 提出了一种具有密度图和绿色通道制导的自制导网络(SGNet),用于联合去马赛克和去噪。

· 我们提出了自适应阈值边缘损失和边缘感知平滑损失两种损失来同时恢复纹理和去除噪声。

· 在合成数据集和真实数据集上的定量和定性实验结果表明,我们的模型优于最先进的方法。

3. 提出方法

3.1 Overview

我们首先对绿色通道的缺失元素进行初步估计,因为在输入I^Bayer_G1和I^Bayer_G2的两个绿色通道中有更丰富的信息。绿色通道I_G的初始估计可作为指导,并应用于主干,以帮助恢复所有通道的缺失元素。

此外,我们计算密度图MD(在第3.2节中讨论)来表示不同区域的难度水平,并将该地图作为主要分支网络的额外输入。

最后给出了用于训练整个模型的损失。

3.2 密度图引导

受噪声图在图像去噪[45]中的成功启发,我们设计了密度图,让网络知道输入图像每个位置的难度等级。在密度图中,纹理密集的区域对应高频模式,纹理较少的区域对应低频模式。其计算公式为:

其中,g1/g2是半径分别对应K1/K2的高斯模糊滤波,h是一个正则化函数,I_gray是四个通道的平均。

一旦估计了密度图,我们采取一种简单的方法将其合并,将其连接到其他通道。

其中noise map表示训练过程中添加的高斯噪声水平。

3.3 绿色通道引导

      得到Gr/Gb两个不同位置的绿色通道图以及估计噪声图,将其输入值RRDB(Residual-in-Residual Dense Block)模块。RRDB包含多级剩余连接和密集连接,允许充分地探索和提取局部信息。

      反马赛克任务与超分辨率有一些相似之处,因为这两个任务都需要恢复缺失的元素,并且本质上需要进行2倍的上采样。因此,类似于图像超分辨率的工作

       在这项工作中,如图2所示,我们提出了一种新颖的方式来引导主重构分支。对主重构分支的中间特征映射进行空间自适应卷积运算[32],使积分过程自适应绿色通道I G的内容。自适应卷积计算公式为:

3.4 训练损失

整个网络模型可以在初始绿色通道估计损失最终RGB图像重建损失的情况下进行训练。此外,我们还引入了两个额外的损失来进一步监督模型的训练,以获得更好的去马赛克和去噪性能。

3.4.1 自适应阈值边缘损失

尽管如上所述,通过额外的密度图MD,网络被告知每个像素的难度水平,但输入图像中的每个像素都受到相同强度的监督。然而,在训练过程中,具有许多高频细节的区域比容易恢复的区域更重要,应该引起更多的注意。我们提出了一种自适应阈值边缘损失来解决这个问题。

首先使用一个canny edge detector来获得I_O(image output)和I_T(image target)的边缘E(I_O)和E(I_T),但是固定低阈值的Canny边缘检测器不能满足图像中的每个局部区域。我们将一张图像分成几个小块,Pi, i = 1,2,…, n,并为每个值找到一个自适应阈值。我们提高边缘多的小块的低阈值,降低边缘少的小块的低阈值。低阈值θi, i = 1,2,…, n,计算公式如下:

通过计算检测到的边缘像素的比例,得到p(E(P_i, \thera_i))然而,在自然图像中,大多数像素属于非边缘区域,只有一小部分像素对应于边缘。与[44]类似,我们在计算交叉熵损失时引入了一个平衡权值β,如式所示。

这个损失首先是保证recoverdemosaic output能够保持和target一样丰富的边缘信息,并且进一步引入不同patch内边缘的密度,以及一个纹理背景平衡的权重,来保证重点边缘信息不会被淹没。

整个过程如图4所示

3.4.2 边缘损失

为了达到较好的去噪效果,采用全变分(TV)正则化来平滑噪声和非预期伪影。然而,在充满纹理图案的区域,TV损失不起作用。因此,我们提出了一种边缘感知平滑损失:

在光滑的区域,它比在纹理和边缘丰富的区域要大。利用这种边缘感知的平滑损失,模型学习在平滑区域去除噪声的同时,在纹理区域保持边缘。

3.4.3 最终损失

Ll1损失是output image和GT之间的L1 loss,而L_g是预测绿色通道和对应GT之间的L1 loss

4. 实验

4.1 数据集

合成数据集

        训练集 DIV2K、 Flickr2K

        测试集 MIT moire、Urban100

真实数据集

        训练集  Pixelshift200

        测试集 Dense texture、Sparse texture

所有图像被随机裁剪成大小为128×128的小块,并用σ∈[0,16]的高斯噪声进行扰动。

4.2 实现细节

参数λ1和λ2分别设为5和50。λ3 = 30−niter * 27/700000,其中niter为训练迭代次数。λ3之所以这样定义,是因为绿色通道重建在训练的早期阶段得到了更多的重视,而在训练的后期得到了较少的重视。

式6中的θ0和k分别为1和4。

4.3 消融实验

4.4 Comparison with State-of-the-Art

4.5 定性分析

5. 结论

我们提出了一种新的自导向网络(SGNet),用于联合去马赛克和去噪。绿色通道的空间自适应引导具有内容意识。SGNet去除彩色伪影,同时保留图像细节。我们的方法明显优于其他最先进的JDD模型。此外,SGNet在联合去马赛克、去噪和超分辨率方面取得了最好的效果。未来,我们将探索更多的先验信息,以提高联合去马赛克和去噪的性能。

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

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

相关文章

自定义注解验证数据字典选项及bean注入问题

我们在工作中经常需要对字典选项进行定义,如果客户端传来的字典项不符合要求,那么根本无法保存,但是已有的注解并没有字典值的验证,那我们就自己实现一个 一、自定义字典值验证的注解DictValid import javax.validation.Constra…

pycharm 创建vue并实现简易路由功能

使用pycharm创建vue项目时,选择vite来创建vue。为什么使用vite?因为vite是专门针对vue开发的打包框架,以前使用vue-cli来创建vue项目,就是使用的webpack来进行打包的,现在有了vite,就尽量使用vite来创建vue…

备战春招——12.3 算法

哈希表 哈希表主要是使用 map、unordered_map、set、unorerdered_set、multi_,完成映射操作,主要是相应的函数。map和set是有序的,使用的是树的形式,unordered_map和unordered_set使用的是散列比表的,无序。 相应函数…

RabbitMQ 消息中间件 消息队列

RabbitMQ1、RabbitMQ简介 RabbiMQ是⽤Erang开发的,集群⾮常⽅便,因为Erlang天⽣就是⼀⻔分布式语⾔,但其本身并不⽀持负载均衡。支持高并发,支持可扩展。支持AJAX,持久化,用于在分布式系统中存储转发消息&a…

福德植保无人机案例:无人机种地的那些事儿

大家好,今天我要给大家介绍一个非常有趣的案例,那就是我们的福德植保无人机工厂。这个工厂可不简单,它可是无人机植保领域的佼佼者,让我们一起来看看他们的故事吧!首先,让我们来了解一下无人机植保这个概念…

ROS-ROS通信机制-话题通信

文章目录 一、话题通信基础知识二、话题通信基本操作2-1 C2-2 Python2-3 C与python节点通信 三、自定义msg3-1 自定义msg3-2 C实现自定义msg调用3-3 Python实现自定义msg调用 一、话题通信基础知识 话题通信实现模型是比较复杂的,该模型如下图所示,该模型中涉及到三…

Kubernetes(K8s) Ingress介绍-08

Ingress介绍 在前面课程中已经提到,Service对集群之外暴露服务的主要方式有两种:NotePort和LoadBalancer,但是这两种方式,都有一定的缺点: NodePort方式的缺点是会占用很多集群机器的端口,那么当集群服务…

中级工程师评审条件:如何成为一名合格的中级工程师

作为一名工程师,不仅需要具备扎实的技术基础和实践能力,还需要通过评审来证明自己的能力水平。在成为一名合格的中级工程师之前,你需要满足一系列评审条件。甘建二今天将详细介绍中级工程师评审的要求和标准,帮助你成为更优秀的工…

树_左叶子之和

//给定二叉树的根节点 root ,返回所有左叶子之和。 // // // // 示例 1: // // // // //输入: root [3,9,20,null,null,15,7] //输出: 24 //解释: 在这个二叉树中,有两个左叶子,分别是 9 和 15,所以返回 24 //…

geoserver维度time

postgis创建date类型的字段 写入测试数据,对应flag,flag有不同的样式,这样方便观测 geoserver发布图层的时候设置“维度”启用 测试,设置了根据flag展示不同的颜色

外卖平台推荐算法的优化与实践

目录 引言 一、推荐算法的原理 二、推荐算法的挑战 三、实际案例分析 四、优化推荐算法的策略 五、结论 引言 在当今数字化社会,外卖平台成为了人们生活中不可或缺的一部分。为了提供更加个性化、高效的服务,外卖平台使用推荐算法成为了一项关键技…

深度学习算法:探索人工智能的前沿

目录 引言 第一部分:深度学习的基础 1.1 什么是深度学习? 1.2 神经网络的演化 第二部分:深度学习的关键技术 2.1 卷积神经网络(CNN) 2.2 循环神经网络(RNN) 2.3 长短时记忆网络&#xf…

python自学之《艾伯特用Python做科学计算》(1)——(待完善)

好吧,刚开始就打了一波而广告 啄木鸟社区的Python图书概览: http://wiki.woodpecker.org.cn/moin/PyBooks (22/388)

ASP.NET 网上选课系统的设计与实现

1 系统设计与实现 1.1 数据库设计 为充分保护数据的一致性,数据库中各表都规范化设计,下图是系统数据库中使用的表以及各表之间的关系: 下面就各个表分别给出说明: (1)课程基本信息(CourseInfo)表&#x…

反序列化漏洞详解(三)

目录 一、wakeup绕过 二、引用 三、session反序列化漏洞 3.1 php方式存取session格式 3.2 php_serialize方式存取session格式 3.3 php_binary方式存取session格式 3.4 代码演示 3.5 session例题获取flag 四、phar反序列化漏洞 4.1 phar常识 4.2 代码演示 4.3 phar例…

网络图片转化成base64

也许今天比较无聊,突然想前端怎么把图片缓存的本地?如果是数据流,直接保存到localStorage,但是如果是网络url地址怎么办?存个url肯定没有什么意义,苦思冥想还是把图片保存为base64格式,这又遇到…

MDK ARM环境下的伪指令的测试

目录 测试目标: 测试代码: 1. start.s 2. align.s 测试结果: 1 .ldr伪指令的测试结果: 2 .align伪操作测试结果: 结果分析: 测试目标: 熟悉ARM处理器的伪指令,本次实验主要来练习ldr伪指令和align…

你不得不知道的工业镜头使用中的常见问题

镜头的基本功能就是实现光束变换(调制),在机器视觉系统中,工业镜头的主要作用是将目标成像在图像传感器的光敏面上。工业镜头是机器视觉系统设计的重要环节。在实际应用过程中,会遇到以下常见问题。 1、Q:…

力扣543. 二叉树的直径(java DFS解法)

Problem: 543. 二叉树的直径 文章目录 题目描述思路解题方法复杂度Code 题目描述 给你一棵二叉树的根节点,返回该树的 直径 。 二叉树的 直径 是指树中任意两个节点之间最长路径的 长度 。这条路径可能经过也可能不经过根节点 root 。 两节点之间路径的 长度 由它们…

OGG实现Oracle19C到postgreSQL14的实时同步

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…