MediaPipe介绍
我们直接引用前人的智慧:MediaPipe介绍
而 MediaPipeUnityPlugin,则帮我们把MediaPipe(C++)移植到了C#,使其能被Unity调用
MediaPipeUnityPlugin
使用这个插件,你可以:
– 用 C# 编写 MediaPipe 代码
– 在Unity上运行 MediaPipe 的官方解决方案
– 在Unity上运行您的自定义 Calculator 和 CalculatorGraph
(根据输入/输出的类型,您可能需要编写 C++ 代码)
1. 安装
github地址:https://github.com/homuler/MediaPipeUnityPlugin
下载地址:https://github.com/homuler/MediaPipeUnityPlugin/releases
本文使用的版本:MediaPipeUnity.0.11.0
建议Unity版本:2021.3以上
2. 运行一个官方解决方案
当然,该插件已经提供了案例,此处目的是了解它的运作方式,以便你想要按自己的需求搭一个环境
GraphRunner
Graph运行基类,封装了config的加载及初始化配置、MediaPipe数据流的输入输出,相当于MVC中的M
- 应用层 xxxGraph : GraphRunner
声明具体的输出流并配置
定义输入流的输入接口
定义获取同步输出的接口
定义异步输出监听的接口
加载需要的数据文件
Solution
操作基类,负责图像处理程序的生命周期,管理并获取图像源,相当于MVC中的C
-
派生类 ImageSourceSolution<T> : Solution
-T : GraphRunner
-管理GraphRunner实例及一些组件
-实现具体的每帧更新逻辑
– 抽象接口:
– OnStartRun() 初始化
– AddTextureFrameToInputStream(TextureFrame textureFrame) 将图像传给输入流
– WaitForNextValue() 获取同步输出 -
应用层 xxxSolution : ImageSourceSolution<xxxGraph>
-声明回调,在 OnStartRun() 中绑定Graph的异步监听接口,获取异步输出,并处理
-在 AddTextureFrameToInputStream() 中将得到的图像传给自己的Graph实例
-在 WaitForNextValue() 中获取Graph的同步输出,并处理
Bootstrap
引导程序,选择图像输入源、资源加载方式、CPU或GPU计算,由Solution在Start()中调用
- 图像源:WebCamera、Image、Video
根据选择的图像源,需要挂上相应的组件
– WebCamSource
– StaticImageSource
– VideoSource - 资源加载:StreamingAssets、AssetBundle、Local
TextureFramePool
TextureFrame 的对象池,ImageSourceSolution 会用到

MediaPipe是一个跨平台的框架,用于构建多媒体管道解决方案。MediaPipeUnityPlugin将MediaPipe集成到Unity,允许开发者用C#编写MediaPipe代码。本文介绍了如何安装MediaPipeUnityPlugin,运行官方解决方案,以及理解CalculatorGraph和Packet的概念,展示了在Unity中处理图像数据和进行计算的基本流程。
最低0.47元/天 解锁文章
2736

被折叠的 条评论
为什么被折叠?



