当前位置: 首页 > news >正文

BEVFormer v2论文阅读

摘要

本文工作

提出了一种具有透视监督(perspective supervision)的新型鸟瞰(BEV)检测器,该检测器收敛速度更快,更适合现代图像骨干。现有的最先进的BEV检测器通常与VovNet等特定深度预训练的主干相连,阻碍了蓬勃发展的图像主干和BEV检测器之间的协同作用。为了解决这一限制,我们优先考虑通过引入透视图监督(perspective view supervision)来简化BEV探测器的优化。为此,我们提出了一个两阶段的BEV检测器,其中来自透视头的proposals被输入入鸟瞰头进行最终预测。

实验效果

为了评估我们的模型的有效性,我们进行了广泛的消融研究,重点是监督的形式和所建议的探测器的类型。在大规模NUSCENES数据集上,对该方法进行了广泛的传统和现代图像主干的验证,取得了新的SOTA结果。

1. 介绍(Introduction)

鸟瞰识别模型吸引了人们对自动驾驶的兴趣,因为它们可以自然地将多个传感器的部分原始观测集成到一个统一的整体3D输出空间中。一个典型的BEV模型建立在一个图像骨干网络上,然后是一个视图转换模块,该模块将每个特定的图像特征提升为BEV特征,然后由BEV特征编码器和一些特定任务的头进行处理。
虽然在设计视图转换器上投入了很多心血,和不断增加的下游任务并入新的识别框架中,对BEV模型中的图像骨干网络的研究受到的关注要少得多。自动驾驶作为一个前沿、高要求的领域,将现代图像骨干网络引入到自动驾驶中是顺理成章的事情。令人惊讶的是,学术界为了大规模深度预训练,选择坚持Vovnet。在本工作中,我们致力于充分发挥现代图像特征提取器在BEV识别中的作用,为未来研究人员在该领域探索更好的图像骨干网络设计打开大门。

然而,简单地使用这些现代图像骨干网络而不进行适当的预训练是不能产生令人满意的结果的。 例如,ImageNet预先训练的ConvNext-XL主干的性能与DDAD-15M预先训练的用于3D目标检测的Vovnet-99不相上下。尽管后者有前者的3.5倍的参数。

我们需要努力适应现代图像骨干的以下问题:

  • 自然图像和自动驾驶场景之间的领域差距。在一般的二维识别任务中预先训练的骨干对三维场景的感知能力不足,尤其是对深度的估计。
  • 目前BEV探测器结构复杂。拿Bevformer作为一个例子。通过视图编码器和对象解码器将三维包围盒和对象类别标签的监督信号从图像主干中分离出来,每个视图编码器和对象解码器都由多层transformer组成。适用于自动驾驶任务的一般2D图像骨干的梯度流被堆叠的transformer 层扭曲。

为了克服上述困难,采用现代图像主干进行BEV识别,我们在Bevformer中引入透视监督,即从透视任务发出的监督信号,并直接应用于主干。它引导骨干学习二维识别任务中缺少的三维知识,克服了BEV检测器的复杂性,极大地方便了模型的优化。

具体来说,我们构建一个透视3D检测头在主干上,以图像特征为输入,直接预测目标对象的三维边界框和类标签 作为辅助检测损失,将该透视头的损失(perspective loss)添加到从BEV头导出的原始损失(BEV loss)中。用相应的损失项联合训练两个分解头。此外,我们发现可以很自然的将这两个探测头组合成一个两级BEV探测器,BEV-Former V2。由于透视头是完全成熟的,它可以在perspective视图中生成高质量的对象建议,我们将其用作第一阶段建议。我们将它们编码为对象查询,并将它们与原始Bevformer中的可学习查询集合在一起,形成混合对象查询,然后将混合对象查询送入第二级DetectionHead以生成最终预测。

