自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 混淆矩阵、分类评价指标

混淆矩阵 混淆矩阵基本上就是上表的表示,展示出实际的类别和分类后的得到的结果。(在目标识别中如何表现出背景那一类?)抽象出来就是下面的列表:从TP,TN、FN、FP 可以得到几种指标: 1)查准率:也可以理解为(正样本的)准确率,P = TP/(TP+FP)。在目标识别中就是:检测到正确的目标数目/检测到的目标数目;上述的查准率公式也有不妥的...

2018-11-26 13:43:07 4461

原创 集成学习

一、概念 集成学习通过构建多个学习器,并通过某种策略对多个学习器进行组合。 所以集成学习存在两个方面的问题: 1、如何得到若干个学习器 2、通过何种策略将其组合成一个强学习器 二、分类 首先解决问题1:如何得到若干弱分类器? 首先弱分类器分为两类: 第一类:同质                使用最多,CART决策树和神经网络,同质学习器根据学习器个体之间是否存在依赖关系可以分为两

2017-08-16 17:40:27 437

原创 lung cancer detection

1、Introduction 我们的模型基于3d卷积,统一了nodule检测和癌症分类。模型输入是已经预处理的3d肺部的扫描,同时输出可能的nodule和肺癌的概率(提交的数据)。 整个的解决方案分为三个步骤:预处理,病灶检测和癌症分类 2、预处理 3、Nodule detection 我们设计了三维卷积网络用于检测可疑的病灶。三维的卷积因为不同的任务而做出修改。和一般的目标检测不太一

2017-08-16 15:00:07 960 1

原创 mnist整合mobilenet

#coding=utf8#author by fffupeng#envirnment anaconda python 3.5 windows#这是一个将mnist中的卷积改成mobilenet的思想import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = inp

2017-08-12 17:28:37 1761

原创 tensorflow3 mnist2

#coding=utf8import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets('MNIST_data',one_hot=True)def weight_variable(shape): initial =

2017-08-12 14:10:55 413

原创 tensorflow mnist入门

#coding=utf8import tensorflow as tffrom tensorflow.examples.tutorials.mnist import input_datamnist = input_data.read_data_sets("MNIST_data\\", one_hot=True)#构建计算图x = tf.placeholder(tf.float32,[None,78

2017-08-11 18:00:17 288

原创 tensorflow从变量-loss-optimizer

tensorflow 提供很多api,最低级的api tensorflow Core给你提供完整的编程控制,这时我们应该关注的。高层的api是建立在tensorflow core之上。A high-level API like tf.contrib.learn helps you manage data sets, estimators, training and inference. 下

2017-08-11 10:24:48 833

原创 canny

边缘检测原理和步骤: 在实际情况中理想的灰度阶跃及其线条边缘图像是很少见到的,同时大多数的传感器件具有低频滤波特性,这样会使得阶跃边缘变为斜坡性边缘,看起来其中的强度变化不是瞬间的,而是跨越了一定的距离。这就使得在边缘检测中首先要进行的工作是滤波。         1)滤波:边缘检测的算法主要是基于图像强度的一阶和二阶导数,但导数通常对噪声很敏感,因此必须采用滤波器来改善与噪声有关的边缘检测

2017-07-05 12:04:38 389

原创 hough变换

霍夫变换的目的:检测直线(或者是简单的图形,例如矩形,圆等等) 例如在下图中检测车道:明显这是直线的检测,如果采用canny边缘检测,很明显忽略了直线这个重要的信息。于是不如换一种思维方式。 在直角坐标系中,直线通过y = k * x +b来表示, 实际上确定直线的参数就两个:k和b,这是一个一一对应的关系。 那不就是说可以如果将k设置为横坐标,b设置为纵坐标,那k - b坐标系上

2017-07-04 17:09:34 522

原创 caffe 添加Python层

本文在mnist中添加Python层,作为修改,在本文中不仅介绍如何添加层,还会涉及到修改层的一些思路。首先在train_test_lenet.prototxt中添加MyPythonLayer一层,如下图所示:该层的主要作用就是将输入加上10,并输出,同事输入输出的维度不变。接下来就是具体的代码实现。在caffe/python 下面添加mypythonLayer.py

2017-06-28 12:29:08 6382 4

原创 c++存储区域

2017/06/24 23:14 五大内存分区   在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。 栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区。里面的变量通常是局部变量、函数参数等。 堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。

2017-06-24 23:18:26 313

原创 导数,偏导,方向倒数,梯度

