缺陷检测之SVM篇(update)

        最近论文在用SVM进行分类,目的是检测缺陷。缺陷有三种分别是孔洞,刮擦和划痕缺陷。 我用过libsvm和ddtools还有就是matlab中的svm函数 (svmtrain、svmclsassify),libsvm原来用的效果不好,我现在又忘了怎么用了,改天再把它捡起来吧,现在用的是 matlab的函数。 

       进行svm分类可以按如下步骤进行:

  • 采集样本;
  • 提取样本的特征;
  • 进行cross validation验证支持向量机中的参数

(一般都是选择的rbf的非线性支持向量机,参数有2个,即惩罚系数和rbf核的半径sigma)

      实验过程需知:

       1、在提取样本时,必须将样本图像缩放成统一大小的二值化(或灰度图像),因为我检测的缺陷中光照变化比较强烈,所以我只是选择了二值化图像,每个图像缩放成50*50的尺寸。注意不同大小的图像后面进行特征提取是没有意义的。
       2、其次提样本特征,对于缺陷图像分类,一般来说提取的都是特征矩,我提取的是图像的不变矩,它不随图像的旋转和缩放而产生变化(不变矩最后计算出来有7种参数),当然也可以提取多种矩然后用PCA的进行降维,matlab的PCA很容易,以前的博客上有介绍。

       用matlab提取不变矩的算法网上有,叫做invmoments。

 1 function phi = invmoments(F)
 2 %INVMOMENTS Compute invariant moments of image.
 3 %   PHI = INVMOMENTS(F) computes the moment invariants of the image
 4 %   F. PHI is a seven-element row vector containing the moment
 5 %   invariants as defined in equations (11.3-17) through (11.3-23) of
 6 %   Gonzalez and Woods, Digital Image Processing, 2nd Ed.
 7 %
 8 %   F must be a 2-D, real, nonsparse, numeric or logical matrix.
 9 
10 %   Copyright 2002-2004 R. C. Gonzalez, R. E. Woods, & S. L. Eddins
11 %   Digital Image Processing Using MATLAB, Prentice-Hall, 2004
12 %   $Revision: 1.5 $  $Date: 2003/11/21 14:39:19 $
13 
14 if (ndims(F) ~= 2) | issparse(F) | ~isreal(F) | ~(isnumeric(F) | ...
15                                                     islogical(F))
16    error(['F must be a 2-D, real, nonsparse, numeric or logical ' ...
17           'matrix.']); 
18 end
19 
20 F = double(F);
21 
22 phi = compute_phi(compute_eta(compute_m(F)));
23   
24 %-------------------------------------------------------------------%
25 function m = compute_m(F)
26 
27 [M, N] = size(F);
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值