提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
Android应用APP: 基于MobileNet和EfficientNet的图像分类模型_调试运行以及打包Tensorflow官方提供的Image classification demo
环境准备
JDK安装
JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。此处不再赘述,安装详情参考:链接, 本人安装的版本是:1.8.0_202
,安装完成后可通过命令:java -version
来验证安装的版本。
Android Studio安装
Android Studio是Android开发常用的IDE, 下载链接, 下载之后安装即可,安装详情参考:链接, 本人下载的版本是:4.1.1
.
项目准备
打开Git, 运行命令: git clone https://github.com/tensorflow/examples
, 完成后所有的TF demo已经克隆到当前目录下。本人下载到目录:E:\softWork\pythonWorkstation\PyCharm
, 在该目录下可以看到examples目录,沿着图示目录打开可看到所有的Android demo。本次就以image classification为例进行介绍。
项目分析
项目导入
首先启动Android Studio, 然后点击 ”Open an existing directory
“, 定位到目录:E:\softWork\pythonWorkstation\PyCharm\examples\lite\examples\image_classification\android
,点击OK,
项目成功导入。
项目分析
在settings.gradle文件可以看到如下信息:
models: 存放models文件(**.tflite
)以及labels.txt
,
其中 models模型文件用于在在推理阶段预测物体的类别,labels.txt用于在预测的Post processing 阶段将预测的类别k映射到第K个类别对应的物体名称;
注:实际上当获得tflite模型文件后,整个项目已经变成一个基于tensorflow的Android开发项目,与ML\DL算法没啥关系了。
app:
app\src\main\java\org\tensorflow\lite\examples\classification
下主要是前端代码以及各种事件/活动监听,其中:
lib_support:
待续
lib_task_api:
待续
注:lib_support和lib_task_api对应的分别两种实现方式。
项目调试
配置
build.gradle: 修改android.tool.build:gradle版本,如下图:
models\build.gradle: 修改sdk的版本(30)
app\build.gradle: 修改sdk version(30), jdk的版本(1.8)
models\download.gradle: 在Gradle Synchronize的过程中会执行该文件以从指定的URL文件下载相应的models (**.tflite), 这个过程需要访问google,笔者在Gradle Synchronzie的过程中就因为无法访问google而无法下载models.
解决方法:将以下四行代码注释,然后从第三方网站下载这四个models: mobilenet_v1_1.0_224.tflite
, mobilenet_v1_1.0_224_quant.tflite
, efficientnet-lite0-fp32.tflite
, efficientnet-lite0-int8.tflite
, 下载完成后将这四个model文件存放到目录:models\src\main\assets 下。
// preBuild.dependsOn downloadModelFloat
// preBuild.dependsOn downloadModelQuant
// preBuild.dependsOn downloadEfficientNetFloat
// preBuild.dependsOn downloadEfficientNetQuant
注: 导入项目后,会自动进行Gradle Synchronize, 一般会Failed, (上述配置没有执行),配置完成后,重新:Build->rebuild project, 成功后会出现如下信息:
模拟器运行
Android Studio提供了android模拟器,点击AVD Manager
-> Create virtual Device
创建模拟器,笔者创建模拟器如下,创建完成后启动该模拟器(Launch this AVD in the emulator),会弹出一个虚拟的手机。
然后选中该创建的AVD,如下图,点击run运行,
运行成功,手机界面如下:
可以看到有4个model供选择,系统会显示后验概率最大的几个类别以及相应的置信度。
注:也可以直接在手机上运行,只需要USB连接手机到PC,然后选中手机,再Run即可。
打包
关闭,模拟器后在目录: app\build\outputs\apk\support\debug
下会看到 app-support-debug.apk, 然而这个在手机上是无法正常启动运行的。要想在手机上正常运行,首先打包成APK,然后就可以像其他APP一样安装了。
打包流程
待续