基于Unet卷积神经网络的脑肿瘤MRI分割

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。

《------往期经典推荐------》

项目名称
1.【YOLO模型实现农作物病虫害虫识别带GUI界面】
2.【卫星图像道路检测DeepLabV3Plus模型】
3.【GAN模型实现二次元头像生成】
4.【CNN模型实现mnist手写数字识别】
5.【fasterRCNN模型实现飞机类目标检测】
6.【CNN-LSTM住宅用电量预测】
7.【VGG16模型实现新冠肺炎图片多分类】
8.【AlexNet模型实现鸟类识别】
9.【DIN模型实现推荐算法】
10.【FiBiNET模型实现推荐算法】
11.【钢板表面缺陷检测基于HRNET模型】

摘 要

本文探讨了利用卷积神经网络(CNN)和UNet模型对脑肿瘤MRI图像进行精确分割的方法。论文中不仅深入分析了CNN和UNet的基础框架,还引入了注意力机制和Transformer模块,通过这些先进的技术,使得模型在处理脑肿瘤MRI图像分割任务时具有更高的效率和精度。这种模型的优化提高了图像分割的速度、精度和质量,极大地减轻了临床医生的工作负担,降低了误诊率。通过提高分割准确性,本研究加强了对脑肿瘤患者的筛查、诊断和预测能力,从而有助于提高患者的生存率。这一研究成果不仅对医学图像处理领域具有重要的理论意义,也具有显著的实际应用价值。

关键词:UNet模型、脑肿瘤、图像分割


Abstract

In this thesis, the author explores methods for precise segmentation of brain tumor MRI images using Convolutional Neural Networks (CNN) and the UNet model. The thesis not only delves into the basic frameworks of CNN and UNet but also incorporates attention mechanisms and Transformer modules. Through these advanced technologies, the model achieves higher efficiency and accuracy in handling brain tumor MRI image segmentation tasks. The optimization of this model enhances the speed, precision, and quality of image segmentation, significantly reducing the workload of clinicians and lowering the rate of misdiagnosis. By improving segmentation accuracy, this research strengthens the screening, diagnosis, and prognosis capabilities for brain tumor patients, thereby helping to increase patient survival rates. The findings of this study hold significant theoretical importance in the field of medical image processing and offer substantial practical application value.

Key words: UNet model、brain tumor、image segmentation.

目 录

摘 要I

AbstractII

目 录I

第1章 绪论1

1.1 选题背景1

1.2 选题意义3

1.3 主要内容4

1.4 预期目标4

1.5 拟解决的关键问题5

第2章 系统方案设计6

2.1、技术路线图6

2.2、系统方案7

第3章 系统详细设计9

3.1、数据处理9

(4)训练与测试数据集的划分10

(5)数据加载器的配置10

3.2、模型训练11

(1) 环境配置与数据加载11

根据计算资源的可用性,代码首先配置计算设备,优先使用CUDA(NVIDIA的并行计算架构),若不可用则回退到CPU。12

(5)训练与评估12

  1. 执行训练13

3、模型运行结果:13

参考文献17

附录A:源代码20

第1章 绪论

  1. 选题背景

脑肿瘤是神经系统中常见的疾病之一,也称为颅内肿瘤,对人类神经系统的功能有很大的危害。一般分为原发和继发两大类。原发性肿瘤可发生于脑组织、脑膜、颅神经、垂体、血管残余胚胎组织等。继发性肿瘤则指身体其它部位的恶性肿瘤转移或侵入颅内形成的转移瘤。

近年来,脑肿瘤发病率呈上升趋势,据统计,脑肿瘤约占全身肿瘤的5%,占儿童肿瘤的70%,而其它类型的恶性肿瘤最终会有20-30%转入颅内,由于其膨胀的浸润性生长,在颅内一旦占据一定空间时,不论其性质是良性还是恶性,都势必使颅内压升高,压迫脑组织,导致中枢神经损害,危及患者生命。根据国家卫健委发布的《脑胶质瘤诊疗指南 》中数据显示,2022年世界脑胶质瘤发病率为5.48/10万,脑恶性肿瘤年病死率为4.37/10万,对人类的健康造成了很大的威胁。

