zoukankan      html  css  js  c++  java
  • 深度学习图像预处理——分类

    利用python进行图像预处理——分类



    from pexels.com 在计算机视觉的分类任务中,需要给不同类别的数据打上标签。常见的深度学习框架一般可以直接处理**文件夹**,并按照文件夹来给图像打上对应的标签。一般来说文件夹下的结构如下所示:
    ./train_images
    |--class1
        |--001.png
        |--002.png
        |--003.png
        |--xxx.png
    |--class2
    |--class3
    |--classxxx

    其中train_images为保存训练数据的根目录。但我们拿到的数据集往往都是下面这个样子的:
    这里写图片描述
    form flickr.com
    随机附带一个标签文件·label.json。我们需要按照标签文件将文件放到不同的文件夹中去。

    1.处理标签

    如果一个label的格式如下:
    [...,
    {"image": "7e25ef0a-7cef-2429b82cafd6___YLCV_GCREC 1896.JPG", "disease_class": 4},
    {"image": "e1a78324ca1d0c04f514b4372f.jpg", "class": 8},
    {"image": "1ecd651560ebf9eaffbff791d3.jpg", "class": 6},...]

    我们需要利用json包来进行处理:

    import os  #构建目录
    import sys
    import json  #读取json
    import shutil  #复制文件
    
    
    train_label = './label.json'
    train_img_path = './train_images/'
    train_data = json.load(open(train_label))  #读入label数据,读入后为字典组成的list数据
    print("This dataset totally has %d images"%len(train_data))  #显示数据量
    
    
    if not os.path.exists('./train'):
        os.mkdir('./train)  #首先建立一个文件夹保存整理好的数据
    for i in range(class_num):     #分类数目,为不同类别生产对应的子文件夹
        if not os.path.exists('./train/'+str(i)):
            os.mkdir('./train/'+str(i))
    
    ## 按照标签整理数据
    count = 0  #计数器,确保所有图片转换完成
    for item in train_data:
        count+=1
        class_id = item.get('class')   #读取字典中的分类值,为整数  
        name_id = item.get('image')  #读取字典中的图像文件名
        shutil.copyfile(train_img_path+name_id, './train_dis/'+str(class_id)+'/'+name_id)   #将文件copy到对应的分类文件夹中去
        if count%1000==0:
            print('processed:',count)
    print("Totally %d images is prepared"%count)   #这里的输出应该和上面输出的文件数量一致
    
    """
    最后的文件结构如下:
    ./train
    |--1
        |--1.jpg
        |--2.jpg
        |--xxx.jpg
    |--2
    |--3
    |--xxx
    """


    from stock.adobe.com

  • 相关阅读:
    poi 导出excel表格
    js 表单非空校验
    表格添加 点击添加增加一列
    date日期比较
    oralce 匿名块 练习
    SQL 入门
    Map集合&&异常处理&&file类
    Properties集合&&工具类FileUtils
    Java中Date类&&Calendar类
    jquery的基础
  • 原文地址:https://www.cnblogs.com/Tom-Ren/p/9897821.html
Copyright © 2011-2022 走看看