日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SSD安装及训练自己的数据集

發布時間:2024/9/21 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SSD安装及训练自己的数据集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

第一部分 SSD安裝

系統:ubuntu 14.04
語言:python
ssd項目主頁:https://github.com/weiliu89/caffe/tree/ssd
首先,我們把項目代碼clone下來, 然后編譯:

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的安裝,接下來我們講一下如何訓練自己的數據集。

第二部分 訓練自己的數據集

首先我們不妨先跑一下項目的demo, 需要下載數據集,提前訓練好的數據集等。
下載預訓練的模型,鏈接:https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6,下載完成后保存在:

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.tartar -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安装及训练自己的数据集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。