4. 数据标注基础:标注类型与工具选型
数据标注这件事,说实话,是很多团队最容易忽视的环节。我见过不少项目,算法模型结构设计得漂漂亮亮,训练流程也搭得挺顺,结果一跑起来,效果就是上不去。查来查去,最后发现是标注数据出了问题。嗯,这其实挺常见的。
今天我们就来聊聊标注这件事。我会结合我自己在项目里踩过的坑,把标注类型、工具选型、质量把控这几个关键点讲清楚。
4.1 标注类型:2D、3D 与时序
标注类型的选择,说白了取决于你的传感器配置和算法目标。我习惯把它们分成三类来讲。
4.1.1 2D 标注
2D 标注是最基础的。就是在图像上画框、画点、画多边形。常见的包括:
- 目标检测框:矩形框,标注物体的位置和类别。比如车、人、自行车。
- 语义分割:像素级分类。每个像素都要标上类别,比如道路、天空、车辆。
- 关键点标注:标出物体的关键部位。比如人的肩膀、膝盖,或者车辆的车轮、车灯。
我个人习惯,在项目初期先用 2D 检测框快速验证算法可行性。因为 2D 标注成本低、速度快,适合快速迭代。
4.1.2 3D 标注
3D 标注就复杂多了。它需要标注物体在三维空间中的位置、尺寸和朝向。常见的数据形式是点云(LiDAR)或者 3D 包围盒。
3D 标注的难点在于:
- 遮挡严重:点云稀疏,物体被遮挡后很难判断边界。
- 标注效率低:一个 3D 框的标注时间可能是 2D 框的 5-10 倍。
- 一致性差:不同标注员对物体朝向的判断可能完全不同。
我在项目中遇到过一个问题:同一个场景,两个标注员对同一辆车的朝向标注差了 30 度。这直接导致模型在转弯场景下频繁误检。后来我们加了一条规则:朝向标注必须以车头方向为准,且误差不超过 10 度。
4.1.3 时序标注
时序标注,说白了就是给连续帧的数据做标注。比如视频或者连续的点云序列。
时序标注的核心挑战是:
- 跟踪一致性:同一个物体在不同帧里的 ID 必须一致。
- 边界帧处理:物体刚出现或即将消失时,怎么标?
- 标注量巨大:一秒钟 30 帧的视频,标注量是单帧的 30 倍。
我建议的做法是:先标关键帧,然后通过插值算法生成中间帧的标注,最后人工修正。这样能节省 60% 以上的标注时间。
4.2 标注工具选型
工具选型这件事,我踩过不少坑。早期我们团队用开源工具,后来发现管理起来太麻烦。现在我的原则是:看团队规模和数据量。
下面是我常用的两款工具对比:
| 工具 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| LabelStudio | 小团队、快速原型 | 开源免费、配置灵活、支持多种标注类型 | 性能一般、大规模数据管理弱 |
| Supervisely | 中大型团队、生产环境 | 功能全面、支持自动化标注、团队协作强 | 收费、学习曲线陡 |
4.2.1 LabelStudio
LabelStudio 是我个人比较喜欢的工具。它轻量、开源,适合快速搭建标注流程。你想想看,一个下午就能部署好,然后直接开始标数据,多方便。
它的配置方式是用 XML 定义标注界面。比如一个简单的 2D 检测框标注配置:
<View>
<Image name="image" value="$image"/>
<RectangleLabels name="label" toName="image">
<Label value="car" background="red"/>
<Label value="person" background="blue"/>
<Label value="bicycle" background="green"/>
</RectangleLabels>
</View>
嗯,这里要注意:LabelStudio 的配置虽然灵活,但如果你需要复杂的 3D 标注或者时序标注,它的支持就比较弱了。
4.2.2 Supervisely
Supervisely 是更工业化的选择。它内置了自动化标注功能,比如用预训练模型做预标注,人工只需要修正。这能大幅提升效率。
我记得有一次,我们团队需要标注 10 万张 3D 点云数据。如果用纯人工,至少需要 3 个月。但用 Supervisely 的自动化标注 + 人工修正,我们只用了 3 周就完成了。
- 项目初期、数据量小:用 LabelStudio
- 项目中期、数据量大:考虑 Supervisely
- 如果预算充足:直接上 Supervisely,省心
4.3 质量把控
标注质量,是数据闭环里最容易出问题的一环。我见过太多团队,模型训练完了才发现标注数据里有大量错误。这时候再回头清洗数据,成本极高。
我的质量把控策略分三步:
- 标注前:制定规范
- 明确标注规则:比如遮挡怎么处理、边界怎么定义。
- 制作标注示例:好的和坏的示例都要有。
- 培训标注员:至少培训 2 天,然后做考核。
- 标注中:实时监控
- 随机抽检:每天抽检 10% 的标注数据。
- 反馈机制:发现问题及时反馈给标注员,避免批量错误。
- 一致性检查:让两个标注员标同一批数据,对比差异。
- 标注后:自动化校验
- 规则校验:比如检测框不能超出图像边界、类别不能为空。
- 模型校验:用预训练模型跑一遍,对比标注结果。
- 统计分析:检查类别分布、标注数量是否合理。
最后说一句:标注质量直接决定了模型的天花板。你想想看,如果输入的数据都是错的,模型再厉害也学不出好东西。所以,别在标注上省钱省时间,这钱和时间花得值。