【深度学习】SMILEtrack: SiMIlarity LEarning for Multiple Object Tracking,论文

news/2024/5/20 22:48:32/文章来源:https://blog.csdn.net/x1131230123/article/details/132077334

论文:https://arxiv.org/abs/2211.08824
代码:https://github.com/WWangYuHsiang/SMILEtrack

文章目录

  • Abstract
  • Introduction
  • Related Work
    • Tracking-by-Detection
      • Detection method
      • Data association method
    • Tracking-by-Attention
  • Methodology
    • 架构概述
    • 外观相似性学习模块 (SLM)
      • 图像切片注意力(ISA)块
      • Image Slicing
      • The Q-K-V attention block
    • Similarity Matching Cascade (SMC) for Target Tracking
  • Experimental Results
    • Dataset
    • MOT Evaluation Metrics
    • Implementation Details
    • Evaluation Results
    • Ablation study
  • Conclusion

Abstract

多目标跟踪(MOT)在计算机视觉领域得到广泛研究,具有许多应用。基于检测的跟踪(TBD)是一种流行的多目标跟踪范式。TBD包括第一步的目标检测以及后续的数据关联、轨迹生成和更新。我们提出了一种受Siamese网络启发的相似性学习模块(SLM),用于提取重要的目标外观特征,并采用一种有效地结合目标运动和外观特征的方法。

这种设计加强了用于数据关联的目标运动和外观特征建模。我们为我们的SMILEtrack跟踪器的数据关联设计了一个相似性匹配级联(SMC)。SMILEtrack在MOTChallenge和MOT17测试集上分别达到了81.06 MOTA和80.5 IDF1的指标。

Introduction

多目标跟踪(MOT)是计算机视觉中的热门话题,在视频理解中起着至关重要的作用。MOT的目标是估计每个目标的轨迹,并尝试将它们与视频序列中的每一帧关联起来。随着MOT的成功,它可以在社会中广泛应用,例如车辆计算、计算机交互 [25] [12]、智能视频分析和自动驾驶。近年来,基于Tracking-By-Detection (TBD)范式方法的主导和高效的MOT策略 [1] [27] [26] 取得了显著进展。该方法根据检测结果进行跟踪,将问题分解为两个步骤:检测和关联。在检测步骤中,我们需要在单个视频帧中定位感兴趣的对象,在关联步骤中将每个对象与现有轨迹关联或创建新的轨迹。然而,由于模糊的目标、遮挡和复杂的场景,MOT仍面临挑战。

为了完成跟踪系统,解决方案模型可以分为分离检测和嵌入模型(SDE)和联合检测和嵌入模型(JDE)。我们的方法属于SDE;其架构如图1所示。SDE至少需要两个功能组件:一个检测器和一个重新识别模型。

首先,检测器通过边界框在单个帧中定位所有对象。然后,重新识别模型将从每个边界框中提取对象的特征以生成嵌入。最后,将每个边界框与现有轨迹中的一个关联或创建新的轨迹。然而,SDE方法无法实现实时推理速度,因为使用两个单独的模型来检测对象和提取嵌入时需要多次计算。检测器和重新识别模型之间的特征不能共享,SDE方法需要在推理时将重新识别模型应用于每个边界框以提取嵌入。面对这个问题,一个可行的解决方案是集成检测器和重新识别模型。JDE类别 [26] [32] 将检测器和嵌入模型合并到一个单次深度网络中。它可以通过一次推理同时输出检测结果和检测到的边界框的相应外观嵌入。

尽管JDE的成功使MOT任务取得了很高的准确性结果,但我们认为JDE仍然存在一些问题。例如,不同组件之间的特征冲突。我们认为,用于目标检测任务和目标重新识别任务的特征是完全不同的。目标检测任务需要高级特征来识别对象所属的类别,但目标重新识别任务的特征需要更多低级特征来区分同一类别中的不同实例。因此,JDE中的共享特征模型可能降低每个任务的性能。然而,正如我们上面提到的JDE的缺点,SDE可以克服这些缺点,并在MOT领域具有极高的潜力。

