『论文阅读|2024 WACV 多目标跟踪Deep-EloU|纯中文版』

论文题目: Iterative Scale-Up ExpansionIoU and Deep Features Association for Multi-Object Tracking in Sports

论文特点: 作者提出了一种迭代扩展的 ExpansionIoU 和深度特征关联方法Deep-EIoU,用于体育场景中的多目标跟踪,旨在解决非线性、不规则运动、相似外观的在线短时多目标跟踪问题,实验表明,提出的方法对于提高跟踪鲁棒性是有效的,缺点就是该方法目前仅适用于短时跟踪,可能无法解决目标短暂消失入镜重识别问题,实时性较差。

论文下载链接: https://arxiv.org/abs/2306.13074。

摘要

基于深度学习的目标跟踪算法推动了多目标跟踪算法的显著进步。然而,目前的跟踪方法主要关注行人或车辆这类简单、规则的运动模式。这就为运动员等非线性、不规则运动目标的跟踪算法留下了空白。此外,当物体运动违反卡尔曼滤波器的线性假设时,在最近的跟踪算法中依赖卡尔曼滤波器就会出现问题。为了克服这些问题,Huang等人提出了一种新颖的在线鲁棒多目标跟踪方法,名为ExpansionIoU (Deep-EIoU),主要用于运动场景的多目标跟踪。与传统方法不同的是,放弃了卡尔曼滤波器的使用,而是利用迭代扩展 ExpansionIoU 和深度特征来实现运动场景中的鲁棒跟踪。这种方法无需采用更强大的检测器就能实现卓越的跟踪性能,同时还能保持在线跟踪过程。提出的方法在跟踪不规则运动物体方面效果显著,在 SportsMOT 数据集上获得了 77.2% 的 HOTA 分数,在 SoccerNet-Tracking 数据集上获得了 85.4% 的 HOTA 分数。在涵盖各种运动场景的各种大规模多目标跟踪基准测试中,该方法的表现优于之前所有最先进的跟踪器。代码和模型可在 https://github.com/hsiangwei0903/Deep-EIoU 上获取。

1 引言(Introduction)

多目标跟踪(MOT)是一项基本的计算机视觉任务,旨在跟踪视频中的多个物体,并在每一帧中对其进行定位。最近的大多数跟踪算法 [33, 1, 28, 4],主要侧重于行人或车辆跟踪,在公共基准测试中取得了巨大进步 [19, 8, 11]。然而,这些最先进的算法在难度较高的数据集上,尤其是那些包含体育场景的数据集上表现不佳[7, 6, 36]。鉴于自动战术分析和运动员运动统计(包括跑步距离和移动速度)等应用对体育分析的需求日益增长,体育多目标跟踪领域需要更多关注。

与行人或车辆的多目标跟踪不同,运动场景中的 MOT 具有更高的难度,由于多种原因,包括如图 2 所示的运动场景中高强度运动造成的严重遮挡、如图 3 所示的同队球员之间因球衣颜色相同而产生的相似外观,以及一些运动动作(如篮球中的交叉步、足球中的滑铲或排球中的扣球)造成的不可预测运动。由于上述原因,以往利用外观-运动融合[34, 28]或单纯基于运动[33, 5, 4]方法的跟踪器在体育场景中的几个主要 MOT 基准[6, 7]上难以进行稳健跟踪。 alt alt

为了解决这些问题,在本文中提出了一种新颖、稳健的在线多目标跟踪算法,专门针对具有不规则和不可预测运动的物体而设计。实验结果表明,该算法能在跟踪过程中有效处理运动员的不规则和不可预测运动。在两个大型公共基准测试[7]中,该算法的性能优于所有跟踪算法,而且在保持算法在线的同时,没有引入额外的计算损失。因此,在本文中提出了三个主要贡献:

  • 提出了一种简单而有效名为 ExpansionIoU 的新型关联方法,以专门应对体育跟踪中的挑战,可用于跟踪具有不规则运动和相似外观的物体。

  • 提出的迭代扩展 ExpansionIoU 进一步利用了深度特征关联,可用于体育场景中稳健的多目标跟踪。

  • 所提出的方法在 SportsMOT [7] 数据集上实现了 77.2 HOTA,在 SoccerNet-Tracking 数据集 [6] 上实现了 85.4 HOTA,大大优于之前所有的跟踪算法。 alt

