Small-object detection based on YOLOv5 in autonomous driving systems

发表期刊:Pattern Recognition Letters;发表时间:2023年
论文地址

摘要

随着自动驾驶领域的快速发展,对更快、更准确的目标检测框架的需求已经成为必要。最近的许多基于深度学习的目标检测器在各种实时驾驶应用中表现出了令人信服的性能,用于检测大型目标。然而,由于交通标志和交通灯等小目标的复杂性质,检测这些目标是一项具有挑战性的任务。此外,由于存在前景/背景不平衡以及恶劣天气和低光照条件导致的透视失真,少数图像中存在的复杂性进一步使得精确检测小目标变得困难。在这封信中,我们调查了如何调整现有的物体探测器以满足特定任务,以及这些修改如何影响对小物体的检测。为了实现这一目标,我们探索并引入了对流行的YOLOv5模型的体系结构更改,以提高其在检测小目标方面的性能,而不牺牲对大目标的检测精度,特别是在自动驾驶方面。我们将表明,我们的修改几乎没有增加计算复杂度,但显着提高了检测的准确性和速度。与传统的YOLOv5模型相比,IS-YOLOv5模型在BDD100K数据集上的平均精度(MAP)提高了3.35%。然而,与YOLOv5模型相比,我们提出的模型将检测速度提高了2.57帧/秒(FPS)。

引言

目标检测是计算机视觉领域中一项非常基础和研究很多的任务。目标检测任务的目的是对图像中的目标对象进行分类和定位。随着近年来深度学习技术的进步,出现了几种最先进的目标检测方法。目标检测已经广泛应用于许多现实世界的应用中,包括自动驾驶、机器人视觉、智能交通、遥感、军事行动和监视。
几个物体探测器通常在大物体上表现良好,但在小物体上表现不佳。当对象在输入图像中占据的像素区域或视场较小时,我们将其称为小对象。在通用对象检测器的情况下,小对象的特征失去了重要性,因为它们通过其主干的多层进行处理。由于背景信息不充足,表示噪声大,特征难以区分,背景复杂,分辨率有限,遮挡严重等,对小目标的准确检测存在挑战。虽然现代目标检测系统的设计主要是以牺牲计算资源为代价来实现目标的实时检测,但由于检测精度较低,缺乏可行性。因此,在这一特定领域的改进将有利于自动驾驶系统的实际意义。
检测道路上的目标物体是自动驾驶的一项基本任务。对于现有的大多数道路目标检测器,对小目标的检测精度不到大目标的一半。这是因为它们通常覆盖的像素较少,而且很难从低分辨率提取特征,因此模型很容易将其与背景混淆,导致遗漏或错误检测。此外,目标探测器最关键的挑战之一是对不同尺度目标的准确检测不能很好地平衡。在自动驾驶的背景下,交通标志和红绿灯可以被视为小对象。虽然许多研究建议增加网络在深度和宽度方面的表征能力以进行准确的检测,但这影响了模型的复杂性和成本。因此,这类模型不太适合自动驾驶系统,因为它们的实时资源限制。

通常,基于深度学习的目标检测模型分为(1)两阶段检测算法和(2)一阶段检测算法。两阶段模型以速度和复杂性为代价获得了比一阶段模型更高的精度,但可能不会直接受益于实际的驾驶场景。最近,许多新的单级探测器已经被开发出来用于这种应用。在这篇文章,我们重点介绍流行的单级探测器,即YOLOv5模型。这是YOLO系列中的最新版本,具有清晰灵活的结构,旨在实现可访问平台的高性能和高速度。然而,当前应用该模型的系统要么依赖于传统的训练方法、正则化/归一化技术,要么调整特定参数来提高性能,很少或根本不考虑架构修改。虽然YOLOv5是一个通用的对象检测器,但它并没有针对小对象的检测进行优化,因此在实践中无法适应特定的用例

这篇文章对原始的YOLOv5模型进行架构改进,以在小目标检测方面更好地执行。为此,我们考虑了自动驾驶系统中的实际道路环境,以检测交通标志和交通灯等微小道路对象。此外,我们将讨论我们的修改对如何在保持实时速度和略微增加系统计算复杂性的情况下准确执行这一任务的影响。我们贡献的亮点是:

1、我们对现有的YOLOv5模型进行了优化,设计了一种改进的YOLOv5架构,命名为iS-YOLOv5,旨在更好地检测自动驾驶场景中的小目标。

2、我们研究了我们的模型在不同天气场景中的适用性,以突出其在更稳健和更高效的目标检测背景下的重要性。

