虽然已经有这么多的资料来介绍如何使用Tensorflow的物体检测接口,但是一般都是工程性质的,没有对相关的细节进行研究。我自然也没有研究很多的细节,但是对其中感兴趣的部分进行了些许的研究。所以就想自己来写一下整个操作过程中的心得体会,一来是对自己工作的一个总结,二来或许会帮助一些正在填坑的童鞋。
首先给出一些其他的介绍物体检测Api的资源:
安装及训练流程
Raccoon detector
TensorFlow —— 30秒搞定物体检测
Deep Dive into Object Detection with Open Images, using Tensorflow
Mac安装tensorflow Object detection Api
使用tensorflow object detection api训练自己的数据
Train a TensorFlow Object Detection Classifier for multiple object detection on Windows
这是window上的版本,作者还在Youtube上上传了教学视频,手把手教大家如何操作。
GPU&CPU 并行加速
ssd mobilenet v1 在TX2上加速,此链接给出的是通过将训练好的ssd模型中的卷积部分和NMS部分分别在GPU和CPU上运行来加速模型的inference速度的,实测至少可以达到18FPS. 相关的讨论参见here
Tensorflow Lite:
Training and serving a realtime mobile object detector in 30 minutes with Cloud TPUs
这是2018.7.14由谷歌官方博客给出的详细的利用tensorflow object detection api & TPU训练自己数据,并且将模型转换为tf-lite模型移植到手机端的很详细的手把手教程。其实也不一定非要用TPU,我自己在mac上测试过,关键是从源代码安装 TensorFlow容易出问题,大家可以小心的试一下。
Tensorflow Mobile
当然你也可以不用Tf-Lite, 而是直接将电脑端训练好的模型应用在手机端,可以参考A GUIDE TO RETRAINING OBJECT DETECTION MODELS WITH TENSORFLOW或者参考官网的
Building TensorFlow on Android
计划在博客中以此为题展开一个系列的讲解,包括
Tensorflow Api的安装
标注数据获取及格式转换
模型训练流程
ssd-mobilenet v1 算法结构及代码介绍