自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (1)
  • 收藏
  • 关注

转载 Windows + VS2019点云库(PCL)配置

简述PCL(Point Cloud Library)作为一个优秀的点云库,目前已经开源并且集成了许多优秀学者提出的高效的算法,值得深入学习。本文将以Windows 10和Visual Studio 2017开发环境为例,讲解如何配置点云库。环境Windows Visual Studio准备工作安装Visual Studio教程中使用的是Visual Studio 2017 ...

2019-07-05 15:59:40 13700 4

转载 Windows + VS2017超详细点云库(PCL)配置

转自简述PCL(Point Cloud Library)作为一个优秀的点云库,目前已经开源并且集成了许多优秀学者提出的高效的算法,值得深入学习。本文将以Windows 10和Visual Studio 2017开发环境为例,讲解如何配置点云库。环境Windows Visual Studio准备工作安装Visual Studio教程中使用的是Visual Studio 2...

2019-07-03 16:00:16 4590

原创 (tensorflow)模型的保存和载入

我们在上线使用一个算法模型的时候,首先必须将已经训练好的模型保存下来。tensorflow提供了两种保存模型的方式,一种是使用tf.train.Saver函数来保存TensorFlow程序的参数和完整的模型结构,保存的文件后缀为 “.ckpt”;另一种方式是将计算图保存在一个 “.pb” 文件中。使用tf.train.saver()进行模型的保存保存其中需要注意的是:变量在定义的时候必...

2019-04-25 12:19:00 421

原创 (目标检测)关于SPPNet中一些基础知识的理解

前言一、(Bag of words)词袋模型的基本原理该部分内容主要来自博客词袋一词最初源于信息检索,是信息检索领域常用的文档表示方法。在信息检索中,BoW 模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。也就是说,文档中任意一个位置出现的任何单词,都是不受该文档语义影响而独立选择的。例如有如...

2019-04-21 12:12:52 277

原创 (目标检测)关于R-CNN中一些基础知识的整理

前言2014年CVPR上的经典之作:《Rich feature hierarchies for Accurate Object Detection and Segmentation》,提出了一个具有实际工程意义的目标检测的卷积网络架构,这就是大名鼎鼎的R-CNN,如果想要探索目标检测方面的知识,R-CNN无疑是最佳的入门算法。R-CNN目标检测算法总体可以分为三大模块:一、region pr...

2019-04-20 21:34:15 208

原创 (图论)最小生成树

问题描述在 n 个城市之间铺设光缆,以保证这n个城市中的任意两个城市之间都可以通信。由于铺设光缆的价格很高,且各个城市之间的距离不同,这就使得在各个城市之间铺设光缆的价格不同。那么如何选择铺设线路的方案,才能使费用最低呢?该问题就涉及到有权图的最小生成树问题。基本概念连通图:在无向图中,若任意两个顶点之间都有路径相通,则称该图为连通图。强联通图:在有向图中,若任意两个顶点之间都有路径相通...

2019-04-14 11:00:24 587

原创 (深度学习)Batch Normalization 批标准化

本文转自:【深度学习】深入理解Batch Normalization批标准化机器学习领域有个很重要的假设:independent and identically distributed(IID)独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通过训练数据获得的模型能够在测试集获得好的效果的一个基本保障。而 Batch Nornalization 的作用就是在深度神经网络训练过程中...

2019-04-08 22:35:14 272

原创 牛顿法(Newton)的应用

1、求解方程并不是所有的方程都有求根公式,或者求根公式很复杂,导致求解困难。利用牛顿法,可以迭代求解。原理是利用泰勒公式,在 x0x_0x0​ 处展开,且展开到一阶,即:f(x)=f(x0)+(x−x0)f′(x0)f(x) = f(x_0) + (x - x_0)f'(x_0)f(x)=f(x0​)+(x−x0​)f′(x0​)求解方程 f(x)=0f(x) = 0f(x...

2019-04-08 15:22:19 2339

原创 (C++算法工程师考点总结)面向对象编程

一、虚函数表1、基础知识:32位操作系统指针长度为4bytes,64位操作系统指针长度为8bytes。new一个对象时,只为类中的成员变量分配空间,对象之间共享成员函数。当一个类(A)继承另一个类(B)时,类A会继承类B的函数的调用权。所以如果一个基类包含了虚函数,那么其继承类也可调用这些虚函数,换句话说,一个类继承了包含虚函数的基类,那么这个类也拥有自己的虚表。虚函数表:虚函数表...

