Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Приглушення Немаксимальних (NMS) | Виявлення Об'єктів
Основи комп'ютерного зору

bookПриглушення Немаксимальних (NMS)

Моделі детекції об'єктів часто прогнозують кілька перекривних обмежувальних рамок для одного й того ж об'єкта. Це відбувається тому, що моделі сканують зображення на різних масштабах і позиціях, що призводить до надлишкових передбачень. Non-Max Suppression (NMS) — це важливий етап постобробки, який удосконалює ці детекції, обираючи найбільш релевантні обмежувальні рамки та відкидаючи зайві.

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?

question mark

Яка основна мета Non-Max Suppression (NMS) у детекції об'єктів?

Select the correct answer

question mark

Як стандартний NMS визначає, які обмежувальні рамки потрібно придушити?

Select the correct answer

question mark

У чому полягає ключова відмінність між стандартним NMS та Soft-NMS?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.45

bookПриглушення Немаксимальних (NMS)

Свайпніть щоб показати меню

Моделі детекції об'єктів часто прогнозують кілька перекривних обмежувальних рамок для одного й того ж об'єкта. Це відбувається тому, що моделі сканують зображення на різних масштабах і позиціях, що призводить до надлишкових передбачень. Non-Max Suppression (NMS) — це важливий етап постобробки, який удосконалює ці детекції, обираючи найбільш релевантні обмежувальні рамки та відкидаючи зайві.

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?

question mark

Яка основна мета Non-Max Suppression (NMS) у детекції об'єктів?

Select the correct answer

question mark

Як стандартний NMS визначає, які обмежувальні рамки потрібно придушити?

Select the correct answer

question mark

У чому полягає ключова відмінність між стандартним NMS та Soft-NMS?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 5
some-alt