Post

AI+X 선도인재양성프로젝트 [Human Activity Recognition]

AI+X 선도인재양성프로젝트 초급 (EDA-2)

📌 Nov 01, 2024 ~ Dec 13, 2024

EDA 두번째 프로젝트는 KT 교수님께서 주신 스마트폰 기반의 센서 데이터를 분석해보고 이를 활용한 사업 아이디어를 발굴해보는 프로젝트였다. 이 프로젝트를 본격적으로 진행하기 전, ‘인간 행동 인식’ HAR : Human Activity Recognition 이라는 것이 무엇인지부터 알아야한다. HAR이란 다양한 센서를 활용하여 사람의 모션에 관련된 정보를 수집하고 해석하여 행동을 인식하는 기술이다.이 기술은 현재 보편적으로 사용되고 있다. 활용 예시 중 하나는 스마트워치이다. 애플 워치, 겔럭시 워치 등과 같은 스마트워치에는 HAR이 내장되어있다. 워치로부터 센서 신호를 받고 특징을 추출하여 모델을 학습시키고 행동을 추론하는 과정을 거쳐 사용자의 행동을 추론하고 이에 맞는 여러 서비스 아이디어를 기획해본다. 그리고 우린 스마트폰 기반의 센서 행동 데이터를 받을 수 있었다.

인간 행동 인식 (HAR : Human Activity Recognition)

📌 우리가 받은 데이터는 ‘Human Activity Using Smartphone Data Set’이다. 데이터에는 6가지의 동작이 구분되어 있고, 이 동작을 구분하는 변수들이 존재한다.

6가지의 동작 종류

📌 처음에 개인 미션으로 주어진 데이터를 탐색하고, 기본 모델을 (Random Forest 알고리즘 활용) 생성한 후 변수 중요도를 구한다. 그 후 중요한 feature와 중요하지 않은 feature들을 구분하고 각 feature 그룹별 중요도도 파악해보며 데이터와 친해진 후, 이를 활용한 사업아이템을 발굴해보았다. Feature들을 중요도 순으로 구분해보는 과정은 매우 중요하다. 실무에서는 수천,수만개의 데이터 핸들링이 필요하고, 많은 데이터를 모두 다 핸들링하기보다는 데이터 분석을 통해 데이터의 피쳐를 줄이고 간소화하는 작업을 해보는 것이 프로젝트의 핵심이라고 생각했다.

데이터에 포함된 변수들은 크게 가속도계로 측정한 Acc(중력가속도), 자이로스코프로 측정한 Gyro(각속도), 가속도의 변화율을 나타내는 Jerk, 자기장 센서로 측정된 Mag, 그리고 각과 관련된 Angle 변수들이 존재한다.

📌 우선 첫번째로 6가지의 Activity들을 구분하기 위한 데이터 전처리와 모델링을 진행하였다. RandomForest 알고리즘을 사용하였고, 코드를 보면 Target은 ‘Activity’로 되어있고, 학습하는데 있어서 불필요한 데이터인 Target(예측값이기 때문에)과 동작을 구분하기 위해 1~6의 숫자를 부여한 Activity_num column은 제외하였다. 과적합을 방지하기 위하여 test_size=.3으로 설정하여 검증 데이터는 입력 데이터중 30%로 설정하였다.

데이터 전처리

모델링

학습 결과(예측 정확도)

📌 이제 학습시킨 모델을 가지고 동작들을 구분하는데 있어서 중요한 변수들을 추출해보았다.

변수 중요도 추출

📌 6가지의 동작들을 구분하는데 있어서 가장 중요한 feature, 변수는 tGravityAcc-min()-X이었고, 결과를 확인해보면 상위 10가지의 변수 중 무려 8개가 중력가속도와 관련된 변수인 것을 확인해볼 수 있었다. 그렇다면 중요도가 높은 변수들의 값을 각각의 6가지의 동작들에서 어떠한 밀집도를 가지며 분포하는지 KDE plot을 통해 확인해보았다.

중요도 Top5 KDE plot

📌 이렇게 변수들의 중요도를 파악해본 후, 각 동작들을 구분하는데 있어서 중요한 변수들도 확인해보았다. is_동작 (sitting,standing..)과 같이 6개의 동작을 구분하는 (해당변수에만 1 부여, 나머지는 0 부여) 변수를 생성하고, 각각의 동작을 mapping하고, 앞서 모델을 학습하는 방식과 같이 학습하는데 있어서 불필요한 변수들은 제거하고, target을 새롭게 생성한 변수로 설정하고 모델 학습을 진행시킨다.