我们进行了大量的实验来证实我们提出的透视超视觉的有效性和必要性。perspective loss 促进了图像骨干的自适应,从而提高了检测效率,加快了模型的收敛速度。如果没有这种监督,即使用更长的时间表训练,该模型也无法实现可比的再输出。因此,我们成功地将现代图像主干与BEV模型相适应,在NUSCENES上获得了63.4%的NDS2]测试集。
我们的贡献可概括如下:

  • 我们指出透视监督是使一般2D图像骨干网络适配到BEV模型的关键。我们通过透视图中的检测损失明确地添加了这种监督。
  • 我们提出了一种新型的两级BEV探测器,BEV-former V2。它由透视3D和BEV检测头组成,前者的建议与后者的对象查询相结合。
  • 我们通过将其与最新的图像骨干网络结合起来,并在Nuscenes数据集上实现了对以前最优结果的显著改进,从而显示了我们方法的有效性。

2. 相关工作(Related Works)

2.1. BEV三维物体探测器 (BEV 3D Object Detector)

因为在自动驾驶领域的巨大成功,BEV目标检测器获得了较多的关注。早期的工作主要是利用单目深度估计和逆透视变化生成伪点云。近期的一些工作倾向于把不同视角下的特征通过2D-3D转换得到3D特征。

2.2. 摄像机三维目标检测中的辅助损失 (Auxiliary Loss in Camera 3D Object Detection)

辅助损失在单目3D目标检测中是普遍存在的。但是它们的辅助损失很少在2D监督上有明确的意义。

2.3. 二阶段的三维物体探测器(Two-stage 3D Object Detector)

两阶段检测方法在激光雷达3D目标检测中较为常见,但图像3D目标检测中极为少见。

3. BEVFormer v2

采用现代2D图像骨干网络进行BEV识别,无需进行繁琐的深度预训练,可以提高BEV识别效率,为下游的自动驾驶任务提供了多种可能性。

在这项工作中,我们提出了Bevformer V2,一个两阶段的BEV检测器,它结合了BEV和透视监督,在BEV检测中避免了采用图像骨干的麻烦。

3.1 总体架构(Overall Architecture)

如图1所示 Bevformer V2主要由图像骨干网络、透视3D检测头、空间编码器、改进型时间编码器和BEV检测头五部分组成。与原始Bevformer相比,除了空间编码器以外的所有组件都进行了改造。具体地说,Bevformer V2中使用的所有图像骨干网络都不是用任何自动驾驶数据集或深度估计数据集预先训练的。引入透视3D检测头,以方便2D图像骨干的自适应,并为BEV检测头生成对象proposals。采用了一种新的时域BEV编码器,以更好地融合长期的瞬态信息。BEV检测头现在接受混合对象查询集作为输入。我们将第一阶段的建议和学习到的对象查询结合起来,形成新的混合对象查询,用于第二阶段。

图1: Bevformer V2的整体架构。图像骨干网各生成多视图图像的特征。透视3D头进行透视预测,然后将其编码为对象查询。BEV头为编码器-解码器结构。空间编码器通过聚合多视图图像特征生成BEV特征,其次是时间编码器收集历史BEV特征。译码器以混合对象查询为输入,根据BEV特征进行最终的BEV预测。整个模型用两个检测头的两个损失项L_{pers}L_{bev}训练。

3.2. 透视监督(Perspective Supervision)

我们首先分析了鸟瞰模型的问题,以解释为什么额外的监督是必要的。一个典型的BEV模型在BEV平面上有对应的网格状的特征,其中每个网格聚集来自多视图图像对应的2D像素处的特征的3D信息。它根据BEV特征预测目标对象的3D检测框,我们将这种强加在BEV特征上的监督命名为BEV监督。
以Bevformer作为一个例子,它使用编码器-解码器结构来生成和利用BEV特性。编码器为BEV平面上的每个网格单元分配一组3D参考点,并将它们作为2D参考点投影到多视图图像上。然后,对二维参考点周围的图像特征进行采样,并利用交叉注意力将其聚合为BEV特征。解码器是一个Deformable DETR头,它在BEV坐标中预测3D包围盒,并进行少量固定数量的对象查询。图 2 介绍了由3D到2D视图转换和DETR头引入的BEV监督的两个尚未解决的问题:

  • 对图像特征的监督是隐含的。这种损失直接作用于BEV特征,而经过3D到2D投影和注意力采样(attentive samplin)后,这种损失就间接作用于BEV特征。
  • 对图像特征的监督是稀疏的。只有少量用于目标查询的BEV网格才能导致损失。 因此,只有那些网格的2d参考点周围的稀疏像素获得监督信号。

