iseg_layer
instance segmentation์ ์ํ layer์ ๋๋ค.
forward_iseg_layer
ํจ์ ์ด๋ฆ: forward_iseg_layer
์ ๋ ฅ:
layer ๊ตฌ์กฐ์ฒด์ network ๊ตฌ์กฐ์ฒด
๋์:
์ด๋ฏธ์ง ๋ถํ ์ ์ํ ์ธ์คํด์ค ์๋ฒ ๋ฉ์ ๊ณ์ฐํ๊ณ , ์๋ฒ ๋ฉ ์์ค์ ๊ณ์ฐํ์ฌ ๋คํธ์ํฌ์ ์ถ๋ ฅ์ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ YOLOv3-tiny ๋คํธ์ํฌ์ ์ผ๋ถ๋ก ์ฌ์ฉ๋๋ ์ด๋ฏธ์ง ๋ถํ ๋ ์ด์ด๋ฅผ ์ํํฉ๋๋ค.
์ด ํจ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง์ ํฌ๊ธฐ์ ๋ถํ ๋ ํด๋์ค ์์ ๋ฐ๋ผ ์ถ๋ ฅ ํ ์์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
์ด ํจ์์ ํต์ฌ ๊ธฐ๋ฅ์ ์ด๋ฏธ์ง์ ๊ฐ ํฝ์ ์ ๋ํ ์ธ์คํด์ค ์๋ฒ ๋ฉ์ ๊ณ์ฐํ๋ ๊ฒ์ ๋๋ค.
์ด๋ฅผ ์ํด, ํจ์๋ ์ฐธ๊ฐ(truth)์ผ๋ก๋ถํฐ ๊ฐ ์ธ์คํด์ค์ ๋ํ ์๋ฒ ๋ฉ์ ์ถ์ถํฉ๋๋ค.
์ถ์ถํ ์๋ฒ ๋ฉ๊ณผ ๋คํธ์ํฌ์ ์ถ๋ ฅ ๊ฐ์ ์ฐจ์ด๋ฅผ ๊ณ์ฐํ์ฌ ์๋ฒ ๋ฉ ์์ค์ ๊ณ์ฐํ๊ณ , ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ์ ๊ฐ์ค์น๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค.
์ด ํจ์๋ ๋ํ ์๋ฒ ๋ฉ ์์ค์ ๊ณ์ฐํ๊ธฐ ์ํด ํ๊ท ์ ๊ณฑ ์ค์ฐจ(mse)๋ฅผ ๊ณ์ฐํฉ๋๋ค.
ํจ์๋ ๋ํ ๊ฒฝ๊ณ ์์์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ขํ์ ํด๋์ค ์์ธก์ ํฌํจํ๋ ์ถ๋ ฅ ํ ์๋ฅผ ์์ฑํฉ๋๋ค.
backward_iseg_layer
ํจ์ ์ด๋ฆ: backward_iseg_layer
์ ๋ ฅ:
const layer l
network net
๋์:
l.delta์ net.delta๋ฅผ ๋ํ ๊ฒฐ๊ณผ๋ฅผ net.delta์ ์ ์ฅํฉ๋๋ค.
์ค๋ช :
iSeg ๋ ์ด์ด์ ์ญ์ ํ(backward propagation)๋ฅผ ์ํํ๋ ํจ์์ ๋๋ค.
l.delta์ net.delta๋ ๊ฐ๊ฐ iSeg ๋ ์ด์ด์ ์ฐ๊ฒฐ๋ ๋ ์ด์ด์ delta๊ฐ๊ณผ ๋คํธ์ํฌ ์ ์ฒด์ delta๊ฐ์ ์ ์ฅํ๋ ๋ฐฐ์ด์ ๋๋ค.
์ด ํจ์๋ l.delta์ net.delta๋ฅผ ๋ํ ๊ฒฐ๊ณผ๋ฅผ net.delta์ ์ ์ฅํฉ๋๋ค.
์ด ๊ณผ์ ์ ์ฐ๊ฒฐ๋ ๋ ์ด์ด์ delta๊ฐ์ ์ด์ฉํ์ฌ ์ด์ ๋ ์ด์ด์ gradient๋ฅผ ๊ณ์ฐํ๊ธฐ ์ํด ํ์ํฉ๋๋ค.
resize_iseg_layer
ํจ์ ์ด๋ฆ: resize_iseg_layer
์ ๋ ฅ:
layer *l : ๋ ์ด์ด ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ
int w : ๋ ์ด์ด์ ์๋ก์ด ๋๋น
int h : ๋ ์ด์ด์ ์๋ก์ด ๋์ด
๋์:
์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ ์ด์ด ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ l->w์ l->h๋ฅผ ๊ฐ๊ฐ w์ h๋ก ๋ณ๊ฒฝํ๊ณ , l->c์ w, h๋ฅผ ์ด์ฉํ์ฌ l->outputs๊ณผ l->inputs์ ๋ค์ ๊ณ์ฐํ์ฌ ์ ๋ฐ์ดํธํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ l->output๊ณผ l->delta๋ฅผ ๋ ์ด์ด์ ์๋ก์ด ํฌ๊ธฐ์ ๋ง๊ฒ ์ฌํ ๋นํฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ ์ธํ ์ธ๊ทธ๋ฉํ ์ด์ ๋ ์ด์ด๋ฅผ ๋ฆฌ์ฌ์ด์งํ ๋ ์ฌ์ฉ๋ฉ๋๋ค.
์ด ํจ์๋ฅผ ํธ์ถํ๋ฉด ๋ ์ด์ด์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉฐ, ๋ ์ด์ด์ ์์ํ๊ณผ ๋ธํ ๋ฐฐ์ด๋ ๋ฆฌ์ฌ์ด์ง๋ ํฌ๊ธฐ์ ๋ง๊ฒ ์ฌํ ๋น๋ฉ๋๋ค.
์ด ํจ์๋ฅผ ํตํด ๋ ์ด์ด์ ํฌ๊ธฐ๋ฅผ ์ ์ ํ ์กฐ์ ํ์ฌ ๋ชจ๋ธ์ ํ๋ํ ์ ์์ต๋๋ค.
make_iseg_layer
ํจ์ ์ด๋ฆ: make_iseg_layer
์ ๋ ฅ:
batch: int ํ์ , batch size
w: int ํ์ , ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋๋น (width)
h: int ํ์ , ์ ๋ ฅ ์ด๋ฏธ์ง์ ๋์ด (height)
classes: int ํ์ , segmentation ํด๋์ค ์
ids: int ํ์ , ์ถ๊ฐ์ ์ธ segmentation ID ์
๋์:
์ ๋ ฅ์ผ๋ก ๋ฐ์ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ์ฌ, ์ธ์คํด์ค ๋ถํ (segmentation) ๋ ์ด์ด๋ฅผ ์์ฑํ๊ณ ์ด๊ธฐํํ ํ ๋ฐํํ๋ค.
์ค๋ช :
layer ๊ตฌ์กฐ์ฒด ๋ณ์ l์ ์ด๊ธฐํํ๊ณ , ํ์ํ ๊ฐ๋ค์ ํ ๋นํ๋ค.
l.type์ ISEG๋ก ์ค์ ํ๊ณ , l.h, l.w, l.c, l.out_w, l.out_h, l.out_c, l.classes, l.batch, l.extra, l.outputs, l.inputs, l.truths, l.delta, l.output, l.counts, l.sums, l.cost ๋ฑ์ ๋ณ์๋ฅผ ์ค์ ํ๋ค.
l.sums ๋ฐฐ์ด์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๊ณ , ids๊ฐ 0์ด ์๋๋ฉด, ๊ฐ๊ฐ์ ์์๋ง๋ค ์ถ๊ฐ์ ์ธ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ค.
l.forward์ l.backward ํจ์๋ฅผ ์ค์ ํ๊ณ , "iseg"๋ผ๋ ๋ฌธ์์ด์ ์ถ๋ ฅํ๋ค.
์ด๊ธฐํ๋ layer ๊ตฌ์กฐ์ฒด l์ ๋ฐํํ๋ค.
Last updated
Was this helpful?