最近,基于注意力机制的Transformer [24]被引入到计算机视觉领域,并取得了出色的结果。在多目标跟踪(MOT)问题中,大多数基于Transformer的方法采用CNN + Transformer的框架。这意味着模型首先通过CNN架构提取输入图像特征,然后将这些特征图作为输入传递给Transformer。与基于检测的跟踪方法不同,基于Transformer的方法通过将检测和数据关联部分合并在一起来实现跟踪结果。它可以直接通过单个模型输出轨迹的身份和位置,而无需使用任何额外的轨迹匹配技巧。尽管基于Transformer的方法在特征关注方面具有出色的结果,但在将整个图像输入到Transformer架构时,推理速度仍然存在一定限制。

为了生成高质量的检测和物体外观,我们选择了SDE作为TBD模型,以解决JDE中的特征冲突问题。然而,我们认为大多数特征描述符无法清楚地区分不同对象之间的外观特征。

为了解决这个问题,我们提出了SMILEtrack,它结合了一个检测器和一个类似孪生网络的相似性学习模块(SLM)。受到视觉Transformer [6]的启发,我们创建了一个图像切片注意力块(ISA),它在SLM中使用了注意力机制和图像切片机制。此外,我们创建了一个相似性匹配级联(SMC),用于匹配视频中每帧之间的对象。我们跟踪系统的大致流程如下:首先,我们通过一个称为PRB的检测器预测目标边界框的位置。在获得物体边界框之后,我们通过SMC将边界框与轨迹关联起来。

我们的工作的贡献总结如下:

我们引入了一个名为SMILEtrack的分离检测和嵌入模型,并使用了类似孪生网络的相似性学习模块(SLM),用于学习每个对象之间的相似性。

对于SLM中的特征提取部分,我们构建了一个图像切片注意力块(ISA),它使用了切片方法和Transformer的注意力机制来学习物体的特征。

为了完成轨迹匹配部分,我们构建了一个相似性匹配级联(SMC),用于关联每个帧中的边界框。

在这里插入图片描述

Related Work

Tracking-by-Detection

基于TBD的算法在MOT问题中取得了相当大的成功,并成为MOT框架中最受欢迎的方法。TBD方法的主要任务是关联视频中每个帧之间的检测结果,以完成MOT系统。整个工作可以大致分为两部分。

Detection method

Faster R-CNN [18]是一种两阶段检测器,它使用VGG-16作为主干网络,通过区域建议网络(RPN)来检测边界框。SSD [11]使用了锚点机制来替代RPN,在每个特征图上设置不同大小的锚点以提高检测质量。YOLO系列[15] [16] [17] [2]是一种一阶段方法,它使用特征金字塔网络(FPN)来解决目标检测中的多尺度问题,并在速度和准确性方面表现出色。虽然基于锚点的检测器可以达到出色的性能,但仍然存在一些由锚点引起的问题。例如,基于锚点的检测器很难根据具体情况调整一些锚点的超参数,并且在训练过程中计算锚点的交并比(IOU)需要很多时间和内存。为了克服这些问题,无锚点检测器是另一种选择。CornerNet [9]是一种无锚点方法,它利用热图和角点池化来预测目标的左上角和右下角,然后匹配这两个点来生成物体的边界框。与CornerNet相比,CenterNet [34]通过中心池化和级联角点池化直接预测物体的中心点。YOLOX将YOLO系列从基于锚点的检测器转变为无锚点的检测器,并使用解耦头部来提高检测的准确性。

Data association method

在多目标跟踪(MOT)系统中,需要克服许多挑战,如物体遮挡、拥挤场景和动态模糊。

因此,数据关联方法需要仔细处理。SORT [1]首先使用卡尔曼滤波器根据当前帧的物体位置预测物体的未来位置,然后通过计算检测结果和已有目标的预测边界框之间的IOU距离生成分配成本矩阵。最后,使用匈牙利算法匹配分配成本矩阵。虽然SORT实现了高速推理时间,但由于它不考虑物体外观信息,无法处理长时间遮挡问题或快速移动的物体。

为了解决遮挡问题,Deep SORT [27]应用预训练的CNN模型提取边界框外观特征,然后使用外观特征计算轨迹和检测结果之间的相似度。最后使用匈牙利算法完成分配。

