首页 > 其他分享 >《OpenCV计算机视觉》—— 人脸检测

《OpenCV计算机视觉》—— 人脸检测

时间:2024-10-13 22:17:13浏览次数:7  
标签:CascadeClassifier 检测 cv2 分类器 OpenCV 人脸 图像 视觉

文章目录

一、人脸检测流程介绍

  • 下面是一张含有多个人脸的图片
    在这里插入图片描述
    • 第一步:读取图片后将图片转换成灰度图
    • 第二步:在灰度图中进行特征检测,并检测出各个人脸的特征信息
    • 第三步:将各个人脸的特征信息保存下来
    • 第四部:根据检测出的人脸的特征信息,在原图中用矩形框,框出每个人的脸部区域
  • 最终的结果如下:
    在这里插入图片描述

二、用于人脸检测的关键方法

1.加载分类器(cv2.CascadeClassifier())

  • 在OpenCV库中,提供了多个用于检测人脸的Haar特征级联分类器,并以xml文件的形式存储,这些文件是预训练的,意味着它已经被训练好了,可以直接用于检测图像中的人脸
  • 下面链接中是对人脸检测的Haar特征和级联分类器的介绍:
  • 如何找到这些xml文件呢?
    • 这些 xml文件存在我们pycharm的环境中,通过下图中的步骤找到:
      在这里插入图片描述
  • 找到这些文件后通过 cv2.CascadeClassifier() 加载分类器
    • cv2.CascadeClassifier 是 OpenCV 库中用于加载和训练级联分类器的一个类

2.检测图像中的人脸(cv2.CascadeClassifier.detectMultiscale())

  • 在OpenCV中,cv2.CascadeClassifier 类有一个非常重要的方法叫做 detectMultiScale(),这个方法专门用于在图像中检测对象。detectMultiScale() 方法会搜索图像中所有可能匹配预训练分类器(如Haar或LBP特征分类器)的对象,并返回这些对象的位置(通常以矩形框的形式)。

  • 下面是 detectMultiScale() 方法的一些关键参数和它们的含义

    • image:要搜索的输入图像,通常是一个灰度图像(因为颜色信息对于Haar特征来说不是必需的,而且灰度图像处理起来更快)。
    • scaleFactor:图像缩放的比例因子。在检测过程中,图像会按照这个比例因子逐步缩小,以便在不同的尺度上搜索对象。例如,scaleFactor=1.05 意味着每次迭代图像都会缩小5%。
    • minNeighbors:每个候选矩形框需要有多少个相邻的矩形框来保留该框。这个参数有助于消除错误的检测。例如,如果设置为3,那么只有当至少有3个矩形框重叠时,该框才会被保留。
    • flags:一些可选的标志,用于修改检测过程的行为。例如,cv2.CASCADE_SCALE_IMAGE 会告诉分类器在检测之前自动缩放图像(但通常这个标志是默认启用的,所以不需要显式设置)。
    • minSizemaxSize:对象的最小和最大可能尺寸(以像素为单位)。这些参数可以帮助减少不必要的搜索区域,并加快检测速度。
    • 返回值:detectMultiScale() 方法返回一个矩形框的列表(每个框都是一个 (x, y, w, h) 元组,其中 (x, y) 是矩形左上角的坐标,w 和 h 分别是矩形的宽度和高度

三、代码实现

  • 完整代码如下:
    import cv2
    
    """ 加载图片,并将图片转换为灰度图 """
    image = cv2.imread('face.png')
    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
    
    """ 加载分类器 """
    # 'haarcascade_frontalface_default.xml' 用于检测正面人脸的Haar特征的级联分类器
    faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
    
    """ 使用分类器对人脸进行检测 """
    faces = faceCascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=9, minSize=(8, 8))
    print("发现{}张人脸".format(len(faces)))
    print("其位置分别是:", faces)
    
    """ 遍历每一个人脸的特征,并用矩形框将人脸部位框出 """
    for (x, y, w, h) in faces:
        cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
    
    """ 显示结果 """
    cv2.imshow("result", image)
    cv2.waitKey(0)
    cv2.destroyAllWindows()
    
  • 结果如下:
    在这里插入图片描述

标签:CascadeClassifier,检测,cv2,分类器,OpenCV,人脸,图像,视觉
From: https://blog.csdn.net/weixin_73504499/article/details/142903485

