基于tensorflow 批量修改自己的图片数据集 (附代码)

       现在网上有很多关于Deeplearning的教程,不过这些教程的数据集都是已经做好的,并且格式名字什么的都已经整理好了。特别是很多入门的教程都是Mnist 的数据集,这都已经非常的完善了。不过对于想自己制作数据集的小白来说,如何将自己收集的图片批量转换为自己需要的格式呢,网上提到的并不多。作为菜鸟一枚,现在把自己制作数据集的方法,和各位大牛分享下,如有谬误,还请斧正。

       以一个Cat VS Dog 二分类为例。首先,将自己从网上爬的图片分别两个文件夹,文件夹名称为分类对象(cat ,dog)。

然后再通过调用函数,统一修改图片的名字,分别以   cat0.jpg ,cat1.jpg, cat2.jpg ,cat3.jpg ......  

dog.0,dog.1,dog.2,dog.3,dog.4......方式进行重命名。

       step 1.  刚开始的文件及图片


train文件下的两个子文件

           


刚爬下来cat文件下图片的名称(一般网上直接爬下来的图片名字都不统一,会比较乱)


闲话不说,直接上代码

import os  

def rename(file_dir,name):
    '''将网上爬下来的图片重命名(更好的观看)'''
    '''第一个参数是目标文件名 第二个参数是图片的名称'''
    i=0
    for file in os.listdir(file_dir):  
        '''获取该路径文件下的所有图片'''    
        src = os.path.join(os.path.abspath(file_dir), file) 
        '''修改后图片的存储位置(目标文件夹+新的图片的名称)'''        
        dst = os.path.join(os.path.abspath(file_dir),  name+str(i) + '.jpg')
        os.rename(src, dst) #将图片重新命名
        i=i+1     

file_dir='C:/Users/ASUS/Desktop/train'  #目标下的文件夹名称
rename(file_dir+'/cat','cat')  #获取目标文件夹下,子文件的的路径 并进行重命名
rename(file_dir+'/dog','dog')


这是修改后的子文件夹下图片的名称


 修改图片名称的目的是制作自己的数据集的第一步,接下来,博主还会和大家分享,如何用修改好后的图片制作tfrecord 数据集,tfrecord数据集可以更好地读取数据,有效的利用电脑的GPU ,特别是数据量较大的时候,可以很好的提高数据处理的速度。    如有不足,还请各位大牛指正,还望共同进步! 大笑大笑  

     

猜你喜欢

转载自blog.csdn.net/qq_24193303/article/details/79944231