PP-YOLOE介绍与复现

PP-YOLOE是由百度提出的最新YOLO系列检测器,实现SOTA性能,具备无锚盒机制、CSPRepResStage backbone、VarifocalLoss和TaskAlignmentLearning。相比其他YOLO算法,PP-YOLOE在精度和速度上有显著优势,并支持多尺寸配置、模型优化和多种硬件部署。在640×640分辨率下,PP-YOLOE-l达到51.4mAP,78.1FPS。复现过程包括在极链AI云平台上安装PaddleDetection及相关依赖,完成模型测试与推理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 相关资源

码云:https://gitee.com/YFwinston/PaddleDetection
github:https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/ppyoloe
GPU平台:https://cloud.videojj.com/auth/register?inviter=18452&activityChannel=student_invite
知乎:https://zhuanlan.zhihu.com/p/527210954
arxiv:https://arxiv.org/pdf/2203.16250.pdf

1 PP-YOLOE介绍

这是2022年第一个关于YOLO的改版,该版本由百度提出,称之为YOLOE,是目前各项指标sota的工业目检测器,性能sota且部署相对友好。

论文地址: https://arxiv.org/pdf/2203.16250.pdf
代码已开源: https://github.com/PaddlePaddle/PaddleDetection/tree/develop/configs/ppyoloe

1.1、设计机制

该检测器的设计机制包括:

  • Anchor free无锚盒机制
  • 可扩展的backbone和neck,由CSPRepResStage(CSPNet+RMNet)构成
  • 使用Varifocal Loss(VFL)和Distribution focal loss(DFL)的头部机制ET-head
  • 动态标签分配算法Task Alignment Learning(TAL)

相较于其他 YOLO 系列算法,PP-YOLOE 主要有以下三大优势:

更强性能:PP-YOLOE 的 s/m/l/x 全系列四个尺寸在精度及速度方面均超越其他同体量算法。详细数据如图 1 所示,其中 PP-YOLOE-l 在 COCO test-dev 上精度可达 51.4%,在 V100 上使用 TRT FP16 进行推理,速度可达 149FPS,相较于YOLOX-l[4]精度提升 1.3 AP,速度提升 24.96%;相较于YOLOv5-x[5]精度提升 0.7AP,TRT-FP16 加速 26.8%;相较于PP-YOLOv2[6]精度提升 1.9 AP,速度提升 13.35%。

在这里插入图片描述
图 1 PP-YOLOE 各尺寸模型性能与其他模型对比示意图

更丰富灵活的配置方案:PP-YOLOE 不仅提供 4 种固定尺寸,且支持开发者灵活地定制化配置更多尺寸;顺畅支持包括模型量化、剪枝和蒸馏在内丰富的模型优化策略,满足实际产业场景中速度和精度的极致追求;全面高质量支持包括 TensorRT 和 OpenVINO 在内的加速库,还提供一键转出 ONNX 格式,可顺畅对接 ONNX 生态。

更全硬件支持:PP-YOLOE 在结构设计上避免使用 DCN、Matrix NMS 等不易部署的算子,使其可以方便地部署到不同的硬件当中。当前已经完备支持 NVIDIA V100、T4 这样的云端 GPU 架构以及如 Jetson 系列等边缘端 GPU 设备。

1.2、介绍

目前YOLOX以50.1达到了速度和精度的最佳平衡,V100上测试可达68FPS,是当前YOLO系列网络的集大成者,YOLOX引入了先进的动态标签分配方法,在精度方面显著优于YOLOv5,受到YOLOX的启发,作者进一步优化了之前的工作PP-YOLOv2。在PP-YOLOv2的基础上提出YOLOE,该检测器避免使用deformable convolution和matrix nms等运算操作,能在各种硬件上得到很好的支持。
YOLOE在速度和准确性权衡方面优于YOLOv5和YOLOX。在640 × 640的分辨率下,YOLOE-l 达到 51.4 mAP,78.1 FPS:
以1.9%

  • AP高于 PP-YOLOv2,
  • 以1.0% AP高于YOLOX-l(截止2月31日YOLOX官网的精度)
  • 以2.3% AP高于
    YOLOv5-l(截止2月31日YOLOv5官网的精度)

YOLOE借鉴YOLOv5,采用width multiplier和depth multiplier的方式配置,支持TensorRT和ONNX,部署代码开源在PaddleDetection。

