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 数据集上表现出色,有望在未来成为一个强大的交通模拟器。未来工作将探索视频生成,以进一步提升模型的应用潜力。

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

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

相关文章

中安未来 OCR—— 开启文字识别新时代

在数字化的浪潮中,高效准确的文字识别技术正发挥着越来越重要的作用。今天,我要向大家介绍一款令人惊艳的 OCR 解决方案 —— 中安未来 OCR。 一、初识中安未来 OCR 中安未来 OCR 以其强大的功能和卓越的性能,在众多文字识别工具中脱颖而出。…

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo

森林火灾检测数据集 7400张 森林火灾 带标注 voc yolo 森林火灾检测数据集 名称 森林火灾检测数据集 (Forest Fire Detection Dataset) 规模 图像数量:共7780张图像。类别:仅包含一种类别——火源。 数据划分 训练集 (Train):通常占总数据…

死锁的成因与解决方案

目录 死锁的概念与成因 栗子 死锁的情况 哲学家问题 如何避免死锁 必要条件 死锁的解决方案 总结 死锁的概念与成因 多个线程同时被阻塞,他们中的其中一个或者全部都在等待某个资源的释放,导致线程无限期被阻塞,程序无法停止 栗子 我和美女a出去吃饺子,吃饺子要醋和酱油…

VScode 自定义代码配色方案

vscode是一款高度自定义配置的编辑器, 我们来看看如何使用它自定义配色吧 首先自定义代码配色是什么呢? 看看我的代码界面 简而言之, 就是给你的代码的不同语义(类名, 函数名, 关键字, 变量)等设置不同的颜色, 使得代码的可读性变强. 其实很多主题已经给出了定制好的配色方案…

国庆刷题(day1)

C语言刷题: C刷题: 全对实在是太难了,我尽力了。。

野火STM32F103VET6指南者开发板入门笔记:【1】点亮RGB

硬件介绍 提示:本文是基于野火STM32F103指南者开发板所写例程,其他开发板请自行移植到自己的工程项目当中即可。 RGB-LEDPin引脚:低电平-点亮,高电平-熄灭REDPB5GREENPB0BLUEPB1 文章目录 硬件介绍软件介绍:结构体方式…

SQL Server中关于个性化需求批量删除表的做法

在实际开发中,我们常常会遇到需要批量删除表,且具有共同特征的情况,例如:找出表名中数字结尾的表之类的,本文我将以3中类似情况为例,来示范并解说此类需求如何完成: 第一种,批量删除…

leetcode_198_打家劫舍

思路:首先定义一个数组对于dp[i]读作1->i能获取的最大利益,第i个房屋只有"偷"和不"偷"两种情况,分别进行讨论 "偷": 既然"偷"了 i那就肯定不能偷i-1了,但是为了使"偷"的尽可能多除了必…

51单片机的串口

目录 一、串口的介绍 1、硬件电路 二、51单片机的UART 1、串口参数及时序图 2、串口模式图 3、串口和中断系统结构图 4、串口相关寄存器 三、串口向电脑发送数据 1、通过STC-ISP软件 四、电脑通过串口控制LED 1、主函数 2、 UART串口通信模块 一、串口的介绍 串口是一…

在Ubuntu 20.04中安装CARLA

0. 引言 CARLA (Car Learning to Act) 是一款开源自动驾驶模拟器,其支持自动驾驶系统全管线的开发、训练和验证(Development, Training, and Validation of autonomous driving systems)。Carla提供了丰富的数字资产,例如城市布局…

在 TextForm 字段后显示图标

问题 Expanded(child: Column(mainAxisAlignment: MainAxisAlignment.start,children: [SizedBox(height: 40),Row(children: [SizedBox(width: 8),//MENUIcon(Icons.menu,size: 34,color: AppColors.black,),Spacer(),//LOGOSizedBox(height: 60,width: 100,child: Image.ass…

Pikachu-xss实验案例-钓鱼

攻击思路:提供一个与攻击网站相似的登陆的钓鱼页面;让用户输入登陆信息 查看项目源代码,首先访问 fish.php ,提供输入的登陆框, 从登陆框获取到账号、密码后,重定向到xfish.php 做保存; 因此,需…

PCL 点云高斯滤波

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1 高斯滤波实现 2.1.2 可视化函数 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接: PCL点云算法与项目实战案例汇总(长期更新&#xf…

HCIP-HarmonyOS Application Developer 习题(四)

1、以下哪个Harmonyos的AI能力可以提供文档翻拍过程中的辅助增强功能? A.文档检测矫正 B.通用文字识别 C.分词 D.图像超分辨率 答案:A 分析:文档校正提供了文档翻拍过程的辅助增强功能,包含两个子功能: 文档检测:能够…

好用的股票预测八大算法的Python实现

股票预测算法通常涉及时间序列分析、统计学、机器学习和深度学习等多种方法。以下是经典的、常见的十大股票预测算法及其Python实现。这些算法各有优势,可以用于不同的市场预测场景。以下代码实现中,我们将使用yfinance下载数据,并展示各算法…

关于鸿蒙next 调用系统权限麦克风

使用app的时候都清楚,想使用麦克风、摄像头,存储照片等,都需要调用系统的权限,没有手机操作系统权限你也使用不了app所提供的功能,虽然app可以正常打开,但是你需要的功能是没办法使用的。今天把自己在鸿蒙学…

netty之NettyServer字符串解码器

前言 在实际开发中,server端接收数据后我们希望他是一个字符串或者是一个对象类型,而不是字节码,那么; 在netty中是否可以自动的把接收的Bytebuf数据转String,不需要我手动处理? 答;有&#xff…

OpenGL ES MVP/变换投影矩阵(8)

OpenGL ES MVP/变换投影矩阵(8) 简述 通过前面几节的学习,目前我们已经可以渲染自己想要的图像,也可以通过纹理加载图片进行渲染。接下来我们来学习一下MVP,这里的MVP不是Android应用开发里的框架MVP,而是Model,View…

TCP/UDP初识

TCP是面向连接的、可靠的、基于字节流的传输层协议。 面向连接:一定是一对一连接,不能像 UDP 协议可以一个主机同时向多个主机发送消息 可靠的:无论的网络链路中出现了怎样的链路变化,TCP 都可以保证一个报文一定能够到达接收端…

鸿蒙harmonyos next flutter混合开发之开发package

​​​​​​ 创建 package flutter create --templatepackage mypackage package代码如下: 创建hello_world.dart ///HelloWorld返回hello world 拼接param class HelloWorld {String helloWorld(String param) > "hello world ${param}"…