Deep Learning through deep learning

#2 논문리뷰 - CT 영상에서 U-Net 기반 변형가능 컨볼루션 GAN을이용한 잡음제거 본문

ML&DL/Paper Review (논문)

#2 논문리뷰 - CT 영상에서 U-Net 기반 변형가능 컨볼루션 GAN을이용한 잡음제거

NeuroN 2023. 8. 22. 14:39

해당 논문 링크

https://www.dbpia.co.kr/pdf/pdfView.do?nodeId=NODE11485084 

 

DBpia

논문, 학술저널 검색 플랫폼 서비스

www.dbpia.co.kr

앞선 논문은 GAN 모델에 대한 논문이었다. 같은 GAN 모델을 다루지만 이번에는 DCGAN 모델을 기반으로 한 노이즈 제거 모델에 대한 논문 리뷰를 하려고 한다.

영어 논문에 비해 상대적으로 술술 읽혔지만 핵심을 중점으로 파악하기 위해 노력했다.

최대한 논문에 대한 핵심을 위주로 리뷰를 정리해 나가고자 한다.


Topic

논문에서 제시하는 아이디어의 배경을 요약하자면, X-선 촬영에 있어 이미지의 노이즈가 병명 진단의 정확성을 떨어뜨리는 요인이 되며, 이러한 노이즈를 제거하고자 한다.

 

기존의 노이즈 제거 방법과 논문에서 제시하는 제거 방법을 비교하여 실험을 진행한다.

비교할 기존의 방식에는 BM3D, DCGAN, WGAN, WGAN-GP, GAN with U-Net 이 있다.

본 논문에서는 DCGAN 기반 U-DeCGAN (U-Net Based GAN with Deformable Convolution) 모델을 통해 잡음을 제거하고자 한다.

 

U-DecGAN 에서 변경된 핵심 부분은,

Generator : U-Net 구조의 네트워크 사용
Discriminator : Deformable Convolution layer 구조의 네트워크 사용

손실함수 : 기존의 GAN (adversarial loss)손실 + MSE(mean squared error loss) 손실 가중합 형태

로써, 손실함수와 모델 구조에 대한 변경이라고 파악했다.

 

평가지표로는 PSNR (Peak Signal-toNoise Ratio), SSIM (Structural Similarity Index Measure) 를 통한 정량적 비교를 한다.


Introduction

기존 GAN, DCGAN 에 대해 설명하고, 논문에서 제시하는 U-DeCGAN에 대해 본격적인 설명에 들어간다.

GAN, DCGAN 에 대해 요약하자면,

GAN 이다.

GAN에서는 Generator와 Discriminator라는 두 신경망이 존재한다.

초기에 실제 원본 이미지가 Real Samples로 들어가고 G는 랜덤으로 이미지를 생성한다.

D는 Real Samples와 G가 생성한 이미지를 가지고 실제 이미지인지 아닌지를 판별한다.

이 과정에서 발생한 loss 를 통해 G 는 더욱 실제와 같은 이미지를 생성하고, D는 실제와 가짜이미지를 더욱 잘 판별하도록 한다. 

이러한 과정을 반복하여 G가 실제와 같은 이미지를 생성하게 되는 원리이다.

DCGAN 이다.

기존의 GAN과 달리 Fully connected layers 대신 deconvolutional layer, transposed convolution layer 구조를 이용한다.

즉, MLP 구조에서 CNN 구조로 이미지를 더욱 잘 다루기 위한 구조로 변경을 한 것이다.

결국 CNN 신경망에서 G는 반대로 class 정보가 아닌 이미지를 생성하고, D는 이미지로부터 class 정보를 얻는 반대의 구조를 가진다.


Approch

논문에서 제시하는 U-DeCGAN 모델이다.

기존의 DCGAN과 달리 Generator가 그저 CNN 컨볼루션 구조가 아닌 U-Net 구조이다.

U-Net 구조를 살펴보면, 다운샘플링을 통해 이미지의 의미 정보를 추출하고, 업샘플링을 통해 의미 정보로 복원된 영상을 얻는다. 이 과정에서 공간정보를 잃지 않기 위해 스킵 연결을 사용한다.