YOLOE网络结构:
在这里插入图片描述
更多解析:
2022年新版YOLO解读(PP-YOLOE)
YOLO界再起波澜!mAP 51.4,149FPS,目标检测,一个就够了

2 PaddleDetection 复现

2.1 使用的平台

PP-YOLOE的复现是在【极链AI云】平台搭建:https://cloud.videojj.com/auth/register?inviter=18452&activityChannel=student_invite
在这里插入图片描述

apt-get update
apt-get install git -y
# 克隆PaddleDetection仓库
cd /home
git clone https://gitee.com/YFwinston/PaddleDetection

# 安装其他依赖
cd PaddleDetection
pip install -r requirements.txt
pip install opencv-python-headless==4.1.2.30

# 编译安装paddledet
python setup.py install

安装后确认测试通过:

cd /home/PaddleDetection
python ppdet/modeling/tests/test_architectures.py

测试通过后会提示如下信息:

.......
----------------------------------------------------------------------
Ran 7 tests in 18.376s

OK

2.2 demo测试

cd /home/PaddleDetection
# 推理单张图片
CUDA_VISIBLE_DEVICES=0 python tools/infer.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams --infer_img=demo/000000014439_640x640.jpg
cd /home/PaddleDetection
# 推理文件中的所有图片
CUDA_VISIBLE_DEVICES=0 python tools/infer.py -c configs/ppyoloe/ppyoloe_crn_l_300e_coco.yml -o weights=https://paddledet.bj.bcebos.com/models/ppyoloe_crn_l_300e_coco.pdparams --infer_dir=demo

检测结果:
在这里插入图片描述

### MHAF-YOLO算法的复现方法代码实现 MHAF-YOLO是一种基于混合注意力机制的目标检测模型,其核心在于通过多尺度特征融合和自适应注意力模块提升目标检测性能。以下是关于该算法复现的方法以及可能获取其实现代码的方式。 #### 1. 理解MHAF-YOLO的核心技术 MHAF-YOLO的主要创新点包括但不限于以下方面: - **混合注意力机制 (Mixed Hybrid Attention Fusion)**:结合空间注意力和通道注意力来增强特征表示能力[^2]。 - **多尺度特征聚合网络 (Multi-Scale Feature Aggregation Network)**:利用不同层次的特征图进行信息交换,从而提高小物体检测精度[^3]。 这些特性使得MHAF-YOLO在复杂场景下的表现优于传统YOLO系列模型。 #### 2. 获取官方或第三方开源代码 通常情况下,研究者会在论文附录或者GitHub上公开他们的源码。对于MHAF-YOLO而言,可以尝试以下几个途径查找相关资源: - 访问作者发布的原始链接(如果存在)。许多计算机视觉领域的研究成果都会托管于PyTorch或TensorFlow框架下,并提供详细的训练脚本及预处理工具[^4]。 - 浏览知名代码共享平台如GitHub、GitLab等关键词搜索“MHAF-YOLO”。社区贡献者可能会上传经过验证的工作版本供他人学习参考[^5]。 #### 3. 自己动手实现MHAF-YOLO 如果没有找到合适的现有解决方案,则可以根据描述自行构建整个流程。下面给出一个简化版伪代码作为起点: ```python import torch.nn as nn class SpatialAttention(nn.Module): def __init__(self, kernel_size=7): super(SpatialAttention, self).__init__() ... def forward(self, x): ... class ChannelAttention(nn.Module): def __init__(self, channel, reduction=16): super(ChannelAttention, self).__init__() ... def forward(self, x): ... class MHAFModule(nn.Module): """ Mixed Hybrid Attention Fusion Module """ def __init__(self, channels): super(MHAFModule, self).__init__() self.spatial_attn = SpatialAttention() self.channel_attn = ChannelAttention(channels) def forward(self, x): spatial_out = self.spatial_attn(x) channel_out = self.channel_attn(x) fused_feature = spatial_out * channel_out + x return fused_feature def build_mhaf_yolo(): backbone = ... # 定义主干网络结构 neck = ... # 构建FPN/PANet部分 head = ... # 添加预测头 mhaf_module = MHAFModule(backbone.out_channels[-1]) model = nn.Sequential( backbone, neck, mhaf_module, head ) return model ``` 上述代码片段展示了如何定义基本组件并将其集成到完整的检测器架构之中[^6]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSPhD-winston-杨帆

给我饭钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值