项目一:人脸检测

1.简介:

/**********************************************************************
最近开始人脸识别的个人项目练习,其实该项目中所谓的识别仅仅只是检测,我们先从最简单
的调用opencv训练好的分类器和函数,虽然只是调用,我觉得这是接触人脸识别的必经之路,
只有自己亲自动手做了,虽然在重复造轮子,但只有自己亲自动手造出来的轮子,才能内化 为自己的东西。 平台:ubuntu16.04+opencv3.2 *************************************************************
*********/

2.Haar Cascades in OpenCV相关介绍

/************************************************************************
此次人脸识别我使用的是opencv中的harr Cascades,同时为了拓展学习,还增加了笑脸检测.
这里用到的训练好的人脸检测和笑脸检测分类器可以从这个github下载获取。通常这些训练模
型以xml文件格式保存,opencv中有很多基于haar cascades的物体检测器,例如:
猫脸检测器(cat face detector )、眼睛检测器(eye detector)、轮廓面部检测器
(profile face detector)
、行人探测器(pedestrian detector).
************************************************************************/

3.主要步骤

/**************************************************************
1.加载分类器,将人脸检测分类器和笑脸检测分类器放在项目目录中去
2.调用detecMutiScale()函数检测,对函数中相关的参数进行修改调整,
 是检测的结果更加精确,相关参数介绍见4
3.把检测到的人脸用矩形画出来
***************************************************************/

4.detectMultiscale函数介绍

/************************************************************
1.介绍detectMultiscale之前,有必要介绍一下opencv中用来做目标检测的级联分类器的一个
类,其结构如下:
The constructor for the cv::CascadeClassifier object is:
     
      cv::CascadeClassifier::CascadeClassifier(
      const String& filename
  );
这个构造函数只需要一个参数,即存储xml文件的名字,此外还有一个默认参数,即是使用
load()成员加载级联。
************************************************************/
/**************************************************************************
2.detectMultiScale()函数简介:
CascadeClassifier的使用时候,需要调用detectMultiScale()函数这个外部接口,该函数的
参数详解如下图:
ps:详细介绍参见Learning Opencv3之P884
***************************************************************************

5. 程序

相关代码可以从本人github下载,project1

                                                                                                                                  -----------------------于2018.02.16.(农历新年)

原文地址:https://www.cnblogs.com/ilym/p/8448746.html