跳到主要内容

手势分类

1.功能简介

AI 手势识别是计算机视觉(Computer Vision)与人机交互领域中极具直观性与创新性的核心技术之一。它是利用深度学习模型,通过对摄像头采集到的图像序列进行实时骨骼点追踪与特征提取,进而实现对人类手部姿态、动作含义进行精准识别与分类的技术。简单来说,它就是让计算机拥有“看懂手势”的能力,将复杂的手部动作转化为具体的控制指令。

手势识别在现代智能交互中扮演着“无形遥控器”的角色,以下是一些典型应用:

  • 智能家居非接触控制:无需物理接触开关,通过识别特定的手势(如挥手、握拳)来远程控制灯光亮度、窗帘开合或播放音乐。
  • 车载手势交互系统:驾驶员在行驶过程中通过简单的划动手势切换歌曲或接听电话,有效减少分心,提升驾驶安全性。
  • 手语实时翻译教育:自动识别残障人士的标准手语动作,并将其转化为文字或语音,架起特殊群体与外界沟通的桥梁。
  • 工业与医疗无菌操作:在手术室或高精尖实验室等对卫生要求极高的环境下,通过手势翻阅电子病历或操控精密仪器,避免二次污染。
  • 趣味人机对战互动:在教育机器人或游戏场景中,识别玩家的“剪刀石头布”或特定指令手势,实现高频次的智能博弈与情感互动。

image-20260330141355791

2.核心原理

手势识别的本质是利用计算机视觉与深度学习算法,将复杂的生物肢体动作转化为计算机可理解的数学特征。其运作逻辑并非简单的图像对比,而是建立在“人体骨骼解构与空间几何映射”的理论之上。通过对手部 21 个关键骨骼点(Keypoints)的实时追踪,计算机会分析手指间的夹角、指尖与掌心的距离关系,从而在动态的视频流中精准捕捉并判定出具体的手势指令。

其核心运作流程主要分为以下四个关键步骤:

  • 图像采集与预处理(Image Acquisition & Preprocessing): 摄像头以高频率捕获实时画面,系统自动对图像进行降噪、亮度补偿,并利用“目标检测”技术快速锁定手部所在的区域(ROI),剔除杂乱背景的干扰。

  • 关键点提取与建模(Keypoint Extraction & Modeling): 利用卷积神经网络(CNN)对手部区域进行深度扫描,定位并提取出手指关节、掌心等 21 个核心骨骼点的三维空间坐标,将视觉图像转化为一组高维度的数学特征向量。

  • 模型训练与模式识别(Model Training & Recognition): 将成千上万组标准手势数据输入算法,让计算机学习不同手势(如“OK”、“点赞”、“挥手”)对应的骨骼分布规律。通过反复迭代,磨炼出一套能精准区分相似动作的分类逻辑。

  • 推理与指令触发(Inference & Action Triggering): 当用户在镜头前做出动作时,系统瞬时将提取到的实时特征代入模型进行比对。一旦匹配成功,便立即输出对应的识别结果(如“前进”),并触发后续的硬件控制或软件交互动作。

image-20260330142026404

3.功能加载

如果仅需体验模型训练与测试,可通过KZone人工智能教育平台进入,在【AI体验馆】下的【AI学习】板块中找到【手势分类】的功能,点击后进入即可,跳转链接如下:

https://kzone2.kittenbot.cn/ai-lab

image-20260330142426465

如果想在Kittenblock图形化编程平台中进一步使用训练好的模型,则通过左下角的【添加拓展】进入拓展界面,在【角色拓展】中添加【可视化机器学习】。添加后回到编程界面,在相关插件下点击【模型训练工具】即可选择【手势识别】,Kittenblock跳转链接如下:

https://kblock.kittenbot.cn/

image-20260330144311371

这里选择训练手势。

image-20260330144121154

在KZone上训练好的模型,也可以通过下载与导入的方式,在Kittenblock中使用,具体使用方法在下面会进行说明。

4.关键点检测实验流程

当我们选择检测手势,返回编程界面后,可以做一些关键点检测的典型案例。

关键点检测主要有两种使用方法,一种是检测手掌个部分坐标(五个手指+掌心)另一种使用方法是检测差值。

积木介绍:

积木功能
image-20260506112852462打开后,实时分析画面,可以直观看到识别结果,并
且在接下来的结果积木块中获取数据
image-20260506112901776如果使用舞台显示摄像头画面进行识别,则可以开启,
image-20260506113241655积木块组合使用。
1. 开启/关闭/镜像开启:开启关闭镜像需要和训练的素材一一对应
2. 透明度:0~100= 视频图像完全显示~视频图像完全透明
image-20260506112913429当开启了舞台显示摄像头,并且关闭了image-20260506113249481
可运行这个积木捕获舞台视频的一帧图像进行识别,,并且在接下来的结果积木块中获取数据
(结果在下一次运行分析前会保持)
image-20260506112924009在摄像头画面上实时绘制手部的 21 个骨骼点和连接线。主要用于调试,
确认模型是否精准锁定了你的手部。
image-20260506112931541布尔值(真/假)。用于判断当前摄像头画面中是否存在人手。
常用于“如果检测到手势,才开始识别”的逻辑。
image-20260506112938044获取手部特定点(如掌心、指尖)的实时坐标。可以用来做“手势跟随”功能,比如手往左移,机器人也往左转。

a.检测坐标

