当火热的Mamba遇到火热的YOLO,会发生怎么样的反应吗?

在这里插入图片描述
作者:浙江师范大学
论文地址:https://arxiv.org/pdf/2406.05835
代码地址:https://github.com/HZAI-ZJNU/Mamba-YOLO

目录

  • 前言
  • 一、摘要
  • 二、介绍
  • 二、相关工作
    • 2.1 实时目标检测器
    • 2.2 端到端的目标检测器
    • 2.3 视觉状态空间模型
  • 三 方法
    • 3.1 基础知识Mamba
    • 3.2 总体框架
    • 3.3 ODSS块
      • 3.3.1 LocalSpatial Block
  • 四 实验
    • 4.1 SOTA对比
  • 五 结论


前言

计算机视觉的发展,从CNN开始火起来,到Transformer再将之推向高潮,最近火热的Mamba架构也开始突起爆发。如果将最近火热的Mamba模型与YOLO检测框架结合,能擦出什么火花呢?这篇文章将问你解读。


在这里插入图片描述
不同模型学习到的注意力图可视化

在这里插入图片描述
YOLOv5[46]、YOLOv6[27]、YOLOv7[28]、YOLOv8[42]和曼巴YOLO在主干中的随机初始权可视化结果输出的特征图。

在这里插入图片描述
图1:MSCOCO数据集上实时目标探测器的对比。基于ssm的目标检测方法在flops精度(左)方面具有显著优势。

一、摘要

在深度学习技术快速发展的推动下,YOLO系列为实时目标探测器树立了新的标杆。研究人员在YOLO的基础上不断探索重新参数化、高效层聚集网络和无锚技术的创新应用。为了进一步提高检测性能,引入了基于变压器的结构,大大扩展了模型的接受域,并取得了显着的性能提升。然而,这种改进是有代价的,因为自注意机制的二次复杂度增加了模型的计算负担。幸运的是,状态空间模型(SSM)作为一种创新技术的出现,有效地缓解了二次复杂度带来的问题。在此基础上,作者提出了一种新的基于SSM的目标检测模型Mamba-YOLO。Mamba-YOLO不仅优化了SSM基础,而且还专门适用于目标检测任务。考虑到SSM在序列建模中可能存在的局限性,如接收野不足和图像局域性弱,作者设计了LSBlock和RGBlock。这些模块能够更精确地捕获局部图像依赖关系,并显著增强模型的鲁棒性。在公开可用的基准数据集COCO和VOC上进行的大量实验结果表明,Mamba-YOLO在性能和竞争力方面都超过了现有的YOLO系列模型,展示了其巨大的潜力和竞争优势。PyTorch代码可在:https://github.com/HZAI-ZJNU/Mamba-YOLO获得

二、介绍

近年来,深度学习发展迅速,特别是在计算机视觉领域,一系列强大的结构已经取得了令人印象深刻的表现。从cnn[1, 2, 3, 4, 5]和Transformers[6, 7, 8, 9, 10]到Mamba架构[32,31,33,34],各种结构的应用已经展示了它们在计算机视觉中的强大潜力。

在目标检测的下游任务中,主要使用CNN[15,16,17,20,21]和Transformer结构[11,13]。cnn及其一系列改进在确保准确性的同时提供了快速的执行速度。然而,由于图像相关性较差,研究人员将Transformers引入到目标检测领域,如DETR系列[11,12,14],依靠强大的自关注全局建模能力来解决cnn接收域小的问题。幸运的是,随着硬件的进步,这种结构带来的内存计算的增加不会造成太大的问题。但是,近年来,更多的工作[5,59,60]开始重新思考如何设计cnn以使模型更快,更多的从业者开始对Transformer结构的二次复杂度感到不满,开始使用混合结构来重建模型并降低复杂性,如MobileVit [61], EdgeVit [62], effentformer[43]。然而,混合动力车型也带来了问题,性能的明显下降也是一个令人担忧的问题,因此在性能和速度之间寻找平衡一直是研究人员关注的问题。

YOLO系列一直是目标检测领域具有里程碑意义的实时探测器。从YOLOv4[25]开始,引入了CSPNet [63], YOLOv6[27]开始纳入重新参数化,YOLOv7[28]使用ELAN重建模型,YOLOv8[42]采用了解耦的头部和无锚设计。最近提出的YOLOv10[48]将变压器结构的元素集成到其设计中,引入了部分自关注(PSA)模块,旨在增强模型的全局建模能力,同时控制计算成本。这证明了这个系列一直具有强大的生命力。此外,cnn的结构赋予了该模型强大的执行速度,许多从业者已经使用注意力机制来改进该模型,以达到他们所在领域期望的性能改进。

