新闻详情

新闻详情

首页 / 资讯中心 / 详情

MediaPipe手势识别:21点3D手部追踪怎么跑通

发布时间:2026/9/2 10:01:03来源:尧图网络
MediaPipe手势识别:21点3D手部追踪怎么跑通
MediaPipe手势识别21点3D手部追踪怎么跑通【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipeMediaPipe 是 Google 开源的端侧机器学习框架支持 Android、iOS、桌面、Web 和边缘设备。它的手部追踪能力可以从单帧图像推断出 21 个 3D 手部关键点在手机上就能实时运行。这篇文章讲清楚两件事怎么用几行 Python 代码跑通摄像头实时追踪以及 5 个配置参数各自的含义。️ 先搞懂管线两个模型各管一段手部追踪由两级模型串成。先说明为什么拆两段单手检测很困难手的尺寸跨度能到约 20 倍又没有脸那样的高对比特征。所以第一段用手掌检测模型palm detector在全图上找一个带朝向的方框只框住手掌这个刚性区域第二段用关键点模型在裁剪出的小图块上直接回归 21 个 3D 坐标。拆开的好处有两个。裁剪后输入是标准化的小图训练时基本不需要旋转、平移、缩放这类数据增强网络容量可以全部用来提升坐标精度。跟踪时优先用上一帧的关键点位置直接裁剪只有关键点模型失效了才重新调用检测模型定位大部分帧省掉了最贵的检测环节这是延迟低的关键。关键点布局固定为 21 个0 是腕部1-4 拇指5-8 食指9-12 中指13-16 无名指17-20 小指每个指节的关节和指尖依次排列。环境准备装包与克隆仓库Python 3.8 以上即可装一个包就能用pip install mediapipe想编译桌面 C 示例或看 Model Maker 的训练代码再克隆仓库git clone https://gitcode.com/GitHub_Trending/med/mediapipe仓库版本见 version.bzl当前是 1.0.1。注意两点mp.solutions.hands属于 Legacy Solutions旧版 API代码仓库按原样维护、不再新增功能新方案是 MediaPipe Tasks 的 Hand Landmarker本文示例以 Legacy API 为准它仍是 Python 端最省事的入口。三步跑通摄像头实时追踪下面这段代码打开摄像头、追踪双手、画出手部骨架Esc 键退出import cv2 import mediapipe as mp mp_drawing mp.solutions.drawing_utils # 官方绘制工具 mp_drawing_styles mp.solutions.drawing_styles cap cv2.VideoCapture(0) with mp.solutions.hands.Hands( model_complexity0, min_detection_confidence0.5, min_tracking_confidence0.5) as hands: while cap.isOpened(): ok, frame cap.read() if not ok: continue frame cv2.cvtColor(frame, cv2.COLOR_BGR2RGB) # 模型吃RGB result hands.process(frame) if result.multi_hand_landmarks: for lm in result.multi_hand_landmarks: mp_drawing.draw_landmarks(frame, lm, mp.solutions.hands.HAND_CONNECTIONS) cv2.imshow(hands, cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)) if cv2.waitKey(5) 0xFF 27: break cap.release()跑起来后能拿到的三组输出multi_hand_landmarksx、y 已按图像宽高归一化到 [0,1]z 是深度以手腕为原点值越小离镜头越近量级和 x 接近。multi_hand_world_landmarks真实世界 3D 坐标单位是米原点在手掌的几何中心附近。要量手指长短就用这组。multi_handedness左右手标签加置信分分数不小于 0.5。想要食指指尖的像素坐标取 8 号点乘宽高即可tip lm.landmark[mp.solutions.hands.HandLandmark.INDEX_FINGER_TIP] px, py tip.x * frame_width, tip.y * frame_height处理一批静态照片时加static_image_modeTrue并对每张图先cv2.flip(image, 1)水平翻转再送入左右手标签才正确。参数怎么调5 个配置项逐个看这 5 个参数就是全部配置默认值都偏保守按场景微调即可。static_image_mode默认false按视频流处理只在首帧和跟踪失败时跑检测。处理静态图片时设为true每帧都跑检测。max_num_hands默认 2。要追踪第三只手改这里跑 C 桌面示例时改的是图文件里ConstantSidePacketCalculator的选项。model_complexity0是轻量模型1是默认的高精度模型。准确率和延迟都随复杂度上升。摄像头实时场景从0开始处理照片或视频文件时用1。min_detection_confidence检测模型的阈值默认 0.5。调低后更容易检出手误检也会变多手在画面里很小的时候尤其要调低。min_tracking_confidence跟踪模型的阈值默认 0.5。低于它下一帧自动触发重新检测。调高更稳、更费时间静态图模式下无效。Android 端对应HandsOptions多了setRunOnGpu开关示例代码在 mediapipe/examples/android/solutions/hands。iOS 端类似看 mediapipe/examples/ios。桌面端用 Bazel 编译离线视频示例bazel build -c opt --define MEDIAPIPE_DISABLE_GPU1 \ //mediapipe/examples/desktop/hand_tracking:hand_tracking_tflite bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_tflite \ --calculator_graph_config_filemediapipe/graphs/hand_tracking/hand_tracking_desktop.pbtxt \ --input_side_packetsinput_video_pathin.mp4,output_video_pathout.mp4常见现象速查手丢了、闪烁、左右反了现象、原因、处理放在一张表里现象原因处理手检测不到检测阈值过高或手在画面里太小min_detection_confidence降到 0.3 左右或提高输入分辨率关键点闪烁、频繁重定位跟踪置信度要求高频繁回退到检测调低min_tracking_confidence左右手标签反了handedness 按镜像前摄自拍图判定送入前水平翻转图像或在后摄场景手动交换标签帧率不够模型复杂度或输入分辨率偏高model_complexity0摄像头分辨率降到 640x480 量级z 值看着没物理意义z 是以手腕为原点的相对深度需要物理尺寸改用multi_hand_world_landmarks官方文档里的一个数据供参考手掌检测模型的平均精度为 95.7%论文评估集口径换用普通交叉熵损失训练只有 86.22%可见 focal loss 对大尺度差异场景的作用。你自己的设备上能跑多少帧以实测为准。进阶用 Model Maker 训练自己的手势分类器关键点模型只输出 21 个坐标握拳还是剪刀手这种业务分类要自己训一个。仓库里自带训练代码 gesture_recognizer 和示例数据 raw_data。数据按类别分文件夹存放训练脚本会自动拆分数据集from mediapipe.model_maker.python.vision import gesture_recognizer data gesture_recognizer.Dataset.from_folder(dirnamemy_data) train_data, rest data.split(0.8) val_data, test_data rest.split(0.5) model gesture_recognizer.GestureRecognizer.create( train_datatrain_data, validation_dataval_data, optionsgesture_recognizer.GestureRecognizerOptions( model_optionsgesture_recognizer.GestureRecognizerModelOptions( dropout_rate0.05, layer_widths[300, 300]), hparamsgesture_recognizer.HParams(export_dir./out))) print(model.evaluate(test_data, batch_size2)) model.export_model() # 导出 tflite供推理端加载layer_widths定义隐藏层宽度每层之间接 BatchNorm、Dropout 和 ReLU默认是不加隐藏层。导出的 tflite 拿到推理端配合 Hand Landmarker 输出的关键点坐标做输入即可闭环。下一步做什么把示例里的model_complexity从 0 改成 1对比同一摄像头下的帧率差异感受两档模型的取舍。用 raw_data 里现成的三类样本跑一遍上面的训练脚本导出你的第一个手势分类模型。【免费下载链接】mediapipeCross-platform, customizable ML solutions for live and streaming media.项目地址: https://gitcode.com/GitHub_Trending/med/mediapipe创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

ZYNQ自定义AXI-FULL IP核设计:实现PS与PL双向高速数据交互 2026/9/2 10:40:11

ZYNQ自定义AXI-FULL IP核设计:实现PS与PL双向高速数据交互

简介:本资源是面向ZYNQ SoC开发者与FPGA高级工程师的实战型工程包,聚焦PS与PL间高速双向通信这一核心难点,提供基于AXI-FULL协议的自定义IP完整实现方案。资源包含1261个文件,涵盖277个C头文件、221个C源码、78个Verilog模块&…

阅读更多 →
RM3100地磁传感器I2C驱动开发:从寄存器配置到跨平台移植实战 2026/9/2 10:40:11

RM3100地磁传感器I2C驱动开发:从寄存器配置到跨平台移植实战

简介:本资源是一套面向嵌入式开发工程师与单片机学习者的RM3100地磁传感器IC接口驱动源码工程,解决磁场数据采集、校准与转换等核心开发难题,适用于智能导航、电子罗盘、姿态感知等典型应用场景。压缩包共358个文件,957KB&#xf…

阅读更多 →
STM32 LIN开发全链路:CubeMX配置、LDF解析与CANoe测试 2026/9/2 10:40:11

STM32 LIN开发全链路:CubeMX配置、LDF解析与CANoe测试

简介:本资源是一个基于STM32CubeMX配置的LIN总线通信测试工程模板,面向嵌入式初学者及汽车电子开发人员,解决LIN协议在STM32平台上的快速入门与工程搭建难题。压缩包共603个文件,涵盖336个C源码、104个头文件(.h&#…

阅读更多 →
Go性能优化实战:基于Profile-Guided Optimization的数据驱动编译优化 2026/9/2 10:40:11

Go性能优化实战:基于Profile-Guided Optimization的数据驱动编译优化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

阅读更多 →
TM1638与TM1629D共阳数码管驱动:从芯片差异到代码实现全解析 2026/9/2 10:40:11

TM1638与TM1629D共阳数码管驱动:从芯片差异到代码实现全解析

简介:本资源是一套面向嵌入式初学者与STM32开发者的TM1629D/TM1638共阳数码管驱动实战代码,聚焦解决STM32F030微控制器驱动多位共阳数码管、LED指示灯及按键扫描的核心问题,适用于电子钟、工业面板、教学实验等低功耗显示控制场景。压缩包仅含…

阅读更多 →
Next AI Draw.io 完整指南:3 步接入 AI 绘图 API,用自然语言快速生成智能图表 2026/9/2 10:37:10

Next AI Draw.io 完整指南:3 步接入 AI 绘图 API,用自然语言快速生成智能图表

Next AI Draw.io 完整指南:3 步接入 AI 绘图 API,用自然语言快速生成智能图表 【免费下载链接】next-ai-draw-io A next.js web application that integrates AI capabilities with draw.io diagrams. This app allows you to create, modify, and enhan…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