OpenCV——根据Haar级联数据进行静态人脸检测
发布日期:2021-07-01 04:08:55
浏览次数:3
分类:技术文章
本文共 1270 字,大约阅读时间需要 4 分钟。
Haar级联
由于灯光、视角、视距、摄像头抖动以及数字噪声的变化,一个图像的细节可能会变得不稳定。但是人们在分类时却不会受这些物理细节方面差异的影响。因此,提取出图像的细节对产生稳定分类结果和跟踪结果很有用。即:从图像中提取特征。虽然任意像素都可能影响多个特征,但特征应该比像素数少得多。由此两个图像的相似程度可以通过它们对应特征的欧氏距离来度量。
类Haar特征是一种用于实现实时人脸跟踪的特征。每个类Haar特征都描述了相邻图像区域的对比模式。
对给定的图像,特征可能会因区域大小而有所不同,区域大小也可被称为窗口大小。但是,仅在尺度上不同的两幅图像也应该有相似的特征。因此,能为不同大小的窗口生成特征非常有用。这些特征集合称为级联。Haar级联具有尺度不变性,但是不具有旋转不变性。
Demo
下面这个示例程序的步骤为:
- 使用cv2.CascadeClassifier()函数加载Haar级联数据。
- 读取图像并转化为灰度。
- 使用detectMultiScale()函数获取人脸。
- 使用cv2.rectangle()函数在人脸上绘制矩形。
detectMultiScale()函数的两个重要参数:
- scaleFactor为每一个图像尺度中的尺度参数,默认值为1.1。scale_factor参数可以决定两个不同大小的窗口扫描之间有多大的跳跃,这个参数设置的大,则意味着计算会变快,但如果窗口错过了某个大小的人脸,则可能丢失物体。
- minNeighbors参数为每一个级联矩形应该保留的邻近个数,默认为3。minNeighbors控制着误检测,默认值为3表明至少有3次重叠检测,我们才认为人脸确实存在。
示例程序源代码:
# 静态图像中的人脸检测import cv2filename = 'vikings.jpg'def detect(filename): face_cascade = cv2.CascadeClassifier('cascades/haarcascade_frontalface_default.xml') img = cv2.imread(filename) gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for (x, y, w, h) in faces: img = cv2.rectangle(img, (x, y), (x + w, y + h), (0,255, 0), 2) cv2.namedWindow('Vikings Detected!!') cv2.imshow('Vikings Detected!!', img) cv2.imwrite('vikings_detected.jpg', img) cv2.waitKey(0)detect(filename)
运行结果:
附录
转载地址:https://mortal.blog.csdn.net/article/details/83277528 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过,博主的博客真漂亮。。
[***.116.15.85]2024年04月13日 01时05分19秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
代码整洁之道-编写 Pythonic 代码
2019-05-01
树莓派程序开机自启动
2019-05-01
连锁门店无线通信方案
2019-05-01
配置Lotus Domino集群视频详解
2019-05-01
Linux软件万花筒
2019-05-01
全球开源软件发展趋势分析
2019-05-01
Linux常用的安全工具
2019-05-01
python 多进程之进程池的操作
2019-05-01
flask整理之 flask程序中的debug模式
2019-05-01
比特币,父母这一辈能接受吗?
2019-05-01
SnapEx的新感觉,对新手很友好
2019-05-01
首个聚合器怎么产生的,并运用领域在什么
2019-05-01
区块链技术应用,最先医疗行业
2019-05-01
新币上市旧币会降价吗
2019-05-01
当博士进入币圈会怎么样
2019-05-01
《增长黑客》(肖恩·艾利斯)学习笔记——第二部分 实战
2019-05-01
python使用HTMLTestRunner查看运行函数
2019-05-01
linux下安装jenkins+git+python
2019-05-01
解决uiautomatorviewer中添加xpath的方法
2019-05-01