GAN으로 생성된 거짓 영상 판별 기술 개발 - 연구과정(2)

팀딥텍터 21.08.31
291 3 0

안녕하세요, 저희는 이번 SKT AI Fellowship 3기에서 "🦄 GAN으로 생성된 거짓 영상 판별 기술 개발" 연구 과제를 수행중인 Team 딥텍터 (Deeptector) 입니다.

이번 장에서 저희가 해결할 문제에 대해 다시 한번 짚어보고, 어떻게 해결해 나아가고 있는 지 중간 과정을 소개드리겠습니다 :)
 

1) 연구 과제 소개 및 목표 Remind 


(1) 연구 과제의 배경

'GAN으로 생성된 거짓 영상'은 딥페이크라고도 알려져 있는데요
저희의 연구 주제인 딥페이크는 딥러닝 기반의 얼굴 조작 기술이나 그 기술로 생성된 미디어를 통칭하는 말입니다.

그림 1. 딥러닝 기반으로 생성된 사람의 얼굴 영상의 변천사

위의 사진에서 보시는 것처럼 이미지 생성 모델이 발전함에 따라 정말 실제 얼굴같은 이미지를 생성해서 조작하는 것이 가능해졌고, 정치인의 거짓 연설 영상, 보이스 피싱을 넘어선 페이스 피싱 등 여러 악용 사례들도 점점 등장하고 있습니다.

 

저희의 연구 과제는 이러한 미디어가 정말 실제인지, 아니면 딥페이크로 조작한 가짜인지 판별해내는 것이고,
이를 통해 저희가 접할 수 있는 미디어의 신뢰를 확보하는 것이 목표입니다.

 

또한 이러한 기술은 딥러닝을 기반으로 하는 얼굴인식 시스템의 보안 기술로도 활용할 수 있습니다.
현재 SKT 사내에서도 활용되고 있는 NUGU facecan과 같은 대표적인 얼굴 인식 플랫폼에서도, 만약 누군가 악의적은 목적으로 딥페이크 기술로 거짓으로 영상을 만들어 전송하더라도 가짜 영상임을 알아차릴 수 있는 보안 시스템으로서도 활용할 수 있습니다.

 

(2) 연구 목표 

저희는 현재 딥페이크 탐지 기술을 실사용 하게 될 경우의 문제점들에 중점을 두고 과제를 수행하고 있습니다.

 

딥페이크 탐지에 대한 연구는 이미 이전에도 많이 수행되었지만, 이러한 기술들을 바로 실사용을 하기에는, 심지어 State-of-the-Art 모델일지라도, 많은 문제점들을 가지고 있습니다.

 

저희가 특히 주목하고 있는 어려운 문제점들에는 다음과 같은 3가지가 있습니다.

 

1. 학습된 딥페이크 방법 이외의 방법으로 만들어진 비디오에 대한 성능 저하

    - 학습환경 때 보지 못한 딥페이크 기법의 데이터에 대해서는 성능이 크게 하락하고 있습니다.

 

2. Adversarial Attack 기법으로 생성된 비디오에 대한 딥페이크 탐지 모델의 취약성

    - 일반적인 딥러닝 모델은 adversarial attack 이미지에 대해 잘못된 판단을 내릴 수 있습니다.

 

3. 비디오 인코딩을 비롯한 해상도 변화, 밝기 변화 등의 물리적 변화에 대한 성능 저하 

    - 실사용 시 수반될 수 있는 다양한 물리 환경 변화에 대해 민감할 수 있습니다.

 

저희는 현업에서 얼굴 인식 보안 기술 등으로 딥페이크 탐지 모델을 실사용하는 것을 목표로 하기 때문에, 최소한 이 세가지 문제점들은 필수적으로 해결되어야 한다고 생각했습니다.

 

그렇기에 세부적인 목표는 3가지 어려운 상황에서도 모두 올바르게 탐지 할 수 있도록 모델을 개발하는 것입니다.

 

하지만 각 문제 하나하나가 어려운 문제들이 때문에 저희는 이 3가지 상황을 팀원들이 각자 전담으로 맡아서 각 상황에서의 robust 모델을 병렬적으로 먼저 개발하고, 그 후 최종적으로, 통합된 모델을 만들 계획을 세웠습니다.

 

