数据集检查,去除多余的标签或图片

本文主要是针对大家在转化数据集时,有可能出现一些图片标签转化错误的问题,导致标签和图片数量不对应。

主要是3行,4行,27行,29行

着重说一下第29行,这里是你多的图片或标签的后缀。

import os
import shutil
filePath2 = r'D:\python\project\yolov5-6.1\VOCdevkit\CrowdHuamn\labels\val'  # 数量多的
filePath1 = r'D:\python\project\yolov5-6.1\VOCdevkit\CrowdHuamn\images\val'  # 数量少的

list1 = os.listdir(filePath1)
file_list1 = []  # annotations中的文件名列表 不带后缀
for i in list1:
    file_list1.append(os.path.splitext(i)[0])
# print(file_list1)

list2 = os.listdir(filePath2)
file_list2 = []  # image中的文件名列表 不带后缀
for i in list2:
    file_list2.append(os.path.splitext(i)[0])
# print(file_list2)
# 找出没有标注的图片名称列表
# n=0
# for y in file_list1:
#     if y in file_list2:
#         n = n+1
# print(n)
b = [y for y in file_list2 if y not in file_list1]

# 把这些列表加上扩展名 然后将其删除
# path = r'D:\python\project\yolov5-6.1\VOCdevkit\ksh\JPEGImages'  # 标签位置
new = r'D:\python\project\yolov5-6.1\VOCdevkit\ksh\move'   # 多出来的图片或标签保存位置
for i in b:
    old = os.path.join(filePath2, i+'.txt') # 注意这里修改 文件后缀,
    shutil.move(old, new)