简单介绍

TensorFlow Object Detection API是一个基于Tensorflow之上的开源框架,它使得构建、训练和部署目标检测模型变得更加容易。这是一个google的项目,对于计算机视觉研究有很大的帮助。
项目的github地址是:
https://github.com/tensorflow/models/tree/master/research/object_detection
下图是github主页上的一个效果图:
TensorFlow Object Detection系列教程一:Hello world!

第一个目标检测例子

实验环境

  • Win 10 64位
  • TensorFlow 1.12.0

代码下载

整个代码的工程地址是:
https://github.com/tensorflow/models/
整个工程还包括很多其他的模块,不光有目标检测。
两种方式下载:

  • 使用Github客户端用命令行方式下载,如下图:
    TensorFlow Object Detection系列教程一:Hello world!
  • 直接在代码仓库页面下面压缩包,如下图:
    TensorFlow Object Detection系列教程一:Hello world!

安装相关依赖

  • protobuf (具体干什么的自己去百度吧 ???? )
    这里使用3.4.0版本,下载地址为:https://github.com/protocolbuffers/protobuf/releases/tag/v3.4.0
    由于笔者的实验环境是win10,因此下载了windows版本
    TensorFlow Object Detection系列教程一:Hello world!
    这里笔者是使用直接下载安装包再解压到固定目录的方式(git clone实在太慢 ???? ),笔者目录结构如下:
    TensorFlow Object Detection系列教程一:Hello world!
    另外还需要安装一些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.exeobject_detection同级),然后打开cmd命令行,切换models-master\research\目录,执行下面命令:

protoc.exe object_detection/protos/*.proto --python_out=.

如果有错误就是路径没设置正确!(此外,尽量使用v3.4版本,其他版本可能出错 ???? )

Run起来

cmd切换object_detection目录,然后执行:

jupyter notebook

默认浏览器会打开jupyter notebook目录,如下图:
TensorFlow Object Detection系列教程一:Hello world!
打开object_detection_tutorial.ipynb文件:
TensorFlow Object Detection系列教程一:Hello world!
打开以后直接CellRun All看效果吧:
TensorFlow Object Detection系列教程一:Hello world!
最后会得到下面两个目标检测的结果:
TensorFlow Object Detection系列教程一:Hello world!

简单分析

  • 上面的代码下载使用了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.jpgimage2.jpg

参考

相关文章: