首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用Mediapipe Pose更改输出视频上跟踪点和连接线的颜色?

Mediapipe Pose是一个开源的人体姿势估计库,它可以通过分析视频流或图像来检测人体的关键点,并生成人体姿势的估计结果。要更改输出视频上跟踪点和连接线的颜色,可以按照以下步骤进行操作:

  1. 导入所需的库和模块:
代码语言:txt
复制
import mediapipe as mp
import cv2
  1. 创建一个Pose对象:
代码语言:txt
复制
mp_pose = mp.solutions.pose
pose = mp_pose.Pose()
  1. 读取视频文件或者通过摄像头捕获视频流:
代码语言:txt
复制
cap = cv2.VideoCapture('input_video.mp4')  # 或者使用摄像头:cap = cv2.VideoCapture(0)
  1. 循环读取视频帧并进行处理:
代码语言:txt
复制
while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    # 将图像转换为RGB格式
    frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    
    # 处理图像并获取姿势估计结果
    results = pose.process(frame_rgb)
    
    # 检查是否成功检测到姿势
    if results.pose_landmarks:
        # 绘制跟踪点和连接线
        mp_pose.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
                               landmark_drawing_spec=mp_drawing_styles.get_default_pose_landmarks_style(),
                               connection_drawing_spec=mp_drawing_styles.get_default_pose_connections_style())
    
    # 显示处理后的帧
    cv2.imshow('MediaPipe Pose', frame)
    
    # 按下'q'键退出循环
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
  1. 更改跟踪点和连接线的颜色: 要更改跟踪点和连接线的颜色,可以使用mp_drawing_styles模块中的DrawingSpec类来指定颜色和线宽。例如,要将跟踪点的颜色更改为红色,连接线的颜色更改为绿色,可以按照以下方式进行设置:
代码语言:txt
复制
# 创建自定义的DrawingSpec对象
landmark_drawing_spec = mp_drawing_styles.DrawingSpec(color=(255, 0, 0), thickness=2, circle_radius=2)
connection_drawing_spec = mp_drawing_styles.DrawingSpec(color=(0, 255, 0), thickness=2, circle_radius=1)

# 在绘制跟踪点和连接线时使用自定义的DrawingSpec对象
mp_pose.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
                       landmark_drawing_spec=landmark_drawing_spec,
                       connection_drawing_spec=connection_drawing_spec)
  1. 完整代码示例:
代码语言:txt
复制
import mediapipe as mp
import cv2

mp_pose = mp.solutions.pose
mp_drawing_styles = mp.solutions.drawing_styles

pose = mp_pose.Pose()

cap = cv2.VideoCapture('input_video.mp4')

while cap.isOpened():
    ret, frame = cap.read()
    if not ret:
        break
    
    frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
    
    results = pose.process(frame_rgb)
    
    if results.pose_landmarks:
        landmark_drawing_spec = mp_drawing_styles.DrawingSpec(color=(255, 0, 0), thickness=2, circle_radius=2)
        connection_drawing_spec = mp_drawing_styles.DrawingSpec(color=(0, 255, 0), thickness=2, circle_radius=1)
        
        mp_pose.draw_landmarks(frame, results.pose_landmarks, mp_pose.POSE_CONNECTIONS,
                               landmark_drawing_spec=landmark_drawing_spec,
                               connection_drawing_spec=connection_drawing_spec)
    
    cv2.imshow('MediaPipe Pose', frame)
    
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

这样,你就可以使用Mediapipe Pose更改输出视频上跟踪点和连接线的颜色了。请注意,以上代码示例中的颜色设置仅为示范,你可以根据需要自行调整颜色值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

实时检测17个人体关键点,谷歌SOTA姿态检测模型,手机端也能运行

