Разработчик компьютерного зрения (другие названия профессии: Computer Vision Developer/CV-разработчик, Computer vision engineer/CV-инженер) пишет алгоритмы, чтобы научить компьютер распознавать и анализировать изображения, извлекать из них нужную информацию – словом, воспринимать их так, как это делает человек. Профессия подходит тем, кто увлекается информационными технологиями, дружит с математикой и не боится учиться программировать.
Содержание
Краткое описание
Компьютерное зрение (CV) – одна из технологий, применяемых в системах искусственного интеллекта (ИИ). Кроме нее, есть еще NLP – обработка естественного языка, Data Science – анализ данных. В этих технологиях тоже используются методы ML – машинного обучения. Способность различать изображения компьютер получил благодаря Deep Learning (глубокому обучению) – виду машинного обучения, в котором для решения задач используются нейросети. Задача разработчика компьютерного зрения – научить нейросети извлекать смысл из изображений и видео, вычленять заданные фрагменты из визуальной информации (видео, фото, сканов) для дальнейшей обработки, реакций, выполнения сценариев.
Системы компьютерного зрения используются в разных сферах: медицине, биотехнологиях, обороне, спорте, торговле, транспорте, сельском хозяйстве, энергетике, ЖКХ, автомобилестроении, робототехнике, различных системах мониторинга, безопасности и СКУД (управления доступом, например по биометрии), робототехнике и т. д.
Некоторые из задач, которые выполняют продукты с CV:
- поиск изображений – распознавание картинки и отбор похожих в базе данных, (используется в поисковых системах);
- улучшение качества изображения – повышение четкости/резкости при увеличении размытой картинки, решение проблемы артефактов (дефектов при воспроизведении) видео, восстановление фрагментов;
- модерация визуального контента в соцсетях и торговых интернет-платформах для просмотра всего загружаемого массива и поиска тех картинок, которые не соответствуют заданным настройкам (для торговли: несоответствие товару, для соцсетей: насилие, обнажение, особенно если это изображения детей, агрессия);
- распознавание лиц – используется правоохранительными органами, системами разблокировки телефона и СКУД, банками для верификации клиентов и пр. (с 1 января 2024 года (по ФЗ № 572-ФЗ) для распознавания лиц компании обязаны подключиться к ЕБС (Единой биометрической системе). При этом для сбора данных надо предварительно получить согласие гражданина на размещение и обработку биометрических персональных данных в ЕБС);
- навигация беспилотного транспорта – автомобили или дроны с помощью компьютерного зрения распознают препятствия на своем пути, строят безопасный маршрут.
Профессия разработчика компьютерного зрения находится на пороге значительных изменений и роста. С каждым годом увеличивается количество приложений и технологий, использующих алгоритмы компьютерного зрения, от автономных транспортных средств до медицинской диагностики. Это открывает новые возможности для специалистов в этой области, что делает профессию крайне востребованной.
Ожидается, что в будущем разработчики компьютерного зрения будут работать с мощными инструментами и платформами, которые значительно упростят процесс создания и внедрения решений. Совершенствование алгоритмов машинного обучения и рост вычислительных мощностей позволят разработчикам создавать более сложные и эффективные системы, способные решать широкий спектр задач в различных отраслях, таких как безопасность, сельское хозяйство, образование и другие.
Однако с развитием технологий также возникают новые вызовы, включая необходимость соблюдения этических норм и защиты личных данных. Специалисты в области компьютерного зрения должны будут учитывать и эти аспекты своей работы, что, в свою очередь, создаст дополнительные требования к их навыкам. Таким образом, профессия разработчика компьютерного зрения будет постоянно эволюционировать, требуя от специалистов личностного и профессионального роста.
Особенности профессии
Функции разработчиков компьютерного зрения (зависят от уровня профессионализма – грейда (junior, middle, senior), чем он выше, тем сложнее задачи):
- разработка, тестирование, отладка, развертывание и обслуживание алгоритмов и оборудования компьютерного зрения для различных задач и сред;
- разработка алгоритмов автоматизированного машинного зрения (сегментация, классификация, генерация изображений, распознавание лиц или действия, перенос стиля), преимущественно для робототехники и работы с автономными аппаратными системами;
- создание техдокументации для систем компьютерного зрения, в качестве мануалов для конечных пользователей;
- управление проектами компьютерного зрения, включающее определение требований к ним, разработку бюджета, координацию группами технических разработок;
- мониторинг последних исследований и технологических достижений для применения их в своей работе.
Примеры рабочих задач CV-инженеров:
- Разработка алгоритмов обработки для анализа картинки – распознавания объектов, детектирования лиц и движения, обнаружения различных атрибутов изображений.
- Разработка ML-моделей для распознавания и классификации объектов на картинках с применением сверточных нейронных сетей (CNN), тренировка этих моделей на большом количестве размеченных данных.
- Создание своих алгоритмов и моделей под конкретные задачи на базе библиотек и инструментов компьютерного зрения (OpenCV, TensorFlow, PyTorch и др.).
- Тестирование работоспособности (unit-тестирование), оптимизация систем компьютерного зрения для точной и эффективной работы, включающую оценку точности и скорости алгоритмов, улучшение и оптимизацию существующих моделей, повышение производительности.
- Интеграция компьютерного зрения в приложения и системы, требующая сотрудничества с другими разработчиками и включающая создание API, разработку пользовательского интерфейса, работу с облачными сервисами.
Разработчики компьютерного зрения часто сталкиваются с задачами, которые требуют не только технических знаний, но и креативного подхода. Например, иногда они используют данные, собранные из неожиданных источников, таких как изображения старинных произведений искусства, чтобы обучать модели распознавания объектов.
Интересный факт: в 2020 году команда исследователей из MIT разработала алгоритм, способный «видеть» за пределами видимого спектра, используя инфракрасные и ультрафиолетовые данные. Это открытие позволило улучшить системы компьютерного зрения для использования в медицинской диагностики и наблюдения за окружающей средой.
Плюсы и минусы профессии
Плюсы:
- работа в быстроразвивающейся, перспективной сфере;
- востребованность;
- высокая оплата труда;
- есть карьерные перспективы;
- возможность работы онлайн и на несколько компаний.
Существует множество заблуждений относительно профессии разработчика компьютерного зрения, которые могут вводить в заблуждение новичков в этой области. Первое из них заключается в распространенном мнении, что разработчик компьютерного зрения должен обладать исключительно глубокими знаниями в области математики и теории машинного обучения. На самом деле, хотя эти знания важны, успех в профессии также значительно зависит от навыков программирования, понимания задач и умения работать с данными.
Еще одно неверное предположение заключается в том, что работа разработчика компьютерного зрения подразумевает исключительно разработку сложных алгоритмов и моделей. На практике, большая часть работы может быть связана с предобработкой данных, их очисткой и аннотацией, что требует не менее времени и усилий. Поэтому знание инструментов для работы с данными имеет огромное значение.
Некоторые считают, что профессия разработчика компьютерного зрения предполагает только работу с изображениями. Однако область применения компьютерного зрения охватывает не только статичные изображения, но и видеопотоки, 3D-данные, а также задачи, связанные с реальным временем, такие как обработка изображений с помощью видеокамер.
Еще одним заблуждением является мнение о том, что разработчик компьютерного зрения должен знать все существующие технологии и библиотеки в этой области. Хотя знание различных технологий может быть полезным, важно понимать, что в большинстве случаев достаточно владеть несколькими популярными библиотеками, такими как OpenCV, TensorFlow или PyTorch, для успешного выполнения большинства задач.
Наконец, существует мнение, что разработчик компьютерного зрения должен работать исключительно в крупных IT-компаниях. На самом деле, специалисты в этой области востребованы в самых разных сферах, включая медицину, автомобильную промышленность, безопасность и многие другие. Малые и средние предприятия, стартапы и научные исследовательские группы также активно ищут разработчиков компьютерного зрения, открывая тем самым широкий спектр возможностей для трудоустройства.
Важные качества
CV-разработчику нужны:
- аналитический, математический склад ума;
- развитое системное и логическое мышление;
- интеллектуальная гибкость;
- креативность;
- организованность;
- ответственность;
- нацеленность на результат.
Кроме того, разработчику систем компьютерного зрения не помешают способность к грамотной презентации продукта и умение работать в команде.
Минусы:
- высокое умственное напряжение;
- график может быть ненормированным, перед сдачей проекта возможны «авралы»;
- сидячая работа, нагрузка на зрение;
- необходимость постоянно изучать новые подходы, методы, технологии (для тех, кто стремится к профессиональному развитию, это, наоборот, плюс);
- нужно очень хорошо знать английский (тоже скорее достоинство, чем недостаток).
Где учиться на разработчика компьютерного зрения
CV-инженер – это специалист по одной из технологий машинного обучения, соответственно, базовое образование должно быть связано с ML и AI (ИИ). Для старта карьеры желательно получить степень бакалавра, примеры вузовских направлений подготовки и профилей:
- «Прикладная математика и информатика», 01.03.02:
- «Прикладное машинное обучение»;
- «Прикладной анализ данных и ИИ»;
- «Анализ данных и интеллектуальные системы».
- «Математика и компьютерные науки», 02.03.01:
- «Системы ИИ и суперкомпьютерные технологии».
- «Информатика и вычислительная техника», 09.03.01:
- «ИИ и машинное обучение».
- «Информационные системы и технологии», 09.03.02:
- «ИИ и программирование»;
- «Интеллектуальные системы и машинное обучение».
- «Прикладная информатика», 09.03.03:
- «Системы ИИ».
- «Радиотехника», 11.03.01:
- «Системы компьютерного зрения».
Специальности в магистратуре:
- «Прикладная математика и информатика», 01.04.02:
- «Компьютерное зрение, графика и обработка изображений».
- «Прикладная математика», 01.04.04:
- «Цифровая обработка сигналов и изображений».
- «Фундаментальная информатика и ИТ», 02.04.02:
- «Машинное обучение и компьютерное зрение».
Для поступления нужны ЕГЭ преимущественно по математике, русскому, информатике и ИКТ, иностранному. Как вариант, вместо информатики – физика.
Лучшие университеты для разработчика компьютерного зрения
Топ-10 вузов для CV-разработчиков по версии RAEX (общая группа «ИТ»):
- МГУ им. Ломоносова.
- МФТИ.
- Университет ИТМО.
- НИУ «ВШЭ».
- СПбГУ.
- СПбПУ Петра Великого.
- МГТУ им. Баумана.
- УрФУ им. Ельцина.
- НИЯУ МИФИ.
- МАИ.
Что касается именно ИИ, то лидерами в этой сфере можно назвать «Вышку», МФТИ и ИТМО. На базе Физтеха создан Центр компетенций НТИ «Искусственный интеллект». Его аналитики провели исследование рынка продуктов на основе ИИ, среди его результатов вывод: кадровый голод на рынке ИИ сохраняется, а решать ключевые задачи в сфере искусственного интеллекта по плечу выпускникам вузов, получившим навыки работы с машинным обучением. В числе «фаворитов» выпускники шести университетов: ВШЭ, Физтеха (МФТИ), Сколтеха, ИТМО, МГУ, СПбГУ.
Место работы
Большинство предприятий и организаций, использующих продукты на базе компьютерного зрения, не разрабатывают их силами своего штата, а пользуются решениями, которые предлагают специализированные компании. Искать работу нужно именно в них, несколько примеров российских компаний-разработчиков CV:
- «Системы компьютерного зрения», Санкт-Петербург;
- «ЭЛВИС-НеоТек», Москва;
- Яндекс, сервис Yandex Vision;
- Mail.ru Group;
- «Контент ИИ» (ранее – ABBYY Россия), Москва;
- ГосНИИАС, Москва.
Кроме этого, можно устроится на работу дистанционно в иностранные компании.
Оплата труда
Больше половины открытых вакансий для разработчика компьютерного зрения в России приходится на Москву, у Питера – второе место.
Московские предложения в зависимости от уровня профессионализма, стека, которым владеет кандидат:
- Junior – от 100 тыс. руб.
- Junior+/Middle – 130–250 тыс. руб.
- Middle – 200–285 тыс. руб.
- Python-разработчик CV, специалист по Data Sciense, ML и CV – 200–300 тыс. руб.
- руководитель группы разработки (WMS) – 207–400 тыс. руб.
Карьера
Карьера, заработок и перспективы CV-разработчика прогрессируют по мере накопления опыта, знаний, умений. Из небольших стартапов можно перейти в крупные компании – вакансий пока больше, чем специалистов высокого уровня квалификации.
Профессиональные знания
Разработчику компьютерного зрения требуются знания:
- матанализа, линейной алгебры, статистики;
- языков C++, Python (чаще всего), Java (реже);
- библиотек и инструментов ML – PyTorch, OpenCV, Caffe, Catboost, MatLab, Point Cloud Library, NumPy, Matplotlib, TensorFlow, Scikit-learn, SciPy; нейросетевых моделей – ResNet, HRNet, Swin, DaViT и пр.;
- принципов работы с GIT;
- структур баз данных.
Могут понадобиться хотя бы поверхностные знания в области, для которой создается CV-приложение (медицина, маркетинг, видеонаблюдение, электронная торговля и др.).
Вопросы по теме
Как компьютерное зрение меняет подход к обучению и развитию навыков разработчиков?
Компьютерное зрение создает новый набор требований и возможностей для разработчиков, что приводит к необходимости освоения междисциплинарных навыков. Теперь разработчикам нужно не только знать алгоритмы машинного обучения, но и разбираться в математике, статистике и даже в основах нейробиологии. Это повлияло и на образовательные программы, которые стремятся интегрировать проектные работы и практические задачи, включающие реальные задачи по анализу изображений и видео. Такой подход помогает развить критическое мышление, а также навыки работы в команде, поскольку многие задачи требуют многопрофильной экспертизы.
Каковы перспективы профессии разработчика компьютерного зрения в ближайшие 5-10 лет?
Перспективы профессии разработчика компьютерного зрения выглядят весьма оптимистично. С ростом применения технологий в различных отраслях, таких как медицина, транспорт, безопасность и развлечения, потребность в специалистах этой области будет только расти. Ожидается увеличение количества стартапов и крупных компаний, инвестирующих в решения на основе компьютерного зрения, что приведет к созданию новых рабочих мест. Кроме того, с развитием технологий, таких как 5G, ИИ и облачные вычисления, станет возможным реализовывать более сложные и эффективные системы, открывая новые горизонты для программного обеспечения и автоматизации процессов.
Какие нестандартные задачи могут стоять перед разработчиком компьютерного зрения в будущем?
Разработчики компьютерного зрения в будущем могут столкнуться с рядом нестандартных задач, требующих креативного подхода. Например, они могут заниматься разработкой систем, которые смогут воспринимать и интерпретировать эмоции людей в реальном времени на основе анализа изображений. Другой интересной задачей может быть внедрение компьютерного зрения в системы автономного управления для предотвращения не только аварий, но и конфликтов в социальном взаимодействии. Также стоит упомянуть о необходимости создания технологий, способствующих улучшению качества жизни людей с ограничениями, разрабатывая устройства, помогающие им взаимодействовать с окружающей средой через визуальные сигналы и аналитику. Таким образом, область предлагает не только технические, но и социальные вызовы, требующие комплексного подхода к решению.