这种方式可以有效减少ID切换次数,但是Deep SORT中的检测模型和特征提取模型是分开的,导致推理速度远非实时。针对这个问题,JDE [26]将检测器和嵌入模型结合在一个一次性网络中,它可以实时运行,与两阶段方法相比准确度也较高。FairMOT [32]展示了锚点引起的不公平问题,它采用了在CenterNet基础上构建的无锚点方法,并在多个数据集(如MOT17 [14])中显著提高了性能。然而,我们认为JDE模型存在一些问题,例如不同组件之间的特征冲突。

与此同时,一些MOT跟踪方法 [21] [22]丢弃了物体外观特征,仅通过应用高性能检测器和运动信息完成跟踪系统。尽管这些方法在MOTChallenge基准测试中可以达到最先进的性能和高推理速度,但我们认为这部分是由于MOTChallenge基准数据集中运动模式的简单性所导致。

此外,不考虑物体外观特征可能导致物体跟踪的准确性在更拥挤的场景中缺乏鲁棒性。

Tracking-by-Attention

借助Transformer在物体检测方面的成功,Trackformer [13]将MOT视为一个集合预测问题,它基于DETR,并添加了对象查询和自回归跟踪查询来进行物体跟踪。

TransTrack [23]基于可变形DETR构建,有两个解码器,一个用于当前帧的检测,另一个用于先前帧的检测。它通过匹配两个解码器之间的检测框来解决跟踪问题。TransCenter [29]是一种基于点的跟踪方法,提出了一个密集的查询特征图,利用变换器对输入图像进行多尺度的MOT跟踪。

Methodology

在本节中,我们介绍了SMILEtrack模型的详细信息,包括相似性学习模块(SLM)和用于每帧框关联的相似性匹配级联(SMC)。

架构概述

SMILEtrack的整体架构如图2所示。我们的框架可以分为以下几个步骤:(1) 目标位置检测:为了定位目标对象的位置,我们采用PRB作为检测器。(2) 数据关联:通过关联相邻帧中的每个对象来解决MOT问题。在由PRB生成的检测结果之后,我们计算每个帧之间的运动亲和矩阵和外观亲和矩阵,然后使用这两个矩阵组合成的成本矩阵,通过匈牙利算法解决线性分配问题。

在这里插入图片描述

外观相似性学习模块 (SLM)

为了实现稳健的跟踪质量,目标的外观信息是不可或缺的。一些跟踪方法已经考虑了目标的外观信息。例如,DeepSORT应用一个简单的CNN构建的深度外观描述符来提取目标的外观特征。虽然外观描述符可以提取有用的外观特征,但我们发现它无法清楚地区分不同对象之间的外观特征。为了提取更具辨别性的外观特征,我们提出了一个类似孪生网络架构的相似性学习模块SLM。SLM的详细信息如图3所示。

在这里插入图片描述

对于SLM的输入,我们同时将两个不同的图像输入到SLM中。它们都将通过§ 3.2.1中的ISA特征提取器,该提取器在两个图像之间共享参数。ISA的架构稍后将进行更详细的介绍。在提取输入图像的特征之后,我们使用一个全连接层来整合这些特征。为了学习一个能够区分各种对象的稳健外观特征,我们应用余弦相似度距离来计算两个图像之间的相似度。

相同对象之间的相似度得分应尽可能高;否则,不同对象之间的相似度得分应接近零。

图像切片注意力(ISA)块

为了生成可靠的外观特征,优秀的特征提取器是必不可少的。虽然Transformer在特征增强方面表现出色,但我们认为将完整的编码器-解码器架构添加到跟踪系统中对模型计算和参数大小来说过于繁重。受到VIT的启发,我们构建了ISA,它应用图像切片技术和注意机制进行特征提取。ISA的详细架构如图4所示。

在这里插入图片描述

Image Slicing

在这里插入图片描述

The Q-K-V attention block

标准的Transformer擅长处理序列之间的长期复杂依赖关系,例如自然语言处理。其中最重要的部分是Transformer中的注意力块。Transformer通过将查询(query)打包成矩阵Q,键(keys)和值(values)打包成矩阵K和V来计算注意力函数。注意力块的计算可以表示为:

Attention(Q, K, V) = softmax(QK^T / sqrt(d_k))V

其中,(d_k) 是每个查询和键的维度,通过对该计算进行缩放可以确保梯度更稳定。

在这里插入图片描述
在这里插入图片描述

Similarity Matching Cascade (SMC) for Target Tracking

物体关联部分对于基于检测的跟踪范式方法非常重要。选择不同的匹配策略将导致完全不同的结果。ByteTrack是一种简单而有效的关联方法。

它保留了每个检测框并将其分为高置信度和低置信度两部分,然后通过IOU距离进行关联。虽然ByteTrack在MOT中达到了最先进的性能,但我们认为这部分是因为MOTChallenge基准数据集中运动模式的简单性。如果只使用关联部分的IOU距离信息,它仍然存在一些问题,例如当目标靠近时会出现id切换问题。为了解决这个问题,我们设计了一种变体关联方法,将ByteTrack和我们的SLM优势相结合。我们方法的匹配流程如图5所示,关联方法的伪代码如补充材料所示。

首先,我们确定当前帧中的所有检测框deti,并按照阈值thres将它们分为Dhigh集合和Dlow集合。对于thres值的设置,我们根据deti中检测d的得分从低到高重新排列,然后计算deti中前一半d的平均得分,并将平均得分设置为thres。在我们得到阈值thres之后,我们将得分高于thres的检测框放入Dhigh,将得分在thres和0.1之间的检测框放入Dlow。我们将得分低于0.1的检测框视为背景或噪声。在分离了检测框之后,我们将丢失的物体列表LL与跟踪列表TL合并,并使用卡尔曼滤波器预测TL中每个物体在当前帧的位置。关联部分主要分为两个阶段。

在这里插入图片描述

(第一阶段)在第一个关联阶段,我们首先关注Dhigh集合。我们计算Dhigh和TL的运动矩阵Mm和外观相似性矩阵Ma。对于运动矩阵Mm,我们计算TL和Dhigh之间的IOU距离。外观相似性矩阵Ma通过SLM计算。然后我们通过我们提出的Gate函数将矩阵Mm和Ma融合成代价矩阵Chigh:

在这里插入图片描述

(第二阶段)在第二个匹配阶段,我们匹配Dlow和TLRemain。Dlow和TLRemain的运动矩阵Mm的计算方式与第一个匹配阶段相同。

对于外观相似性矩阵Ma,我们建立了一个多模板SLM来学习低得分检测和轨迹之间的相似性。在处理低得分检测时,直接使用上一帧中的轨迹特征来计算相似性可能会得到不可靠的得分,因为低得分检测对象的特征与由一些遮挡引起的轨迹不同。

为了解决这个问题,我们应用了一个特征库机制,用于保存不同帧中轨迹的各种特征。第i个轨迹的特征库Fi与低得分第j个检测之间的相似度得分计算如下:

在这里插入图片描述

在得到矩阵Mm和Ma之后,我们将它们融合成代价矩阵Clow,方法与第一个匹配阶段相同,并使用匈牙利算法完成线性分配。Dlow中未匹配的检测和T LRRemain中未匹配的轨迹被放入DRRemain和T LRRemain。

完成物体关联阶段后,我们设置阈值H来初始化新的轨迹。DRemain中得分高于H的未匹配检测可以初始化一个新的轨迹,并将T LRRemain中的未匹配轨迹移动到丢失物体列表LL中。我们将DRRemain中的未匹配检测视为背景。请注意,只有当LL中的轨迹存在超过30帧时,我们才删除LL中的轨迹。

Experimental Results

Dataset

我们在MOTChallenge[14]基准测试集上进行实验。具体而言,我们按照“私有检测”协议对MOT17[14]的测试集进行评估。MOT17是MOTChallenge中最受欢迎的数据集。

它包含了14个视频序列(7个用于训练,另外7个用于测试),其中既有移动摄像头,也有静态摄像头。

