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.(农历新年)