Descubra a Supressão Não MáximaNMS) para deteção de objectos. Saiba como refina os resultados, melhora a precisão e potencia aplicações de IA como o YOLO.
A Supressão Não MáximaNMS) é uma técnica de pós-processamento vital utilizada em visão computacional para aperfeiçoar os resultados dos algoritmos de deteção de objectos. Quando um modelo analisa uma Quando um modelo analisa uma imagem, prevê frequentemente múltiplas sobrepostas para um único objeto, cada uma com uma probabilidade distinta. NMS filtra estas previsões redundantes para garantir que cada objeto único é identificado exatamente O NMS filtra estas previsões redundantes para garantir que cada objeto único é identificado exatamente uma vez, retendo apenas a caixa mais precisa e descartando as restantes. Este processo é essencial para alcançar uma elevada precisão em aplicações do mundo real, evitando que os sistemas sistemas detectem duplicados "fantasma" do mesmo alvo.
O algoritmo NMS funciona como um filtro que limpa a saída bruta de um modelo de modelo de aprendizagem profunda. Ele se baseia fortemente em duas métricas chave: a pontuação de confiança, que indica o grau de certeza que o modelo tem de que uma caixa contém um objeto, e a Intersecção sobre União (IoU), que mede a sobreposição espacial entre duas caixas.
O algoritmo guloso padrão para NMS geralmente segue estes passos:
Variações avançadas, como o NMS, reduzem as pontuações de deteção de caixas sobrepostas em vez de as eliminar completamente, o que pode ser benéfico em cenas com muita gente onde os objectos objectos se sobrepõem naturalmente uns aos outros.
NMS é omnipresente em sistemas que dependem da inteligência artificial para interpretar dados visuais. O seu papel é particularmente importante em ambientes críticos para a segurança e de alta precisão.
Na secção Ultralytics YOLO11NMS está integrado diretamente no pipeline de previsão. Os utilizadores podem ajustar facilmente os parâmetros NMS , como o limiar IoU , para equilibrar entre a remoção de duplicados e a separação de objectos muito espaçados.
O seguinte trecho de código demonstra como executar a inferência e personalizar as configurações NMS usando o
ultralytics pacote:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
# 'iou=0.5' sets the NMS threshold; boxes with >50% overlap are suppressed
# 'conf=0.25' filters out boxes with low confidence before NMS runs
results = model.predict("https://ultralytics.com/images/bus.jpg", iou=0.5, conf=0.25)
# Display the number of detected objects after NMS
print(f"Objects detected: {len(results[0].boxes)}")
É importante distinguir NMS de outros termos encontrados nos pipelines de deteção.
Para os programadores que pretendem implementar estes modelos de forma eficiente, é crucial compreender o impacto NMS na inferência em tempo real é crucial. Ferramentas como TensorRT muitas vezes incluem plugins NMS otimizados para acelerar essa etapa durante a implantação do modelo.