Tutorials3 min read
セグメンテーションタスクのためのポリゴンアノテーション
画像セグメンテーション用のポリゴン描画ツールの設定方法、複雑な形状やオーバーラップ領域のコツ。
Potato Team·
セグメンテーションタスクのためのポリゴンアノテーション
ポリゴンアノテーションは、セマンティックセグメンテーションおよびインスタンスセグメンテーションのためのピクセル精度のオブジェクト境界を実現します。本ガイドでは、設定、アノテーション技法、複雑なセグメンテーションタスクのベストプラクティスを紹介します。
ポリゴン vs バウンディングボックスの使い分け
| ポリゴンを使う場合 | バウンディングボックスを使う場合 |
|---|---|
| 精密な境界が必要 | おおまかな位置特定で十分 |
| 不規則なオブジェクト形状 | オブジェクトがほぼ矩形 |
| セグメンテーションモデルの学習 | 検出モデルの学習 |
| オーバーラップするオブジェクト | オーバーラップしないオブジェクト |
| より高い精度が必要 | 速度が優先 |
基本的なポリゴンの設定
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: 選択した頂点またはポリゴンの削除
- +/-: ズームイン/アウト
- Space + ドラッグ: 画像のパン
複雑なシナリオの処理
オーバーラップするオブジェクト
オーバーラップするオブジェクトがあるタスクでは、アノテーターはオーバーラップする複数のポリゴンを描画できます。各ポリゴンは出力に個別に保存されるため、オブジェクトが互いにオクルードする場合のインスタンスレベルのアノテーションが可能です。
複雑な境界のコツ
複雑な境界を持つオブジェクトをアノテーションする場合:
- 曲線のエッジにはより多くの頂点を使用して形状を正確に捉える
- 詳細な境界をトレースする際はズームインする
- オブジェクトの外周に沿って体系的に作業する
- 初期描画後に編集モードで頂点の位置を精緻化する
セマンティックセグメンテーションの設定
画像全体のセグメンテーション用:
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をご覧ください。