왜 이 논문을 선택했는가?
기존 CycleGAN 계열 모델은 내가 원하는 부분만 바꾸기보다 이미지 전체가 함께 변형되는 문제가 있다.
현재 현미경 영상에서 세포$(cell)$ 영역을 향상$(Enhancement)$ 하는 연구를 진행 중인 필자는, 변환 과정에서 세포 이외의 배경까지 함께 바뀌는 현상을 최소화하고자 했다.
이 논문의 핵심은 간단하다. 어텐션 맵$(attention \ map)$을 학습해 변환이 필요한 영역만 선택적으로 바꾸고, 배경은 최대한 보존하는 것이다.
그 결과, 더 자연스럽고 의미(구조) 보존이 잘 되는 번역 이미지를 얻을 수 있다.
이제부터 본 논문의 아이디어와 방법을 조금 더 자세히 살펴보자.
Background
Image-to-Image Translation : 한 도메인의 이미지를 다른 도메인으로 변환하는 것.
핵심은 내용/구조는 유지하면서 스타일/도메인만 변경하는 것이다.
문제는, CycleGAN처럼 전체 이미지를 다루면 배경, 조명, 텍스처까지 바뀌어 구조 보존이 어려울 수 있다는 것이다.
이전 모델$(CycleGAN)$의 한계는 전체를 바꾼다는 것.
즉, 우리가 원하는 관심 부분$(ROI)$만 변경하는 것이 아닌, 불필요한$background$도 함께 변환하는 것이다.
따라서 이 논문의 핵심 아이디어는 다음과 같다.
"Translation Network가 어디를 바꿔야 하는지(foreground), 어디는 유지해야 하는지(background)를
스스로 Attention Map으로 학습하게 만들자"
Method - Overview
전체 구조는 다음과 같습니다.
CycleGAN과 마찬가지로 양방향 생성기로, $F_{S \rightarrow T}, F_{T \leftarrow S}$ 로 구성된다.
Attention Network는 입력마다 $A_S(s), A_T(t)$ 라는soft attention map을 0~1사이로 예측한다.
Discriminator는 $D_T, D_S$ 로 구성되며, 주의 영역만 보도록 입력을 마스킹한다.
이 때, 최종 output은 foreground와 background를 합친 값이다.
Attention-guided Generator
Generator는 $A_S(s)$ 라는 0과 1사이의 값으로 구성된 가중치 맵을 배운다.
그리고 이 가중치 맵을 보고 변환할지, 그대로 둘지 결정한다.
예를 들어, $A_S = 1$ 이면 변환을 채택, $A_S = 0$ 이면 원본을 유지한다.
Loss Function은 위와 같이 Adversarial Loss와 Cycle Consistency Loss로 구성된다.
Adversarial Loss는 진짜 데이터와 생성된 데이터를 구별하며,
Cycle Consistency Loss는 원본과 생성된 이미지의 차이를 줄이려고 한다.
이 때 Cycle Consistency Loss 앞에 붙은 람다 값이 커지면 스타일 변화를 줄이고, 내용을 유지하려고 하며, 이 값이 작아지면 내용 변화를 많이 하는 위험이 있다. 논문에서는 10이라는 값을 사용했다.
Adversarial Loss에서 Real target 이미지를 1이라고 판단하고 생성된 이미지를 가짜라고 판단하려고 하며,
Cycle Consistency Loss에서 L1을 써서 원본과 생성된 이미지의 차이를 줄여 조금 더 진짜 같은 이미지를 만드려고 한다.
두 손실을 합친 최종 목적함수는 GAN의 minimax로 풀며, 생성기/어텐션은 minimize, 판별기는 maximize한다.
Attention-guided Discriminator
Discriminator는 전체 이미지를 보면 배경 통계를 학습해 Generator가 배경까지 변환하는 현상이 생긴다.
이를 막기 위해 Attention 값이 높은 영역만 보도록 Discriminator의 입력을 마스킹한다.
먼저 threshold 값을 사용하여 Discriminator 입력을 만든다. 논문에서는 0.1이라는 값을 사용했다.
마스킹된 영역에만 Adversarial Loss를 계산하는데, 이는 정말 변환이 일어나야 하는 곳에만 판별하기 위함이다.
학습 할 때 주의사항이 있다.
초기 attention map은 랜덤에 가깝다. 따라서 처음부터 마스킹하면 틀린 영역을 강화할 수 있다.
따라서 초기(epoch 0~30)에는 전체 이미지를 쓰며 Discriminator를 안정화하며 attention이 형성되게 만든다.
이후 epoch가 30이 넘어가면 Attention Map을 위에서 말한 Threshold로 이진화하여 마스크를 만들고, Discriminator에 적용한다.
Results
결과적으로 CycleGAN과 다른 모델보다 효과적으로 우리가 원하는 ROI 부분만 변경되는 것을 확인할 수 있다.