自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 收藏
  • 关注

原创 troch.nn.functional.grid_sample()详解

grid_sample

2022-07-03 18:56:15 1517 1

原创 Learning Continuous Image Representation with Local Implicit Image Function

简介数据处理以div2k数据集为例,结合本文项目代码(liif)梳理一下训练数据预处理流程:div2k数据集的高分辨率训练集由800张2K图像组成,每张图像尺寸不一,如2040∗1848,2040∗14042040*1848,2040*14042040∗1848,2040∗1404等等,因此需要进行裁剪对于每张图像,如果不设置inp_size参数,默认是将其给随机缩放到1-4倍之间,作为crop_lr图像,原图作为crop_hr图像;如果设置inp_size参数(inp_size=48),是先随机

2022-03-11 19:16:25 8106 6

原创 Meta-SR: A Magnification-Arbitrary Network for Super-Resolution

1. 相关背景本文发表于2019年,一般来说,SISR(single image super resolution,单张图片超分辨率)的工作都是分为两部分,首先将H∗W∗3H*W*3H∗W∗3的图片经过特征提取模块(比如2017年ESDR的残差网络,2018年RDN的稠密残差网络),得到相同尺寸的H∗W∗CH*W*CH∗W∗C的特征图;然后再经过上采样模块(x2或x3或x4的缩放因子)得到超分辨率图像,比如要是上采样模块用了x4,那么最终分辨率就为4H∗4W∗34H*4W*34H∗4W∗3,这种方法的缺点

2022-03-11 17:14:56 1040

原创 OSTeC: One-Shot Texture Completion

1. 相关工作1.1 普通人脸图像的自动生成一般来说使用GAN,特别是styleGAN来生成人脸的图像,但是有个问题人脸的特征难以解耦合:因为它的过程是参数—>参数空间—>图像,顶多来说,我们知道在低分辨率部分的参数控制着人脸的轮廓之类,高分辨率控制着人脸的具体细节,但是如果我想让侧着的人脸给正过来,就不知道该调节哪个部分比较好了对于一张任意的野生图像,我也很难将其投射回styleGAN的原始参数空间因此,为了更好地控制GAN的生成,又有了许多image-image tran

2022-03-07 22:28:22 1345 3

原创 AvatarMe: Realistically Renderable 3D Facial Reconstruction “in-the-wild”

