Saiba como as caixas âncora atuam como modelos de referência para a deteção de objetos. Descubra como elas melhoram a precisão e como modelos como Ultralytics utilizam designs sem âncoras.
As caixas âncora são retângulos de referência predefinidos com proporções e escalas específicas que são colocados em uma imagem para auxiliar os modelos de detecção de objetos a localizar e classificar objetos. Em vez de pedir a uma rede neural para prever o tamanho e a posição exatos de um objeto a partir do zero — o que pode ser instável devido à grande variedade de formas de objetos —, o modelo usa esses modelos fixos como ponto de partida. Ao aprender a prever quanto ajustar, ou "regressar", essas caixas iniciais para se adequarem à verdade fundamental, o sistema pode alcançar uma convergência mais rápida e maior precisão. Essa técnica transformou fundamentalmente o campo da visão computacional (CV), simplificando a complexa tarefa de localização em um problema de otimização mais gerenciável.
Nos detetores clássicos baseados em âncoras, a imagem de entrada é dividida em uma grade de células. Em cada localização de célula, a rede gera várias caixas de âncora com geometrias diferentes. Por exemplo, para detect simultaneamente detect pedestre alto e um carro largo, o modelo pode propor uma caixa alta e estreita e uma caixa baixa e larga no mesmo ponto central.
Durante o treino do modelo, essas âncoras são comparadas com objetos reais usando uma métrica chamada Intersection over Union (IoU). As âncoras que se sobrepõem significativamente a um objeto rotulado são designadas como amostras "positivas". A rede então aprende duas tarefas paralelas:
Esta abordagem permite que o modelo lide com múltiplos objetos de diferentes tamanhos localizados próximos uns dos outros, já que cada objeto pode ser atribuído à âncora que melhor corresponde à sua forma.
Embora as arquiteturas mais recentes estejam a evoluir para designs sem âncoras, as caixas de âncora continuam a ser vitais em muitos sistemas de produção estabelecidos, nos quais as características dos objetos são previsíveis.
É importante distinguir entre os métodos tradicionais baseados em âncoras e os modernos detectores sem âncoras.
Embora APIs modernas de alto nível, como a Ultralytics , abstraiam esses detalhes durante o treinamento, compreender as âncoras é útil ao trabalhar com arquiteturas de modelos mais antigas ou analisar ficheiros de configuração de modelos. O trecho a seguir demonstra como carregar um modelo e inspecionar a sua configuração, onde as definições de âncora (se presentes) seriam normalmente definidas.
from ultralytics import YOLO
# Load a pre-trained YOLO model (YOLO26 is anchor-free, but legacy configs act similarly)
model = YOLO("yolo26n.pt")
# Inspect the model's stride, which relates to grid cell sizing in detection
print(f"Model strides: {model.model.stride}")
# For older anchor-based models, anchors might be stored in the model's attributes
# Modern anchor-free models calculate targets dynamically without fixed boxes
if hasattr(model.model, "anchors"):
print(f"Anchors: {model.model.anchors}")
else:
print("This model architecture is anchor-free.")
Embora eficazes, as caixas âncora introduzem complexidade. O grande número de âncoras geradas — muitas vezes dezenas de milhares por imagem — cria um problema de desequilíbrio de classes, já que a maioria das âncoras cobre apenas o fundo. Técnicas como Focal Loss são usadas para mitigar isso, diminuindo a ponderação de exemplos fáceis de fundo. Além disso, a saída final geralmente requer Supressão Não Máxima (NMS) para filtrar caixas redundantes sobrepostas, garantindo que apenas a detecção mais confiável para cada objeto permaneça.