Вакансия: Специалист по компьютерному зрению (высоконагруженные системы видеоаналитики)
Описание вакансии
Требования:
- Опыт работы :
- 2+ года коммерческого опыта в разработке и оптимизации систем компьютерного зрения для обработки видеопотоков в реальном времени.
- Участие в проектах, связанных с высоконагруженными системами (более 1000 кадров/сек), включая декодирование/кодирование видео на GPU (NVENC, NVDEC, FFmpeg, GStreamer).
- Опыт оптимизации производительности ML-моделей: quantization, pruning, дистилляция, использование TensorRT, OpenVINO, ONNX Runtime.
- Технические навыки :
- Профильное знание Python и фреймворков: PyTorch , TensorFlow , OpenCV , Keras , Dask или Ray для распределенных задач.
- Глубокое понимание алгоритмов детекции (YOLO, Faster R-CNN), сегментации (Mask R-CNN, U-Net), трекинга (DeepSORT, SiamRPN), а также их метрик (mAP, IoU, MOTA).
- Опыт работы с GPU/TPU (CUDA, cuDNN), оптимизации инференса моделей под аппаратные ускорители.
- Знание инструментов для обработки видеопотоков: FFmpeg , GStreamer , RTSP , WebRTC .
- Уверенное владение Docker, Kubernetes, Airflow.
- Инфраструктура :
- Опыт настройки CI/CD (GitLab CI, GitHub Actions), мониторинга (Prometheus, Grafana) и логирования (ELK Stack).
- Знание баз данных для работы с большими данными: PostgreSQL, Redis, TimescaleDB.
- GitHub :
- Публичные проекты с примерами оптимизированного кода для задач реального времени, включая обработку видео и интеграцию с GPU.
Функциональные обязанности:
- Разработка и оптимизация ML-моделей и пайплайнов для анализа видеопотоков в реальном времени с учетом ограничений по latency (менее 50 мс/кадр).
- Интеграция алгоритмов детекции, сегментации и трекинга в высоконагруженные системы (микросервисная архитектура, распределенные вычисления).
- Работа с низкоуровневой оптимизацией:
- Декодирование видеопотоков на GPU.
- Асинхронная обработка кадров с использованием многопоточности (asyncio, Celery).
- Сокращение нагрузки на CPU/GPU за счет эффективного управления памятью и batch-обработки.
- Анализ и улучшение метрик качества моделей, A/B-тестирование алгоритмов.
- Проектирование отказоустойчивых конвейеров обработки данных с балансировкой нагрузки.
- Взаимодействие с DevOps для деплоя решений на облачных платформах (AWS, GCP, Azure) и edge-устройствах.
Ключевые задачи компьютерного зрения:
- Реализация алгоритмов для работы в условиях частичной потери данных (артефакты сжатия, низкое качество видео).
- Трекинг объектов в сценах с высокой плотностью (crowd detection) и динамическим фоном.
- Оптимизация пайплайна "frame capture preprocessing inference postprocessing" для минимизации задержек.
Навыки написания продакшн-кода:
- Умение писать код, готовый к масштабированию (чистые интерфейсы, модульность, кэширование).
- Знание принципов тестирования (unit, integration, нагрузочные тесты).
Soft Skills:
- Способность аргументировать выбор архитектурных решений (например, TorchScript vs ONNX).
- Опыт менторства junior-разработчиков.
- Умение работать в Agile/Scrum, декомпозировать задачи с учетом бизнес-требований.
Будет плюсом:
- Публикации или доклады на темы оптимизации ML-моделей.
- Знание C++ для написания высокопроизводительных модулей.
- Опыт работы с edge-устройствами (NVIDIA Jetson, Intel Movidius).
Условия:
- Работа над продуктами, обрабатывающими > 200 часов видео ежедневно.
- Внедрение решений, напрямую влияющих на ключевые метрики бизнеса.
- Удаленный формат работы с 09.00 до 18.00 по мск;
- Сильная команда, в которой есть возможность для реализации творческих идей и профессионального роста.