2 相关工作(Related Work)

2.1 基于卡尔曼滤波器的多目标跟踪算法(Multi-Object Tracking using Kalman Filter)

现有的大多数跟踪算法 [33, 4, 5, 28, 35, 30, 14, 12, 13, 29] 都采用卡尔曼滤波 [15] 作为物体运动建模的方法。卡尔曼滤波器可将物体运动视为一个线性动态系统,并可根据物体在前几帧的运动情况预测其下一帧的位置。卡尔曼滤波器在多个公共基准测试中展示出了多目标跟踪的有效性 [19, 8, 23]。然而,由于卡尔曼滤波器的线性运动和高斯噪声假设,卡尔曼滤波器可能无法跟踪非线性运动的物体。基于这个原因,OC-SORT [5] 提出了几种方法,包括以观测为中心的重新更新,在跟踪过程中修改卡尔曼滤波器的参数,防止在未跟踪物体时误差累积。该方法在多个公共数据集上展示出跟踪不规则运动物体的有效性[23, 7]。

2.2 基于定位的多目标跟踪算法(Location-based Multi-Object Tracking)

在高帧率输入视频序列中,由于帧率较高,物体在帧间的位置偏移相对较小,因此位置信息成为帧间关联的可靠线索。有几种方法[22, 14]利用边界框距离作为边界框关联的损失,而最近的一些工作[31]则利用不同的 IoU 计算方法,包括 GIoU [20]、DIoU [38] 和 BIoU [31],来进行帧间边界框关联,这些方法在多目标跟踪中也展示出了有效性。

2.3 基于外观的多目标跟踪(Appearance-based Multi-Object Tracking)

随着近年来物体 ReID 模型[39]和训练技巧[17]的发展和改进,许多跟踪算法都将 ReID 纳入了关联过程。有些方法使用联合检测和嵌入架构 [35, 27],同时进行检测和物体嵌入,以实现实时跟踪。而其他方法[28, 1]则应用其他独立的 ReID 模型来提取检测的嵌入特征进行关联。基于外观的跟踪方法通过额外的外观线索来提高跟踪的鲁棒性,但有时外观线索可能会因为一些原因而不可靠,这些原因包括遮挡、被跟踪物体之间的外观相似、物体旋转或光照条件导致的外观变化等。

2.4 体育运动中的多目标跟踪(Multi-Object Tracking in Sports)

在团队运动中,人们对球员在比赛中的动作进行了大量监控研究。这种监测不仅能自动记录比赛统计数据,还能让体育分析人员从视频场景理解的角度获得全面信息。与行人的 MOT 不同[19],体育场景中的 MOT 具有更高的挑战性,原因包括目标的运动速度更快、不规则,同队球员的外观相似,以及体育运动的激烈特点导致的更严重的遮挡问题。最近的大多数体育运动中的移动定位方法都采用了通过检测进行跟踪的模式,并整合了一个重新识别网络来生成用于关联的嵌入特征。

Vats 等人[25] 结合球队分类和球员识别方法,提高了曲棍球的跟踪性能。同样,Yang 等人[32] 和 Maglo 等人[18] 的研究表明,通过定位场地和球员,足球的跟踪结果可以更加准确。此外,Sang ̈ uesa 等人[21] 利用人体姿势信息和动作作为嵌入特征来增强篮球运动员的跟踪。Huang 等人[14] 则结合 OC-SORT [5] 和基于外观的后处理技术,对篮球、排球和足球等多种运动场景进行跟踪[7]。

3 提出的方法(Proposed Methods)

alt

提出的方法遵循经典的 "跟踪-检测 "范式,无需使用未来信息也能实现在线跟踪。首先在每个输入帧上应用目标检测器 YOLOX,然后根据提取的外观特征之间的 相似性 以及小轨迹和检测之间的 ExpansionIoU 等几条线索进行关联。在得到关联损失后,采用匈牙利算法来获得小轨迹和检测之间的最佳匹配。

3.1 基于外观的关联(Appearance-based Association)

外观相似度是帧间物体关联的有力线索,相似度可以通过外观特征之间的余弦相似度来计算,也可以用来过滤掉一些不可能的关联。根据余弦相似度可以直接得到外观关联的损失Cost_A,计算公式如下:

这里,a 和 b 分别是小轨迹的外观特征和检测的外观特征。余弦相似度越高,表示外观相似度越高,余弦相似度越低,表示小轨迹的外观和检测的外观不同。

3.2 与 ExpansionIoU 关联(Association with ExpansionIoU)

受之前利用扩展边界框进行关联来处理运动员的快速和不规则运动的工作[31]的启发,提出了一种在大运动量和非线性运动下进行跟踪的鲁棒关联方法ExpansionIoU(EIoU)。与之前的工作 [31]不同,发现在关联过程中进一步扩大边界框可以显著降低在运动员跟踪中获得更好的性能。传统的 IoU 一直是基于位置的跟踪方法的基石,但它往往缺乏灵活性,当跟踪器和检测边界框在相邻帧之间共享较小的 IoU 或没有 IoU 时,无法顾及物体的大运动量。EIoU 通过修改边界框的尺寸、扩大其宽度和高度以及考虑更广泛的物体关系来解决这一局限性,从而恢复体育场景中运动量大的物体的关联性。边界框的扩展由扩展尺度 E 控制,给定一个高度为 h、宽度为 w 的原始边界框,可以计算出扩展长度 h⋆和 w⋆,如下所示:

原始边界框根据扩展长度进行扩展。将原始边界框的左上角和右下角坐标分别表示为 (t, l),(b, r),可以得出扩展边界框的坐标为 :

扩展后的边界框进一步用于计算小轨迹和检测对之间的 IoU,注意扩展同时应用于小轨迹的最后一帧检测和检测器的新检测,计算出的 EIoU 用于相邻帧之间的匈牙利关联。扩展边界框的操作不会改变几个重要的对象信息,如边界框中心、长宽比或外观特征。通过简单地扩展搜索空间,可以关联常见的目标快速移动时,尤其是在体育比赛中那些IoU 较小或没有 IoU 的小轨迹和检测结果。

3.3 置信度分数感知匹配(Confidence Score Aware Matching)

根据 ByteTrack [33],在匹配过程中会给高置信度分数的检测赋予更高的权重。高分检测通常意味着较少的遮挡,因此更有可能保留更可靠的外观特征。因此,第一阶段的高分检测匹配基于外观和 ExpansionIoU 的关联损失,记为 Cstage1。第一阶段的匹配建立在几轮迭代关联的基础上,并逐步扩大扩展规模,这将在第 3.4 节中讨论。在低分检测的第二轮匹配中,只使用 ExpansionIoU,损失记为 Cstage2。

在第一匹配阶段,放弃了之前几项研究中使用的 IoU-ReID 加权损失法 [34,28],其中损失是外观损失 CA 和 IoU 损失 CIoU 的加权和:

相反,作者采用与 BoT-SORT [1] 类似的策略来处理基于外观的关联。更具体地说,首先通过设置外观和ExpansionIoU(EIoU)的损失阈值来过滤掉一些不可能的关联。如果其中一个损失大于相应的阈值,则调整后的外观损失 C ˆ A 设为 1,否则 C ˆ A 设为其外观损失CA 的一半。最后,第一阶段的最终关联损失 Cstage1 设为外观损失 C ˆ A 和 EIoU 损失 CEIoU 的最小值。 τA 和 τEIoU 表示损失过滤器的阈值,可以将外观成本 C ˆ A 写成:

第一阶段匹配的最终损失 Cstage1 将是调整后的外观损失 C ˆ A 与 EIoU 损失 CEIoU 之间的最小值。

而第二匹配阶段 Cstage2 的关联损失将只使用 EIoU 损失 CEIoU。

3.4 迭代扩展ExpansionIoU(Iterative Scale-Up ExpansionIoU)

正如之前使用扩展边界框进行关联的工作[31]所示,边界框的扩展量是跟踪过程中一个关键而敏感的超参数,跟踪器的性能在很大程度上会受到超参数选择的影响。在现实世界中,有几个因素可能会限制我们调整扩展尺度并提高跟踪性能,其中包括:1)在线跟踪要求。运动员跟踪系统的一个常见要求是系统需要在线运行,在这种情况下,通过实验调整扩展尺度和调整性能是不可能的。2) 无法获取测试数据。在现实世界中,往往无法获得测试数据的真实值,这就不可能找到完美的关联扩展尺度。基于上述原因,作者提出了一种新颖的迭代扩展 ExpansionIoU 关联阶段来实现鲁棒跟踪,实验结果表明,在不进行任何参数调整的情况下,该算法可以在公共基准上始终保持 SOTA 性能。在跟踪过程中,作者选择基于逐渐增大的 Et 来迭代进行 EIoU 关联,而不是对最佳扩展尺度 E 进行超参数调整。在每次扩展迭代中,当前迭代的扩展尺度 Et 可由以下公式得出:

