1. 问题描述
做迁移时候用到公共数据集ImageCLEF, 但是给的结构如图:
有b,c,i, p四种图像数据,和list数据,对应每一条数据的名称及其标签,记录举例如下:
b/252.car-side-101/252_0446.jpg 6
2.目标:做成如下格式
每种图片归为自己类别
3. 脚本如下:
3.1 查看目录下文件
import osimport shutil# 列出所有txt记录文件Domain_Dir = os.listdir('image-clef/list/')Domain_Dir
结果如下:
['bList.txt', 'cList.txt', 'iList.txt', 'pList.txt']
3.2 创建对应的文件类别目录
# 创建bList对应的文件目录with open('image-clef/list/' + 'bList.txt', 'r') as f:for i in f:# 获取每种记录类别kind = i.strip('\n').split(' ')[1]# 新的文件目录名称path = 'image-clefback/b/' + kind# 判断该类别目录是否存在isExists = os.path.exists(path)# 不存在则创建目录if not isExists:os.makedirs(path)
结果如下:
3.3 对图像数据进行归类
with open('image-clef/list/' + 'bList.txt', 'r') as f:for i in f:# 获取txt中图片的名称picture_name = i.strip('\n').split(' ')[0].split('/')[2]# 获取对应的类别kind = i.strip('\n').split(' ')[1]# 移动图片到分类的文件夹if picture_name in os.listdir('image-clef/b'):# file_path记录原始图片位置file_path = 'image-clef/b/' + picture_name# newpath表示目标文件目录newpath = 'image-clefback/b/' + kind#移动shutil.copy(file_path, newpath)
结果如下:
4.如果不想自己处理,可以下载我处理后的数据,包含原始数据。
附链接处理好已分类迁移学习(image-clef数据集)_imageclef,imageclef数据集-Python文档类资源-CSDN下载
原生数据链接/file/d/0B9kJH0-rJ2uRS3JILThaQXJhQlk/view?usp=sharing
5. 更新一下数据集:
感谢[P.C.](P.C.的博客_CSDN博客-领域博主)对数据集P数量不足600张的指出,同时附带新的数据链接:
1. 坚果云
链接:/p/DW5Gc_sQmN7PCBjwrKIE
Password: e5v8GG
2. 百度云
链接:/s/1rfRRC-tg32Mcfnsm91HVcQ
提取码:fle0