本文已在【飞桨PaddlePaddle】公众号平台发布,详情请戳链接:项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人

皮影戏是一种以兽皮或纸板做成的人物剪影以表演故事的民间戏剧,皮影一般由头、躯干(上下两部分)、2条腿(每条腿从膝盖分两节)、2只胳膊(大臂和小臂2部分)、2只手组成。皮影模型的肢体结构与人体结构基本一致,其模型控制点位置与人体关节点分布具有极大的重合性。皮影戏的动作表演控制与人关节活动控制肢体动作也具有着极大的相似性,而目前基于深度学习的人体骨架识别技术可以获取图像中人体的关节位置。

因此,我们可以基于算法,通过人体关节位置变动解析人体肢体动作,再控制对应皮影模型的关节,使之完成肢体动作表演,从而可以实现一种新的皮影戏表演方式。

团队介绍

我们的团队为一个4人的开发小组,包括上位机深度学习,下位机嵌入式,机械结构三部分的人员。
队长介绍:谢泽源,深度学习领域爱好者,主要学习方向为计算机视觉,国家级大学生创新创业项目主持人,获得了“全国智能车大赛”“计算机设计大赛”等比赛的国家级奖项。

项目功能与特色

拟人表演

本项目用到目前深度学习较为主流的人体关键点检测模型,其能够非常精确的提取出头部、肩膀、手脚等16个人体关键点,关键点坐标预处理后传输到stm32主控板解析,将数据转化为舵机控制信号,最后实现皮影机器人模仿人体动作的模拟表演。

拟人结构

本项目开创性的提出类人体关节的皮影机器人结构。通过设计皮影机器人按人体关节模型进行控制关节排布,将皮影模型的每个控制关键点与机器人的旋转舵机一一映射,形成了类人体的机械结构。改变了传统皮影复杂的多杆一手操作方式,实现皮影的多关节控制,简化了皮影的控制方式,也简化了控制算法,使皮影舞台戏动作表演丰富。

自动表演

采用stm32单片机作为皮影机器人硬件控制底层,能够接受上位机发生的信息,并解析成皮影机器人的运动控制信息驱动其肢体运动表演。因此可以通过上位机程序编写好皮影戏的动作编排,实现皮影机器人的自主表演。

图像处理模型

想要获取人体姿态,首先需要适合的模型。考虑到实际使用时所面临的各种需求,包括:检测速度快、关键点提取精准、整体程序足够小、对于设备的性能要求尽可能的低等等。我们查阅了目前较为主流的各种人体检测模型,因此选取了百度飞桨的PP-TinyPose模型,基于飞桨框架模型部署起来非常的方便,该模型在Jetson AGX Xavier上跑出了10帧的识别速度,这个效果已经达到了我们需求的帧率。
PP-TinyPose是PaddleDetection针对移动端设备优化的实时姿态检测模型,可流畅地在移动端设备上执行多人姿态估计任务。借助PaddleDetection自研的优秀轻量级检测模型PP-PicoDet,我们同时提供了特色的轻量级垂类行人检测模型。

识别效果图

机械结构

拟人体结构

对于皮影机器人的结构设计,我们不同于以往的用机械臂操作皮影的结构设计,而是采用骨架识别人体骨骼关键点和皮影控制点相适应的拟人机械结构。将皮影的控制结构与人体骨骼关键点一一相对应,并按人体的关节位置排列方式分布,形成了类人体的机械结构。这种机械结构改变了传统需要复杂多变手势操作皮影表演的方式,大大简化了皮影戏的控制算法,使皮影戏自动化和智能化操控成为了可能。

机器人模型图

多关节控制设计

对于皮影机器人的支点控制,我们采用了多关节控制设计。不同于传统手工操作的皮影戏只能同时实现皮影模型3个点的控制,本项目能够实现皮影机器人背板上的2个肩关节、2个髋关节的控制,同时设计了肢体装置,拓展了对皮影模型肘关节、膝关节的控制。而根据皮影模型的需要,可以实现人体所有肢体关节的舵机控制,增加了皮影机器人的关节控制自由度。

