ModelBox 姿态匹配:抖抖手动动脚勤做深呼吸
本文分享自华为云社区《姿态匹配:抖抖手动动脚勤做深呼吸》,作者:吴小鱼。
在之前发布的 AI 说ModelBox推理真的高效吗一文中,我们使用双阶段单人人体关键点检测作为案例对比测试了 ModelBox 的性能。作为一个性能测试案例我们只是简单的将检测到的关键点画在原图上,并未进行进一步的应用开发。昨晚做梦,梦到关键点检测案例哭诉大材小用为何对它弃之不理明明广阔天地大有可为,愧疚之下连夜写了这篇动手动脚的案例,最终效果如下:
画面左上角随机绘制一个标准姿势,同时检测用户的姿态与标准姿势进行相似性比对,得分绘制在画面中央。如果得分超过阈值,则视为姿态一致,将更新下一个标准姿势。
本案例使用 Windows 版本的 ModelBox SDK 进行二次开发。如果对此还不熟悉,请先阅读ModelBox端云协同AI开发套件(Windows)开发环境篇,如果对 ModelBox AI 应用开发感兴趣,欢迎参加我们的ModelBox实战营。
工程目录
本案例是在single_human_pose
应用基础上修改而来,案例所需资源(代码、模型、测试数据等)均可从obs桶下载。工程目录与原始版本基本一致,下面列出其中不一样的地方:
主要的不同点有两处:
1、我们希望姿态与标准姿态匹配得分超过阈值后持续展示几帧匹配结果,使结果更可感,这就需要draw_pose
单元是有序的,所以我们在关键点绘制功能单元配置文件draw_pose.toml
中将单元类型改为流单元:
同时要在draw_pose.py
中补充流单元需实现的接口 data_pre、data_post:
2、draw_utils.py
中新增关键点匹配算法,主要思路是将检测到的关键点对检测框进行归一化处理后与标准关键点计算 oks:
为防止某些低置信度关键点漂移影响相似性计算,我们只取置信度大于kpts_thre
的关键点计算得分。
此外,一时手痒替换了人形检测模型,检测的前后处理以及技能流程图稍有改变;如果使用原本的检测模型只修改上述部分也可以正常运行。由于本项目随机选择标准姿势,所以只提供了使用摄像头运行的技能流程图。
运行项目
打开工程目录下 bin/mock_task.toml 文件,设置其中的任务输入和任务输出配置为如下内容:
即使用编号为 0 的摄像头(默认为 PC 自带的摄像头),输出画面显示到名为 Pose 的本地屏幕窗口中。
执行 bin/main.bat 运行应用,就可以开始伸展胳膊腿儿了:
另外,巨佬飞戈在single_human_pose
应用基础上开发了体感小游戏,有兴趣的朋友可以玩一下。
可以看到,在基础案例上进行简单的二次开发即可得到一个可玩应用,期待大家脑洞大开让基础案例们都可以一展抱负。
11 月 3 号晚 19 点,将进行 AI 养猪 实时看护猪的健康直播,华为云 AI 发烧友在线带你学习 ModelBox 框架,快速 AI 应用,实现 AI 监测猪的健康状态。
参与直播互动,有机会赢取华为自拍杆、雷柏机械键盘、ModelArts 书籍等,还等什么,马上报名吧!报名戳→http://su.modelarts.club/5a7o
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/db0a6a56b8d9fef76b7e8fabc】。文章转载请联系作者。
评论