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"绘制多边形
基本工作流
- 从工具栏中选择一个标签
- 点击以在目标周围放置顶点
- 双击或按 Enter 键闭合多边形
- 通过拖动调整顶点
- 点击边缘添加节点
键盘快捷键
Potato 为多边形编辑提供内置键盘快捷键:
- Enter:闭合当前多边形
- Escape:取消绘制或取消选择
- Delete:删除选中的顶点或多边形
- +/-:放大/缩小
- 空格 + 拖动:平移图像
处理复杂场景
重叠目标
对于包含重叠目标的任务,标注者可以绘制相互重叠的多个多边形。每个多边形在输出中单独存储,允许在目标可能相互遮挡的情况下进行实例级标注。
复杂边界处理技巧
当标注具有复杂边界的目标时:
- 使用更多顶点以准确捕捉曲线边缘的形状
- 放大以描绘详细边界
- 系统地沿目标边缘工作
- 使用编辑模式在初始绘制后优化顶点位置
语义分割设置
用于全图像分割:
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]]
}
]
}
}高质量多边形标注技巧
- 放大:在 2 倍或更高倍率下处理精细边界
- 使用键盘快捷键:比使用鼠标点击工具快得多
- 从主要特征开始:先画粗略轮廓,然后再细化
- 节约顶点:使用保证精度所需的最少顶点数
- 定期休息:精细的多边形标注会导致疲劳
下一步
完整多边形文档请见 /docs/features/image-annotation。