注册 登录
    • 为了保证你在浏览本网站时有着更好的体验,建议使用类似Chrome、Firefox之类的浏览器~~
    • 如果你喜欢本站的内容何不Ctrl+D收藏一下呢,与大家一起分享各种编程知识~
    • 本网站研究机器学习、计算机视觉、模式识别~当然不局限于此,生命在于折腾,何不年轻时多折腾一下

Haar-like人脸检测

Python gegey 218次浏览 8个评论 扫描二维码

2001年viola和jones发表的论文《Robust Real Time Object Detection》是人脸检测的一个里程碑,用该方法识别图片或者视频中的人脸有比较高的检测率,不过人脸的姿势(非正脸),光照等其他因素的影响还是比较严重的影响到了检测率。

下面我讲我浅薄的理解写下来,如果有误,还请大家指正:

Haar-like检测器 = Haar-like特征 + 积分图方法 + AdaBoost + 级联
其基本过程有以下几步:
1、使用Haar-like特征做检测;
2、使用积分图对Haar-like特征值求解加速;
3、使用AdaBoost算法训练区分人脸和非人脸的强分类器;
4、使用筛选式级联把强分类器级联到一起,提高准确率。

详细的细节可以参考下面的几篇文章:
《Robust Real Time Object Detection》
《Rapid Object Detection using a Boosted Cascade of Simple Features》
《基于 AdaBoost 算法的人脸检测》

计算出海量的矩形特征后,如何区分出哪些矩形特征才是对分类器有效?
对一个特征而言,是否有效,要看对所有样本而言(正样本和负样本),该特征值能否有明显的区分度,能够以较大的概率区分出样本中的正样本或负样本。

MATLAB2012b以上的版本和opencv都集成了Haar-like人脸检测相关的函数,下面简单展示下用opencv-Python调用函数的实现:

# get frame from Video
import cv2
imagePath1 = "222.jpg"
im = cv2.cv.LoadImage(imagePath1)
thumb = cv2.cv.CreateImage((im.width / 2, im.height / 2), 8, 3)
cv2.cv.Resize(im, thumb)
cv2.cv.SaveImage("222_1.jpg", thumb)
imagePath = "222_1.jpg"
faceCascade = cv2.CascadeClassifier("./haarcascade_frontalface_alt2.xml")
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(
    gray,
    scaleFactor=1.15,
    minNeighbors=5,
    minSize=(5, 5),
    flags=cv2.cv.CV_HAAR_SCALE_IMAGE
)
print "Found faces!".format(len(faces))
for(x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 2)
cv2.imshow("Faces found", image)
cv2.waitKey(0)

效果如下:
Haar-like人脸检测


Deeplearn, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明Haar-like人脸检测
喜欢 (4)
[xiaocui]
分享 (0)

您必须 登录 才能发表评论!

(8)个小伙伴在吐槽
  1. admin
    杨总监新作,人脸认识一定要顶一下
    admin2017-06-24 11:31 Windows 7 | Chrome 58.0.3029.110
    • :mrgreen: :mrgreen:
      gegey2017-06-24 11:33 Windows 7 | Chrome 58.0.3029.110
      • admin
        你这是不是开通邮箱提醒了,我这边回复你秒回
        admin2017-06-24 11:35 Windows 7 | Chrome 58.0.3029.110
  2. admin
    擦,打错字了,人脸识别
    admin2017-06-24 11:32 Windows 7 | Chrome 58.0.3029.110
    • 哥是不是很帅! :grin:
      gegey2017-06-24 11:34 Windows 7 | Chrome 58.0.3029.110
      • admin
        :wink: 21新世纪帅锅
        admin2017-06-24 11:35 Windows 7 | Chrome 58.0.3029.110
        • 还要请村长继续带路啊!
          gegey2017-06-24 11:39 Windows 7 | Chrome 58.0.3029.110
          • admin
            python你现在用的很666了
            admin2017-06-24 11:49 Windows 7 | Chrome 58.0.3029.110