Haar Cascade 哈尔级联
1、核心原理
1、使用Haar-like特征监测
2、Integral Image:积分图加速特征计算
3、AdaBoost:选择关键特征,进行人脸和非人脸分类
4、Cascade:级联,弱分类器称为强分类器

论文:Rapid Object Derection using a Boosted Cascade of Simple Features
OpenCV源码    :GitHub - opencv/opencv: Open Source Computer Vision Library
Haar-like特征检测,就是用白色矩形像素减去黑色矩形像素,作为一个特征点

先下载OpenCv源码:解压打开

复制到目录下:

开始编码:识别图像的人脸

#1、导入库
import cv2
import numpy as np
import matplotlib.pyplot as plt
#2、显示图片
def show_image(image,title,pos):#BGR 转换RGBimg_RGB = image[:,:,::-1]plt.subplot(2,2,pos)plt.title(title)plt.imshow(img_RGB)plt.axis("off")#3、绘制图片中检测到的人脸
def plot_rectangle(image,faces):#拿到检测到的人脸数据,返回4搁置:坐标(x,y),宽高width,heightfor(x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),3)return image
#4、主函数
def main():# 5、读取一张图片image = cv2.imread("../images/chenqiaoen.jpg")# 6、转换成一张灰度图片gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)# 7、通过OpenCv自带方法CV2.CascadeClassifier()加载级联分类器face_alt2 = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")# 8、分类器对图片中人脸进行检测face_alt2_detect = face_alt2.detectMultiScale(gray)# 9、绘制图片中检测到的人脸face_alt2_result = plot_rectangle(image.copy(),face_alt2_detect)# 10、创建画布plt.figure(figsize=(9,6))plt.suptitle("Face detection with haar Cascade ",fontsize = 14,fontweight="bold")# 11、显示整个检测效果show_image(face_alt2_result,"face_alt2",1) #表示显示到第一的位置plt.show()if __name__ == "__main__":main()

效果:

不准确,有些可能还是别不出来。

视频的人脸识别代码:

#摄像头读取
#1、导入库
import cv2
import numpy as np
import matplotlib.pyplot as plt
#2、显示图片
def show_image(image,title,pos):#BGR 转换RGBimg_RGB = image[:,:,::-1]plt.subplot(2,2,pos)plt.title(title)plt.imshow(img_RGB)plt.axis("off")#3、绘制图片中检测到的人脸
def plot_rectangle(image,faces):#拿到检测到的人脸数据,返回4搁置:坐标(x,y),宽高width,heightfor(x,y,w,h) in faces:cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),3)return image
#4、主函数
def main():# 5、读取摄像头capture = cv2.VideoCapture(0)#判断摄像头是否正常工作if capture.isOpened() is False:print("Camera Error")while True:#通过摄像头读取每一帧ret,frame = capture.read() # ret表示是否可以读取到图片,ret是true和false,true表示可以读取照片,false表示不能读取图片if ret:# 6、转换成一张灰度图片gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)# 7、通过OpenCv自带方法CV2.CascadeClassifier()加载级联分类器face_alt2 = cv2.CascadeClassifier("haarcascade_frontalface_alt2.xml")# 8、分类器对图片中人脸进行检测face_alt2_detect = face_alt2.detectMultiScale(gray)# 9、绘制图片中检测到的人脸face_alt2_result = plot_rectangle(frame.copy(),face_alt2_detect)cv2.imshow("face detection" ,face_alt2_result)if cv2.waitKey(10) & 0xFF == ord('q'):breakif __name__ == "__main__":main()

