OpenCV 4.11.0
开源计算机视觉库
加载中…
搜索中…
无匹配项
用于目标检测的级联分类器

详细描述

下面描述的目标检测器最初由Paul Viola [285]提出,并由Rainer Lienhart [167]改进。

首先,使用数百个特定目标(例如人脸或汽车)的样本视图(称为正样本),这些样本视图被缩放至相同大小(例如20x20),以及相同大小的负样本(任意图像)来训练一个分类器(即一个基于Haar-like特征的增强型级联分类器)。

训练好分类器后,可以将其应用于输入图像中感兴趣区域(与训练期间使用的大小相同)。如果该区域可能显示目标(例如人脸/汽车),则分类器输出“1”,否则输出“0”。为了在整个图像中搜索目标,可以将搜索窗口在图像上移动,并使用分类器检查每个位置。分类器设计为可以轻松“调整大小”,以便能够找到不同大小的目标,这比调整图像本身更有效。因此,为了在图像中找到未知大小的目标,应该在不同的比例下多次进行扫描过程。

分类器名称中的“级联”一词意味着生成的分类器由多个更简单的分类器(阶段)组成,这些分类器会依次应用于感兴趣区域,直到在某个阶段拒绝候选对象或通过所有阶段为止。“增强型”一词表示级联中每个阶段的分类器本身很复杂,它们是使用四种不同的增强技术(加权投票)中的一种,由基本分类器构建而成。目前支持离散Adaboost、实数Adaboost、Gentle Adaboost和Logitboost。基本分类器是至少具有2个叶节点的决策树分类器。Haar-like特征是基本分类器的输入,其计算方法如下所述。当前算法使用以下Haar-like特征:

图像

在特定分类器中使用的特征由其形状(1a、2b等)、在感兴趣区域内的位置和比例(此比例与检测阶段使用的比例不同,尽管这两个比例相乘)来指定。例如,对于第三行特征(2c),响应计算为覆盖整个特征(包括两条白色条纹和中间的黑色条纹)的矩形下图像像素的总和与黑色条纹下图像像素的总和乘以3之间的差值,以便补偿面积大小的差异。使用积分图像可以快速计算矩形区域上的像素值总和(参见下文和积分图像的描述)。

查看相应的教程以了解更多详细信息。

以下参考资料仅针对检测部分。还有一个名为opencv_traincascade的单独应用程序,可以根据一组样本训练增强型级联分类器。

注意
在新C++接口中,除了Haar-like特征外,还可以使用LBP(局部二值模式)特征。.. [Viola01] Paul Viola 和 Michael J. Jones。使用增强型简单特征级联进行快速目标检测。IEEE CVPR,2001。该论文可在网上获得:https://github.com/SvHey/thesis/blob/master/Literature/ObjectDetection/violaJones_CVPR2001.pdf

类  cv::BaseCascadeClassifier
 
类  cv::CascadeClassifier
 用于目标检测的级联分类器类。更多…
 
结构体  cv::DefaultDeleter< CvHaarClassifierCascade >
 
类  cv::DetectionBasedTracker
 

枚举

枚举  {
  cv::CASCADE_DO_CANNY_PRUNING = 1 ,
  cv::CASCADE_SCALE_IMAGE = 2 ,
  cv::CASCADE_FIND_BIGGEST_OBJECT = 4 ,
  cv::CASCADE_DO_ROUGH_SEARCH = 8
}
 

函数

Ptr< BaseCascadeClassifier::MaskGeneratorcv::createFaceDetectionMaskGenerator ()
 

枚举类型文档

◆ 匿名枚举

匿名枚举

#include <opencv2/objdetect.hpp>

枚举器
CASCADE_DO_CANNY_PRUNING 
Python: cv.CASCADE_DO_CANNY_PRUNING
CASCADE_SCALE_IMAGE 
Python: cv.CASCADE_SCALE_IMAGE
CASCADE_FIND_BIGGEST_OBJECT 
Python: cv.CASCADE_FIND_BIGGEST_OBJECT
CASCADE_DO_ROUGH_SEARCH 
Python: cv.CASCADE_DO_ROUGH_SEARCH

函数文档

◆ createFaceDetectionMaskGenerator()

Ptr< BaseCascadeClassifier::MaskGenerator > cv::createFaceDetectionMaskGenerator ( )