2019-03-22 16:32:22 174

原创 (推荐引擎)实现基础工程

推荐引擎模块接收请求处理请求返回结果

2019-03-20 22:06:34 223

原创 (C++算法工程师考点总结)基础

1、源程序是如何被编译成可执行的二进制程序的预处理: 在程序编译之前,由预处理器对C++源程序完成预处理工作。预处理主要将源程序中的宏定义指令、条件编译指令、头文件包含指令以及特殊符号完成相应的替换工作。(该步骤不进行语法检查,这就是inline函数比宏定义安全的原因)编译器: 以预编译的输出作为输入,利用C++运行库,通过词法分析和语法分析,在确认所有的指令都符合语法规则时,将其翻译成等价...

2019-03-20 12:08:28 465

原创 机器学习性能度量指标(precision、recall、PR曲线、F1、ROC、AUC、IOU、mAP)

1、precision、recall、PR curve、F1在信息检索等任务中,我们经常会关心“检索出的信息中有多少比例是用户感兴趣的”以及“用户感兴趣的信息中有多少被检索出来了”。precision(查准率)与recall(查全率)就是此类需求的性能度量指标。对于一个二分类问题,我们可以根据模型的分类结果将其分为四类:TP、FP、TN、FN则查准率与查全率的定义分别为:precisio...

2019-03-18 15:29:43 11202 2

原创 (计算机视觉)计算机视觉基础

一、常用的图像处理库OpenCVCxImageCImgFreeImage二、开源项目OpenBR:人脸识别相关EasyPR:车牌识别相关三、开发工具相关OpenCV中VC库的版本与Visual Studio版本的对应关系:VC8 —> 2005VC9 —> 2008VC10 —> 2010VC11 —> 2012VC12 —&

2019-03-15 12:21:22 532

原创 (图论)周围区域问题

问题描述

2019-03-14 16:31:48 389

原创 (图论)广度优先搜索(Breadth First Search, BFS)

描述最简单、直接的图搜索算法:从起点开始层层扩展第一层是离起点距离为1的第二层是离起点距离为2的…本质就是按层(距离)扩展,无回退。BFS算法分析1、算法流程:1、给定某起点 a ,将 a 放入缓冲区,开始搜索;2、过程:假定某时刻缓冲区内的节点为 abcabcabc,则访问节点 aaa 的邻接点 a1a2a3a_1 a_2 a_3a1​a2​a3​,同时缓冲区变成 ...

2019-03-14 11:28:14 366

原创 限制性玻尔兹曼机(Restricted Bottzmann Machine,RBM)

背景介绍一、玻尔兹曼机玻尔兹曼机简单地说就是一个马尔科夫随机场(Markov Random Field),即一个无向图模型。但是玻尔兹曼机比无向图模型还是多了一些东西,就是玻尔兹曼机将其中的节点分为两类,一类是 hidden nodes,另一类是 visible nodes。如上图所示,就是一个玻尔兹曼机,其中蓝色的是 hidden nodes,白色的是 visible nodes。对于...

2019-03-13 22:18:43 666

原创 (字符串)求一个字符串的全排列

一、问题描述给定字符串 S[0,…,N-1],设计算法,枚举 S 的全排列。二、问题分析全排列的问题规模是阶乘级的,而递归算法的时间复杂度就是用递归求的,所以考虑用递归来求解问题:分别以1,2,3,4作为首字符,剩余的字符串继续做全排列,即做递归。三、带重复字符的字符串的全排列带重复字符的全排列就是每个字符分别与它后面非重复出现的字符交换。即第i个字符与第j个字符进行交换之前,...

2019-03-11 21:57:55 994

原创 (字符串)字符串的循环左移

一、问题描述字符串的循环左移: 给定一个字符串 S[0,…,N-1],要求把 S 的前 K 个字符移动到 S 的尾部,如把字符串 ‘abcdef’ 前面的 2 个字符 ‘ab’ 移动到字符串的尾部,得到新字符串 ‘cdefab’(字符串循环左移k,也即循环右移n-k)。算法要求: 时间复杂度为 O(n),空间复杂度为 O(1)二、问题分析1、暴力移位法每次循环左移1位,调用k次即可时...

2019-03-11 17:41:31 775

原创 字符串编辑距离(Edit Distance)

