Mediapipe的Unity实现

Posted river_of_sebajun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mediapipe的Unity实现相关的知识,希望对你有一定的参考价值。

Mediapipe是Google的轻量ML框架,包括了人体姿态识别、手势识别、头发分割等多种功能。Mediapipe支持跨平台,目前提供了Python、androidios、JS等多种解决方案,但暂不支持Unity。
Github有大牛做了Unity的实现,链接
这个项目将MediaPipe API (c++)移植到c#,这样就可以从Unity调用它。当需要在循环中调用多个api时,这种方法可能会牺牲性能,但它提供了使用MediaPipe的可能性。
直接将代码Clone到本地,用Unity(2021.3.3f1)打开会缺失环境,DLL的配置等。
作者也提供了all-in-one的package
其中最新的版本v0.10.1是首次预编译好的包。

下载第一个,打开后,得到

使用时,直接用Unity Hub对应的Unity版本打开这个文件夹新建一个文件夹,其中Samples~后面的~要删掉,不然在Unity Editor资源里看不到这个文件夹。
我直接打开是有错的,显示的错误是找不到某个目录下的txt等文件,但实际上这些文件存在的。测试后,运行时,Model Complexity不能选Lite,要选为Full;Running Mode选Sync才是实时的,但是Sync延迟比较明显,换NonBlockingSync(无阻塞同步),延迟会降低,但是会帧一闪一闪的,个人理解是降低了每帧里处理的图像的数量,所以延迟降低,但会闪帧。
延迟情况,用USB3.0而不是2.0,会好一点。
此外,运行时需关闭本机的其他相机应用,比如Windows自带的相机!

基于Unity引擎利用OpenCV和MediaPipe的面部表情和人体运动捕捉系统

基于Unity引擎利用OpenCV和MediaPipe的面部表情和人体运动捕捉系统

前言

之前做的一个项目——使用Python利用OpenCV图像捕捉,配合强大的Mediapipe库来实现手势,人体动作检测与识别;将识别结果实时同步至Unity中,实现手部,人物模型在Unity中运动身体结构识别


项目地址:
Mediapipe+OpenCV与Unity引擎实现动作捕捉
OpenCV+Mediapipe人物动作捕捉与Unity引擎的结合

但是这个项目的实现利用了OpenCV图像捕捉和Mediapipe库来实现人体动作检测与识别,实现效果和准确度还不错,但是问题在于过于简陋的火柴人无法绑定到模型(模型骨骼)

项目概述

这次增加了模型的绑定,利用Mediapipe这个强大的库可以实现识别面部表情的捕捉人体结构运动的捕捉,基于以上的特性加入到Unity的人物模型中,实现实时的面部表情人体运行的捕捉

项目实现效果

2D面部表情实时捕捉


可以更换模型加入绿背应用于不同场景

3D人体动作实时捕捉


3D人体动作实时捕捉视频地址:https://live.csdn.net/v/234978

补充

项目目前问题很多,等待完善后会发布到GitHub

引用

本博客使用的3D模型资源来自Unity—Chan!

3D模型资源来自:

博客中使用到的2D模型资源来自Live2D


以上是关于Mediapipe的Unity实现的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV+Mediapipe人物动作捕捉与Unity引擎的结合

OpenCV+Mediapipe手势动作捕捉与Unity引擎的结合

基于Unity引擎利用OpenCV和MediaPipe的面部表情和人体运动捕捉系统

基于Mediapipe与Unity的人体姿态捕捉系统

基于mediapipe的动作捕捉和Unity的球棍模型同步

unity的赛车游戏都有哪些