Georgeqi's Blog

Home

About

Archives

loading..
GAN

GAN学习4-人脸属性编辑

【算法背景】 GAN除了在之前介绍的图像转换有巨大的应用潜力,得益于StyleGAN和StyleGAN2在人脸生成上的逼真效果,GAN的另一个应用-人脸属性编辑也得到了巨大的发展,该类技术旨在通过对人脸图像进行操作达到个性化设计的目的,主要包含人脸滤镜、 人脸贴妆、人脸变形、人脸特征变换、人脸风格化等,示意图下: 人脸属性编辑示意图 考虑到StyleGAN对于人脸属性编辑的重大意义,本篇博客将重点介绍基于此系列算法的人脸属性编辑方法,暂不讨论基于传统图像处理的人脸算法(如磨皮、美颜、瘦脸等),也不讨论以StarGAN、MaskGAN为代表的其他深度学习方法。 【StyleMixing-实现妆容迁移】 算法原理 之前博客中提到:StyleGAN2 中不同分辨率的激活张量控制人脸图像中不同细 粒度的属性特..

Read more
loading..
车牌识别

关于车牌识别的三个专利

我研究生期间的主要做的是一个商业性质的车牌识别项目,该三个专利也是该项目期间积累下来的一些实践经验,趁着毕业正好整理一下。 复杂车牌示意图 【1】一种非二值化和边缘检测的车牌字符图像分割方法 相关资源:训练和推理代码 专利原文 要解决的问题:解决复杂车牌(如存在字符黏连、光照不均)中的字符分割难题 算法输入:车牌的字符区域(最好是高度和字符高度接近的) 算法输出:每个车牌字符的包围框坐标 算法流程:使用一个指定宽度的滑动窗口对图像从左到右进行遍历,每次遍历使用一个二分类的网络判断滑动窗口内是否是属于车牌字符(通常为字母和数字)的概率,最后得到一个字符概率的分布曲线,最后通过非极大值抑制得到最终的字符区域。 训练数据: 训练二分类网络:(判别是否是字母/数字)使用的2类数据------->配合交..

Read more
loading..
GAN

GAN学习3-StyleGAN

StyleGAN 【论文】【代码】【视频】【数据集】 先放一张StyleGAN生成人脸的效果图吧,确实真实到无法分辨出他是生成的,效果好到炸裂,以至于学习GAN不熟悉StyleGAN可以说说白学GAN了。 StyleGAN生成人脸示意图,来自video 当然除了人脸,StyleGAN在其他物体上的生成效果也是非常炸裂的。 StyleGAN生成其他物体示意图,来自video 写在前面 StyleGAN对于GAN的发展和推进太重要了,论文的内容很丰富细节也很多,一直没有很好的写作思路,直到看到了这篇博客和他的两篇中文版本:Wooo.zhihu和Yuthon's Blog,发现大家写的太好了,于是近乎全文copy过来当做笔记也方便后面自己查阅,只是加了少量自己的图和理解,也建议 大家去原博客进行阅读。..

Read more
loading..
GAN

GAN学习2-图像转换

图像转换是GAN的一个重要应用,不同于原始GAN结构从一个维度较低(如512x1)的噪声生成图像,图像转换则接受图像级别(如256x256x3)的输入,并在保证云输入图像主要特征(如结构、人脸id)的情况下输出具有其他风格的相同尺寸图像。 图像转换示意图,原图来自CycleGAN DTN 【Domain Transfer Network 】【官方代码】【复现代码】 算法笔记 DTN 目标任务:将源于的图像S转换到目标域T中,并且在保留源域主要特征(如人脸id)的同时也具有目标域的特征(如卡通特征)。 算法细节: 网络结构:生成器G完成image2image任务,其由特征提取器f和重构器g构成;判别器D为三类判别,判别输入图像是否来自1.目标域真实图像;2.目标域重构生成的图像;3.源域转化生..

Read more
loading..
算法刷题

股票利益最大化

