๊ฐœ์š”

์•ž์„œ ๋ฐฐ์šด Dilated Convolution(atrous convolution) ์„ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ•˜์—ฌ segmentation ์„ ํ•ด๊ฒฐํ•˜์ž๋Š” ๋…ผ๋ฌธ์ด๋‹ค.

๋ฐœ์ „ ๋ฐฉํ–ฅ

  • DeepLab V1 : Atrous convolution์„ ์ฒ˜์Œ ์ ์šฉ
  • DeepLab V2 : multi-scale context๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•œ Atrous Spatial Pyramid Pooling (ASPP) ๊ธฐ๋ฒ•์„ ์ œ์•ˆ
  • DeepLab V3 : ๊ธฐ์กด ResNet ๊ตฌ์กฐ์— Atrous Convolution์„ ํ™œ์šฉํ•ด ์ข€ ๋” Denseํ•œ feature map์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆ
  • DeepLab V3+ : Depthwise Separable Convolution๊ณผ Atrous Convolution์„ ๊ฒฐํ•ฉํ•œ Atrous Separable Convolution์˜ ํ™œ์šฉ์„ ์ œ์•ˆ

DeepLab V3+ ๋…ผ๋ฌธ์€ 2018๋…„ 8์›” ๊ฒฝ, ๊ตฌ๊ธ€์—์„œ ์ž‘์„ฑ๋œ ๋…ผ๋ฌธ์ด๋‹ค.

Semantic Segmentation์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋ก ์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์กด์žฌํ•œ๋‹ค. ๊ทธ ์ค‘ DeepLab ์‹œ๋ฆฌ์ฆˆ๋Š” ์—ฌ๋Ÿฌ segmentation model ์ค‘ ์„ฑ๋Šฅ์ด ์ƒ์œ„๊ถŒ์— ๋งŽ์ด ํฌ์ง„๋˜์–ด ์žˆ๋Š” model๋“ค์ด๋‹ค. ๊ทธ ์ค‘์—์„œ๋„ ๊ฐ€์žฅ ์„ฑ๋Šฅ์ด ๋†’์œผ๋ฉฐ DeepLab ์‹œ๋ฆฌ์ฆˆ ์ค‘ ๊ฐ€์žฅ ์ตœ๊ทผ์— ๋‚˜์˜จ DeepLab V3+์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž. ํ•ด๋‹น ๋…ผ๋ฌธ์€ ์•ž์„œ ์ž‘์„ฑ๋œ V1, V2, V3์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ณ„์Šนํ•˜๊ณ  ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ V3+๋ฅผ ๋ฆฌ๋ทฐํ•˜๋ฉฐ ์ด ๋‚ด์šฉ๋“ค์„ ๋ชจ๋‘ ์•Œ์•„๋ณด์ž ํ•œ๋‹ค.

์‚ฌ์šฉ ๊ฐœ๋…

Atrous Convolution

Atrous์—์„œ trous๋Š” ๊ตฌ๋ฉ(hole)์„ ์˜๋ฏธํ•จ์œผ๋กœ์จ, Atrous Convolution์€ ๊ธฐ์กด Convolution๊ณผ ๋‹ค๋ฅด๊ฒŒ ํ•„ํ„ฐ ๋‚ด๋ถ€์— ๋นˆ ๊ณต๊ฐ„์„ ๋‘” ์ฑ„ ์ž‘๋™ํ•˜๊ฒŒ ๋œ๋‹ค.

์œ„ ๊ทธ๋ฆผ์—์„œ ์–ผ๋งˆ๋‚˜ ๋นˆ ๊ณต๊ฐ„์„ ๋‘˜์ง€ ๊ฒฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ’ r(rate์˜ ์•ฝ์ž)์ด 1์ธ ๊ฒฝ์šฐ, ๊ธฐ์กด Convolution๊ณผ ๋™์ผํ•˜๊ณ  r์ด ์ปค์งˆ์ˆ˜๋ก ๋นˆ ๊ณต๊ฐ„์ด ๋„“์–ด์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

์ด๋Ÿฌํ•œ Atrous Convolution์„ ํ™œ์šฉํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ด์ ์€ ๊ธฐ์กด convolution๊ณผ ๋™์ผํ•œ ์–‘์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ๊ณ„์‚ฐ๋Ÿ‰์„ ์œ ์ง€ํ•˜๋ฉด์„œ๋„, field of view(ํ•œ ํ”ฝ์…€์ด ๋ณผ ์ˆ˜ ์žˆ๋Š” ์˜์—ญ)๋ฅผ ํฌ๊ฒŒ ๊ฐ€์ ธ๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋ณดํ†ต Semantic Segmentation์—์„œ ๋†’์€ ์„ฑ๋Šฅ์„ ๋‚ด๊ธฐ ์œ„ํ•ด์„œ๋Š” CNN์˜ ๋งˆ์ง€๋ง‰์— ์กด์žฌํ•˜๋Š” ํ•œ ํ”ฝ์…€์ด ์ž…๋ ฅ๊ฐ’์—์„œ ์–ด๋Š ํฌ๊ธฐ์˜ ์˜์—ญ์—์„œ ์ปค๋ฒ„ํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” receptive field ํฌ๊ธฐ๊ฐ€ ์ค‘์š”ํ•˜๊ฒŒ ์ž‘์šฉํ•œ๋‹ค.

