로봇이 되고픈 부엉이

(SRGAN) Super Resolution Generative Adversarial Network code 돌려보기2 본문

Deep Learning/Super Resolution 초해상도

(SRGAN) Super Resolution Generative Adversarial Network code 돌려보기2

탈모탈모대작전 2019. 10. 31. 15:06
728x90
반응형

첫번째 포스팅에서: https://biomnic.tistory.com/category/Deep Learning/Super Resolution 초해상도

 

'Deep Learning/Super Resolution 초해상도' 카테고리의 글 목록

심심한 부엉이는 컴퓨터를 공부하기로 했다. 하다보니 화학도 재미가 있더라.

biomnic.tistory.com

SRGAN에 대한 수정된 CODE를 얻었다면,

 

다음 작업은 학습시킬 데이터를 모으는 작업을 한다.

 

<학습데이터 만들기>

나의 주제는 MRI 영상의 SRGAN이기 때문에, 연구소에서 MR영상을 촬영하였다.

 

데이터는 다음과 같이 2종류를 함께 준비한다.

1. 학습데이터 Trainning data

-저해상도 Low Resolution

-고해상도 High Resolution

 

2. 테스트데이터 Test data

-저해상도 Low Resolution

-고해상도 High Resolution

 

학습데이터와 테스트데이터는 임의로 정하되, 학습데이터를 보통 더 많이 한다.

 

고해상도와 저해상도는 일단 고해상도 영상만 있다면, 저해상도 영상을 만들어 내는 형식으로 한다.

(고해상도로 부터 저해상도 영상을 만든다.)

 

MR 영상의 저해상도 만드는 방법은 따로 포스팅하도록 하겠다.

 

일반 영상의 경우 가지고 있는 영상을 고해상도 영상이라고 정하고,

여러가지 보간법 Interpolation을 취하여 저해상도 영상을 만들어준다.

 

이 보간법에는 bicubic interpolation이 대표적으로 사용된다고 한다.

python 라이브러리 중 PIL.Image.BICUBIC이라는 function이 있으니, 이런건 직접 찾아보자:)

사실 난 안해보..

려했지만, 찾다가 해버렸다. 아래를 참고하자. (코드는 사진 밑에 복붙가능한 걸로다가 올려놨다. 친절맨~고마어요)

[왼쪽이 고해상도, 오른쪽이 저해상도]

(사진을 제공해 준 사람은 마음이 따스한 류진 친구입니다. 허락해주셔서 감사합니다.)

from PIL import Image
import cv2
import numpy as np
import matplotlib.pyplot as plt

img = plt.imread("./1.jpg")
down = cv2.resize(img, dsize=(90, 120), interpolation=cv2.INTER_AREA)

plt.figure(figsize=(15,6))

plt.subplot(1,2,1)
plt.imshow(img)

plt.subplot(1,2,2)
plt.imshow(down)

 

 

그렇게 한 다음과 같은 폴더에 딱딱 넣어놓자.

[학습데이터와 테스트데이터의 폴더]
[학습데이터 폴더와 테스트데이터 폴더 속 HR, LR 폴더]

 

 

이렇게 까지가 SRGAN을 돌리기 전 준비 단계였다.

 

모르거나 헷갈리는 점이 있다면,

yjmj1102@gmail.com 으로 문의 바란다.

728x90
반응형