viti -YOLO[38]在YOLO中引入了MHSA-Darknet,以及增强的训练策略,如TTA和加权帧融合技术。然而,参数和FLOPs数量的增加并没有带来预期的性能提升,这表明Transformer在对象检测任务中的可扩展性存在局限性,特别是在YOLO中。YOLOS[37]采用了基于原有ViT架构的极简改造方案,将ViT中的CLS标记替换为DET标记,并在集成预测方法中采用二分类匹配损失。然而,它的性能令人失望,并且对预训练方案非常敏感,在不同的预训练策略下,YOLOS表现出很大的可变性。Gold-YOLO[29]提出了一种通过卷积基元和注意基元提取和融合特征信息来增强多尺度特征融合的方法。然而,这些方法在整合Transformer结构的同时,放弃了其强大的全局关注机制和长序列处理能力的核心优势,而寻求减少二次复杂度降低带来的计算量,这往往限制了模型的性能。

最近,基于状态空间模型(state space models, ssm)的方法,如Mamba[32],由于其强大的远程依赖关系建模能力和优越的线性时间复杂度特性,为解决这些问题提供了新的思路。令人兴奋的是,研究人员已经成功地将曼巴结构引入视觉领域,并在图像分类方面取得了成功[31,33]。受此启发,提出了一个问题:能否将SSM结构引入目标检测领域,结合现有的实时检测器,利用SSM的优势,为YOLO系列带来新的性能提升?本文提出了一种名为Mamba-YOLO的探测器模型。引入了ODSSBlock模块,如图4所示,将SSM结构应用于对象检测领域。与用于图像分类的VSSBlock不同,用于目标检测的图像具有更大的像素,并且由于SSM模型通常建模文本序列,缺乏图像的通道表达能力,因此作者提出了LSBlock来建模通道特征。利用图像中更大的像素和更多的通道维度,作者提出了RGBlock结构,在SS2D输出后进一步解码,使用点乘法的高维表达式来提高通道相关性。Mamba-YOLO是视觉识别和检测任务的重要进展,旨在构建一种结合SSM和CNN优点的新型骨干网。该体系结构将基于ssm的状态空间转换模型应用于YOLO层,以有效捕获全局依赖关系,并利用局部卷积的强度来提高检测精度和模型对复杂场景的理解,同时保持实时性能。这种混合架构有望突破现有视觉模型在处理大规模或高分辨率图像方面的局限性,为下一代视觉基础模型提供强大而灵活的支持。 在PASCAL VOC[35], COCO[36]上进行了详尽的实验,结果表明,Mamba-YOLO在一般目标检测任务中非常有竞争力,在MSCOCO上实现了比基线YOLOv8高8.1%的mAP。

本文的主要贡献如下:

•提出了基于SSM的Mamba-YOLO,为目标检测中的yolo建立了新的基线,为未来基于SSM开发更高效的探测器奠定了坚实的基础。
•提出了ODSSBlock,其中LS Block有效地提取输入特征映射的局部空间信息,以补偿SSM的局部建模能力。通过对MLP层设计的重新思考,作者将门控聚合与有效卷积与残差连通性相结合,提出了RG块,有效地捕获了局部依赖关系,增强了模型的鲁棒性。
•设计了一组不同尺度的Mamba-YOLO (Tiny/Base/Large)模型来支持不同规模和尺度的任务部署,并在COCO和VOC两个数据集上进行了实验,如图1所示,结果表明作者的Mamba-YOLO与现有的最先进的方法相比,性能有了显著的提高。

二、相关工作

2.1 实时目标检测器

YOLOv1到YOLOv3[22,23,24]是yoloo系列模型的先行者,它们的性能提升都与骨干改进密切相关,使得暗网得到广泛应用。YOLOv4[25]引入了大量残差结构设计提出的CSPDarknet53骨干网,有效降低了计算冗余,实现了高性能的特征表达和高效的训练。YOLOv7[28]提出了E-ELAN结构,在不破坏原有模型的情况下增强模型能力。Yolov8[42]结合了前几代yolo8的特点,采用了具有更丰富梯度流的C2f结构,在兼顾精度的同时,轻量级、可适应不同场景。最近,Gold Yolo[29]提出了一种新的机制GD (gatherand - distribute),通过自关注运算来解决传统特征金字塔网络[52]和Rep-PAN[27]的信息融合问题,并成功实现了SOTA。事实上,传统的cnn由于其局部接受域和分层结构设计,在面对图像尺度变化剧烈、背景复杂和多视点干扰等挑战时存在一定的局限性。

