1. 程式人生 > >SSD安裝及訓練自己的資料集

SSD安裝及訓練自己的資料集

https://blog.csdn.net/zhang_shuai12/article/details/52346878

最近一直在搞object detection玩,之前用的是faster-rcnn,準確率方面73.2%,效果還不錯,但是識別速度有點欠缺,我用的GPU是GTX980ti, 識別速度大概是15fps.最近發現SSD(single shot multibox detector) 這篇論文效果和速度都不錯,我自己實驗了一下,速度確實比faster-rcnn快不少。下面分兩部分來介紹。第一部分介紹SSD的安裝,第二部分介紹如何基於SSD訓練自己的資料集。

第一部分 SSD安裝

git clone https://github.com/weiliu89/caffe.git
cd caffe git checkout ssd
  • 1
  • 2
  • 3

接下來,我們開始編譯caffe,編譯caffe非常容易,這裡我們濾過,如若感興趣,可參考我之前的部落格:http://blog.csdn.net/zhang_shuai12/article/details/52289825,此篇講的是caffe + cpu + ubuntu14.04的安裝, GPU版安裝需修改Makefile.config檔案, 修改完成後:

make 
make py
  • 1
  • 2

到這裡我們就完成了SSD的安裝,接下來我們講一下如何訓練自己的資料集。

第二部分 訓練自己的資料集

caffe/models/VGGNet/
  • 1

下載VOC2007和VOC2012資料集, 放在/data目錄下:

cd data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar

tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.
tar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

建立lmdb格式的資料:

cd caffe
./data/VOC0712/create_list.sh
# It will create lmdb files for trainval and test with encoded original image:
#   - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_trainval_lmdb
#   - $HOME/data/VOCdevkit/VOC0712/lmdb/VOC0712_test_lmdb
./data/VOC0712/create_data.sh
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

訓練和測試:

python examples/ssd/ssd_pascal.py
  • 1
  • 2

論文中,作者已經預訓練好模型,下載連結:http://www.cs.unc.edu/%7Ewliu/projects/SSD/models_VGGNet_VOC0712_SSD_300x300.tar.gz,我們不必自己再去訓練, 下載完成後放入指定的資料夾下。 
測試時,我們使用/example/ssd/目錄裡的ssd_detect.ipynb,執行這個檔案,需要安裝ipython及ipython-notebook, 或者直接把裡面的程式碼拷貝出來,寫到一個新的python檔案裡,比如命名ssd_detector.py.

OK, 下面修改一系列檔案來訓練自己的資料集 
兩種方案, 第一:保持原來的檔案目錄結構及檔名不變, 只替換裡面的資料。第二:重新新建一個與之前類似的目錄結構,改成自己命名的資料夾,第二種方法,有一定的風險性,需要修改程式裡涉及資料路徑的程式碼。在之前講解的faster-rcnnan那篇部落格中, 我們採用第一種方案。本次我們採用第二種方案。 
在/data目錄下建立一個自己的資料夾:

cd /data
mkdir mydataset
  • 1
  • 2

把/data/VOC0712目錄下的create_list.sh 、create_data.sh、labelmap_voc.prototxt 這三個檔案拷貝到/mydataset下:

cp data/create* ./mydataset
cp data/label* ./mydataset
  • 1
  • 2

labelmap_voc.prototxt, 此檔案定義label。

在/data/VOCdevkit目錄下建立mydataset, 並放入自己的資料集:

cd data/VOCdevkit
mkdir mydataset
cd mydataset
mkdir Annotations
mkdir ImageSets
mkdir JPEGImages
cd ImageSets
mkdir Layout
mkdir Main
mkdir Segmentation
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

其中Annotations中存放一些列XML檔案,包含object的bbox,name等; 
ImageSets中三個子目錄下均存放train.txt, val.txt, trainval.txt, test.txt這幾個檔案,檔案內容為圖片的檔名(不帶字尾); 
JPEGImages存放所有的圖片;

在/examples下建立mydataset資料夾:

mkdir mydataset
  • 1

資料夾記憶體放生成的lmdb檔案。

上述資料夾建立好後, 開始生成lmdb檔案, 在建立之前需要修改相關路徑:

./data/mydataset/create_list.sh
./data/mydataset/create_data.sh
  • 1
  • 2