肢体装置图

关节旋转驱动控制设计

对于皮影模型动作的驱动方式,我们使用可以360°旋转的舵机作为关节控制。舵机与皮影控制关节通过传动直杆连接,采用连杆杠式的连接方式、回转型的控制方式,舵机轴转动部与活动关节一一对应安装。舵机旋转便可以直接带动皮影模型关节的旋转,同时带动皮影模型肢体关节的旋转,即舵机角度直接决定皮影模型的姿态,这种关节控制的方式大大简化了皮影机器的运动模型,可以实现更多的复杂动作。

水平移动设计

皮影机器人底部安装了滑块,滑块安装在导轨上,通过控制导轨上的滑块左右运动可以实现皮影机器人的水平左右移动,进而满足皮影戏表演的舞台需要。

水平移动导轨

技术方案

本项目涉及上位机皮影机器人的数据处理、皮影机械结构的设计以及下位机硬件电路模块的搭建。应用人工智能技术、机器人结构技术、嵌入式技术来实现皮影机器人的智能化与自动化。
系统通过摄像头模块向Jetson AGX Xavier(上位机)导入实时视频流(hls)或本地视频(MP4)流后,使用OpenCV模块,通过VideoCapture函数指定视频流的数据源,将每一帧图像分别输入到终端,使用PP-TinyPose的深度学习卷积神经网络框架对摄像头获取的人体图像信息进行人体关键点检测。在获取各个关节点的旋转信息后,Jetson AGX Xavier使用串口模块将旋转指令发送给下位机stm32单片机进行数据处理,然后驱动皮影机器人关节舵机、底盘直流电机运动,从而实现皮影机器人模仿人的姿态运动。

系统流程图

最终效果


快速开始**

项目链接

https://aistudio.baidu.com/aistudio/projectdetail/4429519?sUid=701846&shared=1&ts=1668736153862

环境配置

项目的上位机环境为飞桨环境,具备飞桨开发环境皆可运行该项目。

启动服务

下载文件目录

命令行运行

python python/det_keypoint_unite_infer.py --det_model_dir=picodet_v2_s_192_pedestrian --keypoint_model_dir=tinypose_128x96 --video_file=test01.mp4 --device

出现以下内容即启动成功

作品总结

我们从最初有皮影机器人的想法,到分工合作分别搭建机器人组件与算法、机械结构设计、再到软硬件相结合的调试改进,最后成功搭建出一个能投入到实际应用中的皮影机器人,我们付出了汗水也收获了成功的喜悦。

回首望去,我们已实现了:

  • 配置了由舵机与亚克力板为主的皮影硬件模型;
  • 利用rtmp等传输协议,通过云端传送的视频流远程进行数据分析;
  • 在角度转化中,使用三角函数、向量计算等对人体关键点坐标进行转化;
  • 关于人体关键点检测,我们选择了OpenPose、MediaPipe、PP-TinyPose等网络模型对人体关键点特征进行提取。

经过这次项目开发,我们认识到要想实现一个机器人是需要软硬件的相互配合,需要考虑诸多因素,实现许多功能才能满足人们的需求。这也说明了机器人领域是一个复杂多变、影响因素众多但值得人们进行探索的领域。目前我国机器人领域发展迅猛、需求巨大,值得引起我们的关注。在之后的开发中,我们会不断完善该项目,使其能更好地运用到实际生活中,从而大大改善人们的生活。

关注【飞桨PaddlePaddle】公众号 获取更多技术内容~

