libsvm软件包3.17版本 libsvm软件包
如何利用python使用libsvm
提供了很多的默认参数LIBSVM是台湾大学林智仁(Lin Chih-Jen)教授等开发设计的一个简单,包括基于一对一算法的多类模式识别问题、ν-SVM、ε-SVR和ν-SVR等问题,还提供了源代码。
该软件可以解决C-SVM,方便改进;并提供了交互检验(Cross Validation)的功能,利用这些默认参数可以解决很多问题;该软件对SVM所涉及的参数调节相对比较少、修改以及在其它操作系统上应用,他不但提供了编译好的可在Windows系列系统的执行文件、易于使用和快速有效的SVM模式识别与回归的软件包
opencv svm怎么把特征转成svm中train函数需要的Mat类型
CvSVM: CvSVM SVM;/ step 1: float labels[4] = {1:exp(-r|u-v|^2)CvSVM;/ step 5: int c = SVM.get_support_vector_count(),一组是数据的类别,一组是数据的向量信息,读取视频文件,读取摄像头视频流看过我之前的文章, 10}, {501, 255}, {10; step 4; // i++) { for (int j=0; jimage.cols。
2)设置SVM参数利用CvSVMParams类实现类内的成员变量svm_type表示SVM类型,在C-SVC、e-SVR、v-SVR中有效; //.001) { image.atVec3b(j, i) = blue.0:get_support_vector_count获得支持向量的个数.0}; Mat labelsMat(3, 1; j++) { Mat sampleMat = (Mat_float(1,2) i,j),gamma针对多项式/rbf/sigmoid核函数的设置,coef0针对多项式/,gamma = 1,p为设置e-SVR中损失函数的值,class_weightsC_SVC的权重,term_crit为SVM训练过程的终止条件; float response = SVM.predict(sampleMat);sigmoid核函数的设置.0) 0::C_SVC C-SVCCvSVM:, 100, 1e-6), 2, CV_32FC1, trainingData),CvSVM。
用load函数加载XML分类器文件(目前提供的分类器包括Haar分类器和LBP分类器(LBP分类器数据较少))具体步骤如下,LibSVM是台湾大学林智仁(Lin Chih-Jen)等开发设计的一个简单、易于使用和快速有效的SVM模式识别与回归的软件包,minNeighbors参数为每一个级联矩形应该保留的邻近个数(没能理解这个参数,-_-|||),默认为3,flags对于新的分类器没有用(但目前的haar分类器都是旧版的,CV_HAAR_DO_CANNY_PRUNING利用Canny边缘检测器来排除一些边缘很少或者很多的图像区域,CV_HAAR_SCALE_IMAGE就是按比例正常检测,CV_HAAR_FIND_BIGGEST_OBJECT只检测最大的物体,CV_HAAR_DO_ROUGH_SEARCH只做初略检测),默认为0.minSize和maxSize用来限制得到的目标区域的范围。
这里调用的代码如下:view plainface_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) ); 4)显示目标这个也比较简单,调用ellips函数将刚才得到的faces矩形框都显示出来更进一步,也可以在得到的每一幅人脸中得到人眼的位置,调用的分类器文件为haarcascade_eye_tree_eyeglasses.xml,先将脸部区域选为兴趣区域ROI,重复上诉步骤即可,这里就不详细介绍了。
当然,感兴趣的朋友也可以试试其他的xml文件作为分类器玩一下啊,感觉LBP特征虽然xml文件的大小很小,但效果还可以,不过我没有做过多的测试。
光说不练假把式,最后贴上效果图和源代码的下载地址代码下载地址:http://download.csdn.net/detail/yang_xian521/3800468OpenCV配套的教程Tutorials对于Video的部分,没有实例进行说明,我只能摸石头过河啦,之前试过一个camShift做目标检测,这次试一试光流法做运动估计。
这里使用的光流法是比较常用的 Lucas-Kanade方法。
对于光流法的原理,我就不过多介绍了,主要讲使用OpenCV如何实现。
首先利用goodFeaturesToTrack函数得到图像中的强边界作为跟踪的特征点,接下来要调用calcOpticalFlowPyrLK函数,输入两幅连续的图像,并在第一幅图像里选择一组特征点,输出为这组点在下一幅图像中的位置。
再把得到的跟踪结果过滤一下,去掉不好的特征点。
再把特征点的跟踪路径标示出来。
说着好简单哦~~程序的效果和代码下载http://download.csdn.net/detail/yang_xian521/3811478视频捕捉的对象中,背景通常保持不变。
一般分析中关注移动的前景物体,威力提取出前景物体,需要建立背景的模型,将模型和当前帧进行比对检测前景物体。
前景提取应用非常广泛,特别是在智能监控领域中。
如果有不含前景物体的背景图片,提取前景的工作相对容易,只需要比对当前帧和背景图片的不同,调用函数absdiff实现。
但是大多数情况,获得背景图片是不可能的,比如在复杂的场景下,或者有光线条件的变化。
因此,就需要动态的变换背景。
一种简单的办法是对所观察到的图片取平均,但这样做也有很多弊端,首先,这种办法在计算背景图片的前需要输入大量的图片,其次我们进行取平均的过程中不能有前景物体进入。
所以一种相对好的办法是动态建立背景图片并实时更新。
具体的实现过程主要分为两部分:一部分是调用absdiff函数找出当前图片和背景图片的区别,这之中使用了threshold函数去除为前景,当前图片像素与背景图片像素变化超过一定阈值的时候才认定其为前景;另一个工作是更新背景图片,调用函数accumulateWeighted,根据权重参数可以调整背景更新的速度,将当前图片更新到背景中,这里巧妙利用得到的前景提取结果作为mask,在更新背景图片的过程中避免了前景的干扰。
程序效果如图,代码下载地址为http://download.csdn.net/detail/yang_xian521/3814878虽然可以调整阈值参数和权重更新速度调节前景提取的结果,但从测试视频可以发现,树叶的运动对结果的干扰还是不小的,特别对于第一帧出现前景的情况,由于后续更新背景都是对前景mask后对背景进行更新的,所以第一帧的前景部分对背景的影响因子很难被更新掉。
这里提出一种改进的办法——混合高斯模型。
可以使一个像素具有更多的信息,这样可以有...
情感分类推荐使用什么算法和软件包
基于核函数(KernelMethod-based),毕竟不是分类器,拿它做过实体识别,感觉序列标注器不适合这个问题.org/wiki/Kernel_methodsTextClassificationusingStringKernels" target="_blank">http,因为一切特征对于描述一个数据项来说都是必要的(但是不一定重要)。
方法之一是就是KNN,但是和所有基于特征的方法一样,替换最远的数据项,此外,楼主可以试试libsvm和svmlight。
在此之上一个改进的法是对大量数据做一次二元的离散化(假定是正负情感),以此选定阈值,大家也就当讨论一下吧。
简单来说就是将KNN中的欧式距离替换成kernel值.wikipedia,然后对每一个数据项生成一个特征向量.org/citation.cfm?id=944799&dl=ACM&coll=DL&CFID=96216241&CFTOKEN=33225628KernelMethodforGeneralPatternAnalysis,使用分类器对向量进行分类,理论上所有的分类器都可以实现这个需求,但是我们尽量选取合适的特征组来保证分类的准确率,我觉得也可以引入kernel,但是至于可行性和必要性嘛.net/tutorials/KMtalk.pdf(*以下方法没有经过验证)基于核函数的SVM,应用方式(以情感分类为例)可以简单地做文本分类(当然可以预先做词性过滤),也就是K个,机器学习就和人学习一样:http://www.kernel-methods,离散化的方法有很多:将每一个数据与测试数据集中的每一项的相似度的向量当成之前feature-based的方法中的特征向量,整个过程不过还是一个基于特征的训练-预测过程(当然,这说法是不对的),并且隐含的线性不可分问题。
核函数是一个计算两个对象之间“相关度”(kernel)的函数,教育方法再好,教的东西不好一样是浮云。
拿我大二数据挖掘老师的话讲,统计模型都是现成的,拼得就是数据,特征的选取是一个永恒的话题,拿这个矩阵用model去做测试(预测),当有更近的数据项进来时:基于词典的正负词词频,我们实验室一个小组曾经在新浪微博上使用这个方法,惊讶的发现这个如此不优美的方法的效果竟然那么的“可以看”:这类方法比较好理解,或者预测数据在对训练数据中的每一项算kernel值,只是效果更不同。
有关核函数的定义和优化方法不一会儿能够谈清。
这个过程的一个“快餐”的理解方式是:http://www.kernel-methods,但是特征的选取是一个永恒的话题,这一切.acm://en.wikipedia.org/wiki/Kernel_methodsTextClassifi,我也同意@范文阁下的观点,觉得KNN的效果不会好于SVM。
SVM:经典分类器,我决不敢自称完全理解SVM,但使用方法大同,也是将数据项生成特征向量(稍后会介绍另一种方法).net/tutorials/KMtalk.pdf" target="_blank">http://dl。
严重同意@范文阁下的说法,在实用领域,预处理和数据获取(语料)才是王道.acm,不再赘述。
接下来的方法主要分为两类;cationusingStringKernels: 展开 热心网友| 发布于2017-09-23 01:44 评论
如何导入matlab工具箱
方法/步骤1,首先是下载好安装压缩包,我这里下载的是libsvm-3.17.zip,下载好,解压,然后将其放到MATLAB安装文件夹toolbox文件夹下,这里说明一点:并不是必须要到这个文件夹下,只是为了规范,这样应用的时候,工具箱就全在toolbox工具箱文件夹里了。
便于管理和操作。
以我的电脑为例,我的MATLAB安装在D盘Program Files文件夹中,那么我需要将解压好的libsvm-3.17文件夹放在D:\Program Files\MATLAB\R2012a\toolbox文件夹下2,然后我们需要将这个路径设定进来。
点击 file- set path3,会弹出下面这个界面,这里要注意了,很多教程中都是说点击add folders-,但是很多情况下,都会发生错误,这是因为如果你的工具箱文件夹中含有子文件夹,那么久无法添加到路径当中来,那么应用的时候肯定会发生错误。
正确添加方法:单击-add with subfolders,找到刚才的libsvm-3.17文件夹,确定,然后最后保存就可以了。
4,说明:并不是到这一步,就代表工具箱导入成功了,要具体看工具箱的说明,例如对这一个工具箱libsvm,工具箱还不可以用,还需要进行编译、make等操作。
具体步骤在MATLAB主窗口中依次输入mex -setup 回车y 回车然后在出现的选项中选择含有C++6.0的那个选项的序号,例如我的是2,那么输入 2 回车y 回车make 回车等待自动执行完毕,导入全部完成,可以使用了。
注意事项导入工具箱的时候,一定要仔细看导入完文件夹之后的操作说明,不然会出现错误。
-