4. Dynamic Soft Label Assigner 随着目标检测网络的发展,大家发现anchor-free和anchor-based、one-stage和two-stage的界限已经十分模糊,而ATSS的发布也指出是否使用anchor和回归效果的好坏并没有太大差别,最关键的是如何为每个prior(可以看作anchor,或者说参考点、回归起点)分配最合适的标签。关于ATSS更详细的内容请
--neozng1@hnu.edu.cn NanoDet是一个单阶段的anchor-free模型,其设计基于FCOS模型,并加入了动态标签分配策略/GFL loss和辅助训练模块。由于其轻量化的设计和非常小的参数量,在边缘设备和CPU设备上拥有可观的推理速度。其代码可读性强扩展性高,是目标检测实践进阶到深入的不二选择。作者在知乎上有一篇介绍的文章,指路:超简单辅助模块加速训练收敛,精度大幅提
5.2.标签分配和Loss计算 5.2.1. 计算Loss的模块和流程 loss的运算流程如下,当aux_head即AGM启用的时候,aux_head从fpn和aux_fpn获取featmap随后输出预测,在detach_epoch(需要自己设置的参数,在训练了detach_epoch后标签分配将由检测头自己进行)内,使用AGM的输出来对head的预测值进行标签分配。 先根据输入的大小获取p
1. Backbone 作为一个着眼于边缘平台部署,尤其是针对CPU型设备的网络,NanoDet之前自然选择的是使用深度可分离卷积的轻量骨干网络。 这里我们主要介绍默认的Backbone: GhostNet: More Features from Cheap Operationsarxiv.org/abs/1911.11907 这是一个由华为提出的轻量骨干网络,关于GhostNe
2. Neck 前一个版本的NanoDet为了追求极致的推理速度使用了无卷积融合的PAN架构,即top-down和down-top路径都是直接通过双线性插值的上下采样+element-wise add实现的,随之而来的显然是性能的下降。在NanoDet-Plus中,作者将Ghost module用于特征融合中,打造了Ghost-PAN,在保证不增加过多参数和运算量的前提下增强了多尺度目标检测的性
3. Assign Guidance Module AGM的代码位于nanodet/model/head下的simple_conv_head.py中。 3.1. 参数和初始化 class SimpleConvHead(nn.Module): def __init__( self, num_classes, input_chan
5. Head head部分总共有五百多行代码,将分为 初始化、构造、前向传播 priors获取、标签分配、loss计算 检测框转换、后处理 这三个部分进行讲解。中间会穿插一下来自其他module的函数或class的介绍,如QFL、DFL、用于从框分布得到框位置的Integral,还有GIoU loss。 5.1. 初始化、层构造和前向传播 5.1.1. 参数初始化 cla
本教程的示例代码是笔者参加RoboMaster机甲大师赛为机器人编写的控制器框架,你可以直接克隆仓库,阅读仓库下的Markdown文档获得更好的体验,记得点一个小⭐:: HNUYueLuRM/basic_frameworkgitee.com/hnuyuelurm/basic_framework 所有安装包也可以在此百度网盘链接下获得:链接:https://pan.baidu.com/s/1s
本教程的示例代码是笔者参加RoboMaster机甲大师赛为机器人编写的控制器框架,你可以直接克隆仓库,阅读仓库下的Markdown文档获得更好的体验: HNUYueLuRM/basic_frameworkgitee.com/hnuyuelurm/basic_framework 所有安装包也可以在此百度网盘链接下获得:链接:https://pan.baidu.com/s/1sO_EI4cToy
TODO:1. 添加一键编译+启用ozone调试/一键编译+下载的脚本,使得整个进一步流程自动化2. 增加更多的背景知识介绍3. 增加VSCode下RTT viewer的支持和一键下载(不进入调试)的支持 前言 了解过嵌入式开发的你一定接触过Keil,这款20世纪风格UI的IDE伴随很多人度过了学习单片机的岁月。然而由于其缺少代码补全、高亮和静态检查的支持,以及为人诟病的一系列逆天的设置、极慢
积分
粉丝
勋章
TA还没有专栏噢
第三方账号登入
看不清?点击更换
第三方账号登入
QQ 微博 微信