Скейтбордисты легко узнают трюки, выполняемые другими скейтбордистами. Наша цель в этом проекте — научить компьютер распознавать трюки на скейтборде. Учитывая видео трюка на скейтборде, может ли компьютер классифицировать трюк с высокой вероятностью? Мы разработали набор данных и модель машинного обучения, которые позволяют различать два наиболее распространенных трюка на скейтборде: олли и кикфлипы.
Мы начали с того, что собрали более 200 коротких (1–2 секунды) видеороликов с кикфлипами и олли. Мы адаптировали подход, описанный в разделе «Практическое руководство по компьютерному зрению с Tensorflow», к нашему новому набору данных. Данные начинаются как видео, затем проходят через сверточную нейронную сеть (CNN), затем через модель долговременной краткосрочной памяти (LSTM) и, наконец, к выводу вероятностей того, что видео отображает каждый класс трюков.
Например, здесь Стивен выполняет кикфлип:
Модель предсказывает, что это будет кикфлип с вероятностью 0,9, поэтому она работает хорошо. Мы обнаружили, что четкие видеоролики, на которых видно все тело скейтбордиста, работают лучше, чем видео, на которых видны только ноги скейтбордиста. Мы также обнаружили, что модель смогла правильно предсказать сальто вниз по лестнице, хотя все тренировочные данные касались трюков на ровной поверхности. Это показывает, что модель смогла обобщить новую и другую ситуацию.
Чтобы продолжить эту работу, мы можем добавить больше трюков, помимо кикфлипов и олли, а также комбинации трюков, например, кикфлип на 180 градусов назад. Благодаря большему количеству тренировочных данных и большей настройке модели эта модель может стать достаточно хорошей, чтобы конкурировать со скейтбордистом-человеком.
Спасибо Джастину Вангу и Весселе Энсберг за помощь в этом проекте.
Помеченные видеоданные находятся в каталоге Tricks
этого репозитория. Существует два подкаталога: Ollie
, который содержит 108 видеороликов скейтбордистов, выполняющих олли, и Kickflip
, который содержит 114 видеороликов скейтбордистов, выполняющих кикфлип. Каждый из файлов в этих каталогах представляет собой короткий клип продолжительностью около 2 секунд в формате .mov
(QuickTime). Чтобы использовать эти данные для контролируемого машинного обучения, обучите модель на данных в каталоге Tricks
, используя подкаталоги в качестве меток.
Вы можете использовать эти данные в научных целях при условии цитирования этой работы.
Классификация трюков на скейтборде
Этот проект самыми простыми словами классифицирует трюки на скейтборде. Мы пытаемся использовать машинное обучение, чтобы классифицировать каждый трюк на скейтборде. Есть много трюков в скейтбординге, которые мы выбрали для классификации двух. Мы выбирали между Олли и Кикфлипом.
Таким образом, этот алгоритм будет принимать входные данные, как указано выше, и выдавать вероятность того, насколько он уверен, что это олли или кикфлип.
16 июня TODO:
ТОДО 23 ИЮНЯ:
30 ИЮНЯ ТОДО:
7 июля:
15 июля:
21 июля:
28 июля:
4 августа:
Наша цель — придумать разумный классификатор трюков для 1-2-секундных видеоклипов. Мы планируем использовать любые наиболее удобные и действенные подходы, чтобы добиться успеха.
Наш план предварительной обработки данных состоит в том, чтобы отбирать видео до одинакового количества кадров и разрешения. Например, каждое видео может состоять из 30 кадров, каждый из которых представляет собой изображение размером 480 x 360 (360p), так что каждое видео становится трехмерным массивом (или тензором) размером 480 x 360 x 30. Это входные данные для модель. Цвет не важен для классификации трюков, поэтому мы также можем преобразовать его в черно-белое изображение.
Общая идея состоит в том, чтобы построить сверточную нейронную сеть (CNN), примерно соответствующую подходу классификации изображений.
CNN для изображений объединяет пространственно-локальную информацию из близлежащих пикселей с помощью фильтров свертки. Должны ли мы делать то же самое с пикселями, расположенными близко друг к другу во времени? В учебнике Google используется 2D-свертка. Есть ли причина, по которой мы не можем использовать 3D-свертку? Конечно, у тензорного потока он есть. И есть много популярных научных работ, посвященных именно этому. Надеюсь, мы сможем развить эти идеи.