DOI QR코드

DOI QR Code

Performance of Exercise Posture Correction System Based on Deep Learning

딥러닝 기반 운동 자세 교정 시스템의 성능

  • 황병선 (광운대학교 전자융합공학과) ;
  • 김정호 (광운대학교 전자융합공학과) ;
  • 이예람 (광운대학교 전자융합공학과) ;
  • 경찬욱 (광운대학교 전자융합공학과) ;
  • 선준호 (광운대학교 전자융합공학과) ;
  • 선영규 (광운대학교 전자융합공학과) ;
  • 김진영 (광운대학교 전자융합공학과)
  • Received : 2022.09.16
  • Accepted : 2022.10.07
  • Published : 2022.10.31

Abstract

Recently, interesting of home training is getting bigger due to COVID-19. Accordingly, research on applying HAR(human activity recognition) technology to home training has been conducted. However, existing paper of HAR proposed static activity instead of dynamic activity. In this paper, the deep learning model where dynamic exercise posture can be analyzed and the accuracy of the user's exercise posture can be shown is proposed. Fitness images of AI-hub are analyzed by blaze pose. The experiment is compared with three types of deep learning model: RNN(recurrent neural network), LSTM(long short-term memory), CNN(convolution neural network). In simulation results, it was shown that the f1-score of RNN, LSTM and CNN is 0.49, 0.87 and 0.98, respectively. It was confirmed that CNN is more suitable for human activity recognition than other models from simulation results. More exercise postures can be analyzed using a variety learning data.

최근 COVID-19로 인해 홈 트레이닝의 관심도가 증가하고 있다. 이에 따라 HAR(human activity recognition) 기술을 홈 트레이닝에 적용한 연구가 진행되고 있다. 기존 HAR 분야의 논문에서는 동적인 자세보다는 앉기, 일어서기와 같은 정적인 자세들을 분석한다. 본 논문은 동적인 운동 자세를 분석하여 사용자의 운동 자세 정확도를 보여주는 딥러닝 모델을 제안한다. AI hub의 피트니스 이미지를 blaze pose를 사용하여 사람의 자세 데이터를 분석한다. 3개의 딥러닝 모델: RNN(recurrnet neural networks), LSTM(long short-term memory networks), CNN(convolution neural networks)에 대하여 실험을 진행한다. RNN, LSTM, CNN 모델의 f1-score는 각각 0.49, 0.87, 0.98로 CNN 모델이 가장 적합하다는 것을 확인하였다. 이후 연구로는, 다양한 학습 데이터를 사용하여 더 많은 운동 자세를 분석할 예정이다.

Keywords

Ⅰ. 서론

사람 행동 인식 기술은 다양한 분야에 적용될 수 있다. 스포츠, 의류, 헬스케어 분야와 마찬가지로 인명 사고를 인식하는 기술에도 적용되고 있다[1, 2, 3]. COVID-19로 인하여 사람들이 홈 트레이닝에 대한 관심이 증가함에 따라 사람 행동 인식 기술을 홈 트레이닝에 적용한 연구가 나타나고 있다[4, 5, 6].

기존 연구들은 이미지를 학습하여 인공지능 모델의 결과를 실시간으로 확인하기 어렵다. 또한, 관절 좌표 데이터만을 학습한 경우 좌표에 따른 예측 결과가 크게 달라지는 문제가 발생한다. 기존의 모델은 앉기, 일어서기와 같은 정적인 자세만을 분석한다[7, 8]. 정적 자세만을 분석한다면 사고 예방, 스포츠 분석과 같은 이후 연구에 응용하기 어렵다는 문제를 보인다.

본 논문에서는 기존의 정적 자세만을 분석하는 연구들의 문제를 해결하기 위해 실시간으로 정적인 자세뿐 아니라 동적 자세를 분류하는 새로운 모델을 제안한다. 적합한 모델을 찾기 위해 3개의 딥러닝 모델을 활용한다.

