카테고리 없음

GSM Idea Festival 회고

wonone11 2025. 3. 11. 21:19

목적

조금 많이 늦었지만 1학년 1년을 바쳐 만든 아이디어 페스티벌 프로젝트를 회고하고 새 학년 마음을 다잡기 위해 작성해봅

니다...

 

글 특성상 아이디어 페스티벌이라는 단어가 많이 나올 것이기 때문에 아페라고 줄여서 말하도록 하겠습니다.

 

팀 구성

아페를 시작하기 전에 이제 막 전공을 정하고 개발을 시작한 친구들과 프로젝트를 구상하고 팀을 구성해야 했다.

 

심지어 전공을 정하지 못한 친구뿐만 아니라 웹 · 앱 개발과 관련 없는 전공 예를 들면 클라우드, 사이버 보안, AI, 로보틱스 등을 전공으로 정한 친구들과도 팀 구성을 해야 했다.

 

나는 안타깝게도 전공이 AI였다.

"AI는 웹 · 앱과 같이 프로젝트 할 수 있지 않냐"라고 할 수 있지만 1학기도 제대로 AI를 공부하지 못한 나는 무전공과 다를 바가 없었다.

 

그리고 나는 팀 제의를 받긴 했지만 내 능력으론 도저히 감할 수 없는 요구사항을 내새워 거절했다.

 

그러다 나는 앞서 언급 웹 · 앱 개발과 관련 없는 전공인 클라우드, 사이버 보안, AI, 로보틱스를 가진 친구들과 같이 팀을 이루게 되었고 앱 개발자 한 명과 디자이너를 추가 영입해 팀구성을 마쳤다.

 

프로젝트 구상

우리 팀은 AI, 로보틱스가 있었기 때문에 로봇과 AI를 접목시켜 프로젝트를 하면 좋겠다고 생각했다. 하지만 우리의 능력은 우리가 구상한 프로젝트를 만들기 위해 충분하지 않았다.

 

다시 프로젝트를 구상하던 중, 로보틱스를 전공하는 친구가 선배의 추천으로 라즈베리파이를 활용한 화제 경보 시스템을 만들자고 제안하였다. 우리는 일단 화제 경보 시스템을 프로젝트로 정하고 다들 자기 자리에서 열심히 공부했다. 솔직히 말하면 화제 경보 시스템은 로보틱스 친구 혼자서 다 만들어야 했던 프로젝트였다.

 

일주일 뒤 우리는 다시 회의를 했다. 회의에서 화제 경보 시스템은 상을 받기에는 너무 쉬운 주제라는 의견이 나왔고, 조금 더 난이도 높고 기술이 많이 요구되는 프로젝트가 필요하다는 결론에 이르렀다.

 

우리 팀 구성원들은 운동을 좋아했다. 그래서 운동에 관련된 이야기가 오가고 있었고 그러다 AI를 사용하여 자세교정을 해주는 앱을 만들면 어떻겠냐는 말이 나왔고 다들 동의하였다. AI 자세 교정 앱은 로보틱스 친구를 빼고 우리 팀의 전공을 잘 살릴 수 있는 프로젝트이기 때문에 채택했고 개발에 들어갔다. 

 

1학기 프로젝트 개발

앞서 언급했듯이 나는 AI에 대해 아는 게 없었다 아는거라곤 AI에 수학이 중요하다는 것 밖에 없었다. 난 아는게 수학이 중요하다 밖에 없으니 수학 공부만 했고 개발에 기여한 것은 하나도 없었다.

 

어김없이 수학을 공부하던 나는 이러다 AI 개발을 하나도 못하겠다고 생각해서 수학을 내팽겨치고 AI 기술 탐색을 시작했다.

 

우리 프로젝트는 카메라를 중심으로 작동하기 때문에 컴퓨터 비전 기술을 탐색했고 CNN이라는 AI 기술을 찾았다. 이제는 데이터만 찾아서 학습시키면 끝이라고 생각했다. 데이터를 찾은 후 데이터를 다운로드 받으려 했다. 하지만 데이터는 1TB나 되는 데이터였고 후기를 보니 너무 안 좋은 데이터였다.

 

