使用 Python 进行面部和眼睛检测

150基于python深度学习的睁眼闭眼检测 080python农业病虫害检测pyqt版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResN。089基于深度学习的小样本数据检测_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResN。083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、 阅读详情

a8471dc1203a86b8f0c677661025f882.png

通过使用 OpenCV,你可以识别面部和眼睛等对象,并使用 Haar 级联算法实时跟踪它们。

Haar Cascade 是一种分类器,用于检测其训练对象。我们将使用 Face cascade和 Eyes cascade。你可以使用 Google 查找你可能想要检测的各种 Haar Cascades。

安装 OpenCV

pip install opencv-python

从照片中检测

我假设你已经从上面的链接下载了haarcascade_eye.xmlhaarcascade_frontalface_default.xml,并将这些文件放在项目的数据目录中。

人脸检测

我们将在下图中检测人脸。

b4007ab15e9a86aeb4a7937fc10a4fb0.jpeg

首先导入OpenCV库、Image和haarcascade_frontalface_default.xml。

import cv2

face_cascade = cv2.CascadeClassifier('.\Data\haarcascade_frontalface_default.xml')
nadia = cv2.imread('./Data/Nadia_Murad.jpg',0)

通过添加 0,图像在导入过程中变为黑白。

现在让我们创建一个函数来识别面部并在其周围绘制一个正方形。

def detect_face(img):
    face_img = img.copy()
    face_rect = face_cascade.detectMultiScale(face_img,scaleFactor=1.2,minNeighbors=5)

    for (x,y,w,h) in face_rect:
        cv2.rectangle(face_img,(x,y),(x+w,y+h),(255,255,255),10)
    return face_img

现在图像已传递给函数,将在脸部周围创建一个方框。此外,我们将构建一个显示图像,并在按下“Q”时结束的 while 循环。

result = detect_face(nadia)

while True:
    cv2.imshow('',result)
    code = cv2.waitKey(10)
    if code == ord('q'):
        break

运行该文件以查看结果。

f65287b47b73907f3142dc1d5576a2c5.png

眼睛检测

检测眼睛与检测面部非常相似。只需将你的haarcascade_frontalface_default.xml文件替换为haarcascade_eye.xml.

这是代码。

import cv2

eye_cascade = cv2.CascadeClassifier('.\Data\haarcascade_eye.xml')
nadia = cv2.imread('./Data/Nadia_Murad.jpg',0)

def detect_eyes(img):
    face_img = img.copy()
    eyes = eye_cascade.detectMultiScale(face_img,scaleFactor=1.2,minNeighbors=5) 
    
    for (x,y,w,h) in eyes: 
        cv2.rectangle(face_img, (x,y), (x+w,y+h), (255,255,255), 10) 
    return face_img

result = detect_eyes(nadia)

while True:
    cv2.imshow('',result)
    code = cv2.waitKey(10)
    if code == ord('q'):
        break

运行该文件以查看结果。

b6606b96bc745e8d94551d84915fa51d.png

从相机检测

在这里,我们将使用 Haar Cascade 的分类器,让我们的相机不仅可以检测而且可以跟踪我们的面部和眼睛。

人脸检测

让我们首先从人脸检测开始。导入 OpenCV 库和haarcascade_frontalface_default.xml文件。我们将使用与上面相同的detect_face函数。

import cv2

face_cascade = cv2.CascadeClassifier('.\Data\haarcascade_frontalface_default.xml')

def detect_face(img):
    face_img = img.copy()
    face_rect = face_cascade.detectMultiScale(face_img,scaleFactor=1.2,minNeighbors=5)

    for (x,y,w,h) in face_rect:
        cv2.rectangle(face_img,(x,y),(x+w,y+h),(255,255,255),10)
    return face_img

我们将使用一个名为 VideoCapture() 的函数。此函数允许我们打开相机并捕获视频,并将其转换为帧。

现在创建一个 while 循环并将这些帧发送到我们的函数。该函数将返回那些面部周围有方框的帧。

cap = cv2.VideoCapture(0)

while True:
    ret,frame = cap.read()
    frame = detect_face(frame)
    cv2.imshow('Face Detection',frame)
    code = cv2.waitKey(10)
    if code == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

运行该文件以查看结果。

眼睛检测

与人脸检测类似,我们现在将使用haarcascade_eye.xml文件来检测眼睛。导入haarcascade_eye.xml文件并使用与人脸检测相同的代码。

import cv2

eye_cascade = cv2.CascadeClassifier('.\Data\haarcascade_eye.xml')

def detect_eye(img):
    eye_img = img.copy()
    eye_rect = eye_cascade.detectMultiScale(eye_img,scaleFactor=1.2,minNeighbors=5)

    for (x,y,w,h) in eye_rect:
        cv2.rectangle(eye_img,(x,y),(x+w,y+h),(255,255,255),10)
    return eye_img

cap = cv2.VideoCapture(0)

while True:
    ret,frame = cap.read()
    frame = detect_eye(frame)
    cv2.imshow('Eye Detection',frame)
    code = cv2.waitKey(10)
    if code == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

现在运行该文件以查看结果。

b6a2b7c228663e7d62e03a65aef4e237.gif

结论

OpenCV 是一个非常强大的机器学习库。

源代码:https://github.com/Priyank010/Face-and-Eye-Detection

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

8b51b5add245bf90b705625da31783e1.jpeg

python opencv五官识别及边缘检测 import cv2 as cv import copy import numpy as np#添加模块矩阵模块 # 脸 face_cascade = cv.CascadeClassifier('haarcascade_frontalface_default.xml') face_cascade.load('E://opencv/build/etc/haarcascades/haarcasca... 阅读详情

