NanoDet代码逐行精读与修改(零)Architecture

NanoDet-Plus是一个基于FCOS的轻量级目标检测模型,引入动态标签分配策略和辅助训练模块(AGM)。AGM在训练初期指导标签分配,帮助网络快速收敛,后期分离以提升推理效率。模型采用GhostPAN neck,使用GFL和DFL损失函数。此外,还提供详细代码注释和训练流程图,适合研究和实践。

--neozng1@hnu.edu.cn

NanoDet是一个单阶段的anchor-free模型,其设计基于FCOS模型,并加入了动态标签分配策略/GFL loss和辅助训练模块。由于其轻量化的设计和非常小的参数量,在边缘设备和CPU设备上拥有可观的推理速度。其代码可读性强扩展性高,是目标检测实践进阶到深入的不二选择。作者在知乎上有一篇介绍的文章,指路:超简单辅助模块加速训练收敛,精度大幅提升!移动端实时的NanoDet升级版NanoDet-Plus来了!

笔者已经为nanodet增加了非常详细的注释,代码请戳此仓库:nanodet_detail_notes: detail every detail about nanodet

此仓库会跟着文章推送的节奏持续更新!

话不多说,从结构上我们直接分backbone、neck、head、assist module、dynamic label assigner五个模块进行超級详细的介绍。

0. Architecture

surprise!首先当然要介绍一下整体的架构了。先看看整个模型的架构图:

img

NanoDet-Plus架构图,图源作者知乎

直观来看,最大的不同就是新增的Assign Guidance Module模块。检测框架还是FCOS式的一阶段网络,neck改为了GhostPAN,同时摒弃了FCOS的标签分配策略转向动态软标签分配并加入辅助训练模块也就是前述的AGM,它将作为教师模型帮助head获得更好的训练。头部的回归和标签预测仍然继承之前的Generalized Focal Loss

以NanoDet-m (320x320)为例让我们先看一下config/下的配置文件中和网络架构有关的选项:

	name: NanoDetPlus
    detach_epoch: 10
    backbone:
      name: ShuffleNetV2    # 默认使用shuffleNetV2
      model_size: 1.0x      # 模型缩放系数,更大的模型就是相应扩大各层feature map的大小
      out_stages: 
评论 19
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值