Откройте для себя метод немаксимального подавленияNMS) для обнаружения объектов. Узнайте, как оно улучшает результаты, повышает точность и обеспечивает работу приложений искусственного интеллекта, таких как YOLO.
Немаксимальное подавлениеNMSНМП) - важнейшая техника постобработки, используемая в компьютерном зрении для уточнения результатов. компьютерном зрении для уточнения результатов алгоритмов обнаружения объектов. Когда модель анализирует изображения, она часто предсказывает несколько перекрывающихся ограничивающих областей для одного объекта, каждая из которых имеет с определенной вероятностью. NMS фильтрует эти избыточные предсказания, чтобы гарантировать, что каждый уникальный объект будет идентифицирован ровно один раз, сохраняя только наиболее точные рамки и отбрасывая остальные. Этот процесс необходим для достижения высокой точности в реальных приложениях, не позволяя системам от обнаружения "призрачных" дубликатов одной и той же цели.
Алгоритм NMS работает как фильтр, очищающий необработанный вывод модели глубокого обучения. модели глубокого обучения. Он в значительной степени опирается на две ключевые метрики: показатель уверенности, который показывает, насколько насколько модель уверена в том, что в ящике находится объект, и Intersection over Union (IoU), которая измеряет пространственное перекрытие между двумя ящиками.
Стандартный жадный алгоритм для NMS , как правило, следует следующие шаги:
Усовершенствованные варианты, такие как NMS, снижают оценку обнаружения перекрывающихся ящиков, а не устраняют их полностью, что может быть полезно в многолюдных сценах, где объекты естественным образом перекрывают друг друга.
NMS повсеместно используется в системах, которые полагаются на искусственный интеллект для интерпретации визуальных данных. Ее роль особенно важна в системах, критически важных с точки зрения безопасности и высокой точности.
В Ultralytics YOLO11 фреймворк NMS интегрирован непосредственно в конвейер предсказаний. Пользователи могут легко настроить параметры NMS , такие как порог IoU , чтобы сбалансировать между удалением дубликатов и разделением близко расположенных объектов.
Следующий фрагмент кода демонстрирует, как запустить вывод и настроить параметры NMS с помощью
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 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)}")
Важно отличать NMS от других терминов, встречающихся в конвейерах обнаружения.
Для разработчиков, стремящихся к эффективному развертыванию этих моделей, понимание влияния NMS на на умозаключения в реальном времени очень важно. Такие инструменты, как TensorRT часто включают оптимизированные плагины NMS для ускорения этого во время развертывания модели.