论文阅读 Self-Supervised Burst Super-Resolution

这是一篇 ICCV 2023 的文章,主要介绍的是用自监督的方式进行多帧超分的学习

Abstract

这篇文章介绍了一种基于自监督的学习方式来进行多帧超分的任务,这种方法只需要原始的带噪的低分辨率的图。它不需要利用模拟退化的方法来构造数据,而且模拟退化的方法又可能存在域差异的问题,可能无法匹配真实场景下的图像分布。另外,它也不同于那种同时拍摄手机和高清单反的弱配对的方法,弱配对的方法,需要进行实际的数据的采集,无法实现大规模的数据构造,而且也不用担心会出现手机与单反的颜色差异问题。为了避免模拟退化以及采集数据对的这些问题,文章提出利用自监督学习的方法,从低清带噪图像中直接学习超分模式。文章作者也说,这个方法对动态场景也很鲁棒,而且实验结果也表明,这个自监督学习的方法,相比有监督,或者弱监督的方法,效果也是不相上下的。

Method

这篇文章的出发点,建立于以下的观测,一组低清带噪图像,可以看做是一张高清图像的采样,考虑到手持拍摄时的相机抖动,这组低清图可以看成是对高清图微小邻域的采样,存在一定的信息互补。如下图所示:

在这里插入图片描述

接下来详细介绍文章的方法,给定一组 N N N 张低清带噪图像, B = { b i } i = 1 N B=\{b_i\}_{i=1}^{N} B={bi}i=1N,将其分成两部分,一部分是 B m o d e l = { b i } i = 1 K B_{model}=\{b_i\}_{i=1}^{K} Bmodel={bi}i=1K,这部分用于模型预测高清图像,另外一部分是 B u n s e e n = { b i } i = K + 1 N B_{unseen}=\{b_i\}_{i=K+1}^{N} Bunseen={bi}i=K+1N,用来构建自监督训练的损失函数。首先,第一部分,通过一个 SR 模型,可以获得一张高清图像, y ^ = f ( B m o d e l ) \hat{y} = f(B_{model}) y^=f(Bmodel),然后,基于这张预测得到的高清图像 y ^ \hat{y} y^,再经过一个模拟退化过程,得到一个低清图像:

b i ^ = ∏ m i , k ( f ( B m o d e l ) ) (1) \hat{b_i} = \prod_{m_i, k}(f(B_{model})) \tag{1} bi^=mi,k(f(Bmodel))(1)

$ \prod_{m_i, k}$ 表示了一个退化流程,将高清图像经过配准,模糊,以及采样,得到一张低清图像:

∏ m i , k ( y ) = H D k Φ m i ( y ) (2) \prod_{m_i, k}(y) = HD_{k}\Phi_{m_i}(y) \tag{2} mi,k(y)=HDkΦmi(y)(2)

Φ m i \Phi_{m_i} Φmi 表示为了补偿相机抖动所做的配准操作, D k D_k Dk 表示模拟镜头的模糊, H H H 表示采样操作。模拟退化的结果与真实的低清图进行比较,计算损失函数:

L = 1 N − K ∑ i = K + 1 N ∥ b i − ∏ m i , k ( f ( B m o d e l ) ) ∥ 1 (3) \mathcal{L} = \frac{1}{N-K} \sum_{i=K+1}^{N} \left \| b_i - \prod_{m_i, k}(f(B_{model})) \right \|_{1} \tag{3} L=NK1i=K+1N bimi,k(f(Bmodel)) 1(3)

整体的流程如下所示:

在这里插入图片描述

从文章介绍的方法来看,这个思路还是比较直观的,从任务来看,这是一个多帧超分的任务,那么输入必然是多帧带噪的低清图,输出必然有高清图,然后要实现自监督学习,那么既然高清图没有 GT,那就得换个方法,将实际的低清图做监督,为了能得到预测的低清图,所以需要在超分模型后面,再接一个退化模拟的过程,这个退化模拟过程只是为了训练的时候用,实际预测的时候,还是只有那个超分模型。

Motion Estimation

