ARTICLE DETAIL

资讯详情

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

Label Studio 标注界面配置全指南:从项目模板到自定义 XML 标签

Label Studio 标注界面配置全指南:从项目模板到自定义 XML 标签 Label Studio 标注界面配置全指南从项目模板到自定义 XML 标签【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioLabel Studio 的所有标注活动都发生在项目Project的上下文中。创建项目并导入数据之后为项目配置标注界面Labeling Interface与标注配置Labeling Configuration是整个标注工程最核心的环节——它直接决定标注员看到什么数据、能执行哪些标注操作、以及最终导出的标注结果格式。本文以 配置标注界面官方指南 为主线结合仓库源码与模板实现完整讲解在 Label Studio 中配置标注界面的操作步骤、模板选择、XML 标签体系与自定义配置方法并覆盖命令行与 API 两种程序化配置方式帮助你从零搭建一套可交付生产使用的标注界面。准备工作项目的三个前置环节标注界面配置是项目工作流中的一环。在 项目配置指南 中给出的标准流程是创建项目在 Label Studio 右上角点击Create Project填写项目名称唯一必填项可选填写描述与工作区Data Import页签可立即上传文件也可在项目创建后再导入。导入数据小规模项目、测试或概念验证可直接通过 UI 上传本地文件较大项目建议配置云存储同步导入方式详见 数据导入指南。自定义标注界面本文主题推荐先选择预置模板再修改也可以基于 标签库 从零编写自定义配置。完成上述步骤后还可以通过 项目设置 配置任务采样方式默认顺序采样可改为随机与标注说明Instructions等附加项。为项目设置标注界面在 Label Studio 中配置标注界面本质上是回答两个问题标注员面对的是什么数据以及标注员需要对数据执行什么操作。操作步骤如下从 可用模板 中选择一个模板或在此基础上自定义。Label Studio 会根据你的数据自动选择要标注的字段如不匹配可手动修改所选字段。在每个新行上添加标签Label名称。可选点击标签名通过取色器为标签更换颜色。配置与标注界面功能相关的附加设置。例如标注文本时可能提供按词选择文本Select text by words等选项。点击保存Save。这里有一个容易忽略的细节模板界面中自动识别出的字段对应 XML 中对象标签的value属性如$image_url而步骤 3、4 中添加的标签名称与颜色则对应控制标签如Choices下的Choice项。这套映射关系在后续自定义 XML 时会直接用到。修改标注界面若项目已存在进行中的标注工作修改前需注意两个限制不能删除正在被标注使用的标签也不能更改标注类型除非先删除所有使用了这些标签的既有标注修改标注配置后Data Manager 中已创建的页签Tabs会被移除。修改入口为打开项目 → 点击Settings→ 点击Labeling Interface→ 浏览模板、更新可用标签或切换到Code选项使用 标签 进一步定制界面。代码视图自动补全Code 视图内置自动补全autocomplete辅助功能随输入即时出现输入左尖括号后弹出标签Tag建议在标签内输入一个空格后弹出该标签可用的参数建议。补全项高亮时点击即可选中或按Tab 键接受。这一交互降低了手写 XML 的心智负担也让不熟悉标签参数的用户可以探索每个标签支持的能力如Image的zoomControl、rotateControl等。三类标签对象、控制与视觉项目的标注配置是一份 XML 文件由三类 Label Studio 特有的标签组合而成标签类型使用场景对象Object指定数据类型与数据集的输入数据源如Image、Text、Audio、Video、TimeSeries等控制Control配置执行何种标注操作以及标注结果如何呈现如Choices、Labels、TextArea、Rating等视觉Visual定义标注界面的 UI 外观如View、Header、Style等三类标签通过name与toName属性建立联系控制标签的toName指向对象标签的name从而把操作绑定到数据上。全部可用标签见仓库的 标签库文档 及对应模板。从源码看标签是如何被解析与校验的从源码层面看label_config在项目中是一个TextField默认值为View/View其 help_text 明确说明Label config in XML format见 projects/models.py。项目同时维护了parsed_label_configJSON 格式的解析结果与label_config_hash两个派生字段说明每次配置保存时都会经历一次XML → 结构化 JSON的转换与哈希记录。这一解析、校验逻辑集中在 core/label_config.py 的validate_label_configXML 合法性使用defusedxml将配置字符串解析为 XML 树forbid_dtdTrue防止 DTD 注入Schema 校验将 XML 转换为 JSONxmljson.badgerfish后与内置的label_config_schema.json做 JSON Schema 校验name 唯一性通过正则提取所有name...若存在重复则报错toName 引用检查提取所有toName...若引用了不存在的name则抛出toNamexxx not found in names错误标签属性校验通过LabelInterface(config_string)._tag_attribute_validation()逐标签校验参数约束。这解释了为什么模板界面中无法引用一个不存在的字段——因为后端保存时会做严格校验对应测试见 tests/test_config_validation.py。同时projects/serializers.py 中的validate_label_config会在创建/更新项目时挂接该校验器保证只有合法配置才能写入数据库。自定义模板你可以修改某个 标注配置模板也可以基于 标签 从零编写自定义配置。如果创作出的配置对其他用户有通用价值可以按 annotation_templates 目录 的规范将配置贡献为模板。一个完整的示例图像二分类例如要对数据中以 URL 形式引用的图片$image_url做 Cat / Dog 二分类可使用如下配置View Image nameimage_object value$image_url/ Choices nameimage_classes toNameimage_object Choice valueCat/ Choice valueDog/ /Choices /ViewImage是对象标签通过value$image_url指向任务数据中的图片字段详见 Image 标签文档Choices是控制标签toNameimage_object将选择项绑定到图片对象详见 Choices 标签文档每个Choice value.../定义一个可选项value同时作为导出结果中使用的值。若希望同一张图片上允许同时勾选 Cat 和 Dog多选分类只需给Choices增加choicemultiple参数View Image nameimage_object value$image_url/ Choices nameimage_classes toNameimage_object choicemultiple Choice valueCat/ Choice valueDog/ /Choices /Viewchoice参数支持single默认单选、single-radio单选框样式单选与multiple复选框多选三种取值。示例模板在仓库中的真实形态仓库的模板体系把界面配置与模板元信息分离模板元信息标题、行业应用、关联模型、配置文本存放在 YAML 中例如 image-classification/config.ymlconfig: | View Image nameimage value$image/ Choices namechoice toNameimage Choice valueAdult content/ Choice valueWeapons / Choice valueViolence / /Choices /View可以看到它与文档示例结构完全一致都是Image 对象标签 Choices 控制标签的组合只是换成了内容审核场景的三分类。仓库按业务领域组织模板目录如 计算机视觉 下的 image-classification、object-detection-with-bounding-boxes、semantic-segmentation-with-polygons、optical-character-recognition 等以及 自然语言处理、时间序列分析 等分组分组清单见 groups.txt。这些模板正是 UI 中Select a template的来源。深入理解 Image 与 Choices 标签参数Image 标签对象标签数据源类型为图片。标注图片区域时标注结果会以原始图像尺寸的百分比0–100保存这一点在 Image 标签文档 中明确说明。核心参数包括参数类型默认值说明namestring必填元素名称valuestring必填数据字段存放图片路径或 URLvalueListstring—引用一个存有图片 URL 列表的变量多页文档标注场景width/maxWidthstring100%/750px图片显示宽度与最大宽度zoom/negativeZoombooleanfalse是否允许鼠标滚轮放大 / 缩小zoomByfloat1.1缩放系数zoomControlbooleanfalse工具栏是否显示缩放控件brightnessControl/contrastControlbooleanfalse工具栏是否显示亮度 / 对比度控件rotateControlbooleanfalse工具栏是否显示旋转控件grid/gridSize/gridColor—false/30/#EEEEF4网格显示与样式crosshairbooleanfalse十字准星光标horizontalAlignment/verticalAlignmentenumleft/top图片水平 / 垂直对齐方式defaultZoomauto|original|fitfit初始缩放策略crossOriginnone|anonymous|use-credentialsnone图片跨域 CORS 行为Choices 标签控制标签适用于所有数据类型用于单选/多选分类。核心参数包括参数类型默认值说明namestring必填选择组名称toNamestring必填要标注的数据项名称对象标签的namechoicesingle|single-radio|multiplesingle单选或多选showInlinebooleanfalse选项是否在同一行展示required/requiredMessageboolean / stringfalse是否强制必须选择及校验失败提示文案visibleWhenenum—控制选项可见性如region-selected、choice-selected等常与whenTagName、whenLabelValue、whenChoiceValue组合使用perRegion/perItemboolean—针对特定区域 / 特定子项做选择而非整任务valuestring—任务数据字段用于动态加载选项列表allowNestedboolean—允许动态选项通过children字段嵌套提交结果将是多层数组layoutselect|inline|verticalvertical选项布局下拉、横向单行或纵向堆叠randomizebooleanfalse每次打开任务随机打乱选项顺序减少位置偏差不影响序列化结果显式hotkey不受影响Choices 还支持动态选项当Choices value$variants时任务数据中的variants数组会动态生成Choice项每个元素可以是对象html字段优先级高于value用于富内容展示但导出结果仍使用value。等价写法与完整示例见 Choices 标签文档。修改配置时的关键数据变更检测后端在保存配置更新时并非无脑覆盖config_essential_data_has_changed见 core/label_config.py会对比新旧配置中每个控制标签的type、inputs数据源绑定以及labels集合新增标签、变更标签类型、变更数据源绑定或删除了某个既有标签都被判定为关键变更对应地projects/api.py 中 PATCH 更新项目时会结合该检测决定是否重置 Data Manager 页签等派生状态。这也是文档中修改配置会移除 Data Manager 页签警告的底层实现依据。从命令行添加标注配置开源版本支持在启动时通过命令行传入config.xml文件来初始化项目label-studio my_new_project start --label-config config.xml该参数在 core/argparser.py 中定义为-l, --label-config其类型为valid_filepath——即参数值必须指向真实存在的文件否则启动即报错FileNotFoundError。因此使用前请确保config.xml已存在于当前目录或提供绝对路径。通过 API 添加标注配置标注配置也可以完全通过服务端 API 进行程序化管理。创建项目时直接在请求体中携带label_config字段即可projects/api.py 中给出的官方示例为curl -H Content-Type:application/json -H Authorization: Token abc123 -X POST http://localhost:8080/api/projects \ --data {title: My project, label_config: View/View}创建后还可通过 PATCH 更新label_config修改标注界面并通过专门的配置校验端点operationId 为api_projects_validate_label_config见 projects/api.py预检配置合法性。API 的完整端点说明见 后端 API 文档。由于每次写入都会经过前述validate_label_config校验链API 传入的 XML 与 UI 保存走的是同一条验证通道非法配置会直接返回 400 错误。小结配置标注界面是 Label Studio 使用中最关键的一步核心脉络可以概括为选模板起步从仓库 模板目录 中按数据类型与业务场景挑选模板UI 中即可直接套用改参数调行为通过choicemultiple、required、layout、randomize等控制标签参数与zoomControl、rotateControl等对象标签参数精确控制标注交互写 XML 做定制理解对象 控制 视觉三类标签的协作方式用name/toName建立数据与操作的绑定程序化交付借助--label-config命令行参数与/api/projectsAPI将标注界面配置纳入版本管理实现项目配置的自动化与可复制。无论采用模板还是完全自定义所有配置在保存时都会经过 core/label_config.py 中 XML 解析、JSON Schema、name 唯一性、toName 引用与标签属性五层校验确保写入数据库的每一份配置都是可被标注引擎正确执行的有效 XML。【免费下载链接】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),仅供参考
返回列表