自动驾驶---Tesla的自动驾驶技术进化史(PerceptionPlanning)

1 前言

        笔者在专栏《自动驾驶Planning模块》中已经详细讲解了传统自动驾驶Planning模块的内容:包括行车的Behavior Planning和Motion Planning,以及低速记忆泊车的Planning(最开始有15篇,目前逐渐更新到17篇)。读者对整个传统的自动驾驶Planning模块的内容也有了一个清晰的认识。

fdf330928bb84ab38edffee11c7cb68e.png

        在之前的技术普及类博客《自动驾驶---Tesla之FSD简介》中,笔者也曾简单阐述了特斯拉自动驾驶目前的两个等级:AutoPilot和FSD,并介绍了这两个功能的特点。目前特斯拉基本代表自动驾驶量产技术的最高水平,因此通过了解特斯拉的技术发展,对于国内自动驾驶量产从业者也有较大的帮助。

        在本篇博客中,笔者将详细介绍特斯拉是如何从早期传统的自动驾驶系统迁移到完整的端到端自动驾驶系统。

        前排提示:篇幅较长,耐心观看;不妥之处,欢迎讨论。

2 FSD迭代进程

        本篇博客主要通过以下3个时间节点来阐述特斯拉FSD的进化史,主要参考了特斯拉每年AI Day的内容。

  1. 特斯拉在2021年:推出HydraNets和BEV
  2. 特斯拉在2022年:增加Occupancy网络
  3. 特斯拉在2023年:向端到端过渡

        从技术发展的迭代过程中会发现:特斯拉实际上已经为端到端做好了很长时间的准备。以下的每一个点都是一个很大的技术方案,笔者受限于掌握的知识深度,不能涉及到每一个技术的细节,尽量从宏观上让读者更容易明白。技术细节后面会进一步整理之后再慢慢阐述给各位读者朋友们。

2.1 时间点:2021年

        首先说说特斯拉感知模块,特斯拉感知的发展历程,也正是国内很多自动驾驶大厂或者主机厂的发展迭代的过程,像无图方案(无高精地图),BEV,Occupancy等,基本都是在引领着量产技术的潮流,因此特斯拉举办的AI Day也算是自动驾驶量产技术的盛宴了。

2.1.1 传感器

       特斯拉摄像头(一共8个)布局如下,当然早期还有雷达(后续舍弃)。

6644d3fbcff645d194ffba713fe1f779.png

ba6eb4b9263e43cd988fde220653e33d.png

        特斯拉自动驾驶负责人是这样解释去掉雷达的原因。 

        "The reason people are squeamish about using Vision is [...] people are not certain if neural networks are able to do range finding of depth estimation of these objects. So obviously humans drive around with vision, so obviously our neural net is able to process the inputs to understand depth and velocity of all the objects around us." Andrej Karpathy

2.1.2 数据标注

        为了训练神经网络来预测深度,需要一个包含数百万视频的庞大数据集。如何收集呢?这就体现出特斯拉的优势了,每天都有成千上万的车主开着特斯拉,因此特斯拉的数据集是非常容易获取的。

        但是如何给数千小时的视频贴标签呢?特斯拉使用神经网络,并且标签在某种程度上是半监督的。特斯拉开始离线进行自动标注,这样做有几个优点,神经网络可以是超重型的,甚至可以组合雷达或激光雷达输入。

aa08e0b086a944c2b5a69a4abbd6e948.png

2.1.3 网络训练

        一旦数据集标注完毕,就可以使用这些数据集进行神经网络的训练了。

