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 遮挡与截断同时出现怎么办?

这种情况在实际数据里很常见。比如一个行人被汽车挡住一半,同时脚又被图像下边界截断了。

我的处理顺序是:先处理遮挡,再处理截断。

  1. 先根据可见部分画出框,忽略被遮挡的部分。
  2. 然后检查框是否超出图像边界。如果超出,把超出的边拉到图像边界上。
  3. 在属性里同时标注“遮挡程度”和“截断程度”。

举个例子:一个人上半身可见,下半身被车挡住,同时头顶被图像上边界截断。那么框的上边贴着图像上边界,下边贴着可见部分的下沿(也就是被车挡住的位置)。左右边贴着可见部分的最左最右。

总结一句话: 框只框可见部分,被遮挡的不脑补,被截断的贴边界。属性标注要完整,遮挡和截断分开记录。

4.6 标注质量检查清单

最后,我分享一个我自己项目里用的检查清单。每次标注完成后,质检员按这个清单逐条检查:

  • ☐ 每个框是否紧贴目标(放大检查)
  • ☐ 框是否与坐标轴平行
  • ☐ 遮挡目标是否只标注了可见部分
  • ☐ 截断目标的框是否贴着图像边界
  • ☐ 重度遮挡/截断的目标是否已跳过
  • ☐ 属性字段(遮挡程度、截断程度)是否填写完整
  • ☐ 是否存在漏标的目标(尤其是小目标)
  • ☐ 是否存在误标的目标(比如把背景当成目标)

嗯,今天就先聊到这儿。下一节我会接着讲2D目标检测标注的下半部分——关键点标注、属性标注和多边形标注。到时候见。

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