【Unity+AI】SentisAI大模型植入Unity

2023-12-25 19:44
文章标签 ai 模型 unity 植入 sentisai

本文主要是介绍【Unity+AI】SentisAI大模型植入Unity,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

相关教程

把AI模型放入Unity-手写数字识别【UnitySentis入门-1】_哔哩哔哩_bilibili

教程转载自:AI Tools for Game Dev 游戏开发人工智能工具/UnitySentis/01-Unity Sentis 入门.md · chutianshu/AwesomeUnityTutorial - Gitee.comicon-default.png?t=N7T8https://gitee.com/chutianshu1981/AwesomeUnityTutorial/blob/main/AI%20Tools%20for%20Game%20Dev%20%E6%B8%B8%E6%88%8F%E5%BC%80%E5%8F%91%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD%E5%B7%A5%E5%85%B7/UnitySentis/01-Unity%20Sentis%20%E5%85%A5%E9%97%A8.md

 Unity Sentis 入门

1. Unity Sentis 简介

1.1 概念

Sentis 是一个用于人工智能模型的本地推理引擎(神经网络推理库),它利用终端用户设备上的计算,而不是云服务器。它可以在任何可以部署 Unity 运行时的地方运行。

可以使用 Sentis 将训练有素的神经网络模型导入 Unity,然后在 Unity 支持的任何平台和编辑器中本地实时运行这些模型。您可以选择在 GPU 或 CPU 上运行模型。

它取代了 Barracuda(Unity 上一个本地神经网络库),解决了我们在 Barracuda 处于早期原型阶段时收到的许多反馈。最重要的是,Sentis 可以以游戏速度运行许多神经网络。可用于无限制的本地推理。

1.2 功能

Sentis 有哪些功能?

Sentis 允许您将 ONNX 格式 的人工智能/ML 神经网络模型(来自 TensorFlow、PyTorch 和其他人工智能中心)导入 Unity 编辑器,然后在所有 Unity 支持平台上的用户设备上实时优化和运行推理。

Sentis 支持 opset 版本介于 7 和 15 之间的大多数 ONNX 格式模型。有关详细信息,请参阅支持的 ONNX 操作符。

您可以在 Unity 运行时(用于游戏)或 Unity 编辑器(用于游戏创建)中完成这项工作,而无需使用昂贵的 GPU 云服务器。Sentis 速度快,避免了云计算成本,并允许进行私有神经网络推断。最终,Sentis 将使 Unity 开发人员能够利用人工智能领域令人难以置信的创新,而这在以前是不可能实现的。

可能的使用案例有很多,下面列出来一些经过 Unity 开发者已经实现的,希望 Sentis 的用户可以发挥出更多的创意 :

  1. 图像升级:放大低分辨率图像、模型、纹理等。
  2. 风格转换:将场景的外观或图像效果转换为新的风格
  3. 非游戏角色(NPC):自动生成人物对话
  4. 语音识别(NLP):解释现场语音 5.
  5. 人体/物体检测: 使用摄像头检测物体
  6. 深度估计: 使用摄像头检测深度
  7. 图像、视频和 3D 模型分类:检测屏幕上的物体
  8. 手写分类:检测手写字母、符号或数字
  9. 创造独一无二的玩家体验:生成无限独特的游戏场景
  10. 动画: 绑定自动生成的姿势
  11. 模拟助手: 用神经网络逼近复杂功能(Approximate a complicated function )?,驱动游戏逻辑
  12. 时间序列:异常检测、预测/预报

2. Sentis Quick Start 快速上手

2.1 安装 Sentis

  1. 从 Unity Hub 下载 Unity 2023.2。
    最新的Sentis 1.3.0 适用于 2023.2 以上版本,而之前的 Sentis 版本适用于 Unity 2021.3 以上版本。
  2. 创建新的 Unity 项目或打开现有项目。
  3. 进入Window > Package Manager,然后点击 + 图标,选择 "Add package by name… "并输入 "com.unity.sentis"按添加按钮安装软件包

com.unity.sentis

我们可以导入附带的Samples示例项目

2.2 使用 Sentis

