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