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

自动驾驶---视觉Transformer的应用

1 背景

        在过去的几年,随着自动驾驶技术的不断发展,神经网络逐渐进入人们的视野。Transformer的应用也越来越广泛,逐步走向自动驾驶技术的前沿。笔者也在博客《人工智能---什么是Transformer?》中大概介绍了Transformer的一些内容:结构和简单应用。

        本篇博客带领读者朋友们领略视觉Transformer在自动驾驶领域的应用。主要参考文献为:《A Survey of Vision Transformers in Autonomous Driving: Current Trends and Future Directions》。

2 视觉Transformer

        论文中主要探索了视觉Transformers模型在自动驾驶中的适应性,这一转变受到Transformers在自然语言处理中所获得成功的启发。Transformers在序列图像处理等任务中超越了传统的递归神经网络(RNNs),在全局上下文捕获任务中优于卷积神经网络(CNNs),就如复杂场景识别所证明的那样,它在计算机视觉中越来越受欢迎。这些能力在自动驾驶中实时、动态的视觉场景处理方面是至关重要的。

        在论文中全面概述了视觉Transformers在自动驾驶中的应用,着重于自注意力、多头注意力和编码器-解码器架构等基本概念。涵盖了目标检测、分割、行人检测、车道检测等领域的应用,比较了它们的架构优势和局限性。

2.1 主要内容

        Transformer已经彻底改变了自然语言处理(NLP),BERT、GPT和T5等模型在语言理解方面树立了新的标准。它们的影响超出了NLP,因为计算机视觉(CV)采用了Transformers进行视觉数据处理。从传统的卷积神经网络(CNNs)和递归神经网络(RNNs)到CV中的变换器的这种转变意味着它们的影响力越来越大,在图像识别和对象检测中的早期实现显示出有希望的结果。
        在自动驾驶中,Transformer正在转换一系列关键任务,包括对象检测、车道检测和分割,并且可以与强化学习相结合来执行复杂的路径查找。它们擅长处理空间和时间数据,优于传统的细胞神经网络和复杂函数中的RNN,如场景图的生成和跟踪。Transformer的自我注意机制提供了对动态驾驶环境的更全面的理解,这对自动驾驶汽车的安全导航至关重要。
       论文中对自动驾驶中的视觉Transformer进行了广泛的概述,探讨了它的发展、分类和各种应用。从Transformer架构的基本方面开始,论文深入研究了视觉Transformer在自动驾驶中的作用,强调了对3D和2D感知任务的改进。

        基本架构图可参考下图:

6f4547035522479fb6f3b2dd263ac6c9.png

  • 输入嵌入(Input Embeddings):将输入序列中的词或符号转换为向量表示。
  • 位置编码(Positional Encodings):为输入序列中的每个位置添加位置信息,以便模型能够区分不同位置的词。
  • 编码器(Encoder):由多个相同的层堆叠而成,每一层包含两个子层:多头自注意力机制和前馈神经网络。
  • 解码器(Decoder):也由多个相同的层堆叠而成,每一层包含三个子层:多头自注意力机制、编码器-解码器注意力机制和前馈神经网络。
  • 多头注意力机制(Multi-Head Attention):通过将注意力机制应用于多个投影版本的查询、键和值来捕捉不同表示空间中的信息。
  • 前馈神经网络(Feed-Forward Neural Network):两个全连接层之间的ReLU激活函数,用于每个位置独立地处理输入。
  • 残差连接(Residual Connections):在每个子层中添加残差连接,并进行层归一化(Layer Normalization)以避免梯度消失或爆炸问题。
  • 位置编码合并(Position-wise Feed-Forward Networks):在每个位置独立地应用前馈神经网络,以增加模型的非线性建模能力。

2.2 自注意力机制

640edf628b38494c8ad3829ea50d4903.png

        Transformer模型的核心是自注意机制(如上图所示),它评估输入序列的各个片段如何相互关联。在此过程中,每个输入元素被转换成三个矢量:查询(q)、键(k)和值(v),通常为维度d=512,并被编译成矩阵Q、K和V。然后,注意力函数通过查询和键之间的点积计算交互得分,然后进行归一化(除以eq?%5Csqrt%7Bd%7D) 以稳定训练。
        这些分数通过softmax函数转换为概率,指示每个元素所需的关注程度。最终输出(Y)计算如下:

0fcd5204ee884b9b8bb62881bdc43b0b.png

        这是值向量的加权和,封装了整个序列的上下文。编码器-解码器注意机制允许解码器集中在输入序列的相关段上,由其当前状态和来自编码器的输出来通知。这种机制,再加上向输入嵌入添加唯一位置信息的位置编码,确保了对序列排序的全面理解。

2.3 多头注意力机制

351a11b0000b42aeb5ae1553f6b2c098.png

        多头注意力机制(上图)增强了分析多维度输入数据的的能力。最初,输入向量被划分为三个不同的头的集合:查询集Q′,键集K′和值集V'。每个子集的维数为d/h。

        这些集合由较小的向量组成——具体地说,每组h个向量,当d为512时,每个向量的维数为64。然后将这些向量分组以形成矩阵Q′,K′,和V′,用于之后的注意力计算。多头注意力流程的形式化如下:

9588a0e0a70446079b2ae1f878e6647c.png

        其中每个头eq?head_i 被定义为Y。在这种情况下,Q′,K'和V′表示由它们各自的矢量的级联形成的集合矩阵,eq?W%5EO是将注意力头的单独输出组合成单个输出向量的学习权重矩阵。

2.4 其它重要机制

        前馈网络(FFN)是Transformer模型的重要组成部分,在每个单元中进行自注意计算后定位。它由具有非线性激活函数的两阶段线性运算组成,通常为高斯误差线性单元(GELU)。这在数学上表示为:

7c49e366571e4fdda91abb648201b5a5.png

         其中eq?W_1eq?W_2是可学习参数的矩阵,eq?%5Csigma表示非线性函数。FFN的作用是增强处理复杂数据模式的能力,其中间层通常容纳约2048个单元。

        跳过连接是Transformer模型每一层的组成部分,增强了信息流并解决了消失梯度问题。
这些连接将输入直接添加到子层的输出中:

92f5a568deba426a9ee74b78a1ea19b0.png

        其中X是输入,eq?Z%28X%29是输出。跳过连接,结合层归一化,确保稳定的学习。一些变量采用层前归一化来进行优化,并在每个子层之前使用归一化。

        先了解一下什么是logits?logits表示未归一化的概率,即各个特征的加权之和。logits经过sigmoid或softmax函数变为归一化的概率值。

        Transformers中的输出层对于将矢量序列转换为可解释的输出至关重要。它包括将向量线性映射到与词汇表大小匹配的logits空间,然后是将logits转换为概率分布的softmax函数。这一层是将处理后的数据转换为最终的、可理解的结果的关键,在各种数据处理任务中至关重要。
        自动驾驶中的Transformer具有高级特征提取器的功能,与细胞神经网络不同的是,它集成了更大视野中的信息,以实现全局场景理解。它们并行处理数据的能力提供了显著的计算效率,这对自动驾驶汽车的实时处理至关重要。全局视野和效率使Transformer极具优势用于自动驾驶技术,增强系统功能。

3 视觉Transformer的应用

        在NLP(自然语言处理)中基本都是在vanilla Transformer概念的基础上进行研究,本节主要说明视觉Transformer的动态世界及其在自动驾驶中的影响力。视觉Transformer已经发生了重大变化,展示了其在车辆技术中的多功能性和有效性。接下来的部分将详细介绍如何在自动驾驶的各个维度上使用视觉Transformer。首先探索它们在3D任务中的使用,包括物体检测、跟踪和3D分割等基本功能,这些功能是环境感知的基础。然后过渡到2D任务,突出了它们在车道检测、复杂分割和高清晰度地图创建方面的能力——所有这些都对解释二维空间数据至关重要。
        最后,论文深入研究了视觉Transformer的其他关键作用,如轨迹和行为预测及其在端到端自动驾驶系统中的集成。通过视觉Transformer在自动驾驶中的应用,不仅展示了它们的适应性,还强调了它们在增强自动驾驶汽车能力方面日益重要的影响力。

3.1 视觉Transformer的崛起

        下图带来了自动驾驶中图像处理的范式转变,用自注意层取代了传统的卷积层。这种变革性的方法将图像分割成不同的补丁,以使用由自注意层和前馈层组成的Transformer编码器进行分析。这使得能够对重要的图像片段进行集中分析,从而大大提高驾驶场景中的感知能力。
        对于较大的图像,ViT采用了一种混合模型,结合了卷积层和自注意层。这种创新策略对于有效处理复杂的视觉数据至关重要,这是自动驾驶汽车复杂决策的关键要求。

