Прогнозування дій людини

GitHub-репозиторій проєкту

skr

Подробиці

Цей проєкт був проєктом №3 для курсу Human Centered Robotics (CSCI473) доктора Чжана в Colorado School of Mines під час весняного семестру 2020 року. Він був розроблений, щоб надати вступ до машинного навчання в робототехніці за допомогою використання методів опорних векторних машин (SVM). Оригінальні результати/опис проєкту можна переглянути тут.

skr

Для цього проєкту був використаний MSR Daily Activity 3D Dataset (Рисунок 2) з деякими модифікаціями. Цей набір даних містить 16 людських дій, зібраних за допомогою датчика Xbox Kinect і збережених у вигляді скелетів. Скелети — це масив реальних (x, y, z) координат 20 суглобів людини, записаних в одному кадрі. Ось рисунок, який показує, що таке скелет:

skr

Щоб досягти прогнозування дій людини, необроблені дані мають бути представлені у формі, яку може обробляти SVM. Для цього проєкту були використані наступні представлення:

  • Відносні кути та відстані (RAD) представлення
  • Гістограма різниць позицій суглобів (HJPD) представлення

Для класифікації представлення передається в SVM, що працює на базі LIBSVM, щоб створити модель, яка може прогнозувати дії людини. Будуть створені дві моделі: одна з використанням RAD, інша — HJPD. Мета — зробити ці моделі якомога точнішими та визначити, яке представлення працює найкраще.

Знаючи це, ось огляд того, що робить код:

  1. Завантажити необроблені дані з модифікованого набору даних
  2. Видалити будь-які викиди та/або помилкові дані з завантаженого набору даних
  3. Перетворити остаточні необроблені дані у представлення RAD та HJPD
  4. Представлення передаються у налаштовані SVM, щоб створити дві моделі
  5. Потім два моделі отримують тестові необроблені дані, і генерується матриця плутанини, щоб виміряти, як моделі працювали.

Результати

Після запуску коду та налаштування моделей наскільки це можливо, ось остаточна матриця плутанини для моделей RAD та HJPD:

Representation: RAD
Accuracy: 62.5%
LIBSVM Classification   8.0   10.0  12.0  13.0  15.0  16.0
Actual Activity Number
8.0                        8     0     0     0     0     0
10.0                       1     5     0     0     1     1
12.0                       0     1     1     0     3     3
13.0                       0     0     0     6     1     1
15.0                       0     0     0     1     5     2
16.0                       0     0     0     0     3     5
Representation: HJPD
Accuracy: 70.83%
LIBSVM Classification   8.0   10.0  12.0  13.0  15.0  16.0
Actual Activity Number
8.0                        7     1     0     0     0     0
10.0                       1     5     0     0     0     2
12.0                       0     0     7     0     1     0
13.0                       2     0     1     5     0     0
15.0                       0     0     0     0     7     1
16.0                       0     2     0     0     3     3

Висновок

Оскільки обидві точності перевищують 50 %, цей проєкт був успішним. Крім того, представлення HJPD, здається, є більш точним представленням для цих класифікацій. Таким чином, існує модель(і), яка прогнозує дії людини, використовуючи дані скелетів. Моделі тут далекі від ідеалу, але вони кращі, ніж випадкові. Цей проєкт став підґрунтям для проєкту Moving Pose пізніше.

Додаткові нотатки: