Opencv+Mediapipe->人脸特征点检测

这篇具有很好参考价值的文章主要介绍了Opencv+Mediapipe->人脸特征点检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、初识

在MediaPipe中进行人脸特征点检测,可以使用其提供的预训练模型和库。MediaPipe提供了一个名为"FaceMesh"的模型,用于实时检测人脸的468个特征点。

以下是使用MediaPipe进行人脸特征点检测的基本步骤:

  1. 安装MediaPipe:首先,你需要安装MediaPipe框架。

  2. 设置输入和输出:确定输入数据的来源,可以是摄像头、视频文件或图像。同时,设置输出来存储检测到的人脸特征点。

  3. 创建MediaPipe图:使用MediaPipe框架的API,创建一个图来加载"FaceMesh"模型并处理输入数据。

  4. 运行图:通过将输入数据传递给MediaPipe图的输入节点,并通过图的输出节点获取结果,运行图进行人脸特征点检测。

  5. 处理结果:从输出节点获取检测到的人脸特征点结果,并对其进行进一步的分析或应用程序集成。

MediaPipe的"FaceMesh"模型可以自动定位和识别出人脸图像中的关键特征点,如眼睛、眉毛、鼻子、嘴巴等。我们可以根据需要选择使用特定的特征点。

此外,MediaPipe还提供了其他功能和模型,例如手部检测、姿态估计等。

二、人脸特征点检测

(1)安装环境

pip install opencv-python
pip install mediapipe==0.8.3.1

(2)OpenCV加载视频

代码:

import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture("Video/6.mp4")  # 加载视频
pTime = 0

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

    # 帧数
    cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime

    cv2.putText(img, f'FPS:{int(fps)}', (20, 70), cv2.FONT_HERSHEY_PLAIN, 3, (0, 255, 0), 3)
    cv2.imshow("Image", img)
    cv2.waitKey(1)

效果:

mediapipe 人脸关键点,计算机视觉,opencv,计算机视觉,人工智能

附上免费的视频素材网址:Pexels

 (3)特征点检测

代码:

import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture("Video/6.mp4")  # 加载视频
pTime = 0

mpDraw = mp.solutions.drawing_utils  # drawing_utils模块:绘制特征点和边界框
mpFaceMesh = mp.solutions.face_mesh
faceMesh = mpFaceMesh.FaceMesh(max_num_faces=2)  # 初始化FaceMesh模块
drawSpec = mpDraw.DrawingSpec(thickness=1, circle_radius=2)  # 绘图样式

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
    results = faceMesh.process(imgRGB)  # process():检测人脸关键点
    # 获取关键点信息
    if results.multi_face_landmarks:
        for faceLms in results.multi_face_landmarks:
            mpDraw.draw_landmarks(img, faceLms, mpFaceMesh.FACE_CONNECTIONS, drawSpec, drawSpec)  # 绘制关键点
            for id, lm in enumerate(faceLms.landmark):
                # print(lm)
                ih, iw, ic = img.shape
                # 关键点坐标
                x, y = int(lm.x * iw), int(lm.y * ih)
                print(id, x, y)
    # 帧数
    cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime

    cv2.putText(img, f'FPS:{int(fps)}', (20, 70), cv2.FONT_HERSHEY_PLAIN, 3, (0, 255, 0), 3)
    cv2.imshow("Image", img)
    cv2.waitKey(1)

效果:

mediapipe 人脸关键点,计算机视觉,opencv,计算机视觉,人工智能

三、应用前景

人脸特征点检测在计算机视觉和人工智能领域具有广阔的应用前景。如下:

  1. 人脸识别和身份验证:人脸特征点检测是实现人脸识别和身份验证的基础。通过准确地检测人脸的关键特征点,如眼睛、鼻子、嘴巴等,可以建立人脸的唯一特征表示。这可以用于安全门禁系统、移动设备解锁、在线支付验证等方面。

  2. 表情分析和情感识别:人脸特征点检测可以帮助分析人脸的表情和情感状态。通过检测眼睛、眉毛、嘴角等关键特征点的位置和变化,可以判断人脸表情,如笑容、愤怒、悲伤等。这在社交媒体分析、市场调研、情感识别技术等方面有着广泛的应用。

  3. 人脸美化和虚拟化妆:人脸特征点检测可以用于人脸美化和虚拟化妆的应用。通过识别人脸的关键特征点,可以对面部特征进行分析和修改,如改变眼睛大小、调整嘴型等,实现人脸的美化效果。这在手机应用程序、相机软件和虚拟试妆等领域中非常受欢迎。

  4. 人脸变换和人脸融合:人脸特征点检测可以用于实现人脸变换和人脸融合的效果。通过检测多张人脸的关键特征点,可以将一个人的面部特征应用到另一个人的图像上,实现面部表情、年龄、性别等方面的转换和融合。这在娱乐应用、电影特效和人脸变换软件中有广泛的应用。

  5. 视频分析和人机交互:人脸特征点检测在视频分析和人机交互领域也具有重要作用。通过实时地检测和跟踪人脸的关键特征点,可以实现面部表情识别、手势识别、头部姿态跟踪等功能。这对于增强现实、虚拟现实、游戏开发和用户体验改进等方面都有很大的潜力。 

