Розробка системи детекції об'єктів на відео в реальному часі

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка системи детекції об'єктів на відео в реальному часі
Середній
від 1 тижня до 3 місяців
Часті запитання

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

Етапи розробки AI-рішення

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

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

Розробка системи детекції об'єктів на відео в реальному часі

Детекція об'єктів на відео в реальному часі — завдання з жорсткими вимогами до latency. Поріг "реального часу": для систем відеоспостереження — 25+ FPS, для робототехніки — 30+ FPS з latency < 33ms. Продуктивність залежить від трьох факторів: архітектури моделі, апаратного прискорювача та ефективності inference pipeline.

Архітектура системи

Camera → Frame Capture → Preprocessing → Inference → Postprocessing → Output
                ↓                              ↓
        Frame Skipping              TensorRT/ONNX Runtime
        Resize/Normalize            GPU batching

Для RTSP/IP-камер використовуємо GStreamer або FFmpeg для захоплення потоку з апаратним декодуванням (NVDEC на NVIDIA):

import cv2

# Hardware-accelerated RTSP capture
cap = cv2.VideoCapture(
    'rtsp://camera_ip/stream?'
    'pipeline='
    'rtspsrc location=rtsp://camera_ip/stream !'
    'rtph264depay ! h264parse ! nvh264dec !'  # NVDEC
    'videoconvert ! appsink',
    cv2.CAP_GSTREAMER
)

Оптимізація моделі для real-time

TensorRT оптимізація дає 2–5x прискорення проти PyTorch:

from ultralytics import YOLO

model = YOLO('yolov8n.pt')
# Експорт у TensorRT FP16
model.export(
    format='engine',
    half=True,      # FP16 precision
    batch=1,        # або batch=4 для batching
    device=0,
    workspace=4     # GB для оптимізації
)

YOLOv8n з TensorRT FP16 на T4: 280+ FPS при розрішенні 640×640.

Frame skipping — детектуємо не кожен кадр. При 30 FPS відео детекція на кожному 3-му кадрі (10 детекцій/сек) + трекинг для проміжних кадрів. Сприйнята якість зберігається.

Dynamic batching — групуємо кадри з кількох камер у батч для одного GPU-проходу:

class MultiCameraInference:
    def __init__(self, model_path, num_cameras=8):
        self.model = load_trt_model(model_path)
        self.batch_size = num_cameras

    def process_batch(self, frames: list[np.ndarray]) -> list[list]:
        # Preprocessing batch
        batch = preprocess_batch(frames)  # [N, 3, H, W]
        # Single GPU inference для всіх камер
        results = self.model.infer(batch)
        return postprocess_batch(results)

Багатокамерні системи

Для моніторингу з 8–32 камерами: один A100/H100 GPU обробляє до 32 потоків 1080p@30fps з YOLOv8n. Архітектура: спільний inference server (Triton) + окремі процеси захоплення для кожної камери.

Пропускна здатність:

  • NVIDIA T4 (16GB): 8–12 камер 1080p з YOLOv8m
  • NVIDIA A100: 24–32 камери 1080p з YOLOv8l

Оптимізація latency

Pipeline latency = capture + decode + preprocess + inference + postprocess + display

Етап Типовий час Оптимізований
Захист кадра 5 ms 2 ms (NVDEC)
Препроцесінг 8 ms 1 ms (GPU preproc)
YOLOv8n інференс 12 ms 4 ms (TRT FP16)
Постпроцесінг + NMS 5 ms 2 ms
Всього 30 ms 9 ms

Розгортання та моніторинг

Docker-контейнер з CUDA 12.x + TensorRT. Метрики: FPS per camera, inference latency, GPU utilization, detection count per class per minute. Alerting через Prometheus + Grafana.

Масштаб системи Хронологія
1–4 камери, базова детекція 2–3 тижні
8–32 камери, користувацькі класи 4–7 тижнів
50+ камер, розподілена архітектура 8–14 тижнів