【OpenCv 4 Python 3.7】人脸检测 (Haar\LBP)

基于Python的OpenCV人脸检测 本文将要讲述的是Python环境下如何用OpenCV检测人脸,本文的主要内容分为: 1、检测图片中的人脸 2、实时检测视频中出现的人脸 3、用运设备的摄像头实时检测人脸 提前做的准备: 安装好Python3 下载安装OpenCV库,方法是pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple 下载特征数据HAAR和LBP,这两种数 阅读详情

级联分类器

首先研究级联分类器。
理论
级联分类器,即使用类 Haar 特征工作的级联增强分类器,是集成学习的一种特殊情况,称为 boost。它通常依赖于 Adaboost 分类器(以及其他模型,如 Real Adaboost、Gentle Adaboost 或 Logitboost)。
级联分类器在包含检测目标的几百个样本图像以及不包含检测目标的其他图像上进行训练。
级联分类器

1、Haar 特征选择

人脸上最常见的一些共同特征如下:
与脸颊相比,眼部颜色较深
与眼睛相比,鼻梁区域较为明亮
眼睛、嘴巴、鼻子的位置较为固定…
这些特征称为 Haar 特征。

Haar 特征
第一个特征测量眼部和上脸颊之间的强度差异。特征值计算的方法很简单,对黑色区域中的像素求和再减去白色区域中的像素即可。
在这里插入图片描述

2、OpenCV-LBP人脸识别相关类和函数

首先,还是说一下LBP特征的原理,方便后面的阐述。

原始的LBP算法的基本思想是在33的窗口内,以窗口中心像素为阈值,将相邻的8个像素的灰度值与其进行比较,若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则为0。这样,33邻域内的8个点经过比较可产生8位二进制数,如图1中00010011(通常转换为十进制数即LBP码,共256种),即得到该窗口中心像素点的LBP值,并用这个值来反映该区域的纹理信息。如下图所示:
在这里插入图片描述

通过对全局图像进行LBP特征提取得到LBP图,LBP特征图是不能直接来作人脸识别的,需要对LBP特征图进行分块并计算每个分块的直方图,通过直方图的统计信息进行识别,最后将各块的直方图首尾相连就得到一张图片最终的LBP特征描述向量。计算两张图片的LBP特征向量的相似度即可实现人脸识别。

代码实现:

import cv2 as cv
import numpy as np

#人脸检测
def face_detect_demo(image):
    gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)
    #CascadeClassifier:级联检测器
    face_detector = cv.CascadeClassifier("D:/opencv-3.3/opencv/build/etc/lbpcascades/lbpcascade_frontalcatface.xml")
    #detectMultiScale 在多个尺度空间进行人脸检测   2:检测不出来就设置的低一点
    faces = face_detector.detectMultiScale(gray, 1.1, 2)
    # 绘制人脸矩形框
    for x, y, w, h in faces:
        cv.rectangle(image, (x, y), (x+w, y+h), (0, 0, 255), 2)
    cv.imshow("result", image)

print("--------- Python OpenCV Tutorial ---------")
#src = cv.imread("D:/vcprojects/images/topstar.png")
capture = cv.VideoCapture(0) #视频中检测:启动电脑摄像头
#cv.namedWindow("input image", cv.WINDOW_AUTOSIZE)
cv.namedWindow("result", cv.WINDOW_AUTOSIZE)
while(True):
    ret, frame = capture.read()
    frame = cv.flip(frame, 1)
    face_detect_demo(frame)
    c = cv.waitKey(10)
    if c == 27: # ESC
        break


#cv.imshow("input image", src)
cv.waitKey(0)

cv.destroyAllWindows()
Python3+OpenCV学习笔记(五):鸟类检测模型的训练 最近各种事情耽搁,OpenCV的学习也没有进展。 因为项目需求,所以自己做了这样一个基于Haar特征级联分类器的鸟类检测模型,记录下来。 OpenCV官方文档中有一个Haar级联分类器做的人脸检测例程,自行参阅文档。 做一个鸟类检测模型首先需要训练出一个识别用的.xml文件,下面就开始进行训练。   一、准备样本集 样本集需要正样本集和负样本集。 正样本集:正样本集为包含“鸟类”的灰... 阅读详情