11775ce2da9145de9a2d1d79e031c268.png

3.2 3D感知任务

        视觉Transformer在3D物体检测方面带来了重大创新,PETR、CrossDTR、BEVFormer和UVTR等模型处于领先地位。PETR特别使用位置嵌入变换来增强具有3D坐标信息的图像特征,从而提供更详细的空间理解。CrossDTR集成了DETR3D和PETR的优势,创建了一个统一的检测框架,该框架由跨视图分析和深度指导提供信息。BEV Former利用时空视觉Transformer架构,通过无缝集成空间和时间数据实现统一的BEV表示。另一方面,UVTR专门从事深度推断,利用跨模态相互作用形成不同的体素空间,从而实现对精确的3D对象检测至关重要的广泛的多模态分析。
        随着视觉Transformer的集成,自动驾驶中的3D分割领域有了显著的改进。TPVFormer、VoxFormer等和SurroundOcc是值得注意的例子。TPVFormer通过将体积转换为BEV平面来减少计算负载,从而保持语义占用预测的高精度。VoxFormer使用2D图像创建3D体素查询建议,通过可变形的交叉注意力查询增强分割。SurroundOcc利用一种独特的方法从不同视图和比例的2D图像中提取3D BEV特征,熟练地合并这些特征以绘制出密集占用的空间。

        视觉Transformer模型为自动驾驶汽车的3D对象跟踪带来了变革。像MOTR和MUTR3D这样的模型扩展了传统跟踪方法的能力。MOTR以DETR模型为基础,引入了一种“跟踪查询”机制,用于对视频序列的时间变化进行建模,避免了对传统启发式方法的依赖。MUTR3D引入了一种创新的方法,允许同时进行检测和跟踪。它利用不同相机和帧之间的关联来理解随着时间的推移,物体的三维状态和外观,从而大大提高了自动驾驶系统中的跟踪精度和效率。

3.3 2D感知任务

       在自动驾驶中,与2D感知相关的任务包括检测车道、分割各种元素和创建高清地图等关键功能。这些任务的重点是处理和理解二维空间数据,这是自动驾驶汽车技术的一个关键方面。与处理深度和体积的3D任务不同,2D任务需要对平面和平面元素进行精确解释,这对自动驾驶汽车的精确导航和安全至关重要。
        车道检测是有效利用Transformer模型的主要领域,可分为两组。第一组包括BEVSegFormer等模型,该模型使用交叉注意力机制进行多视图2D图像特征提取,并使用基于CNN的语义分割进行准确的车道标记检测。另一个例子,PersFormer将用于2D车道检测的细胞神经网络与用于增强纯电动汽车特征的变压器相结合。第二组以LSTR和CurveFormer等模型为特色,专注于从2D图像中直接生成道路结构。这些模型使用Transformer查询来细化道路标线,并实现曲线查询以有效生成车道线,展示了Transformer在车道检测任务中的多功能性和准确性。
        除了车道检测,Transformer模型越来越多地应用于自动驾驶中的分割任务。TIiM以其序列到序列模型举例说明了这一应用,该模型有效地将图像和视频转换为开销BEV图,将图像中的垂直扫描线链接到图中的相应射线,以实现数据高效和空间感知处理。Panoptic SegFormer提供了一种包罗万象的全景分割方法,集成了语义和实例分割。利用监督掩码解码器和查询解耦策略,提高了分割效率。该模型展示了Transformer架构在处理复杂分割任务方面的灵活性。
        在高清晰度地图生成领域,STSU、VectorMapNet和MapTR等Transformer架构正在带来重大进步。STSU将车道视为有向图,重点学习Bezier控制点和图连接,将前视图摄像机图像转换为详细的道路结构。另一方面,VectorMapNet在高精度地图的端到端矢量化方面处于领先地位,利用稀疏折线基元对几何形状进行建模。MapTR为矢量化地图生成提供了一个在线框架,将地图元素视为点集,并采用分层查询嵌入方案。这些模型强调了在将多视图特征合并为有凝聚力的汽车视角方面的进展,这对于创建准确详细的自动驾驶地图至关重要。

