这里介绍最简单的人脸检测代码,本代码需要用到Opencv和python。
Opencv的安装很方便,命令行输入如下命令:pip install opencv-python
即可下载安装opencv,
检测安装是否成功python环境下运行如下命令:import cv2
整个人脸检测步骤如下:
-
获取待识别图片地址,读取图片
-
图片转化成灰度图(容易计算)
-
创建opencv人脸检测实例,加载相应分类器xml
-
检测图像,设置参数
-
对识别的人脸进行标识
-
显示检测结果(展示图片)
代码如下:
# -*- coding: utf-8 -*-
'''
想要学习Python?Python学习交流群:984632579满足你的需求,资料都已经上传群文件,可以自行下载!
'''
import cv2
import sys
# Get user supplied values
imagePath = 'dth.png'#待识别的图像
cascPath = "haarcascade_frontalface_default.xml"
# Create the haar cascade
faceCascade = cv2.CascadeClassifier(cascPath)
# Read the image
image = cv2.imread(imagePath)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# Detect faces in the image
faces = faceCascade.detectMultiScale(
gray,
scaleFactor=1.1,
minNeighbors=5,
minSize=(30, 30)
#flags = cv2.CV_HAAR_SCALE_IMAGE
)
print("Found {0} faces!".format(len(faces)))
# Draw a rectangle around the 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)
其中cascPath =
"haarcascade_frontalface_default.xml" ,
这个xml文件是opencv在github共享出来普适的人脸特征分类器文件,还有很多用于其他检测特征(如微笑检测,上半身检测)的分类器。
分类器下载链接:https://github.com/opencv/opencv/tree/master/data/haarcascades
如何使用代码:
复制以上代码,在github下载haarcascade_frontalface_default.xml文件,修改imagePath为你待测的图片地址。
本人利用最近很火的电视剧《都挺好》剧照进行了测试。《都挺好》剧照如下:
运行后,显示结果为:
Found 7 faces !
虽然结果看起来一般,但是也基本完成了一个人脸检测的功能。
主要因为xml文件是一个普适的数据训练出来的,若想得到更加准确的测试结果,可以自己训练自己创建的数据,来识别特定人群。或者选用深度学习模型来做人脸检测!