일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MinHeap
- canny edge detection
- 백준
- MySQL
- IN
- C++
- BFS
- sklearn
- 자료구조
- 머신러닝
- exists
- edge detection
- clustering
- DP
- 인공지능
- Reinforcement Learning
- dynamic programming
- machine learning
- Python
- Mask Processing
- AlexNet
- 딥러닝
- 강화학습
- dfs
- TD
- classification
- opencv
- 그래프 이론
- image processing
- SIFT
- Today
- Total
JINWOOJUNG
[2024 Google Solution Challenge] Team Voice-Linker 회고록 본문
들어가며
2024 Google Solution Challenge에 참여하기 위해 작년 말부터 GDSC Inha에 참여하게 되었다. 2달 반 정도 해당 대회를 준비하는 과정에서 GDSC 운영진 분들이 참가 팀을 위해 많은 노력을 해 주신 것 같다. 처음 참가라 어떻게 준비해야될지 막막하고 팀에서 준비하는 과정과 목표가 해당 대회의 취지에 부합하는지를 항상 고민 했는데, 많은 컨설팅과 피드백을 해 주셔서 잘 마무리 할 수 있었다. GDSC Inha 운영진들에게 감사의 뜻을 표하며 본 포스팅은 2024 Google Solution Challenge에 Voice-Linker Team 활동에 대한 회고록이 될 것 같다.
2024 Google Solution Challenge
https://developers.google.com/community/gdsc-solution-challenge?hl=ko
Google Solution Challenge는 Google 기술을 사용하여 UN의 17가지 지속가능발전목표 중 하나 이상을 달성하는 것이다.
팀 선정
대회에 참가하기 전 먼저 팀원을 구성하고 해당 대회를 참여하게 되어서 큰 문제는 없었다. Front-end 1명, Back-end 1명, ML 2명으로 구성된 팀이여서 적절하게 인원 분배도 된 것 같다.
해당 대회는 각 팀원의 역할이 골고루 분배 되는것도 중요한 것 같다. 단순히 디자이너, ML 개발자 등만 필요한 것이 아니라 하나의 문제를 해결하기 위해 다양한 분야의 개발이 이루어지고, 최종적으로 각 개발이 합쳐져 하나의 어플리케이션 혹은 웹으로 이어져서 해결책이 제시되는 경향이 크다.
일정 관리 및 팀 협업
본 팀은 오프라인 미팅은 대부분 주제 선정 및 최종 동영상 촬영 단계에서만 이루어지고 대부분 각자의 개발 환경에서 개발한 후 통합하는 형식으로 진행하였다. 하지만 많은 온라인 미팅을 통해 아이디어 회의나 의견을 공유하는 시간을 가짐으로써 프로젝트를 잘 진행할 수 있었다.
온라인 혹은 각자의 개발시간이 많았던 만큼 Notion을 잘 활용하여 큰 프로젝트 틀에서 각자 분야의 개발 진행이나 자료 정리, 아이디어 정리 등의 과정을 모두 기록하였다. 이 전까지 Notion 을 잘 활용하였지만, 이번 프로젝트를 통해서 몰랐던 기능들을 많이 알 수 있었고 확실이 Notion이 원탑인 것 같다.
주제 선정
본 단계가 가장 힘들었던 부분이었다. 처음에는 UN 17가지 문제를 생각하지 않고 소프트웨어적으로 해결 가능한 다양한 사회적 문제를 조사하였다. 그 중, UN 17에 적합하면서 동시에 해결 가능한 문제로 줄여나갔고 그 과정에서 각 문제가 왜 해결되어야 하는지 다양한 논문 혹은 기사 자료를 정리하였다.
다양한 문제 중 '노인들의 키오스크 문제'에 매력을 느꼈고, 키오스크를 도입하는 매장, 노인들의 키오스크 사용 비율 및 문제점 등 해당 문제의 심각성, 해결 필요성과 방법을 조사 해 나갔다. 실제 뉴스 보도자료와 논문등을 통해 사회적 문제의 심각성을 느꼈고, 해결책이 존재 하였지만 해당 비용이 너무 많이 발생해 새롭게 해결해야 하는 필요성도 찾았다.
주제를 선정 후 해결책을 생각하고 개발하던 중 갑자기 아이디어가 매력적이지 않고 현실성이 떨어지는 느낌을 받았다. 생각해보면 모든 매장의 키오스크는 서로 다를 것이고 이를 개발하는 플랫폼 혹은 해결책을 적용하는데 현실성이 떨어진다는 의견으로 인하여 해당 주제는 버려지고 또 새로운 주제를 찾는 과정을 반복하였다.
결국 총 2주가 넘는 기간이 걸린 끝에 "농인과 비 장애인의 실시간 대화를 위한 쌍방향 소통을 위한 어플리케이션 개발"이라는 주제가 나오게 되었다.
아래 사진은 실제 노션의 일부를 캡쳐한 사진이다.
이처럼 주제가 한번 정해졌다고 최종으로 갈 확률은 없고, 해당 주제의 타당성과 필요성을 입증하는 과정도 매우 중요하기에 아이디어 기획 단계에서 많은 생각과 정리를 한다면 이후 단계는 수월하게 진행 될 것이다.
개발
주제가 정해지고 나서는 각각의 파트에 맞게 개발을 진행 해 나갔다.
나는 혼자 개발하는 성향이 상대적으로 큰 사람이라 굳이 오프라인을 선호하지 않았는데, 다른 팀원 역시 각자가 맡은 바를 잘 진행 해 주었고, 이를 Notion을 활용하여 잘 정리하고 추후 개발 계획까지 설정하였기에 개발이 원활하게 진행 되었다.
하지만 우리 팀은 온라인 미팅을 자주 가졌다. 개발하는 과정에서 생기는 문제점과 각 분야가 개발하는 방향의 피드백을 온라인 미팅을 통해 항상 공유하였기에 프로젝트의 성공도가 더욱 더 향상된 것 같다.
나는 ML 분야이기 때문에 본 프로젝트에서는 수화 인식 모델 개발을 주로 하였다. 단순한 이미지 내에서 객체 인식이 아닌 수화를 인식해야 하기 때문에 시계열 모델이 요구되었다. 또한, 수화를 인식하기 위해서는 이미지 내에서 사람의 손동작, 몸짓, 표정을 인식하여 분석해야 하기 때문에 이를 위한 작업도 요구되었다.
추후 다른 포스팅으로 그 과정을 공유 할 것이고, 결론적으로 Google의 오픈 소스 플랫폼인 Mediapipe를 사용하여 사람의 손동작, 몸짓, 표정에 대한 Landmark를 추출해 수화를 인식하였고, 수화 자체의 분류를 위해서 LSTM Model을 학습시켜 사용하였다.
동영상 제작 및 리포트 작성
Google Solution Challenge에 제출해야 하는 자료는 2분 내의 동영상과 리포트이다.
본 팀은 어플리케이션까지는 시간상 진행하지 못하였고, apk를 구현하여 개발한 모델을 통해 실시간으로 농인의 수화를
인식하여 텍스트로 변환하여 비 장애인이 인식할 수 있고, 비 장애인의 음성은 텍스트로 변환되어 농인이 인식할 수 있도록 구현 하였다. 이 과정과 시현 영상을 동영상으로 제작하였고, 간단한 ppt 작업과 실제 촬영한 영상을 수정하여 완성하였다.
리포트 작성은 이전 과정에서 노션에 지속적으로 정리를 해 두었기 때문에 수월하게 진행할 수 있었다.
2달이 넘는 긴 시간동안 진행되는 프로젝트 이기 때문에 진행 과정을 기록하는 것은 매우 중요하다!
마치며..
ML 개발만 주로 하였지만, Front-end, Back-end와 함께 진행되는 프로젝트를 해 보고 싶어 본 대회에 참여하게 되었다. 긴 시간동안 진행되면서 힘든 점도 많았고, 내가 모르는 분야와 협업하는 과정에서 어색함도 있었다. 하지만 최종적으로 프로젝트를 잘 마무리 할 수 있었고, 새롭게 배운 점도 많았다. Top 100을 기다리는 시점에서 작성하는 회고록이라 꼭 Top 100에 진출할 수 있으면 좋겠다!
최종 제출 영상 링크는 아래 첨부합니다.
'2024 > 공모전' 카테고리의 다른 글
[ GDSC ] MediaPipe 설치,환경설정 및 패키지 분석(Ubuntu 20.04) (0) | 2024.01.13 |
---|