可变卷积Deforable ConvNet 迁移训练自己的数据集 MXNet框架 GPU版

【引言】 最近在用可变卷积的rfcn 模型迁移训练自己的数据集, MSRA官方使用的MXNet框架

环境搭建及配置:http://www.cnblogs.com/andre-ma/p/8867031.html

一 参数修改:

1.1  ~/Deformable-ConvNets/experiments/rfcn/cfgs/resnet_v1_101_voc0712_rfcn_dcn_end2end_ohem.yaml  文件中修改两个参数 (yaml文件包含对应训练脚本的一切配置信息和超参数

一个使用GPU个数  :

gpus: ‘0,1‘   表示用两块GPU训练

另一个是样本类别数

NUM_CLASSES: 5    样本类别数需 + 1   因为有背景

还有要修改使用的数据集

image_set: 2007_trainval    单单使用VOC2007  若是 image_set: 2007_trainval+2012_trainval  则用VOC2007 和 VOC2012两个数据集

1.2 修改  ~/Deformable-ConvNets/lib/dataset/pascal_voc.py 文件中的样本标签类别

self.classes = [‘__background__‘, ‘tiger_beetle‘, ‘scarab‘, ‘stinkbug‘,‘moth‘]  和上面对应,加上背景一共为5类

二 数据集准备及制作

2.1 获取数据,这个自己准备,可以用爬虫在互联网上爬取,或用其他方式收集,推荐几个图片爬虫 : 百度图片爬虫   必应图片爬虫

2.2 标注图片信息,在做目标检测时需要coco数据集或VOC数据集,可用labelImg等图像标注工具标注图片:labelImg链接:https://github.com/tzutalin/labelImg

【这里简单介绍下VOC数据格式】  参考:https://blog.csdn.net/julialove102123/article/details/78330752

VOC数据集的组织架构如下:

  • VOC2007的目录结构为:

    ├── Annotations  xml文件
    ├── ImageSets   txt文件
    └── JPEGImages 图片

  • ImageSets的目录结构为:

    ├── Layout
    ├── Main
    └── Segmentation

LabelImg可在多个平台下配置,但要注意各软件依赖的版本号:通常是python=3.5  pyqt=4  依赖lxml

Ubuntu16.04  配置labelImg教程:https://blog.csdn.net/lightningqw/article/details/78944941   (ubuntu系统下确实是不能用中文,结果发现在windows下以上的方法可以带中文)

2.3 排查并删除所有错误jpg格式

通过后缀名来判断jpg格式文件虽然简单,但是有时候会出错,尤其是从互联网上获取的图片,其质量更是难以保证。

python的PIL工具提供对jpg格式文件的判断方法:https://blog.csdn.net/qiyuanxiong/article/details/77943578

(ps: 删除不合格jpg时,记得要对应删除xml文件信息哦~)

2.3 生成4个txt

train.txt  val.txt  trainval.txt  test.txt     四txt:生成及介绍:https://blog.csdn.net/Bankeey/article/details/76595884

train:val:test  =  1: 1: 2    trainval是train和val的并集,即  train:val:trainval = 1:1:2  【训练、验证、测试流程详解】

如何制作自己的VOC2007数据集:https://www.jianshu.com/p/b498a8a5a4f4

三 迁移训练

熟悉可变卷积Deformable-ConvNets 的老铁们,可知在experiments文件夹下是不同模型的project

如本实验使用rfcn模型迁移训练,cd  Deformable-ConvNets目录,执行下面代码,开始训练!

python experiments/rfcn/rfcn_end2end_train_test.py --cfg experiments/rfcn/cfgs/resnet_v1_101_voc0712_rfcn_dcn_end2end_ohem.yaml

【总结】

1.用自己的数据集迁移训练可变rfcn模型,主要核心问题是数据集,数据集要有数量质量

2.使用可变rfcn迁移训练,关键要熟悉流程,以及需要修改的文件和参数

3.遇到问题时不要慌,有时候一着急反而容易把问题复杂化,或是本来快要找到解决问题的正确方法,却因另一个小问题掩盖了真正要解决的问题

anyway:  安息为王~  :)

本文参考:https://blog.csdn.net/yiweibian/article/details/67634584

原文地址:https://www.cnblogs.com/andre-ma/p/9012717.html

时间: 2024-11-08 04:50:36

可变卷积Deforable ConvNet 迁移训练自己的数据集 MXNet框架 GPU版的相关文章

在C#下使用TensorFlow.NET训练自己的数据集

