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++上进行改进的。主要在两个方面进行了提升:
- 使用了原生的lidar数据来提供更细致的语义信息
- 使用了更好的更具有区分度的anchor来提升model的轨迹回归能力
除了上面两点外,采用了一个简单的ensemble技巧来进一步提升最后的表现。在soft mAP上达到了SOTA。
Introduction
MTR系列采用了场景encode,和使用了intention query的多模轨迹预测decode。本文爱之前的基础上额外使用了原始lidar数据,可以更好地捕捉一些HD map cover不到的场景信息,比如植被和建筑物。但其实这些对于行人的行为有很大的影响。而之前的MTR++存在回归loss很大的问题,这是因为anchor比较稀疏。为此,更新为更好的anchor生成方式。
Method
- 增加了lidar的3D信息,使用一个encoder来提取feature并喂到decoder的输入中
- 每个agent会根据mode动态获取有价值的point feature
- 最后用了一个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这篇文章,大概的意思是目前主流的做法有:
- anchor based:输入anchor的end point,gt轨迹直接监督最接近gt的end point对应的轨迹。
- 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 数据集上表现出色,有望在未来成为一个强大的交通模拟器。未来工作将探索视频生成,以进一步提升模型的应用潜力。
相关文章:
51c自动驾驶~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/11466109 #HTCL 超过所有视觉方案!HTCL:分层时间上下文问鼎OCC 本文是对ECCV2024接受的文章 HTCL: 的介绍,HTCL在SemanticKITTI基准测试中超过了所有基于相机的方法,甚至在和…...
Star 3w+,向更安全、更泛化、更云原生的 Nacos3.0 演进
作者:席翁 Nacos 社区刚刚迎来了 Star 突破 30000 的里程碑,从此迈上了一个新的阶段。感谢大家的一路支持、信任和帮助! Nacos /nɑ:kəʊs/是 Dynamic Naming and Configuration Service 的首字母简称,定位于一个更易于构建云原…...
PHP魔幻(术)方法
PHP中的魔幻方法,也被称为魔术方法(Magic Methods),是一组具有特殊功能的方法。这些方法在PHP中有固定的名称,并且会在特定的时机自动被PHP调用,而无需开发者显式调用。它们通常用于执行一些特殊的操作&…...
VS开发 - 静态编译和动态编译的基础实践与混用
目录 1. 基础概念 2. 直观感受一下静态编译和动态编译的体积与依赖项目 3. VS运行时库包含哪些主要文件(从VS2015起) 4. 动态库和静态库混用的情况 5. 感谢清单 1. 基础概念 所谓的运行时库(Runtime Library)就是WINDOWS系统…...
Golang | Leetcode Golang题解之第451题根据字符出现频率排序
题目: 题解: func frequencySort(s string) string {cnt : map[byte]int{}maxFreq : 0for i : range s {cnt[s[i]]maxFreq max(maxFreq, cnt[s[i]])}buckets : make([][]byte, maxFreq1)for ch, c : range cnt {buckets[c] append(buckets[c], ch)}an…...
零信任如何增强网络物理系统 (CPS) 安全性
远程访问对于管理关键基础设施至关重要,因为它允许企业优化和扩展运营并保持效率。然而,它也带来了许多安全漏洞,而且随着连接设备数量的增加,这些漏洞只会越来越多。 到 2025 年,企业和消费者环境中的物联网设备数量…...
V3D——从单一图像生成 3D 物体
导言 论文地址:https://arxiv.org/abs/2403.06738 源码地址:https://github.com/heheyas/V3D.git 人工智能的最新进展使得自动生成 3D 内容的技术成为可能。虽然这一领域取得了重大进展,但目前的方法仍面临一些挑战。有些方法速度较慢&…...
计算机网络期末复习真题(附真题答案)
前言: 本文是笔者在大三学习计网时整理的笔记,哈理工的期末试题范围基本就在此范畴内,就算真题有所更改,也仅为很基础的更改数值,大多跑不出这些题,本文包含简答和计算等大题,简答的内容也可能…...
Unity 的 UI Event System 是一个重要的框架
Unity 的 UI Event System 是一个重要的框架,用于处理用户界面中的输入事件。以下是它的主要特点和功能: 1. 事件管理 UI Event System 负责捕获和管理来自用户的输入事件,如鼠标点击、触摸、键盘输入等。 2. 事件传播 事件通过层次结…...
第十三章 集合
一、集合的概念 集合:将若干用途、性质相同或相近的“数据”组合而成的一个整体 Java集合中只能保存引用类型的数据,不能保存基本类型数据 数组的缺点:长度不可变 Java中常用集合: 1.Set(集):集合中的对象不按特定方式排序&a…...
子非线程池中物
线程池,又好上了 有任务队列 任务要处理就直接放到里面 预先创建好线程,本质上也是一个生产消费模型 线程池真是麻烦啊 我们可以直接沿用之前写过的代码,Thread.hpp: #pragma once #include <iostream> #include <functional&…...
Unraid的cache使用btrfs或zfs?
Unraid的cache使用btrfs或zfs? 背景:由于在unraid中添加了多个docker和虚拟机,因此会一直访问硬盘。然而,单个硬盘实在难以让人放心。在阵列盘中,可以通过添加校验盘进行数据保护,在cache中无法使用xfs格式…...
微服务实战——平台属性
平台属性 中间表复杂业务 /*** 获取分类规格参数(模糊查询)** param params* param catelogId* param type type"base"时查询基础属性,type"sale"时查询销售属性* return*/ Override public PageUtils listByCatelogId…...
半监督学习与数据增强(论文复现)
半监督学习与数据增强(论文复现) 本文所涉及所有资源均在传知代码平台可获取 文章目录 半监督学习与数据增强(论文复现)概述算法原理核心逻辑效果演示使用方式 概述 本文复现论文提出的半监督学习方法,半监督学习&…...
css3-----2D转换、动画
2D 转换(transform) 转换(transform)是CSS3中具有颠覆性的特征之一,可以实现元素的位移、旋转、缩放等效果 移动:translate旋转:rotate缩放:scale 二维坐标系 2D 转换之移动 trans…...
SQL进阶技巧:统计各时段观看直播的人数
目录 0 需求描述 1 数据准备 2 问题分析 3 小结 如果觉得本文对你有帮助,那么不妨也可以选择去看看我的博客专栏 ,部分内容如下: 数字化建设通关指南 专栏 原价99,现在活动价39.9,十一国庆后将上升至59.9&#…...
Stream流的终结方法
1.Stream流的终结方法 2.forEach 对于forEach方法,用来遍历stream流中的所有数据 package com.njau.d10_my_stream;import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.function.Consumer; import java.util…...
JavaWeb——Vue组件库Element(4/6):案例:基本页面布局(基本框架、页面布局、CSS样式、完善布局、效果展示,含完整代码)
目录 步骤 基本页面布局 基本框架 页面布局 CSS样式 完善布局 效果展示 完整代码 Element 的基本使用方式以及常见的组件已经了解完了,接下来要完成一个案例,通过这个案例让大家知道如何基于 Element 中的各个组件制作一个完整的页面。 案例&am…...
【c++】 模板初阶
泛型编程 写一个交换函数,在学习模板之前,为了匹配不同的参数类型,我们可以利用函数重载来实现。 void Swap(int& a, int& b) {int c a;a b;b c; } void Swap(char& a, char& b) {char c a;a b;b c; } void Swap(dou…...
R 语言 data.table 大规模数据处理利器
前言 最近从一个 python 下的 anndata 中提取一个特殊处理过的单细胞矩阵,想读入R用来画图(个人比较喜欢用R可视化 ),保存之后,大概几个G的CSV文件,如果常规方法读入R,花费的时间比较久&#x…...
Java 静态代理详解:为什么代理类和被代理类要实现同一个接口?
在 Java 开发中,代理模式是一种常用的设计模式,其中代理类的作用是控制对其他对象的访问。代理模式分为静态代理和动态代理,在静态代理中,代理类和被代理类都需要实现同一个接口。这一机制为实现透明的代理行为提供了基础…...
OpenCV C++霍夫圆查找
OpenCV 中的霍夫圆检测基于 霍夫变换 (Hough Transform),它是一种从边缘图像中识别几何形状的算法。霍夫圆检测是专门用于检测图像中的圆形形状的。它通过将图像中的每个像素映射到可能的圆参数空间,来确定哪些像素符合圆形状。 1. 霍夫变换的原理 霍夫…...
H.264编解码介绍
一、简介 H.264,又称为AVC(Advanced Video Coding),是一种广泛使用的视频压缩标准。它由国际电信联盟(ITU)和国际标准化组织(ISO)联合开发,并于2003年发布。 H.264的发展历史可以追溯到上个世纪90年代。当时,视频压缩技术的主要标准是MPEG-2,但它在压缩率和视频质…...
Java | Leetcode Java题解之第450题删除二叉搜索树中的节点
题目: 题解: class Solution {public TreeNode deleteNode(TreeNode root, int key) {TreeNode cur root, curParent null;while (cur ! null && cur.val ! key) {curParent cur;if (cur.val > key) {cur cur.left;} else {cur cur.rig…...
【CViT】Deepfake Video Detection Using Convolutional Vision Transformer
文章目录 Deepfake Video Detection Using Convolutional Vision Transformerkey points**卷积视觉变压器**FLViT实验总结Deepfake Video Detection Using Convolutional Vision Transformer 会议/期刊:2021 作者: key points 提出了一种用于检测深度伪造的卷积视觉变压器…...
安卓主板_MTK4G/5G音视频记录仪整机及方案定制
音视频记录仪方案,采用联发科MT6877平台八核2* A78 6* A55主频高达2.4GHz, 具有高能低耗特性,搭载Android 12.0智能操作系统,可选4GB32GB/6GB128GB内存,运行流畅。主板集成NFC、双摄像头、防抖以及多种无线数据连接,支…...
Qt 教程全集目录公布(方便查阅)
点击上方"蓝字"关注我们 Qt 安装 以下是常见安装方法和软件获取 Qt4Qt5Qt6版本下载(在线和离线)【网址】...
云计算SLA响应时间的matlab模拟与仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 用matlab模拟,一个排队理论。输入一堆包,经过buffer(一个或者几个都行)传给server,这些包会在buffer里…...
ARTS Week 42
Algorithm 本周的算法题为 2283. 判断一个数的数字计数是否等于数位的值 给你一个下标从 0 开始长度为 n 的字符串 num ,它只包含数字。 如果对于 每个 0 < i < n 的下标 i ,都满足数位 i 在 num 中出现了 num[i]次,那么请你返回 true …...
10.2学习
1.IOC控制反转 IoC(Inverse of Control:控制反转)是⼀种设计思想,就是将原本在程序中⼿动创建对象的控制权,交由Spring框架来管理。 IoC 在其他语⾔中也有应⽤,并⾮ Spring 特有。 IoC 容器是 Spring⽤来实现 IoC …...
网站主关键词/地推平台
使用Spring的声明式事务----Annotation注解方式 博客分类: 声明式事务 Spring Java Spring声明式事务Annotation这里列一个小的demo工程,直接利用Spring的jdbcTemplate访问Mysql数据库。 工程结构: 数据库中的tbl_student表结构如下…...
企业网站建设方案流程/百度客户端官网
1、float整数计算误差 案例:会员积分字段采用float类型,导致计算会员积分时,7位整数的数据计算结果出现误差。 原因:超出float精度范围,无法精确计算。 float和double的精度是由尾数的位数来决定的。浮点数在内存中是按…...
寻花问柳专注做一家男人最爱的网站/长沙网络营销公司排名
公众号:MarkerHub(关注获取更多项目资源)开发文档目录:本周热议本周热议,本周发表并且评论最多的文章排行,如果直接查询数据库的话很快就可以实现,只需要限定一下文章创建时间,然后更加评论数量倒叙取前几篇…...
seo包括网站建设吗/友情链接交换统计表
课程目标学习HTML5移动端混合应用开发,并完成微信项目实战,本课程介绍了MUI框架的使用,以及Hbublder工具的基本操作。适用人群本课程适合具有HTML与CSS基础,了解HTML5及CSS3,并想跨入HTML5移动端混合应用开发领域的同仁…...
青岛有做网站的吗/网络推广引流最快方法
去除上边和右边的坐标边框,指定data,设置的bottom(也就是指定的x轴)绑定到y轴的0这个点上 #get current axis 获得坐标轴对象 ax plt.gca()#去除上边 和 右边的 坐标边框 ax.spines[right].set_color(none) ax.spines[top].set_color(none)#指定 data …...
看小视频的浏览器有哪些/sem和seo
如题,Oracle数据库里面有一批记录,现在我想根据其中一个叫:txn_date的字段来查询记录,在Hbm文件中我配置了该HQL,如下所示:select {job.*} from Newsletter_Message jobwhere to_char(:dateType,yyyy-mm-dd hh24:mi) t…...