转载1

利用opencv的hog+svm实现细胞识别分类器

 转载,原文:https://blog.csdn.net/u011504498/article/details/44122539 

图像处理中的细胞识别和人脸识别可以这样来类比,图像中的一张张人脸就是一个个细胞。

模式识别的关键在于样本库的选取,识别率也只能在和样本库比较接近的环境下才能保证。主要工作是三部分一是特征提取,二是样本库的训练train,三是目标检测detect。

一.特征提取

特征提取采用的是HOG特征即HOG描述子,该特征在行人检测中效果非常好。而一般人脸识别采用的是haar特征,这在opencv中都有实现,并都给出了相应的分类器,效果都很不错。

首先采集了正样本6000多份,然后负样本90000多份,正样本就是手动从图像中把细胞截图保存下来,为了工作方便一般先大概截个正方形就好了,然后对得到的正样本依次做三次顺时针旋转,目的是为了满足旋转不变性。之后写个程序将这些正样本的尺寸统一缩放到64*64,这个尺寸决定了最终svm算法中的特征维数。负样本就是非细胞的图像,可以用程序截图得到,不需要人工了,最终也将尺寸统一缩放到64*64即可。

二.训练样本

利用HOGDescriptor.compute计算所有的样本特征值,存入svm算法中训练用的特征矩阵train_mat中,同时将每个样本的类别保存到标签向量label_mat中,正样本的标签为1,负样本为0;然后用svm.train函数训练得到分类器文件svm_data.xml。

三.目标检测

训练好的SVM分类器保存为XML文件,然后根据其中的支持向量和参数生成OpenCV中的HOG描述子可用的检测子参数,再调用OpenCV中的多尺度检测函数进行细胞检测。

检测子参数的计算过程就是svm算法中从一开始得到的阿尔法系数转变得到w系数的过程。

---------------------------------------------------------------------------------------------------------------------

难例(Hard Example)是指利用第一次训练的分类器在负样本原图(肯定没有人体)上进行行人检测时所有检测到的矩形框,这些矩形框区域很明显都是误报,把这些误报的矩形框保存为图片,加入到初始的负样本集合中,重新进行SVM的训练,可显著减少误报。
---------------------
作者:Alex_Dong
来源:CSDN

版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/yangwenzhe/p/10198955.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值