欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Single shot detector (ssd)运行demo检测单张图片

程序员文章站 2024-03-17 11:28:58
...

1.下载ssd工程

git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd

2.上面步骤之后下载的文件夹为caffe,执行

cd caffe
cp Makefile.config.example Makefile.config

在GPU下配置,修改Makefile.config文件

①打开 USE_CUDNN := 1 

② WITH_PYTHON_LAYER := 1 

(以下部分为特定条件下修改)由于博主的服务器上配置了anaconda(一个包管理器,python 环境在anaconda上),因此需要将Makefile.config文件配置改成

ANACONDA_HOME := /path2anconda/anaconda2 # 安装的anaconda2目录
 PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
                $(ANACONDA_HOME)/include/python2.7 \
                $(ANACONDA_HOME)/lib/python2.7/site-packages/numpy/core/include \
# PYTHON_LIB := /usr/lib
 PYTHON_LIB := $(ANACONDA_HOME)/lib

3 在caffe目录下建立一个build文件夹,即:

cd build
cmake ..
cd ..
make -j8
make install
make pycaffe
make runtest(可选)

在make -j8过程中可能会出现hdf5找不到的问题,只需

在Makefile.config中该行进行如下的修改:
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
在Makefile中进行如下的修改
LIBRARIES += glog gflags protobuf boost_system boost_filesystem boost_regex m hdf5_serial_hl hdf5_serial

要运行demo,需要下面训练好的模型文件,百度云链接如下:

链接:http://pan.baidu.com/s/1kVoJ6GR 密码:leo6

将下载的models下的VGGNet(包括VGGNet)下的所有文件放入到caffe/models中,修改/caffe/examples/ssd/ssd_detect.py

def parse_args():
    '''parse args'''
    parser = argparse.ArgumentParser()
    parser.add_argument('--gpu_id', type=int, default=0, help='gpu id')
    parser.add_argument('--labelmap_file',
                        default='data/VOC0712/labelmap_voc.prototxt')
    parser.add_argument('--model_def',
                        default='models/VGGNet/VOC0712Plus/SSD_300x300/deploy.prototxt')
    parser.add_argument('--image_resize', default=300, type=int)
    parser.add_argument('--model_weights',
                        default='models/VGGNet/VOC0712Plus/SSD_300x300/'
                        'VGG_VOC0712Plus_SSD_300x300_iter_240000.caffemodel')
    parser.add_argument('--image_file', default='examples/images/fish-bike.jpg')#待检测的图片的路径
    return parser.parse_args()

在ssd的根目录下即caffe下运行如下的命令:

python examples/ssd/ssd_detect.py
结果会保存在ssd的根目录下名称为detect_reesult.jpg

可能会出现类似下面的错误:

Permission denied: “/home-2/wliu/data/VOCdevkit/results/VOC2007/SSD_300x300”

只需在

/caffe/models/VGGNet/VOC0712Plus/SSD_300x300/deploy.prototxt

最后将

save_output_param {
      output_directory: "/home-2/wliu/data/VOCdevkit/results/VOC2007/SSD_300x300/Main"
      output_name_prefix: "comp4_det_test_"
      output_format: "VOC"
      label_map_file: "data/VOC0712/labelmap_voc.prototxt"
      name_size_file: "data/VOC0712/test_name_size.txt"
      num_test_image: 4952
    } #deploy.prototxt的错误代码,里面是原作者个人路径,可以直接删除

删除即可。

参考博客:

1.ubuntu14.04配置SSD物体识别检测环境运行demo

2.SSD: Single Shot MultiBox Detector 检测单张图片

3.Ubuntu上配置caffe+SSD及demo演示(附带问题汇总)


ubuntu14.04配置SSD物体识别检测环境运行demo
相关标签: ssd