ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

CLIP as RNN(CaR)数据集准备全指南:语义分割与指代分割 Benchmark 的完整配置方案

CLIP as RNN(CaR)数据集准备全指南:语义分割与指代分割 Benchmark 的完整配置方案 人工智能深度学习NLP计算机视觉强化学习【免费下载链接】google-researchGoogle Research项目地址https://gitcode.com/gh_mirrors/go/google-research点击查看免费下载本文聚焦 google-research 仓库中 clip_as_rnn/DATA.md 所讲解的数据准备流程面向需要在 Pascal VOC、Pascal Context、COCO Object、ADE-150/ADE-847 等语义分割数据集以及 Ref-COCO/RefCOCO/RefCOCOg 等指代分割数据集上评估 CLIP as RNNCaR模型的开发者。读完本文你将掌握如何下载、解压、摆放各类 Benchmark 数据、在 configs 中正确配置data_root并通过 evaluate.py 一键跑通评估。一、数据准备的整体设计在动手下载数据之前先理解 CaR 对数据目录的组织约定可以避免后续大量返工。1.1 评估工具链分工mmsegmentation 负责语义分割CaR 复用 MMSegmentation 生态来对Pascal VOC、Pascal Context、COCO三个语义分割数据集做测试、评估与可视化。这意味着你不需要在代码仓库内部构造任何树状tree-like目录结构数据完全放在代码库之外由配置文件统一指定入口。1.2 通过data_root指定数据根目录CaR 约定修改每个 config 文件中的data_root属性即可切换数据来源代码本身不感知数据的物理位置。以 configs/voc.yaml 为例test: algo: car ds_name: voc seg_mode: semantic split: val data_root: $YOUR_DATA_DIR output_path: ./outputs/ use_pseudo: True n_class: 21 num_chunks: 1 chunk_index: 0 ignore_background: False$YOUR_DATA_DIR是占位符实际运行时请替换为数据所在目录的绝对路径。从 evaluate.py 的源码可以看到data_root会以rootdata_root关键字参数传给各数据集的构造函数因此它实际上是所有数据集加载器的统一根目录入口。1.3 关于 background 类的统一约定DATA.md 特别强调所有数据集在 mIoU 评估时都包含 background背景类。这解释了各 config 中n_class的取值规律——它总是目标类别数 1数据集config 文件n_class含义Pascal VOCconfigs/voc.yaml2120 类 背景Pascal Contextconfigs/pascal_context.yaml6059 类 背景COCO Objectconfigs/coco.yaml8180 类 背景ADE-150configs/ade_150.yaml151150 类 背景ADE-847configs/ade_847.yaml847846 类 背景Pascal Context 459configs/pascal_context_459.yaml460459 类 背景对于 ADE 与 Pascal Context 459 这类数据集由于背景在语义上并不作为有效类别参与指标计算config 中还将ignore_background设为True详见下文第四节。二、语义分割数据集准备2.1 Pascal VOC准备步骤按 MMSegmentation 官方文档中 Pascal VOC 一节给出的说明下载并配置 Pascal VOC 数据集即下载 VOC2012 训练/验证图像与分割标注解压到统一根目录。代码侧约定CaR 的加载器 data/voc.py 直接继承 torchvision 的VOCSegmentation固定使用year2012image_set由 config 的split决定评估时取val。该类中两个核心常量值得关注CLASS2ID21 类索引映射索引 0 为Background并保留255作为Border边界像素VOC_CLASSES20 个前景类的文本描述其中包含了供 CLIP 文本编码器使用的同义扩充例如person with clothes,people,human、bird avian、tvmonitor screen这些文本会与 config 中的semantic_templates模板组合成最终的文本提示。在process_target中值为 0背景和 255边界的像素被统一归入背景类随后为每个出现的类别单独生成二值 mask供后续 CAR 推理使用。评估入口split: val、n_class: 21、ignore_background: FalseVOC 背景是正式参与 mIoU 计算的类别。2.2 Pascal Context准备步骤同样按 MMSegmentation 官方文档中 Pascal Context 一节的说明下载并配置数据。Pascal Context 构建在 VOC 2010 图像之上标注目录与 VOC 分割的标准目录不同。代码侧约定data/context.py 中的CONTEXTSegmentation继承 torchvision 的_VOCBase并显式指定了两个关键目录常量_SPLITS_DIR SegmentationContext _TARGET_DIR SegmentationClassContext _TARGET_FILE_EXT .png也就是说你的数据根目录下需要存在SegmentationContext图像列表与SegmentationClassContext标注 PNG两个子目录。加载器固定year2010参见 evaluate.py。thing/stuff 拆分Pascal Context 的 59 个语义类被拆成 thing物体与 stuff背景/材质两组分别定义在PASCAL_CONTEXT_THING_CLASS与PASCAL_CONTEXT_STUFF_CLASS及对应的 ID 列表。这对应 configs/pascal_context.yaml 中stuff_visual_prompt_type、stuff_bg_factor、stuff_mask_threshold等一组专用于 stuff 类别的参数——CaR 会先对 thing 类做一轮 CAR 推理再对 stuff 类做第二轮推理最后在assign_label中按置信度合并标签详见 evaluate.py。2.3 COCO Object准备步骤DATA.md 明确说明COCO Object 数据按GroupViT仓库的方式准备。GroupViT 的 COCO 准备流程会为 val2017 图像生成对应的 instance 级标注产出名为*_instanceTrainIds.png的标注文件。代码侧约定data/coco.py 中的COCODataset对目录结构有两个硬性要求self.image_dir os.path.join(root, images, f{split}2017) self.ann_dir os.path.join(root, annotations, f{split}2017)即数据根目录下必须存在data_root/ ├── images/ │ └── val2017/ # 图像 └── annotations/ └── val2017/ # {idx}_instanceTrainIds.png 标注读取时按图像文件名去扩展名定位同名标注{idx}_instanceTrainIds.png。类别文本定义在COCO_OBJECT_CLASSES共 80 个前景类配合n_class: 81含背景在 configs/coco.yaml 中生效。2.4 ADE-150 与 ADE-847准备步骤DATA.md 说明这两个数据集按FC-CLIP仓库的说明准备其中ADE-150ADE20K 的 150 类标注版本对应 FC-CLIP 的a150结构ADE-847ADE20K-Full 的 847 类标注版本对应 FC-CLIP 的a847结构。配置差异两个数据集使用各自的 config且split统一为validation数据集configds_namen_classignore_backgroundADE-150configs/ade_150.yamlade151TrueADE-847configs/ade_847.yamlade_847847TrueSAM 掩码的特殊说明config 中有一行重要注释——You need to extract the sam mask for the ADE dataset if use_pseudoFalse。即 ADE 系列在use_pseudo: False不使用伪标签、改走 SAM 在线/离线掩码分支时还需要额外准备 SAM 掩码目录sam_mask_root: $YOUR_SAM_MASK_DIR并在 configs/ade_150.yaml 的sam节配置 SAM 检查点路径与推理参数如points_per_side、pred_iou_thresh、stability_score_thresh、box_nms_thresh。如果use_pseudo: True则无需 SAM 掩码评估会快很多。2.5 仓库额外支持的语义分割数据集除 DATA.md 明确列出的数据集外configs 目录还包含两个语义分割扩展数据集其数据准备方式与上述数据集同构可作为补充了解Pascal Context 459configs/pascal_context_459.yamlds_name: pascal_459460 类459 背景ignore_background: True同样拆分 thing/stuff 标签空间PASCAL_459_THING_CLASS/PASCAL_459_STUFF_CLASSgReSconfigs/gres.yaml泛化指代分割数据集seg_mode为refer模式。三、指代分割数据集准备Ref-COCO 系列指代分割Referring Segmentation的目标是根据一句自然语言描述分割出所指物体评估指标为 Mask IoU。DATA.md 针对Ref-COCO、RefCOCO 与 RefCOCOg给出了两步准备流程。3.1 第一步搭建 refer 仓库结构与标注按referlichengunc/refer仓库的说明在其目录下建立相应子目录并下载指代标注文件。refer 是 RefCOCO 系列数据集标注的标准管理工具refer包会负责解析refs指代标注、annotations实例分割标注与images图像三部分数据。3.2 第二步下载 COCO 2014 训练图像并解压RefCOCO 系列使用COCO 2014的图像作为底图因此需要从 COCO 官网下载页面使用第一个下载链接2014 Train images [83K/13GB]注意必须是 2014 版RefCOCO 的标注基于 2014 图像 ID 体系不能与 2017 版混用将下载得到的train_2014.zip解压到./refer/data/images/mscoco/images解压后的目录结构形如refer/ └── data/ └── images/ └── mscoco/ └── images/ └── train2014/ # COCO 2014 训练图像也就是说refer 仓库根目录应作为该任务的data_root传入 config。评估时通过 configs/refcoco.yaml 指定test: algo: car ds_name: refcoco seg_mode: refer split: val data_root: $YOUR_DATA_DIR prompts_augment: False use_pseudo: True3.3 RefCOCO / RefCOCOg 与加载细节三个数据集共用同一套加载器 data/refcoco.py 中的ReferDataset通过dataset参数区分refcoco/refcoco/refcocog。splitBy默认取uncRefCOCOg 评估时通常使用umd划分可通过 config 的test.splitby覆盖参见 evaluate.py。指代分割模式下没有n_class句子由数据集中每条样本自带的sentences提供直接送入 CLIP 文本编码器config 中的sentence_process.mixing_alpha如0.用于控制句子融合策略。评估结果会输出Mean IoU、overall IoU 以及 precision0.5/0.6/0.7/0.8/0.9五档指标见 evaluate.py。四、用 data_root 驱动评估evaluate.py 工作流数据就位后按 clip_as_rnn/README.md 的说明评估命令为python3 evaluate.py --cfg-pathCFG_PATHCFG_PATH指向configs目录下对应数据集的 yaml。这里结合源码梳理数据相关配置的完整生效链路4.1 数据集分发get_datasetevaluate.py 中的get_dataset依据cfg.test.ds_name分发到对应加载器voc→VOCDataset、context→CONTEXTDataset、coco→COCODataset、ade→ADEDataset、ade_847→ADE847Dataset、pascal_459→Pascal459Datasetrefcoco*/gres则走指代分割加载器。data_root即cfg.test.data_root作为root参数传入这正是 DATA.md 强调只需修改data_root的代码依据。4.2 分片评估num_chunks / chunk_index针对大数据集尤其是 ADE-847 这种近千类的场景评估支持分片chunk_size len(dataset_test) // num_chunks subset_indices range(chunk_index * chunk_size, (chunk_index 1) * chunk_size)通过 config 中的num_chunks与chunk_index可以把验证集切成 N 片、在多个机器/进程上并行评估最后合并结果。4.3 标签空间与 mIoU 计算label_spacething 类文本与stuff_label_spacestuff 类文本由ds_name决定例如 Context 对应PASCAL_CONTEXT_THING_CLASS/PASCAL_CONTEXT_STUFF_CLASS最终指标由semantic_iou计算输出 Pixel Accuracy、Mean Accuracy、Frequency Weighted IoU、mIoU 与逐类 IoU当ignore_background: True时混淆矩阵会切除第 0 行第 0 列背景类不参与 mIoU见 evaluate.py这就是 ADE 系列 config 置为True的原因。4.4 命令行覆盖能力evaluate.py 还支持通过命令行覆盖关键阈值而不必改 config--mask_threshold、--confidence_threshold、--clipes_threshold、--bg_factor、--stuff_bg_factor、--visual_prompt_type、--stuff_visual_prompt_type、--output_path。这在快速调参、对比不同阈值对 mIoU 的影响时非常方便。五、准备清单与常见注意事项检查项说明依据目录结构无需在仓库内建树状数据目录数据全部外置clip_as_rnn/DATA.mddata_root每个 config 的test.data_root必须指向真实数据根目录configs/voc.yaml 等背景类所有语义分割数据集都含背景类n_class 目标类数 1evaluate.pyPascal VOC按 MMSegmentation 说明下载加载器固定 year 2012背景参与 mIoUdata/voc.pyPascal Context需SegmentationContextSegmentationClassContext目录year 2010thing/stuff 分开推理data/context.pyCOCO Object按 GroupViT 方式准备需要images/val2017与annotations/val2017含*_instanceTrainIds.pngdata/coco.pyADE-150/847按 FC-CLIP 方式准备ignore_background: Trueuse_pseudo: False时需预提取 SAM 掩码configs/ade_150.yamlRef-COCO 系列refer 仓库建目录 下载标注COCO 2014 Train images83K/13GB解压到./refer/data/images/mscoco/imagesclip_as_rnn/DATA.md大数据集评估用num_chunks/chunk_index分片并行evaluate.py常见问题提醒COCO 版本不要混用RefCOCO 系列必须配 2014 Train 图像而 COCO Object语义分割使用 2017 图像两者是不同任务、不同版本路径与标注格式均不同背景类处理别混淆VOC/Context/COCO 的 mIoU 含背景ADE 系列不含背景切换数据集时n_class与ignore_background必须按对应 config 保持一致SAM 掩码是可选依赖默认use_pseudo: True走伪标签分支即可完成评估若关闭伪标签需先为 ADE 等数据集提取 SAM 掩码并正确设置sam_mask_root与 SAM 检查点。按以上流程完成数据准备与data_root配置后即可用一条python3 evaluate.py --cfg-pathconfigs/数据集.yaml命令复现 CaR 在语义分割与指代分割两大 Benchmark 上的完整评估。赞分享人工智能深度学习NLP计算机视觉强化学习【免费下载链接】google-researchGoogle Research项目地址https://gitcode.com/gh_mirrors/go/google-research点击查看免费下载相关推荐CLIP as RNNCaR实战指南零训练分割无数视觉概念CLIP as RNNCaR实战指南零训练分割无数视觉概念 CLIP as RNN简称 CaR是 Google Research 开源的一项无需训练人工智能深度学习NLP计算机视觉强化学习MMSegmentation 中的 FCN 语义分割FCNHead 源码解析与全数据集 Benchmark 实战指南MMSegmentation 中的 FCN 语义分割FCNHead 源码解析与全数据集 Benchmark 实战指南 导读 FCNFully Convolu人工智能深度学习计算机视觉DeepLabV3语义分割模型完整配置指南DeepLabV3语义分割模型完整配置指南 快速上手5步完成模型部署 核心功能 DeepLabV3是基于PyTorch的语义分割神器让AI轻松识别人工智能计算机视觉深度学习上一篇Apache Tomcat企业级架构深度解析高性能Java Web服务器核心设计与最佳实践下一篇Druid中的策略模式实现灵活的行为切换创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表