1. 程式人生 > >caffe-ssd 訓練自己的VOC資料集(一):轉換VOC xml資料為lmdb格式

caffe-ssd 訓練自己的VOC資料集(一):轉換VOC xml資料為lmdb格式

假設你已經做好了VOC資料標籤,也就是xml檔案,並且已經配置好了caffe-ssd的環境

第一步,在caffe-ssd/data目錄下本身自帶有如下資料夾:

然後在caffe-ssd/data目錄下新建一個資料夾命名為VOCdevkit:

然後data目錄下有:

進入VOCdevkit目錄內,新建VOC2007資料夾,然後再進入VOC2007資料夾內新建Annotations,ImageSets,JPEGImages三個資料夾,在ImageSets資料夾內新建一個Main資料夾

最後目錄級別為:

  • caffe-ssd/data/VOCdevkit/VOC2007
  • -----------------------------------------------/Annotations
  • -----------------------------------------------/ImageSets
  • --------------------------------------------------------------/Main
  • -----------------------------------------------/JPEGImages

再將自己做的資料集所有的jpg圖片全部放入JPEGImages資料夾內(下面這張路徑圖是windows可視之後。只是為了方便理解,我這篇部落格是基於LINUX下的,Windows下應該也差不多)

將自己做的資料集標籤(應該和放入JPEGImages檔案內的圖片名一樣且數量一樣多)xml檔案全部放入Annotations資料夾內

Main資料夾應該有(可以用matlab指令碼或者python指令碼生成,我會將matlab指令碼放置在下邊百度雲盤連線內):

訓練集:     train.txt

訓練驗證集: trainval.txt

測試集:     test.txt

驗證集:     val.txt

這些txt檔案內容如下所示,記錄的都是資料集的名字不包括字尾:

好了,準備好以上工作後要正式開始將我們的VOC資料集轉換為lmdb格式的工作了。

1. 首先看到caffe-ssd/data目錄下,其中有我們新建的VOCdevkit資料夾還有一個VOC0712資料夾:

進入VOC0712資料夾內,可以看到:

create_data.sh, create_list.sh, labelmap_voc.prototxt三個檔案

create_list.sh: 用於生成訓練集,測試集的檔案路徑txt檔案和一個測試集目錄名和圖片大小的txt

create_data.sh: 用於生成lmdb格式的訓練資料集和測試集

labelmap_voc.prototxt: 裡頭是標籤的資訊

將這三個檔案複製到自己新建的VOCdevkit/VOC2007資料夾內:複製後VOC2007資料夾內檔案如下

然後要準備修改複製過來的這三個檔案

首先修改create_list.sh(改成自己的目錄就行)

  

 

總共需要改三處。

然後改create_data.sh(改成自己的目錄就行)

 

 

總共需要修改五處。

最後修改labelmap_voc.prototxt檔案:

   

除了第一個背景標籤部分不要改,其他改成自己的標籤就行,多的刪掉,少了新增進去就行

最後,再在caffe-ssd/examples資料夾內新建一個VOC2007資料夾就行(空的):新建後examples目錄內檔案如下:

2. 要開始生成lmdb的最後步驟了

先執行create_list.sh指令碼 用sh create_list.sh命令不行的話,就用 . create_list.sh命令,執行完後,會在自己建的VOCdevkit/VOC2007目錄內生成trainval.txt, test.txt, test_name_size.txt。

再執行create_data.sh指令碼 用 sh create_data.sh 命令不行的話,就用 . create_data.sh 命令,執行完後,會在會在自己建的VOCdevkit/VOC2007目錄內生成lmdb資料夾:

lmdb資料夾內有:

這兩個資料夾內有訓練集和測試集的lmdb格式的資料:

例如測試集lmdb資料夾內:

到此,VOC資料集轉換為lmdb格式資料集就成功了。雙擊666!!!