Learning Continuous Image Representation with Local Implicit Image Function

news2025/7/19 17:28:11
  • CVPR2021
  • https://github.com/yinboc/liif
  1. 问题引入
  • 图像普遍都是使用像素来表示的,而现实世界是连续的,所以本文借鉴3D中neural implicit representation的思想,以连续的方式表示图像;
  • 模型输入坐标值和坐标附近的特征,得到该坐标处的像素值,而坐标是连续的,从而得以连续的表示图像;
  • 因为连续的特性,使得可以以任意scale来完成超分辨率的任务;
  1. 方法
  • 本文中一张连续图片 I ( i ) I^{(i)} I(i)由2d的feature map M ( i ) ∈ R H × W × D M^{(i)}\in \mathbb{R}^{H\times W\times D} M(i)RH×W×D和decoding function f θ f_\theta fθ组成,其中 s = f θ ( z , x ) s = f_\theta(z,x) s=fθ(z,x) s s s表示像素值, z z z表示某坐标的feature vector, x x x表示坐标,对于某点的连续图像上指定坐标点 x q x_q xq的像素值的求取分两种情况:
    – 没有local ensemble, I ( i ) ( x q ) = f θ ( z ∗ , x q − v ∗ ) I^{(i)}(x_q) = f_\theta(z^*,x_q-v^*) I(i)(xq)=fθ(z,xqv),其中 z ∗ z^* z表示离所求点最近的feature vector, v ∗ v^* v是对应的坐标;
    – 有local ensemble,主要是上面那种求解方法会导致对于求解的点对应的latent code vector在中间线突变的情况,所以采取的类似于差值的操作: I ( i ) ( x q ) = ∑ t ∈ { 00 , 01 , 10 , 11 } S t S ⋅ f θ ( z ∗ , x q − v ∗ ) I^{(i)}(x_q) = \sum_{t\in\{00,01,10,11\}}\frac{S_t}{S}\cdot f_\theta(z^*,x_q-v^*) I(i)(xq)=t{00,01,10,11}SStfθ(z,xqv),也就是距离所求点的左上、左下、右上、右下四个点求像素值然后做加权和,其权值是所求点和当前点所围矩形的对角矩形的面积,权值进行了归一化,这样就是距离所求点越近的点的权重越大;下面两点式对模型的两点补充;
  • 为了丰富latent code包含的信息,进行了feature unfolding的操作,使得 M ( i ) → M ^ ( i ) M^{(i)}\rightarrow \widehat{M}^{(i)} M(i)M (i),现在的latent code是原来latent code 3 × 3 3\times 3 3×3范围内的latent code的拼接: M ^ j k ( i ) = C o n c a t ( { M j + l , k + m ( i ) } l , m ∈ { − 1 , 0 , 1 } ) \widehat{M}^{(i)}_{jk} = Concat(\{{M}^{(i)}_{j+l,k+m}\}_{l,m\in \{-1,0,1\}}) M jk(i)=Concat({Mj+l,k+m(i)}l,m{1,0,1});边缘补0;
  • 在预测某个坐标点的像素值的时候,只给定坐标值,此时忽略了像素的尺寸,所以还加上cell decoding操作,将原来的decoding操作变为 s = f c e l l ( z , [ x , c ] ) s = f_{cell}(z,[x,c]) s=fcell(z,[x,c])
  • 模型的训练:首先有一张高分的图片,作为gt,得到的有 x h r , s h r x_{hr},s_{hr} xhr,shr,然后随机选择一个scale,对高分图片进行降采样得到模型的输入;模型包含两部分,encoder E ψ E_\psi Eψ,将降采样之后的图片编码得到其LIIF表示,还有是 f θ f_\theta fθ是一个mlp;有了坐标 x h r x_{hr} xhr和latent code之后经过 f θ f_\theta fθ得到预测的像素值,和真实的像素值计算损失;
    在这里插入图片描述
  1. 实验
  • 数据集:训练(DIV2K dataset),评测(DIV2K dataset,Set5, Set14, B100, Urban100);
  • 评测的时候除了评测scale 1x-4x的,还评测了训练中没有的6x-30x,主要对比的方法是MetaSR;
  • 实现细节:输入固定为 48 × 48 48\times 48 48×48,假设bs为 B B B,那么采样 B B B个scale r 1 ∼ B r_{1\sim B} r1B,之后再原高分图上crop出 { 48 r i × 48 r i } i = 1 B \{48r_i\times 48r_i\}^B_{i=1} {48ri×48ri}i=1B个对应的高分图像作为gt,对于bs的每一项,都采样 4 8 2 48^2 482个sample来计算损失;

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

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

