메뉴 건너뛰기

감염병 해결완료

모두를 아우르는 영상 통화 서비스, 모아영

1. 오픈소스 활용
개발 초기에 통신 부분은 오픈소스인 gise-video-chat(https://github.com/vgiselbrecht/gise-video-chat)을 활용하기로 하였습니다. 이를 참고하고 수정하여 대부분의 개발을 마쳤으나 통화 연결 및 얼굴 인식 속도가 느리다는 문제에 봉착하였습니다. 따라서 다른 오픈소스를 활용하기로 하였습니다. 빠른 속도로 통화 연결이 가능하고 자체 얼굴 인식 필터가 있는 openvidu-call(https://github.com/OpenVidu/openvidu-call)을 선택하였습니다. 그러나 해당 Open Source의 얼굴 인식 필터가 정상적으로 작동하지 않는 것을 확인하였습니다. 초기에 선택했던 오픈소스의 속도 문제가 얼굴 인식 모듈로 인해 발생한다는 것을 깨달았고, 초기의 오픈소스를 활용하되 다른 얼굴 인식 모듈을 사용하여 개발을 진행하였습니다.

2. 얼굴 인식 모듈
모아영의 주요 기능인 얼굴 벗어남 감지와 발화자 입 확대를 위해서는 얼굴 인식 기술이 필요했습니다. 개발 초기에 얼굴 인식 모듈은 face-api.js로 선정하고 얼굴 인식 모델은 Tiny Face Detector로 선정하였습니다. 얼굴 인식 모델이 local 폴더에 있어야 했기 때문에 영상 통화 시 다른 참여자가 얼굴 인식 모델을 통신으로 받아야 했습니다. 이는 영상 통화의 속도 저하로 이어졌습니다. 따라서 얼굴 인식 모듈을 face-landmarks-detection(https://github.com/tensorflow/tfjs-models/tree/master/face-landmarks-detection)으로 변경하였습니다. 해당 오픈소스를 적용하여 빠른 속도와 높은 정확도의 얼굴 인식에 성공하였습니다. 그러나 해당 모듈로는 스크린 위의 얼굴 위치를 알 수 없었고 결국 face_mesh(https://google.github.io/mediapipe/solutions/face_mesh.html)로 얼굴 인식 기능 개발을 진행하였습니다.

3. 배포
초기의 얼굴 인식 모듈은 모델이 local에 저장되어야 했기 때문에 웹사이트 배포에 어려움이 있었습니다. 그러나 얼굴 인식 모듈을 변경하고 난 후에는 모델이 저장될 필요가 없어 원활한 배포가 가능해졌습니다. 빠르게 배포하고 관리하기 위해 Firebase를 통해 배포하였습니다.

과제 해결 과정을 작성하여 파일을 올려 현황을 공유하세요.

현재 3명이 공감했습니다.

공감하기

현재 0명이 신청했습니다. 과제에 도움을 주세요!

참여신청

의견 0

참여 요청사항에 대한 의견을 제시해주세요.
닫기