项目开源!基于PaddleDetection打造实时人体姿态检测的多关节控制皮影机器人相关推荐

  1. Tensorflow Lite人体姿势跟踪功能上线:基于PosNet的实时人体姿态估计

    点击我爱计算机视觉标星,更快获取CVML新技术 本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载. 选自medium 作者:TensorFlow 机器之心编译 参与: ...

  2. MATLAB基于视频的人体姿态检测

    基于视频的人体姿态检测 设计目的和要求 1.根据已知要求分析视频监控中行人站立和躺卧姿态检测的处理流程,确定视频监中行人的检测设计的方法,画出流程图,编写实现程序,并进行调试,录制实验视频,验证检测方 ...

  3. 基于电磁信号特征的人体姿态分类研究

    摘要 随着无线传感技术的发展,无线信号已经成为最普遍的信号,当一个目标停留在不同的位置,执行不同的活动,或者做不同的手势,就会对周围无线信号特征产生不同影响.无论我们身处何方,我们周围总会有许多无线信 ...

  4. VideoPose3D:基于视频的3D人体关键点检测

    1. 概述 Dario Pavllo等人于2019年提出了VideoPose3D模型,旨在把输入视频转换成人体各关键点相对于根关节的相对三维位置.为了实现这一目的,作者采取的是两步走的策略.首先要利用 ...

  5. python 人体检测技术_tensorflow入门教程(四十三)人体姿态检测(一)

    # #作者:韦访 #博客:https://blog.csdn.net/rookie_wei #微信:1007895847 #添加微信的备注一下是CSDN的 #欢迎大家一起学习 # ------韦访 2 ...

  6. 基于MindStudio的3D人体关键点检测

    3D人体关键点检测 1 任务介绍 人体关键点检测插件基于 MindX SDK 开发,在昇腾芯片上进行人体关键点和骨架检测,将检测结果可视化并保存.输入一幅图像,可以检测得到图像中所有行人的关键点并连接 ...

  7. 轻量级openpose人体姿态检测

    1.去github下载轻量级openpose人体姿态检测项目:https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.py ...

  8. 加盟依图科技后,颜水成首篇顶会论文提出“高效多人体姿态检测SPM”

    唐木 发自 天龙寺  量子位 出品 | 公众号 QbitAI 颜水成团队研究实力依然强劲. 从360到依图,颜水成依然保持着高质量的学术输出. 最近提出的单阶段高效人体姿态检测模型SPM就是最好的例证 ...

  9. tensorflow入门教程(四十四)人体姿态检测(二)

    # #作者:韦访 #博客:https://blog.csdn.net/rookie_wei #微信:1007895847 #添加微信的备注一下是CSDN的 #欢迎大家一起学习 # ------韦访 2 ...

最新文章

  1. WPF - 本质:数据和行为
  2. Jvm平时用到的参数
  3. Shell基础知识(三)
  4. 在Linux上使用Nginx为Solr集群做负载均衡
  5. SAP Spartacus 404 Not found页面的显示机制 - canActivateNotFoundPage
  6. 漫步凸分析八——回收锥与无界
  7. Vue「五」—— 动态组件、插槽、自定义指令
  8. 2020 Intel数据平面创新赋能未来网络-李雪峰
  9. 站闻资讯项目开发个人总结
  10. 关于websocket长链接的使用
  11. bzoj 1488: [HNOI2009]图的同构 (置换+dfs)
  12. 重装战姬电脑版模拟器怎么玩
  13. 关于最短剩余时间优先算法-进程调度模拟【C++】
  14. ai关键词整理(分享)
  15. 【大学生数学建模竞赛时间一览表】
  16. 12.unity编程基础
  17. 【数据链路层】广播信道 碰撞检测CSMA 争用期
  18. 谷歌真被ChatGPT搞慌了!两位创始人紧急回归制定战术,搜索广告根基不容有失...
  19. C#窗体实现的仿WIN10标准计算器
  20. 【愚公系列】2023年06月 网络安全(交通银行杯)-图片信息隐藏

热门文章

  1. eclipse 问题:web-app报错
  2. 科研统计图形大合集!这么多种图形,如何正确的使用他们?
  3. Docker 部署 SeafilePro + OnlyOffice(CentOS版)
  4. Spring声明式事务管理中的事务回滚
  5. 运筹学之线性规划与整数规划
  6. ExecuteQuery和ExecuteNonQuery的区别
  7. mybatis mybatis-plus resultMap 实现多表联查
  8. Mybatis - 无效的列类型: 1111
  9. Yii开发的点位盘外汇交易平台源码
  10. 长按android版本,Fusion APP 在 Android 8 版本以上长按卡死的解决办法