Darkflow: AssertionError:labels.txt ๋ฐ *.cfg๋Š” ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค ๋ฒˆํ˜ธ ๋ฐ ์˜ค๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. - ์ž˜๋ชป๋œ ์ธ์ˆ˜: --verbalise=True

์— ๋งŒ๋“  2017๋…„ 06์›” 21์ผ  ยท  5์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: thtrieu/darkflow

weight/cfg๋ฅผ pb ๋ชจ๋ธ๋กœ ๋ณ€ํ™˜ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

./flow --model tiny-yolo-voc-original.cfg --load tiny-yolo-voc.weights --savepb
...
AssertionError: labels.txt and tiny-yolo-voc-original.cfg indicate inconsistent class numbers

์ด https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/src/org/tensorflow/demo/DetectorActivity.java#L69
๋˜ํ•œ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค:

./flow --model tiny-yolo-voc-original.cfg --load tiny-yolo-voc.weights --savepb --verbalise=True

ERROR - Invalid argument: --verbalise=True

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

์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ darkflow๊ฐ€ ๊ธฐ๋ณธ .cfg ์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณผ ๋•Œ ์ž์ฒด ๋ฐฐ์—ด(๋˜๋Š” COCO ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๊ฒฝ์šฐ ์™ธ๋ถ€ ํŒŒ์ผ)์—์„œ ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ธ์‹๋œ .cfg ๋ณผ ๋•Œ labels.txt ์„ค์ •๋œ ๊ฒƒ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์ธ์‹๋œ .cfg ์ด๋ฆ„์ด ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐฐ์—ด์— ์—†๋Š” ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” .cfg ์ด๋ฆ„ tiny-yolo-voc-original.cfg ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ darkflow๋Š” labels.txt ์—์„œ ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ์ž˜๋ชป๋œ ์ˆ˜์˜ ๋ ˆ์ด๋ธ”์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. VOC ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ .cfg ํŒŒ์ผ ์ด๋ฆ„์„ tiny-yolo-voc.cfg ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ VOC ๋ ˆ์ด๋ธ”์„ ์ธ์‹ํ•˜๊ณ  darkflow๋ฅผ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ VOC ๋ ˆ์ด๋ธ”์„ labels.txt ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์ €๋Š” darkflow์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • CLI ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ = ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --verbalise ๋ฅผ true ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด --verbalise ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ --verbalise true .

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

์ฒซ ๋ฒˆ์งธ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ darkflow๊ฐ€ ๊ธฐ๋ณธ .cfg ์ด๋ฆ„ ์ค‘ ํ•˜๋‚˜๋ฅผ ๋ณผ ๋•Œ ์ž์ฒด ๋ฐฐ์—ด(๋˜๋Š” COCO ๋ฐ์ดํ„ฐ ์„ธํŠธ์˜ ๊ฒฝ์šฐ ์™ธ๋ถ€ ํŒŒ์ผ)์—์„œ ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ธ์‹๋œ .cfg ๋ณผ ๋•Œ labels.txt ์„ค์ •๋œ ๊ฒƒ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ ์—์„œ ์ธ์‹๋œ .cfg ์ด๋ฆ„์ด ๋ฌด์—‡์ธ์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๋ฐฐ์—ด์— ์—†๋Š” ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” .cfg ์ด๋ฆ„ tiny-yolo-voc-original.cfg ์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ darkflow๋Š” labels.txt ์—์„œ ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜๊ณ  ๊ท€ํ•˜์˜ ๊ฒฝ์šฐ ์ž˜๋ชป๋œ ์ˆ˜์˜ ๋ ˆ์ด๋ธ”์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. VOC ๋ ˆ์ด๋ธ”์„ ๋กœ๋“œํ•˜๋ ค๋Š” ๊ฒฝ์šฐ .cfg ํŒŒ์ผ ์ด๋ฆ„์„ tiny-yolo-voc.cfg ๋กœ ๋ณ€๊ฒฝํ•˜์—ฌ VOC ๋ ˆ์ด๋ธ”์„ ์ธ์‹ํ•˜๊ณ  darkflow๋ฅผ ์ž๋™์œผ๋กœ ๋กœ๋“œํ•˜๊ฑฐ๋‚˜ VOC ๋ ˆ์ด๋ธ”์„ labels.txt ์ˆ˜๋™์œผ๋กœ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ๋ฌธ์ œ์™€ ๊ด€๋ จํ•˜์—ฌ ์ €๋Š” darkflow์— ๋Œ€ํ•œ ์‚ฌ์šฉ์ž ์ง€์ • CLI ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ = ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์€ ํ˜„์žฌ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. --verbalise ๋ฅผ true ๋กœ ์„ค์ •ํ•˜๋ ค๋ฉด --verbalise ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ --verbalise true .

