SSD 的安裝和配置

SSD(Single Shot MultiBox Detector)算是一个比较不错的目标检测算法,主攻方向是速度,当然精度也比Yolo提高了一些,最近在ubuntu16.04下实现了代码运行,此博文主要内容来自原作者的github,加上了一些个人理解,欢迎探讨。

准备工作:Linux+cuda+caffe是标配,我就不详述了,推荐博客:

ubuntu16.04+nvidia gt740m+cuda7.5+caffe安装、测试经历 http://blog.csdn.NET/WoPawn/article/details/52313914

下面正式开始:

1.获取源码

[plain]  view plain  copy
  1. git clone https://github.com/weiliu89/caffe.git  
  2. cd caffe  
  3. git checkout ssd  

说明:SSD采用的是在caffe文件夹中内嵌例程的方式,作者改动了原版caffe,所以你需要把原来的caffe文件夹移除,Git命令会新建一个带有SSD程序的caffe文件夹,当然,这个新的caffe要重新编译一次。

2.编译caffe

[plain]  view plain  copy
  1. cd /home/mx/caffe  
  2. cp Makefile.config.example Makefile.config  

运行时报错不断,事后总结,需要修改配置文件,用gedit或者vim打开配置文件进行修改:

1)Makefile.config文件中

USE_CUDNN :=1取消注释

2)Makefile.config文件中

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include后面打上一个空格,

然后添加/usr/include/hdf5/serial, 如果没有这一句会报一个找不到hdf5.h的错误

3)makefile文件中

替换NVCCFLAGS += -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 

保存退出。

继续输入命令

[plain]  view plain  copy
  1. make -j8 #8线程  
  2. make py  
  3. make test -j8  
  4. make runtest -j8 #貌似不是必须的,跑一遍用了10多分钟  

3.训练模型

节省时间的做法是,直接下载原作者最终弄好的模型:

http://www.cs.unc.edu/~wliu/projects/SSD/models_VGGNet_VOC0712_SSD_300x300.tar.gz 

解压后将voc0712文件夹放入/home/mx/caffe/models/VGGNet/之下

OR:条件较好的同学可以下载图片数据和预训练模型,进行finetuning,得到最终可用的模型,步骤如下:

1)下载预训练模型 

https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6

将其放入新建的文件夹/home/mx/caffe/models/VGGNet/

2)下载voc2007和voc2012数据集

[plain]  view plain  copy
  1. cd /home/mx/data  
  2. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar  
  3. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar  
  4. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar  

如果终端下载太慢,那就按照地址手动下载文件,依然放入文件夹/home/mx/data/

解压文件,按照顺序来

[plain]  view plain  copy
  1. cd /home/mx/data  
  2. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar  
  3. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar  
  4. wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar  

3)将图片转化为LMDB文件,用于训练

[plain]  view plain  copy
  1. cd /home/mx/caffe  
  2. ./data/VOC0712/create_list.sh  
  3. ./data/VOC0712/create_data.sh  

这里用的脚本实现批处理,可能会出现错误: no module named caffe 或者 no module named caffe-proto,那是caffe的Python环境变量未配置好,解决方法:

[plain]  view plain  copy
  1. echo "export PYTHONPATH=/home/username/caffe/python" >> ~/.profile  
  2. source ~/.profile  
  3. echo $PYTHONPATH #检查环境变量的值  

设好环境变量后,重新运行命令就不会出错了

4)训练模型(finetuning)

[plain]  view plain  copy
  1. cd caffe/  
  2. python examples/ssd/ssd_pascal.py  

4.演示效果

SSD的作者在/home/mx/caffe/examples/ssd/文件夹下,放了好几个Python文件,都是直接调用,可以检测图片,视频,以及电脑前置摄像头

1)图片测试集

[plain]  view plain  copy
  1. python examples/ssd/score_ssd_pascal.py  

大概看了下代码们这里是跑了一遍数据集,得出准确率,我记得是百分之70多。要想用单张图片检测,貌似ssd_detect.cpp可用,博主还要研究下

2)电脑前置摄像头

[plain]  view plain  copy
  1. python examples/ssd/ssd_pascal_webcam.py  

下图为检测效果,身在实验室,只能对准天花板了:

 3)视频检测

[plain]  view plain  copy
  1. python examples/ssd/ssd_pascal_video.py  

当然,这样直接跑肯定不行,要先用vim打开该文件,定位到51行,修改视频路径为已有本地视频,然后运行才不报错。

博主在youtube下载了一段车载视频,以下是检测效果图,还不错:

原作者说SSD运行时能有几十帧,可是人家用的是Titan X,我运行时只有10帧只能是GTX850M显卡太渣了。。。

参考文献:https://github.com/weiliu89/caffe/tree/ssd

下一步方向:研究SSD的python源代码,然后训练和检测自己的数据

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以按照以下步骤配置 PyTorch 环境以使用 SSD(Single Shot MultiBox Detector): 1. 首先,确保您已经安装了 Python 和 pip。您可以在命令行中输入以下命令检查是否已正确安装: ``` python --version pip --version ``` 2. 创建一个新的虚拟环境(可选但推荐),这样可以隔离您的项目。在命令行中输入以下命令创建和激活虚拟环境: ``` python -m venv ssd_env source ssd_env/bin/activate # Linux / macOS ssd_env\Scripts\activate # Windows ``` 3. 安装 PyTorch。根据您的操作系统、CUDA 版本和 Python 版本,选择相应的安装命令。您可以在 https://pytorch.org/get-started/locally/ 页面上找到适合您的命令。 例如,如果您使用的是 Linux、CUDA 10.2 和 Python 3.7,请输入以下命令: ``` pip install torch==1.7.1+cu102 torchvision==0.8.2+cu102 torchaudio==0.7.2 -f https://download.pytorch.org/whl/torch_stable.html ``` 请根据您的配置进行相应的调整。 4. 安装其他依赖项。SSD 还依赖于其他一些库,如 NumPy、OpenCV 和 matplotlib。您可以使用以下命令安装这些库: ``` pip install numpy opencv-python matplotlib ``` 5. 下载 SSD 的源代码。您可以从 GitHub 上的相关存储库中获取 SSD 的源代码。请确保您已经安装了 Git,并在命令行中输入以下命令: ``` git clone https://github.com/weiliu89/caffe.git ``` 这将克隆 SSD 源代码到当前目录。 6. 配置 SSD。进入 SSD 源代码的根目录,并根据 README 中的说明进行配置和设置。 这样,您就可以在 PyTorch 中配置 SSD 环境了。请注意,SSD 是一个复杂的模型,需要较高的计算资源和训练数据。在运行 SSD 之前,您可能需要进一步了解 SSD 的使用方法和训练流程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值