3、标注工具详解(上):矩形框标注、多边形标注、关键点标注、标签属性设置

好,咱们直接进入正题。标注工具是CVAT的核心,也是你与深度学习模型打交道的起点。我见过太多人一上来就猛点鼠标,结果标注质量一塌糊涂,模型训练出来根本没法用。说白了,标注不只是画框,它是在给数据注入灵魂。

这一章,我会带你逐个击破矩形框、多边形、关键点这三种最常用的标注方式,顺便把标签属性设置这个容易被忽略的细节讲透。嗯,咱们开始吧。

3.1 矩形框标注:最基础也最容易翻车

矩形框标注,说白了就是画个框把目标框住。听起来简单?我刚开始用CVAT时,觉得这玩意儿闭着眼睛都能画。结果有一次标注一批行人数据,框的边界要么切掉半个脑袋,要么多出一大截背景。模型训练出来,检测框总是偏大或偏小。

为什么会这样?因为矩形框标注有几个关键点,你忽略了就会翻车。

3.1.1 基本操作

在CVAT里,矩形框标注的快捷键是 N。按下后,鼠标变成十字准星。按住左键拖动,松开就完成一个框。就这么简单。

但我个人习惯,会先按 Ctrl+Z 撤销几次,熟悉一下手感。因为CVAT的矩形框默认是「从左上到右下」拖拽,但如果你从右下往左上拖,框的方向会反过来。嗯,这个细节很多人不知道。

3.1.2 避坑指南:边界处理

我曾经犯过一个低级错误:矩形框紧贴着目标边缘画。结果模型训练时,因为边界像素信息太少,检测框总是偏移。后来我总结了一个经验:

我的经验:矩形框的边界与目标之间保留 2-3 个像素的「呼吸空间」。尤其是目标边缘模糊时,稍微留点余量,模型反而学得更好。

另外,对于遮挡严重的目标,比如人群中的一个人,矩形框只框可见部分即可。不要脑补被遮挡的区域,否则模型会学到错误的形状。

3.1.3 批量操作技巧

如果你要标注大量同类目标,比如一帧画面里有几十辆车,别一个个画。CVAT支持「自动标注」功能,但那是后面章节的内容。这里我教你一个土办法:

  • 先画一个标准框,调整好大小和位置
  • Ctrl+C 复制,然后 Ctrl+V 粘贴
  • 用方向键微调位置

这个方法虽然笨,但在小批量标注时效率极高。我当年标注一个交通监控数据集,就是用这个办法,一天干了别人两天的活。

3.2 多边形标注:精细分割的利器

矩形框搞不定复杂形状?那就上多边形。多边形标注可以精确勾勒出目标的轮廓,适用于不规则物体,比如车辆、动物、医疗影像中的病灶区域。

但多边形标注有个痛点:费时。一个复杂的多边形可能需要几十个点。我见过有人为了追求完美,一个物体标了上百个点,结果标注员累到崩溃,质量反而下降。

3.2.1 操作要点

Shift+N 切换到多边形模式。点击左键添加顶点,双击或按 Enter 完成闭合。嗯,这里有个小技巧:

核心原则:顶点数量不是越多越好。对于直线边缘,2-3个点就够了;对于曲线边缘,每隔 10-15 个像素加一个点。我一般控制在 20-30 个点以内,既能保证精度,又不会让标注员崩溃。

我曾经参与过一个医疗影像项目,标注肝脏肿瘤。一开始大家用矩形框,结果模型精度只有 60%。换成多边形后,精度直接飙到 85%。但代价是标注时间增加了 3 倍。所以,选择哪种标注方式,取决于你的精度要求和资源投入。

3.2.2 编辑与微调

画完多边形后,你还可以调整顶点。按住 Alt 键点击顶点,可以拖动它。按 Delete 删除顶点。按 Insert 在相邻顶点之间插入新顶点。

我个人习惯是先快速画一个粗略的多边形,然后再微调。因为CVAT的顶点吸附功能做得不错,你拖动顶点时,它会自动吸附到图像边缘。这个功能在标注边缘清晰的物体时特别好用。

注意:多边形标注时,如果目标被遮挡,不要强行勾勒遮挡物的轮廓。只标注可见部分,并在标签属性中标记「遮挡程度」。这个后面会讲。

3.3 关键点标注:骨骼与姿态的基石

关键点标注,说白了就是给目标的关键部位打点。比如人脸的关键点(眼睛、鼻子、嘴巴),或者人体的骨骼关键点(肩膀、手肘、膝盖)。

