ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 논문 리뷰 : CNN을 이용한 운동 데이터 분류
    Paper 2021. 2. 4. 00:00

    Um, T. T., Babakeshizadeh, V., & Kulić, D. (2017, September). Exercise motion classification from large-scale wearable sensor data using convolutional neural networks. In 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 2385-2390). IEEE.


     

    1. 서론

    2. 관련 연구

    3. 웨어러블 장치의 데이터를 이용한 CNN 모델

    4. Experiment

    5. 결론

     


     

    1. 서론

     

    논문 「Exercise motion classification from large-scale wearable sensor data using convolutional neural networks」는 CNN을 이용해서 웨어러블 장치를 통해 얻어낸 운동 중 데이터를 통해 어떤 운동을 하고 있는지 분류하는 방법에 관한 연구이다.

    CNN은 큰 규모의 데이터에 대해서 높은 수준의 결과를 가져오는 알고리즘이며 지난 수년간의 연구가 CNN의 분류 능력의 우수함을 입증하고 있다. 본 연구에서는 운동 데이터를 마치 이미지와 같은 2D 배열로 입력함으로써 CNN을 기존 이미지 분류에 적용되던 방식으로 사용하고자 하였다.

     


     

    2. 관련 연구

     

    Long, Yin, & Aarts (2009) 에서는 걷기, 뛰기, 자전거 타기, 운전, 스포츠의 총 다섯 가지 활동을 decision tree, naive bayes와 naive bayes with PCA를 이용해서 분류하였다. (accuracy : 72.3%)

    또한, Chernbumroong, Atkins, & Yu (2011) 에서는 걷기, 뛰기, 누워있기, 서있기, 앉아있기의 다섯 가지 활동을 multilayer perceptron을 통해 91.1%의 accuracy로 분류하였다.

    Chernbumroong, Cang, Atkins, & Yu (2013) 에서는 일상의 9가지 활동(양치하기, 설거지하기 등)에 대해 support vector machine을 통해 90.2%의 accuracy로 분류하였다.

    Biswas 외 7인 (2015) 에서는 더 다양한, 총 26가지의 활동을 support vector machine을 통해 90.2%의 accuracy로 분류하였다.

    본 연구에서는, 인간의 활동 및 운동을 더 세분화하여 총 50가지의 운동을 분류할 것이다.

     


     

    3. 웨어러블 장치의 데이터를 이용한 CNN 모델

     

    우선, 웨어러블 장치(accelerometer&gyroscope)를 통해 얻어낸 변수는 Local acceleration, World acceleration, Euler angle이며, 각각 x, y, z 축 방향으로 3개씩 총 9가지이다. 한 자료당 기록된 시간은 3.92초이며, sampling rate는 200Hz로 한 자료당 총 784회의 기록이 존재한다.

    즉 데이터는 기본적으로 784*9의 2차원 데이터인데, 본 연구에서는 입력 데이터의 형태를 바꾸는 것을 시도하고 있다.

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    위와 같이, 9*784 데이터를 84*84로 변환하는 것이다. 또한, 세가지의 변수 Local acc, World acc, Euler angle을 컬러 사진의 RGB channels과 같이 취급하는 3*784*3 형태로도 입력할 수 있었다.

     

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    더하여, CNN 모델에서의 stride의 세팅에 따라 입력 데이터의 형태를 위와 같이 차이를 두기도 하였다.

    stride란 CNN에서 filter를 적용하는 간격이라고 한다. stride가 1이면, 한 칸씩 촘촘히 적용하고, 3이면, 세 칸씩 뛰면서 적용된다는 것이다. 위의 9*784 full의 경우가 stride가 1인 경우겠고, 9*784 disjointed는 stride가 3안 경우이므로 local acc은 local acc끼리만, world acc은 world acc끼리만,,, 즉, 다른 종류의 변수가 겹쳐서 filter가 적용되지 않는다.

    CNN을 비롯한 신경망 모형에 대한 것은 다음에 정리를 해봐야 할 것 같다. 우선 위 두 모형의 차이가 저런 것이라는 것까지만 이해해도 해당 논문을 이해하는 데에는 큰 문제가 없어 보인다.

     

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    이어서, CNN 모델의 구조는 위와 같다.

    입력받은 자료를 각각 feature maps가 32, 64인 CNN layer와 1024 node인 Fully connected layer로 이루어진 모델에 적용한다. activation 함수는 softmax, 과적합을 방지하기 위한 0.5만큼의 dropout, optimizer는 학습률 0.0005인 Adam을 이용한다.

     


     

    4. Experiment

     

    본 연구의 Experiment는 크게 두 가지로 나눌 수 있다. 첫 번째는 자료의 입력 형식 별 성능 파악이고, 두 번째는 모델의 깊이에 따른 성능 파악이다.

     

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    앞서 언급한 네 가지의 입력 형식인 84*84, 9*784(full), 9*784(disjoint), 3*784*3에 대한 성능의 차이를 파악하고 있다. 

    accuracy로 평가를 하였는데, 3*784*3의 입력 형태를 취한 경우가 가장 높은 test accuracy를 보이고 있다. (epochs=40) 그때의 window, stride 또한 기록되어 있다.

    또한 여기서 reps란, 운동의 반복 수를 이야기한다. 연구에서 밝히기를 반복 수가 높은 운동의 경우가 낮은 운동의 경우보다 더 잘 분류된다고 이야기한다. 실제로 반복 수가 1인, 1 reps exercise는 42.32%의 정확도로, 반복 수가 20인 20 reps exercise는 97.23%의 정확도로 분류된다고 한다. 꽤 큰 영향을 주는 요인 중 하나라는 것이다.

     

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    반복 수와 epochs 수에 따른 분류 정확도를 나타낸 plot이다.

     

    「 Exercise motion classification from large-scale wearable sensor data using convolutional neural networks 」 중 해당 내용 발췌.

    또한 3*784*3의 입력 형식 하에 모델의 깊이에 관해서 accuracy를 비교해보면 얕은 모델보다 깊은 모델, 구체적으로 3 Layer CNN이 가장 좋은 분류 정확도를 갖는다고 밝히고 있다.

     


     

    5. 결론

     

    웨어러블 기기를 통해 기록한 데이터를 통해, CNN 모델로 분류하고자 했던 본 연구에서, 가장 좋은 결과를 가져온 setting은 3*784*3의 입력 형식을 갖는 3 Layer CNN이었다.

    저자는, 이번 연구에 대해 모델을 깊게 만드는 것이 도움이 되며, reps가 많은 경우가 분류 성능이 좋다고 결론부에 comments를 남겼다.

    또한, 본 연구에서 쓰인 data는 사전에 segment가 된 data였다고 한다. 이후 연구에서, segment 되지 않은 데이터를 사용하게 된다면, LSTM과 같이, 시계열 자료에 대해 사용할 수 있는 신경망 모형과 deep CNN 모형을 결합해서 사용하면 좋을 것 같다고 이야기한다.

     


     

    Reference

    Um, T. T., Babakeshizadeh, V., & Kulić, D. (2017, September). Exercise motion classification from large-scale wearable sensor data using convolutional neural networks. In 2017 IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS) (pp. 2385-2390). IEEE.

    "Convolutional neural network", wikipedia, en.wikipedia.org/wiki/Convolutional_neural_network

     


     

    이번 논문은 최근 열린 DACON의 운동 분류 과제와 가장 유사하면서도 최근의 연구였기 때문에 읽어보게 되었다. 시계열 자료를 2D image input으로 CNN에 적용하고, 입력 형식과 모형의 setting 과정에서 구체적인 조정에 대해 아이디어를 얻은 느낌이 있다. 좋은 결과로 이어질지는 모르겠지만, 배운 것을 적용해보는 것에 의의를 두어야 하지 않을까,,, 

     


     

    댓글

since 2021