728x90
스파르타 코딩클럽의 딥러닝 이미지 처리 수업을 기반으로 공부한 내용을 정리하고 있습니다.
패키지 및 모델 로드하기
설치하기
pip install opencv-contrib-python
모델로드하기
1
2
3
4
5
6
|
import cv2
#모델 로드하기
sr = cv2.dnn_superres.DnnSuperResImpl_create()
sr.readModel('models/EDSR_x3.pb')
sr.setModel('edsr', 3)
|
cs |
-> 우리는 EDSR라는 이름의 모델을 로드할 것이다. 이 모델은 이미지의 해상도를 3배로 향상시켜주는 모델이다.
-> "dnn_superres" 초해상도라는 이름의 모델이다. 즉 해상도를 좋게 만들어주는 모델인 것이다.
이미지 로드하고 추론하기
1
2
3
4
5
|
#이미지 로드하기
img = cv2.imread('imgs/06.jpg')
#이미지 추론하기 ( 해당 함수는 전처리와 후처리를 함꺼번에 해준다)
result = sr.upsample(img)
|
cs |
-> 모델이 저장된 sr 변수에서 upsample이라는 함수를 사용하게 된다.
-> 해상도가 낮은 이미지를 로드해주고 sr.upsample() 함수를 사용하여 추론할 것이다.
이 때 이 함수는 전처리와 후처리 과정을 함수에서 해줘서 간편하게 사용할 수 있다.
결과 이미지 비교하기
1
2
3
4
5
6
7
|
#결과 이미지 비교하기
resized_img = cv2.resize(img, dsize=None, fx=3, fy=3)
cv2.imshow('img', img)
cv2.imshow('resized_img', resized_img)
cv2.imshow('result', result)
cv2.waitKey(0)
|
cs |
-> 일단 원본 이미지를 cv2.resize()를 사용하여 가로 3배, 세로 3배의 크기로 늘려준다.
n배로 이미지 크기를 변형하고 싶을 때는 dsize 에 None 을 넣고 fx(너비 배수), fy(높이 배수)를 사용하여 이미지 크기를 변형할 수 있다.
-> 우리가 이 과정을 하는 이유는 기본 알고리즘을 사용하여 이미지의 해상도를 3배 늘렸을 때(resized_img)와 화질향상 딥러닝 모델을 사용하여 이미지의 해상도를 3배 늘렸을 때(result) 어떤 차이가 있는지 눈으로 확인하기 위함이다.
728x90
'Data' 카테고리의 다른 글
크롤링/스크래핑 - Python/BeautifulSoup&Selenium (0) | 2021.03.23 |
---|---|
[Practice] 이미지 처리_gray scale & 해상도 향상 (0) | 2020.12.25 |
[Practice]흑백 사진의 일부만 컬러처리하기 (0) | 2020.12.25 |
[Practice]흑백사진 컬러처리 하기 (0) | 2020.12.25 |
딥러닝 이해하기_GAN (0) | 2020.12.25 |