Yolo-Z:改进的YOLOv5用于小目标检测

目录

一、前言

二、背景

三、新思路

四、实验分析


论文地址:2112.11798.pdf (arxiv.org)

一、前言

随着自动驾驶汽车和自动驾驶赛车越来越受欢迎,对更快、更准确的检测器的需求也在增加。

虽然我们的肉眼几乎可以立即提取上下文信息,即使是在很远的地方,但图像分辨率和计算资源的限制使得检测较小的对象(即在输入图像中占据小像素区域的对象)对机器来说是一项真正具有挑战性的任务和广阔的研究领域。

本研究探讨了如何修改流行的YOLOv5目标检测器以提高其在检测较小对象方面的性能,特别是在自主赛车中的应用。为了实现这一点,研究者研究了替换模型的某些结构元素(以及它们的连接和其他参数)如何影响性能和推理时间。为此,研究者提出了一系列不同尺度的模型,将其命名为“YOLO-Z”,当以50%的IoU检测较小的物体时,这些模型的mAP提升高达6.9%,而代价与原始YOLOv5相比,推理时间增加了 3ms。

研究者们的目标是为未来的研究提供有关调整流行检测器(例如YOLOv5)以解决特定任务的潜力的信息,并提供有关特定更改如何影响小物体检测的见解。这些发现应用于更广泛的自动驾驶汽车环境,可以增加此类系统可用的环境信息量。

二、背景

检测图像中的小物体具有挑战性,主要是由于模型可用的分辨率和上下文信息有限。许多实现目标检测的系统都以实时速度执行此操作,从而对计算资源提出了特定要求,尤其是在处理要在捕获图像的同一设备上进行时。许多自动驾驶车辆系统就是这种情况,其中车辆本身实时捕获和处理图像,通常是为了通知其下一步行动。在这种情况下,检测较小的物体意味着检测距离汽车较远的物体,从而可以更早地检测到这些物体,有效地扩大了车辆的检测范围。这一特定领域的改进将更好地为系统提供信息,使其能够做出更稳健和可行的决策。由于目标检测器的性质,较小对象的细节在其卷积主干的每一层处理时失去了意义。在本研究中,“小物体”是指在输入图像中占据小像素区域的物体。

目前,已经有很多研究者努力改进对较小物体的检测[如An Evaluation of Deep Learning Methods for Small Object Detection],但许多都围绕着图像的特定区域进行处理或集中在two-stages检测器周围,这些检测器以实现以推理时间为代价获得更好的性能,使其不太适合实时应用程序。这也是为此类应用开发了如此多的单级检测器的原因。增加输入图像分辨率是绕过此问题的另一种明显方法,但会导致处理时间显着增加。

三、新思路

已经投入了一些努力来开发将处理导向输入图像的某些区域的系统,这使我们能够调整分辨率,从而绕过定义对象的像素较少的限制。然而,这种方法更适合对时间不敏感的系统,因为它们需要多次通过不同规模的网络。这种更加关注特定尺度的想法仍然可以激发我们处理某些特征图的方式。此外,通过查看如何处理特征图而不是仅仅修改主干可以学到很多东西。不同类型的特征金字塔网络(FPN)可以不同地聚合特征图,以不同方式增强主干。这种技术被证明是相当有效的。

YOLOv5框架

YOLOv5为其模型提供了四种不同的尺度,S、M、L和X,分别代表Small、Medium、Large和Xlarge。这些比例中的每一个都将不同的乘数应用于模型的深度和宽度,这意味着模型的整体结构保持不变,但每个模型的大小和复杂性都会按比例缩放。

在实验中,我们在所有尺度上分别对模型结构进行更改,并将每个模型视为不同的模型,以评估其效果。为了设置基线,我们训练并测试了YOLOv5四个未修改版本。然后,分别测试了对这些网络的更改,以便根据我们的基线结果分别观察它们的影响。在进入下一阶段时,那些似乎对提高准确性或推理时间没有贡献的技术和结构被过滤掉了。然后,尝试了所选技术的组合。重复这个过程,观察某些技术是相互补充还是相互削弱,并逐渐增加更复杂的组合。