또한 Discriminator도 CNN 컨볼루션 구조에서 마지막에 Deformable Convolution 을 추가하였다.

우리가 보아야할 핵심은 이 Deformable Convolution 이다.

Deformable Convolution 의 작동 방식은 다음과 같다.

  1. input feature map 에서 kernel을 통해 2D offset을 구한다. 실수 값을 가진다.
  2. Regular field R0 에 이 offset을 적용하여 New receptive field R 을 얻는다. 여기서 픽셀 위치를 정하기 위해서는 bilinear interpolation 방법을 이용한다. 
  3. convolution 연산을 통해 output feature map 을 얻는다.

추가적으로 convolution 연산은 영상 특징과 관련없는 부분까지 연산을 수행하기 때문에 이를 막기 위해 조절 매커니즘을 도입한다.

이는 Mn 조절 상수를 이용하고, convolution 에 대한 수식은 위과 같다.

 

다음은 변경된 핵심 부분 중 손실함수 부분을 살펴본다. 

기존의 MSE 손실함수를 통해 원본과의 차이로 오차를 구한다.

이후 사용될 손실 함수는 MSE 손실함수에 GAN 손실함수를 합한 형태를 가진다.

MSE 손실함수를 더하는 이유는 학습에 안정성을 더해주기 위함이다.

λ 를 통해 MSE의 가중치를 둘 수 있고, λ값이 크면 원 영상과 비슷하지만 흐린 영상을 얻고, λ값이 작으면 GAN 손실함수의 영향이 더 커져 학습이 불안정해질 수 있다.


Experiments

논문을 통해 제안한 의사코드를 확인할 수 있다.

Generator 부분은 convolution 층이 커졌다 작아지는 U-Net 구조임을 확인할 수 있고,

Discriminator 부분은 DeformableConv2d 가 추가된 것을 확인할 수 있다.

(a) 를 원본 이미지로 우측 (b) (c) (d) 는 노이즈가 발생한 이미지로 설정한다.

원본 이미지에 대한 학습을 진행하고, 노이즈 이미지를 테스트용으로 사용했다고 파악했다.

앞서 소개했던 평가지표는 다음과 같다.

PSNR은 MSE를 사용하여 품질을 검사한다. 수치가 높을수록 더 좋은 품질이다.

하지만 시각적으로 보았을 때의 품질 차이를 표현한 방법은 아니다.

SSIM 에서는 이러한 시각적 화질 차이를 평가하기 위해 사용된다. 이 또한 높은 수치일수록 더 좋은 품질이라는 것이다.

3가지 노이즈에 대해 학습된 모델을 평가해본 결과를 보여준다. 역시나 논문에서 제시한 모델이 가장 높은 성능을 보여줬음을 확인할 수 있다. 여기서 주시해야할 점은 GAN 이전의 모델과 이후의 모델의 평가지표가 눈에띄게 다르다는 점이다.

논문에서 제시한 결과이미지를 육안으로 확인해보아도 확실히 또렷한 결과이미지를 확인할 수 있다.


else

연구를 목적으로 GAN 에 대한 공부를 시작했다.

CGAN 에 대해 배우기 전까지는 이전의 GAN이 모두 이미지를 생성하는 것으로만 그친다고 생각했었다.

하지만 해당 논문을 읽고 생각이 짧았음을 느끼게되었다. 그저 GAN 모델만으로도 이미지의 노이즈를 제거할 수 있다는 아이디어에서 망치를 맞은 듯한 기분이 들었다.

진행중인 연구 주제에서 이미지 복원도 마찬가지로 노이즈로 치부되는 그림자 빛 반사 영역을 제거 및 복원하는 것이었다.

이를 노이즈처럼 설정하고 논문과 같은 방법으로 간단하게 복원이 가능하지 않을까라는 생각이 들었다.

굳이 스타일을 변경한다는 개념까지 갈 필요 없이 그림자와 빛 반사 영역을 노이즈로 치부하면 되지않을까 라는 생각이었다.

직접적인 실험 및 코드실행은 해보지 않아 확신할수는 없지만 새로운 시각을 가지게 해준 논문이었다.