์•Œ์•˜์–ด์š”. ๋‚˜๋Š” ๋˜ํ•œ 1๊ฐœ์˜ ํด๋ž˜์Šค๋กœ ํ›ˆ๋ จ๋œ ์ž‘์€ yolo๋ฅผ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์ง€๋งŒ ํ•  ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค(labels.txt๋ฅผ ํŽธ์ง‘ํ•˜๊ณ  ํ•˜๋‚˜์˜ ์ด๋ฆ„๋งŒ ๋„ฃ์—ˆ๋”๋ผ๋„). ์™œ๋ƒํ•˜๋ฉด cfg์˜ ์ด๋ฆ„์ด tiny-yolo-voc.cfg ์ด๋ฉด darkflow๊ฐ€ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ž์ฒด ๋ฐฐ์—ด์—์„œ. ๋‹ค๋ฅธ ์ด๋ฆ„์œผ๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พธ์—ˆ๊ณ  ์ž‘๋™ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌ ํ•ด์š”!

์•ˆ๋…•ํ•˜์„ธ์š”, ์ €๋Š” ํ˜„์žฌ ํ•œ ํด๋ž˜์Šค๋ฅผ ํ›ˆ๋ จํ•˜๊ณ  ์žˆ์ง€๋งŒ ํ›ˆ๋ จ ์ค‘์— yolo-small.weights ํŒŒ์ผ์˜ ๋กœ๋“œ๊ฐ€ ๋กœ๋“œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚ด ๋ช…๋ น์ž…๋‹ˆ๋‹ค:yolo-me-small.cfg --load bin/yolo-small.weights --train --annotation CAR/Annotations --dataset CAR/JPEGImages

์˜ค๋ฅ˜:
./cfg/yolo-qr-small.cfg ๊ตฌ๋ฌธ ๋ถ„์„
cfg/yolo-qr-small.cfg ๊ตฌ๋ฌธ ๋ถ„์„
bin/yolo-qr-small.weights ๋กœ๋“œ ์ค‘...
์—ญ์ถ”์ (๊ฐ€์žฅ ์ตœ๊ทผ ํ˜ธ์ถœ ๋งˆ์ง€๋ง‰):
ํŒŒ์ผ "./flow", 6ํ–‰,
cliHandler(sys.argv)
cliHandler์˜ ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/cli.py", 22ํ–‰
tfnet = TFNet(FLAGS)
ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/net/build.py", 58ํ–‰, __init__
๋‹คํฌ๋„ท = ๋‹คํฌ๋„ท(FLAGS)
ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/dark/darknet.py", 27ํ–‰, __init__
self.load_weights()
load_weights์˜ ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/dark/darknet.py", 82ํ–‰
wgts_loader = loader.create_loader( ์ธ์ˆ˜)create_loader์˜ ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/utils/loader.py", 105ํ–‰load_type(๊ฒฝ๋กœ, cfg) ๋ฐ˜ํ™˜ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/utils/loader.py", 19ํ–‰, __init__self.load( ์ธ์ˆ˜)
ํŒŒ์ผ "/home/xwlab/darkflow/darkflow/utils/loader.py", 77ํ–‰, ๋กœ๋“œ ์ค‘
Walker.offset, Walker.size)
AssertionError: 360624512๋ฐ”์ดํŠธ ์˜ˆ์ƒ, 375881736 ๋ฐœ๊ฒฌ

๋‚ด ๋ฌธ์ œ๋Š” labels.txt ํŒŒ์ผ์—์„œ ํ›„ํ–‰ ๋ธŒ๋ ˆ์ดํฌ๋ผ์ธ์„ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๋นˆ ์ค„์„ ์ถ”๊ฐ€ ํด๋ž˜์Šค๋กœ ๊ณ„์‚ฐํ–ˆ์Šต๋‹ˆ๋‹ค.

60๊ฐœ์˜ ํ•„ํ„ฐ๊ฐ€ ์žˆ๋Š” 7๊ฐœ์˜ ํด๋ž˜์Šค cfg ํŒŒ์ผ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ผ๋ฒจ
๋ ˆ์ด๋ธ”.txt
.txt ํŒŒ์ผ์—๋„ 7๊ฐœ์˜ ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
AssertionError:labels.txt ๋ฐ cfg/tiny-yolo-voc-7c.cfg๋Š” ์ผ์น˜ํ•˜์ง€ ์•Š๋Š” ํด๋ž˜์Šค ๋ฒˆํ˜ธ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

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