난 망연자실했다. 이제 AI를 어떻게 해야할지 막막했다. 주어진 시간이 끝날 때 쯤 사람 관절마다 landmark를 찍어주는 Google의 Mediapipe라는 기술을 알게 됐고 다음 학기에는 이 기술을 이용해 프로그램을 만들어야겠다는 목표가 생겼다.

 

2학기 프로젝트 개발

여름 방학이 끝났다. 다시 아페 준비를 시작하고, 1학기 때 목표로 잡았던 Mediapipe로 프로그램 만들기를 시작했다. 

그리고 로보틱스 친구는 나와 같이 AI를 전공으로 하게 되었고 사이버 보안 친구는 백엔드로 전향하였다.

 

팔굽혀펴기, 스쿼트, 플랭크 3개의 자세교정 프로그램을 만드려고 했지만 일단 하나 만들고 잘 동작한다면 개수를 늘리기로 하고 가장 쉬울거 같은 팔굽혀펴기 프로그램을 만들었다.

 

프로그램 작동 방식:

1. 머리와 발 좌표가 일정 거리 이상 가까워지고 어깨, 허리, 발목의 각도가 150도 이상이면 준비가 되었다 판단

2. 어깨와 팔꿈치, 손 사이의 각도를 측정해서 일정 각도보다 낮다고 판단되면 state를 down에서 up으로 전환

3. state가 up이라면 어깨와 팔꿈치, 손 사이의 각도가 일정 각도보다 높다면 count에 +1을 해준다.

팔굽혀펴기 프로그램 실행

 

원래 내가 학습을 시켜 AI를 만들고 사용하고 싶었지만 능력 부족으로 나는 내가 만든 AI를 사용하지 못하고 Mediapipe만으로 프로그램을 만들게 되었다.

 

프로그램을 만든 후 백엔드 통신을 위해 FastAPI를 사용하는 방법을 공부했고, 카메라로 들어오는 이미지를 실시간으로 처리해야하기 때문에 웹소켓을 사용하려 했지만 실패했다. 결국, 무식한 방법인 정해진 짧은 시간마다 요청을 보내는 방법으로 백엔드와 통신했다.

 

이제 마지막으로 앱과 연동만하면 끝인데... 실패했다. 결국 앱과의 연동은 실패한 채 전시하게 되었다... 

 

작품 전시

 

팀원들과 전시 준비를 하고 어떻게 우리 앱을 소개할까 논의하다 팔굽혀펴기 시범을 보이자는 의견이 나왔고 실행에 옮겼다.

 

친구와 선배님의 반응은 엄청 좋았다. 게다가 외부 인사분들과 심사하는 선생님 모두 반응이 좋았다.

 

시범 영상이 있었으면 좋았을텐데 없어서 아쉽다.

 

우리는 "우리 잘하면 3등은 할 수 있겠는데?"라고 생각하면서 열심히 설명하고 시범을 보여드렸다. 

 

결과

처음에는 놀자고 만든 팀이라는 소리도 듣고 가망이 없을거 같았던 팀이었지만 어떻게 잘 하다보니 여기까지 오게 되었다.

 

각자 자신의 전공으로는 개발에 자신이 없어 어쩌다 모인 우리 팀이 2등을 하게 되었다.

 

TMI) 상금으로 🍕 자피파티도 🍕 했다.

 

마무리

이번 경험으로 협업 능력, 끈기, 기술 탐색 및 활용 능력 등 정말 많은 것을 얻어간거 같다.

 

다음에는 더 많은 기술을 탐색하고 오픈 소스가 아닌 내가 만든 프로그램으로 개발을 하고 싶다는 생각이 들었다.

 

 

 

긴 글 읽어주셔 감사합니다. 😄