使用Flutter建立一个端到端的图像分类器

531 阅读2分钟

使用Flutter和TensorFlow Lite构建一个端到端的图像分类器。

没有机器学习模型是有价值的,除非它被部署到生产中 - Luigi Patruno,MLinProduction.com的创始人

机器学习不仅仅是创建模型和预测它的答案。我们需要让这些模型在生产中发挥作用

拥有一个可以帮助任何人(不知道如何编码的人)使用模型并从中做出预测的应用程序 投资组合的福音。部署也是一种技能,在招聘机器学习工程师和数据科学家的时候会考虑到。该项目将突出你在机器学习和在各种框架中部署模型的相关技能

事实上,根据Gartner Inc.的数据,大多数开发人员在部署方面遇到了困难。

有各种工具来部署,如DockerKubernetesHerokuDjangoFlaskTensorFlow.jsTensorFlow Lite

这次我们将尝试用TensorFlow Lite来部署我们的模型,使用Flutter。我们将创建一个Flutter应用程序,对我们提供的图片中的动物是猫还是狗进行分类。

这里我们假设我们已经创建了使用CatsVSDogs数据集训练的模型。我们将把该模型转换为TFLite。

在pubspec.yaml中,有3个重要的包需要添加,它们是TFLite、SplashScreen和image_picker。

main.dart将包含一个无状态的widget,它将有一个MySplash主页。

splashscreen.dart将在屏幕上停留2秒,它将加载所有运行应用程序所需的资产,然后它将引导我们进入应用程序的主要部分,也就是App home。

下一个文件将有所有的功能和方法要做。我们将使用Tflite.LoadModel来加载我们的.tflite CNN模型和标签将在labels.txt文件。Tflite.runModelOnImage做预处理,将返回预测结果。我们将使用图像采集器模块,从画廊或从相机加载图像。

在home.dart文件中实现的方法。

这个项目的所有源代码和资源都在这个链接中。在设置好一切,包括lib文件夹中的三个文件,添加软件包,以及改变iOS的runner文件夹和Android的Gradle中的配置后,你可以在你的Android模拟器或设备中运行该应用程序。