2.2 端到端的目标检测器

DETR[11]首次将Transformer引入对象检测,使用变压器编码器-解码器架构,绕过传统的手工制作组件,如锚点生成和非最大抑制,将检测视为直接的集成预测问题。Deformable DETR[12]引入了Deformable Attention,这是Transformer Attention的一种变体,用于对参考位置周围的稀疏关键点集进行采样,解决了DETR在处理高分辨率特征地图方面的局限性。DINO[13]集成了混合查询选择策略、可变形注意力和注入噪声的演示训练,并通过查询优化提高性能。RT-DETR[14]提出了一种混合编码器来解耦尺度内相互作用和跨尺度融合,以实现高效的多尺度特征处理。然而,deta在训练收敛性、计算成本和小目标检测方面存在挑战,而yolo系列在小模型领域仍然是精度和速度平衡的SOTA。

2.3 视觉状态空间模型

状态空间模型是近年来研究的热点。Mamba[32]在研究SSM[39,40,41]的基础上,显示了输入大小的线性复杂性,解决了Transformer在建模状态空间长序列上的计算效率问题。在广义视觉骨干领域,Vision Mamba[33]提出了一种基于SSM的纯视觉骨干模型,这是曼巴首次被引入视觉领域。vammba[31]引入了Cross-Scan模块,使模型能够对二维图像进行选择性扫描,增强了视觉处理能力,在图像分类任务上表现出优越性。LocalMamba[34]侧重于视觉空间模型的窗口扫描策略,优化视觉信息以捕获局部依赖关系,并引入动态扫描方法以搜索不同层的最优选择。MambaOut[49]探讨了Mamba架构在视觉任务中的必要性,它指出SSM对于图像分类任务不是必需的,但它对于遵循长序列特征的检测和分割任务的价值值得进一步探讨。在下游视觉任务中,曼巴也被广泛应用于医学图像分割[53,54,55]和遥感图像分割[56,57]的研究中。受VMamba[31]在视觉任务领域取得的显著成果的启发,本文首次提出了一种新的SSMs模型mamba YOLO,该模型旨在考虑全局感觉领域,同时展示其在目标检测任务中的潜力。

三 方法

3.1 基础知识Mamba

基于状态空间模型(SSM)的结构化状态空间序列模型S4[39]和Mamba[32]都源于一个连续系统,该系统通过隐式潜在中间状态h(t)∈rn将单变量序列x(t)∈R映射到输出序列y(t)。这种设计不仅连接了输入和输出之间的关系,而且还封装了时间动态。系统可以用数学方法定义为:
h ’ (t) =Ah(t) + Bx(t) (1)
y(t) =Ch(t)(2)
式(1)中,A∈R N×N表示状态转移矩阵,表示隐藏状态随时间的演变,B∈R N×1表示输入空间相对于隐藏状态的权值矩阵。其中,C∈R N×1是观测矩阵,它将隐藏的中间状态映射到输出。

有关Mamba讲解,可以参考其他资料。

3.2 总体框架

在这里插入图片描述
图2展示了Mamba YOLO体系结构的概述。作者的目标检测模型分为ODMamba脊柱和颈部部分。ODMamba由Simple Stem, Downsample Block组成。在颈部,遵循PAN-FPN的设计,使用ODSSBlock模块而不是C2f[42]来捕获更富梯度的信息流。主干首先通过Stem模块进行下采样,得到分辨率为h4, w4的二维特征图。

随后,所有模型都由ODSSBlock和VisionClue Merge模块组成,用于进一步下采样。在颈部部分, 采用了PAFPN的设计[42],使用ODSSBlock代替C2f,其中Conv单独负责下采样。

简单干现代视觉变压器(ViTs)通常采用分割补丁作为其初始模块,将图像划分为不重叠的片段。这个分割过程是通过核大小为4、步长为4的卷积操作来实现的。然而,最近的研究,如来自EfficientFormerV2[43]的研究表明,这种方法可能会限制vit的优化能力,影响整体性能。为了在性能和效率之间取得平衡, 提出了一个流线型的阀杆层。 没有使用不重叠的补丁,而是使用两个卷积,步幅为2,内核大小为3。