(2)MRI技术优势

磁共振成像(magnetic resonance imaging,MRI)是继CT之后的又一种高敏感度的检查方法,因其具有无放射线损害、多体位(矢状面、冠状面、横断面)扫描、高度软组织对比及无骨性伪影的特点,已经成为了现代医疗领域中诊断脑肿瘤的重要手段。通过T1、T2、T1ce和Flair 4种MRI扫描序列,对脑肿瘤进行分割辨别,可以观察分析肿瘤的大小、形状和边界特征,根据得到的信息,有助于判断肿瘤的类型以及预测后续生长方式,可以为患者的治疗制定更加合适的方案,而且早期的筛查和诊断也能够有效提高脑肿瘤患者的存活率。

(3)脑肿瘤MRI分割现状

而由于脑肿瘤的多样化、图像噪点和病灶形态各异等,其MRI图像分割最初依靠机器学习方法进行手工特征提取,如Atlas、决策森林、条件随机场等,所以寻求方法精准的医学图像分割是一大难题。目前临床上绝大多数的分割工作还是由医生进行手动标注,劳动强度大,并且过于依赖医生经验,效率不高,极易受个体差异影响。所以许多国内外研究人员对脑肿瘤MRI的深度学习技术做了大量的探索和实践,以寻求一种快速、准确的MRI脑肿瘤分割方法,帮助医生快速确定病变范围,具有非常重要的现实意义。

(4)CNN和UNet研究现状

随着深度学习的发展,可以自动识别图像特征,深度神经网络逐渐成为脑肿瘤分割领域的主要方法,而作为人工智能领域的分支,卷积神经网络(convolutional neural network, CNN)模型善于通过深度学习对图像进行分析处理,其在医学中应用日益广泛。CNN具有鲁棒性、复杂程度低、易于训练等特点,在图像优化过程中可以通过减少参数来进行学习。

UNet作为医学图像语义分割领域中最受欢迎的深度学习框架,同时也是应用广泛的分割模型。其基于对称的收缩路径和扩展路径并在两个路径之间使用跳跃连接构成体系结构,其衍生的多种变体在解决图像到图像的映射任务中有显著效果。融入Transformer模块的UNet变体SwinUNETR可以对3D图像可以进行自我监督的预训练,无需从头开始训练权重,简单的微调操作即可实现更高的精度和更快的收敛速度。而融入了入坐标注意力(coordinate attention,CA)机制的UNet变体可以从三个维度聚合特征以应对 3D MRI图像复杂的特点。

  1. 选题意义

基于以上叙述,本文提出基于CNN和UNet,并于UNet中引入注意力机制和Transformer模块,彼此进行互补,构建一个在脑肿瘤MRI图像分割领域的训练模型,使其具有更好的数据处理能力,可以提高脑肿瘤MRI图像分割的速度、精度和质量,减轻临床工作的负担并降低错误率,从而加强对脑肿瘤患者的筛查、诊断和预测能力,提高患者的存活率。

  1. 主要内容

    1. MR成像原理及其脑肿瘤MRI特征: 根据不同类型脑肿瘤其MR信号不同的特点,由此来进行特征提取并进一步识别分割;
    2. 卷积神经网络的应用: 卷积神经网络善于通过深度学习对图像进行分析处理,具有鲁棒性、复杂程度低、易于训练等特点,在图像优化过程中可以通过减少参数来进行学习;
    3. UNet及其变体的应用: UNet其衍生的多种变体在解决图像的映射任务中有显著效果,如SwinUNETR可以对3D图像可以进行自我监督的预训练;
    4. 设计并实现训练模型方案: 学习如何基于Pytorch平台融合CNN和UNet变体来创建一个可行的训练模型,并对数据集进行变换处理;
    5. 模型评估及可行性分析: 基于Dice Score、IoU和Hausdorff距离三个指标来对训练模型进行评价,查看不足并判断其优良性。
  1. 预期目标