其中,E_initial是初始扩展尺度,λ 表示迭代扩展过程的步长,t 代表迭代次数,从 0 开始。 通过这种方法,可以先对扩展尺度较高的轨迹和探测对进行关联,然后逐步搜索重叠面积较小的轨迹和探测对,从而增强关联过程的鲁棒性。需要注意的是,迭代扩展过程只适用于高分检测关联,一旦迭代次数达到总迭代次数 t_total,高分检测关联就会停止,跟踪器将进入低分检测关联阶段。

4 实验和结果(Experiments and Results)

alt

4.1 数据集(Dataset)

alt

在两个大型多体育项目球员跟踪数据集(即 SportsMOT [7] 和 SoccerNet-Tracking [6])上对跟踪算法进行了评估。

SportsMOT 包含 240 个视频序列,超过 150K 个帧和 160 多万个边界框,收集自篮球、足球和排球等 3 种不同的运动项目。与 MOT 数据集 [19, 8]不同,SportsMOT 具有更高的难度,包括1) 目标的快速和不规则运动;2) 更大的摄像机运动;3) 同一球队球员的相似外观。

SoccerNet-Tracking 是一个大规模的多目标跟踪数据集,由 201 个足球比赛序列组成。每个序列长度为 30 秒。该数据集包含 225,375 个帧,3,645,661 个注释边界框和 5,009 个轨迹。与 仅关注体育运动员在球场上的跟踪情况的SportsMOT 不同,SoccerNet 的跟踪目标包含多个对象类别,包括普通球员、守门员、裁判和足球。

4.2 检测器(Detector)

作者选择 YOLOX [10] 作为目标检测器,以实现实时和高精度的检测性能。现有的几个跟踪器 [33, 5, 1, 31] 也采用了 YOLOX 作为检测器,这也使得这些跟踪器与作者的跟踪器之间的比较更加公平。作者使用 YOLOX 官方 GitHub 仓库提供的 COCO 预训练 YOLOX-X 模型[10],并使用 SportsMOT 训练集和验证集对该模型进一步微调。 epochs设置为80,输入图像大小为 1440 × 800,数据增强包括 Mosaic 和 Mixup。使用权重衰减为 5 × 10-4 和动量为 0.9 的 SGD 优化器。带有1 epoch的加热和余弦退火计划的初始学习率为 10-3,这与 ByteTrack [33] 的训练步骤相同。至于SoccerNet-Tracking 数据集,由于该数据集提供了oracle detections,为了进行公平比较并侧重于跟踪,直接使用该数据集提供的oracle detetions对所有跟踪器进行评估。

4.3 ReID模型(ReID模型)

对于运动员再识别(ReID),作者使用 OSNet [39] 中提出的全尺度特征学习。统一的聚合门融合了不同尺度的特征,增强了人员ReID 的能力。

SportsMOT 用于 SportsMOT 数据集实验的 ReID 训练数据是基于原始的 SportsMOT 数据集构建的,作者根据每个球员的边界框的标注真实值对其进行裁剪。采样数据集包括 31279 张训练图像、133 张查询图像和 1025 张图库图像。

SoccerNet-Tracking 作者从 SoccerNet-Tracking 训练集中抽取 ReID 训练数据,从随机抽样的视频中为每个球员随机选取 100 个真实值边界框,其中 65 个用作训练图像,10 个用作查询图像,25 个用作图库图像。采样的 ReID 数据包含 7,085 张训练图像、1,090 张查询图像和 2,725 张图库图像,共随机选择了 109 个身份。

训练细节 作者使用 Market-1501 数据集[37]中的预训练模型,并根据上述每个抽样体育 ReID 数据集进一步微调模型,最终为这两个数据集建立两个 ReID 模型。每个模型训练 60 个epochs,使用带有交叉熵损失的Adam优化器,初始学习率为 3 × 10-4。所有实验均在单个 Nvidia RTX 4080 GPU 上进行。

