- 무엇을 풀 것인가?
- 군과 관공서에서는 몽타주를 기반으로 범인을 검거하거나 실종자를 찾음
- 몽타주 그림을 실사화한다면 사람을 찾기가 더 수월해질 것으로 기대
- 프로젝트 범위
- 프로젝트 기간상(2021.11 ~ 2021.12) 모든 성별/나이대의 데이터를 수집하고 학습하는 것은 한계가 있다고 판단
- 프로젝트를 일부 축소, 몽타주를 한국 여성 아이돌로 실사화하는 프로젝트 진행
Data | 데이터 수 | Train 데이터 수 | Val 데이터 수 | 세부사항 |
---|---|---|---|---|
1 | 2449 | 2429 | 20 | web crawling, 여자 아이돌 |
2 | 1669 | 1669 | 0 | aihub, 일반인 |
- 학습에는 크롤링으로 모은 2449장의 여자 아이돌 이미지와 AIHub 한국인 감정인식을 위한 복합 영상 데이터셋의 1669장의 이미지를 활용
- 각 이미지는 resize, super resolution를 거쳐 (512, 512) 해상도로 변환한 뒤, OpenCV, Learning to Simplify 코드를 이용해 스케치로 변환
- 이후 이미지-스케치 pair는 google API를 이용해 눈, 입의 좌표를 정규화하는 face alignment를 적용해 저장됨
- 데이터 중 정면에서 고개가 10도 이상 돌아간 사진, 마이크, 손 등으로 얼굴 일부를 가린 사진, 얼굴에 그림자가 있거나 조명이 너무 강한 사진은 제거
전체적인 파이프라인은 1)AutoEncoder를 이용해 512*512 크기의 스케치를 512차원의 feature vector로 encoding한 뒤 2)데이터셋의 스케치들의 feature vector와 가중 평균을 낸 뒤 decoding해서 실제 사진과 유사한 스케치를 얻고, 3)이렇게 얻은 스케치를 Pix2Pix를 이용해 실제 사진으로 변환하는 구조로 이루어져있음
- 데이터 전처리
-
한계
- 전처리 과정은 Face Crop, Super Resolution, Convert Sketch, Alignment, Gathering으로 이루어짐
- 전처리 과정이 많아 인력이 많이 소모되며 툴 의존성으로 인해 윈도우~리눅스간 이미지를 이동이 필요하여 다루기 어려움
-
극복
-
- 웹페이지 상의 사용자의 그림을 여성 아이돌 이미지로 실사화
- 몽타주 그림외 웹툰 이미지 실사화
Sketch2Idol/
│
├── CycleGAN
├── UGATIT-pytorch
├── frontend
├── backend - Pix2Pix
├── backendU - U-GAT-IT
│
├── data/ - Data Preprocessing
│ ├── airflow
│ ├── dockers
│ ├── image_files
│ └── upload_server
│
├── data_loader/
│ └── dataset.py
│
├── manifold/ - KNN, weighted average
│ └── manifold.py
│
├── module_fold/ - AutoEncoder, Pix2Pix
│ ├── Block.py
│ ├── CEModule.py
│ ├── ISModule.py
│ └── utils.py
│
├── train_stage_1.py
├── train_stage_2.py
└── inference.py
pillow
numpy
google-api-python-client
oauth2client
pyGenericPath
piexif
opencv-python
basicsr
facexlib
gfpgan
gunicorn
uvicorn
apache-airflow
tqdm
pydantic
pytorch
torchvision
fastapi
박진한 | 유형진 | 이양재 | 임채영 | 최태종 | 한재현 |
---|---|---|---|---|---|
Github | Github | Github | Github | Github | Github |
- DeepFaceDrawing: Deep Generation of Face Images from Sketches
- Learning to simplify: fully convolutional networks for rough sketch cleanup
- Nonlinear Dimensionality Reduction by Locally Linear Embedding
- Image-to-Image Translation with Conditional Adversarial Networks
- Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks
- U-GAT-IT: Unsupervised Generative Attentional Networks with Adaptive Layer-Instance Normalization for Image-to-Image Translation