python下人脸检测

首先先要安装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)进行转换
放上一张大图来测试一下

时间: 2024-12-02 09:39:41

python下人脸检测的相关文章

OpenCv 人脸检测的学习

最近公司要组织开发分享,但是自己还是新手真的不知道分享啥了,然后看了看前段时间研究过OpenCv,那么就分享他把. openCv就不介绍了,说下人脸检测,其实是通过openCv里边已经训练好的xml文件来进行的,我只是在学习. 我测试中我写了俩个Demo,其中一个是通过Carame来通过摄像头来进行人脸检测看看效果图: 可以看出检测出来的面部有线框. 第一个Dmeo是通过Jni编程来实现的人脸检测, (1)这是本地方法 package com.example.opencv.checkface2;

python结合opencv实现人脸检测与跟踪

  在Python下用起来OpenCV很爽,代码很简洁,很清晰易懂.使用的是Haar特征的分类器,训练之后得到的数据存在一个xml中.下面我们就来详细谈谈. 模式识别课上老师留了个实验,在VC++环境下利用OpenCV库编程实现人脸检测与跟踪. 然后就开始下载opencv和vs2012,再然后,配置了好几次还是配置不成功,这里不得不吐槽下微软,软件做这么大,这么难用真的好吗? 于是就尝试了一下使用python完成实验任务,大概过程就是这样子的: 首先,配置运行环境: 下载opencv和pytho

25 行 Python 代码实现人脸检测——OpenCV 技术教程

OpenCV OpenCV 是最流行的计算机视觉库,原本用 C 和 C++ 开发,现在也支持 Python. 它使用机器学习算法在图像中搜索人的面部.对于人脸这么复杂的东西,并没有一个简单的检测能对是否存在人脸下结论,而需要成千上万的特征匹配.算法把人脸识别任务分解成数千个小任务,每个都不难处理.这些任务也被称为分类器. 对于类似于人脸的对象,你或许需要不少于 6000 个分类器,每一个都需要成功匹配(当然,有容错率),才能检测出人脸.但这有一个问题:对于人脸识别,算法从左上角开始计算一个个数据

OpenCV实践之路——人脸检测(C++/Python) 【转】

转自:http://blog.csdn.net/xingchenbingbuyu/article/details/51105159 版权声明:本文为博主原创文章,转载请联系作者取得授权.     本文由@星沉阁冰不语出品,转载请注明作者和出处. 文章链接:http://blog.csdn.net/xingchenbingbuyu/article/details/51105159 微博:http://weibo.com/xingchenbing    之前一直觉得人脸检测是非常麻烦的,即使是用Op

OpenCV + Python 人脸检测

必备知识 Haar-like opencv api 读取图片 灰度转换 画图 显示图像 获取人脸识别训练数据 探测人脸 处理人脸探测的结果 实例 图片素材 人脸检测代码 人脸检测结果 总结 下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like Haar-like百科释义.通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征

opencv下的人脸检测总是无法加载级联分类器文件

问题描述 opencv下的人脸检测总是无法加载级联分类器文件 代码本身没有错,debug下无法加载级联分类器文件,release下读不到图片,配置应该没有问题 求问,谢谢! #include "opencv2/core/core.hpp" #include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include "opencv2/

人脸检测发展:从VJ到深度学习(下)

雷锋网按:本文作者邬书哲, 中科院计算所智能信息处理重点实验室VIPL课题组博士生,研究方向:目标检测,尤其关注基于深度学习的目标检测方法. |深度学习给目标检测带来的变革      人脸检测作为一种特定类型目标的检测任务,一方面具有其自己鲜明的特点,需要考虑人脸这一目标的特殊性,另一方面其也和其它类型目标的检测任务具有一定的共性,能够直接借鉴在通用目标检测方法上的研究经验.     目标检测任务作为一个分类问题,其不仅受益于计算机视觉领域相关技术的不断发展,在机器学习领域的研究进展同样也对目标

python中使用OpenCV进行人脸检测的例子_python

OpenCV的人脸检测功能在一般场合还是不错的.而ubuntu正好提供了python-opencv这个包,用它可以方便地实现人脸检测的代码. 写代码之前应该先安装python-opencv: 复制代码 代码如下: $ sudo apt-get install python-opencv 具体原理就不多说了,可以参考一下这篇文章.直接上源码. 复制代码 代码如下: #!/usr/bin/python# -*- coding: UTF-8 -*- # face_detect.py # Face De

手把手教你如何用 OpenCV + Python 实现人脸识别

下午的时候,配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文.   必备知识 Haar-like Haar-like百科释义.通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等. opencv api 要想使用opencv,就必须先知道其能干什么,怎么做.于是API的重要性便体现