相关文章

区块链 | NFT 水印:Review on Watermarking Techniques(二)

🍍原文:Review on Watermarking Techniques Aiming Authentication of Digital Image Artistic Works Minted as NFTs into Blockchains 1 半脆弱和可逆水印 鲁棒性好的水印技术通常会产生非常低透明度。正如前面所述,由于透明度在处理数字…

OpenGL 入门(四)—— 贴纸与美颜滤镜

本篇我们来介绍贴纸效果与美颜滤镜的实现。 1、贴纸效果 贴纸实际上是一个图片,用 Bitmap 加载图片后用 OpenGL 渲染到指定的位置上。我们举例添加一个耳朵贴纸: 1.1 获取人脸位置 上一篇我们在讲大眼滤镜时,在 Native 层除了获取到人脸 5…

【数据库表的约束(下)】

文章目录 一、自增长主键二、唯一键约束三、外键约束总结 一、自增长主键 这个约束的功能是: 你不用管我,也不需要插入我这一列的数据,我会保证自己与其他数据不冲突,并且是连续的。 创建一个表,表格内容如下&#x…

Tkinter组件:Checkbutton

Tkinter组件:Checkbutton Checkbutton(多选按钮)组件用于实现确定是否选择的按钮。Checkbutton 组件可以包含文本或图像,你可以将一个 Python 的函数或方法与之相关联,当按钮被按下时,对应的函数或方法将被…

保护公司机密:避免员工带着数据说拜拜

公司的核心资产之一就是数据。无论是客户信息、研发代码、内部决议、财务报告、商业合同、设计图纸等都是公司的重要资产。如果这些数据在员工离职时被带走,或在员工在职期间不当行为导致数据泄露,将给公司带来重大损失。 然而,保护这些数据…

大模型微调之 在亚马逊AWS上实战LlaMA案例(四)

大模型微调之 在亚马逊AWS上实战LlaMA案例(四) 在 Amazon SageMaker JumpStart 上微调 Llama 2 以生成文本 Meta 能够使用Amazon SageMaker JumpStart微调 Llama 2 模型。 Llama 2 系列大型语言模型 (LLM) 是预先训练和微调的生成文本模型的集合&#x…

漏洞伴随App无时不在,该怎么办?

漏洞攻击、加密被破坏以及数据泄露是App面临的三大重要安全风险,无论开发者如何防范,攻击者往往会找到新的方法,并依靠最新的工具来破坏App安全性。 统计数据表明,大约82%的漏洞是在App程序代码中发现的。如果尽快发现…

百度百科怎么修改词条

百度百科是一个由网民编辑内容的网络百科全书,支持用户添加或修改词条。以下是关于如何修改百度百科词条的详细步骤和注意事项。 1. 登录百度百科账户 首先,你需要登录到百度百科账户。如果你还没有百度账号,你需要先注册一个。注册完成后&a…

【vue+el-upload】当action=“#“,代表不使用默认上传,使用自定义上传,http-request获取文件流

el-upload有多种上传行为: 1、立即上传: 当 action 属性被赋予一个有效的 URL 时,一旦用户选择了文件,el-upload 组件会立即自动将文件上传到指定的服务器地址。 2、不立即上传(自定义触发): 如…

2024-5-3学习笔记 虚拟继承原理

