【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)

这篇具有很好参考价值的文章主要介绍了【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

上篇文章介绍了OpenCV进行照片人脸检测,今天学习的是OpenCV进行视频人脸检测,所有的参考博文、文献、视频、代码都会在文末附上链接或文件压缩包。

本文的目录如下:

一、Opencv 进行视频人脸检测

1、代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import cv2
 
# 人脸检测函数:
# useCamera参数:True表示使用摄像头,False表示读取当前目录下视频文件
def face_detection(useCamera=False):
    # 1.调用摄像头或者使用读取视频
    cv2.namedWindow("CaptureFace")
    if useCamera == True:
        cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)
    else:
        cap = cv2.VideoCapture('./video2.mp4')
 
    # 2.人脸识别器分类器
    classfier = cv2.CascadeClassifier('./opencv/sources/data/haarcascades/haarcascade_frontalface_alt2.xml')
    color = (0, 255, 0)
 
    while cap.isOpened():
        flag, frame = cap.read()
        frame = cv2.flip(frame, 1)  # 镜像操作
 
        if not flag:
            break
 
        # 3.灰度转换
        grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
 
        # 4.人脸检测,1.2和2分别为图片缩放比例和需要检测的有效点数
        facerects = classfier.detectMultiScale(grey, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))
        if len(facerects) > 0:  # 大于0则检测到人脸
            for faceRect in facerects:  # 单独框出每一张人脸
                x, y, w, h = faceRect
 
                # 5.画图
                cv2.rectangle(frame, (x - 10, y - 10), (x + w + 10, y + h + 10), color, 3)
        cv2.imshow("CaptureFace", frame)
        if cv2.waitKey(10) & 0xFF == ord('q'):
            break
 
    cap.release()
    cv2.destroyAllWindows()
 
face_detection()  # 使用摄像头
face_detection(useCamera=False)  # 使用视频

2、代码解释

detectMultiScale()函数

核心部分用到的同样是detectMultiScale(),具体参数解释见上篇博客OpenCV进行照片人脸检测。

cv2.rectangle()函数

这里主要记录一下cv2.rectangle()函数。
cv2.rectangle 这个函数的作用是在图像上绘制一个简单的矩形。
opencv 官网上给出的 cv2.rectangle 函数定义 如下:
cv2.rectangle(img, pt1, pt2, color[, thickness[, lineType[, shift]]]) → None
第一个参数 img 指定一张图片,在这张图片的基础上进行绘制;
第二、三个参数 pt1 和 pt2 分别代表矩形的左上角和右下角两个点,而且 x 坐标轴是水平方向的,y 坐标轴是垂直方向的。
第四个参数 color 参数一般用 RGB 值指定,表示矩形边框的颜色。RGB 对应的颜色可以使用 https://www.sioe.cn/yingyong/yanse-rgb-16/ 查看。opencv中读入图片数据是按照b,g,r的顺序,所以(0,0,255)代表红色,(0,255,0)代表绿色。可以看到下面的识别框为绿色。
第五个参数 thickness 参数表示矩形边框的厚度,即线条的粗细值,为正值时代表线条的粗细(以像素为单位),为负值时边框实心,如 CV_FILLED,则表示填充整个矩形。
第六个参数 lineType 表示线型。如果指定为 CV_AA,则是使用高斯滤波器画反锯齿线。
第七个参数 shift 参数表示点坐标中的小数位数。

3、效果分析

随着视频播放,人物位置的改变,随机从视频中截取了两张图片,都能够检测到人脸。
【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)
【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)

参考博文

基于opencv的人脸检测(图片、视频、摄像头)
opencv cv2.rectangle 参数含义
使用的视频: https://haokan.baidu.com/v?pd=wisenatural&vid=8158766618890451729

本文先写到这里,欢迎大家批评指正!文章来源地址https://www.toymoban.com/news/detail-402455.html

到了这里,关于【使用OpenCV进行视频人脸检测】------机器学习(附完整代码和数据集)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 机器视觉毕业设计 深度学习驾驶人脸疲劳检测系统 - python opencv

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月07日
    浏览(122)
  • 竞赛保研 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年01月21日
    浏览(86)
  • 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python 计算机竞赛

    🔥 优质竞赛项目系列,今天要分享的是 🚩 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分 工作量:3分 创新点:4分 🧿 更多资料, 项目分享: https:/

    2024年02月05日
    浏览(70)
  • Windows下使用QT+OpenCV完成人脸检测(获取摄像头的数据进行检测)

    Windows版本: Win10 X64 OpenCV版本: 2.4.13.6 QT版本: 5.12 OpenCV官网下载地址: ​ ​https://opencv.org​​​     目前官网OpenCV最新的版本是4.2.0 ,Windows版本的OpenCV在3.X版本后就不带X86的库,只有X64的库,如果需要X86的库,需要自己下载源码去重新编译。 由于我的QT软件在安装时没有安装

    2024年01月16日
    浏览(40)
  • 【大数据毕设选题】机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(62)
  • 大数据毕设分享 机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(97)
  • 人脸检测实战:使用opencv加载深度学习模型实现人脸检测(1)

    import argparse import cv2 ap = argparse.ArgumentParser() ap.add_argument(“-i”, “–image”, required=True, help=“path to input image”) ap.add_argument(“-p”, “–prototxt”, required=True, help=“path to Caffe ‘deploy’ prototxt file”) ap.add_argument(“-m”, “–model”, required=True, help=“path to Caffe pre-trained model”)

    2024年04月16日
    浏览(58)
  • 【计算机毕设选题】机器视觉 opencv 深度学习 驾驶人脸疲劳检测系统 -python

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月20日
    浏览(71)
  • 数字图像处理(实践篇)二十二 使用opencv进行人脸、眼睛、嘴的检测

    目录 1 xml文件 2 涉及的函数 3 实践 使用opencv进行人脸、眼睛、嘴的检测。 1 xml文件 方法① 下载  地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 点击haarcascade_frontalface_default.xml文件 对着Raw右键,选择“链接另存为”,选择代码所在的路径即可,就可以下载这个文件啦

    2024年02月03日
    浏览(48)
  • OpenCV学习笔记 使用OpenCV进行人脸交换

            首先说换脸这件事情,已经可以算是有一丢丢古老的技术了,基于OpenCV进行人脸交换的好处在于简单,坏处在于无法复刻表情。如果想要比较完美的可以去找deepfakes相关技术,如果想要对脸部进行一些自定义操作,那么了解OpenCV换脸涉及到的技术点还是有价值的。

    2024年03月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包