使用python-cv2实现Harr+Adaboost人脸识别的示例


Posted in Python onOctober 27, 2020

Haar特征

哈尔特征使用检测窗口中指定位置的相邻矩形,计算每一个矩形的像素和并取其差值。然后用这些差值来对图像的子区域进行分类。

haar特征模板有以下几种:

使用python-cv2实现Harr+Adaboost人脸识别的示例

以第一个haar特征模板为例

使用python-cv2实现Harr+Adaboost人脸识别的示例

计算方式

1.特征 = 白色 - 黑色(用白色区域的像素之和减去黑色区域的象征之和)

2.特征 = 整个区域 * 权重 + 黑色 * 权重

使用haar模板处理图像

从图像的起点开始,利用haar模板从左往右遍历,从上往下遍历,并设置步长,同时考虑图像大小和模板大小的信息

假如我们现在有一个 1080 * 720 大小的图像,10*10 的haar模板,并且步长为2,那么我我们所需要的的计算量为: (1080 / 2 * 720 / 2) * 100 * 模板数量 * 缩放 约等于50-100亿,计算量太大。

积分图

使用积分图可大量减少运算时间,实际上就是运用了前缀和的原理

使用python-cv2实现Harr+Adaboost人脸识别的示例

Adaboost分类器

Adaboost是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分类器)。

算法流程

该算法其实是一个简单的弱分类算法提升过程,这个过程通过不断的训练,可以提高对数据的分类能力。整个过程如下所示:

1. 先通过对N个训练样本的学习得到第一个弱分类器;
2. 将分错的样本和其他的新数据一起构成一个新的N个的训练样本,通过对这个样本的学习得到第二个弱分类器 ;
3. 将1和2都分错了的样本加上其他的新样本构成另一个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器;
4. 最终经过提升的强分类器。即某个数据被分为哪一类要由各分类器权值决定。

我们需要从官网下载俩个Adaboost分类器文件,分别是人脸和眼睛的分类器:
下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades

使用python-cv2实现Harr+Adaboost人脸识别的示例

使用python-cv2实现Harr+Adaboost人脸识别的示例

代码实现

实现人脸识别的基本步骤:

1.加载文件和图片
2.进行灰度处理
3.得到haar特征
4.检测人脸
5.进行标记

我们使用cv2.CascadeClassifier()来加载我们下载好的分类器。

然后我们使用detectMultiScale()方法来得到识别结果

import cv2
import numpy as np
import matplotlib.pyplot as plt
# 1.加载文件和图片 2.进行灰度处理 3.得到haar特征 4.检测人脸 5.标记

face_xml = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
eye_xml = cv2.CascadeClassifier('haarcascade_eye.xml')
img = cv2.imread('img.png')
cv2.imshow('img', img)

gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 1.灰色图像 2.缩放系数 3.目标大小
faces = face_xml.detectMultiScale(gray, 1.3, 5)
print('face = ',len(faces))
print(faces)
#绘制人脸,为人脸画方框
for (x,y,w,h) in faces:
  cv2.rectangle(img, (x,y), (x + w, y + h), (255,0,0), 2)
  roi_face = gray[y:y+h,x:x+w]
  roi_color = img[y:y+h,x:x+w]
  eyes = eye_xml.detectMultiScale(roi_face)
  print('eyes = ',len(eyes))
  for (ex,ey,ew,eh) in eyes:
    cv2.rectangle(roi_color, (ex,ey),(ex + ew, ey + eh), (0,255,0), 2)
cv2.imshow('dat', img)
cv2.waitKey(0)
face = 1
[[133 82 94 94]]
eyes = 2

使用python-cv2实现Harr+Adaboost人脸识别的示例

使用python-cv2实现Harr+Adaboost人脸识别的示例

到此这篇关于使用python-cv2实现Harr+Adaboost人脸识别的示例的文章就介绍到这了,更多相关python cv2 人脸识别内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python冒泡排序算法的实现代码
Nov 21 Python
python实用代码片段收集贴
Jun 03 Python
Python简单调用MySQL存储过程并获得返回值的方法
Jul 20 Python
详解python eval函数的妙用
Nov 16 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python实现GUI学生信息管理系统
Apr 05 Python
Python用Try语句捕获异常的实例方法
Jun 26 Python
selenium+python配置chrome浏览器的选项的实现
Mar 18 Python
Django 5种类型Session使用方法解析
Apr 29 Python
Python爬虫小例子——爬取51job发布的工作职位
Jul 10 Python
python复合条件下的字典排序
Dec 18 Python
python基础之类属性和实例属性
Oct 24 Python
基于python实现坦克大战游戏
Oct 27 #Python
Django xadmin安装及使用详解
Oct 26 #Python
python实现网页录音效果
Oct 26 #Python
python实现录音功能(可随时停止录音)
Oct 26 #Python
Python用dilb提取照片上人脸的示例
Oct 26 #Python
python用tkinter实现一个gui的翻译工具
Oct 26 #Python
Docker如何部署Python项目的实现详解
Oct 26 #Python
You might like
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
PHP 多维数组的排序问题 根据二维数组中某个项排序
2011/11/09 PHP
php通过隐藏表单控件获取到前两个页面的url
2014/09/09 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
JavaScript创建命名空间(namespace)的最简实现
2007/12/11 Javascript
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
Mootools 1.2教程 定时器和哈希简介
2009/09/15 Javascript
当自定义数据属性为json格式字符串时jQuery的data api问题探讨
2013/02/18 Javascript
js实现3D图片逐张轮播幻灯片特效代码分享
2015/09/09 Javascript
jQuery UI Draggable + Sortable 结合使用(实例讲解)
2017/09/07 jQuery
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
Vue循环组件加validate多表单验证的实例
2018/09/18 Javascript
ES6基础之展开语法(Spread syntax)
2019/02/21 Javascript
vue.js使用v-model实现表单元素(input) 双向数据绑定功能示例
2019/03/08 Javascript
微信小程序基于canvas渐变实现的彩虹效果示例
2019/05/03 Javascript
微信小程序用户授权弹窗 拒绝时引导用户重新授权实现
2019/07/29 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
python reduce 函数使用详解
2017/12/05 Python
神经网络(BP)算法Python实现及应用
2018/04/16 Python
python三引号如何输入
2020/07/06 Python
实例教程 纯CSS3打造非常炫的加载动画效果
2014/11/05 HTML / CSS
芬兰设计商店美国:Finnish Design Shop US
2019/03/25 全球购物
青蓝工程实施方案
2014/03/27 职场文书
学生期末评语大全
2014/04/30 职场文书
庆七一活动总结
2014/08/27 职场文书
2014年党员自我评价材料
2014/09/22 职场文书
代领学位证书毕业证书委托书
2014/09/30 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
先进班组材料范文
2014/12/25 职场文书
夫妻吵架保证书
2015/05/08 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS
vue组件vue-esign实现电子签名
2022/04/21 Vue.js