8c26bc91412f45fd9e4974e92fc1ad4c.png

        下面详细说明整个原理:

  1. 所有8幅图像首先由图像提取器进行处理。为此,使用了类似于ResNets(残差网络)的体系结构。
  2. 然后,有一个多载波融合。这个想法是将所有8个图像组合成一个超级图像。为此,九头蛇使用了类似Transformer的架构。
  3. 再就是时间融合。其想法是将时间带入等式,并将超级图像与之前的所有超级图像融合。为此,有一个由N个图像组成的视频队列。例如,如果他们想用2秒融合,并且假设相机以每秒36帧的速度工作,N将是72。时间融合是用3D CNN、RNN和Transformer完成的。
  4. 最后,将输出拆分为HEADS。每个头都负责一个特定的用例,并且可以自己进行微调。如果说头过去只是头,那么它们现在有了主干(trunk)和终端(terminals)。这是一种更深入、更具体地了解用例类型的方法。每个终端都可以处理自己的任务(行人检测、红绿灯等)。

        需要注意的是,整个过程被一分为二:有两个时间融合过程,两个蓝色的头和两个绿色的头。这实际上是一种表明神经网络在两个芯片上并行运行的方式,推测是为了安全做的冗余备份。

2.1.4 HydraNets

        特斯拉的自动驾驶系统起步时,其感知模块依赖于Mobileye系统。同时也在推出HydraNets,整体架构图如下,这8个图像都是使用共享主干(Backbone)进行同步和融合的。然后,可以定制使用多个“头”(Objects,Traffic Lights,Markings等)。这种结构就是特斯拉所说的HydraNets:几个头,一个身体。

        这种结构的优点是,可以针对特定的用例(如障碍物检测)微调神经网络,而不会干扰其他任务(车道线等)。特斯拉不需要激光雷达,因为这些传感器的成本和尺寸,系统是由摄像头和雷达组成的。

276b5780cccf4a5cb255c90241705234.png

2.1.5 Bird-Eye-View

        同时在2021年Tesla AI Day,Andrej Karpathy 介绍了Bird-Eye-View概念。