3.4 预测、规划和决策任务

        Transformer在自动驾驶中越来越重要,尤其是在预测、规划和决策方面。这一进展标志着向端到端的深度神经网络模型的重大转变,该模型将整个自动驾驶管道(包括感知、规划和控制)集成到一个统一的系统中。这种整体方法反映了传统模式的实质性演变,表明朝着更全面和自动驾驶汽车技术的集成解决方案。
        在轨迹和行为预测中,基于Transformer的模型,如VectorNet、TNT、DenseTNT、mmTransformer和AgentFormer,已经解决了标准CNN模型的局限性,特别是在远程交互建模和特征提取方面。VectorNet通过以下方式增强了对空间关系的描述采用层次图神经网络,用于高清晰度地图和agent轨迹表示。TNT和DenseTNT改进了轨迹预测,DenseTent引入了无锚预测功能。mmTransformer利用堆叠架构进行简化的多模式运动预测。AgentFormer允许直接的代理间状态随时间的影响,保存关键的时间和交互信息。WayFormer通过其创新的融合策略进一步解决了静态和动态数据处理的复杂性,提高了数据处理的效率和质量。
        自动驾驶的端到端模式有了显著的发展,特别是在规划和决策方面。TransFuser通过使用多个Transformer模块进行全面的数据处理和融合,举例说明了这一演变。NEAT引入了一种新的BEV坐标映射函数,将2D图像特征压缩为流线型表示。在此基础上,InterFuser提出了一种用于多模式传感器数据融合的统一架构,增强了安全性和决策准确性。MMFN扩展了数据类型的范围,包括高清地图和雷达,探索了多种融合技术。STP3和UniAD进一步为该领域做出了贡献,STP3专注于时间数据集成和UniAD重组任务,以实现更有效的规划。这些模型共同标志着向集成、高效和更安全的自动驾驶系统迈出了重要一步,展示了Transformer技术在该领域的变革性影响。

4 面临的挑战

  • 数据效率

        视觉Transformer通常需要大量数据进行训练。如何通过数据增强、迁移学习等技术提高数据效率。

  • 实时性

        自动驾驶对实时性要求极高。优化模型结构、减少计算量等方法来提高处理速度。

  • 鲁棒性

        自动驾驶系统需要应对各种复杂环境和天气条件。通过增强模型的泛化能力来提高鲁棒性。

5 总结

        本文对自动驾驶中的Transformer模型,特别是视觉Transformer进行了比较全面的说明,展示了它们的意义超越了传统的卷积神经网络(CNNs)和递归神经网络(RNNs)。探索了Transformer在自然语言处理和计算机视觉方面的基础架构、基于注意力的处理优势,以及它们在各种自动驾驶任务中的卓越性能,包括3D对象检测、2D车道检测和高级场景分析。

        此外,视觉Transformer凭借其细致入微的数据处理能力,有望在车载技术方面取得令人兴奋的进步。

 

相关文章:

自动驾驶---视觉Transformer的应用

1 背景 在过去的几年,随着自动驾驶技术的不断发展,神经网络逐渐进入人们的视野。Transformer的应用也越来越广泛,逐步走向自动驾驶技术的前沿。笔者也在博客《人工智能---什么是Transformer?》中大概介绍了Transformer的一些内容&#xff1a…...

预训练语言模型实践笔记

Roberta output_hidden_statesTrue和last_hidden_states和pooler_output 在使用像BERT或RoBERTa这样的transformer模型时,output_hidden_states和last_hidden_state是两个不同的概念。 output_hidden_states: 这是一个布尔值,决定了模型是否应该返回所…...

Perl 哈希

Perl 哈希 Perl 哈希是一种强大的数据结构,用于存储键值对集合。它是 Perl 语言的核心特性之一,广泛应用于各种编程任务中。本文将详细介绍 Perl 哈希的概念、用法和最佳实践。 什么是 Perl 哈希? Perl 哈希是一种关联数组,其中…...

Linux之Mysql索引和优化

一、MySQL 索引 索引作为一种数据结构,其用途是用于提升数据的检索效率。 1、索引分类 - 普通索引(INDEX):索引列值可重复 - 唯一索引(UNIQUE):索引列值必须唯一,可以为NULL - 主键索引(PRIMARY KEY):索引列值必须唯一,不能为NULL,一个表只能有一个主键索引 - 全…...

springboot业务逻辑写在controller层吗