동작을 구분하는 변수 중요도 (Standing)

Standing 동작과 관련된 모델 예측 정확도

Standing 동작을 구분하기 위한 변수 중요도 Top5

📌 변수중요도를 확인한 후, 변수들을 sensor별, agg별, axis별로 정리해놓은 feature 데이터셋에 fi_standing(동작6가지) 중요도 값을 가지는 새로운 변수를 추가하고 변수들의 중요도를 시각화하는 과정을 6가지의 동작 모두 거친다. 사진은 6가지의 동작 중 하나인 ‘Standing’ 앉아있는 자세에서의 변수중요도와 관련된 내용이다.

fi_standing 추가

변수 중요도 시각화 (Standing)

💡 위의 그래프를 확인해보면 ‘tGravityAcc’ 즉 시간대 영역의 중력가속도의 중요도가 가장 높다는 것을 시각화를 통해 확인해볼 수 있었다. 서있는 자세뿐만 아니라 데이터에서 주어진 모든 자세들에 대해서도 시각화를 진행했다. 각각의 자세들에 대한 중요도를 살펴보겠다.

앉아있는 자세에서의 변수중요도 시각화 (Sitting)

누워있는 자세에서의 변수중요도 시각화 (Laying)

걷는 자세에서의 변수중요도 시각화 (Walking)

계단을 올라가는 자세에서의 변수중요도 시각화 (Walking Upstairs)

계단을 내려가는 자세에서의 변수중요도 시각화 (Walking Downstairs)

각 동작에서의 중요도를 정리해보았다.

✔ 앉아있는 자세에서는 ‘tGravityAcc’(중력가속도)와 ‘fBodyGyro’(신체각속도)에 관련된 변수들의 중요도가 높다. 앉아있는 자세에서 몸의 기울기나 자세의 안정성에 따라 중력가속도의 값이 달라지고, 앉은 자세에서 상체의 회전이나 균형을 잡으려고하는 미세한 움직임 등이 자주 일어나기 때문에 신체각속도 값이 중요하다.

✔ 누워있는 자세에서는 ‘tGravityAcc’(중력가속도)의 중요도가 특히 높다는 것을 확인할 수 있다. 그 이유는 누워있는 자세에서는 중력이 수평으로 일정하게 작용하기 때문에 중력의 영향이 가장 뚜렷하게 나타나는 자세이다. 또한 6가지의 동작 중 유일하게 신체가 중력과 수평의 방향으로 위치해있는 동작이기도 하다.

✔ 걷는 자세에서는 신체가속도의 크기 즉, 걷는 동작을 수행하는 동안 몸이 얼마나 빠르게 움직이는지를 측정하는 ‘fBodyAccMag’변수와 걷는 동안 가속도(속도변화)가 얼마나 급격히 변화하는지 나타내는 ‘fBodyAccJerk’ 변수, 그리고 신체의 가속도를 나타내는 변수인 ‘fBodyAcc’ 변수와 ‘tGravityAcc’(중력가속도)를 나타내는 변수들의 중요도가 높은 것을 확인할 수 있다.

✔ 계단을 올라가는 자세에서도 마찬가지로 수직방향으로 강한 힘이 작용하기 때문에 다른 동작들과 마찬가지로 ‘tGravityAcc’ 중력가속도와, 계단을 오르며 발생하는 상체와 하체의 움직임과 신체가 얼마나 급격히 변화하는지 나타내는 변수인 ‘fBodyAcc’,’fBodyAccJerk’ 변수들이 중요한 것을 확인할 수 있었다.

✔ 계단을 내려가는 자세에서는 몸이 아래로 내려가는 방향으로 중력이 작용하므로, ‘tGravityAccMag’ 중력가속도 크기 변수로 수직하강운동을 감지할 수 있다. 또한 계단을 내려갈때 발생하는 하강가속도 및 몸의 움직임을 추적하는 ‘fBodyAccMag’,’fBodyAcc’ 변수들이 중요하다.

