51c自动驾驶~合集1

我自己的原文哦~  https://blog.51cto.com/whaosoft/11466109

#HTCL

超过所有视觉方案!HTCL:分层时间上下文问鼎OCC

本文是对ECCV2024接受的文章 HTCL: 的介绍,HTCL在SemanticKITTI基准测试中超过了所有基于相机的方法,甚至在和OpenOccupancy基准测试中超过了LiDAR,实现了最先进的性能。代码已开源,欢迎大家试用和Star~

代码链接:https://github.com/Arlo0o/HTCL
论文链接:https://arxiv.org/abs/2407.02077

Demo video 展示:

我们对比了同样采用时序双目图像输入的VoxFormer-T,并用更少的输入帧数(3 vs. 4)取得了更好的预测效果,在场景整体布局、相机视野外区域、远距离动态物体等的预测中表现出明显优势。​

Motivation

基于相机的三维语义场景补全(SSC)对于从有限的二维图像观测中预测复杂的三维场景信息至关重要。现有的主流解决方案通过对历史帧信息的粗略堆叠来试图补充当前视角下的不完整观测,这种简单的时序建模方式不可避免地减少了有效的视觉线索,增加了模型学习难度。

图片

为了解决上述问题,我们提出了HTCL,一种新颖的分层时序上下文学习范式,用于改进基于相机的语义场景补全。HTCL将时序上下文学习分解为两个层次步骤:(a)跨帧亲和度测量;(b)基于亲和度的动态细化。首先,为了从冗余信息中分离关键相关上下文,我们提出了尺度感知隔离策略,用于构建多个独立的学习模块,进而建模细粒度上下文对应关系。随后,为了动态补偿不完整的观测结果,我们基于识别出的具有高亲和度特征的空间位置及其邻近的相关区域,自适应地细化特征采样位置。​

Method

我们提出的分层时序上下文学习(HTCL)范式可以有效改进时序特征聚合的可靠性,从而实现精确的三维语义场景补全。HTCL从不同时间帧的RGB图像中分层地推断三维语义Occupancy,以实现细粒度的场景理解。如下图所示,我们提出的分层时时序下文建模包括两个顺序步骤:(1)显式地测量当前帧和历史帧之间的上下文特征亲和力,提取最相关的高亲和度特征;(2)基于高亲和力特征的空间位置及其附近的相关上下文自适应地细化采样位置,以动态补偿不完整的观测。HTCL在创新性方面主要做出了以下贡献:

  • 提出了一种时序上下文学习范式,以用于动态和可靠的三维语义场景补全。
  • 提出了一种具有尺度感知隔离和多个独立学习模块的亲和度测量策略,用于细粒度的上下文对应关系建模。
  • 提出了一个基于亲和度的动态细化方案,以重新分配时序上下文信息,并自适应地补偿不完整的观测结果。
  • HTCL在SemanticKITTI基准测试中超过了所有基于相机的方法,甚至在和OpenOccupancy基准测试中超过了LiDAR,实现了最先进的性能。

图片

如上图所示,我们提出的方法整体框架主要由三个部分组成:Aligned Temporal Volume Construction,Voxel Feature Volume Construction,以及Reliable Temporal Aggregation。

效果如下图所示,跨帧模式亲和(CPA)有效地表示了时间内容中的上下文对应关系。

图片

鉴于我们的目标是完成并理解与当前帧相对应的三维场景,因此必须为最相关的位置分配更大的权重,同时也需要调查其邻近的相关区域以弥补不完整的观察结果。为此,我们提出基于亲和力的动态细化(ADR),根据已确定的高亲和性位置及其邻近相关区域,用三维可变形卷积自适应地改进特征采样位置。具体来说,我们通过引入基于亲和力的对应权重和可变形位置偏移来实现动态细化:

Experiment

