自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DCD_LIN的博客

一天不学习,浑身难受。

  • 博客(119)
  • 资源 (4)
  • 收藏
  • 关注

原创 深度学习【47】Unsupervised Image-to-Image Translation with Generative Adversarial Networks

我们之前介绍了pix2pix和pix2pixHD都是属于有监督的图片到图片的转换,也就是其训练数据集要求每一张待转换图片必须有一张目标转换图像相对应。今天我们来看看如何利用GAN做无监督的图像到图像的转换。既然是无监督的图像到图像转换,那么在训练数据集中肯定是没有成对的数据了。比如性别的转换,假设我有张奥巴马的图片,那么肯定不能找到一张女的奥巴马图片吧吧。所以这就叫无监督。还是以性别转换为例,我们还

2018-04-14 21:45:12 4041

原创 深度学习【46】pix2pixHD

英伟达的pix2pixHD,能够合成高清的2048*1024图片,简直振奋人心。pix2pixHD是我之前介绍过的pix2pix的改进版本,使用多由粗到精的G网络和多尺度D网络(每个D网络都是用了pix2pix中同样的patch技术)。论文一开始用pix2pix尝试合成更高分辨率的图片,但发现效果不好,训练也很不稳定。所以就对pix2pix进行了一顿魔改。我们来看看他们是怎么改进的。由粗到精的G网络

2018-04-14 16:38:49 10448

原创 python显示3D

python里面画3D模型的工具不少,比如mplot3d。但是都非常慢。今天推荐一个工具,非常不错,mayavi。安装:sudo pip install mayavi一个画mesh的例子:from mayavi import mlabmlab.triangular_mesh(vertex[:,0],vertex[:,1],vertex[:,2],tri)#参数分别为x,y,z坐标,三角面片信息...

2018-04-13 17:52:40 4682

原创 深度学习【45】pix2pix

论文:Image-to-Image Translation with Conditional Adversarial Networks 第一篇用GAN做图片到图片的转换,效果还可以。论文给出的一些例子: 损失函数pix2pix用的是条件GAN,损失函数为: 与原始GAN不同的是,G网络的输入是一张待转换的图片很随机向量z(pix2pix没加入向量z),D网络的输入是待转换图片...

2018-04-12 22:02:56 3540 1

原创 深度学习【44】LSGAN

论文:Least Squares Generative Adversarial NetworksLSGAN将原始GAN的损失函数由对数损失函数变成了最小二乘损失函数: 对比一下原始GAN损失函数: 阅读论文的时候,一看到这个损失函数。我就想这么简单,谁不会啊!!确实很简单,不过论文还是给了充足的理论证明的。而且损失函数里面的a,b,c是有约束的,不能随便搞。原始GAN证明损失函...

2018-04-12 17:45:14 2264

原创 深度学习【43】BEGAN

GAN有不少未解决的问题:1、虽然在DCGAN和improveGAN中提出了不少训练GAN的tricks,但是GAN还是很难训练。2、很难控制G网络的多样性。3、D网络和G网络之间的平衡性很难控制,大部分情况下D网络在训练之初能力会更强。 而BEGAN提出了能够使得训练过程快又稳定的方法;解决了D网络和G网络能力平衡问题;有能力控制生成图片的多样性和质量平衡问题以及衡量收敛性的近似方法。...

2018-04-12 14:12:29 9179

原创 深度学习【42】EBGAN

论文:ENERGY-BASED GENERATIVE ADVERSARIAL NETWORKS EBGAN的思想是,将D网络看做一个能量方程。当G网络生成的数据靠近真实的数据流形区域时能量就比较低,相反的能量就高。EBGAN能生成更好的图片以及更高分辨率(256*256)EBGAN的损失函数不再是传统GAN使用交叉熵损失函数。而是: 其中D(x) = ||Dec(Enc(x))-x||,也就

2018-04-12 10:17:18 1923

原创 深度学习【41】InfoGAN

