PJ Reddie ๋คํฌ๋ท ์ฌ์ดํธ์์ yolo.weights
๋ฐ yolo.cfg
๋ฅผ ๋ค์ด๋ก๋ํ์ต๋๋ค.
cd darkflow && mkdir bin && cd bin/ \
wget http://pjreddie.com/media/files/yolo.weights >/dev/null 2>&1 && \
wget http://pjreddie.com/media/files/tiny-yolo-voc.weights >/dev/null 2>&1 && \
๊ทธ๋ฐ ๋ค์ flow
์ ์๋ํ์ต๋๋ค.
$ ./flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.avi --gpu 1.0
๊ทธ๋ฆฌ๊ณ ๋๋ ์ป๋๋ค
$:/darkflow/darkflow# ./flow --model cfg/yolo.cfg --load bin/yolo.weights --demo videofile.avi --gpu 1.0
Parsing ./cfg/yolo.cfg
Parsing cfg/yolo.cfg
Loading bin/yolo.weights ...
Traceback (most recent call last):
File "./flow", line 45, in <module>
tfnet = TFNet(FLAGS)
File "/darkflow/net/build.py", line 46, in __init__
darknet = Darknet(FLAGS)
File "/darkflow/dark/darknet.py", line 27, in __init__
self.load_weights()
File "/darkflow/dark/darknet.py", line 82, in load_weights
wgts_loader = loader.create_loader(*args)
File "/darkflow/utils/loader.py", line 105, in create_loader
return load_type(path, cfg)
File "/darkflow/utils/loader.py", line 19, in __init__
self.load(*args)
File "/darkflow/utils/loader.py", line 70, in load
val = walker.walk(new.wsize[par])
File "/darkflow/utils/loader.py", line 127, in walk
'Over-read {}'.format(self.path)
AssertionError: Over-read bin/yolo.weights
[์
๋ฐ์ดํธ]
PJ Reddie ํ์ผ์ด ์์ ํ ํธํ๋์ง ์๋ ๊ฒ ๊ฐ์์ README์ ์ ๊ณต๋ ๋งํฌ์์ ๋ฏธ๋ฆฌ ๋น๋๋ ๊ฐ์ค์น๋ฅผ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU
๋ฌธ์ ๋ ์ด ์๋ฒ ์ธก์์ ์์ ์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ํ๊ณ ๋ค๋ฉด ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ ์ ์ง์ ๋ค์ด๋ก๋ ๋ช ๋ น์ ๋ชจ๋ฐฉํ๋ Firefox ์ ๋์จ gcurl์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค.
cd darkflow/bin && \
curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/etft348j4r0b37n9p1jkokvbfagiimk2/1491782400000/16010642207042931662/*/0B1tW_VtY7onieS0zMzdkSG11OW8?e=download' -o 'tiny-yolo-v1.1.weights' -L && \
curl --header 'Host: doc-08-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-08-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/s29gvf1n83pqr37pk2l7t2cvcjnssd8s/1491782400000/16010642207042931662/*/0B1tW_VtY7oniTjM3YUxlRHpDVW8?e=download' -o 'tiny-yolo-voc.weights' -L && \
curl --header 'Host: doc-10-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-10-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/fmtsb8ruqk7a4tg5p98khj6qp4fq3p6i/1491782400000/16010642207042931662/*/0B1tW_VtY7onicFlqclhnRGlodGM?e=download' -o 'yolo-full.weights' -L && \
curl --header 'Host: doc-0k-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0k-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/knshmif3mk3n4ogtq9p77nf2f5v3dr0d/1491782400000/16010642207042931662/*/0B1tW_VtY7onibmdQWE1zVERxcjQ?e=download' -o 'yolo-tiny.weights' -L && \
curl --header 'Host: doc-0c-88-docs.googleusercontent.com' --header 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:52.0) Gecko/20100101 Firefox/52.0' --header 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' --header 'Accept-Language: it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3' --header 'Referer: https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU' --header 'Connection: keep-alive' --header 'Upgrade-Insecure-Requests: 1' 'https://doc-0c-88-docs.googleusercontent.com/docs/securesc/ha0ro937gcuc7l7deffksulhg5h7mbp1/ggut18kr6ubhoc8btg5hf6f32stoh50n/1491782400000/16010642207042931662/*/0B1tW_VtY7oniZGlkLTh5YVl1WWs?e=download' -o 'yolo.weights' -L
Btw ๋ค์ด๋ก๋ ํ ๋ด bin/
ํด๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋งํฌ๊ฐ ์์ํ ์๋ํ ์ง ํ์ ํ ์ ์์ต๋๋ค.
# cd darkflow/bin/
# ls -lh
total 1.6G
-rw-r--r-- 1 root root 104M Apr 10 00:20 tiny-yolo-v1.1.weights
-rw-r--r-- 1 root root 61M Apr 10 00:20 tiny-yolo-voc.weights
-rw-r--r-- 1 root root 1.1G Apr 10 00:20 yolo-full.weights
-rw-r--r-- 1 root root 173M Apr 10 00:21 yolo-tiny.weights
-rw-r--r-- 1 root root 258M Apr 10 00:21 yolo.weights
๊ณต์ YOLO์ ํ์ผ์ ์๋ก์ด ๊ตฌ์ฑ์ ์คํํ ๋ ํญ์ ๊ฐฑ์ ๋๋ฏ๋ก ํด๋น .cfg
๊ฐ ๋ฆด๋ฆฌ์ค๋์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๋ด๊ฐ ์
๋ก๋ํ weights
ํ์ผ์ ์ด์ ๋ฒ์ ์ด๋ฉฐ ์ด ์ ์ฅ์์ .cfg
์ ํธํ๋ฉ๋๋ค.
@thtrieu ๊ฐ์ฌํฉ๋๋ค. ๊ทธ๋์ ๊ทํ์ ํ์ผ์ ์ฌ์ฉํ์ฌ ํด๊ฒฐํ์ต๋๋ค!
์ด ์ค๋ฅ๋ cfg์ ๋ฐ์ด๋๋ฆฌ ๊ฐ์ค์น ํ์ผ ๊ฐ์ ๋ถ์ผ์น๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ๋ค์์ ๊ทธ๊ฒ์ ์ผ์ผํค๋ ๊ด๋ จ ์ฝ๋์
๋๋ค.
flow
์์ ๋ถ๋ถ์์ ๋จผ์ ๋ช
๋ น์ค์์ ์ฌ์ฉ์๊ฐ ์ง์ ํ cfg
๋ฐ bin
์์ TFNet
์ด๊ธฐํ๋ฅผ ์๋ํฉ๋๋ค.
# in darkflow/utils/loader.py
class weights_walker(object):
...
self.size = os.path.getsize(path)
์ด ์์ปค๋ walk
ํจ์๋ก ์์ฑ๋๊ณ ํธ์ถ๋ฉ๋๋ค.
์ด ์ํฌ๋ cfg์ ๋ฐ๋ฅธ ์ ํํ ๋ฐ์ดํธ ์์ผ๋ก ๊ฐ ๋ ์ด์ด์ bin
ํ์ผ์์ ๊ฐ์ค์น๋ฅผ ์ฝ์ต๋๋ค. ์ค์ ๋ก ์ฝ๊ธฐ ์ ์ ์ฝ์ ๋ฐ์ดํธ๊ฐ ํ์ผ์ ๋๋จธ์ง ๋ฐ์ดํธ๋ณด๋ค ์์์ง ํ์ธํฉ๋๋ค. ๋ค์์ ์ด์ ๋ํ ์ฝ๋์
๋๋ค.
def walk(self, size):
if self.eof: return None
end_point = self.offset + 4 * size
assert end_point <= self.size, \
'Over-read {}'.format(self.path)
์ฌ๊ธฐ์ end_point
๋ ํ์ฌ ๋ ์ด์ด์ ๊ฐ์ค์น์ ๋ํด ๋ฐ์ด๋๋ฆฌ ํ์ผ์์ ํ์ํ ์์ ์ฝ์ ๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ ์ปค์๊ฐ ์์นํ ์์น์
๋๋ค. self.size
๋ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ์ ์ฒด ํฌ๊ธฐ์
๋๋ค. ์ด ๋ ๋ณ์๋ฅผ ๋น๊ตํ๋ฉด cfg์ bin ํ์ผ ์ฌ์ด์ ์ถฉ๋์ด ์๋์ง ์ฌ๋ถ๋ฅผ ์ ์ ์์ต๋๋ค.
์์ ๋ ผ์๋ฅผ ๋ฐํ์ผ๋ก yolov2 ์น์ฌ์ดํธ์์ ์ต์ cfg ๋ฐ ๋ฐ์ด๋๋ฆฌ ํ์ผ์ ๋ค์ด๋ก๋ํ์ต๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ ํ ์๋ํ์ง ์์ผ๋ฉฐ ์ด์ ์ด์ ๋ฅผ ์ ์ ์์ต๋๋ค. ๋์ค์ ์ฑ๊ณต์ ์ธ ์ด์ผ๊ธฐ๋ฅผ ์ธ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
@chadrick-kwag ์๋ ํ์ธ์, ํด๊ฒฐํ์ จ๋์?
@AlexeyAB ๋ถํํ๋ ์๋์. ๊ฒฐํจ ์์ด ์๋ํ๋ small-yolo-voc๋ก ์ ํํด์ผ ํ์ต๋๋ค. ๋ด ํ๋ก์ ํธ๋ ๊ฐ๋จํ๋ฏ๋ก small-yolo๋ ์ ์๊ฒ ์ ํฉํฉ๋๋ค. ์ ์ข์ ์์์ ์ ํด๋๋ ค ์ฃ์กํฉ๋๋ค :(
@chadrick-kwag ๋ค ๊ฐ์ฌํฉ๋๋ค. https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU ๋๋ https://pjreddie.com/darknet/yolo/ ์์ tiny-yolo-voc๋ฅผ ์ฌ์ฉํฉ๋๊น?
@AlexeyAB ๋๋ pjreddie์ ๊ฒ์ ์ฌ์ฉํ์ต๋๋ค. ์ฐธ๊ณ ๋ก ์ ๋ ์ฝ 6๊ฐ์ ์ ์ ๋ค์ด๋ก๋ํ ๊ฒ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค. ์ฌ์ ํ ์๋ํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
์ ๊ตฌ๊ธ ๋๋ผ์ด๋ธ ๋งํฌ์์ ์จ์ดํธ ํ์ผ(yolo.weights)์ ํด๋นํ๋ cfg ํ์ผ ์ง์ ๋ค์ด๋ก๋ ๋งํฌ ์์ผ์ ๋ถ ๊ณ์ ๊ฐ์?
@shailensobhee ๋๋ darkflow์ darknet repo ์ฌ์ด์์ yolov2-voc cfg์ weight ํ์ผ์ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ์๋ํ์ต๋๋ค. ํ ๊ฒฝ๊ธฐ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
@thtrieu @AlexeyAB ์ด๋ค ์๊ฐ์ด ์์ต๋๊น?
darkflow ๋๋ ํ ๋ฆฌ์ loader.py์์ ์คํ์
์ ๋ณ๊ฒฝํ์ฌ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์ต๋๋ค.
์คํ์
์ 16์ผ๋ก ๋ฎ์ถ๊ณ ๋ค์ ํ
์คํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ง์
์ด์ ํ๋ค
๋งํฌ ๋ฐ์ผ์ จ๋์? ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ฌ๊ธฐ์ ๋ด๊ฐ ์ฌ์ฉํ ๊ฒ์ด ์์ต๋๋ค. https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
[์ ๋ฐ์ดํธ]
PJ Reddie ํ์ผ์ด ์์ ํ ํธํ๋์ง ์๋ ๊ฒ ๊ฐ์์ README์ ์ ๊ณต๋ ๋งํฌ์์ ๋ฏธ๋ฆฌ ๋น๋๋ ๊ฐ์ค์น๋ฅผ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU
๋ฌธ์ ๋ ์ด ์๋ฒ ์ธก์์ ์์ ์ ์ํํด์ผ ํ๊ธฐ ๋๋ฌธ์ ์กฐ๊ธ ํ๊ณ ๋ค๋ฉด ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ์ฑ ์ ์ง์ ๋ค์ด๋ก๋ ๋ช ๋ น์ ๋ชจ๋ฐฉํ๋ Firefox ์ ๋์จ gcurl์ ์ฌ์ฉํ๋ ๊ฒ์ด์์ต๋๋ค.
Btw ๋ค์ด๋ก๋ ํ ๋ด
bin/
ํด๋๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋งํฌ๊ฐ ์์ํ ์๋ํ ์ง ํ์ ํ ์ ์์ต๋๋ค.