Все мужчины мечтают, но не одинаково. Те, кто мечтают по ночам в пыльных укромных уголках своего разума, просыпаются днем ​​и обнаруживают, что это было тщеславием: но дневные сновидцы опасны, потому что они могут действовать в своих сновидениях с открытыми глазами, чтобы сделать их возможными.
~ TE Лоуренс, Семь столпов мудрости: триумф

В сегодняшнем посте мы поговорим с чрезвычайно талантливым человеком, который работает в захватывающей области машинного обучения и компьютерного зрения. Анил Матча - старший инженер-исследователь в научно-исследовательском институте Samsung в Бангалоре. Он также часто пишет и является автором нескольких статей, опубликованных в Medium, Paperspace, Towards Data Science, Fritz AI и Analytics Vidhya. Анил недавно участвовал в Kreate Hackathon, организованном Skillenza и Kalaari Captial, и выиграл второе место за свое решение по распознаванию физических упражнений на треке Cure.fit. В этом посте мы обсуждаем его решение, его путь к тому, чтобы стать исследователем компьютерного зрения, и его текущую работу. Надеюсь, вам понравится это читать.

Привет, Анил. Спасибо, что нашли время для этого интервью. Не могли бы вы рассказать нам немного о себе и о том, чем вы занимаетесь?

Привет, Лезвон, в настоящее время я работаю старшим инженером по компьютерному зрению в отделе исследований и разработок Samsung. Я окончил IIT Delhi в 2015 году по специальности «Электротехника, электроника и техника связи». Мои интересы в основном связаны с различными концепциями компьютерного зрения.

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

Звучит интересно. Не могли бы вы рассказать нам немного о своей работе в Samsung?

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

Это интересно. Я надеюсь когда-нибудь лично познакомиться с инструментами, которые вы создаете в Samsung.

Итак, вернемся к нашей теме. Я хотел бы узнать о вашем первом опыте на хакатоне и о том, что вы на нем построили.

Мой первый хакатон состоялся, когда я посетил Code.Fun.Do от Microsoft, проводимый в ИИТ Дели. Я убедил нескольких своих друзей присоединиться ко мне, и мы подписались на это. На хакатоне мы пришли к идее создания виртуального мира, аналогичного тому, что Facebook пытался достичь с помощью Oculus, и создали небольшую многопользовательскую демонстрацию, в которой каждый человек имеет аватар и может жить в этом виртуальном мире. Величайшим достижением станет то, что мы сможем синхронизировать сеть так, чтобы одни и те же действия происходили на двух компьютерах одновременно. Мы никогда раньше не пробовали что-то подобное, и это тоже не связано с программированием.

Это большое достижение для вашего первого взлома. Возвращаясь к недавней победе, ваша команда была объявлена ​​занявшей второе место на Kreate Hackathon по постановке задачи Cure.fit. Не могли бы вы вкратце описать формулировку проблемы и свое решение?

Я и Чираг (товарищ по команде Анила) участвовали в треке Cure.fit на хакатоне. У Cure.fit была постановка проблемы, основанная на распознавании упражнений. Постановка задачи заключалась в создании системы распознавания действий, которая могла бы идентифицировать выполняемое упражнение на видео. Итак, учитывая видео с отжиманиями, система должна идентифицировать упражнение, а также количество повторений и продолжительность упражнения. Нам дали набор данных видео, помеченных интересующими движениями, которые они содержат. Это может быть один человек или несколько человек, выполняющих определенное упражнение. Чтобы решить эту проблему, мы решили создать комплексное решение с использованием глубоких нейронных сетей. Учитывая ограничения по времени, мы использовали две архитектуры CNN + LSTM и двухпотоковые нейронные сети.

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

Да, конечно. В этой архитектуре CNN (сверточная нейронная сеть) отвечает за захват функций изображения. Это могут быть объекты в сцене, положение или даже присутствующие цвета. Затем эти данные отправляются в LSTM (Long Short Term Memory), которая берет функции из каждого кадра видео и распознает действие.

Двухпотоковые нейронные сети состоят из двух сетей. Один принимает каждый кадр как вход, а другой использует оптический поток 10 прошедших кадров, чтобы запечатлеть действие. Окончательный результат получается объединением вывода обеих сетей.

Учитывая необработанные данные, как вы все достигли этой цели? Требовалось ли много предварительной обработки данных?

Нашей первой задачей был сбор данных. Нам пришлось нарезать видео для обозначения определенных последовательностей, поскольку в одном видео присутствовало несколько действий. Мы достигли этого с помощью встроенных приложений для редактирования видео на мобильных устройствах. Затем мы использовали OpenCV для периодической выборки кадров. Когда данные были готовы, мы использовали Keras для разработки нейронных сетей и обучили их на Google Colab.

Бьюсь об заклад, самая крутая часть в Deep Learning - это обучение вашей модели и повышение точности. Однако этап предварительной обработки данных и разработка функций не менее важны для создания успешной модели. Ребята, вам приходилось тратить время на разработку и полировку для обучения?

Предварительная обработка данных - один из ключевых шагов перед переходом к модели. Без надлежащих данных, даже если вы примените лучший алгоритм SOTA, модель будет работать плохо. Мы - единственная команда, принявшая участие в задаче Cure.fit, которая разработала комплексное решение - от очистки данных, предварительной обработки до моделирования. Данные, предоставленные Cult, содержат несколько действий, встроенных в одно видео. Поэтому нам пришлось просмотреть все видео и в подходящее время нарезать их, чтобы выделить действия. Мы также подготовили данные отрицательного класса, чтобы идентифицировать действия, которые не относятся к помеченным действиям. Поскольку данные, предоставленные Cult, были ограничены, мы загрузили данные, которые были доступны в Интернете, чтобы дополнить существующие данные, чтобы уменьшить чрезмерную подгонку.

«Предварительная обработка данных - один из ключевых шагов перед переходом к модели. Без надлежащих данных, даже если вы примените лучший алгоритм SOTA, модель будет работать плохо. ”

С какими проблемами пришлось столкнуться вашей команде при распознавании упражнений в связи с этой постановкой задачи?

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

Что судьи сказали о вашем решении? Ваша команда все еще работает с ними над поиском решения?

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

Есть ли какие-либо ресурсы, на которые вы бы хотели обратить внимание людей, которые хотели бы подробно узнать о вашем решении?

Скоро мы опубликуем статью с подробным описанием нашего решения. Следите за обновлениями в моем профиле LinkedIn.

Что вы посоветуете тем, кто начинает участвовать в хакатонах?

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

«Сосредоточение внимания только на победе заставит вас упустить радость встречи с людьми, налаживания связей, изучения нового и т. Д.»

И последний вопрос. Как ваша команда следит за развитием технологий? Следите ли вы за какими-либо конкретными блогами или публикациями?

да. Я слежу за парочкой сабреддитов, таких как r / computervision, r / machinelearning, r / learnmachinelearning для большинства моих обновлений. Помимо этого, я веду группу телеграмм для энтузиастов компьютерного зрения. Вы можете присоединиться к нему здесь.

Спасибо за уделенное время Анил. Было приятно с вами поговорить. Желаю вам всего наилучшего в будущих начинаниях.

Спасибо, что пригласили нас поделиться своим опытом. Нам было приятно это делать.

Анил Матча в настоящее время работает старшим инженером в отделе исследований и разработок Samsung, обеспечивая визуальный интеллект для камеры Samsung. У него более 4 лет опыта в области глубокого обучения, компьютерного зрения и машинного обучения. Чтобы связаться с ним, свяжитесь с ним через его профиль в LinkedIn здесь. Вы также можете подписаться на него на Medium на Анил Чандра Найду Матча.

Cereal Hacker - это бесплатная публикация, в которой разработчики берут интервью об их решениях, победивших на хакатонах. Если вам нравится наша работа, пожалуйста, подпишитесь на нас на Medium и подпишитесь на нас в твиттере по адресу @cerealhacker. Вы также можете подписаться на нашу рассылку на сайте cerealhacker.tech.