1 数据集构成
mmclassification数据集主要包含四个文件夹meta、train、val、test,其中meta存储了标注信息,包含train.txt、val.txt和test.txt三个文件。train、val、test存储了各个不同类别的图像。其构成如下图所示:
train.txt、val.txt和test.txt文件存储了图片路径和类别id,如下图所示:
train、val、test存储了各个不同类别的图像,相同类别的图像位于同一子文件夹下,子文件夹的名称为相应的类别名称,如下图所示:
上述示例图像中的数据来源于minist手写字体可视化数据集,已按照train、test文件夹进行存储,下载地址为:minist手写数字可视化数据集-深度学习文档类资源-CSDN下载。
2 标注文件生成
标注文件生成是指在没有meta文件夹的情况下,根据train、val、test文件夹自动生成meta文件夹,及其文件夹下的train.txt、val.txt和test.txt。
3 参考程序
# -*- coding: utf-8 -*-
"""
乐乐感知学堂公众号
@author: https://blog.csdn.net/suiyingy
"""
import os
from glob import glob
from pathlib import Path
def generate_mmcls_ann(data_dir, img_type='.png'):
data_dir = str(Path(data_dir)) + '/'
classes = ['0', '1', '2', '3', '4','5', '6', '7', '8', '9']
class2id = dict(zip(classes, range(len(classes))))
data_dir = str(Path(data_dir)) + '/'
dir_types = ['train', 'val', 'test']
sub_dirs = os.listdir(data_dir)
ann_dir = data_dir + 'meta/'
if not os.path.exists(ann_dir):
os.makedirs(ann_dir)
for sd in sub_dirs:
if sd not in dir_types:
continue
annotations = []
target_dir = data_dir + sd + '/'
for d in os.listdir(target_dir):
class_id = str(class2id[d])
images = glob(target_dir+d+'/*'+img_type)
for img in images:
img = d + '/' + os.path.basename(img)
annotations.append(img+' '+ class_id+'\n')
annotations[-1] = annotations[-1].strip()
with open(ann_dir+sd+'.txt', 'w') as f:
f.writelines(annotations)
if __name__ == '__main__':
data_dir = 'data/Minist手写数字可视化数据集/'
generate_mmcls_ann(data_dir)
4 运行结果
运行上述参考程序后,data_dir文件夹下会自动生成meta文件夹及相应的txt文件,txt文件内容如下图所示。
5 【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python 三维点云
更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。
扫描二维码关注公众号,回复:
14353982 查看本文章
