MDK - SSD
此快速入門指南適用于GTI提供的SSD模型工具包(MDK)。工具包包含兩套工具,一個是模型開發(fā)工具,另一個是模型轉換工具。模型開發(fā)工具在GTI_SSD_model_development_kit_v1-0目錄下,模型轉換工具在GTI_SSD_conversion_tool_v1-0目錄下。
編譯caffe源碼請使用模型開發(fā)工具中提供的caffe-ssd源碼。
文件結構建議按照壓縮包的結構
1. 環(huán)境安裝
環(huán)境依賴主要是caffe的環(huán)境依賴,python版本請使用python2。Ubuntu 16.04或Ubuntu 15.10可參考Ubuntu 16.04 or 15.10 Installation Guide,其它系統(tǒng)請參照Caffe Installation。
建議使用Ubuntu 16.04,否則模型轉換工具可能無法運行。
以下為Ubuntu 16.04環(huán)境配置參考,摘抄自Ubuntu 16.04 or 15.10 Installation Guide,具體請參考原文。
1) 基礎依賴安裝:
sudo apt-get update && sudo apt-get upgrade && \ sudo apt-get install -y --no-install-recommends \ build-essential \ cmake \ git \ wget \ libatlas-base-dev \ libboost-all-dev \ libgflags-dev \ libgoogle-glog-dev \ libhdf5-serial-dev \ libleveldb-dev \ liblmdb-dev \ libopencv-dev \ libprotobuf-dev \ libsnappy-dev \ protobuf-compiler \ python-dev \ python-numpy \ python-pip \ python-setuptools \ python-scipy \ python-opencv \ libopenblas-dev
2) python2依賴安裝
在caffe-ssd目錄下執(zhí)行以下命令:
cd python sudo pip install --upgrade pip && \ for req in $(cat requirements.txt) pydot; do sudo pip install $req; done
3) CUDA(英偉達顯卡)
安裝cuda:
cd /tmp sudo apt-get update && apt-get install wget -y --no-install-recommends && \ wget “https://developer.download.nvidia.com/compute/cuda/repos/ubuntu1604/x86_64/cuda-repo-ubuntu1604_8.0.61-1_amd64.deb” && \ sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb && \ sudo apt-get update && \ sudo apt-get install -y cuda
安裝CUDNN:
wget https://developer.download.nvidia.com/compute/redist/cudnn/v5.1/cudnn-8.0-linux-x64-v5.1.tgz && \ sudo tar -x*** cudnn-8.0-linux-x64-v5.1.tgz -C /usr/local && \ rm cudnn-8.0-linux-x64-v5.1.tgz && sudo ldconfig && \ cd -
4) 編譯caffe-ssd
根據(jù)系統(tǒng)環(huán)境修改caffe-ssd根目錄下Makefile.config的內容,然后執(zhí)行以下命令進行編譯:
make clean make all make pycaffe
如果編譯出現(xiàn)錯誤,可跟據(jù)錯誤信息調整Makefile.config的內容,然后從新編譯。
2. 模型訓練
1) 數(shù)據(jù)準備
使用自己的數(shù)據(jù)集可參考Train SSD on the Custom Dataset。
SSD_typ模型應用于多目標檢測,建議不超過20類。
SSD_min模型應用于單目標檢測,特點是模型更小,速度更快!
以下以VOC0712數(shù)據(jù)集和ssd_typ_mdk為例。
首先,到The PASCAL Visual Object Classes Homepage下載,2007和2012年的數(shù)據(jù)集。將數(shù)據(jù)解壓到$HOME/data/下,解壓后文件結構如下:
data - VOCdevkit - VOC2007 - VOC2012
然后在caffe-ssd父目錄上執(zhí)行以下命令:
。/caffe-ssd/data/VOC0712/create_list.sh 。/caffe-ssd/data/VOC0712/create_data.sh
然后,復制caffe-ssd/data/VOC0712/目錄下的文件到$HOME/data/VOCdevkit/VOC0712/lmdb/目錄下:
labelmap_voc.prototxt -》 labelmap.prototxt test_name_size.txt -》 test_name_size.txt test.txt -》 test.txt trainval.txt -》 trainval.txt
同時修改$HOME/data/VOCdevkit/VOC0712/lmdb/下的目錄VOC0712_test_lmdb為test_lmdb,VOC0712_trainval_lmdb為trainval_lmdb。
最后,修改ssd_typ_mdk下prototxt中網(wǎng)絡描述文件中ip7_norm_mbox_conf 、conv6_2_mbox_conf_1、conv7_2_mbox_conf_1、conv8_2_mbox_conf_1四層的子層convolution_param的num_output的數(shù)值為126(類別數(shù)乘以6)。
GTI_SSD_DataSets_v1-0.tar.gz中的數(shù)據(jù)集可直接使用,無需以上操作
2) 開始訓練
在ssd_typ_mdk下,執(zhí)行以下命令鏈接lmdb:
ln -snf /data/VOCdevkit/VOC0712/lmdb lmdb
修改run_ssd_traning.sh中的內容
$TOOLS/caffe train \ --solver=$slovertxttyp \ --gpu 0 2》&1 | tee $LOG $@
為:
$TOOLS/caffe train \ --solver=$slovertxttyp \ --gpu 0 \ --weights=$ssd 2》&1 | tee $LOG $@
然后執(zhí)行:
source run_ssd_traning.sh
開始訓練。
3. 模型轉換
由于依賴庫版本的問題,建議使用Ubuntu 16.04
安裝環(huán)境
在GTI_SSD_conversion_tool_v1-0/lightsprModelConvert目錄下執(zhí)行以下命令進行環(huán)境安裝:
source setting_caffe.sh 。/install_opencv.sh 。/install_conversion_tool.sh
進行轉換
將生成的模型放入inputs/SSD_typ并命名為SSD_typ_quant.caffemodel。
SSD_type模型使用以下命令進行轉換:
make SSD_typ_vgg make SSD_typ_ssd
生成的模型為cnn_weights_SSD_typ/vgg.dat和cnn_weights_SSD_typ/ssd.bin
4. 模型使用
模型轉換工具生成的vgg.dat和sdd.bin對應示例程序源碼下Data/Models/gti2801/multi-object中的vgg.dat和sdd.bin可進行替換使用,同時替換labelmap.prototxt為對應的數(shù)據(jù)。或者修改示例源碼中的對應變量的值。
-
Linux
+關注
關注
87文章
11158瀏覽量
208459 -
嵌入式主板
+關注
關注
7文章
6083瀏覽量
35092 -
Firefly
+關注
關注
2文章
538瀏覽量
6946
發(fā)布評論請先 登錄
相關推薦
評論