利用CNN和UNet网络模型,构建一个在脑肿瘤MRI图像分割领域的训练模型,使其具有更好的分割能力,可以提高脑肿瘤MRI临床上分割的速度、精度和质量,加强对脑肿瘤患者的早期筛查、临床诊断和发展预测能力,提高患者的存活率

  1. 拟解决的关键问题

    1. 图像分割精度不佳
    2. 预处理:降噪,图像增强;
    3. 损失函数选择:CEL-Dice los,结合了交叉熵损失的稳定性和类不平衡不影响Dice loss的特性,拥有两者的优点。
    4. 过拟合,泛化能力不足
    5. 使用更多的数据进行训练;
    6. 数据增强:应用数据增强来人为地增加数据集的大小;
    7. 正则化:防止参数过大,过分拟合,以提高泛化能力。
    8. 边缘问题
    9. 提高输入图像的分辨率和中间层的分辨率;
    10. 对网络输出的分割边界增加额外损失;网络边界特征和区域内部特征分开建模训练。
  2. 系统方案设计

2.1、技术路线图

在这里插入图片描述

2.2、系统方案

  1. 设置数据集和预处理: 从国际医学图像计算和计算机辅助干预协会(Medical Image Computing and Computer Assisted Intervention Society,MICCAI)获取相关数据集BraTS,将其训练集以8:1:1的比例划分出新的训练集、验证集和测试集作为模型的训练数据,并对数据进行预处理;

  2. 定义图像的变换处理: 为训练和验证定义图像的变换处理,对输入图像进行规范化处理,转换图像、数组形状或标签,之后进行数据加载,分批发送给训练循环并进行相应转换;

  3. 创建训练循环: 搭建神经网络模型(CNN)并联合损失函数和优化器计算模型误差,以更新模型的参数并最小化损失函数;

  4. 绘制损失和精度曲线: 训练曲线可以表示模型的学习性能,验证曲线可以体现模型的泛化性;
    在这里插入图片描述

  5. 评估网络模型: 通过Dice Score、IoU和Hausdorff距离三个指标来对模型进行评价,其中Dice Score、IoU是衡量两个集合的重合程度,是判断预测区间与Ground truth符合程度的主要指标,但是Dice Score倾向于平均表现,而IoU则帮助你理解最坏情况下的表现,Hausdorff距离则是度量两个点集间的距离,判断预测边缘与真实边缘的差距;

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

  6. 可行性分析: 将模型得出的结果与传统的分割方法进行对比,从而证明选择的算法和模型在脑肿瘤MRI分割领域的可行性以及优良性。

第3章 系统详细设计

3.1、数据处理

(1)数据集准备与预处理

本文定义了数据集的根目录 kaggle_3m。通过遍历此目录,获取所有子目录,每个子目录包含了具体病例的MRI图像及对应的病灶掩膜文件。代码通过分析文件名区分原始MRI图像与掩膜图像,将它们分别存储于 data_img(原始图像列表)和 data_label(掩膜图像列表)中。图像与掩膜对应关系确认。


为确保每个MRI图像与其对应的掩膜图像匹配,代码通过文件名匹配方法(去除文件名中的“mask”标记),重新整理图像和掩膜的对应关系。


(2) 筛选具有病灶的MRI数据

通过检查每个掩膜图像的最大像素值,只有当掩膜图像中存在非零像素(即至少有一处病灶标记)时,才将该MRI图像及其掩膜纳入最终的数据列表 data_newimg 和 data_newlabel 中。这一步骤确保了训练数据的有效性,即所有选用的数据都具有实际的训练价值。


(3) 图像数据的变换

为了统一输入神经网络的数据格式,所有的MRI图像及掩膜图像都被转换为统一的尺寸(256x256像素)并转化为张量格式。这一处理步骤通过 transforms.Compose 实现,包括调整大小和转换为张量的操作。