이후 Ⅱ장에서는 3개의 모델 구조에 대하여 자세하게 설명한다. 또한, 시계열 데이터에 대하여 자세하게 설명한다. Ⅲ장에서는 모델의 입력으로 들어가는 데이터와 전처리 부분을 자세하게 설명한다. Ⅳ장에서는 3개의 모델에 따른 결과를 보여준다. 마지막으로 Ⅴ장에서는 최종적인 결론을 서술하는 것으로 본 논문을 마친다.

Ⅱ. 시계열 데이터 및 딥러닝 모델

1. 시계열 데이터

시계열 데이터를 학습하기 이전에 시계열 데이터의 이해를 돕기 위해 상세하게 정의한다[9, 10].

가. 단일 차원 시계열 데이터

단일 차원 시계열 데이터는 단일 값을 요소로 가지고 있는 데이터를 말한다. 즉, 단일 차원 시계열 데이터는 벡터의 형태로 시간에 따른 단일 값들을 갖는다.

X = [x1,x2, ... ,xT-1,xT].       (1)

나. 다중 차원 시계열 데이터

다중 차원 시계열 데이터는 단일 차원 시계열 데이터를 각각의 요소로 가지는 데이터를 말한다. 수식적으로 표현하면 다음과 같이 나타낼 수 있다.

X = [X1,X2, ... , XM-1,XM], Xi∈ℝT.      (2)

X는 M차원의 크기를 가지고 (2)의 각각의 요소들은 T차원의 크기를 가져 행렬의 형태를 띤다.

본 논문은 입력 데이터로 관절 좌표 데이터와 관절의 각도 데이터를 사용한다. 관절 좌표 데이터 51개와 각도 데이터 10개를 사용한다.

2. RNN(recurrent neural network)

RNN은 시계열 데이터를 입력으로 사용한다. 대표적인 예시로는 자연어 처리 분야로 번역기 혹은 음성 처리 분야에서 응용된다[11]. RNN은 출력이 다음 은닉층의 입력으로 들어가 순환되는 구조를 가지고 있다. 그림 1은 순방향 신경망과 RNN의 구조를 보여준다. RNN의 출력을 수식으로 표현하면 다음과 같다.

OTNBBE_2022_v22n5_177_f0001.png 이미지

그림 1. (a)순방향 신경망 구조, (b)RNN 구조.

Fig. 1. Structure of : (a) feed-forward neural network, (b) recurrent neural network.

ht = σh(Uhxt + Vhht-1 + bh),       (3)

yt = σy(Wyht + bh).       (4)

ht는 현재 은닉층을, ht-1은 이전 은닉층을 뜻한다. xt는 현재 입력을, yt는 현재 입력에 대한 출력을 뜻한다. σh는 활성화 함수를 뜻하고, bh는 바이어스 값을 뜻한다. Uh, Wy, Vh는 연결 강도를 뜻한다. RNN은 위 수식의 연산으로 정해진 횟수만큼 반복하여 출력한다.

3. LSTM(long short-term memory)

LSTM[12]은 RNN의 문제점인 기울기 소실 및 폭발 문제를 해결하기 위해 고안된 모델이다. 그림 2는 LSTM의 구조를 보여준다. LSTM은 과거의 정보를 조절하는 게이트들을 통하여 기울기 소실 문제를 보완한다.

OTNBBE_2022_v22n5_177_f0002.png 이미지

그림 2. LSTM 구조.

Fig. 2. Structure of LSTM.

ft = σ(Wf[ht-1,xt] + bf),       (5)

it = σ(Wi[ht-1,xt] + bi),      (6)

ot = σ(Wo[ht-1,xt] + bo),      (7)

\(\begin{aligned}\widetilde{C}_{t}=\tanh \left(W_{C^{\circ}}\left[h_{t-1}, x_{t}\right]+b_{c}\right),\end{aligned}\),      (8)

\(\begin{aligned}C_{t}=f_{t} \odot C_{t-1}+i_{t} \odot \widetilde{C}_{t}\end{aligned}\),       (9)

ht = ot tanh(Ct),       (10)

\(\begin{aligned}\sigma(x)=\frac{1}{1+e^{-x}},\end{aligned}\)       (11)

