我正在尝试使用darkflow训练微小的yolo。然而,当我运行代码时,我收到了这个错误:
Enter training ...
cfg/tiny-yolo-voc-2c.cfg parsing images/annotation
Parsing for ['thumbs_down', 'thumbs_up']
[====================>]100% 001296.xml
Statistics:
thumbs_down: 2078
thumbs_up: 1681
Dataset size: 2470
Dataset of 2470 instance(s)
This image's width or height are zeros: 002149.png
train_instance: ['002149.png', [0, 0, [['thumbs_up', 112, 15, 204, 143]]]]
Please remove or fix it then try again.
Traceback (most recent call last):
File "/anaconda3/bin/flow", line 6, in <module>
cliHandler(sys.argv)
File "/anaconda3/lib/python3.6/site-packages/darkflow/cli.py", line 33, in cliHandler
print('Enter training ...'); tfnet.train()
File "/anaconda3/lib/python3.6/site-packages/darkflow/net/flow.py", line 39, in train
for i, (x_batch, datum) in enumerate(batches):
File "/anaconda3/lib/python3.6/site-packages/darkflow/net/yolo/data.py", line 114, in shuffle
inp, new_feed = self._batch(train_instance)
File "/anaconda3/lib/python3.6/site-packages/darkflow/net/yolov2/data.py", line 35, in _batch
cx = centerx / cellx
ZeroDivisionError: float division by zero
如果我删除图像,它会找到另一个大小为0,0的图像,即使所有图像都是正常大小。如果我不删除它,它会告诉我一个不同的图像,大小为0,0。这意味着它是随机通过的?我删除了几张图片,但我不确定这是否会永远持续下去,或者是否只有一定数量的图片"大小为0,0"。
这是我在darkflow主目录中使用的命令:
flow --model cfg/tiny-yolo-voc-2c.cfg --labels images/annotation/classes.txt --train --trainer adam --load bin/tiny-yolo-voc.weights --annotation images/annotation --dataset images/images --gpu 1.0 --epoch 1000
请参阅上面错误消息的第12行:
[002149.png',[0,0,[['thumbs_up',112,15204143]]]
此列表来自注释文件。第二和第三值是图像宽度和图像高度。你可以看到它们都是零。因此,我建议您检查注释文件是否正确。
旁注:
- '002149.png':图像文件名
- (0,0(:图像宽度和高度分别为
- 'thumbs_up':类名
- (112,15(:绝对中心坐标
- (204143(:真值框的绝对宽度和高度