RT-DETR:又快又好的ViT系列模型,拉开ViT实时化的序幕!
发布网友
发布时间:2024-10-19 19:42
我来回答
共1个回答
热心网友
时间:2024-12-02 09:21
★★★ 本文源自AlStudio社区精品项目,【点击此处】查看更多精品内容 >>>
在本项目之前,我发布过一个项目名为 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业,感兴趣的小伙伴可以直接点进该链接去查看。在之前的项目中使用的是以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0.50, 11point) 能够达到 87.64%,效果还是不错的,但是众所周知,ViT系列模型存在一个问题就是推理时延高,这极大地影响了ViT系列模型的落地应用,这也是我在该项目中提到的需要改进的点。
最近关注到了PaddleDetection新出的RT-DETR模型,根据论文给出的数据,能够达到实时检测的效果,在速度和精度上都超越了YOLO系列模型,我也是迫不及待地实践了一下。
整体情况如下:
单从本项目来看,mAP(0.50, 11point) 提升了 8.62 的百分点,average FPS 提升了 4.4 个点,是一个非常喜人的提升。可以看出RT-DETR在精度和速度上都是有着显著的提升,因此大家也可以在自己的项目中尝试使用这个模型,看看是否能够达到更好的效果。
学习本项目过程中,你可能感兴趣的链接地址:
一、模型简介
RT-DETR由BackBone、混合编码器和带有辅助预测头的Transformer编码器组成。整体结构如下所示(图片来自原论文):
具体来说:
官方数据如下:
以上段落有部分摘自于官方发布的 超越YOLOv8,飞桨推出精度最高的实时检测器RT-DETR!。
二、数据集简介
该数据集用于正确检测工人、他们的反光背心和安全帽。该数据集有3222张图片,其中包含三个标签:工人、反光背心和安全帽。 AI Studio链接
用途举例:
部分数据集图片如下:
三、数据预处理
Step01: 解压数据集
Step02: 将 txt 格式标注文件转换成 xml 格式标注文件,代码如下所示。
Step03: 可视化转换结果,判断转换是否正确,代码如下所示。
部分可视化结果如下:
四、代码实现4.1 检测数据分析
该数据集总共包含 3 个标签,各类标签的数量分别为:
图像尺寸分析: 通过图像尺寸分析,我们可以看到该数据集图片的尺寸,均为 [1920, 1080]。
4.2 安装PaddleDetection4.3 数据集划分
首先安装PaddleX。
然后,我们通过 paddlex 中的 split_dataset 命令按照 0.9:0.1 的比例划分训练集和验证集。
4.4 模型训练
损失函数如图所示:
4.5 模型评估
通过如下命令在单个GPU上评估我们的验证集。
指标如下:
相比 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业使用的以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0.50, 11point) 提升了 8.62 的百分点,average FPS 提升了 4.4 个点。
4.6 模型推理
我们可以通过以下命令在单张GPU上推理文件中的所有图片。
部分可视化结果如下:
4.7 模型导出
Step01. 导出模型
Step02: 转换模型至ONNX
首先安装 Paddle2ONNX 和 ONNX。
然后转换模型。
五、ONNXRUNTIME部署示例
首先安装 ONNXRUNTIME。
接下来是我用 ONNXRUNTIME 写的一个 demo,案例比较简单,大家可以自行了解。在这我就不多赘述了。
可视化结果如下:
六、总结与提高
本项目是使用飞桨团队最新推出的 RT-DETR 模型来实现的。根据论文描述,模型可以达到实时检测的效果,个人认为该模型是 ViT 系列模型所取得的一个重大突破,揭开了 ViT 实时化的序幕。
相比 [AI达人特训营第三期]PPYOLOE遇上ViT助力铁路工人安全作业使用的以 ViT-base 为 backbone 的 PPYOLOE 模型,mAP(0.50, 11point) 提升了 8.62 的百分点,average FPS 提升了 4.4 个点。
大家快来 GitHub 给 PaddleDetection 点个 Star 叭!
如果需要在你的研究中使用RT-DETR,请通过以下方式引用我们的论文:
此文章为搬运 原项目链接