美文网首页大数据 爬虫Python AI SqlPython小哥哥
我只用了二十行代码给(都挺好)剧组全部人脸识别了!

我只用了二十行代码给(都挺好)剧组全部人脸识别了!

作者: 14e61d025165 | 来源:发表于2019-03-19 14:27 被阅读10次

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

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

即可下载安装opencv,

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

整个人脸检测步骤如下:

  1. 获取待识别图片地址,读取图片
  2. 图片转化成灰度图(容易计算)
  3. 创建opencv人脸检测实例,加载相应分类器xml
  4. 检测图像,设置参数
  5. 对识别的人脸进行标识
  6. 显示检测结果(展示图片)

代码如下:

<pre style="margin: 0px; padding: 0px; border: 0px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-variant-numeric: inherit; font-variant-east-asian: inherit; font-weight: 400; font-stretch: inherit; font-size: 18px; line-height: inherit; font-family: inherit; vertical-align: baseline; word-break: break-word; color: rgb(93, 93, 93); letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-decoration-style: initial; text-decoration-color: initial;">

# -*- coding: utf-8 -*-
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)

</pre>

其中cascPath =

"haarcascade_frontalface_default.xml" ,

这个xml文件是opencv在github共享出来普适的人脸特征分类器文件,还有很多用于其他检测特征(如微笑检测,上半身检测)的分类器。

分类器下载链接:https://github.com/opencv/opencv/tree/master/data/haarcascades

**如何使用代码**:

复制以上代码,在github下载haarcascade_frontalface_default.xml文件,修改imagePath为你待测的图片地址。

本人利用最近很火的电视剧《都挺好》剧照进行了测试。《都挺好》剧照如下:

![image](https://img.haomeiwen.com/i16749901/b73fd5e222708351?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

运行后,显示结果为:

Found 7 faces !

![image](https://img.haomeiwen.com/i16749901/f15c101ea51dde42?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

虽然结果看起来一般,但是也基本完成了一个人脸检测的功能。

主要因为xml文件是一个普适的数据训练出来的,若想得到更加准确的测试结果,可以自己训练自己创建的数据,来识别特定人群。或者选用深度学习模型来做人脸检测!

**欢迎大家加入小编创建的Python行业交流群,有大牛答疑,有资源共享,有企业招人!是一个非常不错的交流基地!群号:683380553**

相关文章

网友评论

    本文标题:我只用了二十行代码给(都挺好)剧组全部人脸识别了!

    本文链接:https://www.haomeiwen.com/subject/utigmqtx.html