【论文阅读笔记】SL-YOLO(2025/1/13) | 小目标检测 | HEPAN、C2fDCB轻量化模块

目录

摘要

1 引言

2 相关工作

3 方法

3.1 为小目标检测增加一个头

3.2 优化网络结构

3.3 改进轻量化模块

3.3.1 C2fDCB

3.3.2 SCDown

4 实验

4.1 数据集

4.2 实验环境

4.3 与其他模型的比较

4.4 消融研究

▲不同网络结构的分析

▲不同模块的分析

▲不同降采样模块分析

结论



论文题目:SL-YOLO: A Stronger and Lighter Drone Target Detection Model(SL-YOLO:一种更强更轻的无人机目标检测模型)

论文地址:https://arxiv.org/pdf/2411.11477

发表时间:2025/1/13

作者单位:深圳大学

摘要

在复杂场景中检测小目标,如无人机拍摄的小目标,由于难以捕获小目标的复杂特征,是一项艰巨的挑战。虽然YOLO家族在大目标检测方面取得了巨大的成功,但在面对小目标时,其性能却不尽如人意。正因为如此,本文提出了一个革命性的模型SL-YOLO (更强更轻的YOLO),旨在打破小目标检测的瓶颈。我们提出了分层扩展路径聚合网络( Hierarchical Extended Path Aggregation Network,HEPAN ),这是一种开创性的跨尺度特征融合方法,即使在最具挑战性的环境中,也可以确保无与伦比的检测精度。同时,在不牺牲检测能力的前提下,设计了C2fDCB轻量化模块,并加入了SCDown降采样模块,大幅降低了模型的参数量和计算复杂度。我们在VisDrone2019数据集上的实验结果表明性能有了显著提升,mAP0.5从43.0%跃升至46.9%,mAP0.5:0.95从26.0%提升至28.9%。同时,模型参数从11.1M减少到9.6M,FPS可达132,使其成为资源受限环境下实时小目标检测的理想解决方案

1 引言

通过克服现有模型的局限性,提出了一个更强但轻量级的模型,SL-YOLO,它建立在YOLOv8s上,以处理复杂条件下和资源受限设备上的小目标检测

具体地,提出了层次扩展路径聚合网络( Hierarchical Extended Path Aggregation Network,HEPAN ),该网络可以更好地融合不同层次的特征,从而提高模型对小目标的捕获能力。此外,设计了C2fDCB轻量级模块,通过优化网络的卷积结构,减少了模型参数量,降低了计算复杂度

本研究的主要贡献如下:

为小目标检测增加一个头

针对YOLOv8对无人机图像中的小目标检测效果较差的问题,本文加入了额外的检测层进行小目标检测。该层通过融合浅层和深层的特征信息,显著增强了模型对小目标的捕获能力

优化网络结构

提出了层次扩展路径聚合网络( Hierarchical Extended Path Aggregation Network,HEPAN )来进一步增强对不同层次特征的融合能力。在HEPAN中,在网络结构的中间层添加额外的卷积层,并使用残差连接来加强梯度流。显著增强了模型对小目标的捕获能力,降低了检测漏检和误检的可能性

轻量化设计

本文综合深度可分离卷积和RepVGG再参数化方法设计了C2fDCB轻量化模块以提高C2f模块的计算效率。同时,引入SCDown降采样模块减少模型参数个数,降低计算开销。因此,该模型能够在资源受限的环境中高效地执行,同时保持较高的检测精度。

通过在VisDrone2019数据集上的实验验证,本文提出的SL-YOLO模型在mAP等关键评价指标上都有显著提升,证明了该模型能够在有限的资源条件下实现良好的检测性能。

图1中,我们展示了YOLOv8s和SL-YOLO在小目标检测中的性能比较。可以明显看出,SL-YOLO能够更加准确地识别复杂背景下的小目标,显著减少了漏检和误检,验证了SL-YOLO模型的有效性。

