隧道论文阅读2-采用无人融合扫描数据的基于深度学习的垂直型隧道三维数字损伤图

目前存在的问题:

  • 需要开发新的无人测量系统测量垂直隧道
  • 图像数据量巨大,基于深度学习完成损伤评估
  • 跟踪获取图像位置的困难,对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究,对整个目标结构的损伤定位仍然具有挑战性。为了解决这个问题,对2d和3d的建立进行了研究大型基础设施感兴趣区域(roi)的映射
  • 基于投影的纹理映射算法受到损伤标签的形状失真的限制——即由于混合算法的缺点,微尺度裂纹尚未映射到3d模型。因此,从3d模型中提取的图像的损伤评估可能涉及损伤量化误差

文章主要研究内容:

  • 设计垂直隧道的自动测量系统(安装相机和2D激光扫描仪)
  • 通过两个传感器安装的位置关系,得到两类数据的对应关系
  • Sift特征配准上下位置的图像,计算图像重叠率,筛选保留图像及其对应的点云数据
  • 针对图像中大面积风化等损伤和小范围裂缝分别建立两种识别网络。语义分割网络架构deeplab v3 +,对裂纹和区域损伤分别量化,将裂纹分割区域的二值区域替换为彩色图像
  • 因为测量过程中相机位姿固定,将提取到的特征点映射到3D空间中形成稀疏点云,根据泊松重建之后,将损伤映射到重建表面上。

论文翻译:

摘要:对垂直型隧道的专家相关目视检查通常不仅对工人来说是危险的,而且检测结果不可靠。为了解决技术问题,本文描述了一种基于深度学习的基于三维数字损伤映射技术,利用无人融合数据扫描系统。该系统通过在隧道内垂直移动来获取原始数字图像和点云数据。随后,自动选择最优图像,用于基于深度学习的损伤评估和基于固定摄像机姿态的三维数字建模。最后,通过基于预定相机姿势将损伤特征映射到 3d 数字地图上来生成 3d 数字损伤图。该技术在韩国两种不同的现场试验台上进行了实验验证,表明平均精度和召回值分别为 90.89% 和 98.18%。预计所提出的技术可以提高原位可工作性和数据可靠性。

1. Introduction

随着城市的快速发展,地下设施的数量(如地铁、公路隧道和列车隧道)以同样的速度增长。随着地下隧道数量的增加,垂直型隧道的数量也会增加,这是自然通风和隧道管理的补充设施。因为在Korea中定期检查隧道,还必须定期检查垂直型隧道。然而,使用绳索系统检查深度、黑暗、垂直型隧道的专家目视检查可能很困难、不安全和不可靠[1]。为了解决上述问题,已经开发了许多视觉摄像头安装的无人机器人系统,如无人机(uavs)[2-4]、攀爬机器人[5-7]和隧道扫描仪[8-10]。视觉摄像头安装的无人机器人系统已被广泛用于检查大规模的基础设施——包括桥梁、建筑物和隧道——因为它们可以轻松访问目标和获取数据。特别是,开发了一种隧道扫描仪来评估水平地铁和公路隧道的损伤[11-13]。

  • 然而,由于垂直类型结构的检查由于其深度、狭窄的空间和潜在的障碍物可能非常困难,因此需要新开发的无人机器人系统来检查垂直隧道。wohlfeil等人开发了一种安装在导线上的垂直隧道扫描系统,并使用运动学激光扫描方法创建垂直深部矿轴的高分辨率点云[14]。vala等人开发了一种安装在两根导线[15]上的激光摄影测量模型矿轴检测系统。k̈onig等人。提出了一种测量装置,包括八个摄像头,覆盖完整的360◦范围,以建立高分辨率图像马赛克[16]。
  • 随着视觉相机安装的无人机器人系统的活跃发展,专家由于大量的图像而做出决策变得更加困难。在过去的几年里,基于深度学习的损伤评估工具已经成为专家依赖决策的替代方案,因为它们能够从大量数据中自动获得可靠的结果[17-20]。
  • 另一个关键问题是跟踪获取图像位置的困难。因此,对大型基础设施感兴趣区域(roi)的2d和3d地图建立进行了研究。即使可以通过使用深度学习有效和自动化地评估损伤,对整个目标结构的损伤定位仍然具有挑战性。为了解决这个问题,对2d和3d的建立进行了研究大型基础设施感兴趣区域(roi)的映射。jang等人开发了一种二维图像拼接算法,利用攀爬机器人[5]对高层桥墩进行裂纹评价。li等人还开发了一种二维拼接算法来评估损伤,分为在近距离拍摄的多幅图像到单幅图像[21]。同样,wang 等人。开发了一种 2d 拼接算法来评估钢梁裂纹,分为在近距离拍摄的多幅图像 [22]。Jang等人开发了一种基于特征控制的视觉图像拼接和时间空间集成坐标变换算法,用于二维拼接视觉和红外图像的裂纹评估[23]。此外,3d模型重建算法已广泛应用于大规模基础设施[24]的损伤评估。Fernandez等人提出了一种基于图像处理的分割损伤映射算法,使用3d模型[25]。liu等人开发了一种精确的纹理映射算法,利用uavs[26]所需的图像a3d模型进行裂纹评估。最近,开发了使用 3d 重建模型深度学习网络检测到的损伤纹理的映射技术。Kalfarisi等人利用深度分割模型[27]获得的受损分割标签设计了一个3d裂纹纹理模型。从深度分割模型[27]获得的注释标签。chaiyasarn等人开发了一种基于深度学习网络的裂纹检测算法,该网络使用重建的3d模型获得的马赛克图像,然后将检测到的损伤标签映射回3d模型[28]。随后,Chaiyasarn 等人提出的扩展算法。用于在通过虚拟相机从 3d 模型获得的大规模图像上使用深度学习基于网络的方法自动检测裂缝,然后重新映射结果 [29]。然而,基于投影的纹理映射算法受到损伤标签的形状失真的限制——即由于混合算法的缺点,微尺度裂纹尚未映射到3d模型。因此,从3d模型中提取的图像的损伤评估可能涉及损伤量化误差

