Tensorflow在Android上的应用(Windows、Mac、Linux)

时间:2021-11-23 12:44:32

1、概述

作为一个Android开发者和Tensorflow爱好者,当发现tensorflow可以在Android平台开发,那必须来玩玩。大多数参考文章说,Tensorflow在Android上的应用只能在Linux系统编译,事实上不是,构建工具bazel 现在支持Windows、Mac、Linux三个平台,windows上没有尝试过,但应该也可以,跟着本文步骤,可以在各个平台实现。本文从搭建环境开始,一步步实现Tensorflow在Android平台上的应用。

2、搭建环境

(1)搭建Java环境

由于后面安装的构建工具Bazel,环境需要jdk8.

Java环境安装指导地址:
http://jingyan.baidu.com/article/215817f7e3f2bd1eda1423f4.html

Java多版本环境安装指导地址:
http://www.cnblogs.com/butterfly-clover/p/5764587.html

(2)搭建SDK环境

android环境最佳下载地址:
http://www.androiddevtools.cn/

(3)搭建NDK环境

NDK下载地址:
http://www.androiddevtools.cn/

NDK配置指导:
http://blog.csdn.net/ztchun/article/details/61197181

(4)安装Bazel

Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven一样。这个工具将在以后编译的时候用到。

一些早期的指导教程Android只能在Linux系统上编译,因为Brazel只支持Linux平台,现在支持三大主流平台,Windows我没试过,应该是可以的。

Tensorflow在Android上的应用(Windows、Mac、Linux)

brazel下载链接及其安装教程:
https://bazel.build/versions/master/docs/install.html

3.编译APK

(1)下载tensorflow

tensorflow下载链接:
https://github.com/tensorflow/tensorflow

(2)修改tensorflow根目录的WORKSPACE

Tensorflow在Android上的应用(Windows、Mac、Linux)

根据实际情况,用vim修改android_ndk_repository、android_sdk_repository的位置和版本:

//vim命令
vim WORKSPACE

Tensorflow在Android上的应用(Windows、Mac、Linux)

(3)bazel构建

切换到tensorflow的根目录下,构建命令:

bazel build //tensorflow/examples/android:tensorflow_demo

构建需要花费较长时间,慢慢等喽。

(4)编译成功

看到下面的结果就OK了。
Tensorflow在Android上的应用(Windows、Mac、Linux)

默认会在tensorflow/bazel-bin/tensorflow/examples/android目录下面生成我们想要的apk文件。

Tensorflow在Android上的应用(Windows、Mac、Linux)

5、运行程序

(1)TF Classify(分类)
分类功能使用谷歌的检测模型实时分类相机的每一帧图片,在相机图片的顶部展示分类结果,如下图展示了三种识别结果。
Tensorflow在Android上的应用(Windows、Mac、Linux)

(2)TF Detect(检测)
演示基于使用深层神经网络的可伸缩对象检测的模型,以实时地在相机预览中本地化和跟踪人。如下图所示。
Tensorflow在Android上的应用(Windows、Mac、Linux)

(3)TF Stylize(风格化)
使用基于“艺术风格的学习表示”的模型,将相机预览图像重新显示为多个不同艺术家的预览图像。如下图对杯子,风格化,效果还不错。

原图:
Tensorflow在Android上的应用(Windows、Mac、Linux)

风格化图:
Tensorflow在Android上的应用(Windows、Mac、Linux)

编译后程序已经上传至github上,欢迎交流。

后面准备基于此SDK开发一些实际应用玩玩,大家有好的建议欢迎留言。