摘要

图像分割模型的性能历来受到大规模标注数据收集成本高昂的制约。Segment Anything Model(SAM)通过一种可提示、与语义无关的分割范式缓解了这一根本问题,但在处理新图像时,仍然需要手动提供视觉提示或依赖复杂的领域相关提示生成规则。为减轻这一新负担,我们的工作研究了一种在仅提供少量参考图像条件下的物体分割任务。我们的关键洞见是:利用基础模型所学习的强大语义先验,在参考图像与目标图像之间识别对应区域。我们发现,这种对应关系能够自动生成下游任务所需的实例级分割掩码,并通过一个多阶段、无需训练的方法来实现,包含以下三个步骤:(1)构建记忆库;(2)表征聚合;(3)语义感知特征匹配。实验结果表明,我们的方法在分割指标上实现了显著提升——在 COCO FSOD 基准上达到 36.8% nAP,在 PASCAL VOC 少样本分割上达到 71.2% nAP50,并且在跨域少样本分割基准上以 22.4% nAP 超越了现有所有无需训练的方法。
网站: https://miquel-espinosa.github.io/no-time-to-train

引言

众所周知,为分割任务收集大规模标注数据既昂贵又耗时[2, 17, 57]。近年来,以可提示分割框架为代表的研究进展[29, 44, 56, 73, 74, 89]——尤其是 Segment Anything Model(SAM)[33, 61]——通过使用点、框或粗略素描等简单几何提示,实现了高质量的掩码生成,大幅减少了人工工作量。尽管这在降低人工成本方面取得了重要进展,但这些掩码缺乏语义意识[9, 21, 27, 64],且要实现自动化处理,仍需手动干预或构建复杂的、领域特定的提示生成流程(例如在医学影像[37, 48, 83, 84]、农业[5, 69]、遥感[49, 55, 70]等场景中)。依赖对每张图像的手动提示限制了方法的可扩展性(尤其是针对大型数据集或需要自动化处理的场景),而依赖领域受限的自动化流程又限制了跨领域场景的泛化能力。

基于参考图像的实例分割[15, 19, 53]通过利用少量带注释的参考图像来指导大量目标图像的分割,为这一难题提供了有前景的解决方案。该思路有望为那些标注成本高、耗时长且需要专业知识的数据集提供廉价、快速且自动化的标注方式[2, 57]。与缓慢的手动提示[24]不同,使用参考图像可以直接从示例中获取语义理解,因此非常适合自动化分割任务。尽管已有方法取得了一定进展,我们发现现有的基于参考图像的分割方法通常需要对新类别进行微调,这会带来诸多已知问题,包括任务特定的数据需求、过拟合和域偏移。我们推测,一种可行的替代思路是复用视觉基础模型[4, 33, 54, 60, 61]的通用能力,以指导基于参考的实例分割

已有若干工作[46, 67, 74]尝试将预训练模型用于参考分割,例如 Matcher[46] 将 DINOv2 与 SAM 结合用于语义分割任务。然而,这些方法面临若干限制:首先,它们依赖计算代价高昂的距离度量(如地球移动距离)和复杂的阈值机制,显著降低了推理速度;其次,它们并不适合实例级分割任务,在复杂多目标场景中难以实现细粒度区分。实际上,实例分割设置提出了独特挑战——如何仅凭少量参考图像应对遮挡、尺度变化、边界模糊及图像质量差异等问题——这些都需要精心设计。如何在不进行大量微调的情况下,有效地结合基础模型,仍然是一个重大挑战[9],尤其是在尝试利用语义 ViT 主干(如 DINOv2)的泛化能力来实现精确定位时[82]。

为此,我们提出了一种无需训练的三阶段方法:(1)构建类别专属特征记忆库;(2)通过两步聚合优化特征表征;(3)基于特征匹配和新颖的语义感知软合并策略进行推理。该方法形成了一个高性能的、无需训练的框架,在多个基准数据集上实现了显著性能提升。此外,我们的方法在跨领域场景下也表现出色,仅需固定的超参数设置,因而易于在各种应用中推广。

我们的主要贡献如下:

提出了一种无需训练的方法,有效地将语义无关的分割掩码候选与细粒度语义融合,用于基于参考的实例分割。

引入了一个针对视觉基础模型的实例分割新颖三阶段框架,通过(1)记忆库构建、(2)两步特征聚合和(3)带语义感知的软合并特征匹配,解决了关键的集成难题。