使用 Sentis 在 Unity 中运行神经网络模型,通常需要如下步骤:

  1. 使用 Unity.Sentis 命名空间。
  2. 加载神经网络模型文件。
  3. 为模型创建输入。
  4. 创建推理引擎(工作站)。
  5. 使用输入运行模型,推理出结果。
  6. 获取结果

3. 关于 ONNX 神经网络模型

3.1 什么是 ONNX Model

ONNX 是一种用于表示机器学习模型的开放格式。ONNX 定义了一组通用算子(机器学习和深度学习模型的构件)和一种通用文件格式,使人工智能开发人员能够在各种框架、工具、运行时和编译器中使用模型。ONNX 模型现已经成为一种广泛流行的开放标准格式。

ONNX 模型主要可以应用在以下方面:

Vision 视觉

  • 图像分类
  • 物体检测与图像分割
  • 身体、面部和手势分析
  • 图像处理

Language 语言

  • 机器理解
  • 机器翻译
  • 语言建模

其他

  • 视觉问题解答与对话
  • 语音和音频处理
  • 其他有趣的模型

3.2 加载 ONNX 神经网络模型

Sentis 可以导入开放神经网络交换 ONNX 格式的模型文件。要加载模型,请按照以下步骤操作:

  1. 从机器学习框架中将模型导出为 ONNX 格式,或从互联网上下载 ONNX 模型(推荐:ONNX Modle ZOO)。
  2. 将模型文件添加到 "项目 "窗口的 "资产 "文件夹中。
  3. 在脚本中创建运行时模型:
  • 本案例提供了一个示例模型https://download.csdn.net/download/leoysq/88661406
using Unity.Sentis;
.....//生成模型资源对象
ModelAsset modelAsset = Resources.Load("model-file-in-assets-folder") as ModelAsset;
//创建运行时模型对象
runtimeModel = ModelLoader.Load(modelAsset);//使用张量 API 为模型创建包含数据的张量。您可以将数组或纹理转换为张量。
//获取纹理图片作为输入
Texture2D inputTexture = Resources.Load("image-file") as Texture2D;
// 下面是将图片纹理转换为张量 Convert a texture to a tensor
TensorFloat inputTensor = TextureConverter.ToTensor(inputTexture);//创建推理引擎(a worker):
//在 Sentis 中,worker 就是推理引擎。您可以创建一个 Worker,将模型分解为可执行的任务,在 GPU 或 CPU 上运行这些任务,并输出结果
// 这条代码使用 Sentis 计算着色器创建一个在 GPU 上运行的 Worker:
Worker worker = WorkerFactory.CreateWorker(BackendType.GPUCompute, runtimeModel);// 运行模型
worker.Execute(inputTensor);// 使用 worker 对象的 PeekOutput()方法 获取结果,保存为张量类型
TensorFloat outputTensor = worker.PeekOutput() as TensorFloat;

扩展阅读: 一分钟快速了解张量Tensor

4. 完整示例

下面的示例对一个手写数字进行了分类。

  1. 准备工作:从 ONNX Model Zoo 下载手写识别 ONNX 模型文件,例如 MNIST 手写数字识别模型 mnist-12.onnx,并将其拖入项目窗口的 Assets 文件夹。
    mnist-12.onnx gitee 替代下载链接

  2. 将以下脚本附加到场景中的一个 GameObject。