这个标注方式在姿态估计、人脸识别、手势识别等领域非常常见。我做过一个手势识别项目,就是靠关键点标注,让模型学会了识别「OK」「比心」「竖大拇指」这些手势。

3.3.1 配置关键点模板

在CVAT里,关键点标注需要先配置模板。比如人体关键点,你需要定义 17 个点(COCO标准)或 25 个点(OpenPose标准)。每个点有名称、颜色、是否可见等属性。

配置模板时,我建议你按身体部位分组:头部一组、躯干一组、四肢一组。这样标注员可以按顺序标注,不容易漏点。我曾经见过一个项目,因为模板没分组,标注员经常漏掉「左耳」这个点,导致模型对耳朵的识别率极低。

3.3.2 标注技巧

K 进入关键点模式。点击左键放置关键点。按 Ctrl+左键 可以移动已放置的点。

这里有个坑:关键点标注对像素级精度要求很高。比如人脸关键点,如果鼻子位置偏移了 3 个像素,模型学出来的结果就会「歪鼻子」。所以,我建议在标注时把图像放大到 200% 甚至 400%。

我的习惯:标注关键点时,先标「骨架点」(比如肩膀、髋部),再标「末端点」(比如手腕、脚踝)。因为骨架点决定了整体姿态,末端点容易受遮挡影响。先定骨架,再补细节,效率更高。

3.3.3 遮挡处理

关键点被遮挡了怎么办?比如一个人把手插在口袋里,手腕和手指都看不见。这时候,不要瞎猜位置。CVAT允许你把关键点标记为「不可见」或「遮挡」。

我建议:如果遮挡超过 50%,直接标记为「不可见」。如果只是部分遮挡,可以标记为「遮挡」,并尽量根据上下文推断位置。但记住,推断的位置要标注为「不确定」,否则模型会学到错误的信息。

3.4 标签属性设置:数据管理的灵魂

很多人觉得标签属性设置是小事,随便填填就行。大错特错!标签属性是数据管理的灵魂,直接影响模型的训练效果和后续的数据分析。

举个例子:你标注了一批车辆数据,标签只有「car」。但你的模型需要区分「轿车」「SUV」「卡车」。怎么办?重新标注?那成本就大了。所以,一开始就要规划好标签属性。

3.4.1 属性类型

CVAT支持多种属性类型:

属性类型 说明 示例
文本 自由输入字符串 车牌号、备注
数字 整数或浮点数 置信度、遮挡比例
单选 从预定义列表中选择一个 颜色:红/绿/蓝
多选 从预定义列表中选择多个 属性:破损/脏污/完好
布尔 是/否 是否遮挡

我个人最常用的是「单选」和「布尔」类型。因为这两种类型在后续的数据分析和模型评估中,最容易做统计和过滤。

3.4.2 属性设计原则

设计标签属性时,记住三个原则:

  • 够用就好:不要设计太多属性。我见过一个项目,一个标签有 20 多个属性,标注员光填属性就花了 30% 的时间。结果很多属性在训练时根本没用上。
  • 互斥且完备:单选属性的选项要互斥,且覆盖所有可能。比如「天气」属性,选项可以是「晴天/阴天/雨天/雪天」,不要漏掉「雾天」。
  • 可量化:能用数字表示的,尽量用数字。比如「遮挡程度」用 0-100% 的整数,比用「轻微/中等/严重」更精确。
我曾经踩过的坑:在一个安防项目中,我设计了「目标行为」属性,选项包括「行走/奔跑/站立/蹲下」。结果标注时发现,很多人同时「行走」和「奔跑」分不清。后来我把选项改成「静止/低速运动/高速运动」,标注一致性立刻提升了 20%。

3.4.3 批量设置属性

如果你有大量标注框需要设置相同的属性,别一个个点。CVAT支持批量选择标注框,然后统一设置属性。

操作方法是:按住 Ctrl 键,点击多个标注框,然后在右侧属性面板中一次性设置。这个功能在标注视频时特别有用——同一目标在连续帧中的属性通常不变,批量设置能省下大量时间。

3.5 本章小结

好了,这一章的内容就到这里。矩形框、多边形、关键点,这三种标注方式各有适用场景。矩形框最快,适合简单目标;多边形最精细,适合复杂形状;关键点最灵活,适合姿态分析。而标签属性设置,是贯穿始终的数据管理手段。

我建议你打开CVAT,找几张图片练练手。先画几个矩形框,再试试多边形,最后配置一个关键点模板。嗯,动手才是最好的学习方式。

一句话总结:标注工具是死的,但你的思路是活的。理解每种标注方式的优缺点,结合项目需求灵活选择,这才是资深工程师的素养。

公众号:蓝海资料掘金营,微信deep3321