2 相关工作

目标检测的一个难点是检测不同尺度的目标,尤其是小目标。小目标具有较少的特征信息,在深度卷积神经网络中的池化和降采样过程中容易丢失。为此,研究人员提出了多尺度特征融合技术以保证网络能够有效地检测不同尺寸的目标。早期的目标检测模型,如RCNN [ 10 ]和Fast RCNN [ 9 ],通常使用单尺度特征图,导致检测性能有限。Faster RCNN[ 26 ]引入了区域建议网络( Region Proposal Network,RPN ),但仍然依赖于固定尺度的特征。特征金字塔网络( Feature Pyramid Network,FPN ) [ 19 ]通过多分辨率特征图实现多尺度检测,增强了小目标检测,成为多尺度特征融合中的经典。路径聚合网络( Path Aggregation Network,PANet ) [ 20 ]通过增加一条自底向上的路径对FPN进行改进,以更强的融合低层和高层特征。自适应空间特征融合( ASFF ) [ 21 ]通过在每个尺度上自适应地选择具有代表性的空间特征来细化特征选择。NAS-FPN [ 8 ]使用神经架构搜索来自动识别最优融合策略,但这种方法显著增加了计算成本。加权双向特征金字塔网络( BiFPN ) [ 30 ]在PANet的基础上进行了改进,加入了可学习的加权机制来平衡不同特征层次的贡献,实现了更有效的融合过程。

近年来,轻量级网络设计取得了一些重要进展,为资源受限环境下的深度学习应用提供了有效的解决方案。ResNet[12]通过残差连接解决梯度消失问题;DenseNet[15]通过密集连接促进特征重用,从而减少模型参数,提高性能;ResNeXt[38]引入了"分组卷"和"乘积"的概念,强调结构多样性,并通过增加基数来提高模型性能。MobileNet[14]使用深度可分离卷积显著减少计算量,适用于移动设备等场景;ShuffleNet[23]将通道洗牌和分组卷积相结合,实现了高效的特征学习;EfficientNet[28]通过复合缩放优化了网络的宽度、深度和分辨率,成为轻量化设计的标杆。CSPNet[34]通过特征图分离和跨阶段连接,减少了计算量,提高了模型表达能力;GhostNet[11]的"Ghost"模块进一步提升了特征表示能力;RepVGG[3]在推理阶段通过模块转换显著降低了推理的计算开销。这些网络的设计理念相互借鉴和创新,推动了深度学习模型实际应用的发展。

YOLO (You Only Look Once)作为一种实时目标检测模型,自2016年提出以来,已经成为计算机视觉的重要基准之一。YOLOv1[22、24]将目标检测视为回归问题,通过单个神经网络直接预测边界框和类别标签,显著提高了检测速度,但其小目标检测能力有限。YOLOv2[25]引入了多尺度检测和锚框机制来提高模型精度;YOLOv3[6]使用残差网络结构来增强小目标检测能力,实现了速度和精度之间的平衡

YOLOv4[1、7、39、41]结合了CSPDarknet和多种数据增强技术来进一步增强检测性能。之后的改进版本(YOLOv5、YOLOv6 、YOLOv7 、YOLOv8 、YOLOv9 、YOLOv10)在易用性模型轻量化方面进行了创新,使得模型在自动驾驶、安防监控、医学图像分析等多个领域得到了广泛的应用。未来的研究将继续致力于提高模型的鲁棒性和准确性,以应对更复杂的场景和任务需求。

3 方法

这一部分详细介绍了SL-YOLO模型的网络设计。目标是提高YOLOv8s模型的检测性能,特别是在无人机图像中的小目标检测这一具有挑战性的任务上。通过重点优化多尺度特征融合机制和引入轻量级模块来突破小目标检测的限制。在下面的小节中,将深入讨论这些增强的核心方面,并探讨它们的具体实现。

