自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

g11d111的博客

Github: https://github.com/tomguluson92

  • 博客(139)
  • 收藏
  • 关注

原创 【Diffusion模型系列1】DDPM: Denoising Diffusion Probabilistic Models

首先, 在进行具体的技术性展开之前,需要回顾下Diffusion Model是什么:如下图所示,可以简单将MidJourney, Stable Diffusion, ImageGen, DALLE-2这种Diffusion Model理解为从噪声中生成图像(generate images from noise)的一种模型。生成的数据和训练的数据类似(从概率论的角度上来说,就是生成模型的重点是模拟训练数据的分布。

2023-06-23 14:12:23 1883 1

原创 [经典的图像warping方法] Thin Plate Spline: TPS理论和代码详解

本文的目标是详细分析一个经典的基于landmark(文章后面有时也称之为控制点control point)的图像warping(扭曲/变形)算法: Thin Plate Spine (TPS).TPS被广泛的应用于各类的任务中, 尤其是生物形态中应用的更多: 人脸, 动物脸等等, TPS是cubic spline的2D泛化形态.

2023-01-21 10:43:20 6231 8

原创 [NeRF]代码+逻辑详细分析

0. 前言鉴于最近两年(2020,2021),隐式渲染(implicit rendering)技术非常火爆(以NeRF和GRAFFE为代表),而由于这种隐式渲染需要一点点渲染的基础,而且相较于正常的CV任务不是很好理解。为了方便大家学习和理解,我这里将以ECCV2020的NeRF(神经辐射场 NeRF: Neural Radiance Field)[1]为例,对其进行代码级(基于pytorch3d[3]的实现)的详细剖析,希望对需要的朋友有所帮助。1. 什么是NeRF根据官方的项目[1], NeRF实

2021-07-21 11:21:27 42949 15

翻译 [生成模型新方向]: score-based generative models

0.前言最近(2021.6)发现了生成模型的一种新的trending范式: score-based generative model, 用一句话来介绍这种结构,就是:通过在噪声扰动后的大规模数据集(noise-perturbed data distributions)上学习一种score functions (gradients of log probability density functions)(得分函数, 一种对梯度的对数似然估计),用朗之万进行采样得到符合训练集的样本. 这种新的生成模型,

2021-06-19 18:48:22 20605 9

翻译 [OPENAI2021力作][CLIP: Connecting Text and Images]

本文翻译自OpenAI官方博客[1], 于2021年1月5日发布.0. 前言本博客是openAI的大佬们的全新作品,其提出了可以用于从自然语言监督信号中有效提取视觉信息的,名为CLIP的神经网络. CLIP可以被用于任何视觉分类的benchmark(仅需提供其对应的视觉类别即可), 同GPT-2/3类似,有着强大的"zero-shot"能力。我认为,CLIP和DALLE这2篇论文,核心是将万能的预训练模型扩展到多模态领域(visual-natural language)。这真心非常强…1. 开篇.

2021-01-30 16:44:36 5663 1

原创 StyleGAN2 解释

本文是[1]的译文, 按照作者Connor Shorten的说法, 此博客讨论的是StyleGAN2的诸如weight demodulation, path length regularization和去掉progressive growing等信息。虽然我去年底自己复现过StyleGAN2的pytorch版, 但对这些内容也有些忘记了,借此机会复习下。对于StyleGAN不了解的小伙伴,建议先看下别人写的关于StyleGAN的基本介绍,然后再来看本文,相信会收获更多~0. 前言来自Nvidia.

2020-10-21 15:10:39 21615 1

原创 Yolov5 系列2--- 如何使用Yolov5训练你自己的数据集

上一篇《Yolov5 系列1— Yolo发展史以及Yolov5模型详解》讲了Yolo的发展历史,这一篇的目的是讲述如何使用Yolo v5训练自定的数据集,并会分析一些常见的选项以及背后的故事。相比第一部分《Yolov5 系列1— Yolo发展史以及Yolov5模型详解》的内容,本篇文章主要聚焦于使用代码进行训练,并对一些需要关注的点进行了说明。目的是让读者能够非常快的上手代码,训练其自己的目标检测任务。3. 配置Yolo v5的环境+准备数据集+训练[1]这部分主要参照Yolo v5作者Glenn.

2020-09-29 20:23:20 16495 11

原创 Yolov5 系列1--- Yolo发展史以及Yolov5模型详解

最近在做检测相关的工作,几年前分析过faster-rcnn的代码和论文。现在,把yolov5这个最新且快的模型进行梳理。本文会从Yolo的发展历程开始,到损失函数,mAP的概念,最后到如何在代码层面训练你的定制化数据集。好了,让我们开始吧~1. YOLO (You Only Look Once) 的发展历史这部分内容主要借鉴自 科技猛兽@知乎 在知乎的发文,我这里会做一下简化,具体细节请去看这位大佬的文章 [1-3]。1.1 YOLO v0YOLO v0的思路起源于将基本的CNN思路从分类任.

2020-09-28 20:45:27 52095 15

原创 (中文详解篇)smallpt: 99行代码完成全局光照Path Tracing

目录0. 什么是SmallPTFeatures1. 光线追踪需要了解知识1.1 什么是全局光照?1.2 渲染方程2. SmallPT代码分析2.1 代码块12.2 代码块22.2.1 主函数第1步: 设置呈像平面2.2.2 主函数第2步: 设置相机位置2.2.3 主函数第3步: 创建图像2.2.4 如何计算radiance?2.3 shading 着色2.3.1 diffuse reflection 漫反射2.3.2 Ideal Specular (Mirror) Reflection 高光反射2.3.3

2020-08-24 00:49:46 7392

原创 [CVPR2020最佳论文详细解读] Unsupervised Learning of Probably Symmetric Deformable 3D Object

本文是基于CVPR2020最佳论文,来自牛津VGG组的吴尚哲学Unsup3D

2020-06-26 22:54:26 8220 13

原创 [PyG] 1.如何使用GCN完成一个最基本的训练过程(含GCN实现)

0. 前言为啥要学习Pytorch-Geometric呢?(下文统一简称为PyG) 简单来说,是目前做的项目有用到,还有1个特点,就是相比NYU的DeepGraphLibrary, DGL的问题是API比较棘手,而且目前没有迁移的必要性。图卷积框架能做的事情比较多,提供了很多方便的数据集和各种GNN SOTA的实现,其实最吸引我的就是这个framework的API比较友好,再加之使用PyG做项...

2020-04-14 11:24:47 27527 26

翻译 PyTorch学习笔记(19) ——NIPS2019 PyTorch: An Imperative Style, High-Performance Deep Learning Library

0. 前言波兰小哥Adam Paszke从15年的Torch开始,到现在发表了关于PyTorch的Neurips2019论文。中间经历了漫长的过程。这里,把原文进行翻译放出来,以供读者了解这几个问题:为什么要设计PyTorch?PyTorch与之前的深度学习framework的区别是什么?PyTorch有什么设计准则?是什么导致了PyTorch在研究者社区的流行?相信读者在看完下面...

2020-03-01 10:36:19 4657

原创 PyTorch学习笔记(18) ——基于pytorch 1.1.0编写cuda扩展

0. 前言对于一些特殊的算子, 我们需要进行定制其前向和反向的过程, 从而使得其能够获得更快的速度, 加速模型的训练. 这样, 我们自然会想到使用PyTorch的cuda扩展来实现, 这里, 我将以一个简单且易于理解的例子出发, 详细的介绍如何构造一个属于你的cuda扩展.1. 为什么需要写cuda扩展?由于我们的一些特殊结构可以由基础的pytorch提供的算子进行组合而形成, 但是, 其问...

2020-02-20 12:23:10 4968 6

原创 PyTorch学习笔记(16)——编写你自己的PyTorch kernel(基于PyTorch1.2.0)

在前一阵看过PyTorch官方核心开发者Edward Z, Yang的在纽约举办的PyTorch NYC Meetup的关于PyTorch内部机制的讲解。从通过strides指定逻辑布局,tensor wrapper到autograd机制以及对PyTorch内部最重要的几个基本代码模块的扼要说明,让人受益匪浅。其中,在PyTorch写kernel是一个非常让人兴奋的内容,作为一个contribu...

2019-06-25 14:55:15 5016

原创 PyTorch学习笔记(14) ——PyTorch 1.0 的C++ FrontEnd初体验

在去年12月份,我尝试了一下PyTorch 1.0的C++前端, 当时官方负责PyTorch的C++前端的老哥是: Peter Goldsborough, 当时的C++前端还不够稳定,官方文档提供的demo无法跑通.所以为了避免后面的同学再次入坑. 本部分将会手把手教你如何用PyTorch1.0 跑通C++ Mnist模型的训练~0. PyTorch C++接口哲学PyTorch’s ...

2019-02-28 10:30:41 2291 5

原创 2018 Iterative Visual Reasoning Beyond Convolutions 论文梳理

18年是GNN开始初出茅庐也是大放异彩的一年, 这篇论文是李飞飞团队的关于GNN在CV领域中的一个开拓性的应用.甚至作者陈鑫磊称, 通过结合CNN和GNN, 本文发明了"下一代的视觉识别系统". 这个观点是不是很让人瑟瑟发抖? 好了, 下面开始分析论文结构和代码组成.0. 论文简述近年来, 由于卷积神经网络的大放异彩, 我们在如图像分类, 图像分割等经典的CV任务中取得了很大的进展. 但是...

2019-01-12 11:52:37 2497 2

原创 PyTorch学习笔记(12)——PyTorch中的Autograd机制介绍

在《PyTorch学习笔记(11)——论nn.Conv2d中的反向传播实现过程》[1]中,谈到了Autograd在nn.Conv2d的权值更新中起到的用处。今天将以官方的说明为基础,补充说明一下关于计算图、Autograd机制、Symbol2Symbol等内容。0. 提出问题不知道大家在使用PyTorch的时候是否有过“为什么在每次迭代(iteration)的时候,optimizer都要清...

2018-10-13 09:35:00 8385

原创 PyTorch学习笔记(11)——论nn.Conv2d中的反向传播实现过程

0. 前言众所周知,反向传播(back propagation)算法 (Rumelhart et al., 1986c),经常简称为backprop,它允许来自代价函数的信息通过网络向后流动,以便计算梯度。它是神经网络之所以可以进行学习的最根本因素。在如PyTorch、Tensorflow等深度学习框架中,都广泛的使用了自动微分(Autograd)的机制,主要也就是从哈佛的智能概率系统组(Har...

2018-10-12 12:36:57 7594 8

原创 PyTorch学习笔记(6)——DataLoader源代码剖析

这两天把DataLoader的源代码的主要内容进行了一些分析,基于版本0.4.1。当然,因为内容比较多,没有全部展开,这里的主要内容是DataLoader关于数据加载以及分析PyTorch是如何通过Python本身的multiprocessing和Threading等库来保证batch是顺序取出的。额外的内容都会给出链接,在这里不会详细展开。0.前言(楔子)本篇关于DataLoad...

2018-08-08 14:40:31 52902 17

原创 PyTorch学习笔记(5)——论一个torch.Tensor是如何构建完成的?

最近在准备学习PyTorch源代码,在看到网上的一些博文和分析后,发现他们发的PyTorch的Tensor源码剖析基本上是0.4.0版本以前的。比如说:在0.4.0版本中,你是无法找到a = torch.FloatTensor()中FloatTensor的usage的,只能找到a = torch.FloatStorage()。这是因为在PyTorch中,将基本的底层THTensor.h TH...

2018-07-27 13:25:38 6432 3

原创 基于参数化模型(MANO)的手势姿态估计---全面剖析

目前, 主流的手部姿态估计的技术方案是使用马普所于2017年提出的MANO参数化模型, 在此基础上回归3D坐标, 这是因为MANO有很合理的结构以及定义好的前向动力学树。本文的目的在于为大家介绍,基于MANO的手部姿态估计的流程:包括并不限于: 数据处理,MANO的推理流程(与论文对齐),手的解剖学和生物学特点。1. 什么是手部姿态估计?我理解的 手部姿态估计(hand pose estimation) 是:同人体姿态估计一样, 是给定一张手部特写图片,估计其姿态(2D/3D keypoint)的.

2021-04-09 14:48:07 18407 34

原创 [Samuel Ko]——我的2020年回顾

0. 写在前面其实一直以来,CSDN博客就完全是我个人的技术成长方面的记录和总结,由于工作的原因,一些更新,更好的资料没办法上传上来。之前的CSDN对我来讲,更像是一个纯技术文档,在这已经几年了,也完全没有发一些关于个人的动态或者经历。现在是2021年1月3号,时光荏苒,我决定让自己在CSDN上写一些自己的想法和思考,作为对自己技术生活的记录,希望能不会让大家觉得这篇博客是我自己在搔首弄姿,卖弄风骚。。。1. 我是谁?对我而言,当很欣赏一些人的博客文章,论文或者开源代码的时候,就非常有了解对方是谁的

2021-01-03 21:10:32 882 3

原创 <CVPR2020 Oral>AI妆容迁移: Pose-Robust Spatial-Aware GAN for Customizable Makeup Transfer

写在前面: 跟朋友讨论的时候,发现妆容迁移也有挺大的市场,看到一篇关于这个的介绍文,学习一下~论文地址: https://arxiv.org/pdf/1909.06956.pdf这篇论文是CVPR2020 oral. 没有开源训练代码~古老的美容行业(The age-old beauty industry)正在经历一场变革, 成千上万的博主在互联网上分享美容、化妆技巧、技术和化妆偏好。 但是,当问题来到: "我应该涂哪种唇膏或者为啥我画出来的妆跟demo video里的差这么大?"的时候,人工.

2020-07-29 23:51:01 1386

翻译 PyTorch学习笔记(21) ——损失函数

0. 前言本博客内容翻译自纽约大学数据科学中心在2020发布的《Deep Learning》课程的Activation Functions and Loss Functions部分.废话不多说,下面直接开始吧 ^ . ^1. 损失函数本文是PyTorch学习笔记(20)——激活函数的姊妹篇。PyTorch实现了许多损失函数,这些我们将介绍其中的一些。nn.MSELoss()MS...

2020-05-03 16:40:45 2656

翻译 PyTorch学习笔记(20) ——激活函数

0. 前言本博客内容翻译自纽约大学数据科学中心在2020发布的《Deep Learning》课程的Activation Functions and Loss Functions部分.废话不多说,下面直接开始吧 ^ . ^1. 激活函数本内容将回顾一些重要的激活函数以及其在PyTorch中的实现,它们来自各种各样的论文,并在一些任务上有着优异的表现~ReLU torch.nn.ReLU(...

2020-05-02 12:44:23 16880

原创 2017 LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS (训练大Batch的卷积神经网络)

0. 写在前面前一段时间调研AI芯片在尽量保证准确率的情况下,如何快速训练大规模数据集并分析其可行性。UC Berkeley的大佬尤洋[1]的这篇<LARS:LARGE BATCH TRAINING OF CONVOLUTIONAL NETWORKS> 提供了一个很好的保证在大Batch Size的分布式训练情况下,精度损失很小的策略。下面, 让我们开始~1. 摘要 (Abstra...

2020-01-26 14:24:06 2484

原创 PyTorch学习笔记(17) ——pytorch的torch.repeat和tf.tile的对比

0. 前言在对比stylegan2的D_stylegan2的时候, 我需要校对我的Minibatch_stddev_layer和作者的tf版本的区别,其中,有一个算子f.tile, 网上已经介绍的很清楚了,将其翻译为pytorch版本的时候其对应的算子没有清晰的解释,因此我将torch.repeat和tf.tile进行了简单比较(下面),基本结论是2者是一致的,可以等效替换.1. 测试比较①...

2019-12-29 19:30:24 9212

转载 如何构建一个大脑---为工程师们介绍神经生理学.

日期: 2019.11.25 星期一 晚作者: Julius Kunze (这个小伙是UCL博士, 我是看他写了基于Jax的神经网络框架而关注他的, 他的这个项目是属于刚刚起步阶段, 只有他自己1个人提交代码.)译者: Samuel Ko(即本人)1. 为什么想要翻译这篇文章?因为我看到这篇文章的中段, 里面以生物学的角度阐述了membrane potential的变化情况, 这在之前...

2019-12-02 18:20:09 1105 1

原创 Voxceleb2 视频数据集下载(国内链接)

最近需要用到voxceleb2的视频数据集做点东西, 但是发现从官网下载实在太过于费劲, 好不容易下载下来, 将将近300GB的文件切片上传至百度云. 希望能对需要这个数据集做事情的童鞋有点帮助. ^.^1. 写在前面我们使用的是牛津大学Zisserman大神率领的团队做的 <Voxceleb2: Deep Speaker Recognition>[1] 数据集的视频部分(因为...

2019-11-14 10:11:56 14221 96

翻译 反卷积的棋盘格效应

本文译自来自谷歌大脑的AUGUSTUS ODENA等人的文章: Deconvolution and Checkerboard Artifacts[1], 虽然是16年的博客了, 但是其对解释反卷积的棋盘效应已经如何规避都给出了非常好和到位的意见. 下面让我们开始~前言当我们分析由神经网络生成的图片的时候, 常常会发觉有一种奇怪的人造物 (artifacts) 的棋盘格效应 (checker...

2019-09-30 19:12:01 9357 2

翻译 机器翻译评价指标BLEU介绍

最近需要设计一个机器翻译相关的试验, 其中好多东西都不同, 先从基础的评价指标来吧. 本文翻译自Jason Brownlee的博客[1]. 可能会简化一部分内容, 如有需要请读者直接读原文.0. 前言BLEU (其全称为Bilingual Evaluation Understudy), 其意思是双语评估替补。所谓Understudy (替补),意思是代替人进行翻译结果的评估。尽管这项指标...

2019-08-28 11:15:37 50192 8

转载 ON-LSTM:用有序神经元表达层次结构

本文转载自 苏剑林[1]在科学空间上关于ON-LSTM非常好的解析, 中间加入一些细节的说明, 以期读者在理解原理之余, 对其实现也有概念. 下面开始…前言今天介绍一个有意思的LSTM变种:ON-LSTM,其中“ON”的全称是“Ordered Neurons”,即有序神经元,换句话说这种LSTM内部的神经元是经过特定排序的,从而能够表达更丰富的信息。ON-LSTM来自文章《Ordered ...

2019-08-20 11:18:58 2078 2

原创 基于TensorRT 5.x的网络推理加速(python)

本文目的主要在于如何使用TensorRT 5.x的python api来进行神经网络的推理。因为目前TensorRT只支持ONNX,Caffe和Uff (Universal Framework Format)这三种格式。这里以tensorflow的pb模型为例(可以无缝转换为uff)进行说明。0. TensoRT介绍TensorRT是英伟达(NVIDIA)开发的一个可以在NVIDIA旗下...

2019-06-15 10:30:02 8037 7

原创 gRPC python封装深度学习算法教程

最近需要提供一个包含多个神经网络推理的python代码供gRPC调用,即我需要在这个主程序的基础上封装一个支持gRPC的服务端(server)。本教程的目的在于通过简单的代码,来帮助有需求的朋友使用python来构建属于自己的gRPC服务端/客户端。0. 前言最近需要用grpc调用我们的算法模块, 对于我来讲,就是需要提供一个grpc的server,供它们的go或者c++的client进行...

2019-05-25 11:39:39 5763 1

转载 PyTorch学习笔记(15) ——PyTorch中的contiguous

本文转载自栩风在知乎上的文章《PyTorch中的contiguous》。我觉得很好,特此转载。0. 前言本文讲解了pytorch中contiguous的含义、定义、实现,以及contiguous存在的原因,非contiguous时的解决办法。并对比了numpy中的contiguous。contiguous 本身是形容词,表示连续的,关于 contiguous,PyTorch 提供了is...

2019-05-21 23:30:20 6763 2

原创 2018 轻量化网络Mobilnet v2

0. MobileNet介绍MobileNet是M为移动和嵌入式设备提出的高效模型。MobileNet基于流线型(streamlined) 架构,使用深度可分离卷积(depthwise separable convolutions, 即Xception变体结构, 详细请参考干巴他爹–Depthwise卷积与Pointwise卷积)来构建轻量级深度神经网络。论文验证了MobileNet在目标检测...

2019-05-13 14:20:17 1154

翻译 2017 如何训练一个GAN网络

GAN, 作为一种非常厉害的生成模型, 在近年来得到了广泛的应用. Soumith, PyTorch之父, 毕业于纽约大学的Facebook的VP, 在2015年发明了DCGAN: Deep Convolutional GAN. 它显式的使用卷积和转置卷积在判别器和生成器中使用. 他对GAN的理解相对深入, 特地总结了关于训练GAN的一些技巧和方式, 因为不同于一般任务, 像设置优化器, 计算l...

2019-04-08 22:26:56 4824

原创 2018 Additive Attention分析及代码

最近需要评估一些self-attention模块的效果, 除了简单好用的Squeeze-Excitation外, Additive Attention (AA) 是最近开始受到人们注意的一个新型self-attention的注意力机制, 来自犹他大学和亚马逊的作者们, 原意是将其用在BiLSTM的序列模型中的, 但是因为我是做CV方向的, 所以借由他的实现, 参考论文, 实现了精简版的(即可以...

2019-03-29 18:03:26 4825 5

翻译 Nevergrad: 一个Facebook发布的derivative-free的开源优化工具包

本文翻译自Olivier Teytaud等人于2018年底发布在code.fb.com上的一篇文章Nevergrad: An open source tool for derivative-free optimization . Nevergrad是一个新颖的东西, 按开发者的意思, 未来要将其纳入到对PyTorch等AI框架的支持中, 这引起了我的一点点兴趣, 下面开始贴正文.0. 前言...

2019-02-28 13:45:53 1470 2

原创 2017 Deformable ConvNets V1介绍及分析(包括代码)

最近Deformable Conv V2比较火, Deformable Conv的概念是MSRA的戴季峰等人提出来的, 挺不错的一个东西, 对于有形变的物体的识别效果很好, 今天先把其前身Deformable ConvNets V1做个总结, 以便打好学习Deformable ConvNets V2的基础. 发现了一个特别好的博客 imperfect00——deformable convolut...

2019-01-23 15:25:33 3315 3

空空如也

空空如也

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

TA关注的人

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