相关推荐

python识别分类器_人脸检测识别opencv+python实现(Haar分类器)

PS. 由于本人工作上事情较多,有关于Haar分类器用于人脸检测的学习,已经初步学习并了解原理与过程。但是暂时没有时间来整理所有知识点的博客。下面将着重介绍一下几个步骤,然后推荐一些博客。并附上用haar+级联分类器的方法,opencv+python的实现,用于人脸检测。后期有空了再补上详细原理步骤!!!!!!一、haar分类器用于人脸检测的几个关键点:1. Haar-like 特征2. Haar...

weixin_39632891的博客 1084

opencv实现视频人脸检测

在OpenCV中主要使用了两种特征(即两种方法)进行人脸检测,Haar特征和LBP特征。使用已经训练好的XML格式的分类器进行人脸检测。在OpenCV的安装目录下的sources文件夹里的data文件夹里可以看到下图所示的内容(opencv\sources\data\haarcascades ) #-*-coding:utf8-*-# import cv2 def detectFaces(i...

Hayley-L 499

【OpenCV-Python】——Haar人脸检测&深度学习人脸检测&EigenFaces/FisherFaces/LBPH人脸识别

由于是初学者可能很多地方没有总结完全或者有误,后续深入学习后会不断回来该删,也欢迎各位朋友指正!下次学习机器学习和深度学习基础!

weixin_51658186的博客 4576

简单opencv人脸检测代码:LBP/Haar特征

前言 目前网络上有太多

abc20002929的专栏 4884

基于Python与Haar级联分类器的人脸及人体部位检测实战

简介:人脸检测是计算机视觉中的关键技术,广泛应用于安防、人脸识别和社交娱乐等领域。本文介绍如何在Python中使用OpenCV库的Haar级联分类器(如haarcascade_frontalface_alt2、haarcascade_upperbody和haarcascade_fullbody)实现人脸、上半身和全身的检测。通过加载预训练XML模型、图像灰度化处理及detectMultiScale函数调用,完成目标区域识别与标注。内容涵盖完整检测流程,适合初学者掌握传统特征提取方法在实际场景中的应用。

weixin_36299472的博客 701

Haar人脸检测+SVM+PCA人脸识别

使用基于Haar特征的级联分类器进行人脸检测,并使用SVM+PCA进行人脸识别匹配。

三种特征分类器Haar、LBP和HOG

最常用到的三种特征分别为Haar特征、LBP特征及HOG特征,三种特征描述了三种不同的局部信息: Haar描述的是图像在局部范围内像素值明暗变换信息; LBP描述的是图像在局部范围内对应的纹理信息; HOG描述的则是图像在局部范围内对应的形状边缘梯度信息。     三种特征在图像处理和机器学习领域都得到了广泛的应用,在此做一个总结,方便后面复习。 1、Haar特征     最容易接触到Haar特征地方应该就是opencv自带的人脸检测器,所采用的就是

shadowsland的专栏 5951

Python + OpenCV 实现LBP特征提取的示例代码

主要介绍了Python + OpenCV 实现LBP特征提取的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

opencv之HAAR与LBP级联分类器,实现人脸识别人眼追踪

haar、LBP检测器原理 本人不擅长,请自行百度 级联器相关介绍 Viola和Jones在2001在CVPR提出 一种实时对象(人脸)检测框架 训练速度非常慢,检测速度非常快 5000个正向人脸样本与3000万个非人脸负样本数据 级联分类器原理-AdaBoost 弱分类器-Weak classifier = Feature 强分类器-多个弱分类器的线性组合 级联分类器-多个强分类器的组...

笔记用 2030

别再搞混了!用示波器实测SVPWM:相电压、线电压、端电压波形到底长啥样?(附TI/ST官方笔记解读)

本文详细解析了SVPWM波形实测中的相电压、线电压和端电压的区别与测量技巧,结合TI/ST官方笔记,揭示了马鞍形波形的形成原理及常见误区。通过示波器实测案例,帮助电力电子工程师准确理解并应用这些关键概念,提升电机控制系统的调试效率。

weixin_30632883的博客 433

搭建Dzzoffice 教程