相关文章

  • 【进阶OpenCV】 (9)--摄像头操作--->答题卡识别改分项目
    文章目录项目:答题卡识别改分1.图片预处理2.描绘轮廓3.轮廓近似4.透视变换5.阈值处理6.找每一个圆圈轮廓7.将每一个圆圈轮廓排序8.找寻所填答案,比对正确答案8.1思路8.2图解8.3代码体现9.计算正确率总结项目:答题卡识别改分本篇我们来介绍,如何识别一张答......
  • Python从0到100(六十三):Python OpenCV-入门基础知识
    前言:零基础学Python:Python从0到100最新最全教程。想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、计算机视觉、机器学习、神经网络以及人工智能相关知......
  • UE5 猎户座漂浮小岛 03 视觉效果 粒子
    UE5猎户座漂浮小岛03视觉效果粒子1.视觉效果1.1指数级高度雾fog指数高度雾组件0.1、1.4内颜-淡蓝体雾1.2体积光太阳directionallight-强度光强-3颜色-淡蓝光束-遮遮暗-0.018范-100001.3天光天空照亮,泛光,照大地skylight强范1.4后期处理体积1.4.1光......
  • windows下基于cmake配置opencv并使用visual studio编译
     在Windows上下载并编译OpenCV,然后配置系统环境变量的步骤如下:1.下载OpenCV打开OpenCV官方下载页面。找到最新的Windows版本,点击下载,例如:opencv-4.x.x-vc14_vc15.exe,这将是一个自解压文件。下载完成后,双击opencv-4.x.x-vc14_vc15.exe文件,选择一个目录将其解压,......
  • opencv 使用项目
    目录opencv使用项目前言照片视频opencv使用项目前言cv2.WINDOW_NORMAL:该窗口是一个可以手动调整大小的正常窗口。如果没有指定这个属性,窗口的大小将被固定。cv2.WINDOW_AUTOSIZE:这是默认值,窗口的大小会根据图像大小自动调整,并且不能手动改变窗口大小。cv2.WINDOW_FREERATI......
  • 人脸识别调研
    项目列表开源项目语言/环境准确率(onLabeledFacesintheWild)备注ageitgey/face_recognitionPython,Dlib99.38%DocsDFacePython  facenetTensorFlow99.2%https://mp.weixin.qq.com/s/1kgbYScIujSjCRvfPGw0tgV......
  • 探索Ultralytics YOLO11在视觉任务上的应用
    前言在人工智能持续发展的当下,有一点是确凿无疑的:模型正变得愈发优秀、快捷和智能。就在人们以为YOLO系列已登峰造极之时,Ultralytics推出了最新升级版——YOLO11。需要注意的是,这里不是YOLOv11,他们简化了命名方式,去掉了“v”。这一改变就如同YOLO既做了形象上的精简,又实现......
  • LLaVA++: 扩展LLaVA的视觉能力与LLaMA-3和Phi-3
    LLaVA++:视觉语言AI的新里程碑在人工智能快速发展的今天,多模态AI系统正在成为研究的热点。近日,来自MohamedbinZayed人工智能大学(MBZUAI)的研究团队推出了LLaVA++项目,这是对原有LLaVA(LargeLanguageandVisionAssistant)模型的重大升级,通过整合最新发布的LLaMA-3和Phi-......
  • 安全帽穿戴检测人脸闸机联动系统
    安全帽穿戴检测人脸闸机联动系统结合安全帽穿戴检测技术和人脸识别技术,安全帽穿戴检测人脸闸机联动系统实现对进入工地施工区域人员是否穿戴安全帽进行精准监测和身份识别,安全帽穿戴检测人脸闸机联动系统通过摄像头对人员进行安全帽穿戴检测和人脸识别,只有在满足这两个条件的情况......
  • 加油站ai视觉分析预警系统
    加油站AI视觉分析预警系统利用摄像头和人工智能技术,加油站ai视觉分析预警系统实时监测人员的行为。加油站ai视觉分析预警系统通过图像识别和行为分析,识别出打电话抽烟、烟火行为、静电释放时间是否合规以及人员工服等不符合规定的行为,并发出预警信号以提醒相关人员。加油站ai视觉......