Task

Segmentation

semantic segmentation์€ ์ด๋ฏธ์ง€ ๋‚ด์— ์žˆ๋Š” ๋ฌผ์ฒด๋“ค์„ ์˜๋ฏธ ์žˆ๋Š” ๋‹จ์œ„๋กœ ๋ถ„ํ• ํ•ด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค. ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์ด์•ผ๊ธฐํ•˜๋ฉด, ์ด๋ฏธ์ง€์˜ ๊ฐ ํ”ฝ์…€์ด ์–ด๋Š ํด๋ž˜์Šค์— ์†ํ•˜๋Š”์ง€ ์˜ˆ์ธกํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ์ด๋ฏธ์ง€ ๋‚ด ๋ชจ๋“  ํ”ฝ์…€์— ๋Œ€ํ•ด์„œ ์˜ˆ์ธก์„ ์ง„ํ–‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๊ณผ์ œ๋ฅผ dense prediction์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์–ด๋–ค ์ด๋ฏธ์ง€ ๋‚ด์—๋Š” ์‚ฌ๋žŒ, ์ž๋™์ฐจ, ๊ฐ•์•„์ง€, ๊ณ ์–‘์ด, ๋…ธํŠธ๋ถ, ์„ ํ’๊ธฐ ๋“ฑ ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ ๋ฌผ์ฒด๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ์„œ๋กœ ๋‹ค๋ฅธ ์ข…๋ฅ˜์˜ ๋ฌผ์ฒด๋“ค์„ ๊น”๋”ํ•˜๊ฒŒ ๋ถ„ํ• ํ•ด๋‚ด๋Š” ๊ฒƒ์ด semantic segmentation์˜ ๋ชฉ์ ์ด๋‹ค.

์ด ์ค‘์—์„œ ์˜๋ฏธ๋ก ์ ์ธ ๊ตฌ๋ถ„์„ ํ•˜๋Š” Sementic Segmentation ์ค‘์—์„œ Deep Lab์— ๋Œ€ํ•ด ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ๋Š” U-Net, ๋งˆ์ง€๋ง‰์œผ๋กœ instance ๋‹จ์œ„๋กœ segmentation์„ ์ง„ํ–‰ํ•˜๋Š” instance segmentation์„ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.

์•Œ์•„๋‘์–ด์•ผ ํ•  ๊ฒƒ

  1. ํ‰๊ฐ€ metric
    • IoU(intersection over Union)
  2. ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ์…‹

Fully Convolutional Networks

Fully connected ๋Œ€์‹  Fully convolution!

  • Baseline
    • Fully Convolutional Networks for Semantic Segmentationโ€, 2014

Sematic Segmentation = Pixel level Calssification??

CNN์€ image classification์„ ์ž˜ํ•œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Sememtation์€ pixel ๋‹จ์œ„๋กœ classification์„ ์ง„ํ–‰ํ•˜๋ฉด ๋˜์ง€ ์•Š์„๊นŒ? ํ•˜์ง€๋งŒ ๊ต‰์žฅํžˆ ๋น„ํšจ์œจ์ ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด, ์ตœ๋Œ€ํ•œ ๊ธฐ์กด network์˜ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์œผ๋ฉด์„œ ์ด๊ฑธ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•  ๋ฐฉ๋ฒ•์€?

AlexNet, VGGNet ๋“ฑ ์ด๋ฏธ์ง€ ๋ถ„๋ฅ˜(image classification)์šฉ CNN ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปจ๋ณผ๋ฃจ์…˜ ์ธต๋“ค๊ณผ fully connected ์ธต๋“ค๋กœ ์ด๋ค„์ ธ์žˆ๋‹ค. ์ž…๋ ฅ์ด๋ฏธ์ง€์— ์˜์กด๋„๊ฐ€ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ํ•ญ์ƒ ์ž…๋ ฅ์ด๋ฏธ์ง€๋ฅผ ๋„คํŠธ์›Œํฌ์— ๋งž๋Š” ๊ณ ์ •๋œ ์‚ฌ์ด์ฆˆ๋กœ ์ž‘๊ฒŒ ๋งŒ๋“ค์–ด์„œ ์ž…๋ ฅํ•ด์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ๋„คํŠธ์›Œํฌ๋Š” ๊ทธ ์ด๋ฏธ์ง€๊ฐ€ ์†ํ•  ํด๋ž˜์Šค๋ฅผ ์˜ˆ์ธกํ•ด์„œ ์•Œ๋ ค์ค€๋‹ค. ์•„๋ž˜ ๊ทธ๋ฆผ์—์„œ ๋„คํŠธ์›Œํฌ๋Š” ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€์˜ ํด๋ž˜์Šค๋ฅผ ์–ผ๋ฃฉ๋ฌด๋Šฌ ๊ณ ์–‘์ด(tabby cat)๋ผ๊ณ  ์˜ˆ์ธกํ•ด๋ƒˆ๋‹ค.

