수정사항은 파란색으로 입력 부탁드립니다.
‣
방금 작성 했는데 한번 봐주실 수 있을까요?
OGYM(오짐): AI를 통한 운동으로 나의 몸도, 나의 SNS도, 나의 부대도 오짐!
OGYM은 AI를 통해 장병들의 운동자세를 분석해주며, 장병들 사이에 운동 네트워크를 형성해 운동의욕을 고취하는 앱입니다. 군인의 삶에서 체력은 중요 요소입니다. '강인한 육체에 강인한 정신이 깃든다'라는 말처럼, 부대원들의 육체적, 정신적 강인함이 부대의 전투력과 직결됩니다. 이를 위해 부대에서는 체력평가를 실시하며 많은 장병들은 입대 후 운동을 시작합니다. 군장병들은 운동을 배우기 위해 운동을 잘하는 사람을 찾아 다니거나 유튜브를 통하여 운동을 배우기도 합니다. 유튜브를 보며 거울을 보기도 하고, 주변인원들과 같이 운동하기도 하지만, 자신의 운동을 객관적으로 평가할 방법이 없습니다. 자신의 운동 자세의 문제점을 파악하지 못하는 것은 결국 부상으로 이어지고, 임무 수행에 차질을 빚기도 합니다. 따라서 저희는 OGYM 인공지능 앱을 개발하여 장병들의 운동자세를 분석해주며 운동 시 부상을 방지하고, 장병들 사이에 운동 네트워크를 형성해 운동의욕을 고취하고자 합니다. OGYM은 관절을 포착하여 특정 관절의 위치, 각도가 잘못되었는지, 목표치에 해당하는 운동을 할 때, 끝까지 자세가 틀어지지 않는지를 판단하며, 운동에 대한 종합적인 점수를 제공합니다. OGYM 내의 운동 네트워크에는 '가장 아름다운 운동자세' 랭킹 게시판이 있어 상위권이 되면 자신의 운동자세 동영상 및 팁을 공유할 수 있고, 서로 경쟁하며 발전할 수 있습니다.
<서비스 계획>
(1) 사용자가 피드백받고싶은 운동자세와 수행횟수를 입력
(2) 앱에서 사용자에게 정해진 위치, 거리, 자세에서 운동을 시작하라고 알림(화면에 그림을 그려주면 좋을 듯) 정해진 위치, 거리, 자세를 사용자가 취할 때 앱의 측정이 시작 됨 (사용자가 핸드폰에서 떨어져있기 때문에 음성으로 측정이 시작된다고 알림)
(3) 사용자가 운동을 수행할때마다 앱은 개수를 세어 사용자가 알수 있도록 함
(4) 운동이 다 끝나면 사용자의 운동 영상을 앱이 분석하여 결과를 도출합니다. 이 결과물은 SNS를 통하여 지인에게 공유할 수 있습니다. ex)분석결과 (스쿼트) 80점! 무릎에 무리가 갈 수 있는 자세입니다. 무릎이 발끝보다 많이 나가있어요. 무릎이 앞으로 너무 나오면 관절에 무리가 갈 수 있습니다. 무릎이 발끝과 맞춰지거나 조금만 나오도록 해주세요. 스쿼트 자세에 대해 더 알고싶다면 여기를 참고해보세요. (팔굽혀펴기) 60점! 엉덩이가 너무 낮은 자세입니다. 엉덩이가 낮은 자세로 팔굽혀펴기를하면 허리에 무리가 갈 수 있고, 운동효과가 제대로 나타나지 않을 수 있어요. 엉덩이가 낮은 자세는 힘이 부족할 때 자주 일어나는데, 먼저 무릎을 땅에 붙힌채로 연습해보는게 어떨까요? 팔굽혀펴기 자세에 대해 더 알고싶다면 여기를 참고해보세요.
(5) 결과물을 바탕으로 운동 횟수가 자동적으로 개인을 위한 패널에 즉시 반영됩니다. 또한 타 부대와의 대결에 자신도 동참을 하게 됩니다.
<개인트레이너 AI개발>
(1) 사용도구 : Python-MediaPipe, OpenCV, TensorFlow Lite, 네이버 클로버 API. 인공지능 트레이너는 사용자가 입력한 운동종목(푸쉬업, 스쿼트 등등)과 수행횟수를 입력받고, 사용자가 운동을 실시하는 영상정보를 바탕으로 사용자가 지정한 횟수에 맞게 바른자세로 운동을 하는지 분석을 합니다. 해당 기능을 구현하기 위해서 영상처리를 위한 OpenCV라이브러리, 영상 정보를 바탕으로 사람의 동작을 추정할 MediaPipe와 TensorFlow Lite, 그리고 사용자가 운동 횟수를 다 채웠는지 알려줄 음성 API(네이버 클로버)를 이용합니다.
(2) Pose Estimation 및 운동 횟수 세기 구현. MediaPipe에서 제공하는 pose.precess 함수를 이용해 기본적인 관절 마커 값들을 추정하고, 해당 xy마커 값들을 바탕으로 관절사이의 각도 변화량을 통해 운동을 수행한 횟수를 측정하고, 사용자가 입력한 횟수에 맞게 운동을 실시하면 음성으로 알려줍니다. (3) 바른자세를 판단하는 AI 모델 구현. 해당 인공지능이 학습할 데이터는 틀린 자세로 부터 추출한 관절 마커값들을 전처리한 관절 사이의 각도값들로 이루어집니다. 인공지능은 틀린자세의 클래스를 분류하도록 하며(ex. 푸쉬업에서 엉덩이가 너무 내려가는 경우 등) 해당 데이터로 학습된 인공지능은 사용자가 취한 운동자세에서 어떤 부분이 잘못되었는지 피드백을 하게 됩니다.(무픞이 내려간 경우 → 운동이 끝난 후, '무릎이 너무 내려갔어요!' 라고 알려주는 방식 )
<앱개발>
(1) 사용 도구: Java를 기반으로 layout 구성, Activity 구성을 합니다. 사용자의 데이터나 AI 모델 학습 후 데이터들을 구현하기 위해 Firebase 나 noSQL DB들을 이용하여 구현에 필요한 데이터들을 정리를 합니다. 마지막으로 측정 기능을 담당할 OpenCV라이브러리, Python-MediaPipe, TensorFlow Lite등을 이용하여 AI 모델을 활용을 합니다. 추가적으로 현재 구현하고자 하는 기술들을 이용하기 위해서는 Backend의 AI 모델을 돌린 후 이에 대해 나온 대용량 데이터를 처리할 기술들을 모색 중입니다.