手把手教你用MediaPipe Hands镜像实现点赞手势识别

手把手教你用MediaPipe Hands镜像实现点赞手势识别

1. 引言:从“比个赞”到智能交互

在人机交互日益智能化的今天,手势识别正成为连接人类意图与数字世界的桥梁。无论是AR/VR、智能家居控制,还是直播互动、远程会议,一个简单的“点赞”动作都可能触发关键指令。

本文将带你使用名为AI 手势识别与追踪(彩虹骨骼版)的预置镜像,基于 Google MediaPipe Hands 模型,手把手实现“点赞”手势的精准识别。该镜像已集成高精度手部关键点检测、彩虹骨骼可视化和WebUI界面,支持CPU极速推理,无需联网、零依赖报错风险。

我们将聚焦于: - 如何部署并运行该镜像 - 手部21个3D关键点的结构解析 - “点赞”手势的几何特征建模 - 实现可复用的点赞判断逻辑代码

学完本教程后,你将掌握一套完整的本地化手势识别落地流程,并能扩展至其他复杂手势识别任务。


2. 镜像环境准备与快速启动

2.1 镜像核心能力回顾

特性说明
模型基础Google MediaPipe Hands(单手/双手模式)
关键点数量21个3D坐标点(x, y, z归一化)
可视化特色彩虹骨骼染色:黄-紫-青-绿-红对应五指
推理性能CPU优化版本,单帧处理<10ms
运行方式内置WebUI,支持图片上传与结果展示

💡优势总结:完全离线、开箱即用、稳定性强、适合嵌入式或边缘设备部署。

2.2 启动步骤详解

  1. 在 CSDN 星图平台选择镜像“AI 手势识别与追踪”并创建实例。
  2. 实例启动成功后,点击平台提供的HTTP访问按钮,自动跳转至 WebUI 页面。
  3. 点击页面中的“上传图像”功能,建议测试以下几种典型手势:
  4. ✅ 点赞(Thumb Up)
  5. ✌️ 剪刀手(Victory)
  6. 🤟 OK手势
  7. 🤚 张开手掌

系统会自动返回带有白点关节标记 + 彩色骨骼连线的结果图,如下所示:

此时,我们已经完成了第一阶段——可视化验证模型有效性

但要真正“理解”用户是否在“点赞”,还需要进入下一阶段:编程级关键点分析与逻辑建模


3. 核心原理:MediaPipe Hands 的21个关键点结构

3.1 手部关键点编号定义

MediaPipe 定义了统一的手部拓扑结构,共21个关键点,按手指分组排列:

手指关键点索引对应部位
腕部0Wrist
拇指1–4MCP → PIP → DIP → Tip
食指5–8MCP → PIP → DIP → Tip
中指9–12MCP → PIP → DIP → Tip
无名指13–16MCP → PIP → DIP → Tip
小指17–20MCP → PIP → DIP → Tip

📌 Tip:Tip 表示指尖,MCP 是掌指关节(Knuckle),PIP 和 DIP 分别是近端和远端指间关节。

这些点以归一化的(x, y, z)坐标表示,其中z表示深度(相对手腕),可用于判断手指前后关系。

3.2 “点赞”手势的几何特征分析

要识别“点赞”,我们需要判断两个核心条件:

  1. 大拇指伸展向上
  2. 其余四指收拢或握拳

具体可通过以下指标量化:

  • ✅ 大拇指各关节连成直线,且指尖(点4)显著高于掌心(点0)
  • ✅ 其他四指的指尖(点8,12,16,20)靠近掌心区域(欧氏距离小)
  • ✅ 食指、中指等弯曲角度大于阈值(如120°)

这种基于关键点空间关系+角度计算的方法,比单纯分类更鲁棒、可解释性强。


4. 实践应用:编写点赞手势识别代码

虽然镜像提供了WebUI,但我们可以通过调用其底层Python API 实现自定义逻辑判断。以下是完整可运行的点赞识别脚本。

4.1 安装依赖与加载模型

import cv2 import mediapipe as mp import numpy as np # 初始化 MediaPipe Hands 模块 mp_hands = mp.solutions.hands mp_drawing = mp.solutions.drawing_utils # 使用默认参数构建 Hands 实例(适用于CPU环境) hands = mp_hands.Hands( static_image_mode=True, # 图片模式 max_num_hands=1, # 最多检测1只手 min_detection_confidence=0.5 # 检测置信度阈值 )

