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
上一篇: CUDA编程:SSD的priorbox层
下一篇: 前端基础知识——CSS