场景文本检测&识别学习 day10(MMdetection)

配置文件(config)

  • 由于在大型项目中,一种模型需要分:tiny、small、big等很多种,而它们的区别主要在网络结构,数据的加载,训练策略等,且差别很多都很小,所以如果每个模型都手动从头写一份,很麻烦,为了方便,现在都是直接采用配置文件的形式来定义
  • 如yaml文件、py文件等
    在这里插入图片描述
    在这里插入图片描述

MMdetection的配置文件构成

  • 在MMdection的配置文件中,我们根据字段来定义模型训练的各部分
    在这里插入图片描述
  • 配置文件的运作方式
    在这里插入图片描述

使用MMdection来训练自己的检测模型

在这里插入图片描述

  • coco数据集的组织形式
    在这里插入图片描述

  • coco数据集的标注格式

  • 所有标注信息存储在一个JSON对象中,包含以下信息:images–所有原始图像信息、annotations–所有标注信息、categories–全部物体类别信息
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 其中:name表示当前的物体类别,supercategories表示当前物体的超类,如car的超类为vehicle

  • 我们将自己的数据集按照以上的格式整理好后,还需要更改模型的配置文件(有些模型是继承coco_instance.py,需要仔细查找),如下:
    在这里插入图片描述

  • 重点是需要修改:数据集的路径、batch_size、进程数

  • 在将原始图像输入进模型之前,我们可能还需要对图像进行:随机裁剪与缩放、水平翻转、像素值归一化、转换为PyTorch Tensor等操作,这些操作我们统一放在数据处理流水线,即pipeline中。对于微调训练,通常情况是不需要进行更改的

  • 下图为分类的pipeline:
    在这里插入图片描述

  • 由于检测有框,所以多了一个annotations,对于框也需要进行跟原始图片一样的操作,下图是检测的:
    在这里插入图片描述

  • 下图是训练策略,默认情况下优化器和训练策略在optimizer中定义,我们需要修改的是epoch,其他基本不需要修改:
    在这里插入图片描述

  • 对于YOLOv3的模型来说,主干网络、neck、head的结构如下:
    在这里插入图片描述

MMdetection的注意事项

  • 现在不使用BACKBONES、NECKS、HEADS来注册模型,而是全部使用MODELS,如下:
    在这里插入图片描述
  • 在config文件中,注意检查backbone的输出阶段个数和neck的输入通道的个数是否匹配,如下:
    在这里插入图片描述

Build模式和Registry模式

  • 对于大型项目来说,我们可以将项目的构建和表示分离,即抽象出相同的构建部分,使用不同的表示来生成不同的项目
  • 对应到深度学习的模型中就是,我们将模型分为:backbone、neck、head、optimize等模块。将它们分别生成好后,再统一合并到一起,组合成一个模型。
  • 同时,对于深度学习中的模型,各个模块都需要很多的参数,如果直接写在模块中,对于后续的对比试验等不友好,因此我们可以借助注册器,用字典的形式来创建模型,就只需要在字典中写参数,不需要在代码中改参数了
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丿罗小黑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值