Невербальное общение с компьютером

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

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

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

Мы начнем с очень простой модели и постепенно будем добавлять новые идеи, чтобы сделать ее лучше. Весь код вы можете найти на Github

Модель 1 — SimplePose

В этой простейшей модели мы будем использовать простую сверточную нейронную сеть, которая используется для классификации изображений, но вместо того, чтобы предсказывать класс присутствующего объекта, мы попытаемся предсказать координаты x, y суставов.

Архитектура

Результаты

Модель обучается на расширенном наборе данных LSP.

Для тестирования модели я использовал изображения из исходного набора данных LSP. Вот некоторые результаты модели.

Тест 1

Тест 2

Тест 3

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

Улучшения

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

Это даст нам подход, используемый моделью DeepPose в этой статье.

Модель 2 — HmapPose

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

Архитектура

Результаты

Тест 1

Тест 2

Порядок тепловой карты: — Правая лодыжка — Правое колено — Правое бедро — Левое бедро — Левое колено — Левая лодыжка — Правое запястье — Правый локоть — Правое плечо — Левое плечо — Левый локоть — Левое запястье — Шея — Верхняя часть головы — Все суставы

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

Улучшения

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

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

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

Выполнение всех этих улучшений даст нам подход, используемый в этой статье.

Модель 3 — Сверточная машина поз

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

Архитектура

Результаты

Правая лодыжка

Правое колено

Правое бедро

Левое бедро

Левое колено

Левая лодыжка

Правое запястье

Правый локоть

Правое плечо

Левое плечо

Левый локоть

Левое запястье

Шея

Верхняя часть головы

Если вы внимательно посмотрите на пример Left Hip или пример Right Wrist, вы увидите, что модель способна улучшить свой прогноз на последующих этапах, используя более широкий контекст.

Улучшения

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

Обучение

В этом проекте я узнал много нового.

  • Углубило мое понимание фреймворка PyTorch.
  • Стал лучше читать документы по машинному обучению и реализовывать их.
  • Научился некоторым приемам отладки и профилирования моделей нейронных сетей.
  • Получил интуитивное понимание различных архитектур.

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

Ресурсы

Первоначально опубликовано на https://vaibhavyadav.github.io 2 июля 2020 г.