Darkflow: ๋‚ด ๋ฐ์ดํ„ฐ ์„ธํŠธ์™€ ZeroDivisionError๋ฅผ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•จ: 0์œผ๋กœ ๋‚˜๋ˆ„๊ธฐ

์— ๋งŒ๋“  2018๋…„ 08์›” 17์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: thtrieu/darkflow

์ด ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์„์œผ๋กœ ๋‚ด ๋ฐ์ดํ„ฐ์„ธํŠธ๋ฅผ ํ›ˆ๋ จํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
python flow --model cfg/tiny-yolo-voc-4c.cfg --load bin/tiny-yolo-voc.weights --train --annotation custom/annotations --dataset custom/all --gpu 0.8 --epoch 500

๋‚ด ์ฃผ์„ ํด๋”(๋ชจ๋“  xml)
๋‚ด ๋ฐ์ดํ„ฐ ์„ธํŠธ ํด๋”(๋ชจ๋‘ jpg)

์˜ค๋ฅ˜:

Statistics:
Dataset size: 0
Dataset of 0 instance(s)
Traceback (most recent call last):
  File "flow", line 6, in <module>
    cliHandler(sys.argv)
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\cli.py", line 33, in cliHandler
    print('Enter training ...'); tfnet.train()
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\net\flow.py", line 39, in train
    for i, (x_batch, datum) in enumerate(batches):
  File "C:\Users\msi\Desktop\VSCode Folder\AI Stuff\YOLO Darkflow\darkflow-gpu\darkflow\net\yolo\data.py", line 102, in shuffle
    batch_per_epoch = int(size / batch)
ZeroDivisionError: division by zero

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@naren142 ๋„ค, ์ฒ˜๋ฆฌ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด์„œ ํŠธ๋ ˆ์ด๋‹ํ•˜๋ฉด์„œ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“  ๋‚  ๋ฐ”๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ darkflow/utils/pascal_voc_clean_xml.py์—์„œ ์ด ์ฝ”๋“œ ์ค„์„ ๋ณ€๊ฒฝ
annotations = glob.glob('*.xml')

๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ฃผ์„์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. (์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฃผ์„์ด ์žˆ์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ๋ผ์ง) ํ•ด๋‹น annotation.xml์„ ์‚ญ์ œํ•œ ๋‹ค์Œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”!

๋ชจ๋“  4 ๋Œ“๊ธ€

๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. VOC ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌํ›ˆ๋ จ์„ ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๊ฒฐํ•˜์…จ๋‚˜์š”?

Statistics:
Dataset size: 0
Dataset of 0 instance(s)
Traceback (most recent call last):
  File "/usr/local/bin/flow", line 6, in <module>
    cliHandler(sys.argv)
  File "/videoEval/darkflow/darkflow/cli.py", line 29, in cliHandler
    print('Enter training ...'); tfnet.train()
  File "/videoEval/darkflow/darkflow/net/flow.py", line 39, in train
    for i, (x_batch, datum) in enumerate(batches):
  File "/videoEval/darkflow/darkflow/net/yolo/data.py", line 102, in shuffle
    batch_per_epoch = int(size / batch)
ZeroDivisionError: division by zero

์—์„œ @humanova์€ "darkflow / darkflow / ๊ทธ๋ฌผ / yolov2 / data.py"์ด๋ฏธ์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ธ์‡„ ํ•ด๋ณด์‹ญ์‹œ์˜ค, ๋‹น์‹ ์€ ์‹ค์ˆ˜ ๋ฌด์—‡์ธ์ง€๊ฐ€ .. ์•Œ๊ฒŒ๋ฉ๋‹ˆ๋‹ค! ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

jpg = chunk[0]; w, h, allobj_ = chunk[1]
allobj = deepcopy(allobj_)
path = os.path.join(self.FLAGS.dataset, jpg)
**print("Processed : {}".format(path))**
img = self.preprocess(path, allobj)

@naren142 ๋„ค, ์ฒ˜๋ฆฌ๋œ ์ด๋ฏธ์ง€๋ฅผ ์ถœ๋ ฅํ•˜๋ฉด์„œ ํŠธ๋ ˆ์ด๋‹ํ•˜๋ฉด์„œ ์ด ๋ฌธ์ œ๋ฅผ ๋งŒ๋“  ๋‚  ๋ฐ”๋กœ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
๋˜ํ•œ darkflow/utils/pascal_voc_clean_xml.py์—์„œ ์ด ์ฝ”๋“œ ์ค„์„ ๋ณ€๊ฒฝ
annotations = glob.glob('*.xml')

๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ฃผ์„์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•œ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค. (์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ฃผ์„์ด ์žˆ์ง€๋งŒ ์ด๋ฏธ์ง€๊ฐ€ ์‚ฌ๋ผ์ง) ํ•ด๋‹น annotation.xml์„ ์‚ญ์ œํ•œ ๋‹ค์Œ ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค! ๊ฐ์‚ฌ ํ•ด์š”!

๊ฐ™์€ ๋ฌธ์ œ๊ฐ€์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. darkflow์—๋Š” txt ์ฃผ์„์ด ์•„๋‹Œ xml ํŒŒ์ผ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•„๋ƒˆ์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