인간 행동 예측

프로젝트의 GitHub 저장소

스켈레톤

세부사항

이 프로젝트는 2020년 봄 학기 콜로라도 광산학교(Colorado School of Mines)에서 Zhang 박사의 인간 중심 로봇공학(Human Centered Robotics, CSCI473) 수업을 위한 프로젝트 #3였습니다. Support Vector Machines(SVM)를 사용하여 로봇 공학에서의 기계 학습 소개를 제공하도록 설계되었습니다. 원래의 프로젝트 결과물/설명은 여기에서 볼 수 있습니다.

스켈레톤

이 프로젝트에서는 일부 수정이 가해진 MSR Daily Activity 3D 데이터셋(그림 2)을 사용했습니다. 이 데이터셋은 Xbox Kinect 센서로 수집되어 스켈레톤 형태로 저장된 16가지 인간 활동을 포함합니다. 스켈레톤은 한 프레임에 기록된 인간의 20개 관절의 실제 세계 (x, y, z) 좌표 배열입니다. 다음 그림은 스켈레톤이 무엇인지 보여줍니다:

스켈레톤

인간 행동 예측을 달성하기 위해서는 원시 데이터를 SVM으로 처리할 수 있는 형태로 표현해야 합니다. 이 프로젝트에서는 다음의 표현들이 사용되었습니다:

  • 상대 각도 및 거리(RAD) 표현
  • 관절 위치 차이의 히스토그램(HJPD) 표현

분류를 위해 표현은 LIBSVM에 의해 구동되는 SVM에 전달되어 인간 행동을 예측할 수 있는 모델을 만듭니다. 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 프로젝트의 탄생 배경이 되었습니다.

추가 메모: