自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

常思考->有目标->重实践->善反思

常思考->有目标->重实践->善反思

  • 博客(946)
  • 资源 (3)
  • 收藏
  • 关注

原创 华为社招面试(拿到offer)

前段时间华为主动联系我要不要面试,抱着试一下的心态接受了面试邀请,最后顺利拿到了offer,不过最终由于方方面面的原因还是没有去。本文主要分享下,面试的大致过程。1. 初步电话技术面试主要问了下,项目C++的后台开发(大概40分钟)。1. 高并发相关的问题。2. 以及为什么使用redis做缓存而不是其他的消息队列入kafka,以及项目的稳定性。3. 问了j...

2018-06-22 20:03:07 159499 27

原创 caffe python 图片训练识别 实例

本文主要是使用caffe python做图片识别的示例包括训练数据lmdb生成,训练,以及模型测试,主要内容如下:训练,验证数据lmdb生成,主要包括:样本的预处理 (直方图均衡化,resize),训练样本以及验证样本的lmdb的生成,以及mean_file mean.binaryproto生成caffe中模型的定义,主要是修改 caffe Alexnet 训练文件train_val.proto

2017-09-09 21:36:41 16984 2

原创 caffe c++示例(mnist 多层感知机c++训练,测试)

caffe训练网络模型一般直接使用的caffe.bin: caffe train -solver solver.prototxt,其实这个命令的本质也是调用c++的Solver.本文给出使用纯c++代码,使用mnist数据+多层感知机网络,训练数字分类问题。然后用C++调用训练好的模型测试分类。solver.prototxt文件内容如下:net: "/home/xy/caffe_analys...

2018-10-07 15:39:53 5678 13

原创 caffe源码分析-db, io

