본문 바로가기

Contact 日本語 English

【알고리즘】 12-1강. DIP(Deep Image Prior)

 

12-1강. DIP(deep image prior)

 

추천글 : 【알고리즘】 12강. 딥러닝 3부 - CNN 알고리즘


1. 개요 [본문]

2. 수식화 [본문]

3. 응용 [본문]

4. 레퍼런스 [본문]


 

1. 개요 [목차]

⑴ 발상

① CNN은 corrupted image에 내재된 texture를 인식할 수 있음

② 초기 상태를 달리하여 여러 CNN 구조를 만들면 corrupted image의 모든 texture의 집합을 생성할 수 있음

③ 가정 : 그러한 집합은 corrupted image뿐만 아니라 clean image의 모든 texture의 집합이 될 수도 있음

○ 즉, CNN 자체가 매우 강력하고 내재적인 Prior라서 CNN이 표현가능한 parametric function space가 일반적이지 않음

○ 즉, CNN이 주어진 이미지를 overfitting 하는 거지만, regularizer의 역할을 하므로 완전히 overffiting하지 않기 때문에 가능

○ 근본적으로는 DIP가 우리 눈으로는 인식하지 못하는 자연계의 반복된 구조를 CNN 아키텍처가 잡아내기 때문

⑵ 개념

IR(image restoration) : corrupted image를 clean image로 복원하는 것

베이즈 법칙(Bayes' theorem)

 

 

○ Posterior : corrupted image로부터 추출한 texture (결과)

○ Prior : clean image로부터 추출한 texture (원인)

○ Likelihood : 만약 Prior가 주어져 있다면 그 texture들을 조합하다가 주어진 데이터가 나왔을 확률

 생성형 모델(generative model)

 새로이 예제 데이터를 생성하는 모델을 통틀어 지칭

 DIP(deep image prior)는 생성형 모델 중 하나

prior learning

○ 정의 : prediction model 등을 생성하기 위해 일반적인 CNN 신경망이 수많은 데이터셋을 통해 미리 학습을 하는 것

○ prior learning은 training / prediction와 같이 진행되는 경우에 필요함

○ 이와 달리, DIP는 self-taught manner로 진행하므로 prior learning을 필요로 하지 않음

자기주도적 학습(self-supervised learning)

○ 정의 : toy example처럼 스스로 문제 및 정답지를 만들어서 진행하는 기계 학습

○ supervised learning과의 공통점 : test / training dataset을 구분

○ unsupervised learning과의 공통점 : 정답지를 모델이 만들어냄

foundation model

○ 정의 : inductive way로 작동하는 머신러닝 모델로, 필연적으로 self-supervised model이어야 함

○ inductive way의 의미 : (apple, 사과), (banana, 바나나) 등이 주어져 있을 때 (melon, ?)을 맞출 수 있다는 의미

○ DIP(deep image prior)는 foundation model은 아님 : inductive way로 작동하지 않기 때문

 

 

2. 수식화 [목차]

⑴ 목표 : corrupted image x0로부터 clean image x*를 얻는 것

⑵ 입출력 정의

 

 

z ∈ C' × H' × W' : CNN learned from corrupted image x0. CNN 구조도 행렬처럼 정리할 수 있음. C'은 CNN의 개수

x ∈ 3 × H × W : image derived from z

θ : network parameter

④ f : deep learning network

⑤ 위 파라미터 θ를 최적화하였을 때, 얻어지는 x를 clean image x*라고 함

⑶ 최적화 문제 : θ는 다음 비용을 최소화하는 θ로 정의됨

 

 

① E : 비용함수. 에너지, 엔트로피 등으로도 불림

R : regularizer

○ 한 예로 특정 아키텍처의 R = 0, 나머지의 R = 으로 설정할 수 있음

③ x : DIP 알고리즘의 출력

④ x0 : corrupted image 

○ x0를 드물게 clean image와 더 유사하지만 포함하는 정보가 다른 대체 이미지로 두기도 함 

○ 예 : corrupted image가 특정 조직의 형광 분포 이미지이고 대체 이미지 x0가 그 조직의 광학 이미지인 경우

⑤ 최적화 단계에서 반복수가 너무 많으면 corrupted image를 너무 strict하게 해석하므로 일정 횟수 이하여야 함

 

출처 : 이미지 클릭

Figure. 1. 반복수에 따른 DIP의 퍼포먼스]

 

코드 

 

 

3. 응용 [목차]

denoising : 이미지에 들어있는 노이즈 등을 제거

 

출처 : 이미지 클릭

Figure. 2. denoising의 예시]

 

⑵ restoration : 이미지를 복원하는 것으로 CNN이 그 자체로 메모리 기능을 수행할 수 있음을 암시함

 

출처 : 이미지 클릭

Figure. 3. restoration의 예시]

 

⑶ JPEG artifacts removal : 손실 압축을 하는 JPEG 이미지에서 원래 정보를 복원

 

출처 : 이미지 클릭

Figure. 4. JPEG artifacts removal의 예시]

 

super-resolution : 저해상도 이미지를 고해상도 이미지로 변환

 

출처 : 이미지 클릭

Figure. 5. super-resolution의 예시]

 

① 비용함수

 

 

d(·) : 3 × tH × tW3× H × W 

○ t : down sampling operator. 1보다 큼

inpainting : 이미지 내 누락된 부분을 보충하여 글씨를 제거하는 등의 효과가 있음

① 비용함수

 

 

○ m {0, 1}H × W : binary mask

: Hadamard’s product

 

출처 : 이미지 클릭

Figure. 6. inpainting의 예시]

 

flash-no flash reconstruction : flash image로부터 flash-no image를 얻거나 그 반대로 하는 것

 

출처 : 이미지 클릭

Figure. 7. flash-no-flash reconstruction의 예시]

 

 

4. 레퍼런스 [목차]

Ulyanov, D. et al. (2018). Deep image prior.

 

입력: 2021.12.31 10:20