相关推荐

使用OpenCVPython中进行人脸眼睛检测

Modules Used: 使用的模块: python-opencv(cv2) python-opencv(cv2) python-opencv(cv2) Opencv(Open source computer vision) is a python library that will help us to solve computer vision problems. Opencv...

cumudi0723的博客 1863

人脸检测进阶:使用 dlib、OpenCV Python 检测眼睛、鼻子、嘴唇下巴等面部五官.zip

人脸检测进阶:使用 dlib、OpenCV Python 检测眼睛、鼻子、嘴唇下巴等面部五官,详见:https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/121676797?spm=1001.2014.3001.5502

使用Python,dlib中新型、更快、更小的5点面部标志检测检测人脸、眼睛、鼻子

这篇博客将应用dlib新型,更快,更紧凑的5点面部标志检测器进行面部标志检测; 该5点面部标志检测器可以被认为是最初随dlib库一起分发的68点标志检测器的直接替代品。 在讨论了两个面部标志检测器之间的区别之后,提供了应用5点形式来检测人脸的眼睛鼻子区域的示例脚本; 测试发现,5点面部标志检测器比68点版本快8-10%,而模型小10倍。

qq_40985985的博客 2810

python进阶——人工智能视觉识别

python人工智能方面可以毫不客气的说,比其他的所有语言都要有优势,因为python的背后有一个非常强大的资源库来支撑着python运作。

我快乐,我自由。 2435

Python使用Opencv进行图像人脸、眼睛识别实例演示

人脸识别是一种计算机技术,它使用算法来检测,定位识别数字图像或视频帧中的人脸。这种技术可以通过两种方式实现:人脸检测人脸识别。人脸检测是指从图像中检测人脸的过程,而人脸识别是指确定该人脸的身份。 在人脸检测方面,一种常见的方法是使用 Haar 级联分类器。Haar 级联分类器是一种基于机器学习的人脸检测方法,其核心是基于特征的级联分类器。这种方法需要首先使用训练数据来训练分类器,然后使用它来检测新的图像中的人脸。

小蓝枣的博客 4931

人脸检测进阶:使用 dlib、OpenCV Python 检测眼睛、鼻子、嘴唇下巴等面部五官

## 使用 dlib、OpenCV Python 检测眼睛、鼻子、嘴唇下巴 今天的博客文章将首先讨论与面部标志相关的 (x, y) 坐标以及如何将这些面部标志映射到面部的特定区域。 然后我们将编写一些可用于提取每个面部区域的代码。 我们将通过在一些示例图像上演示我们的方法的结果来结束博客文章。 在这篇博文结束时,您将对如何通过面部标志(自动)提取面部区域有深入的了解,并将能够将这些知识应用到您自己的应用程序中。

AI浩 6043

基于pythonopencv_基于PythonOpenCV的人脸检测

面部识别一直是一个热门话题,也从来没有像现在这样容易理解。在这篇文章中,我们首先介绍如何使用Python检测人脸。机器学习、人工智能人脸识别是当前的重要课题。所以我想,使用Python检测照片中的面孔是多么容易,这将是一件很有趣的事情。这篇文章的重点是仅仅检测人脸,而不是人脸识别,因为人脸识别实际上是为人脸指定一个名称。使用Python检测面孔的最流行也可能是最简单的方法是使用OpenCV包。...

weixin_29098367的博客 176

如何使用Python实现图像识别?

如何使用Python实现图像识别?

qq_61433567的博客 1万+

【分享】如何在自动化测试中应用Python图像识别技术

图像识别技术是计算机视觉领域的一个重要研究方向。Python作为一种功能强大且易于学习的编程语言,被广泛用于数据分析、机器学习人工智能领域。

qq_31856023的博客 3094

瞳孔检测眼动追踪python实现(基于dlib)

使用dlib实现的瞳孔检测,可用于眼动追踪

weixin_45615730的博客 2505

Python如何调用系统视像头进行人脸识别、图像处理、图像识别等常用库教程(基础)

01、利用python操作摄像头 首先介绍安装opencv-python第三方库 OpenCV 是一个开源的计算机视觉库,OpenCV 库用C语言 C++ 语言编写,可以在 Windows、Linux、Mac OS X 等系统运行。同时也在积极开发 Python、Java、Matlab 以及其他一些语言的接口,将库导入安卓 iOS 中为移动设备开发应用。 OpenCV 库包含从计算机视觉各个领域衍生出来的 500 多个函数,包括工业产品质量检验、医学图像处理、安保领域、交互操作、相机校正、双目视觉以及机

唤醒手腕 9362

OpenCV+dlib+Python实现人体五官检测

在以前的文章里面我有写过人脸识别相关的项目实践,基本的路线是: 1、开发摄像头人脸数据采集模块,快速采集批量的包含人脸的图像数据 2、人脸区域切割提取,构建数据集 3、CNN模型训练,测试 4、调用摄像头加载离线模型实时人脸识别 在这里其实有两块是跟OpenCV密不可分的,第二步里面的人脸区域切割提取需要借助于OpenCV的级联分类器实现人脸区域的定位,完成模型的训练之后第四步里面,调用摄像头加载离线模型实时人脸识别的时候也是需要借助于OpenCV的级联分类器才能实现人脸R...

Together_CZ的博客 3678

使用 Python 进行面部特征检测面部过滤器

使用 Python 进行面部特征检测面部过滤器

张哥频道:电生理信号和磁共振成像 927
上一篇: 使用 Python 和 OpenCV 进行图像聚类
下一篇: 使用 YOLO 进行目标检测:如何提取人物图像
woshicver
博客等级 码龄6年 1838粉丝 · 624原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值