4.2 计算两点间欧氏距离

def calculate_distance(p1, p2): """计算两个关键点之间的欧氏距离""" return np.sqrt((p1.x - p2.x)**2 + (p1.y - p2.y)**2)

4.3 判断手指是否弯曲(通过角度)

def calculate_angle(a, b, c): """ 计算三点形成的角度 ∠abc a, b, c: MediaPipe Landmark 对象 返回角度值(度) """ ba = np.array([a.x - b.x, a.y - b.y]) bc = np.array([c.x - b.x, c.y - b.y]) cosine_angle = np.dot(ba, bc) / (np.linalg.norm(ba) * np.linalg.norm(bc)) angle = np.arccos(np.clip(cosine_angle, -1.0, 1.0)) return np.degrees(angle)

4.4 主函数:识别点赞手势

def is_like_gesture(landmarks): """ 判断是否为“点赞”手势 landmarks: 单只手的关键点列表(21个) """ # 获取关键点 thumb_tip = landmarks[4] # 拇指指尖 thumb_mcp = landmarks[2] # 拇指掌指关节 wrist = landmarks[0] # 手腕 index_tip = landmarks[8] # 食指指尖 middle_tip = landmarks[12] # 中指指尖 ring_tip = landmarks[16] # 无名指指尖 pinky_tip = landmarks[20] # 小指指尖 # 条件1:大拇指竖直向上(指尖高于掌根) if thumb_tip.y > wrist.y: return False # 拇指未抬起 # 条件2:其余四指指尖靠近掌心(距离小于阈值) palm_center_y = (wrist.y + thumb_mcp.y) / 2 fingers_folded = True for tip in [index_tip, middle_tip, ring_tip, pinky_tip]: if abs(tip.y - palm_center_y) > 0.15: # 垂直方向偏移过大 fingers_folded = False break if not fingers_folded: return False # 条件3:食指弯曲程度足够(PIP处角度小) index_pip = landmarks[7] index_mcp = landmarks[5] index_dip = landmarks[8] angle_index = calculate_angle(index_mcp, index_pip, index_dip) if angle_index < 100: # 角度太小说明未弯曲 return False return True # 满足所有条件,判定为点赞

4.5 完整图像处理流程

# 读取图像并进行手势识别 image_path = "thumb_up.jpg" image = cv2.imread(image_path) rgb_image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB) # 执行手部检测 results = hands.process(rgb_image) if results.multi_hand_landmarks: for hand_landmarks in results.multi_hand_landmarks: # 绘制彩虹骨骼(使用默认样式) mp_drawing.draw_landmarks( image, hand_landmarks, mp_hands.HAND_CONNECTIONS, mp_drawing.DrawingSpec(color=(255, 255, 255), thickness=2, circle_radius=3), mp_drawing.DrawingSpec(color=(0, 255, 255), thickness=2) ) # 判断是否为点赞手势 if is_like_gesture(hand_landmarks.landmark): cv2.putText(image, "LIKE DETECTED!", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.5, (0, 255, 0), 3) else: cv2.putText(image, "Not Like", (50, 50), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (0, 0, 255), 2) # 保存结果图 cv2.imwrite("output_like.jpg", image) print("结果已保存至 output_like.jpg")

5. 落地难点与优化建议

5.1 实际部署常见问题

问题解决方案
光照变化影响检测添加图像预处理(CLAHE增强对比度)
手部遮挡导致误判设置最小可见关键点数(如至少15个点有效)
多角度识别不准增加Z坐标判断(拇指是否朝前)
CPU延迟较高减少图像分辨率(建议640×480以内)

5.2 提升准确率的进阶技巧

  • 引入时间平滑机制:连续3帧以上识别为“点赞”才触发事件,避免抖动误判。
  • 加入方向判断:利用拇指向量与垂直轴夹角,区分“侧向点赞” vs “正向点赞”。
  • 融合掌心朝向估计:结合手掌法向量判断手势合理性。

例如添加时间滤波器:

class GestureBuffer: def __init__(self, size=5): self.buffer = [False] * size def update(self, value): self.buffer.pop(0) self.buffer.append(value) def is_stable_positive(self, threshold=4): return sum(self.buffer) >= threshold

6. 总结

