折腾faster-rcnn(三)--训练篇

author author     2023-04-13     229

关键词:

参考技术A 标签(空格分隔): Linux 深度学习

前面,我们已经成功跑起来faster-rcnn,并且自己动手训练了PascalVOC2007图像集,但是笔者接下来继续沿着官方文件跑PascalVOC2012,训练到第二阶段的某个点,程序就开始报错退出。查看logs发现,找不到图像的Annotation文件。遂放弃,转而生成自己的图像集。

这里笔者需要先完成毕业设计,所以图像集设计的种类不多,也就三类。毕竟PascalVOC一开始也只有四类呢!看了这么多经验帖,总结需要注意一下几个问题:文件名不要大写,后缀只能是.jpg或.JPEG,图像不要长得太过“瘦长”。这里为了重新命名收集来的文件,笔者自己写了一段Python脚本,变量命名注释极不规范,而且并不能识别某些后缀是jpg但并不是jpg的“假图”,大家看看就好,勿喷。

这里采用的是 labelImg 的标定工具,发动同学和学姐学弟一起帮我标定2333~~~

这里我们需要产生和PascalVOC一样格式的txt文件,这里笔者事先研究过了,产生是有点规律的,具体见我的上一篇博客: 折腾faster-rcnn(二)--数据篇
然后是几个集合的比例问题:
一般情况下trainval占总数据集的50%,test占总数据集的50%;train占trainval的50%,val占trainval的50%。上面所占百分比可根据自己的数据集修改,如果数据集比较少,test和val可少一些。这个在生成以上四个文件的脚本里面可以调比例,暂时就用默认比例试试,跑跑。生成这几个文件的脚本如下:

将以上几步搞好后,我们需要仿照PSACALVOC2007的结构建立自己的图像库,目录结构如下图所示

这一步肯定是需要的,因为PascalVOC有20类,所以我们需要根据自己的需求稍微修改神经网络参数。所有参数都在 /models 下,分为 coco 和 pascal_voc 格式,每种格式又有两到三种网络模型,每种模型还有两种训练方式 Alternative training(alt-opt) 和 Approximate joint training(end-to-end) 。总之,由于各种原因,本文以Alternative training+ZF model为例。笔者的需求是四类,还有一类在这里叫 __background__ 类,一共五类。
要修改的文件:
1.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage1_rpn_train.pt

2.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage1_fast_rcnn_train.pt

3.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage2_rpn_train.pt

4.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/stage2_fast_rcnn_train.pt

5.py-faster-rcnn/models/pascal_voc/ZF/faster_rcnn_alt_opt/faster_rcnn_test.pt

注意,注意,这里文件夹进行了切换,并不属于模型的参数而是属于支持库的改动:
6.py-faster-rcnn/lib/datasets/pascal_voc.py

7.py-faster-rcnn/lib/datasets/imdb.py

8.根目录执行 ./experiments/scripts/faster_rcnn_alt_opt.sh 0 ZF pascal_voc ,训练和测试一气呵成,并且还有日志记录。如果只需要训练,那么执行(无日志记录):

Q&A:
1.如果标签含有大写字母,那么修改py-faster-rcnn/lib/datasets/pascal_voc.py第209行:

2.出现错误:

这是因为某些图像根本不是jpeg图像,只是后缀被改动了,这一下被学姐坑惨了。建议大家训练前统统用图转工具将图像转换一下格式,以绝后患。

深度学习caffe实战笔记(19)windows平台faster-rcnn制作自己的数据集

...过程,这篇博客先介绍如果制作voc2007自己的数据集用于faster-rcnn训练,下一篇博客介绍如何用faster-rcnn训练自己的数据。1、准备图像图像要用.jpg或者jpeg格式的,如果是png或者其它格式,自己转换一下就好,图像名称要用000001.jpg... 查看详情

为啥faster-rcnn端到端训练只做近似?

