Cascade级联分类器是一种快速简单的分类方法,opencv2和opencv3中提供了完整的cascade分类器的训练和检测方法,本篇主要介绍下级联分类器的检测方法。

opencv中用于级联分类的类是cv::CascadeClassifier,下面以人脸识别为例,简单介绍下这个类的使用方法。

代码如下:

 //定义级联分类器cv::CascadeClassifier face_detector;//加在分类器face_detector.load("haarcascade_frontalface_default.xml");//判断分类器是否加载成功if (face_detector.empty()){std::cerr << "load detector failed!!!" << std::endl;return;}//获取训练集的原始尺寸,作为分类器的最小尺寸,这样能得到最佳的检测效果(不是必须的)cv::Size original_size = face_detector.getOriginalWindowSize();cv::Mat image = cv::imread("image.png", cv::IMREAD_COLOR);cv::Mat image_gray;cv::cvtColor(image, image_gray, cv::COLOR_BGR2GRAY);//用于保存检测到的目标窗口std::vector<cv::Rect> faces;//进行多尺度人脸检测face_detector.detectMultiScale(image_gray, faces, 1.1, 3, 0 | cv::CASCADE_SCALE_IMAGE, original_size);//将检测到的目标窗口逐个绘制到原图上for (size_t i = 0; i < faces.size(); i++){cv::rectangle(image, faces[i], cv::Scalar(0, 0, 255), 2, 8, 0);}cv::imshow("detect result", image);cv::waitKey(0);

opencv3安装目录下有个etc文件夹,这个文件夹下有两个文件夹,分别保存了基于haar特征和lbp特征训练得到的多种目标检测的分类器的xml文件,其中就有人脸检测的分类器,可以拿过来直接用。当然我们也可以使用训练集,训练自己的分类器。这里我们就选择一个基于haar特征的人脸分类器来进行测试和说明。

cv::CascadeClassifier通过load()成员函数读取分类器,然后就可以使用detectMultiScale()成员函数进行多尺度的级联分类检测。detectMultiScale()的调用方法如下:

 cv::CascadeClassifier::detectMultiScale(const cv::Mat& image, // 输入待检测的图像(灰度)vector<cv::Rect>& objects, // 输出的目标窗口double scaleFactor = 1.1, // 尺度系数int minNeighbors = 3, // 需要的邻域数int flags = 0, // flag (旧风格的cascades)cv::Size minSize = cv::Size(), // 最小检测窗口cv::Size maxSize = cv::Size() // 最大检测窗口);

检测结果:

2017.04.12

【OpenCV3】级联分类器目标检测——cv::CascadeClassifier简介相关推荐

  1. Haar特征和级联分类器目标检测介绍及应用

    文章目录 Haar特征和级联分类器目标检测介绍及应用 1. Haar特征 2. 级联分类器 3. 实现步骤 4.尝试训练自己的级联分类器 4. 应用示例 Haar特征和级联分类器目标检测介绍及应用 H ...

  2. yolov3网络结构图_目标检测——YOLO V3简介及代码注释(附github代码——已跑通)...

    GitHub: liuyuemaicha/PyTorch-YOLOv3​github.com 注:该代码fork自eriklindernoren/PyTorch-YOLOv3,该代码相比master分 ...

  3. 目标检测数据集MSCOCO简介

    简介 介绍一下目标检测领域另外一个比较有名的数据集 MS COCO (Microsoft COCO: Common Objects in Context) . MSCOCO 数据集是微软构建的一个数据 ...

  4. OpenCV3实现人脸识别(一)——基于OpenCV3级联分类器实现人脸检测与眼睛检测

    前言 1.OpenCV官方训练好的人脸和眼睛的级联分类器,3.30的版本都放在opencv\sources\data这个文件夹下,在OpenCV这个文件夹中,主要有 Haar特征 和 LBP特征进行人 ...

  5. 目标检测算法R-CNN简介

    2014年Ross B. Girshick(RBG)等人在CNN的基础上设计了R-CNN模型,R-CNN(Region-based Convolution Neural Networks, 或Regi ...

  6. 目标检测回归损失函数简介:SmoothL1/IoU/GIoU/DIoU/CIoU Loss

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源:极市平台 目标检测任务的损失函数由Classificitio ...

  7. 【OpenCV3】角点检测——cv::goodFeaturesToTrack()与cv::cornerSubPix()详解

    一提到角点检测,最常用的方法莫过于Harris角点检测,opencv中也提供了Harris角点检测的接口,即cv::cornerHarris(),但是Harris角点检测存在很多缺陷(如角点是像素级别 ...

  8. OpenCV3特征提取与目标检测之HOG(二)——使用官方的行人分类器实现行人检测

    一.概述 前面看到如何使用HOG去提取一张图像的中的局部目标的特征,那么得到了这些特征之后,用来做什么,OpencCV的官方给了一个使用HOG进行行人检测的样例.所加载的分类器是官方已经训练好的,而O ...

  9. OpenCV3特征提取与目标检测之HOG(一)——HOG的概述与原理

    1.HOG(Histogram of Oriented Gradient)是方向梯度直方图的意思,是一种特性描述子.通过计算与统计图像局部区域的梯度方向直方图来构成特征.边缘是图像颜色剧变的区域,在一 ...

最新文章

  1. 网上书店 整体需求分析
  2. Android 用户信息管理程序【SQLite数据库、多选框、单选按钮】
  3. 分布式转码初步方案(hadoop+ffmpeg)
  4. linux 字符串加入中括号,方括号及其在命令行中的不同用法介绍
  5. CRM呼叫中心里interaction record的设计逻辑
  6. Word打不开,如何修复word文档?
  7. Andorid之KeyguardManager的介绍
  8. pcp pmda mysql_linux下的mysql的安装
  9. Theme Section HDU - 4763(些许暴力)
  10. python selenium --鼠标事件
  11. DiskGenius无损调整分区大小
  12. 大学计算机第一学期期末考试试题,《大学计算机基础》期末考试试题(A卷)..doc...
  13. 取代NBSI2:Opendatasource And Openrowset
  14. WinDriver驱动程序开发入门教程
  15. pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)...
  16. 企业微信如何做社群运营?企业微信群运营新玩法(可复用)
  17. 合泰单片机市场占有率_科创板亏损第一股年亏26亿背后:核心技术依赖母公司与台积电相差3代...
  18. html网页左侧背景,CSS设置html网页背景图片 CSS设置网页背景颜色
  19. C语言基础之3:数据与C
  20. [20180823]IMU与db link.txt

热门文章

  1. MyBatis-20MyBatis高级结果映射【一对一映射(4种方式)】
  2. Spring JDBC-使用XML配置声明式事务
  3. java拆解_深入拆解Java虚拟机视频教程
  4. python移除链表元素
  5. Docker的安装和使用及dockerfile简单使用
  6. dell电脑重装系统no bootable devices found
  7. html 判断页面支持canvas,HTML5 Canvas之测试浏览器是否支持Canvas的方法
  8. VUE 使用插件vue-clipboard2复制内容至剪切板(两种使用方法)
  9. spring工厂生产对象时对象生命周期的三个阶段
  10. 一篇超级详细的jsp+servlet+jdbc+mysql检验登录操作(IntelliJ IDEA)