增强网络的整体结构如图2所示。它由3个主要部分组成:主干、颈部和头部。Backbone包括标准卷积( Conv )、C2f和轻量级C2fDCB模块负责特征提取和压缩。Neck使用分层扩展路径聚合网络( Hierarchical Extended Path Aggregation Network,HEPAN )融合多尺度特征,增强小目标检测。Head包含四个不同尺度的检测层,保证模型能够在多个尺度上准确识别物体。

3.1 为小目标检测增加一个头

本研究首先针对YOLOv8对无人机航拍图像中小目标检测效果不佳的问题,采用了一种通用的改进方法——增加小目标检测层。在小目标较多的无人机航拍图像中,虽然YOLOv8在常见的目标检测场景中表现良好,但其卷积特征提取机制在处理小目标时面临着显著的挑战。

随着网络深度的增加,小目标的信息在深层特征中逐渐丢失。为此,在YOLOv8模型中引入了新的小目标检测层,旨在通过融合浅层和深层特征来增强小目标的检测能力。具体来说,在网络的颈部结构中进行上采样,生成更高分辨率(160×160)的特征图,并将其与主干网络的输出进行融合,以提高对小目标的特征捕获能力。该方法能够改善小目标的检测效果,增强模型的自适应性。

3.2 优化网络结构

图3。网络结构示意图:(a) PANet;(b) BiFPN;(c) HEPAN。

YOLOv8的整体结构采用路径聚合网络(Path Aggregation Network,PANet),如图3(a)所示。该结构的主干网络包含多个卷积层,逐步提高特征图的深度和分辨率,使得模型能够有效地捕获不同层次的特征信息。但在实际应用中,YOLOv8在处理小目标时表现出一定的不足。主要原因是特征融合的效果不理想,对低层特征(例如小物体的详细信息)和高层特征(如全局上下文信息)的融合不足,导致模型在小目标检测中的准确率和召回率有限。这种限制显著影响了模型在复杂场景中的表现,尤其是当场景数量较多,但小目标所占比例相对较少时。

针对这些局限性,Li[30]提出了加权双向特征金字塔网络(BiFPN),如图3(b)所示。BiFPN结构的核心在于其双向信息流的设计,使得模型可以同时利用来自不同尺度的特征。具体来说,该结构通过跨层连接和融合操作增强了低层特征和高层特征之间的交互,提高了小目标的特征表达能力。此外,BiFPN通过在特征融合过程中对不同层次的特征进行自适应加权,确保更重要的特征在融合过程中占主导地位。这样的设计不仅提高了对小目标的检测能力,而且提高了模型在复杂场景下的整体性能。

我们进一步优化了特征融合机制,通过引入高效的层次扩展路径聚合网络(Hierarchical Extended Path Aggregation Network,HEPAN),实现了更详细的特征连接和信息流动,如图3(c)所示。在HEPAN的结构中,颈部引入额外的卷积层来进一步增强特征提取和表达能力,同时还引入残差连接来提高梯度流的稳定性。与传统的PAN和BiFPN结构相比,HEPAN可以显著提高小目标检测的精度,尤其是在复杂背景环境下。

3.3 改进轻量化模块

在小目标检测任务中,模型的计算复杂度和参数大小对实时性和效率有着至关重要的影响,尤其是当部署在资源受限的设备上时。因此,模型的轻量化设计成为提高检测速度、降低功耗的关键环节。从轻量化的角度对模型进行优化设计,旨在减少冗余计算的同时保持优异的检测性能。通过设计新的特征提取模块,显著减少了模型参数数量和计算成本。

3.3.1 C2fDCB

