自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(59)
  • 资源 (2)
  • 收藏
  • 关注

原创 1-12

对一副图像进行采样之后,可以得到一副M行,N列的图像,我们称这幅图像的大小是M*N。x是从0到M-1的整数,y是从0到N-1的整数。图像处理工具箱中用(r,c)而不是(x,y)来表示行和列。其次,这个坐标系统的原点是在(r,c)=(1,1),r是从1到M的整数,c是从1到N的整数。同时,工具箱使用一种较少的坐标约定,称为空间坐标,以x表示列,以y表示行。图像(image)和像素(pixel)这两个术

2016-12-24 14:26:30 711 2

原创 在matlab中获得帮助

获得帮助的主要办法是使用matlab的帮助浏览器(Help Browser),通过单击桌面工具栏的上的问号(?),或者在命令窗口的提示符处键入dos来打开专用窗口。帮助浏览器由两个窗格组成:用于寻找信息的帮助导航窗格,和用于观察信息的显示窗格。在matlab会话打开之后,最好打开帮助浏览器,以便在代码开发或者执行其他Matlab任务时期间获得帮助。针对特定函数得到帮助的另一个方法是在命令提示符处键入

2016-12-24 11:53:21 1004

翻译 VGG计算机视觉实践

The Oxford Visual Geomery Group Computer Vision Practicals 是基于MATLAB的实践经验的集合,介绍了图像理解中的基本概念(要求和安装说明)。 提供以下实用工具: 1.对象实例识别是在图像中匹配(识别)特定对象或场景的问题,例如由梵高的圣母大教堂或“繁星夜”。 挑战是对尺度,照相机视角,照明条件和部分遮挡的变化是不变的。 本实践包括以下主题

2016-12-24 00:29:22 1045

翻译 Part 3.2

Part 3.2: image preprocessing 在我们尝试训练CNN之前,对图像进行预处理以去除其平均值。 它也通过应用标准偏差3个像素的高斯核进行平滑:% Pre-smooth the imageim = vl_imsmooth(im,3) ;% Subtract median valueim = im - median(im(:)) ;我们稍后将回到这个预处理步骤。Part 3

2016-12-24 00:11:08 1104 4

翻译 基于方向特征的识别论文理解

