首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >目标检测第3步-模型训练

目标检测第3步-模型训练

作者头像
潇洒坤
发布于 2018-12-21 05:02:15
发布于 2018-12-21 05:02:15
1.8K3
举报
文章被收录于专栏:简书专栏简书专栏

致谢声明

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

0.前言

本文作者的环境:python3.6、Windows10、tensorflow_gpu1.10

跟随本篇文章实践之前,需要先阅读前置文章《目标检测第2步-数据准备》,链接:https://cloud.tencent.com/developer/article/1375811

现在桌面的目标检测文件夹中需要有object_detection工程文件夹和training数据文件夹,如下图所示:

image.png

如果没有的话,也没有关系。本文作者提供下载链接:

文件training.zip链接: https://pan.baidu.com/s/1Kgp9geSkTFVa_4tfc7ZPew 提取码: 9sy3

文件object_detection.zip的链接:https://pan.baidu.com/s/1Q9SxtKlOqEty08tpFeUUHA 提取码: p2sm

1.解决第1个报错

在桌面的目标检测文件夹中打开cmd,即在路径中输入cmd后按Enter键运行。

打开cmd的方式如下图所示:

image.png

在cmd中运行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,运行结果如下图所示:

image.png

1.1 第1种解决方式

第1种解决方式是通过Windows界面点击操作。

如下图所示,按Windows+Q键可呼唤出搜索界面,在其中搜索环境变量

点击下图中上方红色箭头标记处,进入编辑账户的环境变量

image.png

新建一个系统变量,点击下图红色箭头标记处。

image.png

变量名为:PYTHONPATH

变量值如下图所示,读者填入1号方框中的路径与2号方框中的路径一致即可。

image.png

两项设置好后,点击下图红色箭头标记处所示的确定按钮

image.png

点击下图红色箭头标记处所示的确定按钮,使设置生效。

image.png

1.2 第2种解决方式

使用cmd添加永久环境变量,适用于熟悉cmd命令的读者。

cmd中运行命令:setx -m PYTHONPATH "C:\Users\Administrator\Desktop\目标检测"

命令成功运行后,如下图所示:

image.png

2.解决第2个报错

在进行完第1章,成功添加环境变量后,需要在桌面的目标检测文件夹中重新打开cmd。

在cmd中运行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,运行结果如下图所示:

image.png

从上图可以看出,缺少pycocotools库,在linux系统中安装pycocotools库只需要运行命令:pip install pycocotools

但是在Windows上安装则复杂得多。

2.1 下载并安装Microsoft C++ build 14.0

本文作者花了2个小时研究有没有其他方法解决此报错,最终发现只有先安装C++的编译工具,才能在Windows系统上安装pycocotools库。

首先下载Microsoft C++ build 14.0,链接:https://go.microsoft.com/fwlink/?LinkId=691126

文件只有3M左右大小,下载完成如下图所示。

image.png

打开安装文件visualcppbuildtools.exe,初始化安装程序,如下图所示:

image.png

安装类型选择自定义,然后点击下一步,如下图红色箭头标记处所示。

image.png

选择功能只勾选Windows 10 SDK 10.0.10240,然后点击下一步,如下图所示:

image.png

点击下图红色箭头标记处所示的安装按钮,则开始安装。

image.png

安装过程中截图,如下图所示:

image.png

完成安装后,点击关闭即可。

2.2 下载并安装pycocotools

打开git页面,链接:https://github.com/philferriere/cocoapi

下载按钮的位置如下图所示,点击Download ZIP即可开始下载。

image.png

文件大小只有1.53M,下载完成如下图所示。

image.png

对压缩文件cocoapi-master.zip选择解压到当前文件夹

进入文件夹cocoapi-master中的文件夹PythonAPI,在此文件夹下打开cmd,如下图所示。

image.png

在cmd中运行命令:python setup.py build_ext install,如下图所示:

image.png

如果安装成功,则如下图所示:

image.png

3.解决第3个报错

进行完第2章后,需要在桌面的目标检测文件夹中重新打开cmd。

在cmd中运行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,运行结果如下图所示:

image.png

解决此报错,需要阅读本文作者的文章《目标检测第1步-运行tensorflow官方示例》中的第3章《proto文件转py文件》,文章链接:https://cloud.tencent.com/developer/article/1366125