\(\begin{aligned}\tanh (x)=\frac{1-e^{-x}}{1+e^{-x}}.\end{aligned}\)       (12)

ft는 망각 게이트, it는 입력 게이트, ot는 출력 게이트를 뜻한다. Ct는 cell state를 뜻하고 ht는 현재 은닉층을 뜻한다. (11)과 (12)는 각각 sigmoid 함수와 tanh 함수를 표현한 수식이다. W, b는 각각 연결 강도와 바이어스를 뜻한다. 마지막으로 \(\begin{aligned}\widetilde{C}_{t}\end{aligned}\)는 현재 들어오는 입력 중 어떤 값을 새롭게 반영할지 정하는 벡터이다.

망각 게이트는 이전 은닉층의 값과 현재의 입력을 받아 0과 1 사이의 값을 cell state로 보낸다. 활성화 함수는 sigmoid 함수를 사용하여 0과 1 사이의 값을 출력한다. 망각 게이트는 과거의 정보를 기억하는 비율을 출력한다.

입력 게이트는 현재 들어오는 입력의 저장 비율을 조절하는 게이트이다. 입력 게이트도 sigmoid 함수를 통하여 0과 1 사이의 값을 출력한다. \(\begin{aligned}\widetilde{C}_{t}\end{aligned}\)는 tanh 함수를 통과하여 –1과 1 사이의 값을 출력한다.

마지막으로 출력 게이트는 이전 은닉층의 값과 현재의 입력을 sigmoid 함수를 통과하여 출력을 낸다. 현재 cell state를 tanh 함수를 통과한 값과 출력 게이트의 값을 곱하여 최종적인 출력을 낸다. LSTM는 위와 같은 단계를 거쳐 RNN보다 복잡한 방법으로 순환한다.

3. CNN(convolution neural network)

CNN[13]은 여러 필터를 통해 학습 데이터의 특징을 추출하는 네트워크이다. 행렬 입력과 필터의 합성곱을 순차적으로 진행하여 contextual information을 얻어 필터를 학습한다. Contextual information을 추출하는 특징 때문에 CNN은 주로 이미지 데이터를 학습할 때 사용한다.

본 논문에서 사용한 데이터는 행렬의 형태로 여러 시계열 데이터들을 한 번에 합쳐진 형태이다. 그림 3은 본 논문에서 사용한 시계열 데이터의 형태와 합성곱 연산 과정을 보여준다. 그림 3을 수식적으로 표현하면 (13)과 같다.

OTNBBE_2022_v22n5_177_f0003.png 이미지

그림 3. 시계열 데이터 합성곱 연산 과정.

Fig. 3. Convolution of time-series data.

\(\begin{aligned}S(i)=\left(F^{*} K\right)(i)=\sum I(i+m) K(m).\end{aligned}\)       (13)

I는 입력, K는 커널을 의미하며, m은 입력의 행을 나타낸다. 커널의 크기를 조절하여 한 번에 여러 시간 특징 정보들을 합성곱 연산할 수 있다. 본 논문에서 필터는 특징의 수와 같은 길이를 갖는다. 필터는 열 방향으로 움직여 합성곱 연산을 진행한다.

Ⅲ. 실험 데이터 및 전처리

1. 실험 데이터

본 논문에서 사용한 이미지 데이터는 AI hub의 피트니스 운동 자세 이미지를 사용하였다. 사람 행동 인식 framework는 blaze pose를 사용하였다. Blaze pose는 사람을 인식하기 위해 총 33개의 관절 포인트를 사용한다. 각 관절 좌표들은 x, y, z 좌표를 반환한다. 본 논문에서는 33개의 관절 포인트를 모두 사용하지 않고 운동 자세에서 중요한 관절 포인트들만 추출하여 학습하였다. Blaze pose는 그림 4에 나와 있듯이 얼굴 포인트들과 손가락을 나타내는 포인트들이 포함되어 있다. 얼굴 포인트와 손가락 포인트는 운동 자세를 분석하는데 중요하지 않은 정보들이고, 학습에 방해될 수 있기 때문에 학습에 사용하지 않았다. 얼굴을 인식하는 1부터 10번까지의 포인트와 손가락 인식하는 17부터 22번까지의 포인트들을 제거하였다. 최종적으로 사용한 관절 포인트는 총 17개의 관절 포인트를 사용하였다. 학습에서 사용한 이미지 수는 평균적으로 2300장을 사용하였다. 표 1은 운동 자세별 사용한 이미지 수를 보여준다.

