最新!!单目深度估计方向文献综述--Monocular Depth Estimation: A Thorough Review

news2024/11/22 19:58:46

论文链接:https://ieeexplore.ieee.org/abstract/document/10313067

Abstract

一个是考虑人类深度感知的机制,另一个是包括各种深度学习方法。

这篇论文是关于单目深度估计(Monocular Depth Estimation)的全面综述,由Vasileios Arampatzakis等人撰写。单目深度估计是指从二维图像中恢复三维场景的深度信息,这是一个在计算机视觉领域具有挑战性的问题。尽管已经有许多研究,但这个问题仍然是一个研究热点,因为它涉及到人类深度感知机制的理解以及深度学习技术的应用。

以下是论文的核心内容概述:

  1. 引言:介绍了深度估计的重要性和应用领域,如图像分割、自主导航、机器人手术辅助、人体姿态估计等。同时指出,尽管机器学习技术取得了进步,但与人类的视觉感知相比仍有差距。

  2. 背景和相关工作:回顾了深度感知的历史,从欧几里得的光学理论到现代的深度估计方法。讨论了人类深度感知的机制,包括相对大小、纹理密度、视觉高度、大气透视、运动透视等视觉线索。

  3. 深度估计方法:详细介绍了传统的深度估计方法,如立体视觉、运动视差、聚焦度等,以及基于深度学习的单目深度估计方法。这些方法包括监督学习、自监督学习和半监督学习方法。

  4. 网络架构:探讨了用于单目深度估计的各种网络架构,包括卷积神经网络(CNN)、全卷积神经网络(FCN)、编码器-解码器(ED)、自编码器(AE)、生成对抗网络(GAN)和Transformer。

  5. 评估指标:介绍了用于评估深度图预测性能的误差函数和度量标准,如绝对相对误差(AbsRel)、平方相对误差(SqRel)、均方根误差(RMSE)等。

  6. 挑战和局限性:讨论了当前方法的挑战,包括模型的可解释性、数据多样性和质量、以及在复杂场景中的泛化能力。

  7. 未来方向:提出了未来研究的方向,包括利用视觉Transformer和注意力机制来提高深度估计的准确性和可解释性,以及改进损失函数、超参数学习和内在矩阵估计。

  8. 结论:总结了单目深度估计领域的当前进展,并强调了继续研究的重要性,以解决现有方法的局限性并推动该领域的发展。

这篇论文为单目深度估计领域提供了一个全面的视角,不仅回顾了过去十年的研究进展,还指出了未来研究的潜在方向。

Introduction

  1. 引言:介绍了深度估计的重要性和应用领域,如图像分割、自主导航、机器人手术辅助、人体姿态估计等。同时指出,尽管机器学习取得了进步,但与人类的视觉感知相比仍有差距。

场景空间结构的R识别是机器视觉感知中的一个基本问题,通常称为深度估计或重建。当三维(3D)场景被投影到平面上时,出现二维(2D)图像。深度估计的目标是解决逆问题,即重建与场景对象和观看位置之间的距离相对应的丢失的维度。到目前为止已经提出的用于空间结构的表示以及3D场景与其对应的2D图像之间的映射的方法属于深度估计领域。

在文章中提到的“空间结构的表示”(representation of the spatial structure)通常指的是在计算机视觉和图像处理领域中,如何从二维图像中恢复或推断出三维场景的深度信息。这涉及到将图像中的像素点映射到三维空间中的相应位置,从而构建出场景的三维模型。

