Baseline: 링크텍스트
CODE: 링크텍스트
정의: 저해상도 영상을 고해상도 영상으로 변환하는 작업
방식: 고해상도 이미지 준비 -> 특정 처리 과정 -> 저해상도 이미지 생성 -> 입력 -> 고해상도 이미지 복원
문제:
i) ill-posed(inverse) problem: 매우 다양한 경우의 수가 있다
ii) 복잡도: 제한된 정보를 이용해서 많은 정보를 만들어 낸다.
정의: 알려진 두 점 사이의 특정 지점에 대한 값 추정
특징: Super Resolution수행하는 가장 쉬운 방법
종류:
- Linear interpolation: 2개의 값 이용하여 새로운 픽셀 예측
두 점 사이에 직선을 그리고 그 선을 이용하여 추정
사잇값 정리
선형 보간법을 2차원으로 확장시킨 것
이웃한 4 (2 * 2) 점을 참조
2차원으로 확장시킨 것이지만 원리 상의 차이는 없다
16(=4 * 4) 점 참조
순서
용어 정리
Patch extraction and representation : 저해상도 이미지에서 patch를 추출한다.
Non-linear mapping : Patch를 다른 차원의 patch로 비선형 매핑한다.
Reconstruction : Patch로부터 고해상도 이미지를 생성한다.
손실함수 : MSE
- content loss : generator을 이용해 얻은 가짜 고해상도 이미지를 실제 고해상도 이미지와 직접 비교하는 것이 아닌, 사전 학습된 VGG모델에 입력해 특성맵에서의 차이 계산
- adversarial loss:GAN의 loss
- perceptual loss: content loss + adversarial loss
Generator : 저해상도 이미지를 입력받아 고해상도 이미지 생성하여 구현됨, skip-connection가지고 Functional API 이용한다.
Convolutional layer: hyperparameter 설정 정보
k : kernel size
n: 사용 필터의 수
s: stride
from tensorflow.keras import Input, Model, layers
# 그림의 파란색 블록을 정의합니다.
def gene_base_block(x):
out = layers.Conv2D(64, 3, 1, "same")(x)
out = layers.BatchNormalization()(out)
out = layers.PReLU(shared_axes=[1,2])(out)
out = layers.Conv2D(64, 3, 1, "same")(out)
out = layers.BatchNormalization()(out)
return layers.Add()([x, out])
# 그림의 뒤쪽 연두색 블록을 정의합니다.
def upsample_block(x):
out = layers.Conv2D(256, 3, 1, "same")(x)
# 그림의 PixelShuffler 라고 쓰여진 부분을 아래와 같이 구현합니다.
out = layers.Lambda(lambda x: tf.nn.depth_to_space(x, 2))(out)
return layers.PReLU(shared_axes=[1,2])(out)
# 전체 Generator를 정의합니다.
def get_generator(input_shape=(None, None, 3)):
inputs = Input(input_shape)
out = layers.Conv2D(64, 9, 1, "same")(inputs)
out = residual = layers.PReLU(shared_axes=[1,2])(out)
for _ in range(5):
out = gene_base_block(out)
out = layers.Conv2D(64, 3, 1, "same")(out)
out = layers.BatchNormalization()(out)
out = layers.Add()([residual, out])
for _ in range(2):
out = upsample_block(out)
out = layers.Conv2D(3, 9, 1, "same", activation="tanh")(out)
return Model(inputs, out)
영상 내 신호가 가질 수 있는 최대 신호에 대한 잡은 비율
영상 압축시, 화질 손실량에 대해 평가 목적
데시벨 단위
PSNR 수치가 높을 수록 원본 손실 적다
peak_signal_noise_ratio 메서드 이용
상한값이 없다
영상의구조 정보 고려하여 구조 정보 변화시키지 않는 계산하기
SSIM이 높을 수록 원본 영상의 품질에 가깝다
structural_similarity 메서드 이용
0~1사이의 값을 가진다