1.原因:数据集中的标签与图像名称不匹配,有缺失。
2. 数据集:coco128
3. 场景:在使用yolo2coco.py脚本中,将coco128数据集由txt文件转为json文件。
4. 目的:在yolov5或yolov7中为了得到coco指标。
5. coco128数据集格式:
coco128
images
train2017
01.jpg
02.jpg
labels
train2017
01.txt
02.txt
6. 解决:运行代码,根据输出结果,找出images文件与labels文件中不匹配的文件进行删除。
import os
def split_str(lists):
d = list()
for s in lists:
d.append(s.split('.')[0])
return d
path_img = './coco128/images/train2017'
datanames_img = os.listdir(path_img) # 存放在列表中 '000000000009.jpg'
list_img = split_str(datanames_img)
path_labels = './coco128/labels/train2017'
datanames_labels = os.listdir(path_labels)
list_labels = split_str(datanames_labels)
print('图片中存在,但标签中不存在')
for i in list_img:
if i not in list_labels:
print(i)
print('========')
print('图片中不存在,标签中存在')
for i in list_labels:
if i not in list_img:
print(i)