Review of Super Resolution and EDSR

twinjuyΒ·2022λ…„ 4μ›” 27일
0

λ¦¬μ„œμΉ˜

λͺ©λ‘ 보기
3/3
post-thumbnail

πŸ˜Šμ•ˆλ…•ν•˜μ„Έμš”. 였늘 μ•Œμ•„λ³Ό μ£Όμ œλŠ” λ°”λ‘œ Super Resolution(SR)μž…λ‹ˆλ‹€.

Super Resolutionμ΄λž€ λ¬΄μ—‡μΌκΉŒ?

Super Resolution은 μ΄ˆν•΄μƒν™”λΌκ³  ν•˜κ³ , μ΄λŠ” 저해상도 μ˜μƒμ„ 고해상도 μ˜μƒμœΌλ‘œ λ³€ν™˜ν•΄μ£ΌλŠ” κ³Όμ œμž…λ‹ˆλ‹€. μ˜μƒμ˜ 해상도가 μ’‹μ„μˆ˜λ‘ κ·Έ μ˜μƒμ„ μ‹œμ²­ν•˜λŠ” μ‚¬λžŒλ“€μ˜ λ§Œμ‘±λ„κ°€ μ’‹μ„μˆ˜ 밖에 μ—†κ² μ£ ? λ”°λΌμ„œ SR은 컴퓨터 λΉ„μ Ό λΆ„μ•Ό 쀑 맀우 μ‹€μš©μ μΈ λΆ„μ•Ό 쀑 ν•˜λ‚˜λ‘œ λ½‘νžˆκ³  μžˆμŠ΅λ‹ˆλ‹€.



κ·Έλ¦Ό1. μ €ν™”μ§ˆ 이미지 κ³ ν™”μ§ˆ 이미지 λ³€ν™˜


λ”₯λŸ¬λ‹μ„ ν†΅ν•œ SR이 λ“±μž₯ν•˜κΈ° μ „μ—λŠ” 바이큐빅 보간법과 같은 닀항식 기반의 보간법 ν˜Ήμ€ μ„ ν˜• 맀핑을 μ‚¬μš©ν•˜λŠ” 둜컬 패치기반의 μ΄ˆν•΄μƒν™” 기법듀이 널리 μ—°κ΅¬λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 방법듀은 μƒλŒ€μ μœΌλ‘œ 적은 λ³΅μž‘λ„μ™€ μ—°μ‚°λŸ‰μœΌλ‘œ κ³ ν’ˆμ§ˆμ˜ μ˜μƒλ“€μ„ 생성해 λ‚Ό 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ΄λŸ¬ν•œ 방법듀은 λ‹¨μˆœν•œ μ„ ν˜• 맀핑을 기반으둜 ν•˜κΈ° λ•Œλ¬Έμ—, λ³΅μž‘ν•˜κ³  λΉ„μ„ ν˜•μ μΈ 저해상도-고해상도 λͺ¨λΈμ„ κ΅¬ν˜„ν•˜κΈ° μ–΄λ ΅λ‹€λŠ” 단점이 μ‘΄μž¬ν–ˆμŠ΅λ‹ˆλ‹€.

ν•΄λ‹Ή 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ CNN기반의 μ΄ˆν•΄μƒν™” μ•Œκ³ λ¦¬μ¦˜λ“€μ΄ λ“±μž₯ν•˜κΈ° λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” μ—¬λŸ¬κ²ΉμœΌλ‘œ μŒ“μ€ λ‹€μΈ΅ λ„€νŠΈμ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ λΉ„μ„ ν˜•μ  관계λ₯Ό μ •λ°€ν•˜κ²Œ λΆ„μ„ν•˜μ—¬ μ •ν™•ν•˜κ²Œ λ³€ν™˜ν•  수 μžˆλŠ” ν•©μ„±κ³± ν•„ν„°λ₯Ό ν•™μŠ΅ν•©λ‹ˆλ‹€.
특히 μ΄λŸ¬ν•œ λ”₯λŸ¬λ‹ 기반 Image Classification에 큰 μ„±λŠ₯을 보인 ResNetμ—μ„œ μ˜κ°μ„ μ–»μ–΄ Residual Learning을 μ΄μš©ν•˜μ—¬ 보닀 κΉŠμ€ λ„€νŠΈμ›Œν¬λ₯Ό 효율적으둜 ν•™μŠ΅ μ‹œν‚¬ 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

