IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 利用OpenCV实现一个简单的实时人脸检测项目并显示FPS -> 正文阅读

[人工智能]利用OpenCV实现一个简单的实时人脸检测项目并显示FPS

活动地址:毕业季·进击的技术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"):
            break
        counter += 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

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:04:19  更:2022-06-29 19:06:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 1:36:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码