4.解决第4个报错

进行完第3章后,使用第3章中的cmd即可。

在cmd中运行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,运行结果如下图所示:

image.png

压缩文件models-master.zip下载链接: https://pan.baidu.com/s/1TnHvqNLT0JEZlugrdyABhQ 提取码: fnp3

将models-master/research/slim文件夹中的nets文件夹移动到

桌面的目标检测文件夹中,即文件夹object_detection同级目录。

因为models-master.zip大小为439M,但我们其实只要nets文件夹。

本文作者提供nets文件夹压缩后的压缩文件nets.zip。

下载链接: https://pan.baidu.com/s/1zRkn_TNRlPGAuwQHoO66EQ 提取码: 99s4

下载完成后,将nets文件夹解压到与object_detection相同目录,如下图所示:

image.png

5.解决第5个报错

进行完第4章后,使用第4章中的cmd即可。

在cmd中运行命令:python object_detection/model_main.py --pipeline_config_path=training/ssdlite_mobilenet_v2_coco.config --model_dir=training --alsologtostderr,运行结果如下图所示:

image.png

从上图中可以看出,本文作者使用的显卡是RTX 2070,显卡的显存为8G。

本文作者推荐如果要进行目标检测, 最少也需要配备版本为GTX 1060_显存6G的显卡,否则会出现显存不足。

从上图中可以看出,模型成功调用显卡,开始训练了。

但是训练经过一段时间后会报错,如下图所示:

image.png

解决方法:修改工程文件夹object_detection中的代码文件model_lib.py

如下图所示,找到第418行,将category_index.values()修改为list(category_index.values())

image.png

修改代码文件model_lib.py完成后,则可以在cmd中重新输入命令开启模型训练。

模型训练稳定地进行一段时间后,会做一次模型评估,如下图所示。

所以如果读者看到下图中的情况,则说明模型训练很顺利

image.png

6.查看模型训练状况

模型训练稳定地进行后,在桌面的目标检测文件夹中重新打开cmd。

在cmd中运行命令:tensorboard --logdir=training,如下图所示:

image.png

复制上图中红色箭头标记处的链接,粘贴到浏览器中即可访问。

注意:每台电脑的链接都不同,读者复制自己电脑cmd中显示的链接即可。

如果使用360浏览器,必须使用极速模式不能使用兼容模式。

在浏览器中的界面如下图所示。

在SCALARS标签界面中可以查看准确率Precison、召回率Recall、损失值Loss等模型评估指标。

在IMAGES标签界面中可以查看实时的测试集效果。

在GRAPHS标签界面中可以查看模型的整体架构。

image.png

7.总结

1.本文详细介绍了在Windows操作系统的环境中如何训练自己的目标检测模型。

2.在本文作者的实践中,发现在Linux操作系统中训练速度会快很多。不明白为什么相同的代码,2种操作系统会导致运行效率的差异。如果读者有Linux的主机,本文作者建议为了工作效率,应该使用Linux主机做模型训练。

3.在测试集的图片中,有的图片目标检测效果不错,下面给出了2张演示图。

预测结果1