3、在BDD100K数据集上的大量实验验证了该模型的有效性。此外,我们还分别在TT100K和DTLD数据集上给出了交通标志和红绿灯检测的实验结果。

方法

虽然已经开发了一些技术来提高小目标检测的性能,但只有少数研究人员将重点放在结构修改来实现相同的性能在大多数情况下,性能的提高主要是由额外的正则化/归一化方法或通过增加框架中的参数来驱动的。因此,尚不清楚架构改进如何有助于提高显式任务的检测性能。在自动驾驶中,对微小物体的准确检测提供了关于环境的更有价值的上下文信息,有助于更好地制定决策策略。由于前景/背景不平衡、外观线索较少以及图像覆盖率较低,小目标的检测更具挑战性。在典型的道路交通环境中,检测小对象被认为是一个困难的问题,因为远处的对象由于透视失真而变得更小。值得注意的是,即使在同一类中,不同大小的小对象的本地化也存在显著差异。此外,许多驾驶系统优先考虑推理时间而不是性能,但有解决办法以低成本优化它们。因此,需要一种简单高效的道路目标检测模型,能够处理不同大小的小目标和大目标

YOLOv5的体系结构设计简单,但由于其内部组件的排列,需要对计算效率和实时适用性进行优化。因此,我们重定向某些连接,以便专注于检测多分辨率特征映射。当输入通过卷积逐层传递时,提取特征地图。前一卷积层生成的特征图捕捉小尺度目标,而后者生成的特征图捕捉大尺度目标。BottleNeckCSP是YOLOv5中最基本的块,提取了大部分上下文特征,但其现有属性对深层特征的提取效率较低,导致小目标检测效果不佳。另一个重要方面是选择适当的激活函数,这可能会限制性能,即使在添加多个卷积和归一化层时也是如此。此外,头部缺乏提取足够的浅层特征来定位小对象的能力

针对上述问题,我们提出了一种改进的Scaled YOLOv5(IS-YOLOv5),这是一种健壮而高效的体系结构,其详细结构如图所示。因为他证明了通过修改信息路径,引入了新的功能块BottleNeckCSP的局限性。我们减少了骨干网中N-CSP块的数量,以调整网络参数,提高计算速度。此外,我们在网络的特定层实现了Hard Swish激活函数而不是Leaky RELU。我们应用多次激活来避免信息损失,并根据输入大小减少计算代价[41]。在检测端,我们增加了一个检测头,用于从高分辨率特征地图获取的小尺度目标在颈部,我们对N-CSP块进行了优化调整,使其专注于检测多尺度特征。这将提高对不同尺度目标,特别是小目标的整体检测能力。注意,我们的集体修改几乎不会改变计算复杂性,同时显著提高了检测性能,并确保了实时要求。
在这里插入图片描述

改进SPP模块

随着CNN深度的增加,感受野的大小变得更大。由于输入图像的大小有限,特征提取在大的感受野上是重复的。因此,使用SPP模块来添加相应的模块,通过融合不同接受域的特征映射来消除这一问题。该模块将局部特征和全局特征相结合,最大限度地发挥特征映射的表达能力,扩展了骨干网的接收范围,并将最重要的上下文特征分离出来用于尺寸目标检测。为了综合不同尺度感受场的特点,SPP并行地使用了多个最大合并操作。该方法对提高整体检测精度具有明显的效果然而,最大池化操作不能捕获空间信息,导致信息丢失,导致无法准确定位目标,特别是小目标
为了解决这个问题,我们提出了一种改进的SPP模块,将池化函数替换为扩张卷积,如图2所示。虽然这两种操作都扩大了网络的接受范围,但池化降低了空间分辨率,导致特征信息的丢失。相比之下,不同扩张率的扩张卷积通过在不降低分辨率的情况下捕获检测小目标所需的多尺度信息来丰富提取的特征。然后在同一级别上组合输出特征以增强特征表示。因此,该模块提高了网络的学习能力,以精确定位目标,特别是小目标,同时以最小的计算代价保持快速的检测速度
在这里插入图片描述

改进的PANet结构

Neck网络的目的是聚合主干获得的特征,以提高后一种预测的准确性。这种结构在防止由于较高抽象级别而导致的小对象信息丢失方面起到了至关重要的作用。为了实现这一点,再次对特征图进行上采样,以便与骨干层执行聚集,并重申对检测的影响。FPN向浅层提供深层语义信息以增强检测能力,但忽略了浅层和深层特征聚合过程中的位置信息。而PANET结构提供了低层信息和高层信息的融合然而,集成方法依赖于相邻特征的聚合,而对非相邻层之间的信息交换关注较少。因此,随着每次聚集,非相邻层中的空间信息不断减少