YOLOv8中的C2f模块通过通道特征融合技术建立特征图之间的联系,有效地整合了来自不同层的特征信息。但在参数效率和降低计算复杂度方面仍有提升空间。我们将深度可分离卷积与经典的C2f模块相结合,设计了C2fDCB模块,在保持特征丰富度的同时,进一步降低了参数和计算复杂度。与传统卷积层相比,该设计使模型在小目标检测任务中轻量化的同时仍能捕获关键特征,使其适用于资源受限的无人机环境。具体来说,在不考虑偏置的情况下,传统卷积运算的参数个数和计算复杂度可以分别由公式(1)和(2)计算得到。深度可分离卷积的参数量和复杂度均低于传统卷积,可分别由式(3)和式(4)计算得到。

深度可分离卷积Block(DCB)是C2fDCB模块的核心部件,如图4所示。

图4,展示了SL-YOLO中C2fDCB模块的结构,包括深度可分离卷积和RepVGGDW卷积等关键组件。DCB模块从一个3×3的标准卷积开始,用于保持模型的特征提取能力。标准卷积通过应用多个卷积核,使模型能够捕获输入特征中的局部模式和结构信息,为后续特征处理奠定基础。接下来,该模块引入channel-by-channel卷积,将卷积核独立地应用于每个输入通道,有效地降低了计算复杂度。随后,使用点卷积来整合来自不同通道的特征。通过1×1卷积操作,点卷积可以有效地混合各个通道的信息,从而提高特征表示的丰富性和表达能力。该层的设计保证了通道间的信息流动,使得模型可以学习到更复杂的特征。最后,在模块中引入RepVGGDW卷积。该卷积结合了深度可分离卷积的优点,在保持高性能特征提取能力的同时,进一步降低了计算复杂度。

3.3.2 SCDown

SCDown模块由两个主要的卷积层组成,旨在高效地降低特征图的空间和通道维度。第一个卷积层使用1×1卷积核将输入特征图的通道数从c1压缩到c2。这个过程不仅降低了后续计算的复杂度,而且可以让模型专注于更关键的特征信息。第二个卷积层对通道压缩后的特征图做进一步处理。该层使用k×k卷积核和步长s,并实现逐通道卷积以提高计算效率。通过调整空间维度,可以有效地对特征图进行降采样,增强模型对不同尺度信息的捕捉能力。

4 实验

4.1 数据集

在本文中,我们使用了VisDrone2019数据集,一个由天津大学和其他团队开发的大规模无人机视图数据集。它主要用于目标检测,包含有相应标注的图像,分为训练集( 6471张图像)、验证集( 548张图像)、测试集( 1610张图像)和竞赛集( 1580张图像)。图像大小为2000×1500 - 480×360。由于无人机视角的原因,该数据集在角度、内容、背景和光照等方面与MS COCO和VOC2012等地面数据集存在差异。它涵盖了各种光照条件下的街道、公园、学校等场景,标注了行人、汽车、自行车等10种目标类型。

4.2 实验环境

本实验选择Ubuntu 24.04.1作为操作系统,计算环境使用Python3.10.14,PyTorch 2.3.1和Cuda 11.8。在硬件方面,我们采用了NVIDIA RTX 6000Ada显卡。神经网络的实现基于Ultralytics公司提供的YOLOv8官方代码,并进行了相应的修改。为保证实验的可重复性,训练、测试和验证过程中使用的超参数保持一致。具体设置为训练600个epoch,输入图像大小调整为640×640。所有网络均使用预训练的权重yolov8s.pt进行训练,测试时使用单张图像进行测速(bs=1)。

4.3 与其他模型的比较

表1。实验结果与VisDrone2019-val中的其他模型进行对比。

表2。实验结果与VisDrone2019-test中的其他模型进行对比。

综上所述,SL-YOLO在精度速度之间找到了一个很好的平衡点。它是该任务中最高效、最优秀的模型之一,尤其适用于对实时性和准确性要求较高的场景。

4.4 消融研究

为了进一步验证所提算法的有效性,在VisDrone-2019验证集上进行了消融实验。以YOLOv8s为基准模型,逐步组合加入本文提到的各种改进方法,验证各方法对目标检测性能的提升表3给出了在VisDrone-2019验证数据集上进行的消融实验结果。

