[AI] Segmentation

์„œ์ง€ํ˜œยท2023๋…„ 7์›” 18์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
16/22

๐Ÿงญ AI Study - ์ปดํ“จํ„ฐ ๋น„์ „

๐Ÿšฉ ์ฃผ์ œ : Image Segmentation

๐Ÿงฉ 2023 OUTTA AI ๋ถ€ํŠธ์บ ํ”„ ๋”ฅ๋Ÿฌ๋‹๋ฐ˜ Lecture 6

2023 OUTTA AI ๋ถ€ํŠธ์บ ํ”„์— ์ฐธ์—ฌํ•˜๋ฉฐ, ๊ฐ•์˜๋กœ ์ˆ˜๊ฐ•ํ•œ ์ฃผ์ œ์ธ Image Segmentation์˜ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

Segmentation

์ด๋ฏธ์ง€๋Š” ํ”ฝ์…€๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ปดํ“จํ„ฐ๋น„์ „ ๋ถ„์•ผ์—์„œ Segmentation์€ ์ด๋ฏธ์ง€์˜ ๋ชจ๋“  ํ”ฝ์…€์„ class ํ˜น์€ ๊ฐ์ฒด๋กœ ๋ถ„๋ฅ˜ ๋ฐ ํƒ์ง€๋ฅผ ํ•˜๋Š” task๋ฅผ ๋งํ•œ๋‹ค. ๊ฐ ํ”ฝ์…€์— label์„ ํ• ๋‹นํ•˜์—ฌ ๋ชจ๋“  ํ”ฝ์…€์ด ์˜ฌ๋ฐ”๋ฅธ class ํ˜น์€ object์— ์†ํ•˜๋„๋ก ๋ถ„๋ฅ˜ํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ„๋ฅ˜๋ฅผ ํ†ตํ•ด ํ”ฝ์…€๊ณผ label์„ ์—ฐ๊ฒฐํ•œ segment map์ด ์ƒ์„ฑ๋œ๋‹ค.

Image Classification vs Image Segmentation

  • Image Classification : ์ด๋ฏธ์ง€ ์ „์ฒด๊ฐ€ ์–ด๋–ค label ํ˜น์€ class์— ์†ํ•˜๋Š”์ง€ ๋ถ„๋ฅ˜ํ•˜๋Š” task์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ์–‘์ด ์‚ฌ์ง„์ด ์žˆ์„ ๋•Œ ๊ทธ๊ฒƒ์ด ๊ณ ์–‘์ด๊ฐ€ ๋งž๋Š”์ง€ ์•„๋‹Œ์ง€ ๋ถ„๋ฅ˜ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
  • Image Segmentation : ์ด๋ฏธ์ง€ ๋‚ด์˜ ์–ด๋–ค ํ”ฝ์…€์ด ์–ด๋–ค ์ข…๋ฅ˜์˜ object ํ˜น์€ class์— ์†ํ•˜๋Š”์ง€ ๋ผ๋ฒจ๋งํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์ž๋™์ฐจ์™€ ์‚ฌ๋žŒ์ด ์žˆ๋Š” ์ด๋ฏธ์ง€๊ฐ€ ์žˆ์„ ๋•Œ ์ด๋ฏธ์ง€์—์„œ ์ž๋™์ฐจ์™€ ์‚ฌ๋žŒ์ด ์žˆ๋Š” ํ”ฝ์…€์„ ๋ถ„๋ฅ˜ํ•ด ๋‚ด๋Š” ์ž‘์—…์ด๋‹ค.

Image Segmentation ์ข…๋ฅ˜

Image Segmentation์˜ ์ข…๋ฅ˜๋Š” Sementic Segmentation๊ณผ Instance Segmentation์ด ์žˆ๋‹ค. Sementic Segmentation์€ class๋Š” ๊ตฌ๋ณ„ํ•˜์ง€๋งŒ ๊ฐ™์€ class๋‚ด์— ์†ํ•˜๋Š” instance๋ฅผ ๋ถ„๋ฅ˜ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค. Instance Segmentation์€ class์™€ instance๋ฅผ ๋ถ„๋ฅ˜ํ•œ๋‹ค.

https://nirmalamurali.medium.com/image-classification-vs-semantic-segmentation-vs-instance-segmentation-625c33a08d50

++ ์œ„ ์ด๋ฏธ์ง€ ์ถ”๊ฐ€ ์„ค๋ช…
Classification + Localization
์ด๋ฏธ์ง€ ๋‚ด์—์„œ ๊ฐ์ฒด์˜ class๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ํ•ด๋‹น ๊ฐ์ฒด๊ฐ€ ์ด๋ฏธ์ง€์˜ ์–ด๋Š ๋ถ€๋ถ„์— ์œ„์น˜ํ•˜๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” bounding box๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ๊ฐ์ฒด๋Š” ํ•œ ์ข…๋ฅ˜์˜ ๊ฐ์ฒด์ผ ๊ฒฝ์šฐ์—๋งŒ ์ˆ˜ํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

