文献总结:AAAI2025-UniV2X-End-to-end autonomous driving through V2X cooperation

news2025/4/15 2:03:34

UniV2X

  • 一、文章基本信息
  • 二、文章背景
  • 三、UniV2X框架
    • 1. 车路协同自动驾驶问题定义
    • 2. 稀疏-密集混合形态数据
    • 3. 交叉视图数据融合(智能体融合)
    • 4. 交叉视图数据融合(车道融合)
    • 5. 交叉视图数据融合(占用融合)
    • 6. 规划输出 Planning Output
  • 四、实验
    • 1. 实验设置
    • 2. DAIR-V2X上的实验结果
    • 3. 关于可靠性的消融实验
  • 五、总结

一、文章基本信息

标题End-to-end autonomous driving through V2X cooperation
会议AAAI(Association for the Advancement of Artificial Intelligence)
作者Haibao Yu;Wenxian Yang;Jiaru Zhong;Zhenwei Yang;Siqi Fan;Ping Luo;Zaiqing Nie
主要单位The University of Hong Kong;AI Industry research (AIR), Tsinghua University
日期v1:2024年3月31日;v3:2024年12月24日
论文链接https://arxiv.org/abs/2404.00717
代码链接https://github.com/AIR-THU/UniV2X

摘要: 通过车联网通信来利用自车和路侧传感器的数据已经成为高阶自动驾驶的前景方法。然而,目前的研究主要聚焦于提高单一模块,而不是采用端到端的学习来优化最终规划性能,导致数据潜力未能充分利用。在这篇文章中,作者引入了一个UniV2X的先进协同自动驾驶框架,将不同视角下的所有关键的驾驶模块无缝地融合到一个统一的框架下。作者提出了一个稀疏-密集混合的数据传输和融合机制来促进车辆和基础设施的协同,主要有三个优点:

1. 同时提升了智能体感知、在线地图和占用预测等中间模块性能,最终提高了规划性能
2. 数据传输友好和通信条件限制
3. 具有混合数据可解释性可靠数据融合

作者在真实世界中的协同驾驶数据集——DAIR-V2X上,对UniV2X进行了测试,同时复现了几个基准方法。实验结果证明了UniV2X在显著提升规划性能和所有中间模块的性能方面是有效的。

文章框架:
在这里插入图片描述

二、文章背景

尽管自动驾驶通过深度学习的融合取得了巨大的发展,但由于感知距离受限、感知信息不充分,单车自动驾驶仍面临着巨大的挑战,尤其是对于依赖经济的摄像头作为传感器的车辆。通过车联网通信来利用具有更广阔视野的路侧传感器,在提高高阶自动驾驶方面展示了巨大的潜力。现有的利用额外感知数据来辅助提升感知精度的方法,在目标检测、目标追踪、语义分割、定位等单独的任务上表现较好,但忽视了最终的规划增强。最大的难点在于:单独的任务目标与最终轨迹规划的目标不一致。因此,利用车载和路侧传感器数据直接优化最终规划输出的方法变得必要。在本文中,作者聚焦于车辆基础设施协同自动驾驶(vehicle-infrastructure cooperative autonomous driving, VICAD)。
在这里插入图片描述
车辆基础设施协同自动驾驶问题可以定义为:在带宽限制条件下,采用多视图传感器输入的以规划为主的优化问题。与单车自动驾驶相比,车辆基础设施协同自动驾驶在处理端到端学习时,面临着额外的挑战:

  • 传输的基础设施数据必须是有效的。它应既能增强关键模块的性能,又能提升自动驾驶的最终规划性能。
  • 数据必须是传输友好型的。受实时性要求和有限通信条件的驱动,最小化传输成文对于降低通信带宽消耗和减少延迟直观重要。
  • 传输数据必须是可靠的。车辆需要可解释的信息来有效地避免通信攻击和数据损坏带来的安全问题。

作者对比了一些现有的协同感知方法,并得出了以下判断:这些现有解决方案依赖于一种普通的方法,利用简单的网络来优化规划和控制输出。这种模式缺乏明确的模块,损害了安全保障和可解释性。尤其是在复杂的城市环境中,这种方法在确保驾驶系统的可靠性方面存在不足。