实验涉及对基础YOLOv8s模型添加各种改进,包括添加P2层小目标检测头、HEPAN结构、C2fDCB模块、SCDown以及这些改进的组合。由表可知,基础YOLOv8s模型在实验中得到mAP0.5为43.0%,mAP0.5:0.95为26.0%,参数量为11.1M,GFLOPs为28.5。在Baseline中添加P2层后,mAP0.5增加到46.2% (+ 3.2%),mAP0.5:0.95增加到28.3% (+ 2.3%),参数数量从11.1M减少到10.6M,GFLOPs增加到36.7。表明增加小目标层显著提高了检测精度,尤其是对小目标的检测能力,但计算量增大。对HEPAN结构进一步改进后,mAP0.5进一步提升至47.2% (+1.0%),mAP0.5:0.95提升至29.1% (+ 0.8%),参数数量提升至11.3M,GFLOPs为38.1。这一结果表明,HEPAN结构进一步提升了网络的整体性能,尤其是高IoU阈值的性能。将C2f模块替换为C2fDCB后,mAP0.5略有下降至47.0% (-0.2%),mAP0.5:0.95保持在29.1%,参数数量减少至10.6M,GFLOPs也降低至37.3。虽然精度略有下降,但模型精度较高变得更轻,并且减少了参数和计算量。最后,将降采样模块替换为SCDown模块后,模型的mAP0.5为46.9%,mAP0.5:0.95为28.9%,参数量显著减少至9.6M (-1.0M),GFLOPs降低至36.7(-0.6),显示了SCDown模块在简化模型结构方面的优势

不同网络结构的分析

表4中,比较了PAN、BiFPN和HEPAN三种网络结构在VisDrone2019-val数据集上的模型性能。HEPAN结构实现了最高的检测效果,达到mAP0.5(47.2%),参数尺寸为11.3M,GFLOPs为38.1,优于PAN和BiFPN结构(46.2%和46.4%)。虽然HEPAN的计算复杂度略高,但性能提升显著

不同模块的分析

表5比较了分别使用C3、C2f和C2fDCB模块的效果。C2f模块实现了最高的mAP0.5 (47.2 %),具有11.3M的参数和38.1 GFLOPs。相比之下,C2fDCB的参数和计算量( 10.6M和37.3 GFLOPs)略低,但其性能略低,达到了47.0%的mAP0.5。这说明C2f模块在性能和计算量之间取得了较好的平衡

不同降采样模块分析

实验结果见表6。虽然Conv模块在mAP0.5上略优于SCDown,但两者的性能差距几乎可以忽略不计。然而,SCDown模块在参数量和计算复杂度两方面均优于Conv。因此,在实际应用中选择SCDown模块可能会带来更好的均衡性,尤其是当资源受限时,仍然保持良好的检测性能。

结论

本文提出了SL-YOLO模型,一个更强更轻的模型用于复杂环境下的无人机目标检测。SL-YOLO融合了层次扩展路径聚合网络( Hierarchical Extended Path Aggregation Network,HEPAN )用于改进跨尺度特征融合,增强小目标精度,以及C2fDCB和SCDown模块,在保持高性能的同时减少参数和计算负载。SL-YOLO的设计使无人机能够在复杂环境中高效地检测小目标,为灾难响应、智能监控等关键任务提供了坚实的支撑。未来,我们计划进一步优化SL-YOLO的跨场景适应能力,使其在更多不同场景下都能表现出优异的小目标检测性能,为无人机领域的智能化发展提供更多可能。

至此,本文的内容就结束啦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

进化算法和智能控制国际学术研讨会(ISEAIC 2025)

重要信息 官网:www.icaace.net(了解参会投稿等) 时间:2025年3月21-23日 地点:中国-上海-上海古井假日酒店 简介 2025进化算法和智能控制国际学术研究会议(ISEAIC 2025)是2025第八届先进算法…

SpringAI 调用本地ollama大模型

pom文件 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM/4.0.0…

【二.提示词工程与实战应用篇】【1.提示词工程入门:AI对话的艺术】

大家好,今天咱们来聊聊一个特别有意思的话题——提示词工程。你可能已经听说过这个词,或者在使用AI工具时不经意间接触过它。但提示词工程到底是什么?它为什么这么重要?咱们今天就来深入探讨一下,看看它是如何影响我们与AI的对话,以及如何在实际应用中发挥作用的。 什么…

C++:类和对象(下篇)

1. 再谈构造函数 1.1 构造函数体赋值 在创建对象时&#xff0c;编译器通过调用构造函数&#xff0c;给对象中各个成员变量一个合适的初始值。 class Date { public:Date(int year, int month, int day){_year year;_month month;_day day;} private:int _year;int _mont…

【计算机网络】考研复试高频知识点总结

文章目录 一、基础概念1、计算机⽹络的定义2、计算机⽹络的目标3、计算机⽹络的组成4、计算机⽹络的分类5、计算机⽹络的拓扑结构6、计算机⽹络的协议7、计算机⽹络的分层结构8、OSI 参考模型9、TCP/IP 参考模型10、五层协议体系结构 二、物理层1、物理层的功能2、传输媒体3、 …

【Python 数据结构 5.栈】

目录 一、栈的基本概念 1.栈的概念 2.入栈 入栈的步骤 3.出栈 出栈的步骤 4.获取栈顶元素 获取栈顶元素的步骤 二、 Python中的栈 顺序表实现 链表实现 三、栈的实战 1.LCR 123. 图书整理 I 思路与算法 2.LCR 027. 回文链表 思路与算法 3.1614. 括号的最大嵌套深度 思路与算法 …

C++基础算法:模拟

