Unity Sentis首份教程来啦,利用AI模型创建先进功能

Unity 推出的 Sentis,赋予开发者将 AI 模型导入游戏和应用程序中的能力。现在,Sentis 已进入预发布的开放测试阶段,用户可以在所有类型的项目中实现物体识别、语音识别和智能 NPC 等复杂功能。

这些 AI 模型一旦通过 ONNX 文件标准导入,就可以直接在所有支持 Unity 的平台上运行,这意味着,用户可以直接在 Unity Runtime 中运行大多数 AI 模型,无需任何云基础设施。

Unity官方平台

,赞42

开始使用 Unity Sentis

用户可以通过 Package Manager 下载 Unity Sentis,并通过以下链接获取其文档。在项目中安装软件包后,就可以开始集成 AI 模型了,使用步骤如下。

Unity Sentis 文档:

https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/index.html

  第一步:找到支持的 AI 模型

要在项目中使用哪些模型完全取决于用户及需要完成的任务。用户可以先浏览市面上的一些模型,如 Hugging Face、Keras 或 PyTorch。如果用户有机器学习背景,也可以训练自己的模型,或使用 Unity ML-Agents 来满足强化学习的需求,但模型必须转换为 ONNX 文件格式(如有需要,用户也可以使用 ONNX 转换器,如 TF2ONNX)。

相关代码示例,请参阅 Sentis 文档中的导入模型(Import a model)部分:

https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/import-a-model.html

ONNX 文件格式:

https://onnx.ai

TG2ONNX:

https://github.com/onnx/tensorflow-onnx

  第二步:将模型加载到 Unity 中

将模型加载到 Unity 中的过程与导入其他资产的步骤相同,只需将其简单地拖放到编辑器中 Project 窗口内的 Assets 文件夹中即可,Sentis 将自动对导入的模型进行优化,然后再创建一个运行时的模型(Model)对象。

相关代码示例,请参阅 Sentis 文档中的加载模型(Load a model)部分:

https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/understand-sentis-workflow.html

  第三步:创建输入和推理

创建输入相当简单,只需检查 ONNX 模型导入设置中所需模型输入的形状和大小,然后从数据源创建张量(tensor)。如果需要多个输入,可将它们全部存储在一个字典中。

相关代码示例,请参阅 Sentis 文档中的为模型创建输入(Create input for a model)部分:

https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/create-an-input-tensor.html

  第四步:运行和优化模型

当准备好要运行模型时,用户还需要创建 Worker,它可以将模型分解为可在用户设备(CPU 或 GPU)上运行的任务,以下为创建 Worker 的代码示例:

https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/create-an-engine.html

设置好 Worker 后,就可以运行 AI 模型了。在这里,用户要将模型的输入和输出接入游戏代码,然后使用性能分析器查看模型是否在给定的计算资源预算内运行。如果耗费太多资源,用户可以将模型“切分”到多个帧,或在 Sentis 中探索其他性能调优方式。

有关如何运行模型、获取输出和优化输出的更多信息,请参阅 Sentis 文档中的运行模型(Run a model)部分:

https://docs.unity3d.com/Packages/com.unity.sentis@1.2/manual/run-a-model.html

  第五步:测试和部署模型

最后一步是测试和部署游戏。执行此步骤的方法与在任何 Unity Runtime 平台上一样。在将模型嵌入游戏二进制文件方面,用户有几种选择:将它嵌入构建版本中,或者以流媒体资源运行,这样只有在需要时才会下载。出于安全原因,用户还可以考虑对模型进行加密。

相关代码示例,请参 Sentis 文档中的 对模型进行加密(Encrypt a model)部分:

https://docs.unity3d.com/Packages/com.unity.sentis@1.3/manual/encrypt-a-model.html

上例子

  利用 AI 实现数字检测

以下链接里的示例展示了使用 Sentis 神经网络的基础知识,即运行一个对象检测模型来打开上锁房间的门。它运行了一个名为 MNIST 的手写数字检测 AI 模型,该模型可以识别用户手绘的数字。

https://github.com/Unity-Technologies/sentis-samples/blob/main/DigitRecognitionSample/README.md

,时长11:12

  制作一个 AI 驱动的桌面游戏对手

以下链接里的示例使用 Sentis 为一款名为“黑白棋(Othello)”的桌面游戏构建了一个机器人对手,游戏难度可以配置。它运行着一个根据游戏规则训练的神经网络,在每一步后确定游戏获胜概率,然后预测未来最有可能获胜的棋步。与使用复杂启发式算法和树状遍历的传统方法相比,这个解决方案更为简单。

https://github.com/Unity-Technologies/sentis-samples/blob/main/BoardGameAISample/README.md

,时长08:55

  利用 AI 深度估算创建 AR 体验