4.4 跟踪设置(Tracking Setting)

高分检测的阈值为 0.6,而置信度在 0.6 和 0.1 之间的检测将被视为低分检测,其余置信度低于 0.1 的检测将被过滤。损失过滤阈值 τA 和 τEIoU 分别设为 0.25 和 0.5。作者还取消了检测边界框中的长宽比限制,因为体育场景中可能会出现球员躺在地上的情况,这与 MOT 数据集中大多数行人站立和行走的情况不同。对于高分检测关联,将扩展尺度 E_initial 的初始值设为 0.7,步长 λ 为 0.1,迭代总次数t_total为2。低分检测关联的扩展尺度 E 为 0.7,未匹配检测的扩展尺度 E 为 0.5。保留丢失轨迹的最大帧数为 60 帧。跟踪结束后,应用线性插值来提高最终跟踪性能。

4.5 评估指标(Evaluation Metrics)

MOTA [2] 通常被用作多目标跟踪任务的评估指标,但 MOTA 主要关注的是检测性能而非关联精度。最近,为了在检测性能和关联性能之间取得平衡,越来越多的公共基准开始使用 HOTA [16] 作为主要评估指标。在对 SportsMOT 数据集进行评估时,作者采用了 HOTA、MOTA、IDF1 和其他相关指标 [3] 进行比较。而对于 SoccerNet,采用 HOTA 指标以及相关的 DetA 和 AssA 指标,因为只有这些指标是由评估服务器提供的。

4.6 性能(Performance)

作者在两个大型体育场景多目标跟踪数据集SportsMOT 和 SoccerNetTracking 数据集上将他们的跟踪算法与之前已有的跟踪器进行了比较。所有实验均在一个 Nvidia RTX 4080 GPU 上运行,跟踪结果在数据集的官方评估服务器上进行评估。

SportsMOT 如表 2 所示,提出的 Deep-EIoU 在 HOTA 中达到 77.2,在 IDF1 中达到 79.8,在 AssA 中达到 67.7。性能达到了最先进的水平,优于之前所有的跟踪器,同时还保持了在线跟踪过程,展示了算法在体育场景中多目标跟踪的有效性。 alt

SoccerNet 为了关注跟踪性能并进行公平比较,所有评估方法都使用了由 SoccerNet-Tracking 数据集 [6] 提供的 oracle 检测。作者提出的方法的性能见表 3。方法在 HOTA、AssA 和 DetA 中的性能分别达到了 85.443、73.567 和 99.236,远远超过了几种最先进的在线跟踪算法。DeepSORT 和 ByteTrack 的性能报告来自最初的 SoccerNet-Tracking 论文[6]。Deep-EIoU 在各种大规模体育运动员跟踪数据集中的优异表现证明了作者的算法在体育多目标跟踪中的有效性。 alt

4.7 Deep-EIoU消融实验研究(Ablation Studies on Deep-EIoU)

在实验中,Deep-EIoU 在 SportsMOT 测试集上以不同的设置进行了评估,包括是否在跟踪过程中加入外观(ReID)、使用迭代扩展边界框扩展以及使用线性插值作为后处理。如表 4 所示,在加入基于外观关联的 ReID 模型后,Deep-EIoU 的 HOTA 提升了 3.8,这表明虽然运动员之间具有相似的外观,但在运动场景中以外观为线索进行追踪仍然非常重要。通过迭代扩展过程(ISU),逐步扩展的边界框可以首先与 EIoU 较高的小轨迹和检测建立关联,从而也提高了跟踪性能,需要注意的是,迭代扩展过程结合了更大的跟踪缓冲区,与行人跟踪的默认设置 30 不同,由于体育场景的遮挡特性更强,使用了 60。最后,按照大多数在线跟踪算法[33, 5],还加入了线性插值(LI)作为提高最终跟踪性能的策略。 alt

4.8 初始扩展尺度的鲁棒性(Robustness to initial expansion scale)

为了证明方法的有效性和鲁棒性,作者在迭代扩展过程中根据不同的初始扩展尺度进行了实验。将初始扩展尺度从 0.2 改为 0.8。图 5 中的实验结果表明,由于迭代扩展过程可以增强鲁棒性,并且无需调整任何参数即可实现 SOTA 性能,因此仍然可以在不同的初始扩展尺度下实现 SOTA 性能。这证明了方法在现实世界中的有效性,因为现实世界中往往没有真实值,跟踪参数也无法调整。 alt

