YOLOv8/v9 на GPU: детекция и трекинг в реальном времени
Задача страницы. Дать практический план, как запускать детекцию объектов на YOLOv8/v9 и строить реальный‑время трекинг на облачных GPU: архитектура онлайн/батч‑пайплайнов, профили VRAM, декод видео, настройки NMS/порогов, микробатчи, выбор трекера, наблюдаемость и экономика.
TL;DR
- Для онлайна (RTSP/веб‑видео): держите декод на GPU (NVDEC), детектор в FP16/INT8, трекер на CPU/GPU, p95‑латентность < 50–120 мс/кадр.
- Для батчей (архивы/каталоги): шардируйте вход, используйте микробатчи 8–64, храните промежуточные артефакты на NVMe, пулы interruptible.
- Стабильность трекинга дают: корректные NMS‑порог/IoU, трекер с ассоциацией по скору, калиброванные скорости/размеры объектов.
- Смежные разделы: CV‑хаб — https://cloudcompute.ru/solutions/computer-vision/, видео‑аналитика — https://cloudcompute.ru/solutions/computer-vision/video-analytics/, трекинг — https://cloudcompute.ru/solutions/computer-vision/tracking/, экспорт на edge — https://cloudcompute.ru/solutions/computer-vision/edge-export/, тюнинг — https://cloudcompute.ru/solutions/performance-tuning/, стоимость — https://cloudcompute.ru/solutions/cost-planner/, наблюдаемость — https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/.
Сценарии: онлайн vs батч
-
**Онлайн (realtime)
-
Источники: RTSP/RTMP/веб‑камеры, живые потоки.
-
Цели: p95 латентность/кадр, стабильный fps/поток, минимальные пропуски кадров.
-
Режим: on‑demand пулы, прогретые модели, NVDEC на входе, NVENC на выходе (при ретрансляции).
-
**Батч
-
Источники: архивы видео/изображений, ре‑индексация, переобработка датасетов.
-
Цели: imgs/sec, frames/sec, Cost_per_1000.
Режим: interruptible пулы, чанкование по кадрам/роликам. См. https://cloudcompute.ru/solutions/interruptible-patterns/.
Архитектура пайплайна
Онлайн‑контур (мультикамерная аналитика):
RTSP → GPU-декод → Препроц (resize/letterbox/normalize) → YOLOv8/v9 (FP16/INT8) → NMS
→ Трекер (ассоциация) → Бизнес-правила/алерты → (опц.) Overlay + NVENC → Вывод/шина
↘ Логи/метрики → Хранилище/дашборды
Детали по стримингу/RTSP: https://cloudcompute.ru/solutions/computer-vision/video-analytics/ Наблюдаемость и алерты: https://cloudcompute.ru/solutions/monitoring-logging/ • https://cloudcompute.ru/solutions/llm-inference/observability/
Батч‑контур (изображения/архивы):
Объектное хранилище → Шардирование → Микробатчи (8–64) → YOLOv8/v9 → NMS → Постпроц → Отчёт/экспорт
О хранении/кэше: https://cloudcompute.ru/solutions/storage-data/
Выбор модели и формата - Размер модели: nano/small/medium/large/x — компромисс latency ↔ mAP. Начинайте с small/medium для онлайн‑сцен.
-
Форматы инференса:
-
FP16 — баланс скорость/точность на современных GPU.
-
INT8 — максимум fps при калибровке (набор репрезентативных кадров); возможна деградация точности — тестируйте на своём домене.
-
ONNX/TensorRT — для сервинга и экспорта на edge: https://cloudcompute.ru/solutions/computer-vision/edge-export/
-
Тритон‑сервинг (ensemble с препроц/NMS) — https://cloudcompute.ru/solutions/triton-inference-server/
Профили GPU и VRAM
| **Профиль** | **Типовые задачи** | **Разрешение** | **Потоки** | **Примечания** |
| **24 ГБ** (Compact) | Детекция онлайн/батч, один детектор | 720p–1080p | 1–4 | FP16/INT8, NVDEC |
| **48 ГБ** (Balanced) | Мультикамеры, детектор + трекер + постпроц | 1080p | 4–8 | Микробатчи, тёплые веса |
| **80 ГБ** (HQ) | Высокая плотность, составные пайплайны | 1080p–4k | 8–16 | Несколько моделей/веток |
_Числа ориентировочные: итог зависит от трекера, постпроцесса, кадров/сек и бизнес‑логики. Подбор конфигурации — https://cloudcompute.ru/solutions/cost-planner/ и https://cloudcompute.ru/solutions/performance-tuning/.
Настройки препроц и NMS
- Resize/letterbox: сохраняйте пропорции; используйте одинаковый цвет «поля».
- Confidence threshold: старт 0.25–0.5 — подберите по trade‑off FPR/TPR в вашей задаче.
- IoU для NMS: 0.5–0.7; выше — риск пропусков рядом стоящих объектов, ниже — дубликаты.
- Agnostic‑NMS: уместен, если классов много и они конкурируют на одном месте.
- Калибровка: измеряйте p95 латентности и точность на ваших потоках; фиксируйте выбранные параметры в конфиге. Трекинг: выбор и параметры
Что делает трекер: сопоставляет детекции между кадрами → выдаёт ID‑последовательности. Важные параметры:
- score_threshold для кандидатов в трек;
- match‑iou/match‑distance и max_age (сколько кадров «жить» без детекции);
- kalman/velocity параметры — стабильность и плавность ID.
Практика:
- Для быстрых объектов увеличьте max_age и допускайте пропуски детекций.
- Для плотных сцен снижайте IoU‑порог в матчинге, чтобы минимизировать ID‑switch.
- Отдельная ветка для ReID‑фич полезна в мультикамерных системах (подробнее: https://cloudcompute.ru/solutions/computer-vision/tracking/).
Видео‑декод и конвейер GPU
- Держите NVDEC для декода на той же GPU, где инференс; используйте zero‑copy в препроц.
- Распараллеливайте decode → preprocess → infer → postprocess через очереди.
- При перегрузе включайте drop‑политику (например, «обрабатывать каждый N‑й кадр»), чтобы удержать SLA.
Детали — https://cloudcompute.ru/solutions/computer-vision/video-analytics/.
Микробатчи, параллелизм, аффинити
- Микробатчи 8–64 для изображений: окупают препроц и ускоряют NMS.
- Для видео — батчи по потокам или по кадрам времени; соблюдайте порядок вывода.
- Аффинити камера→GPU снижает кросс‑копии и джиттер.
Наблюдаемость, алерты, логи
Собирайте (см. https://cloudcompute.ru/solutions/monitoring-logging/ и https://cloudcompute.ru/solutions/llm-inference/observability/):
- Технические: fps/поток, p50/p95 latency, drop‑rate, queue_wait, GPU util/HBM, VRAM пик, NVDEC/NVENC ошибки.
- Качество: mAP@val, Precision/Recall на контрольной выборке, IDF1/MOTA для трекинга, доля ID‑switch.
- Алерты: падение fps, рост p95, всплеск drop‑rate, рост ID‑switch, OOM.
Экономика и sizing
Пусть C — число камер, fps — желаемые кадры/сек, t_inf — среднее время инференса на кадр, α — накладные (декод/препроц/пост), U — целевая загрузка GPU (например, 0.7).
GPU_needed ≈ (C × fps × t_inf × (1 + α)) / U
Cost_per_camera ≈ (GPU_hour_price × GPU_needed) / C
Для батча изображений:
Imgs_per_hour ≈ 3600 / (S × t_step)
Cost_per_1000 ≈ (GPU_hour_price × Num_GPU) / (Imgs_per_hour / 1000)
Оптимизацию и выбор режима (on‑demand vs interruptible) планируйте в https://cloudcompute.ru/solutions/cost-planner/ и https://cloudcompute.ru/solutions/interruptible-patterns/.
Конфигурация пайплайна (пример YAML)
pipeline: yolo-realtime
video:
input: rtsp://camera-01
decode: gpu # NVDEC
drop_policy: every_n # при перегрузе
drop_n: 2
preprocess:
size: 1280x736
letterbox: true
normalize: imagenet
model:
format: tensorrt
precision: fp16
variant: yolo_v8m
nms:
conf: 0.35
iou: 0.6
agnostic: false
tracker:
match_iou: 0.3
max_age: 30
min_hits: 3
score_threshold: 0.4
output:
overlay: false
events_bus: kafka://events/cv
metrics: prometheus://cv-yolo
limits:
max_fps: 25
max_latency_ms: 120
Оркестрация и сервинг
- Для API‑сервинга и многомодельных пайплайнов используйте ensemble‑графы в Тритоне: https://cloudcompute.ru/solutions/triton-inference-server/.
- Для простых HTTP‑эндпоинтов и демо — Gradio/FastAPI: https://cloudcompute.ru/solutions/gradio-fastapi/.
- CI/CD контейнеров, миграции моделей и health‑чеки — https://cloudcompute.ru/solutions/containers-ci-cd/.
Безопасность и данные
- Ограничивайте параметры (max_resolution, max_fps, классы), маскируйте PII в логах.
- Политики хранения потоков/архивов, управление ключами/токенами.
Подробнее — https://cloudcompute.ru/solutions/security/ и https://cloudcompute.ru/solutions/llm-inference/guardrails/.
Шаблоны cloudcompute.ru (готовые пресеты)
Хаб шаблонов — https://cloudcompute.ru/solutions/templates/
- “CV‑Realtime (RTSP, YOLO)” — GPU‑декод, инференс FP16/INT8, трекер, алерты/дашборды.
- “CV‑Batch (YOLO)” — шардирование архива, микробатчи, отчёты качества/стоимости.
- “Edge‑Export (YOLO)” — конверсия в ONNX/TensorRT, INT8‑квантизация, упаковка.
- “Triton‑Ensemble (YOLO)” — препроц→детект→NMS→постпроц в одном сервинге.
Чек‑лист перед продом
- Определены SLA: fps, p95 латентность, drop‑rate, целевые метрики качества (mAP, IDF1/MOTA).
- Выбраны модель/формат (FP16/INT8, ONNX/TensorRT) и профиль GPU (24/48/80 ГБ).
- Настроены препроц/resize/letterbox, пороги NMS и параметры трекера.
- Для онлайна — NVDEC/NVENC, аффинити камера→GPU, drop‑политика.
- Для батчей — шардирование, микробатчи, interruptible‑пулы, отчёты стоимости.
- Подключены метрики/алерты/трейсинг, логи событий/ошибок.
- Политики доступа/хранения потоков и маскирование PII активированы.
Навигация по разделу «Компьютерное зрение»
Хаб: https://cloudcompute.ru/solutions/computer-vision/ • Видео‑аналитика: https://cloudcompute.ru/solutions/computer-vision/video-analytics/ • Трекинг/ReID: https://cloudcompute.ru/solutions/computer-vision/tracking/ • OCR: https://cloudcompute.ru/solutions/computer-vision/ocr/ • 3D‑реконструкция: https://cloudcompute.ru/solutions/computer-vision/3d-reconstruction/ • DINOv2/эмбеддинги: https://cloudcompute.ru/solutions/computer-vision/dinov2/ • Гео/SAR: https://cloudcompute.ru/solutions/computer-vision/geospatial/ • Экспорт на edge: https://cloudcompute.ru/solutions/computer-vision/edge-export/ • Инфраструктура: https://cloudcompute.ru/solutions/performance-tuning/ • https://cloudcompute.ru/solutions/storage-data/ • https://cloudcompute.ru/solutions/monitoring-logging/ • https://cloudcompute.ru/solutions/llm-inference/observability/ • https://cloudcompute.ru/solutions/cost-planner/ • https://cloudcompute.ru/solutions/interruptible-patterns/ • Сервинг: https://cloudcompute.ru/solutions/triton-inference-server/ • CI/CD: https://cloudcompute.ru/solutions/containers-ci-cd/
Готовы запустить?
Запустить GPU-сервер