3、标注工具详解(上):矩形框标注、多边形标注、关键点标注、标签属性设置
好,咱们直接进入正题。标注工具是CVAT的核心,也是你与深度学习模型打交道的起点。我见过太多人一上来就猛点鼠标,结果标注质量一塌糊涂,模型训练出来根本没法用。说白了,标注不只是画框,它是在给数据注入灵魂。
这一章,我会带你逐个击破矩形框、多边形、关键点这三种最常用的标注方式,顺便把标签属性设置这个容易被忽略的细节讲透。嗯,咱们开始吧。
3.1 矩形框标注:最基础也最容易翻车
矩形框标注,说白了就是画个框把目标框住。听起来简单?我刚开始用CVAT时,觉得这玩意儿闭着眼睛都能画。结果有一次标注一批行人数据,框的边界要么切掉半个脑袋,要么多出一大截背景。模型训练出来,检测框总是偏大或偏小。
为什么会这样?因为矩形框标注有几个关键点,你忽略了就会翻车。
3.1.1 基本操作
在CVAT里,矩形框标注的快捷键是 N。按下后,鼠标变成十字准星。按住左键拖动,松开就完成一个框。就这么简单。
但我个人习惯,会先按 Ctrl+Z 撤销几次,熟悉一下手感。因为CVAT的矩形框默认是「从左上到右下」拖拽,但如果你从右下往左上拖,框的方向会反过来。嗯,这个细节很多人不知道。
3.1.2 避坑指南:边界处理
我曾经犯过一个低级错误:矩形框紧贴着目标边缘画。结果模型训练时,因为边界像素信息太少,检测框总是偏移。后来我总结了一个经验:
另外,对于遮挡严重的目标,比如人群中的一个人,矩形框只框可见部分即可。不要脑补被遮挡的区域,否则模型会学到错误的形状。
3.1.3 批量操作技巧
如果你要标注大量同类目标,比如一帧画面里有几十辆车,别一个个画。CVAT支持「自动标注」功能,但那是后面章节的内容。这里我教你一个土办法:
- 先画一个标准框,调整好大小和位置
- 按
Ctrl+C复制,然后Ctrl+V粘贴 - 用方向键微调位置
这个方法虽然笨,但在小批量标注时效率极高。我当年标注一个交通监控数据集,就是用这个办法,一天干了别人两天的活。
3.2 多边形标注:精细分割的利器
矩形框搞不定复杂形状?那就上多边形。多边形标注可以精确勾勒出目标的轮廓,适用于不规则物体,比如车辆、动物、医疗影像中的病灶区域。
但多边形标注有个痛点:费时。一个复杂的多边形可能需要几十个点。我见过有人为了追求完美,一个物体标了上百个点,结果标注员累到崩溃,质量反而下降。
3.2.1 操作要点
按 Shift+N 切换到多边形模式。点击左键添加顶点,双击或按 Enter 完成闭合。嗯,这里有个小技巧:
我曾经参与过一个医疗影像项目,标注肝脏肿瘤。一开始大家用矩形框,结果模型精度只有 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% 的整数,比用「轻微/中等/严重」更精确。
3.4.3 批量设置属性
如果你有大量标注框需要设置相同的属性,别一个个点。CVAT支持批量选择标注框,然后统一设置属性。
操作方法是:按住 Ctrl 键,点击多个标注框,然后在右侧属性面板中一次性设置。这个功能在标注视频时特别有用——同一目标在连续帧中的属性通常不变,批量设置能省下大量时间。
3.5 本章小结
好了,这一章的内容就到这里。矩形框、多边形、关键点,这三种标注方式各有适用场景。矩形框最快,适合简单目标;多边形最精细,适合复杂形状;关键点最灵活,适合姿态分析。而标签属性设置,是贯穿始终的数据管理手段。
我建议你打开CVAT,找几张图片练练手。先画几个矩形框,再试试多边形,最后配置一个关键点模板。嗯,动手才是最好的学习方式。
公众号:蓝海资料掘金营,微信deep3321