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)进行转换
放上一张大图来测试一下
死亡凝视

目录
相关文章
|
6月前
|
机器学习/深度学习 监控 TensorFlow
使用Python实现深度学习模型:智能农业病虫害检测与防治
使用Python实现深度学习模型:智能农业病虫害检测与防治
325 65
|
4月前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
80 1
|
10天前
|
监控 Java 计算机视觉
Python图像处理中的内存泄漏问题:原因、检测与解决方案
在Python图像处理中,内存泄漏是常见问题,尤其在处理大图像时。本文探讨了内存泄漏的原因(如大图像数据、循环引用、外部库使用等),并介绍了检测工具(如memory_profiler、objgraph、tracemalloc)和解决方法(如显式释放资源、避免循环引用、选择良好内存管理的库)。通过具体代码示例,帮助开发者有效应对内存泄漏挑战。
30 1
|
1月前
|
监控 网络安全 开发者
Python中的Paramiko与FTP文件夹及文件检测技巧
通过使用 Paramiko 和 FTP 库,开发者可以方便地检测远程服务器上的文件和文件夹是否存在。Paramiko 提供了通过 SSH 协议进行远程文件管理的能力,而 `ftplib` 则提供了通过 FTP 协议进行文件传输和管理的功能。通过理解和应用这些工具,您可以更加高效地管理和监控远程服务器上的文件系统。
58 20
|
1月前
|
XML 机器学习/深度学习 人工智能
使用 OpenCV 和 Python 轻松实现人脸检测
本文介绍如何使用OpenCV和Python实现人脸检测。首先,确保安装了OpenCV库并加载预训练的Haar特征模型。接着,通过读取图像或视频帧,将其转换为灰度图并使用`detectMultiScale`方法进行人脸检测。检测到的人脸用矩形框标出并显示。优化方法包括调整参数、多尺度检测及使用更先进模型。人脸检测是计算机视觉的基础技术,具有广泛应用前景。
70 10
|
5月前
|
机器学习/深度学习 数据采集 算法
时间序列结构变化分析:Python实现时间序列变化点检测
在时间序列分析和预测中,准确检测结构变化至关重要。新出现的分布模式往往会导致历史数据失去代表性,进而影响基于这些数据训练的模型的有效性。
582 1
|
4月前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
468 62
使用Python实现深度学习模型:智能质量检测与控制
|
3月前
|
机器学习/深度学习 PyTorch TensorFlow
使用Python实现智能食品质量检测的深度学习模型
使用Python实现智能食品质量检测的深度学习模型
248 1
|
5月前
|
Docker Python 容器
python检测docker compose文件是否正确
python检测docker compose文件是否正确
|
5月前
|
机器学习/深度学习 数据采集 网络安全
使用Python实现深度学习模型:智能网络安全威胁检测
使用Python实现深度学习模型:智能网络安全威胁检测
458 5

热门文章

最新文章