Spring Boot中的业务逻辑不应该直接写在Controller层。‌ 在Spring Boot项目中,‌通常将业务逻辑分为几个层次,‌包括Controller层、‌Service层、‌Mapper层和Entity层。‌ 1.其中,‌Controller层主要负责处理HTTP请求,‌通过注…...

Ubuntu 24.04 LTS 桌面安装MT4或MT5 (MetaTrader)教程

运行脚本即可在 Ubuntu 24.04 LTS Noble Linux 上轻松安装 MetaTrader 5 或 4 应用程序,使用 WineHQ 进行外汇交易。 MetaTrader 4 (MT4) 或 MetaTrader 5 是用于交易外汇对和商品的流行平台。它支持各种外汇经纪商、内置价格分析工具以及通过专家顾问 (EA) 进行自…...

Go基础编程 - 12 -流程控制

流程控制 1. 条件语句1.1. if...else 语句1.2. switch 语句1.3. select 语句1.3.1. select 语句的通信表达式1.3.2. select 的基特性1.3.3. select 的实现原理1.3.4. 经典用法1.3.4.1 超时控制1.3.4.2 多任务并发控制1.3.4.3 监听多通道消息1.3.4.4 default 实现非堵塞读写 2. …...

汽车信息安全--TLS,OpenSSL

