Кто такой Computer Vision Engineer? Отвечает DigitalHR

Добавлено: 09/10/2018
13910

Возможные названия вакансии: Computer Vision Engineer/Инженер-разработчик систем компьютерного зрения/Инженер алгоритмов компьютерного зрения/Разработчик компьютерного зрения/Computer Vision Developer

 

 

 

Computer vision — это совокупность технологий, методов и алгоритмов, с помощью которых компьютер может обрабатывать изображения и видео-поток, например, из видеокамер, сканеров, трехмерных данных и так далее. Использование компьютерного зрения позволяет определять, что изображено, классифицировать эти изображения и анализировать их. Такие методы применяются в разных областях: в медицине для постановки диагноза и детекции опухолей на снимках пациентов, для навигации в беспилотных машинах, для распознавания лица и наложения фильтров, как в Instagram и Snapchat и многих других.

Компьютерное зрение часто называют еще «машинным зрением», однако это не совсем правильно: компьютерное зрение — это общее название технологий и области знаний, тогда как машинное зрение представляет собой конкретную сферу применения. Область computer vision также тесно связана с машинным обучением, о котором вы можете прочитать в нашей заметке.

Разработчики компьютерного зрения чаще всего используют Python или С++, а также специализированные библиотеки: OpenCV, Scikit-learn, SciPy, NumPy, Matplotlib, Tensorflow, Caffe, Catboost и другие. При этом, особое значение для разработчика имеет знание математики и алгоритмов, а также безотрывное погружение в тему. Для успешной работы такому специалисту всегда нужно находиться на передовице технологий и быть в курсе современных алгоритмов и разработок.

Последнее время рынок вакансий в области машинного обучения, в частности компьютерного зрения в Москве невероятно горяч. Постоянно рождаются новые проекты, международные компании открывают новые офисы, развиваются соответствующие учебные программы в ведущих технических вузах — на ловца и зверь бежит. По моему опыту, большинство специалистов в области машинного обучения первое образование получали по другому профилю, а потом, заинтересовавшись, добирали необходимые знания. Благодаря ШАД, Coursera, Kaggle, OpenDataScience стало возможным (и даже нормой) получать необходимые навыки самому.

Как найти кандидата, если он, возможно, даже в профильном университете не учился? Да все там же — ШАД, Coursera, Kaggle, OpenDataScience. Или в тематических пабликах, форумах, Slack/Telegram. На мой взгляд, Slack ODS* наиболее полно отражает рынок вакансий в области Machine Learning. Но если вы рекрутер по профессии, ведите себя аккуратно, бан прилетит мгновенно. Лучше писать интересующим кандидатам сразу в личку, соблюдая вежливость и сразу подробно описывая условия.

Если вы нашли кандидата с ключевыми словами в резюме — Machine Learning/Deep Learning/Computer Vision — как теперь понять, что он справится с задачами? Первое — математический бэкграунд. В Machine Learning и компьютерном зрении он не сложен, но линейная алгебра, математический анализ необходимы. Если кандидат с Физтеха/Вышки/etc — это гарантировано, если вам попался самоучка — имейте под рукой пару несложных задач, которые можно решить без бумажки и ручки. От простых можно перейти к сложным понятиям из Deep Learning, но будьте готовы, что про что-то кандидат мог еще не слышать. Это абсолютно нормально, ведь методы становятся классическими за полгода.

Второе — кодинг. В Machine Learning среде, поскольку многие проникают в нее снаружи мира программирования, очень много кто плохо программирует (я сам не исключение). Очень хороший знак, если человек уже работал просто разработчиком и настораживает, если человек на выпуске из университета и увлечен математикой в чистом виде. Если человек не работал с git, не знает про юнит-тесты, а умеет только эксперименты в Jupyter запускать, лишь в редком случае он будет полезен бизнесу.

Важно понимать, что хотя кандидату важно и необходимо знать, как обучить нейросеть, заниматься этим он будет в лучшем случае 20% времени. Остальное — возня с данными, подъем и настройка инфраструктуры, и чем больше у кандидата опыт и выше скилл в базовом программировании и администрировании Linux, тем меньше времени он будет тратить на рутину и тем дальше продвинет ваш бизнес.

Федор Червинский, R&D lead LVL5

Вопросы для интервью:

  1. С какими проектами приходилось работать?

  2. Расскажите о самой сложной и интересной задаче? С помощью каких технических средств реализовывали её?

  3. Как выглядит команда проекта? Как ставятся и распределяются задачи?

  4. Участвовали в каких-либо соревнованиях на kaggle? Какие были успехи?

  5. Есть ли какие-то pet-проекты? Что изучаете на досуге?

     

*ODS — OpenDataScience ods.ai

 

ПОДПИШИТЕСЬ НА БЛОГ