BlazePose:MediaPipe BlazePose 可以检测人体 33 个关键点,除了 17 个 COCO 关键点之外,它还为脸部、手和脚提供了额外的关键点检测。...在跟踪人锻炼过程中的运动,可以实时、准确的检测人体关键点。...首先,它是一个高速位置跟踪器。 由于 MoveNet 是一个预训练模型,所以设置好以后即可使用。MoveNet 能够跟踪人体的 17 个关节点(如脚踝、膝盖、肩膀、手肘、手腕、耳朵、眼睛和鼻子等)。...传统方案(上)与 MoveNet(下)在高难度姿态检测上的对比结果,传统方案会跟丢关键点,而 MoveNet 不会。 如何使用?...每个姿态包含一个置信度得分和一组关键点。PoseNet 和 MoveNet 都返回 17 个关键点,Mediapipe BlazePose 返回 33 个关键点。

3.7K20

使用OpenCV和MediaPipe实现姿态识别!

它是一个基于图的数据处理管线,用于构建使用了多种形式的数据源,如视频、音频、传感器数据以及任何时间序列数据。 MediaPipe通过将各个感知模型抽象为模块并将其连接到可维护的图中来解决这些问题。...项目地址: https://github.com/google/mediapipe 今天小F就给大家介绍一下,如何使用MediaPipe实现姿态识别!...有三种,包含全身、脸部、手部的姿态估计。 / 02 / 全身姿态估计 首先是人体姿态估计,一次只能跟踪一个人。 并且会在人的身体上显示33个对应的坐标点。 具体代码如下。...其中代码里的is_image参数表示是否为图片或视频 而media_path参数则表示的是源文件的地址。 我们还可以看视频的检测效果,具体如下。 效果还不错。.../ 03 / 脸部识别跟踪 第二个是脸部,MediaPipe可以在脸部周围画一个网格来进行检测和跟踪。 具体代码如下。

