現在網上有很多關於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 ,特別是數據量較大的時候,可以很好的提高數據處理的速度。 如有不足,還請各位大牛指正,還望共同進步!