학교 캡스톤디자인 프로젝트로 진행한
얼굴인식기반 실시간 교육 플랫폼, KHU-FaceID에 대한 내용입니다.
2020년 상반기동안 산업경영공학과 지인들끼리 뭉쳐 캡스톤디자인을 진행했습니다.
개발을 좋아하는 4명과 기획자 1명이 뭉쳐 총 5명이 진행을 했고, 여러 주제를 생각해보다가
최종적으로 정했던게 바로 위 주제입니다.
얼굴 인식 출석 시스템을 통해 '출석 확인 시간'을 줄여보자! 라는 의미에서 시작을 하게되었죠.
팀원 중 두 명은 모델 개발 및 데이터 전처리, 저를 포함한 두 명은 웹/앱 개발, 기획자는 일정 관리 및 역할 분담, 자료 조사로 역할을 나누었습니다.
그 중에서 저는 촬영중인 강의실 영상을 실시간으로 서버에 전송시킬 '실시간 영상 전송 앱'을 개발하고자 했습니다.
...앱?
사실 저는 앱 개발에 대한 지식은 전무했습니다. 음... 시작도 어떻게 해야할지 잘 모르겠더군요
안드로이드 기반의 앱을 개발하자고 하니, java를 공부해야하나...? React는 뭐지...? React Native라는 것도 있네...?
근데 실시간으로 영상은 어떻게 보내지...? 카메라 기능 코드가 따로 있나...? 이걸 서버로 어떻게 보내지...?
거의 프로젝트 진행 기간의 반은 구글링으로 보냈던 것 같습니다.
일단은 react native를 통해서 앱개발을 시작해보기로 하고...
구글링을 해보니 선행 프로젝트나 관련 라이브러리는 어느정도 갖춰져있었습니다.
그러나 제 머리로는 이해하기 힘들고, 코드를 따와서 실행해봐도 잘 작동이 안되더군요. ㅠㅠㅠㅠ
다른 친구들은 점차 진도가 나갔지만, 제 작업은 그리 수월하지 않았습니다.
그래서?
자체 '앱'을 개발하는 건 실패했습니다. 그래서 기존에 상용화되고있는 IP Webcam을 이용해서 서버에 전송하기로 했어요. (다른 개발자들이 이미 어느정도 완성에 다다랐기 때문에 중간에 끼기도 너무 애매했습니다...)
이 앱은 스마트폰에서 촬영하는 영상을 공유기 서버로 가져와 웹을 통해 실시간 영상을 볼 수 있게 하는 앱 입니다. (한번 다운 받아보시면 관련 프로젝트할 때 도움이 되실거 같아요!)
그러나 여기서 또 문제는,
위 앱을 온전히 사용하려면 스마트폰과 데스크탑(혹은 랩탑)이 같은 와이파이 환경에 연결되어있어야 한다는 겁니다.
우리가 원래 하고자 했던건 앱에서 찍는 영상을 GCP서버로 가져가 모델에서 이를 처리하고, 웹서버로 전송하는 것이기 때문에 일반적인 방법으로는 통하지 않았습니다.
이를 해결한 방법이 공유기 포트포워딩(Port Forwarding)입니다. 외부 IP주소를 이용해 클라우드 서버에서도 접근할 수 있는 것이지요!! 자세한 방법은 요 링크에서 확인해보세요 (https://m.blog.naver.com/seoulworkshop/221265052717)
결과
여튼 이런저런 시행착오를 통해 실시간으로 영상전송에 성공했고, 모델도 완성되어 프로젝트를 제 시간에 끝낼 수 있었습니다. (저는 원래하던 작업이 실패로 돌아가 비중이 크지 않았어요... 다른 팀원들에게 너무 감사합니다)
다른 팀원들의 깃허브, 블로그 글을 통해 자세한 내용을 확인하실수 있습니다. 다들 반 년동안 미친듯이 공부하면서 고생했습니다 ㅠㅠㅠ 좋은 실력을 가지신 분들이니 사이트도 한번 둘러보세요!
모델 및 서버
깃허브: https://github.com/HwangToeMat/FaceRecognition_FlaskServer
프론트엔드&백엔드
깃허브: https://github.com/youjeongsue/Face-recognition-service-for-lecture
결국
한 학기 동안 진행한 이 프로젝트로 교내 캡스톤디자인 경진대회에 참여했고...
다른 팀들도 정말 어마어마했는데 최우수상을 타게되었어요...! 다시한번 팀원들에게 너무 고마웠습니다.
평소에 데이터 분석만 하다가 본격적으로 뭔가 시스템을 구현해본다는게 참 힘들었지만 보람찼습니다.
앞으로는 좀 더 자신감을 가지고 제 손으로 뭔가를 만들어보는 그날까지 노력해야겠습니다...!
'Project' 카테고리의 다른 글
한국 ETF 시각화 플랫폼 개발 (0) | 2021.03.22 |
---|---|
빅데이터 기반 데이트코스 추천 시스템 (0) | 2020.09.26 |