Semantic Segmentation - GlobalMediaBridge/cosmetic-server GitHub Wiki

์ปดํ“จํ„ฐ ๋น„์ „ ๋ถ„์•ผ์—์„œ ์ด๋ฏธ์ง€์˜ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์€ ๊ณ„์† ๋˜์–ด์™”๋‹ค. ๋จธ์‹ ๋Ÿฌ๋‹์˜ Convolution Neural Network๊ฐ€ ๋‚˜์˜จ ๋’ค๋กœ ํญ๋ฐœ์ ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋ฏธ์ง€์˜ ์˜๋ฏธ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๊ฒƒ์€ ์–ป์–ด๋‚ด๋Š” ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜๋กœ ๋‚˜๋‰˜๊ฒŒ ๋œ๋‹ค.

N๊ฐœ์˜ ์ข…๋ฅ˜๋ฅผ ๋ถ„๋ฅ˜ํ•  ๋•Œ

์ถœ์ฒ˜

  1. ํ•œ ๊ฐ€์ง€ ์ข…๋ฅ˜๋ฅผ ๋ถ„๋ฅ˜
  2. ํ•œ ๊ฐ€์ง€ ์ข…๋ฅ˜๋ฅผ ์‚ฌ๊ฐ๋ฐ•์Šค๋กœ ์œ„์น˜์™€ ํ•จ๊ป˜ ๋ถ„๋ฅ˜
  3. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๋ฅผ ์‚ฌ๊ฐ๋ฐ•์Šค๋กœ ์œ„์น˜์™€ ํ•จ๊ป˜ ๋ถ„๋ฅ˜
  4. ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜๋ฅผ ํ”ฝ์…€๋‹จ์œ„๋กœ ๋ถ„๋ฅ˜

์ด ๋•Œ ๊ฐ๊ฐ์˜ ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  1. N์ฐจ์›์˜ ๋ฒกํ„ฐ์—์„œ ๊ฒฐ์ •๋œ ์ข…๋ฅ˜์˜ ์ฐจ์›์€ 1 ๋‚˜๋จธ์ง€๋Š” 0
  2. 1๋ฒˆ์˜ ๊ฒฐ๊ณผ + ๊ฒฐ์ •๋œ ์ข…๋ฅ˜์˜ ์ขŒ์ƒ๋‹จ์ขŒํ‘œ, ๋„ˆ๋น„, ๋†’์ด
  3. x๊ฐœ์˜ ๋ฌผ์ฒด๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ x๊ฐœ์˜ 2๋ฒˆ์˜ ๊ฒฐ๊ณผ
  4. ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ ์ด๋ฏธ์ง€ ํฌ๊ธฐ์™€ ๊ฐ™์€ ํฌ๊ธฐ์˜ ํ–‰๋ ฌ n๊ฐœ ์ฐจ์› ๊ฐ ์ฐจ์›๋ณ„๋กœ ํ•ด๋‹น ์ข…๋ฅ˜๊ฐ€ ์œ„์น˜ํ•œ ํ”ฝ์…€์€ 1 ์•„๋‹ˆ๋ฉด 0

์šฐ๋ฆฌ๋Š” ๋‹จ์ˆœํžˆ ์‚ฌ๊ฐ๋ฐ•์Šค๋กœ ์œ„์น˜๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ์•„๋‹Œ ํ”ฝ์…€๋‹จ์œ„๋กœ ์œ„์น˜์ •๋ณด๋ฅผ ์–ป์–ด๋‚ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— semantic segmentation์„ ์ด์šฉํ•œ๋‹ค.

Semantic Segmantation ์ดํ•ด

Input: RGB color ์ด๋ฏธ์ง€ (height X width X 3) ๋˜๋Š” ํ‘๋ฐฑ (height X width X 1) ์ด๋ฏธ์ง€

Output: ๊ฐ ํ•„์…€๋ณ„ ์–ด๋Š class ์— ์†ํ•˜๋Š”์ง€ ๋‚˜ํƒ€๋‚ด๋Š” ๋ ˆ์ด๋ธ”์„ ๋‚˜ํƒ€๋‚ธ Segmentation Map