因此,为了解决上述局限性,我们在原有的Panet结构的基础上设计了一种改进的Panet结构,如图所示。我们增加了两个跨层连接(B1和B2),一个在FPN的自上而下路径上,另一个在PANET的自下而上路径上,以集成不相邻和多层次的特征。在聚合过程中,这将允许更有效地使用语义和浅层位置信息,在不增加计算复杂性的情况下增强小对象的重要特征。
在这里插入图片描述

实验及结果分析

实验数据集

BDD100K数据集

参考文献 Bdd100k: a diverse driving dataset for heterogeneous multitask learning,

TT100K数据集

参考文献 Traffic-sign detection and classification in the wild,

DTLD数据集

参考文献 The driveu traffic light dataset: introduction and comparison with existing datasets

TT100K和DTLD数据集分别提供了30K个注释交通标志和200K个注释交通信号灯。BDD100K数据集包括来自不同环境、不同天气场景、不同昼夜的100K自动驾驶图像。对于几个类别,如果对象的占用面积大于112×112像素,我们认为对象是大对象;如果对象小于48×48像素,则认为对象是小对象;如果对象位于这两个阈值之间,则认为对象是中等对象。在这次评估中,我们主要关注交通灯和交通标志等小对象。超过80%的这些物体的面积小于48×48像素。

评价指标

Precision、Recall、mAP、IoU、FLOPs

实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(a)YOLOv5;(b)iS-YOLOv5

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Playwright进阶指南 (6) | 自动化测试实战

2025企业级测试解决方案:从单测到千级并发,打造高可用测试体系一、为什么传统自动化测试难以落地?根据2025年最新行业调研,测试项目失败的三大核心原因:失败原因占比典型表现维护成本过高45%选择器频繁失效&#xff0c…

uv 简单使用

二进制安装 powershell -ExecutionPolicy Bypass -c "irm https://ghproxy.cn/https://github.com/astral-sh/uv/releases/download/0.8.13/uv-installer.ps1 | iex"版本号:0.8.13,自行更改github加速前缀:https://ghproxy.cn/ 配置…

Linux程序管理

目录 一、Linux程序与进程 1、程序,进程,线程的概念 2、程序和进程的区别 3、进程和线程的区别 二、Linux进程基础(生命周期) 1、进程生命周期 2、父子进程的关系 三、程序管理 1、课程目标 2、常见的软件包类型 3、安装方法 使用独立的rpm包安装 rpm包的命名方法…

Linux-进程替换exec

文章目录进程替换exec 函数族使用说明查看命令的路径 which测试 execl测试 execlp测试 execv测试 execvp进程替换 概述 在 Windows 平台下,我们可以通过双击运行可执行程序,让这个可执行程序成为一个进程;而在 Linux 平台,我们可…

Seaborn数据可视化实战:Seaborn数据可视化实战入门

Seaborn数据可视化实战:从数据到图表的完整旅程 学习目标 通过本课程的学习,你将能够掌握使用Seaborn进行数据可视化的完整流程,从数据准备到图表设计,再到最终的图表呈现。本课程将通过一个具体的项目案例,帮助你全面…

控制系统仿真之时域分析(二)

一、时域分析法时域分析法是从传递函数出发直接在时域上研究控制系统性能的方法,实质上是研究系统在某典型输入信号下随时间变化的曲线,从而分析系统性能。控制系统的时域响应决定于系统本身的参数和结构,还有系统的初始状态,以及…

PDF 表单创建与分发

PDF 表单是一种交互式文档,允许用户填写信息、做出选择并提交数据。与静态 PDF 不同,PDF 表单包含可交互的字段元素,如文本框、复选框、单选按钮等。#mermaid-svg-sZe9We4UG0yKymyl {font-family:"trebuchet ms",verdana,arial,san…

Guava 简介:让 Java 开发更高效

Guava 简介:让 Java 开发更高效 Guava 是由 Google 开源的 Java 库,旨在为开发者提供一系列实用的工具类,以提高开发效率。它包含了集合类、缓存、并发工具、字符串处理等实用方法。 Guava 的常用场景 集合处理:Guava 提供了多种扩…

「ECG信号处理——(24)基于ECG和EEG信号的多模态融合疲劳分析」2025年8月23日

