1. 程式人生 > >基於tensorflow 批量修改自己的圖片資料集 (附程式碼)

基於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 ,特別是資料量較大的時候,可以很好的提高資料處理的速度。    如有不足,還請各位大牛指正,還望共同進步! 大笑大笑