7.7.4 tensorflow目标检测库
    tensorflow中提供了目标检测算法的实现以及预训练模型,依赖的软件环境为:
    ? protobuf 3.0.0
    ? python-tk
    ? pillow 1.0
    ? lxml
    ? tf slim(包含在tensorflow/models/research/中)
    ? jupyter notebook
    ? matplotlib
    ? tensorflow (>=1.9.0)
    ? cython
    ? contextlib2
    ? cocoapi
    安装过程为,首先同步tensorflow的模型库。
    git clone https://github.com/tensorflow/models.git
    推荐安装路径为:
    adversarial_examples/code/models/models
    然后安装protobuf工具,如果是linux环境,则执行以下命令。
    # from tensorflow/models/research/
    wget -o protobuf.zip
    https://github.com/google/protobuf/releases/download/v3.0.0/protoc-3.0.0-
    linux-x86_64.zip
    unzip protobuf.zip
    # from tensorflow/models/research/
    ./bin/protoc object_detection/protos/*.proto --python_out=.
    如果是mac环境,则执行以下命令或者直接执行brew install protobuf。
    curl -ol
    https://github.com/google/protobuf/releases/download/v3.3.0/$protoc_zip
    sudo unzip -o $protoc_zip -d /usr/local/bin/protoc
    rm -f $protoc_zip
    # from tensorflow/models/research/
    protoc object_detection/protos/*.proto --python_out=.
    把当前库添加到系统环境变量中。
    # from tensorflow/models/research/
    export pythonpath=$pythonpath:`pwd`:`pwd`/slim
    执行测试工具,验证安装是否成功。
    # from tensorflow/models/research/
    python object_detection/builders/model_builder_test.py
    run 22 tests in 0.145s
    ok
    tensorflow提供了大量的目标检测模型的实现以及预训练参数。
    https://github.com/tensorflow/models/blob/master/research/object_detection/
    g3doc/detection_model_zoo.md
    tensorflow提供的目标检测模型如图7-33所示。
    图7-33 tensorflow提供的目标检测模型
    tensorflow提供的目标检测模型的预训练参数主要基于mscoco数据集(也被简称coco数据集)进行训练。mscoco数据集是微软团队提供的一个可以用来完成机器视觉任务的数据集,其官方说明网址为http://mscoco.org/。mscoco数据集经典图片示例如图7-34所示。
    下面以faster rcnn为例介绍tensorflow的目标检测模型的预训练参数,下载地址为:http://download.tensorflow.org/models/object_detection/faster_rcnn_resnet101_coco_2018_01_28.tar.gz
    解压到adversarial_examples/code/models:
    # adversarial_examples/code/models/faster_rcnn_resnet101_coco_2018_01_28
    tar -zxvf faster_rcnn_resnet101_coco_2018_01_28.tar.gz
    图7-34 mscoco数据集经典图片示例
    查看目录下文件,其中frozen_inference_graph.pb为模型文件,包含模型的结构和参数信息:
    checkpoint
    model.ckpt.meta
    frozen_inference_graph.pb
    pipeline.config
    model.ckpt.data-00000-of-00001
    saved_model
    model.ckpt.index
    另外还有一个非常重要的文件,即mscoco数据集标签和物体名称的对应关系。
    models/research/object_detection/data/mscoco_label_map.pbtxt
    也可以直接下载并使用。下载网址为:https://github.com/tensorflow/models/blob/master/research/object_detection/data/mscoco_label_map.pbtxt
    另外,tensorflow的目标检测库官方推荐使用1.9及以上版本的tensorflow来运行,出于性能考虑也建议使用gpu版本。使用tensorflow gpu高版本时需要升级cuda库,下面我们介绍如何升级tensorflow需要使用的cuda库。
    首先登录nvidia官网,网址为:https://developer.nvidia.com/cuda-downloads
    根据你的操作系统选择对应的cuda版本,如图7-35所示,我们的gpu服务器是linux x86_64的ubuntu 16,选择通过网络安装。
    然后如图7-36所示,执行提示的相关升级命令安装cuda 10即可。
    sudo dpkg -i cuda-repo-ubuntu1604-10-0-local-10.0.130-410.48_1.0-1_amd64.deb
    sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
    sudo apt-get update
    sudo apt-get install cuda
    图7-35 升级cuda时选择平台
    图7-36 升级cuda 10时执行相关升级命令
    如果想安装cuda 9可以使用以下命令。
    sudo dpkg -i cuda-repo-ubuntu1604_9.0.176-1_amd64.deb
    sudo apt-key adv --fetch-keys
    http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/
    x86_64/7fa2af80.pub
    sudo apt-get update
    sudo apt-get install cuda-9-0
    查看当前安装的cuda的命令如下:
    cat /usr/local/cuda/version.txt
    如果安装的是cuda 9,显示的内容如下:
    cuda version 9.0.176
    升级cudnn到7,升级页面如下:https://developer.nvidia.com/rdp/cudnn-download
    下载对应的版本安装。
    sudo dpkg -i libcudnn7_7.4.1.5-1+cuda10.0_amd64.deb
    sudo dpkg -i libcudnn7-dev_7.4.1.5-1+cuda10.0_amd64.deb
    查看cudnn版本,已经升级到7。
    cat /usr/include/cudnn.h | grep cudnn_major -a 2
    #define cudnn_major 7
    #define cudnn_minor 4
    #define cudnn_patchlevel 1
    推荐使用cuda 9和cudnn 7,安装最新的tensorflow-gpu版本1.11。
    pip install tensorflow-gpu==1.11

章节目录

智能系统与技术丛书·AI安全之对抗样本入门所有内容均来自互联网,一曲书屋只为原作者兜哥的小说进行宣传。欢迎各位书友支持兜哥并收藏智能系统与技术丛书·AI安全之对抗样本入门最新章节