✅ 앞서 정리한 내용들을 보면, 공통적으로 각각의 동작들을 구분하는데 영향을 많이 주는 변수들에는 크게 중력가속도(GravityAcc), 그리고 몸의 움직임을 측정하는 신체가속도 (BodyAcc), 그리고 신체의 회전을 나타내는 신체각속도 (BodyGyro), 움직임의 급격한 변화를 추적할 수 있는 가속도 변화 (BodyAccJerk) 변수들이 중요하게 작용하는 것을 확인할 수 있었다.

이러한 EDA를 바탕으로 우리팀이 제안한 사업아이템은 바로 아동 발달 추적 시스템 “SMART GROWTH” 였다.

Smart Growth

📌 우리 팀이 생각해낸 Smart Growth 아동 발달 추적 시스템은 아이들의 행동 데이터를 기반으로 발달 이상 및 발달 지연 징후를 발견하고 이에 맞는 사용자 맞춤형 양육 가이드를 제공하여 아이의 건강한 성장을 지원하는 서비스이다. 사용자 아이의 웨어러블 기기아동의 움직임을 실시간으로 모니터링하고 분석한다. 요즘 맞벌이 가정도 많고, 365일 24시간 내내 아이의 성장을 지켜볼 순 없기 때문에, 부모의 시야에 벗어나 있을때도 아이의 성장과 발달을 객관적인 데이터 기반으로 추적할 수 있다는 것이 Smart Growth의 핵심이다. 이와 연계된 스마트폰 어플을 통해 아동의 부모는 웨어러블 기기를 통해 수집된 아이의 행동 데이터를 통해 개인별 발달 상황을 분석하고, 부모와 전문가에게 맞춤형 피드백을 제공하여 발달 지연이나 문제 행동을 조기에 감지하여 부모의 예방적 개입이 가능하도록 지원한다. 나는 기획부분을 맡았다.

우리는 이러한 사업아이템을 구체화하는 과정에서 크게 2가지의 난관에 봉착했다.

➊ 구체적인 기준의 필요성 예를 들면, 아이의 웨어러블 기기를 통해 데이터를 수집했으면 해당 데이터가 기준 이하인지 아니면 발달 과정에 아무런 문제 없는지를 판단할 수 있는 구체적인 기준이 필요했다.

➋ 1번 문제의 기준을 확립하기 위한 대규모의 아이 행동 관련 데이터 1번 문제를 해결하기 위해 어떠한 기준을 만들기 위해선 유아 행동관련 데이터가 필요했다. 사용자 아이의 데이터를 수집하여 해당 아이의 발달 현황을 판단할 모델을 학습시키기 위한 충분한 데이터가 필요했다.

🔍 나는 우선 아이 행동과 관련된 공공데이터와 같이 우리가 활용해볼 수 있는 데이터가 있는지 서울시 공공데이터와 Kaggle을 찾아보았지만 찾지 못하였다. 눈을 돌려 유아 행동과 관련된 논문들을 읽다가 단서를 찾을 수 있었고, 비록 우리가 가진 행동 데이터들은 모두 성인을 대상으로 측정한 데이터이지만, 데이터를 가공하면 우리의 목적에 맞게 사용할 수 있지 않을까하는 생각이 들었다. 첫번째 논문은 정상적으로 발달하는 영아와 발달 지연이 있는 영아가 기어 다닐 때 사지 근육의 협응에 대한 연구와 관련된 논문이었다.

정상적으로 발달하는 영아와 발달 지연이 있는 영아가 기어 다닐 때 사지 근육의 협응에 대한 연구

✅ 논문의 내용을 읽다보면 아이의 정확하고 자연스러운 움직임을 측정하기 위해서는 jerk와 같은 변수들은 최소화하는것이 가장 보편적인 가설이며, 고주파 신호들은 모두 노이즈로 간주하여 제거하고, 신호의 주요 패턴이나 구조적 정보를 포함하는 저주파 성분만 포함한다고 나와있다.

우리가 살펴본 2번째 논문은 영아의 발달 지연을 인식하기 위한 웨어러블 센서를 사용한 연구로, 하루종일 다리 움직임의 통계적 특징 분석을 다룬 내용이었다. 해당 논문의 센서와 관련된 부분을 살펴보면 다음과 같은 내용을 포함하고 있었다.

웨어러블 센서를 활용한 영아의 발달 지연

✅ 연구에 3축-가속도계와 3축-각속도계가 사용되었다.

