mmclassification 标注文件生成

16 篇文章 6 订阅
8 篇文章 15 订阅

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文件内容如下图所示。

【python三维深度学习】python三维点云从基础到深度学习_Coding的叶子的博客-CSDN博客_python 三维点云

更多三维、二维感知算法和金融量化分析算法请关注“乐乐感知学堂”微信公众号,并将持续进行更新。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Coding的叶子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值