Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Anchor Boxes

As caixas-âncora são caixas predefinidas, com tamanhos e proporções fixos, que um detetor desloca e redimensiona para se ajustarem aos objetos. Como são dimensionadas, associadas e utilizadas.

As caixas-âncora são retângulos predefinidos, com tamanhos e proporções fixos, dispostos em todas as posições dos mapas de características de um detetor. Servem como estimativas iniciais da localização e da forma dos objetos. Um detetor baseado em âncoras atribui uma pontuação a cada âncora para cada classe e prevê pequenos desvios que a deslocam e redimensionam para se ajustar ao objeto, o que é mais fácil de aprender do que prever uma caixa do zero. O Faster R-CNN coloca 9 âncoras em cada posição: três áreas (128², 256² e 512² píxeis) vezes três proporções (1:1, 1:2 e 2:1), o que dá cerca de 20 000 âncoras numa imagem de 1000 × 600.

Como são definidas as âncoras#

Um conjunto de âncoras é uma lista de tamanhos e proporções repetida em cada célula de um mapa de características, pelo que o número de âncoras equivale a células × formas por célula. Os detetores com uma rede piramidal de características (FPN) atribuem âncoras pequenas aos níveis finos e de alta resolução e âncoras grandes aos níveis mais grosseiros: o RetinaNet utiliza 9 âncoras por localização em cada um de cinco níveis, cerca de 100 000 por imagem. O SSD chama-lhes caixas predefinidas, e o SSD300 distribui 8732 delas.

As formas escolhidas manualmente ajustam-se mal a alguns conjuntos de dados, pelo que o YOLOv2 executou agrupamento k-means nas larguras e alturas das caixas de treino, usando 1 − IoU como distância, e manteve 5 centros de agrupamento como âncoras. O YOLOv3 agrupou 9 âncoras e distribuiu-as uniformemente pelos seus três strides de saída, desde 10 × 13 píxeis no nível de stride 8 até 373 × 326 no nível de stride 32.

Associar âncoras a objetos#

Durante o treino, cada âncora é comparada com todas as caixas anotadas através da interseção sobre união (IoU). As âncoras que se sobrepõem suficientemente a um objeto tornam-se amostras positivas e aprendem a classe desse objeto e os desvios para a sua caixa delimitadora; as âncoras com pouca sobreposição tornam-se negativas e aprendem «fundo», e as âncoras intermédias são ignoradas. A rede de propostas de regiões do Faster R-CNN considera positivas as âncoras com IoU igual ou superior a 0,7 e negativas as que ficam abaixo de 0,3; também torna positiva a âncora com melhor correspondência para cada objeto, para que nenhum objeto fique sem uma.

import torch
from torchvision.ops import box_iou

# Nine anchors centered on one feature-map cell at (200, 200): 3 sizes x 3 aspect ratios (height / width)
shapes = [(size, ratio) for size in (64, 128, 256) for ratio in (0.5, 1.0, 2.0)]
anchors = []
for size, ratio in shapes:
    w, h = size / ratio**0.5, size * ratio**0.5
    anchors.append([200 - w / 2, 200 - h / 2, 200 + w / 2, 200 + h / 2])

# A labeled pedestrian box (x1, y1, x2, y2): tall and narrow
person = torch.tensor([[160.0, 110.0, 240.0, 290.0]])

# Faster R-CNN RPN rule: IoU >= 0.7 is positive, below 0.3 is negative, anything between is ignored
iou = box_iou(torch.tensor(anchors), person).squeeze(1)
for (size, ratio), value in zip(shapes, iou.tolist()):
    label = "positive" if value >= 0.7 else "negative" if value < 0.3 else "ignored"
    print(f"size {size}, ratio {ratio}: IoU {value:.2f} -> {label}")

Apenas a âncora alta de 128 píxeis (proporção 2,0) se sobrepõe o suficiente ao peão para ser positiva, com IoU de 0,88. Duas outras âncoras de 128 píxeis, com IoU de 0,31 e 0,50, são ignoradas, e as seis âncoras de tamanho inadequado são negativas. A âncora positiva aprende então os desvios segundo a parametrização padrão: o centro desloca-se por frações da largura e da altura da âncora, e a largura e a altura são escaladas exponencialmente pelos valores previstos.

Escolher os tamanhos das âncoras para um conjunto de dados#

As âncoras que correspondem às formas dos objetos de um conjunto de dados permitem que mais objetos tenham uma âncora positiva, o que aumenta o recall que um detetor pode alcançar. O YOLOv5 da Ultralytics parte das 9 âncoras do YOLOv3 e verifica-as antes do treino com o AutoAnchor: mede o recall máximo possível das âncoras nos rótulos de treino e, a menos que ultrapasse 0,98, volta a ajustá-las com k-means e 1000 gerações de evolução genética, mantendo as novas âncoras apenas se o recall melhorar.

Limitações e detetores sem âncoras#

As âncoras têm três custos. Quase todas as dezenas de milhares de âncoras numa imagem cobrem o fundo, o que faz com que a função de perda seja dominada por exemplos negativos fáceis; o RetinaNet introduziu a focal loss para lhes reduzir o peso. Várias âncoras vizinhas ajustam-se ao mesmo objeto, pelo que a saída precisa de supressão não máxima (NMS) para manter uma caixa por objeto. Os tamanhos, as proporções e os limiares de IoU também são hiperparâmetros que variam com cada conjunto de dados e tamanho de imagem.

Os detetores sem âncoras eliminam esses hiperparâmetros ao prever caixas a partir de pontos ou pontos-chave, e a maioria dos detetores em tempo real lançados desde o YOLOX, em 2021, não utiliza âncoras. As âncoras continuam a ser usadas em detetores baseados em âncoras, como Faster R-CNN, Mask R-CNN e RetinaNet. Ao comparar o RetinaNet com o FCOS sem âncoras, o ATSS concluiu que, quando ambos selecionavam as amostras positivas da mesma forma, o RetinaNet com 9 âncoras por localização não era mais preciso do que com 1.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina