4、2D目标检测标注规范(上):矩形框标注规则、框的贴合度标准、遮挡与截断目标的标注策略
大家好,我是你们的老朋友。今天咱们聊聊2D目标检测标注里最基础、也最容易踩坑的部分——矩形框标注。
说实话,我见过太多项目因为标注规范没定好,导致模型训练出来效果稀烂。有的框画得松松垮垮,有的遮挡目标直接漏标。嗯,今天我就把这些年积累的经验,一条条掰开揉碎了讲给你听。
4.1 矩形框标注的核心规则
矩形框标注,说白了就是用四个点确定一个框,把目标物体圈起来。但这里面的门道可不少。
第一条规则:框必须紧贴目标。 我见过有人把框画得比目标大一圈,理由是“留点余量”。千万别这么干!模型学到的会是“目标周围有一圈空白”,推理时框就会偏大。
第二条规则:框的边必须与图像坐标轴平行。 2D矩形框不支持旋转,所以不管目标怎么歪,你的框都得是正矩形。这一点很多新手会搞混。
第三条规则:一个目标一个框,不能多不能少。 如果两个目标挨得很近,必须分别画框,不能合并成一个。
核心原则: 矩形框的四个边,必须恰好卡在目标物体的最左、最右、最上、最下像素点上。不多不少,刚刚好。
4.2 框的贴合度标准——到底多紧才算紧?
这个问题我经常被问到:“老师,框到底要贴多紧才算合格?”
我个人习惯用一个标准:框的边与目标轮廓之间,不能有超过2个像素的空白。 换句话说,你放大到像素级看,框的边应该紧贴着目标的边缘像素。
为什么会这样?因为深度学习模型对边界非常敏感。框稍微松一点,模型学到的特征就会包含背景噪声。我曾在项目中做过对比实验:同样一批数据,贴合度好的框训练出来的mAP比松框高出3-5个点。
这里我列一个贴合度检查表,你可以直接拿去用:
| 检查项 | 合格标准 | 不合格表现 |
|---|---|---|
| 左右贴合度 | 框的左右边与目标最左/最右像素重合 | 框内包含超过2像素的背景 |
| 上下贴合度 | 框的上下边与目标最上/最下像素重合 | 框上方或下方有多余空白 |
| 角度对齐 | 框边与图像坐标轴平行 | 框明显倾斜 |
| 完整性 | 目标所有可见部分都在框内 | 目标部分肢体或部件被切出框外 |
小技巧: 标注时把图像放大到200%-300%,逐边检查。尤其是目标的尖角、凸起部位,最容易出现框没贴紧的情况。
4.3 遮挡目标的标注策略
遮挡,是2D标注里最头疼的问题。你想想看,一个行人被汽车挡住了一半,这个框该怎么画?
我的原则很简单:只标注可见部分,不脑补被遮挡的部分。
具体来说:
- 轻度遮挡(遮挡面积 < 30%): 正常画框,框住所有可见部分。框的边以可见轮廓为准。
- 中度遮挡(30% - 60%): 同样只画可见部分。但需要在属性字段里标注“遮挡程度=中等”。
- 重度遮挡(> 60%): 如果目标只剩一个角或一小块,建议不标注。因为模型根本学不到有效特征。
我曾经犯过一个错误:让标注员对重度遮挡的目标也画框,结果模型训练出来,看到任何一个小角都以为是目标,误检率飙升。后来我们规定:遮挡超过60%的目标,直接跳过不标。
注意: 千万不要为了“完整性”去脑补被遮挡的部分。比如一个人被车挡住下半身,你画一个完整的全身框,模型学到的就是“人腿长在车身上”,这会导致严重的误检。
4.4 截断目标的标注策略
截断和遮挡不一样。遮挡是被其他物体挡住,截断是目标超出了图像边界。
比如一辆车只拍到了前半部分,后半部分在画面外面。这种怎么标?
我的做法是:框的边界以图像边界为准。
- 如果目标被图像左边界截断,框的左边就贴着图像左边界。
- 如果目标被图像上边界截断,框的上边就贴着图像上边界。
- 其他边正常贴合目标可见部分。
这里有个坑:有些标注工具会自动把框限制在图像范围内,但有些不会。如果你用的工具允许框超出图像边界,一定要手动拉回来。
另外,截断目标需要在属性里标注“截断程度”。我一般分三级:
| 截断程度 | 定义 | 标注建议 |
|---|---|---|
| 轻度截断 | 目标缺失部分 < 20% | 正常标注,框贴图像边界 |
| 中度截断 | 目标缺失 20% - 50% | 标注,但需标记截断属性 |
| 重度截断 | 目标缺失 > 50% | 建议不标注 |
4.5 遮挡与截断同时出现怎么办?
这种情况在实际数据里很常见。比如一个行人被汽车挡住一半,同时脚又被图像下边界截断了。
我的处理顺序是:先处理遮挡,再处理截断。
- 先根据可见部分画出框,忽略被遮挡的部分。
- 然后检查框是否超出图像边界。如果超出,把超出的边拉到图像边界上。
- 在属性里同时标注“遮挡程度”和“截断程度”。
举个例子:一个人上半身可见,下半身被车挡住,同时头顶被图像上边界截断。那么框的上边贴着图像上边界,下边贴着可见部分的下沿(也就是被车挡住的位置)。左右边贴着可见部分的最左最右。
总结一句话: 框只框可见部分,被遮挡的不脑补,被截断的贴边界。属性标注要完整,遮挡和截断分开记录。
4.6 标注质量检查清单
最后,我分享一个我自己项目里用的检查清单。每次标注完成后,质检员按这个清单逐条检查:
- ☐ 每个框是否紧贴目标(放大检查)
- ☐ 框是否与坐标轴平行
- ☐ 遮挡目标是否只标注了可见部分
- ☐ 截断目标的框是否贴着图像边界
- ☐ 重度遮挡/截断的目标是否已跳过
- ☐ 属性字段(遮挡程度、截断程度)是否填写完整
- ☐ 是否存在漏标的目标(尤其是小目标)
- ☐ 是否存在误标的目标(比如把背景当成目标)
嗯,今天就先聊到这儿。下一节我会接着讲2D目标检测标注的下半部分——关键点标注、属性标注和多边形标注。到时候见。
公众号:蓝海资料掘金营,微信deep3321