์ฆ‰, ์—ฌ๋Ÿฌ convolution๊ณผ pooling ๊ณผ์ •์—์„œ ๋””ํ…Œ์ผํ•œ ์ •๋ณด๊ฐ€ ์ค„์–ด๋“ค๊ณ  ํŠน์„ฑ์ด ์ ์  ์ถ”์ƒํ™”๋˜๋Š” ๊ฒƒ์„ ์–ด๋Š์ •๋„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— DeepLab series์—์„œ๋Š” ์ด๋ฅผ ์ ๊ทน์ ์œผ๋กœ ํ™œ์šฉํ•˜๋ ค ๋…ธ๋ ฅํ•œ๋‹ค.

Atrous Spatial Pyramid Pooling(ASPP)

Semantic segmentaion์˜ ์„ฑ๋Šฅ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ, spatial pyramid pooling ๊ธฐ๋ฒ•์ด ์ž์ฃผ ํ™œ์šฉ๋˜๊ณ  ์žˆ๋Š” ์ถ”์„ธ์ด๋‹ค.

DeepLab V2์—์„œ feature map์œผ๋กœ๋ถ€ํ„ฐ rate๊ฐ€ ๋‹ค๋ฅธ Atrous Convolution์„ ๋ณ‘๋ ฌ๋กœ ์ ์šฉํ•œ ๋’ค, ์ด๋ฅผ ๋‹ค์‹œ ํ•ฉ์ณ์ฃผ๋Š” ASPP๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•  ๊ฒƒ์„ ์ œ์•ˆํ–ˆ์—ˆ๋‹ค. ์ตœ๊ทผ ๋ฐœํ‘œ๋œ PSPNet์—์„œ๋„ Atrous Convolution์„ ํ™œ์šฉํ•˜์ง„ ์•Š์•˜์ง€๋งŒ ์ด์™€ ๋น„์Šทํ•œ Pyramid Pooling ๊ธฐ๋ฒ•์„ ํ™œ์šฉํ•˜์˜€๋‹ค.

์ด๋Ÿฌํ•œ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•๋“ค์€ multi-scale context๋ฅผ ๋ชจ๋ธ ๊ตฌ์กฐ๋กœ ๊ตฌํ˜„ํ•˜์—ฌ ๋ณด๋‹ค ์ •ํ™•ํ•œ Semantic Segmentation์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์šฐ๋ฉฐ, DeepLab V3๋ถ€ํ„ฐ๋Š” ASPP๋ฅผ ๊ธฐ๋ณธ ๋ชจ๋“ˆ๋กœ ๊ณ„์† ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

Depthwise separable convolution

์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Convolution ๋ชจ์Šต

์œ„ ๊ทธ๋ฆผ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” Convolution์„ ๋‚˜ํƒ€๋‚ธ ์‚ฌ์ง„์ด๋‹ค. **์ž…๋ ฅ ์ด๋ฏธ์ง€๊ฐ€ 883(HWC)**์ด๊ณ , Convolution **ํ•„ํ„ฐ ํฌ๊ธฐ๊ฐ€ 33(FF)**์ด๋ผ๊ณ  ํ•  ๋•Œ, ํ•„ํ„ฐ ํ•œ๊ฐœ๊ฐ€ ๊ฐ€์ง€๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š” 333(FFC)=27์ด ๋œ๋‹ค. ๋งŒ์•ฝ ํ•„ํ„ฐ๊ฐ€ 4๊ฐœ๋ผ๋ฉด, ํ•ด๋‹น Convolution์˜ ์ด ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜๋Š” 3*3*3*4(F*F*C*N)๋งŒํผ ์ง€๋‹ˆ๊ฒŒ ๋œ๋‹ค.

Depthwise Convolution ๋ชจ์Šต

