自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 LibSvm源码解析~算法

算法流程如下图所示,是2.6版本C-SVC型svm算法实现流程,核函数采用常用的RBF函数。 函数解析算法原理归纳

2017-01-23 17:03:07 2094

原创 LibSvm使用说明

综述SVM支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别、分类、以及回归分析。总得来说,SVM就是通过训练得到一个超平面 ,将样本分类,保证被分类的样本中离超平面近的一些点距离超平面距离(几何间隔)最大,这些离超平面近的点叫作支持向量(之所以叫支持向量而不叫支持样本是因为每个样本均认为是一个向量,每个特征是向量的一个元素)。LibSvm

2017-01-21 17:31:10 6755 1

转载 转载CSDN博客

转载于:http://blog.csdn.NET/jiangping_zhu/article/details/18044109作者:包心菜加糯米饭1、找到要转载的文章,用chrome浏览器打开,右键选择审查元素2、在chrome中下方的框里找到对应的内容,html脚本中找到对应的节点,选中节点,网页上被选中内容会被高亮显示,然后右键菜单选中 Copy as HTML

2017-01-19 14:10:26 816

原创 SVM通俗导论 之 注释版

支持向量机通俗导论(理解SVM的三层境界)作者:July 。致谢:pluskid、白石、JerryLead。说明:本文最初写于2012年6月,而后不断反反复复修改&优化,修改次数达上百次,最后修改于2016年11月。声明:本文于2012年便早已附上所有参考链接,并注明是篇“学习笔记”,且写明具体参考了pluskid等人的文章。文末

2017-01-19 14:03:22 1168

原创 运动目标检测 之 GMM背景模型算法

综述原理算法逻辑算法源码

2017-01-05 18:57:06 8624

原创 机器学习 之 Hog特征

Hog特征综述背景方向梯度直方图(Histogram of Oriented Gradient, HOG)特征是一种在计算机视觉和图像处理中用来进行物体检测的特征描述子。它通过计算和统计图像局部区域的梯度方向直方图来构成特征。它是一种能够很好地描述图像局部纹理或边缘的方向密度分布的一种特征。Hog特征结合 SVM分类器用于行人检测具有很好效果。两个概念像素点梯度与梯度方向假设图像中像素点(x,y)的

2017-01-05 16:11:01 1900

原创 机器学习 之 LBP特征

综述:: LBP特征:Local Binary Pattern,局部二值模式特征,是一种用来描述图像局部纹理特征的算子。LBP特征算子计算简单、效果较好,数据量小,因此LBP特征在计算机视觉的许多领域都得到了广泛的应用,LBP特征比较多用于目标检测中。LBP计算出的特征具有灰度不变性和旋转不变性等显著优点,例如对光照不敏感。 LBP的基本算子原始的LBP算子定义为在3*3的窗口内,以窗口中心像素

2017-01-04 11:23:54 7634

原创 Python语法 之 结构与函数

综述:计算机的流程控制主要通过三种结构来控制的:顺序结构,选择结构,循环结构。下面讲述下python语言的这三种结构的语法模式。选择结构并列if语句所谓选择结构就是一个或多个条件判断,及其执行语句组成的代码模块。python的基本if语句的结构模式大致如下:if <判断条件1>: <执行语句1>elif <判断条件2>: <执行语句2>(中间可以有多个这样的条件判断及执行语句)

2016-12-23 17:24:55 1948

原创 Python语法 之 基本数据类型

数据类型整数int = 20print int 效果如下: 浮点型float = 6.6print float效果如下: 字符串字符串可以用单引号,双引号,以及三引号括起来形成字符串,单引号与双引号括起来的用法完全相同,三引号字符串,表示多行的字符串,可以在三引号中自由的使用单引号和双引号。 列表列表的定义列表名=[A,B,C]其中A,B,C可以是字符串等任意类型的变量的定义,例如list

2016-12-22 11:39:54 610

原创 Python语法 之 标识符、运算符、表达式

标识符标识符规则 1、标识符有字母、数字、下划线组成。 2、标识符不能以数字开头。 3、标识符是区分大小写的。 看起来标识符与C语言的规则挺相似的,但是还是有些区别: A~单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问。 B~双下划线开头的(__foo)代表类的私有成员。

2016-12-21 15:35:17 1819

原创 ubuntu系统两台机器互传文件

1、sudo apt-get update: 下载前更新一下源,防止有些包找不到2、sudo apt-get install openssh-server :安装ssh的服务端(默认情况下,ssh客户端也一并安装了)3、sudo apt-get install openssh-client:安装ssh的客户端 4、sudo /etc/init.d/ssh resart:重启下,用 ps -e | g