一、问题描述定义字符串编辑距离(Edit Distance),是俄罗斯科学家 Vladimir Levenshtein 在 1965 年提出的概念,又称 Levenshtein 距离,是指两个字符串之间,由一个转变成另一个所需的最少编辑操作次数。许可的编辑操作包括:将一个字符替换成另一个字符插入一个字符删除一个字符应用1. DNA分析:基因学的一个主要主题就是比较DNA序列并尝...

2019-03-11 17:05:22 1629

原创 Longest Increasing Subsequence

问题描述最长递增子序列:给定一个长度为 N 的数组,找出一个最长的单调递增子序列。例如:给定数组{5,6,7,1,2,8},则其最长的单调递增子序列为{5,6,7,8},长度为4。问题分析一、可以将 LIS 问题转换为 LCS(Longest Common Subsequence) 问题进行求解。方法如下:原数组为 A{5,6,7,1,2,8}排序后为 A’{1,2,5,6,7,8}...

2019-03-11 15:51:33 179

原创 Longest Common Subsequence

问题描述LCS 的定义:Longest Common Subsequence,最长公共子序列,即两个序列 X 和 Y 的公共子序列中,长度最长的那个,并且公共子序列不同于公共字串,公共子序列可以是不连续的,但是前后位置不变。LCS 的意义:求两个序列中最长的公共子序列的算法,广泛的应用在图形相似处理、媒体流的相似比较、计算生物学方面。生物学家常常用该算法进行基因序列比对,由此推测序列的结构...

2019-03-11 15:36:43 2687

原创 C++中using的使用总结

1、别名声明在C++中,可以使用 typedef 为复杂的类型名字定义一个简单并且易于理解的类型别名,格式如下:typedef double wages; // wages 是 double 的同义词typedef wages base, *p; // base 也是 double 的同义词,p 是 double* 的同义词在C++的新标准中,还规定了一种新的方法可以实...

2019-03-07 21:37:38 562

原创 TensorFlow中tf.add_to_collection,tf.get_collecton和tf.add_n的使用方法简介

tf.add_to_collection(name, value)把 value 中的变量放入到 name 作为 key 的一个集合里,也就是把多个变量统一放在一个列表中。# 在 loss 作为 key 的集合中添加变量>>> tf.add_to_collection('loss', tf.Variable(tf.truncated_normal([3, 3], stdde...

2019-03-06 17:40:10 331

原创 Python中的格式化输出详解

格式化输出详解在学习C语言或者Python时,一个很头疼的问题就是格式化输出,因此在本文中,将几种常见的格式化输出形式进行归纳总结,以便记忆。Python中的格式化字符串在 % 操作符的左侧放置一个需要进行格式化的字符串,这个字符串带有一个或多个嵌入的转换目标,都以 % 开头,如(%d)。在 % 操作符的右侧放置一个(或多个,嵌入到元组中)对象,这些对象将会插入到左侧想让 Python ...

2019-03-05 15:44:10 1832

原创 Optimizer(BGD,SGD,MBGD,Momentum,NAG,Adagrad,Adadelta,RMSprop,Adam)详解

一、optimizer 算法介绍1、Batch Gradient Descent(BGD)BGD采用整个训练集的数据来计算 cost function 来进行参数更新。θ=θ−α⋅∇θJ(θ)\theta = \theta - \alpha \cdot \nabla_{\theta}J(\theta)θ=θ−α⋅∇θ​J(θ)for i in range(iteration): ...

2019-02-27 12:14:50 394

原创 交叉熵(cross entropy)与相对熵(relative entropy,KL divergence)的理解

交叉熵(cross entropy)交叉熵在机器学习中的地位十分重要,常在Logistic回归或者神经网络中作为Loss Function来使用,下面先详细谈一谈交叉熵的定义。假设现在有关于样本集的两个概率分布p(x)p(x)p(x)和q(x)q(x)q(x),其中p(x)p(x)p(x)为真实分布,q(x)q(x)q(x)为非真实的分布(可以理解为我们通过该样本集训练得到的分布)。如果我们用...

2019-02-21 12:11:12 922

原创 熵、条件熵、联合熵、互信息的理解

熵在信息论中,熵(entropy)是表示随机变量不确定性的度量,如果一个事件是必然发生的,那么他的不确定度为0,不包含信息。假设XXX是一个取有限个值的离散随机变量,其概率分布为:P(X=xi)=piP(X=x_i)=p_iP(X=xi​)=pi​则随机变量XXX的熵定义为:H(X)=−∑i=1npilog(pi)H(X)=-\sum_{i=1}^np_ilog(p_i)H(X)=−i=1...