Convolution ์—ฐ์‚ฐ์—์„œ Channel ์ถ•์„ ํ•„ํ„ฐ๊ฐ€ ํ•œ ๋ฒˆ์— ์—ฐ์‚ฐํ•˜๋Š” ๋Œ€์‹ ์— ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ž…๋ ฅ ์˜์ƒ์˜ Channel ์ถ•์„ ๋ชจ๋‘ ๋ถ„๋ฆฌ์‹œํ‚จ ๋’ค, Channel ์ถ• ๊ธธ์ด๋ฅผ ํ•ญ์ƒ 1๋กœ ๊ฐ€์ง€๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ Convolution ํ•„ํ„ฐ๋กœ ๋Œ€์ฒด์‹œํ‚จ ์—ฐ์‚ฐ์„ Depthwise Convolution์ด๋ผ๊ณ  ํ•œ๋‹ค.

Depthwise Separable Convolution ๋ชจ์Šต

์œ„์˜ Depthwise Convolution์œผ๋กœ ๋‚˜์˜จ ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด 11C ํฌ๊ธฐ์˜ Convolution ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•œ ๊ฒƒ์„ Depthwise Separable Convolution์ด๋ผ ํ•œ๋‹ค.

์ด์ฒ˜๋Ÿผ ๋ณต์žกํ•œ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ด์œ ๋Š” ๊ธฐ์กด Convolution๊ณผ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ด๋ฉด์„œ๋„ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜์™€ ์—ฐ์‚ฐ๋Ÿ‰์„ ํš๊ธฐ์ ์œผ๋กœ ์ค„์ผ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์ž…๋ ฅ๊ฐ’์ด 883์ด๊ณ  16๊ฐœ์˜ 3*3 Convolution ํ•„ํ„ฐ๋ฅผ ์ ์šฉํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋Š”

  • Convolution : 33316(HWCN) = 432
  • Depth Separable Convolution : 333(HWC1) + 316(113*N) = 27+48 = 75

์ž„์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Depthwise Separable Convolution์€ ๊ธฐ์กด Convolution ํ•„ํ„ฐ๊ฐ€ Sepatial Dimension๊ณผ Channel Dimension์„ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•˜๋˜ ๊ฒƒ์„ ๋”ฐ๋กœ ๋ถ„๋ฆฌ์‹œ์ผœ ๊ฐ๊ฐ ์ฒ˜๋ฆฌํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ•„ํ„ฐ๊ฐ€ Spatial Dimension ์ฒ˜๋ฆฌ์— ํ•„์š”ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•˜๋‚˜๋กœ ๊ณต์œ ํ•จ์œผ๋กœ์จ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆ˜๋ฅผ ๋” ์ค„์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด ๋ถ€๋ถ„์€ Dilated convolution์—์„œ ๋ฐฐ์šด ๋‚ด์šฉ๊ณผ ์ƒ๋“ฑํ•˜๋‹ค.

๋‘ ์ถ•์„ ๋ถ„๋ฆฌ์‹œ์ผœ ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋”๋ผ๋„ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ’์€ ๊ฒฐ๊ตญ ๋‘ ๊ฐ€์ง€ ์ถ• ๋ชจ๋‘๋ฅผ ์ฒ˜๋ฆฌํ•œ ๊ฒฐ๊ณผ๊ฐ’์„ ์–ป์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ธฐ์กด convolution filter๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋˜ ์—ญํ• ์„ ์ถฉ๋ถ„ํžˆ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค.

Encoder-Decoder

DeepLab V3+๋Š” ์œ„์—์„œ ์„ค๋ช…ํ•œ ๋ชจ๋“ˆ์„ Encoder-Decoder๋กœ ๊ตฌ์กฐํ™”์‹œ์ผฐ๋‹ค.

U-net๊ตฌ์กฐ

๋™์ž‘

๋ฏธ๋ฆฌ ๋ณด๊ธฐ

DeepLab V3 ๊ตฌ์กฐ

DeepLab V3๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ResNet์„ Backbone์œผ๋กœ ์‚ฌ์šฉํ•˜์˜€์œผ๋ฉฐ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Encoder : ResNet with Atrous Convolution
  • ASPP
  • Decoder : Bilinear Upsampling

DeepLab V3+ ๊ตฌ์กฐ

์—ฌ๊ธฐ์„œ DeepLab V3+๊ฐ€ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Encoder : ResNet with Atrous Convolution๋ฅผ Xception์œผ๋กœ ๋ณ€๊ฒฝ
  • ASP์„ ASSPP (Atrous Separable Spatial Pyramid Pooling)๋กœ ๋ณ€๊ฒฝ
  • Decoder : Bilinear Upsampling์„ Simplified U-Net style decoder์œผ๋กœ ๋ณ€๊ฒฝ

์„ธ๋ถ€ ์„ค๋ช…

DeepLab V3+ ์„ธ๋ถ€ ๊ตฌ์กฐ

Encoder with Atrous Convolution

