TF-实现Android图像识别应用

效果

TF-实现Android图像识别应用_第1张图片
1.jpg

开发准备

1.tensorflow
2.tensorflow/hub
3.Ubuntu 16.04 LTS
4.Android Studio

一,使用hub训练自己的类别模型

①安装linux环境,推荐Ubuntu
②安装git,克隆tensorflow/hub项目
③进入hub项目,hub/examples/image_retraining目录下
放入自己的图片目录文件(不同类别的图片放在不同子目录下),如放入animal文件夹:


TF-实现Android图像识别应用_第2张图片
1.png

④在image_retraining目录打开命令终端,输入训练命令,详细参考文档Hub文档

sudo python3 retrain.py --image_dir ./animal \
--tfhub_module https://tfhub.dev/google/imagenet/mobilenet_v1_100_224/feature_vector/1

该命令用于生产轻量的手机模型数据,图片大小为224x224,开始训练如图:


TF-实现Android图像识别应用_第3张图片
1.png

注意在运行retrain.py之前,记得先使用pip添加相应依赖。

⑤训练完成


1.png

会在计算机/tmp目录下生成相应的pb文件和labels文件,这就是我们要的数据


TF-实现Android图像识别应用_第4张图片
1.png

二,使用AS开发图像识别应用

①将我们生成的pb文件和labels文件拷贝到项目assets目录下,如:


TF-实现Android图像识别应用_第5张图片
1.png

②AS项目添加tensorflow依赖

implementation 'org.tensorflow:tensorflow-android:+'

②根据tensorflow官方给出的安卓Demo,写出我们需要的TF Classify模块,当然我已经写好了,你可以直接下载Android_TF_Classify

TF-实现Android图像识别应用_第6张图片
1.png

注意tensorflow更新后INPUT_NAME和OUTPUT_NAME已经改变;
图片分类文件夹名为该类别识别出来的结果名,每类图片应大于20张,否则可能要出错,最好大于40张;
本例生成训练图片使用轻量的生成方式,正常生产pb文件是移动应用pb的8倍大小;
本例为一个demo,如需深入学习,请仔细研究文档;

图片附件:animal.zip

你可能感兴趣的:(TF-实现Android图像识别应用)