Перетин Над Об'єднанням (IoU) Та Метрики Оцінювання
Intersection over Union (IoU) — це метрика, яка вимірює точність передбачених обмежувальних рамок шляхом обчислення відношення площі перекриття між передбаченою та еталонною рамками до площі їх об'єднання.
Як обчислюється
Математично IoU визначається як:
Де:
- Площа перекриття — це перетин передбаченої та фактичної обмежувальних рамок;
- Площа об'єднання — це загальна площа, яку покривають обидві рамки.
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) у задачі детекції об'єктів?
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.45
Перетин Над Об'єднанням (IoU) Та Метрики Оцінювання
Свайпніть щоб показати меню
Intersection over Union (IoU) — це метрика, яка вимірює точність передбачених обмежувальних рамок шляхом обчислення відношення площі перекриття між передбаченою та еталонною рамками до площі їх об'єднання.
Як обчислюється
Математично IoU визначається як:
Де:
- Площа перекриття — це перетин передбаченої та фактичної обмежувальних рамок;
- Площа об'єднання — це загальна площа, яку покривають обидві рамки.
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) у задачі детекції об'єктів?
Дякуємо за ваш відгук!