其他常见的MOT数据集包括ETH[19]、CalTech[5]、MOT16[14]、CityPerson[31]、CrowdHuman[20]、ETHZ[7]、CUHK-SYSU[28]和PRW[33]。

ETH、MOT16和CityPerson数据集仅提供用于训练检测模型的边界框注释;因此,在训练re-ID和MOT模型的情况下,还需要额外的数据集。CalTech、PRW和CUHKSYSU数据集提供了用于训练re-ID模型的边界框位置和身份注释。

我们将SMILEtrack训练在MOT17训练集、CrowdHuman、ETHZ和Cityperson的组合上。针对消融研究,我们使用训练集的前半部分进行模型训练,使用后半部分进行验证。从MOT17视频序列中裁剪行人图像用于训练我们的SLM re-ID模型。

MOT Evaluation Metrics

标准的MOT评估指标包括多目标跟踪准确度(MOTA)、多目标跟踪精度(MOTP)、身份F1得分(IDF1)、主要跟踪(MT)、主要丢失(ML)、假阳性率(FP)、假阴性率(FN)、ID准确率(IDP)和ID切换次数(IDs)。其中,MOTA和IDF1是最常用的两个指标。MOTA和IDF1的公式如下所示:

在这里插入图片描述

MOTA是由FP、FN和IDs的组合来反映检测性能。相比之下,IDF1更注重身份匹配能力和数据关联性能。

MOTA综合考虑了假阳性(FP)、假阴性(FN)和ID切换次数(IDs),以反映出检测的整体表现。

而IDF1则更加关注身份匹配能力和数据关联的性能,它通过计算ID准确率(IDP)并与ID切换次数(IDs)和真阳性数(FPs)进行综合来评估。

Implementation Details

我们使用 COCO 数据集 [10] 对 PRB [4] 进行训练以进行权重初始化;然后在 MOT16 和 MOT17 数据集上对模型进行微调,以提高人体检测性能。在训练过程中,我们采用了多种数据增强方法,包括 Mosaic [2] 和 Mixup [30]。

在 MOT17 数据集的评估中,我们将 PRB 在 MOT17 训练集、CrowdHuman、ETHZ 和 Cityperson 的组合上进行了 100 个 epoch 的训练。输入图像的尺寸为1440 × 800。我们选择了 SGD 优化器,并将初始学习率设为 10^-3,使用余弦退火调度。

在训练 SLM 时,我们使用了从 MOT17 训练集中裁剪的自有数据集进行训练。由于从 MOT17 中裁剪出的每个行人大小不同,我们将其调整为固定尺寸 224 × 80。我们选择了 SGD 优化器,学习率初始设为 6.5 × 10^-3,使用余弦退火调度。我们使用 MSE [3] 损失函数进行 150 个 epoch 的训练。

对于 SMC 中我们提出的 Gate 函数,我们将阈值 ε 设置为 0.7 以筛选成本矩阵。在线性分配阶段,我们会拒绝那些检测和轨迹之间成本矩阵高于 0.2 的匹配。

对于初始的新对象,我们将阈值 H 设置为 0.7 以筛选检测结果。在用于每个对象的多模板 SLM 中,我们设置了能够存储 50 帧外观的特征库。此外,我们将特征库分为两个类别,即高分模板和低分模板。对于那些具有高置信度分数的检测结果,我们将其外观特征存储在高分模板中;否则,我们将低置信度分数检测结果的外观特征放入低分模板中。

Evaluation Results

表1显示了使用MOTChallenge的“private detector”协议,在MOT17测试集上,SMILEtrack与最先进的跟踪器进行的评估结果。所有结果均使用官方MOTChallenge评估网站生成。SMILEtrack取得了出色的结果,MOTA为80.3,IDF1为77.3。具体而言,我们使用消融研究中的最佳结果作为MOT17评估的模型设置。我们将SLM相似性特征维度设置为256以追踪目标。我们使用IOU和外观信息计算两个SMC匹配阶段的相似性矩阵。Gate函数用于融合IOU和外观信息,多模板SLM用于解决低检测分数的问题。

在这里插入图片描述
在这里插入图片描述

Ablation study

Conclusion

