AI之利用用OpenCV进行人脸检查

上一篇,我们安装好了Python 3.6 + Opencv 3.2的虚拟环境。接下来,我们讲进行一系列的OpenCV进行图像处理的学习。

基本概念

人脸检测 判别一幅图片中是否含有人脸,并把人脸区域(一般用矩形)标记出来;
人脸识别 计算人脸特征,并与数据库中已知人脸特征进行比较,判断其是否是数据库已知人脸。

OpenCV里的Haar-cascade检测

OpenCV既有训练器又有检测器。如果你想训练你自己的分类器去分类主任汽车、飞机等,你可以使用OpenCV创建一个,详细方法可以参考:

OpenCV已经包含多个预训练好的分类型来分类人脸,眼睛,笑脸等。相应的XML配置文件存储在opencv/data/haarcascades/ 目录下。

接下来我们创建人脸和眼睛的分类器。

加载相应XML创建分类器,并读取要检测的图片

import numpy as np
import cv2
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('sachin.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

找到人脸和眼睛并显示

faces = face_cascade.detectMultiScale(gray, 1.3, 5)
for (x,y,w,h) in faces:
    cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
    roi_gray = gray[y:y+h, x:x+w]
    roi_color = img[y:y+h, x:x+w]
    eyes = eye_cascade.detectMultiScale(roi_gray)
    for (ex,ey,ew,eh) in eyes:
        cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果显示如下:

[Python]用OpenCV进行人脸检查

未经允许不得转载:996ICU » AI之利用用OpenCV进行人脸检查

赞 (0) 打赏