手把手带你玩转Tensorflow 物体检测 API (1)——运行实例
本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(1)——环境搭建与测试》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79081499,感谢此博客作者。
0.前言
在进行本文操作之前,需要先安装好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
此专题的宗旨是让基础较为薄弱的新手能够顺利实现目标检测,专题内容偏向于掌握技能,学会工具的使用。
本文作者尚未具备清楚讲述目标检测原理的能力,学习原理请自行另找文章。
文章编号 | 文章名 | 链接 |
---|---|---|
1 | 目标检测实践_tensorflow版SSD运行示例 | https://www.jianshu.com/p/c1d8f1c76de7 |
2 | 目标检测实践_tensorflow版SSD数据准备 | https://www.jianshu.com/p/3d9436b4cb66 |
3 | 目标检测实践_tensorflow版SSD训练自己的数据 | https://www.jianshu.com/p/0e5f9df4686a |
4 | 目标检测实践_tensorflow版SSD模型测试 | https://www.jianshu.com/p/7464c5e00716 |
1.访问tensorflow在github的主页
tensorflow在github的主页链接:https://github.com/tensorflow
主页界面如下图所示。
Repository中文叫做知识库,对于程序员来说即代码库。
tensorflow这个用户中有很多Repository,我们需要的目标检测代码在models这个Repository中。
如下图2个红色箭头标注处所示,都是我们想要找的models这个代码库。
这2个红色箭头标注处,随意选择一个点击,进入下一步。
注意:因为本文写作的时间与读者浏览网址的时间不同,所以本文写作时的界面与读者浏览网址时的界面也可能不同,读者需要在主页中往下翻即可找到models这个代码库。
image.png
models这个代码库也可以使用链接直接访问:https://github.com/tensorflow/models
代码库界面如下图所示。
从下图中上方红色箭头标注处可以看出,这个代码库被44617人点赞,说明代码库的流行程度高,受众程度广。
下图中下方红色箭头标注处的research文件夹,我们需要的目标检测在这个文件夹中。
点击下图中下方红色箭头标注处,进入下一步。
image.png
models这个代码库中的research文件夹也可以使用链接直接访问:https://github.com/tensorflow/models/tree/master/research
models这个代码库中的research文件夹页面如下图所示:
image.png
从上图中可以看出没有object_detection这个文件夹,读者需要在页面中往下翻可以找到。
在页面中往下翻找到object_detection文件夹如下图红色箭头标注处所示。
点击下图中红色箭头标注处,进入下一步。
image.png
models这个代码库中的research/object_detection文件夹页面如下图所示。
也可以使用链接直接访问:https://github.com/tensorflow/models/tree/master/research/object_detection
image.png
在上图页面中往下翻,可以看到research/object_detection文件夹的指导文件README.md,如下图所示。
阅读README.md中的内容,可以获得英文版Tensorflow Object Detection API的使用指导。
image.png
2.下载代码库
在models代码库的界面中,有下载整个代码库的按钮,如下图红色箭头标注处所示:
image.png
通过vpn访问github,速度会加快。
从下图中可以看出,本文作者下载此代码库的速度为5.4MB/s
image.png
本文作者将此代码库上传到百度云盘,下载链接: 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.png
选择解压到object_detection,如下图所示。
image.png
解压完成后,文件夹目标检测中的文件情况如下图所示。
image.png
3.proto文件转py文件
3.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.png
将压缩文件protoc-3.6.1-win32.zip
解压后的文件夹bin中的文件protoc.exe
复制到路径:C:\Windows
本文作者复制文件后,确认路径C:\Windows
有文件protoc.exe
,如下图所示。
image.png
3.2 使用protoc
在工程object_detection文件夹中,找到文件夹protos,如下图所示:
image.png
进入文件夹protos,从下图中可以看出文件夹中有很多以proto为后缀的文件。
接下来的操作,就是把这些proto文件转换为py文件。
image.png
与工程object_detection文件夹同级目录中,打开cmd。
具体操作示意图如下图所示,在资源管理器的路径中输入cmd
,按Enter键进入。
image.png
在cmd中输入并运行命令:jupyter notebook
如下图红色箭头标注处所示:
image.png
在随后弹出的浏览器界面中选择新建一个ipynb文件,即点击选择New->Python3。
具体操作示意图如下图所示。
image.png
将下面一段代码复制到第1个单元格中,并且运行此段代码。
运行此段代码的按钮选择Cell->Run Cells即可。
import os
file_list = os.listdir('object_detection/protos/')
proto_list = [file for file in file_list if '.proto' in file]
print('object_detection/proto文件夹中共有%d个proto文件' %len(proto_list))
for proto in proto_list:execute_command = 'protoc object_detection/protos/%s --python_out=.' %protoos.popen(execute_command)
file_list = os.listdir('object_detection/protos/')
py_list = [file for file in file_list if '.py' in file]
print('通过protoc命令产生的py文件共有%d个' %(len(py_list) - 1))
上面一段代码的运行结果如下图所示。
如果显示通过protoc命令产生的py文件共有27个
,重新运行此段代码即可。
image.png
重新进入文件夹object_detection/protos,文件按照文件名排序。
从下图中可以看出文件夹中每个proto文件后都有一个py文件,即将proto文件转py文件成功。
image.png
4.下载模型
4.1 下载压缩文件
下载模型指的是下载已经训练好的模型。
在文件object_detection_tutorial.ipynb中有下载模型的代码语句。
代码可以运行,但是无法得到结果,因为代码中的下载链接是国外的网址。
压缩文件ssd_mobilenet_v1_coco_2017_11_17.zip上传到百度网盘,
链接: https://pan.baidu.com/s/1ywlp46lK-WYZ_11sUXqftw 提取码: yv5i
4.2 解压压缩文件
将下载好的压缩文件放到工程object_detection文件夹中,如下图所示。
image.png
选择解压到ssd_mobilenet_v1_coco_20...,如下图红色箭头标注处所示。
注意,不要选择解压到当前文件夹,否则代码运行时会无法找到模型文件。
image.png
4.3 正确解压示意
如下图红色箭头标注处所示,在压缩文件解压后,工程object_detection文件夹中有文件夹ssd_mobilenet_v1_coco_2017_11_17。
image.png
文件夹ssd_mobilenet_v1_coco_2017_11_17中有文件夹saved_model和6个文件。
image.png
5.运行ipynb文件
5.1 打开ipynb文件
在工程object_detection文件夹中运行cmd。
即在资源管理器的路径中输入cmd,按Enter键进入。
具体操作示意图如下图所示。
image.png
在cmd中输入并运行命令:jupyter notebook
如下图红色箭头标注处所示:
image.png
在新打开的浏览器界面中打开代码文件object_detection_tutorial.ipynb。
点击下图红色箭头标注处即可打开代码文件。
image.png
代码文件的页面如下图所示。
image.png
5.2 删除代码块
将代码文件的界面下拉到出现Download Model代码块。
删除下图中下方红色箭头标注处的代码块。
操作方法是在选中此代码块的情况下,点击下图中上方红色箭头标注处的剪切按钮。
此代码块的作用是从网络中下载模型,这一步我们已经在本文第4章中实现。
image.png
删除代码块成功后,代码文件的界面如下图所示。
image.png
5.3 运行代码
在代码文件的界面中选择运行所有代码块。
具体操作示意图如下图所示,点击下图中红色箭头标注处即可。
image.png
如果代码成功运行的话,运行结果如下图所示。
image.png
6.总结
- 本篇文章只是tensorflow版SSD的第1步。
- 希望读者阅读此文章,能够顺利完成目标检测的入门。
作者:潇洒坤
链接:https://www.jianshu.com/p/c1d8f1c76de7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
手把手带你玩转Tensorflow 物体检测 API (1)——运行实例相关推荐
- 手把手带你玩转Tensorflow 物体检测 API (4)—— 模型验证
致谢声明 本文在学习<Tensorflow object detection API 搭建属于自己的物体识别模型(2)--训练并使用自己的模型>的基础上优化并总结,此博客链接:https: ...
- 手把手带你玩转Tensorflow 物体检测 API (3)——训练模型
致谢声明 本文在学习<Tensorflow object detection API 搭建属于自己的物体识别模型(2)--训练并使用自己的模型>的基础上优化并总结,此博客链接:https: ...
- 手把手带你玩转Tensorflow 物体检测 API (2)——数据准备
致谢声明 本文在学习<Tensorflow object detection API 搭建属于自己的物体识别模型(2)--训练并使用自己的模型>的基础上优化并总结,此博客链接:https: ...
- Google发布新的TensorFlow物体检测API
\\ Google发布TensorFlow物体检测API,帮助开发人员和研究人员识别图片中的物体.Google专注于提高API的易用性和性能,新的模型于6月16号发布,在基准测试中表现出良好的性能,并 ...
- 手把手带你玩转需求预测-需求预测方法介绍
系列文章目录 手把手带你玩转需求预测 文章目录 系列文章目录 前言 时序预测算法类型 第一代:统计时序预测算法 第二代:经典机器学习方法 第三代:深度学习预测算法 总结 前言 预测算法的本质是从历史数 ...
- Tensorflow物体检测(Object Detection)
最近工作需要折腾 tensorflow, 学会图片分类后开始折腾物体检测. 感谢前人的工作,现在把物体检跑起来还是比较容易的,但优化就不容易了. Tensorflow在更新1.2版本之后多了很多新功能 ...
- 使用SSD网络模型进行Tensorflow物体检测(V1.1摄像头检测)
使用SSD网络模型进行Tensorflow物体检测?(V1.1摄像头检测) 文章目录 使用SSD网络模型进行Tensorflow物体检测?(V1.1摄像头检测) 1.模型的加载和utils库环境的配置 ...
- 手把手带你玩转Spark机器学习-使用Spark构建回归模型
系列文章目录 手把手带你玩转Spark机器学习-专栏介绍 手把手带你玩转Spark机器学习-问题汇总 手把手带你玩转Spark机器学习-Spark的安装及使用 手把手带你玩转Spark机器学习-使用S ...
- 手把手带你玩转Spark机器学习-使用Spark进行数据处理和数据转换
系列文章目录 手把手带你玩转Spark机器学习-专栏介绍 手把手带你玩转Spark机器学习-问题汇总 手把手带你玩转Spark机器学习-Spark的安装及使用 手把手带你玩转Spark机器学习-使用S ...
最新文章
- 【OpenCV 4开发详解】方框滤波
- Concourse:可扩展的开源CI管道工具
- missing 1 required positional argument: 'on_delete'报错解决方案
- 针对Oracle的10G版本提升SCOTT为DBA脚本!
- Linux流量监控工具 - iftop (最全面的iftop教程)
- 大数据在金融领域的应用及问题时
- 视觉传达对中职计算机教育影响,自考视觉传达设计毕业论文:平面设计专业信息化教学资源库建设...
- EMNLP 2019 丨微软亚洲研究院精选论文解读
- 《MYSQL必知必会》—3~9.使用MySQL、检索数据列、排序检索数据列、过滤数据(WHERE子句、组合WHERE子句、通配符、正则表达式)
- 9款超级好用的在线PDF工具!
- 表格里加横线一分为二_Word2010表格分割线一分为二斜线
- 阿里云服务器的80端口被封了么?
- Java 新人含笑7步癫 No.140
- 最全的数据中心(IDC)机房整体工程介绍
- 全量表/增量表/快照表
- 硬件、网卡驱动官方下载地址
- 一个中国佛文化的故事
- 硬盘常见故障问题及解决方法
- 服务端大量处于TIME_WAIT和CLOSE_WAIT状态连接的原因
- [408] NOTES on Computer Organization -计算机考研408笔记-计算机组成原理
热门文章
- easyui,layui和 vuejs 有什么区别
- Babylon-AST初探-代码更新删除(Update Remove)
- maven插件介绍之tomcat7-maven-plugin
- 在Linux下查看环境变量
- linux下tomcat无法显示图片验证码
- poj 3254 状压dp
- 函数重载二义性:error C2668: 'pow' : ambiguous call to overloaded function
- lightbox自定义图片大小的实现
- linux sed名宁,Linux shell利用sed批量更改文件名的方法
- access实例_西门子PLC1200组态王跟Access数据库-⑥组态王变量