活动地址:毕业季·进击的技术er

在本期中,我将利用OpenCV实现一个简单的人脸识别,其中我们用到的权重文件,大家自行下载

效果:

我们本期主要用的是cv2.detectMultiScale()这个函数,cv2.detectMultiScale是Opencv中做人脸检测的时候的一个级联分类器。

Haar特征

Haar特征是一种反映图像的灰度变化,像素分模块求差值的一种特征。它分为三类:边缘特征、线性特征、中心特征和对角线特征。用黑白两种矩形框组合成特征模板,在特征模板内用 黑色矩形像素和 减去 白色矩形像素和来表示这个模版的特征值。
例如:脸部的一些特征能由矩形模块差值特征简单的描述,如:眼睛要比脸颊颜色要深,鼻梁两侧比鼻梁颜色要深,嘴巴比周围颜色要深等。但矩形特征只对一些简单的图形结构,如边缘、线段较敏感,所以只能描述在特定方向(水平、垂直、对角)上有明显像素模块梯度变化的图像结构。

如果对Haar特征感兴趣的同学,可以阅读此文章。

函数介绍

detectMultiScale(image,scaleFactor,minNeighbors,minSize,maxSize)

参数

  • image:表示的是要检测的输入图像
  • scaleFactor:为每一个图像尺度中的尺度参数,默认值为1.1。scaleFactor参数可以决定两个不同大小的窗口扫描之间有多大的跳跃,这个参数设置的大,则意味着计算会变快,但如果窗口错过了某个大小的人脸,则可能丢失物体。
  • minNeighbors:参数为每一个级联矩形应该保留的邻近个数,默认为3。minNeighbors控制着误检测,默认值为3表明至少有3次重叠检测,才认为人脸确实存。
  • minSize:为目标的最小尺寸,低于minSize不会被检测出来
  • maxSize:为目标的最大尺寸,高于maxSize不会检测出来

整体代码:

import time
import cv2# 获取摄像头cap = cv2.VideoCapture(1) # 返回当前时间戳start_time = time.time()  counter = 0# 设置分类器classfier = cv2.CascadeClassifier("D:\\openCV\\haarcascade_frontalface_alt2.xml")while cap.isOpened():ret, frame = cap.read()# 将图像转换为灰度图像gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#  检测视频中所有的人脸faceRects = classfier.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))# 检测到人脸进行画框if len(faceRects) > 0:  for faceRect in faceRects:  x, y, w, h = faceRect# 对每一个检测到的人脸区域绘制检测方框cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), (188,143,143), 2)  # 按q结束显示if cv2.waitKey(1) & 0xff == ord("q"):breakcounter += 1#计算帧数#实时显示帧数if (time.time() - start_time) != 0:cv2.putText(frame, "FPS {0}".format(float('%.1f' % (counter / (time.time() - start_time)))), (100, 50),cv2.FONT_HERSHEY_SIMPLEX, 2, (30,144,255),3)          # 显示图像cv2.imshow('frame', frame)# 释放资源cap.release()cv2.destroyAllWindows()由于篇幅其中大多参数以及相关的一些代码,还需大家仔细揣摩。欢迎大家交流

效果如下:

活动地址:毕业季·进击的技术er

利用OpenCV实现一个简单的实时人脸检测项目并显示FPS相关推荐

  1. python摄像头跟随人脸_Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

  2. python恶搞代码打开对方摄像头_Python 3 利用 Dlib 实现摄像头实时人脸检测和平铺显示...

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

  3. python实现面部特效_Python 3 利用 Dlib 实现摄像头实时人脸检测和平铺显示

    1. 引言 在某些场景下,我们不仅需要进行实时人脸检测追踪,还要进行再加工:这里进行摄像头实时人脸检测,并对于实时检测的人脸进行初步提取: 单个/多个人脸检测,并依次在摄像头窗口,实时平铺显示检测到的 ...

  4. 利用EasyDL制作一个简单的图片识别小项目

    主要是利用EasyDL制作一个简单的傻瓜式猫狗图片识别,利用EasyDL,只需要几步简单的点击即可 *主要的步骤: 1.准备数据 2.训练模型 3.部署 4.H5 * 1.首先创建两个文件夹cat和d ...

  5. matlab摄像头实时人脸检测,一个关于摄像头实时人脸检测的程序

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我是matlab新手,最近写个用摄像头进行人脸识别的程序,遇到两个问题: 1)我是用的CascadeObjectDetector对象识别的人脸,但是程序有 ...

  6. CPU实时人脸检测,各种朝向、侧脸都检出来

    向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程   公众号:datayx 鉴于一般的 CNN 难以处理旋转的图像,中国科学院计算技术研究所的研究者采用一种渐进的方法校准 ...

  7. java调python 监控_利用Python实现一个简单的系统监控图表

    作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...

  8. 计算机视觉OpenCv学习系列:第十部分、实时人脸检测

    第十部分.实时人脸检测 第一节.实时人脸检测 1.OpenCV人脸检测支持演化 2.OpenCV DNN检测函数 3.代码练习与测试 学习参考 第一节.实时人脸检测 1.OpenCV人脸检测支持演化 ...

  9. Python利用PyQt5制作一个获取网络实时数据NBA数据播报GUI

    现在NBA联赛也进行到半决赛了,我们怎么样才能以更快的方法获取NBA的数据呢?这里我们就自己来做一个数据播报的程序 文章目录 制作NBA数据爬虫 捋顺思路 编写代码 NBAReporter.py NB ...

  10. OpenCV(C++版本)基础相关(7):直方图均衡化、图像卷积操作、高斯模糊、高斯双边模糊、实时人脸检测案例

    文章目录 二十六.直方图均衡化 26.1 quickopencv.h 26.2 QuickDemo.cpp 26.3 test.cpp 二十七.图像卷积操作 27.1 quickopencv.h 27 ...

最新文章

  1. [PR-3]ArUco EKF SLAM 扩展卡尔曼SLAM
  2. 用python写一个简单的推荐系统
  3. Socket通信原理探讨(C++为例)
  4. 什么水平能做java中级工程师,挑战大厂重燃激情!
  5. android ui篇
  6. python建立回归模型_简单线性回归的Python建模方法
  7. 投影元素直接隔离_摸着夜色上露台开投影,是巴塞罗那设计师的浪漫
  8. getimg()在java中,java – 使用getClass()加载资源getResource()
  9. Spring 环境搭建与IOC HelloWorld
  10. python错误和调试
  11. 缓存jQuery对象来提高性能
  12. react里 MD5加密
  13. java 文件上传终止_java文件上传
  14. C#之Chart控件使用
  15. 大学生信息检索概论练习题
  16. 练遇24H智能健身房获巨额融资,突破传统局限,打造新健身时代
  17. Flex弹性盒子的项目属性
  18. wallpaper代码_70 行 python 代码实现壁纸批量下载!
  19. python使用logging打印信息到日志文件中
  20. c++未定义的引用问题总结

热门文章

  1. 微软将推出Win12 没想到吧?
  2. 大学网课查题接口平台
  3. docx文档文字怎么加边框_word给正文加边框 word怎样给一段文字加上边框
  4. php 汇率接口,PHP 对交易对汇率 转换
  5. Linux的oracle账户解锁,如何解锁Oracle数据库中账号
  6. R语言select()filter()subset()筛选函数
  7. svn里 is already locked
  8. python 爬取订单_【python实战】【持续更新】爬取某发卡网订单
  9. win10怎么关机 win10关机快捷键大全
  10. 电阻元件、电感元件、电容元件