닮은 연예인을 찾고 나의 얼굴을 연예인으로 DeepFake 시켜주는 웹 서비스
AI Expo KOREA 2023 부스 운영 및 COEX 전시 참가
- 얼굴 인식: 사용자가 업로드한 이미지에서 얼굴을 인식
- 닮은 연예인 찾기: 사용자 얼굴과 가장 유사한 연예인 TOP 3
- 얼굴 합성 (DeepFake): 사용자 얼굴을 선택된 연예인 얼굴로 자연스럽게 합성
- 이미지 다운로드: 합성된 이미지 저장 기능
- 프론트엔드: HTML, CSS, JavaScript
- 백엔드: FastAPI
- 딥러닝 프레임워크: PyTorch
- 얼굴 인식 모델: EfficientNet
- 얼굴 합성 모델: MobileFaceSwap
- 데이터 수집: BeautifulSoup(bs4)
YeonDalm은 세 가지 주요 구성 요소로 이루어져 있습니다:
- 프론트엔드: 사용자 인터페이스 제공 및 이미지 업로드/결과 표시
- AI 서버: 얼굴 인식 및 닮은 연예인 판별
- DeepFake 엔진: MobileFaceSwap 기반 얼굴 합성 처리
- K-POP 아이돌 및 연예인 68명의 얼굴 이미지 데이터 크롤링
- Google 이미지 검색 API를 활용한 자동화된 데이터 수집
- OpenCV 기반 얼굴 검출 및 크롭
- EfficientNet-B0 모델을 활용한 얼굴 특징 학습
- 150 에포크 학습 및 조기 종료(Early Stopping) 적용
- MobileFaceSwap 논문 기반 모델 적용 (AAAI 2022)
- 얼굴 랜드마크 검출 및 얼굴 정렬 처리
- 자연스러운 얼굴 합성을 위한 마스킹 기법 활용
- FastAPI 기반 REST API 서버 개발
- 이미지 처리 및 모델 추론 파이프라인 구축
- CORS 설정을 통한 프론트엔드 연동
- 드래그 앤 드롭 기능으로 사용자 편의성 향상
- 실시간 처리 상태 표시 및 결과 시각화
- 반응형 디자인 적용
- Python 3.7+
- CUDA 지원 GPU (선택사항, CPU에서도 동작 가능)
- 저장소 클론
git clone https://github.com/teraha-dev/YeonDalm.git
cd YeonDalm
- 의존성 패키지 설치
pip install -r requirements.txt
- 필요한 모델 다운로드
# MobileFaceSwap 모델은 아래 위치에서 다운로드
# Google Drive: https://drive.google.com/file/d/1ZIzGLDB15GRAZAbkfNR0hNWdgQpxeA_r/view?usp=sharing
- 모델 파일 위치
/faceswap/checkpoints/ 디렉토리에 다운로드한 모델 파일 위치
- 서버 실행
cd server
python main.py
- 웹 서비스 접속
웹 브라우저에서 http://localhost:8000 접속
YeonDalm/
│
├── ai/ # AI 모델 관련 코드
│ ├── crop.py # 얼굴 검출 및 크롭
│ ├── train.py # 모델 학습 코드
│ ├── data/ # 데이터셋 저장 디렉토리
│ └── model/ # 학습된 모델 저장 디렉토리
│
├── crawler/ # 데이터 수집 관련 코드
│ └── crawler.py # 연예인 이미지 크롤링
│
├── faceswap/ # DeepFake 얼굴 합성 관련 코드
│ ├── main.py # 얼굴 합성 메인 로직
│ ├── models/ # 얼굴 합성 모델
│ ├── utils/ # 유틸리티 함수
│ └── checkpoints/ # 사전 학습된 모델 가중치
│
├── server/ # 백엔드 서버
│ ├── main.py # 서버 메인 엔트리 포인트
│ ├── app/ # API 라우터 및 서비스 로직
│ ├── core/ # 핵심 기능 및 설정
│ └── utils/ # 유틸리티 함수
│
└── Yeondalm-Frontend/ # 프론트엔드 코드
├── index.html
├── style.css
└── app.js
- 웹페이지 접속
- "이미지를 드래그 앤 드롭하세요" 영역에 이미지 업로드
- 시스템이 자동으로 닮은 연예인 TOP 3 표시
- 가장 유사도가 높은 연예인으로 얼굴 합성 진행
- 완성된 이미지는 "이미지 다운로드" 버튼으로 저장 가능
- 얼굴 각도 및 조명에 따른 인식률 향상 필요
- 다양한 인종 및 연령대 지원 확대
- 모바일 환경 최적화 및 앱 버전 개발 고려
- 실시간 영상 처리 기능 추가