팀 프로젝트 #3 (딥러닝) 개발 개요서 | |||
팀 번호 / 팀 명 | 팀. 1 : 알배긴 사람들 | ||
프로젝트 주제 | 까꿍 PT (딥러닝을 활용한 운동 자세교정 프로그램) | ||
프로젝트 기간 | 2023년 1월 9일 ~ 2023년 1월 30일 ( 21일) | ||
프로젝트 목표 | 운동을 하기 싫어하는 사람들이 운동과 친해질 수 있도록 돕는다. | ||
소요 기술 | 딥러닝(pose estimation, 자연어처리), 머신러닝 | ||
Data 출처 | 직접 측정 | ||
■ 프로젝트 필요성 및 주요 기능 ➤ 프로젝트 필요성 - 운동을 해야한다 말로만 하고, 실천하지 못하는 사람들이 많다. 그 이유는 운동을 하는 방법을 모르기 때문이다. 이러한 사람들에게 빅데이터와 딥러닝 기술을 통해 손쉽게 운동을 할 수 있는 환경을 만들어 줄 수 있을 것이라 생각한다. ➤ 프로젝트 구체화 - 프로젝트는 총 3가지 기술을 사용한다. 첫 번째, 카메라와 Pose Estimation으로 이용자의 자세를 측정한다. 두 번째, 이 자세 데이터를 딥러닝, 머신러닝 모델을 통해 정확한 자세인지, 아닌지를 측정한다. 세 번째, 자연어처리를 통해 프로그램과 서로 소통이 가능한 환경을 구축한다. ➤ 프로젝트 구현 - 프로젝트 구현을 위해서 Pose Estimation 단계에서는 MediaPipe를 사용하여 이용자의 자세를 측정한다. 고정된 카메라의 위치(각도가 고정된)에서 스쿼트, 런지, 푸쉬업, 플랭크 등의 동작의 준비자세, 정답자세, 틀린자세일 때의 좌표값을 측정하여 데이터 프레임화한다. 이를 머신러닝을 통해 분류모델을 제작한다. 해당 분류모델이 있다면 이용자가 정확한 자세를 하였는지 측정할 수 있을 것이다. - 자세를 교정하는 프로젝트라면 시중의 여러 운동 보조 프로그램과 차별화를 할 수 없다고 판단한다. 그래서 우리 팀은 자연어처리를 통해 서로 양방향 소통이 가능한 다른 운동 보조 프로그램과 차별화된 프로젝트를 진행하고자 한다. 프로그램은 이용자의 컨디션을 물어보고 이에 따라 그 날의 운동 개수를 조절한다. 또한 운동 중 힘든 상황에서 힘들다라고 말을 하면 움동의 개수를 줄이는 방식도 구현해보고자 한다. 반대로 운동을 더 하고 싶다고 말 할 수도 있다. - 리워드 시스템을 적용하여 유저가 프로그램이 정해주는 운동량에 개입할 경우 리워드를 감소시키거나 증가시킬 수 있게 설계한다. 이러한 리워드를 통해 이용자는 업적을 달성하거나 보상을 받을 수 있다. - 당초 계획은 이 모든 과정을 휴대폰 앱으로 제작하려 했으나, 실제로 Pose Estimation을 통해 데이터를 수집할 때는 카메라가 고정되어 있는지 여부가 중요하다. 유저가 자유롭게 카메라 위치를 바꿀 수 있다면, 전문적인 장비를 통해 360° 방향에서 데이터를 측정해야 한다. 이는 제한된 시간과 제한된 장비로는 불가능하기 때문에 카메라를 고정할 수 있는 프로그램으로 제작하기로 하였다. 그래서 우리는 프로젝트를 QT로 제작한다. |
|||
■ 프로젝트 개발 환경 | |||
연번 | 구분 | 내용 | |
1 | 운영체계 | Windows, Linux(Ubuntu 20.04) | |
2 | 데이터 분석 (좌표 데이터) | numpy, pandas, matplotlib | |
3 | DB | MySQL | |
4 | DL(Pose Estimation) | MediaPipe, OpenCV | |
5 | DL(자연어 처리, 음원 분석) | librosa, TensorFlow | |
6 | ML | Scikit-Learn | |
7 | GUI | pyQT | |
8 | 개발언어 | 파이썬 | |
9 | 환경 | GIT, VSC, Jupyter notebook Slack, draw.io(설계) |
|
■ 프로젝트 수행계획 | |||
프로젝트 운영 전략 |
- 5인 팀을 구성하여 협업으로 팀프로젝트 수행 - 문제해결을 위해 팀이 함께 기획, 설계, 개발, 테스트, 배포, 발표 단계로 진행 - 팀별로 매일 1회 미팅 통해 진행상황 보고 및 일정 조율 - 기술적 어려움이 있을 때, 문제점을 파악하여 기술지원 |
||
■ 예상 프로젝트 결과물 - 최종 완성된 기계는 키오스크와 같은 고정된 기계 이용자는 이를 집안에 비치하여 언제든지 운동을 진행할 수 있다. - 이용자는 하루에 1번 운동을 진행하며, 운동을 진행할 때마다 리워드를 지급받는다. 지급받은 리워드로 업적 또는 물품을 구매할 수 있게 한다. - 이용자는 자신의 운동 진행상황을 시각화 자료를 통해 확인할 수 있다. - 이용자는 운동을 시작하는 경우 프로그램과 서로 양방향 소통을 하여 그 날의 컨디션, 신체적 문제 등을 음성이나 텍스트로 입력 받는다. 이를 통해 프로그램은 최적의 운동량을 추천한다. - 이용자의 준비자세와 운동자세를 측정하여 개수를 카운트하고 이를 데이터베이스에 기록한다. - 다양한 운동을 지원할 수 있으며, 스쿼드, 푸쉬업, 런지 등등을 지원한다. ■ 프로젝트 기대효과 - 운동을 하기 싫어하는 사람들이나 운동을 좋아하는 사람들에게 언제나 운동할 수 있는 환경을 제공한다. - 운동의 어려움은 자세의 정확성이라 볼 수 있다. 이 프로그램을 통해 정확한 자세로 운동을 연습할 수 있다. - 항상 정해진 분량만을 시키는 기존의 운동 보조 프로그램과는 다르게 데이터에 기반하여 오늘의 적절한 운동량을 추천해줄 수 있다. ■ 개인 기대효과 - 이미지 처리, 자연어 분석, 음성 인식에 필요한 인공지능 기술을 이해한다. - 기업에서 요구하는 이미지, 자연어처리, 음성인식 분석 관련 데이터 수집, 정제, 가공 역량 강화 - 딥러닝 경진대회를 통한 최적의 딥러닝 모델 선정 역량 강화 - 데이터 수집과정에서 발생할 수 있는 다양한 문제점들과 마주하고, 이를 해결 수 있다. |
'ㅇ 프로젝트 > TEAM_운동보조프로그램' 카테고리의 다른 글
8. (완성, 시연영상) 까꿍PT (0) | 2023.01.31 |
---|---|
7. 데이터베이스 구현하기 및 완성 코드 (0) | 2023.01.31 |
6. 자연어처리, 음성을 인식하자. (1) | 2023.01.31 |
5. Pose estimation 에서 스쿼트 자세를 측정하는 방법 (3) | 2023.01.31 |
4. 좌표로 접근을 해보자. (실험) (0) | 2023.01.16 |