在使用OpenCV进行人脸+眼睛+微笑检测之前,需要下载OpenCV提供好的级联分类器。
      下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades

代码:

import cv2# 导入级联分类器引擎
face_cascade = cv2.CascadeClassifier("opencv-master\data\haarcascades\haarcascade_frontalface_default.xml")
eye_cascade = cv2.CascadeClassifier("opencv-master\data\haarcascades\haarcascade_eye.xml")
smile_cascade = cv2.CascadeClassifier("opencv-master\data\haarcascades\haarcascade_smile.xml")# 调用摄像头
cap = cv2.VideoCapture(0)while (True):# 获取摄像头拍摄到的画面# cap.read()返回两个参数。ret:值为true或false,表示获取画面成功或失败, frame:获取到的画面是三维数组ret, frame = cap.read()# 用人脸级联分类器引擎进行人脸识别,返回的faces为人脸坐标列表,1.3是放大比例,2是重复次数(越大精确度越高)faces = face_cascade.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=2, minSize=(32, 32))img = framefor (x,y,w,h) in faces:# 画出人脸框,蓝色,画笔宽度为2# (x,y):左上角坐标  (x+w,y+h):右下角坐标img = cv2.rectangle(img, (x,y), (x+w,y+h), (255,0,0), 2)# 框选出人脸区域,在人脸区域而不是全图中进行人眼检测,节省计算资源face_area = img[y:y+h, x:x+w]# 用人眼级联分类器引擎在人脸区域进行人眼检测,返回的eyes为眼睛坐标列表[ex,ey,ew,eh]eyes = eye_cascade.detectMultiScale(face_area, scaleFactor=1.3, minNeighbors=10)for (ex,ey,ew,eh) in eyes:# 画出人眼眶,绿色,画笔宽度为1cv2.rectangle(face_area, (ex,ey), (ex+ew,ey+eh), (0,0,255),1)# 用微笑级联分类器引擎在人脸区域进行微笑检测smiles = smile_cascade.detectMultiScale(face_area, scaleFactor = 1.16, minNeighbors= 65, minSize=(25,25), flags = cv2.CASCADE_SCALE_IMAGE)for (ex,ey,ew,eh) in smiles:# 画出微笑框,红色(BGR色彩体系),画笔宽度为1cv2.rectangle(face_area, (ex,ey), (ex+ew,ey+eh), (0,0,255), 1)cv2.putText(img, "smile", (x,y-7), 3, 1.2, (0,0,225), 2, cv2.LINE_AA)# 实时展示效果画面cv2.imshow("my_window", img)# 每5毫秒监听一次键盘动作,按q键结束if cv2.waitKey(5) & 0xFF == ord("q"):break# 关闭摄像头
cap.release()
# 关闭所有窗口
cv2.destroyAllWindows()

局限性

● 仅为人脸检测,非人脸识别,即只能框出人脸位置,看不出人脸是谁。
● 仅能标出静态图片和视频帧上的人脸、眼睛和微笑,不能进行“活体识别”,即不能看出这张脸是真人还是手机上的照片,如果用于人脸打卡签到,人脸支付的话会带来潜在的安全风险
● 仅为普通的机器学习方法(基于haar特征的级联分类器),没有用到深度学习和深层神经网络。