在实际场景中,由于手持相机的抖动,多帧之间存在运动偏差,这些运动偏差是多帧信息存在互补,可以融合的前提,但是也带来了配准的问题,这篇文章将多帧之间的运动信息,用一个像素级的稠密光流场来表示,文章中也提到用一个离线训好的 PWC-Net 来做帧间配准。考虑到,直接计算高清图像 y y y (RGB) 与低清带噪图像 b b b (RAW) 之间的配准,可能存在颜色差异的问题,所以文章中计算的是低清图像 b b b 之间的运动信息,因为 y y y b 1 b_1 b1 对齐,而如果其它帧也与 b 1 b_1 b1 对齐,那么 y y y 与其它帧也是对齐的。

考虑到真实场景的复杂性,比如噪声,场景中物体的运动等,多帧之间的配准也不是全部都有效,有些区域的配准可能是错误的,为了剔除这些错误区域的配准,提升融合的鲁棒性及效果,文章中还设置了一个二值化的 mask,这个 mask 可以帮助模型识别哪些区域的配准正确的,哪些区域是配准错误的,结合这个 mask 的引导,可以让图像的融合更为准备。这个 mask 的计算基本是基于求差结合形态学的滤波实现。最终的损失函数是如下所示:

L = 1 N − K ∑ i = K + 1 N ∥ v i ⊙ ( b i − ∏ m i , k ( f ( B m o d e l ) ) ) ∥ 1 (4) \mathcal{L} = \frac{1}{N-K} \sum_{i=K+1}^{N} \left \| v_{i} \odot (b_i - \prod_{m_i, k}(f(B_{model}))) \right \|_{1} \tag{4} L=NK1i=K+1N vi(bimi,k(f(Bmodel))) 1(4)

Blur Kernel Estimation

模糊核的估计,文章中是通过学习的方法,将模糊核设置成一个可学习的模块,通过大量的数据学习模糊核的参数,这个模糊核的大小文章中指定了是 9 × 9 9 \times 9 9×9 的。

最后是实验展示部分,从文章展示的效果来看,比一些模拟退化或者弱监督的方法还要好。

在这里插入图片描述
在这里插入图片描述

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

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

相关文章

ffmpeg写YUV420文件碰到阶梯型横线或者条纹状画面的原因和解决办法

版权声明:本文为CSDN博主「文三~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/asdasfdgdhh/article/details/112831581 留作备份 阶梯型横线: 条纹状画面…

ASP .net core微服务实战(杨中科)

背景: 主要是思考下,我们为什么要用微服务? 微服务我现在理解是:提供了我们一种模块化的手段,一个服务负责一种类型的业务,是一种面对复杂问题进行拆分的方式,但是也会引入一些中间件&#xf…

算法每日一题: 删除排序列表中的重复元素 | 链表的删除

大家好,我是星恒 今天给大家带来的是一道简单的链表删除题,题目很简单,不过可以帮助我们很好的复习链表的删除,尤其适合基础薄弱的友友们学习 ~ 题目:leetcode 83 给定一个已排序的链表的头 head , 删除所有…

【k8s】Kubernetes 声明式 API、命令式

1. 资源管理方式: 1>. 命令式对象管理∶直接使用命令去操作kubernetes资源 kubectl run nginx-pod --imagenginx:1.17.1 --port802>. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源 kubectl create/patch -f nginx-pod.yaml3>. 声明式对…

Git相关3 —— 命令及添加Gitee的公钥

1.Git相关命令1 -- 工作目录、暂存区、本地仓库、 使用平台有:cmd、Git bash、VSCode window系统修改VSCode默认终端为git bash git init 初始化 --- 新增.git 文件夹 git status 查看 文件/文件夹 状态 git add 需要追踪的文件名/文件夹名 提交到暂存区 git add…

【办公类-19-01】20240108图书统计登记表制作(23个班级)EXCEL复制表格并合并表格

背景需求: 制作一个EXCEL模板,每个班级的班主任统计 班级图书量(一个孩子10本,最多35个孩子350本) EXCEL模板 1.0版本: 将这个模板制作N份——每班一份 项目:班级图书统计表 核心:一个EXCEL模板批量生成…

阳光保险选择OceanBase稳定运行超700天

阳光保险集团成立于 2005 年 7 月,旗下拥有财产保险、人寿保险、信用保证保险、资产管理等多家专业子公司,是全球市场化企业中成长最快的集团公司之一,目前位列中国保险行业前八。随着数字化升级趋势的不断加速,很多企业产生将软硬…

数据库练习题