Proposed architectural changes

YOLOv5使用yaml文件来指示解析器如何构建模型。我们使用此设置编写自己的高级指令,说明如何构建模型的不同构建块以及使用哪些参数,从而修改其结构。为了实现新结构,我们安排并为每个构建块或层提供参数,并在必要时指示解析器如何构建它。用我们的话来说,我们利用了YOLOv5提供的基础和实验网络块,同时在需要的地方实现了额外的块来模拟所需的结构。

其中,neck的修改:

在这项工作中,将当前的Pan-Net[Path aggregation network for instance segmentation]简化为FPN,并将其替换为biFPN[EfficientDet: Scalable and Efficient Object Detection]。在这两种情况下,neck都保留了类似的功能,但复杂性有所不同,因此实现它们所需的层数和连接数也有所不同。

其他修改可见论文。

四、实验分析

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/124829.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

延迟队列实现方案总结

日常开发中,可能会遇到一些延迟处理的消息任务,例如以下场景 ①订单支付超时未支付 ②考试时间结束试卷自动提交 ③身份证或其他验证信息超时未提交等场景。 ④用户申请退款,一天内没有响应默认自动退款等等。 如何处理这类任务,最…

MAC缓解WebUI提示词反推

当前环境信息: 在mac上安装好stable diffusion后,能做图片生成了之后,遇到一些图片需要做提示词反推,这个时候需要下载一个插件,参考: https://gitcode.net/ranting8323/stable-diffusion-webui-wd14-tagg…

66 内网安全-域横向批量atschtasksimpacket

目录 演示案例:横向渗透明文传递at&schtasks 案例2-横向渗透明文HASH传递atexec-impacket案例3-横向渗透明文HASH传递批量利用-综合案例5-探针主机域控架构服务操作演示 传递攻击是建立在明文和hash值的一个获取基础上的攻击,也是在内网里面常见协议的攻击&…

一道简单的C#面试题

试题: 抽顺序问题:有10位面试者,需要随机抽号面试。 1)总共十个号数,用数组表示; 2)每一位面试者输入1开始抽签,然后得到抽签号,输入2结束抽签; 3&#x…

Linux玩物志:好玩却无用的软件探秘

W...Y的主页 😊 代码仓库分享💕 🍔前言: 我们已经学习了yum指令,可以在Linux中安装一些软件的指令。下面我们就盘点一些可玩性很高但是却没有什么用的软件,在枯燥的学习中增添一丝乐趣! For…

CSS宽度100%和宽度100vw之间有什么不同?

vw和vh分别代表视口宽度和视口高度。 使用width: 100vw代替的区别在于width: 100%,虽然100%将使元素适合所有可用空间,但视口宽度具有特定的度量,在这种情况下,可用屏幕的宽度 。 如果设置样式body { margin: 0 },则1…

2000-2021年上市公司产融结合度量数据

2000-2021年上市公司产融结合度量数据 1、时间:2000-2021年 2、指标:股票代码、年份、是否持有银行股份、持有银行股份比例、是否持有其他金融机构股份、产融结合 3、来源:上市公司年报 4、范围:上市公司 5、样本量&#xff…

gRPC源码剖析-Builder模式

一、Builder模式 1、定义 将一个复杂对象的构建与表示分离,使得同样的构建过程可以创建不同的的表示。 2、适用场景 当创建复杂对象的算法应独立于该对象的组成部分以及它们的装配方式时。 当构造过程必须允许被构造的对象有不同的表示时。 说人话&#xff1a…

java基础篇-环境变量

java基础 编程学习的关键点、重点1.环境变量设置待续 编程学习的关键点、重点 输入输出 Java语言、C语言、Python语言、甚至SQL语言,都需要实战、做大量输入输出等 1.环境变量设置 1.下载jdk安装 jdk官网下载直达链接:https://www.oracle.com/java/te…

2023香港秋灯展丨移远通信闪耀亮相,开启Matter生态互联新篇章