本文提出了SMILEtrack,一种类似孪生网络结构的架构,能够有效地学习用于单摄像头多目标跟踪的物体外观。我们开发了一种相似性匹配级联(SMC)来进行每帧边界框的关联。实验证明,我们的SMILEtrack在MOT17上取得了较高的MOTA、IDF1和IDs性能得分。

未来的工作。由于SMILEtrack是一种分离检测和嵌入(SDE)方法,其运行速度较慢,比不上联合检测和嵌入(JDE)方法。因此,我们将在未来研究中探索能够改善MOT时间与准确性之间平衡的方法。

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

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

相关文章

Excel功能总结

1)每一张表格上都打印表头 “页面布局”-->“打印标题”-->页面设置“工作表”页-->打印标题“顶端标题行” 如:固定第1~2行,设置成“$1:$2” 2)将页面内容打印在一页【缩印】 1.选好需要打印的区域,“页面布…

“单片机定时器:灵活计时与创新功能的关键“

学会定时器的使用对单片机来说非常重要,因为它可以帮助实现各种时序电路。时序电路在工业和家用电器的控制中有广泛的应用。 举个例子,我们可以利用单片机实现一个具有按钮控制的楼道灯开关。当按钮按下一次后,灯会亮起并持续3分钟&#xff…

删除这4个文件夹,流畅使用手机无忧

在现代社会中,手机已经成为我们生活中不可或缺的一部分。然而,随着使用时间的增长,我们可能会遇到手机卡顿和内存不足的问题,让我们感到十分困扰。手机卡顿不仅影响使用体验,还可能导致应用程序运行缓慢,甚…

网络安全 Day26-PHP 简单学习

PHP 简单学习 1. 为什么要学习PHP2. PHP语法3. php 变量4. 字符串数据5. PHP 函数6. 数组 1. 为什么要学习PHP php存量多开源软件多很多安全流程 渗透方法 sql注入基于PHP语言入门简单 2. PHP语法 格式: <?php 内容?>或<?内容?>结尾分号例子<?php phpin…

网络安全(秋招)如何拿到offer?(含面试题)

以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&#xf…

Python小白学习:超级详细的字典介绍(字典的定义、存储、修改、遍历元素和嵌套)

目录 一、字典简介1.1 创建字典1.2 访问字典中的值1.3 添加键值对1.4 修改字典中的值实例 1.5 删除键值对1.6 由多个类似对象组成的字典1.7 使用get()访问值1.8 练习题 二、遍历字典2.1 遍历所有键值对实例 2.2 遍历字典中的所有键2.3 按照特定顺序遍历字典中的所有键2.4 遍历字…

在java中存储对象到redis出现类型转换异常的解决方法

**出现的问题,**此时的redisCatch已经注入 原因:这里传进来的是一个对象,redis不能直接将对象存到String中,必须将对象进行序列化转成json字符串再存储,其次.传进来的对象不能是null 再重新启动就行了

Java阶段五Day21

Java阶段五Day21 文章目录 Java阶段五Day21问题解析rocketmq清空数据 linux学习背景什么是linux系统虚拟机介绍启动 虚拟机linux虚拟机网络的问题 linux系统的基础命令命令提示符命令格式pwd指令ls指令cd指令mkdirtouch指令cp指令rm指令mv指令cat指令tail指令 文本编辑器vim操作…

k8s存储卷

目录 一、为什么要存储卷&#xff1f;二、emptyDir存储卷三、hostPath存储卷四、 nfs共享存储卷五、PVC 和 PV5.1 PV和PVC之间的相互作用遵循的生命周期5.2 PV 的状态5.3 一个PV从创建到销毁的具体流程 六、静态创建pv和pvc资源由pod运用过程6.1 在NFS主机上创建共享目录&#…

Hopfield神经网络求解旅行商(TSP)问题matlab代码

1案例背景 1.1连续Hopfield神经网络概述 1.网络结构 连续Hopfield神经网络(Continuous Hopfield Neural Network,CHNN)的拓扑结构和离散Hopfield神经网络的结构类似,如图11-1所示。连续Hopfield网络和离散Hopfield 网络的不同点在于其传递函数不是阶跃函数,而是连续函…

《皮囊》阅读笔记

