PP-YOLOE介绍与复现_vfl loss 复现-程序员宅基地

技术标签: python  计算机视觉  深度学习  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

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

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/WhiffeYF/article/details/125204536

智能推荐

Android Studio在xml文件中编写代码时,关键词没有代码提示补全_安卓studio不自动补全代码-程序员宅基地

文章浏览阅读5.5k次,点赞19次,收藏37次。Android Studio在xml文件中编写代码时,关键词没有代码提示补全。解决方式:检查修改Project的三个SDK版本为一致。_安卓studio不自动补全代码

Oracle GoldenGate 21.3微服务架构搭建-Oracle2Oracle & MySQL2MySQL-程序员宅基地

文章浏览阅读368次,点赞10次,收藏8次。文章篇幅比较多,请转移到以下链接下载文档,谢谢。https://download.csdn.net/download/bing_yuan/88637304

Android自定义View实战---圆盘温度计_android 颜色圆盘-程序员宅基地

文章浏览阅读4.9k次,点赞3次,收藏12次。了解了基本的自定义view基础后,现在我们就来实践下自定义view,也是看到我华为手机上自带的天气预报软件后,想着模仿做一个,于是,我自己尝试了下,虽然不算太像,但是还算能看,期待后期的改进。通过本文你可以用到以下技术:1)view的测量2)canvas绘图技巧3)接口回调4)触摸事件的处理最终效果如下所示可以通过输入框自己设定最低、最高温度和当前温度(这是为我天气_android 颜色圆盘

php ord bit,PHP: Operadores bit a bit (bitwise) - Manual-程序员宅基地

文章浏览阅读53次。Exemplo #3 Deslocamento de bits em inteiros*Aquiestãoosexemplos.*/echo"\n---MOVENDOBITSADIREITAEMINTEIROSPOSITIVOS---\n";$val=4;$places=1;$res=$val>>$places;p($res,$val,'>>',$p..._php 字符 bit

JavaScript、Node.js与V8的关系-程序员宅基地

文章浏览阅读2.4k次,点赞2次,收藏10次。对于了解Node的开发人员,我们都知道Node是基于Chrome V8引擎开发的能使JavaScript在服务器端运行的运行时环境(runtime environment)。一方面,它提供了多种可调用的API,如读写文件、网络请求、系统信息等。另一方面,因为CPU执行的是机器码,它还负责将JavaScript代码解释成机器指令序列执行,这..._quickjs v8 nodejs

区间和重叠合并 python_【python-leetcode57-区间合并】插入区间-程序员宅基地

文章浏览阅读160次。问题描述:给出一个无重叠的 ,按照区间起始端点排序的区间列表。在列表中插入一个新的区间,你需要确保列表中的区间仍然有序且不重叠(如果有必要的话,可以合并区间)。示例1:输入: intervals = [[1,3],[6,9]], newInterval = [2,5]输出: [[1,5],[6,9]]示例2:输入: intervals = [[1,2],[3,5],[6,7],[8,10],[..._python 多重叠和连续的区段合并

随便推点

doT.js:一个强大高效的JavaScript模板引擎-程序员宅基地

文章浏览阅读347次,点赞7次,收藏9次。doT.js:一个强大高效的JavaScript模板引擎doT.js 是一个轻量级的JavaScript模板引擎,它提供了丰富的功能和高效的性能,用于动态生成HTML页面。项目简介doT.js由Olado开发并开源,它的目标是提供一种简单、高效的方式来创建可复用的模板,并能够快速地将数据渲染为HTML代码。与其他模板引擎相比,doT.js更注重性能和灵活性,使得开发者可以更好地控制生成的HT..._dot js

Django:模板系统_常用标签_django项目中声明动态内容的标签是-程序员宅基地

文章浏览阅读616次。模板标签1、前面那篇文章中介绍了使用context参数进行传参,使HTML页面拥有了一定的动态效果。同时也提到了DTL模板中不仅可以有HTML标签对,还可以可以有if判断、for循环等。if、for等语句(模板标签)在HTML模板中就是以一种特殊的标签对形式存在的2、html的数据是静态的,动态内容由框架标签负责引进。Django在html页面嵌入标签,是以{% 代码块 %}的形式,而输出..._django项目中声明动态内容的标签是

使用three.js加载.obj格式的3d文件_thress.js obj示例文件-程序员宅基地

文章浏览阅读1k次。qq群1003178873这些东西无法上传,加群后在群文件中<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title></title> <script src="js/three.js"></script> <script src="js/OBJLoader.js"></script> <scri_thress.js obj示例文件

用java实现fermat素性检测算法_java实现素性检测-程序员宅基地

文章浏览阅读353次。java实现fermat素性检测问题提出问题思路问题思路在图片中已经很明显了,为了解决较大数字的素性检测,我们采用Java中的biginteger类,可以处理较大的数字,废话不多说,直接放源码。package com.demo;import java.math.BigInteger;import java.util.Random;public class FermatDemo { //给定一个积整数m,且m大于3 private static final BigIntege_java实现素性检测

利用html2canvas + jspdf将页面内容生成pdf并且下载_html html2canvas 下载pdf-程序员宅基地

文章浏览阅读698次。【代码】利用html2canvas + jspdf将页面内容生成pdf并且下载。_html html2canvas 下载pdf

十分有趣却有些遗憾的结对编程——两位女程序员的挣扎-程序员宅基地

文章浏览阅读95次。两人合作项目作业正式开始,一次真正意义上能够了解对方能力并互相努力互相鼓励共同进步完成项目的愉快的小型团队合作,本次合作我们两位女生的火花碰撞的很不错,打开了结对编程的新世界阅读目录题目要求关于驾驶员角色代码思想界面显示关于我的导航员个人感想题目要求要求:本次作业要求两个人合作完成,驾驶员和导航员角色自定,鼓励大家在工作期间角色随时互换,这里会布置两个题目,请各组成员根据自..._遗憾就遗憾的编程代码

推荐文章

热门文章

相关标签