0%

Tensorflow Object_Detection

下载 (1).png

准备

准备大体按照官方文档进行。

检查库

1
2
3
4
5
sudo apt-get install protobuf-compiler python-pil python-lxml python-tk
pip install --user Cython
pip install --user contextlib2
pip install --user jupyter
pip install --user matplotlib

COCO API installation

1
pip install git+https://github.com/philferriere/cocoapi.git#subdirectory=PythonAPI

下载 Object_Detection

官方链接在这里。这里我没有下载整个 models,在 linux 下面只下载了 Object_Detection。方法如下:

  1. 首先安装 svn

    1
    sudo apt-get install subversion
  2. 确定导出的文件夹 URL, 比如 https://github.com/tensorflow/models/tree/master/research/object_detection?1540622178700

  3. 首先改为:https://github.com/tensorflow/models/tree/master/research/object_detection
    然后把其中的 tree/master 替换成 trunk。
  4. 导出
    1
    svn checkout https://github.com/tensorflow/models/trunk/research/object_detection
    Reference:https://blog.csdn.net/why19940926/article/details/78580067

    Protobuf Compilation

    文档里面有详细说明。这里我把 Protobuf 直接加入了路径,执行下面的操作:
    1
    protoc object_detection/protos/*.proto --python_out=.
    最后看到 protos 文件夹下有 python 文件生成,如图;

    Add Libraries to PYTHONPATH

    在 Object_Detection 的上一级目录下执行下面代码:
    1
    2
    # From tensorflow/models/research/
    export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
    注意这种方式只对当前命令窗口有效,关掉窗口还是要重新输入,最好的方案是直接把包放到目录下去,比如我的:/home/sunyan/anaconda3/lib/python3.6/site-packages/object_detection

    Testing the Installation

    还是在 Object_Detection 的上一级目录下执行下面代码
    1
    python object_detection/builders/model_builder_test.py
    果不其然,报错了。我就知道没那么容易装好 (┑( ̄Д  ̄)┍)。

    说是 TF 里面没有 keras 模块,但我知道最新的是有的,所以检查一下 TF 的版本:
    1
    2
    3
    import tensorflow as tf
    print(tf.__versin__)
    #1.3.0
    查了一下 TF1.4 版本才有的 keras, 所以通过 pip 升级到最新的版本,这里我选择 TF==1.5:
    1
    pip install tensorflow-gpu==1.5
    重新执行,依旧有报错;

    然而我使用 pycharm 打开后运行通过了,有点奇怪。

    运行 notebook 测试

    因为我装的是 TF1.5,所以首先把里面的这句话删掉:
    1
    2
    if StrictVersion(tf.__version__) < StrictVersion('1.9.0'):
    raise ImportError('Please upgrade your TensorFlow installation to v1.9.* or later!')
    第一次运行需要下载模型,下载时间比较久,第二次就不需要了,可以把下载的代码注释掉。
    1
    2
    # opener = urllib.request.URLopener()
    # opener.retrieve(DOWNLOAD_BASE + MODEL_FILE, MODEL_FILE)
    当然也可以自己下载, 点击下载模型 ,经测试,自己下载的速度还快一点。
    (2018.10.28 Update: 我电脑的 GPU 环境被我搞乱了,目前只能在 CPU 上运行了)
    (2018.10.28 Update: 问题找到了,conda 安装 TF GPU 版本的会自动下载 cuda 和 cudnn,不需要额外安装了)
支持一根棒棒糖!