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

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

论文: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时间与准确性之间平衡的方法。

相关文章:

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

论文:https://arxiv.org/abs/2211.08824 代码:https://github.com/WWangYuHsiang/SMILEtrack 文章目录 AbstractIntroductionRelated WorkTracking-by-DetectionDetection methodData association method Tracking-by-Attention Methodology架构概述外观…...

【Kubernetes】Kubernetes之二进制部署

kubernetes 一、Kubernetes 的安装部署1. 常见的安装部署方式1.1 Minikube1.2 Kubeadm1.3 二进制安装部署2. K8S 部署 二进制与高可用的区别2.1 二进制部署2.2 kubeadm 部署二、Kubernetes 二进制部署过程1. 服务器相关设置以及架构2. 操作系统初始化配置3. 部署 etcd 集群4. 部…...

京东开源的、高效的企业级表格可视化搭建解决方案:DripTable

DripTable 是京东零售推出的一款用于企业级中后台的动态列表解决方案,项目基于 React 和 JSON Schema,旨在通过简单配置快速生成页面动态列表来降低列表开发难度、提高工作效率。 DripTable 目前包含以下子项目:drip-table、drip-table-gene…...

STL C++学习背景

STL C学习背景 背景知识 背景知识 STL前置知识 STL,英文全称 standard template library,中文可译为标准模板库或者泛型库,其包含有大量的模板类和模板函数,是 C 提供的一个基础模板的集合,用于完成诸如输入/输出、数…...

C#踩坑:谨慎在XML数据列上绑定鼠标事件!

按照计划,昨天晚上就完成最后的公式自动计算,程序的流程就算完整了,可以正常运行了,一般情况下,是可以完成的。 10点开始干,窗体上放置一个Treeview,然后针对XML对Treeview进行数据绑定&#xf…...

逻辑代数运算

逻辑代数运算中的三种基本运算 与(AND):只有满足全部条件,才会产生结果 或(OR) :只要满足一个条件,就会产生结果 非(NOT):只要满足条件&#xff…...

win10笔记本显示器根据页面显示亮度自动调节亮度的问题

系统是win10企业版,针对这个问题查了很多种方法,比如: 1、控制面板->硬件和声音->电源选项->点击当前电源计划的更改计划设置->更改高级电源设置->显示->启用自适应亮度 但是我发现我的电源计划只有平衡这一种&#xff0c…...

无人驾驶实战-第一课(自动驾驶概述)

在七月算法上报了《无人驾驶实战》课程,老师讲的真好。好记性不如烂笔头,记录一下学习内容。 课程入口,感兴趣的也可以跟着学一下。 ————————————————————————————————————————— 无人驾驶汽车的定义…...

15.节点操作

15.1 DOM节点 1.DOM节点 DOM树里每一个内容都称之为节点 2.节点类型 ●元素节点 所有的标签 比如body、div html是根节点 ●属性节点 所有的属性 比如href ●文本节点 所有的文本 15.2查找节点 1.父节点查找: parentNode属性 返回最近一级的父节点找不到返回为n…...

C语言自定义类型 — 结构体、位段、枚举、联合

前言 本期主要对通讯录三篇博客文章进行补充 通讯录文章:通讯录系列文章 对结构体进行详细介绍,其次讲解位段、枚举、联合体 文章目录 前言一、结构体1.什么是结构体2.结构声明2.1 声明格式2.2 如何声明(代码演示) 3.特殊声明3.1…...

新手指南:流程图中各种图形的含义及用法解析

我们经常在技术设计、沟通、业务演示等一些领域看到流程图,它也可以称为输入输出图。顾名思义,它是指一种简单的工作流程的具体步骤,比如包括一次会议的流程,以及一次生产制造的顺序和过程等。本文将为大家介绍流程图的含义和具体…...

【知识产权】专利的弊端

接上篇【知识产权】著作权的作用_qilei2010的博客-CSDN博客。 ​ 1 专利的分类 首先,专利分为:发明专利、实用新型专利、外观设计专利。这里要说明的是专利的不同种类在不同的国家都是有不同规定的,并不是所有国家和地区都是分成这三类。 >国家法律法规数据库 >中华…...

用Rust实现23种设计模式之抽象工厂

