目标检测SSD网络在Caffe下的实现——基于VOC0712数据集

这篇博客详述了如何在Ubuntu环境下编译Caffe-SSD,包括代码下载、编译配置。接着介绍了VOC0712数据集的准备,VGG-16预训练模型的下载,以及LMDB数据集的制作过程。通过修改ssd_pascal.py进行网络训练,最终得到mAP值0.76552。并使用score_ssd_pascal.py和ssd_detect.py进行模型测试与结果展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


本篇博客主要讲解ssd目标检测网络在caffe下的安装、编译,VOC数据集下载、VGG预训练模型下载、LMDB数据集制作、ssd_pascal的代码修改、针对VOC0712数据集的网络训练、通过pycaffe进行网络模型测试输出等内容。


数据来源:VOC2007,VOC2012
模型:VGG-16
系统平台:Ubuntu-GPU


caffe-ssd在Ubuntu下的编译

包括caffe-ssd代码下载、安装、编译

caffe-ssd代码下载

我使用的是weiliu89的ssd代码,链接如下:caffe-ssd Github链接

下载下来传到服务器中,或者在ubuntu terminal下直接git:git clone https://github.com/weiliu89/caffe.git

caffe-ssd安装编译

修改根目录下的Makefile.config文件,主要是关于使用GPU还是CPU,Cuda路径、cudnn路径、python路径以及matlab路径的设置。
在这里我不讲解怎么具体去修改该文件,一般来说我默认你在linux系统中已经编译好了原始的caffe,所以直接将caffe-ssd下的Makefile.config文件替换为编译好的caffe下的Makefile.config文件即可。

接着,按照以下步骤即可完成:

make all
make test
make runtest

如果想编译更快一点,还可以在后面加 -j4 或者 -j8

make all -j8
make test -j8
make runtest -j8

编译成功后的caffe-ssd根目录下应该有一个build软链接
在这里插入图片描述
build下内容如图所示在这里插入图片描述


至此我们已经编译好了caffe-ssd,接下来就是如何跑通该程序了。


数据和模型准备

在跑通程序前,我们先要准备目标检测框架需要的包含类别和位置信息的数据集。

我使用的是VOC数据集

模型使用的是官方使用的VGGNet

VOC数据集下载

VOC2007 VOC2012数据集下载
只需要下载如图所示的三个文件即可。
分别为:

  • VOC2012trainval
    VOC2007trainval
    VOC2007test

VOC
或者也可以用wget直接进行下载,使用tar -xvf进行解压使用。

#### Download the data.

cd $DATAPATH/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

# Extract the data.

tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar

数据准备好后,在caffe_ssd/data有一文件夹VOC0712,将解压后的VOC数据集放该文件夹下。
(数据集名字我均进行了修改)
在这里插入图片描述
三个文件夹内目录均如下图:
在这里插入图片描述
我们主要使用AnnotationsJPEGImagesImageSets/Main三个文件夹的数据。

  • Annotations:XML文件
  • JPEGImages:JPG文件
  • ImageSets/Main:XML和JPG名字(去除后缀)
    其中ImageSets/Main里有多个文件,对应为:
  • VOC2007test —— test.txt
  • VOC2007trainval——trainval.txt
  • VOC2012trainval——trainval.txt

VGG-16预训练模型下载

VGG-16预训练模型下载
在这里插入图片描述
也可以Github上这个链接进行下载:VGG-16预训练模型
下载完成后,在caffe_ssd/models下新建文件夹VGGNet/VOC0712,将预训练模型放到其中。

VGG-16预训练模型

LMDB数据集制作

制作LMDB数据集需要用到在***VOC数据集下载***中讲到的三个文件夹。
需要的用到的脚本命令是create_list.sh和create_data.sh,放在caffe_ssd/data/VOC0712目录下。
我们主要是为了生成包含VOC2007和VOC2012训练图片的trainval.txt和包含VOC2007测试图片的test.txt

生成trainval.txt和test.txt

create_list.sh,对其进行修改,主要是路径和名字修改。

  #!/bin/bash
    
    root_dir=/home1/xxx/caffe_ssd/data/VOC0712/       # VOC数据集所在路径
    sub_dir=ImageSets/Main					          # trainval.txt和test.txt所在路径
    
    bash_dir=/home1/xxx/caffe_ssd/data/VOC0712 && pwd
    
    for dataset in trainval test 
    do
      dst_file=$bash_dir/$dataset.txt
      echo "dst_file  $dst_file"   
      if [ -f $dst_file ]
      then
        rm -f $dst_file
      fi
      for name in VOC2007 VOC2012                     		   # 修改为VOC2007 和 VOC2012
      do
      
        
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值