Ubuntu上用caffe的SSD方法训练Pascal VOC数据集
實驗目的
繼caffe和ssd搭建完成,demo也演示完畢,了解一些基本知識后,現在開始訓練自己的數據集,在給自己的訓練集處理之前,先跟著官方的示例將Pascal VOC數據集訓練走一遍,把可能會踩坑的地方先踩過去,積累點經驗。
實驗環境
訓練平臺:NVIDIA K80
預測平臺:NVIDIA TX1
語言??????? :C++,Python
框架 ? ? ?? :caffe
方法 ? ? ?? :SSD
實驗準備
首先是數據集,上一篇博客上有數據集在百度云上的的下載路徑:
鏈接:http://pan.baidu.com/s/1c1AwrRy 密碼:ly70
將路徑放在自己的硬盤里面,建議不要放在Linux的系統盤內,可以放在自己的機械硬盤或者移動硬盤中,掛載到Linux系統路徑下就好;
實驗步驟
從幾個重要的文件開始說起。在caffe的目錄下,有一個data,在里面找到VOC0712文件夾,重點注意其中幾個文件:
1.create_list.sh
這是將數據集做成方便之后生成lmdb的路徑信息文件,注意將其中的root_dir和第二個for循環中的變量改為自己的路徑就好,如下圖紅框所示:
執行完腳本之后生成三個txt文件,如下:
1)test_name_size.txt每一行分為兩個部分,第一部分是test圖片的名字,第二部分是圖像的size方便之后caffe訓練的時候用作test;
2)test.txt每一行分為兩個部分,第一部分是用作test的圖片的路徑信息和文件名,第二部分是用作test的圖片的label信息文件(xml);
3)trainval.txt每一行分為兩個部分,第一部分是用作trainval的圖片的路徑信息和文件名,第二部分是用作trainval的圖片的label信息文件(xml);
2.create_data.sh
該文件負責讀取上一個腳本生成的幾個文件,然后根據路徑和label信息分別生成trainval和test的lmdb文件,主要注意下面紅框部分換成自己的路徑即可:
3.labelmap_voc.prototxt
該文件主要記錄需要訓練識別的n種對象的信息,第一類是background,是不變的,對于Pascal VOC數據集來說,需要識別20種對象,所以后面還有20個label。與傳統的機器學習不太一樣的是,以前需要輸入正負樣本,在caffe種,不管是faster rcnn還是ssd,都是只用對訓練圖像將識別對象的坐標信息標注即可,除了標注信息以外的部分都會當做background去處理。
以上三個文件完成之后,只算作是給訓練提供了正確可讀的數據集,即lmdb文件。切換到caffe路徑下的examples/ssd/中,注意一個文件即可。
4.ssd_pascal.py
這個文件是用來訓練數據集的,值得注意的是,該文件是一個一次性的腳本,執行完之后會在規定路徑下生成一個jobs文件夾,里面有用作訓練,測試,部署的prototxt文件,還有最終執行訓練的腳本。
需要修改幾個地方:
①84,86行改為自己的lmdb文件的路徑:
②242行到265行將生成的prototxt文件和jobs文件夾的路徑改為自己規定的路徑,并在正確的地方讀取前幾個腳本生成的文件:
③268行改變訓練對象的數量,為對象數+1(background),334行選擇使用哪一款GPU,361行改變為用作test的圖像總數,560行建議把caffe的bin文件改成絕對路徑:
完了之后執行腳本即可,之后會在相應的路徑下生成jobs文件夾,其中包含了這一次訓練的腳本文件,并且會記錄caffe執行只一次訓練的日志信息,如下所示:
VGG_VOC0712_SSD_300x300.sh文件即為調用build中的caffe程序,讀取相應的文件進行訓練:
執行完Python腳本之后,在caffe路徑下的models路徑中會有本次訓練用到的prototxt文件,同時生成的caffemodel文件也將存儲在這個路徑下面:
寫這一篇博客的時候數據集還在訓練中,caffemodel的快照及最終的文件還未存儲下來。
實驗總結
了解了Pascal VOC數據集的訓練步驟之后,就可以開始去動手制作我們自己的數據集了,下一步我將會把使用ssd對umdfaces數據集的訓練步驟和問題給記錄下來,關于umdfaces數據集的信息和將其制作為Pascal VOC格式,可以參考我的另一篇博文:
使用faster rcnn訓練umdfaces數據集?
關于文中用到的VGGNet的預訓練模型文件,云盤地址如下:
鏈接:http://pan.baidu.com/s/1c1JQaCK 密碼:4crz
總結
以上是生活随笔為你收集整理的Ubuntu上用caffe的SSD方法训练Pascal VOC数据集的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 目标检测之YOLOv2
- 下一篇: 配置SSD-caffe测试时出现“Che