大模型来了,自动驾驶还远吗?关键看“眼睛”

news2024/11/28 17:57:51

感知系统是自动驾驶最重要的模块之一,被视为智能车的“眼睛”,对理解周围环境起到至关重要的作用。随着深度学习以及传感器技术的发展,感知系统呈现出迅猛的发展趋势,涌现出各种新技术,性能指标不断提升。本文将围绕感知系统架构、方法及挑战,结合驭势科技的具体实践深入探究自动驾驶感知技术。

作者 |耿秀军、李金珂、张丹、彭进展

出品 |《新程序员》编辑部

一、感知系统架构与方法

目标的检测与跟踪是感知系统的两大基础任务,主要利用不同传感器数据输入,完成对周围障碍物的检测与跟踪,并将结果传递给下游规划控制模块完成预测、决策、规划、控制等任务。下图1简要描述了此类任务的架构。

图1:感知系统架构简图

图1:感知系统架构简图

二、主流传感器介绍

自动驾驶感知领域中常见的传感器主要有3类:摄像头、激光雷达,以及毫米波雷达。每种传感器都有其优缺点,也影响了不同公司对技术路线的选择。

其中,摄像头图像数据能以低廉的成本实现高分辨率的成像,能够提供丰富的纹理信息,例如国内某造车新势力车型搭载的摄像头分辨率达到了800万像素。但摄像头对光照比较敏感,夜晚或者极端天气下的图像往往对感知任务带来比较大的挑战。另外,图像仅能提供2D信息,无法直接得到深度信息。在产业界,纯视觉技术路线以特斯拉为代表。

相对摄像头,激光雷达往往比较稀疏,机械激光雷达垂直分辨率通常仅为32线、64线、128线不等,虽然固态、半固态激光雷达在不断提升分辨率,但相较图像来说仍然比较稀疏。其优势是能够提供深度信息,即给出每个激光点的距离值,这一信息对于目标检测任务来说至关重要,因为目标检测任务需要得到周围交通参与者精确的位置信息。激光雷达也存在受限的应用场景,其对于雨、雪、雾等极端天气,甚至灰尘比较敏感,难于穿透水珠、雪花、灰尘等,容易形成噪点,对于此类场景下的感知带来不小的挑战。目前,国内造车新势力中已经广泛应用固态、半固态激光雷达。

毫米波雷达和激光雷达类似,同样能探测目标的位置及速度。和激光雷达相比,由于其波长较长,能够穿透微小颗粒,因此对极端天气等不是很敏感,在雨、雪、雾等天气条件下仍能产生不错的效果。但受其原理影响,毫米波雷达对静态障碍物检测效果较差,分辨率也较低。

目前,除特斯拉以纯视觉技术路线为主外,主流自动驾驶感知架构采用多传感器融合的方案,充分利用不同传感器的优势来提升感知精度。

三、主流目标检测方法介绍

下面从2D、3D目标检测任务入手,介绍当前主流方法。

2D目标检测

2D目标检测是从图像中预测目标位置及类别的任务。2D目标检测网络可分为两个流派,即一阶段和二阶段网络。所谓一阶段网络是直接在特征层预测目标的分类与位置,以YOLO系列为代表,其中YOLOV7网络取得了速度和精度的平衡,图2为YOLOV1的网络架构。二阶段网络以RCNN系列为代表,其思想是通过RPN网络生成候选区,再在候选区上进一步预测目标的分类和位置,图3展示了Fast-RCNN网络架构。二阶段网络由于需要首先生成候选区,其计算量往往较大,速度较慢,但能获得更高的精度。在自动驾驶领域,2D检测广泛应用于红绿灯检测、车道线检测等任务中。

图2:YOLOV1网络架构[1]

图3:Fast-RCNN网络架构[2]

3D检测任务

3D目标检测任务利用传感器输入预测目标的3D位置信息、尺寸、方向及速度,对下游规划控制模块的避障、预测决策至关重要。根据传感器输入的不同,可将其分为单模态和多模态方法。单模态只依靠一种传感器输入完成检测任务,如直接在2D图像上预测3D目标的纯视觉方法,以及在三维激光点云上完成检测的方法。多模态通过输入多种传感器数据,如图像、激光点云、毫米波点云,在网络层进行特征融合,完成3D目标检测任务。

  • 单目3D目标检测

