Skip to content
Tutorials4 min read

Desenhando Caixas Delimitadoras para Detecção de Objetos

Configure a anotação de caixas delimitadoras para visão computacional no Potato, defina cores de rótulos, tamanho mínimo de caixa, suporte a múltiplas classes, regras de validação e exportação COCO/YOLO.

Potato Team

Se você está treinando um detector de objetos, precisa de caixas delimitadoras. Este tutorial começa com uma configuração mínima e avança até atributos, regras de validação e uma configuração completa de produção. Para as opções de imagem por trás disso, consulte a documentação de anotação de imagens.

Configuração Básica de Caixa Delimitadora

Configuração Mínima

yaml
annotation_task_name: "Object Detection Annotation"
 
data_files:
  - "data/images.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    description: "Draw boxes around all objects"
    tools:
      - bbox
    labels:
      - name: car
        color: "#FF6B6B"
      - name: person
        color: "#4ECDC4"
      - name: bicycle
        color: "#45B7D1"

Como Funciona

  1. Selecione um rótulo na barra de ferramentas
  2. Clique e arraste para desenhar uma caixa
  3. Ajuste os cantos para refinar a caixa
  4. Adicione mais caixas conforme necessário
  5. Envie quando terminar

Os anotadores desenham caixas delimitadoras diretamente sobre as imagens com uma interface de clicar e arrastar:

Interface de anotação de caixa delimitadora para detecção de objetosA ferramenta de caixa delimitadora permite que os anotadores desenhem e rotulem regiões retangulares nas imagens

Configuração Detalhada de Rótulos

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    description: "Annotate all visible objects"
    tools:
      - bbox
    labels:
      - name: person
        color: "#FF6B6B"
        description: "Any human, partial or full"
        keyboard_shortcut: "p"
 
      - name: car
        color: "#4ECDC4"
        description: "Cars, trucks, SUVs"
        keyboard_shortcut: "c"
 
      - name: motorcycle
        color: "#45B7D1"
        description: "Motorcycles and scooters"
        keyboard_shortcut: "m"
 
      - name: bicycle
        color: "#96CEB4"
        description: "Bicycles of all types"
        keyboard_shortcut: "b"
 
      - name: traffic_light
        color: "#FFEAA7"
        description: "Traffic signals"
        keyboard_shortcut: "t"
 
      - name: stop_sign
        color: "#DDA0DD"
        description: "Stop signs"
        keyboard_shortcut: "s"

Adicionando Atributos aos Objetos

Capture informações adicionais sobre cada caixa:

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    tools:
      - bbox
    labels:
      - name: person
        color: "#FF6B6B"
        attributes:
          - name: occlusion
            type: radio
            options: [none, partial, heavy]
          - name: truncated
            type: checkbox
            description: "Object extends beyond image"
          - name: difficult
            type: checkbox
            description: "Hard to identify"

Quando os anotadores desenham uma caixa, serão solicitados a preencher esses atributos.

Regras de Validação

Garanta a qualidade da anotação com validação:

yaml
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    tools:
      - bbox
    labels: [...]
    min_annotations: 1

Atalhos de Teclado

O Potato inclui atalhos de teclado integrados para uma anotação eficiente:

  • Teclas numéricas selecionam rótulos
  • Delete remove as anotações selecionadas
  • Teclas de seta navegam entre os itens

Opções de Exibição

Configure as opções de exibição da imagem:

yaml
image_display:
  width: 800
  height: 600

Configuração Completa de Produção

yaml
annotation_task_name: "Autonomous Driving - Object Detection"
 
data_files:
  - "data/driving_frames.json"
 
annotation_schemes:
  - annotation_type: image_annotation
    name: objects
    description: "Annotate all traffic participants and objects"
    tools:
      - bbox
    min_annotations: 1
    labels:
      - name: vehicle
        color: "#FF6B6B"
        keyboard_shortcut: "v"
        attributes:
          - name: type
            type: radio
            options: [car, truck, bus, motorcycle, bicycle]
          - name: occlusion
            type: radio
            options: [0%, 1-25%, 26-50%, 51-75%, 76-99%]
 
      - name: pedestrian
        color: "#4ECDC4"
        keyboard_shortcut: "p"
        attributes:
          - name: pose
            type: radio
            options: [standing, walking, sitting, lying]
          - name: age_group
            type: radio
            options: [child, adult, elderly]
 
      - name: cyclist
        color: "#45B7D1"
        keyboard_shortcut: "c"
 
      - name: traffic_sign
        color: "#FFEAA7"
        keyboard_shortcut: "t"
        attributes:
          - name: sign_type
            type: radio
            options: [stop, yield, speed_limit, warning, other]
 
      - name: traffic_light
        color: "#DDA0DD"
        keyboard_shortcut: "l"
        attributes:
          - name: state
            type: radio
            options: [red, yellow, green, off, unknown]

Formato de Saída

json
{
  "frame_id": "frame_0001",
  "frame_path": "/images/frame_0001.jpg",
  "image_dimensions": {"width": 1920, "height": 1080},
  "annotations": {
    "objects": [
      {
        "label": "vehicle",
        "bbox": [450, 380, 680, 520],
        "attributes": {
          "type": "car",
          "occlusion": "0%"
        }
      },
      {
        "label": "pedestrian",
        "bbox": [820, 400, 870, 550],
        "attributes": {
          "pose": "walking",
          "age_group": "adult"
        }
      }
    ]
  }
}

Dicas para Caixas Delimitadoras de Qualidade

Desenhe caixas justas ao objeto para não alimentar o modelo com muito fundo. Anote como lidar com os casos complicados (oclusão, objetos cortados na borda) e revise um lote de exemplos em conjunto logo no início para que todos os desenhem da mesma forma. Fique de olho na contagem de caixas e na distribuição de tamanhos; uma mudança repentina geralmente significa que alguém está interpretando as regras de outra maneira.

Próximos Passos


Documentação completa em /docs/features/image-annotation.