Пригнічення Немаксимальних (NMS)
Свайпніть щоб показати меню
Моделі виявлення об'єктів часто прогнозують кілька перекривних обмежувальних рамок для одного й того ж об'єкта. Це відбувається тому, що моделі сканують зображення на різних масштабах і позиціях, що призводить до надлишкових прогнозів. Non-Max Suppression (NMS) — це важливий етап постобробки, який уточнює ці виявлення, обираючи найбільш релевантні обмежувальні рамки та відкидаючи зайві.
Чому виникають кілька перекривних рамок
Детектори об'єктів прогнозують кілька обмежувальних рамок для одного об'єкта через:
- Якірні рамки: деякі моделі, такі як Faster R-CNN та YOLO, використовують заздалегідь визначені якірні рамки різних розмірів, що призводить до кількох виявлень одного й того ж об'єкта;
- Підхід ковзного вікна: деякі методи виявлення сканують зображення невеликими ділянками, що спричиняє повторні виявлення об'єкта в перекривних областях;
- Високі оцінки впевненості: модель призначає кожному прогнозу оцінку впевненості, і схожі прогнози з високою впевненістю можуть значно перекриватися.
Якщо ці надлишкові рамки не відфільтрувати, це може негативно вплинути на ефективність виявлення об'єктів, збільшуючи обчислювальну складність і роблячи підрахунок об'єктів ненадійним.
Як працює Non-Max Suppression
NMS застосовується для видалення дубльованих детекцій, залишаючи найбільш впевнене обмежувальне прямокутне вікно. Алгоритм виконує такі кроки:
- Сортування за оцінкою: впорядкування всіх передбачених обмежувальних прямокутників у порядку спадання їхніх оцінок впевненості;
- Вибір найкращого прямокутника: вибір прямокутника з найвищою оцінкою та додавання його до фінального списку детекцій;
- Обчислення IoU: розрахунок Intersection Over Union (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?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Пригнічення Немаксимальних (NMS)
Моделі виявлення об'єктів часто прогнозують кілька перекривних обмежувальних рамок для одного й того ж об'єкта. Це відбувається тому, що моделі сканують зображення на різних масштабах і позиціях, що призводить до надлишкових прогнозів. Non-Max Suppression (NMS) — це важливий етап постобробки, який уточнює ці виявлення, обираючи найбільш релевантні обмежувальні рамки та відкидаючи зайві.
Чому виникають кілька перекривних рамок
Детектори об'єктів прогнозують кілька обмежувальних рамок для одного об'єкта через:
- Якірні рамки: деякі моделі, такі як Faster R-CNN та YOLO, використовують заздалегідь визначені якірні рамки різних розмірів, що призводить до кількох виявлень одного й того ж об'єкта;
- Підхід ковзного вікна: деякі методи виявлення сканують зображення невеликими ділянками, що спричиняє повторні виявлення об'єкта в перекривних областях;
- Високі оцінки впевненості: модель призначає кожному прогнозу оцінку впевненості, і схожі прогнози з високою впевненістю можуть значно перекриватися.
Якщо ці надлишкові рамки не відфільтрувати, це може негативно вплинути на ефективність виявлення об'єктів, збільшуючи обчислювальну складність і роблячи підрахунок об'єктів ненадійним.
Як працює Non-Max Suppression
NMS застосовується для видалення дубльованих детекцій, залишаючи найбільш впевнене обмежувальне прямокутне вікно. Алгоритм виконує такі кроки:
- Сортування за оцінкою: впорядкування всіх передбачених обмежувальних прямокутників у порядку спадання їхніх оцінок впевненості;
- Вибір найкращого прямокутника: вибір прямокутника з найвищою оцінкою та додавання його до фінального списку детекцій;
- Обчислення IoU: розрахунок Intersection Over Union (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-порогів можна досягти оптимального балансу між точністю детекції та обчислювальною ефективністю.
Дякуємо за ваш відгук!