虽然卷积神经网络(cnn)和视觉变压器(ViT)结构通常使用卷积进行下采样,但 发现这种方法会干扰SS2D在不同信息流阶段的选择性操作[31]。为了解决这个问题,vammba[31]分割了2D特征图,并使用1x1卷积降维。 研究结果表明,为状态空间模型(SSMs)保留更多的视觉线索有利于模型训练。与传统的尺寸减半相比, 通过以下方式简化了这个过程:1)去除规范;2)分割维度图;3)将多余的特征映射附加到通道维度;4)利用4倍压缩的点向卷积进行下采样。与使用步幅为2的3x3卷积不同,作者的方法保留了SS2D从上一层选择的特征图。

在这里插入图片描述
图三。SS2D操作说明。SS2D中的扫描扩展操作分为4个分支,分别在图像的4个不同方向路径上逐块扫描图像,得到4个序列。SS2D中的扫描合并操作将获得的序列作为S6块的输入,将不同方向的序列进行合并,从而将特征提取为全局特征。

3.3 ODSS块

如图4所示,ODSS Block是Mamba YOLO的核心模块,在输入阶段经过一系列处理,使网络能够学习到更深入、更丰富的特征表示,同时通过批处理归一化保持训练推理过程的高效和稳定。

扫描扩展、S6块和扫描合并是SS2D[31]算法的三个主要步骤,其主要流程如图3所示。扫描展开操作将输入图像展开为一系列子图像,每个子图像表示一个特定的方向,当从对角线视点观察时,扫描展开操作沿着四个对称方向进行,分别是自顶向下、自底向上、从左到右和从右到左。这种布局不仅全面覆盖了输入图像的所有区域,而且通过系统的方向变换,为后续的特征提取提供了丰富的多维信息库,提高了图像特征多维捕获的效率和全面性。然后对这些子图像进行S6块[32]操作的特征提取,最后通过扫描合并操作将这些子图像合并在一起,形成与输入图像大小相同的输出图像。

在这里插入图片描述
图4:(a) SS2D详细结构图(b) ODSSBlock架构图©残差门通块图(RGBlock)(d)局部空间块图(LSBlock)

3.3.1 LocalSpatial Block

曼巴架构已被证明在捕获远程地面依赖性方面是有效的。然而,在处理复杂尺度变化的任务时,局部特征的提取面临一定的挑战。在图4©中,本文提出了LocalSpatial Block来增强局部特征的捕获。具体来说,对于给定的输入特征F l−1∈R C×H×W,首先对其进行深度可分卷积,该卷积分别对每个输入通道进行操作,而不混合通道信息。有效提取输入特征图的局部空间信息,同时减少计算成本和参数数量,然后进行批处理归一化,在减少过拟合的同时提供一定程度的正则化效果;

四 实验

在本节中,作者对曼巴YOLO进行了对象检测任务和一些下游视觉任务的综合实验。作者使用MS COCO[36]数据集来验证所提出的Mamba YOLO比较与最先进的方法的优越性, 在COCO2017train数据集上进行训练,并在COCO2017val数据集上进行验证。在消融实验中,使用VOC0712[35]数据集验证了每种方法的有效性,其中训练集包含来自VOC2007和VOC2012训练集的约16,551幅图像,验证集由来自VOC2007测试集的4,952幅图像组成。作者提到的所有模型都是使用从头开始训练的策略进行训练的,总训练次数为500次。更多设置请参考附录。作者所有的模型都是在8个NVIDIA H800 gpu上训练的。

4.1 SOTA对比

图1和表1显示了MS-COCO2017val与其他最先进的目标探测器相比的结果,其中本文提出的方法在FLOPs和Params与精度之间具有最佳的综合权衡。具体来说,是曼巴YOLO-T与性能最佳的微型轻量级型号DAMO yoloo - t /YOLO MS-XS相比,AP显著增加3.4%/2.0%,与具有相同精度的基准YOLOv8-S相比,Params降低45.5%,FLOPs降低50%。Mamba YOLO-B与Params和FLOPs相似的Gold-YOLO-M相比,前者的AP增益比后者高4.5%。即使与具有相同精度的Gold-YOLO-M相比,Params也降低了47.2%,FLOPs降低了43.2%。在大型模型中,曼巴YOLO-L也实现了比每个先进的目标探测器更好或相似的性能。与表现最好的Gold-YOLO-L相比,Mamba YOLO-L的AP提高了0.3%,而Params降低了0.9%。上述对比结果表明,与现有的最先进的方法相比,作者提出的模型在不同尺度上对曼巴YOLO有显著的改进。

