Flutter + Tensorflow Lite环境配置

一、Flutter 和 Tensorflow Lite 简介

Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。 Flutter可以与现有的代码一起工作。在全世界,Flutter正在被越来越多的开发者和组织使用,并且Flutter是完全免费、开源的。它也是构建未来的Google Fuchsia 应用的主要方式。TensorFlow Lite是TensorFlow针对移动和嵌入式设备的轻量级解决方案。它使设备上的机器学习预测具有低延迟和小的二进制大小。 TensorFlow Lite还支持硬件加速Android 神经网络API。TensorFlow Lite使用许多技术来实现低延迟,如优化移动应用程序的内核,pre-fused激活以及允许更小和更快的(fixed-point数学)模型的量化内核。

二、Flutter 环境配置

Flutter的环境配置还是有一点复杂的,下面一步一步的详细介绍:

1.安装 Git for windows

这个就和普通的软件安装过程差不多,一直next就行了,其中有些选项根据自己的实际情况来选择,安装好了之后就可使用镜像了。

2. 获取Flutter SDK 

打开,输入

 git clone -b beta https://github.com/flutter/flutter.git

这样就可以获取到Flutter的SDK了,要说一句的是Git的下载地址如果没有更改的话,一般在C:\Users\Administrator。你可以进入这个文件夹里面发现flutter的文件夹。然后你就可以将它拷贝到其他地方。

注:Flutter中文网上介绍获取Flutter SDK的方法不是用Git来下载SDK,而是去Flutter官网下载。但是我使用这种方法在后面时报Flutter不完整的错误,因此建议大家使用Git工具配置

3. 更新环境变量

打开Git Bash(步骤1安装的软件),首先输入

export PUB_HOSTED_URL=https://pub.flutter-io.cn

然后输入

export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

最后输入

export PATH=G:\Flutter\flutter\bin:$PATH

这个地址是步骤2自己Flutter SDK 的地址。

上述操作做完后,在环境变量中将Flutter路径设置到path中

Flutter + Tensorflow Lite环境配置_第1张图片

4. 安装环境依赖

在Flutter bin文件夹下,打开PowerShell(shift+右键),然后输入

flutter doctor

然后会自行下载各种依赖库,这段时间受网速影响会比较长,有事可能会失败,多试几次就好了。都安装完后,在运行一遍

flutter doctor

可以看有没有什么地方出错,图中报错没有设备连接,这个暂时不用管,后面会用Android Studio 中新建虚拟设备。

Flutter + Tensorflow Lite环境配置_第2张图片

上面就是Flutter环境配置的问题, 想要开发Flutter还需要其他软件,下面介绍使用Android Studio开发Flutter。

5. Android Studio 配置

先安装Android Studio,安装过程中注意需要安装Android Studio 3.0及以上版本和Android SDK。然后点击

Flutter + Tensorflow Lite环境配置_第3张图片

在Plugins里面搜索Flutter和Dart,点击安装。然后重启激活插件,可以看到多了一行 Start a new Flutter project

Flutter + Tensorflow Lite环境配置_第4张图片

剩下的就很简单了,就和普通的新建项目一样。

Flutter + Tensorflow Lite环境配置_第5张图片

Flutter + Tensorflow Lite环境配置_第6张图片

注:如果首次创建项目如果一直卡在Creating Flutter project上,先打开项目文件,如果里面已经有了创建的文件,那么从任务管理器关掉Android Studio,然后重新打开,点击Open an existing Android Studio project,找到项目文件,打开就行了。

Flutter + Tensorflow Lite环境配置_第7张图片

Flutter + Tensorflow Lite环境配置_第8张图片

注:如果编译程序的时候一直卡在resolving dependencies的话可以使用科学上网或者将android/build.gradle设置为

buildscript {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
//        google()
//        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.1.2'
    }
}

allprojects {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/jcenter' }
        maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
//        google()
//        jcenter()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

三、Tensorflow Lite 使用

首先了解Tensorflow Lite的工作模式,如图所示,我们先使用tensorflow训练好神经网络的模型,然后使用Tensorflow Lite转换器将其转换为Tensorflow Lite 模型文件(.tflite)。最后将这个文件在开发移动端程序的时候嵌入到程序中去,这样就可以在移动端实现一些人工智能的操作。

Flutter + Tensorflow Lite环境配置_第9张图片

1. 依赖设定

在 pubspec.yaml 文件中添加 tflite 依赖:

Flutter + Tensorflow Lite环境配置_第10张图片

android/app/build.gradle 文件的 android 中添加以下设定:

2. 使用方法

首先创建 assets 文件夹,将 label 和 model 文件移至文件夹内。在 pubspec.yaml 文件中添加:

  assets:
   - assets/label.txt
   - assets/mobilenet_v1_1.0_224.tflite

然后在代码中引用库

import 'package:tflite/tflite.dart';

最后加载模型和类别标签

String res = await Tflite.loadModel(
  model: "assets/mobilenet_v1_1.0_224.tflite",
  labels: "assets/label.txt",
);

然后就可以使用了。

你可能感兴趣的:(TensorFlow)