在这里插入图片描述
所以,作者受UniAD的设计理念启发,采用一种模块化的端端自动驾驶范式。除了最终的轨迹规划结果,还能对比和处理以下三个常见的任务:

  • 智能体感知(agent perception): 包括动态障碍物的3D目标检测、追踪及运动预测
  • 语义地图分割(online map):用于在线地图绘制的道路元素检测(尤其是车道)
  • 网格占用预测(grid-occupancy prediction):用于通用障碍物感知的网格占用预测

在传输和跨视图交互中,我们将智能体感知和道路元素检测归类为实例级表示,将占用预测归类为场景级表示。本文传输智能体查询和车道查询,以进行跨视图智能体感知交互和在线地图绘制交互。本文传输占用概率图,考虑到其在场景级占用中的密集特性,用于跨视图占用交互。这种传输方式称为稀疏 - 密集混合传输,分别在空间和特征维度上平衡了稀疏性和密集性。

本文的主要贡献如下:

  • 开发了首个用于车辆与基础设施协同自动驾驶的模块化端到端框架
  • 设计了一种稀疏 - 密集混合传输和跨视图数据交互方法
  • 复现了多种协同方法作为baseline,并用DAIR-V2X呈现了UniV2X

三、UniV2X框架

本部分展示了UniV2X的整体框架:
在这里插入图片描述
自车系统沿用了2023CVPR best paper: UniAD的架构1:包括TrackFormer, Mapformer和OccFormer几个主要的模块。

与UniAD最主要的区别应该是在于如何将路端和车端对齐,为此,作者提出了三个主要的东西分别是:

  • 稀疏密集混合数据: 将agent queries和lane queries作为稀疏数据,将occupied probability map作为密集数据,来进行混合数据传输,降低通信成本
  • 时间同步:采用特征流的概念
  • 空间同步:时间同步采用BEV+坐标变换
  • 自车消除:路侧占用预测中消除自车模块

1. 车路协同自动驾驶问题定义

1.1 系统输入输出

  • 输入:纯视觉输入,包括自车图像 I v ( t ) ∣ t ≤ t v {I_{v}(t)|t\le t_{v}} Iv(t)ttv和车辆在 t v t_{v} tv时刻的位姿 M v ( t v ) M_{v}(t_{v}) Mv(tv);路侧基础设施图像 I i ( t ) ∣ t ≤ t i {I_{i}(t)|t\le t_{i}} Ii(t)tti和基础设施在 t i t_{i} ti时刻的位姿 M i ( t i ) M_{i}(t_{i}) Mi(ti),实践中,时间 t i t_i ti应该比 t v t_v tv更早。
  • 输出:预测自车在未来时间步 t = t v + 1 , … , t p r e d t=t_{v}+1,\dots,t_{pred} t=tv+1,,tpred的坐标

1.2 评价指标

L2误差 (L2 error):用于评估规划的车辆未来轨迹与实际行驶轨迹之间的偏差程度。计算方法是对预测轨迹点和实际轨迹点对应坐标差值的平方和求平方根,其值越小,代表规划轨迹越接近实际轨迹,规划性能越好。

碰撞率 (collision rate):指在一定的测试或行驶场景下,车辆发生碰撞的次数与总行驶次数(或总行驶时间、总行驶里程等相关指标)的比例。该指标反映了车辆在行驶过程中发生碰撞的可能性,碰撞率越低,说明自动驾驶系统在避免碰撞方面的性能越出色.

道路偏离率(off-road rate):表示车辆偏离正常行驶道路区域的频率或比例。通过统计车辆离开可行驶区域(如超出车道范围、驶入禁止区域等)的次数,并与总行驶次数(或总行驶时间等)相除得到。道路偏离率低意味着车辆能较好地保持在规定的行驶区域内,规划路径能有效引导车辆遵守交通规则和维持在安全行驶区域。

每秒传输的比特数量(Bytes Per Second, BPS): 用于量化从基础设施每秒传输到自动驾驶车辆的数据量,它考虑了传输频率

1.3 面临的挑战

  • 受实际通信条件的限制,应向车辆传输更少的基础设施数据,以最小化带宽使用并减少延迟。
  • 无线通信会导致延迟,这可能会在数据融合时造成时间上的不一致。
  • 在的通信攻击和数据损坏可能会使传输的数据不可信。

2. 稀疏-密集混合形态数据

