Skip to content
Tutorials3 min read

用于分割任务的多边形标注

如何配置多边形绘制工具进行图像分割,以及处理复杂形状和重叠区域的技巧。

Potato Team·

用于分割任务的多边形标注

多边形标注可以实现像素级精确的目标边界,用于语义分割和实例分割。本指南涵盖配置、标注技术以及复杂分割任务的最佳实践。

何时使用多边形与边界框

使用多边形的场景使用边界框的场景
需要精确边界粗略定位即可
不规则目标形状目标大致为矩形
训练分割模型训练检测模型
重叠目标非重叠目标
需要更高精度速度优先

基本多边形设置

yaml
annotation_task_name: "Image Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: segments
    description: "Draw polygons around each object"
    labels:
      - name: road
        color: "#808080"
      - name: sidewalk
        color: "#F5F5DC"
      - name: building
        color: "#8B4513"
      - name: vegetation
        color: "#228B22"
      - name: sky
        color: "#87CEEB"
      - name: vehicle
        color: "#FF6B6B"
      - name: person
        color: "#4ECDC4"

绘制多边形

基本工作流

  1. 从工具栏中选择一个标签
  2. 点击以在目标周围放置顶点
  3. 双击或按 Enter 键闭合多边形
  4. 通过拖动调整顶点
  5. 点击边缘添加节点

键盘快捷键

Potato 为多边形编辑提供内置键盘快捷键:

  • Enter:闭合当前多边形
  • Escape:取消绘制或取消选择
  • Delete:删除选中的顶点或多边形
  • +/-:放大/缩小
  • 空格 + 拖动:平移图像

处理复杂场景

重叠目标

对于包含重叠目标的任务,标注者可以绘制相互重叠的多个多边形。每个多边形在输出中单独存储,允许在目标可能相互遮挡的情况下进行实例级标注。

复杂边界处理技巧

当标注具有复杂边界的目标时:

  1. 使用更多顶点以准确捕捉曲线边缘的形状
  2. 放大以描绘详细边界
  3. 系统地沿目标边缘工作
  4. 使用编辑模式在初始绘制后优化顶点位置

语义分割设置

用于全图像分割:

yaml
annotation_task_name: "Semantic Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: semantic_segments
    description: "Segment the entire image"
    labels:
      - name: background
        color: "#000000"
      - name: road
        color: "#808080"
      - name: sidewalk
        color: "#F5F5DC"
      - name: building
        color: "#8B4513"
      - name: vegetation
        color: "#228B22"
      - name: sky
        color: "#87CEEB"
      - name: person
        color: "#4ECDC4"
      - name: vehicle
        color: "#FF6B6B"

实例分割设置

用于单个目标实例:

yaml
annotation_task_name: "Instance Segmentation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: instances
    description: "Draw polygons around each object instance"
    labels:
      - name: person
        color: "#4ECDC4"
      - name: car
        color: "#FF6B6B"
      - name: dog
        color: "#FFEAA7"

绘制的每个多边形将作为单独的标注存储,使您能够跟踪每个目标类别的各个实例。

完整配置示例

yaml
annotation_task_name: "Cityscapes-style Segmentation"
 
data_files:
  - "data/urban_scenes.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    tools: [polygon]
    name: segments
    description: "Segment all objects following Cityscapes protocol"
    labels:
      # Flat
      - name: road
        color: "#804080"
      - name: sidewalk
        color: "#F423E8"
      # Construction
      - name: building
        color: "#464646"
      - name: wall
        color: "#666666"
      - name: fence
        color: "#BE9999"
      # Nature
      - name: vegetation
        color: "#6B8E23"
      - name: terrain
        color: "#98FB98"
      # Sky
      - name: sky
        color: "#4682B4"
      # Human
      - name: person
        color: "#DC143C"
      - name: rider
        color: "#FF0000"
      # Vehicle
      - name: car
        color: "#00008B"
      - name: truck
        color: "#000046"
      - name: bus
        color: "#003C64"
      - name: motorcycle
        color: "#0000E6"
      - name: bicycle
        color: "#770B20"

输出格式

多边形标注以每个顶点的坐标保存在标注输出中:

json
{
  "id": "img001",
  "annotations": {
    "segments": [
      {
        "label": "road",
        "points": [[0, 600], [100, 580], [200, 590], [0, 600]]
      },
      {
        "label": "car",
        "points": [[450, 400], [520, 400], [520, 480], [450, 480]]
      }
    ]
  }
}

高质量多边形标注技巧

  1. 放大:在 2 倍或更高倍率下处理精细边界
  2. 使用键盘快捷键:比使用鼠标点击工具快得多
  3. 从主要特征开始:先画粗略轮廓,然后再细化
  4. 节约顶点:使用保证精度所需的最少顶点数
  5. 定期休息:精细的多边形标注会导致疲劳

下一步


完整多边形文档请见 /docs/features/image-annotation