[1] Tian, Chunwei, et al. "Deep learning on image denoising: An overview." Neural Networks 131 (2020): 251-275.
인용수 : 726
리뷰 이유 : denoising review paper 중에 인용수가 높음.
이 논문의 introduce 구성은 다음과 같음.
1) denoising의 필요성 언급
2) denoising 기술 발전
고전적 방법 -> 머신러닝 방법 -> 딥러닝 방법
3) 논문의 전반적인 세션 언급
하나씩 살펴보도록 하자.
전송과 압축 과정에서 이미지 손상이 감.
저하된 이미지에서 깨끗한 이미지로 만들기 위해서는 잡음 제거 기술이 반드시 필요함.
단점) 정확도가 떨어짐
단점) 각 데이터마다 hyper-parameter가 다름
등등
논문은 크게 세션이 6까지 나눠짐.
세션 2. 딥러닝 프레임워크 설명
세션 3. 이미지 DENOISING 딥러닝 범주와 방법 비교, 분석
(그림에서 초록색, 파란색 부분)
세선 4. denoising 방법의 성능 비교
세션 5. 남은 과제와 잠재적인 연구 방향 논의
세션 6. 저자의 결론
여기서 이제 주로 세션 3의 대표 모형에 대해서 살펴보려고 함.
딥러닝에 대한 전반적인 설명이 그려진 그림임.
딥러닝은 크게 input layer, hidden layers, output layer로 구성되고 최종적으로 어떤 것을 분류하거나 회귀하는 형태로 모델링이 진행됨.
일반적인 딥러닝에서의 계산과정을 식으로 나타내면 다음과 같음.
굳.
이 논문에서는 대표적은 CNN 모형들에 대해서도 언급을 함.
VGG
GoogLeNet
ResNet
GAN
세션 3에서는 이미지 노이즈 제거를 위한 딥러닝 기술을 소개함.
실제 데이터에서는 이미지 noise를 눈으로 보기 어렵기 때문에 여러 noise를 고의로 추가한 후 제거하는 식으로 denoising 연구가 진행됨.
여기에서는 크게 3가지 노이즈에 대한 소개와 딥러닝 기술이 서술되어져 있음.
GPT에 물어본 백색 잡음에 대한 식은 다음과 같음.
신호 s를 x로 표현할 때 백색 잡음을 추가함.(t는 신호)
감이 좀 안잡혀서, 깃허브에 쳐봄.
# 링크 : https://github.com/zsyOAOA/VDNet/blob/master/demo_test_simulation.py
# 값 정규화
sigma = 10/255.0 + (sigma-sigma.min())/(sigma.max()-sigma.min()) * ((75-10)/255.0)
# 크기 변환
sigma = cv2.resize(sigma, (W, H))
# 잡음 생성
noise = np.random.randn(H, W, C) * sigma[:, :, np.newaxis]
# 잡음 추가
im_noisy = (im_gt + noise).astype(np.float32)
im_noisy = torch.from_numpy(im_noisy.transpose((2,0,1))[np.newaxis,])
각 noise나 모형 별로 인기 있는 denoising 딥러닝 기술을 살펴봄.
참조 블록(reference block)과 비슷한 블록들을 구해서 3차원 그룹으로 정렬하고 선형변환을 실행한 후에 임계치에 못 미치는 값을 제거한 다음 역변환을 실행하여 잡음을 제거하는 방법임.
TNRD(trainable nonlinear reaction diffusion, 2015)
DnCNN(2017)
이 모델은 잡음을 출력하는 모델임. 식으로 나타내면 다음과 같음.
여기서 x는 noisy image이고 y는 clean image, R(y)는 noise를 나타냄.
Noise level map
잡음이 있는 영상과 잡음 수준을 함께 input으로 넣음.
Nonlinear mapping
DnCNN 모형과 비슷한 네트워크 + 마지막에 dilated convolution 추가
Denoised subimages
downsampling과 "서브"샘플링 때문에 시간을 많이 줄일 수 있음.
1) CNN 너비를 늘려 학습 능력 향상
2) 배치 재정규화
3) Dilated convolution을 사용하여 수용 필드 확대
비지도 잡음 모델링을 가능하게 해준 GAN 모형.
여기 이 모형은 서로 보완적인 3가지 제약이 존재.
1) Clean consistency
잡음 모형이 입력에 대해 0 응답을 생성하는 식으로 학습이 진행됨.
2) Reconstruction consistency
순수 잡음이 입력될 때, 동일한 잡음이 출력되야 함.
3) Pure noise consistency
깨끗한 이미지를 입력하면 순수한 노이즈를 생성해야 함.
4개의 block이 함께 특징을 추출함.
뒤에 다른 세션이 있지만, 다양한 데이터셋에 대해서 결과를 정리함.
실제 잡음 제거를 위한 여러 딥러닝 기술에 사용해볼 내용으로는 다음과 같음.
1) 수용 영역을 확대하면 더 많은 정보를 얻을 수 있음. ex) dilated convolution
2) Prior knowledge를 사용하면 정확한 특징을 얻을 수 있음.
3) residaul block(잔여 연산)과 recursive operation(재귀 연산)을 이용하면 로컬 정보와 글로벌 정보를 결합할 수 있고 이를 통해 잡음을 잘 필터링할 수 있음.
4) 단일 처리 방법을 사용하여 잡음을 필터링할 수 있음.
5) Data augmentation은 학습에 중요한 포인트가 될 수 있음.
6) Transfer learning을 이용.
7) 캡쳐된 이미지에 노이즈가 미치는 영향을 최소화하여 실험해볼 것.
+pca, cnn 같은 차원 축소 방법도 융합!
1) 네트워크가 깊어지면 메모리가 많이 듦 + 시간이 오래 걸림.
2) 심층적인 잡음 제거 네트워크는 페어링되지 않은 잡음 이미지에 대해 "안정적인" 솔루션이 아님.
3) 실제 너무 잡음이 많게 캡쳐된 이미지는 훈련 샘플에 부적절함.
4) Deep CNN은 Unsupervised 잡음 제거 작업을 해결하기 어려움.
5) PSNR, SSIM이 좋은 평가 방법이 아닐 수 있음.
본인 데이터에 잡음 수준과 denoising 방법들을 비교해보면서 정리하면 좋을 것 같음.
stable diffusion을 공부하고 있어서 내용이 도움되었습니다~ 감사합니당