随着标注方法的升级,目标的表示由原来的2D框对角点表示进化成了3D坐标系下bounding box(边界框)的表示 ,不同纬度表示了3D框的位置、尺寸、以及地面上的偏航角。有了数据,原本用于2D检测的深度神经网络,也可以依靠监督学习用于3D目标框检测。

焦距适中的相机,FOV是有限的,想要检测车身一周目标,就要部署多个相机,每个相机负责一定FOV范围内的感知。最终将各相机的检测结果通过相机到车身的外参,转换到统一的车辆坐标系下。

但在有共视时,会产生冗余检测,即有多个摄像头对同一目标做了预测(图4展示了多相机俯视图),现有方法如FCOS3D[3],会在统一的坐标系下对所有检测结果做一遍NMS,有重合的目标框仅留下一个分类指标得分最高。

图4:多相机俯视示意图[13]

  • 统一多视角相机的3D目标检测

自下而上的方法

自下而上的方法,手头的信息看到哪算哪。图5来自CaDNN这篇文章,很好地描述了这一类方法,包括Lift、BEVDet、BEVDepth。这类方法预测每个像素的深度分布,有的方法为隐式预测,有的方法利用LiDAR点云当监督信号(推理时没有LiDAR)。将多相机生成的深度图转换成车身四周的“点云”数据,有了点云就可以利用现有的点云3D目标检测器了(如PointPillars, CenterPoint)。

图 5:CaDNN网络原理图[4]

自上而下的方法

此类方法先确定关注的地方,如特斯拉所采用的方法(如图6所示),简单来说就是先确定空间中要关注的位置,由这些位置去各个图像中“搜集”特征,然后做判断。

根据“搜集”方式的不同衍生出了下面几种方法:

图6 特斯拉自上而下的方法[12]

关键点采样

如DETR3D(网络架构如图7所示),由一群可学习的3D空间中离散的位置(包含于object queries),根据相机内外参转换投影到图片上,来索引图像特征,每个3D位置仅对应一个像素坐标(会提取不同尺度特征图的特征)。

图 7:DETR3D网络架构[5]

局部注意力

典型方法如BEVFormer(其原理图如图8所示),该方法预先生成稠密的空间位置(含不同的高度,且不随训练更新),每个位置投影到各图片后,会和投影位置局部的数个像素块发生交互来提取特征(基于Deformable DETR),相比于DETR3D,每个3D点可以提取到更多的特征。

图 8:BEVFormer网络原理图[6]

全局注意力

典型方法如PETR,该方法强调保持2D目标检测器DETR的框架,探索3D检测需要做哪些适配。PETR同样利用稀疏的3D点(来自object queries)来“搜索”图像特征,但不像DETR3D或BEVFormer把3D点投影回图片,而是基于标准的attention模块,每个3D点会和来自全部图片的所有像素交互。

  • 3D点云目标检测方法

点云能提供丰富的场景3D信息,广泛被自动驾驶企业所采用。根据神经网络对点云输入的不同表示,可将点云目标检测分为基于体素的方法,如SECOND、VoxelNet等;基于柱体的方法,如PointPillar等;以及基于点的方法,如PointRCNN等;基于点的方法往往计算量大,推理速度较慢,车端部署往往需要平衡速度和精度,SECOND和PointPillar是当前较为流行的方法,图9展示了PointPillar的网络架构。而依据检测头的不同,又可分为anchor-based方法和anchor-free的方法,PointPillar以及SECOND均为anchor-based方法。Anchor-free方法以CenterPoint为代表,其思想是直接预测目标的中心点,而无需生成预描框,图10展示了其网络架构。

图9:PointPillar网络架构[7]

图10:CenterPoint网络架构[8]

  • 多传感器融合方法

单模态目标检测往往受限于传感器的特性,目前自动驾驶领域中广泛采用多模态,即多传感器融合的技术方案。基于Frustum视锥的检测器F-PointNet,首先在2D图像上提取2D框,以此过滤出视锥区域的点云,再利用PointNet网络进行分类和位置预测,此方法依赖2D检测器的精度,并且速度较慢。