通过以上步骤,您已经成功配置了WEB环境,安装了DzzOffice,并完成了系统设置和应用安装。1.安装包的设置默认是系统盘之外的第二个盘,没有其他盘符的时候则安装在C盘,当主机盘符只有C盘可用的时候,安装时不要使用U盘,否则可能误装到U盘当中。4.如果之前已经安装,再次安装时请确保上次安装已经卸载或者所有文件可读,否则请备份文件,卸载之后再安装。在其他安装环境中,我没有相关的使用经验。3. 保证安装路径是纯净的,安装路径下不能有已安装的V8版本,若重新安装,请选择其它路径。

小胡的博客 4956

python+opencv 实现图像人脸检测及视频中的人脸检测

python+opencv 实现图像人脸检测及视频中的人脸检测,首先下载人脸检测要用到的分类器,熟悉opencv相关API的使用,然后利用python+opencv实现图像单人脸检测、图像多人脸检测、视频中人脸检测和摄像头人脸检测。

叶庭云 成为自己的光 1万+

STM32F407 BootLoader实战:从零搭建到OTA升级(附完整源码)

本文详细介绍了为STM32F407微控制器从零搭建BootLoader并实现稳定OTA升级的完整实战指南。内容涵盖Flash分区规划、链接脚本配置、核心跳转逻辑、中断向量表重定向、可靠的升级流程设计,并深入探讨了双备份与回滚机制以提升工业级可靠性。文章提供了可直接使用的代码框架,并分享了关键调试技巧,帮助开发者快速掌握STM32远程固件更新技术。

weixin_29192211的博客 445

Datawhale -- opencv学习 -- Haar分类器(人脸检测)

PS. 由于本人工作上事情较多,有关于Haar分类器用于人脸检测的学习,已经初步学习并了解原理与过程。 但是暂时没有时间来整理所有知识点的博客。 下面将着重介绍一下几个步骤,然后推荐一些博客。 并附上用haar+级联分类器的方法,opencv+python的实现,用于人脸检测。 后期有空了再补上详细原理步骤!!!!!! 一、haar分类器用于人脸检测的几个关键点: 1. Haar-like 特征 2. Haar-like特征的计算—积分...

何小义的博客 5840

2024高教社杯数学建模国赛B题丨国一原创论文解析及源码超详细分享!

继续分享一篇2024国赛B题的国奖论文,包含可运行源代码jupyter,国赛B题通常比较聚焦实际复杂系统的多目标优化决策,主要偏重算法实现与概率建模解决开放性的管理问题。而且高度开放,无标准答案,学科交叉复杂,如资源调度、交通优化、海洋探测等。比较建议有一定统计学基础的同学参加。

ihui永不放弃 6740

rk3576 适配摄像头 (mipi 双摄)

RK3576 自带两个 4-Lane DPHY 和一个 DCPHY CSI 接口,可以连接 4lane 的双摄像头,最直接的方式就是充分利用其两个 D-PHY 接口。次选方案是 DCPHY + DPHY方案,更次之方案是单DPHY,设置成分离模式,连接两颗摄像头。

weixin_35723192的博客 393

基于Python的OpenCV人脸检测!OpenCV太强了!

一、文章概述 本文将要讲述的是Python环境下如何用OpenCV检测人脸,本文的主要内容分为: 1、检测图片中的人脸 2、实时检测视频中出现的人脸 3、用运设备的摄像头实时检测人脸 二:准备工作 提前做的准备: 安装好Python3 下载安装OpenCV库,方法是pip install opencv-python -i https://mirrors.aliyun.com/pypi/simple/ --trusted-host=mirrors.aliyun.com/pypi/simple

爬遍所有网站 8406

[STM32F103C8T6]W5500+Modbus TCP(HAL库)

本章节是博主学习Modbus TCP所写的一篇文章Modbus TCP是Modbus的一个分支,主要用到网口通信的,在工业上也用的很频繁,我们公司最近的项目就是用的W5500+modbus TCP来和PC端的上位机通信和交互的。虽然这个项目不是我在写代码,但是我都学了Modbus RTU了,那我也抽空学习一下Modbus TCP吧。本次的Modbus TCP不是博主写的,是一个大佬开源的一个W5500写的一个Mobus TCP代码,我在这个基础上自己写了主机读从机多个数据,和主机写从机寄存器的函数。

