python下人脸检测

简介: 首先先要安装python+opencv环境 这里我们用python3.5环境, 可以去https://repo.continuum.io/archive/下载windows,linux,macos的anaconda旧版本 安装好后建议对pip源进行更换,可以减少pip...

首先先要安装python+opencv环境
这里我们用python3.5环境,
可以去https://repo.continuum.io/archive/下载windows,linux,macos的anaconda旧版本
安装好后建议对pip源进行更换,可以减少pip在安装包时出现的超时错误
具体在anaconda目录下的Lib\site-packages\pip-9.0.1-py3.5.egg\pip\models文件夹中的index.py文件
这里写图片描述
将最后的网址更换到国内的镜像网址:
http://pypi.douban.com/ 豆瓣
http://pypi.hustunique.com/ 华中理工大学
http://pypi.sdutlinux.org/ 山东理工大学
http://pypi.mirrors.ustc.edu.cn/ 中国科学技术大学
https://pypi.tuna.tsinghua.edu.cn/清华

然后在cmd下试一下pip install numpy 检查numpy包是否已经安装:
出现:
这里写图片描述
说明已经安装,否则这命令也能自动安装

让后安装opencv,可惜的是我原来的opencv是3.0版本的好像还不支持python3.5
再去下载一个更高版本的,配置环境太慢了,这里我选择了用pip进行opencv的安装:
先去http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy网站下载对应的opencv包,我的是:
opencv_python-3.2.0+contrib-cp35-cp35m-win_amd64.whl
然后在cmd下pip install 路径+文件名,安装相应文件
这里写图片描述
如图安装成功,这里3.2.0可能是opencv的版本,cp35可能是python 注意选择自己python版本对应的包

安装好后先检查一下opencv是否安装完全:

import cv2
import numpy as np

img = cv2.imread("D:\\1.jpg")
cv2.imshow("mingyue",img)
cv2.waitKey(10000)

这里写图片描述
说明opencv已经安装完全
先介绍一下opencv自带的人脸检测器
opencv主要自带了人脸的Haar特征分类器,在安装目录中\data\haarcascades已经有训练好的人脸xml 文件,之后会试一下
这里我们为方便之后的开发 我们用Dlib库
c需要从Dlib的网站上下载,还要cmake编译一下来获得.lib文件等
python的话可以直接用pip安装
pip install Dlib
先介绍一下用Dlib进行简单的人脸检测
Dlib自带了人脸检测的特征提取器 get_frontal_face_detector()
官网上解释为:This function returns an object_detector that is configured to find human faces that are looking more or less towards the camera. It is created using the scan_fhog_pyramid object.(该函数返回一个object_detector,它被配置为找到或多或少看到相机的人脸。 它使用scan_fhog_pyramid对象创建。))

import dlib
import cv2
detector = dlib.get_frontal_face_detector()
win = dlib.image_window()
f="D:/renlian/2.jpg"
print("Processing file: {}".format(f))
img = cv2.imread(f)
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
dets = detector(img, 1)
print("Number of faces detected: {}".format(len(dets)))
for i, d in enumerate(dets):
    print("dets{}".format(d))
    print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}"
    .format( i, d.left(), d.top(), d.right(), d.bottom()))
dets, scores, idx = detector.run(img, 1)
for i, d in enumerate(dets):
    print("Detection {}, dets{},score: {}, face_type:{}".format( i, d, scores[i], idx[i]))    
win.set_image(img)
win.add_overlay(dets)
dlib.hit_enter_to_continue()

结果为
这里写图片描述
其中:
dets = detector(img, 1)为进行人脸检测

for i, d in enumerate(dets):
     print("dets{}".format(d))
     print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}"
    .format( i, d.left(), d.top(), d.right(), d.bottom()))

为打印人脸位置
dets, scores, idx = detector.run(img, 1)
获取匹配度
win.add_overlay(dets)画框

这里注意 我用opencv读入图片 opencv颜色为BGR顺序而Dlib显示时是RGB形式所以要进行转换用
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)进行转换
放上一张大图来测试一下
死亡凝视

目录
相关文章
|
4月前
|
算法 计算机视觉 开发者
OpenCV中使用Eigenfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中使用Eigenfaces人脸识别器识别人脸实战(附Python源码)
75 0
|
编解码 Java Maven
阿里云视觉智能开放平台(VIAPI)人脸属性表情识别Python SDK使用说明
本文为您介绍表情识别RecognizeExpression的语法及示例。
910 0
|
4月前
|
计算机视觉 开发者 Python
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
OpenCV中Fisherfaces人脸识别器识别人脸实战(附Python源码)
67 0
|
4月前
|
算法 计算机视觉 开发者
OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)
OpenCV中LBPH人脸识别器识别人脸实战(附Python源码)
97 0
|
4月前
|
机器学习/深度学习 算法 数据挖掘
【Python机器学习】K-Means算法对人脸图像进行聚类实战(附源码和数据集)
【Python机器学习】K-Means算法对人脸图像进行聚类实战(附源码和数据集)
130 1
|
4月前
|
人工智能 API 开发工具
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
【Python+百度API】实现人脸识别和颜值检测系统(包括人脸数量、年龄、颜值评分、性别、种族、表情检测)(超详细 附源码)
106 0
|
4月前
|
XML 存储 算法
使用 OpenCV 和 Python 模糊和匿名化人脸
使用 OpenCV 和 Python 模糊和匿名化人脸
54 1
|
7月前
|
C++ Python
QT+Python人脸表情特征识别
QT+Python人脸表情特征识别
69 0
QT+Python人脸表情特征识别
|
8月前
|
C++ 计算机视觉 Python
Python+Yolov5人脸表情特征识别
这篇博客针对Python+Yolov5人脸表情特征识别编写代码,代码整洁,规则,易读。 学习与应用推荐首选。
130 0
Python+Yolov5人脸表情特征识别
|
机器学习/深度学习 传感器 数据可视化
人脸活体检测系统(Python+YOLOv5深度学习模型+清新界面)
人脸活体检测系统(Python+YOLOv5深度学习模型+清新界面)
285 0