多传感器融合(MV3D)利用了图像、点云俯视图,以及点云平视距离图(Range Image)作为输入,分别对三种视图提取特征,并在俯视图上生成3D Proposal,利用3D Proposal提取对应的其他模态的特征图,最终将三种模态的特征融合,在融合后的特征层预测目标位置。其网络架构如图11所示。

图11:MV3D网络架构[9]

MV3D类方法在特征融合阶段各个模态的维度不尽相同,如图像特征为二维特征,而点云特征为三维,使得特征融合较为困难。近年来,基于BEV视图的融合方案逐渐流行,其基本思想是将各个模态的特征转换到BEV空间进行融合,BEV融合方法在多传感器融合方面占据了主导地位。目前依据网络架构不同,BEV融合方法主要可分为两类,一类是基于DETR-based方法,代表工作如FUTR3D等,图12展示了FUTR3D的网路架构;另一类是BEV-based方法如BEVFusio等,图13给出了BEVFusion的网络架构。

图12:FUTR3D网络架构[10]

图13:BEVFusion网络架构[11]

四、目标跟踪

在自动驾驶感知任务中,我们除了需要预测目标的位置、分类等信息外,还需要给出目标的速度和运动方向,即对目标进行连续的跟踪。当前目标跟踪主要有两种技术方案,一种是以卡尔曼滤波技术为基础,首先对目标进行关联,再利用卡尔曼滤波器预测目标的速度方向。另一种是以深度学习网络为基础,通过连续帧时序网络来预测目标的速度、方向。

五、感知技术的挑战与发展趋势

近年来目标检测算法飞速发展,精度获得了极大提升,但仍然面对诸多挑战,包括长尾问题、如何应对极端天气等。

长尾问题

感知任务是典型的长尾问题,这已成为业界共识。如何挖掘长尾问题案例,并持续提升技术能力是感知领域关注的重点。近年来业界广泛认同通过数据闭环的方式来解决长尾问题。基于学习的方法依赖数据的输入,而现实世界复杂多变,很难穷举出所有场景,这就依赖高效的数据闭环体系,有效挖掘长尾场景,积累足够的高价值场景数据,并能够快速完成模型的迭代更新,图14展示了一种非常极端的场景,即带着锥桶移动的货车。

图 14:带锥桶移动的车

六、极端天气的挑战

自动驾驶感知遇到的另一大挑战是极端天气。无人车要想不间断运营,不可避免会遇到雨、雪、雾等极端天气,而极端天气会对传感器数据造成极大影响,从而影响感知的准确性,甚至造成自动驾驶不可用。感知必须解决极端天气带来的挑战,从而实现全天候运行能力。夜间大雨天可能会造成摄像头成像模糊,如图15所示,此时从图像获得稳定感知结果异常困难。而激光雷达在极端天气下容易产生大量噪声,如图16所示,此时如何避免漏检和误检变得异常棘手。

图15:大雨天造成摄像头夜间成像模糊

图16:大雪天激光雷达产生大量噪声

七、感知技术的两大发展方向

从近年来业界的发展来看,感知技术的演进主要朝着两个方向发展。一方面是以搭建高效的数据闭环体系为主,解决长尾问题,通过云端大模型、大数据实现高效数据挖掘与模型迭代。另一方面不断发展车端模型架构,用更复杂的模型架构来提升感知精度,这一方面随着Transfomer架构所展现出来的强大能力,以基于Transformer的BEV融合感知为代表,涌现出了不少优秀的工作。

八、驭势感知技术实践

多模态融合感知

在多模态融合感知方面,我们自研了图像、点云融合网络。图17给出了网络的示意图。我们以长时序点云和图像数据作为输入,分别利用2D和3D特征提取网络对应模态的特征,并在特征级进行融合。网络首先会在点云和图像特征上分别预测2D和3D目标位置及分类信息,最后通过将点云投影到图像上进行位置关联、深度搜索以及3D位置修正等方法,最终输出融合的3D目标。

该融合网络的特点是轻量,可在嵌入式平台达到实时性能。我们充分利用了大规模的预训练模型来提升图像分支的能力。多模态融合感知网络往往需要同步的点云、图像数据,而此类数据往往比较稀缺,对数据同步精度要求较高,联合标注也更加昂贵,周期更长。自研网络在此方面显示出了非常高的灵活性。在量化评估中发现,该融合策略对感知距离和分类精度较纯点云网络提升非常明显,并且在雨天等极端天气场景下有非常强的鲁棒性,图18中展示了我们利用该网络在低线束雷达配置下实现了140+米的稳定感知。

图17:驭势自研融合感知网络架构

图 18:融合感知网络利用低线束雷达和摄像头实现140米处的目标检测

视觉BEV感知

在BEV感知方面,我们自研了基于多相机的纯视觉BEV感知网络,其架构如图19所示。我们的框架以长时序、多视角相机捕捉到的图片为输入。时序多帧、多视角的图片会由图像基础网络,例如ResNet生成多尺度的特征。整个框架是基于query查询向量,经由Transformer网络完成特征收集。query向量会经过self-attention和cross-attention来更新特征,经过多层解码器后,更新后的query会被用来预测最终的3D目标类别、位置、大小、旋转以及速度信息。我们设计了时空对齐且计算稀疏的cross-attention模块,使得我们的网络取得先进精度的同时又具备实时性的工业部署潜力。该模型在nuScenes视觉3D目标检测排行榜中取得第三名的成绩(2022),图20和图21分别展示了该网络在Nuscenes数据集的评估结果及其可视化结果。

图 19:网络架构示意图

图20:驭势BEV感知网络在Nuscenes测试集的评估结果

图21:驭势自研BEV网络在Nuscenes数据集预测结果

全景分割

以往基于点云的实例分割任务主要分为proposal-base和proposal-free方法。proposal-based方法依赖于目标检测器的性能,而proposal-free的方法因为采用启发式的聚类方法,耗时比较高。因此,我们提出了一种新颖的Panoptic-PHNet点云全景分割网络,该网络预测实例的中心点,而无需object-level任务的学习,其网络架构如图22所示。该工作在nuScenes的全景分割挑战赛取得第一名的成绩,论文入选CVPR 2022。在取得高精度的同时,该网络推理速度达到数十FPS,满足了实时性的要求,图23给出了该网络与其他公开方法的对比结果。

图22:Panoptic-PHNet网络架构

图23:驭势全景分割网络和公开方法精度对比结果

数据闭环实践

数据闭环的目的是形成场景数据到算法的闭环,达到快速提升感知性能的目的。其涉及到多个方面,例如如何挖掘高价值场景数据,如何提升标注效率,以及模型的快速部署验证等。围绕这个目标,驭势数据闭环体系可概括为以下几个方面:基于主动学习的数据挖掘、自动标注、半监督训练、云端训练部署体系等几个方面,图24总结了数据闭环体系的基本框架:

图 24:驭势数据闭环框架

基于主动学习的数据挖掘

数据闭环的首要任务是如何发现corner case场景。为解决这个问题,我们提出了基于主动学习的方法来识别系统未很好理解的场景。其基本思想是用不确定性来衡量模型的检测效果,筛选出不确定性高的目标场景。我们从不确定度和类别均衡两个维度来衡量场景的不确定性。其中不确定度包含类别的不确定度以及位置的不确定度。

图25和图26展示了利用主动学习系统筛选出来的异常数据帧:

图25:主动学习数据挖掘:目标框错误

图26:主动学习数据挖掘:低得分目标

自动标注

点云数据的标注成本非常昂贵,同时标注周期也很长,影响模型的迭代效率。为此,我们提出了一种自动化的标注方法,使得标注效率成倍提升,大大缩短了模型迭代周期,同时节省了成本。其自动标注流程如图27所示。

图 27:自动标注流程图

  • 首先,我们利用时序大模型来寻找目标框,完成预标注;
  • 其次,利用贴边算法来修正模型预标注框;
  • 最后,标注员对预标注结果进行检查、修正,形成最终的标注结果。

通过效率评估,我们发现自动标注可提升标注效率达到人工标注的5-10倍,同时得到近似的模型精度。标注效率得到显著提升,图28展示了自动标注的效果。

