์๋ ํ์ธ์ ์ฌ๋ฌ๋ถ!
๋๋ผ์ด ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค!
9000๊ฐ์ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ๋ถ๋ฅํ ์ ์๋ YOLO9000 ๋ชจ๋ธ์ ์ฐพ๊ณ ์์ต๋๋ค.
YOLO 9000 cfg
์ฐพ์ ์ ์์ต๋๋ค.
์๋ฌด๋ ๋์์ฃผ์ธ์?
> find . -name '*.cfg' -exec cat {} \; | grep "classes"
classes=4
classes=20
classes=80
classes=2
classes=4
classes=20
classes=20
classes=4
classes=4
classes=20
classes=4
classes=2
classes=80
classes=4
classes=20
classes=80
classes=20
classes=20
classes=80
classes=9000
์ ๊ฐ์ ๊ฒ์ ๊ธฐ๋ํ์ต๋๋ค.
๊ตฌ์ฑ์ ์ฌ๊ธฐ , ์์ฑ์๊ฐ YOLO9000 ๊ฐ์ค์น ํ์ผ์ ์ ๊ณตํ์ง ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋น ๋ฅธ ๋ต๋ณ ๊ฐ์ฌํฉ๋๋ค! ๋๋ weight9000์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ด๊ณ ๋ค๋ฅธ ์ฌ๋๋ค์ ๋๊ธฐ ์ํด ์ฌ๊ธฐ์ ๊ฒ์ํ ๊ฒ์ ๋๋ค.
๊ฐ์ค์น ํ์ผ์ ์ฌ๊ธฐ: http://pjreddie.com/media/files/yolo9000.weights
์ด ์์ ์ ์ํ ํ์ต๋๊น? weights ํ์ผ๊ณผ config ํ์ผ์ ๋ฃ๊ณ 9k.names ํ์ผ๋ ๋ค์ด๋ก๋ํ์ต๋๋ค. ์ฒ๋ฆฌ ์๊ฐ์ ๊ทธ๋ฆฌ ์ค๋ ๊ฑธ๋ฆฌ์ง ์์์ง๋ง ์ฌํ ์ฒ๋ฆฌ๋ ์ผ๋ฐ yolo.cfg ๋ฐ yolo.weights ์ค์ ๋ณด๋ค ์ฝ 10๋ฐฐ ๋ ์ค๋ ๊ฑธ๋ ธ์ต๋๋ค. ๊ฒฐ๊ตญ ๋ฐํ ์ด๋ฏธ์ง์๋ ๊ฒฝ๊ณ ์์๊ฐ ๋ํ๋์ง ์์์ต๋๋ค. ๋ด๊ฐ ๋ญ๊ฐ ์๋ชปํ๊ณ ์์ต๋๊น?
yolo9000.cfg
๋ณด๋ ๋ ํด์ผ ํ ์ผ์ด ์์ต๋๋ค. yolo9000
๋ ์ผ๋ฐ์ ์ธ softmax๊ฐ ์๋๋ผ ๊ทธ๋ฃนํ๋ softmax๋ฅผ ์ํํฉ๋๋ค. ์ง๊ธ์ ๋งค์ฐ ๋ฐ๋น ์ ๊ทธ ์ผ์ ํ๋ ค๊ณ ๋
ธ๋ ฅํ๊ฒ ์ง๋ง ์ ์ด๋ ์ด๋ฒ ์ฃผ์ ๋ค์ ์ฃผ์๋ ๊ทธ๋ฌ์ง ์์ ๊ฒ์
๋๋ค.
๋ค ์ ํ ๊ฑฑ์ ํ์ง ๋ง์ธ์. ์ด๋ฌํ ๋ฌธ์ ์ ๋ํ ๊ทํ์ ์๋ต ์๊ฐ์ ๋งค์ฐ ๋น ๋ฆ ๋๋ค. :) ์ด ์์ ์ ํฌ์ ํ ๋ชจ๋ ์์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค. ์ ๋ง ๊น๋ํ ํ๋ก์ ํธ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ์ผ์ผํค๋ ์๋ชป๋ ์ผ์ ํ๊ณ ์์ง ์์์ง ํ์ธํ๊ณ ์ถ์์ต๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ์๋๋ฅผ ํ์๋ ์์ต๋๋ค.
์์์ด ์๋์?
๋๋ bagshaw์ ๊ฐ์ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
์ฌํ ์ฒ๋ฆฌ ์๋๊ฐ 10๋ฐฐ ๋๋ฆฌ๊ณ ๊ฒฝ๊ณ ์์๊ฐ ์์ต๋๋ค.
cf ํ์ผ์ ๋ณ๊ฒฝํด์ผ ํ๊ณ ์ด๋ป๊ฒ ํด์ผ ํฉ๋๊น?
๊ฐ์ฌ!
@thtrieu ํ์ฌ๋ก์๋ darkflow์ YOLO 9000 ๊ธฐ๋ฅ์ด ์๋ค๊ณ ์๊ฐํ๊ธฐ ๋๋ฌธ์ ํด๊ฒฐ๋ ๋๊น์ง ์ด ๋ฌธ์ ๋ฅผ ๋ค์ ์ด ์ ์์ต๋๊น?
์ ๋ ์ ๋ ผ๋ฌธ ํ๋ก์ ํธ์ YOLO9000์ ์ฌ์ฉํ ๊ฒ ๊ฐ์ต๋๋ค(๋น๋ก ํฌ๊ฒ ์กฐ์ ํ๊ฒ ์ง๋ง). ์ด๊ฒ์ด YOLOv2์ ์ ์ผํ ํ ์ํ๋ก์ฐ ๊ตฌํ์ด๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๊ธฐ๋ฐ์ผ๋ก ์ฌ์ฉํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. ๊ตฌํ์ด ์๋ฃ๋๋ฉด ์ถ๊ฐํ๊ฒ ์ต๋๋ค. ํ์ง๋ง ๋ช ์ฃผ๊ฐ ๋ ๊ฑธ๋ฆด ๊ฒ์ด๋ฏ๋ก ๋ค๋ฅธ ์ฌ๋์ด ๋ ๋นจ๋ฆฌ ์๊ฐ์ ๋ธ๋ค๋ฉด ์ ์๊ฒ๋ ํฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค! ;)
์์ผ๋ก ๋ฉฐ์น ๋์ ์๊ฐ์ด ์์ต๋๋ค. ํ์ง๋ง ML์ ๋ํ ์ดํด์ ์ด ์ฅ๋ฉด ๋ค์์ ์ค์ ๋ก ์ผ์ด๋๋ ์ผ์ ๋ํ ์ดํด๋ ๋งค์ฐ ์์ต๋๋ค. YOLO 9000์ ์๋์ํค๊ธฐ ์ํด ๋ฌด์์ ํด์ผ ํ๋์ง ์ ํํ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. ๋๋ฌด ๋ณต์กํ์ง ์์ ๊ฒฝ์ฐ ๋๊ตฐ๊ฐ๊ฐ ์ํํด์ผ ํ ์์ ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ ์ ์๊ณ ์ ๊ฐ ์๋ํด ๋ณด๊ฒ ์ต๋๋ค(๋งค์ฐ ๋ณต์กํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ด ๊ท์ฐฎ๊ฒ ํ์ง ๋ง์ญ์์ค. ๋๋ ๋ด๊ฐ ์์ฃผ ๋ฉ๋ฆฌ ๊ฐ์ง ์์ฌ ์ค๋ฝ๋ค :) )
@abagshaw ํด์ผ ํ ์ผ์ .cfg
์์ ๋ค์ ๋งค๊ฐ๋ณ์๋ฅผ ์ดํดํ๋ ๊ฒ์
๋๋ค.
random=1
tree=data/9k.tree
map = data/coco9k.map
์ด๊ฒ๋ค์ ํ์ฌ ์ฝ๋์ ์ํด meta
dict๋ก ์ฝํ์ง ๊ฒ์
๋๋ค. ์์ ์ด ํ์ํ ์ ์ผํ ์ฝ๋๋ ์ถ๋ ฅ ํ
์๋ฅผ ํด์ํ๊ธฐ ์ํด ํ์ฌ meta['random'], meta['tree'], meta['map']
๋ฅผ ๊ณ ๋ คํ์ง ์๋ ํฌ์คํธ ํ๋ก์ธ์ค ํจ์์
๋๋ค. ๊ฒฝ๊ณ ์์๋ฅผ ๊ทธ๋ฆฝ๋๋ค.
๊ทธ๋ฌ๋ ์ด softmax์ ๋ํ backpropagation๊ณผ softmax์ ์์ ํ ๋ค๋ฅธ ๊ตฌํ์ด ํ์ํ์ง ์์๊น์? (backprop์ ๊ด๋ จ๋ softmax ๋ ธ๋์์๋ง ์คํ๋์ด์ผ ํฉ๋๊น?)
๋ค, ์ฃ์กํฉ๋๋ค. ์ ์๊ฐ์๋ ์ด๊ฒ ์ข ๊ณผํ ๊ฒ ๊ฐ์์. ๋๋ https://github.com/pjreddie/darknet/commit/d2dece3df743c97f2cfbb9bbf0dd0449a8730cec๋ฅผ ํตํด ๋น์งํ๊ณ ์์๊ณ ๊ฑฐ๊ธฐ์์ ๋ด๊ฐ ์ดํดํ์ง ๋ชปํ๋ ๋ง์ ์ผ์ด ์ผ์ด๋๊ณ ์์ต๋๋ค. ๊ณ์ ์ฐ๋ฌ๋ณด๊ฒ ์ง๋ง ๋ฉ๋ฆฌ ๊ฐ ๊ฒ ๊ฐ์ง ์๋ค์.
์ด์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ต๋๊น?
๋ค ์ฃ์กํฉ๋๋ค. ๊ทธ๋ฅ tensorflow์์ ๋ ๋น ๋ฅธ RCNN์ yolo9000 ๋ถ๋ฅ ๊ณ์ธต์ ๋ถ์ด๋ ๊ฒ์ด ๋ ๋น ๋ฅผ ๊ฒ์ด๋ผ๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ๋ ผ๋ฌธ์ด ๋๋๋ฉด ๊ฐ์ด ์ทจ๋ฏธ์ํ์ ํด๋ณผ ์๋ ์๊ฒ ์ง๋ง, 4๊ฐ์์ ๋ ์ ๊ฐ ๊ฒ ๊ฐ์์ ;)
๋๋ํธ - ๋๋ฌด ๋์ฉ๋๋ค. ์ด ์ ์ฒด WordNet ํธ๋ฆฌ ๋ถ๋ฅ ์์ ์ด yolo9000์์ ์๋ํ๋ ๋ฐฉ์์ ๋ํด ๋จธ๋ฆฌ๋ฅผ ์ธ๋งค๊ณ ์์ต๋๋ค. ์ด ๋ด์ฉ์ ๋ ์ ์ดํดํ์ฌ ๋์์ด ๋์์ผ๋ฉด ํฉ๋๋ค. ๋๊ตฐ๊ฐ ๊ณง ์ด ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์๊ฐ์ด ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค. :)
์ฌ๋ฌ๋ถ, ์ ๋ YOLO 9000์ ์ํ ์ ์ฅ์๋ฅผ ๋ง๋ค์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ฌ๊ธฐ์ ์ค๋ช ๋์ด ์์ต๋๋ค. ํ์ธ ํด๋ด:
https://github.com/philipperemy/yolo-9000
darkflow ๋์ darknet์ ์ฌ์ฉํ์ง๋ง ์ด์ํ๊ธฐ๊ฐ ๊ฝค ์ฌ์ธ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค.
@abagshaw @TheLaurens @saiprabhakar @thtrieu @frey123
@philipperemy ๊ฐ์ฌํฉ๋๋ค. ์ ๊ฐ ๋์น๊ณ ์๋ ๋ถ๋ถ์ด ์์ ์ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ด ์ฐ๋ฆฌ๊ฐ darkflow์์ YOLO9000์ ๊ตฌํํ๋ ๋ฐ ์ด๋ป๊ฒ ๋ ๊ฐ๊น์์ก๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
YOLO9000์ darkflow๋ก ์ด์ํ๊ณ ์ถ๋ค๋ฉด ๊ต์ฅํ ๊ฒ์ ๋๋ค. :)
@abagshaw ๊ฐ darknet์์ ์๋ํ๋๋ก ํ๋ ๊ฒ์ด ์ฒซ ๋ฒ์งธ ๋จ๊ณ์์ต๋๋ค. ์ด์ darkflow์์ ์๋ํ๊ฒ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์ง์คํ ๊ฒ์ ๋๋ค!
@philipperemy ์ข์์! ์ฐ๋ฆฌ์๊ฒ ๊ณ์ ์๋ ค์ค :)
@philipperemy darkflow ์์ YOLO9000์ด ์๋ํ๋๋ก ํ๋ ๋ฐ ์ง์ ์ด ์์ต๋๊น? :)
์์ง ํฐ ์ง์ ์ด ์์ด ์ฃ์กํฉ๋๋ค! ์ง๊ธ์ ์ผ์ด ๋ฐ๋น ์ :)
๊ฐ์ฌํฉ๋๋ค.
์ด ์ฃผ์ ์ ๊ด๋ จ๋ ๋ช ๊ฐ์ง ์ง๋ฌธ์ ํด๋ ๋ ๊น์?
ํ์ฌ yolo.cfg๋ฅผ ๋ณ๊ฒฝํ์ฌ 2๊ฐ์ ํด๋์ค๋ฅผ ๋ถ๋ฅํฉ๋๋ค. ๋ฌด๊ฒ๋ฅผ ์ํด ๋๋ yolo.weights๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ชจ๋ธ์ ํ๋ จ์ํจ ํ์๋ ๊ฝค ์ ์๋ํฉ๋๋ค.
Q1: ์ด ๋ฌธ์ ์์ ํด๋์ค ์์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ค์น๊ฐ ํ์ํ ๊ฒ ๊ฐ์ต๋๋ค. ๋๋ yolo.weights๊ฐ ์ ์ด๋ 20๊ฐ์ ํด๋์ค์ ์ฌ์ฉ๋๋ค๋ ๊ฒ์ ๊ธฐ์ตํฉ๋๋ค. ๋ด ๋ง์ด ๋ง์?
Q2: ์ด yolo.weights๋ฅผ ๋ช ๊ฐ์ ํด๋์ค์ ์ฌ์ฉํ ์ ์๋์?
Q3: 2๊ฐ์ ํด๋์ค์ ๋ํ ๋ชจ๋ธ์ ์ฒดํฌํฌ์ธํธ๋ฅผ 3๊ฐ์ ํด๋์ค์ ๊ฐ์ ๋ค๋ฅธ ๋ชจ๋ธ์ ์์ ๊ฐ์ค์น๋ก ์ฌ์ฉํ ์ ์์ต๋๊น?
๋ค์ ํ๋ฒ ๊ฐ์ฌํฉ๋๋ค.
@chengs2000 ๊ทํ์ ์ง๋ฌธ์ ์ค์ ๋ก YOLO9000๊ณผ ๊ด๋ จ์ด ์์ต๋๋ค. ์ง๋ฌธ์ ์ ๋ฌธ์ ์ ๊ฒ์ํ๋ฉด ๊ฑฐ๊ธฐ์์ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์๋ ํ์ธ์, ๋๊ตฐ๊ฐ๊ฐ ์ด๋ฏธ ์ด๊ฒ์ํ์ง ์๋ ํ (@philipperemy?) ์๋ ํ ๊ฒ์ ๋๋ค. ๋ฉฐ์น ํ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ ๊ฒ์ ๋๋ค.
@relh ์งํํด์ฃผ์ธ์! ๋๋ ์ด๊ฒ์ ์ง์คํ ์๊ฐ์ด ๋ณ๋ก ์์๋ค.
@relh ์ง์ ์ด ์์ต๋๊น? ๐
๋๋ ๊ทธ๊ฒ์ ์๋ํ๋ค! :)
์ ๋ ์ง๊ธ PR์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ฅ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ง๋ ๋ฉฐ์น ๋์ ๋ง์ ์ผ๋ค์ด ์์ง์์ต๋๋ค.
๋๋ ํ์ฌ๋ก์ ๋๋ถ๋ถ์ด ๋ณ๋์ darkflow/cython_utils/cy_yolo9000_findboxes.pyx
๊ทธ๋ฌ๋ ๋๋ ์๋ง๋ก ๋กค ์ cy_yolo2_findboxes.pyx
์์ if ๋ฌธ์ ๋ค๋ฅธ ๋ฉํ ํค๋ฅผ ํฌํจ labels
๋ฐฉ๋ฒ darkflow/darkflow/yolo/misc.py
(๊ทธ๋ฐ ๋ค์ ๋ฃจํ๋ก ์ ํํ๊ธฐ ์ ์ findbox์์ softmax ๊ธฐ์ ์ ๋ถํ ํ์ญ์์ค).
์ด๋ฏธ misc.py
์ ๋ ์ด๋ธ ๋ฉ์๋์์ if ๋ฌธ์ผ๋ก ์ด๋ํ์ฌ ๋ฐ์ดํฐ ํ์ผ์ ๋ฐ๋ผ ๋ถ๋ชจ ์ธ๋ฑ์ค๋ฅผ ์์ ๋
ธ๋ ๋ชฉ๋ก์ ๋งคํํ๋ ์ฌ์ ์ธ hyponym_map
๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
๋ํ ํ์ฌ cfg/ ํด๋์ data/ ํด๋๊ฐ ์๊ณ ํ์ผ ๊ฒฝ๋ก์ ๋ํด ๊ตฌ์ฑ ๋ฐ meta['tree']
๋ฐ meta['map']
์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐํฉํ๊ณ ์์ต๋๋ค.
์ ๋ ฅ์ด ์์ผ๋ฉด ๋์๊ฒ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋ณดํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ท๊ฐ ๋ฉ๋๋ค!
@relh ๊ต์ฅํ๋ค! ์ด ์์ ์ ํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!!
๋ด 2์ผํธ์ ๊ฒฝ์ฐ: cy_yolo9000_findboxes.pyx
์ฝ๋๊ฐ ์ด๋ฏธ cy_yolo2_findboxes.pyx
์์ฑ๋ ์ฝ๋์ ์์ ํ ๋ค๋ฅธ ๊ฒฝ์ฐ ์ ํ์ผ์ ๋ง๋๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋๋ถ๋ถ์ ๋์ผํ ์ฝ๋๋ฅผ ๊ณต์ ํ๋ ๊ฒฝ์ฐ (์ค๋ณต ์ฝ๋ ์ถ๊ฐ๋ฅผ ํผํ๊ธฐ ์ํด) ๊ธฐ์กด ํ์ผ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๊ฒ์ด ๋ ๋์ ๊ฒ์
๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ณด์ง ์๊ณ ๋ ๋ ๋ง์ ์ ๋ณด๋ฅผ ์ ๊ณตํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค(YOLO9000์ด YOLOv2์ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์ ํํ ์์ง ๋ชปํจ). ๋ฐ๋ผ์ ์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์ต์ ์ ํ๋จ์ ๋ด๋ฆฌ๊ฒ ์ต๋๋ค.
PR์ ๊ธฐ๋ค๋ฆฝ๋๋ค!
@relh ์ ๋ง ๊ฐ์ฌํฉ๋๋ค!! ์ต๊ทผ์ ๋๋ฌด ๋ฐ๋น ์ ์์ ํ ์๊ฐ์ด ์์์ต๋๋ค!
@relh ์ด๊ฒ์ ์ข์ ์์์ ๋๋ค. PR์ ๊ธฐ๋ค๋ฆฝ๋๋ค.
์์ฒญ๋! (์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค).
์ด ๋ฌธ์ ๊ฐ ์ข ๋ฃ๋์์ต๋๊น? YOLO9000์ ๋ํ tensorflow ๊ตฌํ์ด ์์ต๋๊น? ๊ฐ์ ์ ์ ์ง์ ํด์ฃผ์ธ์. ๊ฐ์ฌ.
์ด ๋ฌธ์ ์ ์ง๋ฌธ: pjreddie๋ ์์ ์ YOLO ์น์ฌ์ดํธ ์์ YOLO9000์ YOLOv2๋ก ์ธ๊ธํฉ๋๋ค. "What's new in Version 2" ์น์ ์ผ๋ก ์ด๋ํ์ฌ ํด๋น ๋ ผ๋ฌธ์ ๋ํ ๋งํฌ๋ฅผ ํด๋ฆญํ๋ฉด YOLO9000 ๋ ผ๋ฌธ์ด ์ด๋ฆฝ๋๋ค.
๋ฐ๋ผ์ Darkflow์ YOLO9000 ๊ตฌํ์ด ์๋ค๋ฉด Darkflow์ ๋งฅ๋ฝ์์ YOLOv2๋ ์ ํํ ๋ฌด์์ ๋๊น?
Yolo9k๋ ๊ฒฝ๊ณ ์์ ํ์ต ๋ฐฉ๋ฒ์ผ๋ก imagenet์์ ํ์ต๋ ๋ชจ๋ธ์ธ ๋ฐ๋ฉด ๊ธฐ๋ณธ yolov2๋ COCO์์ ํ์ต๋์์ต๋๋ค.
@ํ๋ฆฌํ๋ ๋ฏธ
1) ์ฝ๋๊ฐ CPU์์๋ง ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ด์ ๋ฅผ ์์ญ๋๊น?
2) ํ์ฌ ํ๋ก์ ํธ์ ๋คํฌ๋ท์ ์ฐจ์ด์ ์ ๋ฌด์์
๋๊น?
๊ฐ์ฌ!
@moskiteau ์ฝ๋๋ GPU์์ ์ ์๋ํฉ๋๋ค.
๋ด ํ๋ก์ ํธ๋ darknet์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ YOLO9000์ ์คํํ๊ธฐ ์ํ ๋ชจ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
CPU ํ๋๊ทธ๋ก ์ปดํ์ผ:
seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer filters size input output
0 conv 32 3 x 3 / 1 544 x 544 x 3 -> 544 x 544 x 32
1 max 2 x 2 / 2 544 x 544 x 32 -> 272 x 272 x 32
2 conv 64 3 x 3 / 1 272 x 272 x 32 -> 272 x 272 x 64
3 max 2 x 2 / 2 272 x 272 x 64 -> 136 x 136 x 64
4 conv 128 3 x 3 / 1 136 x 136 x 64 -> 136 x 136 x 128
5 conv 64 1 x 1 / 1 136 x 136 x 128 -> 136 x 136 x 64
6 conv 128 3 x 3 / 1 136 x 136 x 64 -> 136 x 136 x 128
7 max 2 x 2 / 2 136 x 136 x 128 -> 68 x 68 x 128
8 conv 256 3 x 3 / 1 68 x 68 x 128 -> 68 x 68 x 256
9 conv 128 1 x 1 / 1 68 x 68 x 256 -> 68 x 68 x 128
10 conv 256 3 x 3 / 1 68 x 68 x 128 -> 68 x 68 x 256
11 max 2 x 2 / 2 68 x 68 x 256 -> 34 x 34 x 256
12 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
13 conv 256 1 x 1 / 1 34 x 34 x 512 -> 34 x 34 x 256
14 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
15 conv 256 1 x 1 / 1 34 x 34 x 512 -> 34 x 34 x 256
16 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
17 max 2 x 2 / 2 34 x 34 x 512 -> 17 x 17 x 512
18 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
19 conv 512 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x 512
20 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
21 conv 512 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x 512
22 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
23 conv 28269 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x28269
24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 13.577125 seconds.
Tuareg: 25%
wild horse: 27%
goat herder: 82%
Shetland pony: 86%
German shepherd: 48%
Gordon setter: 51%
seb@PHQ-4035-En:~/projects/stockshot/darknet$
GPU ํ๋๊ทธ๋ก ์ปดํ์ผ:
seb@PHQ-4035-En:~/projects/stockshot/darknet$ ./darknet detector test cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights data/person.jpg
layer filters size input output
0 conv 32 3 x 3 / 1 544 x 544 x 3 -> 544 x 544 x 32
1 max 2 x 2 / 2 544 x 544 x 32 -> 272 x 272 x 32
2 conv 64 3 x 3 / 1 272 x 272 x 32 -> 272 x 272 x 64
3 max 2 x 2 / 2 272 x 272 x 64 -> 136 x 136 x 64
4 conv 128 3 x 3 / 1 136 x 136 x 64 -> 136 x 136 x 128
5 conv 64 1 x 1 / 1 136 x 136 x 128 -> 136 x 136 x 64
6 conv 128 3 x 3 / 1 136 x 136 x 64 -> 136 x 136 x 128
7 max 2 x 2 / 2 136 x 136 x 128 -> 68 x 68 x 128
8 conv 256 3 x 3 / 1 68 x 68 x 128 -> 68 x 68 x 256
9 conv 128 1 x 1 / 1 68 x 68 x 256 -> 68 x 68 x 128
10 conv 256 3 x 3 / 1 68 x 68 x 128 -> 68 x 68 x 256
11 max 2 x 2 / 2 68 x 68 x 256 -> 34 x 34 x 256
12 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
13 conv 256 1 x 1 / 1 34 x 34 x 512 -> 34 x 34 x 256
14 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
15 conv 256 1 x 1 / 1 34 x 34 x 512 -> 34 x 34 x 256
16 conv 512 3 x 3 / 1 34 x 34 x 256 -> 34 x 34 x 512
17 max 2 x 2 / 2 34 x 34 x 512 -> 17 x 17 x 512
18 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
19 conv 512 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x 512
20 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
21 conv 512 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x 512
22 conv 1024 3 x 3 / 1 17 x 17 x 512 -> 17 x 17 x1024
23 conv 28269 1 x 1 / 1 17 x 17 x1024 -> 17 x 17 x28269
24 detection
mask_scale: Using default '1.000000'
Loading weights from yolo9000.weights...Done!
data/person.jpg: Predicted in 0.060738 seconds.
African: 25%
worker: 82%
horse: 86%
working dog: 48%
hunting dog: 50%
./darknet ๊ฐ์ง๊ธฐ ํ ์คํธ cfg/combine9k.data cfg/yolo9000.cfg yolo9000.weights ๋ฐ์ดํฐ/person.jpg -thresh .25 -hier .001
๋๊ตฐ๊ฐ 9000 ๋ ์ด๋ธ ํธ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ ์ ์์ต๋๊น? ํ์ผ 9k.tree(์: n0000245 -1, n0566538625 4)์์ -1๊ณผ 4๋ ๋ฌด์์ ์๋ฏธํฉ๋๊น? ์ด ํ์ผ 9k.tree๋ก ์ด๋ป๊ฒ ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค ์ ์์ต๋๊น?
@yaxiongchi
-1์ ๋๋ฌด์ ๋ฟ๋ฆฌ๋ฅผ ์๋ฏธํฉ๋๋ค.
4: ์๋ฒ์ง ๋
ธ๋์ ์ธ๋ฑ์ค
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋๋ ๊ทธ๊ฒ์ ์๋ํ๋ค! :)
์ ๋ ์ง๊ธ PR์ ๋ํ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์ฅ ์ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ์์ ๋ด๋ ค๊ณ ๋ ธ๋ ฅํ๊ณ ์์ต๋๋ค. ์ง๋ ๋ฉฐ์น ๋์ ๋ง์ ์ผ๋ค์ด ์์ง์์ต๋๋ค.
๋๋ ํ์ฌ๋ก์ ๋๋ถ๋ถ์ด ๋ณ๋์
darkflow/cython_utils/cy_yolo9000_findboxes.pyx
๊ทธ๋ฌ๋ ๋๋ ์๋ง๋ก ๋กค ์cy_yolo2_findboxes.pyx
์์ if ๋ฌธ์ ๋ค๋ฅธ ๋ฉํ ํค๋ฅผ ํฌํจlabels
๋ฐฉ๋ฒdarkflow/darkflow/yolo/misc.py
(๊ทธ๋ฐ ๋ค์ ๋ฃจํ๋ก ์ ํํ๊ธฐ ์ ์ findbox์์ softmax ๊ธฐ์ ์ ๋ถํ ํ์ญ์์ค).์ด๋ฏธ
misc.py
์ ๋ ์ด๋ธ ๋ฉ์๋์์ if ๋ฌธ์ผ๋ก ์ด๋ํ์ฌ ๋ฐ์ดํฐ ํ์ผ์ ๋ฐ๋ผ ๋ถ๋ชจ ์ธ๋ฑ์ค๋ฅผ ์์ ๋ ธ๋ ๋ชฉ๋ก์ ๋งคํํ๋ ์ฌ์ ์ธhyponym_map
๋ฅผ ์ถ๊ฐํ์ต๋๋ค.๋ํ ํ์ฌ cfg/ ํด๋์ data/ ํด๋๊ฐ ์๊ณ ํ์ผ ๊ฒฝ๋ก์ ๋ํด ๊ตฌ์ฑ ๋ฐ
meta['tree']
๋ฐmeta['map']
์ ๊ฒฝ๋ก๋ฅผ ๊ฒฐํฉํ๊ณ ์์ต๋๋ค.์ ๋ ฅ์ด ์์ผ๋ฉด ๋์๊ฒ ์๋ฏธ๊ฐ ์๋ ๊ฒ์ผ๋ก ํ๋ณดํ๊ฒ ์ต๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋ชจ๋ ๊ท๊ฐ ๋ฉ๋๋ค!