本项目基于行空板M10硬件平台,
利用Python生态中的AI推理框架XEduHub,
实现了高效的人手关键点检测功能。
项目侧重AI模型的应用环节,
通过调用XEduHub内置的预训练模型pose_hand,
无需复杂配置即可完成从图像输入到21个关键点坐标输出的完整推理流程。
步骤1 “扩展”中加载“行空板”、“OpenCV”、“XEduHub”
1.将Mind+切换为“python模式”下,连接远程控制:10.1.2.3;

2“扩展”中加载“行空板”,“OpenCV”

3.“扩展”中加载XEduHub

步骤2 左侧脚本区,添加XEduHub脚本
步骤3 上传推理人手图片
步骤4 编写程序
代码
import sys
sys.path.append("/root/mindplus/.lib/thirdExtension/nick-unihiker_wifi-thirdex")
sys.path.append("/root/mindplus/.lib/thirdExtension/nick-xeduhub_main-thirdex")
import re
import sys
import time
from unihiker import GUI
from XEdu.hub import Workflow as wf
import os
def format_valve_output(task):
try:
output_result = ""
output_result = task.format_output(lang="zh")
return output_result
except AttributeError:
return "AttributeError: 请检查输入数据是否正确"
u_gui=GUI()
para_task1 = {}
u_gui.draw_text(text="行空板M10",x=0,y=0,font_size=20, color="#660000")
a=u_gui.draw_text(text="推理进行中........",x=0,y=30,font_size=20, color="#660000")
u_gui.draw_image(image="hand3.jpg",x=0,y=60)
time.sleep(1)
init_para_task1 = {"task":"pose_hand"}
init_para_task1["download_path"] = r"/root/checkpoint"
task1 = wf(**init_para_task1)
para_task1["data"] = "hand3.jpg"
para_task1["img_type"] = "cv2"
if 'task1' in globals() or 'task1' in locals():
rea_result_task1 = task1.inference(**para_task1)
else:
print("init",'task1')
task1 = wf(**init_para_task1)
rea_result_task1 = task1.inference(**para_task1)
print(rea_result_task1)
print("----------------------------------------------------------------------")
output_result_task1 = format_valve_output(task1)
print(output_result_task1)
task1.show(rea_result_task1)
while True:
pass
运行程序后,模型识别人手关键点坐标:从下向上,推理21个关键点的坐标。

人手关键点识别
人手关键点识别(Hand Keypoint Detection),是计算机视觉领域中一项专注于精确识别、定位并追踪人手上各个关节点位置的核心技术。其终极目标是为手部建立一个高保真的数字化骨架模型,从而让机器能够“理解”手部的复杂姿态、动作和意图。
这项技术的核心任务是从输入的图像或视频序列中,自动找出并输出手部一系列预定义关节点的坐标信息。
一个完整的手部模型通常包含21个关键点,其结构可被解构为:
1个手腕点:作为手部运动的根节点和基准。
5个指根点:分别对应五根手指的起点。
14个指节点:每根手指(拇指为2个,其他四指为3个)的中间关节。
5个指尖点:每根手指的末端。

评论