Детекція об'єктів локалізує та класифікує множинні об'єкти на зображеннях або відеокадрах. На відміну від класифікації, яка присвоює одну мітку на зображення, детекція повертає обмежувальні рамки з мітками класів та показниками впевненості. Продакшн-системи вимагають балансу між точністю, швидкістю та обмеженнями ресурсів.
Де використовується
Детекція об'єктів забезпечує візуальне розуміння в різних галузях:
- Автономні транспортні засоби: Детекція пішоходів, транспорту, знаків та перешкод
- Рітейл: Моніторинг полиць, магазини без кас, відстеження запасів
- Виробництво: Виявлення дефектів, контроль якості, моніторинг безпеки
- Безпека: Відеоспостереження, виявлення вторгнень, моніторинг натовпу
- Медицина: Медичні зображення, підрахунок клітин, локалізація пухлин
- Сільське господарство: Моніторинг врожаю, виявлення шкідників, оцінка врожайності
Продукти: Tesla Autopilot, Amazon Go, Google Lens, розмітка фото Facebook, робототехніка складів.
Типові дані
| Аспект | Типові значення |
|---|---|
| Роздільна здатність | 416x416 до 1920x1080 |
| Об'єктів на зображення | 1 до 100+ |
| Класів | 5 до 1,000+ |
| Навчальних зображень | 1K до 1M розмічених |
| Формат анотацій | COCO, Pascal VOC, YOLO |
Що робимо на практиці
- Визначити вимоги - Які об'єкти, яка точність, яка швидкість?
- Зібрати та розмітити дані - Якісні анотації критичні
- Обрати архітектуру - Одноетапна vs двоетапна залежно від потреб
- Обрати backbone - ResNet, EfficientNet або кастомний
- Навчити baseline - Pre-trained модель з мінімальним fine-tuning
- Агресивна аугментація - Flips, crops, color jitter, mosaic
- Тюнінг гіперпараметрів - Learning rate, anchor boxes, NMS thresholds
- Оптимізація для деплою - Квантизація, pruning, TensorRT
- Деплой з моніторингом - Відстеження швидкості інференсу, якості
- Обробка edge cases - Fallback поведінка для незвичних inputs
Baseline спочатку
Почніть з pre-trained YOLOv8 моделі:
from ultralytics import YOLO
# Завантажити pre-trained модель
model = YOLO('yolov8n.pt') # nano версія для швидкості
# Fine-tune на вашому датасеті
model.train(
data='dataset.yaml',
epochs=100,
imgsz=640,
batch=16
)
Поширені моделі
| Модель | Швидкість | Точність | Найкраще для |
|---|---|---|---|
| YOLOv8-nano | 640 FPS | mAP ~37 | Edge пристрої, real-time |
| YOLOv8-small | 400 FPS | mAP ~45 | Баланс швидкість/точність |
| YOLOv8-large | 80 FPS | mAP ~53 | Висока точність |
| Faster R-CNN | 15 FPS | mAP ~42 | Кращий для дрібних об'єктів |
| DETR | 20 FPS | mAP ~42 | Transformer-based, без NMS |
Метрики оцінки
| Метрика | Опис | Застосування |
|---|---|---|
| mAP@0.5 | Mean AP при IoU=0.5 | Загальна якість детекції |
| mAP@0.5:0.95 | Середнє по IoU thresholds | COCO стандарт, суворіший |
| Precision | Правильні детекції / всі детекції | Висока ціна false positives |
| Recall | Правильні детекції / всі ground truth | Важливо не пропустити |
| FPS | Кадрів на секунду | Real-time вимоги |
Типові проблеми та дебагінг
- [ ] Дрібні об'єкти пропущені: Потрібна вища роздільність або FPN
- [ ] Об'єкти, що перетинаються, злиті: NMS threshold занадто агресивний
- [ ] False positives на фоні: Потрібен hard negative mining
- [ ] Плутанина класів: Схожі класи потребують більше даних
- [ ] Погана генералізація: Недостатня аугментація, domain shift
- [ ] Повільний інференс: Модель занадто велика, потрібна оптимізація
Чекліст продакшену
Перед деплоєм: - [ ] Модель протестована на репрезентативних даних - [ ] Швидкість інференсу відповідає вимогам - [ ] Модель оптимізована (квантизація, TensorRT) - [ ] Confidence threshold налаштований - [ ] NMS параметри валідовані
Після деплою: - [ ] Латентність інференсу моніториться (p50, p99) - [ ] Розподіл confidence відстежується - [ ] False positive rate моніториться - [ ] Версіонування моделі
Інструменти
| Категорія | Інструменти |
|---|---|
| Навчання | Ultralytics, Detectron2, MMDetection |
| Розмітка | CVAT, Label Studio, Roboflow |
| Оптимізація | TensorRT, ONNX Runtime, OpenVINO |
| Edge деплой | TensorFlow Lite, CoreML, NCNN |
| Відео трекінг | DeepSORT, ByteTrack, SORT |
Пов'язані сторінки
- Індекс: ML Field Guide
- Класифікація зображень
- MLOps основи
Додаткове читання
Спробуйте наживо
Дослідіть пов'язану модель на практиці: відкрийте Object Detection Playground і змінюйте параметри під час роботи. Усе лишається у вашому браузері.
▶ Відкрити симуляцію Object Detection Playground