我们的方法在 COCO-FSOD、PASCAL-FSOD 和 CD-FSOD 基准上实现了最先进的性能,证明了其在多样化数据集和固定超参数设置下的强大泛化能力,无需中间微调。

相关工作

基于参考的实例分割 旨在对图像中的单个物体进行分割,区分同一类别的不同实例[6, 39]。传统方法如 Mask R-CNN[22],使用卷积网络对候选区域进行掩码预测;而基于 Transformer 的模型如 DETR[3] 和 Mask2Former[7] 则通过自注意力机制整合全局上下文。这些方法通过利用大规模标注数据集在标准实例分割任务上取得了成功[17, 42]。基于参考的实例分割将此任务扩展到有限标注样本的新类别上。早期工作[15, 53]通过引入实例级判别特征[15]或不确定性引导的边界框预测[53]对 Mask R-CNN 进行改造。近期研究将分割任务统一到 in-context 学习框架下[29, 73, 74],需要在广泛的分割任务(包括实例分割[73, 74])上进行昂贵的预训练,并使用对比学习预训练来整合视觉与文本提示[29]。尽管取得了进展,基于参考的实例分割仍面临诸多挑战:标注数据匮乏、多实例场景复杂、专门模型跨域泛化能力有限、参考图像歧义以及对预定义类别标签的依赖[79]。此外,如何重用预训练时并非针对实例分割设计的冻结主干网络,仍然是一个难题[9, 82]。我们的方法有效地复用了两个现有的冻结视觉基础模型——它们均未在参考实例分割任务上进行额外训练——以无需额外训练的方式解决基于参考的实例分割,同时在非典型领域也表现出良好泛化。

视觉基础模型 通过学习可迁移到多种任务的强大预训练表征,已经革新了计算机视觉领域。CLIP[60] 与 DINO 系列模型[4, 54]就是这一趋势的典型代表,前者通过对比学习对齐视觉与文本表示,后者则从无标签数据中学习鲁棒图像嵌入。这些模型广泛应用于下游任务,包括开放词汇检测[21, 64]和语义分割[62, 88]。然而,CLIP 在细粒度空间推理方面表现有限,而 DINOv2 虽能捕捉丰富语义,却产生低分辨率特征图。Segment Anything Model(SAM、SAM2)[33, 61] 是该类别的另一个重要补充,基于大规模类别无关数据集(SA-1B)进行训练[33]。SAM 在使用最少输入(如点、边框)生成分割掩码方面表现出色,但缺乏固有的语义理解[9, 21, 27, 64]。已有尝试将 SAM 与语言模型[34]、扩散模型[87] 配对,或在 COCO[42]、ADE20K[38] 等带标签数据集上进行微调,但这些方案往往导致流程复杂或可扩展性受限。此外,SAM 的语义无关特性在需要实例级类别区分的场景下存在局限。我们的工作在不进行微调的前提下,结合了 DINOv2 与 SAM 的互补优势,通过多参考图片的特征聚合与匹配,实现了高精度的无需训练实例分割,并在多种少样本基准上取得了最先进的结果。

SAM 的自动视觉提示 研究旨在构建自动化提示流水线,提升 SAM 在复杂视觉任务中的通用性,减少对人工输入的依赖。无需训练的方法[46, 81]利用特征匹配技术,但常依赖人工调优的阈值、距离度量和复杂流程;其他方法则聚焦于直接学习提示,如空间或语义优化[26, 28, 67],但在多实例或语义密集场景中仍面临挑战。零样本方法[65, 78]通过引入视觉标记来引导分割注意力,却缺乏细粒度精度。最新工作如 SEEM[89] 通过共享解码器统一分割与识别任务,SINE[45] 则通过任务解耦来应对分割歧义;也有人将 SAM 与 Stable Diffusion 配合,用于开放词汇分割[87],或利用语言指令驱动的 LISA[34] 来适配文本引导任务。但在无需训练的前提下处理多实例场景与语义歧义依然困难。我们的方法区别于现有工作,不进行任何微调或提示优化,将 SAM 与 DINOv2 直接集成,通过记忆库构建、表征聚合与语义感知软合并三阶段流程,以固定超参数设置在各实验场景中保持一致,可广泛应用于各类下游任务,并对从业者友好可用。

方法

3.1 预备知识

