在使用darknet训练分类模型的时候遇到了如下错误:
Too many or too few labels: 2, /media/mars/train/1002_bbccdd14946.jpg
Too many or too few labels: 2, /media/mars/train/1000_bbccdd10715.jpg
出现这个错误的原因是图像的标签是1002,但是图像的名字中还有其他的数字14946
所以图像的名字改为下划线后面都是字母即可解决问题
例子:
1002_abcd.jpg 1002_abcf.jpg
类似与MARS这种数据集的图片名字直接拿来用是会报错的
建议都重命名为0001_abcd.jpg这种格式,只有标签是数字,其余改为字母
如果图像的标签是字母,那么推荐格式:apple_001.jpg
本人图像重命名流程:
对于MARS这种数据集
首先批量重命名为
0001_1.jpg 0001_2.jpg 0001_100.jpg
然后将_之后的数字转为字母即可
0001_B.jpg 0001_C.jpg 0001_BAA.jpg
数字转换为字母的代码:
def num2str(img_name):
img_name = img_name[5:-4]
new_str = ''
for name_str in img_name:
name_str = int(name_str) + 65
new_str = new_str + chr(name_str)
return new_str