基础应用1

让角色说出目前掌心的坐标

image-20260330174111763

基础应用2

将掌心的坐标映射到角色的坐标

image-20260330174543395

b.计算/映射坐标差值

基础应用1

使用不同手指的坐标来控制角色。

image-20260330161536174

基础应用2

双指放大缩小角色。

image-20260330175034655

5.手势分类实验流程实验流程

a.收集与分类

首先,你需要定义想要识别的“手势动作”,也就是创建不同的“类”(Classes)。随后为每个类添加具体的动作样本。例如,如果你想做一个识别数字(1-2)的系统,你会创建两个类:

  • Class 1 (数字1): 在摄像头前做出“仅伸出食指,其余指头握拳”的手势,。
  • Class 2 (数字2): 在摄像头前做出“伸出食指和中指,呈现‘V’字形”的手势,并点击采样按钮捕捉不同光照下的动作。

注意: 每个类提供的样本越多、越多样化、越有代表性,模型的准确度就越高。例如,若要识别“数字5”,建议输入手指完全张开、手指微微并拢、手掌正对镜头以及手掌侧对镜头等多种表达方式。

image-20260330145758800

注 :建议每个类别样本数量为10张以上

b.训练模型

点击 【模型训练】 后,系统将利用本地算力(CPU/GPU)对手部 21 个核心骨骼点进行实时的特征提取与参数调优。CNN(卷积神经网络) 会自动识别不同手势在空间中的几何比例与关键点分布,通过反复迭代优化,在后台构建出一套专属的手势分类逻辑,确保能够快速、准确地识别您定义的各种手势类别。点击 【数据图表】,可以查看模型在学习过程中的损失值与准确率变化。

核心训练参数解析

为了让模型更精准地分辨“数字 2”与“数字 3”等相似手势,您需要关注以下参数:

  • Epochs(周期数):指模型完整查看一遍所有手势样本数据的次数。
  • Batch Size(批次大小):指每次学习时同时处理的手势图片数量。
  • Learning Rate(学习率):指模型在每次更新参数(修正错误)时步进的幅度。

image-20260330150430283

c.测试与调整

训练完成后,你可以打开摄像头测试模型训练效果。

  • 反馈:模型会给出一个置信度评分(例如:100% 1,0% 2)。
  • 调优:如果预测错了,你需要检查是不是数据量不够,或者两类样本中有太多相似的手势。

使用摄像头测试 - 随着素材的数量多少,训练可能会花费一些时间,完成训练后在右侧可以体验训练识别结果

image-20260330151652628

d.导出与应用

训练好的模型可以直接与积木块或代码逻辑挂钩,通过简单的代码调用这个模型。

  • 应用: 当模型识别出特定的类别时,你可以触发后续动作。比如识别到 ‘1’ 的时候角色说“1”,识别到 ‘2’ 的时候角色说“2”

无论你是在KZone训练还是在Kittenblock训练,都可以直接下载模型,方便下一次使用。

image-20260330152502717

模型导入后或者你是在Kittenblock中直接训练完模型,则可以点击【使用模型】,跳转编程界面。

image-20260330153241762

在Kittenbkock中,在相关插件下点击【模型训练工具】即可选择【导入训练项目】,此时可导入之前下载好的模型。如果需要调整模型,则可以点击【编辑训练】

image-20260325163435818

手势分类的相关积木及其作用如下:

积木功能
image-20260506113146276打开后,实时分析画面,可以直观看到识别结果,并
且在接下来的结果积木块中获取数据
image-20260506113212511如果使用舞台显示摄像头画面进行识别,则可以开启,
image-20260506113200461积木块组合使用。
1. 开启/关闭/镜像开启:开启关闭镜像需要和训练的素材一一对应
2. 透明度:0~100= 视频图像完全显示~视频图像完全透明
image-20260506113011526当开启了舞台显示摄像头,并且关闭了image-20260506113221566
可运行这个积木捕获舞台视频的一帧图像进行识别,,并且在接下来的结果积木块中获取数据
(结果在下一次运行分析前会保持)
image-20260506113022824在摄像头画面上实时绘制手部的 21 个骨骼点和连接线。主要用于调试,
确认模型是否精准锁定了你的手部。
image-20260506113034485布尔值(真/假)。用于判断当前摄像头画面中是否存在人手。
常用于“如果检测到手势,才开始识别”的逻辑。
image-20260506113042221获取手部特定点(如掌心、指尖)的实时坐标。可以用来做“手势跟随”功能,比如手往左移,机器人也往左转。
image-20260506113053472布尔值。判断当前识别出的结果是否为指定的类别(如:是否比了数字 1)。
image-20260506113103370直接返回当前模型认出的类别名称或编号。可以用来在屏幕上实时打印出识别到的结果。
image-20260506113109348返回一个 0-100 的数值。数值越高代表模型越确定没认错。常用于过滤掉那些“似是而非”的误识别。
image-20260506113116214事件积木(帽子块)。这是一个自动运行的入口,一旦摄像头看到指定手势,下方连接的所有代码会立即执行。

基础应用1

识别手部的数字,并且让角色说出来。

image-20260330155644412

基础应用2

根据不同色手势数字,判断是优等品还是次品。

image-20260330155850766

基础应用3

通过舞台显示摄像头让角色说出识别分类标签。

image-20260330184407216

6.综合案例

使用手势控制角色正在舞台运动

image-20260506113126239