Segment Anything Model (SAM) [33] 是一种可提示分割模型,可响应不同类型的几何提示来生成图像分割掩码。它由三部分组成:图像编码器、提示编码器和掩码解码器。图像编码器是一种预训练的 Vision Transformer(ViT)[8],针对高分辨率输入进行了适配[40];提示编码器则处理稀疏提示(点、框、文字)和稠密提示(粗略掩码),通过位置注意力和对提示的交叉注意力进行编码;掩码解码器使用修改后的 Transformer 解码器块,通过自注意力和对提示的交叉注意力来高效生成掩码。在训练阶段,SAM 同时采用 focal loss[43] 和 dice loss[50] 作为优化目标。

DINOv2 自监督预训练视觉编码器[54],旨在生成通用视觉特征。它基于 ViT 架构[8],采用判别式自监督学习方法,使用师生网络、Sinkhorn–Knopp 归一化、多裁剪策略,以及分别用于图像级和Patch级目标的不同投影头,并引入多种正则化技术以稳定和扩展训练过程[4, 85]。DINOv2 在 LVD142M 数据集(1.42 亿张图像)上训练,使用快速节省内存的注意力机制和随机深度等高效训练技术。其特征在多种任务和领域间具有良好可迁移性,是全局与局部视觉理解任务的稳健主干网络。
在这里插入图片描述

3.2 无需训练的方法

我们的无需训练方法旨在从一组带标注的参考样本中提取类别特征,并利用这些特征对目标图像中的实例进行分割和分类。与需要重新训练模型的方法不同,我们采用基于记忆库的思路来存储各类别的判别性表征。该方法包含三大步骤:(1)记忆库构建;(2)两阶段特征聚合;(3)基于特征匹配与语义感知软合并的推理。图 2 展示了整体流程。
在这里插入图片描述
图 2. 我们的无需训练的少样本实例分割与目标检测方法概览。
(1) 参考记忆构建:对已分割的参考图像使用 DINOv2 模型提取语义特征嵌入
(2) 特征聚合:首先计算每个实例的特征表征,然后将它们聚合成类别级原型并存入记忆库
(1)通过余弦相似度进行搜索
(2)为掩码分配类别标签
(3)通过具有语义感知能力的软合并方式将各项结果汇总,从而得出最终的预测结果。
(3) 目标数据集推理:对于每张目标图像,SAMv2 生成实例分割掩码,DINOv2 提取语义特征。通过余弦相似度,将每个掩码的特征与参考记忆库中的原型进行比较,以分配最相似的类别标签。最后,采用语义感知软合并策略对预测结果进行聚合,生成最终标注图像。
该流程通过参考图像实现语义提示,无需微调,在多个基准(COCO-FSOD、PASCAL-FSOD)上达到了最先进的性能,并在跨域场景(CD-FSOD)中展现了强大的泛化能力。

1、记忆库构建

在这里插入图片描述
r代表参考图像
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、两阶段特征聚合

在这里插入图片描述

3、目标图像推理

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

3.3 技术实现细节

我们的代码库基于 SAM2-L(分层 ViT)用于掩码生成,使用 DINOv2-L 作为特征编码器。编码器以 518×518 分辨率、14×14 的 patch 大小处理图像,而 SAM2 以 1024×1024 分辨率运行。推理阶段,SAM2 首先通过 32×32 网格的查询点生成候选掩码。对于每个掩码,我们在掩盖区域内对编码器特征进行平均池化,并做 L2 归一化,得到掩码特征。然后将这些特征与记忆库中每个类别的 n 张参考图像特征进行对比。我们采用 IoU 阈值为 0.5 的非极大值抑制(NMS),并结合语义感知软合并策略来处理重叠预测。每张图像最多输出 100 个实例。实现方面,使用 PyTorch[1] 及 PyTorch Lightning[11] 在多 GPU 上进行分布式计算。

结果

4.1 目标检测与实例分割

虽然我们的无需训练方法直接输出分割掩码,但为了与现有工作进行公平比较,我们将实例掩码转换为边界框。

