简单介绍
TensorFlow Object Detection API是一个基于Tensorflow之上的开源框架,它使得构建、训练和部署目标检测模型变得更加容易。这是一个google的项目,对于计算机视觉研究有很大的帮助。
项目的github地址是:
https://github.com/tensorflow/models/tree/master/research/object_detection
下图是github主页上的一个效果图:
第一个目标检测例子
实验环境
- Win 10 64位
- TensorFlow 1.12.0
代码下载
整个代码的工程地址是:
https://github.com/tensorflow/models/
整个工程还包括很多其他的模块,不光有目标检测。
两种方式下载:
- 使用Github客户端用命令行方式下载,如下图:
- 直接在代码仓库页面下面压缩包,如下图:
安装相关依赖
- protobuf (具体干什么的自己去百度吧 ? )
这里使用3.4.0版本,下载地址为:https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0
由于笔者的实验环境是win10,因此下载了windows版本
这里笔者是使用直接下载安装包再解压到固定目录的方式(git clone实在太慢 ? ),笔者目录结构如下:
另外还需要安装一些python包的库,包括下面这些:
pip install cython contextlib2 pillow lxml jupyter matplotlib
编译Protobuf
由于TensorFlow Object Detection API使用Protobufs来配置模型和训练参数(和caffe一样?),因此需要先编译一下,最简单的方式是把protoc-3.4.0-win32\bin\protoc.exe
拷贝到models-master\research\
目录下面(也就是让protoc.exe
和object_detection
同级),然后打开cmd命令行,切换models-master\research\
目录,执行下面命令:
protoc.exe object_detection/protos/*.proto --python_out=.
如果有错误就是路径没设置正确!(此外,尽量使用v3.4版本,其他版本可能出错 ? )
Run起来
cmd切换object_detection
目录,然后执行:
jupyter notebook
默认浏览器会打开jupyter notebook目录,如下图:
打开object_detection_tutorial.ipynb
文件:
打开以后直接Cell
→Run All
看效果吧:
最后会得到下面两个目标检测的结果:
简单分析
- 上面的代码下载使用了pre-trained模型:
MODEL_NAME = ‘ssd_mobilenet_v1_coco_2017_11_17’
MODEL_FILE = MODEL_NAME + ‘.tar.gz’
DOWNLOAD_BASE = ‘http://download.tensorflow.org/models/object_detection/’
完整的模型路径是:
http://download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2017_11_17.tar.gz
- 测试图片在目录
test_images
下,有两张,分别叫image1.jpg
和image2.jpg
。