手势识别
功能介绍
手势识别算法示例订阅包含人手框、人手关键点信息的算法msg,利用BPU进行推理,发布包含手势信息的智能结果msg。
算法支持的手势识别类别,以及手势类别在算法msg(Attribute成员,type为"gesture")中对应的数值如下:
- 静态手势
手势 | 说明 | 数值 |
---|---|---|
ThumbUp | 竖起大拇指 | 2 |
Victory | “V”手势 | 3 |
Mute | “嘘”手势 | 4 |
Palm | 手掌 | 5 |
Okay | OK手势 | 11 |
ThumbLeft | 大拇指向左 | 12 |
ThumbRight | 大拇指向右 | 13 |
Awesome | 666手势 | 14 |
- 动态手势
手势 | 说明 | 数值 |
---|---|---|
PinchMove | 三指捏合拖动 | 15 |
PinchRotateAntiClockwise | 三指捏合逆时针画圈 | 16 |
PinchRotateClockwise | 三指捏合顺时针画圈 | 17 |
代码仓库:
(https://github.com/D-Robotics/hand_lmk_detection)
(https://github.com/D-Robotics/hand_gesture_detection)
(https://github.com/D-Robotics/mono2d_body_detection)
应用场景:手势识别算法集成了人手关键点检测,手势分析等技术,使得计算机能够将人的手势解读为对应指令,可实现手势控制以及手语翻译等功能,主要应用于智能家居,智能座舱、智能穿戴设备等领域。
小车手势控制案例:小车手势控制
基于手势识别以及人体姿态分析实现游戏人物控制案例:玩转X3派,健身游戏两不误
支持平台
平台 | 运行方式 | 示例功能 |
---|---|---|
RDK X3, RDK X3 Module | Ubuntu 20.04 (Foxy), Ubuntu 22.04 (Humble) | 启动MIPI/USB摄像头,并通过Web展示推理渲染结果 |
RDK X5 | Ubuntu 22.04 (Humble) | 启动MIPI/USB摄像头,并通过Web展示推理渲染结果 |
RDK Ultra | Ubuntu 20.04 (Foxy) | 启动MIPI/USB摄像头,并通过Web展示推理渲染结果 |
准备工作
RDK平台
-
RDK已烧录好Ubuntu 20.04/Ubuntu 22.04系统镜像。
-
RDK已成功安装TogetheROS.Bot。
-
RDK已安装MIPI或者USB摄像头。
-
确认PC机能够通过网络访问RDK。
使用介绍
手势识别(hand_gesture_detection)package订阅人手关键点检测package发布的人手关键点检测结果,经过推理后发布算法msg,通过websocket package实现在PC端浏览器上渲染显示发布的图片和对应的算法结果。
使用MIPI摄像头发布图片
- Foxy
- Humble
# 配置tros.b环境
source /opt/tros/setup.bash
# 配置tros.b环境
source /opt/tros/humble/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .
# 配置MIPI摄像头
export CAM_TYPE=mipi
# 启动launch文件
ros2 launch hand_gesture_detection hand_gesture_detection.launch.py
使用USB摄像头发布图片
- Foxy
- Humble
# 配置tros.b环境
source /opt/tros/setup.bash
# 配置tros.b环境
source /opt/tros/humble/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .
# 配置USB摄像头
export CAM_TYPE=usb
# 启动launch文件
ros2 launch hand_gesture_detection hand_gesture_detection.launch.py
使用本地回灌图片
# 配置tros.b环境
source /opt/tros/humble/setup.bash
# 从tros.b的安装路径中拷贝出运行示例需要的配置文件。
cp -r /opt/tros/${TROS_DISTRO}/lib/mono2d_body_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_lmk_detection/config/ .
cp -r /opt/tros/${TROS_DISTRO}/lib/hand_gesture_detection/config/ .
# 配置本地回灌图片
export CAM_TYPE=fb
# 启动launch文件
ros2 launch hand_gesture_detection hand_gesture_detection.launch.py publish_image_source:=config/person_face_hand.jpg publish_image_format:=jpg publish_output_image_w:=960 publish_output_image_h:=544 publish_fps:=30
launch脚本默认启动静态手势识别,对于TROS Humble
版本,可以使用is_dynamic_gesture
参数指定启动动态手势识别:ros2 launch hand_gesture_detection hand_gesture_detection.launch.py is_dynamic_gesture:=True
。