最后附上进阶篇《OpenCV人眼检测+眨眼计数》,持续迸发。 文章来源地址https://www.toymoban.com/news/detail-613257.html

到了这里,关于Opencv+Mediapipe->人脸特征点检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 基于mediapipe的人体33个关键点坐标(BlazePose)

    BlazePose是一种轻量化的卷积神级网络架构,适用于单人的关键点检测,在人体身上标注33个关键点,在单个中层手机CPU上的执行速度要比OpenPose在20核桌面CPU[5]上快25-75倍。 33个关键点如下图所示 导入库 导入模型 读入图像 关键点检测结果 此时会输出关键点检测结果,如下图所

    2024年02月12日
    浏览(38)
  • WinUI(WASDK)使用MediaPipe检查人体姿态关键点

    之前有用这个MediaPipe.NET .NET包装库搞了手势识别,丰富了稚晖君的ElectronBot机器人的第三方上位机软件的功能,MediaPipe作为谷歌开源的机器视觉库,功能很丰富了,于是就开始整活了,来体验了一把人体姿态关键点检测。 这个框架是微软最新的应用开发框架,我是用来开发程

    2024年02月15日
    浏览(52)
  • 基于opencv与mediapipe的面部跟踪(人脸检测追踪)python代码实现

            面部跟踪主要是从图像或视频中检测出人脸并输出人脸位置及其大小等有效信息,并在后续帧中继续捕获人脸的位置及其大小等信息,实时跟踪人脸。此技术可用于海关、机场、视频会议、拍照对焦、面部打码等业务场景。(与人脸识别是不同范畴)         本

    2024年01月17日
    浏览(73)
  • OpenCV实现人脸关键点检测

    目录 实现过程 1,代码解读 1.1 导入工具包 1.2导入所需图像,以及训练好的人脸预测模型 1.3 将 dlib 的关键点对象转换为 NumPy 数组,以便后续处理 1.4图像上可视化面部关键点 1.5# 读取输入数据,预处理 1.6进行人脸检测 1.7遍历检测到的框 1.8遍历每个面部 2,所有代码 3,结果

    2024年04月23日
    浏览(60)
  • OpenCV 入门教程:人脸检测和关键点定位

    人脸检测和关键点定位是计算机视觉中的重要任务,用于在图像或视频中自动检测人脸并定位人脸关键点,如眼睛、鼻子、嘴巴等。这项技术在人脸识别、表情分析、姿态估计等领

    2024年02月15日
    浏览(38)
  • opencv-人脸关键点定位

    2024年02月12日
    浏览(54)
  • 基于YOLO的3D人脸关键点检测方案

    YOLOLandmark解决了2D的人脸关键点检测问题,但3D任务仍然是个空白。我们能够在该领域继续突破呢? 我们最新的工作已经放到ArXiv: YOLOMT 3D人脸关键点数据调研 3D FLD的评估策略有哪些 当前领先的技术方法达到了什么水平? 我们的方法实现: 数据集转为YOLO格式 修改YOLO8Pose的入

    2024年02月12日
    浏览(40)
  • python+opencv+mediapipe实现手势检测上下左右(含完整代码)

    应用场景:ai换脸,根据左右手势选择图片,上下则表示选中。 版本号:python3.7(一开始是3.6,但是mediapipe最低就是3.7 因为网上检测的都不太准,所以我在判断的时候加入了如果70次里55次检测的是左才返回左,测试完之后效果还可以,蛮准的。判断方法想的头都要秃了。 实

    2024年04月11日
    浏览(49)
  • 人脸与关键点检测:YOLO5Face实战

    Github:https://github.com/deepcam-cn/yolov5-face 导读:居然花了一天时间把该项目复现,主要是折腾在数据集格式上,作者居然在train2yolo中居然把Widerface训练集(12000+张图)重新一张一张保存,不这么还出bug,原因是无法读到数据缓存;在评估阶段,val2yolo也没用上。搬运工,一个字,

    2024年02月06日
    浏览(53)
  • pytorch实现AI小设计-1:Resnet50人脸68关键点检测

            本项目是AI入门的应用项目,后续可以补充内容完善作为满足个人需要。通过构建自己的人脸数据集,此项目训练集为4580张图片,测试集为2308张图片,使用resnet50网络进行训练,最后进行效果展示。本项目也提供了量化内容,便于在硬件上部署。         研究A

    2024年01月18日
    浏览(45)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包