此時,在examples/mydataset/資料夾下可以看到兩個子資料夾, mydataset_trainval_lmdb, mydataset_test_lmdb;裡面均包含data.dmb和lock.dmb;

到此為止,我們的資料集就做好了。接下來就開始訓練了。訓練程式為/examples/ssd/ssd_pascal.py,執行之前,我們需要修改相關路徑程式碼:

cd /examples/ssd
vim sd_pascal.py, 修改如下:
57行: train_data路徑;
59行:test_data路徑;
197-203行:save_dir、snapshot_dir、job_dir、output_result_dir路徑;
216-220行: name_size_file、label_map_file路徑;
223行:num_classes 修改為1 + 類別數
315行:num_test_image:測試集圖片數目
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

另外, 如果你只有一個GPU, 需要修改285行: 
gpus=”0,1,2,3” ===> 改為”0” 
否則,訓練的時候會出錯。 
修改完後執行

python ./examples/ssd/ssd_pascal.py 
  • 1

訓練完, 修改ssd_detector.py中模型路徑, 任意找一張圖片識別,看看效果怎麼樣。

如果在這過程中有什麼問題, 可隨時私信我。

參考: 
【1】《SSD: Single Shot MultiBox Detector》 By Wei Liu, Dragomir Anguelov, Dumitru Erhan, Christian Szegedy, Scott Reed, Cheng-Yang Fu, Alexander C. Berg. 
【2】https://github.com/weiliu89/caffe/tree/ssd

相關推薦

SSD安裝訓練自己資料

https://blog.csdn.net/zhang_shuai12/article/details/52346878最近一直在搞object detection玩,之前用的是faster-rcnn,準確率方面73.2%,效果還不錯,但是識別速度有點欠缺,我用的GPU是GT

py-faster-rcnn + cpu安裝訓練自己資料

下面分兩部分來講解,第一部分為py-faster-rcnn及caffe框架安裝。第二部分講解如何修改相關檔案,訓練自己的資料集。 第一部分 安裝 把專案程式碼clone下來, 注意是遞迴下載,裡面包含專案自帶的caffe,跟原版的caffe略有不同,

pva-faster-rcnn配置安裝訓練自己資料

繼fasterrcnn後,又一個pva-fasterrcnn的配置教程,希望可以幫助大家。 注意:有些複製的終端命令如果不能在終端執行,請注意英文全形半形問題,可以將命令輸入終端,無須複製貼上命令 第一部分:下載並編譯pvanet1、終端輸入:git clone --re

使用pytorch版faster-rcnn訓練自己資料

使用pytorch版faster-rcnn訓練自己資料集 引言 faster-rcnn pytorch程式碼下載 訓練自己資料集 接下來工作 參考文獻 引言 最近在復現目標檢測程式碼(師兄強烈推薦F

《錯誤手記-01》 facenet使用預訓練模型fine-tune重新訓練自己資料報錯

環境資訊:windows10+python3.5+tensorflow1.6.0 問題描述: 在自己的訓練集上跑train_softmax.py.  引數: --logs_base_dir F:/work/runspace/log/  --models_base_

Kaldi中thchs30訓練自己資料的步驟

一、資料準備過程 網上下載的thchs-openslr資料集需要換成自己的資料集,包含兩個資料夾:data_thchs30和resource。下面講解如何搞定這一部分。 資料集在data_thchs30檔案中,包含四個部分(data、train、dev、test)。 data資料夾中包

yolov3訓練自己資料可參考文章

參考部落格原址: https://blog.csdn.net/u012966194/article/details/80004647 這篇文章將介紹編譯darknet框架開始,到整理資料集,到用yolo網路實現一個內部資料集中號碼簿的定

Yolov3訓練自己資料+資料分析

訓練自己到資料集已經在上一篇文中說明過了,這一篇著重記錄一下資料分析過程 資料分析 1. mAP值計算 1)訓練完成後,執行darknet官方程式碼中到 detector valid 命令,生成對測試集到檢測結果,命令如下: ./darknet detector va

【YOLO初探】之 keras-yolov3訓練自己資料

寫在前面 如何使用官方資料集參看上一篇文章《【YOLO初探】之 使用官方資料集做目標分類》 傳送門:https://blog.csdn.net/plSong_CSDN/article/details/85108256 這裡,筆者使用了260張訓練資料,完成了人臉中“眼睛”、“鼻子”、“嘴