实验表明,我们的方法在SemanticKITTI Benchmark上排名第一,并在OpenOccupancy BenchMark中取得了超过基于LiDAR方法的mIoU。

  • 定量实验结果:

图片

在SemanticKITTI基准测试中,我们提出的方法明显优于所有其他方法。与VoxFomer-T相比,我们的方法即使在较少的历史输入(3 vs. 4)中也取得了显著的相对增益。在OpenOccupancy基准测试中,尽管基于LiDAR的在IoU方面具有固有的优势,但我们的HTCL在mIoU方面超过了所有其他方法(包括基于LiDAR的LMSCNet和JS3C-Net ),证明了我们的方法在语义场景补全方面的有效性。

  • 定性试验结果:

图片

图5展示了我们提出的方法与VoxFormer在SemanticKITTI上的定性比较。可以观察到,真实世界的场景非常复杂,而注释的地面实况相对稀少,这给从有限的视觉线索中完全重建语义场景带来了挑战。与 VoxFormer 相比,我们的方法能捕捉到更完整、更准确的场景布局(如第二行和第三行的十字路口)。此外,我们的方法还能有效地补全摄像机视野外更多合适的景物(如第一行和第二行中的阴影区域),并在移动物体(如第二行中的卡车)方面表现出明显的优势。图6展示了我们的方法在 OpenOccupancy 上的预测结果,我们提出的方法与GT相比,可以生成的结果更密集、更真实的Semantic Occupancy。

#MTR v3

https://storage.googleapis.com/waymo-uploads/files/research/2024 Technical Reports/2024 WOD Motion Prediction Challenge - 1st Place - MTR v3.pdf

基于MTR++改进,前作笔记:MTR和MTR++笔记

完整论文和源码还没有公布,目前只能先看report了。

Abstract

MTR v3是在MTR++上进行改进的。主要在两个方面进行了提升:

  1. 使用了原生的lidar数据来提供更细致的语义信息
  2. 使用了更好的更具有区分度的anchor来提升model的轨迹回归能力

除了上面两点外,采用了一个简单的ensemble技巧来进一步提升最后的表现。在soft mAP上达到了SOTA。

Introduction

MTR系列采用了场景encode,和使用了intention query的多模轨迹预测decode。本文爱之前的基础上额外使用了原始lidar数据,可以更好地捕捉一些HD map cover不到的场景信息,比如植被和建筑物。但其实这些对于行人的行为有很大的影响。而之前的MTR++存在回归loss很大的问题,这是因为anchor比较稀疏。为此,更新为更好的anchor生成方式。

Method

  1. 增加了lidar的3D信息,使用一个encoder来提取feature并喂到decoder的输入中
  2. 每个agent会根据mode动态获取有价值的point feature
  3. 最后用了一个ensemble的技巧

Model Design

Scene Encoder Network

Motion Decoder Network

和MTR++一样,统计现实中的gt轨迹的最后一个点的分布,用k-means聚类后得到K个intention的点,也就是anchor。然后就可以和场景feature融合,获得intention query。再用一个Mutually-Guided Intention Querying模块来处理每个agent的多个query之间的交互(让模态分散一些)。

接下来就是3次cross-attention:在agent间,在地图元素间,在lidar voxel间。

并且对于每个agent还需要学习dense的预测,会结合历史以及预测的模态来学习交互,中途出一个轨迹预测用于中间的辅助监督。在每一个cross-attention decoder之后都会加几个MLP来refine query。由于需要多模预测,建模是混合高斯的。

loss的话和MTR++类似,包含了概率的分类loss,GMM的回归loss(只采用了正样本的query对应的轨迹),以及一个辅助任务的loss(详细见MTR++, 大概是用dense的预测过历史轨迹的encoder,和历史轨迹的feature concat在一起作为一个更丰富信息的feature后直接短接一个预测head,会有gt来进行一个监督,使得model中间变量也有个监督)。对于回归loss,做了一个不一样的操作,详情可以参考EDA这篇文章,大概的意思是目前主流的做法有:

  1. anchor based:输入anchor的end point,gt轨迹直接监督最接近gt的end point对应的轨迹。
  2. prediction based:没有具体anchor,预测出来的轨迹里挑最接近gt的进行监督。

