Перетин Над Об'єднанням (IoU) та Метрики Оцінювання
Свайпніть щоб показати меню
Intersection over Union (IoU) — це метрика, яка вимірює точність передбачених обмежувальних рамок шляхом обчислення відношення площі перекриття між передбаченою та еталонною рамками до площі їх об'єднання.
Як обчислюється
Математично IoU визначається так:
Де:
- Area of Overlap — це перетин передбаченої та фактичної обмежувальних рамок;
- Area of Union — це загальна площа, яку покривають обидві рамки.
12345678910111213141516171819202122232425262728import numpy as np def compute_iou(boxA, boxB): # Extract coordinates xA = max(boxA[0], boxB[0]) yA = max(boxA[1], boxB[1]) xB = min(boxA[2], boxB[2]) yB = min(boxA[3], boxB[3]) # Compute intersection area interArea = max(0, xB - xA) * max(0, yB - yA) # Compute areas of both boxes boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1]) boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1]) # Compute union area unionArea = boxAArea + boxBArea - interArea # Compute IoU iou = interArea / unionArea return iou # Example usage box1 = [50, 50, 150, 150] # [x1, y1, x2, y2] box2 = [100, 100, 200, 200] iou_score = compute_iou(box1, box2) print("IoU Score:", iou_score)
IoU як метрика точності обмежувальної рамки
IoU зазвичай використовується для оцінки того, наскільки добре передбачена обмежувальна рамка співпадає з еталонною. Вищі значення IoU вказують на кращу відповідність: IoU, що дорівнює 1.0, означає ідеальне перекриття, а 0.0 — повну відсутність перекриття.
Встановлення порогу IoU для істинно позитивних та хибно позитивних результатів
Щоб визначити, чи є виявлення правильним (істинно позитивним) або неправильним (хибно позитивним), зазвичай встановлюється поріг для IoU. Поширені пороги включають:
- IoU > 0.5: вважається істинно позитивним (TP);
- IoU < 0.5: вважається хибно позитивним (FP).
Встановлення вищих порогів IoU підвищує точність, але може зменшити повноту, оскільки менше виявлень відповідають критеріям.
Метрики оцінювання: точність, повнота та mAP
Окрім IoU, інші метрики оцінювання допомагають аналізувати моделі детекції об'єктів:
- Точність (Precision): вимірює частку правильно передбачених обмежувальних рамок серед усіх передбачень;
- Повнота (Recall): вимірює частку правильно передбачених обмежувальних рамок серед усіх об'єктів із розмітки;
- Середня середня точність (mAP): обчислює середню точність для різних порогів IoU та категорій об'єктів, забезпечуючи комплексну оцінку ефективності моделі.
123456789def precision_recall(tp, fp, fn): precision = tp / (tp + fp) if (tp + fp) > 0 else 0 recall = tp / (tp + fn) if (tp + fn) > 0 else 0 return precision, recall # Example usage tp, fp, fn = 50, 10, 20 precision, recall = precision_recall(tp, fp, fn) print(f"Precision: {precision:.2f}, Recall: {recall:.2f}")
IoU є базовою метрикою для оцінювання моделей детекції об'єктів, допомагаючи визначити точність передбачених обмежувальних рамок. Поєднуючи IoU з точністю, повнотою та mAP, дослідники й інженери можуть оптимізувати свої моделі для досягнення вищої точності та надійності детекції.
1. Що вимірює Intersection over Union (IoU) у задачі детекції об'єктів?
2. Що з наведеного вважається хибнонегативним результатом (false negative) у задачі детекції об'єктів?
3. Як обчислюється точність (Precision) у задачі детекції об'єктів?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат