firefly NCC S1--MDK - SSD模型工具包介绍

mdk - ssd
此快速入门指南适用于gti提供的ssd模型工具包(mdk)。工具包包含两套工具,一个是模型开发工具,另一个是模型转换工具。模型开发工具在gti_ssd_model_development_kit_v1-0目录下,模型转换工具在gti_ssd_conversion_tool_v1-0目录下。
编译caffe源码请使用模型开发工具中提供的caffe-ssd源码。
文件结构建议按照压缩包的结构
1. 环境安装
环境依赖主要是caffe的环境依赖,python版本请使用python2。ubuntu 16.04或ubuntu 15.10可参考ubuntu 16.04 or 15.10 installation guide,其它系统请参照caffe installation。
建议使用ubuntu 16.04,否则模型转换工具可能无法运行。
以下为ubuntu 16.04环境配置参考,摘抄自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目录下执行以下命令:
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
根据系统环境修改caffe-ssd根目录下makefile.config的内容,然后执行以下命令进行编译:
make clean make all make pycaffe
如果编译出现错误,可跟据错误信息调整makefile.config的内容,然后从新编译。
2. 模型训练
1) 数据准备
使用自己的数据集可参考train ssd on the custom dataset。
ssd_typ模型应用于多目标检测,建议不超过20类。
ssd_min模型应用于单目标检测,特点是模型更小,速度更快!
以下以voc0712数据集和ssd_typ_mdk为例。
首先,到the pascal visual object classes homepage下载,2007和2012年的数据集。将数据解压到$home/data/下,解压后文件结构如下:
data - vocdevkit - voc2007 - voc2012
然后在caffe-ssd父目录上执行以下命令:
。/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中网络描述文件中ip7_norm_mbox_conf 、conv6_2_mbox_conf_1、conv7_2_mbox_conf_1、conv8_2_mbox_conf_1四层的子层convolution_param的num_output的数值为126(类别数乘以6)。
gti_ssd_datasets_v1-0.tar.gz中的数据集可直接使用,无需以上操作
2) 开始训练
在ssd_typ_mdk下,执行以下命令链接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 $@
然后执行:
source run_ssd_traning.sh
开始训练。
3. 模型转换
由于依赖库版本的问题,建议使用ubuntu 16.04
安装环境
在gti_ssd_conversion_tool_v1-0/lightsprmodelconvert目录下执行以下命令进行环境安装:
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为对应的数据。或者修改示例源码中的对应变量的值。

300块10分钟的VR体验如何?
diy物联网-6.实现远程控制9路继电器
小芯片大制作:泰斗微电子第五代卫星导航芯片开启“国产替代”
电池修复技术—详细讲解电瓶充电
雷柏3500PRO无线光学鼠标评测 独特的布艺造型让桌面不再单调
firefly NCC S1--MDK - SSD模型工具包介绍
工业物联网解决方案:PLC泵站远程监控系统
英特尔将要发布新款NUC产品,将采用前置Type-C连接设计
艾为聚焦三大马达驱动产品系列
有桥交错PFC拓扑简述
荣耀终端公司公开封装结构、芯片及设备专利
立创·梁山派开发板-21年电赛F题-送药小车-K210更换固件-运行基础颜色识别例程
NVMe SSD性能影响因素分析
高通第二代骁龙4芯片发布,传由台积电转单三星代工
锂电池的安全特性
使用555定时器构建一个升压转换器电路
MAX14780E ESD保护的RS-485/RS-422收
诺基亚6最先在台湾开卖!售价7790新台币
2018年迎来消费电子智能元年 electronica China展会工业电子是主角
魅族pro6plus:两发新品搭载三星处理器 终于迎来真旗舰