crop_layer

input(image, feature map)์„ cropํ•˜๊ธฐ ์œ„ํ•œ layer์ž…๋‹ˆ๋‹ค.

get_crop_image

image get_crop_image(crop_layer l)
{
    int h = l.out_h;
    int w = l.out_w;
    int c = l.out_c;
    return float_to_image(w,h,c,l.output);
}

ํ•จ์ˆ˜ ์ด๋ฆ„: get_crop_image

์ž…๋ ฅ:

  • crop_layer ํƒ€์ž… ๋ณ€์ˆ˜ l

๋™์ž‘:

  • ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ crop_layer ํƒ€์ž… ๋ณ€์ˆ˜ l์˜ output ๋ฐฐ์—ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ float_to_image ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…:

  • ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ crop_layer ํƒ€์ž… ๋ณ€์ˆ˜ l์€ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ์ž˜๋ผ๋‚ด๊ธฐ ์œ„ํ•œ ์ •๋ณด๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ํ•จ์ˆ˜๋Š” ๊ทธ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž˜๋ผ๋‚ธ ์ด๋ฏธ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ float_to_image ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ด๋ฏธ์ง€ ํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ํ•จ์ˆ˜๋Š” ์ด๋ฏธ์ง€ ์ธ์‹ ๋ถ„์•ผ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

forward_crop_layer

ํ•จ์ˆ˜ ์ด๋ฆ„: forward_crop_layer

์ž…๋ ฅ:

  • const crop_layer l: crop_layer ํƒ€์ž…์˜ l ๋ณ€์ˆ˜. ํฌ๋กญ ๋ ˆ์ด์–ด์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ.

  • network net: network ํƒ€์ž…์˜ net ๋ณ€์ˆ˜. ์‹ ๊ฒฝ๋ง ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Œ.

๋™์ž‘:

  • ๋žœ๋ค์œผ๋กœ ์ขŒ์šฐ ๋ฐ˜์ „๊ณผ ์ด๋ฏธ์ง€๋ฅผ ์ž˜๋ผ๋‚ธ ํ›„, ํฌ๋กญ ๋ ˆ์ด์–ด์˜ ์ถœ๋ ฅ๊ฐ’์„ ๊ณ„์‚ฐํ•˜์—ฌ l.output ๋ฐฐ์—ด์— ์ €์žฅํ•จ.

์„ค๋ช…:

  • ํฌ๋กญ ๋ ˆ์ด์–ด๋Š” ์ž…๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ๋žœ๋ค์œผ๋กœ ์ž๋ฅธ ํ›„, ์ถœ๋ ฅ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•จ.

  • ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” l.h x l.w x l.c์ด๊ณ , ์ถœ๋ ฅ ์ด๋ฏธ์ง€์˜ ํฌ๊ธฐ๋Š” l.out_h x l.out_w x l.out_c์ž„.

  • ์ขŒ์šฐ ๋ฐ˜์ „ ์—ฌ๋ถ€๋Š” l.flip ๊ฐ’์— ๋”ฐ๋ผ ๋žœ๋ค์œผ๋กœ ๊ฒฐ์ •๋จ.

  • ์ž˜๋ผ๋‚ธ ์ด๋ฏธ์ง€์˜ ์œ„์น˜๋Š” l.h, l.w์—์„œ ๊ฐ๊ฐ l.out_h, l.out_w ํฌ๊ธฐ๋งŒํผ ๋žœ๋คํ•˜๊ฒŒ ์„ ํƒ๋จ.

  • ํฌ๋กญ ๋ ˆ์ด์–ด๋Š” ๋„คํŠธ์›Œํฌ๊ฐ€ ํ•™์Šต ์ค‘์ผ ๋•Œ๋งŒ ์ขŒ์šฐ ๋ฐ˜์ „์„ ํ•˜๊ณ  ์ด๋ฏธ์ง€๋ฅผ ์ž˜๋ผ๋ƒ„. ํ•™์Šต์ด ์•„๋‹ ๋•Œ๋Š” ์ขŒ์šฐ ๋ฐ˜์ „์„ ํ•˜์ง€ ์•Š๊ณ  ์ด๋ฏธ์ง€ ์ค‘์•™์—์„œ ์ž˜๋ผ๋ƒ„.

  • scale๊ณผ trans ๊ฐ’์€ ์ด๋ฏธ์ง€๋ฅผ ์ •๊ทœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.

backward_crop_layer

ํ•จ์ˆ˜ ์ด๋ฆ„: backward_crop_layer

์ž…๋ ฅ:

  • crop_layer l

  • network net