4.9 基于卡尔曼滤波器的跟踪器上的ExpansionIoU(ExpansionIoU on Kalman filter-based tracker)

为了测试 ExpansionIoU 对基于卡尔曼滤波器的跟踪器的影响,作者还通过直接集成卡尔曼滤波器和 ExpansionIoU 实现了几个版本的方法。在实施过程中,在ExpansionIoU 之后的跟踪过程中,将对卡尔曼滤波器的预测和检测结果进行扩展。表 5 中的实验结果表明,将 IoU 直接替换为 EIoU 后,这两种基于卡尔曼滤波器的经典跟踪器在 HOTA、AssA 和 DetA 中的性能都有很大程度的提高。这表明,ExpansionIoU 也可以作为基于卡尔曼滤波器的跟踪器的即插即用技巧来提高跟踪性能。 alt

4.10 局限性(Limitation)

虽然作者的算法为体育场景中的在线多目标跟踪提供了一个强大而实用的解决方案,但它也有其局限性,包括缺乏离线后处理轨迹细化方法。这种方法可能涉及后处理方法[14]或强内存缓冲区[26],这对于处理体育运动员临时退出和重新进入摄像机视野的边缘情况非常有价值。值得注意的是,未来探索和整合离线细化技术有可能提高整体性能,并将方法的适用范围扩展到短期跟踪场景之外。

Deep-EIoU 的另一个问题是,与基于运动的跟踪器相比,它的运行速度相对较慢。尽管性能大幅提升,但基于外观的逐个检测跟踪框架(涉及检测器和 ReID 模型)的集成带来了额外的计算成本。目前的 DeepEIoU 管道在单个 Nvidia RTX 4080 GPU 上可达到约 14.6 FPS,与基于运动的跟踪器相比速度较慢。值得注意的是,过渡到更轻便的探测器和 ReID 模式有可能大大提高运行速度。

5 总结

在本文中,提出了 Deep-EIoU,一种迭代扩展的 ExpansionIoU 和深度特征关联方法,用于体育场景中的多目标跟踪。在包括 SportsMOT 和 SoccerNet-Tracking 在内的两个大规模多目标运动选手跟踪数据集上取得了极具竞争力的性能。该方法成功地解决了体育场景中多目标跟踪过程中不规则运动的难题,并在很大程度上优于之前的跟踪算法。

本文由 mdnice 多平台发布

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

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

相关文章

基于springboot家政服务管理平台源码和论文

随着家政服务行业的不断发展,家政服务在现实生活中的使用和普及,家政服务行业成为近年内出现的一个新行业,并且能够成为大众广为认可和接受的行为和选择。设计家政服务管理平台的目的就是借助计算机让复杂的销售操作变简单,变高效…

深圳 福田区 建筑模型 su rhino

深圳 福田区 建筑模型 su rhino 只有福田区的,其他区的没有,其他市的没有 模型有skp,obj格式 模型如图 部分数据:

常用电子器件学习——三极管

三极管介绍 三极管,全称应为半导体三极管,也称双极型晶体管、晶体三极管,是一种电流控制电流的半导体器件其作用是把微弱信号放大成幅度值较大的电信号, 也用作无触点开关。晶体三极管,是半导体基本元器件之一&#xf…

浅学JAVAFX布局