目录 一、引言 二、核心原理 2.1 心电 HRV 疲劳关联原理 2.2 脑电 EEG 疲劳关联原理 2.3 疲劳综合指数 三、数据处理流程 四、结果展示与分析 参考文献 一、引言 针对作业安全(如驾驶、精密操作)场景下的疲劳状态实时监测需求,本文提…

EXCEL自动调整列宽适应A4 A3 A2

Public xlPaperA2%Sub 填满页面排版()xlPaperA2 66 A2编号66Dim ws As Worksheet: Set ws ActiveSheetDim FirstCol As Long, LastCol As Long, LastRow As LongDim TargetRange As RangeDim UsablePageWidth As DoubleDim CurrentWidth As DoubleDim StartFontSize As Doubl…

Linux系统性能优化全攻略:从CPU到网络的全方位监控与诊断

引言 在Linux系统运维和开发过程中,系统性能优化是一个永恒的话题。无论是服务器负载过高,还是应用程序响应缓慢,准确快速地定位问题根源至关重要。本文将全面介绍Linux系统中常用的性能诊断工具和方法,帮助您从CPU、内存、磁盘I/…

uniapp+vue+uCharts开发常见问题汇总

项目结构:uniapp vue2 uni-ui uCharts 1、chunk-vendors.js:2765[Vue warn]: Invalid prop: custom validator check failed for prop "navigationBarTextStyle". 检索发现原因: 在 pages.json 文件中,navigationBarTextStyle 属…

【甲烷数据集】EPA-美国2012-2020年网格化甲烷清单

目录 数据概述 数据特征 数据版本与年份 排放源类型(示例) 时间变化处理 数据下载 参考 根据美国环保署(EPA)官网 《U.S. Gridded Methane Emissions》页面 的内容,以下是对 美国网格化甲烷清单(Gridded Methane GHGI) 的详细介绍。 数据概述 EPA-U.S. Gridded Methan…

【温室气体数据集】NOAA CCGG 飞机观测温室气体

目录 数据集概述 采样方式 测量气体 数据用途 观测站点 NOAA CCGG 飞机观测站点信息 项目特色 数据访问 参考 NOAA 全球监测实验室(Global Monitoring Laboratory, GML)提供的 Carbon Cycle Greenhouse Gases Aircraft Program 数据集是一个关于温室气体在大气中垂直分布的观…

FreeRTOS,互斥量 (Mutex)

1. 信号量 (Semaphore) 通俗理解:信号量就像停车场的空位计数器。当有车进入时,计数器减1;当有车离开时,计数器加1。如果计数器为0,新车必须等待直到有空位。 #include "FreeRTOS.h" #include "semphr.…

SQL查询-设置局部变量(PostgreSQL、MySQL)

😋博主在工作中编写复杂SQL语句时,经常需要替换查询值进行测试。所以需要用到局部变量设置,可以减轻测试时的压力。 目录使用场景1.常规写法2.局部变量写法(1)PostgreSQL示例注意事项(2)MySQL示…

2962 统计最大元素出现至少k次的子数组

2962 统计最大元素出现至少k次的子数组 文章目录2962 统计最大元素出现至少k次的子数组1 题目2 解答1 题目 给你一个整数数组 nums 和一个 正整数 k 。 请你统计有多少满足 「 nums 中的 最大 元素」至少出现 k 次的子数组,并返回满足这一条件的子数组的数目。 子…

【Java SE】基于多态与接口实现图书管理系统:从设计到编码全解析

文章目录一、系统整体设计:分层与职责划分系统模块结构二、核心模块详解:从数据到功能1. Book包:数据封装1.1 Book类:图书实体1.2 BookList类:书架管理2. User包:多态的核心体现2.1 User抽象类:…

ESP32-WSL开发环境搭建过程中遇到的问题及解决方案

文章目录 应用场景: 问题1描述: 原因分析: 解决方案: 先检查 ESP-IDF 工具链是否安装完整 设定工具路径变量一切正常: 执行重新运行安装脚本后又报错: 原因分析 解决方法: 第一步:安装python3.10-venv包(核心修复) 第二步:重新执行 ESP-IDF 安装脚本,重建虚拟环境 安…

SwiftUI 三阵诀:杨过绝情谷悟 “视图布阵” 之道

📜 引子:绝情谷困境,三阵待辨 绝情谷外,瘴气弥漫。杨过手握玄铁剑(喻 Xcode),凝视谷中涌动的万千 “毒物”(喻待渲染的视图元素),眉头紧锁。 此前他试过硬闯…