概述与相关工作从野生图像中,缺乏相关的方法能够生成高分辨率、真实感的三维人脸,主要原因是:缺乏可用的训练数据即使有高分辨率数据,也缺乏具有鲁棒性的方法本文提出的AvatarMe方法,是第一种能够基于单张的野生的图像,重建真实感三维人脸的方法PCA方法,虽然能够表示重建人脸的最基本的特征,但是在高频的纹理与几何细节上却有所欠缺,况且也无法表示野生数据中人脸的复杂纹理。随着深度学习的到来,许多编码-解码架构的方法开始被采用,去推理人脸三维几何、反射、光照,但是由于使用的光照模型限制(Lambert

2022-01-18 11:46:18 3728

原创 DeepSDF: Learning Continuous Signed Distance Functions for Shape Representation

相关工作3D形状补全类似于2D的计算机视觉里面的图像修复工作,3D形状补全工作的目的是基于一些部分的或离散的输入,推理出这个3D物体全部的形状。比如说给我几个离散的SDF函数的值,我把整个连续的SDF函数给搞出来,给我任意的输入我都能得到应有的数值。之前传统的方式是使用径向基函数(RBF),或者将其看做是一个泊松问题,但是这些方式是以数学理论为依托的,虽然合理性得到了保证,但是缺点就是一次仅仅只能建模一个单一的3D物体。最近随着深度学习的发展,这种3D补全工作开始以数据为驱动,常用的模型便是编码-解码架

2022-01-16 14:02:51 7197

原创 Optimizing the Latent Space of Generative Networks

1. 概述提出了一种称之为Generative Latent Optimization(GLO)的方法,与GAN相比,免去了生成对抗训练的策略,取得了类似GAN的效果2. GAN的介绍GAN有三个明显的泛化性的迹象:不同图像在latent code空间对应着不同的值,如果把两张图片的值进行插值,那么再经过GAN的生成器,就能生成新的融合两张图像的新的图像,即所谓的:从线性插值到语义插值的转换在latent code空间可以进行线性运算,对应着对图像的各种可能的属性的改变,这意味着我们可以把自然图

2022-01-15 17:02:21 4263 1

原创 用神经网络表示物体或场景与用神经网络完成任务的区别与联系

目录前言二者联系二者区别局部与个体,个体与群体的区别物理约束与抽象约束的区别训练时的更具体的区别前言在读过NeRF,DeepSDF等文章的基础上,结合文章的核心思想与自己做过的idea,总结了一下用神经网络去表示物体或场景与我们一般认知的用神经网络去完成某项任务的区别与联系二者联系神经网络是一个通用的、万能的函数近似器,这个结论已经在数学上被严格证明出来了,所以说,不管我们拿神经网络,用深度学习的方法去做了什么看似神奇的事情,其实从本质上来说,都是建立了一个从输入到输出的映射关系,这个中间过程,其实

2022-01-11 15:59:01 1096 1

原创 Nginx 学习笔记

相关概念Nginx是一个高性能HTTP和反向代理服务器反向代理正向代理是以用户角度来说的,访问外国网站的时候,直接访问不成功,可以在浏览器配置代理服务器,通过代理服务器访问,这就是正向代理反向代理是以服务器角度来说的,客户端不知情,客户端只需要把请求发送到反向代理服务器即可,而反向代理自行选择真实服务器,其实隐藏了真实的服务器地址负载均衡增加服务器的数量以解决高并发的问题,使用反向代理服务器处理分发请求动静分离为了加快网站的解析速度,可以把动态页面(jsp)和静态页面(js,css)由不

2021-12-21 10:39:43 786

原创 c++ string 的常用函数整理

构造string a(string b, int start, int length) :对字符串b的start位置开始截取,截取的长度为length,也就是说a最终长度为lengthstring a(int num, char c) :对字符串c进行num个数量的拷贝操作,作为a的初始值操作void swap(string a, string b):交换字符串a和b的值void append(string c):在后面添加字符串cvoid insert(int start, string

2021-12-21 10:39:06 74

原创 Java基础学习笔记——注解

目录1. 注解基础解释1.1 注解示例——Override2. 自定义注解1. 注解基础解释主要作用:可以被其它相关的程序读取1.1 注解示例——Override要想在其它程序里使用@Override,就得创建这样的一个@interface@Target(ElementType.METHOD)@Retention(RetentionPolicy.SOURCE)public @interface Override {}2. 自定义注解...

2021-12-21 10:38:35 161

原创 Java基础学习笔记——正则表达式

正则表达式String类有一个matches()方法,参数为String regex1. 一个简单的例子需求要求code为5~10位数要求code全部为数字要求code不能以0开头代码 String regex="[1-9][0-9]{4,9}"; String code1="1233424"; String code2="1233424d"; String co...

2021-12-21 10:38:00 76

原创 c++ STL map 用法总结

1. 增使用重载的[]符号进行元素添加 map<string,int> mymap; mymap["song"]++; mymap["zhang"]++; mymap["song"]++; mymap["song"]++; mymap["zhang"]++; mymap["adg"]++; mymap["fefa"]=mymap["fefa"]+1; for(map<string,int>::iterator

2021-12-21 10:37:12 115

原创 机器学习课堂笔记

核方法与核函数主要是为了解决使用超平面进行数据分类问题,有可能将数据映射到一个更到维度就能够使用超平面进行数据分类了。类似于支持向量机,使得所有数据的距离到超平面的距离最小即可,经过计算,发现我们不需要去找到这种低纬度到高纬度的映射方式,而是找到一种计算各个数据之间内积的方式即可:k就是核函数,而经过计算之后发现模型的最优解可以通过训练样本的核函数展开。可以说,核函数隐式地定义了这个映射到的特征空间此外,核函数的各种组合也是核函数PCA和核方法一样,也是一种数据预处理方法,PCA主要

2021-12-21 10:36:30 233

原创 torch学习笔记

关于tensortensor.data是属性,tensor.detach()是方法,返回的数据与原数据是共享的,一者改变另一者也跟着改变;并且默认都是不跟踪梯度,但是tensor.data这样会有风险,因为可能在某个地方数据改变了而我不知道,而detach()设置跟踪梯度之后可以规避风险;我们还可以使用类似NumPy的索引操作来访问Tensor的一部分,需要注意的是:索引出来的结果与原数据共享内存,也即修改一个,另一个会跟着修改tensor默认不追踪梯度tensor.clone()函数返回一个克隆,

2021-12-21 10:35:22 974

原创 OJ 刷题随笔

oj刷题随笔

2021-12-21 10:34:00 117

原创 FaceScape: a Large-scale High Quality 3D Face Dataset and Detailed Riggable 3D Face Prediction

1. 简介本文的贡献:提出了一个大尺度高细节的三维人脸数据集FaceScape,采集938个人的20种表情,共18760个三维人脸数据集三维模型具有孔隙级别的精度,并且被处理成拓扑一致性,如果想查看大致形状可使用3DMM系数,如果想更精细一点再加张位移图即可提出了一种基于单张图片进行三维人脸重建并且可以自由编辑的方法方法原始数据—>拓扑一致(+位移图)—>双线性模型(身份和表情维度)先前的方法只能估计大致形状,没有皱纹等小尺度特征,关键的问题在于如何去预测由表情变化导致的小尺

2021-11-05 22:28:10 3106

原创 GIRAFFE: Representing Scenes as Compositional Generative Neural Feature Fields(CVPR2021 Best paper)

NeRF《On the spectral bias of neural networks》ICML2018 发现尽管神经网络是万能函数近似器,但是它更倾向于学习低频特征,如果在输入信息传递给网络之前,使用高频函数将输入信息映射到更高维度的空间,可以更好地拟合包含高频变化的数据...

2021-08-15 10:47:03 5302 9

原创 StyleRig: Rigging StyleGAN for 3D Control over Portrait Images

1. 简介文章《StyleRig: Rigging StyleGAN for 3D Control over Portrait Images》发表于CVPR2020,讲述了一种操控styleGAN生成我们想要的人脸图像的方法1.1 motivationstyleGAN可以生成逼真的人脸图像,但是缺乏姿态,表情,光照等属性的可控性,因为这些属性在latent code space都是高度耦合的一般的3DMM方法进行三维人脸重建后,渲染出的图像不真实,并且缺乏人脸的其它部分,比如头发,嘴巴内部,背景等

2021-07-15 14:58:18 811

原创 Towards High-Fidelity 3D Face Reconstruction from In-the-Wild Images Using GCN

简介2019年的GANFit方法,第一次使用了GAN网络去生成高保真的人脸纹理图,训练好GAN之后,通过可微渲染去优化latent code。缺点便是训练GAN网络需要大量的人脸纹理图,而这些图像获取是很困难的。贡献如下:提出了一个由粗到细的框架,重建高保真的面部纹理图,解决了之前方法的需要大量纹理图数据的问题第一次将GCN应用在高保真面部纹理重建上,取得较好的效果...

2021-07-15 12:45:05 749

原创 IMAGE GANS MEET DIFFERENTIABLE RENDERING FOR INVERSE GRAPHICS AND INTERPRETABLE 3D NEURAL RENDERING

相关工作从2D重建3D一方面的工作是基于三维标注的数据集,用神经网络预测三维信息,但是多数的三维数据集本身就是合成的,与真实世界的图像还是有一定的差距的,因此限制了这些方法的表征范围。可微分渲染通过将传统渲染过程可微,不再依赖三维数据集,在合成数据集ShapeNet上取得了较好的效果,然而在一些真实数据集上因为需要手工标注的关键点,导致结果不是那么精确。一些工作探索了无监督方法进行重建,通过添加一些额外的自监督限制(应该是各种损失函数),但是重建限制在了2.5D并且在添加额外监督后效果又变得不好了

2021-06-14 20:33:48 548 2

原创 可微分渲染:Learning to Predict 3D Objects with an Interpolation-based Differentiable Renderer

目录1. 可微渲染简介2. DIB-R原理3. 可微渲染进行三维重建流程1. 可微渲染简介三维的物体渲染成二维图像的时候,其实本质上是进行了一系列矩阵变换,插值等操作,这和神经网络有一定的相似之处,渲染相当于前向传播,得到渲染图,而渲染图和输入图像相比较可以定义loss,从而进行反向传播,去优化三维物体的形状与纹理,从而实现基于单张图像的三维重建,并且不再受3D数据集依赖。当然渲染的过程实现方法有很多,可以自己写shader,也有很多优化,并且是不支持可微操作的,因此可微分渲染的主要难点是去定义一个整

2021-06-14 18:07:44 7259

原创 Inverting Generative Adversarial Renderer for Face Reconstruction

相关研究介绍目前的主流人脸三维重建技术大致分为两类方式,基于学习的方式与基于优化的方式。基于学习的方式,是借助CNN来回归控制人脸三维结构的3DMM系数,但是缺点便是依赖三维标注数据集,而3DMM的真实值其实是很难获取到的,这种三维数据集非常稀缺;基于优化的方式,是将所输入的二维人脸图像看做是一个生成的过程,由一系列的参数控制,如albedo(可以理解为人脸表面的不加光照的基础颜色)、纹理、光照、观察角度等,按照特定的渲染图像的法则最终计算出来二维人脸图像,而这样我们就可以通过比较渲染图像与输入图像的差异

2021-05-24 00:12:56 1196 1

原创 3DCaricShop: A Dataset and A Baseline Method for Single-view 3D Caricature Face Reconstruction

文章概述3DCaricShop指的是文章提出的一种数据集,而这篇文章是关于二维讽刺漫画(标题里是caricture,个人觉得翻译成讽刺漫画更加合适)的单视图三维重建。关于单视图三维人脸重建的研究有很多,这篇文章算是在这个领域的一个更小的分支(讽刺漫画人脸)做出了一些工作,可以主要概括为如下几点:做出了3DCaricShop这样一个数据集,算是该领域的第一个大规模数据集对于单视图讽刺漫画三维人脸重建,提出了一种baseline方法当然这两点还有许多细节,后面慢慢道来相关工作关于数据集基于2D

2021-05-01 19:54:04 757

原创 3D Face Reconstruction from A Single Image Assisted by 2D Face Images in the Wild (2DASL)

目录1. 文章大致介绍2. 相关工作2.1 关于三维人脸重建与密集人脸对齐3. 本文核心方法3.1 如何生成三维模型3.2 损失函数的定义3.2.1 普通训练损失3.2.2 自监督训练损失1. 文章大致介绍先看本文的人脸重建效果图:图片备注:第一三行是借助人脸重建实现的人脸密集对齐(当然这里仅仅展示了人脸的68个点),第二四行是人脸重建最终的渲染效果。我们可以看到第三四五列的人脸有侧脸情况,所以对于一般的人脸对齐方法而言,效果可能不是很好,但是借助三维人脸重建实现的密集人脸对齐能够有效地解决侧

2021-03-19 22:10:03 963

原创 GANFIT: Generative Adversarial Network Fitting for High Fidelity 3D Face Reconstruction

1. 论文大致介绍论文是基于GAN网络的高精度、基于单张图片的人脸三维重建,重建效果如下图所示我们可以看到人脸的细节还原得特别详细,总而言之,本篇论文的特点如下与传统生成3dmm的颜色系数的方法不同,本文使用GAN网络生成一张高分辨率的人脸UV纹理图,代替3dmm颜色系数来表示人脸的纹理,因此能够还原出很多详细的细节基于设计的GAN网络与可微渲染器(三维的物体渲染成二维图像的时候,其实本质上是进行了一系列矩阵变换,这和神经网络有一定的相似之处,渲染相当于前向传播,而进行反向传播的时候,其实就是根

2021-02-18 22:40:52 1684 4

原创 软件测试课堂笔记

Chapter 1Software Verification(软件验证) + Software Validation(软件确认) = Software TestingVerification 和 Validation区别Verification 内部过程,比喻:Are we building the product right ?Validation 外部过程,比喻: Are we building the right product ?Chapter 2faults Errors Fa

2021-01-18 21:29:17 1468

原创 git与github简介与常用命令

目录基本概念gitgit 命令行git初始化git 常用的指令GitHub关于修改的文件如何查看基本概念repository 仓库 : 每一个项目对应一个repository,多个项目对应多个repositoryfork 复刻:会把别人的仓库给完完整整地克隆到自己的仓库,相当于复制,fork的项目是独立存在的,相当于多了个分支pull request 发起请求: fork的基础上,别人做了改进,如果发现比原先的项目更丰富了,可以向原项目创建人发起PR, 创建人收到这个请求之后,review代码之后

2021-01-18 21:23:55 103 1

原创 借助next_permutation解决组合问题(洛谷p1036)

1. 引言最近正好刷到暴力枚举相关的专题,在排列组合问题上,一直想寻找一个通用的解决方案,虽然深度优先搜索是比较主流的解决方法,但是无奈太烦,遇到了总是得想老半天。我们都知道next_permutation函数可以实现数组内元素的全排列,其实稍加变通便可以实现组合问题的解决。2. 解决方法next_permutation函数允许待排列的数组元素有重复,但是对于相同的序列不会重复枚举(这里比较难以表述,举个例子)对于 1 2 3 5 5 这样一个序列,使用next_permutation函数枚举下

2020-08-23 16:10:03 424

原创 Java基础学习笔记——内部类与匿名内部类

1. 工作流程当java编译一个包含内部类的.java文件的时候,会生成两个.class字节码文件,分别为Outer.class和Outer$Inner.class也就是说一个内部类一旦是在某一个类的内部定义的,这个内部类就被永远打上了标记,永远不可能作为一个独立的类存在新建外部类的实例对象的时候,内部类实例不会创建;反之你要想创建一个内部类的实例,必须先创建外部类的实例,再创建这个内部类...

2020-04-22 11:11:13 216

原创 Java基础学习笔记——反射

反射各种配置文件其实就是一些参数信息class Class{//...}Class类:大写开头的Class类将java中的.class字节码文件也给看成了一个类想要对一个类进行解剖,只要获取到该类的字节码文件对象即可1. 获取字节码文件对应对象3种方法Object 类中的getClass()方法比如p1和p2是同一个类的两个不同的实例,二者的getClass()方法返...

2020-04-17 11:43:46 133

原创 Java基础学习笔记——网络编程

1. socket编程1.1 通信原理(TCP)其实网络编程我们可以看做一种特殊形式的io流客户端建立Socket,一开始就需要明确目的主机和端口,服务端建立serverSocket,只需要明确端口号即可对于TCP协议来说,其实主要操作的,就是两个端,四个流的关系。对于客户端来说,两个流直接通过socket获取;而对于服务端来说。由于连接服务端的不仅仅只有一个socket,所以首先通过...

2020-04-11 08:55:38 104

原创 Java基础学习笔记——多线程(2)

1. 线程安全问题1.1 产生原因不同的线程操作共享数据操作共享数据的语句代码有多条有以上两条,可能这个线程执行完判断语句还没有执行下面的语句的时候,切换到别的线程了,这样就会出现问题1.2 解决办法主要思想是,只要让某一代码块持有同一个对象(锁),那么多线程调用的时候就能保证这一块代码的原子性。这个锁对象,可以是多线程操作的同一个对象内部自己定义的,可以是这个多线程操作的这个对象...

2020-04-06 23:01:44 148

原创 Java基础学习笔记——多线程(1)

目录1. 一个简单的例子垃圾回收代码示例2. 创建线程2.1 目的2.2 方式一原因代码示例2.3 方式二代码示例3. Thread类介绍4. 内存运行图解5. 线程运行状态图1. 一个简单的例子当jvm启动的时候,其实就运行了多线程,比如说执行main函数,肯定是需要一个线程的,而在堆内存里还同时进行着垃圾回收机制,这也是一个单独的线程。对于垃圾回收,当垃圾回收器确定某个对象是垃圾的时候,...

2020-04-05 23:04:04 130

原创 Jmeter基础学习笔记+实战

Jmeter 从入门到精通Jmeter是什么如果我们要开发一个网站的话,不能仅仅将目光关注在这个网站的搭建,我们还要关注这个网站的性能如何,比如说能否承载10000个用户在1秒内的同时访问,换言之,就是说这个网站能否承载10000的高并发访问。要想知道网站是否真的有这个功能,只能进行实践,但是我们不可能找10000个人来帮我们做测试,于是相应的压力测试工具就诞生了,我们只要操控这样的一个工具...

2020-03-30 13:33:53 769

原创 Java基础学习笔记——IO(2)

键盘录入要读取键盘的输入,需要获取键盘输入对象,即System.inSystem.in对象仅有一个,不会创建多个,所以一旦关闭之后就再也用不了了敲下回车之后,相当于敲下\r\n两个字符read()方法读取单个字节数据,除非遇到结束符号或者异常,否则一直阻塞(即一直等待)示例循环等待用户键盘缓冲区输入的数据,没按下一次空格,读一次缓冲区InputStream in=System.i...

2020-03-29 16:07:07 141

原创 Java基础学习笔记——IO(1)

概述IO处理的对象其实就是内存与外围设备(硬盘,U盘,打印机等),分为两大类:输入流(从硬盘到内存),输出流(从内存到硬盘)字节流:处理所有数据。字符流:只能处理字符,之所以有字符流,是因为存在GBK、Unicode等不同的码表,相同的字节根据不同的码表解析出的文字不一样,于是便将码表与字节流进行了封装,产生了字符流。(读取文字字节数据后,先查编码表,获取对应的文字,再对文字进行操作)...

2020-03-28 15:15:00 127

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除