十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Label Studio Visual Genome 模板:用区域、属性与关系三类标注构建图像场景图

Label Studio Visual Genome 模板:用区域、属性与关系三类标注构建图像场景图 Label Studio Visual Genome 模板用区域、属性与关系三类标注构建图像场景图【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio本指南讲解 Label Studio 内置的 Visual Genome 标注模板其核心思路是把结构化图像概念与自然语言描述连接起来在一张图片上同时标注区域Regions、属性Attributes与关系Relationships三类带描述的矩形框从而产出适合场景理解、视觉关系检测、视觉问答与多模态 AI 训练的结构化标注数据。读完本文你将掌握该模板的完整 XML 配置、JSON 数据格式、RectangleLabels 标签的关键参数以及它在当前仓库中的源码级实现位置。模板要解决什么问题Visual Genome 是一个以场景图为目标的图像理解范式不只回答图片里有什么物体还要回答物体长什么样属性物体之间有什么关系空间位置、从属、动作等。Label Studio 在 Visual Genome 模板 中把这一范式拆解为三个并行的标注维度Regions区域框出图片中需要关注的物体或片段并用自然语言描述它例如panda bear holding something in its pawAttributes属性框出承载属性信息的局部区域描述其外观特征例如nose is blackface is roundRelationships关系框出参与关系的两个对象描述它们之间的语义关系例如tree BEHIND bearmouth OF panda。在仓库的模板元数据中visual-genome/config.yml该模板被归类为 Computer Vision 下的社区模板标注的行业应用覆盖 scene understanding场景理解、visual reasoning视觉推理、visual relationship detection视觉关系检测、scene graph generation场景图生成、image captioning图像描述与 visual question answering视觉问答等方向。这为读者理解为什么一个模板要同时画三类框提供了背景产出的正是训练视觉关系检测器、场景图生成器或多模态模型的标注语料。Labeling Configuration完整配置与逐段解读模板的标注配置是一段可直接粘贴到项目中的 XML完整内容如下与仓库中 visual-genome/config.yml 的config字段一致View View styledisplay: flex; flex-wrap: wrap; View classNamelabel-column Header valueRegions/ RectangleLabels nameregions toNameimage value$regions/ /View View classNamelabel-column Header valueAttributes/ RectangleLabels nameattributes toNameimage value$attributes/ /View View classNamelabel-column Header valueRelationships/ RectangleLabels namerelationships toNameimage value$relationships/ /View /View Image nameimage value$image/ Style .label-column .lsf-labels { display: flex; flex-direction: column; align-items: flex-start; } /Style /View三列并排的标注面板最外层View内嵌了一个设置了display: flex; flex-wrap: wrap;的View其下再分三个带classNamelabel-column的子View分别承载 Regions、Attributes、Relationships 三组标签面板。每个面板先通过Header value.../渲染分组标题再放置一个RectangleLabels标签。这种一图三列、三套矩形框的布局让标注员在同一个标注界面上即可分门别类地完成三类描述性标注而不是在多个项目之间切换。三个 RectangleLabels 的命名与数据绑定三个RectangleLabels标签的配置要点标签名nametoNamevalue用途Regionsregionsimage$regions标注物体/片段区域及其自然语言描述Attributesattributesimage$attributes标注局部区域及其外观属性描述Relationshipsrelationshipsimage$relationships标注对象关系及其语义描述这里的关键是value$regions这类动态标签值绑定RectangleLabels通过value属性引用任务数据JSON中对应键的数组数组中的每个{ value: ... }条目会自动展开为一枚可选的标签按钮。这样标签集合不是写死在配置里而是随任务数据动态生成一个项目即可覆盖任意数量的描述性标签。这是 Label Studio 模板体系中动态标签dynamic labels的典型用法仓库中 gallery_dynamic_labels.ejs 也收录了该模板的预览入口。样式块末尾的Style块针对.label-column .lsf-labels施加样式把标签列表改为纵向排列flex-direction: column并左对齐align-items: flex-start。因为value动态生成的标签往往较长例如一整句描述纵向堆叠比横向换行更易读、更不易误点相邻标签。RectangleLabels 标签的参数体系RectangleLabels是 Label Studio 编辑器中用于带标签矩形框的控件标签。在源码 RectangleLabels.jsx 的注释中官方给出的完整参数如下参数默认值说明name必填元素名称同一配置内必须唯一toName必填指向要标注的图像标签名本模板中为imagechoicesingle单选或多选single/multiplemaxUsages—每个标签在单个任务中最多可被使用的次数showInlinetrue是否在同一行内展示标签opacity0.6矩形填充不透明度fillColor—矩形填充色十六进制strokeColor—描边颜色十六进制strokeWidth1描边宽度canRotatetrue是否显示旋转控制柄注意旋转结果中的锚点与标注锚点不同snapnone是否将矩形吸附到图像像素pixel/none此外从 schema/tags.json 中的RectangleLabels条目可知该标签适用于 Image 数据类型标注结果记录的是包围盒左上角坐标。模板中未显式设置choice等参数因此均使用默认值单选、不透明度 0.6 等如需让一个区域同时拥有多个描述标签可显式添加choicemultiple。Example data任务数据的 JSON 结构与上面配置配套的示例任务数据如下{ data: { image: https://htx-pub.s3.amazonaws.com/templates/visual-genome/panda.jpeg, regions: [ { value: panda bear holding something in its paw }, { value: trees behind the panda out of focus }, { value: piece of bamboo in pandas paw }, { value: bamboo next to panda }, { value: the panda is cute } ], attributes: [ { value: markings is black }, { value: nose is black }, { value: face is round }, { value: wood is round } ], relationships: [ { value: hole ON log }, { value: tree BEHIND bear }, { value: mouth OF panda } ] }}结构解读data.image图片 URL对应Image value$image/由任务数据驱动图片加载data.regions/data.attributes/data.relationships三个字符串数组元素均为{ value: 自然语言描述 }分别对应三个RectangleLabels的value$regions/value$attributes/value$relationships动态标签源关系描述采用对象A 介词 对象B的约定写法如tree BEHIND bear、mouth OF panda便于后续解析为(subject, predicate, object)三元组直接对接场景图标注的常见输出格式。如果模板缺少某类数据例如只导入 regions 而缺 attributes对应的标签列会因动态标签源为空而不渲染可用标签因此在批量导入前应确保三类键在任务数据中一致存在。该示例数据同样保存在模板仓库文件 visual-genome/config.yml 的注释块中可作为导入测试数据的直接来源。配置如何被校验底层校验链路当你在项目中保存这段 XML 时后端会对配置做多层校验入口在 label_config.py 的validate_label_configXML 与 JSON Schema 校验先解析 XML 为 JSON 结构并对照标签 schema 校验parse_config_to_jsonjsonschema.validate标签名、必填属性等非法写法会在此被拦截name 唯一性校验通过正则提取所有name...并检查重复本模板中regions、attributes、relationships、image四个 name 各不相同正是为了通过该项检查toName 引用校验提取所有toName...确认它们指向已存在的 name——本模板三个RectangleLabels的toNameimage均能命中Image nameimage/标签属性深度校验通过LabelInterface对标签属性做进一步 SDK 级校验。也就是说模板中每个标签的name/toName都不是随便起的toName必须精确匹配Image nameimage/否则保存配置时会被校验器拒绝。这也是复用本模板做改动时最容易踩的坑——新增标签列时务必保持toName指向同一个图像标签。在 Label Studio 中使用该模板基于以上配置落地使用的步骤为创建项目在 Label Studio 中新建项目将上文 Labeling Configuration 的 XML 粘贴到Labeling Setup编辑框粘贴后界面会自动渲染出 Regions / Attributes / Relationships 三列标签面板与图像区配置校验失败时页面会直接给出错误提示。准备任务数据按 Example data 的 JSON 结构构造任务——image指向可访问的图片 URL 或已配置存储中的图片路径regions/attributes/relationships提供三类描述标签。若使用本地文件存储或云存储S3、GCS 等image字段应替换为对应的数据引用格式。导入与标注导入任务后在图像上分别用三列标签画矩形框先点选某一列的标签如 Regions 下的panda bear holding something in its paw再在图中拖出包围该描述对象的矩形随后在 Attributes、Relationships 列重复同样操作。导出结果标注完成后导出时三类矩形框区域rectanglelabels类型将连同各自的标签文本写入标注结果可直接转换为场景图所需的区域-属性-关系结构。模板的原始配置与示例数据也已同步维护在 annotation_templates 目录中读者可以对照阅读或作为自定义改造的基线。改造方向包括为关系标注改用Relations/Relation标签显式连接两个区域、为属性标注叠加Choices做属性分类、或者把RectangleLabels换成PolygonLabels以支持更精细的分割式场景图标注。小结Visual Genome 模板是 Label Studio 中少见的一图三列多标签源组合示例它利用value$xxx动态标签绑定把图片的区域描述、属性描述与关系描述组织进同一个标注界面既保持了标注任务的清晰分工又借助动态标签避免了为每条描述硬编码Label。结合 RectangleLabels.jsx 的参数说明与 label_config.py 的校验逻辑你既能开箱即用地跑通该模板也能依据源码自由扩展出适合自己数据形态的场景图标注方案。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表