Skip to content
Tutorials5 min read

Anotação de Polígonos para Tarefas de Segmentação

Configure ferramentas de desenho de polígonos no Potato para tarefas de segmentação de imagens, com dicas para formas complexas, regiões sobrepostas, polígonos multiclasse e exportação para o formato COCO.

Potato Team

Polígonos permitem traçar os limites de um objeto pixel a pixel, que é exatamente o que a segmentação semântica e de instâncias exige. Este guia percorre a configuração, as técnicas de desenho e o que fazer quando as formas ficam confusas.

Polígonos vs. caixas delimitadoras

Use Polígonos QuandoUse Caixas Delimitadoras Quando
São necessários limites precisosA localização aproximada é suficiente
As formas dos objetos são irregularesOs objetos são aproximadamente retangulares
Você treina modelos de segmentaçãoVocê treina modelos de detecção
Os objetos se sobrepõemOs objetos não se sobrepõem
É exigida maior precisãoA velocidade é a prioridade

Configuração básica de polígonos

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"

Desenhando polígonos

O fluxo de trabalho básico

  1. Escolha um rótulo na barra de ferramentas
  2. Clique para adicionar vértices ao redor do objeto
  3. Dê um duplo clique ou pressione Enter para fechar o polígono
  4. Arraste os vértices para ajustá-los
  5. Clique em uma aresta para adicionar um ponto

Atalhos de teclado

O Potato vem com atalhos para edição de polígonos:

  • Enter: fecha o polígono atual
  • Escape: cancela o desenho ou desfaz a seleção
  • Delete: remove o vértice ou polígono selecionado
  • +/-: amplia e reduz o zoom
  • Espaço + arrastar: move a imagem

Quando as coisas ficam complicadas

Objetos sobrepostos

Quando os objetos se sobrepõem, os anotadores simplesmente desenham vários polígonos que se sobrepõem. O Potato armazena cada um separadamente, então você obtém anotação no nível de instância mesmo onde os objetos se ocultam mutuamente.

Limites complicados

Para objetos com limites irregulares e curvos:

  1. Adicione mais vértices nas arestas curvas para que a forma fique precisa
  2. Amplie o zoom antes de traçar as partes mais delicadas
  3. Percorra o perímetro em ordem, em vez de pular de um lado para o outro
  4. Depois, mude para o modo de edição para ajustar os vértices no lugar

Configuração de segmentação semântica

Para a segmentação da imagem inteira:

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"

Configuração de segmentação de instâncias

Para instâncias individuais de objetos:

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"

Cada polígono é armazenado como sua própria anotação, então você pode acompanhar instâncias individuais dentro de cada classe de objeto.

Exemplo de configuração completa

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"

Formato de saída

As anotações de polígono aparecem na saída com as coordenadas de cada vértice:

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]]
      }
    ]
  }
}

Dicas para polígonos limpos

  1. Amplie para 2x ou mais quando estiver traçando limites detalhados.
  2. Aprenda os atalhos de teclado. Eles são muito mais rápidos do que recorrer à barra de ferramentas.
  3. Trace um contorno aproximado primeiro e depois volte para refiná-lo.
  4. Use o menor número de vértices que ainda capture a forma. Mais não é melhor.
  5. Faça pausas. O trabalho detalhado com polígonos cansa rápido.

Para onde ir em seguida

Para tudo o que o tipo de anotação de imagem pode fazer (polygon, bbox e as demais ferramentas de desenho), consulte a documentação de origem.


Veja /docs/features/image-annotation para a documentação completa de polígonos.