本文围绕AI 手势识别与追踪(彩虹骨骼版)镜像,系统讲解了如何实现“点赞”手势的精准识别。我们完成了以下关键步骤:

  1. 环境部署:利用CSDN星图平台一键启动镜像,快速获得可视化能力;
  2. 原理剖析:深入理解MediaPipe Hands的21个关键点拓扑结构;
  3. 逻辑建模:基于几何关系设计“点赞”判断规则;
  4. 代码实现:提供完整可运行的Python脚本,包含距离、角度计算与结果标注;
  5. 工程优化:提出实际落地中的避坑指南与性能提升策略。

这套方法不仅适用于“点赞”,还可轻松扩展至“剪刀手”、“OK”、“比心”等更多手势识别场景,具备极强的通用性和实用性。

未来,你可以进一步结合语音反馈、物联网控制或AR特效,打造真正意义上的智能手势交互系统


💡获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1151681.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

人体动作分析系统:MediaPipe Pose实战案例

人体动作分析系统&#xff1a;MediaPipe Pose实战案例 1. 引言&#xff1a;AI 人体骨骼关键点检测的工程价值 随着计算机视觉技术的快速发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、虚拟试衣、动作捕捉、安防监控等场景的核心…

消费级GPU也能跑:HY-MT1.5-1.8B模型优化部署心得

消费级GPU也能跑&#xff1a;HY-MT1.5-1.8B模型优化部署心得 1. 引言 在全球化与本地化并行发展的今天&#xff0c;高质量机器翻译已成为智能终端、边缘设备和企业服务中不可或缺的一环。然而&#xff0c;传统大模型往往依赖高性能服务器集群&#xff0c;难以在资源受限的消费…

低成本实现高精度姿态识别?AI骨骼检测部署实战案例

低成本实现高精度姿态识别&#xff1f;AI骨骼检测部署实战案例 1. 引言&#xff1a;从健身监测到动作分析&#xff0c;姿态识别的落地价值 随着AI在计算机视觉领域的持续突破&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;正逐步从实验室走向真实场…

开源姿态检测模型怎么选?MediaPipe Pose优势一文详解

开源姿态检测模型怎么选&#xff1f;MediaPipe Pose优势一文详解 1. 引言&#xff1a;AI人体骨骼关键点检测的技术背景与选型挑战 随着计算机视觉技术的快速发展&#xff0c;人体骨骼关键点检测&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟…

手把手教学:用YOLOv8快速构建绝缘子缺陷检测系统

手把手教学&#xff1a;用YOLOv8快速构建绝缘子缺陷检测系统 &#x1f4a1; 本文摘要&#xff1a;基于工业级 YOLOv8 目标检测镜像&#xff0c;手把手教你从零部署并定制化训练一个专用于高压输电线路绝缘子缺陷识别的AI视觉系统。涵盖环境准备、数据预处理、模型微调、结果可视…

实时视频姿态估计:MediaPipe Pose应用案例

实时视频姿态估计&#xff1a;MediaPipe Pose应用案例 1. 引言&#xff1a;AI人体骨骼关键点检测的现实价值 随着人工智能在计算机视觉领域的深入发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、虚拟试衣、动作捕捉、人机交互等…

MediaPipe Pose与TensorFlow关系解析:框架依赖与运行机制

MediaPipe Pose与TensorFlow关系解析&#xff1a;框架依赖与运行机制 1. 引言&#xff1a;AI人体骨骼关键点检测的技术演进 随着计算机视觉技术的快速发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟现实和人机交…

MediaPipe Pose教程:实时视频姿态估计实现

MediaPipe Pose教程&#xff1a;实时视频姿态估计实现 1. 引言 1.1 学习目标 本文将带你从零开始&#xff0c;使用 Google MediaPipe Pose 模型实现实时视频中的人体骨骼关键点检测与可视化。你将学会如何搭建本地环境、调用模型进行推理&#xff0c;并构建一个简易的 WebUI…

AI人体骨骼检测最佳实践:预处理与后处理全流程

AI人体骨骼检测最佳实践&#xff1a;预处理与后处理全流程 1. 引言&#xff1a;AI 人体骨骼关键点检测的工程价值 随着计算机视觉技术的发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、人机交互等场景的核心…

MediaPipe Pose与Unity集成:实时动作驱动3D角色实战指南