方法1虽然一般会对anchor进行小幅度的调整,但anchor本质还是不回移动太多的,不然gt的监督就可能监督到不是gt的模态上,效果上就没有利用好regression的任务,因为并没有让end point进行自由度很高的回归。方法2就很容易出现模态塌缩的问题,因为不像方法1一样强行设置多个mode。

于是EDA就是想要结合两种做法,先是用anchor输入,允许大幅度的refine,这一步可以用gt对一开始match的anchor进行监督,但refine后会重新match,再进行refine,多来几次可以让anchor收敛到比较理想又分散的效果。

Motion-Guided Lidar Search

Model Ensemble

Experiments

model参数见文章。每个lidar token的范围是长1.6m,宽1.6m,高6m。NMS的阈值用2.5m. 训练时也使用了随机剪裁以及缩放来数据增强。

#Denoising

原标题:Ray Denoising: Depth-aware Hard Negative Sampling for Multi-view 3D Object Detection

论文链接:https://arxiv.org/pdf/2402.03634

代码链接:https://github.com/LiewFeng/RayDN

作者单位:中国科学院大学 Mach Drive​

论文思路:

多视角3D目标检测系统由于图像深度估计的挑战,常常难以生成精确的预测,导致冗余和错误检测的增加。本文提出了一种创新方法— Ray Denoising ,通过沿着相机射线进行战略性采样来构建困难负样本,从而提高检测精度。这些负样本在视觉上难以与真正的正样本区分,使模型被迫学习深度感知特征,从而增强其区分真阳性和假阳性的能力。Ray Denoising 设计为一个即插即用的模块,兼容于任何DETR风格的多视角3D检测器,并且只在训练时增加了极少的计算成本,而不影响推理速度。本文的综合实验,包括详细的消融研究,一致表明 Ray Denoising 在多个数据集上均优于强基线方法。在NuScenes数据集上,相较于最先进的StreamPETR方法,它在 mAP 上提升了1.9%。在Argoverse 2数据集上也显示出显著的性能提升,突显了其良好的泛化能力。​

主要贡献:

本文识别了沿同一射线的误检这一持续存在的挑战,这成为多视角3D目标检测器性能的瓶颈。

本文引入了 Ray Denoising ,这是一种新颖的去噪方法,利用Beta分布在射线方向上创建深度感知的困难负样本。该方法明确考虑了场景的3D结构,提供了一种灵活的解决方案,兼容任何DETR风格的多视角3D检测器,以解决沿射线的重复预测问题。

本文的方法在NuScenes数据集 [2] 上达到了最先进的结果,显著提升了多视角3D目标检测器的性能。具体来说,本文在 mAP 上相较于当前最先进的方法StreamPETR提升了1.9%,从而证明了 Ray Denoising 的有效性。​

论文设计:

3D目标检测是自动驾驶系统中的关键组件,因而引起了计算机视觉领域的广泛关注。相比于基于LiDAR的解决方案,基于图像的3D目标检测由于其成本效益正经历着研究热潮 [9, 10, 13, 14, 37, 38]。在依赖于周围相机图像的多视角3D目标检测中,一个主要挑战是从图像中估计深度的难度,这会导致重复预测,如图1所示。

尽管在方法上有所改进,多视角3D目标检测器在减少由深度模糊引起的误检方面仍面临困难。近期的几项研究 [8, 15, 17, 19, 22, 26, 34, 41, 46] 试图通过引入时间信息来解决这一问题。然而,这些方法并未明确考虑场景的3D结构,从而限制了其进一步提升的潜力。

