Ultralytics YOLO27: Inscreve-te na lista de espera.
Get Started
Fundamentos de visão computacional·Escolhe uma tarefa·Aula 2/10
Aulainiciante

As sete tarefas de visão

Associa uma linha de saída à classificação, deteção, segmentação de instâncias, segmentação semântica, estimativa de profundidade, pose ou OBB e escolhe os pesos YOLO26 para começar.

Escolher a tarefa é a decisão mais dispendiosa que tomas antes do treino. Escolhe a segmentação quando bastariam caixas e a tua fatura de anotação multiplica-se; escolhe caixas verticais para navios vistos por um drone e cada caixa fica quase toda sobre a água. O Ultralytics YOLO suporta sete tarefas através de uma única API, por isso a escolha depende da saída de que precisas — não das ferramentas.

Resultado

Indica a única tarefa e o ficheiro de pesos YOLO26 que correspondem à tua linha de saída e explica numa linha por que razão não precisas da tarefa seguinte, mais dispendiosa.

Via rápida
Se já sabes orientar-te, aqui está a versão resumida.
  1. Um rótulo para a imagem inteira: classificação.

  2. O quê e onde, sendo suficiente um retângulo: deteção.

  3. Contorno exato de cada objeto: segmentação de instâncias. Classe para cada píxel: segmentação semântica.

  4. Distância para cada píxel: estimativa de profundidade.

  5. Articulações ou pontos de referência: pose. Objetos vistos de cima e inclinados: OBB.

  6. A mesma API YOLO() para as sete tarefas; só muda o ficheiro de pesos.

Prático

As sete tarefas em resumo#

Saídas das sete tarefas do Ultralytics YOLO: uma folha classificada, carros e peões detetados, carros segmentados, um mapa semântico de uma rua, o esqueleto de pose de um corredor, caixas rodadas em navios e um mapa de profundidade

Lê a tabela pela coluna da saída — é isso que a linha da saída da tua especificação tem de corresponder.

TarefaSaídaResponde aPesos YOLO26
ClassificaçãoUm rótulo por imagem, com uma probabilidade«O que é esta imagem?»yolo26n-cls.pt
DeteçãoClasse, caixa e confiança por objeto«O quê e onde?»yolo26n.pt
Segmentação de instânciasClasse e máscara de pixels por objeto"Qual é o formato exato de cada objeto?"yolo26n-seg.pt
Segmentação semânticaUma classe para cada pixel"Que tipo de região é cada pixel?"yolo26n-sem.pt
Estimativa de profundidadeDistância em metros para cada pixel"A que distância está cada pixel?"yolo26n-depth.pt
Estimativa de poseCaixa e pontos-chave por pessoa ou objeto"Qual é a pose do corpo?"yolo26n-pose.pt
Caixas delimitadoras orientadasCaixa rotacionada por objeto"O que está onde e em que ângulo?"yolo26n-obb.pt

Dois pares costumam confundir as pessoas. Segmentação de instâncias vs. semântica: a segmentação de instâncias separa cada objeto (três carros, três máscaras); a semântica rotula os pixels apenas por classe (uma região de "carro", sem contagem). Detecção vs. OBB: ambas retornam uma caixa por objeto, mas uma OBB gira junto com o objeto, o que é importante quando os objetos estão em ângulos diferentes em imagens aéreas.

Uma API, sete saídas#

Mudar de tarefa não significa mudar de ferramenta. O arquivo de pesos determina o que é retornado, e o objeto Results preenche o atributo correspondente:

from ultralytics import YOLO

image = "https://ultralytics.com/images/bus.jpg"
outputs = ["probs", "boxes", "masks", "semantic_mask", "depth", "keypoints", "obb"]

for suffix in ["-cls", "", "-seg", "-sem", "-depth", "-pose", "-obb"]:
    weights = f"yolo26n{suffix}.pt"
    model = YOLO(weights)
    result = model(image, verbose=False)[0]
    filled = [name for name in outputs if getattr(result, name) is not None]
    print(f"{weights:18} task={model.task:9} -> {', '.join(filled)}")
yolo26n-cls.pt     task=classify  -> probs
yolo26n.pt         task=detect    -> boxes
yolo26n-seg.pt     task=segment   -> boxes, masks
yolo26n-sem.pt     task=semantic  -> semantic_mask
yolo26n-depth.pt   task=depth     -> depth
yolo26n-pose.pt    task=pose      -> boxes, keypoints
yolo26n-obb.pt     task=obb       -> obb

Leia a coluna da direita: segmentação e pose também retornam caixas, porque são detecção com mais um elemento. A segmentação semântica e a profundidade não retornam nenhuma saída por objeto — elas descrevem cada pixel. O código subsequente lê exatamente um desses atributos, então a linha de saída da sua especificação deve indicar qual.

Como escolher na prática#