2016-12-21 11:20:39 5745 1

原创 ubuntu各目录含义

/boot/: 启动文件,所有与系统启动有关的文件都保存在这里/boot/grub/:grub引导器相关的配置文件都在这里/dev/:此目录中保存了所有设备文件,例如,使用的分区:/dev/hda,/dev/cdrom 等。/proc/:内核与进程镜像 /mnt/:此目录主要是作为挂载点使用/media/: 挂载媒体设备 包括软盘,光盘,DVD等设备文件/root/ root用户的HOME目录

2016-12-21 10:55:58 6783

原创 Ubuntu下的文件比较工具--meld

在ubuntu中自带的文件比较工具:diff在ubuntu中需要比较文件或者文件夹的差异的一个比较好的工具:meldapt-get install meld安装完后,在/usr/bin/下找到meld,然后发送到桌面上, 或者在命令行执行meld命令打开后选择:file->new ,打开文件选择界面,输入两个文件的路径,后即可看到两个文件的差异情况。安装后执行命令meld create_mnist

2016-12-05 16:56:23 4190

原创 ubuntu安装nvidia显卡驱动(双显卡)

下面记录下我的笔记本在系统ubuntu 14.04中安装geforce 920m的nvidia显驱动的经历:::安装nvidia显卡驱动后进入系统黑屏先是在按Ctrl-Alt-F1进入命令行界面,关闭了lightdm的桌面系统,安装nvidia-340驱动,重启后再次进入系统黑屏。(ps:这里我是仿照这个博客http://blog.csdn.net/lanxuecc/article/details/

2016-12-01 15:55:28 13647

原创 编译cuda-7.5 samples文件报错

在ubuntu 14.04系统中安装cuda-7.5时编译samples文件。进入/usr/local/cuda-7.5/samples/目录用make命令编译,报错如下::: 主要错误:cannot find lnvcuvid解决方法:::: 1、 修改 /usr/local/cuda-7.5/samples/common 下的findglib.mk文件 将UBUNTU_PKG_NAME =

2016-12-01 15:39:03 4691 2

原创 vs2008每次打开重新配置环境

vs2008每次打开都要重新配置环境,“Visual Studio is configuring environment for first time use”,导致原来的一些设置不起作用。遇到这个问题的解决方法::::Tools > Options…>Environment>Import and Export Settings在Automatically save my settings to t

2016-11-29 11:04:37 1243

原创 caffe源码 之 dropout层

综述:::: dropout层的作用是防止训练的时候过拟合。在训练的时候,传统的训练方法是每次迭代经过某一层时,将所有的结点拿来做参与更新,训练整个网络。加入dropout层,我们只需要按一定的概率(retaining probability)p 来对weight layer 的参数进行随机采样,将被采样的结点拿来参与更新,将这个子网络作为此次更新的目标网络。这样做的好处是,由于随机的让一些节点不

2016-11-24 14:29:09 4339 4

原创 caffe源码 之 Relu层

ReLU是近些年非常流行的激活函数。相比于sigmoid与Tanh,它具有一定的优越性,这三者对比可见https://zhuanlan.zhihu.com/p/21462488?refer=intelligentunit,它的函数公式是f(x)=max(0,x)。换句话说,这个激活函数就是一个关于0的阈值。如下图::: 下面记录我在看relu层时的代码注释:::Relu_layer.hpp:::#

2016-11-22 12:26:13 4513

原创 python绘制caffe实例的网络模型

在所有目录与文件均是基于caffe根目录!!!!! python/draw_net.py可以将网络模型由prototxt变成一张图片。在绘制之前,先安装两个库:::1、安装GraphVizsudo apt-get install GraphVizGraphviz的是一款图形绘制工具,用来被python程序调用绘制图片。2、安装pydotsudo pip install pydotpydot是pyt

2016-11-21 16:52:59 1833

原创 caffe源码 之 Solver类

Solver这个类实现了优化函数的封装,其中有一个protected的成员:shared_ptr net_;,这个成员是一个指向Net类型的智能指针(shared_ptr),Solver正是通过这个指针来和网络Net来交互并完成模型的优化。不同的子类分别实现了不同的优化方法:SGDSolver, NesterovSolver, AdaGradSolver, RMSPropSolver, AdaDel

2016-11-18 17:25:38 3806

原创 caffe源码 之 卷积层实现

卷积神经网络(CNN)最核心的一个算法就是卷积运算,caffe框架在Conv_layer.cpp中实现了具体的卷积运算。Conv_layer.cpp中的类conv_layer并非是最基础的卷积层,它是继承了base_conv_layer,这个才是最基础的卷积层,很多卷积函数实际上是在这里面实现的。base_conv_layer又继承了基类layer。基类源码解析可见:::http://blog.cs

2016-11-16 17:15:12 4425

原创 caffe源码 之 数据层

data_layer应该是网络的最底层,主要是将数据送给blob进入到net中。能过代码可以看到Data_Layer类与Layer类之间存在着如下的继承关系::: 所以要看懂Data_Layer类构造,要先了解Layer类的构造:http://blog.csdn.net/lanxuecc/article/details/53023211其次了解Base_data_layer.cpp中的Base

2016-11-16 16:20:43 2837

转载 Caffe训练源码基本流程

Caffe简介一般在介绍Caffe代码结构的时候,大家都会说Caffe主要由Blob Layer Net 和 Solver这几个部分组成。Blob::: 主要用来表示网络中的数据,包括训练数据,网络各层自身的参数(包括权值、偏置以及它们的梯度),网络之间传递的数据都是通过 Blob 来实现的,同时 Blob 数据也支持在 CPU 与 GPU 上存储,能够在两者之间做同步。Layer::: 是对

2016-11-16 14:58:25 8405 2

原创 caffe源码 之 Blob类

caffe中Blob类主要用来表示网络中的数据,包括训练数据,网络各层自身的参数(包括权值、偏置以及它们的梯度),网络之间传递的数据都是通过 Blob 来实现的,同时 Blob 数据也支持在 CPU 与 GPU 上存储,能够在两者之间做同步。下面是我看源码时,搜集的注释,以及对源码的理解Blob.hpp::::::::::::::::#ifndef CAFFE_BLOB_HPP_#define C

2016-11-15 11:41:32 2272

原创 caffe源码依赖的一些库

LevelDB库它是google实现的一个非常高效的Key-Value数据库。它是单进程的服务,性能非常高。它只是一个C/C++编程语言的库,不包含网络服务封装。caffe主要使用该数据库来存储传入训练的图片数据与label。LMDB库它是个和levelDB类似的key/value存储库,是由OpenLDAP项目的Symas开发的。使用内存映射文件,因此读取的性能跟内存数据库一样,其大小受限于虚拟地

2016-11-14 17:00:42 1689

原创 caffe源码 之 池化层

综述::: 在传入的训练图像较大时,如果所有的图像特征拿来做训练会导致计算量太大。而且容易出现过拟合,因为图像所有的特征用来训练的话会让最终的参数过于匹配现有的图像,池化能降低图像的一些细节特征对最终参数的影响。又因为图像总是具有局部拟合性, 所以caffe中实现在每个卷积层之间加入了pooling层。所谓的池化就是一种图像降采样,最常用的降采样方法有均值采样(取区域平均值作为降采样值)、最大值采

2016-11-11 17:26:15 3030

原创 caffe源码 之 数值计算类

综述::::: Math_functions.cpp实现了网络训练所需的一些矩阵运算,数值运算,以及一些权重的参数初始化的分布函数实现。大部分函数分为float型与double型两种实现。#include <boost/math/special_functions/next.hpp>#include <boost/random.hpp>#include <limits>#include "caf

2016-11-10 11:31:48 2159

原创 caffe源码 之 layer类

综述::layer.hpp定义了layer的基类,其他例如:loss_layer,data_layer,vision_layer都是在这个layer类的基础上继承的,他们分别实现了基类layer中的一些弱函数,下面通过注释记录下我对基类源码的理解:::::layer.hpp::::::::::::::#ifndef CAFFE_LAYER_H_#define CAFFE_LAYER_H_#incl

2016-11-03 17:01:47 2048

原创 caffe源码 之 CPU与GPU数据同步类

先看SycedMem.hpp中SycedMem的类定义:::#ifndef CAFFE_SYNCEDMEM_HPP_#define CAFFE_SYNCEDMEM_HPP_#include <cstdlib>#include "caffe/common.hpp"namespace caffe {/*下面注释翻译::: 在Cuda可用并且在GPU模式下,用cudaMallocHost可以分配得到

2016-11-02 16:22:38 4604

原创 Caffe图片分类

classification.cpp中main函数的源码为:::int main(int argc, char** argv) { if (argc != 6) { std::cerr << "Usage: " << argv[0] << " deploy.prototxt network.caffemodel" << " mean

2016-10-27 19:29:28 2699 9

原创 caffe源码 之 caffe程序入口

见代码及其注释(ps::个人理解,如有误,请指出)#ifdef WITH_PYTHON_LAYER#include "boost/python.hpp"namespace bp = boost::python;#endif#include <gflags/gflags.h>#include <glog/logging.h>#include <cstring>#include <map>#

2016-10-26 14:39:27 2850

转载 Caffe单步调试

转自博客:::http://blog.csdn.net/xiaoyezi_1834/article/details/50724875这个方法我实际用过,确实算是比较好用,相对GDB或者Qt或者eclipse要方便点。其中 GDB:::http://blog.csdn.net/dengbingfeng/article/details/51469051 QT:::https://www.zhihu.

2016-10-25 19:57:48 2116 3

转载 caffe目录结构 及 caffe源码文件说明

转自:::http://yufeigan.github.io/2014/12/09/Caffe学习笔记1-安装以及代码结构/目录结构caffe文件夹下主要文件: 这表示文件夹主要文件夹data 用于存放下载的训练数据 docs 帮助文档 example 一些代码样例 matlab MATLAB接口文件 python Python接口文件 model 一些配置好的模型参数 scripts

2016-10-24 15:19:17 4552

原创 string字符串若干操作

删除字符串中子串string s1="asdfgh";s1 =s1.erase(2,3);//则s1的字符串变为"ash"删除s1中从第2个字符开始的3个字符并再次赋值给s1字符串中插入字符串string str1="We can insert a string"; string str2="a str into ";//在字符串指定位置前面插入指定字符串cout <<str1.inser

2016-10-21 13:58:34 628

原创 ubuntu 删除目录及子目录中特定文件

find ./sglimgbak -name '*.bmp'|xargs rm -r上述命令的意思:::找到当前目录下的sglimgbak目录及其子目录中的名字以.bmp结尾的所有文件,并把他们全部删除xargs命令的用法::: http://baike.baidu.com/link?url=UCRarb7EZwI4iOXd9UyXyuIbBPLmR0S9Y_yXCEZQDh3JH4MkFXJh0

2016-10-21 10:41:01 6767

原创 linux下.o文件、.a文件、.so文件、.bin文件

.o文件::: 目标文件。就相当于windows里的obj文件 ,一个.c或.cpp文件对应一个.o文件.a文件::: 是好多个.o合在一起的静态库文件,相当于windows下的.lib文件。给外部程序提供接口,用于静态连接 ,即STATIC mode。多个.a可以链接生成一个exe的可执行文件.so文件::: 是shared object即动态链接文件,和windows的.dll文件差不多,用于动

2016-10-12 20:02:59 10136 1

原创 caffe测试单张图片

所有的操作是基于caffe的根目录/caffe-master/来操作的:1、caffe提供了一个用已经训练好的caffemodel来分类单张图片的库(./build/examples/cpp_classification/classification.bin),该库的源码为文件./examples/cpp-classification/classification.cpp。2、利用该库的分类单张图片

2016-10-12 11:05:28 7796 1

原创 adaboost训练 之 强分类器训练原理

最近看opencv中adaboost训练强分类器源码,记录下自己对adaboost训练强分类器的原理理解。adaboost训练强分类器的基本流程: 1、初始化训练样本的类别与权重分布。 2、迭代循环训练弱分类器。 3、将每次循环训练成的弱分类器与已经存在的弱分类器组成的强分类器。 4、根据当前强分类器计算正样本置信度,根据传入参数minhitrate来取得强分类器阈值。 5、用当前强分类器

2016-09-30 16:14:49 7456 1

原创 adaboost训练 之 弱分类器训练的opencv源码详解 2

接着上一个博客http://blog.csdn.net/lanxuecc/article/details/52688605在弱分类器训练的主体函数cvCreateCARTClassifier中我们看到主要是调用cvCreateMTStumpClassifier函数来训练得到弱分类器的结点,下面注释下这个函数/* * cvCreateMTStumpClassifier * * Multithre

2016-09-28 11:26:53 2361

原创 adaboost训练 之 弱分类器训练的opencv源码详解 1

adaboost训练弱分类器的原理见上一个博客::http://blog.csdn.net/lanxuecc/article/details/52681525 opencv中adaboost训练弱分类器的主体代码是函数cvCreateCARTClassifier,这个函数通过大致逻辑是:1、通过调用训练结点函数cvCreateMTStumpClassifier来创建根结点 2、在要求弱分类器特征

2016-09-28 10:52:07 2063

空空如也

空空如也

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

TA关注的人

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