效果
开发准备
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文件夹:
④在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,开始训练如图:
注意在运行retrain.py之前,记得先使用pip添加相应依赖。
⑤训练完成
会在计算机/tmp目录下生成相应的pb文件和labels文件,这就是我们要的数据
二,使用AS开发图像识别应用
①将我们生成的pb文件和labels文件拷贝到项目assets目录下,如:
②AS项目添加tensorflow依赖
implementation 'org.tensorflow:tensorflow-android:+'
②根据tensorflow官方给出的安卓Demo,写出我们需要的TF Classify模块,当然我已经写好了,你可以直接下载Android_TF_Classify
注意tensorflow更新后INPUT_NAME和OUTPUT_NAME已经改变;
图片分类文件夹名为该类别识别出来的结果名,每类图片应大于20张,否则可能要出错,最好大于40张;
本例生成训练图片使用轻量的生成方式,正常生产pb文件是移动应用pb的8倍大小;
本例为一个demo,如需深入学习,请仔细研究文档;
图片附件:animal.zip