在C#下使用TensorFlow.NET训练自己的数据集 今天,我结合代码来详细介绍如何使用 SciSharp STACK 的 TensorFlow.NET 来训练CNN模型,该模型主要实现 图像的分类 ,可以直接移植该代码在 CPU 或 GPU 下使用,并针对你们自己本地的图像数据集进行训练和推理.TensorFlow.NET是基于 .NET Standard 框架的完整实现的TensorFlow,可以支持 .NET Framework 或 .NET CORE , TensorFlow.NET

使用yolo3模型训练自己的数据集

使用yolo3模型训练自己的数据集 本项目地址:https://github.com/Cw-zero/Retrain-yolo3 一.运行环境 1. Ubuntu16.04. 2. TensorFlow-gpu 1.4.0 或更高版本. 3. Keras 2.2.4 . 4. numpy 1.15.2(实测1.16.1会报错). 二.创建数据集 1. 使用VOC2007数据集的文件结构: 文件结构如下图,可以自己创建,也可以下载VOC2007数据集后删除文件内容. 注:数据集中没有 test.p

Mask R-CNN图像实例分割实战:训练自己的数据集

Mask R-CNN是一种基于深度学习的图像实例分割方法,可对物体进行目标检测和像素级分割. 本课程将手把手地教大家使用VIA图像标注工具制作自己的数据集,并使用Mask R-CNN训练自己的数据集,从而能开展自己的图像分割应用. 课程链接:https://edu.51cto.com/course/18598.html 本课程有三个项目案例实践: (1) balloon实例分割 :对图像中的气球做检测和分割 (2) pothole(单类物体)实例分割:对汽车行驶场景中的路坑进行检测和分割 (3)

DeepLabv3+图像语义分割实战:训练自己的数据集

DeepLabv3+是一种非常先进的基于深度学习的图像语义分割方法,可对物体进行像素级分割. 本课程将手把手地教大家使用labelme图像标注工具制造自己的数据集,并使用DeepLabv3+训练自己的数据集,从而能开展自己的图像分割应用. 课程链接:https://edu.51cto.com/course/18817.html 本课程有两个项目实践: (1) CamVid语义分割 :对CamVid数据集进行语义分割 (2) RoadScene语义分割:对汽车行驶场景中的路坑.车.车道线等进行物体

U-Net图像语义分割实战:训练自己的数据集

U-Net是一种基于深度学习的图像语义分割方法,尤其在医学图像分割中表现优异. 本课程将手把手地教大家使用labelme图像标注工具制作自己的数据集,生成Mask图像,并使用U-Net训练自己的数据集,从而能开展自己的图像分割应用. 课程链接:https://edu.51cto.com/course/18936.html 本课程有三个项目实践: (1) Kaggle盐体识别比赛 :利用U-Net进行Kaggle盐体识别 (2) Pothole语义分割:对汽车行驶场景中的路坑进行标注和语义分割 (

PyTorch版Mask R-CNN图像实例分割实战:训练自己的数据集

Mask R-CNN是一种基于深度学习的图像实例分割方法,可对物体进行目标检测和像素级分割. 课程链接:https://edu.51cto.com/course/19920.html 本课程将手把手地教大家使用Labelme图像标注工具制作自己的数据集,并使用PyTorch版本的Mask R-CNN(Facebook 官方maskrcnn-benchmark)训练自己的数据集,从而能开展自己的图像分割应用. 本课程的具体项目实战案例是:对汽车行驶场景中的路坑.车.车道线等多类物体进行检测和分割

终于搞定PyTorch+YoloV3+TensorRT,在aws上利用G4实例和DLAMI进行迁移训练

原文地址:https://www.cnblogs.com/cloudrivers/p/12656276.html

tensorflow训练自己的数据集实现CNN图像分类

利用卷积神经网络训练图像数据分为以下几个步骤 读取图片文件 产生用于训练的批次 定义训练的模型(包括初始化参数,卷积.池化层等参数.网络) 训练 1 读取图片文件 1 def get_files(filename): 2 class_train = [] 3 label_train = [] 4 for train_class in os.listdir(filename): 5 for pic in os.listdir(filename+train_class): 6 class_train

FCN网络的训练——以SIFT-Flow 数据集为例

参考文章: http://blog.csdn.net/u013059662/article/details/52770198 caffe的安装配置,以及fcn的使用在我前边的文章当中都已经提及到了,这边不会再细讲.在下边的内容当中,我们来看看如何使用别人提供的数据集来训练自己的模型!在这篇文章之后,我计划还要再写如何fine-tune和制作自己的数据集,以及用自己的数据集fine-tune. (一)数据准备(以SIFT-Flow 数据集为例) 下载数据集:  http://pan.baidu.c