YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进【NO.77】引入百度最新提出RT-DETR模型中AIFI模块

news/2024/7/10 23:41:11 标签: YOLO, 算法, 目标跟踪

 前言
作为当前先进的深度学习目标检测算法YOLOv8,已经集合了大量的trick,但是还是有提高和改进的空间,针对具体应用场景下的检测难点,可以不同的改进方法。此后的系列文章,将重点对YOLOv8的如何改进进行详细的介绍,目的是为了给那些搞科研的同学需要创新点或者搞工程项目的朋友需要达到更好的效果提供自己的微薄帮助和参考。由于出到YOLOv8,YOLOv7、YOLOv5算法2020年至今已经涌现出大量改进论文,这个不论对于搞科研的同学或者已经工作的朋友来说,研究的价值和新颖度都不太够了,为与时俱进,以后改进算法YOLOv7为基础,此前YOLOv5改进方法在YOLOv7同样适用,所以继续YOLOv5系列改进的序号。另外改进方法在YOLOv5等其他目标检测算法同样可以适用进行改进。希望能够对大家有帮助。

一、解决问题

尝试引入最新最先进的Transfomer模块,提高对特征的提取能力,从而提升检测效果。

二、基本原理

论文原文:[2304.08069] DETRs Beat YOLOs on Real-time Object Detection (arxiv.org)

摘要:近年来,基于变压器的端到端检测器(DETR)取得了显著的性能。然而,DETR的高计算成本问题尚未得到有效解决,这限制了它们的实际应用,并使它们无法充分利用无后处理的好处,例如非最大值抑制(NMS)。本文首先分析了现代实时对象检测器中NMS对推理速度的影响,并建立了端到端速度基准。为了避免NMS引起的推理延迟,我们提出了一种实时检测TRansformer(RT-DETR),这是我们所知的第一个实时端到端对象检测器。具体而言,我们设计了一种高效的混合编码器,通过解耦尺度内交互和跨尺度融合来高效处理多尺度特征,并提出了IoU感知查询选择,以提高对象查询的初始化能力。此外,我们提出的检测器支持通过使用不同的解码器层来灵活调整推理速度,而不需要重新训练,这有助于实时对象检测器的实际应用。我们的RT-DETR-L在COCO val2017上实现了53.0%的AP,在T4 GPU上实现了114 FPS,而RT-DETR-X实现了54.8%的AP和74 FPS,在速度和精度方面都优于相同规模的所有YOLO检测器。此外,我们的RT-DETR-R50实现了53.1%的AP和108 FPS,在精度上比DINO-Deformable-DETR-R5高出2.2%的AP,在FPS上高出约21倍。        

RT-DETR作者团队认为只需将Encoder作用在S5 特征上,既可以大幅度地减小计算量、提高计算速度,又不会损伤到模型的性能。为了验证这一点,作者团队设计了若干对照组。

三、​添加方法

以下为改进前后的参数量,具体改进方法关注后私信咨询。

改进前:

改进后: 

四、总结

预告一下:下一篇内容将继续分享深度学习算法相关改进方法。有兴趣的朋友可以关注一下我,有问题可以留言或者私聊我哦

PS:该方法不仅仅是适用改进YOLOv5,也可以改进其他的YOLO网络以及目标检测网络,比如YOLOv7、v6、v4、v3,Faster rcnn ,ssd等。

最后,有需要的请关注私信我吧。关注免费领取深度学习算法学习资料!

http://www.niftyadmin.cn/n/5183613.html

相关文章

【Java 进阶篇】JQuery 案例:qq表情选择,表达情感的小黄脸

在我们的数字交流时代,表情符号已成为表达情感的重要方式之一。为了丰富用户的输入体验,qq表情选择功能应运而生。通过巧妙运用 JQuery,我们可以在页面中实现一个生动活泼的表情选择框,让用户轻松表达各种情感。本篇博客将深入探讨…

Panda3d 动画序列

动画序列 文章目录 动画序列使用动画序列Lerp动画序列基于 NodePath 的 LerpIntervals 概述一些方便快捷的函数功能其余基于 NodePath 的 LerpIntervals其他类型的 LerpInterval使用 Func 来处理动画序列Actor 动画序列声音动画序列序列和平行运动路径粒子动画序列射弹动画序列…

python之使用深度学习创建自己的表情符号

目录 部署项目1、首先运行train.py训练模型2、接下运行gui.py测试 一、使用 CNN 进行面部情绪识别二、GUI 代码和表情符号映射 在这个深度学习项目中,我们将对人类面部表情进行分类,以过滤和映射相应的表情符号或头像。 数据集(面部表情识别&…

Go语言函数底层实现

基于堆栈模式的程序执行模型决定了函数是语言的一个核心元素。分析Go函数的内部实现,对理解整个程序的执行模型有很大好处。研究底层实现有两个方法一种是看语言编译器源码,分析其对函数的各个特性的处理逻辑,一种是反汇编,将可以…

Stream流、函数式接口(Lambda)、链式编程

Lambda表达式 Lambda表达式就是对函数式接口中抽象方法的实现,是对其匿名内部类的一个简写,只保留了方法的参数列表和方法体,其他的成分可以省略。 三部分组成: 参数列表箭头方法体 (参数列表)->{方法体} 链式编程 链式编…

自定义Matplotlib中的颜色映射(cmap)

要自定义Matplotlib中的颜色映射(cmap),您可以按照以下步骤进行操作: 导入所需的库: import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import LinearSegmentedColormap创建自定义颜色映…

c# - - - Application.StartupPath(程序安装目录)和Environment.CurrentDirectory(程序工作目录)

Application.StartupPath 应用程序的安装目录,不会改变。 在C:\Users\Administrator\source\repos\ConsoleApp6\bin\Debug目录中,运行ConsoleApp6.exe。 安装目录为:C:\Users\Administrator\source\repos\ConsoleApp6\bin\Debug 在C:\Users…

6、使用本地模拟器调试项目

本地模拟器推荐内存为16G以上,最低内存要求8G(比较卡顿) 一、安装本地镜像 1、在开发工具的“文件”菜单中选择“设置” 2、在“设置”中选择“SDK”,在右侧勾选“System-image-phone”,点击“应用”开始安装 3、点击…