Разработка системы детекции объектов на видео в реальном времени

Проектируем и внедряем системы искусственного интеллекта: от прототипа до production-ready решения. Наша команда объединяет экспертизу в машинном обучении, дата-инжиниринге и MLOps, чтобы AI работал не в лаборатории, а в реальном бизнесе.
Показано 1 из 1 услугВсе 1566 услуг
Разработка системы детекции объектов на видео в реальном времени
Средняя
от 1 недели до 3 месяцев
Часто задаваемые вопросы
Направления AI-разработки
Этапы разработки AI-решения
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1218
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1161
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    853
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1047
  • image_logo-advance_0.png
    Разработка логотипа компании B2B Advance
    561
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    825

Разработка системы детекции объектов на видео в реальном времени

Детекция на видео в реальном времени — задача с жёсткими требованиями к 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 for optimization
)

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. Архитектура: shared 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 недель