预测结果2

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.12.02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
3 条评论
热度
最新
模型训练的参数 是不是可以在ssdlite_mobilenet_v2_coco.config文件中设置,还是在代码中设置?
模型训练的参数 是不是可以在ssdlite_mobilenet_v2_coco.config文件中设置,还是在代码中设置?
回复回复点赞举报
File "C:\Users\amyqx\Anaconda3\lib\copy.py", line 169, in deepcopy rv = reductor(4)TypeError: can't pickle dict_values objects [[Node: PyFunc_3 = PyFunc[Tin=[], Tout=[DT_FLOAT], token="pyfunc_5", _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]] [[Node: cond_6/
File "C:\Users\amyqx\Anaconda3\lib\copy.py", line 169, in deepcopy rv = reductor(4)TypeError: can't pickle dict_values objects [[Node: PyFunc_3 = PyFunc[Tin=[], Tout=[DT_FLOAT], token="pyfunc_5", _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]] [[Node: cond_6/
回复回复点赞举报
博主,你的博客写的好好!!!!就是我跟着您做的时候,你的第五个错误我也出现了,然后我也按着你的改了,可是错误怎么还是没有消失呢?求教!!!
博主,你的博客写的好好!!!!就是我跟着您做的时候,你的第五个错误我也出现了,然后我也按着你的改了,可是错误怎么还是没有消失呢?求教!!!
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
目标检测第4步-模型测试
本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79111949,感谢此博客作者。
潇洒坤
2018/12/28
9791
使用TensorFlow一步步进行目标检测(4)
到目前为止,我们已选择了预训练模型,找到了现成数据集,也创建了自己的数据集,并将其转换为TFRecord文件。 接下来,我们开始训练模型。
云水木石
2019/07/01
5530
目标检测第2步-数据准备
本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79111949,感谢此博客作者。
潇洒坤
2018/12/21
1.3K2
目标检测笔记二:Object Detection API 小白实践指南
本文使用公开数据去运行Tensorflow 新推出的 Object Detection API 带大家实验 Faster RCNN 的 training。 Faster RCNN 是 object detection 中的經典方法, 而 object detection 主要是由 classification 与 localization 所組成,可以參考 cs231n
十四君
2019/11/27
1.1K0
目标检测笔记二:Object Detection API 小白实践指南
目标检测第1步-运行tensorflow官方示例
在进行本文操作之前,需要先安装好tensorflow的gpu版本。 本文作者的环境:python3.6、Windows10、tensorflow_gpu1.10 已经安装好的可以跳过,学习如何安装tensorflow的gpu版本的读者请阅读本文作者的另外一篇文章《深度学习环境搭建-CUDA9.0、cudnn7.3、tensorflow_gpu1.10的安装》,链接:https://www.jianshu.com/p/4ebaa78e0233 本文是写给目标检测入门新手的指导文章,会用示意图将每一步的详细实现过程展示出来。 本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(1)——环境搭建与测试》的基础上优化并总结,此博客链接:https://blog.csdn.net/dy_guox/article/details/79081499,感谢此博客作者。 本文作者接触深度学习2个月后,开始进行目标检测实践。 本文作者的专题《目标检测》,链接:https://www.jianshu.com/c/fd1d6f784c1f 此专题的宗旨是让基础较为薄弱的新手能够顺利实现目标检测,专题内容偏向于掌握技能,学会工具的使用。 本文作者尚未具备清楚讲述目标检测原理的能力,学习原理请自行另找文章。
潇洒坤
2018/11/22
2.9K0
深度学习入门篇--手把手教你用 TensorFlow 训练模型
该文介绍了如何使用TensorFlow实现YOLO v2神经网络模型对图像进行分类,并给出了代码示例和训练过程的详细步骤。
付越
2017/10/16
9.9K2
深度学习入门篇--手把手教你用 TensorFlow 训练模型
自定义对象检测问题:使用TensorFlow追踪星球大战中的千年隼号宇宙飞船
大多数的大型科技公司(如IBM,谷歌,微软,亚马逊)都有易于使用的视觉识别API。一些规模较小的公司也提供类似的产品,如Clarifai。但没有公司能够提供对象检测。 千年隼号宇宙飞船的检测 以下图
AiTechYun
2018/03/05
1.2K0
自定义对象检测问题:使用TensorFlow追踪星球大战中的千年隼号宇宙飞船
目标检测第6步-使用keras版RetinaNet训练
1.本文学习fizyr的github工程《keras-retinanet》,此github工程链接:https://github.com/fizyr/keras-retinanet 此链接中已经具备充分且详细的工程使用指导,本文在此基础上实现数据准备部分的csv文件生成、利用检测模型实现视频检测效果这2个功能。
潇洒坤
2019/04/18
3.1K1
目标检测第6步-使用keras版RetinaNet训练
tensorflow object detection API 详细实践教程
最近由于研究方向的更换,接触到了目标检测(Object Detection)领域,觉得很有意思,并且阅读了该方向的相关经典文献,包括Fast-RCNN、Faster-RCNN、SSD、YOLO以及RetinaNet等。复现别人代码并且能够得到在公开数据集上和原作者相近甚至相同的实验结果对于我们做研究甚至以后的工作来说是至关重要的。
狼啸风云
2022/06/06
7740
tensorflow object detection API 详细实践教程
Python 数据科学入门教程:TensorFlow 目标检测
你好,欢迎阅读 TensorFlow 目标检测 API 迷你系列。 这个 API 可以用于检测图像和/或视频中的对象,带有使用边界框,使用可用的一些预先训练好的模型,或者你自己可以训练的模型(API 也变得更容易)。
ApacheCN_飞龙
2022/12/01
1.6K0
Python 数据科学入门教程:TensorFlow 目标检测
tensorflow object detection API使用之GPU训练实现宠物识别
之前写过几篇关于tensorflow object detection API使用的相关文章分享,收到不少关注与鼓励,所以决定再写一篇感谢大家肯定与支持。在具体介绍与解释之前,首先简单说一下本人测试与运行的系统与软件环境与版本
OpenCV学堂
2019/11/13
2.4K1
Tensorflow 迁移学习 识别中国军网、中国军视网Logo水印
作者bourdakos1整合了tensorflow中的object-detection和slim两个子项目。 设置环境,把当前目录、slim、object_detection 三个目录加到环境变量PYTHONPYTHON。
birdskyws
2018/09/12
1.5K0
Tensorflow 迁移学习 识别中国军网、中国军视网Logo水印
使用TensorFlow一步步进行目标检测(5)
本教程进行到这一步,您选择了预训练的目标检测模型,转换现有数据集或创建自己的数据集并将其转换为TFRecord文件,修改模型配置文件,并开始训练模型。接下来,您需要保存模型并将其部署到项目中。
云水木石
2019/07/01
5640
使用TensorFlow一步步进行目标检测(5)
TensorFlow2.x目标检测API测试代码使用演示
TensorFlow2.x Object Detection API 的安装与配置可参考前面的两篇文章:
Color Space
2020/11/09
2.1K0
TensorFlow2.x目标检测API测试代码使用演示
使用Tensorflow进行实时移动视频对象检测
随着对计算机视觉的用例日益增长的兴趣,例如无人驾驶汽车,面部识别,智能交通系统等,人们希望建立定制的机器学习模型以检测和识别特定对象。
代码医生工作室
2019/10/10
2.5K0
使用Tensorflow进行实时移动视频对象检测
使用TensorFlow一步步进行目标检测(1)
目标检测(Object Detection)是人工智能最基础的应用,不论是我们常见的人脸识别,还是高大上的自动驾驶,都离不开目标检测。要从一幅复杂的画面中识别出物体或人物,需要复杂的算法,想想就觉得深奥,不过好在有TensorFlow这样的框架,具有强大的目标检测API,让没有机器学习背景的人也可以快速构建和部署功能强大的图像识别软件。
云水木石
2019/07/01
1.1K0
使用TensorFlow一步步进行目标检测(1)
视频识别训练2.3(实现TensorFlow视频识别)
大家好,又见面了,我是你们的朋友全栈君。 盯住梅西:TensorFlow目标检测实战 https://baijiahao.baidu.com/s?id=1581115075233058548&wfr=
全栈程序员站长
2022/09/02
1.3K0
教程 | 用深度学习DIY自动化监控系统
监控是安保和巡查一个不可或缺的组成部分。在大多数情况下,这项工作需要长时间去查找一些你不期望发生的事。我们做的这件事很重要,但也是一项非常乏味的任务。
机器之心
2018/09/20
1K0
教程 | 用深度学习DIY自动化监控系统
Mask-RCNN模型的实现自定义对象(无人机)检测
打开标注工具PixelAnnotation 选择好dataset路径之后,顺序开始标注数据即可!
OpenCV学堂
2019/08/09
1.9K2
Mask-RCNN模型的实现自定义对象(无人机)检测
如何用PaddleDetection做一个完整的目标检测项目
PaddleDetection 是百度飞桨推出的物体检测统一框架。支持现有的RCNN、SSD、YOLO等系列模型、支持 ResNet、ResNet-VD、ResNeXt、ResNeXt-VD、SENet、MobileNet、DarkNet等主干网络。针对不同的业务场景(性能、目标大小、准确率等)可以选择框架中的不同模块组合得到最适合的模型,实现任务。相比于tensorflow的Object_Detection,优势之一就是将YOLOv3这一目标检测的快速算法融合到了框架下。
用户1386409
2020/03/19
3.2K0
推荐阅读
相关推荐
目标检测第4步-模型测试
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档