Haar-like人脸检测

6,309次阅读
8 条评论

共计 1232 个字符,预计需要花费 4 分钟才能阅读完成。

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人脸检测

正文完
请博主喝杯咖啡吧!
post-qrcode
 
admin
版权声明:本站原创文章,由 admin 2017-06-24发表,共计1232字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(8 条评论)
验证码
admin 博主
2017-06-24 11:31:52 回复

杨总监新作,人脸认识一定要顶一下

 Windows  Chrome  中国广东省深圳市电信
    gegey 评论达人 LV.1
    2017-06-24 11:33:34 回复

    @admin :mrgreen: :mrgreen:

     Windows  Chrome  中国广东省深圳市电信
      admin 博主
      2017-06-24 11:35:04 回复

      @gegey 你这是不是开通邮箱提醒了,我这边回复你秒回

       Windows  Chrome  中国广东省深圳市电信
admin 博主
2017-06-24 11:32:09 回复

擦,打错字了,人脸识别

 Windows  Chrome  中国广东省深圳市电信
    gegey 评论达人 LV.1
    2017-06-24 11:34:52 回复

    @admin 哥是不是很帅! :grin:

     Windows  Chrome  中国广东省深圳市电信
      admin 博主
      2017-06-24 11:35:52 回复

      @gegey :wink: 21新世纪帅锅

       Windows  Chrome  中国广东省深圳市电信
        gegey 评论达人 LV.1
        2017-06-24 11:39:23 回复

        @admin 还要请村长继续带路啊!

         Windows  Chrome  中国广东省深圳市电信
          admin 博主
          2017-06-24 11:49:30 回复

          @gegey python你现在用的很666了

           Windows  Chrome  中国广东省深圳市电信