如何在Unity中使用TensorFlow Lite

3,586 阅读1分钟

Unity已经有了官方的机器学习库ML-Agent, 尽管如此,如果能直接在Unity上运行事先训练好的TFLite模型,相信能帮助那些熟悉TensorFlow但是不熟悉ML-Agent的朋友解决一些麻烦。

GitHub真的是一大宝藏,在GitHub上找到了一个开源库,拿到源码后能很方便的在你的Unity项目中使用训练好的TFLite模型。

先奉上仓库地址:github.com/asus4/tf-li…

已经测试的软件版本、支持的系统、注意事项README.md中已经写的很清楚了,我这里就不赘述了。

具体的使用就非常简单了,最简单的代码如下:

// TFLite接受的输入数据,这里以我做过的一个项目为例,64x64是将用户在屏幕上书写笔迹存储为一张64x64的图片
float[,] inputs = new float[64, 64];
// TFLite的输出数据,项目的目的是识别出用户当前书写的是哪个汉字,我们只挑选了1403个常用的汉字
float[] outputs = new float[1403];
void Start()
{
    // 以Byte[]的形式,读取TFLite Model文件
    interpreter = new Interpreter(File.ReadAllBytes(path));
    // 分配输入缓冲区
    interpreter.ResizeInputTensor(0, new int[] { 1, 64, 64, 1 });
    interpreter.AllocateTensors();
}
void Update()
{
    // 传入输入数据
    interpreter.SetInputTensorData(0, inputs);
    // 执行!!!
    interpreter.Invoke();
    
    // 获取输出数据
    interpreter.GetOutputTensorData(0, outputs);
}
void OnDestroy()
{
    interpreter?.Dispose();
}

有了以上简易的模板,相信你已经能够创造出很多的可能了。

原文链接:www.yuque.com/jooki/hcm4i…