caffe+linux平台——实现ssd单幅图像检测

大家好呀,经过两天的挣扎,我终于实现了ssd的单独图像检测,这篇博客的基础是已经训练出了ssd的caffemodel,如何训练,请移步我的上一篇博客:

在linux上用caffe运行ssd流程和排雷

在home/caffe-ssd/examples/里我们需要ssd_detect.ipynb文件,要打开它需要确定自己的平台上安装了jupyter notebook。

在安装后,

cd home/caffe-ssd/examples/

jupyter notebook

来打开jupyter notebook网页,打开后可以找到ssd_detect.ipynb文件,打开,需要确认四个地方的地址是否正确。

1.labelmap_file = 'data/VOC0712/labelmap_voc.prototxt'

2.model_def = 'models/VGGNet/VOC0712/SSD_300x300/deploy.prototxt'

3.model_weights = 'models/VGGNet/VOC0712/SSD_300x300/VGG_VOC0712_SSD_300x300_iter_120000.caffemodel'

4.image = caffe.io.load_image('examples/images/fish-bike.jpg')

这里,有人会遇到路径找不到的问题,只需要把之前的caffe_root后面的路径换成绝对路径,然后把找不到的那个

路径前面加上【caffe_root+】就可以了。

没有问题以后,一步一步点run就可以运行了,想要修改图片,只需要修改上述的第四点image的图片名就可以了。


这里需要提一点,其实我在运行的时候遇到了比这个多的多的问题,毕竟卡了两天,比如

1.打开了jupyter notebook网页但是打不开ssd_detect.ipynb文件,显示:

Unreadable Notebook NotJSONError('Notebook does not appear to be JSON: u\'{\\n “cells”:

[\\n {\\n “cell_type”: "…',)

2.在运行ssd_detect.ipynb文件的时候报错,显示:

NameError:name ‘net’ is not defined

这两个问题网上都有对应解决的博客,提了很多解决办法,我都一一尝试了,但是都没什么用,也可能是我操作不对,

反正当时很崩溃,但最后解决的办法很简单,重新上传,重新来过,小心操作,就会成功,所以对也有这两个问题的

小朋友们说一句,也许多尝试几次,会比跟着技术大牛修改来的简单,也许就会迎刃而解。

操作规范真的很重要,比如,在想要关闭ssd_detect.ipynb的时候点击上方红色按钮shutdown一下,关掉终端窗口

的时候不要直接关,按Ctrl+c然后按y再关掉,会比较不容易出错,永远保留一个原始的备份,复制文件不要直接复

,用cp命令来复制等等。希望我这好几天的教训能够帮到大家。

3.在打开jupyter notebook后单幅图像运行的最后一步,有一次报错The kernel appears to have died. It will

restart automatically.打开终端显示out of memory。这个就是所用的GPU块内存不够了,输入nvidia-smi查看

GPU的分块情况,如果真的是所说的问题,在ssd_pascal.py中修改所用的gpu块就解决了。

我们下期再见!

猜你喜欢

转载自blog.csdn.net/miss_yuki/article/details/79632692