处理imagenet2013分类数据总结

下载下来的2013数据是每个类别一个文件夹,为了处理成需要的txt模式,主要有以下几步。

1、先解压大文件夹

2、通过sh脚步一起解压小文件夹

dir=/data1/imagenet/ILSVRC2013_DET_train
out=/data1/imagenet/train
for x in `ls $dir/*tar`
do
    filename=`basename $x .tar`
    tar -xvf $x -C $out
done

3、开始制作成txt格式了。实例:1.jpg 1

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import glob
import random
import os
import re
count=1
rootdir=''
dirs=os.listdir(rootdir)

def ReadFileDatas():
    FileNamelist = []
    file = open('imageLabel.txt','r+')
    for line in file:
        line=line.strip('\n')
        FileNamelist.append(line)
    print 'len ( FileNamelist ) = ',len(FileNamelist)
    file.close()
    return FileNamelist
def WriteDatasToFile(listInfo):
    file_handle=open('label.txt',mode='a')
    for idx in range(len(listInfo)):
        str = listInfo[idx]
        str_Result = str+'\n'
        print(str)
        file_handle.write(str_Result)
    file_handle.close()

if __name__=='__main__':

    for dir in dirs:
        print 'the_dir_name is :',dir

        imageList = os.listdir(rootdir+dir)
        random.shuffle(imageList)
        with open('imageLabel.txt','a+') as f:
            for image_name in imageList:
                print image_name
                image_label_save_item = dir+'/'+image_name.split('/')[-1] + ' ' + str(count)
                f.write(image_label_save_item + '\n')
                #print image_label_save_item

            f.close()
        count=count+1
    listFileInfo = ReadFileDatas()
    random.shuffle(listFileInfo)
    WriteDatasToFile(listFileInfo)

4、可以转换成lmdb了

#!/bin/bash
# convert images to lmdb
 
DATA=  #这次操作的图像数据和标签文件所在的路径(文件夹)
IMGDIRNAME=        #存储所有图像数据的文件夹
IMGLIST=test.txt #val.txt  train.txt  # 分别生成训练和验证的 lmdb文件
LMDBNAME=resnet_test_224_lmdb #resnet_train_224_lmdb   #验证的lmdb文件夹名resnet_valid_224_lmdb 和训练的lmdb文件夹名
 
rm -rf $DATA/$LMDBNAME echo 'converting images...'   #rm -rf 用于强制移除已经存在的文件夹
caffe/build/tools/convert_imageset  -resize_height 224 -resize_width 224 --shuffle=true $IMGDIRNAME/ $DATA/$IMGLIST $DATA/$LMDBNAME

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值