ResNet μ°Έκ³ ν•˜κΈ°


EDSR(Enhenced Deep Super Resolution)

일반적으둜 κΉŠμ€ λ”₯λŸ¬λ‹ λͺ¨λΈλ‘œ κΉŠμ€ λ„€νŠΈμ›Œν¬λ₯Ό μ„€κ³„ν•œλ‹€λ©΄ μ—°μ‚°λŸ‰μ΄ λ§Žμ•„μ§€κ³ , νŒŒλΌλ―Έν„° μˆ˜κ°€ μ¦κ°€ν•˜κ²Œ λ©λ‹ˆλ‹€. ν•˜μ§€λ§Œ κΉŠμ€ λ„€νŠΈμ›Œν¬λ₯Ό ν•™μŠ΅ μ‹œ μ—­μ „νŒŒ(back propagation)μ‹œ μž…λ ₯측으둜 갈 수둝 기울기(Gradient)κ°€ μž‘μ•„μ Έ κ²°κ΅­ κΈ°μšΈκΈ°κ°€ μ†Œμ‹€λ˜λŠ” Gradient Vanishing ν˜„μƒμ΄ λ°œμƒν•˜κ±°λ‚˜ λ°˜λŒ€λ‘œ κΈ°μšΈκΈ°κ°€ 맀우 μ»€μ Έμ„œ λ°œμ‚°ν•˜λŠ” Gradient Exploding λ¬Έμ œκ°€ λ°œμƒν•˜μ—¬ λ„€νŠΈμ›Œν¬μ˜ ν•™μŠ΅μ΄ μ œλŒ€λ‘œ λ˜μ§€ μ•Šμ„ 수 μžˆλŠ” λ¬Έμ œκ°€ μžˆμŠ΅λ‹ˆλ‹€.
μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ EDSR은 크게 두가지 방법을 μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€. μ²«λ²ˆμ§ΈλŠ” μž”μ—¬ν•™μŠ΅(Residual Learing)이고, λ‘λ²ˆμ§ΈλŠ” SPCNN(Sub Pixel Convolutional Neural Network)μž…λ‹ˆλ‹€.


Residual Learning

μž”μ—¬ ν•™μŠ΅μ΄λž€ μž…λ ₯ LR μ˜μƒμ„ μ΅œμ’… 좜λ ₯ HR μ˜μƒμ— 더해주고 두 μ˜μƒμ˜ 차이 값을 ν•™μŠ΅ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€. 일반적으둜 μž…λ ₯ LR μ˜μƒκ³Ό 좜λ ₯ HR μ˜μƒμ€ λΉ„μŠ·ν•˜κΈ° λ•Œλ¬Έμ— κ·Έ 차이 값은 맀우 μž‘κ±°λ‚˜ 0μ΄λ―€λ‘œ 기울기 μ†Œμ‹€/폭주 문제λ₯Ό ν•΄κ²°ν•  수 μžˆμ—ˆλ‹€.

