OpenCV——级联分类器(CascadeClassifier)

级联分类器的计算特征值的基础类FeatureEvaluator

功能:读操作read、复制clone、获得特征类型getFeatureType,分配图片分配窗口的操作setImage、setWindow,计算有序特征calcOrd,计算绝对特征calcCat,创建分类器特征的结构create函数。

目标级联矩形的分组函数groupRectangles

用load函数加载XML分类器文件具体步骤如下:                      {  PS:目前提供的分类器包括Haar分类器和LBP分类器(数据较少)}

1.加载级联分类器

CascadeClassifier face_cascade;
face_cascade.load("haarcascade_frontalface_alt.xml");

2.读取视频流

3.对每一帧使用该分类器

先对图像进行预处理——变成灰度图,并将其直方图均衡化

若检测人脸,调用detectMultiScale函数,函数详情如下:

void detectMultiScale(
    const Mat& image,                //待检测灰度图像
    CV_OUT vector<Rect>& objects,    //被检测物体的矩形框向量
    double scaleFactor = 1.1,        //前后两次相继的扫描中搜索窗口的比例系数,默认为1.1 即每次搜索窗口扩大10%
    int minNeighbors = 3,            //构成检测目标的相邻矩形的最小个数 如果组成检测目标的小矩形的个数和小于minneighbors - 1 都会被排除
                                     //如果minneighbors为0 则函数不做任何操作就返回所有被检候选矩形框
    int flags = 0,                   //若设置为CV_HAAR_DO_CANNY_PRUNING 函数将会使用Canny边缘检测来排除边缘过多或过少的区域
    Size minSize = Size(),
    Size maxSize = Size()            //最后两个参数用来限制得到的目标区域的范围
);

PS:flags对于新的分类器没有用(但目前的haar分类器都是旧版的,CV_HAAR_DO_CANNY_PRUNING利用Canny边缘检测器来排除一些边缘很少或者很多的图像区域,CV_HAAR_SCALE_IMAGE就是按比例正常检测,CV_HAAR_FIND_BIGGEST_OBJECT只检测最大的物体,CV_HAAR_DO_ROUGH_SEARCH只做初略检测)

实例代码:

face_cascade.detectMultiScale( frame_gray, faces, 1.1, 2, 0|CV_HAAR_SCALE_IMAGE, Size(30, 30) );
时间: 2024-07-29 17:12:26

OpenCV——级联分类器(CascadeClassifier)的相关文章

利用opencv中的级联分类器进行人脸检測-opencv学习(1)

OpenCV支持的目标检測的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本号的C++接口除了Haar特征以外也能够使用LBP特征. 先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包含读操作read.复制clone.获得特征类型getFeatureType,分配图片分配窗体的操作setImage.setWindow,计算有序特征calcOrd,计算绝对特征calc

利用opencv中的级联分类器进行人脸检测-opencv学习(1)

OpenCV支持的目标检测的方法是利用样本的Haar特征进行的分类器训练,得到的级联boosted分类器(Cascade Classification).注意,新版本的C++接口除了Haar特征以外也可以使用LBP特征. 先介绍一下相关的结构,级联分类器的计算特征值的基础类FeatureEvaluator,功能包括读操作read.复制clone.获得特征类型getFeatureType,分配图片分配窗口的操作setImage.setWindow,计算有序特征calcOrd,计算绝对特征calcC

机器学习-分类器-级联分类器训练(Train CascadeClassifier )

一.简介: adaboost分类器由级联分类器构成,"级联"是指最终的分类器是由几个简单分类器级联组成.在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域. 分类器训练完以后,就可以应用于输入图像中的感兴趣区域的检测.检测到目标区域输出为1,否则输出为0.为了检测整副图像,在图像中移动搜索窗口,检测每一个位置来确定可能的目标.为了搜索不同大小的目标物体,在图像中检测未知大小的目标物体,扫描过程中用不同

级联分类器训练-----OpenCV

关键词:级联分类器.opencv_traincascade 下面简述操作过程: 准备正负样本:neg.pos 正负样本路径生成:dir /a/b>path.txt //path:pos or neg 正样本训练集生成:opencv_createsamples.exe -info pos\pos.txt -vec pos\pos.vec -num 799 -w 24 -h 24  pause 样本训练:opencv_traincascade.exe -data data -vec pos/pos.

opencv5-objdetect之级联分类器

这是<opencv2.4.9tutorial.pdf>的objdetect module的唯一一个例子. 在OpenCV中进行人脸或者人眼 或者身体的检测 首先就是训练好级联分类器,然后就是检测就行.在opencv中,"opencv/sources/data中就有内置训练好的:基于haar特征的级联分类器.基于hog特征的级联分类器.基于lbp特征的级联分类器"三种.相比较来说 算haar文件夹中的分类器最多,其他两个比如:hog的只有一个行人检测分类器"hogc

目标检测程序开发(三)——级联分类器训练

目标检测分为3个阶段 1.      样本创建 2.      训练分类器 3.      使用训练好的分类器进行目标检测 级联分类器 源地址http://www.opencv.org.cn/opencvdoc/2.3.2/html/modules/objdetect/doc/cascade_classification.html 基于Haar特征的用于目标检测的级联分类器 下面描述的目标检测器最初由PaulViola提出,由RainerLienhart改进, 论文分别是Paul Viola a

级联分类器

级联分类器 cascade detector detector AdaBoost 读"P. Viola, M. Jones. Rapid Object Detection using a Boosted Cascade of Simple Features[J].CVPR, 2001"笔记 论文的主要贡献点 提出积分图(Integral image)的概念.在该论文中作者使用的是Haar-like特征,然后使用积分图能够非常迅速的计算不同尺度上的Haar-like特征. 使用AdaBo

嵌入级联分类器

嵌入级联分类器 nested cascade detector detector AdaBoost Real AdaBoost 读"C. Huang, H. Ai, B. Wu, and S. Lao, 'Boosting Nested Cascade Detector for Multi-View Face Detection',ICPR, 2004,Vol II:415-418"笔记 论文主要贡献点 提出一种基于Haar 特征查找表的弱分类器,并使用Real Adaboost学习出

关于级联分类器训练过程中遇到的问题

最近在做级联分类器的训练,训练和识别过程中不断的遇到的问题,现在把想起来的问题记录下来,方便以后再遇见的时候可以方便查阅,如果有同样做此项目的朋友,欢迎交流! 训练时负样本的准备: 我们自己制作了一个工具,将训练和识别所需要的所有步骤集中在一起,而不需要一个.bat一个.bat的训练或者识别.但是我们的工具在负样本准备阶段,不管是训练还是识别,只要样本个数超过30000个就会提示“遇到不适当的参数”的提醒,我检查了内存分配,数组大小检查,及有可能的逻辑错误,仍然出现这个讨厌的东西.但是也不能不训