DCNN์—์„œ Atrous Convolution์„ ํ†ตํ•ด ์ž„์˜์˜ resolution์œผ๋กœ feature map์„ ๋ฝ‘์•„๋‚ผ ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

์—ฌ๊ธฐ์„œ Output Stride์˜ ๊ฐœ๋…์ด ์“ฐ์ด๋Š”๋ฐ โ€œinput image์˜ resolution๊ณผ ์ตœ์ข… output์˜ ๋น„โ€๋กœ ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰, ์ตœ์ข… feature map์ด input image์— ๋น„ํ•ด 32๋ฐฐ ์ค„์–ด๋“ค์—ˆ๋‹ค๋ฉด output stride๋Š” 32๊ฐ€ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

Semantic Segmentation์—์„œ๋Š” ๋”์šฑ ๋””ํ…Œ์ผํ•œ ์ •๋ณด๋ฅผ ์–ป์–ด๋‚ด๊ธฐ ์œ„ํ•ด ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์˜ Layer์„ 1๊ฐœ ํ˜น์€ 2๊ฐœ๋ฅผ ์‚ญ์ œ ํ›„ Atrous Convolutionํ•ด์คŒ์œผ๋กœ์จ Output Stride๋ฅผ 16 ํ˜น์€ 8๋กœ ์ค„์ธ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์•„๋ž˜ ์‚ฌ์ง„๊ณผ ๊ฐ™์ด ๋‹ค์–‘ํ•œ ํฌ๊ธฐ์˜ ๋ฌผ์ฒด ์ •๋ณด๋ฅผ ์žก์•„๋‚ด๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ rate์˜ Atrous Convolution์„ ์‚ฌ์šฉํ•˜๋Š” ASPP(Atrous Spatial Pyramid Pooling)์„ ์‚ฌ์šฉํ•œ๋‹ค.

Decoder

์ด์ „์˜ DeepLab V3์—์„œ๋Š” Decoder ๋ถ€๋ถ„์„ ๋‹จ์ˆœํžˆ bilinear upsamplingํ•ด์ฃผ์—ˆ์œผ๋‚˜, V3+์—์„œ๋Š” Encoder์˜ ์ตœ์ข… Output์— 1*1 Convolution์„ ํ•˜์—ฌ Channel์„ ์ค„์ด๊ณ  bilinear upsampling ํ•ด์ค€ ํ›„ Concatํ•˜๋Š” ๊ณผ์ •์ด ์ถ”๊ฐ€๋˜์—ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ๊ฑฐ์น˜๋”๋ผ๋„ bilinear interpolation๋งŒ์œผ๋ก  ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ์ฒด์˜ ํ”ฝ์…€ ๋‹จ์œ„๊นŒ์ง€ ์œ„์น˜๋ฅผ ์ •๊ตํžˆ segmentationํ•˜๋Š”๊ฒŒ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ์ €์ž๋“ค์€ ๋’ท๋ถ€๋ถ„์— CRF(Conditional Random Field)๋ฅผ ์ด์šฉํ•˜์—ฌ post-processing(ํ›„์ฒ˜๋ฆฌ)์„ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ–ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ฐ‘์— ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

Backbone

DeepLab V3+์—์„œ๋Š” Xception์„ backbone์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€๋งŒ MSRA์˜ Aligned Xception๊ณผ ๋‹ค๋ฅธ 3๊ฐ€์ง€ ๋ณ€ํ™”๋ฅผ ์ฃผ์—ˆ๋‹ค.

์™ผ์ชฝ : ์›๋ž˜์˜ Xception ๋ชจ๋ธ, ์˜ค๋ฅธ์ชฝ : ๋…ผ๋ฌธ์—์„œ ์‚ฌ์šฉ๋œ ๋ณ€ํ˜• Xception ๋ชจ๋ธ

  • ๋น ๋ฅธ ์—ฐ์‚ฐ๊ณผ ๋ฉ”๋ชจ๋ฆฌ ํšจ์œจ์„ ์œ„ํ•ด Entry Flow Structure ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๋‹ค.
  • Atrous Separable Convolution์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋ชจ๋“  Pooling Opearation์„ Depthwise Separable Convolution์œผ๋กœ ๋Œ€์ฒดํ•˜์˜€๋‹ค.
  • ๊ฐ๊ฐ์˜ 3*3 Depthwise Convolution ์ดํ›„์— ์ถ”๊ฐ€์ ์œผ๋กœ Batch-norm๊ณผ ReLU ํ™œ์„ฑํ™” ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์—ˆ๋‹ค.

Fully Connected CRF

CRF ์‚ฌ์šฉ ํ›„ ์„ ๋ช…๋„์˜ ๊ฐœ์„ 

