您当前的位置: 首页 >  Python

嗨学编程

暂无认证

  • 1浏览

    0关注

    1405博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

用20行Python代码为《都挺好》剧照进行人脸检测

嗨学编程 发布时间:2019-03-19 16:24:00 ,浏览量:1

这里介绍最简单的人脸检测代码,本代码需要用到Opencv和python。

 

Opencv的安装很方便,命令行输入如下命令:pip install opencv-python

即可下载安装opencv,

检测安装是否成功python环境下运行如下命令:import cv2 

 

整个人脸检测步骤如下:

  1. 获取待识别图片地址,读取图片

  2. 图片转化成灰度图(容易计算)

  3. 创建opencv人脸检测实例,加载相应分类器xml

  4. 检测图像,设置参数

  5. 对识别的人脸进行标识

  6. 显示检测结果(展示图片)

 

代码如下:

# -*- 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文件是一个普适的数据训练出来的,若想得到更加准确的测试结果,可以自己训练自己创建的数据,来识别特定人群。或者选用深度学习模型来做人脸检测!

关注
打赏
1663681728
查看更多评论
立即登录/注册

微信扫码登录

0.0804s