Зміст курсу
Основи Комп'ютерного Зору
Основи Комп'ютерного Зору
Перетин над Об'єднанням (IoU) та Метрики Оцінювання
Як обчислюється
Математично IoU визначається як:
Де:
Area of Overlap — це площа перетину передбаченої та фактичної обмежувальних рамок;
Area of Union — це загальна площа, яку покривають обидві рамки.
import 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 та категорій об'єктів, забезпечуючи комплексну оцінку ефективності моделі.
def 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 з такими показниками, як precision, recall та mAP, дослідники й інженери можуть оптимізувати свої моделі для досягнення більшої точності та надійності виявлення.
1. Що вимірює Intersection over Union (IoU) у задачі детекції об'єктів?
2. Що з наведеного вважається хибнонегативним результатом (false negative) в задачі детекції об'єктів?
3. Як обчислюється точність (Precision) у задачі детекції об'єктів?
Дякуємо за ваш відгук!