ARTICLE DETAIL

资讯详情

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

Label Studio BitmaskLabels 标签详解:像素级图像分割标注与遮罩输出

Label Studio BitmaskLabels 标签详解:像素级图像分割标注与遮罩输出 Label Studio BitmaskLabels 标签详解像素级图像分割标注与遮罩输出【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio导读BitmaskLabels是 Label Studio 面向像素级pixel-wise图像分割任务的核心控制标签配合Image标签与Label子标签使用可让标注员通过画笔/橡皮在图像上逐像素绘制掩膜区域。本文从官方标签文档出发完整解析其全部配置参数、示例配置与导出数据格式base64 编码的 PNG data URL并结合 editor 前端源码 深入讲解其底层画布实现与序列化流程帮助你快速搭建可用的图像分割标注项目。BitmaskLabels 是什么BitmaskLabels用于像素级图像分割标注任务适用于需要涂抹遮罩mask或用画笔在图像上圈定区域的场景。与矩形框、多边形等几何标注不同它操作的是图像中的每个像素因此能够表达任意形状的分割区域适合人像分割、医学影像分割、遥感地物提取等精细化任务。按官方文档定义BitmaskLabels在像素级别运作输出一张 base64 编码的 PNG data URL 图片内容为黑色像素 透明背景导出数据示例data-url:image/png;[base64-encoded-string]适用数据类型image。在源码中该标签注册于 标签注册中心其模型由ControlBase、LabelsModel、BitmaskModel、LabelMixin、SelectedModelMixin、InteractivePromptMixin等组合而成并通过controlledTags: [Image]校验只能与Image标签搭配使用这与文档Use with the following data types: image的描述一一对应。参数详解参数类型默认值说明namestring—元素名称必须填写用于与其他标签建立引用toNamestring—要标注的目标图片名称即Image标签的namechoicesingle|multiplesingle配置标注员每次可以选择单个还是多个标签maxUsagesnumber—每个标签在单个任务中最多可被使用的次数上限showInlinebooleantrue是否将标签选项显示在同一视觉行内其中name与toName是必填参数name标识该控制元素本身toName必须指向Image标签的name二者共同建立标签 → 图像的绑定关系choice决定标注工具中标签是单选还是多选maxUsages用于限制某个标签如某个类别在单个任务中的使用次数showInline控制标签按钮的排版方式。从 BitmaskLabels 源码注释 可以看到这五个参数的定义与文档完全一致。此外底层 Bitmask 标签模型 还提供了文档参数表之外的可选属性参数类型默认值说明strokeWidthstring15画笔笔触宽度像素直接写入TagAttrs模型smartbooleanfalse是否显示用于交互式预标注的 Smart 工具smartOnlybooleanfalse是否只显示 Smart 工具隐藏普通画笔其中strokeWidth定义画笔粗细默认 15 像素可通过strokeswidth20等方式覆盖smart/smartOnly用于接入交互式预标注Interactive Pre-annotation这些参数在更细粒度的Bitmask控制标签上同样可用。完整示例配置官方文档给出的基础图像分割标注配置如下View BitmaskLabels namelabels toNameimage Label valuePerson / Label valueAnimal / /BitmaskLabels Image nameimage value$image smoothingfalse / /View该配置可直接粘贴到 Label Studio 项目的标注配置Labeling Config中实现人Person/ 动物Animal两类别的像素级分割标注。配置要点BitmaskLabels内部通过Label子标签声明类别类别值与最终导出的标注结果一一对应Image标签的value$image绑定任务数据的图片字段$image即数据 JSON 中的键名Image标签必须设置smoothingfalse否则画布会对边缘像素做平滑插值无法做到逐像素级别的精确操作。这也是官方文档中特别标注的注意事项。如果项目中存在多张待标注图片如图片列表可将Image放入循环容器并复用同一组BitmaskLabelsView BitmaskLabels namelabels toNameimage Label valuePerson / Label valueAnimal / Label valueBackground / /BitmaskLabels View Image nameimage value$image smoothingfalse / /View /View提示BitmaskLabels的choicemultiple允许在同一张图上使用多个类别标签分别涂抹不同区域配合maxUsages可控制每个类别的使用次数适合需要约束类别数量的任务。导出数据格式base64 编码的 PNG 遮罩BitmaskLabels的标注结果不是坐标点或几何路径而是一张与原始图片同尺寸的位图遮罩。导出时以 PNG data URL 形式输出格式为data-url:image/png;[base64-encoded-string]即data-url:image/png;前缀 一段 base64 编码的 PNG 图像数据。遮罩图像中标注区域为黑色像素非标注区域为透明背景——黑色像素即前景被选中的类别区域透明像素即背景消费端拿到这张 PNG 后可直接解码为二值掩膜用于模型训练或后处理。该格式由 BitmaskRegion 源码 的getImageDataURL()生成先从离屏画布offscreen canvas快照再调用canvas.toDataURL(image/png)导出。在 序列化方法 中结果被组织为{ imageDataURL: self.imageDataURL }并交给上层createSerializedResult生成标准result结构前端在 Result 类型注册 中登记了bitmask与bitmasklabels两种类型后端据此识别并存储标注结果。底层实现原理画布与遮罩合成从源码看Bitmask 标注的核心是一条完整的离屏画布 → 遮罩合成 → 序列化链路理解它有助于你调试导出结果异常如遮罩颜色、透明通道问题双画布架构BitmaskRegion 模型 维护两块画布——offscreenCanvasRef保存黑白掩膜形状数据这个画布永远保持黑色像素 透明背景bitmaskCanvasRef则负责承载带有类别颜色的可见笔触。二者均按图片原始尺寸naturalWidth/naturalHeight创建。像素级坐标换算绘制时 positionToStage 使用Math.floor(x / stageZoom)将舞台坐标还原为原始像素坐标保证画笔贴合真实像素这正是smoothingfalse生效后的逐像素体验。遮罩合成composeMask() 以destination-atop混合模式将当前类别颜色填充到黑白掩膜上形成带颜色的可视化遮罩getImageSnapshotCanvas() 在导出时反向操作把彩色遮罩重新转回纯黑色掩膜从而保证导出结果始终是文档承诺的黑色像素 透明背景格式。撤销/重做与自动保存源码注释明确指出历史记录只通过imageDataURL追踪不存储逐点路径因此endPath()会先finalizeRegion()再updateImageURL()确保草稿/自动保存始终持有最新的遮罩快照同时addPoint约以 60fps16ms 节流的频率合成遮罩兼顾绘制流畅度与性能。与其他分割标签的搭配与选择Label Studio 中与位图分割相关的标签还包括 Brush 标签独立画笔控制标签与 BrushLabels 标签带标签集合的画笔。它们与BitmaskLabels同属像素级涂抹工具族产出均为位图遮罩BitmaskLabels自带Label子标签与类别管理是最常用的标签 画笔一体化方案即本文主讲的用法BrushLabels画笔与标签集合分离适合在已有Labels分组时复用同一组画笔配置Bitmask控制标签更底层的位图控制标签额外暴露smart/smartOnly交互式预标注开关。选择依据如果你的标注界面只需要一个类别集合 画笔直接使用BitmaskLabels即可若需要与 Smart 交互式预标注、ML 后端联动可参考 ml-interactive 模块 中关于 bitmask 输出的解析实现mask-output。小结BitmaskLabels是 Label Studio 像素级图像分割标注的标准入口通过name/toName绑定图片、Label子标签声明类别、Image标签配合smoothingfalse开启逐像素精确绘制最终产出 base64 编码的 PNG 遮罩黑像素前景 透明背景。无论是搭建基础分割标注项目还是对接机器学习训练管线掌握其参数语义、示例配置与输出格式都能让你快速落地一套可复用的图像分割标注流程。相关源码与测试可继续查阅 BitmaskLabels 实现、BitmaskRegion 区域模型 以及 bitmask 集成测试数据。【免费下载链接】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),仅供参考
返回列表