처음 과제를 시작하고 약 2개월 동안 저희 팀원들은 각 파트별로 크고 작은 성과와 함께 성능 향상을 이루어 냈고, 그 결과를 다음 섹션에서 공유드립니다! 

그림 2. 연구 과제에서 목표로 하는 3가지 문제점에 대해 강인한 모델 

 

2) 파트별 연구 아이디어 및 실험 결과


(1) Unseen method robust model

먼저 최중원 팀원이 담당한 Unseen method robust model 파트입니다!
 

- 주어진 문제 상황

표 1. 학습된 딥페이크 생성방법과 테스트 환경에서의 성능   그림 3. FaceForensics로 학습된 모델과 특징 시각화

이 파트에서의 주된 문제점은 학습된 생성 기법에서는 딥페이크 판별 성능이 우수하지만, 학습되지 않은 기법에 대해서는 성능이 하락하게 된다는 점입니다.

 

표1에서 보시는 바와 같이 모델이 학습하지 않은 유형의 딥페이크 데이터 셋에서는 올바르게 동작하지 못하는 것을 확인할 수 있고 이는 그림2에서 같이 학습된 모델이 특정 딥페이크의 특징만 잘 구별하도록 학습되었기 때문입니다.

 

따라서 저희는 다양한 딥페이크 생성 방법들이 가지고 있는 불변의 특징을 모델이 잘 학습할 수 있도록 접근했습니다.

 


- 문제 해결을 위한 접근법

최근 NeurIPS 2020, CVPR 2021 학회에서 제안된 연구에서는 주파수 도메인이 딥페이크 탐지에 효과적이라는 결과를 보여주었습니다. 이는 "GAN으로 생성된 이미지"의 특성상 GAN의 Up-sampling 과정에서 phase 도메인에 Fake 이미지의 특징이 누적된다는 점에서 착안했습니다.

그림 4. phase 도메인에서의 실제와 딥페이크 영상 픽셀 차이

따라서 저희는 기존의 딥페이크 탐지 모델들이 Phase 도메인을 활용하여 다양한 딥페이크 데이터에서의 불변의 특징을 찾을 수 있도록 흑백 이미지의 phase 채널을 이미지로 다시 변환한 다음 RGB 이미지와 함께 추가하여 모델이 학습할 수 있도록 했습니다.

 

- 실험 환경

서로 다른 기법으로 만들어진 4개의 데이터셋을 활용해서 다음과 같은 두가지 환경에서의 모델 성능을 확인했습니다.

1. 단일 환경에서의 딥페이크 특징 학습

2. 여러 환경에서의 딥페이크 특징 학습

그림 5. 서로 다른 딥페이크 데이터셋으로 이루어진 실험 환경

- 정량적 실험 결과

그림 6. phase 도메인 정보르 활용한 딥페이크 모델의 성능 향상 결과

MobileNetV2, EfficientNetB0, ResNet50 모델을 활용하여 실험 결과를 확인해 보았을 때, 학습 유형의 딥페이크 데이가 존재하는 seen 도메인에서는 모델이 대부분 올바르게 판별하였으며 특히 단일 환경이 아닌 여러 환경에서 특징을 학습했을 때 훨씬 동작을 잘하는 것을 확인했습니다. 이는 여러 환경에서 불변의 특징을 더 잘 학습했기 때문으로 사료됩니다.

또한 모델이 학습 당시에 보지 못했던 unseen 도메인에서는 모든 모델에서 성능 향상을 보였으며, AUROC 수치가 최대 11.8% 향상하는 것을 실험을 통해 확인할 수 있었습니다.

 

- 정성적 실험 결과

그림 7. 딥페이크 유형의 변화 했을 때의 모델 성능 변화
실제 테스트 이미지 사례에 대한 결과를 시각화 해서 딥페이크 유형이 달라졌을 때의 모델 성능 변화를 살펴보았습니다.
 
baseline 모델의 경우 seen 도메인에서는 올바르게 판별을 수행해냈지만 unssen 도메인에서는 real 이미지를 fake로 판별하는 결과를 보였습니다. 반면 phase 정보를 추가해서 학습한 저희의 모델은 real 이미지를 올바르게 real로 판별해 내는 것을 확인했습니다. 이를 통해 unseen 도메인 환경에서도 보다 강인하게 학습된 것을 확인할 수 있었습니다.
 
 

(2) Adversarial attack robust model

