一些知识点的初步理解_2(流形学习,ing...)
摘要:一. 流形学习的英文名为manifold learning。其主要思想是把一个高维的数据非线性映射到低维,该低维数据能够反映高维数据的本质,当然有一个前提假设就是高维观察数据存在流形结构,其优点是非参数,非线性,求解过程简单。二. 流形学习的可行性是因为:1.从认知心理学的角度来讲心理学家认为人的认知过程是基于认知流形和拓扑连续性的;2.许多高维采用数据都是由少数几个隐变量所决定的,所以可以用少数的低维数据来刻画高维数据。三. 流形学习所需的数学背景知识:微分流形,黎曼流形,微分几何,切向量场,拓扑空间,光滑映射等。四. 经典流形学习算法:Isomap:等距映射。前提假设为低维空间中的欧式距离
阅读全文
posted @
2012-03-29 10:23
tornadomeet
阅读(11341)
推荐(3) 编辑
基础学习笔记之opencv(3):haartraining生成.xml文件过程
摘要:1.准备正负样本: 在上一讲http://www.cnblogs.com/tornadomeet/archive/2012/03/27/2420088.html 中,我们已经收集到了训练所用的正样本。下面就开始收集负样本了,负样本要求是:不能包含人脸,且图片大小也不需要归一化到正样本尺寸,只需比正样本尺寸大或者相等即可。建议负样本用灰度图,加快训练速度,且负样本一定不能重复,要增大负样本的差异性。 这里我采用的负样本是用的是weizmann团队http://www.wisdom.weizmann.ac.il/~vision/Seg_Evaluation_DB/dl.html 网站上的图像分割数
阅读全文
posted @
2012-03-28 11:28
tornadomeet
阅读(42467)
推荐(1) 编辑
基础学习笔记之opencv(2):haartraining前将统一图片尺寸方法
摘要:总所周知,机器学习前要训练很多数据,一直感觉训练数据是个很神圣的东西,到底怎么训练呢?头脑一直有这么个疑问,但一直没时间去体验。因此最近在学adaboost算法,就要学会怎样训练出一个.xml文件了。方法是相同的,用过一次,以后的训练过程就差不多了。 只是打算进行简单的人脸数据训练,而是在网上下载了yale大学的人脸数据库,由耶鲁大学计算视觉与控制中心创建,包含15位志愿者的165张图片,包含光照,表情和姿态。下载网址为:http://cvc.yale.edu/projects/yalefaces/yalefaces.html。图片如下所示:(右下角是我的系统透明主题的青花瓷照片,别惊讶怎么.
阅读全文
posted @
2012-03-27 20:10
tornadomeet
阅读(23818)
推荐(6) 编辑
Matlab DIP(瓦)ch10图像分割练习
摘要:这一章中主要是用数字图像处理技术对图像进行分割。因为图像分割是个比较难的课题。这里练习的是比较基本的。包过点、线和边缘的检测,hough变换的应用,阈值处理,基于区域的分割以及基于分水岭方法的分割。 其练习代码和结果如下: 1 %% 图像分割 2 3 %% 点检测 4 clc 5 clear 6 f=imread('.\images\dipum_images_ch10\Fig1002(a)(test_pattern_with_single_pixel).tif'); 7 subplot(121),imshow(f),title('点检测原图'); 8 9 w=[
阅读全文
posted @
2012-03-26 11:07
tornadomeet
阅读(17199)
推荐(1) 编辑
HMM学习笔记_3(从一个实例中学习Viterbi算法)
摘要:在上一篇博客http://www.cnblogs.com/tornadomeet/archive/2012/03/24/2415583.html中,我们已经从一个例子中学会了HMM的前向算法,解决了HMM算法的第一个问题,即模型评估问题。这一讲中我们来解决第二个问题:HMM的解码问题,即即给定观测序列 O=O1O2O3…Ot和模型参数λ=(A,B,π),怎样寻找满足这种观察序列意义上最优的隐含状态序列S,这一步中最常用的算法就是Viterbi算法了。 同样的,我们先引入3个符合: :表示在观察时刻t正处在状态j,且沿一条路径q1q2q3..qt,产生出的o1o2o3…ot最大概率。 :表示的.
阅读全文
posted @
2012-03-24 19:24
tornadomeet
阅读(26685)
推荐(6) 编辑
HMM学习笔记_2(从一个实例中学习HMM前向算法)
摘要:HMM算法想必大家已经听说了好多次了,完全看公式一头雾水。但是HMM的基本理论其实很简单。因为HMM是马尔科夫链中的一种,只是它的状态不能直接被观察到,但是可以通过观察向量间接的反映出来,即每一个观察向量由一个具有相应概率密度分布的状态序列产生,又由于每一个状态也是随机分布的,所以HMM是一个双重...
阅读全文
posted @
2012-03-24 16:16
tornadomeet
阅读(32265)
推荐(6) 编辑
HMM学习笔记_1(从一个实例中学习DTW算法)
摘要:DTW为(Dynamic Time Warping,动态时间归准)的简称。应用很广,主要是在模板匹配中,比如说用在孤立词语音识别,计算机视觉中的行为识别,信息检索等中。可能大家学过这些类似的课程都看到过这个算法,公式也有几个,但是很抽象,当时看懂了但不久就会忘记,因为没有具体的实例来加深印象。 这次主要是用语音识别课程老师上课的一个题目来理解DTW算法。 首先还是介绍下DTW的思想:假设现在有一个标准的参考模板R,是一个M维的向量,即R={R(1),R(2),……,R(m),……,R(M)},每个分量可以是一个数或者是一个更小的向量。现在有一个才测试的模板T,是一个N维向量,即T...
阅读全文
posted @
2012-03-23 11:29
tornadomeet
阅读(62290)
推荐(10) 编辑
基础学习笔记之opencv(1):opencv中facedetect例子浅析
摘要:人脸检测一种主流的方法就是类haar+adaboosting,opencv中也是用的这种方法。这种方法可以推广到刚性物体的检测,前提是要训练好级联分类器(比如说用类haar特征),一旦训练数据弄好了,直接调用opencv中的类CascadeClassifier,用它的几个简单的成员函数就可以完成检测功能。所以说用起来还是很简单的。下面就是用的opencv中自带的samples中的facedetect例子。 当然,源例子考虑到了摄像头,视频,图片多种情况,还有很多出错处理的表达。这里我讲其代码都省略了,因为看起来不是特别简洁。否则还需要用命令行输入,比如说如下图: 要输入的东西比较多,如果一旦.
阅读全文
posted @
2012-03-22 11:20
tornadomeet
阅读(45531)
推荐(2) 编辑
一些知识点的初步理解_1(集成学习,ing...)
摘要:最近在看一些集成学习方面的知识,其中南京大学的周志华教授写的几篇关于集成学习综述性的文章还不错。看了下对集成学习有了一个初步的了解,如下: 集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。一、集成学习中主要的3个算法为:boosting,bagging,stacking. 其中boosting的弱分类器形成是同一种机器学习算法,只是其数据抽取时的.
阅读全文
posted @
2012-03-21 10:47
tornadomeet
阅读(11895)
推荐(0) 编辑
Matlab DIP(瓦)ch9形态学图像处理
摘要:本章的练习主要是形态学的一些基本概念和技术,这些构成了一组提取图像特征的有力工具,针对二值图像和灰度图像的腐蚀、膨胀和重构的基本操作可以组合使用,以执行非常宽泛的任务。其练习代码和结果如下: 1 %% 第9章 形态学处理 2 3 %% imdilate膨胀 4 clc 5 clear 6 7 A1=imread('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif'); 8 info=imfinfo('.\images\dipum_images_ch09\Fig0906(a)(broken-text).tif
阅读全文
posted @
2012-03-20 16:06
tornadomeet
阅读(49348)
推荐(15) 编辑
目标跟踪学习笔记_2(particle filter初探1)
摘要:首先提供几篇关于粒子滤波算法的博客:http://www.cnblogs.com/yangyangcv/archive/2010/05/23/1742263.html 这篇博客比较通俗易懂,简单的介绍了粒子滤波的基本工作思想和步骤。http://www.cnblogs.com/lwbaptx/archive/2011/10/20/2218419.html这篇博客用的是opencv1.0,实现的功能是用粒子滤波跟踪鼠标轨迹,有视频演示,效果还不错。http://blog.csdn.net/yang_xian521/article/details/6928131 这篇博客是用粒子滤波来做视频目标.
阅读全文
posted @
2012-03-18 17:43
tornadomeet
阅读(17403)
推荐(0) 编辑
Matlab DIP(瓦)ch8图像压缩练习
摘要:本章中,主要粗略练习图像压缩方面的知识。图像压缩分为3部分,编码压缩,像素间冗余压缩,心理视觉冗余压缩。编码主要分为线性预测编码,哈弗曼编码,已经JPEG和JPEG2000等。练习代码和解释如下: 1 %第八章 图像压缩 2 10 %% entropy熵 11 clc 12 clear 13 f=[119 123 168 119;123 119 168 168] 14 f=[f;119 119 107 119;107 107 119 119]%不想分行的写法 15 h1=entropy(f,8)%直接算其8个bin的熵 16 %%h1=1.7806 17 18 %[p x]=his...
阅读全文
posted @
2012-03-17 20:10
tornadomeet
阅读(3739)
推荐(0) 编辑
目标跟踪学习笔记_1(opencv中meanshift和camshift例子的应用)
摘要:在这一节中,主要讲目标跟踪的一个重要的算法Camshift,因为它是连续自使用的meanShift,所以这2个函数opencv中都有,且都很重要。为了让大家先达到一个感性认识。这节主要是看懂和运行opencv中给的sample并稍加修改。 Camshift函数的原型为:RotatedRect CamShift(InputArray probImage, Rect& window, TermCriteria criteria)。 其中probImage为输入图像直方图的反向投影图,window为要跟踪目标的初始位置矩形框,criteria为算法结束条件。函数返回一个有方向角度的矩阵。该函
阅读全文
posted @
2012-03-15 21:47
tornadomeet
阅读(51016)
推荐(6) 编辑
Matlab DIP(瓦)ch7小波练习
摘要:在这一章中,主要进行小波图像处理的练习,内容包括小波图像滤波,小波图像分解,小波图像重构,小波图像边缘检测,小波图像平滑和去噪以及小波图像的渐进重构等问题。其练习代码和解释以及结果如下所示: 1 %% wfilters and wavefun 2 clc 3 clear 4 wname='haar';%说明是haar小波 5 [Lo_D,Hi_D,Lo_R,Hi_R]=wfilters(wname);%wfilters函数的功能是:计算4个正交或者双正交的小波滤波器 6 subplot(221);stem(Lo_D);%stem为绘制火柴梗图像 7 title('Dec
阅读全文
posted @
2012-03-11 22:20
tornadomeet
阅读(4355)
推荐(1) 编辑
opencv源码解析之(4):GaussianBlur()
摘要:这一节来真正进入opencv的源码分析中,本次分析的函数是GaussianBlur(),即高斯滤波函数。在前前面博文《opencv源码解析之滤波前言2》:http://www.cnblogs.com/tornadomeet/archive/2012/03/05/2379921.html中已经阐述了这个函数的用法,即: 其函数声明为: void GaussianBlur(InputArray src, OutputArray dst, Size ksize, double sigmaX, double sigmaY=0, int borderType=BORDER_DEFAULT ) ; 功能.
阅读全文
posted @
2012-03-10 22:53
tornadomeet
阅读(35822)
推荐(5) 编辑
opencv源码解析之(3):特征点检查前言1
摘要:因为最近准备看特征点检查方面的源码,而其中最著名的算法就是sift和surf。因此这次主要是学会怎样使用opencv中的sift和surf函数来检测特征点和描述特征点,以及怎样使用其算法来进行特征点匹配。庆幸的是,sift算法虽然是专利,但是在opencv的努力下也获得了作者的允许,将其加入了新版本的opencv中了。使用环境:opencv2.3.1+vs2010功能:找出2幅图中特征点,并将其描述出来,且在2幅中进行匹配。2幅图内容相同,但是经过了曝光,旋转,缩放处理过。首先来看sift算法函数的使用。工程代码:// sift_test.cpp : 定义控制台应用程序的入口点。#inclu.
阅读全文
posted @
2012-03-08 10:46
tornadomeet
阅读(28021)
推荐(1) 编辑
Matlab DIP(瓦)ch5图像复原练习
摘要:这一章内容比较多点,主要将的是图像复原部分,包过线性复原和非线性复原,最好还有一些图像变换方面的练习。这次练习相对上一章把一些比较重要的图片结果贴出来了,希望与大家一起交流!%% 模拟产生各种噪声clcclear%注意此处函数imnoise2与imnoise不同,imnoise是对一幅图像加噪声r=imnoise2('gaussian',100000,1,0,1);%imnoise2是产生噪声矩阵,这里是产生高斯噪声,矩阵大小为10000*1bins=100; %均值为0,方差为1hist(r,bins);%将r矩阵中的数值直方图表示出来,...
阅读全文
posted @
2012-03-07 11:37
tornadomeet
阅读(5716)
推荐(0) 编辑
opencv源码解析之(2):滤波前言2
摘要:在上次的opencv源码解析之滤波前言1中,按照opencv_tutorials.pdf中的滤波部分试了下常用的4种滤波器的使用方法。在opencv的C++中,这4个函数分别为:blur,GaussianBlur,meidaBlur,bilateralFilter.下面就这几个函数在opencv中的功能,以及参数做个介绍:均值滤波:其函数声明为:void blur(InputArray src, OutputArray dst, Size ksize, Point anchor=Point(-1,-1), int borderType=BORDER_DEFAULT )。这个函数在上一节中介绍.
阅读全文
posted @
2012-03-05 09:11
tornadomeet
阅读(7083)
推荐(1) 编辑
Matlab DIP(瓦)ch4图像频域滤波练习
摘要:这一章也是按照网萨雷斯的matlab书练习的,主要讲的是图像的频域滤波方面的只是,这一次的代码相对于第3章稍加了些注释。有几个函数的功能还不是特别明确。练习代码如下:%% fftshift 对数变换,所应用的图片本身很简单,就只有黑白2种颜色clcclearf = imread('.\images\dipum_images_ch04\Fig0403(a)(image).tif');imshow(f)title('原始图像')imfinfo('.\images\dipum_images_ch04\Fig0403(a)(image).tif');%此
阅读全文
posted @
2012-03-04 09:58
tornadomeet
阅读(5105)
推荐(0) 编辑
opencv源码解析之(1):滤波前言1
摘要:对图像的滤波和平滑是出来数字图像处理和计算机视觉非常重要的一个步骤,那么什么是滤波呢?滤波用编程语言到底是怎么实现的呢?效果怎么样?本人打算学习opencv有关滤波的源码,进一步加强图像处理的实践能力。 首先我们利用opencv中常见的4种滤波算法函数来实现滤波功能,让大家有个感性的认识。这4中滤波分别是均值滤波,高斯滤波,中值滤波,双边滤波。利用opencv2.3.1的参考手册中关于opencv中滤波的介绍,我这里采用的是VS2010+opencv2.3.1,新建了一个filter_test控制台工程。其源码和注释如下://包含图像处理和界面处理的头文件#include "stda
阅读全文
posted @
2012-03-03 12:03
tornadomeet
阅读(10130)
推荐(1) 编辑
Matlab DIP(瓦)ch3图像空间域滤波练习
摘要:Matlab是一种图像视频处理实现的好工具,因为matlab是基于数组操作的,而一副图像就是一个数组。因此搞DIP或者CV的是一种必需掌握的工具。 为了学会使用matlab在图像处理的基本应用。按照瓦萨雷斯数字图像处理Matlab版中的第三章,按照书本输了一遍。代码中用到的图片(网上可以下载)放在本目录的images中。没写什么注释,因为自己输入过程中看help命令和试验结果基本都可以弄懂,代码最后有一些小笔记。代码如下:clcclear f=imread('.\images\dipum_images_ch03\Fig0303(a)(breast).tif');subplot(
阅读全文
posted @
2012-03-03 11:23
tornadomeet
阅读(3688)
推荐(2) 编辑