Comece pelo que cada previsão precisa descrever e escolha a tarefa mais simples que responde à decisão:

  1. Um rótulo para a imagem inteira → classificação.
  2. Uma classe para cada pixel, sem precisar separar objetos → segmentação semântica.
  3. Uma distância para cada pixel → estimativa de profundidade.
  4. Algo sobre cada objeto:
    • onde está, para contar, localizar ou filtrar → detecção (adicione rastreamento para identificar objetos entre quadros);
    • seu formato, contorno ou área exatos → segmentação de instâncias;
    • sua postura → pose;
    • sua rotação em imagens aéreas → OBB.

Quando duas tarefas servem, escolha a mais simples de rotular e executar. A detecção é a opção padrão para a maioria dos produtos: as caixas são rápidas de desenhar e revisar e, com o rastreamento, já permitem contagens, alertas por zona e análise de tráfego, como nesta vista da rodovia:

Tráfego na rodovia rastreado pelo Ultralytics YOLO, com um ID persistente e trajetória de movimento em cada carro, ônibus e caminhão

Profundidade: a tarefa que responde "a que distância"#

A estimativa de profundidade retorna um mapa do tamanho da imagem, com uma distância em metros para cada pixel — sem classes nem caixas. Use-a quando a distância determinar a decisão: um robô evitando obstáculos, um veículo diminuindo a velocidade quando algo está perto ou uma estimativa aproximada do volume de uma pilha.

from ultralytics import YOLO

model = YOLO("yolo26n-depth.pt")
result = model("https://ultralytics.com/images/bus.jpg", verbose=False)[0]

depth = result.depth.data  # meters, one value per pixel
print(f"depth map {tuple(depth.shape)}, nearest {float(depth.min()):.1f} m, farthest {float(depth.max()):.1f} m")
depth map (1080, 810), nearest 2.0 m, farthest 14.9 m

Uma única câmera infere a profundidade a partir de sinais aprendidos, como perspectiva e tamanho dos objetos; por isso, meça o erro nas suas próprias cenas antes de usá-la para distâncias críticas para a segurança. A profundidade combina bem com a detecção: detecte o objeto e, em seguida, leia o mapa de profundidade dentro da caixa dele.

Armadilhas#

ConfusãoSintomaMelhor escolha
Segmentação quando bastariam caixasO código subsequente nunca lê a máscaraDetecção
Caixas verticais em imagens aéreasAs caixas cobrem principalmente o fundo, e os objetos vizinhos suprimem uns aos outrosOBB
Classificação para uma cena com vários objetosO rótulo depende de um objeto pequenoDetecção mais uma regra
Segmentação semântica quando você precisa contarObjetos encostados se fundem em uma regiãoSegmentação de instâncias
Tamanho da caixa como aproximação da distânciaAs regras falham quando os tamanhos dos objetos variamEstimativa de profundidade ou detecção mais profundidade
Pose para verificar presençaVocê nunca lê nenhum ponto-chaveDetecção
Não pague por saídas que você não vai usar

Saídas mais ricas custam mais em todas as etapas: máscaras e pontos-chave demoram mais para desenhar e revisar, além de exigirem regras de rotulagem mais rigorosas. Comece pela tarefa mais barata que responda à linha de decisão e só avance quando um consumidor real precisar dos detalhes adicionais.

Experimente

Pegue a linha de saída da sua especificação da lição 1 e percorra as opções acima. Anote a tarefa, o arquivo de pesos YOLO26 com que você começaria, o atributo Results que seu código vai ler e uma linha explicando por que a tarefa seguinte, mais cara, não é necessária. Ainda não tem um projeto? Use a especificação da empilhadeira.

Concluído quando
Você concluiu a aula quando todos estes critérios forem atendidos.
  • Você indicou uma tarefa, o arquivo de pesos YOLO26 correspondente e o atributo Results que seu código lê.

  • Você escreveu uma linha explicando por que a tarefa seguinte, mais cara, não é necessária.

  • Você consegue dizer se o seu projeto precisa de segmentação de instâncias ou semântica, de profundidade ou de nenhuma delas — e por quê.

Mostrar solução

Para a especificação da empilhadeira, a resposta é detecção com yolo26n.pt, lido de result.boxes.

A linha de decisão precisa saber onde estão as empilhadeiras e as pessoas para que o código possa verificar a proximidade entre elas. As caixas respondem a isso. A segmentação de instâncias aumentaria o custo de anotação sem mudar o alerta, porque a borda inferior de uma caixa já indica a posição no chão. A pose não é necessária, pois a postura não faz parte da decisão. A profundidade poderia ajudar a converter posições na imagem em metros, mas uma câmera fixa calibrada mapeia o plano do chão sem ela. Só vale a pena testar OBB se as câmeras estiverem apontadas diretamente para baixo e as empilhadeiras aparecerem em ângulos diagonais acentuados.

Próximos passos

A seguir, uma análise mais detalhada da detecção — a tarefa mais versátil e aquela pela qual a maioria dos produtos começa.

Entre para salvar seu progresso