ARTICLE DETAIL

资讯详情

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

Agile Modeling 领域专家标注数据集完全指南:14 个概念的 LAION-400M 标注数据、CSV 结构与使用方式

Agile Modeling 领域专家标注数据集完全指南:14 个概念的 LAION-400M 标注数据、CSV 结构与使用方式 Agile Modeling 领域专家标注数据集完全指南14 个概念的 LAION-400M 标注数据、CSV 结构与使用方式【免费下载链接】google-researchGoogle Research项目地址: https://gitcode.com/gh_mirrors/go/google-research导读本篇文章围绕 google-research 仓库中 agile_modeling/data/README.md 所发布的Agile Modeling 领域专家标注数据集展开系统介绍这套与论文《Agile Modeling: From Concept to Classifier in Minutes》ICCV 2023配套的数据集的文件组织、两列式 CSV 格式、14 个概念的训练/测试样本规模统计以及 CC-BY-4.0 许可协议并结合仓库源码讲解该数据集在标注工具、CLIP 检索与分类器训练链路中的实际生成背景与使用方式。读完本文你将掌握如何用url唯一标识在 LAION-400M 中定位图片、如何把该数据集的训练/测试标注用于训练与评估图像二分类器以及如何复用仓库中的标注器Annotator与 KNN 检索服务复现论文实验。数据集背景Agile Modeling 实验产生的领域专家标注agile_modeling/data/目录中的标注数据来自论文实验期间由领域专家domain expert完成的标注工作。仓库主 READMEagile_modeling/README.md说明Agile Modeling 系统允许没有机器学习经验的用户从零开始为脑海中任意概念创建自己的图像分类器其核心流程是从无标注图像池中挑选少量图片交给用户标注再基于这些标注训练分类器。为了让后续研究可以直接复用实验成果该目录发布了所有实验中收集的全部标注数据包括消融实验ablation studies中的标注。这些标注数据同时配套发布了对应的标注工具与端到端实现主要包括agile_modeling/annotator.py基于 pigeon 改进的、支持键盘快捷键的 Colab 图片标注器数据集的positive/negative/no image标签即由这类工具采集agile_modeling/utils.py图片并行下载、检查以及基于预计算 CLIP 嵌入训练小 MLP 分类器的工具agile_modeling/clip_knn_service.py 与 agile_modeling/load_clip.py基于 FAISS 的 CLIP 嵌入 KNN 检索服务用于从无标注图像池中挑选待标注图片。标注的无标注图片池来自LAION-400M 开放数据集但正如主 README 所述Agile 框架并不局限于该数据集——只要把自定义无标注数据转换为正确格式即可使用详细处理步骤见 agile_modeling/Demo.ipynb。数据集结构每概念一份训练/测试标注文件对论文中讨论的14 个概念数据按以下规则组织每个概念两个 CSV 文件concept_name_train_labels.csv概念concept_name在系统所有消融实验中收集的全部训练数据的并集unionconcept_name_test_labels.csv按论文Section 4.2 描述的分层抽样策略stratified sampling详见论文 Appendix E收集的测试集。仓库中实际存在的 28 个文件与上述命名规则一一对应例如训练集测试集astronaut_train_labels.csvastronaut_test_labels.csvblock-tower_train_labels.csvblock-tower_test_labels.csvhealthy-dish_train_labels.csvhealthy-dish_test_labels.csvpie-chart_train_labels.csvpie-chart_test_labels.csvstop-sign_train_labels.csvstop-sign_test_labels.csv注意仓库中的文件名对概念使用kebab-case连字符小写形式如arts-and-crafts、single-sneaker-on-white-background、in-ear-headphones、hand-pointing、home-fragrance、gourmet-tuna、hair-coloring、emergency-service而 README 统计表中使用空格分隔的显示名如arts and crafts二者对应同一概念。CSV 文件格式url 与 label 两列每个 CSV 文件只包含两列首行为表头url,label后续每行一条标注记录url该标注对应图片在LAION-400M 数据集中的 URL用于在原始数据集中唯一标识这张图片同一图片在同一概念下不会重复出现label领域专家为对应概念建模时给出的标签即对问题Is this an image ofconcept_name?这是concept_name的图片吗的回答取值为positive或negative。以 astronaut_test_labels.csv 为例实际文件内容如下url,label https://aerolite.org/wp-content/uploads/2018/11/I-Need-My-Space-Retro-Socks-3.jpg,negative http://i1.kym-cdn.com/photos/images/newsfeed/000/721/867/a77.jpeg,negative https://www.nasa.gov/images/content/116317main_crew.jpg,positive https://t1.ftcdn.net/jpg/00/58/21/20/110_F_58212018_INV1DxZPAQAUzRkI9BdgSYSG198vYpeg.jpg,positive可以看到同一概念下既有positive也有negative样本这正是该图片是否属于该概念的二分类标注。关于 URL 的注意点由于图片 URL 指向 LAION-400M 原始网页资源可能随时间失效或不可访问。仓库源码对此有针对性处理utils.py中的download_image()与check_image_exists()都先执行url.replace(http://, https://)将 HTTP 升级为 HTTPS 再尝试访问并在失败时返回None/False标注器也会对无法下载的图片自动标记为no image见下文。因此使用本数据集时需要自行处理链接失效的情况以可用图片子集为准。数据集统计14 个概念的训练/测试样本规模README 给出了每个数据集的样本数量下表为原文数据的完整呈现各文件实际行数 样本数 1 行表头已逐一与仓库文件核对概念训练集样本数测试集样本数arts and crafts3,001707astronaut3,759637block tower3,942669dance4,051730emergency service6,764675gourmet tuna3,543576hair-coloring4,108645hand-pointing2,811832healthy-dish8,715633home fragrance4,050716in-ear headphones3,687687pie chart2,994594single sneaker on white background4,216556stop sign3,758704合计训练集共约54,896条标注14 个测试集共9,016条标注总计约6.4 万条标注记录仓库内 28 个 CSV 实际行数总和为 68,760 行减去 28 行表头后与此一致。从规模可以观察出几个特点训练集规模差异明显从 hand-pointing 的 2,811 条到 healthy-dish 的 8,715 条反映了不同概念在消融实验中被标注次数的差异训练集是所有消融实验训练数据的并集测试集规模相对均衡14 个概念测试集都在 556832 条之间这符合按固定分层抽样策略论文 Section 4.2 / Appendix E构造测试集的特征。标签的采集源头源码中的标注器与no image处理虽然发布的 CSV 只含positive/negative两类标签但标注采集过程实际支持三类选项。查看 agile_modeling/annotator.py 可以发现Annotator.__init__的默认选项为options[positive, negative, no image]即标注界面提供正例、负例、无图三个按钮Button并注册键盘快捷键数字键 1/2/3 分别对应各选项方向键左右切换上/下一张图automatically_label_no_imagesTrue时下载失败的图片utils.download_images_parallel返回None会被自动标记为no image并从待标注队列中剔除这正是数据集中只有positive/negative两类标签、且不包含失效 URL 标注记录的原因之一标注过程通过pickle_cache.PickleCacheagile_modeling/pickle_cache.py按 URL 缓存标注结果支持断点续标已标注过的 URL 直接复用缓存跳过重复标注标注器还会统计标注进度On image X | N annotated | M left与每张图片的平均标注耗时并打印Annotation done.提示。数据集的典型使用方式1. 直接读取 CSV 构建二分类数据集使用 Python 标准库即可加载例如import csv def load_labels(csv_path): rows [] with open(csv_path, newline, encodingutf-8) as f: reader csv.DictReader(f) for r in reader: rows.append((r[url], r[label])) return rows train load_labels(agile_modeling/data/astronaut_train_labels.csv) test load_labels(agile_modeling/data/astronaut_test_labels.csv)2. 结合 CLIP 嵌入训练分类器对应论文实验链路仓库中 agile_modeling/utils.py 提供了与论文实验一致的小型分类头create_classifier(layer_dims[32], dropout0.2, lr0.0003, weight_decay1e-4, feature_dim512, model_output_logitsTrue)在预计算的512 维特征嵌入即 CLIP 图像嵌入之上构建 MLP默认单隐层 32 个单元 ReLU Dropout输出层可选 logits 或 sigmoid并挂载accuracy、auc_roc、auc_pr、recallprec0.7/0.8/0.9、precisionrecall0.7/0.8/0.9等指标train_model(model, x, y, validation_dataNone, batch_size128, epochs16, step_multiplier4, patience10)调用model.fit训练step_multiplier用于放大每 epoch 步数启用基于val_auc_pr的 EarlyStopping 并恢复最优权重。使用方式为先加载 CSV 得到url与label再按 URL 从 LAION-400M 下载图片、用 CLIP 编码成 512 维嵌入作为特征x标签映射为 0/1 作为y即可训练并评估。3. 复现论文实验中的待标注图片选择可选若想复现从无标注池挑选图片给用户标注的完整流程可参考 agile_modeling/clip_knn_service.py 中的KnnService.query()它支持text_input文本、image_input图片、image_url_input图片 URL、embedding_input嵌入四种查询方式经 CLIP 编码后在 FAISS 索引中做最近邻搜索knn_search返回similarity、embedding及元数据如url、image_path、caption、NSFW并可通过deduplicateTrue做嵌入去重。索引与模型配置见create(indices_pathsindices.json, clip_modelViT-B/32, ...)与仓库中的 indices_train.json。许可协议与引用许可该数据集基于CC-BY-4.0 许可证发布详见 agile_modeling/data/README.md 的 License 一节。引用若在研究中使用该代码库或数据集请引用论文《Agile Modeling: From Concept to Classifier in Minutes》Stretcu 等ICCV 2023巴黎完整 BibTeX 见 agile_modeling/README.md 的 Citation 一节。使用注意事项小结URL 时效性标注文件依赖 LAION-400M 原始 URL链接失效是预期内的情况建议下载后本地缓存图片且仓库源码同样默认将http://升级为https://重试概念命名映射文件名为 kebab-case如arts-and-craftsREADME 统计表为空格分隔显示名如arts and crafts二者一一对应标签语义label是对Is this an image of concept_name?的二分类回答positive表示属于该概念、negative表示不属于训练集构成训练集是所有消融实验标注的并集测试集按分层抽样策略构建二者划分方式不同使用时勿混淆。通过本文你可以直接基于这套数据集开展概念分类器的训练与评测或结合仓库中的标注器与 KNN 检索服务复现 Agile Modeling 的完整建模流程为相关方向的研究提供可复用的数据基础与参考实现。【免费下载链接】google-researchGoogle Research项目地址: https://gitcode.com/gh_mirrors/go/google-research创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表