《皮囊》阅读笔记 2023年8月2号在杭州小屋读完&#xff0c;该书共收录14篇散文&#xff0c;内容大致分为两部分&#xff1a;前半部分讲述作者的阿太&#xff08;外婆的母亲&#xff09;、母亲、父亲关于生活哲学、房子、疾病与信仰的故事&#xff0c;后半部分讲述生活在小镇的张…

SpringBoot Plus+代码生产器

0目录 1. Mybatis Plus 2.代码生产器 1.Mybatis Plus 创建数据库和表&#xff08;id没有设置主键和自增长&#xff09; 创建springBoot导入依赖 安装lombok 配置yml 实体类加入注解 无参构造和有参构造 Mapper接口 扫描接口 测试 加入日志 添加 数据库…

JVM问题

1. jvm运行时区域划分及每个区域的作用 堆、方法区&#xff08;元空间&#xff09;、虚拟机栈、本地方法栈、程序计数器 2. 堆内存分配策略&#xff1a;新生代&#xff0c;老年代&#xff0c;gc时机 • 对象优先分配在Eden区&#xff0c;如果Eden区没有足够的空间进行分配时&am…

idea打开传统eclipse项目

打开传统web项目 1.打开后选择项目文件 2.选择项目结构 3.设置jdk版本 4.导入当前项目模块 5.选择eclipse 6. 设置保存目录 7.右键模块&#xff0c;添加spring和web文件 8. 设置web目录之类的&#xff0c;并且创建打包工具 9.如果有本地lib&#xff0c;添加为库 最后点击应用&…

深度学习里面为什么喜欢用对数

1.这样可以简化计算并提高稳定性&#xff0c;有着相同的临界点 2.由P(A).P(B)给出两个独立事件A和B共同出现的概率。如果我们使用log&#xff0c;即log(P(A)) log(P(B))&#xff0c;这很容易映射到一个和。因此&#xff0c;更容易将神经元触发的“事件”作为线性函数来处理。…

QT图形视图系统 - 使用一个项目来学习QT的图形视图框架 - 始篇

文章目录 QT图形视图系统介绍开始搭建MainWindow框架设置scene的属性缩放功能的添加加上标尺 QT图形视图系统 介绍 详细的介绍可以看QT的官方助手&#xff0c;那里面介绍的详细且明白&#xff0c;需要一定的英语基础&#xff0c;我这里直接使用一个开源项目来介绍QGraphicsVi…

LabVIEW深度相机与三维定位实战(下)

‍‍&#x1f3e1;博客主页&#xff1a; virobotics的CSDN博客&#xff1a;LabVIEW深度学习、人工智能博主 &#x1f384;所属专栏&#xff1a;『LabVIEW深度学习实战』 &#x1f37b;上期文章&#xff1a;『LabVIEW深度相机与三维定位实战&#xff08;上&#xff09;』 &#…

纯小白也能看懂,十分钟帮你快速了解云原生概念

纯小白也能看懂&#xff0c;十分钟帮你了解云原生技术 一、麻烦的一天二、魔法的种子1. Docker2. Kubernetes 三、渐入佳境1. 技术与术语容器化技术DevOps弹性伸缩Sidecar服务网格 2. 组件与框架DockerKubernetesHelmIstioPrometheusJaegerEnvoy 四、前路漫漫 随着云原生相关技…

自然语言处理: 第六章Transformer- 现代大模型的基石

理论基础 Transformer&#xff08;来自2017年google发表的Attention Is All You Need (arxiv.org) &#xff09;&#xff0c;接上面一篇attention之后&#xff0c;transformer是基于自注意力基础上引申出来的结构&#xff0c;其主要解决了seq2seq的两个问题: 考虑了原序列和目…

JavaEE 面试常见问题

一、常见的 ORM 框架有哪些&#xff1f; 1.Mybatis Mybatis 是一种典型的半自动的 ORM 框架&#xff0c;所谓的半自动&#xff0c;是因为还需要手动的写 SQL 语句&#xff0c;再由框架根据 SQL 及 传入数据来组装为要执行的 SQL 。其优点为&#xff1a; 1. 因为由程序员…