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

news2024/9/23 7:22:21

本文已在【飞桨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】公众号 获取更多技术内容~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2003-2019年各省市场分割指数全步骤数据+最终结果

2003-2019年市场分割指数 1、时间:2003-2019年 2、数据包含:31各省份市场分割指数全步骤数据和最终结果 3、具体内容:市场分割指数差分形式相对价格、市场分割指数去均值、市场分割指数方差、市场分割指数最终结果。 4、指标说明&#xf…

vue3 框架学习概念笔记

文章目录前情提要框架设计概览命令式声明式小结虚拟dom性能运行时和编译时框架设计核心要素声明式描述UI渲染器组件的本质vue.js模板响应式系统概念完善的响应式系统响应式系统的调度计算属性Computedwatch 原理竞态问题非原始值的响应式方案javaScript 对象原始值的响应式方案…

毕业后河北种水稻 国稻种芯·中国水稻节:安徽姑娘承德务农

毕业后河北种水稻 国稻种芯中国水稻节:安徽姑娘承德务农 (新华每日电讯记者刘金海、方欣、牟宇) 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 中国农民丰收节国际贸易促进会 国稻种芯中国水稻节 中国三农智库网-功能性农业农业大健康大会报道:整…

【Linux】内存查看vmstat命令(虚拟内存统计)

vmstat命令:虚拟内存统计 CPU使用率内存试用虚拟内存交换情况IO读写情况 process r:运行和等待CPU时间片的进程数 超过cpu个数, 出现CPU瓶颈 长时间大于1,CPU不足,需要增加CPU b:正在等待资源的进程数&…

玩转MySQL:定位排查解决突发Bug

引言 前面MySQL优化、调化两文中,聊到了关于数据库性能优化的话题,而本文则再来聊一聊关于MySQL线上排查方面的话题。线上排查、性能优化等内容是面试过程中的“常客”,而对于线上遇到的“疑难杂症”,需要通过理性的思维去分析问…

Java岗位必备技能SpringBoot的面试题集锦

当下SpringBoot框架真的很火,大多数企业把它作为基础技能,考察求职者的能力。如下截图,是我从Boss直聘中找到的,要求SpringBoot是必备技能。 所以非常有必要为了面试,好好归纳下SpringBoot常被提起来的问题。 题目大纲…

Tesseract .Net SDK C# OCR 2022.1

Tesseract .Net SDK C# OCR 库 #将扫描的 PDF 转换为可搜索的文档 #快速准确的基于神经网络的引擎 #纠正低质量扫描 # 120 多种语言 # .Net 2.0, .Net 5, 标准, 核心 Tesseract OCR - industry-fastest .Net OCR library 4 行代码,仅此而已 var api OcrApi.Creat…

[附源码]java毕业设计疫情环境下的酒店管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

不知道什么的复习题

P4408 [NOI2003] 逃学的小孩,一眼就看出要化简题面:不就是找三个点使得ABBC最大嘛,不妨想起直径的性质,最长,而且其他点到它的距离最长。那么直接拿直径来做就行。推导出结论为ansmax(min(dis[A][k],dis[B][k])dis[A][…

CSS3------CSS选择器

界面中的“超文本“本质上就是通过一个一个矩形盒子包起来,然后进行排版组合,那么接下来要详细研究这个标签盒子的细节结构,以帮助学习如何使用它,但是在开始研究它之前,我们先来了解一个概念,选择器的概念…

BN、CBN、CmBN 的对比与总结

BN、CBN、CmBN 的对比与总结 最近看到了关于 Yolo 系列 trick 的总结文章 【Make YOLO Great Again】YOLOv1-v7全系列大解析(Tricks篇),其中提到了 YoloV4 中使用了 CmBN,这是对 CBN 的改进,可以较好的适应小 batch 的…

电容笔值不值得买?电容笔十大品牌排行

要想给我们的ipad配置一款电容笔,如果感觉苹果原装的电容笔价格远远超过预算。这时候平替电容笔是个非常值得入手的选择。试想一下购买一款苹果原装的电容笔的资金都够买整整四款平替电容笔了,平替电容笔价格便宜且功能跟苹果的电容笔相差无几。下面我来…

【设计模式】 - 结构型模式 - 迭代器模式

目录标题前言迭代器模式概述结构实现优缺点JDK源码解析前言 行为型模式用于描述程序在运行时复杂的流程控制,即描述多个类或对象之间怎样相互协作共同完成单个对象都无法单独完成的任务,它涉及算法与对象间职责的分配。 行为型模式分为类行为模式和对象…

ai绘画有哪些软件,盘点三款免费且超级好用的AI绘画工具

Ai绘画有哪些软件?不但可以免费使用,而且生成的画作精美,而且生成的图片速度还要很快? 不用急,今天小编给大家推荐的这三款ai绘画工具完全满足了上述条件! 第一款,重磅级产品,数画…

内存 地址转换、分段、空闲空间管理

目录 1. 地址转换 1.1 动态重定位 1.1.1 基址寄存器(虚拟地址 -> 物理地址) 1.1.2 界限寄存器(提供访问保护) 1.2 操作系统的工作 2. 分段 2.1 分段:泛化的基址/界限 2.2 引用哪个段 2.3 代码和堆的地址转换举例 2.4…

Java#23(常见API--1)

目录 一.Math Math是一个帮助我们用于进行数学计算的工具类 工具类的特点: Math类中的常用方法 二.System System是一个工具类,为我们提供一些与系统相关的办法 一.Math Math是一个帮助我们用于进行数学计算的工具类 工具类的特点: 私有化构造方法,所有的方法都是静态的 M…

[附源码]java毕业设计医院预约挂号管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

web网页设计期末课程大作业 我的美丽家乡盐城 HTML+CSS+JavaScript

家乡旅游景点网页作业制作 网页代码运用了DIV盒子的使用方法,如盒子的嵌套、浮动、margin、border、background等属性的使用,外部大盒子设定居中,内部左中右布局,下方横向浮动排列,大学学习的前端知识点和布局方式都有…

Linux C应用编程-2-Makefile编写

1.基本规则 #规则格式 target ... : prerequisites ... command1command2#例如 main: main.o stack.o maze.ogcc main.o stack.o maze.o -o main main是规则的目标(Target),main.o、stack.o和maze.o是规则的条件(Prerequisite&am…

贴地气的安卓UI自动化工具4399AT全面更新了~

4399AT是 一款兼容多设备运行并实现全自动化的测试的安卓UI工具,全自动化测试是指从apk的安装到按钮点击,密码输入到安装完成,不需要人工介入,兼容android5.0-12.0系统大部分品牌,至于开始测试,启动apk后&a…