以下链接里的示例展示了如何将 Sentis 集成到增强现实(AR)体验中。它使用深度估计神经网络,让现实世界中的物体遮挡游戏场景中的虚拟物体。深度是通过处理来自摄像头的视频帧确定的,因此与使用激光雷达传感器的传统方法(仅限于价格昂贵的手机)相比,它是一种更具可扩展性的解决方案。

这样只需要移动设备带有摄像头,不需要激光雷达传感器。

https://github.com/Unity-Technologies/sentis-samples/blob/main/DepthEstimationSample/README.md

进度条,百分之38

其他用例

AI 模型可以帮助用户创建那些使用传统代码不容易实现或非常耗时的出色功能。这些用例涵盖了各类 AI 模型,具体的应用情况取决于用户所采用的模型。

AI 模型用例:

https://keras.io/examples

以下是 Sentis 辅助开发过程的一些示例。

  图像/资产增强

开发者选择 Unity 的一个重要原因是它能够更轻松地跨多平台发布,但优化仍然是一个挑战。通过使用 TensorFlow 提供的 Super Resolution 分辨率增强(upscaling)模型,用户可以将游戏中的低分辨率图像、纹理增强为符合生产质量的图像、纹理,或者仅在需要时,辅助优化不同设备上的资产。

Super Resolution:

https://www.tensorflow.org/hub/tutorials/image_enhancing

  语音识别

玩家互动是联网游戏成功的关键,当涉及到与 NPC 和其他玩家互动时,用户可以利用语音转文本模型(如 OpenAI 的 Whisper),将实时语音转换为游戏中的文本。还可以引入 AI 模型来自动进行对话,并在玩家和 NPC 之间创建更有意义的互动,这个过程完全不用依赖于手动编写脚本。

OpenAI 的 Whisper:

https://openai.com/research/whisper

  图形优化

AI 在创造新颖功能方面受到了很多关注,我们也看到了其在改善游戏性能方面的出色应用。一个例子是使用 AI 模型在移动设备上改进光线追踪的性能,即使用增强的生成对抗网络(GAN)AI 模型来虚构游戏场景的预渲染帧。通过应用这个模型,用户可以在较小的项目中实现光线追踪功能,如光的折射和焦散区域光,这个方法并不会影响设备的性能。

  AR 和 VR 物体识别

增强现实(AR)和虚拟现实(VR)也是将 AI 模型与 Sentis 结合使用的潜在重要用例。例如,用户可以在 VR 项目中使用 Ultralytics 的 YOLO 模型,在游戏场景中检测物体,或者在 AR 项目里从设备摄像头中检测现实世界的物体。这可以为用户提供一种只有通过 AI 才可能获得的超级视觉感知。

Ultralytics 的 YOLO 模型:

https://www.ultralytics.com/yolo

图片

Unity Sentis 现在已向所有 Unity 开发者免费开放测试。用户可以通过Unity 2021.3 或更高版本中的 Package Manager 下载使用。

Unity Sentis 官网:

https://unity.com/products/sentis

Unity Sentis首份教程来啦,利用AI模型创建先进功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/245075.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

地图自定义省市区合并展示数据整合

需求一:将省级地图下的两个市合并成一个区域,中间的分割线隐藏。 1、访问下方地址,搜索并下载省级地图json文件。 地址:https://datav.aliyun.com/portal/school/atlas/area_selector 2、切换到边界生成器,上传刚刚下…

基于Java+SpringBoot+Vue3+Uniapp前后端分离考试学习一体机设计与实现企业级2.01版本(视频讲解,已发布上线)

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

【经验分享】gemini-pro和gemini-pro-vision使用体验

Gemini Gemini已经对开发者开放了Gemini Pro的使用权限,目前对大家都是免费的,每分钟限制60条,至少这比起CloseAI的每个账户5刀限速1min3条要香的多,目前已于第一时间进行了体验 一句话总结,google很大方,但…

web服务器之——搭建两个基于域名访问的网站

目录 要求: 一、准备工作:web服务器搭建 第一步:挂载 第二步:编辑配置文件 第三步:安装软件包 第四步:启动httpd 查看配置文件: 第五步:设置防火墙状态: 重启服务…

虹科技术 | IO-Link Wireless如何赋能工厂车间迈向无线自动化?

大规模定制、卓越运营和商业智能正在从根本上改变制造业,为了在竞争中立于不败之地,制造商需要更加灵活、通用、可扩展和具有成本效益的机器和生产线。随着制造商向工业 4.0 迈进,更好的适应性、更高的吞吐量和更短的停机时间是他们的共同要求…

【C++】策略模式