다음으로 김발해 팀원이 담당한 Adversarial attack robust model 파트입니다!

 

- 주어진 문제 상황

이 파트에서의 문제점은 딥페이크 이미지에 Adversrial attack을 적용할 경우 기존에 잘 탐지하던 딥페이크 탐지 모델의 성능이 크게 하락할 수 있다는 점입니다.

 

Adversarial attack 이란? 사람의 눈으로는 구분하기 힘든 노이즈를 추가해서 딥러닝 기반 모델의 성능을 크게 하락 시킬 수 있는 방법입니다. 

그림 8. Adversarial attack 이미지 생성 예시

예를들어, 그림8과 같이 팬더 사진에 특별히 설계된 노이즈를 적절히 추가했을 때 사람의 눈으로는 여전히 팬더로 보이지만 딥러닝 모델은 이 팬더사진을 원숭이로 예측을 하게 됩니다. 

그림 9. Adversarial attack 노이즈 크기에 따른 딥페이크 탐지 모델의 성능 하락

이와 같은 현상은 딥페이크 탐지에서도 나타나는데요, 그림9의 그래프와 같이 딥페이크에 판별에 우수한 기존 모델들 저희가 직접 attack 노이즈의 양을 조절해가며 테스트해 보았을 때 모델들의 성능이 모두 크게 하락하고 있는 것을 확인할 수 있습니다.

 

이러한 문제는 모델의 상용화에 있어 매우 치명적이기 때문에, 저희는 이를 해결하기 위해 network regularization과 image restoration 방법을 활용하여 탐지 모델 향상 기법을 개발했습니다.

 

- 문제 해결을 위한 접근법

1) Network regularization

식 1. Lipschitz regularization을 적용한 Loss

딥러닝 모델들은 regularization 기법을 활용하면 더욱 강인하게 모델을 학습시킬 수 있는데요, 저희는 다양한 기법 중 Lipschitz regularization을 활용했습니다. 

 

Lipschitz regularization은 입력 이미지 x에 대한 gradient penalty를 기존의 Loss에 추가함으로써 학습되는 네트워크의 매핑 함수를 보다 smooth하게 만들 수 있어 특정 attack이나 noise에 영향을 덜 받아 보다 강인하게 학습되는 효과를 기대할 수 있습니다. 

 

2) Image restoration

그림 10. 이미지 특징 복원을 위해 직접 고안한 네트워크 구조

만약 Adversarial attack이 적용된 이미지에서 노이즈를 제거하거나 더 이상 영향을 받지는 특징으로 복원할 수 있다면 딥페이크 탐지에 보다 강인할 수 있을 것입니다.

 

따라서 저희는 그림10과 같은 이미지 특징 복원 네트워크를 직접 고안하여 Image restoration 방법을 적용했습니다. 입력된 이미지 특징을 한쪽으로는 Upsampling과 Downsampling을, 다른쪽에서는 Downsampling과 Upsamping을 적용해서 이미지 특징을 복원함으로써 보다 풍부한 representation을 학습할 수 있도록 모델을 설계하였고 결과적으로 좋은 성능을 얻을 수 있었습니다.

 

- 정량적 실험 결과

그림 11. 제안한 방법을 적용한 모델의 성능 향상 비교 (attack noise level = 0.01)

먼저 저희가 제안한 각 방법들이 기존 baseline에 비해 얼마나 효과가 있는지 비교하기 위해 attack noise level 0.01의 케이스에 대해 성능을 비교한 결과입니다. 그림11의 그래프의 빨간 계열 bar는 regularization을 적용한 결과이고, 파란 계열 bar는 Image restoration을 적용한 결과입니다.

 

baseline 모델은 attack을 받게 되어 6.68%의 낮은 성능을 보인 반면, 저희가 제안한 두 방법은 모두 baseline 보다 약 10배 이상의 성능 향상을 보였습니다. 또한 그래프의 괄호는 서로 다른 하이퍼 파라미터에 대한 결과인데, 조정을 통해 성능 향상을 이루어 낼 수 있었습니다.

그림 12. FSGM attack 기법의 noise 크기에 따른 모델 성능 변화 비교

다음으로는 Adversarial attack 기법으로 주로 사용되는 FSGM 기법을 noise크기에 따라 변화시켰을 때의 모델 성능 변화를 비교한 결과 입니다.

 

