딥러닝으로 숫자 손글씨 맞추기

2019. 12. 4. 19:03서비스

사이트 주소: http://mnist.util.kr/

 

yarn build하다가도 메모리 부족 오류가 발생하는 RAM 512mb 서버에서 돌고 있습니다. 

목적

이 사이드 프로젝트는 손글씨 예측 성능이 아닌 Tensorflow와 Keras를 이용해 직접 훈련시키고 생성한 모델과 Django Rest Framework, React로 구현한 백엔드 및 프론트엔드를 AWS에 서비스하는 일련의 과정을 모두 직접 만들어보고 서비스해보기 위한 목적으로 만들어졌습니다.

딥러닝 모델

아래와 같이 MNIST 이미지 학습 데이터 60,000개, 테스트 데이터 10,000개로 직접 훈련시킨 모델을 이용해 사용자의 손글씨를 맞춥니다.

동작방식

사용자가 그린 그림을 base64로 변환하여 서버로 전송합니다. 사용자의 그림을 전송받은 서버는 이미지를 합성곱 신경망 알고리즘 Convolutional Neural Network을 이용하여 분석합니다. 서버는 분석 결과 확률이 가장 높은 정답을 사용자에게 알려줍니다.

사용기술

프론트엔드: React

백엔드: Django rest framework

사용된 주요 라이브러리:

  • React, Redux, React-redux, Redux-actions
  • Moment, Axios, Dotenv, Fontawesome, SCSS
  • Django, Django rest framework, Pillow
  • Tensorflow, Keras, Numpy, Matplotlib
  • Nginx, Gunicorn, Postgres, Ubuntu
  • Icons made by Becris from www.flaticon.com