早期的Haar Cascade 哈尔级联人脸识别相关推荐

  1. OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检测的测试代码

    Tadas Baltrusaitis的OpenFace是一个开源的面部行为分析工具,它的源码可以从 https://github.com/TadasBaltrusaitis/OpenFace 下载.O ...

  2. 树莓派4b之初学者入门人脸识别(手把手完整版)

    目录 前言: [硬件配置] 一.烧录镜像和环境配置 二.代码详解 1.基础知识 2.相关代码及其详细注释 三.代码部署和运行 前言: 树莓派的性能日益强大,树莓派4b相比上一代的能有了很大的提升,采用 ...

  3. 【人脸识别】Haar分类器五官定位【含GUI Matlab源码 686期】

    ⛄一.简介 1 Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独 ...

  4. 【人脸识别(五)】:基于Haar+Adaboost的人脸检测算法,及实例教程

    人脸识别(一):Ubuntu Python安装dlib C++ library 人脸识别(二):如何使用 dlib 实现简单的人脸识别功能 人脸识别(三):使用face_recognition库实现人 ...

  5. 人脸识别之人脸检测(一)--综述

    这里作为一个系列,先说haar分类器. 原文: http://www.cnblogs.com/ello/archive/2012/04/28/2475419.htm 非常感谢作者这一篇总结性文章,对O ...

  6. 机器学习 - 人脸识别

    文章目录 人脸识别 视频捕捉 人脸定位 人脸识别 人脸识别 人脸识别与图像识别的区别在于人脸识别需要识别出两个人的不同点. 视频捕捉 通过OpenCV访问视频捕捉设备(视频头),从而获取图像帧. 视频 ...

  7. Qt-OpenCV学习笔记--人脸识别

    前言 本人从事机械设计12年,业余时间自学编程. 2022年4月6日,开始学习C#, 2022年9月7日,开始学习c++和Qt, 2022年10月28日,开始学习OpenCV, 今天终于搞定了传说中的 ...

  8. 人脸识别技术原理与工程实践

    1人脸识别应用场景(验证) 我们先来看看人脸识别的几个应用.第一个是苹果的FACE ID,自从苹果推出FaceID后,业界对人脸识别的应用好像信心大增,各种人脸识别的应用从此开始"野蛮生长& ...

  9. OpenMV(五)--STM32实现人脸识别

    STM32实现人脸识别 引 前言 1. 人脸检测 1.1 构造函数 1.2 源码分析 2. 人脸识别 2.1 构造函数 2.2 源码分析 3.通过本地特征文件进行人脸识别 3.1 将人脸特征保存到本地 ...

最新文章

  1. FastCgi与PHP-fpm之间是个什么样的关系
  2. 浅谈函数调用的汇编实现细节(用栈来传递参数)
  3. 从域环境搭建到域渗透
  4. 200912阶段一C++友元、运算符重载
  5. opencv视频读写和视频等间隔采样
  6. 推荐系统学习(三)SVD奇异值分解做推荐与python代码
  7. java学习之基本类型
  8. Linux C基础笔记(3)
  9. debian 安装 php,Ubuntu/Debian上安装Nginx+php环境详细教程
  10. C++获取文本文件字节数的一个小方法
  11. 数据结构和算法——八种常用的排序算法------归并排序
  12. pythom打包文件太大_PDF太大,不让上传怎么办?教你1分钟将100M的PDF变成10M
  13. VMware虚拟机下载、安装与使用
  14. windows 可以当镜子用的软件
  15. ae导出gif插件_AE脚本-快速输出GIF动图格式插件脚本 GifGun 1.7.7 Win/Mac 支持AE CC 2019...
  16. 计算机学业水平考试反思总结8百,考试反思与总结
  17. 32位系统为什么又叫x86系统呢?
  18. 一套完整的Android通用框架
  19. Ubuntu18.04重启后无法进入图形化界面
  20. java跳骚市场的代码,开源项目在闲鱼、b 站上被倒卖?这是什么骚操作?

热门文章

  1. 【写博分享是矢志不渝的使命】关于2013年度IT博客大赛
  2. C语言 一维数组换位问题
  3. linux常用的快捷命令,linux 常用命令快捷键
  4. 可再生能源证书市场现状研究分析-
  5. C. Robot in a Hallway Educational Codeforces Round 133 (Rated for Div. 2)dp
  6. 网上开课都用什么软件?这5款你一定要知道
  7. python 艺术作品_Python的艺术玩法——“孔雀开屏”篇
  8. bzoj 4573 大森林
  9. RAMOS系统 WIN7+VHD+GURB map
  10. linux启动常用软件命令,Linux常用软件启动、停止、重启命令