표 1. 운동 자세별 이미지 수.

OTNBBE_2022_v22n5_177_t0001.png 이미지

Table 1. The number of images per exercise posture.

표 2. 사용한 관절.

OTNBBE_2022_v22n5_177_t0002.png 이미지

Table 2. Utilized joint landmarks in the proposed method.

OTNBBE_2022_v22n5_177_f0004.png 이미지

그림 4. Blaze pose 관절 포인트.

Fig. 4. Blaze pose landmarks.

OTNBBE_2022_v22n5_177_f0005.png 이미지

그림 5. 시계열 데이터 구조.

Fig. 5. Structure of time series data.

2. 데이터 전처리

관절 좌표 정보에서 추출된 x, y, z 좌표를 이용하여 각 관절의 각도를 계산한다. 관절의 각도는 운동을 분석할 때 중요한 정보로 사용된다. 단순히 사용자의 좌표 정보만을 분석할 경우 사용자의 위치가 달라졌을 때 분류 정확도가 낮아질 가능성이 있다. 이때 관절의 각도 정보를 같이 학습할 경우 이러한 문제점이 완화될 수 있다. 모든 관절의 각도를 사용하는 것이 아닌 운동 자세 분석에 중요한 관절의 각도를 사용하였다. 최종적으로 추출한 관절 각도들은 팔꿈치, 어깨, 골반, 무릎, 발목으로 총 10개의 각도 정보를 추출하였다.

표 3. 사용한 관절 각도.

OTNBBE_2022_v22n5_177_t0003.png 이미지

Table 3. Utilized joint angles in the proposed method.

3. 실험 파라미터

본 논문에서는 3개의 네트워크를 비교한다. 표 4에 설정된 파라미터는 모두 동일하게 설정하였다.

표 4. 시뮬레이션 파라미터.

OTNBBE_2022_v22n5_177_t0004.png 이미지

Table 4. Simulation parameters.

시계열 데이터에서 window size는 중요한 파라미터이다. 본 논문에서 학습한 운동 자세는 총 9가지이다. 각 운동마다 1회 왕복하는 시간이 다르기 때문에 window size를 각 운동 자세의 최소 1회 왕복시간으로 설정하였다. 과적합을 막기 위해 early-stopping 옵션과 dropout 층을 사용하였다. 마지막 출력층의 활성화 함수를 softmax 함수를 사용하여 자세의 분류 정확도를 출력하였다.

Ⅳ. 실험 결과

1. 평가 지표 설정

본 논문에서는 모델을 평가하는 지표로서 accuracy와 f1-score를 사용한다. accuracy와 f1-score를 수식적으로 나타내면 다음과 같다.

\(\begin{aligned}accuracy=\frac{TP+TN}{TP+TN+FP+FN},\end{aligned}\)       (14)

\(\begin{aligned}f1-score=2{\times}\frac{precision{\times}recall}{precision+recall},\end{aligned}\)       (15)

\(\begin{aligned}precision=\frac{TP}{TP+FP},\end{aligned}\)       (16)

\(\begin{aligned}recall=\frac{TP}{TP+FN},\end{aligned}\)       (17)

TP(true positive)는 positive 데이터를 예측 성공한 경우를 뜻하고, TN(true negative)는 negative 데이터를 예측 성공한 경우를 뜻한다. FP(false positive)는 positive 데이터를 예측 실패한 경우를 뜻하고, FN(false negative)는 negative 데이터를 예측 실패한 경우를 뜻한다.

Accuracy는 실제 데이터와 예측 데이터가 얼마나 같은지를 확인하는 지표이다. 본 연구에서 사용한 데이터는 올바른 데이터와 불량한 데이터가 약 1:3 비율인 데이터를 사용하였다. 모든 데이터를 불량한 데이터로 예측할 경우 accuracy는 높지만, 실제 성능이 좋지 않은 문제가 발생하기 때문에 f1-score도 평가 지표로 사용하였다.

