基于级联分类器的多目标检测

本文介绍了基于OpenCV的级联分类器进行多目标检测的方法,包括收集正负样本、创建vec文件、训练分类器以及测试验证的步骤。通过训练自定义的级联分类器,可以实现对特定目标的高效检测。文章以‘愤怒的小鸟’为例,展示了在不同关卡中检测笼中鸟的过程,并讨论了样本质量和负样本选择的重要性。
摘要由CSDN通过智能技术生成

原文地址:http://blog.csdn.net/ariesjzj/article/details/8639208

http://blog.csdn.net/jinzhuojun/article/details/8639208

物体检测方法大体可分为两类,基于知识的方法和基于统计的方法。前者如template matching, surf/sift detector等等。这些方法都基于我们对于识别目标已有比较清晰的刻画。虽然有些特征能抗一定的形变,但总体泛化性不够强。如果检测目标比较固定且对时间要求不高,可以考虑用这类方法。但有些应用是没法提供模板的,或者说模板太多(一一匹配的话检测时间无法接受),又或者说我们需要容忍更大程度或更多样的形变(如人脸,行人等)。这时候就要考虑用基于统计的方法了。既然是基于统计,就得有大量的样本,分类器对这些样本进行学习来获得参数。得到目标分类器后,要进行检测时就很快了。OpenCV中带的Haar特征级联分类器就是这样一种方法,它位于app目录下,该目录下有两个实现,一个是老的实现haartraining,只支持Haar特征。另一个是新的traincascade,支持更多特征(LBP,HOG)和boosted分类器,更易于扩展。除此之外OpenCV的data目录下有很多训练好的级联分类器(如人脸,眼睛检测等),load进来就可以用,无需训练。官方例程中的objectdetection,facedetect等例子就是直接用了这些训练好的分类器,如自带的face detection程序:


当然了,作为有理想有抱负的码农,用现成的分类器是不会满足的。现实使用中我们经常需要训练针对各种应用的分类器。下面介绍如何训练一个自己的级联分类器。整个过程大致可分为以下几步(基于OpenCV 2.4.4):


1. 收集数据

数据可分为正样本和负样本。正样本即要检测的目标,负样本则不包含目标。

首先我们要生成正负样本的索引(或称描述文件)。正样本描述文件官方文档中给了例子:

img/img1.jpg 1 140 100 45 45
img/img2.jpg 2 10

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值