์ผ๋ฐ˜์ ์œผ๋กœ 1/8ํฌ๊ธฐ ํ•ด์ƒ๋„๋ฅผ ๊ฐ–๋Š” DCNN ๊ฒฐ๊ณผ๋ฅผ bilinear interpolation์„ ํ†ตํ•ด ์›์˜์ƒ ํฌ๊ธฐ๋กœ ํ™•๋Œ€ํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ํ•ด์ƒ๋„๊ฐ€ ๋–จ์–ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค. DeepLab ๊ตฌ์กฐ์—์„œ๋Š” ์ด ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด CRF(Conditional Random Field)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ›„์ฒ˜๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œ์ผฐ๋‹ค.

CRF ๋ฐ˜๋ณต ํšŸ์ˆ˜์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ ์–‘์ƒ

์™œ CRF(Conditional Random Field)๊ฐ€ ํ•„์š”ํ•œ๊ฐ€?

Classification๊ณผ ๊ฐ™์ด object-centricํ•œ ๊ฒฝ์šฐ ๊ฐ€๋Šฅํ•œ ๋†’์€ ์ˆ˜์ค€์˜ ๊ณต๊ฐ„์ ์ธ ๋ถˆ๋ณ€์„ฑ(spatial invariance)๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋‹จ๊ณ„์˜ conv+pooling์„ ํ†ตํ•ด ์˜์ƒ ์†์— ์กด์žฌํ•˜๋ฉฐ ๋ณ€ํ™”์— ์˜ํ–ฅ์„ ํฌ๊ฒŒ ๋ฐ›์ง€ ์•Š์€ ๊ฐ•์ธํ•œ ํŠน์ง•์„ ์ถ”์ถœํ•ด์•ผํ•˜๋ฉฐ, ์ด๋กœ์ธํ•ด detailํ•œ ์ •๋ณด๋ณด๋‹จ globalํ•œ ์ •๋ณด์— ์ง‘์ค‘ํ•˜๊ฒŒ ๋œ๋‹ค.

๋ฐ˜๋ฉด semantic segmenation์€ ํ”ฝ์…€ ๋‹จ์œ„์˜ ์กฐ๋ฐ€ํ•œ ์˜ˆ์ธก์ด ํ•„์š”ํ•ด classification ๋„คํŠธ์›Œํฌ ๊ธฐ๋ฐ˜์œผ๋กœ segmentation ๋ง์„ ๊ตฌ์ƒํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ณ„์† feature map์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์–ด๋“ค๊ฒŒ๋˜๋Š” ํŠน์„ฑ์ƒ detailํ•œ ์ •๋ณด๋“ค์„ ์žƒ๊ฒŒ ๋œ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ FCN์—์„  skip connection์„ ์‚ฌ์šฉํ•˜์˜€๊ณ , dilated conv๋‚˜ DeepLab์—์„œ๋Š” ๋งˆ์ง€๋ง‰์— ์˜ค๋Š” pooling layer 2๊ฐœ๋ฅผ ์—†์• ๊ณ  dilated/atrous conv๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ›„์— ์ž‘์„ฑํ•  Mask RCNN์—์„œ๋Š” Roi align์„ ์‚ฌ์šฉํ•ด์„œ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ ๋ถ„๋ช…ํžˆ ํ•œ๊ณ„๋Š” ์กด์žฌํ•˜๊ธฐ์— DeepLab์—์„œ๋Š” atrous conv์— ๊ทธ์น˜์ง€ ์•Š๊ณ  CRF๋ฅผ ํ›„์ฒ˜๋ฆฌ ๊ณผ์ •์œผ๋กœ ์‚ฌ์šฉํ•˜์—ฌ ํ”ฝ์…€ ๋‹จ์œ„ ์˜ˆ์ธก์˜ ์ •ํ™•๋„๋ฅผ ๋” ๋†’์ผ ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ฐœ๋…

์ด์ „ ๋…ธ๋“œ(pixel)๊ฐ„์˜ ๊ด€๊ณ„(์กฐ๊ฑด๋ถ€ ํ™•๋ฅ  ๊ฐ™์€)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ˜„์žฌ ๋…ธ๋“œ์˜ ๊ฐ’์„ ์ถ”๋ก ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ์ข์€ ๋ฒ”์œ„(short-range)์˜ CRF๋Š” segmentation์„ ์ˆ˜ํ–‰ํ•œ ๋’ค ์ƒ๊ธฐ๋Š” segmentation noise๋ฅผ ์—†์• ๋Š” ์šฉ๋„๋กœ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์•ž์„œ ์‚ดํŽด๋ณธ ๊ฒƒ์ฒ˜๋Ÿผ DCNN์—์„œ๋Š” ์—ฌ๋Ÿฌ ๋‹จ๊ณ„ conv+pooling์„ ๊ฑฐ์น˜๋ฉฐ feature map์˜ ํฌ๊ธฐ๊ฐ€ ์ž‘์•„์ง€๊ฒŒ ๋˜๊ณ  ์ด๋ฅผ upsampling์„ ํ†ตํ•ด ์› ์˜์ƒ ํฌ๊ธฐ๋กœ ํ™•๋Œ€ํ•˜๊ธฐ์— ์ด๋ฏธ ์ถฉ๋ถ„ํžˆ smoothen๋˜์–ด์žˆ๋Š” ์ƒํƒœ์ด๋ฉฐ, ์—ฌ๊ธฐ์— ๊ธฐ์กด์ฒ˜๋Ÿผ short-range CRF๋ฅผ ์ ์šฉํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋” ๋‚˜๋น ์ง€๊ฒŒ ๋œ๋‹ค.