】为啥faster-rcnn端到端训练只做近似?【英文标题】:Whyfaster-rcnnendtoendtrainingonlymakesapproximation?为什么faster-rcnn端到端训练只做近似?【发布时间】:2018-05-0107:07:05【问题描述】:在更快的rcnn(https://arxiv.org/abs/1506.01497)中,有两种... 查看详情

faster-rcnn训练自己的数据集

...n.net/sinat_30071459/article/details/50723212按照下面这个博客修改faster-rcnn源码,训练自己的数据:http://blog.csdn.net/sinat_30071459/article/details/51332084训练自己的数据的时候如果提示assert(boxes[:,2] 查看详情

如何在faster-rcnn上训练自己的数据集

参考技术A不要发私信 查看详情

在自定义数据集上训练 Faster-RCNN 模型时加载检查点

】在自定义数据集上训练Faster-RCNN模型时加载检查点【英文标题】:LoadingcheckpointswhiletrainingaFaster-RCNNmodelonacustomdataset【发布时间】:2021-12-1002:16:09【问题描述】:我正在尝试使用Faster-RCNN架构(准确地说是FasterR-CNNResNet50V1640x640,... 查看详情

深度学习和目标检测系列教程10-300:通过torch训练第一个faster-rcnn模型(代码片段)

@Author:Runsen上次介绍了Faster-RCNN模型,那么今天就开始训练第一个Faster-RCNN模型。本文将展示如何在水果图像数据集上使用Faster-RCNN模型。代码的灵感来自此处的Pytorch文档教程和Kagglehttps://pytorch.org/tutorials/intermediate/torc... 查看详情

转载faster-rcnn+zf用自己的数据集训练模型(matlab版本)

...以看http://blog.csdn.net/sinat_30071459/article/details/50723212) Faster-RCNN源码下载地址:Matlab版本:https://github.com/ShaoqingRen/faster_rcnnPyt 查看详情

pytorch Faster-RCNN 的验证损失

】pytorchFaster-RCNN的验证损失【英文标题】:ValidationlossforpytorchFaster-RCNN【发布时间】:2020-06-0522:10:21【问题描述】:我目前正在使用从pytorch预训练的Faster-RCNN模型(例如在torchvisiontutorial中)的迁移学习对自定义数据集进行对象检... 查看详情

windows下使用自己制作的数据集训练faster-rcnn(tensorflow版)用于目标检测

步骤一下载配置windows下tensorflow版faster-rcnn,参考博客:windows10下运行tensorflow版的faster-Rcnn步骤二制作自己的数据集参考博客:http://blog.csdn.net/u011574296/article/details/78953681步骤三用你的Annotations,Imag 查看详情

使用labelimg制作自己的数据集(voc2007格式)用于faster-rcnn训练(代码片段)

https://blog.csdn.net/u011956147/article/details/53239325https://blog.csdn.net/u011574296/article/details/789536812018年01月02日17:13:59 ZealCV 阅读数:10459 标签: faster-r-cnn数据标注 更多个人分类: 深度学习 版权声明:本文为博主... 查看详情

深度学习和目标检测系列教程11-300:小麦数据集训练faster-rcnn模型(代码片段)

@Author:Runsen上次训练的Faster-RCNN的数据格式是xml和jpg图片提供,在很多Object-Detection中,数据有的是csv格式,数据集来源:https://www.kaggle.com/c/global-wheat-detectionwidth和heigth是图片的长和宽,b 查看详情

caffe框架下目标检测——faster-rcnn实战篇操作

原有模型1、下载fasrer-rcnn源代码并安装gitclone--recursivehttps://github.com/rbgirshick/py-faster-rcnn.git1) 经常断的话,可以采取两步:gitclonehttps://github.com/rbgirshick/py-faster-rcnn.git2) 到py-faster-rcnn中,继续下载ca 查看详情

faster-rcnn之训练脚本解析:./tools/train_faster_rcnn_alt_opt.py(代码片段)

【说明】:欢迎加入:faster-rcnn交流群238138700,本文分析faster-rcnn训练的python脚本;【debug】:我是把__main__修改了下,放在一个自己定义的函数里面,然后调用debug一步步看执行效果的,读者不妨也... 查看详情

faster-rcnn之训练数据是如何准备的:imdb和roidb的产生(代码片段)

【说明】:欢迎加入:faster-rcnn交流群238138700,关于imdb和roidb的生成都是在函数train_rpn的中,所以我们从这个函数开始,逐个跟进看如何执行得到我们需要的imdb和roidb:deftrain_rpn(queue=None,imdb_name=None,in... 查看详情

深度学习faster-rcnn网络(代码片段)

目录1网络工作流程1.1数据加载1.2模型加载1.3模型预测过程1.3.1RPN获取候选区域1.3.2FastRCNN进行目标检测2模型结构详解2.1backbone2.2RPN网络2.2.1anchors2.2.2RPN分类2.2.3RPN回归2.2.4Proposal层2.4ROIPooling2.5目标分类与回归3FasterRCNN的训练3.1RPN网络... 查看详情

faster-rcnn之shell脚本开始训练:./experiments/scripts/faster_rcnn_alt_opt.sh0zfpascal_voc(代码片段)

【说明】:欢迎加入:faster-rcnn交流群238138700,这是作者提供的一个运行训练的脚本,我们来看看这个脚本做了什么工作,如果要运行需要输入哪些参数;【使用】:如果要训练一个网络,可以在she... 查看详情

faster-rcnn:runtimeerror:error(s)inloadingstate_dictforfasterrcnn(代码片段)

在进行预测的时候报错,报错如下:  该问题主要是由于训练时的标签类别和预测时的标签类别不一致所导致的,将predict.py里的num_classes修改和训练时的保持一致即可。  查看详情

菜品识别系统(faster-rcnn目标检测算法)(代码片段)

目录一、Faster-RCNN目标检测算法的介绍二、效果展示三、环境配置四、图片数据集准备五、代码具体实现一、Faster-RCNN目标检测算法的介绍Faster-RCNN算法由于其较高的检测准确率成为主流的目标检测算法之一,相比较YOLO系列算... 查看详情