在单目深度估计的背景下,空间结构的表示主要关注以下几个方面:

  1. 深度图(Depth Map):这是从单目图像中估计出的每个像素点到观察者(相机)的距离。深度图是一个二维图像,其中每个像素的值代表了对应场景点的深度信息。

  2. 三维重建(3D Reconstruction):使用深度图,可以将二维图像中的每个像素点映射到三维空间中的一个点。这样,就可以构建出场景的三维表示,包括物体的形状、大小和相互之间的空间关系。

  3. 视觉线索(Visual Cues):人类和计算机视觉系统利用视觉线索来感知深度。这些线索包括相对大小、纹理梯度、透视变形、遮挡关系等。在计算机视觉中,这些线索被用来从单目图像中推断深度信息。

  4. 深度感知机制(Depth Perception Mechanisms):文章提到了人类如何利用视觉线索来感知深度,这些机制可以启发计算机视觉算法的设计。例如,通过模拟人眼的聚焦变化(调节)或双眼视差(双眼视差)来估计深度。

  5. 深度估计方法(Depth Estimation Methods):这些方法试图从单目图像中恢复出深度信息。它们可能基于传统的图像处理技术,如边缘检测、纹理分析,或者基于现代的深度学习方法,如卷积神经网络(CNN)和生成对抗网络(GAN)。

在这篇综述中,作者们探讨了这些表示方法的最新进展,以及它们在各种应用中的潜力和挑战。

人类深度感知的理解,我们的眼睛接收到的图像信息在大脑中被处理和比较,以帮助我们理解场景中各个物体的相对位置和距离。

“视觉线索”(visual cues)指的是一系列可以帮助我们判断物体深度和场景布局的视觉特征。这些线索包括但不限于:

  • 相对大小(Relative Size):远处的物体看起来比近处的同类物体小。

  • 纹理渐变(Texture Gradients):随着距离的增加,纹理看起来更加密集。

  • 透视变形(Perspective):物体的尺寸和形状随着距离的增加而变化。

  • 遮挡(Occlusion):一个物体被另一个物体部分或完全遮挡。

  • 运动视差(Motion Parallax):当观察者移动时,远处的物体相对于近处的物体移动得更慢。

  • 大气透视(Aerial Perspective):远处的物体因为大气散射而显得更模糊、颜色更淡。

  • 双眼视差(Binocular Disparity):由于两只眼睛的位置不同,看到的同一物体略有差异,这种差异可以用来判断深度

深度估计的几种方法,其依赖于有限数量的深度线索,如立体声、单目(例如,纹理变化,纹理梯度,雾度,对象的相对大小和遮挡),运动视差和焦点。理解观察到的场景的绝对测量或相对深度估计,这些方法之间存在根本区别。

绝对深度测量(Absolute Depth Estimation)和相对深度估计(Relative Depth Estimation)是计算机视觉和图像处理中用于从图像中推断场景深度信息的两种不同方法。它们的主要区别和联系如下:

  1. 绝对深度测量

    1. 绝对深度测量的目标是估计场景中每个像素点到观察者(通常是相机)的实际物理距离。

    2. 它提供了一个具有实际尺度的深度图,可以用于精确测量物体的大小和场景的布局。

    3. 绝对深度测量通常需要额外的传感器或设备,如立体相机、结构光扫描仪或激光雷达(LiDAR),这些设备能够提供额外的深度信息。

    4. 在没有额外传感器的情况下,实现绝对深度测量是非常具有挑战性的,因为它需要解决尺度模糊性(Scale Ambiguity)问题。

  2. 相对深度估计

    1. 相对深度估计的目标是确定场景中物体之间的相对位置关系,而不是它们的绝对距离。

    2. 它通常用于场景中物体的排序和分层,而不是精确测量物体的大小或距离。

    3. 相对深度估计可以通过单目图像、运动信息或使用深度学习模型来实现,这些模型可以从图像内容中学习深度线索。

    4. 相对深度估计在许多应用中已经足够,如自动驾驶车辆的障碍物检测和避障,以及增强现实(AR)中的虚拟物体放置。