Noise ์„ฑ๋ถ„๋„ ๊ฐ™์ด upsampling ๋˜๋ฏ€๋กœ ์„ธ๋ถ„ํ™”๋œ segmentation ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์–ด๋ ต๋‹ค. ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials (Philipp Karahenbuhl)๋ผ๋Š” ๋…ผ๋ฌธ์ด ๋ฐœํ‘œ๋˜์—ˆ์œผ๋ฉฐ, ํ•ด๋‹น ๋…ผ๋ฌธ์—์„  ๊ธฐ์กด์— ์‚ฌ์šฉ๋˜๋˜ short-range CRF๋Œ€์‹  ์ „์ฒด ํ”ฝ์…€์„ ๋ชจ๋‘ ์—ฐ๊ฒฐํ•œ (fully connected) CRF ๋ฐฉ๋ฒ•์„ ๊ฐœ๋ฐœํ•ด ๋†€๋ผ์šด ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์–ป์–ด๋‚ด์—ˆ๊ณ  ์ด ํ›„ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด fully connected CRF๋ฅผ ํ›„์ฒ˜๋ฆฌ์—์„œ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๊ธฐ์กด์— ์‚ฌ์šฉ๋˜๋˜ short-range CRF๋Š” ์•„๋ž˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ local connection ์ •๋ณด๋งŒ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด detail ์ •๋ณด๊ฐ€ ๋ˆ„๋ฝ๋˜๊ฒŒ ๋œ๋‹ค.

short range CRF ์ ์šฉ

๋ฐ˜๋ฉด fully connected CRF๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ detail ์ •๋ณด๋“ค์ด ์‚ด์•„์žˆ๋Š” ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ก  ๋ชจ๋“  ๋…ธ๋“œ(pixel)์„ ์—ฐ๊ฒฐํ•˜์—ฌ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ต‰์žฅํžˆ ์˜ค๋žœ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆฐ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

Fully connected CRF ์ ์šฉ

์œ„์ฒ˜๋Ÿผ MCMC(Markov Chain Monte Carlo) ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ข‹์€ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค์ง€๋งŒ ์—ฐ์‚ฐ๋Ÿ‰์ด ๋งŽ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์–ด ์ ์šฉ์ด ๋ถˆ๊ฐ€ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ Philipp Karahenbuhl์˜ ๋…ผ๋ฌธ์—์„œ ์ด๋ฅผ 0.2์ดˆ๋งŒ์— ํšจ๊ณผ์ ์œผ๋กœ ์—ฐ์‚ฐ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ–ˆ๋‹ค.

Philipp Karahenbuhl๋Š” ์ผ๋ช… mean field approximation ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•ด message passing์„ ์‚ฌ์šฉํ•œ iteration ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•˜์—ฌ ํšจ๊ณผ์ ์œผ๋กœ ๋น ๋ฅธ fully connected CRF๋ฅผ ์ˆ˜ํ–‰ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ–ˆ๋‹ค.

์—ฌ๊ธฐ์„œ mean field approximation์ด๋ž€ ๋ฌผ๋ฆฌํ•™์ด๋‚˜ ํ™•๋ฅ ์ด๋ก ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ, ๋ณต์žกํ•œ ๋ชจ๋ธ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋” ๊ฐ„๋‹จํ•œ ๋ชจ๋ธ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ์‹์„ ์˜๋ฏธํ•œ๋‹ค. ์ˆ˜๋งŽ์€ ๋ณ€์ˆ˜๋“ค๋กœ ์ด๋ฃจ์–ด์ง„ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š” ์ƒํ™ฉ์—์„œ ํŠน์ • ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋“ค์˜ ๊ด€๊ณ„์˜ ํ‰๊ท ์„ ์ทจํ•˜๊ฒŒ ๋˜๋ฉด, ํ‰๊ท ์œผ๋กœ๋ถ€ํ„ฐ ๋ณ€ํ™”(fluctuation)๋ฅผ ํ•ด์„ํ•˜๋Š”๋ฐ๋„ ์šฉ์ดํ•˜๊ณ , ํ‰๊ท ์œผ๋กœ ๋‹จ์ˆœํ™”/๊ทผ์‚ฌํ™”๋œ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ „์ฒด๋ฅผ ์กฐ๋งํ•˜๊ธฐ์— ์ข‹๋‹ค.