素材: 表名:worker-- 表中字段均为中文,比如 部门号 工资 职工号 参加工作 等 CREATE TABLE worker ( 部门号 int(11) NOT NULL, 职工号 int(11) NOT NULL, 工作时间 date NOT NULL, 工资 float(8,2) NOT NULL, 政治面貌 varchar(10) NO…

【AIGC】IP-Adapter:文本兼容图像提示适配器,用于文本到图像扩散模型

前言 IPAdapter能够通过图像给Stable Diffusion模型以内容提示,让其生成参考该图像画风,可以免去Lora的训练,达到参考画风人物的生成效果。 摘要 通过文本提示词生成的图像,往往需要设置复杂的提示词,通常设计提示词变…

网络安全技术新手入门:在docker上安装dvwa靶场

前言 准备工作:1.已经安装好kali linux 步骤总览:1.安装好docker 2.拖取镜像,安装dvwa 一、安装docker 输入命令:sudo su 输入命令:curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key …

结构型设计模式——适配器模式

适配器模式 这个更加好理解,就是做适配功能的类,例如,现在手机没有了圆形耳机接口,只有Type-C接口,因此你如果还想要使用圆形耳机的话需要买个圆形接口转Type-C的转换器(适配器),这…

Java SE入门及基础(11)

程序调试 1. 什么是程序调试 当程序出现问题时,我们希望程序能够暂停下来,然后通过我们操作使代码逐行执行,观察整个过程中变量的变化是否按照我们设计程序的思维变化,从而找问题并解决问题,这个过程称之为程序调试…

Grind75第9天 | 733.图像渲染、542.01矩阵、1235.规划兼职工作

733.图像渲染 题目链接:https://leetcode.com/problems/flood-fill 解法: 可以用深度优先搜索和广度优先搜索。 深度优先搜索。每次搜索到一个方格时,如果其与初始位置的方格颜色相同,就将该方格的染色,然后继续对…

SSH远程登录协议

一、SSH的介绍 1.1什么是SSH服务器 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录、远程 复制等功能。SSH 协议对通信双方的数据传输进行了加密处理,其中包括用户登录时输入的用户口令,SSH 为…

DNS解析原理和k8s DNS 实践

1. 问题背景 1.1 域名解析异常 近期开发的一个功能,需要在k8s集群容器环境中调用公司内部api,api提供了内网域名,解析内网域名异常导致请求超时,因此梳理了下DNS的知识点。 可以先看到下面👇这段配置,修…

Android 13.0 SystemUI下拉状态栏定制二 锁屏页面横竖屏时钟都居中功能实现一

1.前言 在13.0的系统rom定制化开发中,在关于systemui的锁屏页面功能定制中,由于在平板横屏锁屏功能中,时钟显示的很大,并且是在左旁边居中显示的, 由于需要和竖屏显示一样,所以就需要用到小时钟显示,然后同样需要居中,所以就来分析下相关的源码,来实现具体的功能 2.S…

线性代数——(期末突击)概率统计习题(概率的性质、全概率公式)

目录 概率的性质 题一 全概率公式 题二 题三 概率的性质 有限可加性: 若有限个事件互不相容,则 单调性: 互补性: 加法公式: 可分性: 题一 在某城市中共发行三种报纸:甲、乙、丙。在这个…

css宽度适应内容

废话不多说,看如下demo,我需要将下面这个盒子的宽度变成内容自适应 方法有很多,如下 父元素设置display:flex 实现子元素宽度适应内容 如下给父元素设置flex能实现宽度自适应内容 <!DOCTYPE html><html lang"en"><head><meta charset"U…

【K12】Python写分类电阻问题的求解思路解析

分压电阻类电路问题python程序写法 一个灯泡的电阻是20Ω&#xff0c;正常工作的电压是8V&#xff0c;正常工作时通过它的电流是______A。现在把这个灯泡接到电压是9V的电源上&#xff0c;要使它正常工作&#xff0c;需要给它______联一个阻值为______的分压电阻。 解决思想 …

基于Jackson封装的JSON、Properties、XML、YAML 相互转换的通用方法

文章目录 一、概述二、思路三、实现四、测试 一、概述 我们在 yaml转换成JSON、MAP、Properties 通过引入 实现了JSON、Properties、XML、YAML文件的相互转换&#xff0c;具体的类、方法如下&#xff1a; 上面的实现&#xff0c;定义了多个类、多个方法&#xff0c;使用太不…