目录 原理 总结 前面提到过,解决菱形继承产生的数据二义性问题和数据冗余,就需要用到虚拟继承,关于它是如何解决的,我们来一起研究。 class Person { public :string _name ; // 姓名 }; class Student : virtual public Perso…

微软exchange邮箱发送

使用java发送exchange类型的邮件&#xff0c;foxmail中配置如下图&#xff1a; 需要的maven依赖如下&#xff1a; <dependency><groupId>com.microsoft.ews-java-api</groupId><artifactId>ews-java-api</artifactId><version>2.0</ve…

以gitee为例的git入门使用指北

安装git 在linux中我们首先需要使用 sudo apt install git来下载git 在windows中可以下载msysGit 链接&#xff1a;https://git-scm.com/download/win gitee准备 申请账号 建立仓库 ​ 点击新建仓库 这里一般是私有库&#xff0c;点击创建&#xff0c;这时你就拥有一个线上…

LearnOpenGL(九)之材质

一、材质 在现实世界里&#xff0c;每个物体会对光产生不同的反应。比如&#xff0c;钢制物体看起来通常会比陶土花瓶更闪闪发光&#xff0c;一个木头箱子也不会与一个钢制箱子反射同样程度的光。在opengl中&#xff0c;我们可以针对每种表面定义不同的材质(Material)属性来模…

Web自动化测试入门:前端页面的组成分析详解!

在进行Web自动化测试时&#xff0c;了解前端页面的组成是非常重要的&#xff0c;因为页面的不同元素和交互会直接影响测试的实施和结果。本文将从0到1详细规范地介绍前端页面的组成。 1. 页面结构 一个典型的前端页面通常由HTML、CSS和JavaScript三部分组成。HTML负责页面的整…

STL速查

容器 (Containers) 图解容器 支持随机访问 stringarrayvectordeque支持支持支持支持 string 类 构造函数 string(); ------创建一个空的字符串 例如: string str;string(const char* s); ------使用字符串s初始化string(const string& str); ------拷贝构造 赋值操作…

Spring中FactoryBean的作用和实现原理

Spring中FactoryBean的作用和实现原理 BeanFactory与FactoryBean&#xff0c;相信很多刚翻看Spring源码的同学跟我一样很好奇这俩货怎么长得这么像&#xff0c;分别都是干啥用的。 BeanFactory是Spring中Bean工厂的顶层接口&#xff0c;也是我们常说的SpringIOC容器&#xff…

pip install flash_attn 报错

目录 报错截图关键问题nvcc -V 查看 cuda 版本查看 usr/local/cuda-* 安装的cuda版本设置 cuda-12.0 &#xff08;添加入环境变量&#xff09;FlashAttention 安装成功 报错截图 ImportError: This modeling file requires the following packages that were not found in you…

OSPF Stub区域

原理概述 OSPF 协议定义了多种区域&#xff08; Area &#xff09;类型&#xff0c;其中比较常见的有 Stub 区域和 Totally Stub 区域。区域的类型决定了在这个区域当中所存在的 LSA 的类型。 Stub 区域不允许 Type-4和 Type-5 LSA 进入&#xff0c;该区域会通过 Type-3 LSA…

Elasticsearch中的三种分页策略深度解析:原理、使用及对比

码到三十五 &#xff1a; 个人主页 在Elasticsearch中&#xff0c;分页是查询操作中不可或缺的一部分。随着数据量的增长&#xff0c;如何高效地分页查询数据急需需要面对的问题。Elasticsearch提供了三种主要的分页方式&#xff1a;from size、scroll和search_after。下面详细…

【Kubernetes集群一主二从安装教程】

文章目录 环境准备主机间做信任安装ansible工具 升级内核版本使用elrepo源升级内核查看最新版内核安装最新的内核版本设置系统默认内核设置默认内核为我们刚才升级的内核版本 初始化关闭防火墙关闭selinux关闭swap修改主机名修改hosts文件将桥接的IPv4流量传递到iptables的链配…