COCO-FSOD 基准
我们在 COCO-20i 数据集 [30, 42] 的严格少样本设置下评估所提方法,采用标准的 10-shot 和 30-shot 设置。COCO-FSOD 基准的结果如表 1 所示。所有结果均针对 COCO 新类别(即与 PASCAL VOC 类别 [10] 重叠的那些类别)进行汇报。我们的方法在完全无需训练的前提下便取得了最先进的效果,优于所有对新类别进行微调的方法。
在这里插入图片描述
表 1. 在 COCO-FSOD 基准的 10-shot 和 30-shot 设置下,我们的无需训练方法与最先进方法的对比。我们的方法在不对新类别进行微调的情况下(“Ft. on novel”)依然取得了最先进的性能。结果以 nAP、nAP50 和 nAP75 报告,其中 nAP 表示仅针对新类别的 mAP。其他方法的结果来源于文献 [14]。由于我们是唯一同时提供边界框和分割结果的方法,为简洁起见,本表中省略了分割 AP

图 3 给出了定性结果,展示了本方法在拥挤场景中处理多重重叠实例的能力,兼具细粒度语义理解与精确定位。借助语义感知软合并策略,我们有效缓解了重复检测和误报问题。失败案例详见附录材料。
在这里插入图片描述
图 3. 在 COCO val2017 测试集上的定性结果,10-shot 设置(每个类别使用 10 张参考图像)。
边界框可视化阈值为 0.5。我们的方法能够在拥挤场景中有效处理多重重叠实例,展现细粒度的语义理解与精确的定位。通过语义感知软合并策略,我们能够避免重复检测和误报。建议放大后查看以获得最佳效果。

PASCAL-VOC 少样本评估
PASCAL-VOC 数据集 [10] 包含 20 个类别。对于少样本评估,我们沿用了标准做法 [16],将 20 个类别分成 3 个拆分,每组包含 15 个基础类别和 5 个新类别。如先前工作 [82],我们在各拆分的新类别上报告 AP50 结果。表 2 显示,本方法在所有拆分上均超越了之前的所有方法,无论是那些对新类别进行微调的方法,还是无需微调的方法,均实现了最先进的性能。
在这里插入图片描述
表 2. 在 Pascal VOC 少样本基准的新类别上,AP50 结果对比。其他方法的结果来源于文献 [82]。最先进的结果以 加粗 标示。(*) 表示对应实现未公开可获取。我们的无训练方法在所有拆分上持续取得优越性能,超越了所有微调方法。

4.2 跨域少样本目标检测

CD-FSOD 基准 [14] 专为评估跨域少样本目标检测(CD-FSOD)模型而设计,通过在域偏移和数据匮乏场景下考验模型性能。该基准使用 COCO [42] 作为源训练集(SD),并包含六个目标数据集(TD):ArTaxOr、Clipart1k、DIOR、DeepFish、NEUDET 和 UODD,覆盖了真实照片、卡通、航空遥感、水下和工业领域,且类别间差异较大。尽管许多方法会在测试前对目标数据集的少量带标签样本(支持集 S)进行微调,我们的模型则完全无需训练,直接在六个目标数据集上进行评估,无任何微调。

表 3 给出了 CD-FSOD 基准下 1-shot、5-shot 和 10-shot 设置中各 FSOD 方法的比较。我们的无训练方法在所有无训练方法中创下新纪录,并且与那些经过微调的模型相比,依然保持了极具竞争力的性能。这些结果证明了本方法在跨域场景下的强大泛化能力和鲁棒性,无需重新训练即可直接部署。
在这里插入图片描述
在这里插入图片描述

4.3 COCO 少样本语义分割

尽管我们的方法是为实例分割设计的,但我们也在 COCO-20i 少样本语义分割基准[52]上进行了评估。将 COCO 的 80 个类别划分为四个拆分[25, 52, 71],每个拆分包含 60 个基础类别和 20 个新类别。我们在严格的 1-shot 和 5-shot 设置[87]下,对 20 个新类别的性能进行评估,结果如表 4 所示。

为了将我们的实例分割预测适配到语义分割任务,我们将同一类别的所有实例合并为语义图,以便与之前的方法直接比较。尽管完全无需训练,我们的方法在与微调方法的对比中也取得了具有竞争力的表现。
在这里插入图片描述
表 4. 在 COCO-20i 上严格少样本语义分割设置(1-shot 和 5-shot)的性能对比。我们将实例级预测聚合为语义图,以便与语义分割方法进行比较。先前方法的结果来源于文献 [87]。

4.4 参考集的差异性

