4、图像打标实战:矩形框标注、多边形标注、关键点标注、语义分割、实例分割

图像打标,说白了就是教计算机「看」懂图片里的东西。我做了这么多年数据标注项目,发现很多人一上来就纠结工具怎么用,反而忽略了每种标注方式背后的逻辑。今天咱们就把五种最常见的图像标注方式,一个一个掰开揉碎了讲清楚。

核心观点:选择哪种标注方式,取决于你最终要训练什么模型。检测任务用矩形框,精细轮廓用多边形,姿态估计用关键点,像素级理解用分割。选错了,后面模型精度会大打折扣。

4.1 矩形框标注(Bounding Box)

这是最基础、最常用的标注方式。用两个对角点画一个框,把目标物体框住就行。我最早接触标注项目时,一天能画上千个框,练就了一手「盲画」的本事。

标注规范:

  • 框要刚好贴合目标边缘,不能留太多背景
  • 遮挡部分也要框出完整物体范围
  • 同一张图里,不同类别用不同颜色区分

我的经验:矩形框标注看似简单,但最容易出问题的是「框的紧密度」。我曾经遇到一个项目,标注员习惯把框画大一圈,结果模型训练出来,检测框总是偏大,召回率上去了但精确度掉得厉害。后来我们统一规范:框的边距不超过目标边缘的5个像素。

适用场景:目标检测(YOLO、Faster R-CNN)、行人检测、车辆检测。

4.2 多边形标注(Polygon)

当目标形状不规则时,矩形框就不好使了。比如一棵树、一辆自行车、一个人举着手——这些都需要多边形标注。用多个点围出目标的精确轮廓。

我记得第一次做遥感图像标注,要标注屋顶、道路、树木。矩形框根本框不住屋顶的斜边,只能用多边形。一个复杂的屋顶,有时候要标30多个点。

标注要点:

  1. 点与点之间距离均匀,不要忽密忽疏
  2. 拐角处必须有点,不能靠直线硬拉
  3. 凹进去的部分也要标出来,不能简化

避坑指南:我曾经见过一个标注员,为了省事,把一辆自行车的轮子用4个点标成菱形。结果模型学出来,把圆形物体都识别成多边形。多边形标注,点不是越少越好,而是越准越好。

4.3 关键点标注(Keypoint)

关键点标注不是画轮廓,而是标出目标上的「关键位置」。最典型的就是人体关键点——肩膀、手肘、手腕、膝盖、脚踝这些关节位置。

你想想看,如果想让模型学会判断一个人是在「举手」还是「叉腰」,光靠矩形框肯定不行。你需要告诉模型:肩膀在这里,手肘在这里,手腕在这里。模型才能理解姿态。

常见关键点数量:

应用场景 关键点数量 典型标注内容
人体姿态估计 17点 / 25点 头、肩、肘、腕、髋、膝、踝
人脸关键点 68点 / 106点 眼睛、眉毛、鼻子、嘴巴轮廓
手势识别 21点 手指关节、掌心

我的习惯:关键点标注最怕「遮挡」。比如一个人侧身站着,被挡住的肩膀要不要标?我的建议是:可见的关键点必须标,被遮挡的用「不可见」标记,不要凭空猜测位置。否则模型会学到错误的空间关系。

4.4 语义分割(Semantic Segmentation)

语义分割是把图像里的每个像素都分类。比如一张街景图,把天空、道路、建筑、行人、车辆分别涂上不同颜色。每个像素只属于一个类别。

说白了,语义分割就是「像素级分类」。它不区分个体——如果图里有三辆车,它们都会被涂成同一个颜色,因为都属于「车辆」这个类别。

标注方式:

  • 用画笔工具逐像素涂抹
  • 或者用多边形勾勒后填充
  • 边缘区域要精细处理,不能模糊

关键区别:语义分割不区分实例。同一类别的多个物体,在标注结果中颜色相同。如果你需要区分「车A」和「车B」,那就得用实例分割。

4.5 实例分割(Instance Segmentation)

实例分割比语义分割更进一步。它不仅要做像素级分类,还要区分同一个类别里的不同个体。图里有三辆车,实例分割会把它们标成三个不同的对象,每个都有自己的ID。

我做过一个自动驾驶项目,要求标注路上的行人。语义分割只能告诉模型「这里有行人」,但实例分割能告诉模型「这里有3个行人,分别站在不同位置」。后者显然对自动驾驶更有用——你得知道前面有几个人,而不是一团「行人像素」。

语义分割 vs 实例分割:

对比维度 语义分割 实例分割
区分个体 不区分 区分
标注复杂度 中等 高
输出形式 类别掩码 实例掩码 + 类别
典型模型 DeepLab, U-Net Mask R-CNN, YOLACT
标注时间 约30秒/图 约2-5分钟/图

注意:实例分割的标注成本很高。一个复杂的场景图,标注时间可能是语义分割的5-10倍。我建议在项目初期先用语义分割验证可行性,确认模型能学到东西后,再升级到实例分割。别一上来就搞最贵的方案。

4.6 五种标注方式对比

为了方便你快速决策,我把这五种方式放在一起对比:

标注方式 输出形式 信息粒度 标注成本 典型应用
矩形框 坐标 (x1,y1,x2,y2) 物体级 低 目标检测
多边形 点序列 轮廓级 中 精细检测
关键点 点坐标 + 可见性 部件级 中 姿态估计
语义分割 像素掩码 像素级(类别) 高 场景理解
实例分割 实例掩码 像素级(个体) 很高 自动驾驶

4.7 知识结构图

下面这张图帮你理清五种标注方式的关系和选择路径:

图像标注方式分类与选择路径 图像标注任务 物体级标注 像素级标注 矩形框标注 多边形标注 关键点标注 语义分割 实例分割 选择建议 检测任务 → 矩形框 / 多边形 姿态任务 → 关键点 | 像素级理解 → 语义分割 / 实例分割

我的建议:如果你是刚入门,先从矩形框和语义分割开始练手。这两种方式工具最成熟、社区资源最多。等熟悉了标注流程和工具操作,再挑战多边形和实例分割。关键点标注比较特殊,建议配合具体项目需求来学,单独练效果不好。

嗯,这五种标注方式,每一种都有它的脾气。选对了,事半功倍;选错了,后面模型训练全是坑。希望今天的实战内容能帮你少走弯路。