Search
Login
🧓

GAN을 활용한 노화 예측 모델

Created
2023/03/06
Editor
rla0010101@gmail.com
김수빈
논문 제목 | Prediction of Face Age Progression with Generative Adversarial Networks 저자 | Neha Sharma, Reecha Sharma, Neeru Jindal 일시 | 2023.02.19
50대, 60대, 70대가 되었을 때 어떤 모습일지 궁금하지 않으신가요? 혹은 연인이나 배우자가 미래에 어떤 모습으로 함께할지 알고 싶지 않으신가요? 이제는 AI 알고리즘으로 생물학적인 노화 양상을 예측할 수 있게 되었습니다. 여러 앱에서 노화 예측 테스트가 만연한 가운데 어떻게 AI 기반의 모델이 이미지를 예측하는지 알아봅시다.
시간이 부족하다면  인스타 게시글 링크

Abstract

Face Age Progression의 목적은 현재 얼굴 이미지를 바탕으로 시간이 흘러 나이가 더 들었을 때 얼굴이 어떻게 변하게 될지 예측하는 것입니다. 개인의 고유한 식별 시스템에 대한 요구가 증가하고 있는 상황 속에서 현재 Face Aging은 엄청난 관심을 받고 있습니다. 하지만 기존의 Face Age Progression 접근 방식은 이미지 데이터가 불충분하여 노화된 얼굴 사진 출력이 부자연스럽다는 문제점이 있었습니다. 이를 해결하고자 연구자들은 UTKFace, CACD, FGNET, IMDB-WIKI, CelebA 총 5개의 공공 데이터 셋(Publicly Datasets)을 이용하여 AttentionGAN과 SRGAN으로 정확한 Aged Faces를 출력하려고 하였습니다.

Keywords

Generative Adversarial Networks(GANs)
생성 모델의 한 종류로 데이터를 생성하는 생성자(Generator)와 데이터를 구별하는 판별자(Discriminator)가 경쟁하면서 데이터를 학습합니다.
Face Age Progression
Face Age Progression의 목표는 현재 얼굴 이미지를 미래에 나이가 들었을 때 어떠한 모습일지 예측하는 것입니다.
Face Super-Resolution
Face Super-Resolution(FSR)은 저해상도의 얼굴 이미지를 고해상도로 높이는 과정입니다.
Age Estimation
생체 인식(Biometric Features)을 기반으로 사람의 나이를 추정하는 것을 말합니다.

1. Introduction

인간의 고유한 정체성을 유지하면서도 다양한 연령대에서 나타나는 얼굴의 모습(얼굴 형상, 피부 결, 피부색 등)은 “삶의 진보”에 따라서 변화하기 때문에 얼굴은 개인에게 엄청난 인증(Authentication)과 보안(Security)의 기반이 됩니다.
그렇기 때문에 Face Age Progression은 현재 널리 사용되고 있는 기술입니다. 예를 들면, 이 기술은 법 집행 기관에서 노화 전후 사진을 만들거나 전자 상거래 플랫폼과 같은 안면 분석 등을 통해 실종 아동이나 실종자를 찾는데 많이 쓰이고 있습니다. 특정 정보를 기반으로 사람을 식별하는 생체 인식 시스템에서도 얼굴은 가장 대표적인 신체 부위입니다. 하지만 조명, 성장에 따른 얼굴의 변화 때문에 얼굴 노화 과정(Face Age Progression)은 아직 어려운 작업에 속합니다. 그리고 코로나19 대유행으로 접촉을 통한 감염을 최소화하고자 지문이 있어야 하는 생체 인식 시스템 대신 얼굴 인식 시스템이 적극 도입되었습니다.
Prediction of face age progression with generative adversarial networks

1.1. Face Age Progression with GANs