์ด ๋ถ„๋ฅ˜์šฉ CNN ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ์ด๋ฏธ์ง€์— ์žˆ๋Š” ๋ฌผ์ฒด๊ฐ€ ์–ด๋–ค ํด๋ž˜์Šค์— ์†ํ•˜๋Š”์ง€๋Š” ์˜ˆ์ธกํ•ด๋‚ผ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ ๋ฌผ์ฒด๊ฐ€ ์–ด๋””์— ์กด์žฌํ•˜๋Š”์ง€๋Š” ์˜ˆ์ธกํ•ด๋‚ผ ์ˆ˜ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋„คํŠธ์›Œํฌ ํ›„๋ฐ˜๋ถ€์˜ fully connected ์ธต์— ๋“ค์–ด์„œ๋ฉด์„œ ์œ„์น˜์ •๋ณด๊ฐ€ ์†Œ์‹ค๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๋”ฐ๋ผ์„œ AlexNet, VGGNet ๋“ฑ๊ณผ ๊ฐ™์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์„ ์ˆ˜์ •ํ•จ์—†์ด Semantic segmentation ๊ณผ์ œ์— ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

๊ทธ๋ž˜์„œ ์ €์ž๋“ค์€ 1x1 filter๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ„์น˜์ •๋ณด๋ฅผ ์‚ด๋ ธ๋‹ค. ๋งˆ์ง€๋ง‰ ๋‹จ์—๋Š” 7x7 heatmap ์„ output์œผ๋กœ ๋‚ด๊ณ , ์ด๋ฅผ ์›๋ž˜ image size๋กœ upsampling์„ ์ง„ํ–‰ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ ์ž ํ•˜์˜€๋‹ค.

๊ฒฐ๊ณผ์ ์œผ๋กœ ๋„คํŠธ์›Œํฌ ์ „์ฒด๊ฐ€ ์ปจ๋ณผ๋ฃจ์…˜์ธต๋“ค๋กœ ์ด๋ค„์ง€๊ฒŒ ๋˜์—ˆ๋‹ค. fully connected ์ธต๋“ค์ด ์—†์–ด์กŒ์œผ๋ฏ€๋กœ ๋” ์ด์ƒ ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ์— ์ œํ•œ์„ ๋ฐ›์ง€ ์•Š๊ฒŒ ๋˜์—ˆ๋‹ค.

์ €์ž๋“ค์€ Fully Convolutional Network๋Š” 1x1 filter๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— input image์— ๋Œ€ํ•œ dependency๊ฐ€ ์ž‘์€ ๊ฒƒ๋„ ์žฅ์ ์ด๋ผ ํ–ˆ๋‹ค. 1x1 conv๋Š” Width, Height์— ๋Œ€ํ•ด ์˜์กด๋„๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— channel ์ˆ˜๋ฅผ ๋งˆ์Œ๋Œ€๋กœ ์กฐ์ •ํ•˜์—ฌ ์›ํ•˜๋Š” output ๋ชจ์–‘์„ ๋งž์ถœ ์ˆ˜ ์žˆ๋‹ค. ์—ฌ๋Ÿฌ ์ธต์˜ ์ปจ๋ณผ๋ฃจ์…˜์ธต๋“ค์„ ๊ฑฐ์น˜๊ณ  ๋‚˜๋ฉด ํŠน์„ฑ๋งต(feature map)์˜ ํฌ๊ธฐ๊ฐ€ H/32 x W/32๊ฐ€ ๋˜๋Š”๋ฐ, ๊ทธ ํŠน์„ฑ๋งต์˜ ํ•œ ํ”ฝ์…€์ด ์ž…๋ ฅ์ด๋ฏธ์ง€์˜ 32 x 32 ํฌ๊ธฐ๋ฅผ ๋Œ€ํ‘œํ•œ๋‹ค. ์ฆ‰, ์ž…๋ ฅ์ด๋ฏธ์ง€์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ โ€˜๋Œ€๋žต์ ์œผ๋กœโ€™ ์œ ์ง€ํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

Upsampling

feature map์„ ํ‚ค์›Œ์„œ image size๋กœ ๋งŒ๋“ค์ž!

Heatmap๊ณผ Upsampling

์ž…๋ ฅ์ด๋ฏธ์ง€์˜ ์œ„์น˜ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” Heapmap์€ ์•„์ง ๋Œ€๋žต์ ์ธ ์ •๋ณด(Coarse)์ผ ๋ฟ์ด๋‹ค. ์ด๋Ÿฌํ•œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์›๋ž˜ ์ด๋ฏธ์ง€์˜ Pixel Size์—์„œ class๋ฅผ ์˜ˆ์ธกํ•˜๋Š” dense Prediction์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด ๊ณผ์ •์—์„œ Heat map์„ ์›๋ž˜ image size๋กœ ํฌ๊ธฐ๋ฅผ ํ‚ค์›Œ์ฃผ๋Š” ๊ณผ์ •์„ upsampling์ด๋ผ ํ•œ๋‹ค.

