Обязанности:
О проекте: Есть дашборд (FastAPI + Leaflet.js). Нужно внедрить модуль визуальной локализации , который будет определять нахождение по видеопотоку, сопоставляя его с эталонными записями. Стек и железо: Python 3.10+, FastAPI, SQLite. Клиент на чистом JS + Leaflet. Работа на RTX 5050 Ti (Mobile). Что нужно реализовать: Индексация местности: Скрипт для извлечения дескрипторов из 2-3 эталонных видео (рекомендуемый стек: LightGlue / SuperPoint). Данные храним в SQLite. Обработка трансляции: Захват живого потока (RTSP/UDP) с аппаратным декодированием (NVDEC). Реализация zero-latency buffer (обработка только последнего пришедшего кадра). VPR Matching: Сопоставление текущего кадра с базой в реальном времени. Расчет нахождения (Lat/Lng) через гомографию и RANSAC с учетом перспективных искажений камеры. Интеграция и Demo: * Создать эндпоинт в FastAPI для приема кадров и выдачи нахождения. Реализовать передачу данных на фронтенд через websockets. База знаний: Видеозаписи местности (2-3 штуки) с уже известными координатами. Это наш эталон Живой поток: Видео из окна браузера или с камеры в реальном времени. Это то, что мы сейчас видим Ноутбук с видеокартой RTX 5050 Ti, которая должна всё это быстро считать. Что должно быть на выходе Результат: Точка на карте: ИИ должен понять, где сейчас летит дрон, и прислать координаты (широту и долготу). Индикатор уверенности: Процент (от 0 до 100), насколько ИИ уверен, что узнал местность. По факту уже база есть но реализовано не так. Доработка системы визуальной локализации (VLOC) переход от Retrieval к Pose Estimation. Real-time Video-to-Map Overlay: * Реализовать вычисление матрицы трансформации для видеопотока в карту Leaflet. Orthorectification: Преобразование перспективного изображения с камеры (наклонный вид) в ортофотоплан (вид строго сверху) в реальном времени. Dynamic Bounding Box: Расчет точных GPS-координат четырех углов каждого кадра. Эти данные должны передаваться на фронтенд для динамической деформации видео-контейнера. Что уже реализовано (Инфраструктура): Проект упакован и готов к работе, вам не нужно писать обвязку с нуля: Стек: Python 3.10+, FastAPI, Docker. Pipeline: Реализован захват кадра (WebSocket/RTSP), буферизация (Zero-latency) и передача результата на фронтенд (Leaflet.js). Хранение: SQLite хранит ключевые кадры эталонного видео и их GPS-координаты. Индексация работает. AI Стек: В проект уже заведены SuperPoint и LightGlue, развернуты на CUDA. В чем проблема текущего кода: Текущая реализация работает как Visual Place Recognition. Она использует ResNet18 для поиска ближайшего кадра в базе и просто копирует его координаты. Из-за этого при отклонении дрона от маршрута координаты не меняются, а Pose Estimation отсутствует. Что нужно сделать (Core Task): Необходимо переписать модуль локализации localizer.py, внедрив реальную геометрию: Pose Estimation: Использовать соответствия от LightGlue для вычисления матрицы гомографии или решения задачи PnP Metric Offset: Система должна вычислять вектор смещения текущего кадра относительно эталонного в метрах и корректировать GPS-координаты. RANSAC: Обеспечить жесткую геометрическую фильтрацию выбросов, чтобы исключить прыжки маркера на полях/лесах. Синхронизация: Привязать расчет к PTS видеопотока, чтобы исключить временной лаг между картинкой и точкой на карте. Итог: Инфраструктура (API/DB/Frontend) остается, вы меняете только мозг алгоритм расчета координат. Инфраструктура (FastAPI, Leaflet, передача между вкладками) в проекте уже есть, на это время тратить не нужно. Главная проблема сейчас в модуле локализации. Нам не нужно просто сравнение или поиск похожего кадра. Нам нужно вычисление метрического смещения Требования к разработчику (Senior CV Engineer) Опыт и специализация: Уровень: Senior (от 5 лет в Computer Vision). Профиль: Visual SLAM, Visual Localization, Pose Estimation. Отраслевой опыт: Навигация дронов, робототехника или автономный транспорт. Технические навыки : Геометрия: 6DoF Pose Estimation, PnP (Perspective-n-Point), Homography, RANSAC. Feature Matching: Глубокое понимание SuperPoint + LightGlue (интеграция и оптимизация). OpenCV: Экспертное владение модулем calib3d и features2d. Оптимизация: TensorRT или ONNX Runtime (обязательно для работы в real-time на мобильных GPU). Backend: Python (FastAPI), AsyncIO, FFmpeg (аппаратное декодирование NVDEC). Ключевые компетенции: Умение вычислять Metric Offset на основе визуальных матчей. Опыт работы с Zero-latency видеопотоками (RTSP/UDP). Математическая коррекция GPS-координат через матричные преобразования. Projective Geometry: Глубокое понимание перспективных преобразований, гомографии и матриц проекции. Web-GIS Visualization: Опыт работы с наложением динамических растров на векторные карты. Понимание того, как передать параметры трансформации на клиент (через CSS matrix3d или отрисовку в Canvas). Temporal Smoothing: Умение сглаживать координаты углов видео (через фильтр Калмана или экспоненциальное среднее), чтобы поток не дрожал при шумах аналогового сигнала. Проект MVP и рассчитан на локальный запуск и пару потоков.Похожие вакансии
Договорная
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
МИЛТИ
От 150 000 до 250 000 руб.
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
МФТИ
Договорная
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
АрТуСи Технологии
От 125 000 до 150 000 руб.
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
Ineru Lab
Computer Vision & Robotics Engineer
От 250 000 руб.
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
Рекрутинговое агентство The One
MLOps Engineer (Computer Vision)
Договорная
Москва. Станции метро: Площадь Революции, Театральная, Охотный ряд, Библиотека им.Ленина
РУСАЛ