이미지를 입력으로 받아 또 다른 이미지를 출력으로 반환하는 태스크를 Image-to-Image Translation이라고 합니다. GAN은 Image-to-Image Translation, Text-to-Speech Generation 등 많은 분야에서 인상적인 결과를 도출해낼 수 있을 만큼 강력한 성능을 발휘하는 모델입니다. 따라서 GAN을 사용한 얼굴 노화 과정(Face Age Progression)은 얼굴 식별 시스템(Facial Verification System)에서 많은 주목을 받았습니다. 그러나 GAN의 가장 큰 단점은 가짜 미디어 콘텐츠를 만들어내는 데에도 사용된다는 점입니다. 따라서 연구자들은 초해상도(Super-Resolution) 얼굴 노화에 초점을 맞추었고 해당 논문의 주된 기여 방안(Main Contributions)은 아래와 같습니다.
AttentionGAN과 SRGAN을 혼합하여 Face Age Progression을 진행하였고 AttentionGAN이 주요한 역할을 했습니다.
정규 표현식 필터(Regex Filter)를 사용하면 합성된 얼굴 이미지를 선택하여 훈련 시간을 줄일 수 있을 뿐만 아니라 계산 복잡성도 줄일 수 있습니다.
공개 데이터인 UTKFace, CACD, IMDB-WIKI, CelebA, FGNET Datasets로 성능을 평가하였습니다.
포즈, 표정, 메이크업, 조명 등 다양한 요인을 반영하여 성능을 검증하였습니다.

2. Related Work

기존 얼굴 노화 과정(Face Age Progression) 연구는 얼굴 성장(Geometric Growth of Face), 주름, 얼굴 하위 영역(Face Sub-Reagions), 다양한 기술 등 얼굴 속성(Facial Attributes)에 중점을 두고 연구를 진행해 왔었습니다. 노화 과정(Aging Process)에는 다양한 얼굴 이미지 자료를 수집하려는 “An Appearance-based Method” 기반의 고유면(Eigenfaces)를 사용한다고 알려졌습니다. 고유면이란 각 얼굴의 이미지를 코딩하고 비교하는 데 필요한 정보입니다. 그 이후 딥러닝은 컴퓨터 비전 분야에서 엄청난 주목을 받기 시작했습니다.
특히, GAN의 훈련 과정에서 성능 향상 방법 및 GAN의 실제 응용 프로그램 적용 방법에 관한 연구가 활발하게 진행되고 있습니다. GAN의 주요 목표는 생성자의 분포를 획득하여 실제 데이터 분포에 근접하는 것이며, 이때 진행되는 순환 일관성 손실(Cycle Consistency Loss)는 이미지의 정체성(Identity)을 유지하면서 합성된 이미지에서 원래 입력된 데이터를 다시 얻으려는 과정입니다. GAN이 사용되는 사례는 아래와 같습니다.
GAN이 활용되는 Image-to-Image Conversion과 Pix2Pix는 위의 이유로 쌍을 이룬 데이터 세트(Paired Dataset)를 사용합니다. 또한, 이미지 합성에 사용되는 Spatial Fusion GAN은 Geometry Synthesizer와 Appearance Synthesizer를 결합하여 각 도메인에서 인위적이지 않은 “현실적인” 결과를 도출하였습니다. 그 과정에서 기존 Face Image 특징을 보존하기 위해 Identity Loss를 사용하였습니다. 그리고 합성된 망막 이미지와 분할된(Segmented) 망막 이미지를 생성하는 데 MI-GAN 프레임워크가 “사실적”으로 합성했다는 점에 대해서 다른 모델들에 비해 유의미한 결과를 도출하기도 했습니다.

3. The Proposed Work (Algorithm)

