PP-YOLOE介绍与复现

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

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

猜你喜欢

转载自blog.csdn.net/WhiffeYF/article/details/125204536
pp
今日推荐