使用不同的参考图像会导致结果的波动,因为性能依赖于每个类别所选参考图像的质量。
为了量化这种差异,我们在 COCO-20i 少样本目标检测基准上,采用不同的随机种子来选择参考图像,进行了多次评估。图 4 显示了 10 次运行的标准差(std)。我们观察到,随着参考图像数量的增加(shot 数增大),结果的方差逐渐减小,标准差也更低。在 1-shot、2-shot 和 3-shot 设置中,参考图像的选择对性能影响更为显著;而在 5-shot 及以上时,较低的标准差表明方法对参考集的变化具有较强的鲁棒性。这些结果表明,在特定的 shot 设置下,有些参考图像本质上更具代表性。如何找到“最优”参考集的特征仍是未来值得深入探索的方向。

在这里插入图片描述
图 4. 在 COCO-20i 基准上不同 n-shot 设置下的性能方差。我们报告了平均精度(mAP)及其误差线,误差线表示在使用不同随机选择的参考图像进行 10 次运行时的标准差。结果表明,由于对参考图像选择的依赖性更强,低 n-shot 设置(如 1–3 shot)时方差更大;随着 shot 数增加,方差减小,展示了我们无需训练方法对参考集变化的鲁棒性。

结论

在本工作中,我们提出了一种新颖的无需训练的少样本实例分割在这里插入代码片方法,将 SAM 的掩码生成能力与 DINOv2 的细粒度语义理解相结合。我们的方法通过参考图像构建记忆库,采用特征聚合精炼内部表征,并利用余弦相似度与语义感知软合并对新实例进行特征匹配。实验表明,精心工程化已有的冻结基础模型即可在无需额外训练的情况下实现最先进的性能:我们在 COCO-FSOD 上取得了 36.8% nAP(超越了微调方法)、在 PASCAL VOC 少样本分割上取得了 71.2% nAP50,并在跨域场景(如 CD-FSOD 基准)中展现了强大的泛化能力。此外,我们的语义分割结果也证明了该方法可通过将实例预测聚合为语义图进行扩展。

未来工作中,我们识别出若干有前景的研究方向:(1)探索基于学习的策略,以在 1–5 shot 场景中自动选择最具信息量的参考图像;(2)通过改进特征定位能力来克服 DINOv2 的全局语义偏差,尤其针对细粒度任务;(3)研究轻量级微调方法,以提升 1–5 shot 场景下记忆库表征的质量。

Inference code

在 Few-shot COCO 上复现 30-shot SOTA 结果
首先定义必要变量并创建保存结果的文件夹:

CONFIG=./no_time_to_train/new_exps/coco_fewshot_10shot_Sam2L.yaml
CLASS_SPLIT="few_shot_classes"
RESULTS_DIR=work_dirs/few_shot_results
SHOTS=30
SEED=33
GPUS=4mkdir -p $RESULTS_DIR
FILENAME=few_shot_${SHOTS}shot_seed${SEED}.pkl
  1. 创建参考集(reference set)
python no_time_to_train/dataset/few_shot_sampling.py \--n-shot $SHOTS \--out-path ${RESULTS_DIR}/${FILENAME} \--seed $SEED \--dataset $CLASS_SPLIT
  1. 用参考集填充 Memory Bank
python run_lightening.py test --config $CONFIG \--model.test_mode fill_memory \--out_path ${RESULTS_DIR}/memory.ckpt \--model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \--model.init_args.dataset_cfgs.fill_memory.memory_pkl ${RESULTS_DIR}/${FILENAME} \--model.init_args.dataset_cfgs.fill_memory.memory_length $SHOTS \--model.init_args.dataset_cfgs.fill_memory.class_split $CLASS_SPLIT \--trainer.logger.save_dir ${RESULTS_DIR}/ \--trainer.devices $GPUS
  1. 后处理 Memory Bank
python run_lightening.py test --config $CONFIG \--model.test_mode postprocess_memory \--model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \--ckpt_path ${RESULTS_DIR}/memory.ckpt \--out_path ${RESULTS_DIR}/memory_postprocessed.ckpt \--trainer.devices 1
  1. 在目标图像上推理
python run_lightening.py test --config $CONFIG  \--ckpt_path ${RESULTS_DIR}/memory_postprocessed.ckpt \--model.init_args.test_mode test \--model.init_args.model_cfg.memory_bank_cfg.length $SHOTS \--model.init_args.model_cfg.dataset_name $CLASS_SPLIT \--model.init_args.dataset_cfgs.test.class_split $CLASS_SPLIT \--trainer.logger.save_dir ${RESULTS_DIR}/ \--trainer.devices $GPUS

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

