MMdetection记录

编程入门 行业动态 更新时间:2024-10-11 17:25:36

<a href=https://www.elefans.com/category/jswz/34/1750982.html style=MMdetection记录"/>

MMdetection记录

MMdetection官方文档:
.html
官方有原文
我只提取我在意的

模块详解

  1. 一个batch进来之后到backbone,例如ResNet
  2. 输出的单尺度或者多尺度特征图然后到neck进行特征融合或增强,例如FPN
  3. 上述多尺度特征最终输入到 head 部分,一般都会包括分类和回归分支输出
  4. 在整个网络构建阶段都可以引入一些即插即用增强算子来增加提取提取能力,典型的例如 SPP、DCN 等等
  5. 目标检测 head 输出一般是特征图,对于分类任务存在严重的正负样本不平衡,可以通过正负样本属性分配和采样控制
  6. 为了方便收敛和平衡多分支,一般都会对 gt bbox 进行编码
  7. 最后一步是计算分类和回归 loss,进行训练
  8. 在训练过程中也包括非常多的 trick,例如优化器选择等,参数调节也非常关键

backbone

源码在mmdet/models/backbones
如果要自己新建backbone,使用mmcv/utils/registry.py的注册机制,在class前加@BACKBONES.register_module(),然后再init文件中导入并加入__all__的声明。
和detectron2相似。

通过 dict 形式的配置来实例化任何已经注册的类,detectron2是通过yaml配置文件的方式

pretrained='torchvision://resnet50',
backbone=dict(type='ResNet', # 骨架类名,后面的参数都是该类的初始化参数depth=50,num_stages=4,out_indices=(0, 1, 2, 3),frozen_stages=1,norm_cfg=dict(type='BN', requires_grad=True), norm_eval=True,style='pytorch'),

neck

mmdet/models/necks对backbone之后的特征进行加工
init文件中可以看到,常用的FPN

__all__ = ['FPN', 'BFP', 'ChannelMapper', 'HRFPN', 'NASFPN', 'FPN_CARAFE', 'PAFPN','NASFCOS_FPN', 'RFP', 'YOLOV3Neck', 'FPG', 'DilatedEncoder','CTResNetNeck', 'SSDNeck', 'YOLOXPAFPN'

更多推荐

MMdetection记录

本文发布于:2024-03-08 13:24:28,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720999.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:MMdetection

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!