文章目录 1.[P1067 [NOIP 2009 普及组\] 多项式输出 - 洛谷](https://www.luogu.com.cn/problem/P1067)题目解析算法解析代码实现 2.[P5731 【深基5.习6】蛇形方阵 - 洛谷](https://www.luogu.com.cn/problem/P5731)题目解析算法原理代码实现 3.[P1098 [NOIP 2007 提高组\] 字符…

关于对机器中的人工智能进行基准测试

大家读完觉得有帮助记得及时关注和点赞&#xff01;&#xff01;&#xff01; 抽象 最近的基准研究声称&#xff0c;AI 在各种认知任务上的表现已经接近甚至超过人类的“水平”。然而&#xff0c;本立场文件认为&#xff0c;当前的 AI 评估范式不足以评估类似人类的认知能力。我…

c++ 内存管理系统之智能指针

1.c内存管理 1.代码区 也称Text Segment&#xff0c;存放可执行程序的机器码。 2 数据区&#xff1a; 存放已初始化的全局和静态变量&#xff0c; 常量数据&#xff08;如字符串常量&#xff09;。 存放未初始化的全局和静态变量 无疑解释静态变量的来源&#xff1a; 局…

Unity中的Destroy和DestroyImmediate的区别是什么?

在 Unity 中&#xff0c;Destroy 和 DestroyImmediate 都是用于销毁游戏对象&#xff08;GameObject&#xff09;、组件&#xff08;Component&#xff09;或资源的方法。在大多数情况下&#xff0c;建议优先使用 Destroy 方法&#xff0c;只有在确实需要立即销毁对象时才使用 …

Microk8s Ingress实现七层负载均衡

Microk8s Ingress是什么 Ingress是k8s的一种资源对象&#xff0c;用于管理外部对集群内服务的访问, 它通过提供一个统一的入口点&#xff0c;将外部流量路由到集群内部的不同服务。 Microk8s Ingress用于解决什么问题 k8s集群中服务默认只能在集群内访问。 如果需要从外部访…

DeepSpeek服务器繁忙?这几种替代方案帮你流畅使用!(附本地部署教程)

作者&#xff1a;后端小肥肠 目录 1. 前言 2. 解决方案 2.1. 纳米AI搜索&#xff08;第三方平台&#xff09; 2.2. Github&#xff08;第三方平台&#xff09; 2.3. 硅基流动&#xff08;第三方API&#xff09; 3. 本地部署详细步骤 3.1. 运行配置需求 3.2. 部署教程 4…

【大厂AI实践】美团:美团智能客服核心技术与实践

【大厂AI实践】美团&#xff1a;美团智能客服核心技术与实践 &#x1f31f; 嗨&#xff0c;你好&#xff0c;我是 青松 &#xff01; &#x1f308; 自小刺头深草里&#xff0c;而今渐觉出蓬蒿。 NLP Github 项目推荐&#xff1a; 【AI 藏经阁】&#xff1a;https://gitee.com…

科技查新有不通过的情况吗?为什么?

1. 科技查新有不通过的情况吗&#xff1f;为什么&#xff1f; 有。科技查新“不通过”&#xff08;即查新报告显示技术缺乏新颖性或存在侵权风险&#xff09;的情况并不罕见&#xff0c;主要原因包括&#xff1a; &#xff08;1&#xff09;技术缺乏创新性 重复开发&#xff…

批量提取 Word 文档中的页面

如何将 Word 文档中的页面提取出来形成一个新的文档呢&#xff1f;比如将 Word 文档中的第一页提取出来、将 Word 文档中的最后一页提取出来、再或者将 Word 文档中的中间几页提取出来等等。人工的处理肯定非常的麻烦&#xff0c;需要新建 Word 文档&#xff0c;然后将内容复制…

Spring统一格式返回

目录 一&#xff1a;统一结果返回 1&#xff1a;统一结果返回写法 2&#xff1a;String类型报错问题 解决方法 二&#xff1a;统一异常返回 统一异常返回写法 三&#xff1a;总结 同志们&#xff0c;今天咱来讲一讲统一格式返回啊&#xff0c;也是好久没有讲过统一格式返…

(十 八)趣学设计模式 之 观察者模式!

目录 一、 啥是观察者模式&#xff1f;二、 为什么要用观察者模式&#xff1f;三、 观察者模式的实现方式四、 观察者模式的优缺点五、 观察者模式的应用场景六、 总结 &#x1f31f;我的其他文章也讲解的比较有趣&#x1f601;&#xff0c;如果喜欢博主的讲解方式&#xff0c;…

Linux虚拟机网络配置-桥接网络配置

简介 本文档旨在指导用户如何在虚拟环境中配置Linux系统的桥接网络&#xff0c;以实现虚拟机与物理主机以及外部网络的直接通信。桥接网络允许虚拟机如同一台独立的物理机一样直接连接到物理网络&#xff0c;从而可以被分配一个独立的IP地址&#xff0c;并能够与网络中的其他设…

视频教育网站开源系统的部署安装 (roncoo-education)服务器为ubuntu22.04.05

一、说明 前端技术体系&#xff1a;Vue3 Nuxt3 Vite5 Vue-Router Element-Plus Pinia Axios 后端技术体系&#xff1a;Spring Cloud Alibaba2021 MySQL8 Nacos Seata Mybatis Druid redis 后端系统&#xff1a;roncoo-education&#xff08;核心框架&#xff1a;S…

线程相关八股

1. 线程和进程的区别&#xff1f; 进程&#xff1a;进程可以简单理解为进行一个程序&#xff0c;比如说我们打开一个浏览器&#xff0c;打开一个文本&#xff0c;这就是开启了一个进程&#xff0c;一个进程想要在计算机中运行&#xff0c;需要将程序交给CPU&#xff0c;将数据…