zoukankan      html  css  js  c++  java
  • Tensorflow object detection API(1)---环境搭建与测试

    参考:

    https://blog.csdn.net/dy_guox/article/details/79081499

    https://blog.csdn.net/u010103202/article/details/79899293

    https://www.jianshu.com/p/4ebaa78e0233

    一、开发环境搭建

    操作系统:Windows10 64位

    TensorFlow:1.8

    python:3.5

    1.安装tensorflow_gpu版本的环境:

    1)安装.Net Framework4.6

    下载页面的链接为:https://www.microsoft.com/en-us/download/details.aspx?id=53344
    下载页面如下图所示,点击下图红色箭头标注处即可开始下载:

    点击Download按钮,其实是向资源链接发起请求,所以直接访问资源链接同样可以开始下载任务。
    下载链接:https://www.microsoft.com/en-us/download/confirmation.aspx?id=53344

    下载好直接双击,一路next

    2)安装CUDA9.0

    下载见:https://www.jianshu.com/p/c73668544925

    安装默认路径就好,一路下一步,如果提示兼容性不兼容请无视,安装模式选择精简,下一步勾选下图中的上方红色方框标注处,然后NEXT按钮会亮起。
    点击下图中的下方红色箭头标注处中的NEXT按钮,进入下一步。

    注意: 对应的显卡驱动,如果驱动较新,在安装CUDA的时候会有提示可能不兼容,可以无视。

    接下来就等待安装就好,结束界面中两个可选项不用勾选
    点击下图中的下方红色箭头标注处中的关闭,安装CUDA9.0结束。。

    3)安装cudnn7.3

    下载见:https://www.jianshu.com/p/4ebaa78e0233

    下载后解压,将文件夹cuda中有3个文件夹:bin、include、lib,和1个文件NVIDIA_SLA_cuDNN_Support.txt复制粘贴到CUDA安装路径下

    本文作者的CUDA安装路径:C:Program FilesNVIDIA GPU Computing ToolkitCUDAv9.0

    4)安装tensorflow_gpu

    第一种方法

    下载见:https://www.jianshu.com/p/4ebaa78e0233

    运行pip install命令安装本地WHL文件

    在放tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl的文件夹打开cmd,在cmd中输入命令:pip install tensorflow_gpu-1.10.0-cp36-cp36m-win_amd64.whl,然后按Enter键运行命令。

     最后出现Successfully开头即为成功。

    第二种方法:

    Tensorflow有CPU版本与GPU版本,首先安装CPU版本。采用pip原生安装。“开始-Anaconda3-Anaconda Prompt”调出命令行。

    pip install --upgrade tensorflow然后安装GPU版本。此过程中有报错,

    先运行conda install pip更新pip程序即可。

    pip install --upgrade tensorflow-gpu

    运行pip install命令安装msgpack库

    考虑到部分读者可能没有安装运行tensorflow必需的msgpack库
    在cmd中输入命令:pip install msgpack,然后按Enter键运行命令。

    二.测试自带案例

    1.安装object detection API环境

    1、下载TensorFlow object detection API

    https://github.com/tensorflow/models

    我们需要的目标检测在model文件夹下的research文件夹里

    也可以直接访问:

    https://github.com/tensorflow/models/tree/master/research/object_detection

    下载代码库

    在models代码库的界面中,有下载整个代码库的按钮,如下图红色箭头标注处所示:

     下载到本地目录(避免中文),解压。

     2.下载Protobuf

    目的是将proto文件转成py文件

    Protobuf(Google Protocol Buffers)是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML和Json数据差不多,把数据已某种形式保存起来。Protobuf相对与XML和Json的不同之处,它是一种二进制的数据格式,具有更高的传输,打包和解包效率。
    下载Protobuf网址:https://github.com/google/protobuf/releases
    下载Protobuf网址页面如下图所示,下图中红色箭头标注处是Protobuf在操作系统Windows中可以直接运行的protoc程序,下载该压缩文件protoc-3.4.1-win32.zip

    将压缩文件protoc-3.4.1-win32.zip解压后的bin文件夹protoc.exe复制到路径:C:\Windows

    将object_detectionprotos文件夹下的.proto文件转成.py

    可以看到有很多proto文件

    第一种方法

     用这段代码将object_detectionprotos文件夹下的.proto文件转成.py,只需将E:目标检测models-master esearchobject_detectionprotos/改成你的文件路径

     1 import os
     2 file_list = os.listdir(r'E:目标检测models-master
    esearchobject_detectionprotos/')
     3 proto_list = [file for file in file_list if '.proto' in file]
     4 print('object_detection/proto文件夹中共有%d个proto文件' %len(proto_list))
     5 for proto in proto_list:
     6     execute_command = 'protoc object_detection/protos/%s --python_out=.' %proto
     7     os.popen(execute_command)
     8 file_list = os.listdir(r'E:目标检测models-master
    esearchobject_detectionprotos/')
     9 py_list = [file for file in file_list if '.py' in file]
    10 print('通过protoc命令产生的py文件共有%d个' %(len(py_list) - 1))

    结果是:

    object_detection/proto文件夹中共有29个proto文件
    通过protoc命令产生的py文件共有29个

    就是修改成功,你可以进入protos文件夹查看每个proto文件下都有一个对应的py文件。

    第二种方法:

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

    在这一步有时候会出错,可以尝试把/*.proto 这部分改成文件夹下具体的文件名,一个一个试,每运行一个,文件夹下应该

    出现对应的.py结尾的文件。不报错即可

    3、PYTHONPATH 环境变量设置

    在 ‘此电脑’-‘属性’- ‘高级系统设置’ -‘环境变量’-‘系统变量’ 中新建名为‘PYTHONPATH’的变量,将

    models/research/ 及 models/research/slim 两个文件夹的完整目录添加,分号隔开。

    接下来可以测试API,在 models/research/ 文件夹下运行命令行:

    python object_detection/builders/model_builder_test.p

     不报错说明运行成功。

    4.测试自带案例

    “开始-Anaconda3-Anaconda Prompt”调出命令行,改变工作目录至 models esearchobject_detection


    然后输入jupyter notebook,就会调用浏览器打开当前文件夹,点开 object_detection_tutorial.ipynb,



    在新标签页中打开 Object Detection Demo,点击上方的 “Cell”-"Run All",

    就可以直接看到结果,最后输出的是两张图片的识别结果,分别是狗,以及沙滩。第一次运行由于需要下载训练好的模型,耗时较长。第二次之后可以将 .ipynb文件中 Download Model 即 in[5]部分的代码注释掉,以加快运行速度。



    如果在notebook中运行有问题,可以将.ipynb中in[]的代码复制到.py中,然后在 开始-Anaconda3-spyder 中运行。

    至此Tensorflow object detection API 的环境搭建与测试工作完成。








  • 相关阅读:
    (转)使用Regex.Replace只替换字符串一次
    转:div超出范围显示省略号
    ibatis This SQL map does not contain a MappedStatement
    ibatis 多表关联
    ibatis 传入xml Hashtable的应用以及动态字段出错的解决方法
    前台学习过程
    转:C#动态循环生成button怎么分别写他们的事
    在oracle DB 中通过JOB 调用存储过程
    sybase与oracle存储过程的写法对比
    游标Oracle游标使用大全
  • 原文地址:https://www.cnblogs.com/qqw-1995/p/10072722.html
Copyright © 2011-2022 走看看