Fast RCNN 訓練自己資料 (1編譯配置)

FastRCNN 訓練自己資料集 (1編譯配置) FastRCNN是Ross Girshick在RCNN的基礎上增加了Multi task training整個的訓練過程和測試過程比RCNN快了許多。別的一些細節不展開,過幾天會上傳Fast RCNN的論文筆記。FastRCNN mAP效能上略有上升。Fa

YOLOv3在訓練自己資料時的速度慢問題

YOLOv3以速度快著稱,但是在訓練自己的資料集時發現儘管在命令中同時開啟了多塊gpu,但速度仍舊很慢。按照其他人的訓練日誌可以看出64batch的單gpu訓練,每次迭代大約需要不到1秒但是自己在訓練時卻需要好幾個小時,首先想到的是自己的資料集是否圖片解析度太高,比較之後發現

YOLO v3 安裝訓練自己資料

1. 安裝 YOLO v3的安裝與YOLO v2的安裝方法一樣 git clone https://github.com/pjreddie/darknet 直接使用上邊的命令下載YOLO安裝包。下載完以後,開啟進入到安裝包路徑內 cd darkn

FCN訓練自己資料(person-segmentation)、SIFT-FLOW、SBD和VOC實驗總結

最近花了將近一週的時間,基於提供的原始碼,通過參考網上的部落格,跑通了FCN在三個資料集上的訓練以及測試。在這裡寫下總結,即是記錄,又希望能夠對其他剛剛接觸FCN的人有所幫助。 FCN的原始碼地址:https://github.com/shelhamer/fcn.berkeleyvision.o

windows10+GPU下caffe資料Lmdb格式製作+訓練自己資料

最近做人臉識別專案,想用到caffe訓練自己的資料,電腦作業系統為win10+GPU,這裡對caffe-windows配置、資料集製作、訓練資料都做一些介紹。(無GPU配置的看我這個部落格)。如果你用的是vs2015,那麼下面介紹的caffe不適合,要用BVLC wind

如何利用caffe訓練自己資料

這篇博文主要參考了另一位博主https://blog.csdn.net/hellohaibo,在此向他表示感謝 首先,博主今天的caffe崩了,毫無徵兆的崩了,具體表現為博主想做一個更大的資料集,但是在生成lmbd檔案時永遠生成的是一個沒有名字的資料夾,可是博主已經在指定的example目錄裡寫了

Faster-RCNN 訓練自己資料的坑記錄

主要照這篇部落格進行訓練配置,因為沒有GPU所以好多坑,CPU訓練可以參見這篇部落格 正所謂,跑通了的都一樣,錯誤千萬樣。按照教程來也是坑多 訓練: python train_faster_rcnn_alt_opt.py --net_name ZF --weights

FastRCNN 訓練自己資料(二)——修改讀寫介面

這裡樓主講解了如何修改Fast RCNN訓練自己的資料集,首先請確保你已經安裝好了Fast RCNN的環境,具體的編配編制操作請參考我的上一篇文章。首先可以看到fast rcnn的工程目錄下有個Lib目錄這裡下面存在3個目錄分別是:datasetsfast_rcnnroi_d

FastRCNN 訓練自己資料(一)——編譯配置

FastRCNN是Ross Girshick在RCNN的基礎上增加了Multi task training整個的訓練過程和測試過程比RCNN快了許多。別的一些細節不展開,過幾天會上傳Fast RCNN的論文筆記。FastRCNN mAP效能上略有上升。Fast RCNN中,提取OP的過程和訓練過程仍

py-faster-rcnn訓練自己資料需要修改的引數

faster rcnn預設有三種網路模型ZF(小)、VGG_CNN_M_1024(中)、VGG16 (大) 訓練圖片大小為500*500,類別數1。 修改VGG_CNN_M_1024模型配置

Fast RCNN 訓練自己資料 (2修改資料讀取介面)

Fast RCNN訓練自己的資料集 (2修改讀寫介面) 這裡樓主講解了如何修改Fast RCNN訓練自己的資料集,首先請確保你已經安裝好了Fast RCNN的環境,具體的編配編制操作請參考我的上一篇文章。首先可以看到fast rcnn的工程目錄下有個Lib目錄 這裡下面存在3個目錄分別是: datase