联系

  • 尽管绝对深度测量和相对深度估计的目标不同,但它们在某些情况下可以相互补充。例如,在自动驾驶系统中,相对深度估计可以用来快速识别和分类障碍物,而绝对深度测量则可以用来精确计算与障碍物的距离,以做出更精确的避障决策。

  • 在实际应用中,相对深度估计往往更容易实现,因为它不需要额外的传感器,并且可以利用现有的图像数据。然而,当需要精确的三维重建或测量时,绝对深度测量可能是必要的。

  • 深度学习方法,如卷积神经网络(CNN),可以同时用于绝对和相对深度估计。研究者们会根据具体的应用需求和可用的数据类型选择合适的方法。

过往文献

[18]重点是绩效评估和未来方向。比较了基于评估指标的少数方法,并讨论了自适应方法的潜力,使用高效网络架构的高密度图像深度估计,以及复杂场景中准确深度估计的挑战。

[19]讨论了卷积神经网络(CNN)架构和单目深度估计的进步需求。他们强调了有限数据集与地面实况的一般问题,并提出了未来研究的六个目标:准确性,计算时间,分辨率质量,实时推理,可转移性和输入数据形状。

[20]五个主要挑战,包括网络框架的集成和优化、数据集构建、处理动态对象和遮挡、生成高分辨率深度图以及实现实时性能。

[21]基于立体的深度估计的双目方法。强调了两个未来的方向:跨不同领域的推广和方法对高分辨率图像的适用性[22]讨论了单目深度估计的未来发展沿着三个主轴:准确性,可转移性和实时性能。他们还强调了缺乏对基于深度学习的单目深度估计方法的底层机制的研究,例如了解它们利用了什么深度线索以及网络已经学习了什么。

存在问题

在基于深度学习的单目深度估计方法中,对于这些方法背后的基本原理和机制的研究还不够充分。换句话说,尽管深度学习在单目深度估计领域取得了显著的进展,但研究者们对于这些深度学习模型是如何具体地从单目图像中提取和利用深度信息的过程理解得还不够深入。

这里的“underlying mechanisms”(基本原理和机制)可能包括以下几个方面:

  1. 特征提取:深度学习模型是如何从输入的单目图像中识别和提取有助于深度估计的特征的。

  2. 深度线索的利用:模型是如何理解和利用人类视觉系统中的深度线索(如纹理渐变、相对大小、遮挡等)来进行深度估计的。

  3. 网络架构:不同的网络架构(如卷积神经网络、生成对抗网络等)在深度估计任务中的作用和效率。

  4. 训练过程:模型在训练过程中是如何学习到从图像到深度图的映射关系的。

  5. 泛化能力:模型在面对新的、未见过的场景时,其深度估计的准确性和鲁棒性。

  6. 可解释性:模型的决策过程是否透明,以及是否能够解释其预测结果。

由于深度学习模型通常被视为“黑箱”,其内部工作机制往往不透明,这使得理解这些模型的工作原理变得复杂。因此,研究者们需要开展更多的研究来揭示这些模型的内部机制,以便更好地理解它们的性能,改进模型设计,提高深度估计的准确性和可靠性。

研究者们应该探索AI模型在处理深度估计任务时所采用的方法和策略,并将这些方法与人类视觉系统处理深度信息的已知机制进行比较。例如,人类依赖于多种视觉线索(如纹理、大小、遮挡等)来感知深度,而AI模型可能通过学习这些线索的模式来做出预测。

作者建议,未来的研究应该朝着这个方向发展,即不仅关注AI模型的性能,还要关注其决策过程的透明度和可解释性。这样的研究可能有助于:

  1. 提高模型的准确性:通过理解AI模型的工作原理,可以更好地调整和优化模型,以提高其在深度估计任务中的准确性。

  2. 增强模型的鲁棒性:了解模型在何种情况下可能失败,可以帮助研究者设计出更鲁棒的模型,以应对各种复杂场景。

  3. 促进人机交互:如果AI模型的决策过程更加透明,用户可能更容易理解和信任这些模型,从而在实际应用中更愿意接受和使用AI技术。

  4. 促进跨学科研究:将计算机视觉与认知科学等领域的知识结合起来,可以推动跨学科的研究,促进对深度感知机制的深入理解。