1.2K20
  • 电脑端的手势姿态估计,隔空写字、绘图,有摄像头就行

    在 CV 领域,人体姿态估计(human pose estimation)利用目标检测模型和姿态估计模型来识别出人体各个关节的位置和网格,并已在动作识别、动画、游戏、运动捕捉系统中有着广泛的应用。...作者还优化了代码,使得该工具可以在大多数电脑上运行。电脑上的网络摄像头质量会对成像效果产生影响,调高屏幕亮度有助于更快地触发摄像头,并提升快门速度和帧率。...其中,手势检测使用了手部追踪解决方案 MediaPipe toolbox。 ‍...输入是一个 2D 点序列(实际上,该项目使用的是手指的速度和加速度,而不是位置,来保持预测的平移不变),输出是二元分类「向上(pencil up)」或「向下(pencil down)」。...总体来说,这个 pipeline 还需要进一步完善,一些改进的想法包括: 使用更大的数据集和更多的用户数据; 对手指信号进行处理和平滑,减少对相机质量的依赖,提高模型的泛化能力。

    54320

    这届网友用 Python 掌握了做标准俯卧撑的秘诀

    这个测试的困难不在于它对体力的要求有多高,而在于用来计算做俯卧撑和仰卧起坐次数的电子机器。 和大多数人一样,我的俯卧撑动作总是不达标(根据机器的意见)。...因此,我决定使用mediapipe和OpenCV创建一个程序,跟踪我们的俯卧撑动作,确保我们每一个俯卧撑动作都达标。...上面的代码来源于PoseModule.py,有以下几个功能: 激活mediapipe的姿势检测模块。 检测人体。 根据模型找到人体上不同肢体关节的位置。(肢体显示在上面的图片中)。...查找关节之间的角度(取决于你选择的关节)。对于我的俯卧撑程序,我选择找到肘部、肩部和臀部的角度,因为这些对俯卧撑动作的标准至关重要。 接下来是实际的俯卧撑计数的代码。...我们使用PoseModule并确定一个俯卧撑合格与否的标准。

    39530

    谷歌开源基于 ML 的手部跟踪算法:手机端实时检测,多个手势同时捕捉

    在这个方法展示过程中,我们通过 MediaPipe——一个开放源码的跨平台框架,来构建了处理视频和音频等类型的不同模式感知数据的框架。...该方法通过机器学习(ML)从单个帧中推断出一只手的 21 个 3D 关键点,从而提供了高保真的手部和手指跟踪。...图 1 通过 MediaPipe 在手机上进行实时 3D 手部感知。我们的解决方案是使用机器学习从一个视频帧计算手的 21 个三维关键点。图中深度通过颜色灰色程度表示。...为了克服这个问题,我们使用了一个混合训练模式,下面的图显示了一个高级模型训练图。 ? 图 4 手部跟踪网络的混合训练模式。裁剪的真实照片和渲染的合成图像用作输入,以预测 21 个 3D 关键点。...我们通过从当前帧中计算所得的手部关键点来推断后续视频帧中的手部位置实现手部跟踪,从而无需在每个帧上运行掌上检测器。

    2.3K30

    Up主已经开始鬼畜,腾讯开源「AniPortrait」让照片唱歌说话

    Audio2Lmk 的作用是提取 Landmark 序列,其能从音频输入捕获复杂的面部表情和嘴唇动作。Lmk2Video 是利用这种 Landmark 序列来生成时间上稳定一致的高质量人像视频。...另外,他们还使用了一个 ReferenceNet,其同样采用了 SD1.5 的结构,作用是提取参考图像的外观信息并将其整合进骨干网络中。这一策略设计可确保人脸 ID 在整个输出视频中保持一致。...实验 实现细节 Audio2Lmk 阶段使用的骨干网络是 wav2vec2.0。用于提取 3D 网格和 6D 姿势的工具是 MediaPipe。...为了确保 MediaPipe 提取出的 3D 网格的稳定性,在记录期间,表演者头部位置稳定并且面向相机。训练 Audio2Pose 使用的是 HDTF。...为了训练模型,这里使用了两个大规模高质量人脸视频数据集:VFHQ 和 CelebV-HQ。所有数据都经由 MediaPipe 来提取 2D 人脸 Landmark。

    35310

    Google开源框架AutoFlip 实现视频智能剪裁

    它可以根据指定的宽高比,对影片内容进行分析,制定最佳裁剪策略,并自动输出相同时长的新视频。 其中,MediaPipe是一款由Google Research 开发并开源的多媒体机器学习模型应用框架。...AutoFlip演示依赖于MediaPipe的对象检测和面部跟踪子图,它们都是Android和iOS上MediaPipe的实时应用程序。因此,AutoFlip在移动平台上也应具有类似的性能。...人脸和物体检测模型通过MediaPipe整合到AutoFlip中,这是在CPU上使用了TensorFlow Lite 。...这个架构使得AutoFlip的可扩展性更大,开发者们也因此可以便捷地为不同的使用场景和视频内容添加新的检测算法。...3)重新取景 在确定每一帧上感兴趣的目标物之后,就可以做出如何重新剪裁视频内容的逻辑决策了。AutoFlip会根据物体在镜头中的行为,自动选择静止、平移或追踪等最佳取景策略。

    1.7K30

    你们还在做2D的物体检测吗?谷歌已经开始玩转 3D 了

    该工具使用分屏视图显示 2D 视频帧,其中左侧放置3D边框,右侧显示3D点云、摄像机位置和检测到的平面视图。标注者以3D 视图来绘制3D 边框,并通过查看其在2D 视频帧中的投影来检验其位置。...右图:使用检测到的平面和点云在3D 世界中标注3D边框。左图:标注的3D 边框的投影覆盖在视频帧的顶部,从而使得验证标注变得更简单。...4 在MediaPipe上检测和跟踪 让模型实际应用时,由于针对的是移动设备捕获的每一帧,而这些帧的3D边界框可能是模糊的,所以模型可能会被干扰。...为了解决这一问题,谷歌借鉴了其之前2D目标检测的方案,也即使用了之前的检测+跟踪框架。 此方案能够减少模型在每一帧上运行网络的需要,允许重复使用,同时保持pipeline移动设备上的实时更新。...另外,所采用的预测方法是实时运动跟踪和运动静止跟踪的结合,当做出新预测时候,会将检测结果和跟踪结果合并。

    1.1K20

    谷歌开发手部识别系统,适配跨平台框架MediaPipe,手机可用!

    通过MediaPipe在手机上实现实时3D手部捕捉 只要把你的手往镜头前一伸,该系统就可以通过使用机器学习(ML)从单个视频帧推断出手部的21个骨骼关键点(每根手指4个,手掌1个)的位置,从而得到高保真的手掌和手指运动追踪...上图:传给跟踪网络的带标注的校准手势图 下图:带标注的渲染合成手部图像 然而,纯粹的合成数据很难泛化应用到新的数据集上。为了解决这个问题,我们使用混合训练模式。下图显示了大概的模型训练流程。...MediaPipe实现 谷歌的手部跟踪MediaPipe模型图如下所示。该图由两个子图组成,一个用于手部检测,一个用于手部骨骼关键点(标志点)计算。...目前在GitHub上星标已经达到了2k+。 通过从当前帧中计算手部关键点推断后续视频帧中的手部位置来实现这一点,从而不必在每个帧上都运行手掌检测器。...最后,谷歌在MediaPipe框架中将上述手部跟踪和手势识别管道开源,并附带相关的端到端使用场景和源代码。

    3.2K20

    使用 OpenCV+CVzone 进行实时背景替换

    介绍 OpenCV是一个开源计算机视觉库,可提供播放不同图像和视频流的权限,还有助于端到端项目,如对象检测、人脸检测、对象跟踪等。...CVzone是一个计算机视觉包,可以让我们轻松运行像人脸检测、手部跟踪、姿势估计等,以及图像处理和其他 AI 功能。它的核心是使用 OpenCV 和 MediaPipe 库。请点击此处获取更多信息。...由于许多原因,视频的背景需要修改,如背景中有很多其他中断或背景颜色不适合该人。因此,我们使用实时背景替换技术来替换背景并添加替换为所需内容。...然后我们使用cvzone.stackImages堆叠图像*,* 这里我们将获得背景替换图像或帧的输出。然后使用一个简单的 if 语句,分配键来更改背景。...例如,如果我们有 10 张背景图像,根据上面的代码,我们可以使用键“a”或键“d”来更改帧的背景。 整个代码如下。

    2.5K40

    黑马博学谷 AI大模型训练营一期

    1.2 模型训练使用上述数据来微调预训练的大模型,使其具备领域特定知识。可以使用Hugging Face的Transformers库进行微调。...2.2 模型训练和微调根据需求,可以使用特定风格或内容的图像数据进行微调。DALL-E模型的微调需要高性能计算资源,可以利用云平台如AWS或Google Cloud。...虚拟试衣4.1 人体姿态识别使用计算机视觉技术识别人像姿态。可以使用MediaPipe或OpenPose。4.2 服装合成将服装图像合成到用户照片上,生成逼真的试穿效果。...4.3 应用开发开发一个用户友好的界面,使用户可以上传照片和选择服装进行虚拟试穿。...import cv2import mediapipe as mp# 读取用户上传的照片user_image = cv2.imread('user_photo.jpg')# 使用MediaPipe识别人像姿态

    36310

    opencv+

    一、下载模块/库 pip install +扩展库;opencv-python和mediapipe Mediapipe是Google开发的一种跨平台框架,用于构建实时音频、视频和多媒体数据处理应用程序。...使用Mediapipe,开发者可以利用其强大的计算图模型和各种预构建的模块,快速构建和部署音视频处理应用程序。通过配置和连接模块,开发者可以构建自定义数据处理流程,实现各种功能。...Mediapipe还提供了丰富的工具和库,用于模型训练、性能优化和应用程序调试等方面的支持。 总之,Mediapipe是一个强大的多媒体处理框架,可以用于构建实时音视频处理应用程序和机器学习模型。...它的跨平台特性使得开发者可以轻松地将应用程序部署到不同的设备和操作系统上。...所以我们要做的就是两步骤,那么就让我们依赖Mediapipe来实现手掌检测 的手部跟踪吧。

    22410

    超越YOLOv5还不够!这个目标检测开源项目又上新了

    下面,让我们来详细看看PaddleDetection最近上新的这两样“宝贝”:关键点检测和多目标跟踪,有什么厉害之处!...也就是先使用检测算法得出图中每一个人体所在位置,对单个人的区域进行截图,再使用top-down关键点算法对每个单人截图进行单人关键点位置检测,最后再根据截图位置映射回原图。...多目标跟踪 多目标跟踪(Multiple Object Tracking,MOT)指的是在视频序列中同时检测多个目标的轨迹。...Embedding则将检出的目标分配和更新到已有的对应轨迹上(即ReID重识别任务)。根据这两部分实现的顺序,主流的多目标跟踪算法可以划分为SDE系列和JDE系列2类。...例如我们使用多目标跟踪算法FairMot获取行人位置及id信息,结合关键点检测HRNet算法检测行人关键点得到最终输出结果,得到如下图所示效果: ?

    2.2K41

    Google将跨平台AI管道框架MediaPipe引入网络

    大约一年前,Google开放了MediaPipe的源代码,MediaPipe是一个框架,用于建立跨平台的AI管道,该管道包括快速推理和媒体处理(如视频解码)。...基本上,这是一种快速的方法,可以通过流行的机器学习框架(例如Google自己的TensorFlow和TensorFlow Lite)以模块化的方式执行对象检测、面部检测、手部跟踪、多手跟踪、头发分割以及其他此类任务...API促进了JavaScript与C ++之间的通信,从而允许用户直接使用JavaScript更改MediaPipe图形并与之交互。...MediaPipe团队成员Michael Hays和Tyler Mullen在博客中解释说:“由于一切都直接在浏览器中运行,因此视频永远不会离开用户的计算机,并且每次迭代都可以在实时网络摄像头流(以及很快的任意视频...用户可以使用鼠标和滚轮平移并放大图形表示形式,并且可视化效果实时反映在编辑器中所做的更改。 Hays和Mullen指出,当前基于Web的MediaPipe支持仅限于Google提供的演示图。

    1.7K20

    独家 | AutoFlip:智能化视频剪裁的开源框架(附链接)

    标签:算法框架 前言 为电视和显示器拍摄制作的视频常常使用横向16:9或者4:3比例。然而越来越多的用户开始在移动设备上制作和观看视频,传统的画面比例并不能完美兼容。...把一个视频文件(业余级拍摄或专业级剪辑)和一个目标比例(横向、正方形、人像等等)作为输入,AutoFlip会分析视频内容,逐步得出最佳的追踪和剪裁策略,然后输出一个同样时长但剪裁至目标画面比例的视频文件...画面(场景)探测 一个场景或画面是一个无删减(或跳跃)的连续视频。为了探测出场景变化,AutoFlip计算每帧的颜色直方图并和之前的帧做对比。...面部和目标检测模型通过MediaPipe整合到了AutoFlip当中,这一功能可以通过在CPU上运行TensorFlow Lite实现。...下图:两个面部探测方块(“核心面部”和“全面部”)。在较窄的人像比例剪裁案例中,经常只有核心面部能够显示(全面部尺寸太大)。 剪裁 在确定了每帧的目标后,就可以决定如何把内容剪裁到新的画面中。

    1.7K10

    MediaPipe实现手指关键点检测及追踪,人脸识别及追踪

    除了 OpenCV,我们将使用 MediaPipe 库。 1.MediaPipe简介 MediaPipe是一个主要用于构建音频、视频或任何时间序列数据的框架。...多手追踪 - 人脸检测 - 对象检测和跟踪 - Objection:3D 对象检测和跟踪 - AutoFlip:自动视频裁剪管道等。...MediaPipe 管道使用多个模型,例如,从完整图像返回定向手边界框的手掌检测模型。裁剪后的图像区域被馈送到由手掌检测器定义的手部标志模型,并返回高保真 3D 手部关键点。...实现手掌拖拽屏幕中的方块(转载于恩培大佬) 效果如示: 源码如下: """ 功能:手势虚拟拖拽 1、使用OpenCV读取摄像头视频流; 2、识别手掌关键点像素坐标; 3、根据食指和中指指尖的坐标,...实现手势控制音量大小(转载于恩培大佬) 效果如示: 源码如下: """ 功能:手势操作电脑音量 1、使用OpenCV读取摄像头视频流; 2、识别手掌关键点像素坐标; 3、根据拇指和食指指尖的坐标,利用勾股定理计算距离

    2.2K20

    使用MediaPipe进行设备上的实时手部跟踪

    解决方案使用机器学习从视频帧计算手的21个3D关键点。深度以灰度显示。...用于手部跟踪的MediaPipe图如下所示。该图由两个子图组成 - 一个用于手检测,一个用于手关键点(即标志性)计算。...通过从当前帧中的计算的手部关键点推断后续视频帧中的手部位置来实现这一点,从而消除了在每个帧上运行手掌检测器的需要。...手部界标模型的输出(REJECT_HAND_FLAG)控制何时触发手部检测模型。这种行为是通过MediaPipe强大的同步构建块实现的,从而实现ML管道的高性能和最佳吞吐量。...为此开源在上面的手部跟踪和手势识别管道MediaPipe框架,伴随着相关的终端到终端的使用场景和源代码,在这里。这为研究人员和开发人员提供了完整的堆栈,可以根据模型对新想法进行实验和原型设计。

    10K21

    Mediapipe框架在Android上的使用

    MediaPipe是用于构建跨平台多模态应用ML管道的框架,其包括快速ML推理,经典计算机视觉和媒体内容处理(如视频解码)。...编译文件BUILD中内容如下,name是生成后aar的名字,calculators为使用的模型和计算单元,其他的模型和支持计算单元可以查看 mediapipe/graphs/目录下的内容,在这个目录都是...本教程我们使用mobile_calculators,这个只检测一个手的关键点,如何想要检查多个收修改成这个计算单元multi_hand_mobile_calculators。...这次我们需要寻找的是 mediapipe_binary_graph中的 name,根据我们所要使用的模型,同样这个也是只检测单个手的关键点,多个手的使用multi_hand_tracking_mobile_gpu_binary_graph...以下为activity_main.xml代码,结构很简单,就一个FrameLayout包裹TextView,通常如何相机不正常才会显示TextView,一般情况下都会在FrameLayout显示相机拍摄的视频

    3.3K10

    TensorFlow.js 在您的 Web 浏览器中实时进行 3D 姿势检测

    为了更好地了解人体的视频和图像,姿势检测是关键的一步。目前许多人已经在现有模型的支持下尝试了 2D 姿态估计。...TensorFlow.js 社区对 3D 姿态估计越来越感兴趣,这为健身、医疗和运动捕捉等应用开辟了新的设计机会。一个很好的例子是使用 3D 动作在浏览器上驱动角色动画 。...社区演示使用由 MediaPipe 和 TensorFlow.js 提供支持的多个模型(即 FaceMesh、BlazePose、Hand Pose)。...所提出的方法使用称为 GHUM 的 3D 统计人体模型来获取姿势地面实况。在此过程中,研究人员拟合了 GHUM 模型并使用度量空间中的真实关键点坐标对其进行了扩展。...由于 3D-2D 投影的性质,3D 中的多个点可以投影到同一个 2d 点上(即具有 X 和 Y 但不同的 Z)。因此拟合结果可能不明确,导致给定输入图像或视频帧的几个真实的身体姿势。

    1.8K40

    Google Meet推出了浏览器内机器学习解决方案,用于模糊和替换实时视频中的背景

    开发这些功能的主要动机之一是在几乎所有现代设备上提供实时的浏览器内性能。...它通过结合高效的设备上ML模型, 基于WebGL的渲染和通过XNNPACK 和 TFLite的基于Web的ML推理来 实现此目的。...它有助于构建应用了ML管道的多模式(例如,视频,音频,任何时间序列数据),跨平台(即Android,iOS,Web,边缘设备)。它还为机器学习实时身体部位和姿势跟踪等机器学习解决方案提供支持。...然后用于通过WebGL2产生背景模糊或替换的输出视频 。 图:WebML管道:所有繁重的计算操作都在C ++ / OpenGL中实现,并通过WebAssembly在浏览器中运行。...所开发的功能即使在低功耗设备上也能以低功耗实现实时性能。

    99310
    领券