0

我正在尝试使用暗流训练小 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-master 目录中使用的命令:

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
4

1 回答 1

0

请查看上述错误信息的第 12 行:

['002149.png', [0, 0, [['thumbs_up', 112, 15, 204, 143]]]]

该列表来自注释文件。第二个和第三个值是图像宽度和图像高度。你可以看到它们都是零。所以我建议你检查注释文件是否正确。

边注:

  1. '002149.png' : 图像文件名
  2. (0, 0) : 分别为图像宽度和高度
  3. 'thumbs_up' : 类名
  4. (112, 15): 绝对中心坐标
  5. (204, 143):真值框的绝对宽度和高度
于 2018-12-18T13:40:56.953 回答