五 结论

在本文中,作者重新分析了CNN和Transformer架构在目标检测领域的优缺点,并指出了它们融合的局限性。在此基础上,提出了一种基于状态空间模型架构的检测器,并通过YOLO进行了扩展;作者重新分析了传统MLP的局限性,提出了RG块,设计了其门控机制和深度卷积残差连通性,使模型具有在分层结构中传播重要特征的能力。此外,为了解决Mamba体系结构在捕获本地依赖关系方面的局限性,LSBlock增强了捕获本地特征的能力,并将其与原始输入融合,增强了特征的表示,从而显著提高了模型的检测能力。作者的目标是建立一个新的YOLO基线,证明曼巴YOLO具有很强的竞争力。作者的工作是曼巴架构在实时目标检测任务中的首次探索,也希望为该领域的研究人员带来新的思路。

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

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

相关文章

服务器数据恢复—DS5300存储raid5阵列数据恢复案例

服务器存储数据恢复环境: 某单位一台某品牌DS5300存储,1个机头4个扩展柜,50块硬盘组建2组RAID5磁盘阵列(一组raid5阵列有27块成员盘,存放Oracle数据库文件;另外一组raid5阵列有23块成员盘)。存储…

OpenCV 车牌检测

OpenCV 车牌检测 级联分类器算法流程车牌检测相关链接 级联分类器 假设我们需要识别汽车图像中车牌的位置,利用深度学习目标检测技术可以采取基于锚框的模型,但这需要在大量图像上训练模型。 但是,级联分类器可以作为预训练文件直接使用&…

python通过COM Interface控制CANoe

python通过COM Interface控制CANoe 介绍打开示例工程python代码示例介绍 通过python可以控制CANoe的启动和停止等其他操作,在做高阶的自动化项目时可以用到。 打开示例工程 python代码示例 # --------------------------------------------------------------------------…

C++ 类和对象 构造函数

一 类的6个默认成员函数&#xff1a; 如果一个类中什么成员都没有&#xff0c;简称为空类。 例&#xff1a; #include <iostream> class Empty {// 空类&#xff0c;什么成员都没有 }; 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&a…

ONNX Runtime入门示例:在C#中使用ResNet50v2进行图像识别

ONNX Runtime简介 ONNX Runtime 是一个跨平台的推理和训练机器学习加速器。ONNX 运行时推理可以实现更快的客户体验和更低的成本&#xff0c;支持来自深度学习框架&#xff08;如 PyTorch 和 TensorFlow/Keras&#xff09;以及经典机器学习库&#xff08;如 scikit-learn、Lig…

文件打开的系统错误分析流程

当用户出现“Open file failed”错误时&#xff0c;手动产生dump文件。 &#xff08;1&#xff09;打开资源管理器&#xff0c;选择AppNameXXX.exe进程&#xff0c;右击鼠标选择“创建转储文件” (2) 生成转储文件 3.获取用户转储文件 4.用Visual studio2015打开dump文件分析…

深入讲解C++基础知识(二)

目录 一、复合类型1.引用1.1 引用的定义和使用1.2 引用的注意事项 2. 指针2.1 指针的定义和使用2.2 指针的四种状态2.3 指针的注意事项2.4 其他指针操作2.5 void* 指针 3. 理解复合类型变量的声明4. const 限定符4.1 const 对象的注意事项4.2 const 和引用4.2.1 术语&#xff1…

绘唐科技聚星文社是同款一键生成工具

聚星文社是同款一键生成工具 工具下载 绘唐科技成立于2015年&#xff0c;是一家专注于虚拟现实&#xff08;VR&#xff09;技术和产品开发的高科技企业。绘唐科技的目标是利用虚拟现实技术为人们带来更加沉浸式的体验&#xff0c;推动虚拟现实在各个领域的应用和发展。 绘唐科…

【FFmpeg】avcodec_send_frame函数

目录 1.avcodec_send_frame1.1 将输入的frame存入内部buffer&#xff08;encode_send_frame_internal&#xff09;1.1.1 frame的引用函数&#xff08;av_frame_ref &#xff09;1.1.1.1 帧属性的拷贝&#xff08;frame_copy_props&#xff09;1.1.1.2 buffer的引用函数&#xf…

学会python——用python制作一个绘图板(python实例十九)

目录 1.认识Python 2.环境与工具 2.1 python环境 2.2 Visual Studio Code编译 3.制作一个绘图板 3.1 代码构思 3.2 代码实例 3.3 运行结果 4.总结 1.认识Python Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。 Python 的设计具有很强的可…

Node.js实现一个文章生成器

前言 本文将从零开始&#xff0c;讲解如何使用Node.js来实现一个文章生成器 node里面有很多优秀的模块&#xff0c;现在我们就借助node的fs模块来操控文本&#xff0c;来实现我们想要的效果 效果展示 体验 fs 首先我们先创建一个json文件 里面放一些内容 接下来我们书写代码…

【博士每天一篇文献-算法】Adult neurogenesis acts as a neural regularizer

阅读时间&#xff1a;2023-12-20 1 介绍 年份&#xff1a;2022 作者&#xff1a;Lina M. Tran&#xff0c;Adam Santoro&#xff0c;谷歌DeepMind 期刊&#xff1a; Proceedings of the National Academy of Sciences 引用量&#xff1a;13 代码&#xff1a;https://github.c…

Java后端每日面试题(day1)

目录 JavaWeb三大组件依赖注入的方式Autowire和Resurce有什么区别&#xff1f;Spring Boot的优点Spring IoC是什么&#xff1f;说说Spring Aop的优点Component和Bean的区别自定义注解时使用的RetentionPolicy枚举类有哪些值&#xff1f;如何理解Spring的SPI机制&#xff1f;Spr…

2024年【四川省安全员B证】考试及四川省安全员B证考试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【四川省安全员B证】考试及四川省安全员B证考试题&#xff0c;包含四川省安全员B证考试答案和解析及四川省安全员B证考试题练习。安全生产模拟考试一点通结合国家四川省安全员B证考试最新大纲及四川省安全员B证…

第一篇——导论:数学通识课的体系和学习攻略

目录 一、背景介绍二、思路&方案三、过程1.思维导图2.文章中经典的句子理解3.学习之后对于投资市场的理解4.通过这篇文章结合我知道的东西我能想到什么&#xff1f; 四、总结五、升华 一、背景介绍 数学的认知大厦&#xff1b;之前听的时候就觉得很重要&#xff0c;本次又…

Google Earth Engine(GEE)——控制台ui.Textbox复制你想要的textbox

结果 函数: ui.Textbox(placeholder, value, onChange, disabled, style) A textbox that enables the user to input text information. Arguments: placeholder (String, optional): The placeholder text to display when the textbox is empty. Defaults to none. …

鸿蒙开发设备管理:【@ohos.account.appAccount (应用帐号管理)】

应用帐号管理 说明&#xff1a; 本模块首批接口从API version 7开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档&#xff1a;gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 导入模…

Linux中配置sudo用户访问权限

一、如何在 Linux 中配置 sudo 的访问权限 1.1、给用户dhz普通用户增加 sudo 权限 [rootlocalhost ~]# id dhz uid1000(dhz) gid1000(dhz) 组1000(dhz),10(wheel)1.2、使用root用户编辑/etc/sudoers文件 [rootlocalhost ~]# vi /etc/sudoers-- 增加&#xff1a; dhz ALL(ALL…

2024/07/05

1、梳理笔记 2、课堂习题 1、循环输入一个5位数&#xff0c;判断它是不是回文数。当输入0时循环结束。 即12321是回文数&#xff0c;个位与万位相同&#xff0c;十位与千位相同。 #include<stdio.h> int main(int argc, char const *argv[]) {while(1){int num0;printf(…

贪吃蛇——C语言(VS2022含源代码,及源代码zip文件)

一.游戏背景 贪吃蛇是一款在世界上盛名已久的小游戏&#xff0c;贪食蛇游戏操作简单&#xff0c;可玩性比较高。这个游戏难度最大的不是蛇长得很长的时候&#xff0c;而是开始。那个时候蛇身很短&#xff0c;看上去难度不大&#xff0c;却最容易死掉&#xff0c;因为把玩一条小…