Custom dataset 自定义数据集

我们提供了在自定义数据集上运行整个流程的使用说明。标注格式必须是 COCO 格式。

简要说明(TLDR)
如果想直接查看如何在自定义数据集上运行完整流程,请参考 scripts/matching_cdfsod_pipeline.sh,以及 CD-FSOD 数据集的示例脚本(例如 scripts/dior_fish.sh)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

0.1 如果只有边界框标注

我们还提供了一个脚本,可以使用 SAM2 从参考图像的边界框标注生成实例级别的分割掩码。
这在你只有参考图像的 bounding box 标注时非常有用。

下载 sam_h 模型权重
可以使用更近期的检查点(注意:可能需要适配代码):

wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -O checkpoints/sam_vit_h_4b8939.pth

从真实标注的 bounding box 自动生成实例分割:

python no_time_to_train/dataset/sam_bbox_to_segm_batch.py \--input_json data/my_custom_dataset/annotations/custom_references.json \--image_dir data/my_custom_dataset/images \--sam_checkpoint checkpoints/sam_vit_h_4b8939.pth \--model_type vit_h \--device cuda \--batch_size 8 \--visualize

由 SAM2 根据真实边界框生成的参考图像实例分割掩码(1-shot 示例):

生成的分割掩码可视化结果保存在:

data/my_custom_dataset/annotations/custom_references_with_SAM_segm/references_visualisations/

在这里插入图片描述

将 COCO 标注文件转换为 pickle 文件

python no_time_to_train/dataset/coco_to_pkl.py \data/my_custom_dataset/annotations/custom_references_with_segm.json \data/my_custom_dataset/annotations/custom_references_with_segm.pkl \1

1. 用参考图像填充 Memory Bank

在这里插入图片描述

DATASET_NAME=my_custom_dataset
DATASET_PATH=data/my_custom_dataset
CAT_NAMES=boat,bird
CATEGORY_NUM=2
SHOT=1
YAML_PATH=no_time_to_train/pl_configs/matching_cdfsod_template.yaml
PATH_TO_SAVE_CKPTS=./tmp_ckpts/my_custom_dataset
mkdir -p $PATH_TO_SAVE_CKPTS

运行 Step 1:

python run_lightening.py test --config $YAML_PATH \--model.test_mode fill_memory \--out_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory.pth \--model.init_args.dataset_cfgs.fill_memory.root $DATASET_PATH/images \--model.init_args.dataset_cfgs.fill_memory.json_file $DATASET_PATH/annotations/custom_references_with_segm.json \--model.init_args.dataset_cfgs.fill_memory.memory_pkl $DATASET_PATH/annotations/custom_references_with_segm.pkl \--model.init_args.dataset_cfgs.fill_memory.memory_length $SHOT \--model.init_args.dataset_cfgs.fill_memory.cat_names $CAT_NAMES \--model.init_args.model_cfg.dataset_name $DATASET_NAME \--model.init_args.model_cfg.memory_bank_cfg.length $SHOT \--model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \--trainer.devices 1

2. 后处理 Memory Bank

python run_lightening.py test --config $YAML_PATH \--model.test_mode postprocess_memory \--ckpt_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory.pth \--out_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory_postprocessed.pth \--model.init_args.model_cfg.dataset_name $DATASET_NAME \--model.init_args.model_cfg.memory_bank_cfg.length $SHOT \--model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \--trainer.devices 1

3. 在目标图像上进行推理

如果将 ONLINE_VIS=True,预测结果会保存到
results_analysis/my_custom_dataset/ 并在计算时显示出来。
⚠️ 注意:开启在线可视化会显著降低推理速度。

可以调整 分数阈值 VIS_THR 来控制输出更多或更少的实例分割结果。

