YOLO系列代码

Test-Time Augmentation

  • TTA (Test Time Augmentation)是指在test过程中进行数据增强。
  • 其思想非常简单,就是在评测阶段,给每个输入进行多种数据增广变换 ,将一个输入变成多个输入,然后再merge起来一起输出,形成一种ensemble的效果,可以用来提点。
  • 参考:https://zhuanlan.zhihu.com/p/131539596

YOLOX是旷视科技在2021年发表的一篇文章,当时主要对标的网络就是很火的YOLO v5,对比简单总结主要有三点,decoupled head、anchor-free以及advanced label assigning strategy(SimOTA)。

|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------|
| yolov5 | yolox |
| # Basic size of multi-scale prior box anchors = \[(10, 13), (16, 30), (33, 23), # P3/8 (30, 61), (62, 45), (59, 119), # P4/16 (116, 90), (156, 198), (373, 326) # P5/32 ] | 无 |
| # Config of batch shapes. Only on val. # It means not used if batch_shapes_cfg is None. batch_shapes_cfg = dict( type='BatchShapePolicy', batch_size=val_batch_size_per_gpu, img_size=img_scale0, # The image scale of padding should be divided by pad_size_divisor size_divisor=32, # Additional paddings for pixel scale extra_pad_ratio=0.5) | |
| | init_cfg data_preprocessor |
| 都有相比yolov3提出的是SPPF,更快,级连池化 | backbone: spp_kernal_sizes=(5, 9, 13), |
| YOLOv5HeadModule YOLOAnchorGenerator | YOLOXHeadModule SimOTAAssigner |
| * Classes loss:使用的是 BCE loss * Objectness loss:使用的是 BCE loss * Location loss:使用的是 CIoU loss | L1 loss |

在decoupled detection head中对于预测Cls.、Reg.以及IoU参数分别使用三个不同的分支,这样就将三者进行了解耦。这里需要注意一点,在YOLOX中对于不同的预测特征图采用不同的head,即参数不共享。以下为yolox:

以下为yolov5

YOLOv5 Head 结构和 YOLOv3 完全一样,为 非解耦 Head。Head 模块只包括 3 个不共享权重的卷积,用于将输入特征图进行变换而已。

前面的 PAFPN 依然是输出 3 个不同尺度的特征图,shape 为 (B,256,80,80)、 (B,512,40,40) 和 (B,1024,20,20)。 由于 YOLOv5 是非解耦输出,即分类和 bbox 检测等都是在同一个卷积的不同通道中完成。以 COCO 80 类为例:

  • P5 模型在输入为 640x640 分辨率情况下,其 Head 模块输出的 shape 分别为 (B, 3x(4+1+80),80,80), (B, 3x(4+1+80),40,40) 和 (B, 3x(4+1+80),20,20)。

  • P6 模型在输入为 1280x1280 分辨率情况下,其 Head 模块输出的 shape 分别为 (B, 3x(4+1+80),160,160), (B, 3x(4+1+80),80,80), (B, 3x(4+1+80),40,40) 和 (B, 3x(4+1+80),20,20)。 其中 3 表示 3 个 anchor,4 表示 bbox 预测分支,1 表示 obj 预测分支,80 表示 COCO 数据集类别预测分支。

相关推荐
m4Rk_3 小时前
【论文阅读】Agent 记忆机制(83):Inside Out——用可演化 PersonaTree 构建 Agent 的核心长期记忆
论文阅读·人工智能·学习·开源·github
运行时异常3 小时前
【WMS 仓储系统集成 AI Agent 实战】第 8 讲(终篇):生产部署与并发安全——Semaphore 放进 Flux.defer 的坑,压测抓了一晚上
人工智能·安全
杨杨杨大侠3 小时前
Jev、Kev、Laya:决策模型怎么选,什么时候需要微调?
人工智能·python·agent
代码方舟3 小时前
零信任架构实战:基于天远人企关联构建自动化供应链金融网关
运维·人工智能·架构·自动化
虹科网络安全4 小时前
“顶会”看安全(十八):超越越狱:揭示由能力边界模糊引发的 LLM 应用安全风险
人工智能·安全
Maiko Star4 小时前
* LangChain 提示词模板详解:ChatPromptTemplate 的使用与高级特性
java·人工智能·langchain
鬓戈4 小时前
Rust 语言与 AI 应用生态调研及学习路径
人工智能·学习·rust
天远API4 小时前
零信任架构实战:基于天远人企关联构建自动化图谱网关
网络·人工智能·架构·自动化
爱吃提升4 小时前
文生视频模型发展趋势(2026)
人工智能·音视频
AIGS0015 小时前
什么是本体语义平台?和知识图谱、传统数据中台的区别在哪
人工智能·知识图谱·数据中台·ai问数·本体语义平台·智能数据中台