SSD模型--目标检测

配置SSD模型,用于目标检测实验。

第一部分:源码下载,编译

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
# 或者是
git clone -b ssd https://github.com/weiliu89/caffe.git
cd caffe

下载的项目文件夹为caffe, 表示为$CAFFE_ROOT,进入到当前的caffe目录下,继续操作。

# 参照一般的caffe配置
cp Makefile.config.example Makefile.config

修改完毕Makefile.config之后,开始编译。一种方式是:

mkdir build
cd build
cmake ..
make all -j64
make install
make pycaffe

到这一步就编译完成了。下面开始下载数据集,初始化权重文件,训练模型。


第二部分:下载数据文件

预训练模型下载

下载地址:链接:http://pan.baidu.com/s/1slpaEO9 密码:loxo

下载地址2:https://pan.baidu.com/s/1boPmTbT

在caffe/models文件夹下新建文件夹,命名为VGGNet,将刚刚下载下来的文件放入这个VGGNet文件夹当中

下载VOC2007和VOC2012数据集,生成lmdb数据集

终端输入:

# 如果data目录不存在
mkdir ~/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

生成lmdb数据集

cd $CAFFE_ROOT
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

可能在执行命令的过程中报错: no module named caffe等,则需要 将 export PYTHONPATH=$PYTHONPATH:/home/**/**/caffe/python 添加到环境变量中: 通过修改/etc/profile~/.bashrc文件。


第三部分:训练测试演示
1、 训练
打开caffe/examples/ssd/ssd_pascal.py这个文件,找到gpus=’0,1,2,3’, 这一行,如果您的服务器有一块显卡,则将123删去,如果有两个显卡,则删去2、3,以此类推。如果您服务器没有gpu支持,则注销以下几行,程序会以cpu形式训练。(这个是解决问题cudasuccess(10vs0)的方法)

#if num_gpus >0:
#  batch_size_per_device =int(math.ceil(float(batch_size) / num_gpus))

#iter_size = int(math.ceil(float(accum_batch_size) / (batch_size_per_device * num_gpus)))

#solver_mode =P.Solver.GPU
#device_id =int(gpulist[0])

保存后终端运行:

cd $CAFFE_ROOT
# 120000次训练
python examples/ssd/ssd_pascal.py

如果出现问题cudasuccess(2vs0)则说明您的显卡计算量有限,再次打开$CAFFE_ROOT/examples/ssd/ssd_pascal.py这个文件,找到batch_size =32这一行,修改数字32,可以修改为16,或者8,甚至为4(相信大家这个修改可以理解,我就不作说明了),保存后再次终端运行python examples/ssd/ssd_pascal.py
2、 测试
终端输入:
python examples/ssd/score_ssd_pascal.py(演示detection的训练结果,数值在0.718左右)
3、演示
演示网络摄像头识别效果,终端输入:
python examples/ssd/ssd_pascal_webcam.py

发现了一个非常好的博文:用SSD训练自己的数据集(VOC2007格式),可以设置输出单个类别的AP等。

参考: ssd模型配置及运行demo

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值