ONLINE_VIS=True
VIS_THR=0.4
python run_lightening.py test --config $YAML_PATH \--model.test_mode test \--ckpt_path $PATH_TO_SAVE_CKPTS/$DATASET_NAME\_$SHOT\_refs_memory_postprocessed.pth \--model.init_args.model_cfg.dataset_name $DATASET_NAME \--model.init_args.model_cfg.memory_bank_cfg.length $SHOT \--model.init_args.model_cfg.memory_bank_cfg.category_num $CATEGORY_NUM \--model.init_args.model_cfg.test.imgs_path $DATASET_PATH/images \--model.init_args.model_cfg.test.online_vis $ONLINE_VIS \--model.init_args.model_cfg.test.vis_thr $VIS_THR \--model.init_args.dataset_cfgs.test.root $DATASET_PATH/images \--model.init_args.dataset_cfgs.test.json_file $DATASET_PATH/annotations/custom_targets.json \--model.init_args.dataset_cfgs.test.cat_names $CAT_NAMES \--trainer.devices 1

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

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

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

相关文章

本地文件夹与 GitHub 远程仓库绑定并进行日常操作的完整命令流程

以下是将本地文件夹与 GitHub 远程仓库绑定并进行日常操作的完整命令流程,特别针对你的需求(忽略数据集、偏好使用 rebase 保持主分支整洁)进行了优化: 一、初始设置(首次绑定)在本地项目文件夹初始化 Git …

windows10 ubuntu 24.04 双系统 安装教程

准备windows安装包解压到u盘中作为启动盘准备ubuntu安装包https://ubuntu.com/download/desktop/thank-you?version24.04.3&architectureamd64<strue解压到u盘中作为启动盘准备磁盘分区安装windows操作系统安装disk geniusWindows 三个NTFS的分区System: windows操作系…

腾讯前端面试模拟详解

以下是腾讯及腾讯音乐娱乐&#xff08;TME&#xff09;前端岗位高频手撕题目详解&#xff0c;结合真题及考察要点整理&#xff0c;覆盖面试核心考点&#xff1a;⚙️ 一、核心手撕题&#xff08;腾讯/TME 必考&#xff09; 1. Promise 并发控制&#xff08;90%场次出现&#xf…

微软将于 10 月停止混合 Exchange 中的共享 EWS 访问

使用 Exchange 混合部署的组织应为未来几个月即将生效的新变化做好准备。微软已宣布&#xff0c;自 2025 年 8 月起&#xff0c;将在某些混合环境中暂时阻止使用 Exchange Online 共享服务主体的 Exchange Web 服务 (EWS) 流量。 此项变更主要影响使用“丰富共存”功能的组织&a…

STM32CubeMX + HAL 库:用硬件IIC接口实现AT24C02 EEPROM芯片的读写操作

1 概述1.1 实验目的本实验旨在通过 STM32 微控制器的硬件 IC 接口&#xff0c;对 AT24C02 外部 EEPROM 存储芯片 进行读写操作。实验演示了芯片地址配置、单字节/多字节读写、跨页写入&#xff08;Page Write&#xff09;功能。并提供完整的驱动代码&#xff0c;帮助读者深入理…

基于Android的音乐播放器/基于android studio的音乐系统/音乐管理系统

原生APP安卓开发设计之基于Android的音乐播放器/音乐系统/音乐管理系统[springboot]android studio

OmniHuman:字节推出的AI项目,支持单张照片生成逼真全身动态视频

本文转载自&#xff1a;OmniHuman&#xff1a;字节推出的AI项目&#xff0c;支持单张照片生成逼真全身动态视频 - Hello123。 ** 一、核心产品定位 OmniHuman 是字节跳动研发的 AI 视频生成技术&#xff0c;通过单张图像&#xff08;真人 / 动漫 / 3D 角色&#xff09;和音频…

5种无需USB线将照片从手机传输到笔记本电脑的方法

Android手机和平板电脑非常适合查看照片&#xff0c;因为这些移动设备可以随身携带&#xff0c;随时随地查看文件。然而&#xff0c;移动设备的存储空间非常有限&#xff0c;而且很容易丢失或损坏。因此&#xff0c;将重要的照片从Android设备传输到电脑进行备份是非常明智的决…

2025年渗透测试面试题总结-14(题目+回答)

安全领域各种资源&#xff0c;学习文档&#xff0c;以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具&#xff0c;欢迎关注。 目录 九十一、Android APP 逆向分析步骤 九十二、SQL注入分类 九十三、SQL注入防御 九十四、序列化与反序列化…

PG靶机 - Flu

一、初步侦察与服务识别 1.1 端口扫描 首先对目标主机 192.168.122.41 进行全端口扫描&#xff0c;以发现其上开放的网络服务。 sudo nmap 192.168.122.41 -p- --min-rate5000 -A图1: Nmap扫描结果&#xff0c;显示开放22, 8090, 和 8091端口 扫描结果显示&#xff0c;目标开放…