Adversarial attack 노이즈가 적용되었을 때, baseline 모델은 급격한 성능 하락이 이루어진 반면, 저희가 제안한 모델들은 attack noise가 점차 커지더라도 비교적 강인하게 성능을 어느정도 유지하는 것을 확인할 수 있었습니다.

 

또한 저희의 방법을 적용한 모델들 모두 파란색 선에 해당하는 baseline 모델보다 높은 정확도를 보였고 가장 큰 성능 향상이 있었던 epsilone 케이스(0.005)의 경우에는 baseline에 비해서 무려 16배 이상 좋아진 결과를 보여주었습니다.

 

- 정성적 실험 결과

위 이미지는 실제 딥페이크 데이터 셋의 real, fake를 FSGM attack 노이즈를 적용한 예시입니다.

그림 13. Adversarial attack을 적용한 경우의 모델 판별 결과 비교

original 이미지에 노이즈가 추가된 이미지는 사람의 눈으로 구별할 수 없을 정도의 큰 차이가 존재하지는 않지만, baseline 모델은 real 이미지를 fake로, fake 이미지를 real로 완전히 뒤바뀐 예측을 하는 것을 확인할 수 있습니다.

 

반면 저희가 개발한 Image restoration 기법을 적용한 모델은 노이즈가 추가된 이미지에 대해서도 결과가 뒤바뀌지 않고 올바르게 판별을 수행했습니다.

 

(3) Physical condition shift robust model

마지막으로 이혜민 팀원이 담당한 Physical condition shift robust model 파트입니다!

 

- 주어진 문제 상황

이 파트에서의 문제점은 딥러닝 모델을 실사용하게 될 경우, 모델이 학습했던 실험실 환경의 public 데이터셋과 달리 다양한 물리적 환경 변화에 직면하게 되고 이로 인해 모델의 성능 하락이 발생하게 된다는 점입니다. 

그림 14. 실생활 시에 직면할 수 있는 이미지의 물리적 환경 변화

이러한 물리적 환경 변화에는 밝기, 노이즈, 카메라 해상도 등의 변화 뿐만아니라 전송 과정 중에 영상의 압축이 발생할 수도 있습니다. 

 

만약 이러한 변화를 모델 학습 시에 고려하지 않는다면 실제 상황에서 성능 저하가 발생할 수 있습니다.

 

저희는 이러한 문제를 해결하기 위해, 먼저 다양한 data augmentation 기법을 적용하여 모델이 실제 발생할 수 있는 최대한 많은 물리적 환경을 학습할 수 있게 하였으며, 두 번째로, 이러한 물리적 환경의 변화에 영향을 받지 않는 ‘진짜' 필요한 특징을 학습하기 위해 최근 self-supervised SOTA 기법인 simCLR 기반의 contrastive learning을 적용하여, 불변하는 특징을 학습할 수 있도록 했습니다.

- 문제 해결을 위한 접근법

이 파트의 모델 학습과정은 크게 두 과정으로 진행됩니다.

1) Contrastive Learning을 활용한 CNN backbone 학습 과정

그림 15. Constrative Learning을 적용한 Representation 학습 과정
식 2. Constrative Learning을 위한 Loss

먼저 물리적 환경에 불변하는 특징을 효과적으로 모델이 학습할 수 있도록 simCLR기반의 Contrastive Learning을 적용하여 모델의 representation을 학습했습니다. 이를 위해 각 이미지 별로 랜덤하게 augmentation을 적용해서 2개의 positive sample을 구성하여 positive 샘플 간의 similarity 최대화하고, negative sample과는 최소화하도록 학습시켰습니다.

 

물리적 환경이 다른 같은 두 이미지를 매칭하는 과정이기 때문에, 물리적 환경에 불변하는 특징을 모델이 효과적으로 학습할 수 있습니다.

 

2) 학습된 불변의 representation을 통한 딥페이크 탐지 모델 학습

그림 16. 환경에 불변하는 representation을 통한 탐지 모델 학습 과정

다음으로 학습된 representation을 활용하여 딥페이크 탐지를 수행하기 위해, 이전 과정에서 similarity를 측정하기 위해 사용했던 projection head 대신 탐지를 위한 classification head로 교체하고, 학습된 CNN backborn을 활용해서 classification head를 따로 학습시켰습니다.

 