这部分说明了如何在基础设施系统中生成用于传输的稀疏-密集混合数据。作者主要关注车道线和人行横道元素。在传输过程中,我们使用分类解码器生成的边界框过滤掉得分较低的查询,仅传输 N l i n f N_{l}^{inf} Nlinf​个有效的车道查询 { Q L i n f } \{Q_{L}^{inf}\} {QLinf},其特征维度为 256,以及它们相应的参考点。

UniAD中的原始 OccFormer 仅考虑与智能体查询相关的实例级占用情况,并进行多步预测。然而,占用情况是一般障碍物检测中目标感知的补充因素,传输多个概率图会产生巨大的传输成本。为了解决这些挑战,我们保留通过像素级注意力获得的大小为 (200, 200, 256) 的密集特征。

首先,使用多层感知器(MLP)将密集特征转换为大小为 (200, 200) 的 BEV 占用概率图,记为 p i n f p^{inf} pinf
随后,采用特征流预测方法,利用一个额外的概率流模块通过线性运算来表示 T 步的概率图,公式为:
P f u t u r e ( t ) = P 0 + t ∗ P 1 P_{future}(t)=P_{0}+t*P_{1} Pfuture(t)=P0+tP1
其中, P 0 P_{0} P0表示当前的 BEV 概率图, P 1 P_{1} P1表示相应的 BEV 概率流。传输 T 步的占用概率图需要 T × 200 × 200 T×200×200 T×200×200个浮点数,而 UniV2X 仅需要 2 × 200 × 200 2×200×200 2×200×200个浮点数。
在这里插入图片描述
图片来自于原文作者在深蓝学院的课程:链接

3. 交叉视图数据融合(智能体融合)

在车载系统中,首先从车载传感器捕获的图像中提取鸟瞰图(BEV)特征 B v e h B_{veh} Bveh。我们还采用TrackFormer、MapFormer和OccFormer来生成相应的智能体查询 Q A v e h {Q_{A}^{veh}} QAveh、车道查询 Q L v e h {Q_{L}^{veh}} QLveh以及占用概率图 P v e h P_{veh} Pveh。这些模块的网络结构与基础设施系统中的对应模块一致。在本节中,我们将描述如何实现跨视图智能体融合。跨视图智能体融合主要包括

  • 用于补偿延迟的时间同步
  • 统一跨视图坐标的空间同步
  • 数据匹配与融合
  • 针对规划和中间输出的数据适配。

3.1 基于流预测的时间同步

基于流预测的时间同步在无线通信中,由于 t i t_{i} ti早于 t v t_{v} tv,传输延迟在复杂交通系统中十分显著,在繁忙的十字路口场景中更是如此。由于动态物体的移动,在融合不同来源的数据时会出现时间上的不一致。为了解决这个问题,本文根据特征流预测方法,将特征预测融入到基础设施智能体查询中以减少延迟。具体来说,我们将智能体查询 Q A i n f Q_{A}^{inf} QAinf和前一帧相关的查询输入到QueryFlowNet(一个三层的多层感知器)中,生成智能体查询流 Q A F l o w i n f Q_{AFlow}^{inf} QAFlowinf。智能体查询流的维度与智能体查询的维度相匹配。随后,通过线性运算预测未来特征,以此减少 t v − t i t_{v}-t_{i} tvti的延迟,公式表示为:
Q A i n f ( t v ) = Q A i n f ( t i ) + ( t v − t i ) ∗ Q A F l o w i n f Q_{A}^{inf}(t_{v}) = Q_{A}^{inf}(t_{i}) + (t_{v}-t_{i}) * Q_{AFlow}^{inf} QAinf(tv)=QAinf(ti)+(tvti)QAFlowinf
值得注意的是,在UniV2X中,流预测模块的QueryFlowNet并非以端到端的方式进行训练。我们采用了提出的自监督学习方法。

3.2 基于旋转注意查询转换的空间同步(本质是坐标系的转换)

文首先利用基础设施系统和车载系统之间的相对位姿 [ R , T ] [R, T] [R,T],将基础设施智能体查询 Q A i n f Q_{A}^{inf} QAinf的参考点从基础设施坐标系转换到车载坐标系。

这里的相对位姿是由两个系统的全局相对位姿生成的,其中 R R R代表旋转矩阵, T T T表示平移。然而,每个物体本身都具有关于其位置、大小和旋转的三维信息。

