天天看點

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

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

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

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

然後在caffe-ssd/data目錄下建立一個檔案夾命名為VOCdevkit:

然後data目錄下有:

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

進入VOCdevkit目錄内,建立VOC2007檔案夾,然後再進入VOC2007檔案夾内建立Annotations,ImageSets,JPEGImages三個檔案夾,在ImageSets檔案夾内建立一個Main檔案夾

最後目錄級别為:

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

再将自己做的資料集所有的jpg圖檔全部放入JPEGImages檔案夾内(下面這張路徑圖是windows可視之後。隻是為了友善了解,我這篇部落格是基于LINUX下的,Windows下應該也差不多)

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

将自己做的資料集标簽(應該和放入JPEGImages檔案内的圖檔名一樣且數量一樣多)xml檔案全部放入Annotations檔案夾内

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

Main檔案夾應該有(可以用matlab腳本或者python腳本生成,我會将matlab腳本放置在下邊百度雲盤連接配接内):

下載下傳位址:https://pan.baidu.com/s/1SmBjDglt8-7edC1tmEE7QQ 密碼:0m27

訓練集:     train.txt

訓練驗證集: trainval.txt

測試集:     test.txt

驗證集:     val.txt

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

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

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

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

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

進入VOC0712檔案夾内,可以看到:

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

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

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

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

labelmap_voc.prototxt: 裡頭是标簽的資訊

将這三個檔案複制到自己建立的VOCdevkit/VOC2007檔案夾内:複制後VOC2007檔案夾内檔案如下

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

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

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

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

總共需要改三處。

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

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

總共需要修改五處。

最後修改labelmap_voc.prototxt檔案:

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

除了第一個背景标簽部分不要改,其他改成自己的标簽就行,多的删掉,少了添加進去就行

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

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

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檔案夾:

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

lmdb檔案夾内有:

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

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

例如測試集lmdb檔案夾内:

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

到此,VOC資料集轉換為lmdb格式資料集就成功了。輕按兩下666!!!

關于利用lmdb資料訓練ssd,之後再更,請見 caffe-ssd 訓練自己的VOC資料集(二):訓練生成的lmdb資料

繼續閱讀