Проект по распознаванию бирок на одежде от студентов CS центра

Компьютерное зрение и программирование на практике в Новосибирске

Проект по распознаванию бирок на одежде от студентов CS центра

Анализ данных

Студенты CS центра Ирина Ахмадеева и Никита Одиноких разработали приложение, которое распознаёт символы на бирках для стирки. Они рассказали, как выбрали проект, как самостоятельно составляли базу данных бирок на одежде и когда собираются закончить работу над приложением.

Computer Science Center — это совместный проект Школы анализа данных Яндекса, JetBrains и Computer Science клуба. В Санкт-Петербурге и Новосибирске организованы очные вечерние курсы по математике и программированию, для жителей других городов доступно платное заочное отделение.

История проекта

Каждый семестр студенты CS центра работают над инженерными или исследовательскими проектами под руководством сотрудников IT-компаний или учёных. Среди других проектов проект по распознаванию бирок зацепил нас тем, что, помимо машинного обучения, мы могли прокачаться в программировании на Android. Понравилось и то, что у этой идеи есть реальное применение, оно может сделать жизнь чуть проще.

Нашей практикой руководил Дмитрий Кузнецов, который занимается мобильным приложением Яндекс. Музыки, поэтому хорошо разбирается в Android-разработке. Во время создания приложения Дима всегда приходил на помощь в трудную минуту, объяснял непонятные концепты, эффективно организовывал работу. Мы встречались раз в неделю, чтобы обсудить прогресс и трудности. Так, нам было трудно разобраться со свободным перемещением фотографии по экрану — он рассказал нам о разных подходах, среди которых мы выбрали самый удобный.

Распознавание бирок

Приложение работает очень просто. Это камера со специальной областью для ярлыка и кнопкой «Распознать», которая отправляет нужный фрагмент изображения для определения в нейросеть. В результате пользователь видит текст с расшифровкой значков с ярлыка и степенью уверенности нейросети в правильности ответа.

alt

К защите проекта весной 2019 была готова только первая версия, а над улучшениями мы работали летом. Теперь приложение будет искать значки по всей области экрана, распознавать ярлыки в реальном времени и давать по поводу стирки расширенные рекомендации.

Как разрабатывали и учили приложение

У нас был опыт в программировании и машинном обучении, но никто из нас раньше не писал для Android. Поэтому пришлось начинать с азов. Даже самые простые вещи поначалу давались с трудом. Но при помощи упорного труда и советов руководителя проекта у нас всё получилось.

В основе лежит сверточная нейронная сетка. Для того, чтобы её обучить, пришлось самим стать немного экспертами в значках, которые сообщают, как нужно ухаживать за одеждой.

Раньше мы знали только два типа значков: про стирку и про глажку, а остальные считали неважными. Чтобы собрать обучающую выборку, нам пришлось вручную перебрать всю одежду в гардеробе. Так мы получили почти 980 размеченных значков. Интересно, что почти всю одежду нельзя отбеливать, поэтому в обучающей выборке почти не было примеров, разрешающих отбеливание. Для того, чтобы охватить всё разнообразие обозначений, кроме реальных данных пришлось использовать сгенерированные — это еще 4330 значков.

alt

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

Что нас вдохновило на создание приложения

У нас была идея создать приложение, которое помогает обычным людям понять, что значат специализированные символы: это ведь не только значки на бирках, но и указатели на дорогах, и, на самом деле, много что еще. Мы хотели сделать переводчик с языка символов, и частично реализовали исходную идею в нашем приложении.

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

alt

Однако теперь, спустя полгода после начала работы над проектом, он стал для нас чем-то бóльшим. Нам хочется довести его до состояния, когда его будет трудно отличить от приложения, созданного крупной компанией. Мы хотим, чтобы наше приложение помогало людям в повседневной жизни, будем продолжать его поддерживать после релиза. Возможно, в будущем мы начнём и новые проекты, относящиеся к другим областям человеческой жизни. А пока мы продолжаем разработку, исправляем баги и реализуем новые идеи, которые появляются каждую неделю. Скоро планируется релиз новой версии, но и сейчас уже видны явные улучшения в выделении значков на экране и в скорости распознавания. Такими темпами мы можем получить законченную версию уже к концу ноября.

Больше по теме

Анализ данных

Трансферное обучение: почему deep learning стал доступнее

Что помогает стартапам использовать методы глубинного обучения в своих проектах?

Анализ данных, Разработка, Яндекс в вузах

Как развивается онлайн-образование в МФТИ

Андрей Райгородский: «Мне очень хочется, чтобы к нам поступали люди не только из Москвы»

Анализ данных

«Задача начинающего предпринимателя — быстро совершать ошибки»

Автор курса ШАДа «Как запустить MVP» о технической стороне создания стартапов

Анализ данных, Разработка

Как устроена работа голосовых помощников

От распознавания звуков до человечных ответов на вопросы

Анализ данных

Чем занимаются лауреаты премии имени Ильи Сегаловича 2019

Исследования в сфере компьютерного зрения, распознавание эмоций и применение машинного обучения для развития Нижегородской области

Анализ данных

Зачем специалисту по data science нужна экономика?

Разработчик deep learning в Яндекс.Такси о своём переходе из экономики в науки о данных

Анализ данных, Разработка

Чем занимается разработчик инфраструктуры и как им стать

«Для нас все остальные разработчики Яндекса — пользователи»