机器学习与图像识别
码海岛主
这个作者很懒,什么都没留下…
展开
-
libSVM在MATLAB中的初步使用
忙忙碌碌地调试了两天,差不多算是搞定了libSVM在MATLAB里面的初步设置,主要参考了http://blog.csdn.net/abcjennifer/article/details/7370177http://apinetree.blog.51cto.com/714152/1560254/两位前辈的文章。过程不再赘述,说说需要注意的几个点:1、现在发布的版本中,libsvmre原创 2017-09-05 12:32:48 · 288 阅读 · 0 评论 -
Caffe卷积层的实现细节
这两天跟Caffe的源码死磕了一阵,有点吐血的感觉,果然我和大神的思维还是有点差距的.......这篇主要记录一下Caffe的一个重要layer——卷积层的实现,首先需要明确,在lenet的示例中,用的是conv_layer,但它并非是最基础的卷积层,它是继承了base_conv_layer,这个才是最基础的卷积层,很多卷积函数实际上是在这里面实现的。阅读过程中参考了多篇博文,感觉讲得原创 2017-09-05 12:34:58 · 1219 阅读 · 0 评论 -
在VS2013上安装opencv
今天安装了一下opencv,用于后续的图片数据处理,主要参考博文http://blog.csdn.net/SherryD/article/details/51734334一、解压与环境路径首先从官网下载最新的2.4.13,直接打开exe文件,实际上就是一个简单的解压,我解压的目录是D:\Application\opencv解压完成之后,和java类似,需要让系统知道你的库文件在哪,所以打原创 2017-09-05 12:35:01 · 435 阅读 · 0 评论 -
自制lenet:从获取数据到网络编写…
这两天自己从数据预处理一直到编写网络,做了一次完整的caffe编程,用的数据集是mnist,参考的网络是caffe上的lenet。首先说几个对自己帮助比较大的博客:【1】、http://www.cnblogs.com/NanShan2016/p/5487194.html这个系列博客介绍了一种一般性的方法,如何从任意图像数据,得到能被caffe处理的lmdb数据。【2】、http://原创 2017-09-05 12:35:03 · 265 阅读 · 0 评论 -
自制lenet:从获取数据到网络编写…
这几天在自定的mnist数据基础上,自行编写了mnist网络以及使用该网络的solver,这里记录一下。首先正如之前提到的,我们要编写的网络,即是由多个layer组成,编写网络的任务,就是定义各个layer之间的连接,以及设置layer内部的参数等等。有了一个网络之后,我们需要再定义一个solver,它的主要任务就是告诉Caffe,要怎么使用这个网络,设定权值的更新方式、更新幅度等等。原创 2017-09-05 12:35:06 · 201 阅读 · 0 评论 -
finetune入门,如何用已有的caffem…
调整了N久,终于收敛了,记录一下这段时间的工作。首先在caffe官网的github上,有个modelzoo,里面有很多预训练的模型,这里下载一个VGG_CNN_M_2048的model。然后就把网络复制到本地,这里有个问题,我用vgg网页上附带的网络代码,运行一直没法收敛,换了caffe自带的在路径models/bvlc_reference_caffenet/train_val.protot原创 2017-09-05 12:35:36 · 525 阅读 · 0 评论 -
在Ubuntu上安装opencv
由于实验要用到dense flow,因此需要在ubuntu 14.10上安装opencv,这里安装的是opencv-2.4.9。首先在官网下载opencv对应版本,然后按照网上的博客,安装了一大堆依赖,总结如下:sudo apt-get -qq install libopencv-dev build-essentialcheckinstall cmake pkg-config yasm l原创 2017-09-05 12:35:41 · 290 阅读 · 0 评论 -
caffe使用图片数据作为输入
caffe输入图片数据其实很简单,把层类型改成ImageData,source改成指向图片信息的文件(其中每行指向一张图片)即可。最主要记得,如果提示错误信息:F0629 09:46:54.935997 18325 image_data_layer.cpp:49]Check failed: !lines_.empty() File is empty原因很可能是,要把原来写在data_par原创 2017-09-05 12:35:55 · 2976 阅读 · 2 评论 -
用已有的caffemodel和python脚本进…
2月13日更新:在使用python脚本之前,首先需要在根目录makepycaffe,同时确保环境变量PYTHONPATH是指向当前caffe/python这一子目录下的,如果指向其他版本caffe的python目录,可能导致程序无法运行==========================================================当已有caffemodel之后,原创 2017-09-05 12:36:14 · 629 阅读 · 0 评论 -
斯坦福机器学习公开课--整理笔记(…
本节课内容是:朴素贝叶斯的更多模型、神经网络入门、支持向量机一、朴素贝叶斯在上一课中提到,对于一个新样本,由贝叶斯方法得到的模型可以做出如下推断而贝叶斯的最终目的,就是在P(y=1|x)和P(y=0|x)两者中,选值大的一方作为label就行而在本节课的开头,先介绍了此方法的两种变化变化一:在上式中Xi的取值只有0和1两种,那么让Xi取多个值,即Xi∈{1,2,…...原创 2017-09-05 12:33:55 · 371 阅读 · 0 评论 -
斯坦福机器学习公开课--整理笔记(…
一、生成学习方法与判别学习方法前面学的逻辑回归、最小二乘法等方法,均属于判别学习方法(discriminative learning algorithm,DLA),这类方法的特点在于,直接根据样本数据,得到p(y|x),或者得到假设hθ(x),输出为0或者1。而生成学习方法(generative learning algorithm,GLA)则不同,虽然同样是对样本数据进行处理,但它处理后会得...原创 2017-09-05 12:33:31 · 453 阅读 · 0 评论 -
斯坦福机器学习公开课--整理笔记(…
第四课,内容如下:一、牛顿方法:在上一课中,提到了用梯度上升(下降)的方法来拟合逻辑回归模型,这里介绍了一种比梯度上升更快的方法,即牛顿方法来进行拟合。牛顿方法的原理是:对于一个函数f(x),若要求f(x)= 0 时的x的取值,则任取一个初始值x0,那么新的迭代值x1=f(x0)/f'(x0),即这一点的函数值除以导数值。这实际上是求得f(x0)处的切线,求出的新迭代值...原创 2017-09-05 12:33:28 · 333 阅读 · 0 评论 -
斯坦福机器学习公开课--整理笔记(…
第三课内容如下:一、过拟合与欠拟合二、参数学习方法:有一个固定数目的参数集合来进行数据拟合的算法 非参数学习方法:参数数目随训练集样本数目增长而增长。三、局部加权回归(LOESS)算法,一种非参数学习方法。接上一课线性回归的问题,我们需要解决的就是根据训练样本,得出一个最理想的Θ,使得损失函数的值最小。但单纯根据这种方式,可能会出现过拟合或者...原创 2017-09-05 12:33:26 · 324 阅读 · 0 评论 -
自行编写caffe网络层
本文主要参照http://blog.csdn.net/shuzfan/article/details/51322976,编写一个简单的传播层,前向传播时复制数据,反向传播时把梯度按比例缩放。首先需要明确caffe的工作结构,从总体细分依次是:solver->net->layer->blob首先是solver,这个可以理解为一个解释器,里面是很多caffe命令,包括指明程序该使用哪一个深度原创 2017-09-05 12:34:55 · 316 阅读 · 0 评论 -
双流神经网络及3D卷积系列论文阅读…
这周一共读了4篇论文,算是理清了从最初的时间+空间双流神经网络,到今年CVPR的3D卷积+双流网络这一系列的演化。第一篇Two-Stream Convolutional Networks for Action Recognition inVideos提出的是一个双流的CNN网络,分别捕捉空间和时间信息。对于空间信息,文章用的是类似于另一篇论文的CNN结构,这个准备之后在阅读,对于时间信原创 2017-09-05 12:34:47 · 10578 阅读 · 4 评论 -
MSR 3d action dataset初步阅读笔…
今天开始实现Eigenjoints-based action recognition usingnaive-bayes-nearest-neighbor这篇论文的代码,数据集来自MSR,这里需要注意的是,我们下载数据集的网站http://research.microsoft.com/en-us/um/people/zliu/ActionRecoRsrc/default.htm上有多个数据集,我们原创 2017-09-05 12:32:59 · 964 阅读 · 2 评论 -
关于处理MSR3D_ActionDataset的一…
今天试着将计算得到的原始特征矩阵进行降维等简单化处理,还是学到蛮多东西的,首先是归一化,因为得到的特征矩阵中,u,v,d三个特征对应的值相差很大,所以要进行归一,说白了还是挺简单的,这里使用的是线性归一:y=(x-MinValue)/(MaxValue-MinValue)其中x、y分别为转换前、后的值,MaxValue、MinValue分别为样本的最大值和最小值。此外还有很多归一方法,区原创 2017-09-05 12:33:04 · 1802 阅读 · 0 评论 -
(转)计算机视觉著名数据集CV&nbs…
本来准备整篇文章直接贴过来的,结果新浪非得说有非法字符。。。把链接放在这里做记录好了:http://blog.csdn.net/kezunhai/article/details/50068255原创 2017-09-05 12:33:13 · 226 阅读 · 0 评论 -
深度学习入门笔记
之前研讨会各种听老板和师兄谈论deeplearning的话题,自己也就听一听,这段时间出于了解论文的目的仔细研究了一下,感觉内部挺复杂的,不过若只是需要了解原理,其实还比较简单。首先推荐一个博客地址,很多基本原理都是参照这里的:http://blog.csdn.net/zouxy09/article/details/8775360/深度学习与以往的机器学习方法不同之处在于,它并非是一个原创 2017-09-05 12:33:15 · 1317 阅读 · 0 评论 -
高斯金字塔与图片尺寸缩放
这两天在看CVPR2015的论文Beyond Gaussian Pyramid: Multi-skip FeatureStacking for Action Recognition,是在高斯金字塔上的一个延伸,这里简单记录一下高斯金字塔的原理高斯金字塔的基本思想是,通过对图像进行下采样达到缩放尺寸的目的。如2阶的下采样,就是把原图像中一个2*2的像素块,变成了新图像中的一个像素块,图像就变原创 2017-09-05 12:33:18 · 842 阅读 · 0 评论 -
方向梯度直方图(HOG)阅读笔记
在2005年的CVPR会议上,Dalal大牛首次提出了HOG这一概念,起初是用于行人检测(PedestrianDetection),现在已经被广泛用于各类图像识别算法中,一般模式是HOG提取特征+SVM分类。这里记录一下HOG的基本思想和概念。首先来看一下摘自Dalal的HOG论文中的一句话:The basic idea is that local objectappearance and原创 2017-09-05 12:33:21 · 520 阅读 · 0 评论 -
深度学习与CNN、RNN(一)(反向传…
在之前的斯坦福阅读笔记中简单介绍了神经网络,这两周梳理了一下从神经网络到RNN、CNN再到深度学习的主要内容,这里简单整理一下一、BP(反向传播算法)在介绍RNN、CNN之前,需要先讲一下神经网络的训练学习中,一个常用的训练算法,即反向传播。从一般的神经网络到RNN等,均是用该算法进行参数训练。这段内容主要参照了下列博客http://galaxy.agh.edu.pl/~vlsi/AI/b原创 2017-09-05 12:34:29 · 564 阅读 · 0 评论 -
深度学习与CNN、RNN(二)
在有了BP算法的基础之后,就可以开始了解RNN了一、RNN基础知识RNN的设计目的是尝试了解序列数据,比如你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。但对于普通神经网络,就只能从当前给定的这个词来判断,而RNN就可以结合之前提到的词汇,更科学地判断。之所以能这么做,关键就是在于,RNN相对于一般的神经网络多了一个时序结构,如下图一般原创 2017-09-05 12:34:31 · 518 阅读 · 0 评论 -
深度学习与CNN、RNN(三)
在了解过RNN之后,还需要了解另一种在深度学习上应用广泛的网络——CNN(卷及神经网络,Convolutional NeuralNetwork),特别是在图像识别领域,CNN由于其方便性,可靠性等特点,已经成为了图像识别领域的主要研究方法。在图像处理中,如果与人脑对图像的处理类比,那么我们肯定更倾向于相信,人脑是通过对图像的整体分析来判定图像类别的。这也就意味着,图像信息可能是由整个或部分原创 2017-09-05 12:34:34 · 766 阅读 · 0 评论 -
在Ubuntu上安装caffe
Caffe是一款优秀的深度学习编程框架,这段时间因为需要使用LSTM、CNN等,因此尝试在有GPU的主机上安装Caffe,系统是ubuntu。首先从官网下载Caffe的最新版源码包,在安装之前,先需要更新部分系统依赖:sudo apt-get install libprotobuf-dev libleveldb-devlibsnappy-dev libopencv-dev libhdf5原创 2017-09-05 12:34:36 · 319 阅读 · 0 评论 -
Fourier Temporal Pyramid原论文阅…
最近浏览论文时,发现在CNN处理时会经常提到一个名为Fourier TemporalPyramid的方法,于是这两天找到了原论文过了一遍,因为内容比较多,所以在写完阅读笔记之后,再在博文上详细记录一下。这篇论文名字是:Learning Actionlet Ensemble for 3D Human ActionRecognition,主要提出的是两种基本特征表达方法,一种时序特征表达方法(原创 2017-09-05 12:34:42 · 824 阅读 · 0 评论 -
从安装cudnn拓展开的故事。。。
最开始在室友的建议下,采用cudnn来加速caffe的运算速度,然而莫名其妙的发现,主机gpu1上的GPU使用率始终保持在90%以上,因此尝试自行修复,结果悲剧了,一次重启之后发现/usr/bin目录下找不到nvidia-smi命令,然后就没法查看GPU状态了......开始以为是驱动的问题,于是把cuda重装,发现没解决,一咬牙把整个nvidia驱动都重装了,为了把之前的nvidia驱动原创 2017-09-05 12:34:45 · 294 阅读 · 0 评论 -
斯坦福机器学习公开课--整理笔记(…
跟老板聊了很久之后,决定换一个研究方向,本来想专门写一篇博文说说数据挖掘与机器学习,后来转念也想也算了,毕竟之前还是有很多可以用上的知识,这几天准备把Andrew大牛的机器学习公开课重新刷一遍,简单做一下笔记好了。第一课是基本介绍,略过。第二课:监督学习应用.梯度下降:这节课主要探究的是监督学习的最优化,即给定输入特征向量X,标准输出Y,要求用一个线性函数h(x)来拟合中间...原创 2017-09-05 12:33:23 · 613 阅读 · 0 评论