regressor
train_regressor
ํจ์ ์ด๋ฆ: train_regressor
์ ๋ ฅ:
datacfg: char ํ์์ ๋ฐ์ดํฐ ํ์ผ ๊ฒฝ๋ก
cfgfile: char ํ์์ ๋คํธ์ํฌ ์ค์ ํ์ผ ๊ฒฝ๋ก
weightfile: char ํ์์ ๋ฏธ๋ฆฌ ํ์ต๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
gpus: int ๋ฐฐ์ด ํ์์ GPU ๋ฒํธ
ngpus: int ํ์์ GPU ๊ฐ์
clear: int ํ์์ ํด๋ฆฌ์ด ์ฌ๋ถ
๋์:
์ฃผ์ด์ง ๋ฐ์ดํฐ ํ์ผ, ๋คํธ์ํฌ ์ค์ ํ์ผ, ๋ฏธ๋ฆฌ ํ์ต๋ ๊ฐ์ค์น ํ์ผ, GPU ๋ฒํธ ๋ฐ ๊ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๊ท ๋ชจ๋ธ์ ํ์ต์ํต๋๋ค.
์ด ํจ์๋ YOLO ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํ์ต์ ์ํํฉ๋๋ค.
ํ์ต ์ค์๋ ๋คํธ์ํฌ์ ํ์ต๋ฅ , ๋ชจ๋ฉํ , ๊ฐ์ ๋ฐ ๋ฐ์ดํฐ ๊ฒฝ๋ก ๋ฑ์ ์ ๋ณด๊ฐ ํ์๋ฉ๋๋ค.
์ ๋ ฅ์ ์ค๋ช ํ ๋:
char ํ์์ ๋ฐ์ดํฐ ํ์ผ ๊ฒฝ๋ก: ํ์ต์ ์ฌ์ฉ๋ ๋ฐ์ดํฐ ํ์ผ์ ๊ฒฝ๋ก
char ํ์์ ๋คํธ์ํฌ ์ค์ ํ์ผ ๊ฒฝ๋ก: ๋คํธ์ํฌ ์ค์ ํ์ผ์ ๊ฒฝ๋ก
char ํ์์ ๋ฏธ๋ฆฌ ํ์ต๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก: ๋ฏธ๋ฆฌ ํ์ต๋ ๊ฐ์ค์น ํ์ผ์ ๊ฒฝ๋ก
int ๋ฐฐ์ด ํ์์ GPU ๋ฒํธ: ์ฌ์ฉํ GPU์ ๋ฒํธ
int ํ์์ GPU ๊ฐ์: ์ฌ์ฉํ GPU์ ๊ฐ์
int ํ์์ ํด๋ฆฌ์ด ์ฌ๋ถ: 1์ด๋ฉด ์ด์ ์ ํ์ต ๊ฒฐ๊ณผ๋ฅผ ์ง์ฐ๊ณ ์๋ก์ด ํ์ต์ ์์ํฉ๋๋ค. 0์ด๋ฉด ์ด์ ์ ํ์ต ๊ฒฐ๊ณผ๋ฅผ ์ ์งํ๊ณ ์๋ก์ด ํ์ต์ ์์ํฉ๋๋ค.
predict_regressor
ํจ์ ์ด๋ฆ: predict_regressor
์ ๋ ฅ:
cfgfile: ์ ๊ฒฝ๋ง ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
weightfile: ํ์ต๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
filename: ์ ๋ ฅ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ (์ ํ์ )
๋์:
์ด ํจ์๋ cfgfile๊ณผ weightfile์ ์ฌ์ฉํ์ฌ ํ์ต๋ ํ๊ท ์ ๊ฒฝ๋ง์ ๋ก๋ํฉ๋๋ค.
์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅํ๊ฑฐ๋ ํ์ผ ์ด๋ฆ์ด ์ด๋ฏธ ํจ์ ํธ์ถ ์ ์ ๊ณต๋์๋ค๋ฉด, ํจ์๋ ํด๋น ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ ์ ๊ฒฝ๋ง์ ํตํด ์์ธก์ ์ํํฉ๋๋ค. ์์ธก ๊ฒฐ๊ณผ๋ ์ฝ์์ ์ถ๋ ฅ๋ฉ๋๋ค.
์ค๋ช :
์ด ํจ์๋ Darknet ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํจ์์ ๋๋ค.
์ด ํจ์๋ ํ๊ท ๋ฌธ์ ๋ฅผ ํธ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ ๊ฒฝ๋ง ๋ชจ๋ธ์ ๋ก๋ํ๊ณ , ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ ํด๋น ์ด๋ฏธ์ง๋ฅผ ์์ธกํฉ๋๋ค.
์ด ํจ์๋ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ์๋ ์๊ณ , ํจ์๋ฅผ ํธ์ถํ๋ ์์ ์์ ์ด๋ฏธ ํ์ผ ์ด๋ฆ์ด ์ ๊ณต๋ ๊ฒฝ์ฐ์๋ ํ์ผ ์ด๋ฆ์ ์ธ์๋ก ์ ๋ฌํ ์ ์์ต๋๋ค.
์ด ํจ์๋ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ , letterbox_image ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ๋ชจ๋ธ์ ๋ง๋ ํฌ๊ธฐ๋ก ๋ณํํ ๋ค์, ๋คํธ์ํฌ๋ฅผ ํตํด ์์ธก์ ์ํํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, ์์ธก ๊ฒฐ๊ณผ๋ฅผ ์ฝ์์ ์ถ๋ ฅํฉ๋๋ค.
demo_regressor
ํจ์ ์ด๋ฆ: demo_regressor
์ ๋ ฅ:
datacfg: char ํ์์ ๋ฐ์ดํฐ ํ์ผ ๊ฒฝ๋ก
cfgfile: char ํ์์ ๋คํธ์ํฌ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
weightfile: char ํ์์ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก
cam_index: int ํ์์ ์นด๋ฉ๋ผ ์ธ๋ฑ์ค (0 ์ด์)
filename: char ํ์์ ๋์์ ํ์ผ ๊ฒฝ๋ก ๋๋ NULL
๋์:
OpenCV ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์นด๋ฉ๋ผ ๋๋ ๋์์์์ ์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ฐ์์์,
๋ฐ์์จ ์ด๋ฏธ์ง๋ฅผ ๋คํธ์ํฌ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ง๊ฒ ์ค์์ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ณ ๊ทธ๋ ์ด์ค์ผ์ผ๋ก ๋ณํํ์ฌ,
๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ธกํ๊ณ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ฉฐ,
์์ธก ์๋๋ฅผ ๊ณ์ฐํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
์ค๋ช :
์ ๋ ฅ๋ ํ์ผ ๊ฒฝ๋ก๋ก๋ถํฐ ๋ฐ์ดํฐ, ๊ตฌ์ฑ ๋ฐ ๊ฐ์ค์น ํ์ผ์ ์ฝ์ด์ ๋คํธ์ํฌ๋ฅผ ์์ฑํ๋ค.
์นด๋ฉ๋ผ ์ธ๋ฑ์ค๊ฐ 0๋ณด๋ค ํฐ ๊ฒฝ์ฐ๋ ํด๋น ์ธ๋ฑ์ค์ ์นด๋ฉ๋ผ๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ค๊ณ , filename ์ธ์๊ฐ NULL์ด ์๋ ๊ฒฝ์ฐ๋ ํด๋น ํ์ผ๋ก๋ถํฐ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์จ๋ค.
๋ฐ์์จ ์ด๋ฏธ์ง๋ฅผ ์ค์์ ๊ธฐ์ค์ผ๋ก ์๋ฅด๊ณ ๊ทธ๋ ์ด์ค์ผ์ผ๋ก ๋ณํํ๋ค.
๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์์ธกํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค.
๊ฒฐ๊ณผ๋ ํด๋์ค ๋ ์ด๋ธ๊ณผ ํด๋น ํด๋์ค์ ๋ํ ์์ธก ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
์์ธก ์๋๋ฅผ ๊ณ์ฐํ์ฌ ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
run_regressor
ํจ์ ์ด๋ฆ: run_regressor
์ ๋ ฅ:
int argc: ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ ์ธ์์ ๊ฐ์
char **argv: ํ๋ก๊ทธ๋จ ์คํ ์ ์ ๋ฌ๋ ์ธ์๋ค์ ๋ฐฐ์ด
๋์:
์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ธ์๋ค์ ๊ธฐ๋ฐ์ผ๋ก, regressor๋ฅผ ํ ์คํธ, ํ๋ จ, ๋ฐ๋ชจ ์คํํ๋ ํจ์
์ธ์๋ก "test"๊ฐ ์ ๋ฌ๋ ๊ฒฝ์ฐ predict_regressor() ํจ์๋ฅผ ์คํํ์ฌ regressor ๋ชจ๋ธ์ ํ ์คํธ
์ธ์๋ก "train"์ด ์ ๋ฌ๋ ๊ฒฝ์ฐ train_regressor() ํจ์๋ฅผ ์คํํ์ฌ regressor ๋ชจ๋ธ์ ํ๋ จ
์ธ์๋ก "demo"๊ฐ ์ ๋ฌ๋ ๊ฒฝ์ฐ demo_regressor() ํจ์๋ฅผ ์คํํ์ฌ regressor ๋ชจ๋ธ์ ๋ฐ๋ชจ ์คํ
"-gpus" ์ธ์๋ฅผ ํตํด GPU ID๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌ
"-c" ์ธ์๋ฅผ ํตํด ์นด๋ฉ๋ผ ์ฅ์น์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ ์ ์์
"-clear" ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด, ํ๋ จ ์ ์ด์ ์ ์ ์ฅ๋ ๋ชจ๋ ๊ธฐ๋ก ์ญ์
์ธ์๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ ํ์ผ, ์ค์ ํ์ผ, ๊ฐ์ค์น ํ์ผ, ํ์ผ ์ด๋ฆ ๋ฑ์ ์ ์ ํ ํ์ฑํ์ฌ ์ฌ์ฉ
์ค๋ช :
run_regressor() ํจ์๋ Darknet ํ๋ ์์ํฌ์ regressor ๋ชจ๋ธ์ ํ ์คํธ, ํ๋ จ, ๋ฐ๋ชจ ์คํํ๋ ํจ์์ ๋๋ค.
์ ๋ ฅ์ผ๋ก ๋ฐ์ ์ธ์๋ค์ ๊ธฐ๋ฐ์ผ๋ก, ๊ฐ๊ฐ์ ๋์์ ์ํํฉ๋๋ค.
"-gpus" ์ธ์๋ฅผ ํตํด GPU ID๋ฅผ ์ค์ ํ ์ ์์ผ๋ฉฐ, ์ผํ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์์ด ํํ๋ก ์ ๋ฌํ ์ ์์ต๋๋ค. ๋ง์ฝ ์ด ์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ์ ์ผ๋ก GPU 0๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
"-c" ์ธ์๋ฅผ ํตํด ์นด๋ฉ๋ผ ์ฅ์น์ ์ธ๋ฑ์ค๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. ์ด ์ธ์๊ฐ ์ ๋ฌ๋์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ๊ฐ 0์ ์ฌ์ฉํฉ๋๋ค.
"-clear" ์ธ์๋ฅผ ์ ๋ฌํ๋ฉด, ํ๋ จ ์ ์ด์ ์ ์ ์ฅ๋ ๋ชจ๋ ๊ธฐ๋ก์ ์ญ์ ํฉ๋๋ค.
์ธ์๋ก ์ ๋ฌ๋ ๋ฐ์ดํฐ ํ์ผ, ์ค์ ํ์ผ, ๊ฐ์ค์น ํ์ผ, ํ์ผ ์ด๋ฆ ๋ฑ์ ์ ์ ํ ํ์ฑํ์ฌ ์ฌ์ฉํฉ๋๋ค. ์ด ํจ์๋ predict_regressor(), train_regressor(), demo_regressor() ํจ์๋ฅผ ํธ์ถํ์ฌ regressor ๋ชจ๋ธ์ ํ ์คํธ, ํ๋ จ, ๋ฐ๋ชจ ์คํํฉ๋๋ค.
Last updated
Was this helpful?