writing
train_writing
ํจ์ ์ด๋ฆ: train_writing
์ ๋ ฅ:
cfgfile: YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ
weightfile: ์ฌ์ ํ์ต๋ ๋ชจ๋ธ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก๋ฅผ ๋ํ๋ด๋ ๋ฌธ์์ด ํฌ์ธํฐ
๋์:
์ฃผ์ด์ง cfgfile์ ์ฌ์ฉํ์ฌ YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑํ๊ณ , weightfile์ด ์ ๊ณต๋๋ ๊ฒฝ์ฐ ์ฌ์ ํ์ต๋ ๊ฐ์ค์น๋ฅผ ๋ก๋ํฉ๋๋ค.
๊ทธ ํ, ๋ช ์๋ ๋ฐฐ์น ํฌ๊ธฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ์ ๋คํธ์ํฌ๋ฅผ ํ์ต์ํต๋๋ค.
๋งค ์ํฌํฌ ๋์ ๊ฐ์ค์น๋ฅผ ์ ์ฅํ๊ณ , ๋งค 100 ๋ฐฐ์น๋ง๋ค ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
์ค๋ช :
basecfg(cfgfile) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ธ์ ๊ตฌ์ฑ ํ์ผ์์ base ์ด๋ฆ์ ๊ฐ์ ธ์ต๋๋ค.
YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑํ๊ธฐ ์ํด parse_network_cfg(cfgfile) ํจ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
weightfile์ด ์ ๊ณต๋ ๊ฒฝ์ฐ, load_weights(&net, weightfile) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ ํ์ต๋ ๊ฐ์ค์น๋ฅผ ๋ก๋ํฉ๋๋ค.
๋คํธ์ํฌ์ ํ์ต๋ฅ , ๋ชจ๋ฉํ , ๊ฐ์ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
get_paths("figures.list") ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก๊ฐ ํฌํจ ๋ ๋ฆฌ์คํธ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.
load_data_in_thread(args) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ต ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ํฉ๋๋ค.
train_network(net, train) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋คํธ์ํฌ๋ฅผ ํ์ต์ํค๊ณ ์์ค์ ๋ฐํํฉ๋๋ค.
get_current_batch(net) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ฌ ๋ฐฐ์น๋ฅผ ๊ฐ์ ธ์ค๊ณ , max_batches๋ฅผ ์ด๊ณผํ์ง ์๋ ํ ๋คํธ์ํฌ๋ฅผ ๊ณ์ ํ์ตํฉ๋๋ค.
save_weights(net, buff) ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋งค 100 ๋ฐฐ์น๋ง๋ค ์ค๊ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฐฑ์ ๋๋ ํ ๋ฆฌ์ ์ ์ฅํฉ๋๋ค.
epoch๋ฅผ ์ ์ฅํ๊ณ ๋งค ์ํฌํฌ ๋์ ๊ฐ์ค์น๋ฅผ ์ ์ฅํฉ๋๋ค.
test_writing
ํจ์ ์ด๋ฆ: test_writing
์ ๋ ฅ:
cfgfile (char*): YOLO ๋ชจ๋ธ์ ๊ตฌ์ฑ ํ์ผ ๊ฒฝ๋ก
weightfile (char*): YOLO ๋ชจ๋ธ์ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก (optional)
filename (char*): ํ ์คํธํ ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก (optional)
๋์:
์ฃผ์ด์ง YOLO ๋ชจ๋ธ(cfgfile)๊ณผ ๊ฐ์ค์น(weightfile)๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํ์ผ(filename)์์ ์์ผ๋ก ์ด ๋ฌธ์๋ฅผ ์ธ์ํ๋ ํ ์คํธ๋ฅผ ์ํํฉ๋๋ค.
๋ง์ฝ filename์ด ์ฃผ์ด์ง์ง ์์ผ๋ฉด ์ฌ์ฉ์๋ก๋ถํฐ ์ด๋ฏธ์ง ๊ฒฝ๋ก๋ฅผ ์ ๋ ฅ๋ฐ์ต๋๋ค.
์ด๋ฏธ์ง๋ฅผ ์ฒ๋ฆฌํ์ฌ ๋ชจ๋ธ์ ์์ธก์ ์ถ๋ ฅํ๊ณ , OpenCV๋ฅผ ์ฌ์ฉํ์ฌ ์์ธก๋ ์ด๋ฏธ์ง์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ค๋๋ค.
์ค๋ช :
์ด ํจ์๋ YOLO ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์๊ธ์จ ์ธ์์ ํ ์คํธํ๋ ์ฝ๋๋ฅผ ๋ด๊ณ ์์ต๋๋ค.
์ด๋ฏธ์ง๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์ ๋ชจ๋ธ์ ์คํํ์ฌ ์๊ธ์จ๊ฐ ์ด๋ค ๋ฌธ์๋ฅผ ๋ํ๋ด๋์ง ์์ธกํฉ๋๋ค.
์ด ์์ธก๋ ์ด๋ฏธ์ง์ ์๋ณธ ์ด๋ฏธ์ง๋ฅผ ๋น๊ตํ์ฌ ์ถ๋ ฅํฉ๋๋ค.
๋ชจ๋ธ ๊ตฌ์ฑ ํ์ผ(cfgfile)๊ณผ ๊ฐ์ค์น ํ์ผ(weightfile)์ด ํ์ํ๋ฉฐ, ํ์ํ ๊ฒฝ์ฐ ํ ์คํธํ ์ด๋ฏธ์ง ํ์ผ(filename)๋ ์ง์ ํ ์ ์์ต๋๋ค.
run_writing
ํจ์ ์ด๋ฆ: run_writing
์ ๋ ฅ:
argc: intํ ๋ณ์, ๋ช ๋ นํ ๋งค๊ฐ๋ณ์์ ๊ฐ์
argv: charํ ํฌ์ธํฐ ๋ฐฐ์ด, ๋ช ๋ นํ ๋งค๊ฐ๋ณ์
๋์:
์ ๋ ฅ๋ ๋งค๊ฐ๋ณ์์ ๋ฐ๋ผ์ train_writing() ๋๋ test_writing() ํจ์๋ฅผ ํธ์ถํจ
"train" ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ, train_writing() ํจ์๋ฅผ ํธ์ถํ๊ณ ํ์ต์ ์ํํจ
"test" ๋งค๊ฐ๋ณ์๊ฐ ์ ๋ ฅ๋ ๊ฒฝ์ฐ, test_writing() ํจ์๋ฅผ ํธ์ถํ๊ณ ์ด๋ฏธ์ง ํ์ผ์ ๋ถ๋ฅํจ
์ค๋ช :
์ ๋ ฅ๋ ๋งค๊ฐ๋ณ์์ ๊ฐ์๊ฐ 4๋ณด๋ค ์์ ๊ฒฝ์ฐ, ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ถ๋ ฅํ๊ณ ์ข ๋ฃํจ
cfg: charํ ํฌ์ธํฐ ๋ณ์, YOLOv3 ๋ชจ๋ธ์ ์ค์ ํ์ผ ๊ฒฝ๋ก
weights: charํ ํฌ์ธํฐ ๋ณ์, ๋ฏธ๋ฆฌ ํ์ต๋ ๊ฐ์ค์น ํ์ผ ๊ฒฝ๋ก (์ ํ์ )
filename: charํ ํฌ์ธํฐ ๋ณ์, ์ด๋ฏธ์ง ํ์ผ ๊ฒฝ๋ก (์ ํ์ )
Last updated
Was this helpful?