์ˆ˜์‹

Conditional Random Field

CRF์˜ ์ˆ˜์‹์„ ๋ณด๋ฉด unary term๊ณผ pairwise term์œผ๋กœ ๊ตฌ์„ฑ๋จ. ์•„๋ž˜์˜ ์‹์—์„œ x๋Š” ๊ฐ ํ”ฝ์…€์˜ ์œ„์น˜์— ํ•ด๋‹นํ•˜๋Š” ํ”ฝ์…€์˜ label์ด๋ฉฐ, i์™€ j๋Š” ํ”ฝ์…€์˜ ์œ„์น˜์ขŒํ‘œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค. Unary term์€ CNN ์—ฐ์‚ฐ์„ํ†ตํ•ด ์–ป์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ”ฝ์…€๊ฐ„์˜ detailํ•œ ์˜ˆ์ธก์—์„œ pairwise term์ด ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. Pairwise term์—์„œ๋Š” ๋งˆ์น˜ bi-lateral filter์—์„œ ๊ทธ๋Ÿฌ๋“ฏ์ด ํ”ฝ์…€๊ฐ’์˜ ์œ ์‚ฌ๋„์™€ ์œ„์น˜์ ์ธ ์œ ์‚ฌ๋„๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ คํ•œ๋‹ค.(ํ•„ํ„ฐ์— ๋Œ€ํ•ด์„œ๋Š” [Learn opencv by examples] 6. Gaussian ํ•„ํ„ฐ, Bilateral ํ•„ํ„ฐ, Median ํ•„ํ„ฐ๋ฅผ ์ฝ์–ด๋ณด์ž.)

Conditional Random Field

์œ„ CRF ์‹์„ ๋ณด๋ฉด, 2๊ฐœ์˜ ๊ฐ€์šฐ์‹œ์•ˆ ์ปค๋„๋กœ ๊ตฌ์„ฑ๋œ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ‘œ์ค€ํŽธ์ฐจ ๋ฅผ ํ†ตํ•ด scale์„ ์กฐ์ ˆ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๊ฐ€์šฐ์‹œ์•ˆ ์ปค๋„์€ ๋น„์Šทํ•œ ์ปฌ๋Ÿฌ๋ฅผ ๊ฐ–๋Š” ํ”ฝ์…€๋“ค์— ๋Œ€ํ•ด ๋น„์Šทํ•œ label์ด ๋ถ™์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฉฐ, ๋‘ ๋ฒˆ์งธ ๊ฐ€์šฐ์‹œ์•ˆ ์ปค๋„์€ ์›๋ž˜ ํ”ฝ์…€์˜ ๊ทผ์ ‘๋„์— ๋”ฐ๋ผ smooth ์ˆ˜์ค€์„ ๊ฒฐ์ •ํ•œ๋‹ค. ์œ„ ์‹์—์„œ ๋Š” ํ”ฝ์…€์˜ ์œ„์น˜(position)๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ ๋Š” ํ”ฝ์…€์˜ ์ปฌ๋Ÿฌ๊ฐ’(intensity)์ด๋‹ค.

์ด๊ฒƒ์„ ๊ณ ์†์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Philipp Krahenbuhl ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด feature space์—์„œ๋Š” Gaussian convolution์œผ๋กœ ํ‘œํ˜„ ํ•  ์ˆ˜ ์žˆ๊ฒŒ๋˜์–ด ๊ณ ์† ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•ด์ง„๋‹ค. (์•„ ์ด๋ถ€๋ถ„์€ ๋„์ €ํžˆ..)

CRF๊ฐ€ ์ ์šฉ๋œ ๋™์ž‘ ๋ฐฉ์‹