Object Detection
์ด๋ฏธ์ง€ ๋‚ด์—์„œ ๊ฐ์ฒด์˜ class๋ฅผ ๋ถ„๋ฅ˜ํ•˜๊ณ  ํ•ด๋‹น ๊ฐ์ฒด์˜ ์œ„์น˜๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ฐ์ฒด์˜ ์ข…๋ฅ˜๊นŒ์ง€ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

Sementic Segmentation

Sementic Segmentation์„ ์ˆ˜ํ–‰ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ? ๋ชจ๋“  ํ”ฝ์…€์„ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์€ ์—ฐ์‚ฐ์˜ ํšŸ์ˆ˜๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์•„์ ธ์„œ ๋น„ํšจ์œจ์ ์ด๋‹ค. ๊ทธ๋ž˜์„œ Bilinear Interpolation์„ ์‚ฌ์šฉํ•œ๋‹ค.
์—ฌ๊ธฐ์„œ Interpolation์ด๋ž€ ์•Œ๋ ค์ง„ ๊ฐ’์„ ์ด์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๊ฐ’์„ ์ถ”์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋ฅผ Segmentation์— ์ ์šฉํ•˜๋ฉด, ํŠน์ • ํ”ฝ์…€์„ ํ•™์Šตํ•˜๊ณ  ํ•™์Šต๋˜์ง€ ์•Š์€ ํ”ฝ์…€๋“ค์€ ๋ณด๊ฐ„๋ฒ•์œผ๋กœ ๊ฐ’์„ ์ถ”์ •ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณด๊ฐ„๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฐ์‚ฐ๋Ÿ‰๊ณผ ํ•™์Šต์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์„œ ํšจ์œจ์ ์ด๋‹ค.

Interpolation

Linear Interpolation

  • ์„ ํ˜• ๋ณด๊ฐ„๋ฒ•
  • ๋‘ ์ ์˜ ๊ฐ’์ด ์ฃผ์–ด์ง€๋ฉด ๊ทธ ์‚ฌ์ด์˜ ์œ„์น˜ํ•œ ๊ฐ’์„ ์ถ”์ •ํ•˜๊ธฐ ์œ„ํ•ด ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

f(p)=d2d1+d2f(p1)+d1d1+d2f(p2)\displaystyle f(p)={\frac {d_{2}}{d_{1}+d_{2}}}f(p_{1})+{\frac {d_{1}}{d_{1}+d_{2}}}f(p_{2})

https://ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95_%EB%B3%B4%EA%B0%84%EB%B2%95

Bilinear Interpolation

  • ์ด์ค‘ ์„ ํ˜• ๋ณด๊ฐ„๋ฒ•
  • 1์ฐจ์›์˜ ์„ ํ˜• ๋ณด๊ฐ„๋ฒ•์„ 2์ฐจ์›์œผ๋กœ ํ™•์žฅํ•œ ๊ฒƒ์ด๋‹ค.
  • ํ•œ ๋ฐฉํ–ฅ์œผ๋กœ 1์ฐจ์› ์„ ํ˜• ๋ณด๊ฐ„์„ ์ ์šฉํ•˜๊ณ  ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ํ•œ ๋ฒˆ ๋” ์ ์šฉํ•œ๋‹ค.

P=1(x2โˆ’x1)(y2โˆ’y1)[x2โˆ’xxโˆ’x1][f(Q11)f(Q12)f(Q21)f(Q22)][y2โˆ’yyโˆ’y1].{\displaystyle {\begin{aligned}P&={\frac {1}{(x_{2}-x_{1})(y_{2}-y_{1})}}{\begin{bmatrix}x_{2}-x&x-x_{1}\end{bmatrix}}{\begin{bmatrix}f(Q_{11})&f(Q_{12})\\f(Q_{21})&f(Q_{22})\end{bmatrix}}{\begin{bmatrix}y_{2}-y\\y-y_{1}\end{bmatrix}}.\end{aligned}}}

https://en.wikipedia.org/wiki/Bilinear_interpolation

Bilinear Interpolation ์˜ˆ์ œ

Sementic Segmentation ๋ชจ๋ธ

๋ชจ๋ธ์˜ ๋งˆ์ง€๋ง‰ Layer์— Fully Connected Layer๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Tensor๋ฅผ 1์ฐจ์› ๋ฒกํ„ฐ๋กœ Flatten ํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— Object์˜ ์œ„์น˜์ •๋ณด๋ฅผ ์žƒ๊ฒŒ๋œ๋‹ค. ๋”ฐ๋ผ์„œ VGG, Resnet ๋“ฑ์˜ Fully Connected Layer๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Classification ๋ชจ๋ธ์€ Sementic Segmentation์— ์ ํ•ฉํ•˜์ง€ ์•Š๋‹ค.