FCN-32s ๋ชจ๋ธ์˜ ์ „์ฒด ๊ณผ์ •

ํ•˜์ง€๋งŒ ๋‹จ์ˆœํžˆ upsampling์„ ์ง„ํ–‰ํ•˜๋ฉด ์˜ˆ์ƒํ•˜๊ฒ ์ง€๋งŒ ์—ฌ์ „ํžˆ Coarseํ•œ segmentation map์„ ์–ป๊ฒŒ ๋œ๋‹ค. ๋‹จ์ˆจ์— 32๋ฐฐ ํ•œ๋‹ค๋ฉด coarse ํ• ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์ด๋ ‡๊ฒŒ ๋‹จ์ˆจ์— 32๋ฐฐ upsamplingํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ FCN-32s๋ผ ์†Œ๊ฐœํ•˜๊ณ  ์žˆ๋‹ค. ํ™•์‹คํžˆ ์ •ํ™•๋„๊ฐ€ ๋งŽ์ด ๋–จ์–ด์ง„๋‹ค.

FCN-32s : Coarse Output

Skip Combining

์ด์ „ ๋‹จ๊ณ„์˜ ์ปจ๋ณผ๋ฃจ์…˜์ธต๋“ค์˜ ํŠน์„ฑ๋งต์„ ์ฐธ๊ณ ํ•˜์—ฌ upsampling์„ ํ•ด์ฃผ์ž!

FCN-16s

์ปจ๋ณผ๋ฃจ์…˜๊ณผ ํ’€๋ง ๋‹จ๊ณ„๋กœ ์ด๋ค„์ง„ ์ด์ „ ๋‹จ๊ณ„์˜ ์ปจ๋ณผ๋ฃจ์…˜์ธต๋“ค์˜ ํŠน์„ฑ๋งต์„ ์ฐธ๊ณ ํ•˜์—ฌ upsampling์„ ํ•ด์ฃผ๋ฉด ์ข€ ๋” ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์ง€ ์•Š๊ฒ ๋ƒ๋Š” ์ƒ๊ฐ์—์„œ Skip combining์ด๋ผ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ์•ˆํ•œ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์ด์ „ ์ปจ๋ณผ๋ฃจ์…˜์ธต๋“ค์˜ ํŠน์„ฑ๋งต๋“ค์ด ํ•ด์ƒ๋„ ๋ฉด์—์„œ๋Š” ๋” ๋‚ซ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐ”๋กœ ์ „ ์ปจ๋ณผ๋ฃจ์…˜์ธต์˜ ํŠน์„ฑ๋งต(pool4)๊ณผ ํ˜„์žฌ ์ธต์˜ ํŠน์„ฑ๋งต(conv7)์„ 2๋ฐฐ upsamplingํ•œ ๊ฒƒ์„ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ ๊ทธ๊ฒƒ(pool + 2x conv7)์„ 16๋ฐฐ upsampling์œผ๋กœ ์–ป์€ ํŠน์„ฑ๋งต๋“ค๋กœ segmentation map์„ ์–ป๋Š” ๋ฐฉ๋ฒ•์„ FCN-16s๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

FCN-8s

๋˜ ๋” ๋‚˜์•„๊ฐ€์„œ ์ „์ „ ์ปจ๋ณผ๋ฃจ์…˜์ธต์˜ ๊ฒฐ๊ณผ๋„ ์ฐธ๊ณ ํ•ด์„œ ํŠน์„ฑ๋งต๋“ค์„ ์–ป๊ณ , ๋˜ ๊ทธ ํŠน์„ฑ๋งต๋“ค๋กœ segmentation map์„ ๊ตฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ FCN-8s๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ข€ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์ด์•ผ๊ธฐํ•˜๋ฉด, ๋จผ์ € ์ „์ „ ๋‹จ๊ณ„์˜ ํŠน์„ฑ๋งต(pool3)๊ณผ ์ „ ๋‹จ๊ณ„์˜ ํŠน์„ฑ๋งต(pool4)์„ 2๋ฐฐ upsamplingํ•œ ๊ฒƒ๊ณผ ํ˜„ ๋‹จ๊ณ„์˜ ํŠน์„ฑ๋งต(conv7)์„ 4๋ฐฐ upsampling ํ•œ ๊ฒƒ์„ ๋ชจ๋‘ ๋”ํ•œ ๋‹ค์Œ์— 8๋ฐฐ upsampling์„ ์ˆ˜ํ–‰ํ•˜๋ฏ€๋กœ ํŠน์„ฑ๋งต๋“ค์„ ์–ป๋Š”๋‹ค. ์ด๊ฒƒ์„ ๋ชจ๋‘ ์ข…ํ•ฉํ•ด์„œ ์ตœ์ข… segmentation map์„ ์‚ฐ์ถœํ•œ๋‹ค.

skip combining์˜ depth์— ๋”ฐ๋ฅธ ๊ฒฐ๊ณผ ๋น„๊ต

Reference