本文主要分析下caffe的源码,io操作,以及数据库文件(如lmdb)读取。例如,从prototxt读取网络初始化参数:NetParameter param;ReadNetParamsFromTextFileOrDie(path, &param);bool ReadProtoFromTextFile(const char *filename, Message *proto) {...

2018-10-07 11:20:26 1541

原创 caffe源码分析-DataTransformer

本文主要分析caffe中DataTransformer这个类, 主要作用是:将Datum类型或者cv::Mat, 转化为caffe的Blob<Dtype>,并按照Transformation``Parameter参数对图像做处理,例如scale,mirro等推断blob的shapeproto定义如下:// Message that stores parameters...

2018-10-07 11:13:38 1826

原创 caffe源码分析-DataLayer

DataLayer作为caffe训练时的数据层(以多线程的方式读取数据加速solver的训练过程),继承自BaseDataLayer/BasePrefetchingDataLayer。template <typename Dtype>class BaseDataLayer : public Layer<Dtype> {public: explicit Base...

2018-10-07 11:09:42 1157

原创 caffe源码分析-DataReader

DataReader作为DataLayer的数据成员变量,以多线程的方式从数据库(如lmdb, hdf5)读取数据:class DataReader {public: explicit DataReader(const LayerParameter& param); ~DataReader(); inline BlockingQueue<Datum*&g...

2018-10-07 11:02:33 1249

原创 caffe源码分析-InternalThread

InternalThread封装自boost::thread的线程,主要用于多线程的数据获取(可以理解为solver前向传播的同时,后台线程继续获取下一个batch的数据集):class InternalThread {public: InternalThread() : thread_() {} virtual ~InternalThread(); //Caffe's...

2018-10-07 10:59:10 855

原创 caffe源码分析-BlockingQueue

BlockingQueue线程安全的队列, 作为caffe训练时数据同步的重要数据结构,本文做简要分析。template<typename T>class BlockingQueue {public: explicit BlockingQueue(); void push(const T& t); bool try_pop(T* t);// n...

2018-10-07 10:43:16 1170 1

原创 caffe源码分析-InputLayer

对于输入层,我们首先分析最简单的InputLayer层,其常作为网络inference时的输入,简单的mnist使用示例如下:layer { name: "data" type: "Input" top: "data" input_param { shape: { dim: 1 dim: 1 dim: 28 dim: 28 } }}proto中相关的参数如下:// Sp...

2018-10-07 10:37:32 1666

原创 caffe源码分析-layer_factory

caffe中有许多的layer,在net中创建连接layer是通过工厂模式的方式创建,而不是每一个new然后连接。在net.cpp中创建layer方式如下:layers_.push_back(LayerRegistry<Dtype>::CreateLayer(layer_param));下面简要分析下layer_factorytemplate<typename Dtype...

2018-10-07 10:33:23 967

原创 caffe源码分析-inner_product_layer

本文主要分析caffe inner_product_layer源码,主要内容如下:结合使用以及proto定义介绍InnerProductLayer的参数;简要分析Filler初始化,caffe中的layer参数,例如constant, gaussian;InnerProductLayer的函数 核心LayerSetUp参数初始化, Reshape, Forward_cpu以及矩阵...

2018-10-07 10:21:23 936

原创 caffe源码分析-ReLULayer

激活函数如:ReLu,Sigmoid等layer相对较为简单,所以在分析InnerProductLayer前,我们先看下激活函数层。常见激活层ReLU的使用示例如下:layer { name: "relu1" type: "ReLU" bottom: "conv1" top: "conv1"}我们可以看到bottom和

2018-10-07 10:09:18 912

原创 caffe源码分析-layer

本文主要分析caffe layer层,主要内容如下:从整体上说明下caffe的layer层的类别,以及作用通过proto定义与类Layer简要说明下Layer的核心成员变量;Layer类的核心成员函数1. 类Layer overviewcaffe中的Layer主要分为如下几个模块:输入层Data LayersData Layers定义了caffe中网络的输入,依...

2018-10-07 10:01:55 1370 1

原创 c++ mnist转化为opecv Mat

本文主要介绍如何使用C++将mnist 数据集转化为Opencv Mat,问题来源主要代码以及运行示例如下:uint32_t swap_endian(uint32_t val) { val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF); re

2018-09-20 20:09:48 977

原创 caffe源码分析-Blob

本文主要分析caffe源码分析-Blob,主要如下几个方面:overview整体上了解caffe的BlobBlob 成员变量Blob主要函数,核心在于Blob的使用实例以及其与opencv Mat的操作的相互转化(附带运行结果基于CLion)overviewBlob 是Caffe作为数据传输的媒介,无论是网络权重参数,还是输入数据,都是转化为Blob数据结构来存储,网络,求解器...

2018-09-12 21:20:50 2792 1

原创 caffe源码分析-SyncedMemory

本文主要分析caffe中Blob内存管理类SyncedMemory,主要内容包括:SyncedMemory和Blob的关系SyncedMemory中的方法,如内存的分配、释放SyncedMemory中内存的申请,是在数据访问时才分配而不是立马分配(通过enum SyncedHead状态实现)SyncedMemory和Blob的关系Blob中的主要数据成员如下,实际是在Syn...

2018-09-12 21:00:04 1146

原创 caffe源码分析-cmake 工程构建

本文主要说明下,caffe源码分析过程中的cmake(结合IDE CLion)工程构建问题。在分析caffe源码的过程中,我没有仅仅只是看代码,而是:自己从头构建一遍工程,这样能让我更好的了解大型的项目的构建。当然原始的caffe的构建感觉还是比较复杂(主要是cmake),我这里仅仅使用cmake构建,而且简化点,当然最重要的是支持CLion直接运行调试。从Blob文件开始从头开始复制每一...

2018-09-12 20:51:05 1869 5

原创 c++ set unordered_set区别

c++ std中set与unordered_set区别和map与unordered_map区别类似:set基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,...

2018-09-06 20:55:33 19764

原创 SSD人脸检测以及FDDB检测结果分析

前段时间使用caffe版本的SSD训练人脸检测,效果还不错,在FDDB上测试了下结果最终只有89%的准确率,但是误判率很低,结果如下:为了分析训练的SSD在FDDB上对于哪些类型的人脸检测结果较差,结果如下:蓝色的椭圆为FDDB的原始标注,红色的矩形为现有的SSD检测结果。可以看到:很模糊的脸没有检测到还有些基本上算不上脸极少数是人脸的确实没有检测到发现FDDB中不...

2018-08-26 20:09:12 5307 2

原创 GoogleNet论文笔记/小结

GoogLeNet和VGG是2014年ImageNet挑战赛(ILSVRC14)的双雄,GoogLeNet获得了第一名、VGG获得了第二名。本文主要内容如下:GoogLeNet分析了现有提升网络精度的常见办法及缺点GoogLeNet解决上面问题的办法,Inception基本原理,以及为什么想到使用Inception。为什么不叫“GoogleNet”,而叫“GoogLeNet”Goo...

2018-08-15 20:46:50 1954

原创 VGG论文笔记/小结

VGG论文的主要内容如下:VGG研究了卷积网络深度在大规模的图像识别环境下对准确性的影响。主要贡献是使用非常小的(3×3)卷积滤波器架构对网络深度的增加进行了全面评估,这表明通过将深度推到16-19加权层可以实现对现有技术配置的显著改进。1 不同大小的核的区别,以及Alexnet与VGG对比1.1 首先说明下小核与大核的区别:VGG相比AlexNet的一个改进是采用连续的...

2018-08-14 20:42:00 2101

原创 Alexnet总结/论文笔记

本文主要从如下几个方面分析深度学习Alexnet网络:1. 为什么Alexnet能在图2012 ImageNet LSVRC-2012 像识别(分类) competition取得这么好的成绩2. Alexnet的网络结构以及,参数数量的计算3. 为了避免过拟合使用的技巧:Data Augmentation(数据增强),正则化Relu以及dropout,局部响应归一化LRN。...

2018-08-13 20:52:59 4052

原创 python pyplot accuracy cost曲线绘制

本文主要内容是使用python matplotlib绘制accuracy, cost曲线。在使用机器学习算法训练时往往需要输出训练的accuracy以及cost,但是最直观的方法还是绘制对应的曲线(根据训练的迭代期n),本文给出简要的绘制方法。代码如下,也可见stackoverflow:import numpy as npimport matplotlib.pyplot as plt...

2018-07-22 20:28:55 2752

原创 神经网络python实现

本文主要内容是使用python实现神经网络。neural-networks-and-deep-learning神经网络的实现,虽然在原理上易懂,但是不够模块化,layer、net、loss、optimizer间的耦合性太高。通用的深度学习框架,例如caffe都是将每个模块分离实现,这样提升了代码的可阅读,扩展性。整体上网络的构建以及运行结果展示下面先给出整体的代码以及运行结果:...

2018-07-22 20:13:27 2427

原创 人脸检测dlib, mtcnnx对比,FDDB测试对比

问题来源 How does MTCNN perform vs DLIB for face detection?前面一直做人脸检测相关内容,然后对比了下dib以及MTCNN的人脸检测效果主要是速度,以及FDDB准确率。最后给出生成FDDB测试文件的C++代码。FDDB 测试结果注本文的MTCNN效果检测准确率不是最优的,最优的在FDDB上可达95%,测试效果如下:可以看到...

2018-07-14 15:20:34 10217 3

原创 python mnist数据导入以及处理

在使用机器学习以及深度学习的时,常用的示例是使用mnist数据进行分类,本文简要的实现下mnis数据的导入以及处理,问题来源stackoverflow。直接上代码了,注释很清楚了:import cPickleimport gzipimport numpy as npimport matplotlib.pyplot as pltdef load_data(): path =...

2018-07-14 12:26:38 6300

原创 数字图像处理笔记二 - 图片缩放(最近邻插值(Nearest Neighbor interpolation))

图片缩放的两种常见算法:最近邻域内插法(Nearest Neighbor interpolation)双向性内插法(bilinear interpolation)本文主要讲述最近邻插值(Nearest Neighbor interpolation算法的原理以及python实现基本原理最简单的图像缩放算法就是最近邻插值。顾名思义,就是将目标图像各点的像素值设为源图像中与其最...

2018-07-04 20:27:59 15554 2

原创 数字图像处理笔记一 - 图像采集(空间分辨率和幅度分辨率)

本文主要内容来自与《数字图像处理第二版中文版(冈萨雷斯)》第二章, 图像采集小节。一、数字图像的表示一幅图像可以被定义为一个二维函数f(x,y),其中(x,y)是空间(平面)坐标,在任何坐标(x,y)处的幅度f被定义为图像在这一位置的亮度。图像在x和y坐标以及在幅度变化上是连续的。要将这样的一幅图像转换成数字形式,要求对坐标和幅度进行数字化。将坐标值数字化称为取样,将幅值数字化称为...

2018-07-04 20:20:38 10075

原创 STL map, hash_map , unordered_map区别、对比

首先:hash_map , unordered_map比较具体可见 stack overflow: Difference between hash_map and unordered_map?由于在C++标准库中没有定义散列表hash_map,标准库的不同实现者将提供一个通常名为hash_map的非标准散列表。因为这些实现不是遵循标准编写的,所以它们在功能和性能保证上都有微妙的差别...

2018-07-01 21:09:35 5890

原创 STL源码剖析-hash_map / hash_multimap

类似于标准的map以rb_tree为底层实现,hash_map以hashtable为底层实现,hash_map的底层操作也是由hashtabe提供。运用map,为的是能够快速的根据key搜索元素。这一点无论其底层是rb_tree或是hashtable,都可以达成任务。但是rb_tree有自动排序的功能,而hashtable是没有,反应的结果是map元素有自动排序功能,而hash_map没有。...

2018-07-01 20:53:39 886

原创 STL源码剖析-hash_set / hash_multiset

类似于标准的set以rb_tree为底层实现,hash_set以hashtable为底层实现,hash_set的底层操作也是由hashtable提供。运用set,为的是能够快速的搜索元素。这一点无论其底层是rb_tree或是hashtable,都可以达成任务。但是rb_tree有自动排序的功能,而hashtable是没有,反应的结果是set元素有自动排序功能,而hash_set没有。如下主...

2018-07-01 20:52:21 698

原创 STL源码剖析-hashtable

hashtable(散列表)结构,在插入、删除、搜索等操作也具有”常数平均时间”的表现。hashtable概述举个例子,假设所有元素都是16bits,范围0~65535,简单的使用一个array即可以满足常数时间的插入、删除、搜索。创建数组array A,拥有65536个元素,索引号码0~65535,初始值全部为0当插入元素i就执行A[i]++,删除元素就执行A[i]–,如果搜...

2018-07-01 20:50:43 983

原创 STL源码剖析-map/multimap容器

本文主要简易分析STL-SGI的map源码分析。在map中对于rb_tree(源码分析)而言key, value不一样,key用于rb_tree排序,pair<key, value>才是rb_tree的节点,同样成员就一个rb_tree足已表现整个map:template <typename Key, typename Value, class Compare = std...

2018-07-01 20:33:34 831

原创 STL源码剖析-set容器

SGI STL中的容器set,以RB-Tree作为其底层的实现(rb_tree的大体分析见上文)。在set容器键值key和实值value是相同的,且在容器里面的元素是根据元素的键值自动排序的,同时我们不能修改set容器里面的元素值,所以set的迭代器是采用RB-Tree的const_iterator,不允许用户对其进行修改操作。首先,给出上面的rb_tree的更详细的定义(主要给出模板Valu...

2018-07-01 20:25:35 588

原创 STL关联容器-红黑树

关联式容器分为set(集合)和map(映射)两大类,以及这两大类衍生体multiset(多键集合)和multimap(多键映射)。这些容器的底层机制均以RB-tree(红黑树)完成。RB-tree是一个独立的容器,并不开放给外界使用。此外SGI STL还提供了一个不再标准规格之列的关联式容器:hash table(散列表),以及以此hash table为底层机制而完成的hash_set(散列集...

2018-07-01 20:16:15 946 1

原创 cmake教程5-macro宏定义以及传递参数给源文件

引入在C++程序中我们经常见到如下,两个问题:1. 输出当前程序的版本号2. 通过cmake添加macro宏定义 出入到源文件,例如在编译opencv/caffe的时候,我们通过cmake -DUSE_CUDA=ON/OFF来确定,是否使用cuda.问题cmake中如何实现上述两个功能的呢?至于问题1:我们可能想到直接在头文件中定义,这样也可以,但是如果直接在cm...

2018-06-29 20:30:14 25814

原创 STL deque源码实现及分析

本文主要内容如下:1. 从整体上介绍STL deque,以及其与vector的区别2. deque迭代器的实现3. 通过分析deque的构造函数,从整体上理解deque的实现4. 分析为什么STL的 stack 默认使用deque而不是vector作为底层容器 分析实现源码,其实我们只用实现,理解几个核心的函数就可以明白其中的原理,并不需要全部的实现。太...

2018-06-21 20:59:29 1204

原创 人脸检测FDDB测试ROC曲线生成

本文主要内容如下:1. ubuntu16环境下,如何使用FDDB评价人脸检测的效果,以及对应的ROC曲线的生成2. 使用python生成FDDB对比的文件。在测试人脸检测效果前,最好看下论文FDDB: A Benchmark for Face Detection in Unconstrained Settings,以及FDDB主页,了解人脸评估的基本原理1. 数据集准备...

2018-06-14 20:37:15 5198 1

原创 STL list源码分析以及实现

本文主要内容如下:1. STL list实现的三个模块节点__list_node,迭代器__list_iterator以及list本身(使用一个__list_node*代表整个链表)的介绍。2. 重点分析list的几个核心函数,理解STL list的实现原理,核心函数如下:list 的构造函数基本的迭代器操作插入操作 size, 析构函数等3. 测试实现的基本的lis...

2018-06-10 18:43:48 4634 1

Image Processing, Analysis, and Machine Vision, 3rd 中英文两版可以对照看

Image Processing, Analysis, and Machine Vision, 3rd 中英文两版可以对照看,觉得没问题,主要为了分享,只要2分。自己下载花了20分

2018-06-01

FSCaptureSetup80

FSCapture,win环境下很好用的截图软件,比QQ截图什么的好用多了。知乎、简书很多人推荐使用的。。附加FSCapture注册码 序列号 附加上FastStone Capture 注册码 序列号 name:bluman serial/序列号/注册码:VPISCJULXUFGDDXYAUYF

2016-05-17

linux ubuntu 64位 jsoncpp下载

linux ubuntu 64位 jsoncpp下载,下载完了后可以安装,官网下载比较慢,自己试验过好用

2015-12-30

空空如也

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

TA关注的人

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