10月27日,2023香港国际秋季灯饰展于香港会议展览中心正式开幕。 移远通信携最新一站式Matter解决方案、Wi-Fi模组,以及多款代表前沿技术的智能灯具、插座等终端重磅亮相。同时,公司产品总监丁子文围绕“Matter生态互联新篇章”主题发表演讲&a…

深度学习之基于YoloV8的行人跌倒目标检测系统

欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。 文章目录 一项目简介 二、功能三、行人跌倒目标检测系统四. 总结 一项目简介 世界老龄化趋势日益严重,现代化的生活习惯又使得大多数老人独居,统计数据表…

Zynq UltraScale+ XCZU7EV 纯VHDL解码 IMX214 MIPI 视频,2路视频拼接输出,提供vivado工程源码和技术支持

目录 1、前言免责声明 2、我这里已有的 MIPI 编解码方案3、本 MIPI CSI2 模块性能及其优越性4、详细设计方案设计原理框图IMX214 摄像头及其配置D-PHY 模块CSI-2-RX 模块Bayer转RGB模块伽马矫正模块VDMA图像缓存Video Scaler 图像缓存DP 输出 5、vivado工程详解PL端FPGA硬件设计…

SurfaceFliger绘制流程

前景提要: 当HWComposer接收到Vsync信号时,唤醒DisSync线程,在其中唤醒EventThread线程,调用DisplayEventReceiver的sendObjects像BitTub发送消息,由于在SurfaceFlinger的init过程中创建了EventThread线程&#xff0c…

Android环境变量macOS环境变量配置

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览macOS基础知识 三、设置环境变量3.1 终…

Spring两大核心之一:AOP(面向切面编程)含设计模式讲解,通知类型切点;附有案例,实现spring事务管理

模拟转账业务 pom.xml <dependencies><!--spring--><dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.3.29</version></dependency><!--lombok-->…

物联网二维码核销盒对接文档

核销盒是干嘛的&#xff1f; 1.在某些场景下快速核销订单或打卡签到等&#xff0c;通过核销盒能快速将订单信息发送到后端进行处理。 一&#xff0c;首先你需要有一台核销设备&#xff0c;也就是核销盒。 二&#xff0c;通过接口激活或更新核销盒 ​​​​​​​ 简要描述 激…

2.Vue — 模板语法、数据绑定、el与data的写法、数据代理

文章目录 一、模板语法1.1 插值语法1.2指令语法 二、数据绑定语法2.1 单向数据绑定2.2 双向数据绑定 三、el与data的两种写法3.1 el3.2 data 四、数据代理4.1 Object.defineProperty4.2 Vue数据代理4.2.1 展示数据代理4.2.2 Vue数据代理 一、模板语法 root容器里面的代码被称为…

边缘计算技术的崭新篇章:赋能未来智能系统

边缘计算是近年来云计算和物联网技术发展的重要趋势。通过将数据处理和分析从云端迁移到设备边缘&#xff0c;边缘计算能够实现更低的延迟和更高的数据安全。本文将探索边缘计算技术的最新进展及其在不同行业中的应用场景。 1. 实时数据处理与决策 在需要快速响应的场景中&…

Seata入门系列【15】@GlobalLock注解使用场景及源码分析

1 前言 在Seata 中提供了一个全局锁注解GlobalLock&#xff0c;字面意思是全局锁&#xff0c;搜索相关文档&#xff0c;发现资料很少&#xff0c;所以分析下它的应用场景和基本原理&#xff0c;首先看下源码中对该注解的说明&#xff1a; // 声明事务仅在单个本地RM中执行 //…

从0到1之微信小程序快速入门(03)

目录 什么是生命周期函数 WXS脚本 ​编辑 与 JavaScript 不同 纯数据字段 组件生命周期 定义生命周期方法 代码示例 组件所在页面的生命周期 代码示例 插槽 什么是插槽 启用多插槽 ​编辑 定义多插槽 组件通信 组件间通信 监听事件 触发事件 获取组件实例 自…