美文网首页深度学习·神经网络·计算机视觉深度学习
目标检测第1步-运行tensorflow官方示例

目标检测第1步-运行tensorflow官方示例

作者: 机器学习算法工程师 | 来源:发表于2019-01-04 18:51 被阅读22次

    前 言

    本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(1)——环境搭建与测试》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79081499,感谢此博客作者。

    在进行本文操作之前,需要先安装好tensorflow的gpu版本

    本文作者的环境:python3.6、Windows10、tensorflow_gpu1.10
    已经安装好的可以跳过,学习如何安装tensorflow的gpu版本的读者请阅读本文作者的另外一篇文章《深度学习环境搭建-CUDA9.0、cudnn7.3、tensorflow_gpu1.10的安装》,链接:https://www.jianshu.com/p/4ebaa78e0233

    本文是写给目标检测入门新手的指导文章,会用示意图将每一步的详细实现过程展示出来。

    本文作者接触深度学习2个月后,开始进行目标检测实践。

    本文作者的专题《目标检测》,链接:https://www.jianshu.com/c/fd1d6f784c1f

    此专题的宗旨是让基础较为薄弱的新手能够顺利实现目标检测,专题内容偏向于掌握技能,学会工具的使用。

    本文作者尚未具备清楚讲述目标检测原理的能力,学习原理请自行另找文章。

    访问tensorflow在github的主页

    tensorflow在github的主页链接:https://github.com/tensorflow
    主页界面如下图所示。

    Repository中文叫做知识库,对于程序员来说即代码库。

    tensorflow这个用户中有很多Repository,我们需要的目标检测代码在models这个Repository中。

    如下图2个红色箭头标注处所示,都是我们想要找的models这个代码库。

    这2个红色箭头标注处,随意选择一个点击,进入下一步。

    注意:因为本文写作的时间与读者浏览网址的时间不同,所以本文写作时的界面与读者浏览网址时的界面也可能不同,读者需要在主页中往下翻即可找到models这个代码库。

    image

    models这个代码库也可以使用链接直接访问https://github.com/tensorflow/models

    代码库界面如下图所示。

    从下图中上方红色箭头标注处可以看出,这个代码库被44617人点赞,说明代码库的流行程度高,受众程度广。

    下图中下方红色箭头标注处的research文件夹,我们需要的目标检测在这个文件夹中。

    点击下图中下方红色箭头标注处,进入下一步。

    image

    models这个代码库中的research文件夹也可以使用链接直接访问:https://github.com/tensorflow/models/tree/master/research

    models这个代码库中的research文件夹页面如下图所示:

    image

    从上图中可以看出没有object_detection这个文件夹,读者需要在页面中往下翻可以找到。

    在页面中往下翻找到object_detection文件夹如下图红色箭头标注处所示。

    点击下图中红色箭头标注处,进入下一步。

    image

    models这个代码库中的research/object_detection文件夹页面如下图所示。

    也可以使用链接直接访问https://github.com/tensorflow/models/tree/master/research/object_detection

    image

    在上图页面中往下翻,可以看到research/object_detection文件夹的指导文件README.md,如下图所示。

    阅读README.md中的内容,可以获得英文版Tensorflow Object Detection API的使用指导。

    image

    下载代码库

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

    image

    通过vpn访问github,速度会加快。

    从下图中可以看出,本文作者下载此代码库的速度为5.4MB/s

    image

    本文作者将此代码库上传到百度云盘,下载链接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ提取码: fnp3

    对于本文的读者来说其实只需要代码库models中的research/object_detection文件夹就可以。

    代码库models文件大小有439M,但是object_detection文件夹只有17M左右。

    压缩文件object_detection.zip的百度云盘下载链接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA提取码: p2sm

    下载完成后,在桌面新建文件夹目标检测,将压缩文件object_detection.zip放入其中,如下图所示。

    image

    选择解压到object_detection,如下图所示。

    image

    解压完成后,文件夹目标检测中的文件情况如下图所示。

    image

    proto文件转py文件

    (1) 下载和安装protoc

    Protobuf(Google Protocol Buffers)是google开发的的一套用于数据存储,网络通信时用于协议编解码的工具库。它和XML和Json数据差不多,把数据已某种形式保存起来。Protobuf相对与XML和Json的不同之处,它是一种二进制的数据格式,具有更高的传输,打包和解包效率。

    下载Protobuf网址:https://github.com/google/protobuf/releases

    下载Protobuf网址页面如下图所示,下图中红色箭头标注处是Protobuf在操作系统Windows中可以直接运行的protoc程序,下载该压缩文件protoc-3.6.1-win32.zip

    image

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

    本文作者复制文件后,确认路径C:\Windows有文件protoc.exe,如下图所示。

    image

    (2) 使用protoc

    在工程object_detection文件夹中,找到文件夹protos,如下图所示:

    image

    进入文件夹protos,从下图中可以看出文件夹中有很多以proto为后缀的文件。

    接下来的操作,就是把这些proto文件转换为py文件。

    image

    与工程object_detection文件夹同级目录中,打开cmd。

    具体操作示意图如下图所示,在资源管理器的路径中输入cmd,按Enter键进入。

    image

    在cmd中输入并运行命令:jupyter notebook

    如下图红色箭头标注处所示:

    image

    在随后弹出的浏览器界面中选择新建一个ipynb文件,即点击选择New->Python3。

    具体操作示意图如下图所示。

    image

    将下面一段代码复制到第1个单元格中,并且运行此段代码。
    运行此段代码的按钮选择Cell->Run Cells即可。

    image.png

    上面一段代码的运行结果如下图所示。

    如果显示通过protoc命令产生的py文件共有27个,重新运行此段代码即可。

    image

    重新进入文件夹object_detection/protos,文件按照文件名排序。

    从下图中可以看出文件夹中每个proto文件后都有一个py文件,即将proto文件转py文件成功

    image

    下载模型

    (1)下载压缩模型

    下载模型指的是下载已经训练好的模型。
    在文件object_detection_tutorial.ipynb中有下载模型的代码语句。
    代码可以运行,但是无法得到结果,因为代码中的下载链接是国外的网址。

    压缩文件ssd_mobilenet_v1_coco_2017_11_17.zip上传到百度网盘,
    链接:https://pan.baidu.com/s/1ywlp46lK-WYZ_11sUXqftw提取码: yv5i

    (2)解压压缩模型

    将下载好的压缩文件放到工程object_detection文件夹中,如下图所示。

    image

    选择解压到ssd_mobilenet_v1_coco_20...,如下图红色箭头标注处所示。

    注意,不要选择解压到当前文件夹,否则代码运行时会无法找到模型文件。

    image

    (3)正确解压示意

    如下图红色箭头标注处所示,在压缩文件解压后,工程object_detection文件夹中有文件夹ssd_mobilenet_v1_coco_2017_11_17

    image

    文件夹ssd_mobilenet_v1_coco_2017_11_17中有文件夹saved_model和6个文件。

    image

    扩展运行ipynb文件

    (1)打开ipynb文件

    在工程object_detection文件夹中运行cmd。

    即在资源管理器的路径中输入cmd,按Enter键进入。

    具体操作示意图如下图所示。

    image

    在cmd中输入并运行命令:jupyter notebook

    如下图红色箭头标注处所示:

    image

    在新打开的浏览器界面中打开代码文件object_detection_tutorial.ipynb

    点击下图红色箭头标注处即可打开代码文件

    image

    代码文件的页面如下图所示。

    image

    (2)删除代码模块

    将代码文件的界面下拉到出现Download Model代码块。

    删除下图中下方红色箭头标注处的代码块。

    操作方法是在选中此代码块的情况下,点击下图中上方红色箭头标注处的剪切按钮。

    此代码块的作用是从网络中下载模型,这一步我们已经在本文第4章中实现。

    image

    删除代码块成功后,代码文件的界面如下图所示。

    image

    (3)运行代码

    在代码文件的界面中选择运行所有代码块。

    具体操作示意图如下图所示,点击下图中红色箭头标注处即可。

    image

    如果代码成功运行的话,运行结果如下图所示。

    image

    总结

    1. 本篇文章只是目标检测的第1步,本文作者会在后续的文章中介绍如何训练自己的模型。

    2. 希望读者阅读此文章,能够顺利完成目标检测的入门。

    **** image

    ****

    END

    往期回顾

    【1】 机器学习论文笔记—如何利用高效的搜索算法来搜索网络的拓扑结构

    【2】 手把手教你用keras--像搭乐高积木一样搭建神经网络(lenet)

    【3】 轻量级CNN网络之MobileNetv2

    【4】 【学习干货】目标检测算法之SSD

    【5】 干货|(DL~4)对象定位和检测

    机器学习算法工程师


    一个用心的公众号

    image

    长按,识别,加关注

    进群,学习,得帮助

    相关文章

      网友评论

        本文标题:目标检测第1步-运行tensorflow官方示例

        本文链接:https://www.haomeiwen.com/subject/ecbkrqtx.html