背景和相关工作

人类深度感知

主要线索:

  1. 相对大小(Relative Size):物体的视网膜投影大小与其实际大小成反比。通常,我们认为在视网膜上投影较大的物体更近。

  2. 遮挡(Occlusion):当一个物体部分或完全遮挡另一个物体时,我们倾向于认为遮挡物体更近。

  3. 纹理渐变(Texture Gradient):纹理密度随着距离的增加而增加,这通常意味着物体越远,其纹理看起来越密集。

  4. 透视变形(Perspective):随着物体距离的增加,物体的尺寸在视网膜上的投影会减小,线条会收敛。

  5. 运动视差(Motion Parallax):当观察者移动时,远处的物体相对于近处的物体移动得更慢,这种相对运动可以提供深度信息。

  6. 大气透视(Aerial Perspective):由于大气散射,远处的物体看起来更模糊,颜色更淡,对比度更低。

  7. 双眼视差(Binocular Disparity):由于两只眼睛的位置不同,它们看到的同一场景略有差异。大脑利用这些差异来估计物体的深度。

  8. 聚焦(Accommodation):眼睛的晶状体调整形状以保持不同距离物体的清晰视图,这种调整过程提供了深度信息。

  9. 收敛(Convergence):为了保持双眼对准同一物体,眼睛会向内转动,这种转动的角度与物体的距离有关。

  10. 高度线索(Height in the Visual Field):物体在视觉场中的高度位置也提供了深度线索,通常物体越高,我们认为它越远。

  11. 线性透视(Linear Perspective):在场景中,平行线(如铁路轨道)会随着距离的增加而逐渐靠拢,直至在远处消失。

  12. 亮度和阴影(Brightness and Shading):物体的亮度和阴影模式也可以提供关于其形状和深度的线索。

次要线索:

特定条件下或在主要线索不足以提供充分深度信息时,辅助我们进行深度判断的视觉特征。以下是一些次要深度线索:

  1. 纹理对比度:纹理的清晰度和对比度随距离增加而降低,远处的纹理看起来不如近处的清晰。

  2. 颜色饱和度:颜色的饱和度通常在远处降低,这可以帮助我们判断物体的远近。

  3. 细节清晰度:远处物体的细节不如近处物体清晰,这种模糊效应有助于我们感知深度。

  4. 线性透视:除了物体尺寸的变化外,场景中的直线元素(如道路、铁路)随着距离的增加而汇聚,这种线性透视也提供了深度信息。

  5. 阴影和光照:物体的阴影和光照模式可以揭示物体的形状和相对位置,从而帮助我们感知深度。

  6. 动态线索:观察者的运动或物体的运动可以提供深度线索,例如,当物体移动时,我们可以通过其在场景中的相对位置变化来感知深度。

  7. 重力线索:物体的摆放和支撑方式通常遵循重力原则,这有助于我们理解物体的稳定性和空间关系。

  8. 运动视差:除了双眼运动视差外,单眼运动视差(如头部或身体的移动)也提供了深度信息。

  9. 视觉流:当观察者移动视线时,场景中的物体相对于彼此的运动可以提供深度线索。

  10. 上下文线索:场景中的上下文信息,如物体的典型尺寸和已知的空间布局,可以帮助我们推断物体的深度。

  11. 文化和经验:我们的文化背景和个人经验也会影响我们对深度的感知,例如,我们可能会根据物体的常见用途和功能来推断其在空间中的位置。

基准数据集

深度数据可以用作用于最小化深度误差估计的参考点。

大多数数据集在这方面是不完整的,稀疏深度值通常关于其配对场景来提供。

研究人员一直在使用可用的基准数据集来训练他们的新方法(例如,通过使用单个增强数据集)或估计新方法的泛化能力(例如,通过在数据集A上训练和在数据集B上测试)。

评估指标

在像素总数N中,对于每个像素i,地面实况深度被表示为di,并且其预测深度值被表示为di^

没有单一的评估指标能够全面评价所有深度估计算法的性能。通常需要结合多个指标,根据具体的应用需求和场景来综合评价算法的好坏。在实际研究和开发中,研究者可能会根据实验结果和应用目标选择最合适的评估指标。尺度不变性(Scale Invariance)

  • 指标应该不受输入图像尺度变化的影响,特别是在深度估计中,尺度不变性是一个重要的特性。

  • RMSE(log)和sRMSE(log)等对数尺度的指标通常具有更好的尺度不变性。

基于深度学习的单目深度估计

深度学习在深度估计任务中应用的三种不同的学习范式进行分类的方法。每种学习范式都有其独特的特点和应用场景:

  1. 监督学习(Supervised Learning)

    1. 在监督学习中,模型的训练需要大量的标注数据,即训练数据集包含输入图像和对应的深度图(ground truth)。

    2. 模型通过学习输入图像和深度图之间的映射关系来进行训练,目标是最小化预测深度和真实深度之间的差异。

    3. 监督学习通常能够实现较高的精度,但需要大量的标注工作,这可能既耗时又昂贵。

  2. 自监督学习(Self-Supervised Learning)

    1. 自监督学习不依赖于外部的标注数据。相反,它利用数据本身的结构和属性来生成训练信号。

    2. 在深度估计的上下文中,自监督学习可能利用图像序列中的时间一致性(例如,连续帧之间的运动)或图像本身的几何约束(例如,通过立体匹配或光流估计)来训练模型。

    3. 自监督学习的优势在于减少了对标注数据的依赖,但可能需要设计复杂的训练策略来确保模型学习到有用的深度信息。

  3. 半监督学习(Semi-Supervised Learning)

    1. 半监督学习介于监督学习和自监督学习之间。它结合了少量的标注数据和大量的未标注数据。

    2. 在这种范式下,模型首先使用有限的标注数据学习深度估计的初步模型,然后利用未标注数据来进一步改进模型的性能。

    3. 半监督学习的目标是利用未标注数据的丰富性来提高模型的泛化能力,同时减少对标注数据的需求。

如果有足够的标注数据,监督学习可能是最佳选择;如果标注数据稀缺,自监督学习或半监督学习可能更为合适。

监督学习

 

自监督学习

单目图像序列可以用来从帧中提取几何约束。

光度损失的最小化

半监督学习

根据学习方法的不同,这些方法分为三个主要组:监督,自我监督和半监督。对这些方法进行了单独说明,并在比较表中列出了它们的性能。早期的方法,例如可以追溯到2014年的方法,主要依赖于传统的CNN架构。范式转向了监督域中的编码器-解码器架构,这一转变促进了更丰富的特征提取和上下文建模。同时,自我监督技术在实现更高性能时接受了GAN的集成。多年来,融合多个任务(例如表面法线估计与语义标记)一直运作良好,尽管这通常包括不同类型的数据和集成多个网络。如今,一个新兴的趋势涉及视觉变换器在监督和自我监督方法中的应用。

Challenges and Limitations

作者讨论了单目深度估计领域当前面临的主要挑战和局限性。以下是这一部分内容的总结:

  1. 模型可解释性:深度学习模型在单目深度估计中通常被视为“黑盒”,这意味着它们的决策过程不透明,难以解释。这导致了一个问题,即如何理解模型是如何从图像中提取深度信息的,以及这些信息与人类视觉系统识别的深度线索(如纹理梯度、遮挡模式等)之间的关系。

  2. 数据多样性和质量:数据驱动的方法依赖于训练数据的多样性和质量。如果训练数据缺乏多样性或质量不高,模型可能无法泛化到新的、复杂的场景中。此外,单目深度估计方法在处理光学幻觉、反光/半透明物体和抽象表示等场景时可能会遇到深度预测的歧义。

  3. 数据集的局限性:现有的数据集可能无法完全覆盖所有可能的现实世界场景,这限制了模型的泛化能力。为了确保模型在各种场景中都能准确、可靠地工作,需要大型、多样化且标注良好的数据集。

  4. 深度估计的固有挑战:单目深度估计本身存在一些固有的挑战,如缺乏立体信息、尺度模糊和遮挡问题。这些挑战强调了在实际应用中需要模型具有鲁棒性和可靠性。

未来方向

视觉变换器和注意力机制与解决单目深度估计挑战高度相关。这些技术有望通过注意力地图提供更好的可解释性,揭示神经网络的深度感知过程及其与人类视觉线索的一致性。

未来的研究方向还包括细化损失函数超参数学习内在矩阵估计。除了Transformer之外,图卷积,知识蒸馏,3D卷积也有希望。几何约束和语义集成,如多任务训练和几何约束,可以提高性能。

目前阶段研究方向为单目深度估计,如需要更详尽PPT欢迎交流

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

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

相关文章

Flutter第十三弹 路由和导航

目标: 1.Flutter怎么创建路由? 2.怎么实现路由跳转?页面返回? 一、路由 1.1 什么是路由? 路由(Route)在移动开发中通常指页面(Page),在Android中通常指一个Activity。所谓路由管…

wsl报错在BIOS中启用虚拟化

解决: Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 以高级管理员身份运行powershell,执行如上命令。

GoldWave软件下载 GoldWave 音频处理软件 v6.80.0 官方版下载附加详细安装步骤

准确来讲GoldWave软件防止GoldWave *原生音频插件被禁用。根据大数据结果显示回声效果:回声,顾名思义是指声音发出后经过一定的时间再返回被我们听到,就象在旷野上面对高山呼喊一样,在很多视频剪辑、配音中广泛采用, G…

最新版本IntelliJ IDEA安装与“坤活”使用

最新版本IntelliJ IDEA安装与“科学”使用 IntelliJ IDEA安装与坤活下载安装坤活idea1.将下面两个压缩文件解压到安装位置,注意路径不要包含中文空格等特殊符号2.双击 install-all-users.vbs ,然后点击确定,等到出现 Done的弹窗3. 打开idea复…

【ajax基础04】form-serialize插件

目录 一:form-serialize插件 作用: 语法格式: 一:form-serialize插件 作用: 快速且大量的收集表单元素的值 例如上图对于多表单元素的情形,单靠通过”选择器获取节点.value”值的形式,获取…

Blazor 组件:创建、生命周期、嵌套和 UI 集成

在本文中,您将获得以下问题的答案。 什么是 Blazor 组件?如何使用组件?Blazor 组件的生命周期是什么?我们可以从一个组件调用另一个组件吗?如何创建 Blazor 组件?在组件中哪里写 C# 代码? 什么…

百度文心智能体平台(想象即现实):轻松上手,开启智能新时代!创建属于自己的智能体应用。

目录 1.1、文心智能体平台 1.2、创建智能体 1.3、智能体报名入口 1.4、古诗词小助手 1.5、访问我的智能体 在这个全新的时代里,人工智能技术正以前所未有的速度发展,渗透到我们生活的方方面面。无论是智能家居、自动驾驶,还是医疗诊断、…

漏洞挖掘 | 记一次src挖掘-小程序敏感信息泄露

权当是一次漏洞挖掘的思路分享 闲言 就现在的一个web漏洞挖掘强度还是非常高的,所以我们不妨把我们的眼光投向一个之前可能未曾涉及到的区域———小程序 是的微信小程序,这玩意的防范能力和过滤能力其实对比web方向是要弱小很多的 进入正题 以下就是…

如何设置Excel单元格下拉列表

如何设置Excel单元格下拉列表 在Excel中设置单元格下拉列表可以提高数据输入的准确性和效率。以下是创建下拉列表的步骤: 使用数据验证设置下拉列表: 1. 选择单元格: 选择你想要设置下拉列表的单元格或单元格区域。 2. 打开数据验证&…

充电学习—8、Type-C TCPC TCPCI

