OpenCV人脸检测与人脸识别
tkorays(http://blog.csdn.net/tkorays)
成为领袖,而不是依赖别人的指挥。
用OpenCV做人脸检测与人脸识别是一件比较简单的事情,因为OpenCV的库已经为我们做了很多工作,我们甚至不需要太了解原理,调用就行了。
注意,人脸检测(Detection)和人脸识别(Recognition)不是同一个概念。所谓“检测”是将一张图片或视频的一帧里的人脸找出来,只是找出,并不需要知道他(她)是谁。而人脸“识别”,重在识别出人脸是谁。因此,人脸识别过程中常常是先找出人脸,再去判断人脸属于谁的。
这篇博客我们使我们的代码尽量简化,能使读者一看就会。接下来,我们就一步步来介绍吧。
人脸检测
准备素材
首先,我们准备好素材,找一些包含人脸的图片,这里我们随便拍几张就可以了。
当然有很多人脸库可以利用,CSDN上有篇Blog介绍了一些人脸库,可以直接下载用:http://blog.csdn.net/onlyyouandme/article/details/5596915。
检测原理
这里我们使用OpenCV的级联(Cascade)分类器来做人脸检测。所谓级联分类器,即将多个弱分类器组合起来得到一个性能比较好的分类器。如果你学过机器学习,那么你对这个肯定不会陌生。
既然是分类器,首先肯定是要学习的,这里我们不需要做这一步的,因为OpenCV已经为我们训练好了人脸的分类器,我们要做的是加载这个级联分类器分类器文件。当然,级联分类器不止是做人脸检测的,你还可以使用它来检测其他物体,详情可以参考OpenCV官方教程“级联分类器训练”:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_traincascade.html。