์œ„์น˜์ •๋ณด ์†Œ์‹ค๋ฌธ์ œ๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด Downsampling(์ธ์ฝ”๋”)๊ณผ Upsampling(๋””์ฝ”๋”) ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•œ๋‹ค. Downsampling์€ ์ž…๋ ฅ๋ฐ›์€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ๋ฒกํ„ฐ๋กœ ์ค„์ด๋Š” ๊ณผ์ •์œผ๋กœ, Convolution๊ณผ Pooling์„ ์‚ฌ์šฉํ•œ๋‹ค. Upsampling์€ Downsampling์œผ๋กœ ์ค„์–ด๋“  ๋ฐ์ดํ„ฐ์˜ ์ฐจ์›์„ ๋‹ค์‹œ ์›๋ž˜ํฌ๊ธฐ๋กœ ํ™•์žฅํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, Transpose Convolution์„ ์‚ฌ์šฉํ•œ๋‹ค.

Downsampling, Upsampling ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ์€ FCN, DeepLab, U-Net์ด ์žˆ๋‹ค.

Transpose Convolution
Transpose Convolution์„ ์‚ฌ์šฉํ•˜๋ฉด ์ž‘์€ ์‚ฌ์ด์ฆˆ์˜ input ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์ œ์ฒ˜๋Ÿผ input์˜ ํ•œ ํ”ฝ์…€๊ณผ kernel์˜ ๊ฐ’์„ ๊ณฑํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋”ํ•ด์„œ ์ฐจ์›์„ ๋Š˜๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋‹ค.

https://d2l.ai/chapter_computer-vision/transposed-conv.html

FNC(Fully Convolutional Network for Semantic Segmentation)

https://medium.com/@mohit_gaikwad/overview-fully-convolutional-network-for-semantic-segmentation-b4ef92eeb8c4

AlexNet, VGG16 ๋“ฑ์˜ CNN๊ธฐ๋ฐ˜ ๋ชจ๋ธ์—์„œ Sementic Segmentation์„ ์œ„ํ•ด ๋ณ€ํ™”์‹œํ‚จ ๋ชจ๋ธ์ด๋‹ค. ํŠน์ง•์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์ •๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

  • VGG16 ๋ชจ๋ธ์˜ ๋งˆ์ง€๋ง‰ layer๋ฅผ 1 by 1 convolution layer๋กœ ๋Œ€์ฒดํ•˜์˜€๋‹ค. (fully connected layer๋ฅผ convolution layer๋กœ ๋ณ€๊ฒฝํ•จ)
  • VGG16์œผ๋กœ๋ถ€ํ„ฐ Transfer Learning์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • Skip Connection ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

Transfer Learning

Transfer Learning(์ „์ด ํ•™์Šต)์€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ๋„คํŠธ์›Œํฌ๋ฅผ ๋‹ค๋ฅธ task ๋ฐ ๋ฐ์ดํ„ฐ์…‹์— ์‹œ์ž‘์ ์œผ๋กœ ์žฌ์‚ฌ์šฉํ•˜๋Š” ํ•™์Šต ๋ฐฉ๋ฒ•์ด๋‹ค. ์ „์ดํ•™์Šต์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์ด์ „์— ๋น„์Šทํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ ๋ชจ๋ธ์˜ ํŒจํ„ด ๋“ฑ์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์†๋„์™€ ์ •ํ™•๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

Skip Connection
๋‚ฎ์€ layer์˜ ๋งต์„ upsamplingํ•  ๋•Œ ๊ฒฐํ•ฉํ•ด์„œ ์†์‹ค๋œ ์ •๋ณด๋ฅผ ๋ณต๊ตฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค.

https://tjmachinelearning.com/lectures/1718/fcn/

https://medium.com/@mohit_gaikwad/overview-fully-convolutional-network-for-semantic-segmentation-b4ef92eeb8c4

์ฐธ๊ณ ์ž๋ฃŒ
image task ์ข…๋ฅ˜
image classification
image segmentation
segmentation
Interpolation
Linear Interpolation
Transpose Convolution
Transfer Learning1
Transfer Learning2
Transfer Learning3
Skip Connection

profile
๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ณ  ์‹ถ์€ ๊ฐ์ž

2๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 18์ผ

๊ธ€ ์ž˜ ๋ดค์Šต๋‹ˆ๋‹ค, ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ
comment-user-thumbnail
2023๋…„ 7์›” 18์ผ

ํ•ญ์ƒ ์ข‹์€ ๊ธ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ

๊ด€๋ จ ์ฑ„์šฉ ์ •๋ณด