【opencv】实时人脸+眼睛+微笑检测相关推荐

  1. 人脸识别微笑检测(基于卷积神经网络CNN)

    目录 一.卷积神经网络概述 二.图片预处理 三.划分数据集 四.CNN提取人脸识别笑脸和非笑脸 参考资料 一.卷积神经网络概述 卷积神经网络(Convolutional Neural Networks ...

  2. ShapeNet:超实时人脸特征点检测与形状拟合开源库

    点击我爱计算机视觉标星,更快获取CVML新技术 近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源 ...

  3. 实战6:基于OpenCV的人脸口罩识别检测详细教程

    背景介绍:     从19年疫情爆发到现在,佩戴口罩对大家来说已是常态.应运而生的就有了很多相关应用,如病毒发展预测.口罩佩戴检测以及戴口罩的人脸识别等. 今天介绍的人脸口罩佩戴检测系统主要使用Ope ...

  4. 基于opencv的人脸识别和检测

    人脸识别作为一个热门项目,目前有多种方法实现,利用python和opencv来实现,是一个比较简单的项目. 1.环境配置 windows平台 python版本:3.8.6 pycharm版本:2019 ...

  5. 卷积神经网络实现人脸识别微笑检测

    一:卷积神经网络介绍: 1. 定义: 卷积神经网络(Convolutional Neural Networks, CNN)是一类包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neu ...

  6. pythonopencv检测行人_【图像处理】使用OpenCV实现人脸和行人检测

    OpenCV全称是Open source Computer Vision Library(开放源代码计算机视觉库),是一个用于图像处理.分析.机器视觉方面的开源函数库,提供了很多图像处理的工具和可以直 ...

  7. dlib+vs2013+opencv实现人脸特征点检测

    刷知乎的时候发现dlib做特征点检测和人脸识别的效果都好于OpenCV,就想着动手玩一下.没想到也是遇坑重重. 首先,在官网 install命令和setup.py文件进行安装时报错,先是报错cmake ...

  8. python人脸口罩识别_基于Python+OpenCV的人脸口罩识别检测

    以下编程在Jupyter notbook平台上进行 一.OpenCV下载安装 二.人脸口罩数据集下载处理 (一)人脸口罩数据集下载 下载人脸口罩数据集的目的是利用OpenCV进行模型训练,这里采用口罩 ...

  9. python人脸识别opencv_Python与OpenCV实时人脸识别

    刚刚开始使用Python写OpenCV的东西,发现关于使用Python写OpenCV的还是比较少的,先整了一个人脸识别的最简单实例,与大家共享! 环境:Python 2.7.4.OpenCV 2.4. ...

最新文章

  1. Java 逆序存放4位数
  2. jupyter配置r
  3. Jquery操作Cookie,保存商品ID值至本地文件中
  4. Iptables防火墙配置
  5. 你永远都不知道你老公可以多幼稚......
  6. 【渝粤题库】广东开放大学 秘书理论与实务 形成性考核
  7. ofdm原理_OFDM技术简介
  8. 【Linux】Aria2 一键安装管理脚本 BT\PT一键安装包
  9. STM32工作笔记0047--认识DTU什么是4GDTU设备
  10. java游戏有个按技能是旋风_快打旋风加难技能增强版
  11. 添加Nginx ALG模块支持FTP协议ALG
  12. 技术人如何才能做好绩效管理提升团队绩效?
  13. 你要怎样知足,才会有点幸福
  14. 深度学习之文本摘要自动生成
  15. windows下,C++中调用命令行并且获取命令行的输出
  16. 转:https://mp.weixin.qq.com/s/O_D_FVRIIII1wqq4jGZqHA
  17. 实现统一社会信用代码校验
  18. 闭式系统蒸汽管径推荐速度_暖通设计常用参考数据1
  19. 省市区镇(可以选四级)联动点击自动展开下一级
  20. 通信工程相近专业及工程类专业说明

热门文章

  1. oracle+技术面试,Oracle面试问题 技术篇
  2. 12.Qt中字符串相关处理
  3. 5006.c++类中使用static变量bug
  4. 鼠标自动点击脚本_613个主流网站中发现点击劫持脚本
  5. 隐藏a标签seo_SEO网站优化,新手SEO常犯的五个错误!
  6. squid 的配置详解 (转)--SeriesIII
  7. TVP5158的多路复用技术
  8. python 字符串排序 偶数位交换_在Python中将字符串列表转换为整数排序列表
  9. 卸载centos7自带mysql_centos7完全卸载mysql
  10. 【LeetCode】剑指 Offer 20. 表示数值的字符串