为了克服这一问题,提出了一种基于固定摄像机姿态的三维建模和损伤映射算法,可以建立时间序列三维数字损伤图。在这项研究中,开发了一种用于垂直类型隧道检测的无人融合数据扫描系统。设计了一种基于三维数字损伤图的自动损伤映射算法,包括数据预处理、基于深度学习的自动损伤评估、基于固定摄像机姿态的三维建模和损伤映射算法,用于自动三维数字损伤图生成。与现有技术相比,该技术的优越性技术方面:(1)新开发了一种无人驾驶融合数据扫描系统,即使在隧道内没有光线的情况下,也能实现整个垂直隧道表面的非接触、非破坏性和快速损伤评估;(2)建立了基于尺寸的语义分割网络,实现了对各类损伤的有效自动评估;(3)考虑恶劣的垂直隧道地表条件,通过训练负样本提高语义分割网络的分类性能;(4)建立三维数字损伤图,实现损伤的量化和局部化;(5)提出的基于固定相机姿态的三维建模与损伤映射算法,可通过获取定期检测数据进行时间序列损伤分析。本文的其余部分组织如下。第2节描述了用于评估垂直隧道损伤的无人融合数据扫描系统的发展。第3节描述了基于三维数字地图的自动损伤映射算法的发展。随后,在第4节中对所提出的系统和算法进行了原位垂直型隧道的实验验证。最后,本文在第5节和第6节进行了简要的讨论。

2. Development of unmanned fusion data-scanning system for vertical-type tunnel damage evaluation垂直隧洞损伤评估无人融合数据扫描系统研制

图1显示了用于垂直隧道检查的无人融合数据扫描系统,包括融合数据传感和控制单元。通过连接垂直扫描模块的绞车电缆,可以安装无人融合数据扫描系统。为了最大限度地减少无人融合数据扫描系统在扫描过程中的振动,在系统周围的四个位置安装了导丝和基板。然后,专家可以使用计算机远程控制该系统,而无需实际进入垂直型结构的目标表面。当专家激活与垂直扫描模块和融合数据传感单元同步的控制单元时,控制单元通过发送适当的触发信号激活融合数据传感单元上的多个摄像头、2d激光雷达和led频闪灯模块。同时,悬挂在绞车缆绳上的无人融合数据扫描系统使用遥控绞车电机扫描目标结构的表面(上下)。然后,无人驾驶的融合数据扫描系统带着摄像头沿着垂直隧道移动二维激光雷达同时记录隧道的表面情况。根据摄像机的视场,安装多个摄像机覆盖ROI区域。在融合传感器采集数据的同时,与视觉摄像头同步的led频闪灯模块精确定时工作,通过曝光时间优化,在垂直隧道低照度条件下有效捕获目标图像,无闪烁效应。采集的图像和激光雷达数据被即时传输并保存为原始视觉(vr)图像和点云数据(pr)在控制计算机中。

