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

news2025/6/11 8:05:52

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.coloradmin.cn/o/1278064.html

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

相关文章

【Unity入门】声音组件AudioSource简介及实现声音的近大远小

AudioSource组件 将需要播放声音的物体挂载Audio Listener组件,实现声音的播放 AudioSource组件属性 (1)AudioClip(音频剪辑):指定播放的音频文件。 (2)Output(音频输…

计算机网络扫盲(2)——网络边缘

一、概述 在计算机网络得到术语中,我们把与因特网相连的计算机或其他设备称为端系统(或者主机),如下图所示,因为它们位于因特网的边缘,所以被称为端系统。因特网的端系统包括了桌面计算机&#xff…

yolov8模型 onnxruntime推理及可视化

参考:https://github.com/ultralytics/ultralytics/blob/main/examples/YOLOv8-ONNXRuntime/main.py 1、yolov8 onnxruntime推理代码 1)导出参考:https://blog.csdn.net/weixin_42357472/article/details/131412851 2)查看保存的模型onnx的输入格式等信息 登录https://n…

论文阅读——Img2LLM(cvpr2023)

arxiv:[2212.10846] From Images to Textual Prompts: Zero-shot VQA with Frozen Large Language Models (arxiv.org) 一、介绍 使用大语言模解决VQA任务的方法大概两种:multi-modal pretraining and language-mediated VQA,即多模态预训练…

第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码)

记第一类瑞利索末菲标量衍射模型的方孔衍射的空间像计算(附python计算代码) RS type 1 衍射空间像计算傅里叶变换采样条件实际计算计算要求傅立叶变换法计算直接卷积方法计算代码傅立叶变换方法直接卷积https://zhuanlan.zhihu.com/p/624292239 Goodman, J. W. (2004). Intro…

RHCE学习笔记(RHEL8) - RH294

Chapter Ⅰ 介绍Ansible ansible ansible是一款开源自动化平台 ansible围绕一种无代理架构构建,在控制节点上安装ansible,且客户端不需要任何特殊的代理软件;ansible使用SSH等标准协议连接受管主机,并在受管主机上运行代码或命令来…

http面试题,三次握手四次挥手

在浏览器中输入网址按下回车经历了一个怎样的过程? 总的来说分为以下几个过程: 1、DNS解析:将域名解析为IP地址; 2、TCP连接:TCP三次握手; 3、发生HTTP请求; 4、服务器处理请求并返回HTTP报文; 5、浏览器解析渲染页面; 6、断开连接…

Linux shell中的函数定义、传参和调用

Linux shell中的函数定义、传参和调用: 函数定义语法: [ function ] functionName [()] { } 示例: #!/bin/bash# get limit if [ $# -eq 1 ] && [ $1 -gt 0 ]; thenlimit$1echo -e "\nINFO: input limit is $limit" e…

文件操作-IO

文件操作-IO 1.认识文件1.什么是文件2.文件路径 2.java中操作文件2.1 File类的用法 3.InputStream和OutputStream的用法 1.认识文件 1.什么是文件 文件是计算机系统中用来存储数据的基本单位。它是一种用于持久性存储数据的命名、有序的数据集合.计算机系统通过文件系统来组织…

使用SpringBoot和ZXing实现二维码生成与解析

一、ZXing简介 ZXing是一个开源的,用Java实现的多种格式的1D/2D条码图像处理库。它包含了用于解析多种格式的1D/2D条形码的工具类,目标是能够对QR编码,Data Matrix, UPC的1D条形码进行解码。在二维码编制上,ZXing巧妙地利用构成计…

CPU 使用率和负载Load

优质博文:IT-BLOG-CN 一、CPU 使用率 CPU使用率是 CPU处理非空闲任务所花费的时间百分比 。例如单核CPU 1s内非空闲态运行时间为0.8s,那么它的CPU使用率就是80%;双核CPU 1s内非空闲态运行时间分别为0.4s和0.6s,那么,…

SQL Server 数据库,使用函数查询统计信息

4.1 在查询中使用函数 在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句,但是为了更方便快捷地完 成大量的任务,SOLServer提供了一些内部函数,可以和SOLServer的SELECT语句联合使用,也可 以与UPDATE和INSERT一起使用&…

【C语言:数据在内存中的存储】

文章目录 1.整数在内存中的存储1.1整数在内存中的存储1.2整型提升 2.大小端字节序2.1什么是大小端2.2为什么有大小端之分 3.整数在内存中的存储相关题目题目一题目二题目三题目四题目五题目六题目七 4.浮点数在内存中的存储4.1浮点数存的过程4.2浮点数取得过程 在这之前呢&…

[ 蓝桥杯Web真题 ]-年度明星项目

目录 引入 介绍 准备 目标 效果 规定 思路 知识补充 解答参考 引入 hello,大家好!我注意到了之前发的一篇蓝桥杯Web应用开发的文章是关注度最高的,可能大部分关注我的小伙伴对蓝桥杯Web应用开发比较感兴趣,或者想要参加…

TA-Lib学习研究笔记(八)——Momentum Indicators 中

TA-Lib学习研究笔记(八)——Momentum Indicators 中 Momentum Indicators 动量指标,是最重要的股票分析指标,能够通过数据量化分析价格、成交量,预测股票走势和强度,大部分指标都在股票软件中提供。 11. …

【el-form】表单label添加?及tooltip

<el-form-item><span slot"label"><el-tooltip :content"tooltip提示框内容" placement"top"><i class"el-icon-question"></i></el-tooltip>{{ $t(menu.status) }}</span><el-radio-gr…

string的模拟

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;能手撕模拟string类 > 毒鸡汤&#xff1a;时间…

动态规划 | 打家劫舍1、2、3

198. 打家劫舍 https://leetcode.cn/problems/house-robber/description/ dp[i] 表示 考虑到下标为 i &#xff08;包括i&#xff09;的房子&#xff0c;可以偷到的最大金额。 dp[i] 有两个状态&#xff0c;分别是 偷 和 不偷。 偷&#xff0c;则需要考虑前 i-2 天的最大金额…

【Element-ui】Checkbox 多选框 与 Input 输入框

文章目录 前言一、Checkbox 多选框1.1 基础用法1.2 禁用状态1.3 多选框组1.4 indeterminate 状态1.5 可选项目数量的限制1.6 按钮样式1.7 带有边框1.8 Checkbox Events1.9 Checkbox Attributes 二、Input 输入框2.1 基础用法2.2 禁用状态2.3 可清空2.4 密码框2.5 带 icon 的输入…

Springboot3+vue3从0到1开发实战项目(二)

前面完成了注册功能这次就来写登录功能&#xff0c; 还是按照这个方式来 明确需求&#xff1a; 登录接口 前置工作 &#xff1a; 想象一下登录界面&#xff08;随便在百度上找一张&#xff09; 看前端的能力咋样了&#xff0c; 现在我们不管后端看要什么参数就好 阅读接口文档…