Skip to content

HyominAn0401/2023GraduationProject-imogen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🖥️ [Imogen] 생성형 AI를 활용한 새로운 배경화면 생성

😊 이모젠 팀원

Name 유채란 류지연 안효민
Role DeepLearning / FE DeepLearning / FE DeepLearning / BE

간단 소개

StyleTransfer 딥러닝 모델을 이용해 합성한 이미지를 생성 및 편집 가능한 서비스

프로젝트 개요

  • 기간: 2023.05.01 ~ 2023.09.18
  • 개발 인원: 3명
  • 개발 언어: Python 3.8
  • 개발 환경: Django 4.2.5, Django REST Framework
  • 데이터베이스: SQLite (이미지 URL 저장)
  • 가상환경: venv
  • ORM: Django ORM
  • 인증 및 권한: Django Auth (admin)
  • 프론트엔드: Django Templates
  • 외부 API: Google Translation API, Kakaobrain/Karlo API
  • 기타: Gmail SMTP 메일 발송

서비스 요구사항

1. Style Transfer 기능

1.1 이미지 업로드 및 생성

  • 사용자는 Content ImageStyle Image를 업로드하여 딥러닝 스타일 전이 모델을 통해 새로운 이미지를 생성할 수 있다.
    • 업로드는 로컬에서 진행되며, png, jpeg 형식만 지원된다.
    • 생성된 이미지는 서버에 저장되며, 사용자는 페이지를 벗어나도 작업이 비동기로 수행된다.
    • 작업 완료 후, 사용자는 생성된 이미지를 확인하고 로컬에 저장할 수 있다.

1.2 이미지 생성 과정

  1. Content 및 Style 이미지를 로딩하고 전처리한다.
  2. VGG19 모델의 학습된 가중치로 각 이미지의 특징을 추출한다.
  3. 입력 이미지를 정규화하여 모델이 훈련된 데이터의 분포와 일치시킨다.
  4. Content와 Style 레이어에서 손실 계산을 수행한다.
  5. LBFGS 최적화 알고리즘을 통해 손실을 최소화하고 스타일이 적용된 이미지를 출력한다.

1.3 샘플 이미지

  • 사용자는 서비스 첫 페이지에서 제공된 16개의 Content Image 샘플16개의 Style Image 샘플 중 하나를 선택할 수 있다.
  • 한쪽 이미지만 업로드하고, 다른 한쪽은 샘플 이미지로 선택하는 것 또한 가능하다.

1.4 이메일 전송

  • 이미지 생성 완료 후 사용자는 이메일 주소를 입력하여 생성된 이미지의 URL을 이메일로 전송받을 수 있다.
  • 전송 성공 시 완료 팝업, 실패 시 오류 팝업이 표시된다.

2. Text2Imagen 기능

  • 사용자는 텍스트 프롬프트를 통해 이미지를 생성할 수 있다.
    • Prompt: 원하는 이미지 내용을 입력
    • Negative Prompt: 포함되지 않길 원하는 요소 입력
  • 생성된 이미지는 로컬에 다운로드할 수 있으며, 이메일로 전송이 가능하다.

3. Image Editor 기능

3.1 이미지 편집

  • 업로드한 이미지를 CSS의 Filter 속성으로 밝기, 채도, 명암 등을 편집할 수 있다.
  • 적용된 필터는 초기화할 수 있으며, 최종 이미지를 로컬에 다운로드 가능하다.

3.2 이메일 전송

  • 사용자가 이미지를 편집한 후, 이메일로 생성된 이미지 URL을 받을 수 있으며, 전송 완료/오류 팝업이 표시된다.

딥러닝 모델

  • 모델 아키텍처: CNN 기반 StyleTransfer
  • 프레임워크: PyTorch 1.12
    • 이유: MPS 기능 사용 가능 여부 확인을 위해 PyTorch 1.12 버전 사용
  • Epochs 설정: 9
    • 8 이하에서는 학습이 충분하지 않아 스타일 변환이 제대로 반영되지 않음.
    • 10 이상에서는 Overfitting 문제가 발생.

이메일 전송 기능

  • Django SMTP를 사용하여 사용자가 입력한 이메일 주소로 이미지가 첨부파일로 전송된다.
  • 메일 제목에는 이미지 파일명이 입력되어 전송된다.

담당한 부분

  1. 이메일 전송 기능
  2. 비동기 이미지 생성 기능
  3. 이미지 업로드 및 저장 기능

개선할 점

  • GPU 활용 문제: StyleTransfer를 이용한 빠른 이미지 생성을 위해 GPU가 필요했으나, 부재로 인해 비동기 처리를 도입해 이후 이미지를 출력하도록 구현했다. 향후 AWS EC2 인스턴스를 활용한 GPU 자원 사용 방안 고려
  • 로그인/회원가입: 향후 이미지를 생성하고 다른 사용자와 공유하기 위한 게시판 기능을 확장할 때, 로그인과 회원가입 기능이 필요할 것
  • 서버 리소스 관리: 사용자가 업로드하는 이미지 크기 제한이 없어 서버 리소스 과도 사용 가능성이 있어 향후 크기 제한 설정이 필요합하다.

About

2023년도 9월 소프트웨어학부 졸업작품

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 95.9%
  • HTML 2.6%
  • Other 1.5%