假設你已經做好了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腳本放置在下邊百度雲盤連接配接内):
下載下傳位址:https://pan.baidu.com/s/1SmBjDglt8-7edC1tmEE7QQ 密碼:0m27
訓練集: 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!!!
關于利用lmdb資料訓練ssd,之後再更,請見 caffe-ssd 訓練自己的VOC資料集(二):訓練生成的lmdb資料