마지막으로 3번째 논문은 웨어러블 움직임 기기를 활용한 유아의 움직임과 자세 측정과 관련된 연구였다.

웨어러블 기기를 활용한 유아의 움직임과 자세 측정 (점프수트 개발 관련 연구)

✅ 움직임을 수행하는 동안의 신체관련 데이터를 가속도계와 각속도계를 활용하여 수집하여 활용한다.

이와 같은 내용들을 종합하여 우리는 기존의 데이터에서 전처리를 진행하였다.

데이터 전처리

🔍 또한, 우리가 가진 6가지의 동작 중에서 유아가 발달해나가는 과정에서 먼저 수행하는 동작(저수준)들이 존재하고, 저수준의 동작들이 먼저 수행되어야 고수준의 동작들이 수행될 수 있을 것이라고 생각했다.

저수준,고수준 동작 구분

  • 전처리한 데이터 내에서 저수준의 동작들이 수행되기 위해 중요한 변수들을 알아보기 위해 시각화를 진행하였다. 차례대로 누워있는 자세, 앉아있는 자세, 서 있는 자세, 그리고 유아에게 있어서 첫 걸음마를 떼는 순간이 중요하기 때문에 걷는 자세에 대한 변수 중요도 차례로 시각화를 진행했다.

Laying

Sitting

Standing

Walking

  • 누워있는 자세 - X축 방향으로의 tGravityAcc(min,energy,mean)값이 가장 중요하다.
  • 앉는 자세 - Y축 방향으로의 tGravityAcc(max,mean,min)값이 가장 중요하다.
  • 서 있는 자세 - 앞서 살펴본 앉아있는 자세와 누워있는 자세와 비교해보았을때, Z축 방향으로의 변수들의 중요도가 높아졌다.
  • 걷는 자세 - 중력가속도가 아닌 신체가속도 (tBodyAcc) 변수들의 중요도가 높다.

💡 유아의 행동과 관련된 데이터를 충분히 얻는다면, 이렇게 주요 변수들의 변화 시점을 아이들의 평균적인 변수 중요도 변화 시점과 비교하여 사용자 아이의 발달 수준을 확인할 수 있다.

그렇다면 정말 이러한 아동 발달 추적 서비스가 필요할까?

  • 우선 발달 장애와 발달 지연은 다르다.
  • 발달 지연의 발견시기가 늦어지면 발달 장애로 넘어갈 가능성이 매우 높아진다.
  • 발달 지연 및 발달 장애를 해결해주는 단일적인 치료법은 존재하지 않는다.
  • 조기에 발달 지연을 감지하고 이를 극복할 수 있는 개별적인 접근이 필요하다.
  • 해마다 증가하는 발달 장애인의 수

  • 현재 존재하는 영유아발달선별검사 또한 주양육자의 주관적인 기준을 기반으로 검사 및 결과 제공 (구체적인 치료법을 제시하지는 않음)

  • 현재 존재하는 아동 발달 지연 관련 어플들 또한, 부모의 주관적이고 일반화된 평가를 기반으로 사용자의 발달 상태를 판단하며, 정확한 발달 상태를 추적하는 어플은 아직 존재하지 않음. (ex. 키우미, 사이이음)

📌 이러한 점들을 미루어 보았을때, 실시간 모니터링 및 맞춤형 솔루션을 제공할 수 있는 Smart Growth는 경쟁력이 있다고 판단했다.

Smart Growth의 핵심 기능 • 정량적 데이터 기반 실시간 모니터링

  • 실시간으로 상태를 모니터링하여 정보제공

ex.”오늘 뒤집기 3회 관찰되었습니다. 더 활발한 활동이 필요합니다.”

  • 발달 상태 분석 및 맞춤형 솔루션 제공
  • 연령별 발달 기준 데이터를 바탕으로 현재 상태 분석, 분석 결과 제공
  • 주기적인 종합 레포트 제공
  • 주기적으로 수집한 데이터들을 모아 분석하여 한눈에 확인할 수 있도록 제공

기능 확장 가능성

  • 아이의 음성 및 옹알이를 분석하여 다양한 발달 영역 중 언어 측면에서의 발달 지연 징후 확인할 수 있도록 지원
  • 맞춤형 솔루션을 지원하는 의료 기관 혹은 지원 단체 추천 기능

