Android Segmentation Demo Based on TFLite
TFLite 是Google基于TensorFlow 推出的移动端深度学习工具。我们可以利用这个工具,将训练好的模型部署到移动端设备上,支持(Android和iOS).
如何应用
选择模型
转换成TFLite模型
利用TensorFlow官方提供的转换工具,可以建多种不同类型的模型,转换成TFLite支持的模型。目前支持
- tf.GraphDef (.pb or .pbtxt)
- tf.keras (.h5)
部署到移动端设备上
将生成的.tflite模型部署到移动端或者嵌入式设备上。
优化模型
通过量化方式,将32位浮点型转换成更有效的8位整型,或者在移动端的GPU上运行。
实例分割Demo
下载Google提供的GPU版本DeeplabV3 tflite模型
- 输入
- 输出
参考TensorFlow examples
里面提供了多种类型的Demo,支持各个平台
开启GPU支持
- Module Gradle 依赖需要使用nightly版本
1
2
3
4
5
6
7
8
9
10repositories {
maven {
url 'https://google.bintray.com/tensorflow'
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
/** ... **/
implementation 'org.tensorflow:tensorflow-lite:0.0.1-gpu-experimental'
} - Java 代码中开启支持
1
2
3
4
5
6
7
8
9
10
11
12
13
14// NEW: Prepare GPU delegate.
GpuDelegate delegate = new GpuDelegate();
Interpreter.Options options = (new Interpreter.Options()).addDelegate(delegate);
// Set up interpreter.
Interpreter interpreter = new Interpreter(model, options);
// Run inference.
writeToInputTensor(inputTensor);
interpreter.run(inputTensor, outputTensor);
readFromOutputTensor(outputTensor);
// Clean up.
delegate.close();