YOLOv10:无需NMS的目标检测新范式(强的离谱)
本文来自公众号“AI大道理”。
YOLO系列一直存在nms,然而nms非常耗时,且总给人一种不简单,不直接的感觉。能不能去掉nms?
YOLOv10终于实现了!
YOLOV10的改进
1、Backbone
2、Neck
3、Head与双标签分配
4、Loss计算

添加图片注释,不超过 140 字(可选)
1、Backbone
SCDown:
SCDown(Spatial-channel decoupled downsampling)将空间和通道解耦。先通过 1 × 1的逐点卷积调节通道数,再通过 3 × 3 的深度卷积做空间下采样,在降低计算成本的同时最大限度保留信息。

添加图片注释,不超过 140 字(可选)
C2fCIB:
在结构上 C2fCIB 就是用 CIB (compact inverted block)替换了原本 C2f 中的 Bottleneck,CIB 则是将 Bottleneck 中的标准卷积用深度卷积加逐点卷积进行替换。

添加图片注释,不超过 140 字(可选)
PSA:
PSA是一种高效的局部自注意力模块,它将卷积后的特征一部分输入到由多头自注意力模块MHSA和前馈网络FFN组成的模块中,然后将两部分连接起来并通过卷积进行融合。增强全局建模能力,降低计算复杂度。

添加图片注释,不超过 140 字(可选)
MHSA:
多头注意力的动机是:与其将输入投影到较高的维度,计算单个注意力,不如将输入投影到h个较低的维度,计算h个注意力,然后将h个注意力的输出在特征维度Concat起来,最后利用MLP进行多头特征聚合,得到MHSA的输出。MHSA的公式如下:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)
2、Neck
Neck总体上还是PaNet结构,只是做了一些简单的模块替换。其中SCDown代替一个CBS,C2fCIB代替了两个C2f。

添加图片注释,不超过 140 字(可选)
3、Head与双标签分配(重头戏)
YOLOv10采用了双头架构。
模型在训练期间使用两个预测头,一个使用一对多分配,另一个使用一对一分配。这样,模型可以在训练期间利用一对多分配的丰富监督信号,而在推理期间则使用一对一分配的预测结果,从而实现无NMS的高效推理。
一对一分配:仅一个预测框被分配给一个真实物体标签,避免了NMS,但由于监督信号较弱,容易导致收敛速度慢和性能欠佳。将YOLOv8使用的TAL中的topk设置为1,即每个标签将根据类别与回归的双重代价被分配至多一个正样本在训练阶段,该检测头的预测都只做一对一的标签分配。
一对多分配:在训练期间,多个预测框被分配给一个真实物体标签。这种策略提供了丰富的监督信号,优化效果更好。“一对多”检测头就是将特征金字塔输出的多尺度特征送给另一个检测头去做预测,只不过在训练阶段,这个检测头的预测采用一对多的标签分配策略(TAL中的topk设置为10,即YOLOv8的默认设置)。

添加图片注释,不超过 140 字(可选)
对于参数的更新,backbone和neck都是由one-to-many进行回传的,one-to-one仅训练自己的检测头。

添加图片注释,不超过 140 字(可选)
掉点原因:一对多训练了主干和neck,但是推理的时候由于抛弃了一对多,只留下一对一,因此,head还是一对一训练起来的。
4、Loss计算
分类损失:

添加图片注释,不超过 140 字(可选)
其中,ln代表某个anchor在某个类别上的分类损失,一共有b*a*80个l;wn统一取1;yn在正样本处的值为对应的目标分数,其余负样本处的值为0;

添加图片注释,不超过 140 字(可选)
定位损失:
CIOU:

添加图片注释,不超过 140 字(可选)
DFL:

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)
5、总结Y
OLOv10引入了额外的one-to-one头部,通过双分配策略,在训练时提供更丰富的监督信息,而在推理时则利用one-to-one头部进行高效预测,从而无需NMS后处理。

添加图片注释,不超过 140 字(可选)
——————
浅谈则止,细致入微AI大道理
扫描下方“AI大道理”,选择“关注”公众号
—————————————————————

添加图片注释,不超过 140 字(可选)
—————————————————————
公众号《AI大道理》征稿函mp.weixin.qq.com/s?__biz=MzU5NTg2MzIxMw==&mid=2247489802&idx=1&sn=228c18ad3a11e731e8f325821c184a82&chksm=fe6a2ac8c91da3dec311bcde280ad7ee760c0c3e08795604e0f221ff23c89c43a86c6355390f&scene=21#wechat_redirect
|
留言吧mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=edit&type=77&appmsgid=100019330&isMul=1&replaceScene=0&isSend=0&isFreePublish=0&token=584502786&lang=zh_CN×tamp=1719293796306
萍水相逢逢萍水,浮萍之水水浮萍!