CRF๊นŒ์ง€ ์ ์šฉ๋œ ๋™์ž‘ ๋ฐฉ์‹

  1. DCNN์„ ํ†ตํ•ด 1/8 ํฌ๊ธฐ์˜ coarse score-map์„ ๊ตฌํ•œ๋‹ค.
  2. ์ด๊ฒƒ์„ bilinear interpolation์„ ํ†ตํ•ด ์›์˜์ƒ ํฌ๊ธฐ๋กœ ํ™•๋Œ€์‹œํ‚ด.
  3. Bilinear interpolation์„ ํ†ตํ•ด ์–ป์–ด์ง„ ๊ฒฐ๊ณผ๋Š” ๊ฐ ํ”ฝ์…€ ์œ„์น˜์—์„œ์˜ label์— ๋Œ€ํ•œ ํ™•๋ฅ ์ด ๋˜๋ฉฐ ์ด๊ฒƒ์€ CRF์˜ unary term์— ํ•ด๋‹นํ•จ.
  4. ์ตœ์ข…์ ์œผ๋กœ ๋ชจ๋“  ํ”ฝ์…€ ์œ„์น˜์—์„œ pairwise term๊นŒ์ง€ ๊ณ ๋ คํ•œ CRF ํ›„๋ณด์ • ์ž‘์—…์„ ํ•ด์ฃผ๋ฉด ์ตœ์ข…์ ์ธ ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Œ

๊ฒฐ๊ณผ

Encoder : Xception

decoder ๋ณ€๊ฒฝ ํ›„ ๊ฒฐ๊ณผ

Encoder๋ฅผ Xception์œผ๋กœ ๊ต์ฒด ํ›„ ์‹คํ—˜ํ•˜์˜€์„ ๋•Œ๋Š” ์•ฝ 2% ๊ฐ€๋Ÿ‰์˜ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๊ฐ€์ ธ์™”๋‹ค.

ASPP ๋ถ€๋ถ„๊ณผ Decoder ๋ถ€๋ถ„์— ์‚ฌ์šฉ๋˜๋Š” Convolution๋“ค์„ ๋ชจ๋‘ Separable Convolution์œผ๋กœ ๋Œ€์ฒดํ•  ๊ฒฝ์šฐ ์„ฑ๋Šฅ์€ ๊ธฐ์กด Convolution์„ ์‚ฌ์šฉํ•  ๋•Œ์™€ ๊ฑฐ์˜ ๋น„์Šทํ•˜์˜€์ง€๋งŒ, ๋ชจ๋ธ์ด ์‚ฌ์šฉํ•˜๋Š” ์—ฐ์‚ฐ๋Ÿ‰ ์ž์ฒด๊ฐ€ ํš๊ธฐ์ ์œผ๋กœ ์ค„์–ด๋“ค์—ˆ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

Decoder : U-Net ์‚ฌ์šฉ

decoder ๋ณ€๊ฒฝ ํ›„ ๊ฒฐ๊ณผ

๋‹ค์–‘ํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ์„ธํŒ…์— ๋Œ€ํ•ด์„œ ์‹คํ—˜์„ ์ง„ํ–‰ํ•˜์˜€๋Š”๋ฐ, ์šฐ์„  ResNet-101 ๊ตฌ์กฐ๋ฅผ Encoder๋กœ ์‚ฌ์šฉํ•˜์˜€์„ ๋•Œ, ์„ฑ๋Šฅ์„ ์ธก์ •ํ•œ ๊ฒƒ์ด๋‹ค. Decoder ๋ถ€๋ถ„์„ bilinear upsampling ๋Œ€์‹ , ๋‹จ์ˆœํ™”๋œ U-Net ๊ตฌ์กฐ๋กœ ๋ณ€๊ฒฝํ•  ๊ฒฝ์šฐ ๊ธฐ์กด ๋Œ€๋น„ mIOU 1.64% ํ–ฅ์ƒ์ด ์žˆ์Œ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Pascal VOC 2012 validation set์—์„œ์˜ visualization ๊ฒฐ๊ณผ

์œ„ Visualization ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด ์ƒ๋‹นํžˆ ์•ˆ์ •์ ์ด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๊ฐ๊ฐ์˜ ํ”ฝ์…€์— ๋Œ€ํ•ด ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. Xception ๊ธฐ๋ฐ˜์˜ encoder๋กœ ์–‘์งˆ์˜ high level semantic ์ •๋ณด๋ฅผ ๊ฐ€์ง€๋Š” feature๋ฅผ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๊ณ , ASPP ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ฐ ํ”ฝ์…€์ด ์—ฌ๋Ÿฌ ์Šค์ผ€์ผ์˜ context ์ •๋ณด๋ฅผ ์ทจํ•ด ๋ณด๋‹ค ์ •ํ™•ํ•œ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ, U-Net ๊ตฌ์กฐ์˜ decoder๋ฅผ ํ†ตํ•ด ๊ฐ ๋ฌผ์ฒด์— ํ•ด๋‹นํ•˜๋Š” ์ •๊ตํ•œ boundary๋ฅผ ๊ทธ๋ ค๋‚ผ ์ˆ˜ ์žˆ๊ธฐ์— ์œ„์™€ ๊ฐ™์€ visualization ๊ฒฐ๊ณผ๋ฅผ ์–ป์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ•ด์„ํ•ด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

Reference