Tensorflow Object Detection API使用
2017-12-21 21:02
726 查看
一、安装 Tensorflow 及 Object Detection API
1.安装Tensorflow
TensorFlow中文社区文档:Tensorflow安装。2.安装Object Detection API
参考Github上,TensorFlowmodels/research/object_detection里的安装教程。
添加库的路径到PYTHONPATH,使用编辑器如gedit打开
~/.bashrc文件,将以下命令添加到一个新行。其中
pwd代表
models/research的路径,可去掉`符号,然后在终端
bash一下。
# From tensorflow/models/research/ export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
注:pip install 如果是用sudo,则安装系统默认python下的包,如果TensorFlow是安装在其他python下(如miniconda),则不加sudo。
二、使用 Oxford-IIIT Pet 数据集进行测试
1.下载解压数据集,并将其转换为TFRecords
参考Github上,TensorFlowmodels/research/object_detection里的说明文档。
Pet数据集里有部分图片损毁,应该删除掉,否则会在运行eval.py时报以下错误:
Corrupt JPEG data: 240 extraneous bytes before marker 0xd9。参考文档可知,
egyptian_mau_14, 139, 145, 156, 167, 177, 186, 191; abyssinian_5, 34; chihuahua_121; beagle_116为损坏的文件,应删去对应的
.jpg; .xmls;以及
list.txt、test.txt、trainval.txt里对应的行。
2.下载用于迁移学习的预训练模型
在Tensorflow Detection Model Zoo里下载 COCO-pretrained SSD with MobileNet model,存放在models/research文件夹中,并解压。
tar -xvf ssd_mobilenet_v1_coco_2017_11_17.tar.gz
3.配置对象检测管道
参考文档在 Tensorflow object detection API 里,配置文件定义了模型参数、训练参数等参数,文件为
object_detection/protos/pipeline.proto。在此实验中,采用一些预定义模板,选择在
object_detection/samples/configs文件夹中的模板,此处采用
ssd_mobilenet_v1_pets.config作为而配置管道的起点。如果不采用预定义模板配置管道,参考Configuring the Object Detection Training Pipeline。
在
ssd_mobilenet_v1_pets.config文件中,修改
fine_tune_checkpoint、
input_path和
label_map_path路径。
fine_tune_checkpoint应该提供一个已存在的checkpoint路 ,在下载的预训练模型的文件中包含有
model.ckpt.data-00000-of-00001, model.ckpt.index, model.ckpt.meta,比如
fine_tune_checkpoint的路径可设置为
/home/cyj/Project/models/research/ssd_mobilenet_v1_coco_2017_11_17/model.ckpt。
4.运行
运行训练程序# From the tensorflow/models/research/ directory python object_detection/train.py \ --logtostderr \ --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \ --train_dir=${PATH_TO_TRAIN_DIR} \
${PATH_TO_YOUR_PIPELINE_CONFIG}指向管道训练文件,如
/home/cyj/Project/models/research/object_detection/samples/configs/ssd_mobilenet_v1_pets.config,
${PATH_TO_TRAIN_DIR}定义训练事件写入路径,先新建相关
train文件夹,如
/home/cyj/Project/models/research/train,
output_inference_graph.pb为导出的训练的模型。
TensorFlow 模型保存参考文档。
运行测试程序
# From the tensorflow/models/research/ directory python object_detection/eval.py \ --logtostderr \ --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \ --checkpoint_dir=${PATH_TO_TRAIN_DIR} \ --eval_dir=${PATH_TO_EVAL_DIR}
${PATH_TO_EVAL_DIR}定义测试事件写入路径,先新建相关
eval文件夹,如
/home/cyj/Project/models/research/eval。
运行Tensorboard
模型训练和测试的过程可通过Tensorboard进行查看,使用以下命令运行Tensorboard:
tensorboard --logdir=${PATH_TO_MODEL_DIRECTORY}
其中
${PATH_TO_MODEL_DIRECTORY}指向包含
train和
eval的目录。例如
~$ tensorboard --logdir=/home/cyj/Project/models/research。
输出训练的模型
模型训练后,将其导出为TensorFlow Graph样式。一个checkpoint由以下三个部分组成:
model.ckpt-${CHECKPOINT_NUMBER}.data-00000-of-00001, model.ckpt-${CHECKPOINT_NUMBER}.index model.ckpt-${CHECKPOINT_NUMBER}.meta
当要把已有的checkpoint转化为graph,执行以下代码即可得到名为
output_inference_graph.pb
的graph。
# Fr 9565 om tensorflow/models/research/ python object_detection/export_inference_graph.py \ --input_type image_tensor \ --pipeline_config_path ${PIPELINE_CONFIG_PATH} \ --trained_checkpoint_prefix ${TRAIN_PATH} \ --output_directory output_inference_graph.pb
三、使用模型进行检测
参考代码 Github: Video_Object_Detection, 此实验中可通过模型,进行照片和视频中的目标检测。相关文章推荐
- (更新视频教程)Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型
- 谷歌开源的TensorFlow Object Detection API的使用教程
- Tensorflow Object Detection API使用
- 使用TensorFlow Object Detection API进行图像物体检测
- tensorflow object detection API 使用记录2
- tensorflow object_detection API使用
- TensorFlow object detection api------ssd_mobilenet使用
- tensorflow object detection API 使用记录3
- Tensorflow Object Detection API使用
- tensorflow object detection API 使用记录2
- tensorflow object detection API 使用记录1
- Windows下如何使用Tensorflow Object Detection API
- TensorFlow object detection api------ssd_mobilenet使用
- 使用tensorflow object detection API 进行物体识别
- TensorFlow Object Detection API教程——利用自己制作的数据集进行训练预测和测试
- Tensorflow Object Detection API 安装
- 学习 train.py ( TensorFlow Object Detection API)
- tensorflow object detection API安装
- Tensorflow object detection API 源码阅读笔记:RFCN
- TensorFlow Object Detection API 跑代码过程