О проекте:
Разрабатываем новую систему видеоанализа в реальном времени «с чистого листа».
Заменяем существующее решение, создавая технологический стэк под собственные задачи. В основе — IP-камеры, нейросетевые модели, алгоритмы компьютерного зрения и допплеровские радары для прецизионного измерения скорости.
Сейчас мы на самой интересной стадии — R&D.
Мы создаём прототип (PoC) и формируем архитектуру ядра системы. Вас ждёт глубокое погружение в предметную область, работа с «сырыми» данными оборудования, быстрые эксперименты и итеративная разработка ключевых алгоритмов. Наша цель — проверить гипотезы, получить первые работающие результаты и заложить основу для будущего production-решения.
Что предстоит делать:
- Разработка C++ приложения под ОС Linux;
- Разбираться в технических задачах: разбор протоколов радаров, SDK камер, исследование алгоритмов трекинга, детекции, гомографии;
- Участие в принятии технических решений: выбор библиотек, написание модулей, оптимизация пайплайна;
- Интеграция выгрузки данных с внешними системами через SOAP/JSON API;
- Написание клиент-серверных приложений;
- Исследование и внедрение решений для инженерных задач (калибровка, синхронизация);
- Участие в проектировании и code review и готовность помогать коллегам.
Технологический стек:
C++17/20, Linux, CMake, GCC/Clang, QT, ImGui, FFmpeg (libavcodec), OpenCV, многопоточность, сетевые сокеты (UDP/TCP/RTSP), PostgreSQL, gSOAP, JSON, Docker, Git.
Требования:
- Production-опыт разработки на C++ 17/20;
- Опыт сборки и кросс-компиляции с CMake, Conan/vcpkg;
- Глубокое понимание многопоточности и управление памятью;
- Опыт анализа и интеграции сторонних SDK от производителей камер;
- Понимание и опыт работы с сетями: RTSP, UDP/TCP, сокеты, отладка сетевых проблем;
- Опыт применения библиотеки OpenCV и интеграцией в систему с готовыми моделями ONNX,YOLO (детекция, трекинг, работа с матрицами, калибровка);
- Опыт работы с FFMPEG или GStreamer;
- Опыт работы с базой данных PostgreSQL, SQLite (DDL, DML);
- Опыт профилирования приложений и нахождения узких мест bottleneck;
- Опыт написания клиентов для веб-сервисов (JSON, SOAP);
- Практический опыт разработки под ОС Linux;
- Умение работать в терминале (bash, ssh, systemctl, journalctl, cron);
- Понимание, что такое Docker и зачем он нужен.
Будет плюсом:
- Написание UI на QT, ImGui;
- Опыт работы с калибровкой камеры и задачами гомографии;
- Знание алгоритмов трекинга объектов (SORT, DeepSORT);
- Опыт с синхронизацией данных (NTP, PTP, временные метки);
- Знание Python для прототипирования решений.