图28:自动标注效果图

半监督训练

自动、半自动标注工具能够显著提升标注效率,但大规模的数据标注仍然需要消耗不小的人力成本。因此,我们也在探索半监督、无监督的训练方法。我们期望能够利用少量的数据标注,对模型进行半监督的训练,同时模型精度能够达到全量数据标注的水平。图29描述了半监督训练的框架。

图 29:半监督训练框架

  • 第一步,我们标注少量的数据,并用该少量标注数据训练Student网络和Senior Teacher网络。
  • 第二步,用少量数据迭代后的Student2网络在Teacher网络,以及Sensor Teacher的监督下使用未标注的数据进行半监督训练。

我们通过量化分析,发现通过半监督训练的网络精度能够获得和全量数据标注差不多的效果。并且通过半监督方法,可以进一步降低标注成本。

图30红色框为标注Ground Truth结果,绿色框为经过半监督训练后预测的结果,可以看到半监督训练的预测结果基本上和Ground Truth一致。

图30:半监督训练预测结果和真值对比

长尾问题案例

在开放道路中不可避免地遇到各种各样的corner case,洒水车便是其中之一。洒水车产生的大量水雾在激光雷达点云上会产生大量的噪点,同时也会对摄像头成像产生巨大干扰。我们通过数据闭环积累了大量数据,通过多传感器融合、以及数据增强手段有效解决了此类问题。图31展示了当无人车穿越洒水车的场景,感知系统稳定感知到了左前方的洒水车,并成功穿越了水雾。

图31:洒水车识别案例

此外,极端天气下的训练数据往往难于获取。为此,我们提出了一种数据增强策略,来模拟雨、雪、雾天的数据。图32是在正常点云数据中引入数据增强后模拟的雨天数据。

图 32:雨天数据增强效果

经过量化评估发现,在引入极端天气数据增强后,模型在极端天气数据上提升非常明显。如图33所示,在雨天数据上,引入数据增强后模型可正确检测出目标(红色框),而未引入数据增强模型则发生漏检(黄色框)。

图 33:引入数据增强后的模型检测效果

九、总结与展望

自动驾驶感知技术无论是纯视觉技术路线还是多传感器融合技术路线都在朝着特征前融合、端到端大模型以及打造高效数据闭环的方向发展,也取得了长足进步。相信随着深度学习技术的发展以及算力不断提升,感知问题会得到更好的解决,推动自动驾驶向全天候、全无人的目标迈进。

参考文献

[1] You Only Look Once: Unified, Real-Time Object Detection

[2] Fast R-CNN

[3] FCOS3D: Fully Convolutional One-Stage Monocular 3D Object Detection

[4] Categorical Depth Distribution Network for Monocular 3D Object Detection

[5] DETR3D: 3D Object Detection from Multi-view Images via 3D-to-2D Queries

[6] BEVFormer: Learning Bird’s-Eye-View Representation from Multi-Camera Images via Spatiotemporal Transformers

[7] PointPillars: Fast Encoders for Object Detection from Point Clouds

[8] Center-based 3D Object Detection and Tracking

[9] Multi-View 3D Object Detection Network for Autonomous Driving

[10] FUTR3D: A Unified Sensor Fusion Framework for 3D Detection

[11] BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation

[12] Tesla AI Day 2021, https://www.youtube.com/watch?v=j0z4FweCy4M&t=2900s

[13]BEVDepth: Acquisition of Reliable Depth for Multi-view 3D Object Detection

作者介绍

耿秀军,驭势科技感知算法研发主管。2011年在电子科技大学获得计算机硕士学位。之后在英特尔亚太研发中心从事GPU图形系统研发工作。于2016年加入驭势科技至今,负责感知算法的研发、架构设计与优化工作,参与驭势科技多个无人驾驶项目的落地,拥有多项自动驾驶相关专利。

李金珂,驭势科技自动驾驶感知算法架构师,负责环境感知、目标检测、跟踪等高性能感知算法开发。曾开发全景分割算法Panoptic-PHNet获nuScenes panoptic challenge冠军,并于计算机视觉会议CVPR发表论文。

张丹,博士,2016年加入驭势科技,目前任定位感知部门总监。带领团队对自动驾驶定位和感知方面的算法、框架、产品及基础设施进行了持续创新和优化,为驭势自动驾驶产品在全场景、全天候、真无人的商业化落地奠定了坚实基础。他拥有几十项国内外专利。

彭进展,驭势科技联合创始人,首席架构师,专注于为自动驾驶提供最优的系统解决方案,让自动驾驶实用、安全和可靠。曾是英特尔Edison芯片平台首席系统架构师和英特尔中国研究院机器人实验室主任,目前致力于无人驾驶商业化。驭势科技已在机场物流、工厂物流、微公交等多个无人驾驶领域进入商业化运营。

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

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

相关文章

手撕机器学习算法--一步步推导-------NFL(没有免费午餐定理)

文章目录 前言一、NFL是什么?二、表现形式三、介绍四、手动推导 前言 其实机器学习也好,深度学习也罢,在我看来,代码编程终究是不重要的,因为现成的库,其数学原理,其公式推导才是我们需要理解的…

bind查找用法

inclue中的root 也取了名字 引用的时候应该是 引用外面的名字再引用里面的名字,包括rootview也是 binding.errorView.errorView.visibility View.GONE binding.errorView.statusHintIcon?.visibility View.GONE

绩效管理常见的7大误区,越用企业越走下坡路!

绩效管理是企业中非常重要的一个环节,但是很多企业在实施过程中常常会犯一些误区,导致绩效管理的实际效果和预期效果相差甚远。下面我们一起来看看企业中常见的七个绩效管理误区。 1、公司战略和绩效没有关联 绩效管理需要与企业战略相结合,…

【大数据学习篇7】小试牛刀统计并且分析天猫数据

本项目基于搭建大数据环境,通过将数据存放在HDFS上,从HDFS中获取数据,然后根据实际需求通过Spark或Spark SQL对数据进行读取分析,将分析结果存储到HBase表中,最终通过 ECharts数据可视化工具基于Python Web平台实现数据…

【深入浅出】条件概率的链式法则:定义、公式与应用

前言 在概率论的研究中,条件概率是一种非常重要的概念。当多个随机事件发生时,我们有时需要考虑它们同时发生的概率。条件概率的链式法则就是一种用于计算多个随机事件同时发生的概率的方法。本文将会介绍条件概率的链式法则的定义、公式以及应用。 定…

[集合论]集合与二元关系

