instance-segmenter
train_isegmenter
ํจ์ ์ด๋ฆ: train_isegmenter
์ ๋ ฅ:
char *datacfg: ๋ฐ์ดํฐ ์ค์ ํ์ผ ๊ฒฝ๋ก
char *cfgfile: ๋ชจ๋ธ ์ค์ ํ์ผ ๊ฒฝ๋ก
char *weightfile: ์ฌ์ ํ๋ จ๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
int *gpus: GPU ์ธ๋ฑ์ค ๋ฐฐ์ด
int ngpus: ์ฌ์ฉํ GPU ๊ฐ์
int clear: ๋คํธ์ํฌ๋ฅผ ์ด๊ธฐํํ ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ํ๋๊ทธ (0 ๋๋ 1)
int display: ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ๋ํ๋ด๋ ํ๋๊ทธ (0 ๋๋ 1)
๋์:
์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ค์ ์ผ๋ก ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ํ๋ จํ๋ ํจ์์ด๋ค.
๋คํธ์ํฌ๋ฅผ ์ด๊ธฐํํ๊ณ ์ค์ ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ์ฌ ํ๋ จ์ ์ํํ๋ค.
๋ค์ ๊ณผ์ ์ ์ํํ๋ค:
ํ๋ จ์ ํ์ํ ๋ณ์์ ์ค์ ๊ฐ์ ์ด๊ธฐํํ๋ค.
๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ํ์ต๋ฅ ์ GPU ๊ฐ์๋ก ์กฐ์ ํ๋ค.
๋ฐ์ดํฐ ์ค์ ํ์ผ์์ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ ๊ฒฝ๋ก์ ํ๋ จ ๋ฐ์ดํฐ ๋ฆฌ์คํธ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์จ๋ค.
ํ๋ จ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์จ๋ค.
ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ธฐ ์ํด load_data ํจ์๋ฅผ ํธ์ถํ๋ค.
epoch ์๋ฅผ ๊ณ์ฐํ๊ณ , ์ต๋ ๋ฐฐ์น ์์ ๋๋ฌํ ๋๊น์ง ํ๋ จ์ ๋ฐ๋ณตํ๋ค.
๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ๋คํธ์ํฌ๋ฅผ ํ๋ จํ์ฌ ์์ค ๊ฐ์ ๊ณ์ฐํ๋ค.
display ํ๋๊ทธ๊ฐ ์ค์ ๋ ๊ฒฝ์ฐ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ๋ค.
ํ๊ท ์์ค ๊ฐ์ ์ ๋ฐ์ดํธํ๋ค.
ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ํด์ ํ๋ค.
epoch์ด ๋ณ๊ฒฝ๋์์ ๋๋ง๋ค ๊ฐ์ค์น๋ฅผ ๋ฐฑ์ ํ๋ค.
ํ์ฌ ๋ฐฐ์น๊ฐ 100์ ๋ฐฐ์์ผ ๋๋ง๋ค ๊ฐ์ค์น๋ฅผ ๋ฐฑ์ ํ๋ค.
ํ๋ จ์ด ์๋ฃ๋๋ฉด ์ต์ข ๊ฐ์ค์น๋ฅผ ์ ์ฅํ๋ค.
๋ฉ๋ชจ๋ฆฌ๋ฅผ ํด์ ํ๋ค.
์ค๋ช :
์ด ํจ์๋ ์ฃผ์ด์ง ๋ฐ์ดํฐ์ ์ค์ ์ผ๋ก ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ํ๋ จํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ ๋คํธ์ํฌ๋ฅผ ์ ๋ฐ์ดํธํ์ฌ ์์ค์ ์ต์ํํ๋ ๊ฒ์ด ๋ชฉํ์ด๋ค.
ํ๋ จ ๋์ค ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ ์ ์์ผ๋ฉฐ, ํ๋ จ์ด ์๋ฃ๋๋ฉด ์ต์ข ๊ฐ์ค์น๋ฅผ ์ ์ฅํ๋ค.
predict_isegmenter
ํจ์ ์ด๋ฆ: predict_isegmenter
์ ๋ ฅ:
char *datafile: ๋ฐ์ดํฐ ํ์ผ ๊ฒฝ๋ก
char *cfg: ๋คํธ์ํฌ ์ค์ ํ์ผ ๊ฒฝ๋ก
char *weights: ๋คํธ์ํฌ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
char *filename: ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก (์ต์ )
๋์:
์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ธกํ๋ ํจ์์ด๋ค.
์ฃผ์ด์ง ๋คํธ์ํฌ ์ค์ ํ์ผ๊ณผ ๊ฐ์ค์น ํ์ผ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ์ค์ ํ๋ค.
๋ฐ๋ณต์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ ํ๋ก๊ทธ๋จ ์คํ ์ ์ธ์๋ก ์ ๋ฌ๋๊ฑฐ๋ ์ฌ์ฉ์์๊ฒ ์ ๋ ฅ๋ฐ์ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค:
ํ์ผ๋ช ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ํด๋น ํ์ผ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ก ์ฌ์ฉํ๋ค. ํ์ผ๋ช ์ด ์ฃผ์ด์ง์ง ์์ ๊ฒฝ์ฐ ์ฌ์ฉ์์๊ฒ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ๋๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ์ปฌ๋ฌ ์ด๋ฏธ์ง๋ก ๋ก๋ํ๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋คํธ์ํฌ์ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ฆฌ์ฌ์ด์งํ๋ค.
๋ฆฌ์ฌ์ด์ง๋ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋คํธ์ํฌ๋ก ์์ธก์ ์ํํ๋ค.
๋คํธ์ํฌ์ ์ถ๋ ฅ์ ์๊ฐํํ์ฌ ํ์ํ๋ค.
์์ธก ๊ฒฐ๊ณผ์ ์ํ ์๊ฐ์ ์ถ๋ ฅํ๋ค.
์ฌ์ฉํ ์ด๋ฏธ์ง์ ์๊ฐํ ์ด๋ฏธ์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ๋ค.
ํ์ผ๋ช ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ๋ฐ๋ณต๋ฌธ์ ์ข ๋ฃํ๋ค.
์ค๋ช :
์ด ํจ์๋ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ธกํ๋ ํจ์์ด๋ค.
์ฃผ์ด์ง ๋คํธ์ํฌ ์ค์ ํ์ผ๊ณผ ๊ฐ์ค์น ํ์ผ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ์ค์ ํ๋ค.
์ฌ์ฉ์์๊ฒ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ๊ฑฐ๋ ํ๋ก๊ทธ๋จ ์คํ ์ ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ก ์ฌ์ฉํ๋ค.
์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋คํธ์ํฌ์ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ฆฌ์ฌ์ด์งํ ํ ๋คํธ์ํฌ๋ก ์์ธก์ ์ํํ๋ค.
์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๊ณ ์ํ ์๊ฐ์ ๊ณ์ฐํ์ฌ ํ์ํ๋ค.
์ด ํจ์๋ ๋ฐ๋ณต์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ธกํ๋๋ฐ ์ฌ์ฉ๋๋ฉฐ, ์ ๋ ฅ ํ์ผ๋ช ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ์๋ ๋จ์ผ ์ด๋ฏธ์ง์ ๋ํ ์์ธก๋ง ์ํํ๋ค.
demo_isegmenter
ํจ์ ์ด๋ฆ: demo_isegmenter
์ ๋ ฅ:
char *datacfg: ๋ฐ์ดํฐ ์ค์ ํ์ผ ๊ฒฝ๋ก
char *cfg: ๋คํธ์ํฌ ์ค์ ํ์ผ ๊ฒฝ๋ก
char *weights: ๋คํธ์ํฌ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
int cam_index: ์นด๋ฉ๋ผ ์ธ๋ฑ์ค
const char *filename: ๋น๋์ค ํ์ผ ๊ฒฝ๋ก (์ต์ )
๋์:
์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ์ ๋ฐ๋ชจ ์คํ์ ์ ์ดํ๋ ํจ์์ด๋ค.
์ฃผ์ด์ง ๋ฐ์ดํฐ ์ค์ ํ์ผ, ๋คํธ์ํฌ ์ค์ ํ์ผ, ๊ฐ์ค์น ํ์ผ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ์ค์ ํ๋ค.
๋น๋์ค ์คํธ๋ฆผ ๋๋ ์น์บ ์ ์ด์ด ๋ฐ๋ชจ๋ฅผ ์คํํ๋ค.
๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค:
์๊ฐ ์ธก์ ์ ์์ํ๋ค.
์คํธ๋ฆผ์ผ๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์จ๋ค.
๊ฐ์ ธ์จ ์ด๋ฏธ์ง๋ฅผ ๋คํธ์ํฌ์ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ง๊ฒ ๋ฆฌ์ฌ์ด์งํ๋ค.
๋คํธ์ํฌ๋ก ์ด๋ฏธ์ง๋ฅผ ์ ๋ฌํ์ฌ ์์ธก์ ์ํํ๋ค.
ํ๋ฉด์ ์ง์ฐ๊ณ FPS ๊ฐ์ ์ถ๋ ฅํ๋ค.
๋คํธ์ํฌ์ ์ถ๋ ฅ์ ์๊ฐํํ์ฌ "Segmenter"๋ผ๋ ์ฐฝ์ ํ์ํ๋ค.
์ฌ์ฉํ ์ด๋ฏธ์ง์ ์๊ฐํ ์ด๋ฏธ์ง๋ฅผ ๋ฉ๋ชจ๋ฆฌ์์ ํด์ ํ๋ค.
์๊ฐ ์ธก์ ์ ์ข ๋ฃํ๊ณ FPS ๊ฐ์ ๊ณ์ฐํ๋ค.
์ค๋ช :
์ด ํจ์๋ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ์ ๋ฐ๋ชจ ์คํ์ ์ ์ดํ๋ค.
์ฃผ์ด์ง ๋ฐ์ดํฐ ์ค์ ํ์ผ, ๋คํธ์ํฌ ์ค์ ํ์ผ, ๊ฐ์ค์น ํ์ผ์ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ๋ก๋ํ๊ณ ์ค์ ํ๋ค.
๋น๋์ค ์คํธ๋ฆผ ๋๋ ์น์บ ์์ ํ๋ ์์ ๊ฐ์ ธ์์ ๋คํธ์ํฌ๋ฅผ ํตํด ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ์ ์ํํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐํํ์ฌ ๋ณด์ฌ์ค๋ค.
์ด ํจ์๋ OpenCV๊ฐ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฒฝ์ฐ์๋ง ์ปดํ์ผ๋๋ค.
run_isegmenter
ํจ์ ์ด๋ฆ: run_isegmenter
์ ๋ ฅ:
int argc: ๋ช ๋ นํ ์ธ์์ ๊ฐ์
char **argv: ๋ช ๋ นํ ์ธ์์ ๋ฐฐ์ด
๋์:
์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ์ ์คํ์ ์ ์ดํ๋ ํจ์์ด๋ค.
๋ช ๋ นํ ์ธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ จ, ํ ์คํธ, ๋ฐ๋ชจ ์ค ์ด๋ค ๋์์ ์ํํ ์ง ๊ฒฐ์ ํ๋ค.
๋ค์ ๊ณผ์ ์ ์ํํ๋ค:
๋ช ๋ นํ ์ธ์๊ฐ ๋ถ์กฑํ ๊ฒฝ์ฐ ์ฌ์ฉ๋ฒ์ ์ถ๋ ฅํ๊ณ ์ข ๋ฃํ๋ค.
GPU ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ ธ์จ๋ค. "-gpus" ํ๋๊ทธ๊ฐ ์ ๊ณต๋ ๊ฒฝ์ฐ ํด๋น GPU ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
ํ๋ จ, ํ ์คํธ ๋๋ ๋ฐ๋ชจ๋ฅผ ์ํํ GPU์ ๊ฐ์์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ๋ค.
์นด๋ฉ๋ผ ์ธ๋ฑ์ค๋ฅผ ๊ฐ์ ธ์จ๋ค.
"-clear" ํ๋๊ทธ๋ฅผ ์ฐพ์ ๋คํธ์ํฌ๋ฅผ ์ด๊ธฐํํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
"-display" ํ๋๊ทธ๋ฅผ ์ฐพ์ ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ํ์ํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ๋ค.
๋ฐ์ดํฐ, ์ค์ ๋ฐ ๊ฐ์ค์น ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ์ ธ์จ๋ค.
"test" ๋ช ๋ น์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ํ ์คํธํ๋ predict_isegmenter ํจ์๋ฅผ ํธ์ถํ๋ค.
"train" ๋ช ๋ น์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ํ๋ จํ๋ train_isegmenter ํจ์๋ฅผ ํธ์ถํ๋ค.
"demo" ๋ช ๋ น์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ๋ฅผ ๋ฐ๋ชจํ๋ demo_isegmenter ํจ์๋ฅผ ํธ์ถํ๋ค.
์ค๋ช :
์ด ํจ์๋ ์ด๋ฏธ์ง ์ธ๊ทธ๋ฉํ ์ด์ ๋คํธ์ํฌ์ ์คํ์ ์ ์ดํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
์ฃผ์ด์ง ๋ช ๋ นํ ์ธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ จ, ํ ์คํธ, ๋ฐ๋ชจ ์ค ์ด๋ค ๋์์ ์ํํ ์ง ๊ฒฐ์ ํ๋ค.
ํ๋ จ, ํ ์คํธ ๋๋ ๋ฐ๋ชจ์ ํ์ํ ๋ฐ์ดํฐ์ ์ค์ ํ์ผ ๊ฒฝ๋ก, ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก ๋ฑ์ ์ธ์๋ก ๋ฐ์ ํด๋น ๊ธฐ๋ฅ์ ํธ์ถํ๋ค.
Last updated
Was this helpful?