Розробка системи детекції об'єктів на зображеннях (Object Detection)

Розробка системи детекції об'єктів на зображеннях (Object Detection)

Напрямки AI-розробки

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1440
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1301
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    997
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1264
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    712
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    1002

Розробка системи детекції об'єктів на зображеннях (Object Detection)

Стикалися з тим, що готова модель детекції не справляється з вашими об'єктами? Ми розробляємо кастомні системи object detection під ключ: від збору датасету до деплою на edge-пристрої. За 5+ років ми реалізували проєкти для рітейлу, виробництва та безпеки. У цій статті розберемо, як обрати архітектуру, налаштувати fine-tuning та досягти real-time продуктивності. Типові завдання — підрахунок товарів на полиці, контроль браку на конвеєрі, розпізнавання автомобілів на парковці. Часто клієнти приходять із запитом «навчіть нейромережу знаходити дефекти» або «порахуйте кількість продуктів». Ми допомагаємо сформулювати ТЗ, підібрати оптимальну модель та впровадити рішення.

Як обрати детектор під задачу?

YOLOv8/YOLO11 — оптимальний вибір для більшості задач. Ultralytics-імплементація з гарною документацією, активною підтримкою, вбудованим експортом у TensorRT/ONNX. Для стандартних сценаріїв (1–20 класів, real-time) — це стартова точка.

RT-DETR (Real-Time Detection Transformer) — transformer-based детектор, краща якість при співставній швидкості з YOLOv8. Архітектура на основі DETR з прискоренням за рахунок query selection. Рекомендуємо, коли потрібен максимальний mAP і немає жорстких вимог до latency (74 FPS на T4).

Grounding DINO — open-vocabulary детекція: знаходить об'єкти за текстовим описом без донавчання. Корисний для прототипування та задач з рідкісними категоріями або частою зміною номенклатури. Не потрібно збирати датасет — достатньо сформулювати запит.

Модель [email protected] COCO FPS (T4) Параметри
YOLOv8n 52.9 320 3.2M
YOLOv8l 64.9 87 43.7M
YOLO11m 64.0 183 20.1M
RT-DETR-L 65.6 74 32M

Чому fine-tuning на кастомних даних критичний?

Попередньо навчені на COCO детектори вміють розпізнавати 80 класів. Якщо ваші об'єкти не входять у цей список — fine-tuning необхідний. Навіть якщо класи є, домен може відрізнятися (нічні кадри, специфічні ракурси), що знижує якість. Fine-tuning адаптує модель під вашу доменну область.

from ultralytics import YOLO model = YOLO('yolov8l.pt') results = model.train( data='dataset.yaml', epochs=100, imgsz=640, batch=16, optimizer='AdamW', lr0=0.001, lrf=0.01, weight_decay=0.0005, augment=True, degrees=10.0, mosaic=1.0, device=0 ) 

Структура dataset.yaml:

path: /data/myproject train: images/train val: images/val test: images/test nc: 5 names: ['cat', 'dog', 'car', 'person', 'bicycle'] 

Аугментація для детекції

Детекція потребує специфічної аугментації — трансформації мають коректно застосовуватися до bounding boxes:

  • Mosaic — склейка 4 зображень в одне, збільшує різноманіття контекстів
  • MixUp — змішування двох зображень з вагами
  • Copy-Paste — вирізання об'єктів і вставка в новий контекст
  • Random crop зі збереженням об'єктів у кадрі
  • Albumentations: HorizontalFlip, RandomBrightnessContrast, GaussNoise

Метрики та постобробка

  • [email protected] — mean Average Precision при IoU threshold 0.5
  • [email protected]:0.95 — більш суворий: середнє mAP при IoU від 0.5 до 0.95 з кроком 0.05
  • Precision / Recall при конкретному confidence threshold
  • FPS / latency — для real-time систем

Вибір confidence threshold: ROC-like крива precision-recall, вибір порогу залежно від допустимого балансу для конкретного застосування.

Non-Maximum Suppression видаляє дублюючі детекції. Параметри: IoU threshold (0.45–0.7), confidence threshold (0.25–0.5). Для щільно розташованих об'єктів застосовується Soft-NMS або Class-Agnostic NMS.

Деплой на цільовий пристрій

TensorRT engine для NVIDIA GPU: експорт з Ultralytics однією командою model.export(format='engine'). ONNX для CPU-деплою. Для Raspberry Pi / Jetson: YOLO11n в TFLite / ONNX Runtime.

Задача Термін
Детекція 1–5 класів, достатньо даних 1–3 тижні
Детекція 20+ класів, збір даних 4–7 тижнів
Детекція в складних умовах (ніч, туман) 6–10 тижнів

Типові помилки та як їх уникнути

  • Мало даних на один клас — призводить до низького recall. Рішення: зібрати мінімум 500 зображень на клас.
  • Перенавчання при надлишку порожніх кадрів. Рішення: балансувати порожні та з вмістом об'єктів зображення.
  • Неправильна аугментація: наприклад, обрізання, що прибирає об'єкт. Рішення: налаштовувати RandomCrop зі збереженням об'єкта.
  • Ігнорування постпроцесингу: NMS з високим порогом може видалити правильні детекції. Рішення: підбирати поріг на валідаційній вибірці.

Процес роботи над проєктом

  1. Аналіз задачі та збір вимог: які об'єкти, умови зйомки, вимоги по FPS.
  2. Збір та розмітка датасету: з використанням CVAT або Label Studio. Мінімум 1000 зображень.
  3. Вибір архітектури та навчання baseline. Ітеративне покращення з аугментацією та оптимізацією гіперпараметрів.
  4. Тестування на реальних даних: оцінка mAP, precision, recall, FPS.
  5. Деплой: експорт у TensorRT/ONNX/TFLite, інтеграція у вашу систему.
  6. Підтримка після впровадження: моніторинг якості, донавчання при появі нових класів.

Що входить у роботу

  • Технічна документація по архітектурі та інструкції з використання.
  • Навчання вашої команди роботі з моделлю.
  • Вихідний код та конфігурації навчання.
  • Доступ до сервера з навченою моделлю (опціонально).
  • Гарантія на результат: якщо через місяць якість падає, ми безкоштовно донавчаємо.

Зв'яжіться з нами, щоб обговорити ваш проєкт. Отримайте консультацію з вибору моделі та оцінки термінів — розкажемо, як швидко досягти потрібної якості детекції.