๋™์ž‘:

  • crop_layer์˜ ์—ญ์ „ํŒŒ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ด ํ•จ์ˆ˜๋Š” backward ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ค๋ช…:

  • crop_layer๋Š” ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ์ผ๋ถ€๋ถ„์„ ๋ฌด์ž‘์œ„๋กœ ์ž˜๋ผ๋‚ด์–ด ์ถœ๋ ฅ์œผ๋กœ ๋‚ด๋ณด๋‚ด๋Š” ๋ ˆ์ด์–ด์ž…๋‹ˆ๋‹ค.

  • ์ด ํ•จ์ˆ˜๋Š” ํ•ด๋‹น ๋ ˆ์ด์–ด์—์„œ์˜ ์—ญ์ „ํŒŒ๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ ์ด ๋ ˆ์ด์–ด๋Š” ์—ญ์ „ํŒŒ๋ฅผ ์œ„ํ•œ ํ•™์Šต ๊ฐ€๋Šฅํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ๋”ฐ๋ผ์„œ ์ด ํ•จ์ˆ˜๋Š” ๋นˆ ํ•จ์ˆ˜๋กœ ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.

resize_crop_layer

ํ•จ์ˆ˜ ์ด๋ฆ„: resize_crop_layer

์ž…๋ ฅ:

  • layer *l: ํฌ๋กญ ๋ ˆ์ด์–ด ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ

  • int w: ์ƒˆ๋กœ์šด ๊ฐ€๋กœ ํฌ๊ธฐ

  • int h: ์ƒˆ๋กœ์šด ์„ธ๋กœ ํฌ๊ธฐ

๋™์ž‘:

  • ํฌ๋กญ ๋ ˆ์ด์–ด์˜ ๊ฐ€๋กœ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ , ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ , ์ถœ๋ ฅ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์žฌํ• ๋‹นํ•œ๋‹ค.

์„ค๋ช…:

  • ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์€ ํฌ๋กญ ๋ ˆ์ด์–ด ๊ตฌ์กฐ์ฒด ํฌ์ธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋กœ์™€ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

  • ๊ทธ ํ›„, ์ƒˆ๋กœ์šด ๊ฐ€๋กœ์™€ ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ ๊ณ„์‚ฐํ•˜๊ณ , ์ž…๋ ฅ ํฌ๊ธฐ์™€ ์ถœ๋ ฅ ํฌ๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์žฌํ• ๋‹นํ•œ๋‹ค.

make_crop_layer

ํ•จ์ˆ˜ ์ด๋ฆ„: make_crop_layer

์ž…๋ ฅ:

  • batch: int, ๋ฏธ๋‹ˆ๋ฐฐ์น˜ ํฌ๊ธฐ

  • h: int, ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ๋†’์ด

  • w: int, ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ๋„ˆ๋น„

  • c: int, ์ž…๋ ฅ ์ด๋ฏธ์ง€์˜ ์ฑ„๋„ ์ˆ˜

  • crop_height: int, ์ž๋ฅผ ์˜์—ญ์˜ ๋†’์ด

  • crop_width: int, ์ž๋ฅผ ์˜์—ญ์˜ ๋„ˆ๋น„

  • flip: int, ์ž๋ฅด๊ธฐ ์ „ ์ด๋ฏธ์ง€๋ฅผ ์ˆ˜ํ‰์œผ๋กœ ๋’ค์ง‘์„์ง€ ์—ฌ๋ถ€

  • angle: float, ์ด๋ฏธ์ง€ ํšŒ์ „ ๊ฐ๋„

  • saturation: float, ์ด๋ฏธ์ง€ ํฌํ™”๋„ ์กฐ์ ˆ ๊ฐ’

  • exposure: float, ์ด๋ฏธ์ง€ ๋…ธ์ถœ ์กฐ์ ˆ ๊ฐ’

๋™์ž‘:

  • ์ž…๋ ฅ๋œ ๊ฐ’์„ ๋ฐ”ํƒ•์œผ๋กœ crop_layer ๊ตฌ์กฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.

  • ์ถœ๋ ฅ๋˜๋Š” ์˜์ƒ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

  • ํ•„์š”ํ•œ ์ž…๋ ฅ ๋ฐ ์ถœ๋ ฅ ๊ณต๊ฐ„์„ ํ• ๋‹นํ•œ๋‹ค.

  • forward_crop_layer ํ•จ์ˆ˜์™€ backward_crop_layer ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.

  • ์ดˆ๊ธฐํ™”๋œ crop_layer ๊ตฌ์กฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์„ค๋ช…:

  • ์ด ํ•จ์ˆ˜๋Š” crop_layer๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•˜๋Š” ํ•จ์ˆ˜์ด๋‹ค.

  • crop_layer๋Š” ์ž…๋ ฅ๋œ ์ด๋ฏธ์ง€์—์„œ ์ฃผ์–ด์ง„ ํฌ๊ธฐ์˜ ์˜์—ญ์„ ์ž˜๋ผ๋‚ด๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.

  • ์ž…๋ ฅ๋œ ์ธ์ž๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ crop_layer ๊ตฌ์กฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•œ ํ›„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

  • ์ด๋•Œ forward_crop_layer ํ•จ์ˆ˜์™€ backward_crop_layer ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค.

Last updated

Was this helpful?