此外,先前的研究还探索了应用诸如非极大值抑制(Non-Maximum Suppression, NMS)和 Focal Loss 等通用技术来缓解重复预测问题。NMS作为一种后处理技术,主要针对具有高交并比(IoU)的误检,但当这些预测沿射线分散且IoU较低时,其效果不佳。Focal Loss 作为一种旨在减少高置信度误检的损失函数也被应用。然而,观察发现,使用 Focal Loss 的多视角3D目标检测器在有效解决沿同一射线的误检问题时仍然面临挑战。

本文的定量分析强调了解决与真实值(Ground Truth)沿同一射线的误检的重要性。通过利用真实值目标的精确位置数据,本文能够在最先进的StreamPETR方法 [34] 中识别并消除这些冗余预测。这一过程显著提升了 mAP 5.4%,突显了模型提升深度估计能力的关键需求。这一显著的改进表明,通过优化深度估计来抑制这些误检,能够显著提升整体检测性能的潜力。

本文的关键观察是,由于传统多视角目标检测器的固有限制,误检常常沿着相机射线发生。由于每个像素的深度信息未能准确估计,位置嵌入只能编码射线方向。因此,同一射线上的查询将始终与图像中的相同视觉特征交互,导致沿该射线出现大量重复预测(误检)。这一情形突显了模型学习深度感知特征的需求,以便在视觉特征相同的情况下区分深度上的目标。本文提出了一种新方法,称为 Ray Denoising (简称RayDN)。该框架本质上具有灵活性,不限制用于采样深度感知困难负样本的分布选择。根据本文的消融研究,本文选择了Beta分布,因为它在捕捉模型可能生成的误检的空间分布方面表现出色。此选择使 Ray Denoising 能够创建用于去噪的深度感知困难负样本,从而增强模型学习更健壮特征和表征以区分沿射线的误检的能力,如图2所示。Ray Denoising 在训练阶段仅引入了极少的计算成本增加,而不会影响推理速度。

图片

图1:在多视角3D目标检测中,从图像中估计深度的挑战导致沿相机射线的重复预测和误检。

图片

图2:提出的 Ray Denoising 方法(右图)有效减少了在先前最先进方法StreamPETR [34](左图)中沿射线的误检(红色矩形高亮部分)。

图片

图3:Ray Denoising 方法的整体框架,这是一种即插即用的训练技术,适用于DETR风格的多视角3D目标检测器,重点在于提升模型区分深度中真阳性和假阳性的能力。通过投射射线和采样深度感知的去噪查询,有效解决了由于视觉深度估计固有困难而产生的误检问题,从而在检测性能上相较于强基线方法取得了显著提升。

讨论:

本文的 Ray Denoising (Ray Denoising)方法基于一个关键观察,即基于图像的3D检测系统往往难以区分沿相机射线的真阳性和假阳性。DETR风格的多视角3D目标检测器通过真实值监督隐式地学习深度估计。然而,可学习查询的随机分布参考点并未充分利用可用的真实值信息。尽管这些参考点在训练过程中会更新,但它们未能为每个场景中的每个目标提供足够的困难负样本。为了增强对真实值信息的利用,传统的去噪技术在训练期间引入了均匀分布在真实值目标周围的额外参考点。这些特定实例的参考点提高了检测性能 [19,22,34]。然而,它们忽视了多视角3D目标检测固有的深度模糊问题。由于每个像素缺乏精确的深度信息,位置嵌入只能编码射线方向,而不能编码深度。这导致同一射线上的查询与相同的图像特征交互,产生冗余预测。Ray Denoising 不同于传统技术,通过沿从相机到目标的射线战略性地生成参考点。这种方法明确考虑了场景中每个目标的3D结构,提供了足够数量的困难负样本。在训练过程中,这些 Ray Queries 在自注意力层中进行交互,有效引导模型抑制深度模糊的空间困难负样本。这种交互增强了检测器区分真阳性预测(目标)和假阳性预测(重复检测)的能力,从而提高了检测精度。​