JAVAFX FlowPane布局 Flowpane是一个容器。它在一行上排列连续的子组件,并且如果当前行填充满了以后,则自动将子组件向下推到一行 public class FlowPanedemo extends Application {Overridepublic void start(Stage stage) throws Exception {stage.s…

肺癌相关文献6

第十四篇 Classification of lung adenocarcinoma based on stemness scores in bulk and single cell transcriptomes IF:6.0 中科院分区:2区 生物学WOS分区:Q1被引次数: 4 背景:癌细胞具有无限期自我更新和增殖的能力[2]。在一…

python基础学习-03 安装

python3 可应用于多平台包括 Windows、Linux 和 Mac OS X。 Unix (Solaris, Linux, FreeBSD, AIX, HP/UX, SunOS, IRIX, 等等。)Win 9x/NT/2000Macintosh (Intel, PPC, 68K)OS/2DOS (多个DOS版本)PalmOSNokia 移动手机Windows CEAcorn/RISC OSBeOSAmigaVMS/OpenVMSQNXVxWorksP…

高校寝室卫生检查系统UML建模——活动图

学生查看历史的通知公告学生投诉寝室卫生检查 学生查看其他寝室的卫生情况 发起报修请求

【强化学习】QAC、A2C、A3C学习笔记

强化学习算法:QAC vs A2C vs A3C 引言 经典的REINFORCE算法为我们提供了一种直接优化策略的方式,它通过梯度上升方法来寻找最优策略。然而,REINFORCE算法也有其局限性,采样效率低、高方差、收敛性差、难以处理高维离散空间。 为…

【centos7安装docker】

背景: 学习docker,我是想做一个隔离环境,并且部署的话,希望实现自动化,不为安装软件而烦恼,保证每个人的环境一致。 2C4G内存 50G磁盘的虚拟机事先已经准备完毕。 1.查看下centos版本,docker要…

【大数据】Flink 系统架构

Flink 系统架构 1.Flink 组件1.1 JobManager1.2 ResourceManager1.3 TaskManager1.4 Dispatcher 2.应用部署2.1 框架模式2.2 库模式 3.任务执行4.高可用设置4.1 TaskManager 故障4.2 JobManager 故障 Flink 是一个用于状态化并行流处理的分布式系统。它的搭建涉及多个进程&…

aop介绍

AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用…

代码随想录算法训练营第14天 | 二叉树的前序、中序、后序遍历(递归+迭代法)

二叉树的理论基础:(二叉树的种类,存储方式,遍历方式 以及二叉树的定义) https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 二叉树的递归遍历 Leetcode对应的三道习…

我们应该解决哪些计算机网络中的问题,才能实现进程之间基于网络的通信呢?

ps:本文章的图片内容来源都是来自于湖科大教书匠的视频,声明:仅供自己复习,里面加上了自己的理解 这里附上视频链接地址:1.6 计算机网络体系结构(1)—常见的计算机网络体系结构_哔哩哔哩_bilibi…

what is `ContentCachingRequestWrapper` does?

ContentCachingRequestWrapper 是 Spring Framework 中提供的一种包装类,它扩展了 HttpServletRequestWrapper 类,用于缓存请求体的内容。 通常在处理 HTTP 请求时,原生的 HttpServletRequest 对象中的输入流 (getInputStream()) 只能被读取一…

Java玩转《啊哈算法》排序之桶排序

过去心不可得,现在心不可得,未来心不可得 目录在这里 楔子代码地址桶排序代码核心部分优缺点 完整代码演示 升级版核心代码完整代码演示 楔子 大家好!本人最近看了下《啊哈算法》,写的确实不错,生动形象又有趣&#x…

Optional的使用(代替if判断是否为空)

Optional 前言 我的使用 package yimeng;import com.ruoyi.RuoYiApplication; import com.ruoyi.common.core.domain.entity.SysUser; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; import java.util.*;SpringBootTes…

OpenCV第 2 课 OpenCV 环境搭建

文章目录 第 2 课 OpenCV 环境搭建1.安装 Numpy2.从 Ubuntu 存储库安装 OpenCV3.验证 OpenCV 安装 第 2 课 OpenCV 环境搭建 1.安装 Numpy 每一张图像都有很多个像素点,这也导致了程序中会涉及大量的数组处理。Numpy 是一个 Python 的拓展库,它对多维数…

mysql临时表简述

概述 业务中经常会对一些表进行聚合组装信息,然后筛选,有些表比较数据量大的时候,会对拖慢查询; 常用的mybatis的分页查询,在查询时会先count一下所有数据,然后再limit分页,即使分页也会有深度…

数据分析-Pandas如何用图把数据展示出来

数据分析-Pandas如何用图把数据展示出来 俗话说,一图胜千语,对人类而言一串数据很难立即洞察出什么,但如果展示图就能一眼看出来门道。数据整理后,如何画图,画出好的图在数据分析中成为关键的一环。 数据表&#xff…

「JavaSE」抽象类接口2

🎇个人主页:Ice_Sugar_7 🎇所属专栏:快来卷Java啦 🎇欢迎点赞收藏加关注哦! 抽象类&接口2 🍉接口间的继承🍉接口的应用🍉总结 🍉接口间的继承 和类的继承…