问题定义 给定股票价格序列,规定(买入、卖出)的最多次数K,求最大的总利润。(一次买入和卖出为完整交易) K=1 Leetcode121记录遍历到第i天的时候之前的股票价格最小值,那么如果当天卖出,能取得最大利润肯定是当前股票价格减去之前最低的股票价格最后取遍历的最大值。 class Solution { public: int maxProfit(vector<int>& prices) { int max_profit = 0; int pre_min = INT_MAX; for(int i=0;i<prices.size();i++) { max_profit=max(max_..

Read more
loading..
深度学习

神经网络权重初始化问题的思考

问题概述 众所周知,神经网络权重不能初始化为常数,更不能全部初始化为0。依据反向传播的思想可知:每个权重的更新梯度与其之后相关的权重、神经元的输入、输出和其前一个神经元的输出有关(这里不进行具体推导)。网上很多相关文章说不能初始化为0或者常数,这个结论肯定是正确的。但是原因却不是这样会导致权重不更新了。其实完全错误,只要有误差,就会更新。 神经网络模型定义 现假设神经网络的通用形式如下: 有一个输入层,n个隐藏层,一个输出层。其中输入层和第1个隐藏层的参数权重为,第1个和第2个隐藏层之权重为,以此类推:第n个隐藏层和输出层之间参数权重为。其中输入层神经元个数为,第个隐藏层的神经元个数为,输出层的神经元个数,则。如有一个"输入层+3层隐藏层+输出层"构成的网络,且输入层、输出层神经元个数为5、1,隐藏层的神经..

Read more
loading..
深度学习

SGD、Momentum、RMSProp、Adam等优化算法比较

公式化及解释 简单理了下深度学习中常用的集中参数优化方法,用相对统一的形式规整了下: 算法名称 公式 解释 牛顿法 为第t-1轮迭代时海森矩阵逆矩阵,即目标函数对参数二阶导数。 梯度下降(GD) 使用所有数据进行梯度下降 随机梯度下降(SGD) 使用单个数据进行梯度下降 批量梯度下降(Mini-batch GD) 使用每一小批数据进行梯度下降 (即GD与SGD的折中) Momentum 利用累计的指数加权梯度-动量即惯性,作为每次权重更新的梯度 Nesterov Momentum 在Momentum的基础上根据下一步的新权重计算新梯度("往前多看一步") AdaGrad 不同参数有各自的自适应学习率,即全局学习率除以累计梯度平方和 RMS..

Read more
loading..
GAN

GAN学习1-基础网络

各类GAN算法 本文使用到的各类GAN算法,我自己完成复现,更多细节可以参考【代码】 损失函数 名称 损失函数 GAN LSGAN WGAN WGAN-GP DRAGAN DCGAN ACGAN CGAN InfoGAN LapGAN BEGAN EBGAN 算法细节 GAN:生成对抗网络的开山之作,引入零和博弈的思想交替优化判别器和生成器 LSGAN:直接通过L2损失将判别器的预测结果拉近各自标签 WGAN: 判别器最后一层去掉sigmoid 生成器和判别器的loss不取log 权重剪枝:每次更新判别器的参数之后把它们的值截断到不超过一个固定常数c 不用基于动量的优化算法(包括momentum和 Adam)..

Read more
loading..
深度学习

深度神经网络架构

LeNet LeNet是最早发布的卷积神经网络之一,因其在计算机视觉任务中的高效性能而受到广泛关注。 这个模型是由AT&T贝尔实验室的研究员Yann LeCun在1989年提出的(并以其命名),目的是识别图像中的手写数字。 利用卷积、池化、激活函数、全连接层等操作提取特征(这也奠定了后续所有卷积神经网络的基本特性) 卷积操作实现参数共享,相比较全连接操作大大降低了参数量 LeNet又名LeNet5,是因为在LeNet网络中使用的均是 5×5 的卷积核,如下图所示: 图片来自原paper AlexNet AlexNet在2012年ImageNet挑战赛中取得了轰动一时的成绩,它首次证明了学习到的特征可以超越SIFT、HOG、Bags of Visual Words等手工设计的特征,同时也首..

Read more
随手笔记

Hexo建站笔记

安装git和安装node.js就不多赘述~ 安装Hexo 在指定目录下执行以下命令: npm install -g hexo-cli hexo init hexo install hexo clean hexo generate hexo server 然后打开显示的网址,即可看到本地部署好的网站 换主题 新下载的主题(如hexo-theme-Claudia)放在node_modules文件夹下,而不是放在站点根目录的themes文件夹下,然后在根目录的_config.yml中修改theme属性为Claudia,不然可能会报No Layout:index.html的错误。 可能出现的问题 端口被占用: sudo lsof -i:4000 sudo kill 上述方法不行的话就修改端口号: hexo的启动..

Read more
12