使用caffe製作自己的lmdb數據集

    新鳥最近在一家半導體公司實習,接觸到的項目都是基於 caffe框架的深度學習方面的知識,前期對tensorflow比較熟,但是到了公司沒辦法啊!!!不會怎麼辦,只能硬着頭皮上啊!!!!中途碰壁不少,寫這篇博客只是想以後方便查閱資料,另外一方面是給同樣在深度學習裏面摸爬滾打的朋友一個參考吧!!!!

    公司提供的數據都是工程師切分好的數據集,但是圖像的大小有大有小,不能直接拿過來用在神經網絡上面使用,因此需要我這樣的菜鳥對數據集進行必要的處理。首先,caffe的數據集一般爲lmdb或levelmdb的文件。

    在caffe 中開發者爲我們這樣的新鳥提供了這樣一個類:convert_imageset.cpp可以直接拿過來使用,該類存放在根目錄下面的tools文件下。使用之前需要編譯,編譯生成的可執行文件放在build/tools下面,這個文件的作用就是將圖片文件轉換成caffe框架下直接使用的lmdb文件。下面開始數據集的製作,其中的數據是來自kaggle平臺上面dog vs cat比賽的數據集,我只取用了其中的訓練集和測試集,訓練集10000張圖片,測試集5000張圖片,在這裏首先感謝kaggle平臺提供優秀的數據集。、

1.下載數據集

   kaggle平臺數據集的鏈接爲:

   我數據集的來源是:https://www.kaggle.com/siddarthareddyt/cats-and-dogs

2.將數據集轉換爲txt形式

  數據集存放的位置是:/home/work.caffe/examples/images/dataset,在該文件下創建一個create_filelist.sh文件,文件內容如下:

 

    DATA表示生成train.txt和test.txt的路徑,DATA_TRAIN表示訓練集數據的路徑,DATA_TEST表示測試集數據的路徑。

  rm: 刪除文件 

  find:尋找文件

  cut: 截取路徑

  sed:在每行的最後面加上標註,找到cat.*.jpg文件在txt文件內添加1

 說明:cut是截取路徑,這裏截取的路徑是DATA_TRAIN和DATA_TEST的路徑,以  /  進行劃分:

 如: examples/imges/dataset/train/cat.*.jpg此時劃分後examples位置爲1,images爲2,dataset爲3,train爲4,cat.*.jpg爲5

因此-f5的意思就很明顯了。

通過回到caffe根目錄:執行 ./examples/images/dataset/create_filelist.sh會生成train.txt和test.txt文件。溫馨提示:examples前面是:點斜槓 “./” ,我加粗了,否則編譯通不過。

打開train.txt文件內容如下:

3、生成lmdb數據集

在home/work.caffe/examples/images/dataset文件下創建一個create_lmdb.sh文件,內容如下:

build/tools/convert_imageset,通過調用convert_imageset函數將圖片數據集轉化爲lmdb數據格式,

--shuffle是否隨機打亂圖片的順序。默認爲flase

--resize_height --resize_width將圖片切片爲寬高均爲32的新的數據集。

/home//zhaoyoubiao/caffe/examples/images/dataset/train和/home//zhaoyoubiao/caffe/examples/images/dataset/test爲訓練集合測試集圖片的絕對路徑。通過執行如下命令:

將在/examples/images/dataset目錄下生成如下兩個文件:img_train_lmdb和img_test_lmdb,至此在caffe框架下製作lmdb數據格式的數據集已經圓滿完成。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章