使用opencv进行实时人脸 眼睛 微笑检测

代码:

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 = frame       for (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:       # 画出人眼眶,绿色,画笔宽度为1            cv2.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色彩体系),画笔宽度为1            cv2.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特征的级联分类器),没有用到深度学习和深层神经网络。

来源:https://www.icode9.com/content-4-805251.html

(0)

相关推荐

  • OpenCV入门教程(含人脸检测与常用图像处理示例等)

    在这篇文章中,我们将提供一些使用OpenCV的示例. 在OpenCV中混合图像 我们将提供一个逐步的示例,说明如何使用Python OpenCV混合图像.下面我们展示了目标图像和滤镜图像. 目标图像 ...

  • CV:利用cv2自带两步法haarcascade_frontalface_default.xml、_smile.xml实现对人脸、笑脸同时检测

    CV:利用cv2自带两步法haarcascade_frontalface_default.xml._smile.xml实现对人脸.笑脸同时检测 输出结果 实现代码 #CV:利用cv2.CascadeC ...

  • 使用OpenCV和TesseractOCR进行车牌检测

    重磅干货,第一时间送达 目录 1)目的和简介 2)前言 3)使用OpenCV和Haar级联进行车牌检测 4)使用TesseractOCR识别和提取车牌号 目的与简介 当我们谈论AI时,计算机视觉绝对是 ...

  • OpenCV:快速入门图片人脸识别

    现在正在做论文,数据处理过程中有一个变量是对用户头像进行数据编码.图片有上万张,如果人工编码,我得累死.大致头像数据样式如下: 才开始我想到图片是由像素颜色等组成的,分析图片的主色调,正好之前有一期公 ...

  • 给OpenCV初学者的礼物——OpenCV人脸检测入门教程

    作者:小月月牙 编辑:王萌(深度学习冲鸭公众号) 著作权归作者所有,本文仅作学术分享,若侵权,请联系后台删文处理 前言 OpenCV是一种经常被用到的计算机视觉库.然而,它的文档是只用英文发布的.这对 ...

  • C#使用OpenCV剪切图片中的人物头像

    前言 本文主要介绍如何使用OpenCV剪切图形中的人物头像. 准备工作 首先创建一个Wpf项目--OpenCV_Face_Wpf,这里版本使用Framework4.7.2. 然后使用Nuget搜索[E ...

  • 快速指南:使用OpenCV预处理神经网络中的面部图像的

    重磅干货,第一时间送达 本期将介绍脸部检测.眼睛检测:图像拉直.裁剪.调整大小.归一化等内容 目前,涉及面部分类的计算机视觉问题,通常都需要使用深度学习.因此在将图像输入神经网络之前,需要经过一个预处 ...

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

    近日,来自德国亚琛工业大学的研究人员开源了形状拟合库ShapeNet,其可以实现超实时的人脸特征点检测,也可以用在其他任何需要形状拟合的应用场景. 开源地址: https://github.com/j ...

  • PFLD:高精度实时人脸关键点检测算法

    重磅干货,第一时间送达 本文转自:AI算法与图像处理 这篇文章作者分别来自天津大学.武汉大学.腾讯AI实验室.美国天普大学.该算法对在高通ARM 845处理器可达140fps:另外模型大小较小,仅2. ...

  • 实战:使用 PyTorch 和 OpenCV 实现实时目标检测系统

    重磅干货,第一时间送达 一.引言 自动驾驶汽车可能仍然难以理解人类和垃圾桶之间的区别,但这并没有使最先进的物体检测模型在过去十年中取得的惊人进步相去甚远. 将其与 OpenCV 等库的图像处理能力相结 ...

  • 基于OpenCV的实时睡意检测系统

    重磅干货,第一时间送达 该系统可以检测一个人在开车时是否困倦,如果有的话,可以通过使用语音消息实时提醒他.该系统使用网络摄像头和电话摄像头进行实时数据传输. 01.研究目的 根据国家公路交通安全管理局 ...

  • OpenCV vs Dlib 人脸检测比较分析

    人脸检测是计算机视觉最典型的应用之一,早期OpenCV的logo就是Haar人脸检测的示意图. 很多人的第一个OpenCV学习目标就是跑通Haar级联人脸检测,Dlib库在业内开始流行很大程度上是因为 ...

  • 实时荧光定量PCR检测操作方法

    实时荧光定量PCR (Quantitative Real-time PCR)是一种在DNA扩增反应中,以荧光化学物质测每次聚合酶链式反应(PCR)循环后产物总量的方法.通过内参或者外参法对待测样品中的 ...

  • 李子清:眨眨眼睛微笑说,谢谢

    子请为啥要说对你一定有帮助呢? 废话,假如对你没帮助你为什么要看? 很多人就是输在了不自信上,有一次,一个第三方老师在德阳做活动,给老板们开会说:我争取把活动做成功!还没把会开完就把这个第三方开了,后 ...

  • 用OpenCV实现超轻量的NanoDet目标检测模型!

    作者丨nihate 审稿丨邓富城 编辑丨极市平台 极市导读 本文作者用OpenCV部署了超轻量目标检测模型NanoDet,并实现了C++和Python两个版本,并对此进行了解析,附完整代码. > ...

  • 如何利用Tensorflow和OpenCV构建实时对象识别程序?

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 引言 在本文中,将逐步介绍如何使用Tensorflow(TF)的新 ...