F1-score는 precision과 recall의 조화 평균이다. Precision은 올바른 데이터를 실제로 올바르다고 예측한 비율을 뜻한다. Recall은 실제 올바른 데이터 중 올바르게 예측한 비율을 뜻한다.

2. 실험 결과

표 5, 6, 7에서 landmark는 좌표 정보만을 학습했을 때의 결과이고, landmark & angle은 좌표 정보와 각도 정보를 모두 학습한 경우를 의미한다.

표 5. RNN 시뮬레이션 결과.

OTNBBE_2022_v22n5_177_t0005.png 이미지

Table 5. Simulation results based on RNN in terms of accuracy and f1-score.

표 6. LSTM 시뮬레이션 결과.

OTNBBE_2022_v22n5_177_t0006.png 이미지

Table 6. Simulation results based on LSTM in terms of accuracy and f1-score.

표 7. CNN 시뮬레이션 결과.

OTNBBE_2022_v22n5_177_t0007.png 이미지

Table 7. Simulation results based on CNN in terms of accuracy and f1-score.

가. RNN

표 5를 보면 관절 좌표에 각도를 추가하여 학습한 결과는 관절 좌표만 학습한 결과보다 좋은 성능을 확인할 수 있다. F1-score가 0인 모델은 올바른 데이터를 전혀 예측하지 못한 경우이다. 불량한 데이터의 수가 올바른 데이터 수보다 2배 이상 많기 때문에 accuracy는 높게 나타난 대신 f1-score는 0으로 나왔다. 기울기 소실 및 폭발 문제가 발생한 것으로 예상한다.

나. LSTM

표 6의 결과를 보면 각도 정보를 추가한 결과가 더 좋은 것을 확인할 수 있다. 각도 정보를 추가한 모델의 f1-score가 17.6% 증가함을 알 수 있다. RNN 모델에 비해 기울기 소실 문제를 해결하여 높은 성능을 보인 것으로 확인된다. 그러나 특정 운동의 f1-score는 0으로 기울기 소실 문제가 완전히 해결되지 않았다는 것을 알 수 있다.

다. CNN

표 7의 결과를 보면, CNN 모델의 성능이 가장 좋다는 것을 확인할 수 있다. 각도 정보를 추가한 모델의 f1-score가 2.7% 증가함을 알 수 있다. 최종적으로 CNN 모델의 성능이 가장 좋다는 것을 확인하였다.

본 논문에서 사용한 시계열 데이터는 각 관절들의 좌표들로 이루어져 데이터들 간의 관계가 존재한다. 예를 들어 사용자가 좌측으로 움직이면, 모든 좌표들이 움직임에 따라 값이 변화하게 된다. 또한, 특정 각도가 변하면, 그 각도와 관계된 다른 각도가 변한다. 일반적으로 시계열 데이터를 CNN 모델로 학습하는 경우는 흔하지 않다. 그러나 본 논문에서 사용한 데이터들은 서로 상관 관계를 가지므로 CNN의 contextual information을 추출하는 특징 때문에 가장 좋은 성능을 보인 것으로 예상한다.

Ⅴ. 결론

본 논문에서는 시계열 데이터를 활용하여 운동 자세 교정 시스템을 위한 적합한 모델을 제안했다. AI-hub의 피트니스 이미지를 blaze pose를 통하여 분석했다. 좌표 정보를 토대로 각도 정보를 계산하여 학습 데이터로 사용했다. 동일한 데이터를 3개의 딥러닝 모델에 따른 성능을 평가했다. 학습하는 이미지의 수가 불균형하기 때문에 f1-score를 평가지표로 사용했다. 실험 결과로부터, CNN 모델이 RNN 모델과 LSTM 모델에 비해 분류 정확도가 각각 51%, 13% 높은 성능을 보이는 것을 확인했다.