TCPC是usb Type-C port controller; 通用串行总线C型端口控制器 TCPCI是tcpc控制器接口规范; TCPC是个功能块,其中含有VBUS和VCONN的电源控制功能,CC信号的处理 逻辑,PD应用中的BMC物理层和协议层(PD信息…

配置环境常规操作

一、看看显卡情况 1、看显卡驱动: nvidia-smi 2、验证cuda是否安装成功 nvcc -V 二、conda创建环境 conda create --name PatchCore_anomaly_detection python3.9 conda activate PatchCore_anomaly_detection 三、配置虚拟环境 cd C:\BaiduNetdiskDownload…

OSPF和RIP的路由引入(华为)

#交换设备 OSPF和RIP的路由引入 不同的网络会根据自身的实际情况来选用路由协议。比如有些网络规模很小,为了管理简单,部署了 RIP; 而有些网络很复杂,可以部署 OSPF。不同路由协议之间不能直接共享各自的路由信息,需要依靠配置路…

海外优青ppt美化_海优ppt录音视频制作

海外优青 优秀青年科学基金项目(海外)旨在吸引和鼓励在自然科学、工程技术等方面已取得较好成绩的海外优秀青年学者(含非华裔外籍人才)回国(来华)工作,自主选择研究方向开展创新性研究&#xf…

win 打包java项目为exe一键部署,包括mysql和redis

需求:打包springboot项目在win系统下执行,并且要一键部署和开机启动 把所需的程序放在同一个文件夹 1.jdk文件夹:自己去下载,jdk8的话拿jre目录好了 2.mysql文件夹:是8.0.36版,270M精简版了 3.redis文件夹…

Springboot整合Zookeeper分布式组件实例

一、Zookeeper概述 1.1 Zookeeper的定义 Zookeeper是一个开源的分布式协调服务,主要用于分布式应用程序中的协调管理。它由Apache软件基金会维护,是Hadoop生态系统中的重要成员。Zookeeper提供了一个高效且可靠的分布式锁服务,以及群集管理…

深入探讨:UART与USART在单片机中串口的实际应用与实现技巧

单片机(Microcontroller Unit, MCU)是一种集成了处理器、存储器和输入输出接口的微型计算机。它广泛应用于嵌入式系统中,用于控制各类电子设备。UART和USART是单片机中常见的通信接口,负责串行数据传输。下面我们详细介绍它们在单…

【机器学习系列】Python实战:使用GridSearchCV优化AdaBoost分类器及其基分类器

目录 一、AdaBoost的标准实现中是否支持使用不同类型的基分类器? 二、Adaboost的参数 三、Python实现Adaboost (一)导入库和数据集 (二) 划分训练集 (三)选择基分类器--决策树 (四)创建Ada…

数据结构_栈和队列

目录 一、栈 1.1 栈的使用 1.2 模拟实现栈 二、队列 2.1 队列的使用 2.2 环形队列 2.3 双端队列 总结 一、栈 栈是只允许在固定的一端进行元素的插入和删除操作的一种特殊线性表。其中进行元素的插入和删除操作的一端称为栈顶,另一端称为栈底。栈遵循先进后…

MQTT服务器/MQTT_C#客户端/Websoket连MQTT

1 . 搭建MQTT服务器 找到上传中的 emqx-5.3.2-windows-amd64 打开bin如下: 链接: emqx-5.3.2-windows-amd64 如果安装失败 在上传中找到链接: VC_redist.x64.exe 安装。 正确后在浏览器输入 http://127.0.0.1:18083 会有如下mqtt服务端管理页面: 进入客户端认证,创建一个…

72. UE5 RPG 实现召唤技能数量的限制,并优化技能相关

在上一篇文章里,我们实现了召唤技能,并且能够无限的召唤。所以,这属于一个bug,我们不能无限制的去召唤,这会影响游戏的体验。所以,在这篇里面,我们实现一下对召唤物数量的限制,并优化…