知乎链接 https://www.zhihu.com/question/36301367 导数: 导数不仅仅表示该点切线的斜率,还反应了函数在该点的变化率。 偏导数: 偏导数仅仅是表示某点在x方向的导数和再y轴方向的导数。 这反应了偏导数的局限性,仅仅是多元函数沿着坐标轴的变化率,但是如上图,在M0点处存在很多方向的偏导数(并不仅仅x和y方向)。这就引出了方向导数。

2017-06-20 23:34:26 13377 1

原创 直方图均衡化python代码实现

图像灰度变换中一个非常有用的例子就是直方图均衡化。直方图均衡化是指将一幅图像的灰度直方图变平,使变换后的图像中每个灰度值的分布概率都相同。在对图像做进一步处理之前,直方图均衡化通常是对图像灰度值进行归一化的一个非常好的方法,并且可以增强图像的对比度。 在这种情况下,直方图均衡化的变换函数是图像中像素值的累积分布函数(累积直方图)(cumulative distribution function,

2017-06-19 12:27:23 11804

原创 lec6 训练神经网络2

参数的更新: 详见 http://blog.csdn.net/fffupeng/article/details/72771325 SGD:(沿着梯度负方向更新参数) 在上图中x方向的长度远大于其他方向,损失函数在水平方向上比较浅,在垂直方向上比较深。如上图,很明显下降的速度比较慢。 Momentum update: 动量更新不仅考虑了当前的动量-learning_rate

2017-06-18 21:30:57 317

原创 lec5 训练神经网络1

训练网络之前必须知道,训练卷积网络需要一定的数据量。 finetuning 采用预训练的方式,然后用自己的数据训练网络的最后几层。 (可以将卷积层作为提取特征的固定网络,我们只需重新训练分类层就可以了,当然如果有一定的数据量可以训练较多的层) 如下图所示: 准备好数据集,网络模型之后可以开始训练网络。下降策略一般采用SGD(随机梯度下降) 训练步骤: 激活函数: 可以看下

2017-06-18 10:56:08 382

原创 lec4 反向传播和神经网络1

神经网络中如何前向和后向计算: 如下图: 反向传播时,使用链式法则,从后向前逐步更新权重。 下图是有激活函数的情况:

2017-06-18 10:51:02 224

原创 SSD 安装日志

s1: git clone cd caffe git checkout ssd s2: cp Makefile.config.example Makefile.config make -j8 make py make test -j12 make runtest –j12 出现问题: 缺少-lopenblas sudo apt-get install open

2017-06-17 14:27:09 599

原创 tips/tricks in deep neural network

1、数据集的扩增     现在数据集扩增成为训练深度网络的必须步骤 1.1 水平翻转,随机剪裁,颜色抖动(color jittering)(HSV空间中,改变s和v分量) 1.2 fancy pca step1: 计算rgb三个分量的协方差(注意转为一维) im = cv.imread('1_1.png')#读入图片数据 b,g,r = c

2017-06-14 18:22:47 367

原创 在线难例挖掘 论文

这篇论文主要就是在faster rcnn上加上了online hard example mining,论文还是比较容易理解的。 首先回顾一下,faster rcnn的mini batch 的生成过程。 在faster rcnn中mini batch设定为2张图片,每张图片生成128个roi,然后输入进入roi网络。 如下图(这是fast rcnn的图,faster rcnn中rpn和de

2017-06-11 15:19:48 6322 1

原创 3 损失函数和优化

为了描述之前建立的线性分类器的分类效果,我们引入的损失函数,顾名思义,损失函数越大误差也就越大。 在下图的任务中,将测试图片猫、车和青蛙输入网络,输出了一系列的数值,如下表。 很显然我们希望图片对应的分类数值越高越好,例如猫的图片对应cat,但是数值只有3.2,还不如对应的car的数值,所以该线性分类器会将猫这张图片分类为car。 下面引入svm loss函数: 其中Sj和Sy

2017-06-07 20:42:37 2128

原创 r-fcn论文

这是一篇基于全卷积网络的目标识别,baseline是用resnet。当然不是使用resnet+faster rcnn那么简单。 问题来源: translation invariance 和translation variance 卷积网络最初兴起于分类任务,当然效果是越来越好,而一般的目标识别的网络也是通过分类的网络提取特征(zf,vgg,res等等),再加上一系列的操作(roi,bound

2017-06-07 13:00:19 455

原创 lec2 图像分类的方法

图像分类: 作业:(python代码) 1、knn 2、svm softmax 3、2层神经网络 图片分类 从以往经验来看目标需要在整个图像的中间,尽量占据较大的空间。 图像分类面对的挑战: 1、光照 2、物体形变 3、遮挡 4、目标和背景混淆 5、多个种类(外观有些许不同) 对于现在的机器学习的方法: 1、收集数据集 2、使用机器学习的方法训练分类器 3、

2017-06-06 23:00:45 431

原创 fcn语义分割 论文

全卷积网络: 个人认为本文主要是两个重点: 第一是fcn,全卷积网络(+上采样) 第二是skip net 首先说全卷积网络: 通常cnn在卷积层后会接上若干全连接层,但是全连接层和卷积层的连接数量是固定的,这也就导致了输入必须是固定的尺寸。如下图所示: 但是在fcn中将fc用卷积取代,再加上采样层,这样能够输入任何大小的图片,同时输出图片相应大小的语义分割。如下图所示:

2017-06-04 11:33:45 1066

原创 overfeat论文待续

从文章题目来看,Integrated recognition,localization and detection using convolutional network,就是将分类、定位、检测通过卷积网络整合在一起。 本文作者展示了: 1、在卷积网络中使用多尺度的滑动窗 2、介绍了通过训练深度网络来预测物体的定位框 3、可以使用一个网络同时进行多项任务 首先来理一理这分类,定位,

2017-06-02 21:58:46 632

原创 visualizing and understanding convolution network论文

本文通过将feature map可视化映射到像素空间,来解释卷积网络为何表现的这么好?怎样提高卷积网络? 首先解释一下如何进行可视化的过程。 作者在文章中给出上图,从右边的部分看,从下至上,输入上一pooling层的输出,然后卷积,relu激活,然后池化。 左边是反卷积的过程,首先反池化,然后relu(这在卷积和反卷积的过程中没有发生变化),然后是反卷积(如何反卷积下面再讨论) 反池化

2017-05-31 11:07:44 359

原创 参数更新方法

梯度下降法,动量下降, 代码实现 https://github.com/hsmyy/zhihuzhuanlan/blob/master/momentum.ipynb 1、梯度下降法 加大梯度下降的步长 继续加大步长 2、动量更新 Momentum改进自SGD算法,让每一次的参数更新方向不仅仅取决于当前位置的梯度,还受到上一次参数更新方向的影响。 v = mu * v

2017-05-26 16:33:44 3662

原创 googlenet 论文

0、 inception结构 利用网络中的计算资源,增加网络的宽度和深度,但保持计算量不变。   1、 本文中,首先创新点在于算法和网络结构; 其次注意了移动端和嵌入式的场景,考虑内存和功耗,所以提出的结构并不是固定的,参数少,计算量少。 因此提出了高效的深度神经网络结构,称为inception,灵感来源于Network in Network。 在该案例中,网络的深

2017-05-26 10:23:39 461

原创 network in network论文

本文主要是对传统的卷积网络进行改进,关键点有两个: 第一:mlpconv 第二:全局平均池化   传统的cnn可以看做是广义线性模型GLM,所以cnn觉得潜在的概念都是线性可分的。(但是cnn+非线性激活不是能模拟出非线性吗?)但是一些数据是非线性、多维度的,因此提出将卷积替换为更多小部分的非线性函数,从而提升模型的抽象能力。 作者通过mlpconv模拟多部分非线性函数。具体结构如下图:

2017-05-26 09:46:06 556

原创 alexnet 通过深度卷积对ImageNet图像进行分类

imagenet上使用深度卷积网络   背景介绍 目前的数据集太小,而复杂的图像分类和识别任务需要更多的数据训练。 对于大量的数据又需要容量大的网络,cnn网络可以通过调节宽度和深度来调节网络的容量。cnn相比于标准的前馈网络有较少的链接和参数(归功于卷积操作共享权重),易于训练。 与此同时,高性能gpu以及经过优化的2d卷积可以帮助训练。   本文主要贡献: 1、训练了深度卷积网

2017-05-22 23:43:25 5279

原创 KNN和线性分类器

图像分类的困难和挑战:对于人来说,识别出一个像“猫”一样视觉概念是简单至极的,然而从计算机视觉算法的角度来看就值得深思了。我们在下面列举了计算机视觉算法在图像识别方面遇到的一些困难,要记住图像是以3维数组来表示的,数组中的元素是亮度值。 视角变化(Viewpoint variation):同一个物体,摄像机可以从多个角度来展现。 大小变化(Scale variation):物体可视

2017-05-19 00:03:14 2380

原创 前馈网络训练的困难

(早期)神经网络通常使用随机初始化和标准的梯度下降法来训练,但是效果不好,这是由于非线性激活层饱和(虽然有时能够自己走出饱和区域)。 目前已经通过良好的初始化和一些训练策略取得了较好的训练效果。 尤其是无监督的预训练(目前来看已经是标准的初始化操作),可能的原因是由于无监督的预训练相当于正则化矩阵,将参数设为更加容易收敛的状态。 但是目前我们致力于分析是什么样的原因使得训练多层深度网络变差。

2017-05-18 18:37:21 629

原创 深度神经网络的权重初始化

为何需要初始化权重: 当x越大或者越小,对应的sigmod激活函数的梯度越小,收敛速度越慢。而我们目的是需要较大的梯度,最好x落入sigmod函数的近似线性区间,以提高训练速度,所以权重的初始化将决定收敛的速度。   几种权重初始化方法:   1、随机高斯分布,均值通常设为0,方差0.01或者其他。   2、xavier:其实是一定区间内的均匀分布。 推倒的基础知识: 1.符

2017-05-18 16:54:38 863

原创 resnet 论文

问题:深度的神经网络很难训练 解决方法:我们通过残差学习网络,训练更深的网络,实验显示深度残差网络很容易收敛并且通过加深网络更容易提升准确率。   问题由来: 网络的深度对于计算机视觉任务非常重要,很多事实证明更深的网络能获得更好的效果。 但是训练很深的网络并不容易,原因如下: 1、梯度消失:这个问题通过normalized initialization和Batch normaliza

2017-05-18 00:08:51 3386

原创 batch normalization论文

通过减少internal Covariate shift加速深度网络的训练。 什么是internal Covariate shift? 由于前一层参数的变化导致了后一层输入分布的变化。这需要减少学习率并且需要小心地初始化网络,并且由于非线性激活层饱和很难进行继续训练。 因此作者提出了BN。经过batch normazation我们可以使用更高的学习率进行训练,并不需要特意关注初始化,并且在一

2017-05-16 14:18:53 377

原创 yolo论文

综述: 将物体检测任务(划分边界框和类别的可能性)作为回归问题来解决。 速度非常快,但是可能产生定位的误差,相比于rcnn,减少了假阳性。 从上图可以看出结构非常简单 优势: 1、速度非常快 2、处理全局的信息。在 训练和测试的使用看到了整个图像,对类别和外表都进行编码。相比于faster rcnn减少了近一半的假阳性。 3、yolo学习归纳重新表达物体的特征。所以能够更加适应新

2017-05-15 15:51:12 708

原创 faster rcnn论文

背景:proposals的生成成为目标检测的瓶颈。 作者祭出faster rcnn = rpn + fast rcnn的结构,本文主要介绍rpn网络。 rpn网络同时预测目标的边界proposal坐标 和 proposal的得分,并且在训练时候可以和fast rcnn共享卷积层,减少生成proposal的代价。 本采用交替训练的方法,当然在后面也实现了同时训练rpn和fast rcnn。

2017-05-12 12:48:38 702

原创 fast rcnn论文

背景:rcnn、sppnet、deep ConvNets 面临的挑战: 1、必须处理大量的候选框 2、生成的候选区域必须重新调整,用以获得更加精确的位置 分析rcnn和sppnet: rcnn缺点: 1、多步训练 2、训练花费大量的时间和空间 3、定位非常缓慢 rcnn定位缓慢是由于,对每个proposal进行卷积计算,在同一张图片中没有进行共享卷积运算。 sppnet对整

2017-05-11 15:23:58 513

原创 rcnn论文

面临的挑战: 1、目标检测窗口生成: 方法一:将检测任务作为回归问题 方法二:滑动窗 方法三:selective search 2、数据集较少 通过在大的数据集ILSVRC上进行有监督的预训练 测试模块的设计: 1、目标建议框的生成:selective search 2、特征提取:从每个建议区域227x227 提取到4096维特征。为了得到统一227x227图像,采用仿射变换。

2017-05-11 15:17:32 325

原创 有序二维数组查找元素

在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。class Solution {public: bool Find(int target, vector > array) { int height = array.size(); i

2017-04-10 08:54:22 383

原创 faster rcnn 训练pascal_voc数据集

硬件需求和软件的安装和fast rcnn类似,直接开始训练voc2007。1  下载数据集,并解压cd py_faster_rcnn/datawget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tarwget http://host.robots.ox.ac.uk/pascal/V

2017-02-16 09:00:22 4080

fast rcnn git

fast rcnn 完整版

2017-02-14

空空如也

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

TA关注的人

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