目录 一、简介1. 含义2. 特点 二、实现1. 策略接口(Strategy Interface)2. 具体策略类(Concrete Strategies)3. 上下文类(Context)4. 使用策略模式 三、总结如果这篇文章对你有所帮助,渴望获得你…

【Java系列】详解多线程(二)——Thread类及常见方法(下篇)

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【Java系列专栏】【JaveEE学习专栏】 本专栏旨在分享学习Java的一点学习心得,欢迎大家在评论区交流讨论💌 目录 一…

删除员工信息和全局异常处理

删除员工: 删除员工信息,根据员工的id删除其实批量删除就是一种特殊的批量删除,所以,删除员工的功能,我们只需要开发一个接口就可以了。 删除员工的逻辑分析: controller层获取请求的参数: 接收…

大模型微调的“温度”参数,原来影响的是 softmax

大家好啊,我是董董灿。 在对大模型进行微调训练时,经常会看到几个重要的超参数,用来控制大模型生成文本的效果。 其中一个超参数叫做 Temperature,中文名字叫温度,初见时很是不解,为啥一个模型还有温度这个…

【问题处理】—— lombok 的 @Data 大小写区分不敏感

问题描述 今天在项目本地编译的时候,发现有个很奇怪的问题,一直提示某位置找不到符号, 但是实际在Idea中显示确实正常的,一开始以为又是IDEA的故障,所以重启了IDEA,并执行了mvn clean然后重新编译。但是问…

36、什么是池化算法

池化算法也是 CNN 网络中非常常见的算法。 池化这一算法理解起来比较简单,从名字中或许可以看到一些东西:从一个像素池子中选取一些有代表性的像素出来。 常见的池化有最大池化和平均池化。最大池化就是从像素池子中选取最大值出来,而平均池化就是从像素池子中选取平均值出…

Ganache结合内网穿透实现远程或不同局域网进行连接访问

文章目录 前言1. 安装Ganache2. 安装cpolar3. 创建公网地址4. 公网访问连接5. 固定公网地址 前言 Ganache 是DApp的测试网络,提供图形化界面,log日志等;智能合约部署时需要连接测试网络。 Ganache 是一个运行在本地测试的网络,通过结合cpol…

一文搞清楚“并发与并行”“串行与并行”“线程与进程”的区别

目录 🐶6.1 并发与并行 🐶6.2 串行与并行 1. 基本概念 2. 举个🌰 3. 适用场景 🐶6.3 线程与进程 1. 基本概念 2. 进程与线程的区别 3. 线程调度: 🐶6.1 并发与并行 并行:指两个或多个事件在同一时…

2023年OceanBase开发者大会-核心PPT资料下载

一、峰会简介 2023年OceanBase开发者大会主要涵盖了OceanBase的最新技术进展、产品更新以及开发者工具的发布。大会发布了OceanBase 4.1版本,公布了两大友好工具,升级了文档的易用性,并统一了企业版和社区版的代码分支。这些举措全面呈现了O…

【算法题】开源项目热度榜单(js)

解法 const lines ["4","8 6 2 8 6","camila 66 70 46 158 80","victoria 94 76 86 189 211","athony 29 17 83 21 48","emily 53 97 1 19 218", ]; const lines2 ["5","5 6 6 1 2","…

Python:pipdeptree 语法介绍

相信大家在按照一些包的时候经常会碰到版本不兼容,但是又不知道版本之间的依赖关系,今天给大家介绍一个工具:pipdeptree pipdeptree 是一个 Python 包,用于查看已安装的 pip 包及其依赖关系。它以树形结构展示包之间的依赖关系&am…

json Deserialization of Python Objects

openweathermap.json {"coord": {"lon": 114.0683, "lat":22.5455},"weather":[ {"id": 803, "main":"Clouds", "description":"多云", "icon":"04d"}],"…

产品Axure的安装以及组件介绍

Axure介绍: Axure是一款用户体验设计工具,可以用于创建交互式原型、线框图和设计文档。它支持快速原型开发、界面设计、信息架构、流程图和注释等功能,可以帮助设计师快速地创建和共享交互式原型,从而更好地与客户和团队协作。 …

利用Pytorch预训练模型进行图像分类

Use Pre-trained models for Image Classification. # This post is rectified on the base of https://learnopencv.com/pytorch-for-beginners-image-classification-using-pre-trained-models/# And we have re-orginaized the code script.预训练模型(Pre-trained models)…

回溯热门问题

关卡名 回溯热门问题 我会了✔️ 内容 1.组合总和问题 ✔️ 2.分割回文串问题 ✔️ 3.子集问题 ✔️ 4.排列问题 ✔️ 5.字母全排列问题 ✔️ 6.单词搜索 ✔️ 1. 组合总和问题 LeetCode39题目要求:给你一个无重复元素的整数数组candidates和一个目标整数 ta…