프로젝트 소개 - LittleStudio

1. 들어가며

프로젝트 시연 영상

 

 

 

안녕하세요. 저번 학기에 진행했던 프로젝트를 소개하는 글을 쓰고자 합니다. 저희가 만든 앱은 부모와 아이가 함께 캐릭터를 그리고 ai에 의해 애니메이팅 된 캐릭터를 추억으로 공유할 수 있는 앱입니다. 스마트폰의 등장으로 부모와 아이가 함께 보내는 시간은 줄어들고 가족으로써 추억을 쌓을 일도 적어지고 있다고 생각합니다. 이러한 상황에서 스마트폰 사용 자체를 막기보단 아이들에게 더욱 친숙한 기기를 통해 부모님과 소통하고 같이 시간을 보낼 수 있는 어플리케이션이 있으면 어떨까 하여 만들게 되었습니다.

 

2. 프로젝트 설명

 

앱의 전반적인 플로우는 위의 데모 영상을 참고해주시면 좋을 것 같습니다. 부모와 아이가 각각 스마트폰으로 방에 참가하여 동시에 캐릭터를 그리면, 해당 캐릭터를 AI를 통해 애니메이팅 해주어 다양한 모션을 취하는 기능을 가지고 있습니다. 

해당 프로젝트에서 저는 실시간 그림 그리기 구현, AI를 통한 애니메이팅, 백엔드 서버 구현을 맡았습니다. 

프로젝트 아키텍쳐

 

프론트엔드에는 안드로이드 자바를 사용했습니다. 백엔드에는 Django와 DRF를 함께 사용했습니다.

서버는 AWS EC2 인스턴스에 배포되었습니다. 드로잉 및 GIF 파일 저장을 위해 AWS s3 버킷을 사용했습니다. 데이터베이스 관리는 MySQL이 포함된 AWS RDS를 통해 처리됩니다.

애니메이션 드로잉 기능의 경우, Facebook Research AnimatedDrawings 라이브러리용 API 래퍼를 구현했습니다. AnimatedDrawings는  쿠버네티스 클러스터의 A100 GPU에 별도로 배포되어 도면을 빠르게 애니메이션 처리할 수 있습니다. NVIDIA의 최신 플래그십 GPU를 사용하면 컴퓨팅 성능으로 빠르고 안정적인 추론이 가능합니다. 해당 구현에 대해서는 이미 제 다른 블로그 글에서 설명한 바가 있으니 참고하실 수 있습니다!

 

https://rawshrimpsushi.tistory.com/20

 

쿠버네티스에 딥러닝 모델 서빙하기.

0. 요약 - 쿠버네티스에 딥러닝 모델 서빙하면서 겪은 문제. - 서빙을 위한 서버 구축 및 쿠버네티스에 올리기. - 모델 라이브러리 호환 문제 해결 - 6배 최적화 1. 들어가며 - 프로젝트 설명 이번

rawshrimpsushi.tistory.com


동시 그림 그리기를 지원하기 위하여 소켓 채널을 사용하여 동기화 지연 시간과 서버 부하를 줄였습니다. 소켓을 사용하여 여러 사용자 간에 실시간으로 반응하는 상호작용을 가능하게 했습니다. 해당 구현에 대해서도 추후 작성하여 링크를 달아놓겠습니다. :) 간략하게 설명하자면 그림 획 단위로 소켓 통신을 통해 실시간 동기화를 해주고 있습니다.

 

더 구체적인 프로젝트 설계에 대해서는 

https://github.com/snuhcs-course/swpp-2023-project-team-9/wiki/Design-Documentation

 

Design Documentation

Real-time drawing application for children and parents. Provides animated drawings with inference from facebook research. - snuhcs-course/swpp-2023-project-team-9

github.com

 

위 링크를 참고해주세요 :)