【Unity6.0+AI】Sentis加载模型识别手写数字案例实现

按照国际惯例,看效果:

 

素材准备:

自己在PS中绘制黑底白字手写字体,导出jpg,尺寸28*28!

素材设置

基本步骤

  1. 准备工作:从 ONNX Model Zoo 下载手写识别 ONNX 模型文件

  2.  【下载模型】MNIST 手写数字识别模型 mnist-12.onnx,并将其拖入项目窗口的 Assets 文件夹。

  3.  【下载模型】本案例提供了一个示例模型https://download.csdn.net/download/leoysq/88661406icon-default.png?t=N7T8https://download.csdn.net/download/leoysq/88661406

  4. 【编写脚本】将脚本附加到场景中。

  5. 将模型资产拖入游戏对象检查器窗口中的 modelAsset 字段
  6. 下载下面的 digit.png 图片并将其拖入项目窗口的 Assets 文件夹。在导入设置中将 "Non-Power of 2"设置为 "None",然后单击 "Apply"。
  7. 将 digit.png 拖入游戏对象 Inspector 窗口中的 inputTexture(输入纹理)字段
  8. 点击播放。在 GameObject 的 "检查器 "窗口中,结果数组的每一项都显示了模型预测图像是数字的程度。例如,数组的第 0 项表示模型预测图像是手写 0 的程度。

笔者亲笔代码:

代码的程序逻辑:

基本流程就是:

  1. 下载模型
  2. 放入Unity资产文件夹(或者自己创建文件夹)
  3. 按照Sentis插件包!
  4. 脚本中引用using Unity.Sentis;
  5. 把资产拿到代码中
  6. 加载这个资产为模型
  7. 创建张量数据便于输入模型
  8. 创建一个工作流线程IWorker变量=WorkerFactory.CreateWorker();
  9. 执行工作流运算张量数据oneWorkLineAI.Execute(InputTensor);
  10. 输出数据(默认张量格式&

猜你喜欢

转载自blog.csdn.net/leoysq/article/details/135224310