sinat_58149788的博客 4086

OpenCV人脸识别实战:Haar与LBP算法优化指南

人脸识别作为计算机视觉的核心技术,通过特征提取与模式匹配实现身份验证。传统算法如Haar级联和LBP在OpenCV中经过高度优化,兼顾实时性与准确率,特别适合嵌入式设备和快速部署场景。Haar特征基于积分图加速矩形特征计算,而LBP对光照变化更具鲁棒性,两者结合可提升复杂环境下的检测精度。在安防监控、智能门禁等实际应用中,通过多帧检测策略和参数调优(如scaleFactor=1.1),能在树莓派等边缘设备实现15FPS的实时处理。本文详解从模型训练到工程落地的全流程,包含级联分类器调参、光照补偿等实战技巧。

weixin_30642869的博客 290

论文阅读-Whisper语音识别(OpenAI)

Whisper 是一个自动语音识别(ASR,Automatic Speech Recognition)系统,OpenAI 通过从网络上收集了 68 万小时的多语言,其中11万小时覆盖96 种语言,12万小时的语言标号为英语,用多任务(multitask)监督数据对 Whisper 进行了训练。

一位不是很硕的鉴伪方向硕士 6366

UNet 改进(39):结合残差连接与CBAM注意力机制的unet模型

本文提出了一种改进的UNet架构,通过融合残差连接和CBAM注意力机制来增强医学图像分割性能。该网络保留UNet的U形结构,但将基础模块替换为ResidualBlock和CBAM的组合:残差块通过快捷连接解决梯度消失问题,CBAM模块结合通道和空间注意力机制突出重要特征。整体架构采用编码器-解码器设计,包含5个下采样和上采样阶段,通过跳跃连接融合多尺度特征。实验表明,这种改进显著提升了原始UNet的性能,特别适用于需要精细边界的医学图像分割任务。

2401_82355416的博客 1034

opencv人脸识别 (一):人脸检测 (Haar级联 & 静态图像中人脸检测 & 视频中的人脸检测 )

OpenCV 是用 C++编写的 图片处理 读取图片 image = cv2.imread(imagepath) cv2.imshow('input image',img) 显示图像是 OpenCV 最基本的操作之一, imshow()函数可以实现该操作。 如果使用过其他 GUI 框架背景, 就会很自然第调用 imshow()来显示一幅图像...

hxxjxw的博客 1492

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

OpenCV学习Day13--基于HAAR和LBP人脸检测

代码: # -*- coding: UTF-8 -*- import cv2 as cv import numpy as np def faceDectDemo(image): gray=cv.cvtColor(image,cv.COLOR_BGR2GRAY)#基于灰度图像的 faceDector=cv.CascadeClassifier("E:\opencv-4.0.1-vc1...

weixin_44823151的博客 344

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

OpenCV Haar分类器训练实战:人脸检测器从数据准备到部署

OpenCV Haar分类器训练是计算机视觉领域中一项实用的技能,通过本教程,你将学习如何使用GitHub加速计划/op/opencv-haar-classifier-training项目,从数据准备到最终部署,打造属于自己的人脸检测器。 ## 准备工作:环境搭建与项目克隆 要开始OpenCV Haar分类器的训练之旅,首先需要搭建好开发环境并获取项目代码。 ### 安装OpenCV与获取源

gitblog_00411的博客 406

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

如何快速训练OpenCV Haar分类器:10步简单教程

OpenCV Haar分类器是一种强大的计算机视觉工具,能够快速检测图像中的特定对象。本教程将带你通过10个简单步骤,使用opencv-haar-classifier-training项目快速训练属于自己的OpenCV Haar分类器,即使你是计算机视觉领域的新手也能轻松上手。 ## 1. 准备工作:安装OpenCV与获取源码 首先需要安装OpenCV 2.4.x版本并获取其源代码。在Linux

gitblog_00980的博客 1041
上一篇: 【OpenCv 4 Python 3.7】分水岭算法
下一篇: 【OpenCv 4 Python 3.7】数字验证码识别
YL_python_C++_java
博客等级 码龄7年 1392粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值