3. Development of 3D digital map-based automated damage mapping algorithm基于三维数字地图的自动损伤制图算法的开发

本节介绍如何在垂直型隧道的整个ROI范围内自动建立三维数字损伤图。总体的基于三维数字模型的自动损伤映射算法如图2所示。由于整个垂直隧道中采集的vr图像和pr数据量很大,因此需要对融合数据进行预处理,匹配并选择最优数据,以减少计算开销。使用基于深度学习的自动损伤评估算法对最优图像中的损伤进行自动评估。同时,利用基于固定相机姿态的三维建模算法,可以重建三维数字地图。最后,根据提取的相机姿态,将图像中的损伤映射到三维数字图中,生成三维数字损伤图。每个步骤的细节如下。

3.1. Step 1: Data preprocessing

当无人驾驶融合数据扫描系统近距离扫描垂直隧道表面以评估微尺度损伤时,将获得大量随时间和空间变化的数据。此外,pr被记录的频率大约是其图像的100倍。因此,利用整个扫描数据重建三维数字损伤图会产生巨大的计算成本。因此,首先将vr图像与pr进行数据匹配,然后使用本文提出的最优数据选择算法选择最优数据,以减少数据量。

3.1.1. Fusion data matching融合数据匹配

无人融合数据扫描系统获取融合数据后,如图3(a)所示,由于数据量的差异,vr图像和pr图像无法精确匹配。为了匹配vr图像和pr,根据无人融合扫描系统安装传感器之间的距离,选择vr图像对应的pr,如图3(b)所示。为了精确地量化损伤,可以计算相机与目标结构之间的工作距离(dw)(根据传感器安装的位置计算,不具有普适性)

3.1.2. Optimal data selection algorithm最优数据选择算法

为了选择最优数据有效建立三维数字损伤图,提出了一种最优数据选择算法[30]。在此过程中,如图4所示,首先在多个摄像机中选择一个参考摄像机。这两幅图像(vp和vq)是从参考相机依次获取的vr图像中选择的。然后,利用尺度不变特征变换(sift)算法对两幅图像提取的特征进行特征匹配。由于无人融合数据扫描系统在垂直隧道中上下移动,jang等人[5]提出的特征控制算法有效地消除了不匹配的特征。然后,计算匹配向量的平均高度(μ)和宽度(ν),根据重叠比(r)选择vq, r定义如下:

其中h和w分别表示vr图像的高度和宽度分辨率。当r达到预先设定的重叠比阈值(rth)时,自动选择vp和vq。通过循环的迭代选择最优视觉图像,直到最后的虚拟现实图像。当选择图像时,与图像同步的pr会自动保存为最佳点云数据(po)

3.2. Step 2: Deep learning-based automated damage evaluation第二步:基于深度学习的自动损伤评估
3.2.1. Development of size-dependent semantic segmentation network for multi-damage detection多损伤检测中尺寸依赖语义分割网络的开发

为了自动检测vo图像中的多个损伤,分别建立了考虑损伤类型的尺寸依赖语义分割网络。由于需要近距离获取垂直隧道的高分辨率图像来量化微尺度裂缝,因此在获取的图像中,区域型损伤如风化、锈蚀、剥落占据了很大一部分。相比之下,裂缝非常薄,占据了所获取图像的一小部分,导致高分辨率图像中这两种损伤类型的像素区域差异至少为100倍。当在单个网络中同时训练两种类型时,这种物理差异可能会引起严重的类不平衡问题。为了有效地解决这种规模差异,针对两种不同的损伤类型开发两个单独的网络可以提高可探测性。区域型损伤网络的训练类别具有很好的损伤特征,因此可以对区域型损伤进行联合训练。特别是螺纹钢暴露等级通常同时存在剥落和锈蚀等级,因此即使螺纹钢暴露等级所占区域较小,也要考虑相关性,将其一起进行训练。

