自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 人体骨骼关键点检测中的heatmap 与vectormap 生成

一.综述:    人体骨骼关键点检测已经非常成熟了,参考曹哲大神的论文,可以知道其论文中的采用自下而上的方式,检测人体骨骼关键点。    采用的方式与自顶向下的方式的区别比较大,自定向下的方式首先是检测人体,在人体区域内回归出人体的骨骼关键点坐标。    而自下而上的方式采用的关键点热图和关键点矢量图的方式。如,一共有19个关键点,就会生成19个通道的热图,每一个通道为某个关节的热图分布(...

2018-12-05 17:36:49 18804 20

原创 人体骨骼关键点检测

**人体骨骼关键点检测 **coco数据集获取coco数据集的读取openpose 网络的分析hotmap、vecmap 的生成(相当于分类中的label)

2018-12-04 10:21:26 4390

转载 函数:tf.assign()、tf.assign_add()、tf.identity()、tf.control_dependencies()

函数原型:tf.assign(ref, value, validate_shape=None, use_locking=None, name=None)  Defined in tensorflow/python/ops/state_ops.py.  将 value 赋值给 ref,并输出 ref,即 ref = value;  这使得需要使用复位值的连续操作变简单  Defi...

2018-08-06 13:42:11 607

转载 Lucas–Kanade光流算法

简介:在计算机视觉中,Lucas–Kanade光流算法是一种两帧差分的光流估计算法。它由Bruce D. Lucas 和 Takeo Kanade提出。光流的概念:(Optical flow or optic flow)它是一种运动模式,这种运动模式指的是一个物体、表面、边缘在一个视角下由一个观察者(比如眼睛、摄像头等)和背景之间形成的明显移动。光流技术,如运动检测和图像分割,时间碰撞,运动补偿编...

2018-06-26 09:31:08 553

转载 python os.path模块常用方法详解

python os.path模块常用方法详解os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。更多的方法可以去查看官方文档:http://docs.python.org/library/os.path.html1.os.path.abspath(path) 返回path规范化的绝对路径。  >>> os.path.abspath('test....

2018-06-25 15:37:44 263

转载 卷积神经网络物体检测---空间金字塔池化的

一、相关理论   本篇博文主要讲解大神何凯明2014年的paper:《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》,这篇paper主要的创新点在于提出了空间金字塔池化。paper主页:http://research.microsoft.com/en-us/um/people/kahe/e...

2018-06-01 14:59:53 1464

转载 卷积神经网络物体检测---边框回归(Bounding Box Regression)详解

Bounding-Box regression最近一直看检测有关的Paper, 从rcnn, fast rcnn, faster rcnn, yolo, r-fcn, ssd,到今年cvpr最新的yolo9000。这些paper中损失函数都包含了边框回归,除了rcnn详细介绍了,其他的paper都是一笔带过,或者直接引用rcnn就把损失函数写出来了。前三条网上解释比较多,后面的两条我看了很多pap...

2018-06-01 13:56:06 12829 2

转载 tensorflow种的梯度计算与梯度应用

gradienttensorflow中有一个计算梯度的函数tf.gradients(ys, xs),要注意的是,xs中的x必须要与ys相关,不相关的话,会报错。 代码中定义了两个变量w1, w2, 但res只与w1相关#wrongimport tensorflow as tfw1 = tf.Variable([[1,2]])w2 = tf.Variable([[3,4]])res = ...

2018-05-26 23:04:58 2092

转载 TensorFlow变量共享和数据读取

1、变量共享  前面已经说过如何进行变量的生成和初始化内容,也用到了命名空间的概念,这里说一下什么是变量共享。当我们有一个非常庞大的模型的时候免不了需要进行大量的变量共享,而且有时候还希望能够在一个地方初始化所有的变量,这就需要tf.variable_scope() 和 tf.get_variable()。   当只有两层的卷积的时候,前面的程序都是定义了两个卷积变量W1和W2(忽略b),而且简单...

2018-05-22 09:05:25 339

转载 TensorFlow中的optimizer

TensorFlow中的optimizer中包含了好几种方式(类),但是每一种方式都包含一下方法: 1. compute_gradients();2.apply_gradients();3.minimize();TensorFlow中的优化函数:SGD 所谓的随机梯度下降,就是指,由于取的样本是一批一批的,因此,每批数据之间有可能会导致参数的梯度更新方向不一致,因此叫随机梯度下降优点:在初期解决了...

2018-05-18 16:10:48 1535

转载 彻底搞清C++中的重载、重定义、重写

1、重载首先说重载,它最简单,C++中的重载和java中的差不多,都是在一个类中,方法名相同而参数不同的几个方法,但是不能靠返回类型来判断。例如:class AA{public: void print() { cout << "父类" << endl; } void print(int x ) { cout << "父类:"

2018-04-28 21:46:47 156

转载 循环神经网络--LSTM(长短时记忆网络)

循环神经网路基本的循环神经网络下图是一个简单的循环神经网络,它由输入层、隐藏层和一个输出层组成。 其中,x 是输入层的值,U是输入层到隐藏层的权重,s是隐藏层的输出的值,V是隐藏层到输出层的权重,o是输出,环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵 W就是隐藏层上一次的值作为这一次的输入的权重。如果将上图展开,就如下图所示: ...

2018-04-28 14:01:24 6860

转载 生成对抗神经网络

对抗生成网络,其实就像周伯通,左手打右手,不用陪练,自己就能练成绝世武功! 先说一个对我学习有很大帮助的故事: 刚参加工作时,顶头上级是跟我年纪相仿的年轻人,据说家里有点关系。 有一天交给我一个任务,让我写个部门工作总结,我这刚参加工作,哪会写这个啊?他说没关系,写完给他看,他帮我。 ...

2018-04-23 15:12:33 3076

转载 TensorFlow Serving 尝尝鲜

tensorflow保存模型有很多的方式,究竟每一种方式适合干什么呢? 我大致的一个理解是: ckpt模型适合的是tf_serving部署 .pb文件是轻量级的,适合手机端的移植,其中,tf.saved_model.builder.SavedModelBuilder的保存的.pb文件不知道是否已经将变量转换为了常量???可留言解释,谢谢。一点不了解tf_serving部署,所以

2018-04-21 23:42:07 351

转载 TensorFlow 保存模型为 PB 文件

通常我们使用 TensorFlow时保存模型都使用 ckpt 格式的模型文件,使用类似的语句来保存模型tf.train.Saver().save(sess,ckpt_file_path,max_to_keep=4,keep_checkpoint_every_n_hours=2) 使用如下语句来恢复所有变量信息saver.restore(sess,tf.train.latest_checkpoint(

2018-04-21 23:10:32 4432 3

转载 tensoeflow 冻结网络模型

冻结模型文件本文基于mnist与lenet,讲述如下两个问题:1.如何将训练好的网络模型冻结,形成net.pb文件?2.如何将net.pb文件部署到TensorFlow中做inference?pb文件保存的步骤 1.需要给input与最终的预测值取个名字,便于部署时输入数据并输出数据 2.利用graph_util.convert_variables_to_constants将网络中模型参数变量转

2018-04-21 22:30:20 1029

转载 tensorflow 生成.pb文件,加载.pb文件---迁移学习

这篇薄荷主要是讲了如何用tensorflow去训练好一个模型,然后生成相应的pb文件。最后会将如何重新加载这个pb文件。train 首先说一下train。一开始当然是读图片啦。用io.imread来读取每一张图片,然后resize成vgg的输入的大小(224,224,3),最后分别放入了data和label中。def read_img(path): cate = [pa...

2018-04-21 22:05:14 6994

转载 TensorFlow上实现AutoEncoder自编码器

TensorFlow上实现AutoEncoder自编码器一、概述AutoEncoder大致是一个将数据的高维特征进行压缩降维编码,再经过相反的解码过程的一种学习方法。学习过程中通过解码得到的最终结果与原数据进行比较,通过修正权重偏置参数降低损失函数,不断提高对原数据的复原能力。学习完成后,前半段的编码过程得到结果即可代表原数据的低维“特征值”。通过学习得到的自编码器模型可以实现将高维数据压...

2018-04-21 19:49:04 906

转载 局部变量、全局变量、类数据变量

在结构化程序设计中,有人提出“数据结构+算法=程序设计”,数据结构就是数据的组织,算法是用函数实现的,可见数据和函数很早就被看作程序设计的重点了。面向对象程序设计中,这种观点应稍作一下修改:“数据结构+算法=对象”。就是数据和函数构成了类的对象。面向对象程序设计中,数据用来描述对象的属性,函数是行为,用来处理数据。将数据和函数封装到一个类里,类中的函数成员可以访问数据成员,函数成员之间可以实现...

2018-04-20 16:25:24 693

原创 函数、内联函数、类函数

函数的运行原理函数是一种更高级的抽象。它的引入使得编程者只关心函数的功能和使用方法,而不必关心函数功能的具体实现;函数的引入可以减少程序的目标代码,实现程序代码和数据的共享。但是,函数调用也会带来降低效率的问题,因为调用函数实际上将程序执行顺序转移到函数所存放在内存中某个地址,将函数的程序内容执行完后,再返回到转去执行该函数前的地方。这种转移操作要求在转去前要保护现场并记忆执行的地址,转回后

2018-04-20 15:52:47 411

转载 static关键字总结

static关键字总结 static,即静态声明。它在 作用域、存储方式、生命周期 等各方面影响一个变量或函数。文章将从 局部变量、全局变量、普通函数、类的static成员(包括数据成员与成员函数)来总结static。全局变量   &nbsp; 所有的全局变量,无论是否是static的,都是存储于静态存...

2018-04-19 15:55:47 207

原创 头文件、源文件 及extern的使用

头文件与源文件的作用1. 编译器的工作过程简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程:1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句,再将之汇编成跟CPU相关的二进制码,生成各个目标文件 (.obj文件) 4.连接阶段,将各个目标文件中的各段代码进行绝对地址定位,生成...

2018-04-19 14:13:42 1512

转载 c++ extern 关键字的使用

1. 序言extern是一个关键字,它告诉编译器程序中存在着一个变量或者一个函数,如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义。因此,extern的功能主要为声明外部有一个可用的函数或者变量(通常,这些变量时在cpp或者c文件中定义的),而且这些变量和函数是全局可见的。2. 现代程序编译流程简要介绍在具体讲述extern之前,觉得十分有必要介绍下现代程

2018-04-19 10:04:04 260

转载 TensorFlow 模型保存/载入

TensorFlow 模型保存/载入我们在上线使用一个算法模型的时候,首先必须将已经训练好的模型保存下来。tensorflow保存模型的方式与sklearn不太一样,sklearn很直接,一个sklearn.externals.joblib的dump与load方法就可以保存与载入使用。而tensorflow由于有graph, operation 这些概念,保存与载入模型稍显麻烦。一、基本方法网上搜索

2018-04-14 23:08:48 263

转载 np.dot()

对NumPy中dot()函数的理解今天学习到numpy基本的运算方法,遇到了一个让我比较难理解的问题。就是dot函数是如何对矩阵进行运算的。一、dot()的使用参考文档:https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.htmldot()返回的是两个数组的点积(dot product)1.如果处理的...

2018-04-04 21:38:17 3622

转载 自我学习,监督学习,半监督学习和迁移学习的区别

区别自我学习和半监督学习一样,当前手头上只有少量训练样本,但是周围手头上还有大量无标注样本。举一个经典的例子,分离大象和犀牛。 对于监督学习来说,我们手头有大量大象的样本和犀牛的样本,接下来训练分类器,进行分类,大家都知道的。 对于迁移学习,则是指我们手头上有大量羊的样本和马的样本(已标记),少量的大象和犀牛的样本,接下来就要从羊和马的样本中选出有效的样本分别加入到大象和犀牛的标记样本中,然后再

2018-04-02 09:21:35 11977

转载 TensorFlow上实现AutoEncoder自编码器

TensorFlow上实现AutoEncoder自编码器######################################################################################## 前面讲到的都是有监督学习,他的重要特征是数据都是有标记的。无标记的数据应该用什么样的网络模型来学习呢?这里用一个叫做-自编码网络-的网络模型。 AutoEn

2018-04-02 08:48:31 360

转载 tfrecord文件应用流程

对于输入数据的处理,大体上流程都差不多,可以归结如下将数据转为 TFRecord 格式的多个文件用 tf.train.match_filenames_once() 创建文件列表用 tf.train.string_input_producer() 创建输入文件队列,可以将输入文件顺序随机打乱用 tf.TFRecordReader() 读取文件中的数据用 tf.parse_single_exa

2018-03-30 14:27:03 540

转载 TensorFlow数据处理(输入文件队列)

生成样例数据先生成 TFRecord 格式的样例数据,Example 的结构如下,表示第1个文件中的第1个数据{ 'i':0, 'j':0}生成数据的代码如下(以下代码都实现自《TensorFlow:实战Google深度学习框架》)import tensorflow as tf# 创建TFRecord文件的帮助函数def _int64_feature(value): r

2018-03-30 14:23:20 517

转载 tensorflow模型持久化

模型持久化

2018-03-30 14:15:36 259 1

转载 使用全连接神经网络+滑动平均+正则化+指数衰减法+激活函数

【TensorFlow】MNIST(使用全连接神经网络+滑动平均+正则化+指数衰减法+激活函数) MNIST / 滑动平均 /

2018-03-30 14:05:47 501

转载 c++多态详解

C++ 多态详解多态现在一般的用法,就是拿一个父类的指针去调用子类中被重写的方法。但我搞不懂为什么要那么做,我们直接在子类中写一个同名的成员函数,从而隐藏父类的函数不就行了么?将父类比喻为电脑的外设接口,子类比喻为外设,现在我有移动硬盘、U盘以及MP3,它们3个都是可以作为存储但是也各不相同。如果我在写驱动的时候,我用个父类表示外设接口,然后在子类中重写父类那个读取设备的虚函数,那这样电脑的...

2018-01-26 21:54:49 201

转载 把大端、小端与堆、栈的生长方向联系起来记忆

把大端、小端与堆、栈的生长方向联系起来记忆   对于大端、小端的区别,可能看资料的时候确实理解了,但过段时间就搞混了;高位低地址、低位高地址、高位高地址、低位低地址…是不是看起来就好头大,哪个对应哪个啊。其实可以把大小端与堆栈联系起来记忆,虽然两者讲的不是一个粒度的,但大小端模式里高低位的存放与堆和栈的生长方向有一个共同点

2018-01-25 09:02:02 369

转载 深入理解C++三大特性之一 ——多态

深入理解C++三大特性之一 ——多态1.多态的实现效果 多态:同样的语句调用能呈现不一样的表现形态; 2.多态实现的三个条件 a)继承 b)virtual关键字修饰 c)父类指针指向或引用子类对象 3.多态的C++实现 通过virtual关键字,告诉C++编译器对这个函数要支持多态; 不要在编译期间根据指针类型判断如何调用;而是要根据运行期间指针

2018-01-24 14:26:05 206

转载 C++ 多态的实现及原理

C++ 多态的实现及原理 C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数  1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。

2018-01-24 13:55:28 234

转载 c++初始化列表的详解2

C++构造函数初始化列表与赋值 C++类中成员变量的初始化有两种方式:         构造函数初始化列表和构造函数体内赋值。下面看看两种方式有何不同。         成员变量初始化的顺序是按照在那种定义的顺序。1 内部数据类型(char,int……指针等)class Animal{public: Anim

2018-01-17 10:21:40 126

转载 c++初始化列表详解

C++ 初始化列表 何谓初始化列表与其他函数不同,构造函数除了有名字,参数列表和函数体之外,还可以有初始化列表,初始化列表以冒号开头,后跟一系列以逗号分隔的初始化字段。在C++中,struct和class的唯一区别是默认的访问性不同,而这里我们不考虑访问性的问题,所以下面的代码都以struct来演示。struct foo{ str

2018-01-17 09:39:11 341

原创 类初始化列表简介

类的构造函数:类的构造函数是类的一种特殊的成员函数,它会在每次创建类的新对象时执行。构造函数的名称与类的名称是完全相同的,并且不会返回任何类型,也不会返回 void。构造函数可用于为某些成员变量设置初始值。类的定义如下:class Line{ public: void setLength( double len ); double

2018-01-17 09:33:01 479

转载 c++接口的实现

C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现。C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念。如果类中至少有一个函数被声明为纯虚函数,则这个类就是抽象类。纯虚函数是通过在声明中使用 “= 0” 来指定的,如下所示:class Box{ public: // 纯虚函数 v

2018-01-16 10:54:46 1771

转载 python中接口实现

什么是接口 ?接口只是定义了一些方法,而没有去实现,多用于程序设计时,只是设计需要有什么样的功能,但是并没有实现任何功能,这些功能需要被另一个类(B)继承后,由 类B去实现其中的某个功能或全部功能。个人的理解,多用于协作开发时,有不同的人在不同的类中实现接口中的各个方法。在python中接口由抽象类和抽象方法去实现,接口是不能被实例化的,只能被别的类继承去实现相应的功能。个人觉得接口在pyt

2018-01-16 10:32:17 20382

空空如也

空空如也

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

TA关注的人

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