基于纹理分析方法,提取掌静脉图像的方向、频率、相位、幅度等纹理特征: 这类方法大多借鉴掌纹识别方法,通过各种滤波器提取静脉图像纹理特征,编码纹理特征并进行匹配识别。 它有3 个核心步骤: 滤波器选择、编码方式、匹配方式。对于滤波器的选择,现应用于掌脉的有正交高斯滤波器、多尺度匹配滤波器、Gabor 滤波器等。而编码方式主要有竞争编码( competitive code) ,序数编码( ordina

2016-12-23 20:06:44 1899

转载 关于cuda

CUDA呢简单来说就是GPU通用运算的一种编程框架。GPU通用运算的含义简单地说就是让显卡的GPU去帮助cpu去干事儿。通用,是相对于专用而言,GPU用于游戏加速,那就是专用处理器,在普通软件的运用中,GPU的计算资源一般是闲置的,而承担运算工作的是CPU,CPU就是典型的通用计算处理器。所以在游戏的时候cpu也要工作。这就是为什么一般游戏都有个cpu的要求。用gpu通用运算是有好处的。一般来说衡量

2016-12-20 16:49:13 835

原创 VGG Convolutional Neural Networks Practical(6)training data and labels

第3.1部分:培训数据和标签 第一步是加载图像data/ dots.jpg并使用提供的extractBlackBlobs函数提取图像中的所有黑点。 % Load an imageim = rgb2gray(im2single(imread('data/dots.jpg'))) ;% Compute the location of black blobs in the image[pos,ne

2016-12-19 16:25:15 1004

原创 VGG Convolutional Neural Networks Practical(6)learning a tiny CNN

在这部分,我们将学习一个非常简单的CNN。 CNN完全由两层组成:卷积层和最大池层: 任务 打开文件tinycnn.m并检查代码。 说服你自己,代码计算刚刚描述的CNN。 看看代码中使用的paddings。 如果输入图像x1具有尺寸M×N,则输出特征图x3的尺寸是多少?function res = tinycnn(x, w, b, dzdy)% TINYCNN A very simple

2016-12-19 15:02:39 1402

原创 VGG Convolutional Neural Networks Practical(5)the theory of back-propagation

第2部分:反向传播和衍生 例如,这是如何查找卷积运算符:y = vl_nnconv(x,w,b) ; % forward mode (get output)p = randn(size(y), 'single') ; % projection tensor (arbitrary)[dx,dw,db] = vl_nnconv(x,w,b,p) ; % backward mode (get pro

2016-12-19 14:39:39 1526 2

原创 VGG Convolutional Neural Networks Practical(4)normalisation

另一个重要的CNN构建块是通道方式归一化。 该算子对输入映射x中每个空间位置处的特征通道的向量进行归一化。 标准化运算符的形式实际上是存疑的:任务:了解此运算符在做什么。 如何设置κ,α和β来实现简单的L平方归一化? 现在让我们试试:rho = 5 ;kappa = 0 ;alpha = 1 ;beta = 0.5 ;y_nrm = vl_nnnormalize(x, [rho kappa

2016-12-19 14:08:59 1091

原创 VGG Convolutional Neural Networks Practical(3)pooling

CNN中还有几个其他重要的操作。 其中一个是池化。 池化操作符对各个特征通道进行操作,通过应用合适的算子将附近的特征值合并为一个。 常见的选择包括max-pooling(使用max运算符)或sum-pooling(使用summation)。 例如,max-pooling定义为:最大池由vl_nnpool函数实现。 立即尝试:y = vl_nnpool(x, 15) ;figure(6) ; clf

2016-12-19 13:53:19 935

原创 VGG Convolutional Neural Networks Practical(2)non-linear activation functions

第1.2部分:非线性激活函数 如我们在介绍中所述,CNN是通过组成几个不同的功能获得的。 除了前面部分所示的线性滤波器之外,还有几个非线性算子。 问题:CNN中的某些功能必须是非线性的。 为什么?(还真回答不了这个问题······大家说说自己的理解呗,共同交流。)通过由非线性激活函数遵循线性滤波器来获得最简单的非线性,该非线性激活函数被相同地应用于特征图的每个分量(即逐点地)。 最简单的这种功能

2016-12-19 13:42:29 1222

原创 VGG Convolutional Neural Networks Practical(1)convolution

VGG卷积神经网络实践卷积神经网络是可应用于许多计算机视觉问题的可学习表示的重要类别。 特别地,深CNN由多个处理层组成,每个处理层涉及线性和非线性算子,以端对端的方式联合地学习以解决特定任务。 这些方法现在是用于从视听和文本数据中提取特征的主要方法。这个实践探讨了学习(深度)CNN的基础。 第一部分介绍典型的CNN构造块,例如ReLU单元和线性滤波器,特别强调理解反向传播。 第二部分研究学习两个基

2016-12-19 13:29:16 1925 1

原创 MATLAB解密阅读笔记二

第四章 统计和matlab编程介绍我们通过bar命令产生柱状图,它就像plot一样工作,我们只需要调用bar(x,y)把x和y这两个数组传递给它。 用barh(a,b)命令来产生水平的柱状图。 可以用bar3或者是bar3h显示奇特的三维图像。通过mean()函数,我们可以知道一组数据的平均数是什么。 我们也可以给mean传递数组,那么matlab将告诉我们每一列的平均数。用disp命令在屏幕

2016-12-18 14:44:51 807

原创 MATLAB解密阅读笔记

最近要用matconvnet,发现很多matlab函数和小技巧已经忘记了,(当初为了应付而学,现在只好重新捡起来咯)找了一本比较简单的pdf过一遍,记录一些自己觉得有用的东西。第一章 matlab中运算的优先级与数学中的优先级一致。右除(/)优先于左除()。当我们做很多计算时,结果可能产生大量变量,可以通过在命令窗口输入who来刷新内存,告诉matlab显示目前为止的所有变量名称。 如果输入的是

2016-12-18 01:20:29 849

翻译 MatConvNet--VL_NNBILIEARSAMPLER

VL_NNBILIEARSAMPLER - CNN空间双线性重采样 Y = VL_NNBILINEARSAMPLER(X,GRID)使用双线性内插在由GRID指定的空间位置处重新采样图像X.X是维度H×W×C×N的阵列,其中(H,W)是图像的高度和宽度,C是特征通道的数量,N是批次中的图像的数量。GRID是尺寸为2×Ho×Wo×No的数组,其中(Ho,Wo)是输出图像的高度和宽度,No是输出批次Y

2016-12-17 19:09:19 1648

翻译 MatConvNet--VL_NNBNORM

VL_NNBNORM - CNN批量标准化。 Y = VL_NNBNORM(X,G,B)对输入X应用批次归一化。批量归一化定义为:Y(i,j,k,t) = G(k) * (X(i,j,k,t) - mu(k)) / sigma(k) + B(k)其中,mu(k) = mean_ijt X(i,j,k,t),sigma2(k) = mean_ijt (X(i,j,k,t) - mu(k))^2,

2016-12-17 18:34:50 2097 5

原创 MatConvNet--Function index

MatConvNet包括几个MATLAB函数组织如下: Building blocks 这些功能实现CNN计算块,可以手动或使用提供的包装器之一来组合CNN。SimpleCNN wrapper SimpleNN是实现作为计算块的线性链的CNN的轻量包装器。DagNN wrapper DagNN是一个面向对象的包装器,支持更复杂的网络拓扑。Other functions 这些帮助函数用于初始

2016-12-17 18:06:30 1361

原创 MatConvNet--Using MatConvNet to train convnets

MatConvNet可以用于训练模型,通常使用一种形式的随机梯度下(SGD)和反向传播。MNIST. See examples/mnist/cnn_mnist.m.CIFAR. See examples/cifar/cnn_cifar.m.ImageNet. See examples/imagenet/cnn_imagenet.m.这些演示是独立的; 特别是MNIST和CIFAR,自动下载和解压

2016-12-17 17:45:17 983

原创 MatConvnet--CNN wrappers

在其核心,MatConvNet包括实现CNN构建块的一些MATLAB函数。 这些通常通过使用两个CNN包装器之一组合成完整的CNN。 第一个包装器是SimpleNN,其中大部分由MATLAB函数vl_simplenn实现。 SimpleNN适用于具有线性拓扑的网络,即计算块链。 第二个包装器是DagNN,它实现为MATLAB类dagnn.DagNN。SimpleNN包装器 SimpleNN包装器由

2016-12-17 17:40:13 1918

原创 (3)如何在MatConvNet下训练自己的数据

之前用了比较简单的DeepLearningtoolbox工具包,为了深入把所有的m文件解析了一次。换到MatConvNet,发现它比前者要“庞大”很多,之前写了几篇解析就写不下去了;但MatConvNet基本的层层调用关系,和DeepLearningtoolbox还是很相似的,如果能先跑一个我们自己的例子,再来分析层级结构,有些东西理解起来就会快很多吧。。车牌识别 <–在这里下载我们这次实验需要的数

2016-12-17 12:52:20 6462 28

原创 机器学习绪论

什么是机器学习? 就是让计算机具有像人一样的学习能力的技术,是从堆积如山的数据(也称为大数据)中找出有用知识的数据挖掘能力。学习类型 计算机的学习,根据所处理的数据类型的不同,可以分为监督学习、无监督学习和强化学习等几种类型。监督学习 根据在学习过程中获得的经验,对没有学习过的问题也做出正确的解答,使计算机获得这种泛化能力,是监督学习的最终目标。其在手写文字的识别、声音处理、图像处理

2016-12-16 23:29:46 865

原创 MatConvNet代码梳理3--vl_argparse()

VL_ARGPARSE解析参数值对的列表。OPTS = VL_ARGPARSE(OPTS,ARGS)基于指定的参数 - 值对ARGS = {PAR1,VAL1,… PARN,VALN}更新结构OPTS。如果参数PAR不能与OPTS中的任何字段匹配,则函数会生成错误。在OPTS中具有struct值的参数以递归方式处理,更新各个子字段。可以通过使用VL_ARGPARSE(OPTS,ARGS,’nonre

2016-12-16 13:36:55 8606 4

原创 MatConvNet代码梳理2--function vl_setupnn()

VL_SETUPNN设置MatConvNet工具箱。VL_SETUPNN()函数将MatConvNet工具箱添加到MATLAB路径。此文件是VLFeat库的一部分。fullfile是利用文件各部分信息创建合成完整文件名。function vl_setupnn() root = vl_rootnn() ; addpath(fullfile(root, 'matlab')) ;

2016-12-16 11:59:17 4076

原创 MatConvNet代码梳理1--vl_rootnn()

VL_ROOTNN获取MatConvNet工具箱的根路径。该文件是VLFeat库的一部分,关于VLFeat库,可以参考这篇博客VLFeat和Piotr’s Image & Video Matlab Toolbox - 风言风语function root = vl_rootnn() root = fileparts(fileparts(mfilename('fullpath'))) ;file

2016-12-16 11:16:29 2043

翻译 MatConvnet工具箱文档翻译理解五

第4章 计算块本章描述了MatConvNet支持的各个计算块。CNN计算块的接口是在第2章讨论之后设计的。该块被实现为MATLAB函数 y = vl_nn (x,w),其采用MATLAB数组x和w表示输入数据和参数,并返回数组y作为输出。 一般来说,x和y是包装N个图或图像的4D实数阵列,如上所述,而w可具有任意形状。 实现每个块的功能能够在向后方向上工作以及计算导数。 这是通过传递第三个可选参

2016-12-16 01:00:44 1788

翻译 MatConvnet工具箱文档翻译理解四

第3章 包装器和预训练模型这是很容易的组合第4章“手动”的计算块,但通常通过一个包装器来使用它们可以实现CNN架构给定一个模型规范通常更方便,可用的包装器总结在3.1节。 MatConvNet还附带了许多用于图像分类的预训练模型(其中大多数 在ImageNet ILSVRC挑战上训练),图像分割,文本点样和面部识别。 这些使用非常简单,如3.2节所示。3.1包装MatConvNet提供了两个包装

2016-12-16 00:36:35 5337 3

翻译 MatConvnet工具箱文档翻译理解三

第2章 神经网络计算本章简要介绍了神经网络的计算方面,尤其是卷积神经网络,强调了理解和使用MatConvNet所需的概念。2.1概述神经网络(NN)是将数据x(例如图像)映射到输出向量y(例如图像标签)的函数。函数g = fL … f 1是较简单函数序列fl的组合,称为计算块或层。令x1; x2; :::; xL是网络中每个层的输出,并且令x0 = x表示网络输入。通过应用具有参数wl的函数fl,从

2016-12-15 23:09:39 2200

翻译 MatConvnet工具箱文档翻译理解二

1.2 MatConvNet一目了然MatConvNet具有简单的设计理念。 它不是将CNN包裹在软件的复杂层上,而是暴露了直接作为MATLAB命令的计算CNN构造块的简单函数,例如线性卷积和ReLU运算符。这些构建块易于组合成完整的CNN,并且可以用于实现复杂的学习算法。虽然提供了小型和大型CNN架构和培训例程的几个现实例子,但是总是可以回到基础并构建自己的网络,利用MATLAB在原型中的效率。通

2016-12-15 21:43:56 1733

翻译 MatConvnet工具箱文档翻译理解一

概述MatConvNet是用于MATLAB的卷积神经网络(CNN)的实现。工具箱的设计注重简单性和灵活性。它将CNN的构建块暴露为易于使用的MATLAB函数,提供用于计算具有过滤器组的线性卷积,特征池化等的例程。以这种方式,MatConvNet允许新的CNN快速原型架构;同时,它支持CPU和GPU上的有效计算,允许在大型数据集(如ImageNet ILSVRC)上训练复杂模型。本文档概述了CNN及其

2016-12-15 20:55:38 2939 1

转载 卷积神经网络(CNN)标准模型分析(四)

卷积神经网络的变种模型(一)卷积神经网络可以改变输入的形式,比如说把一副图像的R、G、B三个通道看做一个整体输入,并且采用3D的卷积核,建立3D卷积神经网络模型,以处理视频图像。 (二)卷积神经网络可以采用重叠池化来进行下采样,比如在AlexNet中就采用了重叠池化的技术。池化就是对矩阵数据进行分块下采样。在标准的卷积神经网络中,池化分块是不允许重叠的。如果允许重叠,那么将产生更大的下采样层,学习

2016-12-15 15:13:06 4068 3

转载 卷积神经网络(CNN)标准模型分析(三)

卷积神经网络的学习算法卷积神经网络在本质上是一种特殊的多层前馈网络,它的权值和偏置在理论上可以用反向传播的算法进行学习和训练。现在我们来分析,对于第l个样本,标准的卷积神经网路从输入到输出的计算过程: 其中的”。“表示两个向量的阿达马积,rot180(.)的意思是把一个矩阵水平翻转一次再垂直翻转一次。

2016-12-15 13:35:30 963

转载 卷积神经网络(CNN)标准模型分析(二)

第一个隐含层的构造:卷积神经网络的第1个隐含层用H1表示。由于H1是通过卷积来计算的,所以又称为卷积层。一个卷积层可能包含多个卷积面(这里即我们所说的特征图)。每个卷积面又关联于一个卷积核。第2个隐含层的构造第二层为下采样层,一个下采样层可能包含多个下采样面,这些下采样面又称为下采样特征图。 全连接层的构造全连接的各层分别用H5-Hr表示,主要是用来分类。这些层实际上是构成了一个普通的多层前馈网络

2016-12-15 13:13:38 864

转载 用matlab弹奏卡农

% Cripple Pachebel's Canon on Matlab% Have funfs = 44100; % sample ratedt = 1/fs;T16 = 0.125;t16 = [0:dt:T16];[temp k] = size(t16);t4 = linspace(0,4*T16,4*k);t8 = linspace(0,2*T16,2*k);[temp i]

2016-12-15 12:24:38 2370 1

原创 DeepLearningtoolbox(8):cnnbp.m

%函数名称:cnnbp() %输入参数:net,待训练的神经网络;y,训练样本的标签,即期望输出 %输出参数:net,经过BP算法训练得到的神经网络 %主要功能:通过BP算法训练神经网络参数 %实现步骤:1)将输出的残差扩展成与最后一层的特征map相同的尺寸形式 % 2)如果是卷积层,则进行上采样 % 3)如果是下采样层,则进行下采样 %

2016-12-14 00:49:47 668

原创 DeepLearningtoolbox(7):cnnff.m

%函数名称:cnnff() %输入参数:net,神经网络;x,训练数据矩阵; %输出参数:net,训练完成的卷积神经网络 %主要功能:使用当前的神经网络对输入的向量进行预测 %算法流程:1)将样本打乱,随机选择进行训练; % 2)讲样本输入网络,层层映射得到预测值 %注意事项:1)使用BP算法计算梯度 function net = cnnff(net, x)