定义了一个名为 BrainMRIdataset 的类,继承自 torch.utils.data.Dataset。此类重写了 getitemlen 方法,使其可以作为PyTorch数据加载器(DataLoader)的输入。在 getitem 方法中,同时读取图像文件和掩膜文件,并应用预定义的转换,最终返回一对处理后的图像和掩膜张量。


(4)训练与测试数据集的划分


代码中预设了一个变量 s 用于定义训练数据集和测试数据集的划分阈值。前1000对图像和掩膜用于训练,剩余的用于测试。这样的划分帮助模型在训练过程中进行有效学习,同时留出独立的测试集评估模型的泛化能力。


(5)数据加载器的配置


使用 DataLoader 来批量加载数据,为训练和测试过程提供支持。训练数据加载器和测试数据加载器分别设定了批量大小为4,且训练数据加载器启用了数据洗牌功能以增强模型的泛化能力。


3.2、模型训练

在这里插入图片描述

使用PyTorch框架和Segmentation Models PyTorch库实现的深度学习模型,旨在通过MRI图像进行脑部病变区域的分割。本模型使用了具有预训练权重的U-Net网络,进行图像分割任务的训练和评估。


  1. 环境配置与数据加载


根据计算资源的可用性,代码首先配置计算设备,优先使用CUDA(NVIDIA的并行计算架构),若不可用则回退到CPU。


(2)数据集实例化

通过自定义的BrainMRIdataset类,分别实例化训练数据和测试数据集。数据加载器(DataLoader)配置为每批处理4幅图像,并在训练过程中打乱图像顺序以增强模型的泛化能力。


(3) 模型定义

采用Unet网络架构,选择resnet34作为编码器,并初始化编码器权重为ImageNet上的预训练权重。模型输入通道设置为3(适用于RGB图像),输出通道设置为2,对应于图像的背景和病变区域。


(4)损失函数与优化器

定义交叉熵损失函数用于评估模型的预测与实际标签之间的差异。选择Adam优化器,并设置学习率为0.0001,以优化网络权重。


(5)训练与评估


定义train_epoch函数,负责单个训练周期的执行。函数内部包含对训练数据集的迭代处理,每次迭代中执行前向传播、损失计算、梯度清零、反向传播和权重更新。此外,函数还计算每个批次的交并比(IOU),以评估模型对图像分割任务的准确性。

(6)测试与性能记录

在每个训练周期结束后,函数切换模型至评估模式,使用测试数据集进行性能评估,计算损失值、准确率和IOU。性能指标包括训练损失、训练准确率、测试损失、测试准确率和测试IOU。


(7) 权重保存

在每个训练周期结束时,模型权重被保存至指定目录,以便后续的模型评估或继续训练使用。


(8)执行训练


在脚本的主体部分,设置训练周期数并调用train_epoch函数进行模型训练。每个周期结束后,打印出相应的训练和测试性能指标。


3.3、模型运行结果

epoch: 0 loss: 0.039 accuracy: 0.827 IOU: 0.223 test_loss: 0.066 test_accuracy: 0.981 test_iou: 0.413

epoch: 1 loss: 0.016 accuracy: 0.983 IOU: 0.507 test_loss: 0.039 test_accuracy: 0.988 test_iou: 0.62

epoch: 2 loss: 0.01 accuracy: 0.989 IOU: 0.662 test_loss: 0.029 test_accuracy: 0.989 test_iou: 0.669

epoch: 3 loss: 0.008 accuracy: 0.99 IOU: 0.701 test_loss: 0.021 test_accuracy: 0.992 test_iou: 0.751

epoch: 4 loss: 0.006 accuracy: 0.991 IOU: 0.729 test_loss: 0.017 test_accuracy: 0.991 test_iou: 0.703
在这里插入图片描述
在这里插入图片描述


致 谢