在 Rust 中,可以使用 trait 和泛型来实现抽象工厂模式。抽象工厂模式是一种创建型设计模式,它提供了一个接口来创建一系列相关或依赖对象的家族,而无需指定具体的类。下面是一个简单的示例,展示了如何使用 Rust 实现抽象工厂模式&…...

31.利用linprog 解决 投资问题(matlab程序)

1.简述 语法:[X,FVAL] linprog(f,a,b,Aeq,Beq,LB,UB,X0); X 为最终解 , FVAL为最终解对应的函数值 *注意:求最大值时,结果FVAL需要取反* f 为决策函数的系数矩阵。 *注意:当所求为最大值…...

整数线性规划求解工具isl使用方法

整数线性规划求解工具 Integer Set Library 代码 参考 isl是一个用于多面体模型调度实现的c/c库。通过isl,我们可以对模型进行自动的调度,循环优化等。 编译 ISL,Integer Set Library 版本0.22.1,http://isl.gforge.inria.fr/ README关于…...

SystemC的调度器

文章目录 前言调度器初始化evaluatewait updatenotify delta notificationtime notification仿真结束 前言 SystemC是基于C的库,主要用来对 IC 进行功能建模和性能建模。有时也被用来当做 RTL (register transfer level) 级的升级版 HLS(High Level synthesis) 直接…...

SpringBoot、SpringCloud 版本查看

1、SpringBoot 官网地址 https://spring.io/projects/spring-boot#learn spring-boot-starter-parent 版本列表可查看: https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent 2、SpringCloud 官网地址 https://spring.io/pro…...

AI Chat 设计模式:12. 享元模式

本文是该系列的第十二篇,采用问答式的方式展开,问题由我提出,答案由 Chat AI 作出,灰色背景的文字则主要是我的一些思考和补充。 问题列表 Q.1 给我介绍一下享元模式A.1Q.2 也就是说,其实共享的是对象的内部状态&…...

Spring mvc:SpringServletContainerInitializer

SpringServletContainerInitializer实现了Servlet3.0规范中定义的ServletContainerInitializer&#xff1a; public interface ServletContainerInitializer {void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException; }SpringServletCont…...

微信小程序中的全局数据共享(状态管理)使用介绍

开发工具&#xff1a;微信开发者工具Stable 1.06 一、状态管理简介 微信小程序全局状态是指可以在不同页面之间共享的数据或状态。 它可以存储用户的登录状态、个人信息、全局配置信息等。 二、安装MobX 1、安装NPM 在资源管理器的空白地方点右键&#xff0c;选择“在外部…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务

通过akshare库&#xff0c;获取股票数据&#xff0c;并生成TabPFN这个模型 可以识别、处理的格式&#xff0c;写一个完整的预处理示例&#xff0c;并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务&#xff0c;进行预测并输…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

Psychopy音频的使用

Psychopy音频的使用 本文主要解决以下问题&#xff1a; 指定音频引擎与设备&#xff1b;播放音频文件 本文所使用的环境&#xff1a; Python3.10 numpy2.2.6 psychopy2025.1.1 psychtoolbox3.0.19.14 一、音频配置 Psychopy文档链接为Sound - for audio playback — Psy…...

【HTTP三个基础问题】

面试官您好&#xff01;HTTP是超文本传输协议&#xff0c;是互联网上客户端和服务器之间传输超文本数据&#xff08;比如文字、图片、音频、视频等&#xff09;的核心协议&#xff0c;当前互联网应用最广泛的版本是HTTP1.1&#xff0c;它基于经典的C/S模型&#xff0c;也就是客…...

MySQL账号权限管理指南:安全创建账户与精细授权技巧

在MySQL数据库管理中&#xff0c;合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号&#xff1f; 最小权限原则&#xf…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...

Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换

目录 关键点 技术实现1 技术实现2 摘要&#xff1a; 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式&#xff08;自动驾驶、人工驾驶、远程驾驶、主动安全&#xff09;&#xff0c;并通过实时消息推送更新车…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制&#xff0c;展现出显著的技术优势&#xff1a; 深层组织穿透能力&#xff1a;适用于活体组织深度成像 高分辨率观测性能&#xff1a;满足微观结构的精细研究需求 低光毒性特点&#xff1a;减少对样本的损伤…...