2016-12-14 00:28:32 716

转载 卷积神经网络(CNN)标准模型分析(一)

卷积神经网络的早期模型称为神经认知机,是一种生物物理模型···其中大量神经元按照一定的方式组织起来,以对视野中的交叠区域产生反应。卷积神经网络的标准模型: CNN最初最初是受到视觉系统的神经机制的启发,针对二维形状的识别而设计的一种多层感知器,在平移的情况下具有高度不变性。在缩放和倾斜的情况下也具有一定的不变性。···通过对猫视觉皮层细胞的研究,提出了感受野的概念 ···在感受野的基础上,提出了

2016-12-14 00:10:40 2263

原创 DeepLearningtoolbox(6):cnnapplygrads.m

%函数名称:cnnapplygrads(),权值更新函数 %输入参数:net,权值待更新的卷积神经网络;opts,神经网络训练的相关参数%算法流程:先更新卷积层的参数,再更新全连接层参数function net = cnnapplygrads(net, opts) for l = 2 : numel(net.layers) if strcmp(net.layers{l}.ty

2016-12-13 22:41:47 806

原创 DeepLearningtoolbox(5):cnntest.m

function[er,bad]=cnntest(net,x,y)%前向计算 net=cnnff(net,x); [~,h]=max(net.o);%找到最大的输出对应标签 [~,a]=max(y);%找到最大的期望输出对应的索引 bad=find(h~=a);%找到它们不相同的个数,也就是错误的个数。 er=numel(bad)/size(y,2);%计算错

2016-12-13 22:32:17 805

原创 DeepLearningtoolbox(4):cnntrain.m

%opts,神经网络的相关训练参数; %net,神经网络;x,训练数据矩阵;y,训练数据的标签矩阵;function net = cnntrain(net, x, y, opts) m = size(x, 3);%训练样本的个数 %disp(['样本总个数=' num2str(m)]); numbatches = m / opts.batchsize; %rem(

2016-12-13 22:21:56 595

空空如也

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

TA关注的人

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