在表示三维物体的查询情境中,位置由参考点明确表示,而旋转则隐含地编码在查询的特征中,如图3所示。为了解决这个问题,我们提出了一种称为旋转感知查询变换的解决方案来实现空间同步。这需要将基础设施查询及其相对位姿中的旋转 R R R输入到一个三层的多层感知器(MLP)中,以使特征具备旋转感知能力,从而实现显式的空间同步,公式如下: s p a t i a l _ u p d a t e ( Q A i n f ) = M L P ( [ Q A i n f , R ] ) spatial\_update \left(Q_{A}^{inf}\right)=MLP\left(\left[Q_{A}^{inf}, R\right]\right) spatial_update(QAinf)=MLP([QAinf,R]) 其中旋转矩阵 R R R被重塑为9维。最后,我们将基础设施智能体查询数据转换到车载坐标系中。
在这里插入图片描述

3.3 不同视图查询的匹配融合

跨视图查询匹配与融合。在这一阶段,跨视图的智能体查询已在时间和空间上完成同步。为了匹配来自不同视角的对应查询,我们计算它们参考点的欧氏距离,并采用匈牙利算法进行匹配:

  • 对于匹配上的查询对 Q A i n f Q_{A}^{inf} QAinf Q A v e h Q_{A}^{veh} QAveh ,将它们输入到一个三层的多层感知器中,生成协作查询 Q A Q_{A} QA,用于更新车载智能体查询 Q A v e h Q_{A}^{veh} QAveh

  • 对于基础设施中未匹配上的查询,则将其添加到车载查询中。

  • 最后,我们分配跟踪ID,并过滤掉检测置信度较低的跨视图融合查询,从而得到最终的智能体查询结果。

3.4 消除自车误检问题

该模块用于消除自车区域的误检测问题。从基础设施的视角来看,在智能体感知中,自车可能会被视作一个明显的障碍物,在占用预测中则可能被视为占用区域的一部分。经过跨视图数据融合后,有可能在自车所在区域生成障碍物查询,从而将自车区域标记为被占用。这种情况会严重干扰决策过程,最终影响决策性能。为缓解这一问题,我们将自车区域定义为一个矩形,过滤该区域内的查询,并将此区域指定为未被占用。然而,由于定位和校准不准确,导致基础设施与自车之间存在相对位置误差,这种简单直接的解决方案可能无法始终达到最佳效果。为推动协同自动驾驶发展,进一步探索和优化至关重要。
在这里插入图片描述
图片来自于原文作者在深蓝学院的课程:链接

3.5 用于中间输出的解码器输入增强

通过最终融合的智能体查询与车载TrackFormer中编码器的输出之间的交叉注意力机制,我们可以获得智能体的中间输出,如3D检测输出,以增强UniV2X的可解释性。然而,编码器的输出全部由车载传感器数据信息生成,这使得来自基础设施的查询无法产生相应的智能体输出。为了解决这个问题,我们使用同步的基础设施查询来增强编码器的输出,即车载BEV特征,公式如下:
u p d a t e ( B v e h ) = B v e h + M L P ( s y n c h r o n i z e d ( Q A i n f ) ) update (B^{veh})=B^{veh}+MLP(synchronized (Q_{A}^{inf})) update(Bveh)=Bveh+MLP(synchronized(QAinf))

4. 交叉视图数据融合(车道融合)

车道融合(LaneFusion)模块用于融合来自不同视角的车道查询信息。在此过程中,我们在车道融合时省略了时间同步,因为道路车道元素不受延迟影响,保持稳定。与智能体融合(AgentFusion)类似,车道融合通过旋转感知查询变换实现空间同步。这个过程将包含参考点和查询特征的基础设施车道查询转换到车载坐标系中。然后,我们像在智能体融合中那样,对同步后的基础设施车道查询和车载车道查询进行匹配与融合。为加快训练速度,我们还选择直接将同步后的查询与车载车道查询连接起来。同步后的查询也用于解码器输入增强。

5. 交叉视图数据融合(占用融合)

我们首先通过线性运算生成多步的基础设施占用概率图,并将其与车载多步占用预测进行对齐。利用密集概率图中明确表示的旋转信息,我们使用相对位姿将基础设施占用概率图直接转换到车载系统。

随后,我们使用简单的取最大值运算,将同步后的占用概率图与车载占用概率图进行融合,生成融合概率图 P ^ \hat{P} P^。概率超过特定阈值的网格会被标记为已占用。

6. 规划输出 Planning Output

利用融合后的智能体查询、车道查询和占用特征,我们首先复用UniAD中的方法生成粗略的未来路径点。MotionFormer用于生成一组预测时长为 t p r e d t_{pred} tpred N a N_{a} Na个运动查询。这些查询通过捕捉智能体、车道和目标之间的交互生成。值得注意的是,这些智能体查询包含了自车查询,这使得MotionFormer能够生成具有多模态意图的自车查询。

鸟瞰图(BEV)占用概率图 P ^ \hat{P} P^用于创建二进制占用图 o ^ \hat{o} o^。在规划阶段,从MotionFormer获得的自车查询与指令嵌入相结合,形成一个 “规划查询”。这些指令包括左转、右转和前进。

这个规划查询与BEV特征一起输入到解码器中,以生成未来的路径点。

最终的规划轨迹由以下方式确定:
1)调整道路上的未来路径点,确保遵守交通规则,并利用生成的车道和其他道路元素使车辆保持在驾驶区域内;
2)最小化成本函数,以避免与被占用的网格 o ^ \hat{o} o^发生碰撞。

四、实验

1. 实验设置

实验数据集—DAIR-V2X
DAIR-V2X2数据集包含约100个场景,这些场景拍摄于28个复杂的交通路口,由基础设施传感器和车辆传感器共同记录。每个场景时长在10到25秒之间,以10Hz的频率采集数据,并配备了高清地图。该数据集涵盖了多种驾驶行为,包括前进、左转和右转等动作。为了与nuScenes数据集保持一致,我们将目标类别分为四类:汽车、自行车、行人和交通锥。

实施细节
实施过程。我们将自车的关注范围设定为[-50, 50, -50, 50]米。自车的鸟瞰图(BEV)范围与之相同,也是[-50, 50, -50, 50]米,每个网格大小为0.25米×0.25米。基础设施的BEV范围设置为[0, 100, -50, 50]米,这考虑到了摄像头的前向感知范围,有助于更有效地利用基础设施数据。实验使用8块NVIDIA A100 GPU进行。附录中提供了更多实施细节。

基准算法设置

  • 无融合(No Fusion):方案仅使用自车图像作为传感器数据输入,不输入任何基础设施数据。
  • 普通方法(Vanilla approach):我们使用简单的卷积神经网络(CNN)融合基础设施和自车的鸟瞰图(BEV)特征。融合后的BEV特征被重塑为一维,随后输入到多层感知器(MLP)中以生成规划路径。
  • 在BEV特征融合BEV Feature Fusion)方法:我们使用CNN将两侧的BEV特征融合为新的自车BEV特征,并将这个新特征输入到UniAD中。
  • CooperNaut:最初利用点云的稀疏特性,采用点变换器(Point Transformer)来聚合跨视图特征。

鉴于自车状态(如自车速度)在开环端到端自动驾驶中起着重要作用(Li等人,2024),为了进行公平比较,我们在所有基线设置中都去除了自车速度嵌入。此外,我们在附录中探究了自车速度对UniV2X的作用。

2. DAIR-V2X上的实验结果

端到端自动驾驶最终规划结果,作者认为L2 Error指标似乎不太合理,因此一直讨论的是碰撞率,车道偏离率与传输成本。但我感觉这里的BPS对比好像设置的不是很合理,因为没有和一些专注于提升通信效率的算法相比,而只是证明了通过稀疏-密集混合传输使得传输的数据量减少了。

在这里插入图片描述
感知结果:
主要对比了mAP和AMOTA两个指标。

  • mAP: 平均精度是对目标检测模型在不同类别上的精度进行平均得到的指标,它综合考虑了模型检测出的目标的准确率和召回率。
  • AMOTA:AMOTA 是多目标追踪领域中用于评估模型性能的指标,它综合考虑了目标的检测准确性和轨迹的匹配准确性。

在这里插入图片描述
在线地图结果:
在这里插入图片描述
占用预测结果:
在这里插入图片描述

3. 关于可靠性的消融实验

在评估 UniV2X 时,我们的第一步是在传输过程中随机丢弃 10%、30%、50%、70% 和 100% 的基础设施智能体查询,以此来模拟数据损坏的情况。(这一块感觉论文中也没有详细说明,UniAD中说的是模块化的端到端让该模型变得更加可解释…可能是基于此)
在这里插入图片描述

五、总结

文章总结: 本文提出了UniV2X,这是一种新颖的端到端框架,它将来自不同视角的关键任务集成到单个网络中。该框架采用以规划为导向的方法,在利用原始传感器数据的同时,确保网络在协同自动驾驶中的可解释性。此外,还设计了一种稀疏 - 密集混合数据传输策略,以利用跨视图数据并提高整体规划性能。这种传输方法既便于通信又可靠,符合车联网(V2X)通信的要求。在DAIR-V2X数据集上的实证结果验证了我们所提方法的有效性。

局限性和未来工作。该框架涉及多个模块和不同的智能体视角,导致其复杂程度较高。因此,框架内的几个交互融合模块仍处于初步阶段。进一步优化对于后续框架的内部设计至关重要。在这项工作中,我们仅考虑了端到端自动驾驶的开环评估(open-loop evaluation)。未来我们将进行更多闭环实验(closed-loop experiments),以评估我们的UniV2X框架。

补充:

开环评估和闭环实验是自动驾驶研究中评估系统性能的两种不同方式。

  • 开环评估:在自动驾驶中,开环评估指系统依据输入数据(像传感器数据和地图信息)生成决策或规划,但不考虑这些决策实际执行后的反馈。比如在模拟场景里,系统根据当前感知信息规划行驶路径,却不依据车辆实际行驶轨迹来调整后续规划,类似单向操作,不形成回路,能简单快速地评估系统在特定输入下的规划能力。

  • 闭环实验:闭环实验则不同,系统会把决策执行后的反馈纳入考量。车辆实际行驶过程中,系统持续接收传感器数据,判断规划路径是否合适。若出现偏差,如与预期轨迹不符,就会据此调整后续决策。这就像人开车,时刻根据实际路况调整驾驶行为,形成了感知 - 决策 - 执行 - 反馈的循环


  1. CVPR2023-best paper-UniAD-Planning-oriented Autonomous Driving ↩︎

  2. CVPR2022-DAIR-V2X: A Large-Scale Dataset for Vehicle-Infrastructure Cooperative 3D Object Detection ↩︎

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

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

相关文章

制造一只电子喵 (qwen2.5:0.5b 微调 LoRA 使用 llama-factory)

AI (神经网络模型) 可以认为是计算机的一种新的 “编程” 方式. 为了充分利用计算机, 只学习传统的编程 (编程语言/代码) 是不够的, 我们还要掌握 AI. 本文以 qwen2.5 和 llama-factory 举栗, 介绍语言模型 (LLM) 的微调 (LoRA SFT). 为了方便上手, 此处选择使用小模型 (qwen2…

Redis核心功能实现

前言 学习是个输入的过程,在进行输入之后再进行一些输出,比如写写文章,笔记,或者做一些技术串讲,虽然需要花费不少时间,但是好处很多,首先是能通过输出给自己的输入带来一些动力,然…

【连载3】基础智能体的进展与挑战综述

基础智能体的进展与挑战综述 从类脑智能到具备可进化性、协作性和安全性的系统 【翻译团队】刘军(liujunbupt.edu.cn) 钱雨欣玥 冯梓哲 李正博 李冠谕 朱宇晗 张霄天 孙大壮 黄若溪 2. 认知 人类认知是一种复杂的信息处理系统,它通过多个专门的神经回路协调运行…

MacOs java环境配置+maven环境配置踩坑实录

oracl官网下载jdk 1.8的安装包 注意可能需要注册!!! 下载链接:下载地址点击 注意晚上就不要下载了 报错400 !!! 1.点击安装嘛 2.配置环境变量 export JAVA_HOME/Library/Java/Java…

【Git】--- 企业级开发流程

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: Git 本篇博客我们讲解Git在企业开发中的整体流程,理解Git在实际企业开发中的高效设计。 🏠 企业级开发流程 一个软件从零开始到最…

蓝桥杯嵌入式历年省赛客观题

一.第十五届客观题 第十四届省赛 十三届 十二届

解决2080Ti使用节点ComfyUI-PuLID-Flux-Enhanced中遇到的问题

使用蓝大的工作流《一键同时换头、换脸、发型、发色之双pulid技巧》 刚开始遇到的是不支持bf16的错误 根据《bf16 is only supported on A100 GPUs #33》中提到,修改pulidflux.py中的dtype 为 dtype torch.float16 后,出现新的错误,这个…

LabVIEW驱动开发的解决思路

在科研项目中,常面临将其他语言开发的定制采集设备驱动转换为 LabVIEW 适用形式的难题。特别是当原驱动支持匮乏、开发人员技术支持不足时,如何抉择解决路径成为关键。以下提供具体解决思路,助力高效解决问题。 ​ 一、评估现有驱动死磕的可…

七、Qt框架编写的多线程应用程序

一、大纲 学习内容:使用两个线程,分别点击两个按钮,触发两个不同的效果 所需控件:两个button、三个label 涉及知识点:多线程、Qt的connect机制、定时器、互斥锁 需求: 1,多线程定时计数&#x…

MATLAB求和∑怎么用?

MATLAB求和∑怎么用? 一:题目:求下列方程的和 二、代码如下 1.syms函数 (方法一) 代码如下(示例): 1. syms x 2. symsum((x.^22*x).^3,1,100) 3. 2.直接用循环 (方法二) 代码如下&am…

项目二 使用miniedit创建拓扑

一、项目需求分析: 1. 在ubuntu的桌面环境中运行Mininet的图形化界面2. Mininet图形化界面中搭建拓扑并设置相关的设备和链路属性3. Floodlight中查看拓扑4. 完成Mininet的测试 二、项目实施步骤 1. 运行Mininet图形化界面 在“~/mininet/examples”目录下有一m…

Docker 镜像 的常用命令介绍

拉取镜像 $ docker pull imageName[:tag][:tag] tag 不写时,拉取的 是 latest 的镜像查看镜像 查看所有本地镜像 docker images or docker images -a查看完整的镜像的数字签名 docker images --digests查看完整的镜像ID docker images --no-trunc只查看所有的…

0x02.Redis 集群的实现原理是什么?

回答重点 Redis 集群(Redis cluster)是通过多个 Redis 实例组成的,每个主节点实例负责存储部分的数据,并且可以有一个或多个从节点作为备份。 具体是采用哈希槽(Hash Slot)机制来分配数据,将整…

浏览器多开

使用浏览器的用户功能,创建多个用户即可完成浏览器多开的需求,插件等相对独立 需要命名 然后就可以通过多个用户切换来实现多开了,不同任务选择不同用户

Redis常用数据结构和应用场景

一、前言 Redis提供了多种数据结构,每种结构对应不同的应用场景。本文对部分常用的核心数据结构和典型使用场景作出介绍。 二、String(字符串) 特点:二进制安全,可存储文本、数字、序列化对象等。场景: 缓…

【转载翻译】使用Open3D和Python进行点云处理

转自个人博客:【转载翻译】使用Open3D和Python进行点云处理 转载自:Point Cloud Processing with Open3D and Python 本文由 Carlos Melo 发布于2024年2月12日 本文很适合初学者对三维处理、点云处理以及Open3D库进行初步了解 另外,本文是基于…

用户登录不上linux服务器

一般出现这种问题,重新用root用户修改lsy用户的密码即可登录,但是当修改了还是登录不了的时候,去修改一个文件用root才能修改, 然后在最后添加上改用户的名字,例如 原本是只有user的,现在我加上了lsy了&a…

matplotlib数据展示

目录 一、绘制直方图 1、简单直方图 2、绘制横向直方图 3、绘制堆叠直方图 4、对比直方图 二、折线图与散点图 三、绘制饼图 四、雷达图 1、简单雷达图 2、多层雷达图 五、总和 在前面的学习中,我们能够使用一些库进行数据的整合,收集&#x…

MySQL 面经

1、什么是 MySQL? MySQL 是一个开源的关系型数据库,现在隶属于 Oracle 公司。是我们国内使用频率最高的一种数据库,我本地安装的是比较新的 8.0 版本。 1.1 怎么删除/创建一张表? 可以使用 DROP TABLE 来删除表,使用…

贪心算法 day08(加油站+单调递增的数字+坏了的计算机)

目录 1.加油站 2.单调递增的数字 3.坏了的计算器 1.加油站 链接:. - 力扣(LeetCode) 思路: gas[index] - cost[index],ret 表示的是在i位置开始循环时剩余的油量 a到达的最大路径假设是f那么我们可以得出 a b …