【Leetcode】随笔

文章目录题目一&#xff1a;路径总和 II&#xff08;LeetCode 113&#xff09;题目分析&#xff1a;解题思路&#xff1a;示例代码&#xff1a;代码解析&#xff1a;题目二&#xff1a;颜色分类&#xff08;LeetCode 75&#xff09;题目分析&#xff1a;解题思路&#xff1a;示…

深入 FastMCP 源码:认识 tool()、resource() 和 prompt() 装饰器

在使用 FastMCP 开发 MCP 服务器时经常会用到 mcp.tool() 等装饰器。虽然它们用起来很简单&#xff0c;但当作黑匣子总让人感觉"不得劲"。接下来我们将深入相关的源码实现&#xff0c;别担心&#xff0c;不会钻没有意义的“兔子洞”&#xff0c;你可以通过这篇文章了…

Spring Boot 2.0 升级至 3.5 JDK 1.8 升级至 17 全面指南

一、版本升级背景升级动机 Spring Boot 2.0 到 3.5 的重大更新&#xff08;如Jakarta EE 9包路径变更、GraalVM支持等&#xff09;JDK 1.8 到 17 的语言特性升级&#xff08;如sealed class、record等&#xff09;安全性与性能优化需求升级目标 兼容性验证依赖库版本适配代码兼…

级数学习笔记

级数学习笔记 一、数学基础 1. 数项级数&#xff08;Number Series&#xff09; 数项级数是指形如&#xff1a; ∑(n1 to ∞) aₙ a₁ a₂ a₃ ...的无穷和。 1.1 收敛性判别法 比较判别法比值判别法根值判别法积分判别法莱布尼茨判别法&#xff08;交错级数&#xff09; 2…

Linux811 YUM;SHELL:if else fi,for

vsftpdok [rootweb ~]# vim vsftpdok.sh 您在 /var/spool/mail/root 中有新邮件 [rootweb ~]# cat vsftpdok.sh rpm -ql vsftpd >/dev/null 2>&1 if [ $? -eq 0 ];then echo "OK" else yum install vsftpd -y if [ $? -eq 0 ];then echo "install o…

运维学习Day20——MariaDB数据库管理

文章目录MariaDB 数据库管理介绍 MariaDB数据库介绍数据库种类关系数据库MariaDB 介绍部署 MariaDB安装 MariaDB加固 MariaDB连接 MariaDB配置 MariaDBMariaDB 中 SQL描述 SQL连接数据库数据库操作查询数据库列表使用数据库创建数据库删除数据库表操作环境准备查询表查询表列表…

itertools:迭代器函数

文章目录一、合并和分解迭代器1、chain&#xff1a;首尾相接2、zip / zip_longest&#xff1a;对齐取数3、islice&#xff1a;切片4、tee&#xff1a;分裂二、转换输入1、map / starmap&#xff1a;函数映射三、生成新值1、count&#xff1a;生成连续整数2、repeat&#xff1a;…

【AI论文】序列标注任务广义化研究(SFT广义化):基于奖励修正的强化学习视角

摘要&#xff1a;我们针对大语言模型&#xff08;Large Language Model&#xff0c;LLM&#xff09;的监督微调&#xff08;Supervised Fine-Tuning&#xff0c;SFT&#xff09;提出了一种简单但具有理论依据的改进方法&#xff0c;以解决其与强化学习&#xff08;Reinforcemen…

(已解决)Mac 终端上配置代理

说明&#xff1a;为了便于理解&#xff0c;本文描述略显“抽象”与“潦草”&#xff0c;为了过审&#xff0c;仅供学习交流使用。&#x1f680; 简洁流程版启动工具 点击图标&#xff0c;复制它给出的终端命令将这段内容粘贴进你的配置文件中&#xff08;~/.zshrc 或 ~/.bash_p…

Anti-Aliasing/Mip-NeRF/Zip-NeRF/multi-scale representation

前言 CSDN的文章写太多&#xff0c;都不记得之前写的有什么了&#xff0c;但习惯了在这里记录&#xff0c;先写上吧。关于multi-scale representation又是看着忘着&#xff0c;还是写下点什么比较啊。时看时新&#xff0c;还是想吐槽自己看论文太不认真了。下面直接按照文章顺序…