Баннер мобильный (1) Пройти тест

Как распознать змею и получить работу: история одного pet-проекта

Специалист по компьютерному зрению рассказывает, как увлечение рептилиями помогло перейти из юриспруденции в Data Science.

Первые шаги

1 марта 2024

Поделиться

Скопировано
Как распознать змею и получить работу: история одного pet-проекта

Содержание

    Один из способов впечатлить работодателей, которые ждут от вас опыта, — это яркий pet-проект. В нем можно реализовать свои навыки и идеи, изучить актуальные технологии на практике. О том, как pet-проект помог при трудоустройстве, рассказал Аргишти Саакян, Computer Vision Researcher в компании Diagnocat.

    Часть 1: Я решал типовые задачи с Kaggle и не получил выхлопа

    Я пришел в IT из юридической сферы, окончил МГЮА (Московская государственная юридическая академия). Знания о больших данных и компьютерном зрении собирал по кусочкам: отдельно прошел курс по Python, отдельно — по статистике. Параллельно смотрел много материалов на Coursera, Stepic, YouTube.

    Чтобы пробиться в Data Science без технического высшего образования, я просто обязан был показать pet-проекты. Нужно было, чтобы на меня обратили внимание. Вначале я решал классические задачи из Kaggle — соцсети для дата-сайентистов. Проекты были типовые — например, построить модель для предсказания цен на жилье. Выхлоп для собеседований с таких проектов был слабым. У меня никогда не спрашивали: «Почему ты выбрал эту задачу, как ты ее решал?»

    Так без результата прошли 5–7 собеседований. В итоге я устроился работать просто аналитиком данных, без нейросетей, и решил серьезно заняться pet-проектом. 

    Часть 2: Я создал классификацию змей

    Мне хотелось поработать с алгоритмами компьютерного зрения. Базовый тип задач в этой области — классификация. Оставался вопрос: что классифицировать? Мне интересны змеи и рептилии, поэтому я решил создать классификацию змей, которые обитают в Московской области. 

    Больше всего времени ушло на сбор данных. Я искал фотографии нужных мне видов змей в Google, Яндексе. Самой сложной задачей оказалось создать пайплайн для обучения нейросети. Я писал алгоритм на Python, использовал библиотеки TensorFlow, NumPy, PIL. В основу сервиса я положил алгоритм сверточных нейронных сетей, архитектуру EfficientNet.

    Процесс обучения нейросети по распознаванию вида змей в коде, скриншот из github
    Так выглядит процесс обучения нейросети в коде. Источник: Github

    Все данные я поделил на три части, одну из них использовал только для тестирования. Я считал метрики при помощи confusion matrix, а также лично смотрел, как нейросеть справляется в разных кейсах. Точность выше 94% я не получил, но на тот момент это был неплохой результат.

    Примеры работы нейронной сети, фотографии из тест сета. Результаты на тестовых данных
    Такие результаты модель показала на тестовых данных. Источник: GitHub

    Затем я написал Telegram-бот, в который можно загрузить фото змеи, а нейросеть ее распознает. 

    Задача была интересной и полезной для меня, я столкнулся с рядом реальных проблем и научился их решать. На создание проекта с нуля ушло около трех недель, я работал в свободное время, с перерывами. Мне было интересно, поэтому я часто залипал в работу надолго. 

    Часть 3 (happy end): Я получил работу мечты с машинным зрением

    Через полгода работы аналитиком я снова начал искать вакансии. К тому моменту я уже опубликовал свой проект на Git и дал в нем ссылку на телеграм-бот. На собеседованиях у меня всегда спрашивали про этот проект: почему я выбрал именно классификацию змей, с какими трудностями столкнулся. В проекте я использовал разные технологии, поэтому он получился намного показательнее сухой задачи с Kaggle. Для одной из вакансий это был релевантный опыт — так я попал в компанию, где начал заниматься машинным зрением.

    Советы новичкам, которые хотят завести pet-проект

    Выбирайте то, что вам интересно. Это поможет сделать живой проект, который привлечет к вам внимание работодателей.

    Берите реальную проблему. Чтобы не застрять на середине пути, нужно всегда иметь перед глазами понятную цель, зачем вы этот проект делаете.

    Постройте план и таймлайн работы. Проект важно не только начать, но и закончить. Чтобы не увязнуть в нем на слишком долгий срок, поставьте себе четкие временные рамки. 

    Используйте актуальные технологии. Это покажет, что вы следите за развитием своей сферы и готовы учиться новым инструментам на практике. 

    Работайте честно. Да, pet-проект — это не рабочий проект, но относиться к нему нужно со всей серьезностью. Это поможет вам максимально реализовать свои навыки в работе и научиться чему-то в процессе. Если в конце кажется, что сервис не работает так, как должен, если нужно было делать всё иначе, переделайте. Только так pet-проект даст вам развитие. 

    Pet-проект — это возможность реализовать свою идею, поработать «для души» и одновременно показать, на что вы способны. Это отличная практика навыков для начинающих, способ получить опыт, который поможет трудоустроиться. 

    Первые шаги

    Поделиться

    Скопировано
    0 комментариев
    Комментарии