Smart Growth 기대 효과

  • 발달 단계 조기 진단
  • 데이터 기반 분석을 통해 아이의 발달 단계를 정확하게 평가, 발달 지연 조기 발견 가능
  • 부모의 신뢰 확보
  • 센서를 통해 수집된 데이터를 기반으로 아이의 상태를 객관적으로 파악
  • 사회적 가치 창출
  • 발달 지연으로 인한 사회적 비용 절감, 아동 복지 향상에 기여
  • 맞벌이 가구, 발달 장애인 수의 지속적 증가 등 현대 사회의 요구를 충족

✅ 피드백 : 서비스 아이디어가 정말 좋다. 요즘 발달 지연으로 고민하는 젊은 부부가 굉장히 많기 때문에 꼭 필요한 서비스를 기획했다. 발달지연/장애에 대한 충분한 조사가 이루어진 것 같고, 시장 조사 또한 잘했다. 매우 경쟁력이 있는 서비스 아이디어가 될 것 같다. 유아의 행동과 관련된 데이터를 얻기는 개인정보와 관련된 민감한 문제로 얻기 굉장히 힘들고, 또 만약 있더라도 우리가 원하는 형태의 데이터가 아닐 확률이 굉장히 높다. 그래도 여러 논문들과 자료들을 통해 가지고 있는 데이터에서 어떻게 전처리가 이루어져야하는지에 대한 답을 찾은 것 같아서 좋았다. 하지만 이러한 서비스가 작동하는 원리와 이를 뒷받침하는 객관적인 근거가 부족하다. 예를 들면 성인과 유아의 신체적인 비율차이 등을 통한 행동 분석 등 조금 더 구체적이고 객관적인 근거가 필요하다. 사업투자자를 설득시키려면 아이디어를 뒷받침하는 객관적이면서도 이해가능한 객관적인 근거가 필요하다.

✅ 느낀점 : 이렇게 데이터를 기반으로 아이디어를 기획해보는 경험이 굉장히 중요하다고 생각했다. 정말 소중한 경험이고, 학년을 올라가고 실력이 생기면 꼭 아이디어를 기획하는데 그치는 것이 아니라, 아이디어를 구체화해보는 것까지 시도해보고싶다. 피드백을 받고 이렇게 정리해보니 부족한 부분이 굉장히 많은 것 같다. AI를 전공하는 사람은 다양한 분야에 관심이 있는 사람이어야한다고 교수님께서 말씀해주셨는데 맞는 것 같다. 현재 AI는 다양한 분야에서 활용 및 적용되고 있기 때문에 항상 어떻게 적용할 수 있을까 하는 생각을 가지고 있어야겠다고 생각했다. 또한, 아이디어를 기획하고, 구체화하는 과정에서 데이터가 얼마나 중요한지 알게되었고, 수많은 데이터중에서 우리의 목적에 맞게 데이터를 가공하는 것 또한 매우 중요하다는 것을 깨닫게되었다. 이번 AI+X 초급반을 통해 데이터를 보는 눈을 기를 수 있었던 것 같고, 이렇게 팀원들과 소통하며 한가지 목표를 가지고 협력하는 소중한 경험을 얻은 것 같아서 많은 것을 얻어가는 것 같다.

–—————————————references —————————————————

📄 Q. L. Xiong et al., “Inter-Limb Muscle Synergy of Hands-and-Knees Crawling in Typical Developing Infants and Infants with Developmental Delay,” 2018 40th Annual International Conference of the IEEE Engineering in Medicine and Biology Society (EMBC), Honolulu, HI, USA, 2018, pp. 4697-4700, doi: 10.1109/EMBC.2018.8513123.

📄 Airaksinen, M., Räsänen, O., Ilén, E. et al. Automatic Posture and Movement Tracking of Infants with Wearable Movement Sensors. Sci Rep 10, 169 (2020).

📄 M. S. Abrishami et al., “Identification of Developmental Delay in Infants Using Wearable Sensors: Full-Day Leg Movement Statistical Feature Analysis,” in IEEE Journal of Translational Engineering in Health and Medicine, vol. 7, pp. 1-7, 2019, Art no. 2800207, doi: 10.1109/JTEHM.2019.2893223. keywords: {Legged locomotion;Pediatrics;Feature extraction;Delays;Acceleration;Wearable sensors;Correlation;Infant;neuromotor developmental delay;accelerometer;sensor},

This post is licensed under CC BY 4.0 by the author.