Descubra la supresión no máximaNMS) para la detección de objetos. Descubra cómo perfecciona los resultados, mejora la precisión y potencia aplicaciones de IA como YOLO.
La supresión no máxima (NMS) es un algoritmo de posprocesamiento crítico utilizado en la visión por ordenador para refinar el resultado de los modelos de detección de objetos. Durante la etapa de inferencia , un modelo de detección suele identificar el mismo objeto varias veces, lo que da lugar a un grupo de cuadros delimitadores superpuestos con diferentes puntuaciones de confianza. NMS filtra estas predicciones redundantes para garantizar que cada objeto único esté representado por un solo cuadro delimitador óptimo . Al eliminar las detecciones duplicadas y conservar las más precisas, NMS mejora NMS la precisión y claridad de los resultados finales.
La función principal del NMS resolver la ambigüedad cuando un modelo «ve» el mismo objeto desde perspectivas o escalas ligeramente diferentes . El proceso se basa en dos criterios principales: la puntuación de confianza, que indica la certeza del modelo, y la intersección sobre la unión (IoU), que mide la superposición física entre dos recuadros.
NMS estándar NMS suele seguir estos pasos:
Las variaciones avanzadas, como NMS, modifican este enfoque reduciendo las puntuaciones de los recuadros superpuestos en lugar de eliminarlos por completo. Esto resulta especialmente útil en escenarios de gestión de multitudes, en los que los objetos pueden ocultarse unos a otros de forma natural.
NMS un componente estándar en casi todos los procesos de visión práctica que implican la detección de elementos distintos.
Dentro del Ultralytics YOLO11 arquitectura, NMS
integra perfectamente en el proceso de predicción. Los usuarios pueden controlar el comportamiento de NMS el
iou argumento durante la inferencia. Un IoU más bajo da como resultado una supresión más estricta (menos recuadros), mientras que
un umbral más alto permite que permanezcan más recuadros superpuestos.
El siguiente Python muestra cómo ajustar NMS al ejecutar la inferencia con
ultralytics:
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 weak predictions before NMS runs
results = model.predict("https://ultralytics.com/images/bus.jpg", iou=0.5, conf=0.25)
# Display the number of unique objects detected after NMS
print(f"Unique objects detected: {len(results[0].boxes)}")
Es útil distinguir NMS otros términos que se encuentran a menudo en tareas de visión por computadora.
Para los desarrolladores que optimizan modelos para dispositivos periféricos, NMS fundamental comprender NMS . Herramientas como TensorRT a menudo proporcionan NMS optimizados para acelerar este paso específico durante la implementación del modelo.