- 정량적 실험 결과

그림 17. 물리적 환경변화가 고려한 데이터에 대한 모델 성능 비교

먼저 이미지의 물리적 환경이 변화했을 때의 모델의 성능 변화를 비교해 보았습니다.

 

일반적으로 모델의 성능을 평가할 때는 Test 데이터셋을 그대로 사용하지만, 저희는 실사용 시의 다양한 물리적 환경 변화를 감안하여 평가하기 위해 Original Test 데이터셋 뿐만아니라, Image Augmentation을 적용한 Augmented Test 데이터셋에 대해서도 성능을 평가했습니다.

 

저희가 제안한 모델은 물리적 환경 변화가 반영된 Augmented Dataset에서 베이스라인 모델보다 성능이 전반적으로 향상되었고, 특히 unseen 딥페이크 유형의 데이터셋에 대해서도 기존 모델보다 AUROC가 최대 45퍼센트 향상하기도 했습니다. 
이를 통해 물리적 환경 변화의 불변하는 특징을 학습하는 것이 unseen 유형의 딥페이크를 대비하는 데에도 효과적인 것을 실험적으로 확인할 수 있었고 보다 강인할 모델을 구현할 수 있었습니다.

 

- 정성적 실험 결과

그림 18. 물리적 환경 변화

정량적 실험에 대한 이해를 돕기 위해, 그림18에서는 물리적 환경 변화에 따른 판별 결과를 시각화했습니다.

 

Original 이미지에서 밝기, 대비 등의 환경이 변화했을 때는, baseline 모델도 나름대로 올바르게 판별을 수행했지만 압축 환경이 변화했을 때는 정반대의 판별을 수행했습니다. 반면 저희의 모델은 압축 환경 변화에서도 올바르게 판별을 수행했습니다. 이는 저희의 모델이 정량적 수치 뿐만아니라 각 이미지에 대해서도 환경 변화에 더 강인한 것을 확인할 수 있었습니다.

 

3) 연구 결과 요약


저희의 약 2개월 간의 연구 결과를 각 파트별로 간략히 요약하면 아래와 같습니다!

4) 추후 연구 계획


- 연구 계획 추진 일정표

표 2. 딥페이크 판별 모델 연구 개발 추진 일정 

저희는 기존에 말씀드린 계획했던 일정대로 8월까지 각 파트별로 팀원들이 병렬적으로 개발을 수행해왔고,
앞으로는 현재 개발된 모듈을 하나의 모델로 아래와 같이 통합하여 개발할 계획입니다.

- 최종 통합 모델 계획

그림 19. 각 파트가 통합된 최종 딥페이크 판별 모델 학습 전략

마지막으로 저희가 생각하고 있는 세 파트 모델의 통합 계획에 대해서 간략히 설명드리고 마치겠습니다.

 

저희의 초기 계획은 3가지 모델의 loss function 을 통합하여 모델을 최적화하는 방식을 계획했지만, 추후 SKT 멘토님과의 회의에서 self-supervised 모델에 사용된 loss는 통합된 모델의 loss로 같이 최적화하기보다 pre-training에 사용하는 것이 더 효과적이라는 힌트를 얻을 수 있었습니다!

 

실제로 저희가 실험해 보았을 때 따로 pre-training을 수행한 다음에 최적화 하는 것이 더 효과가 좋았기 때문에 멘토님의 조언을 따라 혜민님이 맡으신 physical condition robust model 모델을 pre-train network 에 활용하고, 저와 발해님이 맡은 파트 로스 함수를 결합하여 fine-tuning을 수행하여 통합하려는 계획을 세우고 있습니다.
 

5) 마치며


2개월이라는 작은 시간에도, 각각의 어려운 주제를 각 팀원을 전담하여 열심히 수행한 덕분에 중간 결과로 좋은 성과를 보여드릴 수 있었습니다.

모델을 통합하기 위해서 앞으로도 험난한 여정이 기다리고 있지만, 든든한 SKT 멘토님의 지원아래 성공적으로 프로젝트를 마칠 수 있으면 좋겠습니다 :)

저희 연구와 관련해서 궁금하거나 소통을 하고 싶은 분은 편하게 아래 메일로 문의주세요!
E-mail: jungwon.choi {at} kaist.ac.kr

팀딥텍터 님의 최신 블로그

더보기

관련 블로그