59d8190029a844fe893ce2c81c8ade51.png

         自动驾驶感知中的BEV(Bird's-Eye-View),即鸟瞰视图,是一种在自动驾驶领域中广泛使用的环境感知方法。它模拟了从车辆正上方垂直向下观看地面的视角,能够提供一个全面、清晰且空间一致性的环境感知视图。以下是关于自动驾驶感知BEV的介绍:

(1)工作原理

        BEV算法主要将来自不同传感器(特斯拉主要是摄像头)的数据转换为车辆正上方俯瞰视角下的统一表示。这种转换涉及到图像到点云投影、坐标变换以及特征融合与映射等步骤。

  1. 图像到点云投影:对于视觉传感器,如摄像头,首先通过立体匹配、单目或多目深度估计等技术获取场景的三维信息,然后将这些信息投影到车辆坐标系下的垂直平面上,生成点云数据。
  2. 坐标变换:车载传感器的数据通常需要从各自传感器坐标系下转换到全局或车辆坐标系下,这涉及到坐标变换和校准过程。
  3. 特征融合与映射:在BEV空间上进行多传感器数据的融合,提取特征,如使用卷积神经网络或Transformer架构对这些特征进行处理,以生成BEV特征图。

(2)优点

  1. 全面的环境视图:BEV提供了车辆周围环境的全面视图,使得自动驾驶汽车能够更准确地感知和理解周围环境。
  2. 无遮挡或缩放问题:与2D感知相比,BEV不存在遮挡或缩放问题,能够更好地处理交叉或遮挡的车辆等复杂场景。
  3. 空间一致性:BEV提供了空间一致性的视图,有利于后续模块(如规划)的开发和部署。
  4. 全局视野:BEV能提供车辆周围较大范围的全景视野,不受单一传感器视线局限,对于复杂路口、交叉口以及交通拥堵等场景尤其重要。

2.1.6 Planning

        在2021年的AI day上,特斯拉介绍了三种规划方法:

(1)传统的A*算法

        在特定场景下,搜索节点到44000个才能完成搜索过程。A*的算法讲解可参考笔者之前写过的博客文章《自动驾驶---OpenSpace之Hybrid A*规划算法》,两者有着比较高的相似度。

(2)通过导航信息增强版的A*算法

        这种方法不是传统的调整“启发式”函数,而是更多的输入(具体细节没有透露)。优化完成只需要22000个节点就能完成搜索过程。

(3)神经网络增强版的MCTS算法

        通过将神经网络与传统的树搜索相结合,它可以达到少于300个节点的目标。

        基于蒙特卡洛树搜索的方法可参考笔者之前的博客《自动驾驶---Behavior Planning之MCTS》。目前还没看到Tesla发表的MCTS与神经网络结合相关的论文。

        特斯拉2021年感知和规控的整体架构如下图所示:

d3baa37efb4e44e7b1bfd80414ba9e59.png

2.2 时间点:2022年

        在2022年,特斯拉推出了一种新算法,称作 “占用网络”(Occupancy)。因为使用了占用网络,特斯拉自动驾驶系统不仅能够提高感知能力,还能够提升规划能力。特斯拉在2022年所做的就是在Perception模块中添加一个占用网络,因此将Perception模块分为两个子块:第一个是HydraNets,用于查找物体、标志、车道线等,第二个是占用网络,在3D世界中查找占用块。

2.2.1 Occupancy

        在讲解Occupancy之前,先理解为什么要使用Occupancy?

        如果自动驾驶车辆在行驶过程中看到的物体不是数据集的一部分,这个时候容易出现误判。
而在基于激光雷达的系统中,由于检测到点云,可以确定障碍物的存在,但是在相机系统中,必须首先使用神经网络检测物体,仅凭这一点就造成了许多事故。

f1bc8621485d43baaa795fc82f4a4755.png


        注意上图中列出的几个问题:

  • 对水平线上的深度非常敏感,只有2个左右的像素决定了一个大区域的深度。
  • 不可能透过遮挡物进行检测,也不可能驶过车辆。
  • 所提供的结构是二维的,但世界是三维的。
  • 对于悬挂的障碍物,通常会进行分类,然后设置成固定的矩形障碍物。
  • 可能存在裂缝、坑等非标注的场景,无法检测(它不是数据集的一部分)。

(1)概念

        占用网络是一种不同的算法,基于机器人的思想命名为占用网格映射;它包括将世界划分为一个网格单元,然后定义哪个单元被占用,哪个单元是安全的。

        首先,Occupancy Network的工作原理是将来自多视图图像的输入数据转换为一个三维特征空间。然后,它使用深度神经网络来学习这个特征空间中的占用概率。最后,Occupancy Network将这些占用概率转换为一个三维占用网格,这个网格可以精确地表示车辆周围环境中的障碍物和其它元素。

165f08a549c1408c950b8dbb246422a3.png

        参照下图所示,整个Occupancy的过程如下描述:

  • 首先,摄像头数据被发送到由Regnets和BiFPN组成的主干网(这些都是2022年最先进的特征提取器)。
  • 然后,注意力机制模块进行位置图像编码(这里起始就是Transformer神经网络),并使用关键字、值和固定查询(汽车与非汽车、公共汽车与非公共汽车、交通标志与非交通标志)来生成占用特征量。
  • 接着产生了一个占用特征体,然后将其与之前的占用体(t-1、t-2等)融合,以获得4D占用网格。
  • 最后,使用去卷积来检索原始大小,并获得两个输出:占用体和占用流。

d5bd211eb5d442aa9e257cc5453263ca.png

(2)Occupancy Flow

        占用体比较容易理解,占用流似乎不是那么容易理解,这里其实也涉及到预测的概念了,一辆车在摄像头视频数据里的移动,是如何体现到像素的变化里。

        为了做到这一点,使用了“光流”的技术。如果熟悉传统的计算机视觉,不少读者应该知道“光流”是什么意思。但其它领域的人(包括笔者)对这个概念不是很清晰,上网搜索了一番。
        光流是像素在时间上的运动。它可以通过传统方法或深度学习技术进行计算。得益于光流,可以使用该运动创建flow MAPS,描述每个像素在时间上的运动。流图的一个例子,每种颜色代表一个“方向”。

2c2d453ce23947128d60c21fa8c1abd2.png

        在分割图之后,对图像的每个像素进行分类,即深度图,它拍摄两个立体图像,并找到每个像素的深度。以两个连续的图像作为输入,可以得到运动矢量。

2221712c81b24880867491006a0ec489.png

        最终呈现的效果如下(红色:向前,蓝色:向后,灰色:静止,等等)。

2261115d654f4436991e6ef27e03d290.png

(3)NeRFs

        由于占用网络会生成3D占用体,然后可以将这些3D体与3D重建体(离线训练出来的)进行比较,从而比较重建的3D场景是否与“地图”(NeRF产生的3D重建)匹配。在这些重建过程中也可能出现图像模糊、下雨、大雾等问题。为了解决这一问题,特斯拉使用车队(众多特斯拉的社会车辆)的数据进行平均(每次车辆看到场景时,都会更新全局3D重建场景)。

        下面简单介绍一下NeRFs(神经辐射场)的概念:

        NeRFs(神经辐射场)是一种先进的计算机图形学和计算机视觉技术,它利用深度学习模型通过连续的3D函数来表示3D对象或场景。与传统的依赖点云或网格表示的方法不同,NeRFs通过将底层场景建模为神经网络来生成逼真的重建。

        NeRFs的核心思想是通过训练神经网络来学习场景的体积密度和颜色,从而能够渲染出从任意角度观察场景时的图像。这种技术使得我们能够以更高的精度和逼真度来捕捉和再现真实世界的三维物体和环境。

23681bcced1c46ef8723a473e7ebe58f.png

(2)应用

        在自动驾驶系统中,Occupancy Network主要用于以下任务:

  1. 障碍物检测:Occupancy Network能够检测车辆周围的障碍物,包括其他车辆、行人、骑自行车者等。这对于自动驾驶汽车来说至关重要,因为它需要准确地知道周围环境中的障碍物,以便进行安全的路径规划和车辆控制。
  2. 路径规划:Occupancy Network可以生成车辆的路径,并确保该路径避开障碍物。这使得自动驾驶汽车能够在复杂的环境中安全地行驶,同时考虑到其他交通参与者和潜在的障碍物。

        Occupancy Network通常与Bird's Eye View(BEV)图像一起使用,BEV图像提供了从车辆上方俯瞰的场景视图,包括车辆前方、后方、两侧和顶部。通过使用BEV图像和Occupancy Network,自动驾驶汽车可以获得一个全面且准确的环境感知能力,这对于实现安全的自动驾驶至关重要。

3cfae65c253649a0831eb4667088cc81.png

        针对比较特殊的障碍物(类似液压支撑臂),可以看下OCC的效果。

25f3335bbdf240379779f5c779821db1.png

        再看一个例子,如果你的数据集里没有对类似的物体进行标注,就可能出现危险。

a5e69207350749718e00dab8b0416877.png

        新的占用网络通过实现3个核心技术来解决上述遇到的这些问题:BEV图、占用检测和Voxels分类(通过三维被占网格的形状可训练得到是哪一种类型障碍物,检测类别可能错误,但是不会漏检)。

2.2.2 HydraNets 2.0

        HydraNets与2021年没有太大区别,只是它有一个额外的“Head”,是一个完整的神经网络来执行车道线检测任务。

d2c3fc5c286d446d8c878b7ddfdf096e.png

        在2022年特斯拉整个感知模块的整体架构如下所示(Occupancy用于3D建模,HydraNets 2.0用于车道线以及障碍物的检测):

fd96f35cc5914fb29cb2f34c409a439e.png

2.2.3 Planning

        Planning的流程如下,其实这个和国内很多自动驾驶公司的方案差不多,笔者在《自动驾驶Planning模块》专栏中基本做过介绍,区别主要在于内部的算法使用。

2a9ef6e077a5411aa662a941a9b50c82.png

        最初的神经网络规划已经不错了,但现在感知的输出中新增了Occupancy占用网格。因此在新的规划模块将占用体和车道集成到由蒙特卡洛树搜索和神经网络组成的架构中。为了理解搜索树的逻辑,以特斯拉在2022年AI Day上给出的例子(路口出现行人)。

d779b89d801f4211ae63cb5cb264675c.png

        蒙特卡洛树搜索(MCTS)的作用前面已经阐述过,这里就不多说了。然后重点说一说规划器里神经网络的作用,从特斯拉AI Day中可以得到的信息,全局规划似乎没有再使用之前的A*算法,而是直接使用MCTS作为全局规划的结果,在MCTS中插入自定义的代价函数,并且特斯拉应该用的是神经网络训练出的代价函数,原因是神经网络能够吸收场景的全局上下文,然后产生一个价值函数,有效地引导它向走向全局最小值,而不是陷入局部最小值,能够比较快的搜索到目标终点(感慨特斯拉学术量产的能力)。

        通过对决策轨迹的打分来选择轨迹,如下有两种选择:

        (1)在行人未走到左转车道之前,自车加速左转;

        (2)在行人穿过左转车道之后,自车减速左转;

6bf2282345e34b7a891cb327cb8f3083.png

       最终根据以下四个点去选择轨迹:

  1. 碰撞检测
  2. 舒适性
  3. 干预可能性
  4. 类人驾驶

       2022年特斯拉整个Planning的架构如下图所示:

e2710ca8aee84fbcab70f2e5c4e3d00e.png

        那么,再把感知和规控的架构放一起,整个特斯拉2022年自动驾驶的架构图如下:

e281b3b4f9f94ffd8c622f86ef7111ea.png

2.3 时间点:2023年

        在2023年,特斯拉在FSD v12版本完成了End-To-End 架构的切换。什么是端到端自动驾驶?端到端的自动驾驶方法将感知和决策集成在一个统一的模型中,通过直接学习从图像到驾驶行为的映射,简化了问题复杂性,提高了计算效率。

        因此,特斯拉做了两件事:

        (1)训练每个模块的深度神经网络;

        (2)端到端模型将这些神经网络组装在一起。

2.3.1 Deep Learning

       在这篇博客 《自动驾驶---End-to-end用于Planning行为规划》中,笔者大概介绍了Deep Learning的基本过程。在目前的自动驾驶中,Transformer神经网络逐渐被广泛使用。

73b945ba251947dfb17047f699008ee2.png

2.3.2 End-to-end

        有了多层的神经网络,如何将其合在一起又或者如何去训练数据呢?

        因此,主要的区别不在于模块本身,而在于它们是如何训练和优化的。在端到端系统中,模块被联合优化以实现单个总体目标。在非端到端系统中,每个块都是单独优化的,而不考虑较大系统的目标。

        看起来现在更像一个黑盒,但可以看到是如何使用占用网络和多头神经网络的,特斯拉把这些元素组装在一起。虽然这是一个黑盒,但是可以在任何时间点可视化Occupany的输出,可视化Object Detection的输出,直观Planning的输出等等。也可以单独训练这些元素,然后以端到端的方式进行微调。(具体的内容官方没有公布)

        特斯拉并不是唯一家做端到端的公司,虽然目前量产的公司不多。而Elon Musk在社交平台上表达过:使用端到端方法,不再需要“告诉”车辆在红灯或停车标志处停车,也不再在变道前验证决策,这辆车通过“模仿”训练使用的1000万视频中的司机,自己去解决车辆行驶过程中遇到的问题。

        因此,特斯拉一直在使用1000万视频(数据量会越来越多)的数据集,然后对每一个视频的驾驶员进行评分,并训练机器模仿“好驾驶员”的行为。理论上来说这个潜力是巨大的,可能会比普通人类司机的驾驶更优秀,因为模型在面对未知场景时可以更好地驾驶——它会在训练中找到最接近的行为,而不是停滞不前。

7544af4d0de14c03ba234fef000fe88b.png

3 总结

        通过本篇博客,读者朋友们可以了解到特斯拉在近几年自动驾驶发展的过程,可以看到,其实特斯拉并不是直接进行端到端的研究,通过感知的端到端,再到规控的端到端,都是逐步切入的,有一个发展过程。同时也钦佩特斯拉的勇气,敢于使用前沿的技术,并将其落地量产。

ee154dee742c4e7da0ab3315b315cf1b.png

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

linux:信号深入理解

文章目录 1.信号的概念1.1基本概念1.2信号的处理基本概念1.3信号的发送与保存基本概念 2.信号的产生2.1信号产生的五种方式2.2信号遗留问题(core,temp等) 3.信号的保存3.1 信号阻塞3.2 信号特有类型 sigset_t3.3 信号集操作函数3.4 信号集操作函数的使用 4.信号的处理4.1 信号的…

SSRF攻击技术

1、SSRF形成原因 SSRF(Server-Side Request Forgery:服务器端请求伪造) 是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF是要目标网站的内部系统。(因为他是从内部系统访问的,所有可以通过它攻击外网无法访问的内部系…

人类交互2 听觉处理和语言中枢

人类听觉概述 人类听觉是指通过耳朵接收声音并将其转化为神经信号,从而使我们能够感知和理解声音信息的能力。听觉是人类五种感觉之一,对我们的日常生活和交流至关重要。 听觉是人类交流和沟通的重要工具。通过听觉,我们能够听到他人的语言…

inventor 2021 Inventor 无法访问您的许可。网络许可不可用 也会出现在其他软件上

错误提示一般如下图 Inventor 无法访问您的许可。 无法访问您的许可 最常见的原因有: 未连接到 Internet许可服务器不工作许可服务器找不到有效许可 您可以执行以下操作: 检查是否连接到 Intemnet停止/重新启动许可服务器 如需进一步帮助,您可以: -与 CAD或IT管理…

2:硬件产品经理面试

流程: 市场评估: 组织立项:项目的交付时问,项目资金预算,项目组成员的确定及责任划分,开发和测试。 名种设计:外观材质的工业设计,硬件的架构设计,软件的功能设计&#x…

Go源码--sync库(1)sync.Once和

简介 这篇主要介绍 sync.Once、sync.WaitGroup和sync.Mutex sync.Once once 顾名思义 只执行一次 废话不说 我们看源码 英文介绍直接略过了 感兴趣的建议读一读 获益匪浅 其结构体如下 Once 是一个严格只执行一次的object type Once struct {// 建议看下源码的注解&#xf…

(Askchat.ai、360智脑、鱼聪明、天工AI、DeepSeek)

目录 1、Askchat.ai - 梦想为蓝图,ChatGPT为笔。 2、360智脑 — 以人为本,安全可信 3、鱼聪明AI - 做您强大的AI助手 (yucongming.com) 4、天工AI-搜索、对话、写作、文档分析、画画、做PPT的全能AI助手 (tiangong.cn) 5、DeepSeek | 深度求索 1、Askch…

字符函数:分类函数与转换函数

字符函数 一.字符分类函数二.字符转换函数 在编程的过程中,我们经常要处理字符和字符串,为了方便操作字符和字符串,C语⾔标准库中提供了一系列库函数,接下来我们就学习⼀下这些函数。 一.字符分类函数 C语言中有⼀系列的函数是专门…

allegro 无法删除Xnet

allegro 无法删除Xnet Orcad中打开Constraint Manager之后,再生成网表,导入PCB后就会出现一堆Xnet网络。无法去除Xnet。 解决办法 在原理图ORCAD中, 1、打开Edit Object properties 2、选择Filter by:Capture 3、点击New Property 4、设置…

头歌openGauss-存储过程第2关:修改存储过程

任务描述 本关任务&#xff1a; 修改存储过程pro0101&#xff0c;并调用&#xff1b; --修改sel_course表中成绩<60的记录为成绩10&#xff0c;然后将计算机学院所有学生的选课成绩输出&#xff1b; --a、需要先删除存储过程pro0101&#xff1b; drop procedure if exists p…

第七节 ConfigurationClassParser 源码分析

tips&#xff1a; ConfigurationClassParser 是 Springframework 中的重要类。 本章主要是源码理解&#xff0c;有难度和深度&#xff0c;也枯燥乏味&#xff0c;可以根据实际情况选择阅读。 位置&#xff1a;org.springframework.context.annotation.ConfigurationClassPars…

景源畅信:小白做抖音运营难吗?

在数字化时代&#xff0c;社交媒体已成为人们生活的一部分&#xff0c;而抖音作为其中的翘楚&#xff0c;吸引了众多希望通过平台实现自我价值和商业目标的用户。对于刚入门的小白来说&#xff0c;运营抖音账号可能会遇到不少挑战。接下来&#xff0c;我们将详细探讨这一话题&a…

由于找不到mfc140u.dll怎么办,介绍5种靠谱有效的解决方法

当您的电脑显示“mfc140u.dll丢失”的错误时&#xff0c;通常是因为系统中缺少了某个必要的动态链接库文件。这个问题可能会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。下面我将详细介绍解决该问题的五种方法。 一&#xff0c;关于mfc140u.dll文件的概述 mfc14…

数据防泄漏系统哪个好用,给文件加密的软件

数据防泄露&#xff08;Data Leakage Prevention&#xff0c;DLP&#xff09;是指通过一定的技术手段&#xff0c;防止组织指定&#xff08;重要或敏感的&#xff09;数据或信息资产以违反安全策略规定的形式流出组织的一种策略。 信息防泄露以文档加密技术为核心&#xff0c;…

【代码随想录 二叉树】二叉树前序、中序、后序遍历的迭代遍历

文章目录 1. 二叉树前序遍历&#xff08;迭代法&#xff09;2. 二叉树后序遍历&#xff08;迭代法&#xff09;3. 二叉树中序遍历&#xff08;迭代法&#xff09; 1. 二叉树前序遍历&#xff08;迭代法&#xff09; 题目连接 &#x1f34e;因为处理顺序和访问顺序是一致的。所…

SpringBoot入门教程:Word模板生成docx文件

一:处理docx 自己写一个docx文档,然后另存为选择格式 Word XML 文档(*.xml),然后使用thymeleaf语法将实际值使用表达式代替。 二:pom <dependency><groupId>org.springframework.boot</groupId>

朴素贝叶斯+SMSSpamCollections

1. 打开 Jupyter 后&#xff0c;在工作目录中&#xff0c;新建一个文件夹命名为 Test01 &#xff0c;并且在文件夹中导入数据 集。在网页端界面点击 “upload” 按钮&#xff0c;在弹出的界面中选择要导入的数据集。然后数据集出现 在 jupyter 文件目录中&#xff0c;此时…

机器学习第四十周周报 WDN GGNN

文章目录 week40 WDN GGNN摘要Abstract一、文献阅读1. 题目2. abstract3. 网络架构3.1 问题提出3.2 GNN3.3 CSI GGNN 4. 文献解读4.1 Introduction4.2 创新点4.3 实验过程4.3.1 数据获取4.3.2 参数设置4.3.3 实验结果 5. 结论二、GGNN1. 代码解释2. 网络结构小结参考文献参考文…

211初试自命题复试线仅302分!延边大学计算机考研考情分析!

延边大学&#xff08;Yanbian University&#xff09;&#xff0c;简称“延大”&#xff0c;地处吉林省延边朝鲜族自治州&#xff0c;是国家“双一流”建设高校、国家“211工程”重点建设大学、西部开发重点建设院校、吉林省人民政府和教育部共同重点支持建设大学、吉林省人民政…

Redis基础篇

文章目录 2 Redis入门概述3 Redis10大数据类型3.1 Redis自字符串String3.2 Redis列表List3.3 Redis哈希Hash3.4 Redis集合Set3.5 Redis有序集合Sorted Set3.6 Redis地理空间 GEO3.7 Redis基数统计 HyperLogLog3.8 Redis位图bitmap3.9 Redis位域bitField3.10 Redis流Stream 4 Re…