MediaPipe Pose与Unity集成&#xff1a;实时动作驱动3D角色实战指南 1. 引言&#xff1a;AI 人体骨骼关键点检测的工程价值 随着虚拟现实、数字人和智能交互技术的发展&#xff0c;实时人体姿态估计已成为连接物理世界与数字空间的关键桥梁。在游戏开发、运动分析、远程教学等…

Vivado卸载实战案例:从控制面板到注册表清理

Vivado卸载实战&#xff1a;从控制面板到注册表的彻底清理 你有没有遇到过这种情况——明明已经通过“控制面板”把 Vivado 卸得干干净净&#xff0c;结果重装时却弹出提示&#xff1a;“另一个安装正在进行”&#xff1f;或者新版本刚启动就报错&#xff0c;说许可证无效、JT…

AI骨骼关键点检测:MediaPipe Pose模型部署

AI骨骼关键点检测&#xff1a;MediaPipe Pose模型部署 1. 引言&#xff1a;AI人体骨骼关键点检测的现实价值 随着计算机视觉技术的快速发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、人机交互等领域的核心…

MediaPipe Pose服务封装:REST API接口构建详细步骤

MediaPipe Pose服务封装&#xff1a;REST API接口构建详细步骤 1. 背景与需求分析 1.1 AI人体骨骼关键点检测的应用价值 随着计算机视觉技术的快速发展&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;已成为智能健身、动作捕捉、虚拟试衣、安防监控…

手把手教你使用MediaPipe Hands:从图片到3D关键点分析

手把手教你使用MediaPipe Hands&#xff1a;从图片到3D关键点分析 1. 引言&#xff1a;为什么选择MediaPipe Hands进行手势识别&#xff1f; 随着AI眼镜、增强现实&#xff08;AR&#xff09;和虚拟现实&#xff08;VR&#xff09;设备的快速发展&#xff0c;自然交互方式正逐…

USB 2.0最大传输速率限制原因:通俗解释带宽分配

为什么你的U盘插在USB 2.0接口上&#xff0c;速度就是跑不满480 Mbps&#xff1f;你有没有过这样的经历&#xff1a;手里的U盘标着“高速传输”&#xff0c;电脑也显示连接的是USB 2.0&#xff0c;可大文件拷贝时速度却卡在35 MB/s左右&#xff0c;怎么都上不去&#xff1f;明明…

AI手势识别效果展示:MediaPipe Hands打造的彩虹骨骼案例

AI手势识别效果展示&#xff1a;MediaPipe Hands打造的彩虹骨骼案例 1. 引言&#xff1a;从“比耶”到人机交互——手势识别的现实价值 在智能硬件、虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;和人机交互&#xff08;HCI&#xff09;快速发展的…

MediaPipe Pose部署指南:智能家居动作识别系统

MediaPipe Pose部署指南&#xff1a;智能家居动作识别系统 1. 引言 1.1 业务场景描述 随着智能家居系统的普及&#xff0c;用户对非接触式交互方式的需求日益增长。传统语音或触控控制在特定场景下存在局限——例如&#xff0c;在做饭时双手不便操作、夜间起夜需要自动开灯等…

一文说清pymodbus在SCADA系统中的角色

pymodbus&#xff1a;SCADA系统中的“通信胶水”&#xff0c;如何让工业数据流动起来&#xff1f;你有没有遇到过这样的场景&#xff1a;一个水厂的监控系统要接入十几个不同品牌的PLC&#xff0c;有的走以太网&#xff0c;有的只支持RS485串口&#xff1b;你想用Python写个脚本…

AI骨骼检测模型选型指南:MediaPipe为何适合生产环境

AI骨骼检测模型选型指南&#xff1a;MediaPipe为何适合生产环境 1. 引言&#xff1a;AI人体骨骼关键点检测的现实挑战 在智能健身、动作捕捉、虚拟试衣、人机交互等前沿应用中&#xff0c;人体骨骼关键点检测&#xff08;Human Pose Estimation&#xff09;已成为核心技术之一…

人体骨骼关键点检测:MediaPipe与OpenCV结合使用教程

人体骨骼关键点检测&#xff1a;MediaPipe与OpenCV结合使用教程 1. 引言 1.1 AI 人体骨骼关键点检测的现实意义 在计算机视觉领域&#xff0c;人体姿态估计&#xff08;Human Pose Estimation&#xff09;是一项基础而关键的技术。它通过分析图像或视频中的人体结构&#xf…