Придушення Немаксимальних Значень (NMS)
Свайпніть щоб показати меню
Моделі детекції об'єктів часто прогнозують кілька перекривних обмежувальних рамок для одного й того ж об'єкта. Це відбувається через те, що моделі сканують зображення на різних масштабах і позиціях, що призводить до надлишкових прогнозів. Non-Max Suppression (NMS) — це важливий етап постобробки, який удосконалює ці детекції, обираючи найбільш релевантні обмежувальні рамки та відкидаючи зайві.
Чому виникають кілька перекривних рамок
Детектори об'єктів прогнозують кілька обмежувальних рамок для одного об'єкта через:
- Якірні рамки: деякі моделі, такі як Faster R-CNN та YOLO, використовують заздалегідь визначені якірні рамки різних розмірів, що призводить до кількох детекцій одного й того ж об'єкта;
- Підхід ковзного вікна: деякі методи детекції сканують зображення невеликими ділянками, що спричиняє повторні детекції об'єкта в перекривних областях;
- Високі значення впевненості: модель призначає кожному прогнозу оцінку впевненості, і схожі прогнози з високою впевненістю можуть значно перекриватися.
Якщо ці надлишкові рамки не відфільтрувати, це може негативно вплинути на якість детекції об'єктів, збільшуючи обчислювальну складність і роблячи підрахунок об'єктів ненадійним.
Як працює Non-Max Suppression
NMS застосовується для видалення дубльованих детекцій, залишаючи найбільш впевнену обмежувальну рамку. Алгоритм виконує такі кроки:
- Сортування за оцінкою: впорядкування всіх передбачених обмежувальних рамок у порядку спадання їхніх коефіцієнтів впевненості;
- Вибір найкращої рамки: вибір рамки з найвищою оцінкою та додавання її до фінального списку детекцій;
- Обчислення IoU: розрахунок коефіцієнта перетину над об'єднанням (IoU) між вибраною рамкою та всіма іншими рамками;
- Поріг: придушення (видалення) рамок, у яких IoU перевищує заданий поріг (наприклад, 0.5), оскільки вони, ймовірно, представляють той самий об'єкт;
- Повторення: повторення цього процесу для наступної рамки з найвищою оцінкою, доки всі рамки не будуть оброблені.
import numpy as np
def non_max_suppression(boxes, scores, iou_threshold=0.5):
# Sort boxes by confidence scores in descending order
sorted_indices = np.argsort(scores)[::-1]
selected_boxes = []
while len(sorted_indices) > 0:
# Pick the highest confidence box
best_idx = sorted_indices[0]
selected_boxes.append(boxes[best_idx])
# Compute IoU with the remaining boxes
remaining_boxes = boxes[sorted_indices[1:]]
ious = np.array([compute_iou(boxes[best_idx], box) for box in remaining_boxes])
# Suppress boxes with IoU above threshold
sorted_indices = sorted_indices[1:][ious < iou_threshold]
return selected_boxes
Soft-NMS: більш гнучка альтернатива
Стандартний NMS видаляє всі перекривані рамки, що перевищують певний поріг IoU, що іноді може призвести до втрати корисних детекцій. Soft-NMS покращує цей підхід, зменшуючи коефіцієнти впевненості перекриваних рамок замість їх повного видалення. Такий метод забезпечує більш плавний процес придушення та може підвищити якість детекції в умовах щільного розташування об'єктів.
Основні відмінності між стандартним NMS та Soft-NMS:
- Стандартний NMS: видаляє перекривані рамки, якщо IoU перевищує поріг;
- Soft-NMS: зменшує коефіцієнти впевненості перекриваних рамок замість їх видалення, що робить його більш гнучким для виявлення частково перекритих об'єктів.
Балансування точності та швидкості в NMS
Вибір правильного порогу IoU є критичним:
- Вищі пороги (наприклад, 0.6 - 0.7): більш агресивна фільтрація, залишаються лише найбільш впевнені рамки, але можливі пропуски коректних детекцій;
- Нижчі пороги (наприклад, 0.3 - 0.4): зберігається більше перекриваних рамок, що корисно у переповнених сценах, але може збільшити кількість хибнопозитивних спрацьовувань.
Використання оптимізованих реалізацій, таких як вбудовані функції NMS у TensorFlow або OpenCV, допомагає прискорити обробку для задач реального часу.
Non-Max Suppression — ключова техніка в задачах виявлення об'єктів, що дозволяє усунути надлишкові обмежувальні рамки та підвищити точність моделі. Стандартний NMS ефективно видаляє дублікати детекцій, тоді як Soft-NMS вдосконалює процес, коригуючи значення впевненості замість повного видалення. Завдяки налаштуванню IoU-порогів можна досягти оптимального балансу між точністю виявлення та обчислювальною ефективністю.
1. Яка основна мета Non-Max Suppression (NMS) у виявленні об'єктів?
2. Як стандартний NMS визначає, які обмежувальні рамки потрібно придушити?
3. У чому полягає ключова відмінність між стандартним NMS та Soft-NMS?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат