JUST WRITE

IMU 센서를 통한 동작 인식을 위한 Feature engineering 본문

Paper

IMU 센서를 통한 동작 인식을 위한 Feature engineering

천재보단범재 2023. 2. 6. 22:37

IMU 센서를 통한 동작 인식을 위한 Feature engineering

1. Why this paper?

IMU 센서 데이터를 통해서 손가락에서 어떤 제스처를 하는지 머신러닝 모델을 만드는 과제가 주어졌었다.

IMU(Inertial Measurement Untis) 데이터는 관성측정장치에서 관성을 기반으로 수집한 9축 데이터를 말한다.

9축 데이터는 아래와 같다.

  • 가속도(Accelometer) x, y, z 축
  • 각속도(Gyroscope) x, y, z 축
  • 지자기(Magnetmeter) x, y, z 축

IMU 센서 데이터로 정밀한 위치 측정, 동작 인식 등에 많이 활용되는 데이터이다.

회사에서 만든 동작인식마우스에 있는 IMU 센서 데이터를 기반으로 손가락이 어떤 제스처를 예측한다.

해당 과제를 위한 머신러닝 모델을 만들기 위해 IMU 데이터에서 어떤 feature을 뽑아야 할지 고민이었다.

그러다가 tsfresh라는 Time-series 데이터 기반 feature engineering를 도와주는 python library를 알게 되었다.

tsfresh에서 해당 논문을 기반으로 하고 있어 해당 논문을 공부하게 되었다.

2. Summary

해당 논문에서는 총 9개의 IMU 센서를 달아서 몸에 달아서 센서 데이터를 수집한다.

러닝, 푸시업 등 동작에서 IMU 센서 데이터를 시계열 데이터(Time-series data)로 수집한다.

FRESH(FeatuRe Extraction based on Scalable Hypothesis tests) 알고리즘으로 Feature를 추출한다.

수천 개의 feature 중에서 중요 feature 20개로 머신러닝 모델을 fit 한다.

다른 데이터에서 예측해보기 위해서 예측할 데이터에서 feature를 뽑아 예측까지 과정을 잘 설명해 주는 논문이다.

이번 포스팅에서는 논문에서 설명하고 HAR(Human Activity Recognition) 과정을 잘 정리해보려 한다.

출처 : https://link.springer.com/chapter/10.1007/978-981-15-3651-9_20

3. Detail

3-1. IMU 센서 데이터 수집

BlueThunder sensor내 IMU 센서에서 3-axis Accelometer/ Gyroscope / Compass 데이터를 수집한다.

출처: https://imeasureu.com/

Train 데이터를 560초 동안 Running과 Walking을 반복하면서 수집한다.

4초 단위로 Walking 데이터 82개, Running 58개로 나눈다.

3-2. feature 추출

FRESH(FestuRe Extraction on the basis of Scalable Hypothesis testing) 알고리즘을 녹여낸

Pyhon 머신 러닝 Library인 tsfresh을 통해서 Time-series 데이터의 feature를 추출한다.

분산, 정상성(stationarity), 상관 계수, entropy 등 다양한 feature를 추출한다.

tsfresh Library에서 Time-series 데이터의 feature를 천개 단위로 추출한다.

모든 feature를 다 사용하지 않고 중요도가 높은 feature만 사용한다.

여기에서는 총 20개의 feature를 추출한다.

3-3. 모델 훈련

여기에서는 머신 러닝 관련 Library 중 scikit-learn에서 Random Forest 분류기를 사용한다.

Random Forest는 앙상블(ensemble) 기법으로 다수의 의사결정나무(tree)에서 나온 결과를 토대로 최종 결정을 내리는 알고리즘이다.

hyperparmeter 튜닝은 진행하지 않고 10-fold cross-validation을 활용하여 정확도를 높였다.

 

3-4. 예측

10개의 Time-series 데이터에서 얻은 20개 feature로 fit한 머신러닝 모델로 Test를 진행한다.

다른 10개의 Time-serries 데이터에서 똑같이 20개의 feature를 추출하여 해당 모델에 예측을 해보았다.

결과는 아래 그래프와 같이 나왔으며 92% 정확성을 보여줬다.

출처 : https://link.springer.com/chapter/10.1007/978-981-15-3651-9_20

개선

단순히 예측에서 끝나지 않고 머신러닝의 모델의 성능을 높이기 위해서 fit 방식을 바꿔서 시도해본다.

처음 모델을 10-fold cross-validation 방식으로 fit을 진행하였다.

5-fold cross-validation을 진행하여 모델 개선 작업을 시도한다.

해당 작업 후 정확성이 92%에서 92.6%로 개선된 결과를 보여주었다고 한다.

4. 정리

논문에서 행동 인식을 위한 Feature Engineering 과정을 잘 정리해주고 있다.

  • Time-seires engineering
  • Automated time-seires feature extraction
  • Optimized feature extraction
  • Fitting of specialized classifier
  • Deployment of optimized algorithm

동작 인식과 관련된 머신 러닝을 처음 시작할 때 보기 좋은 논문이라는 생각이 들었다.

동작 인식에서 IMU 센서 데이터로 진행하는 경우도 많다고 알고 있다.

해당 논문에서 제시해 주는 과정대로 처음에 시도해 보고 지속적으로 개선해 나가면 좋겠다는 생각이 들었다.

다만 Time-series 데이터에서 추출하는 feature가 어떤 값들인지 설명이 부족하다고 생각하였다.

기회가 된다면 tsfresh에서 사용하고 있다는 FRESH 알고리즘에 대해서 맛만 보는 것도 좋을 거 같다.

다음에는 tsfresh library를 직접 활용했었던 것을 정리해서 포스팅을 진행해보겠다.

[논문링크]

https://link.springer.com/chapter/10.1007/978-981-15-3651-9_20

 

728x90
반응형

'Paper' 카테고리의 다른 글

Feature Store 필요해?!  (0) 2023.03.07
Machine Learning Operations Overview, Definition and Architecture  (0) 2023.02.20
Comments