향후 연구로써, 카메라 외의 동작, 자이로 센서와 같은 복합적인 센서 정보를 활용할 경우, 사용자의 운동 자세를 더 정확하게 분류해 행동 인식 서비스에 활용될 수 있을 것으로 예상한다.

References

  1. K. Host and M. Ivasic-Kos, "An overview of human action recognition in sports based on computer vision," Heliyon, vol. 8, no. 6, pp. 1-25, June 2022. DOI: https://doi.org/10.1016/j.heliyon.2022.e09633.
  2. J. Han, J. W. Kim, "A study on the error reduction method and structure for the similar objects recognition with ai model," Journal of the Korea Academia-Industrial, vol. 23, no. 2, pp.30-37, Apr. 2022. DOI: https://doi.org/10.5762/KAIS.2022.23.2.30
  3. S. Jeonng, H. Lee, S. Yoo, K. Lee, and S. Heo, "Artificial intelligence-based medication behavior monitoring system using smartwatch," Journal of Korean Institute of Information Technology, vol. 18, no. 8, pp. 125-133, Aug. 2020. DOI: http://dx.doi.org/10.14801/jkiit.2020.18.8.125
  4. J. Joe, "A new aspect of life sports paricipation," Ministry of Culture, Sports and Tourism, Apr. 2022. https://www.korea.kr/news/contributePolicyView.do?newsId=148900824.
  5. T. Y. Ha and H. Lee, "Presenting direction for the implementation of personal movement trainer through artificial intelligence based behavior recognition," Journal of the Korea Convergence Society, vol. 10, no. 6, pp. 235-242, June 2019. DOI: http://doi.org/10.15207/JKCS.2019.10.6.235.
  6. M. Kim and E. Cha, "Using skeleton vector information and rnn learning behavior recognition algorithm," Journal of Broadcast Engineering, vol. 23, no. 5, pp. 598-605, Sept. 2018. DOI: https://doi.org/10.5909/JBE.2018.23.5.598
  7. H. Bae, G. Jang, Y. Kim, and J. Kim, "LSTM(long short-term memory)-based abnormal behavior recognition using alphapose," Korea Information Preocessing Society: Transactions on Software and Data Engineering, vol. 10, no. 5, pp. 187-194, May 2021. DOI: https://doi.org/10.3745/KTSDE.2021.10.5.187
  8. F. Rishan, B. D. Silva, S. Alawathugoda, S. Nijabdeen, L. Rupasinghe, and C. Liyanapathirana, "Infinity yoga tutor: yoga posture detection and correction system," 2020 5th International Conference on Information Technology Research(ICITR), pp. 1-6, Dec. 2020. DOI: http://doi.org/10.1109/ICITR51448.2020.9310832
  9. H. I. Fawas, G. Forestier, J. Weber, L. Idoumghar, and P. Muller, "Deep learning for time series classification: a review," Data Mining and Knowledge Discovery, vol. 33, no. 4, pp. 917-963, Mar. 2019. DOI: https://doi.org/10.1007/s10618-019-00619-1
  10. J. F. Torres, D. Hadjout, A. Sebaa, F. Martinez-Alvarez, and A. Troncoso, "Deep learning for time series forecasting: a survey," Big Data, vol. 9, no. 1, pp. 3-21, Feb. 2021. DOI: http://doi.org/10.1089/big.2020.0159
  11. Y. Sim, D. Y. Yun, C. Hwang, and S. Moon, "Korean sentiment analysis using natural network: based on ikea review data," International Journal of Internet, Broadcasting and Communication, vol. 13, no. 2, pp. 173-178, Mar. 2021. DOI: https://doi.org/10.7236/IJIBC.2021.13.2.173
  12. S. Hochreiter and J. Schmidhuber, "Long short-term memory," in Neural Computation, vol. 9, no. 8, pp. 1735-1780, Nov. 1997. DOI: http://doi.org/10.1162/neco.1997.9.8.1735
  13. S. Albawi, T. A. Mohammed, and S. Al-Zawi, "Understanding of a convolutional neural network," 2017 International Conference on Engineering and Technology, pp. 1-6, Aug. 2017. DOI: http://doi.org/10.1109/ICEngTechnol.2017.8308186