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

如何使用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更改输出视频上跟踪点和连接线的颜色了。请注意,以上代码示例中的颜色设置仅为示范,你可以根据需要自行调整颜色值。

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

相关·内容

使用OpenCVMediaPipe实现姿态识别!

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

70620

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

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

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

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

    2.4K20

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

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

    1.6K30

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

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

    1.6K20

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

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

    1.6K10

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

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

    2.2K41

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

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

    34130

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

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

    9.4K21

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

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

    2.8K20

    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。

    22210

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

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

    1K20

    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.7K40

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

    1.2 模型训练使用上述数据来微调预训练大模型,使其具备领域特定知识。可以使用Hugging FaceTransformers库进行微调。...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识别人像姿态

    12810

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

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

    2.3K40

    opencv+

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

    15610

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

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

    92610

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

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

    48120

    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显示相机拍摄视频

    3K10

    网页视频会议背景实时替换。Google Meet背后技术揭秘

    作为这个目标的一部分,我们最近发布了在 Google Meet 中模糊替换背景方法,它使用机器学习来更好地突出参与者,而不管他们周围环境如何。...,它还支持如设备实时手、虹膜身体姿态跟踪等机器学习解决方案。...为了实现这一MediaPipe web 管道利用了 WebAssembly,这是一种专门为网页浏览器设计低级二进制代码格式,可以提高计算量大任务速度。...然后通过 WebGL2 应用 mask 渲染视频输出,这时背景就模糊或替换了。 ?...渲染效果 一旦分割完成,我们使用 OpenGL 着色器进行视频处理效果渲染,其中挑战是在不引入 artifact 情况下高效渲染。

    1.7K31
    领券