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

Репозиторій проекту на GitHub

скелет

Деталі

Цей проект був проектом #3 для курсу Людської Центрованої Робототехніки (CSCI473) професора Чжана в Колорадському університеті гірничих наук під час семестру весни 2020 року. Він був розроблений для надання вступу до машинного навчання в робототехніці через використання методів опорних векторів (SVM). Оригінальні результати проекту/опис можна переглянути тут.

скелет

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

скелет

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

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

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

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

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

Результати

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

Представлення: RAD
Точність: 62.5%
Класифікація LIBSVM   8.0   10.0  12.0  13.0  15.0  16.0
Фактичний номер дії
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
Представлення: HJPD
Точність: 70.83%
Класифікація LIBSVM   8.0   10.0  12.0  13.0  15.0  16.0
Фактичний номер дії
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, здається, є більш точною представленням для цього класифікацій. Таким чином, є модель(і), яка прогнозує людські дії, використовуючи дані скелета. Модель(і) тут далекі від досконалості, але вони кращі, ніж випадкові. Цей проект став основою для проекту Рухома Поза пізніше.

Додаткові примітки: