基于mediapipe的动作捕捉和unity的人物模型驱动

实习的时候做的一个虚拟动作捕捉和人物驱动的项目,里面可分析的知识还是比较多的,主要是我还没用过unity,这软件花了半个月才熟悉起来。先看一下人物驱动的效果,可能看着有些卡,第一是我开了那个屏幕录像,还有一个是加了手指部分关键点的识别,所以帧率就下来了。在我笔记本电脑上跑的时候就还好。可以看到手指部分的细节捕捉的还可以。这个只是初步做了简单的优化时候的展示。

下面这个是对视频的动作捕捉(至于为什么手指没有动作,是因为mediapipe没有捕捉到手指的细节,也就是手离镜头太远了),可以看到整个模型的动作还是比较流畅的,这里面做了更近一步非常细致的优化,又引入了质心,可以有效的缓解抖动的问题,对关键点用卡尔曼滤波法做平滑的处理(用其他的滤波法也可以,比如卡euro filter,Savgol过滤器,指数滑动均值滤波器),人体的骨骼不能任意角度的旋转,所以要对模型的骨骼的欧拉角进行限制

另外,要想驱动人体的动画模型,还需要对检测到的关键点做尺度的变换,要变换到模型骨骼的尺度,就像每个人手有长有短一样,这些点要一一对应起来才能完美的驱动人体模型。人物模型的驱动差不多就这些难点。

mediapipe的介绍:

用到的人体关键点检测的算法是Google开发的基于深度学习的实时多媒体套件,汇集了人体、手部、人脸关键点追踪、物体检测、物体识别等多个流行的视觉任务的成果。整套 Mediapipe正如其名字,专门为便携设备上的多媒体应用设计,模型非常小,在笔记本手机上也能实时跑,跨平台、跨语言。

mediapipe实时性是没什么问题。但是是以牺牲了质量为代价的,这种关键点检测一般是用来做动作识别,类似于运动app跳绳计数、判定瑜伽动作标不标准这种。用单目视觉来做人物模型的驱动,总差点意思。我们平时用的摄像头是二维的,动作捕捉是三维的(例如深度摄像机就有深度输出),或者从多个视角,也能重建出三维的关键点。然而对于单目图像的关键点,各个关键点到相机深度。

Mediapipe Pose 能够预测一个相对深度,也就是各个关键点离相机的大致远近关系;人体各个部位的尺寸及比例是有先验的。因此mediapipe能估计一个大致的三维的人体姿态,它可以输出pose_world_landmark。不过这个world_landmark和图像的关键点并不一致,而且是以屁股为原点的,没有绝对位置。Mediapipe 既能输出2D图像关键点的坐标,又能输出3D的关键点坐标,我们只需要额外提供一个相机内参,用Perspective-n-Points算法去求解出3D关键点相对于相机的变换,相机内参不用精确,差不多就行。用solvePNP的结果并不能完美的投影,也就是结果和输入的人体动作对不齐,看了一个大佬的暴力做法直接保持z坐标不变,调整x,y使得投影结果和2D关键点一致。

这只是先大概的介绍一下,后续我还会出讲解,代码部分我后边整理好了会放出来,并且会详细的讲解这些难点部分。喜欢的后续可以关注一下!!!

  • 6
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
【资源说明】 基于mediapipeunity中实现姿态追踪python源码+使用说明.zip 基于mediapipeunity中实现姿态追踪python源码+使用说明.zip基于mediapipeunity中实现姿态追踪python源码+使用说明.zip基于mediapipeunity中实现姿态追踪python源码+使用说明.zip基于mediapipeunity中实现姿态追踪python源码+使用说明.zip基于mediapipeunity中实现姿态追踪python源码+使用说明.zip 基于mediapipeunity中实现姿态追踪python源码+使用说明.zip # 第三方库要求 mediapipe # 使用方法 ## 1.首先运行udptracker.py 可以根据需要更改ip地址和端口 ## 2.然后使用unity2021.3.13f1c1打开Track副本 点击运行就可以实现追踪 ![image](blob/master/psc.png) # 一些碎碎念 ## 写了一个unity.py可以生成一个视频的追踪点的txt文件,这个文件可以用到unity中实现追踪 ## 使用了udp来实现数据的传输,效果还可以 ## 只是在unity中实现了点对点的复现,并不可以使用到通用模型上 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值