๋‹จ์ˆœํ™”๋œ ์ด๋ฏธ์ง€์ด๋ฉฐ ์‹ค์ œ๋กœ๋Š” ๊ฐ™์€ ํ•ด์ƒ๋„์˜ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ„

์ถœ์ฒ˜ ๊ฒฐ๊ณผ๋ฅผ ์‹ค์ œ๋กœ ์‚ดํŽด๋ณด๋ฉด ์ด๋Ÿฐ ๋ชจ์Šต์ด๋‹ค.

FCN (Fully Convolutional Network)

์ถœ์ฒ˜ [Fully Convolutional Network for Semantic Segmentaion]

(https://people.eecs.berkeley.edu/~jonlong/long_shelhamer_fcn.pdf) ์ด๋ฏธ์ง€๋ฅผ ๋ถ„์„ํ•˜๊ธฐ ์œ„ํ•ด์„œ convolution ๋„คํŠธ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์ผ๋ฐ˜์ ์ธ convolution ๋ชจ๋ธ์€ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ค„์ด๊ณ  ์ฐจ์›์„ ์ค„์ด๋Š” layer๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ํ”ฝ์…€ ์œ„์น˜๋ฅผ ๊ธฐ์–ตํ•ด์•ผํ•˜๋Š” sematic segmentation์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

stride๋ฅผ 1์„ ์ฃผ๊ณ  pooling์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์ž…๋ ฅ์˜ ์ฐจ์›์„ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํ˜„์‹ค์ ์œผ๋กœ ์—ฐ์‚ฐ๋Ÿ‰์„ ๊ฐ๋‹นํ•˜๊ธฐ ํž˜๋“ค๊ณ  ๋ถˆํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ฑฐํ•˜์ง€ ๋ชปํ•ด ์ •๋ณด์˜ ๋ฐ€๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์—†๋‹ค. ๊ทธ๋ž˜์„œ ์ผ๋ฐ˜์ ์œผ๋กœ convolution์„ ์ง„ํ–‰ํ•œ ๋’ค ์ค„์–ด๋“  ์ฐจ์›์„ ๋‹ค์‹œ ์›๋ž˜ ํฌ๊ธฐ๋กœ ๋˜๋Œ๋ฆฌ๋Š” upsampling๊ณผ์ •์ด ์ถ”๊ฐ€๋œ๋‹ค.

convolution๊ณผ pooling์„ ํ†ตํ•ด ์ฐจ์›์„ ์ค„์—ฌ๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ downsampling ๋˜๋Š” ์ธ์ฝ”๋”๋ผํ•˜๊ณ  ์ค„์–ด๋“  ์ฐจ์›์„ ๋‹ค์‹œ ์›๋ž˜ ์ฐจ์›์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒƒ์„ upsampling ๋˜๋Š” ๋””์ฝ”๋”๋ผ๊ณ  ํ•œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ผ๋ฐ˜์ ์ธ CNN ๋ชจ๋ธ์€ ๋งˆ์ง€๋ง‰์— 2์ฐจ์› ํ–‰๋ ฌ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํŽผ์ณ์„œ ๋ฒกํ„ฐํ˜•ํƒœ๋กœ ๋งŒ๋“ ๋’ค fully connected layer๋ฅผ ํ†ตํ•ด ๋ถ„๋ฅ˜์ž‘์—…์„ ์ง„ํ–‰ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋  ๊ฒฝ์šฐ ํ”ฝ์…€์˜ ์œ„์น˜์ •๋ณด๊ฐ€ ์ „๋ถ€ ์‚ฌ๋ผ์ง€๊ฒŒ ๋˜๋ฏ€๋กœ CNN ๋งŒ์„ ์ด์šฉํ•ด์„œ ๋ถ„๋ฅ˜์ž‘์—…์„ ํ•˜๋Š” ๋ชจ๋ธ์ด FCN (Fully Convolutional Network)์ด๋‹ค. flatํ•˜๊ฒŒ ํŽผ์น˜๋Š” ๋Œ€์‹  1x1 Convolution layer๋ฅผ ์ด์šฉํ•œ๋‹ค.

Fully Connected Layer -> Fully Convolutional Network

์˜ˆ๋ฅผ๋“ค์–ด 256x256x3 ํฌ๊ธฐ์˜ ์ด๋ฏธ์ง€๋ฅผ convolution์„ ํ†ตํ•ด 10x10x100 ํฌ๊ธฐ์˜ feature ๋งต์„ ๋งŒ๋“ค๊ณ  flatํ•˜๊ฒŒ ํŽผ์ณ์„œ 10000 -> 4096 -> 22 ๋กœ ๊ฐ€๋Š” dense layer๋ฅผ ๊ฑฐ์นœ๋‹ค๊ณ  ํ•ด๋ณด์ž. ์ด๋ฅผ ํ•˜๊ธฐ ์œ„ํ•ด์„  10x10x100 ํฌ๊ธฐ๋ฅผ 10000๊ฐœ์˜ ๋‰ด๋Ÿฐ์œผ๋กœ ํŽผ์น˜๊ณ  10000x4096์˜ ํ–‰๋ ฌ์„ ๊ณฑํ•ด์„œ layer๋ฅผ ์ง„ํ–‰ํ•ด๊ฐ€๋ฉด 4096๊ฐœ๋กœ ์ค„์—ฌ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ๋‹ค์Œ 4096x22 ํ–‰๋ ฌ์„ ๊ณฑํ•˜๋Š” ์‹์œผ๋กœ ์ผ๋ฐ˜์ ์ธ fully connected layer๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ convolution์„ ์ด์šฉํ•ด์„œ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

10x10x100 ํฌ๊ธฐ์˜ feature๋งต์— 10x10x100 ํฌ๊ธฐ์˜ ์ปค๋„์„ ์ด์šฉํ•ด convolution์„ ์ง„ํ–‰ํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ 1x1x1 ํฌ๊ธฐ์˜ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค. ๋งŒ์•ฝ ์ด๋Ÿฐ ์ปค๋„์„ 4096๊ฐœ์˜ channel๋กœ ์ง„ํ–‰ํ•œ๋‹ค๋ฉด 1x1x4096 ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ด๊ฒƒ์€ flatํ•˜๊ฒŒ ํŽผ์ณ์„œ fully connected layer๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒƒ๊ณผ ๋™์ผํ•œ ํšจ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. ์ด ํ›„์— 1x1 convolution์„ 22channel๋กœ ์ง„ํ–‰ํ•˜๋ฉด 1x1x22 ํฌ๊ธฐ์˜ ๊ฐ’์ด ๋‚˜์˜ค๊ฒŒ ๋˜๋ฉด์„œ ๊ธฐ์กด์˜ ๊ฒฐ๊ณผ๋ฅผ 90๋„ ํšŒ์ „์‹œํ‚จ ๊ฒƒ๊ณผ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค€๋‹ค.

fully connected layer : [0,0,1, ... , 0] 22์ฐจ์› one-hot vector
fully convolutaion layer : [0],[0],[1], ... , [0](/GlobalMediaBridge/cosmetic-server/wiki/0],[0],[1],-...-,-[0) 1x1x22 3์ฐจ์› matrix

์ด๋ ‡๊ฒŒ ํ•œ๋‹ค๋ฉด ์ธํ’‹ ์ด๋ฏธ์ง€์˜ ์‚ฌ์ด์ฆˆ๊ฐ€ ์ปค์กŒ์„ ๋•Œ input ์‚ฌ์ด์ฆˆ์— ๋น„๋ก€ํ•˜๊ฒŒ output ์‚ฌ์ด์ฆˆ๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” convolution์˜ ํŠน์ง•๊ณผ ํ•จ๊ป˜ ๋งˆ์ง€๋ง‰ ๊ฒฐ๊ณผ๊ฐ€ NxMx22 ์‚ฌ์ด์ฆˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ธํ’‹์ด๋ฏธ์ง€๋ณด๋‹ค๋Š” ์‚ฌ์ด์ฆˆ๊ฐ€ ์ž‘์ง€๋งŒ ์œ„์น˜์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๊ฒƒ์€ ์ธํ’‹์ด๋ฏธ์ง€์™€ ๋™์ผํ•œ ์‚ฌ์ด์ฆˆ์˜ ์•„์›ƒํ’‹ matrix์ด๊ธฐ ๋•Œ๋ฌธ์— upsampling๊ณผ์ •์ด ํ•„์š”ํ•˜๋‹ค. ์ด๋Š” convolution์„ ์—ญ์œผ๋กœ ์ง„ํ–‰ํ•œ deconvolution์„ ์ด์šฉํ•ด์„œ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

deconvolution์˜ ๋ชจ์Šต

์•„๋ž˜์˜ ํŒŒ๋ž€ ์ด๋ฏธ์ง€์—์„œ ์œ„์˜ ์ดˆ๋ก ์ด๋ฏธ์ง€๋กœ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ

์ด๋Ÿฐ deconvolution์„ ๋งˆ์ง€๋ง‰์— ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ธํ’‹์ด๋ฏธ์ง€์˜ 1/8 ์‚ฌ์ด์ฆˆ๊ฐ€ ๋˜์—ˆ์„ ๋•Œ ์ง„ํ–‰์‹œ์ผœ์„œ ์ตœ์ข… ๊ฒฐ๊ณผ์™€ ํ•ฉ์ณ์ฃผ๋Š” ๊ฒƒ์ด FCN-8s ์ด๋‹ค. (1/16 ๋•Œ ์ง„ํ–‰ํ•˜๋ฉด FCN-16s)

Atrous Convolution

์ถœ์ฒ˜ Learning Deconvolution Network for Semantic Segmentation ์ถœ์ฒ˜

convolution์„ ์‚ฌ์šฉํ•˜๊ณ  pooling์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฒฐ๊ตญ resolution์€ ์ค„์–ด๋“ค๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ณด์˜ ์†์‹ค์„ ๋ง‰์œผ๋ฉด์„œ ์ •๋ณด์˜ ๊นŠ์ด๋ฅผ ๋”ํ•˜๊ธฐ ์œ„ํ•ด Atrous convolution์„ ์‚ฌ์šฉํ•œ๋‹ค.

์ผ๋ฐ˜์ ์ธ Convolution ์˜ ๋ชจ์Šต

input : 5x5 matrix
kernal : 3x3
stride : 1
padding : 1
output : 5x5

Atrous Convolution ์˜ ๋ชจ์Šต

input : 5x5 matrix
kernal : 3x3
stride : 1
padding : 1
rate : 2
output : 5x5

์œ„์™€ ๋™์ผํ•˜๋‚˜ kernal์„ ๋งŒ๋“ค๋•Œ ์ด์ „ ์ปค๋„ ๋ชจ์Šต์ด ์•„๋ž˜์™€ ๊ฐ™๋‹ค๋ฉด

x1, x2, x3
x4, x5, x6
x7, x8, x9

atrous convolution์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด dilation rate ๊ฐ’์„ ์ด์šฉํ•œ๋‹ค. rate์— ๋”ฐ๋ผ ์ปค๋„์„ ์‚ผ๊ฐ๋Œ€ ํŽผ์น˜๋“ฏ์ด ๋” ํŽผ์ณ์ฃผ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

x1, 0, x2, 0, x3
0,  0,  0, 0,  0
x4, 0, x5, 0, x6
0,  0,  0, 0,  0
x7, 0, x8, 0, x9

๊ทธ๋Ÿฌ๋ฉด 3x3 ํฌ๊ธฐ์˜ kernal๋กœ 5x5 ํฌ๊ธฐ์˜ kernal๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Conditional Random Field

๋”ฅ๋Ÿฌ๋‹๊ณผ๋Š” ๋ฌด๊ด€ํ•˜์ง€๋งŒ ๋ฌผ์ฒด์˜ ์œค๊ณฝ์„ ์„ ์ž˜ ์•Œ๊ธฐ ์œ„ํ•ด ๋”ฅ๋Ÿฌ๋‹์œผ๋กœ semantic segmentation์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ด์ „์— ์‚ฌ์šฉํ•˜๋˜ ์ปดํ“จํ„ฐ ๋น„์ „ ๋ฐฉ์‹์„ ์ถ”๊ฐ€๋กœ ํ™œ์šฉํ•œ ๊ฒƒ์ด๋‹ค.

๊ฐ ํ”ฝ์…€๋‹จ์œ„๋กœ label์„ ๋ถ„๋ฅ˜ํ•  ๋•Œ ๋…น์ƒ‰์€ ๋‚˜๋ฌด์ผ ํ™•๋ฅ ์ด ๋†’๊ณ , ํŒŒ๋ž€์ƒ‰์€ ํ•˜๋Š˜์ผ ํ™•๋ฅ ์ด ๋†’์€ ํ™•๋ฅ  ์ •๋ณด๋ฅผ unary term์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ธ์ ‘ํ•œ ํ”ฝ์…€์€ ๊ฐ™์€ class์ผ ํ™•๋ฅ ์ด ๋†’์„ ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ํ™•๋ฅ  ์ •๋ณด pairwise term์ด ์žˆ๋‹ค. ์ด ๋‘ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ๊ณ  CRF๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌผ์ฒด์˜ ์œค๊ณฝ์„ ์„ ๋” ์ž˜ ์žก์•„๋‚ผ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

UnPooling

์ถœ์ฒ˜ [2015 ICCV] [DeconvNet] Learning Deconvolution Network for Semantic Segmentation

๊ธฐ์กด semantic segmentation์—์„œ๋Š” ์–ด๋Š ์ •๋„ ํฌ๊ธฐ์—์„œ ๋ฌผ์ฒด๋ฅผ ํŒŒ์•…ํ•˜๋ ค๋Š” ์ง€์— ๋Œ€ํ•œ receptive field ๊ฐ’์„ ๋ฏธ๋ฆฌ ์ •ํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ํฐ ๋ฌผ์ฒด๋‚˜ ์ž‘์€ ๋ฌผ์ฒด์ค‘ ๋†“์น˜๋Š” ๊ฒƒ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ž˜์„œ 1x1 ํฌ๊ธฐ์˜ convolution ํ”ผ์ฒ˜๋งต์„ ๋งŒ๋“ค์–ด์„œ ๋‹ค์‹œ upsampling์„ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ๋•Œ ํšจ๊ณผ์ ์œผ๋กœ upsampling์„ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ unpooling์ด๋ผ๋Š” ๊ธฐ์ˆ ์„ ์ ์šฉํ•˜๋Š”๋ฐ deconvolution๊ณผ ๋‹ค๋ฅด๊ฒŒ max ํ’€๋ง์€ ์–ด๋–ค ๊ฐ’์ด max๋กœ ์„ ํƒ๋˜์–ด์„œ ์ค„์–ด๋“  ๊ฒƒ์ธ์ง€ ์•Œ ์ˆ˜ ์—†์œผ๋ฉด ๋„์ €ํžˆ ์ง„ํ–‰ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. ๊ทธ๋ž˜์„œ downsampling ๊ณผ์ •์—์„œ ํ’€๋งํ•˜๋Š” ๊ณณ์—์„œ ์–ด๋–ค ๊ฐ’์ด max๋กœ ์„ ํƒ๋˜์—ˆ๋Š” ์ง€๋ฅผ switch variables๋ผ๋Š” ๊ฐ’์œผ๋กœ ๊ธฐ์–ตํ•ด๋‘์—ˆ๋‹ค๊ฐ€ unpooling์„ ์ง„ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ downsampling๊ณผ upsampling์ด ๋ฐ˜๋“œ์‹œ ๋Œ€์นญ์˜ ๋ชจ์Šต์„ ์ด๋ฃจ๊ฒŒ ๋œ๋‹ค.

pooling์€ ์˜๋ฏธ์žˆ๋Š” ์ •๋ณด๋ฅผ ์„ ๋ณ„ํ•˜๋Š” ๊ณผ์ •์ด๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋–ค๊ฐ’์ด ์˜๋ฏธ์žˆ๋Š” ์ง€ ๊ธฐ์–ตํ•ด์„œ unpooling์„ ํ•˜๊ฒŒ ๋˜๋ฉด ๋” ์ข‹์€ ์„ฑ๋Šฅ์„ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

Atrous Spatial Pyramid Pooling (ASPP)

์ถœ์ฒ˜ DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

๊ตฌ๊ธ€์˜ inception ๋ชจ๋ธ์€ ์ปค๋„ ์‚ฌ์ด์ฆˆ๋ฅผ ๋‹ฌ๋ฆฌํ•ด์„œ ๋‹ค์ˆ˜์˜ cnn์„ ์ง„ํ–‰ํ•œ๋’ค ํ•ฉ์น˜๋Š” ์ปจ์…‰์„ ๊ฐ–๊ณ  ์žˆ๋‹ค. ์ด๋ฅผ atrous convolution์œผ๋กœ ์ ์šฉํ•œ ๊ฒƒ์ด Atrous Spatioal Pyramid Pooling์ด๋‹ค.

์ปค๋„์‚ฌ์ด์ฆˆ๊ฐ€ 3x3์ด๋ฉด ์—ฐ์‚ฐํ•ด์•ผํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆ˜๋Š” 9๊ฐœ์ด๋‹ค. 5x5๋ผ๋ฉด 25์ด๊ณ  7x7์ด๋ผ๋ฉด 49๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ปค๋„์‚ฌ์ด์ฆˆ๋ฅผ ๋‹ฌ๋ฆฌํ•ด์„œ receptive field ๋ฅผ ์ •ํ•˜๊ณ  ํฐ ๋ฌผ์ฒด์ธ ๊ฒฝ์šฐ์™€ ์ž‘์€ ๋ฌผ์ฒด์ธ ๊ฒฝ์šฐ๋ฅผ ๋‹ฌ๋ฆฌํ•ด์„œ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปค๋„์‚ฌ์ด์ฆˆ์— ๋”ฐ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๊ฐ€ ๊ธ‰์ฆํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์‹ค์ ์œผ๋กœ ์—ฐ์‚ฐ์ด ์–ด๋ ต๋‹ค.

ํฐ resolution์˜ ๊ฐ•์•„์ง€ ์‚ฌ์ง„์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜์ž. ์ด๋ฅผ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ํ•ด์„  ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ปค๋„๋กœ cnn์„ ์ง„ํ–‰ํ•ด์•ผํ•  ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ์‚ฌ์ง„์˜ ํฌ๊ธฐ๋ฅผ ๋‹จ์ˆœํžˆ ์ค„์ธ๋‹ค๊ณ  ํ•ด๋„ ์šฐ๋ฆฌ๋Š” ํ•ด๋‹น ์‚ฌ์ง„์ด ๊ฐ•์•„์ง€ ์‚ฌ์ง„์ž„์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ปค๋„๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ•์•„์ง€ ์ž์ฒด๊ฐ€ ์ž‘์•„์ง„ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ด๋„๋ก ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ปค๋„์˜ ํฌ๊ธฐ๋ฅผ ํ‚ค์šธ ๋•Œ Atrous Convolution์„ ์ ์šฉํ•˜๋ฉด ๊ฐ™์€ ๊ฐœ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ํฐ ์‚ฌ์ด์ฆˆ์˜ ์ปค๋„์„ ์ ์šฉํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๋ฅผ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ atrous convolution์„ ์‚ฌ์šฉํ•ด์„œ ์ง„ํ–‰ํ•ด์„œ ํ•ฉ์ณ์ฃผ๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด์„œ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ๋†’์˜€๋‹ค.

Full-Resolution Residual Unit (FRRU)

์ถœ์ฒ˜ Full-Resolution Residual Networks for Semantic Segmentation in Street Scenes

๊ฒฐ๊ตญ downsampling์ด ์ง„ํ–‰๋˜๋ฉด ๊ธฐ์กด resolution์—์„œ ๋งŽ์€ ์ •๋ณด๋ฅผ ์žƒ๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ์กด resolution์„ ๊ทธ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” layer์™€ ์ผ๋ฐ˜์ ์œผ๋กœ downsampling๊ณผ upsampling์ด ์ง„ํ–‰๋˜๋Š” layer๋ฅผ ํ•จ๊ป˜ ํ•™์Šต์‹œํ‚ค๋Š” ๊ฒƒ์ด FRRU์ด๋‹ค.

๊ธฐ์กด resolution์„ ์œ ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์„ธํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์ž˜ ์žก์•„๋‚ด ์ฃผ์—ˆ๋‹ค.