目录 TLS相关知识 加密技术 对称加密 非对称加密 数字签名和CA 信任链 根身份证和自签名 双方TLS认证 加密和解密的性能 TLS相关知识 加密技术 TLS依赖两种加密技术 1. 对称加密(symmetric encryption) 2. 非对称加密(asymmetri…...

深入探索 SQL 中的 LIKE 右模糊匹配(LIKE RIGHT)与左模糊匹配(LIKE LEFT)

引言 在数据库操作中,LIKE 子句是执行模糊搜索的强大工具,用于匹配列中的数据与指定的模式。本文将详细介绍 LIKE 子句中的两种常用模式:右模糊匹配(LIKE RIGHT)和左模糊匹配(LIKE LEFT)&#…...

mybatis 多数据源 TDataSource required a single bean, but 2 were found

情况说明: 项目中本来就有一个数据源了,运行的好好的后来又合并了另一个项目,另一个项目也配置了数据源。 于是出现了如下错误: mybatis 多数据源 TDataSource required a single bean, but 2 were found 解决方法&#xff1a…...

Dubbo SPI 之路由器

1. 背景介绍 Dubbo 是一个高性能的 Java RPC 框架,由阿里巴巴开源并广泛应用于分布式系统中。在 Dubbo 的架构中,SPI(Service Provider Interface)是一个关键组件,允许在运行时动态加载不同的服务实现。SPI 机制提供了…...

Python深度学习环境配置(Pytorch、CUDA、cuDNN),包括Anaconda搭配Pycharm的环境搭建以及基础使用教程(保姆级教程,适合小白、深度学习零基础入门)

全流程导览 一、前言二、基本介绍2.1全过程软件基本介绍2.1.1 Pytorch2.1.2 Anaconda2.1.3 Pycharm2.1.4 显卡GPU及其相关概念2.1.5 CUDA和cuDNN 2.2 各部分相互间的联系和安装逻辑关系 三、Anaconda安装3.1安装Anaconda3.2配置环境变量3.3检验是否安装成功 四、Pycharm安装五、…...

月影护眼大路灯怎么样?书客|月影|霍尼韦尔超硬核实力性能测评pk!

月影护眼大路灯怎么样?选到专业优质的护眼大路灯是真的可以使我们在用眼时减少疲劳感,达到护眼效果,但如果不慎买到劣质的护眼灯产品,不仅达不到健康的环境光,还越用越觉得眼睛疲劳感加重,在水深的护眼灯市…...

邮件安全篇:邮件传输加密(SSL/TLS or STATRTTLS)

1. 前言 使用过邮件客户端的同学一定见过下面这张图。这是客户端账号配置界面,里面有SSL、STARTTLS选项。刚接触邮件客户端的同学肯定会有这些疑问:什么是SSL?什么是STARTTLS?两者有什么区别?具体该如何选择呢&#x…...

【系统架构设计 每日一问】三 Redis支持事务么,Redis的事务如何保证

实际上,关于Redis事务的说法“Redis 的事务只能保证隔离性和一致性(I 和 C),无法保证原子性和持久性(A 和 D)”并不完全准确。下面我将分别解释Redis事务的四个特性:原子性(Atomicit…...

【中项】系统集成项目管理工程师-第4章 信息系统架构-4.3应用架构

前言:系统集成项目管理工程师专业,现分享一些教材知识点。觉得文章还不错的喜欢点赞收藏的同时帮忙点点关注。 软考同样是国家人社部和工信部组织的国家级考试,全称为“全国计算机与软件专业技术资格(水平)考试”&…...

DasViewer打开Revit输出的fbx格式的模型,为啥一团黑?

答:这个应该是没有读取到贴图文件。贴图文件和obj文件需要在同级目录下面。 DasViewer是由大势智慧自主研发的免费的实景三维模型浏览器,采用多细节层次模型逐步自适应加载技术,让用户在极低的电脑配置下,也能流畅的加载较大规模实景三维模型,提供方便快捷的数据浏览操作。 免…...

【05】LLaMA-Factory微调大模型——初尝微调模型

上文【04】LLaMA-Factory微调大模型——数据准备介绍了如何准备指令监督微调数据,为后续的微调模型提供高质量、格式规范的数据支撑。本文将正式进入模型微调阶段,构建法律垂直应用大模型。 一、硬件依赖 LLaMA-Factory框架对硬件和软件的依赖可见以下…...

Training for Stable Diffusion

1.Training for Stable Diffusion 笔记来源: 1.Denoising Diffusion Probabilistic Models 2.最大似然估计(Maximum likelihood estimation) 3.Understanding Maximum Likelihood Estimation 4.How to Solve ‘CUDA out of memory’ in PyTorch 5.pytorch-stable-d…...

初学51单片机之指针基础与串口通信应用

开始之前推荐一个电路学习软件,这个软件笔者也刚接触。名字是Circuit有在线版本和不在线版本,这是笔者在B站看视频翻到的。 Paul Falstadhttps://www.falstad.com/这是地址。 离线版本在网站内点这个进去 根据你的系统下载你需要的版本红线的是windows…...

【启明智显分享】甲醛检测仪HMI方案:ESP32-S3方案4.3寸触摸串口屏,RS485、WIFI/蓝牙可选

今年,“串串房”一词频繁引发广大网友关注。“串串房”,也被称为“陷阱房”“贩子房”——炒房客以低价收购旧房子或者毛坯房,用极度节省成本的方式对房子进行装修,之后作为精修房高价租售,因甲醛等有害物质含量极高&a…...

Linux 驱动学习笔记

1、驱动程序分为几类? • 内核驱动程序(Kernel Drivers):这些是运行在操作系统内核空间的驱动程序,用于直接访问和控制硬件设备。它们提供了与硬件交互的底层功能,如处理中断、访问寄存器、数据传输等。 •…...

ip地址设置了重启又改变了怎么回事

在数字世界的浩瀚星海中,IP地址就如同每个设备的“身份证”,确保它们在网络中准确无误地定位与通信。然而,当我们精心为设备配置好IP地址后,却时常遭遇一个令人费解的现象:一旦设备重启,原本设定的IP地址竟…...

layui table 浮动操作内容收缩,展开

layui table 隐藏浮动操作内容 fixed: right, style:, title: 操作,align:left, minWidth: 450, toolbar:#id分析: 浮动一块新增一个class layui-table-fixed-r 可以隐藏整块内容进行,新增一个按钮点击时间,然后进行收缩和展开 $(‘.layui-…...

Ubuntu24.04 NFS 服务配置

1、NFS 介绍 NFS 是 Network FileSystem 的缩写,顾名思义就是网络文件存储系统,它允许网络中的计算机之间通过 TCP/IP 网络共享资源。通过 NFS,我们本地 NFS 的客户端应用可以透明地读写位于服务端 NFS 服务器上的文件,就像访问本…...

vue3使用html2canvas

安装 yarn add html2canvas 代码 <template><div class"container" ref"container"><div class"left"><img :src"logo" alt"" class"logo"><h2>Contractors pass/承包商通行证&l…...

OpenCV分水岭算法watershed函数的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 描述 我们将学会使用基于标记的分水岭算法来进行图像分割。我们将看到&#xff1a;watershed()函数的用法。 任何灰度图像都可以被视为一个地形表…...

laravel为Model设置全局作用域

如果一个项目中存在这么一个sql条件在任何情况下或大多数情况都会被使用&#xff0c;同时很容易被开发者遗忘&#xff0c;那么就非常适用于今天要提到的这个功能&#xff0c;Eloquent\Model的全局作用域。 首先看一个示例&#xff0c;有个数据表&#xff0c;结构如下&#xff1…...

Leetcode之string

目录 前言1. 字符串相加2. 仅仅反转字母3. 字符串中的第一个唯一字符4. 字符串最后一个单词的长度5. 验证回文串6. 反转字符串Ⅱ7. 反转字符串的单词Ⅲ8. 字符串相乘9. 打印日期 前言 本篇整理了一些关于string类题目的练习, 希望能够学以巩固. 博客主页: 酷酷学!!! 点击关注…...

OS:处理机进程调度

1.BackGround&#xff1a;为什么要进行进程调度&#xff1f; 在多进程环境下&#xff0c;内存中存在着多个进程&#xff0c;其数目往往多于处理机核心数目。这就要求系统可以按照某种算法&#xff0c;动态的将处理机CPU资源分配给处于就绪状态的进程。调度算法的实质其实是一种…...

【车辆轨迹处理】python实现轨迹点的聚类(一)——DBSCAN算法

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、单辆车轨迹的聚类与分析1.引入库2.聚类3.聚类评价 二、整个数据集多辆车聚类1.聚类2.整体评价 前言 空间聚类是基于一定的相似性度量对空间大数据集进行分组…...

Apache Kylin

Apache Kylin 是一个开源的分布式分析引擎&#xff0c;提供 SQL 查询接口及多维分析&#xff08;OLAP&#xff09;能力以支持超大规模数据集。它能在亚秒级的时间内提供 PB 级数据的查询能力&#xff0c;非常适合大数据分析和报表系统。 ### 入门指南 #### 1. 环境准备 首先…...

为何Vue3比Vue2快

Proxy响应式 PatchFlag 编译模板时&#xff0c;动态节点做标记标记&#xff0c;分为不同的类型&#xff0c;如TEXT PROPSdiff算法时&#xff0c;可以区分静态节点&#xff0c;以及不同类型的动态节点 <div>Hello World</div> <span>{{ msg }}</span>…...

人工智能与社交变革:探索Facebook如何领导智能化社交平台

在过去十年中&#xff0c;人工智能&#xff08;AI&#xff09;技术迅猛发展&#xff0c;彻底改变了我们与数字世界互动的方式。Facebook作为全球最大的社交媒体平台之一&#xff0c;充分利用AI技术&#xff0c;不断推动社交平台的智能化&#xff0c;提升用户体验。本文将深入探…...

八股文之java基础

jdk9中对字符串进行了一个什么优化&#xff1f; jdk9之前 字符串的拼接通常都是使用进行拼接 但是的实现我们是基于stringbuilder进行的 这个过程通常比较低效 包含了创建stringbuilder对象 通过append方法去将stringbuilder对象进行拼接 最后使用tostring方法去转换成最终的…...

深度挖掘行情接口:股票市场中的关键金融数据API接口解析

在股票市场里&#xff0c;存在若干常见的股票行情数据接口&#xff0c;每一种接口皆具备独特的功能与用途。以下为一些常见的金融数据 API 接口&#xff0c;其涵盖了广泛的金融数据内容&#xff0c;其中就包含股票行情数据&#xff1a; 实时行情接口 实时行情接口&#xff1a…...

逆向破解 对汇编的 简单思考

逆向破解汇编非常之简单 只是一些反逆向技术非常让人难受 但网络里都有方法破解 申请变量 &#xff1a; int a 0; 00007FF645D617FB mov dword ptr [a],0 char b b; 00007FF645D61802 mov byte ptr [b],62h double c 0.345; 00007FF645D61…...

搜维尔科技:人机交互学术应用概览

人机交互学术应用概览 搜维尔科技&#xff1a;人机交互学术应用概览...

植物遗传转化相关介绍【卡梅德生物】

植物的遗传转化是指以植物器官、组织、细胞或原生质体作为受体&#xff0c;应用重组DNA技术&#xff0c;将外源基因导入植物基因组&#xff0c;以获得转基因植物的技术。目前应用最普遍的植物基因的遗传转化方法主要有农杆菌介导法和DNA直接转入法。 一&#xff0e;植物遗传转化…...

0711springNews新闻系统管理 实现多级评论

0611springmvc新闻系统管理-CSDN博客 0711springNews新闻系统管理项目包 实现多级评论-CSDN博客 数据库字段 需要添加父节点id&#xff0c;通过该字段实现父评论和子评论的关联关系。 对象属性 实现链表&#xff0c;通过一个父评论可以找到它对应的所有子孙评论。 业务层 实现…...

如何在Ubuntu上安装并启动SSH服务(Windows连接)

在日常的开发和管理工作中&#xff0c;通过SSH&#xff08;Secure Shell&#xff09;连接到远程服务器是一个非常常见的需求。如果你在尝试通过SSH连接到你的Ubuntu系统时遇到了问题&#xff0c;可能是因为SSH服务未安装或未正确配置。本文将介绍如何在Ubuntu上安装并启动SSH服…...

docker build时的网络问题

docker build时无法yum安装包&#xff0c;因为无法访问外网&#xff0c;无法ping通外网。 解决办法&#xff1a; systemctl stop NetworkManager.service firewall-cmd --permanent --zonetrusted --change-interfacedocker0 systemctl start NetworkManager.service systemct…...

Vue的安全性:防范XSS攻击与安全最佳实践

引言 随着Web应用的普及,前端安全问题日益受到重视。Vue作为当下流行的前端框架,其安全性也成为开发者关注的焦点。跨站脚本攻击(XSS)是常见的Web安全漏洞之一,本文将讨论如何在使用Vue时防范XSS攻击,并分享其他Vue中的安全最佳实践。 什么是XSS攻击? XSS攻击是一种将…...

ARM架构(一)—— ARMV8V9基础概念

目录 1.ARMCore的时间线2.ARM术语小结2.1 A64和arrch642.2ARM架构现在的5个系列2.3 微架构2.4 PE2.5 Banked2.6 ARM文档术语2.7 IMPLEMENTATION DEFINFD 和 DEPRECATED2.8 EL1t和EL1h 3 ARMv7的软件架构4 安全状态切换模型4.1 Secure state和Non-secure state介绍 5 Interproce…...

如何使用Python进行数据分析

Python是一种广泛应用于数据科学和机器学习领域的编程语言。本文将介绍如何使用Python进行数据分析&#xff0c;包括Python在数据分析中的应用场景、常用库和工具&#xff0c;以及实际案例分析。 一、Python在数据分析中的应用场景 数据清洗&#xff1a;处理缺失值、异常值&a…...

Python学习笔记40:游戏篇之外星人入侵(一)

前言 入门知识已经学完&#xff0c;常用标准库也了解了,pygame入门知识也学了&#xff0c;那么开始尝试小游戏的开发。 当然这个小游戏属于比较简单的小游戏&#xff0c;复杂的游戏需要长时间的编写累计开发经验&#xff0c;同时也需要一定的时间才能编写出来。现在的话还是嫩…...

R的数据集读取和利用,如何高效地直接复制黏贴数据到R

​​​​​​R语言自带了许多内部数据集,这些数据集不仅为初学者提供了丰富的练习资源,还为研究人员和数据分析师提供了方便的数据测试和模型验证工具。在这篇文章中,我们将详细探讨如何读取和使用数据集。 一、认识数据集 1、数据和数据集 数据(Data)是指以某种形式表示…...

@JsonProperty 踩坑

JsonProperty 在fastjson 和 hutooljson 中是不会生效的。 在 fastjson 中&#xff0c;对应的注解是 JSONField。如果你正在使用 fastjson 进行 JSON 的序列化和反序列化&#xff0c;并且想要改变字段的 JSON 属性名&#xff0c;你应该使用 JSONField 注解&#xff0c;而不是 …...

业务架构、数据架构、应用架构和技术架构分析

一文看懂&#xff1a;什么是业务架构、数据架构、应用架构和技术架构 TOGAF&#xff08;开放集团架构框架&#xff09;是企业广泛应用的架构设计和管理利器。其核心在于四大架构领域&#xff1a;业务、数据、应用和技术&#xff0c;助力组织高效运作。TOGAF&#xff0c;让架构设…...

android studio中svn的使用

第一步&#xff0c;建立一个项目。 第二步&#xff0c;share project。 第三步&#xff0c;选择存放的位置&#xff0c;然后添加提交信息&#xff0c;最后点击share。这样就可以在svn上面看到一个空的项目名称。 第四步&#xff0c;看到文件变成了绿色&#xff0c;点击commit图…...