Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Назад к глоссарию Ultralytics

Non-Maximum Suppression (NMS)

Узнай, как немаксимальное подавление (NMS) устраняет дублирующиеся BBox в детектировании объектов. Открой для себя, как Ultralytics YOLO26 обеспечивает встроенное сквозное NMS.

Non-Maximum Suppression (NMS) — это метод постобработки, используемый в обнаружении объектов для уточнения исходных предсказаний модели. Когда модель обнаружения объектов анализирует изображение, она часто создает несколько перекрывающихся ограничивающих рамок для одного объекта, каждая из которых имеет свой показатель уверенности. Эти избыточные предсказания возникают, так как модель может обнаружить один и тот же признак в слегка разных масштабах или позициях. NMS фильтрует этот вывод, сохраняя только самую точную ограничивающую рамку для каждого объекта и отбрасывая остальные, что гарантирует чистоту, точность и отсутствие дубликатов в конечном результате.

Link to this sectionКак работает Non-Maximum Suppression#

Алгоритм NMS работает со списком кандидатных ограничивающих рамок и соответствующими им показателями уверенности. Цель состоит в том, чтобы выбрать лучшую рамку для объекта и подавить (удалить) любые другие рамки, которые значительно перекрываются с ней, так как они, скорее всего, являются дубликатами обнаружения одного и того же объекта. Процесс обычно состоит из следующих шагов:

  1. Фильтрация: Удали все ограничивающие рамки с показателями уверенности ниже определенного порога (например, 0,25), чтобы немедленно отсеять слабые предсказания.

  2. Сортировка: Отсортируй оставшиеся рамки в порядке убывания на основе их показателей уверенности.

  3. Выбор: Выбери рамку с наивысшим показателем уверенности в качестве достоверного обнаружения.

  4. Сравнение: Сравни выбранную рамку со всеми остальными оставшимися рамками, используя Intersection over Union (IoU) — метрику, которая измеряет степень перекрытия между двумя рамками.

  5. Подавление: Если IoU между выбранной рамкой и другой рамкой превышает предопределенный порог (например, 0,45), рамка с более низким баллом считается дубликатом и удаляется.

  6. Итерация: Повторяй процесс со следующей рамкой с наивысшим баллом, которая еще не была подавлена или выбрана, пока все рамки не будут обработаны.

Link to this sectionРеальные приложения#

NMS необходим в сценариях, где точность имеет первостепенное значение, а дублирующиеся обнаружения могут сбить с толку последующие системы.

  • Автономное вождение: В системах беспилотных автомобилей камеры обнаруживают пешеходов, другие транспортные средства и дорожные знаки. Модель может предсказать три немного разные рамки для одного пешехода. NMS гарантирует, что система планирования автомобиля получит только одну координату этого пешехода, предотвращая резкое торможение или ошибки планирования маршрута, вызванные «фантомными» препятствиями.
  • Управление розничными запасами: При использовании компьютерного зрения для подсчета товаров на полке предметы часто оказываются плотно прижатыми друг к другу. Без NMS одна банка газировки может быть посчитана дважды из-за перекрывающихся предсказаний, что приведет к неточным уровням запасов. NMS уточняет эти обнаружения, чтобы гарантировать, что подсчет запасов соответствует реальности.

Link to this sectionРеализация NMS с использованием PyTorch#

Хотя многие современные фреймворки обрабатывают NMS внутренне, понимание реализации помогает в настройке параметров. В следующем примере показано, как применить NMS с помощью библиотеки PyTorch:

import torch
import torchvision.ops as ops

# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
    [
        [100, 100, 200, 200],  # Box A
        [105, 105, 195, 195],  # Box B (High overlap with A)
        [300, 300, 400, 400],  # Box C (Distinct object)
    ],
    dtype=torch.float32,
)

# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)

# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)

print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.

Link to this sectionNMS против комплексного (End-to-End) обнаружения#

Традиционно NMS был обязательным этапом «очистки», который находится за пределами основной нейронной сети, увеличивая задержку логического вывода. Однако отрасль движется в сторону комплексных (end-to-end) архитектур.

  • Стандартный NMS: Эвристический процесс, требующий ручной настройки порога IoU. Если порог слишком низкий, можно пропустить близко расположенные объекты (низкая полнота). Если слишком высокий — останутся дубликаты (низкая точность).
  • Комплексные (End-to-End) модели: Модели нового поколения, такие как YOLO26, разработаны как изначально комплексные. Они обучаются предсказывать ровно одну рамку на объект, эффективно интернализируя процесс NMS. Это устраняет необходимость во внешней постобработке, что приводит к более высокой скорости вывода и упрощению конвейеров развертывания на Ultralytics Platform.

Link to this sectionСвязанные концепции#

  • Soft-NMS: Вариация, при которой перекрывающиеся рамки не удаляются строго, а их показатели уверенности снижаются. Это позволяет обнаруживать даже частично перекрывающиеся объекты (например, людей в толпе), если их баллы остаются достаточно высокими после затухания.
  • Anchor Boxes: Предопределенные формы рамок, используемые многими детекторами для оценки размера объекта. NMS применяется к окончательным предсказаниям, уточненным на основе этих якорей.
  • Intersection over Union (IoU): Математическая формула, используемая NMS для определения степени перекрытия двух рамок, выступающая в качестве порога принятия решения для подавления.

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше

Давай строить будущее ИИ вместе!

Начни свой путь в будущее машинного обучения