Инженер-программист компьютерного зрения БПЛА
Дело техникиЕкатеринбургУдалённоот 3 лет5/2Полная занятость
PythonGitC#C++MLPyTorchEmbeddedCVNEONYOLOEdgeUltralytics YOLO
Описание
Компания УДЗ ищет Инженера-программиста компьютерного зрения для команды разработки ПО для управления БПЛА в автоматическом режиме, использования передовых технологий в области распознавания объектов, математических моделей для расчета их расположений в пространстве, категоризации, идентификации и трекинга.
Обязанности
- Разработка, внедрение и тестирование программных решений, в основном с использованием языков программирования C++ и Python для навигации и управления БПЛА
- Разработка алгоритмов распознавания и отслеживания объектов для анализа видеоданных с целью принятия автономных решений
- Разработка и оптимизация CV-пайплайнов: детекция, трекинг, визуальная навигация
- Развёртывание пайплайнов на встроенных системах с ограниченными ресурсами, оптимизация под конкретное железо
- Профилирование и устранение узких мест в C++ и Python коде
- Доводка метрик качества на реальных данных
- Интеграция ML\CV-модулей в общую систему совместно с командой
- Калибровка камер и работа с видеопотоком на системном уровне
- Обучение, дообучение и тестирование нейросетевых моделей компьютерного зрения, в том числе YOLO
- Оценка качества моделей: precision, recall, mAP, анализ ошибок распознавания
- Оптимизация работы моделей по скорости и точности
- Вывод нейросетевых моделей в продакшн на целевом железе (CPU/GPU/NPU)
- Участие в постановке задач, оценка применимости подходов под ограничения платформы
- Работа с данными для разметки
- Создание синтетических данных и работа с ними
- Понимание принципов обучения моделей
Требования
- Высшее профильное образование
- 3 года опыта разработки программного обеспечения, с акцентом на программирование на C++ и Python
- Подтвержденный опыт разработки программного обеспечения для платформ БПЛА, таких как Pixhawk, ArduPilot, INAV и Betaflight
- Опыт работы с теорией управления и алгоритмами применительно к БПЛА
- Классическое CV: опыт построения и оптимизации пайплайнов детекции, трекинга, визуальной навигации
- Доводка метрик качества на реальных данных
- Embedded/Edge: развёртывание CV-пайплайнов на встроенных системах с ограниченными ресурсами, оптимизация производительности под них
- C++: высокопроизводительный код, векторизация (NEON/SIMD), многопоточность (OpenMP, thread pools), опыт профилирования
- Python: многопоточный код, не упирающийся в GIL; ускорение узких мест через нативные модули (pybind/ctypes) или JIT (numba)
- Практический опыт обучения или дообучения моделей YOLO
- Опыт работы с PyTorch или Ultralytics YOLO
- Понимание процесса подготовки данных для обучения нейросетей
- Опыт работы с изображениями, видеофайлами и видеопотоками
- Понимание метрик качества моделей компьютерного зрения
- Опыт работы с Git
Будет плюсом
- Обучение и вывод в продакшн нейросетевых моделей (ONNX)
- RKNN-Toolkit, запуск моделей на NPU
- OpenCL и выгрузка вычислений на GPU
- Знание устройства камеры: pinhole-модель, модели дисторсии, практический опыт калибровки
- Системная работа с видео: zero-copy, GStreamer, MIPI, DMA-буферы
- Знание математики и геометрии CV (линейная алгебра, теория вероятности, мат. статистика, эпиполярной геометрии)
- Знание робототехники и навигации (фильтры Калмана, sensor fusion, VIO/SLAM, GPS-denied environments)
- Знание оценок качества моделей ML/CV метрики (trade-off Precision/Recall, mAP, MOTA, IDF1)
Условия
- Трудоустройство по ТК РФ
- Стабильная "белая" заработная плата
- График 5/2 с 9:00 до 18:00
- Доставка до места работы на служебном транспорте (район Кольцово). Работа в Екатеринбурге
- Корпоративное питание
- Конкурентная заработная плата
- Интересные проекты и работа с передовыми технологиями
- Современное оборудование, любое аппаратное обеспечение для эффективного выполнения задач
- Возможности для саморазвития: тренинги, конференции, обучение
- Окончательный уровень ЗП определяется по результатам технического собеседования в соответствии с опытом, знаниями и навыками кандидата
Процесс отбора
- Откликнуться
- Окончательный уровень ЗП определяется по результатам технического собеседования