using UnityEngine;
using Unity.Sentis;
using Unity.Sentis.Layers;public class ClassifyHandwrittenDigit : MonoBehaviour
{public Texture2D inputTexture;public ModelAsset modelAsset;Model runtimeModel;IWorker worker;public float[] results;void Start(){// Create the runtime modelruntimeModel = ModelLoader.Load(modelAsset);// Add softmax layer to end of model instead of non-softmaxed outputstring softmaxOutputName = "Softmax_Output";runtimeModel.AddLayer(new Softmax(softmaxOutputName, runtimeModel.outputs[0]));runtimeModel.outputs[0] = softmaxOutputName;// Create input data as a tensorusing Tensor inputTensor = TextureConverter.ToTensor(inputTexture, width: 28, height: 28, channels: 1);// Create an engineworker = WorkerFactory.CreateWorker(BackendType.GPUCompute, runtimeModel);// Run the model with the input dataworker.Execute(inputTensor);// Get the resultusing TensorFloat outputTensor = worker.PeekOutput() as TensorFloat;// Move the tensor data to the CPU before reading itoutputTensor.MakeReadable();results = outputTensor.ToReadOnlyArray();}void OnDisable(){// Tell the GPU we're finished with the memory the engine usedworker.Dispose();}
}
  1. 将模型资产拖入游戏对象检查器窗口中的 modelAsset 字段
  2. 下载下面的 digit.png 图片并将其拖入项目窗口的 Assets 文件夹。在导入设置中将 "Non-Power of 2"设置为 "None",然后单击 "Apply"。

  3. 将 digit.png 拖入游戏对象 Inspector 窗口中的 inputTexture(输入纹理)字段
  4. 点击播放。在 GameObject 的 "检查器 "窗口中,结果数组的每一项都显示了模型预测图像是数字的程度。例如,数组的第 0 项表示模型预测图像是手写 0 的程度。

参考资料:

  • Sentis 官方索引页
  • Sentis Quick Start
  • Sentis 官方文档
  • Sentis 官方论坛
  • 实例:Unity Sentis project sample: Build an escape room with a digit detection AI model

这篇关于【Unity+AI】SentisAI大模型植入Unity的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/536710

相关文章

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

AI绘图怎么变现?想做点副业的小白必看!

在科技飞速发展的今天,AI绘图作为一种新兴技术,不仅改变了艺术创作的方式,也为创作者提供了多种变现途径。本文将详细探讨几种常见的AI绘图变现方式,帮助创作者更好地利用这一技术实现经济收益。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 定制服务:个性化的创意商机 个性化定制 AI绘图技术能够根据用户需求生成个性化的头像、壁纸、插画等作品。例如,姓氏头像在电商平台上非常受欢迎,

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

从去中心化到智能化:Web3如何与AI共同塑造数字生态

在数字时代的演进中,Web3和人工智能(AI)正成为塑造未来互联网的两大核心力量。Web3的去中心化理念与AI的智能化技术,正相互交织,共同推动数字生态的变革。本文将探讨Web3与AI的融合如何改变数字世界,并展望这一新兴组合如何重塑我们的在线体验。 Web3的去中心化愿景 Web3代表了互联网的第三代发展,它基于去中心化的区块链技术,旨在创建一个开放、透明且用户主导的数字生态。不同于传统

AI一键生成 PPT

AI一键生成 PPT 操作步骤 作为一名打工人,是不是经常需要制作各种PPT来分享我的生活和想法。但是,你们知道,有时候灵感来了,时间却不够用了!😩直到我发现了Kimi AI——一个能够自动生成PPT的神奇助手!🌟 什么是Kimi? 一款月之暗面科技有限公司开发的AI办公工具,帮助用户快速生成高质量的演示文稿。 无论你是职场人士、学生还是教师,Kimi都能够为你的办公文

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

Retrieval-based-Voice-Conversion-WebUI模型构建指南

一、模型介绍 Retrieval-based-Voice-Conversion-WebUI(简称 RVC)模型是一个基于 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)的简单易用的语音转换框架。 具有以下特点 简单易用:RVC 模型通过简单易用的网页界面,使得用户无需深入了

透彻!驯服大型语言模型(LLMs)的五种方法,及具体方法选择思路

引言 随着时间的发展,大型语言模型不再停留在演示阶段而是逐步面向生产系统的应用,随着人们期望的不断增加,目标也发生了巨大的变化。在短短的几个月的时间里,人们对大模型的认识已经从对其zero-shot能力感到惊讶,转变为考虑改进模型质量、提高模型可用性。 「大语言模型(LLMs)其实就是利用高容量的模型架构(例如Transformer)对海量的、多种多样的数据分布进行建模得到,它包含了大量的先验

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}

秋招最新大模型算法面试,熬夜都要肝完它

💥大家在面试大模型LLM这个板块的时候,不知道面试完会不会复盘、总结,做笔记的习惯,这份大模型算法岗面试八股笔记也帮助不少人拿到过offer ✨对于面试大模型算法工程师会有一定的帮助,都附有完整答案,熬夜也要看完,祝大家一臂之力 这份《大模型算法工程师面试题》已经上传CSDN,还有完整版的大模型 AI 学习资料,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费