voxel
extract_voxel
ํจ์ ์ด๋ฆ: extract_voxel
์ ๋ ฅ:
lfile: ์ผ์ชฝ ์นด๋ฉ๋ผ ๋น๋์ค ํ์ผ ๊ฒฝ๋ก
rfile: ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ ๋น๋์ค ํ์ผ ๊ฒฝ๋ก
prefix: ์ ์ฅํ ์ด๋ฏธ์ง ํ์ผ ์ด๋ฆ์ ๋ถ์ ์ ๋์ฌ
๋์:
์ด ํจ์๋ ์ผ์ชฝ ์นด๋ฉ๋ผ์ ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ๋ก๋ถํฐ ๋น๋์ค๋ฅผ ์ฝ์ด์ ์ด๋ฏธ์ง๋ฅผ ์ถ์ถํฉ๋๋ค.
์ถ์ถ๋ ์ด๋ฏธ์ง๋ 3D ๋ณผ๋ฅจ์ ๋ง๋ค๊ธฐ ์ํ ์ผ์ชฝ ์นด๋ฉ๋ผ์ ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ์ ์ด๋ฏธ์ง ์์ ๋๋ค.
์ถ์ถ๋ ์ด๋ฏธ์ง๋ ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
์ค๋ช :
OpenCV ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
1920x1080 ํด์๋๋ก ์ด๋ฏธ์ง๋ฅผ ์ถ์ถํฉ๋๋ค.
์ด๋ฏธ์ง ์ถ์ถ ์ ์ผ์ชฝ ์นด๋ฉ๋ผ์ ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ์ ์ด๋ฏธ์ง ์์น๋ฅผ ์กฐ์ ํฉ๋๋ค.
์ด๋ฏธ์ง ์ถ์ถ ์ ์ผ์ชฝ ์นด๋ฉ๋ผ์ ์ค๋ฅธ์ชฝ ์นด๋ฉ๋ผ์ ์ด๋ฏธ์ง ์์ ์์ฑํฉ๋๋ค.
์ด๋ฏธ์ง๋ ํ์ผ๋ก ์ ์ฅ๋ฉ๋๋ค.
์ด๋ฏธ์ง ํ์ผ ์ด๋ฆ์๋ prefix์ ๋ฒํธ๊ฐ ๋ถ์ต๋๋ค.
train_voxel
ํจ์ ์ด๋ฆ: train_voxel
์ ๋ ฅ:
cfgfile: ๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
weightfile: ๋ชจ๋ธ ๊ฐ์ค์น ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฌธ์์ด ํฌ์ธํฐ
๋์:
์ฃผ์ด์ง ๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ(cfgfile)์ ๋ฐํ์ผ๋ก 3D ๊ฐ์ฒด ์ธ์ ๋ชจ๋ธ์ ํ์ตํ๋ ํจ์.
์ด๋ฏธ์ง ๊ฒฝ๋ก๊ฐ ๋ด๊ธด ๋ฆฌ์คํธ(train_images)์์ ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๊ณ , ์ด๋ฅผ ๋ฐํ์ผ๋ก ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๋ค.
๋งค 1000 ์ํญ๋ง๋ค ๊ฐ์ค์น ํ์ผ์ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ(backup_directory)์ ์ ์ฅํ๋ค.
์ค๋ช :
๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ(cfgfile)๋ก๋ถํฐ ๋ชจ๋ธ์ ํ์ฑ(parse_network_cfg)ํ์ฌ ์์ฑํ๋ค.
๋ง์ฝ ๋ชจ๋ธ ๊ฐ์ค์น ํ์ผ(weightfile)์ด ์ฃผ์ด์ก๋ค๋ฉด, ํด๋น ๊ฐ์ค์น๋ฅผ ๋ก๋(load_weights)ํ๋ค.
ํ์ต ์ด๋ฏธ์ง ๊ฒฝ๋ก๊ฐ ๋ด๊ธด ๋ฆฌ์คํธ(train_images)๋ฅผ ๋ก๋ํ๊ณ , ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ์ค๋ ๋(load_data_in_thread)๋ฅผ ์์ฑํ๋ค.
ํ์ต ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ชจ๋ธ์ ํ์ต(train_network)ํ๊ณ , ์์ค(loss)์ ๊ณ์ฐํ๋ค.
1000 ์ํญ๋ง๋ค ๊ฐ์ค์น ํ์ผ์ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ(backup_directory)์ ์ ์ฅํ๋ค(save_weights).
100 ์ํญ๋ง๋ค ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํ๋ค.
๋ชจ๋ธ ํ์ต์ด ์๋ฃ๋๋ฉด ์ต์ข ๊ฐ์ค์น๋ฅผ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํ๋ค.
test_voxel
ํจ์ ์ด๋ฆ: test_voxel
์ ๋ ฅ:
cfgfile: char* ํ์ . YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก.
weightfile: char* ํ์ . YOLO ๋ชจ๋ธ์ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก.
filename: char* ํ์ . ํ ์คํธํ๋ ค๋ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก. ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฐ๊ฑฐ๋ ํ๋ก๊ทธ๋จ ์ธ์๋ก ์ ๋ฌ ๋ฐ์ ์ ์์.
๋์:
์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง YOLO ๋ชจ๋ธ์ ์ด์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ํ ์คํธํ๊ณ ๊ฒฐ๊ณผ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ ํจ์.
์ ๋ ฅ์ผ๋ก ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๊ฐ ์ฃผ์ด์ง๋ฉด ํด๋น ์ด๋ฏธ์ง์ ๋ํ ์์ธก์ ์ํํ๊ณ , ์ ๋ ฅ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ ์์ธก ์ํ.
์์ธก ๊ฒฐ๊ณผ๋ out.png ํ์ผ๋ก ์ ์ฅ๋จ.
์ค๋ช :
YOLO ๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ(cfgfile)์ ํ์ฑํ์ฌ ๋คํธ์ํฌ ๋ชจ๋ธ ์์ฑ.
YOLO ๋ชจ๋ธ ๊ฐ์ค์น(weightfile)๋ฅผ ๋ก๋ํ์ฌ ๋ชจ๋ธ์ ์ ์ฉ.
๋ฐฐ์น ํฌ๊ธฐ๋ฅผ 1๋ก ์ค์ .
์๋(seed) ๊ฐ์ ๊ณ ์ ํ์ฌ ๋์ ์์ฑ๊ธฐ ์ด๊ธฐํ.
์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก(filename)๊ฐ ์ฃผ์ด์ง ๊ฒฝ์ฐ ํด๋น ์ด๋ฏธ์ง ํ์ผ์ ๋ก๋ํ๊ณ , ์ ๋ ฅ์ด ์๋ ๊ฒฝ์ฐ ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์.
์ ๋ ฅ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํ๊ณ , YOLO ๋ชจ๋ธ์ ์ ๋ ฅ ํฌ๊ธฐ์ ๋ง๊ฒ ์กฐ์ (resize) ํจ.
์์ธก ์ํ(network_predict) ๋ฐ ์์ธก ์๊ฐ ์ธก์ .
์์ธก ๊ฒฐ๊ณผ ์ด๋ฏธ์ง(out)๋ฅผ ํ์ผ๋ก ์ ์ฅ.
์ด๋ฏธ์ง ๋ฉ๋ชจ๋ฆฌ ํด์ ๋ฐ ๋ค์ ์ ๋ ฅ ๋๊ธฐ.
filename ๊ฐ์ด ์ฃผ์ด์ง ๊ฒฝ์ฐ ์์ธก ์ํ ํ ์ข ๋ฃ.
run_voxel
ํจ์ ์ด๋ฆ: run_voxel
์ ๋ ฅ:
argc (int): ๋ช ๋ นํ ์ธ์ ๊ฐ์
argv (char **): ๋ช ๋ นํ ์ธ์ ๋ฐฐ์ด
๋์:
์ฃผ์ด์ง ๋ช ๋ นํ ์ธ์์ ๋ฐ๋ผ train_voxel, test_voxel, extract_voxel, validate_voxel ์ค ํ๋๋ฅผ ์คํ
์ค๋ช :
run_voxel ํจ์๋ ์ฃผ์ด์ง ๋ช ๋ นํ ์ธ์์ ๋ฐ๋ผ train_voxel, test_voxel, extract_voxel, validate_voxel ์ค ํ๋๋ฅผ ์คํํ๋ ์ญํ ์ ํฉ๋๋ค.
argc์ argv๋ ๋ช ๋ นํ์์ ์ ๋ ฅ๋ฐ์ ์ธ์์ ๊ฐ์์ ๋ฐฐ์ด์ ์ ๋ฌ๋ฐ์ต๋๋ค.
์คํํ ํจ์์ ํด๋น ํจ์์ ํ์ํ ์ธ์๋ค์ argv ๋ฐฐ์ด์์ ๊ฐ์ ธ์ ์คํ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, argv[2]๊ฐ "train"์ด๋ฉด train_voxel ํจ์๊ฐ ์คํ๋๋ฉฐ, cfg ํ์ผ ๊ฒฝ๋ก์ weight ํ์ผ ๊ฒฝ๋ก๊ฐ ํ์ํฉ๋๋ค.
๋ง์ฝ argv[2]๊ฐ "test"๋ผ๋ฉด test_voxel ํจ์๊ฐ ์คํ๋๋ฉฐ, cfg ํ์ผ ๊ฒฝ๋ก์ weight ํ์ผ ๊ฒฝ๋ก, ํ ์คํธํ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๊ฐ ํ์ํฉ๋๋ค.
"extract" ์ต์ ์ ๊ฒฝ์ฐ์๋ extract_voxel ํจ์๊ฐ ์คํ๋๋ฉฐ, cfg ํ์ผ ๊ฒฝ๋ก, weight ํ์ผ ๊ฒฝ๋ก, ์ถ์ถํ feature map์ด ์๋ ๋ ์ด์ด ์ด๋ฆ์ด ํ์ํฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก "valid" ์ต์ ์ ์ฃผ์ ์ฒ๋ฆฌ๋์ด ์์ต๋๋ค.
Last updated
Was this helpful?