EDSR은 32개 μ΄μƒμ˜ 측을 μ‚¬μš©ν•˜μ˜€κ³  채널 μˆ˜λ„ 기쑴의 λ‹€λ₯Έ λ„€νŠΈμ›Œν¬ λŒ€λΉ„ 4λ°° 이상 늘렀 νŒŒλΌλ―Έν„° μˆ˜λ„ 그에 λΉ„λ‘€ν•˜μ—¬ 맀우 많이 μ¦κ°€ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ΄λŠ” κΉŠμ–΄μ§„ λ„€νŠΈμ›Œν¬λ₯Ό 보닀 μ•ˆμ •μ μœΌλ‘œ ν•™μŠ΅ν•˜κΈ° μœ„ν•΄ λ„€νŠΈμ›Œν¬λ₯Ό μž”μ—¬ 블둝(Residual Block) λ³„λ‘œ λ‚˜λˆ„κ³  각각을 μŠ€ν‚΅ 컀λ„₯μ…˜(Skip Connection)을 μ‚¬μš©ν•΄ μ—°κ²°ν•˜λ©° ν•„ν„° νŒŒλΌλ―Έν„°λ“€μ΄ 더 μ‰½κ²Œ μ΅œμ ν™”λ˜λ„λ‘ λ„€νŠΈμ›Œν¬λ₯Ό μ„€κ³„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
λ˜ν•œ EDSRμ—μ„œλŠ” 은 각각의 μž”μ—¬ 블둝 μ•ˆμ—μ„œ feature map듀이 λ”ν•΄μ§€λ©΄μ„œ feature mapλ“€μ˜ 뢄산이 μ»€μ§€λŠ” κ²½μš°κ°€ 생겨 ν•™μŠ΅μ΄ 잘 μ•ˆλ˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄ μΌμ •ν•œ μƒμˆ˜ 값을 CNN μΈ΅ 이후에 κ³±ν•΄μ£ΌλŠ” Multi 측을 μΆ”κ°€ν•˜μ˜€μŠ΅λ‹ˆλ‹€.


SPCNN(Sub Pixel Convolutional Neural Network)

EDSRμ—μ„œλŠ” SPCNN(Sub Pixel Convolutional NeuralNetwork)을 μ‚¬μš©ν•΄ ν•™μŠ΅κ³Όμ •μ—μ„œ μž…λ ₯ LR μ˜μƒμ˜ 해상도λ₯Ό ν‚€μ› μŠ΅λ‹ˆλ‹€. SPCNN을 μ‚¬μš©ν•œλ‹€λ©΄ CNN측을 거친 λ’€ λ§ˆμ§€λ§‰ μΈ΅μ—μ„œ feature map의 개수λ₯Ό μ—…μŠ€μΌ€μΌλ§ 배수의 제곱 개만큼 λŠ˜λ €μ€€ λ’€ 이λ₯Ό ν”½μ…€ μ…”ν”Œ(Pixel Shuffle) 연산을 ν†΅ν•˜μ—¬ 적절히 λ°°μΉ˜ν•˜μ—¬ μ›ν•˜λŠ” ν•΄μƒλ„μ˜ 좜λ ₯ HR μ˜μƒμ„ 볡원해낼 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” κΈ°μ‘΄ 바이큐빅 보간법을 μ‚¬μš©ν•΄ μž…λ ₯ LR μ˜μƒμ˜ 해상도λ₯Ό ν‚€μš°κ³  λ„€νŠΈμ›Œν¬μ— μž…λ ₯ν•œ κΈ°μ‘΄ VDSR(처음으둜 μž”μ—¬ν•™μŠ΅μ„ μ‚¬μš©ν•¨) λŒ€λΉ„ 효율적인 연산이 κ°€λŠ₯ν•˜κ³  λ„€νŠΈμ›Œν¬ 정확도 λ˜ν•œ λ†’μ•„μ‘ŒμŠ΅λ‹ˆλ‹€.


EDSR code

EDSR의 μ½”λ“œλŠ” λ‹€μŒ μ‚¬μ΄νŠΈμ—μ„œ 확인 ν•  수 있으며, Super Resolution taskμ—μ„œ μ‚¬μš©λ˜λŠ” 데이터 셋인 DIV2K 데이터셋을 ν•™μŠ΅μ‹œν‚€κ³  ν…ŒμŠ€νŠΈν•˜κΈ° μœ„ν•œ μ½”λ“œμ΄λ‹€.
EDSR μ½”λ“œ 보러 κ°€κΈ°

profile
컴퓨터 비전을 κ³΅λΆ€ν•˜λŠ” ν•™μƒμž…λ‹ˆλ‹€

0개의 λŒ“κΈ€