裂纹损伤网络的分类包括裂纹、类裂纹和边缘。在此,对非裂纹特征进行训练以提高裂纹检测性能。没有实际裂缝的物理深度,但具有相似像素强度的类裂缝特征,如施工缝、脏表面、划痕等,是引起正面误报警的裂缝。边缘特征是指结构的边缘线有较大的色差的情况,如天空与结构的边界被误分类为裂缝。区域破坏网的类别包括钢筋暴露、锈蚀、剥落和剥落。这里,剥落类包括有钢筋暴露和无钢筋暴露的情况,如剥落和弹出。具有代表性的训练图像如附录a所示。在裂纹与区域损伤检测结果的拼接过程中,裂纹分割区域构成了损伤层次的最优先级。本研究基于resnet-50骨干网开发了语义分割网络架构deeplab v3 +[31],如图5所示。本研究采用amd ryzen thread -dripper 3970x CPU和nvidia geforce RTX 2080 ti gpu实现。需要说明的是,我们采用了11gb内存,4352核的高性能RTX 2080 ti gpu来加速网络训练和测试。总共使用了2947张图像进行学习,其中裂缝网络学习使用了1759张,区域型网络学习使用了1188张。训练与验证的比率Images设置为9:1。训练图像通过水平或垂直翻转增强,每个历元的概率为50%。训练图像大小、epoch、mini-batch大小、学习率、优化器和损失函数分别为960 × 1280、100、10、10e。

3.2.2. Damage quantification algorithm损伤量化算法

由于裂纹量化的复杂性,本节对检测到的损伤(vd)图像中的裂纹区域型损伤分别采用不同的量化算法进行量化,如图6所示。为了使用所开发的损伤分割网络精确地量化vd图像中检测到的裂纹段内的裂纹,需要将裂纹分割区域的二值区域替换为彩色图像[32]。利用二值图像进行欧氏距离变换和骨架化处理提取裂纹形状并计算相应的裂纹长度和宽度。两个像素之间的欧几里得距离,即p和q,可以表示为[33]:

式中,a表示二值图像中以1表示的一组黑色像素,ac表示a的补集,则可得到欧式距离变换裂纹(ce)图像:

然后可以对二值图像进行骨架化,从而可以仅提取物理上表示相邻像素之间线性连接的裂纹边界。随后,使用形态学薄ning算法获得骨架化裂纹图像。那么,物理计算裂纹长度和宽度的比例因子s可由如下针孔相机方程[32]得到:

式中dw为摄像机镜头与目标结构表面的工作距离,l为摄像机传感器的尺寸,p为图像像素分辨率,f为摄像机焦距。最后得到裂纹量化结果(qc)如下:

然后,将分割区域的高度与宽度相乘,得到区域损伤量化结果qa,如下:

3.3. Step 3: Fixed camera pose-based 3D modeling and damage mapping algorithm基于固定摄像机姿态的三维建模和损伤映射算法

由于无人驾驶的融合数据扫描系统在垂直隧道中上下移动,相机的坐标系统和姿态是固定的。此外,所获得的视觉图像之间的关系是已知的,因为垂直隧道表面的时间和空间变化的图像是顺序获得的。因此,可以使用两个已知的约束构造三维数字损伤图,如图7所示。基于固定相机姿态的三维建模算法,利用尺寸相关语义分割网络对vo图像进行损伤检测时,可以同时生成三维数字地图。

首先,vo I (I = 1…Ni)可以用sift算法提取,如下:

式中,fi为提取的特征,x为特征点,f为特征描述符,r2为二维空间。Vo I可以根据数据记录自动配对,具体如下:

