MediaPipe-UnityPlugin的基本使用

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

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 会用到

Screen

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值