이제 PT, 안 받아도 됩니다!
좋은 PT 선생님 고르기 너무 어려우시죠? 나 스스로 내 운동 자세를 교정하고, 분석해볼 수 있다면 얼마나 좋을까?
PosePal과 함께라면 가능합니다!
사용자의 운동 영상을 실시간으로 분석하여 자세를 교정하고, 개선을 위한 피드백을 제공하는 운동 코칭 시스템, PosePal을 소개합니다!
- 사용자의 운동 자세를 실시간으로 추적하여 주요 관절의 움직임을 분석.
- 촬영된 영상을 분석하여 올바르게 운동을 수행하고 있는지 여부를 분류하고 분석한 후, 점수화하여 하나의 리포트 형태로 정리.
- 추가적으로 궁금한 점을 실시간으로 챗봇을 통해 질문할 수 있도록 하여, 심화 운동 학습에 도움을 주고자 함.
- 운동 자세 분석
- MediaPipe를 활용하여 운동 자세의 33개 주요 키포인트를 추적.
- Multivariate Time-Series Classification을 기반으로 운동 자세 분류.
- 운동 자세 평가
- ROCKET Classifier를 사용하여 주요 관절의 움직임에 대한 시계열 데이터를 효과적으로 분류.
- Peak Detection 알고리즘을 통해 운동 반복 횟수와 자세 구간 파악.
- 리포트와 챗봇을 통한 피드백 제공
- GPT API를 활용하여 개인 맞춤형 피드백 리포트 생성.
- Prompt Engineering으로 GPT를 전문 피트니스 코치로 설정, 챗봇으로 추가적인 운동 상담 제공.
- Keypoints
-
AI HUB 피트니스 자세 이미지 데이터
- 사람의 피트니스 동작 영상 200,000 Clip(건당 15초)을 촬영 및 편집하고, 해당 영상정보에서 총 300만 장의 영상이미지를 추출하여 24개의 Keypoint로 가공한 데이터.
- 동일 운동동작에 대해 5회 이상 반복동작을 실시. 평균 48명의 동일동작을 촬영하여 데이터셋의 품질 향상. 한국인 평균 체격의 ±20%, 연령대 20
30대, 운동년수 25년 남녀 70여 명을 모델로 실내 스튜디오에서 촬영. - 각각의 운동에 대하여 정의된 운동 상태의 수에 맞춰서 전체 경우의 수가 설정됨. 예를 들어 푸시업의 경우 5가지의 운동상태를 이용하여 1가지의 바른 자세, 31가지의 틀린 자세에 대해 촬영.
-
커스텀 데이터
- 본 프로젝트에서는 AI HUB의 Annotated 데이터를 사용하는 대신 Raw Image를 사용해 MediaPipe로 Pose Estimation 수행, 이에 따른 Output인 Coordinates 값을 학습의 Input으로 사용
- 운동별 약 10,000 프레임 사용.
-
Intuition
- 사람의 운동 동작은 일종의 Time-Series로 볼 수 있다?
- 운동 동작을 수행하며 관절마다 변화하는 위치 좌표를 Multivariate Time-Series로 나타낼 수 없을까?
-
Multivariate Time-Series
-
MediaPipe
- Google의 Pose Estimation 프레임워크로, BlazePose를 기반으로 하여 높은 정확도 제공.
- 사람의 어깨, 팔꿈치, 무릎 등 주요 신체 랜드마크를 추적하여 33개의 3D 키포인트제공
- OpenPose Framework와 비교하여 상대적으로 가벼워 모바일 환경으로의 확장 가능성
- For Training: AI HUB Raw Image Data -> Pose Estimation -> Training Data Construction
- For User: Video Data -> Dividing Video into Frames -> Pose Estimation -> Input data for Inference
-
ROCKET Classifier
-
GPT API
- 사용자의 운동 데이터를 바탕으로 언어 기반의 개인화된 피드백 생성.
- Exercise Feedback: Generates language feedback based on the model’s analysis.
- Exercise Counseling: Provides real-time responses to user queries related to exercise and general fitness.
-
Streamlit
- 사용자가 운동 영상을 업로드하고, 리포트를 확인한 후 챗봇을 이용할 수 있는 인터페이스 제공.
- First Page: Service Implementation, enabling taking or uploading exercise videos.
- Second Page: Exercise Counseling Interface, displaying GPT-powered personalized reports and chatbot for real-time conversation with users.
-
Methodology
- Data Smoothing:
- Time-Series의 noise를 제거하여 매끄럽게 만들기.
- Peak Detection의 정확도를 높이기 위한 중요한 사전 작업.
- Peak Detection:
- Smoothed data 기반으로 Peak 감지하여 운동의 reps를 파악.
- 각 반복 구간의 시작과 끝을 정의.
- 가장 변동성이 심한 좌표를 기준으로 삼음
- e.g. 사레레는 left elbow의 y좌표를 기준으로 삼음.
- 2 reps마다 데이터를 결합하여 chunking.
- Point: Time Series Data를 Chunking 후 Rocket Classifier의 Input Data로 넣어 모델 학습 및 추론 진행.
- Data Smoothing:
-
개인 맞춤형 리포트 생성
-
실시간 챗봇 기능
-
Contributions
- Time-series를 이용한 Exercise Classification의 신선함(?)
-
Limitations
- 이따금씩 나타나는 Hallucination Problems.
-
모델의 유연성, 확장 가능성
- 새로운 운동 데이터를 쉽게 적용할 수 있는 아키텍처 설계.
이름 | 팀 | 역할 |
---|---|---|
김준호 (팀장) | DS | Multivariate Time-Series Modeling, Pose Estimation Modeling |
김서윤 | DA | LLM, Reports Generation, Chatbot System |
김성환 | DS | Video Processing, Pose Estimation Modeling |
이상헌 | DE | Fullstack |
최수현 | DS | Multivariate Time-Series Modeling, Pose Estimation Modeling |
홍규원 | DS | LLM, Reports Generation, Chatbot System |