在这段令人难忘的学术旅程结束之际,我衷心感谢所有在这一过程中给予我支持和帮助的人。首先,我必须感谢我的导师,他不仅在学术上提供了宝贵的指导,还在生活上给予我无限的鼓励和支持。他的专业知识和细心指导使我能够顺利完成这项研究。

感谢实验室的同事们,他们的友好合作和宝贵意见极大地丰富了我的研究经验。我们共同度过了无数日夜,共同解决问题,分享研究心得,这些都是我宝贵的回忆。

我还要感谢我的家人,特别是我的父母,他们始终相信我,支持我追求学术梦想。在我遇到困难和挑战时,是他们给了我力量和勇气,使我能够坚持到最后。

此外,我还要感谢所有参与和支持这项研究的资助机构和合作伙伴。没有他们的财政和技术支持,这项研究不可能达到如此高的成就。

最后,感谢所有参与论文审阅和提供建议的专家学者。他们的严谨态度和有价值的反馈帮助我在研究过程中不断进步和完善。

再次感谢所有人的支持和帮助,我将这份成就献给你们,同时期待未来能与大家继续合作,共创佳绩。


参考文献

  1. 褚张晴,钟志强,颜子夜,等. 基于特征融合与注意力机制的脑肿瘤分割算法[J]. 计算机工程,2023,49(10):154-161. DOI:10.19678/j.issn.1000-3428.0066311.
  2. 戴天虹,宋洁绮. 基于多编码器的多模态MRI脑肿瘤分割[J]. 计算机科学,2023,50(z1):509-514. DOI:10.11896/jsjkx.220200108.
  3. 高曦,谢希,王文韬. MRI深度学习在膝关节骨性关节炎中的研究进展[J]. 磁共振成像,2023,14(6):192-197. DOI:10.12015/issn.1674-8034.2023.06.035.
  4. 徐光宪,冯春,马飞.基于UNet的医学图像分割综述[J].计算机科学与探索,2023,17(8):1776-1792
  5. 徐京瑶,刘晓民,张新峰,等. 基于MRI增强的乳腺癌肿瘤三维体积人工智能测量技术的研究进展[J]. 磁共振成像,2023,14(9):148-153. DOI:10.12015/issn.1674-8034.2023.09.027.
  6. 魏颖,林子涵,齐林,李伯群.基于空间自注意力机制和深度特征重建的脑MR图像分割方法[J].东北大学学报:自然科学版,2023,44(2):177-185
  7. 刘维肖,方进,王莹,等. 生成对抗式网络在心脏磁共振中的应用[J]. 磁共振成像,2023,14(6):139-144. DOI:10.12015/issn.1674-8034.2023.06.025.
  8. 张付春,李盟,吴凉,王玉文,吴樾.融合纹理特征和注意力机制的异常脑MRI分割方法[J].印刷与数字媒体技术研究,2023(4):203-211
  9. 毋小省,杨奇鸿,唐朝生,孙君顶.融合注意力机制的多模态脑肿瘤MR图像分割[J].计算机辅助设计与图形学学报,2023,35(9):1429-1438
  10. 周煜松,陈罗林,王统,徐胜舟.基于双重注意力机制和迭代聚合U-Net的脑肿瘤MR图像分割方法[J].中南民族大学学报:自然科学版,2023,42(3):373-381
  11. 葛婷,詹天明,李勤丰,牟善祥.基于核磁共振图像的脑肿瘤分割方法研究[J].南京理工大学学报,2021,45(2):179-188
  12. 申璐璐,于慧华,周春艳,李可,刘林栋.基于级联卷积神经网络的前列腺MR图像自动分割算法研究[J].中国医学装备,2023,20(7):1-5
  13. 叶正洁,王玉涛,徐建,金炜.基于结合Transformer和卷积神经网络的生成对抗网络在磁共振成像中分割胎盘组织[J].宁波大学学报:理工版,2023,36(1):22-34
  14. 李健,罗蔓,罗晓,蓝威,周怀恒,陈荣耀.基于多尺度卷积神经网络的磁共振成像脑肿瘤分割研究[J].中国医学装备,2016,13(2):25-28
  15. 黄坚,余卓,徐璐,周海春,俞刚.基于卷积神经网络的儿童病毒性脑炎磁共振影像分类与早期诊断研究[J].磁共振成像,2023,14(1):54-60
  16. 樊小宇,蔺素珍,王彦博,刘峰,李大威.基于残差图卷积神经网络的高倍欠采样核磁共振图像重建算法[J].计算机应用,2023,43(4):1261-1268
  17. 蒋可欣,张晓东.基于半月板MRI的深度学习研究进展[J].放射学实践,2023,38(9):1222-1226
  18. 张剑,李光辉,胡艳,戴梦莹,吕发金.磁共振成像子宫及子宫肌瘤图像分割方法研究进展[J].中国医疗器械信息,2023,29(13):46-48
  19. 胡晓阳,李哲.基于卷积神经网络和Transformer的肝脏CT图像分割方法[J].中国医学物理学杂志,2023,40(4):423-428

👍感谢小伙伴们点赞、关注! 如有其他项目需求的,可以在评论区留言,抽空制作更新!
✌粉丝福利:点击下方名片↓↓↓ 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。

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

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

相关文章

Unity XR Interaction Toolkit 开发教程(1):OpenXR 与 XRI 概述【3.0 以上版本】

文章目录 📕Unity XR 开发架构🔍底层插件(对接硬件)🔍高层 SDK(面向应用交互层) 📕OpenXR📕XR Interaction Toolkit🔍特点🔍XRI 能够实现的交互类…

Diving into the STM32 HAL-----Interrupts

硬件管理就是处理异步事件。其中大部分来自硬件外围设备。例如,计时器达到配置的 period 值,或者 UART 在数据到达时发出警告。 中断是一个异步事件,它会导致按优先级停止执行当前代码(中断越重要,其优先级越高;这将导…

Linux中SPI

参考资料 https://www.cnblogs.com/aaronLinux/p/6219146.html1.SPI 2.SPI传输 2.1传输示例 首先,CS0拉低选中的SPI Flash , 然后在每个时钟周期, DO输出对应的电平。 SPI FLASH会在每个时钟的上升沿读取D0的电平。2.2SPI模式 根据SCK的电平以及数据在…

自旋锁--死锁

本文内容整理自B站视频教程 自旋锁定义 内核发生访问资源冲突的时候,可以有两种锁的解决方案选择:一个是原地等待,一个是挂起当前进程,调度其他进程执行(休眠)。 spinlock是内核中提供的一种比较常见的锁机制,自旋锁…

【C++】继承和多态常见的面试问题

文章目录 继承笔试面试题1. 什么是菱形继承?菱形继承的问题是什么?2. 什么是菱形虚拟继承?如何解决数据冗余和二义性?3. 继承和组合的区别?什么时候用继承?什么时候用组合? 选择题 多态概念考察…

数字IC开发:布局布线

数字IC开发:布局布线 前端经过DFT,综合后输出网表文件给后端,由后端通过布局布线,将网表转换为GDSII文件;网表文件只包含单元器件及其连接等信息,GDS文件则包含其物理位置,具体的走线&#xff1…

Python爬虫的“京东大冒险”:揭秘商品类目信息

开篇:欢迎来到Python的奇幻森林 在这个数据驱动的时代,我们就像一群探险家,穿梭在数字的森林中,寻找着隐藏的宝藏——商品类目信息。今天,我们将带领你一起,用Python这把锋利的剑,深入京东的神…

Flutter 13 网络层框架架构设计,支持dio等框架。

在移动APP开发过程中,进行数据交互时,大多数情况下必须通过网络请求来实现。客户端与服务端常用的数据交互是通过HTTP请求完成。面对繁琐业务网络层,我们该如何通过网络层架构设计来有效解决这些问题,这便是网络层框架架构设计的初…

Qt限制QGraphicsScene QGraphicsItem内部的移动范围

用过QGraphicsView的都知道,原点一般设定在view和item的中心,所以帮助文档和这个网友说的不一定跟我们对的上: 关于Qt限制QGraphicsScene内部Item的移动范围_qgraphicsitem限制移动范围-CSDN博客 首先,设定view的scenerect&…

【数据结构-邻项消除】力扣2211. 统计道路上的碰撞次数

在一条无限长的公路上有 n 辆汽车正在行驶。汽车按从左到右的顺序按从 0 到 n - 1 编号,每辆车都在一个 独特的 位置。 给你一个下标从 0 开始的字符串 directions ,长度为 n 。directions[i] 可以是 ‘L’、‘R’ 或 ‘S’ 分别表示第 i 辆车是向 左 、…

强网拟态的复现

web ez_picker 这题的考点 capoo Misc ezflag 这题涉及到kali的工具使用,binwalk或者formost 1.将压缩包拖进010,发现包含flag.zip文件,想到使用工具进行分离 命令:binwalk -e .... --run-asroot 分离流量包 得到一个文件&…

【Effective C++】阅读笔记2

1. 复制对象时要保证复制内容完整性 错误场景复现(没有复制基类部分) 如果一个类中包含多个成员变量或者继承了基类,那么在拷贝构造函数或者赋值运算符中,必须保证所有成员的基类部分被复制。 基类没有被复制,这样就都…

数组移除元素

目录 题目方法一:直接(暴力)求解法思路分析代码如下 方法二:双指针(快慢指针)思路分析代码如下 题目 这道题是来自于leetcode的一道算法题: 给你一个数组 nums 和一个值 val,你需要 原地 移除所有数值等于…

【Flask】二、Flask 路由机制

目录 什么是路由? Flask中的路由 基本路由 动态路由 路由中的HTTP方法 路由函数返回 在Web开发中,路由是将URL映射到相应的处理函数的过程。Flask是一个轻量级的Web应用框架,提供了简单而强大的路由机制,使得开发者能够轻松…

【IC验证_systemverilog】信号类型

IC验证_systemverilog 1.信号声明2.变量类型3.数据类型4.符号 1.信号声明 语法: 变量类型 信号类型 符号转换 位宽 信号名 深度;2.变量类型 (1)说明: systemverilog中的信号类型主要分为线网类型(wire&a…

《模拟电子技术基础》第六版PDF课后题答案详解

《模拟电子技术基础》第六版是在获首届全国优秀教材建设奖一等奖的第五版的基础上,总结6年来的教学实践经验修订而成的新形态教材。为满足国家人才培养的需求,适应新型教学模式,并考虑到大多数院校逐渐减少课程学时的现状,在不降低…

DOM---鼠标事件类型(移入移出)

移入 移出mouseenter mouseleave 在父盒子上触发&#xff0c;在孩子盒子上不触发 移入 移出mouseover mouseout全触发 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Comp…

网络编程 UDP编程 Linux环境 C语言实现

UDP编程 1. 一般UDP编程 UDP传输特点&#xff1a;非面向连接、不可靠的、无序的 报式传输 支持组播和广播 UDP应用数据最大长度建议&#xff1a;MTU(以太网分组数据的最大长度)1500 - 20(IP头) - 8(UDP头) 1472Bytes 客户端&#xff1a;支持两种形式的代码编写: 1. 不定向…

在manjaro 2024里使用yay命令安装ROS2

不建议这么安装&#xff0c;研究了两天以失败告终。要不就手动编译吧。。。&#xff08;在系统环境良好的情况下&#xff0c;最好是刚装完系统就装ROS&#xff09;真的太多不适配了&#xff0c;旧有的很多yay包都会遇到一些奇怪的问题&#xff1a; 0.一开始就会遇到网络卡住的…

人工智能原理实验一:知识的表示与推理实验

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等有…