InfoGAN利用互信息和变分自编码(VAE,参考我这篇博客)将样本的label信息加入了GAN中。首先我们列出一些基本公式: 熵:H(X)=−∫XP(X)logP(X)H(X)=−∫XP(X)logP(X)H(X) = -\int_XP(X)logP(X) H(Y|X)=−∫XP(X)∫YP(Y|X)logP(Y|X)H(Y|X)=−∫XP(X)∫YP(Y|X)logP(Y|X)H(Y...

2018-04-10 17:47:40 1269

原创 深度学习【40】Improved Techniques for Training GANs

该论文提出了一些关于训练GAN的技巧,在mnist上生成的样本人类无法分辨真假,在CIFAR-10上生成的样本人类分辨的错误率为21.3%。优化feature matching为G网络加了一个损失函数: 函数f表示D网络最后输出层的前一层特征图。f(x)由真实数据抽取而来,f(G(z))为G网络生成的图片抽取而来。Minibatch discriminationGAN训练过程中经常会出现G网络

2018-04-10 14:24:39 3660

原创 深度学习【39】DCGAN

LAPGAN利用的是多个GAN一步一步的生成大的图片,而且LAPGAN的G网络和D网络的设计不是很优。DCGAN提出了只需要一个GAN就能够直接生成64*64的图片,并且给出了G网络和D网络的设计要点。DCGAN还发现了输入网络的Z向量,有着跟word2vec相似的功能,Z向量能够描述一张图片的语义。DCGAN网络结构设计要点:1、在D网络中用strided 卷积(stride>...

2018-04-08 21:26:58 2276

原创 深度学习【38】Deep Generative Image Models using a Laplacian Pyramid of Adversarial Networks

比较早的一篇GAN图片生成的论文,思想是利用拉普拉斯图像金字塔的原理由粗到细(尺寸由小到大)生成图片。用的GAN是最开始提出的那篇。 上图是网络生成图片的过程。由随机变量z3z_3 通过G3G_3 网络生成8*8的图片Ĩ 3\tilde I_3,上采样得到16*16的图片l2l_2;l2,z2l_2,z_2 共同作为 G2G_2 网络的输入,并得到拉普拉斯金字塔系数h̃ 2\tilde h_

2018-04-04 22:53:06 1603

原创 3D【11】人脸重建:Disentangling Features in 3D Face Shapes for Joint Face Reconstruction and Recognition

这篇文章的思想跟Multilinear Autoencoder for 3D Face Model Learning 本质上是完全一样的。将人脸重建看成是一个线性问题,然后求解线性系数和特征向量。而且训练方法也是一样的。分两步:1、预训练encoder;2、预训练decoder;3、训练整个模型。 两篇文章的区别是:该论文用的是3DMM的理论,而上面我提到的那篇用的是高阶SVD张量分解理论。...

2018-04-04 14:53:17 1744

原创 深度学习【37】Group Normalization

神经网络的归一化方法挺多的,如Batch Normalization(BN)、Layer Normalization(LN)以及Instance Normalization(IN)。其中LN主要是在RNN中比较有效,而IN主要是在图像风格化中用的比价多。BN的提出是深度学习上的一个里程碑,现在很多吊炸天的网络都有BN层。但是BN有个问题,那就是当batch size比较小(RCNN系列,以及物体分...

2018-04-03 19:22:42 1082 1

原创 深度学习【36】mobilenetV2

mobilenet的一个改进,加上了Inverted residual block。residual block 和Inverted residual block: 两者的不同是,residual block的中间两个卷积层的通道数比输入和输出的通道数少。而Inverted residual block则相反。不同模型的block对比: 需要注意的是,mobilenetV2最后的输出层的激活

2018-04-03 13:52:16 945

原创 深度学习【35】CondenseNet

condenseNet与mobilenet、shuffleNet一样都是小而精悍的模型。与shuffleNet一样都是为了优化1*1卷积的计算量。同时借鉴了denseNet的跳跃连接和shuffleNet的channel shuffle。但是没有使用mobilenet的depthwise 3*3卷积,而是使用了分组卷积。condenseNet比mobilenet模型小了6M,计算量小了2倍,同时在...

2018-04-03 11:34:43 3110

原创 深度学习【34】DenseNet

DenseNet将跳跃连接做到了极致。DenseNet的优点:防止梯度弥散,加强特征传播,有利特征融合,减少参数量。随意领略一下denseNet的跳跃连接: 每层都有来自前面所有层的输入,每层的输出通道都为4。在设计denseNet的时候,一般只有在两个下采样层之间的那些网络层进行上图那样的跳跃连接,比如: 在每个Dense Block之间都有一个池化层。DenseNet在处理来当前卷积

2018-04-02 11:20:50 725

原创 深度学习【33】Squeeze-and-Excitation Networks

单层的卷积层可以通过将空间信息和通道之间的信息,以达到信息的组合交互。但单层卷积层会受限于局部感受野。通过过堆叠一系列的卷积层,非线性激活函数和下采样层,CNN能拥有全局感受野,并抽取出不同层次的特征。通过增加不同的学习机制(网络结构)可以使得CNN的能力更强。比如Inception系列的多尺度卷积核,以及attention机制等等。该论文设计了一种新的结构(Squeeze-and-Excitati

2018-04-02 10:19:20 445

原创 深度学习【32】shuffleNet

mobileNet用depthwise卷积优化了3*3卷积了,但是对于1*1卷积却没有做优化。因为1*1卷积是不能再利用depthwise卷积进一步优化的。而shuffleNet就是为了对1*1卷积做进一步优化的。shuffleNet的优化策略是:分组卷积+channel shuffle。分组卷积分组卷积,是将标准的卷积分成几组,然后分别进行卷积,最后将卷积结果合并起来。例如: ...

2018-04-01 20:38:55 488

原创 深度学习【31】mobileNet

mobileNet出来很久了,这边主要是做个笔记,不然很快就忘记了。mobileNet的精髓是提出了depthwise卷积层。标准的卷积层的参数个数是DK∗DK∗M∗NDK∗DK∗M∗ND_K*D_K*M*N(卷积核大小×卷积核大小×输入通道数×输出通道数,如卷积核是一个3*3,输入输出是256通道,则有3*3*256*256)。其计算量是: DK∗DK∗M∗N∗DF∗DFDK∗DK∗M∗N...

2018-04-01 16:21:24 478

原创 深度学习【30】pytorch 自定义数据迭代器

class myImageFloder(data.Dataset): def __init__(self,root,list,transform):#list:训练数据列表,比如:train.txt文件,每一行是一个训练样本 fh = open(list) imgs=[] for line in fh.readlines():

2018-04-01 14:28:48 2511

原创 深度学习【29】pytorch 自定义损失函数

构建一个加权函数: loss=w1∗loss1+w2∗loss2loss = w1*loss1+w2*loss2class myloss(nn.Module): def __init__(self,w1,w2): super(myloss,self).__init__() self.w1 = w1 self.w2 = w2 r

2018-04-01 14:16:50 10688

原创 深度学习【28】pytorch 遇到RuntimeError: input is not contiguous

遇到这个问题一般是使用了view或者index_select函数,解决方法:data = data.view(bsz, -1).t().contiguous()#只要在view函数后面再加个contiguous()就ok

2018-03-31 16:31:55 6786

原创 深度学习【27】pytorch Variable变量方法的使用

这边记录一些Variable变量相关的一些方法。将一个numpy的张量转成Variable:Vtensor = torch.autograd.Variable(torch.LongTensor(np.int64(np.asarray(nptensor))))##torch.LongTensor确定变量类型,根据需要更改类似reshape操作:out = output...

2018-03-31 16:27:51 2143

原创 cmake调用opencv、dlib和mxnet

cmake_minimum_required(VERSION 3.6)project(imgClassification)set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")set(SOURCE_FILES main.cpp)find_package(OpenCV REQUIRED) #查找opencv包,需提前安装add_lib...

2018-03-31 16:01:15 945

原创 3D【10】网格优化:Laplacian Mesh Optimization

拉普拉斯网格优化与平滑是网格处理的经典算法,其一些基本概念可以作为神经网络预测3D mesh的一些约束,如平滑。我们先来看看一些基本概念。基本概念首先,我们用G=(V,E)G=(V,E)G=(V,E) 来表示一个网格。 其中V=[vT1,vT2,...,vTn]T,vi=[vix,viy,viz]T∈R3V=[v1T,v2T,...,vnT]T,vi=[vix,viy,viz]T∈R...

2018-03-29 14:18:57 5521 4

原创 3D【9】人脸重建:Joint3D Face Reconstruction and Dense Alignment with Position Map Regression

该论文同时预测人脸特征点和3D mesh的顶点坐标x,y,z。人脸特征点没什么好说的,现在已经有很多成功的案例了。主要关注该论文是如何预测顶点坐标的。其实大概想想,就能够大致确定直接预测顶点坐标是有不少困难的。首先是,你不能把所有的顶点拉成一个向量,用全连接层预测;要用卷积层作为输出的话,mesh又不能直接表示成一个固定大小的张量(这正好是用cnn来预测所需要解决的问题,比如将mesh立方体化)。...

2018-03-22 17:38:02 5894 15

原创 3D【8】鸟类重建:Learning Category-Specific Mesh Reconstruction from Image Collections阅读笔记

该文章直接预测的是平均mesh的坐标偏差,相机参数和纹理uv图。里面有各种损失函数,很值得学习。这篇论文还有个有意思的点,论文用的训练数据是没有对应的3D模型的(也就是一张图片没有对应的3D模型)。训练过程有点像3DMM的重建过程,即先估计3D模型,将模型渲染到2D;然后比较渲染的图片和原始图片的差异,以更新模型的参数。要将这个过程应用在神经网络中,由于渲染是不可导的,因此需要解决渲染这一步骤...

2018-03-22 11:43:17 1762

原创 3D【7】人脸重建:Hands on Shape from Shading阅读笔记

Shape from Shading(sfs)是一个很基础也很经典的3D重建方法。其基本原理是利用灰度图片的亮度信息,加上亮度生成原理,求得每个像素在3D空间中的法向量,最终根据法向量求得深度信息。 看了不少相关的文章,感觉这篇论文讲的最好懂,里面还有相应的matlab代码。所以想学sfs的同学,可以去看这篇论文。问题描述一张灰度图的亮度信息由4个因素决定: 1、光照:主要是方向,...

2018-03-17 16:27:05 5567 9

原创 3D【6】人脸重建:Multilinear Autoencoder for 3D Face Model Learning

该论文输入的是一个扫描的3d mesh,输出是一个顶点数的3d mesh。这个过程很像NICP的3d人脸配准过程,但是NICP是一个优化的过程。而该方法在学习好了网络后,可以直接使用。使用GPU的话,速度应该可以非常快。该论文还为利用CNN重建3D人脸提供了另一种思路。目前看到的用CNN进行3D人脸重建,其输出要么是3DMM的系数(没有人脸的真是深度信息),要么是将mesh立方体化(一个n1×...

2018-03-14 10:59:27 3076

原创 3D【5】人脸重建:Learning the Multilinear Structure of Visual Data阅读笔记

该论文主要内容是使用张量分解来表征一个3D人脸,如下公式: 其中B(1)B(1)B_{(1)} 是通过大量数据学习出来的,而A(m)A(m)A^{(m)} 则是重构出 XXX 的系数,⊙⊙\odot 是克罗内克积。克罗内克积:一个3×1的向量和一个4×1的向量进行克罗内克积,会得到12×1的向量。具体的可参考wiki。每个A(m)A(m)A^{(m)} 可以表示不同的大分类,比如光...

2018-03-12 17:14:21 995 1

原创 深度学习【26】wavenet-歌声合成

论文:A NEURAL PARAMETRIC SINGING SYNTHESIZER 完整论文:A Neural Parametric Singing Synthesizer Modeling Timbre and Expression from Natural Songs 之前研究过一段时间的wavenet语音合成。第一版wavenet的一个最大的问题是合成非常耗时,但是就有尝试过各种方案...

2018-03-08 14:16:45 5626

原创 Symbol lookup error: /usr/lib/libblas.so.3: undefined symbol: gotoblas

在安装lsfm时候遇到的一个问题,这个问题是因为conda使用的是libblas而不是openblas引起的。可以删除系统的openblas,但是这样做不好。sudo apt-get remove libopenblas-base我们直接安装一个conda的openblas就可以了:conda install -c anaconda libopenblas...

2018-03-06 08:51:08 4492

原创 深度学习【25】物体检测:Tiny SSD

论文:Tiny SSD: A Tiny Single-shot Detection Deep Convolutional Neural Network for Real-time Embedded Object Detection 记录这篇论文的原因主要是想记录一下在优化yolov2时所用的网络。该论文将SSD模型优化到只有2.3M,同时在voc 2007[评测数据集上面的mAP比tiny yo

2018-03-03 15:26:31 2596

原创 ubuntu下matlab提示libGL error: unable to load driver: nouveau_dri.so

安装一下matlab-support就可以:sudo apt-get install matlab-support

2018-02-26 18:39:26 1353

原创 PCL和vtk安装

ubuntu 16.04 pcl安装可以去https://larrylisky.com/2016/11/03/point-cloud-library-on-ubuntu-16-04-lts/下载deb文件安装,也可以用源码安装 vtk用如下命令安装:sudo add-apt-repository ppa:elvstone/vtk7 sudo apt-get update sudo apt-

2018-02-24 16:25:14 1963

原创 3D【4】人脸重建:Large Pose 3D Face Reconstruction from a Single Image via Direct Volumetric

该论文主要是用CNN直接重建3D人脸,而不是预测3DMM模型的参数,网络结构是漏斗网络( HG)。论文提出了三种方案,第一种是直接从图片重建,第二种是加入了人脸特征点,第三种是多任务(重建+人脸特征点预测)。效果最好的是第二种方法。值得注意的是,该论文不是直接预测顶点的x、y、z坐标。而是将mesh转成voxel,变成一个192*192*200的矩阵。这样就比较适合CNN。我们先看看mesh...

2018-02-24 10:24:18 4731

原创 图像处理【1】空间金字塔Lucas Kanade光流法

论文 Pyramidal Implementation of the Lucas Kanade Feature Tracker Description of the algorithm的阅读笔记。 光流法用途比较多,比如跟踪,图像配准,以及在三维人脸重建中的稠密对应。问题描述假设II,JJ是两张2D灰度图片,I(x)=I(x,y)I(\mathrm{x})=I(x,y),J(x)=J(x,y)J(

2018-02-09 11:45:08 8077 2

原创 3D【3】人脸重建:Image Based 3D Face Reconstruction: A Survey阅读笔记

该论文是09年的一篇3D人脸重建综述文章。目前的大部分3D人脸重建系统受限于3d扫描设备的一些不足: 1、在扫描过程中要求一定的光线条件 2、无法从多个物体同时获取3D数据 3、没有反射的区域无法获得正确数据(如头发) 4、无法实时 5、如果是激光扫描时,会伤到眼镜 6、在扫描时以及后处理需要人的辅助 7、3D扫描设备的大小和价格限制了现实生活中的应用一个可选的方案是,直接从...

2018-02-09 09:22:27 3736

原创 3D【2】非刚性配准:Optimal Step Nonrigid ICP Algorithms for Surface Registration 阅读笔记

最近在研究人脸3d重建的内容,配准是训练出一个类似Basel Face Model的一个前期3d数据处理过程。由于从设备扫描出来的3d人脸的顶点个数非常多,而像BFM这样的模型中一个3d face的顶点为53490个点。为了用一个顶点较少的模板来表示一个从设备扫描出来的3d face,我们需要用到配准算法。在3d face的配准中使用的是非刚性配准,意思是模板除了平移,缩放和旋转之外,还可以变形。...

2018-02-06 15:13:41 13128 27

原创 3D【1】人脸重建:Face Alignment Across Large Poses: A 3D Solution中侧脸数据生成实验

论文提出了一个由3d合成侧脸数据的方法,由于最近项目需要,便尝试了该方法。在此记录一些东西。作者给出的数据合成demo中使用的是basel face model(BFM)的人脸3d重建参数,里面用到了pose参数,shape参数。为了合成出自己的数据,我们需要先获取这两个参数。获取这两个参数的方法挺多的,我这边尝试的几个方法分别为:运行作者给定3d重建demo(3DDFA),或者用High-F...

2018-02-02 10:12:31 5359 11

语音增强:理论与实践.rar

经典书籍:《语音增强:理论与实践》中的matlab代码。

2018-02-06

Neural Networks Tricks of the Trade

Neural Networks Tricks of the Trade

2017-08-25

各大高校《数据结构》考研历年真题

这是各大高校《数据结构》考研历年真题,希望对同学们有帮助

2014-08-09

空空如也

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

TA关注的人

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