generator_output = next(self._generator)
File "train.py", line 175, in data_generator
image, box = get_random_data(annotation_lines[i], input_shape, random=True)
File "F:\yolo\keras-yolo3-voc\yolo3\utils.py", line 109, in get_random_data
box[:, [0,2]] = box[:, [0,2]]*nw/iw + dx
IndexError: too many indices for array
关于Keras实现yolo v3的数据集错误
在文件夹的根目录中,运行voc_annotation.py文件会生成yolo格式对应的数据集格式,生成2007_train,2007_val,2007_trainval三个文件。
但是我在没有改变voc_annotation.py源代码的情况下生成了三个文件。但是打开其中的2007_train.txt文件会发现,有的图片后面并没有bbox数据,像这样
刚开始我以为是不是代码有些bug.我自己手动把bbox的信息手动添加上了!!!!像这样。
但这样不会增加训练集数据的图片数量,不会增加数据集数据的利用率!反而造成以下错误:
generator_output = next(self._generator)
File "train.py", line 175, in data_generator
image, box = get_random_data(annotation_lines[i], input_shape, random=True)
File "F:\yolo\keras-yolo3-voc\yolo3\utils.py", line 109, in get_random_data
box[:, [0,2]] = box[:, [0,2]]*nw/iw + dx
IndexError: too many indices for array
解决办法
错误原因是你添加的bbox信息维度超过了array的索引,不用添加空的bbox信息,错误解决!
错误原因
这个我没有查到官方的解释,但是我个人认为,在所有的训练数据集中,bbox的数量应该是一定的。如果某一张图片的bbox数量过多,在整个训练数据集bbox数量一定的情况下,有些图片就没有分配bbox。所有就会存在数据集有些没有bbox信息。
仅个人观点,如有错误请指正!
来源:CSDN
作者:Lehi_Chiang
链接:https://blog.csdn.net/Lehi_Chiang/article/details/104196308