Haar

简介: 【6月更文挑战第11天】

haarcascade_frontalface_alt.xml 是 OpenCV 提供的预训练 Haar 特征分类器模型文件,用于人脸检测。它基于 Haar 特征级联分类器算法训练而成,能够在图像或视频中检测到人脸。

Haar 特征级联分类器

Haar 特征级联分类器是一种基于机器学习的人脸检测方法,最早由 Paul Viola 和 Michael Jones 在 2001 年提出。这个方法利用大量的正样本(包含人脸的图像)和负样本(不包含人脸的图像)进行训练,生成一个能够快速检测人脸的分类器。

haarcascade_frontalface_alt.xml 文件的作用

  1. 预训练模型:

    • 该文件包含一个经过训练的分类器模型,能够检测图像中的人脸。这使得开发者无需自己训练模型即可使用人脸检测功能。
  2. 人脸检测:

    • 通过加载这个 XML 文件,OpenCV 可以使用其中的特征和级联分类器进行人脸检测。

数据的由来

训练这种级联分类器模型需要大量的正样本和负样本:

  1. 正样本:

    • 包含人脸的图像,用于告诉分类器什么是人脸。通常,这些图像会经过各种变换(例如,旋转、缩放)以增加样本的多样性。
  2. 负样本:

    • 不包含人脸的图像,用于告诉分类器什么不是人脸。这些图像来自各种背景和场景,以确保分类器能够区分人脸和非人脸区域。

训练过程

训练过程主要包括以下步骤:

  1. Haar 特征提取:

    • Haar 特征是一组简单的矩形特征,计算图像中不同区域的像素差异。常见的 Haar 特征包括边缘特征、线特征和四角特征。
  2. 积分图像:

    • 为了加速特征计算,使用积分图像。积分图像在常数时间内计算任何矩形区域的像素和,从而大大加快特征计算速度。
  3. AdaBoost 算法:

    • 使用 AdaBoost 算法选择最能区分人脸和非人脸的特征,并组合成一个强分类器。AdaBoost 通过多次迭代,从特征集中选择一组弱分类器,并赋予它们不同的权重。
  4. 级联分类器:

    • 训练得到的分类器组成一个级联结构,分为多个阶段。每个阶段包含若干个弱分类器。输入图像从第一个阶段开始进行检测,如果某个阶段判断为非人脸,则立即丢弃该区域,减少计算量。如果通过所有阶段的检测,则认为该区域包含人脸。

示例代码

以下是一个使用 haarcascade_frontalface_alt.xml 进行人脸检测的示例代码:

import cv2

# 加载图像
image = cv2.imread('path_to_image.jpg')

# 转换为灰度图像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 加载预训练的 Haar 特征分类器
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_alt.xml')

# 检测人脸
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=4, flags=cv2.CASCADE_SCALE_IMAGE, minSize=(30, 30))

# 绘制矩形框
for (x, y, w, h) in faces:
    cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2)

# 显示结果
cv2.imshow('Detected Faces', image)
cv2.waitKey(0)
cv2.destroyAllWindows()
目录
相关文章
QGS
(麒麟V10-arm)编译安装php-7.4及部分依赖
记(麒麟V10-arm)编译安装php-7.4及部分依赖
QGS
2282 0
(麒麟V10-arm)编译安装php-7.4及部分依赖
|
机器学习/深度学习 计算机视觉
深度学习常见的损失函数
深度学习常见的损失函数
1124 1
深度学习常见的损失函数
|
4月前
|
人工智能 弹性计算 安全
AI实训营|一句话,云就听你的:用 Agent Toolkit 玩转阿里云
阿里云AI实训营推出Agent Toolkit,让AI Agent安全、稳定操作云资源。告别手动点控台、写Terraform、敲API,只需一句话(如“部署商品网站”),即可自动完成建机、配网、部署、巡检等全流程。含环境搭建+三大实战场景,新手跟练即会。
|
9月前
|
存储 人工智能 弹性计算
GPU服务器多少钱?2026年阿里云GPU云服务器(EGS)最新收费标准与场景适配指南
2026年,阿里云将GPU服务器正式更名为“EGS弹性GPU服务”,通过整合NVIDIA系列专业显卡与神龙计算架构,实现了算力的弹性分配与超低IO延迟,可广泛适配AI推理、图形渲染、科学仿真等高性能计算场景。不同于传统固定配置的硬件服务器,EGS采用“基础实例费+组件按需叠加”的透明定价模式,支持包年包月、按量付费及抢占式实例三种计费方式,用户可根据业务周期与算力需求灵活选择。本文基于阿里云官方最新价格清单与技术文档,详细拆解EGS各型号配置、收费标准、场景适配逻辑及选购注意事项,为不同需求用户提供清晰的成本核算与选型参考。
3962 1
|
XML 机器学习/深度学习 算法
haarcascade_frontalface_alt
【6月更文挑战第18天】
1008 4
|
人工智能 语音技术 iOS开发
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
MiniCPM-o 2.6 是面壁智能开源的多模态大模型,支持视觉、语音和多模态直播,性能媲美GPT-4o,能够在端侧设备上高效运行。
1597 10
MiniCPM-o 2.6:面壁智能开源多模态大模型,仅8B参数量就能媲美GPT-4o,支持实时交互,在ipad等终端设备上运行
|
IDE Java Maven
【Java异常】Error:(14,35) java:程序包eu.bitwalker.useragentutils不存在 的解决方案
【Java异常】Error:(14,35) java:程序包eu.bitwalker.useragentutils不存在 的解决方案
1444 0
|
编解码 算法 计算机视觉
Adaboost 人脸检测原理剖析
【1月更文挑战第6天】
Adaboost 人脸检测原理剖析
|
安全 应用服务中间件 Go
如何在 HTML 中添加 CSP 策略
内容安全策略(CSP)是一种安全机制,用于防止跨站脚本攻击等安全问题。本文将介绍如何在 HTML 中添加 CSP 策略,以提高网站的安全性。