2019-02-20 20:27:02 5611

原创 C++中回调函数使用详解(普通函数作为回调函数以及类的成员函数作为回调函数)

引言:在C++编程,尤其时写Qt程序时,需要大量使用回调函数,在网上也有很多大牛对回调函数的使用进行了讲解,但是很多都是针对某一个或者两个特定的类型的。我在这篇文章中对网上关于回调函数的使用进行了归纳总结,并且对每一种类型的回调函数都写了一个简单的例子来实现,每个例子都可以在vs2015中编译通过。其中需要用到 bind和function的代码,由于使用了C++11的新标准,所以在vc6.0中...

2018-11-06 16:17:06 3585

原创 图像插值算法的原理及C++实现

简介:在图像的处理过程中,经常需要对图像进行尺寸变换、旋转或者扭曲等操作,在进行这些操作之后,原图像的尺寸往往就发生了改变,为了保持变换后的图像不失真,就需要对图像进行插值。常见的插值方法有最近邻插值和双线性插值。最近邻插值:最近邻插值是最简单的一种插值方式,就是在对图像进行坐标变换之后,选取原图像中距离最近的像素点进行插值(简单说就是将目标图像的像素位置映射到源图像之后,对x、y...

2018-09-11 11:46:25 3285

原创 OTSU算法的原理介绍及C++和Python实现

前言:最近由于在做图像处理方面的工作,需要自己编写提取图像中对象边缘的算法,我目前所采用的事最简单的阈值分割算法,在此算法中最重要的一个参数就是用于分割前景和背景的阈值。刚开始做的时候阈值都是通过手动调整然后观察效果来设定的,之后再网上查阅了许多前辈的博客之后,了解了OTSU算法,可以用于自动计算最佳的分割阈值。原理:大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津...

2018-09-07 17:15:10 4586 4

原创 C++模板类的使用以及运算符重载的实现

一、类模板及运算符重载的实现如同函数模板一样,使用类模板使用户可以为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数、某些成员函数的返回值能取任意类型。类模板是对一批仅仅成员数据类型不同的类的抽象,程序员只要为这一批类所组成的整个类家族创建一个类模板,给出一套程序代码,就可以用来生成多种具体的类,(这类可以看作是类模板的实例),从而大大提高编程的效率。定义类模板的一般形式是...

2018-07-04 17:02:26 13484 6

原创 JAVA异常处理总结

异常处理:在写Java程序时,异常处理是比较重要的地方,所以刚刚参考书中的相关章节,把异常处理的知识系统整理了一下。一)异常的产生:1)在程序运行时由 Java 虚拟机创建和抛出的异常2)在 Java 类库的函数中创建和抛出的异常3)程序员自己的函数中创建和抛出的异常二)抛出异常:异常的抛出需要 throw 关键字。在定义一个函数时,如果在这个函数内部可能会抛出某种类型的异常,那么要在函数名的后面...

2018-03-27 17:07:04 430 2

原创 C语言实现Huffman Tree(参考严蔚敏《数据结构》部分伪码)

Huffman树,又称最优二叉树,是一类带权路径最短的树,有着广泛的应用。Huffman树中没有度为1的节点,所以一棵有 n 个叶子节点的 Huffman 树中,总共有 2n-1 个结点。构建赫夫曼树的步骤:1)根据给定的 n 个权值 {w1,w2,w3,...,wn} 构成 n 棵二叉树的集合 F={T1,T2,T3,...,Tn},其中每棵二叉树 Ti 中只有一个带权为 wi 的根节点,其左右...

2018-03-26 11:53:15 774 1

原创 C语言中指针型函数返回值相关的问题

指针型函数的返回值,应该是变量地址、数组首地址或者已经定向的指针变量,也可以是结构变量地址、结构数组的首地址。并且要着重注意的是不能将该函数内部局部变量的地址作为返回值,因为在函数调用结束之后,函数内部的局部变量就自动消失了,存放它们的空间也就被释放了。之前在参考书中看到的一个例子,来说明这个问题正好:#include char *strcut(char *s, int m, int

2018-01-24 11:22:35 1720

基于最近邻插值及双线性插值的图像缩放(C++)

利用C++实现了最近邻插值以及双线性插值的图像插值算法,将两种算法并成一个API,可以加深对于这两个插值算法的理解

2018-09-11

空空如也

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

TA关注的人

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