Windows下如何使用Tensorflow Object Detection API

Windows下如何使用Tensorflow Object Detection API

2018年01月17日 12:10:31

阅读数:1078

如果大家会使用Linux系统,就在Linux下安装TensorFlow吧,比Windows下配置环境简单多了,而且一般玩深度学习,都在Linux环境下。本文只介绍在Windows下如何配置TensorFlow和使用Object Detection API。

1 环境需要

  • Windows系统
  • Python 3.X
  • CUDA Toolkit 8与 cuDNN V6 (记住一定要用CUDA 8 和cuDNN V6 版本,其他版本我是没有跑通)
  • Object Detection 模型下载
  • protoc
  • 依赖库:Protobuf 2.6 / Pillow 1.0 / lxml /Jupyter notebook / Matplotlib/ Tensorflow

2 安装步骤

此处不介绍Python 环境的安装步骤,如有需要,自行查之。

2.1 CUDA Toolkit 8与 cuDNN V6

用gpu来运行Tensorflow还需要配置CUDA和cuDnn库,

2.1.1 用以下link下载win10(64bit)版本CUDA安装包,大小约为1.2G             https://developer.nvidia.com/cuda-downloads

安装cuda_8.0.61_win10.exe,完成后配置系统变量,在系统变量中的CUDA_PATH中,加上三个路径, C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0(一般安装完,安装程序都会自动添加完系统环境变量)

2.1.2 用以下link下载cuDnn库  https://developer.nvidia.com/cudnn

下载解压后,为了在运行tensorflow的时候也能将这个库加载进去,我们要将解压后的文件拷到CUDA对应的文件夹下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0

2.2 Object Detection 模型下载

从github上下载模型,下载地址:https://github.com/tensorflow/models 

(下载的文件名为:models-master.zip) 

解压文件到磁盘指定目录,我的是E:\Tensorflow\ObjectDetection,重命名为models

(此包内包括各种内容,我们所用到的object_detection文件夹在E:\Tensorflow\ObjectDet

ection\models\research文件夹下)

2.3 protoc安装与编译

https://github.com/google/protobuf/releases下载win版的工具,即:protoc-3.4.0-win32.zip,

解压到E:\Tensorflow\ObjectDetection目录下,生成:bin, include两个文件夹。

将bin文件夹中的【protoc.exe】放到C:\Windows\System32文件夹下,在E:\Tensorflow\Object

Detection\models\research文件夹下按住shift点击鼠标右键,打开命令窗口,输入protoc显示如下内

容就说明可以开始编译了。

Protobuf 编译,用protoc可执行文件编译目录object_detection/protos下的proto文件,生成Pyth

on文件。

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

我们可以看见.proto文件已经被编译为了.py文件。

2.3 依赖库下载

在Python安装文件里Scripts文件下,运行运行如下命令:

# For CPU
pip install tensorflow
# For GPU
pip install tensorflow-gpu
pip install pillow
pip install lxml
pip install jupyter
pip install matplotlib

3 运行Demo

  用命令行打开jupyter notebook进行测试

打开官方提供的文件:object_detection_tutorial.ipynb运行demo

在cell中选择runAll,正常的话稍等一会儿就会有结果

运行大部分时间都是用来下载模型的,此demo不需要驯良数据,模型是训练好的,运行大概需要10分钟左右。

运行结果:

4 修改模型,运行自己数据

Speed表示速度,COCO mAP表示在COCO数据集上的平均准确率,第一个ssd_mobilenet就是我们默认使用的pre-train模型 

 
  1. # What model to download.

  2. MODEL_NAME = 'ssd_mobilenet_v1_coco_11_06_2017'

  3. #MODEL_NAME = 'faster_rcnn_resnet101_coco_11_06_2017'

  4. #MODEL_NAME = 'ssd_inception_v2_coco_11_06_2017'

  5. MODEL_FILE = MODEL_NAME + '.tar.gz'

  6. DOWNLOAD_BASE = 'http://download.tensorflow.org/models/object_detection/'

 
  1. # For the sake of simplicity we will use only 2 images:

  2. # image1.jpg

  3. # image2.jpg

  4. # If you want to test the code with your images, just add path to the images to the TEST_IMAGE_PATHS.

  5. PATH_TO_TEST_IMAGES_DIR = 'test_images'

  6. TEST_IMAGE_PATHS = [ os.path.join(PATH_TO_TEST_IMAGES_DIR, 'image{}.jpg'.format(i)) for i in range(1, 3) ]

在此处修改模型和数据。

运行结果:

faster_rcnn_resnet101_coco 模型:


ssd_mobilenet_v1_coco 模型:

ssd_inception_v2_coco 模型:

猜你喜欢

转载自blog.csdn.net/baobei0112/article/details/81383102