目录 二元关系导图集合集合表示方法对等差等于两个集合的相对补的或关系 关系序偶与笛卡尔积笛卡尔积 ------不满足交换律 不满足结合律 关系条件 集合与关系划分与覆盖等价关系 (取余、等)商集 偏序关系---自反 反对称 传递(大于等于 小于等于 整除关系 包含 cover 幂集子集关…

入门网络安全,NISP真的有必要考吗?

一、NISP是什么? 国家信息安全水平考试(National Information Security Test Program,简称NISP),是由中国信息安全测评中心实施培养国家网络空间安全人才的项目,由国家网络空间安全人才培养基地运营/管理。…

【Git 操作指南】| 撤销远程仓库的 push 以及 git commit 提交

目录 一、撤销 git push二、撤销 git commit 一、撤销 git push 执行git log查看版本日志&#xff0c;找到目标版本。执行git reset --soft <version numbere>&#xff0c;如git reset --soft d8cedc98e008e14a35d3faf424764648fb29d55b&#xff0c;重置为之前提交的版本…

stm32ADC采样结构参数和相关配置

ADC原理&#xff1a; 原理上是将采集保持器与DAC分开的&#xff0c;如下&#xff1a; STM32 逐次逼近寄存器型(SAR)模拟数字转换器(ADC) 但实际电路可将DAC与采集保持器合并&#xff0c;主要运用的原理就是电容电荷再分配&#xff1a; SAR ADC 逐次逼近型模数转换原理及噪声…

通俗易懂理解spark的DAG

DAG简介 百度百科对DAG的解释用一句话概括:无回路有向图。 Spark的DAG(有向无环图)是一个基本概念,在Spark执行模型中起着至关重要的作用。DAG是“定向的”,因为操作是按特定顺序执行的,而“非循环的”是因为执行计划中没有循环或循环。这意味着每个阶段都取决于前一阶…

分压电阻凑算工具

本工具用于电阻凑算&#xff0c;使用Python3开发&#xff0c;GUI使用Tkinter&#xff0c;无第三方依赖。 项目地址&#xff1a;leidawt/resistor_calculator 使用方法 计算分压电阻值 给定输入、输出电压&#xff0c;计算所需电阻比&#xff0c;根据电阻表选取最接近的电阻组…

Win10和Ubuntu20.04双系统安装教程详解

一.准备材料 U盘&#xff08; 容量>16G&#xff09;、刻录软件( UltraISO)、 Ubuntu 20.04镜像文件 二.查看电脑的信息 查看BIOS模式 "winr"快捷键进入"运行"&#xff0c;输入"msinfo32"回车&#xff0c;出现以下界面&#xff0c;可查看BIOS模…

C# XML的节点遍历、定位、编辑和删除(三)

文章目录 XML样例获取整个文档根开始获取根节点获取最后一个子节点在同级之间向前导航在同级之间向后导航查找节点获取多个节点编辑节点添加节点删除节点小结附录参考 在项目的实际应用中&#xff0c;有很多数据都会保存为XML配置文件。使用率比较高的操作有加载文档&#xff0…

2023-数仓常见问题以及解决方案

01 数据仓库现状 小 A 公司创建时间比较短&#xff0c;才刚过完两周岁生日没多久&#xff1b;业务增长速度快&#xff0c;数据迅速增加&#xff0c;同时取数需求激增与数据应用场景对数据质量、响应速度、数据时效性与稳定要求越来越高&#xff1b;但技术能力滞后业务增长&…

ESXI8中修改虚拟机磁盘格式

厚置备改精简置备 改后 所以&#xff0c;先开启SSH、Shell服务 流程如下&#xff1a; 使用root登录SSH [rootlocalhost:~] [rootlocalhost:~] cd "/vmfs/volumes/HDD1/SOESC" [rootlocalhost:/vmfs/volumes/64398ef2-3cb0bdb4-2552-e8611f32b3ac/SOESC] ls -lh …

R.I.P,又一位程序员巨佬——左耳朵耗子陨落

震惊&#xff01;谣言吧&#xff01;求辟谣&#xff01;默哀&#xff01; 左耳朵耗子&#xff0c;在程序员这个群体里应该属于 GOAT 的存在了&#xff0c;虽然每个人心目中都有自己的 GOAT&#xff0c;但耗子叔的影响力可以说是有目共睹。 我也是在技术群刷到这张图片的&#…

由浅入深理解java集合(二)——集合 Set

一、HashSet类 HashSet简介 HashSet是Set接口的典型实现&#xff0c;实现了Set接口中的所有方法&#xff0c;并没有添加额外的方法&#xff0c;大多数时候使用Set集合时就是使用这个实现类。HashSet按Hash算法来存储集合中的元素。因此具有很好的存取和查找性能。 HashSet特点…

Docker Swarm集群管理

秋风阁(https://focus-wind.com/) 文章目录 基本概念Swarm节点任务与服务 集群管理端口配置创建集群加入集群查看集群退出集群 节点设置节点标签设置节点信息查询 服务管理部署服务查看服务服务日志查看服务重启 Docker Swarm官方文档 Docker Swarm是Docker引擎原生内置的容器…

FE_函数(Function)的基本理解

1 函数&#xff08;Function&#xff09;的基本理解 函数就是在程序设计中&#xff0c;将一段代码封装起来&#xff0c;完成一个特定的功能&#xff0c;并给这段代码起一个名称&#xff0c;程序通过名称就可以执行这段代码。函数也是一个对象&#xff0c;也具有普通对象的功能…

华为测开面试记,三面被吊打,所幸最后Offer已到手

在互联网做了几年之后&#xff0c;去大厂“镀镀金”是大部分人的首选。大厂不仅待遇高、福利好&#xff0c;更重要的是&#xff0c;它是对你专业能力的背书&#xff0c;大厂工作背景多少会给你的简历增加几分竞争力。 但说实话&#xff0c;想进大厂还真没那么容易。最近面试华…