해당 논문에서 진행된 연구는 입력된 얼굴 이미지를 궁극적으로 노화 이미지로 변환하는 것입니다. 그 과정에서 필터 과정(Filter Process)은 계산 시간(Computation Time)과 저장 공간을 최소화하면서 초고해상도 이미지를 생성하는 역할을 합니다. 이때 에지 향상(Edge Enhancement)을 진행하는 이미지 샤프닝(Image Sharpening)은 SRGAN에 더 명확한 이미지를 Input하기 위함입니다.
위 목표를 달성하기 위해서 세 단계가 진행됩니다. UTKFace와 CACD라는 대규모 공개 데이터 세트를 사용하여 훈련합니다. Input하는 얼굴 이미지는 먼저 UTKFace 및 CACD 데이터 셋에서 RGB 3원색의 이미지만을 얻기 위해 전처리된 것입니다. 그 이후 0–20, 21–40, 41–60, 60+의 네 부류 나이 그룹으로 분리하고 Input할 Training, Test, Validation 데이터 셋과 실험 결과 도출을 위한 Target 이미지를 준비합니다. 이미지의 크기는 100×100 크기로 조절되었습니다.
Stage 1
전처리된 이미지는 얼굴 노화 과정(Face Age Progression)을 하기 위해 Image-to-Image Conversion을 진행하는 AttentionGAN의 생성자 G에게 전달됩니다. 생성자는 높은 퀄리티의 얼굴 이미지를 생성하기 위해 개인의 얼굴 정체성을 유지하며 배경과 전경 정보를 습득합니다. AttentionGAN의 고유한 특징은 생성자가 필요한 이미지의 전경에 초점을 맞추면서 동시에 어텐션 마스크(Attention Mask)와 콘텐츠 마스크(Content Mask)의 도움으로 Input 이미지의 배경을 보존하는 것입니다.
그러나 Input 이미지는 Sub-Module Parametric Sharing Encoder인 GE, Content Mask Generator인 GC, 그리고 Attention Mask Generator인 GA에게 전달됩니다. 따라서 p-1 Content Masks는 생성자 GC에 의해 생성됩니다. 또한, 전경 Attention Masks와 배경 어텐션 마스크(Attention Mask)는 생성자 GA에 의해서 동시에 만들어집니다. Attention Mask(A)은 Content Mask(C), Input 얼굴 이미지(u)와 곱해지고 G(u)인 Target Face Aged Image를 만드는 알고리즘은 아래와 같습니다.
G(u)=(CA)+uAG(u) = ∑ (C*A)+ u*A
순환 일관성 손실(Cycle Consistency Loss) 과정에서는 생성된 노화 이미지는 다른 생성자 F에게 전달됩니다. 따라서 F 생성자도 비슷한 방식으로 배경 이미지와 함께 전경의 Content Mask와 Attention Mask를 생성합니다. 그리고 생성자 G와 F가 만든 얼굴 이미지를 혼합합니다. 다시 생성자 F에서 Two Masks는 이미지 정보를 보존하고 최소한의 손실만 있는 채 Input Image를 다시 추출함으로써 이미지를 보존합니다. 생성된 이미지 G(u)를 원래 Input Image인 u로 재구성하는 알고리즘은 아래와 같습니다.
F(G(u))=(CA)+G(u)AF(G(u)) = ∑(C*A) + G(u)*A
F(G(u))는 기존 이미지인 u와 매우 유사해야 하는 재구성된 이미지입니다. F는 생성자 G와 유사한 Three Subnets Parametric Sharing Encoder인 FE, Attention Mask Generator인 FA, Content Mask Generator인 FC로 구성된 생성자입니다. FC는 p-1 Content Mask를, FA는 전경과 배경의 p Attention Mask를 만듭니다. 그 이후 Two Masks는 재처리된 이미지를 얻기 위해 위의 수식처럼 곱해집니다.
AttentionGAN Scheme II의 목적 함수는 아래와 같이 수학적으로 나타낼 수 있습니다.
L=Lgan+λcycleLcycle+λidLidL = Lgan + λcycle*Lcycle + λid*Lid
Lgan은 GAN Loss이며 Lcycle은 Cyclic Loss이고 Lid는 Identity Preserving Loss, 람다 관련 부분은 파라미터입니다.
Stage 2 : AttentionGAN의 결과물이 정규식 필터(Regex Filter)를 적용할지 여부가 결정되는 조건부 블록(Conditional Block)에 전달됩니다.
조건부 블록 출력이 Yes이면 정규식 필터는 AttentionGAN에서 합성된 얼굴 노화 이미지를 가져옵니다. AttentionGAN의 Output은 합성된 얼굴 사진, 어텐션 마스크(Attention Mask)와 콘텐츠 마스크(Content Mask)입니다. 따라서 정규식 필터 과정을 추가하면 SRGAN 훈련에 필요한 계산 시간을 줄일 수 있습니다. 이렇게 필터링된 합성 얼굴 이미지는 에지 향상(Edge Enhancement)이라는 이미지 샤프닝(Image Sharpening) 과정을 거친 뒤 SRGAN에 Input 됩니다. SRGAN은 주로 객체의 모양, 질감, 색상을 학습하고 이미지의 A Few Sharp Edges를 수정하기도 합니다. 이렇게 선명화된 이미지는 SRGAN에 주어지고 필터 과정을 거친 덕분에 모델 훈련은 2시간 만에 완료되었습니다.
조건부 블록 출력이 No이면 AttentionGAN의 output은 바로 SRGAN Training으로 이어집니다. 하지만 이 경로로 진행했을 때 여러 원치 않는 이미지들(Content and Attention Masks of Aged Faces which are not required for SRGAN Training)이 제거되지 않았기 때문에 훈련 시간에 26시간이 걸리는 문제점이 있었습니다. 최종 출력물로 노화 이미지(Tace Aged Images)가 나와야 하기 때문입니다.
Stage 3 : 최종 Output 이미지를 얻기 위해 Image Sharpening이 진행되는 SRGAN 훈련(고품질 합성 이미지 생성)과정입니다. 이는 훈련 시간뿐만 아니라 계산 복잡도까지 줄인 단계입니다. 그러나 Content and Attention Masks를 SRGAN에 직접적으로 주어지면 역효과가 발생합니다.
SRGAN에서 잔여 블록(Residual Blocks)은 베이스 모델 활성화에 기여하기 때문에 얼굴 이미지의 시각적인 퀄리티를 향상하는 역할을 합니다. SRGAN을 훈련하는 동안 입력된 고해상도 얼굴 이미지를 저해상도 얼굴 이미지로 다운 샘플링하여 초해상도 이미지를 합성합니다. 그런 다음 판별자(Discriminator)는 합성된 초해상도 이미지와 실제 고해상도 이미지를 구별하려고 합니다. 이때 지각 손실(Perceptual Loss : GAN에서 사용되는 loss 중 하나로 MAE, MSE를 보완하기 위해 만들어진 손실함수)는 콘텐츠 손실(Content Loss : 입력 이미지와 대상 이미지의 픽셀 단위의 차이)와 Adversarial Loss(생성자로 하여금 진짜처럼 보일 정도로 사실적인 가짜 이미지를 생성하도록 학습 알고리즘)의 가중 합계이고 수식은 아래와 같습니다.
Lp=lc+103ladvLp = lc + 10–3 ladv
Lp는 Perceptual Loss, lc는 Content Loss, 10–3 ladv은 Adversarial Loss입니다. Content Loss은 VGG Loss과 MSE Loss로 구성됩니다. 먼저 MSE Loss는 초해상도 생성 이미지와 원본 이미지 사이의 픽셀 단위 오류입니다. VGG Loss는 VGG19 네트워크 상에서 m번째 Maxpool 레이어 이전의 n차 컨볼루션에 의해 생성된 Feature Map입니다. φ (m, n)로 표기됩니다. 그리고 Adversarial Loss은 생성자(Discriminator)의 일반적인 Training Samples Probabilites를 말합니다. 아래는 ladv에 관한 알고리즘입니다.
ladv=ΣlogD(G(Ilr))ladv = Σ−log D(G(Ilr))
I lr 은 저해상도의 Input Image이고, q = 1, . . ., Q는 Training Samples, Log를 취해준 괄호 안의 식은 재구성된 이미지가 기존의 초해상도 이미지일 확률입니다.

4. Conclusion

초고해상도 GAN인 AttentionGAN이 “그럴듯한” 초고해상도 노화 이미지(Super-Resolution Face Aged Images)를 얻는 데 성공했습니다. 최종적으로 실제 이미지와 시간이 흘러 나이가 들었을 때의 이미지 간 오차율은 0.001%에 불과했습니다. 이제 우수한 수치를 어떻게 얼굴 노화 과정(Face Age Progression)에 적용할 수 있을 것인지는 미래 세대에 달려 있다고 볼 수 있습니다.

5. 논문의 활용 가치

딥러닝은 헬스 케어 산업이 발전하는 데 많은 도움이 되었습니다. 예를 들면, 얼굴 인식은 정기적으로 환자의 건강 상태를 확인할 수 있도록 원격 컨설팅을 하거나 건강 보험 ID를 만드는 토대가 되고 있습니다. 머신 러닝 기반의 얼굴 노화 과정(Face Age Progression)은 Banking 분야에도 쓰일 수 있기 때문에 사진 업데이트에 필요한 방문을 줄일 수 있어 편리하다는 점에서 앞으로 많은 서비스를 기획하는 데 발판이 될 것으로 생각합니다.
@김수빈
문의사항 manager@deepdaiv.com