因此,在训练过程中,BEV检测头依赖于包含在图像特征中的三维信息,但对骨干如何编码这些信息提供了不足的指导。

以前的BEV方法并没有严重地受到这种不一致性的困扰,它们甚至可能没有意识到这个问题。这是因为它们的主干网络要么有相对较小的尺度,要么已经用单目检测头预先训练过3D检测任务。与BEV头相比,透视3D头对图像特征进行每像素预测,为适应2D图像骨干提供更丰富的监督信号。我们将这种强加在图像特征上的监督定义为透视监督。如图2所示,与BEV监督不同的是,透视检测损失直接密集地应用于图像特征。我们假设透视监督显式地引导主干网络感知三维场景并提取有用的信息,如目标的深度和方位。克服了BEV监督的缺点,因此,在训练BEV模型时使用现代图像的主干网路是非常必要的。


透视监督和BEV监督的对比:透视探测器的监督信号密集且直接指向图像特征,而BEV探测器的监督信号稀疏且间接。

下图是BEVformer中采用的是BEV监督:

3.3. 透视损失(Perspective Loss)

正如前一节所分析的,透视监督是优化BEV模型的关键。在Bevformer V2中,我们通过一个辅助透视损失引入透视监督。具体地说,在主干上构建透视3D检测头,以检测透视图中的目标对象。我们采用FCOS3D类似的检测头,它预测3D包围盒的中心位置、大小、方向和投影中心度。该检测头的检测损失被记为透视损失L_{pers}​, 它作为BEV损失L_{bev}的一个组成,用来促进骨干网络的优化。整个模型是以一个总的目标来训练的

3.4. 改进时间编码器(Ravamped Temporal Encoder)

Bevformer使用循环时间自注意力机制来融合历史的BEV特征。但是时间编码器不能充分利用长期的时间信息,简单地将循环步长从4步增加到16步并不能获得额外的性能提高。
我们采用简单的扭曲和联结策略重新设计了Bevformer V2的时间编码器。给定在不同帧k处的BEV特征B_k,我们首先通过第t帧和第k帧之间的转换矩阵T_k^t=[\mathbf{R} \mid \mathbf{t}] \in \mathrm{SE}B_k 双线性变换成B_k^t
然后沿通道方向将先前的BEV特征与当前的BEV特征串联起来,并利用残差块进行维数约简。为了保持与原始设计相似的计算复杂度,我们使用了相同数量的历史BEV特征,但增加了采样间隔。除了从长期时间信息中获益之外,新的时间编码器还打开了在离线三维检测设置中利用未来BEV特征的可能性。

3.5. 两阶段的BEV检测器(Two-stage BEV Detector)

虽然联合训练两个检测头进行训练提供了足够的监督,但我们从不同的角度分别得到了两组检测结果。我们设计了一种新的结构,将两个头集成为两级预测流水线,即两级BEV检测器(two-stage detector),而不是采用BEV头的预测而抛弃透视头的预测或者通过NMS启发式地将两组预测组合。BEV头中的对象解码器,一个detr[3]解码器,使用一组学习到的embeddings作为对象查询,它通过训练来学习目标对象的位置。然而,随机初始化的embeddings需要很长时间来学习合适的位置。此外,学习对象查询对于所有的图像都是固定的,由于对象的分布可能不同,因此可能不够准确。为了解决这些问题,对透视头的预测进行后处理过滤,然后融合到解码器的对象查询中,形成一个两阶段的过程。这些混合对象查询提供了高得分(概率)的候选位置,使BEV头在第二阶段更容易捕获目标对象。
混合对象查询的详细信息将在后面描述。应该注意的是,第一阶段的建议不一定是来自一个透视检测器,例如来自另一个BEV检测器,但实验表明,只有从透视图的预测才对第二级BEV头有帮助。

3.6. 混合对象查询的解码器(Decoder with Hybrid Object Queries)

为了将第一阶段的建议融合到第二阶段的对象查询中,基于在BEVFormer 中使用的Deformable DETR编码器,对BEVFormer v2中使用的BEV 检测头的编码器进行修改。
解码器由层叠交替的自注意层和交叉注意层组成。交叉注意力层是一种deformable的注意力模式,它以以下三个元素作为输入。(1)内容查询(content queries):产生抽样偏移量和关注权重的查询特征。(2)参考点(Reference points):作为每个查询的采样参考,在值特征上的2D点。(3)值特征(Value features):即要注意的BEV特征。在原来的Bevformer中,内容查询是一组学习的嵌入,参考点是从一组学习的位置嵌入中用线性层预测的。在Bevformer V2中,我们从每个特定的头部获得建议,并通过后处理选择其中的一部分。如图3所示,将所选提议的BEV平面上的投影框中心作为每幅图像的参考点,并与位置嵌入生成的每数据集参考点相结合。每幅图像的参考点直接指示出目标物体在BEV平面上的可能位置,使解码器更容易地检测到目标物体。 然而,一小部分物体可能由于遮挡而无法被透视头检测到或出现在两个相邻视图的边界处。为了避免丢失这些对象,我们还保留了原始的每个数据集的参考点,以便通过学习空间先验来捕获它们。

图三:BEVformer v2中的BEV头的解码器。第一阶段的提议(perspective proposals)的投影中心(Projected Centers)被用作每个图像的参考点(Reference Points),它们与每个数据集学习的内容查询(Content Queries)和位置嵌入(Positional Embeddings)结合作为混合对象查询。

4. 实验结果

4.1. nuScenes 3D物体检测benchmark

表1:nuScenes test set的3D物体检测结果

BEVFormer v2在自动驾驶权威数据集nuScenes的3D物体检测任务上超越了已有SOTA方法,NDS为63.4,mAP为55.6,比之前最好的方法分别提升了 2.4和3.1。此外,使用InternImage-B作为backbone的模型也超过了之前的方法,InternImage-B和V2-99参数量相近但没有使用3D预训练,这证明了3D预训练不是必须的。

4.2. 不同视角监督信号的比较

表2:不同视角监督信号的组合的对比

• Perspective Only:只使用perspective head

• BEV Only:只使用BEV head

• Perspective & BEV(BEVFormer v2):使用perspective head和BEV head组成二阶段检测器

• BEV & BEV:使用两个BEV head组成二阶段检测器

Perspective Only和BEV Only对比: BEV head使用多个相机视角的信息确定物体位置,因此具有更高的mAP。但是perspective head有更低的mATE和mAOE,表明它对深度和方向这些3D属性的预测更为准确。

BEV Only和Perspective & BEV对比: BEVFormer v2引入perspective supervision取得了NDS 2.5,mAP 1.9的较大提升,且mATE,mAOE和mAVE显著降低,模型能更好地感知3D场景,获取深度、方向和速度这些属性。

BEV & BEV和Perspective & BEV对比: 对two-stage pipeline进行消融实验,表明two-stage本身并不能提升性能,性能提升完全来自于perspective supervision的引入。

4.3. Perspective Supervision的泛化性

表3:使用不同图像backbone对perspective supervision进行消融实验

Perspective supervision可以泛化到多种不同结构和尺寸的2D图像backbone,均能带来NDS约3.0,mAP约2.5的显著提升。

4.4. 其他实验表现

表4:不同训练时长的对比。Perspective supervision能促进模型的优化,加速收敛
表5:Perspective head和BEV head的不同选择对比。在perspective head的选择中,相比DETR3D head的稀疏预测,DD3D head的密集预测能提供更丰富的监督信号,因此效果更好
表6:BEVFormer v2使用的其他技巧的消融实验,包括图像级别的数据增强、输入序列的时间间隔增加、以及使用双向的时序信息。

5. 结论

现有的工作在设计和改进鸟瞰(BEV)识别模型的检测器方面付出了很大的努力,但它们通常停留在特定的预先训练的主干网络上,而没有进一步探索。在本文中,我们的目标是在 BEV 模型上释放现代图像骨干的全部力量。我们将通用 2D 图像主干网适应 BEV 检测器的优化问题。为了解决这个问题,我们通过添加来自额外视角 3D 检测头的辅助损失,将视角监督引入到 BEV 模型中。此外,我们将两个检测头集成到一个两级检测器中,即BEVFormer v2。成熟的透视头提供第一阶段的对象建议,这些建议被编码到 BEV 头的对象查询中以进行第二阶段的预测。大量的实验验证了我们提出的方法的有效性和通用性。透视监督引导2D图像主干感知自动驾驶的3D场景,帮助BEV模型实现更快的收敛和更好的性能,并且适用于广泛的主干。此外,我们成功地将大规模骨干网适应了 BEV-Former v2,在 nuScenes 数据集上取得了新的 SoTA 结果。我们认为我们的工作为未来的研究人员探索更好的 BEV 模型图像主干设计铺平了道路。

参考文献

BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective Supervision

论文精读:《BEVFormer v2: Adapting Modern Image Backbones to Bird’s-Eye-View Recognition via Perspective 》-CSDN博客

BEVFormer v2:让新型图像主干网络在BEV感知中发挥强大能力|论文解读 - 脉脉 

相关文章:

BEVFormer v2论文阅读

摘要 本文工作 提出了一种具有透视监督(perspective supervision)的新型鸟瞰(BEV)检测器,该检测器收敛速度更快,更适合现代图像骨干。现有的最先进的BEV检测器通常与VovNet等特定深度预训练的主干相连,阻碍了蓬勃发展…...

FFMPEG C++封装(二)

4 详细设计 这章是FFMPEG C封装库的详细设计。 4.1 Init 该模块初始化FFMPEG库。 4.1.1 Init定义 namespace media { namespace sdk { void MEDIASDK_EXPORT Init(); } }函数说明: Init 初始化FFMPEG库,该函数可调用多次。 4.1.2 Init实现 name…...

使用unplugin-auto-import页面不引入api飘红

解决方案:. tsconfig.json文件夹加上 {"compilerOptions": {"target": "ES2020","useDefineForClassFields": true,"module": "ESNext","lib": ["ES2020", "DOM", &q…...

八大技术趋势案例(虚拟现实增强现实)

科技巨变,未来已来,八大技术趋势引领数字化时代。信息技术的迅猛发展,深刻改变了我们的生活、工作和生产方式。人工智能、物联网、云计算、大数据、虚拟现实、增强现实、区块链、量子计算等新兴技术在各行各业得到广泛应用,为各个领域带来了新的活力和变革。 为了更好地了解…...

Vue实现SQL语句关键字高亮显示?

SQL关键字高亮 要在Vue中实现SQL语句中关键字的高亮显示&#xff0c;你可以使用类似的方法&#xff0c;但是你需要根据SQL语法的特点来解析并高亮显示关键字。以下是一个示例代码&#xff0c;演示了如何在Vue中实现SQL语句关键字的高亮显示。 <template><div><…...

开始时间大于结束时间

1.dom中代码&#xff0c;监听所选日期值的变化&#xff0c;并把需要比较的时间字段作为参数传到监听方法中&#xff0c; <el-form-item label"起始日期" prop"startTime"><el-date-picker clearable size"small":disabled"isDisa…...

Java中 List 集合,通过 Stream 流进行排序总结

一、数据准备 public class OrderTest {private String channelCode;private BigDecimal rate;// 省略 getter、setter、toString()、constructor }List<OrderTest> orderTestList new ArrayList<>();OrderTest z09 new OrderTest("Z09", new BigDeci…...

1688中国站按关键字搜索工厂数据 API

公共参数 名称类型必须描述keyString是申请免费调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认y…...

YOLOV8逐步分解(2)_DetectionTrainer类初始化过程

接上篇文章yolov8逐步分解(1)--默认参数&超参配置文件加载继续讲解。 1. 默认配置文件加载完成后&#xff0c;创建对象trainer时&#xff0c;需要从默认配置中获取类DetectionTrainer初始化所需的参数args&#xff0c;如下所示 def train(cfgDEFAULT_CFG, use_pythonFalse…...

Java是用什么语言写的?PHP呢?

Java底层是C语言。 Sun公司研发人员根据嵌入式软件的要求&#xff0c;对C进行了改造&#xff0c;去除了留在C的一些不太实用及影响安全的成分&#xff0c;并结合嵌入式系统的实时性要求&#xff0c;开发了一种称为Oak的面向对象语言。而后&#xff0c;经过迭代更新&#xff0c…...

SpringBoot Redis的使用

官方文档&#xff1a; 官方文档&#xff1a;Spring Data Redis :: Spring Data Redis 和jedis一样&#xff0c;SpringBoot Redis 也可以让我在Java代码中使用redis&#xff0c;同样也是通过引入maven依赖的形式。 加速访问github: 使用steam可以免费加速访问github Spring…...

数据仓库——维度表特性

企业信息化工厂 数据集市中的一致性&#xff0c;由于企业信息化工厂的数据集市是从集成仓库中获得信息的&#xff0c;因此至少从维度建模的角度来看&#xff0c;一致性维护的问题减少了。尽管合并不同数据源的问题依然在&#xff0c;但是负担主要在设计者身上。尽管压力降低了…...

从电荷角度理解开关电容中的电荷守恒

目录 一些铺垫电容的电荷量的解释电荷流入流出对节点电压的影响 从电荷角度理解开关电容加法器中的电荷守恒以开关电容积分器为例说明什么样的节点是电荷守恒 一些铺垫 电容的电荷量的解释 对于一个1F的电容&#xff0c;当它的压差为1V时&#xff0c;它所携带的电荷量是QCU1库…...

1.7.1 python 作业 15道

1、求出1 / 1 1 / 3 1 / 5……1 / 99的和 (1分之一1分之三1分支5....) sum0 for i in range(1,100,2): sum 1/i sum; print(sum) 2、用循环语句&#xff0c;计算2 - 10之间整数的循环相乘的值 &#xff08;2*3*4*5....10) sum 1 for i in range(2,11): sum sum *…...

synchronized 和 ReentrantLock 的区别是什么

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:synchronized 和 ReentrantLock 的区别是什么 1. 获取锁的方式 synchronized:synchronized的锁获取是隐式的。当线程进入synchronized修饰的代码…...

大话设计模式之迪米特法则

迪米特法则&#xff0c;也称为最少知识原则&#xff08;Law of Demeter&#xff09;&#xff0c;是面向对象设计中的一个重要原则&#xff0c;其核心思想是降低耦合度、减少对象之间的依赖关系&#xff0c;从而使系统更加灵活、易于维护和扩展。 根据迪米特法则&#xff0c;一…...

KSD测试系统使用方法和注意事项

①下载链接在最顶部&#xff1b; ②安装方法&#xff1a;应该先将测试设备绑定在假人身上&#xff0c;测试设备不能过度往下拉&#xff0c;传感器绑在脖子上&#xff0c;切记最后才开传感器开关&#xff01;&#xff01;&#xff01;开传感器后3秒内不要碰测试设备衣服&#x…...

IT服务营销管理案例分析题

习题一 企业随着业务的蓬勃发展&#xff0c;所投入的基础设施资源不断增加。企业员工数倍数增长&#xff0c;办公场地、办公环境等要求也越来越高。 可是该企业的IT部门人员短缺&#xff0c;对IT管理还处于被动的“救火”阶段&#xff0c;每天至少15个突发故障&#xff0c;故障…...

NRF52832修改OTA升级时的bootloader蓝牙MAC

NRF52832在OTA升级时&#xff0c;修改了APP的蓝牙MAC会导致无法升级&#xff0c;原因是OTA程序的蓝牙MAC没有被修改所以手机扫描蓝牙时无法连接 解决办法 在bootloader的程序里面加入修改蓝牙mac地址的代码实现原理&#xff1a; 在bootloader蓝牙广播开启之前修改蓝牙mac 通…...

# Python 编程入门教程

欢迎来到 Python 编程入门教程!Python 是一种简单易学、功能强大的编程语言,适用于各种应用场景,从简单的脚本到大型软件开发项目。无论你是初学者还是有一定编程经验的开发者,本教程都将为你提供全面的学习路径,帮助你掌握 Python 编程的基础知识和技能。 ## 目录 1. 简…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Mac下Android Studio扫描根目录卡死问题记录

环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中&#xff0c;提示一个依赖外部头文件的cpp源文件需要同步&#xff0c;点…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

如何应对敏捷转型中的团队阻力

应对敏捷转型中的团队阻力需要明确沟通敏捷转型目的、提升团队参与感、提供充分的培训与支持、逐步推进敏捷实践、建立清晰的奖励和反馈机制。其中&#xff0c;明确沟通敏捷转型目的尤为关键&#xff0c;团队成员只有清晰理解转型背后的原因和利益&#xff0c;才能降低对变化的…...