实验结果:

图片

图4:(a) 分布比较显示,Beta分布在-1到1之间有界,而Laplace分布和高斯分布则是无界的。(b) Beta分布族,通过使用变换  将 x 范围从  调整到 。

图片

图5:(a) 不同距离阈值下的精确度-召回率(precision-recall)曲线可视化。Ray Denoising 在几乎所有召回率水平上均提升了精确度,有效抑制了误检。(b) 按类别的平均精度(AP)比较。Ray Denoising 在所有目标类别上均优于最先进的StreamPETR。

图片

图6:本文在nuScenes验证集上的检测结果可视化。Ray Denoising 在有效减少重复误检的同时,保持了检测同一射线上的高度遮挡目标的能力。

图片

图片

图片

图片

图片

总结:

本文引入了 Ray Denoising (Ray Denoising),这是一种旨在克服多视角3D目标检测中深度估计不准确这一关键挑战的方法。Ray Denoising 解决了沿相机射线发生的误检问题,这些误检是由于图像深度信息不精确直接导致的。通过利用场景的3D结构, Ray Denoising 促使模型学习深度感知特征,从而在不增加额外推理成本的情况下,提高了沿同一射线区分真阳性和假阳性的能力。本文在NuScenes和Argoverse 2数据集上的综合实验表明, Ray Denoising 始终显著优于强基线方法,在多视角3D目标检测中实现了新的最先进性能。​

引用:

@article{liu2024ray,
  title={Ray Denoising: Depth-aware Hard Negative Sampling for Multi-view 3D Object Detection},
  author={Liu, Feng and Huang, Tengteng and Zhang, Qianjing and Yao, Haotian and Zhang, Chi and Wan, Fang and Ye, Qixiang and Zhou, Yanzhao},
  journal={arXiv preprint arXiv:2402.03634},
  year={2024}

#PerlDiff

使用扩散模型进行可控的自动驾驶场景数据生成

文章链接:https://arxiv.org/pdf/2407.06109

项目链接:https://perldiff.github.io/

主要贡献:

  • 提出了新框架 PerlDiff,用于根据用户定义的3D注释生成街景图像。PerlDiff 利用透视布局掩码作为几何先验,精确引导物体层面的图像生成过程。
  • 提出了基于 Perl 的交叉注意机制,该机制利用3D注释中的透视布局掩码图来增强 Perl-CM 中的交叉注意机制。这种方法通过整合道路和 BEV 注释的特定物体信息,实现了对街景图像生成过程的精确控制。
  • PerlDiff在NuScenes 和 KITTI 数据集上达到了SOTA,显著提高了将生成街景图像用于目标检测和分割上的实验结果。开发板商城 天皓智联whaosoft

可控生成被认为是解决 3D 数据标注挑战的一种的重要方法,而这种可控生成的精确性在自动驾驶的数据中变得尤为重要。现有方法侧重于利用 GLIGEN 或 ControlNet 等框架,将各种生成信息整合到控制输入中。虽然在可控生成方面取得了不错的成果,然而,这些方法本质上将生成性能限制在预定义网络架构的学习能力范围内。PerlDiff 充分利用透视 3D 几何信息进行有效街景图像生成,采用 3D 几何先验来指导街景图像的生成,并在网络学习过程中进行精确的物体层面控制,从而获得更准确、更可控的输出结果。

图片

方法设计

训练数据:

  • NuScenes 数据集包括 1,000 个城市交通场景,分为 700 个训练场景和 150 个验证场景。每个场景有六幅高分辨率图像(900×1600),提供了一个完整的 360 度全景视图。NuScenes 还包括驾驶环境的综合路图,其中包括车道标记和障碍物等细节。
  • KITTI 数据集包含 3,712 幅训练图像和 3,769 幅验证图像。KITTI 数据集只有一张透视图像,没有路图信息。鉴于 KITTI 数据集的图像分辨率不同(约 375×1242),将其填充为 384×1280 以进行生成。

控制条件编码

根据交通场景的 BEV 注释,目标是生成多视角街景图像。不仅要提取场景信息,而且还要提取物体信息作为控制条件。

Perl场景信息:

透视场景图像:生成场景的背景信息 ,包含驾驶环境的路面以及障碍物等信息,使用不同颜色区分道路和其他背景元素;

场景文本描述:自定义生成场景的文本描述 ,可说明天气情况以及是在白天还是夜晚;

如何对其编码?

  • ConvNext:用于编码通过 BEV 注释投影得到的透视场景图像,来生成场景的背景特征编码 ;
  • CLIP文本编码:用于编码文本场景描述 , 生成场景特征编码 ;

Perl物体信息:

物体几何数据:将 BEV 注释投影到对应的透视视角,得到每一个物体边界框的的8个 2D 角点坐标 ;

物体类别文本信息:给出每一个物体属于类别的描述文本 ,如车,行人等;

如何对其编码?

  • Fourier 编码:用于编码物体几何数据,得到几何特征编码 ;
  • CLIP文本编码:用于编码物体类别文本信息,得到类别编码特征 ;
  • 多层感知机(MLP):将物体几何特征和类别特征融合,得到每一个物体的特征编码 ;

基于 Perl控制模块(Perl-CM)实现物体可控性

图片

  • Perl-CM 负责将控制条件信息(包括 Perl 场景和物体信息)通过基于 Perl 的场景和物体交叉注意机制整合到潜在特征图中。首先该机制会为注意力图分配初始值, 然后在道路和边界框 Perl 掩码图的引导下,在整个网络训练过程中对这些值进行优化,以确保注意图的响应与物体所在区域准确对应;
  • 为了确保多视图一致性,视图交叉注意力利用了紧邻的左视图和右视图的信息,以实现不同视角的一致性;
  • 图片

  • 文本交叉注意力利用文本场景描述来处理街道场景的天气和照明条件;
  • 图片

Perl(路面/物体边界框)掩码图:

  • Perl 路面掩码图 
  • Perl物体边界框掩码图通过将每一个物体的BEV标柱投影到透视视角后,将其3D边界框所在在内部区域像素置为1得到,代表物体标注框的数量;
  • 图片

Perl-based 交叉注意力:

传统的交叉注意力中控制条件与图像特征对应关系并不精确,导致生成图像并不能很好的满足给定的条件,而PerlDiff利用几何先验掩码图来增强输入控制条件与街景图像之间的交叉注意学习,将从场景上下文和边界框中获得的几何知识纳入交叉注意的计算中,确保路图和物体边界框数据在去噪过程的每个阶段都会与噪声街景图像精确对齐。

图片

讨论:

与 BEVControl、MagicDrive、DrivingDiffusion 和 Panacea 等采用普通交叉注意机制来整合控制条件信息的方法不同。PerlDiff 通过 Perl 掩码图引入了几何先验,在训练阶段利用物体对应的控制信息来指导其生成,从而有效解决注意力图和条件信息之间常见的错位问题(导致图像可控性受损),显著提高了生成图像的准确性。

图片

实验结果:

NuScenes数据集:PerlDiff 在多个指标上均优于 BEVControl 和 MagicDrive 等现有方法,特别是在 3D 目标检测指标图平均精度(mAP)和 NuScenes 检测指标(NDS);

图片

KITTI数据集:PerlDiff 在小样本数据集上仍然有很好的泛化性,相比于采用普通交叉注意力的BEVControl*,PerlDiff 在单目目标检测器MonoFlex上的指标是其十几倍。同时,实验说明利用在 NuScenes 上训练过后在 KITTI 上微调能达到更好的效果;

图片

数据增强:PerlDiff利用合成数据集来提高各种检测模型在 NuScenes 测试集上的性能。其中,使用 NuScenes 训练集和验证集(第二行)的指标作为上限,来验证共同使用 NuScenes 真实训练集和 PerlDiff 生成验证集后,与其差距大小;

图片

基于 Perl 的交叉注意力机制的效果:通过将其换成普通的交叉注意力机制,3D目标检测(BEVFormer)和BEV分割(CVT)指标大幅度变差,来说明其有效性;

图片

Perl(路面/物体边界框)掩码图控制系数:不同掩码图权重系数代表几何先验知识融入网络学习的程度;

图片

可视化结果比较:给出了相比于 BEVControl*,PerlDIff 在控制物体角度位置大小方面的有效性;

图片

图片

其他可视化结果

图片

图片

主要结论:

PerlDiff 通过整合几何约束和扩散模型,在生成高保真度视觉图像的同时,提供了精确的控制信息,增强了图像生成的可控性。实验证明,PerlDiff在 NuScenes 和 KITTI 数据集上表现出色,有望在未来成为一个强大的交通模拟器。未来工作将探索视频生成,以进一步提升模型的应用潜力。

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

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

相关文章

java中创建不可变集合

一.应用场景 二.创建不可变集合的书写格式(List,Set,Map) List集合 package com.njau.d9_immutable;import java.util.Iterator; import java.util.List;/*** 创建不可变集合:List.of()方法* "张三","李四","王五…

每日OJ题_牛客_游游的水果大礼包_枚举_C++_Java

目录 牛客_游游的水果大礼包 题目解析 C代码 Java代码 牛客_游游的水果大礼包 游游的水果大礼包 (nowcoder.com) 描述: 游游有n个苹果,m个桃子。她可以把2个苹果和1个桃子组成价值a元的一号水果大礼包,也可以把1个苹果和2个桃子…

拆解维修飞科剃须刀

原因 用了好几年的剃须刀,经过一次更换电池。后来上面的盖帽松动,无法合盖,经过把弹片矫正后修复。最近一次”大力出奇迹“的操作直接断送了这个老伤员最后的可能性。最终只能花了将近十块大洋买了一套盖着和中间座。简单更换了一下。 记录…

Unity NetCode 客户端连接不上服务器,局域网模式 Failed to connect to server.

报错代码: Failed to connect to server. 报错截图: 解决办法: 服务端:绑定127.0.0.1和端口 客户端:写好对应服务端ip和端口 如何查看服务端所在局域网IP,192.xxx.xxx.xx,就不用教了吧。 注意这个钩,得点下,默认不勾选。 意…

【注册/登录安全分析报告:孔夫子旧书网】

前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨大,造成亏损无底洞…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器,实现“一次构建,到处运行”的目标。然而,不同的操作系统和硬件架构对容器镜像有不同的要求。例如,Linux 和 Windows 系统有不同的文件系统和系统调用&#…

【Xcode Command Line Tools】安装指南

安装指令 xcode-select --install安装 完成安装 验证 $ xcode-select -p /Library/Developer/CommandLineTools

OpenCV-图像拼接

文章目录 一、基本原理二、步骤三、代码实现1.定义函数2.读取图像3.图像配准(1).特征点检测(2).特征匹配 4.透视变换5.图像拼接 四、图像拼接的注意事项 图像拼接是一种将多张有重叠部分的图像合并成一张无缝的全景图或高分辨率图…

Ascend C算子加速:优化与创新

Ascend C算子加速:优化与创新 随着大模型的迅速发展和人工智能计算需求的剧增,优化硬件性能变得尤为重要。针对这一需求,昇腾推出了Ascend Operator Library(AOL)算子加速库,专注于为开发者提供高效的算子…

C++ | 定长内存池 | 对象池

文章目录 C | 定长内存池 | 对象池一、内存池的引入二、代码中的内存池实现 - ObjectPool类(一)整体结构(二)内存分配 - New函数(三)内存回收 - Delete函数 三、内存池在TreeNode示例中的性能测试演示四、脱…

数据结构编程实践20讲(Python版)—03栈

本文目录 03 栈 StackS1 说明S2 示例基于列表的实现基于链表的实现 S3 问题:复杂嵌套结构的括号匹配问题求解思路Python3程序 S4 问题:基于栈的阶乘计算VS递归实现求解思路Python3程序 S5 问题:逆波兰表示法(后缀表达式)求值求解思路Python3程…

进度条(倒计时)Linux

\r回车(回到当前行开头) \n换行 行缓冲区概念 什么现象? 什么现象?? 什么现象??? 自己总结: #pragma once 防止头文件被重复包含 倒计时 在main.c中,windows.h是不可以用的&…

【数据结构】什么是平衡二叉搜索树(AVL Tree)?

🦄个人主页:修修修也 🎏所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 📌AVL树的概念 📌AVL树的操作 🎏AVL树的插入操作 ↩️右单旋 ↩️↪️右左双旋 ↪️↩️左右双旋 ↪️左单旋 🎏AVL树的删…

C++ | Leetcode C++题解之第451题根据字符出现频率排序

题目&#xff1a; 题解&#xff1a; class Solution { public:string frequencySort(string s) {unordered_map<char, int> mp;int maxFreq 0;int length s.size();for (auto &ch : s) {maxFreq max(maxFreq, mp[ch]);}vector<string> buckets(maxFreq 1)…

如何让 Android 的前端页面像 iOS 一样“优雅”?

作者:方英杰&#xff08;崇之&#xff09; 最近在调研前端页面适配 Android 端异形屏的方案&#xff0c;调研过程中发现了一些比较有意思的点&#xff0c;本文主要是做一个总结。 一、提出问题 首先&#xff0c;我们需要知道 Android 上的前端适配面临着什么问题。 问题其实很…

基础岛第3关:浦语提示词工程实践

模型部署 使用下面脚本测试模型 from huggingface_hub import login, snapshot_download import osos.environ[HF_ENDPOINT] https://hf-mirror.comlogin(token“your_access_token")models ["internlm/internlm2-chat-1_8b"]for model in models:try:snapsh…

【Linux】环境变量(初步认识环境变量)

文章目录 1. 环境变量1.1 基本概念 2. 认识常见环境变量2.1 PATH2.2 HOME2.3 SHELL2.4 PWD2.5 USER 3. 理解环境变量 1. 环境变量 在main函数的命令行参数中&#xff0c;有argc、argv、env三个参数。 argc&#xff1a;命令行参数的个数argc&#xff1a;存放每个参数的具体数值…

TOGAF框架在企业数字化转型中从理论到实践的全面应用指南

数字化转型的背景与意义 随着全球技术的快速发展&#xff0c;数字化已成为现代企业生存和发展的核心驱动力。企业数字化转型不仅意味着引入新技术&#xff0c;还要求在业务模式、组织架构和运营方式上进行深度变革。然而&#xff0c;数字化转型的实施通常面临诸多挑战&#xf…

vmvare虚拟机centos 忘记超级管理员密码怎么办?

vmvare虚拟机centos 忘记超级管理员密码怎么办?如何重置密码呢? 一、前置操作 重启vmvare虚拟机的过程中,长按住Shift键 选择第一个的时候,按下按键 e 进入编辑状态。 然后就会进入到类似这个界面中。 在下方界面 添加 init=/bin/sh,然后按下Ctrl+x进行保存退出。 init=/bi…

Unity开发绘画板——04.笔刷大小调节

笔刷大小调节 上面的代码中其实我们已经提供了笔刷大小的字段&#xff0c;即brushSize&#xff0c;现在只需要将该字段和界面中的Slider绑定即可&#xff0c;Slider值的范围我们设置为1~20 代码中只需要做如下改动&#xff1a; public Slider brushSizeSlider; //控制笔刷大…