※ 인공지능 개발자 양성과정 내 프로젝트 수행
http://kcm.kfq.or.kr/_Information/Information_06.aspx
0. 개요
1) 주제: 헬스 자세교정 플랫폼 [ WebRTC를 이용한 실시간 스트리밍 및 MediaPipe를 활용한 운동 자세 구분 ]
2) 기간: 2021. 7. 17 ~ 10. 23
3) 4인 1조 인원 구성
4) 맡은 역할: '인공지능 모델'
- 프로젝트 메인 기능 구현 및 테스트 (과정 초반 전원 참여)
- 좌표(CSV) 기반 데이터 수집 및 학습
- 스쿼트, 런지, 팔굽혀펴기, 플랭크, 윗몸일으키기 등 맨몸운동에 대한 인공지능(DNN) 모델 훈련 및 튜닝
- 발표자료 제작
5) ZA.BA 명칭 유래: 자세를 바르게 + 기회를 잡아내다 + 프로그래밍 언어 자바(Java)와 명칭만 다르게끔
1. 프로젝트 제작 동기
1) 왜 홈 트레이닝인가?
- 코로나19로 인한 건강 문제 발생 : 신체활동 감소, 흡연 증가 등으로 인한 체중 증가 및 건강 상태 악화
- 코로나 시대에 따른 사회 변화 : 코로나 대유행 때마다 ‘홈 트레이닝’ 언급량 증가
- 트레이너가 겪는 어려움 : 코로나 영향 및 유튜브 시장 등으로 인해 대면 트레이닝에 어려움 발생
- 올바른 자세의 중요성 : 정확하고 올바른 자세가 트레이닝에 있어서 가장 중요
→ 이를 모두 고려한 트레이닝 플랫폼에 대한 개발 필요성 대두
2) 왜 ZA.BA.인가?
- 차별성 : 전문 트레이너의 피드백을 받을 수 없는 단순 AI 트레이닝 플랫폼과 차별화
- 기획의도
◦ 트레이너에게 받을 수 있는 실시간 자세 피드백
◦ 줌과 같은 인터넷 서버와 인공지능 기술을 결합한 웹 사이트 개발
- 개발 목적
◦ 트레이너의 전문적 코칭
◦ 정확한 자세를 측정하는 AI
◦ 운동량 측정 데이터 제공
2. 서비스 및 구조 설명
3) 프로젝트 설계
- 일정 : 구글 스프레드시트, 트렐로 등을 활용한 의사소통 및 협업 수행
- 유스케이스 : 운동 선택, 화상 채팅 등 사용자 입장에서 설계한 유스케이스
- 테이블 : 회원정보, 트레이너 정보, 운동량을 반영할 수 있는 테이블 설계
- 인공지능 모델 : 수집, 훈련, 테스트 3단계를 거친 운동별 인공지능 모델 개발
4) 서버 및 인공지능 모델 구조
4.1) 서버 구조
4.2) 인공지능 모델 구조
- 데이터 수집
- 모델 훈련 및 테스트 : CSV 파일을 활용하여 데이터 수집 후 운동별 모델 훈련, 시각화 및 테스트
- 테스트 과정 : 훈련한 모델을 기반으로 하여 실제 테스트 수행
5) 주요 제공 서비스
- 서비스 안내 페이지 : 스쿼트, 런지, 푸쉬업, 플랭크, 윗몸일으키기 등 5개의 맨몸 운동 제공
- 트레이너 선택 페이지 : 원하는 트레이너를 선택하여 방에 입실
- 실제 운동 페이지 : 트레이너와 사용자들이 한 화면에서 트레이닝 실시
- 대시보드 페이지 : 사용자 개인과 전체 사용자의 운동 결과 표시
◦ 대시보드 1 : 사용자 개인의 오늘 운동량과 사용자 전원의 오늘 운동량 산출
◦ 대시보드 2 : 운동 횟수에 따른 목표 수치 및 등급 제공
◦ 대시보드 3 : 스쿼트 운동 횟수에 대한 사용자 순위와 인공지능 모델의 정확도 제공
◦ 대시보드 4 : 시용자의 날짜별 운동량 제공
- 고객센터 페이지 : 문의사항과 의견을 메일로 보내는 기능
3. 서비스 과정 시연
6) 프로그램 영상 시연
- 메인 페이지
- 대시보드
- 트레이너 인증 (+ 요청, 대기)
- 스쿼트
- 플랭크
- 런지
4. 결과 정리 및 요약
- 서비스 관련 : 실내 + 비대면 + 전문성의 세 가지 요소를 모두 고려한 헬스 트레이닝 플랫폼
- 기술 관련 : 실시간 트레이닝을 통한 회원 맞춤 데이터 제공
- ZA.BA.가 주는 가치 : 새로운 일상에서 건강을 챙기고, 서로를 만나는 새로운 방식
- 발표자료 (일부)
<요약>
1) 목적: 코로나로 인한 건강 문제, 홈 트레이닝 수요 증가, 대면 트레이닝에 어려움, 올바른 자세를 모두 고려하여 트레이너와 연동하는 인공지능 플랫폼을 개발
2) 사용기술
- OpenCV, MediaPipe를 활용한 신체 인식
- NumPy, Pandas를 통한 데이터 수집 및 전처리
- Matplotlib으로 손실 함수(loss function)을 시각화
- Scikit-learn을 사용하여 모델 훈련 및 테스트
- TensorFlow, Keras로 운동별 모델 생성 및 개선
- 그 외 웹 구현에 사용된 라이브러리 다수
3) 프로젝트 내 역할: 일정 예측, 목표 및 문제 정의, 데이터 수집 및 학습, 인공지능 모델 튜닝 역할 수행
4) 프로젝트 결과: '새로운 일상에서 건강을 챙기고 서로를 만나는 새로운 방식'이라는 가치를 만들어냄
※ 프로그램 사용 환경(버전)
Java
- 이클립스 Version: 2020-03 (4.15.0)
- jdk1.8.0_241
- jre1.8.0_291
Tomcat9
Directiry path:
- Tomcat9 : /var/lib/tomcat9/webapps/ROOT/ (웹서버)
- Python : ~/dev/python
- Java : ~/dev/java
- STS : ~/dev/sts_workspace
Python
- Python : 3.8.8
- TensorFlow : 2.5.0
- OpenCV : 4.5.3.56
- numpy : 1.19.5
- Sklearn : 0.24.1
- MediaPipe : 0.8.6
MySQL
- 8.0.26
- Workbench 8 이상
- DBeaver
SpringBoot
- spring-tool-suite-4-4.11.0.RELEASE-e4.20.0
WebCam
- 1280x720
- 프로젝트 결과: 2021 혁신성장 청년인재 집중사업 최종 프로젝트 발표회, 머신러닝 SW개발 부문 대상 수상 (http://news.heraldcorp.com/village/view.php?ud=202110271339305510355_10)
안동대, 2021 혁신성장 청년인재 집중양성사업 프로젝트 발표회 및 수료식 개최
biz.heraldcorp.com
★ 프로젝트 자료 - 팀장님 GitHub 주소 https://github.com/ansanghyun20/ZA.BA
GitHub - ansanghyun20/ZA.BA: 홈 트레이닝 자세 교정 플랫폼
홈 트레이닝 자세 교정 플랫폼. Contribute to ansanghyun20/ZA.BA development by creating an account on GitHub.
github.com
'데이터 [Data] > Deep Learning' 카테고리의 다른 글
Deep Learning 강의내용 정리: Neural Network (0) | 2021.08.22 |
---|---|
Deep Learning 교육내용 정리: Keras 이해와 활용 (0) | 2021.08.22 |
Deep Learning 교육내용 정리: 인공신경망 (0) | 2021.08.22 |
댓글