其中c为图像对。利用特征匹配算法对已经耦合的特征进行序列匹配,将特征点投影到三维空间中。然后使用已知的固定摄像机姿态(p = {pi∈se(3) |i = 1…)将匹配的特征点投影到3d空间中。倪})。其中se(3)是李群中的一个三维特殊欧几里得群。通过将二维空间中的特征点投影到三维空间中,可以得到一个初始的稀疏点云模型(xk∈r3, (k = 1…nx)。操作振动、不规则表面条件、场地条件不确定性所产生的特征投影误差可以最小化如下:

其中ρ表示损失函数,π表示将特征点投影到图像空间的函数。Eq .(10)可以基于levenberg-marquardt方法进行优化,即在配准整个图像时,保存三维重建过程中自动获得的最终相机姿态(pf),以映射分割后的损伤。利用eq.(8)提取vd I特征,生成初始三维数字损伤图,如下所示:

其中ζ表示使用相机姿态和输入图像进行三维重建的函数。随后,利用泊松曲面网格生成算法生成网格模型,并通过纹理映射完成三维重建。

4. Experimental validation using in-situ vertical-type tunnels原位垂直隧洞试验验证

本节介绍通过原位垂直隧道试验验证的实验结果。在两个不同的测试平台上展示了系统的实现细节,并对相应的测试结果进行了定量分析。

本研究中仅适用于深度小于20 m的垂直隧道,

6. Conclusions

本文提出了一种基于深度学习的基于无人融合数据扫描系统的垂直型隧道三维数字损伤图建立技术。该技术已通过韩国两条垂直式地铁隧道的现场试验成功验证。所提出的深度学习网络成功验证了平均准确率和召回率分别为90.89和98.18%。特别是,采用新颖的基于固定相机姿态的三维建模和损伤映射算法精确地重建了三维数字损伤图。该技术将作为垂直隧道数字孪生的核心技术之一。作为后续研究,所提出的系统目前正在应用于其他垂直型结构,如大型桥梁的内部公路桥墩及通气孔。在此基础上,对时间序列三维数字损伤图的建立进行数字模型更新研究,并将其扩展到损伤预测研究。

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

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

相关文章

CCF-A类 HPCA 2025 重磅揭晓:录取数据公布

近日,第31届国际计算机体系结构领域顶级会议HPCA (International Symposium on High Performance Computer Architecture) 正式发布了2025年会议的录用通知!本届会议共收到了534 篇提交论文,其中,112篇论文被接收,整体…

Linux应用——线程池

1. 线程池要求 我们创建线程池的目的本质上是用空间换取时间,而我们选择于 C 的类内包装原生线程库的形式来创建,其具体实行逻辑如图 可以看到,整个线程池其实就是一个大型的 CP 模型,接下来我们来完成它 2. 整体模板 #pragma …

IDM扩展添加到Edge浏览器

IDM扩展添加到Edge浏览器 一般情况下,当安装IDM软件后,该软件将会自动将IDM Integration Module浏览器扩展安装到Edge浏览器上,但在某些情况下,需要我们手动安装,以下为手动安装步骤 手动安装IDM扩展到Edge浏览器 打…

docker 拉取MySQL8.0镜像以及安装

目录 一、docker安装MySQL镜像 搜索images 拉取MySQL镜像 二、数据挂载 在/root/mysql/conf中创建 *.cnf 文件 创建容器,将数据,日志,配置文件映射到本机 检查MySQL是否启动成功: 三、DBeaver数据库连接 问题一、Public Key Retrieval is not allowed 问题…

深入探索Waymo自动驾驶技术发展:从DARPA挑战赛到第五代系统的突破

引言 自动驾驶技术正引领着未来出行方式的革命,而Waymo作为全球自动驾驶领域的先锋,始终走在技术发展的最前沿。本文基于Waymo联席CEO德米特里多尔戈夫(Dmitri Dolgov)在No Priors节目中的访谈,全面介绍Waymo的技术发展…

鸿蒙移动应用开发-------初始arkts

一. 什么是arkts ArkTS是HarmonyOS优选的主力应用开发语言。 ArkTS围绕应用开发在TypeScript(简称TS)生态基础上做了进一步扩展,保持了TS的基本风格,同时通过规范定义强化开发期静态检查和分析,提升程序执行稳定性和…

c++ 输入三条边 绘制三角形

安装图形库 参考 #include "graphics.h" // 就是需要引用这个图形库 #include <conio.h> #include <stdio.h> #include <math.h>// 判断是否可以构成三角形 int isTriangle(int a, int b, int c) {return (a b > c) && (a c >…

A20红色革命文物征集管理系统

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

Logrus入门

Logrus入门 1. 下载 go get github.com/sirupsen/logrus2. logrus常用方法 logrus.Debugln("Debugln") logrus.Infoln("Infoln") logrus.Warnln("Warnln") logrus.Errorln("Errorln") logrus.Println("Println")// 输出如…

pyspark入门基础详细讲解

1.前言介绍 学习目标&#xff1a;了解什么是Speak、PySpark&#xff0c;了解为什么学习PySpark&#xff0c;了解课程是如何和大数据开发方向进行衔接 使用pyspark库所写出来的代码&#xff0c;既可以在电脑上简单运行&#xff0c;进行数据分析处理&#xff0c;又可以把代码无缝…

权限管理练习2

1.在/home中创建一个名为 file1.txt 的文件&#xff0c;并设置权限为&#xff1a;所有者和组成员可以读写&#xff0c;但其他人只能读。 所有者和组成员可以读写 u rw- g rw- o r-- 2.在 /home 目录下创建一个名为 shared 的子目录&#xff0c;使得所有用户都可以进入&#…

面试经典 150 题:121,125

121. 买卖股票的最佳时机 【参考代码】 动态规划解决 class Solution { public:int maxProfit(vector<int>& prices) {int size prices.size();int min_price 99999, max_profit 0;for(int i0; i<size; i){if(prices[i] < min_price){min_price prices[i…

数据集划分

1、 sklearn玩具数据集介绍 数据量小&#xff0c;数据在sklearn库的本地&#xff0c;只要安装了sklearn&#xff0c;不用上网就可以获取 2 sklearn现实世界数据集介绍 数据量大&#xff0c;数据只能通过网络获取&#xff08;科学上网&#xff09; 3 sklearn加载玩具数据集 示…

图形几何之美系列:仿射变换矩阵之先转后偏

“在几何计算、图形渲染、动画、游戏开发等领域&#xff0c;常需要进行元素的平移、旋转、缩放等操作&#xff0c;一种广泛应用且简便的方法是使用仿射变换进行处理。相关的概念还有欧拉角、四元数等&#xff0c;四元数在图形学中主要用于解决旋转问题&#xff0c;特别是在三维…

刷题强训(day05) -- 游游的you、腐烂的苹果、孩子们的游戏(圆圈中最后剩下的数)

目录 1、游游的you 1.1 题目 1.2 思路 1.3 代码实现 2、腐烂的苹果 2.1 题目 2.2 思路 2.3 代码实现 3、孩子们的游戏(圆圈中最后剩下的数) 3.1 题目 3.2 思路 3.3 代码实现 3.3.1 环形链表 ​编辑3.3.2 动态规划 ​编辑 1、游游的you 1.1 题目 1.2 思路 根据题…

PyQt5超详细教程终篇

PyQt5超详细教程 前言 接&#xff1a; [【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;](【Python篇】PyQt5 超详细教程——由入门到精通&#xff08;序篇&#xff09;-CSDN博客) 建议把代码复制到pycahrm等IDE上面看实际效果&#xff0c;方便理…

并查集算法实现

模板 模板分为三大部分 初始化查询i的祖先合并i j(使他们祖先成为一个人) // 1 初始化 void init(int n) {for (int i 1; i < n; i)fa[i] i;//将该数的父节点定义为该数 }// 2 查询i的祖先 int find(int i) {if (i fa[i])return i;else{![查](../pic/并查集.png)fa[i]…

(实战)WebApi第13讲:怎么把不同表里的东西,包括同一个表里面不同的列设置成不同的实体,所有的给整合到一起?【前端+后端】、前端中点击标签后在界面中显示

一、实现全局跨域&#xff1a;新建一个Controller&#xff0c;其它的controller都继承它 1、新建BaseController 2、在后端配置&#xff0c;此处省略【详情见第12讲四、3、】 3、其它的控制器继承BaseController&#xff0c;这个时候就能够完成全局的跨域 【向后台传cookie和…

【计算机基础——数据结构——红黑树】

1. 红黑树&#xff08;RBTree&#xff09; 为什么HashMap不直接使用AVL树&#xff0c;而是选择了红黑树呢&#xff1f; 由于AVL树必须保证左右子树平衡&#xff0c;Max(最大树高-最小树高) < 1&#xff0c;所以在插入的时候很容易出现不平衡的情况&#xff0c;一旦这样&…

【MatLab手记】 --从0到了解超超超详过程!!!

文章目录 MatLab笔记一、命令行窗口二、变量命名规则三、数据类型1. 数字2. 字符与字符串3. 矩阵3.1 矩阵创建3.2 矩阵的修改和删除3.3 矩阵的拼接与重构重排3.4 矩阵的运算方法3.5 矩阵的下标 4. 元胞数组&#xff08;类似数据容器&#xff09;5. 结构体 四、逻辑与流程控制五…